ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDQ5Mjk5ZWUuLjFiN2U3ZGMgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMjAsNiArMjAsNyBAQAogTWFrZWZpbGUKIE1ha2VmaWxlLnByZQogTWlzYy9weXRob24ucGMKK01pc2MvcHl0aG9uLWNvbmZpZy5zaAogTW9kdWxlcy9TZXR1cAogTW9kdWxlcy9TZXR1cC5jb25maWcKIE1vZHVsZXMvU2V0dXAubG9jYWwKQEAgLTU3LDYgKzU4LDggQEAKIHB5YnVpbGRkaXIudHh0CiBweWNvbmZpZy5oCiBweXRob24KK3B5dGhvbi1jb25maWcKK3B5dGhvbi1jb25maWcucHkKIHB5dGhvbi5leGUKIHB5dGhvbi1nZGIucHkKIHB5dGhvbi5leGUtZ2RiLnB5CmRpZmYgLS1naXQgYS8uaGdpZ25vcmUgYi8uaGdpZ25vcmUKaW5kZXggNDJhYjA0MC4uMmMwZWQ2MyAxMDA2NDQKLS0tIGEvLmhnaWdub3JlCisrKyBiLy5oZ2lnbm9yZQpAQCAtMTgsNiArMTgsOCBAQAogcHljb25maWcuaCQKIHB5dGhvbiQKIHB5dGhvbi5leGUkCitweXRob24tY29uZmlnJAorcHl0aG9uLWNvbmZpZy5weSQKIHJlZmxvZy50eHQkCiB0YWdzJAogTGliL3BsYXQtbWFjL2Vycm9ycy5yc3JjLmRmLnJzcmMKQEAgLTI3LDYgKzI5LDcgQEAKIERvYy90b29scy9qaW5qYTIvCiBEb2MvdG9vbHMvcHlnbWVudHMvCiBNaXNjL3B5dGhvbi5wYworTWlzYy9weXRob24tY29uZmlnLnNoJAogTW9kdWxlcy9TZXR1cCQKIE1vZHVsZXMvU2V0dXAuY29uZmlnCiBNb2R1bGVzL1NldHVwLmxvY2FsCmRpZmYgLS1naXQgYS9Eb2MvYy1hcGkvZGljdC5yc3QgYi9Eb2MvYy1hcGkvZGljdC5yc3QKaW5kZXggNmJhY2MzMi4uMWY1OTlmZSAxMDA2NDQKLS0tIGEvRG9jL2MtYXBpL2RpY3QucnN0CisrKyBiL0RvYy9jLWFwaS9kaWN0LnJzdApAQCAtMTEwLDYgKzExMCwxNSBAQAogICAgOmM6dHlwZTpgY2hhclwqYCwgcmF0aGVyIHRoYW4gYSA6Yzp0eXBlOmBQeU9iamVjdFwqYC4KIAogCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5RGljdF9TZXREZWZhdWx0KFB5T2JqZWN0ICpwLCBQeU9iamVjdCAqa2V5LCBQeU9iamVjdCAqZGVmYXVsdCkKKworICAgVGhpcyBpcyB0aGUgc2FtZSBhcyB0aGUgUHl0aG9uLWxldmVsIDptZXRoOmBkaWN0LnNldGRlZmF1bHRgLiAgSWYgcHJlc2VudCwgaXQKKyAgIHJldHVybnMgdGhlIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gKmtleSogZnJvbSB0aGUgZGljdGlvbmFyeSAqcCouICBJZiB0aGUga2V5CisgICBpcyBub3QgaW4gdGhlIGRpY3QsIGl0IGlzIGluc2VydGVkIHdpdGggdmFsdWUgKmRlZmF1bHRvYmoqIGFuZCAqZGVmYXVsdG9iaioKKyAgIGlzIHJldHVybmVkLiAgVGhpcyBmdW5jdGlvbiBldmFsdWF0ZXMgdGhlIGhhc2ggZnVuY3Rpb24gb2YgKmtleSogb25seSBvbmNlLAorICAgaW5zdGVhZCBvZiBldmFsdWF0aW5nIGl0IGluZGVwZW5kZW50bHkgZm9yIHRoZSBsb29rdXAgYW5kIHRoZSBpbnNlcnRpb24uCisKKwogLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeURpY3RfSXRlbXMoUHlPYmplY3QgKnApCiAKICAgIFJldHVybiBhIDpjOnR5cGU6YFB5TGlzdE9iamVjdGAgY29udGFpbmluZyBhbGwgdGhlIGl0ZW1zIGZyb20gdGhlIGRpY3Rpb25hcnkuCmRpZmYgLS1naXQgYS9Eb2MvYy1hcGkvaW5pdC5yc3QgYi9Eb2MvYy1hcGkvaW5pdC5yc3QKaW5kZXggOTVmZjRlZS4uNmY4NDdkOSAxMDA2NDQKLS0tIGEvRG9jL2MtYXBpL2luaXQucnN0CisrKyBiL0RvYy9jLWFwaS9pbml0LnJzdApAQCAtNjU0LDYgKzY1NCwyMCBAQAogICAgbWFkZSBvbiB0aGUgbWFpbiB0aHJlYWQuICBUaGlzIGlzIG1haW5seSBhIGhlbHBlci9kaWFnbm9zdGljIGZ1bmN0aW9uLgogCiAKKy4uIGM6ZnVuY3Rpb246OiBpbnQgUHlHSUxTdGF0ZV9DaGVjaygpCisKKyAgIFJldHVybiAxIGlmIHRoZSBjdXJyZW50IHRocmVhZCBpcyBob2xkaW5nIHRoZSBHSUwgYW5kIDAgb3RoZXJ3aXNlLgorICAgVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZCBhdCBhbnkgdGltZS4KKyAgIE9ubHkgaWYgaXQgaGFzIGhhZCBpdHMgUHl0aG9uIHRocmVhZCBzdGF0ZSBpbml0aWFsaXplZCBhbmQgY3VycmVudGx5IGlzCisgICBob2xkaW5nIHRoZSBHSUwgd2lsbCBpdCByZXR1cm4gMS4KKyAgIFRoaXMgaXMgbWFpbmx5IGEgaGVscGVyL2RpYWdub3N0aWMgZnVuY3Rpb24uICBJdCBjYW4gYmUgdXNlZnVsCisgICBmb3IgZXhhbXBsZSBpbiBjYWxsYmFjayBjb250ZXh0cyBvciBtZW1vcnkgYWxsb2NhdGlvbiBmdW5jdGlvbnMgd2hlbgorICAga25vd2luZyB0aGF0IHRoZSBHSUwgaXMgbG9ja2VkIGNhbiBhbGxvdyB0aGUgY2FsbGVyIHRvIHBlcmZvcm0gc2Vuc2l0aXZlCisgICBhY3Rpb25zIG9yIG90aGVyd2lzZSBiZWhhdmUgZGlmZmVyZW50bHkuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCisKIFRoZSBmb2xsb3dpbmcgbWFjcm9zIGFyZSBub3JtYWxseSB1c2VkIHdpdGhvdXQgYSB0cmFpbGluZyBzZW1pY29sb247IGxvb2sgZm9yCiBleGFtcGxlIHVzYWdlIGluIHRoZSBQeXRob24gc291cmNlIGRpc3RyaWJ1dGlvbi4KIApkaWZmIC0tZ2l0IGEvRG9jL2MtYXBpL21vZHVsZS5yc3QgYi9Eb2MvYy1hcGkvbW9kdWxlLnJzdAppbmRleCA2NWZmOGZhLi45NWEwMTY5IDEwMDY0NAotLS0gYS9Eb2MvYy1hcGkvbW9kdWxlLnJzdAorKysgYi9Eb2MvYy1hcGkvbW9kdWxlLnJzdApAQCAtMzUsMTMgKzM1LDIwIEBACiAgICAgICBzaW5nbGU6IF9fbmFtZV9fIChtb2R1bGUgYXR0cmlidXRlKQogICAgICAgc2luZ2xlOiBfX2RvY19fIChtb2R1bGUgYXR0cmlidXRlKQogICAgICAgc2luZ2xlOiBfX2ZpbGVfXyAobW9kdWxlIGF0dHJpYnV0ZSkKKyAgICAgIHNpbmdsZTogX19wYWNrYWdlX18gKG1vZHVsZSBhdHRyaWJ1dGUpCisgICAgICBzaW5nbGU6IF9fbG9hZGVyX18gKG1vZHVsZSBhdHRyaWJ1dGUpCiAKICAgIFJldHVybiBhIG5ldyBtb2R1bGUgb2JqZWN0IHdpdGggdGhlIDphdHRyOmBfX25hbWVfX2AgYXR0cmlidXRlIHNldCB0byAqbmFtZSouCi0gICBPbmx5IHRoZSBtb2R1bGUncyA6YXR0cjpgX19kb2NfX2AgYW5kIDphdHRyOmBfX25hbWVfX2AgYXR0cmlidXRlcyBhcmUgZmlsbGVkIGluOwotICAgdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIGEgOmF0dHI6YF9fZmlsZV9fYCBhdHRyaWJ1dGUuCisgICBUaGUgbW9kdWxlJ3MgOmF0dHI6YF9fbmFtZV9fYCwgOmF0dHI6YF9fZG9jX19gLCA6YXR0cjpgX19wYWNrYWdlX19gLCBhbmQKKyAgIDphdHRyOmBfX2xvYWRlcl9fYCBhdHRyaWJ1dGVzIGFyZSBmaWxsZWQgaW4gKGFsbCBidXQgOmF0dHI6YF9fbmFtZV9fYCBhcmUgc2V0CisgICB0byBgYE5vbmVgYCk7IHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBhIDphdHRyOmBfX2ZpbGVfX2AKKyAgIGF0dHJpYnV0ZS4KIAogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICA6YXR0cjpgX19wYWNrYWdlX19gIGFuZCA6YXR0cjpgX19sb2FkZXJfX2AgYXJlIHNldCB0byBgYE5vbmVgYC4KKwogCiAuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5TW9kdWxlX05ldyhjb25zdCBjaGFyICpuYW1lKQogCmRpZmYgLS1naXQgYS9Eb2MvYy1hcGkvb2JqZWN0LnJzdCBiL0RvYy9jLWFwaS9vYmplY3QucnN0CmluZGV4IGE0NzE4M2MuLjc5MWNkYmIgMTAwNjQ0Ci0tLSBhL0RvYy9jLWFwaS9vYmplY3QucnN0CisrKyBiL0RvYy9jLWFwaS9vYmplY3QucnN0CkBAIC0yNDAsNyArMjQwLDcgQEAKICAgIG9mIHRoZSBQeXRob24gZXhwcmVzc2lvbiBgYGNhbGxhYmxlX29iamVjdCgqYXJncylgYC4KIAogCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5T2JqZWN0X0NhbGxGdW5jdGlvbihQeU9iamVjdCAqY2FsbGFibGUsIGNoYXIgKmZvcm1hdCwgLi4uKQorLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeU9iamVjdF9DYWxsRnVuY3Rpb24oUHlPYmplY3QgKmNhbGxhYmxlLCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKIAogICAgQ2FsbCBhIGNhbGxhYmxlIFB5dGhvbiBvYmplY3QgKmNhbGxhYmxlKiwgd2l0aCBhIHZhcmlhYmxlIG51bWJlciBvZiBDIGFyZ3VtZW50cy4KICAgIFRoZSBDIGFyZ3VtZW50cyBhcmUgZGVzY3JpYmVkIHVzaW5nIGEgOmM6ZnVuYzpgUHlfQnVpbGRWYWx1ZWAgc3R5bGUgZm9ybWF0CkBAIC0yNTAsOCArMjUwLDExIEBACiAgICBwYXNzIDpjOnR5cGU6YFB5T2JqZWN0IFwqYCBhcmdzLCA6YzpmdW5jOmBQeU9iamVjdF9DYWxsRnVuY3Rpb25PYmpBcmdzYCBpcyBhCiAgICBmYXN0ZXIgYWx0ZXJuYXRpdmUuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICBUaGUgdHlwZSBvZiAqZm9ybWF0KiB3YXMgY2hhbmdlZCBmcm9tIGBgY2hhciAqYGAuCiAKLS4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlPYmplY3RfQ2FsbE1ldGhvZChQeU9iamVjdCAqbywgY2hhciAqbWV0aG9kLCBjaGFyICpmb3JtYXQsIC4uLikKKworLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeU9iamVjdF9DYWxsTWV0aG9kKFB5T2JqZWN0ICpvLCBjb25zdCBjaGFyICptZXRob2QsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQogCiAgICBDYWxsIHRoZSBtZXRob2QgbmFtZWQgKm1ldGhvZCogb2Ygb2JqZWN0ICpvKiB3aXRoIGEgdmFyaWFibGUgbnVtYmVyIG9mIEMKICAgIGFyZ3VtZW50cy4gIFRoZSBDIGFyZ3VtZW50cyBhcmUgZGVzY3JpYmVkIGJ5IGEgOmM6ZnVuYzpgUHlfQnVpbGRWYWx1ZWAgZm9ybWF0CkBAIC0yNjEsNiArMjY0LDkgQEAKICAgIE5vdGUgdGhhdCBpZiB5b3Ugb25seSBwYXNzIDpjOnR5cGU6YFB5T2JqZWN0IFwqYCBhcmdzLAogICAgOmM6ZnVuYzpgUHlPYmplY3RfQ2FsbE1ldGhvZE9iakFyZ3NgIGlzIGEgZmFzdGVyIGFsdGVybmF0aXZlLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgVGhlIHR5cGVzIG9mICptZXRob2QqIGFuZCAqZm9ybWF0KiB3ZXJlIGNoYW5nZWQgZnJvbSBgYGNoYXIgKmBgLgorCiAKIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhQeU9iamVjdCAqY2FsbGFibGUsIC4uLiwgTlVMTCkKIApAQCAtMzQyLDYgKzM0OCwxNSBAQAogICAgcmV0dXJuZWQuICBUaGlzIGlzIHRoZSBlcXVpdmFsZW50IHRvIHRoZSBQeXRob24gZXhwcmVzc2lvbiBgYGxlbihvKWBgLgogCiAKKy4uIGM6ZnVuY3Rpb246OiBQeV9zc2l6ZV90IFB5T2JqZWN0X0xlbmd0aEhpbnQoUHlPYmplY3QgKm8sIFB5X3NzaXplX3QgZGVmYXVsdCkKKworICAgUmV0dXJuIGFuIGVzdGltYXRlZCBsZW5ndGggZm9yIHRoZSBvYmplY3QgKm8qLiBGaXJzdCB0cnlpbmcgdG8gcmV0dXJuIGl0cworICAgYWN0dWFsIGxlbmd0aCwgdGhlbiBhbiBlc3RpbWF0ZSB1c2luZyBgYF9fbGVuZ3RoX2hpbnRfX2BgLCBhbmQgZmluYWxseQorICAgcmV0dXJuaW5nIHRoZSBkZWZhdWx0IHZhbHVlLiBPbiBlcnJvciBgYC0xYGAgaXMgcmV0dXJuZWQuIFRoaXMgaXMgdGhlCisgICBlcXVpdmFsZW50IHRvIHRoZSBQeXRob24gZXhwcmVzc2lvbiBgYG9wZXJhdG9yLmxlbmd0aF9oaW50KG8sIGRlZmF1bHQpYGAuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCiAuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5T2JqZWN0X0dldEl0ZW0oUHlPYmplY3QgKm8sIFB5T2JqZWN0ICprZXkpCiAKICAgIFJldHVybiBlbGVtZW50IG9mICpvKiBjb3JyZXNwb25kaW5nIHRvIHRoZSBvYmplY3QgKmtleSogb3IgKk5VTEwqIG9uIGZhaWx1cmUuCmRpZmYgLS1naXQgYS9Eb2MvYy1hcGkvdW5pY29kZS5yc3QgYi9Eb2MvYy1hcGkvdW5pY29kZS5yc3QKaW5kZXggYWJmMzUzZi4uMmYwM2Y2OSAxMDA2NDQKLS0tIGEvRG9jL2MtYXBpL3VuaWNvZGUucnN0CisrKyBiL0RvYy9jLWFwaS91bmljb2RlLnJzdApAQCAtNTI2LDEyICs1MjYsMjMgQEAKICAgICAgIFRoZSBgIiVsbGQiYCBhbmQgYCIlbGx1ImAgZm9ybWF0IHNwZWNpZmllcnMgYXJlIG9ubHkgYXZhaWxhYmxlCiAgICAgICB3aGVuIDpjb25zdDpgSEFWRV9MT05HX0xPTkdgIGlzIGRlZmluZWQuCiAKKyAgIC4uIG5vdGU6OgorICAgICAgVGhlIHdpZHRoIGZvcm1hdHRlciB1bml0IGlzIG51bWJlciBvZiBjaGFyYWN0ZXJzIHJhdGhlciB0aGFuIGJ5dGVzLgorICAgICAgVGhlIHByZWNpc2lvbiBmb3JtYXR0ZXIgdW5pdCBpcyBudW1iZXIgb2YgYnl0ZXMgZm9yIGBgIiVzImBgIGFuZAorICAgICAgYGAiJVYiYGAgKGlmIHRoZSBgYFB5T2JqZWN0KmBgIGFyZ3VtZW50IGlzIE5VTEwpLCBhbmQgYSBudW1iZXIgb2YKKyAgICAgIGNoYXJhY3RlcnMgZm9yIGBgIiVBImBgLCBgYCIlVSJgYCwgYGAiJVMiYGAsIGBgIiVSImBgIGFuZCBgYCIlViJgYAorICAgICAgKGlmIHRoZSBgYFB5T2JqZWN0KmBgIGFyZ3VtZW50IGlzIG5vdCBOVUxMKS4KKwogICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKICAgICAgIFN1cHBvcnQgZm9yIGBgIiVsbGQiYGAgYW5kIGBgIiVsbHUiYGAgYWRkZWQuCiAKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCiAgICAgICBTdXBwb3J0IGZvciBgYCIlbGkiYGAsIGBgIiVsbGkiYGAgYW5kIGBgIiV6aSJgYCBhZGRlZC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgIFN1cHBvcnQgd2lkdGggYW5kIHByZWNpc2lvbiBmb3JtYXR0ZXIgZm9yIGBgIiVzImBgLCBgYCIlQSJgYCwgYGAiJVUiYGAsCisgICAgICBgYCIlViJgYCwgYGAiJVMiYGAsIGBgIiVSImBgIGFkZGVkLgorCiAKIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0Zyb21Gb3JtYXRWKGNvbnN0IGNoYXIgKmZvcm1hdCwgdmFfbGlzdCB2YXJncykKIApkaWZmIC0tZ2l0IGEvRG9jL2MtYXBpL3ZlcnloaWdoLnJzdCBiL0RvYy9jLWFwaS92ZXJ5aGlnaC5yc3QKaW5kZXggNDk5ZWIzZS4uMjg0ZWVlOCAxMDA2NDQKLS0tIGEvRG9jL2MtYXBpL3ZlcnloaWdoLnJzdAorKysgYi9Eb2MvYy1hcGkvdmVyeWhpZ2gucnN0CkBAIC0xNDQsNiArMTQ0LDI5IEBACiAgICAoOmZ1bmM6YHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmdgKS4gIFJldHVybnMgYGAwYGAgYXQgRU9GLgogCiAKKy4uIGM6dmFyOjogaW50ICgqUHlPU19JbnB1dEhvb2spKHZvaWQpCisKKyAgIENhbiBiZSBzZXQgdG8gcG9pbnQgdG8gYSBmdW5jdGlvbiB3aXRoIHRoZSBwcm90b3R5cGUKKyAgIGBgaW50IGZ1bmModm9pZClgYC4gIFRoZSBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuIFB5dGhvbidzCisgICBpbnRlcnByZXRlciBwcm9tcHQgaXMgYWJvdXQgdG8gYmVjb21lIGlkbGUgYW5kIHdhaXQgZm9yIHVzZXIgaW5wdXQKKyAgIGZyb20gdGhlIHRlcm1pbmFsLiAgVGhlIHJldHVybiB2YWx1ZSBpcyBpZ25vcmVkLiAgT3ZlcnJpZGluZyB0aGlzCisgICBob29rIGNhbiBiZSB1c2VkIHRvIGludGVncmF0ZSB0aGUgaW50ZXJwcmV0ZXIncyBwcm9tcHQgd2l0aCBvdGhlcgorICAgZXZlbnQgbG9vcHMsIGFzIGRvbmUgaW4gdGhlIDpmaWxlOmBNb2R1bGVzL190a2ludGVyLmNgIGluIHRoZQorICAgUHl0aG9uIHNvdXJjZSBjb2RlLgorCisKKy4uIGM6dmFyOjogY2hhciogKCpQeU9TX1JlYWRsaW5lRnVuY3Rpb25Qb2ludGVyKShGSUxFICosIEZJTEUgKiwgY2hhciAqKQorCisgICBDYW4gYmUgc2V0IHRvIHBvaW50IHRvIGEgZnVuY3Rpb24gd2l0aCB0aGUgcHJvdG90eXBlCisgICBgYGNoYXIgKmZ1bmMoRklMRSAqc3RkaW4sIEZJTEUgKnN0ZG91dCwgY2hhciAqcHJvbXB0KWBgLAorICAgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCBmdW5jdGlvbiB1c2VkIHRvIHJlYWQgYSBzaW5nbGUgbGluZSBvZiBpbnB1dAorICAgYXQgdGhlIGludGVycHJldGVyJ3MgcHJvbXB0LiAgVGhlIGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIG91dHB1dAorICAgdGhlIHN0cmluZyAqcHJvbXB0KiBpZiBpdCdzIG5vdCAqTlVMTCosIGFuZCB0aGVuIHJlYWQgYSBsaW5lIG9mCisgICBpbnB1dCBmcm9tIHRoZSBwcm92aWRlZCBzdGFuZGFyZCBpbnB1dCBmaWxlLCByZXR1cm5pbmcgdGhlCisgICByZXN1bHRpbmcgc3RyaW5nLiAgRm9yIGV4YW1wbGUsIFRoZSA6bW9kOmByZWFkbGluZWAgbW9kdWxlIHNldHMKKyAgIHRoaXMgaG9vayB0byBwcm92aWRlIGxpbmUtZWRpdGluZyBhbmQgdGFiLWNvbXBsZXRpb24gZmVhdHVyZXMuCisKKwogLi4gYzpmdW5jdGlvbjo6IHN0cnVjdCBfbm9kZSogUHlQYXJzZXJfU2ltcGxlUGFyc2VTdHJpbmcoY29uc3QgY2hhciAqc3RyLCBpbnQgc3RhcnQpCiAKICAgIFRoaXMgaXMgYSBzaW1wbGlmaWVkIGludGVyZmFjZSB0bwpAQCAtMzM4LDQgKzM2MSwzIEBACiAKICAgIFRoaXMgYml0IGNhbiBiZSBzZXQgaW4gKmZsYWdzKiB0byBjYXVzZSBkaXZpc2lvbiBvcGVyYXRvciBgYC9gYCB0byBiZQogICAgaW50ZXJwcmV0ZWQgYXMgInRydWUgZGl2aXNpb24iIGFjY29yZGluZyB0byA6cGVwOmAyMzhgLgotCmRpZmYgLS1naXQgYS9Eb2MvZGF0YS9yZWZjb3VudHMuZGF0IGIvRG9jL2RhdGEvcmVmY291bnRzLmRhdAppbmRleCBmMmEyY2Y1Li4wYjU2ZmU1IDEwMDY0NAotLS0gYS9Eb2MvZGF0YS9yZWZjb3VudHMuZGF0CisrKyBiL0RvYy9kYXRhL3JlZmNvdW50cy5kYXQKQEAgLTIxOCw3ICsyMTgsMTIgQEAKIAogUHlEaWN0X0dldEl0ZW1TdHJpbmc6UHlPYmplY3QqOjowOgogUHlEaWN0X0dldEl0ZW1TdHJpbmc6UHlPYmplY3QqOnA6MDoKLVB5RGljdF9HZXRJdGVtU3RyaW5nOmNoYXIqOmtleTo6CitQeURpY3RfR2V0SXRlbVN0cmluZzpjb25zdCBjaGFyKjprZXk6OgorCitQeURpY3RfU2V0RGVmYXVsdDpQeU9iamVjdCo6OjA6CitQeURpY3RfU2V0RGVmYXVsdDpQeU9iamVjdCo6cDowOgorUHlEaWN0X1NldERlZmF1bHQ6UHlPYmplY3QqOmtleTowOmNvbmRpdGlvbmFsbHkgKzEgaWYgaW5zZXJ0ZWQgaW50byB0aGUgZGljdAorUHlEaWN0X1NldERlZmF1bHQ6UHlPYmplY3QqOmRlZmF1bHQ6MDpjb25kaXRpb25hbGx5ICsxIGlmIGluc2VydGVkIGludG8gdGhlIGRpY3QKIAogUHlEaWN0X0l0ZW1zOlB5T2JqZWN0Kjo6KzE6CiBQeURpY3RfSXRlbXM6UHlPYmplY3QqOnA6MDoKQEAgLTkxMiw3ICs5MTcsNyBAQAogCiBQeU9iamVjdF9DYWxsRnVuY3Rpb246UHlPYmplY3QqOjorMToKIFB5T2JqZWN0X0NhbGxGdW5jdGlvbjpQeU9iamVjdCo6Y2FsbGFibGVfb2JqZWN0OjA6Ci1QeU9iamVjdF9DYWxsRnVuY3Rpb246Y2hhcio6Zm9ybWF0OjoKK1B5T2JqZWN0X0NhbGxGdW5jdGlvbjpjb25zdCBjaGFyKjpmb3JtYXQ6OgogUHlPYmplY3RfQ2FsbEZ1bmN0aW9uOjouLi46OgogCiBQeU9iamVjdF9DYWxsRnVuY3Rpb25PYmpBcmdzOlB5T2JqZWN0Kjo6KzE6CkBAIC05MjEsOCArOTI2LDggQEAKIAogUHlPYmplY3RfQ2FsbE1ldGhvZDpQeU9iamVjdCo6OisxOgogUHlPYmplY3RfQ2FsbE1ldGhvZDpQeU9iamVjdCo6bzowOgotUHlPYmplY3RfQ2FsbE1ldGhvZDpjaGFyKjptOjoKLVB5T2JqZWN0X0NhbGxNZXRob2Q6Y2hhcio6Zm9ybWF0OjoKK1B5T2JqZWN0X0NhbGxNZXRob2Q6Y29uc3QgY2hhcio6bTo6CitQeU9iamVjdF9DYWxsTWV0aG9kOmNvbnN0IGNoYXIqOmZvcm1hdDo6CiBQeU9iamVjdF9DYWxsTWV0aG9kOjouLi46OgogCiBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJnczpQeU9iamVjdCo6OisxOgpkaWZmIC0tZ2l0IGEvRG9jL2V4dGVuZGluZy9lbWJlZGRpbmcucnN0IGIvRG9jL2V4dGVuZGluZy9lbWJlZGRpbmcucnN0CmluZGV4IGM2OGFmZjguLjM3NTQzODAgMTAwNjQ0Ci0tLSBhL0RvYy9leHRlbmRpbmcvZW1iZWRkaW5nLnJzdAorKysgYi9Eb2MvZXh0ZW5kaW5nL2VtYmVkZGluZy5yc3QKQEAgLTI4NSwxNCArMjg1LDE0IEBACiAqIGBgcHl0aG9uWC5ZLWNvbmZpZyAtLWNmbGFnc2BgIHdpbGwgZ2l2ZSB5b3UgdGhlIHJlY29tbWVuZGVkIGZsYWdzIHdoZW4KICAgY29tcGlsaW5nOjoKIAotICAgJCAvb3B0L2Jpbi9weXRob24zLjMtY29uZmlnIC0tY2ZsYWdzCi0gICAtSS9vcHQvaW5jbHVkZS9weXRob24zLjNtIC1JL29wdC9pbmNsdWRlL3B5dGhvbjMuM20gLUROREVCVUcgLWcgLWZ3cmFwdiAtTzMgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcworICAgJCAvb3B0L2Jpbi9weXRob24zLjQtY29uZmlnIC0tY2ZsYWdzCisgICAtSS9vcHQvaW5jbHVkZS9weXRob24zLjRtIC1JL29wdC9pbmNsdWRlL3B5dGhvbjMuNG0gLUROREVCVUcgLWcgLWZ3cmFwdiAtTzMgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcwogCiAqIGBgcHl0aG9uWC5ZLWNvbmZpZyAtLWxkZmxhZ3NgYCB3aWxsIGdpdmUgeW91IHRoZSByZWNvbW1lbmRlZCBmbGFncyB3aGVuCiAgIGxpbmtpbmc6OgogCi0gICAkIC9vcHQvYmluL3B5dGhvbjMuMy1jb25maWcgLS1sZGZsYWdzCi0gICAtTC9vcHQvbGliL3B5dGhvbjMuMy9jb25maWctMy4zbSAtbHB0aHJlYWQgLWxkbCAtbHV0aWwgLWxtIC1scHl0aG9uMy4zbSAtWGxpbmtlciAtZXhwb3J0LWR5bmFtaWMKKyAgICQgL29wdC9iaW4vcHl0aG9uMy40LWNvbmZpZyAtLWxkZmxhZ3MKKyAgIC1ML29wdC9saWIvcHl0aG9uMy40L2NvbmZpZy0zLjRtIC1scHRocmVhZCAtbGRsIC1sdXRpbCAtbG0gLWxweXRob24zLjRtIC1YbGlua2VyIC1leHBvcnQtZHluYW1pYwogCiAuLiBub3RlOjoKICAgIFRvIGF2b2lkIGNvbmZ1c2lvbiBiZXR3ZWVuIHNldmVyYWwgUHl0aG9uIGluc3RhbGxhdGlvbnMgKGFuZCBlc3BlY2lhbGx5CmRpZmYgLS1naXQgYS9Eb2MvZmFxL2xpYnJhcnkucnN0IGIvRG9jL2ZhcS9saWJyYXJ5LnJzdAppbmRleCBjOGVmOWU3Li44YmQ3NzRiIDEwMDY0NAotLS0gYS9Eb2MvZmFxL2xpYnJhcnkucnN0CisrKyBiL0RvYy9mYXEvbGlicmFyeS5yc3QKQEAgLTIxMSw3ICsyMTEsNyBAQAogICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICBjID0gc3lzLnN0ZGluLnJlYWQoMSkKICAgICAgICAgICAgICAgIHByaW50KCJHb3QgY2hhcmFjdGVyIiwgcmVwcihjKSkKLSAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgcGFzcwogICAgZmluYWxseToKICAgICAgICB0ZXJtaW9zLnRjc2V0YXR0cihmZCwgdGVybWlvcy5UQ1NBRkxVU0gsIG9sZHRlcm0pCkBAIC0yMjQsNyArMjI0LDExIEBACiAgICA6ZnVuYzpgdGVybWlvcy50Y3NldGF0dHJgIHR1cm5zIG9mZiBzdGRpbidzIGVjaG9pbmcgYW5kIGRpc2FibGVzIGNhbm9uaWNhbAogICAgbW9kZS4gIDpmdW5jOmBmY250bC5mbmN0bGAgaXMgdXNlZCB0byBvYnRhaW4gc3RkaW4ncyBmaWxlIGRlc2NyaXB0b3IgZmxhZ3MKICAgIGFuZCBtb2RpZnkgdGhlbSBmb3Igbm9uLWJsb2NraW5nIG1vZGUuICBTaW5jZSByZWFkaW5nIHN0ZGluIHdoZW4gaXQgaXMgZW1wdHkKLSAgIHJlc3VsdHMgaW4gYW4gOmV4YzpgSU9FcnJvcmAsIHRoaXMgZXJyb3IgaXMgY2F1Z2h0IGFuZCBpZ25vcmVkLgorICAgcmVzdWx0cyBpbiBhbiA6ZXhjOmBPU0Vycm9yYCwgdGhpcyBlcnJvciBpcyBjYXVnaHQgYW5kIGlnbm9yZWQuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAqc3lzLnN0ZGluLnJlYWQqIHVzZWQgdG8gcmFpc2UgOmV4YzpgSU9FcnJvcmAuIFN0YXJ0aW5nIGZyb20gUHl0aG9uIDMuMworICAgICAgOmV4YzpgSU9FcnJvcmAgaXMgYWxpYXMgZm9yIDpleGM6YE9TRXJyb3JgLgogCiAKIFRocmVhZHMKZGlmZiAtLWdpdCBhL0RvYy9ob3d0by9mdW5jdGlvbmFsLnJzdCBiL0RvYy9ob3d0by9mdW5jdGlvbmFsLnJzdAppbmRleCBkMjQxZjFhLi4wZjRjNGU0IDEwMDY0NAotLS0gYS9Eb2MvaG93dG8vZnVuY3Rpb25hbC5yc3QKKysrIGIvRG9jL2hvd3RvL2Z1bmN0aW9uYWwucnN0CkBAIC0zLDcgKzMsNyBAQAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOkF1dGhvcjogQS4gTS4gS3VjaGxpbmcKLTpSZWxlYXNlOiAwLjMxCis6UmVsZWFzZTogMC4zMgogCiBJbiB0aGlzIGRvY3VtZW50LCB3ZSdsbCB0YWtlIGEgdG91ciBvZiBQeXRob24ncyBmZWF0dXJlcyBzdWl0YWJsZSBmb3IKIGltcGxlbWVudGluZyBwcm9ncmFtcyBpbiBhIGZ1bmN0aW9uYWwgc3R5bGUuICBBZnRlciBhbiBpbnRyb2R1Y3Rpb24gdG8gdGhlCkBAIC0xNSw5ICsxNSw5IEBACiBJbnRyb2R1Y3Rpb24KID09PT09PT09PT09PQogCi1UaGlzIHNlY3Rpb24gZXhwbGFpbnMgdGhlIGJhc2ljIGNvbmNlcHQgb2YgZnVuY3Rpb25hbCBwcm9ncmFtbWluZzsgaWYgeW91J3JlCi1qdXN0IGludGVyZXN0ZWQgaW4gbGVhcm5pbmcgYWJvdXQgUHl0aG9uIGxhbmd1YWdlIGZlYXR1cmVzLCBza2lwIHRvIHRoZSBuZXh0Ci1zZWN0aW9uLgorVGhpcyBzZWN0aW9uIGV4cGxhaW5zIHRoZSBiYXNpYyBjb25jZXB0IG9mIGZ1bmN0aW9uYWwgcHJvZ3JhbW1pbmc7IGlmCit5b3UncmUganVzdCBpbnRlcmVzdGVkIGluIGxlYXJuaW5nIGFib3V0IFB5dGhvbiBsYW5ndWFnZSBmZWF0dXJlcywKK3NraXAgdG8gdGhlIG5leHQgc2VjdGlvbiBvbiA6cmVmOmBmdW5jdGlvbmFsLWhvd3RvLWl0ZXJhdG9yc2AuCiAKIFByb2dyYW1taW5nIGxhbmd1YWdlcyBzdXBwb3J0IGRlY29tcG9zaW5nIHByb2JsZW1zIGluIHNldmVyYWwgZGlmZmVyZW50IHdheXM6CiAKQEAgLTE3Myw2ICsxNzMsOCBAQAogYSBmZXcgZnVuY3Rpb25zIHNwZWNpYWxpemVkIGZvciB0aGUgY3VycmVudCB0YXNrLgogCiAKKy4uIF9mdW5jdGlvbmFsLWhvd3RvLWl0ZXJhdG9yczoKKwogSXRlcmF0b3JzCiA9PT09PT09PT0KIApAQCAtNjcwLDcgKzY3Miw3IEBACiAKIDpmdW5jOmBzb3J0ZWQoaXRlcmFibGUsIGtleT1Ob25lLCByZXZlcnNlPUZhbHNlKSA8c29ydGVkPmAgY29sbGVjdHMgYWxsIHRoZQogZWxlbWVudHMgb2YgdGhlIGl0ZXJhYmxlIGludG8gYSBsaXN0LCBzb3J0cyB0aGUgbGlzdCwgYW5kIHJldHVybnMgdGhlIHNvcnRlZAotcmVzdWx0LiAgVGhlICprZXkqLCBhbmQgKnJldmVyc2UqIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlCityZXN1bHQuICBUaGUgKmtleSogYW5kICpyZXZlcnNlKiBhcmd1bWVudHMgYXJlIHBhc3NlZCB0aHJvdWdoIHRvIHRoZQogY29uc3RydWN0ZWQgbGlzdCdzIDptZXRoOmB+bGlzdC5zb3J0YCBtZXRob2QuIDo6CiAKICAgICA+Pj4gaW1wb3J0IHJhbmRvbQpAQCAtODM2LDcgKzgzOCw4IEBACiBwcmVkaWNhdGUuCiAKIDpmdW5jOmBpdGVydG9vbHMuZmlsdGVyZmFsc2UocHJlZGljYXRlLCBpdGVyKSA8aXRlcnRvb2xzLmZpbHRlcmZhbHNlPmAgaXMgdGhlCi1vcHBvc2l0ZSwgcmV0dXJuaW5nIGFsbCBlbGVtZW50cyBmb3Igd2hpY2ggdGhlIHByZWRpY2F0ZSByZXR1cm5zIGZhbHNlOjoKK29wcG9zaXRlIG9mIDpmdW5jOmBmaWx0ZXJgLCByZXR1cm5pbmcgYWxsIGVsZW1lbnRzIGZvciB3aGljaCB0aGUgcHJlZGljYXRlCityZXR1cm5zIGZhbHNlOjoKIAogICAgIGl0ZXJ0b29scy5maWx0ZXJmYWxzZShpc19ldmVuLCBpdGVydG9vbHMuY291bnQoKSkgPT4KICAgICAgIDEsIDMsIDUsIDcsIDksIDExLCAxMywgMTUsIC4uLgpAQCAtODY0LDYgKzg2Nyw3NyBAQAogICAgIGl0ZXJ0b29scy5kcm9wd2hpbGUoaXNfZXZlbiwgaXRlcnRvb2xzLmNvdW50KCkpID0+CiAgICAgICAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgLi4uCiAKKzpmdW5jOmBpdGVydG9vbHMuY29tcHJlc3MoZGF0YSwgc2VsZWN0b3JzKSA8aXRlcnRvb2xzLmNvbXByZXNzPmAgdGFrZXMgdHdvCitpdGVyYXRvcnMgYW5kIHJldHVybnMgb25seSB0aG9zZSBlbGVtZW50cyBvZiAqZGF0YSogZm9yIHdoaWNoIHRoZSBjb3JyZXNwb25kaW5nCitlbGVtZW50IG9mICpzZWxlY3RvcnMqIGlzIHRydWUsIHN0b3BwaW5nIHdoZW5ldmVyIGVpdGhlciBvbmUgaXMgZXhoYXVzdGVkOjoKKworICAgIGl0ZXJ0b29scy5jb21wcmVzcyhbMSwyLDMsNCw1XSwgW1RydWUsIFRydWUsIEZhbHNlLCBGYWxzZSwgVHJ1ZV0pID0+CisgICAgICAgMSwgMiwgNQorCisKK0NvbWJpbmF0b3JpYyBmdW5jdGlvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIDpmdW5jOmBpdGVydG9vbHMuY29tYmluYXRpb25zKGl0ZXJhYmxlLCByKSA8aXRlcnRvb2xzLmNvbWJpbmF0aW9ucz5gCityZXR1cm5zIGFuIGl0ZXJhdG9yIGdpdmluZyBhbGwgcG9zc2libGUgKnIqLXR1cGxlIGNvbWJpbmF0aW9ucyBvZiB0aGUKK2VsZW1lbnRzIGNvbnRhaW5lZCBpbiAqaXRlcmFibGUqLiAgOjoKKworICAgIGl0ZXJ0b29scy5jb21iaW5hdGlvbnMoWzEsIDIsIDMsIDQsIDVdLCAyKSA9PgorICAgICAgKDEsIDIpLCAoMSwgMyksICgxLCA0KSwgKDEsIDUpLAorICAgICAgKDIsIDMpLCAoMiwgNCksICgyLCA1KSwKKyAgICAgICgzLCA0KSwgKDMsIDUpLAorICAgICAgKDQsIDUpCisKKyAgICBpdGVydG9vbHMuY29tYmluYXRpb25zKFsxLCAyLCAzLCA0LCA1XSwgMykgPT4KKyAgICAgICgxLCAyLCAzKSwgKDEsIDIsIDQpLCAoMSwgMiwgNSksICgxLCAzLCA0KSwgKDEsIDMsIDUpLCAoMSwgNCwgNSksCisgICAgICAoMiwgMywgNCksICgyLCAzLCA1KSwgKDIsIDQsIDUpLAorICAgICAgKDMsIDQsIDUpCisKK1RoZSBlbGVtZW50cyB3aXRoaW4gZWFjaCB0dXBsZSByZW1haW4gaW4gdGhlIHNhbWUgb3JkZXIgYXMKKyppdGVyYWJsZSogcmV0dXJuZWQgdGhlbS4gIEZvciBleGFtcGxlLCB0aGUgbnVtYmVyIDEgaXMgYWx3YXlzIGJlZm9yZQorMiwgMywgNCwgb3IgNSBpbiB0aGUgZXhhbXBsZXMgYWJvdmUuICBBIHNpbWlsYXIgZnVuY3Rpb24sCis6ZnVuYzpgaXRlcnRvb2xzLnBlcm11dGF0aW9ucyhpdGVyYWJsZSwgcj1Ob25lKSA8aXRlcnRvb2xzLnBlcm11dGF0aW9ucz5gLAorcmVtb3ZlcyB0aGlzIGNvbnN0cmFpbnQgb24gdGhlIG9yZGVyLCByZXR1cm5pbmcgYWxsIHBvc3NpYmxlCithcnJhbmdlbWVudHMgb2YgbGVuZ3RoICpyKjo6CisKKyAgICBpdGVydG9vbHMucGVybXV0YXRpb25zKFsxLCAyLCAzLCA0LCA1XSwgMikgPT4KKyAgICAgICgxLCAyKSwgKDEsIDMpLCAoMSwgNCksICgxLCA1KSwKKyAgICAgICgyLCAxKSwgKDIsIDMpLCAoMiwgNCksICgyLCA1KSwKKyAgICAgICgzLCAxKSwgKDMsIDIpLCAoMywgNCksICgzLCA1KSwKKyAgICAgICg0LCAxKSwgKDQsIDIpLCAoNCwgMyksICg0LCA1KSwKKyAgICAgICg1LCAxKSwgKDUsIDIpLCAoNSwgMyksICg1LCA0KQorCisgICAgaXRlcnRvb2xzLnBlcm11dGF0aW9ucyhbMSwgMiwgMywgNCwgNV0pID0+CisgICAgICAoMSwgMiwgMywgNCwgNSksICgxLCAyLCAzLCA1LCA0KSwgKDEsIDIsIDQsIDMsIDUpLAorICAgICAgLi4uCisgICAgICAoNSwgNCwgMywgMiwgMSkKKworSWYgeW91IGRvbid0IHN1cHBseSBhIHZhbHVlIGZvciAqciogdGhlIGxlbmd0aCBvZiB0aGUgaXRlcmFibGUgaXMgdXNlZCwKK21lYW5pbmcgdGhhdCBhbGwgdGhlIGVsZW1lbnRzIGFyZSBwZXJtdXRlZC4KKworTm90ZSB0aGF0IHRoZXNlIGZ1bmN0aW9ucyBwcm9kdWNlIGFsbCBvZiB0aGUgcG9zc2libGUgY29tYmluYXRpb25zIGJ5Citwb3NpdGlvbiBhbmQgZG9uJ3QgcmVxdWlyZSB0aGF0IHRoZSBjb250ZW50cyBvZiAqaXRlcmFibGUqIGFyZSB1bmlxdWU6OgorCisgICAgaXRlcnRvb2xzLnBlcm11dGF0aW9ucygnYWJhJywgMykgPT4KKyAgICAgICgnYScsICdiJywgJ2EnKSwgKCdhJywgJ2EnLCAnYicpLCAoJ2InLCAnYScsICdhJyksCisgICAgICAoJ2InLCAnYScsICdhJyksICgnYScsICdhJywgJ2InKSwgKCdhJywgJ2InLCAnYScpCisKK1RoZSBpZGVudGljYWwgdHVwbGUgYGAoJ2EnLCAnYScsICdiJylgYCBvY2N1cnMgdHdpY2UsIGJ1dCB0aGUgdHdvICdhJworc3RyaW5ncyBjYW1lIGZyb20gZGlmZmVyZW50IHBvc2l0aW9ucy4KKworVGhlIDpmdW5jOmBpdGVydG9vbHMuY29tYmluYXRpb25zX3dpdGhfcmVwbGFjZW1lbnQoaXRlcmFibGUsIHIpIDxpdGVydG9vbHMuY29tYmluYXRpb25zX3dpdGhfcmVwbGFjZW1lbnQ+YAorZnVuY3Rpb24gcmVsYXhlcyBhIGRpZmZlcmVudCBjb25zdHJhaW50OiBlbGVtZW50cyBjYW4gYmUgcmVwZWF0ZWQKK3dpdGhpbiBhIHNpbmdsZSB0dXBsZS4gIENvbmNlcHR1YWxseSBhbiBlbGVtZW50IGlzIHNlbGVjdGVkIGZvciB0aGUKK2ZpcnN0IHBvc2l0aW9uIG9mIGVhY2ggdHVwbGUgYW5kIHRoZW4gaXMgcmVwbGFjZWQgYmVmb3JlIHRoZSBzZWNvbmQKK2VsZW1lbnQgaXMgc2VsZWN0ZWQuICA6OgorCisgICAgaXRlcnRvb2xzLmNvbWJpbmF0aW9uc193aXRoX3JlcGxhY2VtZW50KFsxLCAyLCAzLCA0LCA1XSwgMikgPT4KKyAgICAgICgxLCAxKSwgKDEsIDIpLCAoMSwgMyksICgxLCA0KSwgKDEsIDUpLAorICAgICAgKDIsIDIpLCAoMiwgMyksICgyLCA0KSwgKDIsIDUpLAorICAgICAgKDMsIDMpLCAoMywgNCksICgzLCA1KSwKKyAgICAgICg0LCA0KSwgKDQsIDUpLAorICAgICAgKDUsIDUpCisKIAogR3JvdXBpbmcgZWxlbWVudHMKIC0tLS0tLS0tLS0tLS0tLS0tCkBAIC05ODYsNiArMTA2MCwxNyBAQAogICAgZm9yIGkgaW4gWzEsMiwzXToKICAgICAgICBwcm9kdWN0ICo9IGkKIAorQSByZWxhdGVkIGZ1bmN0aW9uIGlzIGBpdGVydG9vbHMuYWNjdW11bGF0ZShpdGVyYWJsZSwgZnVuYz1vcGVyYXRvci5hZGQpIDxpdGVydG9vbHMuYWNjdW11bGF0ZWAuCitJdCBwZXJmb3JtcyB0aGUgc2FtZSBjYWxjdWxhdGlvbiwgYnV0IGluc3RlYWQgb2YgcmV0dXJuaW5nIG9ubHkgdGhlCitmaW5hbCByZXN1bHQsIDpmdW5jOmBhY2N1bXVsYXRlYCByZXR1cm5zIGFuIGl0ZXJhdG9yIHRoYXQgYWxzbyB5aWVsZHMKK2VhY2ggcGFydGlhbCByZXN1bHQ6OgorCisgICAgaXRlcnRvb2xzLmFjY3VtdWxhdGUoWzEsMiwzLDQsNV0pID0+CisgICAgICAxLCAzLCA2LCAxMCwgMTUKKworICAgIGl0ZXJ0b29scy5hY2N1bXVsYXRlKFsxLDIsMyw0LDVdLCBvcGVyYXRvci5tdWwpID0+CisgICAgICAxLCAyLCA2LCAyNCwgMTIwCisKIAogVGhlIG9wZXJhdG9yIG1vZHVsZQogLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTE1OSw1MSArMTI0NCw2IEBACiAKIC4uIGNvbW1lbnQKIAotICAgIFRvcGljcyB0byBwbGFjZQotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICBYWFggb3Mud2FsaygpCi0KLSAgICBYWFggTmVlZCBhIGxhcmdlIGV4YW1wbGUuCi0KLSAgICBCdXQgd2lsbCBhbiBleGFtcGxlIGFkZCBtdWNoPyAgSSdsbCBwb3N0IGEgZmlyc3QgZHJhZnQgYW5kIHNlZQotICAgIHdoYXQgdGhlIGNvbW1lbnRzIHNheS4KLQotLi4gY29tbWVudAotCi0gICAgT3JpZ2luYWwgb3V0bGluZToKLSAgICBJbnRyb2R1Y3Rpb24KLSAgICAgICAgICAgIElkZWEgb2YgRlAKLSAgICAgICAgICAgICAgICAgICAgUHJvZ3JhbXMgYnVpbHQgb3V0IG9mIGZ1bmN0aW9ucwotICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbnMgYXJlIHN0cmljdGx5IGlucHV0LW91dHB1dCwgbm8gaW50ZXJuYWwgc3RhdGUKLSAgICAgICAgICAgIE9wcG9zZWQgdG8gT08gcHJvZ3JhbW1pbmcsIHdoZXJlIG9iamVjdHMgaGF2ZSBzdGF0ZQotCi0gICAgICAgICAgICBXaHkgRlA/Ci0gICAgICAgICAgICAgICAgICAgIEZvcm1hbCBwcm92YWJpbGl0eQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFzc2lnbm1lbnQgaXMgZGlmZmljdWx0IHRvIHJlYXNvbiBhYm91dAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vdCB2ZXJ5IHJlbGV2YW50IHRvIFB5dGhvbgotICAgICAgICAgICAgICAgICAgICBNb2R1bGFyaXR5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU21hbGwgZnVuY3Rpb25zIHRoYXQgZG8gb25lIHRoaW5nCi0gICAgICAgICAgICAgICAgICAgIERlYnVnZ2FiaWxpdHk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRWFzeSB0byB0ZXN0IGR1ZSB0byBsYWNrIG9mIHN0YXRlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRWFzeSB0byB2ZXJpZnkgb3V0cHV0IGZyb20gaW50ZXJtZWRpYXRlIHN0ZXBzCi0gICAgICAgICAgICAgICAgICAgIENvbXBvc2FiaWxpdHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBZb3UgYXNzZW1ibGUgYSB0b29sYm94IG9mIGZ1bmN0aW9ucyB0aGF0IGNhbiBiZSBtaXhlZAotCi0gICAgVGFja2xpbmcgYSBwcm9ibGVtCi0gICAgICAgICAgICBOZWVkIGEgc2lnbmlmaWNhbnQgZXhhbXBsZQotCi0gICAgSXRlcmF0b3JzCi0gICAgR2VuZXJhdG9ycwotICAgIFRoZSBpdGVydG9vbHMgbW9kdWxlCi0gICAgTGlzdCBjb21wcmVoZW5zaW9ucwotICAgIFNtYWxsIGZ1bmN0aW9ucyBhbmQgdGhlIGxhbWJkYSBzdGF0ZW1lbnQKLSAgICBCdWlsdC1pbiBmdW5jdGlvbnMKLSAgICAgICAgICAgIG1hcAotICAgICAgICAgICAgZmlsdGVyCi0KLS4uIGNvbW1lbnQKLQogICAgIEhhbmR5IGxpdHRsZSBmdW5jdGlvbiBmb3IgcHJpbnRpbmcgcGFydCBvZiBhbiBpdGVyYXRvciAtLSB1c2VkCiAgICAgd2hpbGUgd3JpdGluZyB0aGlzIGRvY3VtZW50LgogCkBAIC0xMjE0LDUgKzEyNTQsMyBAQAogICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoc3RyKGVsZW0pKQogICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJywgJykKICAgICAgICAgcHJpbnQoZWxlbVstMV0pCi0KLQpkaWZmIC0tZ2l0IGEvRG9jL2hvd3RvL2xvZ2dpbmctY29va2Jvb2sucnN0IGIvRG9jL2hvd3RvL2xvZ2dpbmctY29va2Jvb2sucnN0CmluZGV4IGNkZDRiNjYuLjZlYTlhM2YgMTAwNjQ0Ci0tLSBhL0RvYy9ob3d0by9sb2dnaW5nLWNvb2tib29rLnJzdAorKysgYi9Eb2MvaG93dG8vbG9nZ2luZy1jb29rYm9vay5yc3QKQEAgLTc0MSw5ICs3NDEsNyBAQAogICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKHJlY29yZC5uYW1lKQogICAgICAgICAgICAgICAgIGxvZ2dlci5oYW5kbGUocmVjb3JkKSAjIE5vIGxldmVsIG9yIGZpbHRlciBsb2dpYyBhcHBsaWVkIC0ganVzdCBkbyBpdCEKLSAgICAgICAgICAgIGV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgICAgIGltcG9ydCBzeXMsIHRyYWNlYmFjawogICAgICAgICAgICAgICAgIHByaW50KCdXaG9vcHMhIFByb2JsZW06JywgZmlsZT1zeXMuc3RkZXJyKQogICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQpkaWZmIC0tZ2l0IGEvRG9jL2hvd3RvL3VybGxpYjIucnN0IGIvRG9jL2hvd3RvL3VybGxpYjIucnN0CmluZGV4IDdhZmU5YTYuLmI2ODNhYjYgMTAwNjQ0Ci0tLSBhL0RvYy9ob3d0by91cmxsaWIyLnJzdAorKysgYi9Eb2MvaG93dG8vdXJsbGliMi5yc3QKQEAgLTUwNyw3ICs1MDcsNyBAQAogICAgIC0tIGBgUHJveHlIYW5kbGVyYGAgKGlmIGEgcHJveHkgc2V0dGluZyBzdWNoIGFzIGFuIDplbnZ2YXI6YGh0dHBfcHJveHlgCiAgICAgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0KSwgYGBVbmtub3duSGFuZGxlcmBgLCBgYEhUVFBIYW5kbGVyYGAsCiAgICAgYGBIVFRQRGVmYXVsdEVycm9ySGFuZGxlcmBgLCBgYEhUVFBSZWRpcmVjdEhhbmRsZXJgYCwgYGBGVFBIYW5kbGVyYGAsCi0gICAgYGBGaWxlSGFuZGxlcmBgLCBgYEhUVFBFcnJvclByb2Nlc3NvcmBgLgorICAgIGBgRmlsZUhhbmRsZXJgYCwgYGBEYXRhSGFuZGxlcmBgLCBgYEhUVFBFcnJvclByb2Nlc3NvcmBgLgogCiBgYHRvcF9sZXZlbF91cmxgYCBpcyBpbiBmYWN0ICplaXRoZXIqIGEgZnVsbCBVUkwgKGluY2x1ZGluZyB0aGUgJ2h0dHA6JyBzY2hlbWUKIGNvbXBvbmVudCBhbmQgdGhlIGhvc3RuYW1lIGFuZCBvcHRpb25hbGx5IHRoZSBwb3J0IG51bWJlcikKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5LzJ0bzMucnN0IGIvRG9jL2xpYnJhcnkvMnRvMy5yc3QKaW5kZXggOTdlNjkyZi4uMTU4YjNiZSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvMnRvMy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvMnRvMy5yc3QKQEAgLTM0Miw2ICszNDIsMTAgQEAKIAogICAgSGFuZGxlcyB0aGUgbW92ZSBvZiA6ZnVuYzpgcmVkdWNlYCB0byA6ZnVuYzpgZnVuY3Rvb2xzLnJlZHVjZWAuCiAKKy4uIDJ0bzNmaXhlcjo6IHJlbG9hZAorCisgICBDb252ZXJ0cyA6ZnVuYzpgcmVsb2FkYCB0byA6ZnVuYzpgaW1wLnJlbG9hZGAuCisKIC4uIDJ0bzNmaXhlcjo6IHJlbmFtZXMKIAogICAgQ2hhbmdlcyA6ZGF0YTpgc3lzLm1heGludGAgdG8gOmRhdGE6YHN5cy5tYXhzaXplYC4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2FiYy5yc3QgYi9Eb2MvbGlicmFyeS9hYmMucnN0CmluZGV4IDZmMjM1OTYuLjFmMjFiNTcgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2FiYy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvYWJjLnJzdApAQCAtMTIsOSArMTIsOSBAQAogLS0tLS0tLS0tLS0tLS0KIAogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhlIGluZnJhc3RydWN0dXJlIGZvciBkZWZpbmluZyA6dGVybTpgYWJzdHJhY3QgYmFzZQotY2xhc3NlcyA8YWJzdHJhY3QgYmFzZSBjbGFzcz5gIChBQkNzKSBpbiBQeXRob24sIGFzIG91dGxpbmVkIGluIDpwZXA6YDMxMTlgOyBzZWUgdGhlIFBFUCBmb3Igd2h5IHRoaXMKLXdhcyBhZGRlZCB0byBQeXRob24uIChTZWUgYWxzbyA6cGVwOmAzMTQxYCBhbmQgdGhlIDptb2Q6YG51bWJlcnNgIG1vZHVsZQotcmVnYXJkaW5nIGEgdHlwZSBoaWVyYXJjaHkgZm9yIG51bWJlcnMgYmFzZWQgb24gQUJDcy4pCitjbGFzc2VzIDxhYnN0cmFjdCBiYXNlIGNsYXNzPmAgKEFCQ3MpIGluIFB5dGhvbiwgYXMgb3V0bGluZWQgaW4gOnBlcDpgMzExOWA7CitzZWUgdGhlIFBFUCBmb3Igd2h5IHRoaXMgd2FzIGFkZGVkIHRvIFB5dGhvbi4gKFNlZSBhbHNvIDpwZXA6YDMxNDFgIGFuZCB0aGUKKzptb2Q6YG51bWJlcnNgIG1vZHVsZSByZWdhcmRpbmcgYSB0eXBlIGhpZXJhcmNoeSBmb3IgbnVtYmVycyBiYXNlZCBvbiBBQkNzLikKIAogVGhlIDptb2Q6YGNvbGxlY3Rpb25zYCBtb2R1bGUgaGFzIHNvbWUgY29uY3JldGUgY2xhc3NlcyB0aGF0IGRlcml2ZSBmcm9tCiBBQkNzOyB0aGVzZSBjYW4sIG9mIGNvdXJzZSwgYmUgZnVydGhlciBkZXJpdmVkLiBJbiBhZGRpdGlvbiB0aGUKQEAgLTIzLDcgKzIzLDcgQEAKIGhhc2hhYmxlIG9yIGEgbWFwcGluZy4KIAogCi1UaGlzIG1vZHVsZSBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGNsYXNzOgorVGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBjbGFzc2VzOgogCiAuLiBjbGFzczo6IEFCQ01ldGEKIApAQCAtNTgsNiArNTgsMTAgQEAKICAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCiAgICAgICAgICBSZXR1cm5zIHRoZSByZWdpc3RlcmVkIHN1YmNsYXNzLCB0byBhbGxvdyB1c2FnZSBhcyBhIGNsYXNzIGRlY29yYXRvci4KIAorICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgICAgIFRvIGRldGVjdCBjYWxscyB0byA6bWV0aDpgcmVnaXN0ZXJgLCB5b3UgY2FuIHVzZSB0aGUKKyAgICAgICAgIDpmdW5jOmBnZXRfY2FjaGVfdG9rZW5gIGZ1bmN0aW9uLgorCiAgICBZb3UgY2FuIGFsc28gb3ZlcnJpZGUgdGhpcyBtZXRob2QgaW4gYW4gYWJzdHJhY3QgYmFzZSBjbGFzczoKIAogICAgLi4gbWV0aG9kOjogX19zdWJjbGFzc2hvb2tfXyhzdWJjbGFzcykKQEAgLTEyNyw2ICsxMzEsMTkgQEAKICAgIGF2YWlsYWJsZSBhcyBhIG1ldGhvZCBvZiBgYEZvb2BgLCBzbyBpdCBpcyBwcm92aWRlZCBzZXBhcmF0ZWx5LgogCiAKKy4uIGNsYXNzOjogQUJDCisKKyAgIEEgaGVscGVyIGNsYXNzIHRoYXQgaGFzIDpjbGFzczpgQUJDTWV0YWAgYXMgaXRzIG1ldGFjbGFzcy4gIFdpdGggdGhpcyBjbGFzcywKKyAgIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MgY2FuIGJlIGNyZWF0ZWQgYnkgc2ltcGx5IGRlcml2aW5nIGZyb20gOmNsYXNzOmBBQkNgLAorICAgYXZvaWRpbmcgc29tZXRpbWVzIGNvbmZ1c2luZyBtZXRhY2xhc3MgdXNhZ2UuCisKKyAgIE5vdGUgdGhhdCB0aGUgdHlwZSBvZiA6Y2xhc3M6YEFCQ2AgaXMgc3RpbGwgOmNsYXNzOmBBQkNNZXRhYCwgdGhlcmVmb3JlCisgICBpbmhlcml0aW5nIGZyb20gOmNsYXNzOmBBQkNgIHJlcXVpcmVzIHRoZSB1c3VhbCBwcmVjYXV0aW9ucyByZWdhcmRpbmcgbWV0YWNsYXNzCisgICB1c2FnZSwgYXMgbXVsdGlwbGUgaW5oZXJpdGFuY2UgbWF5IGxlYWQgdG8gbWV0YWNsYXNzIGNvbmZsaWN0cy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CisKKwogVGhlIDptb2Q6YGFiY2AgbW9kdWxlIGFsc28gcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBkZWNvcmF0b3JzOgogCiAuLiBkZWNvcmF0b3I6OiBhYnN0cmFjdG1ldGhvZApAQCAtMjk1LDYgKzMxMiwxOSBAQAogICAgICAgIDpmdW5jOmBhYnN0cmFjdG1ldGhvZGAsIG1ha2luZyB0aGlzIGRlY29yYXRvciByZWR1bmRhbnQuCiAKIAorVGhlIDptb2Q6YGFiY2AgbW9kdWxlIGFsc28gcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnM6CisKKy4uIGZ1bmN0aW9uOjogZ2V0X2NhY2hlX3Rva2VuKCkKKworICAgUmV0dXJucyB0aGUgY3VycmVudCBhYnN0cmFjdCBiYXNlIGNsYXNzIGNhY2hlIHRva2VuLgorCisgICBUaGUgdG9rZW4gaXMgYW4gb3BhcXVlIGludGVnZXIgaWRlbnRpZnlpbmcgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUKKyAgIGFic3RyYWN0IGJhc2UgY2xhc3MgY2FjaGUgZm9yIHZpcnR1YWwgc3ViY2xhc3Nlcy4gVGhpcyBudW1iZXIgY2hhbmdlcworICAgd2l0aCBldmVyeSBjYWxsIHRvIDptZXRoOmBBQkNNZXRhLnJlZ2lzdGVyYCBvbiBhbnkgQUJDLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKKworCiAuLiBydWJyaWM6OiBGb290bm90ZXMKIAogLi4gWyNdIEMrKyBwcm9ncmFtbWVycyBzaG91bGQgbm90ZSB0aGF0IFB5dGhvbidzIHZpcnR1YWwgYmFzZSBjbGFzcwpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvYWlmYy5yc3QgYi9Eb2MvbGlicmFyeS9haWZjLnJzdAppbmRleCA5OTliYWQ4Li5mOGE2YWI3IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9haWZjLnJzdAorKysgYi9Eb2MvbGlicmFyeS9haWZjLnJzdApAQCAtNTEsNiArNTEsMTAgQEAKICAgIHVzZWQgZm9yIHdyaXRpbmcsIHRoZSBmaWxlIG9iamVjdCBzaG91bGQgYmUgc2Vla2FibGUsIHVubGVzcyB5b3Uga25vdyBhaGVhZCBvZgogICAgdGltZSBob3cgbWFueSBzYW1wbGVzIHlvdSBhcmUgZ29pbmcgdG8gd3JpdGUgaW4gdG90YWwgYW5kIHVzZQogICAgOm1ldGg6YHdyaXRlZnJhbWVzcmF3YCBhbmQgOm1ldGg6YHNldG5mcmFtZXNgLgorICAgT2JqZWN0cyByZXR1cm5lZCBieSA6ZnVuYzpgLm9wZW5gIGFsc28gc3VwcG9ydHMgdGhlIDprZXl3b3JkOmB3aXRoYCBzdGF0ZW1lbnQuCisKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICBTdXBwb3J0IGZvciB0aGUgOmtleXdvcmQ6YHdpdGhgIHN0YXRlbWVudCB3YXMgYWRkZWQuCiAKIE9iamVjdHMgcmV0dXJuZWQgYnkgOmZ1bmM6YC5vcGVuYCB3aGVuIGEgZmlsZSBpcyBvcGVuZWQgZm9yIHJlYWRpbmcgaGF2ZSB0aGUKIGZvbGxvd2luZyBtZXRob2RzOgpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvYXJncGFyc2UucnN0IGIvRG9jL2xpYnJhcnkvYXJncGFyc2UucnN0CmluZGV4IDcyNjdhZTQuLmYzZWI5ZGQgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2FyZ3BhcnNlLnJzdAorKysgYi9Eb2MvbGlicmFyeS9hcmdwYXJzZS5yc3QKQEAgLTk3Nyw5ICs5NzcsOSBAQAogYGB0eXBlYGAgYXJndW1lbnQgaXMgYXBwbGllZCB0byBkZWZhdWx0IGFyZ3VtZW50cy4KIAogVG8gZWFzZSB0aGUgdXNlIG9mIHZhcmlvdXMgdHlwZXMgb2YgZmlsZXMsIHRoZSBhcmdwYXJzZSBtb2R1bGUgcHJvdmlkZXMgdGhlCi1mYWN0b3J5IEZpbGVUeXBlIHdoaWNoIHRha2VzIHRoZSBgYG1vZGU9YGAgYW5kIGBgYnVmc2l6ZT1gYCBhcmd1bWVudHMgb2YgdGhlCi06ZnVuYzpgb3BlbmAgZnVuY3Rpb24uICBGb3IgZXhhbXBsZSwgYGBGaWxlVHlwZSgndycpYGAgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEKLXdyaXRhYmxlIGZpbGU6OgorZmFjdG9yeSBGaWxlVHlwZSB3aGljaCB0YWtlcyB0aGUgYGBtb2RlPWBgLCBgYGJ1ZnNpemU9YGAsIGBgZW5jb2Rpbmc9YGAgYW5kCitgYGVycm9ycz1gYCBhcmd1bWVudHMgb2YgdGhlIDpmdW5jOmBvcGVuYCBmdW5jdGlvbi4gIEZvciBleGFtcGxlLAorYGBGaWxlVHlwZSgndycpYGAgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgd3JpdGFibGUgZmlsZTo6CiAKICAgID4+PiBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCiAgICA+Pj4gcGFyc2VyLmFkZF9hcmd1bWVudCgnYmFyJywgdHlwZT1hcmdwYXJzZS5GaWxlVHlwZSgndycpKQpAQCAtMTYxOSwxNyArMTYxOSwxOSBAQAogRmlsZVR5cGUgb2JqZWN0cwogXl5eXl5eXl5eXl5eXl5eXgogCi0uLiBjbGFzczo6IEZpbGVUeXBlKG1vZGU9J3InLCBidWZzaXplPU5vbmUpCisuLiBjbGFzczo6IEZpbGVUeXBlKG1vZGU9J3InLCBidWZzaXplPS0xLCBlbmNvZGluZz1Ob25lLCBlcnJvcnM9Tm9uZSkKIAogICAgVGhlIDpjbGFzczpgRmlsZVR5cGVgIGZhY3RvcnkgY3JlYXRlcyBvYmplY3RzIHRoYXQgY2FuIGJlIHBhc3NlZCB0byB0aGUgdHlwZQogICAgYXJndW1lbnQgb2YgOm1ldGg6YEFyZ3VtZW50UGFyc2VyLmFkZF9hcmd1bWVudGAuICBBcmd1bWVudHMgdGhhdCBoYXZlCi0gICA6Y2xhc3M6YEZpbGVUeXBlYCBvYmplY3RzIGFzIHRoZWlyIHR5cGUgd2lsbCBvcGVuIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgYXMgZmlsZXMKLSAgIHdpdGggdGhlIHJlcXVlc3RlZCBtb2RlcyBhbmQgYnVmZmVyIHNpemVzOjoKKyAgIDpjbGFzczpgRmlsZVR5cGVgIG9iamVjdHMgYXMgdGhlaXIgdHlwZSB3aWxsIG9wZW4gY29tbWFuZC1saW5lIGFyZ3VtZW50cyBhcworICAgZmlsZXMgd2l0aCB0aGUgcmVxdWVzdGVkIG1vZGVzLCBidWZmZXIgc2l6ZXMsIGVuY29kaW5ncyBhbmQgZXJyb3IgaGFuZGxpbmcKKyAgIChzZWUgdGhlIDpmdW5jOmBvcGVuYCBmdW5jdGlvbiBmb3IgbW9yZSBkZXRhaWxzKTo6CiAKICAgICAgID4+PiBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCi0gICAgICA+Pj4gcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1vdXRwdXQnLCB0eXBlPWFyZ3BhcnNlLkZpbGVUeXBlKCd3YicsIDApKQotICAgICAgPj4+IHBhcnNlci5wYXJzZV9hcmdzKFsnLS1vdXRwdXQnLCAnb3V0J10pCi0gICAgICBOYW1lc3BhY2Uob3V0cHV0PTxfaW8uQnVmZmVyZWRXcml0ZXIgbmFtZT0nb3V0Jz4pCisgICAgICA+Pj4gcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1yYXcnLCB0eXBlPWFyZ3BhcnNlLkZpbGVUeXBlKCd3YicsIDApKQorICAgICAgPj4+IHBhcnNlci5hZGRfYXJndW1lbnQoJ291dCcsIHR5cGU9YXJncGFyc2UuRmlsZVR5cGUoJ3cnLCBlbmNvZGluZz0nVVRGLTgnKSkKKyAgICAgID4+PiBwYXJzZXIucGFyc2VfYXJncyhbJy0tcmF3JywgJ3Jhdy5kYXQnLCAnZmlsZS50eHQnXSkKKyAgICAgIE5hbWVzcGFjZShvdXQ9PF9pby5UZXh0SU9XcmFwcGVyIG5hbWU9J2ZpbGUudHh0JyBtb2RlPSd3JyBlbmNvZGluZz0nVVRGLTgnPiwgcmF3PTxfaW8uRmlsZUlPIG5hbWU9J3Jhdy5kYXQnIG1vZGU9J3diJz4pCiAKICAgIEZpbGVUeXBlIG9iamVjdHMgdW5kZXJzdGFuZCB0aGUgcHNldWRvLWFyZ3VtZW50IGBgJy0nYGAgYW5kIGF1dG9tYXRpY2FsbHkKICAgIGNvbnZlcnQgdGhpcyBpbnRvIGBgc3lzLnN0ZGluYGAgZm9yIHJlYWRhYmxlIDpjbGFzczpgRmlsZVR5cGVgIG9iamVjdHMgYW5kCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9jb2xsZWN0aW9ucy5yc3QgYi9Eb2MvbGlicmFyeS9jb2xsZWN0aW9ucy5yc3QKaW5kZXggYTY1ZmU1Yi4uOTZjNWFlZiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvY29sbGVjdGlvbnMucnN0CisrKyBiL0RvYy9saWJyYXJ5L2NvbGxlY3Rpb25zLnJzdApAQCAtNzYsMTQgKzc2LDE5IEBACiAgICAgICAgIGJlIG1vZGlmaWVkIHRvIGNoYW5nZSB3aGljaCBtYXBwaW5ncyBhcmUgc2VhcmNoZWQuICBUaGUgbGlzdCBzaG91bGQKICAgICAgICAgYWx3YXlzIGNvbnRhaW4gYXQgbGVhc3Qgb25lIG1hcHBpbmcuCiAKLSAgICAuLiBtZXRob2Q6OiBuZXdfY2hpbGQoKQorICAgIC4uIG1ldGhvZDo6IG5ld19jaGlsZChtPU5vbmUpCiAKLSAgICAgICAgUmV0dXJucyBhIG5ldyA6Y2xhc3M6YENoYWluTWFwYCBjb250YWluaW5nIGEgbmV3IDpjbGFzczpgZGljdGAgZm9sbG93ZWQgYnkKLSAgICAgICAgYWxsIG9mIHRoZSBtYXBzIGluIHRoZSBjdXJyZW50IGluc3RhbmNlLiAgQSBjYWxsIHRvIGBgZC5uZXdfY2hpbGQoKWBgIGlzCi0gICAgICAgIGVxdWl2YWxlbnQgdG86IGBgQ2hhaW5NYXAoe30sICpkLm1hcHMpYGAuICBUaGlzIG1ldGhvZCBpcyB1c2VkIGZvcgorICAgICAgICBSZXR1cm5zIGEgbmV3IDpjbGFzczpgQ2hhaW5NYXBgIGNvbnRhaW5pbmcgYSBuZXcgbWFwIGZvbGxvd2VkIGJ5CisgICAgICAgIGFsbCBvZiB0aGUgbWFwcyBpbiB0aGUgY3VycmVudCBpbnN0YW5jZS4gIElmIGBgbWBgIGlzIHNwZWNpZmllZCwKKyAgICAgICAgaXQgYmVjb21lcyB0aGUgbmV3IG1hcCBhdCB0aGUgZnJvbnQgb2YgdGhlIGxpc3Qgb2YgbWFwcGluZ3M7IGlmIG5vdAorICAgICAgICBzcGVjaWZpZWQsIGFuIGVtcHR5IGRpY3QgaXMgdXNlZCwgc28gdGhhdCBhIGNhbGwgdG8gYGBkLm5ld19jaGlsZCgpYGAKKyAgICAgICAgaXMgZXF1aXZhbGVudCB0bzogYGBDaGFpbk1hcCh7fSwgKmQubWFwcylgYC4gIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yCiAgICAgICAgIGNyZWF0aW5nIHN1YmNvbnRleHRzIHRoYXQgY2FuIGJlIHVwZGF0ZWQgd2l0aG91dCBhbHRlcmluZyB2YWx1ZXMgaW4gYW55CiAgICAgICAgIG9mIHRoZSBwYXJlbnQgbWFwcGluZ3MuCiAKKyAgICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgICAgICAgVGhlIG9wdGlvbmFsIGBgbWBgIHBhcmFtZXRlciB3YXMgYWRkZWQuCisKICAgICAuLiBhdHRyaWJ1dGU6OiBwYXJlbnRzCiAKICAgICAgICAgUHJvcGVydHkgcmV0dXJuaW5nIGEgbmV3IDpjbGFzczpgQ2hhaW5NYXBgIGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBtYXBzIGluCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9jb250ZXh0bGliLnJzdCBiL0RvYy9saWJyYXJ5L2NvbnRleHRsaWIucnN0CmluZGV4IGZiYTQ4ZjQuLjM0OWI4MDUgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2NvbnRleHRsaWIucnN0CisrKyBiL0RvYy9saWJyYXJ5L2NvbnRleHRsaWIucnN0CkBAIC05NCw2ICs5NCwyNiBAQAogICAgd2l0aG91dCBuZWVkaW5nIHRvIGV4cGxpY2l0bHkgY2xvc2UgYGBwYWdlYGAuICBFdmVuIGlmIGFuIGVycm9yIG9jY3VycywKICAgIGBgcGFnZS5jbG9zZSgpYGAgd2lsbCBiZSBjYWxsZWQgd2hlbiB0aGUgOmtleXdvcmQ6YHdpdGhgIGJsb2NrIGlzIGV4aXRlZC4KIAorLi4gZnVuY3Rpb246OiBpZ25vcmVkKCpleGNlcHRpb25zKQorCisgICBSZXR1cm4gYSBjb250ZXh0IG1hbmFnZXIgdGhhdCBpZ25vcmVzIHRoZSBzcGVjaWZpZWQgZXhjZXB0aW9ucyBpZiB0aGV5CisgICBvY2N1ciBpbiB0aGUgYm9keSBvZiBhIHdpdGgtc3RhdGVtZW50LgorCisgICBGb3IgZXhhbXBsZTo6CisKKyAgICAgICBmcm9tIGNvbnRleHRsaWIgaW1wb3J0IGlnbm9yZWQKKworICAgICAgIHdpdGggaWdub3JlZChPU0Vycm9yKToKKyAgICAgICAgICAgb3MucmVtb3ZlKCdzb21lZmlsZS50bXAnKQorCisgICBUaGlzIGNvZGUgaXMgZXF1aXZhbGVudCB0bzo6CisKKyAgICAgICB0cnk6CisgICAgICAgICAgIG9zLnJlbW92ZSgnc29tZWZpbGUudG1wJykKKyAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgcGFzcworCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKIAogLi4gY2xhc3M6OiBDb250ZXh0RGVjb3JhdG9yKCkKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvZGlzLnJzdCBiL0RvYy9saWJyYXJ5L2Rpcy5yc3QKaW5kZXggNDMzOWY1NS4uNDY4Y2U5MiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvZGlzLnJzdAorKysgYi9Eb2MvbGlicmFyeS9kaXMucnN0CkBAIC0yNiw3ICsyNiw4IEBACiAgICBkZWYgbXlmdW5jKGFsaXN0KToKICAgICAgICByZXR1cm4gbGVuKGFsaXN0KQogCi10aGUgZm9sbG93aW5nIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gZ2V0IHRoZSBkaXNhc3NlbWJseSBvZiA6ZnVuYzpgbXlmdW5jYDo6Cit0aGUgZm9sbG93aW5nIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgZGlzYXNzZW1ibHkgb2YKKzpmdW5jOmBteWZ1bmNgOjoKIAogICAgPj4+IGRpcy5kaXMobXlmdW5jKQogICAgICAyICAgICAgICAgICAwIExPQURfR0xPQkFMICAgICAgICAgICAgICAwIChsZW4pCkBAIC0zNiw4ICszNyw2MiBAQAogCiAoVGhlICIyIiBpcyBhIGxpbmUgbnVtYmVyKS4KIAotVGhlIDptb2Q6YGRpc2AgbW9kdWxlIGRlZmluZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYW5kIGNvbnN0YW50czoKK0J5dGVjb2RlIGFuYWx5c2lzCistLS0tLS0tLS0tLS0tLS0tLQogCitUaGUgYnl0ZWNvZGUgYW5hbHlzaXMgQVBJIGFsbG93cyBwaWVjZXMgb2YgUHl0aG9uIGNvZGUgdG8gYmUgd3JhcHBlZCBpbiBhCis6Y2xhc3M6YEJ5dGVjb2RlYCBvYmplY3QgdGhhdCBwcm92aWRlcyBlYXN5IGFjY2VzcyB0byBkZXRhaWxzIG9mIHRoZQorY29tcGlsZWQgY29kZS4KKworLi4gY2xhc3M6OiBCeXRlY29kZQorCisgICBUaGUgYnl0ZWNvZGUgb3BlcmF0aW9ucyBvZiBhIHBpZWNlIG9mIGNvZGUKKworICAgVGhpcyBpcyBhIGNvbnZlbmllbnQgd3JhcHBlciBhcm91bmQgbWFueSBvZiB0aGUgZnVuY3Rpb25zIGxpc3RlZCBiZWxvdy4KKyAgIEluc3RhbnRpYXRlIGl0IHdpdGggYSBmdW5jdGlvbiwgbWV0aG9kLCBzdHJpbmcgb2YgY29kZSwgb3IgYSBjb2RlIG9iamVjdAorICAgKGFzIHJldHVybmVkIGJ5IDpmdW5jOmBjb21waWxlYCkuCisKKyAgIEl0ZXJhdGluZyBvdmVyIHRoaXMgeWllbGRzIHRoZSBieXRlY29kZSBvcGVyYXRpb25zIGFzIDpjbGFzczpgSW5zdHJ1Y3Rpb25gCisgICBpbnN0YW5jZXMuCisKKyAgIC4uIGRhdGE6OiBjb2Rlb2JqCisKKyAgICAgIFRoZSBjb21waWxlZCBjb2RlIG9iamVjdC4KKworICAgLi4gbWV0aG9kOjogZGlzcGxheV9jb2RlKCosIGZpbGU9Tm9uZSkKKworICAgICAgUHJpbnQgYSBmb3JtYXR0ZWQgdmlldyBvZiB0aGUgYnl0ZWNvZGUgb3BlcmF0aW9ucywgbGlrZSA6ZnVuYzpgZGlzYC4KKworICAgLi4gbWV0aG9kOjogaW5mbygpCisKKyAgICAgIFJldHVybiBhIGZvcm1hdHRlZCBtdWx0aS1saW5lIHN0cmluZyB3aXRoIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZQorICAgICAgY29kZSBvYmplY3QsIGxpa2UgOmZ1bmM6YGNvZGVfaW5mb2AuCisKKyAgIC4uIG1ldGhvZDo6IHNob3dfaW5mbygqLCBmaWxlPU5vbmUpCisKKyAgICAgIFByaW50IHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29kZSBvYmplY3QgYXMgcmV0dXJuZWQgYnkgOm1ldGg6YGluZm9gLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKKworRXhhbXBsZTo6CisKKyAgICA+Pj4gYnl0ZWNvZGUgPSBkaXMuQnl0ZWNvZGUobXlmdW5jKQorICAgID4+PiBmb3IgaW5zdHIgaW4gYnl0ZWNvZGU6CisgICAgLi4uICAgICBwcmludChpbnN0ci5vcG5hbWUpCisgICAgLi4uCisgICAgTE9BRF9HTE9CQUwKKyAgICBMT0FEX0ZBU1QKKyAgICBDQUxMX0ZVTkNUSU9OCisgICAgUkVUVVJOX1ZBTFVFCisKKworQW5hbHlzaXMgZnVuY3Rpb25zCistLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIDptb2Q6YGRpc2AgbW9kdWxlIGFsc28gZGVmaW5lcyB0aGUgZm9sbG93aW5nIGFuYWx5c2lzIGZ1bmN0aW9ucyB0aGF0Citjb252ZXJ0IHRoZSBpbnB1dCBkaXJlY3RseSB0byB0aGUgZGVzaXJlZCBvdXRwdXQuIFRoZXkgY2FuIGJlIHVzZWZ1bCBpZgorb25seSBhIHNpbmdsZSBvcGVyYXRpb24gaXMgYmVpbmcgcGVyZm9ybWVkLCBzbyB0aGUgaW50ZXJtZWRpYXRlIGFuYWx5c2lzCitvYmplY3QgaXNuJ3QgdXNlZnVsOgogCiAuLiBmdW5jdGlvbjo6IGNvZGVfaW5mbyh4KQogCkBAIC01MSwxNyArMTA2LDIxIEBACiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAogCi0uLiBmdW5jdGlvbjo6IHNob3dfY29kZSh4KQorLi4gZnVuY3Rpb246OiBzaG93X2NvZGUoeCwgKiwgZmlsZT1Ob25lKQogCiAgICBQcmludCBkZXRhaWxlZCBjb2RlIG9iamVjdCBpbmZvcm1hdGlvbiBmb3IgdGhlIHN1cHBsaWVkIGZ1bmN0aW9uLCBtZXRob2QsCiAgICBzb3VyY2UgY29kZSBzdHJpbmcgb3IgY29kZSBvYmplY3QgdG8gc3Rkb3V0LgogCi0gICBUaGlzIGlzIGEgY29udmVuaWVudCBzaG9ydGhhbmQgZm9yIGBgcHJpbnQoY29kZV9pbmZvKHgpKWBgLCBpbnRlbmRlZCBmb3IKLSAgIGludGVyYWN0aXZlIGV4cGxvcmF0aW9uIGF0IHRoZSBpbnRlcnByZXRlciBwcm9tcHQuCisgICBUaGlzIGlzIGEgY29udmVuaWVudCBzaG9ydGhhbmQgZm9yIGBgcHJpbnQoY29kZV9pbmZvKHgpLCBmaWxlPWZpbGUpYGAsCisgICBpbnRlbmRlZCBmb3IgaW50ZXJhY3RpdmUgZXhwbG9yYXRpb24gYXQgdGhlIGludGVycHJldGVyIHByb21wdC4KIAogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCiAKLS4uIGZ1bmN0aW9uOjogZGlzKHg9Tm9uZSkKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICBBZGRlZCBgYGZpbGVgYCBwYXJhbWV0ZXIKKworCisuLiBmdW5jdGlvbjo6IGRpcyh4PU5vbmUsICosIGZpbGU9Tm9uZSkKIAogICAgRGlzYXNzZW1ibGUgdGhlICp4KiBvYmplY3QuICAqeCogY2FuIGRlbm90ZSBlaXRoZXIgYSBtb2R1bGUsIGEgY2xhc3MsIGEKICAgIG1ldGhvZCwgYSBmdW5jdGlvbiwgYSBjb2RlIG9iamVjdCwgYSBzdHJpbmcgb2Ygc291cmNlIGNvZGUgb3IgYSBieXRlIHNlcXVlbmNlCkBAIC03MiwxNiArMTMxLDI4IEBACiAgICBkaXNhc3NlbWJsZWQuICBJZiBubyBvYmplY3QgaXMgcHJvdmlkZWQsIHRoaXMgZnVuY3Rpb24gZGlzYXNzZW1ibGVzIHRoZSBsYXN0CiAgICB0cmFjZWJhY2suCiAKKyAgIFRoZSBkaXNhc3NlbWJseSBpcyB3cml0dGVuIGFzIHRleHQgdG8gdGhlIHN1cHBsaWVkIGBgZmlsZWBgIGFyZ3VtZW50IGlmCisgICBwcm92aWRlZCBhbmQgdG8gYGBzeXMuc3Rkb3V0YGAgb3RoZXJ3aXNlLgogCi0uLiBmdW5jdGlvbjo6IGRpc3RiKHRiPU5vbmUpCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgQWRkZWQgYGBmaWxlYGAgcGFyYW1ldGVyCisKKworLi4gZnVuY3Rpb246OiBkaXN0Yih0Yj1Ob25lLCAqLCBmaWxlPU5vbmUpCiAKICAgIERpc2Fzc2VtYmxlIHRoZSB0b3Atb2Ytc3RhY2sgZnVuY3Rpb24gb2YgYSB0cmFjZWJhY2ssIHVzaW5nIHRoZSBsYXN0CiAgICB0cmFjZWJhY2sgaWYgbm9uZSB3YXMgcGFzc2VkLiAgVGhlIGluc3RydWN0aW9uIGNhdXNpbmcgdGhlIGV4Y2VwdGlvbiBpcwogICAgaW5kaWNhdGVkLgogCisgICBUaGUgZGlzYXNzZW1ibHkgaXMgd3JpdHRlbiBhcyB0ZXh0IHRvIHRoZSBzdXBwbGllZCBgYGZpbGVgYCBhcmd1bWVudCBpZgorICAgcHJvdmlkZWQgYW5kIHRvIGBgc3lzLnN0ZG91dGBgIG90aGVyd2lzZS4KIAotLi4gZnVuY3Rpb246OiBkaXNhc3NlbWJsZShjb2RlLCBsYXN0aT0tMSkKLSAgICAgICAgICAgICAgZGlzY28oY29kZSwgbGFzdGk9LTEpCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgQWRkZWQgYGBmaWxlYGAgcGFyYW1ldGVyCisKKworLi4gZnVuY3Rpb246OiBkaXNhc3NlbWJsZShjb2RlLCBsYXN0aT0tMSwgKiwgZmlsZT1Ob25lKQorICAgICAgICAgICAgICBkaXNjbyhjb2RlLCBsYXN0aT0tMSwgKiwgZmlsZT1Ob25lKQogCiAgICBEaXNhc3NlbWJsZSBhIGNvZGUgb2JqZWN0LCBpbmRpY2F0aW5nIHRoZSBsYXN0IGluc3RydWN0aW9uIGlmICpsYXN0aSogd2FzCiAgICBwcm92aWRlZC4gIFRoZSBvdXRwdXQgaXMgZGl2aWRlZCBpbiB0aGUgZm9sbG93aW5nIGNvbHVtbnM6CkBAIC05Nyw2ICsxNjgsMjYgQEAKICAgIFRoZSBwYXJhbWV0ZXIgaW50ZXJwcmV0YXRpb24gcmVjb2duaXplcyBsb2NhbCBhbmQgZ2xvYmFsIHZhcmlhYmxlIG5hbWVzLAogICAgY29uc3RhbnQgdmFsdWVzLCBicmFuY2ggdGFyZ2V0cywgYW5kIGNvbXBhcmUgb3BlcmF0b3JzLgogCisgICBUaGUgZGlzYXNzZW1ibHkgaXMgd3JpdHRlbiBhcyB0ZXh0IHRvIHRoZSBzdXBwbGllZCBgYGZpbGVgYCBhcmd1bWVudCBpZgorICAgcHJvdmlkZWQgYW5kIHRvIGBgc3lzLnN0ZG91dGBgIG90aGVyd2lzZS4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgIEFkZGVkIGBgZmlsZWBgIHBhcmFtZXRlcgorCisKKy4uIGZ1bmN0aW9uOjogZ2V0X2luc3RydWN0aW9ucyh4LCAqLCBsaW5lX29mZnNldD0wKQorCisgICBSZXR1cm4gYW4gaXRlcmF0b3Igb3ZlciB0aGUgaW5zdHJ1Y3Rpb25zIGluIHRoZSBzdXBwbGllZCBmdW5jdGlvbiwgbWV0aG9kLAorICAgc291cmNlIGNvZGUgc3RyaW5nIG9yIGNvZGUgb2JqZWN0LgorCisgICBUaGUgaXRlcmF0b3IgZ2VuZXJhdGVzIGEgc2VyaWVzIG9mIDpjbGFzczpgSW5zdHJ1Y3Rpb25gIG5hbWVkIHR1cGxlcworICAgZ2l2aW5nIHRoZSBkZXRhaWxzIG9mIGVhY2ggb3BlcmF0aW9uIGluIHRoZSBzdXBwbGllZCBjb2RlLgorCisgICBUaGUgZ2l2ZW4gKmxpbmVfb2Zmc2V0KiBpcyBhZGRlZCB0byB0aGUgYGBzdGFydHNfbGluZWBgIGF0dHJpYnV0ZSBvZiBhbnkKKyAgIGluc3RydWN0aW9ucyB0aGF0IHN0YXJ0IGEgbmV3IGxpbmUuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCiAKIC4uIGZ1bmN0aW9uOjogZmluZGxpbmVzdGFydHMoY29kZSkKIApAQCAtMTEwLDYyICsyMDEsNjEgQEAKICAgIERldGVjdCBhbGwgb2Zmc2V0cyBpbiB0aGUgY29kZSBvYmplY3QgKmNvZGUqIHdoaWNoIGFyZSBqdW1wIHRhcmdldHMsIGFuZAogICAgcmV0dXJuIGEgbGlzdCBvZiB0aGVzZSBvZmZzZXRzLgogCi0KLS4uIGRhdGE6OiBvcG5hbWUKLQotICAgU2VxdWVuY2Ugb2Ygb3BlcmF0aW9uIG5hbWVzLCBpbmRleGFibGUgdXNpbmcgdGhlIGJ5dGVjb2RlLgotCi0KLS4uIGRhdGE6OiBvcG1hcAotCi0gICBEaWN0aW9uYXJ5IG1hcHBpbmcgb3BlcmF0aW9uIG5hbWVzIHRvIGJ5dGVjb2Rlcy4KLQotCi0uLiBkYXRhOjogY21wX29wCi0KLSAgIFNlcXVlbmNlIG9mIGFsbCBjb21wYXJlIG9wZXJhdGlvbiBuYW1lcy4KLQotCi0uLiBkYXRhOjogaGFzY29uc3QKLQotICAgU2VxdWVuY2Ugb2YgYnl0ZWNvZGVzIHRoYXQgaGF2ZSBhIGNvbnN0YW50IHBhcmFtZXRlci4KLQotCi0uLiBkYXRhOjogaGFzZnJlZQotCi0gICBTZXF1ZW5jZSBvZiBieXRlY29kZXMgdGhhdCBhY2Nlc3MgYSBmcmVlIHZhcmlhYmxlLgotCi0KLS4uIGRhdGE6OiBoYXNuYW1lCi0KLSAgIFNlcXVlbmNlIG9mIGJ5dGVjb2RlcyB0aGF0IGFjY2VzcyBhbiBhdHRyaWJ1dGUgYnkgbmFtZS4KLQotCi0uLiBkYXRhOjogaGFzanJlbAotCi0gICBTZXF1ZW5jZSBvZiBieXRlY29kZXMgdGhhdCBoYXZlIGEgcmVsYXRpdmUganVtcCB0YXJnZXQuCi0KLQotLi4gZGF0YTo6IGhhc2phYnMKLQotICAgU2VxdWVuY2Ugb2YgYnl0ZWNvZGVzIHRoYXQgaGF2ZSBhbiBhYnNvbHV0ZSBqdW1wIHRhcmdldC4KLQotCi0uLiBkYXRhOjogaGFzbG9jYWwKLQotICAgU2VxdWVuY2Ugb2YgYnl0ZWNvZGVzIHRoYXQgYWNjZXNzIGEgbG9jYWwgdmFyaWFibGUuCi0KLQotLi4gZGF0YTo6IGhhc2NvbXBhcmUKLQotICAgU2VxdWVuY2Ugb2YgYnl0ZWNvZGVzIG9mIEJvb2xlYW4gb3BlcmF0aW9ucy4KLQotCiAuLiBfYnl0ZWNvZGVzOgogCiBQeXRob24gQnl0ZWNvZGUgSW5zdHJ1Y3Rpb25zCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK1RoZSA6ZnVuYzpgZ2V0X2luc3RydWN0aW9uc2AgZnVuY3Rpb24gYW5kIDpjbGFzczpgQnl0ZWNvZGVgIGNsYXNzIHByb3ZpZGUKK2RldGFpbHMgb2YgYnl0ZWNvZGUgaW5zdHJ1Y3Rpb25zIGFzIDpjbGFzczpgSW5zdHJ1Y3Rpb25gIGluc3RhbmNlczoKKworLi4gY2xhc3M6OiBJbnN0cnVjdGlvbgorCisgICBEZXRhaWxzIGZvciBhIGJ5dGVjb2RlIG9wZXJhdGlvbgorCisgICAuLiBkYXRhOjogb3Bjb2RlCisKKyAgICAgIG51bWVyaWMgY29kZSBmb3Igb3BlcmF0aW9uLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBvcGNvZGUgdmFsdWVzIGxpc3RlZAorICAgICAgYmVsb3cgYW5kIHRoZSBieXRlY29kZSB2YWx1ZXMgaW4gdGhlIDpyZWY6YG9wY29kZV9jb2xsZWN0aW9uc2AuCisKKworICAgLi4gZGF0YTo6IG9wbmFtZQorCisgICAgICBodW1hbiByZWFkYWJsZSBuYW1lIGZvciBvcGVyYXRpb24KKworCisgICAuLiBkYXRhOjogYXJnCisKKyAgICAgIG51bWVyaWMgYXJndW1lbnQgdG8gb3BlcmF0aW9uIChpZiBhbnkpLCBvdGhlcndpc2UgTm9uZQorCisKKyAgIC4uIGRhdGE6OiBhcmd2YWwKKworICAgICAgcmVzb2x2ZWQgYXJnIHZhbHVlIChpZiBrbm93biksIG90aGVyd2lzZSBzYW1lIGFzIGFyZworCisKKyAgIC4uIGRhdGE6OiBhcmdyZXByCisKKyAgICAgIGh1bWFuIHJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIG9wZXJhdGlvbiBhcmd1bWVudAorCisKKyAgIC4uIGRhdGE6OiBvZmZzZXQKKworICAgICAgc3RhcnQgaW5kZXggb2Ygb3BlcmF0aW9uIHdpdGhpbiBieXRlY29kZSBzZXF1ZW5jZQorCisKKyAgIC4uIGRhdGE6OiBzdGFydHNfbGluZQorCisgICAgICBsaW5lIHN0YXJ0ZWQgYnkgdGhpcyBvcGNvZGUgKGlmIGFueSksIG90aGVyd2lzZSBOb25lCisKKworICAgLi4gZGF0YTo6IGlzX2p1bXBfdGFyZ2V0CisKKyAgICAgIFRydWUgaWYgb3RoZXIgY29kZSBqdW1wcyB0byBoZXJlLCBvdGhlcndpc2UgRmFsc2UKKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CisKKwogVGhlIFB5dGhvbiBjb21waWxlciBjdXJyZW50bHkgZ2VuZXJhdGVzIHRoZSBmb2xsb3dpbmcgYnl0ZWNvZGUgaW5zdHJ1Y3Rpb25zLgogCiAKQEAgLTUwNiwxMiArNTk2LDYgQEAKICAgIC4uIFhYWCBleHBsYWluIHRoZSBXSFkgc3R1ZmYhCiAKIAotLi4gb3Bjb2RlOjogU1RPUkVfTE9DQUxTCi0KLSAgIFBvcHMgVE9TIGZyb20gdGhlIHN0YWNrIGFuZCBzdG9yZXMgaXQgYXMgdGhlIGN1cnJlbnQgZnJhbWUncyBgYGZfbG9jYWxzYGAuCi0gICBUaGlzIGlzIHVzZWQgaW4gY2xhc3MgY29uc3RydWN0aW9uLgotCi0KIEFsbCBvZiB0aGUgZm9sbG93aW5nIG9wY29kZXMgZXhwZWN0IGFyZ3VtZW50cy4gIEFuIGFyZ3VtZW50IGlzIHR3byBieXRlcywgd2l0aAogdGhlIG1vcmUgc2lnbmlmaWNhbnQgYnl0ZSBsYXN0LgogCkBAIC03MjIsNiArODA2LDEzIEBACiAgICBQdXNoZXMgYSByZWZlcmVuY2UgdG8gdGhlIG9iamVjdCB0aGUgY2VsbCBjb250YWlucyBvbiB0aGUgc3RhY2suCiAKIAorLi4gb3Bjb2RlOjogTE9BRF9DTEFTU0RFUkVGIChpKQorCisgICBNdWNoIGxpa2UgOm9wY29kZTpgTE9BRF9ERVJFRmAgYnV0IGZpcnN0IGNoZWNrcyB0aGUgbG9jYWxzIGRpY3Rpb25hcnkgYmVmb3JlCisgICBjb25zdWx0aW5nIHRoZSBjZWxsLiAgVGhpcyBpcyB1c2VkIGZvciBsb2FkaW5nIGZyZWUgdmFyaWFibGVzIGluIGNsYXNzCisgICBib2RpZXMuCisKKwogLi4gb3Bjb2RlOjogU1RPUkVfREVSRUYgKGkpCiAKICAgIFN0b3JlcyBUT1MgaW50byB0aGUgY2VsbCBjb250YWluZWQgaW4gc2xvdCAqaSogb2YgdGhlIGNlbGwgYW5kIGZyZWUgdmFyaWFibGUKQEAgLTgxMywzICs5MDQsNjIgQEAKICAgIHdoaWNoIGRvbid0IHRha2UgYXJndW1lbnRzIGBgPCBIQVZFX0FSR1VNRU5UYGAgYW5kIHRob3NlIHdoaWNoIGRvIGBgPj0KICAgIEhBVkVfQVJHVU1FTlRgYC4KIAorLi4gX29wY29kZV9jb2xsZWN0aW9uczoKKworT3Bjb2RlIGNvbGxlY3Rpb25zCistLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlc2UgY29sbGVjdGlvbnMgYXJlIHByb3ZpZGVkIGZvciBhdXRvbWF0aWMgaW50cm9zcGVjdGlvbiBvZiBieXRlY29kZQoraW5zdHJ1Y3Rpb25zOgorCisuLiBkYXRhOjogb3BuYW1lCisKKyAgIFNlcXVlbmNlIG9mIG9wZXJhdGlvbiBuYW1lcywgaW5kZXhhYmxlIHVzaW5nIHRoZSBieXRlY29kZS4KKworCisuLiBkYXRhOjogb3BtYXAKKworICAgRGljdGlvbmFyeSBtYXBwaW5nIG9wZXJhdGlvbiBuYW1lcyB0byBieXRlY29kZXMuCisKKworLi4gZGF0YTo6IGNtcF9vcAorCisgICBTZXF1ZW5jZSBvZiBhbGwgY29tcGFyZSBvcGVyYXRpb24gbmFtZXMuCisKKworLi4gZGF0YTo6IGhhc2NvbnN0CisKKyAgIFNlcXVlbmNlIG9mIGJ5dGVjb2RlcyB0aGF0IGhhdmUgYSBjb25zdGFudCBwYXJhbWV0ZXIuCisKKworLi4gZGF0YTo6IGhhc2ZyZWUKKworICAgU2VxdWVuY2Ugb2YgYnl0ZWNvZGVzIHRoYXQgYWNjZXNzIGEgZnJlZSB2YXJpYWJsZSAobm90ZSB0aGF0ICdmcmVlJyBpbgorICAgdGhpcyBjb250ZXh0IHJlZmVycyB0byBuYW1lcyBpbiB0aGUgY3VycmVudCBzY29wZSB0aGF0IGFyZSByZWZlcmVuY2VkIGJ5CisgICBpbm5lciBzY29wZXMgb3IgbmFtZXMgaW4gb3V0ZXIgc2NvcGVzIHRoYXQgYXJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHNjb3BlLgorICAgSXQgZG9lcyAqbm90KiBpbmNsdWRlIHJlZmVyZW5jZXMgdG8gZ2xvYmFsIG9yIGJ1aWx0aW4gc2NvcGVzKS4KKworCisuLiBkYXRhOjogaGFzbmFtZQorCisgICBTZXF1ZW5jZSBvZiBieXRlY29kZXMgdGhhdCBhY2Nlc3MgYW4gYXR0cmlidXRlIGJ5IG5hbWUuCisKKworLi4gZGF0YTo6IGhhc2pyZWwKKworICAgU2VxdWVuY2Ugb2YgYnl0ZWNvZGVzIHRoYXQgaGF2ZSBhIHJlbGF0aXZlIGp1bXAgdGFyZ2V0LgorCisKKy4uIGRhdGE6OiBoYXNqYWJzCisKKyAgIFNlcXVlbmNlIG9mIGJ5dGVjb2RlcyB0aGF0IGhhdmUgYW4gYWJzb2x1dGUganVtcCB0YXJnZXQuCisKKworLi4gZGF0YTo6IGhhc2xvY2FsCisKKyAgIFNlcXVlbmNlIG9mIGJ5dGVjb2RlcyB0aGF0IGFjY2VzcyBhIGxvY2FsIHZhcmlhYmxlLgorCisKKy4uIGRhdGE6OiBoYXNjb21wYXJlCisKKyAgIFNlcXVlbmNlIG9mIGJ5dGVjb2RlcyBvZiBCb29sZWFuIG9wZXJhdGlvbnMuCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9kb2N0ZXN0LnJzdCBiL0RvYy9saWJyYXJ5L2RvY3Rlc3QucnN0CmluZGV4IDIyMmM3MTkuLjIwMGRlNDUgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2RvY3Rlc3QucnN0CisrKyBiL0RvYy9saWJyYXJ5L2RvY3Rlc3QucnN0CkBAIC02MzMsNiArNjMzLDE2IEBACiAgICB0aGUgb3V0cHV0IGlzIHN1cHByZXNzZWQuCiAKIAorLi4gZGF0YTo6IEZBSUxfRkFTVAorCisgICBXaGVuIHNwZWNpZmllZCwgZXhpdCBhZnRlciB0aGUgZmlyc3QgZmFpbGluZyBleGFtcGxlIGFuZCBkb24ndCBhdHRlbXB0IHRvIHJ1bgorICAgdGhlIHJlbWFpbmluZyBleGFtcGxlcy4gVGh1cywgdGhlIG51bWJlciBvZiBmYWlsdXJlcyByZXBvcnRlZCB3aWxsIGJlIGF0IG1vc3QKKyAgIDEuICBUaGlzIGZsYWcgbWF5IGJlIHVzZWZ1bCBkdXJpbmcgZGVidWdnaW5nLCBzaW5jZSBleGFtcGxlcyBhZnRlciB0aGUgZmlyc3QKKyAgIGZhaWx1cmUgd29uJ3QgZXZlbiBwcm9kdWNlIGRlYnVnZ2luZyBvdXRwdXQuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCisKIC4uIGRhdGE6OiBSRVBPUlRJTkdfRkxBR1MKIAogICAgQSBiaXRtYXNrIG9yJ2luZyB0b2dldGhlciBhbGwgdGhlIHJlcG9ydGluZyBmbGFncyBhYm92ZS4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2V4Y2VwdGlvbnMucnN0IGIvRG9jL2xpYnJhcnkvZXhjZXB0aW9ucy5yc3QKaW5kZXggOTU5NTIyMS4uZWNlMDM1ZCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvZXhjZXB0aW9ucy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvZXhjZXB0aW9ucy5yc3QKQEAgLTI2MCw2ICsyNjAsMTIgQEAKICAgICAgIDpleGM6YFZNU0Vycm9yYCwgOmV4Yzpgc29ja2V0LmVycm9yYCwgOmV4Yzpgc2VsZWN0LmVycm9yYCBhbmQKICAgICAgIDpleGM6YG1tYXAuZXJyb3JgIGhhdmUgYmVlbiBtZXJnZWQgaW50byA6ZXhjOmBPU0Vycm9yYC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKworICAgICAgVGhlIDphdHRyOmBmaWxlbmFtZWAgYXR0cmlidXRlIGlzIG5vdyB0aGUgb3JpZ2luYWwgZmlsZSBuYW1lIHBhc3NlZCB0bworICAgICAgdGhlIGZ1bmN0aW9uLCBpbnN0ZWFkIG9mIHRoZSBuYW1lIGVuY29kZWQgdG8gb3IgZGVjb2RlZCBmcm9tIHRoZQorICAgICAgZmlsZXN5c3RlbSBlbmNvZGluZy4KKwogCiAuLiBleGNlcHRpb246OiBPdmVyZmxvd0Vycm9yCiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2ZpbGVjbXAucnN0IGIvRG9jL2xpYnJhcnkvZmlsZWNtcC5yc3QKaW5kZXggOGE4OGY4Yy4uOTVjNGRkZiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvZmlsZWNtcC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvZmlsZWNtcC5yc3QKQEAgLTU1LDI4ICs1NSwyNSBAQAogCiAuLiBjbGFzczo6IGRpcmNtcChhLCBiLCBpZ25vcmU9Tm9uZSwgaGlkZT1Ob25lKQogCi0gICBDb25zdHJ1Y3QgYSBuZXcgZGlyZWN0b3J5IGNvbXBhcmlzb24gb2JqZWN0LCB0byBjb21wYXJlIHRoZSBkaXJlY3RvcmllcyAqYSogYW5kCi0gICAqYiouICppZ25vcmUqIGlzIGEgbGlzdCBvZiBuYW1lcyB0byBpZ25vcmUsIGFuZCBkZWZhdWx0cyB0byBgYFsnUkNTJywgJ0NWUycsCi0gICAndGFncyddYGAuICpoaWRlKiBpcyBhIGxpc3Qgb2YgbmFtZXMgdG8gaGlkZSwgYW5kIGRlZmF1bHRzIHRvIGBgW29zLmN1cmRpciwKLSAgIG9zLnBhcmRpcl1gYC4KKyAgIENvbnN0cnVjdCBhIG5ldyBkaXJlY3RvcnkgY29tcGFyaXNvbiBvYmplY3QsIHRvIGNvbXBhcmUgdGhlIGRpcmVjdG9yaWVzICphKgorICAgYW5kICpiKi4gICppZ25vcmUqIGlzIGEgbGlzdCBvZiBuYW1lcyB0byBpZ25vcmUsIGFuZCBkZWZhdWx0cyB0bworICAgOmF0dHI6YGZpbGVjbXAuREVGQVVMVF9JR05PUkVTYC4gICpoaWRlKiBpcyBhIGxpc3Qgb2YgbmFtZXMgdG8gaGlkZSwgYW5kCisgICBkZWZhdWx0cyB0byBgYFtvcy5jdXJkaXIsIG9zLnBhcmRpcl1gYC4KIAogICAgVGhlIDpjbGFzczpgZGlyY21wYCBjbGFzcyBjb21wYXJlcyBmaWxlcyBieSBkb2luZyAqc2hhbGxvdyogY29tcGFyaXNvbnMKICAgIGFzIGRlc2NyaWJlZCBmb3IgOmZ1bmM6YGZpbGVjbXAuY21wYC4KIAogICAgVGhlIDpjbGFzczpgZGlyY21wYCBjbGFzcyBwcm92aWRlcyB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CiAKLQogICAgLi4gbWV0aG9kOjogcmVwb3J0KCkKIAogICAgICAgUHJpbnQgKHRvIDpkYXRhOmBzeXMuc3Rkb3V0YCkgYSBjb21wYXJpc29uIGJldHdlZW4gKmEqIGFuZCAqYiouCiAKLQogICAgLi4gbWV0aG9kOjogcmVwb3J0X3BhcnRpYWxfY2xvc3VyZSgpCiAKICAgICAgIFByaW50IGEgY29tcGFyaXNvbiBiZXR3ZWVuICphKiBhbmQgKmIqIGFuZCBjb21tb24gaW1tZWRpYXRlCiAgICAgICBzdWJkaXJlY3Rvcmllcy4KIAotCiAgICAuLiBtZXRob2Q6OiByZXBvcnRfZnVsbF9jbG9zdXJlKCkKIAogICAgICAgUHJpbnQgYSBjb21wYXJpc29uIGJldHdlZW4gKmEqIGFuZCAqYiogYW5kIGNvbW1vbiBzdWJkaXJlY3RvcmllcwpAQCAtMTMzLDcgKzEzMCw3IEBACiAKICAgIC4uIGF0dHJpYnV0ZTo6IGNvbW1vbl9maWxlcwogCi0gICAgICBGaWxlcyBpbiBib3RoICphKiBhbmQgKmIqCisgICAgICBGaWxlcyBpbiBib3RoICphKiBhbmQgKmIqLgogCiAKICAgIC4uIGF0dHJpYnV0ZTo6IGNvbW1vbl9mdW5ueQpAQCAtMTY0LDYgKzE2MSwxMiBAQAogICAgICAgQSBkaWN0aW9uYXJ5IG1hcHBpbmcgbmFtZXMgaW4gOmF0dHI6YGNvbW1vbl9kaXJzYCB0byA6Y2xhc3M6YGRpcmNtcGAKICAgICAgIG9iamVjdHMuCiAKKy4uIGF0dHJpYnV0ZTo6IERFRkFVTFRfSUdOT1JFUworCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKKworICAgTGlzdCBvZiBkaXJlY3RvcmllcyBpZ25vcmVkIGJ5IDpjbGFzczpgZGlyY21wYCBieSBkZWZhdWx0LgorCiAKIEhlcmUgaXMgYSBzaW1wbGlmaWVkIGV4YW1wbGUgb2YgdXNpbmcgdGhlIGBgc3ViZGlyc2BgIGF0dHJpYnV0ZSB0byBzZWFyY2gKIHJlY3Vyc2l2ZWx5IHRocm91Z2ggdHdvIGRpcmVjdG9yaWVzIHRvIHNob3cgY29tbW9uIGRpZmZlcmVudCBmaWxlczo6CmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9mdW5jdGlvbnMucnN0IGIvRG9jL2xpYnJhcnkvZnVuY3Rpb25zLnJzdAppbmRleCAzMDU5ZTE3Li42NWI1OTFiIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9mdW5jdGlvbnMucnN0CisrKyBiL0RvYy9saWJyYXJ5L2Z1bmN0aW9ucy5yc3QKQEAgLTU0Myw2ICs1NDMsMTAgQEAKICAgIDpleGM6YFR5cGVFcnJvcmAgZXhjZXB0aW9uIGlzIHJhaXNlZCBpZiB0aGUgbWV0aG9kIGlzIG5vdCBmb3VuZCBvciBpZiBlaXRoZXIKICAgIHRoZSAqZm9ybWF0X3NwZWMqIG9yIHRoZSByZXR1cm4gdmFsdWUgYXJlIG5vdCBzdHJpbmdzLgogCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKKyAgICAgIGBgb2JqZWN0KCkuX19mb3JtYXRfXyhmb3JtYXRfc3BlYylgYCByYWlzZXMgOmV4YzpgVHlwZUVycm9yYAorICAgICAgaWYgKmZvcm1hdF9zcGVjKiBpcyBub3QgZW1wdHkgc3RyaW5nLgorCiAKIC4uIF9mdW5jLWZyb3plbnNldDoKIC4uIGZ1bmN0aW9uOjogZnJvemVuc2V0KFtpdGVyYWJsZV0pCkBAIC02NjEsNiArNjY1LDEyIEBACiAKICAgIFRoZSBpbnRlZ2VyIHR5cGUgaXMgZGVzY3JpYmVkIGluIDpyZWY6YHR5cGVzbnVtZXJpY2AuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICBJZiAqYmFzZSogaXMgbm90IGFuIGluc3RhbmNlIG9mIDpjbGFzczpgaW50YCBhbmQgdGhlICpiYXNlKiBvYmplY3QgaGFzIGEKKyAgICAgIDptZXRoOmBiYXNlLl9faW5kZXhfXyA8b2JqZWN0Ll9faW5kZXhfXz5gIG1ldGhvZCwgdGhhdCBtZXRob2QgaXMgY2FsbGVkCisgICAgICB0byBvYnRhaW4gYW4gaW50ZWdlciBmb3IgdGhlIGJhc2UuICBQcmV2aW91cyB2ZXJzaW9ucyB1c2VkCisgICAgICA6bWV0aDpgYmFzZS5fX2ludF9fIDxvYmplY3QuX19pbnRfXz5gIGluc3RlYWQgb2YgOm1ldGg6YGJhc2UuX19pbmRleF9fCisgICAgICA8b2JqZWN0Ll9faW5kZXhfXz5gLgogCiAuLiBmdW5jdGlvbjo6IGlzaW5zdGFuY2Uob2JqZWN0LCBjbGFzc2luZm8pCiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2Z1bmN0b29scy5yc3QgYi9Eb2MvbGlicmFyeS9mdW5jdG9vbHMucnN0CmluZGV4IGQ4ZmNmMGYuLjVlZTA3YTcgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2Z1bmN0b29scy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvZnVuY3Rvb2xzLnJzdApAQCAtNiw2ICs2LDcgQEAKIC4uIG1vZHVsZWF1dGhvcjo6IFBldGVyIEhhcnJpcyA8c2NhdkBibHVleW9uZGVyLmNvLnVrPgogLi4gbW9kdWxlYXV0aG9yOjogUmF5bW9uZCBIZXR0aW5nZXIgPHB5dGhvbkByY24uY29tPgogLi4gbW9kdWxlYXV0aG9yOjogTmljayBDb2dobGFuIDxuY29naGxhbkBnbWFpbC5jb20+CisuLiBtb2R1bGVhdXRob3I6OiDFgXVrYXN6IExhbmdhIDxsdWthc3pAbGFuZ2EucGw+CiAuLiBzZWN0aW9uYXV0aG9yOjogUGV0ZXIgSGFycmlzIDxzY2F2QGJsdWV5b25kZXIuY28udWs+CiAKICoqU291cmNlIGNvZGU6KiogOnNvdXJjZTpgTGliL2Z1bmN0b29scy5weWAKQEAgLTE4Niw2ICsxODcsMTE1IEBACiAgICAqc2VxdWVuY2UqIGNvbnRhaW5zIG9ubHkgb25lIGl0ZW0sIHRoZSBmaXJzdCBpdGVtIGlzIHJldHVybmVkLgogCiAKKy4uIGRlY29yYXRvcjo6IHNpbmdsZWRpc3BhdGNoKGRlZmF1bHQpCisKKyAgIFRyYW5zZm9ybXMgYSBmdW5jdGlvbiBpbnRvIGEgc2luZ2xlLWRpc3BhdGNoIGdlbmVyaWMgZnVuY3Rpb24uICBBICoqZ2VuZXJpYworICAgZnVuY3Rpb24qKiBpcyBjb21wb3NlZCBvZiBtdWx0aXBsZSBmdW5jdGlvbnMgaW1wbGVtZW50aW5nIHRoZSBzYW1lIG9wZXJhdGlvbgorICAgZm9yIGRpZmZlcmVudCB0eXBlcy4gV2hpY2ggaW1wbGVtZW50YXRpb24gc2hvdWxkIGJlIHVzZWQgZHVyaW5nIGEgY2FsbCBpcworICAgZGV0ZXJtaW5lZCBieSB0aGUgZGlzcGF0Y2ggYWxnb3JpdGhtLiAgV2hlbiB0aGUgaW1wbGVtZW50YXRpb24gaXMgY2hvc2VuCisgICBiYXNlZCBvbiB0aGUgdHlwZSBvZiBhIHNpbmdsZSBhcmd1bWVudCwgdGhpcyBpcyBrbm93biBhcyAqKnNpbmdsZQorICAgZGlzcGF0Y2gqKi4KKworICAgVG8gZGVmaW5lIGEgZ2VuZXJpYyBmdW5jdGlvbiwgZGVjb3JhdGUgaXQgd2l0aCB0aGUgYGBAc2luZ2xlZGlzcGF0Y2hgYAorICAgZGVjb3JhdG9yLiBOb3RlIHRoYXQgdGhlIGRpc3BhdGNoIGhhcHBlbnMgb24gdGhlIHR5cGUgb2YgdGhlIGZpcnN0IGFyZ3VtZW50LAorICAgY3JlYXRlIHlvdXIgZnVuY3Rpb24gYWNjb3JkaW5nbHk6OgorCisgICAgID4+PiBmcm9tIGZ1bmN0b29scyBpbXBvcnQgc2luZ2xlZGlzcGF0Y2gKKyAgICAgPj4+IEBzaW5nbGVkaXNwYXRjaAorICAgICAuLi4gZGVmIGZ1bihhcmcsIHZlcmJvc2U9RmFsc2UpOgorICAgICAuLi4gICAgIGlmIHZlcmJvc2U6CisgICAgIC4uLiAgICAgICAgIHByaW50KCJMZXQgbWUganVzdCBzYXksIiwgZW5kPSIgIikKKyAgICAgLi4uICAgICBwcmludChhcmcpCisKKyAgIFRvIGFkZCBvdmVybG9hZGVkIGltcGxlbWVudGF0aW9ucyB0byB0aGUgZnVuY3Rpb24sIHVzZSB0aGUgOmZ1bmM6YHJlZ2lzdGVyYAorICAgYXR0cmlidXRlIG9mIHRoZSBnZW5lcmljIGZ1bmN0aW9uLiAgSXQgaXMgYSBkZWNvcmF0b3IsIHRha2luZyBhIHR5cGUKKyAgIHBhcmFtZXRlciBhbmQgZGVjb3JhdGluZyBhIGZ1bmN0aW9uIGltcGxlbWVudGluZyB0aGUgb3BlcmF0aW9uIGZvciB0aGF0CisgICB0eXBlOjoKKworICAgICA+Pj4gQGZ1bi5yZWdpc3RlcihpbnQpCisgICAgIC4uLiBkZWYgXyhhcmcsIHZlcmJvc2U9RmFsc2UpOgorICAgICAuLi4gICAgIGlmIHZlcmJvc2U6CisgICAgIC4uLiAgICAgICAgIHByaW50KCJTdHJlbmd0aCBpbiBudW1iZXJzLCBlaD8iLCBlbmQ9IiAiKQorICAgICAuLi4gICAgIHByaW50KGFyZykKKyAgICAgLi4uCisgICAgID4+PiBAZnVuLnJlZ2lzdGVyKGxpc3QpCisgICAgIC4uLiBkZWYgXyhhcmcsIHZlcmJvc2U9RmFsc2UpOgorICAgICAuLi4gICAgIGlmIHZlcmJvc2U6CisgICAgIC4uLiAgICAgICAgIHByaW50KCJFbnVtZXJhdGUgdGhpczoiKQorICAgICAuLi4gICAgIGZvciBpLCBlbGVtIGluIGVudW1lcmF0ZShhcmcpOgorICAgICAuLi4gICAgICAgICBwcmludChpLCBlbGVtKQorCisgICBUbyBlbmFibGUgcmVnaXN0ZXJpbmcgbGFtYmRhcyBhbmQgcHJlLWV4aXN0aW5nIGZ1bmN0aW9ucywgdGhlCisgICA6ZnVuYzpgcmVnaXN0ZXJgIGF0dHJpYnV0ZSBjYW4gYmUgdXNlZCBpbiBhIGZ1bmN0aW9uYWwgZm9ybTo6CisKKyAgICAgPj4+IGRlZiBub3RoaW5nKGFyZywgdmVyYm9zZT1GYWxzZSk6CisgICAgIC4uLiAgICAgcHJpbnQoIk5vdGhpbmcuIikKKyAgICAgLi4uCisgICAgID4+PiBmdW4ucmVnaXN0ZXIodHlwZShOb25lKSwgbm90aGluZykKKworICAgVGhlIDpmdW5jOmByZWdpc3RlcmAgYXR0cmlidXRlIHJldHVybnMgdGhlIHVuZGVjb3JhdGVkIGZ1bmN0aW9uIHdoaWNoCisgICBlbmFibGVzIGRlY29yYXRvciBzdGFja2luZywgcGlja2xpbmcsIGFzIHdlbGwgYXMgY3JlYXRpbmcgdW5pdCB0ZXN0cyBmb3IKKyAgIGVhY2ggdmFyaWFudCBpbmRlcGVuZGVudGx5OjoKKworICAgICA+Pj4gQGZ1bi5yZWdpc3RlcihmbG9hdCkKKyAgICAgLi4uIEBmdW4ucmVnaXN0ZXIoRGVjaW1hbCkKKyAgICAgLi4uIGRlZiBmdW5fbnVtKGFyZywgdmVyYm9zZT1GYWxzZSk6CisgICAgIC4uLiAgICAgaWYgdmVyYm9zZToKKyAgICAgLi4uICAgICAgICAgcHJpbnQoIkhhbGYgb2YgeW91ciBudW1iZXI6IiwgZW5kPSIgIikKKyAgICAgLi4uICAgICBwcmludChhcmcgLyAyKQorICAgICAuLi4KKyAgICAgPj4+IGZ1bl9udW0gaXMgZnVuCisgICAgIEZhbHNlCisKKyAgIFdoZW4gY2FsbGVkLCB0aGUgZ2VuZXJpYyBmdW5jdGlvbiBkaXNwYXRjaGVzIG9uIHRoZSB0eXBlIG9mIHRoZSBmaXJzdAorICAgYXJndW1lbnQ6OgorCisgICAgID4+PiBmdW4oIkhlbGxvLCB3b3JsZC4iKQorICAgICBIZWxsbywgd29ybGQuCisgICAgID4+PiBmdW4oInRlc3QuIiwgdmVyYm9zZT1UcnVlKQorICAgICBMZXQgbWUganVzdCBzYXksIHRlc3QuCisgICAgID4+PiBmdW4oNDIsIHZlcmJvc2U9VHJ1ZSkKKyAgICAgU3RyZW5ndGggaW4gbnVtYmVycywgZWg/IDQyCisgICAgID4+PiBmdW4oWydzcGFtJywgJ3NwYW0nLCAnZWdncycsICdzcGFtJ10sIHZlcmJvc2U9VHJ1ZSkKKyAgICAgRW51bWVyYXRlIHRoaXM6CisgICAgIDAgc3BhbQorICAgICAxIHNwYW0KKyAgICAgMiBlZ2dzCisgICAgIDMgc3BhbQorICAgICA+Pj4gZnVuKE5vbmUpCisgICAgIE5vdGhpbmcuCisgICAgID4+PiBmdW4oMS4yMykKKyAgICAgMC42MTUKKworICAgV2hlcmUgdGhlcmUgaXMgbm8gcmVnaXN0ZXJlZCBpbXBsZW1lbnRhdGlvbiBmb3IgYSBzcGVjaWZpYyB0eXBlLCBpdHMKKyAgIG1ldGhvZCByZXNvbHV0aW9uIG9yZGVyIGlzIHVzZWQgdG8gZmluZCBhIG1vcmUgZ2VuZXJpYyBpbXBsZW1lbnRhdGlvbi4KKyAgIFRoZSBvcmlnaW5hbCBmdW5jdGlvbiBkZWNvcmF0ZWQgd2l0aCBgYEBzaW5nbGVkaXNwYXRjaGBgIGlzIHJlZ2lzdGVyZWQKKyAgIGZvciB0aGUgYmFzZSBgYG9iamVjdGBgIHR5cGUsIHdoaWNoIG1lYW5zIGl0IGlzIHVzZWQgaWYgbm8gYmV0dGVyCisgICBpbXBsZW1lbnRhdGlvbiBpcyBmb3VuZC4KKworICAgVG8gY2hlY2sgd2hpY2ggaW1wbGVtZW50YXRpb24gd2lsbCB0aGUgZ2VuZXJpYyBmdW5jdGlvbiBjaG9vc2UgZm9yCisgICBhIGdpdmVuIHR5cGUsIHVzZSB0aGUgYGBkaXNwYXRjaCgpYGAgYXR0cmlidXRlOjoKKworICAgICA+Pj4gZnVuLmRpc3BhdGNoKGZsb2F0KQorICAgICA8ZnVuY3Rpb24gZnVuX251bSBhdCAweDEwMzVhMjg0MD4KKyAgICAgPj4+IGZ1bi5kaXNwYXRjaChkaWN0KSAgICAjIG5vdGU6IGRlZmF1bHQgaW1wbGVtZW50YXRpb24KKyAgICAgPGZ1bmN0aW9uIGZ1biBhdCAweDEwM2ZlMDAwMD4KKworICAgVG8gYWNjZXNzIGFsbCByZWdpc3RlcmVkIGltcGxlbWVudGF0aW9ucywgdXNlIHRoZSByZWFkLW9ubHkgYGByZWdpc3RyeWBgCisgICBhdHRyaWJ1dGU6OgorCisgICAgPj4+IGZ1bi5yZWdpc3RyeS5rZXlzKCkKKyAgICBkaWN0X2tleXMoWzxjbGFzcyAnTm9uZVR5cGUnPiwgPGNsYXNzICdpbnQnPiwgPGNsYXNzICdvYmplY3QnPiwKKyAgICAgICAgICAgICAgPGNsYXNzICdkZWNpbWFsLkRlY2ltYWwnPiwgPGNsYXNzICdsaXN0Jz4sCisgICAgICAgICAgICAgIDxjbGFzcyAnZmxvYXQnPl0pCisgICAgPj4+IGZ1bi5yZWdpc3RyeVtmbG9hdF0KKyAgICA8ZnVuY3Rpb24gZnVuX251bSBhdCAweDEwMzVhMjg0MD4KKyAgICA+Pj4gZnVuLnJlZ2lzdHJ5W29iamVjdF0KKyAgICA8ZnVuY3Rpb24gZnVuIGF0IDB4MTAzZmUwMDAwPgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKKworCiAuLiBmdW5jdGlvbjo6IHVwZGF0ZV93cmFwcGVyKHdyYXBwZXIsIHdyYXBwZWQsIGFzc2lnbmVkPVdSQVBQRVJfQVNTSUdOTUVOVFMsIHVwZGF0ZWQ9V1JBUFBFUl9VUERBVEVTKQogCiAgICBVcGRhdGUgYSAqd3JhcHBlciogZnVuY3Rpb24gdG8gbG9vayBsaWtlIHRoZSAqd3JhcHBlZCogZnVuY3Rpb24uIFRoZSBvcHRpb25hbApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvZ2MucnN0IGIvRG9jL2xpYnJhcnkvZ2MucnN0CmluZGV4IDQxYmRhMWUuLjk1ZGYyZjggMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2djLnJzdAorKysgYi9Eb2MvbGlicmFyeS9nYy5yc3QKQEAgLTY3LDYgKzY3LDI0IEBACiAgICByZXR1cm5lZC4KIAogCisuLiBmdW5jdGlvbjo6IGdldF9zdGF0cygpCisKKyAgIFJldHVybiBhIGxpc3Qgb2YgMyBwZXItZ2VuZXJhdGlvbiBkaWN0aW9uYXJpZXMgY29udGFpbmluZyBjb2xsZWN0aW9uCisgICBzdGF0aXN0aWNzIHNpbmNlIGludGVycHJldGVyIHN0YXJ0LiAgQXQgdGhpcyBtb21lbnQsIGVhY2ggZGljdGlvbmFyeSB3aWxsCisgICBjb250YWluIHRoZSBmb2xsb3dpbmcgaXRlbXM6CisKKyAgICogYGBjb2xsZWN0aW9uc2BgIGlzIHRoZSBudW1iZXIgb2YgdGltZXMgdGhpcyBnZW5lcmF0aW9uIHdhcyBjb2xsZWN0ZWQ7CisKKyAgICogYGBjb2xsZWN0ZWRgYCBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIG9iamVjdHMgY29sbGVjdGVkIGluc2lkZSB0aGlzCisgICAgIGdlbmVyYXRpb247CisKKyAgICogYGB1bmNvbGxlY3RhYmxlYGAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBvYmplY3RzIHdoaWNoIHdlcmUgZm91bmQKKyAgICAgdG8gYmUgdW5jb2xsZWN0YWJsZSAoYW5kIHdlcmUgdGhlcmVmb3JlIG1vdmVkIHRvIHRoZSA6ZGF0YTpgZ2FyYmFnZWAKKyAgICAgbGlzdCkgaW5zaWRlIHRoaXMgZ2VuZXJhdGlvbi4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CisKKwogLi4gZnVuY3Rpb246OiBzZXRfdGhyZXNob2xkKHRocmVzaG9sZDBbLCB0aHJlc2hvbGQxWywgdGhyZXNob2xkMl1dKQogCiAgICBTZXQgdGhlIGdhcmJhZ2UgY29sbGVjdGlvbiB0aHJlc2hvbGRzICh0aGUgY29sbGVjdGlvbiBmcmVxdWVuY3kpLiBTZXR0aW5nCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9oYXNobGliLnJzdCBiL0RvYy9saWJyYXJ5L2hhc2hsaWIucnN0CmluZGV4IDBhMWIyMDguLjZjYjc2YzEgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2hhc2hsaWIucnN0CisrKyBiL0RvYy9saWJyYXJ5L2hhc2hsaWIucnN0CkBAIC01MSw5ICs1MSwxMyBAQAogLi4gaW5kZXg6OiBzaW5nbGU6IE9wZW5TU0w7ICh1c2UgaW4gbW9kdWxlIGhhc2hsaWIpCiAKIENvbnN0cnVjdG9ycyBmb3IgaGFzaCBhbGdvcml0aG1zIHRoYXQgYXJlIGFsd2F5cyBwcmVzZW50IGluIHRoaXMgbW9kdWxlIGFyZQotOmZ1bmM6YG1kNWAsIDpmdW5jOmBzaGExYCwgOmZ1bmM6YHNoYTIyNGAsIDpmdW5jOmBzaGEyNTZgLCA6ZnVuYzpgc2hhMzg0YCwgYW5kCi06ZnVuYzpgc2hhNTEyYC4gIEFkZGl0aW9uYWwgYWxnb3JpdGhtcyBtYXkgYWxzbyBiZSBhdmFpbGFibGUgZGVwZW5kaW5nIHVwb24gdGhlCi1PcGVuU1NMIGxpYnJhcnkgdGhhdCBQeXRob24gdXNlcyBvbiB5b3VyIHBsYXRmb3JtLgorOmZ1bmM6YG1kNWAsIDpmdW5jOmBzaGExYCwgOmZ1bmM6YHNoYTIyNGAsIDpmdW5jOmBzaGEyNTZgLCA6ZnVuYzpgc2hhMzg0YCwKKzpmdW5jOmBzaGE1MTJgLCA6ZnVuYzpgc2hhM18yMjRgLCA6ZnVuYzpgc2hhM18yNTZgLCA6ZnVuYzpgc2hhM18zODRgLCBhbmQKKzpmdW5jOmBzaGEzXzUxMmAuIEFkZGl0aW9uYWwgYWxnb3JpdGhtcyBtYXkgYWxzbyBiZSBhdmFpbGFibGUgZGVwZW5kaW5nIHVwb24KK3RoZSBPcGVuU1NMIGxpYnJhcnkgdGhhdCBQeXRob24gdXNlcyBvbiB5b3VyIHBsYXRmb3JtLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgQWRkIHNoYTMgZmFtaWx5IG9mIGhhc2ggYWxnb3JpdGhtcy4KIAogRm9yIGV4YW1wbGUsIHRvIG9idGFpbiB0aGUgZGlnZXN0IG9mIHRoZSBieXRlIHN0cmluZyBgYGInTm9ib2R5IGluc3BlY3RzIHRoZQogc3BhbW1pc2ggcmVwZXRpdGlvbidgYDo6CmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9odHRwLmNsaWVudC5yc3QgYi9Eb2MvbGlicmFyeS9odHRwLmNsaWVudC5yc3QKaW5kZXggODEzNzU3My4uMGZhZDU2NiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvaHR0cC5jbGllbnQucnN0CisrKyBiL0RvYy9saWJyYXJ5L2h0dHAuY2xpZW50LnJzdApAQCAtMjcsNyArMjcsNyBAQAogVGhlIG1vZHVsZSBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGNsYXNzZXM6CiAKIAotLi4gY2xhc3M6OiBIVFRQQ29ubmVjdGlvbihob3N0LCBwb3J0PU5vbmVbLCBzdHJpY3RdWywgdGltZW91dF0sIFwKKy4uIGNsYXNzOjogSFRUUENvbm5lY3Rpb24oaG9zdCwgcG9ydD1Ob25lWywgdGltZW91dF0sIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2FkZHJlc3M9Tm9uZSkKIAogICAgQW4gOmNsYXNzOmBIVFRQQ29ubmVjdGlvbmAgaW5zdGFuY2UgcmVwcmVzZW50cyBvbmUgdHJhbnNhY3Rpb24gd2l0aCBhbiBIVFRQCkBAIC01MSwxMyArNTEsMTMgQEAKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4yCiAgICAgICAqc291cmNlX2FkZHJlc3MqIHdhcyBhZGRlZC4KIAotICAgLi4gZGVwcmVjYXRlZC1yZW1vdmVkOjogMy4yIDMuNAotICAgICAgVGhlICpzdHJpY3QqIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkLiAgSFRUUCAwLjktc3R5bGUgIlNpbXBsZSBSZXNwb25zZXMiCi0gICAgICBhcmUgbm90IHN1cHBvcnRlZCBhbnltb3JlLgorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgIFRoZSAgKnN0cmljdCogcGFyYW1ldGVyIGlzIHJlbW92ZWQuIEhUVFAgMC45LXN0eWxlICJTaW1wbGUgUmVzcG9uc2VzIiBhcmUKKyAgICAgIG5vdCBzdXBwb3J0ZWQuCiAKIAogLi4gY2xhc3M6OiBIVFRQU0Nvbm5lY3Rpb24oaG9zdCwgcG9ydD1Ob25lLCBrZXlfZmlsZT1Ob25lLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0X2ZpbGU9Tm9uZVssIHN0cmljdF1bLCB0aW1lb3V0XSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydF9maWxlPU5vbmVbLCB0aW1lb3V0XSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2FkZHJlc3M9Tm9uZSwgKiwgY29udGV4dD1Ob25lLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja19ob3N0bmFtZT1Ob25lKQogCkBAIC04OSwxOSArODksMTkgQEAKICAgICAgIFRoaXMgY2xhc3Mgbm93IHN1cHBvcnRzIEhUVFBTIHZpcnR1YWwgaG9zdHMgaWYgcG9zc2libGUgKHRoYXQgaXMsCiAgICAgICBpZiA6ZGF0YTpgc3NsLkhBU19TTklgIGlzIHRydWUpLgogCi0gICAuLiBkZXByZWNhdGVkLXJlbW92ZWQ6OiAzLjIgMy40Ci0gICAgICBUaGUgKnN0cmljdCogcGFyYW1ldGVyIGlzIGRlcHJlY2F0ZWQuICBIVFRQIDAuOS1zdHlsZSAiU2ltcGxlIFJlc3BvbnNlcyIKLSAgICAgIGFyZSBub3Qgc3VwcG9ydGVkIGFueW1vcmUuCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgVGhlICpzdHJpY3QqIHBhcmFtZXRlciBpcyByZW1vdmVkLiBIVFRQIDAuOS1zdHlsZSAiU2ltcGxlIFJlc3BvbnNlcyIgYXJlCisgICAgICBub3Qgc3VwcG9ydGVkIGFueW1vcmUuCiAKIAotLi4gY2xhc3M6OiBIVFRQUmVzcG9uc2Uoc29jaywgZGVidWdsZXZlbD0wWywgc3RyaWN0XSwgbWV0aG9kPU5vbmUsIHVybD1Ob25lKQorLi4gY2xhc3M6OiBIVFRQUmVzcG9uc2Uoc29jaywgZGVidWdsZXZlbD0wLCBtZXRob2Q9Tm9uZSwgdXJsPU5vbmUpCiAKICAgIENsYXNzIHdob3NlIGluc3RhbmNlcyBhcmUgcmV0dXJuZWQgdXBvbiBzdWNjZXNzZnVsIGNvbm5lY3Rpb24uICBOb3QKICAgIGluc3RhbnRpYXRlZCBkaXJlY3RseSBieSB1c2VyLgogCi0gICAuLiBkZXByZWNhdGVkLXJlbW92ZWQ6OiAzLjIgMy40Ci0gICAgICBUaGUgKnN0cmljdCogcGFyYW1ldGVyIGlzIGRlcHJlY2F0ZWQuICBIVFRQIDAuOS1zdHlsZSAiU2ltcGxlIFJlc3BvbnNlcyIKLSAgICAgIGFyZSBub3Qgc3VwcG9ydGVkIGFueW1vcmUuCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgVGhlICpzdHJpY3QqIHBhcmFtZXRlciBpcyByZW1vdmVkLiBIVFRQIDAuOSBzdHlsZSAiU2ltcGxlIFJlc3BvbnNlcyIgYXJlCisgICAgICBub3Qgc3VwcG9ydGVkIGFueW1vcmUuCiAKIAogVGhlIGZvbGxvd2luZyBleGNlcHRpb25zIGFyZSByYWlzZWQgYXMgYXBwcm9wcmlhdGU6CmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9odHRwLnNlcnZlci5yc3QgYi9Eb2MvbGlicmFyeS9odHRwLnNlcnZlci5yc3QKaW5kZXggY2JhZDNlZC4uNTMxMzlhMiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvaHR0cC5zZXJ2ZXIucnN0CisrKyBiL0RvYy9saWJyYXJ5L2h0dHAuc2VydmVyLnJzdApAQCAtMTcwLDEyICsxNzAsMTkgQEAKIAogICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCiAKLSAgIC4uIG1ldGhvZDo6IHNlbmRfZXJyb3IoY29kZSwgbWVzc2FnZT1Ob25lKQorICAgLi4gbWV0aG9kOjogc2VuZF9lcnJvcihjb2RlLCBtZXNzYWdlPU5vbmUsIGV4cGxhaW49Tm9uZSkKIAogICAgICAgU2VuZHMgYW5kIGxvZ3MgYSBjb21wbGV0ZSBlcnJvciByZXBseSB0byB0aGUgY2xpZW50LiBUaGUgbnVtZXJpYyAqY29kZSoKLSAgICAgIHNwZWNpZmllcyB0aGUgSFRUUCBlcnJvciBjb2RlLCB3aXRoICptZXNzYWdlKiBhcyBvcHRpb25hbCwgbW9yZSBzcGVjaWZpYyB0ZXh0LiBBCi0gICAgICBjb21wbGV0ZSBzZXQgb2YgaGVhZGVycyBpcyBzZW50LCBmb2xsb3dlZCBieSB0ZXh0IGNvbXBvc2VkIHVzaW5nIHRoZQotICAgICAgOmF0dHI6YGVycm9yX21lc3NhZ2VfZm9ybWF0YCBjbGFzcyB2YXJpYWJsZS4KKyAgICAgIHNwZWNpZmllcyB0aGUgSFRUUCBlcnJvciBjb2RlLCB3aXRoICptZXNzYWdlKiBhcyBvcHRpb25hbCwgbW9yZSBzcGVjaWZpYworICAgICAgdGV4dCwgdXN1YWxseSByZWZlcnJpbmcgdG8gc2hvcnQgbWVzc2FnZSByZXNwb25zZS4gIFRoZSAqZXhwbGFpbioKKyAgICAgIGFyZ3VtZW50IGNhbiBiZSB1c2VkIHRvIHNlbmQgYSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3IgaW4KKyAgICAgIHJlc3BvbnNlIGNvbnRlbnQgYm9keS4gIEEgY29tcGxldGUgc2V0IG9mIGhlYWRlcnMgaXMgc2VudCwgZm9sbG93ZWQgYnkKKyAgICAgIHRleHQgY29tcG9zZWQgdXNpbmcgdGhlIDphdHRyOmBlcnJvcl9tZXNzYWdlX2Zvcm1hdGAgY2xhc3MgdmFyaWFibGUuCisKKyAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICAgICBUaGUgZXJyb3IgcmVzcG9uc2UgaW5jbHVkZXMgYSBDb250ZW50LUxlbmd0aCBoZWFkZXIuCisgICAgICAgICBBZGRlZCB0aGUgKmV4cGxhaW4qIGFyZ3VtZW50LgorCiAKICAgIC4uIG1ldGhvZDo6IHNlbmRfcmVzcG9uc2UoY29kZSwgbWVzc2FnZT1Ob25lKQogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9pZGxlLnJzdCBiL0RvYy9saWJyYXJ5L2lkbGUucnN0CmluZGV4IGI0MGU0NzAuLmMyNDg5NTYgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2lkbGUucnN0CisrKyBiL0RvYy9saWJyYXJ5L2lkbGUucnN0CkBAIC0xNiw3MCArMTYsODIgQEAKIAogKiBjb2RlZCBpbiAxMDAlIHB1cmUgUHl0aG9uLCB1c2luZyB0aGUgOm1vZDpgdGtpbnRlcmAgR1VJIHRvb2xraXQKIAotKiBjcm9zcy1wbGF0Zm9ybTogd29ya3Mgb24gV2luZG93cyBhbmQgVW5peAorKiBjcm9zcy1wbGF0Zm9ybTogd29ya3Mgb24gV2luZG93cywgVW5peCwgYW5kIE1hYyBPUyBYCiAKLSogbXVsdGktd2luZG93IHRleHQgZWRpdG9yIHdpdGggbXVsdGlwbGUgdW5kbywgUHl0aG9uIGNvbG9yaXppbmcgYW5kIG1hbnkgb3RoZXIKLSAgZmVhdHVyZXMsIGUuZy4gc21hcnQgaW5kZW50IGFuZCBjYWxsIHRpcHMKKyogbXVsdGktd2luZG93IHRleHQgZWRpdG9yIHdpdGggbXVsdGlwbGUgdW5kbywgUHl0aG9uIGNvbG9yaXppbmcsCisgIHNtYXJ0IGluZGVudCwgY2FsbCB0aXBzLCBhbmQgbWFueSBvdGhlciBmZWF0dXJlcwogCiAqIFB5dGhvbiBzaGVsbCB3aW5kb3cgKGEuay5hLiBpbnRlcmFjdGl2ZSBpbnRlcnByZXRlcikKIAotKiBkZWJ1Z2dlciAobm90IGNvbXBsZXRlLCBidXQgeW91IGNhbiBzZXQgYnJlYWtwb2ludHMsIHZpZXcgIGFuZCBzdGVwKQorKiBkZWJ1Z2dlciAobm90IGNvbXBsZXRlLCBidXQgeW91IGNhbiBzZXQgYnJlYWtwb2ludHMsIHZpZXcgYW5kIHN0ZXApCiAKIAogTWVudXMKIC0tLS0tCiAKK0lETEUgaGFzIHR3byB3aW5kb3cgdHlwZXMsIHRoZSBTaGVsbCB3aW5kb3cgYW5kIHRoZSBFZGl0b3Igd2luZG93LiBJdCBpcworcG9zc2libGUgdG8gaGF2ZSBtdWx0aXBsZSBlZGl0b3Igd2luZG93cyBzaW11bHRhbmVvdXNseS4gSURMRSdzCittZW51cyBkeW5hbWljYWxseSBjaGFuZ2UgYmFzZWQgb24gd2hpY2ggd2luZG93IGlzIGN1cnJlbnRseSBzZWxlY3RlZC4gRWFjaCBtZW51Citkb2N1bWVudGVkIGJlbG93IGluZGljYXRlcyB3aGljaCB3aW5kb3cgdHlwZSBpdCBpcyBhc3NvY2lhdGVkIHdpdGguIENsaWNrIG9uCit0aGUgZG90dGVkIGxpbmUgYXQgdGhlIHRvcCBvZiBhIG1lbnUgdG8gInRlYXIgaXQgb2ZmIjogYSBzZXBhcmF0ZSB3aW5kb3cKK2NvbnRhaW5pbmcgdGhlIG1lbnUgaXMgY3JlYXRlZCAoZm9yIFVuaXggYW5kIFdpbmRvd3Mgb25seSkuCiAKLUZpbGUgbWVudQotXl5eXl5eXl5eCitGaWxlIG1lbnUgKFNoZWxsIGFuZCBFZGl0b3IpCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAKIE5ldyB3aW5kb3cKLSAgIGNyZWF0ZSBhIG5ldyBlZGl0aW5nIHdpbmRvdworICAgQ3JlYXRlIGEgbmV3IGVkaXRpbmcgd2luZG93CiAKIE9wZW4uLi4KLSAgIG9wZW4gYW4gZXhpc3RpbmcgZmlsZQorICAgT3BlbiBhbiBleGlzdGluZyBmaWxlCiAKIE9wZW4gbW9kdWxlLi4uCi0gICBvcGVuIGFuIGV4aXN0aW5nIG1vZHVsZSAoc2VhcmNoZXMgc3lzLnBhdGgpCisgICBPcGVuIGFuIGV4aXN0aW5nIG1vZHVsZSAoc2VhcmNoZXMgc3lzLnBhdGgpCisKK1JlY2VudCBGaWxlcworICAgT3BlbiBhIGxpc3Qgb2YgcmVjZW50IGZpbGVzCiAKIENsYXNzIGJyb3dzZXIKLSAgIHNob3cgY2xhc3NlcyBhbmQgbWV0aG9kcyBpbiBjdXJyZW50IGZpbGUKKyAgIFNob3cgY2xhc3NlcyBhbmQgbWV0aG9kcyBpbiBjdXJyZW50IGZpbGUKIAogUGF0aCBicm93c2VyCi0gICBzaG93IHN5cy5wYXRoIGRpcmVjdG9yaWVzLCBtb2R1bGVzLCBjbGFzc2VzIGFuZCBtZXRob2RzCisgICBTaG93IHN5cy5wYXRoIGRpcmVjdG9yaWVzLCBtb2R1bGVzLCBjbGFzc2VzIGFuZCBtZXRob2RzCiAKIC4uIGluZGV4OjoKICAgIHNpbmdsZTogQ2xhc3MgYnJvd3NlcgogICAgc2luZ2xlOiBQYXRoIGJyb3dzZXIKIAogU2F2ZQotICAgc2F2ZSBjdXJyZW50IHdpbmRvdyB0byB0aGUgYXNzb2NpYXRlZCBmaWxlICh1bnNhdmVkIHdpbmRvd3MgaGF2ZSBhIFwqIGJlZm9yZSBhbmQKLSAgIGFmdGVyIHRoZSB3aW5kb3cgdGl0bGUpCisgICBTYXZlIGN1cnJlbnQgd2luZG93IHRvIHRoZSBhc3NvY2lhdGVkIGZpbGUgKHVuc2F2ZWQgd2luZG93cyBoYXZlIGEKKyAgIFwqIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHdpbmRvdyB0aXRsZSkKIAogU2F2ZSBBcy4uLgotICAgc2F2ZSBjdXJyZW50IHdpbmRvdyB0byBuZXcgZmlsZSwgd2hpY2ggYmVjb21lcyB0aGUgYXNzb2NpYXRlZCBmaWxlCisgICBTYXZlIGN1cnJlbnQgd2luZG93IHRvIG5ldyBmaWxlLCB3aGljaCBiZWNvbWVzIHRoZSBhc3NvY2lhdGVkIGZpbGUKIAogU2F2ZSBDb3B5IEFzLi4uCi0gICBzYXZlIGN1cnJlbnQgd2luZG93IHRvIGRpZmZlcmVudCBmaWxlIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGFzc29jaWF0ZWQgZmlsZQorICAgU2F2ZSBjdXJyZW50IHdpbmRvdyB0byBkaWZmZXJlbnQgZmlsZSB3aXRob3V0IGNoYW5naW5nIHRoZSBhc3NvY2lhdGVkIGZpbGUKKworUHJpbnQgV2luZG93CisgICBQcmludCB0aGUgY3VycmVudCB3aW5kb3cKIAogQ2xvc2UKLSAgIGNsb3NlIGN1cnJlbnQgd2luZG93IChhc2tzIHRvIHNhdmUgaWYgdW5zYXZlZCkKKyAgIENsb3NlIGN1cnJlbnQgd2luZG93IChhc2tzIHRvIHNhdmUgaWYgdW5zYXZlZCkKIAogRXhpdAotICAgY2xvc2UgYWxsIHdpbmRvd3MgYW5kIHF1aXQgSURMRSAoYXNrcyB0byBzYXZlIGlmIHVuc2F2ZWQpCisgICBDbG9zZSBhbGwgd2luZG93cyBhbmQgcXVpdCBJRExFIChhc2tzIHRvIHNhdmUgaWYgdW5zYXZlZCkKIAogCi1FZGl0IG1lbnUKLV5eXl5eXl5eXgorRWRpdCBtZW51IChTaGVsbCBhbmQgRWRpdG9yKQorXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgogCiBVbmRvCi0gICBVbmRvIGxhc3QgY2hhbmdlIHRvIGN1cnJlbnQgd2luZG93IChtYXggMTAwMCBjaGFuZ2VzKQorICAgVW5kbyBsYXN0IGNoYW5nZSB0byBjdXJyZW50IHdpbmRvdyAoYSBtYXhpbXVtIG9mIDEwMDAgY2hhbmdlcyBtYXkgYmUgdW5kb25lKQogCiBSZWRvCiAgICBSZWRvIGxhc3QgdW5kb25lIGNoYW5nZSB0byBjdXJyZW50IHdpbmRvdwogCiBDdXQKLSAgIENvcHkgc2VsZWN0aW9uIGludG8gc3lzdGVtLXdpZGUgY2xpcGJvYXJkOyB0aGVuIGRlbGV0ZSBzZWxlY3Rpb24KKyAgIENvcHkgc2VsZWN0aW9uIGludG8gc3lzdGVtLXdpZGUgY2xpcGJvYXJkOyB0aGVuIGRlbGV0ZSB0aGUgc2VsZWN0aW9uCiAKIENvcHkKICAgIENvcHkgc2VsZWN0aW9uIGludG8gc3lzdGVtLXdpZGUgY2xpcGJvYXJkCkBAIC0xMDgsMTEgKzEyMCwzMCBAQAogR28gdG8gbGluZQogICAgQXNrIGZvciBhIGxpbmUgbnVtYmVyIGFuZCBzaG93IHRoYXQgbGluZQogCitFeHBhbmQgd29yZAorICAgRXhwYW5kIHRoZSB3b3JkIHlvdSBoYXZlIHR5cGVkIHRvIG1hdGNoIGFub3RoZXIgd29yZCBpbiB0aGUgc2FtZSBidWZmZXI7CisgICByZXBlYXQgdG8gZ2V0IGEgZGlmZmVyZW50IGV4cGFuc2lvbgorCitTaG93IGNhbGwgdGlwCisgICBBZnRlciBhbiB1bmNsb3NlZCBwYXJlbnRoZXNpcyBmb3IgYSBmdW5jdGlvbiwgb3BlbiBhIHNtYWxsIHdpbmRvdyB3aXRoCisgICBmdW5jdGlvbiBwYXJhbWV0ZXIgaGludHMKKworU2hvdyBzdXJyb3VuZGluZyBwYXJlbnMKKyAgIEhpZ2hsaWdodCB0aGUgc3Vycm91bmRpbmcgcGFyZW50aGVzaXMKKworU2hvdyBDb21wbGV0aW9ucworICAgT3BlbiBhIHNjcm9sbCB3aW5kb3cgYWxsb3dpbmcgc2VsZWN0aW9uIGtleXdvcmRzIGFuZCBhdHRyaWJ1dGVzLiBTZWUKKyAgIENvbXBsZXRpb25zIGJlbG93LgorCisKK0Zvcm1hdCBtZW51IChFZGl0b3Igd2luZG93IG9ubHkpCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCiBJbmRlbnQgcmVnaW9uCi0gICBTaGlmdCBzZWxlY3RlZCBsaW5lcyByaWdodCA0IHNwYWNlcworICAgU2hpZnQgc2VsZWN0ZWQgbGluZXMgcmlnaHQgYnkgdGhlIGluZGVudCB3aWR0aCAoZGVmYXVsdCA0IHNwYWNlcykKIAogRGVkZW50IHJlZ2lvbgotICAgU2hpZnQgc2VsZWN0ZWQgbGluZXMgbGVmdCA0IHNwYWNlcworICAgU2hpZnQgc2VsZWN0ZWQgbGluZXMgbGVmdCBieSB0aGUgaW5kZW50IHdpZHRoIChkZWZhdWx0IDQgc3BhY2VzKQogCiBDb21tZW50IG91dCByZWdpb24KICAgIEluc2VydCAjIyBpbiBmcm9udCBvZiBzZWxlY3RlZCBsaW5lcwpAQCAtMTIxLDY3ICsxNTIsMTIxIEBACiAgICBSZW1vdmUgbGVhZGluZyAjIG9yICMjIGZyb20gc2VsZWN0ZWQgbGluZXMKIAogVGFiaWZ5IHJlZ2lvbgotICAgVHVybnMgKmxlYWRpbmcqIHN0cmV0Y2hlcyBvZiBzcGFjZXMgaW50byB0YWJzCisgICBUdXJucyAqbGVhZGluZyogc3RyZXRjaGVzIG9mIHNwYWNlcyBpbnRvIHRhYnMuIChOb3RlOiBXZSByZWNvbW1lbmQgdXNpbmcKKyAgIDQgc3BhY2UgYmxvY2tzIHRvIGluZGVudCBQeXRob24gY29kZS4pCiAKIFVudGFiaWZ5IHJlZ2lvbgotICAgVHVybiAqYWxsKiB0YWJzIGludG8gdGhlIHJpZ2h0IG51bWJlciBvZiBzcGFjZXMKKyAgIFR1cm4gKmFsbCogdGFicyBpbnRvIHRoZSBjb3JyZWN0IG51bWJlciBvZiBzcGFjZXMKIAotRXhwYW5kIHdvcmQKLSAgIEV4cGFuZCB0aGUgd29yZCB5b3UgaGF2ZSB0eXBlZCB0byBtYXRjaCBhbm90aGVyIHdvcmQgaW4gdGhlIHNhbWUgYnVmZmVyOyByZXBlYXQKLSAgIHRvIGdldCBhIGRpZmZlcmVudCBleHBhbnNpb24KK1RvZ2dsZSB0YWJzCisgICBPcGVuIGEgZGlhbG9nIHRvIHN3aXRjaCBiZXR3ZWVuIGluZGVudGluZyB3aXRoIHNwYWNlcyBhbmQgdGFicy4KKworTmV3IEluZGVudCBXaWR0aAorICAgT3BlbiBhIGRpYWxvZyB0byBjaGFuZ2UgaW5kZW50IHdpZHRoLiBUaGUgYWNjZXB0ZWQgZGVmYXVsdCBieSB0aGUgUHl0aG9uCisgICBjb21tdW5pdHkgaXMgNCBzcGFjZXMuCiAKIEZvcm1hdCBQYXJhZ3JhcGgKLSAgIFJlZm9ybWF0IHRoZSBjdXJyZW50IGJsYW5rLWxpbmUtc2VwYXJhdGVkIHBhcmFncmFwaAorICAgUmVmb3JtYXQgdGhlIGN1cnJlbnQgYmxhbmstbGluZS1zZXBhcmF0ZWQgcGFyYWdyYXBoLiBBbGwgbGluZXMgaW4gdGhlCisgICBwYXJhZ3JhcGggd2lsbCBiZSBmb3JtYXR0ZWQgdG8gbGVzcyB0aGFuIDgwIGNvbHVtbnMuCiAKLUltcG9ydCBtb2R1bGUKLSAgIEltcG9ydCBvciByZWxvYWQgdGhlIGN1cnJlbnQgbW9kdWxlCi0KLVJ1biBzY3JpcHQKLSAgIEV4ZWN1dGUgdGhlIGN1cnJlbnQgZmlsZSBpbiB0aGUgX19tYWluX18gbmFtZXNwYWNlCitTdHJpcCB0cmFpbGluZyB3aGl0ZXNwYWNlCisgICBSZW1vdmVzIGFueSBzcGFjZSBjaGFyYWN0ZXJzIGFmdGVyIHRoZSBlbmQgb2YgdGhlIGxhc3Qgbm9uLXNwYWNlIGNoYXJhY3RlcgogCiAuLiBpbmRleDo6CiAgICBzaW5nbGU6IEltcG9ydCBtb2R1bGUKICAgIHNpbmdsZTogUnVuIHNjcmlwdAogCiAKLVdpbmRvd3MgbWVudQotXl5eXl5eXl5eXl5eCitSdW4gbWVudSAoRWRpdG9yIHdpbmRvdyBvbmx5KQorXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KIAotWm9vbSBIZWlnaHQKLSAgIHRvZ2dsZXMgdGhlIHdpbmRvdyBiZXR3ZWVuIG5vcm1hbCBzaXplICgyNHg4MCkgYW5kIG1heGltdW0gaGVpZ2h0LgorUHl0aG9uIFNoZWxsCisgICBPcGVuIG9yIHdha2UgdXAgdGhlIFB5dGhvbiBTaGVsbCB3aW5kb3cKIAotVGhlIHJlc3Qgb2YgdGhpcyBtZW51IGxpc3RzIHRoZSBuYW1lcyBvZiBhbGwgb3BlbiB3aW5kb3dzOyBzZWxlY3Qgb25lIHRvIGJyaW5nCi1pdCB0byB0aGUgZm9yZWdyb3VuZCAoZGVpY29uaWZ5aW5nIGl0IGlmIG5lY2Vzc2FyeSkuCitDaGVjayBtb2R1bGUKKyAgIENoZWNrIHRoZSBzeW50YXggb2YgdGhlIG1vZHVsZSBjdXJyZW50bHkgb3BlbiBpbiB0aGUgRWRpdG9yIHdpbmRvdy4gSWYgdGhlCisgICBtb2R1bGUgaGFzIG5vdCBiZWVuIHNhdmVkIElETEUgd2lsbCBwcm9tcHQgdGhlIHVzZXIgdG8gc2F2ZSB0aGUgY29kZS4KIAorUnVuIG1vZHVsZQorICAgUmVzdGFydCB0aGUgc2hlbGwgdG8gY2xlYW4gdGhlIGVudmlyb25tZW50LCB0aGVuIGV4ZWN1dGUgdGhlIGN1cnJlbnRseQorICAgb3BlbiBtb2R1bGUuICBJZiB0aGUgbW9kdWxlIGhhcyBub3QgYmVlbiBzYXZlZCBJRExFIHdpbGwgcHJvbXB0IHRoZSB1c2VyCisgICB0byBzYXZlIHRoZSBjb2RlLgogCi1EZWJ1ZyBtZW51Ci1eXl5eXl5eXl5eCitTaGVsbCBtZW51IChTaGVsbCB3aW5kb3cgb25seSkKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgogCi0qIGluIHRoZSBQeXRob24gU2hlbGwgd2luZG93IG9ubHkKK1ZpZXcgTGFzdCBSZXN0YXJ0CisgIFNjcm9sbCB0aGUgc2hlbGwgd2luZG93IHRvIHRoZSBsYXN0IFNoZWxsIHJlc3RhcnQKKworUmVzdGFydCBTaGVsbAorICBSZXN0YXJ0IHRoZSBzaGVsbCB0byBjbGVhbiB0aGUgZW52aXJvbm1lbnQKKworRGVidWcgbWVudSAoU2hlbGwgd2luZG93IG9ubHkpCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KIAogR28gdG8gZmlsZS9saW5lCiAgICBMb29rIGFyb3VuZCB0aGUgaW5zZXJ0IHBvaW50IGZvciBhIGZpbGVuYW1lIGFuZCBsaW5lIG51bWJlciwgb3BlbiB0aGUgZmlsZSwKICAgIGFuZCBzaG93IHRoZSBsaW5lLiAgVXNlZnVsIHRvIHZpZXcgdGhlIHNvdXJjZSBsaW5lcyByZWZlcmVuY2VkIGluIGFuCi0gICBleGNlcHRpb24gdHJhY2ViYWNrLgorICAgZXhjZXB0aW9uIHRyYWNlYmFjay4gQXZhaWxhYmxlIGluIHRoZSBjb250ZXh0IG1lbnUgb2YgdGhlIFNoZWxsIHdpbmRvdy4KIAotRGVidWdnZXIKLSAgIFJ1biBjb21tYW5kcyBpbiB0aGUgc2hlbGwgdW5kZXIgdGhlIGRlYnVnZ2VyLgorRGVidWdnZXIgKHRvZ2dsZSkKKyAgIFRoaXMgZmVhdHVyZSBpcyBub3QgY29tcGxldGUgYW5kIGNvbnNpZGVyZWQgZXhwZXJpbWVudGFsLiBSdW4gY29tbWFuZHMgaW4KKyAgIHRoZSBzaGVsbCB1bmRlciB0aGUgZGVidWdnZXIKIAogU3RhY2sgdmlld2VyCi0gICBTaG93IHRoZSBzdGFjayB0cmFjZWJhY2sgb2YgdGhlIGxhc3QgZXhjZXB0aW9uLgorICAgU2hvdyB0aGUgc3RhY2sgdHJhY2ViYWNrIG9mIHRoZSBsYXN0IGV4Y2VwdGlvbgogCiBBdXRvLW9wZW4gU3RhY2sgVmlld2VyCi0gICBPcGVuIHN0YWNrIHZpZXdlciBvbiB0cmFjZWJhY2suCisgICBUb2dnbGUgYXV0b21hdGljYWxseSBvcGVuaW5nIHRoZSBzdGFjayB2aWV3ZXIgb24gdW5oYW5kbGVkIGV4Y2VwdGlvbgogCiAuLiBpbmRleDo6CiAgICBzaW5nbGU6IHN0YWNrIHZpZXdlcgogICAgc2luZ2xlOiBkZWJ1Z2dlcgogCitPcHRpb25zIG1lbnUgKFNoZWxsIGFuZCBFZGl0b3IpCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAKLUVkaXQgY29udGV4dCBtZW51Ci1eXl5eXl5eXl5eXl5eXl5eXgorQ29uZmlndXJlIElETEUKKyAgIE9wZW4gYSBjb25maWd1cmF0aW9uIGRpYWxvZy4gIEZvbnRzLCBpbmRlbnRhdGlvbiwga2V5YmluZGluZ3MsIGFuZCBjb2xvcgorICAgdGhlbWVzIG1heSBiZSBhbHRlcmVkLiAgU3RhcnR1cCBQcmVmZXJlbmNlcyBtYXkgYmUgc2V0LCBhbmQgYWRkaXRpb25hbAorICAgaGVscCBzb3VyY2VzIGNhbiBiZSBzcGVjaWZpZWQuCiAKLSogUmlnaHQtY2xpY2sgaW4gRWRpdCB3aW5kb3cgKENvbnRyb2wtY2xpY2sgb24gT1MgWCkKK0NvZGUgQ29udGV4dCAodG9nZ2xlKShFZGl0b3IgV2luZG93IG9ubHkpCisgICBPcGVuIGEgcGFuZSBhdCB0aGUgdG9wIG9mIHRoZSBlZGl0IHdpbmRvdyB3aGljaCBzaG93cyB0aGUgYmxvY2sgY29udGV4dAorICAgb2YgdGhlIHNlY3Rpb24gb2YgY29kZSB3aGljaCBpcyBzY3JvbGxpbmcgb2ZmIHRoZSB0b3Agb2YgdGhlIHdpbmRvdy4KKworV2luZG93cyBtZW51IChTaGVsbCBhbmQgRWRpdG9yKQorXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCitab29tIEhlaWdodAorICAgVG9nZ2xlcyB0aGUgd2luZG93IGJldHdlZW4gbm9ybWFsIHNpemUgKDQweDgwIGluaXRpYWwgc2V0dGluZykgYW5kIG1heGltdW0KKyAgIGhlaWdodC4gVGhlIGluaXRpYWwgc2l6ZSBpcyBpbiB0aGUgQ29uZmlndXJlIElETEUgZGlhbG9nIHVuZGVyIHRoZSBnZW5lcmFsCisgICB0YWIuCisKK1RoZSByZXN0IG9mIHRoaXMgbWVudSBsaXN0cyB0aGUgbmFtZXMgb2YgYWxsIG9wZW4gd2luZG93czsgc2VsZWN0IG9uZSB0byBicmluZworaXQgdG8gdGhlIGZvcmVncm91bmQgKGRlaWNvbmlmeWluZyBpdCBpZiBuZWNlc3NhcnkpLgorCitIZWxwIG1lbnUgKFNoZWxsIGFuZCBFZGl0b3IpCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKK0Fib3V0IElETEUKKyAgIFZlcnNpb24sIGNvcHlyaWdodCwgbGljZW5zZSwgY3JlZGl0cworCitJRExFIEhlbHAKKyAgIERpc3BsYXkgYSBoZWxwIGZpbGUgZm9yIElETEUgZGV0YWlsaW5nIHRoZSBtZW51IG9wdGlvbnMsIGJhc2ljIGVkaXRpbmcgYW5kCisgICBuYXZpZ2F0aW9uLCBhbmQgb3RoZXIgdGlwcy4KKworUHl0aG9uIERvY3MKKyAgIEFjY2VzcyBsb2NhbCBQeXRob24gZG9jdW1lbnRhdGlvbiwgaWYgaW5zdGFsbGVkLiBPciB3aWxsIHN0YXJ0IGEgd2ViIGJyb3dzZXIKKyAgIGFuZCBvcGVuIGRvY3MucHl0aG9uLm9yZyBzaG93aW5nIHRoZSBsYXRlc3QgUHl0aG9uIGRvY3VtZW50YXRpb24uCisKK0FkZGl0aW9uYWwgaGVscCBzb3VyY2VzIG1heSBiZSBhZGRlZCBoZXJlIHdpdGggdGhlIENvbmZpZ3VyZSBJRExFIGRpYWxvZyB1bmRlcgordGhlIEdlbmVyYWwgdGFiLgorCitFZGl0b3IgV2luZG93IGNvbnRleHQgbWVudQorXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworKiBSaWdodC1jbGljayBpbiBFZGl0b3Igd2luZG93IChDb250cm9sLWNsaWNrIG9uIE9TIFgpCiAKIEN1dAogICAgQ29weSBzZWxlY3Rpb24gaW50byBzeXN0ZW0td2lkZSBjbGlwYm9hcmQ7IHRoZW4gZGVsZXRlIHNlbGVjdGlvbgpAQCAtMjA3LDggKzI5Miw4IEBACiAgICBzaW5nbGU6IGJyZWFrcG9pbnRzCiAKIAotU2hlbGwgY29udGV4dCBtZW51Ci1eXl5eXl5eXl5eXl5eXl5eXl4KK1NoZWxsIFdpbmRvdyBjb250ZXh0IG1lbnUKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KIAogKiBSaWdodC1jbGljayBpbiBQeXRob24gU2hlbGwgd2luZG93IChDb250cm9sLWNsaWNrIG9uIE9TIFgpCiAKQEAgLTIyNSwxOSArMzEwLDQ0IEBACiAgICBTYW1lIGFzIGluIERlYnVnIG1lbnUuCiAKIAotQmFzaWMgZWRpdGluZyBhbmQgbmF2aWdhdGlvbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorRWRpdGluZyBhbmQgbmF2aWdhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAqIDprYmQ6YEJhY2tzcGFjZWAgZGVsZXRlcyB0byB0aGUgbGVmdDsgOmtiZDpgRGVsYCBkZWxldGVzIHRvIHRoZSByaWdodAogCisqIDprYmQ6YEMtQmFja3NwYWNlYCBkZWxldGUgd29yZCBsZWZ0OyA6a2JkOmBDLURlbGAgZGVsZXRlIHdvcmQgdG8gdGhlIHJpZ2h0CisKICogQXJyb3cga2V5cyBhbmQgOmtiZDpgUGFnZSBVcGAvOmtiZDpgUGFnZSBEb3duYCB0byBtb3ZlIGFyb3VuZAogCisqIDprYmQ6YEMtTGVmdEFycm93YCBhbmQgOmtiZDpgQy1SaWdodEFycm93YCBtb3ZlcyBieSB3b3JkcworCiAqIDprYmQ6YEhvbWVgLzprYmQ6YEVuZGAgZ28gdG8gYmVnaW4vZW5kIG9mIGxpbmUKIAogKiA6a2JkOmBDLUhvbWVgLzprYmQ6YEMtRW5kYCBnbyB0byBiZWdpbi9lbmQgb2YgZmlsZQogCi0qIFNvbWUgOnByb2dyYW06YEVtYWNzYCBiaW5kaW5ncyBtYXkgYWxzbyB3b3JrLCBpbmNsdWRpbmcgOmtiZDpgQy1CYCwKLSAgOmtiZDpgQy1QYCwgOmtiZDpgQy1BYCwgOmtiZDpgQy1FYCwgOmtiZDpgQy1EYCwgOmtiZDpgQy1MYAorKiBTb21lIHVzZWZ1bCBFbWFjcyBiaW5kaW5ncyBhcmUgaW5oZXJpdGVkIGZyb20gVGNsL1RrOgorCisgICAqIDprYmQ6YEMtYWAgYmVnaW5uaW5nIG9mIGxpbmUKKworICAgKiA6a2JkOmBDLWVgIGVuZCBvZiBsaW5lCisKKyAgICogOmtiZDpgQy1rYCBraWxsIGxpbmUgKGJ1dCBkb2Vzbid0IHB1dCBpdCBpbiBjbGlwYm9hcmQpCisKKyAgICogOmtiZDpgQy1sYCBjZW50ZXIgd2luZG93IGFyb3VuZCB0aGUgaW5zZXJ0aW9uIHBvaW50CisKKyAgICogOmtiZDpgQy1iYCBnbyBiYWNrd2FyZHMgb25lIGNoYXJhY3RlciB3aXRob3V0IGRlbGV0aW5nICh1c3VhbGx5IHlvdSBjYW4KKyAgICAgYWxzbyB1c2UgdGhlIGN1cnNvciBrZXkgZm9yIHRoaXMpCisKKyAgICogOmtiZDpgQy1mYCBnbyBmb3J3YXJkIG9uZSBjaGFyYWN0ZXIgd2l0aG91dCBkZWxldGluZyAodXN1YWxseSB5b3UgY2FuCisgICAgIGFsc28gdXNlIHRoZSBjdXJzb3Iga2V5IGZvciB0aGlzKQorCisgICAqIDprYmQ6YEMtcGAgZ28gdXAgb25lIGxpbmUgKHVzdWFsbHkgeW91IGNhbiBhbHNvIHVzZSB0aGUgY3Vyc29yIGtleSBmb3IKKyAgICAgdGhpcykKKworICAgKiA6a2JkOmBDLWRgIGRlbGV0ZSBuZXh0IGNoYXJhY3RlcgorCitTdGFuZGFyZCBrZXliaW5kaW5ncyAobGlrZSA6a2JkOmBDLWNgIHRvIGNvcHkgYW5kIDprYmQ6YEMtdmAgdG8gcGFzdGUpCittYXkgd29yay4gIEtleWJpbmRpbmdzIGFyZSBzZWxlY3RlZCBpbiB0aGUgQ29uZmlndXJlIElETEUgZGlhbG9nLgogCiAKIEF1dG9tYXRpYyBpbmRlbnRhdGlvbgpAQCAtMjQ2LDI3ICszNTYsNzYgQEAKIEFmdGVyIGEgYmxvY2stb3BlbmluZyBzdGF0ZW1lbnQsIHRoZSBuZXh0IGxpbmUgaXMgaW5kZW50ZWQgYnkgNCBzcGFjZXMgKGluIHRoZQogUHl0aG9uIFNoZWxsIHdpbmRvdyBieSBvbmUgdGFiKS4gIEFmdGVyIGNlcnRhaW4ga2V5d29yZHMgKGJyZWFrLCByZXR1cm4gZXRjLikKIHRoZSBuZXh0IGxpbmUgaXMgZGVkZW50ZWQuICBJbiBsZWFkaW5nIGluZGVudGF0aW9uLCA6a2JkOmBCYWNrc3BhY2VgIGRlbGV0ZXMgdXAKLXRvIDQgc3BhY2VzIGlmIHRoZXkgYXJlIHRoZXJlLiA6a2JkOmBUYWJgIGluc2VydHMgMS00IHNwYWNlcyAoaW4gdGhlIFB5dGhvbgotU2hlbGwgd2luZG93IG9uZSB0YWIpLiBTZWUgYWxzbyB0aGUgaW5kZW50L2RlZGVudCByZWdpb24gY29tbWFuZHMgaW4gdGhlIGVkaXQKLW1lbnUuCit0byA0IHNwYWNlcyBpZiB0aGV5IGFyZSB0aGVyZS4gOmtiZDpgVGFiYCBpbnNlcnRzIHNwYWNlcyAoaW4gdGhlIFB5dGhvbgorU2hlbGwgd2luZG93IG9uZSB0YWIpLCBudW1iZXIgZGVwZW5kcyBvbiBJbmRlbnQgd2lkdGguIEN1cnJlbnRseSB0YWJzCithcmUgcmVzdHJpY3RlZCB0byBmb3VyIHNwYWNlcyBkdWUgdG8gVGNsL1RrIGxpbWl0YXRpb25zLgogCitTZWUgYWxzbyB0aGUgaW5kZW50L2RlZGVudCByZWdpb24gY29tbWFuZHMgaW4gdGhlIGVkaXQgbWVudS4KKworQ29tcGxldGlvbnMKK15eXl5eXl5eXl5eCisKK0NvbXBsZXRpb25zIGFyZSBzdXBwbGllZCBmb3IgZnVuY3Rpb25zLCBjbGFzc2VzLCBhbmQgYXR0cmlidXRlcyBvZiBjbGFzc2VzLAorYm90aCBidWlsdC1pbiBhbmQgdXNlci1kZWZpbmVkLiBDb21wbGV0aW9ucyBhcmUgYWxzbyBwcm92aWRlZCBmb3IKK2ZpbGVuYW1lcy4KKworVGhlIEF1dG9Db21wbGV0ZVdpbmRvdyAoQUNXKSB3aWxsIG9wZW4gYWZ0ZXIgYSBwcmVkZWZpbmVkIGRlbGF5IChkZWZhdWx0IGlzCit0d28gc2Vjb25kcykgYWZ0ZXIgYSAnLicgb3IgKGluIGEgc3RyaW5nKSBhbiBvcy5zZXAgaXMgdHlwZWQuIElmIGFmdGVyIG9uZQorb2YgdGhvc2UgY2hhcmFjdGVycyAocGx1cyB6ZXJvIG9yIG1vcmUgb3RoZXIgY2hhcmFjdGVycykgYSB0YWIgaXMgdHlwZWQKK3RoZSBBQ1cgd2lsbCBvcGVuIGltbWVkaWF0ZWx5IGlmIGEgcG9zc2libGUgY29udGludWF0aW9uIGlzIGZvdW5kLgorCitJZiB0aGVyZSBpcyBvbmx5IG9uZSBwb3NzaWJsZSBjb21wbGV0aW9uIGZvciB0aGUgY2hhcmFjdGVycyBlbnRlcmVkLCBhCis6a2JkOmBUYWJgIHdpbGwgc3VwcGx5IHRoYXQgY29tcGxldGlvbiB3aXRob3V0IG9wZW5pbmcgdGhlIEFDVy4KKworJ1Nob3cgQ29tcGxldGlvbnMnIHdpbGwgZm9yY2Ugb3BlbiBhIGNvbXBsZXRpb25zIHdpbmRvdywgYnkgZGVmYXVsdCB0aGUKKzprYmQ6YEMtc3BhY2VgIHdpbGwgb3BlbiBhIGNvbXBsZXRpb25zIHdpbmRvdy4gSW4gYW4gZW1wdHkKK3N0cmluZywgdGhpcyB3aWxsIGNvbnRhaW4gdGhlIGZpbGVzIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4gT24gYQorYmxhbmsgbGluZSwgaXQgd2lsbCBjb250YWluIHRoZSBidWlsdC1pbiBhbmQgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBhbmQKK2NsYXNzZXMgaW4gdGhlIGN1cnJlbnQgbmFtZSBzcGFjZXMsIHBsdXMgYW55IG1vZHVsZXMgaW1wb3J0ZWQuIElmIHNvbWUKK2NoYXJhY3RlcnMgaGF2ZSBiZWVuIGVudGVyZWQsIHRoZSBBQ1cgd2lsbCBhdHRlbXB0IHRvIGJlIG1vcmUgc3BlY2lmaWMuCisKK0lmIGEgc3RyaW5nIG9mIGNoYXJhY3RlcnMgaXMgdHlwZWQsIHRoZSBBQ1cgc2VsZWN0aW9uIHdpbGwganVtcCB0byB0aGUKK2VudHJ5IG1vc3QgY2xvc2VseSBtYXRjaGluZyB0aG9zZSBjaGFyYWN0ZXJzLiAgRW50ZXJpbmcgYSA6a2JkOmB0YWJgIHdpbGwKK2NhdXNlIHRoZSBsb25nZXN0IG5vbi1hbWJpZ3VvdXMgbWF0Y2ggdG8gYmUgZW50ZXJlZCBpbiB0aGUgRWRpdG9yIHdpbmRvdyBvcgorU2hlbGwuICBUd28gOmtiZDpgdGFiYCBpbiBhIHJvdyB3aWxsIHN1cHBseSB0aGUgY3VycmVudCBBQ1cgc2VsZWN0aW9uLCBhcword2lsbCByZXR1cm4gb3IgYSBkb3VibGUgY2xpY2suICBDdXJzb3Iga2V5cywgUGFnZSBVcC9Eb3duLCBtb3VzZSBzZWxlY3Rpb24sCithbmQgdGhlIHNjcm9sbCB3aGVlbCBhbGwgb3BlcmF0ZSBvbiB0aGUgQUNXLgorCisiSGlkZGVuIiBhdHRyaWJ1dGVzIGNhbiBiZSBhY2Nlc3NlZCBieSB0eXBpbmcgdGhlIGJlZ2lubmluZyBvZiBoaWRkZW4KK25hbWUgYWZ0ZXIgYSAnLicsIGUuZy4gJ18nLiBUaGlzIGFsbG93cyBhY2Nlc3MgdG8gbW9kdWxlcyB3aXRoCitgYF9fYWxsX19gYCBzZXQsIG9yIHRvIGNsYXNzLXByaXZhdGUgYXR0cmlidXRlcy4KKworQ29tcGxldGlvbnMgYW5kIHRoZSAnRXhwYW5kIFdvcmQnIGZhY2lsaXR5IGNhbiBzYXZlIGEgbG90IG9mIHR5cGluZyEKKworQ29tcGxldGlvbnMgYXJlIGN1cnJlbnRseSBsaW1pdGVkIHRvIHRob3NlIGluIHRoZSBuYW1lc3BhY2VzLiBOYW1lcyBpbgorYW4gRWRpdG9yIHdpbmRvdyB3aGljaCBhcmUgbm90IHZpYSBgYF9fbWFpbl9fYGAgYW5kIDpkYXRhOmBzeXMubW9kdWxlc2Agd2lsbAorbm90IGJlIGZvdW5kLiAgUnVuIHRoZSBtb2R1bGUgb25jZSB3aXRoIHlvdXIgaW1wb3J0cyB0byBjb3JyZWN0IHRoaXMgc2l0dWF0aW9uLgorTm90ZSB0aGF0IElETEUgaXRzZWxmIHBsYWNlcyBxdWl0ZSBhIGZldyBtb2R1bGVzIGluIHN5cy5tb2R1bGVzLCBzbworbXVjaCBjYW4gYmUgZm91bmQgYnkgZGVmYXVsdCwgZS5nLiB0aGUgcmUgbW9kdWxlLgorCitJZiB5b3UgZG9uJ3QgbGlrZSB0aGUgQUNXIHBvcHBpbmcgdXAgdW5iaWRkZW4sIHNpbXBseSBtYWtlIHRoZSBkZWxheQorbG9uZ2VyIG9yIGRpc2FibGUgdGhlIGV4dGVuc2lvbi4gIE9yIGFub3RoZXIgb3B0aW9uIGlzIHRoZSBkZWxheSBjb3VsZAorYmUgc2V0IHRvIHplcm8uIEFub3RoZXIgYWx0ZXJuYXRpdmUgdG8gcHJldmVudGluZyBBQ1cgcG9wdXBzIGlzIHRvCitkaXNhYmxlIHRoZSBjYWxsIHRpcHMgZXh0ZW5zaW9uLgogCiBQeXRob24gU2hlbGwgd2luZG93CiBeXl5eXl5eXl5eXl5eXl5eXl5eCiAKLSogOmtiZDpgQy1DYCBpbnRlcnJ1cHRzIGV4ZWN1dGluZyBjb21tYW5kCisqIDprYmQ6YEMtY2AgaW50ZXJydXB0cyBleGVjdXRpbmcgY29tbWFuZAogCi0qIDprYmQ6YEMtRGAgc2VuZHMgZW5kLW9mLWZpbGU7IGNsb3NlcyB3aW5kb3cgaWYgdHlwZWQgYXQgYSBgYD4+PmBgIHByb21wdAorKiA6a2JkOmBDLWRgIHNlbmRzIGVuZC1vZi1maWxlOyBjbG9zZXMgd2luZG93IGlmIHR5cGVkIGF0IGEgYGA+Pj5gYCBwcm9tcHQKKyAgKHRoaXMgaXMgOmtiZDpgQy16YCBvbiBXaW5kb3dzKS4KIAotKiA6a2JkOmBBbHQtcGAgcmV0cmlldmVzIHByZXZpb3VzIGNvbW1hbmQgbWF0Y2hpbmcgd2hhdCB5b3UgaGF2ZSB0eXBlZAorKiA6a2JkOmBBbHQtL2AgKEV4cGFuZCB3b3JkKSBpcyBhbHNvIHVzZWZ1bCB0byByZWR1Y2UgdHlwaW5nCiAKLSogOmtiZDpgQWx0LW5gIHJldHJpZXZlcyBuZXh0CisgIENvbW1hbmQgaGlzdG9yeQogCi0qIDprYmQ6YFJldHVybmAgd2hpbGUgb24gYW55IHByZXZpb3VzIGNvbW1hbmQgcmV0cmlldmVzIHRoYXQgY29tbWFuZAorICAqIDprYmQ6YEFsdC1wYCByZXRyaWV2ZXMgcHJldmlvdXMgY29tbWFuZCBtYXRjaGluZyB3aGF0IHlvdSBoYXZlIHR5cGVkLiBPbgorICAgIE9TIFggdXNlIDprYmQ6YEMtcGAuCiAKLSogOmtiZDpgQWx0LS9gIChFeHBhbmQgd29yZCkgaXMgYWxzbyB1c2VmdWwgaGVyZQorICAqIDprYmQ6YEFsdC1uYCByZXRyaWV2ZXMgbmV4dC4gT24gT1MgWCB1c2UgOmtiZDpgQy1uYC4KIAotLi4gaW5kZXg6OiBzaW5nbGU6IGluZGVudGF0aW9uCisgICogOmtiZDpgUmV0dXJuYCB3aGlsZSBvbiBhbnkgcHJldmlvdXMgY29tbWFuZCByZXRyaWV2ZXMgdGhhdCBjb21tYW5kCiAKIAogU3ludGF4IGNvbG9ycwpAQCAtMzA4LDE3ICs0NjcsMTcgQEAKIAogVXBvbiBzdGFydHVwIHdpdGggdGhlIGBgLXNgYCBvcHRpb24sIElETEUgd2lsbCBleGVjdXRlIHRoZSBmaWxlIHJlZmVyZW5jZWQgYnkKIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgOmVudnZhcjpgSURMRVNUQVJUVVBgIG9yIDplbnZ2YXI6YFBZVEhPTlNUQVJUVVBgLgotSWRsZSBmaXJzdCBjaGVja3MgZm9yIGBgSURMRVNUQVJUVVBgYDsgaWYgYGBJRExFU1RBUlRVUGBgIGlzIHByZXNlbnQgdGhlIGZpbGUKLXJlZmVyZW5jZWQgaXMgcnVuLiAgSWYgYGBJRExFU1RBUlRVUGBgIGlzIG5vdCBwcmVzZW50LCBJZGxlIGNoZWNrcyBmb3IKK0lETEUgZmlyc3QgY2hlY2tzIGZvciBgYElETEVTVEFSVFVQYGA7IGlmIGBgSURMRVNUQVJUVVBgYCBpcyBwcmVzZW50IHRoZSBmaWxlCityZWZlcmVuY2VkIGlzIHJ1bi4gIElmIGBgSURMRVNUQVJUVVBgYCBpcyBub3QgcHJlc2VudCwgSURMRSBjaGVja3MgZm9yCiBgYFBZVEhPTlNUQVJUVVBgYC4gIEZpbGVzIHJlZmVyZW5jZWQgYnkgdGhlc2UgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZQotY29udmVuaWVudCBwbGFjZXMgdG8gc3RvcmUgZnVuY3Rpb25zIHRoYXQgYXJlIHVzZWQgZnJlcXVlbnRseSBmcm9tIHRoZSBJZGxlCitjb252ZW5pZW50IHBsYWNlcyB0byBzdG9yZSBmdW5jdGlvbnMgdGhhdCBhcmUgdXNlZCBmcmVxdWVudGx5IGZyb20gdGhlIElETEUKIHNoZWxsLCBvciBmb3IgZXhlY3V0aW5nIGltcG9ydCBzdGF0ZW1lbnRzIHRvIGltcG9ydCBjb21tb24gbW9kdWxlcy4KIAogSW4gYWRkaXRpb24sIGBgVGtgYCBhbHNvIGxvYWRzIGEgc3RhcnR1cCBmaWxlIGlmIGl0IGlzIHByZXNlbnQuICBOb3RlIHRoYXQgdGhlCiBUayBmaWxlIGlzIGxvYWRlZCB1bmNvbmRpdGlvbmFsbHkuICBUaGlzIGFkZGl0aW9uYWwgZmlsZSBpcyBgYC5JZGxlLnB5YGAgYW5kIGlzCiBsb29rZWQgZm9yIGluIHRoZSB1c2VyJ3MgaG9tZSBkaXJlY3RvcnkuICBTdGF0ZW1lbnRzIGluIHRoaXMgZmlsZSB3aWxsIGJlCiBleGVjdXRlZCBpbiB0aGUgVGsgbmFtZXNwYWNlLCBzbyB0aGlzIGZpbGUgaXMgbm90IHVzZWZ1bCBmb3IgaW1wb3J0aW5nIGZ1bmN0aW9ucwotdG8gYmUgdXNlZCBmcm9tIElkbGUncyBQeXRob24gc2hlbGwuCit0byBiZSB1c2VkIGZyb20gSURMRSdzIFB5dGhvbiBzaGVsbC4KIAogCiBDb21tYW5kIGxpbmUgdXNhZ2UKQEAgLTM0OSwzICs1MDgsNDUgQEAKICAgIHRoZSBhcmd1bWVudHMgYXJlIHN0aWxsIGF2YWlsYWJsZSBpbiBgYHN5cy5hcmd2YGAuCiAKIAorQWRkaXRpb25hbCBoZWxwIHNvdXJjZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0lETEUgaW5jbHVkZXMgYSBoZWxwIG1lbnUgZW50cnkgY2FsbGVkICJQeXRob24gRG9jcyIgdGhhdCB3aWxsIG9wZW4gdGhlCitleHRlbnNpdmUgc291cmNlcyBvZiBoZWxwLCBpbmNsdWRpbmcgdHV0b3JpYWxzLCBhdmFpbGFibGUgYXQgZG9jcy5weXRob24ub3JnLgorU2VsZWN0ZWQgVVJMcyBjYW4gYmUgYWRkZWQgb3IgcmVtb3ZlZCBmcm9tIHRoZSBoZWxwIG1lbnUgYXQgYW55IHRpbWUgdXNpbmcgdGhlCitDb25maWd1cmUgSURMRSBkaWFsb2cuIFNlZSB0aGUgSURMRSBoZWxwIG9wdGlvbiBpbiB0aGUgaGVscCBtZW51IG9mIElETEUgZm9yCittb3JlIGluZm9ybWF0aW9uLgorCisKK090aGVyIHByZWZlcmVuY2VzCistLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgZm9udCBwcmVmZXJlbmNlcywgaGlnaGxpZ2h0aW5nLCBrZXlzLCBhbmQgZ2VuZXJhbCBwcmVmZXJlbmNlcyBjYW4gYmUKK2NoYW5nZWQgdmlhIHRoZSBDb25maWd1cmUgSURMRSBtZW51IG9wdGlvbi4gIEJlIHN1cmUgdG8gbm90ZSB0aGF0CitrZXlzIGNhbiBiZSB1c2VyIGRlZmluZWQsIElETEUgc2hpcHMgd2l0aCBmb3VyIGJ1aWx0IGluIGtleSBzZXRzLiBJbgorYWRkaXRpb24gYSB1c2VyIGNhbiBjcmVhdGUgYSBjdXN0b20ga2V5IHNldCBpbiB0aGUgQ29uZmlndXJlIElETEUgZGlhbG9nCit1bmRlciB0aGUga2V5cyB0YWIuCisKK0V4dGVuc2lvbnMKKy0tLS0tLS0tLS0KKworSURMRSBjb250YWlucyBhbiBleHRlbnNpb24gZmFjaWxpdHkuICBTZWUgdGhlIGJlZ2lubmluZyBvZgorY29uZmlnLWV4dGVuc2lvbnMuZGVmIGluIHRoZSBpZGxlbGliIGRpcmVjdG9yeSBmb3IgZnVydGhlciBpbmZvcm1hdGlvbi4gIFRoZQorZGVmYXVsdCBleHRlbnNpb25zIGFyZSBjdXJyZW50bHk6CisKKyogRm9ybWF0UGFyYWdyYXBoCisKKyogQXV0b0V4cGFuZAorCisqIFpvb21IZWlnaHQKKworKiBTY3JpcHRCaW5kaW5nCisKKyogQ2FsbFRpcHMKKworKiBQYXJlbk1hdGNoCisKKyogQXV0b0NvbXBsZXRlCisKKyogQ29kZUNvbnRleHQKKwpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvaW1wLnJzdCBiL0RvYy9saWJyYXJ5L2ltcC5yc3QKaW5kZXggN2Q0YmY0Zi4uZTA5MGUwMCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvaW1wLnJzdAorKysgYi9Eb2MvbGlicmFyeS9pbXAucnN0CkBAIC0xLDYgKzEsOSBAQAogOm1vZDpgaW1wYCAtLS0gQWNjZXNzIHRoZSA6cmVmOmBpbXBvcnQgPGltcG9ydHN5c3RlbT5gIGludGVybmFscwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCisuLiBkZXByZWNhdGVkOjogMy40CisgICBUaGUgOm1vZDpgaW1wYCBwYWNrYWdlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgOm1vZDpgaW1wb3J0bGliYC4KKwogLi4gbW9kdWxlOjogaW1wCiAgICA6c3lub3BzaXM6IEFjY2VzcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGltcG9ydCBzdGF0ZW1lbnQuCiAKQEAgLTExLDEwICsxNCw2IEBACiA6a2V5d29yZDpgaW1wb3J0YCBzdGF0ZW1lbnQuICBJdCBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgY29uc3RhbnRzIGFuZCBmdW5jdGlvbnM6CiAKIAotLi4gbm90ZTo6Ci0gICBOZXcgcHJvZ3JhbXMgc2hvdWxkIHVzZSA6bW9kOmBpbXBvcnRsaWJgIHJhdGhlciB0aGFuIHRoaXMgbW9kdWxlLgotCi0KIC4uIGZ1bmN0aW9uOjogZ2V0X21hZ2ljKCkKIAogICAgLi4gaW5kZXg6OiBwYWlyOiBmaWxlOyBieXRlLWNvZGUKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2ltcG9ydGxpYi5yc3QgYi9Eb2MvbGlicmFyeS9pbXBvcnRsaWIucnN0CmluZGV4IDZmMTg5OWYuLmQ5ZTQyNzMgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2ltcG9ydGxpYi5yc3QKKysrIGIvRG9jL2xpYnJhcnkvaW1wb3J0bGliLnJzdApAQCAtOTAsNyArOTAsNyBAQAogCiAgICBGaW5kIHRoZSBsb2FkZXIgZm9yIGEgbW9kdWxlLCBvcHRpb25hbGx5IHdpdGhpbiB0aGUgc3BlY2lmaWVkICpwYXRoKi4gSWYgdGhlCiAgICBtb2R1bGUgaXMgaW4gOmF0dHI6YHN5cy5tb2R1bGVzYCwgdGhlbiBgYHN5cy5tb2R1bGVzW25hbWVdLl9fbG9hZGVyX19gYCBpcwotICAgcmV0dXJuZWQgKHVubGVzcyB0aGUgbG9hZGVyIHdvdWxkIGJlIGBgTm9uZWBgLCBpbiB3aGljaCBjYXNlCisgICByZXR1cm5lZCAodW5sZXNzIHRoZSBsb2FkZXIgd291bGQgYmUgYGBOb25lYGAgb3IgaXMgbm90IHNldCwgaW4gd2hpY2ggY2FzZQogICAgOmV4YzpgVmFsdWVFcnJvcmAgaXMgcmFpc2VkKS4gT3RoZXJ3aXNlIGEgc2VhcmNoIHVzaW5nIDphdHRyOmBzeXMubWV0YV9wYXRoYAogICAgaXMgZG9uZS4gYGBOb25lYGAgaXMgcmV0dXJuZWQgaWYgbm8gbG9hZGVyIGlzIGZvdW5kLgogCkBAIC05OSw2ICs5OSwxMiBAQAogICAgd2lsbCBuZWVkIHRvIGltcG9ydCBhbGwgcGFyZW50IHBhY2thZ2VzIG9mIHRoZSBzdWJtb2R1bGUgYW5kIHVzZSB0aGUgY29ycmVjdAogICAgYXJndW1lbnQgdG8gKnBhdGgqLgogCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgIElmIGBgX19sb2FkZXJfX2BgIGlzIG5vdCBzZXQsIHJhaXNlIDpleGM6YFZhbHVlRXJyb3JgLCBqdXN0IGxpa2Ugd2hlbiB0aGUKKyAgICAgIGF0dHJpYnV0ZSBpcyBzZXQgdG8gYGBOb25lYGAuCisKIC4uIGZ1bmN0aW9uOjogaW52YWxpZGF0ZV9jYWNoZXMoKQogCiAgICBJbnZhbGlkYXRlIHRoZSBpbnRlcm5hbCBjYWNoZXMgb2YgZmluZGVycyBzdG9yZWQgYXQKQEAgLTEzMiw4ICsxMzgsNiBAQAogICAgICAgICAgICAgICAgKy0tIEV4ZWN1dGlvbkxvYWRlciAtLSsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0gRmlsZUxvYWRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLSBTb3VyY2VMb2FkZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLSBQeUxvYWRlciAoZGVwcmVjYXRlZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLSBQeVB5Y0xvYWRlciAoZGVwcmVjYXRlZCkKIAogCiAuLiBjbGFzczo6IEZpbmRlcgpAQCAtMTQ5LDYgKzE1MywxMCBAQAogICAgICAgbW9kdWxlLiAgT3JpZ2luYWxseSBzcGVjaWZpZWQgaW4gOnBlcDpgMzAyYCwgdGhpcyBtZXRob2Qgd2FzIG1lYW50CiAgICAgICBmb3IgdXNlIGluIDpkYXRhOmBzeXMubWV0YV9wYXRoYCBhbmQgaW4gdGhlIHBhdGgtYmFzZWQgaW1wb3J0IHN1YnN5c3RlbS4KIAorICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgICAgIFJldHVybnMgYGBOb25lYGAgd2hlbiBjYWxsZWQgaW5zdGVhZCBvZiByYWlzaW5nCisgICAgICAgICA6ZXhjOmBOb3RJbXBsZW1lbnRlZEVycm9yYC4KKwogCiAuLiBjbGFzczo6IE1ldGFQYXRoRmluZGVyCiAKQEAgLTE2NSwxMiArMTczLDE5IEBACiAgICAgICB3aWxsIGJlIHRoZSB2YWx1ZSBvZiA6YXR0cjpgX19wYXRoX19gIGZyb20gdGhlIHBhcmVudAogICAgICAgcGFja2FnZS4gSWYgYSBsb2FkZXIgY2Fubm90IGJlIGZvdW5kLCBgYE5vbmVgYCBpcyByZXR1cm5lZC4KIAorICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgICAgIFJldHVybnMgYGBOb25lYGAgd2hlbiBjYWxsZWQgaW5zdGVhZCBvZiByYWlzaW5nCisgICAgICAgICA6ZXhjOmBOb3RJbXBsZW1lbnRlZEVycm9yYC4KKwogICAgLi4gbWV0aG9kOjogaW52YWxpZGF0ZV9jYWNoZXMoKQogCiAgICAgICBBbiBvcHRpb25hbCBtZXRob2Qgd2hpY2gsIHdoZW4gY2FsbGVkLCBzaG91bGQgaW52YWxpZGF0ZSBhbnkgaW50ZXJuYWwKICAgICAgIGNhY2hlIHVzZWQgYnkgdGhlIGZpbmRlci4gVXNlZCBieSA6ZnVuYzpgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzYAogICAgICAgd2hlbiBpbnZhbGlkYXRpbmcgdGhlIGNhY2hlcyBvZiBhbGwgZmluZGVycyBvbiA6ZGF0YTpgc3lzLm1ldGFfcGF0aGAuCiAKKyAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICAgICBSZXR1cm5zIGBgTm9uZWBgIHdoZW4gY2FsbGVkIGluc3RlYWQgb2YgYGBOb3RJbXBsZW1lbnRlZGBgLgorCiAKIC4uIGNsYXNzOjogUGF0aEVudHJ5RmluZGVyCiAKQEAgLTE3OCw3ICsxOTMsNyBAQAogICAgaXQgYmVhcnMgc29tZSBzaW1pbGFyaXRpZXMgdG8gOmNsYXNzOmBNZXRhUGF0aEZpbmRlcmAsIGBgUGF0aEVudHJ5RmluZGVyYGAKICAgIGlzIG1lYW50IGZvciB1c2Ugb25seSB3aXRoaW4gdGhlIHBhdGgtYmFzZWQgaW1wb3J0IHN1YnN5c3RlbSBwcm92aWRlZAogICAgYnkgOmNsYXNzOmBQYXRoRmluZGVyYC4gVGhpcyBBQkMgaXMgYSBzdWJjbGFzcyBvZiA6Y2xhc3M6YEZpbmRlcmAgZm9yCi0gICBjb21wYXRpYmlsaXR5LgorICAgY29tcGF0aWJpbGl0eSByZWFzb25zIG9ubHkuCiAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwogCkBAIC0xOTAsOSArMjA1LDEyIEBACiAgICAgICBwYWNrYWdlLiBUaGUgbG9hZGVyIG1heSBiZSBgYE5vbmVgYCB3aGlsZSBzcGVjaWZ5aW5nIGBgcG9ydGlvbmBgIHRvCiAgICAgICBzaWduaWZ5IHRoZSBjb250cmlidXRpb24gb2YgdGhlIGZpbGUgc3lzdGVtIGxvY2F0aW9ucyB0byBhIG5hbWVzcGFjZQogICAgICAgcGFja2FnZS4gQW4gZW1wdHkgbGlzdCBjYW4gYmUgdXNlZCBmb3IgYGBwb3J0aW9uYGAgdG8gc2lnbmlmeSB0aGUgbG9hZGVyCi0gICAgICBpcyBub3QgcGFydCBvZiBhIHBhY2thZ2UuIElmIGBgbG9hZGVyYGAgaXMgYGBOb25lYGAgYW5kIGBgcG9ydGlvbmBgIGlzCi0gICAgICB0aGUgZW1wdHkgbGlzdCB0aGVuIG5vIGxvYWRlciBvciBsb2NhdGlvbiBmb3IgYSBuYW1lc3BhY2UgcGFja2FnZSB3ZXJlCi0gICAgICBmb3VuZCAoaS5lLiBmYWlsdXJlIHRvIGZpbmQgYW55dGhpbmcgZm9yIHRoZSBtb2R1bGUpLgorICAgICAgaXMgbm90IHBhcnQgb2YgYSBuYW1lc3BhY2UgcGFja2FnZS4gSWYgYGBsb2FkZXJgYCBpcyBgYE5vbmVgYCBhbmQKKyAgICAgIGBgcG9ydGlvbmBgIGlzIHRoZSBlbXB0eSBsaXN0IHRoZW4gbm8gbG9hZGVyIG9yIGxvY2F0aW9uIGZvciBhIG5hbWVzcGFjZQorICAgICAgcGFja2FnZSB3ZXJlIGZvdW5kIChpLmUuIGZhaWx1cmUgdG8gZmluZCBhbnl0aGluZyBmb3IgdGhlIG1vZHVsZSkuCisKKyAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICAgICBSZXR1cm5zIGBgKE5vbmUsIFtdKWBgIGluc3RlYWQgb2YgcmFpc2luZyA6ZXhjOmBOb3RJbXBsZW1lbnRlZEVycm9yYC4KIAogICAgLi4gbWV0aG9kOjogZmluZF9tb2R1bGUoZnVsbG5hbWUpCiAKQEAgLTIyNCwxMiArMjQyLDExIEBACiAgICAgICAgIGZyb20gdGhlIGltcG9ydC4gSWYgdGhlIGxvYWRlciBpbnNlcnRlZCBhIG1vZHVsZSBhbmQgdGhlIGxvYWQgZmFpbHMsIGl0CiAgICAgICAgIG11c3QgYmUgcmVtb3ZlZCBieSB0aGUgbG9hZGVyIGZyb20gOmRhdGE6YHN5cy5tb2R1bGVzYDsgbW9kdWxlcyBhbHJlYWR5CiAgICAgICAgIGluIDpkYXRhOmBzeXMubW9kdWxlc2AgYmVmb3JlIHRoZSBsb2FkZXIgYmVnYW4gZXhlY3V0aW9uIHNob3VsZCBiZSBsZWZ0Ci0gICAgICAgIGFsb25lLiBUaGUgOmZ1bmM6YGltcG9ydGxpYi51dGlsLm1vZHVsZV9mb3JfbG9hZGVyYCBkZWNvcmF0b3IgaGFuZGxlcwotICAgICAgICBhbGwgb2YgdGhlc2UgZGV0YWlscy4KKyAgICAgICAgYWxvbmUgKHNlZSA6ZnVuYzpgaW1wb3J0bGliLnV0aWwubW9kdWxlX3RvX2xvYWRgKS4KIAogICAgICAgICBUaGUgbG9hZGVyIHNob3VsZCBzZXQgc2V2ZXJhbCBhdHRyaWJ1dGVzIG9uIHRoZSBtb2R1bGUuCiAgICAgICAgIChOb3RlIHRoYXQgc29tZSBvZiB0aGVzZSBhdHRyaWJ1dGVzIGNhbiBjaGFuZ2Ugd2hlbiBhIG1vZHVsZSBpcwotICAgICAgICByZWxvYWRlZC4pCisgICAgICAgIHJlbG9hZGVkOyBzZWUgOm1ldGg6YGluaXRfbW9kdWxlX2F0dHJzYCk6CiAKICAgICAgICAgLSA6YXR0cjpgX19uYW1lX19gCiAgICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlLgpAQCAtMjQ5LDIwICsyNjYsMzkgQEAKICAgICAgICAgLSA6YXR0cjpgX19wYWNrYWdlX19gCiAgICAgICAgICAgICBUaGUgcGFyZW50IHBhY2thZ2UgZm9yIHRoZSBtb2R1bGUvcGFja2FnZS4gSWYgdGhlIG1vZHVsZSBpcwogICAgICAgICAgICAgdG9wLWxldmVsIHRoZW4gaXQgaGFzIGEgdmFsdWUgb2YgdGhlIGVtcHR5IHN0cmluZy4gVGhlCi0gICAgICAgICAgICA6ZnVuYzpgaW1wb3J0bGliLnV0aWwuc2V0X3BhY2thZ2VgIGRlY29yYXRvciBjYW4gaGFuZGxlIHRoZSBkZXRhaWxzCi0gICAgICAgICAgICBmb3IgOmF0dHI6YF9fcGFja2FnZV9fYC4KKyAgICAgICAgICAgIDpmdW5jOmBpbXBvcnRsaWIudXRpbC5tb2R1bGVfZm9yX2xvYWRlcmAgZGVjb3JhdG9yIGNhbiBoYW5kbGUgdGhlCisgICAgICAgICAgICBkZXRhaWxzIGZvciA6YXR0cjpgX19wYWNrYWdlX19gLgogCiAgICAgICAgIC0gOmF0dHI6YF9fbG9hZGVyX19gCi0gICAgICAgICAgICBUaGUgbG9hZGVyIHVzZWQgdG8gbG9hZCB0aGUgbW9kdWxlLgotICAgICAgICAgICAgKFRoaXMgaXMgbm90IHNldCBieSB0aGUgYnVpbHQtaW4gaW1wb3J0IG1hY2hpbmVyeSwKLSAgICAgICAgICAgIGJ1dCBpdCBzaG91bGQgYmUgc2V0IHdoZW5ldmVyIGEgOnRlcm06YGxvYWRlcmAgaXMgdXNlZC4pCisgICAgICAgICAgICBUaGUgbG9hZGVyIHVzZWQgdG8gbG9hZCB0aGUgbW9kdWxlLiBUaGUKKyAgICAgICAgICAgIDpmdW5jOmBpbXBvcnRsaWIudXRpbC5tb2R1bGVfZm9yX2xvYWRlcmAgZGVjb3JhdG9yIGNhbiBoYW5kbGUgdGhlCisgICAgICAgICAgICBkZXRhaWxzIGZvciA6YXR0cjpgX19wYWNrYWdlX19gLgorCisgICAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICAgICAgIFJhaXNlIDpleGM6YEltcG9ydEVycm9yYCB3aGVuIGNhbGxlZCBpbnN0ZWFkIG9mCisgICAgICAgICAgIDpleGM6YE5vdEltcGxlbWVudGVkRXJyb3JgLgogCiAgICAgLi4gbWV0aG9kOjogbW9kdWxlX3JlcHIobW9kdWxlKQogCi0gICAgICAgIEFuIGFic3RyYWN0IG1ldGhvZCB3aGljaCB3aGVuIGltcGxlbWVudGVkIGNhbGN1bGF0ZXMgYW5kIHJldHVybnMgdGhlCi0gICAgICAgIGdpdmVuIG1vZHVsZSdzIHJlcHIsIGFzIGEgc3RyaW5nLgorICAgICAgICBBbiBvcHRpb25hbCBtZXRob2Qgd2hpY2ggd2hlbiBpbXBsZW1lbnRlZCBjYWxjdWxhdGVzIGFuZCByZXR1cm5zIHRoZQorICAgICAgICBnaXZlbiBtb2R1bGUncyByZXByLCBhcyBhIHN0cmluZy4gVGhlIG1vZHVsZSB0eXBlJ3MgZGVmYXVsdCByZXByKCkgd2lsbAorICAgICAgICB1c2UgdGhlIHJlc3VsdCBvZiB0aGlzIG1ldGhvZCBhcyBhcHByb3ByaWF0ZS4KIAotICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6IDMuMworICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgICAgICBNYWRlIG9wdGlvbmFsIGluc3RlYWQgb2YgYW4gYWJzdHJhY3RtZXRob2QuCisKKyAgICAuLiBtZXRob2Q6OiBpbml0X21vZHVsZV9hdHRycyhtb2R1bGUpCisKKyAgICAgICAgU2V0IHRoZSA6YXR0cjpgX19sb2FkZXJfX2AgYXR0cmlidXRlIG9uIHRoZSBtb2R1bGUuCisKKyAgICAgICAgU3ViY2xhc3NlcyBvdmVycmlkaW5nIHRoaXMgbWV0aG9kIHNob3VsZCBzZXQgd2hhdGV2ZXIgYXBwcm9wcmlhdGUKKyAgICAgICAgYXR0cmlidXRlcyBpdCBjYW4sIGdldHRpbmcgdGhlIG1vZHVsZSdzIG5hbWUgZnJvbSA6YXR0cjpgX19uYW1lX19gIHdoZW4KKyAgICAgICAgbmVlZGVkLiBBbGwgdmFsdWVzIHNob3VsZCBhbHNvIGJlIG92ZXJyaWRkZW4gc28gdGhhdCByZWxvYWRpbmcgd29ya3MgYXMKKyAgICAgICAgZXhwZWN0ZWQuCisKKyAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CiAKIAogLi4gY2xhc3M6OiBSZXNvdXJjZUxvYWRlcgpAQCAtMjgxLDYgKzMxNyw5IEBACiAgICAgICAgIGJlIGZvdW5kLiBUaGUgKnBhdGgqIGlzIGV4cGVjdGVkIHRvIGJlIGNvbnN0cnVjdGVkIHVzaW5nIGEgbW9kdWxlJ3MKICAgICAgICAgOmF0dHI6YF9fZmlsZV9fYCBhdHRyaWJ1dGUgb3IgYW4gaXRlbSBmcm9tIGEgcGFja2FnZSdzIDphdHRyOmBfX3BhdGhfX2AuCiAKKyAgICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgICAgICAgUmFpc2VzIDpleGM6YElPRXJyb3JgIGluc3RlYWQgb2YgOmV4YzpgTm90SW1wbGVtZW50ZWRFcnJvcmAuCisKIAogLi4gY2xhc3M6OiBJbnNwZWN0TG9hZGVyCiAKQEAgLTI4OSwxNCArMzI4LDIxIEBACiAKICAgICAuLiBtZXRob2Q6OiBnZXRfY29kZShmdWxsbmFtZSkKIAotICAgICAgICBBbiBhYnN0cmFjdCBtZXRob2QgdG8gcmV0dXJuIHRoZSA6Y2xhc3M6YGNvZGVgIG9iamVjdCBmb3IgYSBtb2R1bGUuCi0gICAgICAgIGBgTm9uZWBgIGlzIHJldHVybmVkIGlmIHRoZSBtb2R1bGUgZG9lcyBub3QgaGF2ZSBhIGNvZGUgb2JqZWN0CisgICAgICAgIFJldHVybiB0aGUgY29kZSBvYmplY3QgZm9yIGEgbW9kdWxlLgorICAgICAgICBgYE5vbmVgYCBzaG91bGQgYmUgcmV0dXJuZWQgaWYgdGhlIG1vZHVsZSBkb2VzIG5vdCBoYXZlIGEgY29kZSBvYmplY3QKICAgICAgICAgKGUuZy4gYnVpbHQtaW4gbW9kdWxlKS4gIDpleGM6YEltcG9ydEVycm9yYCBpcyByYWlzZWQgaWYgbG9hZGVyIGNhbm5vdAogICAgICAgICBmaW5kIHRoZSByZXF1ZXN0ZWQgbW9kdWxlLgogCisgICAgICAgIC4uIG5vdGU6OgorICAgICAgICAgICBXaGlsZSB0aGUgbWV0aG9kIGhhcyBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24sIGl0IGlzIHN1Z2dlc3RlZCB0aGF0CisgICAgICAgICAgIGl0IGJlIG92ZXJyaWRkZW4gaWYgcG9zc2libGUgZm9yIHBlcmZvcm1hbmNlLgorCiAgICAgICAgIC4uIGluZGV4OjoKICAgICAgICAgICAgc2luZ2xlOiB1bml2ZXJzYWwgbmV3bGluZXM7IGltcG9ydGxpYi5hYmMuSW5zcGVjdExvYWRlci5nZXRfc291cmNlIG1ldGhvZAogCisgICAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICAgICAgIE5vIGxvbmdlciBhYnN0cmFjdCBhbmQgYSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBpcyBwcm92aWRlZC4KKwogICAgIC4uIG1ldGhvZDo6IGdldF9zb3VyY2UoZnVsbG5hbWUpCiAKICAgICAgICAgQW4gYWJzdHJhY3QgbWV0aG9kIHRvIHJldHVybiB0aGUgc291cmNlIG9mIGEgbW9kdWxlLiBJdCBpcyByZXR1cm5lZCBhcwpAQCAtMzA1LDEyICszNTEsNDEgQEAKICAgICAgICAgaWYgbm8gc291cmNlIGlzIGF2YWlsYWJsZSAoZS5nLiBhIGJ1aWx0LWluIG1vZHVsZSkuIFJhaXNlcwogICAgICAgICA6ZXhjOmBJbXBvcnRFcnJvcmAgaWYgdGhlIGxvYWRlciBjYW5ub3QgZmluZCB0aGUgbW9kdWxlIHNwZWNpZmllZC4KIAorICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgICAgICBSYWlzZXMgOmV4YzpgSW1wb3J0RXJyb3JgIGluc3RlYWQgb2YgOmV4YzpgTm90SW1wbGVtZW50ZWRFcnJvcmAuCisKICAgICAuLiBtZXRob2Q6OiBpc19wYWNrYWdlKGZ1bGxuYW1lKQogCiAgICAgICAgIEFuIGFic3RyYWN0IG1ldGhvZCB0byByZXR1cm4gYSB0cnVlIHZhbHVlIGlmIHRoZSBtb2R1bGUgaXMgYSBwYWNrYWdlLCBhCiAgICAgICAgIGZhbHNlIHZhbHVlIG90aGVyd2lzZS4gOmV4YzpgSW1wb3J0RXJyb3JgIGlzIHJhaXNlZCBpZiB0aGUKICAgICAgICAgOnRlcm06YGxvYWRlcmAgY2Fubm90IGZpbmQgdGhlIG1vZHVsZS4KIAorICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgICAgICBSYWlzZXMgOmV4YzpgSW1wb3J0RXJyb3JgIGluc3RlYWQgb2YgOmV4YzpgTm90SW1wbGVtZW50ZWRFcnJvcmAuCisKKyAgICAuLiBtZXRob2Q6OiBzb3VyY2VfdG9fY29kZShkYXRhLCBwYXRoPSc8c3RyaW5nPicpCisKKyAgICAgICAgQ3JlYXRlIGEgY29kZSBvYmplY3QgZnJvbSBQeXRob24gc291cmNlLgorCisgICAgICAgIFRoZSAqZGF0YSogYXJndW1lbnQgY2FuIGJlIHdoYXRldmVyIHRoZSA6ZnVuYzpgY29tcGlsZWAgZnVuY3Rpb24KKyAgICAgICAgc3VwcG9ydHMgKGkuZS4gc3RyaW5nIG9yIGJ5dGVzKS4gVGhlICpwYXRoKiBhcmd1bWVudCBzaG91bGQgYmUKKyAgICAgICAgdGhlICJwYXRoIiB0byB3aGVyZSB0aGUgc291cmNlIGNvZGUgb3JpZ2luYXRlZCBmcm9tLCB3aGljaCBjYW4gYmUgYW4KKyAgICAgICAgYWJzdHJhY3QgY29uY2VwdCAoZS5nLiBsb2NhdGlvbiBpbiBhIHppcCBmaWxlKS4KKworICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKKworICAgIC4uIG1ldGhvZDo6IGluaXRfbW9kdWxlX2F0dHJzKG1vZHVsZSkKKworICAgICAgICBTZXQgdGhlIDphdHRyOmBfX3BhY2thZ2VfX2AgYXR0cmlidXRlIGFuZCA6YXR0cjpgX19wYXRoX19gIGF0dHJpYnV0ZSB0bworICAgICAgICB0aGUgZW1wdHkgbGlzdCBpZiBhcHByb3ByaWF0ZSBhbG9uZyB3aXRoIHdoYXQKKyAgICAgICAgOm1ldGg6YGltcG9ydGxpYi5hYmMuTG9hZGVyLmluaXRfbW9kdWxlX2F0dHJzYCBzZXRzLgorCisgICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCisgICAgLi4gbWV0aG9kOjogbG9hZF9tb2R1bGUoZnVsbG5hbWUpCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgOm1ldGg6YExvYWRlci5sb2FkX21vZHVsZWAuCisKIAogLi4gY2xhc3M6OiBFeGVjdXRpb25Mb2FkZXIKIApAQCAtMzI4LDYgKzQwMywxOCBAQAogICAgICAgICB0aGUgc291cmNlIGZpbGUsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBhIGJ5dGVjb2RlIHdhcyB1c2VkIHRvIGxvYWQgdGhlCiAgICAgICAgIG1vZHVsZS4KIAorICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgICAgICBSYWlzZXMgOmV4YzpgSW1wb3J0RXJyb3JgIGluc3RlYWQgb2YgOmV4YzpgTm90SW1wbGVtZW50ZWRFcnJvcmAuCisKKyAgICAuLiBtZXRob2Q6OiBpbml0X21vZHVsZV9hdHRycyhtb2R1bGUpCisKKyAgICAgICAgU2V0IDphdHRyOmBfX2ZpbGVfX2AgYW5kIGlmIGluaXRpYWxpemluZyBhIHBhY2thZ2UgdGhlbiBzZXQKKyAgICAgICAgOmF0dHI6YF9fcGF0aF9fYCB0byBgYFtvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pXWBgIGFsb25nIHdpdGgKKyAgICAgICAgYWxsIGF0dHJpYnV0ZXMgc2V0IGJ5CisgICAgICAgIDptZXRoOmBpbXBvcnRsaWIuYWJjLkluc3BlY3RMb2FkZXIuaW5pdF9tb2R1bGVfYXR0cnNgLgorCisgICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCiAKIC4uIGNsYXNzOjogRmlsZUxvYWRlcihmdWxsbmFtZSwgcGF0aCkKIApAQCAtMzU4LDcgKzQ0NSw3IEBACiAKICAgIC4uIG1ldGhvZDo6IGdldF9kYXRhKHBhdGgpCiAKLSAgICAgIFJldHVybnMgdGhlIG9wZW4sIGJpbmFyeSBmaWxlIGZvciAqcGF0aCouCisgICAgICBSZWFkcyAqcGF0aCogYXMgYSBiaW5hcnkgZmlsZSBhbmQgcmV0dXJucyB0aGUgYnl0ZXMgZnJvbSBpdC4KIAogCiAuLiBjbGFzczo6IFNvdXJjZUxvYWRlcgpAQCAtMzcwLDEwICs0NTcsMTIgQEAKICAgICAqIDptZXRoOmBSZXNvdXJjZUxvYWRlci5nZXRfZGF0YWAKICAgICAqIDptZXRoOmBFeGVjdXRpb25Mb2FkZXIuZ2V0X2ZpbGVuYW1lYAogICAgICAgICAgIFNob3VsZCBvbmx5IHJldHVybiB0aGUgcGF0aCB0byB0aGUgc291cmNlIGZpbGU7IHNvdXJjZWxlc3MKLSAgICAgICAgICBsb2FkaW5nIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICAgbG9hZGluZyBpcyBub3Qgc3VwcG9ydGVkIChzZWUgOmNsYXNzOmBTb3VyY2VsZXNzTG9hZGVyYCBpZiB0aGF0CisgICAgICAgICAgZnVuY3Rpb25hbGl0eSBpcyByZXF1aXJlZCkKIAogICAgIFRoZSBhYnN0cmFjdCBtZXRob2RzIGRlZmluZWQgYnkgdGhpcyBjbGFzcyBhcmUgdG8gYWRkIG9wdGlvbmFsIGJ5dGVjb2RlCi0gICAgZmlsZSBzdXBwb3J0LiBOb3QgaW1wbGVtZW50aW5nIHRoZXNlIG9wdGlvbmFsIG1ldGhvZHMgY2F1c2VzIHRoZSBsb2FkZXIgdG8KKyAgICBmaWxlIHN1cHBvcnQuIE5vdCBpbXBsZW1lbnRpbmcgdGhlc2Ugb3B0aW9uYWwgbWV0aG9kcyAob3IgY2F1c2luZyB0aGVtIHRvCisgICAgcmFpc2UgOmV4YzpgTm90SW1wbGVtZW50ZWRFcnJvcmApIGNhdXNlcyB0aGUgbG9hZGVyIHRvCiAgICAgb25seSB3b3JrIHdpdGggc291cmNlIGNvZGUuIEltcGxlbWVudGluZyB0aGUgbWV0aG9kcyBhbGxvd3MgdGhlIGxvYWRlciB0bwogICAgIHdvcmsgd2l0aCBzb3VyY2UgKmFuZCogYnl0ZWNvZGUgZmlsZXM7IGl0IGRvZXMgbm90IGFsbG93IGZvciAqc291cmNlbGVzcyoKICAgICBsb2FkaW5nIHdoZXJlIG9ubHkgYnl0ZWNvZGUgaXMgcHJvdmlkZWQuICBCeXRlY29kZSBmaWxlcyBhcmUgYW4KQEAgLTM5MCwxMCArNDc5LDEzIEBACiAgICAgICAgIC0gYGAnc2l6ZSdgYCAob3B0aW9uYWwpOiB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgc291cmNlIGNvZGUuCiAKICAgICAgICAgQW55IG90aGVyIGtleXMgaW4gdGhlIGRpY3Rpb25hcnkgYXJlIGlnbm9yZWQsIHRvIGFsbG93IGZvciBmdXR1cmUKLSAgICAgICAgZXh0ZW5zaW9ucy4KKyAgICAgICAgZXh0ZW5zaW9ucy4gSWYgdGhlIHBhdGggY2Fubm90IGJlIGhhbmRsZWQsIDpleGM6YElPRXJyb3JgIGlzIHJhaXNlZC4KIAogICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKIAorICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgICAgICBSYWlzZSA6ZXhjOmBJT0Vycm9yYCBpbnN0ZWFkIG9mIDpleGM6YE5vdEltcGxlbWVudGVkRXJyb3JgLgorCiAgICAgLi4gbWV0aG9kOjogcGF0aF9tdGltZShwYXRoKQogCiAgICAgICAgIE9wdGlvbmFsIGFic3RyYWN0IG1ldGhvZCB3aGljaCByZXR1cm5zIHRoZSBtb2RpZmljYXRpb24gdGltZSBmb3IgdGhlCkBAIC00MDIsNyArNDk0LDEwIEBACiAgICAgICAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKICAgICAgICAgICAgVGhpcyBtZXRob2QgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgOm1ldGg6YHBhdGhfc3RhdHNgLiAgWW91IGRvbid0CiAgICAgICAgICAgIGhhdmUgdG8gaW1wbGVtZW50IGl0LCBidXQgaXQgaXMgc3RpbGwgYXZhaWxhYmxlIGZvciBjb21wYXRpYmlsaXR5Ci0gICAgICAgICAgIHB1cnBvc2VzLgorICAgICAgICAgICBwdXJwb3Nlcy4gUmFpc2UgOmV4YzpgSU9FcnJvcmAgaWYgdGhlIHBhdGggY2Fubm90IGJlIGhhbmRsZWQuCisKKyAgICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgICAgICAgIFJhaXNlIDpleGM6YElPRXJyb3JgIGluc3RlYWQgb2YgOmV4YzpgTm90SW1wbGVtZW50ZWRFcnJvcmAuCiAKICAgICAuLiBtZXRob2Q6OiBzZXRfZGF0YShwYXRoLCBkYXRhKQogCkBAIC00MTQsNiArNTA5LDkgQEAKICAgICAgICAgKDphdHRyOmBlcnJuby5FQUNDRVNgLzpleGM6YFBlcm1pc3Npb25FcnJvcmApLCBkbyBub3QgcHJvcGFnYXRlIHRoZQogICAgICAgICBleGNlcHRpb24uCiAKKyAgICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgICAgICAgTm8gbG9uZ2VyIHJhaXNlcyA6ZXhjOmBOb3RJbXBsZW1lbnRlZEVycm9yYCB3aGVuIGNhbGxlZC4KKwogICAgIC4uIG1ldGhvZDo6IGdldF9jb2RlKGZ1bGxuYW1lKQogCiAgICAgICAgIENvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIDptZXRoOmBJbnNwZWN0TG9hZGVyLmdldF9jb2RlYC4KQEAgLTQzNCwxNDEgKzUzMiwxMyBAQAogICAgICAgICBgYF9faW5pdF9fYGAgd2hlbiB0aGUgZmlsZSBleHRlbnNpb24gaXMgcmVtb3ZlZCAqKmFuZCoqIHRoZSBtb2R1bGUgbmFtZQogICAgICAgICBpdHNlbGYgZG9lcyBub3QgZW5kIGluIGBgX19pbml0X19gYC4KIAorICAgIC4uIG1ldGhvZDo6IGluaXRfbW9kdWxlX2F0dHIobW9kdWxlKQogCi0uLiBjbGFzczo6IFB5TG9hZGVyCisgICAgICAgIFNldCA6YXR0cjpgX19jYWNoZWRfX2AgdXNpbmcgOmZ1bmM6YGltcC5jYWNoZV9mcm9tX3NvdXJjZWAuIE90aGVyCisgICAgICAgIGF0dHJpYnV0ZXMgc2V0IGJ5CisgICAgICAgIDptZXRoOmBpbXBvcnRsaWIuYWJjLkV4ZWN1dGlvbkxvYWRlci5pbml0X21vZHVsZV9hdHRyc2AuCiAKLSAgICBBbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGluaGVyaXRpbmcgZnJvbQotICAgIDpjbGFzczpgRXhlY3V0aW9uTG9hZGVyYCBhbmQKLSAgICA6Y2xhc3M6YFJlc291cmNlTG9hZGVyYCBkZXNpZ25lZCB0byBlYXNlIHRoZSBsb2FkaW5nIG9mCi0gICAgUHl0aG9uIHNvdXJjZSBtb2R1bGVzIChieXRlY29kZSBpcyBub3QgaGFuZGxlZDsgc2VlCi0gICAgOmNsYXNzOmBTb3VyY2VMb2FkZXJgIGZvciBhIHNvdXJjZS9ieXRlY29kZSBBQkMpLiBBIHN1YmNsYXNzCi0gICAgaW1wbGVtZW50aW5nIHRoaXMgQUJDIHdpbGwgb25seSBuZWVkIHRvIHdvcnJ5IGFib3V0IGV4cG9zaW5nIGhvdyB0aGUgc291cmNlCi0gICAgY29kZSBpcyBzdG9yZWQ7IGFsbCBvdGhlciBkZXRhaWxzIGZvciBsb2FkaW5nIFB5dGhvbiBzb3VyY2UgY29kZSB3aWxsIGJlCi0gICAgaGFuZGxlZCBieSB0aGUgY29uY3JldGUgaW1wbGVtZW50YXRpb25zIG9mIGtleSBtZXRob2RzLgotCi0gICAgLi4gZGVwcmVjYXRlZDo6IDMuMgotICAgICAgICBUaGlzIGNsYXNzIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgOmNsYXNzOmBTb3VyY2VMb2FkZXJgIGFuZCBpcwotICAgICAgICBzbGF0ZWQgZm9yIHJlbW92YWwgaW4gUHl0aG9uIDMuNC4gU2VlIGJlbG93IGZvciBob3cgdG8gY3JlYXRlIGEKLSAgICAgICAgc3ViY2xhc3MgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggUHl0aG9uIDMuMSBvbndhcmRzLgotCi0gICAgSWYgY29tcGF0aWJpbGl0eSB3aXRoIFB5dGhvbiAzLjEgaXMgcmVxdWlyZWQsIHRoZW4gdXNlIHRoZSBmb2xsb3dpbmcgaWRpb20KLSAgICB0byBpbXBsZW1lbnQgYSBzdWJjbGFzcyB0aGF0IHdpbGwgd29yayB3aXRoIFB5dGhvbiAzLjEgb253YXJkcyAobWFrZSBzdXJlCi0gICAgdG8gaW1wbGVtZW50IDptZXRoOmBFeGVjdXRpb25Mb2FkZXIuZ2V0X2ZpbGVuYW1lYCk6OgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZyb20gaW1wb3J0bGliLmFiYyBpbXBvcnQgU291cmNlTG9hZGVyCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIGZyb20gaW1wb3J0bGliLmFiYyBpbXBvcnQgUHlMb2FkZXIgYXMgU291cmNlTG9hZGVyCi0KLQotICAgICAgICBjbGFzcyBDdXN0b21Mb2FkZXIoU291cmNlTG9hZGVyKToKLSAgICAgICAgICAgIGRlZiBnZXRfZmlsZW5hbWUoc2VsZiwgZnVsbG5hbWUpOgotICAgICAgICAgICAgICAgICIiIlJldHVybiB0aGUgcGF0aCB0byB0aGUgc291cmNlIGZpbGUuIiIiCi0gICAgICAgICAgICAgICAgIyBJbXBsZW1lbnQgLi4uCi0KLSAgICAgICAgICAgIGRlZiBzb3VyY2VfcGF0aChzZWxmLCBmdWxsbmFtZSk6Ci0gICAgICAgICAgICAgICAgIiIiSW1wbGVtZW50IHNvdXJjZV9wYXRoIGluIHRlcm1zIG9mIGdldF9maWxlbmFtZS4iIiIKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmdldF9maWxlbmFtZShmdWxsbmFtZSkKLSAgICAgICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgICAgIGRlZiBpc19wYWNrYWdlKHNlbGYsIGZ1bGxuYW1lKToKLSAgICAgICAgICAgICAgICAiIiJJbXBsZW1lbnQgaXNfcGFja2FnZSBieSBsb29raW5nIGZvciBhbiBfX2luaXRfXyBmaWxlCi0gICAgICAgICAgICAgICAgbmFtZSBhcyByZXR1cm5lZCBieSBnZXRfZmlsZW5hbWUuIiIiCi0gICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHNlbGYuZ2V0X2ZpbGVuYW1lKGZ1bGxuYW1lKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMF0gPT0gJ19faW5pdF9fJwotCi0KLSAgICAuLiBtZXRob2Q6OiBzb3VyY2VfcGF0aChmdWxsbmFtZSkKLQotICAgICAgICBBbiBhYnN0cmFjdCBtZXRob2QgdGhhdCByZXR1cm5zIHRoZSBwYXRoIHRvIHRoZSBzb3VyY2UgY29kZSBmb3IgYQotICAgICAgICBtb2R1bGUuIFNob3VsZCByZXR1cm4gYGBOb25lYGAgaWYgdGhlcmUgaXMgbm8gc291cmNlIGNvZGUuCi0gICAgICAgIFJhaXNlcyA6ZXhjOmBJbXBvcnRFcnJvcmAgaWYgdGhlIGxvYWRlciBrbm93cyBpdCBjYW5ub3QgaGFuZGxlIHRoZQotICAgICAgICBtb2R1bGUuCi0KLSAgICAuLiBtZXRob2Q6OiBnZXRfZmlsZW5hbWUoZnVsbG5hbWUpCi0KLSAgICAgICAgQSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZgotICAgICAgICA6bWV0aDpgaW1wb3J0bGliLmFiYy5FeGVjdXRpb25Mb2FkZXIuZ2V0X2ZpbGVuYW1lYCB0aGF0Ci0gICAgICAgIHJlbGllcyBvbiA6bWV0aDpgc291cmNlX3BhdGhgLiBJZiA6bWV0aDpgc291cmNlX3BhdGhgIHJldHVybnMKLSAgICAgICAgYGBOb25lYGAsIHRoZW4gOmV4YzpgSW1wb3J0RXJyb3JgIGlzIHJhaXNlZC4KLQotICAgIC4uIG1ldGhvZDo6IGxvYWRfbW9kdWxlKGZ1bGxuYW1lKQotCi0gICAgICAgIEEgY29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YgOm1ldGg6YGltcG9ydGxpYi5hYmMuTG9hZGVyLmxvYWRfbW9kdWxlYAotICAgICAgICB0aGF0IGxvYWRzIFB5dGhvbiBzb3VyY2UgY29kZS4gQWxsIG5lZWRlZCBpbmZvcm1hdGlvbiBjb21lcyBmcm9tIHRoZQotICAgICAgICBhYnN0cmFjdCBtZXRob2RzIHJlcXVpcmVkIGJ5IHRoaXMgQUJDLiBUaGUgb25seSBwZXJ0aW5lbnQgYXNzdW1wdGlvbgotICAgICAgICBtYWRlIGJ5IHRoaXMgbWV0aG9kIGlzIHRoYXQgd2hlbiBsb2FkaW5nIGEgcGFja2FnZQotICAgICAgICA6YXR0cjpgX19wYXRoX19gIGlzIHNldCB0byBgYFtvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pXWBgLgotCi0gICAgLi4gbWV0aG9kOjogZ2V0X2NvZGUoZnVsbG5hbWUpCi0KLSAgICAgICAgQSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZgotICAgICAgICA6bWV0aDpgaW1wb3J0bGliLmFiYy5JbnNwZWN0TG9hZGVyLmdldF9jb2RlYCB0aGF0IGNyZWF0ZXMgY29kZSBvYmplY3RzCi0gICAgICAgIGZyb20gUHl0aG9uIHNvdXJjZSBjb2RlLCBieSByZXF1ZXN0aW5nIHRoZSBzb3VyY2UgY29kZSAodXNpbmcKLSAgICAgICAgOm1ldGg6YHNvdXJjZV9wYXRoYCBhbmQgOm1ldGg6YGdldF9kYXRhYCkgYW5kIGNvbXBpbGluZyBpdCB3aXRoIHRoZQotICAgICAgICBidWlsdC1pbiA6ZnVuYzpgY29tcGlsZWAgZnVuY3Rpb24uCi0KLSAgICAuLiBtZXRob2Q6OiBnZXRfc291cmNlKGZ1bGxuYW1lKQotCi0gICAgICAgIEEgY29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YKLSAgICAgICAgOm1ldGg6YGltcG9ydGxpYi5hYmMuSW5zcGVjdExvYWRlci5nZXRfc291cmNlYC4gVXNlcwotICAgICAgICA6bWV0aDpgaW1wb3J0bGliLmFiYy5SZXNvdXJjZUxvYWRlci5nZXRfZGF0YWAgYW5kIDptZXRoOmBzb3VyY2VfcGF0aGAKLSAgICAgICAgdG8gZ2V0IHRoZSBzb3VyY2UgY29kZS4gIEl0IHRyaWVzIHRvIGd1ZXNzIHRoZSBzb3VyY2UgZW5jb2RpbmcgdXNpbmcKLSAgICAgICAgOmZ1bmM6YHRva2VuaXplLmRldGVjdF9lbmNvZGluZ2AuCi0KLQotLi4gY2xhc3M6OiBQeVB5Y0xvYWRlcgotCi0gICAgQW4gYWJzdHJhY3QgYmFzZSBjbGFzcyBpbmhlcml0aW5nIGZyb20gOmNsYXNzOmBQeUxvYWRlcmAuCi0gICAgVGhpcyBBQkMgaXMgbWVhbnQgdG8gaGVscCBpbiBjcmVhdGluZyBsb2FkZXJzIHRoYXQgc3VwcG9ydCBib3RoIFB5dGhvbgotICAgIHNvdXJjZSBhbmQgYnl0ZWNvZGUuCi0KLSAgICAuLiBkZXByZWNhdGVkOjogMy4yCi0gICAgICAgIFRoaXMgY2xhc3MgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiA6Y2xhc3M6YFNvdXJjZUxvYWRlcmAgYW5kIHRvCi0gICAgICAgIHByb3Blcmx5IHN1cHBvcnQgOnBlcDpgMzE0N2AuIElmIGNvbXBhdGliaWxpdHkgaXMgcmVxdWlyZWQgd2l0aAotICAgICAgICBQeXRob24gMy4xLCBpbXBsZW1lbnQgYm90aCA6Y2xhc3M6YFNvdXJjZUxvYWRlcmAgYW5kIDpjbGFzczpgUHlMb2FkZXJgOwotICAgICAgICBpbnN0cnVjdGlvbnMgb24gaG93IHRvIGRvIHNvIGFyZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IKLSAgICAgICAgOmNsYXNzOmBQeUxvYWRlcmAuIERvIG5vdGUgdGhhdCB0aGlzIHNvbHV0aW9uIHdpbGwgbm90IHN1cHBvcnQKLSAgICAgICAgc291cmNlbGVzcy9ieXRlY29kZS1vbmx5IGxvYWRpbmc7IG9ubHkgc291cmNlICphbmQqIGJ5dGVjb2RlIGxvYWRpbmcuCi0KLSAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMwotICAgICAgIFVwZGF0ZWQgdG8gcGFyc2UgKGJ1dCBub3QgdXNlKSB0aGUgbmV3IHNvdXJjZSBzaXplIGZpZWxkIGluIGJ5dGVjb2RlCi0gICAgICAgZmlsZXMgd2hlbiByZWFkaW5nIGFuZCB0byB3cml0ZSBvdXQgdGhlIGZpZWxkIHByb3Blcmx5IHdoZW4gd3JpdGluZy4KLQotICAgIC4uIG1ldGhvZDo6IHNvdXJjZV9tdGltZShmdWxsbmFtZSkKLQotICAgICAgICBBbiBhYnN0cmFjdCBtZXRob2Qgd2hpY2ggcmV0dXJucyB0aGUgbW9kaWZpY2F0aW9uIHRpbWUgZm9yIHRoZSBzb3VyY2UKLSAgICAgICAgY29kZSBvZiB0aGUgc3BlY2lmaWVkIG1vZHVsZS4gVGhlIG1vZGlmaWNhdGlvbiB0aW1lIHNob3VsZCBiZSBhbgotICAgICAgICBpbnRlZ2VyLiBJZiB0aGVyZSBpcyBubyBzb3VyY2UgY29kZSwgcmV0dXJuIGBgTm9uZWBgLiBJZiB0aGUKLSAgICAgICAgbW9kdWxlIGNhbm5vdCBiZSBmb3VuZCB0aGVuIDpleGM6YEltcG9ydEVycm9yYCBpcyByYWlzZWQuCi0KLSAgICAuLiBtZXRob2Q6OiBieXRlY29kZV9wYXRoKGZ1bGxuYW1lKQotCi0gICAgICAgIEFuIGFic3RyYWN0IG1ldGhvZCB3aGljaCByZXR1cm5zIHRoZSBwYXRoIHRvIHRoZSBieXRlY29kZSBmb3IgdGhlCi0gICAgICAgIHNwZWNpZmllZCBtb2R1bGUsIGlmIGl0IGV4aXN0cy4gSXQgcmV0dXJucyBgYE5vbmVgYAotICAgICAgICBpZiBubyBieXRlY29kZSBleGlzdHMgKHlldCkuCi0gICAgICAgIFJhaXNlcyA6ZXhjOmBJbXBvcnRFcnJvcmAgaWYgdGhlIGxvYWRlciBrbm93cyBpdCBjYW5ub3QgaGFuZGxlIHRoZQotICAgICAgICBtb2R1bGUuCi0KLSAgICAuLiBtZXRob2Q6OiBnZXRfZmlsZW5hbWUoZnVsbG5hbWUpCi0KLSAgICAgICAgQSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZgotICAgICAgICA6bWV0aDpgRXhlY3V0aW9uTG9hZGVyLmdldF9maWxlbmFtZWAgdGhhdCByZWxpZXMgb24KLSAgICAgICAgOm1ldGg6YFB5TG9hZGVyLnNvdXJjZV9wYXRoYCBhbmQgOm1ldGg6YGJ5dGVjb2RlX3BhdGhgLgotICAgICAgICBJZiA6bWV0aDpgc291cmNlX3BhdGhgIHJldHVybnMgYSBwYXRoLCB0aGVuIHRoYXQgdmFsdWUgaXMgcmV0dXJuZWQuCi0gICAgICAgIEVsc2UgaWYgOm1ldGg6YGJ5dGVjb2RlX3BhdGhgIHJldHVybnMgYSBwYXRoLCB0aGF0IHBhdGggd2lsbCBiZQotICAgICAgICByZXR1cm5lZC4gSWYgYSBwYXRoIGlzIG5vdCBhdmFpbGFibGUgZnJvbSBib3RoIG1ldGhvZHMsCi0gICAgICAgIDpleGM6YEltcG9ydEVycm9yYCBpcyByYWlzZWQuCi0KLSAgICAuLiBtZXRob2Q6OiB3cml0ZV9ieXRlY29kZShmdWxsbmFtZSwgYnl0ZWNvZGUpCi0KLSAgICAgICAgQW4gYWJzdHJhY3QgbWV0aG9kIHdoaWNoIGhhcyB0aGUgbG9hZGVyIHdyaXRlICpieXRlY29kZSogZm9yIGZ1dHVyZQotICAgICAgICB1c2UuIElmIHRoZSBieXRlY29kZSBpcyB3cml0dGVuLCByZXR1cm4gYGBUcnVlYGAuIFJldHVybgotICAgICAgICBgYEZhbHNlYGAgaWYgdGhlIGJ5dGVjb2RlIGNvdWxkIG5vdCBiZSB3cml0dGVuLiBUaGlzIG1ldGhvZAotICAgICAgICBzaG91bGQgbm90IGJlIGNhbGxlZCBpZiA6ZGF0YTpgc3lzLmRvbnRfd3JpdGVfYnl0ZWNvZGVgIGlzIHRydWUuCi0gICAgICAgIFRoZSAqYnl0ZWNvZGUqIGFyZ3VtZW50IHNob3VsZCBiZSBhIGJ5dGVzIHN0cmluZyBvciBieXRlcyBhcnJheS4KKyAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CiAKIAogOm1vZDpgaW1wb3J0bGliLm1hY2hpbmVyeWAgLS0gSW1wb3J0ZXJzIGFuZCBwYXRoIGhvb2tzCkBAIC04NTgsOSArODI4LDIzIEBACiAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwogCisuLiBmdW5jdGlvbjo6IG1vZHVsZV90b19sb2FkKG5hbWUsICosIHJlc2V0X25hbWU9VHJ1ZSkKKworICAgIFJldHVybnMgYSA6dGVybTpgY29udGV4dCBtYW5hZ2VyYCB3aGljaCBwcm92aWRlcyB0aGUgbW9kdWxlIHRvIGxvYWQuIFRoZQorICAgIG1vZHVsZSB3aWxsIGVpdGhlciBjb21lIGZyb20gOmF0dHI6YHN5cy5tb2R1bGVzYCBpbiB0aGUgY2FzZSBvZiByZWxvYWRpbmcgb3IKKyAgICBhIGZyZXNoIG1vZHVsZSBpZiBsb2FkaW5nIGEgbmV3IG1vZHVsZS4gUHJvcGVyIGNsZWFudXAgb2YKKyAgICA6YXR0cjpgc3lzLm1vZHVsZXNgIG9jY3VycyBpZiB0aGUgbW9kdWxlIHdhcyBuZXcgYW5kIGFuIGV4Y2VwdGlvbiB3YXMKKyAgICByYWlzZWQuCisKKyAgICBJZiAqKnJlc2V0X25hbWUqKiBpcyB0cnVlIGFuZCB0aGUgbW9kdWxlIHJlcXVlc3RlZCBpcyBiZWluZyByZWxvYWRlZCB0aGVuCisgICAgdGhlIG1vZHVsZSdzIDphdHRyOmBfX25hbWVfX2AgYXR0cmlidXRlIHdpbGwKKyAgICBiZSByZXNldCB0byAqKm5hbWUqKiwgZWxzZSBpdCB3aWxsIGJlIGxlZnQgdW50b3VjaGVkLgorCisgICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CisKIC4uIGRlY29yYXRvcjo6IG1vZHVsZV9mb3JfbG9hZGVyCiAKLSAgICBBIDp0ZXJtOmBkZWNvcmF0b3JgIGZvciBhIDp0ZXJtOmBsb2FkZXJgIG1ldGhvZCwKKyAgICBBIDp0ZXJtOmBkZWNvcmF0b3JgIGZvciA6bWV0aDpgaW1wb3J0bGliLmFiYy5Mb2FkZXIubG9hZF9tb2R1bGVgCiAgICAgdG8gaGFuZGxlIHNlbGVjdGluZyB0aGUgcHJvcGVyCiAgICAgbW9kdWxlIG9iamVjdCB0byBsb2FkIHdpdGguIFRoZSBkZWNvcmF0ZWQgbWV0aG9kIGlzIGV4cGVjdGVkIHRvIGhhdmUgYSBjYWxsCiAgICAgc2lnbmF0dXJlIHRha2luZyB0d28gcG9zaXRpb25hbCBhcmd1bWVudHMKQEAgLTg3MSw1NSArODU1LDU0IEBACiAKICAgICBUaGUgZGVjb3JhdGVkIG1ldGhvZCB3aWxsIHRha2UgaW4gdGhlICoqbmFtZSoqIG9mIHRoZSBtb2R1bGUgdG8gYmUgbG9hZGVkCiAgICAgYXMgZXhwZWN0ZWQgZm9yIGEgOnRlcm06YGxvYWRlcmAuIElmIHRoZSBtb2R1bGUgaXMgbm90IGZvdW5kIGluCi0gICAgOmRhdGE6YHN5cy5tb2R1bGVzYCB0aGVuIGEgbmV3IG9uZSBpcyBjb25zdHJ1Y3RlZCB3aXRoIGl0cwotICAgIDphdHRyOmBfX25hbWVfX2AgYXR0cmlidXRlIHNldCB0byAqKm5hbWUqKiwgOmF0dHI6YF9fbG9hZGVyX19gIHNldCB0bwotICAgICoqc2VsZioqLCBhbmQgOmF0dHI6YF9fcGFja2FnZV9fYCBzZXQgaWYKLSAgICA6bWV0aDpgaW1wb3J0bGliLmFiYy5JbnNwZWN0TG9hZGVyLmlzX3BhY2thZ2VgIGlzIGRlZmluZWQgZm9yICoqc2VsZioqIGFuZAotICAgIGRvZXMgbm90IHJhaXNlIDpleGM6YEltcG9ydEVycm9yYCBmb3IgKipuYW1lKiouIElmIGEgbmV3IG1vZHVsZSBpcyBub3QKLSAgICBuZWVkZWQgdGhlbiB0aGUgbW9kdWxlIGZvdW5kIGluIDpkYXRhOmBzeXMubW9kdWxlc2Agd2lsbCBiZSBwYXNzZWQgaW50byB0aGUKLSAgICBtZXRob2QuCisgICAgOmRhdGE6YHN5cy5tb2R1bGVzYCB0aGVuIGEgbmV3IG9uZSBpcyBjb25zdHJ1Y3RlZC4gUmVnYXJkbGVzcyBvZiB3aGVyZSB0aGUKKyAgICBtb2R1bGUgY2FtZSBmcm9tLCA6YXR0cjpgX19sb2FkZXJfX2Agc2V0IHRvICoqc2VsZioqIGFuZCA6YXR0cjpgX19wYWNrYWdlX19gCisgICAgaXMgc2V0IGJhc2VkIG9uIHdoYXQgOm1ldGg6YGltcG9ydGxpYi5hYmMuSW5zcGVjdExvYWRlci5pc19wYWNrYWdlYCByZXR1cm5zCisgICAgKGlmIGF2YWlsYWJsZSkuIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIHNldCB1bmNvbmRpdGlvbmFsbHkgdG8gc3VwcG9ydAorICAgIHJlbG9hZGluZy4KIAogICAgIElmIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQgYnkgdGhlIGRlY29yYXRlZCBtZXRob2QgYW5kIGEgbW9kdWxlIHdhcyBhZGRlZCB0bwogICAgIDpkYXRhOmBzeXMubW9kdWxlc2AgaXQgd2lsbCBiZSByZW1vdmVkIHRvIHByZXZlbnQgYSBwYXJ0aWFsbHkgaW5pdGlhbGl6ZWQKICAgICBtb2R1bGUgZnJvbSBiZWluZyBpbiBsZWZ0IGluIDpkYXRhOmBzeXMubW9kdWxlc2AuIElmIHRoZSBtb2R1bGUgd2FzIGFscmVhZHkKICAgICBpbiA6ZGF0YTpgc3lzLm1vZHVsZXNgIHRoZW4gaXQgaXMgbGVmdCBhbG9uZS4KIAotICAgIFVzZSBvZiB0aGlzIGRlY29yYXRvciBoYW5kbGVzIGFsbCB0aGUgZGV0YWlscyBvZiB3aGljaCBtb2R1bGUgb2JqZWN0IGEKLSAgICBsb2FkZXIgc2hvdWxkIGluaXRpYWxpemUgYXMgc3BlY2lmaWVkIGJ5IDpwZXA6YDMwMmAgYXMgYmVzdCBhcyBwb3NzaWJsZS4KLQogICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCiAgICAgICAgOmF0dHI6YF9fbG9hZGVyX19gIGFuZCA6YXR0cjpgX19wYWNrYWdlX19gIGFyZSBhdXRvbWF0aWNhbGx5IHNldAogICAgICAgICh3aGVuIHBvc3NpYmxlKS4KIAorICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICAgU2V0IDphdHRyOmBfX25hbWVfX2AsIDphdHRyOmBfX2xvYWRlcl9fYCA6YXR0cjpgX19wYWNrYWdlX19gCisgICAgICAgdW5jb25kaXRpb25hbGx5IHRvIHN1cHBvcnQgcmVsb2FkaW5nLgorCisgICAgLi4gZGVwcmVjYXRlZDo6IDMuNAorICAgICAgICBGb3IgdGhlIGJlbmVmaXQgb2YgOnRlcm06YGxvYWRlcmAgc3ViY2xhc3NlcywgcGxlYXNlIHVzZQorICAgICAgICA6ZnVuYzpgbW9kdWxlX3RvX2xvYWRgIGFuZAorICAgICAgICA6bWV0aDpgaW1wb3J0bGliLmFiYy5Mb2FkZXIuaW5pdF9tb2R1bGVfYXR0cnNgIGluc3RlYWQuCisKIC4uIGRlY29yYXRvcjo6IHNldF9sb2FkZXIKIAotICAgIEEgOnRlcm06YGRlY29yYXRvcmAgZm9yIGEgOnRlcm06YGxvYWRlcmAgbWV0aG9kLAotICAgIHRvIHNldCB0aGUgOmF0dHI6YF9fbG9hZGVyX19gCi0gICAgYXR0cmlidXRlIG9uIGxvYWRlZCBtb2R1bGVzLiBJZiB0aGUgYXR0cmlidXRlIGlzIGFscmVhZHkgc2V0IHRoZSBkZWNvcmF0b3IKLSAgICBkb2VzIG5vdGhpbmcuIEl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgZmlyc3QgcG9zaXRpb25hbCBhcmd1bWVudCB0byB0aGUKLSAgICB3cmFwcGVkIG1ldGhvZCAoaS5lLiBgYHNlbGZgYCkgaXMgd2hhdCA6YXR0cjpgX19sb2FkZXJfX2Agc2hvdWxkIGJlIHNldCB0by4KKyAgIEEgOnRlcm06YGRlY29yYXRvcmAgZm9yIDptZXRoOmBpbXBvcnRsaWIuYWJjLkxvYWRlci5sb2FkX21vZHVsZWAKKyAgIHRvIHNldCB0aGUgOmF0dHI6YF9fbG9hZGVyX19gCisgICBhdHRyaWJ1dGUgb24gdGhlIHJldHVybmVkIG1vZHVsZS4gSWYgdGhlIGF0dHJpYnV0ZSBpcyBhbHJlYWR5IHNldCB0aGUKKyAgIGRlY29yYXRvciBkb2VzIG5vdGhpbmcuIEl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgZmlyc3QgcG9zaXRpb25hbCBhcmd1bWVudCB0bworICAgdGhlIHdyYXBwZWQgbWV0aG9kIChpLmUuIGBgc2VsZmBgKSBpcyB3aGF0IDphdHRyOmBfX2xvYWRlcl9fYCBzaG91bGQgYmUgc2V0CisgICB0by4KIAogICAgLi4gbm90ZTo6CisgICAgICBBcyB0aGlzIGRlY29yYXRvciBzZXRzIDphdHRyOmBfX2xvYWRlcl9fYCBhZnRlciBsb2FkaW5nIHRoZSBtb2R1bGUsIGl0IGlzCisgICAgICByZWNvbW1lbmRlZCB0byB1c2UgOm1ldGg6YGltcG9ydGxpYi5hYmMuTG9hZGVyLmluaXRfbW9kdWxlX2F0dHJzYCBpbnN0ZWFkCisgICAgICB3aGVuIGFwcHJvcHJpYXRlLgogCi0gICAgICBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IDpmdW5jOmBtb2R1bGVfZm9yX2xvYWRlcmAgYmUgdXNlZCBvdmVyIHRoaXMKLSAgICAgIGRlY29yYXRvciBhcyBpdCBzdWJzdW1lcyB0aGlzIGZ1bmN0aW9uYWxpdHkuCi0KKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICBTZXQgYGBfX2xvYWRlcl9fYGAgaWYgc2V0IHRvIGBgTm9uZWBgLCBhcyBpZiB0aGUgYXR0cmlidXRlIGRvZXMgbm90CisgICAgICBleGlzdC4KIAogLi4gZGVjb3JhdG9yOjogc2V0X3BhY2thZ2UKIAotICAgIEEgOnRlcm06YGRlY29yYXRvcmAgZm9yIGEgOnRlcm06YGxvYWRlcmAgdG8gc2V0IHRoZSA6YXR0cjpgX19wYWNrYWdlX19gCi0gICAgYXR0cmlidXRlIG9uIHRoZSBtb2R1bGUgcmV0dXJuZWQgYnkgdGhlIGxvYWRlci4gSWYgOmF0dHI6YF9fcGFja2FnZV9fYCBpcwotICAgIHNldCBhbmQgaGFzIGEgdmFsdWUgb3RoZXIgdGhhbiBgYE5vbmVgYCBpdCB3aWxsIG5vdCBiZSBjaGFuZ2VkLgotICAgIE5vdGUgdGhhdCB0aGUgbW9kdWxlIHJldHVybmVkIGJ5IHRoZSBsb2FkZXIgaXMgd2hhdCBoYXMgdGhlIGF0dHJpYnV0ZQotICAgIHNldCBvbiBhbmQgbm90IHRoZSBtb2R1bGUgZm91bmQgaW4gOmRhdGE6YHN5cy5tb2R1bGVzYC4KLQotICAgIFJlbGlhbmNlIG9uIHRoaXMgZGVjb3JhdG9yIGlzIGRpc2NvdXJhZ2VkIHdoZW4gaXQgaXMgcG9zc2libGUgdG8gc2V0Ci0gICAgOmF0dHI6YF9fcGFja2FnZV9fYCBiZWZvcmUgaW1wb3J0aW5nLiBCeQotICAgIHNldHRpbmcgaXQgYmVmb3JlaGFuZCB0aGUgY29kZSBmb3IgdGhlIG1vZHVsZSBpcyBleGVjdXRlZCB3aXRoIHRoZQotICAgIGF0dHJpYnV0ZSBzZXQgYW5kIHRodXMgY2FuIGJlIHVzZWQgYnkgZ2xvYmFsIGxldmVsIGNvZGUgZHVyaW5nCi0gICAgaW5pdGlhbGl6YXRpb24uCisgICBBIDp0ZXJtOmBkZWNvcmF0b3JgIGZvciA6bWV0aDpgaW1wb3J0bGliLmFiYy5Mb2FkZXIubG9hZF9tb2R1bGVgIHRvIHNldCB0aGUgOmF0dHI6YF9fcGFja2FnZV9fYCBhdHRyaWJ1dGUgb24gdGhlIHJldHVybmVkIG1vZHVsZS4gSWYgOmF0dHI6YF9fcGFja2FnZV9fYAorICAgaXMgc2V0IGFuZCBoYXMgYSB2YWx1ZSBvdGhlciB0aGFuIGBgTm9uZWBgIGl0IHdpbGwgbm90IGJlIGNoYW5nZWQuCiAKICAgIC4uIG5vdGU6OgotCi0gICAgICBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IDpmdW5jOmBtb2R1bGVfZm9yX2xvYWRlcmAgYmUgdXNlZCBvdmVyIHRoaXMKLSAgICAgIGRlY29yYXRvciBhcyBpdCBzdWJzdW1lcyB0aGlzIGZ1bmN0aW9uYWxpdHkuCisgICAgICBBcyB0aGlzIGRlY29yYXRvciBzZXRzIDphdHRyOmBfX3BhY2thZ2VfX2AgYWZ0ZXIgbG9hZGluZyB0aGUgbW9kdWxlLCBpdCBpcworICAgICAgcmVjb21tZW5kZWQgdG8gdXNlIDptZXRoOmBpbXBvcnRsaWIuYWJjLkxvYWRlci5pbml0X21vZHVsZV9hdHRyc2AgaW5zdGVhZAorICAgICAgd2hlbiBhcHByb3ByaWF0ZS4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2pzb24ucnN0IGIvRG9jL2xpYnJhcnkvanNvbi5yc3QKaW5kZXggNDMzZjk0OC4uZmFhN2FjOSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvanNvbi5yc3QKKysrIGIvRG9jL2xpYnJhcnkvanNvbi5yc3QKQEAgLTQyLDggKzQyLDcgQEAKIFByZXR0eSBwcmludGluZzo6CiAKICAgICA+Pj4gaW1wb3J0IGpzb24KLSAgICA+Pj4gcHJpbnQoanNvbi5kdW1wcyh7JzQnOiA1LCAnNic6IDd9LCBzb3J0X2tleXM9VHJ1ZSwKLSAgICAuLi4gICAgICAgICAgICAgICAgICBpbmRlbnQ9NCwgc2VwYXJhdG9ycz0oJywnLCAnOiAnKSkpCisgICAgPj4+IHByaW50KGpzb24uZHVtcHMoeyc0JzogNSwgJzYnOiA3fSwgc29ydF9rZXlzPVRydWUsIGluZGVudD00KSkKICAgICB7CiAgICAgICAgICI0IjogNSwKICAgICAgICAgIjYiOiA3CkBAIC0xNTgsMTUgKzE1NywxMyBAQAogICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKICAgICAgIEFsbG93IHN0cmluZ3MgZm9yICppbmRlbnQqIGluIGFkZGl0aW9uIHRvIGludGVnZXJzLgogCi0gICAuLiBub3RlOjoKKyAgIElmIHNwZWNpZmllZCwgKnNlcGFyYXRvcnMqIHNob3VsZCBiZSBhbiBgYChpdGVtX3NlcGFyYXRvciwga2V5X3NlcGFyYXRvcilgYAorICAgdHVwbGUuICBUaGUgZGVmYXVsdCBpcyBgYCgnLCAnLCAnOiAnKWBgIGlmICppbmRlbnQqIGlzIGBgTm9uZWBgIGFuZAorICAgYGAoJywnLCAnOiAnKWBgIG90aGVyd2lzZS4gIFRvIGdldCB0aGUgbW9zdCBjb21wYWN0IEpTT04gcmVwcmVzZW50YXRpb24sCisgICB5b3Ugc2hvdWxkIHNwZWNpZnkgYGAoJywnLCAnOicpYGAgdG8gZWxpbWluYXRlIHdoaXRlc3BhY2UuCiAKLSAgICAgIFNpbmNlIHRoZSBkZWZhdWx0IGl0ZW0gc2VwYXJhdG9yIGlzIGBgJywgJ2BgLCAgdGhlIG91dHB1dCBtaWdodCBpbmNsdWRlCi0gICAgICB0cmFpbGluZyB3aGl0ZXNwYWNlIHdoZW4gKmluZGVudCogaXMgc3BlY2lmaWVkLiAgWW91IGNhbiB1c2UKLSAgICAgIGBgc2VwYXJhdG9ycz0oJywnLCAnOiAnKWBgIHRvIGF2b2lkIHRoaXMuCi0KLSAgIElmICpzZXBhcmF0b3JzKiBpcyBhbiBgYChpdGVtX3NlcGFyYXRvciwgZGljdF9zZXBhcmF0b3IpYGAgdHVwbGUsIHRoZW4gaXQKLSAgIHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGBgKCcsICcsICc6ICcpYGAgc2VwYXJhdG9ycy4gIGBgKCcsJywKLSAgICc6JylgYCBpcyB0aGUgbW9zdCBjb21wYWN0IEpTT04gcmVwcmVzZW50YXRpb24uCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgVXNlIGBgKCcsJywgJzogJylgYCBhcyBkZWZhdWx0IGlmICppbmRlbnQqIGlzIG5vdCBgYE5vbmVgYC4KIAogICAgKmRlZmF1bHQob2JqKSogaXMgYSBmdW5jdGlvbiB0aGF0IHNob3VsZCByZXR1cm4gYSBzZXJpYWxpemFibGUgdmVyc2lvbiBvZgogICAgKm9iaiogb3IgcmFpc2UgOmV4YzpgVHlwZUVycm9yYC4gIFRoZSBkZWZhdWx0IHNpbXBseSByYWlzZXMgOmV4YzpgVHlwZUVycm9yYC4KQEAgLTQwOCwxNSArNDA1LDEzIEBACiAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMgogICAgICAgQWxsb3cgc3RyaW5ncyBmb3IgKmluZGVudCogaW4gYWRkaXRpb24gdG8gaW50ZWdlcnMuCiAKLSAgIC4uIG5vdGU6OgotCi0gICAgICBTaW5jZSB0aGUgZGVmYXVsdCBpdGVtIHNlcGFyYXRvciBpcyBgYCcsICdgYCwgIHRoZSBvdXRwdXQgbWlnaHQgaW5jbHVkZQotICAgICAgdHJhaWxpbmcgd2hpdGVzcGFjZSB3aGVuICppbmRlbnQqIGlzIHNwZWNpZmllZC4gIFlvdSBjYW4gdXNlCi0gICAgICBgYHNlcGFyYXRvcnM9KCcsJywgJzogJylgYCB0byBhdm9pZCB0aGlzLgotCiAgICBJZiBzcGVjaWZpZWQsICpzZXBhcmF0b3JzKiBzaG91bGQgYmUgYW4gYGAoaXRlbV9zZXBhcmF0b3IsIGtleV9zZXBhcmF0b3IpYGAKLSAgIHR1cGxlLiAgVGhlIGRlZmF1bHQgaXMgYGAoJywgJywgJzogJylgYC4gIFRvIGdldCB0aGUgbW9zdCBjb21wYWN0IEpTT04KLSAgIHJlcHJlc2VudGF0aW9uLCB5b3Ugc2hvdWxkIHNwZWNpZnkgYGAoJywnLCAnOicpYGAgdG8gZWxpbWluYXRlIHdoaXRlc3BhY2UuCisgICB0dXBsZS4gIFRoZSBkZWZhdWx0IGlzIGBgKCcsICcsICc6ICcpYGAgaWYgKmluZGVudCogaXMgYGBOb25lYGAgYW5kCisgICBgYCgnLCcsICc6ICcpYGAgb3RoZXJ3aXNlLiAgVG8gZ2V0IHRoZSBtb3N0IGNvbXBhY3QgSlNPTiByZXByZXNlbnRhdGlvbiwKKyAgIHlvdSBzaG91bGQgc3BlY2lmeSBgYCgnLCcsICc6JylgYCB0byBlbGltaW5hdGUgd2hpdGVzcGFjZS4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgIFVzZSBgYCgnLCcsICc6ICcpYGAgYXMgZGVmYXVsdCBpZiAqaW5kZW50KiBpcyBub3QgYGBOb25lYGAuCiAKICAgIElmIHNwZWNpZmllZCwgKmRlZmF1bHQqIGlzIGEgZnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCBmb3Igb2JqZWN0cyB0aGF0IGNhbid0CiAgICBvdGhlcndpc2UgYmUgc2VyaWFsaXplZC4gIEl0IHNob3VsZCByZXR1cm4gYSBKU09OIGVuY29kYWJsZSB2ZXJzaW9uIG9mIHRoZQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvbG9nZ2luZy5jb25maWcucnN0IGIvRG9jL2xpYnJhcnkvbG9nZ2luZy5jb25maWcucnN0CmluZGV4IDEzOTFlZDIuLjE2ZDMyOTQgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2xvZ2dpbmcuY29uZmlnLnJzdAorKysgYi9Eb2MvbGlicmFyeS9sb2dnaW5nLmNvbmZpZy5yc3QKQEAgLTc2LDExICs3NiwyMyBAQAogCiAuLiBmdW5jdGlvbjo6IGZpbGVDb25maWcoZm5hbWUsIGRlZmF1bHRzPU5vbmUsIGRpc2FibGVfZXhpc3RpbmdfbG9nZ2Vycz1UcnVlKQogCi0gICBSZWFkcyB0aGUgbG9nZ2luZyBjb25maWd1cmF0aW9uIGZyb20gYSA6bW9kOmBjb25maWdwYXJzZXJgXC1mb3JtYXQgZmlsZQotICAgbmFtZWQgKmZuYW1lKi4gVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIHNldmVyYWwgdGltZXMgZnJvbSBhbgotICAgYXBwbGljYXRpb24sIGFsbG93aW5nIGFuIGVuZCB1c2VyIHRvIHNlbGVjdCBmcm9tIHZhcmlvdXMgcHJlLWNhbm5lZAotICAgY29uZmlndXJhdGlvbnMgKGlmIHRoZSBkZXZlbG9wZXIgcHJvdmlkZXMgYSBtZWNoYW5pc20gdG8gcHJlc2VudCB0aGUgY2hvaWNlcwotICAgYW5kIGxvYWQgdGhlIGNob3NlbiBjb25maWd1cmF0aW9uKS4KKyAgIFJlYWRzIHRoZSBsb2dnaW5nIGNvbmZpZ3VyYXRpb24gZnJvbSBhIDptb2Q6YGNvbmZpZ3BhcnNlcmBcLWZvcm1hdCBmaWxlLgorICAgVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIHNldmVyYWwgdGltZXMgZnJvbSBhbiBhcHBsaWNhdGlvbiwgYWxsb3dpbmcgYW4KKyAgIGVuZCB1c2VyIHRvIHNlbGVjdCBmcm9tIHZhcmlvdXMgcHJlLWNhbm5lZCBjb25maWd1cmF0aW9ucyAoaWYgdGhlIGRldmVsb3BlcgorICAgcHJvdmlkZXMgYSBtZWNoYW5pc20gdG8gcHJlc2VudCB0aGUgY2hvaWNlcyBhbmQgbG9hZCB0aGUgY2hvc2VuCisgICBjb25maWd1cmF0aW9uKS4KKworICAgOnBhcmFtIGZuYW1lOiBBIGZpbGVuYW1lLCBvciBhIGZpbGUtbGlrZSBvYmplY3QsIG9yIGFuIGluc3RhbmNlIGRlcml2ZWQKKyAgICAgICAgICAgICAgICAgZnJvbSA6Y2xhc3M6YH5jb25maWdwYXJzZXIuUmF3Q29uZmlnUGFyc2VyYC4gSWYgYQorICAgICAgICAgICAgICAgICBgYFJhd0NvbmZpZ1BhcnNlcmBgLWRlcml2ZWQgaW5zdGFuY2UgaXMgcGFzc2VkLCBpdCBpcyB1c2VkIGFzCisgICAgICAgICAgICAgICAgIGlzLiBPdGhlcndpc2UsIGEgOmNsYXNzOmB+Y29uZmlncGFyc2VyLkNvbmZpZ3BhcnNlcmAgaXMKKyAgICAgICAgICAgICAgICAgaW5zdGFudGlhdGVkLCBhbmQgdGhlIGNvbmZpZ3VyYXRpb24gcmVhZCBieSBpdCBmcm9tIHRoZQorICAgICAgICAgICAgICAgICBvYmplY3QgcGFzc2VkIGluIGBgZm5hbWVgYC4gSWYgdGhhdCBoYXMgYSA6bWV0aDpgcmVhZGxpbmVgCisgICAgICAgICAgICAgICAgIG1ldGhvZCwgaXQgaXMgYXNzdW1lZCB0byBiZSBhIGZpbGUtbGlrZSBvYmplY3QgYW5kIHJlYWQgdXNpbmcKKyAgICAgICAgICAgICAgICAgOm1ldGg6YH5jb25maWdwYXJzZXIuQ29uZmlnUGFyc2VyLnJlYWRfZmlsZWA7IG90aGVyd2lzZSwKKyAgICAgICAgICAgICAgICAgaXQgaXMgYXNzdW1lZCB0byBiZSBhIGZpbGVuYW1lIGFuZCBwYXNzZWQgdG8KKyAgICAgICAgICAgICAgICAgOm1ldGg6YH5jb25maWdwYXJzZXIuQ29uZmlnUGFyc2VyLnJlYWRgLgorCiAKICAgIDpwYXJhbSBkZWZhdWx0czogRGVmYXVsdHMgdG8gYmUgcGFzc2VkIHRvIHRoZSBDb25maWdQYXJzZXIgY2FuIGJlIHNwZWNpZmllZAogICAgICAgICAgICAgICAgICAgICBpbiB0aGlzIGFyZ3VtZW50LgpAQCAtOTQsOCArMTA2LDE3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVpciBhbmNlc3RvcnMgYXJlIGV4cGxpY2l0bHkgbmFtZWQgaW4gdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICBBbiBpbnN0YW5jZSBvZiBhIHN1YmNsYXNzIG9mIDpjbGFzczpgfmNvbmZpZ3BhcnNlci5SYXdDb25maWdQYXJzZXJgIGlzCisgICAgICBub3cgYWNjZXB0ZWQgYXMgYSB2YWx1ZSBmb3IgYGBmbmFtZWBgLiBUaGlzIGZhY2lsaXRhdGVzOgogCi0uLiBmdW5jdGlvbjo6IGxpc3Rlbihwb3J0PURFRkFVTFRfTE9HR0lOR19DT05GSUdfUE9SVCkKKyAgICAgICogVXNlIG9mIGEgY29uZmlndXJhdGlvbiBmaWxlIHdoZXJlIGxvZ2dpbmcgY29uZmlndXJhdGlvbiBpcyBqdXN0IHBhcnQKKyAgICAgICAgb2YgdGhlIG92ZXJhbGwgYXBwbGljYXRpb24gY29uZmlndXJhdGlvbi4KKyAgICAgICogVXNlIG9mIGEgY29uZmlndXJhdGlvbiByZWFkIGZyb20gYSBmaWxlLCBhbmQgdGhlbiBtb2RpZmllZCBieSB0aGUgdXNpbmcKKyAgICAgICAgYXBwbGljYXRpb24gKGUuZy4gYmFzZWQgb24gY29tbWFuZC1saW5lIHBhcmFtZXRlcnMgb3Igb3RoZXIgYXNwZWN0cworICAgICAgICBvZiB0aGUgcnVudGltZSBlbnZpcm9ubWVudCkgYmVmb3JlIGJlaW5nIHBhc3NlZCB0byBgYGZpbGVDb25maWdgYC4KKworLi4gZnVuY3Rpb246OiBsaXN0ZW4ocG9ydD1ERUZBVUxUX0xPR0dJTkdfQ09ORklHX1BPUlQsIHZlcmlmeT1Ob25lKQogCiAgICBTdGFydHMgdXAgYSBzb2NrZXQgc2VydmVyIG9uIHRoZSBzcGVjaWZpZWQgcG9ydCwgYW5kIGxpc3RlbnMgZm9yIG5ldwogICAgY29uZmlndXJhdGlvbnMuIElmIG5vIHBvcnQgaXMgc3BlY2lmaWVkLCB0aGUgbW9kdWxlJ3MgZGVmYXVsdApAQCAtMTA1LDYgKzEyNiwxNyBAQAogICAgc2VydmVyLCBhbmQgd2hpY2ggeW91IGNhbiA6bWV0aDpgam9pbmAgd2hlbiBhcHByb3ByaWF0ZS4gVG8gc3RvcCB0aGUgc2VydmVyLAogICAgY2FsbCA6ZnVuYzpgc3RvcExpc3RlbmluZ2AuCiAKKyAgIFRoZSBgYHZlcmlmeWBgIGFyZ3VtZW50LCBpZiBzcGVjaWZpZWQsIHNob3VsZCBiZSBhIGNhbGxhYmxlIHdoaWNoIHNob3VsZAorICAgdmVyaWZ5IHdoZXRoZXIgYnl0ZXMgcmVjZWl2ZWQgYWNyb3NzIHRoZSBzb2NrZXQgYXJlIHZhbGlkIGFuZCBzaG91bGQgYmUKKyAgIHByb2Nlc3NlZC4gVGhpcyBjb3VsZCBiZSBkb25lIGJ5IGVuY3J5cHRpbmcgYW5kL29yIHNpZ25pbmcgd2hhdCBpcyBzZW50CisgICBhY3Jvc3MgdGhlIHNvY2tldCwgc3VjaCB0aGF0IHRoZSBgYHZlcmlmeWBgIGNhbGxhYmxlIGNhbiBwZXJmb3JtCisgICBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGFuZC9vciBkZWNyeXB0aW9uLiBUaGUgYGB2ZXJpZnlgYCBjYWxsYWJsZSBpcyBjYWxsZWQKKyAgIHdpdGggYSBzaW5nbGUgYXJndW1lbnQgLSB0aGUgYnl0ZXMgcmVjZWl2ZWQgYWNyb3NzIHRoZSBzb2NrZXQgLSBhbmQgc2hvdWxkCisgICByZXR1cm4gdGhlIGJ5dGVzIHRvIGJlIHByb2Nlc3NlZCwgb3IgTm9uZSB0byBpbmRpY2F0ZSB0aGF0IHRoZSBieXRlcyBzaG91bGQKKyAgIGJlIGRpc2NhcmRlZC4gVGhlIHJldHVybmVkIGJ5dGVzIGNvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBwYXNzZWQgaW4gYnl0ZXMKKyAgIChlLmcuIHdoZW4gb25seSB2ZXJpZmljYXRpb24gaXMgZG9uZSksIG9yIHRoZXkgY291bGQgYmUgY29tcGxldGVseSBkaWZmZXJlbnQKKyAgIChwZXJoYXBzIGlmIGRlY3J5cHRpb24gd2VyZSBwZXJmb3JtZWQpLgorCiAgICBUbyBzZW5kIGEgY29uZmlndXJhdGlvbiB0byB0aGUgc29ja2V0LCByZWFkIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgYW5kCiAgICBzZW5kIGl0IHRvIHRoZSBzb2NrZXQgYXMgYSBzdHJpbmcgb2YgYnl0ZXMgcHJlY2VkZWQgYnkgYSBmb3VyLWJ5dGUgbGVuZ3RoCiAgICBzdHJpbmcgcGFja2VkIGluIGJpbmFyeSB1c2luZyBgYHN0cnVjdC5wYWNrKCc+TCcsIG4pYGAuCkBAIC0xMjEsNyArMTUzLDEyIEBACiAgICAgICA6ZnVuYzpgbGlzdGVuYCBzb2NrZXQgYW5kIHNlbmRpbmcgYSBjb25maWd1cmF0aW9uIHdoaWNoIHJ1bnMgd2hhdGV2ZXIKICAgICAgIGNvZGUgdGhlIGF0dGFja2VyIHdhbnRzIHRvIGhhdmUgZXhlY3V0ZWQgaW4gdGhlIHZpY3RpbSdzIHByb2Nlc3MuIFRoaXMgaXMKICAgICAgIGVzcGVjaWFsbHkgZWFzeSB0byBkbyBpZiB0aGUgZGVmYXVsdCBwb3J0IGlzIHVzZWQsIGJ1dCBub3QgaGFyZCBldmVuIGlmIGEKLSAgICAgIGRpZmZlcmVudCBwb3J0IGlzIHVzZWQpLgorICAgICAgZGlmZmVyZW50IHBvcnQgaXMgdXNlZCkuIFRvIGF2b2lkIHRoZSByaXNrIG9mIHRoaXMgaGFwcGVuaW5nLCB1c2UgdGhlCisgICAgICBgYHZlcmlmeWBgIGFyZ3VtZW50IHRvIDpmdW5jOmBsaXN0ZW5gIHRvIHByZXZlbnQgdW5yZWNvZ25pc2VkCisgICAgICBjb25maWd1cmF0aW9ucyBmcm9tIGJlaW5nIGFwcGxpZWQuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40LgorICAgICAgVGhlIGBgdmVyaWZ5YGAgYXJndW1lbnQgd2FzIGFkZGVkLgogCiAuLiBmdW5jdGlvbjo6IHN0b3BMaXN0ZW5pbmcoKQogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9sb2dnaW5nLmhhbmRsZXJzLnJzdCBiL0RvYy9saWJyYXJ5L2xvZ2dpbmcuaGFuZGxlcnMucnN0CmluZGV4IDMwZjllMDMuLjkwOWE2NzggMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2xvZ2dpbmcuaGFuZGxlcnMucnN0CisrKyBiL0RvYy9saWJyYXJ5L2xvZ2dpbmcuaGFuZGxlcnMucnN0CkBAIC0yOTYsNyArMjk2LDcgQEAKIHRpbWVkIGludGVydmFscy4KIAogCi0uLiBjbGFzczo6IFRpbWVkUm90YXRpbmdGaWxlSGFuZGxlcihmaWxlbmFtZSwgd2hlbj0naCcsIGludGVydmFsPTEsIGJhY2t1cENvdW50PTAsIGVuY29kaW5nPU5vbmUsIGRlbGF5PUZhbHNlLCB1dGM9RmFsc2UpCisuLiBjbGFzczo6IFRpbWVkUm90YXRpbmdGaWxlSGFuZGxlcihmaWxlbmFtZSwgd2hlbj0naCcsIGludGVydmFsPTEsIGJhY2t1cENvdW50PTAsIGVuY29kaW5nPU5vbmUsIGRlbGF5PUZhbHNlLCB1dGM9RmFsc2UsIGF0VGltZT1Ob25lKQogCiAgICBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA6Y2xhc3M6YFRpbWVkUm90YXRpbmdGaWxlSGFuZGxlcmAgY2xhc3MuIFRoZQogICAgc3BlY2lmaWVkIGZpbGUgaXMgb3BlbmVkIGFuZCB1c2VkIGFzIHRoZSBzdHJlYW0gZm9yIGxvZ2dpbmcuIE9uIHJvdGF0aW5nIGl0IGFsc28KQEAgLTM0Niw2ICszNDYsMTIgQEAKICAgIElmICpkZWxheSogaXMgdHJ1ZSwgdGhlbiBmaWxlIG9wZW5pbmcgaXMgZGVmZXJyZWQgdW50aWwgdGhlIGZpcnN0IGNhbGwgdG8KICAgIDptZXRoOmBlbWl0YC4KIAorICAgSWYgKmF0VGltZSogaXMgbm90IGBgTm9uZWBgLCBpdCBtdXN0IGJlIGEgYGBkYXRldGltZS50aW1lYGAgaW5zdGFuY2Ugd2hpY2gKKyAgIHNwZWNpZmllcyB0aGUgdGltZSBvZiBkYXkgd2hlbiByb2xsb3ZlciBvY2N1cnMsIGZvciB0aGUgY2FzZXMgd2hlcmUgcm9sbG92ZXIKKyAgIGlzIHNldCB0byBoYXBwZW4gImF0IG1pZG5pZ2h0IiBvciAib24gYSBwYXJ0aWN1bGFyIHdlZWtkYXkiLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgKmF0VGltZSogcGFyYW1ldGVyIHdhcyBhZGRlZC4KIAogICAgLi4gbWV0aG9kOjogZG9Sb2xsb3ZlcigpCiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L21hcnNoYWwucnN0IGIvRG9jL2xpYnJhcnkvbWFyc2hhbC5yc3QKaW5kZXggM2I5ZTNkMi4uMTI0ZWI2MSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvbWFyc2hhbC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvbWFyc2hhbC5yc3QKQEAgLTQwLDEwICs0MCwxMSBAQAogcG9pbnQgbnVtYmVycywgY29tcGxleCBudW1iZXJzLCBzdHJpbmdzLCBieXRlcywgYnl0ZWFycmF5cywgdHVwbGVzLCBsaXN0cywgc2V0cywKIGZyb3plbnNldHMsIGRpY3Rpb25hcmllcywgYW5kIGNvZGUgb2JqZWN0cywgd2hlcmUgaXQgc2hvdWxkIGJlIHVuZGVyc3Rvb2QgdGhhdAogdHVwbGVzLCBsaXN0cywgc2V0cywgZnJvemVuc2V0cyBhbmQgZGljdGlvbmFyaWVzIGFyZSBvbmx5IHN1cHBvcnRlZCBhcyBsb25nIGFzCi10aGUgdmFsdWVzIGNvbnRhaW5lZCB0aGVyZWluIGFyZSB0aGVtc2VsdmVzIHN1cHBvcnRlZDsgYW5kIHJlY3Vyc2l2ZSBsaXN0cywgc2V0cwotYW5kIGRpY3Rpb25hcmllcyBzaG91bGQgbm90IGJlIHdyaXR0ZW4gKHRoZXkgd2lsbCBjYXVzZSBpbmZpbml0ZSBsb29wcykuICBUaGUKK3RoZSB2YWx1ZXMgY29udGFpbmVkIHRoZXJlaW4gYXJlIHRoZW1zZWx2ZXMgc3VwcG9ydGVkLgogc2luZ2xldG9ucyA6Y29uc3Q6YE5vbmVgLCA6Y29uc3Q6YEVsbGlwc2lzYCBhbmQgOmV4YzpgU3RvcEl0ZXJhdGlvbmAgY2FuIGFsc28gYmUKIG1hcnNoYWxsZWQgYW5kIHVubWFyc2hhbGxlZC4KK0ZvciBmb3JtYXQgKnZlcnNpb24qIGxvd2VyIHRoYW4gMywgcmVjdXJzaXZlIGxpc3RzLCBzZXRzIGFuZCBkaWN0aW9uYXJpZXMgY2Fubm90CitiZSB3cml0dGVuIChzZWUgYmVsb3cpLgogCiBUaGVyZSBhcmUgZnVuY3Rpb25zIHRoYXQgcmVhZC93cml0ZSBmaWxlcyBhcyB3ZWxsIGFzIGZ1bmN0aW9ucyBvcGVyYXRpbmcgb24KIHN0cmluZ3MuCkBAIC0xMDMsNyArMTA0LDkgQEAKIAogICAgSW5kaWNhdGVzIHRoZSBmb3JtYXQgdGhhdCB0aGUgbW9kdWxlIHVzZXMuIFZlcnNpb24gMCBpcyB0aGUgaGlzdG9yaWNhbAogICAgZm9ybWF0LCB2ZXJzaW9uIDEgc2hhcmVzIGludGVybmVkIHN0cmluZ3MgYW5kIHZlcnNpb24gMiB1c2VzIGEgYmluYXJ5IGZvcm1hdAotICAgZm9yIGZsb2F0aW5nIHBvaW50IG51bWJlcnMuIFRoZSBjdXJyZW50IHZlcnNpb24gaXMgMi4KKyAgIGZvciBmbG9hdGluZyBwb2ludCBudW1iZXJzLgorICAgVmVyc2lvbiAzIGFkZHMgc3VwcG9ydCBmb3Igb2JqZWN0IGluc3RhbmNpbmcgYW5kIHJlY3Vyc2lvbi4KKyAgIFRoZSBjdXJyZW50IHZlcnNpb24gaXMgMy4KIAogCiAuLiBydWJyaWM6OiBGb290bm90ZXMKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L211bHRpcHJvY2Vzc2luZy5yc3QgYi9Eb2MvbGlicmFyeS9tdWx0aXByb2Nlc3NpbmcucnN0CmluZGV4IDFjMTgwNjIuLjI1NjJlMzAgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L211bHRpcHJvY2Vzc2luZy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLnJzdApAQCAtNzAyLDYgKzcwMiw5IEBACiAgICBSZXR1cm4gdGhlIG51bWJlciBvZiBDUFVzIGluIHRoZSBzeXN0ZW0uICBNYXkgcmFpc2UKICAgIDpleGM6YE5vdEltcGxlbWVudGVkRXJyb3JgLgogCisgICAuLiBzZWVhbHNvOjoKKyAgICAgIDpmdW5jOmBvcy5jcHVfY291bnRgCisKIC4uIGZ1bmN0aW9uOjogY3VycmVudF9wcm9jZXNzKCkKIAogICAgUmV0dXJuIHRoZSA6Y2xhc3M6YFByb2Nlc3NgIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50IHByb2Nlc3MuCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9ubnRwbGliLnJzdCBiL0RvYy9saWJyYXJ5L25udHBsaWIucnN0CmluZGV4IDFkMWFhNDAuLjczYjUxYzAgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L25udHBsaWIucnN0CisrKyBiL0RvYy9saWJyYXJ5L25udHBsaWIucnN0CkBAIC0xLDQgKzEsMyBAQAotCiA6bW9kOmBubnRwbGliYCAtLS0gTk5UUCBwcm90b2NvbCBjbGllbnQKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCkBAIC03MSw3ICs3MCw3IEBACiAgICByZWFkZXItc3BlY2lmaWMgY29tbWFuZHMsIHN1Y2ggYXMgYGBncm91cGBgLiAgSWYgeW91IGdldCB1bmV4cGVjdGVkCiAgICA6ZXhjOmBOTlRQUGVybWFuZW50RXJyb3JgXCBzLCB5b3UgbWlnaHQgbmVlZCB0byBzZXQgKnJlYWRlcm1vZGUqLgogICAgOmNsYXNzOmBOTlRQYCBjbGFzcyBzdXBwb3J0cyB0aGUgOmtleXdvcmQ6YHdpdGhgIHN0YXRlbWVudCB0bwotICAgdW5jb25kaXRpb25hbGx5IGNvbnN1bWUgOmV4Yzpgc29ja2V0LmVycm9yYCBleGNlcHRpb25zIGFuZCB0byBjbG9zZSB0aGUgTk5UUAorICAgdW5jb25kaXRpb25hbGx5IGNvbnN1bWUgOmV4YzpgT1NFcnJvcmAgZXhjZXB0aW9ucyBhbmQgdG8gY2xvc2UgdGhlIE5OVFAKICAgIGNvbm5lY3Rpb24gd2hlbiBkb25lLiBIZXJlIGlzIGEgc2FtcGxlIG9uIGhvdyB1c2luZyBpdDoKIAogICAgID4+PiBmcm9tIG5udHBsaWIgaW1wb3J0IE5OVFAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L29wZXJhdG9yLnJzdCBiL0RvYy9saWJyYXJ5L29wZXJhdG9yLnJzdAppbmRleCBkZTdhNTQyLi5kMDFkMzNhIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9vcGVyYXRvci5yc3QKKysrIGIvRG9jL2xpYnJhcnkvb3BlcmF0b3IucnN0CkBAIC0xMSw2ICsxMSw5IEBACiAgICBpbXBvcnQgb3BlcmF0b3IKICAgIGZyb20gb3BlcmF0b3IgaW1wb3J0IGl0ZW1nZXR0ZXIsIGlhZGQKIAorKipTb3VyY2UgY29kZToqKiA6c291cmNlOmBMaWIvb3BlcmF0b3IucHlgCisKKy0tLS0tLS0tLS0tLS0tCiAKIFRoZSA6bW9kOmBvcGVyYXRvcmAgbW9kdWxlIGV4cG9ydHMgYSBzZXQgb2YgZWZmaWNpZW50IGZ1bmN0aW9ucyBjb3JyZXNwb25kaW5nIHRvCiB0aGUgaW50cmluc2ljIG9wZXJhdG9ycyBvZiBQeXRob24uICBGb3IgZXhhbXBsZSwgYGBvcGVyYXRvci5hZGQoeCwgeSlgYCBpcwpAQCAtMjM1LDYgKzIzOCwxNCBAQAogCiAuLiBYWFg6IGZpbmQgYSBiZXR0ZXIsIHJlYWRhYmxlLCBleGFtcGxlCiAKKy4uIGZ1bmN0aW9uOjogbGVuZ3RoX2hpbnQob2JqLCBkZWZhdWx0PTApCisKKyAgIFJldHVybiBhbiBlc3RpbWF0ZWQgbGVuZ3RoIGZvciB0aGUgb2JqZWN0ICpvKi4gRmlyc3QgdHJ5aW5nIHRvIHJldHVybiBpdHMKKyAgIGFjdHVhbCBsZW5ndGgsIHRoZW4gYW4gZXN0aW1hdGUgdXNpbmcgOm1ldGg6YG9iamVjdC5fX2xlbmd0aF9oaW50X19gLCBhbmQKKyAgIGZpbmFsbHkgcmV0dXJuaW5nIHRoZSBkZWZhdWx0IHZhbHVlLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKKwogVGhlIDptb2Q6YG9wZXJhdG9yYCBtb2R1bGUgYWxzbyBkZWZpbmVzIHRvb2xzIGZvciBnZW5lcmFsaXplZCBhdHRyaWJ1dGUgYW5kIGl0ZW0KIGxvb2t1cHMuICBUaGVzZSBhcmUgdXNlZnVsIGZvciBtYWtpbmcgZmFzdCBmaWVsZCBleHRyYWN0b3JzIGFzIGFyZ3VtZW50cyBmb3IKIDpmdW5jOmBtYXBgLCA6ZnVuYzpgc29ydGVkYCwgOm1ldGg6YGl0ZXJ0b29scy5ncm91cGJ5YCwgb3Igb3RoZXIgZnVuY3Rpb25zIHRoYXQKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L29zLnBhdGgucnN0IGIvRG9jL2xpYnJhcnkvb3MucGF0aC5yc3QKaW5kZXggZGQzYWM4NS4uMGQyYWQwNCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvb3MucGF0aC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvb3MucGF0aC5yc3QKQEAgLTQyLDcgKzQyLDYgQEAKICAgICogOm1vZDpgcG9zaXhwYXRoYCBmb3IgVU5JWC1zdHlsZSBwYXRocwogICAgKiA6bW9kOmBudHBhdGhgIGZvciBXaW5kb3dzIHBhdGhzCiAgICAqIDptb2Q6YG1hY3BhdGhgIGZvciBvbGQtc3R5bGUgTWFjT1MgcGF0aHMKLSAgICogOm1vZDpgb3MyZW14cGF0aGAgZm9yIE9TLzIgRU1YIHBhdGhzCiAKIAogLi4gZnVuY3Rpb246OiBhYnNwYXRoKHBhdGgpCkBAIC0yNDgsMTUgKzI0NywxNCBAQAogICAgT24gVW5peCwgdGhpcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBkZXZpY2UgbnVtYmVyIGFuZCBpLW5vZGUgbnVtYmVyIGFuZCByYWlzZXMgYW4KICAgIGV4Y2VwdGlvbiBpZiBhIDpmdW5jOmBvcy5zdGF0YCBjYWxsIG9uIGVpdGhlciBwYXRobmFtZSBmYWlscy4KIAotICAgT24gV2luZG93cywgdHdvIGZpbGVzIGFyZSB0aGUgc2FtZSBpZiB0aGV5IHJlc29sdmUgdG8gdGhlIHNhbWUgZmluYWwgcGF0aAotICAgbmFtZSB1c2luZyB0aGUgV2luZG93cyBBUEkgY2FsbCBHZXRGaW5hbFBhdGhOYW1lQnlIYW5kbGUuIFRoaXMgZnVuY3Rpb24KLSAgIHJhaXNlcyBhbiBleGNlcHRpb24gaWYgaGFuZGxlcyBjYW5ub3QgYmUgb2J0YWluZWQgdG8gZWl0aGVyIGZpbGUuCi0KICAgIEF2YWlsYWJpbGl0eTogVW5peCwgV2luZG93cy4KIAogICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKICAgICAgIEFkZGVkIFdpbmRvd3Mgc3VwcG9ydC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgIFdpbmRvd3Mgbm93IHVzZXMgdGhlIHNhbWUgaW1wbGVtZW50YXRpb24gYXMgYWxsIG90aGVyIHBsYXRmb3Jtcy4KKwogCiAuLiBmdW5jdGlvbjo6IHNhbWVvcGVuZmlsZShmcDEsIGZwMikKIApAQCAtMjc1LDcgKzI3MywxMCBAQAogICAgOmZ1bmM6YHN0YXRgLiAgVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSB1bmRlcmx5aW5nIGNvbXBhcmlzb24gdXNlZCBieQogICAgOmZ1bmM6YHNhbWVmaWxlYCBhbmQgOmZ1bmM6YHNhbWVvcGVuZmlsZWAuCiAKLSAgIEF2YWlsYWJpbGl0eTogVW5peC4KKyAgIEF2YWlsYWJpbGl0eTogVW5peCwgV2luZG93cy4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgIEFkZGVkIFdpbmRvd3Mgc3VwcG9ydC4KIAogCiAuLiBmdW5jdGlvbjo6IHNwbGl0KHBhdGgpCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9vcy5yc3QgYi9Eb2MvbGlicmFyeS9vcy5yc3QKaW5kZXggOGJiYjJlYy4uMTZiZWM3NyAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvb3MucnN0CisrKyBiL0RvYy9saWJyYXJ5L29zLnJzdApAQCAtNTQsNyArNTQsNyBAQAogCiAgICBUaGUgbmFtZSBvZiB0aGUgb3BlcmF0aW5nIHN5c3RlbSBkZXBlbmRlbnQgbW9kdWxlIGltcG9ydGVkLiAgVGhlIGZvbGxvd2luZwogICAgbmFtZXMgaGF2ZSBjdXJyZW50bHkgYmVlbiByZWdpc3RlcmVkOiBgYCdwb3NpeCdgYCwgYGAnbnQnYGAsIGBgJ21hYydgYCwKLSAgIGBgJ29zMidgYCwgYGAnY2UnYGAsIGBgJ2phdmEnYGAuCisgICBgYCdjZSdgYCwgYGAnamF2YSdgYC4KIAogICAgLi4gc2VlYWxzbzo6CiAgICAgICA6YXR0cjpgc3lzLnBsYXRmb3JtYCBoYXMgYSBmaW5lciBncmFudWxhcml0eS4gIDpmdW5jOmBvcy51bmFtZWAgZ2l2ZXMKQEAgLTExMzYsNiArMTEzNiw3IEBACiAgICAgICAgICAgT19ESVJFQ1RPUlkKICAgICAgICAgICBPX05PRk9MTE9XCiAgICAgICAgICAgT19OT0FUSU1FCisgICAgICAgICAgT19QQVRICiAKICAgIFRoZXNlIGNvbnN0YW50cyBhcmUgR05VIGV4dGVuc2lvbnMgYW5kIG5vdCBwcmVzZW50IGlmIHRoZXkgYXJlIG5vdCBkZWZpbmVkIGJ5CiAgICB0aGUgQyBsaWJyYXJ5LgpAQCAtMzE1NiwxMCArMzE1Nyw2IEBACiAgICBSZXR1cm4gdGhlIHNldCBvZiBDUFVzIHRoZSBwcm9jZXNzIHdpdGggUElEICpwaWQqIChvciB0aGUgY3VycmVudCBwcm9jZXNzCiAgICBpZiB6ZXJvKSBpcyByZXN0cmljdGVkIHRvLgogCi0gICAuLiBzZWVhbHNvOjoKLSAgICAgIDpmdW5jOmBtdWx0aXByb2Nlc3NpbmcuY3B1X2NvdW50YCByZXR1cm5zIHRoZSBudW1iZXIgb2YgQ1BVcyBpbiB0aGUKLSAgICAgIHN5c3RlbS4KLQogCiAuLiBfb3MtcGF0aDoKIApAQCAtMzE5Nyw2ICszMTk0LDEzIEBACiAgICBBdmFpbGFiaWxpdHk6IFVuaXguCiAKIAorLi4gZnVuY3Rpb246OiBjcHVfY291bnQoKQorCisgICBSZXR1cm4gdGhlIG51bWJlciBvZiBDUFVzIGluIHRoZSBzeXN0ZW0uIFJldHVybnMgTm9uZSBpZiB1bmRldGVybWluZWQuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCisKIC4uIGZ1bmN0aW9uOjogZ2V0bG9hZGF2ZygpCiAKICAgIFJldHVybiB0aGUgbnVtYmVyIG9mIHByb2Nlc3NlcyBpbiB0aGUgc3lzdGVtIHJ1biBxdWV1ZSBhdmVyYWdlZCBvdmVyIHRoZSBsYXN0CmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9wb3BsaWIucnN0IGIvRG9jL2xpYnJhcnkvcG9wbGliLnJzdAppbmRleCBiNDA4MGQ2Li5lMjQ4ZDZiIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9wb3BsaWIucnN0CisrKyBiL0RvYy9saWJyYXJ5L3BvcGxpYi5yc3QKQEAgLTEzLDggKzEzLDExIEBACiAtLS0tLS0tLS0tLS0tLQogCiBUaGlzIG1vZHVsZSBkZWZpbmVzIGEgY2xhc3MsIDpjbGFzczpgUE9QM2AsIHdoaWNoIGVuY2Fwc3VsYXRlcyBhIGNvbm5lY3Rpb24gdG8gYQotUE9QMyBzZXJ2ZXIgYW5kIGltcGxlbWVudHMgdGhlIHByb3RvY29sIGFzIGRlZmluZWQgaW4gOnJmYzpgMTcyNWAuICBUaGUKLTpjbGFzczpgUE9QM2AgY2xhc3Mgc3VwcG9ydHMgYm90aCB0aGUgbWluaW1hbCBhbmQgb3B0aW9uYWwgY29tbWFuZCBzZXRzLgorUE9QMyBzZXJ2ZXIgYW5kIGltcGxlbWVudHMgdGhlIHByb3RvY29sIGFzIGRlZmluZWQgaW4gOnJmYzpgMTkzOWAuIFRoZQorOmNsYXNzOmBQT1AzYCBjbGFzcyBzdXBwb3J0cyBib3RoIHRoZSBtaW5pbWFsIGFuZCBvcHRpb25hbCBjb21tYW5kIHNldHMgZnJvbQorOnJmYzpgMTkzOWAuIFRoZSA6Y2xhc3M6YFBPUDNgIGNsYXNzIGFsc28gc3VwcG9ydHMgdGhlIGBTVExTYCBjb21tYW5kIGludHJvZHVjZWQKK2luIDpyZmM6YDI1OTVgIHRvIGVuYWJsZSBlbmNyeXB0ZWQgY29tbXVuaWNhdGlvbiBvbiBhbiBhbHJlYWR5IGVzdGFibGlzaGVkIGNvbm5lY3Rpb24uCisKIEFkZGl0aW9uYWxseSwgdGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBjbGFzcyA6Y2xhc3M6YFBPUDNfU1NMYCwgd2hpY2ggcHJvdmlkZXMKIHN1cHBvcnQgZm9yIGNvbm5lY3RpbmcgdG8gUE9QMyBzZXJ2ZXJzIHRoYXQgdXNlIFNTTCBhcyBhbiB1bmRlcmx5aW5nIHByb3RvY29sCiBsYXllci4KQEAgLTk3LDYgKzEwMCwxNCBAQAogICAgUmV0dXJucyB0aGUgZ3JlZXRpbmcgc3RyaW5nIHNlbnQgYnkgdGhlIFBPUDMgc2VydmVyLgogCiAKKy4uIG1ldGhvZDo6IFBPUDMuY2FwYSgpCisKKyAgIFF1ZXJ5IHRoZSBzZXJ2ZXIncyBjYXBhYmlsaXRpZXMgYXMgc3BlY2lmaWVkIGluIDpyZmM6YDI0NDlgLgorICAgUmV0dXJucyBhIGRpY3Rpb25hcnkgaW4gdGhlIGZvcm0gYGB7J25hbWUnOiBbJ3BhcmFtJy4uLl19YGAuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCisKIC4uIG1ldGhvZDo6IFBPUDMudXNlcih1c2VybmFtZSkKIAogICAgU2VuZCB1c2VyIGNvbW1hbmQsIHJlc3BvbnNlIHNob3VsZCBpbmRpY2F0ZSB0aGF0IGEgcGFzc3dvcmQgaXMgcmVxdWlyZWQuCkBAIC0xNzYsNiArMTg3LDE4IEBACiAgICB0aGUgdW5pcXVlIGlkIGZvciB0aGF0IG1lc3NhZ2UgaW4gdGhlIGZvcm0gYGAncmVzcG9uc2UgbWVzZ251bSB1aWRgYCwgb3RoZXJ3aXNlCiAgICByZXN1bHQgaXMgbGlzdCBgYChyZXNwb25zZSwgWydtZXNnbnVtIHVpZCcsIC4uLl0sIG9jdGV0cylgYC4KIAorLi4gbWV0aG9kOjogUE9QMy5zdGxzKGNvbnRleHQ9Tm9uZSkKKworICAgU3RhcnQgYSBUTFMgc2Vzc2lvbiBvbiB0aGUgYWN0aXZlIGNvbm5lY3Rpb24gYXMgc3BlY2lmaWVkIGluIDpyZmM6YDI1OTVgLgorICAgVGhpcyBpcyBvbmx5IGFsbG93ZWQgYmVmb3JlIHVzZXIgYXV0aGVudGljYXRpb24KKworICAgKmNvbnRleHQqIHBhcmFtZXRlciBpcyBhIDpjbGFzczpgc3NsLlNTTENvbnRleHRgIG9iamVjdCB3aGljaCBhbGxvd3MKKyAgIGJ1bmRsaW5nIFNTTCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGNlcnRpZmljYXRlcyBhbmQgcHJpdmF0ZSBrZXlzIGludG8KKyAgIGEgc2luZ2xlIChwb3RlbnRpYWxseSBsb25nLWxpdmVkKSBzdHJ1Y3R1cmUuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCisKIEluc3RhbmNlcyBvZiA6Y2xhc3M6YFBPUDNfU1NMYCBoYXZlIG5vIGFkZGl0aW9uYWwgbWV0aG9kcy4gVGhlIGludGVyZmFjZSBvZiB0aGlzCiBzdWJjbGFzcyBpcyBpZGVudGljYWwgdG8gaXRzIHBhcmVudC4KIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvcHByaW50LnJzdCBiL0RvYy9saWJyYXJ5L3BwcmludC5yc3QKaW5kZXggM2E4NjMzMS4uOGQ1N2M1ZCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvcHByaW50LnJzdAorKysgYi9Eb2MvbGlicmFyeS9wcHJpbnQucnN0CkBAIC0xNCw4ICsxNCw4IEBACiBQeXRob24gZGF0YSBzdHJ1Y3R1cmVzIGluIGEgZm9ybSB3aGljaCBjYW4gYmUgdXNlZCBhcyBpbnB1dCB0byB0aGUgaW50ZXJwcmV0ZXIuCiBJZiB0aGUgZm9ybWF0dGVkIHN0cnVjdHVyZXMgaW5jbHVkZSBvYmplY3RzIHdoaWNoIGFyZSBub3QgZnVuZGFtZW50YWwgUHl0aG9uCiB0eXBlcywgdGhlIHJlcHJlc2VudGF0aW9uIG1heSBub3QgYmUgbG9hZGFibGUuICBUaGlzIG1heSBiZSB0aGUgY2FzZSBpZiBvYmplY3RzCi1zdWNoIGFzIGZpbGVzLCBzb2NrZXRzLCBjbGFzc2VzLCBvciBpbnN0YW5jZXMgYXJlIGluY2x1ZGVkLCBhcyB3ZWxsIGFzIG1hbnkKLW90aGVyIGJ1aWx0LWluIG9iamVjdHMgd2hpY2ggYXJlIG5vdCByZXByZXNlbnRhYmxlIGFzIFB5dGhvbiBjb25zdGFudHMuCitzdWNoIGFzIGZpbGVzLCBzb2NrZXRzIG9yIGNsYXNzZXMgYXJlIGluY2x1ZGVkLCBhcyB3ZWxsIGFzIG1hbnkgb3RoZXIKK29iamVjdHMgd2hpY2ggYXJlIG5vdCByZXByZXNlbnRhYmxlIGFzIFB5dGhvbiBsaXRlcmFscy4KIAogVGhlIGZvcm1hdHRlZCByZXByZXNlbnRhdGlvbiBrZWVwcyBvYmplY3RzIG9uIGEgc2luZ2xlIGxpbmUgaWYgaXQgY2FuLCBhbmQKIGJyZWFrcyB0aGVtIG9udG8gbXVsdGlwbGUgbGluZXMgaWYgdGhleSBkb24ndCBmaXQgd2l0aGluIHRoZSBhbGxvd2VkIHdpZHRoLgpAQCAtNjUsNyArNjUsNyBAQAogICAgICAgKCdzcGFtJywgKCdlZ2dzJywgKCdsdW1iZXJqYWNrJywgKCdrbmlnaHRzJywgKCduaScsICgnZGVhZCcsICguLi4pKSkpKSkpCiAKIAotVGhlIDpjbGFzczpgUHJldHR5UHJpbnRlcmAgY2xhc3Mgc3VwcG9ydHMgc2V2ZXJhbCBkZXJpdmF0aXZlIGZ1bmN0aW9uczoKK1RoZSA6bW9kOmBwcHJpbnRgIG1vZHVsZSBhbHNvIHByb3ZpZGVzIHNldmVyYWwgc2hvcnRjdXQgZnVuY3Rpb25zOgogCiAuLiBmdW5jdGlvbjo6IHBmb3JtYXQob2JqZWN0LCBpbmRlbnQ9MSwgd2lkdGg9ODAsIGRlcHRoPU5vbmUpCiAKQEAgLTE5MywxMDEgKzE5MywxNDEgQEAKIC0tLS0tLS0KIAogVG8gZGVtb25zdHJhdGUgc2V2ZXJhbCB1c2VzIG9mIHRoZSA6ZnVuYzpgcHByaW50YCBmdW5jdGlvbiBhbmQgaXRzIHBhcmFtZXRlcnMsCi1sZXQncyBmZXRjaCBpbmZvcm1hdGlvbiBhYm91dCBhIHByb2plY3QgZnJvbSBQeVBJOjoKK2xldCdzIGZldGNoIGluZm9ybWF0aW9uIGFib3V0IGEgcHJvamVjdCBmcm9tIGBQeVBJIDxodHRwczovL3B5cGkucHl0aG9uLm9yZz5gXzo6CiAKICAgID4+PiBpbXBvcnQganNvbgogICAgPj4+IGltcG9ydCBwcHJpbnQKICAgID4+PiBmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmxvcGVuCi0gICA+Pj4gd2l0aCB1cmxvcGVuKCdodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvY29uZmlncGFyc2VyL2pzb24nKSBhcyB1cmw6CisgICA+Pj4gd2l0aCB1cmxvcGVuKCdodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvVHdpc3RlZC9qc29uJykgYXMgdXJsOgogICAgLi4uICAgICBodHRwX2luZm8gPSB1cmwuaW5mbygpCiAgICAuLi4gICAgIHJhd19kYXRhID0gdXJsLnJlYWQoKS5kZWNvZGUoaHR0cF9pbmZvLmdldF9jb250ZW50X2NoYXJzZXQoKSkKICAgID4+PiBwcm9qZWN0X2luZm8gPSBqc29uLmxvYWRzKHJhd19kYXRhKQotICAgPj4+IHJlc3VsdCA9IHsnaGVhZGVycyc6IGh0dHBfaW5mby5pdGVtcygpLCAnYm9keSc6IHByb2plY3RfaW5mb30KIAogSW4gaXRzIGJhc2ljIGZvcm0sIDpmdW5jOmBwcHJpbnRgIHNob3dzIHRoZSB3aG9sZSBvYmplY3Q6OgogCi0gICA+Pj4gcHByaW50LnBwcmludChyZXN1bHQpCi0gICB7J2JvZHknOiB7J2luZm8nOiB7J19weXBpX2hpZGRlbic6IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICdfcHlwaV9vcmRlcmluZyc6IDEyLAotICAgICAgICAgICAgICAgICAgICAgICdjbGFzc2lmaWVycyc6IFsnRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDQgLSBCZXRhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ludGVuZGVkIEF1ZGllbmNlIDo6IERldmVsb3BlcnMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTmF0dXJhbCBMYW5ndWFnZSA6OiBFbmdsaXNoJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ09wZXJhdGluZyBTeXN0ZW0gOjogT1MgSW5kZXBlbmRlbnQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyLjYnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIuNycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGlicmFyaWVzIDo6IFB5dGhvbiBNb2R1bGVzJ10sCi0gICAgICAgICAgICAgICAgICAgICAgJ2Rvd25sb2FkX3VybCc6ICdVTktOT1dOJywKLSAgICAgICAgICAgICAgICAgICAgICAnaG9tZV9wYWdlJzogJ2h0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvcHkzay9saWJyYXJ5L2NvbmZpZ3BhcnNlci5odG1sJywKLSAgICAgICAgICAgICAgICAgICAgICAna2V5d29yZHMnOiAnY29uZmlncGFyc2VyIGluaSBwYXJzaW5nIGNvbmYgY2ZnIGNvbmZpZ3VyYXRpb24gZmlsZScsCi0gICAgICAgICAgICAgICAgICAgICAgJ2xpY2Vuc2UnOiAnTUlUJywKLSAgICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdjb25maWdwYXJzZXInLAotICAgICAgICAgICAgICAgICAgICAgICdwYWNrYWdlX3VybCc6ICdodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvY29uZmlncGFyc2VyJywKLSAgICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm0nOiAnYW55JywKLSAgICAgICAgICAgICAgICAgICAgICAncmVsZWFzZV91cmwnOiAnaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL2NvbmZpZ3BhcnNlci8zLjIuMHIzJywKLSAgICAgICAgICAgICAgICAgICAgICAncmVxdWlyZXNfcHl0aG9uJzogTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAnc3RhYmxlX3ZlcnNpb24nOiBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICdzdW1tYXJ5JzogJ1RoaXMgbGlicmFyeSBicmluZ3MgdGhlIHVwZGF0ZWQgY29uZmlncGFyc2VyIGZyb20gUHl0aG9uIDMuMisgdG8gUHl0aG9uIDIuNi0yLjcuJywKLSAgICAgICAgICAgICAgICAgICAgICAndmVyc2lvbic6ICczLjIuMHIzJ30sCi0gICAgICAgICAgICd1cmxzJzogW3snY29tbWVudF90ZXh0JzogJycsCi0gICAgICAgICAgICAgICAgICAgICAnZG93bmxvYWRzJzogNDcsCi0gICAgICAgICAgICAgICAgICAgICAnZmlsZW5hbWUnOiAnY29uZmlncGFyc2VyLTMuMi4wcjMudGFyLmd6JywKLSAgICAgICAgICAgICAgICAgICAgICdoYXNfc2lnJzogRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAnbWQ1X2RpZ2VzdCc6ICc4NTAwZmQ4N2M2MWFjMGRlMzI4ZmM5OTZmY2U2OWI5NicsCi0gICAgICAgICAgICAgICAgICAgICAncGFja2FnZXR5cGUnOiAnc2Rpc3QnLAotICAgICAgICAgICAgICAgICAgICAgJ3B5dGhvbl92ZXJzaW9uJzogJ3NvdXJjZScsCi0gICAgICAgICAgICAgICAgICAgICAnc2l6ZSc6IDMyMjgxLAotICAgICAgICAgICAgICAgICAgICAgJ3VwbG9hZF90aW1lJzogJzIwMTEtMDUtMTBUMTY6Mjg6NTAnLAotICAgICAgICAgICAgICAgICAgICAgJ3VybCc6ICdodHRwOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS9jL2NvbmZpZ3BhcnNlci9jb25maWdwYXJzZXItMy4yLjByMy50YXIuZ3onfV19LAotICAgJ2hlYWRlcnMnOiBbKCdEYXRlJywgJ1NhdCwgMTQgTWF5IDIwMTEgMTI6NDg6NTIgR01UJyksCi0gICAgICAgICAgICAgICAoJ1NlcnZlcicsICdBcGFjaGUvMi4yLjE2IChEZWJpYW4pJyksCi0gICAgICAgICAgICAgICAoJ0NvbnRlbnQtRGlzcG9zaXRpb24nLCAnaW5saW5lJyksCi0gICAgICAgICAgICAgICAoJ0Nvbm5lY3Rpb24nLCAnY2xvc2UnKSwKLSAgICAgICAgICAgICAgICgnVHJhbnNmZXItRW5jb2RpbmcnLCAnY2h1bmtlZCcpLAotICAgICAgICAgICAgICAgKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD0iVVRGLTgiJyldfQorICAgPj4+IHBwcmludC5wcHJpbnQocHJvamVjdF9pbmZvKQorICAgeydpbmZvJzogeydfcHlwaV9oaWRkZW4nOiBGYWxzZSwKKyAgICAgICAgICAgICAnX3B5cGlfb3JkZXJpbmcnOiAxMjUsCisgICAgICAgICAgICAgJ2F1dGhvcic6ICdHbHlwaCBMZWZrb3dpdHonLAorICAgICAgICAgICAgICdhdXRob3JfZW1haWwnOiAnZ2x5cGhAdHdpc3RlZG1hdHJpeC5jb20nLAorICAgICAgICAgICAgICdidWd0cmFja191cmwnOiAnJywKKyAgICAgICAgICAgICAnY2hlZXNlY2FrZV9jb2RlX2t3YWxpdGVlX2lkJzogTm9uZSwKKyAgICAgICAgICAgICAnY2hlZXNlY2FrZV9kb2N1bWVudGF0aW9uX2lkJzogTm9uZSwKKyAgICAgICAgICAgICAnY2hlZXNlY2FrZV9pbnN0YWxsYWJpbGl0eV9pZCc6IE5vbmUsCisgICAgICAgICAgICAgJ2NsYXNzaWZpZXJzJzogWydQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi42JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyLjcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIgOjogT25seSddLAorICAgICAgICAgICAgICdkZXNjcmlwdGlvbic6ICdBbiBleHRlbnNpYmxlIGZyYW1ld29yayBmb3IgUHl0aG9uIHByb2dyYW1taW5nLCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpdGggc3BlY2lhbCBmb2N1c1xyXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29uIGV2ZW50LWJhc2VkIG5ldHdvcmsgcHJvZ3JhbW1pbmcgYW5kICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbXVsdGlwcm90b2NvbCBpbnRlZ3JhdGlvbi4nLAorICAgICAgICAgICAgICdkb2NzX3VybCc6ICcnLAorICAgICAgICAgICAgICdkb3dubG9hZF91cmwnOiAnVU5LTk9XTicsCisgICAgICAgICAgICAgJ2hvbWVfcGFnZSc6ICdodHRwOi8vdHdpc3RlZG1hdHJpeC5jb20vJywKKyAgICAgICAgICAgICAna2V5d29yZHMnOiAnJywKKyAgICAgICAgICAgICAnbGljZW5zZSc6ICdNSVQnLAorICAgICAgICAgICAgICdtYWludGFpbmVyJzogJycsCisgICAgICAgICAgICAgJ21haW50YWluZXJfZW1haWwnOiAnJywKKyAgICAgICAgICAgICAnbmFtZSc6ICdUd2lzdGVkJywKKyAgICAgICAgICAgICAncGFja2FnZV91cmwnOiAnaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL1R3aXN0ZWQnLAorICAgICAgICAgICAgICdwbGF0Zm9ybSc6ICdVTktOT1dOJywKKyAgICAgICAgICAgICAncmVsZWFzZV91cmwnOiAnaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL1R3aXN0ZWQvMTIuMy4wJywKKyAgICAgICAgICAgICAncmVxdWlyZXNfcHl0aG9uJzogTm9uZSwKKyAgICAgICAgICAgICAnc3RhYmxlX3ZlcnNpb24nOiBOb25lLAorICAgICAgICAgICAgICdzdW1tYXJ5JzogJ0FuIGFzeW5jaHJvbm91cyBuZXR3b3JraW5nIGZyYW1ld29yayB3cml0dGVuIGluIFB5dGhvbicsCisgICAgICAgICAgICAgJ3ZlcnNpb24nOiAnMTIuMy4wJ30sCisgICAgJ3VybHMnOiBbeydjb21tZW50X3RleHQnOiAnJywKKyAgICAgICAgICAgICAgJ2Rvd25sb2Fkcyc6IDcxODQ0LAorICAgICAgICAgICAgICAnZmlsZW5hbWUnOiAnVHdpc3RlZC0xMi4zLjAudGFyLmJ6MicsCisgICAgICAgICAgICAgICdoYXNfc2lnJzogRmFsc2UsCisgICAgICAgICAgICAgICdtZDVfZGlnZXN0JzogJzZlMjg5ODI1ZjNiZjU1OTFjZmQ2NzA4NzRjYzA4NjJkJywKKyAgICAgICAgICAgICAgJ3BhY2thZ2V0eXBlJzogJ3NkaXN0JywKKyAgICAgICAgICAgICAgJ3B5dGhvbl92ZXJzaW9uJzogJ3NvdXJjZScsCisgICAgICAgICAgICAgICdzaXplJzogMjYxNTczMywKKyAgICAgICAgICAgICAgJ3VwbG9hZF90aW1lJzogJzIwMTItMTItMjZUMTI6NDc6MDMnLAorICAgICAgICAgICAgICAndXJsJzogJ2h0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzL3NvdXJjZS9UL1R3aXN0ZWQvVHdpc3RlZC0xMi4zLjAudGFyLmJ6Mid9LAorICAgICAgICAgICAgIHsnY29tbWVudF90ZXh0JzogJycsCisgICAgICAgICAgICAgICdkb3dubG9hZHMnOiA1MjI0LAorICAgICAgICAgICAgICAnZmlsZW5hbWUnOiAnVHdpc3RlZC0xMi4zLjAud2luMzItcHkyLjcubXNpJywKKyAgICAgICAgICAgICAgJ2hhc19zaWcnOiBGYWxzZSwKKyAgICAgICAgICAgICAgJ21kNV9kaWdlc3QnOiAnNmI3NzhmNTIwMWI2MjJhNTUxOWEyYWNhMWEyZmU1MTInLAorICAgICAgICAgICAgICAncGFja2FnZXR5cGUnOiAnYmRpc3RfbXNpJywKKyAgICAgICAgICAgICAgJ3B5dGhvbl92ZXJzaW9uJzogJzIuNycsCisgICAgICAgICAgICAgICdzaXplJzogMjkxNjM1MiwKKyAgICAgICAgICAgICAgJ3VwbG9hZF90aW1lJzogJzIwMTItMTItMjZUMTI6NDg6MTUnLAorICAgICAgICAgICAgICAndXJsJzogJ2h0dHBzOi8vcHlwaS5weXRob24ub3JnL3BhY2thZ2VzLzIuNy9UL1R3aXN0ZWQvVHdpc3RlZC0xMi4zLjAud2luMzItcHkyLjcubXNpJ31dfQogCiBUaGUgcmVzdWx0IGNhbiBiZSBsaW1pdGVkIHRvIGEgY2VydGFpbiAqZGVwdGgqIChlbGxpcHNpcyBpcyB1c2VkIGZvciBkZWVwZXIKIGNvbnRlbnRzKTo6CiAKLSAgID4+PiBwcHJpbnQucHByaW50KHJlc3VsdCwgZGVwdGg9MykKLSAgIHsnYm9keSc6IHsnaW5mbyc6IHsnX3B5cGlfaGlkZGVuJzogRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgJ19weXBpX29yZGVyaW5nJzogMTIsCi0gICAgICAgICAgICAgICAgICAgICAgJ2NsYXNzaWZpZXJzJzogWy4uLl0sCi0gICAgICAgICAgICAgICAgICAgICAgJ2Rvd25sb2FkX3VybCc6ICdVTktOT1dOJywKLSAgICAgICAgICAgICAgICAgICAgICAnaG9tZV9wYWdlJzogJ2h0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvcHkzay9saWJyYXJ5L2NvbmZpZ3BhcnNlci5odG1sJywKLSAgICAgICAgICAgICAgICAgICAgICAna2V5d29yZHMnOiAnY29uZmlncGFyc2VyIGluaSBwYXJzaW5nIGNvbmYgY2ZnIGNvbmZpZ3VyYXRpb24gZmlsZScsCi0gICAgICAgICAgICAgICAgICAgICAgJ2xpY2Vuc2UnOiAnTUlUJywKLSAgICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdjb25maWdwYXJzZXInLAotICAgICAgICAgICAgICAgICAgICAgICdwYWNrYWdlX3VybCc6ICdodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvY29uZmlncGFyc2VyJywKLSAgICAgICAgICAgICAgICAgICAgICAncGxhdGZvcm0nOiAnYW55JywKLSAgICAgICAgICAgICAgICAgICAgICAncmVsZWFzZV91cmwnOiAnaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL2NvbmZpZ3BhcnNlci8zLjIuMHIzJywKLSAgICAgICAgICAgICAgICAgICAgICAncmVxdWlyZXNfcHl0aG9uJzogTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAnc3RhYmxlX3ZlcnNpb24nOiBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICdzdW1tYXJ5JzogJ1RoaXMgbGlicmFyeSBicmluZ3MgdGhlIHVwZGF0ZWQgY29uZmlncGFyc2VyIGZyb20gUHl0aG9uIDMuMisgdG8gUHl0aG9uIDIuNi0yLjcuJywKLSAgICAgICAgICAgICAgICAgICAgICAndmVyc2lvbic6ICczLjIuMHIzJ30sCi0gICAgICAgICAgICd1cmxzJzogW3suLi59XX0sCi0gICAnaGVhZGVycyc6IFsoJ0RhdGUnLCAnU2F0LCAxNCBNYXkgMjAxMSAxMjo0ODo1MiBHTVQnKSwKLSAgICAgICAgICAgICAgICgnU2VydmVyJywgJ0FwYWNoZS8yLjIuMTYgKERlYmlhbiknKSwKLSAgICAgICAgICAgICAgICgnQ29udGVudC1EaXNwb3NpdGlvbicsICdpbmxpbmUnKSwKLSAgICAgICAgICAgICAgICgnQ29ubmVjdGlvbicsICdjbG9zZScpLAotICAgICAgICAgICAgICAgKCdUcmFuc2Zlci1FbmNvZGluZycsICdjaHVua2VkJyksCi0gICAgICAgICAgICAgICAoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PSJVVEYtOCInKV19CisgICA+Pj4gcHByaW50LnBwcmludChwcm9qZWN0X2luZm8sIGRlcHRoPTIpCisgICB7J2luZm8nOiB7J19weXBpX2hpZGRlbic6IEZhbHNlLAorICAgICAgICAgICAgICdfcHlwaV9vcmRlcmluZyc6IDEyNSwKKyAgICAgICAgICAgICAnYXV0aG9yJzogJ0dseXBoIExlZmtvd2l0eicsCisgICAgICAgICAgICAgJ2F1dGhvcl9lbWFpbCc6ICdnbHlwaEB0d2lzdGVkbWF0cml4LmNvbScsCisgICAgICAgICAgICAgJ2J1Z3RyYWNrX3VybCc6ICcnLAorICAgICAgICAgICAgICdjaGVlc2VjYWtlX2NvZGVfa3dhbGl0ZWVfaWQnOiBOb25lLAorICAgICAgICAgICAgICdjaGVlc2VjYWtlX2RvY3VtZW50YXRpb25faWQnOiBOb25lLAorICAgICAgICAgICAgICdjaGVlc2VjYWtlX2luc3RhbGxhYmlsaXR5X2lkJzogTm9uZSwKKyAgICAgICAgICAgICAnY2xhc3NpZmllcnMnOiBbLi4uXSwKKyAgICAgICAgICAgICAnZGVzY3JpcHRpb24nOiAnQW4gZXh0ZW5zaWJsZSBmcmFtZXdvcmsgZm9yIFB5dGhvbiBwcm9ncmFtbWluZywgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aXRoIHNwZWNpYWwgZm9jdXNcclxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvbiBldmVudC1iYXNlZCBuZXR3b3JrIHByb2dyYW1taW5nIGFuZCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ211bHRpcHJvdG9jb2wgaW50ZWdyYXRpb24uJywKKyAgICAgICAgICAgICAnZG9jc191cmwnOiAnJywKKyAgICAgICAgICAgICAnZG93bmxvYWRfdXJsJzogJ1VOS05PV04nLAorICAgICAgICAgICAgICdob21lX3BhZ2UnOiAnaHR0cDovL3R3aXN0ZWRtYXRyaXguY29tLycsCisgICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCisgICAgICAgICAgICAgJ2xpY2Vuc2UnOiAnTUlUJywKKyAgICAgICAgICAgICAnbWFpbnRhaW5lcic6ICcnLAorICAgICAgICAgICAgICdtYWludGFpbmVyX2VtYWlsJzogJycsCisgICAgICAgICAgICAgJ25hbWUnOiAnVHdpc3RlZCcsCisgICAgICAgICAgICAgJ3BhY2thZ2VfdXJsJzogJ2h0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9Ud2lzdGVkJywKKyAgICAgICAgICAgICAncGxhdGZvcm0nOiAnVU5LTk9XTicsCisgICAgICAgICAgICAgJ3JlbGVhc2VfdXJsJzogJ2h0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9Ud2lzdGVkLzEyLjMuMCcsCisgICAgICAgICAgICAgJ3JlcXVpcmVzX3B5dGhvbic6IE5vbmUsCisgICAgICAgICAgICAgJ3N0YWJsZV92ZXJzaW9uJzogTm9uZSwKKyAgICAgICAgICAgICAnc3VtbWFyeSc6ICdBbiBhc3luY2hyb25vdXMgbmV0d29ya2luZyBmcmFtZXdvcmsgd3JpdHRlbiBpbiBQeXRob24nLAorICAgICAgICAgICAgICd2ZXJzaW9uJzogJzEyLjMuMCd9LAorICAgICd1cmxzJzogW3suLi59LCB7Li4ufV19CiAKLUFkZGl0aW9uYWxseSwgbWF4aW11bSAqd2lkdGgqIGNhbiBiZSBzdWdnZXN0ZWQuIElmIGEgbG9uZyBvYmplY3QgY2Fubm90IGJlCi1zcGxpdCwgdGhlIHNwZWNpZmllZCB3aWR0aCB3aWxsIGJlIGV4Y2VlZGVkOjoKK0FkZGl0aW9uYWxseSwgbWF4aW11bSBjaGFyYWN0ZXIgKndpZHRoKiBjYW4gYmUgc3VnZ2VzdGVkLiBJZiBhIGxvbmcgb2JqZWN0CitjYW5ub3QgYmUgc3BsaXQsIHRoZSBzcGVjaWZpZWQgd2lkdGggd2lsbCBiZSBleGNlZWRlZDo6CiAKLSAgID4+PiBwcHJpbnQucHByaW50KHJlc3VsdFsnaGVhZGVycyddLCB3aWR0aD0zMCkKLSAgIFsoJ0RhdGUnLAotICAgICAnU2F0LCAxNCBNYXkgMjAxMSAxMjo0ODo1MiBHTVQnKSwKLSAgICAoJ1NlcnZlcicsCi0gICAgICdBcGFjaGUvMi4yLjE2IChEZWJpYW4pJyksCi0gICAgKCdDb250ZW50LURpc3Bvc2l0aW9uJywKLSAgICAgJ2lubGluZScpLAotICAgICgnQ29ubmVjdGlvbicsICdjbG9zZScpLAotICAgICgnVHJhbnNmZXItRW5jb2RpbmcnLAotICAgICAnY2h1bmtlZCcpLAotICAgICgnQ29udGVudC1UeXBlJywKLSAgICAgJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9IlVURi04IicpXQorICAgPj4+IHBwcmludC5wcHJpbnQocHJvamVjdF9pbmZvLCBkZXB0aD0yLCB3aWR0aD01MCkKKyAgIHsnaW5mbyc6IHsnX3B5cGlfaGlkZGVuJzogRmFsc2UsCisgICAgICAgICAgICAgJ19weXBpX29yZGVyaW5nJzogMTI1LAorICAgICAgICAgICAgICdhdXRob3InOiAnR2x5cGggTGVma293aXR6JywKKyAgICAgICAgICAgICAnYXV0aG9yX2VtYWlsJzogJ2dseXBoQHR3aXN0ZWRtYXRyaXguY29tJywKKyAgICAgICAgICAgICAnYnVndHJhY2tfdXJsJzogJycsCisgICAgICAgICAgICAgJ2NoZWVzZWNha2VfY29kZV9rd2FsaXRlZV9pZCc6IE5vbmUsCisgICAgICAgICAgICAgJ2NoZWVzZWNha2VfZG9jdW1lbnRhdGlvbl9pZCc6IE5vbmUsCisgICAgICAgICAgICAgJ2NoZWVzZWNha2VfaW5zdGFsbGFiaWxpdHlfaWQnOiBOb25lLAorICAgICAgICAgICAgICdjbGFzc2lmaWVycyc6IFsuLi5dLAorICAgICAgICAgICAgICdkZXNjcmlwdGlvbic6ICdBbiBleHRlbnNpYmxlICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZnJhbWV3b3JrIGZvciAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1B5dGhvbiBwcm9ncmFtbWluZywgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aXRoIHNwZWNpYWwgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb2N1c1xyXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29uIGV2ZW50LWJhc2VkICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV0d29yayBwcm9ncmFtbWluZyAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FuZCBtdWx0aXByb3RvY29sICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZWdyYXRpb24uJywKKyAgICAgICAgICAgICAnZG9jc191cmwnOiAnJywKKyAgICAgICAgICAgICAnZG93bmxvYWRfdXJsJzogJ1VOS05PV04nLAorICAgICAgICAgICAgICdob21lX3BhZ2UnOiAnaHR0cDovL3R3aXN0ZWRtYXRyaXguY29tLycsCisgICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCisgICAgICAgICAgICAgJ2xpY2Vuc2UnOiAnTUlUJywKKyAgICAgICAgICAgICAnbWFpbnRhaW5lcic6ICcnLAorICAgICAgICAgICAgICdtYWludGFpbmVyX2VtYWlsJzogJycsCisgICAgICAgICAgICAgJ25hbWUnOiAnVHdpc3RlZCcsCisgICAgICAgICAgICAgJ3BhY2thZ2VfdXJsJzogJ2h0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9Ud2lzdGVkJywKKyAgICAgICAgICAgICAncGxhdGZvcm0nOiAnVU5LTk9XTicsCisgICAgICAgICAgICAgJ3JlbGVhc2VfdXJsJzogJ2h0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9Ud2lzdGVkLzEyLjMuMCcsCisgICAgICAgICAgICAgJ3JlcXVpcmVzX3B5dGhvbic6IE5vbmUsCisgICAgICAgICAgICAgJ3N0YWJsZV92ZXJzaW9uJzogTm9uZSwKKyAgICAgICAgICAgICAnc3VtbWFyeSc6ICdBbiBhc3luY2hyb25vdXMgJworICAgICAgICAgICAgICAgICAgICAgICAgJ25ldHdvcmtpbmcgZnJhbWV3b3JrICcKKyAgICAgICAgICAgICAgICAgICAgICAgICd3cml0dGVuIGluIFB5dGhvbicsCisgICAgICAgICAgICAgJ3ZlcnNpb24nOiAnMTIuMy4wJ30sCisgICAgJ3VybHMnOiBbey4uLn0sIHsuLi59XX0KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3B0eS5yc3QgYi9Eb2MvbGlicmFyeS9wdHkucnN0CmluZGV4IDJiOTM4NWIuLjkwYmFlYzUgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3B0eS5yc3QKKysrIGIvRG9jL2xpYnJhcnkvcHR5LnJzdApAQCAtNDUsNiArNDUsOSBAQAogICAgYSBmaWxlIGRlc2NyaXB0b3IuIFRoZSBkZWZhdWx0cyB0cnkgdG8gcmVhZCAxMDI0IGJ5dGVzIGVhY2ggdGltZSB0aGV5IGFyZQogICAgY2FsbGVkLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgOmZ1bmM6YHNwYXduYCBub3cgcmV0dXJucyB0aGUgc3RhdHVzIHZhbHVlIGZyb20gOmZ1bmM6YG9zLndhaXRwaWRgCisgICAgICBvbiB0aGUgY2hpbGQgcHJvY2Vzcy4KIAogRXhhbXBsZQogLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvcHlfY29tcGlsZS5yc3QgYi9Eb2MvbGlicmFyeS9weV9jb21waWxlLnJzdAppbmRleCAwN2RkYzI1Li4wYzhjOTlkIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9weV9jb21waWxlLnJzdAorKysgYi9Eb2MvbGlicmFyeS9weV9jb21waWxlLnJzdApAQCAtMjgsNyArMjgsNyBAQAogCiAuLiBmdW5jdGlvbjo6IGNvbXBpbGUoZmlsZSwgY2ZpbGU9Tm9uZSwgZGZpbGU9Tm9uZSwgZG9yYWlzZT1GYWxzZSwgb3B0aW1pemU9LTEpCiAKLSAgIENvbXBpbGUgYSBzb3VyY2UgZmlsZSB0byBieXRlLWNvZGUgYW5kIHdyaXRlIG91dCB0aGUgYnl0ZS1jb2RlIGNhY2hlICBmaWxlLgorICAgQ29tcGlsZSBhIHNvdXJjZSBmaWxlIHRvIGJ5dGUtY29kZSBhbmQgd3JpdGUgb3V0IHRoZSBieXRlLWNvZGUgY2FjaGUgZmlsZS4KICAgIFRoZSBzb3VyY2UgY29kZSBpcyBsb2FkZWQgZnJvbSB0aGUgZmlsZSBuYW1lICpmaWxlKi4gIFRoZSAgYnl0ZS1jb2RlIGlzCiAgICB3cml0dGVuIHRvICpjZmlsZSosIHdoaWNoIGRlZmF1bHRzIHRvIHRoZSA6UEVQOmAzMTQ3YCBwYXRoLCBlbmRpbmcgaW4KICAgIGBgLnB5Y2BgIChgYC5weW9gYCBpZiBvcHRpbWl6YXRpb24gaXMgZW5hYmxlZCBpbiB0aGUgY3VycmVudCBpbnRlcnByZXRlcikuCkBAIC01MCw2ICs1MCwxMSBAQAogICAgICAgZGVmYXVsdCB3YXMgKmZpbGUqICsgYGAnYydgYCAoYGAnbydgYCBpZiBvcHRpbWl6YXRpb24gd2FzIGVuYWJsZWQpLgogICAgICAgQWxzbyBhZGRlZCB0aGUgKm9wdGltaXplKiBwYXJhbWV0ZXIuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICBDaGFuZ2VkIGNvZGUgdG8gdXNlIDptb2Q6YGltcG9ydGxpYmAgZm9yIHRoZSBieXRlLWNvZGUgY2FjaGUgZmlsZSB3cml0aW5nLgorICAgICAgVGhpcyBtZWFucyBmaWxlIGNyZWF0aW9uL3dyaXRpbmcgc2VtYW50aWNzIG5vdyBtYXRjaCB3aGF0IDptb2Q6YGltcG9ydGxpYmAKKyAgICAgIGRvZXMsIGUuZy4gcGVybWlzc2lvbnMsIHdyaXRlLWFuZC1tb3ZlIHNlbWFudGljcywgZXRjLgorCiAKIC4uIGZ1bmN0aW9uOjogbWFpbihhcmdzPU5vbmUpCiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3JlYWRsaW5lLnJzdCBiL0RvYy9saWJyYXJ5L3JlYWRsaW5lLnJzdAppbmRleCAxMTM0NjE5Li42OTIzMTBiIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9yZWFkbGluZS5yc3QKKysrIGIvRG9jL2xpYnJhcnkvcmVhZGxpbmUucnN0CkBAIC0xOTAsMjggKzE5MCwzMiBAQAogCiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgZGVtb25zdHJhdGVzIGhvdyB0byB1c2UgdGhlIDptb2Q6YHJlYWRsaW5lYCBtb2R1bGUncwogaGlzdG9yeSByZWFkaW5nIGFuZCB3cml0aW5nIGZ1bmN0aW9ucyB0byBhdXRvbWF0aWNhbGx5IGxvYWQgYW5kIHNhdmUgYSBoaXN0b3J5Ci1maWxlIG5hbWVkIDpmaWxlOmAucHloaXN0YCBmcm9tIHRoZSB1c2VyJ3MgaG9tZSBkaXJlY3RvcnkuICBUaGUgY29kZSBiZWxvdyB3b3VsZAotbm9ybWFsbHkgYmUgZXhlY3V0ZWQgYXV0b21hdGljYWxseSBkdXJpbmcgaW50ZXJhY3RpdmUgc2Vzc2lvbnMgZnJvbSB0aGUgdXNlcidzCi06ZW52dmFyOmBQWVRIT05TVEFSVFVQYCBmaWxlLiA6OgorZmlsZSBuYW1lZCA6ZmlsZTpgLnB5dGhvbl9oaXN0b3J5YCBmcm9tIHRoZSB1c2VyJ3MgaG9tZSBkaXJlY3RvcnkuICBUaGUgY29kZQorYmVsb3cgd291bGQgbm9ybWFsbHkgYmUgZXhlY3V0ZWQgYXV0b21hdGljYWxseSBkdXJpbmcgaW50ZXJhY3RpdmUgc2Vzc2lvbnMKK2Zyb20gdGhlIHVzZXIncyA6ZW52dmFyOmBQWVRIT05TVEFSVFVQYCBmaWxlLiA6OgogCisgICBpbXBvcnQgYXRleGl0CiAgICBpbXBvcnQgb3MKICAgIGltcG9ydCByZWFkbGluZQotICAgaGlzdGZpbGUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5leHBhbmR1c2VyKCJ+IiksICIucHloaXN0IikKKworICAgaGlzdGZpbGUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5leHBhbmR1c2VyKCJ+IiksICIucHl0aG9uX2hpc3RvcnkiKQogICAgdHJ5OgogICAgICAgIHJlYWRsaW5lLnJlYWRfaGlzdG9yeV9maWxlKGhpc3RmaWxlKQogICAgZXhjZXB0IEZpbGVOb3RGb3VuZEVycm9yOgogICAgICAgIHBhc3MKLSAgIGltcG9ydCBhdGV4aXQKKwogICAgYXRleGl0LnJlZ2lzdGVyKHJlYWRsaW5lLndyaXRlX2hpc3RvcnlfZmlsZSwgaGlzdGZpbGUpCi0gICBkZWwgb3MsIGhpc3RmaWxlCisKK1RoaXMgY29kZSBpcyBhY3R1YWxseSBhdXRvbWF0aWNhbGx5IHJ1biB3aGVuIFB5dGhvbiBpcyBydW4gaW4KKzpyZWY6YGludGVyYWN0aXZlIG1vZGUgPHR1dC1pbnRlcmFjdGl2ZT5gIChzZWUgOnJlZjpgcmxjb21wbGV0ZXItY29uZmlnYCkuCiAKIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBleHRlbmRzIHRoZSA6Y2xhc3M6YGNvZGUuSW50ZXJhY3RpdmVDb25zb2xlYCBjbGFzcyB0bwogc3VwcG9ydCBoaXN0b3J5IHNhdmUvcmVzdG9yZS4gOjoKIAotICAgaW1wb3J0IGNvZGUKLSAgIGltcG9ydCByZWFkbGluZQogICAgaW1wb3J0IGF0ZXhpdAorICAgaW1wb3J0IGNvZGUKICAgIGltcG9ydCBvcworICAgaW1wb3J0IHJlYWRsaW5lCiAKICAgIGNsYXNzIEhpc3RvcnlDb25zb2xlKGNvZGUuSW50ZXJhY3RpdmVDb25zb2xlKToKICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9jYWxzPU5vbmUsIGZpbGVuYW1lPSI8Y29uc29sZT4iLApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvcmxjb21wbGV0ZXIucnN0IGIvRG9jL2xpYnJhcnkvcmxjb21wbGV0ZXIucnN0CmluZGV4IDYzMzA4OGQuLjllZDAxYzcgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3JsY29tcGxldGVyLnJzdAorKysgYi9Eb2MvbGlicmFyeS9ybGNvbXBsZXRlci5yc3QKQEAgLTI3LDE4ICsyNywxMCBAQAogICAgcmVhZGxpbmUuX19uYW1lX18gICAgICAgICByZWFkbGluZS5wYXJzZV9hbmRfYmluZCgKICAgID4+PiByZWFkbGluZS4KIAotVGhlIDptb2Q6YHJsY29tcGxldGVyYCBtb2R1bGUgaXMgZGVzaWduZWQgZm9yIHVzZSB3aXRoIFB5dGhvbidzIGludGVyYWN0aXZlCi1tb2RlLiAgQSB1c2VyIGNhbiBhZGQgdGhlIGZvbGxvd2luZyBsaW5lcyB0byBoaXMgb3IgaGVyIGluaXRpYWxpemF0aW9uIGZpbGUKLShpZGVudGlmaWVkIGJ5IHRoZSA6ZW52dmFyOmBQWVRIT05TVEFSVFVQYCBlbnZpcm9ubWVudCB2YXJpYWJsZSkgdG8gZ2V0Ci1hdXRvbWF0aWMgOmtiZDpgVGFiYCBjb21wbGV0aW9uOjoKLQotICAgdHJ5OgotICAgICAgIGltcG9ydCByZWFkbGluZQotICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgIHByaW50KCJNb2R1bGUgcmVhZGxpbmUgbm90IGF2YWlsYWJsZS4iKQotICAgZWxzZToKLSAgICAgICBpbXBvcnQgcmxjb21wbGV0ZXIKLSAgICAgICByZWFkbGluZS5wYXJzZV9hbmRfYmluZCgidGFiOiBjb21wbGV0ZSIpCitUaGUgOm1vZDpgcmxjb21wbGV0ZXJgIG1vZHVsZSBpcyBkZXNpZ25lZCBmb3IgdXNlIHdpdGggUHl0aG9uJ3MKKzpyZWY6YGludGVyYWN0aXZlIG1vZGUgPHR1dC1pbnRlcmFjdGl2ZT5gLiAgVW5sZXNzIFB5dGhvbiBpcyBydW4gd2l0aCB0aGUKKzpvcHRpb246YC1TYCBvcHRpb24sIHRoZSBtb2R1bGUgaXMgYXV0b21hdGljYWxseSBpbXBvcnRlZCBhbmQgY29uZmlndXJlZAorKHNlZSA6cmVmOmBybGNvbXBsZXRlci1jb25maWdgKS4KIAogT24gcGxhdGZvcm1zIHdpdGhvdXQgOm1vZDpgcmVhZGxpbmVgLCB0aGUgOmNsYXNzOmBDb21wbGV0ZXJgIGNsYXNzIGRlZmluZWQgYnkKIHRoaXMgbW9kdWxlIGNhbiBzdGlsbCBiZSB1c2VkIGZvciBjdXN0b20gcHVycG9zZXMuCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9zZWxlY3QucnN0IGIvRG9jL2xpYnJhcnkvc2VsZWN0LnJzdAppbmRleCA0ZTYwZjRhLi5iNzNmMTFlIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9zZWxlY3QucnN0CisrKyBiL0RvYy9saWJyYXJ5L3NlbGVjdC5yc3QKQEAgLTQ3LDExICs0NywxNCBAQAogICAgdG8gOmNvbnN0OmBFUE9MTF9DTE9FWEVDYCwgd2hpY2ggY2F1c2VzIHRoZSBlcG9sbCBkZXNjcmlwdG9yIHRvIGJlIGNsb3NlZAogICAgYXV0b21hdGljYWxseSB3aGVuIDpmdW5jOmBvcy5leGVjdmVgIGlzIGNhbGxlZC4gU2VlIHNlY3Rpb24KICAgIDpyZWY6YGVwb2xsLW9iamVjdHNgIGJlbG93IGZvciB0aGUgbWV0aG9kcyBzdXBwb3J0ZWQgYnkgZXBvbGxpbmcgb2JqZWN0cy4KLQorICAgVGhleSBhbHNvIHN1cHBvcnQgdGhlIDprZXl3b3JkOmB3aXRoYCBzdGF0ZW1lbnQuCiAKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCiAgICAgICBBZGRlZCB0aGUgKmZsYWdzKiBwYXJhbWV0ZXIuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICBTdXBwb3J0IGZvciB0aGUgOmtleXdvcmQ6YHdpdGhgIHN0YXRlbWVudCB3YXMgYWRkZWQuCisKIAogLi4gZnVuY3Rpb246OiBwb2xsKCkKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvc2hlbHZlLnJzdCBiL0RvYy9saWJyYXJ5L3NoZWx2ZS5yc3QKaW5kZXggOWQ3ZDUwNC4uYjYwYTU0OCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc2hlbHZlLnJzdAorKysgYi9Eb2MvbGlicmFyeS9zaGVsdmUucnN0CkBAIC00NCw4ICs0NCwxMSBAQAogICAgLi4gbm90ZTo6CiAKICAgICAgIERvIG5vdCByZWx5IG9uIHRoZSBzaGVsZiBiZWluZyBjbG9zZWQgYXV0b21hdGljYWxseTsgYWx3YXlzIGNhbGwKLSAgICAgIDptZXRoOmBjbG9zZWAgZXhwbGljaXRseSB3aGVuIHlvdSBkb24ndCBuZWVkIGl0IGFueSBtb3JlLCBvciB1c2UgYQotICAgICAgOmtleXdvcmQ6YHdpdGhgIHN0YXRlbWVudCB3aXRoIDpmdW5jOmBjb250ZXh0bGliLmNsb3NpbmdgLgorICAgICAgOm1ldGg6YH5TaGVsZi5jbG9zZWAgZXhwbGljaXRseSB3aGVuIHlvdSBkb24ndCBuZWVkIGl0IGFueSBtb3JlLCBvcgorICAgICAgdXNlIDpmdW5jOmBzaGVsdmUub3BlbmAgYXMgYSBjb250ZXh0IG1hbmFnZXI6OgorCisgICAgICAgICAgd2l0aCBzaGVsdmUub3Blbignc3BhbScpIGFzIGRiOgorICAgICAgICAgICAgICBkYlsnZWdncyddID0gJ2VnZ3MnCiAKIC4uIHdhcm5pbmc6OgogCkBAIC0xMTgsMTAgKzEyMSwxNSBAQAogICAgVGhlICprZXllbmNvZGluZyogcGFyYW1ldGVyIGlzIHRoZSBlbmNvZGluZyB1c2VkIHRvIGVuY29kZSBrZXlzIGJlZm9yZSB0aGV5CiAgICBhcmUgdXNlZCB3aXRoIHRoZSB1bmRlcmx5aW5nIGRpY3QuCiAKLSAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgotICAgICAgVGhlICprZXllbmNvZGluZyogcGFyYW1ldGVyOyBwcmV2aW91c2x5LCBrZXlzIHdlcmUgYWx3YXlzIGVuY29kZWQgaW4KKyAgIDpjbGFzczpgU2hlbGZgIG9iamVjdHMgY2FuIGFsc28gYmUgdXNlZCBhcyBjb250ZXh0IG1hbmFnZXJzLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMgorICAgICAgQWRkZWQgdGhlICprZXllbmNvZGluZyogcGFyYW1ldGVyOyBwcmV2aW91c2x5LCBrZXlzIHdlcmUgYWx3YXlzIGVuY29kZWQgaW4KICAgICAgIFVURi04LgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgQWRkZWQgY29udGV4dCBtYW5hZ2VyIHN1cHBvcnQuCisKIAogLi4gY2xhc3M6OiBCc2REYlNoZWxmKGRpY3QsIHByb3RvY29sPU5vbmUsIHdyaXRlYmFjaz1GYWxzZSwga2V5ZW5jb2Rpbmc9J3V0Zi04JykKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvc2h1dGlsLnJzdCBiL0RvYy9saWJyYXJ5L3NodXRpbC5yc3QKaW5kZXggYTE0NTdkMC4uZTRmMzQ4YyAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc2h1dGlsLnJzdAorKysgYi9Eb2MvbGlicmFyeS9zaHV0aWwucnN0CkBAIC01Myw3ICs1Myw3IEBACiAgICAqZHN0KiBhbmQgcmV0dXJuICpkc3QqLiAgKnNyYyogYW5kICpkc3QqIGFyZSBwYXRoIG5hbWVzIGdpdmVuIGFzIHN0cmluZ3MuCiAgICAqZHN0KiBtdXN0IGJlIHRoZSBjb21wbGV0ZSB0YXJnZXQgZmlsZSBuYW1lOyBsb29rIGF0IDpmdW5jOmBzaHV0aWwuY29weWAKICAgIGZvciBhIGNvcHkgdGhhdCBhY2NlcHRzIGEgdGFyZ2V0IGRpcmVjdG9yeSBwYXRoLiAgSWYgKnNyYyogYW5kICpkc3QqCi0gICBzcGVjaWZ5IHRoZSBzYW1lIGZpbGUsIDpleGM6YEVycm9yYCBpcyByYWlzZWQuCisgICBzcGVjaWZ5IHRoZSBzYW1lIGZpbGUsIDpleGM6YFNhbWVGaWxlRXJyb3JgIGlzIHJhaXNlZC4KIAogICAgVGhlIGRlc3RpbmF0aW9uIGxvY2F0aW9uIG11c3QgYmUgd3JpdGFibGU7IG90aGVyd2lzZSwgYW4gOmV4YzpgT1NFcnJvcmAKICAgIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZC4gSWYgKmRzdCogYWxyZWFkeSBleGlzdHMsIGl0IHdpbGwgYmUgcmVwbGFjZWQuCkBAIC02OSw2ICs2OSwxOSBAQAogICAgICAgQWRkZWQgKmZvbGxvd19zeW1saW5rcyogYXJndW1lbnQuCiAgICAgICBOb3cgcmV0dXJucyAqZHN0Ki4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgIFJhaXNlIDpleGM6YFNhbWVGaWxlRXJyb3JgIGluc3RlYWQgb2YgOmV4YzpgRXJyb3JgLiAgU2luY2UgdGhlIGZvcm1lciBpcworICAgICAgYSBzdWJjbGFzcyBvZiB0aGUgbGF0dGVyLCB0aGlzIGNoYW5nZSBpcyBiYWNrd2FyZCBjb21wYXRpYmxlLgorCisKKy4uIGV4Y2VwdGlvbjo6IFNhbWVGaWxlRXJyb3IKKworICAgVGhpcyBleGNlcHRpb24gaXMgcmFpc2VkIGlmIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gaW4gOmZ1bmM6YGNvcHlmaWxlYAorICAgYXJlIHRoZSBzYW1lIGZpbGUuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCisKIC4uIGZ1bmN0aW9uOjogY29weW1vZGUoc3JjLCBkc3QsICosIGZvbGxvd19zeW1saW5rcz1UcnVlKQogCiAgICBDb3B5IHRoZSBwZXJtaXNzaW9uIGJpdHMgZnJvbSAqc3JjKiB0byAqZHN0Ki4gIFRoZSBmaWxlIGNvbnRlbnRzLCBvd25lciwgYW5kCkBAIC0zODAsMTEgKzM5MywxMCBAQAogICAgICAgICAgICAgICAgZXJyb3JzLmV4dGVuZChlcnIuYXJnc1swXSkKICAgICAgICB0cnk6CiAgICAgICAgICAgIGNvcHlzdGF0KHNyYywgZHN0KQotICAgICAgIGV4Y2VwdCBXaW5kb3dzRXJyb3I6Ci0gICAgICAgICAgICMgY2FuJ3QgY29weSBmaWxlIGFjY2VzcyB0aW1lcyBvbiBXaW5kb3dzCi0gICAgICAgICAgIHBhc3MKICAgICAgICBleGNlcHQgT1NFcnJvciBhcyB3aHk6Ci0gICAgICAgICAgIGVycm9ycy5leHRlbmQoKHNyYywgZHN0LCBzdHIod2h5KSkpCisgICAgICAgICAgICMgY2FuJ3QgY29weSBmaWxlIGFjY2VzcyB0aW1lcyBvbiBXaW5kb3dzCisgICAgICAgICAgIGlmIHdoeS53aW5lcnJvciBpcyBOb25lOgorICAgICAgICAgICAgICAgZXJyb3JzLmV4dGVuZCgoc3JjLCBkc3QsIHN0cih3aHkpKSkKICAgICAgICBpZiBlcnJvcnM6CiAgICAgICAgICAgIHJhaXNlIEVycm9yKGVycm9ycykKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvc2l0ZS5yc3QgYi9Eb2MvbGlicmFyeS9zaXRlLnJzdAppbmRleCAzNmI4MGMzLi4yMTc1YzNlIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9zaXRlLnJzdAorKysgYi9Eb2MvbGlicmFyeS9zaXRlLnJzdApAQCAtMTExLDYgKzExMSwyMyBAQAogOm1vZDpgc2l0ZWN1c3RvbWl6ZWAgYW5kIDptb2Q6YHVzZXJjdXN0b21pemVgIGlzIHN0aWxsIGF0dGVtcHRlZC4KIAogCisuLiBfcmxjb21wbGV0ZXItY29uZmlnOgorCitSZWFkbGluZSBjb25maWd1cmF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK09uIHN5c3RlbXMgdGhhdCBzdXBwb3J0IDptb2Q6YHJlYWRsaW5lYCwgdGhpcyBtb2R1bGUgd2lsbCBhbHNvIGltcG9ydCBhbmQKK2NvbmZpZ3VyZSB0aGUgOm1vZDpgcmxjb21wbGV0ZXJgIG1vZHVsZSwgaWYgUHl0aG9uIGlzIHN0YXJ0ZWQgaW4KKzpyZWY6YGludGVyYWN0aXZlIG1vZGUgPHR1dC1pbnRlcmFjdGl2ZT5gIGFuZCB3aXRob3V0IHRoZSA6b3B0aW9uOmAtU2Agb3B0aW9uLgorVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgZW5hYmxlIHRhYi1jb21wbGV0aW9uIGFuZCB0byB1c2UKKzpmaWxlOmB+Ly5weXRob25faGlzdG9yeWAgYXMgdGhlIGhpc3Rvcnkgc2F2ZSBmaWxlLiAgVG8gZGlzYWJsZSBpdCwgb3ZlcnJpZGUKK3RoZSA6ZGF0YTpgc3lzLl9faW50ZXJhY3RpdmVob29rX19gIGF0dHJpYnV0ZSBpbiB5b3VyIDptb2Q6YHNpdGVjdXN0b21pemVgCitvciA6bW9kOmB1c2VyY3VzdG9taXplYCBtb2R1bGUgb3IgeW91ciA6ZW52dmFyOmBQWVRIT05TVEFSVFVQYCBmaWxlLgorCisKK01vZHVsZSBjb250ZW50cworLS0tLS0tLS0tLS0tLS0tCisKIC4uIGRhdGE6OiBQUkVGSVhFUwogCiAgICBBIGxpc3Qgb2YgcHJlZml4ZXMgZm9yIHNpdGUtcGFja2FnZXMgZGlyZWN0b3JpZXMuCkBAIC0xNTMsOCArMTcwLDcgQEAKIAogICAgQWRkcyBhbGwgdGhlIHN0YW5kYXJkIHNpdGUtc3BlY2lmaWMgZGlyZWN0b3JpZXMgdG8gdGhlIG1vZHVsZSBzZWFyY2gKICAgIHBhdGguICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4gdGhpcyBtb2R1bGUgaXMgaW1wb3J0ZWQsCi0gICB1bmxlc3MgdGhlIDpwcm9ncmFtOmBweXRob25gIGludGVycHJldGVyIHdhcyBzdGFydGVkIHdpdGggdGhlIDpvcHRpb246YC1TYAotICAgZmxhZy4KKyAgIHVubGVzcyB0aGUgUHl0aG9uIGludGVycHJldGVyIHdhcyBzdGFydGVkIHdpdGggdGhlIDpvcHRpb246YC1TYCBmbGFnLgogCiAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMwogICAgICAgVGhpcyBmdW5jdGlvbiB1c2VkIHRvIGJlIGNhbGxlZCB1bmNvbmRpdGlvbm5hbGx5LgpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvc210cGQucnN0IGIvRG9jL2xpYnJhcnkvc210cGQucnN0CmluZGV4IDJjYTcxZmYuLjJjMmRmOGEgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3NtdHBkLnJzdAorKysgYi9Eb2MvbGlicmFyeS9zbXRwZC5yc3QKQEAgLTI3LDcgKzI3LDggQEAKIC0tLS0tLS0tLS0tLS0tLS0tLQogCiAKLS4uIGNsYXNzOjogU01UUFNlcnZlcihsb2NhbGFkZHIsIHJlbW90ZWFkZHIsIGRhdGFfc2l6ZV9saW1pdD0zMzU1NDQzMikKKy4uIGNsYXNzOjogU01UUFNlcnZlcihsb2NhbGFkZHIsIHJlbW90ZWFkZHIsIGRhdGFfc2l6ZV9saW1pdD0zMzU1NDQzMiwKKyAgICAgICAgICAgICAgICAgICAgICBtYXA9Tm9uZSkKIAogICAgQ3JlYXRlIGEgbmV3IDpjbGFzczpgU01UUFNlcnZlcmAgb2JqZWN0LCB3aGljaCBiaW5kcyB0byBsb2NhbCBhZGRyZXNzCiAgICAqbG9jYWxhZGRyKi4gIEl0IHdpbGwgdHJlYXQgKnJlbW90ZWFkZHIqIGFzIGFuIHVwc3RyZWFtIFNNVFAgcmVsYXllci4gIEl0CkBAIC0zOCw2ICszOSw4IEBACiAgICBhY2NlcHRlZCBpbiBhIGBgREFUQWBgIGNvbW1hbmQuICBBIHZhbHVlIG9mIGBgTm9uZWBgIG9yIGBgMGBgIG1lYW5zIG5vCiAgICBsaW1pdC4KIAorICAgQSBkaWN0aW9uYXJ5IGNhbiBiZSBzcGVjaWZpZWQgaW4gKm1hcCogdG8gYXZvaWQgdXNpbmcgYSBnbG9iYWwgc29ja2V0IG1hcC4KKwogICAgLi4gbWV0aG9kOjogcHJvY2Vzc19tZXNzYWdlKHBlZXIsIG1haWxmcm9tLCByY3B0dG9zLCBkYXRhKQogCiAgICAgICBSYWlzZSA6ZXhjOmBOb3RJbXBsZW1lbnRlZEVycm9yYCBleGNlcHRpb24uIE92ZXJyaWRlIHRoaXMgaW4gc3ViY2xhc3NlcyB0bwpAQCAtNTMsNiArNTYsOSBAQAogICAgICAgT3ZlcnJpZGUgdGhpcyBpbiBzdWJjbGFzc2VzIHRvIHVzZSBhIGN1c3RvbSA6Y2xhc3M6YFNNVFBDaGFubmVsYCBmb3IKICAgICAgIG1hbmFnaW5nIFNNVFAgY2xpZW50cy4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgIFRoZSAqbWFwKiBhcmd1bWVudCB3YXMgYWRkZWQuCisKIAogRGVidWdnaW5nU2VydmVyIE9iamVjdHMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC05MCwxMSArOTYsMjAgQEAKIFNNVFBDaGFubmVsIE9iamVjdHMKIC0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLi4gY2xhc3M6OiBTTVRQQ2hhbm5lbChzZXJ2ZXIsIGNvbm4sIGFkZHIpCisuLiBjbGFzczo6IFNNVFBDaGFubmVsKHNlcnZlciwgY29ubiwgYWRkciwgZGF0YV9zaXplX2xpbWl0PTMzNTU0NDMyLAorICAgICAgICAgICAgICAgICAgICAgICBtYXA9Tm9uZSkpCiAKICAgIENyZWF0ZSBhIG5ldyA6Y2xhc3M6YFNNVFBDaGFubmVsYCBvYmplY3Qgd2hpY2ggbWFuYWdlcyB0aGUgY29tbXVuaWNhdGlvbgogICAgYmV0d2VlbiB0aGUgc2VydmVyIGFuZCBhIHNpbmdsZSBTTVRQIGNsaWVudC4KIAorICAgKmNvbm4qIGFuZCAqYWRkciogYXJlIGFzIHBlciB0aGUgaW5zdGFuY2UgdmFyaWFibGVzIGRlc2NyaWJlZCBiZWxvdy4KKworICAgKmRhdGFfc2l6ZV9saW1pdCogc3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyB0aGF0IHdpbGwgYmUKKyAgIGFjY2VwdGVkIGluIGEgYGBEQVRBYGAgY29tbWFuZC4gIEEgdmFsdWUgb2YgYGBOb25lYGAgb3IgYGAwYGAgbWVhbnMgbm8KKyAgIGxpbWl0LgorCisgICBBIGRpY3Rpb25hcnkgY2FuIGJlIHNwZWNpZmllZCBpbiAqbWFwKiB0byBhdm9pZCB1c2luZyBhIGdsb2JhbCBzb2NrZXQgbWFwLgorCiAgICBUbyB1c2UgYSBjdXN0b20gU01UUENoYW5uZWwgaW1wbGVtZW50YXRpb24geW91IG5lZWQgdG8gb3ZlcnJpZGUgdGhlCiAgICA6YXR0cjpgU01UUFNlcnZlci5jaGFubmVsX2NsYXNzYCBvZiB5b3VyIDpjbGFzczpgU01UUFNlcnZlcmAuCiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3NtdHBsaWIucnN0IGIvRG9jL2xpYnJhcnkvc210cGxpYi5yc3QKaW5kZXggOTU5M2RlYS4uNTc2MmJiNiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc210cGxpYi5yc3QKKysrIGIvRG9jL2xpYnJhcnkvc210cGxpYi5yc3QKQEAgLTEwMyw4ICsxMDMsOCBAQAogCiAuLiBleGNlcHRpb246OiBTTVRQRXhjZXB0aW9uCiAKLSAgIFRoZSBiYXNlIGV4Y2VwdGlvbiBjbGFzcyBmb3IgYWxsIHRoZSBvdGhlciBleGNwZXRpb25zIHByb3ZpZGVkIGJ5IHRoaXMKLSAgIG1vZHVsZS4KKyAgIFN1YmNsYXNzIG9mIDpleGM6YE9TRXJyb3JgIHRoYXQgaXMgdGhlIGJhc2UgZXhjZXB0aW9uIGNsYXNzIGZvciBhbGwKKyAgIHRoZSBvdGhlciBleGNwZXRpb25zIHByb3ZpZGVkIGJ5IHRoaXMgbW9kdWxlLgogCiAKIC4uIGV4Y2VwdGlvbjo6IFNNVFBTZXJ2ZXJEaXNjb25uZWN0ZWQKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3NvY2tldC5yc3QgYi9Eb2MvbGlicmFyeS9zb2NrZXQucnN0CmluZGV4IGI0NDJiN2MuLmVkZDE5NmEgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3NvY2tldC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvc29ja2V0LnJzdApAQCAtMTA3LDggKzEwNyw4IEBACiAKICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCiAKLS0gQ2VydGFpbiBvdGhlciBhZGRyZXNzIGZhbWlsaWVzICg6Y29uc3Q6YEFGX0JMVUVUT09USGAsIDpjb25zdDpgQUZfUEFDS0VUYCkKLSAgc3VwcG9ydCBzcGVjaWZpYyByZXByZXNlbnRhdGlvbnMuCistIENlcnRhaW4gb3RoZXIgYWRkcmVzcyBmYW1pbGllcyAoOmNvbnN0OmBBRl9CTFVFVE9PVEhgLCA6Y29uc3Q6YEFGX1BBQ0tFVGAsCisgIDpjb25zdDpgQUZfQ0FOYCkgc3VwcG9ydCBzcGVjaWZpYyByZXByZXNlbnRhdGlvbnMuCiAKICAgLi4gWFhYIGRvY3VtZW50IHRoZW0hCiAKQEAgLTI1Nyw2ICsyNTcsMTYgQEAKIAogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCiAKKy4uIGRhdGE6OiBDQU5fQkNNCisgICAgICAgICAgQ0FOX0JDTV8qCisKKyAgIENBTl9CQ00sIGluIHRoZSBDQU4gcHJvdG9jb2wgZmFtaWx5LCBpcyB0aGUgYnJvYWRjYXN0IG1hbmFnZXIgKEJDTSkgcHJvdG9jb2wuCisgICBCcm9hZGNhc3QgbWFuYWdlciBjb25zdGFudHMsIGRvY3VtZW50ZWQgaW4gdGhlIExpbnV4IGRvY3VtZW50YXRpb24sIGFyZSBhbHNvCisgICBkZWZpbmVkIGluIHRoZSBzb2NrZXQgbW9kdWxlLgorCisgICBBdmFpbGFiaWxpdHk6IExpbnV4ID49IDIuNi4yNS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CiAKIC4uIGRhdGE6OiBBRl9SRFMKICAgICAgICAgICBQRl9SRFMKQEAgLTI4Myw2ICsyOTMsMTEgQEAKICAgIFRJUEMgcmVsYXRlZCBjb25zdGFudHMsIG1hdGNoaW5nIHRoZSBvbmVzIGV4cG9ydGVkIGJ5IHRoZSBDIHNvY2tldCBBUEkuIFNlZQogICAgdGhlIFRJUEMgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KIAorLi4gZGF0YTo6IEFGX0xJTksKKworICBBdmFpbGFiaWxpdHk6IEJTRCwgT1NYLgorCisgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAogCiAuLiBkYXRhOjogaGFzX2lwdjYKIApAQCAtNDUyLDEzICs0NjcsMTYgQEAKICAgIDpjb25zdDpgQUZfSU5FVDZgLCA6Y29uc3Q6YEFGX1VOSVhgLCA6Y29uc3Q6YEFGX0NBTmAgb3IgOmNvbnN0OmBBRl9SRFNgLiBUaGUKICAgIHNvY2tldCB0eXBlIHNob3VsZCBiZSA6Y29uc3Q6YFNPQ0tfU1RSRUFNYCAodGhlIGRlZmF1bHQpLAogICAgOmNvbnN0OmBTT0NLX0RHUkFNYCwgOmNvbnN0OmBTT0NLX1JBV2Agb3IgcGVyaGFwcyBvbmUgb2YgdGhlIG90aGVyIGBgU09DS19gYAotICAgY29uc3RhbnRzLiBUaGUgcHJvdG9jb2wgbnVtYmVyIGlzIHVzdWFsbHkgemVybyBhbmQgbWF5IGJlIG9taXR0ZWQgaW4gdGhhdAotICAgY2FzZSBvciA6Y29uc3Q6YENBTl9SQVdgIGluIGNhc2UgdGhlIGFkZHJlc3MgZmFtaWx5IGlzIDpjb25zdDpgQUZfQ0FOYC4KKyAgIGNvbnN0YW50cy4gVGhlIHByb3RvY29sIG51bWJlciBpcyB1c3VhbGx5IHplcm8gYW5kIG1heSBiZSBvbWl0dGVkIG9yIGluIHRoZQorICAgY2FzZSB3aGVyZSB0aGUgYWRkcmVzcyBmYW1pbHkgaXMgOmNvbnN0OmBBRl9DQU5gIHRoZSBwcm90b2NvbCBzaG91bGQgYmUgb25lCisgICBvZiA6Y29uc3Q6YENBTl9SQVdgIG9yIDpjb25zdDpgQ0FOX0JDTWAuCiAKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCiAgICAgICBUaGUgQUZfQ0FOIGZhbWlseSB3YXMgYWRkZWQuCiAgICAgICBUaGUgQUZfUkRTIGZhbWlseSB3YXMgYWRkZWQuCiAKKyAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgIFRoZSBDQU5fQkNNIHByb3RvY29sIHdhcyBhZGRlZC4KIAogLi4gZnVuY3Rpb246OiBzb2NrZXRwYWlyKFtmYW1pbHlbLCB0eXBlWywgcHJvdG9dXV0pCiAKQEAgLTEzMzEsNyArMTM0OSwxNiBAQAogICAgcy5pb2N0bChzb2NrZXQuU0lPX1JDVkFMTCwgc29ja2V0LlJDVkFMTF9PRkYpCiAKIFRoZSBsYXN0IGV4YW1wbGUgc2hvd3MgaG93IHRvIHVzZSB0aGUgc29ja2V0IGludGVyZmFjZSB0byBjb21tdW5pY2F0ZSB0byBhIENBTgotbmV0d29yay4gVGhpcyBleGFtcGxlIG1pZ2h0IHJlcXVpcmUgc3BlY2lhbCBwcml2aWxlZGdlOjoKK25ldHdvcmsgdXNpbmcgdGhlIHJhdyBzb2NrZXQgcHJvdG9jb2wuIFRvIHVzZSBDQU4gd2l0aCB0aGUgYnJvYWRjYXN0CittYW5hZ2VyIHByb3RvY29sIGluc3RlYWQsIG9wZW4gYSBzb2NrZXQgd2l0aDo6CisKKyAgICBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9DQU4sIHNvY2tldC5TT0NLX0RHUkFNLCBzb2NrZXQuQ0FOX0JDTSkKKworQWZ0ZXIgYmluZGluZyAoOmNvbnN0OmBDQU5fUkFXYCkgb3IgY29ubmVjdGluZyAoOmNvbnN0OmBDQU5fQkNNYCkgdGhlIHNvY2tldCwgeW91CitjYW4gdXNlIHRoZSA6bWV0aDpgc29ja2V0LnNlbmRgLCBhbmQgdGhlIDptZXRoOmBzb2NrZXQucmVjdmAgb3BlcmF0aW9ucyAoYW5kCit0aGVpciBjb3VudGVycGFydHMpIG9uIHRoZSBzb2NrZXQgb2JqZWN0IGFzIHVzdWFsLgorCitUaGlzIGV4YW1wbGUgbWlnaHQgcmVxdWlyZSBzcGVjaWFsIHByaXZpbGVkZ2U6OgogCiAgICBpbXBvcnQgc29ja2V0CiAgICBpbXBvcnQgc3RydWN0CmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9zcWxpdGUzLnJzdCBiL0RvYy9saWJyYXJ5L3NxbGl0ZTMucnN0CmluZGV4IDA4ZTNhMmUuLjUyOWRjOTQgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3NxbGl0ZTMucnN0CisrKyBiL0RvYy9saWJyYXJ5L3NxbGl0ZTMucnN0CkBAIC0xNTksNyArMTU5LDcgQEAKICAgIGZpcnN0IGJsYW5rIGZvciB0aGUgY29sdW1uIG5hbWU6IHRoZSBjb2x1bW4gbmFtZSB3b3VsZCBzaW1wbHkgYmUgIngiLgogCiAKLS4uIGZ1bmN0aW9uOjogY29ubmVjdChkYXRhYmFzZVssIHRpbWVvdXQsIGRldGVjdF90eXBlcywgaXNvbGF0aW9uX2xldmVsLCBjaGVja19zYW1lX3RocmVhZCwgZmFjdG9yeSwgY2FjaGVkX3N0YXRlbWVudHNdKQorLi4gZnVuY3Rpb246OiBjb25uZWN0KGRhdGFiYXNlWywgdGltZW91dCwgZGV0ZWN0X3R5cGVzLCBpc29sYXRpb25fbGV2ZWwsIGNoZWNrX3NhbWVfdGhyZWFkLCBmYWN0b3J5LCBjYWNoZWRfc3RhdGVtZW50cywgdXJpXSkKIAogICAgT3BlbnMgYSBjb25uZWN0aW9uIHRvIHRoZSBTUUxpdGUgZGF0YWJhc2UgZmlsZSAqZGF0YWJhc2UqLiBZb3UgY2FuIHVzZQogICAgYGAiOm1lbW9yeToiYGAgdG8gb3BlbiBhIGRhdGFiYXNlIGNvbm5lY3Rpb24gdG8gYSBkYXRhYmFzZSB0aGF0IHJlc2lkZXMgaW4gUkFNCkBAIC0xOTUsNiArMTk1LDE4IEBACiAgICBmb3IgdGhlIGNvbm5lY3Rpb24sIHlvdSBjYW4gc2V0IHRoZSAqY2FjaGVkX3N0YXRlbWVudHMqIHBhcmFtZXRlci4gVGhlIGN1cnJlbnRseQogICAgaW1wbGVtZW50ZWQgZGVmYXVsdCBpcyB0byBjYWNoZSAxMDAgc3RhdGVtZW50cy4KIAorICAgSWYgKnVyaSogaXMgdHJ1ZSwgKmRhdGFiYXNlKiBpcyBpbnRlcnByZXRlZCBhcyBhIFVSSS4gVGhpcyBhbGxvd3MgeW91CisgICB0byBzcGVjaWZ5IG9wdGlvbnMuIEZvciBleGFtcGxlLCB0byBvcGVuIGEgZGF0YWJhc2UgaW4gcmVhZC1vbmx5IG1vZGUKKyAgIHlvdSBjYW4gdXNlOjoKKworICAgICAgIGRiID0gc3FsaXRlMy5jb25uZWN0KCdmaWxlOnBhdGgvdG8vZGF0YWJhc2U/bW9kZT1ybycsIHVyaT1UcnVlKQorCisgICBNb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgZmVhdHVyZSwgaW5jbHVkaW5nIGEgbGlzdCBvZiByZWNvZ25pemVkIG9wdGlvbnMsIGNhbgorICAgYmUgZm91bmQgaW4gdGhlIGBTUUxpdGUgVVJJIGRvY3VtZW50YXRpb24gPGh0dHA6Ly93d3cuc3FsaXRlLm9yZy91cmkuaHRtbD5gXy4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgIEFkZGVkIHRoZSAqdXJpKiBwYXJhbWV0ZXIuCisKIAogLi4gZnVuY3Rpb246OiByZWdpc3Rlcl9jb252ZXJ0ZXIodHlwZW5hbWUsIGNhbGxhYmxlKQogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9zc2wucnN0IGIvRG9jL2xpYnJhcnkvc3NsLnJzdAppbmRleCAxZDRmOWNhLi4yZjhiOWEyIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9zc2wucnN0CisrKyBiL0RvYy9saWJyYXJ5L3NzbC5yc3QKQEAgLTI2LDcgKzI2LDggQEAKIAogICAgU29tZSBiZWhhdmlvciBtYXkgYmUgcGxhdGZvcm0gZGVwZW5kZW50LCBzaW5jZSBjYWxscyBhcmUgbWFkZSB0byB0aGUKICAgIG9wZXJhdGluZyBzeXN0ZW0gc29ja2V0IEFQSXMuICBUaGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgT3BlblNTTCBtYXkgYWxzbwotICAgY2F1c2UgdmFyaWF0aW9ucyBpbiBiZWhhdmlvci4KKyAgIGNhdXNlIHZhcmlhdGlvbnMgaW4gYmVoYXZpb3IuIEZvciBleGFtcGxlLCBUTFN2MS4xIGFuZCBUTFN2MS4yIGNvbWUgd2l0aAorICAgb3BlbnNzbCB2ZXJzaW9uIDEuMC4xLgogCiBUaGlzIHNlY3Rpb24gZG9jdW1lbnRzIHRoZSBvYmplY3RzIGFuZCBmdW5jdGlvbnMgaW4gdGhlIGBgc3NsYGAgbW9kdWxlOyBmb3IgbW9yZQogZ2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCBUTFMsIFNTTCwgYW5kIGNlcnRpZmljYXRlcywgdGhlIHJlYWRlciBpcyByZWZlcnJlZCB0bwpAQCAtMTc3LDE0ICsxNzgsMTYgQEAKIAogICAgICAuLiB0YWJsZTo6CiAKLSAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT0gID09PT09PT09PSAgPT09PT09PT09ICA9PT09PT09PT09ICA9PT09PT09PT0KLSAgICAgICAgKmNsaWVudCogLyAqKnNlcnZlcioqICAgICoqU1NMdjIqKiAgKipTU0x2MyoqICAqKlNTTHYyMyoqICAqKlRMU3YxKioKLSAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIC0tLS0tLS0tLSAgLS0tLS0tLS0tICAtLS0tLS0tLS0tICAtLS0tLS0tLS0KLSAgICAgICAgKlNTTHYyKiAgICAgICAgICAgICAgICAgICAgeWVzICAgICAgICBubyAgICAgICAgIHllcyAgICAgICAgIG5vCi0gICAgICAgICpTU0x2MyogICAgICAgICAgICAgICAgICAgIG5vICAgICAgICAgeWVzICAgICAgICB5ZXMgICAgICAgICBubwotICAgICAgICAqU1NMdjIzKiAgICAgICAgICAgICAgICAgICB5ZXMgICAgICAgIG5vICAgICAgICAgeWVzICAgICAgICAgbm8KLSAgICAgICAgKlRMU3YxKiAgICAgICAgICAgICAgICAgICAgbm8gICAgICAgICBubyAgICAgICAgIHllcyAgICAgICAgIHllcwotICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PSAgPT09PT09PT09ICA9PT09PT09PT0gID09PT09PT09PT0gID09PT09PT09PQorICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PSAgPT09PT09PT09ICA9PT09PT09PT0gID09PT09PT09PT0gID09PT09PT09PSAgPT09PT09PT09PT0gID09PT09PT09PT09CisgICAgICAgICpjbGllbnQqIC8gKipzZXJ2ZXIqKiAgICAqKlNTTHYyKiogICoqU1NMdjMqKiAgKipTU0x2MjMqKiAgKipUTFN2MSoqICAqKlRMU3YxLjEqKiAgKipUTFN2MS4yKioKKyAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIC0tLS0tLS0tLSAgLS0tLS0tLS0tICAtLS0tLS0tLS0tICAtLS0tLS0tLS0gIC0tLS0tLS0tLS0tICAtLS0tLS0tLS0tLQorICAgICAgICAqU1NMdjIqICAgICAgICAgICAgICAgICAgICB5ZXMgICAgICAgIG5vICAgICAgICAgeWVzICAgICAgICAgbm8gICAgICAgICBubyAgICAgICAgIG5vCisgICAgICAgICpTU0x2MyogICAgICAgICAgICAgICAgICAgIG5vICAgICAgICAgeWVzICAgICAgICB5ZXMgICAgICAgICBubyAgICAgICAgIG5vICAgICAgICAgbm8KKyAgICAgICAgKlNTTHYyMyogICAgICAgICAgICAgICAgICAgeWVzICAgICAgICBubyAgICAgICAgIHllcyAgICAgICAgIG5vICAgICAgICAgbm8gICAgICAgICBubworICAgICAgICAqVExTdjEqICAgICAgICAgICAgICAgICAgICBubyAgICAgICAgIG5vICAgICAgICAgeWVzICAgICAgICAgeWVzICAgICAgICBubyAgICAgICAgIG5vCisgICAgICAgICpUTFN2MS4xKiAgICAgICAgICAgICAgICAgIG5vICAgICAgICAgbm8gICAgICAgICB5ZXMgICAgICAgICBubyAgICAgICAgIHllcyAgICAgICAgbm8KKyAgICAgICAgKlRMU3YxLjIqICAgICAgICAgICAgICAgICAgbm8gICAgICAgICBubyAgICAgICAgIHllcyAgICAgICAgIG5vICAgICAgICAgbm8gICAgICAgICB5ZXMKKyAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT0gID09PT09PT09PSAgPT09PT09PT09ICA9PT09PT09PT09ICA9PT09PT09PT0gID09PT09PT09PT09ICA9PT09PT09PT09PQogCiAgICAuLiBub3RlOjoKIApAQCAtNDAxLDkgKzQwNCwyNSBAQAogCiAuLiBkYXRhOjogUFJPVE9DT0xfVExTdjEKIAotICAgU2VsZWN0cyBUTFMgdmVyc2lvbiAxIGFzIHRoZSBjaGFubmVsIGVuY3J5cHRpb24gcHJvdG9jb2wuICBUaGlzIGlzIHRoZSBtb3N0CisgICBTZWxlY3RzIFRMUyB2ZXJzaW9uIDEuMCBhcyB0aGUgY2hhbm5lbCBlbmNyeXB0aW9uIHByb3RvY29sLgorCisuLiBkYXRhOjogUFJPVE9DT0xfVExTdjFfMQorCisKKyAgIFNlbGVjdHMgVExTIHZlcnNpb24gMS4xIGFzIHRoZSBjaGFubmVsIGVuY3J5cHRpb24gcHJvdG9jb2wuCisgICBBdmFpbGFibGUgb25seSB3aXRoIG9wZW5zc2wgdmVyc2lvbiAxLjAuMSsuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCisuLiBkYXRhOjogUFJPVE9DT0xfVExTdjFfMgorCisKKyAgIFNlbGVjdHMgVExTIHZlcnNpb24gMS4yIGFzIHRoZSBjaGFubmVsIGVuY3J5cHRpb24gcHJvdG9jb2wuIFRoaXMgaXMgdGhlIG1vc3QKICAgIG1vZGVybiB2ZXJzaW9uLCBhbmQgcHJvYmFibHkgdGhlIGJlc3QgY2hvaWNlIGZvciBtYXhpbXVtIHByb3RlY3Rpb24sIGlmIGJvdGgKICAgIHNpZGVzIGNhbiBzcGVhayBpdC4KKyAgIEF2YWlsYWJsZSBvbmx5IHdpdGggb3BlbnNzbCB2ZXJzaW9uIDEuMC4xKy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CiAKIC4uIGRhdGE6OiBPUF9BTEwKIApAQCAtNDM3LDYgKzQ1NiwyMiBAQAogCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAorLi4gZGF0YTo6IE9QX05PX1RMU3YxXzEKKworICAgUHJldmVudHMgYSBUTFN2MS4xIGNvbm5lY3Rpb24uIFRoaXMgb3B0aW9uIGlzIG9ubHkgYXBwbGljYWJsZSBpbiBjb25qdW5jdGlvbgorICAgd2l0aCA6Y29uc3Q6YFBST1RPQ09MX1NTTHYyM2AuIEl0IHByZXZlbnRzIHRoZSBwZWVycyBmcm9tIGNob29zaW5nIFRMU3YxLjEgYXMKKyAgIHRoZSBwcm90b2NvbCB2ZXJzaW9uLiBBdmFpbGFibGUgb25seSB3aXRoIG9wZW5zc2wgdmVyc2lvbiAxLjAuMSsuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCisuLiBkYXRhOjogT1BfTk9fVExTdjFfMgorCisgICBQcmV2ZW50cyBhIFRMU3YxLjIgY29ubmVjdGlvbi4gVGhpcyBvcHRpb24gaXMgb25seSBhcHBsaWNhYmxlIGluIGNvbmp1bmN0aW9uCisgICB3aXRoIDpjb25zdDpgUFJPVE9DT0xfU1NMdjIzYC4gSXQgcHJldmVudHMgdGhlIHBlZXJzIGZyb20gY2hvb3NpbmcgVExTdjEuMiBhcworICAgdGhlIHByb3RvY29sIHZlcnNpb24uIEF2YWlsYWJsZSBvbmx5IHdpdGggb3BlbnNzbCB2ZXJzaW9uIDEuMC4xKy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CisKIC4uIGRhdGE6OiBPUF9DSVBIRVJfU0VSVkVSX1BSRUZFUkVOQ0UKIAogICAgVXNlIHRoZSBzZXJ2ZXIncyBjaXBoZXIgb3JkZXJpbmcgcHJlZmVyZW5jZSwgcmF0aGVyIHRoYW4gdGhlIGNsaWVudCdzLgpAQCAtNTMzLDYgKzU2OCwxOSBAQAogCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAorLi4gZGF0YTo6IEFMRVJUX0RFU0NSSVBUSU9OX0hBTkRTSEFLRV9GQUlMVVJFCisgICAgICAgICAgQUxFUlRfREVTQ1JJUFRJT05fSU5URVJOQUxfRVJST1IKKyAgICAgICAgICBBTEVSVF9ERVNDUklQVElPTl8qCisKKyAgIEFsZXJ0IERlc2NyaXB0aW9ucyBmcm9tIDpyZmM6YDUyNDZgIGFuZCBvdGhlcnMuIFRoZSBgSUFOQSBUTFMgQWxlcnQgUmVnaXN0cnkKKyAgIDxodHRwOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL3Rscy1wYXJhbWV0ZXJzL3Rscy1wYXJhbWV0ZXJzLnhtbCN0bHMtcGFyYW1ldGVycy02PmBfCisgICBjb250YWlucyB0aGlzIGxpc3QgYW5kIHJlZmVyZW5jZXMgdG8gdGhlIFJGQ3Mgd2hlcmUgdGhlaXIgbWVhbmluZyBpcyBkZWZpbmVkLgorCisgICBVc2VkIGFzIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGluCisgICA6bWV0aDpgU1NMQ29udGV4dC5zZXRfc2VydmVybmFtZV9jYWxsYmFja2AuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCiAKIFNTTCBTb2NrZXRzCiAtLS0tLS0tLS0tLQpAQCAtNzg2LDYgKzgzNCw1NiBAQAogCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKIAorLi4gbWV0aG9kOjogU1NMQ29udGV4dC5zZXRfc2VydmVybmFtZV9jYWxsYmFjayhzZXJ2ZXJfbmFtZV9jYWxsYmFjaykKKworICAgUmVnaXN0ZXIgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIGFmdGVyIHRoZSBUTFMgQ2xpZW50IEhlbGxvCisgICBoYW5kc2hha2UgbWVzc2FnZSBoYXMgYmVlbiByZWNlaXZlZCBieSB0aGUgU1NML1RMUyBzZXJ2ZXIgd2hlbiB0aGUgVExTIGNsaWVudAorICAgc3BlY2lmaWVzIGEgc2VydmVyIG5hbWUgaW5kaWNhdGlvbi4gVGhlIHNlcnZlciBuYW1lIGluZGljYXRpb24gbWVjaGFuaXNtCisgICBpcyBzcGVjaWZpZWQgaW4gOnJmYzpgNjA2NmAgc2VjdGlvbiAzIC0gU2VydmVyIE5hbWUgSW5kaWNhdGlvbi4KKworICAgT25seSBvbmUgY2FsbGJhY2sgY2FuIGJlIHNldCBwZXIgYGBTU0xDb250ZXh0YGAuICBJZiAqc2VydmVyX25hbWVfY2FsbGJhY2sqCisgICBpcyBgYE5vbmVgYCB0aGVuIHRoZSBjYWxsYmFjayBpcyBkaXNhYmxlZC4gQ2FsbGluZyB0aGlzIGZ1bmN0aW9uIGEKKyAgIHN1YnNlcXVlbnQgdGltZSB3aWxsIGRpc2FibGUgdGhlIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBjYWxsYmFjay4KKworICAgVGhlIGNhbGxiYWNrIGZ1bmN0aW9uLCAqc2VydmVyX25hbWVfY2FsbGJhY2sqLCB3aWxsIGJlIGNhbGxlZCB3aXRoIHRocmVlCisgICBhcmd1bWVudHM7IHRoZSBmaXJzdCBiZWluZyB0aGUgOmNsYXNzOmBzc2wuU1NMU29ja2V0YCwgdGhlIHNlY29uZCBpcyBhIHN0cmluZworICAgdGhhdCByZXByZXNlbnRzIHRoZSBzZXJ2ZXIgbmFtZSB0aGF0IHRoZSBjbGllbnQgaXMgaW50ZW5kaW5nIHRvIGNvbW11bmljYXRlCisgICAob3IgOmNvbnN0OmBOb25lYCBpZiB0aGUgVExTIENsaWVudCBIZWxsbyBkb2VzIG5vdCBjb250YWluIGEgc2VydmVyIG5hbWUpCisgICBhbmQgdGhlIHRoaXJkIGFyZ3VtZW50IGlzIHRoZSBvcmlnaW5hbCA6Y2xhc3M6YFNTTENvbnRleHRgLiBUaGUgc2VydmVyIG5hbWUKKyAgIGFyZ3VtZW50IGlzIHRoZSBJRE5BIGRlY29kZWQgc2VydmVyIG5hbWUuCisKKyAgIEEgdHlwaWNhbCB1c2Ugb2YgdGhpcyBjYWxsYmFjayBpcyB0byBjaGFuZ2UgdGhlIDpjbGFzczpgc3NsLlNTTFNvY2tldGAncworICAgOmF0dHI6YFNTTFNvY2tldC5jb250ZXh0YCBhdHRyaWJ1dGUgdG8gYSBuZXcgb2JqZWN0IG9mIHR5cGUKKyAgIDpjbGFzczpgU1NMQ29udGV4dGAgcmVwcmVzZW50aW5nIGEgY2VydGlmaWNhdGUgY2hhaW4gdGhhdCBtYXRjaGVzIHRoZSBzZXJ2ZXIKKyAgIG5hbWUuCisKKyAgIER1ZSB0byB0aGUgZWFybHkgbmVnb3RpYXRpb24gcGhhc2Ugb2YgdGhlIFRMUyBjb25uZWN0aW9uLCBvbmx5IGxpbWl0ZWQKKyAgIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXMgYXJlIHVzYWJsZSBsaWtlCisgICA6bWV0aDpgU1NMU29ja2V0LnNlbGVjdGVkX25wbl9wcm90b2NvbGAgYW5kIDphdHRyOmBTU0xTb2NrZXQuY29udGV4dGAuCisgICA6bWV0aDpgU1NMU29ja2V0LmdldHBlZXJjZXJ0YCwgOm1ldGg6YFNTTFNvY2tldC5nZXRwZWVyY2VydGAsCisgICA6bWV0aDpgU1NMU29ja2V0LmNpcGhlcmAgYW5kIDptZXRoOmBTU0xTb2NrZXQuY29tcHJlc3NgIG1ldGhvZHMgcmVxdWlyZSB0aGF0CisgICB0aGUgVExTIGNvbm5lY3Rpb24gaGFzIHByb2dyZXNzZWQgYmV5b25kIHRoZSBUTFMgQ2xpZW50IEhlbGxvIGFuZCB0aGVyZWZvcmUKKyAgIHdpbGwgbm90IGNvbnRhaW4gcmV0dXJuIG1lYW5pbmdmdWwgdmFsdWVzIG5vciBjYW4gdGhleSBiZSBjYWxsZWQgc2FmZWx5LgorCisgICBUaGUgKnNlcnZlcl9uYW1lX2NhbGxiYWNrKiBmdW5jdGlvbiBtdXN0IHJldHVybiBgYE5vbmVgYCB0byBhbGxvdyB0aGUKKyAgIFRMUyBuZWdvdGlhdGlvbiB0byBjb250aW51ZS4gIElmIGEgVExTIGZhaWx1cmUgaXMgcmVxdWlyZWQsIGEgY29uc3RhbnQKKyAgIDpjb25zdDpgQUxFUlRfREVTQ1JJUFRJT05fKiA8QUxFUlRfREVTQ1JJUFRJT05fSU5URVJOQUxfRVJST1I+YCBjYW4gYmUKKyAgIHJldHVybmVkLiAgT3RoZXIgcmV0dXJuIHZhbHVlcyB3aWxsIHJlc3VsdCBpbiBhIFRMUyBmYXRhbCBlcnJvciB3aXRoCisgICA6Y29uc3Q6YEFMRVJUX0RFU0NSSVBUSU9OX0lOVEVSTkFMX0VSUk9SYC4KKworICAgSWYgdGhlcmUgaXMgYSBJRE5BIGRlY29kaW5nIGVycm9yIG9uIHRoZSBzZXJ2ZXIgbmFtZSwgdGhlIFRMUyBjb25uZWN0aW9uCisgICB3aWxsIHRlcm1pbmF0ZSB3aXRoIGFuIDpjb25zdDpgQUxFUlRfREVTQ1JJUFRJT05fSU5URVJOQUxfRVJST1JgIGZhdGFsIFRMUworICAgYWxlcnQgbWVzc2FnZSB0byB0aGUgY2xpZW50LgorCisgICBJZiBhbiBleGNlcHRpb24gaXMgcmFpc2VkIGZyb20gdGhlICpzZXJ2ZXJfbmFtZV9jYWxsYmFjayogZnVuY3Rpb24gdGhlIFRMUworICAgY29ubmVjdGlvbiB3aWxsIHRlcm1pbmF0ZSB3aXRoIGEgZmF0YWwgVExTIGFsZXJ0IG1lc3NhZ2UKKyAgIDpjb25zdDpgQUxFUlRfREVTQ1JJUFRJT05fSEFORFNIQUtFX0ZBSUxVUkVgLgorCisgICBUaGlzIG1ldGhvZCB3aWxsIHJhaXNlIDpleGM6YE5vdEltcGxlbWVudGVkRXJyb3JgIGlmIHRoZSBPcGVuU1NMIGxpYnJhcnkKKyAgIGhhZCBPUEVOU1NMX05PX1RMU0VYVCBkZWZpbmVkIHdoZW4gaXQgd2FzIGJ1aWx0LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKKwogLi4gbWV0aG9kOjogU1NMQ29udGV4dC5sb2FkX2RoX3BhcmFtcyhkaGZpbGUpCiAKICAgIExvYWQgdGhlIGtleSBnZW5lcmF0aW9uIHBhcmFtZXRlcnMgZm9yIERpZmZpZS1IZWxtYW4gKERIKSBrZXkgZXhjaGFuZ2UuCkBAIC0xMzE5LDMgKzE0MTcsMTIgQEAKIAogICAgYFJGQyA0MzY2OiBUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgKFRMUykgRXh0ZW5zaW9ucyA8aHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjNDM2Nj5gXwogICAgICAgIEJsYWtlLVdpbHNvbiBldC4gYWwuCisKKyAgIGBSRkMgNTI0NjogVGhlIFRyYW5zcG9ydCBMYXllciBTZWN1cml0eSAoVExTKSBQcm90b2NvbCBWZXJzaW9uIDEuMiA8aHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjNTI0Nj5gXworICAgICAgIFQuIERpZXJrcyBldC4gYWwuCisKKyAgIGBSRkMgNjA2NjogVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IChUTFMpIEV4dGVuc2lvbnMgPGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzYwNjY+YF8KKyAgICAgICBELiBFYXN0bGFrZQorCisgICBgSUFOQSBUTFM6IFRyYW5zcG9ydCBMYXllciBTZWN1cml0eSAoVExTKSBQYXJhbWV0ZXJzIDxodHRwOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL3Rscy1wYXJhbWV0ZXJzL3Rscy1wYXJhbWV0ZXJzLnhtbD5gXworICAgICAgIElBTkEKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3N0cnVjdC5yc3QgYi9Eb2MvbGlicmFyeS9zdHJ1Y3QucnN0CmluZGV4IDk5NDUwNmMuLmYyZWEzNjEgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3N0cnVjdC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvc3RydWN0LnJzdApAQCAtNjYsNiArNjYsMTkgQEAKICAgIGZvcm1hdCAoYGBsZW4oYnVmZmVyW29mZnNldDpdKWBgIG11c3QgYmUgYXQgbGVhc3QgYGBjYWxjc2l6ZShmbXQpYGApLgogCiAKKy4uIGZ1bmN0aW9uOjogaXRlcl91bnBhY2soZm10LCBidWZmZXIpCisKKyAgIEl0ZXJhdGl2ZWx5IHVucGFjayBmcm9tIHRoZSBidWZmZXIgKmJ1ZmZlciogYWNjb3JkaW5nIHRvIHRoZSBmb3JtYXQKKyAgIHN0cmluZyAqZm10Ki4gIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbiBpdGVyYXRvciB3aGljaCB3aWxsIHJlYWQKKyAgIGVxdWFsbHktc2l6ZWQgY2h1bmtzIGZyb20gdGhlIGJ1ZmZlciB1bnRpbCBhbGwgaXRzIGNvbnRlbnRzIGhhdmUgYmVlbgorICAgY29uc3VtZWQuICBUaGUgYnVmZmVyJ3Mgc2l6ZSBpbiBieXRlcyBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIGFtb3VudAorICAgb2YgZGF0YSByZXF1aXJlZCBieSB0aGUgZm9ybWF0LCBhcyByZWZsZWN0ZWQgYnkgOmZ1bmM6YGNhbGNzaXplYC4KKworICAgRWFjaCBpdGVyYXRpb24geWllbGRzIGEgdHVwbGUgYXMgc3BlY2lmaWVkIGJ5IHRoZSBmb3JtYXQgc3RyaW5nLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKKworCiAuLiBmdW5jdGlvbjo6IGNhbGNzaXplKGZtdCkKIAogICAgUmV0dXJuIHRoZSBzaXplIG9mIHRoZSBzdHJ1Y3QgKGFuZCBoZW5jZSBvZiB0aGUgYnl0ZXMgb2JqZWN0IHByb2R1Y2VkIGJ5CkBAIC0zODgsNiArNDAxLDEzIEBACiAgICAgICAoYGBsZW4oYnVmZmVyW29mZnNldDpdKWBgIG11c3QgYmUgYXQgbGVhc3QgOmF0dHI6YHNlbGYuc2l6ZWApLgogCiAKKyAgIC4uIG1ldGhvZDo6IGl0ZXJfdW5wYWNrKGJ1ZmZlcikKKworICAgICAgSWRlbnRpY2FsIHRvIHRoZSA6ZnVuYzpgaXRlcl91bnBhY2tgIGZ1bmN0aW9uLCB1c2luZyB0aGUgY29tcGlsZWQgZm9ybWF0LgorICAgICAgKGBgbGVuKGJ1ZmZlcilgYCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgOmF0dHI6YHNlbGYuc2l6ZWApLgorCisgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKKwogICAgLi4gYXR0cmlidXRlOjogZm9ybWF0CiAKICAgICAgIFRoZSBmb3JtYXQgc3RyaW5nIHVzZWQgdG8gY29uc3RydWN0IHRoaXMgU3RydWN0IG9iamVjdC4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3N1YnByb2Nlc3MucnN0IGIvRG9jL2xpYnJhcnkvc3VicHJvY2Vzcy5yc3QKaW5kZXggNDIxMmUwMi4uNzBhMjFlYiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc3VicHJvY2Vzcy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvc3VicHJvY2Vzcy5yc3QKQEAgLTExNiw3ICsxMTYsNyBAQAogICAgICAgKnRpbWVvdXQqIHdhcyBhZGRlZC4KIAogCi0uLiBmdW5jdGlvbjo6IGNoZWNrX291dHB1dChhcmdzLCAqLCBzdGRpbj1Ob25lLCBzdGRlcnI9Tm9uZSwgc2hlbGw9RmFsc2UsIHVuaXZlcnNhbF9uZXdsaW5lcz1GYWxzZSwgdGltZW91dD1Ob25lKQorLi4gZnVuY3Rpb246OiBjaGVja19vdXRwdXQoYXJncywgKiwgaW5wdXQ9Tm9uZSwgc3RkaW49Tm9uZSwgc3RkZXJyPU5vbmUsIHNoZWxsPUZhbHNlLCB1bml2ZXJzYWxfbmV3bGluZXM9RmFsc2UsIHRpbWVvdXQ9Tm9uZSkKIAogICAgUnVuIGNvbW1hbmQgd2l0aCBhcmd1bWVudHMgYW5kIHJldHVybiBpdHMgb3V0cHV0LgogCkBAIC0xMjksMTUgKzEyOSwyMSBAQAogICAgaW4gOnJlZjpgZnJlcXVlbnRseS11c2VkLWFyZ3VtZW50c2AgKGhlbmNlIHRoZSB1c2Ugb2Yga2V5d29yZC1vbmx5IG5vdGF0aW9uCiAgICBpbiB0aGUgYWJicmV2aWF0ZWQgc2lnbmF0dXJlKS4gVGhlIGZ1bGwgZnVuY3Rpb24gc2lnbmF0dXJlIGlzIGxhcmdlbHkgdGhlCiAgICBzYW1lIGFzIHRoYXQgb2YgdGhlIDpjbGFzczpgUG9wZW5gIGNvbnN0cnVjdG9yIC0gdGhpcyBmdW5jdGlvbnMgcGFzc2VzIGFsbAotICAgc3VwcGxpZWQgYXJndW1lbnRzIG90aGVyIHRoYW4gKnRpbWVvdXQqIGRpcmVjdGx5IHRocm91Z2ggdG8gdGhhdCBpbnRlcmZhY2UuCi0gICBJbiBhZGRpdGlvbiwgKnN0ZG91dCogaXMgbm90IHBlcm1pdHRlZCBhcyBhbiBhcmd1bWVudCwgYXMgaXQgaXMgdXNlZAotICAgaW50ZXJuYWxseSB0byBjb2xsZWN0IHRoZSBvdXRwdXQgZnJvbSB0aGUgc3VicHJvY2Vzcy4KKyAgIHN1cHBsaWVkIGFyZ3VtZW50cyBvdGhlciB0aGFuICppbnB1dCogYW5kICp0aW1lb3V0KiBkaXJlY3RseSB0aHJvdWdoIHRvCisgICB0aGF0IGludGVyZmFjZS4gIEluIGFkZGl0aW9uLCAqc3Rkb3V0KiBpcyBub3QgcGVybWl0dGVkIGFzIGFuIGFyZ3VtZW50LCBhcworICAgaXQgaXMgdXNlZCBpbnRlcm5hbGx5IHRvIGNvbGxlY3QgdGhlIG91dHB1dCBmcm9tIHRoZSBzdWJwcm9jZXNzLgogCiAgICBUaGUgKnRpbWVvdXQqIGFyZ3VtZW50IGlzIHBhc3NlZCB0byA6bWV0aDpgUG9wZW4ud2FpdGAuIElmIHRoZSB0aW1lb3V0CiAgICBleHBpcmVzLCB0aGUgY2hpbGQgcHJvY2VzcyB3aWxsIGJlIGtpbGxlZCBhbmQgdGhlbiB3YWl0ZWQgZm9yIGFnYWluLiAgVGhlCiAgICA6ZXhjOmBUaW1lb3V0RXhwaXJlZGAgZXhjZXB0aW9uIHdpbGwgYmUgcmUtcmFpc2VkIGFmdGVyIHRoZSBjaGlsZCBwcm9jZXNzCiAgICBoYXMgdGVybWluYXRlZC4KIAorICAgVGhlICppbnB1dCogYXJndW1lbnQgaXMgcGFzc2VkIHRvIDptZXRoOmBQb3Blbi5jb21tdW5pY2F0ZWAgYW5kIHRodXMgdG8gdGhlCisgICBzdWJwcm9jZXNzJ3Mgc3RkaW4uICBJZiB1c2VkIGl0IG11c3QgYmUgYSBieXRlIHNlcXVlbmNlLCBvciBhIHN0cmluZyBpZgorICAgYGB1bml2ZXJzYWxfbmV3bGluZXM9VHJ1ZWBgLiAgV2hlbiB1c2VkLCB0aGUgaW50ZXJuYWwgOmNsYXNzOmBQb3BlbmAgb2JqZWN0CisgICBpcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgd2l0aCBgYHN0ZGluPVBJUEVgYCwgYW5kIHRoZSAqc3RkaW4qIGFyZ3VtZW50IG1heQorICAgbm90IGJlIHVzZWQgYXMgd2VsbC4KKwogICAgRXhhbXBsZXM6OgogCiAgICAgICA+Pj4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoWyJlY2hvIiwgIkhlbGxvIFdvcmxkISJdKQpAQCAtMTQ2LDYgKzE1MiwxMCBAQAogICAgICAgPj4+IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KFsiZWNobyIsICJIZWxsbyBXb3JsZCEiXSwgdW5pdmVyc2FsX25ld2xpbmVzPVRydWUpCiAgICAgICAnSGVsbG8gV29ybGQhXG4nCiAKKyAgICAgID4+PiBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChbInNlZCIsICItZSIsICJzL2Zvby9iYXIvIl0sCisgICAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ9YiJ3aGVuIGluIHRoZSBjb3Vyc2Ugb2YgZm9vbWFuIGV2ZW50c1xuIikKKyAgICAgIGInd2hlbiBpbiB0aGUgY291cnNlIG9mIGJhcm1hbiBldmVudHNcbicKKwogICAgICAgPj4+IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KCJleGl0IDEiLCBzaGVsbD1UcnVlKQogICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAgICAgLi4uCkBAIC0xNjcsMTAgKzE3Nyw2IEBACiAgICAgICAuLi4gICAgIHNoZWxsPVRydWUpCiAgICAgICAnbHM6IG5vbl9leGlzdGVudF9maWxlOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XG4nCiAKLSAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMQotCi0gICAuLgotCiAgICAuLiB3YXJuaW5nOjoKIAogICAgICAgSW52b2tpbmcgdGhlIHN5c3RlbSBzaGVsbCB3aXRoIGBgc2hlbGw9VHJ1ZWBgIGNhbiBiZSBhIHNlY3VyaXR5IGhhemFyZApAQCAtMTgzLDkgKzE4OSwxMyBAQAogICAgICAgcmVhZCBpbiB0aGUgY3VycmVudCBwcm9jZXNzLCB0aGUgY2hpbGQgcHJvY2VzcyBtYXkgYmxvY2sgaWYgaXQKICAgICAgIGdlbmVyYXRlcyBlbm91Z2ggb3V0cHV0IHRvIHRoZSBwaXBlIHRvIGZpbGwgdXAgdGhlIE9TIHBpcGUgYnVmZmVyLgogCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKKwogICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKICAgICAgICp0aW1lb3V0KiB3YXMgYWRkZWQuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICAqaW5wdXQqIHdhcyBhZGRlZC4KIAogLi4gZGF0YTo6IERFVk5VTEwKIApAQCAtODI5LDggKzgzOSw2IEBACiAgICBUaGUgbmV3IHByb2Nlc3MgaGFzIGEgbmV3IGNvbnNvbGUsIGluc3RlYWQgb2YgaW5oZXJpdGluZyBpdHMgcGFyZW50J3MKICAgIGNvbnNvbGUgKHRoZSBkZWZhdWx0KS4KIAotICAgVGhpcyBmbGFnIGlzIGFsd2F5cyBzZXQgd2hlbiA6Y2xhc3M6YFBvcGVuYCBpcyBjcmVhdGVkIHdpdGggYGBzaGVsbD1UcnVlYGAuCi0KIC4uIGRhdGE6OiBDUkVBVEVfTkVXX1BST0NFU1NfR1JPVVAKIAogICAgQSA6Y2xhc3M6YFBvcGVuYCBgYGNyZWF0aW9uZmxhZ3NgYCBwYXJhbWV0ZXIgdG8gc3BlY2lmeSB0aGF0IGEgbmV3IHByb2Nlc3MKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3N5cy5yc3QgYi9Eb2MvbGlicmFyeS9zeXMucnN0CmluZGV4IGJjMWQ5ZmUuLmM5MTJlMTEgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3N5cy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvc3lzLnJzdApAQCAtMzgwLDYgKzM4MCwyMSBAQAogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4xCiAKIAorLi4gZnVuY3Rpb246OiBnZXRhbGxvY2F0ZWRibG9ja3MoKQorCisgICBSZXR1cm4gdGhlIG51bWJlciBvZiBtZW1vcnkgYmxvY2tzIGN1cnJlbnRseSBhbGxvY2F0ZWQgYnkgdGhlIGludGVycHJldGVyLAorICAgcmVnYXJkbGVzcyBvZiB0aGVpciBzaXplLiAgVGhpcyBmdW5jdGlvbiBpcyBtYWlubHkgdXNlZnVsIGZvciB0cmFja2luZworICAgYW5kIGRlYnVnZ2luZyBtZW1vcnkgbGVha3MuICBCZWNhdXNlIG9mIHRoZSBpbnRlcnByZXRlcidzIGludGVybmFsCisgICBjYWNoZXMsIHRoZSByZXN1bHQgY2FuIHZhcnkgZnJvbSBjYWxsIHRvIGNhbGw7IHlvdSBtYXkgaGF2ZSB0byBjYWxsCisgICA6ZnVuYzpgX2NsZWFyX3R5cGVfY2FjaGUoKWAgYW5kIDpmdW5jOmBnYy5jb2xsZWN0KClgIHRvIGdldCBtb3JlCisgICBwcmVkaWN0YWJsZSByZXN1bHRzLgorCisgICBJZiBhIFB5dGhvbiBidWlsZCBvciBpbXBsZW1lbnRhdGlvbiBjYW5ub3QgcmVhc29uYWJseSBjb21wdXRlIHRoaXMKKyAgIGluZm9ybWF0aW9uLCA6ZnVuYzpgZ2V0YWxsb2NhdGVkYmxvY2tzKClgIGlzIGFsbG93ZWQgdG8gcmV0dXJuIDAgaW5zdGVhZC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CisKKwogLi4gZnVuY3Rpb246OiBnZXRjaGVja2ludGVydmFsKCkKIAogICAgUmV0dXJuIHRoZSBpbnRlcnByZXRlcidzICJjaGVjayBpbnRlcnZhbCI7IHNlZSA6ZnVuYzpgc2V0Y2hlY2tpbnRlcnZhbGAuCkBAIC02NjQsNiArNjc5LDE2IEBACiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKIAogCisuLiBkYXRhOjogX19pbnRlcmFjdGl2ZWhvb2tfXworCisgICBXaGVuIHByZXNlbnQsIHRoaXMgZnVuY3Rpb24gaXMgYXV0b21hdGljYWxseSBjYWxsZWQgKHdpdGggbm8gYXJndW1lbnRzKQorICAgd2hlbiB0aGUgaW50ZXJwcmV0ZXIgaXMgbGF1bmNoZWQgaW4gOnJlZjpgaW50ZXJhY3RpdmUgbW9kZSA8dHV0LWludGVyYWN0aXZlPmAuCisgICBUaGlzIGlzIGRvbmUgYWZ0ZXIgdGhlIDplbnZ2YXI6YFBZVEhPTlNUQVJUVVBgIGZpbGUgaXMgcmVhZCwgc28gdGhhdCB5b3UKKyAgIGNhbiBzZXQgdGhpcyBob29rIHRoZXJlLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKKworCiAuLiBmdW5jdGlvbjo6IGludGVybihzdHJpbmcpCiAKICAgIEVudGVyICpzdHJpbmcqIGluIHRoZSB0YWJsZSBvZiAiaW50ZXJuZWQiIHN0cmluZ3MgYW5kIHJldHVybiB0aGUgaW50ZXJuZWQgc3RyaW5nCkBAIC04MTEsOCArODM2LDYgQEAKICAgIFdpbmRvd3MgICAgICAgICAgYGAnd2luMzInYGAKICAgIFdpbmRvd3MvQ3lnd2luICAgYGAnY3lnd2luJ2BgCiAgICBNYWMgT1MgWCAgICAgICAgIGBgJ2RhcndpbidgYAotICAgT1MvMiAgICAgICAgICAgICBgYCdvczInYGAKLSAgIE9TLzIgRU1YICAgICAgICAgYGAnb3MyZW14J2BgCiAgICA9PT09PT09PT09PT09PT09ID09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMwpAQCAtMTA5Myw3ICsxMTE2LDYgQEAKICAgIHwgOmNvbnN0OmBuYW1lYCAgICB8IE5hbWUgb2YgdGhlIHRocmVhZCBpbXBsZW1lbnRhdGlvbjogICAgICAgICAgICAgICAgICAgICAgfAogICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICB8ICAgICAgICAgICAgICAgICAgfCAgKiBgYCdudCdgYDogV2luZG93cyB0aHJlYWRzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAgIHwgICAgICAgICAgICAgICAgICB8ICAqIGBgJ29zMidgYDogT1MvMiB0aHJlYWRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgfCAgICAgICAgICAgICAgICAgIHwgICogYGAncHRocmVhZCdgYDogUE9TSVggdGhyZWFkcyAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICB8ICAgICAgICAgICAgICAgICAgfCAgKiBgYCdzb2xhcmlzJ2BgOiBTb2xhcmlzIHRocmVhZHMgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvc3lzY29uZmlnLnJzdCBiL0RvYy9saWJyYXJ5L3N5c2NvbmZpZy5yc3QKaW5kZXggYzQ3ZGNjZS4uNTM1YWM1NCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc3lzY29uZmlnLnJzdAorKysgYi9Eb2MvbGlicmFyeS9zeXNjb25maWcucnN0CkBAIC04Myw4ICs4Myw2IEBACiAgIGxvY2F0ZWQgdW5kZXIgdGhlIHVzZXIgaG9tZSBkaXJlY3RvcnkuCiAtICpudCo6IHNjaGVtZSBmb3IgTlQgcGxhdGZvcm1zIGxpa2UgV2luZG93cy4KIC0gKm50X3VzZXIqOiBzY2hlbWUgZm9yIE5UIHBsYXRmb3Jtcywgd2hlbiB0aGUgKnVzZXIqIG9wdGlvbiBpcyB1c2VkLgotLSAqb3MyKjogc2NoZW1lIGZvciBPUy8yIHBsYXRmb3Jtcy4KLS0gKm9zMl9ob21lKjogc2NoZW1lIGZvciBPUy8yIHBhdGZvcm1zLCB3aGVuIHRoZSAqdXNlciogb3B0aW9uIGlzIHVzZWQuCiAKIEVhY2ggc2NoZW1lIGlzIGl0c2VsZiBjb21wb3NlZCBvZiBhIHNlcmllcyBvZiBwYXRocyBhbmQgZWFjaCBwYXRoIGhhcyBhIHVuaXF1ZQogaWRlbnRpZmllci4gIFB5dGhvbiBjdXJyZW50bHkgdXNlcyBlaWdodCBwYXRoczoKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3RpbWVpdC5yc3QgYi9Eb2MvbGlicmFyeS90aW1laXQucnN0CmluZGV4IGE0ODc5MTcuLjBjYzE1ODYgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3RpbWVpdC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvdGltZWl0LnJzdApAQCAtMTUxLDcgKzE1MSw3IEBACiAgICAgICAgICB0ID0gVGltZXIoLi4uKSAgICAgICAjIG91dHNpZGUgdGhlIHRyeS9leGNlcHQKICAgICAgICAgIHRyeToKICAgICAgICAgICAgICB0LnRpbWVpdCguLi4pICAgICMgb3IgdC5yZXBlYXQoLi4uKQotICAgICAgICAgZXhjZXB0OgorICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgICB0LnByaW50X2V4YygpCiAKICAgICAgIFRoZSBhZHZhbnRhZ2Ugb3ZlciB0aGUgc3RhbmRhcmQgdHJhY2ViYWNrIGlzIHRoYXQgc291cmNlIGxpbmVzIGluIHRoZQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvdGtpbnRlci5yc3QgYi9Eb2MvbGlicmFyeS90a2ludGVyLnJzdAppbmRleCA4M2E1Mzc1Li4zNzc2OTRmIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS90a2ludGVyLnJzdAorKysgYi9Eb2MvbGlicmFyeS90a2ludGVyLnJzdApAQCAtNzUwLDMyICs3NTAsNiBAQAogICAgZGlzcGxheWVkLiAgWW91IGNhbiB1c2UgdGhlc2UgOm1vZDpgdGtpbnRlcmAgZnVuY3Rpb25zIHRvIGFjY2VzcyB0aGVzZSBzcGVjaWFsCiAgICBwb2ludHMgaW4gdGV4dCB3aWRnZXRzOgogCi0uLiBmdW5jdGlvbjo6IEF0RW5kKCkKLSAgICAgIHJlZmVycyB0byB0aGUgbGFzdCBwb3NpdGlvbiBpbiB0aGUgdGV4dAotCi0gICAuLiBkZXByZWNhdGVkOjogMy4zCi0KLS4uIGZ1bmN0aW9uOjogQXRJbnNlcnQoKQotICAgICAgcmVmZXJzIHRvIHRoZSBwb2ludCB3aGVyZSB0aGUgdGV4dCBjdXJzb3IgaXMKLQotICAgLi4gZGVwcmVjYXRlZDo6IDMuMwotCi0uLiBmdW5jdGlvbjo6IEF0U2VsRmlyc3QoKQotICAgICAgaW5kaWNhdGVzIHRoZSBiZWdpbm5pbmcgcG9pbnQgb2YgdGhlIHNlbGVjdGVkIHRleHQKLQotICAgLi4gZGVwcmVjYXRlZDo6IDMuMwotCi0uLiBmdW5jdGlvbjo6IEF0U2VsTGFzdCgpCi0gICAgICBkZW5vdGVzIHRoZSBsYXN0IHBvaW50IG9mIHRoZSBzZWxlY3RlZCB0ZXh0IGFuZCBmaW5hbGx5Ci0KLSAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKLQotLi4gZnVuY3Rpb246OiBBdCh4WywgeV0pCi0gICAgICByZWZlcnMgdG8gdGhlIGNoYXJhY3RlciBhdCBwaXhlbCBsb2NhdGlvbiAqeCosICp5KiAod2l0aCAqeSogbm90IHVzZWQgaW4gdGhlCi0gICAgICBjYXNlIG9mIGEgdGV4dCBlbnRyeSB3aWRnZXQsIHdoaWNoIGNvbnRhaW5zIGEgc2luZ2xlIGxpbmUgb2YgdGV4dCkuCi0KLSAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKLQogVGV4dCB3aWRnZXQgaW5kZXhlcwogICAgVGhlIGluZGV4IG5vdGF0aW9uIGZvciBUZXh0IHdpZGdldHMgaXMgdmVyeSByaWNoIGFuZCBpcyBiZXN0IGRlc2NyaWJlZCBpbiB0aGUgVGsKICAgIG1hbiBwYWdlcy4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3RyYWNlYmFjay5yc3QgYi9Eb2MvbGlicmFyeS90cmFjZWJhY2sucnN0CmluZGV4IDMyZTU3MzMuLjA1MzNiZWEgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3RyYWNlYmFjay5yc3QKKysrIGIvRG9jL2xpYnJhcnkvdHJhY2ViYWNrLnJzdApAQCAtMTQ2LDcgKzE0Niw3IEBACiAgICAgICAgc291cmNlID0gaW5wdXQoIj4+PiAiKQogICAgICAgIHRyeToKICAgICAgICAgICAgZXhlYyhzb3VyY2UsIGVudmRpcikKLSAgICAgICBleGNlcHQ6CisgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgcHJpbnQoIkV4Y2VwdGlvbiBpbiB1c2VyIGNvZGU6IikKICAgICAgICAgICAgcHJpbnQoIi0iKjYwKQogICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZG91dCkKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3R5cGVzLnJzdCBiL0RvYy9saWJyYXJ5L3R5cGVzLnJzdAppbmRleCA2OTU0ODBmLi45NTEzMmU4IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS90eXBlcy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvdHlwZXMucnN0CkBAIC0yMTIsNiArMjEyLDggQEAKICAgICAgICAgICAgICAgIGtleXMgPSBzb3J0ZWQoc2VsZi5fX2RpY3RfXykKICAgICAgICAgICAgICAgIGl0ZW1zID0gKCJ7fT17IXJ9Ii5mb3JtYXQoaywgc2VsZi5fX2RpY3RfX1trXSkgZm9yIGsgaW4ga2V5cykKICAgICAgICAgICAgICAgIHJldHVybiAie30oe30pIi5mb3JtYXQodHlwZShzZWxmKS5fX25hbWVfXywgIiwgIi5qb2luKGl0ZW1zKSkKKyAgICAgICAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fX2RpY3RfXyA9PSBvdGhlci5fX2RpY3RfXwogCiAgICBgYFNpbXBsZU5hbWVzcGFjZWBgIG1heSBiZSB1c2VmdWwgYXMgYSByZXBsYWNlbWVudCBmb3IgYGBjbGFzcyBOUzogcGFzc2BgLgogICAgSG93ZXZlciwgZm9yIGEgc3RydWN0dXJlZCByZWNvcmQgdHlwZSB1c2UgOmZ1bmM6YH5jb2xsZWN0aW9ucy5uYW1lZHR1cGxlYApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvdW5pY29kZWRhdGEucnN0IGIvRG9jL2xpYnJhcnkvdW5pY29kZWRhdGEucnN0CmluZGV4IGFkNzBkZDkuLjI2ZWNlZDYgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3VuaWNvZGVkYXRhLnJzdAorKysgYi9Eb2MvbGlicmFyeS91bmljb2RlZGF0YS5yc3QKQEAgLTE1LDggKzE1LDggQEAKIAogVGhpcyBtb2R1bGUgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSAoVUNEKSB3aGljaAogZGVmaW5lcyBjaGFyYWN0ZXIgcHJvcGVydGllcyBmb3IgYWxsIFVuaWNvZGUgY2hhcmFjdGVycy4gVGhlIGRhdGEgY29udGFpbmVkIGluCi10aGlzIGRhdGFiYXNlIGlzIGNvbXBpbGVkIGZyb20gdGhlIGBVQ0QgdmVyc2lvbiA2LjEuMAotPGh0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljLzYuMS4wL3VjZD5gXy4KK3RoaXMgZGF0YWJhc2UgaXMgY29tcGlsZWQgZnJvbSB0aGUgYFVDRCB2ZXJzaW9uIDYuMi4wCis8aHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvNi4yLjAvdWNkPmBfLgogCiBUaGUgbW9kdWxlIHVzZXMgdGhlIHNhbWUgbmFtZXMgYW5kIHN5bWJvbHMgYXMgZGVmaW5lZCBieSBVbmljb2RlCiBTdGFuZGFyZCBBbm5leCAjNDQsIGAiVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UiCkBAIC0xNjYsNiArMTY2LDYgQEAKIAogLi4gcnVicmljOjogRm9vdG5vdGVzCiAKLS4uIFsjXSBodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy82LjEuMC91Y2QvTmFtZUFsaWFzZXMudHh0CisuLiBbI10gaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvNi4yLjAvdWNkL05hbWVBbGlhc2VzLnR4dAogCi0uLiBbI10gaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvNi4xLjAvdWNkL05hbWVkU2VxdWVuY2VzLnR4dAorLi4gWyNdIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljLzYuMi4wL3VjZC9OYW1lZFNlcXVlbmNlcy50eHQKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3VuaXR0ZXN0Lm1vY2stZXhhbXBsZXMucnN0IGIvRG9jL2xpYnJhcnkvdW5pdHRlc3QubW9jay1leGFtcGxlcy5yc3QKaW5kZXggZDdkNjk3ZC4uNDQ0YzIwOCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvdW5pdHRlc3QubW9jay1leGFtcGxlcy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvdW5pdHRlc3QubW9jay1leGFtcGxlcy5yc3QKQEAgLTI3Nyw2ICsyNzcsMjAgQEAKICAgICAgICAuLi4KICAgICBBdHRyaWJ1dGVFcnJvcjogb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJ29sZF9tZXRob2QnCiAKK1VzaW5nIGEgc3BlY2lmaWNhdGlvbiBhbHNvIGVuYWJsZXMgYSBzbWFydGVyIG1hdGNoaW5nIG9mIGNhbGxzIG1hZGUgdG8gdGhlCittb2NrLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgc29tZSBwYXJhbWV0ZXJzIHdlcmUgcGFzc2VkIGFzIHBvc2l0aW9uYWwgb3IKK25hbWVkIGFyZ3VtZW50czo6CisKKyAgID4+PiBkZWYgZihhLCBiLCBjKTogcGFzcworICAgLi4uCisgICA+Pj4gbW9jayA9IE1vY2soc3BlYz1mKQorICAgPj4+IG1vY2soMSwgMiwgMykKKyAgIDxNb2NrIG5hbWU9J21vY2soKScgaWQ9JzE0MDE2MTU4MDQ1NjU3Nic+CisgICA+Pj4gbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoYT0xLCBiPTIsIGM9MykKKworSWYgeW91IHdhbnQgdGhpcyBzbWFydGVyIG1hdGNoaW5nIHRvIGFsc28gd29yayB3aXRoIG1ldGhvZCBjYWxscyBvbiB0aGUgbW9jaywKK3lvdSBjYW4gdXNlIDpyZWY6YGF1dG8tc3BlY2NpbmcgPGF1dG8tc3BlY2Npbmc+YC4KKwogSWYgeW91IHdhbnQgYSBzdHJvbmdlciBmb3JtIG9mIHNwZWNpZmljYXRpb24gdGhhdCBwcmV2ZW50cyB0aGUgc2V0dGluZwogb2YgYXJiaXRyYXJ5IGF0dHJpYnV0ZXMgYXMgd2VsbCBhcyB0aGUgZ2V0dGluZyBvZiB0aGVtIHRoZW4geW91IGNhbiB1c2UKIGBzcGVjX3NldGAgaW5zdGVhZCBvZiBgc3BlY2AuCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS91bml0dGVzdC5tb2NrLnJzdCBiL0RvYy9saWJyYXJ5L3VuaXR0ZXN0Lm1vY2sucnN0CmluZGV4IDBkYTZmNDkuLmJlMzc4NjggMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3VuaXR0ZXN0Lm1vY2sucnN0CisrKyBiL0RvYy9saWJyYXJ5L3VuaXR0ZXN0Lm1vY2sucnN0CkBAIC0yNjQsNyArMjY0LDYgQEAKICAgICAgICAgICAgIDxNb2NrIG5hbWU9J21vY2subWV0aG9kKCknIGlkPScuLi4nPgogICAgICAgICAgICAgPj4+IG1vY2subWV0aG9kLmFzc2VydF9jYWxsZWRfd2l0aCgxLCAyLCAzLCB0ZXN0PSd3b3cnKQogCi0KICAgICAuLiBtZXRob2Q6OiBhc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgqYXJncywgKiprd2FyZ3MpCiAKICAgICAgICBBc3NlcnQgdGhhdCB0aGUgbW9jayB3YXMgY2FsbGVkIGV4YWN0bHkgb25jZSBhbmQgd2l0aCB0aGUgc3BlY2lmaWVkCkBAIC02ODUsNiArNjg0LDI3IEBACiAgICAgICAuLi4KICAgICBLZXlFcnJvcgogCitBIGNhbGxhYmxlIG1vY2sgd2hpY2ggd2FzIGNyZWF0ZWQgd2l0aCBhICpzcGVjKiAob3IgYSAqc3BlY19zZXQqKSB3aWxsCitpbnRyb3NwZWN0IHRoZSBzcGVjaWZpY2F0aW9uIG9iamVjdCdzIHNpZ25hdHVyZSB3aGVuIG1hdGNoaW5nIGNhbGxzIHRvCit0aGUgbW9jay4gIFRoZXJlZm9yZSwgaXQgY2FuIG1hdGNoIHRoZSBhY3R1YWwgY2FsbCdzIGFyZ3VtZW50cyByZWdhcmRsZXNzCitvZiB3aGV0aGVyIHRoZXkgd2VyZSBwYXNzZWQgcG9zaXRpb25hbGx5IG9yIGJ5IG5hbWU6OgorCisgICA+Pj4gZGVmIGYoYSwgYiwgYyk6IHBhc3MKKyAgIC4uLgorICAgPj4+IG1vY2sgPSBNb2NrKHNwZWM9ZikKKyAgID4+PiBtb2NrKDEsIDIsIGM9MykKKyAgIDxNb2NrIG5hbWU9J21vY2soKScgaWQ9JzE0MDE2MTU4MDQ1NjU3Nic+CisgICA+Pj4gbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoMSwgMiwgMykKKyAgID4+PiBtb2NrLmFzc2VydF9jYWxsZWRfd2l0aChhPTEsIGI9MiwgYz0zKQorCitUaGlzIGFwcGxpZXMgdG8gOm1ldGg6YH5Nb2NrLmFzc2VydF9jYWxsZWRfd2l0aGAsCis6bWV0aDpgfk1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGhgLCA6bWV0aDpgfk1vY2suYXNzZXJ0X2hhc19jYWxsc2AgYW5kCis6bWV0aDpgfk1vY2suYXNzZXJ0X2FueV9jYWxsYC4gIFdoZW4gOnJlZjpgYXV0by1zcGVjY2luZ2AsIGl0IHdpbGwgYWxzbworYXBwbHkgdG8gbWV0aG9kIGNhbGxzIG9uIHRoZSBtb2NrIG9iamVjdC4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjQKKyAgICAgIEFkZGVkIHNpZ25hdHVyZSBpbnRyb3NwZWN0aW9uIG9uIHNwZWNjZWQgYW5kIGF1dG9zcGVjY2VkIG1vY2sgb2JqZWN0cy4KKwogCiAuLiBjbGFzczo6IFByb3BlcnR5TW9jaygqYXJncywgKiprd2FyZ3MpCiAKQEAgLTE5NjksOCArMTk4OSwxMiBAQAogICAgIGRlZmF1bHQpIHRoZW4gYSBgTWFnaWNNb2NrYCB3aWxsIGJlIGNyZWF0ZWQgZm9yIHlvdSwgd2l0aCB0aGUgQVBJIGxpbWl0ZWQKICAgICB0byBtZXRob2RzIG9yIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIG9uIHN0YW5kYXJkIGZpbGUgaGFuZGxlcy4KIAotICAgIGByZWFkX2RhdGFgIGlzIGEgc3RyaW5nIGZvciB0aGUgYHJlYWRgIG1ldGhvZCBvZiB0aGUgZmlsZSBoYW5kbGUgdG8gcmV0dXJuLgotICAgIFRoaXMgaXMgYW4gZW1wdHkgc3RyaW5nIGJ5IGRlZmF1bHQuCisgICAgYHJlYWRfZGF0YWAgaXMgYSBzdHJpbmcgZm9yIHRoZSBgcmVhZGAsIGByZWFkbGluZWAsIGFuZCBgcmVhZGxpbmVzYCBtZXRob2RzCisgICAgb2YgdGhlIGZpbGUgaGFuZGxlIHRvIHJldHVybi4gIENhbGxzIHRvIHRob3NlIG1ldGhvZHMgd2lsbCB0YWtlIGRhdGEgZnJvbQorICAgIGByZWFkX2RhdGFgIHVudGlsIGl0IGlzIGRlcGxldGVkLiAgVGhlIG1vY2sgb2YgdGhlc2UgbWV0aG9kcyBpcyBwcmV0dHkKKyAgICBzaW1wbGlzdGljLiAgSWYgeW91IG5lZWQgbW9yZSBjb250cm9sIG92ZXIgdGhlIGRhdGEgdGhhdCB5b3UgYXJlIGZlZWRpbmcgdG8KKyAgICB0aGUgdGVzdGVkIGNvZGUgeW91IHdpbGwgbmVlZCB0byBjdXN0b21pemUgdGhpcyBtb2NrIGZvciB5b3Vyc2VsZi4KKyAgICBgcmVhZF9kYXRhYCBpcyBhbiBlbXB0eSBzdHJpbmcgYnkgZGVmYXVsdC4KIAogVXNpbmcgYG9wZW5gIGFzIGEgY29udGV4dCBtYW5hZ2VyIGlzIGEgZ3JlYXQgd2F5IHRvIGVuc3VyZSB5b3VyIGZpbGUgaGFuZGxlcwogYXJlIGNsb3NlZCBwcm9wZXJseSBhbmQgaXMgYmVjb21pbmcgY29tbW9uOjoKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3VuaXR0ZXN0LnJzdCBiL0RvYy9saWJyYXJ5L3VuaXR0ZXN0LnJzdAppbmRleCA4NWQxY2U2Li4yNjI0NWI1IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS91bml0dGVzdC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvdW5pdHRlc3QucnN0CkBAIC01NjMsNiArNTYzLDY4IEBACiBTa2lwcGVkIGNsYXNzZXMgd2lsbCBub3QgaGF2ZSA6bWV0aDpgc2V0VXBDbGFzc2Agb3IgOm1ldGg6YHRlYXJEb3duQ2xhc3NgIHJ1bi4KIAogCisuLiBfc3VidGVzdHM6CisKK0Rpc3Rpbmd1aXNoaW5nIHRlc3QgaXRlcmF0aW9ucyB1c2luZyBzdWJ0ZXN0cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDo6IDMuNAorCitXaGVuIHNvbWUgb2YgeW91ciB0ZXN0cyBkaWZmZXIgb25seSBieSBhIHNvbWUgdmVyeSBzbWFsbCBkaWZmZXJlbmNlcywgZm9yCitpbnN0YW5jZSBzb21lIHBhcmFtZXRlcnMsIHVuaXR0ZXN0IGFsbG93cyB5b3UgdG8gZGlzdGluZ3Vpc2ggdGhlbSBpbnNpZGUKK3RoZSBib2R5IG9mIGEgdGVzdCBtZXRob2QgdXNpbmcgdGhlIDptZXRoOmB+VGVzdENhc2Uuc3ViVGVzdGAgY29udGV4dCBtYW5hZ2VyLgorCitGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyB0ZXN0OjoKKworICAgY2xhc3MgTnVtYmVyc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgICAgZGVmIHRlc3RfZXZlbihzZWxmKToKKyAgICAgICAgICAgIiIiCisgICAgICAgICAgIFRlc3QgdGhhdCBudW1iZXJzIGJldHdlZW4gMCBhbmQgNSBhcmUgYWxsIGV2ZW4uCisgICAgICAgICAgICIiIgorICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCA2KToKKyAgICAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KGk9aSk6CisgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpICUgMiwgMCkKKword2lsbCBwcm9kdWNlIHRoZSBmb2xsb3dpbmcgb3V0cHV0OjoKKworICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgRkFJTDogdGVzdF9ldmVuIChfX21haW5fXy5OdW1iZXJzVGVzdCkgKGk9MSkKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgRmlsZSAic3VidGVzdHMucHkiLCBsaW5lIDMyLCBpbiB0ZXN0X2V2ZW4KKyAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkgJSAyLCAwKQorICAgQXNzZXJ0aW9uRXJyb3I6IDEgIT0gMAorCisgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICBGQUlMOiB0ZXN0X2V2ZW4gKF9fbWFpbl9fLk51bWJlcnNUZXN0KSAoaT0zKQorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICBGaWxlICJzdWJ0ZXN0cy5weSIsIGxpbmUgMzIsIGluIHRlc3RfZXZlbgorICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaSAlIDIsIDApCisgICBBc3NlcnRpb25FcnJvcjogMSAhPSAwCisKKyAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgIEZBSUw6IHRlc3RfZXZlbiAoX19tYWluX18uTnVtYmVyc1Rlc3QpIChpPTUpCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgIEZpbGUgInN1YnRlc3RzLnB5IiwgbGluZSAzMiwgaW4gdGVzdF9ldmVuCisgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpICUgMiwgMCkKKyAgIEFzc2VydGlvbkVycm9yOiAxICE9IDAKKworV2l0aG91dCB1c2luZyBhIHN1YnRlc3QsIGV4ZWN1dGlvbiB3b3VsZCBzdG9wIGFmdGVyIHRoZSBmaXJzdCBmYWlsdXJlLAorYW5kIHRoZSBlcnJvciB3b3VsZCBiZSBsZXNzIGVhc3kgdG8gZGlhZ25vc2UgYmVjYXVzZSB0aGUgdmFsdWUgb2YgYGBpYGAKK3dvdWxkbid0IGJlIGRpc3BsYXllZDo6CisKKyAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgIEZBSUw6IHRlc3RfZXZlbiAoX19tYWluX18uTnVtYmVyc1Rlc3QpCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgIEZpbGUgInN1YnRlc3RzLnB5IiwgbGluZSAzMiwgaW4gdGVzdF9ldmVuCisgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpICUgMiwgMCkKKyAgIEFzc2VydGlvbkVycm9yOiAxICE9IDAKKworCiAuLiBfdW5pdHRlc3QtY29udGVudHM6CiAKIENsYXNzZXMgYW5kIGZ1bmN0aW9ucwpAQCAtNjc2LDYgKzczOCwyMSBAQAogICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4xCiAKIAorICAgLi4gbWV0aG9kOjogc3ViVGVzdChtc2c9Tm9uZSwgKipwYXJhbXMpCisKKyAgICAgIFJldHVybiBhIGNvbnRleHQgbWFuYWdlciB3aGljaCBleGVjdXRlcyB0aGUgZW5jbG9zZWQgY29kZSBibG9jayBhcyBhCisgICAgICBzdWJ0ZXN0LiAgKm1zZyogYW5kICpwYXJhbXMqIGFyZSBvcHRpb25hbCwgYXJiaXRyYXJ5IHZhbHVlcyB3aGljaCBhcmUKKyAgICAgIGRpc3BsYXllZCB3aGVuZXZlciBhIHN1YnRlc3QgZmFpbHMsIGFsbG93aW5nIHlvdSB0byBpZGVudGlmeSB0aGVtCisgICAgICBjbGVhcmx5LgorCisgICAgICBBIHRlc3QgY2FzZSBjYW4gY29udGFpbiBhbnkgbnVtYmVyIG9mIHN1YnRlc3QgZGVjbGFyYXRpb25zLCBhbmQKKyAgICAgIHRoZXkgY2FuIGJlIGFyYml0cmFyaWx5IG5lc3RlZC4KKworICAgICAgU2VlIDpyZWY6YHN1YnRlc3RzYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKworICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CisKKwogICAgLi4gbWV0aG9kOjogZGVidWcoKQogCiAgICAgICBSdW4gdGhlIHRlc3Qgd2l0aG91dCBjb2xsZWN0aW5nIHRoZSByZXN1bHQuICBUaGlzIGFsbG93cyBleGNlcHRpb25zIHJhaXNlZApAQCAtMTUwMCw3ICsxNTc3LDkgQEAKICAgICAgIGRpcmVjdG9yeSBtdXN0IGJlIHNwZWNpZmllZCBzZXBhcmF0ZWx5LgogCiAgICAgICBJZiBpbXBvcnRpbmcgYSBtb2R1bGUgZmFpbHMsIGZvciBleGFtcGxlIGR1ZSB0byBhIHN5bnRheCBlcnJvciwgdGhlbiB0aGlzCi0gICAgICB3aWxsIGJlIHJlY29yZGVkIGFzIGEgc2luZ2xlIGVycm9yIGFuZCBkaXNjb3Zlcnkgd2lsbCBjb250aW51ZS4KKyAgICAgIHdpbGwgYmUgcmVjb3JkZWQgYXMgYSBzaW5nbGUgZXJyb3IgYW5kIGRpc2NvdmVyeSB3aWxsIGNvbnRpbnVlLiAgSWYgdGhlCisgICAgICBpbXBvcnQgZmFpbHVyZSBpcyBkdWUgdG8gOmV4YzpgU2tpcFRlc3RgIGJlaW5nIHJhaXNlZCwgaXQgd2lsbCBiZSByZWNvcmRlZAorICAgICAgYXMgYSBza2lwIGluc3RlYWQgb2YgYW4gZXJyb3IuCiAKICAgICAgIElmIGEgdGVzdCBwYWNrYWdlIG5hbWUgKGRpcmVjdG9yeSB3aXRoIDpmaWxlOmBfX2luaXRfXy5weWApIG1hdGNoZXMgdGhlCiAgICAgICBwYXR0ZXJuIHRoZW4gdGhlIHBhY2thZ2Ugd2lsbCBiZSBjaGVja2VkIGZvciBhIGBgbG9hZF90ZXN0c2BgCkBAIC0xNTE5LDYgKzE1OTgsMTUgQEAKIAogICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCiAKKyAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisgICAgICAgICBNb2R1bGVzIHRoYXQgcmFpc2UgOmV4YzpgU2tpcFRlc3RgIG9uIGltcG9ydCBhcmUgcmVjb3JkZWQgYXMgc2tpcHMsCisgICAgICAgICBub3QgZXJyb3JzLgorCisgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgICAgUGF0aHMgYXJlIHNvcnRlZCBiZWZvcmUgYmVpbmcgaW1wb3J0ZWQgdG8gZW5zdXJlIGV4ZWN1dGlvbiBvcmRlciBmb3IgYQorICAgICAgICAgZ2l2ZW4gdGVzdCBzdWl0ZSBpcyB0aGUgc2FtZSBldmVuIGlmIHRoZSB1bmRlcmx5aW5nIGZpbGUgc3lzdGVtJ3Mgb3JkZXJpbmcKKyAgICAgICAgIGlzIG5vdCBkZXBlbmRlbnQgb24gZmlsZSBuYW1lIGxpa2UgaW4gZXh0My80LgorCiAKICAgIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBvZiBhIDpjbGFzczpgVGVzdExvYWRlcmAgY2FuIGJlIGNvbmZpZ3VyZWQgZWl0aGVyIGJ5CiAgICBzdWJjbGFzc2luZyBvciBhc3NpZ25tZW50IG9uIGFuIGluc3RhbmNlOgpAQCAtMTcyOSw2ICsxODE3LDIyIEBACiAgICAgICA6YXR0cjpgdW5leHBlY3RlZFN1Y2Nlc3Nlc2AgYXR0cmlidXRlLgogCiAKKyAgIC4uIG1ldGhvZDo6IGFkZFN1YlRlc3QodGVzdCwgc3VidGVzdCwgb3V0Y29tZSkKKworICAgICAgQ2FsbGVkIHdoZW4gYSBzdWJ0ZXN0IGZpbmlzaGVzLiAgKnRlc3QqIGlzIHRoZSB0ZXN0IGNhc2UKKyAgICAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHRlc3QgbWV0aG9kLiAgKnN1YnRlc3QqIGlzIGEgY3VzdG9tCisgICAgICA6Y2xhc3M6YFRlc3RDYXNlYCBpbnN0YW5jZSBkZXNjcmliaW5nIHRoZSBzdWJ0ZXN0LgorCisgICAgICBJZiAqb3V0Y29tZSogaXMgOmNvbnN0OmBOb25lYCwgdGhlIHN1YnRlc3Qgc3VjY2VlZGVkLiAgT3RoZXJ3aXNlLAorICAgICAgaXQgZmFpbGVkIHdpdGggYW4gZXhjZXB0aW9uIHdoZXJlICpvdXRjb21lKiBpcyBhIHR1cGxlIG9mIHRoZSBmb3JtCisgICAgICByZXR1cm5lZCBieSA6ZnVuYzpgc3lzLmV4Y19pbmZvYDogYGAodHlwZSwgdmFsdWUsIHRyYWNlYmFjaylgYC4KKworICAgICAgVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZG9lcyBub3RoaW5nIHdoZW4gdGhlIG91dGNvbWUgaXMgYQorICAgICAgc3VjY2VzcywgYW5kIHJlY29yZHMgc3VidGVzdCBmYWlsdXJlcyBhcyBub3JtYWwgZmFpbHVyZXMuCisKKyAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCisKIC4uIGNsYXNzOjogVGV4dFRlc3RSZXN1bHQoc3RyZWFtLCBkZXNjcmlwdGlvbnMsIHZlcmJvc2l0eSkKIAogICAgQSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiA6Y2xhc3M6YFRlc3RSZXN1bHRgIHVzZWQgYnkgdGhlCkBAIC0xODM4LDYgKzE5NDIsMTAgQEAKICAgICAgIFRoZSAqdmVyYm9zaXR5KiwgKmZhaWxmYXN0KiwgKmNhdGNoYnJlYWsqLCAqYnVmZmVyKgogICAgICAgYW5kICp3YXJuaW5ncyogcGFyYW1ldGVycyB3ZXJlIGFkZGVkLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgVGhlICpkZWZhdWx0VGVzdCogcGFyYW1ldGVyIHdhcyBjaGFuZ2VkIHRvIGFsc28gYWNjZXB0IGFuIGl0ZXJhYmxlIG9mCisgICAgICB0ZXN0IG5hbWVzLgorCiAKIGxvYWRfdGVzdHMgUHJvdG9jb2wKICMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3VybGxpYi5lcnJvci5yc3QgYi9Eb2MvbGlicmFyeS91cmxsaWIuZXJyb3IucnN0CmluZGV4IDljM2ZlOTEuLjdiZDA0YjEgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3VybGxpYi5lcnJvci5yc3QKKysrIGIvRG9jL2xpYnJhcnkvdXJsbGliLmVycm9yLnJzdApAQCAtNDUsNiArNDUsMTMgQEAKIAogICAgICAgVGhpcyBpcyB1c3VhbGx5IGEgc3RyaW5nIGV4cGxhaW5pbmcgdGhlIHJlYXNvbiBmb3IgdGhpcyBlcnJvci4KIAorICAgLi4gYXR0cmlidXRlOjogaGVhZGVycworCisgICAgICBUaGUgSFRUUCByZXNwb25zZSBoZWFkZXJzIGZvciB0aGUgSFRUUCByZXF1ZXN0IHRoYXQgY2F1c2UgdGhlCisgICAgICA6ZXhjOmBIVFRQRXJyb3JgLgorCisgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKKwogLi4gZXhjZXB0aW9uOjogQ29udGVudFRvb1Nob3J0RXJyb3IobXNnLCBjb250ZW50KQogCiAgICBUaGlzIGV4Y2VwdGlvbiBpcyByYWlzZWQgd2hlbiB0aGUgOmZ1bmM6YHVybHJldHJpZXZlYCBmdW5jdGlvbiBkZXRlY3RzIHRoYXQKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3VybGxpYi5yZXF1ZXN0LnJzdCBiL0RvYy9saWJyYXJ5L3VybGxpYi5yZXF1ZXN0LnJzdAppbmRleCA5ZjNlMTJlLi45MTY3M2Y0IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS91cmxsaWIucmVxdWVzdC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvdXJsbGliLnJlcXVlc3QucnN0CkBAIC0zNTYsNiArMzU2LDExIEBACiAKICAgIE9wZW4gbG9jYWwgZmlsZXMuCiAKKy4uIGNsYXNzOjogRGF0YUhhbmRsZXIoKQorCisgICBPcGVuIGRhdGEgVVJMcy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CiAKIC4uIGNsYXNzOjogRlRQSGFuZGxlcigpCiAKQEAgLTM5MSw2ICszOTYsMTIgQEAKIAogICAgVGhlIG9yaWdpbmFsIFVSTCBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorCisgICBSZXF1ZXN0LmZ1bGxfdXJsIGlzIGEgcHJvcGVydHkgd2l0aCBzZXR0ZXIsIGdldHRlciBhbmQgYSBkZWxldGVyLiBHZXR0aW5nCisgICA6YXR0cjpgflJlcXVlc3QuZnVsbF91cmxgIHJldHVybnMgdGhlIG9yaWdpbmFsIHJlcXVlc3QgVVJMIHdpdGggdGhlCisgICBmcmFnbWVudCwgaWYgaXQgd2FzIHByZXNlbnQuCisKIC4uIGF0dHJpYnV0ZTo6IFJlcXVlc3QudHlwZQogCiAgICBUaGUgVVJJIHNjaGVtZS4KQEAgLTQxMyw2ICs0MjQsMTAgQEAKIAogICAgVGhlIGVudGl0eSBib2R5IGZvciB0aGUgcmVxdWVzdCwgb3IgTm9uZSBpZiBub3Qgc3BlY2lmaWVkLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgQ2hhbmdpbmcgdmFsdWUgb2YgOmF0dHI6YFJlcXVlc3QuZGF0YWAgbm93IGRlbGV0ZXMgIkNvbnRlbnQtTGVuZ3RoIgorICAgICAgaGVhZGVyIGlmIGl0IHdhcyBwcmV2aW91c2x5IHNldCBvciBjYWxjdWxhdGVkLgorCiAuLiBhdHRyaWJ1dGU6OiBSZXF1ZXN0LnVudmVyaWZpYWJsZQogCiAgICBib29sZWFuLCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgcmVxdWVzdCBpcyB1bnZlcmlmaWFibGUgYXMgZGVmaW5lZApAQCAtNDYxLDEwICs0NzYsMjIgQEAKICAgIHVucmVkaXJlY3RlZCkuCiAKIAorLi4gbWV0aG9kOjogUmVxdWVzdC5yZW1vdmVfaGVhZGVyKGhlYWRlcikKKworICAgUmVtb3ZlIG5hbWVkIGhlYWRlciBmcm9tIHRoZSByZXF1ZXN0IGluc3RhbmNlIChib3RoIGZyb20gcmVndWxhciBhbmQKKyAgIHVucmVkaXJlY3RlZCBoZWFkZXJzKS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CisKKwogLi4gbWV0aG9kOjogUmVxdWVzdC5nZXRfZnVsbF91cmwoKQogCiAgICBSZXR1cm4gdGhlIFVSTCBnaXZlbiBpbiB0aGUgY29uc3RydWN0b3IuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40CisKKyAgIFJldHVybnMgOmF0dHI6YFJlcXVlc3QuZnVsbF91cmxgCisKIAogLi4gbWV0aG9kOjogUmVxdWVzdC5zZXRfcHJveHkoaG9zdCwgdHlwZSkKIApAQCAtNDczLDU0ICs1MDAsNiBAQAogICAgVVJMIGdpdmVuIGluIHRoZSBjb25zdHJ1Y3Rvci4KIAogCi0uLiBtZXRob2Q6OiBSZXF1ZXN0LmFkZF9kYXRhKGRhdGEpCi0KLSAgIFNldCB0aGUgOmNsYXNzOmBSZXF1ZXN0YCBkYXRhIHRvICpkYXRhKi4gIFRoaXMgaXMgaWdub3JlZCBieSBhbGwgaGFuZGxlcnMgZXhjZXB0Ci0gICBIVFRQIGhhbmRsZXJzIC0tLSBhbmQgdGhlcmUgaXQgc2hvdWxkIGJlIGEgYnl0ZSBzdHJpbmcsIGFuZCB3aWxsIGNoYW5nZSB0aGUKLSAgIHJlcXVlc3QgdG8gYmUgYGBQT1NUYGAgcmF0aGVyIHRoYW4gYGBHRVRgYC4gIERlcHJlY2F0ZWQgaW4gMy4zLCB1c2UKLSAgIDphdHRyOmBSZXF1ZXN0LmRhdGFgLgotCi0gICAuLiBkZXByZWNhdGVkLXJlbW92ZWQ6OiAzLjMgMy40Ci0KLQotLi4gbWV0aG9kOjogUmVxdWVzdC5oYXNfZGF0YSgpCi0KLSAgIFJldHVybiB3aGV0aGVyIHRoZSBpbnN0YW5jZSBoYXMgYSBub24tXCBgYE5vbmVgYCBkYXRhLiBEZXByZWNhdGVkIGluIDMuMywKLSAgIHVzZSA6YXR0cjpgUmVxdWVzdC5kYXRhYC4KLQotICAgLi4gZGVwcmVjYXRlZC1yZW1vdmVkOjogMy4zIDMuNAotCi0KLS4uIG1ldGhvZDo6IFJlcXVlc3QuZ2V0X2RhdGEoKQotCi0gICBSZXR1cm4gdGhlIGluc3RhbmNlJ3MgZGF0YS4gIERlcHJlY2F0ZWQgaW4gMy4zLCB1c2UgOmF0dHI6YFJlcXVlc3QuZGF0YWAuCi0KLSAgIC4uIGRlcHJlY2F0ZWQtcmVtb3ZlZDo6IDMuMyAzLjQKLQotCi0uLiBtZXRob2Q6OiBSZXF1ZXN0LmdldF90eXBlKCkKLQotICAgUmV0dXJuIHRoZSB0eXBlIG9mIHRoZSBVUkwgLS0tIGFsc28ga25vd24gYXMgdGhlIHNjaGVtZS4gIERlcHJlY2F0ZWQgaW4gMy4zLAotICAgdXNlIDphdHRyOmBSZXF1ZXN0LnR5cGVgLgotCi0gICAuLiBkZXByZWNhdGVkLXJlbW92ZWQ6OiAzLjMgMy40Ci0KLQotLi4gbWV0aG9kOjogUmVxdWVzdC5nZXRfaG9zdCgpCi0KLSAgIFJldHVybiB0aGUgaG9zdCB0byB3aGljaCBhIGNvbm5lY3Rpb24gd2lsbCBiZSBtYWRlLiBEZXByZWNhdGVkIGluIDMuMywgdXNlCi0gICA6YXR0cjpgUmVxdWVzdC5ob3N0YC4KLQotICAgLi4gZGVwcmVjYXRlZC1yZW1vdmVkOjogMy4zIDMuNAotCi0KLS4uIG1ldGhvZDo6IFJlcXVlc3QuZ2V0X3NlbGVjdG9yKCkKLQotICAgUmV0dXJuIHRoZSBzZWxlY3RvciAtLS0gdGhlIHBhcnQgb2YgdGhlIFVSTCB0aGF0IGlzIHNlbnQgdG8gdGhlIHNlcnZlci4KLSAgIERlcHJlY2F0ZWQgaW4gMy4zLCB1c2UgOmF0dHI6YFJlcXVlc3Quc2VsZWN0b3JgLgotCi0gICAuLiBkZXByZWNhdGVkLXJlbW92ZWQ6OiAzLjMgMy40Ci0KIC4uIG1ldGhvZDo6IFJlcXVlc3QuZ2V0X2hlYWRlcihoZWFkZXJfbmFtZSwgZGVmYXVsdD1Ob25lKQogCiAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBnaXZlbiBoZWFkZXIuIElmIHRoZSBoZWFkZXIgaXMgbm90IHByZXNlbnQsIHJldHVybgpAQCAtNTMxLDI2ICs1MTAsMTAgQEAKIAogICAgUmV0dXJuIGEgbGlzdCBvZiB0dXBsZXMgKGhlYWRlcl9uYW1lLCBoZWFkZXJfdmFsdWUpIG9mIHRoZSBSZXF1ZXN0IGhlYWRlcnMuCiAKLQotLi4gbWV0aG9kOjogUmVxdWVzdC5zZXRfcHJveHkoaG9zdCwgdHlwZSkKLQotLi4gbWV0aG9kOjogUmVxdWVzdC5nZXRfb3JpZ2luX3JlcV9ob3N0KCkKLQotICAgUmV0dXJuIHRoZSByZXF1ZXN0LWhvc3Qgb2YgdGhlIG9yaWdpbiB0cmFuc2FjdGlvbiwgYXMgZGVmaW5lZCBieQotICAgOnJmYzpgMjk2NWAuICBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSA6Y2xhc3M6YFJlcXVlc3RgIGNvbnN0cnVjdG9yLgotICAgRGVwcmVjYXRlZCBpbiAzLjMsIHVzZSA6YXR0cjpgUmVxdWVzdC5vcmlnaW5fcmVxX2hvc3RgLgotCi0gICAuLiBkZXByZWNhdGVkLXJlbW92ZWQ6OiAzLjMgMy40Ci0KLQotLi4gbWV0aG9kOjogUmVxdWVzdC5pc191bnZlcmlmaWFibGUoKQotCi0gICBSZXR1cm4gd2hldGhlciB0aGUgcmVxdWVzdCBpcyB1bnZlcmlmaWFibGUsIGFzIGRlZmluZWQgYnkgUkZDIDI5NjUuIFNlZSB0aGUKLSAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSA6Y2xhc3M6YFJlcXVlc3RgIGNvbnN0cnVjdG9yLiAgRGVwcmVjYXRlZCBpbiAzLjMsIHVzZQotICAgOmF0dHI6YFJlcXVlc3QudW52ZXJpZmlhYmxlYC4KLQotICAgLi4gZGVwcmVjYXRlZC1yZW1vdmVkOjogMy4zIDMuNAotCisuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICBSZXF1ZXN0IG1ldGhvZHMgYWRkX2RhdGEsIGhhc19kYXRhLCBnZXRfZGF0YSwgZ2V0X3R5cGUsIGdldF9ob3N0LAorICBnZXRfc2VsZWN0b3IsIGdldF9vcmlnaW5fcmVxX2hvc3QgYW5kIGlzX3VudmVyaWZpYWJsZSBkZXByZWNhdGVkIHNpbmNlIDMuMworICBoYXZlIGJlZW4gcmVtb3ZlZC4KIAogLi4gX29wZW5lci1kaXJlY3Rvci1vYmplY3RzOgogCkBAIC05ODIsNiArOTQ1LDIxIEBACiAgICAgICBob3N0bmFtZSBpcyBnaXZlbiwgYW4gOmV4YzpgVVJMRXJyb3JgIGlzIHJhaXNlZC4KIAogCisuLiBfZGF0YS1oYW5kbGVyLW9iamVjdHM6CisKK0RhdGFIYW5kbGVyIE9iamVjdHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gbWV0aG9kOjogRGF0YUhhbmRsZXIuZGF0YV9vcGVuKHJlcSkKKworICAgUmVhZCBhIGRhdGEgVVJMLiBUaGlzIGtpbmQgb2YgVVJMIGNvbnRhaW5zIHRoZSBjb250ZW50IGVuY29kZWQgaW4gdGhlIFVSTAorICAgaXRzZWxmLiBUaGUgZGF0YSBVUkwgc3ludGF4IGlzIHNwZWNpZmllZCBpbiA6cmZjOmAyMzk3YC4gVGhpcyBpbXBsZW1lbnRhdGlvbgorICAgaWdub3JlcyB3aGl0ZSBzcGFjZXMgaW4gYmFzZTY0IGVuY29kZWQgZGF0YSBVUkxzIHNvIHRoZSBVUkwgbWF5IGJlIHdyYXBwZWQKKyAgIGluIHdoYXRldmVyIHNvdXJjZSBmaWxlIGl0IGNvbWVzIGZyb20uIEJ1dCBldmVuIHRob3VnaCBzb21lIGJyb3dzZXJzIGRvbid0CisgICBtaW5kIGFib3V0IGEgbWlzc2luZyBwYWRkaW5nIGF0IHRoZSBlbmQgb2YgYSBiYXNlNjQgZW5jb2RlZCBkYXRhIFVSTCwgdGhpcworICAgaW1wbGVtZW50YXRpb24gd2lsbCByYWlzZSBhbiA6ZXhjOmBWYWx1ZUVycm9yYCBpbiB0aGF0IGNhc2UuCisKKwogLi4gX2Z0cC1oYW5kbGVyLW9iamVjdHM6CiAKIEZUUEhhbmRsZXIgT2JqZWN0cwpAQCAtMTM5Nyw3ICsxMzc1LDkgQEAKICAgICAgcGFpcjogRlRQOyBwcm90b2NvbAogCiAqIEN1cnJlbnRseSwgb25seSB0aGUgZm9sbG93aW5nIHByb3RvY29scyBhcmUgc3VwcG9ydGVkOiBIVFRQICh2ZXJzaW9ucyAwLjkgYW5kCi0gIDEuMCksIEZUUCwgYW5kIGxvY2FsIGZpbGVzLgorICAxLjApLCBGVFAsIGxvY2FsIGZpbGVzLCBhbmQgZGF0YSBVUkxzLgorCisgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy40IEFkZGVkIHN1cHBvcnQgZm9yIGRhdGEgVVJMcy4KIAogKiBUaGUgY2FjaGluZyBmZWF0dXJlIG9mIDpmdW5jOmB1cmxyZXRyaWV2ZWAgaGFzIGJlZW4gZGlzYWJsZWQgdW50aWwgc29tZW9uZQogICBmaW5kcyB0aGUgdGltZSB0byBoYWNrIHByb3BlciBwcm9jZXNzaW5nIG9mIEV4cGlyYXRpb24gdGltZSBoZWFkZXJzLgpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvdmVudi5yc3QgYi9Eb2MvbGlicmFyeS92ZW52LnJzdAppbmRleCBkY2VhNDlmLi5lNzAxNmE4IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS92ZW52LnJzdAorKysgYi9Eb2MvbGlicmFyeS92ZW52LnJzdApAQCAtNzksOCArNzksOCBAQAogICAgICogYGBzeXN0ZW1fc2l0ZV9wYWNrYWdlc2BgIC0tIGEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHRoYXQgdGhlIHN5c3RlbSBQeXRob24KICAgICAgIHNpdGUtcGFja2FnZXMgc2hvdWxkIGJlIGF2YWlsYWJsZSB0byB0aGUgZW52aXJvbm1lbnQgKGRlZmF1bHRzIHRvIGBgRmFsc2VgYCkuCiAKLSAgICAqIGBgY2xlYXJgYCAtLSBhIEJvb2xlYW4gdmFsdWUgd2hpY2gsIGlmIFRydWUsIHdpbGwgZGVsZXRlIGFueSBleGlzdGluZyB0YXJnZXQKLSAgICAgIGRpcmVjdG9yeSBpbnN0ZWFkIG9mIHJhaXNpbmcgYW4gZXhjZXB0aW9uIChkZWZhdWx0cyB0byBgYEZhbHNlYGApLgorICAgICogYGBjbGVhcmBgIC0tIGEgQm9vbGVhbiB2YWx1ZSB3aGljaCwgaWYgVHJ1ZSwgd2lsbCBkZWxldGUgdGhlIGNvbnRlbnRzIG9mCisgICAgICBhbnkgZXhpc3RpbmcgdGFyZ2V0IGRpcmVjdG9yeSwgYmVmb3JlIGNyZWF0aW5nIHRoZSBlbnZpcm9ubWVudC4KIAogICAgICogYGBzeW1saW5rc2BgIC0tIGEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gYXR0ZW1wdCB0byBzeW1saW5rIHRoZQogICAgICAgUHl0aG9uIGJpbmFyeSAoYW5kIGFueSBuZWNlc3NhcnkgRExMcyBvciBvdGhlciBiaW5hcmllcywKQEAgLTkyLDcgKzkyLDYgQEAKICAgICAgIHVwZ3JhZGVkIGluLXBsYWNlIChkZWZhdWx0cyB0byBgYEZhbHNlYGApLgogCiAKLQogICAgIENyZWF0b3JzIG9mIHRoaXJkLXBhcnR5IHZpcnR1YWwgZW52aXJvbm1lbnQgdG9vbHMgd2lsbCBiZSBmcmVlIHRvIHVzZSB0aGUKICAgICBwcm92aWRlZCBgYEVudkJ1aWxkZXJgYCBjbGFzcyBhcyBhIGJhc2UgY2xhc3MuCiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3dhdmUucnN0IGIvRG9jL2xpYnJhcnkvd2F2ZS5yc3QKaW5kZXggYWZhZmI0NS4uMmU2NGQwMCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvd2F2ZS5yc3QKKysrIGIvRG9jL2xpYnJhcnkvd2F2ZS5yc3QKQEAgLTk4LDggKzk4LDkgQEAKIAogLi4gbWV0aG9kOjogV2F2ZV9yZWFkLmdldHBhcmFtcygpCiAKLSAgIFJldHVybnMgYSB0dXBsZSBgYChuY2hhbm5lbHMsIHNhbXB3aWR0aCwgZnJhbWVyYXRlLCBuZnJhbWVzLCBjb21wdHlwZSwKLSAgIGNvbXBuYW1lKWBgLCBlcXVpdmFsZW50IHRvIG91dHB1dCBvZiB0aGUgOm1ldGg6YGdldFwqYCBtZXRob2RzLgorICAgUmV0dXJucyBhIDpmdW5jOmB+Y29sbGVjdGlvbnMubmFtZWR0dXBsZWAgYGAobmNoYW5uZWxzLCBzYW1wd2lkdGgsCisgICBmcmFtZXJhdGUsIG5mcmFtZXMsIGNvbXB0eXBlLCBjb21wbmFtZSlgYCwgZXF1aXZhbGVudCB0byBvdXRwdXQgb2YgdGhlCisgICA6bWV0aDpgZ2V0XCpgIG1ldGhvZHMuCiAKIAogLi4gbWV0aG9kOjogV2F2ZV9yZWFkLnJlYWRmcmFtZXMobikKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3dlYWtyZWYucnN0IGIvRG9jL2xpYnJhcnkvd2Vha3JlZi5yc3QKaW5kZXggMjI0ZjQ0Mi4uNWI1ZTQ2MCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvd2Vha3JlZi5yc3QKKysrIGIvRG9jL2xpYnJhcnkvd2Vha3JlZi5yc3QKQEAgLTUxLDEwICs1MSwxNSBAQAogYnV0IGtlZXBzIHdlYWsgcmVmZXJlbmNlcyB0byBpdHMgZWxlbWVudHMsIGp1c3QgbGlrZSBhCiA6Y2xhc3M6YFdlYWtLZXlEaWN0aW9uYXJ5YCBkb2VzLgogCi1Nb3N0IHByb2dyYW1zIHNob3VsZCBmaW5kIHRoYXQgdXNpbmcgb25lIG9mIHRoZXNlIHdlYWsgY29udGFpbmVyIHR5cGVzIGlzIGFsbAotdGhleSBuZWVkIC0tIGl0J3Mgbm90IHVzdWFsbHkgbmVjZXNzYXJ5IHRvIGNyZWF0ZSB5b3VyIG93biB3ZWFrIHJlZmVyZW5jZXMKLWRpcmVjdGx5LiAgVGhlIGxvdy1sZXZlbCBtYWNoaW5lcnkgdXNlZCBieSB0aGUgd2VhayBkaWN0aW9uYXJ5IGltcGxlbWVudGF0aW9ucwotaXMgZXhwb3NlZCBieSB0aGUgOm1vZDpgd2Vha3JlZmAgbW9kdWxlIGZvciB0aGUgYmVuZWZpdCBvZiBhZHZhbmNlZCB1c2VzLgorOmNsYXNzOmBmaW5hbGl6ZWAgcHJvdmlkZXMgYSBzdHJhaWdodCBmb3J3YXJkIHdheSB0byByZWdpc3RlciBhCitjbGVhbnVwIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGFuIG9iamVjdCBpcyBnYXJiYWdlIGNvbGxlY3RlZC4KK1RoaXMgaXMgc2ltcGxlciB0byB1c2UgdGhhbiBzZXR0aW5nIHVwIGEgY2FsbGJhY2sgZnVuY3Rpb24gb24gYSByYXcKK3dlYWsgcmVmZXJlbmNlLgorCitNb3N0IHByb2dyYW1zIHNob3VsZCBmaW5kIHRoYXQgdXNpbmcgb25lIG9mIHRoZXNlIHdlYWsgY29udGFpbmVyIHR5cGVzCitvciA6Y2xhc3M6YGZpbmFsaXplYCBpcyBhbGwgdGhleSBuZWVkIC0tIGl0J3Mgbm90IHVzdWFsbHkgbmVjZXNzYXJ5IHRvCitjcmVhdGUgeW91ciBvd24gd2VhayByZWZlcmVuY2VzIGRpcmVjdGx5LiAgVGhlIGxvdy1sZXZlbCBtYWNoaW5lcnkgaXMKK2V4cG9zZWQgYnkgdGhlIDptb2Q6YHdlYWtyZWZgIG1vZHVsZSBmb3IgdGhlIGJlbmVmaXQgb2YgYWR2YW5jZWQgdXNlcy4KIAogTm90IGFsbCBvYmplY3RzIGNhbiBiZSB3ZWFrbHkgcmVmZXJlbmNlZDsgdGhvc2Ugb2JqZWN0cyB3aGljaCBjYW4gaW5jbHVkZSBjbGFzcwogaW5zdGFuY2VzLCBmdW5jdGlvbnMgd3JpdHRlbiBpbiBQeXRob24gKGJ1dCBub3QgaW4gQyksIGluc3RhbmNlIG1ldGhvZHMsIHNldHMsCkBAIC0xMTEsNiArMTE2LDI0IEBACiAKICAgIFRoaXMgaXMgYSBzdWJjbGFzc2FibGUgdHlwZSByYXRoZXIgdGhhbiBhIGZhY3RvcnkgZnVuY3Rpb24uCiAKKyAgIC4uIGF0dHJpYnV0ZTo6IF9fY2FsbGJhY2tfXworCisgICAgICBUaGlzIHJlYWQtb25seSBhdHRyaWJ1dGUgcmV0dXJucyB0aGUgY2FsbGJhY2sgY3VycmVudGx5IGFzc29jaWF0ZWQgdG8gdGhlCisgICAgICB3ZWFrcmVmLiAgSWYgdGhlcmUgaXMgbm8gY2FsbGJhY2sgb3IgaWYgdGhlIHJlZmVyZW50IG9mIHRoZSB3ZWFrcmVmIGlzCisgICAgICBubyBsb25nZXIgYWxpdmUgdGhlbiB0aGlzIGF0dHJpYnV0ZSB3aWxsIGhhdmUgdmFsdWUgYGBOb25lYGAuCisKKyAgIC4uIG5vdGU6OgorCisgICAgICBMaWtlIDptZXRoOmBfX2RlbF9fYCBtZXRob2RzLCB3ZWFrIHJlZmVyZW5jZSBjYWxsYmFja3MgY2FuIGJlCisgICAgICBjYWxsZWQgZHVyaW5nIGludGVycHJldGVyIHNodXRkb3duIHdoZW4gbW9kdWxlIGdsb2JhbHMgaGF2ZSBiZWVuCisgICAgICBvdmVyd3JpdHRlbiB3aXRoIDpjb25zdDpgTm9uZWAuICBUaGlzIGNhbiBtYWtlIHdyaXRpbmcgcm9idXN0CisgICAgICB3ZWFrIHJlZmVyZW5jZSBjYWxsYmFja3MgYSBjaGFsbGVuZ2UuICBDYWxsYmFja3MgcmVnaXN0ZXJlZAorICAgICAgdXNpbmcgOmNsYXNzOmBmaW5hbGl6ZWAgZG8gbm90IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhpcyBpc3N1ZQorICAgICAgYmVjYXVzZSB0aGV5IHdpbGwgbm90IGJlIHJ1biBhZnRlciBtb2R1bGUgdGVhcmRvd24gaGFzIGJlZ3VuLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgICAgQWRkZWQgdGhlIDphdHRyOmBfX2NhbGxiYWNrX19gIGF0dHJpYnV0ZS4KKwogCiAuLiBmdW5jdGlvbjo6IHByb3h5KG9iamVjdFssIGNhbGxiYWNrXSkKIApAQCAtMTkyLDYgKzIxNSw5NSBAQAogICAgZGlzY2FyZGVkIHdoZW4gbm8gc3Ryb25nIHJlZmVyZW5jZSB0byBpdCBleGlzdHMgYW55IG1vcmUuCiAKIAorLi4gY2xhc3M6OiBXZWFrTWV0aG9kKG1ldGhvZCkKKworICAgQSBjdXN0b20gOmNsYXNzOmByZWZgIHN1YmNsYXNzIHdoaWNoIHNpbXVsYXRlcyBhIHdlYWsgcmVmZXJlbmNlIHRvIGEgYm91bmQKKyAgIG1ldGhvZCAoaS5lLiwgYSBtZXRob2QgZGVmaW5lZCBvbiBhIGNsYXNzIGFuZCBsb29rZWQgdXAgb24gYW4gaW5zdGFuY2UpLgorICAgU2luY2UgYSBib3VuZCBtZXRob2QgaXMgZXBoZW1lcmFsLCBhIHN0YW5kYXJkIHdlYWsgcmVmZXJlbmNlIGNhbm5vdCBrZWVwCisgICBob2xkIG9mIGl0LiAgOmNsYXNzOmBXZWFrTWV0aG9kYCBoYXMgc3BlY2lhbCBjb2RlIHRvIHJlY3JlYXRlIHRoZSBib3VuZAorICAgbWV0aG9kIHVudGlsIGVpdGhlciB0aGUgb2JqZWN0IG9yIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiBkaWVzOjoKKworICAgICAgPj4+IGNsYXNzIEM6CisgICAgICAuLi4gICAgIGRlZiBtZXRob2Qoc2VsZik6CisgICAgICAuLi4gICAgICAgICBwcmludCgibWV0aG9kIGNhbGxlZCEiKQorICAgICAgLi4uCisgICAgICA+Pj4gYyA9IEMoKQorICAgICAgPj4+IHIgPSB3ZWFrcmVmLnJlZihjLm1ldGhvZCkKKyAgICAgID4+PiByKCkKKyAgICAgID4+PiByID0gd2Vha3JlZi5XZWFrTWV0aG9kKGMubWV0aG9kKQorICAgICAgPj4+IHIoKQorICAgICAgPGJvdW5kIG1ldGhvZCBDLm1ldGhvZCBvZiA8X19tYWluX18uQyBvYmplY3QgYXQgMHg3ZmM4NTk4MzAyMjA+PgorICAgICAgPj4+IHIoKSgpCisgICAgICBtZXRob2QgY2FsbGVkIQorICAgICAgPj4+IGRlbCBjCisgICAgICA+Pj4gZ2MuY29sbGVjdCgpCisgICAgICAwCisgICAgICA+Pj4gcigpCisgICAgICA+Pj4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CisKKy4uIGNsYXNzOjogZmluYWxpemUob2JqLCBmdW5jLCAqYXJncywgKiprd2FyZ3MpCisKKyAgIFJldHVybiBhIGNhbGxhYmxlIGZpbmFsaXplciBvYmplY3Qgd2hpY2ggd2lsbCBiZSBjYWxsZWQgd2hlbiAqb2JqKgorICAgaXMgZ2FyYmFnZSBjb2xsZWN0ZWQuICBBIGZpbmFsaXplciBpcyAqYWxpdmUqIHVudGlsIGl0IGlzIGNhbGxlZAorICAgKGVpdGhlciBleHBsaWNpdGx5IG9yIGF0IGdhcmJhZ2UgY29sbGVjdGlvbiksIGFuZCBhZnRlciB0aGF0IGl0IGlzCisgICAqZGVhZCouICBDYWxsaW5nIGEgbGl2ZSBmaW5hbGl6ZXIgcmV0dXJucyB0aGUgcmVzdWx0IG9mIGV2YWx1YXRpbmcKKyAgIGBgZnVuYygqYXJnLCAqKmt3YXJncylgYCwgd2hlcmVhcyBjYWxsaW5nIGEgZGVhZCBmaW5hbGl6ZXIgcmV0dXJucworICAgOmNvbnN0OmBOb25lYC4KKworICAgRXhjZXB0aW9ucyByYWlzZWQgYnkgZmluYWxpemVyIGNhbGxiYWNrcyBkdXJpbmcgZ2FyYmFnZSBjb2xsZWN0aW9uCisgICB3aWxsIGJlIHNob3duIG9uIHRoZSBzdGFuZGFyZCBlcnJvciBvdXRwdXQsIGJ1dCBjYW5ub3QgYmUKKyAgIHByb3BhZ2F0ZWQuICBUaGV5IGFyZSBoYW5kbGVkIGluIHRoZSBzYW1lIHdheSBhcyBleGNlcHRpb25zIHJhaXNlZAorICAgZnJvbSBhbiBvYmplY3QncyA6bWV0aDpgX19kZWxfX2AgbWV0aG9kIG9yIGEgd2VhayByZWZlcmVuY2UncworICAgY2FsbGJhY2suCisKKyAgIFdoZW4gdGhlIHByb2dyYW0gZXhpdHMsIGVhY2ggcmVtYWluaW5nIGxpdmUgZmluYWxpemVyIGlzIGNhbGxlZAorICAgdW5sZXNzIGl0cyA6YXR0cjpgYXRleGl0YCBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0IHRvIGZhbHNlLiAgVGhleQorICAgYXJlIGNhbGxlZCBpbiByZXZlcnNlIG9yZGVyIG9mIGNyZWF0aW9uLgorCisgICBBIGZpbmFsaXplciB3aWxsIG5ldmVyIGludm9rZSBpdHMgY2FsbGJhY2sgZHVyaW5nIHRoZSBsYXRlciBwYXJ0IG9mCisgICB0aGUgaW50ZXJwcmV0ZXIgc2h1dGRvd24gd2hlbiBtb2R1bGUgZ2xvYmFscyBhcmUgbGlhYmxlIHRvIGhhdmUKKyAgIGJlZW4gcmVwbGFjZWQgYnkgOmNvbnN0OmBOb25lYC4KKworICAgLi4gbWV0aG9kOjogX19jYWxsX18oKQorCisgICAgICBJZiAqc2VsZiogaXMgYWxpdmUgdGhlbiBtYXJrIGl0IGFzIGRlYWQgYW5kIHJldHVybiB0aGUgcmVzdWx0IG9mCisgICAgICBjYWxsaW5nIGBgZnVuYygqYXJncywgKiprd2FyZ3MpYGAuICBJZiAqc2VsZiogaXMgZGVhZCB0aGVuIHJldHVybgorICAgICAgOmNvbnN0OmBOb25lYC4KKworICAgLi4gbWV0aG9kOjogZGV0YWNoKCkKKworICAgICAgSWYgKnNlbGYqIGlzIGFsaXZlIHRoZW4gbWFyayBpdCBhcyBkZWFkIGFuZCByZXR1cm4gdGhlIHR1cGxlCisgICAgICBgYChvYmosIGZ1bmMsIGFyZ3MsIGt3YXJncylgYC4gIElmICpzZWxmKiBpcyBkZWFkIHRoZW4gcmV0dXJuCisgICAgICA6Y29uc3Q6YE5vbmVgLgorCisgICAuLiBtZXRob2Q6OiBwZWVrKCkKKworICAgICAgSWYgKnNlbGYqIGlzIGFsaXZlIHRoZW4gcmV0dXJuIHRoZSB0dXBsZSBgYChvYmosIGZ1bmMsIGFyZ3MsCisgICAgICBrd2FyZ3MpYGAuICBJZiAqc2VsZiogaXMgZGVhZCB0aGVuIHJldHVybiA6Y29uc3Q6YE5vbmVgLgorCisgICAuLiBhdHRyaWJ1dGU6OiBhbGl2ZQorCisgICAgICBQcm9wZXJ0eSB3aGljaCBpcyB0cnVlIGlmIHRoZSBmaW5hbGl6ZXIgaXMgYWxpdmUsIGZhbHNlIG90aGVyd2lzZS4KKworICAgLi4gYXR0cmlidXRlOjogYXRleGl0CisKKyAgICAgIEEgd3JpdGFibGUgYm9vbGVhbiBwcm9wZXJ0eSB3aGljaCBieSBkZWZhdWx0IGlzIHRydWUuICBXaGVuIHRoZQorICAgICAgcHJvZ3JhbSBleGl0cywgaXQgY2FsbHMgYWxsIHJlbWFpbmluZyBsaXZlIGZpbmFsaXplcnMgZm9yIHdoaWNoCisgICAgICA6YXR0cjpgLmF0ZXhpdGAgaXMgdHJ1ZS4gIFRoZXkgYXJlIGNhbGxlZCBpbiByZXZlcnNlIG9yZGVyIG9mCisgICAgICBjcmVhdGlvbi4KKworICAgLi4gbm90ZTo6CisKKyAgICAgIEl0IGlzIGltcG9ydGFudCB0byBlbnN1cmUgdGhhdCAqZnVuYyosICphcmdzKiBhbmQgKmt3YXJncyogZG8KKyAgICAgIG5vdCBvd24gYW55IHJlZmVyZW5jZXMgdG8gKm9iaiosIGVpdGhlciBkaXJlY3RseSBvciBpbmRpcmVjdGx5LAorICAgICAgc2luY2Ugb3RoZXJ3aXNlICpvYmoqIHdpbGwgbmV2ZXIgYmUgZ2FyYmFnZSBjb2xsZWN0ZWQuICBJbgorICAgICAgcGFydGljdWxhciwgKmZ1bmMqIHNob3VsZCBub3QgYmUgYSBib3VuZCBtZXRob2Qgb2YgKm9iaiouCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCisKIC4uIGRhdGE6OiBSZWZlcmVuY2VUeXBlCiAKICAgIFRoZSB0eXBlIG9iamVjdCBmb3Igd2VhayByZWZlcmVuY2VzIG9iamVjdHMuCkBAIC0yMzIsOCArMzQ0LDkgQEAKIFdlYWsgUmVmZXJlbmNlIE9iamVjdHMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotV2VhayByZWZlcmVuY2Ugb2JqZWN0cyBoYXZlIG5vIGF0dHJpYnV0ZXMgb3IgbWV0aG9kcywgYnV0IGRvIGFsbG93IHRoZSByZWZlcmVudAotdG8gYmUgb2J0YWluZWQsIGlmIGl0IHN0aWxsIGV4aXN0cywgYnkgY2FsbGluZyBpdDoKK1dlYWsgcmVmZXJlbmNlIG9iamVjdHMgaGF2ZSBubyBtZXRob2RzIGFuZCBubyBhdHRyaWJ1dGVzIGJlc2lkZXMKKzphdHRyOmByZWYuX19jYWxsYmFja19fYC4gQSB3ZWFrIHJlZmVyZW5jZSBvYmplY3QgYWxsb3dzIHRoZSByZWZlcmVudCB0byBiZQorb2J0YWluZWQsIGlmIGl0IHN0aWxsIGV4aXN0cywgYnkgY2FsbGluZyBpdDoKIAogICAgPj4+IGltcG9ydCB3ZWFrcmVmCiAgICA+Pj4gY2xhc3MgT2JqZWN0OgpAQCAtMzI2LDMgKzQzOSwxMzQgQEAKICAgIGRlZiBpZDJvYmoob2lkKToKICAgICAgICByZXR1cm4gX2lkMm9ial9kaWN0W29pZF0KIAorCisuLiBfZmluYWxpemUtZXhhbXBsZXM6CisKK0ZpbmFsaXplciBPYmplY3RzCistLS0tLS0tLS0tLS0tLS0tLQorCitPZnRlbiBvbmUgdXNlcyA6Y2xhc3M6YGZpbmFsaXplYCB0byByZWdpc3RlciBhIGNhbGxiYWNrIHdpdGhvdXQKK2JvdGhlcmluZyB0byBrZWVwIHRoZSByZXR1cm5lZCBmaW5hbGl6ZXIgb2JqZWN0LiAgRm9yIGluc3RhbmNlCisKKyAgICA+Pj4gaW1wb3J0IHdlYWtyZWYKKyAgICA+Pj4gY2xhc3MgT2JqZWN0OgorICAgIC4uLiAgICAgcGFzcworICAgIC4uLgorICAgID4+PiBrZW5ueSA9IE9iamVjdCgpCisgICAgPj4+IHdlYWtyZWYuZmluYWxpemUoa2VubnksIHByaW50LCAiWW91IGtpbGxlZCBLZW5ueSEiKSAgI2RvY3Rlc3Q6K0VMTElQU0lTCisgICAgPGZpbmFsaXplIG9iamVjdCBhdCAuLi47IGZvciAnT2JqZWN0JyBhdCAuLi4+CisgICAgPj4+IGRlbCBrZW5ueQorICAgIFlvdSBraWxsZWQgS2VubnkhCisKK1RoZSBmaW5hbGl6ZXIgY2FuIGJlIGNhbGxlZCBkaXJlY3RseSBhcyB3ZWxsLiAgSG93ZXZlciB0aGUgZmluYWxpemVyCit3aWxsIGludm9rZSB0aGUgY2FsbGJhY2sgYXQgbW9zdCBvbmNlLgorCisgICAgPj4+IGRlZiBjYWxsYmFjayh4LCB5LCB6KToKKyAgICAuLi4gICAgIHByaW50KCJDQUxMQkFDSyIpCisgICAgLi4uICAgICByZXR1cm4geCArIHkgKyB6CisgICAgLi4uCisgICAgPj4+IG9iaiA9IE9iamVjdCgpCisgICAgPj4+IGYgPSB3ZWFrcmVmLmZpbmFsaXplKG9iaiwgY2FsbGJhY2ssIDEsIDIsIHo9MykKKyAgICA+Pj4gYXNzZXJ0IGYuYWxpdmUKKyAgICA+Pj4gYXNzZXJ0IGYoKSA9PSA2CisgICAgQ0FMTEJBQ0sKKyAgICA+Pj4gYXNzZXJ0IG5vdCBmLmFsaXZlCisgICAgPj4+IGYoKSAgICAgICAgICAgICAgICAgICAgICMgY2FsbGJhY2sgbm90IGNhbGxlZCBiZWNhdXNlIGZpbmFsaXplciBkZWFkCisgICAgPj4+IGRlbCBvYmogICAgICAgICAgICAgICAgICMgY2FsbGJhY2sgbm90IGNhbGxlZCBiZWNhdXNlIGZpbmFsaXplciBkZWFkCisKK1lvdSBjYW4gdW5yZWdpc3RlciBhIGZpbmFsaXplciB1c2luZyBpdHMgOm1ldGg6YH5maW5hbGl6ZS5kZXRhY2hgCittZXRob2QuICBUaGlzIGtpbGxzIHRoZSBmaW5hbGl6ZXIgYW5kIHJldHVybnMgdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8KK3RoZSBjb25zdHJ1Y3RvciB3aGVuIGl0IHdhcyBjcmVhdGVkLgorCisgICAgPj4+IG9iaiA9IE9iamVjdCgpCisgICAgPj4+IGYgPSB3ZWFrcmVmLmZpbmFsaXplKG9iaiwgY2FsbGJhY2ssIDEsIDIsIHo9MykKKyAgICA+Pj4gZi5kZXRhY2goKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZG9jdGVzdDorRUxMSVBTSVMKKyAgICAoPF9fbWFpbl9fLk9iamVjdCBvYmplY3QgLi4uPiwgPGZ1bmN0aW9uIGNhbGxiYWNrIC4uLj4sICgxLCAyKSwgeyd6JzogM30pCisgICAgPj4+IG5ld29iaiwgZnVuYywgYXJncywga3dhcmdzID0gXworICAgID4+PiBhc3NlcnQgbm90IGYuYWxpdmUKKyAgICA+Pj4gYXNzZXJ0IG5ld29iaiBpcyBvYmoKKyAgICA+Pj4gYXNzZXJ0IGZ1bmMoKmFyZ3MsICoqa3dhcmdzKSA9PSA2CisgICAgQ0FMTEJBQ0sKKworVW5sZXNzIHlvdSBzZXQgdGhlIDphdHRyOmB+ZmluYWxpemUuYXRleGl0YCBhdHRyaWJ1dGUgdG8KKzpjb25zdDpgRmFsc2VgLCBhIGZpbmFsaXplciB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSBwcm9ncmFtIGV4aXQgaWYgaXQKK2lzIHN0aWxsIGFsaXZlLiAgRm9yIGluc3RhbmNlCisKKyAgICA+Pj4gb2JqID0gT2JqZWN0KCkKKyAgICA+Pj4gd2Vha3JlZi5maW5hbGl6ZShvYmosIHByaW50LCAib2JqIGRlYWQgb3IgZXhpdGluZyIpICAjZG9jdGVzdDorRUxMSVBTSVMKKyAgICA8ZmluYWxpemUgb2JqZWN0IGF0IC4uLjsgZm9yICdPYmplY3QnIGF0IC4uLj4KKyAgICA+Pj4gZXhpdCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZG9jdGVzdDorU0tJUAorICAgIG9iaiBkZWFkIG9yIGV4aXRpbmcKKworCitDb21wYXJpbmcgZmluYWxpemVycyB3aXRoIDptZXRoOmBfX2RlbF9fYCBtZXRob2RzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1N1cHBvc2Ugd2Ugd2FudCB0byBjcmVhdGUgYSBjbGFzcyB3aG9zZSBpbnN0YW5jZXMgcmVwcmVzZW50IHRlbXBvcmFyeQorZGlyZWN0b3JpZXMuICBUaGUgZGlyZWN0b3JpZXMgc2hvdWxkIGJlIGRlbGV0ZWQgd2l0aCB0aGVpciBjb250ZW50cword2hlbiB0aGUgZmlyc3Qgb2YgdGhlIGZvbGxvd2luZyBldmVudHMgb2NjdXJzOgorCisqIHRoZSBvYmplY3QgaXMgZ2FyYmFnZSBjb2xsZWN0ZWQsCisqIHRoZSBvYmplY3QncyA6bWV0aDpgcmVtb3ZlYCBtZXRob2QgaXMgY2FsbGVkLCBvcgorKiB0aGUgcHJvZ3JhbSBleGl0cy4KKworV2UgbWlnaHQgdHJ5IHRvIGltcGxlbWVudCB0aGUgY2xhc3MgdXNpbmcgYSA6bWV0aDpgX19kZWxfX2AgbWV0aG9kIGFzCitmb2xsb3dzOjoKKworICAgIGNsYXNzIFRlbXBEaXI6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgIHNlbGYubmFtZSA9IHRlbXBmaWxlLm1rZHRlbXAoKQorCisgICAgICAgIGRlZiByZW1vdmUoc2VsZik6CisgICAgICAgICAgICBpZiBzZWxmLm5hbWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShzZWxmLm5hbWUpCisgICAgICAgICAgICAgICAgc2VsZi5uYW1lID0gTm9uZQorCisgICAgICAgIEBwcm9wZXJ0eQorICAgICAgICBkZWYgcmVtb3ZlZChzZWxmKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm5hbWUgaXMgTm9uZQorCisgICAgICAgIGRlZiBfX2RlbF9fKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5yZW1vdmUoKQorCitUaGlzIHNvbHV0aW9uIGhhcyBhIGNvdXBsZSBvZiBzZXJpb3VzIHByb2JsZW1zOgorCisqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBvYmplY3Qgd2lsbCBiZSBnYXJiYWdlIGNvbGxlY3RlZAorICBiZWZvcmUgdGhlIHByb2dyYW0gZXhpc3RzLCBzbyB0aGUgZGlyZWN0b3J5IG1pZ2h0IGJlIGxlZnQuICBUaGlzIGlzCisgIGJlY2F1c2UgcmVmZXJlbmNlIGN5Y2xlcyBjb250YWluaW5nIGFuIG9iamVjdCB3aXRoIGEgOm1ldGg6YF9fZGVsX19gCisgIG1ldGhvZCBjYW4gbmV2ZXIgYmUgY29sbGVjdGVkLiAgQW5kIGV2ZW4gaWYgdGhlIDpjbGFzczpgVGVtcERpcmAKKyAgb2JqZWN0IGlzIG5vdCBpdHNlbGYgcGFydCBvZiBhIHJlZmVyZW5jZSBjeWNsZSwgaXQgbWF5IHN0aWxsIGJlIGtlcHQKKyAgYWxpdmUgYnkgc29tZSB1bmtvd24gdW5jb2xsZWN0YWJsZSByZWZlcmVuY2UgY3ljbGUuCisKKyogVGhlIDptZXRoOmBfX2RlbF9fYCBtZXRob2QgbWF5IGJlIGNhbGxlZCBhdCBzaHV0ZG93biBhZnRlciB0aGUKKyAgOm1vZDpgc2h1dGlsYCBtb2R1bGUgaGFzIGJlZW4gY2xlYW5lZCB1cCwgaW4gd2hpY2ggY2FzZQorICA6YXR0cjpgc2h1dGlsLnJtdHJlZWAgd2lsbCBoYXZlIGJlZW4gcmVwbGFjZWQgYnkgOmNvbnN0OmBOb25lYC4KKyAgVGhpcyB3aWxsIGNhdXNlIHRoZSA6bWV0aDpgX19kZWxfX2AgbWV0aG9kIHRvIGZhaWwgYW5kIHRoZSBkaXJlY3RvcnkKKyAgd2lsbCBub3QgYmUgcmVtb3ZlZC4KKworVXNpbmcgZmluYWxpemVycyB3ZSBjYW4gYXZvaWQgdGhlc2UgcHJvYmxlbXM6OgorCisgICAgY2xhc3MgVGVtcERpcjoKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5uYW1lID0gdGVtcGZpbGUubWtkdGVtcCgpCisgICAgICAgICAgICBzZWxmLl9maW5hbGl6ZXIgPSB3ZWFrcmVmLmZpbmFsaXplKHNlbGYsIHNodXRpbC5ybXRyZWUsIHNlbGYubmFtZSkKKworICAgICAgICBkZWYgcmVtb3ZlKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5fZmluYWxpemVyKCkKKworICAgICAgICBAcHJvcGVydHkKKyAgICAgICAgZGVmIHJlbW92ZWQoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gbm90IHNlbGYuX2ZpbmFsaXplci5hbGl2ZQorCitEZWZpbmVkIGxpa2UgdGhpcywgZXZlbiBpZiBhIDpjbGFzczpgVGVtcERpcmAgb2JqZWN0IGlzIHBhcnQgb2YgYQorcmVmZXJlbmNlIGN5Y2xlLCB0aGF0IHJlZmVyZW5jZSBjeWNsZSBjYW4gc3RpbGwgYmUgZ2FyYmFnZSBjb2xsZWN0ZWQuCitJZiB0aGUgb2JqZWN0IG5ldmVyIGdldHMgZ2FyYmFnZSBjb2xsZWN0ZWQgdGhlIGZpbmFsaXplciB3aWxsIHN0aWxsIGJlCitjYWxsZWQgYXQgZXhpdC4KKworLi4gbm90ZTo6CisKKyAgIElmIHlvdSBjcmVhdGUgYSBmaW5hbGl6ZXIgb2JqZWN0IGluIGEgZGFlbW9uaWMgdGhyZWFkIGp1c3QgYXMgdGhlCisgICB0aGUgcHJvZ3JhbSBleGl0cyB0aGVuIHRoZXJlIGlzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IHRoZSBmaW5hbGl6ZXIKKyAgIGRvZXMgbm90IGdldCBjYWxsZWQgYXQgZXhpdC4gIEhvd2V2ZXIsIGluIGEgZGFlbW9uaWMgdGhyZWFkCisgICA6ZnVuYzpgYXRleGl0LnJlZ2lzdGVyYCwgYGB0cnk6IC4uLiBmaW5hbGx5OiAuLi5gYCBhbmQgYGB3aXRoOiAuLi5gYAorICAgZG8gbm90IGd1YXJhbnRlZSB0aGF0IGNsZWFudXAgb2NjdXJzIGVpdGhlci4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3htbC5ldHJlZS5lbGVtZW50dHJlZS5yc3QgYi9Eb2MvbGlicmFyeS94bWwuZXRyZWUuZWxlbWVudHRyZWUucnN0CmluZGV4IDQ1YTBlN2IuLmQwYmZlZDAgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3htbC5ldHJlZS5lbGVtZW50dHJlZS5yc3QKKysrIGIvRG9jL2xpYnJhcnkveG1sLmV0cmVlLmVsZW1lbnR0cmVlLnJzdApAQCAtMTA1LDYgKzEwNSwzOCBAQAogICAgPj4+IHJvb3RbMF1bMV0udGV4dAogICAgJzIwMDgnCiAKK0luY3JlbWVudGFsIHBhcnNpbmcKK15eXl5eXl5eXl5eXl5eXl5eXl4KKworSXQncyBwb3NzaWJsZSB0byBwYXJzZSBYTUwgaW5jcmVtZW50YWxseSAoaS5lLiBub3QgdGhlIHdob2xlIGRvY3VtZW50IGF0IG9uY2UpLgorVGhlIG1vc3QgcG93ZXJmdWwgdG9vbCBmb3IgZG9pbmcgdGhpcyBpcyA6Y2xhc3M6YEluY3JlbWVudGFsUGFyc2VyYC4gIEl0IGRvZXMKK25vdCByZXF1aXJlIGEgYmxvY2tpbmcgcmVhZCB0byBvYnRhaW4gdGhlIFhNTCBkYXRhLCBhbmQgaXMgaW5zdGVhZCBmZWQgd2l0aAorZGF0YSBpbmNyZW1lbnRhbGx5IHdpdGggOm1ldGg6YEluY3JlbWVudGFsUGFyc2VyLmRhdGFfcmVjZWl2ZWRgIGNhbGxzLiAgVG8gZ2V0Cit0aGUgcGFyc2VkIFhNTCBlbGVtZW50cywgY2FsbCA6bWV0aDpgSW5jcmVtZW50YWxQYXJzZXIuZXZlbnRzYC4gIEhlcmUncyBhbgorZXhhbXBsZTo6CisKKyAgICA+Pj4gaW5jcGFyc2VyID0gRVQuSW5jcmVtZW50YWxQYXJzZXIoWydzdGFydCcsICdlbmQnXSkKKyAgICA+Pj4gaW5jcGFyc2VyLmRhdGFfcmVjZWl2ZWQoJzxteXRhZz5zb21ldGV4dCcpCisgICAgPj4+IGxpc3QoaW5jcGFyc2VyLmV2ZW50cygpKQorICAgIFsoJ3N0YXJ0JywgPEVsZW1lbnQgJ215dGFnJyBhdCAweDdmYmEzZjJhODY4OD4pXQorICAgID4+PiBpbmNwYXJzZXIuZGF0YV9yZWNlaXZlZCgnIG1vcmUgdGV4dDwvbXl0YWc+JykKKyAgICA+Pj4gZm9yIGV2ZW50LCBlbGVtIGluIGluY3BhcnNlci5ldmVudHMoKToKKyAgICAuLi4gICBwcmludChldmVudCkKKyAgICAuLi4gICBwcmludChlbGVtLnRhZywgJ3RleHQ9JywgZWxlbS50ZXh0KQorICAgIC4uLgorICAgIGVuZAorICAgIG15dGFnIHRleHQ9IHNvbWV0ZXh0IG1vcmUgdGV4dAorCitUaGUgb2J2aW91cyB1c2UgY2FzZSBpcyBhcHBsaWNhdGlvbnMgdGhhdCBvcGVyYXRlIGluIGFuIGFzeW5jaHJvbm91cyBmYXNoaW9uCit3aGVyZSB0aGUgWE1MIGRhdGEgaXMgYmVpbmcgcmVjZWl2ZWQgZnJvbSBhIHNvY2tldCBvciByZWFkIGluY3JlbWVudGFsbHkgZnJvbQorc29tZSBzdG9yYWdlIGRldmljZS4gIEluIHN1Y2ggY2FzZXMsIGJsb2NraW5nIHJlYWRzIGFyZSB1bmFjY2VwdGFibGUuCisKK0JlY2F1c2UgaXQncyBzbyBmbGV4aWJsZSwgOmNsYXNzOmBJbmNyZW1lbnRhbFBhcnNlcmAgY2FuIGJlIGluY29udmVuaWVudAordG8gdXNlIGZvciBzaW1wbGVyIHVzZS1jYXNlcy4gIElmIHlvdSBkb24ndCBtaW5kIHlvdXIgYXBwbGljYXRpb24gYmxvY2tpbmcgb24KK3JlYWRpbmcgWE1MIGRhdGEgYnV0IHdvdWxkIHN0aWxsIGxpa2UgdG8gaGF2ZSBpbmNyZW1lbnRhbCBwYXJzaW5nIGNhcGFiaWxpdGllcywKK3Rha2UgYSBsb29rIGF0IDpmdW5jOmBpdGVycGFyc2VgLiAgSXQgY2FuIGJlIHVzZWZ1bCB3aGVuIHlvdSdyZSByZWFkaW5nIGEgbGFyZ2UKK1hNTCBkb2N1bWVudCBhbmQgZG9uJ3Qgd2FudCB0byBob2xkIGl0IHdob2xseSBpbiBtZW1vcnkuCisKIEZpbmRpbmcgaW50ZXJlc3RpbmcgZWxlbWVudHMKIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KIApAQCAtMzc5LDcgKzQxMSw3IEBACiAKICAgIFBhcnNlcyBhbiBYTUwgc2VjdGlvbiBpbnRvIGFuIGVsZW1lbnQgdHJlZSBpbmNyZW1lbnRhbGx5LCBhbmQgcmVwb3J0cyB3aGF0J3MKICAgIGdvaW5nIG9uIHRvIHRoZSB1c2VyLiAgKnNvdXJjZSogaXMgYSBmaWxlbmFtZSBvciA6dGVybTpgZmlsZSBvYmplY3RgCi0gICBjb250YWluaW5nIFhNTCBkYXRhLiAgKmV2ZW50cyogaXMgYSBsaXN0IG9mIGV2ZW50cyB0byByZXBvcnQgYmFjay4gIFRoZQorICAgY29udGFpbmluZyBYTUwgZGF0YS4gICpldmVudHMqIGlzIGEgc2VxdWVuY2Ugb2YgZXZlbnRzIHRvIHJlcG9ydCBiYWNrLiAgVGhlCiAgICBzdXBwb3J0ZWQgZXZlbnRzIGFyZSB0aGUgc3RyaW5ncyBgYCJzdGFydCJgYCwgYGAiZW5kImBgLCBgYCJzdGFydC1ucyJgYAogICAgYW5kIGBgImVuZC1ucyJgYCAodGhlICJucyIgZXZlbnRzIGFyZSB1c2VkIHRvIGdldCBkZXRhaWxlZCBuYW1lc3BhY2UKICAgIGluZm9ybWF0aW9uKS4gIElmICpldmVudHMqIGlzIG9taXR0ZWQsIG9ubHkgYGAiZW5kImBgIGV2ZW50cyBhcmUgcmVwb3J0ZWQuCkBAIC0zODcsNiArNDE5LDExIEBACiAgICA6Y2xhc3M6YFhNTFBhcnNlcmAgcGFyc2VyIGlzIHVzZWQuICBSZXR1cm5zIGFuIDp0ZXJtOmBpdGVyYXRvcmAgcHJvdmlkaW5nCiAgICBgYChldmVudCwgZWxlbSlgYCBwYWlycy4KIAorICAgTm90ZSB0aGF0IHdoaWxlIDpmdW5jOmBpdGVycGFyc2VgIGJ1aWxkcyB0aGUgdHJlZSBpbmNyZW1lbnRhbGx5LCBpdCBpc3N1ZXMKKyAgIGJsb2NraW5nIHJlYWRzIG9uICpzb3VyY2UqIChvciB0aGUgZmlsZSBpdCBuYW1lcykuICBBcyBzdWNoLCBpdCdzIHVuc3VpdGFibGUKKyAgIGZvciBhc3luY2hyb25vdXMgYXBwbGljYXRpb25zIHdoZXJlIGJsb2NraW5nIHJlYWRzIGNhbid0IGJlIG1hZGUuICBGb3IgZnVsbHkKKyAgIGFzeW5jaHJvbm91cyBwYXJzaW5nLCBzZWUgOmNsYXNzOmBJbmNyZW1lbnRhbFBhcnNlcmAuCisKICAgIC4uIG5vdGU6OgogCiAgICAgICA6ZnVuYzpgaXRlcnBhcnNlYCBvbmx5IGd1YXJhbnRlZXMgdGhhdCBpdCBoYXMgc2VlbiB0aGUgIj4iCkBAIC0zOTcsNyArNDM0LDYgQEAKIAogICAgICAgSWYgeW91IG5lZWQgYSBmdWxseSBwb3B1bGF0ZWQgZWxlbWVudCwgbG9vayBmb3IgImVuZCIgZXZlbnRzIGluc3RlYWQuCiAKLQogLi4gZnVuY3Rpb246OiBwYXJzZShzb3VyY2UsIHBhcnNlcj1Ob25lKQogCiAgICBQYXJzZXMgYW4gWE1MIHNlY3Rpb24gaW50byBhbiBlbGVtZW50IHRyZWUuICAqc291cmNlKiBpcyBhIGZpbGVuYW1lIG9yIGZpbGUKQEAgLTQzNywyOSArNDczLDM5IEBACiAgICBhcmd1bWVudHMuICBSZXR1cm5zIGFuIGVsZW1lbnQgaW5zdGFuY2UuCiAKIAotLi4gZnVuY3Rpb246OiB0b3N0cmluZyhlbGVtZW50LCBlbmNvZGluZz0idXMtYXNjaWkiLCBtZXRob2Q9InhtbCIpCisuLiBmdW5jdGlvbjo6IHRvc3RyaW5nKGVsZW1lbnQsIGVuY29kaW5nPSJ1cy1hc2NpaSIsIG1ldGhvZD0ieG1sIiwgKiwgXAorICAgICAgICAgICAgICAgICAgICAgICBzaG9ydF9lbXB0eV9lbGVtZW50cz1UcnVlKQogCiAgICBHZW5lcmF0ZXMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gWE1MIGVsZW1lbnQsIGluY2x1ZGluZyBhbGwKICAgIHN1YmVsZW1lbnRzLiAgKmVsZW1lbnQqIGlzIGFuIDpjbGFzczpgRWxlbWVudGAgaW5zdGFuY2UuICAqZW5jb2RpbmcqIFsxXV8gaXMKICAgIHRoZSBvdXRwdXQgZW5jb2RpbmcgKGRlZmF1bHQgaXMgVVMtQVNDSUkpLiAgVXNlIGBgZW5jb2Rpbmc9InVuaWNvZGUiYGAgdG8KICAgIGdlbmVyYXRlIGEgVW5pY29kZSBzdHJpbmcgKG90aGVyd2lzZSwgYSBieXRlc3RyaW5nIGlzIGdlbmVyYXRlZCkuICAqbWV0aG9kKgogICAgaXMgZWl0aGVyIGBgInhtbCJgYCwgYGAiaHRtbCJgYCBvciBgYCJ0ZXh0ImBgIChkZWZhdWx0IGlzIGBgInhtbCJgYCkuCisgICAqc2hvcnRfZW1wdHlfZWxlbWVudHMqIGhhcyB0aGUgc2FtZSBtZWFuaW5nIGFzIGluIDptZXRoOmBFbGVtZW50VHJlZS53cml0ZWAuCiAgICBSZXR1cm5zIGFuIChvcHRpb25hbGx5KSBlbmNvZGVkIHN0cmluZyBjb250YWluaW5nIHRoZSBYTUwgZGF0YS4KIAorICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CisgICAgICBUaGUgKnNob3J0X2VtcHR5X2VsZW1lbnRzKiBwYXJhbWV0ZXIuCiAKLS4uIGZ1bmN0aW9uOjogdG9zdHJpbmdsaXN0KGVsZW1lbnQsIGVuY29kaW5nPSJ1cy1hc2NpaSIsIG1ldGhvZD0ieG1sIikKKworLi4gZnVuY3Rpb246OiB0b3N0cmluZ2xpc3QoZWxlbWVudCwgZW5jb2Rpbmc9InVzLWFzY2lpIiwgbWV0aG9kPSJ4bWwiLCAqLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydF9lbXB0eV9lbGVtZW50cz1UcnVlKQogCiAgICBHZW5lcmF0ZXMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gWE1MIGVsZW1lbnQsIGluY2x1ZGluZyBhbGwKICAgIHN1YmVsZW1lbnRzLiAgKmVsZW1lbnQqIGlzIGFuIDpjbGFzczpgRWxlbWVudGAgaW5zdGFuY2UuICAqZW5jb2RpbmcqIFsxXV8gaXMKICAgIHRoZSBvdXRwdXQgZW5jb2RpbmcgKGRlZmF1bHQgaXMgVVMtQVNDSUkpLiAgVXNlIGBgZW5jb2Rpbmc9InVuaWNvZGUiYGAgdG8KICAgIGdlbmVyYXRlIGEgVW5pY29kZSBzdHJpbmcgKG90aGVyd2lzZSwgYSBieXRlc3RyaW5nIGlzIGdlbmVyYXRlZCkuICAqbWV0aG9kKgogICAgaXMgZWl0aGVyIGBgInhtbCJgYCwgYGAiaHRtbCJgYCBvciBgYCJ0ZXh0ImBgIChkZWZhdWx0IGlzIGBgInhtbCJgYCkuCisgICAqc2hvcnRfZW1wdHlfZWxlbWVudHMqIGhhcyB0aGUgc2FtZSBtZWFuaW5nIGFzIGluIDptZXRoOmBFbGVtZW50VHJlZS53cml0ZWAuCiAgICBSZXR1cm5zIGEgbGlzdCBvZiAob3B0aW9uYWxseSkgZW5jb2RlZCBzdHJpbmdzIGNvbnRhaW5pbmcgdGhlIFhNTCBkYXRhLgogICAgSXQgZG9lcyBub3QgZ3VhcmFudGVlIGFueSBzcGVjaWZpYyBzZXF1ZW5jZSwgZXhjZXB0IHRoYXQKICAgIGBgIiIuam9pbih0b3N0cmluZ2xpc3QoZWxlbWVudCkpID09IHRvc3RyaW5nKGVsZW1lbnQpYGAuCiAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjQKKyAgICAgIFRoZSAqc2hvcnRfZW1wdHlfZWxlbWVudHMqIHBhcmFtZXRlci4KKwogCiAuLiBmdW5jdGlvbjo6IFhNTCh0ZXh0LCBwYXJzZXI9Tm9uZSkKIApAQCAtNzUxLDcgKzc5Nyw4IEBACiAKIAogICAgLi4gbWV0aG9kOjogd3JpdGUoZmlsZSwgZW5jb2Rpbmc9InVzLWFzY2lpIiwgeG1sX2RlY2xhcmF0aW9uPU5vbmUsIFwKLSAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfbmFtZXNwYWNlPU5vbmUsIG1ldGhvZD0ieG1sIikKKyAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfbmFtZXNwYWNlPU5vbmUsIG1ldGhvZD0ieG1sIiwgKiwgXAorICAgICAgICAgICAgICAgICAgICAgc2hvcnRfZW1wdHlfZWxlbWVudHM9VHJ1ZSkKIAogICAgICAgV3JpdGVzIHRoZSBlbGVtZW50IHRyZWUgdG8gYSBmaWxlLCBhcyBYTUwuICAqZmlsZSogaXMgYSBmaWxlIG5hbWUsIG9yIGEKICAgICAgIDp0ZXJtOmBmaWxlIG9iamVjdGAgb3BlbmVkIGZvciB3cml0aW5nLiAgKmVuY29kaW5nKiBbMV1fIGlzIHRoZSBvdXRwdXQKQEAgLTc2Miw2ICs4MDksMTAgQEAKICAgICAgICpkZWZhdWx0X25hbWVzcGFjZSogc2V0cyB0aGUgZGVmYXVsdCBYTUwgbmFtZXNwYWNlIChmb3IgInhtbG5zIikuCiAgICAgICAqbWV0aG9kKiBpcyBlaXRoZXIgYGAieG1sImBgLCBgYCJodG1sImBgIG9yIGBgInRleHQiYGAgKGRlZmF1bHQgaXMKICAgICAgIGBgInhtbCJgYCkuCisgICAgICBUaGUga2V5d29yZC1vbmx5ICpzaG9ydF9lbXB0eV9lbGVtZW50cyogcGFyYW1ldGVyIGNvbnRyb2xzIHRoZSBmb3JtYXR0aW5nCisgICAgICBvZiBlbGVtZW50cyB0aGF0IGNvbnRhaW4gbm8gY29udGVudC4gIElmICpUcnVlKiAodGhlIGRlZmF1bHQpLCB0aGV5IGFyZQorICAgICAgZW1pdHRlZCBhcyBhIHNpbmdsZSBzZWxmLWNsb3NlZCB0YWcsIG90aGVyd2lzZSB0aGV5IGFyZSBlbWl0dGVkIGFzIGEgcGFpcgorICAgICAgb2Ygc3RhcnQvZW5kIHRhZ3MuCiAKICAgICAgIFRoZSBvdXRwdXQgaXMgZWl0aGVyIGEgc3RyaW5nICg6Y2xhc3M6YHN0cmApIG9yIGJpbmFyeSAoOmNsYXNzOmBieXRlc2ApLgogICAgICAgVGhpcyBpcyBjb250cm9sbGVkIGJ5IHRoZSAqZW5jb2RpbmcqIGFyZ3VtZW50LiAgSWYgKmVuY29kaW5nKiBpcwpAQCAtNzcwLDYgKzgyMSw5IEBACiAgICAgICA6dGVybTpgZmlsZSBvYmplY3RgOyBtYWtlIHN1cmUgeW91IGRvIG5vdCB0cnkgdG8gd3JpdGUgYSBzdHJpbmcgdG8gYQogICAgICAgYmluYXJ5IHN0cmVhbSBhbmQgdmljZSB2ZXJzYS4KIAorICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CisgICAgICBUaGUgKnNob3J0X2VtcHR5X2VsZW1lbnRzKiBwYXJhbWV0ZXIuCisKIAogVGhpcyBpcyB0aGUgWE1MIGZpbGUgdGhhdCBpcyBnb2luZyB0byBiZSBtYW5pcHVsYXRlZDo6CiAKQEAgLTgxNSw2ICs4NjksNDkgQEAKICAgIDpjbGFzczpgUU5hbWVgIGluc3RhbmNlcyBhcmUgb3BhcXVlLgogCiAKK0luY3JlbWVudGFsUGFyc2VyIE9iamVjdHMKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworLi4gY2xhc3M6OiBJbmNyZW1lbnRhbFBhcnNlcihldmVudHM9Tm9uZSwgcGFyc2VyPU5vbmUpCisKKyAgIEFuIGluY3JlbWVudGFsLCBldmVudC1kcml2ZW4gcGFyc2VyIHN1aXRhYmxlIGZvciBub24tYmxvY2tpbmcgYXBwbGljYXRpb25zLgorICAgKmV2ZW50cyogaXMgYSBzZXF1ZW5jZSBvZiBldmVudHMgdG8gcmVwb3J0IGJhY2suICBUaGUgc3VwcG9ydGVkIGV2ZW50cyBhcmUKKyAgIHRoZSBzdHJpbmdzIGBgInN0YXJ0ImBgLCBgYCJlbmQiYGAsIGBgInN0YXJ0LW5zImBgIGFuZCBgYCJlbmQtbnMiYGAgKHRoZSAibnMiCisgICBldmVudHMgYXJlIHVzZWQgdG8gZ2V0IGRldGFpbGVkIG5hbWVzcGFjZSBpbmZvcm1hdGlvbikuICBJZiAqZXZlbnRzKiBpcworICAgb21pdHRlZCwgb25seSBgYCJlbmQiYGAgZXZlbnRzIGFyZSByZXBvcnRlZC4gICpwYXJzZXIqIGlzIGFuIG9wdGlvbmFsCisgICBwYXJzZXIgaW5zdGFuY2UuICBJZiBub3QgZ2l2ZW4sIHRoZSBzdGFuZGFyZCA6Y2xhc3M6YFhNTFBhcnNlcmAgcGFyc2VyIGlzCisgICB1c2VkLgorCisgICAuLiBtZXRob2Q6OiBkYXRhX3JlY2VpdmVkKGRhdGEpCisKKyAgICAgIEZlZWQgdGhlIGdpdmVuIGJ5dGVzIGRhdGEgdG8gdGhlIGluY3JlbWVudGFsIHBhcnNlci4KKworICAgLi4gbWV0aG9kOjogZW9mX3JlY2VpdmVkKCkKKworICAgICAgU2lnbmFsIHRoZSBpbmNyZW1lbnRhbCBwYXJzZXIgdGhhdCB0aGUgZGF0YSBzdHJlYW0gaXMgdGVybWluYXRlZC4KKworICAgLi4gbWV0aG9kOjogZXZlbnRzKCkKKworICAgICAgSXRlcmF0ZSBvdmVyIHRoZSBldmVudHMgd2hpY2ggaGF2ZSBiZWVuIGVuY291bnRlcmVkIGluIHRoZSBkYXRhIGZlZAorICAgICAgdG8gdGhlIHBhcnNlci4gIFRoaXMgbWV0aG9kIHlpZWxkcyBgYChldmVudCwgZWxlbSlgYCBwYWlycywgd2hlcmUKKyAgICAgICpldmVudCogaXMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB0eXBlIG9mIGV2ZW50IChlLmcuIGBgImVuZCJgYCkKKyAgICAgIGFuZCAqZWxlbSogaXMgdGhlIGVuY291bnRlcmVkIDpjbGFzczpgRWxlbWVudGAgb2JqZWN0LiAgRXZlbnRzCisgICAgICBwcm92aWRlZCBpbiBhIHByZXZpb3VzIGNhbGwgdG8gOm1ldGg6YGV2ZW50c2Agd2lsbCBub3QgYmUgeWllbGRlZAorICAgICAgYWdhaW4uCisKKyAgIC4uIG5vdGU6OgorCisgICAgICA6Y2xhc3M6YEluY3JlbWVudGFsUGFyc2VyYCBvbmx5IGd1YXJhbnRlZXMgdGhhdCBpdCBoYXMgc2VlbiB0aGUgIj4iCisgICAgICBjaGFyYWN0ZXIgb2YgYSBzdGFydGluZyB0YWcgd2hlbiBpdCBlbWl0cyBhICJzdGFydCIgZXZlbnQsIHNvIHRoZQorICAgICAgYXR0cmlidXRlcyBhcmUgZGVmaW5lZCwgYnV0IHRoZSBjb250ZW50cyBvZiB0aGUgdGV4dCBhbmQgdGFpbCBhdHRyaWJ1dGVzCisgICAgICBhcmUgdW5kZWZpbmVkIGF0IHRoYXQgcG9pbnQuICBUaGUgc2FtZSBhcHBsaWVzIHRvIHRoZSBlbGVtZW50IGNoaWxkcmVuOworICAgICAgdGhleSBtYXkgb3IgbWF5IG5vdCBiZSBwcmVzZW50LgorCisgICAgICBJZiB5b3UgbmVlZCBhIGZ1bGx5IHBvcHVsYXRlZCBlbGVtZW50LCBsb29rIGZvciAiZW5kIiBldmVudHMgaW5zdGVhZC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CisKKwogLi4gX2VsZW1lbnR0cmVlLXRyZWVidWlsZGVyLW9iamVjdHM6CiAKIFRyZWVCdWlsZGVyIE9iamVjdHMKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3ppcGZpbGUucnN0IGIvRG9jL2xpYnJhcnkvemlwZmlsZS5yc3QKaW5kZXggNzVlOGZkNS4uYzQ1YzA3MCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvemlwZmlsZS5yc3QKKysrIGIvRG9jL2xpYnJhcnkvemlwZmlsZS5yc3QKQEAgLTI2NSwxMCArMjY1LDggQEAKICAgICAgIE5ldmVyIGV4dHJhY3QgYXJjaGl2ZXMgZnJvbSB1bnRydXN0ZWQgc291cmNlcyB3aXRob3V0IHByaW9yIGluc3BlY3Rpb24uCiAgICAgICBJdCBpcyBwb3NzaWJsZSB0aGF0IGZpbGVzIGFyZSBjcmVhdGVkIG91dHNpZGUgb2YgKnBhdGgqLCBlLmcuIG1lbWJlcnMKICAgICAgIHRoYXQgaGF2ZSBhYnNvbHV0ZSBmaWxlbmFtZXMgc3RhcnRpbmcgd2l0aCBgYCIvImBgIG9yIGZpbGVuYW1lcyB3aXRoIHR3bwotICAgICAgZG90cyBgYCIuLiJgYC4KLQotICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMuMQotICAgICAgVGhlIHppcGZpbGUgbW9kdWxlIGF0dGVtcHRzIHRvIHByZXZlbnQgdGhhdC4gIFNlZSA6bWV0aDpgZXh0cmFjdGAgbm90ZS4KKyAgICAgIGRvdHMgYGAiLi4iYGAuICBUaGlzIG1vZHVsZSBhdHRlbXB0cyB0byBwcmV2ZW50IHRoYXQuCisgICAgICBTZWUgOm1ldGg6YGV4dHJhY3RgIG5vdGUuCiAKIAogLi4gbWV0aG9kOjogWmlwRmlsZS5wcmludGRpcigpCmRpZmYgLS1naXQgYS9Eb2MvbGljZW5zZS5yc3QgYi9Eb2MvbGljZW5zZS5yc3QKaW5kZXggYWFjZmFhMS4uYjA5ZTlhOCAxMDA2NDQKLS0tIGEvRG9jL2xpY2Vuc2UucnN0CisrKyBiL0RvYy9saWNlbnNlLnJzdApAQCAtMTI2LDYgKzEyNiw4IEBACiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwogfCAzLjMuMSAgICAgICAgICB8IDMuMy4wICAgICAgICB8IDIwMTMgICAgICAgfCBQU0YgICAgICAgIHwgeWVzICAgICAgICAgICAgIHwKICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCit8IDMuNC4wICAgICAgICAgIHwgMy4zLjAgICAgICAgIHwgMjAxNCAgICAgICB8IFBTRiAgICAgICAgfCB5ZXMgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKIAogLi4gbm90ZTo6CiAKQEAgLTY2MCw2ICs2NjIsMjUgQEAKICAgU1VDSCBEQU1BR0UuCiAKIAorU0hBLTMKKy0tLS0tCisKK1RoZSBtb2R1bGUgOm1vZDpgX3NoYTNgIGFuZCA6bW9kOmBoYXNobGliYCBhcmUgdXNpbmcgdGhlIHJlZmVyZW5jZQoraW1wbGVtZW50YXRpb24gb2YgS2VjY2FrLiBUaGUgZmlsZXMgYXQgOmZpbGU6YE1vZHVsZXMvX3NoYTMva2VjY2FrL2AgY29udGFpbgordGhlIGZvbGxvd2luZyBub3RlOjoKKworICBUaGUgS2VjY2FrIHNwb25nZSBmdW5jdGlvbiwgZGVzaWduZWQgYnkgR3VpZG8gQmVydG9uaSwgSm9hbiBEYWVtZW4sCisgIE1pY2hhw6tsIFBlZXRlcnMgYW5kIEdpbGxlcyBWYW4gQXNzY2hlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgZmVlZGJhY2sgb3IKKyAgcXVlc3Rpb25zLCBwbGVhc2UgcmVmZXIgdG8gb3VyIHdlYnNpdGU6IGh0dHA6Ly9rZWNjYWsubm9la2Vvbi5vcmcvCisKKyAgSW1wbGVtZW50YXRpb24gYnkgdGhlIGRlc2lnbmVycywKKyAgaGVyZWJ5IGRlbm90ZWQgYXMgInRoZSBpbXBsZW1lbnRlciIuCisKKyAgVG8gdGhlIGV4dGVudCBwb3NzaWJsZSB1bmRlciBsYXcsIHRoZSBpbXBsZW1lbnRlciBoYXMgd2FpdmVkIGFsbCBjb3B5cmlnaHQKKyAgYW5kIHJlbGF0ZWQgb3IgbmVpZ2hib3JpbmcgcmlnaHRzIHRvIHRoZSBzb3VyY2UgY29kZSBpbiB0aGlzIGZpbGUuCisgIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKworCiBzdHJ0b2QgYW5kIGR0b2EKIC0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Eb2MvcmVmZXJlbmNlL2NvbXBvdW5kX3N0bXRzLnJzdCBiL0RvYy9yZWZlcmVuY2UvY29tcG91bmRfc3RtdHMucnN0CmluZGV4IGQwZDA2NDYuLmMyNWM3NjcgMTAwNjQ0Ci0tLSBhL0RvYy9yZWZlcmVuY2UvY29tcG91bmRfc3RtdHMucnN0CisrKyBiL0RvYy9yZWZlcmVuY2UvY29tcG91bmRfc3RtdHMucnN0CkBAIC00OTMsMTQgKzQ5MywxNSBAQAogdmFsdWUsIGFsbCBmb2xsb3dpbmcgcGFyYW1ldGVycyB1cCB1bnRpbCB0aGUgImBgKmBgIiBtdXN0IGFsc28gaGF2ZSBhIGRlZmF1bHQKIHZhbHVlIC0tLSB0aGlzIGlzIGEgc3ludGFjdGljIHJlc3RyaWN0aW9uIHRoYXQgaXMgbm90IGV4cHJlc3NlZCBieSB0aGUgZ3JhbW1hci4KIAotKipEZWZhdWx0IHBhcmFtZXRlciB2YWx1ZXMgYXJlIGV2YWx1YXRlZCB3aGVuIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGlzCi1leGVjdXRlZC4qKiBUaGlzIG1lYW5zIHRoYXQgdGhlIGV4cHJlc3Npb24gaXMgZXZhbHVhdGVkIG9uY2UsIHdoZW4gdGhlIGZ1bmN0aW9uCi1pcyBkZWZpbmVkLCBhbmQgdGhhdCB0aGUgc2FtZSAicHJlLWNvbXB1dGVkIiB2YWx1ZSBpcyB1c2VkIGZvciBlYWNoIGNhbGwuICBUaGlzCi1pcyBlc3BlY2lhbGx5IGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHdoZW4gYSBkZWZhdWx0IHBhcmFtZXRlciBpcyBhIG11dGFibGUKLW9iamVjdCwgc3VjaCBhcyBhIGxpc3Qgb3IgYSBkaWN0aW9uYXJ5OiBpZiB0aGUgZnVuY3Rpb24gbW9kaWZpZXMgdGhlIG9iamVjdAotKGUuZy4gYnkgYXBwZW5kaW5nIGFuIGl0ZW0gdG8gYSBsaXN0KSwgdGhlIGRlZmF1bHQgdmFsdWUgaXMgaW4gZWZmZWN0IG1vZGlmaWVkLgotVGhpcyBpcyBnZW5lcmFsbHkgbm90IHdoYXQgd2FzIGludGVuZGVkLiAgQSB3YXkgYXJvdW5kIHRoaXMgaXMgdG8gdXNlIGBgTm9uZWBgCi1hcyB0aGUgZGVmYXVsdCwgYW5kIGV4cGxpY2l0bHkgdGVzdCBmb3IgaXQgaW4gdGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uLCBlLmcuOjoKKyoqRGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWVzIGFyZSBldmFsdWF0ZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0IHdoZW4gdGhlIGZ1bmN0aW9uCitkZWZpbml0aW9uIGlzIGV4ZWN1dGVkLioqIFRoaXMgbWVhbnMgdGhhdCB0aGUgZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQgb25jZSwgd2hlbgordGhlIGZ1bmN0aW9uIGlzIGRlZmluZWQsIGFuZCB0aGF0IHRoZSBzYW1lICJwcmUtY29tcHV0ZWQiIHZhbHVlIGlzIHVzZWQgZm9yIGVhY2gKK2NhbGwuICBUaGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgd2hlbiBhIGRlZmF1bHQgcGFyYW1ldGVyIGlzIGEKK211dGFibGUgb2JqZWN0LCBzdWNoIGFzIGEgbGlzdCBvciBhIGRpY3Rpb25hcnk6IGlmIHRoZSBmdW5jdGlvbiBtb2RpZmllcyB0aGUKK29iamVjdCAoZS5nLiBieSBhcHBlbmRpbmcgYW4gaXRlbSB0byBhIGxpc3QpLCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBpbiBlZmZlY3QKK21vZGlmaWVkLiAgVGhpcyBpcyBnZW5lcmFsbHkgbm90IHdoYXQgd2FzIGludGVuZGVkLiAgQSB3YXkgYXJvdW5kIHRoaXMgaXMgdG8gdXNlCitgYE5vbmVgYCBhcyB0aGUgZGVmYXVsdCwgYW5kIGV4cGxpY2l0bHkgdGVzdCBmb3IgaXQgaW4gdGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uLAorZS5nLjo6CiAKICAgIGRlZiB3aGF0c19vbl90aGVfdGVsbHkocGVuZ3Vpbj1Ob25lKToKICAgICAgICBpZiBwZW5ndWluIGlzIE5vbmU6CmRpZmYgLS1naXQgYS9Eb2MvcmVmZXJlbmNlL2RhdGFtb2RlbC5yc3QgYi9Eb2MvcmVmZXJlbmNlL2RhdGFtb2RlbC5yc3QKaW5kZXggZTgxNTY5MC4uNGY5YjhiMCAxMDA2NDQKLS0tIGEvRG9jL3JlZmVyZW5jZS9kYXRhbW9kZWwucnN0CisrKyBiL0RvYy9yZWZlcmVuY2UvZGF0YW1vZGVsLnJzdApAQCAtMTgxNyw2ICsxODE3LDE1IEBACiAgICBjb25zaWRlcmVkIHRvIGJlIGZhbHNlIGluIGEgQm9vbGVhbiBjb250ZXh0LgogCiAKKy4uIG1ldGhvZDo6IG9iamVjdC5fX2xlbmd0aF9oaW50X18oc2VsZikKKworICAgQ2FsbGVkIHRvIGltcGxlbWVudCA6ZnVuYzpgb3BlcmF0b3IubGVuZ3RoX2hpbnRgLiBTaG91bGQgcmV0dXJuIGFuIGVzdGltYXRlZAorICAgbGVuZ3RoIGZvciB0aGUgb2JqZWN0ICh3aGljaCBtYXkgYmUgZ3JlYXRlciBvciBsZXNzIHRoYW4gdGhlIGFjdHVhbCBsZW5ndGgpLgorICAgVGhlIGxlbmd0aCBtdXN0IGJlIGFuIGludGVnZXIgYGA+PWBgIDAuIFRoaXMgbWV0aG9kIGlzIHB1cmVseSBhbgorICAgb3B0aW1pemF0aW9uIGFuZCBpcyBuZXZlciByZXF1aXJlZCBmb3IgY29ycmVjdG5lc3MuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuNAorCiAuLiBub3RlOjoKIAogICAgU2xpY2luZyBpcyBkb25lIGV4Y2x1c2l2ZWx5IHdpdGggdGhlIGZvbGxvd2luZyB0aHJlZSBtZXRob2RzLiAgQSBjYWxsIGxpa2UgOjoKZGlmZiAtLWdpdCBhL0RvYy9yZWZlcmVuY2UvaW1wb3J0LnJzdCBiL0RvYy9yZWZlcmVuY2UvaW1wb3J0LnJzdAppbmRleCBlYjQ5N2ExLi5iNTg3ZmM5IDEwMDY0NAotLS0gYS9Eb2MvcmVmZXJlbmNlL2ltcG9ydC5yc3QKKysrIGIvRG9jL3JlZmVyZW5jZS9pbXBvcnQucnN0CkBAIC0zNzMsMTYgKzM3MywxOCBAQAogICogVGhlIGBgX19sb2FkZXJfX2BgIGF0dHJpYnV0ZSBtdXN0IGJlIHNldCB0byB0aGUgbG9hZGVyIG9iamVjdCB0aGF0IGxvYWRlZAogICAgdGhlIG1vZHVsZS4gIFRoaXMgaXMgbW9zdGx5IGZvciBpbnRyb3NwZWN0aW9uIGFuZCByZWxvYWRpbmcsIGJ1dCBjYW4gYmUKICAgIHVzZWQgZm9yIGFkZGl0aW9uYWwgbG9hZGVyLXNwZWNpZmljIGZ1bmN0aW9uYWxpdHksIGZvciBleGFtcGxlIGdldHRpbmcKLSAgIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgbG9hZGVyLgorICAgZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBsb2FkZXIuIElmIHRoZSBhdHRyaWJ1dGUgaXMgbWlzc2luZyBvciBzZXQgdG8gYGBOb25lYGAKKyAgIHRoZW4gdGhlIGltcG9ydCBtYWNoaW5lcnkgd2lsbCBhdXRvbWF0aWNhbGx5IHNldCBpdCAqKmFmdGVyKiogdGhlIG1vZHVsZSBoYXMKKyAgIGJlZW4gaW1wb3J0ZWQuCiAKLSAqIFRoZSBtb2R1bGUncyBgYF9fcGFja2FnZV9fYGAgYXR0cmlidXRlIHNob3VsZCBiZSBzZXQuICBJdHMgdmFsdWUgbXVzdCBiZSBhCisgKiBUaGUgbW9kdWxlJ3MgYGBfX3BhY2thZ2VfX2BgIGF0dHJpYnV0ZSBtdXN0IGJlIHNldC4gIEl0cyB2YWx1ZSBtdXN0IGJlIGEKICAgIHN0cmluZywgYnV0IGl0IGNhbiBiZSB0aGUgc2FtZSB2YWx1ZSBhcyBpdHMgYGBfX25hbWVfX2BgLiAgSWYgdGhlIGF0dHJpYnV0ZQogICAgaXMgc2V0IHRvIGBgTm9uZWBgIG9yIGlzIG1pc3NpbmcsIHRoZSBpbXBvcnQgc3lzdGVtIHdpbGwgZmlsbCBpdCBpbiB3aXRoIGEKLSAgIG1vcmUgYXBwcm9wcmlhdGUgdmFsdWUuICBXaGVuIHRoZSBtb2R1bGUgaXMgYSBwYWNrYWdlLCBpdHMgYGBfX3BhY2thZ2VfX2BgCi0gICB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIGl0cyBgYF9fbmFtZV9fYGAuICBXaGVuIHRoZSBtb2R1bGUgaXMgbm90IGEgcGFja2FnZSwKLSAgIGBgX19wYWNrYWdlX19gYCBzaG91bGQgYmUgc2V0IHRvIHRoZSBlbXB0eSBzdHJpbmcgZm9yIHRvcC1sZXZlbCBtb2R1bGVzLCBvcgotICAgZm9yIHN1Ym1vZHVsZXMsIHRvIHRoZSBwYXJlbnQgcGFja2FnZSdzIG5hbWUuICBTZWUgOnBlcDpgMzY2YCBmb3IgZnVydGhlcgotICAgZGV0YWlscy4KKyAgIG1vcmUgYXBwcm9wcmlhdGUgdmFsdWUgKiphZnRlcioqIHRoZSBtb2R1bGUgaGFzIGJlZW4gaW1wb3J0ZWQuCisgICBXaGVuIHRoZSBtb2R1bGUgaXMgYSBwYWNrYWdlLCBpdHMgYGBfX3BhY2thZ2VfX2BgIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gaXRzCisgICBgYF9fbmFtZV9fYGAuICBXaGVuIHRoZSBtb2R1bGUgaXMgbm90IGEgcGFja2FnZSwgYGBfX3BhY2thZ2VfX2BgIHNob3VsZCBiZQorICAgc2V0IHRvIHRoZSBlbXB0eSBzdHJpbmcgZm9yIHRvcC1sZXZlbCBtb2R1bGVzLCBvciBmb3Igc3VibW9kdWxlcywgdG8gdGhlCisgICBwYXJlbnQgcGFja2FnZSdzIG5hbWUuICBTZWUgOnBlcDpgMzY2YCBmb3IgZnVydGhlciBkZXRhaWxzLgogCiAgICBUaGlzIGF0dHJpYnV0ZSBpcyB1c2VkIGluc3RlYWQgb2YgYGBfX25hbWVfX2BgIHRvIGNhbGN1bGF0ZSBleHBsaWNpdAogICAgcmVsYXRpdmUgaW1wb3J0cyBmb3IgbWFpbiBtb2R1bGVzLCBhcyBkZWZpbmVkIGluIDpwZXA6YDM2NmAuCkBAIC00MjUsOCArNDI3LDggQEAKICAqIElmIHRoZSBtb2R1bGUgaGFzIGEgYGBfX2ZpbGVfX2BgIGF0dHJpYnV0ZSwgdGhpcyBpcyB1c2VkIGFzIHBhcnQgb2YgdGhlCiAgICBtb2R1bGUncyByZXByLgogCi0gKiBJZiB0aGUgbW9kdWxlIGhhcyBubyBgYF9fZmlsZV9fYGAgYnV0IGRvZXMgaGF2ZSBhIGBgX19sb2FkZXJfX2BgLCB0aGVuIHRoZQotICAgbG9hZGVyJ3MgcmVwciBpcyB1c2VkIGFzIHBhcnQgb2YgdGhlIG1vZHVsZSdzIHJlcHIuCisgKiBJZiB0aGUgbW9kdWxlIGhhcyBubyBgYF9fZmlsZV9fYGAgYnV0IGRvZXMgaGF2ZSBhIGBgX19sb2FkZXJfX2BgIHRoYXQgaXMgbm90CisgICBgYE5vbmVgYCwgdGhlbiB0aGUgbG9hZGVyJ3MgcmVwciBpcyB1c2VkIGFzIHBhcnQgb2YgdGhlIG1vZHVsZSdzIHJlcHIuCiAKICAqIE90aGVyd2lzZSwganVzdCB1c2UgdGhlIG1vZHVsZSdzIGBgX19uYW1lX19gYCBpbiB0aGUgcmVwci4KIApkaWZmIC0tZ2l0IGEvRG9jL3Rvb2xzL3NwaGlueGV4dC9pbmRleHNpZGViYXIuaHRtbCBiL0RvYy90b29scy9zcGhpbnhleHQvaW5kZXhzaWRlYmFyLmh0bWwKaW5kZXggYTBlYzMyZi4uZWQ1ZGEwYyAxMDA2NDQKLS0tIGEvRG9jL3Rvb2xzL3NwaGlueGV4dC9pbmRleHNpZGViYXIuaHRtbAorKysgYi9Eb2MvdG9vbHMvc3BoaW54ZXh0L2luZGV4c2lkZWJhci5odG1sCkBAIC0zLDcgKzMsNyBAQAogCSAgICA8aDM+RG9jcyBmb3Igb3RoZXIgdmVyc2lvbnM8L2gzPgogCSAgICA8dWw+CiAJICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvMi43LyI+UHl0aG9uIDIuNyAoc3RhYmxlKTwvYT48L2xpPgotCSAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vZG9jcy5weXRob24ub3JnLzMuNC8iPlB5dGhvbiAzLjQgKGluIGRldmVsb3BtZW50KTwvYT48L2xpPgorCSAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vZG9jcy5weXRob24ub3JnLzMuMy8iPlB5dGhvbiAzLjMgKHN0YWJsZSk8L2E+PC9saT4KICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cucHl0aG9uLm9yZy9kb2MvdmVyc2lvbnMvIj5PbGQgdmVyc2lvbnM8L2E+PC9saT4KICAgICAgICAgICAgIDwvdWw+CiAKZGlmZiAtLWdpdCBhL0RvYy90b29scy9zcGhpbnhleHQvcHlzcGVjaWZpYy5weSBiL0RvYy90b29scy9zcGhpbnhleHQvcHlzcGVjaWZpYy5weQppbmRleCBlOGViNzAzLi5kZjZlNDhhIDEwMDY0NAotLS0gYS9Eb2MvdG9vbHMvc3BoaW54ZXh0L3B5c3BlY2lmaWMucHkKKysrIGIvRG9jL3Rvb2xzL3NwaGlueGV4dC9weXNwZWNpZmljLnB5CkBAIC0xMCw3ICsxMCw3IEBACiAiIiIKIAogSVNTVUVfVVJJID0gJ2h0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUlcycKLVNPVVJDRV9VUkkgPSAnaHR0cDovL2hnLnB5dGhvbi5vcmcvY3B5dGhvbi9maWxlLzMuMy8lcycKK1NPVVJDRV9VUkkgPSAnaHR0cDovL2hnLnB5dGhvbi5vcmcvY3B5dGhvbi9maWxlL2RlZmF1bHQvJXMnCiAKIGZyb20gZG9jdXRpbHMgaW1wb3J0IG5vZGVzLCB1dGlscwogZnJvbSBzcGhpbngudXRpbC5ub2RlcyBpbXBvcnQgc3BsaXRfZXhwbGljaXRfdGl0bGUKZGlmZiAtLWdpdCBhL0RvYy90b29scy9zcGhpbnhleHQvc3VzcC1pZ25vcmVkLmNzdiBiL0RvYy90b29scy9zcGhpbnhleHQvc3VzcC1pZ25vcmVkLmNzdgppbmRleCA3MmM1MjU1Li5kOTUxZGFkIDEwMDY0NAotLS0gYS9Eb2MvdG9vbHMvc3BoaW54ZXh0L3N1c3AtaWdub3JlZC5jc3YKKysrIGIvRG9jL3Rvb2xzL3NwaGlueGV4dC9zdXNwLWlnbm9yZWQuY3N2CkBAIC0xNjIsMTcgKzE2Miw5IEBACiBsaWJyYXJ5L3BkYiwsOmxpbmVubyxmaWxlbmFtZTpsaW5lbm8KIGxpYnJhcnkvcGlja2xlLCw6bWVtb3J5LCJjb25uID0gc3FsaXRlMy5jb25uZWN0KCIiOm1lbW9yeToiIikiCiBsaWJyYXJ5L3Bvc2l4LCxgLCJDRkxBR1M9IiJgZ2V0Y29uZiBMRlNfQ0ZMQUdTYCIiIE9QVD0iIi1nIC1PMiAkQ0ZMQUdTIiIiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidjbGFzc2lmaWVycyc6IFsnRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDQgLSBCZXRhJywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzJywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBNSVQgTGljZW5zZScsIgotbGlicmFyeS9wcHJpbnQsMjA5LDo6LCInTmF0dXJhbCBMYW5ndWFnZSA6OiBFbmdsaXNoJywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidPcGVyYXRpbmcgU3lzdGVtIDo6IE9TIEluZGVwZW5kZW50JywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24nLCIKLWxpYnJhcnkvcHByaW50LDIwOSw6OiwiJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyJywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi42JywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43JywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMnLCIKLWxpYnJhcnkvcHByaW50LDIwOSw6OiwiJ1RvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExpYnJhcmllcyA6OiBQeXRob24gTW9kdWxlcyddLCIKK2xpYnJhcnkvcHByaW50LCw6OiwiJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyIDo6IE9ubHknXSwiCitsaWJyYXJ5L3BwcmludCwsOjosIidQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi42JywiCitsaWJyYXJ5L3BwcmludCwsOjosIidQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43JywiCiBsaWJyYXJ5L3Byb2ZpbGUsLDpsaW5lbm8sZmlsZW5hbWU6bGluZW5vKGZ1bmN0aW9uKQogbGlicmFyeS9weWV4cGF0LCw6ZWxlbTEsPHB5OmVsZW0xIC8+CiBsaWJyYXJ5L3B5ZXhwYXQsLDpweSwieG1sbnM6cHkgPSAiImh0dHA6Ly93d3cucHl0aG9uLm9yZy9ucy8iIj4iCkBAIC0xODQsNiArMTc2LDcgQEAKIGxpYnJhcnkvc3FsaXRlMywsOmFnZSwiY3VyLmV4ZWN1dGUoIiJzZWxlY3QgKiBmcm9tIHBlb3BsZSB3aGVyZSBuYW1lX2xhc3Q9OndobyBhbmQgYWdlPTphZ2UiIiwgeyIid2hvIiI6IHdobywgIiJhZ2UiIjogYWdlfSkiCiBsaWJyYXJ5L3NxbGl0ZTMsLDptZW1vcnksCiBsaWJyYXJ5L3NxbGl0ZTMsLDp3aG8sImN1ci5leGVjdXRlKCIic2VsZWN0ICogZnJvbSBwZW9wbGUgd2hlcmUgbmFtZV9sYXN0PTp3aG8gYW5kIGFnZT06YWdlIiIsIHsiIndobyIiOiB3aG8sICIiYWdlIiI6IGFnZX0pIgorbGlicmFyeS9zcWxpdGUzLCw6cGF0aCwiZGIgPSBzcWxpdGUzLmNvbm5lY3QoJ2ZpbGU6cGF0aC90by9kYXRhYmFzZT9tb2RlPXJvJywgdXJpPVRydWUpIgogbGlicmFyeS9zc2wsLDpNeSwiT3JnYW5pemF0aW9uYWwgVW5pdCBOYW1lIChlZywgc2VjdGlvbikgW106TXkgR3JvdXAiCiBsaWJyYXJ5L3NzbCwsOk15LCJPcmdhbml6YXRpb24gTmFtZSAoZWcsIGNvbXBhbnkpIFtJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGRdOk15IE9yZ2FuaXphdGlvbiwgSW5jLiIKIGxpYnJhcnkvc3NsLCw6bXlzZXJ2ZXIsIkNvbW1vbiBOYW1lIChlZywgWU9VUiBuYW1lKSBbXTpteXNlcnZlci5teWdyb3VwLm15b3JnYW5pemF0aW9uLmNvbSIKZGlmZiAtLWdpdCBhL0RvYy90dXRvcmlhbC9pbnRlcmFjdGl2ZS5yc3QgYi9Eb2MvdHV0b3JpYWwvaW50ZXJhY3RpdmUucnN0CmluZGV4IDM2YWNiMDYuLmFiZjMwZjAgMTAwNjQ0Ci0tLSBhL0RvYy90dXRvcmlhbC9pbnRlcmFjdGl2ZS5yc3QKKysrIGIvRG9jL3R1dG9yaWFsL2ludGVyYWN0aXZlLnJzdApAQCAtNywxNDAgKzcsMjcgQEAKIFNvbWUgdmVyc2lvbnMgb2YgdGhlIFB5dGhvbiBpbnRlcnByZXRlciBzdXBwb3J0IGVkaXRpbmcgb2YgdGhlIGN1cnJlbnQgaW5wdXQKIGxpbmUgYW5kIGhpc3Rvcnkgc3Vic3RpdHV0aW9uLCBzaW1pbGFyIHRvIGZhY2lsaXRpZXMgZm91bmQgaW4gdGhlIEtvcm4gc2hlbGwgYW5kCiB0aGUgR05VIEJhc2ggc2hlbGwuICBUaGlzIGlzIGltcGxlbWVudGVkIHVzaW5nIHRoZSBgR05VIFJlYWRsaW5lYF8gbGlicmFyeSwKLXdoaWNoIHN1cHBvcnRzIEVtYWNzLXN0eWxlIGFuZCB2aS1zdHlsZSBlZGl0aW5nLiAgVGhpcyBsaWJyYXJ5IGhhcyBpdHMgb3duCi1kb2N1bWVudGF0aW9uIHdoaWNoIEkgd29uJ3QgZHVwbGljYXRlIGhlcmU7IGhvd2V2ZXIsIHRoZSBiYXNpY3MgYXJlIGVhc2lseQotZXhwbGFpbmVkLiAgVGhlIGludGVyYWN0aXZlIGVkaXRpbmcgYW5kIGhpc3RvcnkgZGVzY3JpYmVkIGhlcmUgYXJlIG9wdGlvbmFsbHkKLWF2YWlsYWJsZSBpbiB0aGUgVW5peCBhbmQgQ3lnd2luIHZlcnNpb25zIG9mIHRoZSBpbnRlcnByZXRlci4KLQotVGhpcyBjaGFwdGVyIGRvZXMgKm5vdCogZG9jdW1lbnQgdGhlIGVkaXRpbmcgZmFjaWxpdGllcyBvZiBNYXJrIEhhbW1vbmQncwotUHl0aG9uV2luIHBhY2thZ2Ugb3IgdGhlIFRrLWJhc2VkIGVudmlyb25tZW50LCBJRExFLCBkaXN0cmlidXRlZCB3aXRoIFB5dGhvbi4KLVRoZSBjb21tYW5kIGxpbmUgaGlzdG9yeSByZWNhbGwgd2hpY2ggb3BlcmF0ZXMgd2l0aGluIERPUyBib3hlcyBvbiBOVCBhbmQgc29tZQotb3RoZXIgRE9TIGFuZCBXaW5kb3dzIGZsYXZvcnMgIGlzIHlldCBhbm90aGVyIGJlYXN0LgotCi0KLS4uIF90dXQtbGluZWVkaXRpbmc6Ci0KLUxpbmUgRWRpdGluZwotPT09PT09PT09PT09Ci0KLUlmIHN1cHBvcnRlZCwgaW5wdXQgbGluZSBlZGl0aW5nIGlzIGFjdGl2ZSB3aGVuZXZlciB0aGUgaW50ZXJwcmV0ZXIgcHJpbnRzIGEKLXByaW1hcnkgb3Igc2Vjb25kYXJ5IHByb21wdC4gIFRoZSBjdXJyZW50IGxpbmUgY2FuIGJlIGVkaXRlZCB1c2luZyB0aGUKLWNvbnZlbnRpb25hbCBFbWFjcyBjb250cm9sIGNoYXJhY3RlcnMuICBUaGUgbW9zdCBpbXBvcnRhbnQgb2YgdGhlc2UgYXJlOgotOmtiZDpgQy1BYCAoQ29udHJvbC1BKSBtb3ZlcyB0aGUgY3Vyc29yIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUsIDprYmQ6YEMtRWAKLXRvIHRoZSBlbmQsIDprYmQ6YEMtQmAgbW92ZXMgaXQgb25lIHBvc2l0aW9uIHRvIHRoZSBsZWZ0LCA6a2JkOmBDLUZgIHRvIHRoZQotcmlnaHQuICBCYWNrc3BhY2UgZXJhc2VzIHRoZSBjaGFyYWN0ZXIgdG8gdGhlIGxlZnQgb2YgdGhlIGN1cnNvciwgOmtiZDpgQy1EYCB0aGUKLWNoYXJhY3RlciB0byBpdHMgcmlnaHQuIDprYmQ6YEMtS2Aga2lsbHMgKGVyYXNlcykgdGhlIHJlc3Qgb2YgdGhlIGxpbmUgdG8gdGhlCi1yaWdodCBvZiB0aGUgY3Vyc29yLCA6a2JkOmBDLVlgIHlhbmtzIGJhY2sgdGhlIGxhc3Qga2lsbGVkIHN0cmluZy4KLTprYmQ6YEMtdW5kZXJzY29yZWAgdW5kb2VzIHRoZSBsYXN0IGNoYW5nZSB5b3UgbWFkZTsgaXQgY2FuIGJlIHJlcGVhdGVkIGZvcgotY3VtdWxhdGl2ZSBlZmZlY3QuCi0KLQotLi4gX3R1dC1oaXN0b3J5OgotCi1IaXN0b3J5IFN1YnN0aXR1dGlvbgotPT09PT09PT09PT09PT09PT09PT0KLQotSGlzdG9yeSBzdWJzdGl0dXRpb24gd29ya3MgYXMgZm9sbG93cy4gIEFsbCBub24tZW1wdHkgaW5wdXQgbGluZXMgaXNzdWVkIGFyZQotc2F2ZWQgaW4gYSBoaXN0b3J5IGJ1ZmZlciwgYW5kIHdoZW4gYSBuZXcgcHJvbXB0IGlzIGdpdmVuIHlvdSBhcmUgcG9zaXRpb25lZCBvbgotYSBuZXcgbGluZSBhdCB0aGUgYm90dG9tIG9mIHRoaXMgYnVmZmVyLiA6a2JkOmBDLVBgIG1vdmVzIG9uZSBsaW5lIHVwIChiYWNrKSBpbgotdGhlIGhpc3RvcnkgYnVmZmVyLCA6a2JkOmBDLU5gIG1vdmVzIG9uZSBkb3duLiAgQW55IGxpbmUgaW4gdGhlIGhpc3RvcnkgYnVmZmVyCi1jYW4gYmUgZWRpdGVkOyBhbiBhc3RlcmlzayBhcHBlYXJzIGluIGZyb250IG9mIHRoZSBwcm9tcHQgdG8gbWFyayBhIGxpbmUgYXMKLW1vZGlmaWVkLiAgUHJlc3NpbmcgdGhlIDprYmQ6YFJldHVybmAga2V5IHBhc3NlcyB0aGUgY3VycmVudCBsaW5lIHRvIHRoZQotaW50ZXJwcmV0ZXIuICA6a2JkOmBDLVJgIHN0YXJ0cyBhbiBpbmNyZW1lbnRhbCByZXZlcnNlIHNlYXJjaDsgOmtiZDpgQy1TYCBzdGFydHMKLWEgZm9yd2FyZCBzZWFyY2guCit3aGljaCBzdXBwb3J0cyB2YXJpb3VzIHN0eWxlcyBvZiBlZGl0aW5nLiAgVGhpcyBsaWJyYXJ5IGhhcyBpdHMgb3duCitkb2N1bWVudGF0aW9uIHdoaWNoIHdlIHdvbid0IGR1cGxpY2F0ZSBoZXJlLgogCiAKIC4uIF90dXQta2V5YmluZGluZ3M6CiAKLUtleSBCaW5kaW5ncwotPT09PT09PT09PT09CitUYWIgQ29tcGxldGlvbiBhbmQgSGlzdG9yeSBFZGl0aW5nCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLVRoZSBrZXkgYmluZGluZ3MgYW5kIHNvbWUgb3RoZXIgcGFyYW1ldGVycyBvZiB0aGUgUmVhZGxpbmUgbGlicmFyeSBjYW4gYmUKLWN1c3RvbWl6ZWQgYnkgcGxhY2luZyBjb21tYW5kcyBpbiBhbiBpbml0aWFsaXphdGlvbiBmaWxlIGNhbGxlZAotOmZpbGU6YH4vLmlucHV0cmNgLiAgS2V5IGJpbmRpbmdzIGhhdmUgdGhlIGZvcm0gOjoKLQotICAga2V5LW5hbWU6IGZ1bmN0aW9uLW5hbWUKLQotb3IgOjoKLQotICAgInN0cmluZyI6IGZ1bmN0aW9uLW5hbWUKLQotYW5kIG9wdGlvbnMgY2FuIGJlIHNldCB3aXRoIDo6Ci0KLSAgIHNldCBvcHRpb24tbmFtZSB2YWx1ZQotCi1Gb3IgZXhhbXBsZTo6Ci0KLSAgICMgSSBwcmVmZXIgdmktc3R5bGUgZWRpdGluZzoKLSAgIHNldCBlZGl0aW5nLW1vZGUgdmkKLQotICAgIyBFZGl0IHVzaW5nIGEgc2luZ2xlIGxpbmU6Ci0gICBzZXQgaG9yaXpvbnRhbC1zY3JvbGwtbW9kZSBPbgotCi0gICAjIFJlYmluZCBzb21lIGtleXM6Ci0gICBNZXRhLWg6IGJhY2t3YXJkLWtpbGwtd29yZAotICAgIlxDLXUiOiB1bml2ZXJzYWwtYXJndW1lbnQKLSAgICJcQy14XEMtciI6IHJlLXJlYWQtaW5pdC1maWxlCi0KLU5vdGUgdGhhdCB0aGUgZGVmYXVsdCBiaW5kaW5nIGZvciA6a2JkOmBUYWJgIGluIFB5dGhvbiBpcyB0byBpbnNlcnQgYSA6a2JkOmBUYWJgCi1jaGFyYWN0ZXIgaW5zdGVhZCBvZiBSZWFkbGluZSdzIGRlZmF1bHQgZmlsZW5hbWUgY29tcGxldGlvbiBmdW5jdGlvbi4gIElmIHlvdQotaW5zaXN0LCB5b3UgY2FuIG92ZXJyaWRlIHRoaXMgYnkgcHV0dGluZyA6OgotCi0gICBUYWI6IGNvbXBsZXRlCi0KLWluIHlvdXIgOmZpbGU6YH4vLmlucHV0cmNgLiAgKE9mIGNvdXJzZSwgdGhpcyBtYWtlcyBpdCBoYXJkZXIgdG8gdHlwZSBpbmRlbnRlZAotY29udGludWF0aW9uIGxpbmVzIGlmIHlvdSdyZSBhY2N1c3RvbWVkIHRvIHVzaW5nIDprYmQ6YFRhYmAgZm9yIHRoYXQgcHVycG9zZS4pCi0KLS4uIGluZGV4OjoKLSAgIG1vZHVsZTogcmxjb21wbGV0ZXIKLSAgIG1vZHVsZTogcmVhZGxpbmUKLQotQXV0b21hdGljIGNvbXBsZXRpb24gb2YgdmFyaWFibGUgYW5kIG1vZHVsZSBuYW1lcyBpcyBvcHRpb25hbGx5IGF2YWlsYWJsZS4gIFRvCi1lbmFibGUgaXQgaW4gdGhlIGludGVycHJldGVyJ3MgaW50ZXJhY3RpdmUgbW9kZSwgYWRkIHRoZSBmb2xsb3dpbmcgdG8geW91cgotc3RhcnR1cCBmaWxlOiBbI11fICA6OgotCi0gICBpbXBvcnQgcmxjb21wbGV0ZXIsIHJlYWRsaW5lCi0gICByZWFkbGluZS5wYXJzZV9hbmRfYmluZCgndGFiOiBjb21wbGV0ZScpCi0KLVRoaXMgYmluZHMgdGhlIDprYmQ6YFRhYmAga2V5IHRvIHRoZSBjb21wbGV0aW9uIGZ1bmN0aW9uLCBzbyBoaXR0aW5nIHRoZQotOmtiZDpgVGFiYCBrZXkgdHdpY2Ugc3VnZ2VzdHMgY29tcGxldGlvbnM7IGl0IGxvb2tzIGF0IFB5dGhvbiBzdGF0ZW1lbnQgbmFtZXMsCi10aGUgY3VycmVudCBsb2NhbCB2YXJpYWJsZXMsIGFuZCB0aGUgYXZhaWxhYmxlIG1vZHVsZSBuYW1lcy4gIEZvciBkb3R0ZWQKLWV4cHJlc3Npb25zIHN1Y2ggYXMgYGBzdHJpbmcuYWBgLCBpdCB3aWxsIGV2YWx1YXRlIHRoZSBleHByZXNzaW9uIHVwIHRvIHRoZQotZmluYWwgYGAnLidgYCBhbmQgdGhlbiBzdWdnZXN0IGNvbXBsZXRpb25zIGZyb20gdGhlIGF0dHJpYnV0ZXMgb2YgdGhlIHJlc3VsdGluZwotb2JqZWN0LiAgTm90ZSB0aGF0IHRoaXMgbWF5IGV4ZWN1dGUgYXBwbGljYXRpb24tZGVmaW5lZCBjb2RlIGlmIGFuIG9iamVjdCB3aXRoIGEKLTptZXRoOmBfX2dldGF0dHJfX2AgbWV0aG9kIGlzIHBhcnQgb2YgdGhlIGV4cHJlc3Npb24uCi0KLUEgbW9yZSBjYXBhYmxlIHN0YXJ0dXAgZmlsZSBtaWdodCBsb29rIGxpa2UgdGhpcyBleGFtcGxlLiAgTm90ZSB0aGF0IHRoaXMKLWRlbGV0ZXMgdGhlIG5hbWVzIGl0IGNyZWF0ZXMgb25jZSB0aGV5IGFyZSBubyBsb25nZXIgbmVlZGVkOyB0aGlzIGlzIGRvbmUgc2luY2UKLXRoZSBzdGFydHVwIGZpbGUgaXMgZXhlY3V0ZWQgaW4gdGhlIHNhbWUgbmFtZXNwYWNlIGFzIHRoZSBpbnRlcmFjdGl2ZSBjb21tYW5kcywKLWFuZCByZW1vdmluZyB0aGUgbmFtZXMgYXZvaWRzIGNyZWF0aW5nIHNpZGUgZWZmZWN0cyBpbiB0aGUgaW50ZXJhY3RpdmUKLWVudmlyb25tZW50LiAgWW91IG1heSBmaW5kIGl0IGNvbnZlbmllbnQgdG8ga2VlcCBzb21lIG9mIHRoZSBpbXBvcnRlZCBtb2R1bGVzLAotc3VjaCBhcyA6bW9kOmBvc2AsIHdoaWNoIHR1cm4gb3V0IHRvIGJlIG5lZWRlZCBpbiBtb3N0IHNlc3Npb25zIHdpdGggdGhlCi1pbnRlcnByZXRlci4gOjoKLQotICAgIyBBZGQgYXV0by1jb21wbGV0aW9uIGFuZCBhIHN0b3JlZCBoaXN0b3J5IGZpbGUgb2YgY29tbWFuZHMgdG8geW91ciBQeXRob24KLSAgICMgaW50ZXJhY3RpdmUgaW50ZXJwcmV0ZXIuIFJlcXVpcmVzIFB5dGhvbiAyLjArLCByZWFkbGluZS4gQXV0b2NvbXBsZXRlIGlzCi0gICAjIGJvdW5kIHRvIHRoZSBFc2Mga2V5IGJ5IGRlZmF1bHQgKHlvdSBjYW4gY2hhbmdlIGl0IC0gc2VlIHJlYWRsaW5lIGRvY3MpLgotICAgIwotICAgIyBTdG9yZSB0aGUgZmlsZSBpbiB+Ly5weXN0YXJ0dXAsIGFuZCBzZXQgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gcG9pbnQKLSAgICMgdG8gaXQ6ICAiZXhwb3J0IFBZVEhPTlNUQVJUVVA9fi8ucHlzdGFydHVwIiBpbiBiYXNoLgotCi0gICBpbXBvcnQgYXRleGl0Ci0gICBpbXBvcnQgb3MKLSAgIGltcG9ydCByZWFkbGluZQotICAgaW1wb3J0IHJsY29tcGxldGVyCi0KLSAgIGhpc3RvcnlQYXRoID0gb3MucGF0aC5leHBhbmR1c2VyKCJ+Ly5weWhpc3RvcnkiKQotCi0gICBkZWYgc2F2ZV9oaXN0b3J5KGhpc3RvcnlQYXRoPWhpc3RvcnlQYXRoKToKLSAgICAgICBpbXBvcnQgcmVhZGxpbmUKLSAgICAgICByZWFkbGluZS53cml0ZV9oaXN0b3J5X2ZpbGUoaGlzdG9yeVBhdGgpCi0KLSAgIGlmIG9zLnBhdGguZXhpc3RzKGhpc3RvcnlQYXRoKToKLSAgICAgICByZWFkbGluZS5yZWFkX2hpc3RvcnlfZmlsZShoaXN0b3J5UGF0aCkKLQotICAgYXRleGl0LnJlZ2lzdGVyKHNhdmVfaGlzdG9yeSkKLSAgIGRlbCBvcywgYXRleGl0LCByZWFkbGluZSwgcmxjb21wbGV0ZXIsIHNhdmVfaGlzdG9yeSwgaGlzdG9yeVBhdGgKK0NvbXBsZXRpb24gb2YgdmFyaWFibGUgYW5kIG1vZHVsZSBuYW1lcyBpcworOnJlZjpgYXV0b21hdGljYWxseSBlbmFibGVkIDxybGNvbXBsZXRlci1jb25maWc+YCBhdCBpbnRlcnByZXRlciBzdGFydHVwIHNvCit0aGF0IHRoZSA6a2JkOmBUYWJgIGtleSBpbnZva2VzIHRoZSBjb21wbGV0aW9uIGZ1bmN0aW9uOyBpdCBsb29rcyBhdAorUHl0aG9uIHN0YXRlbWVudCBuYW1lcywgdGhlIGN1cnJlbnQgbG9jYWwgdmFyaWFibGVzLCBhbmQgdGhlIGF2YWlsYWJsZQorbW9kdWxlIG5hbWVzLiAgRm9yIGRvdHRlZCBleHByZXNzaW9ucyBzdWNoIGFzIGBgc3RyaW5nLmFgYCwgaXQgd2lsbCBldmFsdWF0ZQordGhlIGV4cHJlc3Npb24gdXAgdG8gdGhlIGZpbmFsIGBgJy4nYGAgYW5kIHRoZW4gc3VnZ2VzdCBjb21wbGV0aW9ucyBmcm9tCit0aGUgYXR0cmlidXRlcyBvZiB0aGUgcmVzdWx0aW5nIG9iamVjdC4gIE5vdGUgdGhhdCB0aGlzIG1heSBleGVjdXRlCithcHBsaWNhdGlvbi1kZWZpbmVkIGNvZGUgaWYgYW4gb2JqZWN0IHdpdGggYSA6bWV0aDpgX19nZXRhdHRyX19gIG1ldGhvZAoraXMgcGFydCBvZiB0aGUgZXhwcmVzc2lvbi4gIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gYWxzbyBzYXZlcyB5b3VyCitoaXN0b3J5IGludG8gYSBmaWxlIG5hbWVkIDpmaWxlOmAucHl0aG9uX2hpc3RvcnlgIGluIHlvdXIgdXNlciBkaXJlY3RvcnkuCitUaGUgaGlzdG9yeSB3aWxsIGJlIGF2YWlsYWJsZSBhZ2FpbiBkdXJpbmcgdGhlIG5leHQgaW50ZXJhY3RpdmUgaW50ZXJwcmV0ZXIKK3Nlc3Npb24uCiAKIAogLi4gX3R1dC1jb21tZW50YXJ5OgpAQCAtMTYyLDE0ICs0OSw2IEBACiBicHl0aG9uXy4KIAogCi0uLiBydWJyaWM6OiBGb290bm90ZXMKLQotLi4gWyNdIFB5dGhvbiB3aWxsIGV4ZWN1dGUgdGhlIGNvbnRlbnRzIG9mIGEgZmlsZSBpZGVudGlmaWVkIGJ5IHRoZQotICAgOmVudnZhcjpgUFlUSE9OU1RBUlRVUGAgZW52aXJvbm1lbnQgdmFyaWFibGUgd2hlbiB5b3Ugc3RhcnQgYW4gaW50ZXJhY3RpdmUKLSAgIGludGVycHJldGVyLiAgVG8gY3VzdG9taXplIFB5dGhvbiBldmVuIGZvciBub24taW50ZXJhY3RpdmUgbW9kZSwgc2VlCi0gICA6cmVmOmB0dXQtY3VzdG9taXplYC4KLQotCiAuLiBfR05VIFJlYWRsaW5lOiBodHRwOi8vdGlzd3d3LmNhc2UuZWR1L3BocC9jaGV0L3JlYWRsaW5lL3JsdG9wLmh0bWwKIC4uIF9JUHl0aG9uOiBodHRwOi8vaXB5dGhvbi5zY2lweS5vcmcvCiAuLiBfYnB5dGhvbjogaHR0cDovL3d3dy5icHl0aG9uLWludGVycHJldGVyLm9yZy8KZGlmZiAtLWdpdCBhL0RvYy90dXRvcmlhbC9pbnRlcnByZXRlci5yc3QgYi9Eb2MvdHV0b3JpYWwvaW50ZXJwcmV0ZXIucnN0CmluZGV4IGNkYzJiZjIuLmMxODI1MTEgMTAwNjQ0Ci0tLSBhL0RvYy90dXRvcmlhbC9pbnRlcnByZXRlci5yc3QKKysrIGIvRG9jL3R1dG9yaWFsL2ludGVycHJldGVyLnJzdApAQCAtMTAsMTMgKzEwLDEzIEBACiBJbnZva2luZyB0aGUgSW50ZXJwcmV0ZXIKID09PT09PT09PT09PT09PT09PT09PT09PQogCi1UaGUgUHl0aG9uIGludGVycHJldGVyIGlzIHVzdWFsbHkgaW5zdGFsbGVkIGFzIDpmaWxlOmAvdXNyL2xvY2FsL2Jpbi9weXRob24zLjNgCitUaGUgUHl0aG9uIGludGVycHJldGVyIGlzIHVzdWFsbHkgaW5zdGFsbGVkIGFzIDpmaWxlOmAvdXNyL2xvY2FsL2Jpbi9weXRob24zLjRgCiBvbiB0aG9zZSBtYWNoaW5lcyB3aGVyZSBpdCBpcyBhdmFpbGFibGU7IHB1dHRpbmcgOmZpbGU6YC91c3IvbG9jYWwvYmluYCBpbiB5b3VyCiBVbml4IHNoZWxsJ3Mgc2VhcmNoIHBhdGggbWFrZXMgaXQgcG9zc2libGUgdG8gc3RhcnQgaXQgYnkgdHlwaW5nIHRoZSBjb21tYW5kOgogCiAuLiBjb2RlLWJsb2NrOjogdGV4dAogCi0gICBweXRob24zLjMKKyAgIHB5dGhvbjMuNAogCiB0byB0aGUgc2hlbGwuIFsjXV8gU2luY2UgdGhlIGNob2ljZSBvZiB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBpbnRlcnByZXRlciBsaXZlcwogaXMgYW4gaW5zdGFsbGF0aW9uIG9wdGlvbiwgb3RoZXIgcGxhY2VzIGFyZSBwb3NzaWJsZTsgY2hlY2sgd2l0aCB5b3VyIGxvY2FsCkBAIC0yNCwxMSArMjQsMTEgQEAKIHBvcHVsYXIgYWx0ZXJuYXRpdmUgbG9jYXRpb24uKQogCiBPbiBXaW5kb3dzIG1hY2hpbmVzLCB0aGUgUHl0aG9uIGluc3RhbGxhdGlvbiBpcyB1c3VhbGx5IHBsYWNlZCBpbgotOmZpbGU6YEM6XFxQeXRob24zM2AsIHRob3VnaCB5b3UgY2FuIGNoYW5nZSB0aGlzIHdoZW4geW91J3JlIHJ1bm5pbmcgdGhlCis6ZmlsZTpgQzpcXFB5dGhvbjM0YCwgdGhvdWdoIHlvdSBjYW4gY2hhbmdlIHRoaXMgd2hlbiB5b3UncmUgcnVubmluZyB0aGUKIGluc3RhbGxlci4gIFRvIGFkZCB0aGlzIGRpcmVjdG9yeSB0byB5b3VyIHBhdGgsICB5b3UgY2FuIHR5cGUgdGhlIGZvbGxvd2luZwogY29tbWFuZCBpbnRvIHRoZSBjb21tYW5kIHByb21wdCBpbiBhIERPUyBib3g6OgogCi0gICBzZXQgcGF0aD0lcGF0aCU7QzpccHl0aG9uMzMKKyAgIHNldCBwYXRoPSVwYXRoJTtDOlxweXRob24zNAogCiBUeXBpbmcgYW4gZW5kLW9mLWZpbGUgY2hhcmFjdGVyICg6a2JkOmBDb250cm9sLURgIG9uIFVuaXgsIDprYmQ6YENvbnRyb2wtWmAgb24KIFdpbmRvd3MpIGF0IHRoZSBwcmltYXJ5IHByb21wdCBjYXVzZXMgdGhlIGludGVycHJldGVyIHRvIGV4aXQgd2l0aCBhIHplcm8gZXhpdApAQCAtOTUsOCArOTUsOCBAQAogcHJpbnRzIGEgd2VsY29tZSBtZXNzYWdlIHN0YXRpbmcgaXRzIHZlcnNpb24gbnVtYmVyIGFuZCBhIGNvcHlyaWdodCBub3RpY2UKIGJlZm9yZSBwcmludGluZyB0aGUgZmlyc3QgcHJvbXB0OjoKIAotICAgJCBweXRob24zLjMKLSAgIFB5dGhvbiAzLjMgKGRlZmF1bHQsIFNlcCAyNCAyMDEyLCAwOToyNTowNCkKKyAgICQgcHl0aG9uMy40CisgICBQeXRob24gMy40IChkZWZhdWx0LCBTZXAgMjQgMjAxMiwgMDk6MjU6MDQpCiAgICBbR0NDIDQuNi4zXSBvbiBsaW51eDIKICAgIFR5cGUgImhlbHAiLCAiY29weXJpZ2h0IiwgImNyZWRpdHMiIG9yICJsaWNlbnNlIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgID4+PgpAQCAtMTQ5LDcgKzE0OSw3IEBACiBPbiBCU0QnaXNoIFVuaXggc3lzdGVtcywgUHl0aG9uIHNjcmlwdHMgY2FuIGJlIG1hZGUgZGlyZWN0bHkgZXhlY3V0YWJsZSwgbGlrZQogc2hlbGwgc2NyaXB0cywgYnkgcHV0dGluZyB0aGUgbGluZSA6OgogCi0gICAjISAvdXNyL2Jpbi9lbnYgcHl0aG9uMy4zCisgICAjISAvdXNyL2Jpbi9lbnYgcHl0aG9uMy40CiAKIChhc3N1bWluZyB0aGF0IHRoZSBpbnRlcnByZXRlciBpcyBvbiB0aGUgdXNlcidzIDplbnZ2YXI6YFBBVEhgKSBhdCB0aGUgYmVnaW5uaW5nCiBvZiB0aGUgc2NyaXB0IGFuZCBnaXZpbmcgdGhlIGZpbGUgYW4gZXhlY3V0YWJsZSBtb2RlLiAgVGhlIGBgIyFgYCBtdXN0IGJlIHRoZQpkaWZmIC0tZ2l0IGEvRG9jL3R1dG9yaWFsL21vZHVsZXMucnN0IGIvRG9jL3R1dG9yaWFsL21vZHVsZXMucnN0CmluZGV4IGUyY2UwZWYuLjk5ZTE1YmMgMTAwNjQ0Ci0tLSBhL0RvYy90dXRvcmlhbC9tb2R1bGVzLnJzdAorKysgYi9Eb2MvdHV0b3JpYWwvbW9kdWxlcy5yc3QKQEAgLTI5MCwyNCArMjkwLDIzIEBACiAgICA+Pj4gZGlyKGZpYm8pCiAgICBbJ19fbmFtZV9fJywgJ2ZpYicsICdmaWIyJ10KICAgID4+PiBkaXIoc3lzKSAgIyBkb2N0ZXN0OiArTk9STUFMSVpFX1dISVRFU1BBQ0UKLSAgIFsnX19kaXNwbGF5aG9va19fJywgJ19fZG9jX18nLCAnX19lZ2dpbnNlcnQnLCAnX19leGNlcHRob29rX18nLAotICAgICdfX2xvYWRlcl9fJywgJ19fbmFtZV9fJywgJ19fcGFja2FnZV9fJywgJ19fcGxlbicsICdfX3N0ZGVycl9fJywKLSAgICAnX19zdGRpbl9fJywgJ19fc3Rkb3V0X18nLCAnX2NsZWFyX3R5cGVfY2FjaGUnLCAnX2N1cnJlbnRfZnJhbWVzJywKLSAgICAnX2RlYnVnbWFsbG9jc3RhdHMnLCAnX2dldGZyYW1lJywgJ19ob21lJywgJ19tZXJjdXJpYWwnLCAnX3hvcHRpb25zJywKLSAgICAnYWJpZmxhZ3MnLCAnYXBpX3ZlcnNpb24nLCAnYXJndicsICdiYXNlX2V4ZWNfcHJlZml4JywgJ2Jhc2VfcHJlZml4JywKLSAgICAnYnVpbHRpbl9tb2R1bGVfbmFtZXMnLCAnYnl0ZW9yZGVyJywgJ2NhbGxfdHJhY2luZycsICdjYWxsc3RhdHMnLAotICAgICdjb3B5cmlnaHQnLCAnZGlzcGxheWhvb2snLCAnZG9udF93cml0ZV9ieXRlY29kZScsICdleGNfaW5mbycsCi0gICAgJ2V4Y2VwdGhvb2snLCAnZXhlY19wcmVmaXgnLCAnZXhlY3V0YWJsZScsICdleGl0JywgJ2ZsYWdzJywgJ2Zsb2F0X2luZm8nLAotICAgICdmbG9hdF9yZXByX3N0eWxlJywgJ2dldGNoZWNraW50ZXJ2YWwnLCAnZ2V0ZGVmYXVsdGVuY29kaW5nJywKLSAgICAnZ2V0ZGxvcGVuZmxhZ3MnLCAnZ2V0ZmlsZXN5c3RlbWVuY29kaW5nJywgJ2dldG9iamVjdHMnLCAnZ2V0cHJvZmlsZScsCi0gICAgJ2dldHJlY3Vyc2lvbmxpbWl0JywgJ2dldHJlZmNvdW50JywgJ2dldHNpemVvZicsICdnZXRzd2l0Y2hpbnRlcnZhbCcsCi0gICAgJ2dldHRvdGFscmVmY291bnQnLCAnZ2V0dHJhY2UnLCAnaGFzaF9pbmZvJywgJ2hleHZlcnNpb24nLAotICAgICdpbXBsZW1lbnRhdGlvbicsICdpbnRfaW5mbycsICdpbnRlcm4nLCAnbWF4c2l6ZScsICdtYXh1bmljb2RlJywKLSAgICAnbWV0YV9wYXRoJywgJ21vZHVsZXMnLCAncGF0aCcsICdwYXRoX2hvb2tzJywgJ3BhdGhfaW1wb3J0ZXJfY2FjaGUnLAotICAgICdwbGF0Zm9ybScsICdwcmVmaXgnLCAncHMxJywgJ3NldGNoZWNraW50ZXJ2YWwnLCAnc2V0ZGxvcGVuZmxhZ3MnLAotICAgICdzZXRwcm9maWxlJywgJ3NldHJlY3Vyc2lvbmxpbWl0JywgJ3NldHN3aXRjaGludGVydmFsJywgJ3NldHRyYWNlJywKLSAgICAnc3RkZXJyJywgJ3N0ZGluJywgJ3N0ZG91dCcsICd0aHJlYWRfaW5mbycsICd2ZXJzaW9uJywgJ3ZlcnNpb25faW5mbycsCi0gICAgJ3dhcm5vcHRpb25zJ10KKyAgIFsnX19kaXNwbGF5aG9va19fJywgJ19fZG9jX18nLCAnX19leGNlcHRob29rX18nLCAnX19sb2FkZXJfXycsICdfX25hbWVfXycsCisgICAgJ19fcGFja2FnZV9fJywgJ19fc3RkZXJyX18nLCAnX19zdGRpbl9fJywgJ19fc3Rkb3V0X18nLAorICAgICdfY2xlYXJfdHlwZV9jYWNoZScsICdfY3VycmVudF9mcmFtZXMnLCAnX2RlYnVnbWFsbG9jc3RhdHMnLCAnX2dldGZyYW1lJywKKyAgICAnX2hvbWUnLCAnX21lcmN1cmlhbCcsICdfeG9wdGlvbnMnLCAnYWJpZmxhZ3MnLCAnYXBpX3ZlcnNpb24nLCAnYXJndicsCisgICAgJ2Jhc2VfZXhlY19wcmVmaXgnLCAnYmFzZV9wcmVmaXgnLCAnYnVpbHRpbl9tb2R1bGVfbmFtZXMnLCAnYnl0ZW9yZGVyJywKKyAgICAnY2FsbF90cmFjaW5nJywgJ2NhbGxzdGF0cycsICdjb3B5cmlnaHQnLCAnZGlzcGxheWhvb2snLAorICAgICdkb250X3dyaXRlX2J5dGVjb2RlJywgJ2V4Y19pbmZvJywgJ2V4Y2VwdGhvb2snLCAnZXhlY19wcmVmaXgnLAorICAgICdleGVjdXRhYmxlJywgJ2V4aXQnLCAnZmxhZ3MnLCAnZmxvYXRfaW5mbycsICdmbG9hdF9yZXByX3N0eWxlJywKKyAgICAnZ2V0Y2hlY2tpbnRlcnZhbCcsICdnZXRkZWZhdWx0ZW5jb2RpbmcnLCAnZ2V0ZGxvcGVuZmxhZ3MnLAorICAgICdnZXRmaWxlc3lzdGVtZW5jb2RpbmcnLCAnZ2V0b2JqZWN0cycsICdnZXRwcm9maWxlJywgJ2dldHJlY3Vyc2lvbmxpbWl0JywKKyAgICAnZ2V0cmVmY291bnQnLCAnZ2V0c2l6ZW9mJywgJ2dldHN3aXRjaGludGVydmFsJywgJ2dldHRvdGFscmVmY291bnQnLAorICAgICdnZXR0cmFjZScsICdoYXNoX2luZm8nLCAnaGV4dmVyc2lvbicsICdpbXBsZW1lbnRhdGlvbicsICdpbnRfaW5mbycsCisgICAgJ2ludGVybicsICdtYXhzaXplJywgJ21heHVuaWNvZGUnLCAnbWV0YV9wYXRoJywgJ21vZHVsZXMnLCAncGF0aCcsCisgICAgJ3BhdGhfaG9va3MnLCAncGF0aF9pbXBvcnRlcl9jYWNoZScsICdwbGF0Zm9ybScsICdwcmVmaXgnLCAncHMxJywKKyAgICAnc2V0Y2hlY2tpbnRlcnZhbCcsICdzZXRkbG9wZW5mbGFncycsICdzZXRwcm9maWxlJywgJ3NldHJlY3Vyc2lvbmxpbWl0JywKKyAgICAnc2V0c3dpdGNoaW50ZXJ2YWwnLCAnc2V0dHJhY2UnLCAnc3RkZXJyJywgJ3N0ZGluJywgJ3N0ZG91dCcsCisgICAgJ3RocmVhZF9pbmZvJywgJ3ZlcnNpb24nLCAndmVyc2lvbl9pbmZvJywgJ3dhcm5vcHRpb25zJ10KIAogV2l0aG91dCBhcmd1bWVudHMsIDpmdW5jOmBkaXJgIGxpc3RzIHRoZSBuYW1lcyB5b3UgaGF2ZSBkZWZpbmVkIGN1cnJlbnRseTo6CiAKZGlmZiAtLWdpdCBhL0RvYy90dXRvcmlhbC9zdGRsaWIucnN0IGIvRG9jL3R1dG9yaWFsL3N0ZGxpYi5yc3QKaW5kZXggN2U3YTE1NC4uMmUzZWQxOCAxMDA2NDQKLS0tIGEvRG9jL3R1dG9yaWFsL3N0ZGxpYi5yc3QKKysrIGIvRG9jL3R1dG9yaWFsL3N0ZGxpYi5yc3QKQEAgLTE1LDcgKzE1LDcgQEAKIAogICAgPj4+IGltcG9ydCBvcwogICAgPj4+IG9zLmdldGN3ZCgpICAgICAgIyBSZXR1cm4gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkKLSAgICdDOlxcUHl0aG9uMzMnCisgICAnQzpcXFB5dGhvbjM0JwogICAgPj4+IG9zLmNoZGlyKCcvc2VydmVyL2FjY2Vzc2xvZ3MnKSAgICMgQ2hhbmdlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkKICAgID4+PiBvcy5zeXN0ZW0oJ21rZGlyIHRvZGF5JykgICAjIFJ1biB0aGUgY29tbWFuZCBta2RpciBpbiB0aGUgc3lzdGVtIHNoZWxsCiAgICAwCmRpZmYgLS1naXQgYS9Eb2MvdHV0b3JpYWwvc3RkbGliMi5yc3QgYi9Eb2MvdHV0b3JpYWwvc3RkbGliMi5yc3QKaW5kZXggNGI2ZTAzNi4uM2I5MTIyZiAxMDA2NDQKLS0tIGEvRG9jL3R1dG9yaWFsL3N0ZGxpYjIucnN0CisrKyBiL0RvYy90dXRvcmlhbC9zdGRsaWIyLnJzdApAQCAtMjc1LDcgKzI3NSw3IEBACiAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDEsIGluIDxtb2R1bGU+CiAgICAgICAgZFsncHJpbWFyeSddICAgICAgICAgICAgICAgICMgZW50cnkgd2FzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZAotICAgICBGaWxlICJDOi9weXRob24zMy9saWIvd2Vha3JlZi5weSIsIGxpbmUgNDYsIGluIF9fZ2V0aXRlbV9fCisgICAgIEZpbGUgIkM6L3B5dGhvbjM0L2xpYi93ZWFrcmVmLnB5IiwgbGluZSA0NiwgaW4gX19nZXRpdGVtX18KICAgICAgICBvID0gc2VsZi5kYXRhW2tleV0oKQogICAgS2V5RXJyb3I6ICdwcmltYXJ5JwogCmRpZmYgLS1naXQgYS9Eb2MvdXNpbmcvY21kbGluZS5yc3QgYi9Eb2MvdXNpbmcvY21kbGluZS5yc3QKaW5kZXggZTBjODBmNi4uZmEwMWVhMSAxMDA2NDQKLS0tIGEvRG9jL3VzaW5nL2NtZGxpbmUucnN0CisrKyBiL0RvYy91c2luZy9jbWRsaW5lLnJzdApAQCAtMTQ3LDcgKzE0NywxMiBAQAogCiBJZiBubyBpbnRlcmZhY2Ugb3B0aW9uIGlzIGdpdmVuLCA6b3B0aW9uOmAtaWAgaXMgaW1wbGllZCwgYGBzeXMuYXJndlswXWBgIGlzCiBhbiBlbXB0eSBzdHJpbmcgKGBgIiJgYCkgYW5kIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aWxsIGJlIGFkZGVkIHRvIHRoZQotc3RhcnQgb2YgOmRhdGE6YHN5cy5wYXRoYC4KK3N0YXJ0IG9mIDpkYXRhOmBzeXMucGF0aGAuICBBbHNvLCB0YWItY29tcGxldGlvbiBhbmQgaGlzdG9yeSBlZGl0aW5nIGlzCithdXRvbWF0aWNhbGx5IGVuYWJsZWQsIGlmIGF2YWlsYWJsZSBvbiB5b3VyIHBsYXRmb3JtIChzZWUKKzpyZWY6YHJsY29tcGxldGVyLWNvbmZpZ2ApLgorCisuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuNAorICAgQXV0b21hdGljIGVuYWJsaW5nIG9mIHRhYi1jb21wbGV0aW9uIGFuZCBoaXN0b3J5IGVkaXRpbmcuCiAKIC4uIHNlZWFsc286OiAgOnJlZjpgdHV0LWludm9raW5nYAogCkBAIC0zNTgsOSArMzYzLDE0IEBACiAuLiBjbWRvcHRpb246OiAtWAogCiAgICBSZXNlcnZlZCBmb3IgdmFyaW91cyBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBvcHRpb25zLiAgQ1B5dGhvbiBjdXJyZW50bHkKLSAgIGRlZmluZXMganVzdCBvbmUsIHlvdSBjYW4gdXNlIGBgLVggZmF1bHRoYW5kbGVyYGAgdG8gZW5hYmxlCi0gICA6bW9kOmBmYXVsdGhhbmRsZXJgLiBJdCBhbHNvIGFsbG93cyB0byBwYXNzIGFyYml0cmFyeSB2YWx1ZXMgYW5kIHJldHJpZXZlCi0gICB0aGVtIHRocm91Z2ggdGhlIDpkYXRhOmBzeXMuX3hvcHRpb25zYCBkaWN0aW9uYXJ5LgorICAgZGVmaW5lcyB0d28gcG9zc2libGUgdmFsdWVzOgorCisgICAqIGBgLVggZmF1bHRoYW5kbGVyYGAgdG8gZW5hYmxlIDptb2Q6YGZhdWx0aGFuZGxlcmA7CisgICAqIGBgLVggc2hvd3JlZmNvdW50YGAgdG8gZW5hYmxlIHRoZSBvdXRwdXQgb2YgdGhlIHRvdGFsIHJlZmVyZW5jZSBjb3VudAorICAgICBhbmQgbWVtb3J5IGJsb2NrcyAob25seSB3b3JrcyBvbiBkZWJ1ZyBidWlsZHMpOworCisgICBJdCBhbHNvIGFsbG93cyB0byBwYXNzIGFyYml0cmFyeSB2YWx1ZXMgYW5kIHJldHJpZXZlIHRoZW0gdGhyb3VnaCB0aGUKKyAgIDpkYXRhOmBzeXMuX3hvcHRpb25zYCBkaWN0aW9uYXJ5LgogCiAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMgogICAgICAgSXQgaXMgbm93IGFsbG93ZWQgdG8gcGFzcyA6b3B0aW9uOmAtWGAgd2l0aCBDUHl0aG9uLgpAQCAtMzY4LDYgKzM3OCw5IEBACiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKICAgICAgIFRoZSBgYC1YIGZhdWx0aGFuZGxlcmBgIG9wdGlvbi4KIAorICAgLi4gdmVyc2lvbmFkZGVkOjogMy40CisgICAgICBUaGUgYGAtWCBzaG93cmVmY291bnRgYCBvcHRpb24uCisKIAogT3B0aW9ucyB5b3Ugc2hvdWxkbid0IHVzZQogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpAQCAtNDMwLDcgKzQ0Myw3IEBACiAgICBpcyBleGVjdXRlZCBpbiB0aGUgc2FtZSBuYW1lc3BhY2Ugd2hlcmUgaW50ZXJhY3RpdmUgY29tbWFuZHMgYXJlIGV4ZWN1dGVkIHNvCiAgICB0aGF0IG9iamVjdHMgZGVmaW5lZCBvciBpbXBvcnRlZCBpbiBpdCBjYW4gYmUgdXNlZCB3aXRob3V0IHF1YWxpZmljYXRpb24gaW4KICAgIHRoZSBpbnRlcmFjdGl2ZSBzZXNzaW9uLiAgWW91IGNhbiBhbHNvIGNoYW5nZSB0aGUgcHJvbXB0cyA6ZGF0YTpgc3lzLnBzMWAgYW5kCi0gICA6ZGF0YTpgc3lzLnBzMmAgaW4gdGhpcyBmaWxlLgorICAgOmRhdGE6YHN5cy5wczJgIGFuZCB0aGUgaG9vayA6ZGF0YTpgc3lzLl9faW50ZXJhY3RpdmVob29rX19gIGluIHRoaXMgZmlsZS4KIAogCiAuLiBlbnZ2YXI6OiBQWVRIT05ZMksKZGlmZiAtLWdpdCBhL0RvYy91c2luZy9tYWMucnN0IGIvRG9jL3VzaW5nL21hYy5yc3QKaW5kZXggM2UxYjc0ZC4uNWJlNDM5ZiAxMDA2NDQKLS0tIGEvRG9jL3VzaW5nL21hYy5yc3QKKysrIGIvRG9jL3VzaW5nL21hYy5yc3QKQEAgLTI1LDcgKzI1LDcgQEAKIAogV2hhdCB5b3UgZ2V0IGFmdGVyIGluc3RhbGxpbmcgaXMgYSBudW1iZXIgb2YgdGhpbmdzOgogCi0qIEEgOmZpbGU6YE1hY1B5dGhvbiAzLjNgIGZvbGRlciBpbiB5b3VyIDpmaWxlOmBBcHBsaWNhdGlvbnNgIGZvbGRlci4gSW4gaGVyZQorKiBBIDpmaWxlOmBNYWNQeXRob24gMy40YCBmb2xkZXIgaW4geW91ciA6ZmlsZTpgQXBwbGljYXRpb25zYCBmb2xkZXIuIEluIGhlcmUKICAgeW91IGZpbmQgSURMRSwgdGhlIGRldmVsb3BtZW50IGVudmlyb25tZW50IHRoYXQgaXMgYSBzdGFuZGFyZCBwYXJ0IG9mIG9mZmljaWFsCiAgIFB5dGhvbiBkaXN0cmlidXRpb25zOyBQeXRob25MYXVuY2hlciwgd2hpY2ggaGFuZGxlcyBkb3VibGUtY2xpY2tpbmcgUHl0aG9uCiAgIHNjcmlwdHMgZnJvbSB0aGUgRmluZGVyOyBhbmQgdGhlICJCdWlsZCBBcHBsZXQiIHRvb2wsIHdoaWNoIGFsbG93cyB5b3UgdG8KQEAgLTkzLDcgKzkzLDcgQEAKIGFueXRoaW5nIHRoYXQgaGFzIGEgR1VJKSBuZWVkIHRvIGJlIHJ1biBpbiBhIHNwZWNpYWwgd2F5LiBVc2UgOnByb2dyYW06YHB5dGhvbndgCiBpbnN0ZWFkIG9mIDpwcm9ncmFtOmBweXRob25gIHRvIHN0YXJ0IHN1Y2ggc2NyaXB0cy4KIAotV2l0aCBQeXRob24gMy4zLCB5b3UgY2FuIHVzZSBlaXRoZXIgOnByb2dyYW06YHB5dGhvbmAgb3IgOnByb2dyYW06YHB5dGhvbndgLgorV2l0aCBQeXRob24gMy40LCB5b3UgY2FuIHVzZSBlaXRoZXIgOnByb2dyYW06YHB5dGhvbmAgb3IgOnByb2dyYW06YHB5dGhvbndgLgogCiAKIENvbmZpZ3VyYXRpb24KQEAgLTE1OCw3ICsxNTgsNyBAQAogRGlzdHJpYnV0aW5nIFB5dGhvbiBBcHBsaWNhdGlvbnMgb24gdGhlIE1hYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi1UaGUgIkJ1aWxkIEFwcGxldCIgdG9vbCB0aGF0IGlzIHBsYWNlZCBpbiB0aGUgTWFjUHl0aG9uIDMuMyBmb2xkZXIgaXMgZmluZSBmb3IKK1RoZSAiQnVpbGQgQXBwbGV0IiB0b29sIHRoYXQgaXMgcGxhY2VkIGluIHRoZSBNYWNQeXRob24gMy40IGZvbGRlciBpcyBmaW5lIGZvcgogcGFja2FnaW5nIHNtYWxsIFB5dGhvbiBzY3JpcHRzIG9uIHlvdXIgb3duIG1hY2hpbmUgdG8gcnVuIGFzIGEgc3RhbmRhcmQgTWFjCiBhcHBsaWNhdGlvbi4gVGhpcyB0b29sLCBob3dldmVyLCBpcyBub3Qgcm9idXN0IGVub3VnaCB0byBkaXN0cmlidXRlIFB5dGhvbgogYXBwbGljYXRpb25zIHRvIG90aGVyIHVzZXJzLgpkaWZmIC0tZ2l0IGEvRG9jL3VzaW5nL3ZlbnYtY3JlYXRlLmluYyBiL0RvYy91c2luZy92ZW52LWNyZWF0ZS5pbmMKaW5kZXggNWZkYmM5Yi4uNzA2YWM1ZCAxMDA2NDQKLS0tIGEvRG9jL3VzaW5nL3ZlbnYtY3JlYXRlLmluYworKysgYi9Eb2MvdXNpbmcvdmVudi1jcmVhdGUuaW5jCkBAIC01NiwyMCArNTYsMjEgQEAKIHByb3ZpZGVkIHBhdGguCiAKIE9uY2UgYSB2ZW52IGhhcyBiZWVuIGNyZWF0ZWQsIGl0IGNhbiBiZSAiYWN0aXZhdGVkIiB1c2luZyBhIHNjcmlwdCBpbiB0aGUKLXZlbnYncyBiaW5hcnkgZGlyZWN0b3J5LiBUaGUgaW52b2NhdGlvbiBvZiB0aGUgc2NyaXB0IGlzIHBsYXRmb3JtLXNwZWNpZmljOiBvbgotYSBQb3NpeCBwbGF0Zm9ybSwgeW91IHdvdWxkIHR5cGljYWxseSBkbzo6Cit2ZW52J3MgYmluYXJ5IGRpcmVjdG9yeS4gVGhlIGludm9jYXRpb24gb2YgdGhlIHNjcmlwdCBpcyBwbGF0Zm9ybS1zcGVjaWZpYzoKIAotICAgICQgc291cmNlIDx2ZW52Pi9iaW4vYWN0aXZhdGUKLQotd2hlcmVhcyBvbiBXaW5kb3dzLCB5b3UgbWlnaHQgZG86OgotCi0gICAgQzpcPiA8dmVudj4vU2NyaXB0cy9hY3RpdmF0ZQotCi1pZiB5b3UgYXJlIHVzaW5nIHRoZSBgYGNtZC5leGVgYCBzaGVsbCwgb3IgcGVyaGFwczo6Ci0KLSAgICBQUyBDOlw+IDx2ZW52Pi9TY3JpcHRzL0FjdGl2YXRlLnBzMQotCi1pZiB5b3UgdXNlIFBvd2VyU2hlbGwuCisrLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgUGxhdGZvcm0gICAgfCBTaGVsbCAgICAgICAgICAgfCBDb21tYW5kIHRvIGFjdGl2YXRlIHZpcnR1YWwgZW52aXJvbm1lbnQgfAorKz09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCit8IFBvc2l4ICAgICAgIHwgYmFzaC96c2ggICAgICAgIHwgJCBzb3VyY2UgPHZlbnY+L2Jpbi9hY3RpdmF0ZSAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCAgICAgICAgICAgICB8IGZpc2ggICAgICAgICAgICB8ICQgLiA8dmVudj4vYmluL2FjdGl2YXRlLmZpc2ggICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgICAgICAgICAgICAgfCBjc2gvdGNzaCAgICAgICAgfCAkIHNvdXJjZSA8dmVudj4vYmluL2FjdGl2YXRlLmNzaCAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IFdpbmRvd3MgICAgIHwgY21kLmV4ZSAgICAgICAgIHwgQzpcPiA8dmVudj4vU2NyaXB0cy9hY3RpdmF0ZS5iYXQgICAgICAgIHwKKystLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCAgICAgICAgICAgICB8IFBvd2VyU2hlbGwgICAgICB8IFBTIEM6XD4gPHZlbnY+L1NjcmlwdHMvQWN0aXZhdGUucHMxICAgICB8CisrLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAogWW91IGRvbid0IHNwZWNpZmljYWxseSAqbmVlZCogdG8gYWN0aXZhdGUgYW4gZW52aXJvbm1lbnQ7IGFjdGl2YXRpb24ganVzdAogcHJlcGVuZHMgdGhlIHZlbnYncyBiaW5hcnkgZGlyZWN0b3J5IHRvIHlvdXIgcGF0aCwgc28gdGhhdCAicHl0aG9uIiBpbnZva2VzIHRoZQpkaWZmIC0tZ2l0IGEvRG9jL3doYXRzbmV3LzMuNC5yc3QgYi9Eb2Mvd2hhdHNuZXcvMy40LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjhiYTFmCi0tLSAvZGV2L251bGwKKysrIGIvRG9jL3doYXRzbmV3LzMuNC5yc3QKQEAgLTAsMCArMSwyNjggQEAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgV2hhdCdzIE5ldyBJbiBQeXRob24gMy40CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKy4uIDpBdXRob3I6IFNvbWVvbmUgPGVtYWlsPgorICAgKHVuY29tbWVudCBpZiB0aGVyZSBpcyBhIHByaW5jaXBhbCBhdXRob3IpCisKKy4uIFJ1bGVzIGZvciBtYWludGVuYW5jZToKKworICAgKiBBbnlvbmUgY2FuIGFkZCB0ZXh0IHRvIHRoaXMgZG9jdW1lbnQsIGJ1dCB0aGUgbWFpbnRhaW5lciByZXNlcnZlcyB0aGUKKyAgIHJpZ2h0IHRvIHJld3JpdGUgYW55IGFkZGl0aW9ucy4gSW4gcGFydGljdWxhciwgZm9yIG9ic2N1cmUgb3IgZXNvdGVyaWMKKyAgIGZlYXR1cmVzLCB0aGUgbWFpbnRhaW5lciBtYXkgcmVkdWNlIGFueSBhZGRpdGlvbiB0byBhIHNpbXBsZSByZWZlcmVuY2UgdG8KKyAgIHRoZSBuZXcgZG9jdW1lbnRhdGlvbiByYXRoZXIgdGhhbiBleHBsYWluaW5nIHRoZSBmZWF0dXJlIGlubGluZS4KKworICAgKiBXaGlsZSB0aGUgbWFpbnRhaW5lciB3aWxsIHBlcmlvZGljYWxseSBnbyB0aHJvdWdoIE1pc2MvTkVXUworICAgYW5kIGFkZCBjaGFuZ2VzLCBpdCdzIGJlc3Qgbm90IHRvIHJlbHkgb24gdGhpcy4gV2Uga25vdyBmcm9tIGV4cGVyaWVuY2UKKyAgIHRoYXQgYW55IGNoYW5nZXMgdGhhdCBhcmVuJ3QgaW4gdGhlIFdoYXQncyBOZXcgZG9jdW1lbnRhdGlvbiBhcm91bmQgdGhlCisgICB0aW1lIG9mIHRoZSBvcmlnaW5hbCByZWxlYXNlIHdpbGwgcmVtYWluIGxhcmdlbHkgdW5rbm93biB0byB0aGUgY29tbXVuaXR5CisgICBmb3IgeWVhcnMsIGV2ZW4gaWYgdGhleSdyZSBhZGRlZCBsYXRlci4gV2UgYWxzbyBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0CisgICBvdGhlciBwcmlvcml0aWVzIGNhbiBhcmlzZSwgYW5kIHRoZSBtYWludGFpbmVyIHdpbGwgcnVuIG91dCBvZiB0aW1lIHRvIGRvCisgICB1cGRhdGVzIC0gaW4gc3VjaCBjYXNlcywgZW5kIHVzZXJzIHdpbGwgYmUgbXVjaCBiZXR0ZXIgc2VydmVkIGJ5IHBhcnRpYWwKKyAgIG5vdGlmaWNhdGlvbnMgdGhhdCBhdCBsZWFzdCBnaXZlIGEgaGludCBhYm91dCBuZXcgZmVhdHVyZXMgdG8KKyAgIGludmVzdGlnYXRlLgorCisgICAqIFRoaXMgaXMgbm90IGEgY29tcGxldGUgbGlzdCBvZiBldmVyeSBzaW5nbGUgY2hhbmdlOyBjb21wbGV0ZW5lc3MKKyAgIGlzIHRoZSBwdXJwb3NlIG9mIE1pc2MvTkVXUy4gVGhlIFdoYXQncyBOZXcgc2hvdWxkIGZvY3VzIG9uIGNoYW5nZXMgdGhhdAorICAgYXJlIHZpc2libGUgdG8gUHl0aG9uICp1c2VycyogYW5kIHRoYXQgKnJlcXVpcmUqIGEgZmVhdHVyZSByZWxlYXNlIChpLmUuCisgICBtb3N0IGJ1ZyBmaXhlcyBzaG91bGQgb25seSBiZSByZWNvcmRlZCBpbiBNaXNjL05FV1MpCisKKyAgICogUEVQcyBzaG91bGQgbm90IGJlIG1hcmtlZCBGaW5hbCB1bnRpbCB0aGV5IGhhdmUgYW4gZW50cnkgaW4gV2hhdCdzIE5ldy4KKyAgIEEgcGxhY2Vob2xkZXIgZW50cnkgdGhhdCBpcyBqdXN0IGEgc2VjdGlvbiBoZWFkZXIgYW5kIGEgbGluayB0byB0aGUgUEVQCisgICAoZS5nICI6cGVwOmAzOTdgIGhhcyBiZWVuIGltcGxlbWVudGVkIikgaXMgYWNjZXB0YWJsZS4gSWYgYSBQRVAgaGFzIGJlZW4KKyAgIGltcGxlbWVudGVkIGFuZCBub3RlZCBpbiBXaGF0J3MgTmV3LCBkb24ndCBmb3JnZXQgdG8gbWFyayBpdCBhcyBGaW5hbCEKKworICAgKiBJZiB5b3Ugd2FudCB0byBkcmF3IHlvdXIgbmV3IHRleHQgdG8gdGhlIGF0dGVudGlvbiBvZiB0aGUKKyAgIG1haW50YWluZXIsIGFkZCAnWFhYJyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwYXJhZ3JhcGggb3IKKyAgIHNlY3Rpb24uCisKKyAgICogSXQncyBPSyB0byBhZGQganVzdCBhIHZlcnkgYnJpZWYgbm90ZSBhYm91dCBhIGNoYW5nZS4gIEZvcgorICAgZXhhbXBsZTogIlRoZSA6cmVmOmB+c29ja2V0LnRyYW5zbW9ncmlmeSgpYCBmdW5jdGlvbiB3YXMgYWRkZWQgdG8gdGhlCisgICA6bW9kOmBzb2NrZXRgIG1vZHVsZS4iICBUaGUgbWFpbnRhaW5lciB3aWxsIHJlc2VhcmNoIHRoZSBjaGFuZ2UgYW5kCisgICB3cml0ZSB0aGUgbmVjZXNzYXJ5IHRleHQgKGlmIGFwcHJvcHJpYXRlKS4gVGhlIGFkdmFudGFnZSBvZiBkb2luZyB0aGlzCisgICBpcyB0aGF0IGV2ZW4gaWYgbm8gbW9yZSBkZXNjcmlwdGl2ZSB0ZXh0IGlzIGV2ZXIgYWRkZWQsIHJlYWRlcnMgd2lsbCBhdAorICAgbGVhc3QgaGF2ZSBhIG5vdGlmaWNhdGlvbiB0aGF0IHRoZSBuZXcgZmVhdHVyZSBleGlzdHMgYW5kIGEgbGluayB0byB0aGUKKyAgIHJlbGV2YW50IGRvY3VtZW50YXRpb24uCisKKyAgICogWW91IGNhbiBjb21tZW50IG91dCB5b3VyIGFkZGl0aW9ucyBpZiB5b3UgbGlrZSwgYnV0IGl0J3Mgbm90CisgICBuZWNlc3NhcnkgKGVzcGVjaWFsbHkgd2hlbiBhIGZpbmFsIHJlbGVhc2UgaXMgc29tZSBtb250aHMgYXdheSkuCisKKyAgICogQ3JlZGl0IHRoZSBhdXRob3Igb2YgYSBwYXRjaCBvciBidWdmaXguICAgSnVzdCB0aGUgbmFtZSBpcworICAgc3VmZmljaWVudDsgdGhlIGUtbWFpbCBhZGRyZXNzIGlzbid0IG5lY2Vzc2FyeS4KKworICAgKiBJdCdzIGhlbHBmdWwgdG8gYWRkIHRoZSBidWcvcGF0Y2ggbnVtYmVyIGFzIGEgY29tbWVudDoKKworICAgVGhlIDpyZWY6YH5zb2NrZXQudHJhbnNtb2dyaWZ5KClgIGZ1bmN0aW9uIHdhcyBhZGRlZCB0byB0aGUKKyAgIDptb2Q6YHNvY2tldGAgbW9kdWxlLiAoQ29udHJpYnV0ZWQgYnkgUC5ZLiBEZXZlbG9wZXIgaW4gOmlzc3VlOmAxMjM0NWAuKQorCisgICBUaGlzIHNhdmVzIHRoZSBtYWludGFpbmVyIHRoZSBlZmZvcnQgb2YgZ29pbmcgdGhyb3VnaCB0aGUgTWVyY3VyaWFsIGxvZworICAgd2hlbiByZXNlYXJjaGluZyBhIGNoYW5nZS4KKworICAgKiBDcm9zcyByZWZlcmVuY2luZyB0aXA6IDpyZWY6YG1vZC5hdHRyYCB3aWxsIGRpc3BsYXkgYXMgYGBtb2QuYXR0cmBgLAorICAgd2hpbGUgOnJlZjpgfm1vZC5hdHRyYCB3aWxsIGRpc3BsYXkgYXMgYGBhdHRyYGAuCisKK1RoaXMgYXJ0aWNsZSBleHBsYWlucyB0aGUgbmV3IGZlYXR1cmVzIGluIFB5dGhvbiAzLjQsIGNvbXBhcmVkIHRvIDMuMy4KKworLi4gUHl0aG9uIDMuNCB3YXMgcmVsZWFzZWQgb24gVEJELgorCitGb3IgZnVsbCBkZXRhaWxzLCBzZWUgdGhlCitgY2hhbmdlbG9nIDxodHRwOi8vZG9jcy5weXRob24ub3JnLzMuNC93aGF0c25ldy9jaGFuZ2Vsb2cuaHRtbD5gXy4KKworLi4gbm90ZTo6IFByZXJlbGVhc2UgdXNlcnMgc2hvdWxkIGJlIGF3YXJlIHRoYXQgdGhpcyBkb2N1bWVudCBpcyBjdXJyZW50bHkgaW4KKyAgIGRyYWZ0IGZvcm0uIEl0IHdpbGwgYmUgdXBkYXRlZCBzdWJzdGFudGlhbGx5IGFzIFB5dGhvbiAzLjQgbW92ZXMgdG93YXJkcworICAgcmVsZWFzZSwgc28gaXQncyB3b3J0aCBjaGVja2luZyBiYWNrIGV2ZW4gYWZ0ZXIgcmVhZGluZyBlYXJsaWVyIHZlcnNpb25zLgorCisKKy4uIHNlZWFsc286OgorCisgICAuLiA6cGVwOmA0WFhgIC0gUHl0aG9uIDMuNCBSZWxlYXNlIFNjaGVkdWxlCisKKworU3VtbWFyeSAtLSBSZWxlYXNlIGhpZ2hsaWdodHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIFRoaXMgc2VjdGlvbiBzaW5nbGVzIG91dCB0aGUgbW9zdCBpbXBvcnRhbnQgY2hhbmdlcyBpbiBQeXRob24gMy40LgorICAgQnJldml0eSBpcyBrZXkuCisKK05ldyBzeW50YXggZmVhdHVyZXM6CisKKyogTm9uZSB5ZXQuCisKK05ldyBsaWJyYXJ5IG1vZHVsZXM6CisKKyogTm9uZSB5ZXQuCisKK05ldyBidWlsdC1pbiBmZWF0dXJlczoKKworKiBOb25lIHlldC4KKworSW1wbGVtZW50YXRpb24gaW1wcm92ZW1lbnRzOgorCisqIEEgbW9yZSBlZmZpY2llbnQgOm1vZDpgbWFyc2hhbGAgZm9ybWF0IDxodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMTY0NzU+LgorCitTaWduaWZpY2FudGx5IEltcHJvdmVkIExpYnJhcnkgTW9kdWxlczoKKworKiBTSEEtMyAoS2VjY2FrKSBzdXBwb3J0IGZvciA6bW9kOmBoYXNobGliYC4KKyogVExTdjEuMSBhbmQgVExTdjEuMiBzdXBwb3J0IGZvciA6bW9kOmBzc2xgLgorCitTZWN1cml0eSBpbXByb3ZlbWVudHM6CisKKyogTm9uZSB5ZXQuCisKK1BsZWFzZSByZWFkIG9uIGZvciBhIGNvbXByZWhlbnNpdmUgbGlzdCBvZiB1c2VyLWZhY2luZyBjaGFuZ2VzLgorCisKKy4uIFBFUC1zaXplZCBpdGVtcyBuZXh0LgorCisuLiBfcGVwLTRYWDoKKworLi4gUEVQIDRYWDogRXhhbXBsZSBQRVAKKy4uID09PT09PT09PT09PT09PT09PT09CisKKworLi4gKEltcGxlbWVudGVkIGJ5IEZvbyBCYXIuKQorCisuLiAuLiBzZWVhbHNvOjoKKworICAgOnBlcDpgNFhYYCAtIEV4YW1wbGUgUEVQCisgICAgICBQRVAgd3JpdHRlbiBieSBFeGFtcGxlIEF1dGhvcgorCisKKworCitPdGhlciBMYW5ndWFnZSBDaGFuZ2VzCis9PT09PT09PT09PT09PT09PT09PT09CisKK1NvbWUgc21hbGxlciBjaGFuZ2VzIG1hZGUgdG8gdGhlIGNvcmUgUHl0aG9uIGxhbmd1YWdlIGFyZToKKworKiBVbmljb2RlIGRhdGFiYXNlIHVwZGF0ZWQgdG8gVUNEIHZlcnNpb24gNi4yLgorCisKKworTmV3IE1vZHVsZXMKKz09PT09PT09PT09CisKKy4uIG1vZHVsZSBuYW1lCisuLiAtLS0tLS0tLS0tLQorCisqIE5vbmUgeWV0LgorCisKK0ltcHJvdmVkIE1vZHVsZXMKKz09PT09PT09PT09PT09PT0KKworCitkaXMKKy0tLQorCitUaGUgOm1vZDpgZGlzYCBtb2R1bGUgaXMgbm93IGJ1aWx0IGFyb3VuZCBhbiA6Y2xhc3M6YEluc3RydWN0aW9uYCBjbGFzcyB0aGF0Citwcm92aWRlcyBkZXRhaWxzIG9mIGluZGl2aWR1YWwgYnl0ZWNvZGUgb3BlcmF0aW9ucyBhbmQgYQorOmZ1bmM6YGdldF9pbnN0cnVjdGlvbnNgIGl0ZXJhdG9yIHRoYXQgZW1pdHMgdGhlIEluc3RydWN0aW9uIHN0cmVhbSBmb3IgYQorZ2l2ZW4gcGllY2Ugb2YgUHl0aG9uIGNvZGUuIFRoZSB2YXJpb3VzIGRpc3BsYXkgdG9vbHMgaW4gdGhlIDptb2Q6YGRpc2AKK21vZHVsZSBoYXZlIGJlZW4gdXBkYXRlZCB0byBiZSBiYXNlZCBvbiB0aGVzZSBuZXcgY29tcG9uZW50cy4KKworVGhlIG5ldyA6Y2xhc3M6YGRpcy5CeXRlY29kZWAgY2xhc3MgcHJvdmlkZXMgYW4gb2JqZWN0LW9yaWVudGVkIEFQSSBmb3IKK2luc3BlY3RpbmcgYnl0ZWNvZGUsIGJvdGggaW4gaHVtYW4tcmVhZGFibGUgZm9ybSBhbmQgZm9yIGl0ZXJhdGluZyBvdmVyCitpbnN0cnVjdGlvbnMuCisKKyhDb250cmlidXRlZCBieSBOaWNrIENvZ2hsYW4sIFJ5YW4gS2VsbHkgYW5kIFRob21hcyBLbHV5dmVyIGluIDppc3N1ZTpgMTE4MTZgKQorCitkb2N0ZXN0CistLS0tLS0tCisKK0FkZGVkIGBgRkFJTF9GQVNUYGAgZmxhZyB0byBoYWx0IHRlc3QgcnVubmluZyBhcyBzb29uIGFzIHRoZSBmaXJzdCBmYWlsdXJlIGlzCitkZXRlY3RlZC4gIChDb250cmlidXRlZCBieSBSLiBEYXZpZCBNdXJyYXkgYW5kIERhbmllbCBVcmJhbiBpbiA6aXNzdWU6YDE2NTIyYC4pCisKKworc210cGxpYgorLS0tLS0tLQorCis6ZXhjOmB+c210cGxpYi5TTVRQRXhjZXB0aW9uYCBpcyBub3cgYSBzdWJjbGFzcyBvZiA6ZXhjOmBPU0Vycm9yYCwgd2hpY2ggYWxsb3dzCitib3RoIHNvY2tldCBsZXZlbCBlcnJvcnMgYW5kIFNNVFAgcHJvdG9jb2wgbGV2ZWwgZXJyb3JzIHRvIGJlIGNhdWdodCBpbiBvbmUKK3RyeS9leGNlcHQgc3RhdGVtZW50IGJ5IGNvZGUgdGhhdCBvbmx5IGNhcmVzIHdoZXRoZXIgb3Igbm90IGFuIGVycm9yIG9jY3VycmVkLgorKDppc3N1ZTpgMjExOGApLgorCisKK3dhdmUKKy0tLS0KKworVGhlIDptZXRoOmB+d2F2ZS5nZXRwYXJhbXNgIG1ldGhvZCBub3cgcmV0dXJucyBhIG5hbWVkdHVwbGUgcmF0aGVyIHRoYW4gYQorcGxhaW4gdHVwbGUuICAoQ29udHJpYnV0ZWQgYnkgQ2xhdWRpdSBQb3BhIGluIDppc3N1ZTpgMTc0ODdgLikKKworCitPcHRpbWl6YXRpb25zCis9PT09PT09PT09PT09CisKK01ham9yIHBlcmZvcm1hbmNlIGVuaGFuY2VtZW50cyBoYXZlIGJlZW4gYWRkZWQ6CisKKyogVGhlIFVURi0zMiBkZWNvZGVyIGlzIG5vdyAzeCB0byA0eCBmYXN0ZXIuCisKKworQnVpbGQgYW5kIEMgQVBJIENoYW5nZXMKKz09PT09PT09PT09PT09PT09PT09PT09CisKK0NoYW5nZXMgdG8gUHl0aG9uJ3MgYnVpbGQgcHJvY2VzcyBhbmQgdG8gdGhlIEMgQVBJIGluY2x1ZGU6CisKKyogTm9uZSB5ZXQuCisKKworRGVwcmVjYXRlZAorPT09PT09PT09PQorCitVbnN1cHBvcnRlZCBPcGVyYXRpbmcgU3lzdGVtcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworKiBOb25lIHlldC4KKworCitEZXByZWNhdGVkIFB5dGhvbiBtb2R1bGVzLCBmdW5jdGlvbnMgYW5kIG1ldGhvZHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisqIDptZXRoOmBkaWZmbGliLlNlcXVlbmNlTWF0Y2hlci5pc2JqdW5rYCBhbmQKKyAgOm1ldGg6YGRpZmZsaWIuU2VxdWVuY2VNYXRjaGVyLmlzYnBvcHVsdXJgOiB1c2UgYGB4IGluIHNtLmJqdW5rYGAgYW5kCisgIGBgeCBpbiBzbS5icG9wdWxhcmBgLCB3aGVyZSBzbSBpcyBhIDpjbGFzczpgfmRpZmZsaWIuU2VxdWVuY2VNYXRjaGVyYCBvYmplY3QuCisKKworRGVwcmVjYXRlZCBmdW5jdGlvbnMgYW5kIHR5cGVzIG9mIHRoZSBDIEFQSQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisqIE5vbmUgeWV0LgorCisKK0RlcHJlY2F0ZWQgZmVhdHVyZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworKiA6ZnVuYzpgaW1wb3J0bGliLnV0aWwubW9kdWxlX2Zvcl9sb2FkZXJgIGlzIHBlbmRpbmcgZGVwcmVjYXRpb24uIFVzaW5nCisgIDpmdW5jOmBpbXBvcnRsaWIudXRpbC5tb2R1bGVfdG9fbG9hZGAgYW5kCisgIDptZXRoOmBpbXBvcnRsaWIuYWJjLkxvYWRlci5pbml0X21vZHVsZV9hdHRyc2AgYWxsb3dzIHN1YmNsYXNzZXMgb2YgYSBsb2FkZXIKKyAgdG8gbW9yZSBlYXNpbHkgY3VzdG9taXplIG1vZHVsZSBsb2FkaW5nLgorCisKK1BvcnRpbmcgdG8gUHl0aG9uIDMuNAorPT09PT09PT09PT09PT09PT09PT09CisKK1RoaXMgc2VjdGlvbiBsaXN0cyBwcmV2aW91c2x5IGRlc2NyaWJlZCBjaGFuZ2VzIGFuZCBvdGhlciBidWdmaXhlcwordGhhdCBtYXkgcmVxdWlyZSBjaGFuZ2VzIHRvIHlvdXIgY29kZS4KKworKiBUaGUgQUJDcyBkZWZpbmVkIGluIDptb2Q6YGltcG9ydGxpYi5hYmNgIG5vdyBlaXRoZXIgcmFpc2UgdGhlIGFwcHJvcHJpYXRlCisgIGV4Y2VwdGlvbiBvciByZXR1cm4gYSBkZWZhdWx0IHZhbHVlIGluc3RlYWQgb2YgcmFpc2luZworICA6ZXhjOmBOb3RJbXBsZW1lbnRlZEVycm9yYCBibGluZGx5LiBUaGlzIHdpbGwgb25seSBhZmZlY3QgY29kZSBjYWxsaW5nCisgIDpmdW5jOmBzdXBlcmAgYW5kIGZhbGxpbmcgdGhyb3VnaCBhbGwgdGhlIHdheSB0byB0aGUgQUJDcy4gRm9yIGNvbXBhdGliaWxpdHksCisgIGNhdGNoIGJvdGggOmV4YzpgTm90SW1wbGVtZW50ZWRFcnJvcmAgb3IgdGhlIGFwcHJvcHJpYXRlIGV4Y2VwdGlvbiBhcyBuZWVkZWQuCisKKyogVGhlIG1vZHVsZSB0eXBlIG5vdyBpbml0aWFsaXplcyB0aGUgOmF0dHI6YF9fcGFja2FnZV9fYCBhbmQgOmF0dHI6YF9fbG9hZGVyX19gCisgIGF0dHJpYnV0ZXMgdG8gYGBOb25lYGAgYnkgZGVmYXVsdC4gVG8gZGV0ZXJtaW5lIGlmIHRoZXNlIGF0dHJpYnV0ZXMgd2VyZSBzZXQKKyAgaW4gYSBiYWNrd2FyZHMtY29tcGF0aWJsZSBmYXNoaW9uLCB1c2UgZS5nLgorICBgYGdldGF0dHIobW9kdWxlLCAnX19sb2FkZXJfXycsIE5vbmUpIGlzIG5vdCBOb25lYGAuCisKKyogOm1ldGg6YGltcG9ydGxpYi51dGlsLm1vZHVsZV9mb3JfbG9hZGVyYCBub3cgc2V0cyBgYF9fbG9hZGVyX19gYCBhbmQKKyAgYGBfX3BhY2thZ2VfX2BgIHVuY29uZGl0aW9uYWxseSB0byBwcm9wZXJseSBzdXBwb3J0IHJlbG9hZGluZy4gSWYgdGhpcyBpcyBub3QKKyAgZGVzaXJlZCB0aGVuIHlvdSB3aWxsIG5lZWQgdG8gc2V0IHRoZXNlIGF0dHJpYnV0ZXMgbWFudWFsbHkuIFlvdSBjYW4gdXNlCisgIDpmdW5jOmBpbXBvcnRsaWIudXRpbC5tb2R1bGVfdG9fbG9hZGAgZm9yIG1vZHVsZSBtYW5hZ2VtZW50LgorCisqIEltcG9ydCBub3cgcmVzZXRzIHJlbGV2YW50IGF0dHJpYnV0ZXMgKGUuZy4gYGBfX25hbWVfX2BgLCBgYF9fbG9hZGVyX19gYCwKKyAgYGBfX3BhY2thZ2VfX2BgLCBgYF9fZmlsZV9fYGAsIGBgX19jYWNoZWRfX2BgKSB1bmNvbmRpdGlvbmFsbHkgd2hlbiByZWxvYWRpbmcuCisKKyogRnJvemVuIHBhY2thZ2VzIG5vIGxvbmdlciBzZXQgYGBfX3BhdGhfX2BgIHRvIGEgbGlzdCBjb250YWluZyB0aGUgcGFja2FnZSBuYW1lCisgIGJ1dCBhbiBlbXB0eSBsaXN0IGluc3RlYWQuIERldGVybWluZyBpZiBhIG1vZHVsZSBpcyBhIHBhY2thZ2Ugc2hvdWxkIGJlIGRvbmUKKyAgdXNpbmcgYGBoYXNhdHRyKG1vZHVsZSwgJ19fcGF0aF9fJylgYC4KZGlmZiAtLWdpdCBhL0RvYy93aGF0c25ldy9pbmRleC5yc3QgYi9Eb2Mvd2hhdHNuZXcvaW5kZXgucnN0CmluZGV4IGJjMTIwNmIuLjI5OTAyZTQgMTAwNjQ0Ci0tLSBhL0RvYy93aGF0c25ldy9pbmRleC5yc3QKKysrIGIvRG9jL3doYXRzbmV3L2luZGV4LnJzdApAQCAtMTEsNiArMTEsNyBAQAogLi4gdG9jdHJlZTo6CiAgICA6bWF4ZGVwdGg6IDIKIAorICAgMy40LnJzdAogICAgMy4zLnJzdAogICAgMy4yLnJzdAogICAgMy4xLnJzdApkaWZmIC0tZ2l0IGEvSW5jbHVkZS9QeXRob24tYXN0LmggYi9JbmNsdWRlL1B5dGhvbi1hc3QuaAppbmRleCA3YWQ2Y2IzLi40OWVkY2RjIDEwMDY0NAotLS0gYS9JbmNsdWRlL1B5dGhvbi1hc3QuaAorKysgYi9JbmNsdWRlL1B5dGhvbi1hc3QuaApAQCAtMTgyLDggKzE4Miw5IEBACiAgICAgICAgICAgICAgICAgICBTZXRDb21wX2tpbmQ9OSwgRGljdENvbXBfa2luZD0xMCwgR2VuZXJhdG9yRXhwX2tpbmQ9MTEsCiAgICAgICAgICAgICAgICAgICBZaWVsZF9raW5kPTEyLCBZaWVsZEZyb21fa2luZD0xMywgQ29tcGFyZV9raW5kPTE0LAogICAgICAgICAgICAgICAgICAgQ2FsbF9raW5kPTE1LCBOdW1fa2luZD0xNiwgU3RyX2tpbmQ9MTcsIEJ5dGVzX2tpbmQ9MTgsCi0gICAgICAgICAgICAgICAgICBFbGxpcHNpc19raW5kPTE5LCBBdHRyaWJ1dGVfa2luZD0yMCwgU3Vic2NyaXB0X2tpbmQ9MjEsCi0gICAgICAgICAgICAgICAgICBTdGFycmVkX2tpbmQ9MjIsIE5hbWVfa2luZD0yMywgTGlzdF9raW5kPTI0LCBUdXBsZV9raW5kPTI1fTsKKyAgICAgICAgICAgICAgICAgIE5hbWVDb25zdGFudF9raW5kPTE5LCBFbGxpcHNpc19raW5kPTIwLCBBdHRyaWJ1dGVfa2luZD0yMSwKKyAgICAgICAgICAgICAgICAgIFN1YnNjcmlwdF9raW5kPTIyLCBTdGFycmVkX2tpbmQ9MjMsIE5hbWVfa2luZD0yNCwKKyAgICAgICAgICAgICAgICAgIExpc3Rfa2luZD0yNSwgVHVwbGVfa2luZD0yNn07CiBzdHJ1Y3QgX2V4cHIgewogICAgICAgICBlbnVtIF9leHByX2tpbmQga2luZDsKICAgICAgICAgdW5pb24gewpAQCAtMjc5LDYgKzI4MCwxMCBAQAogICAgICAgICAgICAgICAgIH0gQnl0ZXM7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpbmdsZXRvbiB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9IE5hbWVDb25zdGFudDsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICAgZXhwcl90eSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXIgYXR0cjsKICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJfY29udGV4dF90eSBjdHg7CkBAIC0zNTksMTggKzM2NCwxOCBAQAogCiBzdHJ1Y3QgX2FyZ3VtZW50cyB7CiAgICAgICAgIGFzZGxfc2VxICphcmdzOwotICAgICAgICBpZGVudGlmaWVyIHZhcmFyZzsKLSAgICAgICAgZXhwcl90eSB2YXJhcmdhbm5vdGF0aW9uOworICAgICAgICBhcmdfdHkgdmFyYXJnOwogICAgICAgICBhc2RsX3NlcSAqa3dvbmx5YXJnczsKLSAgICAgICAgaWRlbnRpZmllciBrd2FyZzsKLSAgICAgICAgZXhwcl90eSBrd2FyZ2Fubm90YXRpb247Ci0gICAgICAgIGFzZGxfc2VxICpkZWZhdWx0czsKICAgICAgICAgYXNkbF9zZXEgKmt3X2RlZmF1bHRzOworICAgICAgICBhcmdfdHkga3dhcmc7CisgICAgICAgIGFzZGxfc2VxICpkZWZhdWx0czsKIH07CiAKIHN0cnVjdCBfYXJnIHsKICAgICAgICAgaWRlbnRpZmllciBhcmc7CiAgICAgICAgIGV4cHJfdHkgYW5ub3RhdGlvbjsKKyAgICAgICAgaW50IGxpbmVubzsKKyAgICAgICAgaW50IGNvbF9vZmZzZXQ7CiB9OwogCiBzdHJ1Y3QgX2tleXdvcmQgewpAQCAtNTA5LDYgKzUxNCw5IEBACiBleHByX3R5IF9QeV9TdHIoc3RyaW5nIHMsIGludCBsaW5lbm8sIGludCBjb2xfb2Zmc2V0LCBQeUFyZW5hICphcmVuYSk7CiAjZGVmaW5lIEJ5dGVzKGEwLCBhMSwgYTIsIGEzKSBfUHlfQnl0ZXMoYTAsIGExLCBhMiwgYTMpCiBleHByX3R5IF9QeV9CeXRlcyhieXRlcyBzLCBpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCwgUHlBcmVuYSAqYXJlbmEpOworI2RlZmluZSBOYW1lQ29uc3RhbnQoYTAsIGExLCBhMiwgYTMpIF9QeV9OYW1lQ29uc3RhbnQoYTAsIGExLCBhMiwgYTMpCitleHByX3R5IF9QeV9OYW1lQ29uc3RhbnQoc2luZ2xldG9uIHZhbHVlLCBpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCwgUHlBcmVuYQorICAgICAgICAgICAgICAgICAgICAgICAgICphcmVuYSk7CiAjZGVmaW5lIEVsbGlwc2lzKGEwLCBhMSwgYTIpIF9QeV9FbGxpcHNpcyhhMCwgYTEsIGEyKQogZXhwcl90eSBfUHlfRWxsaXBzaXMoaW50IGxpbmVubywgaW50IGNvbF9vZmZzZXQsIFB5QXJlbmEgKmFyZW5hKTsKICNkZWZpbmUgQXR0cmlidXRlKGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUpIF9QeV9BdHRyaWJ1dGUoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSkKQEAgLTU0MiwxMSArNTUwLDEwIEBACiBleGNlcHRoYW5kbGVyX3R5IF9QeV9FeGNlcHRIYW5kbGVyKGV4cHJfdHkgdHlwZSwgaWRlbnRpZmllciBuYW1lLCBhc2RsX3NlcSAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHksIGludCBsaW5lbm8sIGludCBjb2xfb2Zmc2V0LCBQeUFyZW5hCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICphcmVuYSk7Ci0jZGVmaW5lIGFyZ3VtZW50cyhhMCwgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4KSBfUHlfYXJndW1lbnRzKGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2LCBhNywgYTgpCi1hcmd1bWVudHNfdHkgX1B5X2FyZ3VtZW50cyhhc2RsX3NlcSAqIGFyZ3MsIGlkZW50aWZpZXIgdmFyYXJnLCBleHByX3R5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJhcmdhbm5vdGF0aW9uLCBhc2RsX3NlcSAqIGt3b25seWFyZ3MsIGlkZW50aWZpZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnLCBleHByX3R5IGt3YXJnYW5ub3RhdGlvbiwgYXNkbF9zZXEgKiBkZWZhdWx0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzZGxfc2VxICoga3dfZGVmYXVsdHMsIFB5QXJlbmEgKmFyZW5hKTsKKyNkZWZpbmUgYXJndW1lbnRzKGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSBfUHlfYXJndW1lbnRzKGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KQorYXJndW1lbnRzX3R5IF9QeV9hcmd1bWVudHMoYXNkbF9zZXEgKiBhcmdzLCBhcmdfdHkgdmFyYXJnLCBhc2RsX3NlcSAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICBrd29ubHlhcmdzLCBhc2RsX3NlcSAqIGt3X2RlZmF1bHRzLCBhcmdfdHkga3dhcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBhc2RsX3NlcSAqIGRlZmF1bHRzLCBQeUFyZW5hICphcmVuYSk7CiAjZGVmaW5lIGFyZyhhMCwgYTEsIGEyKSBfUHlfYXJnKGEwLCBhMSwgYTIpCiBhcmdfdHkgX1B5X2FyZyhpZGVudGlmaWVyIGFyZywgZXhwcl90eSBhbm5vdGF0aW9uLCBQeUFyZW5hICphcmVuYSk7CiAjZGVmaW5lIGtleXdvcmQoYTAsIGExLCBhMikgX1B5X2tleXdvcmQoYTAsIGExLCBhMikKZGlmZiAtLWdpdCBhL0luY2x1ZGUvYWJzdHJhY3QuaCBiL0luY2x1ZGUvYWJzdHJhY3QuaAppbmRleCA0NGI1YWY3Li42NTE2YmZlIDEwMDY0NAotLS0gYS9JbmNsdWRlL2Fic3RyYWN0LmgKKysrIGIvSW5jbHVkZS9hYnN0cmFjdC5oCkBAIC0yODQsNyArMjg0LDcgQEAKICAgICAgICAqLwogCiAgICAgIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlPYmplY3RfQ2FsbEZ1bmN0aW9uKFB5T2JqZWN0ICpjYWxsYWJsZV9vYmplY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmZvcm1hdCwgLi4uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pOwogCiAgICAgICAgLyoKICAgICAgQ2FsbCBhIGNhbGxhYmxlIFB5dGhvbiBvYmplY3QsIGNhbGxhYmxlX29iamVjdCwgd2l0aCBhCkBAIC0yOTYsOCArMjk2LDkgQEAKICAgICAgICAqLwogCiAKLSAgICAgUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeU9iamVjdF9DYWxsTWV0aG9kKFB5T2JqZWN0ICpvLCBjaGFyICptZXRob2QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpmb3JtYXQsIC4uLik7CisgICAgIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlPYmplY3RfQ2FsbE1ldGhvZChQeU9iamVjdCAqbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1ldGhvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsKIAogICAgICAgIC8qCiAgICAgIENhbGwgdGhlIG1ldGhvZCBuYW1lZCBtIG9mIG9iamVjdCBvIHdpdGggYSB2YXJpYWJsZSBudW1iZXIgb2YKQEAgLTMwOCw4ICszMDksOSBAQAogICAgICBQeXRob24gZXhwcmVzc2lvbjogby5tZXRob2QoYXJncykuCiAgICAgICAgKi8KIAotICAgICBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoUHlPYmplY3QgKm8sIF9QeV9JZGVudGlmaWVyICptZXRob2QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmZvcm1hdCwgLi4uKTsKKyAgICAgUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKFB5T2JqZWN0ICpvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1B5X0lkZW50aWZpZXIgKm1ldGhvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKTsKIAogICAgICAgIC8qCiAgICAgICAgICBMaWtlIFB5T2JqZWN0X0NhbGxNZXRob2QsIGJ1dCBleHBlY3QgYSBfUHlfSWRlbnRpZmllciogYXMgdGhlCkBAIC0zMTcsMTMgKzMxOSwxNiBAQAogICAgICAgICovCiAKICAgICAgUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlPYmplY3RfQ2FsbEZ1bmN0aW9uX1NpemVUKFB5T2JqZWN0ICpjYWxsYWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmZvcm1hdCwgLi4uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLik7CiAgICAgIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5T2JqZWN0X0NhbGxNZXRob2RfU2l6ZVQoUHlPYmplY3QgKm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpmb3JtYXQsIC4uLik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKTsKICAgICAgUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkX1NpemVUKFB5T2JqZWN0ICpvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9QeV9JZGVudGlmaWVyICpuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmZvcm1hdCwgLi4uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKTsKIAogICAgICBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoUHlPYmplY3QgKmNhbGxhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKTsKQEAgLTMzOSwxMSArMzQ0LDEwIEBACiAKICAgICAgUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncyhQeU9iamVjdCAqbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqbWV0aG9kLCAuLi4pOwotICAgICBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIF9QeU9iamVjdF9DYWxsTWV0aG9kT2JqSWRBcmdzKFB5T2JqZWN0ICpvLAorICAgICBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIF9QeU9iamVjdF9DYWxsTWV0aG9kSWRPYmpBcmdzKFB5T2JqZWN0ICpvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgX1B5X0lkZW50aWZpZXIgKm1ldGhvZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKTsKIAotCiAgICAgICAgLyoKICAgICAgQ2FsbCB0aGUgbWV0aG9kIG5hbWVkIG0gb2Ygb2JqZWN0IG8gd2l0aCBhIHZhcmlhYmxlIG51bWJlciBvZgogICAgICBDIGFyZ3VtZW50cy4gIFRoZSBDIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgYXMgUHlPYmplY3QgKgpAQCAtNDA0LDggKzQwOCw5IEBACiAjZGVmaW5lIFB5T2JqZWN0X0xlbmd0aCBQeU9iamVjdF9TaXplCiAKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKLSAgICAgUHlBUElfRlVOQyhQeV9zc2l6ZV90KSBfUHlPYmplY3RfTGVuZ3RoSGludChQeU9iamVjdCAqbywgUHlfc3NpemVfdCk7CisgICAgIFB5QVBJX0ZVTkMoaW50KSBfUHlPYmplY3RfSGFzTGVuKFB5T2JqZWN0ICpvKTsKICNlbmRpZgorUHlBUElfRlVOQyhQeV9zc2l6ZV90KSBQeU9iamVjdF9MZW5ndGhIaW50KFB5T2JqZWN0ICpvLCBQeV9zc2l6ZV90KTsKIAogICAgICAgIC8qCiAgICAgIEd1ZXNzIHRoZSBzaXplIG9mIG9iamVjdCBvIHVzaW5nIGxlbihvKSBvciBvLl9fbGVuZ3RoX2hpbnRfXygpLgpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9hc2RsLmggYi9JbmNsdWRlL2FzZGwuaAppbmRleCA2YmY2MThmLi4wNzg5YWQ4IDEwMDY0NAotLS0gYS9JbmNsdWRlL2FzZGwuaAorKysgYi9JbmNsdWRlL2FzZGwuaApAQCAtNSw2ICs1LDcgQEAKIHR5cGVkZWYgUHlPYmplY3QgKiBzdHJpbmc7CiB0eXBlZGVmIFB5T2JqZWN0ICogYnl0ZXM7CiB0eXBlZGVmIFB5T2JqZWN0ICogb2JqZWN0OwordHlwZWRlZiBQeU9iamVjdCAqIHNpbmdsZXRvbjsKIAogLyogSXQgd291bGQgYmUgbmljZSBpZiB0aGUgY29kZSBnZW5lcmF0ZWQgYnkgYXNkbF9jLnB5IHdhcyBjb21wbGV0ZWx5CiAgICBpbmRlcGVuZGVudCBvZiBQeXRob24sIGJ1dCBpdCBpcyBhIGdvYWwgdGhlIHJlcXVpcmVzIHRvbyBtdWNoIHdvcmsKZGlmZiAtLWdpdCBhL0luY2x1ZGUvZGljdG9iamVjdC5oIGIvSW5jbHVkZS9kaWN0b2JqZWN0LmgKaW5kZXggZDg5YWFjOC4uMTZiZDFkNiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9kaWN0b2JqZWN0LmgKKysrIGIvSW5jbHVkZS9kaWN0b2JqZWN0LmgKQEAgLTUzLDYgKzUzLDggQEAKIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlEaWN0X0dldEl0ZW1XaXRoRXJyb3IoUHlPYmplY3QgKm1wLCBQeU9iamVjdCAqa2V5KTsKIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5RGljdF9HZXRJdGVtSWRXaXRoRXJyb3IoUHlPYmplY3QgKmRwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgX1B5X0lkZW50aWZpZXIgKmtleSk7CitQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5RGljdF9TZXREZWZhdWx0KAorICAgIFB5T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSwgUHlPYmplY3QgKmRlZmF1bHRvYmopOwogUHlBUElfRlVOQyhpbnQpIFB5RGljdF9TZXRJdGVtKFB5T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSwgUHlPYmplY3QgKml0ZW0pOwogUHlBUElfRlVOQyhpbnQpIFB5RGljdF9EZWxJdGVtKFB5T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSk7CiBQeUFQSV9GVU5DKHZvaWQpIFB5RGljdF9DbGVhcihQeU9iamVjdCAqbXApOwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9ncmFtbWFyLmggYi9JbmNsdWRlL2dyYW1tYXIuaAppbmRleCA4NDI2ZGEzLi44NjJmNmE4IDEwMDY0NAotLS0gYS9JbmNsdWRlL2dyYW1tYXIuaAorKysgYi9JbmNsdWRlL2dyYW1tYXIuaApAQCAtNzYsNyArNzYsNyBAQAogCiBpbnQgYWRkbGFiZWwobGFiZWxsaXN0ICpsbCwgaW50IHR5cGUsIGNoYXIgKnN0cik7CiBpbnQgZmluZGxhYmVsKGxhYmVsbGlzdCAqbGwsIGludCB0eXBlLCBjaGFyICpzdHIpOwotY2hhciAqUHlHcmFtbWFyX0xhYmVsUmVwcihsYWJlbCAqbGIpOworY29uc3QgY2hhciAqUHlHcmFtbWFyX0xhYmVsUmVwcihsYWJlbCAqbGIpOwogdm9pZCB0cmFuc2xhdGVsYWJlbHMoZ3JhbW1hciAqZyk7CiAKIHZvaWQgYWRkZmlyc3RzZXRzKGdyYW1tYXIgKmcpOwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9pbXBvcnQuaCBiL0luY2x1ZGUvaW1wb3J0LmgKaW5kZXggZmRjMjczMy4uOTAwNDllMCAxMDA2NDQKLS0tIGEvSW5jbHVkZS9pbXBvcnQuaAorKysgYi9JbmNsdWRlL2ltcG9ydC5oCkBAIC0xMTMsMTUgKzExMywxNSBAQAogCiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCiBzdHJ1Y3QgX2Zyb3plbiB7Ci0gICAgY2hhciAqbmFtZTsgICAgICAgICAgICAgICAgIC8qIEFTQ0lJIGVuY29kZWQgc3RyaW5nICovCi0gICAgdW5zaWduZWQgY2hhciAqY29kZTsKKyAgICBjb25zdCBjaGFyICpuYW1lOyAgICAgICAgICAgICAgICAgLyogQVNDSUkgZW5jb2RlZCBzdHJpbmcgKi8KKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpjb2RlOwogICAgIGludCBzaXplOwogfTsKIAogLyogRW1iZWRkaW5nIGFwcHMgbWF5IGNoYW5nZSB0aGlzIHBvaW50ZXIgdG8gcG9pbnQgdG8gdGhlaXIgZmF2b3JpdGUKICAgIGNvbGxlY3Rpb24gb2YgZnJvemVuIG1vZHVsZXM6ICovCiAKLVB5QVBJX0RBVEEoc3RydWN0IF9mcm96ZW4gKikgUHlJbXBvcnRfRnJvemVuTW9kdWxlczsKK1B5QVBJX0RBVEEoY29uc3Qgc3RydWN0IF9mcm96ZW4gKikgUHlJbXBvcnRfRnJvemVuTW9kdWxlczsKICNlbmRpZgogCiAjaWZkZWYgX19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL0luY2x1ZGUvbG9uZ29iamVjdC5oIGIvSW5jbHVkZS9sb25nb2JqZWN0LmgKaW5kZXggY2QwY2YzMC4uODg2YmM2MyAxMDA2NDQKLS0tIGEvSW5jbHVkZS9sb25nb2JqZWN0LmgKKysrIGIvSW5jbHVkZS9sb25nb2JqZWN0LmgKQEAgLTUyLDYgKzUyLDE5IEBACiAjZXJyb3IgInNpemVvZihwaWRfdCkgaXMgbmVpdGhlciBzaXplb2YoaW50KSwgc2l6ZW9mKGxvbmcpIG9yIHNpemVvZihsb25nIGxvbmcpIgogI2VuZGlmIC8qIFNJWkVPRl9QSURfVCAqLwogCisjaWYgU0laRU9GX1ZPSURfUCA9PSBTSVpFT0ZfSU5UCisjICBkZWZpbmUgX1B5X1BBUlNFX0lOVFBUUiAiaSIKKyMgIGRlZmluZSBfUHlfUEFSU0VfVUlOVFBUUiAiSSIKKyNlbGlmIFNJWkVPRl9WT0lEX1AgPT0gU0laRU9GX0xPTkcKKyMgIGRlZmluZSBfUHlfUEFSU0VfSU5UUFRSICJsIgorIyAgZGVmaW5lIF9QeV9QQVJTRV9VSU5UUFRSICJrIgorI2VsaWYgZGVmaW5lZChTSVpFT0ZfTE9OR19MT05HKSAmJiBTSVpFT0ZfVk9JRF9QID09IFNJWkVPRl9MT05HX0xPTkcKKyMgIGRlZmluZSBfUHlfUEFSU0VfSU5UUFRSICJMIgorIyAgZGVmaW5lIF9QeV9QQVJTRV9VSU5UUFRSICJLIgorI2Vsc2UKKyMgIGVycm9yICJ2b2lkKiBkaWZmZXJlbnQgaW4gc2l6ZSBmcm9tIGludCwgbG9uZyBhbmQgbG9uZyBsb25nIgorI2VuZGlmIC8qIFNJWkVPRl9WT0lEX1AgKi8KKwogLyogVXNlZCBieSBQeXRob24vbXlzdHJ0b3VsLmMuICovCiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCiBQeUFQSV9EQVRBKHVuc2lnbmVkIGNoYXIpIF9QeUxvbmdfRGlnaXRWYWx1ZVsyNTZdOwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9tYXJzaGFsLmggYi9JbmNsdWRlL21hcnNoYWwuaAppbmRleCBlOTZkMDYyLi4wYzY5NjU1IDEwMDY0NAotLS0gYS9JbmNsdWRlL21hcnNoYWwuaAorKysgYi9JbmNsdWRlL21hcnNoYWwuaApAQCAtNyw3ICs3LDcgQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKLSNkZWZpbmUgUHlfTUFSU0hBTF9WRVJTSU9OIDIKKyNkZWZpbmUgUHlfTUFSU0hBTF9WRVJTSU9OIDMKIAogUHlBUElfRlVOQyh2b2lkKSBQeU1hcnNoYWxfV3JpdGVMb25nVG9GaWxlKGxvbmcsIEZJTEUgKiwgaW50KTsKIFB5QVBJX0ZVTkModm9pZCkgUHlNYXJzaGFsX1dyaXRlT2JqZWN0VG9GaWxlKFB5T2JqZWN0ICosIEZJTEUgKiwgaW50KTsKZGlmZiAtLWdpdCBhL0luY2x1ZGUvbW9kc3VwcG9ydC5oIGIvSW5jbHVkZS9tb2RzdXBwb3J0LmgKaW5kZXggZWNmMWRjYy4uYWI3MjVmNiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9tb2RzdXBwb3J0LmgKKysrIGIvSW5jbHVkZS9tb2RzdXBwb3J0LmgKQEAgLTI2LDcgKzI2LDcgQEAKIC8qIER1ZSB0byBhIGdsaXRjaCBpbiAzLjIsIHRoZSBfU2l6ZVQgdmVyc2lvbnMgd2VyZW4ndCBleHBvcnRlZCBmcm9tIHRoZSBETEwuICovCiAjaWYgIWRlZmluZWQoUFlfU1NJWkVfVF9DTEVBTikgfHwgIWRlZmluZWQoUHlfTElNSVRFRF9BUEkpIHx8IFB5X0xJTUlURURfQVBJKzAgPj0gMHgwMzAzMDAwMAogUHlBUElfRlVOQyhpbnQpIFB5QXJnX1BhcnNlKFB5T2JqZWN0ICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKLVB5QVBJX0ZVTkMoaW50KSBQeUFyZ19QYXJzZVR1cGxlKFB5T2JqZWN0ICosIGNvbnN0IGNoYXIgKiwgLi4uKSBQeV9GT1JNQVRfUEFSU0VUVVBMRShQeUFyZ19QYXJzZVR1cGxlLCAyLCAzKTsKK1B5QVBJX0ZVTkMoaW50KSBQeUFyZ19QYXJzZVR1cGxlKFB5T2JqZWN0ICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKIFB5QVBJX0ZVTkMoaW50KSBQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoUHlPYmplY3QgKiwgUHlPYmplY3QgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCBjaGFyICoqLCAuLi4pOwogUHlBUElfRlVOQyhpbnQpIFB5QXJnX1ZhbGlkYXRlS2V5d29yZEFyZ3VtZW50cyhQeU9iamVjdCAqKTsKZGlmZiAtLWdpdCBhL0luY2x1ZGUvb2JqZWN0LmggYi9JbmNsdWRlL29iamVjdC5oCmluZGV4IDM4N2NhZGIuLjIyMWI0YTIgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvb2JqZWN0LmgKKysrIGIvSW5jbHVkZS9vYmplY3QuaApAQCAtMzYyLDcgKzM2Miw3IEBACiAgICAgUHlCdWZmZXJQcm9jcyAqdHBfYXNfYnVmZmVyOwogCiAgICAgLyogRmxhZ3MgdG8gZGVmaW5lIHByZXNlbmNlIG9mIG9wdGlvbmFsL2V4cGFuZGVkIGZlYXR1cmVzICovCi0gICAgbG9uZyB0cF9mbGFnczsKKyAgICB1bnNpZ25lZCBsb25nIHRwX2ZsYWdzOwogCiAgICAgY29uc3QgY2hhciAqdHBfZG9jOyAvKiBEb2N1bWVudGF0aW9uIHN0cmluZyAqLwogCkBAIC00MjgsNyArNDI4LDcgQEAKICAgICBjb25zdCBjaGFyKiBuYW1lOwogICAgIGludCBiYXNpY3NpemU7CiAgICAgaW50IGl0ZW1zaXplOwotICAgIGludCBmbGFnczsKKyAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAgUHlUeXBlX1Nsb3QgKnNsb3RzOyAvKiB0ZXJtaW5hdGVkIGJ5IHNsb3Q9PTAuICovCiB9IFB5VHlwZV9TcGVjOwogCkBAIC00NzAsNyArNDcwLDcgQEAKIFB5QVBJX0RBVEEoUHlUeXBlT2JqZWN0KSBQeUJhc2VPYmplY3RfVHlwZTsgLyogYnVpbHQtaW4gJ29iamVjdCcgKi8KIFB5QVBJX0RBVEEoUHlUeXBlT2JqZWN0KSBQeVN1cGVyX1R5cGU7IC8qIGJ1aWx0LWluICdzdXBlcicgKi8KIAotUHlBUElfRlVOQyhsb25nKSBQeVR5cGVfR2V0RmxhZ3MoUHlUeXBlT2JqZWN0Kik7CitQeUFQSV9GVU5DKHVuc2lnbmVkIGxvbmcpIFB5VHlwZV9HZXRGbGFncyhQeVR5cGVPYmplY3QqKTsKIAogI2RlZmluZSBQeVR5cGVfQ2hlY2sob3ApIFwKICAgICBQeVR5cGVfRmFzdFN1YmNsYXNzKFB5X1RZUEUob3ApLCBQeV9UUEZMQUdTX1RZUEVfU1VCQ0xBU1MpCkBAIC02MDMsNDQgKzYwMyw0MyBAQAogKi8KIAogLyogU2V0IGlmIHRoZSB0eXBlIG9iamVjdCBpcyBkeW5hbWljYWxseSBhbGxvY2F0ZWQgKi8KLSNkZWZpbmUgUHlfVFBGTEFHU19IRUFQVFlQRSAoMUw8PDkpCisjZGVmaW5lIFB5X1RQRkxBR1NfSEVBUFRZUEUgKDFVTCA8PCA5KQogCiAvKiBTZXQgaWYgdGhlIHR5cGUgYWxsb3dzIHN1YmNsYXNzaW5nICovCi0jZGVmaW5lIFB5X1RQRkxBR1NfQkFTRVRZUEUgKDFMPDwxMCkKKyNkZWZpbmUgUHlfVFBGTEFHU19CQVNFVFlQRSAoMVVMIDw8IDEwKQogCiAvKiBTZXQgaWYgdGhlIHR5cGUgaXMgJ3JlYWR5JyAtLSBmdWxseSBpbml0aWFsaXplZCAqLwotI2RlZmluZSBQeV9UUEZMQUdTX1JFQURZICgxTDw8MTIpCisjZGVmaW5lIFB5X1RQRkxBR1NfUkVBRFkgKDFVTCA8PCAxMikKIAogLyogU2V0IHdoaWxlIHRoZSB0eXBlIGlzIGJlaW5nICdyZWFkaWVkJywgdG8gcHJldmVudCByZWN1cnNpdmUgcmVhZHkgY2FsbHMgKi8KLSNkZWZpbmUgUHlfVFBGTEFHU19SRUFEWUlORyAoMUw8PDEzKQorI2RlZmluZSBQeV9UUEZMQUdTX1JFQURZSU5HICgxVUwgPDwgMTMpCiAKIC8qIE9iamVjdHMgc3VwcG9ydCBnYXJiYWdlIGNvbGxlY3Rpb24gKHNlZSBvYmppbXAuaCkgKi8KLSNkZWZpbmUgUHlfVFBGTEFHU19IQVZFX0dDICgxTDw8MTQpCisjZGVmaW5lIFB5X1RQRkxBR1NfSEFWRV9HQyAoMVVMIDw8IDE0KQogCiAvKiBUaGVzZSB0d28gYml0cyBhcmUgcHJlc2VydmVkIGZvciBTdGFja2xlc3MgUHl0aG9uLCBuZXh0IGFmdGVyIHRoaXMgaXMgMTcgKi8KICNpZmRlZiBTVEFDS0xFU1MKLSNkZWZpbmUgUHlfVFBGTEFHU19IQVZFX1NUQUNLTEVTU19FWFRFTlNJT04gKDNMPDwxNSkKKyNkZWZpbmUgUHlfVFBGTEFHU19IQVZFX1NUQUNLTEVTU19FWFRFTlNJT04gKDNVTCA8PCAxNSkKICNlbHNlCiAjZGVmaW5lIFB5X1RQRkxBR1NfSEFWRV9TVEFDS0xFU1NfRVhURU5TSU9OIDAKICNlbmRpZgogCiAvKiBPYmplY3RzIHN1cHBvcnQgdHlwZSBhdHRyaWJ1dGUgY2FjaGUgKi8KLSNkZWZpbmUgUHlfVFBGTEFHU19IQVZFX1ZFUlNJT05fVEFHICAgKDFMPDwxOCkKLSNkZWZpbmUgUHlfVFBGTEFHU19WQUxJRF9WRVJTSU9OX1RBRyAgKDFMPDwxOSkKKyNkZWZpbmUgUHlfVFBGTEFHU19IQVZFX1ZFUlNJT05fVEFHICAgKDFVTCA8PCAxOCkKKyNkZWZpbmUgUHlfVFBGTEFHU19WQUxJRF9WRVJTSU9OX1RBRyAgKDFVTCA8PCAxOSkKIAogLyogVHlwZSBpcyBhYnN0cmFjdCBhbmQgY2Fubm90IGJlIGluc3RhbnRpYXRlZCAqLwotI2RlZmluZSBQeV9UUEZMQUdTX0lTX0FCU1RSQUNUICgxTDw8MjApCisjZGVmaW5lIFB5X1RQRkxBR1NfSVNfQUJTVFJBQ1QgKDFVTCA8PCAyMCkKIAogLyogVGhlc2UgZmxhZ3MgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGEgdHlwZSBpcyBhIHN1YmNsYXNzLiAqLwotI2RlZmluZSBQeV9UUEZMQUdTX0lOVF9TVUJDTEFTUyAgICAgICAgICgxTDw8MjMpCi0jZGVmaW5lIFB5X1RQRkxBR1NfTE9OR19TVUJDTEFTUyAgICAgICAgKDFMPDwyNCkKLSNkZWZpbmUgUHlfVFBGTEFHU19MSVNUX1NVQkNMQVNTICAgICAgICAoMUw8PDI1KQotI2RlZmluZSBQeV9UUEZMQUdTX1RVUExFX1NVQkNMQVNTICAgICAgICgxTDw8MjYpCi0jZGVmaW5lIFB5X1RQRkxBR1NfQllURVNfU1VCQ0xBU1MgICAgICAgKDFMPDwyNykKLSNkZWZpbmUgUHlfVFBGTEFHU19VTklDT0RFX1NVQkNMQVNTICAgICAoMUw8PDI4KQotI2RlZmluZSBQeV9UUEZMQUdTX0RJQ1RfU1VCQ0xBU1MgICAgICAgICgxTDw8MjkpCi0jZGVmaW5lIFB5X1RQRkxBR1NfQkFTRV9FWENfU1VCQ0xBU1MgICAgKDFMPDwzMCkKLSNkZWZpbmUgUHlfVFBGTEFHU19UWVBFX1NVQkNMQVNTICAgICAgICAoMUw8PDMxKQorI2RlZmluZSBQeV9UUEZMQUdTX0xPTkdfU1VCQ0xBU1MgICAgICAgICgxVUwgPDwgMjQpCisjZGVmaW5lIFB5X1RQRkxBR1NfTElTVF9TVUJDTEFTUyAgICAgICAgKDFVTCA8PCAyNSkKKyNkZWZpbmUgUHlfVFBGTEFHU19UVVBMRV9TVUJDTEFTUyAgICAgICAoMVVMIDw8IDI2KQorI2RlZmluZSBQeV9UUEZMQUdTX0JZVEVTX1NVQkNMQVNTICAgICAgICgxVUwgPDwgMjcpCisjZGVmaW5lIFB5X1RQRkxBR1NfVU5JQ09ERV9TVUJDTEFTUyAgICAgKDFVTCA8PCAyOCkKKyNkZWZpbmUgUHlfVFBGTEFHU19ESUNUX1NVQkNMQVNTICAgICAgICAoMVVMIDw8IDI5KQorI2RlZmluZSBQeV9UUEZMQUdTX0JBU0VfRVhDX1NVQkNMQVNTICAgICgxVUwgPDwgMzApCisjZGVmaW5lIFB5X1RQRkxBR1NfVFlQRV9TVUJDTEFTUyAgICAgICAgKDFVTCA8PCAzMSkKIAogI2RlZmluZSBQeV9UUEZMQUdTX0RFRkFVTFQgICggXAogICAgICAgICAgICAgICAgICBQeV9UUEZMQUdTX0hBVkVfU1RBQ0tMRVNTX0VYVEVOU0lPTiB8IFwKQEAgLTY4MSwxMiArNjgwLDYgQEAKIGNvbXBsaWNhdGlvbnMgaW4gdGhlIGRlYWxsb2NhdGlvbiBmdW5jdGlvbi4gIChUaGlzIGlzIGFjdHVhbGx5IGEKIGRlY2lzaW9uIHRoYXQncyB1cCB0byB0aGUgaW1wbGVtZW50ZXIgb2YgZWFjaCBuZXcgdHlwZSBzbyBpZiB5b3Ugd2FudCwKIHlvdSBjYW4gY291bnQgc3VjaCByZWZlcmVuY2VzIHRvIHRoZSB0eXBlIG9iamVjdC4pCi0KLSoqKiBXQVJOSU5HKioqIFRoZSBQeV9ERUNSRUYgbWFjcm8gbXVzdCBoYXZlIGEgc2lkZS1lZmZlY3QtZnJlZSBhcmd1bWVudAotc2luY2UgaXQgbWF5IGV2YWx1YXRlIGl0cyBhcmd1bWVudCBtdWx0aXBsZSB0aW1lcy4gIChUaGUgYWx0ZXJuYXRpdmUKLXdvdWxkIGJlIHRvIG1hY2UgaXQgYSBwcm9wZXIgZnVuY3Rpb24gb3IgYXNzaWduIGl0IHRvIGEgZ2xvYmFsIHRlbXBvcmFyeQotdmFyaWFibGUgZmlyc3QsIGJvdGggb2Ygd2hpY2ggYXJlIHNsb3dlcjsgYW5kIGluIGEgbXVsdGktdGhyZWFkZWQKLWVudmlyb25tZW50IHRoZSBnbG9iYWwgdmFyaWFibGUgdHJpY2sgaXMgbm90IHNhZmUuKQogKi8KIAogLyogRmlyc3QgZGVmaW5lIGEgcGlsZSBvZiBzaW1wbGUgaGVscGVyIG1hY3Jvcywgb25lIHNldCBwZXIgc3BlY2lhbApAQCAtNzY1LDE1ICs3NTgsMTYgQEAKIAogI2RlZmluZSBQeV9JTkNSRUYob3ApICggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIF9QeV9JTkNfUkVGVE9UQUwgIF9QeV9SRUZfREVCVUdfQ09NTUEgICAgICAgXAotICAgICgoUHlPYmplY3QqKShvcCkpLT5vYl9yZWZjbnQrKykKKyAgICAoKFB5T2JqZWN0ICopKG9wKSktPm9iX3JlZmNudCsrKQogCiAjZGVmaW5lIFB5X0RFQ1JFRihvcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeU9iamVjdCAqX3B5X2RlY3JlZl90bXAgPSAoUHlPYmplY3QgKikob3ApOyAgICBcCiAgICAgICAgIGlmIChfUHlfREVDX1JFRlRPVEFMICBfUHlfUkVGX0RFQlVHX0NPTU1BICAgICAgIFwKLSAgICAgICAgLS0oKFB5T2JqZWN0Kikob3ApKS0+b2JfcmVmY250ICE9IDApICAgICAgICAgICAgXAotICAgICAgICAgICAgX1B5X0NIRUNLX1JFRkNOVChvcCkgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC0tKF9weV9kZWNyZWZfdG1wKS0+b2JfcmVmY250ICE9IDApICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIF9QeV9DSEVDS19SRUZDTlQoX3B5X2RlY3JlZl90bXApICAgICAgICAgICAgXAogICAgICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIF9QeV9EZWFsbG9jKChQeU9iamVjdCAqKShvcCkpOyAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgX1B5X0RlYWxsb2MoX3B5X2RlY3JlZl90bXApOyAgICAgICAgICAgICAgICAgICAgXAogICAgIH0gd2hpbGUgKDApCiAKIC8qIFNhZmVseSBkZWNyZWYgYG9wYCBhbmQgc2V0IGBvcGAgdG8gTlVMTCwgZXNwZWNpYWxseSB1c2VmdWwgaW4gdHBfY2xlYXIKQEAgLTgxMiwxNiArODA2LDI3IEBACiAgKi8KICNkZWZpbmUgUHlfQ0xFQVIob3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgaWYgKG9wKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIFB5T2JqZWN0ICpfcHlfdG1wID0gKFB5T2JqZWN0ICopKG9wKTsgICAgICAgICAgICAgICBcCisgICAgICAgIFB5T2JqZWN0ICpfcHlfdG1wID0gKFB5T2JqZWN0ICopKG9wKTsgICBcCisgICAgICAgIGlmIChfcHlfdG1wICE9IE5VTEwpIHsgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAob3ApID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICBQeV9ERUNSRUYoX3B5X3RtcCk7ICAgICAgICAgICAgICAgICBcCiAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSB3aGlsZSAoMCkKIAogLyogTWFjcm9zIHRvIHVzZSBpbiBjYXNlIHRoZSBvYmplY3QgcG9pbnRlciBtYXkgYmUgTlVMTDogKi8KLSNkZWZpbmUgUHlfWElOQ1JFRihvcCkgZG8geyBpZiAoKG9wKSA9PSBOVUxMKSA7IGVsc2UgUHlfSU5DUkVGKG9wKTsgfSB3aGlsZSAoMCkKLSNkZWZpbmUgUHlfWERFQ1JFRihvcCkgZG8geyBpZiAoKG9wKSA9PSBOVUxMKSA7IGVsc2UgUHlfREVDUkVGKG9wKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgUHlfWElOQ1JFRihvcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgUHlPYmplY3QgKl9weV94aW5jcmVmX3RtcCA9IChQeU9iamVjdCAqKShvcCk7IFwKKyAgICAgICAgaWYgKF9weV94aW5jcmVmX3RtcCAhPSBOVUxMKSAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIFB5X0lOQ1JFRihfcHlfeGluY3JlZl90bXApOyAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlICgwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCisjZGVmaW5lIFB5X1hERUNSRUYob3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFB5T2JqZWN0ICpfcHlfeGRlY3JlZl90bXAgPSAoUHlPYmplY3QgKikob3ApOyBcCisgICAgICAgIGlmIChfcHlfeGRlY3JlZl90bXAgIT0gTlVMTCkgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBQeV9ERUNSRUYoX3B5X3hkZWNyZWZfdG1wKTsgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoMCkKIAogLyoKIFRoZXNlIGFyZSBwcm92aWRlZCBhcyBjb252ZW5pZW5jZXMgdG8gUHl0aG9uIHJ1bnRpbWUgZW1iZWRkZXJzLCBzbyB0aGF0CmRpZmYgLS1naXQgYS9JbmNsdWRlL29iamltcGwuaCBiL0luY2x1ZGUvb2JqaW1wbC5oCmluZGV4IDNkNWY1MDkuLjhmMzYzNjAgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvb2JqaW1wbC5oCisrKyBiL0luY2x1ZGUvb2JqaW1wbC5oCkBAIC05OCw2ICs5OCw4IEBACiBQeUFQSV9GVU5DKHZvaWQgKikgUHlPYmplY3RfUmVhbGxvYyh2b2lkICosIHNpemVfdCk7CiBQeUFQSV9GVU5DKHZvaWQpIFB5T2JqZWN0X0ZyZWUodm9pZCAqKTsKIAorLyogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBudW1iZXIgb2YgYWxsb2NhdGVkIG1lbW9yeSBibG9ja3MsIHJlZ2FyZGxlc3Mgb2Ygc2l6ZSAqLworUHlBUElfRlVOQyhQeV9zc2l6ZV90KSBfUHlfR2V0QWxsb2NhdGVkQmxvY2tzKHZvaWQpOwogCiAvKiBNYWNyb3MgKi8KICNpZmRlZiBXSVRIX1BZTUFMTE9DCkBAIC0yMzAsNiArMjMyLDEwIEBACiAvKiBDIGVxdWl2YWxlbnQgb2YgZ2MuY29sbGVjdCgpLiAqLwogUHlBUElfRlVOQyhQeV9zc2l6ZV90KSBQeUdDX0NvbGxlY3Qodm9pZCk7CiAKKyNpZm5kZWYgUHlfTElNSVRFRF9BUEkKK1B5QVBJX0ZVTkMoUHlfc3NpemVfdCkgX1B5R0NfQ29sbGVjdE5vRmFpbCh2b2lkKTsKKyNlbmRpZgorCiAvKiBUZXN0IGlmIGEgdHlwZSBoYXMgYSBHQyBoZWFkICovCiAjZGVmaW5lIFB5VHlwZV9JU19HQyh0KSBQeVR5cGVfSGFzRmVhdHVyZSgodCksIFB5X1RQRkxBR1NfSEFWRV9HQykKIApAQCAtMjQ5LDcgKzI1NSw3IEBACiAgICAgICAgIHVuaW9uIF9nY19oZWFkICpnY19wcmV2OwogICAgICAgICBQeV9zc2l6ZV90IGdjX3JlZnM7CiAgICAgfSBnYzsKLSAgICBsb25nIGRvdWJsZSBkdW1teTsgIC8qIGZvcmNlIHdvcnN0LWNhc2UgYWxpZ25tZW50ICovCisgICAgZG91YmxlIGR1bW15OyAgLyogZm9yY2Ugd29yc3QtY2FzZSBhbGlnbm1lbnQgKi8KIH0gUHlHQ19IZWFkOwogCiBleHRlcm4gUHlHQ19IZWFkICpfUHlHQ19nZW5lcmF0aW9uMDsKZGlmZiAtLWdpdCBhL0luY2x1ZGUvb3Bjb2RlLmggYi9JbmNsdWRlL29wY29kZS5oCmluZGV4IGE5MDE4NGQuLjA5MzZmMmQgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvb3Bjb2RlLmgKKysrIGIvSW5jbHVkZS9vcGNvZGUuaApAQCAtNDksNyArNDksNiBAQAogI2RlZmluZSBCSU5BUllfT1IgICAgICAgNjYKICNkZWZpbmUgSU5QTEFDRV9QT1dFUiAgIDY3CiAjZGVmaW5lIEdFVF9JVEVSICAgICAgICA2OAotI2RlZmluZSBTVE9SRV9MT0NBTFMgICAgNjkKICNkZWZpbmUgUFJJTlRfRVhQUiAgICAgIDcwCiAjZGVmaW5lIExPQURfQlVJTERfQ0xBU1MgNzEKICNkZWZpbmUgWUlFTERfRlJPTSAgICAgIDcyCkBAIC0xNDAsNiArMTM5LDcgQEAKICNkZWZpbmUgU0VUX0FERCAgICAgICAgIDE0NgogI2RlZmluZSBNQVBfQUREICAgICAgICAgMTQ3CiAKKyNkZWZpbmUgTE9BRF9DTEFTU0RFUkVGICAgMTQ4CiAKIC8qIEVYQ0VQVF9IQU5ETEVSIGlzIGEgc3BlY2lhbCwgaW1wbGljaXQgYmxvY2sgdHlwZSB3aGljaCBpcyBjcmVhdGVkIHdoZW4KICAgIGVudGVyaW5nIGFuIGV4Y2VwdCBoYW5kbGVyLiBJdCBpcyBub3QgYW4gb3Bjb2RlIGJ1dCB3ZSBkZWZpbmUgaXQgaGVyZQpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9vc2RlZnMuaCBiL0luY2x1ZGUvb3NkZWZzLmgKaW5kZXggMDVjMGM4ZS4uMGMyZTM0YiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9vc2RlZnMuaAorKysgYi9JbmNsdWRlL29zZGVmcy5oCkBAIC05LDE2ICs5LDEwIEBACiAKIC8qIE1vZCBieSBjaHJpc2g6IFFOWCBoYXMgV0FUQ09NLCBidXQgaXNuJ3QgRE9TICovCiAjaWYgIWRlZmluZWQoX19RTlhfXykKLSNpZiBkZWZpbmVkKE1TX1dJTkRPV1MpIHx8IGRlZmluZWQoX19CT1JMQU5EQ19fKSB8fCBkZWZpbmVkKF9fV0FUQ09NQ19fKSB8fCBkZWZpbmVkKF9fREpHUFBfXykgfHwgZGVmaW5lZChQWU9TX09TMikKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiBkZWZpbmVkKFBZQ0NfR0NDKQotI2RlZmluZSBNQVhQQVRITEVOIDI2MAotI2RlZmluZSBTRVAgTCcvJwotI2RlZmluZSBBTFRTRVAgTCdcXCcKLSNlbHNlCisjaWYgZGVmaW5lZChNU19XSU5ET1dTKSB8fCBkZWZpbmVkKF9fQk9STEFORENfXykgfHwgZGVmaW5lZChfX1dBVENPTUNfXykgfHwgZGVmaW5lZChfX0RKR1BQX18pCiAjZGVmaW5lIFNFUCBMJ1xcJwogI2RlZmluZSBBTFRTRVAgTCcvJwogI2RlZmluZSBNQVhQQVRITEVOIDI1NgotI2VuZGlmCiAjZGVmaW5lIERFTElNIEwnOycKICNlbmRpZgogI2VuZGlmCmRpZmYgLS1naXQgYS9JbmNsdWRlL3BhdGNobGV2ZWwuaCBiL0luY2x1ZGUvcGF0Y2hsZXZlbC5oCmluZGV4IGJmZDY3YTUuLmE3NTkwNDUgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvcGF0Y2hsZXZlbC5oCisrKyBiL0luY2x1ZGUvcGF0Y2hsZXZlbC5oCkBAIC0xNywxMyArMTcsMTMgQEAKIC8qIFZlcnNpb24gcGFyc2VkIG91dCBpbnRvIG51bWVyaWMgdmFsdWVzICovCiAvKi0tc3RhcnQgY29uc3RhbnRzLS0qLwogI2RlZmluZSBQWV9NQUpPUl9WRVJTSU9OCTMKLSNkZWZpbmUgUFlfTUlOT1JfVkVSU0lPTgkzCi0jZGVmaW5lIFBZX01JQ1JPX1ZFUlNJT04JMgotI2RlZmluZSBQWV9SRUxFQVNFX0xFVkVMCVBZX1JFTEVBU0VfTEVWRUxfRklOQUwKKyNkZWZpbmUgUFlfTUlOT1JfVkVSU0lPTgk0CisjZGVmaW5lIFBZX01JQ1JPX1ZFUlNJT04JMAorI2RlZmluZSBQWV9SRUxFQVNFX0xFVkVMCVBZX1JFTEVBU0VfTEVWRUxfQUxQSEEKICNkZWZpbmUgUFlfUkVMRUFTRV9TRVJJQUwJMAogCiAvKiBWZXJzaW9uIGFzIGEgc3RyaW5nICovCi0jZGVmaW5lIFBZX1ZFUlNJT04gICAgICAJIjMuMy4yKyIKKyNkZWZpbmUgUFlfVkVSU0lPTiAgICAgIAkiMy40LjBhMCIKIC8qLS1lbmQgY29uc3RhbnRzLS0qLwogCiAvKiBWZXJzaW9uIGFzIGEgc2luZ2xlIDQtYnl0ZSBoZXggbnVtYmVyLCBlLmcuIDB4MDEwNTAyQjIgPT0gMS41LjJiMi4KZGlmZiAtLWdpdCBhL0luY2x1ZGUvcHlwb3J0LmggYi9JbmNsdWRlL3B5cG9ydC5oCmluZGV4IGU0ZTM2MDEuLmViMWJiZTIgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvcHlwb3J0LmgKKysrIGIvSW5jbHVkZS9weXBvcnQuaApAQCAtMjE5LDEwICsyMTksNiBAQAogLyogU21hbGxlc3QgbmVnYXRpdmUgdmFsdWUgb2YgdHlwZSBQeV9zc2l6ZV90LiAqLwogI2RlZmluZSBQWV9TU0laRV9UX01JTiAoLVBZX1NTSVpFX1RfTUFYLTEpCiAKLSNpZiBTSVpFT0ZfUElEX1QgPiBTSVpFT0ZfTE9ORwotIyAgIGVycm9yICJQeXRob24gZG9lc24ndCBzdXBwb3J0IHNpemVvZihwaWRfdCkgPiBzaXplb2YobG9uZykiCi0jZW5kaWYKLQogLyogUFlfRk9STUFUX1NJWkVfVCBpcyBhIHBsYXRmb3JtLXNwZWNpZmljIG1vZGlmaWVyIGZvciB1c2UgaW4gYSBwcmludGYKICAqIGZvcm1hdCB0byBjb252ZXJ0IGFuIGFyZ3VtZW50IHdpdGggdGhlIHdpZHRoIG9mIGEgc2l6ZV90IG9yIFB5X3NzaXplX3QuCiAgKiBDOTkgaW50cm9kdWNlZCAieiIgZm9yIHRoaXMgcHVycG9zZSwgYnV0IG5vdCBhbGwgcGxhdGZvcm1zIHN1cHBvcnQgdGhhdDsKQEAgLTM5Miw5ICszODgsNiBAQAogI2VuZGlmCiAKICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiBkZWZpbmVkKFBZQ0NfR0NDKQotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2VuZGlmCiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNlbGlmIGRlZmluZWQoSEFWRV9TVEFUX0gpCiAjaW5jbHVkZSA8c3RhdC5oPgpAQCAtODM1LDE1ICs4MjgsNiBAQAogI2VuZGlmCiAKIC8qCi0gKiBBZGQgUHlBcmdfUGFyc2VUdXBsZSBmb3JtYXQgd2hlcmUgYXZhaWxhYmxlLgotICovCi0jaWZkZWYgSEFWRV9BVFRSSUJVVEVfRk9STUFUX1BBUlNFVFVQTEUKLSNkZWZpbmUgUHlfRk9STUFUX1BBUlNFVFVQTEUoZnVuYyxwMSxwMikgX19hdHRyaWJ1dGVfXygoZm9ybWF0KGZ1bmMscDEscDIpKSkKLSNlbHNlCi0jZGVmaW5lIFB5X0ZPUk1BVF9QQVJTRVRVUExFKGZ1bmMscDEscDIpCi0jZW5kaWYKLQotLyoKICAqIFNwZWNpZnkgYWxpZ25tZW50IG9uIGNvbXBpbGVycyB0aGF0IHN1cHBvcnQgaXQuCiAgKi8KICNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBfX0dOVUNfXyA+PSAzCkBAIC04ODEsNCArODY1LDE4IEBACiAjZW5kaWYKICNlbmRpZgogCisvKgorICogQ29udmVuaWVudCBtYWNyb3MgdG8gZGVhbCB3aXRoIGVuZGlhbm5lc3Mgb2YgdGhlIHBsYXRmb3JtLiBXT1JEU19CSUdFTkRJQU4gaXMKKyAqIGRldGVjdGVkIGJ5IGNvbmZpZ3VyZSBhbmQgZGVmaW5lZCBpbiBweWNvbmZpZy5oLiBUaGUgY29kZSBpbiBweWNvbmZpZy5oCisgKiBhbHNvIHRha2VzIGNhcmUgb2YgQXBwbGUncyB1bml2ZXJzYWwgYnVpbGRzLgorICovCisKKyNpZmRlZiBXT1JEU19CSUdFTkRJQU4KKyNkZWZpbmUgUFlfQklHX0VORElBTiAxCisjZGVmaW5lIFBZX0xJVFRMRV9FTkRJQU4gMAorI2Vsc2UKKyNkZWZpbmUgUFlfQklHX0VORElBTiAwCisjZGVmaW5lIFBZX0xJVFRMRV9FTkRJQU4gMQorI2VuZGlmCisKICNlbmRpZiAvKiBQeV9QWVBPUlRfSCAqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9weXN0YXRlLmggYi9JbmNsdWRlL3B5c3RhdGUuaAppbmRleCAyMDE3YjAyLi5jZDFkNzc2IDEwMDY0NAotLS0gYS9JbmNsdWRlL3B5c3RhdGUuaAorKysgYi9JbmNsdWRlL3B5c3RhdGUuaApAQCAtNjksNiArNjksNyBAQAogdHlwZWRlZiBzdHJ1Y3QgX3RzIHsKICAgICAvKiBTZWUgUHl0aG9uL2NldmFsLmMgZm9yIGNvbW1lbnRzIGV4cGxhaW5pbmcgbW9zdCBmaWVsZHMgKi8KIAorICAgIHN0cnVjdCBfdHMgKnByZXY7CiAgICAgc3RydWN0IF90cyAqbmV4dDsKICAgICBQeUludGVycHJldGVyU3RhdGUgKmludGVycDsKIApAQCAtMTM5LDYgKzE0MCw3IEBACiBQeUFQSV9GVU5DKHZvaWQpIF9QeVRocmVhZFN0YXRlX0luaXQoUHlUaHJlYWRTdGF0ZSAqKTsKIFB5QVBJX0ZVTkModm9pZCkgUHlUaHJlYWRTdGF0ZV9DbGVhcihQeVRocmVhZFN0YXRlICopOwogUHlBUElfRlVOQyh2b2lkKSBQeVRocmVhZFN0YXRlX0RlbGV0ZShQeVRocmVhZFN0YXRlICopOworUHlBUElfRlVOQyh2b2lkKSBfUHlUaHJlYWRTdGF0ZV9EZWxldGVFeGNlcHQoUHlUaHJlYWRTdGF0ZSAqdHN0YXRlKTsKICNpZmRlZiBXSVRIX1RIUkVBRAogUHlBUElfRlVOQyh2b2lkKSBQeVRocmVhZFN0YXRlX0RlbGV0ZUN1cnJlbnQodm9pZCk7CiBQeUFQSV9GVU5DKHZvaWQpIF9QeUdJTFN0YXRlX1JlaW5pdCh2b2lkKTsKQEAgLTIxMiw2ICsyMTQsMTEgQEAKICovCiBQeUFQSV9GVU5DKFB5VGhyZWFkU3RhdGUgKikgUHlHSUxTdGF0ZV9HZXRUaGlzVGhyZWFkU3RhdGUodm9pZCk7CiAKKy8qIEhlbHBlci9kaWFnbm9zdGljIGZ1bmN0aW9uIC0gcmV0dXJuIDEgaWYgdGhlIGN1cnJlbnQgdGhyZWFkCisgKiBjdXJyZW50bHkgaG9sZHMgdGhlIEdJTCwgMCBvdGhlcndpc2UKKyAqLworUHlBUElfRlVOQyhpbnQpIFB5R0lMU3RhdGVfQ2hlY2sodm9pZCk7CisKICNlbmRpZiAgIC8qICNpZmRlZiBXSVRIX1RIUkVBRCAqLwogCiAvKiBUaGUgaW1wbGVtZW50YXRpb24gb2Ygc3lzLl9jdXJyZW50X2ZyYW1lcygpICBSZXR1cm5zIGEgZGljdCBtYXBwaW5nCmRpZmYgLS1naXQgYS9JbmNsdWRlL3B5dGhvbnJ1bi5oIGIvSW5jbHVkZS9weXRob25ydW4uaAppbmRleCBlOGE1ODJkLi42Njc2NmRkIDEwMDY0NAotLS0gYS9JbmNsdWRlL3B5dGhvbnJ1bi5oCisrKyBiL0luY2x1ZGUvcHl0aG9ucnVuLmgKQEAgLTIxNyw2ICsyMTcsNyBAQAogUHlBUElfRlVOQyh2b2lkKSBQeUJ5dGVBcnJheV9GaW5pKHZvaWQpOwogUHlBUElfRlVOQyh2b2lkKSBQeUZsb2F0X0Zpbmkodm9pZCk7CiBQeUFQSV9GVU5DKHZvaWQpIFB5T1NfRmluaUludGVycnVwdHModm9pZCk7CitQeUFQSV9GVU5DKHZvaWQpIF9QeUdDX0R1bXBTaHV0ZG93blN0YXRzKHZvaWQpOwogUHlBUElfRlVOQyh2b2lkKSBfUHlHQ19GaW5pKHZvaWQpOwogUHlBUElfRlVOQyh2b2lkKSBQeVNsaWNlX0Zpbmkodm9pZCk7CiBQeUFQSV9GVU5DKHZvaWQpIF9QeVR5cGVfRmluaSh2b2lkKTsKZGlmZiAtLWdpdCBhL0luY2x1ZGUvc2xpY2VvYmplY3QuaCBiL0luY2x1ZGUvc2xpY2VvYmplY3QuaAppbmRleCA4YmVjMTc5Li5mN2VlOTBjIDEwMDY0NAotLS0gYS9JbmNsdWRlL3NsaWNlb2JqZWN0LmgKKysrIGIvSW5jbHVkZS9zbGljZW9iamVjdC5oCkBAIC0zNCw2ICszNCw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QqIHN0ZXApOwogI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlTbGljZV9Gcm9tSW5kaWNlcyhQeV9zc2l6ZV90IHN0YXJ0LCBQeV9zc2l6ZV90IHN0b3ApOworUHlBUElfRlVOQyhpbnQpIF9QeVNsaWNlX0dldExvbmdJbmRpY2VzKFB5U2xpY2VPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqKnN0YXJ0X3B0ciwgUHlPYmplY3QgKipzdG9wX3B0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICoqc3RlcF9wdHIpOwogI2VuZGlmCiBQeUFQSV9GVU5DKGludCkgUHlTbGljZV9HZXRJbmRpY2VzKFB5T2JqZWN0ICpyLCBQeV9zc2l6ZV90IGxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90ICpzdGFydCwgUHlfc3NpemVfdCAqc3RvcCwgUHlfc3NpemVfdCAqc3RlcCk7CmRpZmYgLS1naXQgYS9JbmNsdWRlL3N5bXRhYmxlLmggYi9JbmNsdWRlL3N5bXRhYmxlLmgKaW5kZXggNmVkM2EyYi4uNDQ1MzVkMCAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zeW10YWJsZS5oCisrKyBiL0luY2x1ZGUvc3ltdGFibGUuaApAQCAtNDEsNiArNDEsNyBAQAogICAgIFB5T2JqZWN0ICpzdGVfbmFtZTsgICAgICAvKiBzdHJpbmc6IG5hbWUgb2YgY3VycmVudCBibG9jayAqLwogICAgIFB5T2JqZWN0ICpzdGVfdmFybmFtZXM7ICAvKiBsaXN0IG9mIGZ1bmN0aW9uIHBhcmFtZXRlcnMgKi8KICAgICBQeU9iamVjdCAqc3RlX2NoaWxkcmVuOyAgLyogbGlzdCBvZiBjaGlsZCBibG9ja3MgKi8KKyAgICBQeU9iamVjdCAqc3RlX2RpcmVjdGl2ZXM7LyogbG9jYXRpb25zIG9mIGdsb2JhbCBhbmQgbm9ubG9jYWwgc3RhdGVtZW50cyAqLwogICAgIF9QeV9ibG9ja190eSBzdGVfdHlwZTsgICAvKiBtb2R1bGUsIGNsYXNzLCBvciBmdW5jdGlvbiAqLwogICAgIGludCBzdGVfdW5vcHRpbWl6ZWQ7ICAgICAvKiBmYWxzZSBpZiBuYW1lc3BhY2UgaXMgb3B0aW1pemVkICovCiAgICAgaW50IHN0ZV9uZXN0ZWQ7ICAgICAgLyogdHJ1ZSBpZiBibG9jayBpcyBuZXN0ZWQgKi8KQEAgLTUyLDYgKzUzLDkgQEAKICAgICB1bnNpZ25lZCBzdGVfdmFya2V5d29yZHMgOiAxOyAvKiB0cnVlIGlmIGJsb2NrIGhhcyB2YXJrZXl3b3JkcyAqLwogICAgIHVuc2lnbmVkIHN0ZV9yZXR1cm5zX3ZhbHVlIDogMTsgIC8qIHRydWUgaWYgbmFtZXNwYWNlIHVzZXMgcmV0dXJuIHdpdGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBhcmd1bWVudCAqLworICAgIHVuc2lnbmVkIHN0ZV9uZWVkc19jbGFzc19jbG9zdXJlIDogMTsgLyogZm9yIGNsYXNzIHNjb3BlcywgdHJ1ZSBpZiBhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zdXJlIG92ZXIgX19jbGFzc19fCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGQgYmUgY3JlYXRlZCAqLwogICAgIGludCBzdGVfbGluZW5vOyAgICAgICAgICAvKiBmaXJzdCBsaW5lIG9mIGJsb2NrICovCiAgICAgaW50IHN0ZV9jb2xfb2Zmc2V0OyAgICAgIC8qIG9mZnNldCBvZiBmaXJzdCBsaW5lIG9mIGJsb2NrICovCiAgICAgaW50IHN0ZV9vcHRfbGluZW5vOyAgICAgIC8qIGxpbmVubyBvZiBsYXN0IGV4ZWMgb3IgaW1wb3J0ICogKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvdG9rZW4uaCBiL0luY2x1ZGUvdG9rZW4uaAppbmRleCBmN2Y2NTA0Li45MDUwMjJiIDEwMDY0NAotLS0gYS9JbmNsdWRlL3Rva2VuLmgKKysrIGIvSW5jbHVkZS90b2tlbi5oCkBAIC03NSw3ICs3NSw3IEBACiAjZGVmaW5lIElTRU9GKHgpCQkoKHgpID09IEVORE1BUktFUikKIAogCi1QeUFQSV9EQVRBKGNoYXIgKikgX1B5UGFyc2VyX1Rva2VuTmFtZXNbXTsgLyogVG9rZW4gbmFtZXMgKi8KK1B5QVBJX0RBVEEoY29uc3QgY2hhciAqKSBfUHlQYXJzZXJfVG9rZW5OYW1lc1tdOyAvKiBUb2tlbiBuYW1lcyAqLwogUHlBUElfRlVOQyhpbnQpIFB5VG9rZW5fT25lQ2hhcihpbnQpOwogUHlBUElfRlVOQyhpbnQpIFB5VG9rZW5fVHdvQ2hhcnMoaW50LCBpbnQpOwogUHlBUElfRlVOQyhpbnQpIFB5VG9rZW5fVGhyZWVDaGFycyhpbnQsIGludCwgaW50KTsKZGlmZiAtLWdpdCBhL0luY2x1ZGUvdW5pY29kZW9iamVjdC5oIGIvSW5jbHVkZS91bmljb2Rlb2JqZWN0LmgKaW5kZXggYThmNWI1ZC4uMmFiYzliNCAxMDA2NDQKLS0tIGEvSW5jbHVkZS91bmljb2Rlb2JqZWN0LmgKKysrIGIvSW5jbHVkZS91bmljb2Rlb2JqZWN0LmgKQEAgLTE4MCw5ICsxODAsOSBAQAogICAgIH0gd2hpbGUgKDApCiAKIC8qIG1hY3JvcyB0byB3b3JrIHdpdGggc3Vycm9nYXRlcyAqLwotI2RlZmluZSBQeV9VTklDT0RFX0lTX1NVUlJPR0FURShjaCkgKDB4RDgwMCA8PSBjaCAmJiBjaCA8PSAweERGRkYpCi0jZGVmaW5lIFB5X1VOSUNPREVfSVNfSElHSF9TVVJST0dBVEUoY2gpICgweEQ4MDAgPD0gY2ggJiYgY2ggPD0gMHhEQkZGKQotI2RlZmluZSBQeV9VTklDT0RFX0lTX0xPV19TVVJST0dBVEUoY2gpICgweERDMDAgPD0gY2ggJiYgY2ggPD0gMHhERkZGKQorI2RlZmluZSBQeV9VTklDT0RFX0lTX1NVUlJPR0FURShjaCkgKDB4RDgwMCA8PSAoY2gpICYmIChjaCkgPD0gMHhERkZGKQorI2RlZmluZSBQeV9VTklDT0RFX0lTX0hJR0hfU1VSUk9HQVRFKGNoKSAoMHhEODAwIDw9IChjaCkgJiYgKGNoKSA8PSAweERCRkYpCisjZGVmaW5lIFB5X1VOSUNPREVfSVNfTE9XX1NVUlJPR0FURShjaCkgKDB4REMwMCA8PSAoY2gpICYmIChjaCkgPD0gMHhERkZGKQogLyogSm9pbiB0d28gc3Vycm9nYXRlIGNoYXJhY3RlcnMgYW5kIHJldHVybiBhIHNpbmdsZSBQeV9VQ1M0IHZhbHVlLiAqLwogI2RlZmluZSBQeV9VTklDT0RFX0pPSU5fU1VSUk9HQVRFUyhoaWdoLCBsb3cpICBcCiAgICAgKCgoKChQeV9VQ1M0KShoaWdoKSAmIDB4MDNGRikgPDwgMTApIHwgICAgICBcCkBAIC04OTgsMjIgKzg5OCwyOCBAQAogICAgIFB5X1VDUzQgbWF4Y2hhcjsKICAgICBQeV9zc2l6ZV90IHNpemU7CiAgICAgUHlfc3NpemVfdCBwb3M7Ci0gICAgLyogbWluaW11bSBsZW5ndGggb2YgdGhlIGJ1ZmZlciB3aGVuIG92ZXJhbGxvY2F0aW9uIGlzIGVuYWJsZWQsCi0gICAgICAgc2VlIF9QeVVuaWNvZGVXcml0ZXJfSW5pdCgpICovCisKKyAgICAvKiBtaW5pbXVtIG51bWJlciBvZiBhbGxvY2F0ZWQgY2hhcmFjdGVycyAoZGVmYXVsdDogMCkgKi8KICAgICBQeV9zc2l6ZV90IG1pbl9sZW5ndGg7CisKKyAgICAvKiBtaW5pbXVtIGNoYXJhY3RlciAoZGVmYXVsdDogMTI3LCBBU0NJSSkgKi8KKyAgICBQeV9VQ1M0IG1pbl9jaGFyOworCisgICAgLyogSWYgbm9uLXplcm8sIG92ZXJhbGxvY2F0ZSB0aGUgYnVmZmVyIGJ5IDI1JSAoZGVmYXVsdDogMCkuICovCiAgICAgdW5zaWduZWQgY2hhciBvdmVyYWxsb2NhdGU7CisKICAgICAvKiBJZiByZWFkb25seSBpcyAxLCBidWZmZXIgaXMgYSBzaGFyZWQgc3RyaW5nIChjYW5ub3QgYmUgbW9kaWZpZWQpCiAgICAgICAgYW5kIHNpemUgaXMgc2V0IHRvIDAuICovCiAgICAgdW5zaWduZWQgY2hhciByZWFkb25seTsKIH0gX1B5VW5pY29kZVdyaXRlciA7CiAKIC8qIEluaXRpYWxpemUgYSBVbmljb2RlIHdyaXRlci4KLQotICAgSWYgbWluX2xlbmd0aCBpcyBncmVhdGVyIHRoYW4gemVybywgX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKCkKLSAgIG92ZXJhbGxvY2F0ZXMgdGhlIGJ1ZmZlciBhbmQgbWluX2xlbmd0aCBpcyB0aGUgbWluaW11bSBsZW5ndGggaW4gY2hhcmFjdGVycwotICAgb2YgdGhlIGJ1ZmZlci4gKi8KKyAqCisgKiBCeSBkZWZhdWx0LCB0aGUgbWluaW11bSBidWZmZXIgc2l6ZSBpcyAwIGNoYXJhY3RlciBhbmQgb3ZlcmFsbG9jYXRpb24gaXMKKyAqIGRpc2FibGVkLiBTZXQgbWluX2xlbmd0aCwgbWluX2NoYXIgYW5kIG92ZXJhbGxvY2F0ZSBhdHRyaWJ1dGVzIHRvIGNvbnRyb2wKKyAqIHRoZSBhbGxvY2F0aW9uIG9mIHRoZSBidWZmZXIuICovCiBQeUFQSV9GVU5DKHZvaWQpCi1fUHlVbmljb2RlV3JpdGVyX0luaXQoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyLCBQeV9zc2l6ZV90IG1pbl9sZW5ndGgpOworX1B5VW5pY29kZVdyaXRlcl9Jbml0KF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlcik7CiAKIC8qIFByZXBhcmUgdGhlIGJ1ZmZlciB0byB3cml0ZSAnbGVuZ3RoJyBjaGFyYWN0ZXJzCiAgICB3aXRoIHRoZSBzcGVjaWZpZWQgbWF4aW11bSBjaGFyYWN0ZXIuCkBAIC05MzMsMTIgKzkzOSw0NCBAQAogX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlSW50ZXJuYWwoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW5ndGgsIFB5X1VDUzQgbWF4Y2hhcik7CiAKKy8qIEFwcGVuZCBhIFVuaWNvZGUgY2hhcmFjdGVyLgorICAgUmV0dXJuIDAgb24gc3VjY2VzcywgcmFpc2UgYW4gZXhjZXB0aW9uIGFuZCByZXR1cm4gLTEgb24gZXJyb3IuICovCiBQeUFQSV9GVU5DKGludCkKLV9QeVVuaWNvZGVXcml0ZXJfV3JpdGVTdHIoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyLCBQeU9iamVjdCAqc3RyKTsKK19QeVVuaWNvZGVXcml0ZXJfV3JpdGVDaGFyKF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwKKyAgICBQeV9VQ1M0IGNoCisgICAgKTsKIAorLyogQXBwZW5kIGEgVW5pY29kZSBzdHJpbmcuCisgICBSZXR1cm4gMCBvbiBzdWNjZXNzLCByYWlzZSBhbiBleGNlcHRpb24gYW5kIHJldHVybiAtMSBvbiBlcnJvci4gKi8KK1B5QVBJX0ZVTkMoaW50KQorX1B5VW5pY29kZVdyaXRlcl9Xcml0ZVN0cihfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIsCisgICAgUHlPYmplY3QgKnN0ciAgICAgICAgICAgICAgIC8qIFVuaWNvZGUgc3RyaW5nICovCisgICAgKTsKKworLyogQXBwZW5kIGEgc3Vic3RyaW5nIG9mIGEgVW5pY29kZSBzdHJpbmcuCisgICBSZXR1cm4gMCBvbiBzdWNjZXNzLCByYWlzZSBhbiBleGNlcHRpb24gYW5kIHJldHVybiAtMSBvbiBlcnJvci4gKi8KK1B5QVBJX0ZVTkMoaW50KQorX1B5VW5pY29kZVdyaXRlcl9Xcml0ZVN1YnN0cmluZyhfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIsCisgICAgUHlPYmplY3QgKnN0ciwgICAgICAgICAgICAgIC8qIFVuaWNvZGUgc3RyaW5nICovCisgICAgUHlfc3NpemVfdCBzdGFydCwKKyAgICBQeV9zc2l6ZV90IGVuZAorICAgICk7CisKKy8qIEFwcGVuZCBhIGxhdGluMS1lbmNvZGVkIGJ5dGUgc3RyaW5nLgorICAgUmV0dXJuIDAgb24gc3VjY2VzcywgcmFpc2UgYW4gZXhjZXB0aW9uIGFuZCByZXR1cm4gLTEgb24gZXJyb3IuICovCitQeUFQSV9GVU5DKGludCkKK19QeVVuaWNvZGVXcml0ZXJfV3JpdGVDc3RyKF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwKKyAgICBjb25zdCBjaGFyICpzdHIsICAgICAgICAgICAgLyogbGF0aW4xLWVuY29kZWQgYnl0ZSBzdHJpbmcgKi8KKyAgICBQeV9zc2l6ZV90IGxlbiAgICAgICAgICAgICAgLyogbGVuZ3RoIGluIGJ5dGVzICovCisgICAgKTsKKworLyogR2V0IHRoZSB2YWx1ZSBvZiB0aGUgd3JpdGVyIGFzIGFuIFVuaWNvZGUgc3RyaW5nLiBDbGVhciB0aGUKKyAgIGJ1ZmZlciBvZiB0aGUgd3JpdGVyLiBSYWlzZSBhbiBleGNlcHRpb24gYW5kIHJldHVybiBOVUxMCisgICBvbiBlcnJvci4gKi8KIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikKIF9QeVVuaWNvZGVXcml0ZXJfRmluaXNoKF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlcik7CiAKKy8qIERlYWxsb2NhdGUgbWVtb3J5IG9mIGEgd3JpdGVyIChjbGVhciBpdHMgaW50ZXJuYWwgYnVmZmVyKS4gKi8KIFB5QVBJX0ZVTkModm9pZCkKIF9QeVVuaWNvZGVXcml0ZXJfRGVhbGxvYyhfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIpOwogI2VuZGlmCkBAIC0xNzI2LDcgKzE3NjQsNyBAQAogLyogRW5jb2RlIGEgVW5pY29kZSBvYmplY3QgdG8gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nLiBUaGUgZW5jb2RlciBpcwogICAgc3RyaWN0IGlzICpzdXJyb2dhdGVlc2NhcGUqIGlzIGVxdWFsIHRvIHplcm8sIG90aGVyd2lzZSB0aGUKICAgICJzdXJyb2dhdGVlc2NhcGUiIGVycm9yIGhhbmRsZXIgaXMgdXNlZC4gUmV0dXJuIGEgYnl0ZXMgb2JqZWN0LiBUaGUgc3RyaW5nCi0gICBjYW5ub3QgY29udGFpbiBlbWJlZGRlZCBudWxsIGNoYXJhY3RlcnMuLiAqLworICAgY2Fubm90IGNvbnRhaW4gZW1iZWRkZWQgbnVsbCBjaGFyYWN0ZXJzLiAqLwogCiBQeUFQSV9GVU5DKFB5T2JqZWN0KikgUHlVbmljb2RlX0VuY29kZUxvY2FsZSgKICAgICBQeU9iamVjdCAqdW5pY29kZSwKQEAgLTE5NTAsNyArMTk4OCw4IEBACiAgICAgKTsKIAogLyogQ29tcGFyZSB0d28gc3RyaW5ncyBhbmQgcmV0dXJuIC0xLCAwLCAxIGZvciBsZXNzIHRoYW4sIGVxdWFsLAotICAgZ3JlYXRlciB0aGFuIHJlc3AuICovCisgICBncmVhdGVyIHRoYW4gcmVzcC4KKyAgIFJhaXNlIGFuIGV4Y2VwdGlvbiBhbmQgcmV0dXJuIC0xIG9uIGVycm9yLiAqLwogCiBQeUFQSV9GVU5DKGludCkgUHlVbmljb2RlX0NvbXBhcmUoCiAgICAgUHlPYmplY3QgKmxlZnQsICAgICAgICAgICAgIC8qIExlZnQgc3RyaW5nICovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3dhcm5pbmdzLmggYi9JbmNsdWRlL3dhcm5pbmdzLmgKaW5kZXggYjdkYjY4MS4uNWE3ZGZiMSAxMDA2NDQKLS0tIGEvSW5jbHVkZS93YXJuaW5ncy5oCisrKyBiL0luY2x1ZGUvd2FybmluZ3MuaApAQCAtMjUsNiArMjUsMTIgQEAKICAgICBjb25zdCBjaGFyICptb2R1bGUsICAgICAgICAgLyogVVRGLTggZW5jb2RlZCBzdHJpbmcgKi8KICAgICBQeU9iamVjdCAqcmVnaXN0cnkpOwogCitQeUFQSV9GVU5DKGludCkKK1B5RXJyX1dhcm5FeHBsaWNpdEZvcm1hdChQeU9iamVjdCAqY2F0ZWdvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBsaW5lbm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbW9kdWxlLCBQeU9iamVjdCAqcmVnaXN0cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pOworCiAvKiBERVBSRUNBVEVEOiBVc2UgUHlFcnJfV2FybkV4KCkgaW5zdGVhZC4gKi8KICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKICNkZWZpbmUgUHlFcnJfV2FybihjYXRlZ29yeSwgbXNnKSBQeUVycl9XYXJuRXgoY2F0ZWdvcnksIG1zZywgMSkKZGlmZiAtLWdpdCBhL0xJQ0VOU0UgYi9MSUNFTlNFCmluZGV4IDZjYmQ5NjMuLmM5Y2I3MmMgMTAwNjQ0Ci0tLSBhL0xJQ0VOU0UKKysrIGIvTElDRU5TRQpAQCAtNzcsNiArNzcsNyBAQAogICAgIDMuMi40ICAgICAgICAgICAzLjIuMyAgICAgICAyMDEzICAgICAgICBQU0YgICAgICAgICB5ZXMKICAgICAzLjMuMCAgICAgICAgICAgMy4yICAgICAgICAgMjAxMiAgICAgICAgUFNGICAgICAgICAgeWVzCiAgICAgMy4zLjEgICAgICAgICAgIDMuMy4wICAgICAgIDIwMTMgICAgICAgIFBTRiAgICAgICAgIHllcworICAgIDMuNC4wICAgICAgICAgICAzLjMuMCAgICAgICAyMDE0ICAgICAgICBQU0YgICAgICAgICB5ZXMKIAogRm9vdG5vdGVzOgogCmRpZmYgLS1naXQgYS9MaWIvX29zeF9zdXBwb3J0LnB5IGIvTGliL19vc3hfc3VwcG9ydC5weQppbmRleCBiM2FhZDU2Li44NDEyZTQ1IDEwMDY0NAotLS0gYS9MaWIvX29zeF9zdXBwb3J0LnB5CisrKyBiL0xpYi9fb3N4X3N1cHBvcnQucHkKQEAgLTM4LDcgKzM4LDcgQEAKICAgICBwYXRocyA9IHBhdGguc3BsaXQob3MucGF0aHNlcCkKICAgICBiYXNlLCBleHQgPSBvcy5wYXRoLnNwbGl0ZXh0KGV4ZWN1dGFibGUpCiAKLSAgICBpZiAoc3lzLnBsYXRmb3JtID09ICd3aW4zMicgb3Igb3MubmFtZSA9PSAnb3MyJykgYW5kIChleHQgIT0gJy5leGUnKToKKyAgICBpZiAoc3lzLnBsYXRmb3JtID09ICd3aW4zMicpIGFuZCAoZXh0ICE9ICcuZXhlJyk6CiAgICAgICAgIGV4ZWN1dGFibGUgPSBleGVjdXRhYmxlICsgJy5leGUnCiAKICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoZXhlY3V0YWJsZSk6CkBAIC05NCw3ICs5NCw3IEBACiAgICAgICAgIF9TWVNURU1fVkVSU0lPTiA9ICcnCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGYgPSBvcGVuKCcvU3lzdGVtL0xpYnJhcnkvQ29yZVNlcnZpY2VzL1N5c3RlbVZlcnNpb24ucGxpc3QnKQotICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAjIFdlJ3JlIG9uIGEgcGxhaW4gZGFyd2luIGJveCwgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0CiAgICAgICAgICAgICAjIGJlaGF2aW91ci4KICAgICAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xpYi9fcHlpby5weSBiL0xpYi9fcHlpby5weQppbmRleCBhYWI2MGRiLi4xMzdlYmNiIDEwMDY0NAotLS0gYS9MaWIvX3B5aW8ucHkKKysrIGIvTGliL19weWlvLnB5CkBAIC0zNCw3ICszNCw3IEBACiBkZWYgb3BlbihmaWxlLCBtb2RlPSJyIiwgYnVmZmVyaW5nPS0xLCBlbmNvZGluZz1Ob25lLCBlcnJvcnM9Tm9uZSwKICAgICAgICAgIG5ld2xpbmU9Tm9uZSwgY2xvc2VmZD1UcnVlLCBvcGVuZXI9Tm9uZSk6CiAKLSAgICByIiIiT3BlbiBmaWxlIGFuZCByZXR1cm4gYSBzdHJlYW0uICBSYWlzZSBJT0Vycm9yIHVwb24gZmFpbHVyZS4KKyAgICByIiIiT3BlbiBmaWxlIGFuZCByZXR1cm4gYSBzdHJlYW0uICBSYWlzZSBPU0Vycm9yIHVwb24gZmFpbHVyZS4KIAogICAgIGZpbGUgaXMgZWl0aGVyIGEgdGV4dCBvciBieXRlIHN0cmluZyBnaXZpbmcgdGhlIG5hbWUgKGFuZCB0aGUgcGF0aAogICAgIGlmIHRoZSBmaWxlIGlzbid0IGluIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5KSBvZiB0aGUgZmlsZSB0bwpAQCAtMjAwLDcgKzIwMCw3IEBACiAgICAgICAgIGJ1ZmZlcmluZyA9IERFRkFVTFRfQlVGRkVSX1NJWkUKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgYnMgPSBvcy5mc3RhdChyYXcuZmlsZW5vKCkpLnN0X2Jsa3NpemUKLSAgICAgICAgZXhjZXB0IChvcy5lcnJvciwgQXR0cmlidXRlRXJyb3IpOgorICAgICAgICBleGNlcHQgKE9TRXJyb3IsIEF0dHJpYnV0ZUVycm9yKToKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGlmIGJzID4gMToKQEAgLTI1NCw3ICsyNTQsNyBAQAogdHJ5OgogICAgIFVuc3VwcG9ydGVkT3BlcmF0aW9uID0gaW8uVW5zdXBwb3J0ZWRPcGVyYXRpb24KIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICBjbGFzcyBVbnN1cHBvcnRlZE9wZXJhdGlvbihWYWx1ZUVycm9yLCBJT0Vycm9yKToKKyAgICBjbGFzcyBVbnN1cHBvcnRlZE9wZXJhdGlvbihWYWx1ZUVycm9yLCBPU0Vycm9yKToKICAgICAgICAgcGFzcwogCiAKQEAgLTI3OCw3ICsyNzgsNyBAQAogICAgIHJlYWRpbnRvKSBuZWVkZWQuIFRleHQgSS9PIGNsYXNzZXMgd29yayB3aXRoIHN0ciBkYXRhLgogCiAgICAgTm90ZSB0aGF0IGNhbGxpbmcgYW55IG1ldGhvZCAoZXZlbiBpbnF1aXJpZXMpIG9uIGEgY2xvc2VkIHN0cmVhbSBpcwotICAgIHVuZGVmaW5lZC4gSW1wbGVtZW50YXRpb25zIG1heSByYWlzZSBJT0Vycm9yIGluIHRoaXMgY2FzZS4KKyAgICB1bmRlZmluZWQuIEltcGxlbWVudGF0aW9ucyBtYXkgcmFpc2UgT1NFcnJvciBpbiB0aGlzIGNhc2UuCiAKICAgICBJT0Jhc2UgKGFuZCBpdHMgc3ViY2xhc3Nlcykgc3VwcG9ydCB0aGUgaXRlcmF0b3IgcHJvdG9jb2wsIG1lYW5pbmcKICAgICB0aGF0IGFuIElPQmFzZSBvYmplY3QgY2FuIGJlIGl0ZXJhdGVkIG92ZXIgeWllbGRpbmcgdGhlIGxpbmVzIGluIGEKQEAgLTI5NCw3ICsyOTQsNyBAQAogICAgICMjIyBJbnRlcm5hbCAjIyMKIAogICAgIGRlZiBfdW5zdXBwb3J0ZWQoc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIkludGVybmFsOiByYWlzZSBhbiBJT0Vycm9yIGV4Y2VwdGlvbiBmb3IgdW5zdXBwb3J0ZWQgb3BlcmF0aW9ucy4iIiIKKyAgICAgICAgIiIiSW50ZXJuYWw6IHJhaXNlIGFuIE9TRXJyb3IgZXhjZXB0aW9uIGZvciB1bnN1cHBvcnRlZCBvcGVyYXRpb25zLiIiIgogICAgICAgICByYWlzZSBVbnN1cHBvcnRlZE9wZXJhdGlvbigiJXMuJXMoKSBub3Qgc3VwcG9ydGVkIiAlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgbmFtZSkpCiAKQEAgLTQ0MSw3ICs0NDEsNyBAQAogICAgIGRlZiBmaWxlbm8oc2VsZik6CiAgICAgICAgICIiIlJldHVybnMgdW5kZXJseWluZyBmaWxlIGRlc2NyaXB0b3IgKGFuIGludCkgaWYgb25lIGV4aXN0cy4KIAotICAgICAgICBBbiBJT0Vycm9yIGlzIHJhaXNlZCBpZiB0aGUgSU8gb2JqZWN0IGRvZXMgbm90IHVzZSBhIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgICAgQW4gT1NFcnJvciBpcyByYWlzZWQgaWYgdGhlIElPIG9iamVjdCBkb2VzIG5vdCB1c2UgYSBmaWxlIGRlc2NyaXB0b3IuCiAgICAgICAgICIiIgogICAgICAgICBzZWxmLl91bnN1cHBvcnRlZCgiZmlsZW5vIikKIApAQCAtNjk5LDEzICs2OTksMTMgQEAKICAgICBkZWYgc2VlayhzZWxmLCBwb3MsIHdoZW5jZT0wKToKICAgICAgICAgbmV3X3Bvc2l0aW9uID0gc2VsZi5yYXcuc2Vlayhwb3MsIHdoZW5jZSkKICAgICAgICAgaWYgbmV3X3Bvc2l0aW9uIDwgMDoKLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoInNlZWsoKSByZXR1cm5lZCBhbiBpbnZhbGlkIHBvc2l0aW9uIikKKyAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoInNlZWsoKSByZXR1cm5lZCBhbiBpbnZhbGlkIHBvc2l0aW9uIikKICAgICAgICAgcmV0dXJuIG5ld19wb3NpdGlvbgogCiAgICAgZGVmIHRlbGwoc2VsZik6CiAgICAgICAgIHBvcyA9IHNlbGYucmF3LnRlbGwoKQogICAgICAgICBpZiBwb3MgPCAwOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigidGVsbCgpIHJldHVybmVkIGFuIGludmFsaWQgcG9zaXRpb24iKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigidGVsbCgpIHJldHVybmVkIGFuIGludmFsaWQgcG9zaXRpb24iKQogICAgICAgICByZXR1cm4gcG9zCiAKICAgICBkZWYgdHJ1bmNhdGUoc2VsZiwgcG9zPU5vbmUpOgpAQCAtOTI3LDcgKzkyNyw3IEBACiAgICAgICAgICIiIkNyZWF0ZSBhIG5ldyBidWZmZXJlZCByZWFkZXIgdXNpbmcgdGhlIGdpdmVuIHJlYWRhYmxlIHJhdyBJTyBvYmplY3QuCiAgICAgICAgICIiIgogICAgICAgICBpZiBub3QgcmF3LnJlYWRhYmxlKCk6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKCcicmF3IiBhcmd1bWVudCBtdXN0IGJlIHJlYWRhYmxlLicpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCcicmF3IiBhcmd1bWVudCBtdXN0IGJlIHJlYWRhYmxlLicpCiAKICAgICAgICAgX0J1ZmZlcmVkSU9NaXhpbi5fX2luaXRfXyhzZWxmLCByYXcpCiAgICAgICAgIGlmIGJ1ZmZlcl9zaXplIDw9IDA6CkBAIC0xMDc0LDcgKzEwNzQsNyBAQAogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJhdywgYnVmZmVyX3NpemU9REVGQVVMVF9CVUZGRVJfU0laRSk6CiAgICAgICAgIGlmIG5vdCByYXcud3JpdGFibGUoKToKLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoJyJyYXciIGFyZ3VtZW50IG11c3QgYmUgd3JpdGFibGUuJykKKyAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoJyJyYXciIGFyZ3VtZW50IG11c3QgYmUgd3JpdGFibGUuJykKIAogICAgICAgICBfQnVmZmVyZWRJT01peGluLl9faW5pdF9fKHNlbGYsIHJhdykKICAgICAgICAgaWYgYnVmZmVyX3NpemUgPD0gMDoKQEAgLTExMzgsNyArMTEzOCw3IEBACiAgICAgICAgICAgICAgICAgICAgIGVycm5vLkVBR0FJTiwKICAgICAgICAgICAgICAgICAgICAgIndyaXRlIGNvdWxkIG5vdCBjb21wbGV0ZSB3aXRob3V0IGJsb2NraW5nIiwgMCkKICAgICAgICAgICAgIGlmIG4gPiBsZW4oc2VsZi5fd3JpdGVfYnVmKSBvciBuIDwgMDoKLSAgICAgICAgICAgICAgICByYWlzZSBJT0Vycm9yKCJ3cml0ZSgpIHJldHVybmVkIGluY29ycmVjdCBudW1iZXIgb2YgYnl0ZXMiKQorICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoIndyaXRlKCkgcmV0dXJuZWQgaW5jb3JyZWN0IG51bWJlciBvZiBieXRlcyIpCiAgICAgICAgICAgICBkZWwgc2VsZi5fd3JpdGVfYnVmWzpuXQogCiAgICAgZGVmIHRlbGwoc2VsZik6CkBAIC0xMTc0LDEwICsxMTc0LDEwIEBACiAgICAgICAgIFRoZSBhcmd1bWVudHMgYXJlIHR3byBSYXdJTyBpbnN0YW5jZXMuCiAgICAgICAgICIiIgogICAgICAgICBpZiBub3QgcmVhZGVyLnJlYWRhYmxlKCk6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKCcicmVhZGVyIiBhcmd1bWVudCBtdXN0IGJlIHJlYWRhYmxlLicpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCcicmVhZGVyIiBhcmd1bWVudCBtdXN0IGJlIHJlYWRhYmxlLicpCiAKICAgICAgICAgaWYgbm90IHdyaXRlci53cml0YWJsZSgpOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcignIndyaXRlciIgYXJndW1lbnQgbXVzdCBiZSB3cml0YWJsZS4nKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcignIndyaXRlciIgYXJndW1lbnQgbXVzdCBiZSB3cml0YWJsZS4nKQogCiAgICAgICAgIHNlbGYucmVhZGVyID0gQnVmZmVyZWRSZWFkZXIocmVhZGVyLCBidWZmZXJfc2l6ZSkKICAgICAgICAgc2VsZi53cml0ZXIgPSBCdWZmZXJlZFdyaXRlcih3cml0ZXIsIGJ1ZmZlcl9zaXplKQpAQCAtMTI0OCw3ICsxMjQ4LDcgQEAKICAgICAgICAgd2l0aCBzZWxmLl9yZWFkX2xvY2s6CiAgICAgICAgICAgICBzZWxmLl9yZXNldF9yZWFkX2J1ZigpCiAgICAgICAgIGlmIHBvcyA8IDA6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKCJzZWVrKCkgcmV0dXJuZWQgaW52YWxpZCBwb3NpdGlvbiIpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCJzZWVrKCkgcmV0dXJuZWQgaW52YWxpZCBwb3NpdGlvbiIpCiAgICAgICAgIHJldHVybiBwb3MKIAogICAgIGRlZiB0ZWxsKHNlbGYpOgpAQCAtMTcyNyw3ICsxNzI3LDcgQEAKICAgICAgICAgaWYgbm90IHNlbGYuX3NlZWthYmxlOgogICAgICAgICAgICAgcmFpc2UgVW5zdXBwb3J0ZWRPcGVyYXRpb24oInVuZGVybHlpbmcgc3RyZWFtIGlzIG5vdCBzZWVrYWJsZSIpCiAgICAgICAgIGlmIG5vdCBzZWxmLl90ZWxsaW5nOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigidGVsbGluZyBwb3NpdGlvbiBkaXNhYmxlZCBieSBuZXh0KCkgY2FsbCIpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCJ0ZWxsaW5nIHBvc2l0aW9uIGRpc2FibGVkIGJ5IG5leHQoKSBjYWxsIikKICAgICAgICAgc2VsZi5mbHVzaCgpCiAgICAgICAgIHBvc2l0aW9uID0gc2VsZi5idWZmZXIudGVsbCgpCiAgICAgICAgIGRlY29kZXIgPSBzZWxmLl9kZWNvZGVyCkBAIC0xODE0LDcgKzE4MTQsNyBAQAogICAgICAgICAgICAgICAgIGNoYXJzX2RlY29kZWQgKz0gbGVuKGRlY29kZXIuZGVjb2RlKGInJywgZmluYWw9VHJ1ZSkpCiAgICAgICAgICAgICAgICAgbmVlZF9lb2YgPSAxCiAgICAgICAgICAgICAgICAgaWYgY2hhcnNfZGVjb2RlZCA8IGNoYXJzX3RvX3NraXA6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoImNhbid0IHJlY29uc3RydWN0IGxvZ2ljYWwgZmlsZSBwb3NpdGlvbiIpCisgICAgICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoImNhbid0IHJlY29uc3RydWN0IGxvZ2ljYWwgZmlsZSBwb3NpdGlvbiIpCiAKICAgICAgICAgICAgICMgVGhlIHJldHVybmVkIGNvb2tpZSBjb3JyZXNwb25kcyB0byB0aGUgbGFzdCBzYWZlIHN0YXJ0IHBvaW50LgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhY2tfY29va2llKApAQCAtMTg5MSw3ICsxODkxLDcgQEAKIAogICAgICAgICAgICAgIyBTa2lwIGNoYXJzX3RvX3NraXAgb2YgdGhlIGRlY29kZWQgY2hhcmFjdGVycy4KICAgICAgICAgICAgIGlmIGxlbihzZWxmLl9kZWNvZGVkX2NoYXJzKSA8IGNoYXJzX3RvX3NraXA6Ci0gICAgICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigiY2FuJ3QgcmVzdG9yZSBsb2dpY2FsIGZpbGUgcG9zaXRpb24iKQorICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoImNhbid0IHJlc3RvcmUgbG9naWNhbCBmaWxlIHBvc2l0aW9uIikKICAgICAgICAgICAgIHNlbGYuX2RlY29kZWRfY2hhcnNfdXNlZCA9IGNoYXJzX3RvX3NraXAKIAogICAgICAgICAjIEZpbmFsbHksIHJlc2V0IHRoZSBlbmNvZGVyIChtZXJlbHkgdXNlZnVsIGZvciBwcm9wZXIgQk9NIGhhbmRsaW5nKQpAQCAtMjA1NCw3ICsyMDU0LDYgQEAKICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGluaXRpYWxfdmFsdWUsIHN0cik6CiAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJpbml0aWFsX3ZhbHVlIG11c3QgYmUgc3RyIG9yIE5vbmUsIG5vdCB7MH0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mb3JtYXQodHlwZShpbml0aWFsX3ZhbHVlKS5fX25hbWVfXykpCi0gICAgICAgICAgICAgICAgaW5pdGlhbF92YWx1ZSA9IHN0cihpbml0aWFsX3ZhbHVlKQogICAgICAgICAgICAgc2VsZi53cml0ZShpbml0aWFsX3ZhbHVlKQogICAgICAgICAgICAgc2VsZi5zZWVrKDApCiAKZGlmZiAtLWdpdCBhL0xpYi9fc3RycHRpbWUucHkgYi9MaWIvX3N0cnB0aW1lLnB5CmluZGV4IGIwODliMDguLjc1MjA5MTkgMTAwNjQ0Ci0tLSBhL0xpYi9fc3RycHRpbWUucHkKKysrIGIvTGliL19zdHJwdGltZS5weQpAQCAtMjEsNyArMjEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgIHRpbWV6b25lIGFzIGRhdGV0aW1lX3RpbWV6b25lKQogdHJ5OgogICAgIGZyb20gX3RocmVhZCBpbXBvcnQgYWxsb2NhdGVfbG9jayBhcyBfdGhyZWFkX2FsbG9jYXRlX2xvY2sKLWV4Y2VwdDoKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKICAgICBmcm9tIF9kdW1teV90aHJlYWQgaW1wb3J0IGFsbG9jYXRlX2xvY2sgYXMgX3RocmVhZF9hbGxvY2F0ZV9sb2NrCiAKIF9fYWxsX18gPSBbXQpkaWZmIC0tZ2l0IGEvTGliL2FiYy5weSBiL0xpYi9hYmMucHkKaW5kZXggMDk3NzhlOC4uMjY0YzYwYyAxMDA2NDQKLS0tIGEvTGliL2FiYy5weQorKysgYi9MaWIvYWJjLnB5CkBAIC01LDYgKzUsNyBAQAogCiBmcm9tIF93ZWFrcmVmc2V0IGltcG9ydCBXZWFrU2V0CiAKKwogZGVmIGFic3RyYWN0bWV0aG9kKGZ1bmNvYmopOgogICAgICIiIkEgZGVjb3JhdG9yIGluZGljYXRpbmcgYWJzdHJhY3QgbWV0aG9kcy4KIApAQCAtMTI0LDYgKzEyNSw4IEBACiAgICAgIyBBIGdsb2JhbCBjb3VudGVyIHRoYXQgaXMgaW5jcmVtZW50ZWQgZWFjaCB0aW1lIGEgY2xhc3MgaXMKICAgICAjIHJlZ2lzdGVyZWQgYXMgYSB2aXJ0dWFsIHN1YmNsYXNzIG9mIGFueXRoaW5nLiAgSXQgZm9yY2VzIHRoZQogICAgICMgbmVnYXRpdmUgY2FjaGUgdG8gYmUgY2xlYXJlZCBiZWZvcmUgaXRzIG5leHQgdXNlLgorICAgICMgTm90ZTogdGhpcyBjb3VudGVyIGlzIHByaXZhdGUuIFVzZSBgYWJjLmdldF9jYWNoZV90b2tlbigpYCBmb3IKKyAgICAjICAgICAgIGV4dGVybmFsIGNvZGUuCiAgICAgX2FiY19pbnZhbGlkYXRpb25fY291bnRlciA9IDAKIAogICAgIGRlZiBfX25ld19fKG1jbHMsIG5hbWUsIGJhc2VzLCBuYW1lc3BhY2UpOgpAQCAtMjI2LDMgKzIyOSwyMCBAQAogICAgICAgICAjIE5vIGRpY2U7IHVwZGF0ZSBuZWdhdGl2ZSBjYWNoZQogICAgICAgICBjbHMuX2FiY19uZWdhdGl2ZV9jYWNoZS5hZGQoc3ViY2xhc3MpCiAgICAgICAgIHJldHVybiBGYWxzZQorCisKK2NsYXNzIEFCQyhtZXRhY2xhc3M9QUJDTWV0YSk6CisgICAgIiIiSGVscGVyIGNsYXNzIHRoYXQgcHJvdmlkZXMgYSBzdGFuZGFyZCB3YXkgdG8gY3JlYXRlIGFuIEFCQyB1c2luZworICAgIGluaGVyaXRhbmNlLgorICAgICIiIgorICAgIHBhc3MKKworCitkZWYgZ2V0X2NhY2hlX3Rva2VuKCk6CisgICAgIiIiUmV0dXJucyB0aGUgY3VycmVudCBBQkMgY2FjaGUgdG9rZW4uCisKKyAgICBUaGUgdG9rZW4gaXMgYW4gb3BhcXVlIGludGVnZXIgaWRlbnRpZnlpbmcgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZgorICAgIHRoZSBBQkMgY2FjaGUgZm9yIHZpcnR1YWwgc3ViY2xhc3Nlcy4gVGhpcyBudW1iZXIgY2hhbmdlcyB3aXRoCisgICAgZXZlcnkgY2FsbCB0byBgYHJlZ2lzdGVyKClgYCBvbiBhbnkgQUJDLgorICAgICIiIgorICAgIHJldHVybiBBQkNNZXRhLl9hYmNfaW52YWxpZGF0aW9uX2NvdW50ZXIKZGlmZiAtLWdpdCBhL0xpYi9haWZjLnB5IGIvTGliL2FpZmMucHkKaW5kZXggYTE5YjM4Zi4uNjdlYTVkYSAxMDA2NDQKLS0tIGEvTGliL2FpZmMucHkKKysrIGIvTGliL2FpZmMucHkKQEAgLTMzNCw2ICszMzQsMTIgQEAKICAgICAgICAgIyBlbHNlLCBhc3N1bWUgaXQgaXMgYW4gb3BlbiBmaWxlIG9iamVjdCBhbHJlYWR5CiAgICAgICAgIHNlbGYuaW5pdGZwKGYpCiAKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgc2VsZi5jbG9zZSgpCisKICAgICAjCiAgICAgIyBVc2VyIHZpc2libGUgbWV0aG9kcy4KICAgICAjCkBAIC01NTMsNiArNTU5LDEyIEBACiAgICAgZGVmIF9fZGVsX18oc2VsZik6CiAgICAgICAgIHNlbGYuY2xvc2UoKQogCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncyk6CisgICAgICAgIHNlbGYuY2xvc2UoKQorCiAgICAgIwogICAgICMgVXNlciB2aXNpYmxlIG1ldGhvZHMuCiAgICAgIwpkaWZmIC0tZ2l0IGEvTGliL2FyZ3BhcnNlLnB5IGIvTGliL2FyZ3BhcnNlLnB5CmluZGV4IGYyNWIxYjYuLjVmZjc1NWMgMTAwNjQ0Ci0tLSBhL0xpYi9hcmdwYXJzZS5weQorKysgYi9MaWIvYXJncGFyc2UucHkKQEAgLTYwNiw4ICs2MDYsNyBAQAogICAgICAgICAgICAgcGFzcwogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5faW5kZW50KCkKLSAgICAgICAgICAgIGZvciBzdWJhY3Rpb24gaW4gZ2V0X3N1YmFjdGlvbnMoKToKLSAgICAgICAgICAgICAgICB5aWVsZCBzdWJhY3Rpb24KKyAgICAgICAgICAgIHlpZWxkIGZyb20gZ2V0X3N1YmFjdGlvbnMoKQogICAgICAgICAgICAgc2VsZi5fZGVkZW50KCkKIAogICAgIGRlZiBfc3BsaXRfbGluZXMoc2VsZiwgdGV4dCwgd2lkdGgpOgpAQCAtMTE0MSwxMSArMTE0MCwxNyBAQAogICAgICAgICAgICAgc2FtZSB2YWx1ZXMgYXMgdGhlIGJ1aWx0aW4gb3BlbigpIGZ1bmN0aW9uLgogICAgICAgICAtIGJ1ZnNpemUgLS0gVGhlIGZpbGUncyBkZXNpcmVkIGJ1ZmZlciBzaXplLiBBY2NlcHRzIHRoZSBzYW1lIHZhbHVlcyBhcwogICAgICAgICAgICAgdGhlIGJ1aWx0aW4gb3BlbigpIGZ1bmN0aW9uLgorICAgICAgICAtIGVuY29kaW5nIC0tIFRoZSBmaWxlJ3MgZW5jb2RpbmcuIEFjY2VwdHMgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZQorICAgICAgICAgICAgYnVpbHRpbiBvcGVuKCkgZnVuY3Rpb24uCisgICAgICAgIC0gZXJyb3JzIC0tIEEgc3RyaW5nIGluZGljYXRpbmcgaG93IGVuY29kaW5nIGFuZCBkZWNvZGluZyBlcnJvcnMgYXJlIHRvCisgICAgICAgICAgICBiZSBoYW5kbGVkLiBBY2NlcHRzIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSBidWlsdGluIG9wZW4oKSBmdW5jdGlvbi4KICAgICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtb2RlPSdyJywgYnVmc2l6ZT0tMSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1vZGU9J3InLCBidWZzaXplPS0xLCBlbmNvZGluZz1Ob25lLCBlcnJvcnM9Tm9uZSk6CiAgICAgICAgIHNlbGYuX21vZGUgPSBtb2RlCiAgICAgICAgIHNlbGYuX2J1ZnNpemUgPSBidWZzaXplCisgICAgICAgIHNlbGYuX2VuY29kaW5nID0gZW5jb2RpbmcKKyAgICAgICAgc2VsZi5fZXJyb3JzID0gZXJyb3JzCiAKICAgICBkZWYgX19jYWxsX18oc2VsZiwgc3RyaW5nKToKICAgICAgICAgIyB0aGUgc3BlY2lhbCBhcmd1bWVudCAiLSIgbWVhbnMgc3lzLnN0ZHtpbixvdXR9CkBAIC0xMTYwLDE0ICsxMTY1LDE4IEBACiAKICAgICAgICAgIyBhbGwgb3RoZXIgYXJndW1lbnRzIGFyZSB1c2VkIGFzIGZpbGUgbmFtZXMKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIG9wZW4oc3RyaW5nLCBzZWxmLl9tb2RlLCBzZWxmLl9idWZzaXplKQotICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIG9wZW4oc3RyaW5nLCBzZWxmLl9tb2RlLCBzZWxmLl9idWZzaXplLCBzZWxmLl9lbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Vycm9ycykKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgIG1lc3NhZ2UgPSBfKCJjYW4ndCBvcGVuICclcyc6ICVzIikKICAgICAgICAgICAgIHJhaXNlIEFyZ3VtZW50VHlwZUVycm9yKG1lc3NhZ2UgJSAoc3RyaW5nLCBlKSkKIAogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKICAgICAgICAgYXJncyA9IHNlbGYuX21vZGUsIHNlbGYuX2J1ZnNpemUKLSAgICAgICAgYXJnc19zdHIgPSAnLCAnLmpvaW4ocmVwcihhcmcpIGZvciBhcmcgaW4gYXJncyBpZiBhcmcgIT0gLTEpCisgICAgICAgIGt3YXJncyA9IFsoJ2VuY29kaW5nJywgc2VsZi5fZW5jb2RpbmcpLCAoJ2Vycm9ycycsIHNlbGYuX2Vycm9ycyldCisgICAgICAgIGFyZ3Nfc3RyID0gJywgJy5qb2luKFtyZXByKGFyZykgZm9yIGFyZyBpbiBhcmdzIGlmIGFyZyAhPSAtMV0gKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyVzPSVyJyAlIChrdywgYXJnKSBmb3Iga3csIGFyZyBpbiBrd2FyZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGFyZyBpcyBub3QgTm9uZV0pCiAgICAgICAgIHJldHVybiAnJXMoJXMpJyAlICh0eXBlKHNlbGYpLl9fbmFtZV9fLCBhcmdzX3N0cikKIAogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTIwMDEsMTcgKzIwMTAsMTQgQEAKICAgICAgICAgICAgICMgcmVwbGFjZSBhcmd1bWVudHMgcmVmZXJlbmNpbmcgZmlsZXMgd2l0aCB0aGUgZmlsZSBjb250ZW50CiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgYXJnc19maWxlID0gb3Blbihhcmdfc3RyaW5nWzE6XSkKLSAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICB3aXRoIG9wZW4oYXJnX3N0cmluZ1sxOl0pIGFzIGFyZ3NfZmlsZToKICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ19zdHJpbmdzID0gW10KICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBhcmdfbGluZSBpbiBhcmdzX2ZpbGUucmVhZCgpLnNwbGl0bGluZXMoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgYXJnIGluIHNlbGYuY29udmVydF9hcmdfbGluZV90b19hcmdzKGFyZ19saW5lKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnX3N0cmluZ3MuYXBwZW5kKGFyZykKICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ19zdHJpbmdzID0gc2VsZi5fcmVhZF9hcmdzX2Zyb21fZmlsZXMoYXJnX3N0cmluZ3MpCiAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfYXJnX3N0cmluZ3MuZXh0ZW5kKGFyZ19zdHJpbmdzKQotICAgICAgICAgICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgICAgICAgICAgYXJnc19maWxlLmNsb3NlKCkKLSAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgZXJyID0gX3N5cy5leGNfaW5mbygpWzFdCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXJyb3Ioc3RyKGVycikpCiAKZGlmZiAtLWdpdCBhL0xpYi9hc3QucHkgYi9MaWIvYXN0LnB5CmluZGV4IDEzZjU5ZjkuLjAyYzNiMjggMTAwNjQ0Ci0tLSBhL0xpYi9hc3QucHkKKysrIGIvTGliL2FzdC5weQpAQCAtNDIsNyArNDIsNiBAQAogICAgIFB5dGhvbiBsaXRlcmFsIHN0cnVjdHVyZXM6IHN0cmluZ3MsIGJ5dGVzLCBudW1iZXJzLCB0dXBsZXMsIGxpc3RzLCBkaWN0cywKICAgICBzZXRzLCBib29sZWFucywgYW5kIE5vbmUuCiAgICAgIiIiCi0gICAgX3NhZmVfbmFtZXMgPSB7J05vbmUnOiBOb25lLCAnVHJ1ZSc6IFRydWUsICdGYWxzZSc6IEZhbHNlfQogICAgIGlmIGlzaW5zdGFuY2Uobm9kZV9vcl9zdHJpbmcsIHN0cik6CiAgICAgICAgIG5vZGVfb3Jfc3RyaW5nID0gcGFyc2Uobm9kZV9vcl9zdHJpbmcsIG1vZGU9J2V2YWwnKQogICAgIGlmIGlzaW5zdGFuY2Uobm9kZV9vcl9zdHJpbmcsIEV4cHJlc3Npb24pOgpAQCAtNjEsOSArNjAsOCBAQAogICAgICAgICBlbGlmIGlzaW5zdGFuY2Uobm9kZSwgRGljdCk6CiAgICAgICAgICAgICByZXR1cm4gZGljdCgoX2NvbnZlcnQoayksIF9jb252ZXJ0KHYpKSBmb3IgaywgdgogICAgICAgICAgICAgICAgICAgICAgICAgaW4gemlwKG5vZGUua2V5cywgbm9kZS52YWx1ZXMpKQotICAgICAgICBlbGlmIGlzaW5zdGFuY2Uobm9kZSwgTmFtZSk6Ci0gICAgICAgICAgICBpZiBub2RlLmlkIGluIF9zYWZlX25hbWVzOgotICAgICAgICAgICAgICAgIHJldHVybiBfc2FmZV9uYW1lc1tub2RlLmlkXQorICAgICAgICBlbGlmIGlzaW5zdGFuY2Uobm9kZSwgTmFtZUNvbnN0YW50KToKKyAgICAgICAgICAgIHJldHVybiBub2RlLnZhbHVlCiAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShub2RlLCBVbmFyeU9wKSBhbmQgXAogICAgICAgICAgICAgIGlzaW5zdGFuY2Uobm9kZS5vcCwgKFVBZGQsIFVTdWIpKSBhbmQgXAogICAgICAgICAgICAgIGlzaW5zdGFuY2Uobm9kZS5vcGVyYW5kLCAoTnVtLCBVbmFyeU9wLCBCaW5PcCkpOgpkaWZmIC0tZ2l0IGEvTGliL2FzeW5jaGF0LnB5IGIvTGliL2FzeW5jaGF0LnB5CmluZGV4IDRlMjZiYjUuLmYwNTVkNjMgMTAwNjQ0Ci0tLSBhL0xpYi9hc3luY2hhdC5weQorKysgYi9MaWIvYXN5bmNoYXQucHkKQEAgLTU2LDggKzU2LDggQEAKIAogICAgICMgdGhlc2UgYXJlIG92ZXJyaWRhYmxlIGRlZmF1bHRzCiAKLSAgICBhY19pbl9idWZmZXJfc2l6ZSAgICAgICA9IDQwOTYKLSAgICBhY19vdXRfYnVmZmVyX3NpemUgICAgICA9IDQwOTYKKyAgICBhY19pbl9idWZmZXJfc2l6ZSAgICAgICA9IDY1NTM2CisgICAgYWNfb3V0X2J1ZmZlcl9zaXplICAgICAgPSA2NTUzNgogCiAgICAgIyB3ZSBkb24ndCB3YW50IHRvIGVuYWJsZSB0aGUgdXNlIG9mIGVuY29kaW5nIGJ5IGRlZmF1bHQsIGJlY2F1c2UgdGhhdCBpcyBhCiAgICAgIyBzaWduIG9mIGFuIGFwcGxpY2F0aW9uIGJ1ZyB0aGF0IHdlIGRvbid0IHdhbnQgdG8gcGFzcyBzaWxlbnRseQpAQCAtMTE0LDcgKzExNCw3IEBACiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZGF0YSA9IHNlbGYucmVjdiAoc2VsZi5hY19pbl9idWZmZXJfc2l6ZSkKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyB3aHk6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIHdoeToKICAgICAgICAgICAgIHNlbGYuaGFuZGxlX2Vycm9yKCkKICAgICAgICAgICAgIHJldHVybgogCkBAIC0yNDMsNyArMjQzLDcgQEAKICAgICAgICAgICAgICMgc2VuZCB0aGUgZGF0YQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIG51bV9zZW50ID0gc2VsZi5zZW5kKGRhdGEpCi0gICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVfZXJyb3IoKQogICAgICAgICAgICAgICAgIHJldHVybgogCmRpZmYgLS1naXQgYS9MaWIvYXN5bmNvcmUucHkgYi9MaWIvYXN5bmNvcmUucHkKaW5kZXggOTA5ZDlmNi4uNzU0ODFkZCAxMDA2NDQKLS0tIGEvTGliL2FzeW5jb3JlLnB5CisrKyBiL0xpYi9hc3luY29yZS5weQpAQCAtMTEyLDcgKzExMiw3IEBACiAgICAgICAgICAgICBvYmouaGFuZGxlX2V4cHRfZXZlbnQoKQogICAgICAgICBpZiBmbGFncyAmIChzZWxlY3QuUE9MTEhVUCB8IHNlbGVjdC5QT0xMRVJSIHwgc2VsZWN0LlBPTExOVkFMKToKICAgICAgICAgICAgIG9iai5oYW5kbGVfY2xvc2UoKQotICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKKyAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICBpZiBlLmFyZ3NbMF0gbm90IGluIF9ESVNDT05ORUNURUQ6CiAgICAgICAgICAgICBvYmouaGFuZGxlX2Vycm9yKCkKICAgICAgICAgZWxzZToKQEAgLTI0MCw3ICsyNDAsNyBAQAogICAgICAgICAgICAgIyBwYXNzZWQgYmUgY29ubmVjdGVkLgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHNlbGYuYWRkciA9IHNvY2suZ2V0cGVlcm5hbWUoKQotICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlcnI6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlcnI6CiAgICAgICAgICAgICAgICAgaWYgZXJyLmFyZ3NbMF0gaW4gKEVOT1RDT05OLCBFSU5WQUwpOgogICAgICAgICAgICAgICAgICAgICAjIFRvIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSBnb3QgYW4gdW5jb25uZWN0ZWQKICAgICAgICAgICAgICAgICAgICAgIyBzb2NrZXQuCkBAIC0zMDQsNyArMzA0LDcgQEAKICAgICAgICAgICAgICAgICBzZWxmLnNvY2tldC5nZXRzb2Nrb3B0KHNvY2tldC5TT0xfU09DS0VULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0LlNPX1JFVVNFQUREUikgfCAxCiAgICAgICAgICAgICAgICAgKQotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHBhc3MKIAogICAgICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTM0NSw3ICszNDUsNyBAQAogICAgICAgICAgICAgc2VsZi5hZGRyID0gYWRkcmVzcwogICAgICAgICAgICAgc2VsZi5oYW5kbGVfY29ubmVjdF9ldmVudCgpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBzb2NrZXQuZXJyb3IoZXJyLCBlcnJvcmNvZGVbZXJyXSkKKyAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoZXJyLCBlcnJvcmNvZGVbZXJyXSkKIAogICAgIGRlZiBhY2NlcHQoc2VsZik6CiAgICAgICAgICMgWFhYIGNhbiByZXR1cm4gZWl0aGVyIGFuIGFkZHJlc3MgcGFpciBvciBOb25lCkBAIC0zNTMsNyArMzUzLDcgQEAKICAgICAgICAgICAgIGNvbm4sIGFkZHIgPSBzZWxmLnNvY2tldC5hY2NlcHQoKQogICAgICAgICBleGNlcHQgVHlwZUVycm9yOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyB3aHk6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIHdoeToKICAgICAgICAgICAgIGlmIHdoeS5hcmdzWzBdIGluIChFV09VTERCTE9DSywgRUNPTk5BQk9SVEVELCBFQUdBSU4pOgogICAgICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgICAgICBlbHNlOgpAQCAtMzY1LDcgKzM2NSw3IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuc29ja2V0LnNlbmQoZGF0YSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyB3aHk6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIHdoeToKICAgICAgICAgICAgIGlmIHdoeS5hcmdzWzBdID09IEVXT1VMREJMT0NLOgogICAgICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgICAgICBlbGlmIHdoeS5hcmdzWzBdIGluIF9ESVNDT05ORUNURUQ6CkBAIC0zODQsNyArMzg0LDcgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gYicnCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJldHVybiBkYXRhCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgd2h5OgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyB3aHk6CiAgICAgICAgICAgICAjIHdpbnNvY2sgc29tZXRpbWVzIHJhaXNlcyBFTk9UQ09OTgogICAgICAgICAgICAgaWYgd2h5LmFyZ3NbMF0gaW4gX0RJU0NPTk5FQ1RFRDoKICAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZV9jbG9zZSgpCkBAIC0zOTcsMTEgKzM5NywxMiBAQAogICAgICAgICBzZWxmLmFjY2VwdGluZyA9IEZhbHNlCiAgICAgICAgIHNlbGYuY29ubmVjdGluZyA9IEZhbHNlCiAgICAgICAgIHNlbGYuZGVsX2NoYW5uZWwoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLnNvY2tldC5jbG9zZSgpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgd2h5OgotICAgICAgICAgICAgaWYgd2h5LmFyZ3NbMF0gbm90IGluIChFTk9UQ09OTiwgRUJBREYpOgotICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGlmIHNlbGYuc29ja2V0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuc29ja2V0LmNsb3NlKCkKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIHdoeToKKyAgICAgICAgICAgICAgICBpZiB3aHkuYXJnc1swXSBub3QgaW4gKEVOT1RDT05OLCBFQkFERik6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAKICAgICAjIGNoZWFwIGluaGVyaXRhbmNlLCB1c2VkIHRvIHBhc3MgYWxsIG90aGVyIGF0dHJpYnV0ZQogICAgICMgcmVmZXJlbmNlcyB0byB0aGUgdW5kZXJseWluZyBzb2NrZXQgb2JqZWN0LgpAQCAtNDQzLDcgKzQ0NCw3IEBACiAgICAgZGVmIGhhbmRsZV9jb25uZWN0X2V2ZW50KHNlbGYpOgogICAgICAgICBlcnIgPSBzZWxmLnNvY2tldC5nZXRzb2Nrb3B0KHNvY2tldC5TT0xfU09DS0VULCBzb2NrZXQuU09fRVJST1IpCiAgICAgICAgIGlmIGVyciAhPSAwOgotICAgICAgICAgICAgcmFpc2Ugc29ja2V0LmVycm9yKGVyciwgX3N0cmVycm9yKGVycikpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKGVyciwgX3N0cmVycm9yKGVycikpCiAgICAgICAgIHNlbGYuaGFuZGxlX2Nvbm5lY3QoKQogICAgICAgICBzZWxmLmNvbm5lY3RlZCA9IFRydWUKICAgICAgICAgc2VsZi5jb25uZWN0aW5nID0gRmFsc2UKQEAgLTUzMiw3ICs1MzMsNyBAQAogCiAgICAgZGVmIGluaXRpYXRlX3NlbmQoc2VsZik6CiAgICAgICAgIG51bV9zZW50ID0gMAotICAgICAgICBudW1fc2VudCA9IGRpc3BhdGNoZXIuc2VuZChzZWxmLCBzZWxmLm91dF9idWZmZXJbOjUxMl0pCisgICAgICAgIG51bV9zZW50ID0gZGlzcGF0Y2hlci5zZW5kKHNlbGYsIHNlbGYub3V0X2J1ZmZlcls6NjU1MzZdKQogICAgICAgICBzZWxmLm91dF9idWZmZXIgPSBzZWxmLm91dF9idWZmZXJbbnVtX3NlbnQ6XQogCiAgICAgZGVmIGhhbmRsZV93cml0ZShzZWxmKToKZGlmZiAtLWdpdCBhL0xpYi9iYXNlNjQucHkgYi9MaWIvYmFzZTY0LnB5CmluZGV4IGI2ZTgyYjYuLjljMTU3NTIgMTAwNzU1Ci0tLSBhL0xpYi9iYXNlNjQucHkKKysrIGIvTGliL2Jhc2U2NC5weQpAQCAtMTM4LDIxICsxMzgsMTAgQEAKIAogCiAjIEJhc2UzMiBlbmNvZGluZy9kZWNvZGluZyBtdXN0IGJlIGRvbmUgaW4gUHl0aG9uCi1fYjMyYWxwaGFiZXQgPSB7Ci0gICAgMDogYidBJywgIDk6IGInSicsIDE4OiBiJ1MnLCAyNzogYiczJywKLSAgICAxOiBiJ0InLCAxMDogYidLJywgMTk6IGInVCcsIDI4OiBiJzQnLAotICAgIDI6IGInQycsIDExOiBiJ0wnLCAyMDogYidVJywgMjk6IGInNScsCi0gICAgMzogYidEJywgMTI6IGInTScsIDIxOiBiJ1YnLCAzMDogYic2JywKLSAgICA0OiBiJ0UnLCAxMzogYidOJywgMjI6IGInVycsIDMxOiBiJzcnLAotICAgIDU6IGInRicsIDE0OiBiJ08nLCAyMzogYidYJywKLSAgICA2OiBiJ0cnLCAxNTogYidQJywgMjQ6IGInWScsCi0gICAgNzogYidIJywgMTY6IGInUScsIDI1OiBiJ1onLAotICAgIDg6IGInSScsIDE3OiBiJ1InLCAyNjogYicyJywKLSAgICB9Ci0KLV9iMzJ0YWIgPSBbdlswXSBmb3IgaywgdiBpbiBzb3J0ZWQoX2IzMmFscGhhYmV0Lml0ZW1zKCkpXQotX2IzMnJldiA9IGRpY3QoWyh2WzBdLCBrKSBmb3IgaywgdiBpbiBfYjMyYWxwaGFiZXQuaXRlbXMoKV0pCi0KK19iMzJhbHBoYWJldCA9IGInQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjcnCitfYjMydGFiID0gW2J5dGVzKFtpXSkgZm9yIGkgaW4gX2IzMmFscGhhYmV0XQorX2IzMnRhYjIgPSBbYSArIGIgZm9yIGEgaW4gX2IzMnRhYiBmb3IgYiBpbiBfYjMydGFiXQorX2IzMnJldiA9IHt2OiBrIGZvciBrLCB2IGluIGVudW1lcmF0ZShfYjMyYWxwaGFiZXQpfQogCiBkZWYgYjMyZW5jb2RlKHMpOgogICAgICIiIkVuY29kZSBhIGJ5dGUgc3RyaW5nIHVzaW5nIEJhc2UzMi4KQEAgLTE2MSwzMCArMTUwLDIwIEBACiAgICAgIiIiCiAgICAgaWYgbm90IGlzaW5zdGFuY2UocywgYnl0ZXNfdHlwZXMpOgogICAgICAgICByYWlzZSBUeXBlRXJyb3IoImV4cGVjdGVkIGJ5dGVzLCBub3QgJXMiICUgcy5fX2NsYXNzX18uX19uYW1lX18pCi0gICAgcXVhbnRhLCBsZWZ0b3ZlciA9IGRpdm1vZChsZW4ocyksIDUpCisgICAgbGVmdG92ZXIgPSBsZW4ocykgJSA1CiAgICAgIyBQYWQgdGhlIGxhc3QgcXVhbnR1bSB3aXRoIHplcm8gYml0cyBpZiBuZWNlc3NhcnkKICAgICBpZiBsZWZ0b3ZlcjoKICAgICAgICAgcyA9IHMgKyBieXRlcyg1IC0gbGVmdG92ZXIpICAjIERvbid0IHVzZSArPSAhCi0gICAgICAgIHF1YW50YSArPSAxCiAgICAgZW5jb2RlZCA9IGJ5dGVhcnJheSgpCi0gICAgZm9yIGkgaW4gcmFuZ2UocXVhbnRhKToKLSAgICAgICAgIyBjMSBhbmQgYzIgYXJlIDE2IGJpdHMgd2lkZSwgYzMgaXMgOCBiaXRzIHdpZGUuICBUaGUgaW50ZW50IG9mIHRoaXMKLSAgICAgICAgIyBjb2RlIGlzIHRvIHByb2Nlc3MgdGhlIDQwIGJpdHMgaW4gdW5pdHMgb2YgNSBiaXRzLiAgU28gd2UgdGFrZSB0aGUgMQotICAgICAgICAjIGxlZnRvdmVyIGJpdCBvZiBjMSBhbmQgdGFjayBpdCBvbnRvIGMyLiAgVGhlbiB3ZSB0YWtlIHRoZSAyIGxlZnRvdmVyCi0gICAgICAgICMgYml0cyBvZiBjMiBhbmQgdGFjayB0aGVtIG9udG8gYzMuICBUaGUgc2hpZnRzIGFuZCBtYXNrcyBhcmUgaW50ZW5kZWQKLSAgICAgICAgIyB0byBnaXZlIHVzIHZhbHVlcyBvZiBleGFjdGx5IDUgYml0cyBpbiB3aWR0aC4KLSAgICAgICAgYzEsIGMyLCBjMyA9IHN0cnVjdC51bnBhY2soJyFISEInLCBzW2kqNTooaSsxKSo1XSkKLSAgICAgICAgYzIgKz0gKGMxICYgMSkgPDwgMTYgIyAxNyBiaXRzIHdpZGUKLSAgICAgICAgYzMgKz0gKGMyICYgMykgPDwgOCAgIyAxMCBiaXRzIHdpZGUKLSAgICAgICAgZW5jb2RlZCArPSBieXRlcyhbX2IzMnRhYltjMSA+PiAxMV0sICAgICAgICAgIyBiaXRzIDEgLSA1Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIF9iMzJ0YWJbKGMxID4+IDYpICYgMHgxZl0sICMgYml0cyA2IC0gMTAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgX2IzMnRhYlsoYzEgPj4gMSkgJiAweDFmXSwgIyBiaXRzIDExIC0gMTUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgX2IzMnRhYltjMiA+PiAxMl0sICAgICAgICAgIyBiaXRzIDE2IC0gMjAgKDEgLSA1KQotICAgICAgICAgICAgICAgICAgICAgICAgICBfYjMydGFiWyhjMiA+PiA3KSAmIDB4MWZdLCAjIGJpdHMgMjEgLSAyNSAoNiAtIDEwKQotICAgICAgICAgICAgICAgICAgICAgICAgICBfYjMydGFiWyhjMiA+PiAyKSAmIDB4MWZdLCAjIGJpdHMgMjYgLSAzMCAoMTEgLSAxNSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgX2IzMnRhYltjMyA+PiA1XSwgICAgICAgICAgIyBiaXRzIDMxIC0gMzUgKDEgLSA1KQotICAgICAgICAgICAgICAgICAgICAgICAgICBfYjMydGFiW2MzICYgMHgxZl0sICAgICAgICAjIGJpdHMgMzYgLSA0MCAoMSAtIDUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIF0pCisgICAgZnJvbV9ieXRlcyA9IGludC5mcm9tX2J5dGVzCisgICAgYjMydGFiMiA9IF9iMzJ0YWIyCisgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKHMpLCA1KToKKyAgICAgICAgYyA9IGZyb21fYnl0ZXMoc1tpOiBpICsgNV0sICdiaWcnKQorICAgICAgICBlbmNvZGVkICs9IChiMzJ0YWIyW2MgPj4gMzBdICsgICAgICAgICAgICMgYml0cyAxIC0gMTAKKyAgICAgICAgICAgICAgICAgICAgYjMydGFiMlsoYyA+PiAyMCkgJiAweDNmZl0gKyAjIGJpdHMgMTEgLSAyMAorICAgICAgICAgICAgICAgICAgICBiMzJ0YWIyWyhjID4+IDEwKSAmIDB4M2ZmXSArICMgYml0cyAyMSAtIDMwCisgICAgICAgICAgICAgICAgICAgIGIzMnRhYjJbYyAmIDB4M2ZmXSAgICAgICAgICAgIyBiaXRzIDMxIC0gNDAKKyAgICAgICAgICAgICAgICAgICApCiAgICAgIyBBZGp1c3QgZm9yIGFueSBsZWZ0b3ZlciBwYXJ0aWFsIHF1YW50YQogICAgIGlmIGxlZnRvdmVyID09IDE6CiAgICAgICAgIGVuY29kZWRbLTY6XSA9IGInPT09PT09JwpAQCAtMTk2LDcgKzE3NSw2IEBACiAgICAgICAgIGVuY29kZWRbLTE6XSA9IGInPScKICAgICByZXR1cm4gYnl0ZXMoZW5jb2RlZCkKIAotCiBkZWYgYjMyZGVjb2RlKHMsIGNhc2Vmb2xkPUZhbHNlLCBtYXAwMT1Ob25lKToKICAgICAiIiJEZWNvZGUgYSBCYXNlMzIgZW5jb2RlZCBieXRlIHN0cmluZy4KIApAQCAtMjE3LDggKzE5NSw3IEBACiAgICAgY2hhcmFjdGVycyBwcmVzZW50IGluIHRoZSBpbnB1dC4KICAgICAiIiIKICAgICBzID0gX2J5dGVzX2Zyb21fZGVjb2RlX2RhdGEocykKLSAgICBxdWFudGEsIGxlZnRvdmVyID0gZGl2bW9kKGxlbihzKSwgOCkKLSAgICBpZiBsZWZ0b3ZlcjoKKyAgICBpZiBsZW4ocykgJSA4OgogICAgICAgICByYWlzZSBiaW5hc2NpaS5FcnJvcignSW5jb3JyZWN0IHBhZGRpbmcnKQogICAgICMgSGFuZGxlIHNlY3Rpb24gMi40IHplcm8gYW5kIG9uZSBtYXBwaW5nLiAgVGhlIGZsYWcgbWFwMDEgd2lsbCBiZSBlaXRoZXIKICAgICAjIEZhbHNlLCBvciB0aGUgY2hhcmFjdGVyIHRvIG1hcCB0aGUgZGlnaXQgMSAob25lKSB0by4gIEl0IHNob3VsZCBiZQpAQCAtMjMyLDQyICsyMDksMzYgQEAKICAgICAjIFN0cmlwIG9mZiBwYWQgY2hhcmFjdGVycyBmcm9tIHRoZSByaWdodC4gIFdlIG5lZWQgdG8gY291bnQgdGhlIHBhZAogICAgICMgY2hhcmFjdGVycyBiZWNhdXNlIHRoaXMgd2lsbCB0ZWxsIHVzIGhvdyBtYW55IG51bGwgYnl0ZXMgdG8gcmVtb3ZlIGZyb20KICAgICAjIHRoZSBlbmQgb2YgdGhlIGRlY29kZWQgc3RyaW5nLgotICAgIHBhZGNoYXJzID0gMAotICAgIG1vID0gcmUuc2VhcmNoKGInKD9QPHBhZD5bPV0qKSQnLCBzKQotICAgIGlmIG1vOgotICAgICAgICBwYWRjaGFycyA9IGxlbihtby5ncm91cCgncGFkJykpCi0gICAgICAgIGlmIHBhZGNoYXJzID4gMDoKLSAgICAgICAgICAgIHMgPSBzWzotcGFkY2hhcnNdCisgICAgbCA9IGxlbihzKQorICAgIHMgPSBzLnJzdHJpcChiJz0nKQorICAgIHBhZGNoYXJzID0gbCAtIGxlbihzKQogICAgICMgTm93IGRlY29kZSB0aGUgZnVsbCBxdWFudGEKLSAgICBwYXJ0cyA9IFtdCi0gICAgYWNjID0gMAotICAgIHNoaWZ0ID0gMzUKLSAgICBmb3IgYyBpbiBzOgotICAgICAgICB2YWwgPSBfYjMycmV2LmdldChjKQotICAgICAgICBpZiB2YWwgaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIGJpbmFzY2lpLkVycm9yKCdOb24tYmFzZTMyIGRpZ2l0IGZvdW5kJykKLSAgICAgICAgYWNjICs9IF9iMzJyZXZbY10gPDwgc2hpZnQKLSAgICAgICAgc2hpZnQgLT0gNQotICAgICAgICBpZiBzaGlmdCA8IDA6Ci0gICAgICAgICAgICBwYXJ0cy5hcHBlbmQoYmluYXNjaWkudW5oZXhsaWZ5KGJ5dGVzKCclMDEweCcgJSBhY2MsICJhc2NpaSIpKSkKLSAgICAgICAgICAgIGFjYyA9IDAKLSAgICAgICAgICAgIHNoaWZ0ID0gMzUKKyAgICBkZWNvZGVkID0gYnl0ZWFycmF5KCkKKyAgICBiMzJyZXYgPSBfYjMycmV2CisgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKHMpLCA4KToKKyAgICAgICAgcXVhbnRhID0gc1tpOiBpICsgOF0KKyAgICAgICAgYWNjID0gMAorICAgICAgICB0cnk6CisgICAgICAgICAgICBmb3IgYyBpbiBxdWFudGE6CisgICAgICAgICAgICAgICAgYWNjID0gKGFjYyA8PCA1KSArIGIzMnJldltjXQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICByYWlzZSBiaW5hc2NpaS5FcnJvcignTm9uLWJhc2UzMiBkaWdpdCBmb3VuZCcpIGZyb20gTm9uZQorICAgICAgICBkZWNvZGVkICs9IGFjYy50b19ieXRlcyg1LCAnYmlnJykKICAgICAjIFByb2Nlc3MgdGhlIGxhc3QsIHBhcnRpYWwgcXVhbnRhCi0gICAgbGFzdCA9IGJpbmFzY2lpLnVuaGV4bGlmeShieXRlcygnJTAxMHgnICUgYWNjLCAiYXNjaWkiKSkKLSAgICBpZiBwYWRjaGFycyA9PSAwOgotICAgICAgICBsYXN0ID0gYicnICAgICAgICAgICAgICAgICAgICAgICMgTm8gY2hhcmFjdGVycwotICAgIGVsaWYgcGFkY2hhcnMgPT0gMToKLSAgICAgICAgbGFzdCA9IGxhc3RbOi0xXQotICAgIGVsaWYgcGFkY2hhcnMgPT0gMzoKLSAgICAgICAgbGFzdCA9IGxhc3RbOi0yXQotICAgIGVsaWYgcGFkY2hhcnMgPT0gNDoKLSAgICAgICAgbGFzdCA9IGxhc3RbOi0zXQotICAgIGVsaWYgcGFkY2hhcnMgPT0gNjoKLSAgICAgICAgbGFzdCA9IGxhc3RbOi00XQotICAgIGVsc2U6Ci0gICAgICAgIHJhaXNlIGJpbmFzY2lpLkVycm9yKCdJbmNvcnJlY3QgcGFkZGluZycpCi0gICAgcGFydHMuYXBwZW5kKGxhc3QpCi0gICAgcmV0dXJuIGInJy5qb2luKHBhcnRzKQorICAgIGlmIHBhZGNoYXJzOgorICAgICAgICBhY2MgPDw9IDUgKiBwYWRjaGFycworICAgICAgICBsYXN0ID0gYWNjLnRvX2J5dGVzKDUsICdiaWcnKQorICAgICAgICBpZiBwYWRjaGFycyA9PSAxOgorICAgICAgICAgICAgZGVjb2RlZFstNTpdID0gbGFzdFs6LTFdCisgICAgICAgIGVsaWYgcGFkY2hhcnMgPT0gMzoKKyAgICAgICAgICAgIGRlY29kZWRbLTU6XSA9IGxhc3RbOi0yXQorICAgICAgICBlbGlmIHBhZGNoYXJzID09IDQ6CisgICAgICAgICAgICBkZWNvZGVkWy01Ol0gPSBsYXN0WzotM10KKyAgICAgICAgZWxpZiBwYWRjaGFycyA9PSA2OgorICAgICAgICAgICAgZGVjb2RlZFstNTpdID0gbGFzdFs6LTRdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBiaW5hc2NpaS5FcnJvcignSW5jb3JyZWN0IHBhZGRpbmcnKQorICAgIHJldHVybiBieXRlcyhkZWNvZGVkKQogCiAKIApkaWZmIC0tZ2l0IGEvTGliL2J6Mi5weSBiL0xpYi9iejIucHkKaW5kZXggYzMwNzUwNy4uNmU2YTJiOSAxMDA2NDQKLS0tIGEvTGliL2J6Mi5weQorKysgYi9MaWIvYnoyLnB5CkBAIC05LDcgKzksNiBAQAogCiBfX2F1dGhvcl9fID0gIk5hZGVlbSBWYXdkYSA8bmFkZWVtLnZhd2RhQGdtYWlsLmNvbT4iCiAKLWltcG9ydCBidWlsdGlucwogaW1wb3J0IGlvCiBpbXBvcnQgd2FybmluZ3MKIApAQCAtMjgsNiArMjcsOCBAQAogCiBfQlVGRkVSX1NJWkUgPSA4MTkyCiAKK19idWlsdGluX29wZW4gPSBvcGVuCisKIAogY2xhc3MgQloyRmlsZShpby5CdWZmZXJlZElPQmFzZSk6CiAKQEAgLTQzLDEyICs0NCwxMyBAQAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgbW9kZT0iciIsIGJ1ZmZlcmluZz1Ob25lLCBjb21wcmVzc2xldmVsPTkpOgogICAgICAgICAiIiJPcGVuIGEgYnppcDItY29tcHJlc3NlZCBmaWxlLgogCi0gICAgICAgIElmIGZpbGVuYW1lIGlzIGEgc3RyIG9yIGJ5dGVzIG9iamVjdCwgaXMgZ2l2ZXMgdGhlIG5hbWUgb2YgdGhlIGZpbGUgdG8KLSAgICAgICAgYmUgb3BlbmVkLiBPdGhlcndpc2UsIGl0IHNob3VsZCBiZSBhIGZpbGUgb2JqZWN0LCB3aGljaCB3aWxsIGJlIHVzZWQgdG8KLSAgICAgICAgcmVhZCBvciB3cml0ZSB0aGUgY29tcHJlc3NlZCBkYXRhLgorICAgICAgICBJZiBmaWxlbmFtZSBpcyBhIHN0ciBvciBieXRlcyBvYmplY3QsIGl0IGdpdmVzIHRoZSBuYW1lCisgICAgICAgIG9mIHRoZSBmaWxlIHRvIGJlIG9wZW5lZC4gT3RoZXJ3aXNlLCBpdCBzaG91bGQgYmUgYSBmaWxlIG9iamVjdCwKKyAgICAgICAgd2hpY2ggd2lsbCBiZSB1c2VkIHRvIHJlYWQgb3Igd3JpdGUgdGhlIGNvbXByZXNzZWQgZGF0YS4KIAotICAgICAgICBtb2RlIGNhbiBiZSAncicgZm9yIHJlYWRpbmcgKGRlZmF1bHQpLCAndycgZm9yIChvdmVyKXdyaXRpbmcsIG9yICdhJyBmb3IKLSAgICAgICAgYXBwZW5kaW5nLiBUaGVzZSBjYW4gZXF1aXZhbGVudGx5IGJlIGdpdmVuIGFzICdyYicsICd3YicsIGFuZCAnYWInLgorICAgICAgICBtb2RlIGNhbiBiZSAncicgZm9yIHJlYWRpbmcgKGRlZmF1bHQpLCAndycgZm9yIChvdmVyKXdyaXRpbmcsCisgICAgICAgIG9yICdhJyBmb3IgYXBwZW5kaW5nLiBUaGVzZSBjYW4gZXF1aXZhbGVudGx5IGJlIGdpdmVuIGFzICdyYicsCisgICAgICAgICd3YicsIGFuZCAnYWInLgogCiAgICAgICAgIGJ1ZmZlcmluZyBpcyBpZ25vcmVkLiBJdHMgdXNlIGlzIGRlcHJlY2F0ZWQuCiAKQEAgLTkwLDEwICs5MiwxMCBAQAogICAgICAgICAgICAgbW9kZV9jb2RlID0gX01PREVfV1JJVEUKICAgICAgICAgICAgIHNlbGYuX2NvbXByZXNzb3IgPSBCWjJDb21wcmVzc29yKGNvbXByZXNzbGV2ZWwpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIG1vZGU6IHshcn0iLmZvcm1hdChtb2RlKSkKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkludmFsaWQgbW9kZTogJXIiICUgKG1vZGUsKSkKIAogICAgICAgICBpZiBpc2luc3RhbmNlKGZpbGVuYW1lLCAoc3RyLCBieXRlcykpOgotICAgICAgICAgICAgc2VsZi5fZnAgPSBidWlsdGlucy5vcGVuKGZpbGVuYW1lLCBtb2RlKQorICAgICAgICAgICAgc2VsZi5fZnAgPSBfYnVpbHRpbl9vcGVuKGZpbGVuYW1lLCBtb2RlKQogICAgICAgICAgICAgc2VsZi5fY2xvc2VmcCA9IFRydWUKICAgICAgICAgICAgIHNlbGYuX21vZGUgPSBtb2RlX2NvZGUKICAgICAgICAgZWxpZiBoYXNhdHRyKGZpbGVuYW1lLCAicmVhZCIpIG9yIGhhc2F0dHIoZmlsZW5hbWUsICJ3cml0ZSIpOgpAQCAtMTg5LDE1ICsxOTEsMTcgQEAKIAogICAgICAgICAgICAgaWYgbm90IHJhd2Jsb2NrOgogICAgICAgICAgICAgICAgIGlmIHNlbGYuX2RlY29tcHJlc3Nvci5lb2Y6CisgICAgICAgICAgICAgICAgICAgICMgRW5kLW9mLXN0cmVhbSBtYXJrZXIgYW5kIGVuZCBvZiBmaWxlLiBXZSdyZSBnb29kLgogICAgICAgICAgICAgICAgICAgICBzZWxmLl9tb2RlID0gX01PREVfUkVBRF9FT0YKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2l6ZSA9IHNlbGYuX3BvcwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIFByb2JsZW0gLSB3ZSB3ZXJlIGV4cGVjdGluZyBtb3JlIGNvbXByZXNzZWQgZGF0YS4KICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRU9GRXJyb3IoIkNvbXByZXNzZWQgZmlsZSBlbmRlZCBiZWZvcmUgdGhlICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVuZC1vZi1zdHJlYW0gbWFya2VyIHdhcyByZWFjaGVkIikKIAotICAgICAgICAgICAgIyBDb250aW51ZSB0byBuZXh0IHN0cmVhbS4KICAgICAgICAgICAgIGlmIHNlbGYuX2RlY29tcHJlc3Nvci5lb2Y6CisgICAgICAgICAgICAgICAgIyBDb250aW51ZSB0byBuZXh0IHN0cmVhbS4KICAgICAgICAgICAgICAgICBzZWxmLl9kZWNvbXByZXNzb3IgPSBCWjJEZWNvbXByZXNzb3IoKQogCiAgICAgICAgICAgICBzZWxmLl9idWZmZXIgPSBzZWxmLl9kZWNvbXByZXNzb3IuZGVjb21wcmVzcyhyYXdibG9jaykKQEAgLTQxMiw3ICs0MTYsNyBAQAogICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZWFkX2FsbChyZXR1cm5fZGF0YT1GYWxzZSkKICAgICAgICAgICAgICAgICBvZmZzZXQgPSBzZWxmLl9zaXplICsgb2Zmc2V0CiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkludmFsaWQgdmFsdWUgZm9yIHdoZW5jZToge30iLmZvcm1hdCh3aGVuY2UpKQorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkludmFsaWQgdmFsdWUgZm9yIHdoZW5jZTogJXMiICUgKHdoZW5jZSwpKQogCiAgICAgICAgICAgICAjIE1ha2UgaXQgc28gdGhhdCBvZmZzZXQgaXMgdGhlIG51bWJlciBvZiBieXRlcyB0byBza2lwIGZvcndhcmQuCiAgICAgICAgICAgICBpZiBvZmZzZXQgPCBzZWxmLl9wb3M6CkBAIC00MzYsMjAgKzQ0MCwyMCBAQAogICAgICAgICAgZW5jb2Rpbmc9Tm9uZSwgZXJyb3JzPU5vbmUsIG5ld2xpbmU9Tm9uZSk6CiAgICAgIiIiT3BlbiBhIGJ6aXAyLWNvbXByZXNzZWQgZmlsZSBpbiBiaW5hcnkgb3IgdGV4dCBtb2RlLgogCi0gICAgVGhlIGZpbGVuYW1lIGFyZ3VtZW50IGNhbiBiZSBhbiBhY3R1YWwgZmlsZW5hbWUgKGEgc3RyIG9yIGJ5dGVzIG9iamVjdCksIG9yCi0gICAgYW4gZXhpc3RpbmcgZmlsZSBvYmplY3QgdG8gcmVhZCBmcm9tIG9yIHdyaXRlIHRvLgorICAgIFRoZSBmaWxlbmFtZSBhcmd1bWVudCBjYW4gYmUgYW4gYWN0dWFsIGZpbGVuYW1lIChhIHN0ciBvciBieXRlcworICAgIG9iamVjdCksIG9yIGFuIGV4aXN0aW5nIGZpbGUgb2JqZWN0IHRvIHJlYWQgZnJvbSBvciB3cml0ZSB0by4KIAotICAgIFRoZSBtb2RlIGFyZ3VtZW50IGNhbiBiZSAiciIsICJyYiIsICJ3IiwgIndiIiwgImEiIG9yICJhYiIgZm9yIGJpbmFyeSBtb2RlLAotICAgIG9yICJydCIsICJ3dCIgb3IgImF0IiBmb3IgdGV4dCBtb2RlLiBUaGUgZGVmYXVsdCBtb2RlIGlzICJyYiIsIGFuZCB0aGUKLSAgICBkZWZhdWx0IGNvbXByZXNzbGV2ZWwgaXMgOS4KKyAgICBUaGUgbW9kZSBhcmd1bWVudCBjYW4gYmUgInIiLCAicmIiLCAidyIsICJ3YiIsICJhIiBvciAiYWIiIGZvcgorICAgIGJpbmFyeSBtb2RlLCBvciAicnQiLCAid3QiIG9yICJhdCIgZm9yIHRleHQgbW9kZS4gVGhlIGRlZmF1bHQgbW9kZQorICAgIGlzICJyYiIsIGFuZCB0aGUgZGVmYXVsdCBjb21wcmVzc2xldmVsIGlzIDkuCiAKLSAgICBGb3IgYmluYXJ5IG1vZGUsIHRoaXMgZnVuY3Rpb24gaXMgZXF1aXZhbGVudCB0byB0aGUgQloyRmlsZSBjb25zdHJ1Y3RvcjoKLSAgICBCWjJGaWxlKGZpbGVuYW1lLCBtb2RlLCBjb21wcmVzc2xldmVsKS4gSW4gdGhpcyBjYXNlLCB0aGUgZW5jb2RpbmcsIGVycm9ycwotICAgIGFuZCBuZXdsaW5lIGFyZ3VtZW50cyBtdXN0IG5vdCBiZSBwcm92aWRlZC4KKyAgICBGb3IgYmluYXJ5IG1vZGUsIHRoaXMgZnVuY3Rpb24gaXMgZXF1aXZhbGVudCB0byB0aGUgQloyRmlsZQorICAgIGNvbnN0cnVjdG9yOiBCWjJGaWxlKGZpbGVuYW1lLCBtb2RlLCBjb21wcmVzc2xldmVsKS4gSW4gdGhpcyBjYXNlLAorICAgIHRoZSBlbmNvZGluZywgZXJyb3JzIGFuZCBuZXdsaW5lIGFyZ3VtZW50cyBtdXN0IG5vdCBiZSBwcm92aWRlZC4KIAogICAgIEZvciB0ZXh0IG1vZGUsIGEgQloyRmlsZSBvYmplY3QgaXMgY3JlYXRlZCwgYW5kIHdyYXBwZWQgaW4gYW4KLSAgICBpby5UZXh0SU9XcmFwcGVyIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBlbmNvZGluZywgZXJyb3IgaGFuZGxpbmcKLSAgICBiZWhhdmlvciwgYW5kIGxpbmUgZW5kaW5nKHMpLgorICAgIGlvLlRleHRJT1dyYXBwZXIgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGVuY29kaW5nLCBlcnJvcgorICAgIGhhbmRsaW5nIGJlaGF2aW9yLCBhbmQgbGluZSBlbmRpbmcocykuCiAKICAgICAiIiIKICAgICBpZiAidCIgaW4gbW9kZToKZGlmZiAtLWdpdCBhL0xpYi9jUHJvZmlsZS5weSBiL0xpYi9jUHJvZmlsZS5weQppbmRleCBjMjRkNDViLi4xMTg0Mzg1IDEwMDc1NQotLS0gYS9MaWIvY1Byb2ZpbGUucHkKKysrIGIvTGliL2NQcm9maWxlLnB5CkBAIC03LDU0ICs3LDIwIEBACiBfX2FsbF9fID0gWyJydW4iLCAicnVuY3R4IiwgIlByb2ZpbGUiXQogCiBpbXBvcnQgX2xzcHJvZgoraW1wb3J0IHByb2ZpbGUgYXMgX3B5cHJvZmlsZQogCiAjIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogIyBTaW1wbGUgaW50ZXJmYWNlCiAKIGRlZiBydW4oc3RhdGVtZW50LCBmaWxlbmFtZT1Ob25lLCBzb3J0PS0xKToKLSAgICAiIiJSdW4gc3RhdGVtZW50IHVuZGVyIHByb2ZpbGVyIG9wdGlvbmFsbHkgc2F2aW5nIHJlc3VsdHMgaW4gZmlsZW5hbWUKLQotICAgIFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBzaW5nbGUgYXJndW1lbnQgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHRoZQotICAgICJleGVjIiBzdGF0ZW1lbnQsIGFuZCBhbiBvcHRpb25hbCBmaWxlIG5hbWUuICBJbiBhbGwgY2FzZXMgdGhpcwotICAgIHJvdXRpbmUgYXR0ZW1wdHMgdG8gImV4ZWMiIGl0cyBmaXJzdCBhcmd1bWVudCBhbmQgZ2F0aGVyIHByb2ZpbGluZwotICAgIHN0YXRpc3RpY3MgZnJvbSB0aGUgZXhlY3V0aW9uLiBJZiBubyBmaWxlIG5hbWUgaXMgcHJlc2VudCwgdGhlbiB0aGlzCi0gICAgZnVuY3Rpb24gYXV0b21hdGljYWxseSBwcmludHMgYSBzaW1wbGUgcHJvZmlsaW5nIHJlcG9ydCwgc29ydGVkIGJ5IHRoZQotICAgIHN0YW5kYXJkIG5hbWUgc3RyaW5nIChmaWxlL2xpbmUvZnVuY3Rpb24tbmFtZSkgdGhhdCBpcyBwcmVzZW50ZWQgaW4KLSAgICBlYWNoIGxpbmUuCi0gICAgIiIiCi0gICAgcHJvZiA9IFByb2ZpbGUoKQotICAgIHJlc3VsdCA9IE5vbmUKLSAgICB0cnk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHByb2YgPSBwcm9mLnJ1bihzdGF0ZW1lbnQpCi0gICAgICAgIGV4Y2VwdCBTeXN0ZW1FeGl0OgotICAgICAgICAgICAgcGFzcwotICAgIGZpbmFsbHk6Ci0gICAgICAgIGlmIGZpbGVuYW1lIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcHJvZi5kdW1wX3N0YXRzKGZpbGVuYW1lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVzdWx0ID0gcHJvZi5wcmludF9zdGF0cyhzb3J0KQotICAgIHJldHVybiByZXN1bHQKKyAgICByZXR1cm4gX3B5cHJvZmlsZS5fVXRpbHMoUHJvZmlsZSkucnVuKHN0YXRlbWVudCwgZmlsZW5hbWUsIHNvcnQpCiAKIGRlZiBydW5jdHgoc3RhdGVtZW50LCBnbG9iYWxzLCBsb2NhbHMsIGZpbGVuYW1lPU5vbmUsIHNvcnQ9LTEpOgotICAgICIiIlJ1biBzdGF0ZW1lbnQgdW5kZXIgcHJvZmlsZXIsIHN1cHBseWluZyB5b3VyIG93biBnbG9iYWxzIGFuZCBsb2NhbHMsCi0gICAgb3B0aW9uYWxseSBzYXZpbmcgcmVzdWx0cyBpbiBmaWxlbmFtZS4KKyAgICByZXR1cm4gX3B5cHJvZmlsZS5fVXRpbHMoUHJvZmlsZSkucnVuY3R4KHN0YXRlbWVudCwgZ2xvYmFscywgbG9jYWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsIHNvcnQpCiAKLSAgICBzdGF0ZW1lbnQgYW5kIGZpbGVuYW1lIGhhdmUgdGhlIHNhbWUgc2VtYW50aWNzIGFzIHByb2ZpbGUucnVuCi0gICAgIiIiCi0gICAgcHJvZiA9IFByb2ZpbGUoKQotICAgIHJlc3VsdCA9IE5vbmUKLSAgICB0cnk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHByb2YgPSBwcm9mLnJ1bmN0eChzdGF0ZW1lbnQsIGdsb2JhbHMsIGxvY2FscykKLSAgICAgICAgZXhjZXB0IFN5c3RlbUV4aXQ6Ci0gICAgICAgICAgICBwYXNzCi0gICAgZmluYWxseToKLSAgICAgICAgaWYgZmlsZW5hbWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBwcm9mLmR1bXBfc3RhdHMoZmlsZW5hbWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXN1bHQgPSBwcm9mLnByaW50X3N0YXRzKHNvcnQpCi0gICAgcmV0dXJuIHJlc3VsdAorcnVuLl9fZG9jX18gPSBfcHlwcm9maWxlLnJ1bi5fX2RvY19fCitydW5jdHguX19kb2NfXyA9IF9weXByb2ZpbGUucnVuY3R4Ll9fZG9jX18KIAogIyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIApAQCAtNzcsMTAgKzQzLDkgQEAKIAogICAgIGRlZiBkdW1wX3N0YXRzKHNlbGYsIGZpbGUpOgogICAgICAgICBpbXBvcnQgbWFyc2hhbAotICAgICAgICBmID0gb3BlbihmaWxlLCAnd2InKQotICAgICAgICBzZWxmLmNyZWF0ZV9zdGF0cygpCi0gICAgICAgIG1hcnNoYWwuZHVtcChzZWxmLnN0YXRzLCBmKQotICAgICAgICBmLmNsb3NlKCkKKyAgICAgICAgd2l0aCBvcGVuKGZpbGUsICd3YicpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmNyZWF0ZV9zdGF0cygpCisgICAgICAgICAgICBtYXJzaGFsLmR1bXAoc2VsZi5zdGF0cywgZikKIAogICAgIGRlZiBjcmVhdGVfc3RhdHMoc2VsZik6CiAgICAgICAgIHNlbGYuZGlzYWJsZSgpCmRpZmYgLS1naXQgYS9MaWIvY2dpLnB5IGIvTGliL2NnaS5weQppbmRleCA5NmIxZjU3Li4zODVhNTdjIDEwMDc1NQotLS0gYS9MaWIvY2dpLnB5CisrKyBiL0xpYi9jZ2kucHkKQEAgLTgwLDcgKzgwLDcgQEAKICAgICBpZiBsb2dmaWxlIGFuZCBub3QgbG9nZnA6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGxvZ2ZwID0gb3Blbihsb2dmaWxlLCAiYSIpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHBhc3MKICAgICBpZiBub3QgbG9nZnA6CiAgICAgICAgIGxvZyA9IG5vbG9nCkBAIC05NDksOCArOTQ5LDggQEAKICAgICBwcmludCgiPEgzPkN1cnJlbnQgV29ya2luZyBEaXJlY3Rvcnk6PC9IMz4iKQogICAgIHRyeToKICAgICAgICAgcHdkID0gb3MuZ2V0Y3dkKCkKLSAgICBleGNlcHQgb3MuZXJyb3IgYXMgbXNnOgotICAgICAgICBwcmludCgib3MuZXJyb3I6IiwgaHRtbC5lc2NhcGUoc3RyKG1zZykpKQorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIG1zZzoKKyAgICAgICAgcHJpbnQoIk9TRXJyb3I6IiwgaHRtbC5lc2NhcGUoc3RyKG1zZykpKQogICAgIGVsc2U6CiAgICAgICAgIHByaW50KGh0bWwuZXNjYXBlKHB3ZCkpCiAgICAgcHJpbnQoKQpkaWZmIC0tZ2l0IGEvTGliL2NodW5rLnB5IGIvTGliL2NodW5rLnB5CmluZGV4IDU4NjNlZDAuLmRjOTBhNzUgMTAwNjQ0Ci0tLSBhL0xpYi9jaHVuay5weQorKysgYi9MaWIvY2h1bmsucHkKQEAgLTcwLDcgKzcwLDcgQEAKICAgICAgICAgc2VsZi5zaXplX3JlYWQgPSAwCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYub2Zmc2V0ID0gc2VsZi5maWxlLnRlbGwoKQotICAgICAgICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBJT0Vycm9yKToKKyAgICAgICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgT1NFcnJvcik6CiAgICAgICAgICAgICBzZWxmLnNlZWthYmxlID0gRmFsc2UKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuc2Vla2FibGUgPSBUcnVlCkBAIC0xMDIsNyArMTAyLDcgQEAKICAgICAgICAgaWYgc2VsZi5jbG9zZWQ6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJL08gb3BlcmF0aW9uIG9uIGNsb3NlZCBmaWxlIikKICAgICAgICAgaWYgbm90IHNlbGYuc2Vla2FibGU6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKCJjYW5ub3Qgc2VlayIpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCJjYW5ub3Qgc2VlayIpCiAgICAgICAgIGlmIHdoZW5jZSA9PSAxOgogICAgICAgICAgICAgcG9zID0gcG9zICsgc2VsZi5zaXplX3JlYWQKICAgICAgICAgZWxpZiB3aGVuY2UgPT0gMjoKQEAgLTE1OCw3ICsxNTgsNyBAQAogICAgICAgICAgICAgICAgIHNlbGYuZmlsZS5zZWVrKG4sIDEpCiAgICAgICAgICAgICAgICAgc2VsZi5zaXplX3JlYWQgPSBzZWxmLnNpemVfcmVhZCArIG4KICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICB3aGlsZSBzZWxmLnNpemVfcmVhZCA8IHNlbGYuY2h1bmtzaXplOgogICAgICAgICAgICAgbiA9IG1pbig4MTkyLCBzZWxmLmNodW5rc2l6ZSAtIHNlbGYuc2l6ZV9yZWFkKQpkaWZmIC0tZ2l0IGEvTGliL2NvbGxlY3Rpb25zL19faW5pdF9fLnB5IGIvTGliL2NvbGxlY3Rpb25zL19faW5pdF9fLnB5CmluZGV4IDI1NDQwOWIuLmUxYTA3NWMgMTAwNjQ0Ci0tLSBhL0xpYi9jb2xsZWN0aW9ucy9fX2luaXRfXy5weQorKysgYi9MaWIvY29sbGVjdGlvbnMvX19pbml0X18ucHkKQEAgLTEyLDcgKzEyLDcgQEAKIGZyb20ga2V5d29yZCBpbXBvcnQgaXNrZXl3b3JkIGFzIF9pc2tleXdvcmQKIGltcG9ydCBzeXMgYXMgX3N5cwogaW1wb3J0IGhlYXBxIGFzIF9oZWFwcQotZnJvbSB3ZWFrcmVmIGltcG9ydCBwcm94eSBhcyBfcHJveHkKK2Zyb20gX3dlYWtyZWYgaW1wb3J0IHByb3h5IGFzIF9wcm94eQogZnJvbSBpdGVydG9vbHMgaW1wb3J0IHJlcGVhdCBhcyBfcmVwZWF0LCBjaGFpbiBhcyBfY2hhaW4sIHN0YXJtYXAgYXMgX3N0YXJtYXAKIGZyb20gcmVwcmxpYiBpbXBvcnQgcmVjdXJzaXZlX3JlcHIgYXMgX3JlY3Vyc2l2ZV9yZXByCiAKQEAgLTE5OSwxMyArMTk5LDEwIEBACiAKICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKICAgICAgICAgJ1JldHVybiBzdGF0ZSBpbmZvcm1hdGlvbiBmb3IgcGlja2xpbmcnCi0gICAgICAgIGl0ZW1zID0gW1trLCBzZWxmW2tdXSBmb3IgayBpbiBzZWxmXQogICAgICAgICBpbnN0X2RpY3QgPSB2YXJzKHNlbGYpLmNvcHkoKQogICAgICAgICBmb3IgayBpbiB2YXJzKE9yZGVyZWREaWN0KCkpOgogICAgICAgICAgICAgaW5zdF9kaWN0LnBvcChrLCBOb25lKQotICAgICAgICBpZiBpbnN0X2RpY3Q6Ci0gICAgICAgICAgICByZXR1cm4gKHNlbGYuX19jbGFzc19fLCAoaXRlbXMsKSwgaW5zdF9kaWN0KQotICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18sIChpdGVtcywpCisgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXywgKCksIGluc3RfZGljdCBvciBOb25lLCBOb25lLCBpdGVyKHNlbGYuaXRlbXMoKSkKIAogICAgIGRlZiBjb3B5KHNlbGYpOgogICAgICAgICAnb2QuY29weSgpIC0+IGEgc2hhbGxvdyBjb3B5IG9mIG9kJwpAQCAtODIyLDkgKzgxOSwxNCBAQAogCiAgICAgX19jb3B5X18gPSBjb3B5CiAKLSAgICBkZWYgbmV3X2NoaWxkKHNlbGYpOiAgICAgICAgICAgICAgICAgICAgICAgICMgbGlrZSBEamFuZ28ncyBDb250ZXh0LnB1c2goKQotICAgICAgICAnTmV3IENoYWluTWFwIHdpdGggYSBuZXcgZGljdCBmb2xsb3dlZCBieSBhbGwgcHJldmlvdXMgbWFwcy4nCi0gICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyh7fSwgKnNlbGYubWFwcykKKyAgICBkZWYgbmV3X2NoaWxkKHNlbGYsIG09Tm9uZSk6ICAgICAgICAgICAgICAgICMgbGlrZSBEamFuZ28ncyBDb250ZXh0LnB1c2goKQorICAgICAgICAnJycKKyAgICAgICAgTmV3IENoYWluTWFwIHdpdGggYSBuZXcgbWFwIGZvbGxvd2VkIGJ5IGFsbCBwcmV2aW91cyBtYXBzLiBJZiBubworICAgICAgICBtYXAgaXMgcHJvdmlkZWQsIGFuIGVtcHR5IGRpY3QgaXMgdXNlZC4KKyAgICAgICAgJycnCisgICAgICAgIGlmIG0gaXMgTm9uZToKKyAgICAgICAgICAgIG0gPSB7fQorICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18obSwgKnNlbGYubWFwcykKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBwYXJlbnRzKHNlbGYpOiAgICAgICAgICAgICAgICAgICAgICAgICAgIyBsaWtlIERqYW5nbydzIENvbnRleHQucG9wKCkKZGlmZiAtLWdpdCBhL0xpYi9jb2xsZWN0aW9ucy9hYmMucHkgYi9MaWIvY29sbGVjdGlvbnMvYWJjLnB5CmluZGV4IDc5MzkyNjguLjhiYWM5NTcgMTAwNjQ0Ci0tLSBhL0xpYi9jb2xsZWN0aW9ucy9hYmMucHkKKysrIGIvTGliL2NvbGxlY3Rpb25zL2FiYy5weQpAQCAtNDU0LDggKzQ1NCw3IEBACiAgICAgICAgIHJldHVybiBrZXkgaW4gc2VsZi5fbWFwcGluZwogCiAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgotICAgICAgICBmb3Iga2V5IGluIHNlbGYuX21hcHBpbmc6Ci0gICAgICAgICAgICB5aWVsZCBrZXkKKyAgICAgICAgeWllbGQgZnJvbSBzZWxmLl9tYXBwaW5nCiAKIEtleXNWaWV3LnJlZ2lzdGVyKGRpY3Rfa2V5cykKIApkaWZmIC0tZ2l0IGEvTGliL2NvbXBpbGVhbGwucHkgYi9MaWIvY29tcGlsZWFsbC5weQppbmRleCBkM2NmZjZhLi5hOGU5YTMxIDEwMDY0NAotLS0gYS9MaWIvY29tcGlsZWFsbC5weQorKysgYi9MaWIvY29tcGlsZWFsbC5weQpAQCAtMzgsNyArMzgsNyBAQAogICAgICAgICBwcmludCgnTGlzdGluZyB7IXJ9Li4uJy5mb3JtYXQoZGlyKSkKICAgICB0cnk6CiAgICAgICAgIG5hbWVzID0gb3MubGlzdGRpcihkaXIpCi0gICAgZXhjZXB0IG9zLmVycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICBwcmludCgiQ2FuJ3QgbGlzdCB7IXJ9Ii5mb3JtYXQoZGlyKSkKICAgICAgICAgbmFtZXMgPSBbXQogICAgIG5hbWVzLnNvcnQoKQpAQCAtMTA2LDcgKzEwNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWwgPSBjaGFuZGxlLnJlYWQoOCkKICAgICAgICAgICAgICAgICAgICAgaWYgZXhwZWN0ID09IGFjdHVhbDoKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZXNzCi0gICAgICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGlmIG5vdCBxdWlldDoKICAgICAgICAgICAgICAgICBwcmludCgnQ29tcGlsaW5nIHshcn0uLi4nLmZvcm1hdChmdWxsbmFtZSkpCkBAIC0xMjQsNyArMTI0LDcgQEAKICAgICAgICAgICAgICAgICBtc2cgPSBtc2cuZGVjb2RlKHN5cy5zdGRvdXQuZW5jb2RpbmcpCiAgICAgICAgICAgICAgICAgcHJpbnQobXNnKQogICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSAwCi0gICAgICAgICAgICBleGNlcHQgKFN5bnRheEVycm9yLCBVbmljb2RlRXJyb3IsIElPRXJyb3IpIGFzIGU6CisgICAgICAgICAgICBleGNlcHQgKFN5bnRheEVycm9yLCBVbmljb2RlRXJyb3IsIE9TRXJyb3IpIGFzIGU6CiAgICAgICAgICAgICAgICAgaWYgcXVpZXQ6CiAgICAgICAgICAgICAgICAgICAgIHByaW50KCcqKiogRXJyb3IgY29tcGlsaW5nIHshcn0uLi4nLmZvcm1hdChmdWxsbmFtZSkpCiAgICAgICAgICAgICAgICAgZWxzZToKQEAgLTIwOSw3ICsyMDksNyBAQAogICAgICAgICAgICAgd2l0aCAoc3lzLnN0ZGluIGlmIGFyZ3MuZmxpc3Q9PSctJyBlbHNlIG9wZW4oYXJncy5mbGlzdCkpIGFzIGY6CiAgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gZjoKICAgICAgICAgICAgICAgICAgICAgY29tcGlsZV9kZXN0cy5hcHBlbmQobGluZS5zdHJpcCgpKQotICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwcmludCgiRXJyb3IgcmVhZGluZyBmaWxlIGxpc3Qge30iLmZvcm1hdChhcmdzLmZsaXN0KSkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCmRpZmYgLS1naXQgYS9MaWIvY29uY3VycmVudC9mdXR1cmVzL19iYXNlLnB5IGIvTGliL2NvbmN1cnJlbnQvZnV0dXJlcy9fYmFzZS5weQppbmRleCBjYTNhZWJkLi4zZDAzMjgwIDEwMDY0NAotLS0gYS9MaWIvY29uY3VycmVudC9mdXR1cmVzL19iYXNlLnB5CisrKyBiL0xpYi9jb25jdXJyZW50L2Z1dHVyZXMvX2Jhc2UucHkKQEAgLTE5OCw4ICsxOTgsNyBAQAogICAgICAgICB3YWl0ZXIgPSBfY3JlYXRlX2FuZF9pbnN0YWxsX3dhaXRlcnMoZnMsIF9BU19DT01QTEVURUQpCiAKICAgICB0cnk6Ci0gICAgICAgIGZvciBmdXR1cmUgaW4gZmluaXNoZWQ6Ci0gICAgICAgICAgICB5aWVsZCBmdXR1cmUKKyAgICAgICAgeWllbGQgZnJvbSBmaW5pc2hlZAogCiAgICAgICAgIHdoaWxlIHBlbmRpbmc6CiAgICAgICAgICAgICBpZiB0aW1lb3V0IGlzIE5vbmU6CmRpZmYgLS1naXQgYS9MaWIvY29uY3VycmVudC9mdXR1cmVzL3Byb2Nlc3MucHkgYi9MaWIvY29uY3VycmVudC9mdXR1cmVzL3Byb2Nlc3MucHkKaW5kZXggMDQyMzhhNy4uM2MyMGI5MyAxMDA2NDQKLS0tIGEvTGliL2NvbmN1cnJlbnQvZnV0dXJlcy9wcm9jZXNzLnB5CisrKyBiL0xpYi9jb25jdXJyZW50L2Z1dHVyZXMvcHJvY2Vzcy5weQpAQCAtNDAsNyArNDAsNyBAQAogCiBQcm9jZXNzICMxLi5uOgogLSByZWFkcyBfQ2FsbEl0ZW1zIGZyb20gIkNhbGwgUSIsIGV4ZWN1dGVzIHRoZSBjYWxscywgYW5kIHB1dHMgdGhlIHJlc3VsdGluZwotICBfUmVzdWx0SXRlbXMgaW4gIlJlcXVlc3QgUSIKKyAgX1Jlc3VsdEl0ZW1zIGluICJSZXN1bHQgUSIKICIiIgogCiBfX2F1dGhvcl9fID0gJ0JyaWFuIFF1aW5sYW4gKGJyaWFuQHN3ZWV0YXBwLmNvbSknCkBAIC0yNDAsNiArMjQwLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXJtaW5hdGVkIGFicnVwdGx5IHdoaWxlIHRoZSBmdXR1cmUgd2FzICIKICAgICAgICAgICAgICAgICAgICAgICAgICJydW5uaW5nIG9yIHBlbmRpbmcuIgogICAgICAgICAgICAgICAgICAgICApKQorICAgICAgICAgICAgICAgICMgRGVsZXRlIHJlZmVyZW5jZXMgdG8gb2JqZWN0LiBTZWUgaXNzdWUxNjI4NAorICAgICAgICAgICAgICAgIGRlbCB3b3JrX2l0ZW0KICAgICAgICAgICAgIHBlbmRpbmdfd29ya19pdGVtcy5jbGVhcigpCiAgICAgICAgICAgICAjIFRlcm1pbmF0ZSByZW1haW5pbmcgd29ya2VycyBmb3JjaWJseTogdGhlIHF1ZXVlcyBvciB0aGVpcgogICAgICAgICAgICAgIyBsb2NrcyBtYXkgYmUgaW4gYSBkaXJ0eSBzdGF0ZSBhbmQgYmxvY2sgZm9yZXZlci4KQEAgLTI2NCw2ICsyNjYsOCBAQAogICAgICAgICAgICAgICAgICAgICB3b3JrX2l0ZW0uZnV0dXJlLnNldF9leGNlcHRpb24ocmVzdWx0X2l0ZW0uZXhjZXB0aW9uKQogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHdvcmtfaXRlbS5mdXR1cmUuc2V0X3Jlc3VsdChyZXN1bHRfaXRlbS5yZXN1bHQpCisgICAgICAgICAgICAgICAgIyBEZWxldGUgcmVmZXJlbmNlcyB0byBvYmplY3QuIFNlZSBpc3N1ZTE2Mjg0CisgICAgICAgICAgICAgICAgZGVsIHdvcmtfaXRlbQogICAgICAgICAjIENoZWNrIHdoZXRoZXIgd2Ugc2hvdWxkIHN0YXJ0IHNodXR0aW5nIGRvd24uCiAgICAgICAgIGV4ZWN1dG9yID0gZXhlY3V0b3JfcmVmZXJlbmNlKCkKICAgICAgICAgIyBObyBtb3JlIHdvcmsgaXRlbXMgY2FuIGJlIGFkZGVkIGlmOgpkaWZmIC0tZ2l0IGEvTGliL2NvbmN1cnJlbnQvZnV0dXJlcy90aHJlYWQucHkgYi9MaWIvY29uY3VycmVudC9mdXR1cmVzL3RocmVhZC5weQppbmRleCA5NWJiNjgyLi5mOWJlYjBmIDEwMDY0NAotLS0gYS9MaWIvY29uY3VycmVudC9mdXR1cmVzL3RocmVhZC5weQorKysgYi9MaWIvY29uY3VycmVudC9mdXR1cmVzL3RocmVhZC5weQpAQCAtNjMsNiArNjMsOCBAQAogICAgICAgICAgICAgd29ya19pdGVtID0gd29ya19xdWV1ZS5nZXQoYmxvY2s9VHJ1ZSkKICAgICAgICAgICAgIGlmIHdvcmtfaXRlbSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICB3b3JrX2l0ZW0ucnVuKCkKKyAgICAgICAgICAgICAgICAjIERlbGV0ZSByZWZlcmVuY2VzIHRvIG9iamVjdC4gU2VlIGlzc3VlMTYyODQKKyAgICAgICAgICAgICAgICBkZWwgd29ya19pdGVtCiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGV4ZWN1dG9yID0gZXhlY3V0b3JfcmVmZXJlbmNlKCkKICAgICAgICAgICAgICMgRXhpdCBpZjoKZGlmZiAtLWdpdCBhL0xpYi9jb25maWdwYXJzZXIucHkgYi9MaWIvY29uZmlncGFyc2VyLnB5CmluZGV4IDZjNWFhNDkuLjcwODU1M2QgMTAwNjQ0Ci0tLSBhL0xpYi9jb25maWdwYXJzZXIucHkKKysrIGIvTGliL2NvbmZpZ3BhcnNlci5weQpAQCAtNjg3LDcgKzY4Nyw3IEBACiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCBlbmNvZGluZz1lbmNvZGluZykgYXMgZnA6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlYWQoZnAsIGZpbGVuYW1lKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgcmVhZF9vay5hcHBlbmQoZmlsZW5hbWUpCiAgICAgICAgIHJldHVybiByZWFkX29rCmRpZmYgLS1naXQgYS9MaWIvY29udGV4dGxpYi5weSBiL0xpYi9jb250ZXh0bGliLnB5CmluZGV4IDBiNmJmNzEuLjAzYzU2ZGEgMTAwNjQ0Ci0tLSBhL0xpYi9jb250ZXh0bGliLnB5CisrKyBiL0xpYi9jb250ZXh0bGliLnB5CkBAIC00LDcgKzQsNyBAQAogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUKIGZyb20gZnVuY3Rvb2xzIGltcG9ydCB3cmFwcwogCi1fX2FsbF9fID0gWyJjb250ZXh0bWFuYWdlciIsICJjbG9zaW5nIiwgIkNvbnRleHREZWNvcmF0b3IiLCAiRXhpdFN0YWNrIl0KK19fYWxsX18gPSBbImNvbnRleHRtYW5hZ2VyIiwgImNsb3NpbmciLCAiQ29udGV4dERlY29yYXRvciIsICJFeGl0U3RhY2siLCAiaWdub3JlZCJdCiAKIAogY2xhc3MgQ29udGV4dERlY29yYXRvcihvYmplY3QpOgpAQCAtMTQwLDYgKzE0MCwxOCBAQAogICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqZXhjX2luZm8pOgogICAgICAgICBzZWxmLnRoaW5nLmNsb3NlKCkKIAorQGNvbnRleHRtYW5hZ2VyCitkZWYgaWdub3JlZCgqZXhjZXB0aW9ucyk6CisgICAgIiIiQ29udGV4dCBtYW5hZ2VyIHRvIGlnbm9yZSBzcGVjaWZlZCBleGNlcHRpb25zCisKKyAgICAgICAgIHdpdGggaWdub3JlZChPU0Vycm9yKToKKyAgICAgICAgICAgICBvcy5yZW1vdmUoc29tZWZpbGUpCisKKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIHlpZWxkCisgICAgZXhjZXB0IGV4Y2VwdGlvbnM6CisgICAgICAgIHBhc3MKIAogIyBJbnNwaXJlZCBieSBkaXNjdXNzaW9ucyBvbiBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMTM1ODUKIGNsYXNzIEV4aXRTdGFjayhvYmplY3QpOgpkaWZmIC0tZ2l0IGEvTGliL2N0eXBlcy9fX2luaXRfXy5weSBiL0xpYi9jdHlwZXMvX19pbml0X18ucHkKaW5kZXggYzkyZTEzMC4uZTM0YzY0NiAxMDA2NDQKLS0tIGEvTGliL2N0eXBlcy9fX2luaXRfXy5weQorKysgYi9MaWIvY3R5cGVzL19faW5pdF9fLnB5CkBAIC0zNCwxNyArMzQsMTUgQEAKICAgICAgRlVOQ0ZMQUdfVVNFX0VSUk5PIGFzIF9GVU5DRkxBR19VU0VfRVJSTk8sIFwKICAgICAgRlVOQ0ZMQUdfVVNFX0xBU1RFUlJPUiBhcyBfRlVOQ0ZMQUdfVVNFX0xBU1RFUlJPUgogCi0iIiIKLVdJTk9MRUFQSSAtPiBIUkVTVUxUCi1XSU5PTEVBUElfKHR5cGUpCi0KLVNURE1FVEhPRENBTExUWVBFCi0KLVNURE1FVEhPRChuYW1lKQotU1RETUVUSE9EXyh0eXBlLCBuYW1lKQotCi1TVERBUElDQUxMVFlQRQotIiIiCisjIFdJTk9MRUFQSSAtPiBIUkVTVUxUCisjIFdJTk9MRUFQSV8odHlwZSkKKyMKKyMgU1RETUVUSE9EQ0FMTFRZUEUKKyMKKyMgU1RETUVUSE9EKG5hbWUpCisjIFNURE1FVEhPRF8odHlwZSwgbmFtZSkKKyMKKyMgU1REQVBJQ0FMTFRZUEUKIAogZGVmIGNyZWF0ZV9zdHJpbmdfYnVmZmVyKGluaXQsIHNpemU9Tm9uZSk6CiAgICAgIiIiY3JlYXRlX3N0cmluZ19idWZmZXIoYUJ5dGVzKSAtPiBjaGFyYWN0ZXIgYXJyYXkKQEAgLTM5NSw3ICszOTMsNyBAQAogICAgICAgICBfdHlwZV8gPSAibCIKICAgICAgICAgIyBfY2hlY2tfcmV0dmFsXyBpcyBjYWxsZWQgd2l0aCB0aGUgZnVuY3Rpb24ncyByZXN1bHQgd2hlbiBpdAogICAgICAgICAjIGlzIHVzZWQgYXMgcmVzdHlwZS4gIEl0IGNoZWNrcyBmb3IgdGhlIEZBSUxFRCBiaXQsIGFuZAotICAgICAgICAjIHJhaXNlcyBhIFdpbmRvd3NFcnJvciBpZiBpdCBpcyBzZXQuCisgICAgICAgICMgcmFpc2VzIGFuIE9TRXJyb3IgaWYgaXQgaXMgc2V0LgogICAgICAgICAjCiAgICAgICAgICMgVGhlIF9jaGVja19yZXR2YWxfIG1ldGhvZCBpcyBpbXBsZW1lbnRlZCBpbiBDLCBzbyB0aGF0IHRoZQogICAgICAgICAjIG1ldGhvZCBkZWZpbml0aW9uIGl0c2VsZiBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIHRyYWNlYmFjawpAQCAtNDA3LDcgKzQwNSw3IEBACiAgICAgY2xhc3MgT2xlRExMKENETEwpOgogICAgICAgICAiIiJUaGlzIGNsYXNzIHJlcHJlc2VudHMgYSBkbGwgZXhwb3J0aW5nIGZ1bmN0aW9ucyB1c2luZyB0aGUKICAgICAgICAgV2luZG93cyBzdGRjYWxsIGNhbGxpbmcgY29udmVudGlvbiwgYW5kIHJldHVybmluZyBIUkVTVUxULgotICAgICAgICBIUkVTVUxUIGVycm9yIHZhbHVlcyBhcmUgYXV0b21hdGljYWxseSByYWlzZWQgYXMgV2luZG93c0Vycm9yCisgICAgICAgIEhSRVNVTFQgZXJyb3IgdmFsdWVzIGFyZSBhdXRvbWF0aWNhbGx5IHJhaXNlZCBhcyBPU0Vycm9yCiAgICAgICAgIGV4Y2VwdGlvbnMuCiAgICAgICAgICIiIgogICAgICAgICBfZnVuY19mbGFnc18gPSBfRlVOQ0ZMQUdfU1REQ0FMTApAQCAtNDU2LDcgKzQ1NCw3IEBACiAgICAgICAgICAgICBjb2RlID0gR2V0TGFzdEVycm9yKCkKICAgICAgICAgaWYgZGVzY3IgaXMgTm9uZToKICAgICAgICAgICAgIGRlc2NyID0gRm9ybWF0RXJyb3IoY29kZSkuc3RyaXAoKQotICAgICAgICByZXR1cm4gV2luZG93c0Vycm9yKE5vbmUsIGRlc2NyLCBOb25lLCBjb2RlKQorICAgICAgICByZXR1cm4gT1NFcnJvcihOb25lLCBkZXNjciwgTm9uZSwgY29kZSkKIAogaWYgc2l6ZW9mKGNfdWludCkgPT0gc2l6ZW9mKGNfdm9pZF9wKToKICAgICBjX3NpemVfdCA9IGNfdWludApkaWZmIC0tZ2l0IGEvTGliL2N0eXBlcy90ZXN0L19faW5pdF9fLnB5IGIvTGliL2N0eXBlcy90ZXN0L19faW5pdF9fLnB5CmluZGV4IGNjNWZlMDIuLjdjNzIyMTAgMTAwNjQ0Ci0tLSBhL0xpYi9jdHlwZXMvdGVzdC9fX2luaXRfXy5weQorKysgYi9MaWIvY3R5cGVzL3Rlc3QvX19pbml0X18ucHkKQEAgLTM3LDcgKzM3LDcgQEAKIAogZGVmIGZpbmRfcGFja2FnZV9tb2R1bGVzKHBhY2thZ2UsIG1hc2spOgogICAgIGltcG9ydCBmbm1hdGNoCi0gICAgaWYgKGhhc2F0dHIocGFja2FnZSwgIl9fbG9hZGVyX18iKSBhbmQKKyAgICBpZiAocGFja2FnZS5fX2xvYWRlcl9fIGlzIG5vdCBOb25lIGFuZAogICAgICAgICAgICAgaGFzYXR0cihwYWNrYWdlLl9fbG9hZGVyX18sICdfZmlsZXMnKSk6CiAgICAgICAgIHBhdGggPSBwYWNrYWdlLl9fbmFtZV9fLnJlcGxhY2UoIi4iLCBvcy5wYXRoLnNlcCkKICAgICAgICAgbWFzayA9IG9zLnBhdGguam9pbihwYXRoLCBtYXNrKQpkaWZmIC0tZ2l0IGEvTGliL2N0eXBlcy90ZXN0L3Rlc3RfY2hlY2tyZXR2YWwucHkgYi9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9jaGVja3JldHZhbC5weQppbmRleCAwMWNjYzU3Li4xOWJiODEzIDEwMDY0NAotLS0gYS9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9jaGVja3JldHZhbC5weQorKysgYi9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9jaGVja3JldHZhbC5weQpAQCAtMzEsNyArMzEsNyBAQAogICAgICAgICBwYXNzCiAgICAgZWxzZToKICAgICAgICAgZGVmIHRlc3Rfb2xlZGxsKHNlbGYpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoV2luZG93c0Vycm9yLAorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGVkbGwub2xlYXV0MzIuQ3JlYXRlVHlwZUxpYjIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgTm9uZSwgTm9uZSkKIApkaWZmIC0tZ2l0IGEvTGliL2N0eXBlcy90ZXN0L3Rlc3RfaW50ZXJuYWxzLnB5IGIvTGliL2N0eXBlcy90ZXN0L3Rlc3RfaW50ZXJuYWxzLnB5CmluZGV4IGNiZjJlMDUuLjI3MWUzZjUgMTAwNjQ0Ci0tLSBhL0xpYi9jdHlwZXMvdGVzdC90ZXN0X2ludGVybmFscy5weQorKysgYi9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9pbnRlcm5hbHMucHkKQEAgLTUsMTcgKzUsMTQgQEAKIAogIyBYWFggVGhpcyB0ZXN0IG11c3QgYmUgcmV2aWV3ZWQgZm9yIGNvcnJlY3RuZXNzISEhCiAKLSIiIgotY3R5cGVzJyB0eXBlcyBhcmUgY29udGFpbmVyIHR5cGVzLgotCi1UaGV5IGhhdmUgYW4gaW50ZXJuYWwgbWVtb3J5IGJsb2NrLCB3aGljaCBvbmx5IGNvbnNpc3RzIG9mIHNvbWUgYnl0ZXMsCi1idXQgaXQgaGFzIHRvIGtlZXAgcmVmZXJlbmNlcyB0byBvdGhlciBvYmplY3RzIGFzIHdlbGwuIFRoaXMgaXMgbm90Ci1yZWFsbHkgbmVlZGVkIGZvciB0cml2aWFsIEMgdHlwZXMgbGlrZSBpbnQgb3IgY2hhciwgYnV0IGl0IGlzIGltcG9ydGFudAotZm9yIGFnZ3JlZ2F0ZSB0eXBlcyBsaWtlIHN0cmluZ3Mgb3IgcG9pbnRlcnMgaW4gcGFydGljdWxhci4KLQotV2hhdCBhYm91dCBwb2ludGVycz8KLQotIiIiCisjIGN0eXBlcycgdHlwZXMgYXJlIGNvbnRhaW5lciB0eXBlcy4KKyMKKyMgVGhleSBoYXZlIGFuIGludGVybmFsIG1lbW9yeSBibG9jaywgd2hpY2ggb25seSBjb25zaXN0cyBvZiBzb21lIGJ5dGVzLAorIyBidXQgaXQgaGFzIHRvIGtlZXAgcmVmZXJlbmNlcyB0byBvdGhlciBvYmplY3RzIGFzIHdlbGwuIFRoaXMgaXMgbm90CisjIHJlYWxseSBuZWVkZWQgZm9yIHRyaXZpYWwgQyB0eXBlcyBsaWtlIGludCBvciBjaGFyLCBidXQgaXQgaXMgaW1wb3J0YW50CisjIGZvciBhZ2dyZWdhdGUgdHlwZXMgbGlrZSBzdHJpbmdzIG9yIHBvaW50ZXJzIGluIHBhcnRpY3VsYXIuCisjCisjIFdoYXQgYWJvdXQgcG9pbnRlcnM/CiAKIGNsYXNzIE9iamVjdHNUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIGFzc2VydFNhbWUoc2VsZiwgYSwgYik6CmRpZmYgLS1naXQgYS9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9tYWNob2xpYi5weSBiL0xpYi9jdHlwZXMvdGVzdC90ZXN0X21hY2hvbGliLnB5CmluZGV4IGVkYTg0NmQuLmZkMjY4MzcgMTAwNjQ0Ci0tLSBhL0xpYi9jdHlwZXMvdGVzdC90ZXN0X21hY2hvbGliLnB5CisrKyBiL0xpYi9jdHlwZXMvdGVzdC90ZXN0X21hY2hvbGliLnB5CkBAIC0zLDM1ICszLDMzIEBACiBpbXBvcnQgdW5pdHRlc3QKIAogIyBCb2IgSXBwb2xpdG86Ci0iIiIKLU9rLi4gdGhlIGNvZGUgdG8gZmluZCB0aGUgZmlsZW5hbWUgZm9yIF9fZ2V0YXR0cl9fIHNob3VsZCBsb29rCi1zb21ldGhpbmcgbGlrZToKLQotaW1wb3J0IG9zCi1mcm9tIG1hY2hvbGliLmR5bGQgaW1wb3J0IGR5bGRfZmluZAotCi1kZWYgZmluZF9saWIobmFtZSk6Ci0gICAgIHBvc3NpYmxlID0gWydsaWInK25hbWUrJy5keWxpYicsIG5hbWUrJy5keWxpYicsCi0gICAgIG5hbWUrJy5mcmFtZXdvcmsvJytuYW1lXQotICAgICBmb3IgZHlsaWIgaW4gcG9zc2libGU6Ci0gICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgcmV0dXJuIG9zLnBhdGgucmVhbHBhdGgoZHlsZF9maW5kKGR5bGliKSkKLSAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgIHBhc3MKLSAgICAgcmFpc2UgVmFsdWVFcnJvciwgIiVzIG5vdCBmb3VuZCIgJSAobmFtZSwpCi0KLUl0J2xsIGhhdmUgb3V0cHV0IGxpa2UgdGhpczoKLQotID4+PiBmaW5kX2xpYigncHRocmVhZCcpCi0nL3Vzci9saWIvbGliU3lzdGVtLkIuZHlsaWInCi0gPj4+IGZpbmRfbGliKCd6JykKLScvdXNyL2xpYi9saWJ6LjEuZHlsaWInCi0gPj4+IGZpbmRfbGliKCdJT0tpdCcpCi0nL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSU9LaXQnCi0KLS1ib2IKLQotIiIiCisjCisjIE9rLi4gdGhlIGNvZGUgdG8gZmluZCB0aGUgZmlsZW5hbWUgZm9yIF9fZ2V0YXR0cl9fIHNob3VsZCBsb29rCisjIHNvbWV0aGluZyBsaWtlOgorIworIyBpbXBvcnQgb3MKKyMgZnJvbSBtYWNob2xpYi5keWxkIGltcG9ydCBkeWxkX2ZpbmQKKyMKKyMgZGVmIGZpbmRfbGliKG5hbWUpOgorIyAgICAgIHBvc3NpYmxlID0gWydsaWInK25hbWUrJy5keWxpYicsIG5hbWUrJy5keWxpYicsCisjICAgICAgbmFtZSsnLmZyYW1ld29yay8nK25hbWVdCisjICAgICAgZm9yIGR5bGliIGluIHBvc3NpYmxlOgorIyAgICAgICAgICB0cnk6CisjICAgICAgICAgICAgICByZXR1cm4gb3MucGF0aC5yZWFscGF0aChkeWxkX2ZpbmQoZHlsaWIpKQorIyAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyMgICAgICAgICAgICAgIHBhc3MKKyMgICAgICByYWlzZSBWYWx1ZUVycm9yLCAiJXMgbm90IGZvdW5kIiAlIChuYW1lLCkKKyMKKyMgSXQnbGwgaGF2ZSBvdXRwdXQgbGlrZSB0aGlzOgorIworIyAgPj4+IGZpbmRfbGliKCdwdGhyZWFkJykKKyMgJy91c3IvbGliL2xpYlN5c3RlbS5CLmR5bGliJworIyAgPj4+IGZpbmRfbGliKCd6JykKKyMgJy91c3IvbGliL2xpYnouMS5keWxpYicKKyMgID4+PiBmaW5kX2xpYignSU9LaXQnKQorIyAnL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvSU9LaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSU9LaXQnCisjCisjIC1ib2IKIAogZnJvbSBjdHlwZXMubWFjaG9saWIuZHlsZCBpbXBvcnQgZHlsZF9maW5kCiAKZGlmZiAtLWdpdCBhL0xpYi9jdHlwZXMvdGVzdC90ZXN0X3dpbjMyLnB5IGIvTGliL2N0eXBlcy90ZXN0L3Rlc3Rfd2luMzIucHkKaW5kZXggZGEyMTMzNi4uOTFhZDMxNCAxMDA2NDQKLS0tIGEvTGliL2N0eXBlcy90ZXN0L3Rlc3Rfd2luMzIucHkKKysrIGIvTGliL2N0eXBlcy90ZXN0L3Rlc3Rfd2luMzIucHkKQEAgLTQxLDcgKzQxLDcgQEAKICAgICAgICAgICAgICAgICAjIENhbGwgZnVuY3Rpb25zIHdpdGggaW52YWxpZCBhcmd1bWVudHMsIGFuZCBtYWtlIHN1cmUKICAgICAgICAgICAgICAgICAjIHRoYXQgYWNjZXNzIHZpb2xhdGlvbnMgYXJlIHRyYXBwZWQgYW5kIHJhaXNlIGFuCiAgICAgICAgICAgICAgICAgIyBleGNlcHRpb24uCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoV2luZG93c0Vycm9yLCB3aW5kbGwua2VybmVsMzIuR2V0TW9kdWxlSGFuZGxlQSwgMzIpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgd2luZGxsLmtlcm5lbDMyLkdldE1vZHVsZUhhbmRsZUEsIDMyKQogCiAgICAgICAgIGRlZiB0ZXN0X25vYXJncyhzZWxmKToKICAgICAgICAgICAgICMgVGhpcyBpcyBhIHNwZWNpYWwgY2FzZSBvbiB3aW4zMiB4NjQKZGlmZiAtLWdpdCBhL0xpYi9jdHlwZXMvdXRpbC5weSBiL0xpYi9jdHlwZXMvdXRpbC5weQppbmRleCAwNTRjNTExLi5kMmMwNGQyIDEwMDY0NAotLS0gYS9MaWIvY3R5cGVzL3V0aWwucHkKKysrIGIvTGliL2N0eXBlcy91dGlsLnB5CkBAIC0xMDIsOSArMTAyLDggQEAKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBvcy51bmxpbmsoY2NvdXQpCi0gICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgotICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRU5PRU5UOgotICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgZXhjZXB0IEZpbGVOb3RGb3VuZEVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgaWYgcnYgPT0gMTA6CiAgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCdnY2Mgb3IgY2MgY29tbWFuZCBub3QgZm91bmQnKQogICAgICAgICByZXMgPSByZS5zZWFyY2goZXhwciwgdHJhY2UpCmRpZmYgLS1naXQgYS9MaWIvZGF0ZXRpbWUucHkgYi9MaWIvZGF0ZXRpbWUucHkKaW5kZXggOTU0NjZkNS4uYmMxNDg2YyAxMDA2NDQKLS0tIGEvTGliL2RhdGV0aW1lLnB5CisrKyBiL0xpYi9kYXRldGltZS5weQpAQCAtMTkxNywyMDMgKzE5MTcsMjAzIEBACiB0aW1lem9uZS5taW4gPSB0aW1lem9uZS5fY3JlYXRlKHRpbWV6b25lLl9taW5vZmZzZXQpCiB0aW1lem9uZS5tYXggPSB0aW1lem9uZS5fY3JlYXRlKHRpbWV6b25lLl9tYXhvZmZzZXQpCiBfRVBPQ0ggPSBkYXRldGltZSgxOTcwLCAxLCAxLCB0emluZm89dGltZXpvbmUudXRjKQotIiIiCi1Tb21lIHRpbWUgem9uZSBhbGdlYnJhLiAgRm9yIGEgZGF0ZXRpbWUgeCwgbGV0Ci0gICAgeC5uID0geCBzdHJpcHBlZCBvZiBpdHMgdGltZXpvbmUgLS0gaXRzIG5haXZlIHRpbWUuCi0gICAgeC5vID0geC51dGNvZmZzZXQoKSwgYW5kIGFzc3VtaW5nIHRoYXQgZG9lc24ndCByYWlzZSBhbiBleGNlcHRpb24gb3IKLSAgICAgICAgICByZXR1cm4gTm9uZQotICAgIHguZCA9IHguZHN0KCksIGFuZCBhc3N1bWluZyB0aGF0IGRvZXNuJ3QgcmFpc2UgYW4gZXhjZXB0aW9uIG9yCi0gICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICB4LnMgPSB4J3Mgc3RhbmRhcmQgb2Zmc2V0LCB4Lm8gLSB4LmQKIAotTm93IHNvbWUgZGVyaXZlZCBydWxlcywgd2hlcmUgayBpcyBhIGR1cmF0aW9uICh0aW1lZGVsdGEpLgorIyBTb21lIHRpbWUgem9uZSBhbGdlYnJhLiAgRm9yIGEgZGF0ZXRpbWUgeCwgbGV0CisjICAgICB4Lm4gPSB4IHN0cmlwcGVkIG9mIGl0cyB0aW1lem9uZSAtLSBpdHMgbmFpdmUgdGltZS4KKyMgICAgIHgubyA9IHgudXRjb2Zmc2V0KCksIGFuZCBhc3N1bWluZyB0aGF0IGRvZXNuJ3QgcmFpc2UgYW4gZXhjZXB0aW9uIG9yCisjICAgICAgICAgICByZXR1cm4gTm9uZQorIyAgICAgeC5kID0geC5kc3QoKSwgYW5kIGFzc3VtaW5nIHRoYXQgZG9lc24ndCByYWlzZSBhbiBleGNlcHRpb24gb3IKKyMgICAgICAgICAgIHJldHVybiBOb25lCisjICAgICB4LnMgPSB4J3Mgc3RhbmRhcmQgb2Zmc2V0LCB4Lm8gLSB4LmQKKyMKKyMgTm93IHNvbWUgZGVyaXZlZCBydWxlcywgd2hlcmUgayBpcyBhIGR1cmF0aW9uICh0aW1lZGVsdGEpLgorIworIyAxLiB4Lm8gPSB4LnMgKyB4LmQKKyMgICAgVGhpcyBmb2xsb3dzIGZyb20gdGhlIGRlZmluaXRpb24gb2YgeC5zLgorIworIyAyLiBJZiB4IGFuZCB5IGhhdmUgdGhlIHNhbWUgdHppbmZvIG1lbWJlciwgeC5zID0geS5zLgorIyAgICBUaGlzIGlzIGFjdHVhbGx5IGEgcmVxdWlyZW1lbnQsIGFuIGFzc3VtcHRpb24gd2UgbmVlZCB0byBtYWtlIGFib3V0CisjICAgIHNhbmUgdHppbmZvIGNsYXNzZXMuCisjCisjIDMuIFRoZSBuYWl2ZSBVVEMgdGltZSBjb3JyZXNwb25kaW5nIHRvIHggaXMgeC5uIC0geC5vLgorIyAgICBUaGlzIGlzIGFnYWluIGEgcmVxdWlyZW1lbnQgZm9yIGEgc2FuZSB0emluZm8gY2xhc3MuCisjCisjIDQuICh4K2spLnMgPSB4LnMKKyMgICAgVGhpcyBmb2xsb3dzIGZyb20gIzIsIGFuZCB0aGF0IGRhdGltZXRpbWV0eit0aW1lZGVsdGEgcHJlc2VydmVzIHR6aW5mby4KKyMKKyMgNS4gKHgraykubiA9IHgubiArIGsKKyMgICAgQWdhaW4gZm9sbG93cyBmcm9tIGhvdyBhcml0aG1ldGljIGlzIGRlZmluZWQuCisjCisjIE5vdyB3ZSBjYW4gZXhwbGFpbiB0ei5mcm9tdXRjKHgpLiAgTGV0J3MgYXNzdW1lIGl0J3MgYW4gaW50ZXJlc3RpbmcgY2FzZQorIyAobWVhbmluZyB0aGF0IHRoZSB2YXJpb3VzIHR6aW5mbyBtZXRob2RzIGV4aXN0LCBhbmQgZG9uJ3QgYmxvdyB1cCBvciByZXR1cm4KKyMgTm9uZSB3aGVuIGNhbGxlZCkuCisjCisjIFRoZSBmdW5jdGlvbiB3YW50cyB0byByZXR1cm4gYSBkYXRldGltZSB5IHdpdGggdGltZXpvbmUgdHosIGVxdWl2YWxlbnQgdG8geC4KKyMgeCBpcyBhbHJlYWR5IGluIFVUQy4KKyMKKyMgQnkgIzMsIHdlIHdhbnQKKyMKKyMgICAgIHkubiAtIHkubyA9IHgubiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzFdCisjCisjIFRoZSBhbGdvcml0aG0gc3RhcnRzIGJ5IGF0dGFjaGluZyB0eiB0byB4Lm4sIGFuZCBjYWxsaW5nIHRoYXQgeS4gIFNvCisjIHgubiA9IHkubiBhdCB0aGUgc3RhcnQuICBUaGVuIGl0IHdhbnRzIHRvIGFkZCBhIGR1cmF0aW9uIGsgdG8geSwgc28gdGhhdCBbMV0KKyMgYmVjb21lcyB0cnVlOyBpbiBlZmZlY3QsIHdlIHdhbnQgdG8gc29sdmUgWzJdIGZvciBrOgorIworIyAgICAoeStrKS5uIC0gKHkraykubyA9IHgubiAgICAgICAgICAgICAgICAgICAgICBbMl0KKyMKKyMgQnkgIzEsIHRoaXMgaXMgdGhlIHNhbWUgYXMKKyMKKyMgICAgKHkraykubiAtICgoeStrKS5zICsgKHkraykuZCkgPSB4Lm4gICAgICAgICAgWzNdCisjCisjIEJ5ICM1LCAoeStrKS5uID0geS5uICsgaywgd2hpY2ggZXF1YWxzIHgubiArIGsgYmVjYXVzZSB4Lm49eS5uIGF0IHRoZSBzdGFydC4KKyMgU3Vic3RpdHV0aW5nIHRoYXQgaW50byBbM10sCisjCisjICAgIHgubiArIGsgLSAoeStrKS5zIC0gKHkraykuZCA9IHgubjsgdGhlIHgubiB0ZXJtcyBjYW5jZWwsIGxlYXZpbmcKKyMgICAgayAtICh5K2spLnMgLSAoeStrKS5kID0gMDsgcmVhcnJhbmdpbmcsCisjICAgIGsgPSAoeStrKS5zIC0gKHkraykuZDsgYnkgIzQsICh5K2spLnMgPT0geS5zLCBzbworIyAgICBrID0geS5zIC0gKHkraykuZAorIworIyBPbiB0aGUgUkhTLCAoeStrKS5kIGNhbid0IGJlIGNvbXB1dGVkIGRpcmVjdGx5LCBidXQgeS5zIGNhbiBiZSwgYW5kIHdlCisjIGFwcHJveGltYXRlIGsgYnkgaWdub3JpbmcgdGhlICh5K2spLmQgdGVybSBhdCBmaXJzdC4gIE5vdGUgdGhhdCBrIGNhbid0IGJlCisjIHZlcnkgbGFyZ2UsIHNpbmNlIGFsbCBvZmZzZXQtcmV0dXJuaW5nIG1ldGhvZHMgcmV0dXJuIGEgZHVyYXRpb24gb2YgbWFnbml0dWRlCisjIGxlc3MgdGhhbiAyNCBob3Vycy4gIEZvciB0aGF0IHJlYXNvbiwgaWYgeSBpcyBmaXJtbHkgaW4gc3RkIHRpbWUsICh5K2spLmQgbXVzdAorIyBiZSAwLCBzbyBpZ25vcmluZyBpdCBoYXMgbm8gY29uc2VxdWVuY2UgdGhlbi4KKyMKKyMgSW4gYW55IGNhc2UsIHRoZSBuZXcgdmFsdWUgaXMKKyMKKyMgICAgIHogPSB5ICsgeS5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzRdCisjCisjIEl0J3MgaGVscGZ1bCB0byBzdGVwIGJhY2sgYXQgbG9vayBhdCBbNF0gZnJvbSBhIGhpZ2hlciBsZXZlbDogIGl0J3Mgc2ltcGx5CisjIG1hcHBpbmcgZnJvbSBVVEMgdG8gdHoncyBzdGFuZGFyZCB0aW1lLgorIworIyBBdCB0aGlzIHBvaW50LCBpZgorIworIyAgICAgei5uIC0gei5vID0geC5uICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbNV0KKyMKKyMgd2UgaGF2ZSBhbiBlcXVpdmFsZW50IHRpbWUsIGFuZCBhcmUgYWxtb3N0IGRvbmUuICBUaGUgaW5zZWN1cml0eSBoZXJlIGlzCisjIGF0IHRoZSBzdGFydCBvZiBkYXlsaWdodCB0aW1lLiAgUGljdHVyZSBVUyBFYXN0ZXJuIGZvciBjb25jcmV0ZW5lc3MuICBUaGUgd2FsbAorIyB0aW1lIGp1bXBzIGZyb20gMTo1OSB0byAzOjAwLCBhbmQgd2FsbCBob3VycyBvZiB0aGUgZm9ybSAyOk1NIGRvbid0IG1ha2UgZ29vZAorIyBzZW5zZSB0aGVuLiAgVGhlIGRvY3MgYXNrIHRoYXQgYW4gRWFzdGVybiB0emluZm8gY2xhc3MgY29uc2lkZXIgc3VjaCBhIHRpbWUgdG8KKyMgYmUgRURUIChiZWNhdXNlIGl0J3MgImFmdGVyIDIiKSwgd2hpY2ggaXMgYSByZWR1bmRhbnQgc3BlbGxpbmcgb2YgMTpNTSBFU1QKKyMgb24gdGhlIGRheSBEU1Qgc3RhcnRzLiAgV2Ugd2FudCB0byByZXR1cm4gdGhlIDE6TU0gRVNUIHNwZWxsaW5nIGJlY2F1c2UgdGhhdCdzCisjIHRoZSBvbmx5IHNwZWxsaW5nIHRoYXQgbWFrZXMgc2Vuc2Ugb24gdGhlIGxvY2FsIHdhbGwgY2xvY2suCisjCisjIEluIGZhY3QsIGlmIFs1XSBob2xkcyBhdCB0aGlzIHBvaW50LCB3ZSBkbyBoYXZlIHRoZSBzdGFuZGFyZC10aW1lIHNwZWxsaW5nLAorIyBidXQgdGhhdCB0YWtlcyBhIGJpdCBvZiBwcm9vZi4gIFdlIGZpcnN0IHByb3ZlIGEgc3Ryb25nZXIgcmVzdWx0LiAgV2hhdCdzIHRoZQorIyBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIExIUyBhbmQgUkhTIG9mIFs1XT8gIExldAorIworIyAgICAgZGlmZiA9IHgubiAtICh6Lm4gLSB6Lm8pICAgICAgICAgICAgICAgICAgICBbNl0KKyMKKyMgTm93CisjICAgICB6Lm4gPSAgICAgICAgICAgICAgICAgICAgICAgYnkgWzRdCisjICAgICAoeSArIHkucykubiA9ICAgICAgICAgICAgICAgYnkgIzUKKyMgICAgIHkubiArIHkucyA9ICAgICAgICAgICAgICAgICBzaW5jZSB5Lm4gPSB4Lm4KKyMgICAgIHgubiArIHkucyA9ICAgICAgICAgICAgICAgICBzaW5jZSB6IGFuZCB5IGFyZSBoYXZlIHRoZSBzYW1lIHR6aW5mbyBtZW1iZXIsCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkucyA9IHoucyBieSAjMgorIyAgICAgeC5uICsgei5zCisjCisjIFBsdWdnaW5nIHRoYXQgYmFjayBpbnRvIFs2XSBnaXZlcworIworIyAgICAgZGlmZiA9CisjICAgICB4Lm4gLSAoKHgubiArIHoucykgLSB6Lm8pID0gICAgIGV4cGFuZGluZworIyAgICAgeC5uIC0geC5uIC0gei5zICsgei5vID0gICAgICAgICBjYW5jZWxsaW5nCisjICAgICAtIHoucyArIHoubyA9ICAgICAgICAgICAgICAgICAgIGJ5ICMyCisjICAgICB6LmQKKyMKKyMgU28gZGlmZiA9IHouZC4KKyMKKyMgSWYgWzVdIGlzIHRydWUgbm93LCBkaWZmID0gMCwgc28gei5kID0gMCB0b28sIGFuZCB3ZSBoYXZlIHRoZSBzdGFuZGFyZC10aW1lCisjIHNwZWxsaW5nIHdlIHdhbnRlZCBpbiB0aGUgZW5kY2FzZSBkZXNjcmliZWQgYWJvdmUuICBXZSdyZSBkb25lLiAgQ29udHJhcmlseSwKKyMgaWYgei5kID0gMCwgdGhlbiB3ZSBoYXZlIGEgVVRDIGVxdWl2YWxlbnQsIGFuZCBhcmUgYWxzbyBkb25lLgorIworIyBJZiBbNV0gaXMgbm90IHRydWUgbm93LCBkaWZmID0gei5kICE9IDAsIGFuZCB6LmQgaXMgdGhlIG9mZnNldCB3ZSBuZWVkIHRvCisjIGFkZCB0byB6IChpbiBlZmZlY3QsIHogaXMgaW4gdHoncyBzdGFuZGFyZCB0aW1lLCBhbmQgd2UgbmVlZCB0byBzaGlmdCB0aGUKKyMgbG9jYWwgY2xvY2sgaW50byB0eidzIGRheWxpZ2h0IHRpbWUpLgorIworIyBMZXQKKyMKKyMgICAgIHonID0geiArIHouZCA9IHogKyBkaWZmICAgICAgICAgICAgICAgICAgICAgWzddCisjCisjIGFuZCB3ZSBjYW4gYWdhaW4gYXNrIHdoZXRoZXIKKyMKKyMgICAgIHonLm4gLSB6Jy5vID0geC5uICAgICAgICAgICAgICAgICAgICAgICAgICAgWzhdCisjCisjIElmIHNvLCB3ZSdyZSBkb25lLiAgSWYgbm90LCB0aGUgdHppbmZvIGNsYXNzIGlzIGluc2FuZSwgYWNjb3JkaW5nIHRvIHRoZQorIyBhc3N1bXB0aW9ucyB3ZSd2ZSBtYWRlLiAgVGhpcyBhbHNvIHJlcXVpcmVzIGEgYml0IG9mIHByb29mLiAgQXMgYmVmb3JlLCBsZXQncworIyBjb21wdXRlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIExIUyBhbmQgUkhTIG9mIFs4XSAoYW5kIHNraXBwaW5nIHNvbWUgb2YKKyMgdGhlIGp1c3RpZmljYXRpb25zIGZvciB0aGUga2luZHMgb2Ygc3Vic3RpdHV0aW9ucyB3ZSd2ZSBkb25lIHNldmVyYWwgdGltZXMKKyMgYWxyZWFkeSk6CisjCisjICAgICBkaWZmJyA9IHgubiAtICh6Jy5uIC0geicubykgPSAgICAgICAgICAgcmVwbGFjaW5nIHonLm4gdmlhIFs3XQorIyAgICAgICAgICAgICB4Lm4gIC0gKHoubiArIGRpZmYgLSB6Jy5vKSA9ICAgIHJlcGxhY2luZyBkaWZmIHZpYSBbNl0KKyMgICAgICAgICAgICAgeC5uIC0gKHoubiArIHgubiAtICh6Lm4gLSB6Lm8pIC0geicubykgPQorIyAgICAgICAgICAgICB4Lm4gLSB6Lm4gLSB4Lm4gKyB6Lm4gLSB6Lm8gKyB6Jy5vID0gICAgY2FuY2VsIHgubgorIyAgICAgICAgICAgICAtIHoubiArIHoubiAtIHoubyArIHonLm8gPSAgICAgICAgICAgICAgY2FuY2VsIHoubgorIyAgICAgICAgICAgICAtIHoubyArIHonLm8gPSAgICAgICAgICAgICAgICAgICAgICAjMSB0d2ljZQorIyAgICAgICAgICAgICAtei5zIC0gei5kICsgeicucyArIHonLmQgPSAgICAgICAgICB6IGFuZCB6JyBoYXZlIHNhbWUgdHppbmZvCisjICAgICAgICAgICAgIHonLmQgLSB6LmQKKyMKKyMgU28geicgaXMgVVRDLWVxdWl2YWxlbnQgdG8geCBpZmYgeicuZCA9IHouZCBhdCB0aGlzIHBvaW50LiAgSWYgdGhleSBhcmUgZXF1YWwsCisjIHdlJ3ZlIGZvdW5kIHRoZSBVVEMtZXF1aXZhbGVudCBzbyBhcmUgZG9uZS4gIEluIGZhY3QsIHdlIHN0b3Agd2l0aCBbN10gYW5kCisjIHJldHVybiB6Jywgbm90IGJvdGhlcmluZyB0byBjb21wdXRlIHonLmQuCisjCisjIEhvdyBjb3VsZCB6LmQgYW5kIHonZCBkaWZmZXI/ICB6JyA9IHogKyB6LmQgWzddLCBzbyBtZXJlbHkgbW92aW5nIHonIGJ5CisjIGEgZHN0KCkgb2Zmc2V0LCBhbmQgc3RhcnRpbmcgKmZyb20qIGEgdGltZSBhbHJlYWR5IGluIERTVCAod2Uga25vdyB6LmQgIT0gMCksCisjIHdvdWxkIGhhdmUgdG8gY2hhbmdlIHRoZSByZXN1bHQgZHN0KCkgcmV0dXJuczogIHdlIHN0YXJ0IGluIERTVCwgYW5kIG1vdmluZworIyBhIGxpdHRsZSBmdXJ0aGVyIGludG8gaXQgdGFrZXMgdXMgb3V0IG9mIERTVC4KKyMKKyMgVGhlcmUgaXNuJ3QgYSBzYW5lIGNhc2Ugd2hlcmUgdGhpcyBjYW4gaGFwcGVuLiAgVGhlIGNsb3Nlc3QgaXQgZ2V0cyBpcyBhdAorIyB0aGUgZW5kIG9mIERTVCwgd2hlcmUgdGhlcmUncyBhbiBob3VyIGluIFVUQyB3aXRoIG5vIHNwZWxsaW5nIGluIGEgaHlicmlkCisjIHR6aW5mbyBjbGFzcy4gIEluIFVTIEVhc3Rlcm4sIHRoYXQncyA1Ok1NIFVUQyA9IDA6TU0gRVNUID0gMTpNTSBFRFQuICBEdXJpbmcKKyMgdGhhdCBob3VyLCBvbiBhbiBFYXN0ZXJuIGNsb2NrIDE6TU0gaXMgdGFrZW4gYXMgYmVpbmcgaW4gc3RhbmRhcmQgdGltZSAoNjpNTQorIyBVVEMpIGJlY2F1c2UgdGhlIGRvY3MgaW5zaXN0IG9uIHRoYXQsIGJ1dCAwOk1NIGlzIHRha2VuIGFzIGJlaW5nIGluIGRheWxpZ2h0CisjIHRpbWUgKDQ6TU0gVVRDKS4gIFRoZXJlIGlzIG5vIGxvY2FsIHRpbWUgbWFwcGluZyB0byA1Ok1NIFVUQy4gIFRoZSBsb2NhbAorIyBjbG9jayBqdW1wcyBmcm9tIDE6NTkgYmFjayB0byAxOjAwIGFnYWluLCBhbmQgcmVwZWF0cyB0aGUgMTpNTSBob3VyIGluCisjIHN0YW5kYXJkIHRpbWUuICBTaW5jZSB0aGF0J3Mgd2hhdCB0aGUgbG9jYWwgY2xvY2sgKmRvZXMqLCB3ZSB3YW50IHRvIG1hcCBib3RoCisjIFVUQyBob3VycyA1Ok1NIGFuZCA2Ok1NIHRvIDE6TU0gRWFzdGVybi4gIFRoZSByZXN1bHQgaXMgYW1iaWd1b3VzCisjIGluIGxvY2FsIHRpbWUsIGJ1dCBzbyBpdCBnb2VzIC0tIGl0J3MgdGhlIHdheSB0aGUgbG9jYWwgY2xvY2sgd29ya3MuCisjCisjIFdoZW4geCA9IDU6TU0gVVRDIGlzIHRoZSBpbnB1dCB0byB0aGlzIGFsZ29yaXRobSwgeC5vPTAsIHkubz0tNSBhbmQgeS5kPTAsCisjIHNvIHo9MDpNTS4gIHouZD02MCAobWludXRlcykgdGhlbiwgc28gWzVdIGRvZXNuJ3QgaG9sZCBhbmQgd2Uga2VlcCBnb2luZy4KKyMgeicgPSB6ICsgei5kID0gMTpNTSB0aGVuLCBhbmQgeicuZD0wLCBhbmQgeicuZCAtIHouZCA9IC02MCAhPSAwIHNvIFs4XQorIyAoY29ycmVjdGx5KSBjb25jbHVkZXMgdGhhdCB6JyBpcyBub3QgVVRDLWVxdWl2YWxlbnQgdG8geC4KKyMKKyMgQmVjYXVzZSB3ZSBrbm93IHouZCBzYWlkIHogd2FzIGluIGRheWxpZ2h0IHRpbWUgKGVsc2UgWzVdIHdvdWxkIGhhdmUgaGVsZCBhbmQKKyMgd2Ugd291bGQgaGF2ZSBzdG9wcGVkIHRoZW4pLCBhbmQgd2Uga25vdyB6LmQgIT0geicuZCAoZWxzZSBbOF0gd291bGQgaGF2ZSBoZWxkCisjIGFuZCB3ZSBoYXZlIHN0b3BwZWQgdGhlbiksIGFuZCB0aGVyZSBhcmUgb25seSAyIHBvc3NpYmxlIHZhbHVlcyBkc3QoKSBjYW4KKyMgcmV0dXJuIGluIEVhc3Rlcm4sIGl0IGZvbGxvd3MgdGhhdCB6Jy5kIG11c3QgYmUgMCAod2hpY2ggaXQgaXMgaW4gdGhlIGV4YW1wbGUsCisjIGJ1dCB0aGUgcmVhc29uaW5nIGRvZXNuJ3QgZGVwZW5kIG9uIHRoZSBleGFtcGxlIC0tIGl0IGRlcGVuZHMgb24gdGhlcmUgYmVpbmcKKyMgdHdvIHBvc3NpYmxlIGRzdCgpIG91dGNvbWVzLCBvbmUgemVybyBhbmQgdGhlIG90aGVyIG5vbi16ZXJvKS4gIFRoZXJlZm9yZQorIyB6JyBtdXN0IGJlIGluIHN0YW5kYXJkIHRpbWUsIGFuZCBpcyB0aGUgc3BlbGxpbmcgd2Ugd2FudCBpbiB0aGlzIGNhc2UuCisjCisjIE5vdGUgYWdhaW4gdGhhdCB6JyBpcyBub3QgVVRDLWVxdWl2YWxlbnQgYXMgZmFyIGFzIHRoZSBoeWJyaWQgdHppbmZvIGNsYXNzIGlzCisjIGNvbmNlcm5lZCAoYmVjYXVzZSBpdCB0YWtlcyB6JyBhcyBiZWluZyBpbiBzdGFuZGFyZCB0aW1lIHJhdGhlciB0aGFuIHRoZQorIyBkYXlsaWdodCB0aW1lIHdlIGludGVuZCBoZXJlKSwgYnV0IHJldHVybmluZyBpdCBnaXZlcyB0aGUgcmVhbC1saWZlICJsb2NhbAorIyBjbG9jayByZXBlYXRzIGFuIGhvdXIiIGJlaGF2aW9yIHdoZW4gbWFwcGluZyB0aGUgInVuc3BlbGxhYmxlIiBVVEMgaG91ciBpbnRvCisjIHR6LgorIworIyBXaGVuIHRoZSBpbnB1dCBpcyA2Ok1NLCB6PTE6TU0gYW5kIHouZD0wLCBhbmQgd2Ugc3RvcCBhdCBvbmNlLCBhZ2FpbiB3aXRoCisjIHRoZSAxOk1NIHN0YW5kYXJkIHRpbWUgc3BlbGxpbmcgd2Ugd2FudC4KKyMKKyMgU28gaG93IGNhbiB0aGlzIGJyZWFrPyAgT25lIG9mIHRoZSBhc3N1bXB0aW9ucyBtdXN0IGJlIHZpb2xhdGVkLiAgVHdvCisjIHBvc3NpYmlsaXRpZXM6CisjCisjIDEpIFsyXSBlZmZlY3RpdmVseSBzYXlzIHRoYXQgeS5zIGlzIGludmFyaWFudCBhY3Jvc3MgYWxsIHkgYmVsb25nIHRvIGEgZ2l2ZW4KKyMgICAgdGltZSB6b25lLiAgVGhpcyBpc24ndCB0cnVlIGlmLCBmb3IgcG9saXRpY2FsIHJlYXNvbnMgb3IgY29udGluZW50YWwgZHJpZnQsCisjICAgIGEgcmVnaW9uIGRlY2lkZXMgdG8gY2hhbmdlIGl0cyBiYXNlIG9mZnNldCBmcm9tIFVUQy4KKyMKKyMgMikgVGhlcmUgbWF5IGJlIHZlcnNpb25zIG9mICJkb3VibGUgZGF5bGlnaHQiIHRpbWUgd2hlcmUgdGhlIHRhaWwgZW5kIG9mCisjICAgIHRoZSBhbmFseXNpcyBnaXZlcyB1cCBhIHN0ZXAgdG9vIGVhcmx5LiAgSSBoYXZlbid0IHRob3VnaHQgYWJvdXQgdGhhdAorIyAgICBlbm91Z2ggdG8gc2F5LgorIworIyBJbiBhbnkgY2FzZSwgaXQncyBjbGVhciB0aGF0IHRoZSBkZWZhdWx0IGZyb211dGMoKSBpcyBzdHJvbmcgZW5vdWdoIHRvIGhhbmRsZQorIyAiYWxtb3N0IGFsbCIgdGltZSB6b25lczogIHNvIGxvbmcgYXMgdGhlIHN0YW5kYXJkIG9mZnNldCBpcyBpbnZhcmlhbnQsIGl0CisjIGRvZXNuJ3QgbWF0dGVyIGlmIGRheWxpZ2h0IHRpbWUgdHJhbnNpdGlvbiBwb2ludHMgY2hhbmdlIGZyb20geWVhciB0byB5ZWFyLCBvcgorIyBpZiBkYXlsaWdodCB0aW1lIGlzIHNraXBwZWQgaW4gc29tZSB5ZWFyczsgaXQgZG9lc24ndCBtYXR0ZXIgaG93IGxhcmdlIG9yCisjIHNtYWxsIGRzdCgpIG1heSBnZXQgd2l0aGluIGl0cyBib3VuZHM7IGFuZCBpdCBkb2Vzbid0IGV2ZW4gbWF0dGVyIGlmIHNvbWUKKyMgcGVydmVyc2UgdGltZSB6b25lIHJldHVybnMgYSBuZWdhdGl2ZSBkc3QoKSkuICBTbyBhIGJyZWFraW5nIGNhc2UgbXVzdCBiZQorIyBwcmV0dHkgYml6YXJyZSwgYW5kIGEgdHppbmZvIHN1YmNsYXNzIGNhbiBvdmVycmlkZSBmcm9tdXRjKCkgaWYgaXQgaXMuCiAKLTEuIHgubyA9IHgucyArIHguZAotICAgVGhpcyBmb2xsb3dzIGZyb20gdGhlIGRlZmluaXRpb24gb2YgeC5zLgotCi0yLiBJZiB4IGFuZCB5IGhhdmUgdGhlIHNhbWUgdHppbmZvIG1lbWJlciwgeC5zID0geS5zLgotICAgVGhpcyBpcyBhY3R1YWxseSBhIHJlcXVpcmVtZW50LCBhbiBhc3N1bXB0aW9uIHdlIG5lZWQgdG8gbWFrZSBhYm91dAotICAgc2FuZSB0emluZm8gY2xhc3Nlcy4KLQotMy4gVGhlIG5haXZlIFVUQyB0aW1lIGNvcnJlc3BvbmRpbmcgdG8geCBpcyB4Lm4gLSB4Lm8uCi0gICBUaGlzIGlzIGFnYWluIGEgcmVxdWlyZW1lbnQgZm9yIGEgc2FuZSB0emluZm8gY2xhc3MuCi0KLTQuICh4K2spLnMgPSB4LnMKLSAgIFRoaXMgZm9sbG93cyBmcm9tICMyLCBhbmQgdGhhdCBkYXRpbWV0aW1ldHordGltZWRlbHRhIHByZXNlcnZlcyB0emluZm8uCi0KLTUuICh4K2spLm4gPSB4Lm4gKyBrCi0gICBBZ2FpbiBmb2xsb3dzIGZyb20gaG93IGFyaXRobWV0aWMgaXMgZGVmaW5lZC4KLQotTm93IHdlIGNhbiBleHBsYWluIHR6LmZyb211dGMoeCkuICBMZXQncyBhc3N1bWUgaXQncyBhbiBpbnRlcmVzdGluZyBjYXNlCi0obWVhbmluZyB0aGF0IHRoZSB2YXJpb3VzIHR6aW5mbyBtZXRob2RzIGV4aXN0LCBhbmQgZG9uJ3QgYmxvdyB1cCBvciByZXR1cm4KLU5vbmUgd2hlbiBjYWxsZWQpLgotCi1UaGUgZnVuY3Rpb24gd2FudHMgdG8gcmV0dXJuIGEgZGF0ZXRpbWUgeSB3aXRoIHRpbWV6b25lIHR6LCBlcXVpdmFsZW50IHRvIHguCi14IGlzIGFscmVhZHkgaW4gVVRDLgotCi1CeSAjMywgd2Ugd2FudAotCi0gICAgeS5uIC0geS5vID0geC5uICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMV0KLQotVGhlIGFsZ29yaXRobSBzdGFydHMgYnkgYXR0YWNoaW5nIHR6IHRvIHgubiwgYW5kIGNhbGxpbmcgdGhhdCB5LiAgU28KLXgubiA9IHkubiBhdCB0aGUgc3RhcnQuICBUaGVuIGl0IHdhbnRzIHRvIGFkZCBhIGR1cmF0aW9uIGsgdG8geSwgc28gdGhhdCBbMV0KLWJlY29tZXMgdHJ1ZTsgaW4gZWZmZWN0LCB3ZSB3YW50IHRvIHNvbHZlIFsyXSBmb3IgazoKLQotICAgKHkraykubiAtICh5K2spLm8gPSB4Lm4gICAgICAgICAgICAgICAgICAgICAgWzJdCi0KLUJ5ICMxLCB0aGlzIGlzIHRoZSBzYW1lIGFzCi0KLSAgICh5K2spLm4gLSAoKHkraykucyArICh5K2spLmQpID0geC5uICAgICAgICAgIFszXQotCi1CeSAjNSwgKHkraykubiA9IHkubiArIGssIHdoaWNoIGVxdWFscyB4Lm4gKyBrIGJlY2F1c2UgeC5uPXkubiBhdCB0aGUgc3RhcnQuCi1TdWJzdGl0dXRpbmcgdGhhdCBpbnRvIFszXSwKLQotICAgeC5uICsgayAtICh5K2spLnMgLSAoeStrKS5kID0geC5uOyB0aGUgeC5uIHRlcm1zIGNhbmNlbCwgbGVhdmluZwotICAgayAtICh5K2spLnMgLSAoeStrKS5kID0gMDsgcmVhcnJhbmdpbmcsCi0gICBrID0gKHkraykucyAtICh5K2spLmQ7IGJ5ICM0LCAoeStrKS5zID09IHkucywgc28KLSAgIGsgPSB5LnMgLSAoeStrKS5kCi0KLU9uIHRoZSBSSFMsICh5K2spLmQgY2FuJ3QgYmUgY29tcHV0ZWQgZGlyZWN0bHksIGJ1dCB5LnMgY2FuIGJlLCBhbmQgd2UKLWFwcHJveGltYXRlIGsgYnkgaWdub3JpbmcgdGhlICh5K2spLmQgdGVybSBhdCBmaXJzdC4gIE5vdGUgdGhhdCBrIGNhbid0IGJlCi12ZXJ5IGxhcmdlLCBzaW5jZSBhbGwgb2Zmc2V0LXJldHVybmluZyBtZXRob2RzIHJldHVybiBhIGR1cmF0aW9uIG9mIG1hZ25pdHVkZQotbGVzcyB0aGFuIDI0IGhvdXJzLiAgRm9yIHRoYXQgcmVhc29uLCBpZiB5IGlzIGZpcm1seSBpbiBzdGQgdGltZSwgKHkraykuZCBtdXN0Ci1iZSAwLCBzbyBpZ25vcmluZyBpdCBoYXMgbm8gY29uc2VxdWVuY2UgdGhlbi4KLQotSW4gYW55IGNhc2UsIHRoZSBuZXcgdmFsdWUgaXMKLQotICAgIHogPSB5ICsgeS5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzRdCi0KLUl0J3MgaGVscGZ1bCB0byBzdGVwIGJhY2sgYXQgbG9vayBhdCBbNF0gZnJvbSBhIGhpZ2hlciBsZXZlbDogIGl0J3Mgc2ltcGx5Ci1tYXBwaW5nIGZyb20gVVRDIHRvIHR6J3Mgc3RhbmRhcmQgdGltZS4KLQotQXQgdGhpcyBwb2ludCwgaWYKLQotICAgIHoubiAtIHoubyA9IHgubiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzVdCi0KLXdlIGhhdmUgYW4gZXF1aXZhbGVudCB0aW1lLCBhbmQgYXJlIGFsbW9zdCBkb25lLiAgVGhlIGluc2VjdXJpdHkgaGVyZSBpcwotYXQgdGhlIHN0YXJ0IG9mIGRheWxpZ2h0IHRpbWUuICBQaWN0dXJlIFVTIEVhc3Rlcm4gZm9yIGNvbmNyZXRlbmVzcy4gIFRoZSB3YWxsCi10aW1lIGp1bXBzIGZyb20gMTo1OSB0byAzOjAwLCBhbmQgd2FsbCBob3VycyBvZiB0aGUgZm9ybSAyOk1NIGRvbid0IG1ha2UgZ29vZAotc2Vuc2UgdGhlbi4gIFRoZSBkb2NzIGFzayB0aGF0IGFuIEVhc3Rlcm4gdHppbmZvIGNsYXNzIGNvbnNpZGVyIHN1Y2ggYSB0aW1lIHRvCi1iZSBFRFQgKGJlY2F1c2UgaXQncyAiYWZ0ZXIgMiIpLCB3aGljaCBpcyBhIHJlZHVuZGFudCBzcGVsbGluZyBvZiAxOk1NIEVTVAotb24gdGhlIGRheSBEU1Qgc3RhcnRzLiAgV2Ugd2FudCB0byByZXR1cm4gdGhlIDE6TU0gRVNUIHNwZWxsaW5nIGJlY2F1c2UgdGhhdCdzCi10aGUgb25seSBzcGVsbGluZyB0aGF0IG1ha2VzIHNlbnNlIG9uIHRoZSBsb2NhbCB3YWxsIGNsb2NrLgotCi1JbiBmYWN0LCBpZiBbNV0gaG9sZHMgYXQgdGhpcyBwb2ludCwgd2UgZG8gaGF2ZSB0aGUgc3RhbmRhcmQtdGltZSBzcGVsbGluZywKLWJ1dCB0aGF0IHRha2VzIGEgYml0IG9mIHByb29mLiAgV2UgZmlyc3QgcHJvdmUgYSBzdHJvbmdlciByZXN1bHQuICBXaGF0J3MgdGhlCi1kaWZmZXJlbmNlIGJldHdlZW4gdGhlIExIUyBhbmQgUkhTIG9mIFs1XT8gIExldAotCi0gICAgZGlmZiA9IHgubiAtICh6Lm4gLSB6Lm8pICAgICAgICAgICAgICAgICAgICBbNl0KLQotTm93Ci0gICAgei5uID0gICAgICAgICAgICAgICAgICAgICAgIGJ5IFs0XQotICAgICh5ICsgeS5zKS5uID0gICAgICAgICAgICAgICBieSAjNQotICAgIHkubiArIHkucyA9ICAgICAgICAgICAgICAgICBzaW5jZSB5Lm4gPSB4Lm4KLSAgICB4Lm4gKyB5LnMgPSAgICAgICAgICAgICAgICAgc2luY2UgeiBhbmQgeSBhcmUgaGF2ZSB0aGUgc2FtZSB0emluZm8gbWVtYmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeS5zID0gei5zIGJ5ICMyCi0gICAgeC5uICsgei5zCi0KLVBsdWdnaW5nIHRoYXQgYmFjayBpbnRvIFs2XSBnaXZlcwotCi0gICAgZGlmZiA9Ci0gICAgeC5uIC0gKCh4Lm4gKyB6LnMpIC0gei5vKSA9ICAgICBleHBhbmRpbmcKLSAgICB4Lm4gLSB4Lm4gLSB6LnMgKyB6Lm8gPSAgICAgICAgIGNhbmNlbGxpbmcKLSAgICAtIHoucyArIHoubyA9ICAgICAgICAgICAgICAgICAgIGJ5ICMyCi0gICAgei5kCi0KLVNvIGRpZmYgPSB6LmQuCi0KLUlmIFs1XSBpcyB0cnVlIG5vdywgZGlmZiA9IDAsIHNvIHouZCA9IDAgdG9vLCBhbmQgd2UgaGF2ZSB0aGUgc3RhbmRhcmQtdGltZQotc3BlbGxpbmcgd2Ugd2FudGVkIGluIHRoZSBlbmRjYXNlIGRlc2NyaWJlZCBhYm92ZS4gIFdlJ3JlIGRvbmUuICBDb250cmFyaWx5LAotaWYgei5kID0gMCwgdGhlbiB3ZSBoYXZlIGEgVVRDIGVxdWl2YWxlbnQsIGFuZCBhcmUgYWxzbyBkb25lLgotCi1JZiBbNV0gaXMgbm90IHRydWUgbm93LCBkaWZmID0gei5kICE9IDAsIGFuZCB6LmQgaXMgdGhlIG9mZnNldCB3ZSBuZWVkIHRvCi1hZGQgdG8geiAoaW4gZWZmZWN0LCB6IGlzIGluIHR6J3Mgc3RhbmRhcmQgdGltZSwgYW5kIHdlIG5lZWQgdG8gc2hpZnQgdGhlCi1sb2NhbCBjbG9jayBpbnRvIHR6J3MgZGF5bGlnaHQgdGltZSkuCi0KLUxldAotCi0gICAgeicgPSB6ICsgei5kID0geiArIGRpZmYgICAgICAgICAgICAgICAgICAgICBbN10KLQotYW5kIHdlIGNhbiBhZ2FpbiBhc2sgd2hldGhlcgotCi0gICAgeicubiAtIHonLm8gPSB4Lm4gICAgICAgICAgICAgICAgICAgICAgICAgICBbOF0KLQotSWYgc28sIHdlJ3JlIGRvbmUuICBJZiBub3QsIHRoZSB0emluZm8gY2xhc3MgaXMgaW5zYW5lLCBhY2NvcmRpbmcgdG8gdGhlCi1hc3N1bXB0aW9ucyB3ZSd2ZSBtYWRlLiAgVGhpcyBhbHNvIHJlcXVpcmVzIGEgYml0IG9mIHByb29mLiAgQXMgYmVmb3JlLCBsZXQncwotY29tcHV0ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBMSFMgYW5kIFJIUyBvZiBbOF0gKGFuZCBza2lwcGluZyBzb21lIG9mCi10aGUganVzdGlmaWNhdGlvbnMgZm9yIHRoZSBraW5kcyBvZiBzdWJzdGl0dXRpb25zIHdlJ3ZlIGRvbmUgc2V2ZXJhbCB0aW1lcwotYWxyZWFkeSk6Ci0KLSAgICBkaWZmJyA9IHgubiAtICh6Jy5uIC0geicubykgPSAgICAgICAgICAgcmVwbGFjaW5nIHonLm4gdmlhIFs3XQotICAgICAgICAgICAgeC5uICAtICh6Lm4gKyBkaWZmIC0geicubykgPSAgICByZXBsYWNpbmcgZGlmZiB2aWEgWzZdCi0gICAgICAgICAgICB4Lm4gLSAoei5uICsgeC5uIC0gKHoubiAtIHoubykgLSB6Jy5vKSA9Ci0gICAgICAgICAgICB4Lm4gLSB6Lm4gLSB4Lm4gKyB6Lm4gLSB6Lm8gKyB6Jy5vID0gICAgY2FuY2VsIHgubgotICAgICAgICAgICAgLSB6Lm4gKyB6Lm4gLSB6Lm8gKyB6Jy5vID0gICAgICAgICAgICAgIGNhbmNlbCB6Lm4KLSAgICAgICAgICAgIC0gei5vICsgeicubyA9ICAgICAgICAgICAgICAgICAgICAgICMxIHR3aWNlCi0gICAgICAgICAgICAtei5zIC0gei5kICsgeicucyArIHonLmQgPSAgICAgICAgICB6IGFuZCB6JyBoYXZlIHNhbWUgdHppbmZvCi0gICAgICAgICAgICB6Jy5kIC0gei5kCi0KLVNvIHonIGlzIFVUQy1lcXVpdmFsZW50IHRvIHggaWZmIHonLmQgPSB6LmQgYXQgdGhpcyBwb2ludC4gIElmIHRoZXkgYXJlIGVxdWFsLAotd2UndmUgZm91bmQgdGhlIFVUQy1lcXVpdmFsZW50IHNvIGFyZSBkb25lLiAgSW4gZmFjdCwgd2Ugc3RvcCB3aXRoIFs3XSBhbmQKLXJldHVybiB6Jywgbm90IGJvdGhlcmluZyB0byBjb21wdXRlIHonLmQuCi0KLUhvdyBjb3VsZCB6LmQgYW5kIHonZCBkaWZmZXI/ICB6JyA9IHogKyB6LmQgWzddLCBzbyBtZXJlbHkgbW92aW5nIHonIGJ5Ci1hIGRzdCgpIG9mZnNldCwgYW5kIHN0YXJ0aW5nICpmcm9tKiBhIHRpbWUgYWxyZWFkeSBpbiBEU1QgKHdlIGtub3cgei5kICE9IDApLAotd291bGQgaGF2ZSB0byBjaGFuZ2UgdGhlIHJlc3VsdCBkc3QoKSByZXR1cm5zOiAgd2Ugc3RhcnQgaW4gRFNULCBhbmQgbW92aW5nCi1hIGxpdHRsZSBmdXJ0aGVyIGludG8gaXQgdGFrZXMgdXMgb3V0IG9mIERTVC4KLQotVGhlcmUgaXNuJ3QgYSBzYW5lIGNhc2Ugd2hlcmUgdGhpcyBjYW4gaGFwcGVuLiAgVGhlIGNsb3Nlc3QgaXQgZ2V0cyBpcyBhdAotdGhlIGVuZCBvZiBEU1QsIHdoZXJlIHRoZXJlJ3MgYW4gaG91ciBpbiBVVEMgd2l0aCBubyBzcGVsbGluZyBpbiBhIGh5YnJpZAotdHppbmZvIGNsYXNzLiAgSW4gVVMgRWFzdGVybiwgdGhhdCdzIDU6TU0gVVRDID0gMDpNTSBFU1QgPSAxOk1NIEVEVC4gIER1cmluZwotdGhhdCBob3VyLCBvbiBhbiBFYXN0ZXJuIGNsb2NrIDE6TU0gaXMgdGFrZW4gYXMgYmVpbmcgaW4gc3RhbmRhcmQgdGltZSAoNjpNTQotVVRDKSBiZWNhdXNlIHRoZSBkb2NzIGluc2lzdCBvbiB0aGF0LCBidXQgMDpNTSBpcyB0YWtlbiBhcyBiZWluZyBpbiBkYXlsaWdodAotdGltZSAoNDpNTSBVVEMpLiAgVGhlcmUgaXMgbm8gbG9jYWwgdGltZSBtYXBwaW5nIHRvIDU6TU0gVVRDLiAgVGhlIGxvY2FsCi1jbG9jayBqdW1wcyBmcm9tIDE6NTkgYmFjayB0byAxOjAwIGFnYWluLCBhbmQgcmVwZWF0cyB0aGUgMTpNTSBob3VyIGluCi1zdGFuZGFyZCB0aW1lLiAgU2luY2UgdGhhdCdzIHdoYXQgdGhlIGxvY2FsIGNsb2NrICpkb2VzKiwgd2Ugd2FudCB0byBtYXAgYm90aAotVVRDIGhvdXJzIDU6TU0gYW5kIDY6TU0gdG8gMTpNTSBFYXN0ZXJuLiAgVGhlIHJlc3VsdCBpcyBhbWJpZ3VvdXMKLWluIGxvY2FsIHRpbWUsIGJ1dCBzbyBpdCBnb2VzIC0tIGl0J3MgdGhlIHdheSB0aGUgbG9jYWwgY2xvY2sgd29ya3MuCi0KLVdoZW4geCA9IDU6TU0gVVRDIGlzIHRoZSBpbnB1dCB0byB0aGlzIGFsZ29yaXRobSwgeC5vPTAsIHkubz0tNSBhbmQgeS5kPTAsCi1zbyB6PTA6TU0uICB6LmQ9NjAgKG1pbnV0ZXMpIHRoZW4sIHNvIFs1XSBkb2Vzbid0IGhvbGQgYW5kIHdlIGtlZXAgZ29pbmcuCi16JyA9IHogKyB6LmQgPSAxOk1NIHRoZW4sIGFuZCB6Jy5kPTAsIGFuZCB6Jy5kIC0gei5kID0gLTYwICE9IDAgc28gWzhdCi0oY29ycmVjdGx5KSBjb25jbHVkZXMgdGhhdCB6JyBpcyBub3QgVVRDLWVxdWl2YWxlbnQgdG8geC4KLQotQmVjYXVzZSB3ZSBrbm93IHouZCBzYWlkIHogd2FzIGluIGRheWxpZ2h0IHRpbWUgKGVsc2UgWzVdIHdvdWxkIGhhdmUgaGVsZCBhbmQKLXdlIHdvdWxkIGhhdmUgc3RvcHBlZCB0aGVuKSwgYW5kIHdlIGtub3cgei5kICE9IHonLmQgKGVsc2UgWzhdIHdvdWxkIGhhdmUgaGVsZAotYW5kIHdlIGhhdmUgc3RvcHBlZCB0aGVuKSwgYW5kIHRoZXJlIGFyZSBvbmx5IDIgcG9zc2libGUgdmFsdWVzIGRzdCgpIGNhbgotcmV0dXJuIGluIEVhc3Rlcm4sIGl0IGZvbGxvd3MgdGhhdCB6Jy5kIG11c3QgYmUgMCAod2hpY2ggaXQgaXMgaW4gdGhlIGV4YW1wbGUsCi1idXQgdGhlIHJlYXNvbmluZyBkb2Vzbid0IGRlcGVuZCBvbiB0aGUgZXhhbXBsZSAtLSBpdCBkZXBlbmRzIG9uIHRoZXJlIGJlaW5nCi10d28gcG9zc2libGUgZHN0KCkgb3V0Y29tZXMsIG9uZSB6ZXJvIGFuZCB0aGUgb3RoZXIgbm9uLXplcm8pLiAgVGhlcmVmb3JlCi16JyBtdXN0IGJlIGluIHN0YW5kYXJkIHRpbWUsIGFuZCBpcyB0aGUgc3BlbGxpbmcgd2Ugd2FudCBpbiB0aGlzIGNhc2UuCi0KLU5vdGUgYWdhaW4gdGhhdCB6JyBpcyBub3QgVVRDLWVxdWl2YWxlbnQgYXMgZmFyIGFzIHRoZSBoeWJyaWQgdHppbmZvIGNsYXNzIGlzCi1jb25jZXJuZWQgKGJlY2F1c2UgaXQgdGFrZXMgeicgYXMgYmVpbmcgaW4gc3RhbmRhcmQgdGltZSByYXRoZXIgdGhhbiB0aGUKLWRheWxpZ2h0IHRpbWUgd2UgaW50ZW5kIGhlcmUpLCBidXQgcmV0dXJuaW5nIGl0IGdpdmVzIHRoZSByZWFsLWxpZmUgImxvY2FsCi1jbG9jayByZXBlYXRzIGFuIGhvdXIiIGJlaGF2aW9yIHdoZW4gbWFwcGluZyB0aGUgInVuc3BlbGxhYmxlIiBVVEMgaG91ciBpbnRvCi10ei4KLQotV2hlbiB0aGUgaW5wdXQgaXMgNjpNTSwgej0xOk1NIGFuZCB6LmQ9MCwgYW5kIHdlIHN0b3AgYXQgb25jZSwgYWdhaW4gd2l0aAotdGhlIDE6TU0gc3RhbmRhcmQgdGltZSBzcGVsbGluZyB3ZSB3YW50LgotCi1TbyBob3cgY2FuIHRoaXMgYnJlYWs/ICBPbmUgb2YgdGhlIGFzc3VtcHRpb25zIG11c3QgYmUgdmlvbGF0ZWQuICBUd28KLXBvc3NpYmlsaXRpZXM6Ci0KLTEpIFsyXSBlZmZlY3RpdmVseSBzYXlzIHRoYXQgeS5zIGlzIGludmFyaWFudCBhY3Jvc3MgYWxsIHkgYmVsb25nIHRvIGEgZ2l2ZW4KLSAgIHRpbWUgem9uZS4gIFRoaXMgaXNuJ3QgdHJ1ZSBpZiwgZm9yIHBvbGl0aWNhbCByZWFzb25zIG9yIGNvbnRpbmVudGFsIGRyaWZ0LAotICAgYSByZWdpb24gZGVjaWRlcyB0byBjaGFuZ2UgaXRzIGJhc2Ugb2Zmc2V0IGZyb20gVVRDLgotCi0yKSBUaGVyZSBtYXkgYmUgdmVyc2lvbnMgb2YgImRvdWJsZSBkYXlsaWdodCIgdGltZSB3aGVyZSB0aGUgdGFpbCBlbmQgb2YKLSAgIHRoZSBhbmFseXNpcyBnaXZlcyB1cCBhIHN0ZXAgdG9vIGVhcmx5LiAgSSBoYXZlbid0IHRob3VnaHQgYWJvdXQgdGhhdAotICAgZW5vdWdoIHRvIHNheS4KLQotSW4gYW55IGNhc2UsIGl0J3MgY2xlYXIgdGhhdCB0aGUgZGVmYXVsdCBmcm9tdXRjKCkgaXMgc3Ryb25nIGVub3VnaCB0byBoYW5kbGUKLSJhbG1vc3QgYWxsIiB0aW1lIHpvbmVzOiAgc28gbG9uZyBhcyB0aGUgc3RhbmRhcmQgb2Zmc2V0IGlzIGludmFyaWFudCwgaXQKLWRvZXNuJ3QgbWF0dGVyIGlmIGRheWxpZ2h0IHRpbWUgdHJhbnNpdGlvbiBwb2ludHMgY2hhbmdlIGZyb20geWVhciB0byB5ZWFyLCBvcgotaWYgZGF5bGlnaHQgdGltZSBpcyBza2lwcGVkIGluIHNvbWUgeWVhcnM7IGl0IGRvZXNuJ3QgbWF0dGVyIGhvdyBsYXJnZSBvcgotc21hbGwgZHN0KCkgbWF5IGdldCB3aXRoaW4gaXRzIGJvdW5kczsgYW5kIGl0IGRvZXNuJ3QgZXZlbiBtYXR0ZXIgaWYgc29tZQotcGVydmVyc2UgdGltZSB6b25lIHJldHVybnMgYSBuZWdhdGl2ZSBkc3QoKSkuICBTbyBhIGJyZWFraW5nIGNhc2UgbXVzdCBiZQotcHJldHR5IGJpemFycmUsIGFuZCBhIHR6aW5mbyBzdWJjbGFzcyBjYW4gb3ZlcnJpZGUgZnJvbXV0YygpIGlmIGl0IGlzLgotIiIiCiB0cnk6CiAgICAgZnJvbSBfZGF0ZXRpbWUgaW1wb3J0ICoKIGV4Y2VwdCBJbXBvcnRFcnJvcjoKZGlmZiAtLWdpdCBhL0xpYi9kYm0vX19pbml0X18ucHkgYi9MaWIvZGJtL19faW5pdF9fLnB5CmluZGV4IDgxM2EyOWQuLjA2MDllNDkgMTAwNjQ0Ci0tLSBhL0xpYi9kYm0vX19pbml0X18ucHkKKysrIGIvTGliL2RibS9fX2luaXRfXy5weQpAQCAtNDIsNyArNDIsNyBAQAogX2RlZmF1bHRtb2QgPSBOb25lCiBfbW9kdWxlcyA9IHt9CiAKLWVycm9yID0gKGVycm9yLCBJT0Vycm9yKQorZXJyb3IgPSAoZXJyb3IsIE9TRXJyb3IpCiAKIAogZGVmIG9wZW4oZmlsZSwgZmxhZz0ncicsIG1vZGU9MG82NjYpOgpAQCAtMTA2LDEyICsxMDYsMTAgQEAKICAgICB0cnk6CiAgICAgICAgIGYgPSBpby5vcGVuKGZpbGVuYW1lICsgIi5wYWciLCAicmIiKQogICAgICAgICBmLmNsb3NlKCkKLSAgICAgICAgIyBkYm0gbGlua2VkIHdpdGggZ2RibSBvbiBPUy8yIGRvZXNuJ3QgaGF2ZSAuZGlyIGZpbGUKLSAgICAgICAgaWYgbm90IChuZGJtLmxpYnJhcnkgPT0gIkdOVSBnZGJtIiBhbmQgc3lzLnBsYXRmb3JtID09ICJvczJlbXgiKToKLSAgICAgICAgICAgIGYgPSBpby5vcGVuKGZpbGVuYW1lICsgIi5kaXIiLCAicmIiKQotICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIGYgPSBpby5vcGVuKGZpbGVuYW1lICsgIi5kaXIiLCAicmIiKQorICAgICAgICBmLmNsb3NlKCkKICAgICAgICAgcmV0dXJuICJkYm0ubmRibSIKLSAgICBleGNlcHQgSU9FcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgIyBzb21lIGRibSBlbXVsYXRpb25zIGJhc2VkIG9uIEJlcmtlbGV5IERCIGdlbmVyYXRlIGEgLmRiIGZpbGUKICAgICAgICAgIyBzb21lIGRvIG5vdCwgYnV0IHRoZXkgc2hvdWxkIGJlIGNhdWdodCBieSB0aGUgYnNkIGNoZWNrcwogICAgICAgICB0cnk6CkBAIC0xMjQsNyArMTIyLDcgQEAKICAgICAgICAgICAgICAgICBkID0gbmRibS5vcGVuKGZpbGVuYW1lKQogICAgICAgICAgICAgICAgIGQuY2xvc2UoKQogICAgICAgICAgICAgICAgIHJldHVybiAiZGJtLm5kYm0iCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHBhc3MKIAogICAgICMgQ2hlY2sgZm9yIGR1bWJkYm0gbmV4dCAtLSB0aGlzIGhhcyBhIC5kaXIgYW5kIGEgLmRhdCBmaWxlCkBAIC0xNDEsMTMgKzEzOSwxMyBAQAogICAgICAgICAgICAgICAgIHJldHVybiAiZGJtLmR1bWIiCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBmLmNsb3NlKCkKLSAgICBleGNlcHQgKE9TRXJyb3IsIElPRXJyb3IpOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICBwYXNzCiAKICAgICAjIFNlZSBpZiB0aGUgZmlsZSBleGlzdHMsIHJldHVybiBOb25lIGlmIG5vdAogICAgIHRyeToKICAgICAgICAgZiA9IGlvLm9wZW4oZmlsZW5hbWUsICJyYiIpCi0gICAgZXhjZXB0IElPRXJyb3I6CisgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgIHJldHVybiBOb25lCiAKICAgICAjIFJlYWQgdGhlIHN0YXJ0IG9mIHRoZSBmaWxlIC0tIHRoZSBtYWdpYyBudW1iZXIKZGlmZiAtLWdpdCBhL0xpYi9kYm0vZHVtYi5weSBiL0xpYi9kYm0vZHVtYi5weQppbmRleCBjZmI5MTIzLi45YWM3ODUyIDEwMDY0NAotLS0gYS9MaWIvZGJtL2R1bWIucHkKKysrIGIvTGliL2RibS9kdW1iLnB5CkBAIC0yOSw3ICsyOSw3IEBACiAKIF9CTE9DS1NJWkUgPSA1MTIKIAotZXJyb3IgPSBJT0Vycm9yCitlcnJvciA9IE9TRXJyb3IKIAogY2xhc3MgX0RhdGFiYXNlKGNvbGxlY3Rpb25zLk11dGFibGVNYXBwaW5nKToKIApAQCAtNjcsNyArNjcsNyBAQAogICAgICAgICAjIE1vZCBieSBKYWNrOiBjcmVhdGUgZGF0YSBmaWxlIGlmIG5lZWRlZAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBmID0gX2lvLm9wZW4oc2VsZi5fZGF0ZmlsZSwgJ3InLCBlbmNvZGluZz0iTGF0aW4tMSIpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIGYgPSBfaW8ub3BlbihzZWxmLl9kYXRmaWxlLCAndycsIGVuY29kaW5nPSJMYXRpbi0xIikKICAgICAgICAgICAgIHNlbGYuX2NobW9kKHNlbGYuX2RhdGZpbGUpCiAgICAgICAgIGYuY2xvc2UoKQpAQCAtNzgsNyArNzgsNyBAQAogICAgICAgICBzZWxmLl9pbmRleCA9IHt9CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGYgPSBfaW8ub3BlbihzZWxmLl9kaXJmaWxlLCAncicsIGVuY29kaW5nPSJMYXRpbi0xIikKLSAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgcGFzcwogICAgICAgICBlbHNlOgogICAgICAgICAgICAgZm9yIGxpbmUgaW4gZjoKQEAgLTEwMCwxMiArMTAwLDEyIEBACiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5fb3MudW5saW5rKHNlbGYuX2Jha2ZpbGUpCi0gICAgICAgIGV4Y2VwdCBzZWxmLl9vcy5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5fb3MucmVuYW1lKHNlbGYuX2RpcmZpbGUsIHNlbGYuX2Jha2ZpbGUpCi0gICAgICAgIGV4Y2VwdCBzZWxmLl9vcy5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAKICAgICAgICAgZiA9IHNlbGYuX2lvLm9wZW4oc2VsZi5fZGlyZmlsZSwgJ3cnLCBlbmNvZGluZz0iTGF0aW4tMSIpCmRpZmYgLS1naXQgYS9MaWIvZGVjaW1hbC5weSBiL0xpYi9kZWNpbWFsLnB5CmluZGV4IDE4MjZkZWIuLmQzOWFjMWQgMTAwNjQ0Ci0tLSBhL0xpYi9kZWNpbWFsLnB5CisrKyBiL0xpYi9kZWNpbWFsLnB5CkBAIC03MDMsOCArNzAzLDcgQEAKIAogICAgICAgICByYWlzZSBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0ICVyIHRvIERlY2ltYWwiICUgdmFsdWUpCiAKLSAgICAjIEBjbGFzc21ldGhvZCwgYnV0IEBkZWNvcmF0b3IgaXMgbm90IHZhbGlkIFB5dGhvbiAyLjMgc3ludGF4LCBzbwotICAgICMgZG9uJ3QgdXNlIGl0IChzZWUgbm90ZXMgb24gUHkyLjMgY29tcGF0aWJpbGl0eSBhdCB0b3Agb2YgZmlsZSkKKyAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgZnJvbV9mbG9hdChjbHMsIGYpOgogICAgICAgICAiIiJDb252ZXJ0cyBhIGZsb2F0IHRvIGEgZGVjaW1hbCBudW1iZXIsIGV4YWN0bHkuCiAKQEAgLTc0Myw3ICs3NDIsNiBAQAogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuIGNscyhyZXN1bHQpCi0gICAgZnJvbV9mbG9hdCA9IGNsYXNzbWV0aG9kKGZyb21fZmxvYXQpCiAKICAgICBkZWYgX2lzbmFuKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIHdoZXRoZXIgdGhlIG51bWJlciBpcyBub3QgYWN0dWFsbHkgb25lLgpkaWZmIC0tZ2l0IGEvTGliL2RpZmZsaWIucHkgYi9MaWIvZGlmZmxpYi5weQppbmRleCBhZTM3N2Q3Li44MDk3NzQ0IDEwMDY0NAotLS0gYS9MaWIvZGlmZmxpYi5weQorKysgYi9MaWIvZGlmZmxpYi5weQpAQCAtMzM2LDIwICszMzYsNiBAQAogICAgICAgICAgICAgZm9yIGVsdCBpbiBwb3B1bGFyOiAjIGRpdHRvOyBhcyBmYXN0IGZvciAxJSBkZWxldGlvbgogICAgICAgICAgICAgICAgIGRlbCBiMmpbZWx0XQogCi0gICAgZGVmIGlzYmp1bmsoc2VsZiwgaXRlbSk6Ci0gICAgICAgICJEZXByZWNhdGVkOyB1c2UgJ2l0ZW0gaW4gU2VxdWVuY2VNYXRjaGVyKCkuYmp1bmsnLiIKLSAgICAgICAgd2FybmluZ3Mud2FybigiJ1NlcXVlbmNlTWF0Y2hlcigpLmlzYmp1bmsoaXRlbSknIGlzIGRlcHJlY2F0ZWQ7XG4iCi0gICAgICAgICAgICAgICAgICAgICAgInVzZSAnaXRlbSBpbiBTTWluc3RhbmNlLmJqdW5rJyBpbnN0ZWFkLiIsCi0gICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQotICAgICAgICByZXR1cm4gaXRlbSBpbiBzZWxmLmJqdW5rCi0KLSAgICBkZWYgaXNicG9wdWxhcihzZWxmLCBpdGVtKToKLSAgICAgICAgIkRlcHJlY2F0ZWQ7IHVzZSAnaXRlbSBpbiBTZXF1ZW5jZU1hdGNoZXIoKS5icG9wdWxhcicuIgotICAgICAgICB3YXJuaW5ncy53YXJuKCInU2VxdWVuY2VNYXRjaGVyKCkuaXNicG9wdWxhcihpdGVtKScgaXMgZGVwcmVjYXRlZDtcbiIKLSAgICAgICAgICAgICAgICAgICAgICAidXNlICdpdGVtIGluIFNNaW5zdGFuY2UuYnBvcHVsYXInIGluc3RlYWQuIiwKLSAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIDIpCi0gICAgICAgIHJldHVybiBpdGVtIGluIHNlbGYuYnBvcHVsYXIKLQogICAgIGRlZiBmaW5kX2xvbmdlc3RfbWF0Y2goc2VsZiwgYWxvLCBhaGksIGJsbywgYmhpKToKICAgICAgICAgIiIiRmluZCBsb25nZXN0IG1hdGNoaW5nIGJsb2NrIGluIGFbYWxvOmFoaV0gYW5kIGJbYmxvOmJoaV0uCiAKQEAgLTkyMiw4ICs5MDgsNyBAQAogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd1bmtub3duIHRhZyAlcicgJSAodGFnLCkpCiAKLSAgICAgICAgICAgIGZvciBsaW5lIGluIGc6Ci0gICAgICAgICAgICAgICAgeWllbGQgbGluZQorICAgICAgICAgICAgeWllbGQgZnJvbSBnCiAKICAgICBkZWYgX2R1bXAoc2VsZiwgdGFnLCB4LCBsbywgaGkpOgogICAgICAgICAiIiJHZW5lcmF0ZSBjb21wYXJpc29uIHJlc3VsdHMgZm9yIGEgc2FtZS10YWdnZWQgcmFuZ2UuIiIiCkBAIC05NDIsOCArOTI3LDcgQEAKICAgICAgICAgICAgIHNlY29uZCA9IHNlbGYuX2R1bXAoJysnLCBiLCBibG8sIGJoaSkKIAogICAgICAgICBmb3IgZyBpbiBmaXJzdCwgc2Vjb25kOgotICAgICAgICAgICAgZm9yIGxpbmUgaW4gZzoKLSAgICAgICAgICAgICAgICB5aWVsZCBsaW5lCisgICAgICAgICAgICB5aWVsZCBmcm9tIGcKIAogICAgIGRlZiBfZmFuY3lfcmVwbGFjZShzZWxmLCBhLCBhbG8sIGFoaSwgYiwgYmxvLCBiaGkpOgogICAgICAgICByIiIiCkBAIC05OTcsOCArOTgxLDcgQEAKICAgICAgICAgICAgICMgbm8gbm9uLWlkZW50aWNhbCAicHJldHR5IGNsb3NlIiBwYWlyCiAgICAgICAgICAgICBpZiBlcWkgaXMgTm9uZToKICAgICAgICAgICAgICAgICAjIG5vIGlkZW50aWNhbCBwYWlyIGVpdGhlciAtLSB0cmVhdCBpdCBhcyBhIHN0cmFpZ2h0IHJlcGxhY2UKLSAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLl9wbGFpbl9yZXBsYWNlKGEsIGFsbywgYWhpLCBiLCBibG8sIGJoaSk6Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKyAgICAgICAgICAgICAgICB5aWVsZCBmcm9tIHNlbGYuX3BsYWluX3JlcGxhY2UoYSwgYWxvLCBhaGksIGIsIGJsbywgYmhpKQogICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgIyBubyBjbG9zZSBwYWlyLCBidXQgYW4gaWRlbnRpY2FsIHBhaXIgLS0gc3luY2ggdXAgb24gdGhhdAogICAgICAgICAgICAgYmVzdF9pLCBiZXN0X2osIGJlc3RfcmF0aW8gPSBlcWksIGVxaiwgMS4wCkBAIC0xMDEwLDggKzk5Myw3IEBACiAgICAgICAgICMgaWRlbnRpY2FsCiAKICAgICAgICAgIyBwdW1wIG91dCBkaWZmcyBmcm9tIGJlZm9yZSB0aGUgc3luY2ggcG9pbnQKLSAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5fZmFuY3lfaGVscGVyKGEsIGFsbywgYmVzdF9pLCBiLCBibG8sIGJlc3Rfaik6Ci0gICAgICAgICAgICB5aWVsZCBsaW5lCisgICAgICAgIHlpZWxkIGZyb20gc2VsZi5fZmFuY3lfaGVscGVyKGEsIGFsbywgYmVzdF9pLCBiLCBibG8sIGJlc3RfaikKIAogICAgICAgICAjIGRvIGludHJhbGluZSBtYXJraW5nIG9uIHRoZSBzeW5jaCBwYWlyCiAgICAgICAgIGFlbHQsIGJlbHQgPSBhW2Jlc3RfaV0sIGJbYmVzdF9qXQpAQCAtMTAzMywxNSArMTAxNSwxMyBAQAogICAgICAgICAgICAgICAgICAgICBidGFncyArPSAnICcgKiBsYgogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3Vua25vd24gdGFnICVyJyAlICh0YWcsKSkKLSAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuX3Fmb3JtYXQoYWVsdCwgYmVsdCwgYXRhZ3MsIGJ0YWdzKToKLSAgICAgICAgICAgICAgICB5aWVsZCBsaW5lCisgICAgICAgICAgICB5aWVsZCBmcm9tIHNlbGYuX3Fmb3JtYXQoYWVsdCwgYmVsdCwgYXRhZ3MsIGJ0YWdzKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgIyB0aGUgc3luY2ggcGFpciBpcyBpZGVudGljYWwKICAgICAgICAgICAgIHlpZWxkICcgICcgKyBhZWx0CiAKICAgICAgICAgIyBwdW1wIG91dCBkaWZmcyBmcm9tIGFmdGVyIHRoZSBzeW5jaCBwb2ludAotICAgICAgICBmb3IgbGluZSBpbiBzZWxmLl9mYW5jeV9oZWxwZXIoYSwgYmVzdF9pKzEsIGFoaSwgYiwgYmVzdF9qKzEsIGJoaSk6Ci0gICAgICAgICAgICB5aWVsZCBsaW5lCisgICAgICAgIHlpZWxkIGZyb20gc2VsZi5fZmFuY3lfaGVscGVyKGEsIGJlc3RfaSsxLCBhaGksIGIsIGJlc3RfaisxLCBiaGkpCiAKICAgICBkZWYgX2ZhbmN5X2hlbHBlcihzZWxmLCBhLCBhbG8sIGFoaSwgYiwgYmxvLCBiaGkpOgogICAgICAgICBnID0gW10KQEAgLTEwNTMsOCArMTAzMyw3IEBACiAgICAgICAgIGVsaWYgYmxvIDwgYmhpOgogICAgICAgICAgICAgZyA9IHNlbGYuX2R1bXAoJysnLCBiLCBibG8sIGJoaSkKIAotICAgICAgICBmb3IgbGluZSBpbiBnOgotICAgICAgICAgICAgeWllbGQgbGluZQorICAgICAgICB5aWVsZCBmcm9tIGcKIAogICAgIGRlZiBfcWZvcm1hdChzZWxmLCBhbGluZSwgYmxpbmUsIGF0YWdzLCBidGFncyk6CiAgICAgICAgIHIiIiIKZGlmZiAtLWdpdCBhL0xpYi9kaXMucHkgYi9MaWIvZGlzLnB5CmluZGV4IDU0M2ZkYzcuLmNhNDA5NGMgMTAwNjQ0Ci0tLSBhL0xpYi9kaXMucHkKKysrIGIvTGliL2Rpcy5weQpAQCAtMiwxMiArMiwxNCBAQAogCiBpbXBvcnQgc3lzCiBpbXBvcnQgdHlwZXMKK2ltcG9ydCBjb2xsZWN0aW9ucwogCiBmcm9tIG9wY29kZSBpbXBvcnQgKgogZnJvbSBvcGNvZGUgaW1wb3J0IF9fYWxsX18gYXMgX29wY29kZXNfYWxsCiAKIF9fYWxsX18gPSBbImNvZGVfaW5mbyIsICJkaXMiLCAiZGlzYXNzZW1ibGUiLCAiZGlzdGIiLCAiZGlzY28iLAotICAgICAgICAgICAiZmluZGxpbmVzdGFydHMiLCAiZmluZGxhYmVscyIsICJzaG93X2NvZGUiXSArIF9vcGNvZGVzX2FsbAorICAgICAgICAgICAiZmluZGxpbmVzdGFydHMiLCAiZmluZGxhYmVscyIsICJzaG93X2NvZGUiLAorICAgICAgICAgICAiZ2V0X2luc3RydWN0aW9ucyIsICJJbnN0cnVjdGlvbiIsICJCeXRlY29kZSJdICsgX29wY29kZXNfYWxsCiBkZWwgX29wY29kZXNfYWxsCiAKIF9oYXZlX2NvZGUgPSAodHlwZXMuTWV0aG9kVHlwZSwgdHlwZXMuRnVuY3Rpb25UeXBlLCB0eXBlcy5Db2RlVHlwZSwgdHlwZSkKQEAgLTI1LDcgKzI3LDcgQEAKICAgICAgICAgYyA9IGNvbXBpbGUoc291cmNlLCBuYW1lLCAnZXhlYycpCiAgICAgcmV0dXJuIGMKIAotZGVmIGRpcyh4PU5vbmUpOgorZGVmIGRpcyh4PU5vbmUsICosIGZpbGU9Tm9uZSk6CiAgICAgIiIiRGlzYXNzZW1ibGUgY2xhc3NlcywgbWV0aG9kcywgZnVuY3Rpb25zLCBvciBjb2RlLgogCiAgICAgV2l0aCBubyBhcmd1bWVudCwgZGlzYXNzZW1ibGUgdGhlIGxhc3QgdHJhY2ViYWNrLgpAQCAtNDIsMjMgKzQ0LDIzIEBACiAgICAgICAgIGl0ZW1zID0gc29ydGVkKHguX19kaWN0X18uaXRlbXMoKSkKICAgICAgICAgZm9yIG5hbWUsIHgxIGluIGl0ZW1zOgogICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh4MSwgX2hhdmVfY29kZSk6Ci0gICAgICAgICAgICAgICAgcHJpbnQoIkRpc2Fzc2VtYmx5IG9mICVzOiIgJSBuYW1lKQorICAgICAgICAgICAgICAgIHByaW50KCJEaXNhc3NlbWJseSBvZiAlczoiICUgbmFtZSwgZmlsZT1maWxlKQogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgZGlzKHgxKQogICAgICAgICAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IgYXMgbXNnOgotICAgICAgICAgICAgICAgICAgICBwcmludCgiU29ycnk6IiwgbXNnKQotICAgICAgICAgICAgICAgIHByaW50KCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoIlNvcnJ5OiIsIG1zZywgZmlsZT1maWxlKQorICAgICAgICAgICAgICAgIHByaW50KGZpbGU9ZmlsZSkKICAgICBlbGlmIGhhc2F0dHIoeCwgJ2NvX2NvZGUnKTogIyBDb2RlIG9iamVjdAotICAgICAgICBkaXNhc3NlbWJsZSh4KQorICAgICAgICBkaXNhc3NlbWJsZSh4LCBmaWxlPWZpbGUpCiAgICAgZWxpZiBpc2luc3RhbmNlKHgsIChieXRlcywgYnl0ZWFycmF5KSk6ICMgUmF3IGJ5dGVjb2RlCi0gICAgICAgIF9kaXNhc3NlbWJsZV9ieXRlcyh4KQorICAgICAgICBfZGlzYXNzZW1ibGVfYnl0ZXMoeCwgZmlsZT1maWxlKQogICAgIGVsaWYgaXNpbnN0YW5jZSh4LCBzdHIpOiAgICAjIFNvdXJjZSBjb2RlCi0gICAgICAgIF9kaXNhc3NlbWJsZV9zdHIoeCkKKyAgICAgICAgX2Rpc2Fzc2VtYmxlX3N0cih4LCBmaWxlPWZpbGUpCiAgICAgZWxzZToKICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJkb24ndCBrbm93IGhvdyB0byBkaXNhc3NlbWJsZSAlcyBvYmplY3RzIiAlCiAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlKHgpLl9fbmFtZV9fKQogCi1kZWYgZGlzdGIodGI9Tm9uZSk6CitkZWYgZGlzdGIodGI9Tm9uZSwgKiwgZmlsZT1Ob25lKToKICAgICAiIiJEaXNhc3NlbWJsZSBhIHRyYWNlYmFjayAoZGVmYXVsdDogbGFzdCB0cmFjZWJhY2spLiIiIgogICAgIGlmIHRiIGlzIE5vbmU6CiAgICAgICAgIHRyeToKQEAgLTY2LDcgKzY4LDcgQEAKICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgogICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJubyBsYXN0IHRyYWNlYmFjayB0byBkaXNhc3NlbWJsZSIpCiAgICAgICAgIHdoaWxlIHRiLnRiX25leHQ6IHRiID0gdGIudGJfbmV4dAotICAgIGRpc2Fzc2VtYmxlKHRiLnRiX2ZyYW1lLmZfY29kZSwgdGIudGJfbGFzdGkpCisgICAgZGlzYXNzZW1ibGUodGIudGJfZnJhbWUuZl9jb2RlLCB0Yi50Yl9sYXN0aSwgZmlsZT1maWxlKQogCiAjIFRoZSBpbnNwZWN0IG1vZHVsZSBpbnRlcnJvZ2F0ZXMgdGhpcyBkaWN0aW9uYXJ5IHRvIGJ1aWxkIGl0cwogIyBsaXN0IG9mIENPXyogY29uc3RhbnRzLiBJdCBpcyBhbHNvIHVzZWQgYnkgcHJldHR5X2ZsYWdzIHRvCkBAIC05NSwxOSArOTcsMjIgQEAKICAgICAgICAgbmFtZXMuYXBwZW5kKGhleChmbGFncykpCiAgICAgcmV0dXJuICIsICIuam9pbihuYW1lcykKIAotZGVmIGNvZGVfaW5mbyh4KToKLSAgICAiIiJGb3JtYXR0ZWQgZGV0YWlscyBvZiBtZXRob2RzLCBmdW5jdGlvbnMsIG9yIGNvZGUuIiIiCitkZWYgX2dldF9jb2RlX29iamVjdCh4KToKKyAgICAiIiJIZWxwZXIgdG8gaGFuZGxlIG1ldGhvZHMsIGZ1bmN0aW9ucywgc3RyaW5ncyBhbmQgcmF3IGNvZGUgb2JqZWN0cyIiIgogICAgIGlmIGhhc2F0dHIoeCwgJ19fZnVuY19fJyk6ICMgTWV0aG9kCiAgICAgICAgIHggPSB4Ll9fZnVuY19fCiAgICAgaWYgaGFzYXR0cih4LCAnX19jb2RlX18nKTogIyBGdW5jdGlvbgogICAgICAgICB4ID0geC5fX2NvZGVfXwogICAgIGlmIGlzaW5zdGFuY2UoeCwgc3RyKTogICAgICMgU291cmNlIGNvZGUKLSAgICAgICAgeCA9IF90cnlfY29tcGlsZSh4LCAiPGNvZGVfaW5mbz4iKQorICAgICAgICB4ID0gX3RyeV9jb21waWxlKHgsICI8ZGlzYXNzZW1ibHk+IikKICAgICBpZiBoYXNhdHRyKHgsICdjb19jb2RlJyk6ICAjIENvZGUgb2JqZWN0Ci0gICAgICAgIHJldHVybiBfZm9ybWF0X2NvZGVfaW5mbyh4KQotICAgIGVsc2U6Ci0gICAgICAgIHJhaXNlIFR5cGVFcnJvcigiZG9uJ3Qga25vdyBob3cgdG8gZGlzYXNzZW1ibGUgJXMgb2JqZWN0cyIgJQotICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSh4KS5fX25hbWVfXykKKyAgICAgICAgcmV0dXJuIHgKKyAgICByYWlzZSBUeXBlRXJyb3IoImRvbid0IGtub3cgaG93IHRvIGRpc2Fzc2VtYmxlICVzIG9iamVjdHMiICUKKyAgICAgICAgICAgICAgICAgICAgdHlwZSh4KS5fX25hbWVfXykKKworZGVmIGNvZGVfaW5mbyh4KToKKyAgICAiIiJGb3JtYXR0ZWQgZGV0YWlscyBvZiBtZXRob2RzLCBmdW5jdGlvbnMsIG9yIGNvZGUuIiIiCisgICAgcmV0dXJuIF9mb3JtYXRfY29kZV9pbmZvKF9nZXRfY29kZV9vYmplY3QoeCkpCiAKIGRlZiBfZm9ybWF0X2NvZGVfaW5mbyhjbyk6CiAgICAgbGluZXMgPSBbXQpAQCAtMTQwLDEwNiArMTQ1LDE5NiBAQAogICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIlNGQ6ICVzIiAlIGlfbikKICAgICByZXR1cm4gIlxuIi5qb2luKGxpbmVzKQogCi1kZWYgc2hvd19jb2RlKGNvKToKK2RlZiBzaG93X2NvZGUoY28sICosIGZpbGU9Tm9uZSk6CiAgICAgIiIiUHJpbnQgZGV0YWlscyBvZiBtZXRob2RzLCBmdW5jdGlvbnMsIG9yIGNvZGUgdG8gc3Rkb3V0LiIiIgotICAgIHByaW50KGNvZGVfaW5mbyhjbykpCisgICAgcHJpbnQoY29kZV9pbmZvKGNvKSwgZmlsZT1maWxlKQogCi1kZWYgZGlzYXNzZW1ibGUoY28sIGxhc3RpPS0xKToKLSAgICAiIiJEaXNhc3NlbWJsZSBhIGNvZGUgb2JqZWN0LiIiIgotICAgIGNvZGUgPSBjby5jb19jb2RlCi0gICAgbGFiZWxzID0gZmluZGxhYmVscyhjb2RlKQorX0luc3RydWN0aW9uID0gY29sbGVjdGlvbnMubmFtZWR0dXBsZSgiX0luc3RydWN0aW9uIiwKKyAgICAgIm9wbmFtZSBvcGNvZGUgYXJnIGFyZ3ZhbCBhcmdyZXByIG9mZnNldCBzdGFydHNfbGluZSBpc19qdW1wX3RhcmdldCIpCisKK2NsYXNzIEluc3RydWN0aW9uKF9JbnN0cnVjdGlvbik6CisgICAgIiIiRGV0YWlscyBmb3IgYSBieXRlY29kZSBvcGVyYXRpb24KKworICAgICAgIERlZmluZWQgZmllbGRzOgorICAgICAgICAgb3BuYW1lIC0gaHVtYW4gcmVhZGFibGUgbmFtZSBmb3Igb3BlcmF0aW9uCisgICAgICAgICBvcGNvZGUgLSBudW1lcmljIGNvZGUgZm9yIG9wZXJhdGlvbgorICAgICAgICAgYXJnIC0gbnVtZXJpYyBhcmd1bWVudCB0byBvcGVyYXRpb24gKGlmIGFueSksIG90aGVyd2lzZSBOb25lCisgICAgICAgICBhcmd2YWwgLSByZXNvbHZlZCBhcmcgdmFsdWUgKGlmIGtub3duKSwgb3RoZXJ3aXNlIHNhbWUgYXMgYXJnCisgICAgICAgICBhcmdyZXByIC0gaHVtYW4gcmVhZGFibGUgZGVzY3JpcHRpb24gb2Ygb3BlcmF0aW9uIGFyZ3VtZW50CisgICAgICAgICBvZmZzZXQgLSBzdGFydCBpbmRleCBvZiBvcGVyYXRpb24gd2l0aGluIGJ5dGVjb2RlIHNlcXVlbmNlCisgICAgICAgICBzdGFydHNfbGluZSAtIGxpbmUgc3RhcnRlZCBieSB0aGlzIG9wY29kZSAoaWYgYW55KSwgb3RoZXJ3aXNlIE5vbmUKKyAgICAgICAgIGlzX2p1bXBfdGFyZ2V0IC0gVHJ1ZSBpZiBvdGhlciBjb2RlIGp1bXBzIHRvIGhlcmUsIG90aGVyd2lzZSBGYWxzZQorICAgICIiIgorCisgICAgZGVmIF9kaXNhc3NlbWJsZShzZWxmLCBsaW5lbm9fd2lkdGg9MywgbWFya19hc19jdXJyZW50PUZhbHNlKToKKyAgICAgICAgIiIiRm9ybWF0IGluc3RydWN0aW9uIGRldGFpbHMgZm9yIGluY2x1c2lvbiBpbiBkaXNhc3NlbWJseSBvdXRwdXQKKworICAgICAgICAqbGluZW5vX3dpZHRoKiBzZXRzIHRoZSB3aWR0aCBvZiB0aGUgbGluZSBudW1iZXIgZmllbGQgKDAgb21pdHMgaXQpCisgICAgICAgICptYXJrX2FzX2N1cnJlbnQqIGluc2VydHMgYSAnLS0+JyBtYXJrZXIgYXJyb3cgYXMgcGFydCBvZiB0aGUgbGluZQorICAgICAgICAiIiIKKyAgICAgICAgZmllbGRzID0gW10KKyAgICAgICAgIyBDb2x1bW46IFNvdXJjZSBjb2RlIGxpbmUgbnVtYmVyCisgICAgICAgIGlmIGxpbmVub193aWR0aDoKKyAgICAgICAgICAgIGlmIHNlbGYuc3RhcnRzX2xpbmUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgbGluZW5vX2ZtdCA9ICIlJSVkZCIgJSBsaW5lbm9fd2lkdGgKKyAgICAgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKGxpbmVub19mbXQgJSBzZWxmLnN0YXJ0c19saW5lKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCcgJyAqIGxpbmVub193aWR0aCkKKyAgICAgICAgIyBDb2x1bW46IEN1cnJlbnQgaW5zdHJ1Y3Rpb24gaW5kaWNhdG9yCisgICAgICAgIGlmIG1hcmtfYXNfY3VycmVudDoKKyAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJy0tPicpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCcgICAnKQorICAgICAgICAjIENvbHVtbjogSnVtcCB0YXJnZXQgbWFya2VyCisgICAgICAgIGlmIHNlbGYuaXNfanVtcF90YXJnZXQ6CisgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCc+PicpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCcgICcpCisgICAgICAgICMgQ29sdW1uOiBJbnN0cnVjdGlvbiBvZmZzZXQgZnJvbSBzdGFydCBvZiBjb2RlIHNlcXVlbmNlCisgICAgICAgIGZpZWxkcy5hcHBlbmQocmVwcihzZWxmLm9mZnNldCkucmp1c3QoNCkpCisgICAgICAgICMgQ29sdW1uOiBPcGNvZGUgbmFtZQorICAgICAgICBmaWVsZHMuYXBwZW5kKHNlbGYub3BuYW1lLmxqdXN0KDIwKSkKKyAgICAgICAgIyBDb2x1bW46IE9wY29kZSBhcmd1bWVudAorICAgICAgICBpZiBzZWxmLmFyZyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQocmVwcihzZWxmLmFyZykucmp1c3QoNSkpCisgICAgICAgICAgICAjIENvbHVtbjogT3Bjb2RlIGFyZ3VtZW50IGRldGFpbHMKKyAgICAgICAgICAgIGlmIHNlbGYuYXJncmVwcjoKKyAgICAgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKCcoJyArIHNlbGYuYXJncmVwciArICcpJykKKyAgICAgICAgcmV0dXJuICcgJy5qb2luKGZpZWxkcykKKworCitkZWYgZ2V0X2luc3RydWN0aW9ucyh4LCAqLCBsaW5lX29mZnNldD0wKToKKyAgICAiIiJJdGVyYXRvciBmb3IgdGhlIG9wY29kZXMgaW4gbWV0aG9kcywgZnVuY3Rpb25zIG9yIGNvZGUKKworICAgIEdlbmVyYXRlcyBhIHNlcmllcyBvZiBJbnN0cnVjdGlvbiBuYW1lZCB0dXBsZXMgZ2l2aW5nIHRoZSBkZXRhaWxzIG9mCisgICAgZWFjaCBvcGVyYXRpb25zIGluIHRoZSBzdXBwbGllZCBjb2RlLgorCisgICAgVGhlIGdpdmVuIGxpbmUgb2Zmc2V0IGlzIGFkZGVkIHRvIHRoZSAnc3RhcnRzX2xpbmUnIGF0dHJpYnV0ZSBvZiBhbnkKKyAgICBpbnN0cnVjdGlvbnMgdGhhdCBzdGFydCBhIG5ldyBsaW5lLgorICAgICIiIgorICAgIGNvID0gX2dldF9jb2RlX29iamVjdCh4KQorICAgIGNlbGxfbmFtZXMgPSBjby5jb19jZWxsdmFycyArIGNvLmNvX2ZyZWV2YXJzCiAgICAgbGluZXN0YXJ0cyA9IGRpY3QoZmluZGxpbmVzdGFydHMoY28pKQorICAgIHJldHVybiBfZ2V0X2luc3RydWN0aW9uc19ieXRlcyhjby5jb19jb2RlLCBjby5jb192YXJuYW1lcywgY28uY29fbmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvLmNvX2NvbnN0cywgY2VsbF9uYW1lcywgbGluZXN0YXJ0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9vZmZzZXQpCisKK2RlZiBfZ2V0X2NvbnN0X2luZm8oY29uc3RfaW5kZXgsIGNvbnN0X2xpc3QpOgorICAgICIiIkhlbHBlciB0byBnZXQgb3B0aW9uYWwgZGV0YWlscyBhYm91dCBjb25zdCByZWZlcmVuY2VzCisKKyAgICAgICBSZXR1cm5zIHRoZSBkZXJlZmVyZW5jZWQgY29uc3RhbnQgYW5kIGl0cyByZXByIGlmIHRoZSBjb25zdGFudAorICAgICAgIGxpc3QgaXMgZGVmaW5lZC4KKyAgICAgICBPdGhlcndpc2UgcmV0dXJucyB0aGUgY29uc3RhbnQgaW5kZXggYW5kIGl0cyByZXByKCkuCisgICAgIiIiCisgICAgYXJndmFsID0gY29uc3RfaW5kZXgKKyAgICBpZiBjb25zdF9saXN0IGlzIG5vdCBOb25lOgorICAgICAgICBhcmd2YWwgPSBjb25zdF9saXN0W2NvbnN0X2luZGV4XQorICAgIHJldHVybiBhcmd2YWwsIHJlcHIoYXJndmFsKQorCitkZWYgX2dldF9uYW1lX2luZm8obmFtZV9pbmRleCwgbmFtZV9saXN0KToKKyAgICAiIiJIZWxwZXIgdG8gZ2V0IG9wdGlvbmFsIGRldGFpbHMgYWJvdXQgbmFtZWQgcmVmZXJlbmNlcworCisgICAgICAgUmV0dXJucyB0aGUgZGVyZWZlcmVuY2VkIG5hbWUgYXMgYm90aCB2YWx1ZSBhbmQgcmVwciBpZiB0aGUgbmFtZQorICAgICAgIGxpc3QgaXMgZGVmaW5lZC4KKyAgICAgICBPdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSBpbmRleCBhbmQgaXRzIHJlcHIoKS4KKyAgICAiIiIKKyAgICBhcmd2YWwgPSBuYW1lX2luZGV4CisgICAgaWYgbmFtZV9saXN0IGlzIG5vdCBOb25lOgorICAgICAgICBhcmd2YWwgPSBuYW1lX2xpc3RbbmFtZV9pbmRleF0KKyAgICAgICAgYXJncmVwciA9IGFyZ3ZhbAorICAgIGVsc2U6CisgICAgICAgIGFyZ3JlcHIgPSByZXByKGFyZ3ZhbCkKKyAgICByZXR1cm4gYXJndmFsLCBhcmdyZXByCisKKworZGVmIF9nZXRfaW5zdHJ1Y3Rpb25zX2J5dGVzKGNvZGUsIHZhcm5hbWVzPU5vbmUsIG5hbWVzPU5vbmUsIGNvbnN0YW50cz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgIGNlbGxzPU5vbmUsIGxpbmVzdGFydHM9Tm9uZSwgbGluZV9vZmZzZXQ9MCk6CisgICAgIiIiSXRlcmF0ZSBvdmVyIHRoZSBpbnN0cnVjdGlvbnMgaW4gYSBieXRlY29kZSBzdHJpbmcuCisKKyAgICBHZW5lcmF0ZXMgYSBzZXF1ZW5jZSBvZiBJbnN0cnVjdGlvbiBuYW1lZHR1cGxlcyBnaXZpbmcgdGhlIGRldGFpbHMgb2YgZWFjaAorICAgIG9wY29kZS4gIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvZGUncyBydW50aW1lIGVudmlyb25tZW50CisgICAgKGUuZy4gdmFyaWFibGUgbmFtZXMsIGNvbnN0YW50cykgY2FuIGJlIHNwZWNpZmllZCB1c2luZyBvcHRpb25hbAorICAgIGFyZ3VtZW50cy4KKworICAgICIiIgorICAgIGxhYmVscyA9IGZpbmRsYWJlbHMoY29kZSkKKyAgICBleHRlbmRlZF9hcmcgPSAwCisgICAgc3RhcnRzX2xpbmUgPSBOb25lCisgICAgZnJlZSA9IE5vbmUKKyAgICAjIGVudW1lcmF0ZSgpIGlzIG5vdCBhbiBvcHRpb24sIHNpbmNlIHdlIHNvbWV0aW1lcyBwcm9jZXNzCisgICAgIyBtdWx0aXBsZSBlbGVtZW50cyBvbiBhIHNpbmdsZSBwYXNzIHRocm91Z2ggdGhlIGxvb3AKICAgICBuID0gbGVuKGNvZGUpCiAgICAgaSA9IDAKLSAgICBleHRlbmRlZF9hcmcgPSAwCi0gICAgZnJlZSA9IE5vbmUKICAgICB3aGlsZSBpIDwgbjoKICAgICAgICAgb3AgPSBjb2RlW2ldCi0gICAgICAgIGlmIGkgaW4gbGluZXN0YXJ0czoKLSAgICAgICAgICAgIGlmIGkgPiAwOgotICAgICAgICAgICAgICAgIHByaW50KCkKLSAgICAgICAgICAgIHByaW50KCIlM2QiICUgbGluZXN0YXJ0c1tpXSwgZW5kPScgJykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHByaW50KCcgICAnLCBlbmQ9JyAnKQotCi0gICAgICAgIGlmIGkgPT0gbGFzdGk6IHByaW50KCctLT4nLCBlbmQ9JyAnKQotICAgICAgICBlbHNlOiBwcmludCgnICAgJywgZW5kPScgJykKLSAgICAgICAgaWYgaSBpbiBsYWJlbHM6IHByaW50KCc+PicsIGVuZD0nICcpCi0gICAgICAgIGVsc2U6IHByaW50KCcgICcsIGVuZD0nICcpCi0gICAgICAgIHByaW50KHJlcHIoaSkucmp1c3QoNCksIGVuZD0nICcpCi0gICAgICAgIHByaW50KG9wbmFtZVtvcF0ubGp1c3QoMjApLCBlbmQ9JyAnKQorICAgICAgICBvZmZzZXQgPSBpCisgICAgICAgIGlmIGxpbmVzdGFydHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzdGFydHNfbGluZSA9IGxpbmVzdGFydHMuZ2V0KGksIE5vbmUpCisgICAgICAgICAgICBpZiBzdGFydHNfbGluZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBzdGFydHNfbGluZSArPSBsaW5lX29mZnNldAorICAgICAgICBpc19qdW1wX3RhcmdldCA9IGkgaW4gbGFiZWxzCiAgICAgICAgIGkgPSBpKzEKKyAgICAgICAgYXJnID0gTm9uZQorICAgICAgICBhcmd2YWwgPSBOb25lCisgICAgICAgIGFyZ3JlcHIgPSAnJwogICAgICAgICBpZiBvcCA+PSBIQVZFX0FSR1VNRU5UOgotICAgICAgICAgICAgb3BhcmcgPSBjb2RlW2ldICsgY29kZVtpKzFdKjI1NiArIGV4dGVuZGVkX2FyZworICAgICAgICAgICAgYXJnID0gY29kZVtpXSArIGNvZGVbaSsxXSoyNTYgKyBleHRlbmRlZF9hcmcKICAgICAgICAgICAgIGV4dGVuZGVkX2FyZyA9IDAKICAgICAgICAgICAgIGkgPSBpKzIKICAgICAgICAgICAgIGlmIG9wID09IEVYVEVOREVEX0FSRzoKLSAgICAgICAgICAgICAgICBleHRlbmRlZF9hcmcgPSBvcGFyZyo2NTUzNgotICAgICAgICAgICAgcHJpbnQocmVwcihvcGFyZykucmp1c3QoNSksIGVuZD0nICcpCisgICAgICAgICAgICAgICAgZXh0ZW5kZWRfYXJnID0gYXJnKjY1NTM2CisgICAgICAgICAgICAjICBTZXQgYXJndmFsIHRvIHRoZSBkZXJlZmVyZW5jZWQgdmFsdWUgb2YgdGhlIGFyZ3VtZW50IHdoZW4KKyAgICAgICAgICAgICMgIGF2YWlsYWJlLCBhbmQgYXJncmVwciB0byB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFyZ3ZhbC4KKyAgICAgICAgICAgICMgICAgX2Rpc2Fzc2VtYmxlX2J5dGVzIG5lZWRzIHRoZSBzdHJpbmcgcmVwciBvZiB0aGUKKyAgICAgICAgICAgICMgICAgcmF3IG5hbWUgaW5kZXggZm9yIExPQURfR0xPQkFMLCBMT0FEX0NPTlNULCBldGMuCisgICAgICAgICAgICBhcmd2YWwgPSBhcmcKICAgICAgICAgICAgIGlmIG9wIGluIGhhc2NvbnN0OgotICAgICAgICAgICAgICAgIHByaW50KCcoJyArIHJlcHIoY28uY29fY29uc3RzW29wYXJnXSkgKyAnKScsIGVuZD0nICcpCisgICAgICAgICAgICAgICAgYXJndmFsLCBhcmdyZXByID0gX2dldF9jb25zdF9pbmZvKGFyZywgY29uc3RhbnRzKQogICAgICAgICAgICAgZWxpZiBvcCBpbiBoYXNuYW1lOgotICAgICAgICAgICAgICAgIHByaW50KCcoJyArIGNvLmNvX25hbWVzW29wYXJnXSArICcpJywgZW5kPScgJykKKyAgICAgICAgICAgICAgICBhcmd2YWwsIGFyZ3JlcHIgPSBfZ2V0X25hbWVfaW5mbyhhcmcsIG5hbWVzKQogICAgICAgICAgICAgZWxpZiBvcCBpbiBoYXNqcmVsOgotICAgICAgICAgICAgICAgIHByaW50KCcodG8gJyArIHJlcHIoaSArIG9wYXJnKSArICcpJywgZW5kPScgJykKKyAgICAgICAgICAgICAgICBhcmd2YWwgPSBpICsgYXJnCisgICAgICAgICAgICAgICAgYXJncmVwciA9ICJ0byAiICsgcmVwcihhcmd2YWwpCiAgICAgICAgICAgICBlbGlmIG9wIGluIGhhc2xvY2FsOgotICAgICAgICAgICAgICAgIHByaW50KCcoJyArIGNvLmNvX3Zhcm5hbWVzW29wYXJnXSArICcpJywgZW5kPScgJykKKyAgICAgICAgICAgICAgICBhcmd2YWwsIGFyZ3JlcHIgPSBfZ2V0X25hbWVfaW5mbyhhcmcsIHZhcm5hbWVzKQogICAgICAgICAgICAgZWxpZiBvcCBpbiBoYXNjb21wYXJlOgotICAgICAgICAgICAgICAgIHByaW50KCcoJyArIGNtcF9vcFtvcGFyZ10gKyAnKScsIGVuZD0nICcpCisgICAgICAgICAgICAgICAgYXJndmFsID0gY21wX29wW2FyZ10KKyAgICAgICAgICAgICAgICBhcmdyZXByID0gYXJndmFsCiAgICAgICAgICAgICBlbGlmIG9wIGluIGhhc2ZyZWU6Ci0gICAgICAgICAgICAgICAgaWYgZnJlZSBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICBmcmVlID0gY28uY29fY2VsbHZhcnMgKyBjby5jb19mcmVldmFycwotICAgICAgICAgICAgICAgIHByaW50KCcoJyArIGZyZWVbb3BhcmddICsgJyknLCBlbmQ9JyAnKQorICAgICAgICAgICAgICAgIGFyZ3ZhbCwgYXJncmVwciA9IF9nZXRfbmFtZV9pbmZvKGFyZywgY2VsbHMpCiAgICAgICAgICAgICBlbGlmIG9wIGluIGhhc25hcmdzOgotICAgICAgICAgICAgICAgIHByaW50KCcoJWQgcG9zaXRpb25hbCwgJWQga2V5d29yZCBwYWlyKScKLSAgICAgICAgICAgICAgICAgICAgICAlIChjb2RlW2ktMl0sIGNvZGVbaS0xXSksIGVuZD0nICcpCi0gICAgICAgIHByaW50KCkKKyAgICAgICAgICAgICAgICBhcmdyZXByID0gIiVkIHBvc2l0aW9uYWwsICVkIGtleXdvcmQgcGFpciIgJSAoY29kZVtpLTJdLCBjb2RlW2ktMV0pCisgICAgICAgIHlpZWxkIEluc3RydWN0aW9uKG9wbmFtZVtvcF0sIG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcsIGFyZ3ZhbCwgYXJncmVwciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LCBzdGFydHNfbGluZSwgaXNfanVtcF90YXJnZXQpCisKK2RlZiBkaXNhc3NlbWJsZShjbywgbGFzdGk9LTEsICosIGZpbGU9Tm9uZSk6CisgICAgIiIiRGlzYXNzZW1ibGUgYSBjb2RlIG9iamVjdC4iIiIKKyAgICBjZWxsX25hbWVzID0gY28uY29fY2VsbHZhcnMgKyBjby5jb19mcmVldmFycworICAgIGxpbmVzdGFydHMgPSBkaWN0KGZpbmRsaW5lc3RhcnRzKGNvKSkKKyAgICBfZGlzYXNzZW1ibGVfYnl0ZXMoY28uY29fY29kZSwgbGFzdGksIGNvLmNvX3Zhcm5hbWVzLCBjby5jb19uYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgY28uY29fY29uc3RzLCBjZWxsX25hbWVzLCBsaW5lc3RhcnRzLCBmaWxlPWZpbGUpCiAKIGRlZiBfZGlzYXNzZW1ibGVfYnl0ZXMoY29kZSwgbGFzdGk9LTEsIHZhcm5hbWVzPU5vbmUsIG5hbWVzPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50cz1Ob25lKToKLSAgICBsYWJlbHMgPSBmaW5kbGFiZWxzKGNvZGUpCi0gICAgbiA9IGxlbihjb2RlKQotICAgIGkgPSAwCi0gICAgd2hpbGUgaSA8IG46Ci0gICAgICAgIG9wID0gY29kZVtpXQotICAgICAgICBpZiBpID09IGxhc3RpOiBwcmludCgnLS0+JywgZW5kPScgJykKLSAgICAgICAgZWxzZTogcHJpbnQoJyAgICcsIGVuZD0nICcpCi0gICAgICAgIGlmIGkgaW4gbGFiZWxzOiBwcmludCgnPj4nLCBlbmQ9JyAnKQotICAgICAgICBlbHNlOiBwcmludCgnICAnLCBlbmQ9JyAnKQotICAgICAgICBwcmludChyZXByKGkpLnJqdXN0KDQpLCBlbmQ9JyAnKQotICAgICAgICBwcmludChvcG5hbWVbb3BdLmxqdXN0KDE1KSwgZW5kPScgJykKLSAgICAgICAgaSA9IGkrMQotICAgICAgICBpZiBvcCA+PSBIQVZFX0FSR1VNRU5UOgotICAgICAgICAgICAgb3BhcmcgPSBjb2RlW2ldICsgY29kZVtpKzFdKjI1NgotICAgICAgICAgICAgaSA9IGkrMgotICAgICAgICAgICAgcHJpbnQocmVwcihvcGFyZykucmp1c3QoNSksIGVuZD0nICcpCi0gICAgICAgICAgICBpZiBvcCBpbiBoYXNjb25zdDoKLSAgICAgICAgICAgICAgICBpZiBjb25zdGFudHM6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KCcoJyArIHJlcHIoY29uc3RhbnRzW29wYXJnXSkgKyAnKScsIGVuZD0nICcpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoJyglZCknJW9wYXJnLCBlbmQ9JyAnKQotICAgICAgICAgICAgZWxpZiBvcCBpbiBoYXNuYW1lOgotICAgICAgICAgICAgICAgIGlmIG5hbWVzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBwcmludCgnKCcgKyBuYW1lc1tvcGFyZ10gKyAnKScsIGVuZD0nICcpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoJyglZCknJW9wYXJnLCBlbmQ9JyAnKQotICAgICAgICAgICAgZWxpZiBvcCBpbiBoYXNqcmVsOgotICAgICAgICAgICAgICAgIHByaW50KCcodG8gJyArIHJlcHIoaSArIG9wYXJnKSArICcpJywgZW5kPScgJykKLSAgICAgICAgICAgIGVsaWYgb3AgaW4gaGFzbG9jYWw6Ci0gICAgICAgICAgICAgICAgaWYgdmFybmFtZXM6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KCcoJyArIHZhcm5hbWVzW29wYXJnXSArICcpJywgZW5kPScgJykKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBwcmludCgnKCVkKScgJSBvcGFyZywgZW5kPScgJykKLSAgICAgICAgICAgIGVsaWYgb3AgaW4gaGFzY29tcGFyZToKLSAgICAgICAgICAgICAgICBwcmludCgnKCcgKyBjbXBfb3Bbb3BhcmddICsgJyknLCBlbmQ9JyAnKQotICAgICAgICAgICAgZWxpZiBvcCBpbiBoYXNuYXJnczoKLSAgICAgICAgICAgICAgICBwcmludCgnKCVkIHBvc2l0aW9uYWwsICVkIGtleXdvcmQgcGFpciknCi0gICAgICAgICAgICAgICAgICAgICAgJSAoY29kZVtpLTJdLCBjb2RlW2ktMV0pLCBlbmQ9JyAnKQotICAgICAgICBwcmludCgpCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50cz1Ob25lLCBjZWxscz1Ob25lLCBsaW5lc3RhcnRzPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICosIGZpbGU9Tm9uZSk6CisgICAgIyBPbWl0IHRoZSBsaW5lIG51bWJlciBjb2x1bW4gZW50aXJlbHkgaWYgd2UgaGF2ZSBubyBsaW5lIG51bWJlciBpbmZvCisgICAgc2hvd19saW5lbm8gPSBsaW5lc3RhcnRzIGlzIG5vdCBOb25lCisgICAgIyBUT0RPPzogQWRqdXN0IHdpZHRoIHVwd2FyZHMgaWYgbWF4KGxpbmVzdGFydHMudmFsdWVzKCkpID49IDEwMDA/CisgICAgbGluZW5vX3dpZHRoID0gMyBpZiBzaG93X2xpbmVubyBlbHNlIDAKKyAgICBmb3IgaW5zdHIgaW4gX2dldF9pbnN0cnVjdGlvbnNfYnl0ZXMoY29kZSwgdmFybmFtZXMsIG5hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdGFudHMsIGNlbGxzLCBsaW5lc3RhcnRzKToKKyAgICAgICAgbmV3X3NvdXJjZV9saW5lID0gKHNob3dfbGluZW5vIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdHIuc3RhcnRzX2xpbmUgaXMgbm90IE5vbmUgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0ci5vZmZzZXQgPiAwKQorICAgICAgICBpZiBuZXdfc291cmNlX2xpbmU6CisgICAgICAgICAgICBwcmludChmaWxlPWZpbGUpCisgICAgICAgIGlzX2N1cnJlbnRfaW5zdHIgPSBpbnN0ci5vZmZzZXQgPT0gbGFzdGkKKyAgICAgICAgcHJpbnQoaW5zdHIuX2Rpc2Fzc2VtYmxlKGxpbmVub193aWR0aCwgaXNfY3VycmVudF9pbnN0ciksIGZpbGU9ZmlsZSkKIAotZGVmIF9kaXNhc3NlbWJsZV9zdHIoc291cmNlKToKK2RlZiBfZGlzYXNzZW1ibGVfc3RyKHNvdXJjZSwgKiwgZmlsZT1Ob25lKToKICAgICAiIiJDb21waWxlIHRoZSBzb3VyY2Ugc3RyaW5nLCB0aGVuIGRpc2Fzc2VtYmxlIHRoZSBjb2RlIG9iamVjdC4iIiIKLSAgICBkaXNhc3NlbWJsZShfdHJ5X2NvbXBpbGUoc291cmNlLCAnPGRpcz4nKSkKKyAgICBkaXNhc3NlbWJsZShfdHJ5X2NvbXBpbGUoc291cmNlLCAnPGRpcz4nKSwgZmlsZT1maWxlKQogCiBkaXNjbyA9IGRpc2Fzc2VtYmxlICAgICAgICAgICAgICAgICAgICAgIyBYWFggRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CiAKQEAgLTI1MCwxOSArMzQ1LDIxIEBACiAKICAgICAiIiIKICAgICBsYWJlbHMgPSBbXQorICAgICMgZW51bWVyYXRlKCkgaXMgbm90IGFuIG9wdGlvbiwgc2luY2Ugd2Ugc29tZXRpbWVzIHByb2Nlc3MKKyAgICAjIG11bHRpcGxlIGVsZW1lbnRzIG9uIGEgc2luZ2xlIHBhc3MgdGhyb3VnaCB0aGUgbG9vcAogICAgIG4gPSBsZW4oY29kZSkKICAgICBpID0gMAogICAgIHdoaWxlIGkgPCBuOgogICAgICAgICBvcCA9IGNvZGVbaV0KICAgICAgICAgaSA9IGkrMQogICAgICAgICBpZiBvcCA+PSBIQVZFX0FSR1VNRU5UOgotICAgICAgICAgICAgb3BhcmcgPSBjb2RlW2ldICsgY29kZVtpKzFdKjI1NgorICAgICAgICAgICAgYXJnID0gY29kZVtpXSArIGNvZGVbaSsxXSoyNTYKICAgICAgICAgICAgIGkgPSBpKzIKICAgICAgICAgICAgIGxhYmVsID0gLTEKICAgICAgICAgICAgIGlmIG9wIGluIGhhc2pyZWw6Ci0gICAgICAgICAgICAgICAgbGFiZWwgPSBpK29wYXJnCisgICAgICAgICAgICAgICAgbGFiZWwgPSBpK2FyZwogICAgICAgICAgICAgZWxpZiBvcCBpbiBoYXNqYWJzOgotICAgICAgICAgICAgICAgIGxhYmVsID0gb3BhcmcKKyAgICAgICAgICAgICAgICBsYWJlbCA9IGFyZwogICAgICAgICAgICAgaWYgbGFiZWwgPj0gMDoKICAgICAgICAgICAgICAgICBpZiBsYWJlbCBub3QgaW4gbGFiZWxzOgogICAgICAgICAgICAgICAgICAgICBsYWJlbHMuYXBwZW5kKGxhYmVsKQpAQCAtMjkwLDYgKzM4Nyw1MCBAQAogICAgIGlmIGxpbmVubyAhPSBsYXN0bGluZW5vOgogICAgICAgICB5aWVsZCAoYWRkciwgbGluZW5vKQogCitjbGFzcyBCeXRlY29kZToKKyAgICAiIiJUaGUgYnl0ZWNvZGUgb3BlcmF0aW9ucyBvZiBhIHBpZWNlIG9mIGNvZGUKKworICAgIEluc3RhbnRpYXRlIHRoaXMgd2l0aCBhIGZ1bmN0aW9uLCBtZXRob2QsIHN0cmluZyBvZiBjb2RlLCBvciBhIGNvZGUgb2JqZWN0CisgICAgKGFzIHJldHVybmVkIGJ5IGNvbXBpbGUoKSkuCisKKyAgICBJdGVyYXRpbmcgb3ZlciB0aGlzIHlpZWxkcyB0aGUgYnl0ZWNvZGUgb3BlcmF0aW9ucyBhcyBJbnN0cnVjdGlvbiBpbnN0YW5jZXMuCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHgpOgorICAgICAgICBzZWxmLmNvZGVvYmogPSBfZ2V0X2NvZGVfb2JqZWN0KHgpCisgICAgICAgIHNlbGYuY2VsbF9uYW1lcyA9IHNlbGYuY29kZW9iai5jb19jZWxsdmFycyArIHNlbGYuY29kZW9iai5jb19mcmVldmFycworICAgICAgICBzZWxmLmxpbmVzdGFydHMgPSBkaWN0KGZpbmRsaW5lc3RhcnRzKHNlbGYuY29kZW9iaikpCisgICAgICAgIHNlbGYubGluZV9vZmZzZXQgPSAwCisgICAgICAgIHNlbGYub3JpZ2luYWxfb2JqZWN0ID0geAorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICBjbyA9IHNlbGYuY29kZW9iagorICAgICAgICByZXR1cm4gX2dldF9pbnN0cnVjdGlvbnNfYnl0ZXMoY28uY29fY29kZSwgY28uY29fdmFybmFtZXMsIGNvLmNvX25hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjby5jb19jb25zdHMsIHNlbGYuY2VsbF9uYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5saW5lc3RhcnRzLCBzZWxmLmxpbmVfb2Zmc2V0KQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gInt9KHshcn0pIi5mb3JtYXQoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYub3JpZ2luYWxfb2JqZWN0KQorCisgICAgZGVmIGluZm8oc2VsZik6CisgICAgICAgICIiIlJldHVybiBmb3JtYXR0ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvZGUgb2JqZWN0LiIiIgorICAgICAgICByZXR1cm4gX2Zvcm1hdF9jb2RlX2luZm8oc2VsZi5jb2Rlb2JqKQorCisgICAgZGVmIHNob3dfaW5mbyhzZWxmLCAqLCBmaWxlPU5vbmUpOgorICAgICAgICAiIiJQcmludCB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvZGUgb2JqZWN0IGFzIHJldHVybmVkIGJ5IGluZm8oKS4iIiIKKyAgICAgICAgcHJpbnQoc2VsZi5pbmZvKCksIGZpbGU9ZmlsZSkKKworICAgIGRlZiBkaXNwbGF5X2NvZGUoc2VsZiwgKiwgZmlsZT1Ob25lKToKKyAgICAgICAgIiIiUHJpbnQgYSBmb3JtYXR0ZWQgdmlldyBvZiB0aGUgYnl0ZWNvZGUgb3BlcmF0aW9ucy4KKyAgICAgICAgIiIiCisgICAgICAgIGNvID0gc2VsZi5jb2Rlb2JqCisgICAgICAgIHJldHVybiBfZGlzYXNzZW1ibGVfYnl0ZXMoY28uY29fY29kZSwgdmFybmFtZXM9Y28uY29fdmFybmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM9Y28uY29fbmFtZXMsIGNvbnN0YW50cz1jby5jb19jb25zdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbHM9c2VsZi5jZWxsX25hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzdGFydHM9c2VsZi5saW5lc3RhcnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU9ZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorCisKIGRlZiBfdGVzdCgpOgogICAgICIiIlNpbXBsZSB0ZXN0IHByb2dyYW0gdG8gZGlzYXNzZW1ibGUgYSBmaWxlLiIiIgogICAgIGlmIHN5cy5hcmd2WzE6XToKZGlmZiAtLWdpdCBhL0xpYi9kaXN0dXRpbHMvX19pbml0X18ucHkgYi9MaWIvZGlzdHV0aWxzL19faW5pdF9fLnB5CmluZGV4IDgzZDdjYjcuLjcwYTcyYjAgMTAwNjQ0Ci0tLSBhL0xpYi9kaXN0dXRpbHMvX19pbml0X18ucHkKKysrIGIvTGliL2Rpc3R1dGlscy9fX2luaXRfXy5weQpAQCAtMTMsNSArMTMsNSBAQAogIyBVcGRhdGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIFB5dGhvbiByZWxlYXNlIHByb2Nlc3MuCiAjCiAjLS1zdGFydCBjb25zdGFudHMtLQotX192ZXJzaW9uX18gPSAiMy4zLjIiCitfX3ZlcnNpb25fXyA9ICIzLjQuMGEwIgogIy0tZW5kIGNvbnN0YW50cy0tCmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL2Njb21waWxlci5weSBiL0xpYi9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5CmluZGV4IGM3OTVjOTUuLjkxMWU4NGQgMTAwNjQ0Ci0tLSBhL0xpYi9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5CisrKyBiL0xpYi9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5CkBAIC0zNTEsNyArMzUxLDcgQEAKICAgICAgICAgcmV0dXJuIG1hY3Jvcywgb2JqZWN0cywgZXh0cmEsIHBwX29wdHMsIGJ1aWxkCiAKICAgICBkZWYgX2dldF9jY19hcmdzKHNlbGYsIHBwX29wdHMsIGRlYnVnLCBiZWZvcmUpOgotICAgICAgICAjIHdvcmtzIGZvciB1bml4Y2NvbXBpbGVyLCBlbXhjY29tcGlsZXIsIGN5Z3dpbmNjb21waWxlcgorICAgICAgICAjIHdvcmtzIGZvciB1bml4Y2NvbXBpbGVyLCBjeWd3aW5jY29tcGlsZXIKICAgICAgICAgY2NfYXJncyA9IHBwX29wdHMgKyBbJy1jJ10KICAgICAgICAgaWYgZGVidWc6CiAgICAgICAgICAgICBjY19hcmdzWzowXSA9IFsnLWcnXQpAQCAtOTI2LDcgKzkyNiw2IEBACiAgICAgIyBvbiBhIGN5Z3dpbiBidWlsdCBweXRob24gd2UgY2FuIHVzZSBnY2MgbGlrZSBhbiBvcmRpbmFyeSBVTklYaXNoCiAgICAgIyBjb21waWxlcgogICAgICgnY3lnd2luLionLCAndW5peCcpLAotICAgICgnb3MyZW14JywgJ2VteCcpLAogCiAgICAgIyBPUyBuYW1lIG1hcHBpbmdzCiAgICAgKCdwb3NpeCcsICd1bml4JyksCkBAIC05NjgsOCArOTY3LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWluZ3czMiBwb3J0IG9mIEdOVSBDIENvbXBpbGVyIGZvciBXaW4zMiIpLAogICAgICAgICAgICAgICAgICAgICdiY3BwJzogICAgKCdiY3BwY29tcGlsZXInLCAnQkNQUENvbXBpbGVyJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQm9ybGFuZCBDKysgQ29tcGlsZXIiKSwKLSAgICAgICAgICAgICAgICAgICAnZW14JzogICAgICgnZW14Y2NvbXBpbGVyJywgJ0VNWENDb21waWxlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVNWCBwb3J0IG9mIEdOVSBDIENvbXBpbGVyIGZvciBPUy8yIiksCiAgICAgICAgICAgICAgICAgIH0KIAogZGVmIHNob3dfY29tcGlsZXJzKCk6CmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvYmRpc3QucHkgYi9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvYmRpc3QucHkKaW5kZXggYzUxODhlYi4uMzhiMTY5YSAxMDA2NDQKLS0tIGEvTGliL2Rpc3R1dGlscy9jb21tYW5kL2JkaXN0LnB5CisrKyBiL0xpYi9kaXN0dXRpbHMvY29tbWFuZC9iZGlzdC5weQpAQCAtNTIsOCArNTIsNyBAQAogICAgICMgVGhpcyB3b24ndCBkbyBpbiByZWFsaXR5OiB3aWxsIG5lZWQgdG8gZGlzdGluZ3Vpc2ggUlBNLWlzaCBMaW51eCwKICAgICAjIERlYmlhbi1pc2ggTGludXgsIFNvbGFyaXMsIEZyZWVCU0QsIC4uLiwgV2luZG93cywgTWFjIE9TLgogICAgIGRlZmF1bHRfZm9ybWF0ID0geydwb3NpeCc6ICdnenRhcicsCi0gICAgICAgICAgICAgICAgICAgICAgJ250JzogJ3ppcCcsCi0gICAgICAgICAgICAgICAgICAgICAgJ29zMic6ICd6aXAnfQorICAgICAgICAgICAgICAgICAgICAgICdudCc6ICd6aXAnfQogCiAgICAgIyBFc3RhYmxpc2ggdGhlIHByZWZlcnJlZCBvcmRlciAoZm9yIHRoZSAtLWhlbHAtZm9ybWF0cyBvcHRpb24pLgogICAgIGZvcm1hdF9jb21tYW5kcyA9IFsncnBtJywgJ2d6dGFyJywgJ2J6dGFyJywgJ3p0YXInLCAndGFyJywKZGlmZiAtLWdpdCBhL0xpYi9kaXN0dXRpbHMvY29tbWFuZC9iZGlzdF9kdW1iLnB5IGIvTGliL2Rpc3R1dGlscy9jb21tYW5kL2JkaXN0X2R1bWIucHkKaW5kZXggMWFiMDlkMS4uZWVmZGZlYSAxMDA2NDQKLS0tIGEvTGliL2Rpc3R1dGlscy9jb21tYW5kL2JkaXN0X2R1bWIucHkKKysrIGIvTGliL2Rpc3R1dGlscy9jb21tYW5kL2JkaXN0X2R1bWIucHkKQEAgLTM4LDggKzM4LDcgQEAKICAgICBib29sZWFuX29wdGlvbnMgPSBbJ2tlZXAtdGVtcCcsICdza2lwLWJ1aWxkJywgJ3JlbGF0aXZlJ10KIAogICAgIGRlZmF1bHRfZm9ybWF0ID0geyAncG9zaXgnOiAnZ3p0YXInLAotICAgICAgICAgICAgICAgICAgICAgICAnbnQnOiAnemlwJywKLSAgICAgICAgICAgICAgICAgICAgICAgJ29zMic6ICd6aXAnIH0KKyAgICAgICAgICAgICAgICAgICAgICAgJ250JzogJ3ppcCcgfQogCiAgICAgZGVmIGluaXRpYWxpemVfb3B0aW9ucyhzZWxmKToKICAgICAgICAgc2VsZi5iZGlzdF9kaXIgPSBOb25lCkBAIC04NSwxMSArODQsNiBAQAogICAgICAgICBhcmNoaXZlX2Jhc2VuYW1lID0gIiVzLiVzIiAlIChzZWxmLmRpc3RyaWJ1dGlvbi5nZXRfZnVsbG5hbWUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wbGF0X25hbWUpCiAKLSAgICAgICAgIyBPUy8yIG9iamVjdHMgdG8gYW55ICI6IiBjaGFyYWN0ZXJzIGluIGEgZmlsZW5hbWUgKHN1Y2ggYXMgd2hlbgotICAgICAgICAjIGEgdGltZXN0YW1wIGlzIHVzZWQgaW4gYSB2ZXJzaW9uKSBzbyBjaGFuZ2UgdGhlbSB0byBoeXBoZW5zLgotICAgICAgICBpZiBvcy5uYW1lID09ICJvczIiOgotICAgICAgICAgICAgYXJjaGl2ZV9iYXNlbmFtZSA9IGFyY2hpdmVfYmFzZW5hbWUucmVwbGFjZSgiOiIsICItIikKLQogICAgICAgICBwc2V1ZG9pbnN0YWxsX3Jvb3QgPSBvcy5wYXRoLmpvaW4oc2VsZi5kaXN0X2RpciwgYXJjaGl2ZV9iYXNlbmFtZSkKICAgICAgICAgaWYgbm90IHNlbGYucmVsYXRpdmU6CiAgICAgICAgICAgICBhcmNoaXZlX3Jvb3QgPSBzZWxmLmJkaXN0X2RpcgpkaWZmIC0tZ2l0IGEvTGliL2Rpc3R1dGlscy9jb21tYW5kL2J1aWxkX2V4dC5weSBiL0xpYi9kaXN0dXRpbHMvY29tbWFuZC9idWlsZF9leHQucHkKaW5kZXggMWFkMGQ1Zi4uYTZhYWQ1MyAxMDA2NDQKLS0tIGEvTGliL2Rpc3R1dGlscy9jb21tYW5kL2J1aWxkX2V4dC5weQorKysgYi9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvYnVpbGRfZXh0LnB5CkBAIC0yMzAsMTEgKzIzMCw2IEBACiAgICAgICAgICAgICAgICAgc2VsZi5saWJyYXJ5X2RpcnMuYXBwZW5kKG9zLnBhdGguam9pbihzeXMuZXhlY19wcmVmaXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQQycsICdWQzYnKSkKIAotICAgICAgICAjIE9TLzIgKEVNWCkgZG9lc24ndCBzdXBwb3J0IERlYnVnIHZzIFJlbGVhc2UgYnVpbGRzLCBidXQgaGFzIHRoZQotICAgICAgICAjIGltcG9ydCBsaWJyYXJpZXMgaW4gaXRzICJDb25maWciIHN1YmRpcmVjdG9yeQotICAgICAgICBpZiBvcy5uYW1lID09ICdvczInOgotICAgICAgICAgICAgc2VsZi5saWJyYXJ5X2RpcnMuYXBwZW5kKG9zLnBhdGguam9pbihzeXMuZXhlY19wcmVmaXgsICdDb25maWcnKSkKLQogICAgICAgICAjIGZvciBleHRlbnNpb25zIHVuZGVyIEN5Z3dpbiBhbmQgQXRoZU9TIFB5dGhvbidzIGxpYnJhcnkgZGlyZWN0b3J5IG11c3QgYmUKICAgICAgICAgIyBhcHBlbmRlZCB0byBsaWJyYXJ5X2RpcnMKICAgICAgICAgaWYgc3lzLnBsYXRmb3JtWzo2XSA9PSAnY3lnd2luJyBvciBzeXMucGxhdGZvcm1bOjZdID09ICdhdGhlb3MnOgpAQCAtNjIwLDkgKzYxNSw2IEBACiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmbgogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByZXR1cm4gInN3aWcuZXhlIgotICAgICAgICBlbGlmIG9zLm5hbWUgPT0gIm9zMiI6Ci0gICAgICAgICAgICAjIGFzc3VtZSBzd2lnIGF2YWlsYWJsZSBpbiB0aGUgUEFUSC4KLSAgICAgICAgICAgIHJldHVybiAic3dpZy5leGUiCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByYWlzZSBEaXN0dXRpbHNQbGF0Zm9ybUVycm9yKAogICAgICAgICAgICAgICAgICAgIkkgZG9uJ3Qga25vdyBob3cgdG8gZmluZCAobXVjaCBsZXNzIHJ1bikgU1dJRyAiCkBAIC02NzMsOSArNjY1LDYgQEAKICAgICAgICAgIiIiCiAgICAgICAgIGZyb20gZGlzdHV0aWxzLnN5c2NvbmZpZyBpbXBvcnQgZ2V0X2NvbmZpZ192YXIKICAgICAgICAgZXh0X3BhdGggPSBleHRfbmFtZS5zcGxpdCgnLicpCi0gICAgICAgICMgT1MvMiBoYXMgYW4gOCBjaGFyYWN0ZXIgbW9kdWxlIChleHRlbnNpb24pIGxpbWl0IDotKAotICAgICAgICBpZiBvcy5uYW1lID09ICJvczIiOgotICAgICAgICAgICAgZXh0X3BhdGhbbGVuKGV4dF9wYXRoKSAtIDFdID0gZXh0X3BhdGhbbGVuKGV4dF9wYXRoKSAtIDFdWzo4XQogICAgICAgICAjIGV4dGVuc2lvbnMgaW4gZGVidWdfbW9kZSBhcmUgbmFtZWQgJ21vZHVsZV9kLnB5ZCcgdW5kZXIgd2luZG93cwogICAgICAgICBleHRfc3VmZml4ID0gZ2V0X2NvbmZpZ192YXIoJ0VYVF9TVUZGSVgnKQogICAgICAgICBpZiBvcy5uYW1lID09ICdudCcgYW5kIHNlbGYuZGVidWc6CkBAIC02OTYsNyArNjg1LDcgQEAKICAgICBkZWYgZ2V0X2xpYnJhcmllcyhzZWxmLCBleHQpOgogICAgICAgICAiIiJSZXR1cm4gdGhlIGxpc3Qgb2YgbGlicmFyaWVzIHRvIGxpbmsgYWdhaW5zdCB3aGVuIGJ1aWxkaW5nIGEKICAgICAgICAgc2hhcmVkIGV4dGVuc2lvbi4gIE9uIG1vc3QgcGxhdGZvcm1zLCB0aGlzIGlzIGp1c3QgJ2V4dC5saWJyYXJpZXMnOwotICAgICAgICBvbiBXaW5kb3dzIGFuZCBPUy8yLCB3ZSBhZGQgdGhlIFB5dGhvbiBsaWJyYXJ5IChlZy4gcHl0aG9uMjAuZGxsKS4KKyAgICAgICAgb24gV2luZG93cywgd2UgYWRkIHRoZSBQeXRob24gbGlicmFyeSAoZWcuIHB5dGhvbjIwLmRsbCkuCiAgICAgICAgICIiIgogICAgICAgICAjIFRoZSBweXRob24gbGlicmFyeSBpcyBhbHdheXMgbmVlZGVkIG9uIFdpbmRvd3MuICBGb3IgTVNWQywgdGhpcwogICAgICAgICAjIGlzIHJlZHVuZGFudCwgc2luY2UgdGhlIGxpYnJhcnkgaXMgbWVudGlvbmVkIGluIGEgcHJhZ21hIGluCkBAIC03MTYsMTkgKzcwNSw2IEBACiAgICAgICAgICAgICAgICAgcmV0dXJuIGV4dC5saWJyYXJpZXMgKyBbcHl0aG9ubGliXQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByZXR1cm4gZXh0LmxpYnJhcmllcwotICAgICAgICBlbGlmIHN5cy5wbGF0Zm9ybSA9PSAib3MyZW14IjoKLSAgICAgICAgICAgICMgRU1YL0dDQyByZXF1aXJlcyB0aGUgcHl0aG9uIGxpYnJhcnkgZXhwbGljaXRseSwgYW5kIEkKLSAgICAgICAgICAgICMgYmVsaWV2ZSBWQUNQUCBkb2VzIGFzIHdlbGwgKHRob3VnaCBub3QgY29uZmlybWVkKSAtIEFJTSBBcHIwMQotICAgICAgICAgICAgdGVtcGxhdGUgPSAicHl0aG9uJWQlZCIKLSAgICAgICAgICAgICMgZGVidWcgdmVyc2lvbnMgb2YgdGhlIG1haW4gRExMIGFyZW4ndCBzdXBwb3J0ZWQsIGF0IGxlYXN0Ci0gICAgICAgICAgICAjIG5vdCBhdCB0aGlzIHRpbWUgLSBBSU0gQXByMDEKLSAgICAgICAgICAgICNpZiBzZWxmLmRlYnVnOgotICAgICAgICAgICAgIyAgICB0ZW1wbGF0ZSA9IHRlbXBsYXRlICsgJ19kJwotICAgICAgICAgICAgcHl0aG9ubGliID0gKHRlbXBsYXRlICUKLSAgICAgICAgICAgICAgICAgICAoc3lzLmhleHZlcnNpb24gPj4gMjQsIChzeXMuaGV4dmVyc2lvbiA+PiAxNikgJiAweGZmKSkKLSAgICAgICAgICAgICMgZG9uJ3QgZXh0ZW5kIGV4dC5saWJyYXJpZXMsIGl0IG1heSBiZSBzaGFyZWQgd2l0aCBvdGhlcgotICAgICAgICAgICAgIyBleHRlbnNpb25zLCBpdCBpcyBhIHJlZmVyZW5jZSB0byB0aGUgb3JpZ2luYWwgbGlzdAotICAgICAgICAgICAgcmV0dXJuIGV4dC5saWJyYXJpZXMgKyBbcHl0aG9ubGliXQogICAgICAgICBlbGlmIHN5cy5wbGF0Zm9ybVs6Nl0gPT0gImN5Z3dpbiI6CiAgICAgICAgICAgICB0ZW1wbGF0ZSA9ICJweXRob24lZC4lZCIKICAgICAgICAgICAgIHB5dGhvbmxpYiA9ICh0ZW1wbGF0ZSAlCmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvYnVpbGRfc2NyaXB0cy5weSBiL0xpYi9kaXN0dXRpbHMvY29tbWFuZC9idWlsZF9zY3JpcHRzLnB5CmluZGV4IDRiNWIyMmUuLjkwYTgzODAgMTAwNjQ0Ci0tLSBhL0xpYi9kaXN0dXRpbHMvY29tbWFuZC9idWlsZF9zY3JpcHRzLnB5CisrKyBiL0xpYi9kaXN0dXRpbHMvY29tbWFuZC9idWlsZF9zY3JpcHRzLnB5CkBAIC03NCw3ICs3NCw3IEBACiAgICAgICAgICAgICAjIHNjcmlwdC4KICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBmID0gb3BlbihzY3JpcHQsICJyYiIpCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmRyeV9ydW46CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICAgICAgZiA9IE5vbmUKZGlmZiAtLWdpdCBhL0xpYi9kaXN0dXRpbHMvY29tbWFuZC9pbnN0YWxsLnB5IGIvTGliL2Rpc3R1dGlscy9jb21tYW5kL2luc3RhbGwucHkKaW5kZXggOWIxYzM2YS4uY2ZjNWQ1ZSAxMDA2NDQKLS0tIGEvTGliL2Rpc3R1dGlscy9jb21tYW5kL2luc3RhbGwucHkKKysrIGIvTGliL2Rpc3R1dGlscy9jb21tYW5kL2luc3RhbGwucHkKQEAgLTU4LDEzICs1OCw2IEBACiAgICAgICAgICdkYXRhJyAgIDogJyRiYXNlJywKICAgICAgICAgfSwKICAgICAnbnQnOiBXSU5ET1dTX1NDSEVNRSwKLSAgICAnb3MyJzogewotICAgICAgICAncHVyZWxpYic6ICckYmFzZS9MaWIvc2l0ZS1wYWNrYWdlcycsCi0gICAgICAgICdwbGF0bGliJzogJyRiYXNlL0xpYi9zaXRlLXBhY2thZ2VzJywKLSAgICAgICAgJ2hlYWRlcnMnOiAnJGJhc2UvSW5jbHVkZS8kZGlzdF9uYW1lJywKLSAgICAgICAgJ3NjcmlwdHMnOiAnJGJhc2UvU2NyaXB0cycsCi0gICAgICAgICdkYXRhJyAgIDogJyRiYXNlJywKLSAgICAgICAgfSwKICAgICB9CiAKICMgdXNlciBzaXRlIHNjaGVtZXMKQEAgLTg2LDE0ICs3OSw2IEBACiAgICAgICAgICdkYXRhJyAgIDogJyR1c2VyYmFzZScsCiAgICAgICAgIH0KIAotICAgIElOU1RBTExfU0NIRU1FU1snb3MyX2hvbWUnXSA9IHsKLSAgICAgICAgJ3B1cmVsaWInOiAnJHVzZXJzaXRlJywKLSAgICAgICAgJ3BsYXRsaWInOiAnJHVzZXJzaXRlJywKLSAgICAgICAgJ2hlYWRlcnMnOiAnJHVzZXJiYXNlL2luY2x1ZGUvcHl0aG9uJHB5X3ZlcnNpb25fc2hvcnQvJGRpc3RfbmFtZScsCi0gICAgICAgICdzY3JpcHRzJzogJyR1c2VyYmFzZS9iaW4nLAotICAgICAgICAnZGF0YScgICA6ICckdXNlcmJhc2UnLAotICAgICAgICB9Ci0KICMgVGhlIGtleXMgdG8gYW4gaW5zdGFsbGF0aW9uIHNjaGVtZTsgaWYgYW55IG5ldyB0eXBlcyBvZiBmaWxlcyBhcmUgdG8gYmUKICMgaW5zdGFsbGVkLCBiZSBzdXJlIHRvIGFkZCBhbiBlbnRyeSB0byBldmVyeSBpbnN0YWxsYXRpb24gc2NoZW1lIGFib3ZlLAogIyBhbmQgdG8gU0NIRU1FX0tFWVMgaGVyZS4KZGlmZiAtLWdpdCBhL0xpYi9kaXN0dXRpbHMvY29tbWFuZC91cGxvYWQucHkgYi9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvdXBsb2FkLnB5CmluZGV4IDhiMzY4NTEuLjg4OTkwYjIgMTAwNjQ0Ci0tLSBhL0xpYi9kaXN0dXRpbHMvY29tbWFuZC91cGxvYWQucHkKKysrIGIvTGliL2Rpc3R1dGlscy9jb21tYW5kL3VwbG9hZC5weQpAQCAtMTg2LDcgKzE4Niw3IEBACiAgICAgICAgICAgICBodHRwLnB1dGhlYWRlcignQXV0aG9yaXphdGlvbicsIGF1dGgpCiAgICAgICAgICAgICBodHRwLmVuZGhlYWRlcnMoKQogICAgICAgICAgICAgaHR0cC5zZW5kKGJvZHkpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgIHNlbGYuYW5ub3VuY2Uoc3RyKGUpLCBsb2cuRVJST1IpCiAgICAgICAgICAgICByZXR1cm4KIApkaWZmIC0tZ2l0IGEvTGliL2Rpc3R1dGlscy9jb25maWcucHkgYi9MaWIvZGlzdHV0aWxzL2NvbmZpZy5weQppbmRleCAxZmQ1MzM0Li43NDM5YTgzIDEwMDY0NAotLS0gYS9MaWIvZGlzdHV0aWxzL2NvbmZpZy5weQorKysgYi9MaWIvZGlzdHV0aWxzL2NvbmZpZy5weQpAQCAtMjEsNyArMjEsNyBAQAogY2xhc3MgUHlQSVJDQ29tbWFuZChDb21tYW5kKToKICAgICAiIiJCYXNlIGNvbW1hbmQgdGhhdCBrbm93cyBob3cgdG8gaGFuZGxlIHRoZSAucHlwaXJjIGZpbGUKICAgICAiIiIKLSAgICBERUZBVUxUX1JFUE9TSVRPUlkgPSAnaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpJworICAgIERFRkFVTFRfUkVQT1NJVE9SWSA9ICdodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpJwogICAgIERFRkFVTFRfUkVBTE0gPSAncHlwaScKICAgICByZXBvc2l0b3J5ID0gTm9uZQogICAgIHJlYWxtID0gTm9uZQpAQCAtODMsNiArODMsMTUgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50W2tleV0gPSBjb25maWcuZ2V0KHNlcnZlciwga2V5KQogICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50W2tleV0gPSBkZWZhdWx0CisKKyAgICAgICAgICAgICAgICAgICAgIyB3b3JrIGFyb3VuZCBwZW9wbGUgaGF2aW5nICJyZXBvc2l0b3J5IiBmb3IgdGhlICJweXBpIgorICAgICAgICAgICAgICAgICAgICAjIHNlY3Rpb24gb2YgdGhlaXIgY29uZmlnIHNldCB0byB0aGUgSFRUUCAocmF0aGVyIHRoYW4KKyAgICAgICAgICAgICAgICAgICAgIyBIVFRQUykgVVJMCisgICAgICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXIgPT0gJ3B5cGknIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeSBpbiAoc2VsZi5ERUZBVUxUX1JFUE9TSVRPUlksICdweXBpJykpOgorICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFsncmVwb3NpdG9yeSddID0gc2VsZi5ERUZBVUxUX1JFUE9TSVRPUlkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50CisKICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRbJ3NlcnZlciddID09IHJlcG9zaXRvcnkgb3IKICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRbJ3JlcG9zaXRvcnknXSA9PSByZXBvc2l0b3J5KToKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50CmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL2NvcmUucHkgYi9MaWIvZGlzdHV0aWxzL2NvcmUucHkKaW5kZXggMjYwMzMyYS4uOTFlNTEzMiAxMDA2NDQKLS0tIGEvTGliL2Rpc3R1dGlscy9jb3JlLnB5CisrKyBiL0xpYi9kaXN0dXRpbHMvY29yZS5weQpAQCAtMTQ4LDcgKzE0OCw3IEBACiAgICAgICAgICAgICBkaXN0LnJ1bl9jb21tYW5kcygpCiAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKICAgICAgICAgICAgIHJhaXNlIFN5c3RlbUV4aXQoImludGVycnVwdGVkIikKLSAgICAgICAgZXhjZXB0IChJT0Vycm9yLCBvcy5lcnJvcikgYXMgZXhjOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBleGM6CiAgICAgICAgICAgICBlcnJvciA9IGdyb2tfZW52aXJvbm1lbnRfZXJyb3IoZXhjKQogCiAgICAgICAgICAgICBpZiBERUJVRzoKZGlmZiAtLWdpdCBhL0xpYi9kaXN0dXRpbHMvY3lnd2luY2NvbXBpbGVyLnB5IGIvTGliL2Rpc3R1dGlscy9jeWd3aW5jY29tcGlsZXIucHkKaW5kZXggMGJkZDUzOS4uMGMyM2FiMSAxMDA2NDQKLS0tIGEvTGliL2Rpc3R1dGlscy9jeWd3aW5jY29tcGlsZXIucHkKKysrIGIvTGliL2Rpc3R1dGlscy9jeWd3aW5jY29tcGlsZXIucHkKQEAgLTM1OSw3ICszNTksNyBAQAogICAgICAgICAgICAgICAgIHJldHVybiBDT05GSUdfSF9OT1RPSywgIiclcycgZG9lcyBub3QgbWVudGlvbiAnX19HTlVDX18nIiAlIGZuCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBjb25maWdfaC5jbG9zZSgpCi0gICAgZXhjZXB0IElPRXJyb3IgYXMgZXhjOgorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGV4YzoKICAgICAgICAgcmV0dXJuIChDT05GSUdfSF9VTkNFUlRBSU4sCiAgICAgICAgICAgICAgICAgImNvdWxkbid0IHJlYWQgJyVzJzogJXMiICUgKGZuLCBleGMuc3RyZXJyb3IpKQogCmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL2Rpcl91dGlsLnB5IGIvTGliL2Rpc3R1dGlscy9kaXJfdXRpbC5weQppbmRleCAyODI2ZmY4Li4yYjM1YWEzIDEwMDY0NAotLS0gYS9MaWIvZGlzdHV0aWxzL2Rpcl91dGlsLnB5CisrKyBiL0xpYi9kaXN0dXRpbHMvZGlyX3V0aWwucHkKQEAgLTEyNCw3ICsxMjQsNyBAQAogICAgICAgICAgICAgICAiY2Fubm90IGNvcHkgdHJlZSAnJXMnOiBub3QgYSBkaXJlY3RvcnkiICUgc3JjKQogICAgIHRyeToKICAgICAgICAgbmFtZXMgPSBvcy5saXN0ZGlyKHNyYykKLSAgICBleGNlcHQgb3MuZXJyb3IgYXMgZToKKyAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAoZXJybm8sIGVycnN0cikgPSBlCiAgICAgICAgIGlmIGRyeV9ydW46CiAgICAgICAgICAgICBuYW1lcyA9IFtdCkBAIC0xOTgsNyArMTk4LDcgQEAKICAgICAgICAgICAgIGFic3BhdGggPSBvcy5wYXRoLmFic3BhdGgoY21kWzFdKQogICAgICAgICAgICAgaWYgYWJzcGF0aCBpbiBfcGF0aF9jcmVhdGVkOgogICAgICAgICAgICAgICAgIGRlbCBfcGF0aF9jcmVhdGVkW2Fic3BhdGhdCi0gICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgT1NFcnJvcikgYXMgZXhjOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBleGM6CiAgICAgICAgICAgICBsb2cud2Fybihncm9rX2Vudmlyb25tZW50X2Vycm9yKAogICAgICAgICAgICAgICAgICAgICBleGMsICJlcnJvciByZW1vdmluZyAlczogIiAlIGRpcmVjdG9yeSkpCiAKZGlmZiAtLWdpdCBhL0xpYi9kaXN0dXRpbHMvZW14Y2NvbXBpbGVyLnB5IGIvTGliL2Rpc3R1dGlscy9lbXhjY29tcGlsZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2NzVmOGQuLjAwMDAwMDAKLS0tIGEvTGliL2Rpc3R1dGlscy9lbXhjY29tcGlsZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzMTUgKzAsMCBAQAotIiIiZGlzdHV0aWxzLmVteGNjb21waWxlcgotCi1Qcm92aWRlcyB0aGUgRU1YQ0NvbXBpbGVyIGNsYXNzLCBhIHN1YmNsYXNzIG9mIFVuaXhDQ29tcGlsZXIgdGhhdAotaGFuZGxlcyB0aGUgRU1YIHBvcnQgb2YgdGhlIEdOVSBDIGNvbXBpbGVyIHRvIE9TLzIuCi0iIiIKLQotIyBpc3N1ZXM6Ci0jCi0jICogT1MvMiBpbnNpc3RzIHRoYXQgRExMcyBjYW4gaGF2ZSBuYW1lcyBubyBsb25nZXIgdGhhbiA4IGNoYXJhY3RlcnMKLSMgICBXZSBwdXQgZXhwb3J0X3N5bWJvbHMgaW4gYSBkZWYtZmlsZSwgYXMgdGhvdWdoIHRoZSBETEwgY2FuIGhhdmUKLSMgICBhbiBhcmJpdHJhcnkgbGVuZ3RoIG5hbWUsIGJ1dCB0cnVuY2F0ZSB0aGUgb3V0cHV0IGZpbGVuYW1lLgotIwotIyAqIG9ubHkgdXNlIE9NRiBvYmplY3RzIGFuZCB1c2UgTElOSzM4NiBhcyB0aGUgbGlua2VyICgtWm9tZikKLSMKLSMgKiBhbHdheXMgYnVpbGQgZm9yIG11bHRpdGhyZWFkaW5nICgtWm10KSBhcyB0aGUgYWNjb21wYW55aW5nIE9TLzIgcG9ydAotIyAgIG9mIFB5dGhvbiBpcyBvbmx5IGRpc3RyaWJ1dGVkIHdpdGggdGhyZWFkcyBlbmFibGVkLgotIwotIyB0ZXN0ZWQgY29uZmlndXJhdGlvbnM6Ci0jCi0jICogRU1YIGdjYyAyLjgxL0VNWCAwLjlkIGZpeDAzCi0KLWltcG9ydCBvcyxzeXMsY29weQotZnJvbSBkaXN0dXRpbHMuY2NvbXBpbGVyIGltcG9ydCBnZW5fcHJlcHJvY2Vzc19vcHRpb25zLCBnZW5fbGliX29wdGlvbnMKLWZyb20gZGlzdHV0aWxzLnVuaXhjY29tcGlsZXIgaW1wb3J0IFVuaXhDQ29tcGlsZXIKLWZyb20gZGlzdHV0aWxzLmZpbGVfdXRpbCBpbXBvcnQgd3JpdGVfZmlsZQotZnJvbSBkaXN0dXRpbHMuZXJyb3JzIGltcG9ydCBEaXN0dXRpbHNFeGVjRXJyb3IsIENvbXBpbGVFcnJvciwgVW5rbm93bkZpbGVFcnJvcgotZnJvbSBkaXN0dXRpbHMgaW1wb3J0IGxvZwotCi1jbGFzcyBFTVhDQ29tcGlsZXIgKFVuaXhDQ29tcGlsZXIpOgotCi0gICAgY29tcGlsZXJfdHlwZSA9ICdlbXgnCi0gICAgb2JqX2V4dGVuc2lvbiA9ICIub2JqIgotICAgIHN0YXRpY19saWJfZXh0ZW5zaW9uID0gIi5saWIiCi0gICAgc2hhcmVkX2xpYl9leHRlbnNpb24gPSAiLmRsbCIKLSAgICBzdGF0aWNfbGliX2Zvcm1hdCA9ICIlcyVzIgotICAgIHNoYXJlZF9saWJfZm9ybWF0ID0gIiVzJXMiCi0gICAgcmVzX2V4dGVuc2lvbiA9ICIucmVzIiAgICAgICMgY29tcGlsZWQgcmVzb3VyY2UgZmlsZQotICAgIGV4ZV9leHRlbnNpb24gPSAiLmV4ZSIKLQotICAgIGRlZiBfX2luaXRfXyAoc2VsZiwKLSAgICAgICAgICAgICAgICAgIHZlcmJvc2U9MCwKLSAgICAgICAgICAgICAgICAgIGRyeV9ydW49MCwKLSAgICAgICAgICAgICAgICAgIGZvcmNlPTApOgotCi0gICAgICAgIFVuaXhDQ29tcGlsZXIuX19pbml0X18gKHNlbGYsIHZlcmJvc2UsIGRyeV9ydW4sIGZvcmNlKQotCi0gICAgICAgIChzdGF0dXMsIGRldGFpbHMpID0gY2hlY2tfY29uZmlnX2goKQotICAgICAgICBzZWxmLmRlYnVnX3ByaW50KCJQeXRob24ncyBHQ0Mgc3RhdHVzOiAlcyAoZGV0YWlsczogJXMpIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXR1cywgZGV0YWlscykpCi0gICAgICAgIGlmIHN0YXR1cyBpcyBub3QgQ09ORklHX0hfT0s6Ci0gICAgICAgICAgICBzZWxmLndhcm4oCi0gICAgICAgICAgICAgICAgIlB5dGhvbidzIHB5Y29uZmlnLmggZG9lc24ndCBzZWVtIHRvIHN1cHBvcnQgeW91ciBjb21waWxlci4gICIgKwotICAgICAgICAgICAgICAgICgiUmVhc29uOiAlcy4iICUgZGV0YWlscykgKwotICAgICAgICAgICAgICAgICJDb21waWxpbmcgbWF5IGZhaWwgYmVjYXVzZSBvZiB1bmRlZmluZWQgcHJlcHJvY2Vzc29yIG1hY3Jvcy4iKQotCi0gICAgICAgIChzZWxmLmdjY192ZXJzaW9uLCBzZWxmLmxkX3ZlcnNpb24pID0gXAotICAgICAgICAgICAgZ2V0X3ZlcnNpb25zKCkKLSAgICAgICAgc2VsZi5kZWJ1Z19wcmludChzZWxmLmNvbXBpbGVyX3R5cGUgKyAiOiBnY2MgJXMsIGxkICVzXG4iICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5nY2NfdmVyc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sZF92ZXJzaW9uKSApCi0KLSAgICAgICAgIyBIYXJkLWNvZGUgR0NDIGJlY2F1c2UgdGhhdCdzIHdoYXQgdGhpcyBpcyBhbGwgYWJvdXQuCi0gICAgICAgICMgWFhYIG9wdGltaXphdGlvbiwgd2FybmluZ3MgZXRjLiBzaG91bGQgYmUgY3VzdG9taXphYmxlLgotICAgICAgICBzZWxmLnNldF9leGVjdXRhYmxlcyhjb21waWxlcj0nZ2NjIC1ab21mIC1abXQgLU8zIC1mb21pdC1mcmFtZS1wb2ludGVyIC1tcHJvYmUgLVdhbGwnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlcl9zbz0nZ2NjIC1ab21mIC1abXQgLU8zIC1mb21pdC1mcmFtZS1wb2ludGVyIC1tcHJvYmUgLVdhbGwnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rZXJfZXhlPSdnY2MgLVpvbWYgLVptdCAtWmNydGRsbCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtlcl9zbz0nZ2NjIC1ab21mIC1abXQgLVpjcnRkbGwgLVpkbGwnKQotCi0gICAgICAgICMgd2FudCB0aGUgZ2NjIGxpYnJhcnkgc3RhdGljYWxseSBsaW5rZWQgKHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZQotICAgICAgICAjIHRvIGRpc3RyaWJ1dGUgYSB2ZXJzaW9uIGRlcGVuZGVudCBvbiB0aGUgY29tcGlsZXIgd2UgaGF2ZSkKLSAgICAgICAgc2VsZi5kbGxfbGlicmFyaWVzPVsiZ2NjIl0KLQotICAgICMgX19pbml0X18gKCkKLQotICAgIGRlZiBfY29tcGlsZShzZWxmLCBvYmosIHNyYywgZXh0LCBjY19hcmdzLCBleHRyYV9wb3N0YXJncywgcHBfb3B0cyk6Ci0gICAgICAgIGlmIGV4dCA9PSAnLnJjJzoKLSAgICAgICAgICAgICMgZ2NjIHJlcXVpcmVzICcucmMnIGNvbXBpbGVkIHRvIGJpbmFyeSAoJy5yZXMnKSBmaWxlcyAhISEKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLnNwYXduKFsicmMiLCAiLXIiLCBzcmNdKQotICAgICAgICAgICAgZXhjZXB0IERpc3R1dGlsc0V4ZWNFcnJvciBhcyBtc2c6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ29tcGlsZUVycm9yKG1zZykKLSAgICAgICAgZWxzZTogIyBmb3Igb3RoZXIgZmlsZXMgdXNlIHRoZSBDLWNvbXBpbGVyCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5zcGF3bihzZWxmLmNvbXBpbGVyX3NvICsgY2NfYXJncyArIFtzcmMsICctbycsIG9ial0gKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFfcG9zdGFyZ3MpCi0gICAgICAgICAgICBleGNlcHQgRGlzdHV0aWxzRXhlY0Vycm9yIGFzIG1zZzoKLSAgICAgICAgICAgICAgICByYWlzZSBDb21waWxlRXJyb3IobXNnKQotCi0gICAgZGVmIGxpbmsgKHNlbGYsCi0gICAgICAgICAgICAgIHRhcmdldF9kZXNjLAotICAgICAgICAgICAgICBvYmplY3RzLAotICAgICAgICAgICAgICBvdXRwdXRfZmlsZW5hbWUsCi0gICAgICAgICAgICAgIG91dHB1dF9kaXI9Tm9uZSwKLSAgICAgICAgICAgICAgbGlicmFyaWVzPU5vbmUsCi0gICAgICAgICAgICAgIGxpYnJhcnlfZGlycz1Ob25lLAotICAgICAgICAgICAgICBydW50aW1lX2xpYnJhcnlfZGlycz1Ob25lLAotICAgICAgICAgICAgICBleHBvcnRfc3ltYm9scz1Ob25lLAotICAgICAgICAgICAgICBkZWJ1Zz0wLAotICAgICAgICAgICAgICBleHRyYV9wcmVhcmdzPU5vbmUsCi0gICAgICAgICAgICAgIGV4dHJhX3Bvc3RhcmdzPU5vbmUsCi0gICAgICAgICAgICAgIGJ1aWxkX3RlbXA9Tm9uZSwKLSAgICAgICAgICAgICAgdGFyZ2V0X2xhbmc9Tm9uZSk6Ci0KLSAgICAgICAgIyB1c2Ugc2VwYXJhdGUgY29waWVzLCBzbyB3ZSBjYW4gbW9kaWZ5IHRoZSBsaXN0cwotICAgICAgICBleHRyYV9wcmVhcmdzID0gY29weS5jb3B5KGV4dHJhX3ByZWFyZ3Mgb3IgW10pCi0gICAgICAgIGxpYnJhcmllcyA9IGNvcHkuY29weShsaWJyYXJpZXMgb3IgW10pCi0gICAgICAgIG9iamVjdHMgPSBjb3B5LmNvcHkob2JqZWN0cyBvciBbXSkKLQotICAgICAgICAjIEFkZGl0aW9uYWwgbGlicmFyaWVzCi0gICAgICAgIGxpYnJhcmllcy5leHRlbmQoc2VsZi5kbGxfbGlicmFyaWVzKQotCi0gICAgICAgICMgaGFuZGxlIGV4cG9ydCBzeW1ib2xzIGJ5IGNyZWF0aW5nIGEgZGVmLWZpbGUKLSAgICAgICAgIyB3aXRoIGV4ZWN1dGFibGVzIHRoaXMgb25seSB3b3JrcyB3aXRoIGdjYy9sZCBhcyBsaW5rZXIKLSAgICAgICAgaWYgKChleHBvcnRfc3ltYm9scyBpcyBub3QgTm9uZSkgYW5kCi0gICAgICAgICAgICAodGFyZ2V0X2Rlc2MgIT0gc2VsZi5FWEVDVVRBQkxFKSk6Ci0gICAgICAgICAgICAjIChUaGUgbGlua2VyIGRvZXNuJ3QgZG8gYW55dGhpbmcgaWYgb3V0cHV0IGlzIHVwLXRvLWRhdGUuCi0gICAgICAgICAgICAjIFNvIGl0IHdvdWxkIHByb2JhYmx5IGJldHRlciB0byBjaGVjayBpZiB3ZSByZWFsbHkgbmVlZCB0aGlzLAotICAgICAgICAgICAgIyBidXQgZm9yIHRoaXMgd2UgaGFkIHRvIGluc2VydCBzb21lIHVuY2hhbmdlZCBwYXJ0cyBvZgotICAgICAgICAgICAgIyBVbml4Q0NvbXBpbGVyLCBhbmQgdGhpcyBpcyBub3Qgd2hhdCB3ZSB3YW50LikKLQotICAgICAgICAgICAgIyB3ZSB3YW50IHRvIHB1dCBzb21lIGZpbGVzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUKLSAgICAgICAgICAgICMgb2JqZWN0IGZpbGVzIGFyZSwgYnVpbGRfdGVtcCBkb2Vzbid0IGhlbHAgbXVjaAotICAgICAgICAgICAgIyB3aGVyZSBhcmUgdGhlIG9iamVjdCBmaWxlcwotICAgICAgICAgICAgdGVtcF9kaXIgPSBvcy5wYXRoLmRpcm5hbWUob2JqZWN0c1swXSkKLSAgICAgICAgICAgICMgbmFtZSBvZiBkbGwgdG8gZ2l2ZSB0aGUgaGVscGVyIGZpbGVzIHRoZSBzYW1lIGJhc2UgbmFtZQotICAgICAgICAgICAgKGRsbF9uYW1lLCBkbGxfZXh0ZW5zaW9uKSA9IG9zLnBhdGguc3BsaXRleHQoCi0gICAgICAgICAgICAgICAgb3MucGF0aC5iYXNlbmFtZShvdXRwdXRfZmlsZW5hbWUpKQotCi0gICAgICAgICAgICAjIGdlbmVyYXRlIHRoZSBmaWxlbmFtZXMgZm9yIHRoZXNlIGZpbGVzCi0gICAgICAgICAgICBkZWZfZmlsZSA9IG9zLnBhdGguam9pbih0ZW1wX2RpciwgZGxsX25hbWUgKyAiLmRlZiIpCi0KLSAgICAgICAgICAgICMgR2VuZXJhdGUgLmRlZiBmaWxlCi0gICAgICAgICAgICBjb250ZW50cyA9IFsKLSAgICAgICAgICAgICAgICAiTElCUkFSWSAlcyBJTklUSU5TVEFOQ0UgVEVSTUlOU1RBTkNFIiAlIFwKLSAgICAgICAgICAgICAgICBvcy5wYXRoLnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUob3V0cHV0X2ZpbGVuYW1lKSlbMF0sCi0gICAgICAgICAgICAgICAgIkRBVEEgTVVMVElQTEUgTk9OU0hBUkVEIiwKLSAgICAgICAgICAgICAgICAiRVhQT1JUUyJdCi0gICAgICAgICAgICBmb3Igc3ltIGluIGV4cG9ydF9zeW1ib2xzOgotICAgICAgICAgICAgICAgIGNvbnRlbnRzLmFwcGVuZCgnICAiJXMiJyAlIHN5bSkKLSAgICAgICAgICAgIHNlbGYuZXhlY3V0ZSh3cml0ZV9maWxlLCAoZGVmX2ZpbGUsIGNvbnRlbnRzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAid3JpdGluZyAlcyIgJSBkZWZfZmlsZSkKLQotICAgICAgICAgICAgIyBuZXh0IGFkZCBvcHRpb25zIGZvciBkZWYtZmlsZSBhbmQgdG8gY3JlYXRpbmcgaW1wb3J0IGxpYnJhcmllcwotICAgICAgICAgICAgIyBmb3IgZ2NjL2xkIHRoZSBkZWYtZmlsZSBpcyBzcGVjaWZpZWQgYXMgYW55IG90aGVyIG9iamVjdCBmaWxlcwotICAgICAgICAgICAgb2JqZWN0cy5hcHBlbmQoZGVmX2ZpbGUpCi0KLSAgICAgICAgI2VuZDogaWYgKChleHBvcnRfc3ltYm9scyBpcyBub3QgTm9uZSkgYW5kCi0gICAgICAgICMgICAgICAgICh0YXJnZXRfZGVzYyAhPSBzZWxmLkVYRUNVVEFCTEUgb3Igc2VsZi5saW5rZXJfZGxsID09ICJnY2MiKSk6Ci0KLSAgICAgICAgIyB3aG8gd2FudHMgc3ltYm9scyBhbmQgYSBtYW55IHRpbWVzIGxhcmdlciBvdXRwdXQgZmlsZQotICAgICAgICAjIHNob3VsZCBleHBsaWNpdGx5IHN3aXRjaCB0aGUgZGVidWcgbW9kZSBvbgotICAgICAgICAjIG90aGVyd2lzZSB3ZSBsZXQgZGxsd3JhcC9sZCBzdHJpcCB0aGUgb3V0cHV0IGZpbGUKLSAgICAgICAgIyAoT24gbXkgbWFjaGluZTogMTBLQiA8IHN0cmlwcGVkX2ZpbGUgPCA/PzEwMEtCCi0gICAgICAgICMgICB1bnN0cmlwcGVkX2ZpbGUgPSBzdHJpcHBlZF9maWxlICsgWFhYIEtCCi0gICAgICAgICMgICggWFhYPTI1NCBmb3IgYSB0eXBpY2FsIHB5dGhvbiBleHRlbnNpb24pKQotICAgICAgICBpZiBub3QgZGVidWc6Ci0gICAgICAgICAgICBleHRyYV9wcmVhcmdzLmFwcGVuZCgiLXMiKQotCi0gICAgICAgIFVuaXhDQ29tcGlsZXIubGluayhzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2Rlc2MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2ZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcmllcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcnlfZGlycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bnRpbWVfbGlicmFyeV9kaXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwgIyBleHBvcnRfc3ltYm9scywgd2UgZG8gdGhpcyBpbiBvdXIgZGVmLWZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFfcHJlYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhX3Bvc3RhcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRfdGVtcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9sYW5nKQotCi0gICAgIyBsaW5rICgpCi0KLSAgICAjIC0tIE1pc2NlbGxhbmVvdXMgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgIyBvdmVycmlkZSB0aGUgb2JqZWN0X2ZpbGVuYW1lcyBtZXRob2QgZnJvbSBDQ29tcGlsZXIgdG8KLSAgICAjIHN1cHBvcnQgcmMgYW5kIHJlcy1maWxlcwotICAgIGRlZiBvYmplY3RfZmlsZW5hbWVzIChzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfZmlsZW5hbWVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpcF9kaXI9MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X2Rpcj0nJyk6Ci0gICAgICAgIGlmIG91dHB1dF9kaXIgaXMgTm9uZTogb3V0cHV0X2RpciA9ICcnCi0gICAgICAgIG9ial9uYW1lcyA9IFtdCi0gICAgICAgIGZvciBzcmNfbmFtZSBpbiBzb3VyY2VfZmlsZW5hbWVzOgotICAgICAgICAgICAgIyB1c2Ugbm9ybWNhc2UgdG8gbWFrZSBzdXJlICcucmMnIGlzIHJlYWxseSAnLnJjJyBhbmQgbm90ICcuUkMnCi0gICAgICAgICAgICAoYmFzZSwgZXh0KSA9IG9zLnBhdGguc3BsaXRleHQgKG9zLnBhdGgubm9ybWNhc2Uoc3JjX25hbWUpKQotICAgICAgICAgICAgaWYgZXh0IG5vdCBpbiAoc2VsZi5zcmNfZXh0ZW5zaW9ucyArIFsnLnJjJ10pOgotICAgICAgICAgICAgICAgIHJhaXNlIFVua25vd25GaWxlRXJyb3IoInVua25vd24gZmlsZSB0eXBlICclcycgKGZyb20gJyVzJykiICUgXAotICAgICAgICAgICAgICAgICAgICAgIChleHQsIHNyY19uYW1lKSkKLSAgICAgICAgICAgIGlmIHN0cmlwX2RpcjoKLSAgICAgICAgICAgICAgICBiYXNlID0gb3MucGF0aC5iYXNlbmFtZSAoYmFzZSkKLSAgICAgICAgICAgIGlmIGV4dCA9PSAnLnJjJzoKLSAgICAgICAgICAgICAgICAjIHRoZXNlIG5lZWQgdG8gYmUgY29tcGlsZWQgdG8gb2JqZWN0IGZpbGVzCi0gICAgICAgICAgICAgICAgb2JqX25hbWVzLmFwcGVuZCAob3MucGF0aC5qb2luIChvdXRwdXRfZGlyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlICsgc2VsZi5yZXNfZXh0ZW5zaW9uKSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgb2JqX25hbWVzLmFwcGVuZCAob3MucGF0aC5qb2luIChvdXRwdXRfZGlyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlICsgc2VsZi5vYmpfZXh0ZW5zaW9uKSkKLSAgICAgICAgcmV0dXJuIG9ial9uYW1lcwotCi0gICAgIyBvYmplY3RfZmlsZW5hbWVzICgpCi0KLSAgICAjIG92ZXJyaWRlIHRoZSBmaW5kX2xpYnJhcnlfZmlsZSBtZXRob2QgZnJvbSBVbml4Q0NvbXBpbGVyCi0gICAgIyB0byBkZWFsIHdpdGggZmlsZSBuYW1pbmcvc2VhcmNoaW5nIGRpZmZlcmVuY2VzCi0gICAgZGVmIGZpbmRfbGlicmFyeV9maWxlKHNlbGYsIGRpcnMsIGxpYiwgZGVidWc9MCk6Ci0gICAgICAgIHNob3J0bGliID0gJyVzLmxpYicgJSBsaWIKLSAgICAgICAgbG9uZ2xpYiA9ICdsaWIlcy5saWInICUgbGliICAgICMgdGhpcyBmb3JtIHZlcnkgcmFyZQotCi0gICAgICAgICMgZ2V0IEVNWCdzIGRlZmF1bHQgbGlicmFyeSBkaXJlY3Rvcnkgc2VhcmNoIHBhdGgKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZW14X2RpcnMgPSBvcy5lbnZpcm9uWydMSUJSQVJZX1BBVEgnXS5zcGxpdCgnOycpCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIGVteF9kaXJzID0gW10KLQotICAgICAgICBmb3IgZGlyIGluIGRpcnMgKyBlbXhfZGlyczoKLSAgICAgICAgICAgIHNob3J0bGlicCA9IG9zLnBhdGguam9pbihkaXIsIHNob3J0bGliKQotICAgICAgICAgICAgbG9uZ2xpYnAgPSBvcy5wYXRoLmpvaW4oZGlyLCBsb25nbGliKQotICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoc2hvcnRsaWJwKToKLSAgICAgICAgICAgICAgICByZXR1cm4gc2hvcnRsaWJwCi0gICAgICAgICAgICBlbGlmIG9zLnBhdGguZXhpc3RzKGxvbmdsaWJwKToKLSAgICAgICAgICAgICAgICByZXR1cm4gbG9uZ2xpYnAKLQotICAgICAgICAjIE9vcHMsIGRpZG4ndCBmaW5kIGl0IGluICphbnkqIG9mICdkaXJzJwotICAgICAgICByZXR1cm4gTm9uZQotCi0jIGNsYXNzIEVNWENDb21waWxlcgotCi0KLSMgQmVjYXVzZSB0aGVzZSBjb21waWxlcnMgYXJlbid0IGNvbmZpZ3VyZWQgaW4gUHl0aG9uJ3MgcHljb25maWcuaCBmaWxlIGJ5Ci0jIGRlZmF1bHQsIHdlIHNob3VsZCBhdCBsZWFzdCB3YXJuIHRoZSB1c2VyIGlmIGhlIGlzIHVzaW5nIGEgdW5tb2RpZmllZAotIyB2ZXJzaW9uLgotCi1DT05GSUdfSF9PSyA9ICJvayIKLUNPTkZJR19IX05PVE9LID0gIm5vdCBvayIKLUNPTkZJR19IX1VOQ0VSVEFJTiA9ICJ1bmNlcnRhaW4iCi0KLWRlZiBjaGVja19jb25maWdfaCgpOgotCi0gICAgIiIiQ2hlY2sgaWYgdGhlIGN1cnJlbnQgUHl0aG9uIGluc3RhbGxhdGlvbiAoc3BlY2lmaWNhbGx5LCBweWNvbmZpZy5oKQotICAgIGFwcGVhcnMgYW1lbmFibGUgdG8gYnVpbGRpbmcgZXh0ZW5zaW9ucyB3aXRoIEdDQy4gIFJldHVybnMgYSB0dXBsZQotICAgIChzdGF0dXMsIGRldGFpbHMpLCB3aGVyZSAnc3RhdHVzJyBpcyBvbmUgb2YgdGhlIGZvbGxvd2luZyBjb25zdGFudHM6Ci0gICAgICBDT05GSUdfSF9PSwotICAgICAgICBhbGwgaXMgd2VsbCwgZ28gYWhlYWQgYW5kIGNvbXBpbGUKLSAgICAgIENPTkZJR19IX05PVE9LCi0gICAgICAgIGRvZXNuJ3QgbG9vayBnb29kCi0gICAgICBDT05GSUdfSF9VTkNFUlRBSU4KLSAgICAgICAgbm90IHN1cmUgLS0gdW5hYmxlIHRvIHJlYWQgcHljb25maWcuaAotICAgICdkZXRhaWxzJyBpcyBhIGh1bWFuLXJlYWRhYmxlIHN0cmluZyBleHBsYWluaW5nIHRoZSBzaXR1YXRpb24uCi0KLSAgICBOb3RlIHRoZXJlIGFyZSB0d28gd2F5cyB0byBjb25jbHVkZSAiT0siOiBlaXRoZXIgJ3N5cy52ZXJzaW9uJyBjb250YWlucwotICAgIHRoZSBzdHJpbmcgIkdDQyIgKGltcGx5aW5nIHRoYXQgdGhpcyBQeXRob24gd2FzIGJ1aWx0IHdpdGggR0NDKSwgb3IgdGhlCi0gICAgaW5zdGFsbGVkICJweWNvbmZpZy5oIiBjb250YWlucyB0aGUgc3RyaW5nICJfX0dOVUNfXyIuCi0gICAgIiIiCi0KLSAgICAjIFhYWCBzaW5jZSB0aGlzIGZ1bmN0aW9uIGFsc28gY2hlY2tzIHN5cy52ZXJzaW9uLCBpdCdzIG5vdCBzdHJpY3RseSBhCi0gICAgIyAicHljb25maWcuaCIgY2hlY2sgLS0gc2hvdWxkIHByb2JhYmx5IGJlIHJlbmFtZWQuLi4KLQotICAgIGZyb20gZGlzdHV0aWxzIGltcG9ydCBzeXNjb25maWcKLSAgICAjIGlmIHN5cy52ZXJzaW9uIGNvbnRhaW5zIEdDQyB0aGVuIHB5dGhvbiB3YXMgY29tcGlsZWQgd2l0aAotICAgICMgR0NDLCBhbmQgdGhlIHB5Y29uZmlnLmggZmlsZSBzaG91bGQgYmUgT0sKLSAgICBpZiBzeXMudmVyc2lvbi5maW5kKCJHQ0MiKSA+PSAwOgotICAgICAgICByZXR1cm4gKENPTkZJR19IX09LLCAic3lzLnZlcnNpb24gbWVudGlvbnMgJ0dDQyciKQotCi0gICAgZm4gPSBzeXNjb25maWcuZ2V0X2NvbmZpZ19oX2ZpbGVuYW1lKCkKLSAgICB0cnk6Ci0gICAgICAgICMgSXQgd291bGQgcHJvYmFibHkgYmV0dGVyIHRvIHJlYWQgc2luZ2xlIGxpbmVzIHRvIHNlYXJjaC4KLSAgICAgICAgIyBCdXQgd2UgZG8gdGhpcyBvbmx5IG9uY2UsIGFuZCBpdCBpcyBmYXN0IGVub3VnaAotICAgICAgICBmID0gb3BlbihmbikKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcyA9IGYucmVhZCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBmLmNsb3NlKCkKLQotICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGV4YzoKLSAgICAgICAgIyBpZiB3ZSBjYW4ndCByZWFkIHRoaXMgZmlsZSwgd2UgY2Fubm90IHNheSBpdCBpcyB3cm9uZwotICAgICAgICAjIHRoZSBjb21waWxlciB3aWxsIGNvbXBsYWluIGxhdGVyIGFib3V0IHRoaXMgZmlsZSBhcyBtaXNzaW5nCi0gICAgICAgIHJldHVybiAoQ09ORklHX0hfVU5DRVJUQUlOLAotICAgICAgICAgICAgICAgICJjb3VsZG4ndCByZWFkICclcyc6ICVzIiAlIChmbiwgZXhjLnN0cmVycm9yKSkKLQotICAgIGVsc2U6Ci0gICAgICAgICMgInB5Y29uZmlnLmgiIGNvbnRhaW5zIGFuICIjaWZkZWYgX19HTlVDX18iIG9yIHNvbWV0aGluZyBzaW1pbGFyCi0gICAgICAgIGlmIHMuZmluZCgiX19HTlVDX18iKSA+PSAwOgotICAgICAgICAgICAgcmV0dXJuIChDT05GSUdfSF9PSywgIiclcycgbWVudGlvbnMgJ19fR05VQ19fJyIgJSBmbikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiAoQ09ORklHX0hfTk9UT0ssICInJXMnIGRvZXMgbm90IG1lbnRpb24gJ19fR05VQ19fJyIgJSBmbikKLQotCi1kZWYgZ2V0X3ZlcnNpb25zKCk6Ci0gICAgIiIiIFRyeSB0byBmaW5kIG91dCB0aGUgdmVyc2lvbnMgb2YgZ2NjIGFuZCBsZC4KLSAgICAgICAgSWYgbm90IHBvc3NpYmxlIGl0IHJldHVybnMgTm9uZSBmb3IgaXQuCi0gICAgIiIiCi0gICAgZnJvbSBkaXN0dXRpbHMudmVyc2lvbiBpbXBvcnQgU3RyaWN0VmVyc2lvbgotICAgIGZyb20gZGlzdHV0aWxzLnNwYXduIGltcG9ydCBmaW5kX2V4ZWN1dGFibGUKLSAgICBpbXBvcnQgcmUKLQotICAgIGdjY19leGUgPSBmaW5kX2V4ZWN1dGFibGUoJ2djYycpCi0gICAgaWYgZ2NjX2V4ZToKLSAgICAgICAgb3V0ID0gb3MucG9wZW4oZ2NjX2V4ZSArICcgLWR1bXB2ZXJzaW9uJywncicpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG91dF9zdHJpbmcgPSBvdXQucmVhZCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBvdXQuY2xvc2UoKQotICAgICAgICByZXN1bHQgPSByZS5zZWFyY2goJyhcZCtcLlxkK1wuXGQrKScsIG91dF9zdHJpbmcsIHJlLkFTQ0lJKQotICAgICAgICBpZiByZXN1bHQ6Ci0gICAgICAgICAgICBnY2NfdmVyc2lvbiA9IFN0cmljdFZlcnNpb24ocmVzdWx0Lmdyb3VwKDEpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZ2NjX3ZlcnNpb24gPSBOb25lCi0gICAgZWxzZToKLSAgICAgICAgZ2NjX3ZlcnNpb24gPSBOb25lCi0gICAgIyBFTVggbGQgaGFzIG5vIHdheSBvZiByZXBvcnRpbmcgdmVyc2lvbiBudW1iZXIsIGFuZCB3ZSB1c2UgR0NDCi0gICAgIyBhbnl3YXkgLSBzbyB3ZSBjYW4gbGluayBPTUYgRExMcwotICAgIGxkX3ZlcnNpb24gPSBOb25lCi0gICAgcmV0dXJuIChnY2NfdmVyc2lvbiwgbGRfdmVyc2lvbikKZGlmZiAtLWdpdCBhL0xpYi9kaXN0dXRpbHMvZXJyb3JzLnB5IGIvTGliL2Rpc3R1dGlscy9lcnJvcnMucHkKaW5kZXggZWIxM2M5OC4uOGI5MzA1OSAxMDA2NDQKLS0tIGEvTGliL2Rpc3R1dGlscy9lcnJvcnMucHkKKysrIGIvTGliL2Rpc3R1dGlscy9lcnJvcnMucHkKQEAgLTM1LDggKzM1LDggQEAKIAogY2xhc3MgRGlzdHV0aWxzRmlsZUVycm9yIChEaXN0dXRpbHNFcnJvcik6CiAgICAgIiIiQW55IHByb2JsZW1zIGluIHRoZSBmaWxlc3lzdGVtOiBleHBlY3RlZCBmaWxlIG5vdCBmb3VuZCwgZXRjLgotICAgIFR5cGljYWxseSB0aGlzIGlzIGZvciBwcm9ibGVtcyB0aGF0IHdlIGRldGVjdCBiZWZvcmUgSU9FcnJvciBvcgotICAgIE9TRXJyb3IgY291bGQgYmUgcmFpc2VkLiIiIgorICAgIFR5cGljYWxseSB0aGlzIGlzIGZvciBwcm9ibGVtcyB0aGF0IHdlIGRldGVjdCBiZWZvcmUgT1NFcnJvcgorICAgIGNvdWxkIGJlIHJhaXNlZC4iIiIKICAgICBwYXNzCiAKIGNsYXNzIERpc3R1dGlsc09wdGlvbkVycm9yIChEaXN0dXRpbHNFcnJvcik6CmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL2ZpbGVfdXRpbC5weSBiL0xpYi9kaXN0dXRpbHMvZmlsZV91dGlsLnB5CmluZGV4IDliZGQxNGUuLmY2ZWQyOTAgMTAwNjQ0Ci0tLSBhL0xpYi9kaXN0dXRpbHMvZmlsZV91dGlsLnB5CisrKyBiL0xpYi9kaXN0dXRpbHMvZmlsZV91dGlsLnB5CkBAIC0yNywyNiArMjcsMjYgQEAKICAgICB0cnk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGZzcmMgPSBvcGVuKHNyYywgJ3JiJykKLSAgICAgICAgZXhjZXB0IG9zLmVycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICByYWlzZSBEaXN0dXRpbHNGaWxlRXJyb3IoImNvdWxkIG5vdCBvcGVuICclcyc6ICVzIiAlIChzcmMsIGUuc3RyZXJyb3IpKQogCiAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGRzdCk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgb3MudW5saW5rKGRzdCkKLSAgICAgICAgICAgIGV4Y2VwdCBvcy5lcnJvciBhcyBlOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICByYWlzZSBEaXN0dXRpbHNGaWxlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICAgImNvdWxkIG5vdCBkZWxldGUgJyVzJzogJXMiICUgKGRzdCwgZS5zdHJlcnJvcikpCiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZmRzdCA9IG9wZW4oZHN0LCAnd2InKQotICAgICAgICBleGNlcHQgb3MuZXJyb3IgYXMgZToKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgIHJhaXNlIERpc3R1dGlsc0ZpbGVFcnJvcigKICAgICAgICAgICAgICAgICAgICJjb3VsZCBub3QgY3JlYXRlICclcyc6ICVzIiAlIChkc3QsIGUuc3RyZXJyb3IpKQogCiAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgYnVmID0gZnNyYy5yZWFkKGJ1ZmZlcl9zaXplKQotICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yIGFzIGU6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgICAgIHJhaXNlIERpc3R1dGlsc0ZpbGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAgICAiY291bGQgbm90IHJlYWQgZnJvbSAnJXMnOiAlcyIgJSAoc3JjLCBlLnN0cmVycm9yKSkKIApAQCAtNTUsNyArNTUsNyBAQAogCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgZmRzdC53cml0ZShidWYpCi0gICAgICAgICAgICBleGNlcHQgb3MuZXJyb3IgYXMgZToKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAgICAgcmFpc2UgRGlzdHV0aWxzRmlsZUVycm9yKAogICAgICAgICAgICAgICAgICAgICAgICJjb3VsZCBub3Qgd3JpdGUgdG8gJyVzJzogJXMiICUgKGRzdCwgZS5zdHJlcnJvcikpCiAgICAgZmluYWxseToKQEAgLTE5Myw3ICsxOTMsNyBAQAogICAgIGNvcHlfaXQgPSBGYWxzZQogICAgIHRyeToKICAgICAgICAgb3MucmVuYW1lKHNyYywgZHN0KQotICAgIGV4Y2VwdCBvcy5lcnJvciBhcyBlOgorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgIChudW0sIG1zZykgPSBlCiAgICAgICAgIGlmIG51bSA9PSBlcnJuby5FWERFVjoKICAgICAgICAgICAgIGNvcHlfaXQgPSBUcnVlCkBAIC0yMDUsMTEgKzIwNSwxMSBAQAogICAgICAgICBjb3B5X2ZpbGUoc3JjLCBkc3QsIHZlcmJvc2U9dmVyYm9zZSkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgb3MudW5saW5rKHNyYykKLSAgICAgICAgZXhjZXB0IG9zLmVycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAobnVtLCBtc2cpID0gZQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIG9zLnVubGluayhkc3QpCi0gICAgICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICByYWlzZSBEaXN0dXRpbHNGaWxlRXJyb3IoCiAgICAgICAgICAgICAgICAgICAiY291bGRuJ3QgbW92ZSAnJXMnIHRvICclcycgYnkgY29weS9kZWxldGU6ICIKZGlmZiAtLWdpdCBhL0xpYi9kaXN0dXRpbHMvbXN2Yzljb21waWxlci5weSBiL0xpYi9kaXN0dXRpbHMvbXN2Yzljb21waWxlci5weQppbmRleCBiM2Y2Y2UxLi45Njg4ZjIwIDEwMDY0NAotLS0gYS9MaWIvZGlzdHV0aWxzL21zdmM5Y29tcGlsZXIucHkKKysrIGIvTGliL2Rpc3R1dGlscy9tc3ZjOWNvbXBpbGVyLnB5CkBAIC03MjksNyArNzI5LDcgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gbWFuaWZlc3RfZmlsZQogICAgICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICAgICBtYW5pZmVzdF9mLmNsb3NlKCkKLSAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgcGFzcwogCiAgICAgIyAtLSBNaXNjZWxsYW5lb3VzIG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0xpYi9kaXN0dXRpbHMvc3Bhd24ucHkgYi9MaWIvZGlzdHV0aWxzL3NwYXduLnB5CmluZGV4IGY1OGM1NWYuLmIxYzVhNDQgMTAwNjQ0Ci0tLSBhL0xpYi9kaXN0dXRpbHMvc3Bhd24ucHkKKysrIGIvTGliL2Rpc3R1dGlscy9zcGF3bi5weQpAQCAtMzIsOCArMzIsNiBAQAogICAgICAgICBfc3Bhd25fcG9zaXgoY21kLCBzZWFyY2hfcGF0aCwgZHJ5X3J1bj1kcnlfcnVuKQogICAgIGVsaWYgb3MubmFtZSA9PSAnbnQnOgogICAgICAgICBfc3Bhd25fbnQoY21kLCBzZWFyY2hfcGF0aCwgZHJ5X3J1bj1kcnlfcnVuKQotICAgIGVsaWYgb3MubmFtZSA9PSAnb3MyJzoKLSAgICAgICAgX3NwYXduX29zMihjbWQsIHNlYXJjaF9wYXRoLCBkcnlfcnVuPWRyeV9ydW4pCiAgICAgZWxzZToKICAgICAgICAgcmFpc2UgRGlzdHV0aWxzUGxhdGZvcm1FcnJvcigKICAgICAgICAgICAgICAgImRvbid0IGtub3cgaG93IHRvIHNwYXduIHByb2dyYW1zIG9uIHBsYXRmb3JtICclcyciICUgb3MubmFtZSkKQEAgLTc0LDI2ICs3Miw2IEBACiAgICAgICAgICAgICByYWlzZSBEaXN0dXRpbHNFeGVjRXJyb3IoCiAgICAgICAgICAgICAgICAgICAiY29tbWFuZCAnJXMnIGZhaWxlZCB3aXRoIGV4aXQgc3RhdHVzICVkIiAlIChjbWRbMF0sIHJjKSkKIAotZGVmIF9zcGF3bl9vczIoY21kLCBzZWFyY2hfcGF0aD0xLCB2ZXJib3NlPTAsIGRyeV9ydW49MCk6Ci0gICAgZXhlY3V0YWJsZSA9IGNtZFswXQotICAgIGlmIHNlYXJjaF9wYXRoOgotICAgICAgICAjIGVpdGhlciB3ZSBmaW5kIG9uZSBvciBpdCBzdGF5cyB0aGUgc2FtZQotICAgICAgICBleGVjdXRhYmxlID0gZmluZF9leGVjdXRhYmxlKGV4ZWN1dGFibGUpIG9yIGV4ZWN1dGFibGUKLSAgICBsb2cuaW5mbygnICcuam9pbihbZXhlY3V0YWJsZV0gKyBjbWRbMTpdKSkKLSAgICBpZiBub3QgZHJ5X3J1bjoKLSAgICAgICAgIyBzcGF3bnYgZm9yIE9TLzIgRU1YIHJlcXVpcmVzIGEgZnVsbCBwYXRoIHRvIHRoZSAuZXhlCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJjID0gb3Muc3Bhd252KG9zLlBfV0FJVCwgZXhlY3V0YWJsZSwgY21kKQotICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBleGM6Ci0gICAgICAgICAgICAjIHRoaXMgc2VlbXMgdG8gaGFwcGVuIHdoZW4gdGhlIGNvbW1hbmQgaXNuJ3QgZm91bmQKLSAgICAgICAgICAgIHJhaXNlIERpc3R1dGlsc0V4ZWNFcnJvcigKLSAgICAgICAgICAgICAgICAgICJjb21tYW5kICclcycgZmFpbGVkOiAlcyIgJSAoY21kWzBdLCBleGMuYXJnc1stMV0pKQotICAgICAgICBpZiByYyAhPSAwOgotICAgICAgICAgICAgIyBhbmQgdGhpcyByZWZsZWN0cyB0aGUgY29tbWFuZCBydW5uaW5nIGJ1dCBmYWlsaW5nCi0gICAgICAgICAgICBsb2cuZGVidWcoImNvbW1hbmQgJyVzJyBmYWlsZWQgd2l0aCBleGl0IHN0YXR1cyAlZCIgJSAoY21kWzBdLCByYykpCi0gICAgICAgICAgICByYWlzZSBEaXN0dXRpbHNFeGVjRXJyb3IoCi0gICAgICAgICAgICAgICAgICAiY29tbWFuZCAnJXMnIGZhaWxlZCB3aXRoIGV4aXQgc3RhdHVzICVkIiAlIChjbWRbMF0sIHJjKSkKLQogaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOgogICAgIGZyb20gZGlzdHV0aWxzIGltcG9ydCBzeXNjb25maWcKICAgICBfY2ZnX3RhcmdldCA9IE5vbmUKQEAgLTE4MCw3ICsxNTgsNyBAQAogICAgIHBhdGhzID0gcGF0aC5zcGxpdChvcy5wYXRoc2VwKQogICAgIGJhc2UsIGV4dCA9IG9zLnBhdGguc3BsaXRleHQoZXhlY3V0YWJsZSkKIAotICAgIGlmIChzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyBvciBvcy5uYW1lID09ICdvczInKSBhbmQgKGV4dCAhPSAnLmV4ZScpOgorICAgIGlmIChzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJykgYW5kIChleHQgIT0gJy5leGUnKToKICAgICAgICAgZXhlY3V0YWJsZSA9IGV4ZWN1dGFibGUgKyAnLmV4ZScKIAogICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShleGVjdXRhYmxlKToKZGlmZiAtLWdpdCBhL0xpYi9kaXN0dXRpbHMvc3lzY29uZmlnLnB5IGIvTGliL2Rpc3R1dGlscy9zeXNjb25maWcucHkKaW5kZXggYjk0Nzk4OC4uZDljOWQ2NSAxMDA2NDQKLS0tIGEvTGliL2Rpc3R1dGlscy9zeXNjb25maWcucHkKKysrIGIvTGliL2Rpc3R1dGlscy9zeXNjb25maWcucHkKQEAgLTExNCw4ICsxMTQsNiBAQAogICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKHByZWZpeCwgImluY2x1ZGUiLCBweXRob25fZGlyKQogICAgIGVsaWYgb3MubmFtZSA9PSAibnQiOgogICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKHByZWZpeCwgImluY2x1ZGUiKQotICAgIGVsaWYgb3MubmFtZSA9PSAib3MyIjoKLSAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihwcmVmaXgsICJJbmNsdWRlIikKICAgICBlbHNlOgogICAgICAgICByYWlzZSBEaXN0dXRpbHNQbGF0Zm9ybUVycm9yKAogICAgICAgICAgICAgIkkgZG9uJ3Qga25vdyB3aGVyZSBQeXRob24gaW5zdGFsbHMgaXRzIEMgaGVhZGVyIGZpbGVzICIKQEAgLTE1NywxMSArMTU1LDYgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gcHJlZml4CiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4ocHJlZml4LCAiTGliIiwgInNpdGUtcGFja2FnZXMiKQotICAgIGVsaWYgb3MubmFtZSA9PSAib3MyIjoKLSAgICAgICAgaWYgc3RhbmRhcmRfbGliOgotICAgICAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihwcmVmaXgsICJMaWIiKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihwcmVmaXgsICJMaWIiLCAic2l0ZS1wYWNrYWdlcyIpCiAgICAgZWxzZToKICAgICAgICAgcmFpc2UgRGlzdHV0aWxzUGxhdGZvcm1FcnJvcigKICAgICAgICAgICAgICJJIGRvbid0IGtub3cgd2hlcmUgUHl0aG9uIGluc3RhbGxzIGl0cyBsaWJyYXJ5ICIKQEAgLTQ0Miw3ICs0MzUsNyBAQAogICAgIHRyeToKICAgICAgICAgZmlsZW5hbWUgPSBnZXRfbWFrZWZpbGVfZmlsZW5hbWUoKQogICAgICAgICBwYXJzZV9tYWtlZmlsZShmaWxlbmFtZSwgZykKLSAgICBleGNlcHQgSU9FcnJvciBhcyBtc2c6CisgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICBteV9tc2cgPSAiaW52YWxpZCBQeXRob24gaW5zdGFsbGF0aW9uOiB1bmFibGUgdG8gb3BlbiAlcyIgJSBmaWxlbmFtZQogICAgICAgICBpZiBoYXNhdHRyKG1zZywgInN0cmVycm9yIik6CiAgICAgICAgICAgICBteV9tc2cgPSBteV9tc2cgKyAiICglcykiICUgbXNnLnN0cmVycm9yCkBAIC00NTQsNyArNDQ3LDcgQEAKICAgICAgICAgZmlsZW5hbWUgPSBnZXRfY29uZmlnX2hfZmlsZW5hbWUoKQogICAgICAgICB3aXRoIG9wZW4oZmlsZW5hbWUpIGFzIGZpbGU6CiAgICAgICAgICAgICBwYXJzZV9jb25maWdfaChmaWxlLCBnKQotICAgIGV4Y2VwdCBJT0Vycm9yIGFzIG1zZzoKKyAgICBleGNlcHQgT1NFcnJvciBhcyBtc2c6CiAgICAgICAgIG15X21zZyA9ICJpbnZhbGlkIFB5dGhvbiBpbnN0YWxsYXRpb246IHVuYWJsZSB0byBvcGVuICVzIiAlIGZpbGVuYW1lCiAgICAgICAgIGlmIGhhc2F0dHIobXNnLCAic3RyZXJyb3IiKToKICAgICAgICAgICAgIG15X21zZyA9IG15X21zZyArICIgKCVzKSIgJSBtc2cuc3RyZXJyb3IKQEAgLTQ5Miw3ICs0ODUsNiBAQAogICAgICMgWFhYIGhtbW0uLiBhIG5vcm1hbCBpbnN0YWxsIHB1dHMgaW5jbHVkZSBmaWxlcyBoZXJlCiAgICAgZ1snSU5DTFVERVBZJ10gPSBnZXRfcHl0aG9uX2luYyhwbGF0X3NwZWNpZmljPTApCiAKLSAgICBnWydTTyddID0gJy5weWQnCiAgICAgZ1snRVhUX1NVRkZJWCddID0gJy5weWQnCiAgICAgZ1snRVhFJ10gPSAiLmV4ZSIKICAgICBnWydWRVJTSU9OJ10gPSBnZXRfcHl0aG9uX3ZlcnNpb24oKS5yZXBsYWNlKCIuIiwgIiIpCkBAIC01MDIsMjQgKzQ5NCw2IEBACiAgICAgX2NvbmZpZ192YXJzID0gZwogCiAKLWRlZiBfaW5pdF9vczIoKToKLSAgICAiIiJJbml0aWFsaXplIHRoZSBtb2R1bGUgYXMgYXBwcm9wcmlhdGUgZm9yIE9TLzIiIiIKLSAgICBnID0ge30KLSAgICAjIHNldCBiYXNpYyBpbnN0YWxsIGRpcmVjdG9yaWVzCi0gICAgZ1snTElCREVTVCddID0gZ2V0X3B5dGhvbl9saWIocGxhdF9zcGVjaWZpYz0wLCBzdGFuZGFyZF9saWI9MSkKLSAgICBnWydCSU5MSUJERVNUJ10gPSBnZXRfcHl0aG9uX2xpYihwbGF0X3NwZWNpZmljPTEsIHN0YW5kYXJkX2xpYj0xKQotCi0gICAgIyBYWFggaG1tbS4uIGEgbm9ybWFsIGluc3RhbGwgcHV0cyBpbmNsdWRlIGZpbGVzIGhlcmUKLSAgICBnWydJTkNMVURFUFknXSA9IGdldF9weXRob25faW5jKHBsYXRfc3BlY2lmaWM9MCkKLQotICAgIGdbJ1NPJ10gPSAnLnB5ZCcKLSAgICBnWydFWFRfU1VGRklYJ10gPSAnLnB5ZCcKLSAgICBnWydFWEUnXSA9ICIuZXhlIgotCi0gICAgZ2xvYmFsIF9jb25maWdfdmFycwotICAgIF9jb25maWdfdmFycyA9IGcKLQotCiBkZWYgZ2V0X2NvbmZpZ192YXJzKCphcmdzKToKICAgICAiIiJXaXRoIG5vIGFyZ3VtZW50cywgcmV0dXJuIGEgZGljdGlvbmFyeSBvZiBhbGwgY29uZmlndXJhdGlvbgogICAgIHZhcmlhYmxlcyByZWxldmFudCBmb3IgdGhlIGN1cnJlbnQgcGxhdGZvcm0uICBHZW5lcmFsbHkgdGhpcyBpbmNsdWRlcwpkaWZmIC0tZ2l0IGEvTGliL2Rpc3R1dGlscy90ZXN0cy90ZXN0X2JkaXN0X2R1bWIucHkgYi9MaWIvZGlzdHV0aWxzL3Rlc3RzL3Rlc3RfYmRpc3RfZHVtYi5weQppbmRleCAwYWQzMmQ0Li43MzA2MTY2IDEwMDY0NAotLS0gYS9MaWIvZGlzdHV0aWxzL3Rlc3RzL3Rlc3RfYmRpc3RfZHVtYi5weQorKysgYi9MaWIvZGlzdHV0aWxzL3Rlc3RzL3Rlc3RfYmRpc3RfZHVtYi5weQpAQCAtNzUsOCArNzUsNiBAQAogICAgICAgICAjIHNlZSB3aGF0IHdlIGhhdmUKICAgICAgICAgZGlzdF9jcmVhdGVkID0gb3MubGlzdGRpcihvcy5wYXRoLmpvaW4ocGtnX2RpciwgJ2Rpc3QnKSkKICAgICAgICAgYmFzZSA9ICIlcy4lcy56aXAiICUgKGRpc3QuZ2V0X2Z1bGxuYW1lKCksIGNtZC5wbGF0X25hbWUpCi0gICAgICAgIGlmIG9zLm5hbWUgPT0gJ29zMic6Ci0gICAgICAgICAgICBiYXNlID0gYmFzZS5yZXBsYWNlKCc6JywgJy0nKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlzdF9jcmVhdGVkLCBbYmFzZV0pCiAKZGlmZiAtLWdpdCBhL0xpYi9kaXN0dXRpbHMvdGVzdHMvdGVzdF9jb25maWcucHkgYi9MaWIvZGlzdHV0aWxzL3Rlc3RzL3Rlc3RfY29uZmlnLnB5CmluZGV4IDUyNWJlZTkuLjEyNTkzNjEgMTAwNjQ0Ci0tLSBhL0xpYi9kaXN0dXRpbHMvdGVzdHMvdGVzdF9jb25maWcucHkKKysrIGIvTGliL2Rpc3R1dGlscy90ZXN0cy90ZXN0X2NvbmZpZy5weQpAQCAtODcsNyArODcsNyBAQAogCiAgICAgICAgIGNvbmZpZyA9IGxpc3Qoc29ydGVkKGNvbmZpZy5pdGVtcygpKSkKICAgICAgICAgd2FpdGVkID0gWygncGFzc3dvcmQnLCAnc2VjcmV0JyksICgncmVhbG0nLCAncHlwaScpLAotICAgICAgICAgICAgICAgICAgKCdyZXBvc2l0b3J5JywgJ2h0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaScpLAorICAgICAgICAgICAgICAgICAgKCdyZXBvc2l0b3J5JywgJ2h0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGknKSwKICAgICAgICAgICAgICAgICAgICgnc2VydmVyJywgJ3NlcnZlcjEnKSwgKCd1c2VybmFtZScsICdtZScpXQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZywgd2FpdGVkKQogCkBAIC05Niw3ICs5Niw3IEBACiAgICAgICAgIGNvbmZpZyA9IGNtZC5fcmVhZF9weXBpcmMoKQogICAgICAgICBjb25maWcgPSBsaXN0KHNvcnRlZChjb25maWcuaXRlbXMoKSkpCiAgICAgICAgIHdhaXRlZCA9IFsoJ3Bhc3N3b3JkJywgJ3NlY3JldCcpLCAoJ3JlYWxtJywgJ3B5cGknKSwKLSAgICAgICAgICAgICAgICAgICgncmVwb3NpdG9yeScsICdodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGknKSwKKyAgICAgICAgICAgICAgICAgICgncmVwb3NpdG9yeScsICdodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpJyksCiAgICAgICAgICAgICAgICAgICAoJ3NlcnZlcicsICdzZXJ2ZXItbG9naW4nKSwgKCd1c2VybmFtZScsICd0YXJlaycpXQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbmZpZywgd2FpdGVkKQogCmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL3Rlc3RzL3Rlc3RfaW5zdGFsbC5weSBiL0xpYi9kaXN0dXRpbHMvdGVzdHMvdGVzdF9pbnN0YWxsLnB5CmluZGV4IGIxOTAxMjcuLmU5YjI2NDIgMTAwNjQ0Ci0tLSBhL0xpYi9kaXN0dXRpbHMvdGVzdHMvdGVzdF9pbnN0YWxsLnB5CisrKyBiL0xpYi9kaXN0dXRpbHMvdGVzdHMvdGVzdF9pbnN0YWxsLnB5CkBAIC05NCw3ICs5NCw3IEBACiAKICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGNsZWFudXApCiAKLSAgICAgICAgZm9yIGtleSBpbiAoJ250X3VzZXInLCAndW5peF91c2VyJywgJ29zMl9ob21lJyk6CisgICAgICAgIGZvciBrZXkgaW4gKCdudF91c2VyJywgJ3VuaXhfdXNlcicpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihrZXksIElOU1RBTExfU0NIRU1FUykKIAogICAgICAgICBkaXN0ID0gRGlzdHJpYnV0aW9uKHsnbmFtZSc6ICd4eCd9KQpkaWZmIC0tZ2l0IGEvTGliL2Rpc3R1dGlscy90ZXN0cy90ZXN0X3VwbG9hZC5weSBiL0xpYi9kaXN0dXRpbHMvdGVzdHMvdGVzdF91cGxvYWQucHkKaW5kZXggNGM2NDY0YS4uNGE3MWNhNCAxMDA2NDQKLS0tIGEvTGliL2Rpc3R1dGlscy90ZXN0cy90ZXN0X3VwbG9hZC5weQorKysgYi9MaWIvZGlzdHV0aWxzL3Rlc3RzL3Rlc3RfdXBsb2FkLnB5CkBAIC03MiwxMiArNzIsMTIgQEAKIAogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc3VwZXIodXBsb2FkVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5vbGRfY2xhc3MgPSBodHRwY2xpZW50LkhUVFBDb25uZWN0aW9uCi0gICAgICAgIHNlbGYuY29ubiA9IGh0dHBjbGllbnQuSFRUUENvbm5lY3Rpb24gPSBGYWtlQ29ubmVjdGlvbigpCi0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgIGh0dHBjbGllbnQuSFRUUENvbm5lY3Rpb24gPSBzZWxmLm9sZF9jbGFzcwotICAgICAgICBzdXBlcih1cGxvYWRUZXN0Q2FzZSwgc2VsZikudGVhckRvd24oKQorICAgICAgICBpZiBoYXNhdHRyKGh0dHBjbGllbnQsICdIVFRQU0Nvbm5lY3Rpb24nKToKKyAgICAgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzZXRhdHRyLCBodHRwY2xpZW50LCAnSFRUUFNDb25uZWN0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwY2xpZW50LkhUVFBTQ29ubmVjdGlvbikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYWRkQ2xlYW51cChkZWxhdHRyLCBodHRwY2xpZW50LCAnSFRUUFNDb25uZWN0aW9uJykKKyAgICAgICAgc2VsZi5jb25uID0gaHR0cGNsaWVudC5IVFRQU0Nvbm5lY3Rpb24gPSBGYWtlQ29ubmVjdGlvbigpCiAKICAgICBkZWYgdGVzdF9maW5hbGl6ZV9vcHRpb25zKHNlbGYpOgogCkBAIC04OCw3ICs4OCw3IEBACiAgICAgICAgIGNtZC5maW5hbGl6ZV9vcHRpb25zKCkKICAgICAgICAgZm9yIGF0dHIsIHdhaXRlZCBpbiAoKCd1c2VybmFtZScsICdtZScpLCAoJ3Bhc3N3b3JkJywgJ3NlY3JldCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ3JlYWxtJywgJ3B5cGknKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdyZXBvc2l0b3J5JywgJ2h0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaScpKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdyZXBvc2l0b3J5JywgJ2h0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGknKSk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdldGF0dHIoY21kLCBhdHRyKSwgd2FpdGVkKQogCiAgICAgZGVmIHRlc3Rfc2F2ZWRfcGFzc3dvcmQoc2VsZik6CmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL3Rlc3RzL3Rlc3RfdXRpbC5weSBiL0xpYi9kaXN0dXRpbHMvdGVzdHMvdGVzdF91dGlsLnB5CmluZGV4IGVhYzliNTEuLmI3M2NmZTkgMTAwNjQ0Ci0tLSBhL0xpYi9kaXN0dXRpbHMvdGVzdHMvdGVzdF91dGlsLnB5CisrKyBiL0xpYi9kaXN0dXRpbHMvdGVzdHMvdGVzdF91dGlsLnB5CkBAIC0yMzYsNyArMjM2LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRGlzdHV0aWxzUGxhdGZvcm1FcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlX3Jvb3QsICdjOlxccm9vdCcsICdpdHNcXGhlcmUnKQogCi0gICAgICAgICMgWFhYIHBsYXRmb3JtcyB0byBiZSBjb3ZlcmVkOiBvczIsIG1hYworICAgICAgICAjIFhYWCBwbGF0Zm9ybXMgdG8gYmUgY292ZXJlZDogbWFjCiAKICAgICBkZWYgdGVzdF9jaGVja19lbnZpcm9uKHNlbGYpOgogICAgICAgICB1dGlsLl9lbnZpcm9uX2NoZWNrZWQgPSAwCmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL3V0aWwucHkgYi9MaWIvZGlzdHV0aWxzL3V0aWwucHkKaW5kZXggNjdkODE2Ni4uYTJmOTU0NCAxMDA2NDQKLS0tIGEvTGliL2Rpc3R1dGlscy91dGlsLnB5CisrKyBiL0xpYi9kaXN0dXRpbHMvdXRpbC5weQpAQCAtMTU0LDEyICsxNTQsNiBAQAogICAgICAgICAgICAgcGF0aCA9IHBhdGhbMTpdCiAgICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4obmV3X3Jvb3QsIHBhdGgpCiAKLSAgICBlbGlmIG9zLm5hbWUgPT0gJ29zMic6Ci0gICAgICAgIChkcml2ZSwgcGF0aCkgPSBvcy5wYXRoLnNwbGl0ZHJpdmUocGF0aG5hbWUpCi0gICAgICAgIGlmIHBhdGhbMF0gPT0gb3Muc2VwOgotICAgICAgICAgICAgcGF0aCA9IHBhdGhbMTpdCi0gICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4obmV3X3Jvb3QsIHBhdGgpCi0KICAgICBlbHNlOgogICAgICAgICByYWlzZSBEaXN0dXRpbHNQbGF0Zm9ybUVycm9yKCJub3RoaW5nIGtub3duIGFib3V0IHBsYXRmb3JtICclcyciICUgb3MubmFtZSkKIApAQCAtMjEzLDggKzIwNyw4IEBACiAKIAogZGVmIGdyb2tfZW52aXJvbm1lbnRfZXJyb3IgKGV4YywgcHJlZml4PSJlcnJvcjogIik6Ci0gICAgIiIiR2VuZXJhdGUgYSB1c2VmdWwgZXJyb3IgbWVzc2FnZSBmcm9tIGFuIEVudmlyb25tZW50RXJyb3IgKElPRXJyb3Igb3IKLSAgICBPU0Vycm9yKSBleGNlcHRpb24gb2JqZWN0LiAgSGFuZGxlcyBQeXRob24gMS41LjEgYW5kIDEuNS4yIHN0eWxlcywgYW5kCisgICAgIiIiR2VuZXJhdGUgYSB1c2VmdWwgZXJyb3IgbWVzc2FnZSBmcm9tIGFuIE9TRXJyb3IKKyAgICBleGNlcHRpb24gb2JqZWN0LiAgSGFuZGxlcyBQeXRob24gMS41LjEgYW5kIDEuNS4yIHN0eWxlcywgYW5kCiAgICAgZG9lcyB3aGF0IGl0IGNhbiB0byBkZWFsIHdpdGggZXhjZXB0aW9uIG9iamVjdHMgdGhhdCBkb24ndCBoYXZlIGEKICAgICBmaWxlbmFtZSAod2hpY2ggaGFwcGVucyB3aGVuIHRoZSBlcnJvciBpcyBkdWUgdG8gYSB0d28tZmlsZSBvcGVyYXRpb24sCiAgICAgc3VjaCBhcyAncmVuYW1lKCknIG9yICdsaW5rKCknLiAgUmV0dXJucyB0aGUgZXJyb3IgbWVzc2FnZSBhcyBhIHN0cmluZwpkaWZmIC0tZ2l0IGEvTGliL2RvY3Rlc3QucHkgYi9MaWIvZG9jdGVzdC5weQppbmRleCAzYWYwNWZiLi4xYjhhOWQ0IDEwMDY0NAotLS0gYS9MaWIvZG9jdGVzdC5weQorKysgYi9MaWIvZG9jdGVzdC5weQpAQCAtNjIsNiArNjIsNyBAQAogICAgICdSRVBPUlRfTkRJRkYnLAogICAgICdSRVBPUlRfT05MWV9GSVJTVF9GQUlMVVJFJywKICAgICAnUkVQT1JUSU5HX0ZMQUdTJywKKyAgICAnRkFJTF9GQVNUJywKICAgICAjIDEuIFV0aWxpdHkgRnVuY3Rpb25zCiAgICAgIyAyLiBFeGFtcGxlICYgRG9jVGVzdAogICAgICdFeGFtcGxlJywKQEAgLTE1MCwxMSArMTUxLDEzIEBACiBSRVBPUlRfQ0RJRkYgPSByZWdpc3Rlcl9vcHRpb25mbGFnKCdSRVBPUlRfQ0RJRkYnKQogUkVQT1JUX05ESUZGID0gcmVnaXN0ZXJfb3B0aW9uZmxhZygnUkVQT1JUX05ESUZGJykKIFJFUE9SVF9PTkxZX0ZJUlNUX0ZBSUxVUkUgPSByZWdpc3Rlcl9vcHRpb25mbGFnKCdSRVBPUlRfT05MWV9GSVJTVF9GQUlMVVJFJykKK0ZBSUxfRkFTVCA9IHJlZ2lzdGVyX29wdGlvbmZsYWcoJ0ZBSUxfRkFTVCcpCiAKIFJFUE9SVElOR19GTEFHUyA9IChSRVBPUlRfVURJRkYgfAogICAgICAgICAgICAgICAgICAgIFJFUE9SVF9DRElGRiB8CiAgICAgICAgICAgICAgICAgICAgUkVQT1JUX05ESUZGIHwKLSAgICAgICAgICAgICAgICAgICBSRVBPUlRfT05MWV9GSVJTVF9GQUlMVVJFKQorICAgICAgICAgICAgICAgICAgIFJFUE9SVF9PTkxZX0ZJUlNUX0ZBSUxVUkUgfAorICAgICAgICAgICAgICAgICAgIEZBSUxfRkFTVCkKIAogIyBTcGVjaWFsIHN0cmluZyBtYXJrZXJzIGZvciB1c2UgaW4gYHdhbnRgIHN0cmluZ3M6CiBCTEFOS0xJTkVfTUFSS0VSID0gJzxCTEFOS0xJTkU+JwpAQCAtMjEyLDcgKzIxNSw3IEBACiAgICAgaWYgbW9kdWxlX3JlbGF0aXZlOgogICAgICAgICBwYWNrYWdlID0gX25vcm1hbGl6ZV9tb2R1bGUocGFja2FnZSwgMykKICAgICAgICAgZmlsZW5hbWUgPSBfbW9kdWxlX3JlbGF0aXZlX3BhdGgocGFja2FnZSwgZmlsZW5hbWUpCi0gICAgICAgIGlmIGhhc2F0dHIocGFja2FnZSwgJ19fbG9hZGVyX18nKToKKyAgICAgICAgaWYgZ2V0YXR0cihwYWNrYWdlLCAnX19sb2FkZXJfXycsIE5vbmUpIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgaWYgaGFzYXR0cihwYWNrYWdlLl9fbG9hZGVyX18sICdnZXRfZGF0YScpOgogICAgICAgICAgICAgICAgIGZpbGVfY29udGVudHMgPSBwYWNrYWdlLl9fbG9hZGVyX18uZ2V0X2RhdGEoZmlsZW5hbWUpCiAgICAgICAgICAgICAgICAgZmlsZV9jb250ZW50cyA9IGZpbGVfY29udGVudHMuZGVjb2RlKGVuY29kaW5nKQpAQCAtMTM0Miw2ICsxMzQ1LDkgQEAKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNlLCAoInVua25vd24gb3V0Y29tZSIsIG91dGNvbWUpCiAKKyAgICAgICAgICAgIGlmIGZhaWx1cmVzIGFuZCBzZWxmLm9wdGlvbmZsYWdzICYgRkFJTF9GQVNUOgorICAgICAgICAgICAgICAgIGJyZWFrCisKICAgICAgICAgIyBSZXN0b3JlIHRoZSBvcHRpb24gZmxhZ3MgKGluIGNhc2UgdGhleSB3ZXJlIG1vZGlmaWVkKQogICAgICAgICBzZWxmLm9wdGlvbmZsYWdzID0gb3JpZ2luYWxfb3B0aW9uZmxhZ3MKIApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL19oZWFkZXJfdmFsdWVfcGFyc2VyLnB5IGIvTGliL2VtYWlsL19oZWFkZXJfdmFsdWVfcGFyc2VyLnB5CmluZGV4IDI2Y2ZhNTIuLmViMzE1NTggMTAwNjQ0Ci0tLSBhL0xpYi9lbWFpbC9faGVhZGVyX3ZhbHVlX3BhcnNlci5weQorKysgYi9MaWIvZW1haWwvX2hlYWRlcl92YWx1ZV9wYXJzZXIucHkKQEAgLTM2Nyw4ICszNjcsNyBAQAogICAgICAgICAgICAgICAgIHlpZWxkIChpbmRlbnQgKyAnICAgICEhIGludmFsaWQgZWxlbWVudCBpbiB0b2tlbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpc3Q6IHshcn0nLmZvcm1hdCh0b2tlbikpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIHRva2VuLl9wcChpbmRlbnQrJyAgICAnKToKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgbGluZQorICAgICAgICAgICAgICAgIHlpZWxkIGZyb20gdG9rZW4uX3BwKGluZGVudCsnICAgICcpCiAgICAgICAgIGlmIHNlbGYuZGVmZWN0czoKICAgICAgICAgICAgIGV4dHJhID0gJyBEZWZlY3RzOiB7fScuZm9ybWF0KHNlbGYuZGVmZWN0cykKICAgICAgICAgZWxzZToKQEAgLTEzMTgsMjQgKzEzMTcsMjIgQEAKICMgUGFyc2VyCiAjCiAKLSIiIlBhcnNlIHN0cmluZ3MgYWNjb3JkaW5nIHRvIFJGQzgyMi8yMDQ3LzI4MjIvNTMyMiBydWxlcy4KLQotVGhpcyBpcyBhIHN0YXRlbGVzcyBwYXJzZXIuICBFYWNoIGdldF9YWFggZnVuY3Rpb24gYWNjZXB0cyBhIHN0cmluZyBhbmQKLXJldHVybnMgZWl0aGVyIGEgVGVybWluYWwgb3IgYSBUb2tlbkxpc3QgcmVwcmVzZW50aW5nIHRoZSBSRkMgb2JqZWN0IG5hbWVkCi1ieSB0aGUgbWV0aG9kIGFuZCBhIHN0cmluZyBjb250YWluaW5nIHRoZSByZW1haW5pbmcgdW5wYXJzZWQgY2hhcmFjdGVycwotZnJvbSB0aGUgaW5wdXQuICBUaHVzIGEgcGFyc2VyIG1ldGhvZCBjb25zdW1lcyB0aGUgbmV4dCBzeW50YWN0aWMgY29uc3RydWN0Ci1vZiBhIGdpdmVuIHR5cGUgYW5kIHJldHVybnMgYSB0b2tlbiByZXByZXNlbnRpbmcgdGhlIGNvbnN0cnVjdCBwbHVzIHRoZQotdW5wYXJzZWQgcmVtYWluZGVyIG9mIHRoZSBpbnB1dCBzdHJpbmcuCi0KLUZvciBleGFtcGxlLCBpZiB0aGUgZmlyc3QgZWxlbWVudCBvZiBhIHN0cnVjdHVyZWQgaGVhZGVyIGlzIGEgJ3BocmFzZScsCi10aGVuOgotCi0gICAgcGhyYXNlLCB2YWx1ZSA9IGdldF9waHJhc2UodmFsdWUpCi0KLXJldHVybnMgdGhlIGNvbXBsZXRlIHBocmFzZSBmcm9tIHRoZSBzdGFydCBvZiB0aGUgc3RyaW5nIHZhbHVlLCBwbHVzIGFueQotY2hhcmFjdGVycyBsZWZ0IGluIHRoZSBzdHJpbmcgYWZ0ZXIgdGhlIHBocmFzZSBpcyByZW1vdmVkLgotCi0iIiIKKyMgUGFyc2Ugc3RyaW5ncyBhY2NvcmRpbmcgdG8gUkZDODIyLzIwNDcvMjgyMi81MzIyIHJ1bGVzLgorIworIyBUaGlzIGlzIGEgc3RhdGVsZXNzIHBhcnNlci4gIEVhY2ggZ2V0X1hYWCBmdW5jdGlvbiBhY2NlcHRzIGEgc3RyaW5nIGFuZAorIyByZXR1cm5zIGVpdGhlciBhIFRlcm1pbmFsIG9yIGEgVG9rZW5MaXN0IHJlcHJlc2VudGluZyB0aGUgUkZDIG9iamVjdCBuYW1lZAorIyBieSB0aGUgbWV0aG9kIGFuZCBhIHN0cmluZyBjb250YWluaW5nIHRoZSByZW1haW5pbmcgdW5wYXJzZWQgY2hhcmFjdGVycworIyBmcm9tIHRoZSBpbnB1dC4gIFRodXMgYSBwYXJzZXIgbWV0aG9kIGNvbnN1bWVzIHRoZSBuZXh0IHN5bnRhY3RpYyBjb25zdHJ1Y3QKKyMgb2YgYSBnaXZlbiB0eXBlIGFuZCByZXR1cm5zIGEgdG9rZW4gcmVwcmVzZW50aW5nIHRoZSBjb25zdHJ1Y3QgcGx1cyB0aGUKKyMgdW5wYXJzZWQgcmVtYWluZGVyIG9mIHRoZSBpbnB1dCBzdHJpbmcuCisjCisjIEZvciBleGFtcGxlLCBpZiB0aGUgZmlyc3QgZWxlbWVudCBvZiBhIHN0cnVjdHVyZWQgaGVhZGVyIGlzIGEgJ3BocmFzZScsCisjIHRoZW46CisjCisjICAgICBwaHJhc2UsIHZhbHVlID0gZ2V0X3BocmFzZSh2YWx1ZSkKKyMKKyMgcmV0dXJucyB0aGUgY29tcGxldGUgcGhyYXNlIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBzdHJpbmcgdmFsdWUsIHBsdXMgYW55CisjIGNoYXJhY3RlcnMgbGVmdCBpbiB0aGUgc3RyaW5nIGFmdGVyIHRoZSBwaHJhc2UgaXMgcmVtb3ZlZC4KIAogX3dzcF9zcGxpdHRlciA9IHJlLmNvbXBpbGUocicoW3t9XSspJy5mb3JtYXQoJycuam9pbihXU1ApKSkuc3BsaXQKIF9ub25fYXRvbV9lbmRfbWF0Y2hlciA9IHJlLmNvbXBpbGUociJbXnt9XSsiLmZvcm1hdCgKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC9mZWVkcGFyc2VyLnB5IGIvTGliL2VtYWlsL2ZlZWRwYXJzZXIucHkKaW5kZXggZWE0MWU5NS4uZWI3NWZlMyAxMDA2NDQKLS0tIGEvTGliL2VtYWlsL2ZlZWRwYXJzZXIucHkKKysrIGIvTGliL2VtYWlsL2ZlZWRwYXJzZXIucHkKQEAgLTk4LDI0ICs5OCwxNSBAQAogICAgICAgICAiIiJQdXNoIHNvbWUgbmV3IGRhdGEgaW50byB0aGlzIG9iamVjdC4iIiIKICAgICAgICAgIyBIYW5kbGUgYW55IHByZXZpb3VzIGxlZnRvdmVycwogICAgICAgICBkYXRhLCBzZWxmLl9wYXJ0aWFsID0gc2VsZi5fcGFydGlhbCArIGRhdGEsICcnCi0gICAgICAgICMgQ3JhY2sgaW50byBsaW5lcywgYnV0IHByZXNlcnZlIHRoZSBuZXdsaW5lcyBvbiB0aGUgZW5kIG9mIGVhY2gKLSAgICAgICAgcGFydHMgPSBOTENSRV9jcmFjay5zcGxpdChkYXRhKQotICAgICAgICAjIFRoZSAqYWhlbSogaW50ZXJlc3RpbmcgYmVoYXZpb3VyIG9mIHJlLnNwbGl0IHdoZW4gc3VwcGxpZWQgZ3JvdXBpbmcKLSAgICAgICAgIyBwYXJlbnRoZXNlcyBpcyB0aGF0IHRoZSBsYXN0IGVsZW1lbnQgb2YgdGhlIHJlc3VsdGluZyBsaXN0IGlzIHRoZQotICAgICAgICAjIGRhdGEgYWZ0ZXIgdGhlIGZpbmFsIFJFLiAgSW4gdGhlIGNhc2Ugb2YgYSBOTC9DUiB0ZXJtaW5hdGVkIHN0cmluZywKLSAgICAgICAgIyB0aGlzIGlzIHRoZSBlbXB0eSBzdHJpbmcuCi0gICAgICAgIHNlbGYuX3BhcnRpYWwgPSBwYXJ0cy5wb3AoKQotICAgICAgICAjR0FOIDI5TWFyMDkgIGJ1Z3MgMTU1NTU3MCwgMTcyMTg2MiAgQ29uZnVzaW9uIGF0IDhLIGJvdW5kYXJ5IGVuZGluZyB3aXRoIFxyOgotICAgICAgICAjIGlzIHRoZXJlIGEgXG4gdG8gZm9sbG93IGxhdGVyPwotICAgICAgICBpZiBub3Qgc2VsZi5fcGFydGlhbCBhbmQgcGFydHMgYW5kIHBhcnRzWy0xXS5lbmRzd2l0aCgnXHInKToKLSAgICAgICAgICAgIHNlbGYuX3BhcnRpYWwgPSBwYXJ0cy5wb3AoLTIpK3BhcnRzLnBvcCgpCi0gICAgICAgICMgcGFydHMgaXMgYSBsaXN0IG9mIHN0cmluZ3MsIGFsdGVybmF0aW5nIGJldHdlZW4gdGhlIGxpbmUgY29udGVudHMKLSAgICAgICAgIyBhbmQgdGhlIGVvbCBjaGFyYWN0ZXIocykuICBHYXRoZXIgdXAgYSBsaXN0IG9mIGxpbmVzIGFmdGVyCi0gICAgICAgICMgcmUtYXR0YWNoaW5nIHRoZSBuZXdsaW5lcy4KLSAgICAgICAgbGluZXMgPSBbXQotICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4ocGFydHMpIC8vIDIpOgotICAgICAgICAgICAgbGluZXMuYXBwZW5kKHBhcnRzW2kqMl0gKyBwYXJ0c1tpKjIrMV0pCi0gICAgICAgIHNlbGYucHVzaGxpbmVzKGxpbmVzKQorICAgICAgICAjIENyYWNrIGludG8gbGluZXMsIGJ1dCBwcmVzZXJ2ZSB0aGUgbGluZXNlcCBjaGFyYWN0ZXJzIG9uIHRoZSBlbmQgb2YgZWFjaAorICAgICAgICBwYXJ0cyA9IGRhdGEuc3BsaXRsaW5lcyhUcnVlKQorICAgICAgICAjIElmIHRoZSBsYXN0IGVsZW1lbnQgb2YgdGhlIGxpc3QgZG9lcyBub3QgZW5kIGluIGEgbmV3bGluZSwgdGhlbiB0cmVhdAorICAgICAgICAjIGl0IGFzIGEgcGFydGlhbCBsaW5lLiAgV2Ugb25seSBjaGVjayBmb3IgJ1xuJyBoZXJlIGJlY2F1c2UgYSBsaW5lCisgICAgICAgICMgZW5kaW5nIHdpdGggJ1xyJyBtaWdodCBiZSBhIGxpbmUgdGhhdCB3YXMgc3BsaXQgaW4gdGhlIG1pZGRsZSBvZiBhCisgICAgICAgICMgJ1xyXG4nIHNlcXVlbmNlIChzZWUgYnVncyAxNTU1NTcwIGFuZCAxNzIxODYyKS4KKyAgICAgICAgaWYgcGFydHMgYW5kIG5vdCBwYXJ0c1stMV0uZW5kc3dpdGgoJ1xuJyk6CisgICAgICAgICAgICBzZWxmLl9wYXJ0aWFsID0gcGFydHMucG9wKCkKKyAgICAgICAgc2VsZi5wdXNobGluZXMocGFydHMpCiAKICAgICBkZWYgcHVzaGxpbmVzKHNlbGYsIGxpbmVzKToKICAgICAgICAgIyBSZXZlcnNlIGFuZCBpbnNlcnQgYXQgdGhlIGZyb250IG9mIHRoZSBsaW5lcy4KZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC9pdGVyYXRvcnMucHkgYi9MaWIvZW1haWwvaXRlcmF0b3JzLnB5CmluZGV4IDNhZGM0YTAuLmI1NTAyZWUgMTAwNjQ0Ci0tLSBhL0xpYi9lbWFpbC9pdGVyYXRvcnMucHkKKysrIGIvTGliL2VtYWlsL2l0ZXJhdG9ycy5weQpAQCAtMjYsOCArMjYsNyBAQAogICAgIHlpZWxkIHNlbGYKICAgICBpZiBzZWxmLmlzX211bHRpcGFydCgpOgogICAgICAgICBmb3Igc3VicGFydCBpbiBzZWxmLmdldF9wYXlsb2FkKCk6Ci0gICAgICAgICAgICBmb3Igc3Vic3VicGFydCBpbiBzdWJwYXJ0LndhbGsoKToKLSAgICAgICAgICAgICAgICB5aWVsZCBzdWJzdWJwYXJ0CisgICAgICAgICAgICB5aWVsZCBmcm9tIHN1YnBhcnQud2FsaygpCiAKIAogDApAQCAtNDAsOCArMzksNyBAQAogICAgIGZvciBzdWJwYXJ0IGluIG1zZy53YWxrKCk6CiAgICAgICAgIHBheWxvYWQgPSBzdWJwYXJ0LmdldF9wYXlsb2FkKGRlY29kZT1kZWNvZGUpCiAgICAgICAgIGlmIGlzaW5zdGFuY2UocGF5bG9hZCwgc3RyKToKLSAgICAgICAgICAgIGZvciBsaW5lIGluIFN0cmluZ0lPKHBheWxvYWQpOgotICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKyAgICAgICAgICAgIHlpZWxkIGZyb20gU3RyaW5nSU8ocGF5bG9hZCkKIAogCiBkZWYgdHlwZWRfc3VicGFydF9pdGVyYXRvcihtc2csIG1haW50eXBlPSd0ZXh0Jywgc3VidHlwZT1Ob25lKToKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC9wYXJzZXIucHkgYi9MaWIvZW1haWwvcGFyc2VyLnB5CmluZGV4IDc1MmJmMzUuLmY0OWQzMWQgMTAwNjQ0Ci0tLSBhL0xpYi9lbWFpbC9wYXJzZXIucHkKKysrIGIvTGliL2VtYWlsL3BhcnNlci5weQpAQCAtNCw3ICs0LDggQEAKIAogIiIiQSBwYXJzZXIgb2YgUkZDIDI4MjIgYW5kIE1JTUUgZW1haWwgbWVzc2FnZXMuIiIiCiAKLV9fYWxsX18gPSBbJ1BhcnNlcicsICdIZWFkZXJQYXJzZXInLCAnQnl0ZXNQYXJzZXInLCAnQnl0ZXNIZWFkZXJQYXJzZXInXQorX19hbGxfXyA9IFsnUGFyc2VyJywgJ0hlYWRlclBhcnNlcicsICdCeXRlc1BhcnNlcicsICdCeXRlc0hlYWRlclBhcnNlcicsCisgICAgICAgICAgICdGZWVkUGFyc2VyJywgJ0J5dGVzRmVlZFBhcnNlciddCiAKIGltcG9ydCB3YXJuaW5ncwogZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8sIFRleHRJT1dyYXBwZXIKZGlmZiAtLWdpdCBhL0xpYi9lbmNvZGluZ3MvY3AwMzcucHkgYi9MaWIvZW5jb2RpbmdzL2NwMDM3LnB5CmluZGV4IGJmZTJjMWUuLjRlZGQ3MDggMTAwNjQ0Ci0tLSBhL0xpYi9lbmNvZGluZ3MvY3AwMzcucHkKKysrIGIvTGliL2VuY29kaW5ncy9jcDAzNy5weQpAQCAtMzAxLDcgKzMwMSw2IEBACiAgICAgJ1x4ZDknICAgICAjICAweEZEIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBHUkFWRQogICAgICdceGRhJyAgICAgIyAgMHhGRSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQUNVVEUKICAgICAnXHg5ZicgICAgICMgIDB4RkYgLT4gQ09OVFJPTAotICAgICdcdWZmZmUnICAgIyMgV2lkZW4gdG8gVUNTMiBmb3Igb3B0aW1pemF0aW9uCiApCiAKICMjIyBFbmNvZGluZyB0YWJsZQpkaWZmIC0tZ2l0IGEvTGliL2VuY29kaW5ncy9jcDUwMC5weSBiL0xpYi9lbmNvZGluZ3MvY3A1MDAucHkKaW5kZXggYTk3NWJlNy4uNWY2MTUzNSAxMDA2NDQKLS0tIGEvTGliL2VuY29kaW5ncy9jcDUwMC5weQorKysgYi9MaWIvZW5jb2RpbmdzL2NwNTAwLnB5CkBAIC0zMDEsNyArMzAxLDYgQEAKICAgICAnXHhkOScgICAgICMgIDB4RkQgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEdSQVZFCiAgICAgJ1x4ZGEnICAgICAjICAweEZFIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBBQ1VURQogICAgICdceDlmJyAgICAgIyAgMHhGRiAtPiBDT05UUk9MCi0gICAgJ1x1ZmZmZScgICAjIyBXaWRlbiB0byBVQ1MyIGZvciBvcHRpbWl6YXRpb24KICkKIAogIyMjIEVuY29kaW5nIHRhYmxlCmRpZmYgLS1naXQgYS9MaWIvZW5jb2RpbmdzL2lzbzg4NTlfMS5weSBiL0xpYi9lbmNvZGluZ3MvaXNvODg1OV8xLnB5CmluZGV4IGQ5Y2M1MTYuLjhjZmMwMWYgMTAwNjQ0Ci0tLSBhL0xpYi9lbmNvZGluZ3MvaXNvODg1OV8xLnB5CisrKyBiL0xpYi9lbmNvZGluZ3MvaXNvODg1OV8xLnB5CkBAIC0zMDEsNyArMzAxLDYgQEAKICAgICAnXHhmZCcgICAgICMgIDB4RkQgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBBQ1VURQogICAgICdceGZlJyAgICAgIyAgMHhGRSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgVEhPUk4gKEljZWxhbmRpYykKICAgICAnXHhmZicgICAgICMgIDB4RkYgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBESUFFUkVTSVMKLSAgICAnXHVmZmZlJyAgICMjIFdpZGVuIHRvIFVDUzIgZm9yIG9wdGltaXphdGlvbgogKQogCiAjIyMgRW5jb2RpbmcgdGFibGUKZGlmZiAtLWdpdCBhL0xpYi9maWxlY21wLnB5IGIvTGliL2ZpbGVjbXAucHkKaW5kZXggZjVjZWExZC4uMDE0YzBkMCAxMDA2NDQKLS0tIGEvTGliL2ZpbGVjbXAucHkKKysrIGIvTGliL2ZpbGVjbXAucHkKQEAgLTEzLDExICsxMywxNSBAQAogaW1wb3J0IHN0YXQKIGZyb20gaXRlcnRvb2xzIGltcG9ydCBmaWx0ZXJmYWxzZQogCi1fX2FsbF9fID0gWyJjbXAiLCAiZGlyY21wIiwgImNtcGZpbGVzIl0KK19fYWxsX18gPSBbJ2NtcCcsICdkaXJjbXAnLCAnY21wZmlsZXMnLCAnREVGQVVMVF9JR05PUkVTJ10KIAogX2NhY2hlID0ge30KIEJVRlNJWkUgPSA4KjEwMjQKIAorREVGQVVMVF9JR05PUkVTID0gWworICAgICdSQ1MnLCAnQ1ZTJywgJ3RhZ3MnLCAnLmdpdCcsICcuaGcnLCAnLmJ6cicsICdfZGFyY3MnLCAnX19weWNhY2hlX18nXQorCisKIGRlZiBjbXAoZjEsIGYyLCBzaGFsbG93PVRydWUpOgogICAgICIiIkNvbXBhcmUgdHdvIGZpbGVzLgogCkBAIC04MCw3ICs4NCw3IEBACiAgICAgZGlyY21wKGEsIGIsIGlnbm9yZT1Ob25lLCBoaWRlPU5vbmUpCiAgICAgICBBIGFuZCBCIGFyZSBkaXJlY3Rvcmllcy4KICAgICAgIElHTk9SRSBpcyBhIGxpc3Qgb2YgbmFtZXMgdG8gaWdub3JlLAotICAgICAgICBkZWZhdWx0cyB0byBbJ1JDUycsICdDVlMnLCAndGFncyddLgorICAgICAgICBkZWZhdWx0cyB0byBERUZBVUxUX0lHTk9SRVMuCiAgICAgICBISURFIGlzIGEgbGlzdCBvZiBuYW1lcyB0byBoaWRlLAogICAgICAgICBkZWZhdWx0cyB0byBbb3MuY3VyZGlyLCBvcy5wYXJkaXJdLgogCkBAIC0xMTYsNyArMTIwLDcgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuaGlkZSA9IGhpZGUKICAgICAgICAgaWYgaWdub3JlIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLmlnbm9yZSA9IFsnUkNTJywgJ0NWUycsICd0YWdzJ10gIyBOYW1lcyBpZ25vcmVkIGluIGNvbXBhcmlzb24KKyAgICAgICAgICAgIHNlbGYuaWdub3JlID0gREVGQVVMVF9JR05PUkVTCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmlnbm9yZSA9IGlnbm9yZQogCkBAIC0xNDcsMTIgKzE1MSwxMiBAQAogICAgICAgICAgICAgb2sgPSAxCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgYV9zdGF0ID0gb3Muc3RhdChhX3BhdGgpCi0gICAgICAgICAgICBleGNlcHQgb3MuZXJyb3IgYXMgd2h5OgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgd2h5OgogICAgICAgICAgICAgICAgICMgcHJpbnQoJ0NhblwndCBzdGF0JywgYV9wYXRoLCAnOicsIHdoeS5hcmdzWzFdKQogICAgICAgICAgICAgICAgIG9rID0gMAogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGJfc3RhdCA9IG9zLnN0YXQoYl9wYXRoKQotICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yIGFzIHdoeToKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIHdoeToKICAgICAgICAgICAgICAgICAjIHByaW50KCdDYW5cJ3Qgc3RhdCcsIGJfcGF0aCwgJzonLCB3aHkuYXJnc1sxXSkKICAgICAgICAgICAgICAgICBvayA9IDAKIApAQCAtMjY4LDcgKzI3Miw3IEBACiBkZWYgX2NtcChhLCBiLCBzaCwgYWJzPWFicywgY21wPWNtcCk6CiAgICAgdHJ5OgogICAgICAgICByZXR1cm4gbm90IGFicyhjbXAoYSwgYiwgc2gpKQotICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgcmV0dXJuIDIKIAogCmRpZmYgLS1naXQgYS9MaWIvZmlsZWlucHV0LnB5IGIvTGliL2ZpbGVpbnB1dC5weQppbmRleCBkYmJiYjIxLi5mOWJiODhhIDEwMDY0NAotLS0gYS9MaWIvZmlsZWlucHV0LnB5CisrKyBiL0xpYi9maWxlaW5wdXQucHkKQEAgLTMwLDcgKzMwLDcgQEAKIAogQWxsIGZpbGVzIGFyZSBvcGVuZWQgaW4gdGV4dCBtb2RlIGJ5IGRlZmF1bHQsIHlvdSBjYW4gb3ZlcnJpZGUgdGhpcyBieQogc2V0dGluZyB0aGUgbW9kZSBwYXJhbWV0ZXIgdG8gaW5wdXQoKSBvciBGaWxlSW5wdXQuX19pbml0X18oKS4KLUlmIGFuIEkvTyBlcnJvciBvY2N1cnMgZHVyaW5nIG9wZW5pbmcgb3IgcmVhZGluZyBhIGZpbGUsIHRoZSBJT0Vycm9yCitJZiBhbiBJL08gZXJyb3Igb2NjdXJzIGR1cmluZyBvcGVuaW5nIG9yIHJlYWRpbmcgYSBmaWxlLCB0aGUgT1NFcnJvcgogZXhjZXB0aW9uIGlzIHJhaXNlZC4KIAogSWYgc3lzLnN0ZGluIGlzIHVzZWQgbW9yZSB0aGFuIG9uY2UsIHRoZSBzZWNvbmQgYW5kIGZ1cnRoZXIgdXNlIHdpbGwKQEAgLTMyNCw5ICszMjQsMTEgQEAKICAgICAgICAgICAgICAgICBpZiBzZWxmLl9pbnBsYWNlOgogICAgICAgICAgICAgICAgICAgICBzZWxmLl9iYWNrdXBmaWxlbmFtZSA9ICgKICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVuYW1lICsgKHNlbGYuX2JhY2t1cCBvciAiLmJhayIpKQotICAgICAgICAgICAgICAgICAgICB0cnk6IG9zLnVubGluayhzZWxmLl9iYWNrdXBmaWxlbmFtZSkKLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yOiBwYXNzCi0gICAgICAgICAgICAgICAgICAgICMgVGhlIG5leHQgZmV3IGxpbmVzIG1heSByYWlzZSBJT0Vycm9yCisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zLnVubGluayhzZWxmLl9iYWNrdXBmaWxlbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgICAgICMgVGhlIG5leHQgZmV3IGxpbmVzIG1heSByYWlzZSBPU0Vycm9yCiAgICAgICAgICAgICAgICAgICAgIG9zLnJlbmFtZShzZWxmLl9maWxlbmFtZSwgc2VsZi5fYmFja3VwZmlsZW5hbWUpCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGUgPSBvcGVuKHNlbGYuX2JhY2t1cGZpbGVuYW1lLCBzZWxmLl9tb2RlKQogICAgICAgICAgICAgICAgICAgICB0cnk6CkBAIC0zNDgsNyArMzUwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2F2ZXN0ZG91dCA9IHN5cy5zdGRvdXQKICAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dCA9IHNlbGYuX291dHB1dAogICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICMgVGhpcyBtYXkgcmFpc2UgSU9FcnJvcgorICAgICAgICAgICAgICAgICAgICAjIFRoaXMgbWF5IHJhaXNlIE9TRXJyb3IKICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fb3Blbmhvb2s6CiAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9maWxlID0gc2VsZi5fb3Blbmhvb2soc2VsZi5fZmlsZW5hbWUsIHNlbGYuX21vZGUpCiAgICAgICAgICAgICAgICAgICAgIGVsc2U6CmRpZmYgLS1naXQgYS9MaWIvZnJhY3Rpb25zLnB5IGIvTGliL2ZyYWN0aW9ucy5weQppbmRleCA4YmU1MmQyLi43OWU4M2ZmIDEwMDY0NAotLS0gYS9MaWIvZnJhY3Rpb25zLnB5CisrKyBiL0xpYi9mcmFjdGlvbnMucHkKQEAgLTE4Miw4ICsxODIsMTAgQEAKICAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShmLCBmbG9hdCk6CiAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIiVzLmZyb21fZmxvYXQoKSBvbmx5IHRha2VzIGZsb2F0cywgbm90ICVyICglcykiICUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xzLl9fbmFtZV9fLCBmLCB0eXBlKGYpLl9fbmFtZV9fKSkKLSAgICAgICAgaWYgbWF0aC5pc25hbihmKSBvciBtYXRoLmlzaW5mKGYpOgotICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCAlciB0byAlcy4iICUgKGYsIGNscy5fX25hbWVfXykpCisgICAgICAgIGlmIG1hdGguaXNuYW4oZik6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDYW5ub3QgY29udmVydCAlciB0byAlcy4iICUgKGYsIGNscy5fX25hbWVfXykpCisgICAgICAgIGlmIG1hdGguaXNpbmYoZik6CisgICAgICAgICAgICByYWlzZSBPdmVyZmxvd0Vycm9yKCJDYW5ub3QgY29udmVydCAlciB0byAlcy4iICUgKGYsIGNscy5fX25hbWVfXykpCiAgICAgICAgIHJldHVybiBjbHMoKmYuYXNfaW50ZWdlcl9yYXRpbygpKQogCiAgICAgQGNsYXNzbWV0aG9kCkBAIC0xOTYsOSArMTk4LDExIEBACiAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCiAgICAgICAgICAgICAgICAgIiVzLmZyb21fZGVjaW1hbCgpIG9ubHkgdGFrZXMgRGVjaW1hbHMsIG5vdCAlciAoJXMpIiAlCiAgICAgICAgICAgICAgICAgKGNscy5fX25hbWVfXywgZGVjLCB0eXBlKGRlYykuX19uYW1lX18pKQotICAgICAgICBpZiBub3QgZGVjLmlzX2Zpbml0ZSgpOgotICAgICAgICAgICAgIyBDYXRjaGVzIGluZmluaXRpZXMgYW5kIG5hbnMuCi0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0ICVzIHRvICVzLiIgJSAoZGVjLCBjbHMuX19uYW1lX18pKQorICAgICAgICBpZiBkZWMuaXNfaW5maW5pdGUoKToKKyAgICAgICAgICAgIHJhaXNlIE92ZXJmbG93RXJyb3IoCisgICAgICAgICAgICAgICAgIkNhbm5vdCBjb252ZXJ0ICVzIHRvICVzLiIgJSAoZGVjLCBjbHMuX19uYW1lX18pKQorICAgICAgICBpZiBkZWMuaXNfbmFuKCk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDYW5ub3QgY29udmVydCAlcyB0byAlcy4iICUgKGRlYywgY2xzLl9fbmFtZV9fKSkKICAgICAgICAgc2lnbiwgZGlnaXRzLCBleHAgPSBkZWMuYXNfdHVwbGUoKQogICAgICAgICBkaWdpdHMgPSBpbnQoJycuam9pbihtYXAoc3RyLCBkaWdpdHMpKSkKICAgICAgICAgaWYgc2lnbjoKZGlmZiAtLWdpdCBhL0xpYi9mdHBsaWIucHkgYi9MaWIvZnRwbGliLnB5CmluZGV4IDc0MWU2NDcuLmZjZDRiMTQgMTAwNjQ0Ci0tLSBhL0xpYi9mdHBsaWIucHkKKysrIGIvTGliL2Z0cGxpYi5weQpAQCAtMzksOSArMzksMTAgQEAKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHNvY2tldAoraW1wb3J0IHdhcm5pbmdzCiBmcm9tIHNvY2tldCBpbXBvcnQgX0dMT0JBTF9ERUZBVUxUX1RJTUVPVVQKIAotX19hbGxfXyA9IFsiRlRQIiwiTmV0cmMiXQorX19hbGxfXyA9IFsiRlRQIiwgIk5ldHJjIl0KIAogIyBNYWdpYyBudW1iZXIgZnJvbSA8c29ja2V0Lmg+CiBNU0dfT09CID0gMHgxICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBQcm9jZXNzIGRhdGEgb3V0IG9mIGJhbmQKQEAgLTYxLDcgKzYyLDcgQEAKIAogIyBBbGwgZXhjZXB0aW9ucyAoaG9wZWZ1bGx5KSB0aGF0IG1heSBiZSByYWlzZWQgaGVyZSBhbmQgdGhhdCBhcmVuJ3QKICMgKGFsd2F5cykgcHJvZ3JhbW1pbmcgZXJyb3JzIG9uIG91ciBzaWRlCi1hbGxfZXJyb3JzID0gKEVycm9yLCBJT0Vycm9yLCBFT0ZFcnJvcikKK2FsbF9lcnJvcnMgPSAoRXJyb3IsIE9TRXJyb3IsIEVPRkVycm9yKQogCiAKICMgTGluZSB0ZXJtaW5hdG9ycyAod2UgYWx3YXlzIG91dHB1dCBDUkxGLCBidXQgYWNjZXB0IGFueSBvZiBDUkxGLCBDUiwgTEYpCkBAIC0xMjMsNyArMTI0LDcgQEAKICAgICAgICAgaWYgc2VsZi5zb2NrIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHNlbGYucXVpdCgpCi0gICAgICAgICAgICBleGNlcHQgKHNvY2tldC5lcnJvciwgRU9GRXJyb3IpOgorICAgICAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBFT0ZFcnJvcik6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICAgICBpZiBzZWxmLnNvY2sgaXMgbm90IE5vbmU6CkBAIC0xMzMsNiArMTM0LDcgQEAKICAgICAgICAgJycnQ29ubmVjdCB0byBob3N0LiAgQXJndW1lbnRzIGFyZToKICAgICAgICAgIC0gaG9zdDogaG9zdG5hbWUgdG8gY29ubmVjdCB0byAoc3RyaW5nLCBkZWZhdWx0IHByZXZpb3VzIGhvc3QpCiAgICAgICAgICAtIHBvcnQ6IHBvcnQgdG8gY29ubmVjdCB0byAoaW50ZWdlciwgZGVmYXVsdCBwcmV2aW91cyBwb3J0KQorICAgICAgICAgLSB0aW1lb3V0OiB0aGUgdGltZW91dCB0byBzZXQgYWdhaW5zdCB0aGUgZnRwIHNvY2tldChzKQogICAgICAgICAgLSBzb3VyY2VfYWRkcmVzczogYSAyLXR1cGxlIChob3N0LCBwb3J0KSBmb3IgdGhlIHNvY2tldCB0byBiaW5kCiAgICAgICAgICAgIHRvIGFzIGl0cyBzb3VyY2UgYWRkcmVzcyBiZWZvcmUgY29ubmVjdGluZy4KICAgICAgICAgJycnCkBAIC0xODMsNyArMTg1LDggQEAKICAgICAjIEludGVybmFsOiBzZW5kIG9uZSBsaW5lIHRvIHRoZSBzZXJ2ZXIsIGFwcGVuZGluZyBDUkxGCiAgICAgZGVmIHB1dGxpbmUoc2VsZiwgbGluZSk6CiAgICAgICAgIGxpbmUgPSBsaW5lICsgQ1JMRgotICAgICAgICBpZiBzZWxmLmRlYnVnZ2luZyA+IDE6IHByaW50KCcqcHV0KicsIHNlbGYuc2FuaXRpemUobGluZSkpCisgICAgICAgIGlmIHNlbGYuZGVidWdnaW5nID4gMToKKyAgICAgICAgICAgIHByaW50KCcqcHV0KicsIHNlbGYuc2FuaXRpemUobGluZSkpCiAgICAgICAgIHNlbGYuc29jay5zZW5kYWxsKGxpbmUuZW5jb2RlKHNlbGYuZW5jb2RpbmcpKQogCiAgICAgIyBJbnRlcm5hbDogc2VuZCBvbmUgY29tbWFuZCB0byB0aGUgc2VydmVyICh0aHJvdWdoIHB1dGxpbmUoKSkKQEAgLTE5Nyw5ICsyMDAsMTIgQEAKICAgICAgICAgbGluZSA9IHNlbGYuZmlsZS5yZWFkbGluZSgpCiAgICAgICAgIGlmIHNlbGYuZGVidWdnaW5nID4gMToKICAgICAgICAgICAgIHByaW50KCcqZ2V0KicsIHNlbGYuc2FuaXRpemUobGluZSkpCi0gICAgICAgIGlmIG5vdCBsaW5lOiByYWlzZSBFT0ZFcnJvcgotICAgICAgICBpZiBsaW5lWy0yOl0gPT0gQ1JMRjogbGluZSA9IGxpbmVbOi0yXQotICAgICAgICBlbGlmIGxpbmVbLTE6XSBpbiBDUkxGOiBsaW5lID0gbGluZVs6LTFdCisgICAgICAgIGlmIG5vdCBsaW5lOgorICAgICAgICAgICAgcmFpc2UgRU9GRXJyb3IKKyAgICAgICAgaWYgbGluZVstMjpdID09IENSTEY6CisgICAgICAgICAgICBsaW5lID0gbGluZVs6LTJdCisgICAgICAgIGVsaWYgbGluZVstMTpdIGluIENSTEY6CisgICAgICAgICAgICBsaW5lID0gbGluZVs6LTFdCiAgICAgICAgIHJldHVybiBsaW5lCiAKICAgICAjIEludGVybmFsOiBnZXQgYSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIsIHdoaWNoIG1heSBwb3NzaWJseQpAQCAtMjIyLDcgKzIyOCw4IEBACiAgICAgIyBSYWlzZSB2YXJpb3VzIGVycm9ycyBpZiB0aGUgcmVzcG9uc2UgaW5kaWNhdGVzIGFuIGVycm9yCiAgICAgZGVmIGdldHJlc3Aoc2VsZik6CiAgICAgICAgIHJlc3AgPSBzZWxmLmdldG11bHRpbGluZSgpCi0gICAgICAgIGlmIHNlbGYuZGVidWdnaW5nOiBwcmludCgnKnJlc3AqJywgc2VsZi5zYW5pdGl6ZShyZXNwKSkKKyAgICAgICAgaWYgc2VsZi5kZWJ1Z2dpbmc6CisgICAgICAgICAgICBwcmludCgnKnJlc3AqJywgc2VsZi5zYW5pdGl6ZShyZXNwKSkKICAgICAgICAgc2VsZi5sYXN0cmVzcCA9IHJlc3BbOjNdCiAgICAgICAgIGMgPSByZXNwWzoxXQogICAgICAgICBpZiBjIGluIHsnMScsICcyJywgJzMnfToKQEAgLTI0Niw3ICsyNTMsOCBAQAogICAgICAgICBJUCBhbmQgU3luY2g7IHRoYXQgZG9lc24ndCBzZWVtIHRvIHdvcmsgd2l0aCB0aGUgc2VydmVycyBJJ3ZlCiAgICAgICAgIHRyaWVkLiAgSW5zdGVhZCwganVzdCBzZW5kIHRoZSBBQk9SIGNvbW1hbmQgYXMgT09CIGRhdGEuJycnCiAgICAgICAgIGxpbmUgPSBiJ0FCT1InICsgQl9DUkxGCi0gICAgICAgIGlmIHNlbGYuZGVidWdnaW5nID4gMTogcHJpbnQoJypwdXQgdXJnZW50KicsIHNlbGYuc2FuaXRpemUobGluZSkpCisgICAgICAgIGlmIHNlbGYuZGVidWdnaW5nID4gMToKKyAgICAgICAgICAgIHByaW50KCcqcHV0IHVyZ2VudConLCBzZWxmLnNhbml0aXplKGxpbmUpKQogICAgICAgICBzZWxmLnNvY2suc2VuZGFsbChsaW5lLCBNU0dfT09CKQogICAgICAgICByZXNwID0gc2VsZi5nZXRtdWx0aWxpbmUoKQogICAgICAgICBpZiByZXNwWzozXSBub3QgaW4geyc0MjYnLCAnMjI1JywgJzIyNid9OgpAQCAtMjk1LDcgKzMwMyw3IEBACiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc29jayA9IHNvY2tldC5zb2NrZXQoYWYsIHNvY2t0eXBlLCBwcm90bykKICAgICAgICAgICAgICAgICBzb2NrLmJpbmQoc2EpCi0gICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIF86CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBfOgogICAgICAgICAgICAgICAgIGVyciA9IF8KICAgICAgICAgICAgICAgICBpZiBzb2NrOgogICAgICAgICAgICAgICAgICAgICBzb2NrLmNsb3NlKCkKQEAgLTMwNiw4ICszMTQsOCBAQAogICAgICAgICAgICAgaWYgZXJyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgIHJhaXNlIGVycgogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBzb2NrZXQuZXJyb3IoImdldGFkZHJpbmZvIHJldHVybnMgYW4gZW1wdHkgbGlzdCIpCi0gICAgICAgICAgICByYWlzZSBzb2NrZXQuZXJyb3IobXNnKQorICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoImdldGFkZHJpbmZvIHJldHVybnMgYW4gZW1wdHkgbGlzdCIpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKG1zZykKICAgICAgICAgc29jay5saXN0ZW4oMSkKICAgICAgICAgcG9ydCA9IHNvY2suZ2V0c29ja25hbWUoKVsxXSAjIEdldCBwcm9wZXIgcG9ydAogICAgICAgICBob3N0ID0gc2VsZi5zb2NrLmdldHNvY2tuYW1lKClbMF0gIyBHZXQgcHJvcGVyIGhvc3QKQEAgLTM4Nyw5ICszOTUsMTIgQEAKIAogICAgIGRlZiBsb2dpbihzZWxmLCB1c2VyID0gJycsIHBhc3N3ZCA9ICcnLCBhY2N0ID0gJycpOgogICAgICAgICAnJydMb2dpbiwgZGVmYXVsdCBhbm9ueW1vdXMuJycnCi0gICAgICAgIGlmIG5vdCB1c2VyOiB1c2VyID0gJ2Fub255bW91cycKLSAgICAgICAgaWYgbm90IHBhc3N3ZDogcGFzc3dkID0gJycKLSAgICAgICAgaWYgbm90IGFjY3Q6IGFjY3QgPSAnJworICAgICAgICBpZiBub3QgdXNlcjoKKyAgICAgICAgICAgIHVzZXIgPSAnYW5vbnltb3VzJworICAgICAgICBpZiBub3QgcGFzc3dkOgorICAgICAgICAgICAgcGFzc3dkID0gJycKKyAgICAgICAgaWYgbm90IGFjY3Q6CisgICAgICAgICAgICBhY2N0ID0gJycKICAgICAgICAgaWYgdXNlciA9PSAnYW5vbnltb3VzJyBhbmQgcGFzc3dkIGluIHsnJywgJy0nfToKICAgICAgICAgICAgICMgSWYgdGhlcmUgaXMgbm8gYW5vbnltb3VzIGZ0cCBwYXNzd29yZCBzcGVjaWZpZWQKICAgICAgICAgICAgICMgdGhlbiB3ZSdsbCBqdXN0IHVzZSBhbm9ueW1vdXNACkBAIC00MDAsOCArNDExLDEwIEBACiAgICAgICAgICAgICAjICAgaG9zdCBvciBjb3VudHJ5LgogICAgICAgICAgICAgcGFzc3dkID0gcGFzc3dkICsgJ2Fub255bW91c0AnCiAgICAgICAgIHJlc3AgPSBzZWxmLnNlbmRjbWQoJ1VTRVIgJyArIHVzZXIpCi0gICAgICAgIGlmIHJlc3BbMF0gPT0gJzMnOiByZXNwID0gc2VsZi5zZW5kY21kKCdQQVNTICcgKyBwYXNzd2QpCi0gICAgICAgIGlmIHJlc3BbMF0gPT0gJzMnOiByZXNwID0gc2VsZi5zZW5kY21kKCdBQ0NUICcgKyBhY2N0KQorICAgICAgICBpZiByZXNwWzBdID09ICczJzoKKyAgICAgICAgICAgIHJlc3AgPSBzZWxmLnNlbmRjbWQoJ1BBU1MgJyArIHBhc3N3ZCkKKyAgICAgICAgaWYgcmVzcFswXSA9PSAnMyc6CisgICAgICAgICAgICByZXNwID0gc2VsZi5zZW5kY21kKCdBQ0NUICcgKyBhY2N0KQogICAgICAgICBpZiByZXNwWzBdICE9ICcyJzoKICAgICAgICAgICAgIHJhaXNlIGVycm9yX3JlcGx5KHJlc3ApCiAgICAgICAgIHJldHVybiByZXNwCkBAIC00MjcsNiArNDQwLDkgQEAKICAgICAgICAgICAgICAgICBpZiBub3QgZGF0YToKICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICBjYWxsYmFjayhkYXRhKQorICAgICAgICAgICAgIyBzaHV0ZG93biBzc2wgbGF5ZXIKKyAgICAgICAgICAgIGlmIF9TU0xTb2NrZXQgaXMgbm90IE5vbmUgYW5kIGlzaW5zdGFuY2UoY29ubiwgX1NTTFNvY2tldCk6CisgICAgICAgICAgICAgICAgY29ubi51bndyYXAoKQogICAgICAgICByZXR1cm4gc2VsZi52b2lkcmVzcCgpCiAKICAgICBkZWYgcmV0cmxpbmVzKHNlbGYsIGNtZCwgY2FsbGJhY2sgPSBOb25lKToKQEAgLTQ0MSwxMyArNDU3LDE1IEBACiAgICAgICAgIFJldHVybnM6CiAgICAgICAgICAgVGhlIHJlc3BvbnNlIGNvZGUuCiAgICAgICAgICIiIgotICAgICAgICBpZiBjYWxsYmFjayBpcyBOb25lOiBjYWxsYmFjayA9IHByaW50X2xpbmUKKyAgICAgICAgaWYgY2FsbGJhY2sgaXMgTm9uZToKKyAgICAgICAgICAgIGNhbGxiYWNrID0gcHJpbnRfbGluZQogICAgICAgICByZXNwID0gc2VsZi5zZW5kY21kKCdUWVBFIEEnKQogICAgICAgICB3aXRoIHNlbGYudHJhbnNmZXJjbWQoY21kKSBhcyBjb25uLCBcCiAgICAgICAgICAgICAgICAgIGNvbm4ubWFrZWZpbGUoJ3InLCBlbmNvZGluZz1zZWxmLmVuY29kaW5nKSBhcyBmcDoKICAgICAgICAgICAgIHdoaWxlIDE6CiAgICAgICAgICAgICAgICAgbGluZSA9IGZwLnJlYWRsaW5lKCkKLSAgICAgICAgICAgICAgICBpZiBzZWxmLmRlYnVnZ2luZyA+IDI6IHByaW50KCcqcmV0cionLCByZXByKGxpbmUpKQorICAgICAgICAgICAgICAgIGlmIHNlbGYuZGVidWdnaW5nID4gMjoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJypyZXRyKicsIHJlcHIobGluZSkpCiAgICAgICAgICAgICAgICAgaWYgbm90IGxpbmU6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgaWYgbGluZVstMjpdID09IENSTEY6CkBAIC00NTUsNiArNDczLDkgQEAKICAgICAgICAgICAgICAgICBlbGlmIGxpbmVbLTE6XSA9PSAnXG4nOgogICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZVs6LTFdCiAgICAgICAgICAgICAgICAgY2FsbGJhY2sobGluZSkKKyAgICAgICAgICAgICMgc2h1dGRvd24gc3NsIGxheWVyCisgICAgICAgICAgICBpZiBfU1NMU29ja2V0IGlzIG5vdCBOb25lIGFuZCBpc2luc3RhbmNlKGNvbm4sIF9TU0xTb2NrZXQpOgorICAgICAgICAgICAgICAgIGNvbm4udW53cmFwKCkKICAgICAgICAgcmV0dXJuIHNlbGYudm9pZHJlc3AoKQogCiAgICAgZGVmIHN0b3JiaW5hcnkoc2VsZiwgY21kLCBmcCwgYmxvY2tzaXplPTgxOTIsIGNhbGxiYWNrPU5vbmUsIHJlc3Q9Tm9uZSk6CkBAIC00NzYsOSArNDk3LDE0IEBACiAgICAgICAgIHdpdGggc2VsZi50cmFuc2ZlcmNtZChjbWQsIHJlc3QpIGFzIGNvbm46CiAgICAgICAgICAgICB3aGlsZSAxOgogICAgICAgICAgICAgICAgIGJ1ZiA9IGZwLnJlYWQoYmxvY2tzaXplKQotICAgICAgICAgICAgICAgIGlmIG5vdCBidWY6IGJyZWFrCisgICAgICAgICAgICAgICAgaWYgbm90IGJ1ZjoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICBjb25uLnNlbmRhbGwoYnVmKQotICAgICAgICAgICAgICAgIGlmIGNhbGxiYWNrOiBjYWxsYmFjayhidWYpCisgICAgICAgICAgICAgICAgaWYgY2FsbGJhY2s6CisgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGJ1ZikKKyAgICAgICAgICAgICMgc2h1dGRvd24gc3NsIGxheWVyCisgICAgICAgICAgICBpZiBfU1NMU29ja2V0IGlzIG5vdCBOb25lIGFuZCBpc2luc3RhbmNlKGNvbm4sIF9TU0xTb2NrZXQpOgorICAgICAgICAgICAgICAgIGNvbm4udW53cmFwKCkKICAgICAgICAgcmV0dXJuIHNlbGYudm9pZHJlc3AoKQogCiAgICAgZGVmIHN0b3JsaW5lcyhzZWxmLCBjbWQsIGZwLCBjYWxsYmFjaz1Ob25lKToKQEAgLTQ5NywxMiArNTIzLDE3IEBACiAgICAgICAgIHdpdGggc2VsZi50cmFuc2ZlcmNtZChjbWQpIGFzIGNvbm46CiAgICAgICAgICAgICB3aGlsZSAxOgogICAgICAgICAgICAgICAgIGJ1ZiA9IGZwLnJlYWRsaW5lKCkKLSAgICAgICAgICAgICAgICBpZiBub3QgYnVmOiBicmVhaworICAgICAgICAgICAgICAgIGlmIG5vdCBidWY6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgaWYgYnVmWy0yOl0gIT0gQl9DUkxGOgogICAgICAgICAgICAgICAgICAgICBpZiBidWZbLTFdIGluIEJfQ1JMRjogYnVmID0gYnVmWzotMV0KICAgICAgICAgICAgICAgICAgICAgYnVmID0gYnVmICsgQl9DUkxGCiAgICAgICAgICAgICAgICAgY29ubi5zZW5kYWxsKGJ1ZikKLSAgICAgICAgICAgICAgICBpZiBjYWxsYmFjazogY2FsbGJhY2soYnVmKQorICAgICAgICAgICAgICAgIGlmIGNhbGxiYWNrOgorICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhidWYpCisgICAgICAgICAgICAjIHNodXRkb3duIHNzbCBsYXllcgorICAgICAgICAgICAgaWYgX1NTTFNvY2tldCBpcyBub3QgTm9uZSBhbmQgaXNpbnN0YW5jZShjb25uLCBfU1NMU29ja2V0KToKKyAgICAgICAgICAgICAgICBjb25uLnVud3JhcCgpCiAgICAgICAgIHJldHVybiBzZWxmLnZvaWRyZXNwKCkKIAogICAgIGRlZiBhY2N0KHNlbGYsIHBhc3N3b3JkKToKQEAgLTYzNyw4ICs2NjgsMTAgQEAKIHRyeToKICAgICBpbXBvcnQgc3NsCiBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgcGFzcworICAgIF9TU0xTb2NrZXQgPSBOb25lCiBlbHNlOgorICAgIF9TU0xTb2NrZXQgPSBzc2wuU1NMU29ja2V0CisKICAgICBjbGFzcyBGVFBfVExTKEZUUCk6CiAgICAgICAgICcnJ0EgRlRQIHN1YmNsYXNzIHdoaWNoIGFkZHMgVExTIHN1cHBvcnQgdG8gRlRQIGFzIGRlc2NyaWJlZAogICAgICAgICBpbiBSRkMtNDIxNy4KQEAgLTc1Myw2OSArNzg2LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2xfdmVyc2lvbj1zZWxmLnNzbF92ZXJzaW9uKQogICAgICAgICAgICAgcmV0dXJuIGNvbm4sIHNpemUKIAotICAgICAgICBkZWYgcmV0cmJpbmFyeShzZWxmLCBjbWQsIGNhbGxiYWNrLCBibG9ja3NpemU9ODE5MiwgcmVzdD1Ob25lKToKLSAgICAgICAgICAgIHNlbGYudm9pZGNtZCgnVFlQRSBJJykKLSAgICAgICAgICAgIHdpdGggc2VsZi50cmFuc2ZlcmNtZChjbWQsIHJlc3QpIGFzIGNvbm46Ci0gICAgICAgICAgICAgICAgd2hpbGUgMToKLSAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGNvbm4ucmVjdihibG9ja3NpemUpCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBkYXRhOgotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZGF0YSkKLSAgICAgICAgICAgICAgICAjIHNodXRkb3duIHNzbCBsYXllcgotICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY29ubiwgc3NsLlNTTFNvY2tldCk6Ci0gICAgICAgICAgICAgICAgICAgIGNvbm4udW53cmFwKCkKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnZvaWRyZXNwKCkKLQotICAgICAgICBkZWYgcmV0cmxpbmVzKHNlbGYsIGNtZCwgY2FsbGJhY2sgPSBOb25lKToKLSAgICAgICAgICAgIGlmIGNhbGxiYWNrIGlzIE5vbmU6IGNhbGxiYWNrID0gcHJpbnRfbGluZQotICAgICAgICAgICAgcmVzcCA9IHNlbGYuc2VuZGNtZCgnVFlQRSBBJykKLSAgICAgICAgICAgIGNvbm4gPSBzZWxmLnRyYW5zZmVyY21kKGNtZCkKLSAgICAgICAgICAgIGZwID0gY29ubi5tYWtlZmlsZSgncicsIGVuY29kaW5nPXNlbGYuZW5jb2RpbmcpCi0gICAgICAgICAgICB3aXRoIGZwLCBjb25uOgotICAgICAgICAgICAgICAgIHdoaWxlIDE6Ci0gICAgICAgICAgICAgICAgICAgIGxpbmUgPSBmcC5yZWFkbGluZSgpCi0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuZGVidWdnaW5nID4gMjogcHJpbnQoJypyZXRyKicsIHJlcHIobGluZSkpCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBsaW5lOgotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgaWYgbGluZVstMjpdID09IENSTEY6Ci0gICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZVs6LTJdCi0gICAgICAgICAgICAgICAgICAgIGVsaWYgbGluZVstMTpdID09ICdcbic6Ci0gICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZVs6LTFdCi0gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGxpbmUpCi0gICAgICAgICAgICAgICAgIyBzaHV0ZG93biBzc2wgbGF5ZXIKLSAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGNvbm4sIHNzbC5TU0xTb2NrZXQpOgotICAgICAgICAgICAgICAgICAgICBjb25uLnVud3JhcCgpCi0gICAgICAgICAgICByZXR1cm4gc2VsZi52b2lkcmVzcCgpCi0KLSAgICAgICAgZGVmIHN0b3JiaW5hcnkoc2VsZiwgY21kLCBmcCwgYmxvY2tzaXplPTgxOTIsIGNhbGxiYWNrPU5vbmUsIHJlc3Q9Tm9uZSk6Ci0gICAgICAgICAgICBzZWxmLnZvaWRjbWQoJ1RZUEUgSScpCi0gICAgICAgICAgICB3aXRoIHNlbGYudHJhbnNmZXJjbWQoY21kLCByZXN0KSBhcyBjb25uOgotICAgICAgICAgICAgICAgIHdoaWxlIDE6Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZiA9IGZwLnJlYWQoYmxvY2tzaXplKQotICAgICAgICAgICAgICAgICAgICBpZiBub3QgYnVmOiBicmVhawotICAgICAgICAgICAgICAgICAgICBjb25uLnNlbmRhbGwoYnVmKQotICAgICAgICAgICAgICAgICAgICBpZiBjYWxsYmFjazogY2FsbGJhY2soYnVmKQotICAgICAgICAgICAgICAgICMgc2h1dGRvd24gc3NsIGxheWVyCi0gICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShjb25uLCBzc2wuU1NMU29ja2V0KToKLSAgICAgICAgICAgICAgICAgICAgY29ubi51bndyYXAoKQotICAgICAgICAgICAgcmV0dXJuIHNlbGYudm9pZHJlc3AoKQotCi0gICAgICAgIGRlZiBzdG9ybGluZXMoc2VsZiwgY21kLCBmcCwgY2FsbGJhY2s9Tm9uZSk6Ci0gICAgICAgICAgICBzZWxmLnZvaWRjbWQoJ1RZUEUgQScpCi0gICAgICAgICAgICB3aXRoIHNlbGYudHJhbnNmZXJjbWQoY21kKSBhcyBjb25uOgotICAgICAgICAgICAgICAgIHdoaWxlIDE6Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZiA9IGZwLnJlYWRsaW5lKCkKLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IGJ1ZjogYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgaWYgYnVmWy0yOl0gIT0gQl9DUkxGOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgYnVmWy0xXSBpbiBCX0NSTEY6IGJ1ZiA9IGJ1Zls6LTFdCi0gICAgICAgICAgICAgICAgICAgICAgICBidWYgPSBidWYgKyBCX0NSTEYKLSAgICAgICAgICAgICAgICAgICAgY29ubi5zZW5kYWxsKGJ1ZikKLSAgICAgICAgICAgICAgICAgICAgaWYgY2FsbGJhY2s6IGNhbGxiYWNrKGJ1ZikKLSAgICAgICAgICAgICAgICAjIHNodXRkb3duIHNzbCBsYXllcgotICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY29ubiwgc3NsLlNTTFNvY2tldCk6Ci0gICAgICAgICAgICAgICAgICAgIGNvbm4udW53cmFwKCkKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnZvaWRyZXNwKCkKLQogICAgICAgICBkZWYgYWJvcnQoc2VsZik6CiAgICAgICAgICAgICAjIG92ZXJyaWRkZW4gYXMgd2UgY2FuJ3QgcGFzcyBNU0dfT09CIGZsYWcgdG8gc2VuZGFsbCgpCiAgICAgICAgICAgICBsaW5lID0gYidBQk9SJyArIEJfQ1JMRgpAQCAtODI2LDcgKzc5Niw3IEBACiAgICAgICAgICAgICByZXR1cm4gcmVzcAogCiAgICAgX19hbGxfXy5hcHBlbmQoJ0ZUUF9UTFMnKQotICAgIGFsbF9lcnJvcnMgPSAoRXJyb3IsIElPRXJyb3IsIEVPRkVycm9yLCBzc2wuU1NMRXJyb3IpCisgICAgYWxsX2Vycm9ycyA9IChFcnJvciwgT1NFcnJvciwgRU9GRXJyb3IsIHNzbC5TU0xFcnJvcikKIAogCiBfMTUwX3JlID0gTm9uZQpAQCAtOTIzLDcgKzg5Myw4IEBACiAKIGRlZiBmdHBjcChzb3VyY2UsIHNvdXJjZW5hbWUsIHRhcmdldCwgdGFyZ2V0bmFtZSA9ICcnLCB0eXBlID0gJ0knKToKICAgICAnJydDb3B5IGZpbGUgZnJvbSBvbmUgRlRQLWluc3RhbmNlIHRvIGFub3RoZXIuJycnCi0gICAgaWYgbm90IHRhcmdldG5hbWU6IHRhcmdldG5hbWUgPSBzb3VyY2VuYW1lCisgICAgaWYgbm90IHRhcmdldG5hbWU6CisgICAgICAgIHRhcmdldG5hbWUgPSBzb3VyY2VuYW1lCiAgICAgdHlwZSA9ICdUWVBFICcgKyB0eXBlCiAgICAgc291cmNlLnZvaWRjbWQodHlwZSkKICAgICB0YXJnZXQudm9pZGNtZCh0eXBlKQpAQCAtOTMzLDkgKzkwNCwxMSBAQAogICAgICMgdHJhbnNmZXIgcmVxdWVzdC4KICAgICAjIFNvOiBTVE9SIGJlZm9yZSBSRVRSLCBiZWNhdXNlIGhlcmUgdGhlIHRhcmdldCBpcyBhICJ1c2VyIi4KICAgICB0cmVwbHkgPSB0YXJnZXQuc2VuZGNtZCgnU1RPUiAnICsgdGFyZ2V0bmFtZSkKLSAgICBpZiB0cmVwbHlbOjNdIG5vdCBpbiB7JzEyNScsICcxNTAnfTogcmFpc2UgZXJyb3JfcHJvdG8gICMgUkZDIDk1OQorICAgIGlmIHRyZXBseVs6M10gbm90IGluIHsnMTI1JywgJzE1MCd9OgorICAgICAgICByYWlzZSBlcnJvcl9wcm90byAgIyBSRkMgOTU5CiAgICAgc3JlcGx5ID0gc291cmNlLnNlbmRjbWQoJ1JFVFIgJyArIHNvdXJjZW5hbWUpCi0gICAgaWYgc3JlcGx5WzozXSBub3QgaW4geycxMjUnLCAnMTUwJ306IHJhaXNlIGVycm9yX3Byb3RvICAjIFJGQyA5NTkKKyAgICBpZiBzcmVwbHlbOjNdIG5vdCBpbiB7JzEyNScsICcxNTAnfToKKyAgICAgICAgcmFpc2UgZXJyb3JfcHJvdG8gICMgUkZDIDk1OQogICAgIHNvdXJjZS52b2lkcmVzcCgpCiAgICAgdGFyZ2V0LnZvaWRyZXNwKCkKIApAQCAtOTUzLDE5ICs5MjYsMjIgQEAKICAgICBfX2RlZmFjY3QgPSBOb25lCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZW5hbWU9Tm9uZSk6CisgICAgICAgIHdhcm5pbmdzLndhcm4oIlRoaXMgY2xhc3MgaXMgZGVwcmVjYXRlZCwgdXNlIHRoZSBuZXRyYyBtb2R1bGUgaW5zdGVhZCIsCisgICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQogICAgICAgICBpZiBmaWxlbmFtZSBpcyBOb25lOgogICAgICAgICAgICAgaWYgIkhPTUUiIGluIG9zLmVudmlyb246CiAgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmpvaW4ob3MuZW52aXJvblsiSE9NRSJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIubmV0cmMiKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBJT0Vycm9yKCJzcGVjaWZ5IGZpbGUgdG8gbG9hZCBvciBzZXQgJEhPTUUiKQorICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoInNwZWNpZnkgZmlsZSB0byBsb2FkIG9yIHNldCAkSE9NRSIpCiAgICAgICAgIHNlbGYuX19ob3N0cyA9IHt9CiAgICAgICAgIHNlbGYuX19tYWNyb3MgPSB7fQogICAgICAgICBmcCA9IG9wZW4oZmlsZW5hbWUsICJyIikKICAgICAgICAgaW5fbWFjcm8gPSAwCiAgICAgICAgIHdoaWxlIDE6CiAgICAgICAgICAgICBsaW5lID0gZnAucmVhZGxpbmUoKQotICAgICAgICAgICAgaWYgbm90IGxpbmU6IGJyZWFrCisgICAgICAgICAgICBpZiBub3QgbGluZToKKyAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgaWYgaW5fbWFjcm8gYW5kIGxpbmUuc3RyaXAoKToKICAgICAgICAgICAgICAgICBtYWNyb19saW5lcy5hcHBlbmQobGluZSkKICAgICAgICAgICAgICAgICBjb250aW51ZQpAQCAtMTA3NCw3ICsxMDUwLDcgQEAKICAgICB1c2VyaWQgPSBwYXNzd2QgPSBhY2N0ID0gJycKICAgICB0cnk6CiAgICAgICAgIG5ldHJjID0gTmV0cmMocmNmaWxlKQotICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICBpZiByY2ZpbGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJDb3VsZCBub3Qgb3BlbiBhY2NvdW50IGZpbGUiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgLS0gdXNpbmcgYW5vbnltb3VzIGxvZ2luLiIpCmRpZmYgLS1naXQgYS9MaWIvZnVuY3Rvb2xzLnB5IGIvTGliL2Z1bmN0b29scy5weQppbmRleCAwNTNlNDRlLi42N2FmMzcwIDEwMDY0NAotLS0gYS9MaWIvZnVuY3Rvb2xzLnB5CisrKyBiL0xpYi9mdW5jdG9vbHMucHkKQEAgLTMsMTYgKzMsMjQgQEAKICMgUHl0aG9uIG1vZHVsZSB3cmFwcGVyIGZvciBfZnVuY3Rvb2xzIEMgbW9kdWxlCiAjIHRvIGFsbG93IHV0aWxpdGllcyB3cml0dGVuIGluIFB5dGhvbiB0byBiZSBhZGRlZAogIyB0byB0aGUgZnVuY3Rvb2xzIG1vZHVsZS4KLSMgV3JpdHRlbiBieSBOaWNrIENvZ2hsYW4gPG5jb2dobGFuIGF0IGdtYWlsLmNvbT4KLSMgYW5kIFJheW1vbmQgSGV0dGluZ2VyIDxweXRob24gYXQgcmNuLmNvbT4KLSMgICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMCBQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbi4KKyMgV3JpdHRlbiBieSBOaWNrIENvZ2hsYW4gPG5jb2dobGFuIGF0IGdtYWlsLmNvbT4sCisjIFJheW1vbmQgSGV0dGluZ2VyIDxweXRob24gYXQgcmNuLmNvbT4sCisjIGFuZCDFgXVrYXN6IExhbmdhIDxsdWthc3ogYXQgbGFuZ2EucGw+LgorIyAgIENvcHlyaWdodCAoQykgMjAwNi0yMDEzIFB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogIyBTZWUgQyBzb3VyY2UgY29kZSBmb3IgX2Z1bmN0b29scyBjcmVkaXRzL2NvcHlyaWdodAogCiBfX2FsbF9fID0gWyd1cGRhdGVfd3JhcHBlcicsICd3cmFwcycsICdXUkFQUEVSX0FTU0lHTk1FTlRTJywgJ1dSQVBQRVJfVVBEQVRFUycsCi0gICAgICAgICAgICd0b3RhbF9vcmRlcmluZycsICdjbXBfdG9fa2V5JywgJ2xydV9jYWNoZScsICdyZWR1Y2UnLCAncGFydGlhbCddCisgICAgICAgICAgICd0b3RhbF9vcmRlcmluZycsICdjbXBfdG9fa2V5JywgJ2xydV9jYWNoZScsICdyZWR1Y2UnLCAncGFydGlhbCcsCisgICAgICAgICAgICdzaW5nbGVkaXNwYXRjaCddCiAKLWZyb20gX2Z1bmN0b29scyBpbXBvcnQgcGFydGlhbCwgcmVkdWNlCit0cnk6CisgICAgZnJvbSBfZnVuY3Rvb2xzIGltcG9ydCByZWR1Y2UKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBwYXNzCitmcm9tIGFiYyBpbXBvcnQgZ2V0X2NhY2hlX3Rva2VuCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCitmcm9tIHR5cGVzIGltcG9ydCBNYXBwaW5nUHJveHlUeXBlCitmcm9tIHdlYWtyZWYgaW1wb3J0IFdlYWtLZXlEaWN0aW9uYXJ5CiB0cnk6CiAgICAgZnJvbSBfdGhyZWFkIGltcG9ydCBSTG9jawogZXhjZXB0OgpAQCAtMTQwLDYgKzE0OCwyOSBAQAogCiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyMgcGFydGlhbCgpIGFyZ3VtZW50IGFwcGxpY2F0aW9uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitkZWYgcGFydGlhbChmdW5jLCAqYXJncywgKiprZXl3b3Jkcyk6CisgICAgIiIibmV3IGZ1bmN0aW9uIHdpdGggcGFydGlhbCBhcHBsaWNhdGlvbiBvZiB0aGUgZ2l2ZW4gYXJndW1lbnRzCisgICAgYW5kIGtleXdvcmRzLgorICAgICIiIgorICAgIGRlZiBuZXdmdW5jKCpmYXJncywgKipma2V5d29yZHMpOgorICAgICAgICBuZXdrZXl3b3JkcyA9IGtleXdvcmRzLmNvcHkoKQorICAgICAgICBuZXdrZXl3b3Jkcy51cGRhdGUoZmtleXdvcmRzKQorICAgICAgICByZXR1cm4gZnVuYygqKGFyZ3MgKyBmYXJncyksICoqbmV3a2V5d29yZHMpCisgICAgbmV3ZnVuYy5mdW5jID0gZnVuYworICAgIG5ld2Z1bmMuYXJncyA9IGFyZ3MKKyAgICBuZXdmdW5jLmtleXdvcmRzID0ga2V5d29yZHMKKyAgICByZXR1cm4gbmV3ZnVuYworCit0cnk6CisgICAgZnJvbSBfZnVuY3Rvb2xzIGltcG9ydCBwYXJ0aWFsCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgcGFzcworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMgTFJVIENhY2hlIGZ1bmN0aW9uIGRlY29yYXRvcgogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIApAQCAtMjIwLDcgKzI1MSw2IEBACiAgICAgUFJFViwgTkVYVCwgS0VZLCBSRVNVTFQgPSAwLCAxLCAyLCAzICAgIyBuYW1lcyBmb3IgdGhlIGxpbmsgZmllbGRzCiAKICAgICBkZWYgZGVjb3JhdGluZ19mdW5jdGlvbih1c2VyX2Z1bmN0aW9uKToKLQogICAgICAgICBjYWNoZSA9IHt9CiAgICAgICAgIGhpdHMgPSBtaXNzZXMgPSAwCiAgICAgICAgIGZ1bGwgPSBGYWxzZQpAQCAtMzI5LDMgKzM1OSwxMTggQEAKICAgICAgICAgcmV0dXJuIHVwZGF0ZV93cmFwcGVyKHdyYXBwZXIsIHVzZXJfZnVuY3Rpb24pCiAKICAgICByZXR1cm4gZGVjb3JhdGluZ19mdW5jdGlvbgorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyMgc2luZ2xlZGlzcGF0Y2goKSAtIHNpbmdsZS1kaXNwYXRjaCBnZW5lcmljIGZ1bmN0aW9uIGRlY29yYXRvcgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZGVmIF9jb21wb3NlX21ybyhjbHMsIGhheXN0YWNrKToKKyAgICAiIiJDYWxjdWxhdGVzIHRoZSBNUk8gZm9yIGEgZ2l2ZW4gY2xhc3MgYGNsc2AsIGluY2x1ZGluZyByZWxldmFudCBhYnN0cmFjdAorICAgIGJhc2UgY2xhc3NlcyBmcm9tIGBoYXlzdGFja2AuCisKKyAgICAiIiIKKyAgICBiYXNlcyA9IHNldChjbHMuX19tcm9fXykKKyAgICBtcm8gPSBsaXN0KGNscy5fX21yb19fKQorICAgIGZvciBuZWVkbGUgaW4gaGF5c3RhY2s6CisgICAgICAgIGlmIChuZWVkbGUgaW4gYmFzZXMgb3Igbm90IGhhc2F0dHIobmVlZGxlLCAnX19tcm9fXycpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Igbm90IGlzc3ViY2xhc3MoY2xzLCBuZWVkbGUpKToKKyAgICAgICAgICAgIGNvbnRpbnVlICAgIyBlaXRoZXIgcHJlc2VudCBpbiB0aGUgX19tcm9fXyBhbHJlYWR5IG9yIHVucmVsYXRlZAorICAgICAgICBmb3IgaW5kZXgsIGJhc2UgaW4gZW51bWVyYXRlKG1ybyk6CisgICAgICAgICAgICBpZiBub3QgaXNzdWJjbGFzcyhiYXNlLCBuZWVkbGUpOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGlmIGJhc2UgaW4gYmFzZXMgYW5kIG5vdCBpc3N1YmNsYXNzKG5lZWRsZSwgYmFzZSk6CisgICAgICAgICAgICAjIENvbmZsaWN0IHJlc29sdXRpb246IHB1dCBjbGFzc2VzIHByZXNlbnQgaW4gX19tcm9fXyBhbmQgdGhlaXIKKyAgICAgICAgICAgICMgc3ViY2xhc3NlcyBmaXJzdC4gU2VlIHRlc3RfbXJvX2NvbmZsaWN0cygpIGluIHRlc3RfZnVuY3Rvb2xzLnB5CisgICAgICAgICAgICAjIGZvciBleGFtcGxlcy4KKyAgICAgICAgICAgIGluZGV4ICs9IDEKKyAgICAgICAgbXJvLmluc2VydChpbmRleCwgbmVlZGxlKQorICAgIHJldHVybiBtcm8KKworZGVmIF9maW5kX2ltcGwoY2xzLCByZWdpc3RyeSk6CisgICAgIiIiUmV0dXJucyB0aGUgYmVzdCBtYXRjaGluZyBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIGdpdmVuIGNsYXNzIGBjbHNgIGluCisgICAgYHJlZ2lzdHJ5YC4gV2hlcmUgdGhlcmUgaXMgbm8gcmVnaXN0ZXJlZCBpbXBsZW1lbnRhdGlvbiBmb3IgYSBzcGVjaWZpYworICAgIHR5cGUsIGl0cyBtZXRob2QgcmVzb2x1dGlvbiBvcmRlciBpcyB1c2VkIHRvIGZpbmQgYSBtb3JlIGdlbmVyaWMKKyAgICBpbXBsZW1lbnRhdGlvbi4KKworICAgIE5vdGU6IGlmIGByZWdpc3RyeWAgZG9lcyBub3QgY29udGFpbiBhbiBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIGJhc2UKKyAgICBgb2JqZWN0YCB0eXBlLCB0aGlzIGZ1bmN0aW9uIG1heSByZXR1cm4gTm9uZS4KKworICAgICIiIgorICAgIG1ybyA9IF9jb21wb3NlX21ybyhjbHMsIHJlZ2lzdHJ5LmtleXMoKSkKKyAgICBtYXRjaCA9IE5vbmUKKyAgICBmb3IgdCBpbiBtcm86CisgICAgICAgIGlmIG1hdGNoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIyBJZiBgbWF0Y2hgIGlzIGFuIEFCQyBidXQgdGhlcmUgaXMgYW5vdGhlciB1bnJlbGF0ZWQsIGVxdWFsbHkKKyAgICAgICAgICAgICMgbWF0Y2hpbmcgQUJDLiBSZWZ1c2UgdGhlIHRlbXB0YXRpb24gdG8gZ3Vlc3MuCisgICAgICAgICAgICBpZiAodCBpbiByZWdpc3RyeSBhbmQgbm90IGlzc3ViY2xhc3MobWF0Y2gsIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbWF0Y2ggbm90IGluIGNscy5fX21yb19fKToKKyAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIkFtYmlndW91cyBkaXNwYXRjaDoge30gb3Ige30iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgbWF0Y2gsIHQpKQorICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgaWYgdCBpbiByZWdpc3RyeToKKyAgICAgICAgICAgIG1hdGNoID0gdAorICAgIHJldHVybiByZWdpc3RyeS5nZXQobWF0Y2gpCisKK2RlZiBzaW5nbGVkaXNwYXRjaChmdW5jKToKKyAgICAiIiJTaW5nbGUtZGlzcGF0Y2ggZ2VuZXJpYyBmdW5jdGlvbiBkZWNvcmF0b3IuCisKKyAgICBUcmFuc2Zvcm1zIGEgZnVuY3Rpb24gaW50byBhIGdlbmVyaWMgZnVuY3Rpb24sIHdoaWNoIGNhbiBoYXZlIGRpZmZlcmVudAorICAgIGJlaGF2aW91cnMgZGVwZW5kaW5nIHVwb24gdGhlIHR5cGUgb2YgaXRzIGZpcnN0IGFyZ3VtZW50LiBUaGUgZGVjb3JhdGVkCisgICAgZnVuY3Rpb24gYWN0cyBhcyB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgYW5kIGFkZGl0aW9uYWwKKyAgICBpbXBsZW1lbnRhdGlvbnMgY2FuIGJlIHJlZ2lzdGVyZWQgdXNpbmcgdGhlICdyZWdpc3RlcigpJyBhdHRyaWJ1dGUgb2YKKyAgICB0aGUgZ2VuZXJpYyBmdW5jdGlvbi4KKworICAgICIiIgorICAgIHJlZ2lzdHJ5ID0ge30KKyAgICBkaXNwYXRjaF9jYWNoZSA9IFdlYWtLZXlEaWN0aW9uYXJ5KCkKKyAgICBjYWNoZV90b2tlbiA9IE5vbmUKKworICAgIGRlZiBkaXNwYXRjaCh0eXApOgorICAgICAgICAiIiJnZW5lcmljX2Z1bmMuZGlzcGF0Y2godHlwZSkgLT4gPGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uPgorCisgICAgICAgIFJ1bnMgdGhlIGRpc3BhdGNoIGFsZ29yaXRobSB0byByZXR1cm4gdGhlIGJlc3QgYXZhaWxhYmxlIGltcGxlbWVudGF0aW9uCisgICAgICAgIGZvciB0aGUgZ2l2ZW4gYHR5cGVgIHJlZ2lzdGVyZWQgb24gYGdlbmVyaWNfZnVuY2AuCisKKyAgICAgICAgIiIiCisgICAgICAgIG5vbmxvY2FsIGNhY2hlX3Rva2VuCisgICAgICAgIGlmIGNhY2hlX3Rva2VuIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgY3VycmVudF90b2tlbiA9IGdldF9jYWNoZV90b2tlbigpCisgICAgICAgICAgICBpZiBjYWNoZV90b2tlbiAhPSBjdXJyZW50X3Rva2VuOgorICAgICAgICAgICAgICAgIGRpc3BhdGNoX2NhY2hlLmNsZWFyKCkKKyAgICAgICAgICAgICAgICBjYWNoZV90b2tlbiA9IGN1cnJlbnRfdG9rZW4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaW1wbCA9IGRpc3BhdGNoX2NhY2hlW3R5cF0KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGltcGwgPSByZWdpc3RyeVt0eXBdCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgaW1wbCA9IF9maW5kX2ltcGwodHlwLCByZWdpc3RyeSkKKyAgICAgICAgICAgIGRpc3BhdGNoX2NhY2hlW3R5cF0gPSBpbXBsCisgICAgICAgIHJldHVybiBpbXBsCisKKyAgICBkZWYgcmVnaXN0ZXIodHlwLCBmdW5jPU5vbmUpOgorICAgICAgICAiIiJnZW5lcmljX2Z1bmMucmVnaXN0ZXIodHlwZSwgZnVuYykgLT4gZnVuYworCisgICAgICAgIFJlZ2lzdGVycyBhIG5ldyBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIGdpdmVuIGB0eXBlYCBvbiBhIGBnZW5lcmljX2Z1bmNgLgorCisgICAgICAgICIiIgorICAgICAgICBub25sb2NhbCBjYWNoZV90b2tlbgorICAgICAgICBpZiBmdW5jIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gbGFtYmRhIGY6IHJlZ2lzdGVyKHR5cCwgZikKKyAgICAgICAgcmVnaXN0cnlbdHlwXSA9IGZ1bmMKKyAgICAgICAgaWYgY2FjaGVfdG9rZW4gaXMgTm9uZSBhbmQgaGFzYXR0cih0eXAsICdfX2Fic3RyYWN0bWV0aG9kc19fJyk6CisgICAgICAgICAgICBjYWNoZV90b2tlbiA9IGdldF9jYWNoZV90b2tlbigpCisgICAgICAgIGRpc3BhdGNoX2NhY2hlLmNsZWFyKCkKKyAgICAgICAgcmV0dXJuIGZ1bmMKKworICAgIGRlZiB3cmFwcGVyKCphcmdzLCAqKmt3KToKKyAgICAgICAgcmV0dXJuIGRpc3BhdGNoKGFyZ3NbMF0uX19jbGFzc19fKSgqYXJncywgKiprdykKKworICAgIHJlZ2lzdHJ5W29iamVjdF0gPSBmdW5jCisgICAgd3JhcHBlci5yZWdpc3RlciA9IHJlZ2lzdGVyCisgICAgd3JhcHBlci5kaXNwYXRjaCA9IGRpc3BhdGNoCisgICAgd3JhcHBlci5yZWdpc3RyeSA9IE1hcHBpbmdQcm94eVR5cGUocmVnaXN0cnkpCisgICAgd3JhcHBlci5fY2xlYXJfY2FjaGUgPSBkaXNwYXRjaF9jYWNoZS5jbGVhcgorICAgIHVwZGF0ZV93cmFwcGVyKHdyYXBwZXIsIGZ1bmMpCisgICAgcmV0dXJuIHdyYXBwZXIKZGlmZiAtLWdpdCBhL0xpYi9nZW5lcmljcGF0aC5weSBiL0xpYi9nZW5lcmljcGF0aC5weQppbmRleCAyMTc0MTg3Li41MjkyYWE4IDEwMDY0NAotLS0gYS9MaWIvZ2VuZXJpY3BhdGgucHkKKysrIGIvTGliL2dlbmVyaWNwYXRoLnB5CkBAIC03LDcgKzcsOCBAQAogaW1wb3J0IHN0YXQKIAogX19hbGxfXyA9IFsnY29tbW9ucHJlZml4JywgJ2V4aXN0cycsICdnZXRhdGltZScsICdnZXRjdGltZScsICdnZXRtdGltZScsCi0gICAgICAgICAgICdnZXRzaXplJywgJ2lzZGlyJywgJ2lzZmlsZSddCisgICAgICAgICAgICdnZXRzaXplJywgJ2lzZGlyJywgJ2lzZmlsZScsICdzYW1lZmlsZScsICdzYW1lb3BlbmZpbGUnLAorICAgICAgICAgICAnc2FtZXN0YXQnXQogCiAKICMgRG9lcyBhIHBhdGggZXhpc3Q/CkBAIC0xNiw3ICsxNyw3IEBACiAgICAgIiIiVGVzdCB3aGV0aGVyIGEgcGF0aCBleGlzdHMuICBSZXR1cm5zIEZhbHNlIGZvciBicm9rZW4gc3ltYm9saWMgbGlua3MiIiIKICAgICB0cnk6CiAgICAgICAgIG9zLnN0YXQocGF0aCkKLSAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgIHJldHVybiBGYWxzZQogICAgIHJldHVybiBUcnVlCiAKQEAgLTI3LDcgKzI4LDcgQEAKICAgICAiIiJUZXN0IHdoZXRoZXIgYSBwYXRoIGlzIGEgcmVndWxhciBmaWxlIiIiCiAgICAgdHJ5OgogICAgICAgICBzdCA9IG9zLnN0YXQocGF0aCkKLSAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgIHJldHVybiBGYWxzZQogICAgIHJldHVybiBzdGF0LlNfSVNSRUcoc3Quc3RfbW9kZSkKIApAQCAtMzksNyArNDAsNyBAQAogICAgICIiIlJldHVybiB0cnVlIGlmIHRoZSBwYXRobmFtZSByZWZlcnMgdG8gYW4gZXhpc3RpbmcgZGlyZWN0b3J5LiIiIgogICAgIHRyeToKICAgICAgICAgc3QgPSBvcy5zdGF0KHMpCi0gICAgZXhjZXB0IG9zLmVycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICByZXR1cm4gRmFsc2UKICAgICByZXR1cm4gc3RhdC5TX0lTRElSKHN0LnN0X21vZGUpCiAKQEAgLTc1LDYgKzc2LDMxIEBACiAgICAgICAgICAgICByZXR1cm4gczFbOmldCiAgICAgcmV0dXJuIHMxCiAKKyMgQXJlIHR3byBzdGF0IGJ1ZmZlcnMgKG9idGFpbmVkIGZyb20gc3RhdCwgZnN0YXQgb3IgbHN0YXQpCisjIGRlc2NyaWJpbmcgdGhlIHNhbWUgZmlsZT8KK2RlZiBzYW1lc3RhdChzMSwgczIpOgorICAgICIiIlRlc3Qgd2hldGhlciB0d28gc3RhdCBidWZmZXJzIHJlZmVyZW5jZSB0aGUgc2FtZSBmaWxlIiIiCisgICAgcmV0dXJuIChzMS5zdF9pbm8gPT0gczIuc3RfaW5vIGFuZAorICAgICAgICAgICAgczEuc3RfZGV2ID09IHMyLnN0X2RldikKKworCisjIEFyZSB0d28gZmlsZW5hbWVzIHJlYWxseSBwb2ludGluZyB0byB0aGUgc2FtZSBmaWxlPworZGVmIHNhbWVmaWxlKGYxLCBmMik6CisgICAgIiIiVGVzdCB3aGV0aGVyIHR3byBwYXRobmFtZXMgcmVmZXJlbmNlIHRoZSBzYW1lIGFjdHVhbCBmaWxlIiIiCisgICAgczEgPSBvcy5zdGF0KGYxKQorICAgIHMyID0gb3Muc3RhdChmMikKKyAgICByZXR1cm4gc2FtZXN0YXQoczEsIHMyKQorCisKKyMgQXJlIHR3byBvcGVuIGZpbGVzIHJlYWxseSByZWZlcmVuY2luZyB0aGUgc2FtZSBmaWxlPworIyAoTm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGZpbGUgZGVzY3JpcHRvciEpCitkZWYgc2FtZW9wZW5maWxlKGZwMSwgZnAyKToKKyAgICAiIiJUZXN0IHdoZXRoZXIgdHdvIG9wZW4gZmlsZSBvYmplY3RzIHJlZmVyZW5jZSB0aGUgc2FtZSBmaWxlIiIiCisgICAgczEgPSBvcy5mc3RhdChmcDEpCisgICAgczIgPSBvcy5mc3RhdChmcDIpCisgICAgcmV0dXJuIHNhbWVzdGF0KHMxLCBzMikKKworCiAjIFNwbGl0IGEgcGF0aCBpbiByb290IGFuZCBleHRlbnNpb24uCiAjIFRoZSBleHRlbnNpb24gaXMgZXZlcnl0aGluZyBzdGFydGluZyBhdCB0aGUgbGFzdCBkb3QgaW4gdGhlIGxhc3QKICMgcGF0aG5hbWUgY29tcG9uZW50OyB0aGUgcm9vdCBpcyBldmVyeXRoaW5nIGJlZm9yZSB0aGF0LgpkaWZmIC0tZ2l0IGEvTGliL2dldHBhc3MucHkgYi9MaWIvZ2V0cGFzcy5weQppbmRleCAwMDQ0NzQyLi42ZWM2Yzc4OCAxMDA2NDQKLS0tIGEvTGliL2dldHBhc3MucHkKKysrIGIvTGliL2dldHBhc3MucHkKQEAgLTQwLDYgKzQwLDcgQEAKICAgICAiIiIKICAgICBmZCA9IE5vbmUKICAgICB0dHkgPSBOb25lCisgICAgcGFzc3dkID0gTm9uZQogICAgIHRyeToKICAgICAgICAgIyBBbHdheXMgdHJ5IHJlYWRpbmcgYW5kIHdyaXRpbmcgZGlyZWN0bHkgb24gdGhlIHR0eSBmaXJzdC4KICAgICAgICAgZmQgPSBvcy5vcGVuKCcvZGV2L3R0eScsIG9zLk9fUkRXUnxvcy5PX05PQ1RUWSkKQEAgLTQ3LDcgKzQ4LDcgQEAKICAgICAgICAgaW5wdXQgPSB0dHkKICAgICAgICAgaWYgbm90IHN0cmVhbToKICAgICAgICAgICAgIHN0cmVhbSA9IHR0eQotICAgIGV4Y2VwdCBFbnZpcm9ubWVudEVycm9yIGFzIGU6CisgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgIyBJZiB0aGF0IGZhaWxzLCBzZWUgaWYgc3RkaW4gY2FuIGJlIGNvbnRyb2xsZWQuCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGZkID0gc3lzLnN0ZGluLmZpbGVubygpCmRpZmYgLS1naXQgYS9MaWIvZ2V0dGV4dC5weSBiL0xpYi9nZXR0ZXh0LnB5CmluZGV4IGU0M2YwNDQuLjA1ZDljMWUgMTAwNjQ0Ci0tLSBhL0xpYi9nZXR0ZXh0LnB5CisrKyBiL0xpYi9nZXR0ZXh0LnB5CkBAIC0yNDQsNyArMjQ0LDcgQEAKICAgICAgICAgICAgIHZlcnNpb24sIG1zZ2NvdW50LCBtYXN0ZXJpZHgsIHRyYW5zaWR4ID0gdW5wYWNrKCc+NEknLCBidWZbNDoyMF0pCiAgICAgICAgICAgICBpaSA9ICc+SUknCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKDAsICdCYWQgbWFnaWMgbnVtYmVyJywgZmlsZW5hbWUpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKDAsICdCYWQgbWFnaWMgbnVtYmVyJywgZmlsZW5hbWUpCiAgICAgICAgICMgTm93IHB1dCBhbGwgbWVzc2FnZXMgZnJvbSB0aGUgLm1vIGZpbGUgYnVmZmVyIGludG8gdGhlIGNhdGFsb2cKICAgICAgICAgIyBkaWN0aW9uYXJ5LgogICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBtc2djb3VudCk6CkBAIC0yNTYsNyArMjU2LDcgQEAKICAgICAgICAgICAgICAgICBtc2cgPSBidWZbbW9mZjptZW5kXQogICAgICAgICAgICAgICAgIHRtc2cgPSBidWZbdG9mZjp0ZW5kXQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBJT0Vycm9yKDAsICdGaWxlIGlzIGNvcnJ1cHQnLCBmaWxlbmFtZSkKKyAgICAgICAgICAgICAgICByYWlzZSBPU0Vycm9yKDAsICdGaWxlIGlzIGNvcnJ1cHQnLCBmaWxlbmFtZSkKICAgICAgICAgICAgICMgU2VlIGlmIHdlJ3JlIGxvb2tpbmcgYXQgR05VIC5tbyBjb252ZW50aW9ucyBmb3IgbWV0YWRhdGEKICAgICAgICAgICAgIGlmIG1sZW4gPT0gMDoKICAgICAgICAgICAgICAgICAjIENhdGFsb2cgZGVzY3JpcHRpb24KQEAgLTM5OCw3ICszOTgsNyBAQAogICAgIGlmIG5vdCBtb2ZpbGVzOgogICAgICAgICBpZiBmYWxsYmFjazoKICAgICAgICAgICAgIHJldHVybiBOdWxsVHJhbnNsYXRpb25zKCkKLSAgICAgICAgcmFpc2UgSU9FcnJvcihFTk9FTlQsICdObyB0cmFuc2xhdGlvbiBmaWxlIGZvdW5kIGZvciBkb21haW4nLCBkb21haW4pCisgICAgICAgIHJhaXNlIE9TRXJyb3IoRU5PRU5ULCAnTm8gdHJhbnNsYXRpb24gZmlsZSBmb3VuZCBmb3IgZG9tYWluJywgZG9tYWluKQogICAgICMgQXZvaWQgb3BlbmluZywgcmVhZGluZywgYW5kIHBhcnNpbmcgdGhlIC5tbyBmaWxlIGFmdGVyIGl0J3MgYmVlbiBkb25lCiAgICAgIyBvbmNlLgogICAgIHJlc3VsdCA9IE5vbmUKQEAgLTQ2MCw3ICs0NjAsNyBAQAogICAgIHRyeToKICAgICAgICAgdCA9IHRyYW5zbGF0aW9uKGRvbWFpbiwgX2xvY2FsZWRpcnMuZ2V0KGRvbWFpbiwgTm9uZSksCiAgICAgICAgICAgICAgICAgICAgICAgICBjb2Rlc2V0PV9sb2NhbGVjb2Rlc2V0cy5nZXQoZG9tYWluKSkKLSAgICBleGNlcHQgSU9FcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKICAgICByZXR1cm4gdC5nZXR0ZXh0KG1lc3NhZ2UpCiAKQEAgLTQ2OCw3ICs0NjgsNyBAQAogICAgIHRyeToKICAgICAgICAgdCA9IHRyYW5zbGF0aW9uKGRvbWFpbiwgX2xvY2FsZWRpcnMuZ2V0KGRvbWFpbiwgTm9uZSksCiAgICAgICAgICAgICAgICAgICAgICAgICBjb2Rlc2V0PV9sb2NhbGVjb2Rlc2V0cy5nZXQoZG9tYWluKSkKLSAgICBleGNlcHQgSU9FcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKICAgICByZXR1cm4gdC5sZ2V0dGV4dChtZXNzYWdlKQogCkBAIC00NzYsNyArNDc2LDcgQEAKICAgICB0cnk6CiAgICAgICAgIHQgPSB0cmFuc2xhdGlvbihkb21haW4sIF9sb2NhbGVkaXJzLmdldChkb21haW4sIE5vbmUpLAogICAgICAgICAgICAgICAgICAgICAgICAgY29kZXNldD1fbG9jYWxlY29kZXNldHMuZ2V0KGRvbWFpbikpCi0gICAgZXhjZXB0IElPRXJyb3I6CisgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgIGlmIG4gPT0gMToKICAgICAgICAgICAgIHJldHVybiBtc2dpZDEKICAgICAgICAgZWxzZToKQEAgLTQ4Nyw3ICs0ODcsNyBAQAogICAgIHRyeToKICAgICAgICAgdCA9IHRyYW5zbGF0aW9uKGRvbWFpbiwgX2xvY2FsZWRpcnMuZ2V0KGRvbWFpbiwgTm9uZSksCiAgICAgICAgICAgICAgICAgICAgICAgICBjb2Rlc2V0PV9sb2NhbGVjb2Rlc2V0cy5nZXQoZG9tYWluKSkKLSAgICBleGNlcHQgSU9FcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgaWYgbiA9PSAxOgogICAgICAgICAgICAgcmV0dXJuIG1zZ2lkMQogICAgICAgICBlbHNlOgpkaWZmIC0tZ2l0IGEvTGliL2dsb2IucHkgYi9MaWIvZ2xvYi5weQppbmRleCAxZjYwMjY1Li4xYTI2OGEzIDEwMDY0NAotLS0gYS9MaWIvZ2xvYi5weQorKysgYi9MaWIvZ2xvYi5weQpAQCAtMzIsOCArMzIsNyBAQAogICAgICAgICByZXR1cm4KICAgICBkaXJuYW1lLCBiYXNlbmFtZSA9IG9zLnBhdGguc3BsaXQocGF0aG5hbWUpCiAgICAgaWYgbm90IGRpcm5hbWU6Ci0gICAgICAgIGZvciBuYW1lIGluIGdsb2IxKE5vbmUsIGJhc2VuYW1lKToKLSAgICAgICAgICAgIHlpZWxkIG5hbWUKKyAgICAgICAgeWllbGQgZnJvbSBnbG9iMShOb25lLCBiYXNlbmFtZSkKICAgICAgICAgcmV0dXJuCiAgICAgIyBgb3MucGF0aC5zcGxpdCgpYCByZXR1cm5zIHRoZSBhcmd1bWVudCBpdHNlbGYgYXMgYSBkaXJuYW1lIGlmIGl0IGlzIGEKICAgICAjIGRyaXZlIG9yIFVOQyBwYXRoLiAgUHJldmVudCBhbiBpbmZpbml0ZSByZWN1cnNpb24gaWYgYSBkcml2ZSBvciBVTkMgcGF0aApAQCAtNjIsNyArNjEsNyBAQAogICAgICAgICAgICAgZGlybmFtZSA9IG9zLmN1cmRpcgogICAgIHRyeToKICAgICAgICAgbmFtZXMgPSBvcy5saXN0ZGlyKGRpcm5hbWUpCi0gICAgZXhjZXB0IG9zLmVycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICByZXR1cm4gW10KICAgICBpZiBub3QgX2lzaGlkZGVuKHBhdHRlcm4pOgogICAgICAgICBuYW1lcyA9IFt4IGZvciB4IGluIG5hbWVzIGlmIG5vdCBfaXNoaWRkZW4oeCldCmRpZmYgLS1naXQgYS9MaWIvZ3ppcC5weSBiL0xpYi9nemlwLnB5CmluZGV4IDY3ZmUxZDQuLmQyZDZkZDYgMTAwNjQ0Ci0tLSBhL0xpYi9nemlwLnB5CisrKyBiL0xpYi9nemlwLnB5CkBAIC02NSw5ICs2NSw2IEBACiAgICAgIyBvciB1bnNpZ25lZC4KICAgICBvdXRwdXQud3JpdGUoc3RydWN0LnBhY2soIjxMIiwgdmFsdWUpKQogCi1kZWYgcmVhZDMyKGlucHV0KToKLSAgICByZXR1cm4gc3RydWN0LnVucGFjaygiPEkiLCBpbnB1dC5yZWFkKDQpKVswXQotCiBjbGFzcyBfUGFkZGVkRmlsZToKICAgICAiIiJNaW5pbWFsIHJlYWQtb25seSBmaWxlIG9iamVjdCB0aGF0IHByZXBlbmRzIGEgc3RyaW5nIHRvIHRoZSBjb250ZW50cwogICAgIG9mIGFuIGFjdHVhbCBmaWxlLiBTaG91bGRuJ3QgYmUgdXNlZCBvdXRzaWRlIG9mIGd6aXAucHksIGFzIGl0IGxhY2tzCkBAIC0yODEsMjggKzI3OCwzMiBAQAogICAgICAgICBzZWxmLmNyYyA9IHpsaWIuY3JjMzIoYiIiKSAmIDB4ZmZmZmZmZmYKICAgICAgICAgc2VsZi5zaXplID0gMAogCisgICAgZGVmIF9yZWFkX2V4YWN0KHNlbGYsIG4pOgorICAgICAgICBkYXRhID0gc2VsZi5maWxlb2JqLnJlYWQobikKKyAgICAgICAgd2hpbGUgbGVuKGRhdGEpIDwgbjoKKyAgICAgICAgICAgIGIgPSBzZWxmLmZpbGVvYmoucmVhZChuIC0gbGVuKGRhdGEpKQorICAgICAgICAgICAgaWYgbm90IGI6CisgICAgICAgICAgICAgICAgcmFpc2UgRU9GRXJyb3IoIkNvbXByZXNzZWQgZmlsZSBlbmRlZCBiZWZvcmUgdGhlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5kLW9mLXN0cmVhbSBtYXJrZXIgd2FzIHJlYWNoZWQiKQorICAgICAgICAgICAgZGF0YSArPSBiCisgICAgICAgIHJldHVybiBkYXRhCisKICAgICBkZWYgX3JlYWRfZ3ppcF9oZWFkZXIoc2VsZik6CiAgICAgICAgIG1hZ2ljID0gc2VsZi5maWxlb2JqLnJlYWQoMikKICAgICAgICAgaWYgbWFnaWMgPT0gYicnOgotICAgICAgICAgICAgcmFpc2UgRU9GRXJyb3IoIlJlYWNoZWQgRU9GIikKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgICAgIGlmIG1hZ2ljICE9IGInXDAzN1wyMTMnOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcignTm90IGEgZ3ppcHBlZCBmaWxlJykKKyAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoJ05vdCBhIGd6aXBwZWQgZmlsZScpCiAKLSAgICAgICAgbWV0aG9kID0gb3JkKCBzZWxmLmZpbGVvYmoucmVhZCgxKSApCisgICAgICAgIG1ldGhvZCwgZmxhZywgc2VsZi5tdGltZSA9IHN0cnVjdC51bnBhY2soIjxCQkl4eCIsIHNlbGYuX3JlYWRfZXhhY3QoOCkpCiAgICAgICAgIGlmIG1ldGhvZCAhPSA4OgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcignVW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QnKQotICAgICAgICBmbGFnID0gb3JkKCBzZWxmLmZpbGVvYmoucmVhZCgxKSApCi0gICAgICAgIHNlbGYubXRpbWUgPSByZWFkMzIoc2VsZi5maWxlb2JqKQotICAgICAgICAjIGV4dHJhZmxhZyA9IHNlbGYuZmlsZW9iai5yZWFkKDEpCi0gICAgICAgICMgb3MgPSBzZWxmLmZpbGVvYmoucmVhZCgxKQotICAgICAgICBzZWxmLmZpbGVvYmoucmVhZCgyKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcignVW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QnKQogCiAgICAgICAgIGlmIGZsYWcgJiBGRVhUUkE6CiAgICAgICAgICAgICAjIFJlYWQgJiBkaXNjYXJkIHRoZSBleHRyYSBmaWVsZCwgaWYgcHJlc2VudAotICAgICAgICAgICAgeGxlbiA9IG9yZChzZWxmLmZpbGVvYmoucmVhZCgxKSkKLSAgICAgICAgICAgIHhsZW4gPSB4bGVuICsgMjU2Km9yZChzZWxmLmZpbGVvYmoucmVhZCgxKSkKLSAgICAgICAgICAgIHNlbGYuZmlsZW9iai5yZWFkKHhsZW4pCisgICAgICAgICAgICBleHRyYV9sZW4sID0gc3RydWN0LnVucGFjaygiPEgiLCBzZWxmLl9yZWFkX2V4YWN0KDIpKQorICAgICAgICAgICAgc2VsZi5fcmVhZF9leGFjdChleHRyYV9sZW4pCiAgICAgICAgIGlmIGZsYWcgJiBGTkFNRToKICAgICAgICAgICAgICMgUmVhZCBhbmQgZGlzY2FyZCBhIG51bGwtdGVybWluYXRlZCBzdHJpbmcgY29udGFpbmluZyB0aGUgZmlsZW5hbWUKICAgICAgICAgICAgIHdoaWxlIFRydWU6CkBAIC0zMTYsMTggKzMxNywxOSBAQAogICAgICAgICAgICAgICAgIGlmIG5vdCBzIG9yIHM9PWInXDAwMCc6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgIGlmIGZsYWcgJiBGSENSQzoKLSAgICAgICAgICAgIHNlbGYuZmlsZW9iai5yZWFkKDIpICAgICAjIFJlYWQgJiBkaXNjYXJkIHRoZSAxNi1iaXQgaGVhZGVyIENSQworICAgICAgICAgICAgc2VsZi5fcmVhZF9leGFjdCgyKSAgICAgIyBSZWFkICYgZGlzY2FyZCB0aGUgMTYtYml0IGhlYWRlciBDUkMKIAogICAgICAgICB1bnVzZWQgPSBzZWxmLmZpbGVvYmoudW51c2VkKCkKICAgICAgICAgaWYgdW51c2VkOgogICAgICAgICAgICAgdW5jb21wcmVzcyA9IHNlbGYuZGVjb21wcmVzcy5kZWNvbXByZXNzKHVudXNlZCkKICAgICAgICAgICAgIHNlbGYuX2FkZF9yZWFkX2RhdGEodW5jb21wcmVzcykKKyAgICAgICAgcmV0dXJuIFRydWUKIAogICAgIGRlZiB3cml0ZShzZWxmLGRhdGEpOgogICAgICAgICBzZWxmLl9jaGVja19jbG9zZWQoKQogICAgICAgICBpZiBzZWxmLm1vZGUgIT0gV1JJVEU6CiAgICAgICAgICAgICBpbXBvcnQgZXJybm8KLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoZXJybm8uRUJBREYsICJ3cml0ZSgpIG9uIHJlYWQtb25seSBHemlwRmlsZSBvYmplY3QiKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcihlcnJuby5FQkFERiwgIndyaXRlKCkgb24gcmVhZC1vbmx5IEd6aXBGaWxlIG9iamVjdCIpCiAKICAgICAgICAgaWYgc2VsZi5maWxlb2JqIGlzIE5vbmU6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ3cml0ZSgpIG9uIGNsb3NlZCBHemlwRmlsZSBvYmplY3QiKQpAQCAtMzQ4LDI3ICszNTAsMjMgQEAKICAgICAgICAgc2VsZi5fY2hlY2tfY2xvc2VkKCkKICAgICAgICAgaWYgc2VsZi5tb2RlICE9IFJFQUQ6CiAgICAgICAgICAgICBpbXBvcnQgZXJybm8KLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoZXJybm8uRUJBREYsICJyZWFkKCkgb24gd3JpdGUtb25seSBHemlwRmlsZSBvYmplY3QiKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcihlcnJuby5FQkFERiwgInJlYWQoKSBvbiB3cml0ZS1vbmx5IEd6aXBGaWxlIG9iamVjdCIpCiAKICAgICAgICAgaWYgc2VsZi5leHRyYXNpemUgPD0gMCBhbmQgc2VsZi5maWxlb2JqIGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4gYicnCiAKICAgICAgICAgcmVhZHNpemUgPSAxMDI0CiAgICAgICAgIGlmIHNpemUgPCAwOiAgICAgICAgIyBnZXQgdGhlIHdob2xlIHRoaW5nCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVhZChyZWFkc2l6ZSkKLSAgICAgICAgICAgICAgICAgICAgcmVhZHNpemUgPSBtaW4oc2VsZi5tYXhfcmVhZF9jaHVuaywgcmVhZHNpemUgKiAyKQotICAgICAgICAgICAgZXhjZXB0IEVPRkVycm9yOgotICAgICAgICAgICAgICAgIHNpemUgPSBzZWxmLmV4dHJhc2l6ZQorICAgICAgICAgICAgd2hpbGUgc2VsZi5fcmVhZChyZWFkc2l6ZSk6CisgICAgICAgICAgICAgICAgcmVhZHNpemUgPSBtaW4oc2VsZi5tYXhfcmVhZF9jaHVuaywgcmVhZHNpemUgKiAyKQorICAgICAgICAgICAgc2l6ZSA9IHNlbGYuZXh0cmFzaXplCiAgICAgICAgIGVsc2U6ICAgICAgICAgICAgICAgIyBqdXN0IGdldCBzb21lIG1vcmUgb2YgaXQKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB3aGlsZSBzaXplID4gc2VsZi5leHRyYXNpemU6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlYWQocmVhZHNpemUpCi0gICAgICAgICAgICAgICAgICAgIHJlYWRzaXplID0gbWluKHNlbGYubWF4X3JlYWRfY2h1bmssIHJlYWRzaXplICogMikKLSAgICAgICAgICAgIGV4Y2VwdCBFT0ZFcnJvcjoKLSAgICAgICAgICAgICAgICBpZiBzaXplID4gc2VsZi5leHRyYXNpemU6Ci0gICAgICAgICAgICAgICAgICAgIHNpemUgPSBzZWxmLmV4dHJhc2l6ZQorICAgICAgICAgICAgd2hpbGUgc2l6ZSA+IHNlbGYuZXh0cmFzaXplOgorICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9yZWFkKHJlYWRzaXplKToKKyAgICAgICAgICAgICAgICAgICAgaWYgc2l6ZSA+IHNlbGYuZXh0cmFzaXplOgorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IHNlbGYuZXh0cmFzaXplCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgcmVhZHNpemUgPSBtaW4oc2VsZi5tYXhfcmVhZF9jaHVuaywgcmVhZHNpemUgKiAyKQogCiAgICAgICAgIG9mZnNldCA9IHNlbGYub2Zmc2V0IC0gc2VsZi5leHRyYXN0YXJ0CiAgICAgICAgIGNodW5rID0gc2VsZi5leHRyYWJ1ZltvZmZzZXQ6IG9mZnNldCArIHNpemVdCkBAIC0zODEsMTcgKzM3OSwxNCBAQAogICAgICAgICBzZWxmLl9jaGVja19jbG9zZWQoKQogICAgICAgICBpZiBzZWxmLm1vZGUgIT0gUkVBRDoKICAgICAgICAgICAgIGltcG9ydCBlcnJubwotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcihlcnJuby5FQkFERiwgInJlYWQxKCkgb24gd3JpdGUtb25seSBHemlwRmlsZSBvYmplY3QiKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcihlcnJuby5FQkFERiwgInJlYWQxKCkgb24gd3JpdGUtb25seSBHemlwRmlsZSBvYmplY3QiKQogCiAgICAgICAgIGlmIHNlbGYuZXh0cmFzaXplIDw9IDAgYW5kIHNlbGYuZmlsZW9iaiBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuIGInJwogCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgRm9yIGNlcnRhaW4gaW5wdXQgZGF0YSwgYSBzaW5nbGUgY2FsbCB0byBfcmVhZCgpIG1heSBub3QgcmV0dXJuCi0gICAgICAgICAgICAjIGFueSBkYXRhLiBJbiB0aGlzIGNhc2UsIHJldHJ5IHVudGlsIHdlIGdldCBzb21lIGRhdGEgb3IgcmVhY2ggRU9GLgotICAgICAgICAgICAgd2hpbGUgc2VsZi5leHRyYXNpemUgPD0gMDoKLSAgICAgICAgICAgICAgICBzZWxmLl9yZWFkKCkKLSAgICAgICAgZXhjZXB0IEVPRkVycm9yOgorICAgICAgICAjIEZvciBjZXJ0YWluIGlucHV0IGRhdGEsIGEgc2luZ2xlIGNhbGwgdG8gX3JlYWQoKSBtYXkgbm90IHJldHVybgorICAgICAgICAjIGFueSBkYXRhLiBJbiB0aGlzIGNhc2UsIHJldHJ5IHVudGlsIHdlIGdldCBzb21lIGRhdGEgb3IgcmVhY2ggRU9GLgorICAgICAgICB3aGlsZSBzZWxmLmV4dHJhc2l6ZSA8PSAwIGFuZCBzZWxmLl9yZWFkKCk6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGlmIHNpemUgPCAwIG9yIHNpemUgPiBzZWxmLmV4dHJhc2l6ZToKICAgICAgICAgICAgIHNpemUgPSBzZWxmLmV4dHJhc2l6ZQpAQCAtNDA1LDcgKzQwMCw3IEBACiAgICAgZGVmIHBlZWsoc2VsZiwgbik6CiAgICAgICAgIGlmIHNlbGYubW9kZSAhPSBSRUFEOgogICAgICAgICAgICAgaW1wb3J0IGVycm5vCi0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKGVycm5vLkVCQURGLCAicGVlaygpIG9uIHdyaXRlLW9ubHkgR3ppcEZpbGUgb2JqZWN0IikKKyAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoZXJybm8uRUJBREYsICJwZWVrKCkgb24gd3JpdGUtb25seSBHemlwRmlsZSBvYmplY3QiKQogCiAgICAgICAgICMgRG8gbm90IHJldHVybiByaWRpY3Vsb3VzbHkgc21hbGwgYnVmZmVycywgZm9yIG9uZSBjb21tb24gaWRpb20KICAgICAgICAgIyBpcyB0byBjYWxsIHBlZWsoMSkgYW5kIGV4cGVjdCBtb3JlIGJ5dGVzIGluIHJldHVybi4KQEAgLTQxNCwxMiArNDA5LDkgQEAKICAgICAgICAgaWYgc2VsZi5leHRyYXNpemUgPT0gMDoKICAgICAgICAgICAgIGlmIHNlbGYuZmlsZW9iaiBpcyBOb25lOgogICAgICAgICAgICAgICAgIHJldHVybiBiJycKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAjIEVuc3VyZSB0aGF0IHdlIGRvbid0IHJldHVybiBiIiIgaWYgd2UgaGF2ZW4ndCByZWFjaGVkIEVPRi4KLSAgICAgICAgICAgICAgICB3aGlsZSBzZWxmLmV4dHJhc2l6ZSA9PSAwOgotICAgICAgICAgICAgICAgICAgICAjIDEwMjQgaXMgdGhlIHNhbWUgYnVmZmVyaW5nIGhldXJpc3RpYyB1c2VkIGluIHJlYWQoKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZWFkKG1heChuLCAxMDI0KSkKLSAgICAgICAgICAgIGV4Y2VwdCBFT0ZFcnJvcjoKKyAgICAgICAgICAgICMgRW5zdXJlIHRoYXQgd2UgZG9uJ3QgcmV0dXJuIGIiIiBpZiB3ZSBoYXZlbid0IHJlYWNoZWQgRU9GLgorICAgICAgICAgICAgIyAxMDI0IGlzIHRoZSBzYW1lIGJ1ZmZlcmluZyBoZXVyaXN0aWMgdXNlZCBpbiByZWFkKCkKKyAgICAgICAgICAgIHdoaWxlIHNlbGYuZXh0cmFzaXplID09IDAgYW5kIHNlbGYuX3JlYWQobWF4KG4sIDEwMjQpKToKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIG9mZnNldCA9IHNlbGYub2Zmc2V0IC0gc2VsZi5leHRyYXN0YXJ0CiAgICAgICAgIHJlbWFpbmluZyA9IHNlbGYuZXh0cmFzaXplCkBAIC00MzIsMTMgKzQyNCwxNCBAQAogCiAgICAgZGVmIF9yZWFkKHNlbGYsIHNpemU9MTAyNCk6CiAgICAgICAgIGlmIHNlbGYuZmlsZW9iaiBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgRU9GRXJyb3IoIlJlYWNoZWQgRU9GIikKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgICAgIGlmIHNlbGYuX25ld19tZW1iZXI6CiAgICAgICAgICAgICAjIElmIHRoZSBfbmV3X21lbWJlciBmbGFnIGlzIHNldCwgd2UgaGF2ZSB0bwogICAgICAgICAgICAgIyBqdW1wIHRvIHRoZSBuZXh0IG1lbWJlciwgaWYgdGhlcmUgaXMgb25lLgogICAgICAgICAgICAgc2VsZi5faW5pdF9yZWFkKCkKLSAgICAgICAgICAgIHNlbGYuX3JlYWRfZ3ppcF9oZWFkZXIoKQorICAgICAgICAgICAgaWYgbm90IHNlbGYuX3JlYWRfZ3ppcF9oZWFkZXIoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgICAgIHNlbGYuZGVjb21wcmVzcyA9IHpsaWIuZGVjb21wcmVzc29iaigtemxpYi5NQVhfV0JJVFMpCiAgICAgICAgICAgICBzZWxmLl9uZXdfbWVtYmVyID0gRmFsc2UKIApAQCAtNDU1LDcgKzQ0OCw3IEBACiAgICAgICAgICAgICBzZWxmLmZpbGVvYmoucHJlcGVuZChzZWxmLmRlY29tcHJlc3MudW51c2VkX2RhdGEsIFRydWUpCiAgICAgICAgICAgICBzZWxmLl9yZWFkX2VvZigpCiAgICAgICAgICAgICBzZWxmLl9hZGRfcmVhZF9kYXRhKCB1bmNvbXByZXNzICkKLSAgICAgICAgICAgIHJhaXNlIEVPRkVycm9yKCdSZWFjaGVkIEVPRicpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgICAgICB1bmNvbXByZXNzID0gc2VsZi5kZWNvbXByZXNzLmRlY29tcHJlc3MoYnVmKQogICAgICAgICBzZWxmLl9hZGRfcmVhZF9kYXRhKCB1bmNvbXByZXNzICkKQEAgLTQ3MSw2ICs0NjQsNyBAQAogICAgICAgICAgICAgIyBhIG5ldyBtZW1iZXIgb24gdGhlIG5leHQgY2FsbAogICAgICAgICAgICAgc2VsZi5fcmVhZF9lb2YoKQogICAgICAgICAgICAgc2VsZi5fbmV3X21lbWJlciA9IFRydWUKKyAgICAgICAgcmV0dXJuIFRydWUKIAogICAgIGRlZiBfYWRkX3JlYWRfZGF0YShzZWxmLCBkYXRhKToKICAgICAgICAgc2VsZi5jcmMgPSB6bGliLmNyYzMyKGRhdGEsIHNlbGYuY3JjKSAmIDB4ZmZmZmZmZmYKQEAgLTQ4NSwxMyArNDc5LDEyIEBACiAgICAgICAgICMgV2UgY2hlY2sgdGhlIHRoYXQgdGhlIGNvbXB1dGVkIENSQyBhbmQgc2l6ZSBvZiB0aGUKICAgICAgICAgIyB1bmNvbXByZXNzZWQgZGF0YSBtYXRjaGVzIHRoZSBzdG9yZWQgdmFsdWVzLiAgTm90ZSB0aGF0IHRoZSBzaXplCiAgICAgICAgICMgc3RvcmVkIGlzIHRoZSB0cnVlIGZpbGUgc2l6ZSBtb2QgMioqMzIuCi0gICAgICAgIGNyYzMyID0gcmVhZDMyKHNlbGYuZmlsZW9iaikKLSAgICAgICAgaXNpemUgPSByZWFkMzIoc2VsZi5maWxlb2JqKSAgIyBtYXkgZXhjZWVkIDJHQgorICAgICAgICBjcmMzMiwgaXNpemUgPSBzdHJ1Y3QudW5wYWNrKCI8SUkiLCBzZWxmLl9yZWFkX2V4YWN0KDgpKQogICAgICAgICBpZiBjcmMzMiAhPSBzZWxmLmNyYzoKLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoIkNSQyBjaGVjayBmYWlsZWQgJXMgIT0gJXMiICUgKGhleChjcmMzMiksCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCJDUkMgY2hlY2sgZmFpbGVkICVzICE9ICVzIiAlIChoZXgoY3JjMzIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGV4KHNlbGYuY3JjKSkpCiAgICAgICAgIGVsaWYgaXNpemUgIT0gKHNlbGYuc2l6ZSAmIDB4ZmZmZmZmZmYpOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigiSW5jb3JyZWN0IGxlbmd0aCBvZiBkYXRhIHByb2R1Y2VkIikKKyAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoIkluY29ycmVjdCBsZW5ndGggb2YgZGF0YSBwcm9kdWNlZCIpCiAKICAgICAgICAgIyBHemlwIGZpbGVzIGNhbiBiZSBwYWRkZWQgd2l0aCB6ZXJvZXMgYW5kIHN0aWxsIGhhdmUgYXJjaGl2ZXMuCiAgICAgICAgICMgQ29uc3VtZSBhbGwgemVybyBieXRlcyBhbmQgc2V0IHRoZSBmaWxlIHBvc2l0aW9uIHRvIHRoZSBmaXJzdApAQCAtNTQwLDcgKzUzMyw3IEBACiAgICAgICAgICcnJ1JldHVybiB0aGUgdW5jb21wcmVzc2VkIHN0cmVhbSBmaWxlIHBvc2l0aW9uIGluZGljYXRvciB0byB0aGUKICAgICAgICAgYmVnaW5uaW5nIG9mIHRoZSBmaWxlJycnCiAgICAgICAgIGlmIHNlbGYubW9kZSAhPSBSRUFEOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigiQ2FuJ3QgcmV3aW5kIGluIHdyaXRlIG1vZGUiKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigiQ2FuJ3QgcmV3aW5kIGluIHdyaXRlIG1vZGUiKQogICAgICAgICBzZWxmLmZpbGVvYmouc2VlaygwKQogICAgICAgICBzZWxmLl9uZXdfbWVtYmVyID0gVHJ1ZQogICAgICAgICBzZWxmLmV4dHJhYnVmID0gYiIiCkBAIC01NjUsNyArNTU4LDcgQEAKICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdTZWVrIGZyb20gZW5kIG5vdCBzdXBwb3J0ZWQnKQogICAgICAgICBpZiBzZWxmLm1vZGUgPT0gV1JJVEU6CiAgICAgICAgICAgICBpZiBvZmZzZXQgPCBzZWxmLm9mZnNldDoKLSAgICAgICAgICAgICAgICByYWlzZSBJT0Vycm9yKCdOZWdhdGl2ZSBzZWVrIGluIHdyaXRlIG1vZGUnKQorICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoJ05lZ2F0aXZlIHNlZWsgaW4gd3JpdGUgbW9kZScpCiAgICAgICAgICAgICBjb3VudCA9IG9mZnNldCAtIHNlbGYub2Zmc2V0CiAgICAgICAgICAgICBjaHVuayA9IGJ5dGVzKDEwMjQpCiAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShjb3VudCAvLyAxMDI0KToKZGlmZiAtLWdpdCBhL0xpYi9oYXNobGliLnB5IGIvTGliL2hhc2hsaWIucHkKaW5kZXggMjE0NTRjNy4uYTFiZDhiMiAxMDA2NDQKLS0tIGEvTGliL2hhc2hsaWIucHkKKysrIGIvTGliL2hhc2hsaWIucHkKQEAgLTU0LDcgKzU0LDggQEAKIAogIyBUaGlzIHR1cGxlIGFuZCBfX2dldF9idWlsdGluX2NvbnN0cnVjdG9yKCkgbXVzdCBiZSBtb2RpZmllZCBpZiBhIG5ldwogIyBhbHdheXMgYXZhaWxhYmxlIGFsZ29yaXRobSBpcyBhZGRlZC4KLV9fYWx3YXlzX3N1cHBvcnRlZCA9ICgnbWQ1JywgJ3NoYTEnLCAnc2hhMjI0JywgJ3NoYTI1NicsICdzaGEzODQnLCAnc2hhNTEyJykKK19fYWx3YXlzX3N1cHBvcnRlZCA9ICgnbWQ1JywgJ3NoYTEnLCAnc2hhMjI0JywgJ3NoYTI1NicsICdzaGEzODQnLCAnc2hhNTEyJywKKyAgICAgICAgICAgICAgICAgICAgICAnc2hhM18yMjQnLCAnc2hhM18yNTYnLCAnc2hhM18zODQnLCAnc2hhM181MTInKQogCiBhbGdvcml0aG1zX2d1YXJhbnRlZWQgPSBzZXQoX19hbHdheXNfc3VwcG9ydGVkKQogYWxnb3JpdGhtc19hdmFpbGFibGUgPSBzZXQoX19hbHdheXNfc3VwcG9ydGVkKQpAQCAtODUsNiArODYsMTggQEAKICAgICAgICAgICAgICAgICByZXR1cm4gX3NoYTUxMi5zaGE1MTIKICAgICAgICAgICAgIGVsaWYgYnMgPT0gJzM4NCc6CiAgICAgICAgICAgICAgICAgcmV0dXJuIF9zaGE1MTIuc2hhMzg0CisgICAgICAgIGVsaWYgbmFtZSBpbiB7J3NoYTNfMjI0JywgJ3NoYTNfMjU2JywgJ3NoYTNfMzg0JywgJ3NoYTNfNTEyJywKKyAgICAgICAgICAgICAgICAgICAgICAnU0hBM18yMjQnLCAnU0hBM18yNTYnLCAnU0hBM18zODQnLCAnU0hBM181MTInfToKKyAgICAgICAgICAgIGltcG9ydCBfc2hhMworICAgICAgICAgICAgYnMgPSBuYW1lWzU6XQorICAgICAgICAgICAgaWYgYnMgPT0gJzIyNCc6CisgICAgICAgICAgICAgICAgcmV0dXJuIF9zaGEzLnNoYTNfMjI0CisgICAgICAgICAgICBlbGlmIGJzID09ICcyNTYnOgorICAgICAgICAgICAgICAgIHJldHVybiBfc2hhMy5zaGEzXzI1NgorICAgICAgICAgICAgZWxpZiBicyA9PSAnMzg0JzoKKyAgICAgICAgICAgICAgICByZXR1cm4gX3NoYTMuc2hhM18zODQKKyAgICAgICAgICAgIGVsaWYgYnMgPT0gJzUxMic6CisgICAgICAgICAgICAgICAgcmV0dXJuIF9zaGEzLnNoYTNfNTEyCiAgICAgZXhjZXB0IEltcG9ydEVycm9yOgogICAgICAgICBwYXNzICAjIG5vIGV4dGVuc2lvbiBtb2R1bGUsIHRoaXMgaGFzaCBpcyB1bnN1cHBvcnRlZC4KIApkaWZmIC0tZ2l0IGEvTGliL2htYWMucHkgYi9MaWIvaG1hYy5weQppbmRleCA0Mjk3YTcxLi42YmQwZGU1IDEwMDY0NAotLS0gYS9MaWIvaG1hYy5weQorKysgYi9MaWIvaG1hYy5weQpAQCAtNCw3ICs0LDcgQEAKICIiIgogCiBpbXBvcnQgd2FybmluZ3MgYXMgX3dhcm5pbmdzCi1mcm9tIG9wZXJhdG9yIGltcG9ydCBfY29tcGFyZV9kaWdlc3QgYXMgY29tcGFyZV9kaWdlc3QKK2Zyb20gX29wZXJhdG9yIGltcG9ydCBfY29tcGFyZV9kaWdlc3QgYXMgY29tcGFyZV9kaWdlc3QKIAogdHJhbnNfNUMgPSBieXRlcygoeCBeIDB4NUMpIGZvciB4IGluIHJhbmdlKDI1NikpCiB0cmFuc18zNiA9IGJ5dGVzKCh4IF4gMHgzNikgZm9yIHggaW4gcmFuZ2UoMjU2KSkKZGlmZiAtLWdpdCBhL0xpYi9odG1sL3BhcnNlci5weSBiL0xpYi9odG1sL3BhcnNlci5weQppbmRleCA2MGEzMjJhLi4xOGYzMTE1IDEwMDY0NAotLS0gYS9MaWIvaHRtbC9wYXJzZXIucHkKKysrIGIvTGliL2h0bWwvcGFyc2VyLnB5CkBAIC0xMiw2ICsxMiw4IEBACiBpbXBvcnQgcmUKIGltcG9ydCB3YXJuaW5ncwogCitfX2FsbF9fID0gWydIVE1MUGFyc2VyJ10KKwogIyBSZWd1bGFyIGV4cHJlc3Npb25zIHVzZWQgZm9yIHBhcnNpbmcKIAogaW50ZXJlc3Rpbmdfbm9ybWFsID0gcmUuY29tcGlsZSgnWyY8XScpCmRpZmYgLS1naXQgYS9MaWIvaHR0cC9jbGllbnQucHkgYi9MaWIvaHR0cC9jbGllbnQucHkKaW5kZXggYjcyY2YwOC4uOTM5NjE1YiAxMDA2NDQKLS0tIGEvTGliL2h0dHAvY2xpZW50LnB5CisrKyBiL0xpYi9odHRwL2NsaWVudC5weQpAQCAtMjY3LDggKzI2Nyw2IEBACiAgICAgcmV0dXJuIGVtYWlsLnBhcnNlci5QYXJzZXIoX2NsYXNzPV9jbGFzcykucGFyc2VzdHIoaHN0cmluZykKIAogCi1fc3RyaWN0X3NlbnRpbmVsID0gb2JqZWN0KCkKLQogY2xhc3MgSFRUUFJlc3BvbnNlKGlvLlJhd0lPQmFzZSk6CiAKICAgICAjIFNlZSBSRkMgMjYxNiBzZWMgMTkuNiBhbmQgUkZDIDE5NDUgc2VjIDYgZm9yIGRldGFpbHMuCkBAIC0yNzgsNyArMjc2LDcgQEAKICAgICAjIHRleHQgZm9sbG93aW5nIFJGQyAyMDQ3LiAgVGhlIGJhc2ljIHN0YXR1cyBsaW5lIHBhcnNpbmcgb25seQogICAgICMgYWNjZXB0cyBpc28tODg1OS0xLgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2ssIGRlYnVnbGV2ZWw9MCwgc3RyaWN0PV9zdHJpY3Rfc2VudGluZWwsIG1ldGhvZD1Ob25lLCB1cmw9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2ssIGRlYnVnbGV2ZWw9MCwgbWV0aG9kPU5vbmUsIHVybD1Ob25lKToKICAgICAgICAgIyBJZiB0aGUgcmVzcG9uc2UgaW5jbHVkZXMgYSBjb250ZW50LWxlbmd0aCBoZWFkZXIsIHdlIG5lZWQgdG8KICAgICAgICAgIyBtYWtlIHN1cmUgdGhhdCB0aGUgY2xpZW50IGRvZXNuJ3QgcmVhZCBtb3JlIHRoYW4gdGhlCiAgICAgICAgICMgc3BlY2lmaWVkIG51bWJlciBvZiBieXRlcy4gIElmIGl0IGRvZXMsIGl0IHdpbGwgYmxvY2sgdW50aWwKQEAgLTI4OCwxMCArMjg2LDYgQEAKICAgICAgICAgIyBjbGllbnRzIHVubGVzcyB0aGV5IGtub3cgd2hhdCB0aGV5IGFyZSBkb2luZy4KICAgICAgICAgc2VsZi5mcCA9IHNvY2subWFrZWZpbGUoInJiIikKICAgICAgICAgc2VsZi5kZWJ1Z2xldmVsID0gZGVidWdsZXZlbAotICAgICAgICBpZiBzdHJpY3QgaXMgbm90IF9zdHJpY3Rfc2VudGluZWw6Ci0gICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJ0aGUgJ3N0cmljdCcgYXJndW1lbnQgaXNuJ3Qgc3VwcG9ydGVkIGFueW1vcmU7ICIKLSAgICAgICAgICAgICAgICAiaHR0cC5jbGllbnQgbm93IGFsd2F5cyBhc3N1bWVzIEhUVFAvMS54IGNvbXBsaWFudCBzZXJ2ZXJzLiIsCi0gICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQogICAgICAgICBzZWxmLl9tZXRob2QgPSBtZXRob2QKIAogICAgICAgICAjIFRoZSBIVFRQUmVzcG9uc2Ugb2JqZWN0IGlzIHJldHVybmVkIHZpYSB1cmxsaWIuICBUaGUgY2xpZW50cwpAQCAtNzI4LDEzICs3MjIsMTcgQEAKICAgICBkZWZhdWx0X3BvcnQgPSBIVFRQX1BPUlQKICAgICBhdXRvX29wZW4gPSAxCiAgICAgZGVidWdsZXZlbCA9IDAKKyAgICAjIFRDUCBNYXhpbXVtIFNlZ21lbnQgU2l6ZSAoTVNTKSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBUQ1Agc3RhY2sgb24KKyAgICAjIGEgcGVyLWNvbm5lY3Rpb24gYmFzaXMuICBUaGVyZSBpcyBubyBzaW1wbGUgYW5kIGVmZmljaWVudAorICAgICMgcGxhdGZvcm0gaW5kZXBlbmRlbnQgbWVjaGFuaXNtIGZvciBkZXRlcm1pbmluZyB0aGUgTVNTLCBzbworICAgICMgaW5zdGVhZCBhIHJlYXNvbmFibGUgZXN0aW1hdGUgaXMgY2hvc2VuLiAgVGhlIGdldHNvY2tvcHQoKQorICAgICMgaW50ZXJmYWNlIHVzaW5nIHRoZSBUQ1BfTUFYU0VHIHBhcmFtZXRlciBtYXkgYmUgYSBzdWl0YWJsZQorICAgICMgYXBwcm9hY2ggb24gc29tZSBvcGVyYXRpbmcgc3lzdGVtcy4gQSB2YWx1ZSBvZiAxNktpQiBpcyBjaG9zZW4KKyAgICAjIGFzIGEgcmVhc29uYWJsZSBlc3RpbWF0ZSBvZiB0aGUgbWF4aW11bSBNU1MuCisgICAgbXNzID0gMTYzODQKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0PU5vbmUsIHN0cmljdD1fc3RyaWN0X3NlbnRpbmVsLAotICAgICAgICAgICAgICAgICB0aW1lb3V0PXNvY2tldC5fR0xPQkFMX0RFRkFVTFRfVElNRU9VVCwgc291cmNlX2FkZHJlc3M9Tm9uZSk6Ci0gICAgICAgIGlmIHN0cmljdCBpcyBub3QgX3N0cmljdF9zZW50aW5lbDoKLSAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oInRoZSAnc3RyaWN0JyBhcmd1bWVudCBpc24ndCBzdXBwb3J0ZWQgYW55bW9yZTsgIgotICAgICAgICAgICAgICAgICJodHRwLmNsaWVudCBub3cgYWx3YXlzIGFzc3VtZXMgSFRUUC8xLnggY29tcGxpYW50IHNlcnZlcnMuIiwKLSAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnQ9Tm9uZSwgdGltZW91dD1zb2NrZXQuX0dMT0JBTF9ERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzPU5vbmUpOgogICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CiAgICAgICAgIHNlbGYuc291cmNlX2FkZHJlc3MgPSBzb3VyY2VfYWRkcmVzcwogICAgICAgICBzZWxmLnNvY2sgPSBOb25lCkBAIC04MDAsOCArNzk4LDggQEAKIAogICAgICAgICBpZiBjb2RlICE9IDIwMDoKICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQotICAgICAgICAgICAgcmFpc2Ugc29ja2V0LmVycm9yKCJUdW5uZWwgY29ubmVjdGlvbiBmYWlsZWQ6ICVkICVzIiAlIChjb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLnN0cmlwKCkpKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigiVHVubmVsIGNvbm5lY3Rpb24gZmFpbGVkOiAlZCAlcyIgJSAoY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Uuc3RyaXAoKSkpCiAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICBsaW5lID0gcmVzcG9uc2UuZnAucmVhZGxpbmUoX01BWExJTkUgKyAxKQogICAgICAgICAgICAgaWYgbGVuKGxpbmUpID4gX01BWExJTkU6CkBAIC04OTUsOCArODkzLDExIEBACiAgICAgICAgIGRlbCBzZWxmLl9idWZmZXJbOl0KICAgICAgICAgIyBJZiBtc2cgYW5kIG1lc3NhZ2VfYm9keSBhcmUgc2VudCBpbiBhIHNpbmdsZSBzZW5kKCkgY2FsbCwKICAgICAgICAgIyBpdCB3aWxsIGF2b2lkIHBlcmZvcm1hbmNlIHByb2JsZW1zIGNhdXNlZCBieSB0aGUgaW50ZXJhY3Rpb24KLSAgICAgICAgIyBiZXR3ZWVuIGRlbGF5ZWQgYWNrIGFuZCB0aGUgTmFnbGUgYWxnb3JpdGhtLgotICAgICAgICBpZiBpc2luc3RhbmNlKG1lc3NhZ2VfYm9keSwgYnl0ZXMpOgorICAgICAgICAjIGJldHdlZW4gZGVsYXllZCBhY2sgYW5kIHRoZSBOYWdsZSBhbGdvcml0aG0uIEhvd2V2ZXIsCisgICAgICAgICMgdGhlcmUgaXMgbm8gcGVyZm9ybWFuY2UgZ2FpbiBpZiB0aGUgbWVzc2FnZSBpcyBsYXJnZXIKKyAgICAgICAgIyB0aGFuIE1TUyAoYW5kIHRoZXJlIGlzIGEgbWVtb3J5IHBlbmFsdHkgZm9yIHRoZSBtZXNzYWdlCisgICAgICAgICMgY29weSkuCisgICAgICAgIGlmIGlzaW5zdGFuY2UobWVzc2FnZV9ib2R5LCBieXRlcykgYW5kIGxlbihtZXNzYWdlX2JvZHkpIDwgc2VsZi5tc3M6CiAgICAgICAgICAgICBtc2cgKz0gbWVzc2FnZV9ib2R5CiAgICAgICAgICAgICBtZXNzYWdlX2JvZHkgPSBOb25lCiAgICAgICAgIHNlbGYuc2VuZChtc2cpCkBAIC0xMTY2LDkgKzExNjcsMTAgQEAKICAgICAgICAgIyBYWFggU2hvdWxkIGtleV9maWxlIGFuZCBjZXJ0X2ZpbGUgYmUgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgY29udGV4dD8KIAogICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgcG9ydD1Ob25lLCBrZXlfZmlsZT1Ob25lLCBjZXJ0X2ZpbGU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgIHN0cmljdD1fc3RyaWN0X3NlbnRpbmVsLCB0aW1lb3V0PXNvY2tldC5fR0xPQkFMX0RFRkFVTFRfVElNRU9VVCwKLSAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzPU5vbmUsICosIGNvbnRleHQ9Tm9uZSwgY2hlY2tfaG9zdG5hbWU9Tm9uZSk6Ci0gICAgICAgICAgICBzdXBlcihIVFRQU0Nvbm5lY3Rpb24sIHNlbGYpLl9faW5pdF9fKGhvc3QsIHBvcnQsIHN0cmljdCwgdGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9c29ja2V0Ll9HTE9CQUxfREVGQVVMVF9USU1FT1VULAorICAgICAgICAgICAgICAgICAgICAgc291cmNlX2FkZHJlc3M9Tm9uZSwgKiwgY29udGV4dD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgY2hlY2tfaG9zdG5hbWU9Tm9uZSk6CisgICAgICAgICAgICBzdXBlcihIVFRQU0Nvbm5lY3Rpb24sIHNlbGYpLl9faW5pdF9fKGhvc3QsIHBvcnQsIHRpbWVvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzKQogICAgICAgICAgICAgc2VsZi5rZXlfZmlsZSA9IGtleV9maWxlCiAgICAgICAgICAgICBzZWxmLmNlcnRfZmlsZSA9IGNlcnRfZmlsZQpkaWZmIC0tZ2l0IGEvTGliL2h0dHAvY29va2llamFyLnB5IGIvTGliL2h0dHAvY29va2llamFyLnB5CmluZGV4IGRkYjc5YzUuLmJlODI4ZWIgMTAwNjQ0Ci0tLSBhL0xpYi9odHRwL2Nvb2tpZWphci5weQorKysgYi9MaWIvaHR0cC9jb29raWVqYXIucHkKQEAgLTExOTMsOCArMTE5Myw3IEBACiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBtYXBwaW5nID0gVHJ1ZQotICAgICAgICAgICAgZm9yIHN1Ym9iaiBpbiBkZWVwdmFsdWVzKG9iaik6Ci0gICAgICAgICAgICAgICAgeWllbGQgc3Vib2JqCisgICAgICAgICAgICB5aWVsZCBmcm9tIGRlZXB2YWx1ZXMob2JqKQogICAgICAgICBpZiBub3QgbWFwcGluZzoKICAgICAgICAgICAgIHlpZWxkIG9iagogCkBAIC0xNzMxLDggKzE3MzAsOCBAQAogICAgICAgICByZXR1cm4gIjwlc1slc10+IiAlIChzZWxmLl9fY2xhc3NfXywgIiwgIi5qb2luKHIpKQogCiAKLSMgZGVyaXZlcyBmcm9tIElPRXJyb3IgZm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IHdpdGggUHl0aG9uIDIuNC4wCi1jbGFzcyBMb2FkRXJyb3IoSU9FcnJvcik6IHBhc3MKKyMgZGVyaXZlcyBmcm9tIE9TRXJyb3IgZm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IHdpdGggUHl0aG9uIDIuNC4wCitjbGFzcyBMb2FkRXJyb3IoT1NFcnJvcik6IHBhc3MKIAogY2xhc3MgRmlsZUNvb2tpZUphcihDb29raWVKYXIpOgogICAgICIiIkNvb2tpZUphciB0aGF0IGNhbiBiZSBsb2FkZWQgZnJvbSBhbmQgc2F2ZWQgdG8gYSBmaWxlLiIiIgpAQCAtMTc2MiwxNyArMTc2MSwxNCBAQAogICAgICAgICAgICAgaWYgc2VsZi5maWxlbmFtZSBpcyBub3QgTm9uZTogZmlsZW5hbWUgPSBzZWxmLmZpbGVuYW1lCiAgICAgICAgICAgICBlbHNlOiByYWlzZSBWYWx1ZUVycm9yKE1JU1NJTkdfRklMRU5BTUVfVEVYVCkKIAotICAgICAgICBmID0gb3BlbihmaWxlbmFtZSkKLSAgICAgICAgdHJ5OgorICAgICAgICB3aXRoIG9wZW4oZmlsZW5hbWUpIGFzIGY6CiAgICAgICAgICAgICBzZWxmLl9yZWFsbHlfbG9hZChmLCBmaWxlbmFtZSwgaWdub3JlX2Rpc2NhcmQsIGlnbm9yZV9leHBpcmVzKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgZi5jbG9zZSgpCiAKICAgICBkZWYgcmV2ZXJ0KHNlbGYsIGZpbGVuYW1lPU5vbmUsCiAgICAgICAgICAgICAgICBpZ25vcmVfZGlzY2FyZD1GYWxzZSwgaWdub3JlX2V4cGlyZXM9RmFsc2UpOgogICAgICAgICAiIiJDbGVhciBhbGwgY29va2llcyBhbmQgcmVsb2FkIGNvb2tpZXMgZnJvbSBhIHNhdmVkIGZpbGUuCiAKLSAgICAgICAgUmFpc2VzIExvYWRFcnJvciAob3IgSU9FcnJvcikgaWYgcmV2ZXJzaW9uIGlzIG5vdCBzdWNjZXNzZnVsOyB0aGUKKyAgICAgICAgUmFpc2VzIExvYWRFcnJvciAob3IgT1NFcnJvcikgaWYgcmV2ZXJzaW9uIGlzIG5vdCBzdWNjZXNzZnVsOyB0aGUKICAgICAgICAgb2JqZWN0J3Mgc3RhdGUgd2lsbCBub3QgYmUgYWx0ZXJlZCBpZiB0aGlzIGhhcHBlbnMuCiAKICAgICAgICAgIiIiCkBAIC0xNzg3LDcgKzE3ODMsNyBAQAogICAgICAgICAgICAgc2VsZi5fY29va2llcyA9IHt9CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi5sb2FkKGZpbGVuYW1lLCBpZ25vcmVfZGlzY2FyZCwgaWdub3JlX2V4cGlyZXMpCi0gICAgICAgICAgICBleGNlcHQgKExvYWRFcnJvciwgSU9FcnJvcik6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICBzZWxmLl9jb29raWVzID0gb2xkX3N0YXRlCiAgICAgICAgICAgICAgICAgcmFpc2UKIApAQCAtMTg1NywxNSArMTg1MywxMiBAQAogICAgICAgICAgICAgaWYgc2VsZi5maWxlbmFtZSBpcyBub3QgTm9uZTogZmlsZW5hbWUgPSBzZWxmLmZpbGVuYW1lCiAgICAgICAgICAgICBlbHNlOiByYWlzZSBWYWx1ZUVycm9yKE1JU1NJTkdfRklMRU5BTUVfVEVYVCkKIAotICAgICAgICBmID0gb3BlbihmaWxlbmFtZSwgInciKQotICAgICAgICB0cnk6CisgICAgICAgIHdpdGggb3BlbihmaWxlbmFtZSwgInciKSBhcyBmOgogICAgICAgICAgICAgIyBUaGVyZSByZWFsbHkgaXNuJ3QgYW4gTFdQIENvb2tpZXMgMi4wIGZvcm1hdCwgYnV0IHRoaXMgaW5kaWNhdGVzCiAgICAgICAgICAgICAjIHRoYXQgdGhlcmUgaXMgZXh0cmEgaW5mb3JtYXRpb24gaW4gaGVyZSAoZG9tYWluX2RvdCBhbmQKICAgICAgICAgICAgICMgcG9ydF9zcGVjKSB3aGlsZSBzdGlsbCBiZWluZyBjb21wYXRpYmxlIHdpdGggbGlid3d3LXBlcmwsIEkgaG9wZS4KICAgICAgICAgICAgIGYud3JpdGUoIiNMV1AtQ29va2llcy0yLjBcbiIpCiAgICAgICAgICAgICBmLndyaXRlKHNlbGYuYXNfbHdwX3N0cihpZ25vcmVfZGlzY2FyZCwgaWdub3JlX2V4cGlyZXMpKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgZi5jbG9zZSgpCiAKICAgICBkZWYgX3JlYWxseV9sb2FkKHNlbGYsIGYsIGZpbGVuYW1lLCBpZ25vcmVfZGlzY2FyZCwgaWdub3JlX2V4cGlyZXMpOgogICAgICAgICBtYWdpYyA9IGYucmVhZGxpbmUoKQpAQCAtMTkzOCw4ICsxOTMxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGlnbm9yZV9leHBpcmVzIGFuZCBjLmlzX2V4cGlyZWQobm93KToKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0X2Nvb2tpZShjKQotCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgICAgICBfd2Fybl91bmhhbmRsZWRfZXhjZXB0aW9uKCkKQEAgLTIwNDUsNyArMjAzNyw3IEBACiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICAgc2VsZi5zZXRfY29va2llKGMpCiAKLSAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgcmFpc2UKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgIF93YXJuX3VuaGFuZGxlZF9leGNlcHRpb24oKQpAQCAtMjA1Nyw4ICsyMDQ5LDcgQEAKICAgICAgICAgICAgIGlmIHNlbGYuZmlsZW5hbWUgaXMgbm90IE5vbmU6IGZpbGVuYW1lID0gc2VsZi5maWxlbmFtZQogICAgICAgICAgICAgZWxzZTogcmFpc2UgVmFsdWVFcnJvcihNSVNTSU5HX0ZJTEVOQU1FX1RFWFQpCiAKLSAgICAgICAgZiA9IG9wZW4oZmlsZW5hbWUsICJ3IikKLSAgICAgICAgdHJ5OgorICAgICAgICB3aXRoIG9wZW4oZmlsZW5hbWUsICJ3IikgYXMgZjoKICAgICAgICAgICAgIGYud3JpdGUoc2VsZi5oZWFkZXIpCiAgICAgICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQogICAgICAgICAgICAgZm9yIGNvb2tpZSBpbiBzZWxmOgpAQCAtMjA4Nyw1ICsyMDc4LDMgQEAKICAgICAgICAgICAgICAgICAgICAgIlx0Ii5qb2luKFtjb29raWUuZG9tYWluLCBpbml0aWFsX2RvdCwgY29va2llLnBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdXJlLCBleHBpcmVzLCBuYW1lLCB2YWx1ZV0pKwogICAgICAgICAgICAgICAgICAgICAiXG4iKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgZi5jbG9zZSgpCmRpZmYgLS1naXQgYS9MaWIvaHR0cC9zZXJ2ZXIucHkgYi9MaWIvaHR0cC9zZXJ2ZXIucHkKaW5kZXggYzRhYzcwMy4uZTQ3ZTAzNCAxMDA2NDQKLS0tIGEvTGliL2h0dHAvc2VydmVyLnB5CisrKyBiL0xpYi9odHRwL3NlcnZlci5weQpAQCAtNDAxLDEyICs0MDEsMTcgQEAKICAgICAgICAgd2hpbGUgbm90IHNlbGYuY2xvc2VfY29ubmVjdGlvbjoKICAgICAgICAgICAgIHNlbGYuaGFuZGxlX29uZV9yZXF1ZXN0KCkKIAotICAgIGRlZiBzZW5kX2Vycm9yKHNlbGYsIGNvZGUsIG1lc3NhZ2U9Tm9uZSk6CisgICAgZGVmIHNlbmRfZXJyb3Ioc2VsZiwgY29kZSwgbWVzc2FnZT1Ob25lLCBleHBsYWluPU5vbmUpOgogICAgICAgICAiIiJTZW5kIGFuZCBsb2cgYW4gZXJyb3IgcmVwbHkuCiAKLSAgICAgICAgQXJndW1lbnRzIGFyZSB0aGUgZXJyb3IgY29kZSwgYW5kIGEgZGV0YWlsZWQgbWVzc2FnZS4KLSAgICAgICAgVGhlIGRldGFpbGVkIG1lc3NhZ2UgZGVmYXVsdHMgdG8gdGhlIHNob3J0IGVudHJ5IG1hdGNoaW5nIHRoZQotICAgICAgICByZXNwb25zZSBjb2RlLgorICAgICAgICBBcmd1bWVudHMgYXJlCisgICAgICAgICogY29kZTogICAgYW4gSFRUUCBlcnJvciBjb2RlCisgICAgICAgICAgICAgICAgICAgMyBkaWdpdHMKKyAgICAgICAgKiBtZXNzYWdlOiBhIHNpbXBsZSBvcHRpb25hbCAxIGxpbmUgcmVhc29uIHBocmFzZS4KKyAgICAgICAgICAgICAgICAgICAqKCBIVEFCIC8gU1AgLyBWQ0hBUiAvICV4ODAtRkYgKQorICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzIHRvIHNob3J0IGVudHJ5IG1hdGNoaW5nIHRoZSByZXNwb25zZSBjb2RlCisgICAgICAgICogZXhwbGFpbjogYSBkZXRhaWxlZCBtZXNzYWdlIGRlZmF1bHRzIHRvIHRoZSBsb25nIGVudHJ5CisgICAgICAgICAgICAgICAgICAgbWF0Y2hpbmcgdGhlIHJlc3BvbnNlIGNvZGUuCiAKICAgICAgICAgVGhpcyBzZW5kcyBhbiBlcnJvciByZXNwb25zZSAoc28gaXQgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueQogICAgICAgICBvdXRwdXQgaGFzIGJlZW4gZ2VuZXJhdGVkKSwgbG9ncyB0aGUgZXJyb3IsIGFuZCBmaW5hbGx5IHNlbmRzCkBAIC00MjAsMTcgKzQyNSwyMCBAQAogICAgICAgICAgICAgc2hvcnRtc2csIGxvbmdtc2cgPSAnPz8/JywgJz8/PycKICAgICAgICAgaWYgbWVzc2FnZSBpcyBOb25lOgogICAgICAgICAgICAgbWVzc2FnZSA9IHNob3J0bXNnCi0gICAgICAgIGV4cGxhaW4gPSBsb25nbXNnCisgICAgICAgIGlmIGV4cGxhaW4gaXMgTm9uZToKKyAgICAgICAgICAgIGV4cGxhaW4gPSBsb25nbXNnCiAgICAgICAgIHNlbGYubG9nX2Vycm9yKCJjb2RlICVkLCBtZXNzYWdlICVzIiwgY29kZSwgbWVzc2FnZSkKICAgICAgICAgIyB1c2luZyBfcXVvdGVfaHRtbCB0byBwcmV2ZW50IENyb3NzIFNpdGUgU2NyaXB0aW5nIGF0dGFja3MgKHNlZSBidWcgIzExMDAyMDEpCiAgICAgICAgIGNvbnRlbnQgPSAoc2VsZi5lcnJvcl9tZXNzYWdlX2Zvcm1hdCAlCi0gICAgICAgICAgICAgICAgICAgeydjb2RlJzogY29kZSwgJ21lc3NhZ2UnOiBfcXVvdGVfaHRtbChtZXNzYWdlKSwgJ2V4cGxhaW4nOiBleHBsYWlufSkKKyAgICAgICAgICAgICAgICAgICB7J2NvZGUnOiBjb2RlLCAnbWVzc2FnZSc6IF9xdW90ZV9odG1sKG1lc3NhZ2UpLCAnZXhwbGFpbic6IF9xdW90ZV9odG1sKGV4cGxhaW4pfSkKKyAgICAgICAgYm9keSA9IGNvbnRlbnQuZW5jb2RlKCdVVEYtOCcsICdyZXBsYWNlJykKICAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKGNvZGUsIG1lc3NhZ2UpCiAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtVHlwZSIsIHNlbGYuZXJyb3JfY29udGVudF90eXBlKQogICAgICAgICBzZWxmLnNlbmRfaGVhZGVyKCdDb25uZWN0aW9uJywgJ2Nsb3NlJykKKyAgICAgICAgc2VsZi5zZW5kX2hlYWRlcignQ29udGVudC1MZW5ndGgnLCBpbnQobGVuKGJvZHkpKSkKICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCiAgICAgICAgIGlmIHNlbGYuY29tbWFuZCAhPSAnSEVBRCcgYW5kIGNvZGUgPj0gMjAwIGFuZCBjb2RlIG5vdCBpbiAoMjA0LCAzMDQpOgotICAgICAgICAgICAgc2VsZi53ZmlsZS53cml0ZShjb250ZW50LmVuY29kZSgnVVRGLTgnLCAncmVwbGFjZScpKQorICAgICAgICAgICAgc2VsZi53ZmlsZS53cml0ZShib2R5KQogCiAgICAgZGVmIHNlbmRfcmVzcG9uc2Uoc2VsZiwgY29kZSwgbWVzc2FnZT1Ob25lKToKICAgICAgICAgIiIiQWRkIHRoZSByZXNwb25zZSBoZWFkZXIgdG8gdGhlIGhlYWRlcnMgYnVmZmVyIGFuZCBsb2cgdGhlCkBAIC03MDksNyArNzE3LDcgQEAKICAgICAgICAgY3R5cGUgPSBzZWxmLmd1ZXNzX3R5cGUocGF0aCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZiA9IG9wZW4ocGF0aCwgJ3JiJykKLSAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgc2VsZi5zZW5kX2Vycm9yKDQwNCwgIkZpbGUgbm90IGZvdW5kIikKICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZSgyMDApCkBAIC03MzAsNyArNzM4LDcgQEAKICAgICAgICAgIiIiCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGxpc3QgPSBvcy5saXN0ZGlyKHBhdGgpCi0gICAgICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBzZWxmLnNlbmRfZXJyb3IoNDA0LCAiTm8gcGVybWlzc2lvbiB0byBsaXN0IGRpcmVjdG9yeSIpCiAgICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICBsaXN0LnNvcnQoa2V5PWxhbWJkYSBhOiBhLmxvd2VyKCkpCkBAIC0xMTIxLDcgKzExMjksNyBAQAogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgb3Muc2V0dWlkKG5vYm9keSkKLSAgICAgICAgICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgICAgICBvcy5kdXAyKHNlbGYucmZpbGUuZmlsZW5vKCksIDApCiAgICAgICAgICAgICAgICAgb3MuZHVwMihzZWxmLndmaWxlLmZpbGVubygpLCAxKQpkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvRWRpdG9yV2luZG93LnB5IGIvTGliL2lkbGVsaWIvRWRpdG9yV2luZG93LnB5CmluZGV4IDI3ZWI4NmYuLmJkZmViOTUgMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL0VkaXRvcldpbmRvdy5weQorKysgYi9MaWIvaWRsZWxpYi9FZGl0b3JXaW5kb3cucHkKQEAgLTU0OCw3ICs1NDgsNyBAQAogICAgICAgICBpZiBzeXMucGxhdGZvcm1bOjNdID09ICd3aW4nOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIG9zLnN0YXJ0ZmlsZShzZWxmLmhlbHBfdXJsKQotICAgICAgICAgICAgZXhjZXB0IFdpbmRvd3NFcnJvciBhcyB3aHk6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyB3aHk6CiAgICAgICAgICAgICAgICAgdGtNZXNzYWdlQm94LnNob3dlcnJvcih0aXRsZT0nRG9jdW1lbnQgU3RhcnQgRmFpbHVyZScsCiAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9c3RyKHdoeSksIHBhcmVudD1zZWxmLnRleHQpCiAgICAgICAgIGVsc2U6CkBAIC04NjcsNyArODY3LDcgQEAKICAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybVs6M10gPT0gJ3dpbic6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBvcy5zdGFydGZpbGUoaGVscGZpbGUpCi0gICAgICAgICAgICAgICAgZXhjZXB0IFdpbmRvd3NFcnJvciBhcyB3aHk6CisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgd2h5OgogICAgICAgICAgICAgICAgICAgICB0a01lc3NhZ2VCb3guc2hvd2Vycm9yKHRpdGxlPSdEb2N1bWVudCBTdGFydCBGYWlsdXJlJywKICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9c3RyKHdoeSksIHBhcmVudD1zZWxmLnRleHQpCiAgICAgICAgICAgICBlbHNlOgpAQCAtOTAxLDcgKzkwMSw3IEBACiAgICAgICAgICAgICB3aXRoIG9wZW4oc2VsZi5yZWNlbnRfZmlsZXNfcGF0aCwgJ3cnLAogICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9J3V0Zl84JywgZXJyb3JzPSdyZXBsYWNlJykgYXMgcmZfZmlsZToKICAgICAgICAgICAgICAgICByZl9maWxlLndyaXRlbGluZXMocmZfbGlzdCkKLSAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlcnI6CiAgICAgICAgICAgICBpZiBub3QgZ2V0YXR0cihzZWxmLnJvb3QsICJyZWNlbnRmaWxlbGlzdF9lcnJvcl9kaXNwbGF5ZWQiLCBGYWxzZSk6CiAgICAgICAgICAgICAgICAgc2VsZi5yb290LnJlY2VudGZpbGVsaXN0X2Vycm9yX2Rpc3BsYXllZCA9IFRydWUKICAgICAgICAgICAgICAgICB0a01lc3NhZ2VCb3guc2hvd2Vycm9yKHRpdGxlPSdJRExFIEVycm9yJywKZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL0ZpbGVMaXN0LnB5IGIvTGliL2lkbGVsaWIvRmlsZUxpc3QucHkKaW5kZXggMzdhMzM3ZS4uYTk5ODlhOCAxMDA2NDQKLS0tIGEvTGliL2lkbGVsaWIvRmlsZUxpc3QucHkKKysrIGIvTGliL2lkbGVsaWIvRmlsZUxpc3QucHkKQEAgLTEwMyw3ICsxMDMsNyBAQAogICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2FicyhmaWxlbmFtZSk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgcHdkID0gb3MuZ2V0Y3dkKCkKLSAgICAgICAgICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmpvaW4ocHdkLCBmaWxlbmFtZSkKZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL0dyZXBEaWFsb2cucHkgYi9MaWIvaWRsZWxpYi9HcmVwRGlhbG9nLnB5CmluZGV4IDI3ZmNjMzMuLjFkOGQ1MWIgMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL0dyZXBEaWFsb2cucHkKKysrIGIvTGliL2lkbGVsaWIvR3JlcERpYWxvZy5weQpAQCAtODIsNyArODIsNyBAQAogICAgICAgICBmb3IgZm4gaW4gbGlzdDoKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBmID0gb3BlbihmbiwgZXJyb3JzPSdyZXBsYWNlJykKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIG1zZzoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIG1zZzoKICAgICAgICAgICAgICAgICBwcmludChtc2cpCiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGxpbmVubyA9IDAKQEAgLTExMCw3ICsxMTAsNyBAQAogICAgIGRlZiBmaW5kZmlsZXMoc2VsZiwgZGlyLCBiYXNlLCByZWMpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBuYW1lcyA9IG9zLmxpc3RkaXIoZGlyIG9yIG9zLmN1cmRpcikKLSAgICAgICAgZXhjZXB0IG9zLmVycm9yIGFzIG1zZzoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICAgICAgcHJpbnQobXNnKQogICAgICAgICAgICAgcmV0dXJuIFtdCiAgICAgICAgIGxpc3QgPSBbXQpkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvSU9CaW5kaW5nLnB5IGIvTGliL2lkbGVsaWIvSU9CaW5kaW5nLnB5CmluZGV4IDlmZTA3MDEuLmRkYTM2MzQgMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL0lPQmluZGluZy5weQorKysgYi9MaWIvaWRsZWxpYi9JT0JpbmRpbmcucHkKQEAgLTIxMyw3ICsyMTMsNyBAQAogICAgICAgICAgICAgZi5zZWVrKDApCiAgICAgICAgICAgICBieXRlcyA9IGYucmVhZCgpCiAgICAgICAgICAgICBmLmNsb3NlKCkKLSAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgbXNnOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBtc2c6CiAgICAgICAgICAgICB0a01lc3NhZ2VCb3guc2hvd2Vycm9yKCJJL08gRXJyb3IiLCBzdHIobXNnKSwgbWFzdGVyPXNlbGYudGV4dCkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICBjaGFycywgY29udmVydGVkID0gc2VsZi5fZGVjb2RlKHR3b19saW5lcywgYnl0ZXMpCkBAIC0zNzgsNyArMzc4LDcgQEAKICAgICAgICAgICAgIGYuZmx1c2goKQogICAgICAgICAgICAgZi5jbG9zZSgpCiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBtc2c6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIG1zZzoKICAgICAgICAgICAgIHRrTWVzc2FnZUJveC5zaG93ZXJyb3IoIkkvTyBFcnJvciIsIHN0cihtc2cpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXN0ZXI9c2VsZi50ZXh0KQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCkBAIC01MDQsNyArNTA0LDcgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBwd2QgPSBvcy5nZXRjd2QoKQotICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgcHdkID0gIiIKICAgICAgICAgICAgIHJldHVybiBwd2QsICIiCiAKZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL05FV1MudHh0IGIvTGliL2lkbGVsaWIvTkVXUy50eHQKaW5kZXggNTQ1MDcwMS4uNDc4YzE4MyAxMDA2NDQKLS0tIGEvTGliL2lkbGVsaWIvTkVXUy50eHQKKysrIGIvTGliL2lkbGVsaWIvTkVXUy50eHQKQEAgLTEsMTIgKzEsMTAgQEAKLVdoYXQncyBOZXcgaW4gSURMRSAzLjMuMj8KK1doYXQncyBOZXcgaW4gSURMRSAzLjQuMD8KID09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLSBJc3N1ZSAjMTczOTA6IERpc3BsYXkgUHl0aG9uIHZlcnNpb24gb24gSWRsZSB0aXRsZSBiYXIuCiAgIEluaXRpYWwgcGF0Y2ggYnkgRWRtb25kIEJ1cm5ldHQuCiAKLQotV2hhdCdzIE5ldyBpbiBJRExFIDMuMy4xPwotPT09PT09PT09PT09PT09PT09PT09PT09PQorLSBJc3N1ZSAjNTA2NjogVXBkYXRlIElETEUgZG9jcy4gUGF0Y2ggYnkgVG9kZCBSb3ZpdG8uCiAKIC0gSXNzdWUgIzE3NjI1OiBDbG9zZSB0aGUgcmVwbGFjZSBkaWFsb2cgYWZ0ZXIgaXQgaXMgdXNlZC4KIApkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvT3V0cHV0V2luZG93LnB5IGIvTGliL2lkbGVsaWIvT3V0cHV0V2luZG93LnB5CmluZGV4IDc0NWNjZDIuLjlkYWNjNDkgMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL091dHB1dFdpbmRvdy5weQorKysgYi9MaWIvaWRsZWxpYi9PdXRwdXRXaW5kb3cucHkKQEAgLTEwNiw3ICsxMDYsNyBAQAogICAgICAgICAgICAgICAgICAgICBmID0gb3BlbihmaWxlbmFtZSwgInIiKQogICAgICAgICAgICAgICAgICAgICBmLmNsb3NlKCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBOb25lCmRpZmYgLS1naXQgYS9MaWIvaWRsZWxpYi9QYXRoQnJvd3Nlci5weSBiL0xpYi9pZGxlbGliL1BhdGhCcm93c2VyLnB5CmluZGV4IDA5YjNiYmYuLjhlYTU1M2QgMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL1BhdGhCcm93c2VyLnB5CisrKyBiL0xpYi9pZGxlbGliL1BhdGhCcm93c2VyLnB5CkBAIC00NSw3ICs0NSw3IEBACiAgICAgZGVmIEdldFN1Ykxpc3Qoc2VsZik6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG5hbWVzID0gb3MubGlzdGRpcihzZWxmLmRpciBvciBvcy5jdXJkaXIpCi0gICAgICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICByZXR1cm4gW10KICAgICAgICAgcGFja2FnZXMgPSBbXQogICAgICAgICBmb3IgbmFtZSBpbiBuYW1lczoKZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL1B5U2hlbGwucHkgYi9MaWIvaWRsZWxpYi9QeVNoZWxsLnB5CmluZGV4IDM0ODgyYTYuLjRlMTkyMjYgMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL1B5U2hlbGwucHkKKysrIGIvTGliL2lkbGVsaWIvUHlTaGVsbC5weQpAQCAtNTksNyArNTksNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBmaWxlLndyaXRlKHdhcm5pbmdzLmZvcm1hdHdhcm5pbmcobWVzc2FnZSwgY2F0ZWdvcnksIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVubywgbGluZT1saW5lKSkKLSAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgcGFzcyAgIyMgZmlsZSAocHJvYmFibHkgX19zdGRlcnJfXykgaXMgaW52YWxpZCwgd2FybmluZyBkcm9wcGVkLgogICAgIHdhcm5pbmdzLnNob3d3YXJuaW5nID0gaWRsZV9zaG93d2FybmluZwogICAgIGRlZiBpZGxlX2Zvcm1hdHdhcm5pbmcobWVzc2FnZSwgY2F0ZWdvcnksIGZpbGVuYW1lLCBsaW5lbm8sIGxpbmU9Tm9uZSk6CkBAIC0yMTMsNyArMjEzLDcgQEAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgd2l0aCBvcGVuKHNlbGYuYnJlYWtwb2ludFBhdGgsICJyIikgYXMgZnA6CiAgICAgICAgICAgICAgICAgbGluZXMgPSBmcC5yZWFkbGluZXMoKQotICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBsaW5lcyA9IFtdCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHdpdGggb3BlbihzZWxmLmJyZWFrcG9pbnRQYXRoLCAidyIpIGFzIG5ld19maWxlOgpAQCAtMjI0LDcgKzIyNCw3IEBACiAgICAgICAgICAgICAgICAgYnJlYWtzID0gc2VsZi5icmVha3BvaW50cwogICAgICAgICAgICAgICAgIGlmIGJyZWFrczoKICAgICAgICAgICAgICAgICAgICAgbmV3X2ZpbGUud3JpdGUoZmlsZW5hbWUgKyAnPScgKyBzdHIoYnJlYWtzKSArICdcbicpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGVycjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgogICAgICAgICAgICAgaWYgbm90IGdldGF0dHIoc2VsZi5yb290LCAiYnJlYWtwb2ludF9lcnJvcl9kaXNwbGF5ZWQiLCBGYWxzZSk6CiAgICAgICAgICAgICAgICAgc2VsZi5yb290LmJyZWFrcG9pbnRfZXJyb3JfZGlzcGxheWVkID0gVHJ1ZQogICAgICAgICAgICAgICAgIHRrTWVzc2FnZUJveC5zaG93ZXJyb3IodGl0bGU9J0lETEUgRXJyb3InLApAQCAtMzk4LDcgKzM5OCw3IEBACiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi5ycGNjbHQgPSBNeVJQQ0NsaWVudChhZGRyKQogICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGVycjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmRpc3BsYXlfcG9ydF9iaW5kaW5nX2Vycm9yKCkKQEAgLTUzMiw3ICs1MzIsNyBAQAogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHJlc3BvbnNlID0gY2x0LnBvbGxyZXNwb25zZShzZWxmLmFjdGl2ZV9zZXEsIHdhaXQ9MC4wNSkKLSAgICAgICAgZXhjZXB0IChFT0ZFcnJvciwgSU9FcnJvciwgS2V5Ym9hcmRJbnRlcnJ1cHQpOgorICAgICAgICBleGNlcHQgKEVPRkVycm9yLCBPU0Vycm9yLCBLZXlib2FyZEludGVycnVwdCk6CiAgICAgICAgICAgICAjIGxvc3QgY29ubmVjdGlvbiBvciBzdWJwcm9jZXNzIHRlcm1pbmF0ZWQgaXRzZWxmLCByZXN0YXJ0CiAgICAgICAgICAgICAjIFt0aGUgS0JJIGlzIGZyb20gcnBjLlNvY2tldElPLmhhbmRsZV9FT0YoKV0KICAgICAgICAgICAgIGlmIHNlbGYudGtjb25zb2xlLmNsb3Npbmc6CkBAIC0xMDE1LDcgKzEwMTUsMTAgQEAKICAgICAgICAgICAgICAgICBzZWxmLmNsb3NlKCkKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG5vc3ViID0gIj09PT0gTm8gU3VicHJvY2VzcyA9PT09IgorICAgICAgICAgICAgbm9zdWIgPSAoIj09PT0gTm8gU3VicHJvY2VzcyA9PT09XG5cbiIgKworICAgICAgICAgICAgICAgICAgICAiV0FSTklORzogUnVubmluZyBJRExFIHdpdGhvdXQgYSBTdWJwcm9jZXNzIGlzIGRlcHJlY2F0ZWRcbiIgKworICAgICAgICAgICAgICAgICAgICAiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGxhdGVyIHZlcnNpb24uIFNlZSBIZWxwL0lETEUgSGVscFxuIiArCisgICAgICAgICAgICAgICAgICAgICJmb3IgZGV0YWlscy5cblxuIikKICAgICAgICAgICAgIHN5cy5kaXNwbGF5aG9vayA9IHJwYy5kaXNwbGF5aG9vawogCiAgICAgICAgIHNlbGYud3JpdGUoIlB5dGhvbiAlcyBvbiAlc1xuJXNcbiVzIiAlCkBAIC0xMzczLDcgKzEzNzYsOCBAQAogICAgICAgIGlkbGUgIFstZG5zXSBbLXQgdGl0bGVdIC0gW2FyZ10qCiAKICAgLWggICAgICAgICBwcmludCB0aGlzIGhlbHAgbWVzc2FnZSBhbmQgZXhpdAotICAtbiAgICAgICAgIHJ1biBJRExFIHdpdGhvdXQgYSBzdWJwcm9jZXNzIChzZWUgSGVscC9JRExFIEhlbHAgZm9yIGRldGFpbHMpCisgIC1uICAgICAgICAgcnVuIElETEUgd2l0aG91dCBhIHN1YnByb2Nlc3MgKERFUFJFQ0FURUQsCisgICAgICAgICAgICAgc2VlIEhlbHAvSURMRSBIZWxwIGZvciBkZXRhaWxzKQogCiBUaGUgZm9sbG93aW5nIG9wdGlvbnMgd2lsbCBvdmVycmlkZSB0aGUgSURMRSAnc2V0dGluZ3MnIGNvbmZpZ3VyYXRpb246CiAKQEAgLTE0NTAsNiArMTQ1NCw4IEBACiAgICAgICAgIGlmIG8gPT0gJy1pJzoKICAgICAgICAgICAgIGVuYWJsZV9zaGVsbCA9IFRydWUKICAgICAgICAgaWYgbyA9PSAnLW4nOgorICAgICAgICAgICAgcHJpbnQoIiBXYXJuaW5nOiBydW5uaW5nIElETEUgd2l0aG91dCBhIHN1YnByb2Nlc3MgaXMgZGVwcmVjYXRlZC4iLAorICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQogICAgICAgICAgICAgdXNlX3N1YnByb2Nlc3MgPSBGYWxzZQogICAgICAgICBpZiBvID09ICctcic6CiAgICAgICAgICAgICBzY3JpcHQgPSBhCmRpZmYgLS1naXQgYS9MaWIvaWRsZWxpYi9UcmVlV2lkZ2V0LnB5IGIvTGliL2lkbGVsaWIvVHJlZVdpZGdldC5weQppbmRleCBkNGU1MjRiLi44MzM4OTZjIDEwMDY0NAotLS0gYS9MaWIvaWRsZWxpYi9UcmVlV2lkZ2V0LnB5CisrKyBiL0xpYi9pZGxlbGliL1RyZWVXaWRnZXQucHkKQEAgLTM4Miw3ICszODIsNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBvcy5yZW5hbWUoc2VsZi5wYXRoLCBuZXdwYXRoKQogICAgICAgICAgICAgc2VsZi5wYXRoID0gbmV3cGF0aAotICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgcGFzcwogCiAgICAgZGVmIEdldEljb25OYW1lKHNlbGYpOgpAQCAtMzk1LDcgKzM5NSw3IEBACiAgICAgZGVmIEdldFN1Ykxpc3Qoc2VsZik6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG5hbWVzID0gb3MubGlzdGRpcihzZWxmLnBhdGgpCi0gICAgICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICByZXR1cm4gW10KICAgICAgICAgbmFtZXMuc29ydChrZXkgPSBvcy5wYXRoLm5vcm1jYXNlKQogICAgICAgICBzdWJsaXN0ID0gW10KZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL2NvbmZpZ0hhbmRsZXIucHkgYi9MaWIvaWRsZWxpYi9jb25maWdIYW5kbGVyLnB5CmluZGV4IDViZjI2NjguLmVhMjAxMGUgMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL2NvbmZpZ0hhbmRsZXIucHkKKysrIGIvTGliL2lkbGVsaWIvY29uZmlnSGFuZGxlci5weQpAQCAtMTQyLDcgKzE0Miw3IEBACiAgICAgICAgICAgICBmbmFtZSA9IHNlbGYuZmlsZQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGNmZ0ZpbGUgPSBvcGVuKGZuYW1lLCAndycpCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgIG9zLnVubGluayhmbmFtZSkKICAgICAgICAgICAgICAgICBjZmdGaWxlID0gb3BlbihmbmFtZSwgJ3cnKQogICAgICAgICAgICAgd2l0aCBjZmdGaWxlOgpAQCAtMjA3LDcgKzIwNyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGlyKycsXG4gYnV0IHRoZSBwYXRoIGRvZXMgbm90IGV4aXN0LlxuJykKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUod2FybikKLSAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgICAgIHVzZXJEaXIgPSAnficKICAgICAgICAgaWYgdXNlckRpciA9PSAifiI6ICMgc3RpbGwgbm8gcGF0aCB0byBob21lIQpAQCAtMjE3LDcgKzIxNyw3IEBACiAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyh1c2VyRGlyKToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBvcy5ta2Rpcih1c2VyRGlyKQotICAgICAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBJT0Vycm9yKToKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgIHdhcm4gPSAoJ1xuIFdhcm5pbmc6IHVuYWJsZSB0byBjcmVhdGUgdXNlciBjb25maWcgZGlyZWN0b3J5XG4nKwogICAgICAgICAgICAgICAgICAgICAgICAgdXNlckRpcisnXG4gQ2hlY2sgcGF0aCBhbmQgcGVybWlzc2lvbnMuXG4gRXhpdGluZyFcblxuJykKICAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKHdhcm4pCkBAIC0yNTEsNyArMjUxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmF3PXJhdykpKQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUod2FybmluZykKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpZiBzZWxmLmRlZmF1bHRDZmdbY29uZmlnVHlwZV0uaGFzX29wdGlvbihzZWN0aW9uLG9wdGlvbik6CkBAIC0yNjgsNyArMjY4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgKG9wdGlvbiwgc2VjdGlvbiwgZGVmYXVsdCkpCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSh3YXJuaW5nKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHJldHVybiBkZWZhdWx0CiAKQEAgLTM4MCw3ICszODAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVsZW1lbnQsIHRoZW1lTmFtZSwgdGhlbWVbZWxlbWVudF0pKQogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSh3YXJuaW5nKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICBjb2xvdXI9Y2ZnUGFyc2VyLkdldCh0aGVtZU5hbWUsZWxlbWVudCxkZWZhdWx0PXRoZW1lW2VsZW1lbnRdKQogICAgICAgICAgICAgdGhlbWVbZWxlbWVudF09Y29sb3VyCkBAIC02MzcsNyArNjM3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXZlbnQsIGtleVNldE5hbWUsIGtleUJpbmRpbmdzW2V2ZW50XSkpCiAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUod2FybmluZykKLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICByZXR1cm4ga2V5QmluZGluZ3MKIApkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvaGVscC50eHQgYi9MaWIvaWRsZWxpYi9oZWxwLnR4dAppbmRleCA5MTlhYzcyLi5iNzBjNzlmIDEwMDY0NAotLS0gYS9MaWIvaWRsZWxpYi9oZWxwLnR4dAorKysgYi9MaWIvaWRsZWxpYi9oZWxwLnR4dApAQCAtMSwxNDIgKzEsMTg1IEBACiBbU2VlIHRoZSBlbmQgb2YgdGhpcyBmaWxlIGZvciAqKiBUSVBTICoqIG9uIHVzaW5nIElETEUgISFdCiAKLUNsaWNrIG9uIHRoZSBkb3R0ZWQgbGluZSBhdCB0aGUgdG9wIG9mIGEgbWVudSB0byAidGVhciBpdCBvZmYiOiBhCi1zZXBhcmF0ZSB3aW5kb3cgY29udGFpbmluZyB0aGUgbWVudSBpcyBjcmVhdGVkLgorSURMRSBpcyB0aGUgUHl0aG9uIElERSBidWlsdCB3aXRoIHRoZSB0a2ludGVyIEdVSSB0b29sa2l0LgogCi1GaWxlIE1lbnU6CitJRExFIGhhcyB0aGUgZm9sbG93aW5nIGZlYXR1cmVzOgorLWNvZGVkIGluIDEwMCUgcHVyZSBQeXRob24sIHVzaW5nIHRoZSB0a2ludGVyIEdVSSB0b29sa2l0CistY3Jvc3MtcGxhdGZvcm06IHdvcmtzIG9uIFdpbmRvd3MsIFVuaXgsIGFuZCBPUyBYCistbXVsdGktd2luZG93IHRleHQgZWRpdG9yIHdpdGggbXVsdGlwbGUgdW5kbywgUHl0aG9uIGNvbG9yaXppbmcsIHNtYXJ0IGluZGVudCwKK2NhbGwgdGlwcywgYW5kIG1hbnkgb3RoZXIgZmVhdHVyZXMKKy1QeXRob24gc2hlbGwgd2luZG93IChhLmsuYSBpbnRlcmFjdGl2ZSBpbnRlcnByZXRlcikKKy1kZWJ1Z2dlciAobm90IGNvbXBsZXRlLCBidXQgeW91IGNhbiBzZXQgYnJlYWtwb2ludHMsIHZpZXcgYW5kIHN0ZXApCiAKLQlOZXcgV2luZG93ICAgICAgIC0tIENyZWF0ZSBhIG5ldyBlZGl0aW5nIHdpbmRvdwotCU9wZW4uLi4gICAgICAgICAgLS0gT3BlbiBhbiBleGlzdGluZyBmaWxlCi0JUmVjZW50IEZpbGVzLi4uICAtLSBPcGVuIGEgbGlzdCBvZiByZWNlbnQgZmlsZXMKLQlPcGVuIE1vZHVsZS4uLiAgIC0tIE9wZW4gYW4gZXhpc3RpbmcgbW9kdWxlIChzZWFyY2hlcyBzeXMucGF0aCkKLQlDbGFzcyBCcm93c2VyICAgIC0tIFNob3cgY2xhc3NlcyBhbmQgbWV0aG9kcyBpbiBjdXJyZW50IGZpbGUKLQlQYXRoIEJyb3dzZXIgICAgIC0tIFNob3cgc3lzLnBhdGggZGlyZWN0b3JpZXMsIG1vZHVsZXMsIGNsYXNzZXMKK01lbnVzOgorCitJRExFIGhhcyB0d28gd2luZG93IHR5cGVzIHRoZSBTaGVsbCB3aW5kb3cgYW5kIHRoZSBFZGl0b3Igd2luZG93LiBJdCBpcworcG9zc2libGUgdG8gaGF2ZSBtdWx0aXBsZSBlZGl0b3Igd2luZG93cyBzaW11bHRhbmVvdXNseS4gSURMRSdzCittZW51cyBkeW5hbWljYWxseSBjaGFuZ2UgYmFzZWQgb24gd2hpY2ggd2luZG93IGlzIGN1cnJlbnRseSBzZWxlY3RlZC4gRWFjaCBtZW51Citkb2N1bWVudGVkIGJlbG93IGluZGljYXRlcyB3aGljaCB3aW5kb3cgdHlwZSBpdCBpcyBhc3NvY2lhdGVkIHdpdGguIENsaWNrIG9uCit0aGUgZG90dGVkIGxpbmUgYXQgdGhlIHRvcCBvZiBhIG1lbnUgdG8gInRlYXIgaXQgb2ZmIjogYSBzZXBhcmF0ZSB3aW5kb3cKK2NvbnRhaW5pbmcgdGhlIG1lbnUgaXMgY3JlYXRlZCAoZm9yIFVuaXggYW5kIFdpbmRvd3Mgb25seSkuCisKK0ZpbGUgTWVudSAoU2hlbGwgYW5kIEVkaXRvcik6CisKKyAgICAgICAgTmV3IFdpbmRvdyAgICAgICAtLSBDcmVhdGUgYSBuZXcgZWRpdGluZyB3aW5kb3cKKyAgICAgICAgT3Blbi4uLiAgICAgICAgICAtLSBPcGVuIGFuIGV4aXN0aW5nIGZpbGUKKyAgICAgICAgT3BlbiBNb2R1bGUuLi4gICAtLSBPcGVuIGFuIGV4aXN0aW5nIG1vZHVsZSAoc2VhcmNoZXMgc3lzLnBhdGgpCisgICAgICAgIFJlY2VudCBGaWxlcy4uLiAgLS0gT3BlbiBhIGxpc3Qgb2YgcmVjZW50IGZpbGVzCisgICAgICAgIENsYXNzIEJyb3dzZXIgICAgLS0gU2hvdyBjbGFzc2VzIGFuZCBtZXRob2RzIGluIGN1cnJlbnQgZmlsZQorICAgICAgICBQYXRoIEJyb3dzZXIgICAgIC0tIFNob3cgc3lzLnBhdGggZGlyZWN0b3JpZXMsIG1vZHVsZXMsIGNsYXNzZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG1ldGhvZHMKLQktLS0KLQlTYXZlICAgICAgICAgICAgIC0tIFNhdmUgY3VycmVudCB3aW5kb3cgdG8gdGhlIGFzc29jaWF0ZWQgZmlsZSAodW5zYXZlZAotCQkgICAgICAgICAgICB3aW5kb3dzIGhhdmUgYSAqIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHdpbmRvdyB0aXRsZSkKKyAgICAgICAgLS0tCisgICAgICAgIFNhdmUgICAgICAgICAgICAgLS0gU2F2ZSBjdXJyZW50IHdpbmRvdyB0byB0aGUgYXNzb2NpYXRlZCBmaWxlICh1bnNhdmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93cyBoYXZlIGEgKiBiZWZvcmUgYW5kIGFmdGVyIHRoZSB3aW5kb3cgdGl0bGUpCiAKLQlTYXZlIEFzLi4uICAgICAgIC0tIFNhdmUgY3VycmVudCB3aW5kb3cgdG8gbmV3IGZpbGUsIHdoaWNoIGJlY29tZXMKLQkJICAgICAgICAgICAgdGhlIGFzc29jaWF0ZWQgZmlsZQotCVNhdmUgQ29weSBBcy4uLiAgLS0gU2F2ZSBjdXJyZW50IHdpbmRvdyB0byBkaWZmZXJlbnQgZmlsZQotCQkgICAgICAgICAgICB3aXRob3V0IGNoYW5naW5nIHRoZSBhc3NvY2lhdGVkIGZpbGUKLQktLS0KLQlQcmludCBXaW5kb3cgICAgIC0tIFByaW50IHRoZSBjdXJyZW50IHdpbmRvdwotCS0tLQotCUNsb3NlICAgICAgICAgICAgLS0gQ2xvc2UgY3VycmVudCB3aW5kb3cgKGFza3MgdG8gc2F2ZSBpZiB1bnNhdmVkKQotCUV4aXQgICAgICAgICAgICAgLS0gQ2xvc2UgYWxsIHdpbmRvd3MsIHF1aXQgKGFza3MgdG8gc2F2ZSBpZiB1bnNhdmVkKQorICAgICAgICBTYXZlIEFzLi4uICAgICAgIC0tIFNhdmUgY3VycmVudCB3aW5kb3cgdG8gbmV3IGZpbGUsIHdoaWNoIGJlY29tZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgYXNzb2NpYXRlZCBmaWxlCisgICAgICAgIFNhdmUgQ29weSBBcy4uLiAgLS0gU2F2ZSBjdXJyZW50IHdpbmRvdyB0byBkaWZmZXJlbnQgZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGFzc29jaWF0ZWQgZmlsZQorICAgICAgICAtLS0KKyAgICAgICAgUHJpbnQgV2luZG93ICAgICAtLSBQcmludCB0aGUgY3VycmVudCB3aW5kb3cKKyAgICAgICAgLS0tCisgICAgICAgIENsb3NlICAgICAgICAgICAgLS0gQ2xvc2UgY3VycmVudCB3aW5kb3cgKGFza3MgdG8gc2F2ZSBpZiB1bnNhdmVkKQorICAgICAgICBFeGl0ICAgICAgICAgICAgIC0tIENsb3NlIGFsbCB3aW5kb3dzLCBxdWl0IChhc2tzIHRvIHNhdmUgaWYgdW5zYXZlZCkKIAotRWRpdCBNZW51OgorRWRpdCBNZW51IChTaGVsbCBhbmQgRWRpdG9yKToKIAotCVVuZG8gICAgICAgICAgICAgLS0gVW5kbyBsYXN0IGNoYW5nZSB0byBjdXJyZW50IHdpbmRvdwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBIG1heGltdW0gb2YgMTAwMCBjaGFuZ2VzIG1heSBiZSB1bmRvbmUpCi0JUmVkbyAgICAgICAgICAgICAtLSBSZWRvIGxhc3QgdW5kb25lIGNoYW5nZSB0byBjdXJyZW50IHdpbmRvdwotCS0tLQotCUN1dCAgICAgICAgICAgICAgLS0gQ29weSBhIHNlbGVjdGlvbiBpbnRvIHN5c3RlbS13aWRlIGNsaXBib2FyZCwKKyAgICAgICAgVW5kbyAgICAgICAgICAgICAtLSBVbmRvIGxhc3QgY2hhbmdlIHRvIGN1cnJlbnQgd2luZG93CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGEgbWF4aW11bSBvZiAxMDAwIGNoYW5nZXMgbWF5IGJlIHVuZG9uZSkKKyAgICAgICAgUmVkbyAgICAgICAgICAgICAtLSBSZWRvIGxhc3QgdW5kb25lIGNoYW5nZSB0byBjdXJyZW50IHdpbmRvdworICAgICAgICAtLS0KKyAgICAgICAgQ3V0ICAgICAgICAgICAgICAtLSBDb3B5IGEgc2VsZWN0aW9uIGludG8gc3lzdGVtLXdpZGUgY2xpcGJvYXJkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gZGVsZXRlIHRoZSBzZWxlY3Rpb24KLQlDb3B5ICAgICAgICAgICAgIC0tIENvcHkgc2VsZWN0aW9uIGludG8gc3lzdGVtLXdpZGUgY2xpcGJvYXJkCi0JUGFzdGUgICAgICAgICAgICAtLSBJbnNlcnQgc3lzdGVtLXdpZGUgY2xpcGJvYXJkIGludG8gd2luZG93Ci0JU2VsZWN0IEFsbCAgICAgICAtLSBTZWxlY3QgdGhlIGVudGlyZSBjb250ZW50cyBvZiB0aGUgZWRpdCBidWZmZXIKLQktLS0KLQlGaW5kLi4uICAgICAgICAgIC0tIE9wZW4gYSBzZWFyY2ggZGlhbG9nIGJveCB3aXRoIG1hbnkgb3B0aW9ucwotCUZpbmQgQWdhaW4gICAgICAgLS0gUmVwZWF0IGxhc3Qgc2VhcmNoCi0JRmluZCBTZWxlY3Rpb24gICAtLSBTZWFyY2ggZm9yIHRoZSBzdHJpbmcgaW4gdGhlIHNlbGVjdGlvbgotCUZpbmQgaW4gRmlsZXMuLi4gLS0gT3BlbiBhIHNlYXJjaCBkaWFsb2cgYm94IGZvciBzZWFyY2hpbmcgZmlsZXMKLQlSZXBsYWNlLi4uICAgICAgIC0tIE9wZW4gYSBzZWFyY2gtYW5kLXJlcGxhY2UgZGlhbG9nIGJveAotCUdvIHRvIExpbmUgICAgICAgLS0gQXNrIGZvciBhIGxpbmUgbnVtYmVyIGFuZCBzaG93IHRoYXQgbGluZQotCVNob3cgQ2FsbHRpcCAgICAgLS0gT3BlbiBhIHNtYWxsIHdpbmRvdyB3aXRoIGZ1bmN0aW9uIHBhcmFtIGhpbnRzCi0JU2hvdyBDb21wbGV0aW9ucyAtLSBPcGVuIGEgc2Nyb2xsIHdpbmRvdyBhbGxvd2luZyBzZWxlY3Rpb24ga2V5d29yZHMKLQkJCSAgICBhbmQgYXR0cmlidXRlcy4gKHNlZSAnKlRJUFMqJywgYmVsb3cpCi0JU2hvdyBQYXJlbnMJIC0tIEhpZ2hsaWdodCB0aGUgc3Vycm91bmRpbmcgcGFyZW50aGVzaXMKLQlFeHBhbmQgV29yZCAgICAgIC0tIEV4cGFuZCB0aGUgd29yZCB5b3UgaGF2ZSB0eXBlZCB0byBtYXRjaCBhbm90aGVyCi0JCSAgICAgICAgICAgIHdvcmQgaW4gdGhlIHNhbWUgYnVmZmVyOyByZXBlYXQgdG8gZ2V0IGEKKyAgICAgICAgQ29weSAgICAgICAgICAgICAtLSBDb3B5IHNlbGVjdGlvbiBpbnRvIHN5c3RlbS13aWRlIGNsaXBib2FyZAorICAgICAgICBQYXN0ZSAgICAgICAgICAgIC0tIEluc2VydCBzeXN0ZW0td2lkZSBjbGlwYm9hcmQgaW50byB3aW5kb3cKKyAgICAgICAgU2VsZWN0IEFsbCAgICAgICAtLSBTZWxlY3QgdGhlIGVudGlyZSBjb250ZW50cyBvZiB0aGUgZWRpdCBidWZmZXIKKyAgICAgICAgLS0tCisgICAgICAgIEZpbmQuLi4gICAgICAgICAgLS0gT3BlbiBhIHNlYXJjaCBkaWFsb2cgYm94IHdpdGggbWFueSBvcHRpb25zCisgICAgICAgIEZpbmQgQWdhaW4gICAgICAgLS0gUmVwZWF0IGxhc3Qgc2VhcmNoCisgICAgICAgIEZpbmQgU2VsZWN0aW9uICAgLS0gU2VhcmNoIGZvciB0aGUgc3RyaW5nIGluIHRoZSBzZWxlY3Rpb24KKyAgICAgICAgRmluZCBpbiBGaWxlcy4uLiAtLSBPcGVuIGEgc2VhcmNoIGRpYWxvZyBib3ggZm9yIHNlYXJjaGluZyBmaWxlcworICAgICAgICBSZXBsYWNlLi4uICAgICAgIC0tIE9wZW4gYSBzZWFyY2gtYW5kLXJlcGxhY2UgZGlhbG9nIGJveAorICAgICAgICBHbyB0byBMaW5lICAgICAgIC0tIEFzayBmb3IgYSBsaW5lIG51bWJlciBhbmQgc2hvdyB0aGF0IGxpbmUKKyAgICAgICAgRXhwYW5kIFdvcmQgICAgICAtLSBFeHBhbmQgdGhlIHdvcmQgeW91IGhhdmUgdHlwZWQgdG8gbWF0Y2ggYW5vdGhlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmQgaW4gdGhlIHNhbWUgYnVmZmVyOyByZXBlYXQgdG8gZ2V0IGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmZXJlbnQgZXhwYW5zaW9uCisgICAgICAgIFNob3cgQ2FsbHRpcCAgICAgLS0gQWZ0ZXIgYW4gdW5jbG9zZWQgcGFyZW50aGVzaXMgZm9yIGEgZnVuY3Rpb24sIG9wZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHNtYWxsIHdpbmRvdyB3aXRoIGZ1bmN0aW9uIHBhcmFtZXRlciBoaW50cworICAgICAgICBTaG93IFBhcmVucyAgICAgIC0tIEhpZ2hsaWdodCB0aGUgc3Vycm91bmRpbmcgcGFyZW50aGVzaXMKKyAgICAgICAgU2hvdyBDb21wbGV0aW9ucyAtLSBPcGVuIGEgc2Nyb2xsIHdpbmRvdyBhbGxvd2luZyBzZWxlY3Rpb24ga2V5d29yZHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgYXR0cmlidXRlcy4gKHNlZSAnKlRJUFMqJywgYmVsb3cpCiAKLUZvcm1hdCBNZW51IChvbmx5IGluIEVkaXQgd2luZG93KToKK0Zvcm1hdCBNZW51IChFZGl0b3Igd2luZG93IG9ubHkpOgogCi0JSW5kZW50IFJlZ2lvbiAgICAgICAtLSBTaGlmdCBzZWxlY3RlZCBsaW5lcyByaWdodCA0IHNwYWNlcwotCURlZGVudCBSZWdpb24gICAgICAgLS0gU2hpZnQgc2VsZWN0ZWQgbGluZXMgbGVmdCA0IHNwYWNlcwotCUNvbW1lbnQgT3V0IFJlZ2lvbiAgLS0gSW5zZXJ0ICMjIGluIGZyb250IG9mIHNlbGVjdGVkIGxpbmVzCi0JVW5jb21tZW50IFJlZ2lvbiAgICAtLSBSZW1vdmUgbGVhZGluZyAjIG9yICMjIGZyb20gc2VsZWN0ZWQgbGluZXMKLQlUYWJpZnkgUmVnaW9uICAgICAgIC0tIFR1cm5zICpsZWFkaW5nKiBzdHJldGNoZXMgb2Ygc3BhY2VzIGludG8gdGFicwotCQkoTm90ZTogV2UgcmVjb21tZW5kIHVzaW5nIDQgc3BhY2UgYmxvY2tzIHRvIGluZGVudCBQeXRob24gY29kZS4pCi0JVW50YWJpZnkgUmVnaW9uICAgICAtLSBUdXJuICphbGwqIHRhYnMgaW50byB0aGUgcmlnaHQgbnVtYmVyIG9mIHNwYWNlcwotCU5ldyBJbmRlbnQgV2lkdGguLi4gLS0gT3BlbiBkaWFsb2cgdG8gY2hhbmdlIGluZGVudCB3aWR0aAotCUZvcm1hdCBQYXJhZ3JhcGggICAgLS0gUmVmb3JtYXQgdGhlIGN1cnJlbnQgYmxhbmstbGluZS1zZXBhcmF0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGgKKyAgICAgICAgSW5kZW50IFJlZ2lvbiAgICAgICAtLSBTaGlmdCBzZWxlY3RlZCBsaW5lcyByaWdodCBieSB0aGUgaW5kZW50IHdpZHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQgNCBzcGFjZXMpCisgICAgICAgIERlZGVudCBSZWdpb24gICAgICAgLS0gU2hpZnQgc2VsZWN0ZWQgbGluZXMgbGVmdCBieSB0aGUgaW5kZW50IHdpZHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQgNCBzcGFjZXMpCisgICAgICAgIENvbW1lbnQgT3V0IFJlZ2lvbiAgLS0gSW5zZXJ0ICMjIGluIGZyb250IG9mIHNlbGVjdGVkIGxpbmVzCisgICAgICAgIFVuY29tbWVudCBSZWdpb24gICAgLS0gUmVtb3ZlIGxlYWRpbmcgIyBvciAjIyBmcm9tIHNlbGVjdGVkIGxpbmVzCisgICAgICAgIFRhYmlmeSBSZWdpb24gICAgICAgLS0gVHVybnMgKmxlYWRpbmcqIHN0cmV0Y2hlcyBvZiBzcGFjZXMgaW50byB0YWJzLgorICAgICAgICAgICAgICAgIChOb3RlOiBXZSByZWNvbW1lbmQgdXNpbmcgNCBzcGFjZSBibG9ja3MgdG8gaW5kZW50IFB5dGhvbiBjb2RlLikKKyAgICAgICAgVW50YWJpZnkgUmVnaW9uICAgICAtLSBUdXJuICphbGwqIHRhYnMgaW50byB0aGUgY29ycmVudCBudW1iZXIgb2Ygc3BhY2VzCisgICAgICAgIFRvZ2dsZSB0YWJzICAgICAgICAgLS0gT3BlbiBhIGRpYWxvZyB0byBzd2l0Y2ggYmV0d2VlbiBpbmRlbnRpbmcgd2l0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYWNlcyBhbmQgdGFicy4KKyAgICAgICAgTmV3IEluZGVudCBXaWR0aC4uLiAtLSBPcGVuIGEgZGlhbG9nIHRvIGNoYW5nZSBpbmRlbnQgd2lkdGguICBUaGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHRlZCBkZWZhdWx0IGJ5IHRoZSBQeXRob24gY29tbXVuaXR5IGlzIDQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFjZXMuCisgICAgICAgIEZvcm1hdCBQYXJhZ3JhcGggICAgLS0gUmVmb3JtYXQgdGhlIGN1cnJlbnQgYmxhbmstbGluZS1zZXBhcmF0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGguIEFsbCBsaW5lcyBpbiB0aGUgcGFyYWdyYXBoIHdpbGwgYmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWQgdG8gbGVzcyB0aGFuIDgwIGNvbHVtbnMuCisgICAgICAgIC0tLQorICAgICAgICBTdHJpcCB0cmFpbGluZyB3aGl0ZXNwYWNlIC0tIFJlbW92ZWQgYW55IHNwYWNlIGNoYXJhY3RlcnMgYWZ0ZXIgdGhlIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSBsYXN0IG5vbi1zcGFjZSBjaGFyYWN0ZXIKIAotUnVuIE1lbnUgKG9ubHkgaW4gRWRpdCB3aW5kb3cpOgorUnVuIE1lbnUgKEVkaXRvciB3aW5kb3cgb25seSk6CiAKLQlQeXRob24gU2hlbGwgLS0gT3BlbiBvciB3YWtlIHVwIHRoZSBQeXRob24gc2hlbGwgd2luZG93Ci0JLS0tCi0JQ2hlY2sgTW9kdWxlIC0tIFJ1biBhIHN5bnRheCBjaGVjayBvbiB0aGUgbW9kdWxlCi0JUnVuIE1vZHVsZSAgIC0tIEV4ZWN1dGUgdGhlIGN1cnJlbnQgZmlsZSBpbiB0aGUgX19tYWluX18gbmFtZXNwYWNlCisgICAgICAgIFB5dGhvbiBTaGVsbCAtLSBPcGVuIG9yIHdha2UgdXAgdGhlIFB5dGhvbiBzaGVsbCB3aW5kb3cKKyAgICAgICAgLS0tCisgICAgICAgIENoZWNrIE1vZHVsZSAtLSBDaGVjayB0aGUgc3ludGF4IG9mIHRoZSBtb2R1bGUgY3VycmVudGx5IG9wZW4gaW4gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBFZGl0b3Igd2luZG93LiAgSWYgdGhlIG1vZHVsZSBoYXMgbm90IGJlZW4gc2F2ZWQgSURMRQorICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBwcm9tcHQgdGhlIHVzZXIgdG8gc2F2ZSB0aGUgY29kZS4KKyAgICAgICAgUnVuIE1vZHVsZSAgIC0tIFJlc3RhcnQgdGhlIHNoZWxsIHRvIGNsZWFuIHRoZSBlbnZpcm9ubWVudCwgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZSB0aGUgY3VycmVudGx5IG9wZW4gbW9kdWxlLiBJZiB0aGUgbW9kdWxlIGhhcworICAgICAgICAgICAgICAgICAgICAgICAgbm90IGJlZW4gc2F2ZWQgSURMRSB3aWxsIHByb21wdCB0aGUgdXNlciB0byBzYXZlIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgY29kZS4KIAotU2hlbGwgTWVudSAob25seSBpbiBTaGVsbCB3aW5kb3cpOgorU2hlbGwgTWVudSAoU2hlbGwgd2luZG93IG9ubHkpOgogCi0JVmlldyBMYXN0IFJlc3RhcnQgLS0gU2Nyb2xsIHRoZSBzaGVsbCB3aW5kb3cgdG8gdGhlIGxhc3QgcmVzdGFydAotCVJlc3RhcnQgU2hlbGwgICAgIC0tIFJlc3RhcnQgdGhlIGludGVycHJldGVyIHdpdGggYSBmcmVzaCBlbnZpcm9ubWVudAorICAgICAgICBWaWV3IExhc3QgUmVzdGFydCAtLSBTY3JvbGwgdGhlIHNoZWxsIHdpbmRvdyB0byB0aGUgbGFzdCBTaGVsbCByZXN0YXJ0CisgICAgICAgIFJlc3RhcnQgU2hlbGwgICAgIC0tIFJlc3RhcnQgdGhlIHNoZWxsIHRvIGNsZWFuIHRoZSBlbnZpcm9ubWVudAogCi1EZWJ1ZyBNZW51IChvbmx5IGluIFNoZWxsIHdpbmRvdyk6CitEZWJ1ZyBNZW51IChTaGVsbCB3aW5kb3cgb25seSk6CiAKLQlHbyB0byBGaWxlL0xpbmUgICAtLSBsb29rIGFyb3VuZCB0aGUgaW5zZXJ0IHBvaW50IGZvciBhIGZpbGVuYW1lCi0JCSAgICAgICAgICAgICBhbmQgbGluZSBudW1iZXIsIG9wZW4gdGhlIGZpbGUsIGFuZCBzaG93IHRoZSBsaW5lCi0JRGVidWdnZXIgKHRvZ2dsZSkgLS0gUnVuIGNvbW1hbmRzIGluIHRoZSBzaGVsbCB1bmRlciB0aGUgZGVidWdnZXIKLQlTdGFjayBWaWV3ZXIgICAgICAtLSBTaG93IHRoZSBzdGFjayB0cmFjZWJhY2sgb2YgdGhlIGxhc3QgZXhjZXB0aW9uCi0JQXV0by1vcGVuIFN0YWNrIFZpZXdlciAodG9nZ2xlKSAtLSBPcGVuIHN0YWNrIHZpZXdlciBvbiB0cmFjZWJhY2sKKyAgICAgICAgR28gdG8gRmlsZS9MaW5lICAgLS0gTG9vayBhcm91bmQgdGhlIGluc2VydCBwb2ludCBmb3IgYSBmaWxlbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGluZSBudW1iZXIsIG9wZW4gdGhlIGZpbGUsIGFuZCBzaG93IHRoZSBsaW5lLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VmdWwgdG8gdmlldyB0aGUgc291cmNlIGxpbmVzIHJlZmVyZW5jZWQgaW4gYW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uIHRyYWNlYmFjay4gIEF2YWlsYWJsZSBpbiB0aGUgY29udGV4dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW51IG9mIHRoZSBTaGVsbCB3aW5kb3cuCisgICAgICAgIERlYnVnZ2VyICh0b2dnbGUpIC0tIFRoaXMgZmVhdHVyZSBpcyBub3QgY29tcGxldGUgYW5kIGNvbnNpZGVyZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZXJpbWVudGFsLiBSdW4gY29tbWFuZHMgaW4gdGhlIHNoZWxsIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z2dlci4KKyAgICAgICAgU3RhY2sgVmlld2VyICAgICAgLS0gU2hvdyB0aGUgc3RhY2sgdHJhY2ViYWNrIG9mIHRoZSBsYXN0IGV4Y2VwdGlvbgorICAgICAgICBBdXRvLW9wZW4gU3RhY2sgVmlld2VyICh0b2dnbGUpIC0tIFRvZ2dsZSBhdXRvbWF0aWNhbGx5IG9wZW5pbmcgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2sgdmlld2VyIG9uIHVuaGFuZGxlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbgogCi1PcHRpb25zIE1lbnU6CitPcHRpb25zIE1lbnUgKFNoZWxsIGFuZCBFZGl0b3IpOgogCi0JQ29uZmlndXJlIElETEUgLS0gT3BlbiBhIGNvbmZpZ3VyYXRpb24gZGlhbG9nLiAgRm9udHMsIGluZGVudGF0aW9uLAorICAgICAgICBDb25maWd1cmUgSURMRSAtLSBPcGVuIGEgY29uZmlndXJhdGlvbiBkaWFsb2cuICBGb250cywgaW5kZW50YXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleWJpbmRpbmdzLCBhbmQgY29sb3IgdGhlbWVzIG1heSBiZSBhbHRlcmVkLgotICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydHVwIFByZWZlcmVuY2VzIG1heSBiZSBzZXQsIGFuZCBBZGRpdGlvbmFsIEhlbHAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgU291cmNlcyBjYW4gYmUgc3BlY2lmaWVkLgotCQkJICAKLQkJCSAgT24gT1MgWCB0aGlzIG1lbnUgaXMgbm90IHByZXNlbnQsIHVzZQotCQkJICBtZW51ICdJRExFIC0+IFByZWZlcmVuY2VzLi4uJyBpbnN0ZWFkLgotCS0tLQotCUNvZGUgQ29udGV4dCAtLQkgIE9wZW4gYSBwYW5lIGF0IHRoZSB0b3Agb2YgdGhlIGVkaXQgd2luZG93IHdoaWNoCi0JCQkgIHNob3dzIHRoZSBibG9jayBjb250ZXh0IG9mIHRoZSBzZWN0aW9uIG9mIGNvZGUKLQkJCSAgd2hpY2ggaXMgc2Nyb2xsaW5nIG9mZiB0aGUgdG9wIG9yIHRoZSB3aW5kb3cuCi0JCQkgIChOb3QgcHJlc2VudCBpbiBTaGVsbCB3aW5kb3cuKQorICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydHVwIFByZWZlcmVuY2VzIG1heSBiZSBzZXQsIGFuZCBhZGRpdGlvbmFsIEhlbHAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlcyBjYW4gYmUgc3BlY2lmaWVkLgogCi1XaW5kb3dzIE1lbnU6CisgICAgICAgIC0tLQorICAgICAgICBDb2RlIENvbnRleHQgKHRvZ2dsZSkgLS0gT3BlbiBhIHBhbmUgYXQgdGhlIHRvcCBvZiB0aGUgZWRpdCB3aW5kb3cKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWNoIHNob3dzIHRoZSBibG9jayBjb250ZXh0IG9mIHRoZSBzZWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBjb2RlIHdoaWNoIGlzIHNjcm9sbGluZyBvZmYgdGhlIHRvcCBvciB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy4gVGhpcyBpcyBub3QgcHJlc2VudCBpbiB0aGUgU2hlbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdyBvbmx5IHRoZSBFZGl0b3Igd2luZG93LgogCi0JWm9vbSBIZWlnaHQgLS0gdG9nZ2xlcyB0aGUgd2luZG93IGJldHdlZW4gY29uZmlndXJlZCBzaXplCi0JYW5kIG1heGltdW0gaGVpZ2h0LgotCS0tLQotCVRoZSByZXN0IG9mIHRoaXMgbWVudSBsaXN0cyB0aGUgbmFtZXMgb2YgYWxsIG9wZW4gd2luZG93czsKLQlzZWxlY3Qgb25lIHRvIGJyaW5nIGl0IHRvIHRoZSBmb3JlZ3JvdW5kIChkZWljb25pZnlpbmcgaXQgaWYKLQluZWNlc3NhcnkpLgorV2luZG93cyBNZW51IChTaGVsbCBhbmQgRWRpdG9yKToKKworICAgICAgICBab29tIEhlaWdodCAtLSBUb2dnbGVzIHRoZSB3aW5kb3cgYmV0d2VlbiBub3JtYWwgc2l6ZSAoNDB4ODAgaW5pdGlhbAorICAgICAgICBzZXR0aW5nKSBhbmQgbWF4aW11bSBoZWlnaHQuICBUaGUgaW5pdGlhbCBzaXplIGlzIGluIHRoZSBDb25maWd1cmUKKyAgICAgICAgSURMRSBkaWFsb2cgdW5kZXIgdGhlIGdlbmVyYWwgdGFiLgorICAgICAgICAtLS0KKyAgICAgICAgVGhlIHJlc3Qgb2YgdGhpcyBtZW51IGxpc3RzIHRoZSBuYW1lcyBvZiBhbGwgb3BlbiB3aW5kb3dzOworICAgICAgICBzZWxlY3Qgb25lIHRvIGJyaW5nIGl0IHRvIHRoZSBmb3JlZ3JvdW5kIChkZWljb25pZnlpbmcgaXQgaWYKKyAgICAgICAgbmVjZXNzYXJ5KS4KIAogSGVscCBNZW51OgogCi0JQWJvdXQgSURMRSAgLS0gVmVyc2lvbiwgY29weXJpZ2h0LCBsaWNlbnNlLCBjcmVkaXRzCi0JSURMRSBSZWFkbWUgLS0gQmFja2dyb3VuZCBkaXNjdXNzaW9uIGFuZCBjaGFuZ2UgZGV0YWlscwotCS0tLQotCUlETEUgSGVscCAgIC0tIERpc3BsYXkgdGhpcyBmaWxlCi0JUHl0aG9uIERvY3MgLS0gQWNjZXNzIGxvY2FsIFB5dGhvbiBkb2N1bWVudGF0aW9uLCBpZgotCQkgICAgICAgaW5zdGFsbGVkLiAgT3RoZXJ3aXNlLCBhY2Nlc3Mgd3d3LnB5dGhvbi5vcmcuCi0JLS0tCi0JKEFkZGl0aW9uYWwgSGVscCBTb3VyY2VzIG1heSBiZSBhZGRlZCBoZXJlKQorICAgICAgICBBYm91dCBJRExFICAtLSBWZXJzaW9uLCBjb3B5cmlnaHQsIGxpY2Vuc2UsIGNyZWRpdHMKKyAgICAgICAgLS0tCisgICAgICAgIElETEUgSGVscCAgIC0tIERpc3BsYXkgdGhpcyBmaWxlIHdoaWNoIGlzIGEgaGVscCBmaWxlIGZvciBJRExFCisgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbGluZyB0aGUgbWVudSBvcHRpb25zLCBiYXNpYyBlZGl0aW5nIGFuZCBuYXZpZ2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICBhbmQgb3RoZXIgdGlwcy4KKyAgICAgICAgUHl0aG9uIERvY3MgLS0gQWNjZXNzIGxvY2FsIFB5dGhvbiBkb2N1bWVudGF0aW9uLCBpZgorICAgICAgICAgICAgICAgICAgICAgICBpbnN0YWxsZWQuICBPciB3aWxsIHN0YXJ0IGEgd2ViIGJyb3dzZXIgYW5kIG9wZW4KKyAgICAgICAgICAgICAgICAgICAgICAgZG9jcy5weXRob24ub3JnIHNob3dpbmcgdGhlIGxhdGVzdCBQeXRob24gZG9jdW1lbnRhdGlvbi4KKyAgICAgICAgLS0tCisgICAgICAgIEFkZGl0aW9uYWwgaGVscCBzb3VyY2VzIG1heSBiZSBhZGRlZCBoZXJlIHdpdGggdGhlIENvbmZpZ3VyZSBJRExFCisgICAgICAgIGRpYWxvZyB1bmRlciB0aGUgR2VuZXJhbCB0YWIuCiAKLUVkaXQgY29udGV4dCBtZW51IChSaWdodC1jbGljayAvIENvbnRyb2wtY2xpY2sgb24gT1MgWCBpbiBFZGl0IHdpbmRvdyk6CitFZGl0b3IgY29udGV4dCBtZW51IChSaWdodC1jbGljayAvIENvbnRyb2wtY2xpY2sgb24gT1MgWCBpbiBFZGl0IHdpbmRvdyk6CiAKLQlDdXQgICAgICAgICAgICAgIC0tIENvcHkgYSBzZWxlY3Rpb24gaW50byBzeXN0ZW0td2lkZSBjbGlwYm9hcmQsCisgICAgICAgIEN1dCAgICAgICAgICAgICAgLS0gQ29weSBhIHNlbGVjdGlvbiBpbnRvIHN5c3RlbS13aWRlIGNsaXBib2FyZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIGRlbGV0ZSB0aGUgc2VsZWN0aW9uCi0JQ29weSAgICAgICAgICAgICAtLSBDb3B5IHNlbGVjdGlvbiBpbnRvIHN5c3RlbS13aWRlIGNsaXBib2FyZAotCVBhc3RlICAgICAgICAgICAgLS0gSW5zZXJ0IHN5c3RlbS13aWRlIGNsaXBib2FyZCBpbnRvIHdpbmRvdwotCVNldCBCcmVha3BvaW50ICAgLS0gU2V0cyBhIGJyZWFrcG9pbnQgKHdoZW4gZGVidWdnZXIgb3BlbikKLQlDbGVhciBCcmVha3BvaW50IC0tIENsZWFycyB0aGUgYnJlYWtwb2ludCBvbiB0aGF0IGxpbmUKKyAgICAgICAgQ29weSAgICAgICAgICAgICAtLSBDb3B5IHNlbGVjdGlvbiBpbnRvIHN5c3RlbS13aWRlIGNsaXBib2FyZAorICAgICAgICBQYXN0ZSAgICAgICAgICAgIC0tIEluc2VydCBzeXN0ZW0td2lkZSBjbGlwYm9hcmQgaW50byB3aW5kb3cKKyAgICAgICAgU2V0IEJyZWFrcG9pbnQgICAtLSBTZXRzIGEgYnJlYWtwb2ludC4gQnJlYWtwb2ludHMgYXJlIG9ubHkgZW5hYmxlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZW4gdGhlIGRlYnVnZ2VyIGlzIG9wZW4uCisgICAgICAgIENsZWFyIEJyZWFrcG9pbnQgLS0gQ2xlYXJzIHRoZSBicmVha3BvaW50IG9uIHRoYXQgbGluZQogCiBTaGVsbCBjb250ZXh0IG1lbnUgKFJpZ2h0LWNsaWNrIC8gQ29udHJvbC1jbGljayBvbiBPUyBYIGluIFNoZWxsIHdpbmRvdyk6CiAKLQlDdXQgICAgICAgICAgICAgIC0tIENvcHkgYSBzZWxlY3Rpb24gaW50byBzeXN0ZW0td2lkZSBjbGlwYm9hcmQsCisgICAgICAgIEN1dCAgICAgICAgICAgICAgLS0gQ29weSBhIHNlbGVjdGlvbiBpbnRvIHN5c3RlbS13aWRlIGNsaXBib2FyZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIGRlbGV0ZSB0aGUgc2VsZWN0aW9uCi0JQ29weSAgICAgICAgICAgICAtLSBDb3B5IHNlbGVjdGlvbiBpbnRvIHN5c3RlbS13aWRlIGNsaXBib2FyZAotCVBhc3RlICAgICAgICAgICAgLS0gSW5zZXJ0IHN5c3RlbS13aWRlIGNsaXBib2FyZCBpbnRvIHdpbmRvdwotCS0tLQotCUdvIHRvIGZpbGUvbGluZSAgLS0gU2FtZSBhcyBpbiBEZWJ1ZyBtZW51CisgICAgICAgIENvcHkgICAgICAgICAgICAgLS0gQ29weSBzZWxlY3Rpb24gaW50byBzeXN0ZW0td2lkZSBjbGlwYm9hcmQKKyAgICAgICAgUGFzdGUgICAgICAgICAgICAtLSBJbnNlcnQgc3lzdGVtLXdpZGUgY2xpcGJvYXJkIGludG8gd2luZG93CisgICAgICAgIC0tLQorICAgICAgICBHbyB0byBmaWxlL2xpbmUgIC0tIFNhbWUgYXMgaW4gRGVidWcgbWVudQogCiAKICoqIFRJUFMgKioKQEAgLTE0NCwxNTkgKzE4NywxODIgQEAKIAogQWRkaXRpb25hbCBIZWxwIFNvdXJjZXM6CiAKLQlXaW5kb3dzIHVzZXJzIGNhbiBHb29nbGUgb24gem9wZXNoZWxmLmNobSB0byBhY2Nlc3MgWm9wZSBoZWxwIGZpbGVzIGluCi0JdGhlIFdpbmRvd3MgaGVscCBmb3JtYXQuICBUaGUgQWRkaXRpb25hbCBIZWxwIFNvdXJjZXMgZmVhdHVyZSBvZiB0aGUKLQljb25maWd1cmF0aW9uIEdVSSBzdXBwb3J0cyAuY2htLCBhbG9uZyB3aXRoIGFueSBvdGhlciBmaWxldHlwZXMKLQlzdXBwb3J0ZWQgYnkgeW91ciBicm93c2VyLiAgU3VwcGx5IGEgTWVudSBJdGVtIHRpdGxlLCBhbmQgZW50ZXIgdGhlCi0JbG9jYXRpb24gaW4gdGhlIEhlbHAgRmlsZSBQYXRoIHNsb3Qgb2YgdGhlIE5ldyBIZWxwIFNvdXJjZSBkaWFsb2cuICBVc2UKLQlodHRwOi8vIGFuZC9vciB3d3cuIHRvIGlkZW50aWZ5IGV4dGVybmFsIFVSTHMsIG9yIGRvd25sb2FkIHRoZSBmaWxlIGFuZAotCWJyb3dzZSBmb3IgaXRzIHBhdGggb24geW91ciBtYWNoaW5lIHVzaW5nIHRoZSBCcm93c2UgYnV0dG9uLgorICAgICAgICBXaW5kb3dzIHVzZXJzIGNhbiBHb29nbGUgb24gem9wZXNoZWxmLmNobSB0byBhY2Nlc3MgWm9wZSBoZWxwIGZpbGVzIGluCisgICAgICAgIHRoZSBXaW5kb3dzIGhlbHAgZm9ybWF0LiAgVGhlIEFkZGl0aW9uYWwgSGVscCBTb3VyY2VzIGZlYXR1cmUgb2YgdGhlCisgICAgICAgIGNvbmZpZ3VyYXRpb24gR1VJIHN1cHBvcnRzIC5jaG0sIGFsb25nIHdpdGggYW55IG90aGVyIGZpbGV0eXBlcworICAgICAgICBzdXBwb3J0ZWQgYnkgeW91ciBicm93c2VyLiAgU3VwcGx5IGEgTWVudSBJdGVtIHRpdGxlLCBhbmQgZW50ZXIgdGhlCisgICAgICAgIGxvY2F0aW9uIGluIHRoZSBIZWxwIEZpbGUgUGF0aCBzbG90IG9mIHRoZSBOZXcgSGVscCBTb3VyY2UgZGlhbG9nLiAgVXNlCisgICAgICAgIGh0dHA6Ly8gYW5kL29yIHd3dy4gdG8gaWRlbnRpZnkgZXh0ZXJuYWwgVVJMcywgb3IgZG93bmxvYWQgdGhlIGZpbGUgYW5kCisgICAgICAgIGJyb3dzZSBmb3IgaXRzIHBhdGggb24geW91ciBtYWNoaW5lIHVzaW5nIHRoZSBCcm93c2UgYnV0dG9uLgogCi0JQWxsIHVzZXJzIGNhbiBhY2Nlc3MgdGhlIGV4dGVuc2l2ZSBzb3VyY2VzIG9mIGhlbHAsIGluY2x1ZGluZwotCXR1dG9yaWFscywgYXZhaWxhYmxlIGF0IHd3dy5weXRob24ub3JnL2RvYy4gIFNlbGVjdGVkIFVSTHMgY2FuIGJlIGFkZGVkCi0Jb3IgcmVtb3ZlZCBmcm9tIHRoZSBIZWxwIG1lbnUgYXQgYW55IHRpbWUgdXNpbmcgQ29uZmlndXJlIElETEUuCisgICAgICAgIEFsbCB1c2VycyBjYW4gYWNjZXNzIHRoZSBleHRlbnNpdmUgc291cmNlcyBvZiBoZWxwLCBpbmNsdWRpbmcKKyAgICAgICAgdHV0b3JpYWxzLCBhdmFpbGFibGUgYXQgZG9jcy5weXRob24ub3JnLiAgU2VsZWN0ZWQgVVJMcyBjYW4gYmUgYWRkZWQKKyAgICAgICAgb3IgcmVtb3ZlZCBmcm9tIHRoZSBIZWxwIG1lbnUgYXQgYW55IHRpbWUgdXNpbmcgQ29uZmlndXJlIElETEUuCiAKIEJhc2ljIGVkaXRpbmcgYW5kIG5hdmlnYXRpb246CiAKLQlCYWNrc3BhY2UgZGVsZXRlcyBjaGFyIHRvIHRoZSBsZWZ0OyBERUwgZGVsZXRlcyBjaGFyIHRvIHRoZSByaWdodC4KLQlDb250cm9sLWJhY2tzcGFjZSBkZWxldGVzIHdvcmQgbGVmdCwgQ29udHJvbC1ERUwgZGVsZXRlcyB3b3JkIHJpZ2h0LgotCUFycm93IGtleXMgYW5kIFBhZ2UgVXAvRG93biBtb3ZlIGFyb3VuZC4KLQlDb250cm9sLWxlZnQvcmlnaHQgQXJyb3cgbW92ZXMgYnkgd29yZHMgaW4gYSBzdHJhbmdlIGJ1dCB1c2VmdWwgd2F5LgotCUhvbWUvRW5kIGdvIHRvIGJlZ2luL2VuZCBvZiBsaW5lLgotCUNvbnRyb2wtSG9tZS9FbmQgZ28gdG8gYmVnaW4vZW5kIG9mIGZpbGUuCi0JU29tZSB1c2VmdWwgRW1hY3MgYmluZGluZ3MgYXJlIGluaGVyaXRlZCBmcm9tIFRjbC9UazoKLQkJQ29udHJvbC1hICAgICBiZWdpbm5pbmcgb2YgbGluZQotCQlDb250cm9sLWUgICAgIGVuZCBvZiBsaW5lCi0JCUNvbnRyb2wtayAgICAga2lsbCBsaW5lIChidXQgZG9lc24ndCBwdXQgaXQgaW4gY2xpcGJvYXJkKQotCQlDb250cm9sLWwgICAgIGNlbnRlciB3aW5kb3cgYXJvdW5kIHRoZSBpbnNlcnRpb24gcG9pbnQKLQlTdGFuZGFyZCBXaW5kb3dzIGJpbmRpbmdzIG1heSB3b3JrIG9uIHRoYXQgcGxhdGZvcm0uCi0JS2V5YmluZGluZ3MgYXJlIHNlbGVjdGVkIGluIHRoZSBTZXR0aW5ncyBEaWFsb2csIGxvb2sgdGhlcmUuCisgICAgICAgIEJhY2tzcGFjZSBkZWxldGVzIGNoYXIgdG8gdGhlIGxlZnQ7IERFTCBkZWxldGVzIGNoYXIgdG8gdGhlIHJpZ2h0LgorICAgICAgICBDb250cm9sLWJhY2tzcGFjZSBkZWxldGVzIHdvcmQgbGVmdCwgQ29udHJvbC1ERUwgZGVsZXRlcyB3b3JkIHJpZ2h0LgorICAgICAgICBBcnJvdyBrZXlzIGFuZCBQYWdlIFVwL0Rvd24gbW92ZSBhcm91bmQuCisgICAgICAgIENvbnRyb2wtbGVmdC9yaWdodCBBcnJvdyBtb3ZlcyBieSB3b3JkcyBpbiBhIHN0cmFuZ2UgYnV0IHVzZWZ1bCB3YXkuCisgICAgICAgIEhvbWUvRW5kIGdvIHRvIGJlZ2luL2VuZCBvZiBsaW5lLgorICAgICAgICBDb250cm9sLUhvbWUvRW5kIGdvIHRvIGJlZ2luL2VuZCBvZiBmaWxlLgorICAgICAgICBTb21lIHVzZWZ1bCBFbWFjcyBiaW5kaW5ncyBhcmUgaW5oZXJpdGVkIGZyb20gVGNsL1RrOgorICAgICAgICAgICAgICAgIENvbnRyb2wtYSAgICAgYmVnaW5uaW5nIG9mIGxpbmUKKyAgICAgICAgICAgICAgICBDb250cm9sLWUgICAgIGVuZCBvZiBsaW5lCisgICAgICAgICAgICAgICAgQ29udHJvbC1rICAgICBraWxsIGxpbmUgKGJ1dCBkb2Vzbid0IHB1dCBpdCBpbiBjbGlwYm9hcmQpCisgICAgICAgICAgICAgICAgQ29udHJvbC1sICAgICBjZW50ZXIgd2luZG93IGFyb3VuZCB0aGUgaW5zZXJ0aW9uIHBvaW50CisgICAgICAgIFN0YW5kYXJkIGtleWJpbmRpbmdzIChsaWtlIENvbnRyb2wtYyB0byBjb3B5IGFuZCBDb250cm9sLXYgdG8KKyAgICAgICAgcGFzdGUpIG1heSB3b3JrLiAgS2V5YmluZGluZ3MgYXJlIHNlbGVjdGVkIGluIHRoZSBDb25maWd1cmUgSURMRQorICAgICAgICBkaWFsb2cuCiAKIEF1dG9tYXRpYyBpbmRlbnRhdGlvbjoKIAotCUFmdGVyIGEgYmxvY2stb3BlbmluZyBzdGF0ZW1lbnQsIHRoZSBuZXh0IGxpbmUgaXMgaW5kZW50ZWQgYnkgNCBzcGFjZXMKLQkoaW4gdGhlIFB5dGhvbiBTaGVsbCB3aW5kb3cgYnkgb25lIHRhYikuICBBZnRlciBjZXJ0YWluIGtleXdvcmRzCi0JKGJyZWFrLCByZXR1cm4gZXRjLikgdGhlIG5leHQgbGluZSBpcyBkZWRlbnRlZC4gIEluIGxlYWRpbmcKLQlpbmRlbnRhdGlvbiwgQmFja3NwYWNlIGRlbGV0ZXMgdXAgdG8gNCBzcGFjZXMgaWYgdGhleSBhcmUgdGhlcmUuICBUYWIKLQlpbnNlcnRzIHNwYWNlcyAoaW4gdGhlIFB5dGhvbiBTaGVsbCB3aW5kb3cgb25lIHRhYiksIG51bWJlciBkZXBlbmRzIG9uCi0JSW5kZW50IFdpZHRoLiAgKE4uQi4gQ3VycmVudGx5IHRhYnMgYXJlIHJlc3RyaWN0ZWQgdG8gZm91ciBzcGFjZXMgZHVlCi0JdG8gVGNsL1RrIGlzc3Vlcy4pCisgICAgICAgIEFmdGVyIGEgYmxvY2stb3BlbmluZyBzdGF0ZW1lbnQsIHRoZSBuZXh0IGxpbmUgaXMgaW5kZW50ZWQgYnkgNCBzcGFjZXMKKyAgICAgICAgKGluIHRoZSBQeXRob24gU2hlbGwgd2luZG93IGJ5IG9uZSB0YWIpLiAgQWZ0ZXIgY2VydGFpbiBrZXl3b3JkcworICAgICAgICAoYnJlYWssIHJldHVybiBldGMuKSB0aGUgbmV4dCBsaW5lIGlzIGRlZGVudGVkLiAgSW4gbGVhZGluZworICAgICAgICBpbmRlbnRhdGlvbiwgQmFja3NwYWNlIGRlbGV0ZXMgdXAgdG8gNCBzcGFjZXMgaWYgdGhleSBhcmUgdGhlcmUuICBUYWIKKyAgICAgICAgaW5zZXJ0cyBzcGFjZXMgKGluIHRoZSBQeXRob24gU2hlbGwgd2luZG93IG9uZSB0YWIpLCBudW1iZXIgZGVwZW5kcyBvbgorICAgICAgICBJbmRlbnQgV2lkdGguIEN1cnJlbnRseSB0YWJzIGFyZSByZXN0cmljdGVkIHRvIGZvdXIgc3BhY2VzIGR1ZQorICAgICAgICB0byBUY2wvVGsgbGltaXRhdGlvbnMuCiAKICAgICAgICAgU2VlIGFsc28gdGhlIGluZGVudC9kZWRlbnQgcmVnaW9uIGNvbW1hbmRzIGluIHRoZSBlZGl0IG1lbnUuCiAKIENvbXBsZXRpb25zOgogCi0JQ29tcGxldGlvbnMgYXJlIHN1cHBsaWVkIGZvciBmdW5jdGlvbnMsIGNsYXNzZXMsIGFuZCBhdHRyaWJ1dGVzIG9mCi0JY2xhc3NlcywgYm90aCBidWlsdC1pbiBhbmQgdXNlci1kZWZpbmVkLiAgQ29tcGxldGlvbnMgYXJlIGFsc28gcHJvdmlkZWQKLQlmb3IgZmlsZW5hbWVzLgorICAgICAgICBDb21wbGV0aW9ucyBhcmUgc3VwcGxpZWQgZm9yIGZ1bmN0aW9ucywgY2xhc3NlcywgYW5kIGF0dHJpYnV0ZXMgb2YKKyAgICAgICAgY2xhc3NlcywgYm90aCBidWlsdC1pbiBhbmQgdXNlci1kZWZpbmVkLiAgQ29tcGxldGlvbnMgYXJlIGFsc28gcHJvdmlkZWQKKyAgICAgICAgZm9yIGZpbGVuYW1lcy4KIAotCVRoZSBBdXRvQ29tcGxldGVXaW5kb3cgKEFDVykgd2lsbCBvcGVuIGFmdGVyIGEgcHJlZGVmaW5lZCBkZWxheQotCShkZWZhdWx0IGlzIHR3byBzZWNvbmRzKSBhZnRlciBhICcuJyBvciAoaW4gYSBzdHJpbmcpIGFuIG9zLnNlcCBpcwotCXR5cGVkLiAgSWYgYWZ0ZXIgb25lIG9mIHRob3NlIGNoYXJhY3RlcnMgKHBsdXMgemVybyBvciBtb3JlIG90aGVyCi0JY2hhcmFjdGVycykgeW91IHR5cGUgYSBUYWIgdGhlIEFDVyB3aWxsIG9wZW4gaW1tZWRpYXRlbHkgaWYgYSBwb3NzaWJsZQotCWNvbnRpbnVhdGlvbiBpcyBmb3VuZC4KKyAgICAgICAgVGhlIEF1dG9Db21wbGV0ZVdpbmRvdyAoQUNXKSB3aWxsIG9wZW4gYWZ0ZXIgYSBwcmVkZWZpbmVkIGRlbGF5CisgICAgICAgIChkZWZhdWx0IGlzIHR3byBzZWNvbmRzKSBhZnRlciBhICcuJyBvciAoaW4gYSBzdHJpbmcpIGFuIG9zLnNlcCBpcworICAgICAgICB0eXBlZC4gIElmIGFmdGVyIG9uZSBvZiB0aG9zZSBjaGFyYWN0ZXJzIChwbHVzIHplcm8gb3IgbW9yZSBvdGhlcgorICAgICAgICBjaGFyYWN0ZXJzKSBhIHRhYiBpcyB0eXBlZCB0aGUgQUNXIHdpbGwgb3BlbiBpbW1lZGlhdGVseSBpZiBhIHBvc3NpYmxlCisgICAgICAgIGNvbnRpbnVhdGlvbiBpcyBmb3VuZC4KIAotCUlmIHRoZXJlIGlzIG9ubHkgb25lIHBvc3NpYmxlIGNvbXBsZXRpb24gZm9yIHRoZSBjaGFyYWN0ZXJzIGVudGVyZWQsIGEKLQlUYWIgd2lsbCBzdXBwbHkgdGhhdCBjb21wbGV0aW9uIHdpdGhvdXQgb3BlbmluZyB0aGUgQUNXLgorICAgICAgICBJZiB0aGVyZSBpcyBvbmx5IG9uZSBwb3NzaWJsZSBjb21wbGV0aW9uIGZvciB0aGUgY2hhcmFjdGVycyBlbnRlcmVkLCBhCisgICAgICAgIHRhYiB3aWxsIHN1cHBseSB0aGF0IGNvbXBsZXRpb24gd2l0aG91dCBvcGVuaW5nIHRoZSBBQ1cuCiAKLQknU2hvdyBDb21wbGV0aW9ucycgd2lsbCBmb3JjZSBvcGVuIGEgY29tcGxldGlvbnMgd2luZG93LiAgSW4gYW4gZW1wdHkKLQlzdHJpbmcsIHRoaXMgd2lsbCBjb250YWluIHRoZSBmaWxlcyBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBPbiBhCi0JYmxhbmsgbGluZSwgaXQgd2lsbCBjb250YWluIHRoZSBidWlsdC1pbiBhbmQgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBhbmQKLQljbGFzc2VzIGluIHRoZSBjdXJyZW50IG5hbWUgc3BhY2VzLCBwbHVzIGFueSBtb2R1bGVzIGltcG9ydGVkLiAgSWYgc29tZQotCWNoYXJhY3RlcnMgaGF2ZSBiZWVuIGVudGVyZWQsIHRoZSBBQ1cgd2lsbCBhdHRlbXB0IHRvIGJlIG1vcmUgc3BlY2lmaWMuCisgICAgICAgICdTaG93IENvbXBsZXRpb25zJyB3aWxsIGZvcmNlIG9wZW4gYSBjb21wbGV0aW9ucyB3aW5kb3csIGJ5IGRlZmF1bHQgdGhlCisgICAgICAgIENvbnRyb2wtc3BhY2Uga2V5cyB3aWxsIG9wZW4gYSBjb21wbGV0aW9ucyB3aW5kb3cuICBJbiBhbiBlbXB0eQorICAgICAgICBzdHJpbmcsIHRoaXMgd2lsbCBjb250YWluIHRoZSBmaWxlcyBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBPbiBhCisgICAgICAgIGJsYW5rIGxpbmUsIGl0IHdpbGwgY29udGFpbiB0aGUgYnVpbHQtaW4gYW5kIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgYW5kCisgICAgICAgIGNsYXNzZXMgaW4gdGhlIGN1cnJlbnQgbmFtZSBzcGFjZXMsIHBsdXMgYW55IG1vZHVsZXMgaW1wb3J0ZWQuICBJZiBzb21lCisgICAgICAgIGNoYXJhY3RlcnMgaGF2ZSBiZWVuIGVudGVyZWQsIHRoZSBBQ1cgd2lsbCBhdHRlbXB0IHRvIGJlIG1vcmUgc3BlY2lmaWMuCiAKLQlJZiBzdHJpbmcgb2YgY2hhcmFjdGVycyBpcyB0eXBlZCwgdGhlIEFDVyBzZWxlY3Rpb24gd2lsbCBqdW1wIHRvIHRoZQotCWVudHJ5IG1vc3QgY2xvc2VseSBtYXRjaGluZyB0aG9zZSBjaGFyYWN0ZXJzLiBFbnRlcmluZyBhIFRhYiB3aWxsIGNhdXNlCi0JdGhlIGxvbmdlc3Qgbm9uLWFtYmlndW91cyBtYXRjaCB0byBiZSBlbnRlcmVkIGluIHRoZSBFZGl0IHdpbmRvdyBvcgotCVNoZWxsLiAgVHdvIFRhYnMgaW4gYSByb3cgd2lsbCBzdXBwbHkgdGhlIGN1cnJlbnQgQUNXIHNlbGVjdGlvbiwgYXMKLQl3aWxsIFJldHVybiBvciBhIGRvdWJsZSBjbGljay4gIEN1cnNvciBrZXlzLCBQYWdlIFVwL0Rvd24sIG1vdXNlCi0Jc2VsZWN0aW9uLCBhbmQgdGhlIHNjcm9sbHdoZWVsIGFsbCBvcGVyYXRlIG9uIHRoZSBBQ1cuCisgICAgICAgIElmIHN0cmluZyBvZiBjaGFyYWN0ZXJzIGlzIHR5cGVkLCB0aGUgQUNXIHNlbGVjdGlvbiB3aWxsIGp1bXAgdG8gdGhlCisgICAgICAgIGVudHJ5IG1vc3QgY2xvc2VseSBtYXRjaGluZyB0aG9zZSBjaGFyYWN0ZXJzLiBFbnRlcmluZyBhIHRhYiB3aWxsIGNhdXNlCisgICAgICAgIHRoZSBsb25nZXN0IG5vbi1hbWJpZ3VvdXMgbWF0Y2ggdG8gYmUgZW50ZXJlZCBpbiB0aGUgRWRpdCB3aW5kb3cgb3IKKyAgICAgICAgU2hlbGwuICBUd28gdGFicyBpbiBhIHJvdyB3aWxsIHN1cHBseSB0aGUgY3VycmVudCBBQ1cgc2VsZWN0aW9uLCBhcworICAgICAgICB3aWxsIHJldHVybiBvciBhIGRvdWJsZSBjbGljay4gIEN1cnNvciBrZXlzLCBQYWdlIFVwL0Rvd24sIG1vdXNlCisgICAgICAgIHNlbGVjdGlvbiwgYW5kIHRoZSBzY3JvbGwgd2hlZWwgYWxsIG9wZXJhdGUgb24gdGhlIEFDVy4KIAotCSdIaWRkZW4nIGF0dHJpYnV0ZXMgY2FuIGJlIGFjY2Vzc2VkIGJ5IHR5cGluZyB0aGUgYmVnaW5uaW5nIG9mIGhpZGRlbgotCW5hbWUgYWZ0ZXIgYSAnLicuICBlLmcuICdfJy4gIFRoaXMgYWxsb3dzIGFjY2VzcyB0byBtb2R1bGVzIHdpdGgKLQknX19hbGxfXycgc2V0LCBvciB0byBjbGFzcy1wcml2YXRlIGF0dHJpYnV0ZXMuCisgICAgICAgICJIaWRkZW4iIGF0dHJpYnV0ZXMgY2FuIGJlIGFjY2Vzc2VkIGJ5IHR5cGluZyB0aGUgYmVnaW5uaW5nIG9mIGhpZGRlbgorICAgICAgICBuYW1lIGFmdGVyIGEgJy4nLCAgZS5nLiAnXycuICBUaGlzIGFsbG93cyBhY2Nlc3MgdG8gbW9kdWxlcyB3aXRoCisgICAgICAgICdfX2FsbF9fJyBzZXQsIG9yIHRvIGNsYXNzLXByaXZhdGUgYXR0cmlidXRlcy4KIAotCUNvbXBsZXRpb25zIGFuZCB0aGUgJ0V4cGFuZCBXb3JkJyBmYWNpbGl0eSBjYW4gc2F2ZSBhIGxvdCBvZiB0eXBpbmchCisgICAgICAgIENvbXBsZXRpb25zIGFuZCB0aGUgJ0V4cGFuZCBXb3JkJyBmYWNpbGl0eSBjYW4gc2F2ZSBhIGxvdCBvZiB0eXBpbmchCiAKLQlDb21wbGV0aW9ucyBhcmUgY3VycmVudGx5IGxpbWl0ZWQgdG8gdGhvc2UgaW4gdGhlIG5hbWVzcGFjZXMuICBOYW1lcyBpbgotCWFuIEVkaXQgd2luZG93IHdoaWNoIGFyZSBub3QgdmlhIF9fbWFpbl9fIG9yIHN5cy5tb2R1bGVzIHdpbGwgbm90IGJlCi0JZm91bmQuICBSdW4gdGhlIG1vZHVsZSBvbmNlIHdpdGggeW91ciBpbXBvcnRzIHRvIGNvcnJlY3QgdGhpcwotCXNpdHVhdGlvbi4gIE5vdGUgdGhhdCBJRExFIGl0c2VsZiBwbGFjZXMgcXVpdGUgYSBmZXcgbW9kdWxlcyBpbgotCXN5cy5tb2R1bGVzLCBzbyBtdWNoIGNhbiBiZSBmb3VuZCBieSBkZWZhdWx0LCBlLmcuIHRoZSByZSBtb2R1bGUuCisgICAgICAgIENvbXBsZXRpb25zIGFyZSBjdXJyZW50bHkgbGltaXRlZCB0byB0aG9zZSBpbiB0aGUgbmFtZXNwYWNlcy4gIE5hbWVzIGluCisgICAgICAgIGFuIEVkaXRvciB3aW5kb3cgd2hpY2ggYXJlIG5vdCB2aWEgX19tYWluX18gb3Igc3lzLm1vZHVsZXMgd2lsbCBub3QgYmUKKyAgICAgICAgZm91bmQuICBSdW4gdGhlIG1vZHVsZSBvbmNlIHdpdGggeW91ciBpbXBvcnRzIHRvIGNvcnJlY3QgdGhpcworICAgICAgICBzaXR1YXRpb24uICBOb3RlIHRoYXQgSURMRSBpdHNlbGYgcGxhY2VzIHF1aXRlIGEgZmV3IG1vZHVsZXMgaW4KKyAgICAgICAgc3lzLm1vZHVsZXMsIHNvIG11Y2ggY2FuIGJlIGZvdW5kIGJ5IGRlZmF1bHQsIGUuZy4gdGhlIHJlIG1vZHVsZS4KIAotCUlmIHlvdSBkb24ndCBsaWtlIHRoZSBBQ1cgcG9wcGluZyB1cCB1bmJpZGRlbiwgc2ltcGx5IG1ha2UgdGhlIGRlbGF5Ci0JbG9uZ2VyIG9yIGRpc2FibGUgdGhlIGV4dGVuc2lvbi4gIE9UT0gsIHlvdSBjb3VsZCBtYWtlIHRoZSBkZWxheSB6ZXJvLgotCi0JWW91IGNvdWxkIGFsc28gc3dpdGNoIG9mZiB0aGUgQ2FsbFRpcHMgZXh0ZW5zaW9uLiAgKFdlIHdpbGwgYmUgYWRkaW5nCi0JYSBkZWxheSB0byB0aGUgY2FsbCB0aXAgd2luZG93LikKKyAgICAgICAgSWYgeW91IGRvbid0IGxpa2UgdGhlIEFDVyBwb3BwaW5nIHVwIHVuYmlkZGVuLCBzaW1wbHkgbWFrZSB0aGUgZGVsYXkKKyAgICAgICAgbG9uZ2VyIG9yIGRpc2FibGUgdGhlIGV4dGVuc2lvbi4gIE9yIGFub3RoZXIgb3B0aW9uIGlzIHRoZSBkZWxheSBjb3VsZAorICAgICAgICBiZSBzZXQgdG8gemVyby4gQW5vdGhlciBhbHRlcm5hdGl2ZSB0byBwcmV2ZW50aW5nIEFDVyBwb3B1cHMgaXMgdG8KKyAgICAgICAgZGlzYWJsZSB0aGUgY2FsbCB0aXBzIGV4dGVuc2lvbi4KIAogUHl0aG9uIFNoZWxsIHdpbmRvdzoKIAotCUNvbnRyb2wtYyBpbnRlcnJ1cHRzIGV4ZWN1dGluZyBjb21tYW5kLgotCUNvbnRyb2wtZCBzZW5kcyBlbmQtb2YtZmlsZTsgY2xvc2VzIHdpbmRvdyBpZiB0eXBlZCBhdCA+Pj4gcHJvbXB0LgorICAgICAgICBDb250cm9sLWMgaW50ZXJydXB0cyBleGVjdXRpbmcgY29tbWFuZC4KKyAgICAgICAgQ29udHJvbC1kIHNlbmRzIGVuZC1vZi1maWxlOyBjbG9zZXMgd2luZG93IGlmIHR5cGVkIGF0ID4+PiBwcm9tcHQuCisgICAgICAgIEFsdC0vIGV4cGFuZCB3b3JkIGlzIGFsc28gdXNlZnVsIHRvIHJlZHVjZSB0eXBpbmcuCiAKICAgICBDb21tYW5kIGhpc3Rvcnk6CiAKLQlBbHQtcCByZXRyaWV2ZXMgcHJldmlvdXMgY29tbWFuZCBtYXRjaGluZyB3aGF0IHlvdSBoYXZlIHR5cGVkLgotCUFsdC1uIHJldHJpZXZlcyBuZXh0LgotCSAgICAgIChUaGVzZSBhcmUgQ29udHJvbC1wLCBDb250cm9sLW4gb24gT1MgWCkKLQlSZXR1cm4gd2hpbGUgY3Vyc29yIGlzIG9uIGEgcHJldmlvdXMgY29tbWFuZCByZXRyaWV2ZXMgdGhhdCBjb21tYW5kLgotCUV4cGFuZCB3b3JkIGlzIGFsc28gdXNlZnVsIHRvIHJlZHVjZSB0eXBpbmcuCisgICAgICAgIEFsdC1wIHJldHJpZXZlcyBwcmV2aW91cyBjb21tYW5kIG1hdGNoaW5nIHdoYXQgeW91IGhhdmUgdHlwZWQuIE9uIE9TIFgKKyAgICAgICAgdXNlIENvbnRyb2wtcC4KKyAgICAgICAgQWx0LW4gcmV0cmlldmVzIG5leHQuIE9uIE9TIFggdXNlIENvbnRyb2wtbi4KKyAgICAgICAgUmV0dXJuIHdoaWxlIGN1cnNvciBpcyBvbiBhIHByZXZpb3VzIGNvbW1hbmQgcmV0cmlldmVzIHRoYXQgY29tbWFuZC4KIAogICAgIFN5bnRheCBjb2xvcnM6CiAKLQlUaGUgY29sb3JpbmcgaXMgYXBwbGllZCBpbiBhIGJhY2tncm91bmQgInRocmVhZCIsIHNvIHlvdSBtYXkKLQlvY2Nhc2lvbmFsbHkgc2VlIHVuY29sb3JpemVkIHRleHQuICBUbyBjaGFuZ2UgdGhlIGNvbG9yCi0Jc2NoZW1lLCB1c2UgdGhlIENvbmZpZ3VyZSBJRExFIC8gSGlnaGxpZ2h0aW5nIGRpYWxvZy4KKyAgICAgICAgVGhlIGNvbG9yaW5nIGlzIGFwcGxpZWQgaW4gYSBiYWNrZ3JvdW5kICJ0aHJlYWQiLCBzbyB5b3UgbWF5CisgICAgICAgIG9jY2FzaW9uYWxseSBzZWUgdW5jb2xvcml6ZWQgdGV4dC4gIFRvIGNoYW5nZSB0aGUgY29sb3IKKyAgICAgICAgc2NoZW1lLCB1c2UgdGhlIENvbmZpZ3VyZSBJRExFIC8gSGlnaGxpZ2h0aW5nIGRpYWxvZy4KIAogICAgIFB5dGhvbiBkZWZhdWx0IHN5bnRheCBjb2xvcnM6CiAKLQlLZXl3b3JkcwlvcmFuZ2UKLQlCdWlsdGlucwlyb3lhbCBwdXJwbGUKLQlTdHJpbmdzCQlncmVlbgotCUNvbW1lbnRzCXJlZAotCURlZmluaXRpb25zCWJsdWUKKyAgICAgICAgS2V5d29yZHMgICAgICAgIG9yYW5nZQorICAgICAgICBCdWlsdGlucyAgICAgICAgcm95YWwgcHVycGxlCisgICAgICAgIFN0cmluZ3MgICAgICAgICBncmVlbgorICAgICAgICBDb21tZW50cyAgICAgICAgcmVkCisgICAgICAgIERlZmluaXRpb25zICAgICBibHVlCiAKICAgICBTaGVsbCBkZWZhdWx0IGNvbG9yczoKIAotCUNvbnNvbGUgb3V0cHV0CWJyb3duCi0Jc3Rkb3V0CQlibHVlCi0Jc3RkZXJyCQlyZWQKLQlzdGRpbgkJYmxhY2sKKyAgICAgICAgQ29uc29sZSBvdXRwdXQgIGJyb3duCisgICAgICAgIHN0ZG91dCAgICAgICAgICBibHVlCisgICAgICAgIHN0ZGVyciAgICAgICAgICByZWQKKyAgICAgICAgc3RkaW4gICAgICAgICAgIGJsYWNrCiAKIE90aGVyIHByZWZlcmVuY2VzOgogCi0JVGhlIGZvbnQgcHJlZmVyZW5jZXMsIGtleWJpbmRpbmcsIGFuZCBzdGFydHVwIHByZWZlcmVuY2VzIGNhbgotCWJlIGNoYW5nZWQgdXNpbmcgdGhlIFNldHRpbmdzIGRpYWxvZy4KKyAgICAgICAgVGhlIGZvbnQgcHJlZmVyZW5jZXMsIGhpZ2hsaWdodGluZywga2V5cywgYW5kIGdlbmVyYWwgcHJlZmVyZW5jZXMgY2FuCisgICAgICAgIGJlIGNoYW5nZWQgdmlhIHRoZSBDb25maWd1cmUgSURMRSBtZW51IG9wdGlvbi4gIEJlIHN1cmUgdG8gbm90ZSB0aGF0CisgICAgICAgIGtleXMgY2FuIGJlIHVzZXIgZGVmaW5lZCwgSURMRSBzaGlwcyB3aXRoIGZvdXIgYnVpbHQgaW4ga2V5IHNldHMuIEluCisgICAgICAgIGFkZGl0aW9uIGEgdXNlciBjYW4gY3JlYXRlIGEgY3VzdG9tIGtleSBzZXQgaW4gdGhlIENvbmZpZ3VyZSBJRExFCisgICAgICAgIGRpYWxvZyB1bmRlciB0aGUga2V5cyB0YWIuCiAKIENvbW1hbmQgbGluZSB1c2FnZToKIAotCUVudGVyIGlkbGUgLWggYXQgdGhlIGNvbW1hbmQgcHJvbXB0IHRvIGdldCBhIHVzYWdlIG1lc3NhZ2UuCisgICAgICAgIEVudGVyIGlkbGUgLWggYXQgdGhlIGNvbW1hbmQgcHJvbXB0IHRvIGdldCBhIHVzYWdlIG1lc3NhZ2UuCiAKLVJ1bm5pbmcgd2l0aG91dCBhIHN1YnByb2Nlc3M6CisgICAgICAgIGlkbGUucHkgWy1jIGNvbW1hbmRdIFstZF0gWy1lXSBbLXNdIFstdCB0aXRsZV0gW2FyZ10gLi4uCiAKLQlJZiBJRExFIGlzIHN0YXJ0ZWQgd2l0aCB0aGUgLW4gY29tbWFuZCBsaW5lIHN3aXRjaCBpdCB3aWxsIHJ1biBpbiBhCi0Jc2luZ2xlIHByb2Nlc3MgYW5kIHdpbGwgbm90IGNyZWF0ZSB0aGUgc3VicHJvY2VzcyB3aGljaCBydW5zIHRoZSBSUEMKLQlQeXRob24gZXhlY3V0aW9uIHNlcnZlci4gIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiBQeXRob24gY2Fubm90IGNyZWF0ZQotCXRoZSBzdWJwcm9jZXNzIG9yIHRoZSBSUEMgc29ja2V0IGludGVyZmFjZSBvbiB5b3VyIHBsYXRmb3JtLiAgSG93ZXZlciwKLQlpbiB0aGlzIG1vZGUgdXNlciBjb2RlIGlzIG5vdCBpc29sYXRlZCBmcm9tIElETEUgaXRzZWxmLiAgQWxzbywgdGhlCi0JZW52aXJvbm1lbnQgaXMgbm90IHJlc3RhcnRlZCB3aGVuIFJ1bi9SdW4gTW9kdWxlIChGNSkgaXMgc2VsZWN0ZWQuICBJZgotCXlvdXIgY29kZSBoYXMgYmVlbiBtb2RpZmllZCwgeW91IG11c3QgcmVsb2FkKCkgdGhlIGFmZmVjdGVkIG1vZHVsZXMgYW5kCi0JcmUtaW1wb3J0IGFueSBzcGVjaWZpYyBpdGVtcyAoZS5nLiBmcm9tIGZvbyBpbXBvcnQgYmF6KSBpZiB0aGUgY2hhbmdlcwotCWFyZSB0byB0YWtlIGVmZmVjdC4gIEZvciB0aGVzZSByZWFzb25zLCBpdCBpcyBwcmVmZXJhYmxlIHRvIHJ1biBJRExFCi0Jd2l0aCB0aGUgZGVmYXVsdCBzdWJwcm9jZXNzIGlmIGF0IGFsbCBwb3NzaWJsZS4KKyAgICAgICAgLWMgY29tbWFuZCAgcnVuIHRoaXMgY29tbWFuZAorICAgICAgICAtZCAgICAgICAgICBlbmFibGUgZGVidWdnZXIKKyAgICAgICAgLWUgICAgICAgICAgZWRpdCBtb2RlOyBhcmd1bWVudHMgYXJlIGZpbGVzIHRvIGJlIGVkaXRlZAorICAgICAgICAtcyAgICAgICAgICBydW4gJElETEVTVEFSVFVQIG9yICRQWVRIT05TVEFSVFVQIGZpcnN0CisgICAgICAgIC10IHRpdGxlICAgIHNldCB0aXRsZSBvZiBzaGVsbCB3aW5kb3cKKworICAgICAgICBJZiB0aGVyZSBhcmUgYXJndW1lbnRzOgorICAgICAgICAxLiBJZiAtZSBpcyB1c2VkLCBhcmd1bWVudHMgYXJlIGZpbGVzIG9wZW5lZCBmb3IgZWRpdGluZyBhbmQgc3lzLmFyZ3YKKyAgICAgICAgICAgcmVmbGVjdHMgdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gSURMRSBpdHNlbGYuCisgICAgICAgIDIuIE90aGVyd2lzZSwgaWYgLWMgaXMgdXNlZCwgYWxsIGFyZ3VtZW50cyBhcmUgcGxhY2VkIGluCisgICAgICAgICAgIHN5cy5hcmd2WzE6Li4uXSwgd2l0aCBzeXMuYXJndlswXSBzZXQgdG8gLWMuCisgICAgICAgIDMuIE90aGVyd2lzZSwgaWYgbmVpdGhlciAtZSBub3IgLWMgaXMgdXNlZCwgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEKKyAgICAgICAgICAgc2NyaXB0IHdoaWNoIGlzIGV4ZWN1dGVkIHdpdGggdGhlIHJlbWFpbmluZyBhcmd1bWVudHMgaW4KKyAgICAgICAgICAgc3lzLmFyZ3ZbMTouLi5dICBhbmQgc3lzLmFyZ3ZbMF0gc2V0IHRvIHRoZSBzY3JpcHQgbmFtZS4gIElmIHRoZQorICAgICAgICAgICBzY3JpcHQgbmFtZSBpcyAtLCBubyBzY3JpcHQgaXMgZXhlY3V0ZWQgYnV0IGFuIGludGVyYWN0aXZlIFB5dGhvbgorICAgICAgICAgICBzZXNzaW9uIGlzIHN0YXJ0ZWQ7IHRoZSBhcmd1bWVudHMgYXJlIHN0aWxsIGF2YWlsYWJsZSBpbiBzeXMuYXJndi4KKworUnVubmluZyB3aXRob3V0IGEgc3VicHJvY2VzczogKERFUFJFQ0FURUQgaW4gUHl0aG9uIDMuNCBzZWUgSXNzdWUgMTYxMjMpCisKKyAgICAgICAgSWYgSURMRSBpcyBzdGFydGVkIHdpdGggdGhlIC1uIGNvbW1hbmQgbGluZSBzd2l0Y2ggaXQgd2lsbCBydW4gaW4gYQorICAgICAgICBzaW5nbGUgcHJvY2VzcyBhbmQgd2lsbCBub3QgY3JlYXRlIHRoZSBzdWJwcm9jZXNzIHdoaWNoIHJ1bnMgdGhlIFJQQworICAgICAgICBQeXRob24gZXhlY3V0aW9uIHNlcnZlci4gIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiBQeXRob24gY2Fubm90IGNyZWF0ZQorICAgICAgICB0aGUgc3VicHJvY2VzcyBvciB0aGUgUlBDIHNvY2tldCBpbnRlcmZhY2Ugb24geW91ciBwbGF0Zm9ybS4gIEhvd2V2ZXIsCisgICAgICAgIGluIHRoaXMgbW9kZSB1c2VyIGNvZGUgaXMgbm90IGlzb2xhdGVkIGZyb20gSURMRSBpdHNlbGYuICBBbHNvLCB0aGUKKyAgICAgICAgZW52aXJvbm1lbnQgaXMgbm90IHJlc3RhcnRlZCB3aGVuIFJ1bi9SdW4gTW9kdWxlIChGNSkgaXMgc2VsZWN0ZWQuICBJZgorICAgICAgICB5b3VyIGNvZGUgaGFzIGJlZW4gbW9kaWZpZWQsIHlvdSBtdXN0IHJlbG9hZCgpIHRoZSBhZmZlY3RlZCBtb2R1bGVzIGFuZAorICAgICAgICByZS1pbXBvcnQgYW55IHNwZWNpZmljIGl0ZW1zIChlLmcuIGZyb20gZm9vIGltcG9ydCBiYXopIGlmIHRoZSBjaGFuZ2VzCisgICAgICAgIGFyZSB0byB0YWtlIGVmZmVjdC4gIEZvciB0aGVzZSByZWFzb25zLCBpdCBpcyBwcmVmZXJhYmxlIHRvIHJ1biBJRExFCisgICAgICAgIHdpdGggdGhlIGRlZmF1bHQgc3VicHJvY2VzcyBpZiBhdCBhbGwgcG9zc2libGUuCiAKIEV4dGVuc2lvbnM6CiAKLQlJRExFIGNvbnRhaW5zIGFuIGV4dGVuc2lvbiBmYWNpbGl0eS4gIFNlZSB0aGUgYmVnaW5uaW5nIG9mCi0JY29uZmlnLWV4dGVuc2lvbnMuZGVmIGluIHRoZSBpZGxlbGliIGRpcmVjdG9yeSBmb3IgZnVydGhlciBpbmZvcm1hdGlvbi4KLQlUaGUgZGVmYXVsdCBleHRlbnNpb25zIGFyZSBjdXJyZW50bHk6CisgICAgICAgIElETEUgY29udGFpbnMgYW4gZXh0ZW5zaW9uIGZhY2lsaXR5LiAgU2VlIHRoZSBiZWdpbm5pbmcgb2YKKyAgICAgICAgY29uZmlnLWV4dGVuc2lvbnMuZGVmIGluIHRoZSBpZGxlbGliIGRpcmVjdG9yeSBmb3IgZnVydGhlciBpbmZvcm1hdGlvbi4KKyAgICAgICAgVGhlIGRlZmF1bHQgZXh0ZW5zaW9ucyBhcmUgY3VycmVudGx5OgogCi0JCUZvcm1hdFBhcmFncmFwaAotCQlBdXRvRXhwYW5kCi0JCVpvb21IZWlnaHQKLQkJU2NyaXB0QmluZGluZwotCQlDYWxsVGlwcwotCQlQYXJlbk1hdGNoCi0JCUF1dG9Db21wbGV0ZQotCQlDb2RlQ29udGV4dAorICAgICAgICAgICAgICAgIEZvcm1hdFBhcmFncmFwaAorICAgICAgICAgICAgICAgIEF1dG9FeHBhbmQKKyAgICAgICAgICAgICAgICBab29tSGVpZ2h0CisgICAgICAgICAgICAgICAgU2NyaXB0QmluZGluZworICAgICAgICAgICAgICAgIENhbGxUaXBzCisgICAgICAgICAgICAgICAgUGFyZW5NYXRjaAorICAgICAgICAgICAgICAgIEF1dG9Db21wbGV0ZQorICAgICAgICAgICAgICAgIENvZGVDb250ZXh0CmRpZmYgLS1naXQgYS9MaWIvaWRsZWxpYi9pZGxldmVyLnB5IGIvTGliL2lkbGVsaWIvaWRsZXZlci5weQppbmRleCBiN2ZmMGY4Li5lZmU5NmE0IDEwMDY0NAotLS0gYS9MaWIvaWRsZWxpYi9pZGxldmVyLnB5CisrKyBiL0xpYi9pZGxlbGliL2lkbGV2ZXIucHkKQEAgLTEgKzEgQEAKLUlETEVfVkVSU0lPTiA9ICIzLjMuMiIKK0lETEVfVkVSU0lPTiA9ICIzLjQuMGEwIgpkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvcnBjLnB5IGIvTGliL2lkbGVsaWIvcnBjLnB5CmluZGV4IDYwOTNjZTIuLjljNTFiOGYgMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL3JwYy5weQorKysgYi9MaWIvaWRsZWxpYi9ycGMucHkKQEAgLTE5OSw3ICsxOTksNyBAQAogICAgICAgICAgICAgcmFpc2UKICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgogICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICByYWlzZQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4OgogICAgICAgICAgICAgcmV0dXJuICgiQ0FMTEVYQyIsIGV4KQpAQCAtMzM5LDggKzMzOSw4IEBACiAgICAgICAgICAgICAgICAgciwgdywgeCA9IHNlbGVjdC5zZWxlY3QoW10sIFtzZWxmLnNvY2tdLCBbXSkKICAgICAgICAgICAgICAgICBuID0gc2VsZi5zb2NrLnNlbmQoc1s6QlVGU0laRV0pCiAgICAgICAgICAgICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBUeXBlRXJyb3IpOgotICAgICAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoInNvY2tldCBubyBsb25nZXIgZXhpc3RzIikKLSAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigic29ja2V0IG5vIGxvbmdlciBleGlzdHMiKQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcyA9IHNbbjpdCkBAIC0zNTcsNyArMzU3LDcgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHMgPSBzZWxmLnNvY2sucmVjdihCVUZTSVpFKQotICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgIHJhaXNlIEVPRkVycm9yCiAgICAgICAgICAgICBpZiBsZW4ocykgPT0gMDoKICAgICAgICAgICAgICAgICByYWlzZSBFT0ZFcnJvcgpAQCAtNTM3LDcgKzUzNyw3IEBACiAgICAgICAgICAgICBTb2NrZXRJTy5fX2luaXRfXyhzZWxmLCB3b3JraW5nX3NvY2spCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBwcmludCgiKiogSW52YWxpZCBob3N0OiAiLCBhZGRyZXNzLCBmaWxlPXN5cy5fX3N0ZGVycl9fKQotICAgICAgICAgICAgcmFpc2Ugc29ja2V0LmVycm9yCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yCiAKICAgICBkZWYgZ2V0X3JlbW90ZV9wcm94eShzZWxmLCBvaWQpOgogICAgICAgICByZXR1cm4gUlBDUHJveHkoc2VsZiwgb2lkKQpkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvcnVuLnB5IGIvTGliL2lkbGVsaWIvcnVuLnB5CmluZGV4IDg4ZGEyM2IuLjUyODNhOTMgMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL3J1bi5weQorKysgYi9MaWIvaWRsZWxpYi9ydW4ucHkKQEAgLTEzNyw4ICsxMzcsOCBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZXJ2ZXIgPSBNeVJQQ1NlcnZlcihhZGRyZXNzLCBNeUhhbmRsZXIpCiAgICAgICAgICAgICBicmVhawotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGVycjoKLSAgICAgICAgICAgIHByaW50KCJJRExFIFN1YnByb2Nlc3M6IHNvY2tldCBlcnJvcjogIiArIGVyci5hcmdzWzFdICsKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgorICAgICAgICAgICAgcHJpbnQoIklETEUgU3VicHJvY2VzczogT1NFcnJvcjogIiArIGVyci5hcmdzWzFdICsKICAgICAgICAgICAgICAgICAgICIsIHJldHJ5aW5nLi4uLiIsIGZpbGU9c3lzLl9fc3RkZXJyX18pCiAgICAgICAgICAgICBzb2NrZXRfZXJyb3IgPSBlcnIKICAgICBlbHNlOgpkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvdGV4dFZpZXcucHkgYi9MaWIvaWRsZWxpYi90ZXh0Vmlldy5weQppbmRleCBiNWZkN2NkLi5kZDUwNTQ0IDEwMDY0NAotLS0gYS9MaWIvaWRsZWxpYi90ZXh0Vmlldy5weQorKysgYi9MaWIvaWRsZWxpYi90ZXh0Vmlldy5weQpAQCAtNjYsNyArNjYsNyBAQAogICAgIHRyeToKICAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCAncicsIGVuY29kaW5nPWVuY29kaW5nKSBhcyBmaWxlOgogICAgICAgICAgICAgY29udGVudHMgPSBmaWxlLnJlYWQoKQotICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICBpbXBvcnQgdGtpbnRlci5tZXNzYWdlYm94IGFzIHRrTWVzc2FnZUJveAogICAgICAgICB0a01lc3NhZ2VCb3guc2hvd2Vycm9yKHRpdGxlPSdGaWxlIExvYWQgRXJyb3InLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J1VuYWJsZSB0byBsb2FkIGZpbGUgJXIgLicgJSBmaWxlbmFtZSwKZGlmZiAtLWdpdCBhL0xpYi9pbWFwbGliLnB5IGIvTGliL2ltYXBsaWIucHkKaW5kZXggNzI0ZjlkMS4uYzk1OWYxMiAxMDA2NDQKLS0tIGEvTGliL2ltYXBsaWIucHkKKysrIGIvTGliL2ltYXBsaWIucHkKQEAgLTE3Niw3ICsxNzYsNyBAQAogICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHNlbGYuc2h1dGRvd24oKQotICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIHJhaXNlCiAKQEAgLTI2OSw3ICsyNjksNyBAQAogICAgICAgICBzZWxmLmZpbGUuY2xvc2UoKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnNvY2suc2h1dGRvd24oc29ja2V0LlNIVVRfUkRXUikKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgIyBUaGUgc2VydmVyIG1pZ2h0IGFscmVhZHkgaGF2ZSBjbG9zZWQgdGhlIGNvbm5lY3Rpb24KICAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRU5PVENPTk46CiAgICAgICAgICAgICAgICAgcmFpc2UKQEAgLTkwMyw3ICs5MDMsNyBAQAogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuc2VuZChkYXRhICsgQ1JMRikKLSAgICAgICAgZXhjZXB0IChzb2NrZXQuZXJyb3IsIE9TRXJyb3IpIGFzIHZhbDoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgdmFsOgogICAgICAgICAgICAgcmFpc2Ugc2VsZi5hYm9ydCgnc29ja2V0IGVycm9yOiAlcycgJSB2YWwpCiAKICAgICAgICAgaWYgbGl0ZXJhbCBpcyBOb25lOgpAQCAtOTI4LDcgKzkyOCw3IEBACiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi5zZW5kKGxpdGVyYWwpCiAgICAgICAgICAgICAgICAgc2VsZi5zZW5kKENSTEYpCi0gICAgICAgICAgICBleGNlcHQgKHNvY2tldC5lcnJvciwgT1NFcnJvcikgYXMgdmFsOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgdmFsOgogICAgICAgICAgICAgICAgIHJhaXNlIHNlbGYuYWJvcnQoJ3NvY2tldCBlcnJvcjogJXMnICUgdmFsKQogCiAgICAgICAgICAgICBpZiBub3QgbGl0ZXJhdG9yOgpkaWZmIC0tZ2l0IGEvTGliL2ltZ2hkci5weSBiL0xpYi9pbWdoZHIucHkKaW5kZXggNmVlNDVkYS4uMGNiYTA2MyAxMDA2NDQKLS0tIGEvTGliL2ltZ2hkci5weQorKysgYi9MaWIvaW1naGRyLnB5CkBAIC0xNDksNyArMTQ5LDcgQEAKICAgICAgICAgICAgIHN5cy5zdGRvdXQuZmx1c2goKQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHByaW50KHdoYXQoZmlsZW5hbWUpKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICBwcmludCgnKioqIG5vdCBmb3VuZCAqKionKQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgpkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi9fX2luaXRfXy5weSBiL0xpYi9pbXBvcnRsaWIvX19pbml0X18ucHkKaW5kZXggMjJjOTBmMi4uZDA3ZjAyZSAxMDA2NDQKLS0tIGEvTGliL2ltcG9ydGxpYi9fX2luaXRfXy5weQorKysgYi9MaWIvaW1wb3J0bGliL19faW5pdF9fLnB5CkBAIC02OCw2ICs2OCw4IEBACiAgICAgICAgICAgICByZXR1cm4gbG9hZGVyCiAgICAgZXhjZXB0IEtleUVycm9yOgogICAgICAgICBwYXNzCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd7fS5fX2xvYWRlcl9fIGlzIG5vdCBzZXQnLmZvcm1hdChuYW1lKSkKICAgICByZXR1cm4gX2Jvb3RzdHJhcC5fZmluZF9tb2R1bGUobmFtZSwgcGF0aCkKIAogCmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL19ib290c3RyYXAucHkgYi9MaWIvaW1wb3J0bGliL19ib290c3RyYXAucHkKaW5kZXggMDhkNWViNC4uNjc5YjM0NyAxMDA2NDQKLS0tIGEvTGliL2ltcG9ydGxpYi9fYm9vdHN0cmFwLnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvX2Jvb3RzdHJhcC5weQpAQCAtOSw3ICs5LDcgQEAKICMKICMgSU1QT1JUQU5UOiBXaGVuZXZlciBtYWtpbmcgY2hhbmdlcyB0byB0aGlzIG1vZHVsZSwgYmUgc3VyZSB0byBydW4KICMgYSB0b3AtbGV2ZWwgbWFrZSBpbiBvcmRlciB0byBnZXQgdGhlIGZyb3plbiB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUKLSMgdXBkYXRlLiBOb3QgZG9pbmcgc28sIHdpbGwgcmVzdWx0IGluIHRoZSBNYWtlZmlsZSB0byBmYWlsIGZvcgorIyB1cGRhdGUuIE5vdCBkb2luZyBzbyB3aWxsIHJlc3VsdCBpbiB0aGUgTWFrZWZpbGUgdG8gZmFpbCBmb3IKICMgYWxsIG90aGVycyB3aG8gZG9uJ3QgaGF2ZSBhIC4vcHl0aG9uIGFyb3VuZCB0byBmcmVlemUgdGhlIG1vZHVsZQogIyBpbiB0aGUgZWFybHkgc3RhZ2VzIG9mIGNvbXBpbGF0aW9uLgogIwpAQCAtMjAsMTAgKzIwLDYgQEAKICMgcmVmZXJlbmNlIGFueSBpbmplY3RlZCBvYmplY3RzISBUaGlzIGluY2x1ZGVzIG5vdCBvbmx5IGdsb2JhbCBjb2RlIGJ1dCBhbHNvCiAjIGFueXRoaW5nIHNwZWNpZmllZCBhdCB0aGUgY2xhc3MgbGV2ZWwuCiAKLSMgWFhYIE1ha2Ugc3VyZSBhbGwgcHVibGljIG5hbWVzIGhhdmUgbm8gc2luZ2xlIGxlYWRpbmcgdW5kZXJzY29yZSBhbmQgYWxsCi0jICAgICBvdGhlcnMgZG8uCi0KLQogIyBCb290c3RyYXAtcmVsYXRlZCBjb2RlICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCiBfQ0FTRV9JTlNFTlNJVElWRV9QTEFURk9STVMgPSAnd2luJywgJ2N5Z3dpbicsICdkYXJ3aW4nCkBAIC00MSw1OCArMzcsMzIgQEAKICAgICByZXR1cm4gX3JlbGF4X2Nhc2UKIAogCi0jIFRPRE86IEV4cG9zZSBmcm9tIG1hcnNoYWwKIGRlZiBfd19sb25nKHgpOgotICAgICIiIkNvbnZlcnQgYSAzMi1iaXQgaW50ZWdlciB0byBsaXR0bGUtZW5kaWFuLgotCi0gICAgWFhYIFRlbXBvcmFyeSB1bnRpbCBtYXJzaGFsJ3MgbG9uZyBmdW5jdGlvbnMgYXJlIGV4cG9zZWQuCi0KLSAgICAiIiIKLSAgICB4ID0gaW50KHgpCi0gICAgaW50X2J5dGVzID0gW10KLSAgICBpbnRfYnl0ZXMuYXBwZW5kKHggJiAweEZGKQotICAgIGludF9ieXRlcy5hcHBlbmQoKHggPj4gOCkgJiAweEZGKQotICAgIGludF9ieXRlcy5hcHBlbmQoKHggPj4gMTYpICYgMHhGRikKLSAgICBpbnRfYnl0ZXMuYXBwZW5kKCh4ID4+IDI0KSAmIDB4RkYpCi0gICAgcmV0dXJuIGJ5dGVhcnJheShpbnRfYnl0ZXMpCisgICAgIiIiQ29udmVydCBhIDMyLWJpdCBpbnRlZ2VyIHRvIGxpdHRsZS1lbmRpYW4uIiIiCisgICAgcmV0dXJuIChpbnQoeCkgJiAweEZGRkZGRkZGKS50b19ieXRlcyg0LCAnbGl0dGxlJykKIAogCi0jIFRPRE86IEV4cG9zZSBmcm9tIG1hcnNoYWwKIGRlZiBfcl9sb25nKGludF9ieXRlcyk6Ci0gICAgIiIiQ29udmVydCA0IGJ5dGVzIGluIGxpdHRsZS1lbmRpYW4gdG8gYW4gaW50ZWdlci4KLQotICAgIFhYWCBUZW1wb3JhcnkgdW50aWwgbWFyc2hhbCdzIGxvbmcgZnVuY3Rpb24gYXJlIGV4cG9zZWQuCi0KLSAgICAiIiIKLSAgICB4ID0gaW50X2J5dGVzWzBdCi0gICAgeCB8PSBpbnRfYnl0ZXNbMV0gPDwgOAotICAgIHggfD0gaW50X2J5dGVzWzJdIDw8IDE2Ci0gICAgeCB8PSBpbnRfYnl0ZXNbM10gPDwgMjQKLSAgICByZXR1cm4geAorICAgICIiIkNvbnZlcnQgNCBieXRlcyBpbiBsaXR0bGUtZW5kaWFuIHRvIGFuIGludGVnZXIuIiIiCisgICAgcmV0dXJuIGludC5mcm9tX2J5dGVzKGludF9ieXRlcywgJ2xpdHRsZScpCiAKIAogZGVmIF9wYXRoX2pvaW4oKnBhdGhfcGFydHMpOgogICAgICIiIlJlcGxhY2VtZW50IGZvciBvcy5wYXRoLmpvaW4oKS4iIiIKLSAgICBuZXdfcGFydHMgPSBbXQotICAgIGZvciBwYXJ0IGluIHBhdGhfcGFydHM6Ci0gICAgICAgIGlmIG5vdCBwYXJ0OgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgbmV3X3BhcnRzLmFwcGVuZChwYXJ0KQotICAgICAgICBpZiBwYXJ0Wy0xXSBub3QgaW4gcGF0aF9zZXBhcmF0b3JzOgotICAgICAgICAgICAgbmV3X3BhcnRzLmFwcGVuZChwYXRoX3NlcCkKLSAgICByZXR1cm4gJycuam9pbihuZXdfcGFydHNbOi0xXSkgICMgRHJvcCBzdXBlcmZsdW91cyBwYXRoIHNlcGFyYXRvci4KKyAgICByZXR1cm4gcGF0aF9zZXAuam9pbihbcGFydC5yc3RyaXAocGF0aF9zZXBhcmF0b3JzKQorICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcGFydCBpbiBwYXRoX3BhcnRzIGlmIHBhcnRdKQogCiAKIGRlZiBfcGF0aF9zcGxpdChwYXRoKToKICAgICAiIiJSZXBsYWNlbWVudCBmb3Igb3MucGF0aC5zcGxpdCgpLiIiIgorICAgIGlmIGxlbihwYXRoX3NlcGFyYXRvcnMpID09IDE6CisgICAgICAgIGZyb250LCBfLCB0YWlsID0gcGF0aC5ycGFydGl0aW9uKHBhdGhfc2VwKQorICAgICAgICByZXR1cm4gZnJvbnQsIHRhaWwKICAgICBmb3IgeCBpbiByZXZlcnNlZChwYXRoKToKICAgICAgICAgaWYgeCBpbiBwYXRoX3NlcGFyYXRvcnM6Ci0gICAgICAgICAgICBzZXAgPSB4Ci0gICAgICAgICAgICBicmVhawotICAgIGVsc2U6Ci0gICAgICAgIHNlcCA9IHBhdGhfc2VwCi0gICAgZnJvbnQsIF8sIHRhaWwgPSBwYXRoLnJwYXJ0aXRpb24oc2VwKQotICAgIHJldHVybiBmcm9udCwgdGFpbAorICAgICAgICAgICAgZnJvbnQsIHRhaWwgPSBwYXRoLnJzcGxpdCh4LCBtYXhzcGxpdD0xKQorICAgICAgICAgICAgcmV0dXJuIGZyb250LCB0YWlsCisgICAgcmV0dXJuICcnLCBwYXRoCiAKIAogZGVmIF9wYXRoX2lzX21vZGVfdHlwZShwYXRoLCBtb2RlKToKQEAgLTIzNyw3ICsyMDcsNyBAQAogICAgICAgICAgICAgICAgICAgICBzZWxmLndha2V1cC5yZWxlYXNlKCkKIAogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICJfTW9kdWxlTG9jayglcikgYXQgJWQiICUgKHNlbGYubmFtZSwgaWQoc2VsZikpCisgICAgICAgIHJldHVybiAiX01vZHVsZUxvY2soeyFyfSkgYXQge30iLmZvcm1hdChzZWxmLm5hbWUsIGlkKHNlbGYpKQogCiAKIGNsYXNzIF9EdW1teU1vZHVsZUxvY2s6CkBAIC0yNTgsNyArMjI4LDcgQEAKICAgICAgICAgc2VsZi5jb3VudCAtPSAxCiAKICAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiX0R1bW15TW9kdWxlTG9jayglcikgYXQgJWQiICUgKHNlbGYubmFtZSwgaWQoc2VsZikpCisgICAgICAgIHJldHVybiAiX0R1bW15TW9kdWxlTG9jayh7IXJ9KSBhdCB7fSIuZm9ybWF0KHNlbGYubmFtZSwgaWQoc2VsZikpCiAKIAogIyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIGZvciBjb25zdW1wdGlvbiBieSBQeXRob24vaW1wb3J0LmMuCkBAIC0zMTUsOTUgKzI4NSwxMDYgQEAKIAogIyBGaW5kZXIvbG9hZGVyIHV0aWxpdHkgY29kZSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi0iIiJNYWdpYyB3b3JkIHRvIHJlamVjdCAucHljIGZpbGVzIGdlbmVyYXRlZCBieSBvdGhlciBQeXRob24gdmVyc2lvbnMuCi1JdCBzaG91bGQgY2hhbmdlIGZvciBlYWNoIGluY29tcGF0aWJsZSBjaGFuZ2UgdG8gdGhlIGJ5dGVjb2RlLgorIyBNYWdpYyB3b3JkIHRvIHJlamVjdCAucHljIGZpbGVzIGdlbmVyYXRlZCBieSBvdGhlciBQeXRob24gdmVyc2lvbnMuCisjIEl0IHNob3VsZCBjaGFuZ2UgZm9yIGVhY2ggaW5jb21wYXRpYmxlIGNoYW5nZSB0byB0aGUgYnl0ZWNvZGUuCisjCisjIFRoZSB2YWx1ZSBvZiBDUiBhbmQgTEYgaXMgaW5jb3Jwb3JhdGVkIHNvIGlmIHlvdSBldmVyIHJlYWQgb3Igd3JpdGUKKyMgYSAucHljIGZpbGUgaW4gdGV4dCBtb2RlIHRoZSBtYWdpYyBudW1iZXIgd2lsbCBiZSB3cm9uZzsgYWxzbywgdGhlCisjIEFwcGxlIE1QVyBjb21waWxlciBzd2FwcyB0aGVpciB2YWx1ZXMsIGJvdGNoaW5nIHN0cmluZyBjb25zdGFudHMuCisjCisjIFRoZSBtYWdpYyBudW1iZXJzIG11c3QgYmUgc3BhY2VkIGFwYXJ0IGF0IGxlYXN0IDIgdmFsdWVzLCBhcyB0aGUKKyMgLVUgaW50ZXJwZXRlciBmbGFnIHdpbGwgY2F1c2UgTUFHSUMrMSBiZWluZyB1c2VkLiBUaGV5IGhhdmUgYmVlbgorIyBvZGQgbnVtYmVycyBmb3Igc29tZSB0aW1lIG5vdy4KKyMKKyMgVGhlcmUgd2VyZSBhIHZhcmlldHkgb2Ygb2xkIHNjaGVtZXMgZm9yIHNldHRpbmcgdGhlIG1hZ2ljIG51bWJlci4KKyMgVGhlIGN1cnJlbnQgd29ya2luZyBzY2hlbWUgaXMgdG8gaW5jcmVtZW50IHRoZSBwcmV2aW91cyB2YWx1ZSBieQorIyAxMC4KKyMKKyMgU3RhcnRpbmcgd2l0aCB0aGUgYWRvcHRpb24gb2YgUEVQIDMxNDcgaW4gUHl0aG9uIDMuMiwgZXZlcnkgYnVtcCBpbiBtYWdpYworIyBudW1iZXIgYWxzbyBpbmNsdWRlcyBhIG5ldyAibWFnaWMgdGFnIiwgaS5lLiBhIGh1bWFuIHJlYWRhYmxlIHN0cmluZyB1c2VkCisjIHRvIHJlcHJlc2VudCB0aGUgbWFnaWMgbnVtYmVyIGluIF9fcHljYWNoZV9fIGRpcmVjdG9yaWVzLiAgV2hlbiB5b3UgY2hhbmdlCisjIHRoZSBtYWdpYyBudW1iZXIsIHlvdSBtdXN0IGFsc28gc2V0IGEgbmV3IHVuaXF1ZSBtYWdpYyB0YWcuICBHZW5lcmFsbHkgdGhpcworIyBjYW4gYmUgbmFtZWQgYWZ0ZXIgdGhlIFB5dGhvbiBtYWpvciB2ZXJzaW9uIG9mIHRoZSBtYWdpYyBudW1iZXIgYnVtcCwgYnV0CisjIGl0IGNhbiByZWFsbHkgYmUgYW55dGhpbmcsIGFzIGxvbmcgYXMgaXQncyBkaWZmZXJlbnQgdGhhbiBhbnl0aGluZyBlbHNlCisjIHRoYXQncyBjb21lIGJlZm9yZS4gIFRoZSB0YWdzIGFyZSBpbmNsdWRlZCBpbiB0aGUgZm9sbG93aW5nIHRhYmxlLCBzdGFydGluZworIyB3aXRoIFB5dGhvbiAzLjJhMC4KKyMKKyMgS25vd24gdmFsdWVzOgorIyAgUHl0aG9uIDEuNTogICAyMDEyMQorIyAgUHl0aG9uIDEuNS4xOiAyMDEyMQorIyAgICAgUHl0aG9uIDEuNS4yOiAyMDEyMQorIyAgICAgUHl0aG9uIDEuNjogICA1MDQyOAorIyAgICAgUHl0aG9uIDIuMDogICA1MDgyMworIyAgICAgUHl0aG9uIDIuMC4xOiA1MDgyMworIyAgICAgUHl0aG9uIDIuMTogICA2MDIwMgorIyAgICAgUHl0aG9uIDIuMS4xOiA2MDIwMgorIyAgICAgUHl0aG9uIDIuMS4yOiA2MDIwMgorIyAgICAgUHl0aG9uIDIuMjogICA2MDcxNworIyAgICAgUHl0aG9uIDIuM2EwOiA2MjAxMQorIyAgICAgUHl0aG9uIDIuM2EwOiA2MjAyMQorIyAgICAgUHl0aG9uIDIuM2EwOiA2MjAxMSAoISkKKyMgICAgIFB5dGhvbiAyLjRhMDogNjIwNDEKKyMgICAgIFB5dGhvbiAyLjRhMzogNjIwNTEKKyMgICAgIFB5dGhvbiAyLjRiMTogNjIwNjEKKyMgICAgIFB5dGhvbiAyLjVhMDogNjIwNzEKKyMgICAgIFB5dGhvbiAyLjVhMDogNjIwODEgKGFzdC1icmFuY2gpCisjICAgICBQeXRob24gMi41YTA6IDYyMDkxICh3aXRoKQorIyAgICAgUHl0aG9uIDIuNWEwOiA2MjA5MiAoY2hhbmdlZCBXSVRIX0NMRUFOVVAgb3Bjb2RlKQorIyAgICAgUHl0aG9uIDIuNWIzOiA2MjEwMSAoZml4IHdyb25nIGNvZGU6IGZvciB4LCBpbiAuLi4pCisjICAgICBQeXRob24gMi41YjM6IDYyMTExIChmaXggd3JvbmcgY29kZTogeCArPSB5aWVsZCkKKyMgICAgIFB5dGhvbiAyLjVjMTogNjIxMjEgKGZpeCB3cm9uZyBsbm90YWIgd2l0aCBmb3IgbG9vcHMgYW5kCisjICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yaW5nIGNvbnN0YW50cyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gcmVtb3ZlZCkKKyMgICAgIFB5dGhvbiAyLjVjMjogNjIxMzEgKGZpeCB3cm9uZyBjb2RlOiBmb3IgeCwgaW4gLi4uIGluIGxpc3Rjb21wL2dlbmV4cCkKKyMgICAgIFB5dGhvbiAyLjZhMDogNjIxNTEgKHBlZXBob2xlIG9wdGltaXphdGlvbnMgYW5kIFNUT1JFX01BUCBvcGNvZGUpCisjICAgICBQeXRob24gMi42YTE6IDYyMTYxIChXSVRIX0NMRUFOVVAgb3B0aW1pemF0aW9uKQorIyAgICAgUHl0aG9uIDIuN2EwOiA2MjE3MSAob3B0aW1pemUgbGlzdCBjb21wcmVoZW5zaW9ucy9jaGFuZ2UgTElTVF9BUFBFTkQpCisjICAgICBQeXRob24gMi43YTA6IDYyMTgxIChvcHRpbWl6ZSBjb25kaXRpb25hbCBicmFuY2hlczoKKyMgICAgICAgICAgICAgICAgICAgICAgICAgIGludHJvZHVjZSBQT1BfSlVNUF9JRl9GQUxTRSBhbmQgUE9QX0pVTVBfSUZfVFJVRSkKKyMgICAgIFB5dGhvbiAyLjdhMCAgNjIxOTEgKGludHJvZHVjZSBTRVRVUF9XSVRIKQorIyAgICAgUHl0aG9uIDIuN2EwICA2MjIwMSAoaW50cm9kdWNlIEJVSUxEX1NFVCkKKyMgICAgIFB5dGhvbiAyLjdhMCAgNjIyMTEgKGludHJvZHVjZSBNQVBfQUREIGFuZCBTRVRfQUREKQorIyAgICAgUHl0aG9uIDMwMDA6ICAgMzAwMAorIyAgICAgICAgICAgICAgICAgICAgMzAxMCAocmVtb3ZlZCBVTkFSWV9DT05WRVJUKQorIyAgICAgICAgICAgICAgICAgICAgMzAyMCAoYWRkZWQgQlVJTERfU0VUKQorIyAgICAgICAgICAgICAgICAgICAgMzAzMCAoYWRkZWQga2V5d29yZC1vbmx5IHBhcmFtZXRlcnMpCisjICAgICAgICAgICAgICAgICAgICAzMDQwIChhZGRlZCBzaWduYXR1cmUgYW5ub3RhdGlvbnMpCisjICAgICAgICAgICAgICAgICAgICAzMDUwIChwcmludCBiZWNvbWVzIGEgZnVuY3Rpb24pCisjICAgICAgICAgICAgICAgICAgICAzMDYwIChQRVAgMzExNSBtZXRhY2xhc3Mgc3ludGF4KQorIyAgICAgICAgICAgICAgICAgICAgMzA2MSAoc3RyaW5nIGxpdGVyYWxzIGJlY29tZSB1bmljb2RlKQorIyAgICAgICAgICAgICAgICAgICAgMzA3MSAoUEVQIDMxMDkgcmFpc2UgY2hhbmdlcykKKyMgICAgICAgICAgICAgICAgICAgIDMwODEgKFBFUCAzMTM3IG1ha2UgX19maWxlX18gYW5kIF9fbmFtZV9fIHVuaWNvZGUpCisjICAgICAgICAgICAgICAgICAgICAzMDkxIChraWxsIHN0cjggaW50ZXJuaW5nKQorIyAgICAgICAgICAgICAgICAgICAgMzEwMSAobWVyZ2UgZnJvbSAyLjZhMCwgc2VlIDYyMTUxKQorIyAgICAgICAgICAgICAgICAgICAgMzEwMyAoX19maWxlX18gcG9pbnRzIHRvIHNvdXJjZSBmaWxlKQorIyAgICAgUHl0aG9uIDMuMGE0OiAzMTExIChXSVRIX0NMRUFOVVAgb3B0aW1pemF0aW9uKS4KKyMgICAgIFB5dGhvbiAzLjBhNTogMzEzMSAobGV4aWNhbCBleGNlcHRpb24gc3RhY2tpbmcsIGluY2x1ZGluZyBQT1BfRVhDRVBUKQorIyAgICAgUHl0aG9uIDMuMWEwOiAzMTQxIChvcHRpbWl6ZSBsaXN0LCBzZXQgYW5kIGRpY3QgY29tcHJlaGVuc2lvbnM6CisjICAgICAgICAgICAgIGNoYW5nZSBMSVNUX0FQUEVORCBhbmQgU0VUX0FERCwgYWRkIE1BUF9BREQpCisjICAgICBQeXRob24gMy4xYTA6IDMxNTEgKG9wdGltaXplIGNvbmRpdGlvbmFsIGJyYW5jaGVzOgorIyAgICAgICAgICAgICBpbnRyb2R1Y2UgUE9QX0pVTVBfSUZfRkFMU0UgYW5kIFBPUF9KVU1QX0lGX1RSVUUpCisjICAgICBQeXRob24gMy4yYTA6IDMxNjAgKGFkZCBTRVRVUF9XSVRIKQorIyAgICAgICAgICAgICAgICAgICB0YWc6IGNweXRob24tMzIKKyMgICAgIFB5dGhvbiAzLjJhMTogMzE3MCAoYWRkIERVUF9UT1BfVFdPLCByZW1vdmUgRFVQX1RPUFggYW5kIFJPVF9GT1VSKQorIyAgICAgICAgICAgICAgICAgICB0YWc6IGNweXRob24tMzIKKyMgICAgIFB5dGhvbiAzLjJhMiAgMzE4MCAoYWRkIERFTEVURV9ERVJFRikKKyMgICAgIFB5dGhvbiAzLjNhMCAgMzE5MCBfX2NsYXNzX18gc3VwZXIgY2xvc3VyZSBjaGFuZ2VkCisjICAgICBQeXRob24gMy4zYTAgIDMyMDAgKF9fcXVhbG5hbWVfXyBhZGRlZCkKKyMgICAgICAgICAgICAgICAgICAgICAgMzIxMCAoYWRkZWQgc2l6ZSBtb2R1bG8gMioqMzIgdG8gdGhlIHB5YyBoZWFkZXIpCisjICAgICBQeXRob24gMy4zYTEgIDMyMjAgKGNoYW5nZWQgUEVQIDM4MCBpbXBsZW1lbnRhdGlvbikKKyMgICAgIFB5dGhvbiAzLjNhNCAgMzIzMCAocmV2ZXJ0IGNoYW5nZXMgdG8gaW1wbGljaXQgX19jbGFzc19fIGNsb3N1cmUpCisjICAgICBQeXRob24gMy40YTEgIDMyNTAgKGV2YWx1YXRlIHBvc2l0aW9uYWwgZGVmYXVsdCBhcmd1bWVudHMgYmVmb3JlCisjICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZC1vbmx5IGRlZmF1bHRzKQorIyAgICAgUHl0aG9uIDMuNGExICAzMjYwIChhZGQgTE9BRF9DTEFTU0RFUkVGOyBhbGxvdyBsb2NhbHMgb2YgY2xhc3MgdG8gb3ZlcnJpZGUKKyMgICAgICAgICAgICAgICAgICAgICAgICBmcmVlIHZhcnMpCisjICAgICBQeXRob24gMy40YTEgIDMyNzAgKHZhcmlvdXMgdHdlYWtzIHRvIHRoZSBfX2NsYXNzXyBjbG9zdXJlKQorIyAgICAgUHl0aG9uIDMuNGExICAzMjgwIChyZW1vdmUgaW1wbGljaXQgY2xhc3MgYXJndW1lbnQpCisjCisjIE1BR0lDIG11c3QgY2hhbmdlIHdoZW5ldmVyIHRoZSBieXRlY29kZSBlbWl0dGVkIGJ5IHRoZSBjb21waWxlciBtYXkgbm8KKyMgbG9uZ2VyIGJlIHVuZGVyc3Rvb2QgYnkgb2xkZXIgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBldmFsIGxvb3AgKHVzdWFsbHkKKyMgZHVlIHRvIHRoZSBhZGRpdGlvbiBvZiBuZXcgb3Bjb2RlcykuCiAKLVRoZSB2YWx1ZSBvZiBDUiBhbmQgTEYgaXMgaW5jb3Jwb3JhdGVkIHNvIGlmIHlvdSBldmVyIHJlYWQgb3Igd3JpdGUKLWEgLnB5YyBmaWxlIGluIHRleHQgbW9kZSB0aGUgbWFnaWMgbnVtYmVyIHdpbGwgYmUgd3Jvbmc7IGFsc28sIHRoZQotQXBwbGUgTVBXIGNvbXBpbGVyIHN3YXBzIHRoZWlyIHZhbHVlcywgYm90Y2hpbmcgc3RyaW5nIGNvbnN0YW50cy4KLQotVGhlIG1hZ2ljIG51bWJlcnMgbXVzdCBiZSBzcGFjZWQgYXBhcnQgYXQgbGVhc3QgMiB2YWx1ZXMsIGFzIHRoZQotLVUgaW50ZXJwZXRlciBmbGFnIHdpbGwgY2F1c2UgTUFHSUMrMSBiZWluZyB1c2VkLiBUaGV5IGhhdmUgYmVlbgotb2RkIG51bWJlcnMgZm9yIHNvbWUgdGltZSBub3cuCi0KLVRoZXJlIHdlcmUgYSB2YXJpZXR5IG9mIG9sZCBzY2hlbWVzIGZvciBzZXR0aW5nIHRoZSBtYWdpYyBudW1iZXIuCi1UaGUgY3VycmVudCB3b3JraW5nIHNjaGVtZSBpcyB0byBpbmNyZW1lbnQgdGhlIHByZXZpb3VzIHZhbHVlIGJ5Ci0xMC4KLQotU3RhcnRpbmcgd2l0aCB0aGUgYWRvcHRpb24gb2YgUEVQIDMxNDcgaW4gUHl0aG9uIDMuMiwgZXZlcnkgYnVtcCBpbiBtYWdpYwotbnVtYmVyIGFsc28gaW5jbHVkZXMgYSBuZXcgIm1hZ2ljIHRhZyIsIGkuZS4gYSBodW1hbiByZWFkYWJsZSBzdHJpbmcgdXNlZAotdG8gcmVwcmVzZW50IHRoZSBtYWdpYyBudW1iZXIgaW4gX19weWNhY2hlX18gZGlyZWN0b3JpZXMuICBXaGVuIHlvdSBjaGFuZ2UKLXRoZSBtYWdpYyBudW1iZXIsIHlvdSBtdXN0IGFsc28gc2V0IGEgbmV3IHVuaXF1ZSBtYWdpYyB0YWcuICBHZW5lcmFsbHkgdGhpcwotY2FuIGJlIG5hbWVkIGFmdGVyIHRoZSBQeXRob24gbWFqb3IgdmVyc2lvbiBvZiB0aGUgbWFnaWMgbnVtYmVyIGJ1bXAsIGJ1dAotaXQgY2FuIHJlYWxseSBiZSBhbnl0aGluZywgYXMgbG9uZyBhcyBpdCdzIGRpZmZlcmVudCB0aGFuIGFueXRoaW5nIGVsc2UKLXRoYXQncyBjb21lIGJlZm9yZS4gIFRoZSB0YWdzIGFyZSBpbmNsdWRlZCBpbiB0aGUgZm9sbG93aW5nIHRhYmxlLCBzdGFydGluZwotd2l0aCBQeXRob24gMy4yYTAuCi0KLUtub3duIHZhbHVlczoKLSBQeXRob24gMS41OiAgIDIwMTIxCi0gUHl0aG9uIDEuNS4xOiAyMDEyMQotICAgIFB5dGhvbiAxLjUuMjogMjAxMjEKLSAgICBQeXRob24gMS42OiAgIDUwNDI4Ci0gICAgUHl0aG9uIDIuMDogICA1MDgyMwotICAgIFB5dGhvbiAyLjAuMTogNTA4MjMKLSAgICBQeXRob24gMi4xOiAgIDYwMjAyCi0gICAgUHl0aG9uIDIuMS4xOiA2MDIwMgotICAgIFB5dGhvbiAyLjEuMjogNjAyMDIKLSAgICBQeXRob24gMi4yOiAgIDYwNzE3Ci0gICAgUHl0aG9uIDIuM2EwOiA2MjAxMQotICAgIFB5dGhvbiAyLjNhMDogNjIwMjEKLSAgICBQeXRob24gMi4zYTA6IDYyMDExICghKQotICAgIFB5dGhvbiAyLjRhMDogNjIwNDEKLSAgICBQeXRob24gMi40YTM6IDYyMDUxCi0gICAgUHl0aG9uIDIuNGIxOiA2MjA2MQotICAgIFB5dGhvbiAyLjVhMDogNjIwNzEKLSAgICBQeXRob24gMi41YTA6IDYyMDgxIChhc3QtYnJhbmNoKQotICAgIFB5dGhvbiAyLjVhMDogNjIwOTEgKHdpdGgpCi0gICAgUHl0aG9uIDIuNWEwOiA2MjA5MiAoY2hhbmdlZCBXSVRIX0NMRUFOVVAgb3Bjb2RlKQotICAgIFB5dGhvbiAyLjViMzogNjIxMDEgKGZpeCB3cm9uZyBjb2RlOiBmb3IgeCwgaW4gLi4uKQotICAgIFB5dGhvbiAyLjViMzogNjIxMTEgKGZpeCB3cm9uZyBjb2RlOiB4ICs9IHlpZWxkKQotICAgIFB5dGhvbiAyLjVjMTogNjIxMjEgKGZpeCB3cm9uZyBsbm90YWIgd2l0aCBmb3IgbG9vcHMgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmluZyBjb25zdGFudHMgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIHJlbW92ZWQpCi0gICAgUHl0aG9uIDIuNWMyOiA2MjEzMSAoZml4IHdyb25nIGNvZGU6IGZvciB4LCBpbiAuLi4gaW4gbGlzdGNvbXAvZ2VuZXhwKQotICAgIFB5dGhvbiAyLjZhMDogNjIxNTEgKHBlZXBob2xlIG9wdGltaXphdGlvbnMgYW5kIFNUT1JFX01BUCBvcGNvZGUpCi0gICAgUHl0aG9uIDIuNmExOiA2MjE2MSAoV0lUSF9DTEVBTlVQIG9wdGltaXphdGlvbikKLSAgICBQeXRob24gMzAwMDogICAzMDAwCi0gICAgICAgICAgICAgICAgICAgMzAxMCAocmVtb3ZlZCBVTkFSWV9DT05WRVJUKQotICAgICAgICAgICAgICAgICAgIDMwMjAgKGFkZGVkIEJVSUxEX1NFVCkKLSAgICAgICAgICAgICAgICAgICAzMDMwIChhZGRlZCBrZXl3b3JkLW9ubHkgcGFyYW1ldGVycykKLSAgICAgICAgICAgICAgICAgICAzMDQwIChhZGRlZCBzaWduYXR1cmUgYW5ub3RhdGlvbnMpCi0gICAgICAgICAgICAgICAgICAgMzA1MCAocHJpbnQgYmVjb21lcyBhIGZ1bmN0aW9uKQotICAgICAgICAgICAgICAgICAgIDMwNjAgKFBFUCAzMTE1IG1ldGFjbGFzcyBzeW50YXgpCi0gICAgICAgICAgICAgICAgICAgMzA2MSAoc3RyaW5nIGxpdGVyYWxzIGJlY29tZSB1bmljb2RlKQotICAgICAgICAgICAgICAgICAgIDMwNzEgKFBFUCAzMTA5IHJhaXNlIGNoYW5nZXMpCi0gICAgICAgICAgICAgICAgICAgMzA4MSAoUEVQIDMxMzcgbWFrZSBfX2ZpbGVfXyBhbmQgX19uYW1lX18gdW5pY29kZSkKLSAgICAgICAgICAgICAgICAgICAzMDkxIChraWxsIHN0cjggaW50ZXJuaW5nKQotICAgICAgICAgICAgICAgICAgIDMxMDEgKG1lcmdlIGZyb20gMi42YTAsIHNlZSA2MjE1MSkKLSAgICAgICAgICAgICAgICAgICAzMTAzIChfX2ZpbGVfXyBwb2ludHMgdG8gc291cmNlIGZpbGUpCi0gICAgUHl0aG9uIDMuMGE0OiAzMTExIChXSVRIX0NMRUFOVVAgb3B0aW1pemF0aW9uKS4KLSAgICBQeXRob24gMy4wYTU6IDMxMzEgKGxleGljYWwgZXhjZXB0aW9uIHN0YWNraW5nLCBpbmNsdWRpbmcgUE9QX0VYQ0VQVCkKLSAgICBQeXRob24gMy4xYTA6IDMxNDEgKG9wdGltaXplIGxpc3QsIHNldCBhbmQgZGljdCBjb21wcmVoZW5zaW9uczoKLSAgICAgICAgICAgIGNoYW5nZSBMSVNUX0FQUEVORCBhbmQgU0VUX0FERCwgYWRkIE1BUF9BREQpCi0gICAgUHl0aG9uIDMuMWEwOiAzMTUxIChvcHRpbWl6ZSBjb25kaXRpb25hbCBicmFuY2hlczoKLSAgICAgICAgICAgIGludHJvZHVjZSBQT1BfSlVNUF9JRl9GQUxTRSBhbmQgUE9QX0pVTVBfSUZfVFJVRSkKLSAgICBQeXRob24gMy4yYTA6IDMxNjAgKGFkZCBTRVRVUF9XSVRIKQotICAgICAgICAgICAgICAgICAgdGFnOiBjcHl0aG9uLTMyCi0gICAgUHl0aG9uIDMuMmExOiAzMTcwIChhZGQgRFVQX1RPUF9UV08sIHJlbW92ZSBEVVBfVE9QWCBhbmQgUk9UX0ZPVVIpCi0gICAgICAgICAgICAgICAgICB0YWc6IGNweXRob24tMzIKLSAgICBQeXRob24gMy4yYTIgIDMxODAgKGFkZCBERUxFVEVfREVSRUYpCi0gICAgUHl0aG9uIDMuM2EwICAzMTkwIF9fY2xhc3NfXyBzdXBlciBjbG9zdXJlIGNoYW5nZWQKLSAgICBQeXRob24gMy4zYTAgIDMyMDAgKF9fcXVhbG5hbWVfXyBhZGRlZCkKLSAgICAgICAgICAgICAgICAgICAgIDMyMTAgKGFkZGVkIHNpemUgbW9kdWxvIDIqKjMyIHRvIHRoZSBweWMgaGVhZGVyKQotICAgIFB5dGhvbiAzLjNhMSAgMzIyMCAoY2hhbmdlZCBQRVAgMzgwIGltcGxlbWVudGF0aW9uKQotICAgIFB5dGhvbiAzLjNhNCAgMzIzMCAocmV2ZXJ0IGNoYW5nZXMgdG8gaW1wbGljaXQgX19jbGFzc19fIGNsb3N1cmUpCi0KLU1BR0lDIG11c3QgY2hhbmdlIHdoZW5ldmVyIHRoZSBieXRlY29kZSBlbWl0dGVkIGJ5IHRoZSBjb21waWxlciBtYXkgbm8KLWxvbmdlciBiZSB1bmRlcnN0b29kIGJ5IG9sZGVyIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgZXZhbCBsb29wICh1c3VhbGx5Ci1kdWUgdG8gdGhlIGFkZGl0aW9uIG9mIG5ldyBvcGNvZGVzKS4KLQotIiIiCi1fUkFXX01BR0lDX05VTUJFUiA9IDMyMzAgfCBvcmQoJ1xyJykgPDwgMTYgfCBvcmQoJ1xuJykgPDwgMjQKLV9NQUdJQ19CWVRFUyA9IGJ5dGVzKF9SQVdfTUFHSUNfTlVNQkVSID4+IG4gJiAweGZmIGZvciBuIGluIHJhbmdlKDAsIDI1LCA4KSkKK19NQUdJQ19CWVRFUyA9ICgzMjgwKS50b19ieXRlcygyLCAnbGl0dGxlJykgKyBiJ1xyXG4nCitfUkFXX01BR0lDX05VTUJFUiA9IGludC5mcm9tX2J5dGVzKF9NQUdJQ19CWVRFUywgJ2xpdHRsZScpCiAKIF9QWUNBQ0hFID0gJ19fcHljYWNoZV9fJwogCkBAIC00ODMsNiArNDY0LDE4IEBACiAgICAgcmV0dXJuIHNvdXJjZV9wYXRoIGlmIF9wYXRoX2lzZmlsZShzb3VyY2Vfc3RhdHMpIGVsc2UgYnl0ZWNvZGVfcGF0aAogCiAKK2RlZiBfY2FsY19tb2RlKHBhdGgpOgorICAgICIiIkNhbGN1bGF0ZSB0aGUgbW9kZSBwZXJtaXNzaW9ucyBmb3IgYSBieXRlY29kZSBmaWxlLiIiIgorICAgIHRyeToKKyAgICAgICAgbW9kZSA9IF9vcy5zdGF0KHBhdGgpLnN0X21vZGUKKyAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgbW9kZSA9IDBvNjY2CisgICAgIyBXZSBhbHdheXMgZW5zdXJlIHdyaXRlIGFjY2VzcyBzbyB3ZSBjYW4gdXBkYXRlIGNhY2hlZCBmaWxlcworICAgICMgbGF0ZXIgZXZlbiB3aGVuIHRoZSBzb3VyY2UgZmlsZXMgYXJlIHJlYWQtb25seSBvbiBXaW5kb3dzICgjNjA3NCkKKyAgICBtb2RlIHw9IDBvMjAwCisgICAgcmV0dXJuIG1vZGUKKworCiBkZWYgX3ZlcmJvc2VfbWVzc2FnZShtZXNzYWdlLCAqYXJncywgdmVyYm9zaXR5PTEpOgogICAgICIiIlByaW50IHRoZSBtZXNzYWdlIHRvIHN0ZGVyciBpZiAtdi9QWVRIT05WRVJCT1NFIGlzIHR1cm5lZCBvbi4iIiIKICAgICBpZiBzeXMuZmxhZ3MudmVyYm9zZSA+PSB2ZXJib3NpdHk6CkBAIC00OTEsNiArNDg0LDg2IEBACiAgICAgICAgIHByaW50KG1lc3NhZ2UuZm9ybWF0KCphcmdzKSwgZmlsZT1zeXMuc3RkZXJyKQogCiAKKyMgV3JpdHRlbiBhcyBhIGNsYXNzIG9ubHkgYmVjYXVzZSBjb250ZXh0bGliIGlzIG5vdCBhdmFpbGFibGUuCitjbGFzcyBfTW9kdWxlTWFuYWdlcjoKKworICAgICIiIkNvbnRleHQgbWFuYWdlciB3aGljaCByZXR1cm5zIHRoZSBtb2R1bGUgdG8gYmUgbG9hZGVkLgorCisgICAgRG9lcyB0aGUgcHJvcGVyIHVubG9hZGluZyBmcm9tIHN5cy5tb2R1bGVzIHVwb24gZmFpbHVyZS4KKworICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsICosIHJlc2V0X25hbWU9VHJ1ZSk6CisgICAgICAgICIiIlByZXBhcmUgdGhlIGNvbnRleHQgbWFuYWdlci4KKworICAgICAgICBUaGUgcmVzZXRfbmFtZSBhcmd1bWVudCBzcGVjaWZpZXMgd2hldGhlciB0byB1bmNvbmRpdGlvbmFsbHkgcmVzZXQKKyAgICAgICAgdGhlIF9fbmFtZV9fIGF0dHJpYnV0ZSBpZiB0aGUgbW9kdWxlIGlzIGZvdW5kIHRvIGJlIGEgcmVsb2FkLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fbmFtZSA9IG5hbWUKKyAgICAgICAgc2VsZi5fcmVzZXRfbmFtZSA9IHJlc2V0X25hbWUKKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIHNlbGYuX21vZHVsZSA9IHN5cy5tb2R1bGVzLmdldChzZWxmLl9uYW1lKQorICAgICAgICBzZWxmLl9pc19yZWxvYWQgPSBzZWxmLl9tb2R1bGUgaXMgbm90IE5vbmUKKyAgICAgICAgaWYgbm90IHNlbGYuX2lzX3JlbG9hZDoKKyAgICAgICAgICAgICMgVGhpcyBtdXN0IGJlIGRvbmUgYmVmb3JlIG9wZW4oKSBpcyBjYWxsZWQgYXMgdGhlICdpbycgbW9kdWxlCisgICAgICAgICAgICAjIGltcGxpY2l0bHkgaW1wb3J0cyAnbG9jYWxlJyBhbmQgd291bGQgb3RoZXJ3aXNlIHRyaWdnZXIgYW4KKyAgICAgICAgICAgICMgaW5maW5pdGUgbG9vcC4KKyAgICAgICAgICAgIHNlbGYuX21vZHVsZSA9IG5ld19tb2R1bGUoc2VsZi5fbmFtZSkKKyAgICAgICAgICAgICMgVGhpcyBtdXN0IGJlIGRvbmUgYmVmb3JlIHB1dHRpbmcgdGhlIG1vZHVsZSBpbiBzeXMubW9kdWxlcworICAgICAgICAgICAgIyAob3RoZXJ3aXNlIGFuIG9wdGltaXphdGlvbiBzaG9ydGN1dCBpbiBpbXBvcnQuYyBiZWNvbWVzIHdyb25nKQorICAgICAgICAgICAgc2VsZi5fbW9kdWxlLl9faW5pdGlhbGl6aW5nX18gPSBUcnVlCisgICAgICAgICAgICBzeXMubW9kdWxlc1tzZWxmLl9uYW1lXSA9IHNlbGYuX21vZHVsZQorICAgICAgICBlbGlmIHNlbGYuX3Jlc2V0X25hbWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5fbW9kdWxlLl9fbmFtZV9fID0gc2VsZi5fbmFtZQorICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICByZXR1cm4gc2VsZi5fbW9kdWxlCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MpOgorICAgICAgICBzZWxmLl9tb2R1bGUuX19pbml0aWFsaXppbmdfXyA9IEZhbHNlCisgICAgICAgIGRlbCBzZWxmLl9tb2R1bGUKKyAgICAgICAgaWYgYW55KGFyZyBpcyBub3QgTm9uZSBmb3IgYXJnIGluIGFyZ3MpIGFuZCBub3Qgc2VsZi5faXNfcmVsb2FkOgorICAgICAgICAgICAgZGVsIHN5cy5tb2R1bGVzW3NlbGYuX25hbWVdCisKKworZGVmIG1vZHVsZV90b19sb2FkKG5hbWUsICosIHJlc2V0X25hbWU9VHJ1ZSk6CisgICAgIiIiUmV0dXJuIGEgY29udGV4dCBtYW5hZ2VyIHdoaWNoIHByb3ZpZGVzIHRoZSBtb2R1bGUgb2JqZWN0IHRvIGxvYWQuCisKKyAgICBJZiByZXNldF9uYW1lIGlzIHRydWUsIHJlc2V0IHRoZSBtb2R1bGUncyBfX25hbWVfXyB0byAnbmFtZScuCisgICAgIiIiCisgICAgIyBIaWRpbmcgX01vZHVsZU1hbmFnZXIgYmVoaW5kIGEgZnVuY3Rpb24gZm9yIGJldHRlciBuYW1pbmcuCisgICAgcmV0dXJuIF9Nb2R1bGVNYW5hZ2VyKG5hbWUsIHJlc2V0X25hbWU9cmVzZXRfbmFtZSkKKworCitkZWYgX2luaXRfcGFja2FnZV9hdHRycyhsb2FkZXIsIG1vZHVsZSk6CisgICAgIiIiU2V0IF9fcGFja2FnZV9fIGFuZCBfX3BhdGhfXyBiYXNlZCBvbiB3aGF0IGxvYWRlci5pc19wYWNrYWdlKCkgc2F5cy4iIiIKKyAgICBuYW1lID0gbW9kdWxlLl9fbmFtZV9fCisgICAgdHJ5OgorICAgICAgICBpc19wYWNrYWdlID0gbG9hZGVyLmlzX3BhY2thZ2UobmFtZSkKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgIHBhc3MKKyAgICBlbHNlOgorICAgICAgICBpZiBpc19wYWNrYWdlOgorICAgICAgICAgICAgbW9kdWxlLl9fcGFja2FnZV9fID0gbmFtZQorICAgICAgICAgICAgbW9kdWxlLl9fcGF0aF9fID0gW10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1vZHVsZS5fX3BhY2thZ2VfXyA9IG5hbWUucnBhcnRpdGlvbignLicpWzBdCisKKworZGVmIF9pbml0X2ZpbGVfYXR0cnMobG9hZGVyLCBtb2R1bGUpOgorICAgICIiIlNldCBfX2ZpbGVfXyBhbmQgX19wYXRoX18gYmFzZWQgb24gbG9hZGVyLmdldF9maWxlbmFtZSgpLiIiIgorICAgIHRyeToKKyAgICAgICAgbW9kdWxlLl9fZmlsZV9fID0gbG9hZGVyLmdldF9maWxlbmFtZShtb2R1bGUuX19uYW1lX18pCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBwYXNzCisgICAgZWxzZToKKyAgICAgICAgaWYgbW9kdWxlLl9fbmFtZV9fID09IG1vZHVsZS5fX3BhY2thZ2VfXzoKKyAgICAgICAgICAgIG1vZHVsZS5fX3BhdGhfXy5hcHBlbmQoX3BhdGhfc3BsaXQobW9kdWxlLl9fZmlsZV9fKVswXSkKKworCiBkZWYgc2V0X3BhY2thZ2UoZnhuKToKICAgICAiIiJTZXQgX19wYWNrYWdlX18gb24gdGhlIHJldHVybmVkIG1vZHVsZS4iIiIKICAgICBkZWYgc2V0X3BhY2thZ2Vfd3JhcHBlcigqYXJncywgKiprd2FyZ3MpOgpAQCAtNTA4LDY4ICs1ODEsMTMgQEAKICAgICAiIiJTZXQgX19sb2FkZXJfXyBvbiB0aGUgcmV0dXJuZWQgbW9kdWxlLiIiIgogICAgIGRlZiBzZXRfbG9hZGVyX3dyYXBwZXIoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgbW9kdWxlID0gZnhuKHNlbGYsICphcmdzLCAqKmt3YXJncykKLSAgICAgICAgaWYgbm90IGhhc2F0dHIobW9kdWxlLCAnX19sb2FkZXJfXycpOgorICAgICAgICBpZiBnZXRhdHRyKG1vZHVsZSwgJ19fbG9hZGVyX18nLCBOb25lKSBpcyBOb25lOgogICAgICAgICAgICAgbW9kdWxlLl9fbG9hZGVyX18gPSBzZWxmCiAgICAgICAgIHJldHVybiBtb2R1bGUKICAgICBfd3JhcChzZXRfbG9hZGVyX3dyYXBwZXIsIGZ4bikKICAgICByZXR1cm4gc2V0X2xvYWRlcl93cmFwcGVyCiAKIAotZGVmIG1vZHVsZV9mb3JfbG9hZGVyKGZ4bik6Ci0gICAgIiIiRGVjb3JhdG9yIHRvIGhhbmRsZSBzZWxlY3RpbmcgdGhlIHByb3BlciBtb2R1bGUgZm9yIGxvYWRlcnMuCi0KLSAgICBUaGUgZGVjb3JhdGVkIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgbW9kdWxlIHRvIHVzZSBpbnN0ZWFkIG9mIHRoZSBtb2R1bGUKLSAgICBuYW1lLiBUaGUgbW9kdWxlIHBhc3NlZCBpbiB0byB0aGUgZnVuY3Rpb24gaXMgZWl0aGVyIGZyb20gc3lzLm1vZHVsZXMgaWYKLSAgICBpdCBhbHJlYWR5IGV4aXN0cyBvciBpcyBhIG5ldyBtb2R1bGUuIElmIHRoZSBtb2R1bGUgaXMgbmV3LCB0aGVuIF9fbmFtZV9fCi0gICAgaXMgc2V0IHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUgbWV0aG9kLCBfX2xvYWRlcl9fIGlzIHNldCB0byBzZWxmLCBhbmQKLSAgICBfX3BhY2thZ2VfXyBpcyBzZXQgYWNjb3JkaW5nbHkgKGlmIHNlbGYuaXNfcGFja2FnZSgpIGlzIGRlZmluZWQpIHdpbGwgYmUgc2V0Ci0gICAgYmVmb3JlIGl0IGlzIHBhc3NlZCB0byB0aGUgZGVjb3JhdGVkIGZ1bmN0aW9uIChpZiBzZWxmLmlzX3BhY2thZ2UoKSBkb2VzCi0gICAgbm90IHdvcmsgZm9yIHRoZSBtb2R1bGUgaXQgd2lsbCBiZSBzZXQgcG9zdC1sb2FkKS4KLQotICAgIElmIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQgYW5kIHRoZSBkZWNvcmF0b3IgY3JlYXRlZCB0aGUgbW9kdWxlIGl0IGlzCi0gICAgc3Vic2VxdWVudGx5IHJlbW92ZWQgZnJvbSBzeXMubW9kdWxlcy4KLQotICAgIFRoZSBkZWNvcmF0b3IgYXNzdW1lcyB0aGF0IHRoZSBkZWNvcmF0ZWQgZnVuY3Rpb24gdGFrZXMgdGhlIG1vZHVsZSBuYW1lIGFzCi0gICAgdGhlIHNlY29uZCBhcmd1bWVudC4KLQotICAgICIiIgotICAgIGRlZiBtb2R1bGVfZm9yX2xvYWRlcl93cmFwcGVyKHNlbGYsIGZ1bGxuYW1lLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBtb2R1bGUgPSBzeXMubW9kdWxlcy5nZXQoZnVsbG5hbWUpCi0gICAgICAgIGlzX3JlbG9hZCA9IG1vZHVsZSBpcyBub3QgTm9uZQotICAgICAgICBpZiBub3QgaXNfcmVsb2FkOgotICAgICAgICAgICAgIyBUaGlzIG11c3QgYmUgZG9uZSBiZWZvcmUgb3BlbigpIGlzIGNhbGxlZCBhcyB0aGUgJ2lvJyBtb2R1bGUKLSAgICAgICAgICAgICMgaW1wbGljaXRseSBpbXBvcnRzICdsb2NhbGUnIGFuZCB3b3VsZCBvdGhlcndpc2UgdHJpZ2dlciBhbgotICAgICAgICAgICAgIyBpbmZpbml0ZSBsb29wLgotICAgICAgICAgICAgbW9kdWxlID0gbmV3X21vZHVsZShmdWxsbmFtZSkKLSAgICAgICAgICAgICMgVGhpcyBtdXN0IGJlIGRvbmUgYmVmb3JlIHB1dHRpbmcgdGhlIG1vZHVsZSBpbiBzeXMubW9kdWxlcwotICAgICAgICAgICAgIyAob3RoZXJ3aXNlIGFuIG9wdGltaXphdGlvbiBzaG9ydGN1dCBpbiBpbXBvcnQuYyBiZWNvbWVzIHdyb25nKQotICAgICAgICAgICAgbW9kdWxlLl9faW5pdGlhbGl6aW5nX18gPSBUcnVlCi0gICAgICAgICAgICBzeXMubW9kdWxlc1tmdWxsbmFtZV0gPSBtb2R1bGUKLSAgICAgICAgICAgIG1vZHVsZS5fX2xvYWRlcl9fID0gc2VsZgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGlzX3BhY2thZ2UgPSBzZWxmLmlzX3BhY2thZ2UoZnVsbG5hbWUpCi0gICAgICAgICAgICBleGNlcHQgKEltcG9ydEVycm9yLCBBdHRyaWJ1dGVFcnJvcik6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpZiBpc19wYWNrYWdlOgotICAgICAgICAgICAgICAgICAgICBtb2R1bGUuX19wYWNrYWdlX18gPSBmdWxsbmFtZQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIG1vZHVsZS5fX3BhY2thZ2VfXyA9IGZ1bGxuYW1lLnJwYXJ0aXRpb24oJy4nKVswXQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbW9kdWxlLl9faW5pdGlhbGl6aW5nX18gPSBUcnVlCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgSWYgX19wYWNrYWdlX18gd2FzIG5vdCBzZXQgYWJvdmUsIF9faW1wb3J0X18oKSB3aWxsIGRvIGl0IGxhdGVyLgotICAgICAgICAgICAgcmV0dXJuIGZ4bihzZWxmLCBtb2R1bGUsICphcmdzLCAqKmt3YXJncykKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgaWYgbm90IGlzX3JlbG9hZDoKLSAgICAgICAgICAgICAgICBkZWwgc3lzLm1vZHVsZXNbZnVsbG5hbWVdCi0gICAgICAgICAgICByYWlzZQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgbW9kdWxlLl9faW5pdGlhbGl6aW5nX18gPSBGYWxzZQotICAgIF93cmFwKG1vZHVsZV9mb3JfbG9hZGVyX3dyYXBwZXIsIGZ4bikKLSAgICByZXR1cm4gbW9kdWxlX2Zvcl9sb2FkZXJfd3JhcHBlcgotCi0KIGRlZiBfY2hlY2tfbmFtZShtZXRob2QpOgogICAgICIiIkRlY29yYXRvciB0byB2ZXJpZnkgdGhhdCB0aGUgbW9kdWxlIGJlaW5nIHJlcXVlc3RlZCBtYXRjaGVzIHRoZSBvbmUgdGhlCiAgICAgbG9hZGVyIGNhbiBoYW5kbGUuCkBAIC02MjMsNiArNjQxLDgxIEBACiAgICAgcmV0dXJuIGxvYWRlcgogCiAKK2RlZiBfdmFsaWRhdGVfYnl0ZWNvZGVfaGVhZGVyKGRhdGEsIHNvdXJjZV9zdGF0cz1Ob25lLCBuYW1lPU5vbmUsIHBhdGg9Tm9uZSk6CisgICAgIiIiVmFsaWRhdGUgdGhlIGhlYWRlciBvZiB0aGUgcGFzc2VkLWluIGJ5dGVjb2RlIGFnYWluc3Qgc291cmNlX3N0YXRzIChpZgorICAgIGdpdmVuKSBhbmQgcmV0dXJuaW5nIHRoZSBieXRlY29kZSB0aGF0IGNhbiBiZSBjb21waWxlZCBieSBjb21waWxlKCkuCisKKyAgICBBbGwgb3RoZXIgYXJndW1lbnRzIGFyZSB1c2VkIHRvIGVuaGFuY2UgZXJyb3IgcmVwb3J0aW5nLgorCisgICAgSW1wb3J0RXJyb3IgaXMgcmFpc2VkIHdoZW4gdGhlIG1hZ2ljIG51bWJlciBpcyBpbmNvcnJlY3Qgb3IgdGhlIGJ5dGVjb2RlIGlzCisgICAgZm91bmQgdG8gYmUgc3RhbGUuIEVPRkVycm9yIGlzIHJhaXNlZCB3aGVuIHRoZSBkYXRhIGlzIGZvdW5kIHRvIGJlCisgICAgdHJ1bmNhdGVkLgorCisgICAgIiIiCisgICAgZXhjX2RldGFpbHMgPSB7fQorICAgIGlmIG5hbWUgaXMgbm90IE5vbmU6CisgICAgICAgIGV4Y19kZXRhaWxzWyduYW1lJ10gPSBuYW1lCisgICAgZWxzZToKKyAgICAgICAgIyBUbyBwcmV2ZW50IGhhdmluZyB0byBtYWtlIGFsbCBtZXNzYWdlcyBoYXZlIGEgY29uZGl0aW9uYWwgbmFtZS4KKyAgICAgICAgbmFtZSA9ICc8Ynl0ZWNvZGU+JworICAgIGlmIHBhdGggaXMgbm90IE5vbmU6CisgICAgICAgIGV4Y19kZXRhaWxzWydwYXRoJ10gPSBwYXRoCisgICAgbWFnaWMgPSBkYXRhWzo0XQorICAgIHJhd190aW1lc3RhbXAgPSBkYXRhWzQ6OF0KKyAgICByYXdfc2l6ZSA9IGRhdGFbODoxMl0KKyAgICBpZiBtYWdpYyAhPSBfTUFHSUNfQllURVM6CisgICAgICAgIG1lc3NhZ2UgPSAnYmFkIG1hZ2ljIG51bWJlciBpbiB7IXJ9OiB7IXJ9Jy5mb3JtYXQobmFtZSwgbWFnaWMpCisgICAgICAgIF92ZXJib3NlX21lc3NhZ2UobWVzc2FnZSkKKyAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IobWVzc2FnZSwgKipleGNfZGV0YWlscykKKyAgICBlbGlmIGxlbihyYXdfdGltZXN0YW1wKSAhPSA0OgorICAgICAgICBtZXNzYWdlID0gJ3JlYWNoZWQgRU9GIHdoaWxlIHJlYWRpbmcgdGltZXN0YW1wIGluIHshcn0nLmZvcm1hdChuYW1lKQorICAgICAgICBfdmVyYm9zZV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgICAgIHJhaXNlIEVPRkVycm9yKG1lc3NhZ2UpCisgICAgZWxpZiBsZW4ocmF3X3NpemUpICE9IDQ6CisgICAgICAgIG1lc3NhZ2UgPSAncmVhY2hlZCBFT0Ygd2hpbGUgcmVhZGluZyBzaXplIG9mIHNvdXJjZSBpbiB7IXJ9Jy5mb3JtYXQobmFtZSkKKyAgICAgICAgX3ZlcmJvc2VfbWVzc2FnZShtZXNzYWdlKQorICAgICAgICByYWlzZSBFT0ZFcnJvcihtZXNzYWdlKQorICAgIGlmIHNvdXJjZV9zdGF0cyBpcyBub3QgTm9uZToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc291cmNlX210aW1lID0gaW50KHNvdXJjZV9zdGF0c1snbXRpbWUnXSkKKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgX3JfbG9uZyhyYXdfdGltZXN0YW1wKSAhPSBzb3VyY2VfbXRpbWU6CisgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdieXRlY29kZSBpcyBzdGFsZSBmb3IgeyFyfScuZm9ybWF0KG5hbWUpCisgICAgICAgICAgICAgICAgX3ZlcmJvc2VfbWVzc2FnZShtZXNzYWdlKQorICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKG1lc3NhZ2UsICoqZXhjX2RldGFpbHMpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNvdXJjZV9zaXplID0gc291cmNlX3N0YXRzWydzaXplJ10gJiAweEZGRkZGRkZGCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIF9yX2xvbmcocmF3X3NpemUpICE9IHNvdXJjZV9zaXplOgorICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJieXRlY29kZSBpcyBzdGFsZSBmb3IgeyFyfSIuZm9ybWF0KG5hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqZXhjX2RldGFpbHMpCisgICAgcmV0dXJuIGRhdGFbMTI6XQorCisKK2RlZiBfY29tcGlsZV9ieXRlY29kZShkYXRhLCBuYW1lPU5vbmUsIGJ5dGVjb2RlX3BhdGg9Tm9uZSwgc291cmNlX3BhdGg9Tm9uZSk6CisgICAgIiIiQ29tcGlsZSBieXRlY29kZSBhcyByZXR1cm5lZCBieSBfdmFsaWRhdGVfYnl0ZWNvZGVfaGVhZGVyKCkuIiIiCisgICAgY29kZSA9IG1hcnNoYWwubG9hZHMoZGF0YSkKKyAgICBpZiBpc2luc3RhbmNlKGNvZGUsIF9jb2RlX3R5cGUpOgorICAgICAgICBfdmVyYm9zZV9tZXNzYWdlKCdjb2RlIG9iamVjdCBmcm9tIHshcn0nLCBieXRlY29kZV9wYXRoKQorICAgICAgICBpZiBzb3VyY2VfcGF0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIF9pbXAuX2ZpeF9jb19maWxlbmFtZShjb2RlLCBzb3VyY2VfcGF0aCkKKyAgICAgICAgcmV0dXJuIGNvZGUKKyAgICBlbHNlOgorICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigiTm9uLWNvZGUgb2JqZWN0IGluIHshcn0iLmZvcm1hdChieXRlY29kZV9wYXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1uYW1lLCBwYXRoPWJ5dGVjb2RlX3BhdGgpCisKK2RlZiBfY29kZV90b19ieXRlY29kZShjb2RlLCBtdGltZT0wLCBzb3VyY2Vfc2l6ZT0wKToKKyAgICAiIiJDb21waWxlIGEgY29kZSBvYmplY3QgaW50byBieXRlY29kZSBmb3Igd3JpdGluZyBvdXQgdG8gYSBieXRlLWNvbXBpbGVkCisgICAgZmlsZS4iIiIKKyAgICBkYXRhID0gYnl0ZWFycmF5KF9NQUdJQ19CWVRFUykKKyAgICBkYXRhLmV4dGVuZChfd19sb25nKG10aW1lKSkKKyAgICBkYXRhLmV4dGVuZChfd19sb25nKHNvdXJjZV9zaXplKSkKKyAgICBkYXRhLmV4dGVuZChtYXJzaGFsLmR1bXBzKGNvZGUpKQorICAgIHJldHVybiBkYXRhCiAKIAogIyBMb2FkZXJzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpAQCAtNzU1LDcgKzg0OCw3IEBACiAgICAgZGVmIF9vcGVuX3JlZ2lzdHJ5KGNscywga2V5KToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmV0dXJuIF93aW5yZWcuT3BlbktleShfd2lucmVnLkhLRVlfQ1VSUkVOVF9VU0VSLCBrZXkpCi0gICAgICAgIGV4Y2VwdCBXaW5kb3dzRXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgcmV0dXJuIF93aW5yZWcuT3BlbktleShfd2lucmVnLkhLRVlfTE9DQUxfTUFDSElORSwga2V5KQogCiAgICAgQGNsYXNzbWV0aG9kCkBAIC03NjksNyArODYyLDcgQEAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgd2l0aCBjbHMuX29wZW5fcmVnaXN0cnkoa2V5KSBhcyBoa2V5OgogICAgICAgICAgICAgICAgIGZpbGVwYXRoID0gX3dpbnJlZy5RdWVyeVZhbHVlKGhrZXksICIiKQotICAgICAgICBleGNlcHQgV2luZG93c0Vycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgIHJldHVybiBmaWxlcGF0aAogCkBAIC04MDEsNzQgKzg5NCwzMiBAQAogICAgICAgICB0YWlsX25hbWUgPSBmdWxsbmFtZS5ycGFydGl0aW9uKCcuJylbMl0KICAgICAgICAgcmV0dXJuIGZpbGVuYW1lX2Jhc2UgPT0gJ19faW5pdF9fJyBhbmQgdGFpbF9uYW1lICE9ICdfX2luaXRfXycKIAotICAgIGRlZiBfYnl0ZXNfZnJvbV9ieXRlY29kZShzZWxmLCBmdWxsbmFtZSwgZGF0YSwgYnl0ZWNvZGVfcGF0aCwgc291cmNlX3N0YXRzKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBtYXJzaGFsbGVkIGJ5dGVzIGZyb20gYnl0ZWNvZGUsIHZlcmlmeWluZyB0aGUgbWFnaWMKLSAgICAgICAgbnVtYmVyLCB0aW1lc3RhbXAgYW5kIHNvdXJjZSBzaXplIGFsb25nIHRoZSB3YXkuCisgICAgZGVmIGluaXRfbW9kdWxlX2F0dHJzKHNlbGYsIG1vZHVsZSk6CisgICAgICAgICIiIlNldCB2YXJpb3VzIGF0dHJpYnV0ZXMgb24gdGhlIG1vZHVsZS4KIAotICAgICAgICBJZiBzb3VyY2Vfc3RhdHMgaXMgTm9uZSB0aGVuIHNraXAgdGhlIHRpbWVzdGFtcCBjaGVjay4KLQorICAgICAgICBFeGVjdXRpb25Mb2FkZXIuaW5pdF9tb2R1bGVfYXR0cnMoKSBpcyB1c2VkIHRvIHNldCBfX2xvYWRlcl9fLAorICAgICAgICBfX3BhY2thZ2VfXywgX19maWxlX18sIGFuZCBvcHRpb25hbGx5IF9fcGF0aF9fLiBUaGUgX19jYWNoZWRfXyBhdHRyaWJ1dGUKKyAgICAgICAgaXMgc2V0IHVzaW5nIGltcC5jYWNoZV9mcm9tX3NvdXJjZSgpIGFuZCBfX2ZpbGVfXy4KICAgICAgICAgIiIiCi0gICAgICAgIG1hZ2ljID0gZGF0YVs6NF0KLSAgICAgICAgcmF3X3RpbWVzdGFtcCA9IGRhdGFbNDo4XQotICAgICAgICByYXdfc2l6ZSA9IGRhdGFbODoxMl0KLSAgICAgICAgaWYgbWFnaWMgIT0gX01BR0lDX0JZVEVTOgotICAgICAgICAgICAgbXNnID0gJ2JhZCBtYWdpYyBudW1iZXIgaW4geyFyfTogeyFyfScuZm9ybWF0KGZ1bGxuYW1lLCBtYWdpYykKLSAgICAgICAgICAgIF92ZXJib3NlX21lc3NhZ2UobXNnKQotICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IobXNnLCBuYW1lPWZ1bGxuYW1lLCBwYXRoPWJ5dGVjb2RlX3BhdGgpCi0gICAgICAgIGVsaWYgbGVuKHJhd190aW1lc3RhbXApICE9IDQ6Ci0gICAgICAgICAgICBtZXNzYWdlID0gJ2JhZCB0aW1lc3RhbXAgaW4ge30nLmZvcm1hdChmdWxsbmFtZSkKLSAgICAgICAgICAgIF92ZXJib3NlX21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAgICAgIHJhaXNlIEVPRkVycm9yKG1lc3NhZ2UpCi0gICAgICAgIGVsaWYgbGVuKHJhd19zaXplKSAhPSA0OgotICAgICAgICAgICAgbWVzc2FnZSA9ICdiYWQgc2l6ZSBpbiB7fScuZm9ybWF0KGZ1bGxuYW1lKQotICAgICAgICAgICAgX3ZlcmJvc2VfbWVzc2FnZShtZXNzYWdlKQotICAgICAgICAgICAgcmFpc2UgRU9GRXJyb3IobWVzc2FnZSkKLSAgICAgICAgaWYgc291cmNlX3N0YXRzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNvdXJjZV9tdGltZSA9IGludChzb3VyY2Vfc3RhdHNbJ210aW1lJ10pCi0gICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpZiBfcl9sb25nKHJhd190aW1lc3RhbXApICE9IHNvdXJjZV9tdGltZToKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdieXRlY29kZSBpcyBzdGFsZSBmb3Ige30nLmZvcm1hdChmdWxsbmFtZSkKLSAgICAgICAgICAgICAgICAgICAgX3ZlcmJvc2VfbWVzc2FnZShtZXNzYWdlKQotICAgICAgICAgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcihtZXNzYWdlLCBuYW1lPWZ1bGxuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPWJ5dGVjb2RlX3BhdGgpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc291cmNlX3NpemUgPSBzb3VyY2Vfc3RhdHNbJ3NpemUnXSAmIDB4RkZGRkZGRkYKLSAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIF9yX2xvbmcocmF3X3NpemUpICE9IHNvdXJjZV9zaXplOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICJieXRlY29kZSBpcyBzdGFsZSBmb3Ige30iLmZvcm1hdChmdWxsbmFtZSksCi0gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPWZ1bGxuYW1lLCBwYXRoPWJ5dGVjb2RlX3BhdGgpCi0gICAgICAgICMgQ2FuJ3QgcmV0dXJuIHRoZSBjb2RlIG9iamVjdCBhcyBlcnJvcnMgZnJvbSBtYXJzaGFsIGxvYWRpbmcgbmVlZCB0bwotICAgICAgICAjIHByb3BhZ2F0ZSBldmVuIHdoZW4gc291cmNlIGlzIGF2YWlsYWJsZS4KLSAgICAgICAgcmV0dXJuIGRhdGFbMTI6XQotCi0gICAgQG1vZHVsZV9mb3JfbG9hZGVyCi0gICAgZGVmIF9sb2FkX21vZHVsZShzZWxmLCBtb2R1bGUsICosIHNvdXJjZWxlc3M9RmFsc2UpOgotICAgICAgICAiIiJIZWxwZXIgZm9yIGxvYWRfbW9kdWxlIGFibGUgdG8gaGFuZGxlIGVpdGhlciBzb3VyY2Ugb3Igc291cmNlbGVzcwotICAgICAgICBsb2FkaW5nLiIiIgotICAgICAgICBuYW1lID0gbW9kdWxlLl9fbmFtZV9fCi0gICAgICAgIGNvZGVfb2JqZWN0ID0gc2VsZi5nZXRfY29kZShuYW1lKQotICAgICAgICBtb2R1bGUuX19maWxlX18gPSBzZWxmLmdldF9maWxlbmFtZShuYW1lKQotICAgICAgICBpZiBub3Qgc291cmNlbGVzczoKKyAgICAgICAgbW9kdWxlLl9fbG9hZGVyX18gPSBzZWxmICAjIExvYWRlcgorICAgICAgICBfaW5pdF9wYWNrYWdlX2F0dHJzKHNlbGYsIG1vZHVsZSkgICMgSW5zcGVjdExvYWRlcgorICAgICAgICBfaW5pdF9maWxlX2F0dHJzKHNlbGYsIG1vZHVsZSkgICMgRXhlY3V0aW9uTG9hZGVyCisgICAgICAgIGlmIGhhc2F0dHIobW9kdWxlLCAnX19maWxlX18nKTogICMgU291cmNlTG9hZGVyCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgbW9kdWxlLl9fY2FjaGVkX18gPSBjYWNoZV9mcm9tX3NvdXJjZShtb2R1bGUuX19maWxlX18pCiAgICAgICAgICAgICBleGNlcHQgTm90SW1wbGVtZW50ZWRFcnJvcjoKLSAgICAgICAgICAgICAgICBtb2R1bGUuX19jYWNoZWRfXyA9IG1vZHVsZS5fX2ZpbGVfXwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbW9kdWxlLl9fY2FjaGVkX18gPSBtb2R1bGUuX19maWxlX18KLSAgICAgICAgbW9kdWxlLl9fcGFja2FnZV9fID0gbmFtZQotICAgICAgICBpZiBzZWxmLmlzX3BhY2thZ2UobmFtZSk6Ci0gICAgICAgICAgICBtb2R1bGUuX19wYXRoX18gPSBbX3BhdGhfc3BsaXQobW9kdWxlLl9fZmlsZV9fKVswXV0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG1vZHVsZS5fX3BhY2thZ2VfXyA9IG1vZHVsZS5fX3BhY2thZ2VfXy5ycGFydGl0aW9uKCcuJylbMF0KLSAgICAgICAgbW9kdWxlLl9fbG9hZGVyX18gPSBzZWxmCi0gICAgICAgIF9jYWxsX3dpdGhfZnJhbWVzX3JlbW92ZWQoZXhlYywgY29kZV9vYmplY3QsIG1vZHVsZS5fX2RpY3RfXykKLSAgICAgICAgcmV0dXJuIG1vZHVsZQorICAgICAgICAgICAgICAgIHBhc3MKKworICAgIGRlZiBsb2FkX21vZHVsZShzZWxmLCBmdWxsbmFtZSk6CisgICAgICAgICIiIkxvYWQgdGhlIHNwZWNpZmllZCBtb2R1bGUgaW50byBzeXMubW9kdWxlcyBhbmQgcmV0dXJuIGl0LiIiIgorICAgICAgICB3aXRoIG1vZHVsZV90b19sb2FkKGZ1bGxuYW1lKSBhcyBtb2R1bGU6CisgICAgICAgICAgICBzZWxmLmluaXRfbW9kdWxlX2F0dHJzKG1vZHVsZSkKKyAgICAgICAgICAgIGNvZGUgPSBzZWxmLmdldF9jb2RlKGZ1bGxuYW1lKQorICAgICAgICAgICAgaWYgY29kZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCdjYW5ub3QgbG9hZCBtb2R1bGUgeyFyfSB3aGVuIGdldF9jb2RlKCkgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXR1cm5zIE5vbmUnLmZvcm1hdChmdWxsbmFtZSkpCisgICAgICAgICAgICBfY2FsbF93aXRoX2ZyYW1lc19yZW1vdmVkKGV4ZWMsIGNvZGUsIG1vZHVsZS5fX2RpY3RfXykKKyAgICAgICAgICAgIHJldHVybiBtb2R1bGUKIAogCiBjbGFzcyBTb3VyY2VMb2FkZXIoX0xvYWRlckJhc2ljcyk6CkBAIC04NzYsOCArOTI3LDEwIEBACiAgICAgZGVmIHBhdGhfbXRpbWUoc2VsZiwgcGF0aCk6CiAgICAgICAgICIiIk9wdGlvbmFsIG1ldGhvZCB0aGF0IHJldHVybnMgdGhlIG1vZGlmaWNhdGlvbiB0aW1lIChhbiBpbnQpIGZvciB0aGUKICAgICAgICAgc3BlY2lmaWVkIHBhdGgsIHdoZXJlIHBhdGggaXMgYSBzdHIuCisKKyAgICAgICAgUmFpc2VzIElPRXJyb3Igd2hlbiB0aGUgcGF0aCBjYW5ub3QgYmUgaGFuZGxlZC4KICAgICAgICAgIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAgICAgICAgcmFpc2UgSU9FcnJvcgogCiAgICAgZGVmIHBhdGhfc3RhdHMoc2VsZiwgcGF0aCk6CiAgICAgICAgICIiIk9wdGlvbmFsIG1ldGhvZCByZXR1cm5pbmcgYSBtZXRhZGF0YSBkaWN0IGZvciB0aGUgc3BlY2lmaWVkIHBhdGgKQEAgLTg4OCw2ICs5NDEsNyBAQAogICAgICAgICAtICdzaXplJyAob3B0aW9uYWwpIGlzIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBzb3VyY2UgY29kZS4KIAogICAgICAgICBJbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QgYWxsb3dzIHRoZSBsb2FkZXIgdG8gcmVhZCBieXRlY29kZSBmaWxlcy4KKyAgICAgICAgUmFpc2VzIElPRXJyb3Igd2hlbiB0aGUgcGF0aCBjYW5ub3QgYmUgaGFuZGxlZC4KICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiB7J210aW1lJzogc2VsZi5wYXRoX210aW1lKHBhdGgpfQogCkBAIC05MDUsOSArOTU5LDcgQEAKICAgICAgICAgIiIiT3B0aW9uYWwgbWV0aG9kIHdoaWNoIHdyaXRlcyBkYXRhIChieXRlcykgdG8gYSBmaWxlIHBhdGggKGEgc3RyKS4KIAogICAgICAgICBJbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QgYWxsb3dzIGZvciB0aGUgd3JpdGluZyBvZiBieXRlY29kZSBmaWxlcy4KLQogICAgICAgICAiIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCiAKICAgICBkZWYgZ2V0X3NvdXJjZShzZWxmLCBmdWxsbmFtZSk6CkBAIC05MTYsNyArOTY4LDcgQEAKICAgICAgICAgcGF0aCA9IHNlbGYuZ2V0X2ZpbGVuYW1lKGZ1bGxuYW1lKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzb3VyY2VfYnl0ZXMgPSBzZWxmLmdldF9kYXRhKHBhdGgpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGV4YzoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXhjOgogICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoInNvdXJjZSBub3QgYXZhaWxhYmxlIHRocm91Z2ggZ2V0X2RhdGEoKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPWZ1bGxuYW1lKSBmcm9tIGV4YwogICAgICAgICByZWFkc291cmNlID0gX2lvLkJ5dGVzSU8oc291cmNlX2J5dGVzKS5yZWFkbGluZQpAQCAtOTMyLDYgKzk4NCwxNCBAQAogICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoIkZhaWxlZCB0byBkZWNvZGUgc291cmNlIGZpbGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1mdWxsbmFtZSkgZnJvbSBleGMKIAorICAgIGRlZiBzb3VyY2VfdG9fY29kZShzZWxmLCBkYXRhLCBwYXRoLCAqLCBfb3B0aW1pemU9LTEpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIGNvZGUgb2JqZWN0IGNvbXBpbGVkIGZyb20gc291cmNlLgorCisgICAgICAgIFRoZSAnZGF0YScgYXJndW1lbnQgY2FuIGJlIGFueSBvYmplY3QgdHlwZSB0aGF0IGNvbXBpbGUoKSBzdXBwb3J0cy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBfY2FsbF93aXRoX2ZyYW1lc19yZW1vdmVkKGNvbXBpbGUsIGRhdGEsIHBhdGgsICdleGVjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb250X2luaGVyaXQ9VHJ1ZSwgb3B0aW1pemU9X29wdGltaXplKQorCiAgICAgZGVmIGdldF9jb2RlKHNlbGYsIGZ1bGxuYW1lKToKICAgICAgICAgIiIiQ29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YgSW5zcGVjdExvYWRlci5nZXRfY29kZS4KIApAQCAtOTQ4LDQ1ICsxMDA4LDM0IEBACiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc3QgPSBzZWxmLnBhdGhfc3RhdHMoc291cmNlX3BhdGgpCi0gICAgICAgICAgICBleGNlcHQgTm90SW1wbGVtZW50ZWRFcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc291cmNlX210aW1lID0gaW50KHN0WydtdGltZSddKQogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYuZ2V0X2RhdGEoYnl0ZWNvZGVfcGF0aCkKLSAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzX2RhdGEgPSBzZWxmLl9ieXRlc19mcm9tX2J5dGVjb2RlKGZ1bGxuYW1lLCBkYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZWNvZGVfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0KQorICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNfZGF0YSA9IF92YWxpZGF0ZV9ieXRlY29kZV9oZWFkZXIoZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX3N0YXRzPXN0LCBuYW1lPWZ1bGxuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPWJ5dGVjb2RlX3BhdGgpCiAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCAoSW1wb3J0RXJyb3IsIEVPRkVycm9yKToKICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgIF92ZXJib3NlX21lc3NhZ2UoJ3t9IG1hdGNoZXMge30nLCBieXRlY29kZV9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9wYXRoKQotICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBtYXJzaGFsLmxvYWRzKGJ5dGVzX2RhdGEpCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGZvdW5kLCBfY29kZV90eXBlKToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW1wLl9maXhfY29fZmlsZW5hbWUoZm91bmQsIHNvdXJjZV9wYXRoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92ZXJib3NlX21lc3NhZ2UoJ2NvZGUgb2JqZWN0IGZyb20ge30nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlY29kZV9wYXRoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmb3VuZAotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSAiTm9uLWNvZGUgb2JqZWN0IGluIHt9IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKG1zZy5mb3JtYXQoYnl0ZWNvZGVfcGF0aCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1mdWxsbmFtZSwgcGF0aD1ieXRlY29kZV9wYXRoKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jb21waWxlX2J5dGVjb2RlKGJ5dGVzX2RhdGEsIG5hbWU9ZnVsbG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZWNvZGVfcGF0aD1ieXRlY29kZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9wYXRoPXNvdXJjZV9wYXRoKQogICAgICAgICBzb3VyY2VfYnl0ZXMgPSBzZWxmLmdldF9kYXRhKHNvdXJjZV9wYXRoKQotICAgICAgICBjb2RlX29iamVjdCA9IF9jYWxsX3dpdGhfZnJhbWVzX3JlbW92ZWQoY29tcGlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2J5dGVzLCBzb3VyY2VfcGF0aCwgJ2V4ZWMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICBkb250X2luaGVyaXQ9VHJ1ZSkKKyAgICAgICAgY29kZV9vYmplY3QgPSBzZWxmLnNvdXJjZV90b19jb2RlKHNvdXJjZV9ieXRlcywgc291cmNlX3BhdGgpCiAgICAgICAgIF92ZXJib3NlX21lc3NhZ2UoJ2NvZGUgb2JqZWN0IGZyb20ge30nLCBzb3VyY2VfcGF0aCkKICAgICAgICAgaWYgKG5vdCBzeXMuZG9udF93cml0ZV9ieXRlY29kZSBhbmQgYnl0ZWNvZGVfcGF0aCBpcyBub3QgTm9uZSBhbmQKLSAgICAgICAgICAgIHNvdXJjZV9tdGltZSBpcyBub3QgTm9uZSk6Ci0gICAgICAgICAgICBkYXRhID0gYnl0ZWFycmF5KF9NQUdJQ19CWVRFUykKLSAgICAgICAgICAgIGRhdGEuZXh0ZW5kKF93X2xvbmcoc291cmNlX210aW1lKSkKLSAgICAgICAgICAgIGRhdGEuZXh0ZW5kKF93X2xvbmcobGVuKHNvdXJjZV9ieXRlcykpKQotICAgICAgICAgICAgZGF0YS5leHRlbmQobWFyc2hhbC5kdW1wcyhjb2RlX29iamVjdCkpCisgICAgICAgICAgICAgICAgc291cmNlX210aW1lIGlzIG5vdCBOb25lKToKKyAgICAgICAgICAgIGRhdGEgPSBfY29kZV90b19ieXRlY29kZShjb2RlX29iamVjdCwgc291cmNlX210aW1lLAorICAgICAgICAgICAgICAgICAgICBsZW4oc291cmNlX2J5dGVzKSkKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzZWxmLl9jYWNoZV9ieXRlY29kZShzb3VyY2VfcGF0aCwgYnl0ZWNvZGVfcGF0aCwgZGF0YSkKICAgICAgICAgICAgICAgICBfdmVyYm9zZV9tZXNzYWdlKCd3cm90ZSB7IXJ9JywgYnl0ZWNvZGVfcGF0aCkKQEAgLTk5NCwxNiArMTA0Myw2IEBACiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICByZXR1cm4gY29kZV9vYmplY3QKIAotICAgIGRlZiBsb2FkX21vZHVsZShzZWxmLCBmdWxsbmFtZSk6Ci0gICAgICAgICIiIkNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIExvYWRlci5sb2FkX21vZHVsZS4KLQotICAgICAgICBSZXF1aXJlcyBFeGVjdXRpb25Mb2FkZXIuZ2V0X2ZpbGVuYW1lIGFuZCBSZXNvdXJjZUxvYWRlci5nZXRfZGF0YSB0byBiZQotICAgICAgICBpbXBsZW1lbnRlZCB0byBsb2FkIHNvdXJjZSBjb2RlLiBVc2Ugb2YgYnl0ZWNvZGUgaXMgZGljdGF0ZWQgYnkgd2hldGhlcgotICAgICAgICBnZXRfY29kZSB1c2VzL3dyaXRlcyBieXRlY29kZS4KLQotICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX2xvYWRfbW9kdWxlKGZ1bGxuYW1lKQotCiAKIGNsYXNzIEZpbGVMb2FkZXI6CiAKQEAgLTEwNDUsMTMgKzEwODQsNyBAQAogCiAgICAgZGVmIF9jYWNoZV9ieXRlY29kZShzZWxmLCBzb3VyY2VfcGF0aCwgYnl0ZWNvZGVfcGF0aCwgZGF0YSk6CiAgICAgICAgICMgQWRhcHQgYmV0d2VlbiB0aGUgdHdvIEFQSXMKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbW9kZSA9IF9vcy5zdGF0KHNvdXJjZV9wYXRoKS5zdF9tb2RlCi0gICAgICAgIGV4Y2VwdCBPU0Vycm9yOgotICAgICAgICAgICAgbW9kZSA9IDBvNjY2Ci0gICAgICAgICMgV2UgYWx3YXlzIGVuc3VyZSB3cml0ZSBhY2Nlc3Mgc28gd2UgY2FuIHVwZGF0ZSBjYWNoZWQgZmlsZXMKLSAgICAgICAgIyBsYXRlciBldmVuIHdoZW4gdGhlIHNvdXJjZSBmaWxlcyBhcmUgcmVhZC1vbmx5IG9uIFdpbmRvd3MgKCM2MDc0KQotICAgICAgICBtb2RlIHw9IDBvMjAwCisgICAgICAgIG1vZGUgPSBfY2FsY19tb2RlKHNvdXJjZV9wYXRoKQogICAgICAgICByZXR1cm4gc2VsZi5zZXRfZGF0YShieXRlY29kZV9wYXRoLCBkYXRhLCBfbW9kZT1tb2RlKQogCiAgICAgZGVmIHNldF9kYXRhKHNlbGYsIHBhdGgsIGRhdGEsICosIF9tb2RlPTBvNjY2KToKQEAgLTEwODcsMjAgKzExMjAsMTUgQEAKIAogICAgICIiIkxvYWRlciB3aGljaCBoYW5kbGVzIHNvdXJjZWxlc3MgZmlsZSBpbXBvcnRzLiIiIgogCi0gICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2xvYWRfbW9kdWxlKGZ1bGxuYW1lLCBzb3VyY2VsZXNzPVRydWUpCisgICAgZGVmIGluaXRfbW9kdWxlX2F0dHJzKHNlbGYsIG1vZHVsZSk6CisgICAgICAgIHN1cGVyKCkuaW5pdF9tb2R1bGVfYXR0cnMobW9kdWxlKQorICAgICAgICBtb2R1bGUuX19jYWNoZWRfXyA9IG1vZHVsZS5fX2ZpbGVfXwogCiAgICAgZGVmIGdldF9jb2RlKHNlbGYsIGZ1bGxuYW1lKToKICAgICAgICAgcGF0aCA9IHNlbGYuZ2V0X2ZpbGVuYW1lKGZ1bGxuYW1lKQogICAgICAgICBkYXRhID0gc2VsZi5nZXRfZGF0YShwYXRoKQotICAgICAgICBieXRlc19kYXRhID0gc2VsZi5fYnl0ZXNfZnJvbV9ieXRlY29kZShmdWxsbmFtZSwgZGF0YSwgcGF0aCwgTm9uZSkKLSAgICAgICAgZm91bmQgPSBtYXJzaGFsLmxvYWRzKGJ5dGVzX2RhdGEpCi0gICAgICAgIGlmIGlzaW5zdGFuY2UoZm91bmQsIF9jb2RlX3R5cGUpOgotICAgICAgICAgICAgX3ZlcmJvc2VfbWVzc2FnZSgnY29kZSBvYmplY3QgZnJvbSB7IXJ9JywgcGF0aCkKLSAgICAgICAgICAgIHJldHVybiBmb3VuZAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoIk5vbi1jb2RlIG9iamVjdCBpbiB7fSIuZm9ybWF0KHBhdGgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1mdWxsbmFtZSwgcGF0aD1wYXRoKQorICAgICAgICBieXRlc19kYXRhID0gX3ZhbGlkYXRlX2J5dGVjb2RlX2hlYWRlcihkYXRhLCBuYW1lPWZ1bGxuYW1lLCBwYXRoPXBhdGgpCisgICAgICAgIHJldHVybiBfY29tcGlsZV9ieXRlY29kZShieXRlc19kYXRhLCBuYW1lPWZ1bGxuYW1lLCBieXRlY29kZV9wYXRoPXBhdGgpCiAKICAgICBkZWYgZ2V0X3NvdXJjZShzZWxmLCBmdWxsbmFtZSk6CiAgICAgICAgICIiIlJldHVybiBOb25lIGFzIHRoZXJlIGlzIG5vIHNvdXJjZSBjb2RlLiIiIgpAQCAtMTIxOSwxMiArMTI0NywxMyBAQAogICAgIGRlZiBtb2R1bGVfcmVwcihjbHMsIG1vZHVsZSk6CiAgICAgICAgIHJldHVybiAiPG1vZHVsZSAne30nIChuYW1lc3BhY2UpPiIuZm9ybWF0KG1vZHVsZS5fX25hbWVfXykKIAotICAgIEBtb2R1bGVfZm9yX2xvYWRlcgotICAgIGRlZiBsb2FkX21vZHVsZShzZWxmLCBtb2R1bGUpOgorICAgIGRlZiBsb2FkX21vZHVsZShzZWxmLCBmdWxsbmFtZSk6CiAgICAgICAgICIiIkxvYWQgYSBuYW1lc3BhY2UgbW9kdWxlLiIiIgogICAgICAgICBfdmVyYm9zZV9tZXNzYWdlKCduYW1lc3BhY2UgbW9kdWxlIGxvYWRlZCB3aXRoIHBhdGggeyFyfScsIHNlbGYuX3BhdGgpCi0gICAgICAgIG1vZHVsZS5fX3BhdGhfXyA9IHNlbGYuX3BhdGgKLSAgICAgICAgcmV0dXJuIG1vZHVsZQorICAgICAgICB3aXRoIG1vZHVsZV90b19sb2FkKGZ1bGxuYW1lKSBhcyBtb2R1bGU6CisgICAgICAgICAgICBtb2R1bGUuX19wYXRoX18gPSBzZWxmLl9wYXRoCisgICAgICAgICAgICBtb2R1bGUuX19wYWNrYWdlX18gPSBmdWxsbmFtZQorICAgICAgICAgICAgcmV0dXJuIG1vZHVsZQogCiAKICMgRmluZGVycyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAgLTE0MjIsNyArMTQ1MSw3IEBACiAgICAgICAgICAgICAgICAgbG93ZXJfc3VmZml4X2NvbnRlbnRzLmFkZChuZXdfbmFtZSkKICAgICAgICAgICAgIHNlbGYuX3BhdGhfY2FjaGUgPSBsb3dlcl9zdWZmaXhfY29udGVudHMKICAgICAgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoX0NBU0VfSU5TRU5TSVRJVkVfUExBVEZPUk1TKToKLSAgICAgICAgICAgIHNlbGYuX3JlbGF4ZWRfcGF0aF9jYWNoZSA9IHNldChmbi5sb3dlcigpIGZvciBmbiBpbiBjb250ZW50cykKKyAgICAgICAgICAgIHNlbGYuX3JlbGF4ZWRfcGF0aF9jYWNoZSA9IHtmbi5sb3dlcigpIGZvciBmbiBpbiBjb250ZW50c30KIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBwYXRoX2hvb2soY2xzLCAqbG9hZGVyX2RldGFpbHMpOgpAQCAtMTQ0Myw3ICsxNDcyLDcgQEAKICAgICAgICAgcmV0dXJuIHBhdGhfaG9va19mb3JfRmlsZUZpbmRlcgogCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIkZpbGVGaW5kZXIoJXIpIiAlIChzZWxmLnBhdGgsKQorICAgICAgICByZXR1cm4gIkZpbGVGaW5kZXIoeyFyfSkiLmZvcm1hdChzZWxmLnBhdGgpCiAKIAogIyBJbXBvcnQgaXRzZWxmICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpAQCAtMTU0OCw3ICsxNTc3LDcgQEAKICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgogICAgICAgICAgICAgcGFzcwogICAgICMgU2V0IGxvYWRlciBpZiBuZWVkIGJlLgotICAgIGlmIG5vdCBoYXNhdHRyKG1vZHVsZSwgJ19fbG9hZGVyX18nKToKKyAgICBpZiBnZXRhdHRyKG1vZHVsZSwgJ19fbG9hZGVyX18nLCBOb25lKSBpcyBOb25lOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBtb2R1bGUuX19sb2FkZXJfXyA9IGxvYWRlcgogICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CkBAIC0xNzA5LDcgKzE3MzgsNyBAQAogICAgIG1vZHVsZV90eXBlID0gdHlwZShzeXMpCiAgICAgZm9yIG5hbWUsIG1vZHVsZSBpbiBzeXMubW9kdWxlcy5pdGVtcygpOgogICAgICAgICBpZiBpc2luc3RhbmNlKG1vZHVsZSwgbW9kdWxlX3R5cGUpOgotICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIobW9kdWxlLCAnX19sb2FkZXJfXycpOgorICAgICAgICAgICAgaWYgZ2V0YXR0cihtb2R1bGUsICdfX2xvYWRlcl9fJywgTm9uZSkgaXMgTm9uZToKICAgICAgICAgICAgICAgICBpZiBuYW1lIGluIHN5cy5idWlsdGluX21vZHVsZV9uYW1lczoKICAgICAgICAgICAgICAgICAgICAgbW9kdWxlLl9fbG9hZGVyX18gPSBCdWlsdGluSW1wb3J0ZXIKICAgICAgICAgICAgICAgICBlbGlmIF9pbXAuaXNfZnJvemVuKG5hbWUpOgpAQCAtMTcyMyw3ICsxNzUyLDcgQEAKICAgICAgICAgICAgIGJ1aWx0aW5fbW9kdWxlID0gc3lzLm1vZHVsZXNbYnVpbHRpbl9uYW1lXQogICAgICAgICBzZXRhdHRyKHNlbGZfbW9kdWxlLCBidWlsdGluX25hbWUsIGJ1aWx0aW5fbW9kdWxlKQogCi0gICAgb3NfZGV0YWlscyA9ICgncG9zaXgnLCBbJy8nXSksICgnbnQnLCBbJ1xcJywgJy8nXSksICgnb3MyJywgWydcXCcsICcvJ10pCisgICAgb3NfZGV0YWlscyA9ICgncG9zaXgnLCBbJy8nXSksICgnbnQnLCBbJ1xcJywgJy8nXSkKICAgICBmb3IgYnVpbHRpbl9vcywgcGF0aF9zZXBhcmF0b3JzIGluIG9zX2RldGFpbHM6CiAgICAgICAgICMgQXNzdW1wdGlvbiBtYWRlIGluIF9wYXRoX2pvaW4oKQogICAgICAgICBhc3NlcnQgYWxsKGxlbihzZXApID09IDEgZm9yIHNlcCBpbiBwYXRoX3NlcGFyYXRvcnMpCkBAIC0xNzM0LDkgKzE3NjMsNiBAQAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIG9zX21vZHVsZSA9IEJ1aWx0aW5JbXBvcnRlci5sb2FkX21vZHVsZShidWlsdGluX29zKQotICAgICAgICAgICAgICAgICMgVE9ETzogcmlwIG91dCBvczIgY29kZSBhZnRlciAzLjMgaXMgcmVsZWFzZWQgYXMgcGVyIFBFUCAxMQotICAgICAgICAgICAgICAgIGlmIGJ1aWx0aW5fb3MgPT0gJ29zMicgYW5kICdFTVggR0NDJyBpbiBzeXMudmVyc2lvbjoKLSAgICAgICAgICAgICAgICAgICAgcGF0aF9zZXAgPSBwYXRoX3NlcGFyYXRvcnNbMV0KICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCkBAIC0xNzU4LDcgKzE3ODQsNyBAQAogICAgIHNldGF0dHIoc2VsZl9tb2R1bGUsICdfdGhyZWFkJywgdGhyZWFkX21vZHVsZSkKICAgICBzZXRhdHRyKHNlbGZfbW9kdWxlLCAnX3dlYWtyZWYnLCB3ZWFrcmVmX21vZHVsZSkKICAgICBzZXRhdHRyKHNlbGZfbW9kdWxlLCAncGF0aF9zZXAnLCBwYXRoX3NlcCkKLSAgICBzZXRhdHRyKHNlbGZfbW9kdWxlLCAncGF0aF9zZXBhcmF0b3JzJywgc2V0KHBhdGhfc2VwYXJhdG9ycykpCisgICAgc2V0YXR0cihzZWxmX21vZHVsZSwgJ3BhdGhfc2VwYXJhdG9ycycsICcnLmpvaW4ocGF0aF9zZXBhcmF0b3JzKSkKICAgICAjIENvbnN0YW50cwogICAgIHNldGF0dHIoc2VsZl9tb2R1bGUsICdfcmVsYXhfY2FzZScsIF9tYWtlX3JlbGF4X2Nhc2UoKSkKICAgICBFWFRFTlNJT05fU1VGRklYRVMuZXh0ZW5kKF9pbXAuZXh0ZW5zaW9uX3N1ZmZpeGVzKCkpCmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL2FiYy5weSBiL0xpYi9pbXBvcnRsaWIvYWJjLnB5CmluZGV4IDM4NzU2N2EuLjQxN2ZlNDEgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvYWJjLnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvYWJjLnB5CkBAIC04LDExICs4LDYgQEAKICAgICAgICAgcmFpc2UKICAgICBfZnJvemVuX2ltcG9ydGxpYiA9IE5vbmUKIGltcG9ydCBhYmMKLWltcG9ydCBpbXAKLWltcG9ydCBtYXJzaGFsCi1pbXBvcnQgc3lzCi1pbXBvcnQgdG9rZW5pemUKLWltcG9ydCB3YXJuaW5ncwogCiAKIGRlZiBfcmVnaXN0ZXIoYWJzdHJhY3RfY2xzLCAqY2xhc3Nlcyk6CkBAIC0zNyw5ICszMiw4IEBACiAgICAgZGVmIGZpbmRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lLCBwYXRoPU5vbmUpOgogICAgICAgICAiIiJBbiBhYnN0cmFjdCBtZXRob2QgdGhhdCBzaG91bGQgZmluZCBhIG1vZHVsZS4KICAgICAgICAgVGhlIGZ1bGxuYW1lIGlzIGEgc3RyIGFuZCB0aGUgb3B0aW9uYWwgcGF0aCBpcyBhIHN0ciBvciBOb25lLgotICAgICAgICBSZXR1cm5zIGEgTG9hZGVyIG9iamVjdC4KKyAgICAgICAgUmV0dXJucyBhIExvYWRlciBvYmplY3Qgb3IgTm9uZS4KICAgICAgICAgIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAogCiBjbGFzcyBNZXRhUGF0aEZpbmRlcihGaW5kZXIpOgpAQCAtNDksMTYgKzQzLDE0IEBACiAgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAogICAgIGRlZiBmaW5kX21vZHVsZShzZWxmLCBmdWxsbmFtZSwgcGF0aCk6CiAgICAgICAgICIiIkFic3RyYWN0IG1ldGhvZCB3aGljaCwgd2hlbiBpbXBsZW1lbnRlZCwgc2hvdWxkIGZpbmQgYSBtb2R1bGUuCi0gICAgICAgIFRoZSBmdWxsbmFtZSBpcyBhIHN0ciBhbmQgdGhlIHBhdGggaXMgYSBzdHIgb3IgTm9uZS4KLSAgICAgICAgUmV0dXJucyBhIExvYWRlciBvYmplY3QuCisgICAgICAgIFRoZSBmdWxsbmFtZSBpcyBhIHN0ciBhbmQgdGhlIHBhdGggaXMgYSBsaXN0IG9mIHN0cmluZ3Mgb3IgTm9uZS4KKyAgICAgICAgUmV0dXJucyBhIExvYWRlciBvYmplY3Qgb3IgTm9uZS4KICAgICAgICAgIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAogICAgIGRlZiBpbnZhbGlkYXRlX2NhY2hlcyhzZWxmKToKICAgICAgICAgIiIiQW4gb3B0aW9uYWwgbWV0aG9kIGZvciBjbGVhcmluZyB0aGUgZmluZGVyJ3MgY2FjaGUsIGlmIGFueS4KICAgICAgICAgVGhpcyBtZXRob2QgaXMgdXNlZCBieSBpbXBvcnRsaWIuaW52YWxpZGF0ZV9jYWNoZXMoKS4KICAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAogCiBfcmVnaXN0ZXIoTWV0YVBhdGhGaW5kZXIsIG1hY2hpbmVyeS5CdWlsdGluSW1wb3J0ZXIsIG1hY2hpbmVyeS5Gcm96ZW5JbXBvcnRlciwKICAgICAgICAgICBtYWNoaW5lcnkuUGF0aEZpbmRlciwgbWFjaGluZXJ5LldpbmRvd3NSZWdpc3RyeUZpbmRlcikKQEAgLTcwLDEzICs2MiwxNCBAQAogCiAgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAogICAgIGRlZiBmaW5kX2xvYWRlcihzZWxmLCBmdWxsbmFtZSk6Ci0gICAgICAgICIiIkFic3RyYWN0IG1ldGhvZCB3aGljaCwgd2hlbiBpbXBsZW1lbnRlZCwgcmV0dXJucyBhIG1vZHVsZSBsb2FkZXIuCisgICAgICAgICIiIkFic3RyYWN0IG1ldGhvZCB3aGljaCwgd2hlbiBpbXBsZW1lbnRlZCwgcmV0dXJucyBhIG1vZHVsZSBsb2FkZXIgb3IKKyAgICAgICAgYSBwb3NzaWJsZSBwYXJ0IG9mIGEgbmFtZXNwYWNlLgogICAgICAgICBUaGUgZnVsbG5hbWUgaXMgYSBzdHIuICBSZXR1cm5zIGEgMi10dXBsZSBvZiAoTG9hZGVyLCBwb3J0aW9uKSB3aGVyZQogICAgICAgICBwb3J0aW9uIGlzIGEgc2VxdWVuY2Ugb2YgZmlsZSBzeXN0ZW0gbG9jYXRpb25zIGNvbnRyaWJ1dGluZyB0byBwYXJ0IG9mCi0gICAgICAgIGEgbmFtZXNwYWNlIHBhY2thZ2UuICBUaGUgc2VxdWVuY2UgbWF5IGJlIGVtcHR5IGFuZCB0aGUgbG9hZGVyIG1heSBiZQorICAgICAgICBhIG5hbWVzcGFjZSBwYWNrYWdlLiBUaGUgc2VxdWVuY2UgbWF5IGJlIGVtcHR5IGFuZCB0aGUgbG9hZGVyIG1heSBiZQogICAgICAgICBOb25lLgogICAgICAgICAiIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorICAgICAgICByZXR1cm4gTm9uZSwgW10KIAogICAgIGZpbmRfbW9kdWxlID0gX2Jvb3RzdHJhcC5fZmluZF9tb2R1bGVfc2hpbQogCkBAIC04NCwyNiArNzcsNDAgQEAKICAgICAgICAgIiIiQW4gb3B0aW9uYWwgbWV0aG9kIGZvciBjbGVhcmluZyB0aGUgZmluZGVyJ3MgY2FjaGUsIGlmIGFueS4KICAgICAgICAgVGhpcyBtZXRob2QgaXMgdXNlZCBieSBQYXRoRmluZGVyLmludmFsaWRhdGVfY2FjaGVzKCkuCiAgICAgICAgICIiIgotICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKIAogX3JlZ2lzdGVyKFBhdGhFbnRyeUZpbmRlciwgbWFjaGluZXJ5LkZpbGVGaW5kZXIpCiAKIAogY2xhc3MgTG9hZGVyKG1ldGFjbGFzcz1hYmMuQUJDTWV0YSk6CiAKLSAgICAiIiJBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBpbXBvcnQgbG9hZGVycy4iIiIKKyAgICAiIiJBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBpbXBvcnQgbG9hZGVycy4KKworICAgIFRoZSBvcHRpb25hbCBtZXRob2QgbW9kdWxlX3JlcHIobW9kdWxlKSBtYXkgYmUgZGVmaW5lZCB0byBwcm92aWRlIGEKKyAgICByZXByIGZvciBhIG1vZHVsZSB3aGVuIGFwcHJvcHJpYXRlIChzZWUgUEVQIDQyMCkuIFRoZSBfX3JlcHJfXygpIG1ldGhvZCBvbgorICAgIHRoZSBtb2R1bGUgdHlwZSB3aWxsIHVzZSB0aGUgbWV0aG9kIGFzIGFwcHJvcHJpYXRlLgorCisgICAgIiIiCiAKICAgICBAYWJjLmFic3RyYWN0bWV0aG9kCiAgICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lKToKICAgICAgICAgIiIiQWJzdHJhY3QgbWV0aG9kIHdoaWNoIHdoZW4gaW1wbGVtZW50ZWQgc2hvdWxkIGxvYWQgYSBtb2R1bGUuCi0gICAgICAgIFRoZSBmdWxsbmFtZSBpcyBhIHN0ci4iIiIKKyAgICAgICAgVGhlIGZ1bGxuYW1lIGlzIGEgc3RyLgorCisgICAgICAgIEltcG9ydEVycm9yIGlzIHJhaXNlZCBvbiBmYWlsdXJlLgorICAgICAgICAiIiIKKyAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IKKworICAgIGRlZiBtb2R1bGVfcmVwcihzZWxmLCBtb2R1bGUpOgorICAgICAgICAiIiJSZXR1cm4gYSBtb2R1bGUncyByZXByLgorCisgICAgICAgIFVzZWQgYnkgdGhlIG1vZHVsZSB0eXBlIHdoZW4gdGhlIG1ldGhvZCBkb2VzIG5vdCByYWlzZQorICAgICAgICBOb3RJbXBsZW1lbnRlZEVycm9yLgorICAgICAgICAiIiIKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0gICAgQGFiYy5hYnN0cmFjdG1ldGhvZAotICAgIGRlZiBtb2R1bGVfcmVwcihzZWxmLCBtb2R1bGUpOgotICAgICAgICAiIiJBYnN0cmFjdCBtZXRob2Qgd2hpY2ggd2hlbiBpbXBsZW1lbnRlZCBjYWxjdWxhdGVzIGFuZCByZXR1cm5zIHRoZQotICAgICAgICBnaXZlbiBtb2R1bGUncyByZXByLiIiIgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgZGVmIGluaXRfbW9kdWxlX2F0dHJzKHNlbGYsIG1vZHVsZSk6CisgICAgICAgICIiIlNldCB0aGUgbW9kdWxlJ3MgX19sb2FkZXJfXyBhdHRyaWJ1dGUuIiIiCisgICAgICAgIG1vZHVsZS5fX2xvYWRlcl9fID0gc2VsZgogCiAKIGNsYXNzIFJlc291cmNlTG9hZGVyKExvYWRlcik6CkBAIC0xMTksNyArMTI2LDcgQEAKICAgICBkZWYgZ2V0X2RhdGEoc2VsZiwgcGF0aCk6CiAgICAgICAgICIiIkFic3RyYWN0IG1ldGhvZCB3aGljaCB3aGVuIGltcGxlbWVudGVkIHNob3VsZCByZXR1cm4gdGhlIGJ5dGVzIGZvcgogICAgICAgICB0aGUgc3BlY2lmaWVkIHBhdGguICBUaGUgcGF0aCBtdXN0IGJlIGEgc3RyLiIiIgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgICAgIHJhaXNlIElPRXJyb3IKIAogCiBjbGFzcyBJbnNwZWN0TG9hZGVyKExvYWRlcik6CkBAIC0xMzQsMjAgKzE0MSw1MSBAQAogICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKICAgICBkZWYgaXNfcGFja2FnZShzZWxmLCBmdWxsbmFtZSk6CiAgICAgICAgICIiIkFic3RyYWN0IG1ldGhvZCB3aGljaCB3aGVuIGltcGxlbWVudGVkIHNob3VsZCByZXR1cm4gd2hldGhlciB0aGUKLSAgICAgICAgbW9kdWxlIGlzIGEgcGFja2FnZS4gIFRoZSBmdWxsbmFtZSBpcyBhIHN0ci4gIFJldHVybnMgYSBib29sLiIiIgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgICAgIG1vZHVsZSBpcyBhIHBhY2thZ2UuICBUaGUgZnVsbG5hbWUgaXMgYSBzdHIuICBSZXR1cm5zIGEgYm9vbC4KIAotICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICAgICAgUmFpc2VzIEltcG9ydEVycm9yIGlzIHRoZSBtb2R1bGUgY2Fubm90IGJlIGZvdW5kLgorICAgICAgICAiIiIKKyAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IKKwogICAgIGRlZiBnZXRfY29kZShzZWxmLCBmdWxsbmFtZSk6Ci0gICAgICAgICIiIkFic3RyYWN0IG1ldGhvZCB3aGljaCB3aGVuIGltcGxlbWVudGVkIHNob3VsZCByZXR1cm4gdGhlIGNvZGUgb2JqZWN0Ci0gICAgICAgIGZvciB0aGUgbW9kdWxlLiAgVGhlIGZ1bGxuYW1lIGlzIGEgc3RyLiAgUmV0dXJucyBhIHR5cGVzLkNvZGVUeXBlLiIiIgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgICAgICIiIk1ldGhvZCB3aGljaCByZXR1cm5zIHRoZSBjb2RlIG9iamVjdCBmb3IgdGhlIG1vZHVsZS4KKworICAgICAgICBUaGUgZnVsbG5hbWUgaXMgYSBzdHIuICBSZXR1cm5zIGEgdHlwZXMuQ29kZVR5cGUgaWYgcG9zc2libGUsIGVsc2UKKyAgICAgICAgcmV0dXJucyBOb25lIGlmIGEgY29kZSBvYmplY3QgZG9lcyBub3QgbWFrZSBzZW5zZQorICAgICAgICAoZS5nLiBidWlsdC1pbiBtb2R1bGUpLiBSYWlzZXMgSW1wb3J0RXJyb3IgaWYgdGhlIG1vZHVsZSBjYW5ub3QgYmUKKyAgICAgICAgZm91bmQuCisgICAgICAgICIiIgorICAgICAgICBzb3VyY2UgPSBzZWxmLmdldF9zb3VyY2UoZnVsbG5hbWUpCisgICAgICAgIGlmIHNvdXJjZSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIHNlbGYuc291cmNlX3RvX2NvZGUoc291cmNlKQogCiAgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAogICAgIGRlZiBnZXRfc291cmNlKHNlbGYsIGZ1bGxuYW1lKToKICAgICAgICAgIiIiQWJzdHJhY3QgbWV0aG9kIHdoaWNoIHNob3VsZCByZXR1cm4gdGhlIHNvdXJjZSBjb2RlIGZvciB0aGUKLSAgICAgICAgbW9kdWxlLiAgVGhlIGZ1bGxuYW1lIGlzIGEgc3RyLiAgUmV0dXJucyBhIHN0ci4iIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorICAgICAgICBtb2R1bGUuICBUaGUgZnVsbG5hbWUgaXMgYSBzdHIuICBSZXR1cm5zIGEgc3RyLgorCisgICAgICAgIFJhaXNlcyBJbXBvcnRFcnJvciBpZiB0aGUgbW9kdWxlIGNhbm5vdCBiZSBmb3VuZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJhaXNlIEltcG9ydEVycm9yCisKKyAgICBkZWYgc291cmNlX3RvX2NvZGUoc2VsZiwgZGF0YSwgcGF0aD0nPHN0cmluZz4nKToKKyAgICAgICAgIiIiQ29tcGlsZSAnZGF0YScgaW50byBhIGNvZGUgb2JqZWN0LgorCisgICAgICAgIFRoZSAnZGF0YScgYXJndW1lbnQgY2FuIGJlIGFueXRoaW5nIHRoYXQgY29tcGlsZSgpIGNhbiBoYW5kbGUuIFRoZSdwYXRoJworICAgICAgICBhcmd1bWVudCBzaG91bGQgYmUgd2hlcmUgdGhlIGRhdGEgd2FzIHJldHJpZXZlZCAod2hlbiBhcHBsaWNhYmxlKS4iIiIKKyAgICAgICAgcmV0dXJuIGNvbXBpbGUoZGF0YSwgcGF0aCwgJ2V4ZWMnLCBkb250X2luaGVyaXQ9VHJ1ZSkKKworICAgIGRlZiBpbml0X21vZHVsZV9hdHRycyhzZWxmLCBtb2R1bGUpOgorICAgICAgICAiIiJJbml0aWFsaXplIHRoZSBfX2xvYWRlcl9fIGFuZCBfX3BhY2thZ2VfXyBhdHRyaWJ1dGVzIG9mIHRoZSBtb2R1bGUuCisKKyAgICAgICAgVGhlIG5hbWUgb2YgdGhlIG1vZHVsZSBpcyBnbGVhbmVkIGZyb20gbW9kdWxlLl9fbmFtZV9fLiBUaGUgX19wYWNrYWdlX18KKyAgICAgICAgYXR0cmlidXRlIGlzIHNldCBiYXNlZCBvbiBzZWxmLmlzX3BhY2thZ2UoKS4KKyAgICAgICAgIiIiCisgICAgICAgIHN1cGVyKCkuaW5pdF9tb2R1bGVfYXR0cnMobW9kdWxlKQorICAgICAgICBfYm9vdHN0cmFwLl9pbml0X3BhY2thZ2VfYXR0cnMoc2VsZiwgbW9kdWxlKQorCisgICAgbG9hZF9tb2R1bGUgPSBfYm9vdHN0cmFwLl9Mb2FkZXJCYXNpY3MubG9hZF9tb2R1bGUKIAogX3JlZ2lzdGVyKEluc3BlY3RMb2FkZXIsIG1hY2hpbmVyeS5CdWlsdGluSW1wb3J0ZXIsIG1hY2hpbmVyeS5Gcm96ZW5JbXBvcnRlciwKICAgICAgICAgICAgIG1hY2hpbmVyeS5FeHRlbnNpb25GaWxlTG9hZGVyKQpAQCAtMTY1LDggKzIwMywzOSBAQAogICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKICAgICBkZWYgZ2V0X2ZpbGVuYW1lKHNlbGYsIGZ1bGxuYW1lKToKICAgICAgICAgIiIiQWJzdHJhY3QgbWV0aG9kIHdoaWNoIHNob3VsZCByZXR1cm4gdGhlIHZhbHVlIHRoYXQgX19maWxlX18gaXMgdG8gYmUKLSAgICAgICAgc2V0IHRvLiIiIgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgICAgIHNldCB0by4KKworICAgICAgICBSYWlzZXMgSW1wb3J0RXJyb3IgaWYgdGhlIG1vZHVsZSBjYW5ub3QgYmUgZm91bmQuCisgICAgICAgICIiIgorICAgICAgICByYWlzZSBJbXBvcnRFcnJvcgorCisgICAgZGVmIGdldF9jb2RlKHNlbGYsIGZ1bGxuYW1lKToKKyAgICAgICAgIiIiTWV0aG9kIHRvIHJldHVybiB0aGUgY29kZSBvYmplY3QgZm9yIGZ1bGxuYW1lLgorCisgICAgICAgIFNob3VsZCByZXR1cm4gTm9uZSBpZiBub3QgYXBwbGljYWJsZSAoZS5nLiBidWlsdC1pbiBtb2R1bGUpLgorICAgICAgICBSYWlzZSBJbXBvcnRFcnJvciBpZiB0aGUgbW9kdWxlIGNhbm5vdCBiZSBmb3VuZC4KKyAgICAgICAgIiIiCisgICAgICAgIHNvdXJjZSA9IHNlbGYuZ2V0X3NvdXJjZShmdWxsbmFtZSkKKyAgICAgICAgaWYgc291cmNlIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwYXRoID0gc2VsZi5nZXRfZmlsZW5hbWUoZnVsbG5hbWUpCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnNvdXJjZV90b19jb2RlKHNvdXJjZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnNvdXJjZV90b19jb2RlKHNvdXJjZSwgcGF0aCkKKworICAgIGRlZiBpbml0X21vZHVsZV9hdHRycyhzZWxmLCBtb2R1bGUpOgorICAgICAgICAiIiJJbml0aWFsaXplIHRoZSBtb2R1bGUncyBhdHRyaWJ1dGVzLgorCisgICAgICAgIEl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgbW9kdWxlJ3MgbmFtZSBoYXMgYmVlbiBzZXQgb24gbW9kdWxlLl9fbmFtZV9fLgorICAgICAgICBJdCBpcyBhbHNvIGFzc3VtZWQgdGhhdCBhbnkgcGF0aCByZXR1cm5lZCBieSBzZWxmLmdldF9maWxlbmFtZSgpIHVzZXMKKyAgICAgICAgKG9uZSBvZikgdGhlIG9wZXJhdGluZyBzeXN0ZW0ncyBwYXRoIHNlcGFyYXRvcihzKSB0byBzZXBhcmF0ZSBmaWxlbmFtZXMKKyAgICAgICAgZnJvbSBkaXJlY3RvcmllcyBpbiBvcmRlciB0byBzZXQgX19wYXRoX18gaW50ZWxsaWdlbnRseS4KKyAgICAgICAgSW5zcGVjdExvYWRlci5pbml0X21vZHVsZV9hdHRycygpIHNldHMgX19sb2FkZXJfXyBhbmQgX19wYWNrYWdlX18uCisgICAgICAgICIiIgorICAgICAgICBzdXBlcigpLmluaXRfbW9kdWxlX2F0dHJzKG1vZHVsZSkKKyAgICAgICAgX2Jvb3RzdHJhcC5faW5pdF9maWxlX2F0dHJzKHNlbGYsIG1vZHVsZSkKIAogCiBjbGFzcyBGaWxlTG9hZGVyKF9ib290c3RyYXAuRmlsZUxvYWRlciwgUmVzb3VyY2VMb2FkZXIsIEV4ZWN1dGlvbkxvYWRlcik6CkBAIC0xOTgsNyArMjY3LDcgQEAKICAgICBkZWYgcGF0aF9tdGltZShzZWxmLCBwYXRoKToKICAgICAgICAgIiIiUmV0dXJuIHRoZSAoaW50KSBtb2RpZmljYXRpb24gdGltZSBmb3IgdGhlIHBhdGggKHN0cikuIiIiCiAgICAgICAgIGlmIHNlbGYucGF0aF9zdGF0cy5fX2Z1bmNfXyBpcyBTb3VyY2VMb2FkZXIucGF0aF9zdGF0czoKLSAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAgICAgICAgICAgIHJhaXNlIElPRXJyb3IKICAgICAgICAgcmV0dXJuIGludChzZWxmLnBhdGhfc3RhdHMocGF0aClbJ210aW1lJ10pCiAKICAgICBkZWYgcGF0aF9zdGF0cyhzZWxmLCBwYXRoKToKQEAgLTIwOSw3ICsyNzgsNyBAQAogICAgICAgICAtICdzaXplJyAob3B0aW9uYWwpIGlzIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBzb3VyY2UgY29kZS4KICAgICAgICAgIiIiCiAgICAgICAgIGlmIHNlbGYucGF0aF9tdGltZS5fX2Z1bmNfXyBpcyBTb3VyY2VMb2FkZXIucGF0aF9tdGltZToKLSAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAgICAgICAgICAgIHJhaXNlIElPRXJyb3IKICAgICAgICAgcmV0dXJuIHsnbXRpbWUnOiBzZWxmLnBhdGhfbXRpbWUocGF0aCl9CiAKICAgICBkZWYgc2V0X2RhdGEoc2VsZiwgcGF0aCwgZGF0YSk6CkBAIC0yMjAsMTg1ICsyODksNiBAQAogICAgICAgICBBbnkgbmVlZGVkIGludGVybWVkaWFyeSBkaXJlY3RvcmllcyBhcmUgdG8gYmUgY3JlYXRlZC4gSWYgZm9yIHNvbWUKICAgICAgICAgcmVhc29uIHRoZSBmaWxlIGNhbm5vdCBiZSB3cml0dGVuIGJlY2F1c2Ugb2YgcGVybWlzc2lvbnMsIGZhaWwKICAgICAgICAgc2lsZW50bHkuCi0KICAgICAgICAgIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAogX3JlZ2lzdGVyKFNvdXJjZUxvYWRlciwgbWFjaGluZXJ5LlNvdXJjZUZpbGVMb2FkZXIpCi0KLWNsYXNzIFB5TG9hZGVyKFNvdXJjZUxvYWRlcik6Ci0KLSAgICAiIiJJbXBsZW1lbnQgdGhlIGRlcHJlY2F0ZWQgUHlMb2FkZXIgQUJDIGluIHRlcm1zIG9mIFNvdXJjZUxvYWRlci4KLQotICAgIFRoaXMgY2xhc3MgaGFzIGJlZW4gZGVwcmVjYXRlZCEgSXQgaXMgc2xhdGVkIGZvciByZW1vdmFsIGluIFB5dGhvbiAzLjQuCi0gICAgSWYgY29tcGF0aWJpbGl0eSB3aXRoIFB5dGhvbiAzLjEgaXMgbm90IG5lZWRlZCB0aGVuIGltcGxlbWVudCB0aGUKLSAgICBTb3VyY2VMb2FkZXIgQUJDIGluc3RlYWQgb2YgdGhpcyBjbGFzcy4gSWYgUHl0aG9uIDMuMSBjb21wYXRpYmlsaXR5IGlzCi0gICAgbmVlZGVkLCB0aGVuIHVzZSB0aGUgZm9sbG93aW5nIGlkaW9tIHRvIGhhdmUgYSBzaW5nbGUgY2xhc3MgdGhhdCBpcwotICAgIGNvbXBhdGlibGUgd2l0aCBQeXRob24gMy4xIG9ud2FyZHM6OgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZyb20gaW1wb3J0bGliLmFiYyBpbXBvcnQgU291cmNlTG9hZGVyCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIGZyb20gaW1wb3J0bGliLmFiYyBpbXBvcnQgUHlMb2FkZXIgYXMgU291cmNlTG9hZGVyCi0KLQotICAgICAgICBjbGFzcyBDdXN0b21Mb2FkZXIoU291cmNlTG9hZGVyKToKLSAgICAgICAgICAgIGRlZiBnZXRfZmlsZW5hbWUoc2VsZiwgZnVsbG5hbWUpOgotICAgICAgICAgICAgICAgICMgSW1wbGVtZW50IC4uLgotCi0gICAgICAgICAgICBkZWYgc291cmNlX3BhdGgoc2VsZiwgZnVsbG5hbWUpOgotICAgICAgICAgICAgICAgICcnJ0ltcGxlbWVudCBzb3VyY2VfcGF0aCBpbiB0ZXJtcyBvZiBnZXRfZmlsZW5hbWUuJycnCi0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRfZmlsZW5hbWUoZnVsbG5hbWUpCi0gICAgICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgICAgICBkZWYgaXNfcGFja2FnZShzZWxmLCBmdWxsbmFtZSk6Ci0gICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHNlbGYuZ2V0X2ZpbGVuYW1lKGZ1bGxuYW1lKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMF0gPT0gJ19faW5pdF9fJwotCi0gICAgIiIiCi0KLSAgICBAYWJjLmFic3RyYWN0bWV0aG9kCi0gICAgZGVmIGlzX3BhY2thZ2Uoc2VsZiwgZnVsbG5hbWUpOgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCi0KLSAgICBAYWJjLmFic3RyYWN0bWV0aG9kCi0gICAgZGVmIHNvdXJjZV9wYXRoKHNlbGYsIGZ1bGxuYW1lKToKLSAgICAgICAgIiIiQWJzdHJhY3QgbWV0aG9kLiAgQWNjZXB0cyBhIHN0ciBtb2R1bGUgbmFtZSBhbmQgcmV0dXJucyB0aGUgcGF0aCB0bwotICAgICAgICB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBtb2R1bGUuIiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKLQotICAgIGRlZiBnZXRfZmlsZW5hbWUoc2VsZiwgZnVsbG5hbWUpOgotICAgICAgICAiIiJJbXBsZW1lbnQgZ2V0X2ZpbGVuYW1lIGluIHRlcm1zIG9mIHNvdXJjZV9wYXRoLgotCi0gICAgICAgIEFzIGdldF9maWxlbmFtZSBzaG91bGQgb25seSByZXR1cm4gYSBzb3VyY2UgZmlsZSBwYXRoIHRoZXJlIGlzIG5vCi0gICAgICAgIGNoYW5jZSBvZiB0aGUgcGF0aCBub3QgZXhpc3RpbmcgYnV0IGxvYWRpbmcgc3RpbGwgYmVpbmcgcG9zc2libGUsIHNvCi0gICAgICAgIEltcG9ydEVycm9yIHNob3VsZCBwcm9wYWdhdGUgaW5zdGVhZCBvZiBiZWluZyB0dXJuZWQgaW50byByZXR1cm5pbmcKLSAgICAgICAgTm9uZS4KLQotICAgICAgICAiIiIKLSAgICAgICAgd2FybmluZ3Mud2FybigiaW1wb3J0bGliLmFiYy5QeUxvYWRlciBpcyBkZXByZWNhdGVkIGFuZCBpcyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNsYXRlZCBmb3IgcmVtb3ZhbCBpbiBQeXRob24gMy40OyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInVzZSBTb3VyY2VMb2FkZXIgaW5zdGVhZC4gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZWUgdGhlIGltcG9ydGxpYiBkb2N1bWVudGF0aW9uIG9uIGhvdyB0byBiZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbXBhdGlibGUgd2l0aCBQeXRob24gMy4xIG9ud2FyZHMuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZykKLSAgICAgICAgcGF0aCA9IHNlbGYuc291cmNlX3BhdGgoZnVsbG5hbWUpCi0gICAgICAgIGlmIHBhdGggaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKG5hbWU9ZnVsbG5hbWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gcGF0aAotCi0KLWNsYXNzIFB5UHljTG9hZGVyKFB5TG9hZGVyKToKLQotICAgICIiIkFic3RyYWN0IGJhc2UgY2xhc3MgdG8gYXNzaXN0IGluIGxvYWRpbmcgc291cmNlIGFuZCBieXRlY29kZSBieQotICAgIHJlcXVpcmluZyBvbmx5IGJhY2stZW5kIHN0b3JhZ2UgbWV0aG9kcyB0byBiZSBpbXBsZW1lbnRlZC4KLQotICAgIFRoaXMgY2xhc3MgaGFzIGJlZW4gZGVwcmVjYXRlZCEgUmVtb3ZhbCBpcyBzbGF0ZWQgZm9yIFB5dGhvbiAzLjQuIEltcGxlbWVudAotICAgIHRoZSBTb3VyY2VMb2FkZXIgQUJDIGluc3RlYWQuIElmIFB5dGhvbiAzLjEgY29tcGF0aWJpbGl0eSBpcyBuZWVkZWQsIHNlZQotICAgIFB5TG9hZGVyLgotCi0gICAgVGhlIG1ldGhvZHMgZ2V0X2NvZGUsIGdldF9zb3VyY2UsIGFuZCBsb2FkX21vZHVsZSBhcmUgaW1wbGVtZW50ZWQgZm9yIHRoZQotICAgIHVzZXIuCi0KLSAgICAiIiIKLQotICAgIGRlZiBnZXRfZmlsZW5hbWUoc2VsZiwgZnVsbG5hbWUpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIHNvdXJjZSBvciBieXRlY29kZSBmaWxlIHBhdGguIiIiCi0gICAgICAgIHBhdGggPSBzZWxmLnNvdXJjZV9wYXRoKGZ1bGxuYW1lKQotICAgICAgICBpZiBwYXRoIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmV0dXJuIHBhdGgKLSAgICAgICAgcGF0aCA9IHNlbGYuYnl0ZWNvZGVfcGF0aChmdWxsbmFtZSkKLSAgICAgICAgaWYgcGF0aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBwYXRoCi0gICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJubyBzb3VyY2Ugb3IgYnl0ZWNvZGUgcGF0aCBhdmFpbGFibGUgZm9yICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiezAhcn0iLmZvcm1hdChmdWxsbmFtZSksIG5hbWU9ZnVsbG5hbWUpCi0KLSAgICBkZWYgZ2V0X2NvZGUoc2VsZiwgZnVsbG5hbWUpOgotICAgICAgICAiIiJHZXQgYSBjb2RlIG9iamVjdCBmcm9tIHNvdXJjZSBvciBieXRlY29kZS4iIiIKLSAgICAgICAgd2FybmluZ3Mud2FybigiaW1wb3J0bGliLmFiYy5QeVB5Y0xvYWRlciBpcyBkZXByZWNhdGVkIGFuZCBzbGF0ZWQgZm9yICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVtb3ZhbCBpbiBQeXRob24gMy40OyB1c2UgU291cmNlTG9hZGVyIGluc3RlYWQuICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSWYgUHl0aG9uIDMuMSBjb21wYXRpYmlsaXR5IGlzIHJlcXVpcmVkLCBzZWUgdGhlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGF0ZXN0IGRvY3VtZW50YXRpb24gZm9yIFB5TG9hZGVyLiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcpCi0gICAgICAgIHNvdXJjZV90aW1lc3RhbXAgPSBzZWxmLnNvdXJjZV9tdGltZShmdWxsbmFtZSkKLSAgICAgICAgIyBUcnkgdG8gdXNlIGJ5dGVjb2RlIGlmIGl0IGlzIGF2YWlsYWJsZS4KLSAgICAgICAgYnl0ZWNvZGVfcGF0aCA9IHNlbGYuYnl0ZWNvZGVfcGF0aChmdWxsbmFtZSkKLSAgICAgICAgaWYgYnl0ZWNvZGVfcGF0aDoKLSAgICAgICAgICAgIGRhdGEgPSBzZWxmLmdldF9kYXRhKGJ5dGVjb2RlX3BhdGgpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgbWFnaWMgPSBkYXRhWzo0XQotICAgICAgICAgICAgICAgIGlmIGxlbihtYWdpYykgPCA0OgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICJiYWQgbWFnaWMgbnVtYmVyIGluIHt9Ii5mb3JtYXQoZnVsbG5hbWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1mdWxsbmFtZSwgcGF0aD1ieXRlY29kZV9wYXRoKQotICAgICAgICAgICAgICAgIHJhd190aW1lc3RhbXAgPSBkYXRhWzQ6OF0KLSAgICAgICAgICAgICAgICBpZiBsZW4ocmF3X3RpbWVzdGFtcCkgPCA0OgotICAgICAgICAgICAgICAgICAgICByYWlzZSBFT0ZFcnJvcigiYmFkIHRpbWVzdGFtcCBpbiB7fSIuZm9ybWF0KGZ1bGxuYW1lKSkKLSAgICAgICAgICAgICAgICBweWNfdGltZXN0YW1wID0gX2Jvb3RzdHJhcC5fcl9sb25nKHJhd190aW1lc3RhbXApCi0gICAgICAgICAgICAgICAgcmF3X3NvdXJjZV9zaXplID0gZGF0YVs4OjEyXQotICAgICAgICAgICAgICAgIGlmIGxlbihyYXdfc291cmNlX3NpemUpICE9IDQ6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEVPRkVycm9yKCJiYWQgZmlsZSBzaXplIGluIHt9Ii5mb3JtYXQoZnVsbG5hbWUpKQotICAgICAgICAgICAgICAgICMgU291cmNlIHNpemUgaXMgdW51c2VkIGFzIHRoZSBBQkMgZG9lcyBub3QgcHJvdmlkZSBhIHdheSB0bwotICAgICAgICAgICAgICAgICMgZ2V0IHRoZSBzaXplIG9mIHRoZSBzb3VyY2UgYWhlYWQgb2YgcmVhZGluZyBpdC4KLSAgICAgICAgICAgICAgICBieXRlY29kZSA9IGRhdGFbMTI6XQotICAgICAgICAgICAgICAgICMgVmVyaWZ5IHRoYXQgdGhlIG1hZ2ljIG51bWJlciBpcyB2YWxpZC4KLSAgICAgICAgICAgICAgICBpZiBpbXAuZ2V0X21hZ2ljKCkgIT0gbWFnaWM6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgImJhZCBtYWdpYyBudW1iZXIgaW4ge30iLmZvcm1hdChmdWxsbmFtZSksCi0gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPWZ1bGxuYW1lLCBwYXRoPWJ5dGVjb2RlX3BhdGgpCi0gICAgICAgICAgICAgICAgIyBWZXJpZnkgdGhhdCB0aGUgYnl0ZWNvZGUgaXMgbm90IHN0YWxlIChvbmx5IG1hdHRlcnMgd2hlbgotICAgICAgICAgICAgICAgICMgdGhlcmUgaXMgc291cmNlIHRvIGZhbGwgYmFjayBvbi4KLSAgICAgICAgICAgICAgICBpZiBzb3VyY2VfdGltZXN0YW1wOgotICAgICAgICAgICAgICAgICAgICBpZiBweWNfdGltZXN0YW1wIDwgc291cmNlX3RpbWVzdGFtcDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJieXRlY29kZSBpcyBzdGFsZSIsIG5hbWU9ZnVsbG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPWJ5dGVjb2RlX3BhdGgpCi0gICAgICAgICAgICBleGNlcHQgKEltcG9ydEVycm9yLCBFT0ZFcnJvcik6Ci0gICAgICAgICAgICAgICAgIyBJZiBzb3VyY2UgaXMgYXZhaWxhYmxlIGdpdmUgaXQgYSBzaG90LgotICAgICAgICAgICAgICAgIGlmIHNvdXJjZV90aW1lc3RhbXAgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIEJ5dGVjb2RlIHNlZW1zIGZpbmUsIHNvIHRyeSB0byB1c2UgaXQuCi0gICAgICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWwubG9hZHMoYnl0ZWNvZGUpCi0gICAgICAgIGVsaWYgc291cmNlX3RpbWVzdGFtcCBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoIm5vIHNvdXJjZSBvciBieXRlY29kZSBhdmFpbGFibGUgdG8gY3JlYXRlIGNvZGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9iamVjdCBmb3IgezAhcn0iLmZvcm1hdChmdWxsbmFtZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPWZ1bGxuYW1lKQotICAgICAgICAjIFVzZSB0aGUgc291cmNlLgotICAgICAgICBzb3VyY2VfcGF0aCA9IHNlbGYuc291cmNlX3BhdGgoZnVsbG5hbWUpCi0gICAgICAgIGlmIHNvdXJjZV9wYXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICBtZXNzYWdlID0gImEgc291cmNlIHBhdGggbXVzdCBleGlzdCB0byBsb2FkIHswfSIuZm9ybWF0KGZ1bGxuYW1lKQotICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IobWVzc2FnZSwgbmFtZT1mdWxsbmFtZSkKLSAgICAgICAgc291cmNlID0gc2VsZi5nZXRfZGF0YShzb3VyY2VfcGF0aCkKLSAgICAgICAgY29kZV9vYmplY3QgPSBjb21waWxlKHNvdXJjZSwgc291cmNlX3BhdGgsICdleGVjJywgZG9udF9pbmhlcml0PVRydWUpCi0gICAgICAgICMgR2VuZXJhdGUgYnl0ZWNvZGUgYW5kIHdyaXRlIGl0IG91dC4KLSAgICAgICAgaWYgbm90IHN5cy5kb250X3dyaXRlX2J5dGVjb2RlOgotICAgICAgICAgICAgZGF0YSA9IGJ5dGVhcnJheShpbXAuZ2V0X21hZ2ljKCkpCi0gICAgICAgICAgICBkYXRhLmV4dGVuZChfYm9vdHN0cmFwLl93X2xvbmcoc291cmNlX3RpbWVzdGFtcCkpCi0gICAgICAgICAgICBkYXRhLmV4dGVuZChfYm9vdHN0cmFwLl93X2xvbmcobGVuKHNvdXJjZSkgJiAweEZGRkZGRkZGKSkKLSAgICAgICAgICAgIGRhdGEuZXh0ZW5kKG1hcnNoYWwuZHVtcHMoY29kZV9vYmplY3QpKQotICAgICAgICAgICAgc2VsZi53cml0ZV9ieXRlY29kZShmdWxsbmFtZSwgZGF0YSkKLSAgICAgICAgcmV0dXJuIGNvZGVfb2JqZWN0Ci0KLSAgICBAYWJjLmFic3RyYWN0bWV0aG9kCi0gICAgZGVmIHNvdXJjZV9tdGltZShzZWxmLCBmdWxsbmFtZSk6Ci0gICAgICAgICIiIkFic3RyYWN0IG1ldGhvZC4gQWNjZXB0cyBhIHN0ciBmaWxlbmFtZSBhbmQgcmV0dXJucyBhbiBpbnQKLSAgICAgICAgbW9kaWZpY2F0aW9uIHRpbWUgZm9yIHRoZSBzb3VyY2Ugb2YgdGhlIG1vZHVsZS4iIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgotCi0gICAgQGFiYy5hYnN0cmFjdG1ldGhvZAotICAgIGRlZiBieXRlY29kZV9wYXRoKHNlbGYsIGZ1bGxuYW1lKToKLSAgICAgICAgIiIiQWJzdHJhY3QgbWV0aG9kLiBBY2NlcHRzIGEgc3RyIGZpbGVuYW1lIGFuZCByZXR1cm5zIHRoZSBzdHIgcGF0aG5hbWUKLSAgICAgICAgdG8gdGhlIGJ5dGVjb2RlIGZvciB0aGUgbW9kdWxlLiIiIgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCi0KLSAgICBAYWJjLmFic3RyYWN0bWV0aG9kCi0gICAgZGVmIHdyaXRlX2J5dGVjb2RlKHNlbGYsIGZ1bGxuYW1lLCBieXRlY29kZSk6Ci0gICAgICAgICIiIkFic3RyYWN0IG1ldGhvZC4gIEFjY2VwdHMgYSBzdHIgZmlsZW5hbWUgYW5kIGJ5dGVzIG9iamVjdAotICAgICAgICByZXByZXNlbnRpbmcgdGhlIGJ5dGVjb2RlIGZvciB0aGUgbW9kdWxlLiAgUmV0dXJucyBhIGJvb2xlYW4KLSAgICAgICAgcmVwcmVzZW50aW5nIHdoZXRoZXIgdGhlIGJ5dGVjb2RlIHdhcyB3cml0dGVuIG9yIG5vdC4iIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgpkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi91dGlsLnB5IGIvTGliL2ltcG9ydGxpYi91dGlsLnB5CmluZGV4IDEzMTY0MzcuLjljZjBlYjcgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvdXRpbC5weQorKysgYi9MaWIvaW1wb3J0bGliL3V0aWwucHkKQEAgLTEsMTAgKzEsMTMgQEAKICIiIlV0aWxpdHkgY29kZSBmb3IgY29uc3RydWN0aW5nIGltcG9ydGVycywgZXRjLiIiIgogCi1mcm9tIC5fYm9vdHN0cmFwIGltcG9ydCBtb2R1bGVfZm9yX2xvYWRlcgorZnJvbSAuX2Jvb3RzdHJhcCBpbXBvcnQgbW9kdWxlX3RvX2xvYWQKIGZyb20gLl9ib290c3RyYXAgaW1wb3J0IHNldF9sb2FkZXIKIGZyb20gLl9ib290c3RyYXAgaW1wb3J0IHNldF9wYWNrYWdlCiBmcm9tIC5fYm9vdHN0cmFwIGltcG9ydCBfcmVzb2x2ZV9uYW1lCiAKK2ltcG9ydCBmdW5jdG9vbHMKK2ltcG9ydCB3YXJuaW5ncworCiAKIGRlZiByZXNvbHZlX25hbWUobmFtZSwgcGFja2FnZSk6CiAgICAgIiIiUmVzb2x2ZSBhIHJlbGF0aXZlIG1vZHVsZSBuYW1lIHRvIGFuIGFic29sdXRlIG9uZS4iIiIKQEAgLTE5LDMgKzIyLDQ0IEBACiAgICAgICAgICAgICBicmVhawogICAgICAgICBsZXZlbCArPSAxCiAgICAgcmV0dXJuIF9yZXNvbHZlX25hbWUobmFtZVtsZXZlbDpdLCBwYWNrYWdlLCBsZXZlbCkKKworCitkZWYgbW9kdWxlX2Zvcl9sb2FkZXIoZnhuKToKKyAgICAiIiJEZWNvcmF0b3IgdG8gaGFuZGxlIHNlbGVjdGluZyB0aGUgcHJvcGVyIG1vZHVsZSBmb3IgbG9hZGVycy4KKworICAgIFRoZSBkZWNvcmF0ZWQgZnVuY3Rpb24gaXMgcGFzc2VkIHRoZSBtb2R1bGUgdG8gdXNlIGluc3RlYWQgb2YgdGhlIG1vZHVsZQorICAgIG5hbWUuIFRoZSBtb2R1bGUgcGFzc2VkIGluIHRvIHRoZSBmdW5jdGlvbiBpcyBlaXRoZXIgZnJvbSBzeXMubW9kdWxlcyBpZgorICAgIGl0IGFscmVhZHkgZXhpc3RzIG9yIGlzIGEgbmV3IG1vZHVsZS4gSWYgdGhlIG1vZHVsZSBpcyBuZXcsIHRoZW4gX19uYW1lX18KKyAgICBpcyBzZXQgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBtZXRob2QsIF9fbG9hZGVyX18gaXMgc2V0IHRvIHNlbGYsIGFuZAorICAgIF9fcGFja2FnZV9fIGlzIHNldCBhY2NvcmRpbmdseSAoaWYgc2VsZi5pc19wYWNrYWdlKCkgaXMgZGVmaW5lZCkgd2lsbCBiZSBzZXQKKyAgICBiZWZvcmUgaXQgaXMgcGFzc2VkIHRvIHRoZSBkZWNvcmF0ZWQgZnVuY3Rpb24gKGlmIHNlbGYuaXNfcGFja2FnZSgpIGRvZXMKKyAgICBub3Qgd29yayBmb3IgdGhlIG1vZHVsZSBpdCB3aWxsIGJlIHNldCBwb3N0LWxvYWQpLgorCisgICAgSWYgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZCBhbmQgdGhlIGRlY29yYXRvciBjcmVhdGVkIHRoZSBtb2R1bGUgaXQgaXMKKyAgICBzdWJzZXF1ZW50bHkgcmVtb3ZlZCBmcm9tIHN5cy5tb2R1bGVzLgorCisgICAgVGhlIGRlY29yYXRvciBhc3N1bWVzIHRoYXQgdGhlIGRlY29yYXRlZCBmdW5jdGlvbiB0YWtlcyB0aGUgbW9kdWxlIG5hbWUgYXMKKyAgICB0aGUgc2Vjb25kIGFyZ3VtZW50LgorCisgICAgIiIiCisgICAgd2FybmluZ3Mud2FybignVG8gbWFrZSBpdCBlYXNpZXIgZm9yIHN1YmNsYXNzZXMsIHBsZWFzZSB1c2UgJworICAgICAgICAgICAgICAgICAgJ2ltcG9ydGxpYi51dGlsLm1vZHVsZV90b19sb2FkKCkgYW5kICcKKyAgICAgICAgICAgICAgICAgICdpbXBvcnRsaWIuYWJjLkxvYWRlci5pbml0X21vZHVsZV9hdHRycygpJywKKyAgICAgICAgICAgICAgICAgIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MikKKyAgICBAZnVuY3Rvb2xzLndyYXBzKGZ4bikKKyAgICBkZWYgbW9kdWxlX2Zvcl9sb2FkZXJfd3JhcHBlcihzZWxmLCBmdWxsbmFtZSwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgd2l0aCBtb2R1bGVfdG9fbG9hZChmdWxsbmFtZSkgYXMgbW9kdWxlOgorICAgICAgICAgICAgbW9kdWxlLl9fbG9hZGVyX18gPSBzZWxmCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaXNfcGFja2FnZSA9IHNlbGYuaXNfcGFja2FnZShmdWxsbmFtZSkKKyAgICAgICAgICAgIGV4Y2VwdCAoSW1wb3J0RXJyb3IsIEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIGlzX3BhY2thZ2U6CisgICAgICAgICAgICAgICAgICAgIG1vZHVsZS5fX3BhY2thZ2VfXyA9IGZ1bGxuYW1lCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbW9kdWxlLl9fcGFja2FnZV9fID0gZnVsbG5hbWUucnBhcnRpdGlvbignLicpWzBdCisgICAgICAgICAgICAjIElmIF9fcGFja2FnZV9fIHdhcyBub3Qgc2V0IGFib3ZlLCBfX2ltcG9ydF9fKCkgd2lsbCBkbyBpdCBsYXRlci4KKyAgICAgICAgICAgIHJldHVybiBmeG4oc2VsZiwgbW9kdWxlLCAqYXJncywgKiprd2FyZ3MpCisKKyAgICByZXR1cm4gbW9kdWxlX2Zvcl9sb2FkZXJfd3JhcHBlcgpkaWZmIC0tZ2l0IGEvTGliL2luc3BlY3QucHkgYi9MaWIvaW5zcGVjdC5weQppbmRleCA3ODM0ZDEyLi4yMmI5ZTg0IDEwMDY0NAotLS0gYS9MaWIvaW5zcGVjdC5weQorKysgYi9MaWIvaW5zcGVjdC5weQpAQCAtNDc2LDcgKzQ3Niw3IEBACiAgICAgaWYgb3MucGF0aC5leGlzdHMoZmlsZW5hbWUpOgogICAgICAgICByZXR1cm4gZmlsZW5hbWUKICAgICAjIG9ubHkgcmV0dXJuIGEgbm9uLWV4aXN0ZW50IGZpbGVuYW1lIGlmIHRoZSBtb2R1bGUgaGFzIGEgUEVQIDMwMiBsb2FkZXIKLSAgICBpZiBoYXNhdHRyKGdldG1vZHVsZShvYmplY3QsIGZpbGVuYW1lKSwgJ19fbG9hZGVyX18nKToKKyAgICBpZiBnZXRhdHRyKGdldG1vZHVsZShvYmplY3QsIGZpbGVuYW1lKSwgJ19fbG9hZGVyX18nLCBOb25lKSBpcyBub3QgTm9uZToKICAgICAgICAgcmV0dXJuIGZpbGVuYW1lCiAgICAgIyBvciBpdCBpcyBpbiB0aGUgbGluZWNhY2hlCiAgICAgaWYgZmlsZW5hbWUgaW4gbGluZWNhY2hlLmNhY2hlOgpAQCAtNTQ1LDEzICs1NDUsMTMgQEAKIAogICAgIFRoZSBhcmd1bWVudCBtYXkgYmUgYSBtb2R1bGUsIGNsYXNzLCBtZXRob2QsIGZ1bmN0aW9uLCB0cmFjZWJhY2ssIGZyYW1lLAogICAgIG9yIGNvZGUgb2JqZWN0LiAgVGhlIHNvdXJjZSBjb2RlIGlzIHJldHVybmVkIGFzIGEgbGlzdCBvZiBhbGwgdGhlIGxpbmVzCi0gICAgaW4gdGhlIGZpbGUgYW5kIHRoZSBsaW5lIG51bWJlciBpbmRleGVzIGEgbGluZSBpbiB0aGF0IGxpc3QuICBBbiBJT0Vycm9yCisgICAgaW4gdGhlIGZpbGUgYW5kIHRoZSBsaW5lIG51bWJlciBpbmRleGVzIGEgbGluZSBpbiB0aGF0IGxpc3QuICBBbiBPU0Vycm9yCiAgICAgaXMgcmFpc2VkIGlmIHRoZSBzb3VyY2UgY29kZSBjYW5ub3QgYmUgcmV0cmlldmVkLiIiIgogCiAgICAgZmlsZSA9IGdldGZpbGUob2JqZWN0KQogICAgIHNvdXJjZWZpbGUgPSBnZXRzb3VyY2VmaWxlKG9iamVjdCkKICAgICBpZiBub3Qgc291cmNlZmlsZSBhbmQgZmlsZVs6MV0gKyBmaWxlWy0xOl0gIT0gJzw+JzoKLSAgICAgICAgcmFpc2UgSU9FcnJvcignc291cmNlIGNvZGUgbm90IGF2YWlsYWJsZScpCisgICAgICAgIHJhaXNlIE9TRXJyb3IoJ3NvdXJjZSBjb2RlIG5vdCBhdmFpbGFibGUnKQogICAgIGZpbGUgPSBzb3VyY2VmaWxlIGlmIHNvdXJjZWZpbGUgZWxzZSBmaWxlCiAKICAgICBtb2R1bGUgPSBnZXRtb2R1bGUob2JqZWN0LCBmaWxlKQpAQCAtNTYwLDcgKzU2MCw3IEBACiAgICAgZWxzZToKICAgICAgICAgbGluZXMgPSBsaW5lY2FjaGUuZ2V0bGluZXMoZmlsZSkKICAgICBpZiBub3QgbGluZXM6Ci0gICAgICAgIHJhaXNlIElPRXJyb3IoJ2NvdWxkIG5vdCBnZXQgc291cmNlIGNvZGUnKQorICAgICAgICByYWlzZSBPU0Vycm9yKCdjb3VsZCBub3QgZ2V0IHNvdXJjZSBjb2RlJykKIAogICAgIGlmIGlzbW9kdWxlKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBsaW5lcywgMApAQCAtNTg2LDcgKzU4Niw3IEBACiAgICAgICAgICAgICBjYW5kaWRhdGVzLnNvcnQoKQogICAgICAgICAgICAgcmV0dXJuIGxpbmVzLCBjYW5kaWRhdGVzWzBdWzFdCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKCdjb3VsZCBub3QgZmluZCBjbGFzcyBkZWZpbml0aW9uJykKKyAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoJ2NvdWxkIG5vdCBmaW5kIGNsYXNzIGRlZmluaXRpb24nKQogCiAgICAgaWYgaXNtZXRob2Qob2JqZWN0KToKICAgICAgICAgb2JqZWN0ID0gb2JqZWN0Ll9fZnVuY19fCkBAIC01OTgsMTQgKzU5OCwxNCBAQAogICAgICAgICBvYmplY3QgPSBvYmplY3QuZl9jb2RlCiAgICAgaWYgaXNjb2RlKG9iamVjdCk6CiAgICAgICAgIGlmIG5vdCBoYXNhdHRyKG9iamVjdCwgJ2NvX2ZpcnN0bGluZW5vJyk6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKCdjb3VsZCBub3QgZmluZCBmdW5jdGlvbiBkZWZpbml0aW9uJykKKyAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoJ2NvdWxkIG5vdCBmaW5kIGZ1bmN0aW9uIGRlZmluaXRpb24nKQogICAgICAgICBsbnVtID0gb2JqZWN0LmNvX2ZpcnN0bGluZW5vIC0gMQogICAgICAgICBwYXQgPSByZS5jb21waWxlKHInXihccypkZWZccyl8KC4qKD88IVx3KWxhbWJkYSg6fFxzKSl8XihccypAKScpCiAgICAgICAgIHdoaWxlIGxudW0gPiAwOgogICAgICAgICAgICAgaWYgcGF0Lm1hdGNoKGxpbmVzW2xudW1dKTogYnJlYWsKICAgICAgICAgICAgIGxudW0gPSBsbnVtIC0gMQogICAgICAgICByZXR1cm4gbGluZXMsIGxudW0KLSAgICByYWlzZSBJT0Vycm9yKCdjb3VsZCBub3QgZmluZCBjb2RlIG9iamVjdCcpCisgICAgcmFpc2UgT1NFcnJvcignY291bGQgbm90IGZpbmQgY29kZSBvYmplY3QnKQogCiBkZWYgZ2V0Y29tbWVudHMob2JqZWN0KToKICAgICAiIiJHZXQgbGluZXMgb2YgY29tbWVudHMgaW1tZWRpYXRlbHkgcHJlY2VkaW5nIGFuIG9iamVjdCdzIHNvdXJjZSBjb2RlLgpAQCAtNjE0LDcgKzYxNCw3IEBACiAgICAgIiIiCiAgICAgdHJ5OgogICAgICAgICBsaW5lcywgbG51bSA9IGZpbmRzb3VyY2Uob2JqZWN0KQotICAgIGV4Y2VwdCAoSU9FcnJvciwgVHlwZUVycm9yKToKKyAgICBleGNlcHQgKE9TRXJyb3IsIFR5cGVFcnJvcik6CiAgICAgICAgIHJldHVybiBOb25lCiAKICAgICBpZiBpc21vZHVsZShvYmplY3QpOgpAQCAtNzEwLDcgKzcxMCw3IEBACiAgICAgVGhlIGFyZ3VtZW50IG1heSBiZSBhIG1vZHVsZSwgY2xhc3MsIG1ldGhvZCwgZnVuY3Rpb24sIHRyYWNlYmFjaywgZnJhbWUsCiAgICAgb3IgY29kZSBvYmplY3QuICBUaGUgc291cmNlIGNvZGUgaXMgcmV0dXJuZWQgYXMgYSBsaXN0IG9mIHRoZSBsaW5lcwogICAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG9iamVjdCBhbmQgdGhlIGxpbmUgbnVtYmVyIGluZGljYXRlcyB3aGVyZSBpbiB0aGUKLSAgICBvcmlnaW5hbCBzb3VyY2UgZmlsZSB0aGUgZmlyc3QgbGluZSBvZiBjb2RlIHdhcyBmb3VuZC4gIEFuIElPRXJyb3IgaXMKKyAgICBvcmlnaW5hbCBzb3VyY2UgZmlsZSB0aGUgZmlyc3QgbGluZSBvZiBjb2RlIHdhcyBmb3VuZC4gIEFuIE9TRXJyb3IgaXMKICAgICByYWlzZWQgaWYgdGhlIHNvdXJjZSBjb2RlIGNhbm5vdCBiZSByZXRyaWV2ZWQuIiIiCiAgICAgbGluZXMsIGxudW0gPSBmaW5kc291cmNlKG9iamVjdCkKIApAQCAtNzIyLDcgKzcyMiw3IEBACiAKICAgICBUaGUgYXJndW1lbnQgbWF5IGJlIGEgbW9kdWxlLCBjbGFzcywgbWV0aG9kLCBmdW5jdGlvbiwgdHJhY2ViYWNrLCBmcmFtZSwKICAgICBvciBjb2RlIG9iamVjdC4gIFRoZSBzb3VyY2UgY29kZSBpcyByZXR1cm5lZCBhcyBhIHNpbmdsZSBzdHJpbmcuICBBbgotICAgIElPRXJyb3IgaXMgcmFpc2VkIGlmIHRoZSBzb3VyY2UgY29kZSBjYW5ub3QgYmUgcmV0cmlldmVkLiIiIgorICAgIE9TRXJyb3IgaXMgcmFpc2VkIGlmIHRoZSBzb3VyY2UgY29kZSBjYW5ub3QgYmUgcmV0cmlldmVkLiIiIgogICAgIGxpbmVzLCBsbnVtID0gZ2V0c291cmNlbGluZXMob2JqZWN0KQogICAgIHJldHVybiAnJy5qb2luKGxpbmVzKQogCkBAIC0xMTIyLDcgKzExMjIsNyBAQAogICAgICAgICBzdGFydCA9IGxpbmVubyAtIDEgLSBjb250ZXh0Ly8yCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGxpbmVzLCBsbnVtID0gZmluZHNvdXJjZShmcmFtZSkKLSAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgbGluZXMgPSBpbmRleCA9IE5vbmUKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHN0YXJ0ID0gbWF4KHN0YXJ0LCAxKQpkaWZmIC0tZ2l0IGEvTGliL2lvLnB5IGIvTGliL2lvLnB5CmluZGV4IGJkYTRkZWYuLjM5ODc4YjggMTAwNjQ0Ci0tLSBhL0xpYi9pby5weQorKysgYi9MaWIvaW8ucHkKQEAgLTQsNyArNCw3IEBACiBBdCB0aGUgdG9wIG9mIHRoZSBJL08gaGllcmFyY2h5IGlzIHRoZSBhYnN0cmFjdCBiYXNlIGNsYXNzIElPQmFzZS4gSXQKIGRlZmluZXMgdGhlIGJhc2ljIGludGVyZmFjZSB0byBhIHN0cmVhbS4gTm90ZSwgaG93ZXZlciwgdGhhdCB0aGVyZSBpcyBubwogc2VwYXJhdGlvbiBiZXR3ZWVuIHJlYWRpbmcgYW5kIHdyaXRpbmcgdG8gc3RyZWFtczsgaW1wbGVtZW50YXRpb25zIGFyZQotYWxsb3dlZCB0byByYWlzZSBhbiBJT0Vycm9yIGlmIHRoZXkgZG8gbm90IHN1cHBvcnQgYSBnaXZlbiBvcGVyYXRpb24uCithbGxvd2VkIHRvIHJhaXNlIGFuIE9TRXJyb3IgaWYgdGhleSBkbyBub3Qgc3VwcG9ydCBhIGdpdmVuIG9wZXJhdGlvbi4KIAogRXh0ZW5kaW5nIElPQmFzZSBpcyBSYXdJT0Jhc2Ugd2hpY2ggZGVhbHMgc2ltcGx5IHdpdGggdGhlIHJlYWRpbmcgYW5kCiB3cml0aW5nIG9mIHJhdyBieXRlcyB0byBhIHN0cmVhbS4gRmlsZUlPIHN1YmNsYXNzZXMgUmF3SU9CYXNlIHRvIHByb3ZpZGUKZGlmZiAtLWdpdCBhL0xpYi9qc29uL19faW5pdF9fLnB5IGIvTGliL2pzb24vX19pbml0X18ucHkKaW5kZXggNDhhNGY4Zi4uM2Y5NWNjMyAxMDA2NDQKLS0tIGEvTGliL2pzb24vX19pbml0X18ucHkKKysrIGIvTGliL2pzb24vX19pbml0X18ucHkKQEAgLTM5LDggKzM5LDcgQEAKIFByZXR0eSBwcmludGluZzo6CiAKICAgICA+Pj4gaW1wb3J0IGpzb24KLSAgICA+Pj4gcHJpbnQoanNvbi5kdW1wcyh7JzQnOiA1LCAnNic6IDd9LCBzb3J0X2tleXM9VHJ1ZSwKLSAgICAuLi4gICAgICAgICAgICAgICAgICBpbmRlbnQ9NCwgc2VwYXJhdG9ycz0oJywnLCAnOiAnKSkpCisgICAgPj4+IHByaW50KGpzb24uZHVtcHMoeyc0JzogNSwgJzYnOiA3fSwgc29ydF9rZXlzPVRydWUsIGluZGVudD00KSkKICAgICB7CiAgICAgICAgICI0IjogNSwKICAgICAgICAgIjYiOiA3CkBAIC0xNDYsMTMgKzE0NSwxMiBAQAogICAgIElmIGBgaW5kZW50YGAgaXMgYSBub24tbmVnYXRpdmUgaW50ZWdlciwgdGhlbiBKU09OIGFycmF5IGVsZW1lbnRzIGFuZAogICAgIG9iamVjdCBtZW1iZXJzIHdpbGwgYmUgcHJldHR5LXByaW50ZWQgd2l0aCB0aGF0IGluZGVudCBsZXZlbC4gQW4gaW5kZW50CiAgICAgbGV2ZWwgb2YgMCB3aWxsIG9ubHkgaW5zZXJ0IG5ld2xpbmVzLiBgYE5vbmVgYCBpcyB0aGUgbW9zdCBjb21wYWN0Ci0gICAgcmVwcmVzZW50YXRpb24uICBTaW5jZSB0aGUgZGVmYXVsdCBpdGVtIHNlcGFyYXRvciBpcyBgYCcsICdgYCwgIHRoZQotICAgIG91dHB1dCBtaWdodCBpbmNsdWRlIHRyYWlsaW5nIHdoaXRlc3BhY2Ugd2hlbiBgYGluZGVudGBgIGlzIHNwZWNpZmllZC4KLSAgICBZb3UgY2FuIHVzZSBgYHNlcGFyYXRvcnM9KCcsJywgJzogJylgYCB0byBhdm9pZCB0aGlzLgorICAgIHJlcHJlc2VudGF0aW9uLgogCi0gICAgSWYgYGBzZXBhcmF0b3JzYGAgaXMgYW4gYGAoaXRlbV9zZXBhcmF0b3IsIGRpY3Rfc2VwYXJhdG9yKWBgIHR1cGxlCi0gICAgdGhlbiBpdCB3aWxsIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBgYCgnLCAnLCAnOiAnKWBgIHNlcGFyYXRvcnMuCi0gICAgYGAoJywnLCAnOicpYGAgaXMgdGhlIG1vc3QgY29tcGFjdCBKU09OIHJlcHJlc2VudGF0aW9uLgorICAgIElmIHNwZWNpZmllZCwgYGBzZXBhcmF0b3JzYGAgc2hvdWxkIGJlIGFuIGBgKGl0ZW1fc2VwYXJhdG9yLCBrZXlfc2VwYXJhdG9yKWBgCisgICAgdHVwbGUuICBUaGUgZGVmYXVsdCBpcyBgYCgnLCAnLCAnOiAnKWBgIGlmICppbmRlbnQqIGlzIGBgTm9uZWBgIGFuZAorICAgIGBgKCcsJywgJzogJylgYCBvdGhlcndpc2UuICBUbyBnZXQgdGhlIG1vc3QgY29tcGFjdCBKU09OIHJlcHJlc2VudGF0aW9uLAorICAgIHlvdSBzaG91bGQgc3BlY2lmeSBgYCgnLCcsICc6JylgYCB0byBlbGltaW5hdGUgd2hpdGVzcGFjZS4KIAogICAgIGBgZGVmYXVsdChvYmopYGAgaXMgYSBmdW5jdGlvbiB0aGF0IHNob3VsZCByZXR1cm4gYSBzZXJpYWxpemFibGUgdmVyc2lvbgogICAgIG9mIG9iaiBvciByYWlzZSBUeXBlRXJyb3IuIFRoZSBkZWZhdWx0IHNpbXBseSByYWlzZXMgVHlwZUVycm9yLgpAQCAtMjA5LDEzICsyMDcsMTIgQEAKICAgICBJZiBgYGluZGVudGBgIGlzIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIsIHRoZW4gSlNPTiBhcnJheSBlbGVtZW50cyBhbmQKICAgICBvYmplY3QgbWVtYmVycyB3aWxsIGJlIHByZXR0eS1wcmludGVkIHdpdGggdGhhdCBpbmRlbnQgbGV2ZWwuIEFuIGluZGVudAogICAgIGxldmVsIG9mIDAgd2lsbCBvbmx5IGluc2VydCBuZXdsaW5lcy4gYGBOb25lYGAgaXMgdGhlIG1vc3QgY29tcGFjdAotICAgIHJlcHJlc2VudGF0aW9uLiAgU2luY2UgdGhlIGRlZmF1bHQgaXRlbSBzZXBhcmF0b3IgaXMgYGAnLCAnYGAsICB0aGUKLSAgICBvdXRwdXQgbWlnaHQgaW5jbHVkZSB0cmFpbGluZyB3aGl0ZXNwYWNlIHdoZW4gYGBpbmRlbnRgYCBpcyBzcGVjaWZpZWQuCi0gICAgWW91IGNhbiB1c2UgYGBzZXBhcmF0b3JzPSgnLCcsICc6ICcpYGAgdG8gYXZvaWQgdGhpcy4KKyAgICByZXByZXNlbnRhdGlvbi4KIAotICAgIElmIGBgc2VwYXJhdG9yc2BgIGlzIGFuIGBgKGl0ZW1fc2VwYXJhdG9yLCBkaWN0X3NlcGFyYXRvcilgYCB0dXBsZQotICAgIHRoZW4gaXQgd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYGAoJywgJywgJzogJylgYCBzZXBhcmF0b3JzLgotICAgIGBgKCcsJywgJzonKWBgIGlzIHRoZSBtb3N0IGNvbXBhY3QgSlNPTiByZXByZXNlbnRhdGlvbi4KKyAgICBJZiBzcGVjaWZpZWQsIGBgc2VwYXJhdG9yc2BgIHNob3VsZCBiZSBhbiBgYChpdGVtX3NlcGFyYXRvciwga2V5X3NlcGFyYXRvcilgYAorICAgIHR1cGxlLiAgVGhlIGRlZmF1bHQgaXMgYGAoJywgJywgJzogJylgYCBpZiAqaW5kZW50KiBpcyBgYE5vbmVgYCBhbmQKKyAgICBgYCgnLCcsICc6ICcpYGAgb3RoZXJ3aXNlLiAgVG8gZ2V0IHRoZSBtb3N0IGNvbXBhY3QgSlNPTiByZXByZXNlbnRhdGlvbiwKKyAgICB5b3Ugc2hvdWxkIHNwZWNpZnkgYGAoJywnLCAnOicpYGAgdG8gZWxpbWluYXRlIHdoaXRlc3BhY2UuCiAKICAgICBgYGRlZmF1bHQob2JqKWBgIGlzIGEgZnVuY3Rpb24gdGhhdCBzaG91bGQgcmV0dXJuIGEgc2VyaWFsaXphYmxlIHZlcnNpb24KICAgICBvZiBvYmogb3IgcmFpc2UgVHlwZUVycm9yLiBUaGUgZGVmYXVsdCBzaW1wbHkgcmFpc2VzIFR5cGVFcnJvci4KZGlmZiAtLWdpdCBhL0xpYi9qc29uL2RlY29kZXIucHkgYi9MaWIvanNvbi9kZWNvZGVyLnB5CmluZGV4IDUxYzNhYTcuLmRhN2VmOWMgMTAwNjQ0Ci0tLSBhL0xpYi9qc29uL2RlY29kZXIucHkKKysrIGIvTGliL2pzb24vZGVjb2Rlci5weQpAQCAtMSw5ICsxLDYgQEAKICIiIkltcGxlbWVudGF0aW9uIG9mIEpTT05EZWNvZGVyCiAiIiIKLWltcG9ydCBiaW5hc2NpaQogaW1wb3J0IHJlCi1pbXBvcnQgc3lzCi1pbXBvcnQgc3RydWN0CiAKIGZyb20ganNvbiBpbXBvcnQgc2Nhbm5lcgogdHJ5OgpAQCAtMTUsMTQgKzEyLDkgQEAKIAogRkxBR1MgPSByZS5WRVJCT1NFIHwgcmUuTVVMVElMSU5FIHwgcmUuRE9UQUxMCiAKLWRlZiBfZmxvYXRjb25zdGFudHMoKToKLSAgICBfQllURVMgPSBiaW5hc2NpaS51bmhleGxpZnkoYic3RkY4MDAwMDAwMDAwMDAwN0ZGMDAwMDAwMDAwMDAwMCcpCi0gICAgaWYgc3lzLmJ5dGVvcmRlciAhPSAnYmlnJzoKLSAgICAgICAgX0JZVEVTID0gX0JZVEVTWzo4XVs6Oi0xXSArIF9CWVRFU1s4Ol1bOjotMV0KLSAgICBuYW4sIGluZiA9IHN0cnVjdC51bnBhY2soJ2RkJywgX0JZVEVTKQotICAgIHJldHVybiBuYW4sIGluZiwgLWluZgotCi1OYU4sIFBvc0luZiwgTmVnSW5mID0gX2Zsb2F0Y29uc3RhbnRzKCkKK05hTiA9IGZsb2F0KCduYW4nKQorUG9zSW5mID0gZmxvYXQoJ2luZicpCitOZWdJbmYgPSBmbG9hdCgnLWluZicpCiAKIAogZGVmIGxpbmVjb2woZG9jLCBwb3MpOgpAQCAtMTk2LDggKzE4OCw4IEBACiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgdmFsdWUsIGVuZCA9IHNjYW5fb25jZShzLCBlbmQpCi0gICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihlcnJtc2coIkV4cGVjdGluZyBvYmplY3QiLCBzLCBlbmQpKQorICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbiBhcyBlcnI6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGVycm1zZygiRXhwZWN0aW5nIHZhbHVlIiwgcywgZXJyLnZhbHVlKSkgZnJvbSBOb25lCiAgICAgICAgIHBhaXJzX2FwcGVuZCgoa2V5LCB2YWx1ZSkpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG5leHRjaGFyID0gc1tlbmRdCkBAIC0yNDAsOCArMjMyLDggQEAKICAgICB3aGlsZSBUcnVlOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICB2YWx1ZSwgZW5kID0gc2Nhbl9vbmNlKHMsIGVuZCkKLSAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGVycm1zZygiRXhwZWN0aW5nIG9iamVjdCIsIHMsIGVuZCkpCisgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uIGFzIGVycjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZXJybXNnKCJFeHBlY3RpbmcgdmFsdWUiLCBzLCBlcnIudmFsdWUpKSBmcm9tIE5vbmUKICAgICAgICAgX2FwcGVuZCh2YWx1ZSkKICAgICAgICAgbmV4dGNoYXIgPSBzW2VuZDplbmQgKyAxXQogICAgICAgICBpZiBuZXh0Y2hhciBpbiBfd3M6CkBAIC0yNTEsNyArMjQzLDcgQEAKICAgICAgICAgaWYgbmV4dGNoYXIgPT0gJ10nOgogICAgICAgICAgICAgYnJlYWsKICAgICAgICAgZWxpZiBuZXh0Y2hhciAhPSAnLCc6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGVycm1zZygiRXhwZWN0aW5nICcsJyBkZWxpbWl0ZXIiLCBzLCBlbmQpKQorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihlcnJtc2coIkV4cGVjdGluZyAnLCcgZGVsaW1pdGVyIiwgcywgZW5kIC0gMSkpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGlmIHNbZW5kXSBpbiBfd3M6CiAgICAgICAgICAgICAgICAgZW5kICs9IDEKQEAgLTM2Niw2ICszNTgsNiBAQAogICAgICAgICAiIiIKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgb2JqLCBlbmQgPSBzZWxmLnNjYW5fb25jZShzLCBpZHgpCi0gICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gSlNPTiBvYmplY3QgY291bGQgYmUgZGVjb2RlZCIpCisgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uIGFzIGVycjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZXJybXNnKCJFeHBlY3RpbmcgdmFsdWUiLCBzLCBlcnIudmFsdWUpKSBmcm9tIE5vbmUKICAgICAgICAgcmV0dXJuIG9iaiwgZW5kCmRpZmYgLS1naXQgYS9MaWIvanNvbi9lbmNvZGVyLnB5IGIvTGliL2pzb24vZW5jb2Rlci5weQppbmRleCAxZDhiMjBjLi4zOWI1NTBkIDEwMDY0NAotLS0gYS9MaWIvanNvbi9lbmNvZGVyLnB5CisrKyBiL0xpYi9qc29uL2VuY29kZXIucHkKQEAgLTEyNSwxNCArMTI1LDEyIEBACiAgICAgICAgIElmIGluZGVudCBpcyBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLCB0aGVuIEpTT04gYXJyYXkKICAgICAgICAgZWxlbWVudHMgYW5kIG9iamVjdCBtZW1iZXJzIHdpbGwgYmUgcHJldHR5LXByaW50ZWQgd2l0aCB0aGF0CiAgICAgICAgIGluZGVudCBsZXZlbC4gIEFuIGluZGVudCBsZXZlbCBvZiAwIHdpbGwgb25seSBpbnNlcnQgbmV3bGluZXMuCi0gICAgICAgIE5vbmUgaXMgdGhlIG1vc3QgY29tcGFjdCByZXByZXNlbnRhdGlvbi4gIFNpbmNlIHRoZSBkZWZhdWx0Ci0gICAgICAgIGl0ZW0gc2VwYXJhdG9yIGlzICcsICcsICB0aGUgb3V0cHV0IG1pZ2h0IGluY2x1ZGUgdHJhaWxpbmcKLSAgICAgICAgd2hpdGVzcGFjZSB3aGVuIGluZGVudCBpcyBzcGVjaWZpZWQuICBZb3UgY2FuIHVzZQotICAgICAgICBzZXBhcmF0b3JzPSgnLCcsICc6ICcpIHRvIGF2b2lkIHRoaXMuCisgICAgICAgIE5vbmUgaXMgdGhlIG1vc3QgY29tcGFjdCByZXByZXNlbnRhdGlvbi4KIAotICAgICAgICBJZiBzcGVjaWZpZWQsIHNlcGFyYXRvcnMgc2hvdWxkIGJlIGEgKGl0ZW1fc2VwYXJhdG9yLCBrZXlfc2VwYXJhdG9yKQotICAgICAgICB0dXBsZS4gIFRoZSBkZWZhdWx0IGlzICgnLCAnLCAnOiAnKS4gIFRvIGdldCB0aGUgbW9zdCBjb21wYWN0IEpTT04KLSAgICAgICAgcmVwcmVzZW50YXRpb24geW91IHNob3VsZCBzcGVjaWZ5ICgnLCcsICc6JykgdG8gZWxpbWluYXRlIHdoaXRlc3BhY2UuCisgICAgICAgIElmIHNwZWNpZmllZCwgc2VwYXJhdG9ycyBzaG91bGQgYmUgYW4gKGl0ZW1fc2VwYXJhdG9yLCBrZXlfc2VwYXJhdG9yKQorICAgICAgICB0dXBsZS4gIFRoZSBkZWZhdWx0IGlzICgnLCAnLCAnOiAnKSBpZiAqaW5kZW50KiBpcyBgYE5vbmVgYCBhbmQKKyAgICAgICAgKCcsJywgJzogJykgb3RoZXJ3aXNlLiAgVG8gZ2V0IHRoZSBtb3N0IGNvbXBhY3QgSlNPTiByZXByZXNlbnRhdGlvbiwKKyAgICAgICAgeW91IHNob3VsZCBzcGVjaWZ5ICgnLCcsICc6JykgdG8gZWxpbWluYXRlIHdoaXRlc3BhY2UuCiAKICAgICAgICAgSWYgc3BlY2lmaWVkLCBkZWZhdWx0IGlzIGEgZnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCBmb3Igb2JqZWN0cwogICAgICAgICB0aGF0IGNhbid0IG90aGVyd2lzZSBiZSBzZXJpYWxpemVkLiAgSXQgc2hvdWxkIHJldHVybiBhIEpTT04gZW5jb2RhYmxlCkBAIC0xNDgsNiArMTQ2LDggQEAKICAgICAgICAgc2VsZi5pbmRlbnQgPSBpbmRlbnQKICAgICAgICAgaWYgc2VwYXJhdG9ycyBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHNlbGYuaXRlbV9zZXBhcmF0b3IsIHNlbGYua2V5X3NlcGFyYXRvciA9IHNlcGFyYXRvcnMKKyAgICAgICAgZWxpZiBpbmRlbnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLml0ZW1fc2VwYXJhdG9yID0gJywnCiAgICAgICAgIGlmIGRlZmF1bHQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBzZWxmLmRlZmF1bHQgPSBkZWZhdWx0CiAKQEAgLTMwOSw4ICszMDksNyBAQAogICAgICAgICAgICAgICAgICAgICBjaHVua3MgPSBfaXRlcmVuY29kZV9kaWN0KHZhbHVlLCBfY3VycmVudF9pbmRlbnRfbGV2ZWwpCiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgY2h1bmtzID0gX2l0ZXJlbmNvZGUodmFsdWUsIF9jdXJyZW50X2luZGVudF9sZXZlbCkKLSAgICAgICAgICAgICAgICBmb3IgY2h1bmsgaW4gY2h1bmtzOgotICAgICAgICAgICAgICAgICAgICB5aWVsZCBjaHVuaworICAgICAgICAgICAgICAgIHlpZWxkIGZyb20gY2h1bmtzCiAgICAgICAgIGlmIG5ld2xpbmVfaW5kZW50IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgX2N1cnJlbnRfaW5kZW50X2xldmVsIC09IDEKICAgICAgICAgICAgIHlpZWxkICdcbicgKyBfaW5kZW50ICogX2N1cnJlbnRfaW5kZW50X2xldmVsCkBAIC0zODUsOCArMzg0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgY2h1bmtzID0gX2l0ZXJlbmNvZGVfZGljdCh2YWx1ZSwgX2N1cnJlbnRfaW5kZW50X2xldmVsKQogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIGNodW5rcyA9IF9pdGVyZW5jb2RlKHZhbHVlLCBfY3VycmVudF9pbmRlbnRfbGV2ZWwpCi0gICAgICAgICAgICAgICAgZm9yIGNodW5rIGluIGNodW5rczoKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgY2h1bmsKKyAgICAgICAgICAgICAgICB5aWVsZCBmcm9tIGNodW5rcwogICAgICAgICBpZiBuZXdsaW5lX2luZGVudCBpcyBub3QgTm9uZToKICAgICAgICAgICAgIF9jdXJyZW50X2luZGVudF9sZXZlbCAtPSAxCiAgICAgICAgICAgICB5aWVsZCAnXG4nICsgX2luZGVudCAqIF9jdXJyZW50X2luZGVudF9sZXZlbApAQCAtNDA4LDExICs0MDYsOSBAQAogICAgICAgICBlbGlmIGlzaW5zdGFuY2UobywgZmxvYXQpOgogICAgICAgICAgICAgeWllbGQgX2Zsb2F0c3RyKG8pCiAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShvLCAobGlzdCwgdHVwbGUpKToKLSAgICAgICAgICAgIGZvciBjaHVuayBpbiBfaXRlcmVuY29kZV9saXN0KG8sIF9jdXJyZW50X2luZGVudF9sZXZlbCk6Ci0gICAgICAgICAgICAgICAgeWllbGQgY2h1bmsKKyAgICAgICAgICAgIHlpZWxkIGZyb20gX2l0ZXJlbmNvZGVfbGlzdChvLCBfY3VycmVudF9pbmRlbnRfbGV2ZWwpCiAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShvLCBkaWN0KToKLSAgICAgICAgICAgIGZvciBjaHVuayBpbiBfaXRlcmVuY29kZV9kaWN0KG8sIF9jdXJyZW50X2luZGVudF9sZXZlbCk6Ci0gICAgICAgICAgICAgICAgeWllbGQgY2h1bmsKKyAgICAgICAgICAgIHlpZWxkIGZyb20gX2l0ZXJlbmNvZGVfZGljdChvLCBfY3VycmVudF9pbmRlbnRfbGV2ZWwpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBpZiBtYXJrZXJzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgIG1hcmtlcmlkID0gaWQobykKQEAgLTQyMCw4ICs0MTYsNyBAQAogICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQiKQogICAgICAgICAgICAgICAgIG1hcmtlcnNbbWFya2VyaWRdID0gbwogICAgICAgICAgICAgbyA9IF9kZWZhdWx0KG8pCi0gICAgICAgICAgICBmb3IgY2h1bmsgaW4gX2l0ZXJlbmNvZGUobywgX2N1cnJlbnRfaW5kZW50X2xldmVsKToKLSAgICAgICAgICAgICAgICB5aWVsZCBjaHVuaworICAgICAgICAgICAgeWllbGQgZnJvbSBfaXRlcmVuY29kZShvLCBfY3VycmVudF9pbmRlbnRfbGV2ZWwpCiAgICAgICAgICAgICBpZiBtYXJrZXJzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgIGRlbCBtYXJrZXJzW21hcmtlcmlkXQogICAgIHJldHVybiBfaXRlcmVuY29kZQpkaWZmIC0tZ2l0IGEvTGliL2pzb24vc2Nhbm5lci5weSBiL0xpYi9qc29uL3NjYW5uZXIucHkKaW5kZXggMjNlZWY2MS4uODY0MjZjZCAxMDA2NDQKLS0tIGEvTGliL2pzb24vc2Nhbm5lci5weQorKysgYi9MaWIvanNvbi9zY2FubmVyLnB5CkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG5leHRjaGFyID0gc3RyaW5nW2lkeF0KICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCisgICAgICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uKGlkeCkKIAogICAgICAgICBpZiBuZXh0Y2hhciA9PSAnIic6CiAgICAgICAgICAgICByZXR1cm4gcGFyc2Vfc3RyaW5nKHN0cmluZywgaWR4ICsgMSwgc3RyaWN0KQpAQCAtNjAsNyArNjAsNyBAQAogICAgICAgICBlbGlmIG5leHRjaGFyID09ICctJyBhbmQgc3RyaW5nW2lkeDppZHggKyA5XSA9PSAnLUluZmluaXR5JzoKICAgICAgICAgICAgIHJldHVybiBwYXJzZV9jb25zdGFudCgnLUluZmluaXR5JyksIGlkeCArIDkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIFN0b3BJdGVyYXRpb24KKyAgICAgICAgICAgIHJhaXNlIFN0b3BJdGVyYXRpb24oaWR4KQogCiAgICAgZGVmIHNjYW5fb25jZShzdHJpbmcsIGlkeCk6CiAgICAgICAgIHRyeToKZGlmZiAtLWdpdCBhL0xpYi9qc29uL3Rvb2wucHkgYi9MaWIvanNvbi90b29sLnB5CmluZGV4IGVjZjljNDcuLjdkYjQ1MjggMTAwNjQ0Ci0tLSBhL0xpYi9qc29uL3Rvb2wucHkKKysrIGIvTGliL2pzb24vdG9vbC5weQpAQCAtMzEsOCArMzEsNyBAQAogICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgogICAgICAgICAgICAgcmFpc2UgU3lzdGVtRXhpdChlKQogICAgIHdpdGggb3V0ZmlsZToKLSAgICAgICAganNvbi5kdW1wKG9iaiwgb3V0ZmlsZSwgc29ydF9rZXlzPVRydWUsCi0gICAgICAgICAgICAgICAgICBpbmRlbnQ9NCwgc2VwYXJhdG9ycz0oJywnLCAnOiAnKSkKKyAgICAgICAganNvbi5kdW1wKG9iaiwgb3V0ZmlsZSwgc29ydF9rZXlzPVRydWUsIGluZGVudD00KQogICAgICAgICBvdXRmaWxlLndyaXRlKCdcbicpCiAKIApkaWZmIC0tZ2l0IGEvTGliL2tleXdvcmQucHkgYi9MaWIva2V5d29yZC5weQppbmRleCBkYWQzOWNjLi42ZTFlODgyIDEwMDc1NQotLS0gYS9MaWIva2V5d29yZC5weQorKysgYi9MaWIva2V5d29yZC5weQpAQCAtNjAsNiArNjAsMTIgQEAKICAgICBpZiBsZW4oYXJncykgPiAxOiBvcHRmaWxlID0gYXJnc1sxXQogICAgIGVsc2U6IG9wdGZpbGUgPSAiTGliL2tleXdvcmQucHkiCiAKKyAgICAjIGxvYWQgdGhlIG91dHB1dCBza2VsZXRvbiBmcm9tIHRoZSB0YXJnZXQsIHRha2luZyBjYXJlIHRvIHByZXNlcnZlIGl0cworICAgICMgbmV3bGluZSBjb252ZW50aW9uLgorICAgIHdpdGggb3BlbihvcHRmaWxlLCBuZXdsaW5lPScnKSBhcyBmcDoKKyAgICAgICAgZm9ybWF0ID0gZnAucmVhZGxpbmVzKCkKKyAgICBubCA9IGZvcm1hdFswXVtsZW4oZm9ybWF0WzBdLnN0cmlwKCkpOl0gaWYgZm9ybWF0IGVsc2UgJ1xuJworCiAgICAgIyBzY2FuIHRoZSBzb3VyY2UgZmlsZSBmb3Iga2V5d29yZHMKICAgICB3aXRoIG9wZW4oaXB0ZmlsZSkgYXMgZnA6CiAgICAgICAgIHN0cnByb2cgPSByZS5jb21waWxlKCciKFteIl0rKSInKQpAQCAtNjgsMjYgKzc0LDIxIEBACiAgICAgICAgICAgICBpZiAnezEsICInIGluIGxpbmU6CiAgICAgICAgICAgICAgICAgbWF0Y2ggPSBzdHJwcm9nLnNlYXJjaChsaW5lKQogICAgICAgICAgICAgICAgIGlmIG1hdGNoOgotICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICAgICAgJyIgKyBtYXRjaC5ncm91cCgxKSArICInLFxuIikKKyAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIgICAgICAgICciICsgbWF0Y2guZ3JvdXAoMSkgKyAiJywiICsgbmwpCiAgICAgbGluZXMuc29ydCgpCiAKLSAgICAjIGxvYWQgdGhlIG91dHB1dCBza2VsZXRvbiBmcm9tIHRoZSB0YXJnZXQKLSAgICB3aXRoIG9wZW4ob3B0ZmlsZSkgYXMgZnA6Ci0gICAgICAgIGZvcm1hdCA9IGZwLnJlYWRsaW5lcygpCi0KLSAgICAjIGluc2VydCB0aGUgbGluZXMgb2Yga2V5d29yZHMKKyAgICAjIGluc2VydCB0aGUgbGluZXMgb2Yga2V5d29yZHMgaW50byB0aGUgc2tlbGV0b24KICAgICB0cnk6Ci0gICAgICAgIHN0YXJ0ID0gZm9ybWF0LmluZGV4KCIjLS1zdGFydCBrZXl3b3Jkcy0tXG4iKSArIDEKLSAgICAgICAgZW5kID0gZm9ybWF0LmluZGV4KCIjLS1lbmQga2V5d29yZHMtLVxuIikKKyAgICAgICAgc3RhcnQgPSBmb3JtYXQuaW5kZXgoIiMtLXN0YXJ0IGtleXdvcmRzLS0iICsgbmwpICsgMQorICAgICAgICBlbmQgPSBmb3JtYXQuaW5kZXgoIiMtLWVuZCBrZXl3b3Jkcy0tIiArIG5sKQogICAgICAgICBmb3JtYXRbc3RhcnQ6ZW5kXSA9IGxpbmVzCiAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoInRhcmdldCBkb2VzIG5vdCBjb250YWluIGZvcm1hdCBtYXJrZXJzXG4iKQogICAgICAgICBzeXMuZXhpdCgxKQogCiAgICAgIyB3cml0ZSB0aGUgb3V0cHV0IGZpbGUKLSAgICBmcCA9IG9wZW4ob3B0ZmlsZSwgJ3cnKQotICAgIGZwLndyaXRlKCcnLmpvaW4oZm9ybWF0KSkKLSAgICBmcC5jbG9zZSgpCisgICAgd2l0aCBvcGVuKG9wdGZpbGUsICd3JywgbmV3bGluZT0nJykgYXMgZnA6CisgICAgICAgIGZwLndyaXRlbGluZXMoZm9ybWF0KQogCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL2xpYjJ0bzMvYnRtX3V0aWxzLnB5IGIvTGliL2xpYjJ0bzMvYnRtX3V0aWxzLnB5CmluZGV4IDIyNzZkYzkuLjMzOTc1MGUgMTAwNjQ0Ci0tLSBhL0xpYi9saWIydG8zL2J0bV91dGlscy5weQorKysgYi9MaWIvbGliMnRvMy9idG1fdXRpbHMucHkKQEAgLTk2LDggKzk2LDcgQEAKICAgICBkZWYgbGVhdmVzKHNlbGYpOgogICAgICAgICAiR2VuZXJhdG9yIHRoYXQgcmV0dXJucyB0aGUgbGVhdmVzIG9mIHRoZSB0cmVlIgogICAgICAgICBmb3IgY2hpbGQgaW4gc2VsZi5jaGlsZHJlbjoKLSAgICAgICAgICAgIGZvciB4IGluIGNoaWxkLmxlYXZlcygpOgotICAgICAgICAgICAgICAgIHlpZWxkIHgKKyAgICAgICAgICAgIHlpZWxkIGZyb20gY2hpbGQubGVhdmVzKCkKICAgICAgICAgaWYgbm90IHNlbGYuY2hpbGRyZW46CiAgICAgICAgICAgICB5aWVsZCBzZWxmCiAKQEAgLTI3Nyw3ICsyNzYsNiBAQAogICAgIHN1Yi1pdGVyYWJsZXMiIiIKICAgICBmb3IgeCBpbiBzZXF1ZW5jZToKICAgICAgICAgaWYgaXNpbnN0YW5jZSh4LCAobGlzdCwgdHVwbGUpKToKLSAgICAgICAgICAgIGZvciB5IGluIHJlY190ZXN0KHgsIHRlc3RfZnVuYyk6Ci0gICAgICAgICAgICAgICAgeWllbGQgeQorICAgICAgICAgICAgeWllbGQgZnJvbSByZWNfdGVzdCh4LCB0ZXN0X2Z1bmMpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB5aWVsZCB0ZXN0X2Z1bmMoeCkKZGlmZiAtLWdpdCBhL0xpYi9saWIydG8zL2ZpeGVyX3V0aWwucHkgYi9MaWIvbGliMnRvMy9maXhlcl91dGlsLnB5CmluZGV4IDYwZDIxOWYuLjZlMjU5YzUgMTAwNjQ0Ci0tLSBhL0xpYi9saWIydG8zL2ZpeGVyX3V0aWwucHkKKysrIGIvTGliL2xpYjJ0bzMvZml4ZXJfdXRpbC5weQpAQCAtMTI5LDYgKzEyOSwyOSBAQAogICAgIGltcCA9IE5vZGUoc3ltcy5pbXBvcnRfZnJvbSwgY2hpbGRyZW4pCiAgICAgcmV0dXJuIGltcAogCitkZWYgSW1wb3J0QW5kQ2FsbChub2RlLCByZXN1bHRzLCBuYW1lcyk6CisgICAgIiIiUmV0dXJucyBhbiBpbXBvcnQgc3RhdGVtZW50IGFuZCBjYWxscyBhIG1ldGhvZAorICAgIG9mIHRoZSBtb2R1bGU6CisKKyAgICBpbXBvcnQgbW9kdWxlCisgICAgbW9kdWxlLm5hbWUoKSIiIgorICAgIG9iaiA9IHJlc3VsdHNbIm9iaiJdLmNsb25lKCkKKyAgICBpZiBvYmoudHlwZSA9PSBzeW1zLmFyZ2xpc3Q6CisgICAgICAgIG5ld2FyZ2xpc3QgPSBvYmouY2xvbmUoKQorICAgIGVsc2U6CisgICAgICAgIG5ld2FyZ2xpc3QgPSBOb2RlKHN5bXMuYXJnbGlzdCwgW29iai5jbG9uZSgpXSkKKyAgICBhZnRlciA9IHJlc3VsdHNbImFmdGVyIl0KKyAgICBpZiBhZnRlcjoKKyAgICAgICAgYWZ0ZXIgPSBbbi5jbG9uZSgpIGZvciBuIGluIGFmdGVyXQorICAgIG5ldyA9IE5vZGUoc3ltcy5wb3dlciwKKyAgICAgICAgICAgICAgIEF0dHIoTmFtZShuYW1lc1swXSksIE5hbWUobmFtZXNbMV0pKSArCisgICAgICAgICAgICAgICBbTm9kZShzeW1zLnRyYWlsZXIsCisgICAgICAgICAgICAgICAgICAgICBbcmVzdWx0c1sibHBhciJdLmNsb25lKCksCisgICAgICAgICAgICAgICAgICAgICAgbmV3YXJnbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzWyJycGFyIl0uY2xvbmUoKV0pXSArIGFmdGVyKQorICAgIG5ldy5wcmVmaXggPSBub2RlLnByZWZpeAorICAgIHJldHVybiBuZXcKKwogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMjIERldGVybWluZSB3aGV0aGVyIGEgbm9kZSByZXByZXNlbnRzIGEgZ2l2ZW4gbGl0ZXJhbApkaWZmIC0tZ2l0IGEvTGliL2xpYjJ0bzMvZml4ZXMvZml4X2ludGVybi5weSBiL0xpYi9saWIydG8zL2ZpeGVzL2ZpeF9pbnRlcm4ucHkKaW5kZXggNmJlMTFjZC4uZmIyOTczYyAxMDA2NDQKLS0tIGEvTGliL2xpYjJ0bzMvZml4ZXMvZml4X2ludGVybi5weQorKysgYi9MaWIvbGliMnRvMy9maXhlcy9maXhfaW50ZXJuLnB5CkBAIC02LDkgKzYsOCBAQAogaW50ZXJuKHMpIC0+IHN5cy5pbnRlcm4ocykiIiIKIAogIyBMb2NhbCBpbXBvcnRzCi1mcm9tIC4uIGltcG9ydCBweXRyZWUKIGZyb20gLi4gaW1wb3J0IGZpeGVyX2Jhc2UKLWZyb20gLi5maXhlcl91dGlsIGltcG9ydCBOYW1lLCBBdHRyLCB0b3VjaF9pbXBvcnQKK2Zyb20gLi5maXhlcl91dGlsIGltcG9ydCBJbXBvcnRBbmRDYWxsLCB0b3VjaF9pbXBvcnQKIAogCiBjbGFzcyBGaXhJbnRlcm4oZml4ZXJfYmFzZS5CYXNlRml4KToKQEAgLTI2LDIxICsyNSw3IEBACiAgICAgIiIiCiAKICAgICBkZWYgdHJhbnNmb3JtKHNlbGYsIG5vZGUsIHJlc3VsdHMpOgotICAgICAgICBzeW1zID0gc2VsZi5zeW1zCi0gICAgICAgIG9iaiA9IHJlc3VsdHNbIm9iaiJdLmNsb25lKCkKLSAgICAgICAgaWYgb2JqLnR5cGUgPT0gc3ltcy5hcmdsaXN0OgotICAgICAgICAgICAgbmV3YXJnbGlzdCA9IG9iai5jbG9uZSgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBuZXdhcmdsaXN0ID0gcHl0cmVlLk5vZGUoc3ltcy5hcmdsaXN0LCBbb2JqLmNsb25lKCldKQotICAgICAgICBhZnRlciA9IHJlc3VsdHNbImFmdGVyIl0KLSAgICAgICAgaWYgYWZ0ZXI6Ci0gICAgICAgICAgICBhZnRlciA9IFtuLmNsb25lKCkgZm9yIG4gaW4gYWZ0ZXJdCi0gICAgICAgIG5ldyA9IHB5dHJlZS5Ob2RlKHN5bXMucG93ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHIoTmFtZSgic3lzIiksIE5hbWUoImludGVybiIpKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFtweXRyZWUuTm9kZShzeW1zLnRyYWlsZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVzdWx0c1sibHBhciJdLmNsb25lKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3YXJnbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzWyJycGFyIl0uY2xvbmUoKV0pXSArIGFmdGVyKQotICAgICAgICBuZXcucHJlZml4ID0gbm9kZS5wcmVmaXgKKyAgICAgICAgbmFtZXMgPSAoJ3N5cycsICdpbnRlcm4nKQorICAgICAgICBuZXcgPSBJbXBvcnRBbmRDYWxsKG5vZGUsIHJlc3VsdHMsIG5hbWVzKQogICAgICAgICB0b3VjaF9pbXBvcnQoTm9uZSwgJ3N5cycsIG5vZGUpCiAgICAgICAgIHJldHVybiBuZXcKZGlmZiAtLWdpdCBhL0xpYi9saWIydG8zL2ZpeGVzL2ZpeF9yZWxvYWQucHkgYi9MaWIvbGliMnRvMy9maXhlcy9maXhfcmVsb2FkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NTUzNTcKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvbGliMnRvMy9maXhlcy9maXhfcmVsb2FkLnB5CkBAIC0wLDAgKzEsMjggQEAKKyIiIkZpeGVyIGZvciByZWxvYWQoKS4KKworcmVsb2FkKHMpIC0+IGltcC5yZWxvYWQocykiIiIKKworIyBMb2NhbCBpbXBvcnRzCitmcm9tIC4uIGltcG9ydCBmaXhlcl9iYXNlCitmcm9tIC4uZml4ZXJfdXRpbCBpbXBvcnQgSW1wb3J0QW5kQ2FsbCwgdG91Y2hfaW1wb3J0CisKKworY2xhc3MgRml4UmVsb2FkKGZpeGVyX2Jhc2UuQmFzZUZpeCk6CisgICAgQk1fY29tcGF0aWJsZSA9IFRydWUKKyAgICBvcmRlciA9ICJwcmUiCisKKyAgICBQQVRURVJOID0gIiIiCisgICAgcG93ZXI8ICdyZWxvYWQnCisgICAgICAgICAgIHRyYWlsZXI8IGxwYXI9JygnCisgICAgICAgICAgICAgICAgICAgICggbm90KGFyZ2xpc3QgfCBhcmd1bWVudDxhbnkgJz0nIGFueT4pIG9iaj1hbnkKKyAgICAgICAgICAgICAgICAgICAgICB8IG9iaj1hcmdsaXN0PChub3QgYXJndW1lbnQ8YW55ICc9JyBhbnk+KSBhbnkgJywnPiApCisgICAgICAgICAgICAgICAgICAgIHJwYXI9JyknID4KKyAgICAgICAgICAgYWZ0ZXI9YW55KgorICAgID4KKyAgICAiIiIKKworICAgIGRlZiB0cmFuc2Zvcm0oc2VsZiwgbm9kZSwgcmVzdWx0cyk6CisgICAgICAgIG5hbWVzID0gKCdpbXAnLCAncmVsb2FkJykKKyAgICAgICAgbmV3ID0gSW1wb3J0QW5kQ2FsbChub2RlLCByZXN1bHRzLCBuYW1lcykKKyAgICAgICAgdG91Y2hfaW1wb3J0KE5vbmUsICdpbXAnLCBub2RlKQorICAgICAgICByZXR1cm4gbmV3CmRpZmYgLS1naXQgYS9MaWIvbGliMnRvMy9tYWluLnB5IGIvTGliL2xpYjJ0bzMvbWFpbi5weQppbmRleCBmOWNjMThiLi45M2JhZTkwIDEwMDY0NAotLS0gYS9MaWIvbGliMnRvMy9tYWluLnB5CisrKyBiL0xpYi9saWIydG8zL21haW4ucHkKQEAgLTkwLDExICs5MCwxMSBAQAogICAgICAgICAgICAgaWYgb3MucGF0aC5sZXhpc3RzKGJhY2t1cCk6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBvcy5yZW1vdmUoYmFja3VwKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBvcy5lcnJvciBhcyBlcnI6CisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ19tZXNzYWdlKCJDYW4ndCByZW1vdmUgYmFja3VwICVzIiwgYmFja3VwKQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIG9zLnJlbmFtZShmaWxlbmFtZSwgYmFja3VwKQotICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yIGFzIGVycjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgICAgICAgICBzZWxmLmxvZ19tZXNzYWdlKCJDYW4ndCByZW5hbWUgJXMgdG8gJXMiLCBmaWxlbmFtZSwgYmFja3VwKQogICAgICAgICAjIEFjdHVhbGx5IHdyaXRlIHRoZSBuZXcgZmlsZQogICAgICAgICB3cml0ZSA9IHN1cGVyKFN0ZG91dFJlZmFjdG9yaW5nVG9vbCwgc2VsZikud3JpdGVfZmlsZQpkaWZmIC0tZ2l0IGEvTGliL2xpYjJ0bzMvcGdlbjIvY29udi5weSBiL0xpYi9saWIydG8zL3BnZW4yL2NvbnYucHkKaW5kZXggYmY0OTc2Mi4uZWQwY2FjNSAxMDA2NDQKLS0tIGEvTGliL2xpYjJ0bzMvcGdlbjIvY29udi5weQorKysgYi9MaWIvbGliMnRvMy9wZ2VuMi9jb252LnB5CkBAIC02MCw3ICs2MCw3IEBACiAgICAgICAgICIiIgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBmID0gb3BlbihmaWxlbmFtZSkKLSAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlcnI6CiAgICAgICAgICAgICBwcmludCgiQ2FuJ3Qgb3BlbiAlczogJXMiICUgKGZpbGVuYW1lLCBlcnIpKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIHNlbGYuc3ltYm9sMm51bWJlciA9IHt9CkBAIC0xMTEsNyArMTExLDcgQEAKICAgICAgICAgIiIiCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGYgPSBvcGVuKGZpbGVuYW1lKQotICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlcnI6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgICAgIHByaW50KCJDYW4ndCBvcGVuICVzOiAlcyIgJSAoZmlsZW5hbWUsIGVycikpCiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgIyBUaGUgY29kZSBiZWxvdyBlc3NlbnRpYWxseSB1c2VzIGYncyBpdGVyYXRvci1uZXNzIQpkaWZmIC0tZ2l0IGEvTGliL2xpYjJ0bzMvcGdlbjIvZHJpdmVyLnB5IGIvTGliL2xpYjJ0bzMvcGdlbjIvZHJpdmVyLnB5CmluZGV4IDRjNjExYzYuLjNjY2M2OWQgMTAwNjQ0Ci0tLSBhL0xpYi9saWIydG8zL3BnZW4yL2RyaXZlci5weQorKysgYi9MaWIvbGliMnRvMy9wZ2VuMi9kcml2ZXIucHkKQEAgLTEyMyw3ICsxMjMsNyBAQAogICAgICAgICAgICAgbG9nZ2VyLmluZm8oIldyaXRpbmcgZ3JhbW1hciB0YWJsZXMgdG8gJXMiLCBncCkKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBnLmR1bXAoZ3ApCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiV3JpdGluZyBmYWlsZWQ6IitzdHIoZSkpCiAgICAgZWxzZToKICAgICAgICAgZyA9IGdyYW1tYXIuR3JhbW1hcigpCmRpZmYgLS1naXQgYS9MaWIvbGliMnRvMy9wZ2VuMi9ncmFtbWFyLnB5IGIvTGliL2xpYjJ0bzMvcGdlbjIvZ3JhbW1hci5weQppbmRleCAxNGM1ZjcwLi43ZjFjNTY0IDEwMDY0NAotLS0gYS9MaWIvbGliMnRvMy9wZ2VuMi9ncmFtbWFyLnB5CisrKyBiL0xpYi9saWIydG8zL3BnZW4yL2dyYW1tYXIucHkKQEAgLTg2LDE1ICs4NiwxMyBAQAogCiAgICAgZGVmIGR1bXAoc2VsZiwgZmlsZW5hbWUpOgogICAgICAgICAiIiJEdW1wIHRoZSBncmFtbWFyIHRhYmxlcyB0byBhIHBpY2tsZSBmaWxlLiIiIgotICAgICAgICBmID0gb3BlbihmaWxlbmFtZSwgIndiIikKLSAgICAgICAgcGlja2xlLmR1bXAoc2VsZi5fX2RpY3RfXywgZiwgMikKLSAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIHdpdGggb3BlbihmaWxlbmFtZSwgIndiIikgYXMgZjoKKyAgICAgICAgICAgIHBpY2tsZS5kdW1wKHNlbGYuX19kaWN0X18sIGYsIDIpCiAKICAgICBkZWYgbG9hZChzZWxmLCBmaWxlbmFtZSk6CiAgICAgICAgICIiIkxvYWQgdGhlIGdyYW1tYXIgdGFibGVzIGZyb20gYSBwaWNrbGUgZmlsZS4iIiIKLSAgICAgICAgZiA9IG9wZW4oZmlsZW5hbWUsICJyYiIpCi0gICAgICAgIGQgPSBwaWNrbGUubG9hZChmKQotICAgICAgICBmLmNsb3NlKCkKKyAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgZCA9IHBpY2tsZS5sb2FkKGYpCiAgICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGQpCiAKICAgICBkZWYgY29weShzZWxmKToKZGlmZiAtLWdpdCBhL0xpYi9saWIydG8zL3B5dHJlZS5weSBiL0xpYi9saWIydG8zL3B5dHJlZS5weQppbmRleCAxN2NiZjBhLi5jNGExYmUzIDEwMDY0NAotLS0gYS9MaWIvbGliMnRvMy9weXRyZWUucHkKKysrIGIvTGliL2xpYjJ0bzMvcHl0cmVlLnB5CkBAIC0xOTQsOCArMTk0LDcgQEAKIAogICAgIGRlZiBsZWF2ZXMoc2VsZik6CiAgICAgICAgIGZvciBjaGlsZCBpbiBzZWxmLmNoaWxkcmVuOgotICAgICAgICAgICAgZm9yIHggaW4gY2hpbGQubGVhdmVzKCk6Ci0gICAgICAgICAgICAgICAgeWllbGQgeAorICAgICAgICAgICAgeWllbGQgZnJvbSBjaGlsZC5sZWF2ZXMoKQogCiAgICAgZGVmIGRlcHRoKHNlbGYpOgogICAgICAgICBpZiBzZWxmLnBhcmVudCBpcyBOb25lOgpAQCAtMjc0LDE2ICsyNzMsMTQgQEAKICAgICBkZWYgcG9zdF9vcmRlcihzZWxmKToKICAgICAgICAgIiIiUmV0dXJuIGEgcG9zdC1vcmRlciBpdGVyYXRvciBmb3IgdGhlIHRyZWUuIiIiCiAgICAgICAgIGZvciBjaGlsZCBpbiBzZWxmLmNoaWxkcmVuOgotICAgICAgICAgICAgZm9yIG5vZGUgaW4gY2hpbGQucG9zdF9vcmRlcigpOgotICAgICAgICAgICAgICAgIHlpZWxkIG5vZGUKKyAgICAgICAgICAgIHlpZWxkIGZyb20gY2hpbGQucG9zdF9vcmRlcigpCiAgICAgICAgIHlpZWxkIHNlbGYKIAogICAgIGRlZiBwcmVfb3JkZXIoc2VsZik6CiAgICAgICAgICIiIlJldHVybiBhIHByZS1vcmRlciBpdGVyYXRvciBmb3IgdGhlIHRyZWUuIiIiCiAgICAgICAgIHlpZWxkIHNlbGYKICAgICAgICAgZm9yIGNoaWxkIGluIHNlbGYuY2hpbGRyZW46Ci0gICAgICAgICAgICBmb3Igbm9kZSBpbiBjaGlsZC5wcmVfb3JkZXIoKToKLSAgICAgICAgICAgICAgICB5aWVsZCBub2RlCisgICAgICAgICAgICB5aWVsZCBmcm9tIGNoaWxkLnByZV9vcmRlcigpCiAKICAgICBkZWYgX3ByZWZpeF9nZXR0ZXIoc2VsZik6CiAgICAgICAgICIiIgpkaWZmIC0tZ2l0IGEvTGliL2xpYjJ0bzMvcmVmYWN0b3IucHkgYi9MaWIvbGliMnRvMy9yZWZhY3Rvci5weQppbmRleCAyMDFlMTkzLi44MTAwMzE3IDEwMDY0NAotLS0gYS9MaWIvbGliMnRvMy9yZWZhY3Rvci5weQorKysgYi9MaWIvbGliMnRvMy9yZWZhY3Rvci5weQpAQCAtMzI2LDcgKzMyNiw3IEBACiAgICAgICAgICIiIgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBmID0gb3BlbihmaWxlbmFtZSwgInJiIikKLSAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlcnI6CiAgICAgICAgICAgICBzZWxmLmxvZ19lcnJvcigiQ2FuJ3Qgb3BlbiAlczogJXMiLCBmaWxlbmFtZSwgZXJyKQogICAgICAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKICAgICAgICAgdHJ5OgpAQCAtNTM0LDEyICs1MzQsMTIgQEAKICAgICAgICAgIiIiCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGYgPSBfb3Blbl93aXRoX2VuY29kaW5nKGZpbGVuYW1lLCAidyIsIGVuY29kaW5nPWVuY29kaW5nKQotICAgICAgICBleGNlcHQgb3MuZXJyb3IgYXMgZXJyOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlcnI6CiAgICAgICAgICAgICBzZWxmLmxvZ19lcnJvcigiQ2FuJ3QgY3JlYXRlICVzOiAlcyIsIGZpbGVuYW1lLCBlcnIpCiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZi53cml0ZShfdG9fc3lzdGVtX25ld2xpbmVzKG5ld190ZXh0KSkKLSAgICAgICAgZXhjZXB0IG9zLmVycm9yIGFzIGVycjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgogICAgICAgICAgICAgc2VsZi5sb2dfZXJyb3IoIkNhbid0IHdyaXRlICVzOiAlcyIsIGZpbGVuYW1lLCBlcnIpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBmLmNsb3NlKCkKZGlmZiAtLWdpdCBhL0xpYi9saWIydG8zL3Rlc3RzL3B5dHJlZV9pZGVtcG90ZW5jeS5weSBiL0xpYi9saWIydG8zL3Rlc3RzL3B5dHJlZV9pZGVtcG90ZW5jeS5weQppbmRleCBhMDJiYmZlLi43MzFjNDAzIDEwMDc1NQotLS0gYS9MaWIvbGliMnRvMy90ZXN0cy9weXRyZWVfaWRlbXBvdGVuY3kucHkKKysrIGIvTGliL2xpYjJ0bzMvdGVzdHMvcHl0cmVlX2lkZW1wb3RlbmN5LnB5CkBAIC01Myw3ICs1Myw3IEBACiAgICAgZm9yIGRpciBpbiBzeXMucGF0aDoKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgbmFtZXMgPSBvcy5saXN0ZGlyKGRpcikKLSAgICAgICAgZXhjZXB0IG9zLmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIHByaW50KCJTY2FubmluZyIsIGRpciwgIi4uLiIsIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgZm9yIG5hbWUgaW4gbmFtZXM6CmRpZmYgLS1naXQgYS9MaWIvbGliMnRvMy90ZXN0cy90ZXN0X2ZpeGVycy5weSBiL0xpYi9saWIydG8zL3Rlc3RzL3Rlc3RfZml4ZXJzLnB5CmluZGV4IDkxNGIzYmYuLmQ3NjU5ZmEgMTAwNjQ0Ci0tLSBhL0xpYi9saWIydG8zL3Rlc3RzL3Rlc3RfZml4ZXJzLnB5CisrKyBiL0xpYi9saWIydG8zL3Rlc3RzL3Rlc3RfZml4ZXJzLnB5CkBAIC0yODIsNiArMjgyLDY1IEBACiAgICAgICAgIGIgPSAiIiJmKCphcmdzLCAqKmt3ZHMpIiIiCiAgICAgICAgIHNlbGYuY2hlY2soYSwgYikKIAorY2xhc3MgVGVzdF9yZWxvYWQoRml4ZXJUZXN0Q2FzZSk6CisgICAgZml4ZXIgPSAicmVsb2FkIgorCisgICAgZGVmIHRlc3Qoc2VsZik6CisgICAgICAgIGIgPSAiIiJyZWxvYWQoYSkiIiIKKyAgICAgICAgYSA9ICIiImltcG9ydCBpbXBcbmltcC5yZWxvYWQoYSkiIiIKKyAgICAgICAgc2VsZi5jaGVjayhiLCBhKQorCisgICAgZGVmIHRlc3RfY29tbWVudChzZWxmKToKKyAgICAgICAgYiA9ICIiInJlbG9hZCggYSApICMgY29tbWVudCIiIgorICAgICAgICBhID0gIiIiaW1wb3J0IGltcFxuaW1wLnJlbG9hZCggYSApICMgY29tbWVudCIiIgorICAgICAgICBzZWxmLmNoZWNrKGIsIGEpCisKKyAgICAgICAgIyBQRVAgOCBjb21tZW50cworICAgICAgICBiID0gIiIicmVsb2FkKCBhICkgICMgY29tbWVudCIiIgorICAgICAgICBhID0gIiIiaW1wb3J0IGltcFxuaW1wLnJlbG9hZCggYSApICAjIGNvbW1lbnQiIiIKKyAgICAgICAgc2VsZi5jaGVjayhiLCBhKQorCisgICAgZGVmIHRlc3Rfc3BhY2Uoc2VsZik6CisgICAgICAgIGIgPSAiIiJyZWxvYWQoIGEgKSIiIgorICAgICAgICBhID0gIiIiaW1wb3J0IGltcFxuaW1wLnJlbG9hZCggYSApIiIiCisgICAgICAgIHNlbGYuY2hlY2soYiwgYSkKKworICAgICAgICBiID0gIiIicmVsb2FkKCBhKSIiIgorICAgICAgICBhID0gIiIiaW1wb3J0IGltcFxuaW1wLnJlbG9hZCggYSkiIiIKKyAgICAgICAgc2VsZi5jaGVjayhiLCBhKQorCisgICAgICAgIGIgPSAiIiJyZWxvYWQoYSApIiIiCisgICAgICAgIGEgPSAiIiJpbXBvcnQgaW1wXG5pbXAucmVsb2FkKGEgKSIiIgorICAgICAgICBzZWxmLmNoZWNrKGIsIGEpCisKKyAgICBkZWYgdGVzdF91bmNoYW5nZWQoc2VsZik6CisgICAgICAgIHMgPSAiIiJyZWxvYWQoYT0xKSIiIgorICAgICAgICBzZWxmLnVuY2hhbmdlZChzKQorCisgICAgICAgIHMgPSAiIiJyZWxvYWQoZiwgZykiIiIKKyAgICAgICAgc2VsZi51bmNoYW5nZWQocykKKworICAgICAgICBzID0gIiIicmVsb2FkKGYsICpoKSIiIgorICAgICAgICBzZWxmLnVuY2hhbmdlZChzKQorCisgICAgICAgIHMgPSAiIiJyZWxvYWQoZiwgKmgsICoqaSkiIiIKKyAgICAgICAgc2VsZi51bmNoYW5nZWQocykKKworICAgICAgICBzID0gIiIicmVsb2FkKGYsICoqaSkiIiIKKyAgICAgICAgc2VsZi51bmNoYW5nZWQocykKKworICAgICAgICBzID0gIiIicmVsb2FkKCpoLCAqKmkpIiIiCisgICAgICAgIHNlbGYudW5jaGFuZ2VkKHMpCisKKyAgICAgICAgcyA9ICIiInJlbG9hZCgqaCkiIiIKKyAgICAgICAgc2VsZi51bmNoYW5nZWQocykKKworICAgICAgICBzID0gIiIicmVsb2FkKCoqaSkiIiIKKyAgICAgICAgc2VsZi51bmNoYW5nZWQocykKKworICAgICAgICBzID0gIiIicmVsb2FkKCkiIiIKKyAgICAgICAgc2VsZi51bmNoYW5nZWQocykKKwogY2xhc3MgVGVzdF9pbnRlcm4oRml4ZXJUZXN0Q2FzZSk6CiAgICAgZml4ZXIgPSAiaW50ZXJuIgogCmRpZmYgLS1naXQgYS9MaWIvbGluZWNhY2hlLnB5IGIvTGliL2xpbmVjYWNoZS5weQppbmRleCBjM2YyYzNmLi4wMmE5ZWI1IDEwMDY0NAotLS0gYS9MaWIvbGluZWNhY2hlLnB5CisrKyBiL0xpYi9saW5lY2FjaGUucHkKQEAgLTU5LDcgKzU5LDcgQEAKICAgICAgICAgICAgIGNvbnRpbnVlICAgIyBuby1vcCBmb3IgZmlsZXMgbG9hZGVkIHZpYSBhIF9fbG9hZGVyX18KICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc3RhdCA9IG9zLnN0YXQoZnVsbG5hbWUpCi0gICAgICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBkZWwgY2FjaGVbZmlsZW5hbWVdCiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBpZiBzaXplICE9IHN0YXQuc3Rfc2l6ZSBvciBtdGltZSAhPSBzdGF0LnN0X210aW1lOgpAQCAtOTEsNyArOTEsNyBAQAogICAgICAgICAgICAgaWYgbmFtZSBhbmQgZ2V0X3NvdXJjZToKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRfc291cmNlKG5hbWUpCi0gICAgICAgICAgICAgICAgZXhjZXB0IChJbXBvcnRFcnJvciwgSU9FcnJvcik6CisgICAgICAgICAgICAgICAgZXhjZXB0IChJbXBvcnRFcnJvciwgT1NFcnJvcik6CiAgICAgICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICBpZiBkYXRhIGlzIE5vbmU6CkBAIC0xMTgsMTQgKzExOCwxNCBAQAogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHN0YXQgPSBvcy5zdGF0KGZ1bGxuYW1lKQogICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByZXR1cm4gW10KICAgICB0cnk6CiAgICAgICAgIHdpdGggdG9rZW5pemUub3BlbihmdWxsbmFtZSkgYXMgZnA6CiAgICAgICAgICAgICBsaW5lcyA9IGZwLnJlYWRsaW5lcygpCi0gICAgZXhjZXB0IElPRXJyb3I6CisgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgIHJldHVybiBbXQogICAgIGlmIGxpbmVzIGFuZCBub3QgbGluZXNbLTFdLmVuZHN3aXRoKCdcbicpOgogICAgICAgICBsaW5lc1stMV0gKz0gJ1xuJwpkaWZmIC0tZ2l0IGEvTGliL2xvZ2dpbmcvX19pbml0X18ucHkgYi9MaWIvbG9nZ2luZy9fX2luaXRfXy5weQppbmRleCBmYTAzZjc4Li40NjI5ODYwIDEwMDY0NAotLS0gYS9MaWIvbG9nZ2luZy9fX2luaXRfXy5weQorKysgYi9MaWIvbG9nZ2luZy9fX2luaXRfXy5weQpAQCAtNjcsNyArNjcsNyBAQAogICAgICAgICAiIiJSZXR1cm4gdGhlIGZyYW1lIG9iamVjdCBmb3IgdGhlIGNhbGxlcidzIHN0YWNrIGZyYW1lLiIiIgogICAgICAgICB0cnk6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24KLSAgICAgICAgZXhjZXB0OgorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgcmV0dXJuIHN5cy5leGNfaW5mbygpWzJdLnRiX2ZyYW1lLmZfYmFjawogCiAjIF9zcmNmaWxlIGlzIG9ubHkgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHN5cy5fZ2V0ZnJhbWUoKS4KQEAgLTEyMywyMCArMTIzLDIyIEBACiBERUJVRyA9IDEwCiBOT1RTRVQgPSAwCiAKLV9sZXZlbE5hbWVzID0gewotICAgIENSSVRJQ0FMIDogJ0NSSVRJQ0FMJywKLSAgICBFUlJPUiA6ICdFUlJPUicsCi0gICAgV0FSTklORyA6ICdXQVJOSU5HJywKLSAgICBJTkZPIDogJ0lORk8nLAotICAgIERFQlVHIDogJ0RFQlVHJywKLSAgICBOT1RTRVQgOiAnTk9UU0VUJywKLSAgICAnQ1JJVElDQUwnIDogQ1JJVElDQUwsCi0gICAgJ0VSUk9SJyA6IEVSUk9SLAotICAgICdXQVJOJyA6IFdBUk5JTkcsCi0gICAgJ1dBUk5JTkcnIDogV0FSTklORywKLSAgICAnSU5GTycgOiBJTkZPLAotICAgICdERUJVRycgOiBERUJVRywKLSAgICAnTk9UU0VUJyA6IE5PVFNFVCwKK19sZXZlbFRvTmFtZSA9IHsKKyAgICBDUklUSUNBTDogJ0NSSVRJQ0FMJywKKyAgICBFUlJPUjogJ0VSUk9SJywKKyAgICBXQVJOSU5HOiAnV0FSTklORycsCisgICAgSU5GTzogJ0lORk8nLAorICAgIERFQlVHOiAnREVCVUcnLAorICAgIE5PVFNFVDogJ05PVFNFVCcsCit9CitfbmFtZVRvTGV2ZWwgPSB7CisgICAgJ0NSSVRJQ0FMJzogQ1JJVElDQUwsCisgICAgJ0VSUk9SJzogRVJST1IsCisgICAgJ1dBUk4nOiBXQVJOSU5HLAorICAgICdXQVJOSU5HJzogV0FSTklORywKKyAgICAnSU5GTyc6IElORk8sCisgICAgJ0RFQlVHJzogREVCVUcsCisgICAgJ05PVFNFVCc6IE5PVFNFVCwKIH0KIAogZGVmIGdldExldmVsTmFtZShsZXZlbCk6CkBAIC0xNTMsNyArMTU1LDcgQEAKIAogICAgIE90aGVyd2lzZSwgdGhlIHN0cmluZyAiTGV2ZWwgJXMiICUgbGV2ZWwgaXMgcmV0dXJuZWQuCiAgICAgIiIiCi0gICAgcmV0dXJuIF9sZXZlbE5hbWVzLmdldChsZXZlbCwgKCJMZXZlbCAlcyIgJSBsZXZlbCkpCisgICAgcmV0dXJuIF9sZXZlbFRvTmFtZS5nZXQobGV2ZWwsICgiTGV2ZWwgJXMiICUgbGV2ZWwpKQogCiBkZWYgYWRkTGV2ZWxOYW1lKGxldmVsLCBsZXZlbE5hbWUpOgogICAgICIiIgpAQCAtMTYzLDggKzE2NSw4IEBACiAgICAgIiIiCiAgICAgX2FjcXVpcmVMb2NrKCkKICAgICB0cnk6ICAgICN1bmxpa2VseSB0byBjYXVzZSBhbiBleGNlcHRpb24sIGJ1dCB5b3UgbmV2ZXIga25vdy4uLgotICAgICAgICBfbGV2ZWxOYW1lc1tsZXZlbF0gPSBsZXZlbE5hbWUKLSAgICAgICAgX2xldmVsTmFtZXNbbGV2ZWxOYW1lXSA9IGxldmVsCisgICAgICAgIF9sZXZlbFRvTmFtZVtsZXZlbF0gPSBsZXZlbE5hbWUKKyAgICAgICAgX25hbWVUb0xldmVsW2xldmVsTmFtZV0gPSBsZXZlbAogICAgIGZpbmFsbHk6CiAgICAgICAgIF9yZWxlYXNlTG9jaygpCiAKQEAgLTE3Miw5ICsxNzQsOSBAQAogICAgIGlmIGlzaW5zdGFuY2UobGV2ZWwsIGludCk6CiAgICAgICAgIHJ2ID0gbGV2ZWwKICAgICBlbGlmIHN0cihsZXZlbCkgPT0gbGV2ZWw6Ci0gICAgICAgIGlmIGxldmVsIG5vdCBpbiBfbGV2ZWxOYW1lczoKKyAgICAgICAgaWYgbGV2ZWwgbm90IGluIF9uYW1lVG9MZXZlbDoKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVua25vd24gbGV2ZWw6ICVyIiAlIGxldmVsKQotICAgICAgICBydiA9IF9sZXZlbE5hbWVzW2xldmVsXQorICAgICAgICBydiA9IF9uYW1lVG9MZXZlbFtsZXZlbF0KICAgICBlbHNlOgogICAgICAgICByYWlzZSBUeXBlRXJyb3IoIkxldmVsIG5vdCBhbiBpbnRlZ2VyIG9yIGEgdmFsaWQgc3RyaW5nOiAlciIgJSBsZXZlbCkKICAgICByZXR1cm4gcnYKQEAgLTg4MCwxNiArODgyLDI3IEBACiAgICAgICAgIFRoZSByZWNvcmQgd2hpY2ggd2FzIGJlaW5nIHByb2Nlc3NlZCBpcyBwYXNzZWQgaW4gdG8gdGhpcyBtZXRob2QuCiAgICAgICAgICIiIgogICAgICAgICBpZiByYWlzZUV4Y2VwdGlvbnMgYW5kIHN5cy5zdGRlcnI6ICAjIHNlZSBpc3N1ZSAxMzgwNwotICAgICAgICAgICAgZWkgPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgdCwgdiwgdGIgPSBzeXMuZXhjX2luZm8oKQogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGNlcHRpb24oZWlbMF0sIGVpWzFdLCBlaVsyXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUsIHN5cy5zdGRlcnIpCi0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnTG9nZ2VkIGZyb20gZmlsZSAlcywgbGluZSAlc1xuJyAlICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5maWxlbmFtZSwgcmVjb3JkLmxpbmVubykpCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvcjogI3ByYWdtYTogbm8gY292ZXIKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCctLS0gTG9nZ2luZyBlcnJvciAtLS1cbicpCisgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4Y2VwdGlvbih0LCB2LCB0YiwgTm9uZSwgc3lzLnN0ZGVycikKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCdDYWxsIHN0YWNrOlxuJykKKyAgICAgICAgICAgICAgICAjIFdhbGsgdGhlIHN0YWNrIGZyYW1lIHVwIHVudGlsIHdlJ3JlIG91dCBvZiBsb2dnaW5nLAorICAgICAgICAgICAgICAgICMgc28gYXMgdG8gcHJpbnQgdGhlIGNhbGxpbmcgY29udGV4dC4KKyAgICAgICAgICAgICAgICBmcmFtZSA9IHRiLnRiX2ZyYW1lCisgICAgICAgICAgICAgICAgd2hpbGUgKGZyYW1lIGFuZCBvcy5wYXRoLmRpcm5hbWUoZnJhbWUuZl9jb2RlLmNvX2ZpbGVuYW1lKSA9PQorICAgICAgICAgICAgICAgICAgICAgICBfX3BhdGhfX1swXSk6CisgICAgICAgICAgICAgICAgICAgIGZyYW1lID0gZnJhbWUuZl9iYWNrCisgICAgICAgICAgICAgICAgaWYgZnJhbWU6CisgICAgICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9zdGFjayhmcmFtZSwgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICMgY291bGRuJ3QgZmluZCB0aGUgcmlnaHQgc3RhY2sgZnJhbWUsIGZvciBzb21lIHJlYXNvbgorICAgICAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCdMb2dnZWQgZnJvbSBmaWxlICVzLCBsaW5lICVzXG4nICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5maWxlbmFtZSwgcmVjb3JkLmxpbmVubykpCisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjogI3ByYWdtYTogbm8gY292ZXIKICAgICAgICAgICAgICAgICBwYXNzICAgICMgc2VlIGlzc3VlIDU5NzEKICAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgZGVsIGVpCisgICAgICAgICAgICAgICAgZGVsIHQsIHYsIHRiCiAKIGNsYXNzIFN0cmVhbUhhbmRsZXIoSGFuZGxlcik6CiAgICAgIiIiCkBAIC05MzksOSArOTUyLDcgQEAKICAgICAgICAgICAgIHN0cmVhbS53cml0ZShtc2cpCiAgICAgICAgICAgICBzdHJlYW0ud3JpdGUoc2VsZi50ZXJtaW5hdG9yKQogICAgICAgICAgICAgc2VsZi5mbHVzaCgpCi0gICAgICAgIGV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOiAjcHJhZ21hOiBubyBjb3ZlcgotICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0OgorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgc2VsZi5oYW5kbGVFcnJvcihyZWNvcmQpCiAKIGNsYXNzIEZpbGVIYW5kbGVyKFN0cmVhbUhhbmRsZXIpOgpAQCAtMTgzMCw3ICsxODQxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgaC5hY3F1aXJlKCkKICAgICAgICAgICAgICAgICAgICAgaC5mbHVzaCgpCiAgICAgICAgICAgICAgICAgICAgIGguY2xvc2UoKQotICAgICAgICAgICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgVmFsdWVFcnJvcik6CisgICAgICAgICAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBWYWx1ZUVycm9yKToKICAgICAgICAgICAgICAgICAgICAgIyBJZ25vcmUgZXJyb3JzIHdoaWNoIG1pZ2h0IGJlIGNhdXNlZAogICAgICAgICAgICAgICAgICAgICAjIGJlY2F1c2UgaGFuZGxlcnMgaGF2ZSBiZWVuIGNsb3NlZCBidXQKICAgICAgICAgICAgICAgICAgICAgIyByZWZlcmVuY2VzIHRvIHRoZW0gYXJlIHN0aWxsIGFyb3VuZCBhdApAQCAtMTgzOCw3ICsxODQ5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgICAgIGgucmVsZWFzZSgpCi0gICAgICAgIGV4Y2VwdDoKKyAgICAgICAgZXhjZXB0OiAjIGlnbm9yZSBldmVyeXRoaW5nLCBhcyB3ZSdyZSBzaHV0dGluZyBkb3duCiAgICAgICAgICAgICBpZiByYWlzZUV4Y2VwdGlvbnM6CiAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgICNlbHNlLCBzd2FsbG93CmRpZmYgLS1naXQgYS9MaWIvbG9nZ2luZy9jb25maWcucHkgYi9MaWIvbG9nZ2luZy9jb25maWcucHkKaW5kZXggMTg4MDYxNC4uYjg4MmE2MiAxMDA2NDQKLS0tIGEvTGliL2xvZ2dpbmcvY29uZmlnLnB5CisrKyBiL0xpYi9sb2dnaW5nL2NvbmZpZy5weQpAQCAtNjEsMTEgKzYxLDE0IEBACiAgICAgIiIiCiAgICAgaW1wb3J0IGNvbmZpZ3BhcnNlcgogCi0gICAgY3AgPSBjb25maWdwYXJzZXIuQ29uZmlnUGFyc2VyKGRlZmF1bHRzKQotICAgIGlmIGhhc2F0dHIoZm5hbWUsICdyZWFkbGluZScpOgotICAgICAgICBjcC5yZWFkX2ZpbGUoZm5hbWUpCisgICAgaWYgaXNpbnN0YW5jZShmbmFtZSwgY29uZmlncGFyc2VyLlJhd0NvbmZpZ1BhcnNlcik6CisgICAgICAgIGNwID0gZm5hbWUKICAgICBlbHNlOgotICAgICAgICBjcC5yZWFkKGZuYW1lKQorICAgICAgICBjcCA9IGNvbmZpZ3BhcnNlci5Db25maWdQYXJzZXIoZGVmYXVsdHMpCisgICAgICAgIGlmIGhhc2F0dHIoZm5hbWUsICdyZWFkbGluZScpOgorICAgICAgICAgICAgY3AucmVhZF9maWxlKGZuYW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY3AucmVhZChmbmFtZSkKIAogICAgIGZvcm1hdHRlcnMgPSBfY3JlYXRlX2Zvcm1hdHRlcnMoY3ApCiAKQEAgLTE0MSw3ICsxNDQsNyBAQAogICAgICAgICBoID0ga2xhc3MoKmFyZ3MpCiAgICAgICAgIGlmICJsZXZlbCIgaW4gc2VjdGlvbjoKICAgICAgICAgICAgIGxldmVsID0gc2VjdGlvblsibGV2ZWwiXQotICAgICAgICAgICAgaC5zZXRMZXZlbChsb2dnaW5nLl9sZXZlbE5hbWVzW2xldmVsXSkKKyAgICAgICAgICAgIGguc2V0TGV2ZWwobGV2ZWwpCiAgICAgICAgIGlmIGxlbihmbXQpOgogICAgICAgICAgICAgaC5zZXRGb3JtYXR0ZXIoZm9ybWF0dGVyc1tmbXRdKQogICAgICAgICBpZiBpc3N1YmNsYXNzKGtsYXNzLCBsb2dnaW5nLmhhbmRsZXJzLk1lbW9yeUhhbmRsZXIpOgpAQCAtMTg4LDcgKzE5MSw3IEBACiAgICAgbG9nID0gcm9vdAogICAgIGlmICJsZXZlbCIgaW4gc2VjdGlvbjoKICAgICAgICAgbGV2ZWwgPSBzZWN0aW9uWyJsZXZlbCJdCi0gICAgICAgIGxvZy5zZXRMZXZlbChsb2dnaW5nLl9sZXZlbE5hbWVzW2xldmVsXSkKKyAgICAgICAgbG9nLnNldExldmVsKGxldmVsKQogICAgIGZvciBoIGluIHJvb3QuaGFuZGxlcnNbOl06CiAgICAgICAgIHJvb3QucmVtb3ZlSGFuZGxlcihoKQogICAgIGhsaXN0ID0gc2VjdGlvblsiaGFuZGxlcnMiXQpAQCAtMjM0LDcgKzIzNyw3IEBACiAgICAgICAgICAgICBleGlzdGluZy5yZW1vdmUocW4pCiAgICAgICAgIGlmICJsZXZlbCIgaW4gc2VjdGlvbjoKICAgICAgICAgICAgIGxldmVsID0gc2VjdGlvblsibGV2ZWwiXQotICAgICAgICAgICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuX2xldmVsTmFtZXNbbGV2ZWxdKQorICAgICAgICAgICAgbG9nZ2VyLnNldExldmVsKGxldmVsKQogICAgICAgICBmb3IgaCBpbiBsb2dnZXIuaGFuZGxlcnNbOl06CiAgICAgICAgICAgICBsb2dnZXIucmVtb3ZlSGFuZGxlcihoKQogICAgICAgICBsb2dnZXIucHJvcGFnYXRlID0gcHJvcGFnYXRlCkBAIC03MjksNiArNzMyLDcgQEAKICAgICAgICAgICAgICAgICAnYWRkcmVzcycgaW4gY29uZmlnOgogICAgICAgICAgICAgICAgIGNvbmZpZ1snYWRkcmVzcyddID0gc2VsZi5hc190dXBsZShjb25maWdbJ2FkZHJlc3MnXSkKICAgICAgICAgICAgIGZhY3RvcnkgPSBrbGFzcworICAgICAgICBwcm9wcyA9IGNvbmZpZy5wb3AoJy4nLCBOb25lKQogICAgICAgICBrd2FyZ3MgPSBkaWN0KFsoaywgY29uZmlnW2tdKSBmb3IgayBpbiBjb25maWcgaWYgdmFsaWRfaWRlbnQoayldKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICByZXN1bHQgPSBmYWN0b3J5KCoqa3dhcmdzKQpAQCAtNzQ3LDYgKzc1MSw5IEBACiAgICAgICAgICAgICByZXN1bHQuc2V0TGV2ZWwobG9nZ2luZy5fY2hlY2tMZXZlbChsZXZlbCkpCiAgICAgICAgIGlmIGZpbHRlcnM6CiAgICAgICAgICAgICBzZWxmLmFkZF9maWx0ZXJzKHJlc3VsdCwgZmlsdGVycykKKyAgICAgICAgaWYgcHJvcHM6CisgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gcHJvcHMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBzZXRhdHRyKHJlc3VsdCwgbmFtZSwgdmFsdWUpCiAgICAgICAgIHJldHVybiByZXN1bHQKIAogICAgIGRlZiBhZGRfaGFuZGxlcnMoc2VsZiwgbG9nZ2VyLCBoYW5kbGVycyk6CkBAIC03OTUsNyArODAyLDcgQEAKICAgICBkaWN0Q29uZmlnQ2xhc3MoY29uZmlnKS5jb25maWd1cmUoKQogCiAKLWRlZiBsaXN0ZW4ocG9ydD1ERUZBVUxUX0xPR0dJTkdfQ09ORklHX1BPUlQpOgorZGVmIGxpc3Rlbihwb3J0PURFRkFVTFRfTE9HR0lOR19DT05GSUdfUE9SVCwgdmVyaWZ5PU5vbmUpOgogICAgICIiIgogICAgIFN0YXJ0IHVwIGEgc29ja2V0IHNlcnZlciBvbiB0aGUgc3BlY2lmaWVkIHBvcnQsIGFuZCBsaXN0ZW4gZm9yIG5ldwogICAgIGNvbmZpZ3VyYXRpb25zLgpAQCAtODA0LDYgKzgxMSwxNSBAQAogICAgIFJldHVybnMgYSBUaHJlYWQgb2JqZWN0IG9uIHdoaWNoIHlvdSBjYW4gY2FsbCBzdGFydCgpIHRvIHN0YXJ0IHRoZSBzZXJ2ZXIsCiAgICAgYW5kIHdoaWNoIHlvdSBjYW4gam9pbigpIHdoZW4gYXBwcm9wcmlhdGUuIFRvIHN0b3AgdGhlIHNlcnZlciwgY2FsbAogICAgIHN0b3BMaXN0ZW5pbmcoKS4KKworICAgIFVzZSB0aGUgYGB2ZXJpZnlgYCBhcmd1bWVudCB0byB2ZXJpZnkgYW55IGJ5dGVzIHJlY2VpdmVkIGFjcm9zcyB0aGUgd2lyZQorICAgIGZyb20gYSBjbGllbnQuIElmIHNwZWNpZmllZCwgaXQgc2hvdWxkIGJlIGEgY2FsbGFibGUgd2hpY2ggcmVjZWl2ZXMgYQorICAgIHNpbmdsZSBhcmd1bWVudCAtIHRoZSBieXRlcyBvZiBjb25maWd1cmF0aW9uIGRhdGEgcmVjZWl2ZWQgYWNyb3NzIHRoZQorICAgIG5ldHdvcmsgLSBhbmQgaXQgc2hvdWxkIHJldHVybiBlaXRoZXIgYGBOb25lYGAsIHRvIGluZGljYXRlIHRoYXQgdGhlCisgICAgcGFzc2VkIGluIGJ5dGVzIGNvdWxkIG5vdCBiZSB2ZXJpZmllZCBhbmQgc2hvdWxkIGJlIGRpc2NhcmRlZCwgb3IgYQorICAgIGJ5dGUgc3RyaW5nIHdoaWNoIGlzIHRoZW4gcGFzc2VkIHRvIHRoZSBjb25maWd1cmF0aW9uIG1hY2hpbmVyeSBhcworICAgIG5vcm1hbC4gTm90ZSB0aGF0IHlvdSBjYW4gcmV0dXJuIHRyYW5zZm9ybWVkIGJ5dGVzLCBlLmcuIGJ5IGRlY3J5cHRpbmcKKyAgICB0aGUgYnl0ZXMgcGFzc2VkIGluLgogICAgICIiIgogICAgIGlmIG5vdCB0aHJlYWQ6ICNwcmFnbWE6IG5vIGNvdmVyCiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoImxpc3RlbigpIG5lZWRzIHRocmVhZGluZyB0byB3b3JrIikKQEAgLTgzMSwyNSArODQ3LDI2IEBACiAgICAgICAgICAgICAgICAgICAgIGNodW5rID0gc2VsZi5jb25uZWN0aW9uLnJlY3Yoc2xlbikKICAgICAgICAgICAgICAgICAgICAgd2hpbGUgbGVuKGNodW5rKSA8IHNsZW46CiAgICAgICAgICAgICAgICAgICAgICAgICBjaHVuayA9IGNodW5rICsgY29ubi5yZWN2KHNsZW4gLSBsZW4oY2h1bmspKQotICAgICAgICAgICAgICAgICAgICBjaHVuayA9IGNodW5rLmRlY29kZSgidXRmLTgiKQotICAgICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnQganNvbgotICAgICAgICAgICAgICAgICAgICAgICAgZCA9anNvbi5sb2FkcyhjaHVuaykKLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGQsIGRpY3QpCi0gICAgICAgICAgICAgICAgICAgICAgICBkaWN0Q29uZmlnKGQpCi0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgICAgICAgICAgICAgICNBcHBseSBuZXcgY29uZmlndXJhdGlvbi4KLQotICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSA9IGlvLlN0cmluZ0lPKGNodW5rKQorICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLnNlcnZlci52ZXJpZnkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBjaHVuayA9IHNlbGYuc2VydmVyLnZlcmlmeShjaHVuaykKKyAgICAgICAgICAgICAgICAgICAgaWYgY2h1bmsgaXMgbm90IE5vbmU6ICAgIyB2ZXJpZmllZCwgY2FuIHByb2Nlc3MKKyAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rID0gY2h1bmsuZGVjb2RlKCJ1dGYtOCIpCiAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUNvbmZpZyhmaWxlKQotICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IChLZXlib2FyZEludGVycnVwdCwgU3lzdGVtRXhpdCk6ICNwcmFnbWE6IG5vIGNvdmVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnQganNvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQgPWpzb24ubG9hZHMoY2h1bmspCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZCwgZGljdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWN0Q29uZmlnKGQpCisgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICNBcHBseSBuZXcgY29uZmlndXJhdGlvbi4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUgPSBpby5TdHJpbmdJTyhjaHVuaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVDb25maWcoZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5zZXJ2ZXIucmVhZHk6CiAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlci5yZWFkeS5zZXQoKQotICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShlLmFyZ3MsIHR1cGxlKToKICAgICAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgICAgICBlbHNlOgpAQCAtODY1LDEzICs4ODIsMTQgQEAKICAgICAgICAgYWxsb3dfcmV1c2VfYWRkcmVzcyA9IDEKIAogICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdD0nbG9jYWxob3N0JywgcG9ydD1ERUZBVUxUX0xPR0dJTkdfQ09ORklHX1BPUlQsCi0gICAgICAgICAgICAgICAgICAgICBoYW5kbGVyPU5vbmUsIHJlYWR5PU5vbmUpOgorICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcj1Ob25lLCByZWFkeT1Ob25lLCB2ZXJpZnk9Tm9uZSk6CiAgICAgICAgICAgICBUaHJlYWRpbmdUQ1BTZXJ2ZXIuX19pbml0X18oc2VsZiwgKGhvc3QsIHBvcnQpLCBoYW5kbGVyKQogICAgICAgICAgICAgbG9nZ2luZy5fYWNxdWlyZUxvY2soKQogICAgICAgICAgICAgc2VsZi5hYm9ydCA9IDAKICAgICAgICAgICAgIGxvZ2dpbmcuX3JlbGVhc2VMb2NrKCkKICAgICAgICAgICAgIHNlbGYudGltZW91dCA9IDEKICAgICAgICAgICAgIHNlbGYucmVhZHkgPSByZWFkeQorICAgICAgICAgICAgc2VsZi52ZXJpZnkgPSB2ZXJpZnkKIAogICAgICAgICBkZWYgc2VydmVfdW50aWxfc3RvcHBlZChzZWxmKToKICAgICAgICAgICAgIGltcG9ydCBzZWxlY3QKQEAgLTg4OSwxNiArOTA3LDE4IEBACiAKICAgICBjbGFzcyBTZXJ2ZXIodGhyZWFkaW5nLlRocmVhZCk6CiAKLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJjdnIsIGhkbHIsIHBvcnQpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcmN2ciwgaGRsciwgcG9ydCwgdmVyaWZ5KToKICAgICAgICAgICAgIHN1cGVyKFNlcnZlciwgc2VsZikuX19pbml0X18oKQogICAgICAgICAgICAgc2VsZi5yY3ZyID0gcmN2cgogICAgICAgICAgICAgc2VsZi5oZGxyID0gaGRscgogICAgICAgICAgICAgc2VsZi5wb3J0ID0gcG9ydAorICAgICAgICAgICAgc2VsZi52ZXJpZnkgPSB2ZXJpZnkKICAgICAgICAgICAgIHNlbGYucmVhZHkgPSB0aHJlYWRpbmcuRXZlbnQoKQogCiAgICAgICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgICAgICBzZXJ2ZXIgPSBzZWxmLnJjdnIocG9ydD1zZWxmLnBvcnQsIGhhbmRsZXI9c2VsZi5oZGxyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWR5PXNlbGYucmVhZHkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZHk9c2VsZi5yZWFkeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZnk9c2VsZi52ZXJpZnkpCiAgICAgICAgICAgICBpZiBzZWxmLnBvcnQgPT0gMDoKICAgICAgICAgICAgICAgICBzZWxmLnBvcnQgPSBzZXJ2ZXIuc2VydmVyX2FkZHJlc3NbMV0KICAgICAgICAgICAgIHNlbGYucmVhZHkuc2V0KCkKQEAgLTkwOCw3ICs5MjgsNyBAQAogICAgICAgICAgICAgbG9nZ2luZy5fcmVsZWFzZUxvY2soKQogICAgICAgICAgICAgc2VydmVyLnNlcnZlX3VudGlsX3N0b3BwZWQoKQogCi0gICAgcmV0dXJuIFNlcnZlcihDb25maWdTb2NrZXRSZWNlaXZlciwgQ29uZmlnU3RyZWFtSGFuZGxlciwgcG9ydCkKKyAgICByZXR1cm4gU2VydmVyKENvbmZpZ1NvY2tldFJlY2VpdmVyLCBDb25maWdTdHJlYW1IYW5kbGVyLCBwb3J0LCB2ZXJpZnkpCiAKIGRlZiBzdG9wTGlzdGVuaW5nKCk6CiAgICAgIiIiCmRpZmYgLS1naXQgYS9MaWIvbG9nZ2luZy9oYW5kbGVycy5weSBiL0xpYi9sb2dnaW5nL2hhbmRsZXJzLnB5CmluZGV4IDkzYWE1MGUuLmYxZGRiYjUgMTAwNjQ0Ci0tLSBhL0xpYi9sb2dnaW5nL2hhbmRsZXJzLnB5CisrKyBiL0xpYi9sb2dnaW5nL2hhbmRsZXJzLnB5CkBAIC03Miw5ICs3Miw3IEBACiAgICAgICAgICAgICBpZiBzZWxmLnNob3VsZFJvbGxvdmVyKHJlY29yZCk6CiAgICAgICAgICAgICAgICAgc2VsZi5kb1JvbGxvdmVyKCkKICAgICAgICAgICAgIGxvZ2dpbmcuRmlsZUhhbmRsZXIuZW1pdChzZWxmLCByZWNvcmQpCi0gICAgICAgIGV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOiAjcHJhZ21hOiBubyBjb3ZlcgotICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0OgorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgc2VsZi5oYW5kbGVFcnJvcihyZWNvcmQpCiAKICAgICBkZWYgcm90YXRpb25fZmlsZW5hbWUoc2VsZiwgZGVmYXVsdF9uYW1lKToKQEAgLTE5OCwxMSArMTk2LDEyIEBACiAgICAgSWYgYmFja3VwQ291bnQgaXMgPiAwLCB3aGVuIHJvbGxvdmVyIGlzIGRvbmUsIG5vIG1vcmUgdGhhbiBiYWNrdXBDb3VudAogICAgIGZpbGVzIGFyZSBrZXB0IC0gdGhlIG9sZGVzdCBvbmVzIGFyZSBkZWxldGVkLgogICAgICIiIgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgd2hlbj0naCcsIGludGVydmFsPTEsIGJhY2t1cENvdW50PTAsIGVuY29kaW5nPU5vbmUsIGRlbGF5PUZhbHNlLCB1dGM9RmFsc2UpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgd2hlbj0naCcsIGludGVydmFsPTEsIGJhY2t1cENvdW50PTAsIGVuY29kaW5nPU5vbmUsIGRlbGF5PUZhbHNlLCB1dGM9RmFsc2UsIGF0VGltZT1Ob25lKToKICAgICAgICAgQmFzZVJvdGF0aW5nSGFuZGxlci5fX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgJ2EnLCBlbmNvZGluZywgZGVsYXkpCiAgICAgICAgIHNlbGYud2hlbiA9IHdoZW4udXBwZXIoKQogICAgICAgICBzZWxmLmJhY2t1cENvdW50ID0gYmFja3VwQ291bnQKICAgICAgICAgc2VsZi51dGMgPSB1dGMKKyAgICAgICAgc2VsZi5hdFRpbWUgPSBhdFRpbWUKICAgICAgICAgIyBDYWxjdWxhdGUgdGhlIHJlYWwgcm9sbG92ZXIgaW50ZXJ2YWwsIHdoaWNoIGlzIGp1c3QgdGhlIG51bWJlciBvZgogICAgICAgICAjIHNlY29uZHMgYmV0d2VlbiByb2xsb3ZlcnMuICBBbHNvIHNldCB0aGUgZmlsZW5hbWUgc3VmZml4IHVzZWQgd2hlbgogICAgICAgICAjIGEgcm9sbG92ZXIgb2NjdXJzLiAgQ3VycmVudCAnd2hlbicgZXZlbnRzIHN1cHBvcnRlZDoKQEAgLTI3Miw5ICsyNzEsMjIgQEAKICAgICAgICAgICAgIGN1cnJlbnRIb3VyID0gdFszXQogICAgICAgICAgICAgY3VycmVudE1pbnV0ZSA9IHRbNF0KICAgICAgICAgICAgIGN1cnJlbnRTZWNvbmQgPSB0WzVdCi0gICAgICAgICAgICAjIHIgaXMgdGhlIG51bWJlciBvZiBzZWNvbmRzIGxlZnQgYmV0d2VlbiBub3cgYW5kIG1pZG5pZ2h0Ci0gICAgICAgICAgICByID0gX01JRE5JR0hUIC0gKChjdXJyZW50SG91ciAqIDYwICsgY3VycmVudE1pbnV0ZSkgKiA2MCArCi0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTZWNvbmQpCisgICAgICAgICAgICBjdXJyZW50RGF5ID0gdFs2XQorICAgICAgICAgICAgIyByIGlzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBsZWZ0IGJldHdlZW4gbm93IGFuZCB0aGUgbmV4dCByb3RhdGlvbgorICAgICAgICAgICAgaWYgc2VsZi5hdFRpbWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByb3RhdGVfdHMgPSBfTUlETklHSFQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcm90YXRlX3RzID0gKChzZWxmLmF0VGltZS5ob3VyICogNjAgKyBzZWxmLmF0VGltZS5taW51dGUpKjYwICsKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hdFRpbWUuc2Vjb25kKQorCisgICAgICAgICAgICByID0gcm90YXRlX3RzIC0gKChjdXJyZW50SG91ciAqIDYwICsgY3VycmVudE1pbnV0ZSkgKiA2MCArCisgICAgICAgICAgICAgICAgY3VycmVudFNlY29uZCkKKyAgICAgICAgICAgIGlmIHIgPCAwOgorICAgICAgICAgICAgICAgICMgUm90YXRlIHRpbWUgaXMgYmVmb3JlIHRoZSBjdXJyZW50IHRpbWUgKGZvciBleGFtcGxlIHdoZW4KKyAgICAgICAgICAgICAgICAjIHNlbGYucm90YXRlQXQgaXMgMTM6NDUgYW5kIGl0IG5vdyAxNDoxNSksIHJvdGF0aW9uIGlzCisgICAgICAgICAgICAgICAgIyB0b21vcnJvdy4KKyAgICAgICAgICAgICAgICByICs9IF9NSUROSUdIVAorICAgICAgICAgICAgICAgIGN1cnJlbnREYXkgPSAoY3VycmVudERheSArIDEpICUgNwogICAgICAgICAgICAgcmVzdWx0ID0gY3VycmVudFRpbWUgKyByCiAgICAgICAgICAgICAjIElmIHdlIGFyZSByb2xsaW5nIG92ZXIgb24gYSBjZXJ0YWluIGRheSwgYWRkIGluIHRoZSBudW1iZXIgb2YgZGF5cyB1bnRpbAogICAgICAgICAgICAgIyB0aGUgbmV4dCByb2xsb3ZlciwgYnV0IG9mZnNldCBieSAxIHNpbmNlIHdlIGp1c3QgY2FsY3VsYXRlZCB0aGUgdGltZQpAQCAtMjkyLDcgKzMwNCw3IEBACiAgICAgICAgICAgICAjIFRoaXMgaXMgYmVjYXVzZSB0aGUgYWJvdmUgdGltZSBjYWxjdWxhdGlvbiB0YWtlcyB1cyB0byBtaWRuaWdodCBvbiB0aGlzCiAgICAgICAgICAgICAjIGRheSwgaS5lLiB0aGUgc3RhcnQgb2YgdGhlIG5leHQgZGF5LgogICAgICAgICAgICAgaWYgc2VsZi53aGVuLnN0YXJ0c3dpdGgoJ1cnKToKLSAgICAgICAgICAgICAgICBkYXkgPSB0WzZdICMgMCBpcyBNb25kYXkKKyAgICAgICAgICAgICAgICBkYXkgPSBjdXJyZW50RGF5ICMgMCBpcyBNb25kYXkKICAgICAgICAgICAgICAgICBpZiBkYXkgIT0gc2VsZi5kYXlPZldlZWs6CiAgICAgICAgICAgICAgICAgICAgIGlmIGRheSA8IHNlbGYuZGF5T2ZXZWVrOgogICAgICAgICAgICAgICAgICAgICAgICAgZGF5c1RvV2FpdCA9IHNlbGYuZGF5T2ZXZWVrIC0gZGF5CkBAIC00NDAsMTEgKzQ1Miw4IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgICMgc3RhdCB0aGUgZmlsZSBieSBwYXRoLCBjaGVja2luZyBmb3IgZXhpc3RlbmNlCiAgICAgICAgICAgICBzcmVzID0gb3Muc3RhdChzZWxmLmJhc2VGaWxlbmFtZSkKLSAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgotICAgICAgICAgICAgaWYgZXJyLmVycm5vID09IGVycm5vLkVOT0VOVDoKLSAgICAgICAgICAgICAgICBzcmVzID0gTm9uZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQgRmlsZU5vdEZvdW5kRXJyb3I6CisgICAgICAgICAgICBzcmVzID0gTm9uZQogICAgICAgICAjIGNvbXBhcmUgZmlsZSBzeXN0ZW0gc3RhdCB3aXRoIHRoYXQgb2Ygb3VyIHN0cmVhbSBmaWxlIGhhbmRsZQogICAgICAgICBpZiBub3Qgc3JlcyBvciBzcmVzW1NUX0RFVl0gIT0gc2VsZi5kZXYgb3Igc3Jlc1tTVF9JTk9dICE9IHNlbGYuaW5vOgogICAgICAgICAgICAgaWYgc2VsZi5zdHJlYW0gaXMgbm90IE5vbmU6CkBAIC00OTYsMTUgKzUwNSw3IEBACiAgICAgICAgIEEgZmFjdG9yeSBtZXRob2Qgd2hpY2ggYWxsb3dzIHN1YmNsYXNzZXMgdG8gZGVmaW5lIHRoZSBwcmVjaXNlCiAgICAgICAgIHR5cGUgb2Ygc29ja2V0IHRoZXkgd2FudC4KICAgICAgICAgIiIiCi0gICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCi0gICAgICAgIGlmIGhhc2F0dHIocywgJ3NldHRpbWVvdXQnKToKLSAgICAgICAgICAgIHMuc2V0dGltZW91dCh0aW1lb3V0KQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzLmNvbm5lY3QoKHNlbGYuaG9zdCwgc2VsZi5wb3J0KSkKLSAgICAgICAgICAgIHJldHVybiBzCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6Ci0gICAgICAgICAgICBzLmNsb3NlKCkKLSAgICAgICAgICAgIHJhaXNlCisgICAgICAgIHJldHVybiBzb2NrZXQuY3JlYXRlX2Nvbm5lY3Rpb24oKHNlbGYuaG9zdCwgc2VsZi5wb3J0KSwgdGltZW91dD10aW1lb3V0KQogCiAgICAgZGVmIGNyZWF0ZVNvY2tldChzZWxmKToKICAgICAgICAgIiIiCkBAIC01MjQsNyArNTI1LDcgQEAKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzZWxmLnNvY2sgPSBzZWxmLm1ha2VTb2NrZXQoKQogICAgICAgICAgICAgICAgIHNlbGYucmV0cnlUaW1lID0gTm9uZSAjIG5leHQgdGltZSwgbm8gZGVsYXkgYmVmb3JlIHRyeWluZwotICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgICNDcmVhdGlvbiBmYWlsZWQsIHNvIHNldCB0aGUgcmV0cnkgdGltZSBhbmQgcmV0dXJuLgogICAgICAgICAgICAgICAgIGlmIHNlbGYucmV0cnlUaW1lIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYucmV0cnlQZXJpb2QgPSBzZWxmLnJldHJ5U3RhcnQKQEAgLTU0OCwxNiArNTQ5LDggQEAKICAgICAgICAgI2J1dCBhcmUgc3RpbGwgdW5hYmxlIHRvIGNvbm5lY3QuCiAgICAgICAgIGlmIHNlbGYuc29jazoKICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYuc29jaywgInNlbmRhbGwiKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zb2NrLnNlbmRhbGwocykKLSAgICAgICAgICAgICAgICBlbHNlOiAjcHJhZ21hOiBubyBjb3ZlcgotICAgICAgICAgICAgICAgICAgICBzZW50c29mYXIgPSAwCi0gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBsZW4ocykKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgbGVmdCA+IDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZW50ID0gc2VsZi5zb2NrLnNlbmQoc1tzZW50c29mYXI6XSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbnRzb2ZhciA9IHNlbnRzb2ZhciArIHNlbnQKLSAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgPSBsZWZ0IC0gc2VudAotICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjogI3ByYWdtYTogbm8gY292ZXIKKyAgICAgICAgICAgICAgICBzZWxmLnNvY2suc2VuZGFsbChzKQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6ICNwcmFnbWE6IG5vIGNvdmVyCiAgICAgICAgICAgICAgICAgc2VsZi5zb2NrLmNsb3NlKCkKICAgICAgICAgICAgICAgICBzZWxmLnNvY2sgPSBOb25lICAjIHNvIHdlIGNhbiBjYWxsIGNyZWF0ZVNvY2tldCBuZXh0IHRpbWUKIApAQCAtNjA3LDkgKzYwMCw3IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHMgPSBzZWxmLm1ha2VQaWNrbGUocmVjb3JkKQogICAgICAgICAgICAgc2VsZi5zZW5kKHMpCi0gICAgICAgIGV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOiAjcHJhZ21hOiBubyBjb3ZlcgotICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0OgorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgc2VsZi5oYW5kbGVFcnJvcihyZWNvcmQpCiAKICAgICBkZWYgY2xvc2Uoc2VsZik6CkBAIC03NzMsNyArNzY0LDExIEBACiAKICAgICAgICAgSWYgYWRkcmVzcyBpcyBzcGVjaWZpZWQgYXMgYSBzdHJpbmcsIGEgVU5JWCBzb2NrZXQgaXMgdXNlZC4gVG8gbG9nIHRvIGEKICAgICAgICAgbG9jYWwgc3lzbG9nZCwgIlN5c0xvZ0hhbmRsZXIoYWRkcmVzcz0iL2Rldi9sb2ciKSIgY2FuIGJlIHVzZWQuCi0gICAgICAgIElmIGZhY2lsaXR5IGlzIG5vdCBzcGVjaWZpZWQsIExPR19VU0VSIGlzIHVzZWQuCisgICAgICAgIElmIGZhY2lsaXR5IGlzIG5vdCBzcGVjaWZpZWQsIExPR19VU0VSIGlzIHVzZWQuIElmIHNvY2t0eXBlIGlzCisgICAgICAgIHNwZWNpZmllZCBhcyBzb2NrZXQuU09DS19ER1JBTSBvciBzb2NrZXQuU09DS19TVFJFQU0sIHRoYXQgc3BlY2lmaWMKKyAgICAgICAgc29ja2V0IHR5cGUgd2lsbCBiZSB1c2VkLiBGb3IgVW5peCBzb2NrZXRzLCB5b3UgY2FuIGFsc28gc3BlY2lmeSBhCisgICAgICAgIHNvY2t0eXBlIG9mIE5vbmUsIGluIHdoaWNoIGNhc2Ugc29ja2V0LlNPQ0tfREdSQU0gd2lsbCBiZSB1c2VkLCBmYWxsaW5nCisgICAgICAgIGJhY2sgdG8gc29ja2V0LlNPQ0tfU1RSRUFNLgogICAgICAgICAiIiIKICAgICAgICAgbG9nZ2luZy5IYW5kbGVyLl9faW5pdF9fKHNlbGYpCiAKQEAgLTgwMyw3ICs3OTgsNyBAQAogICAgICAgICAgICAgc2VsZi5zb2NrZXQuY29ubmVjdChhZGRyZXNzKQogICAgICAgICAgICAgIyBpdCB3b3JrZWQsIHNvIHNldCBzZWxmLnNvY2t0eXBlIHRvIHRoZSB1c2VkIHR5cGUKICAgICAgICAgICAgIHNlbGYuc29ja3R5cGUgPSB1c2Vfc29ja3R5cGUKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBzZWxmLnNvY2tldC5jbG9zZSgpCiAgICAgICAgICAgICBpZiBzZWxmLnNvY2t0eXBlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgICMgdXNlciBkaWRuJ3Qgc3BlY2lmeSBmYWxsaW5nIGJhY2ssIHNvIGZhaWwKQEAgLTgxNCw3ICs4MDksNyBAQAogICAgICAgICAgICAgICAgIHNlbGYuc29ja2V0LmNvbm5lY3QoYWRkcmVzcykKICAgICAgICAgICAgICAgICAjIGl0IHdvcmtlZCwgc28gc2V0IHNlbGYuc29ja3R5cGUgdG8gdGhlIHVzZWQgdHlwZQogICAgICAgICAgICAgICAgIHNlbGYuc29ja3R5cGUgPSB1c2Vfc29ja3R5cGUKLSAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICBzZWxmLnNvY2tldC5jbG9zZSgpCiAgICAgICAgICAgICAgICAgcmFpc2UKIApAQCAtODY3LDEwICs4NjIsOSBAQAogICAgICAgICAgICAgbXNnID0gc2VsZi5pZGVudCArIG1zZwogICAgICAgICBpZiBzZWxmLmFwcGVuZF9udWw6CiAgICAgICAgICAgICBtc2cgKz0gJ1wwMDAnCi0gICAgICAgICIiIgotICAgICAgICBXZSBuZWVkIHRvIGNvbnZlcnQgcmVjb3JkIGxldmVsIHRvIGxvd2VyY2FzZSwgbWF5YmUgdGhpcyB3aWxsCi0gICAgICAgIGNoYW5nZSBpbiB0aGUgZnV0dXJlLgotICAgICAgICAiIiIKKworICAgICAgICAjIFdlIG5lZWQgdG8gY29udmVydCByZWNvcmQgbGV2ZWwgdG8gbG93ZXJjYXNlLCBtYXliZSB0aGlzIHdpbGwKKyAgICAgICAgIyBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4KICAgICAgICAgcHJpbyA9ICc8JWQ+JyAlIHNlbGYuZW5jb2RlUHJpb3JpdHkoc2VsZi5mYWNpbGl0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXBQcmlvcml0eShyZWNvcmQubGV2ZWxuYW1lKSkKICAgICAgICAgcHJpbyA9IHByaW8uZW5jb2RlKCd1dGYtOCcpCkBAIC04ODEsNyArODc1LDcgQEAKICAgICAgICAgICAgIGlmIHNlbGYudW5peHNvY2tldDoKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuc29ja2V0LnNlbmQobXNnKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuc29ja2V0LmNsb3NlKCkKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29ubmVjdF91bml4c29ja2V0KHNlbGYuYWRkcmVzcykKICAgICAgICAgICAgICAgICAgICAgc2VsZi5zb2NrZXQuc2VuZChtc2cpCkBAIC04ODksOSArODgzLDcgQEAKICAgICAgICAgICAgICAgICBzZWxmLnNvY2tldC5zZW5kdG8obXNnLCBzZWxmLmFkZHJlc3MpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHNlbGYuc29ja2V0LnNlbmRhbGwobXNnKQotICAgICAgICBleGNlcHQgKEtleWJvYXJkSW50ZXJydXB0LCBTeXN0ZW1FeGl0KTogI3ByYWdtYTogbm8gY292ZXIKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdDoKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgIHNlbGYuaGFuZGxlRXJyb3IocmVjb3JkKQogCiBjbGFzcyBTTVRQSGFuZGxlcihsb2dnaW5nLkhhbmRsZXIpOgpAQCAtOTY5LDkgKzk2MSw3IEBACiAgICAgICAgICAgICAgICAgc210cC5sb2dpbihzZWxmLnVzZXJuYW1lLCBzZWxmLnBhc3N3b3JkKQogICAgICAgICAgICAgc210cC5zZW5kbWFpbChzZWxmLmZyb21hZGRyLCBzZWxmLnRvYWRkcnMsIG1zZykKICAgICAgICAgICAgIHNtdHAucXVpdCgpCi0gICAgICAgIGV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOiAjcHJhZ21hOiBubyBjb3ZlcgotICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0OgorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgc2VsZi5oYW5kbGVFcnJvcihyZWNvcmQpCiAKIGNsYXNzIE5URXZlbnRMb2dIYW5kbGVyKGxvZ2dpbmcuSGFuZGxlcik6CkBAIC0xMDU2LDkgKzEwNDYsNyBAQAogICAgICAgICAgICAgICAgIHR5cGUgPSBzZWxmLmdldEV2ZW50VHlwZShyZWNvcmQpCiAgICAgICAgICAgICAgICAgbXNnID0gc2VsZi5mb3JtYXQocmVjb3JkKQogICAgICAgICAgICAgICAgIHNlbGYuX3dlbHUuUmVwb3J0RXZlbnQoc2VsZi5hcHBuYW1lLCBpZCwgY2F0LCB0eXBlLCBbbXNnXSkKLSAgICAgICAgICAgIGV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOiAjcHJhZ21hOiBubyBjb3ZlcgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgICAgIHNlbGYuaGFuZGxlRXJyb3IocmVjb3JkKQogCiAgICAgZGVmIGNsb3NlKHNlbGYpOgpAQCAtMTE0Myw5ICsxMTMxLDcgQEAKICAgICAgICAgICAgIGlmIHNlbGYubWV0aG9kID09ICJQT1NUIjoKICAgICAgICAgICAgICAgICBoLnNlbmQoZGF0YS5lbmNvZGUoJ3V0Zi04JykpCiAgICAgICAgICAgICBoLmdldHJlc3BvbnNlKCkgICAgI2Nhbid0IGRvIGFueXRoaW5nIHdpdGggdGhlIHJlc3VsdAotICAgICAgICBleGNlcHQgKEtleWJvYXJkSW50ZXJydXB0LCBTeXN0ZW1FeGl0KTogI3ByYWdtYTogbm8gY292ZXIKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdDoKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgIHNlbGYuaGFuZGxlRXJyb3IocmVjb3JkKQogCiBjbGFzcyBCdWZmZXJpbmdIYW5kbGVyKGxvZ2dpbmcuSGFuZGxlcik6CkBAIC0xMzI1LDkgKzEzMTEsNyBAQAogICAgICAgICAiIiIKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5lbnF1ZXVlKHNlbGYucHJlcGFyZShyZWNvcmQpKQotICAgICAgICBleGNlcHQgKEtleWJvYXJkSW50ZXJydXB0LCBTeXN0ZW1FeGl0KTogI3ByYWdtYTogbm8gY292ZXIKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdDoKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgIHNlbGYuaGFuZGxlRXJyb3IocmVjb3JkKQogCiBpZiB0aHJlYWRpbmc6CmRpZmYgLS1naXQgYS9MaWIvbHptYS5weSBiL0xpYi9sem1hLnB5CmluZGV4IDFhMWIwNjUuLmIyZTJmN2UgMTAwNjQ0Ci0tLSBhL0xpYi9sem1hLnB5CisrKyBiL0xpYi9sem1hLnB5CkBAIC01NSw3ICs1NSw3IEBACiAgICAgICAgIGJlIGFuIGV4aXN0aW5nIGZpbGUgb2JqZWN0IHRvIHJlYWQgZnJvbSBvciB3cml0ZSB0by4KIAogICAgICAgICBtb2RlIGNhbiBiZSAiciIgZm9yIHJlYWRpbmcgKGRlZmF1bHQpLCAidyIgZm9yIChvdmVyKXdyaXRpbmcsIG9yCi0gICAgICAgICJhIiBmb3IgYXBwZW5kaW5nLiBUaGVzZSBjYW4gZXF1aXZhbGVudGx5IGJlIGdpdmVuIGFzICJyYiIsICJ3YiIsCisgICAgICAgICJhIiBmb3IgYXBwZW5kaW5nLiBUaGVzZSBjYW4gZXF1aXZhbGVudGx5IGJlIGdpdmVuIGFzICJyYiIsICJ3YiIKICAgICAgICAgYW5kICJhYiIgcmVzcGVjdGl2ZWx5LgogCiAgICAgICAgIGZvcm1hdCBzcGVjaWZpZXMgdGhlIGNvbnRhaW5lciBmb3JtYXQgdG8gdXNlIGZvciB0aGUgZmlsZS4KQEAgLTExMCw3ICsxMTAsOCBAQAogICAgICAgICAgICAgIyBzdHJlYW0gd2lsbCBuZWVkIGEgc2VwYXJhdGUgZGVjb21wcmVzc29yIG9iamVjdC4KICAgICAgICAgICAgIHNlbGYuX2luaXRfYXJncyA9IHsiZm9ybWF0Ijpmb3JtYXQsICJmaWx0ZXJzIjpmaWx0ZXJzfQogICAgICAgICAgICAgc2VsZi5fZGVjb21wcmVzc29yID0gTFpNQURlY29tcHJlc3NvcigqKnNlbGYuX2luaXRfYXJncykKLSAgICAgICAgICAgIHNlbGYuX2J1ZmZlciA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYuX2J1ZmZlciA9IGIiIgorICAgICAgICAgICAgc2VsZi5fYnVmZmVyX29mZnNldCA9IDAKICAgICAgICAgZWxpZiBtb2RlIGluICgidyIsICJ3YiIsICJhIiwgImFiIik6CiAgICAgICAgICAgICBpZiBmb3JtYXQgaXMgTm9uZToKICAgICAgICAgICAgICAgICBmb3JtYXQgPSBGT1JNQVRfWFoKQEAgLTE0Myw3ICsxNDQsNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpZiBzZWxmLl9tb2RlIGluIChfTU9ERV9SRUFELCBfTU9ERV9SRUFEX0VPRik6CiAgICAgICAgICAgICAgICAgc2VsZi5fZGVjb21wcmVzc29yID0gTm9uZQotICAgICAgICAgICAgICAgIHNlbGYuX2J1ZmZlciA9IE5vbmUKKyAgICAgICAgICAgICAgICBzZWxmLl9idWZmZXIgPSBiIiIKICAgICAgICAgICAgIGVsaWYgc2VsZi5fbW9kZSA9PSBfTU9ERV9XUklURToKICAgICAgICAgICAgICAgICBzZWxmLl9mcC53cml0ZShzZWxmLl9jb21wcmVzc29yLmZsdXNoKCkpCiAgICAgICAgICAgICAgICAgc2VsZi5fY29tcHJlc3NvciA9IE5vbmUKQEAgLTE4NywxNSArMTg4LDE4IEBACiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJL08gb3BlcmF0aW9uIG9uIGNsb3NlZCBmaWxlIikKIAogICAgIGRlZiBfY2hlY2tfY2FuX3JlYWQoc2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLnJlYWRhYmxlKCk6CisgICAgICAgIGlmIHNlbGYuX21vZGUgbm90IGluIChfTU9ERV9SRUFELCBfTU9ERV9SRUFEX0VPRik6CisgICAgICAgICAgICBzZWxmLl9jaGVja19ub3RfY2xvc2VkKCkKICAgICAgICAgICAgIHJhaXNlIGlvLlVuc3VwcG9ydGVkT3BlcmF0aW9uKCJGaWxlIG5vdCBvcGVuIGZvciByZWFkaW5nIikKIAogICAgIGRlZiBfY2hlY2tfY2FuX3dyaXRlKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi53cml0YWJsZSgpOgorICAgICAgICBpZiBzZWxmLl9tb2RlICE9IF9NT0RFX1dSSVRFOgorICAgICAgICAgICAgc2VsZi5fY2hlY2tfbm90X2Nsb3NlZCgpCiAgICAgICAgICAgICByYWlzZSBpby5VbnN1cHBvcnRlZE9wZXJhdGlvbigiRmlsZSBub3Qgb3BlbiBmb3Igd3JpdGluZyIpCiAKICAgICBkZWYgX2NoZWNrX2Nhbl9zZWVrKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5yZWFkYWJsZSgpOgorICAgICAgICBpZiBzZWxmLl9tb2RlIG5vdCBpbiAoX01PREVfUkVBRCwgX01PREVfUkVBRF9FT0YpOgorICAgICAgICAgICAgc2VsZi5fY2hlY2tfbm90X2Nsb3NlZCgpCiAgICAgICAgICAgICByYWlzZSBpby5VbnN1cHBvcnRlZE9wZXJhdGlvbigiU2Vla2luZyBpcyBvbmx5IHN1cHBvcnRlZCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib24gZmlsZXMgb3BlbiBmb3IgcmVhZGluZyIpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9mcC5zZWVrYWJsZSgpOgpAQCAtMjA0LDE2ICsyMDgsMTMgQEAKIAogICAgICMgRmlsbCB0aGUgcmVhZGFoZWFkIGJ1ZmZlciBpZiBpdCBpcyBlbXB0eS4gUmV0dXJucyBGYWxzZSBvbiBFT0YuCiAgICAgZGVmIF9maWxsX2J1ZmZlcihzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fbW9kZSA9PSBfTU9ERV9SRUFEX0VPRjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICAjIERlcGVuZGluZyBvbiB0aGUgaW5wdXQgZGF0YSwgb3VyIGNhbGwgdG8gdGhlIGRlY29tcHJlc3NvciBtYXkgbm90CiAgICAgICAgICMgcmV0dXJuIGFueSBkYXRhLiBJbiB0aGlzIGNhc2UsIHRyeSBhZ2FpbiBhZnRlciByZWFkaW5nIGFub3RoZXIgYmxvY2suCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBpZiBzZWxmLl9idWZmZXI6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotICAgICAgICAgICAgaWYgc2VsZi5fZGVjb21wcmVzc29yLnVudXNlZF9kYXRhOgotICAgICAgICAgICAgICAgIHJhd2Jsb2NrID0gc2VsZi5fZGVjb21wcmVzc29yLnVudXNlZF9kYXRhCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhd2Jsb2NrID0gc2VsZi5fZnAucmVhZChfQlVGRkVSX1NJWkUpCisgICAgICAgIHdoaWxlIHNlbGYuX2J1ZmZlcl9vZmZzZXQgPT0gbGVuKHNlbGYuX2J1ZmZlcik6CisgICAgICAgICAgICByYXdibG9jayA9IChzZWxmLl9kZWNvbXByZXNzb3IudW51c2VkX2RhdGEgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZwLnJlYWQoX0JVRkZFUl9TSVpFKSkKIAogICAgICAgICAgICAgaWYgbm90IHJhd2Jsb2NrOgogICAgICAgICAgICAgICAgIGlmIHNlbGYuX2RlY29tcHJlc3Nvci5lb2Y6CkBAIC0yMjksMzAgKzIzMCw0OCBAQAogICAgICAgICAgICAgICAgIHNlbGYuX2RlY29tcHJlc3NvciA9IExaTUFEZWNvbXByZXNzb3IoKipzZWxmLl9pbml0X2FyZ3MpCiAKICAgICAgICAgICAgIHNlbGYuX2J1ZmZlciA9IHNlbGYuX2RlY29tcHJlc3Nvci5kZWNvbXByZXNzKHJhd2Jsb2NrKQorICAgICAgICAgICAgc2VsZi5fYnVmZmVyX29mZnNldCA9IDAKKyAgICAgICAgcmV0dXJuIFRydWUKIAogICAgICMgUmVhZCBkYXRhIHVudGlsIEVPRi4KICAgICAjIElmIHJldHVybl9kYXRhIGlzIGZhbHNlLCBjb25zdW1lIHRoZSBkYXRhIHdpdGhvdXQgcmV0dXJuaW5nIGl0LgogICAgIGRlZiBfcmVhZF9hbGwoc2VsZiwgcmV0dXJuX2RhdGE9VHJ1ZSk6CisgICAgICAgICMgVGhlIGxvb3AgYXNzdW1lcyB0aGF0IF9idWZmZXJfb2Zmc2V0IGlzIDAuIEVuc3VyZSB0aGF0IHRoaXMgaXMgdHJ1ZS4KKyAgICAgICAgc2VsZi5fYnVmZmVyID0gc2VsZi5fYnVmZmVyW3NlbGYuX2J1ZmZlcl9vZmZzZXQ6XQorICAgICAgICBzZWxmLl9idWZmZXJfb2Zmc2V0ID0gMAorCiAgICAgICAgIGJsb2NrcyA9IFtdCiAgICAgICAgIHdoaWxlIHNlbGYuX2ZpbGxfYnVmZmVyKCk6CiAgICAgICAgICAgICBpZiByZXR1cm5fZGF0YToKICAgICAgICAgICAgICAgICBibG9ja3MuYXBwZW5kKHNlbGYuX2J1ZmZlcikKICAgICAgICAgICAgIHNlbGYuX3BvcyArPSBsZW4oc2VsZi5fYnVmZmVyKQotICAgICAgICAgICAgc2VsZi5fYnVmZmVyID0gTm9uZQorICAgICAgICAgICAgc2VsZi5fYnVmZmVyID0gYiIiCiAgICAgICAgIGlmIHJldHVybl9kYXRhOgogICAgICAgICAgICAgcmV0dXJuIGIiIi5qb2luKGJsb2NrcykKIAogICAgICMgUmVhZCBhIGJsb2NrIG9mIHVwIHRvIG4gYnl0ZXMuCiAgICAgIyBJZiByZXR1cm5fZGF0YSBpcyBmYWxzZSwgY29uc3VtZSB0aGUgZGF0YSB3aXRob3V0IHJldHVybmluZyBpdC4KICAgICBkZWYgX3JlYWRfYmxvY2soc2VsZiwgbiwgcmV0dXJuX2RhdGE9VHJ1ZSk6CisgICAgICAgICMgSWYgd2UgaGF2ZSBlbm91Z2ggZGF0YSBidWZmZXJlZCwgcmV0dXJuIGltbWVkaWF0ZWx5LgorICAgICAgICBlbmQgPSBzZWxmLl9idWZmZXJfb2Zmc2V0ICsgbgorICAgICAgICBpZiBlbmQgPD0gbGVuKHNlbGYuX2J1ZmZlcik6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5fYnVmZmVyW3NlbGYuX2J1ZmZlcl9vZmZzZXQgOiBlbmRdCisgICAgICAgICAgICBzZWxmLl9idWZmZXJfb2Zmc2V0ID0gZW5kCisgICAgICAgICAgICBzZWxmLl9wb3MgKz0gbGVuKGRhdGEpCisgICAgICAgICAgICByZXR1cm4gZGF0YSBpZiByZXR1cm5fZGF0YSBlbHNlIE5vbmUKKworICAgICAgICAjIFRoZSBsb29wIGFzc3VtZXMgdGhhdCBfYnVmZmVyX29mZnNldCBpcyAwLiBFbnN1cmUgdGhhdCB0aGlzIGlzIHRydWUuCisgICAgICAgIHNlbGYuX2J1ZmZlciA9IHNlbGYuX2J1ZmZlcltzZWxmLl9idWZmZXJfb2Zmc2V0Ol0KKyAgICAgICAgc2VsZi5fYnVmZmVyX29mZnNldCA9IDAKKwogICAgICAgICBibG9ja3MgPSBbXQogICAgICAgICB3aGlsZSBuID4gMCBhbmQgc2VsZi5fZmlsbF9idWZmZXIoKToKICAgICAgICAgICAgIGlmIG4gPCBsZW4oc2VsZi5fYnVmZmVyKToKICAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5fYnVmZmVyWzpuXQotICAgICAgICAgICAgICAgIHNlbGYuX2J1ZmZlciA9IHNlbGYuX2J1ZmZlcltuOl0KKyAgICAgICAgICAgICAgICBzZWxmLl9idWZmZXJfb2Zmc2V0ID0gbgogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5fYnVmZmVyCi0gICAgICAgICAgICAgICAgc2VsZi5fYnVmZmVyID0gTm9uZQorICAgICAgICAgICAgICAgIHNlbGYuX2J1ZmZlciA9IGIiIgogICAgICAgICAgICAgaWYgcmV0dXJuX2RhdGE6CiAgICAgICAgICAgICAgICAgYmxvY2tzLmFwcGVuZChkYXRhKQogICAgICAgICAgICAgc2VsZi5fcG9zICs9IGxlbihkYXRhKQpAQCAtMjY3LDkgKzI4Niw5IEBACiAgICAgICAgIFRoZSBleGFjdCBudW1iZXIgb2YgYnl0ZXMgcmV0dXJuZWQgaXMgdW5zcGVjaWZpZWQuCiAgICAgICAgICIiIgogICAgICAgICBzZWxmLl9jaGVja19jYW5fcmVhZCgpCi0gICAgICAgIGlmIHNlbGYuX21vZGUgPT0gX01PREVfUkVBRF9FT0Ygb3Igbm90IHNlbGYuX2ZpbGxfYnVmZmVyKCk6CisgICAgICAgIGlmIG5vdCBzZWxmLl9maWxsX2J1ZmZlcigpOgogICAgICAgICAgICAgcmV0dXJuIGIiIgotICAgICAgICByZXR1cm4gc2VsZi5fYnVmZmVyCisgICAgICAgIHJldHVybiBzZWxmLl9idWZmZXJbc2VsZi5fYnVmZmVyX29mZnNldDpdCiAKICAgICBkZWYgcmVhZChzZWxmLCBzaXplPS0xKToKICAgICAgICAgIiIiUmVhZCB1cCB0byBzaXplIHVuY29tcHJlc3NlZCBieXRlcyBmcm9tIHRoZSBmaWxlLgpAQCAtMjc4LDcgKzI5Nyw3IEBACiAgICAgICAgIFJldHVybnMgYiIiIGlmIHRoZSBmaWxlIGlzIGFscmVhZHkgYXQgRU9GLgogICAgICAgICAiIiIKICAgICAgICAgc2VsZi5fY2hlY2tfY2FuX3JlYWQoKQotICAgICAgICBpZiBzZWxmLl9tb2RlID09IF9NT0RFX1JFQURfRU9GIG9yIHNpemUgPT0gMDoKKyAgICAgICAgaWYgc2l6ZSA9PSAwOgogICAgICAgICAgICAgcmV0dXJuIGIiIgogICAgICAgICBlbGlmIHNpemUgPCAwOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JlYWRfYWxsKCkKQEAgLTI5NSwxOCArMzE0LDQwIEBACiAgICAgICAgICMgdGhpcyBkb2VzIG5vdCBnaXZlIGVub3VnaCBkYXRhIGZvciB0aGUgZGVjb21wcmVzc29yIHRvIG1ha2UgcHJvZ3Jlc3MuCiAgICAgICAgICMgSW4gdGhpcyBjYXNlIHdlIG1ha2UgbXVsdGlwbGUgcmVhZHMsIHRvIGF2b2lkIHJldHVybmluZyBiIiIuCiAgICAgICAgIHNlbGYuX2NoZWNrX2Nhbl9yZWFkKCkKLSAgICAgICAgaWYgKHNpemUgPT0gMCBvciBzZWxmLl9tb2RlID09IF9NT0RFX1JFQURfRU9GIG9yCi0gICAgICAgICAgICBub3Qgc2VsZi5fZmlsbF9idWZmZXIoKSk6CisgICAgICAgIGlmIChzaXplID09IDAgb3IKKyAgICAgICAgICAgICMgT25seSBjYWxsIF9maWxsX2J1ZmZlcigpIGlmIHRoZSBidWZmZXIgaXMgYWN0dWFsbHkgZW1wdHkuCisgICAgICAgICAgICAjIFRoaXMgZ2l2ZXMgYSBzaWduaWZpY2FudCBzcGVlZHVwIGlmICpzaXplKiBpcyBzbWFsbC4KKyAgICAgICAgICAgIChzZWxmLl9idWZmZXJfb2Zmc2V0ID09IGxlbihzZWxmLl9idWZmZXIpIGFuZCBub3Qgc2VsZi5fZmlsbF9idWZmZXIoKSkpOgogICAgICAgICAgICAgcmV0dXJuIGIiIgotICAgICAgICBpZiAwIDwgc2l6ZSA8IGxlbihzZWxmLl9idWZmZXIpOgotICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2J1ZmZlcls6c2l6ZV0KLSAgICAgICAgICAgIHNlbGYuX2J1ZmZlciA9IHNlbGYuX2J1ZmZlcltzaXplOl0KKyAgICAgICAgaWYgc2l6ZSA+IDA6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5fYnVmZmVyW3NlbGYuX2J1ZmZlcl9vZmZzZXQgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9idWZmZXJfb2Zmc2V0ICsgc2l6ZV0KKyAgICAgICAgICAgIHNlbGYuX2J1ZmZlcl9vZmZzZXQgKz0gbGVuKGRhdGEpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBkYXRhID0gc2VsZi5fYnVmZmVyCi0gICAgICAgICAgICBzZWxmLl9idWZmZXIgPSBOb25lCisgICAgICAgICAgICBkYXRhID0gc2VsZi5fYnVmZmVyW3NlbGYuX2J1ZmZlcl9vZmZzZXQ6XQorICAgICAgICAgICAgc2VsZi5fYnVmZmVyID0gYiIiCisgICAgICAgICAgICBzZWxmLl9idWZmZXJfb2Zmc2V0ID0gMAogICAgICAgICBzZWxmLl9wb3MgKz0gbGVuKGRhdGEpCiAgICAgICAgIHJldHVybiBkYXRhCiAKKyAgICBkZWYgcmVhZGxpbmUoc2VsZiwgc2l6ZT0tMSk6CisgICAgICAgICIiIlJlYWQgYSBsaW5lIG9mIHVuY29tcHJlc3NlZCBieXRlcyBmcm9tIHRoZSBmaWxlLgorCisgICAgICAgIFRoZSB0ZXJtaW5hdGluZyBuZXdsaW5lIChpZiBwcmVzZW50KSBpcyByZXRhaW5lZC4gSWYgc2l6ZSBpcworICAgICAgICBub24tbmVnYXRpdmUsIG5vIG1vcmUgdGhhbiBzaXplIGJ5dGVzIHdpbGwgYmUgcmVhZCAoaW4gd2hpY2gKKyAgICAgICAgY2FzZSB0aGUgbGluZSBtYXkgYmUgaW5jb21wbGV0ZSkuIFJldHVybnMgYicnIGlmIGFscmVhZHkgYXQgRU9GLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fY2hlY2tfY2FuX3JlYWQoKQorICAgICAgICAjIFNob3J0Y3V0IGZvciB0aGUgY29tbW9uIGNhc2UgLSB0aGUgd2hvbGUgbGluZSBpcyBpbiB0aGUgYnVmZmVyLgorICAgICAgICBpZiBzaXplIDwgMDoKKyAgICAgICAgICAgIGVuZCA9IHNlbGYuX2J1ZmZlci5maW5kKGIiXG4iLCBzZWxmLl9idWZmZXJfb2Zmc2V0KSArIDEKKyAgICAgICAgICAgIGlmIGVuZCA+IDA6CisgICAgICAgICAgICAgICAgbGluZSA9IHNlbGYuX2J1ZmZlcltzZWxmLl9idWZmZXJfb2Zmc2V0IDogZW5kXQorICAgICAgICAgICAgICAgIHNlbGYuX2J1ZmZlcl9vZmZzZXQgPSBlbmQKKyAgICAgICAgICAgICAgICBzZWxmLl9wb3MgKz0gbGVuKGxpbmUpCisgICAgICAgICAgICAgICAgcmV0dXJuIGxpbmUKKyAgICAgICAgcmV0dXJuIGlvLkJ1ZmZlcmVkSU9CYXNlLnJlYWRsaW5lKHNlbGYsIHNpemUpCisKICAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6CiAgICAgICAgICIiIldyaXRlIGEgYnl0ZXMgb2JqZWN0IHRvIHRoZSBmaWxlLgogCkBAIC0zMjYsNyArMzY3LDggQEAKICAgICAgICAgc2VsZi5fbW9kZSA9IF9NT0RFX1JFQUQKICAgICAgICAgc2VsZi5fcG9zID0gMAogICAgICAgICBzZWxmLl9kZWNvbXByZXNzb3IgPSBMWk1BRGVjb21wcmVzc29yKCoqc2VsZi5faW5pdF9hcmdzKQotICAgICAgICBzZWxmLl9idWZmZXIgPSBOb25lCisgICAgICAgIHNlbGYuX2J1ZmZlciA9IGIiIgorICAgICAgICBzZWxmLl9idWZmZXJfb2Zmc2V0ID0gMAogCiAgICAgZGVmIHNlZWsoc2VsZiwgb2Zmc2V0LCB3aGVuY2U9MCk6CiAgICAgICAgICIiIkNoYW5nZSB0aGUgZmlsZSBwb3NpdGlvbi4KQEAgLTM2NSw4ICs0MDcsNyBAQAogICAgICAgICAgICAgb2Zmc2V0IC09IHNlbGYuX3BvcwogCiAgICAgICAgICMgUmVhZCBhbmQgZGlzY2FyZCBkYXRhIHVudGlsIHdlIHJlYWNoIHRoZSBkZXNpcmVkIHBvc2l0aW9uLgotICAgICAgICBpZiBzZWxmLl9tb2RlICE9IF9NT0RFX1JFQURfRU9GOgotICAgICAgICAgICAgc2VsZi5fcmVhZF9ibG9jayhvZmZzZXQsIHJldHVybl9kYXRhPUZhbHNlKQorICAgICAgICBzZWxmLl9yZWFkX2Jsb2NrKG9mZnNldCwgcmV0dXJuX2RhdGE9RmFsc2UpCiAKICAgICAgICAgcmV0dXJuIHNlbGYuX3BvcwogCkBAIC0zODEsMjMgKzQyMiwyNCBAQAogICAgICAgICAgZW5jb2Rpbmc9Tm9uZSwgZXJyb3JzPU5vbmUsIG5ld2xpbmU9Tm9uZSk6CiAgICAgIiIiT3BlbiBhbiBMWk1BLWNvbXByZXNzZWQgZmlsZSBpbiBiaW5hcnkgb3IgdGV4dCBtb2RlLgogCi0gICAgZmlsZW5hbWUgY2FuIGJlIGVpdGhlciBhbiBhY3R1YWwgZmlsZSBuYW1lIChnaXZlbiBhcyBhIHN0ciBvciBieXRlcyBvYmplY3QpLAotICAgIGluIHdoaWNoIGNhc2UgdGhlIG5hbWVkIGZpbGUgaXMgb3BlbmVkLCBvciBpdCBjYW4gYmUgYW4gZXhpc3RpbmcgZmlsZSBvYmplY3QKLSAgICB0byByZWFkIGZyb20gb3Igd3JpdGUgdG8uCisgICAgZmlsZW5hbWUgY2FuIGJlIGVpdGhlciBhbiBhY3R1YWwgZmlsZSBuYW1lIChnaXZlbiBhcyBhIHN0ciBvciBieXRlcworICAgIG9iamVjdCksIGluIHdoaWNoIGNhc2UgdGhlIG5hbWVkIGZpbGUgaXMgb3BlbmVkLCBvciBpdCBjYW4gYmUgYW4KKyAgICBleGlzdGluZyBmaWxlIG9iamVjdCB0byByZWFkIGZyb20gb3Igd3JpdGUgdG8uCiAKLSAgICBUaGUgbW9kZSBhcmd1bWVudCBjYW4gYmUgInIiLCAicmIiIChkZWZhdWx0KSwgInciLCAid2IiLCAiYSIsIG9yICJhYiIgZm9yCi0gICAgYmluYXJ5IG1vZGUsIG9yICJydCIsICJ3dCIgb3IgImF0IiBmb3IgdGV4dCBtb2RlLgorICAgIFRoZSBtb2RlIGFyZ3VtZW50IGNhbiBiZSAiciIsICJyYiIgKGRlZmF1bHQpLCAidyIsICJ3YiIsICJhIiBvciAiYWIiCisgICAgZm9yIGJpbmFyeSBtb2RlLCBvciAicnQiLCAid3QiIG9yICJhdCIgZm9yIHRleHQgbW9kZS4KIAotICAgIFRoZSBmb3JtYXQsIGNoZWNrLCBwcmVzZXQgYW5kIGZpbHRlcnMgYXJndW1lbnRzIHNwZWNpZnkgdGhlIGNvbXByZXNzaW9uCi0gICAgc2V0dGluZ3MsIGFzIGZvciBMWk1BQ29tcHJlc3NvciwgTFpNQURlY29tcHJlc3NvciBhbmQgTFpNQUZpbGUuCisgICAgVGhlIGZvcm1hdCwgY2hlY2ssIHByZXNldCBhbmQgZmlsdGVycyBhcmd1bWVudHMgc3BlY2lmeSB0aGUKKyAgICBjb21wcmVzc2lvbiBzZXR0aW5ncywgYXMgZm9yIExaTUFDb21wcmVzc29yLCBMWk1BRGVjb21wcmVzc29yIGFuZAorICAgIExaTUFGaWxlLgogCi0gICAgRm9yIGJpbmFyeSBtb2RlLCB0aGlzIGZ1bmN0aW9uIGlzIGVxdWl2YWxlbnQgdG8gdGhlIExaTUFGaWxlIGNvbnN0cnVjdG9yOgotICAgIExaTUFGaWxlKGZpbGVuYW1lLCBtb2RlLCAuLi4pLiBJbiB0aGlzIGNhc2UsIHRoZSBlbmNvZGluZywgZXJyb3JzIGFuZAotICAgIG5ld2xpbmUgYXJndW1lbnRzIG11c3Qgbm90IGJlIHByb3ZpZGVkLgorICAgIEZvciBiaW5hcnkgbW9kZSwgdGhpcyBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIHRoZSBMWk1BRmlsZQorICAgIGNvbnN0cnVjdG9yOiBMWk1BRmlsZShmaWxlbmFtZSwgbW9kZSwgLi4uKS4gSW4gdGhpcyBjYXNlLCB0aGUKKyAgICBlbmNvZGluZywgZXJyb3JzIGFuZCBuZXdsaW5lIGFyZ3VtZW50cyBtdXN0IG5vdCBiZSBwcm92aWRlZC4KIAogICAgIEZvciB0ZXh0IG1vZGUsIGEgTFpNQUZpbGUgb2JqZWN0IGlzIGNyZWF0ZWQsIGFuZCB3cmFwcGVkIGluIGFuCi0gICAgaW8uVGV4dElPV3JhcHBlciBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgZW5jb2RpbmcsIGVycm9yIGhhbmRsaW5nCi0gICAgYmVoYXZpb3IsIGFuZCBsaW5lIGVuZGluZyhzKS4KKyAgICBpby5UZXh0SU9XcmFwcGVyIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBlbmNvZGluZywgZXJyb3IKKyAgICBoYW5kbGluZyBiZWhhdmlvciwgYW5kIGxpbmUgZW5kaW5nKHMpLgogCiAgICAgIiIiCiAgICAgaWYgInQiIGluIG1vZGU6CkBAIC00MjcsNyArNDY5LDcgQEAKICAgICBSZWZlciB0byBMWk1BQ29tcHJlc3NvcidzIGRvY3N0cmluZyBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUKICAgICBvcHRpb25hbCBhcmd1bWVudHMgKmZvcm1hdCosICpjaGVjayosICpwcmVzZXQqIGFuZCAqZmlsdGVycyouCiAKLSAgICBGb3IgaW5jcmVtZW50YWwgY29tcHJlc3Npb24sIHVzZSBhbiBMWk1BQ29tcHJlc3NvciBvYmplY3QgaW5zdGVhZC4KKyAgICBGb3IgaW5jcmVtZW50YWwgY29tcHJlc3Npb24sIHVzZSBhbiBMWk1BQ29tcHJlc3NvciBpbnN0ZWFkLgogICAgICIiIgogICAgIGNvbXAgPSBMWk1BQ29tcHJlc3Nvcihmb3JtYXQsIGNoZWNrLCBwcmVzZXQsIGZpbHRlcnMpCiAgICAgcmV0dXJuIGNvbXAuY29tcHJlc3MoZGF0YSkgKyBjb21wLmZsdXNoKCkKQEAgLTQzOSw3ICs0ODEsNyBAQAogICAgIFJlZmVyIHRvIExaTUFEZWNvbXByZXNzb3IncyBkb2NzdHJpbmcgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlCiAgICAgb3B0aW9uYWwgYXJndW1lbnRzICpmb3JtYXQqLCAqY2hlY2sqIGFuZCAqZmlsdGVycyouCiAKLSAgICBGb3IgaW5jcmVtZW50YWwgZGVjb21wcmVzc2lvbiwgdXNlIGEgTFpNQURlY29tcHJlc3NvciBvYmplY3QgaW5zdGVhZC4KKyAgICBGb3IgaW5jcmVtZW50YWwgZGVjb21wcmVzc2lvbiwgdXNlIGFuIExaTUFEZWNvbXByZXNzb3IgaW5zdGVhZC4KICAgICAiIiIKICAgICByZXN1bHRzID0gW10KICAgICB3aGlsZSBUcnVlOgpkaWZmIC0tZ2l0IGEvTGliL21hY3BhdGgucHkgYi9MaWIvbWFjcGF0aC5weQppbmRleCAxNjE1ZDkxLi5kMzRmOWU5NCAxMDA2NDQKLS0tIGEvTGliL21hY3BhdGgucHkKKysrIGIvTGliL21hY3BhdGgucHkKQEAgLTEyNyw3ICsxMjcsNyBAQAogCiAgICAgdHJ5OgogICAgICAgICBzdCA9IG9zLmxzdGF0KHBhdGgpCi0gICAgZXhjZXB0IG9zLmVycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICByZXR1cm4gRmFsc2UKICAgICByZXR1cm4gVHJ1ZQogCmRpZmYgLS1naXQgYS9MaWIvbWFpbGJveC5weSBiL0xpYi9tYWlsYm94LnB5CmluZGV4IGQzYmYzZmQuLjIwNDk1MTYgMTAwNjQ0Ci0tLSBhL0xpYi9tYWlsYm94LnB5CisrKyBiL0xpYi9tYWlsYm94LnB5CkBAIC0yMiw5ICsyMiw2IEBACiBpbXBvcnQgaW8KIGltcG9ydCBjb250ZXh0bGliCiB0cnk6Ci0gICAgaWYgc3lzLnBsYXRmb3JtID09ICdvczJlbXgnOgotICAgICAgICAjIE9TLzIgRU1YIGZjbnRsKCkgbm90IGFkZXF1YXRlCi0gICAgICAgIHJhaXNlIEltcG9ydEVycm9yCiAgICAgaW1wb3J0IGZjbnRsCiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgZmNudGwgPSBOb25lCkBAIC0zMzcsMTEgKzMzNCw4IEBACiAgICAgICAgICMgVGhpcyBvdmVycmlkZXMgYW4gaW5hcHBsaWNhYmxlIGltcGxlbWVudGF0aW9uIGluIHRoZSBzdXBlcmNsYXNzLgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnJlbW92ZShrZXkpCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgZXhjZXB0IChLZXlFcnJvciwgRmlsZU5vdEZvdW5kRXJyb3IpOgogICAgICAgICAgICAgcGFzcwotICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgotICAgICAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FTk9FTlQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UKIAogICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIG1lc3NhZ2UpOgogICAgICAgICAiIiJSZXBsYWNlIHRoZSBrZXllZCBtZXNzYWdlOyByYWlzZSBLZXlFcnJvciBpZiBpdCBkb2Vzbid0IGV4aXN0LiIiIgpAQCAtMzY5LDE0ICszNjMsMTEgQEAKICAgICBkZWYgZ2V0X21lc3NhZ2Uoc2VsZiwga2V5KToKICAgICAgICAgIiIiUmV0dXJuIGEgTWVzc2FnZSByZXByZXNlbnRhdGlvbiBvciByYWlzZSBhIEtleUVycm9yLiIiIgogICAgICAgICBzdWJwYXRoID0gc2VsZi5fbG9va3VwKGtleSkKLSAgICAgICAgZiA9IG9wZW4ob3MucGF0aC5qb2luKHNlbGYuX3BhdGgsIHN1YnBhdGgpLCAncmInKQotICAgICAgICB0cnk6CisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oc2VsZi5fcGF0aCwgc3VicGF0aCksICdyYicpIGFzIGY6CiAgICAgICAgICAgICBpZiBzZWxmLl9mYWN0b3J5OgogICAgICAgICAgICAgICAgIG1zZyA9IHNlbGYuX2ZhY3RvcnkoZikKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgbXNnID0gTWFpbGRpck1lc3NhZ2UoZikKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGYuY2xvc2UoKQogICAgICAgICBzdWJkaXIsIG5hbWUgPSBvcy5wYXRoLnNwbGl0KHN1YnBhdGgpCiAgICAgICAgIG1zZy5zZXRfc3ViZGlyKHN1YmRpcikKICAgICAgICAgaWYgc2VsZi5jb2xvbiBpbiBuYW1lOgpAQCAtMzg2LDExICszNzcsOCBAQAogCiAgICAgZGVmIGdldF9ieXRlcyhzZWxmLCBrZXkpOgogICAgICAgICAiIiJSZXR1cm4gYSBieXRlcyByZXByZXNlbnRhdGlvbiBvciByYWlzZSBhIEtleUVycm9yLiIiIgotICAgICAgICBmID0gb3Blbihvcy5wYXRoLmpvaW4oc2VsZi5fcGF0aCwgc2VsZi5fbG9va3VwKGtleSkpLCAncmInKQotICAgICAgICB0cnk6CisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oc2VsZi5fcGF0aCwgc2VsZi5fbG9va3VwKGtleSkpLCAncmInKSBhcyBmOgogICAgICAgICAgICAgcmV0dXJuIGYucmVhZCgpLnJlcGxhY2UobGluZXNlcCwgYidcbicpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBmLmNsb3NlKCkKIAogICAgIGRlZiBnZXRfZmlsZShzZWxmLCBrZXkpOgogICAgICAgICAiIiJSZXR1cm4gYSBmaWxlLWxpa2UgcmVwcmVzZW50YXRpb24gb3IgcmFpc2UgYSBLZXlFcnJvci4iIiIKQEAgLTUwMiwxNiArNDkwLDEyIEBACiAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fcGF0aCwgJ3RtcCcsIHVuaXEpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG9zLnN0YXQocGF0aCkKLSAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKLSAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRU5PRU5UOgotICAgICAgICAgICAgICAgIE1haWxkaXIuX2NvdW50ICs9IDEKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBfY3JlYXRlX2NhcmVmdWxseShwYXRoKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRUVYSVNUOgotICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0IEZpbGVOb3RGb3VuZEVycm9yOgorICAgICAgICAgICAgTWFpbGRpci5fY291bnQgKz0gMQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBfY3JlYXRlX2NhcmVmdWxseShwYXRoKQorICAgICAgICAgICAgZXhjZXB0IEZpbGVFeGlzdHNFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCiAKICAgICAgICAgIyBGYWxsIHRocm91Z2ggdG8gaGVyZSBpZiBzdGF0IHN1Y2NlZWRlZCBvciBvcGVuIHJhaXNlZCBFRVhJU1QuCiAgICAgICAgIHJhaXNlIEV4dGVybmFsQ2xhc2hFcnJvcignTmFtZSBjbGFzaCBwcmV2ZW50ZWQgZmlsZSBjcmVhdGlvbjogJXMnICUKQEAgLTU4OCw3ICs1NzIsNyBAQAogICAgICAgICBNYWlsYm94Ll9faW5pdF9fKHNlbGYsIHBhdGgsIGZhY3RvcnksIGNyZWF0ZSkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZiA9IG9wZW4oc2VsZi5fcGF0aCwgJ3JiKycpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICBpZiBlLmVycm5vID09IGVycm5vLkVOT0VOVDoKICAgICAgICAgICAgICAgICBpZiBjcmVhdGU6CiAgICAgICAgICAgICAgICAgICAgIGYgPSBvcGVuKHNlbGYuX3BhdGgsICd3YisnKQpAQCAtNjMxLDggKzYxNSw3IEBACiAgICAgZGVmIGl0ZXJrZXlzKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm4gYW4gaXRlcmF0b3Igb3ZlciBrZXlzLiIiIgogICAgICAgICBzZWxmLl9sb29rdXAoKQotICAgICAgICBmb3Iga2V5IGluIHNlbGYuX3RvYy5rZXlzKCk6Ci0gICAgICAgICAgICB5aWVsZCBrZXkKKyAgICAgICAgeWllbGQgZnJvbSBzZWxmLl90b2Mua2V5cygpCiAKICAgICBkZWYgX19jb250YWluc19fKHNlbGYsIGtleSk6CiAgICAgICAgICIiIlJldHVybiBUcnVlIGlmIHRoZSBrZXllZCBtZXNzYWdlIGV4aXN0cywgRmFsc2Ugb3RoZXJ3aXNlLiIiIgpAQCAtNzEwLDEzICs2OTMsOSBAQAogICAgICAgICBvcy5jaG1vZChuZXdfZmlsZS5uYW1lLCBtb2RlKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBvcy5yZW5hbWUobmV3X2ZpbGUubmFtZSwgc2VsZi5fcGF0aCkKLSAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKLSAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRUVYSVNUIG9yIFwKLSAgICAgICAgICAgICAgKG9zLm5hbWUgPT0gJ29zMicgYW5kIGUuZXJybm8gPT0gZXJybm8uRUFDQ0VTKToKLSAgICAgICAgICAgICAgICBvcy5yZW1vdmUoc2VsZi5fcGF0aCkKLSAgICAgICAgICAgICAgICBvcy5yZW5hbWUobmV3X2ZpbGUubmFtZSwgc2VsZi5fcGF0aCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0IEZpbGVFeGlzdHNFcnJvcjoKKyAgICAgICAgICAgIG9zLnJlbW92ZShzZWxmLl9wYXRoKQorICAgICAgICAgICAgb3MucmVuYW1lKG5ld19maWxlLm5hbWUsIHNlbGYuX3BhdGgpCiAgICAgICAgIHNlbGYuX2ZpbGUgPSBvcGVuKHNlbGYuX3BhdGgsICdyYisnKQogICAgICAgICBzZWxmLl90b2MgPSBuZXdfdG9jCiAgICAgICAgIHNlbGYuX3BlbmRpbmcgPSBGYWxzZQpAQCAtOTkzLDcgKzk3Miw3IEBACiAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fcGF0aCwgc3RyKGtleSkpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGYgPSBvcGVuKHBhdGgsICdyYisnKQotICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FTk9FTlQ6CiAgICAgICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoJ05vIG1lc3NhZ2Ugd2l0aCBrZXk6ICVzJyAlIGtleSkKICAgICAgICAgICAgIGVsc2U6CkBAIC0xMDA3LDcgKzk4Niw3IEBACiAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fcGF0aCwgc3RyKGtleSkpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGYgPSBvcGVuKHBhdGgsICdyYisnKQotICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FTk9FTlQ6CiAgICAgICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoJ05vIG1lc3NhZ2Ugd2l0aCBrZXk6ICVzJyAlIGtleSkKICAgICAgICAgICAgIGVsc2U6CkBAIC0xMDMzLDEyICsxMDEyLDEyIEBACiAgICAgICAgICAgICAgICAgZiA9IG9wZW4ob3MucGF0aC5qb2luKHNlbGYuX3BhdGgsIHN0cihrZXkpKSwgJ3JiKycpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGYgPSBvcGVuKG9zLnBhdGguam9pbihzZWxmLl9wYXRoLCBzdHIoa2V5KSksICdyYicpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICBpZiBlLmVycm5vID09IGVycm5vLkVOT0VOVDoKICAgICAgICAgICAgICAgICByYWlzZSBLZXlFcnJvcignTm8gbWVzc2FnZSB3aXRoIGtleTogJXMnICUga2V5KQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICB0cnk6CisgICAgICAgIHdpdGggZjoKICAgICAgICAgICAgIGlmIHNlbGYuX2xvY2tlZDoKICAgICAgICAgICAgICAgICBfbG9ja19maWxlKGYpCiAgICAgICAgICAgICB0cnk6CkBAIC0xMDQ2LDggKzEwMjUsNiBAQAogICAgICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICAgICBpZiBzZWxmLl9sb2NrZWQ6CiAgICAgICAgICAgICAgICAgICAgIF91bmxvY2tfZmlsZShmKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgZi5jbG9zZSgpCiAgICAgICAgIGZvciBuYW1lLCBrZXlfbGlzdCBpbiBzZWxmLmdldF9zZXF1ZW5jZXMoKS5pdGVtcygpOgogICAgICAgICAgICAgaWYga2V5IGluIGtleV9saXN0OgogICAgICAgICAgICAgICAgIG1zZy5hZGRfc2VxdWVuY2UobmFtZSkKQEAgLTEwNjAsMTIgKzEwMzcsMTIgQEAKICAgICAgICAgICAgICAgICBmID0gb3Blbihvcy5wYXRoLmpvaW4oc2VsZi5fcGF0aCwgc3RyKGtleSkpLCAncmIrJykKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgZiA9IG9wZW4ob3MucGF0aC5qb2luKHNlbGYuX3BhdGgsIHN0cihrZXkpKSwgJ3JiJykKLSAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRU5PRU5UOgogICAgICAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKCdObyBtZXNzYWdlIHdpdGgga2V5OiAlcycgJSBrZXkpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIHRyeToKKyAgICAgICAgd2l0aCBmOgogICAgICAgICAgICAgaWYgc2VsZi5fbG9ja2VkOgogICAgICAgICAgICAgICAgIF9sb2NrX2ZpbGUoZikKICAgICAgICAgICAgIHRyeToKQEAgLTEwNzMsMTQgKzEwNTAsMTIgQEAKICAgICAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgaWYgc2VsZi5fbG9ja2VkOgogICAgICAgICAgICAgICAgICAgICBfdW5sb2NrX2ZpbGUoZikKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGYuY2xvc2UoKQogCiAgICAgZGVmIGdldF9maWxlKHNlbGYsIGtleSk6CiAgICAgICAgICIiIlJldHVybiBhIGZpbGUtbGlrZSByZXByZXNlbnRhdGlvbiBvciByYWlzZSBhIEtleUVycm9yLiIiIgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBmID0gb3Blbihvcy5wYXRoLmpvaW4oc2VsZi5fcGF0aCwgc3RyKGtleSkpLCAncmInKQotICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FTk9FTlQ6CiAgICAgICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoJ05vIG1lc3NhZ2Ugd2l0aCBrZXk6ICVzJyAlIGtleSkKICAgICAgICAgICAgIGVsc2U6CkBAIC0yMDczLDcgKzIwNDgsNyBAQAogICAgICAgICBpZiBmY250bDoKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBmY250bC5sb2NrZihmLCBmY250bC5MT0NLX0VYIHwgZmNudGwuTE9DS19OQikKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gaW4gKGVycm5vLkVBR0FJTiwgZXJybm8uRUFDQ0VTLCBlcnJuby5FUk9GUyk6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4dGVybmFsQ2xhc2hFcnJvcignbG9ja2Y6IGxvY2sgdW5hdmFpbGFibGU6ICVzJyAlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLm5hbWUpCkBAIC0yMDgzLDcgKzIwNTgsNyBAQAogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHByZV9sb2NrID0gX2NyZWF0ZV90ZW1wb3JhcnkoZi5uYW1lICsgJy5sb2NrJykKICAgICAgICAgICAgICAgICBwcmVfbG9jay5jbG9zZSgpCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICBpZiBlLmVycm5vIGluIChlcnJuby5FQUNDRVMsIGVycm5vLkVST0ZTKToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICAjIFdpdGhvdXQgd3JpdGUgYWNjZXNzLCBqdXN0IHNraXAgZG90bG9ja2luZy4KICAgICAgICAgICAgICAgICBlbHNlOgpAQCAtMjA5NiwxNCArMjA3MSwxMCBAQAogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIG9zLnJlbmFtZShwcmVfbG9jay5uYW1lLCBmLm5hbWUgKyAnLmxvY2snKQogICAgICAgICAgICAgICAgICAgICBkb3Rsb2NrX2RvbmUgPSBUcnVlCi0gICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgotICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRUVYSVNUIG9yIFwKLSAgICAgICAgICAgICAgICAgIChvcy5uYW1lID09ICdvczInIGFuZCBlLmVycm5vID09IGVycm5vLkVBQ0NFUyk6Ci0gICAgICAgICAgICAgICAgICAgIG9zLnJlbW92ZShwcmVfbG9jay5uYW1lKQotICAgICAgICAgICAgICAgICAgICByYWlzZSBFeHRlcm5hbENsYXNoRXJyb3IoJ2RvdCBsb2NrIHVuYXZhaWxhYmxlOiAlcycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi5uYW1lKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBleGNlcHQgRmlsZUV4aXN0c0Vycm9yOgorICAgICAgICAgICAgICAgIG9zLnJlbW92ZShwcmVfbG9jay5uYW1lKQorICAgICAgICAgICAgICAgIHJhaXNlIEV4dGVybmFsQ2xhc2hFcnJvcignZG90IGxvY2sgdW5hdmFpbGFibGU6ICVzJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYubmFtZSkKICAgICBleGNlcHQ6CiAgICAgICAgIGlmIGZjbnRsOgogICAgICAgICAgICAgZmNudGwubG9ja2YoZiwgZmNudGwuTE9DS19VTikKZGlmZiAtLWdpdCBhL0xpYi9tYWlsY2FwLnB5IGIvTGliL21haWxjYXAucHkKaW5kZXggOTlmNDk1OC4uYmQ2MWIwYiAxMDA2NDQKLS0tIGEvTGliL21haWxjYXAucHkKKysrIGIvTGliL21haWxjYXAucHkKQEAgLTIwLDcgKzIwLDcgQEAKICAgICBmb3IgbWFpbGNhcCBpbiBsaXN0bWFpbGNhcGZpbGVzKCk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGZwID0gb3BlbihtYWlsY2FwLCAncicpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIG1vcmVjYXBzID0gcmVhZG1haWxjYXBmaWxlKGZwKQogICAgICAgICBmcC5jbG9zZSgpCmRpZmYgLS1naXQgYS9MaWIvbWltZXR5cGVzLnB5IGIvTGliL21pbWV0eXBlcy5weQppbmRleCAyODcyZWU0Li41YWFhOTA4IDEwMDY0NAotLS0gYS9MaWIvbWltZXR5cGVzLnB5CisrKyBiL0xpYi9taW1ldHlwZXMucHkKQEAgLTI0Myw3ICsyNDMsNyBAQAogICAgICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIGN0eXBlID0gX3dpbnJlZy5FbnVtS2V5KG1pbWVkYiwgaSkKLSAgICAgICAgICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvcjoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICB5aWVsZCBjdHlwZQpAQCAtMjU2LDcgKzI1Niw3IEBACiAgICAgICAgICAgICAgICAgICAgIHdpdGggX3dpbnJlZy5PcGVuS2V5KG1pbWVkYiwgY3R5cGUpIGFzIGtleToKICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeCwgZGF0YXR5cGUgPSBfd2lucmVnLlF1ZXJ5VmFsdWVFeChrZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0V4dGVuc2lvbicpCi0gICAgICAgICAgICAgICAgZXhjZXB0IEVudmlyb25tZW50RXJyb3I6CisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICAgaWYgZGF0YXR5cGUgIT0gX3dpbnJlZy5SRUdfU1o6CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCkBAIC0zNTksNyArMzU5LDcgQEAKIGRlZiByZWFkX21pbWVfdHlwZXMoZmlsZSk6CiAgICAgdHJ5OgogICAgICAgICBmID0gb3BlbihmaWxlKQotICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICByZXR1cm4gTm9uZQogICAgIGRiID0gTWltZVR5cGVzKCkKICAgICBkYi5yZWFkZnAoZiwgVHJ1ZSkKZGlmZiAtLWdpdCBhL0xpYi9tb2R1bGVmaW5kZXIucHkgYi9MaWIvbW9kdWxlZmluZGVyLnB5CmluZGV4IGY5MGE0MzIuLjQ5OTZkN2EgMTAwNjQ0Ci0tLSBhL0xpYi9tb2R1bGVmaW5kZXIucHkKKysrIGIvTGliL21vZHVsZWZpbmRlci5weQpAQCAtMjI5LDcgKzIyOSw3IEBACiAgICAgICAgIGZvciBkaXIgaW4gbS5fX3BhdGhfXzoKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBuYW1lcyA9IG9zLmxpc3RkaXIoZGlyKQotICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgc2VsZi5tc2coMiwgImNhbid0IGxpc3QgZGlyZWN0b3J5IiwgZGlyKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBmb3IgbmFtZSBpbiBuYW1lczoKZGlmZiAtLWdpdCBhL0xpYi9tdWx0aXByb2Nlc3NpbmcvX19pbml0X18ucHkgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL19faW5pdF9fLnB5CmluZGV4IDFmM2U2N2MuLmI0MjYxM2YgMTAwNjQ0Ci0tLSBhL0xpYi9tdWx0aXByb2Nlc3NpbmcvX19pbml0X18ucHkKKysrIGIvTGliL211bHRpcHJvY2Vzc2luZy9fX2luaXRfXy5weQpAQCAtOCwxMCArOCw2IEBACiAjIHN1YnBhY2thZ2UgJ211bHRpcHJvY2Vzc2luZy5kdW1teScgaGFzIHRoZSBzYW1lIEFQSSBidXQgaXMgYSBzaW1wbGUKICMgd3JhcHBlciBmb3IgJ3RocmVhZGluZycuCiAjCi0jIFRyeSBjYWxsaW5nIGBtdWx0aXByb2Nlc3NpbmcuZG9jLm1haW4oKWAgdG8gcmVhZCB0aGUgaHRtbAotIyBkb2N1bWVudGF0aW9uIGluIGEgd2ViYnJvd3Nlci4KLSMKLSMKICMgQ29weXJpZ2h0IChjKSAyMDA2LTIwMDgsIFIgT3Vka2VyawogIyBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBDb250cmlidXRvciBBZ3JlZW1lbnQuCiAjCkBAIC0yNyw4ICsyMyw2IEBACiAgICAgJ1ZhbHVlJywgJ0FycmF5JywgJ1Jhd1ZhbHVlJywgJ1Jhd0FycmF5JywgJ1NVQkRFQlVHJywgJ1NVQldBUk5JTkcnLAogICAgIF0KIAotX19hdXRob3JfXyA9ICdSLiBPdWRrZXJrIChyLm0ub3Vka2Vya0BnbWFpbC5jb20pJwotCiAjCiAjIEltcG9ydHMKICMKQEAgLTQwLDYgKzM0LDEzIEBACiBmcm9tIG11bHRpcHJvY2Vzc2luZy51dGlsIGltcG9ydCBTVUJERUJVRywgU1VCV0FSTklORwogCiAjCisjIEFsaWFzIGZvciBtYWluIG1vZHVsZSAtLSB3aWxsIGJlIHJlc2V0IGJ5IGJvb3RzdHJhcHBpbmcgY2hpbGQgcHJvY2Vzc2VzCisjCisKK2lmICdfX21haW5fXycgaW4gc3lzLm1vZHVsZXM6CisgICAgc3lzLm1vZHVsZXNbJ19fbXBfbWFpbl9fJ10gPSBzeXMubW9kdWxlc1snX19tYWluX18nXQorCisjCiAjIEV4Y2VwdGlvbnMKICMKIApAQCAtODQsMzAgKzg1LDExIEBACiAgICAgJycnCiAgICAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIENQVXMgaW4gdGhlIHN5c3RlbQogICAgICcnJwotICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBudW0gPSBpbnQob3MuZW52aXJvblsnTlVNQkVSX09GX1BST0NFU1NPUlMnXSkKLSAgICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBLZXlFcnJvcik6Ci0gICAgICAgICAgICBudW0gPSAwCi0gICAgZWxpZiAnYnNkJyBpbiBzeXMucGxhdGZvcm0gb3Igc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOgotICAgICAgICBjb21tID0gJy9zYmluL3N5c2N0bCAtbiBody5uY3B1JwotICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ2Rhcndpbic6Ci0gICAgICAgICAgICBjb21tID0gJy91c3InICsgY29tbQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3aXRoIG9zLnBvcGVuKGNvbW0pIGFzIHA6Ci0gICAgICAgICAgICAgICAgbnVtID0gaW50KHAucmVhZCgpKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgIG51bSA9IDAKLSAgICBlbHNlOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBudW0gPSBvcy5zeXNjb25mKCdTQ19OUFJPQ0VTU09SU19PTkxOJykKLSAgICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBPU0Vycm9yLCBBdHRyaWJ1dGVFcnJvcik6Ci0gICAgICAgICAgICBudW0gPSAwCi0KLSAgICBpZiBudW0gPj0gMToKLSAgICAgICAgcmV0dXJuIG51bQotICAgIGVsc2U6CisgICAgbnVtID0gb3MuY3B1X2NvdW50KCkKKyAgICBpZiBudW0gaXMgTm9uZToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcignY2Fubm90IGRldGVybWluZSBudW1iZXIgb2YgY3B1cycpCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIG51bQogCiBkZWYgZnJlZXplX3N1cHBvcnQoKToKICAgICAnJycKZGlmZiAtLWdpdCBhL0xpYi9tdWx0aXByb2Nlc3NpbmcvY29ubmVjdGlvbi5weSBiL0xpYi9tdWx0aXByb2Nlc3NpbmcvY29ubmVjdGlvbi5weQppbmRleCBkZjU3OTA2Li40N2UyMTIzIDEwMDY0NAotLS0gYS9MaWIvbXVsdGlwcm9jZXNzaW5nL2Nvbm5lY3Rpb24ucHkKKysrIGIvTGliL211bHRpcHJvY2Vzc2luZy9jb25uZWN0aW9uLnB5CkBAIC0xMiw3ICsxMiw2IEBACiBpbXBvcnQgaW8KIGltcG9ydCBvcwogaW1wb3J0IHN5cwotaW1wb3J0IHBpY2tsZQogaW1wb3J0IHNlbGVjdAogaW1wb3J0IHNvY2tldAogaW1wb3J0IHN0cnVjdApAQCAtMTMyLDIyICsxMzEsMjIgQEAKIAogICAgIGRlZiBfY2hlY2tfY2xvc2VkKHNlbGYpOgogICAgICAgICBpZiBzZWxmLl9oYW5kbGUgaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoImhhbmRsZSBpcyBjbG9zZWQiKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigiaGFuZGxlIGlzIGNsb3NlZCIpCiAKICAgICBkZWYgX2NoZWNrX3JlYWRhYmxlKHNlbGYpOgogICAgICAgICBpZiBub3Qgc2VsZi5fcmVhZGFibGU6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKCJjb25uZWN0aW9uIGlzIHdyaXRlLW9ubHkiKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigiY29ubmVjdGlvbiBpcyB3cml0ZS1vbmx5IikKIAogICAgIGRlZiBfY2hlY2tfd3JpdGFibGUoc2VsZik6CiAgICAgICAgIGlmIG5vdCBzZWxmLl93cml0YWJsZToKLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoImNvbm5lY3Rpb24gaXMgcmVhZC1vbmx5IikKKyAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoImNvbm5lY3Rpb24gaXMgcmVhZC1vbmx5IikKIAogICAgIGRlZiBfYmFkX21lc3NhZ2VfbGVuZ3RoKHNlbGYpOgogICAgICAgICBpZiBzZWxmLl93cml0YWJsZToKICAgICAgICAgICAgIHNlbGYuX3JlYWRhYmxlID0gRmFsc2UKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQotICAgICAgICByYWlzZSBJT0Vycm9yKCJiYWQgbWVzc2FnZSBsZW5ndGgiKQorICAgICAgICByYWlzZSBPU0Vycm9yKCJiYWQgbWVzc2FnZSBsZW5ndGgiKQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGNsb3NlZChzZWxmKToKQEAgLTIwMiw5ICsyMDEsNyBAQAogICAgICAgICAiIiJTZW5kIGEgKHBpY2tsYWJsZSkgb2JqZWN0IiIiCiAgICAgICAgIHNlbGYuX2NoZWNrX2Nsb3NlZCgpCiAgICAgICAgIHNlbGYuX2NoZWNrX3dyaXRhYmxlKCkKLSAgICAgICAgYnVmID0gaW8uQnl0ZXNJTygpCi0gICAgICAgIEZvcmtpbmdQaWNrbGVyKGJ1ZiwgcGlja2xlLkhJR0hFU1RfUFJPVE9DT0wpLmR1bXAob2JqKQotICAgICAgICBzZWxmLl9zZW5kX2J5dGVzKGJ1Zi5nZXRidWZmZXIoKSkKKyAgICAgICAgc2VsZi5fc2VuZF9ieXRlcyhGb3JraW5nUGlja2xlci5kdW1wcyhvYmopKQogCiAgICAgZGVmIHJlY3ZfYnl0ZXMoc2VsZiwgbWF4bGVuZ3RoPU5vbmUpOgogICAgICAgICAiIiIKQEAgLTI0OSw3ICsyNDYsNyBAQAogICAgICAgICBzZWxmLl9jaGVja19jbG9zZWQoKQogICAgICAgICBzZWxmLl9jaGVja19yZWFkYWJsZSgpCiAgICAgICAgIGJ1ZiA9IHNlbGYuX3JlY3ZfYnl0ZXMoKQotICAgICAgICByZXR1cm4gcGlja2xlLmxvYWRzKGJ1Zi5nZXRidWZmZXIoKSkKKyAgICAgICAgcmV0dXJuIEZvcmtpbmdQaWNrbGVyLmxvYWRzKGJ1Zi5nZXRidWZmZXIoKSkKIAogICAgIGRlZiBwb2xsKHNlbGYsIHRpbWVvdXQ9MC4wKToKICAgICAgICAgIiIiV2hldGhlciB0aGVyZSBpcyBhbnkgaW5wdXQgYXZhaWxhYmxlIHRvIGJlIHJlYWQiIiIKQEAgLTMxNyw3ICszMTQsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmCiAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIGVyciA9PSBfd2luYXBpLkVSUk9SX01PUkVfREFUQToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fZ2V0X21vcmVfZGF0YShvdiwgbWF4c2l6ZSkKLSAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgIGlmIGUud2luZXJyb3IgPT0gX3dpbmFwaS5FUlJPUl9CUk9LRU5fUElQRToKICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEVPRkVycm9yCiAgICAgICAgICAgICAgICAgICAgIGVsc2U6CkBAIC0zODMsNyArMzgwLDcgQEAKICAgICAgICAgICAgICAgICBpZiByZW1haW5pbmcgPT0gc2l6ZToKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRU9GRXJyb3IKICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJT0Vycm9yKCJnb3QgZW5kIG9mIGZpbGUgZHVyaW5nIG1lc3NhZ2UiKQorICAgICAgICAgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCJnb3QgZW5kIG9mIGZpbGUgZHVyaW5nIG1lc3NhZ2UiKQogICAgICAgICAgICAgYnVmLndyaXRlKGNodW5rKQogICAgICAgICAgICAgcmVtYWluaW5nIC09IG4KICAgICAgICAgcmV0dXJuIGJ1ZgpAQCAtNDQzLDcgKzQ0MCw3IEBACiAgICAgICAgIFJldHVybnMgYSBgQ29ubmVjdGlvbmAgb2JqZWN0LgogICAgICAgICAnJycKICAgICAgICAgaWYgc2VsZi5fbGlzdGVuZXIgaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoJ2xpc3RlbmVyIGlzIGNsb3NlZCcpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCdsaXN0ZW5lciBpcyBjbG9zZWQnKQogICAgICAgICBjID0gc2VsZi5fbGlzdGVuZXIuYWNjZXB0KCkKICAgICAgICAgaWYgc2VsZi5fYXV0aGtleToKICAgICAgICAgICAgIGRlbGl2ZXJfY2hhbGxlbmdlKGMsIHNlbGYuX2F1dGhrZXkpCkBAIC02NzYsNyArNjczLDcgQEAKICAgICAgICAgICAgICAgICAgICAgMCwgX3dpbmFwaS5OVUxMLCBfd2luYXBpLk9QRU5fRVhJU1RJTkcsCiAgICAgICAgICAgICAgICAgICAgIF93aW5hcGkuRklMRV9GTEFHX09WRVJMQVBQRUQsIF93aW5hcGkuTlVMTAogICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBleGNlcHQgV2luZG93c0Vycm9yIGFzIGU6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgICAgIGlmIGUud2luZXJyb3Igbm90IGluIChfd2luYXBpLkVSUk9SX1NFTV9USU1FT1VULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfd2luYXBpLkVSUk9SX1BJUEVfQlVTWSkgb3IgX2NoZWNrX3RpbWVvdXQodCk6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlCmRpZmYgLS1naXQgYS9MaWIvbXVsdGlwcm9jZXNzaW5nL2R1bW15L19faW5pdF9fLnB5IGIvTGliL211bHRpcHJvY2Vzc2luZy9kdW1teS9fX2luaXRfXy5weQppbmRleCBlMzFmYzYxLi4yMGFlOTU3IDEwMDY0NAotLS0gYS9MaWIvbXVsdGlwcm9jZXNzaW5nL2R1bW15L19faW5pdF9fLnB5CisrKyBiL0xpYi9tdWx0aXByb2Nlc3NpbmcvZHVtbXkvX19pbml0X18ucHkKQEAgLTQsMzIgKzQsNyBAQAogIyBtdWx0aXByb2Nlc3NpbmcvZHVtbXkvX19pbml0X18ucHkKICMKICMgQ29weXJpZ2h0IChjKSAyMDA2LTIwMDgsIFIgT3Vka2VyawotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jCi0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIyAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIGF1dGhvciBub3IgdGhlIG5hbWVzIG9mIGFueSBjb250cmlidXRvcnMgbWF5IGJlCi0jICAgIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCi0jICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLSMgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKLSMgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKLSMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi0jIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0jIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLSMgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotIyBTVUNIIERBTUFHRS4KKyMgTGljZW5zZWQgdG8gUFNGIHVuZGVyIGEgQ29udHJpYnV0b3IgQWdyZWVtZW50LgogIwogCiBfX2FsbF9fID0gWwpkaWZmIC0tZ2l0IGEvTGliL211bHRpcHJvY2Vzc2luZy9kdW1teS9jb25uZWN0aW9uLnB5IGIvTGliL211bHRpcHJvY2Vzc2luZy9kdW1teS9jb25uZWN0aW9uLnB5CmluZGV4IDg3NGVjOGUuLjY5NGVmOTYgMTAwNjQ0Ci0tLSBhL0xpYi9tdWx0aXByb2Nlc3NpbmcvZHVtbXkvY29ubmVjdGlvbi5weQorKysgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL2R1bW15L2Nvbm5lY3Rpb24ucHkKQEAgLTQsMzIgKzQsNyBAQAogIyBtdWx0aXByb2Nlc3NpbmcvZHVtbXkvY29ubmVjdGlvbi5weQogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOCwgUiBPdWRrZXJrCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgYW55IGNvbnRyaWJ1dG9ycyBtYXkgYmUKLSMgICAgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKLSMgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotIyBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotIyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSMgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotIyBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0jIFNVQ0ggREFNQUdFLgorIyBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBDb250cmlidXRvciBBZ3JlZW1lbnQuCiAjCiAKIF9fYWxsX18gPSBbICdDbGllbnQnLCAnTGlzdGVuZXInLCAnUGlwZScgXQpkaWZmIC0tZ2l0IGEvTGliL211bHRpcHJvY2Vzc2luZy9mb3JraW5nLnB5IGIvTGliL211bHRpcHJvY2Vzc2luZy9mb3JraW5nLnB5CmluZGV4IDBiYjIxYzQuLjU0YzA3M2QgMTAwNjQ0Ci0tLSBhL0xpYi9tdWx0aXByb2Nlc3NpbmcvZm9ya2luZy5weQorKysgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL2ZvcmtpbmcucHkKQEAgLTcsNyArNyw5IEBACiAjIExpY2Vuc2VkIHRvIFBTRiB1bmRlciBhIENvbnRyaWJ1dG9yIEFncmVlbWVudC4KICMKIAoraW1wb3J0IGlvCiBpbXBvcnQgb3MKK2ltcG9ydCBwaWNrbGUKIGltcG9ydCBzeXMKIGltcG9ydCBzaWduYWwKIGltcG9ydCBlcnJubwpAQCAtNDQsNiArNDYsMTUgQEAKICAgICBkZWYgcmVnaXN0ZXIoY2xzLCB0eXBlLCByZWR1Y2UpOgogICAgICAgICBjbHMuX2V4dHJhX3JlZHVjZXJzW3R5cGVdID0gcmVkdWNlCiAKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGR1bXBzKG9iaik6CisgICAgICAgIGJ1ZiA9IGlvLkJ5dGVzSU8oKQorICAgICAgICBGb3JraW5nUGlja2xlcihidWYsIHBpY2tsZS5ISUdIRVNUX1BST1RPQ09MKS5kdW1wKG9iaikKKyAgICAgICAgcmV0dXJuIGJ1Zi5nZXRidWZmZXIoKQorCisgICAgbG9hZHMgPSBwaWNrbGUubG9hZHMKKworCiBkZWYgX3JlZHVjZV9tZXRob2QobSk6CiAgICAgaWYgbS5fX3NlbGZfXyBpcyBOb25lOgogICAgICAgICByZXR1cm4gZ2V0YXR0ciwgKG0uX19jbGFzc19fLCBtLl9fZnVuY19fLl9fbmFtZV9fKQpAQCAtMTEzLDcgKzEyNCw3IEBACiAgICAgICAgICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgcGlkLCBzdHMgPSBvcy53YWl0cGlkKHNlbGYucGlkLCBmbGFnKQotICAgICAgICAgICAgICAgICAgICBleGNlcHQgb3MuZXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRUlOVFI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICAgICAgICAgICMgQ2hpbGQgcHJvY2VzcyBub3QgeWV0IGNyZWF0ZWQuIFNlZSAjMTczMTcxNwpAQCAtNDM5LDYgKzQ1MCw3IEBACiAgICAgICAgICAgICAjIE1haW4gbW9kdWxlcyBub3QgYWN0dWFsbHkgY2FsbGVkIF9fbWFpbl9fLnB5IG1heQogICAgICAgICAgICAgIyBjb250YWluIGFkZGl0aW9uYWwgY29kZSB0aGF0IHNob3VsZCBzdGlsbCBiZSBleGVjdXRlZAogICAgICAgICAgICAgaW1wb3J0IGltcAorICAgICAgICAgICAgaW1wb3J0IGltcG9ydGxpYgogCiAgICAgICAgICAgICBpZiBtYWluX3BhdGggaXMgTm9uZToKICAgICAgICAgICAgICAgICBkaXJzID0gTm9uZQpAQCAtNDQ4LDI3ICs0NjAsMTggQEAKICAgICAgICAgICAgICAgICBkaXJzID0gW29zLnBhdGguZGlybmFtZShtYWluX3BhdGgpXQogCiAgICAgICAgICAgICBhc3NlcnQgbWFpbl9uYW1lIG5vdCBpbiBzeXMubW9kdWxlcywgbWFpbl9uYW1lCi0gICAgICAgICAgICBmaWxlLCBwYXRoX25hbWUsIGV0YyA9IGltcC5maW5kX21vZHVsZShtYWluX25hbWUsIGRpcnMpCisgICAgICAgICAgICBzeXMubW9kdWxlcy5wb3AoJ19fbXBfbWFpbl9fJywgTm9uZSkKKyAgICAgICAgICAgICMgV2Ugc2hvdWxkIG5vdCB0cnkgdG8gbG9hZCBfX21haW5fXworICAgICAgICAgICAgIyBzaW5jZSB0aGF0IHdvdWxkIGV4ZWN1dGUgJ2lmIF9fbmFtZV9fID09ICJfX21haW5fXyInCisgICAgICAgICAgICAjIGNsYXVzZXMsIHBvdGVudGlhbGx5IGNhdXNpbmcgYSBwc3VlZG8gZm9yayBib21iLgorICAgICAgICAgICAgbG9hZGVyID0gaW1wb3J0bGliLmZpbmRfbG9hZGVyKG1haW5fbmFtZSwgcGF0aD1kaXJzKQorICAgICAgICAgICAgbWFpbl9tb2R1bGUgPSBpbXAubmV3X21vZHVsZShtYWluX25hbWUpCiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIyBXZSB3b3VsZCBsaWtlIHRvIGRvICJpbXAubG9hZF9tb2R1bGUoJ19fbWFpbl9fJywgLi4uKSIKLSAgICAgICAgICAgICAgICAjIGhlcmUuICBIb3dldmVyLCB0aGF0IHdvdWxkIGNhdXNlICdpZiBfX25hbWVfXyA9PQotICAgICAgICAgICAgICAgICMgIl9fbWFpbl9fIicgY2xhdXNlcyB0byBiZSBleGVjdXRlZC4KLSAgICAgICAgICAgICAgICBtYWluX21vZHVsZSA9IGltcC5sb2FkX21vZHVsZSgKLSAgICAgICAgICAgICAgICAgICAgJ19fcGFyZW50c19tYWluX18nLCBmaWxlLCBwYXRoX25hbWUsIGV0YwotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGlmIGZpbGU6Ci0gICAgICAgICAgICAgICAgICAgIGZpbGUuY2xvc2UoKQorICAgICAgICAgICAgICAgIGxvYWRlci5pbml0X21vZHVsZV9hdHRycyhtYWluX21vZHVsZSkKKyAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjogICMgaW5pdF9tb2R1bGVfYXR0cnMgaXMgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBtYWluX21vZHVsZS5fX25hbWVfXyA9ICdfX21wX21haW5fXycKKyAgICAgICAgICAgIGNvZGUgPSBsb2FkZXIuZ2V0X2NvZGUobWFpbl9uYW1lKQorICAgICAgICAgICAgZXhlYyhjb2RlLCBtYWluX21vZHVsZS5fX2RpY3RfXykKIAotICAgICAgICAgICAgc3lzLm1vZHVsZXNbJ19fbWFpbl9fJ10gPSBtYWluX21vZHVsZQotICAgICAgICAgICAgbWFpbl9tb2R1bGUuX19uYW1lX18gPSAnX19tYWluX18nCi0KLSAgICAgICAgICAgICMgVHJ5IHRvIG1ha2UgdGhlIHBvdGVudGlhbGx5IHBpY2tsYWJsZSBvYmplY3RzIGluCi0gICAgICAgICAgICAjIHN5cy5tb2R1bGVzWydfX21haW5fXyddIHJlYWxpemUgdGhleSBhcmUgaW4gdGhlIG1haW4KLSAgICAgICAgICAgICMgbW9kdWxlIC0tIHNvbWV3aGF0IHVnbHkuCi0gICAgICAgICAgICBmb3Igb2JqIGluIGxpc3QobWFpbl9tb2R1bGUuX19kaWN0X18udmFsdWVzKCkpOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgaWYgb2JqLl9fbW9kdWxlX18gPT0gJ19fcGFyZW50c19tYWluX18nOgotICAgICAgICAgICAgICAgICAgICAgICAgb2JqLl9fbW9kdWxlX18gPSAnX19tYWluX18nCi0gICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgc3lzLm1vZHVsZXNbJ19fbWFpbl9fJ10gPSBzeXMubW9kdWxlc1snX19tcF9tYWluX18nXSA9IG1haW5fbW9kdWxlCmRpZmYgLS1naXQgYS9MaWIvbXVsdGlwcm9jZXNzaW5nL21hbmFnZXJzLnB5IGIvTGliL211bHRpcHJvY2Vzc2luZy9tYW5hZ2Vycy5weQppbmRleCAxYWIxNDdlLi4zMGVmNzcxIDEwMDY0NAotLS0gYS9MaWIvbXVsdGlwcm9jZXNzaW5nL21hbmFnZXJzLnB5CisrKyBiL0xpYi9tdWx0aXByb2Nlc3NpbmcvbWFuYWdlcnMucHkKQEAgLTE2Nyw3ICsxNjcsNyBAQAogICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGMgPSBzZWxmLmxpc3RlbmVyLmFjY2VwdCgpCi0gICAgICAgICAgICBleGNlcHQgKE9TRXJyb3IsIElPRXJyb3IpOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIHQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1zZWxmLmhhbmRsZV9yZXF1ZXN0LCBhcmdzPShjLCkpCiAgICAgICAgICAgICB0LmRhZW1vbiA9IFRydWUKZGlmZiAtLWdpdCBhL0xpYi9tdWx0aXByb2Nlc3NpbmcvcG9vbC5weSBiL0xpYi9tdWx0aXByb2Nlc3NpbmcvcG9vbC5weQppbmRleCBmYzlkOTA0Li5iY2Y4YTM3IDEwMDY0NAotLS0gYS9MaWIvbXVsdGlwcm9jZXNzaW5nL3Bvb2wucHkKKysrIGIvTGliL211bHRpcHJvY2Vzc2luZy9wb29sLnB5CkBAIC0xOCw2ICsxOCw3IEBACiBpbXBvcnQgaXRlcnRvb2xzCiBpbXBvcnQgY29sbGVjdGlvbnMKIGltcG9ydCB0aW1lCitpbXBvcnQgdHJhY2ViYWNrCiAKIGZyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBQcm9jZXNzLCBjcHVfY291bnQsIFRpbWVvdXRFcnJvcgogZnJvbSBtdWx0aXByb2Nlc3NpbmcudXRpbCBpbXBvcnQgRmluYWxpemUsIGRlYnVnCkBAIC00Myw2ICs0NCwyOSBAQAogICAgIHJldHVybiBsaXN0KGl0ZXJ0b29scy5zdGFybWFwKGFyZ3NbMF0sIGFyZ3NbMV0pKQogCiAjCisjIEhhY2sgdG8gZW1iZWQgc3RyaW5naWZpY2F0aW9uIG9mIHJlbW90ZSB0cmFjZWJhY2sgaW4gbG9jYWwgdHJhY2ViYWNrCisjCisKK2NsYXNzIFJlbW90ZVRyYWNlYmFjayhFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0Yik6CisgICAgICAgIHNlbGYudGIgPSB0YgorICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi50YgorCitjbGFzcyBFeGNlcHRpb25XaXRoVHJhY2ViYWNrOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGMsIHRiKToKKyAgICAgICAgdGIgPSB0cmFjZWJhY2suZm9ybWF0X2V4Y2VwdGlvbih0eXBlKGV4YyksIGV4YywgdGIpCisgICAgICAgIHRiID0gJycuam9pbih0YikKKyAgICAgICAgc2VsZi5leGMgPSBleGMKKyAgICAgICAgc2VsZi50YiA9ICdcbiIiIlxuJXMiIiInICUgdGIKKyAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHJlYnVpbGRfZXhjLCAoc2VsZi5leGMsIHNlbGYudGIpCisKK2RlZiByZWJ1aWxkX2V4YyhleGMsIHRiKToKKyAgICBleGMuX19jYXVzZV9fID0gUmVtb3RlVHJhY2ViYWNrKHRiKQorICAgIHJldHVybiBleGMKKworIwogIyBDb2RlIHJ1biBieSB3b3JrZXIgcHJvY2Vzc2VzCiAjCiAKQEAgLTc4LDggKzEwMiw4IEBACiAgICAgd2hpbGUgbWF4dGFza3MgaXMgTm9uZSBvciAobWF4dGFza3MgYW5kIGNvbXBsZXRlZCA8IG1heHRhc2tzKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgdGFzayA9IGdldCgpCi0gICAgICAgIGV4Y2VwdCAoRU9GRXJyb3IsIElPRXJyb3IpOgotICAgICAgICAgICAgZGVidWcoJ3dvcmtlciBnb3QgRU9GRXJyb3Igb3IgSU9FcnJvciAtLSBleGl0aW5nJykKKyAgICAgICAgZXhjZXB0IChFT0ZFcnJvciwgT1NFcnJvcik6CisgICAgICAgICAgICBkZWJ1Zygnd29ya2VyIGdvdCBFT0ZFcnJvciBvciBPU0Vycm9yIC0tIGV4aXRpbmcnKQogICAgICAgICAgICAgYnJlYWsKIAogICAgICAgICBpZiB0YXNrIGlzIE5vbmU6CkBAIC05MCw2ICsxMTQsNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICByZXN1bHQgPSAoVHJ1ZSwgZnVuYygqYXJncywgKiprd2RzKSkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgZSA9IEV4Y2VwdGlvbldpdGhUcmFjZWJhY2soZSwgZS5fX3RyYWNlYmFja19fKQogICAgICAgICAgICAgcmVzdWx0ID0gKEZhbHNlLCBlKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBwdXQoKGpvYiwgaSwgcmVzdWx0KSkKQEAgLTM0OSw3ICszNzQsNyBAQAogICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgcHV0KHRhc2spCi0gICAgICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCdjb3VsZCBub3QgcHV0IHRhc2sgb24gcXVldWUnKQogICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgZWxzZToKQEAgLTM3MSw4ICszOTYsOCBAQAogICAgICAgICAgICAgZGVidWcoJ3Rhc2sgaGFuZGxlciBzZW5kaW5nIHNlbnRpbmVsIHRvIHdvcmtlcnMnKQogICAgICAgICAgICAgZm9yIHAgaW4gcG9vbDoKICAgICAgICAgICAgICAgICBwdXQoTm9uZSkKLSAgICAgICAgZXhjZXB0IElPRXJyb3I6Ci0gICAgICAgICAgICBkZWJ1ZygndGFzayBoYW5kbGVyIGdvdCBJT0Vycm9yIHdoZW4gc2VuZGluZyBzZW50aW5lbHMnKQorICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgIGRlYnVnKCd0YXNrIGhhbmRsZXIgZ290IE9TRXJyb3Igd2hlbiBzZW5kaW5nIHNlbnRpbmVscycpCiAKICAgICAgICAgZGVidWcoJ3Rhc2sgaGFuZGxlciBleGl0aW5nJykKIApAQCAtMzgzLDggKzQwOCw4IEBACiAgICAgICAgIHdoaWxlIDE6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgdGFzayA9IGdldCgpCi0gICAgICAgICAgICBleGNlcHQgKElPRXJyb3IsIEVPRkVycm9yKToKLSAgICAgICAgICAgICAgICBkZWJ1ZygncmVzdWx0IGhhbmRsZXIgZ290IEVPRkVycm9yL0lPRXJyb3IgLS0gZXhpdGluZycpCisgICAgICAgICAgICBleGNlcHQgKE9TRXJyb3IsIEVPRkVycm9yKToKKyAgICAgICAgICAgICAgICBkZWJ1ZygncmVzdWx0IGhhbmRsZXIgZ290IEVPRkVycm9yL09TRXJyb3IgLS0gZXhpdGluZycpCiAgICAgICAgICAgICAgICAgcmV0dXJuCiAKICAgICAgICAgICAgIGlmIHRocmVhZC5fc3RhdGU6CkBAIC00MDUsOCArNDMwLDggQEAKICAgICAgICAgd2hpbGUgY2FjaGUgYW5kIHRocmVhZC5fc3RhdGUgIT0gVEVSTUlOQVRFOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHRhc2sgPSBnZXQoKQotICAgICAgICAgICAgZXhjZXB0IChJT0Vycm9yLCBFT0ZFcnJvcik6Ci0gICAgICAgICAgICAgICAgZGVidWcoJ3Jlc3VsdCBoYW5kbGVyIGdvdCBFT0ZFcnJvci9JT0Vycm9yIC0tIGV4aXRpbmcnKQorICAgICAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBFT0ZFcnJvcik6CisgICAgICAgICAgICAgICAgZGVidWcoJ3Jlc3VsdCBoYW5kbGVyIGdvdCBFT0ZFcnJvci9PU0Vycm9yIC0tIGV4aXRpbmcnKQogICAgICAgICAgICAgICAgIHJldHVybgogCiAgICAgICAgICAgICBpZiB0YXNrIGlzIE5vbmU6CkBAIC00MjgsNyArNDUzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgaWYgbm90IG91dHF1ZXVlLl9yZWFkZXIucG9sbCgpOgogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICAgZ2V0KCkKLSAgICAgICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgRU9GRXJyb3IpOgorICAgICAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBFT0ZFcnJvcik6CiAgICAgICAgICAgICAgICAgcGFzcwogCiAgICAgICAgIGRlYnVnKCdyZXN1bHQgaGFuZGxlciBleGl0aW5nOiBsZW4oY2FjaGUpPSVzLCB0aHJlYWQuX3N0YXRlPSVzJywKZGlmZiAtLWdpdCBhL0xpYi9tdWx0aXByb2Nlc3NpbmcvcXVldWVzLnB5IGIvTGliL211bHRpcHJvY2Vzc2luZy9xdWV1ZXMucHkKaW5kZXggMzcyNzFmYi4uZWMxODhlZSAxMDA2NDQKLS0tIGEvTGliL211bHRpcHJvY2Vzc2luZy9xdWV1ZXMucHkKKysrIGIvTGliL211bHRpcHJvY2Vzc2luZy9xdWV1ZXMucHkKQEAgLTIyLDcgKzIyLDcgQEAKIGZyb20gbXVsdGlwcm9jZXNzaW5nLmNvbm5lY3Rpb24gaW1wb3J0IFBpcGUKIGZyb20gbXVsdGlwcm9jZXNzaW5nLnN5bmNocm9uaXplIGltcG9ydCBMb2NrLCBCb3VuZGVkU2VtYXBob3JlLCBTZW1hcGhvcmUsIENvbmRpdGlvbgogZnJvbSBtdWx0aXByb2Nlc3NpbmcudXRpbCBpbXBvcnQgZGVidWcsIGluZm8sIEZpbmFsaXplLCByZWdpc3Rlcl9hZnRlcl9mb3JrCi1mcm9tIG11bHRpcHJvY2Vzc2luZy5mb3JraW5nIGltcG9ydCBhc3NlcnRfc3Bhd25pbmcKK2Zyb20gbXVsdGlwcm9jZXNzaW5nLmZvcmtpbmcgaW1wb3J0IGFzc2VydF9zcGF3bmluZywgRm9ya2luZ1BpY2tsZXIKIAogIwogIyBRdWV1ZSB0eXBlIHVzaW5nIGEgcGlwZSwgYnVmZmVyIGFuZCB0aHJlYWQKQEAgLTY5LDggKzY5LDggQEAKICAgICAgICAgc2VsZi5fam9pbmNhbmNlbGxlZCA9IEZhbHNlCiAgICAgICAgIHNlbGYuX2Nsb3NlZCA9IEZhbHNlCiAgICAgICAgIHNlbGYuX2Nsb3NlID0gTm9uZQotICAgICAgICBzZWxmLl9zZW5kID0gc2VsZi5fd3JpdGVyLnNlbmQKLSAgICAgICAgc2VsZi5fcmVjdiA9IHNlbGYuX3JlYWRlci5yZWN2CisgICAgICAgIHNlbGYuX3NlbmRfYnl0ZXMgPSBzZWxmLl93cml0ZXIuc2VuZF9ieXRlcworICAgICAgICBzZWxmLl9yZWN2X2J5dGVzID0gc2VsZi5fcmVhZGVyLnJlY3ZfYnl0ZXMKICAgICAgICAgc2VsZi5fcG9sbCA9IHNlbGYuX3JlYWRlci5wb2xsCiAKICAgICBkZWYgcHV0KHNlbGYsIG9iaiwgYmxvY2s9VHJ1ZSwgdGltZW91dD1Ob25lKToKQEAgLTg5LDE0ICs4OSw5IEBACiAKICAgICBkZWYgZ2V0KHNlbGYsIGJsb2NrPVRydWUsIHRpbWVvdXQ9Tm9uZSk6CiAgICAgICAgIGlmIGJsb2NrIGFuZCB0aW1lb3V0IGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9ybG9jay5hY3F1aXJlKCkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICByZXMgPSBzZWxmLl9yZWN2KCkKLSAgICAgICAgICAgICAgICBzZWxmLl9zZW0ucmVsZWFzZSgpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlcwotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBzZWxmLl9ybG9jay5yZWxlYXNlKCkKLQorICAgICAgICAgICAgd2l0aCBzZWxmLl9ybG9jazoKKyAgICAgICAgICAgICAgICByZXMgPSBzZWxmLl9yZWN2X2J5dGVzKCkKKyAgICAgICAgICAgIHNlbGYuX3NlbS5yZWxlYXNlKCkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGlmIGJsb2NrOgogICAgICAgICAgICAgICAgIGRlYWRsaW5lID0gdGltZS50aW1lKCkgKyB0aW1lb3V0CkBAIC0xMDksMTEgKzEwNCwxMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRW1wdHkKICAgICAgICAgICAgICAgICBlbGlmIG5vdCBzZWxmLl9wb2xsKCk6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEVtcHR5Ci0gICAgICAgICAgICAgICAgcmVzID0gc2VsZi5fcmVjdigpCisgICAgICAgICAgICAgICAgcmVzID0gc2VsZi5fcmVjdl9ieXRlcygpCiAgICAgICAgICAgICAgICAgc2VsZi5fc2VtLnJlbGVhc2UoKQotICAgICAgICAgICAgICAgIHJldHVybiByZXMKICAgICAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgc2VsZi5fcmxvY2sucmVsZWFzZSgpCisgICAgICAgICMgdW5zZXJpYWxpemUgdGhlIGRhdGEgYWZ0ZXIgaGF2aW5nIHJlbGVhc2VkIHRoZSBsb2NrCisgICAgICAgIHJldHVybiBGb3JraW5nUGlja2xlci5sb2FkcyhyZXMpCiAKICAgICBkZWYgcXNpemUoc2VsZik6CiAgICAgICAgICMgUmFpc2VzIE5vdEltcGxlbWVudGVkRXJyb3Igb24gTWFjIE9TWCBiZWNhdXNlIG9mIGJyb2tlbiBzZW1fZ2V0dmFsdWUoKQpAQCAtMTU4LDcgKzE1NCw3IEBACiAgICAgICAgIHNlbGYuX2J1ZmZlci5jbGVhcigpCiAgICAgICAgIHNlbGYuX3RocmVhZCA9IHRocmVhZGluZy5UaHJlYWQoCiAgICAgICAgICAgICB0YXJnZXQ9UXVldWUuX2ZlZWQsCi0gICAgICAgICAgICBhcmdzPShzZWxmLl9idWZmZXIsIHNlbGYuX25vdGVtcHR5LCBzZWxmLl9zZW5kLAorICAgICAgICAgICAgYXJncz0oc2VsZi5fYnVmZmVyLCBzZWxmLl9ub3RlbXB0eSwgc2VsZi5fc2VuZF9ieXRlcywKICAgICAgICAgICAgICAgICAgIHNlbGYuX3dsb2NrLCBzZWxmLl93cml0ZXIuY2xvc2UsIHNlbGYuX2lnbm9yZV9lcGlwZSksCiAgICAgICAgICAgICBuYW1lPSdRdWV1ZUZlZWRlclRocmVhZCcKICAgICAgICAgICAgICkKQEAgLTIxMCw3ICsyMDYsNyBAQAogICAgICAgICAgICAgbm90ZW1wdHkucmVsZWFzZSgpCiAKICAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIF9mZWVkKGJ1ZmZlciwgbm90ZW1wdHksIHNlbmQsIHdyaXRlbG9jaywgY2xvc2UsIGlnbm9yZV9lcGlwZSk6CisgICAgZGVmIF9mZWVkKGJ1ZmZlciwgbm90ZW1wdHksIHNlbmRfYnl0ZXMsIHdyaXRlbG9jaywgY2xvc2UsIGlnbm9yZV9lcGlwZSk6CiAgICAgICAgIGRlYnVnKCdzdGFydGluZyB0aHJlYWQgdG8gZmVlZCBkYXRhIHRvIHBpcGUnKQogICAgICAgICBmcm9tIC51dGlsIGltcG9ydCBpc19leGl0aW5nCiAKQEAgLTI0MSwxMiArMjM3LDE0IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2UoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgogCisgICAgICAgICAgICAgICAgICAgICAgICAjIHNlcmlhbGl6ZSB0aGUgZGF0YSBiZWZvcmUgYWNxdWlyaW5nIHRoZSBsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICBvYmogPSBGb3JraW5nUGlja2xlci5kdW1wcyhvYmopCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiB3YWNxdWlyZSBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmQob2JqKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRfYnl0ZXMob2JqKQogICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWNxdWlyZSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kKG9iaikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VuZF9ieXRlcyhvYmopCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JlbGVhc2UoKQogICAgICAgICAgICAgICAgIGV4Y2VwdCBJbmRleEVycm9yOgpAQCAtMzQwLDcgKzMzOCw2IEBACiAgICAgICAgICAgICBzZWxmLl93bG9jayA9IE5vbmUKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuX3dsb2NrID0gTG9jaygpCi0gICAgICAgIHNlbGYuX21ha2VfbWV0aG9kcygpCiAKICAgICBkZWYgZW1wdHkoc2VsZik6CiAgICAgICAgIHJldHVybiBub3Qgc2VsZi5fcG9sbCgpCkBAIC0zNTEsMjkgKzM0OCwxOSBAQAogCiAgICAgZGVmIF9fc2V0c3RhdGVfXyhzZWxmLCBzdGF0ZSk6CiAgICAgICAgIChzZWxmLl9yZWFkZXIsIHNlbGYuX3dyaXRlciwgc2VsZi5fcmxvY2ssIHNlbGYuX3dsb2NrKSA9IHN0YXRlCi0gICAgICAgIHNlbGYuX21ha2VfbWV0aG9kcygpCiAKLSAgICBkZWYgX21ha2VfbWV0aG9kcyhzZWxmKToKLSAgICAgICAgcmVjdiA9IHNlbGYuX3JlYWRlci5yZWN2Ci0gICAgICAgIHJhY3F1aXJlLCBycmVsZWFzZSA9IHNlbGYuX3Jsb2NrLmFjcXVpcmUsIHNlbGYuX3Jsb2NrLnJlbGVhc2UKLSAgICAgICAgZGVmIGdldCgpOgotICAgICAgICAgICAgcmFjcXVpcmUoKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHJldHVybiByZWN2KCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgcnJlbGVhc2UoKQotICAgICAgICBzZWxmLmdldCA9IGdldAorICAgIGRlZiBnZXQoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5fcmxvY2s6CisgICAgICAgICAgICByZXMgPSBzZWxmLl9yZWFkZXIucmVjdl9ieXRlcygpCisgICAgICAgICMgdW5zZXJpYWxpemUgdGhlIGRhdGEgYWZ0ZXIgaGF2aW5nIHJlbGVhc2VkIHRoZSBsb2NrCisgICAgICAgIHJldHVybiBGb3JraW5nUGlja2xlci5sb2FkcyhyZXMpCiAKKyAgICBkZWYgcHV0KHNlbGYsIG9iaik6CisgICAgICAgICMgc2VyaWFsaXplIHRoZSBkYXRhIGJlZm9yZSBhY3F1aXJpbmcgdGhlIGxvY2sKKyAgICAgICAgb2JqID0gRm9ya2luZ1BpY2tsZXIuZHVtcHMob2JqKQogICAgICAgICBpZiBzZWxmLl93bG9jayBpcyBOb25lOgogICAgICAgICAgICAgIyB3cml0ZXMgdG8gYSBtZXNzYWdlIG9yaWVudGVkIHdpbjMyIHBpcGUgYXJlIGF0b21pYwotICAgICAgICAgICAgc2VsZi5wdXQgPSBzZWxmLl93cml0ZXIuc2VuZAorICAgICAgICAgICAgc2VsZi5fd3JpdGVyLnNlbmRfYnl0ZXMob2JqKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VuZCA9IHNlbGYuX3dyaXRlci5zZW5kCi0gICAgICAgICAgICB3YWNxdWlyZSwgd3JlbGVhc2UgPSBzZWxmLl93bG9jay5hY3F1aXJlLCBzZWxmLl93bG9jay5yZWxlYXNlCi0gICAgICAgICAgICBkZWYgcHV0KG9iaik6Ci0gICAgICAgICAgICAgICAgd2FjcXVpcmUoKQotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbmQob2JqKQotICAgICAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgICAgIHdyZWxlYXNlKCkKLSAgICAgICAgICAgIHNlbGYucHV0ID0gcHV0CisgICAgICAgICAgICB3aXRoIHNlbGYuX3dsb2NrOgorICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlci5zZW5kX2J5dGVzKG9iaikKZGlmZiAtLWdpdCBhL0xpYi9uZXRyYy5weSBiL0xpYi9uZXRyYy5weQppbmRleCBjOTZkYjZmLi43ZmU2OWVlIDEwMDY0NAotLS0gYS9MaWIvbmV0cmMucHkKKysrIGIvTGliL25ldHJjLnB5CkBAIC0yNSw3ICsyNSw3IEBACiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgZmlsZSA9IG9zLnBhdGguam9pbihvcy5lbnZpcm9uWydIT01FJ10sICIubmV0cmMiKQogICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoIkNvdWxkIG5vdCBmaW5kIC5uZXRyYzogJEhPTUUgaXMgbm90IHNldCIpCisgICAgICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigiQ291bGQgbm90IGZpbmQgLm5ldHJjOiAkSE9NRSBpcyBub3Qgc2V0IikKICAgICAgICAgc2VsZi5ob3N0cyA9IHt9CiAgICAgICAgIHNlbGYubWFjcm9zID0ge30KICAgICAgICAgd2l0aCBvcGVuKGZpbGUpIGFzIGZwOgpkaWZmIC0tZ2l0IGEvTGliL25udHBsaWIucHkgYi9MaWIvbm50cGxpYi5weQppbmRleCAyZGU2ZWJkLi4wMWQ0MzAzIDEwMDY0NAotLS0gYS9MaWIvbm50cGxpYi5weQorKysgYi9MaWIvbm50cGxpYi5weQpAQCAtMzU5LDcgKzM1OSw3IEBACiAgICAgICAgIGlmIGlzX2Nvbm5lY3RlZCgpOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHNlbGYucXVpdCgpCi0gICAgICAgICAgICBleGNlcHQgKHNvY2tldC5lcnJvciwgRU9GRXJyb3IpOgorICAgICAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBFT0ZFcnJvcik6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICAgICBpZiBpc19jb25uZWN0ZWQoKToKQEAgLTk0Nyw3ICs5NDcsNyBAQAogICAgICAgICAgICAgICAgIGlmIGF1dGg6CiAgICAgICAgICAgICAgICAgICAgIHVzZXIgPSBhdXRoWzBdCiAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkID0gYXV0aFsyXQotICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgICMgUGVyZm9ybSBOTlRQIGF1dGhlbnRpY2F0aW9uIGlmIG5lZWRlZC4KICAgICAgICAgaWYgbm90IHVzZXI6CmRpZmYgLS1naXQgYS9MaWIvbnRwYXRoLnB5IGIvTGliL250cGF0aC5weQppbmRleCA4MjZiZTg3Li5kODFmNzI4IDEwMDY0NAotLS0gYS9MaWIvbnRwYXRoLnB5CisrKyBiL0xpYi9udHBhdGgucHkKQEAgLTE3LDcgKzE3LDcgQEAKICAgICAgICAgICAgImlzbW91bnQiLCAiZXhwYW5kdXNlciIsImV4cGFuZHZhcnMiLCJub3JtcGF0aCIsImFic3BhdGgiLAogICAgICAgICAgICAic3BsaXR1bmMiLCJjdXJkaXIiLCJwYXJkaXIiLCJzZXAiLCJwYXRoc2VwIiwiZGVmcGF0aCIsImFsdHNlcCIsCiAgICAgICAgICAgICJleHRzZXAiLCJkZXZudWxsIiwicmVhbHBhdGgiLCJzdXBwb3J0c191bmljb2RlX2ZpbGVuYW1lcyIsInJlbHBhdGgiLAotICAgICAgICAgICAic2FtZWZpbGUiLCAic2FtZW9wZW5maWxlIixdCisgICAgICAgICAgICJzYW1lZmlsZSIsICJzYW1lb3BlbmZpbGUiLCAic2FtZXN0YXQiLF0KIAogIyBzdHJpbmdzIHJlcHJlc2VudGluZyB2YXJpb3VzIHBhdGgtcmVsYXRlZCBiaXRzIGFuZCBwaWVjZXMKICMgVGhlc2UgYXJlIHByaW1hcmlseSBmb3IgZXhwb3J0OyBpbnRlcm5hbGx5LCB0aGV5IGFyZSBoYXJkY29kZWQuCkBAIC0zMCw5ICszMCw2IEBACiBkZWZwYXRoID0gJy47QzpcXGJpbicKIGlmICdjZScgaW4gc3lzLmJ1aWx0aW5fbW9kdWxlX25hbWVzOgogICAgIGRlZnBhdGggPSAnXFxXaW5kb3dzJwotZWxpZiAnb3MyJyBpbiBzeXMuYnVpbHRpbl9tb2R1bGVfbmFtZXM6Ci0gICAgIyBPUy8yIHcvIFZBQ1BQCi0gICAgYWx0c2VwID0gJy8nCiBkZXZudWxsID0gJ251bCcKIAogZGVmIF9nZXRfZW1wdHkocGF0aCk6CkBAIC0zMjAsMTIgKzMxNywxMSBAQAogCiBkZWYgaXNsaW5rKHBhdGgpOgogICAgICIiIlRlc3Qgd2hldGhlciBhIHBhdGggaXMgYSBzeW1ib2xpYyBsaW5rLgotICAgIFRoaXMgd2lsbCBhbHdheXMgcmV0dXJuIGZhbHNlIGZvciBXaW5kb3dzIHByaW9yIHRvIDYuMAotICAgIGFuZCBmb3IgT1MvMi4KKyAgICBUaGlzIHdpbGwgYWx3YXlzIHJldHVybiBmYWxzZSBmb3IgV2luZG93cyBwcmlvciB0byA2LjAuCiAgICAgIiIiCiAgICAgdHJ5OgogICAgICAgICBzdCA9IG9zLmxzdGF0KHBhdGgpCi0gICAgZXhjZXB0IChvcy5lcnJvciwgQXR0cmlidXRlRXJyb3IpOgorICAgIGV4Y2VwdCAoT1NFcnJvciwgQXR0cmlidXRlRXJyb3IpOgogICAgICAgICByZXR1cm4gRmFsc2UKICAgICByZXR1cm4gc3RhdC5TX0lTTE5LKHN0LnN0X21vZGUpCiAKQEAgLTMzNSw3ICszMzEsNyBAQAogICAgICIiIlRlc3Qgd2hldGhlciBhIHBhdGggZXhpc3RzLiAgUmV0dXJucyBUcnVlIGZvciBicm9rZW4gc3ltYm9saWMgbGlua3MiIiIKICAgICB0cnk6CiAgICAgICAgIHN0ID0gb3MubHN0YXQocGF0aCkKLSAgICBleGNlcHQgKG9zLmVycm9yLCBXaW5kb3dzRXJyb3IpOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICByZXR1cm4gRmFsc2UKICAgICByZXR1cm4gVHJ1ZQogCkBAIC01ODgsNyArNTg0LDcgQEAKICAgICAgICAgaWYgcGF0aDogIyBFbXB0eSBwYXRoIG11c3QgcmV0dXJuIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgcGF0aCA9IF9nZXRmdWxscGF0aG5hbWUocGF0aCkKLSAgICAgICAgICAgIGV4Y2VwdCBXaW5kb3dzRXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICBwYXNzICMgQmFkIHBhdGggLSByZXR1cm4gdW5jaGFuZ2VkLgogICAgICAgICBlbGlmIGlzaW5zdGFuY2UocGF0aCwgYnl0ZXMpOgogICAgICAgICAgICAgcGF0aCA9IG9zLmdldGN3ZGIoKQpAQCAtNjU2LDIzICs2NTIsNiBAQAogICAgIGRlZiBfZ2V0ZmluYWxwYXRobmFtZShmKToKICAgICAgICAgcmV0dXJuIG5vcm1jYXNlKGFic3BhdGgoZikpCiAKLWRlZiBzYW1lZmlsZShmMSwgZjIpOgotICAgICJUZXN0IHdoZXRoZXIgdHdvIHBhdGhuYW1lcyByZWZlcmVuY2UgdGhlIHNhbWUgYWN0dWFsIGZpbGUiCi0gICAgcmV0dXJuIF9nZXRmaW5hbHBhdGhuYW1lKGYxKSA9PSBfZ2V0ZmluYWxwYXRobmFtZShmMikKLQotCi10cnk6Ci0gICAgZnJvbSBudCBpbXBvcnQgX2dldGZpbGVpbmZvcm1hdGlvbgotZXhjZXB0IEltcG9ydEVycm9yOgotICAgICMgT24gb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMsIGp1c3QgcmV0dXJuIHRoZSBmZCBhbmQgc2VlIHRoYXQKLSAgICAjIGl0IGNvbXBhcmVzIGVxdWFsIGluIHNhbWVvcGVuZmlsZS4KLSAgICBkZWYgX2dldGZpbGVpbmZvcm1hdGlvbihmZCk6Ci0gICAgICAgIHJldHVybiBmZAotCi1kZWYgc2FtZW9wZW5maWxlKGYxLCBmMik6Ci0gICAgIiIiVGVzdCB3aGV0aGVyIHR3byBmaWxlIG9iamVjdHMgcmVmZXJlbmNlIHRoZSBzYW1lIGZpbGUiIiIKLSAgICByZXR1cm4gX2dldGZpbGVpbmZvcm1hdGlvbihmMSkgPT0gX2dldGZpbGVpbmZvcm1hdGlvbihmMikKLQogCiB0cnk6CiAgICAgIyBUaGUgZ2VuZXJpY3BhdGguaXNkaXIgaW1wbGVtZW50YXRpb24gdXNlcyBvcy5zdGF0IGFuZCBjaGVja3MgdGhlIG1vZGUKZGlmZiAtLWdpdCBhL0xpYi9udHVybDJwYXRoLnB5IGIvTGliL250dXJsMnBhdGgucHkKaW5kZXggNTExZGNlYy4uNWE2ZDQ0YSAxMDA2NDQKLS0tIGEvTGliL250dXJsMnBhdGgucHkKKysrIGIvTGliL250dXJsMnBhdGgucHkKQEAgLTIzLDcgKzIzLDcgQEAKICAgICBjb21wID0gdXJsLnNwbGl0KCd8JykKICAgICBpZiBsZW4oY29tcCkgIT0gMiBvciBjb21wWzBdWy0xXSBub3QgaW4gc3RyaW5nLmFzY2lpX2xldHRlcnM6CiAgICAgICAgIGVycm9yID0gJ0JhZCBVUkw6ICcgKyB1cmwKLSAgICAgICAgcmFpc2UgSU9FcnJvcihlcnJvcikKKyAgICAgICAgcmFpc2UgT1NFcnJvcihlcnJvcikKICAgICBkcml2ZSA9IGNvbXBbMF1bLTFdLnVwcGVyKCkKICAgICBjb21wb25lbnRzID0gY29tcFsxXS5zcGxpdCgnLycpCiAgICAgcGF0aCA9IGRyaXZlICsgJzonCkBAIC01NSw3ICs1NSw3IEBACiAgICAgY29tcCA9IHAuc3BsaXQoJzonKQogICAgIGlmIGxlbihjb21wKSAhPSAyIG9yIGxlbihjb21wWzBdKSA+IDE6CiAgICAgICAgIGVycm9yID0gJ0JhZCBwYXRoOiAnICsgcAotICAgICAgICByYWlzZSBJT0Vycm9yKGVycm9yKQorICAgICAgICByYWlzZSBPU0Vycm9yKGVycm9yKQogCiAgICAgZHJpdmUgPSB1cmxsaWIucGFyc2UucXVvdGUoY29tcFswXS51cHBlcigpKQogICAgIGNvbXBvbmVudHMgPSBjb21wWzFdLnNwbGl0KCdcXCcpCmRpZmYgLS1naXQgYS9MaWIvb3Bjb2RlLnB5IGIvTGliL29wY29kZS5weQppbmRleCBhNjM5ZmUzLi43OGQxMjI5IDEwMDY0NAotLS0gYS9MaWIvb3Bjb2RlLnB5CisrKyBiL0xpYi9vcGNvZGUucHkKQEAgLTg0LDcgKzg0LDYgQEAKIGRlZl9vcCgnQklOQVJZX09SJywgNjYpCiBkZWZfb3AoJ0lOUExBQ0VfUE9XRVInLCA2NykKIGRlZl9vcCgnR0VUX0lURVInLCA2OCkKLWRlZl9vcCgnU1RPUkVfTE9DQUxTJywgNjkpCiAKIGRlZl9vcCgnUFJJTlRfRVhQUicsIDcwKQogZGVmX29wKCdMT0FEX0JVSUxEX0NMQVNTJywgNzEpCkBAIC0xNzksNiArMTc4LDkgQEAKIGRlZl9vcCgnU0VUX0FERCcsIDE0NikKIGRlZl9vcCgnTUFQX0FERCcsIDE0NykKIAorZGVmX29wKCdMT0FEX0NMQVNTREVSRUYnLCAxNDgpCitoYXNmcmVlLmFwcGVuZCgxNDgpCisKIGRlZl9vcCgnRVhURU5ERURfQVJHJywgMTQ0KQogRVhURU5ERURfQVJHID0gMTQ0CiAKZGlmZiAtLWdpdCBhL0xpYi9vcGVyYXRvci5weSBiL0xpYi9vcGVyYXRvci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzFhOWE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGliL29wZXJhdG9yLnB5CkBAIC0wLDAgKzEsNDEyIEBACisjIS91c3IvYmluL2VudiBweXRob24zCisiIiIKK09wZXJhdG9yIEludGVyZmFjZQorCitUaGlzIG1vZHVsZSBleHBvcnRzIGEgc2V0IG9mIGZ1bmN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSBpbnRyaW5zaWMKK29wZXJhdG9ycyBvZiBQeXRob24uICBGb3IgZXhhbXBsZSwgb3BlcmF0b3IuYWRkKHgsIHkpIGlzIGVxdWl2YWxlbnQKK3RvIHRoZSBleHByZXNzaW9uIHgreS4gIFRoZSBmdW5jdGlvbiBuYW1lcyBhcmUgdGhvc2UgdXNlZCBmb3Igc3BlY2lhbAorbWV0aG9kczsgdmFyaWFudHMgd2l0aG91dCBsZWFkaW5nIGFuZCB0cmFpbGluZyAnX18nIGFyZSBhbHNvIHByb3ZpZGVkCitmb3IgY29udmVuaWVuY2UuCisKK1RoaXMgaXMgdGhlIHB1cmUgUHl0aG9uIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtb2R1bGUuCisiIiIKKworX19hbGxfXyA9IFsnYWJzJywgJ2FkZCcsICdhbmRfJywgJ2F0dHJnZXR0ZXInLCAnY29uY2F0JywgJ2NvbnRhaW5zJywgJ2NvdW50T2YnLAorICAgICAgICAgICAnZGVsaXRlbScsICdlcScsICdmbG9vcmRpdicsICdnZScsICdnZXRpdGVtJywgJ2d0JywgJ2lhZGQnLCAnaWFuZCcsCisgICAgICAgICAgICdpY29uY2F0JywgJ2lmbG9vcmRpdicsICdpbHNoaWZ0JywgJ2ltb2QnLCAnaW11bCcsICdpbmRleCcsCisgICAgICAgICAgICdpbmRleE9mJywgJ2ludicsICdpbnZlcnQnLCAnaW9yJywgJ2lwb3cnLCAnaXJzaGlmdCcsICdpc18nLAorICAgICAgICAgICAnaXNfbm90JywgJ2lzdWInLCAnaXRlbWdldHRlcicsICdpdHJ1ZWRpdicsICdpeG9yJywgJ2xlJywKKyAgICAgICAgICAgJ2xlbmd0aF9oaW50JywgJ2xzaGlmdCcsICdsdCcsICdtZXRob2RjYWxsZXInLCAnbW9kJywgJ211bCcsICduZScsCisgICAgICAgICAgICduZWcnLCAnbm90XycsICdvcl8nLCAncG9zJywgJ3BvdycsICdyc2hpZnQnLCAnc2V0aXRlbScsICdzdWInLAorICAgICAgICAgICAndHJ1ZWRpdicsICd0cnV0aCcsICd4b3InXQorCitmcm9tIGJ1aWx0aW5zIGltcG9ydCBhYnMgYXMgX2FicworCisKKyMgQ29tcGFyaXNvbiBPcGVyYXRpb25zICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiojCisKK2RlZiBsdChhLCBiKToKKyAgICAiU2FtZSBhcyBhIDwgYi4iCisgICAgcmV0dXJuIGEgPCBiCisKK2RlZiBsZShhLCBiKToKKyAgICAiU2FtZSBhcyBhIDw9IGIuIgorICAgIHJldHVybiBhIDw9IGIKKworZGVmIGVxKGEsIGIpOgorICAgICJTYW1lIGFzIGEgPT0gYi4iCisgICAgcmV0dXJuIGEgPT0gYgorCitkZWYgbmUoYSwgYik6CisgICAgIlNhbWUgYXMgYSAhPSBiLiIKKyAgICByZXR1cm4gYSAhPSBiCisKK2RlZiBnZShhLCBiKToKKyAgICAiU2FtZSBhcyBhID49IGIuIgorICAgIHJldHVybiBhID49IGIKKworZGVmIGd0KGEsIGIpOgorICAgICJTYW1lIGFzIGEgPiBiLiIKKyAgICByZXR1cm4gYSA+IGIKKworIyBMb2dpY2FsIE9wZXJhdGlvbnMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiMKKworZGVmIG5vdF8oYSk6CisgICAgIlNhbWUgYXMgbm90IGEuIgorICAgIHJldHVybiBub3QgYQorCitkZWYgdHJ1dGgoYSk6CisgICAgIlJldHVybiBUcnVlIGlmIGEgaXMgdHJ1ZSwgRmFsc2Ugb3RoZXJ3aXNlLiIKKyAgICByZXR1cm4gVHJ1ZSBpZiBhIGVsc2UgRmFsc2UKKworZGVmIGlzXyhhLCBiKToKKyAgICAiU2FtZSBhcyBhIGlzIGIuIgorICAgIHJldHVybiBhIGlzIGIKKworZGVmIGlzX25vdChhLCBiKToKKyAgICAiU2FtZSBhcyBhIGlzIG5vdCBiLiIKKyAgICByZXR1cm4gYSBpcyBub3QgYgorCisjIE1hdGhlbWF0aWNhbC9CaXR3aXNlIE9wZXJhdGlvbnMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIworCitkZWYgYWJzKGEpOgorICAgICJTYW1lIGFzIGFicyhhKS4iCisgICAgcmV0dXJuIF9hYnMoYSkKKworZGVmIGFkZChhLCBiKToKKyAgICAiU2FtZSBhcyBhICsgYi4iCisgICAgcmV0dXJuIGEgKyBiCisKK2RlZiBhbmRfKGEsIGIpOgorICAgICJTYW1lIGFzIGEgJiBiLiIKKyAgICByZXR1cm4gYSAmIGIKKworZGVmIGZsb29yZGl2KGEsIGIpOgorICAgICJTYW1lIGFzIGEgLy8gYi4iCisgICAgcmV0dXJuIGEgLy8gYgorCitkZWYgaW5kZXgoYSk6CisgICAgIlNhbWUgYXMgYS5fX2luZGV4X18oKS4iCisgICAgcmV0dXJuIGEuX19pbmRleF9fKCkKKworZGVmIGludihhKToKKyAgICAiU2FtZSBhcyB+YS4iCisgICAgcmV0dXJuIH5hCitpbnZlcnQgPSBpbnYKKworZGVmIGxzaGlmdChhLCBiKToKKyAgICAiU2FtZSBhcyBhIDw8IGIuIgorICAgIHJldHVybiBhIDw8IGIKKworZGVmIG1vZChhLCBiKToKKyAgICAiU2FtZSBhcyBhICUgYi4iCisgICAgcmV0dXJuIGEgJSBiCisKK2RlZiBtdWwoYSwgYik6CisgICAgIlNhbWUgYXMgYSAqIGIuIgorICAgIHJldHVybiBhICogYgorCitkZWYgbmVnKGEpOgorICAgICJTYW1lIGFzIC1hLiIKKyAgICByZXR1cm4gLWEKKworZGVmIG9yXyhhLCBiKToKKyAgICAiU2FtZSBhcyBhIHwgYi4iCisgICAgcmV0dXJuIGEgfCBiCisKK2RlZiBwb3MoYSk6CisgICAgIlNhbWUgYXMgK2EuIgorICAgIHJldHVybiArYQorCitkZWYgcG93KGEsIGIpOgorICAgICJTYW1lIGFzIGEgKiogYi4iCisgICAgcmV0dXJuIGEgKiogYgorCitkZWYgcnNoaWZ0KGEsIGIpOgorICAgICJTYW1lIGFzIGEgPj4gYi4iCisgICAgcmV0dXJuIGEgPj4gYgorCitkZWYgc3ViKGEsIGIpOgorICAgICJTYW1lIGFzIGEgLSBiLiIKKyAgICByZXR1cm4gYSAtIGIKKworZGVmIHRydWVkaXYoYSwgYik6CisgICAgIlNhbWUgYXMgYSAvIGIuIgorICAgIHJldHVybiBhIC8gYgorCitkZWYgeG9yKGEsIGIpOgorICAgICJTYW1lIGFzIGEgXiBiLiIKKyAgICByZXR1cm4gYSBeIGIKKworIyBTZXF1ZW5jZSBPcGVyYXRpb25zICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiMKKworZGVmIGNvbmNhdChhLCBiKToKKyAgICAiU2FtZSBhcyBhICsgYiwgZm9yIGEgYW5kIGIgc2VxdWVuY2VzLiIKKyAgICBpZiBub3QgaGFzYXR0cihhLCAnX19nZXRpdGVtX18nKToKKyAgICAgICAgbXNnID0gIiclcycgb2JqZWN0IGNhbid0IGJlIGNvbmNhdGVuYXRlZCIgJSB0eXBlKGEpLl9fbmFtZV9fCisgICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cpCisgICAgcmV0dXJuIGEgKyBiCisKK2RlZiBjb250YWlucyhhLCBiKToKKyAgICAiU2FtZSBhcyBiIGluIGEgKG5vdGUgcmV2ZXJzZWQgb3BlcmFuZHMpLiIKKyAgICByZXR1cm4gYiBpbiBhCisKK2RlZiBjb3VudE9mKGEsIGIpOgorICAgICJSZXR1cm4gdGhlIG51bWJlciBvZiB0aW1lcyBiIG9jY3VycyBpbiBhLiIKKyAgICBjb3VudCA9IDAKKyAgICBmb3IgaSBpbiBhOgorICAgICAgICBpZiBpID09IGI6CisgICAgICAgICAgICBjb3VudCArPSAxCisgICAgcmV0dXJuIGNvdW50CisKK2RlZiBkZWxpdGVtKGEsIGIpOgorICAgICJTYW1lIGFzIGRlbCBhW2JdLiIKKyAgICBkZWwgYVtiXQorCitkZWYgZ2V0aXRlbShhLCBiKToKKyAgICAiU2FtZSBhcyBhW2JdLiIKKyAgICByZXR1cm4gYVtiXQorCitkZWYgaW5kZXhPZihhLCBiKToKKyAgICAiUmV0dXJuIHRoZSBmaXJzdCBpbmRleCBvZiBiIGluIGEuIgorICAgIGZvciBpLCBqIGluIGVudW1lcmF0ZShhKToKKyAgICAgICAgaWYgaiA9PSBiOgorICAgICAgICAgICAgcmV0dXJuIGkKKyAgICBlbHNlOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzZXF1ZW5jZS5pbmRleCh4KTogeCBub3QgaW4gc2VxdWVuY2UnKQorCitkZWYgc2V0aXRlbShhLCBiLCBjKToKKyAgICAiU2FtZSBhcyBhW2JdID0gYy4iCisgICAgYVtiXSA9IGMKKworZGVmIGxlbmd0aF9oaW50KG9iaiwgZGVmYXVsdD0wKToKKyAgICAiIiIKKyAgICBSZXR1cm4gYW4gZXN0aW1hdGUgb2YgdGhlIG51bWJlciBvZiBpdGVtcyBpbiBvYmouCisgICAgVGhpcyBpcyB1c2VmdWwgZm9yIHByZXNpemluZyBjb250YWluZXJzIHdoZW4gYnVpbGRpbmcgZnJvbSBhbiBpdGVyYWJsZS4KKworICAgIElmIHRoZSBvYmplY3Qgc3VwcG9ydHMgbGVuKCksIHRoZSByZXN1bHQgd2lsbCBiZSBleGFjdC4gT3RoZXJ3aXNlLCBpdCBtYXkKKyAgICBvdmVyLSBvciB1bmRlci1lc3RpbWF0ZSBieSBhbiBhcmJpdHJhcnkgYW1vdW50LiBUaGUgcmVzdWx0IHdpbGwgYmUgYW4KKyAgICBpbnRlZ2VyID49IDAuCisgICAgIiIiCisgICAgaWYgbm90IGlzaW5zdGFuY2UoZGVmYXVsdCwgaW50KToKKyAgICAgICAgbXNnID0gKCInJXMnIG9iamVjdCBjYW5ub3QgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlciIgJQorICAgICAgICAgICAgICAgdHlwZShkZWZhdWx0KS5fX25hbWVfXykKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1zZykKKworICAgIHRyeToKKyAgICAgICAgcmV0dXJuIGxlbihvYmopCisgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgcGFzcworCisgICAgdHJ5OgorICAgICAgICBoaW50ID0gdHlwZShvYmopLl9fbGVuZ3RoX2hpbnRfXworICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgcmV0dXJuIGRlZmF1bHQKKworICAgIHRyeToKKyAgICAgICAgdmFsID0gaGludChvYmopCisgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgcmV0dXJuIGRlZmF1bHQKKyAgICBpZiB2YWwgaXMgTm90SW1wbGVtZW50ZWQ6CisgICAgICAgIHJldHVybiBkZWZhdWx0CisgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsLCBpbnQpOgorICAgICAgICBtc2cgPSAoJ19fbGVuZ3RoX2hpbnRfXyBtdXN0IGJlIGludGVnZXIsIG5vdCAlcycgJQorICAgICAgICAgICAgICAgdHlwZSh2YWwpLl9fbmFtZV9fKQorICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnKQorICAgIGlmIHZhbCA8IDA6CisgICAgICAgIG1zZyA9ICdfX2xlbmd0aF9oaW50X18oKSBzaG91bGQgcmV0dXJuID49IDAnCisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IobXNnKQorICAgIHJldHVybiB2YWwKKworIyBHZW5lcmFsaXplZCBMb29rdXAgT2JqZWN0cyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiMKKworY2xhc3MgYXR0cmdldHRlcjoKKyAgICAiIiIKKyAgICBSZXR1cm4gYSBjYWxsYWJsZSBvYmplY3QgdGhhdCBmZXRjaGVzIHRoZSBnaXZlbiBhdHRyaWJ1dGUocykgZnJvbSBpdHMgb3BlcmFuZC4KKyAgICBBZnRlciBmID0gYXR0cmdldHRlcignbmFtZScpLCB0aGUgY2FsbCBmKHIpIHJldHVybnMgci5uYW1lLgorICAgIEFmdGVyIGcgPSBhdHRyZ2V0dGVyKCduYW1lJywgJ2RhdGUnKSwgdGhlIGNhbGwgZyhyKSByZXR1cm5zIChyLm5hbWUsIHIuZGF0ZSkuCisgICAgQWZ0ZXIgaCA9IGF0dHJnZXR0ZXIoJ25hbWUuZmlyc3QnLCAnbmFtZS5sYXN0JyksIHRoZSBjYWxsIGgocikgcmV0dXJucworICAgIChyLm5hbWUuZmlyc3QsIHIubmFtZS5sYXN0KS4KKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXR0ciwgKmF0dHJzKToKKyAgICAgICAgaWYgbm90IGF0dHJzOgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYXR0ciwgc3RyKToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ2F0dHJpYnV0ZSBuYW1lIG11c3QgYmUgYSBzdHJpbmcnKQorICAgICAgICAgICAgbmFtZXMgPSBhdHRyLnNwbGl0KCcuJykKKyAgICAgICAgICAgIGRlZiBmdW5jKG9iaik6CisgICAgICAgICAgICAgICAgZm9yIG5hbWUgaW4gbmFtZXM6CisgICAgICAgICAgICAgICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCBuYW1lKQorICAgICAgICAgICAgICAgIHJldHVybiBvYmoKKyAgICAgICAgICAgIHNlbGYuX2NhbGwgPSBmdW5jCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBnZXR0ZXJzID0gdHVwbGUobWFwKGF0dHJnZXR0ZXIsIChhdHRyLCkgKyBhdHRycykpCisgICAgICAgICAgICBkZWYgZnVuYyhvYmopOgorICAgICAgICAgICAgICAgIHJldHVybiB0dXBsZShnZXR0ZXIob2JqKSBmb3IgZ2V0dGVyIGluIGdldHRlcnMpCisgICAgICAgICAgICBzZWxmLl9jYWxsID0gZnVuYworCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIG9iaik6CisgICAgICAgIHJldHVybiBzZWxmLl9jYWxsKG9iaikKKworY2xhc3MgaXRlbWdldHRlcjoKKyAgICAiIiIKKyAgICBSZXR1cm4gYSBjYWxsYWJsZSBvYmplY3QgdGhhdCBmZXRjaGVzIHRoZSBnaXZlbiBpdGVtKHMpIGZyb20gaXRzIG9wZXJhbmQuCisgICAgQWZ0ZXIgZiA9IGl0ZW1nZXR0ZXIoMiksIHRoZSBjYWxsIGYocikgcmV0dXJucyByWzJdLgorICAgIEFmdGVyIGcgPSBpdGVtZ2V0dGVyKDIsIDUsIDMpLCB0aGUgY2FsbCBnKHIpIHJldHVybnMgKHJbMl0sIHJbNV0sIHJbM10pCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGl0ZW0sICppdGVtcyk6CisgICAgICAgIGlmIG5vdCBpdGVtczoKKyAgICAgICAgICAgIGRlZiBmdW5jKG9iaik6CisgICAgICAgICAgICAgICAgcmV0dXJuIG9ialtpdGVtXQorICAgICAgICAgICAgc2VsZi5fY2FsbCA9IGZ1bmMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGl0ZW1zID0gKGl0ZW0sKSArIGl0ZW1zCisgICAgICAgICAgICBkZWYgZnVuYyhvYmopOgorICAgICAgICAgICAgICAgIHJldHVybiB0dXBsZShvYmpbaV0gZm9yIGkgaW4gaXRlbXMpCisgICAgICAgICAgICBzZWxmLl9jYWxsID0gZnVuYworCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIG9iaik6CisgICAgICAgIHJldHVybiBzZWxmLl9jYWxsKG9iaikKKworY2xhc3MgbWV0aG9kY2FsbGVyOgorICAgICIiIgorICAgIFJldHVybiBhIGNhbGxhYmxlIG9iamVjdCB0aGF0IGNhbGxzIHRoZSBnaXZlbiBtZXRob2Qgb24gaXRzIG9wZXJhbmQuCisgICAgQWZ0ZXIgZiA9IG1ldGhvZGNhbGxlcignbmFtZScpLCB0aGUgY2FsbCBmKHIpIHJldHVybnMgci5uYW1lKCkuCisgICAgQWZ0ZXIgZyA9IG1ldGhvZGNhbGxlcignbmFtZScsICdkYXRlJywgZm9vPTEpLCB0aGUgY2FsbCBnKHIpIHJldHVybnMKKyAgICByLm5hbWUoJ2RhdGUnLCBmb289MSkuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgaWYgbGVuKGFyZ3MpIDwgMjoKKyAgICAgICAgICAgIG1zZyA9ICJtZXRob2RjYWxsZXIgbmVlZHMgYXQgbGVhc3Qgb25lIGFyZ3VtZW50LCB0aGUgbWV0aG9kIG5hbWUiCisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnKQorICAgICAgICBzZWxmID0gYXJnc1swXQorICAgICAgICBzZWxmLl9uYW1lID0gYXJnc1sxXQorICAgICAgICBzZWxmLl9hcmdzID0gYXJnc1syOl0KKyAgICAgICAgc2VsZi5fa3dhcmdzID0ga3dhcmdzCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgb2JqKToKKyAgICAgICAgcmV0dXJuIGdldGF0dHIob2JqLCBzZWxmLl9uYW1lKSgqc2VsZi5fYXJncywgKipzZWxmLl9rd2FyZ3MpCisKKyMgSW4tcGxhY2UgT3BlcmF0aW9ucyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiojCisKK2RlZiBpYWRkKGEsIGIpOgorICAgICJTYW1lIGFzIGEgKz0gYi4iCisgICAgYSArPSBiCisgICAgcmV0dXJuIGEKKworZGVmIGlhbmQoYSwgYik6CisgICAgIlNhbWUgYXMgYSAmPSBiLiIKKyAgICBhICY9IGIKKyAgICByZXR1cm4gYQorCitkZWYgaWNvbmNhdChhLCBiKToKKyAgICAiU2FtZSBhcyBhICs9IGIsIGZvciBhIGFuZCBiIHNlcXVlbmNlcy4iCisgICAgaWYgbm90IGhhc2F0dHIoYSwgJ19fZ2V0aXRlbV9fJyk6CisgICAgICAgIG1zZyA9ICInJXMnIG9iamVjdCBjYW4ndCBiZSBjb25jYXRlbmF0ZWQiICUgdHlwZShhKS5fX25hbWVfXworICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnKQorICAgIGEgKz0gYgorICAgIHJldHVybiBhCisKK2RlZiBpZmxvb3JkaXYoYSwgYik6CisgICAgIlNhbWUgYXMgYSAvLz0gYi4iCisgICAgYSAvLz0gYgorICAgIHJldHVybiBhCisKK2RlZiBpbHNoaWZ0KGEsIGIpOgorICAgICJTYW1lIGFzIGEgPDw9IGIuIgorICAgIGEgPDw9IGIKKyAgICByZXR1cm4gYQorCitkZWYgaW1vZChhLCBiKToKKyAgICAiU2FtZSBhcyBhICU9IGIuIgorICAgIGEgJT0gYgorICAgIHJldHVybiBhCisKK2RlZiBpbXVsKGEsIGIpOgorICAgICJTYW1lIGFzIGEgKj0gYi4iCisgICAgYSAqPSBiCisgICAgcmV0dXJuIGEKKworZGVmIGlvcihhLCBiKToKKyAgICAiU2FtZSBhcyBhIHw9IGIuIgorICAgIGEgfD0gYgorICAgIHJldHVybiBhCisKK2RlZiBpcG93KGEsIGIpOgorICAgICJTYW1lIGFzIGEgKio9IGIuIgorICAgIGEgKio9YgorICAgIHJldHVybiBhCisKK2RlZiBpcnNoaWZ0KGEsIGIpOgorICAgICJTYW1lIGFzIGEgPj49IGIuIgorICAgIGEgPj49IGIKKyAgICByZXR1cm4gYQorCitkZWYgaXN1YihhLCBiKToKKyAgICAiU2FtZSBhcyBhIC09IGIuIgorICAgIGEgLT0gYgorICAgIHJldHVybiBhCisKK2RlZiBpdHJ1ZWRpdihhLCBiKToKKyAgICAiU2FtZSBhcyBhIC89IGIuIgorICAgIGEgLz0gYgorICAgIHJldHVybiBhCisKK2RlZiBpeG9yKGEsIGIpOgorICAgICJTYW1lIGFzIGEgXj0gYi4iCisgICAgYSBePSBiCisgICAgcmV0dXJuIGEKKworCit0cnk6CisgICAgZnJvbSBfb3BlcmF0b3IgaW1wb3J0ICoKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBwYXNzCitlbHNlOgorICAgIGZyb20gX29wZXJhdG9yIGltcG9ydCBfX2RvY19fCisKKyMgQWxsIG9mIHRoZXNlICJfX2Z1bmNfXyA9IGZ1bmMiIGFzc2lnbm1lbnRzIGhhdmUgdG8gaGFwcGVuIGFmdGVyIGltcG9ydGluZworIyBmcm9tIF9vcGVyYXRvciB0byBtYWtlIHN1cmUgdGhleSdyZSBzZXQgdG8gdGhlIHJpZ2h0IGZ1bmN0aW9uCitfX2x0X18gPSBsdAorX19sZV9fID0gbGUKK19fZXFfXyA9IGVxCitfX25lX18gPSBuZQorX19nZV9fID0gZ2UKK19fZ3RfXyA9IGd0CitfX25vdF9fID0gbm90XworX19hYnNfXyA9IGFicworX19hZGRfXyA9IGFkZAorX19hbmRfXyA9IGFuZF8KK19fZmxvb3JkaXZfXyA9IGZsb29yZGl2CitfX2luZGV4X18gPSBpbmRleAorX19pbnZfXyA9IGludgorX19pbnZlcnRfXyA9IGludmVydAorX19sc2hpZnRfXyA9IGxzaGlmdAorX19tb2RfXyA9IG1vZAorX19tdWxfXyA9IG11bAorX19uZWdfXyA9IG5lZworX19vcl9fID0gb3JfCitfX3Bvc19fID0gcG9zCitfX3Bvd19fID0gcG93CitfX3JzaGlmdF9fID0gcnNoaWZ0CitfX3N1Yl9fID0gc3ViCitfX3RydWVkaXZfXyA9IHRydWVkaXYKK19feG9yX18gPSB4b3IKK19fY29uY2F0X18gPSBjb25jYXQKK19fY29udGFpbnNfXyA9IGNvbnRhaW5zCitfX2RlbGl0ZW1fXyA9IGRlbGl0ZW0KK19fZ2V0aXRlbV9fID0gZ2V0aXRlbQorX19zZXRpdGVtX18gPSBzZXRpdGVtCitfX2lhZGRfXyA9IGlhZGQKK19faWFuZF9fID0gaWFuZAorX19pY29uY2F0X18gPSBpY29uY2F0CitfX2lmbG9vcmRpdl9fID0gaWZsb29yZGl2CitfX2lsc2hpZnRfXyA9IGlsc2hpZnQKK19faW1vZF9fID0gaW1vZAorX19pbXVsX18gPSBpbXVsCitfX2lvcl9fID0gaW9yCitfX2lwb3dfXyA9IGlwb3cKK19faXJzaGlmdF9fID0gaXJzaGlmdAorX19pc3ViX18gPSBpc3ViCitfX2l0cnVlZGl2X18gPSBpdHJ1ZWRpdgorX19peG9yX18gPSBpeG9yCmRpZmYgLS1naXQgYS9MaWIvb3MucHkgYi9MaWIvb3MucHkKaW5kZXggMDY2MTZjNi4uOTY3MjBlNCAxMDA2NDQKLS0tIGEvTGliL29zLnB5CisrKyBiL0xpYi9vcy5weQpAQCAtMSw5ICsxLDkgQEAKIHIiIiJPUyByb3V0aW5lcyBmb3IgTWFjLCBOVCwgb3IgUG9zaXggZGVwZW5kaW5nIG9uIHdoYXQgc3lzdGVtIHdlJ3JlIG9uLgogCiBUaGlzIGV4cG9ydHM6Ci0gIC0gYWxsIGZ1bmN0aW9ucyBmcm9tIHBvc2l4LCBudCwgb3MyLCBvciBjZSwgZS5nLiB1bmxpbmssIHN0YXQsIGV0Yy4KKyAgLSBhbGwgZnVuY3Rpb25zIGZyb20gcG9zaXgsIG50IG9yIGNlLCBlLmcuIHVubGluaywgc3RhdCwgZXRjLgogICAtIG9zLnBhdGggaXMgZWl0aGVyIHBvc2l4cGF0aCBvciBudHBhdGgKLSAgLSBvcy5uYW1lIGlzIGVpdGhlciAncG9zaXgnLCAnbnQnLCAnb3MyJyBvciAnY2UnLgorICAtIG9zLm5hbWUgaXMgZWl0aGVyICdwb3NpeCcsICdudCcgb3IgJ2NlJy4KICAgLSBvcy5jdXJkaXIgaXMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IGRpcmVjdG9yeSAoJy4nIG9yICc6JykKICAgLSBvcy5wYXJkaXIgaXMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBwYXJlbnQgZGlyZWN0b3J5ICgnLi4nIG9yICc6OicpCiAgIC0gb3Muc2VwIGlzIHRoZSAob3IgYSBtb3N0IGNvbW1vbikgcGF0aG5hbWUgc2VwYXJhdG9yICgnLycgb3IgJzonIG9yICdcXCcpCkBAIC04MSwzMCArODEsNiBAQAogICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgICAgICAgcGFzcwogCi1lbGlmICdvczInIGluIF9uYW1lczoKLSAgICBuYW1lID0gJ29zMicKLSAgICBsaW5lc2VwID0gJ1xyXG4nCi0gICAgZnJvbSBvczIgaW1wb3J0ICoKLSAgICB0cnk6Ci0gICAgICAgIGZyb20gb3MyIGltcG9ydCBfZXhpdAotICAgICAgICBfX2FsbF9fLmFwcGVuZCgnX2V4aXQnKQotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcGFzcwotICAgIGlmIHN5cy52ZXJzaW9uLmZpbmQoJ0VNWCBHQ0MnKSA9PSAtMToKLSAgICAgICAgaW1wb3J0IG50cGF0aCBhcyBwYXRoCi0gICAgZWxzZToKLSAgICAgICAgaW1wb3J0IG9zMmVteHBhdGggYXMgcGF0aAotICAgICAgICBmcm9tIF9lbXhfbGluayBpbXBvcnQgbGluawotCi0gICAgaW1wb3J0IG9zMgotICAgIF9fYWxsX18uZXh0ZW5kKF9nZXRfZXhwb3J0c19saXN0KG9zMikpCi0gICAgZGVsIG9zMgotCi0gICAgdHJ5OgotICAgICAgICBmcm9tIG9zMiBpbXBvcnQgX2hhdmVfZnVuY3Rpb25zCi0gICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICBwYXNzCi0KIGVsaWYgJ2NlJyBpbiBfbmFtZXM6CiAgICAgbmFtZSA9ICdjZScKICAgICBsaW5lc2VwID0gJ1xyXG4nCkBAIC0yNTYsMTAgKzIzMiw5IEBACiAgICAgaWYgaGVhZCBhbmQgdGFpbCBhbmQgbm90IHBhdGguZXhpc3RzKGhlYWQpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBtYWtlZGlycyhoZWFkLCBtb2RlLCBleGlzdF9vaykKLSAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgZXhjZXB0IEZpbGVFeGlzdHNFcnJvcjoKICAgICAgICAgICAgICMgYmUgaGFwcHkgaWYgc29tZW9uZSBhbHJlYWR5IGNyZWF0ZWQgdGhlIHBhdGgKLSAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRUVYSVNUOgotICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBwYXNzCiAgICAgICAgIGNkaXIgPSBjdXJkaXIKICAgICAgICAgaWYgaXNpbnN0YW5jZSh0YWlsLCBieXRlcyk6CiAgICAgICAgICAgICBjZGlyID0gYnl0ZXMoY3VyZGlyLCAnQVNDSUknKQpAQCAtMzAyLDcgKzI3Nyw3IEBACiAgICAgd2hpbGUgaGVhZCBhbmQgdGFpbDoKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcm1kaXIoaGVhZCkKLSAgICAgICAgZXhjZXB0IGVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgIGhlYWQsIHRhaWwgPSBwYXRoLnNwbGl0KGhlYWQpCiAKQEAgLTMyOSw3ICszMDQsNyBAQAogICAgIGlmIGhlYWQgYW5kIHRhaWw6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHJlbW92ZWRpcnMoaGVhZCkKLSAgICAgICAgZXhjZXB0IGVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHBhc3MKIAogX19hbGxfXy5leHRlbmQoWyJtYWtlZGlycyIsICJyZW1vdmVkaXJzIiwgInJlbmFtZXMiXSkKQEAgLTM2NSw3ICszNDAsNyBAQAogCiAgICAgQnkgZGVmYXVsdCBlcnJvcnMgZnJvbSB0aGUgb3MubGlzdGRpcigpIGNhbGwgYXJlIGlnbm9yZWQuICBJZgogICAgIG9wdGlvbmFsIGFyZyAnb25lcnJvcicgaXMgc3BlY2lmaWVkLCBpdCBzaG91bGQgYmUgYSBmdW5jdGlvbjsgaXQKLSAgICB3aWxsIGJlIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCwgYW4gb3MuZXJyb3IgaW5zdGFuY2UuICBJdCBjYW4KKyAgICB3aWxsIGJlIGNhbGxlZCB3aXRoIG9uZSBhcmd1bWVudCwgYW4gT1NFcnJvciBpbnN0YW5jZS4gIEl0IGNhbgogICAgIHJlcG9ydCB0aGUgZXJyb3IgdG8gY29udGludWUgd2l0aCB0aGUgd2Fsaywgb3IgcmFpc2UgdGhlIGV4Y2VwdGlvbgogICAgIHRvIGFib3J0IHRoZSB3YWxrLiAgTm90ZSB0aGF0IHRoZSBmaWxlbmFtZSBpcyBhdmFpbGFibGUgYXMgdGhlCiAgICAgZmlsZW5hbWUgYXR0cmlidXRlIG9mIHRoZSBleGNlcHRpb24gb2JqZWN0LgpAQCAtMzk5LDEwICszNzQsMTAgQEAKICAgICAjIG1pbm9yIHJlYXNvbiB3aGVuIChzYXkpIGEgdGhvdXNhbmQgcmVhZGFibGUgZGlyZWN0b3JpZXMgYXJlIHN0aWxsCiAgICAgIyBsZWZ0IHRvIHZpc2l0LiAgVGhhdCBsb2dpYyBpcyBjb3BpZWQgaGVyZS4KICAgICB0cnk6Ci0gICAgICAgICMgTm90ZSB0aGF0IGxpc3RkaXIgYW5kIGVycm9yIGFyZSBnbG9iYWxzIGluIHRoaXMgbW9kdWxlIGR1ZQorICAgICAgICAjIE5vdGUgdGhhdCBsaXN0ZGlyIGlzIGdsb2JhbCBpbiB0aGlzIG1vZHVsZSBkdWUKICAgICAgICAgIyB0byBlYXJsaWVyIGltcG9ydC0qLgogICAgICAgICBuYW1lcyA9IGxpc3RkaXIodG9wKQotICAgIGV4Y2VwdCBlcnJvciBhcyBlcnI6CisgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgogICAgICAgICBpZiBvbmVycm9yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgb25lcnJvcihlcnIpCiAgICAgICAgIHJldHVybgpAQCAtNTA0LDcgKzQ3OSw3IEBACiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgb3JpZ19zdCA9IHN0YXQobmFtZSwgZGlyX2ZkPXRvcGZkLCBmb2xsb3dfc3ltbGlua3M9Zm9sbG93X3N5bWxpbmtzKQogICAgICAgICAgICAgICAgIGRpcmZkID0gb3BlbihuYW1lLCBPX1JET05MWSwgZGlyX2ZkPXRvcGZkKQotICAgICAgICAgICAgZXhjZXB0IGVycm9yIGFzIGVycjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgICAgICAgICBpZiBvbmVycm9yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgICAgICBvbmVycm9yKGVycikKICAgICAgICAgICAgICAgICByZXR1cm4KQEAgLTU5OSw3ICs1NzQsNyBAQAogICAgICAgICBmdWxsbmFtZSA9IHBhdGguam9pbihkaXIsIGZpbGUpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGV4ZWNfZnVuYyhmdWxsbmFtZSwgKmFyZ3Jlc3QpCi0gICAgICAgIGV4Y2VwdCBlcnJvciBhcyBlOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgbGFzdF9leGMgPSBlCiAgICAgICAgICAgICB0YiA9IHN5cy5leGNfaW5mbygpWzJdCiAgICAgICAgICAgICBpZiAoZS5lcnJubyAhPSBlcnJuby5FTk9FTlQgYW5kIGUuZXJybm8gIT0gZXJybm8uRU5PVERJUgpAQCAtNzE2LDE3ICs2OTEsMTkgQEAKIGV4Y2VwdCBOYW1lRXJyb3I6CiAgICAgX3B1dGVudiA9IGxhbWJkYSBrZXksIHZhbHVlOiBOb25lCiBlbHNlOgotICAgIF9fYWxsX18uYXBwZW5kKCJwdXRlbnYiKQorICAgIGlmICJwdXRlbnYiIG5vdCBpbiBfX2FsbF9fOgorICAgICAgICBfX2FsbF9fLmFwcGVuZCgicHV0ZW52IikKIAogdHJ5OgogICAgIF91bnNldGVudiA9IHVuc2V0ZW52CiBleGNlcHQgTmFtZUVycm9yOgogICAgIF91bnNldGVudiA9IGxhbWJkYSBrZXk6IF9wdXRlbnYoa2V5LCAiIikKIGVsc2U6Ci0gICAgX19hbGxfXy5hcHBlbmQoInVuc2V0ZW52IikKKyAgICBpZiAidW5zZXRlbnYiIG5vdCBpbiBfX2FsbF9fOgorICAgICAgICBfX2FsbF9fLmFwcGVuZCgidW5zZXRlbnYiKQogCiBkZWYgX2NyZWF0ZWVudmlyb24oKToKLSAgICBpZiBuYW1lIGluICgnb3MyJywgJ250Jyk6CisgICAgaWYgbmFtZSA9PSAnbnQnOgogICAgICAgICAjIFdoZXJlIEVudiBWYXIgTmFtZXMgTXVzdCBCZSBVUFBFUkNBU0UKICAgICAgICAgZGVmIGNoZWNrX3N0cih2YWx1ZSk6CiAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKToKQEAgLTc2Niw3ICs3NDMsNyBAQAogICAgIGtleSwgZGVmYXVsdCBhbmQgdGhlIHJlc3VsdCBhcmUgc3RyLiIiIgogICAgIHJldHVybiBlbnZpcm9uLmdldChrZXksIGRlZmF1bHQpCiAKLXN1cHBvcnRzX2J5dGVzX2Vudmlyb24gPSBuYW1lIG5vdCBpbiAoJ29zMicsICdudCcpCitzdXBwb3J0c19ieXRlc19lbnZpcm9uID0gKG5hbWUgIT0gJ250JykKIF9fYWxsX18uZXh0ZW5kKCgiZ2V0ZW52IiwgInN1cHBvcnRzX2J5dGVzX2Vudmlyb24iKSkKIAogaWYgc3VwcG9ydHNfYnl0ZXNfZW52aXJvbjoKQEAgLTg2NSw3ICs4NDIsNyBAQAogICAgICAgICAgICAgICAgIGVsaWYgV0lGRVhJVEVEKHN0cyk6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBXRVhJVFNUQVRVUyhzdHMpCiAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgZXJyb3IoIk5vdCBzdG9wcGVkLCBzaWduYWxlZCBvciBleGl0ZWQ/Pz8iKQorICAgICAgICAgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCJOb3Qgc3RvcHBlZCwgc2lnbmFsZWQgb3IgZXhpdGVkPz8/IikKIAogICAgIGRlZiBzcGF3bnYobW9kZSwgZmlsZSwgYXJncyk6CiAgICAgICAgICIiInNwYXdudihtb2RlLCBmaWxlLCBhcmdzKSAtPiBpbnRlZ2VyCkBAIC05MDgsNiArODg1LDEwIEBACiBvdGhlcndpc2UgcmV0dXJuIC1TSUcsIHdoZXJlIFNJRyBpcyB0aGUgc2lnbmFsIHRoYXQga2lsbGVkIGl0LiAiIiIKICAgICAgICAgcmV0dXJuIF9zcGF3bnZlZihtb2RlLCBmaWxlLCBhcmdzLCBlbnYsIGV4ZWN2cGUpCiAKKworICAgIF9fYWxsX18uZXh0ZW5kKFsic3Bhd252IiwgInNwYXdudmUiLCAic3Bhd252cCIsICJzcGF3bnZwZSJdKQorCisKIGlmIF9leGlzdHMoInNwYXdudiIpOgogICAgICMgVGhlc2UgYXJlbid0IHN1cHBsaWVkIGJ5IHRoZSBiYXNpYyBXaW5kb3dzIGNvZGUKICAgICAjIGJ1dCBjYW4gYmUgZWFzaWx5IGltcGxlbWVudGVkIGluIFB5dGhvbgpAQCAtOTMzLDcgKzkxNCw3IEBACiAgICAgICAgIHJldHVybiBzcGF3bnZlKG1vZGUsIGZpbGUsIGFyZ3NbOi0xXSwgZW52KQogCiAKLSAgICBfX2FsbF9fLmV4dGVuZChbInNwYXdudiIsICJzcGF3bnZlIiwgInNwYXdubCIsICJzcGF3bmxlIixdKQorICAgIF9fYWxsX18uZXh0ZW5kKFsic3Bhd25sIiwgInNwYXdubGUiXSkKIAogCiBpZiBfZXhpc3RzKCJzcGF3bnZwIik6CkBAIC05NjEsNyArOTQyLDggQEAKICAgICAgICAgcmV0dXJuIHNwYXdudnBlKG1vZGUsIGZpbGUsIGFyZ3NbOi0xXSwgZW52KQogCiAKLSAgICBfX2FsbF9fLmV4dGVuZChbInNwYXdudnAiLCAic3Bhd252cGUiLCAic3Bhd25scCIsICJzcGF3bmxwZSIsXSkKKyAgICBfX2FsbF9fLmV4dGVuZChbInNwYXdubHAiLCAic3Bhd25scGUiXSkKKwogCiBpbXBvcnQgY29weXJlZyBhcyBfY29weXJlZwogCmRpZmYgLS1naXQgYS9MaWIvb3MyZW14cGF0aC5weSBiL0xpYi9vczJlbXhwYXRoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwY2NiZjhhLi4wMDAwMDAwCi0tLSBhL0xpYi9vczJlbXhwYXRoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTU4ICswLDAgQEAKLSMgTW9kdWxlICdvczJlbXhwYXRoJyAtLSBjb21tb24gb3BlcmF0aW9ucyBvbiBPUy8yIHBhdGhuYW1lcwotIiIiQ29tbW9uIHBhdGhuYW1lIG1hbmlwdWxhdGlvbnMsIE9TLzIgRU1YIHZlcnNpb24uCi0KLUluc3RlYWQgb2YgaW1wb3J0aW5nIHRoaXMgbW9kdWxlIGRpcmVjdGx5LCBpbXBvcnQgb3MgYW5kIHJlZmVyIHRvIHRoaXMKLW1vZHVsZSBhcyBvcy5wYXRoLgotIiIiCi0KLWltcG9ydCBvcwotaW1wb3J0IHN0YXQKLWZyb20gZ2VuZXJpY3BhdGggaW1wb3J0ICoKLWZyb20gbnRwYXRoIGltcG9ydCAoZXhwYW5kdXNlciwgZXhwYW5kdmFycywgaXNhYnMsIGlzbGluaywgc3BsaXRkcml2ZSwKLSAgICAgICAgICAgICAgICAgICAgc3BsaXRleHQsIHNwbGl0KQotCi1fX2FsbF9fID0gWyJub3JtY2FzZSIsImlzYWJzIiwiam9pbiIsInNwbGl0ZHJpdmUiLCJzcGxpdCIsInNwbGl0ZXh0IiwKLSAgICAgICAgICAgImJhc2VuYW1lIiwiZGlybmFtZSIsImNvbW1vbnByZWZpeCIsImdldHNpemUiLCJnZXRtdGltZSIsCi0gICAgICAgICAgICJnZXRhdGltZSIsImdldGN0aW1lIiwgImlzbGluayIsImV4aXN0cyIsImxleGlzdHMiLCJpc2RpciIsImlzZmlsZSIsCi0gICAgICAgICAgICJpc21vdW50IiwiZXhwYW5kdXNlciIsImV4cGFuZHZhcnMiLCJub3JtcGF0aCIsImFic3BhdGgiLAotICAgICAgICAgICAic3BsaXR1bmMiLCJjdXJkaXIiLCJwYXJkaXIiLCJzZXAiLCJwYXRoc2VwIiwiZGVmcGF0aCIsImFsdHNlcCIsCi0gICAgICAgICAgICJleHRzZXAiLCJkZXZudWxsIiwicmVhbHBhdGgiLCJzdXBwb3J0c191bmljb2RlX2ZpbGVuYW1lcyJdCi0KLSMgc3RyaW5ncyByZXByZXNlbnRpbmcgdmFyaW91cyBwYXRoLXJlbGF0ZWQgYml0cyBhbmQgcGllY2VzCi1jdXJkaXIgPSAnLicKLXBhcmRpciA9ICcuLicKLWV4dHNlcCA9ICcuJwotc2VwID0gJy8nCi1hbHRzZXAgPSAnXFwnCi1wYXRoc2VwID0gJzsnCi1kZWZwYXRoID0gJy47QzpcXGJpbicKLWRldm51bGwgPSAnbnVsJwotCi0jIE5vcm1hbGl6ZSB0aGUgY2FzZSBvZiBhIHBhdGhuYW1lIGFuZCBtYXAgc2xhc2hlcyB0byBiYWNrc2xhc2hlcy4KLSMgT3RoZXIgbm9ybWFsaXphdGlvbnMgKHN1Y2ggYXMgb3B0aW1pemluZyAnLi4vJyBhd2F5KSBhcmUgbm90IGRvbmUKLSMgKHRoaXMgaXMgZG9uZSBieSBub3JtcGF0aCkuCi0KLWRlZiBub3JtY2FzZShzKToKLSAgICAiIiJOb3JtYWxpemUgY2FzZSBvZiBwYXRobmFtZS4KLQotICAgIE1ha2VzIGFsbCBjaGFyYWN0ZXJzIGxvd2VyY2FzZSBhbmQgYWxsIGFsdHNlcHMgaW50byBzZXBzLiIiIgotICAgIGlmIG5vdCBpc2luc3RhbmNlKHMsIChieXRlcywgc3RyKSk6Ci0gICAgICAgIHJhaXNlIFR5cGVFcnJvcigibm9ybWNhc2UoKSBhcmd1bWVudCBtdXN0IGJlIHN0ciBvciBieXRlcywgIgotICAgICAgICAgICAgICAgICAgICAgICAgIm5vdCAne30nIi5mb3JtYXQocy5fX2NsYXNzX18uX19uYW1lX18pKQotICAgIHJldHVybiBzLnJlcGxhY2UoJ1xcJywgJy8nKS5sb3dlcigpCi0KLQotIyBKb2luIHR3byAob3IgbW9yZSkgcGF0aHMuCi0KLWRlZiBqb2luKGEsICpwKToKLSAgICAiIiJKb2luIHR3byBvciBtb3JlIHBhdGhuYW1lIGNvbXBvbmVudHMsIGluc2VydGluZyBzZXAgYXMgbmVlZGVkIiIiCi0gICAgcGF0aCA9IGEKLSAgICBmb3IgYiBpbiBwOgotICAgICAgICBpZiBpc2FicyhiKToKLSAgICAgICAgICAgIHBhdGggPSBiCi0gICAgICAgIGVsaWYgcGF0aCA9PSAnJyBvciBwYXRoWy0xOl0gaW4gJy9cXDonOgotICAgICAgICAgICAgcGF0aCA9IHBhdGggKyBiCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwYXRoID0gcGF0aCArICcvJyArIGIKLSAgICByZXR1cm4gcGF0aAotCi0KLSMgUGFyc2UgVU5DIHBhdGhzCi1kZWYgc3BsaXR1bmMocCk6Ci0gICAgIiIiU3BsaXQgYSBwYXRobmFtZSBpbnRvIFVOQyBtb3VudCBwb2ludCBhbmQgcmVsYXRpdmUgcGF0aCBzcGVjaWZpZXJzLgotCi0gICAgUmV0dXJuIGEgMi10dXBsZSAodW5jLCByZXN0KTsgZWl0aGVyIHBhcnQgbWF5IGJlIGVtcHR5LgotICAgIElmIHVuYyBpcyBub3QgZW1wdHksIGl0IGhhcyB0aGUgZm9ybSAnLy9ob3N0L21vdW50JyAob3Igc2ltaWxhcgotICAgIHVzaW5nIGJhY2tzbGFzaGVzKS4gIHVuYytyZXN0IGlzIGFsd2F5cyB0aGUgaW5wdXQgcGF0aC4KLSAgICBQYXRocyBjb250YWluaW5nIGRyaXZlIGxldHRlcnMgbmV2ZXIgaGF2ZSBhbiBVTkMgcGFydC4KLSAgICAiIiIKLSAgICBpZiBwWzE6Ml0gPT0gJzonOgotICAgICAgICByZXR1cm4gJycsIHAgIyBEcml2ZSBsZXR0ZXIgcHJlc2VudAotICAgIGZpcnN0VHdvID0gcFswOjJdCi0gICAgaWYgZmlyc3RUd28gPT0gJy8nICogMiBvciBmaXJzdFR3byA9PSAnXFwnICogMjoKLSAgICAgICAgIyBpcyBhIFVOQyBwYXRoOgotICAgICAgICAjIHZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2IGVxdWl2YWxlbnQgdG8gZHJpdmUgbGV0dGVyCi0gICAgICAgICMgXFxtYWNoaW5lXG1vdW50cG9pbnRcZGlyZWN0b3JpZXMuLi4KLSAgICAgICAgIyAgICAgICAgICAgZGlyZWN0b3J5IF5eXl5eXl5eXl5eXl5eXgotICAgICAgICBub3JtcCA9IG5vcm1jYXNlKHApCi0gICAgICAgIGluZGV4ID0gbm9ybXAuZmluZCgnLycsIDIpCi0gICAgICAgIGlmIGluZGV4ID09IC0xOgotICAgICAgICAgICAgIyNyYWlzZSBSdW50aW1lRXJyb3IsICdpbGxlZ2FsIFVOQyBwYXRoOiAiJyArIHAgKyAnIicKLSAgICAgICAgICAgIHJldHVybiAoIiIsIHApCi0gICAgICAgIGluZGV4ID0gbm9ybXAuZmluZCgnLycsIGluZGV4ICsgMSkKLSAgICAgICAgaWYgaW5kZXggPT0gLTE6Ci0gICAgICAgICAgICBpbmRleCA9IGxlbihwKQotICAgICAgICByZXR1cm4gcFs6aW5kZXhdLCBwW2luZGV4Ol0KLSAgICByZXR1cm4gJycsIHAKLQotCi0jIFJldHVybiB0aGUgdGFpbCAoYmFzZW5hbWUpIHBhcnQgb2YgYSBwYXRoLgotCi1kZWYgYmFzZW5hbWUocCk6Ci0gICAgIiIiUmV0dXJucyB0aGUgZmluYWwgY29tcG9uZW50IG9mIGEgcGF0aG5hbWUiIiIKLSAgICByZXR1cm4gc3BsaXQocClbMV0KLQotCi0jIFJldHVybiB0aGUgaGVhZCAoZGlybmFtZSkgcGFydCBvZiBhIHBhdGguCi0KLWRlZiBkaXJuYW1lKHApOgotICAgICIiIlJldHVybnMgdGhlIGRpcmVjdG9yeSBjb21wb25lbnQgb2YgYSBwYXRobmFtZSIiIgotICAgIHJldHVybiBzcGxpdChwKVswXQotCi0KLSMgYWxpYXMgZXhpc3RzIHRvIGxleGlzdHMKLWxleGlzdHMgPSBleGlzdHMKLQotCi0jIElzIGEgcGF0aCBhIGRpcmVjdG9yeT8KLQotIyBJcyBhIHBhdGggYSBtb3VudCBwb2ludD8gIEVpdGhlciBhIHJvb3QgKHdpdGggb3Igd2l0aG91dCBkcml2ZSBsZXR0ZXIpCi0jIG9yIGFuIFVOQyBwYXRoIHdpdGggYXQgbW9zdCBhIC8gb3IgXCBhZnRlciB0aGUgbW91bnQgcG9pbnQuCi0KLWRlZiBpc21vdW50KHBhdGgpOgotICAgICIiIlRlc3Qgd2hldGhlciBhIHBhdGggaXMgYSBtb3VudCBwb2ludCAoZGVmaW5lZCBhcyByb290IG9mIGRyaXZlKSIiIgotICAgIHVuYywgcmVzdCA9IHNwbGl0dW5jKHBhdGgpCi0gICAgaWYgdW5jOgotICAgICAgICByZXR1cm4gcmVzdCBpbiAoIiIsICIvIiwgIlxcIikKLSAgICBwID0gc3BsaXRkcml2ZShwYXRoKVsxXQotICAgIHJldHVybiBsZW4ocCkgPT0gMSBhbmQgcFswXSBpbiAnL1xcJwotCi0KLSMgTm9ybWFsaXplIGEgcGF0aCwgZS5nLiBBLy9CLCBBLy4vQiBhbmQgQS9mb28vLi4vQiBhbGwgYmVjb21lIEEvQi4KLQotZGVmIG5vcm1wYXRoKHBhdGgpOgotICAgICIiIk5vcm1hbGl6ZSBwYXRoLCBlbGltaW5hdGluZyBkb3VibGUgc2xhc2hlcywgZXRjLiIiIgotICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoJ1xcJywgJy8nKQotICAgIHByZWZpeCwgcGF0aCA9IHNwbGl0ZHJpdmUocGF0aCkKLSAgICB3aGlsZSBwYXRoWzoxXSA9PSAnLyc6Ci0gICAgICAgIHByZWZpeCA9IHByZWZpeCArICcvJwotICAgICAgICBwYXRoID0gcGF0aFsxOl0KLSAgICBjb21wcyA9IHBhdGguc3BsaXQoJy8nKQotICAgIGkgPSAwCi0gICAgd2hpbGUgaSA8IGxlbihjb21wcyk6Ci0gICAgICAgIGlmIGNvbXBzW2ldID09ICcuJzoKLSAgICAgICAgICAgIGRlbCBjb21wc1tpXQotICAgICAgICBlbGlmIGNvbXBzW2ldID09ICcuLicgYW5kIGkgPiAwIGFuZCBjb21wc1tpLTFdIG5vdCBpbiAoJycsICcuLicpOgotICAgICAgICAgICAgZGVsIGNvbXBzW2ktMTppKzFdCi0gICAgICAgICAgICBpID0gaSAtIDEKLSAgICAgICAgZWxpZiBjb21wc1tpXSA9PSAnJyBhbmQgaSA+IDAgYW5kIGNvbXBzW2ktMV0gIT0gJyc6Ci0gICAgICAgICAgICBkZWwgY29tcHNbaV0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGkgPSBpICsgMQotICAgICMgSWYgdGhlIHBhdGggaXMgbm93IGVtcHR5LCBzdWJzdGl0dXRlICcuJwotICAgIGlmIG5vdCBwcmVmaXggYW5kIG5vdCBjb21wczoKLSAgICAgICAgY29tcHMuYXBwZW5kKCcuJykKLSAgICByZXR1cm4gcHJlZml4ICsgJy8nLmpvaW4oY29tcHMpCi0KLQotIyBSZXR1cm4gYW4gYWJzb2x1dGUgcGF0aC4KLWRlZiBhYnNwYXRoKHBhdGgpOgotICAgICIiIlJldHVybiB0aGUgYWJzb2x1dGUgdmVyc2lvbiBvZiBhIHBhdGgiIiIKLSAgICBpZiBub3QgaXNhYnMocGF0aCk6Ci0gICAgICAgIHBhdGggPSBqb2luKG9zLmdldGN3ZCgpLCBwYXRoKQotICAgIHJldHVybiBub3JtcGF0aChwYXRoKQotCi0jIHJlYWxwYXRoIGlzIGEgbm8tb3Agb24gc3lzdGVtcyB3aXRob3V0IGlzbGluayBzdXBwb3J0Ci1yZWFscGF0aCA9IGFic3BhdGgKLQotc3VwcG9ydHNfdW5pY29kZV9maWxlbmFtZXMgPSBGYWxzZQpkaWZmIC0tZ2l0IGEvTGliL3BkYi5weSBiL0xpYi9wZGIucHkKaW5kZXggZTZkN2Y4Zi4uZTU1OTZlNSAxMDA3NTUKLS0tIGEvTGliL3BkYi5weQorKysgYi9MaWIvcGRiLnB5CkBAIC05Miw3ICs5Miw3IEBACiAgICAgY3JlID0gcmUuY29tcGlsZShyJ2RlZlxzKyVzXHMqWyhdJyAlIHJlLmVzY2FwZShmdW5jbmFtZSkpCiAgICAgdHJ5OgogICAgICAgICBmcCA9IG9wZW4oZmlsZW5hbWUpCi0gICAgZXhjZXB0IElPRXJyb3I6CisgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgIHJldHVybiBOb25lCiAgICAgIyBjb25zdW1lciBvZiB0aGlzIGluZm8gZXhwZWN0cyB0aGUgZmlyc3QgbGluZSB0byBiZSAxCiAgICAgbGluZW5vID0gMQpAQCAtMTcwLDEyICsxNzAsMTIgQEAKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGVudkhvbWUsICIucGRicmMiKSkgYXMgcmNGaWxlOgogICAgICAgICAgICAgICAgICAgICBzZWxmLnJjTGluZXMuZXh0ZW5kKHJjRmlsZSkKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICB0cnk6CiAgICAgICAgICAgICB3aXRoIG9wZW4oIi5wZGJyYyIpIGFzIHJjRmlsZToKICAgICAgICAgICAgICAgICBzZWxmLnJjTGluZXMuZXh0ZW5kKHJjRmlsZSkKLSAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgcGFzcwogCiAgICAgICAgIHNlbGYuY29tbWFuZHMgPSB7fSAjIGFzc29jaWF0ZXMgYSBjb21tYW5kIGxpc3QgdG8gYnJlYWtwb2ludCBudW1iZXJzCkBAIC0xMjQxLDcgKzEyNDEsNyBAQAogICAgICAgICBicmVha2xpc3QgPSBzZWxmLmdldF9maWxlX2JyZWFrcyhmaWxlbmFtZSkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgbGluZXMsIGxpbmVubyA9IGdldHNvdXJjZWxpbmVzKHNlbGYuY3VyZnJhbWUpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGVycjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgogICAgICAgICAgICAgc2VsZi5lcnJvcihlcnIpCiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgc2VsZi5fcHJpbnRfbGluZXMobGluZXMsIGxpbmVubywgYnJlYWtsaXN0LCBzZWxmLmN1cmZyYW1lKQpAQCAtMTI1Nyw3ICsxMjU3LDcgQEAKICAgICAgICAgICAgIHJldHVybgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBsaW5lcywgbGluZW5vID0gZ2V0c291cmNlbGluZXMob2JqKQotICAgICAgICBleGNlcHQgKElPRXJyb3IsIFR5cGVFcnJvcikgYXMgZXJyOgorICAgICAgICBleGNlcHQgKE9TRXJyb3IsIFR5cGVFcnJvcikgYXMgZXJyOgogICAgICAgICAgICAgc2VsZi5lcnJvcihlcnIpCiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgc2VsZi5fcHJpbnRfbGluZXMobGluZXMsIGxpbmVubykKZGlmZiAtLWdpdCBhL0xpYi9waWNrbGUucHkgYi9MaWIvcGlja2xlLnB5CmluZGV4IDFkODE4NWMuLmIzYjc3NWYgMTAwNjQ0Ci0tLSBhL0xpYi9waWNrbGUucHkKKysrIGIvTGliL3BpY2tsZS5weQpAQCAtMjYsOSArMjYsMTAgQEAKIGZyb20gdHlwZXMgaW1wb3J0IEZ1bmN0aW9uVHlwZSwgQnVpbHRpbkZ1bmN0aW9uVHlwZQogZnJvbSBjb3B5cmVnIGltcG9ydCBkaXNwYXRjaF90YWJsZQogZnJvbSBjb3B5cmVnIGltcG9ydCBfZXh0ZW5zaW9uX3JlZ2lzdHJ5LCBfaW52ZXJ0ZWRfcmVnaXN0cnksIF9leHRlbnNpb25fY2FjaGUKLWltcG9ydCBtYXJzaGFsCitmcm9tIGl0ZXJ0b29scyBpbXBvcnQgaXNsaWNlCiBpbXBvcnQgc3lzCi1pbXBvcnQgc3RydWN0Citmcm9tIHN5cyBpbXBvcnQgbWF4c2l6ZQorZnJvbSBzdHJ1Y3QgaW1wb3J0IHBhY2ssIHVucGFjawogaW1wb3J0IHJlCiBpbXBvcnQgaW8KIGltcG9ydCBjb2RlY3MKQEAgLTU4LDExICs1OSw2IEBACiAjIHRoZXJlIGFyZSB0b28gbWFueSBpc3N1ZXMgd2l0aCB0aGF0LgogREVGQVVMVF9QUk9UT0NPTCA9IDMKIAotIyBXaHkgdXNlIHN0cnVjdC5wYWNrKCkgZm9yIHBpY2tsaW5nIGJ1dCBtYXJzaGFsLmxvYWRzKCkgZm9yCi0jIHVucGlja2xpbmc/ICBzdHJ1Y3QucGFjaygpIGlzIDQwJSBmYXN0ZXIgdGhhbiBtYXJzaGFsLmR1bXBzKCksIGJ1dAotIyBtYXJzaGFsLmxvYWRzKCkgaXMgdHdpY2UgYXMgZmFzdCBhcyBzdHJ1Y3QudW5wYWNrKCkhCi1tbG9hZHMgPSBtYXJzaGFsLmxvYWRzCi0KIGNsYXNzIFBpY2tsZUVycm9yKEV4Y2VwdGlvbik6CiAgICAgIiIiQSBjb21tb24gYmFzZSBjbGFzcyBmb3IgdGhlIG90aGVyIHBpY2tsaW5nIGV4Y2VwdGlvbnMuIiIiCiAgICAgcGFzcwpAQCAtMjMxLDcgKzIyNyw3IEBACiAgICAgICAgICAgICByYWlzZSBQaWNrbGluZ0Vycm9yKCJQaWNrbGVyLl9faW5pdF9fKCkgd2FzIG5vdCBjYWxsZWQgYnkgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMuX19pbml0X18oKSIgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sKSkKICAgICAgICAgaWYgc2VsZi5wcm90byA+PSAyOgotICAgICAgICAgICAgc2VsZi53cml0ZShQUk9UTyArIGJ5dGVzKFtzZWxmLnByb3RvXSkpCisgICAgICAgICAgICBzZWxmLndyaXRlKFBST1RPICsgcGFjaygiPEIiLCBzZWxmLnByb3RvKSkKICAgICAgICAgc2VsZi5zYXZlKG9iaikKICAgICAgICAgc2VsZi53cml0ZShTVE9QKQogCkBAIC0yNTgsMjAgKzI1NCwyMCBAQAogICAgICAgICBzZWxmLm1lbW9baWQob2JqKV0gPSBtZW1vX2xlbiwgb2JqCiAKICAgICAjIFJldHVybiBhIFBVVCAoQklOUFVULCBMT05HX0JJTlBVVCkgb3Bjb2RlIHN0cmluZywgd2l0aCBhcmd1bWVudCBpLgotICAgIGRlZiBwdXQoc2VsZiwgaSwgcGFjaz1zdHJ1Y3QucGFjayk6CisgICAgZGVmIHB1dChzZWxmLCBpKToKICAgICAgICAgaWYgc2VsZi5iaW46CiAgICAgICAgICAgICBpZiBpIDwgMjU2OgotICAgICAgICAgICAgICAgIHJldHVybiBCSU5QVVQgKyBieXRlcyhbaV0pCisgICAgICAgICAgICAgICAgcmV0dXJuIEJJTlBVVCArIHBhY2soIjxCIiwgaSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmV0dXJuIExPTkdfQklOUFVUICsgcGFjaygiPEkiLCBpKQogCiAgICAgICAgIHJldHVybiBQVVQgKyByZXByKGkpLmVuY29kZSgiYXNjaWkiKSArIGInXG4nCiAKICAgICAjIFJldHVybiBhIEdFVCAoQklOR0VULCBMT05HX0JJTkdFVCkgb3Bjb2RlIHN0cmluZywgd2l0aCBhcmd1bWVudCBpLgotICAgIGRlZiBnZXQoc2VsZiwgaSwgcGFjaz1zdHJ1Y3QucGFjayk6CisgICAgZGVmIGdldChzZWxmLCBpKToKICAgICAgICAgaWYgc2VsZi5iaW46CiAgICAgICAgICAgICBpZiBpIDwgMjU2OgotICAgICAgICAgICAgICAgIHJldHVybiBCSU5HRVQgKyBieXRlcyhbaV0pCisgICAgICAgICAgICAgICAgcmV0dXJuIEJJTkdFVCArIHBhY2soIjxCIiwgaSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmV0dXJuIExPTkdfQklOR0VUICsgcGFjaygiPEkiLCBpKQogCkBAIC0yODYsMjAgKzI4MiwyMCBAQAogCiAgICAgICAgICMgQ2hlY2sgdGhlIG1lbW8KICAgICAgICAgeCA9IHNlbGYubWVtby5nZXQoaWQob2JqKSkKLSAgICAgICAgaWYgeDoKKyAgICAgICAgaWYgeCBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHNlbGYud3JpdGUoc2VsZi5nZXQoeFswXSkpCiAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICAjIENoZWNrIHRoZSB0eXBlIGRpc3BhdGNoIHRhYmxlCiAgICAgICAgIHQgPSB0eXBlKG9iaikKICAgICAgICAgZiA9IHNlbGYuZGlzcGF0Y2guZ2V0KHQpCi0gICAgICAgIGlmIGY6CisgICAgICAgIGlmIGYgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBmKHNlbGYsIG9iaikgIyBDYWxsIHVuYm91bmQgbWV0aG9kIHdpdGggZXhwbGljaXQgc2VsZgogICAgICAgICAgICAgcmV0dXJuCiAKICAgICAgICAgIyBDaGVjayBwcml2YXRlIGRpc3BhdGNoIHRhYmxlIGlmIGFueSwgb3IgZWxzZSBjb3B5cmVnLmRpc3BhdGNoX3RhYmxlCiAgICAgICAgIHJlZHVjZSA9IGdldGF0dHIoc2VsZiwgJ2Rpc3BhdGNoX3RhYmxlJywgZGlzcGF0Y2hfdGFibGUpLmdldCh0KQotICAgICAgICBpZiByZWR1Y2U6CisgICAgICAgIGlmIHJlZHVjZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHJ2ID0gcmVkdWNlKG9iaikKICAgICAgICAgZWxzZToKICAgICAgICAgICAgICMgQ2hlY2sgZm9yIGEgY2xhc3Mgd2l0aCBhIGN1c3RvbSBtZXRhY2xhc3M7IHRyZWF0IGFzIHJlZ3VsYXIgY2xhc3MKQEAgLTMxMywxMSArMzA5LDExIEBACiAKICAgICAgICAgICAgICMgQ2hlY2sgZm9yIGEgX19yZWR1Y2VfZXhfXyBtZXRob2QsIGZhbGwgYmFjayB0byBfX3JlZHVjZV9fCiAgICAgICAgICAgICByZWR1Y2UgPSBnZXRhdHRyKG9iaiwgIl9fcmVkdWNlX2V4X18iLCBOb25lKQotICAgICAgICAgICAgaWYgcmVkdWNlOgorICAgICAgICAgICAgaWYgcmVkdWNlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgIHJ2ID0gcmVkdWNlKHNlbGYucHJvdG8pCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJlZHVjZSA9IGdldGF0dHIob2JqLCAiX19yZWR1Y2VfXyIsIE5vbmUpCi0gICAgICAgICAgICAgICAgaWYgcmVkdWNlOgorICAgICAgICAgICAgICAgIGlmIHJlZHVjZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICAgICAgcnYgPSByZWR1Y2UoKQogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFBpY2tsaW5nRXJyb3IoIkNhbid0IHBpY2tsZSAlciBvYmplY3Q6ICVyIiAlCkBAIC00NDgsMTIgKzQ0NCwxMiBAQAogCiAgICAgZGVmIHNhdmVfYm9vbChzZWxmLCBvYmopOgogICAgICAgICBpZiBzZWxmLnByb3RvID49IDI6Ci0gICAgICAgICAgICBzZWxmLndyaXRlKG9iaiBhbmQgTkVXVFJVRSBvciBORVdGQUxTRSkKKyAgICAgICAgICAgIHNlbGYud3JpdGUoTkVXVFJVRSBpZiBvYmogZWxzZSBORVdGQUxTRSkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYud3JpdGUob2JqIGFuZCBUUlVFIG9yIEZBTFNFKQorICAgICAgICAgICAgc2VsZi53cml0ZShUUlVFIGlmIG9iaiBlbHNlIEZBTFNFKQogICAgIGRpc3BhdGNoW2Jvb2xdID0gc2F2ZV9ib29sCiAKLSAgICBkZWYgc2F2ZV9sb25nKHNlbGYsIG9iaiwgcGFjaz1zdHJ1Y3QucGFjayk6CisgICAgZGVmIHNhdmVfbG9uZyhzZWxmLCBvYmopOgogICAgICAgICBpZiBzZWxmLmJpbjoKICAgICAgICAgICAgICMgSWYgdGhlIGludCBpcyBzbWFsbCBlbm91Z2ggdG8gZml0IGluIGEgc2lnbmVkIDQtYnl0ZSAyJ3MtY29tcAogICAgICAgICAgICAgIyBmb3JtYXQsIHdlIGNhbiBzdG9yZSBpdCBtb3JlIGVmZmljaWVudGx5IHRoYW4gdGhlIGdlbmVyYWwKQEAgLTQ2MSwzOSArNDU3LDM2IEBACiAgICAgICAgICAgICAjIEZpcnN0IG9uZS0gYW5kIHR3by1ieXRlIHVuc2lnbmVkIGludHM6CiAgICAgICAgICAgICBpZiBvYmogPj0gMDoKICAgICAgICAgICAgICAgICBpZiBvYmogPD0gMHhmZjoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZShCSU5JTlQxICsgYnl0ZXMoW29ial0pKQorICAgICAgICAgICAgICAgICAgICBzZWxmLndyaXRlKEJJTklOVDEgKyBwYWNrKCI8QiIsIG9iaikpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgIGlmIG9iaiA8PSAweGZmZmY6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYud3JpdGUoQklOSU5UMiArIGJ5dGVzKFtvYmomMHhmZiwgb2JqPj44XSkpCisgICAgICAgICAgICAgICAgICAgIHNlbGYud3JpdGUoQklOSU5UMiArIHBhY2soIjxIIiwgb2JqKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAjIE5leHQgY2hlY2sgZm9yIDQtYnl0ZSBzaWduZWQgaW50czoKLSAgICAgICAgICAgIGhpZ2hfYml0cyA9IG9iaiA+PiAzMSAgIyBub3RlIHRoYXQgUHl0aG9uIHNoaWZ0IHNpZ24tZXh0ZW5kcwotICAgICAgICAgICAgaWYgaGlnaF9iaXRzID09IDAgb3IgaGlnaF9iaXRzID09IC0xOgotICAgICAgICAgICAgICAgICMgQWxsIGhpZ2ggYml0cyBhcmUgY29waWVzIG9mIGJpdCAyKiozMSwgc28gdGhlIHZhbHVlCi0gICAgICAgICAgICAgICAgIyBmaXRzIGluIGEgNC1ieXRlIHNpZ25lZCBpbnQuCisgICAgICAgICAgICBpZiAtMHg4MDAwMDAwMCA8PSBvYmogPD0gMHg3ZmZmZmZmZjoKICAgICAgICAgICAgICAgICBzZWxmLndyaXRlKEJJTklOVCArIHBhY2soIjxpIiwgb2JqKSkKICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgaWYgc2VsZi5wcm90byA+PSAyOgogICAgICAgICAgICAgZW5jb2RlZCA9IGVuY29kZV9sb25nKG9iaikKICAgICAgICAgICAgIG4gPSBsZW4oZW5jb2RlZCkKICAgICAgICAgICAgIGlmIG4gPCAyNTY6Ci0gICAgICAgICAgICAgICAgc2VsZi53cml0ZShMT05HMSArIGJ5dGVzKFtuXSkgKyBlbmNvZGVkKQorICAgICAgICAgICAgICAgIHNlbGYud3JpdGUoTE9ORzEgKyBwYWNrKCI8QiIsIG4pICsgZW5jb2RlZCkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc2VsZi53cml0ZShMT05HNCArIHBhY2soIjxpIiwgbikgKyBlbmNvZGVkKQogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIHNlbGYud3JpdGUoTE9ORyArIHJlcHIob2JqKS5lbmNvZGUoImFzY2lpIikgKyBiJ0xcbicpCiAgICAgZGlzcGF0Y2hbaW50XSA9IHNhdmVfbG9uZwogCi0gICAgZGVmIHNhdmVfZmxvYXQoc2VsZiwgb2JqLCBwYWNrPXN0cnVjdC5wYWNrKToKKyAgICBkZWYgc2F2ZV9mbG9hdChzZWxmLCBvYmopOgogICAgICAgICBpZiBzZWxmLmJpbjoKICAgICAgICAgICAgIHNlbGYud3JpdGUoQklORkxPQVQgKyBwYWNrKCc+ZCcsIG9iaikpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLndyaXRlKEZMT0FUICsgcmVwcihvYmopLmVuY29kZSgiYXNjaWkiKSArIGInXG4nKQogICAgIGRpc3BhdGNoW2Zsb2F0XSA9IHNhdmVfZmxvYXQKIAotICAgIGRlZiBzYXZlX2J5dGVzKHNlbGYsIG9iaiwgcGFjaz1zdHJ1Y3QucGFjayk6CisgICAgZGVmIHNhdmVfYnl0ZXMoc2VsZiwgb2JqKToKICAgICAgICAgaWYgc2VsZi5wcm90byA8IDM6Ci0gICAgICAgICAgICBpZiBsZW4ob2JqKSA9PSAwOgorICAgICAgICAgICAgaWYgbm90IG9iajogIyBieXRlcyBvYmplY3QgaXMgZW1wdHkKICAgICAgICAgICAgICAgICBzZWxmLnNhdmVfcmVkdWNlKGJ5dGVzLCAoKSwgb2JqPW9iaikKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc2VsZi5zYXZlX3JlZHVjZShjb2RlY3MuZW5jb2RlLApAQCAtNTAxLDEzICs0OTQsMTMgQEAKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBuID0gbGVuKG9iaikKICAgICAgICAgaWYgbiA8IDI1NjoKLSAgICAgICAgICAgIHNlbGYud3JpdGUoU0hPUlRfQklOQllURVMgKyBieXRlcyhbbl0pICsgYnl0ZXMob2JqKSkKKyAgICAgICAgICAgIHNlbGYud3JpdGUoU0hPUlRfQklOQllURVMgKyBwYWNrKCI8QiIsIG4pICsgb2JqKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi53cml0ZShCSU5CWVRFUyArIHBhY2soIjxJIiwgbikgKyBieXRlcyhvYmopKQorICAgICAgICAgICAgc2VsZi53cml0ZShCSU5CWVRFUyArIHBhY2soIjxJIiwgbikgKyBvYmopCiAgICAgICAgIHNlbGYubWVtb2l6ZShvYmopCiAgICAgZGlzcGF0Y2hbYnl0ZXNdID0gc2F2ZV9ieXRlcwogCi0gICAgZGVmIHNhdmVfc3RyKHNlbGYsIG9iaiwgcGFjaz1zdHJ1Y3QucGFjayk6CisgICAgZGVmIHNhdmVfc3RyKHNlbGYsIG9iaik6CiAgICAgICAgIGlmIHNlbGYuYmluOgogICAgICAgICAgICAgZW5jb2RlZCA9IG9iai5lbmNvZGUoJ3V0Zi04JywgJ3N1cnJvZ2F0ZXBhc3MnKQogICAgICAgICAgICAgbiA9IGxlbihlbmNvZGVkKQpAQCAtNTE1LDM5ICs1MDgsMzYgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIG9iaiA9IG9iai5yZXBsYWNlKCJcXCIsICJcXHUwMDVjIikKICAgICAgICAgICAgIG9iaiA9IG9iai5yZXBsYWNlKCJcbiIsICJcXHUwMDBhIikKLSAgICAgICAgICAgIHNlbGYud3JpdGUoVU5JQ09ERSArIGJ5dGVzKG9iai5lbmNvZGUoJ3Jhdy11bmljb2RlLWVzY2FwZScpKSArCi0gICAgICAgICAgICAgICAgICAgICAgIGInXG4nKQorICAgICAgICAgICAgc2VsZi53cml0ZShVTklDT0RFICsgb2JqLmVuY29kZSgncmF3LXVuaWNvZGUtZXNjYXBlJykgKyBiJ1xuJykKICAgICAgICAgc2VsZi5tZW1vaXplKG9iaikKICAgICBkaXNwYXRjaFtzdHJdID0gc2F2ZV9zdHIKIAogICAgIGRlZiBzYXZlX3R1cGxlKHNlbGYsIG9iaik6Ci0gICAgICAgIHdyaXRlID0gc2VsZi53cml0ZQotICAgICAgICBwcm90byA9IHNlbGYucHJvdG8KLQotICAgICAgICBuID0gbGVuKG9iaikKLSAgICAgICAgaWYgbiA9PSAwOgotICAgICAgICAgICAgaWYgcHJvdG86Ci0gICAgICAgICAgICAgICAgd3JpdGUoRU1QVFlfVFVQTEUpCisgICAgICAgIGlmIG5vdCBvYmo6ICMgdHVwbGUgaXMgZW1wdHkKKyAgICAgICAgICAgIGlmIHNlbGYuYmluOgorICAgICAgICAgICAgICAgIHNlbGYud3JpdGUoRU1QVFlfVFVQTEUpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHdyaXRlKE1BUksgKyBUVVBMRSkKKyAgICAgICAgICAgICAgICBzZWxmLndyaXRlKE1BUksgKyBUVVBMRSkKICAgICAgICAgICAgIHJldHVybgogCisgICAgICAgIG4gPSBsZW4ob2JqKQogICAgICAgICBzYXZlID0gc2VsZi5zYXZlCiAgICAgICAgIG1lbW8gPSBzZWxmLm1lbW8KLSAgICAgICAgaWYgbiA8PSAzIGFuZCBwcm90byA+PSAyOgorICAgICAgICBpZiBuIDw9IDMgYW5kIHNlbGYucHJvdG8gPj0gMjoKICAgICAgICAgICAgIGZvciBlbGVtZW50IGluIG9iajoKICAgICAgICAgICAgICAgICBzYXZlKGVsZW1lbnQpCiAgICAgICAgICAgICAjIFN1YnRsZS4gIFNhbWUgYXMgaW4gdGhlIGJpZyBjb21tZW50IGJlbG93LgogICAgICAgICAgICAgaWYgaWQob2JqKSBpbiBtZW1vOgogICAgICAgICAgICAgICAgIGdldCA9IHNlbGYuZ2V0KG1lbW9baWQob2JqKV1bMF0pCi0gICAgICAgICAgICAgICAgd3JpdGUoUE9QICogbiArIGdldCkKKyAgICAgICAgICAgICAgICBzZWxmLndyaXRlKFBPUCAqIG4gKyBnZXQpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHdyaXRlKF90dXBsZXNpemUyY29kZVtuXSkKKyAgICAgICAgICAgICAgICBzZWxmLndyaXRlKF90dXBsZXNpemUyY29kZVtuXSkKICAgICAgICAgICAgICAgICBzZWxmLm1lbW9pemUob2JqKQogICAgICAgICAgICAgcmV0dXJuCiAKICAgICAgICAgIyBwcm90byAwIG9yIHByb3RvIDEgYW5kIHR1cGxlIGlzbid0IGVtcHR5LCBvciBwcm90byA+IDEgYW5kIHR1cGxlCiAgICAgICAgICMgaGFzIG1vcmUgdGhhbiAzIGVsZW1lbnRzLgorICAgICAgICB3cml0ZSA9IHNlbGYud3JpdGUKICAgICAgICAgd3JpdGUoTUFSSykKICAgICAgICAgZm9yIGVsZW1lbnQgaW4gb2JqOgogICAgICAgICAgICAgc2F2ZShlbGVtZW50KQpAQCAtNTYxLDI1ICs1NTEsMjMgQEAKICAgICAgICAgICAgICMgY291bGQgaGF2ZSBiZWVuIGRvbmUgaW4gdGhlICJmb3IgZWxlbWVudCIgbG9vcCBpbnN0ZWFkLCBidXQKICAgICAgICAgICAgICMgcmVjdXJzaXZlIHR1cGxlcyBhcmUgYSByYXJlIHRoaW5nLgogICAgICAgICAgICAgZ2V0ID0gc2VsZi5nZXQobWVtb1tpZChvYmopXVswXSkKLSAgICAgICAgICAgIGlmIHByb3RvOgorICAgICAgICAgICAgaWYgc2VsZi5iaW46CiAgICAgICAgICAgICAgICAgd3JpdGUoUE9QX01BUksgKyBnZXQpCiAgICAgICAgICAgICBlbHNlOiAgICMgcHJvdG8gMCAtLSBQT1BfTUFSSyBub3QgYXZhaWxhYmxlCiAgICAgICAgICAgICAgICAgd3JpdGUoUE9QICogKG4rMSkgKyBnZXQpCiAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICAjIE5vIHJlY3Vyc2lvbi4KLSAgICAgICAgc2VsZi53cml0ZShUVVBMRSkKKyAgICAgICAgd3JpdGUoVFVQTEUpCiAgICAgICAgIHNlbGYubWVtb2l6ZShvYmopCiAKICAgICBkaXNwYXRjaFt0dXBsZV0gPSBzYXZlX3R1cGxlCiAKICAgICBkZWYgc2F2ZV9saXN0KHNlbGYsIG9iaik6Ci0gICAgICAgIHdyaXRlID0gc2VsZi53cml0ZQotCiAgICAgICAgIGlmIHNlbGYuYmluOgotICAgICAgICAgICAgd3JpdGUoRU1QVFlfTElTVCkKKyAgICAgICAgICAgIHNlbGYud3JpdGUoRU1QVFlfTElTVCkKICAgICAgICAgZWxzZTogICAjIHByb3RvIDAgLS0gY2FuJ3QgdXNlIEVNUFRZX0xJU1QKLSAgICAgICAgICAgIHdyaXRlKE1BUksgKyBMSVNUKQorICAgICAgICAgICAgc2VsZi53cml0ZShNQVJLICsgTElTVCkKIAogICAgICAgICBzZWxmLm1lbW9pemUob2JqKQogICAgICAgICBzZWxmLl9iYXRjaF9hcHBlbmRzKG9iaikKQEAgLTU5OSwxNyArNTg3LDkgQEAKICAgICAgICAgICAgICAgICB3cml0ZShBUFBFTkQpCiAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICBpdGVtcyA9IGl0ZXIoaXRlbXMpCi0gICAgICAgIHIgPSByYW5nZShzZWxmLl9CQVRDSFNJWkUpCi0gICAgICAgIHdoaWxlIGl0ZW1zIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdG1wID0gW10KLSAgICAgICAgICAgIGZvciBpIGluIHI6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICB4ID0gbmV4dChpdGVtcykKLSAgICAgICAgICAgICAgICAgICAgdG1wLmFwcGVuZCh4KQotICAgICAgICAgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgotICAgICAgICAgICAgICAgICAgICBpdGVtcyA9IE5vbmUKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgaXQgPSBpdGVyKGl0ZW1zKQorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgdG1wID0gbGlzdChpc2xpY2UoaXQsIHNlbGYuX0JBVENIU0laRSkpCiAgICAgICAgICAgICBuID0gbGVuKHRtcCkKICAgICAgICAgICAgIGlmIG4gPiAxOgogICAgICAgICAgICAgICAgIHdyaXRlKE1BUkspCkBAIC02MjAsMTQgKzYwMCwxNCBAQAogICAgICAgICAgICAgICAgIHNhdmUodG1wWzBdKQogICAgICAgICAgICAgICAgIHdyaXRlKEFQUEVORCkKICAgICAgICAgICAgICMgZWxzZSB0bXAgaXMgZW1wdHksIGFuZCB3ZSdyZSBkb25lCisgICAgICAgICAgICBpZiBuIDwgc2VsZi5fQkFUQ0hTSVpFOgorICAgICAgICAgICAgICAgIHJldHVybgogCiAgICAgZGVmIHNhdmVfZGljdChzZWxmLCBvYmopOgotICAgICAgICB3cml0ZSA9IHNlbGYud3JpdGUKLQogICAgICAgICBpZiBzZWxmLmJpbjoKLSAgICAgICAgICAgIHdyaXRlKEVNUFRZX0RJQ1QpCisgICAgICAgICAgICBzZWxmLndyaXRlKEVNUFRZX0RJQ1QpCiAgICAgICAgIGVsc2U6ICAgIyBwcm90byAwIC0tIGNhbid0IHVzZSBFTVBUWV9ESUNUCi0gICAgICAgICAgICB3cml0ZShNQVJLICsgRElDVCkKKyAgICAgICAgICAgIHNlbGYud3JpdGUoTUFSSyArIERJQ1QpCiAKICAgICAgICAgc2VsZi5tZW1vaXplKG9iaikKICAgICAgICAgc2VsZi5fYmF0Y2hfc2V0aXRlbXMob2JqLml0ZW1zKCkpCkBAIC02NDgsMTYgKzYyOCw5IEBACiAgICAgICAgICAgICAgICAgd3JpdGUoU0VUSVRFTSkKICAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGl0ZW1zID0gaXRlcihpdGVtcykKLSAgICAgICAgciA9IHJhbmdlKHNlbGYuX0JBVENIU0laRSkKLSAgICAgICAgd2hpbGUgaXRlbXMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB0bXAgPSBbXQotICAgICAgICAgICAgZm9yIGkgaW4gcjoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHRtcC5hcHBlbmQobmV4dChpdGVtcykpCi0gICAgICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246Ci0gICAgICAgICAgICAgICAgICAgIGl0ZW1zID0gTm9uZQotICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBpdCA9IGl0ZXIoaXRlbXMpCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICB0bXAgPSBsaXN0KGlzbGljZShpdCwgc2VsZi5fQkFUQ0hTSVpFKSkKICAgICAgICAgICAgIG4gPSBsZW4odG1wKQogICAgICAgICAgICAgaWYgbiA+IDE6CiAgICAgICAgICAgICAgICAgd3JpdGUoTUFSSykKQEAgLTY3MSw4ICs2NDQsMTAgQEAKICAgICAgICAgICAgICAgICBzYXZlKHYpCiAgICAgICAgICAgICAgICAgd3JpdGUoU0VUSVRFTSkKICAgICAgICAgICAgICMgZWxzZSB0bXAgaXMgZW1wdHksIGFuZCB3ZSdyZSBkb25lCisgICAgICAgICAgICBpZiBuIDwgc2VsZi5fQkFUQ0hTSVpFOgorICAgICAgICAgICAgICAgIHJldHVybgogCi0gICAgZGVmIHNhdmVfZ2xvYmFsKHNlbGYsIG9iaiwgbmFtZT1Ob25lLCBwYWNrPXN0cnVjdC5wYWNrKToKKyAgICBkZWYgc2F2ZV9nbG9iYWwoc2VsZiwgb2JqLCBuYW1lPU5vbmUpOgogICAgICAgICB3cml0ZSA9IHNlbGYud3JpdGUKICAgICAgICAgbWVtbyA9IHNlbGYubWVtbwogCkBAIC03MDIsOSArNjc3LDkgQEAKICAgICAgICAgICAgIGlmIGNvZGU6CiAgICAgICAgICAgICAgICAgYXNzZXJ0IGNvZGUgPiAwCiAgICAgICAgICAgICAgICAgaWYgY29kZSA8PSAweGZmOgotICAgICAgICAgICAgICAgICAgICB3cml0ZShFWFQxICsgYnl0ZXMoW2NvZGVdKSkKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUoRVhUMSArIHBhY2soIjxCIiwgY29kZSkpCiAgICAgICAgICAgICAgICAgZWxpZiBjb2RlIDw9IDB4ZmZmZjoKLSAgICAgICAgICAgICAgICAgICAgd3JpdGUoRVhUMiArIGJ5dGVzKFtjb2RlJjB4ZmYsIGNvZGU+PjhdKSkKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUoRVhUMiArIHBhY2soIjxIIiwgY29kZSkpCiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgd3JpdGUoRVhUNCArIHBhY2soIjxpIiwgY29kZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuCkBAIC03MzIsMjUgKzcwNyw2IEBACiAgICAgZGlzcGF0Y2hbQnVpbHRpbkZ1bmN0aW9uVHlwZV0gPSBzYXZlX2dsb2JhbAogICAgIGRpc3BhdGNoW3R5cGVdID0gc2F2ZV9nbG9iYWwKIAotIyBQaWNrbGluZyBoZWxwZXJzCi0KLWRlZiBfa2VlcF9hbGl2ZSh4LCBtZW1vKToKLSAgICAiIiJLZWVwcyBhIHJlZmVyZW5jZSB0byB0aGUgb2JqZWN0IHggaW4gdGhlIG1lbW8uCi0KLSAgICBCZWNhdXNlIHdlIHJlbWVtYmVyIG9iamVjdHMgYnkgdGhlaXIgaWQsIHdlIGhhdmUKLSAgICB0byBhc3N1cmUgdGhhdCBwb3NzaWJseSB0ZW1wb3Jhcnkgb2JqZWN0cyBhcmUga2VwdAotICAgIGFsaXZlIGJ5IHJlZmVyZW5jaW5nIHRoZW0uCi0gICAgV2Ugc3RvcmUgYSByZWZlcmVuY2UgYXQgdGhlIGlkIG9mIHRoZSBtZW1vLCB3aGljaCBzaG91bGQKLSAgICBub3JtYWxseSBub3QgYmUgdXNlZCB1bmxlc3Mgc29tZW9uZSB0cmllcyB0byBkZWVwY29weQotICAgIHRoZSBtZW1vIGl0c2VsZi4uLgotICAgICIiIgotICAgIHRyeToKLSAgICAgICAgbWVtb1tpZChtZW1vKV0uYXBwZW5kKHgpCi0gICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAjIGFoYSwgdGhpcyBpcyB0aGUgZmlyc3Qgb25lIDotKQotICAgICAgICBtZW1vW2lkKG1lbW8pXT1beF0KLQotCiAjIEEgY2FjaGUgZm9yIHdoaWNobW9kdWxlKCksIG1hcHBpbmcgYSBmdW5jdGlvbiBvYmplY3QgdG8gdGhlIG5hbWUgb2YKICMgdGhlIG1vZHVsZSBpbiB3aGljaCB0aGUgZnVuY3Rpb24gd2FzIGZvdW5kLgogCkBAIC04MzIsNyArNzg4LDcgQEAKICAgICAgICAgcmVhZCA9IHNlbGYucmVhZAogICAgICAgICBkaXNwYXRjaCA9IHNlbGYuZGlzcGF0Y2gKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2hpbGUgMToKKyAgICAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICAgICAga2V5ID0gcmVhZCgxKQogICAgICAgICAgICAgICAgIGlmIG5vdCBrZXk6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEVPRkVycm9yCkBAIC04NjIsNyArODE4LDcgQEAKICAgICBkaXNwYXRjaCA9IHt9CiAKICAgICBkZWYgbG9hZF9wcm90byhzZWxmKToKLSAgICAgICAgcHJvdG8gPSBvcmQoc2VsZi5yZWFkKDEpKQorICAgICAgICBwcm90byA9IHNlbGYucmVhZCgxKVswXQogICAgICAgICBpZiBub3QgMCA8PSBwcm90byA8PSBISUdIRVNUX1BST1RPQ09MOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidW5zdXBwb3J0ZWQgcGlja2xlIHByb3RvY29sOiAlZCIgJSBwcm90bykKICAgICAgICAgc2VsZi5wcm90byA9IHByb3RvCkBAIC04OTcsNDMgKzg1Myw0MCBAQAogICAgICAgICBlbGlmIGRhdGEgPT0gVFJVRVsxOl06CiAgICAgICAgICAgICB2YWwgPSBUcnVlCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdmFsID0gaW50KGRhdGEsIDApCi0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgICAgICB2YWwgPSBpbnQoZGF0YSwgMCkKKyAgICAgICAgICAgIHZhbCA9IGludChkYXRhLCAwKQogICAgICAgICBzZWxmLmFwcGVuZCh2YWwpCiAgICAgZGlzcGF0Y2hbSU5UWzBdXSA9IGxvYWRfaW50CiAKICAgICBkZWYgbG9hZF9iaW5pbnQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXBwZW5kKG1sb2FkcyhiJ2knICsgc2VsZi5yZWFkKDQpKSkKKyAgICAgICAgc2VsZi5hcHBlbmQodW5wYWNrKCc8aScsIHNlbGYucmVhZCg0KSlbMF0pCiAgICAgZGlzcGF0Y2hbQklOSU5UWzBdXSA9IGxvYWRfYmluaW50CiAKICAgICBkZWYgbG9hZF9iaW5pbnQxKHNlbGYpOgotICAgICAgICBzZWxmLmFwcGVuZChvcmQoc2VsZi5yZWFkKDEpKSkKKyAgICAgICAgc2VsZi5hcHBlbmQoc2VsZi5yZWFkKDEpWzBdKQogICAgIGRpc3BhdGNoW0JJTklOVDFbMF1dID0gbG9hZF9iaW5pbnQxCiAKICAgICBkZWYgbG9hZF9iaW5pbnQyKHNlbGYpOgotICAgICAgICBzZWxmLmFwcGVuZChtbG9hZHMoYidpJyArIHNlbGYucmVhZCgyKSArIGInXDAwMFwwMDAnKSkKKyAgICAgICAgc2VsZi5hcHBlbmQodW5wYWNrKCc8SCcsIHNlbGYucmVhZCgyKSlbMF0pCiAgICAgZGlzcGF0Y2hbQklOSU5UMlswXV0gPSBsb2FkX2JpbmludDIKIAogICAgIGRlZiBsb2FkX2xvbmcoc2VsZik6Ci0gICAgICAgIHZhbCA9IHNlbGYucmVhZGxpbmUoKVs6LTFdLmRlY29kZSgiYXNjaWkiKQotICAgICAgICBpZiB2YWwgYW5kIHZhbFstMV0gPT0gJ0wnOgorICAgICAgICB2YWwgPSBzZWxmLnJlYWRsaW5lKClbOi0xXQorICAgICAgICBpZiB2YWwgYW5kIHZhbFstMV0gPT0gYidMJ1swXToKICAgICAgICAgICAgIHZhbCA9IHZhbFs6LTFdCiAgICAgICAgIHNlbGYuYXBwZW5kKGludCh2YWwsIDApKQogICAgIGRpc3BhdGNoW0xPTkdbMF1dID0gbG9hZF9sb25nCiAKICAgICBkZWYgbG9hZF9sb25nMShzZWxmKToKLSAgICAgICAgbiA9IG9yZChzZWxmLnJlYWQoMSkpCisgICAgICAgIG4gPSBzZWxmLnJlYWQoMSlbMF0KICAgICAgICAgZGF0YSA9IHNlbGYucmVhZChuKQogICAgICAgICBzZWxmLmFwcGVuZChkZWNvZGVfbG9uZyhkYXRhKSkKICAgICBkaXNwYXRjaFtMT05HMVswXV0gPSBsb2FkX2xvbmcxCiAKICAgICBkZWYgbG9hZF9sb25nNChzZWxmKToKLSAgICAgICAgbiA9IG1sb2FkcyhiJ2knICsgc2VsZi5yZWFkKDQpKQorICAgICAgICBuLCA9IHVucGFjaygnPGknLCBzZWxmLnJlYWQoNCkpCiAgICAgICAgIGlmIG4gPCAwOgogICAgICAgICAgICAgIyBDb3JydXB0IG9yIGhvc3RpbGUgcGlja2xlIC0tIHdlIG5ldmVyIHdyaXRlIG9uZSBsaWtlIHRoaXMKLSAgICAgICAgICAgIHJhaXNlIFVucGlja2xpbmdFcnJvcigiTE9ORyBwaWNrbGUgaGFzIG5lZ2F0aXZlIGJ5dGUgY291bnQiKTsKKyAgICAgICAgICAgIHJhaXNlIFVucGlja2xpbmdFcnJvcigiTE9ORyBwaWNrbGUgaGFzIG5lZ2F0aXZlIGJ5dGUgY291bnQiKQogICAgICAgICBkYXRhID0gc2VsZi5yZWFkKG4pCiAgICAgICAgIHNlbGYuYXBwZW5kKGRlY29kZV9sb25nKGRhdGEpKQogICAgIGRpc3BhdGNoW0xPTkc0WzBdXSA9IGxvYWRfbG9uZzQKQEAgLTk0MiwzOSArODk1LDM2IEBACiAgICAgICAgIHNlbGYuYXBwZW5kKGZsb2F0KHNlbGYucmVhZGxpbmUoKVs6LTFdKSkKICAgICBkaXNwYXRjaFtGTE9BVFswXV0gPSBsb2FkX2Zsb2F0CiAKLSAgICBkZWYgbG9hZF9iaW5mbG9hdChzZWxmLCB1bnBhY2s9c3RydWN0LnVucGFjayk6CisgICAgZGVmIGxvYWRfYmluZmxvYXQoc2VsZik6CiAgICAgICAgIHNlbGYuYXBwZW5kKHVucGFjaygnPmQnLCBzZWxmLnJlYWQoOCkpWzBdKQogICAgIGRpc3BhdGNoW0JJTkZMT0FUWzBdXSA9IGxvYWRfYmluZmxvYXQKIAogICAgIGRlZiBsb2FkX3N0cmluZyhzZWxmKToKLSAgICAgICAgb3JpZyA9IHNlbGYucmVhZGxpbmUoKQotICAgICAgICByZXAgPSBvcmlnWzotMV0KLSAgICAgICAgZm9yIHEgaW4gKGInIicsIGIiJyIpOiAjIGRvdWJsZSBvciBzaW5nbGUgcXVvdGUKLSAgICAgICAgICAgIGlmIHJlcC5zdGFydHN3aXRoKHEpOgotICAgICAgICAgICAgICAgIGlmIGxlbihyZXApIDwgMiBvciBub3QgcmVwLmVuZHN3aXRoKHEpOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnNlY3VyZSBzdHJpbmcgcGlja2xlIikKLSAgICAgICAgICAgICAgICByZXAgPSByZXBbbGVuKHEpOi1sZW4ocSldCi0gICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZGF0YSA9IHNlbGYucmVhZGxpbmUoKVs6LTFdCisgICAgICAgICMgU3RyaXAgb3V0ZXJtb3N0IHF1b3RlcworICAgICAgICBpZiBsZW4oZGF0YSkgPj0gMiBhbmQgZGF0YVswXSA9PSBkYXRhWy0xXSBhbmQgZGF0YVswXSBpbiBiJyJcJyc6CisgICAgICAgICAgICBkYXRhID0gZGF0YVsxOi0xXQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW5zZWN1cmUgc3RyaW5nIHBpY2tsZTogJXIiICUgb3JpZykKLSAgICAgICAgc2VsZi5hcHBlbmQoY29kZWNzLmVzY2FwZV9kZWNvZGUocmVwKVswXQorICAgICAgICAgICAgcmFpc2UgVW5waWNrbGluZ0Vycm9yKCJ0aGUgU1RSSU5HIG9wY29kZSBhcmd1bWVudCBtdXN0IGJlIHF1b3RlZCIpCisgICAgICAgIHNlbGYuYXBwZW5kKGNvZGVjcy5lc2NhcGVfZGVjb2RlKGRhdGEpWzBdCiAgICAgICAgICAgICAgICAgICAgIC5kZWNvZGUoc2VsZi5lbmNvZGluZywgc2VsZi5lcnJvcnMpKQogICAgIGRpc3BhdGNoW1NUUklOR1swXV0gPSBsb2FkX3N0cmluZwogCiAgICAgZGVmIGxvYWRfYmluc3RyaW5nKHNlbGYpOgogICAgICAgICAjIERlcHJlY2F0ZWQgQklOU1RSSU5HIHVzZXMgc2lnbmVkIDMyLWJpdCBsZW5ndGgKLSAgICAgICAgbGVuID0gbWxvYWRzKGInaScgKyBzZWxmLnJlYWQoNCkpCisgICAgICAgIGxlbiwgPSB1bnBhY2soJzxpJywgc2VsZi5yZWFkKDQpKQogICAgICAgICBpZiBsZW4gPCAwOgotICAgICAgICAgICAgcmFpc2UgVW5waWNrbGluZ0Vycm9yKCJCSU5TVFJJTkcgcGlja2xlIGhhcyBuZWdhdGl2ZSBieXRlIGNvdW50Iik7CisgICAgICAgICAgICByYWlzZSBVbnBpY2tsaW5nRXJyb3IoIkJJTlNUUklORyBwaWNrbGUgaGFzIG5lZ2F0aXZlIGJ5dGUgY291bnQiKQogICAgICAgICBkYXRhID0gc2VsZi5yZWFkKGxlbikKICAgICAgICAgdmFsdWUgPSBzdHIoZGF0YSwgc2VsZi5lbmNvZGluZywgc2VsZi5lcnJvcnMpCiAgICAgICAgIHNlbGYuYXBwZW5kKHZhbHVlKQogICAgIGRpc3BhdGNoW0JJTlNUUklOR1swXV0gPSBsb2FkX2JpbnN0cmluZwogCi0gICAgZGVmIGxvYWRfYmluYnl0ZXMoc2VsZiwgdW5wYWNrPXN0cnVjdC51bnBhY2ssIG1heHNpemU9c3lzLm1heHNpemUpOgorICAgIGRlZiBsb2FkX2JpbmJ5dGVzKHNlbGYpOgogICAgICAgICBsZW4sID0gdW5wYWNrKCc8SScsIHNlbGYucmVhZCg0KSkKICAgICAgICAgaWYgbGVuID4gbWF4c2l6ZToKLSAgICAgICAgICAgIHJhaXNlIFVucGlja2xpbmdFcnJvcigiQklOQllURVMgZXhjZWVkcyBzeXN0ZW0ncyBtYXhpbXVtIHNpemUgb2YgJWQgYnl0ZXMiICUgbWF4c2l6ZSk7CisgICAgICAgICAgICByYWlzZSBVbnBpY2tsaW5nRXJyb3IoIkJJTkJZVEVTIGV4Y2VlZHMgc3lzdGVtJ3MgbWF4aW11bSBzaXplICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2YgJWQgYnl0ZXMiICUgbWF4c2l6ZSkKICAgICAgICAgc2VsZi5hcHBlbmQoc2VsZi5yZWFkKGxlbikpCiAgICAgZGlzcGF0Y2hbQklOQllURVNbMF1dID0gbG9hZF9iaW5ieXRlcwogCkBAIC05ODIsMjMgKzkzMiwyNCBAQAogICAgICAgICBzZWxmLmFwcGVuZChzdHIoc2VsZi5yZWFkbGluZSgpWzotMV0sICdyYXctdW5pY29kZS1lc2NhcGUnKSkKICAgICBkaXNwYXRjaFtVTklDT0RFWzBdXSA9IGxvYWRfdW5pY29kZQogCi0gICAgZGVmIGxvYWRfYmludW5pY29kZShzZWxmLCB1bnBhY2s9c3RydWN0LnVucGFjaywgbWF4c2l6ZT1zeXMubWF4c2l6ZSk6CisgICAgZGVmIGxvYWRfYmludW5pY29kZShzZWxmKToKICAgICAgICAgbGVuLCA9IHVucGFjaygnPEknLCBzZWxmLnJlYWQoNCkpCiAgICAgICAgIGlmIGxlbiA+IG1heHNpemU6Ci0gICAgICAgICAgICByYWlzZSBVbnBpY2tsaW5nRXJyb3IoIkJJTlVOSUNPREUgZXhjZWVkcyBzeXN0ZW0ncyBtYXhpbXVtIHNpemUgb2YgJWQgYnl0ZXMiICUgbWF4c2l6ZSk7CisgICAgICAgICAgICByYWlzZSBVbnBpY2tsaW5nRXJyb3IoIkJJTlVOSUNPREUgZXhjZWVkcyBzeXN0ZW0ncyBtYXhpbXVtIHNpemUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvZiAlZCBieXRlcyIgJSBtYXhzaXplKQogICAgICAgICBzZWxmLmFwcGVuZChzdHIoc2VsZi5yZWFkKGxlbiksICd1dGYtOCcsICdzdXJyb2dhdGVwYXNzJykpCiAgICAgZGlzcGF0Y2hbQklOVU5JQ09ERVswXV0gPSBsb2FkX2JpbnVuaWNvZGUKIAogICAgIGRlZiBsb2FkX3Nob3J0X2JpbnN0cmluZyhzZWxmKToKLSAgICAgICAgbGVuID0gb3JkKHNlbGYucmVhZCgxKSkKLSAgICAgICAgZGF0YSA9IGJ5dGVzKHNlbGYucmVhZChsZW4pKQorICAgICAgICBsZW4gPSBzZWxmLnJlYWQoMSlbMF0KKyAgICAgICAgZGF0YSA9IHNlbGYucmVhZChsZW4pCiAgICAgICAgIHZhbHVlID0gc3RyKGRhdGEsIHNlbGYuZW5jb2RpbmcsIHNlbGYuZXJyb3JzKQogICAgICAgICBzZWxmLmFwcGVuZCh2YWx1ZSkKICAgICBkaXNwYXRjaFtTSE9SVF9CSU5TVFJJTkdbMF1dID0gbG9hZF9zaG9ydF9iaW5zdHJpbmcKIAogICAgIGRlZiBsb2FkX3Nob3J0X2JpbmJ5dGVzKHNlbGYpOgotICAgICAgICBsZW4gPSBvcmQoc2VsZi5yZWFkKDEpKQotICAgICAgICBzZWxmLmFwcGVuZChieXRlcyhzZWxmLnJlYWQobGVuKSkpCisgICAgICAgIGxlbiA9IHNlbGYucmVhZCgxKVswXQorICAgICAgICBzZWxmLmFwcGVuZChzZWxmLnJlYWQobGVuKSkKICAgICBkaXNwYXRjaFtTSE9SVF9CSU5CWVRFU1swXV0gPSBsb2FkX3Nob3J0X2JpbmJ5dGVzCiAKICAgICBkZWYgbG9hZF90dXBsZShzZWxmKToKQEAgLTEwMzcsMTIgKzk4OCw5IEBACiAKICAgICBkZWYgbG9hZF9kaWN0KHNlbGYpOgogICAgICAgICBrID0gc2VsZi5tYXJrZXIoKQotICAgICAgICBkID0ge30KICAgICAgICAgaXRlbXMgPSBzZWxmLnN0YWNrW2srMTpdCi0gICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihpdGVtcyksIDIpOgotICAgICAgICAgICAga2V5ID0gaXRlbXNbaV0KLSAgICAgICAgICAgIHZhbHVlID0gaXRlbXNbaSsxXQotICAgICAgICAgICAgZFtrZXldID0gdmFsdWUKKyAgICAgICAgZCA9IHtpdGVtc1tpXTogaXRlbXNbaSsxXQorICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihpdGVtcyksIDIpfQogICAgICAgICBzZWxmLnN0YWNrW2s6XSA9IFtkXQogICAgIGRpc3BhdGNoW0RJQ1RbMF1dID0gbG9hZF9kaWN0CiAKQEAgLTEwOTQsMTcgKzEwNDIsMTcgQEAKICAgICBkaXNwYXRjaFtHTE9CQUxbMF1dID0gbG9hZF9nbG9iYWwKIAogICAgIGRlZiBsb2FkX2V4dDEoc2VsZik6Ci0gICAgICAgIGNvZGUgPSBvcmQoc2VsZi5yZWFkKDEpKQorICAgICAgICBjb2RlID0gc2VsZi5yZWFkKDEpWzBdCiAgICAgICAgIHNlbGYuZ2V0X2V4dGVuc2lvbihjb2RlKQogICAgIGRpc3BhdGNoW0VYVDFbMF1dID0gbG9hZF9leHQxCiAKICAgICBkZWYgbG9hZF9leHQyKHNlbGYpOgotICAgICAgICBjb2RlID0gbWxvYWRzKGInaScgKyBzZWxmLnJlYWQoMikgKyBiJ1wwMDBcMDAwJykKKyAgICAgICAgY29kZSwgPSB1bnBhY2soJzxIJywgc2VsZi5yZWFkKDIpKQogICAgICAgICBzZWxmLmdldF9leHRlbnNpb24oY29kZSkKICAgICBkaXNwYXRjaFtFWFQyWzBdXSA9IGxvYWRfZXh0MgogCiAgICAgZGVmIGxvYWRfZXh0NChzZWxmKToKLSAgICAgICAgY29kZSA9IG1sb2FkcyhiJ2knICsgc2VsZi5yZWFkKDQpKQorICAgICAgICBjb2RlLCA9IHVucGFjaygnPGknLCBzZWxmLnJlYWQoNCkpCiAgICAgICAgIHNlbGYuZ2V0X2V4dGVuc2lvbihjb2RlKQogICAgIGRpc3BhdGNoW0VYVDRbMF1dID0gbG9hZF9leHQ0CiAKQEAgLTExMTgsNyArMTA2Niw3IEBACiAgICAgICAgIGlmIG5vdCBrZXk6CiAgICAgICAgICAgICBpZiBjb2RlIDw9IDA6ICMgbm90ZSB0aGF0IDAgaXMgZm9yYmlkZGVuCiAgICAgICAgICAgICAgICAgIyBDb3JydXB0IG9yIGhvc3RpbGUgcGlja2xlLgotICAgICAgICAgICAgICAgIHJhaXNlIFVucGlja2xpbmdFcnJvcigiRVhUIHNwZWNpZmllcyBjb2RlIDw9IDAiKTsKKyAgICAgICAgICAgICAgICByYWlzZSBVbnBpY2tsaW5nRXJyb3IoIkVYVCBzcGVjaWZpZXMgY29kZSA8PSAwIikKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInVucmVnaXN0ZXJlZCBleHRlbnNpb24gY29kZSAlZCIgJSBjb2RlKQogICAgICAgICBvYmogPSBzZWxmLmZpbmRfY2xhc3MoKmtleSkKICAgICAgICAgX2V4dGVuc2lvbl9jYWNoZVtjb2RlXSA9IG9iagpAQCAtMTE3Miw3ICsxMTIwLDcgQEAKICAgICAgICAgc2VsZi5hcHBlbmQoc2VsZi5tZW1vW2ldKQogICAgIGRpc3BhdGNoW0JJTkdFVFswXV0gPSBsb2FkX2JpbmdldAogCi0gICAgZGVmIGxvYWRfbG9uZ19iaW5nZXQoc2VsZiwgdW5wYWNrPXN0cnVjdC51bnBhY2spOgorICAgIGRlZiBsb2FkX2xvbmdfYmluZ2V0KHNlbGYpOgogICAgICAgICBpLCA9IHVucGFjaygnPEknLCBzZWxmLnJlYWQoNCkpCiAgICAgICAgIHNlbGYuYXBwZW5kKHNlbGYubWVtb1tpXSkKICAgICBkaXNwYXRjaFtMT05HX0JJTkdFVFswXV0gPSBsb2FkX2xvbmdfYmluZ2V0CkBAIC0xMTkxLDcgKzExMzksNyBAQAogICAgICAgICBzZWxmLm1lbW9baV0gPSBzZWxmLnN0YWNrWy0xXQogICAgIGRpc3BhdGNoW0JJTlBVVFswXV0gPSBsb2FkX2JpbnB1dAogCi0gICAgZGVmIGxvYWRfbG9uZ19iaW5wdXQoc2VsZiwgdW5wYWNrPXN0cnVjdC51bnBhY2ssIG1heHNpemU9c3lzLm1heHNpemUpOgorICAgIGRlZiBsb2FkX2xvbmdfYmlucHV0KHNlbGYpOgogICAgICAgICBpLCA9IHVucGFjaygnPEknLCBzZWxmLnJlYWQoNCkpCiAgICAgICAgIGlmIGkgPiBtYXhzaXplOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibmVnYXRpdmUgTE9OR19CSU5QVVQgYXJndW1lbnQiKQpAQCAtMTI0Miw3ICsxMTkwLDcgQEAKICAgICAgICAgc3RhdGUgPSBzdGFjay5wb3AoKQogICAgICAgICBpbnN0ID0gc3RhY2tbLTFdCiAgICAgICAgIHNldHN0YXRlID0gZ2V0YXR0cihpbnN0LCAiX19zZXRzdGF0ZV9fIiwgTm9uZSkKLSAgICAgICAgaWYgc2V0c3RhdGU6CisgICAgICAgIGlmIHNldHN0YXRlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2V0c3RhdGUoc3RhdGUpCiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgc2xvdHN0YXRlID0gTm9uZQpkaWZmIC0tZ2l0IGEvTGliL3BpY2tsZXRvb2xzLnB5IGIvTGliL3BpY2tsZXRvb2xzLnB5CmluZGV4IDY5Y2VkZjcuLjM4NmE5NWMgMTAwNjQ0Ci0tLSBhL0xpYi9waWNrbGV0b29scy5weQorKysgYi9MaWIvcGlja2xldG9vbHMucHkKQEAgLTM0LDExOSArMzQsMTE4IEBACiAjICAgYnkgYSBsYXRlciBHRVQuCiAKIAotIiIiCi0iQSBwaWNrbGUiIGlzIGEgcHJvZ3JhbSBmb3IgYSB2aXJ0dWFsIHBpY2tsZSBtYWNoaW5lIChQTSwgYnV0IG1vcmUgYWNjdXJhdGVseQotY2FsbGVkIGFuIHVucGlja2xpbmcgbWFjaGluZSkuICBJdCdzIGEgc2VxdWVuY2Ugb2Ygb3Bjb2RlcywgaW50ZXJwcmV0ZWQgYnkgdGhlCi1QTSwgYnVpbGRpbmcgYW4gYXJiaXRyYXJpbHkgY29tcGxleCBQeXRob24gb2JqZWN0LgorIyAiQSBwaWNrbGUiIGlzIGEgcHJvZ3JhbSBmb3IgYSB2aXJ0dWFsIHBpY2tsZSBtYWNoaW5lIChQTSwgYnV0IG1vcmUgYWNjdXJhdGVseQorIyBjYWxsZWQgYW4gdW5waWNrbGluZyBtYWNoaW5lKS4gIEl0J3MgYSBzZXF1ZW5jZSBvZiBvcGNvZGVzLCBpbnRlcnByZXRlZCBieSB0aGUKKyMgUE0sIGJ1aWxkaW5nIGFuIGFyYml0cmFyaWx5IGNvbXBsZXggUHl0aG9uIG9iamVjdC4KKyMKKyMgRm9yIHRoZSBtb3N0IHBhcnQsIHRoZSBQTSBpcyB2ZXJ5IHNpbXBsZTogIHRoZXJlIGFyZSBubyBsb29waW5nLCB0ZXN0aW5nLCBvcgorIyBjb25kaXRpb25hbCBpbnN0cnVjdGlvbnMsIG5vIGFyaXRobWV0aWMgYW5kIG5vIGZ1bmN0aW9uIGNhbGxzLiAgT3Bjb2RlcyBhcmUKKyMgZXhlY3V0ZWQgb25jZSBlYWNoLCBmcm9tIGZpcnN0IHRvIGxhc3QsIHVudGlsIGEgU1RPUCBvcGNvZGUgaXMgcmVhY2hlZC4KKyMKKyMgVGhlIFBNIGhhcyB0d28gZGF0YSBhcmVhcywgInRoZSBzdGFjayIgYW5kICJ0aGUgbWVtbyIuCisjCisjIE1hbnkgb3Bjb2RlcyBwdXNoIFB5dGhvbiBvYmplY3RzIG9udG8gdGhlIHN0YWNrOyBlLmcuLCBJTlQgcHVzaGVzIGEgUHl0aG9uCisjIGludGVnZXIgb2JqZWN0IG9uIHRoZSBzdGFjaywgd2hvc2UgdmFsdWUgaXMgZ290dGVuIGZyb20gYSBkZWNpbWFsIHN0cmluZworIyBsaXRlcmFsIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGUgSU5UIG9wY29kZSBpbiB0aGUgcGlja2xlIGJ5dGVzdHJlYW0uICBPdGhlcgorIyBvcGNvZGVzIHRha2UgUHl0aG9uIG9iamVjdHMgb2ZmIHRoZSBzdGFjay4gIFRoZSByZXN1bHQgb2YgdW5waWNrbGluZyBpcworIyB3aGF0ZXZlciBvYmplY3QgaXMgbGVmdCBvbiB0aGUgc3RhY2sgd2hlbiB0aGUgZmluYWwgU1RPUCBvcGNvZGUgaXMgZXhlY3V0ZWQuCisjCisjIFRoZSBtZW1vIGlzIHNpbXBseSBhbiBhcnJheSBvZiBvYmplY3RzLCBvciBpdCBjYW4gYmUgaW1wbGVtZW50ZWQgYXMgYSBkaWN0CisjIG1hcHBpbmcgbGl0dGxlIGludGVnZXJzIHRvIG9iamVjdHMuICBUaGUgbWVtbyBzZXJ2ZXMgYXMgdGhlIFBNJ3MgImxvbmcgdGVybQorIyBtZW1vcnkiLCBhbmQgdGhlIGxpdHRsZSBpbnRlZ2VycyBpbmRleGluZyB0aGUgbWVtbyBhcmUgYWtpbiB0byB2YXJpYWJsZQorIyBuYW1lcy4gIFNvbWUgb3Bjb2RlcyBwb3AgYSBzdGFjayBvYmplY3QgaW50byB0aGUgbWVtbyBhdCBhIGdpdmVuIGluZGV4LAorIyBhbmQgb3RoZXJzIHB1c2ggYSBtZW1vIG9iamVjdCBhdCBhIGdpdmVuIGluZGV4IG9udG8gdGhlIHN0YWNrIGFnYWluLgorIworIyBBdCBoZWFydCwgdGhhdCdzIGFsbCB0aGUgUE0gaGFzLiAgU3VidGxldGllcyBhcmlzZSBmb3IgdGhlc2UgcmVhc29uczoKKyMKKyMgKyBPYmplY3QgaWRlbnRpdHkuICBPYmplY3RzIGNhbiBiZSBhcmJpdHJhcmlseSBjb21wbGV4LCBhbmQgc3Vib2JqZWN0cworIyAgIG1heSBiZSBzaGFyZWQgKGZvciBleGFtcGxlLCB0aGUgbGlzdCBbYSwgYV0gcmVmZXJzIHRvIHRoZSBzYW1lIG9iamVjdCBhCisjICAgdHdpY2UpLiAgSXQgY2FuIGJlIHZpdGFsIHRoYXQgdW5waWNrbGluZyByZWNyZWF0ZSBhbiBpc29tb3JwaGljIG9iamVjdAorIyAgIGdyYXBoLCBmYWl0aGZ1bGx5IHJlcHJvZHVjaW5nIHNoYXJpbmcuCisjCisjICsgUmVjdXJzaXZlIG9iamVjdHMuICBGb3IgZXhhbXBsZSwgYWZ0ZXIgIkwgPSBbXTsgTC5hcHBlbmQoTCkiLCBMIGlzIGEKKyMgICBsaXN0LCBhbmQgTFswXSBpcyB0aGUgc2FtZSBsaXN0LiAgVGhpcyBpcyByZWxhdGVkIHRvIHRoZSBvYmplY3QgaWRlbnRpdHkKKyMgICBwb2ludCwgYW5kIHNvbWUgc2VxdWVuY2VzIG9mIHBpY2tsZSBvcGNvZGVzIGFyZSBzdWJ0bGUgaW4gb3JkZXIgdG8KKyMgICBnZXQgdGhlIHJpZ2h0IHJlc3VsdCBpbiBhbGwgY2FzZXMuCisjCisjICsgVGhpbmdzIHBpY2tsZSBkb2Vzbid0IGtub3cgZXZlcnl0aGluZyBhYm91dC4gIEV4YW1wbGVzIG9mIHRoaW5ncyBwaWNrbGUKKyMgICBkb2VzIGtub3cgZXZlcnl0aGluZyBhYm91dCBhcmUgUHl0aG9uJ3MgYnVpbHRpbiBzY2FsYXIgYW5kIGNvbnRhaW5lcgorIyAgIHR5cGVzLCBsaWtlIGludHMgYW5kIHR1cGxlcy4gIFRoZXkgZ2VuZXJhbGx5IGhhdmUgb3Bjb2RlcyBkZWRpY2F0ZWQgdG8KKyMgICB0aGVtLiAgRm9yIHRoaW5ncyBsaWtlIG1vZHVsZSByZWZlcmVuY2VzIGFuZCBpbnN0YW5jZXMgb2YgdXNlci1kZWZpbmVkCisjICAgY2xhc3NlcywgcGlja2xlJ3Mga25vd2xlZGdlIGlzIGxpbWl0ZWQuICBIaXN0b3JpY2FsbHksIG1hbnkgZW5oYW5jZW1lbnRzCisjICAgaGF2ZSBiZWVuIG1hZGUgdG8gdGhlIHBpY2tsZSBwcm90b2NvbCBpbiBvcmRlciB0byBkbyBhIGJldHRlciAoZmFzdGVyLAorIyAgIGFuZC9vciBtb3JlIGNvbXBhY3QpIGpvYiBvbiB0aG9zZS4KKyMKKyMgKyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFuZCBtaWNyby1vcHRpbWl6YXRpb24uICBBcyBleHBsYWluZWQgYmVsb3csCisjICAgcGlja2xlIG9wY29kZXMgbmV2ZXIgZ28gYXdheSwgbm90IGV2ZW4gd2hlbiBiZXR0ZXIgd2F5cyB0byBkbyBhIHRoaW5nCisjICAgZ2V0IGludmVudGVkLiAgVGhlIHJlcGVydG9pcmUgb2YgdGhlIFBNIGp1c3Qga2VlcHMgZ3Jvd2luZyBvdmVyIHRpbWUuCisjICAgRm9yIGV4YW1wbGUsIHByb3RvY29sIDAgaGFkIHR3byBvcGNvZGVzIGZvciBidWlsZGluZyBQeXRob24gaW50ZWdlcnMgKElOVAorIyAgIGFuZCBMT05HKSwgcHJvdG9jb2wgMSBhZGRlZCB0aHJlZSBtb3JlIGZvciBtb3JlLWVmZmljaWVudCBwaWNrbGluZyBvZiBzaG9ydAorIyAgIGludGVnZXJzLCBhbmQgcHJvdG9jb2wgMiBhZGRlZCB0d28gbW9yZSBmb3IgbW9yZS1lZmZpY2llbnQgcGlja2xpbmcgb2YKKyMgICBsb25nIGludGVnZXJzIChiZWZvcmUgcHJvdG9jb2wgMiwgdGhlIG9ubHkgd2F5cyB0byBwaWNrbGUgYSBQeXRob24gbG9uZworIyAgIHRvb2sgdGltZSBxdWFkcmF0aWMgaW4gdGhlIG51bWJlciBvZiBkaWdpdHMsIGZvciBib3RoIHBpY2tsaW5nIGFuZAorIyAgIHVucGlja2xpbmcpLiAgIk9wY29kZSBibG9hdCIgaXNuJ3Qgc28gbXVjaCBhIHN1YnRsZXR5IGFzIGEgc291cmNlIG9mCisjICAgd2VhcnlpbmcgY29tcGxpY2F0aW9uLgorIworIworIyBQaWNrbGUgcHJvdG9jb2xzOgorIworIyBGb3IgY29tcGF0aWJpbGl0eSwgdGhlIG1lYW5pbmcgb2YgYSBwaWNrbGUgb3Bjb2RlIG5ldmVyIGNoYW5nZXMuICBJbnN0ZWFkIG5ldworIyBwaWNrbGUgb3Bjb2RlcyBnZXQgYWRkZWQsIGFuZCBlYWNoIHZlcnNpb24ncyB1bnBpY2tsZXIgY2FuIGhhbmRsZSBhbGwgdGhlCisjIHBpY2tsZSBvcGNvZGVzIGluIGFsbCBwcm90b2NvbCB2ZXJzaW9ucyB0byBkYXRlLiAgU28gb2xkIHBpY2tsZXMgY29udGludWUgdG8KKyMgYmUgcmVhZGFibGUgZm9yZXZlci4gIFRoZSBwaWNrbGVyIGNhbiBnZW5lcmFsbHkgYmUgdG9sZCB0byByZXN0cmljdCBpdHNlbGYgdG8KKyMgdGhlIHN1YnNldCBvZiBvcGNvZGVzIGF2YWlsYWJsZSB1bmRlciBwcmV2aW91cyBwcm90b2NvbCB2ZXJzaW9ucyB0b28sIHNvIHRoYXQKKyMgdXNlcnMgY2FuIGNyZWF0ZSBwaWNrbGVzIHVuZGVyIHRoZSBjdXJyZW50IHZlcnNpb24gcmVhZGFibGUgYnkgb2xkZXIKKyMgdmVyc2lvbnMuICBIb3dldmVyLCBhIHBpY2tsZSBkb2VzIG5vdCBjb250YWluIGl0cyB2ZXJzaW9uIG51bWJlciBlbWJlZGRlZAorIyB3aXRoaW4gaXQuICBJZiBhbiBvbGRlciB1bnBpY2tsZXIgdHJpZXMgdG8gcmVhZCBhIHBpY2tsZSB1c2luZyBhIGxhdGVyCisjIHByb3RvY29sLCB0aGUgcmVzdWx0IGlzIG1vc3QgbGlrZWx5IGFuIGV4Y2VwdGlvbiBkdWUgdG8gc2VlaW5nIGFuIHVua25vd24gKGluCisjIHRoZSBvbGRlciB1bnBpY2tsZXIpIG9wY29kZS4KKyMKKyMgVGhlIG9yaWdpbmFsIHBpY2tsZSB1c2VkIHdoYXQncyBub3cgY2FsbGVkICJwcm90b2NvbCAwIiwgYW5kIHdoYXQgd2FzIGNhbGxlZAorIyAidGV4dCBtb2RlIiBiZWZvcmUgUHl0aG9uIDIuMy4gIFRoZSBlbnRpcmUgcGlja2xlIGJ5dGVzdHJlYW0gaXMgbWFkZSB1cCBvZgorIyBwcmludGFibGUgNy1iaXQgQVNDSUkgY2hhcmFjdGVycywgcGx1cyB0aGUgbmV3bGluZSBjaGFyYWN0ZXIsIGluIHByb3RvY29sIDAuCisjIFRoYXQncyB3aHkgaXQgd2FzIGNhbGxlZCB0ZXh0IG1vZGUuICBQcm90b2NvbCAwIGlzIHNtYWxsIGFuZCBlbGVnYW50LCBidXQKKyMgc29tZXRpbWVzIHBhaW5mdWxseSBpbmVmZmljaWVudC4KKyMKKyMgVGhlIHNlY29uZCBtYWpvciBzZXQgb2YgYWRkaXRpb25zIGlzIG5vdyBjYWxsZWQgInByb3RvY29sIDEiLCBhbmQgd2FzIGNhbGxlZAorIyAiYmluYXJ5IG1vZGUiIGJlZm9yZSBQeXRob24gMi4zLiAgVGhpcyBhZGRlZCBtYW55IG9wY29kZXMgd2l0aCBhcmd1bWVudHMKKyMgY29uc2lzdGluZyBvZiBhcmJpdHJhcnkgYnl0ZXMsIGluY2x1ZGluZyBOVUwgYnl0ZXMgYW5kIHVucHJpbnRhYmxlICJoaWdoIGJpdCIKKyMgYnl0ZXMuICBCaW5hcnkgbW9kZSBwaWNrbGVzIGNhbiBiZSBzdWJzdGFudGlhbGx5IHNtYWxsZXIgdGhhbiBlcXVpdmFsZW50CisjIHRleHQgbW9kZSBwaWNrbGVzLCBhbmQgc29tZXRpbWVzIGZhc3RlciB0b287IGUuZy4sIEJJTklOVCByZXByZXNlbnRzIGEgNC1ieXRlCisjIGludCBhcyA0IGJ5dGVzIGZvbGxvd2luZyB0aGUgb3Bjb2RlLCB3aGljaCBpcyBjaGVhcGVyIHRvIHVucGlja2xlIHRoYW4gdGhlCisjIChwZXJoYXBzKSAxMS1jaGFyYWN0ZXIgZGVjaW1hbCBzdHJpbmcgYXR0YWNoZWQgdG8gSU5ULiAgUHJvdG9jb2wgMSBhbHNvIGFkZGVkCisjIGEgbnVtYmVyIG9mIG9wY29kZXMgdGhhdCBvcGVyYXRlIG9uIG1hbnkgc3RhY2sgZWxlbWVudHMgYXQgb25jZSAobGlrZSBBUFBFTkRTCisjIGFuZCBTRVRJVEVNUyksIGFuZCAic2hvcnRjdXQiIG9wY29kZXMgKGxpa2UgRU1QVFlfRElDVCBhbmQgRU1QVFlfVFVQTEUpLgorIworIyBUaGUgdGhpcmQgbWFqb3Igc2V0IG9mIGFkZGl0aW9ucyBjYW1lIGluIFB5dGhvbiAyLjMsIGFuZCBpcyBjYWxsZWQgInByb3RvY29sCisjIDIiLiAgVGhpcyBhZGRlZDoKKyMKKyMgLSBBIGJldHRlciB3YXkgdG8gcGlja2xlIGluc3RhbmNlcyBvZiBuZXctc3R5bGUgY2xhc3NlcyAoTkVXT0JKKS4KKyMKKyMgLSBBIHdheSBmb3IgYSBwaWNrbGUgdG8gaWRlbnRpZnkgaXRzIHByb3RvY29sIChQUk9UTykuCisjCisjIC0gVGltZS0gYW5kIHNwYWNlLSBlZmZpY2llbnQgcGlja2xpbmcgb2YgbG9uZyBpbnRzIChMT05HezEsNH0pLgorIworIyAtIFNob3J0Y3V0cyBmb3Igc21hbGwgdHVwbGVzIChUVVBMRXsxLDIsM319LgorIworIyAtIERlZGljYXRlZCBvcGNvZGVzIGZvciBib29scyAoTkVXVFJVRSwgTkVXRkFMU0UpLgorIworIyAtIFRoZSAiZXh0ZW5zaW9uIHJlZ2lzdHJ5IiwgYSB2ZWN0b3Igb2YgcG9wdWxhciBvYmplY3RzIHRoYXQgY2FuIGJlIHB1c2hlZAorIyAgIGVmZmljaWVudGx5IGJ5IGluZGV4IChFWFR7MSwyLDR9KS4gIFRoaXMgaXMgYWtpbiB0byB0aGUgbWVtbyBhbmQgR0VULCBidXQKKyMgICB0aGUgcmVnaXN0cnkgY29udGVudHMgYXJlIHByZWRlZmluZWQgKHRoZXJlJ3Mgbm90aGluZyBha2luIHRvIHRoZSBtZW1vJ3MKKyMgICBQVVQpLgorIworIyBBbm90aGVyIGluZGVwZW5kZW50IGNoYW5nZSB3aXRoIFB5dGhvbiAyLjMgaXMgdGhlIGFiYW5kb25tZW50IG9mIGFueQorIyBwcmV0ZW5zZSB0aGF0IGl0IG1pZ2h0IGJlIHNhZmUgdG8gbG9hZCBwaWNrbGVzIHJlY2VpdmVkIGZyb20gdW50cnVzdGVkCisjIHBhcnRpZXMgLS0gbm8gc3VmZmljaWVudCBzZWN1cml0eSBhbmFseXNpcyBoYXMgYmVlbiBkb25lIHRvIGd1YXJhbnRlZQorIyB0aGlzIGFuZCB0aGVyZSBpc24ndCBhIHVzZSBjYXNlIHRoYXQgd2FycmFudHMgdGhlIGV4cGVuc2Ugb2Ygc3VjaCBhbgorIyBhbmFseXNpcy4KKyMKKyMgVG8gdGhpcyBlbmQsIGFsbCB0ZXN0cyBmb3IgX19zYWZlX2Zvcl91bnBpY2tsaW5nX18gb3IgZm9yCisjIGNvcHlyZWcuc2FmZV9jb25zdHJ1Y3RvcnMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgdW5waWNrbGluZyBjb2RlLgorIyBSZWZlcmVuY2VzIHRvIHRoZXNlIHZhcmlhYmxlcyBpbiB0aGUgZGVzY3JpcHRpb25zIGJlbG93IGFyZSB0byBiZSBzZWVuCisjIGFzIGRlc2NyaWJpbmcgdW5waWNrbGluZyBpbiBQeXRob24gMi4yIGFuZCBiZWZvcmUuCiAKLUZvciB0aGUgbW9zdCBwYXJ0LCB0aGUgUE0gaXMgdmVyeSBzaW1wbGU6ICB0aGVyZSBhcmUgbm8gbG9vcGluZywgdGVzdGluZywgb3IKLWNvbmRpdGlvbmFsIGluc3RydWN0aW9ucywgbm8gYXJpdGhtZXRpYyBhbmQgbm8gZnVuY3Rpb24gY2FsbHMuICBPcGNvZGVzIGFyZQotZXhlY3V0ZWQgb25jZSBlYWNoLCBmcm9tIGZpcnN0IHRvIGxhc3QsIHVudGlsIGEgU1RPUCBvcGNvZGUgaXMgcmVhY2hlZC4KLQotVGhlIFBNIGhhcyB0d28gZGF0YSBhcmVhcywgInRoZSBzdGFjayIgYW5kICJ0aGUgbWVtbyIuCi0KLU1hbnkgb3Bjb2RlcyBwdXNoIFB5dGhvbiBvYmplY3RzIG9udG8gdGhlIHN0YWNrOyBlLmcuLCBJTlQgcHVzaGVzIGEgUHl0aG9uCi1pbnRlZ2VyIG9iamVjdCBvbiB0aGUgc3RhY2ssIHdob3NlIHZhbHVlIGlzIGdvdHRlbiBmcm9tIGEgZGVjaW1hbCBzdHJpbmcKLWxpdGVyYWwgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZSBJTlQgb3Bjb2RlIGluIHRoZSBwaWNrbGUgYnl0ZXN0cmVhbS4gIE90aGVyCi1vcGNvZGVzIHRha2UgUHl0aG9uIG9iamVjdHMgb2ZmIHRoZSBzdGFjay4gIFRoZSByZXN1bHQgb2YgdW5waWNrbGluZyBpcwotd2hhdGV2ZXIgb2JqZWN0IGlzIGxlZnQgb24gdGhlIHN0YWNrIHdoZW4gdGhlIGZpbmFsIFNUT1Agb3Bjb2RlIGlzIGV4ZWN1dGVkLgotCi1UaGUgbWVtbyBpcyBzaW1wbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cywgb3IgaXQgY2FuIGJlIGltcGxlbWVudGVkIGFzIGEgZGljdAotbWFwcGluZyBsaXR0bGUgaW50ZWdlcnMgdG8gb2JqZWN0cy4gIFRoZSBtZW1vIHNlcnZlcyBhcyB0aGUgUE0ncyAibG9uZyB0ZXJtCi1tZW1vcnkiLCBhbmQgdGhlIGxpdHRsZSBpbnRlZ2VycyBpbmRleGluZyB0aGUgbWVtbyBhcmUgYWtpbiB0byB2YXJpYWJsZQotbmFtZXMuICBTb21lIG9wY29kZXMgcG9wIGEgc3RhY2sgb2JqZWN0IGludG8gdGhlIG1lbW8gYXQgYSBnaXZlbiBpbmRleCwKLWFuZCBvdGhlcnMgcHVzaCBhIG1lbW8gb2JqZWN0IGF0IGEgZ2l2ZW4gaW5kZXggb250byB0aGUgc3RhY2sgYWdhaW4uCi0KLUF0IGhlYXJ0LCB0aGF0J3MgYWxsIHRoZSBQTSBoYXMuICBTdWJ0bGV0aWVzIGFyaXNlIGZvciB0aGVzZSByZWFzb25zOgotCi0rIE9iamVjdCBpZGVudGl0eS4gIE9iamVjdHMgY2FuIGJlIGFyYml0cmFyaWx5IGNvbXBsZXgsIGFuZCBzdWJvYmplY3RzCi0gIG1heSBiZSBzaGFyZWQgKGZvciBleGFtcGxlLCB0aGUgbGlzdCBbYSwgYV0gcmVmZXJzIHRvIHRoZSBzYW1lIG9iamVjdCBhCi0gIHR3aWNlKS4gIEl0IGNhbiBiZSB2aXRhbCB0aGF0IHVucGlja2xpbmcgcmVjcmVhdGUgYW4gaXNvbW9ycGhpYyBvYmplY3QKLSAgZ3JhcGgsIGZhaXRoZnVsbHkgcmVwcm9kdWNpbmcgc2hhcmluZy4KLQotKyBSZWN1cnNpdmUgb2JqZWN0cy4gIEZvciBleGFtcGxlLCBhZnRlciAiTCA9IFtdOyBMLmFwcGVuZChMKSIsIEwgaXMgYQotICBsaXN0LCBhbmQgTFswXSBpcyB0aGUgc2FtZSBsaXN0LiAgVGhpcyBpcyByZWxhdGVkIHRvIHRoZSBvYmplY3QgaWRlbnRpdHkKLSAgcG9pbnQsIGFuZCBzb21lIHNlcXVlbmNlcyBvZiBwaWNrbGUgb3Bjb2RlcyBhcmUgc3VidGxlIGluIG9yZGVyIHRvCi0gIGdldCB0aGUgcmlnaHQgcmVzdWx0IGluIGFsbCBjYXNlcy4KLQotKyBUaGluZ3MgcGlja2xlIGRvZXNuJ3Qga25vdyBldmVyeXRoaW5nIGFib3V0LiAgRXhhbXBsZXMgb2YgdGhpbmdzIHBpY2tsZQotICBkb2VzIGtub3cgZXZlcnl0aGluZyBhYm91dCBhcmUgUHl0aG9uJ3MgYnVpbHRpbiBzY2FsYXIgYW5kIGNvbnRhaW5lcgotICB0eXBlcywgbGlrZSBpbnRzIGFuZCB0dXBsZXMuICBUaGV5IGdlbmVyYWxseSBoYXZlIG9wY29kZXMgZGVkaWNhdGVkIHRvCi0gIHRoZW0uICBGb3IgdGhpbmdzIGxpa2UgbW9kdWxlIHJlZmVyZW5jZXMgYW5kIGluc3RhbmNlcyBvZiB1c2VyLWRlZmluZWQKLSAgY2xhc3NlcywgcGlja2xlJ3Mga25vd2xlZGdlIGlzIGxpbWl0ZWQuICBIaXN0b3JpY2FsbHksIG1hbnkgZW5oYW5jZW1lbnRzCi0gIGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBwaWNrbGUgcHJvdG9jb2wgaW4gb3JkZXIgdG8gZG8gYSBiZXR0ZXIgKGZhc3RlciwKLSAgYW5kL29yIG1vcmUgY29tcGFjdCkgam9iIG9uIHRob3NlLgotCi0rIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYW5kIG1pY3JvLW9wdGltaXphdGlvbi4gIEFzIGV4cGxhaW5lZCBiZWxvdywKLSAgcGlja2xlIG9wY29kZXMgbmV2ZXIgZ28gYXdheSwgbm90IGV2ZW4gd2hlbiBiZXR0ZXIgd2F5cyB0byBkbyBhIHRoaW5nCi0gIGdldCBpbnZlbnRlZC4gIFRoZSByZXBlcnRvaXJlIG9mIHRoZSBQTSBqdXN0IGtlZXBzIGdyb3dpbmcgb3ZlciB0aW1lLgotICBGb3IgZXhhbXBsZSwgcHJvdG9jb2wgMCBoYWQgdHdvIG9wY29kZXMgZm9yIGJ1aWxkaW5nIFB5dGhvbiBpbnRlZ2VycyAoSU5UCi0gIGFuZCBMT05HKSwgcHJvdG9jb2wgMSBhZGRlZCB0aHJlZSBtb3JlIGZvciBtb3JlLWVmZmljaWVudCBwaWNrbGluZyBvZiBzaG9ydAotICBpbnRlZ2VycywgYW5kIHByb3RvY29sIDIgYWRkZWQgdHdvIG1vcmUgZm9yIG1vcmUtZWZmaWNpZW50IHBpY2tsaW5nIG9mCi0gIGxvbmcgaW50ZWdlcnMgKGJlZm9yZSBwcm90b2NvbCAyLCB0aGUgb25seSB3YXlzIHRvIHBpY2tsZSBhIFB5dGhvbiBsb25nCi0gIHRvb2sgdGltZSBxdWFkcmF0aWMgaW4gdGhlIG51bWJlciBvZiBkaWdpdHMsIGZvciBib3RoIHBpY2tsaW5nIGFuZAotICB1bnBpY2tsaW5nKS4gICJPcGNvZGUgYmxvYXQiIGlzbid0IHNvIG11Y2ggYSBzdWJ0bGV0eSBhcyBhIHNvdXJjZSBvZgotICB3ZWFyeWluZyBjb21wbGljYXRpb24uCi0KLQotUGlja2xlIHByb3RvY29sczoKLQotRm9yIGNvbXBhdGliaWxpdHksIHRoZSBtZWFuaW5nIG9mIGEgcGlja2xlIG9wY29kZSBuZXZlciBjaGFuZ2VzLiAgSW5zdGVhZCBuZXcKLXBpY2tsZSBvcGNvZGVzIGdldCBhZGRlZCwgYW5kIGVhY2ggdmVyc2lvbidzIHVucGlja2xlciBjYW4gaGFuZGxlIGFsbCB0aGUKLXBpY2tsZSBvcGNvZGVzIGluIGFsbCBwcm90b2NvbCB2ZXJzaW9ucyB0byBkYXRlLiAgU28gb2xkIHBpY2tsZXMgY29udGludWUgdG8KLWJlIHJlYWRhYmxlIGZvcmV2ZXIuICBUaGUgcGlja2xlciBjYW4gZ2VuZXJhbGx5IGJlIHRvbGQgdG8gcmVzdHJpY3QgaXRzZWxmIHRvCi10aGUgc3Vic2V0IG9mIG9wY29kZXMgYXZhaWxhYmxlIHVuZGVyIHByZXZpb3VzIHByb3RvY29sIHZlcnNpb25zIHRvbywgc28gdGhhdAotdXNlcnMgY2FuIGNyZWF0ZSBwaWNrbGVzIHVuZGVyIHRoZSBjdXJyZW50IHZlcnNpb24gcmVhZGFibGUgYnkgb2xkZXIKLXZlcnNpb25zLiAgSG93ZXZlciwgYSBwaWNrbGUgZG9lcyBub3QgY29udGFpbiBpdHMgdmVyc2lvbiBudW1iZXIgZW1iZWRkZWQKLXdpdGhpbiBpdC4gIElmIGFuIG9sZGVyIHVucGlja2xlciB0cmllcyB0byByZWFkIGEgcGlja2xlIHVzaW5nIGEgbGF0ZXIKLXByb3RvY29sLCB0aGUgcmVzdWx0IGlzIG1vc3QgbGlrZWx5IGFuIGV4Y2VwdGlvbiBkdWUgdG8gc2VlaW5nIGFuIHVua25vd24gKGluCi10aGUgb2xkZXIgdW5waWNrbGVyKSBvcGNvZGUuCi0KLVRoZSBvcmlnaW5hbCBwaWNrbGUgdXNlZCB3aGF0J3Mgbm93IGNhbGxlZCAicHJvdG9jb2wgMCIsIGFuZCB3aGF0IHdhcyBjYWxsZWQKLSJ0ZXh0IG1vZGUiIGJlZm9yZSBQeXRob24gMi4zLiAgVGhlIGVudGlyZSBwaWNrbGUgYnl0ZXN0cmVhbSBpcyBtYWRlIHVwIG9mCi1wcmludGFibGUgNy1iaXQgQVNDSUkgY2hhcmFjdGVycywgcGx1cyB0aGUgbmV3bGluZSBjaGFyYWN0ZXIsIGluIHByb3RvY29sIDAuCi1UaGF0J3Mgd2h5IGl0IHdhcyBjYWxsZWQgdGV4dCBtb2RlLiAgUHJvdG9jb2wgMCBpcyBzbWFsbCBhbmQgZWxlZ2FudCwgYnV0Ci1zb21ldGltZXMgcGFpbmZ1bGx5IGluZWZmaWNpZW50LgotCi1UaGUgc2Vjb25kIG1ham9yIHNldCBvZiBhZGRpdGlvbnMgaXMgbm93IGNhbGxlZCAicHJvdG9jb2wgMSIsIGFuZCB3YXMgY2FsbGVkCi0iYmluYXJ5IG1vZGUiIGJlZm9yZSBQeXRob24gMi4zLiAgVGhpcyBhZGRlZCBtYW55IG9wY29kZXMgd2l0aCBhcmd1bWVudHMKLWNvbnNpc3Rpbmcgb2YgYXJiaXRyYXJ5IGJ5dGVzLCBpbmNsdWRpbmcgTlVMIGJ5dGVzIGFuZCB1bnByaW50YWJsZSAiaGlnaCBiaXQiCi1ieXRlcy4gIEJpbmFyeSBtb2RlIHBpY2tsZXMgY2FuIGJlIHN1YnN0YW50aWFsbHkgc21hbGxlciB0aGFuIGVxdWl2YWxlbnQKLXRleHQgbW9kZSBwaWNrbGVzLCBhbmQgc29tZXRpbWVzIGZhc3RlciB0b287IGUuZy4sIEJJTklOVCByZXByZXNlbnRzIGEgNC1ieXRlCi1pbnQgYXMgNCBieXRlcyBmb2xsb3dpbmcgdGhlIG9wY29kZSwgd2hpY2ggaXMgY2hlYXBlciB0byB1bnBpY2tsZSB0aGFuIHRoZQotKHBlcmhhcHMpIDExLWNoYXJhY3RlciBkZWNpbWFsIHN0cmluZyBhdHRhY2hlZCB0byBJTlQuICBQcm90b2NvbCAxIGFsc28gYWRkZWQKLWEgbnVtYmVyIG9mIG9wY29kZXMgdGhhdCBvcGVyYXRlIG9uIG1hbnkgc3RhY2sgZWxlbWVudHMgYXQgb25jZSAobGlrZSBBUFBFTkRTCi1hbmQgU0VUSVRFTVMpLCBhbmQgInNob3J0Y3V0IiBvcGNvZGVzIChsaWtlIEVNUFRZX0RJQ1QgYW5kIEVNUFRZX1RVUExFKS4KLQotVGhlIHRoaXJkIG1ham9yIHNldCBvZiBhZGRpdGlvbnMgY2FtZSBpbiBQeXRob24gMi4zLCBhbmQgaXMgY2FsbGVkICJwcm90b2NvbAotMiIuICBUaGlzIGFkZGVkOgotCi0tIEEgYmV0dGVyIHdheSB0byBwaWNrbGUgaW5zdGFuY2VzIG9mIG5ldy1zdHlsZSBjbGFzc2VzIChORVdPQkopLgotCi0tIEEgd2F5IGZvciBhIHBpY2tsZSB0byBpZGVudGlmeSBpdHMgcHJvdG9jb2wgKFBST1RPKS4KLQotLSBUaW1lLSBhbmQgc3BhY2UtIGVmZmljaWVudCBwaWNrbGluZyBvZiBsb25nIGludHMgKExPTkd7MSw0fSkuCi0KLS0gU2hvcnRjdXRzIGZvciBzbWFsbCB0dXBsZXMgKFRVUExFezEsMiwzfX0uCi0KLS0gRGVkaWNhdGVkIG9wY29kZXMgZm9yIGJvb2xzIChORVdUUlVFLCBORVdGQUxTRSkuCi0KLS0gVGhlICJleHRlbnNpb24gcmVnaXN0cnkiLCBhIHZlY3RvciBvZiBwb3B1bGFyIG9iamVjdHMgdGhhdCBjYW4gYmUgcHVzaGVkCi0gIGVmZmljaWVudGx5IGJ5IGluZGV4IChFWFR7MSwyLDR9KS4gIFRoaXMgaXMgYWtpbiB0byB0aGUgbWVtbyBhbmQgR0VULCBidXQKLSAgdGhlIHJlZ2lzdHJ5IGNvbnRlbnRzIGFyZSBwcmVkZWZpbmVkICh0aGVyZSdzIG5vdGhpbmcgYWtpbiB0byB0aGUgbWVtbydzCi0gIFBVVCkuCi0KLUFub3RoZXIgaW5kZXBlbmRlbnQgY2hhbmdlIHdpdGggUHl0aG9uIDIuMyBpcyB0aGUgYWJhbmRvbm1lbnQgb2YgYW55Ci1wcmV0ZW5zZSB0aGF0IGl0IG1pZ2h0IGJlIHNhZmUgdG8gbG9hZCBwaWNrbGVzIHJlY2VpdmVkIGZyb20gdW50cnVzdGVkCi1wYXJ0aWVzIC0tIG5vIHN1ZmZpY2llbnQgc2VjdXJpdHkgYW5hbHlzaXMgaGFzIGJlZW4gZG9uZSB0byBndWFyYW50ZWUKLXRoaXMgYW5kIHRoZXJlIGlzbid0IGEgdXNlIGNhc2UgdGhhdCB3YXJyYW50cyB0aGUgZXhwZW5zZSBvZiBzdWNoIGFuCi1hbmFseXNpcy4KLQotVG8gdGhpcyBlbmQsIGFsbCB0ZXN0cyBmb3IgX19zYWZlX2Zvcl91bnBpY2tsaW5nX18gb3IgZm9yCi1jb3B5cmVnLnNhZmVfY29uc3RydWN0b3JzIGFyZSByZW1vdmVkIGZyb20gdGhlIHVucGlja2xpbmcgY29kZS4KLVJlZmVyZW5jZXMgdG8gdGhlc2UgdmFyaWFibGVzIGluIHRoZSBkZXNjcmlwdGlvbnMgYmVsb3cgYXJlIHRvIGJlIHNlZW4KLWFzIGRlc2NyaWJpbmcgdW5waWNrbGluZyBpbiBQeXRob24gMi4yIGFuZCBiZWZvcmUuCi0iIiIKIAogIyBNZXRhLXJ1bGU6ICBEZXNjcmlwdGlvbnMgYXJlIHN0b3JlZCBpbiBpbnN0YW5jZXMgb2YgZGVzY3JpcHRvciBvYmplY3RzLAogIyB3aXRoIHBsYWluIGNvbnN0cnVjdG9ycy4gIE5vIG1ldGEtbGFuZ3VhZ2UgaXMgZGVmaW5lZCBmcm9tIHdoaWNoCmRpZmYgLS1naXQgYS9MaWIvcGtndXRpbC5weSBiL0xpYi9wa2d1dGlsLnB5CmluZGV4IDIwZTY0OTguLmQyYTZmMWUgMTAwNjQ0Ci0tLSBhL0xpYi9wa2d1dGlsLnB5CisrKyBiL0xpYi9wa2d1dGlsLnB5CkBAIC0xLDEyICsxLDEzIEBACiAiIiJVdGlsaXRpZXMgdG8gc3VwcG9ydCBwYWNrYWdlcy4iIiIKIAotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi1pbXBvcnQgaW1wb3J0bGliCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgc2luZ2xlZGlzcGF0Y2ggYXMgc2ltcGxlZ2VuZXJpYwogaW1wb3J0IGltcAoraW1wb3J0IGltcG9ydGxpYgoraW1wb3J0IG9zCiBpbXBvcnQgb3MucGF0aAotZnJvbSB3YXJuaW5ncyBpbXBvcnQgd2FybgoraW1wb3J0IHN5cwogZnJvbSB0eXBlcyBpbXBvcnQgTW9kdWxlVHlwZQorZnJvbSB3YXJuaW5ncyBpbXBvcnQgd2FybgogCiBfX2FsbF9fID0gWwogICAgICdnZXRfaW1wb3J0ZXInLCAnaXRlcl9pbXBvcnRlcnMnLCAnZ2V0X2xvYWRlcicsICdmaW5kX2xvYWRlcicsCkBAIC0yNyw0NiArMjgsNiBAQAogICAgIHJldHVybiBtYXJzaGFsLmxvYWQoc3RyZWFtKQogCiAKLWRlZiBzaW1wbGVnZW5lcmljKGZ1bmMpOgotICAgICIiIk1ha2UgYSB0cml2aWFsIHNpbmdsZS1kaXNwYXRjaCBnZW5lcmljIGZ1bmN0aW9uIiIiCi0gICAgcmVnaXN0cnkgPSB7fQotICAgIGRlZiB3cmFwcGVyKCphcmdzLCAqKmt3KToKLSAgICAgICAgb2IgPSBhcmdzWzBdCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNscyA9IG9iLl9fY2xhc3NfXwotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBjbHMgPSB0eXBlKG9iKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBtcm8gPSBjbHMuX19tcm9fXwotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgY2xhc3MgY2xzKGNscywgb2JqZWN0KToKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgICAgIG1ybyA9IGNscy5fX21yb19fWzE6XQotICAgICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKLSAgICAgICAgICAgICAgICBtcm8gPSBvYmplY3QsICAgIyBtdXN0IGJlIGFuIEV4dGVuc2lvbkNsYXNzIG9yIHNvbWUgc3VjaCAgOigKLSAgICAgICAgZm9yIHQgaW4gbXJvOgotICAgICAgICAgICAgaWYgdCBpbiByZWdpc3RyeToKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVnaXN0cnlbdF0oKmFyZ3MsICoqa3cpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gZnVuYygqYXJncywgKiprdykKLSAgICB0cnk6Ci0gICAgICAgIHdyYXBwZXIuX19uYW1lX18gPSBmdW5jLl9fbmFtZV9fCi0gICAgZXhjZXB0IChUeXBlRXJyb3IsIEF0dHJpYnV0ZUVycm9yKToKLSAgICAgICAgcGFzcyAgICAjIFB5dGhvbiAyLjMgZG9lc24ndCBhbGxvdyBmdW5jdGlvbnMgdG8gYmUgcmVuYW1lZAotCi0gICAgZGVmIHJlZ2lzdGVyKHR5cCwgZnVuYz1Ob25lKToKLSAgICAgICAgaWYgZnVuYyBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIGxhbWJkYSBmOiByZWdpc3Rlcih0eXAsIGYpCi0gICAgICAgIHJlZ2lzdHJ5W3R5cF0gPSBmdW5jCi0gICAgICAgIHJldHVybiBmdW5jCi0KLSAgICB3cmFwcGVyLl9fZGljdF9fID0gZnVuYy5fX2RpY3RfXwotICAgIHdyYXBwZXIuX19kb2NfXyA9IGZ1bmMuX19kb2NfXwotICAgIHdyYXBwZXIucmVnaXN0ZXIgPSByZWdpc3RlcgotICAgIHJldHVybiB3cmFwcGVyCi0KLQogZGVmIHdhbGtfcGFja2FnZXMocGF0aD1Ob25lLCBwcmVmaXg9JycsIG9uZXJyb3I9Tm9uZSk6CiAgICAgIiIiWWllbGRzIChtb2R1bGVfbG9hZGVyLCBuYW1lLCBpc3BrZykgZm9yIGFsbCBtb2R1bGVzIHJlY3Vyc2l2ZWx5CiAgICAgb24gcGF0aCwgb3IsIGlmIHBhdGggaXMgTm9uZSwgYWxsIGFjY2Vzc2libGUgbW9kdWxlcy4KQEAgLTEyMSw4ICs4Miw3IEBACiAgICAgICAgICAgICAgICAgIyBkb24ndCB0cmF2ZXJzZSBwYXRoIGl0ZW1zIHdlJ3ZlIHNlZW4gYmVmb3JlCiAgICAgICAgICAgICAgICAgcGF0aCA9IFtwIGZvciBwIGluIHBhdGggaWYgbm90IHNlZW4ocCldCiAKLSAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiB3YWxrX3BhY2thZ2VzKHBhdGgsIG5hbWUrJy4nLCBvbmVycm9yKToKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgaXRlbQorICAgICAgICAgICAgICAgIHlpZWxkIGZyb20gd2Fsa19wYWNrYWdlcyhwYXRoLCBuYW1lKycuJywgb25lcnJvcikKIAogCiBkZWYgaXRlcl9tb2R1bGVzKHBhdGg9Tm9uZSwgcHJlZml4PScnKToKQEAgLTE0OSwxMyArMTA5LDEyIEBACiAgICAgICAgICAgICAgICAgeWllbGQgaSwgbmFtZSwgaXNwa2cKIAogCi0jQHNpbXBsZWdlbmVyaWMKK0BzaW1wbGVnZW5lcmljCiBkZWYgaXRlcl9pbXBvcnRlcl9tb2R1bGVzKGltcG9ydGVyLCBwcmVmaXg9JycpOgogICAgIGlmIG5vdCBoYXNhdHRyKGltcG9ydGVyLCAnaXRlcl9tb2R1bGVzJyk6CiAgICAgICAgIHJldHVybiBbXQogICAgIHJldHVybiBpbXBvcnRlci5pdGVyX21vZHVsZXMocHJlZml4KQogCi1pdGVyX2ltcG9ydGVyX21vZHVsZXMgPSBzaW1wbGVnZW5lcmljKGl0ZXJfaW1wb3J0ZXJfbW9kdWxlcykKIAogIyBJbXBsZW1lbnQgYSBmaWxlIHdhbGtlciBmb3IgdGhlIG5vcm1hbCBpbXBvcnRsaWIgcGF0aCBob29rCiBkZWYgX2l0ZXJfZmlsZV9maW5kZXJfbW9kdWxlcyhpbXBvcnRlciwgcHJlZml4PScnKToKQEAgLTM1MCw5ICszMDksOCBAQAogICAgICAgICAgICAgICAgICAgICBzZWxmLmZpbGUuY2xvc2UoKQogICAgICAgICAgICAgZWxpZiBtb2RfdHlwZT09aW1wLlBZX0NPTVBJTEVEOgogICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHNlbGYuZmlsZW5hbWVbOi0xXSk6Ci0gICAgICAgICAgICAgICAgICAgIGYgPSBvcGVuKHNlbGYuZmlsZW5hbWVbOi0xXSwgJ3InKQotICAgICAgICAgICAgICAgICAgICBzZWxmLnNvdXJjZSA9IGYucmVhZCgpCi0gICAgICAgICAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICAgICAgICAgICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZVs6LTFdLCAncicpIGFzIGY6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNvdXJjZSA9IGYucmVhZCgpCiAgICAgICAgICAgICBlbGlmIG1vZF90eXBlPT1pbXAuUEtHX0RJUkVDVE9SWToKICAgICAgICAgICAgICAgICBzZWxmLnNvdXJjZSA9IHNlbGYuX2dldF9kZWxlZ2F0ZSgpLmdldF9zb3VyY2UoKQogICAgICAgICByZXR1cm4gc2VsZi5zb3VyY2UKQEAgLTQ1Niw4ICs0MTQsNyBAQAogICAgICAgICBpZiBwYXRoIGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4KICAgICBlbHNlOgotICAgICAgICBmb3IgaW1wb3J0ZXIgaW4gc3lzLm1ldGFfcGF0aDoKLSAgICAgICAgICAgIHlpZWxkIGltcG9ydGVyCisgICAgICAgIHlpZWxkIGZyb20gc3lzLm1ldGFfcGF0aAogICAgICAgICBwYXRoID0gc3lzLnBhdGgKICAgICBmb3IgaXRlbSBpbiBwYXRoOgogICAgICAgICB5aWVsZCBnZXRfaW1wb3J0ZXIoaXRlbSkKQEAgLTU4OSwxNiArNTQ2LDE2IEBACiAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKHBrZ2ZpbGUpOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGYgPSBvcGVuKHBrZ2ZpbGUpCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBtc2c6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBtc2c6CiAgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiQ2FuJ3Qgb3BlbiAlczogJXNcbiIgJQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBrZ2ZpbGUsIG1zZykpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIGY6Ci0gICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJzdHJpcCgnXG4nKQotICAgICAgICAgICAgICAgICAgICBpZiBub3QgbGluZSBvciBsaW5lLnN0YXJ0c3dpdGgoJyMnKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgICAgIHBhdGguYXBwZW5kKGxpbmUpICMgRG9uJ3QgY2hlY2sgZm9yIGV4aXN0ZW5jZSEKLSAgICAgICAgICAgICAgICBmLmNsb3NlKCkKKyAgICAgICAgICAgICAgICB3aXRoIGY6CisgICAgICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIGY6CisgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5yc3RyaXAoJ1xuJykKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBsaW5lIG9yIGxpbmUuc3RhcnRzd2l0aCgnIycpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmFwcGVuZChsaW5lKSAjIERvbid0IGNoZWNrIGZvciBleGlzdGVuY2UhCiAKICAgICByZXR1cm4gcGF0aAogCmRpZmYgLS1naXQgYS9MaWIvcGxhdC1vczJlbXgvSU4ucHkgYi9MaWIvcGxhdC1vczJlbXgvSU4ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1M2FlMjQuLjAwMDAwMDAKLS0tIGEvTGliL3BsYXQtb3MyZW14L0lOLnB5CisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotIyBHZW5lcmF0ZWQgYnkgaDJweSBmcm9tIGY6L2VteC9pbmNsdWRlL25ldGluZXQvaW4uaAotCi0jIEluY2x1ZGVkIGZyb20gc3lzL3BhcmFtLmgKLVBBR0VfU0laRSA9IDB4MTAwMAotSFogPSAxMDAKLU1BWE5BTUxFTiA9IDI2MAotTUFYUEFUSExFTiA9IDI2MAotZGVmIGh0b25sKFgpOiByZXR1cm4gX3N3YXBsKFgpCi0KLWRlZiBudG9obChYKTogcmV0dXJuIF9zd2FwbChYKQotCi1kZWYgaHRvbnMoWCk6IHJldHVybiBfc3dhcHMoWCkKLQotZGVmIG50b2hzKFgpOiByZXR1cm4gX3N3YXBzKFgpCi0KLUlQUFJPVE9fSVAgPSAwCi1JUFBST1RPX0lDTVAgPSAxCi1JUFBST1RPX0lHTVAgPSAyCi1JUFBST1RPX0dHUCA9IDMKLUlQUFJPVE9fVENQID0gNgotSVBQUk9UT19FR1AgPSA4Ci1JUFBST1RPX1BVUCA9IDEyCi1JUFBST1RPX1VEUCA9IDE3Ci1JUFBST1RPX0lEUCA9IDIyCi1JUFBST1RPX1RQID0gMjkKLUlQUFJPVE9fRU9OID0gODAKLUlQUFJPVE9fUkFXID0gMjU1Ci1JUFBST1RPX01BWCA9IDI1NgotSVBQT1JUX1JFU0VSVkVEID0gMTAyNAotSVBQT1JUX1VTRVJSRVNFUlZFRCA9IDUwMDAKLWRlZiBJTl9DTEFTU0EoaSk6IHJldHVybiAoKChpbnQpKGkpICYgMHg4MDAwMDAwMCkgPT0gMCkKLQotSU5fQ0xBU1NBX05FVCA9IDB4ZmYwMDAwMDAKLUlOX0NMQVNTQV9OU0hJRlQgPSAyNAotSU5fQ0xBU1NBX0hPU1QgPSAweDAwZmZmZmZmCi1JTl9DTEFTU0FfTUFYID0gMTI4Ci1kZWYgSU5fQ0xBU1NCKGkpOiByZXR1cm4gKCgoaW50KShpKSAmIDB4YzAwMDAwMDApID09IDB4ODAwMDAwMDApCi0KLUlOX0NMQVNTQl9ORVQgPSAweGZmZmYwMDAwCi1JTl9DTEFTU0JfTlNISUZUID0gMTYKLUlOX0NMQVNTQl9IT1NUID0gMHgwMDAwZmZmZgotSU5fQ0xBU1NCX01BWCA9IDY1NTM2Ci1kZWYgSU5fQ0xBU1NDKGkpOiByZXR1cm4gKCgoaW50KShpKSAmIDB4ZTAwMDAwMDApID09IDB4YzAwMDAwMDApCi0KLUlOX0NMQVNTQ19ORVQgPSAweGZmZmZmZjAwCi1JTl9DTEFTU0NfTlNISUZUID0gOAotSU5fQ0xBU1NDX0hPU1QgPSAweDAwMDAwMGZmCi1kZWYgSU5fQ0xBU1NEKGkpOiByZXR1cm4gKCgoaW50KShpKSAmIDB4ZjAwMDAwMDApID09IDB4ZTAwMDAwMDApCi0KLUlOX0NMQVNTRF9ORVQgPSAweGYwMDAwMDAwCi1JTl9DTEFTU0RfTlNISUZUID0gMjgKLUlOX0NMQVNTRF9IT1NUID0gMHgwZmZmZmZmZgotZGVmIElOX01VTFRJQ0FTVChpKTogcmV0dXJuIElOX0NMQVNTRChpKQotCi1kZWYgSU5fRVhQRVJJTUVOVEFMKGkpOiByZXR1cm4gKCgoaW50KShpKSAmIDB4ZTAwMDAwMDApID09IDB4ZTAwMDAwMDApCi0KLWRlZiBJTl9CQURDTEFTUyhpKTogcmV0dXJuICgoKGludCkoaSkgJiAweGYwMDAwMDAwKSA9PSAweGYwMDAwMDAwKQotCi1JTkFERFJfQU5ZID0gMHgwMDAwMDAwMAotSU5BRERSX0xPT1BCQUNLID0gMHg3ZjAwMDAwMQotSU5BRERSX0JST0FEQ0FTVCA9IDB4ZmZmZmZmZmYKLUlOQUREUl9OT05FID0gMHhmZmZmZmZmZgotSU5BRERSX1VOU1BFQ19HUk9VUCA9IDB4ZTAwMDAwMDAKLUlOQUREUl9BTExIT1NUU19HUk9VUCA9IDB4ZTAwMDAwMDEKLUlOQUREUl9NQVhfTE9DQUxfR1JPVVAgPSAweGUwMDAwMGZmCi1JTl9MT09QQkFDS05FVCA9IDEyNwotSVBfT1BUSU9OUyA9IDEKLUlQX01VTFRJQ0FTVF9JRiA9IDIKLUlQX01VTFRJQ0FTVF9UVEwgPSAzCi1JUF9NVUxUSUNBU1RfTE9PUCA9IDQKLUlQX0FERF9NRU1CRVJTSElQID0gNQotSVBfRFJPUF9NRU1CRVJTSElQID0gNgotSVBfSERSSU5DTCA9IDIKLUlQX1RPUyA9IDMKLUlQX1RUTCA9IDQKLUlQX1JFQ1ZPUFRTID0gNQotSVBfUkVDVlJFVE9QVFMgPSA2Ci1JUF9SRUNWRFNUQUREUiA9IDcKLUlQX1JFVE9QVFMgPSA4Ci1JUF9ERUZBVUxUX01VTFRJQ0FTVF9UVEwgPSAxCi1JUF9ERUZBVUxUX01VTFRJQ0FTVF9MT09QID0gMQotSVBfTUFYX01FTUJFUlNISVBTID0gMjAKZGlmZiAtLWdpdCBhL0xpYi9wbGF0LW9zMmVteC9TT0NLRVQucHkgYi9MaWIvcGxhdC1vczJlbXgvU09DS0VULnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYWM1OTRhLi4wMDAwMDAwCi0tLSBhL0xpYi9wbGF0LW9zMmVteC9TT0NLRVQucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotIyBHZW5lcmF0ZWQgYnkgaDJweSBmcm9tIGY6L2VteC9pbmNsdWRlL3N5cy9zb2NrZXQuaAotCi0jIEluY2x1ZGVkIGZyb20gc3lzL3R5cGVzLmgKLUZEX1NFVFNJWkUgPSAyNTYKLQotIyBJbmNsdWRlZCBmcm9tIHN5cy91aW8uaAotRlJFQUQgPSAxCi1GV1JJVEUgPSAyCi1TT0NLX1NUUkVBTSA9IDEKLVNPQ0tfREdSQU0gPSAyCi1TT0NLX1JBVyA9IDMKLVNPQ0tfUkRNID0gNAotU09DS19TRVFQQUNLRVQgPSA1Ci1TT19ERUJVRyA9IDB4MDAwMQotU09fQUNDRVBUQ09OTiA9IDB4MDAwMgotU09fUkVVU0VBRERSID0gMHgwMDA0Ci1TT19LRUVQQUxJVkUgPSAweDAwMDgKLVNPX0RPTlRST1VURSA9IDB4MDAxMAotU09fQlJPQURDQVNUID0gMHgwMDIwCi1TT19VU0VMT09QQkFDSyA9IDB4MDA0MAotU09fTElOR0VSID0gMHgwMDgwCi1TT19PT0JJTkxJTkUgPSAweDAxMDAKLVNPX0xfQlJPQURDQVNUID0gMHgwMjAwCi1TT19SQ1ZfU0hVVERPV04gPSAweDA0MDAKLVNPX1NORF9TSFVURE9XTiA9IDB4MDgwMAotU09fU05EQlVGID0gMHgxMDAxCi1TT19SQ1ZCVUYgPSAweDEwMDIKLVNPX1NORExPV0FUID0gMHgxMDAzCi1TT19SQ1ZMT1dBVCA9IDB4MTAwNAotU09fU05EVElNRU8gPSAweDEwMDUKLVNPX1JDVlRJTUVPID0gMHgxMDA2Ci1TT19FUlJPUiA9IDB4MTAwNwotU09fVFlQRSA9IDB4MTAwOAotU09fT1BUSU9OUyA9IDB4MTAxMAotU09MX1NPQ0tFVCA9IDB4ZmZmZgotQUZfVU5TUEVDID0gMAotQUZfVU5JWCA9IDEKLUFGX0lORVQgPSAyCi1BRl9JTVBMSU5LID0gMwotQUZfUFVQID0gNAotQUZfQ0hBT1MgPSA1Ci1BRl9OUyA9IDYKLUFGX05CUyA9IDcKLUFGX0lTTyA9IDcKLUFGX09TSSA9IEFGX0lTTwotQUZfRUNNQSA9IDgKLUFGX0RBVEFLSVQgPSA5Ci1BRl9DQ0lUVCA9IDEwCi1BRl9TTkEgPSAxMQotQUZfREVDbmV0ID0gMTIKLUFGX0RMSSA9IDEzCi1BRl9MQVQgPSAxNAotQUZfSFlMSU5LID0gMTUKLUFGX0FQUExFVEFMSyA9IDE2Ci1BRl9OQiA9IDE3Ci1BRl9ORVRCSU9TID0gQUZfTkIKLUFGX09TMiA9IEFGX1VOSVgKLUFGX01BWCA9IDE4Ci1QRl9VTlNQRUMgPSBBRl9VTlNQRUMKLVBGX1VOSVggPSBBRl9VTklYCi1QRl9JTkVUID0gQUZfSU5FVAotUEZfSU1QTElOSyA9IEFGX0lNUExJTksKLVBGX1BVUCA9IEFGX1BVUAotUEZfQ0hBT1MgPSBBRl9DSEFPUwotUEZfTlMgPSBBRl9OUwotUEZfTkJTID0gQUZfTkJTCi1QRl9JU08gPSBBRl9JU08KLVBGX09TSSA9IEFGX0lTTwotUEZfRUNNQSA9IEFGX0VDTUEKLVBGX0RBVEFLSVQgPSBBRl9EQVRBS0lUCi1QRl9DQ0lUVCA9IEFGX0NDSVRUCi1QRl9TTkEgPSBBRl9TTkEKLVBGX0RFQ25ldCA9IEFGX0RFQ25ldAotUEZfRExJID0gQUZfRExJCi1QRl9MQVQgPSBBRl9MQVQKLVBGX0hZTElOSyA9IEFGX0hZTElOSwotUEZfQVBQTEVUQUxLID0gQUZfQVBQTEVUQUxLCi1QRl9OQiA9IEFGX05CCi1QRl9ORVRCSU9TID0gQUZfTkIKLVBGX09TMiA9IEFGX1VOSVgKLVBGX01BWCA9IEFGX01BWAotU09NQVhDT05OID0gNQotTVNHX09PQiA9IDB4MQotTVNHX1BFRUsgPSAweDIKLU1TR19ET05UUk9VVEUgPSAweDQKLU1TR19FT1IgPSAweDgKLU1TR19UUlVOQyA9IDB4MTAKLU1TR19DVFJVTkMgPSAweDIwCi1NU0dfV0FJVEFMTCA9IDB4NDAKLU1TR19NQVhJT1ZMRU4gPSAxNgotU0NNX1JJR0hUUyA9IDB4MDEKLU1UX0ZSRUUgPSAwCi1NVF9EQVRBID0gMQotTVRfSEVBREVSID0gMgotTVRfU09DS0VUID0gMwotTVRfUENCID0gNAotTVRfUlRBQkxFID0gNQotTVRfSFRBQkxFID0gNgotTVRfQVRBQkxFID0gNwotTVRfU09OQU1FID0gOAotTVRfWk9NQklFID0gOQotTVRfU09PUFRTID0gMTAKLU1UX0ZUQUJMRSA9IDExCi1NVF9SSUdIVFMgPSAxMgotTVRfSUZBRERSID0gMTMKLU1BWFNPQ0tFVFMgPSAyMDQ4CmRpZmYgLS1naXQgYS9MaWIvcGxhdC1vczJlbXgvX2VteF9saW5rLnB5IGIvTGliL3BsYXQtb3MyZW14L19lbXhfbGluay5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDFlNmI1NC4uMDAwMDAwMAotLS0gYS9MaWIvcGxhdC1vczJlbXgvX2VteF9saW5rLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotIyBfZW14X2xpbmsucHkKLQotIyBXcml0dGVuIGJ5IEFuZHJldyBJIE1hY0ludHlyZSwgRGVjZW1iZXIgMjAwMi4KLQotIiIiX2VteF9saW5rLnB5IGlzIGEgc2ltcGxpc3RpYyBlbXVsYXRpb24gb2YgdGhlIFVuaXggbGluaygyKSBsaWJyYXJ5IHJvdXRpbmUKLWZvciBjcmVhdGluZyBzby1jYWxsZWQgaGFyZCBsaW5rcy4gIEl0IGlzIGludGVuZGVkIHRvIGJlIGltcG9ydGVkIGludG8KLXRoZSBvcyBtb2R1bGUgaW4gcGxhY2Ugb2YgdGhlIHVuaW1wbGVtZW50ZWQgKG9uIE9TLzIpIFBvc2l4IGxpbmsoKQotZnVuY3Rpb24gKG9zLmxpbmsoKSkuCi0KLVdlIGRvIHRoaXMgb24gT1MvMiBieSBpbXBsZW1lbnRpbmcgYSBmaWxlIGNvcHksIHdpdGggbGluaygyKSBzZW1hbnRpY3M6LQotICAtIHRoZSB0YXJnZXQgY2Fubm90IGFscmVhZHkgZXhpc3Q7Ci0gIC0gd2UgaG9wZSB0aGF0IHRoZSBhY3R1YWwgZmlsZSBvcGVuIChpZiBzdWNjZXNzZnVsKSBpcyBhY3R1YWxseQotICAgIGF0b21pYy4uLgotCi1MaW1pdGF0aW9ucyBvZiB0aGlzIGFwcHJvYWNoL2ltcGxlbWVudGF0aW9uIGluY2x1ZGU6LQotICAtIG5vIHN1cHBvcnQgZm9yIGNvcnJlY3QgbGluayBjb3VudHMgKEVNWCBzdGF0KHRhcmdldCkuc3RfbmxpbmsKLSAgICBpcyBhbHdheXMgMSk7Ci0gIC0gdGhyZWFkIHNhZmV0eSB1bmRlZmluZWQ7Ci0gIC0gZGVmYXVsdCBmaWxlIHBlcm1pc3Npb25zIChyK3cpIHVzZWQsIGNhbid0IGJlIG92ZXItcmlkZGVuOwotICAtIGltcGxlbWVudGVkIGluIFB5dGhvbiBzbyBjb21wYXJhdGl2ZWx5IHNsb3csIGVzcGVjaWFsbHkgZm9yIGxhcmdlCi0gICAgc291cmNlIGZpbGVzOwotICAtIG5lZWQgc3VmZmljaWVudCBmcmVlIGRpc2sgc3BhY2UgdG8gc3RvcmUgdGhlIGNvcHkuCi0KLUJlaGF2aW91cjotCi0gIC0gYW55IGV4Y2VwdGlvbiBzaG91bGQgcHJvcGFnYXRlIHRvIHRoZSBjYWxsZXI7Ci0gIC0gd2FudCB0YXJnZXQgdG8gYmUgYW4gZXhhY3QgY29weSBvZiB0aGUgc291cmNlLCBzbyB1c2UgYmluYXJ5IG1vZGU7Ci0gIC0gcmV0dXJucyBOb25lLCBzYW1lIGFzIG9zLmxpbmsoKSB3aGljaCBpcyBpbXBsZW1lbnRlZCBpbiBwb3NpeG1vZHVsZS5jOwotICAtIHRhcmdldCByZW1vdmVkIGluIHRoZSBldmVudCBvZiBhIGZhaWx1cmUgd2hlcmUgcG9zc2libGU7Ci0gIC0gZ2l2ZW4gdGhlIG1vdGl2YXRpb24gdG8gd3JpdGUgdGhpcyBlbXVsYXRpb24gY2FtZSBmcm9tIHRyeWluZyB0bwotICAgIHN1cHBvcnQgYSBVbml4IHJlc291cmNlIGxvY2sgaW1wbGVtZW50YXRpb24sIHdoZXJlIG1pbmltYWwgb3ZlcmhlYWQKLSAgICBkdXJpbmcgY3JlYXRpb24gb2YgdGhlIHRhcmdldCBpcyBkZXNpcmFibGUgYW5kIHRoZSBmaWxlcyBhcmUgc21hbGwsCi0gICAgd2UgcmVhZCBhIHNvdXJjZSBibG9jayBiZWZvcmUgYXR0ZW1wdGluZyB0byBjcmVhdGUgdGhlIHRhcmdldCBzbyB0aGF0Ci0gICAgd2UncmUgcmVhZHkgdG8gaW1tZWRpYXRlbHkgd3JpdGUgc29tZSBkYXRhIGludG8gaXQuCi0iIiIKLQotaW1wb3J0IG9zCi1pbXBvcnQgZXJybm8KLQotX19hbGxfXyA9IFsnbGluayddCi0KLWRlZiBsaW5rKHNvdXJjZSwgdGFyZ2V0KToKLSAgICAiIiJsaW5rKHNvdXJjZSwgdGFyZ2V0KSAtPiBOb25lCi0KLSAgICBBdHRlbXB0IHRvIGhhcmQgbGluayB0aGUgc291cmNlIGZpbGUgdG8gdGhlIHRhcmdldCBmaWxlIG5hbWUuCi0gICAgT24gT1MvMiwgdGhpcyBjcmVhdGVzIGEgY29tcGxldGUgY29weSBvZiB0aGUgc291cmNlIGZpbGUuCi0gICAgIiIiCi0KLSAgICBzID0gb3Mub3Blbihzb3VyY2UsIG9zLk9fUkRPTkxZIHwgb3MuT19CSU5BUlkpCi0gICAgaWYgb3MuaXNhdHR5KHMpOgotICAgICAgICByYWlzZSBPU0Vycm9yKGVycm5vLkVYREVWLCAnQ3Jvc3MtZGV2aWNlIGxpbmsnKQotICAgIGRhdGEgPSBvcy5yZWFkKHMsIDEwMjQpCi0KLSAgICB0cnk6Ci0gICAgICAgIHQgPSBvcy5vcGVuKHRhcmdldCwgb3MuT19XUk9OTFkgfCBvcy5PX0JJTkFSWSB8IG9zLk9fQ1JFQVQgfCBvcy5PX0VYQ0wpCi0gICAgZXhjZXB0IE9TRXJyb3I6Ci0gICAgICAgIG9zLmNsb3NlKHMpCi0gICAgICAgIHJhaXNlCi0KLSAgICB0cnk6Ci0gICAgICAgIHdoaWxlIGRhdGE6Ci0gICAgICAgICAgICBvcy53cml0ZSh0LCBkYXRhKQotICAgICAgICAgICAgZGF0YSA9IG9zLnJlYWQocywgMTAyNCkKLSAgICBleGNlcHQgT1NFcnJvcjoKLSAgICAgICAgb3MuY2xvc2UocykKLSAgICAgICAgb3MuY2xvc2UodCkKLSAgICAgICAgb3MudW5saW5rKHRhcmdldCkKLSAgICAgICAgcmFpc2UKLQotICAgIG9zLmNsb3NlKHMpCi0gICAgb3MuY2xvc2UodCkKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBpbXBvcnQgc3lzCi0gICAgdHJ5OgotICAgICAgICBsaW5rKHN5cy5hcmd2WzFdLCBzeXMuYXJndlsyXSkKLSAgICBleGNlcHQgSW5kZXhFcnJvcjoKLSAgICAgICAgcHJpbnQoJ1VzYWdlOiBlbXhfbGluayA8c291cmNlPiA8dGFyZ2V0PicpCi0gICAgZXhjZXB0IE9TRXJyb3I6Ci0gICAgICAgIHByaW50KCdlbXhfbGluazogJXMnICUgc3RyKHN5cy5leGNfaW5mbygpWzFdKSkKZGlmZiAtLWdpdCBhL0xpYi9wbGF0LW9zMmVteC9ncnAucHkgYi9MaWIvcGxhdC1vczJlbXgvZ3JwLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZTYzZWY4Li4wMDAwMDAwCi0tLSBhL0xpYi9wbGF0LW9zMmVteC9ncnAucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxODIgKzAsMCBAQAotIyB0aGlzIG1vZHVsZSBpcyBhbiBPUy8yIG9yaWVudGVkIHJlcGxhY2VtZW50IGZvciB0aGUgZ3JwIHN0YW5kYXJkCi0jIGV4dGVuc2lvbiBtb2R1bGUuCi0KLSMgd3JpdHRlbiBieSBBbmRyZXcgTWFjSW50eXJlLCBBcHJpbCAyMDAxLgotIyB1cGRhdGVkIEp1bHkgMjAwMywgYWRkaW5nIGZpZWxkIGFjY2Vzc29yIHN1cHBvcnQKLQotIyBub3RlIHRoYXQgdGhpcyBpbXBsZW1lbnRhdGlvbiBjaGVja3Mgd2hldGhlciAiOiIgb3IgIjsiIGFzIHVzZWQgYXMKLSMgdGhlIGZpZWxkIHNlcGFyYXRvciBjaGFyYWN0ZXIuCi0KLSIiIlJlcGxhY2VtZW50IGZvciBncnAgc3RhbmRhcmQgZXh0ZW5zaW9uIG1vZHVsZSwgaW50ZW5kZWQgZm9yIHVzZSBvbgotT1MvMiBhbmQgc2ltaWxhciBzeXN0ZW1zIHdoaWNoIGRvbid0IG5vcm1hbGx5IGhhdmUgYW4gL2V0Yy9ncm91cCBmaWxlLgotCi1UaGUgc3RhbmRhcmQgVW5peCBncm91cCBkYXRhYmFzZSBpcyBhbiBBU0NJSSB0ZXh0IGZpbGUgd2l0aCA0IGZpZWxkcyBwZXIKLXJlY29yZCAobGluZSksIHNlcGFyYXRlZCBieSBhIGNvbG9uOgotICAtIGdyb3VwIG5hbWUgKHN0cmluZykKLSAgLSBncm91cCBwYXNzd29yZCAob3B0aW9uYWwgZW5jcnlwdGVkIHN0cmluZykKLSAgLSBncm91cCBpZCAoaW50ZWdlcikKLSAgLSBncm91cCBtZW1iZXJzIChjb21tYSBkZWxpbWl0ZWQgbGlzdCBvZiB1c2VyaWRzLCB3aXRoIG5vIHNwYWNlcykKLQotTm90ZSB0aGF0IG1lbWJlcnMgYXJlIG9ubHkgaW5jbHVkZWQgaW4gdGhlIGdyb3VwIGZpbGUgZm9yIGdyb3VwcyB0aGF0Ci1hcmVuJ3QgdGhlaXIgcHJpbWFyeSBncm91cHMuCi0oc2VlIHRoZSBzZWN0aW9uIDguMiBvZiB0aGUgUHl0aG9uIExpYnJhcnkgUmVmZXJlbmNlKQotCi1UaGlzIGltcGxlbWVudGF0aW9uIGRpZmZlcnMgZnJvbSB0aGUgc3RhbmRhcmQgVW5peCBpbXBsZW1lbnRhdGlvbiBieQotYWxsb3dpbmcgdXNlIG9mIHRoZSBwbGF0Zm9ybSdzIG5hdGl2ZSBwYXRoIHNlcGFyYXRvciBjaGFyYWN0ZXIgLSAnOycgb24gT1MvMiwKLURPUyBhbmQgTVMtV2luZG93cyAtIGFzIHRoZSBmaWVsZCBzZXBhcmF0b3IgaW4gYWRkaXRpb24gdG8gdGhlIFVuaXgKLXN0YW5kYXJkICI6Ii4KLQotVGhlIG1vZHVsZSBsb29rcyBmb3IgdGhlIGdyb3VwIGRhdGFiYXNlIGF0IHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zCi0oaW4gb3JkZXIgZmlyc3QgdG8gbGFzdCk6Ci0gIC0gJHtFVENfR1JPVVB9ICAgICAgICAgICAgICAob3IgJUVUQ19HUk9VUCUpCi0gIC0gJHtFVEN9L2dyb3VwICAgICAgICAgICAgICAob3IgJUVUQyUvZ3JvdXApCi0gIC0gJHtQWVRIT05IT01FfS9FdGMvZ3JvdXAgICAob3IgJVBZVEhPTkhPTUUlL0V0Yy9ncm91cCkKLQotQ2xhc3NlcwotLS0tLS0tLQotCi1Ob25lCi0KLUZ1bmN0aW9ucwotLS0tLS0tLS0tCi0KLWdldGdyZ2lkKGdpZCkgLSAgcmV0dXJuIHRoZSByZWNvcmQgZm9yIGdyb3VwLWlkIGdpZCBhcyBhIDQtdHVwbGUKLQotZ2V0Z3JuYW0obmFtZSkgLSByZXR1cm4gdGhlIHJlY29yZCBmb3IgZ3JvdXAgJ25hbWUnIGFzIGEgNC10dXBsZQotCi1nZXRncmFsbCgpIC0gICAgIHJldHVybiBhIGxpc3Qgb2YgNC10dXBsZXMsIGVhY2ggdHVwbGUgYmVpbmcgb25lIHJlY29yZAotICAgICAgICAgICAgICAgICAoTk9URTogdGhlIG9yZGVyIGlzIGFyYml0cmFyeSkKLQotQXR0cmlidXRlcwotLS0tLS0tLS0tLQotCi1ncm91cF9maWxlIC0gICAgIHRoZSBwYXRoIG9mIHRoZSBncm91cCBkYXRhYmFzZSBmaWxlCi0KLSIiIgotCi1pbXBvcnQgb3MKLQotIyB0cnkgYW5kIGZpbmQgdGhlIGdyb3VwIGZpbGUKLV9fZ3JvdXBfcGF0aCA9IFtdCi1pZiAnRVRDX0dST1VQJyBpbiBvcy5lbnZpcm9uOgotICAgIF9fZ3JvdXBfcGF0aC5hcHBlbmQob3MuZW52aXJvblsnRVRDX0dST1VQJ10pCi1pZiAnRVRDJyBpbiBvcy5lbnZpcm9uOgotICAgIF9fZ3JvdXBfcGF0aC5hcHBlbmQoJyVzL2dyb3VwJyAlIG9zLmVudmlyb25bJ0VUQyddKQotaWYgJ1BZVEhPTkhPTUUnIGluIG9zLmVudmlyb246Ci0gICAgX19ncm91cF9wYXRoLmFwcGVuZCgnJXMvRXRjL2dyb3VwJyAlIG9zLmVudmlyb25bJ1BZVEhPTkhPTUUnXSkKLQotZ3JvdXBfZmlsZSA9IE5vbmUKLWZvciBfX2kgaW4gX19ncm91cF9wYXRoOgotICAgIHRyeToKLSAgICAgICAgX19mID0gb3BlbihfX2ksICdyJykKLSAgICAgICAgX19mLmNsb3NlKCkKLSAgICAgICAgZ3JvdXBfZmlsZSA9IF9faQotICAgICAgICBicmVhawotICAgIGV4Y2VwdDoKLSAgICAgICAgcGFzcwotCi0jIGRlY2lkZSB3aGF0IGZpZWxkIHNlcGFyYXRvciB3ZSBjYW4gdHJ5IHRvIHVzZSAtIFVuaXggc3RhbmRhcmQsIHdpdGgKLSMgdGhlIHBsYXRmb3JtJ3MgcGF0aCBzZXBhcmF0b3IgYXMgYW4gb3B0aW9uLiAgTm8gc3BlY2lhbCBmaWVsZCBjb252ZXJzaW9uCi0jIGhhbmRsZXJzIGFyZSByZXF1aXJlZCBmb3IgdGhlIGdyb3VwIGZpbGUuCi1fX2ZpZWxkX3NlcCA9IFsnOiddCi1pZiBvcy5wYXRoc2VwOgotICAgIGlmIG9zLnBhdGhzZXAgIT0gJzonOgotICAgICAgICBfX2ZpZWxkX3NlcC5hcHBlbmQob3MucGF0aHNlcCkKLQotIyBoZWxwZXIgcm91dGluZSB0byBpZGVudGlmeSB3aGljaCBzZXBhcmF0b3IgY2hhcmFjdGVyIGlzIGluIHVzZQotZGVmIF9fZ2V0X2ZpZWxkX3NlcChyZWNvcmQpOgotICAgIGZzID0gTm9uZQotICAgIGZvciBjIGluIF9fZmllbGRfc2VwOgotICAgICAgICAjIHRoZXJlIHNob3VsZCBiZSAzIGRlbGltaXRlciBjaGFyYWN0ZXJzIChmb3IgNCBmaWVsZHMpCi0gICAgICAgIGlmIHJlY29yZC5jb3VudChjKSA9PSAzOgotICAgICAgICAgICAgZnMgPSBjCi0gICAgICAgICAgICBicmVhawotICAgIGlmIGZzOgotICAgICAgICByZXR1cm4gZnMKLSAgICBlbHNlOgotICAgICAgICByYWlzZSBLZXlFcnJvcignPj4gZ3JvdXAgZGF0YWJhc2UgZmllbGRzIG5vdCBkZWxpbWl0ZWQgPDwnKQotCi0jIGNsYXNzIHRvIG1hdGNoIHRoZSBuZXcgcmVjb3JkIGZpZWxkIG5hbWUgYWNjZXNzb3JzLgotIyB0aGUgcmVzdWx0aW5nIG9iamVjdCBpcyBpbnRlbmRlZCB0byBiZWhhdmUgbGlrZSBhIHJlYWQtb25seSB0dXBsZSwKLSMgd2l0aCBlYWNoIG1lbWJlciBhbHNvIGFjY2Vzc2libGUgYnkgYSBmaWVsZCBuYW1lLgotY2xhc3MgR3JvdXA6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBhc3N3ZCwgZ2lkLCBtZW0pOgotICAgICAgICBzZWxmLl9fZGljdF9fWydncl9uYW1lJ10gPSBuYW1lCi0gICAgICAgIHNlbGYuX19kaWN0X19bJ2dyX3Bhc3N3ZCddID0gcGFzc3dkCi0gICAgICAgIHNlbGYuX19kaWN0X19bJ2dyX2dpZCddID0gZ2lkCi0gICAgICAgIHNlbGYuX19kaWN0X19bJ2dyX21lbSddID0gbWVtCi0gICAgICAgIHNlbGYuX19kaWN0X19bJ19yZWNvcmQnXSA9IChzZWxmLmdyX25hbWUsIHNlbGYuZ3JfcGFzc3dkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5ncl9naWQsIHNlbGYuZ3JfbWVtKQotCi0gICAgZGVmIF9fbGVuX18oc2VsZik6Ci0gICAgICAgIHJldHVybiA0Ci0KLSAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlY29yZFtrZXldCi0KLSAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwgbmFtZSwgdmFsdWUpOgotICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcignYXR0cmlidXRlIHJlYWQtb25seTogJXMnICUgbmFtZSkKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHN0cihzZWxmLl9yZWNvcmQpCi0KLSAgICBkZWYgX19jbXBfXyhzZWxmLCBvdGhlcik6Ci0gICAgICAgIHRoaXMgPSBzdHIoc2VsZi5fcmVjb3JkKQotICAgICAgICBpZiB0aGlzID09IG90aGVyOgotICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgZWxpZiB0aGlzIDwgb3RoZXI6Ci0gICAgICAgICAgICByZXR1cm4gLTEKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiAxCi0KLQotIyByZWFkIHRoZSB3aG9sZSBmaWxlLCBwYXJzaW5nIGVhY2ggZW50cnkgaW50byB0dXBsZSBmb3JtCi0jIHdpdGggZGljdGlvbmFyaWVzIHRvIHNwZWVkIHJlY2FsbCBieSBHSUQgb3IgZ3JvdXAgbmFtZQotZGVmIF9fcmVhZF9ncm91cF9maWxlKCk6Ci0gICAgaWYgZ3JvdXBfZmlsZToKLSAgICAgICAgZ3JvdXAgPSBvcGVuKGdyb3VwX2ZpbGUsICdyJykKLSAgICBlbHNlOgotICAgICAgICByYWlzZSBLZXlFcnJvcignPj4gbm8gZ3JvdXAgZGF0YWJhc2UgPDwnKQotICAgIGdpZHggPSB7fQotICAgIG5hbXggPSB7fQotICAgIHNlcCA9IE5vbmUKLSAgICB3aGlsZSAxOgotICAgICAgICBlbnRyeSA9IGdyb3VwLnJlYWRsaW5lKCkuc3RyaXAoKQotICAgICAgICBpZiBsZW4oZW50cnkpID4gMzoKLSAgICAgICAgICAgIGlmIHNlcCBpcyBOb25lOgotICAgICAgICAgICAgICAgIHNlcCA9IF9fZ2V0X2ZpZWxkX3NlcChlbnRyeSkKLSAgICAgICAgICAgIGZpZWxkcyA9IGVudHJ5LnNwbGl0KHNlcCkKLSAgICAgICAgICAgIGZpZWxkc1syXSA9IGludChmaWVsZHNbMl0pCi0gICAgICAgICAgICBmaWVsZHNbM10gPSBbZi5zdHJpcCgpIGZvciBmIGluIGZpZWxkc1szXS5zcGxpdCgnLCcpXQotICAgICAgICAgICAgcmVjb3JkID0gR3JvdXAoKmZpZWxkcykKLSAgICAgICAgICAgIGlmIGZpZWxkc1syXSBub3QgaW4gZ2lkeDoKLSAgICAgICAgICAgICAgICBnaWR4W2ZpZWxkc1syXV0gPSByZWNvcmQKLSAgICAgICAgICAgIGlmIGZpZWxkc1swXSBub3QgaW4gbmFteDoKLSAgICAgICAgICAgICAgICBuYW14W2ZpZWxkc1swXV0gPSByZWNvcmQKLSAgICAgICAgZWxpZiBsZW4oZW50cnkpID4gMDoKLSAgICAgICAgICAgIHBhc3MgICAgICAgICAgICAgICAgICAgICAgICAgIyBza2lwIGVtcHR5IG9yIG1hbGZvcm1lZCByZWNvcmRzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBicmVhawotICAgIGdyb3VwLmNsb3NlKCkKLSAgICBpZiBsZW4oZ2lkeCkgPT0gMDoKLSAgICAgICAgcmFpc2UgS2V5RXJyb3IKLSAgICByZXR1cm4gKGdpZHgsIG5hbXgpCi0KLSMgcmV0dXJuIHRoZSBncm91cCBkYXRhYmFzZSBlbnRyeSBieSBHSUQKLWRlZiBnZXRncmdpZChnaWQpOgotICAgIGcsIG4gPSBfX3JlYWRfZ3JvdXBfZmlsZSgpCi0gICAgcmV0dXJuIGdbZ2lkXQotCi0jIHJldHVybiB0aGUgZ3JvdXAgZGF0YWJhc2UgZW50cnkgYnkgZ3JvdXAgbmFtZQotZGVmIGdldGdybmFtKG5hbWUpOgotICAgIGcsIG4gPSBfX3JlYWRfZ3JvdXBfZmlsZSgpCi0gICAgcmV0dXJuIG5bbmFtZV0KLQotIyByZXR1cm4gYWxsIHRoZSBncm91cCBkYXRhYmFzZSBlbnRyaWVzCi1kZWYgZ2V0Z3JhbGwoKToKLSAgICBnLCBuID0gX19yZWFkX2dyb3VwX2ZpbGUoKQotICAgIHJldHVybiBnLnZhbHVlcygpCi0KLSMgdGVzdCBoYXJuZXNzCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIGdldGdyYWxsKCkKZGlmZiAtLWdpdCBhL0xpYi9wbGF0LW9zMmVteC9wd2QucHkgYi9MaWIvcGxhdC1vczJlbXgvcHdkLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyY2IwNzdmLi4wMDAwMDAwCi0tLSBhL0xpYi9wbGF0LW9zMmVteC9wd2QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMDggKzAsMCBAQAotIyB0aGlzIG1vZHVsZSBpcyBhbiBPUy8yIG9yaWVudGVkIHJlcGxhY2VtZW50IGZvciB0aGUgcHdkIHN0YW5kYXJkCi0jIGV4dGVuc2lvbiBtb2R1bGUuCi0KLSMgd3JpdHRlbiBieSBBbmRyZXcgTWFjSW50eXJlLCBBcHJpbCAyMDAxLgotIyB1cGRhdGVkIEp1bHkgMjAwMywgYWRkaW5nIGZpZWxkIGFjY2Vzc29yIHN1cHBvcnQKLQotIyBub3RlIHRoYXQgdGhpcyBpbXBsZW1lbnRhdGlvbiBjaGVja3Mgd2hldGhlciAiOiIgb3IgIjsiIGFzIHVzZWQgYXMKLSMgdGhlIGZpZWxkIHNlcGFyYXRvciBjaGFyYWN0ZXIuICBQYXRoIGNvbnZlcnNpb25zIGFyZSBhcmUgYXBwbGllZCB3aGVuCi0jIHRoZSBkYXRhYmFzZSB1c2VzICI6IiBhcyB0aGUgZmllbGQgc2VwYXJhdG9yIGNoYXJhY3Rlci4KLQotIiIiUmVwbGFjZW1lbnQgZm9yIHB3ZCBzdGFuZGFyZCBleHRlbnNpb24gbW9kdWxlLCBpbnRlbmRlZCBmb3IgdXNlIG9uCi1PUy8yIGFuZCBzaW1pbGFyIHN5c3RlbXMgd2hpY2ggZG9uJ3Qgbm9ybWFsbHkgaGF2ZSBhbiAvZXRjL3Bhc3N3ZCBmaWxlLgotCi1UaGUgc3RhbmRhcmQgVW5peCBwYXNzd29yZCBkYXRhYmFzZSBpcyBhbiBBU0NJSSB0ZXh0IGZpbGUgd2l0aCA3IGZpZWxkcwotcGVyIHJlY29yZCAobGluZSksIHNlcGFyYXRlZCBieSBhIGNvbG9uOgotICAtIHVzZXIgbmFtZSAoc3RyaW5nKQotICAtIHBhc3N3b3JkIChlbmNyeXB0ZWQgc3RyaW5nLCBvciAiKiIgb3IgIiIpCi0gIC0gdXNlciBpZCAoaW50ZWdlcikKLSAgLSBncm91cCBpZCAoaW50ZWdlcikKLSAgLSBkZXNjcmlwdGlvbiAodXN1YWxseSB1c2VyJ3MgbmFtZSkKLSAgLSBob21lIGRpcmVjdG9yeSAocGF0aCB0byB1c2VyJ3MgaG9tZSBkaXJlY3RvcnkpCi0gIC0gc2hlbGwgKHBhdGggdG8gdGhlIHVzZXIncyBsb2dpbiBzaGVsbCkKLQotKHNlZSB0aGUgc2VjdGlvbiA4LjEgb2YgdGhlIFB5dGhvbiBMaWJyYXJ5IFJlZmVyZW5jZSkKLQotVGhpcyBpbXBsZW1lbnRhdGlvbiBkaWZmZXJzIGZyb20gdGhlIHN0YW5kYXJkIFVuaXggaW1wbGVtZW50YXRpb24gYnkKLWFsbG93aW5nIHVzZSBvZiB0aGUgcGxhdGZvcm0ncyBuYXRpdmUgcGF0aCBzZXBhcmF0b3IgY2hhcmFjdGVyIC0gJzsnIG9uIE9TLzIsCi1ET1MgYW5kIE1TLVdpbmRvd3MgLSBhcyB0aGUgZmllbGQgc2VwYXJhdG9yIGluIGFkZGl0aW9uIHRvIHRoZSBVbml4Ci1zdGFuZGFyZCAiOiIuICBBZGRpdGlvbmFsbHksIHdoZW4gIjoiIGlzIHRoZSBzZXBhcmF0b3IgcGF0aCBjb252ZXJzaW9ucwotYXJlIGFwcGxpZWQgdG8gZGVhbCB3aXRoIGFueSBtdW5naW5nIG9mIHRoZSBkcml2ZSBsZXR0ZXIgcmVmZXJlbmNlLgotCi1UaGUgbW9kdWxlIGxvb2tzIGZvciB0aGUgcGFzc3dvcmQgZGF0YWJhc2UgYXQgdGhlIGZvbGxvd2luZyBsb2NhdGlvbnMKLShpbiBvcmRlciBmaXJzdCB0byBsYXN0KToKLSAgLSAke0VUQ19QQVNTV0R9ICAgICAgICAgICAgIChvciAlRVRDX1BBU1NXRCUpCi0gIC0gJHtFVEN9L3Bhc3N3ZCAgICAgICAgICAgICAob3IgJUVUQyUvcGFzc3dkKQotICAtICR7UFlUSE9OSE9NRX0vRXRjL3Bhc3N3ZCAgKG9yICVQWVRIT05IT01FJS9FdGMvcGFzc3dkKQotCi1DbGFzc2VzCi0tLS0tLS0tCi0KLU5vbmUKLQotRnVuY3Rpb25zCi0tLS0tLS0tLS0KLQotZ2V0cHd1aWQodWlkKSAtICByZXR1cm4gdGhlIHJlY29yZCBmb3IgdXNlci1pZCB1aWQgYXMgYSA3LXR1cGxlCi0KLWdldHB3bmFtKG5hbWUpIC0gcmV0dXJuIHRoZSByZWNvcmQgZm9yIHVzZXIgJ25hbWUnIGFzIGEgNy10dXBsZQotCi1nZXRwd2FsbCgpIC0gICAgIHJldHVybiBhIGxpc3Qgb2YgNy10dXBsZXMsIGVhY2ggdHVwbGUgYmVpbmcgb25lIHJlY29yZAotICAgICAgICAgICAgICAgICAoTk9URTogdGhlIG9yZGVyIGlzIGFyYml0cmFyeSkKLQotQXR0cmlidXRlcwotLS0tLS0tLS0tLQotCi1wYXNzd2RfZmlsZSAtICAgIHRoZSBwYXRoIG9mIHRoZSBwYXNzd29yZCBkYXRhYmFzZSBmaWxlCi0KLSIiIgotCi1pbXBvcnQgb3MKLQotIyB0cnkgYW5kIGZpbmQgdGhlIHBhc3N3ZCBmaWxlCi1fX3Bhc3N3ZF9wYXRoID0gW10KLWlmICdFVENfUEFTU1dEJyBpbiBvcy5lbnZpcm9uOgotICAgIF9fcGFzc3dkX3BhdGguYXBwZW5kKG9zLmVudmlyb25bJ0VUQ19QQVNTV0QnXSkKLWlmICdFVEMnIGluIG9zLmVudmlyb246Ci0gICAgX19wYXNzd2RfcGF0aC5hcHBlbmQoJyVzL3Bhc3N3ZCcgJSBvcy5lbnZpcm9uWydFVEMnXSkKLWlmICdQWVRIT05IT01FJyBpbiBvcy5lbnZpcm9uOgotICAgIF9fcGFzc3dkX3BhdGguYXBwZW5kKCclcy9FdGMvcGFzc3dkJyAlIG9zLmVudmlyb25bJ1BZVEhPTkhPTUUnXSkKLQotcGFzc3dkX2ZpbGUgPSBOb25lCi1mb3IgX19pIGluIF9fcGFzc3dkX3BhdGg6Ci0gICAgdHJ5OgotICAgICAgICBfX2YgPSBvcGVuKF9faSwgJ3InKQotICAgICAgICBfX2YuY2xvc2UoKQotICAgICAgICBwYXNzd2RfZmlsZSA9IF9faQotICAgICAgICBicmVhawotICAgIGV4Y2VwdDoKLSAgICAgICAgcGFzcwotCi0jIHBhdGggY29udmVyc2lvbiBoYW5kbGVycwotZGVmIF9fbnVsbHBhdGhjb252KHBhdGgpOgotICAgIHJldHVybiBwYXRoLnJlcGxhY2Uob3MuYWx0c2VwLCBvcy5zZXApCi0KLWRlZiBfX3VuaXhwYXRoY29udihwYXRoKToKLSAgICAjIHR3byBrbm93biBkcml2ZSBsZXR0ZXIgdmFyaWF0aW9uczogIng7IiBhbmQgIiR4IgotICAgIGlmIHBhdGhbMF0gPT0gJyQnOgotICAgICAgICBjb252ID0gcGF0aFsxXSArICc6JyArIHBhdGhbMjpdCi0gICAgZWxpZiBwYXRoWzFdID09ICc7JzoKLSAgICAgICAgY29udiA9IHBhdGhbMF0gKyAnOicgKyBwYXRoWzI6XQotICAgIGVsc2U6Ci0gICAgICAgIGNvbnYgPSBwYXRoCi0gICAgcmV0dXJuIGNvbnYucmVwbGFjZShvcy5hbHRzZXAsIG9zLnNlcCkKLQotIyBkZWNpZGUgd2hhdCBmaWVsZCBzZXBhcmF0b3Igd2UgY2FuIHRyeSB0byB1c2UgLSBVbml4IHN0YW5kYXJkLCB3aXRoCi0jIHRoZSBwbGF0Zm9ybSdzIHBhdGggc2VwYXJhdG9yIGFzIGFuIG9wdGlvbi4gIE5vIHNwZWNpYWwgZmllbGQgY29udmVyc2lvbgotIyBoYW5kbGVyIGlzIHJlcXVpcmVkIHdoZW4gdXNpbmcgdGhlIHBsYXRmb3JtJ3MgcGF0aCBzZXBhcmF0b3IgYXMgZmllbGQKLSMgc2VwYXJhdG9yLCBidXQgYXJlIHJlcXVpcmVkIGZvciB0aGUgaG9tZSBkaXJlY3RvcnkgYW5kIHNoZWxsIGZpZWxkcyB3aGVuCi0jIHVzaW5nIHRoZSBzdGFuZGFyZCBVbml4ICgiOiIpIGZpZWxkIHNlcGFyYXRvci4KLV9fZmllbGRfc2VwID0geyc6JzogX191bml4cGF0aGNvbnZ9Ci1pZiBvcy5wYXRoc2VwOgotICAgIGlmIG9zLnBhdGhzZXAgIT0gJzonOgotICAgICAgICBfX2ZpZWxkX3NlcFtvcy5wYXRoc2VwXSA9IF9fbnVsbHBhdGhjb252Ci0KLSMgaGVscGVyIHJvdXRpbmUgdG8gaWRlbnRpZnkgd2hpY2ggc2VwYXJhdG9yIGNoYXJhY3RlciBpcyBpbiB1c2UKLWRlZiBfX2dldF9maWVsZF9zZXAocmVjb3JkKToKLSAgICBmcyA9IE5vbmUKLSAgICBmb3IgYyBpbiBfX2ZpZWxkX3NlcC5rZXlzKCk6Ci0gICAgICAgICMgdGhlcmUgc2hvdWxkIGJlIDYgZGVsaW1pdGVyIGNoYXJhY3RlcnMgKGZvciA3IGZpZWxkcykKLSAgICAgICAgaWYgcmVjb3JkLmNvdW50KGMpID09IDY6Ci0gICAgICAgICAgICBmcyA9IGMKLSAgICAgICAgICAgIGJyZWFrCi0gICAgaWYgZnM6Ci0gICAgICAgIHJldHVybiBmcwotICAgIGVsc2U6Ci0gICAgICAgIHJhaXNlIEtleUVycm9yKCc+PiBwYXNzd2QgZGF0YWJhc2UgZmllbGRzIG5vdCBkZWxpbWl0ZWQgPDwnKQotCi0jIGNsYXNzIHRvIG1hdGNoIHRoZSBuZXcgcmVjb3JkIGZpZWxkIG5hbWUgYWNjZXNzb3JzLgotIyB0aGUgcmVzdWx0aW5nIG9iamVjdCBpcyBpbnRlbmRlZCB0byBiZWhhdmUgbGlrZSBhIHJlYWQtb25seSB0dXBsZSwKLSMgd2l0aCBlYWNoIG1lbWJlciBhbHNvIGFjY2Vzc2libGUgYnkgYSBmaWVsZCBuYW1lLgotY2xhc3MgUGFzc3dkOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBwYXNzd2QsIHVpZCwgZ2lkLCBnZWNvcywgZGlyLCBzaGVsbCk6Ci0gICAgICAgIHNlbGYuX19kaWN0X19bJ3B3X25hbWUnXSA9IG5hbWUKLSAgICAgICAgc2VsZi5fX2RpY3RfX1sncHdfcGFzc3dkJ10gPSBwYXNzd2QKLSAgICAgICAgc2VsZi5fX2RpY3RfX1sncHdfdWlkJ10gPSB1aWQKLSAgICAgICAgc2VsZi5fX2RpY3RfX1sncHdfZ2lkJ10gPSBnaWQKLSAgICAgICAgc2VsZi5fX2RpY3RfX1sncHdfZ2Vjb3MnXSA9IGdlY29zCi0gICAgICAgIHNlbGYuX19kaWN0X19bJ3B3X2RpciddID0gZGlyCi0gICAgICAgIHNlbGYuX19kaWN0X19bJ3B3X3NoZWxsJ10gPSBzaGVsbAotICAgICAgICBzZWxmLl9fZGljdF9fWydfcmVjb3JkJ10gPSAoc2VsZi5wd19uYW1lLCBzZWxmLnB3X3Bhc3N3ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHdfdWlkLCBzZWxmLnB3X2dpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHdfZ2Vjb3MsIHNlbGYucHdfZGlyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wd19zaGVsbCkKLQotICAgIGRlZiBfX2xlbl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gNwotCi0gICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9yZWNvcmRba2V5XQotCi0gICAgZGVmIF9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKToKLSAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoJ2F0dHJpYnV0ZSByZWFkLW9ubHk6ICVzJyAlIG5hbWUpCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiBzdHIoc2VsZi5fcmVjb3JkKQotCi0gICAgZGVmIF9fY21wX18oc2VsZiwgb3RoZXIpOgotICAgICAgICB0aGlzID0gc3RyKHNlbGYuX3JlY29yZCkKLSAgICAgICAgaWYgdGhpcyA9PSBvdGhlcjoKLSAgICAgICAgICAgIHJldHVybiAwCi0gICAgICAgIGVsaWYgdGhpcyA8IG90aGVyOgotICAgICAgICAgICAgcmV0dXJuIC0xCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gMQotCi0KLSMgcmVhZCB0aGUgd2hvbGUgZmlsZSwgcGFyc2luZyBlYWNoIGVudHJ5IGludG8gdHVwbGUgZm9ybQotIyB3aXRoIGRpY3Rpb25hcmllcyB0byBzcGVlZCByZWNhbGwgYnkgVUlEIG9yIHBhc3N3ZCBuYW1lCi1kZWYgX19yZWFkX3Bhc3N3ZF9maWxlKCk6Ci0gICAgaWYgcGFzc3dkX2ZpbGU6Ci0gICAgICAgIHBhc3N3ZCA9IG9wZW4ocGFzc3dkX2ZpbGUsICdyJykKLSAgICBlbHNlOgotICAgICAgICByYWlzZSBLZXlFcnJvcignPj4gbm8gcGFzc3dvcmQgZGF0YWJhc2UgPDwnKQotICAgIHVpZHggPSB7fQotICAgIG5hbXggPSB7fQotICAgIHNlcCA9IE5vbmUKLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBlbnRyeSA9IHBhc3N3ZC5yZWFkbGluZSgpLnN0cmlwKCkKLSAgICAgICAgaWYgbGVuKGVudHJ5KSA+IDY6Ci0gICAgICAgICAgICBpZiBzZXAgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBzZXAgPSBfX2dldF9maWVsZF9zZXAoZW50cnkpCi0gICAgICAgICAgICBmaWVsZHMgPSBlbnRyeS5zcGxpdChzZXApCi0gICAgICAgICAgICBmb3IgaSBpbiAoMiwgMyk6Ci0gICAgICAgICAgICAgICAgZmllbGRzW2ldID0gaW50KGZpZWxkc1tpXSkKLSAgICAgICAgICAgIGZvciBpIGluICg1LCA2KToKLSAgICAgICAgICAgICAgICBmaWVsZHNbaV0gPSBfX2ZpZWxkX3NlcFtzZXBdKGZpZWxkc1tpXSkKLSAgICAgICAgICAgIHJlY29yZCA9IFBhc3N3ZCgqZmllbGRzKQotICAgICAgICAgICAgaWYgZmllbGRzWzJdIG5vdCBpbiB1aWR4OgotICAgICAgICAgICAgICAgIHVpZHhbZmllbGRzWzJdXSA9IHJlY29yZAotICAgICAgICAgICAgaWYgZmllbGRzWzBdIG5vdCBpbiBuYW14OgotICAgICAgICAgICAgICAgIG5hbXhbZmllbGRzWzBdXSA9IHJlY29yZAotICAgICAgICBlbGlmIGxlbihlbnRyeSkgPiAwOgotICAgICAgICAgICAgcGFzcyAgICAgICAgICAgICAgICAgICAgICAgICAjIHNraXAgZW1wdHkgb3IgbWFsZm9ybWVkIHJlY29yZHMKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGJyZWFrCi0gICAgcGFzc3dkLmNsb3NlKCkKLSAgICBpZiBsZW4odWlkeCkgPT0gMDoKLSAgICAgICAgcmFpc2UgS2V5RXJyb3IKLSAgICByZXR1cm4gKHVpZHgsIG5hbXgpCi0KLSMgcmV0dXJuIHRoZSBwYXNzd2QgZGF0YWJhc2UgZW50cnkgYnkgVUlECi1kZWYgZ2V0cHd1aWQodWlkKToKLSAgICB1LCBuID0gX19yZWFkX3Bhc3N3ZF9maWxlKCkKLSAgICByZXR1cm4gdVt1aWRdCi0KLSMgcmV0dXJuIHRoZSBwYXNzd2QgZGF0YWJhc2UgZW50cnkgYnkgcGFzc3dkIG5hbWUKLWRlZiBnZXRwd25hbShuYW1lKToKLSAgICB1LCBuID0gX19yZWFkX3Bhc3N3ZF9maWxlKCkKLSAgICByZXR1cm4gbltuYW1lXQotCi0jIHJldHVybiBhbGwgdGhlIHBhc3N3ZCBkYXRhYmFzZSBlbnRyaWVzCi1kZWYgZ2V0cHdhbGwoKToKLSAgICB1LCBuID0gX19yZWFkX3Bhc3N3ZF9maWxlKCkKLSAgICByZXR1cm4gbi52YWx1ZXMoKQotCi0jIHRlc3QgaGFybmVzcwotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBnZXRwd2FsbCgpCmRpZmYgLS1naXQgYS9MaWIvcGxhdC1vczJlbXgvcmVnZW4gYi9MaWIvcGxhdC1vczJlbXgvcmVnZW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDNlY2QyYTguLjAwMDAwMDAKLS0tIGEvTGliL3BsYXQtb3MyZW14L3JlZ2VuCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0jISAvYmluL3NoCi1leHBvcnQgSU5DTFVERT0kQ19JTkNMVURFX1BBVEgKLXNldCAtdgotcHl0aG9uLmV4ZSAuLi8uLi9Ub29scy9zY3JpcHRzL2gycHkucHkgJENfSU5DTFVERV9QQVRIL2ZjbnRsLmgKLXB5dGhvbi5leGUgLi4vLi4vVG9vbHMvc2NyaXB0cy9oMnB5LnB5ICRDX0lOQ0xVREVfUEFUSC9zeXMvc29ja2V0LmgKLXB5dGhvbi5leGUgLi4vLi4vVG9vbHMvc2NyaXB0cy9oMnB5LnB5IC1pICcodV9sb25nKScgJENfSU5DTFVERV9QQVRIL25ldGluZXQvaW4uaAotI3B5dGhvbi5leGUgLi4vLi4vVG9vbHMvc2NyaXB0cy9oMnB5LnB5ICRDX0lOQ0xVREVfUEFUSC90ZXJtaW9zLmgKZGlmZiAtLWdpdCBhL0xpYi9wbGF0Zm9ybS5weSBiL0xpYi9wbGF0Zm9ybS5weQppbmRleCAyYjhhMjRhLi5jNTRmNzY4IDEwMDc1NQotLS0gYS9MaWIvcGxhdGZvcm0ucHkKKysrIGIvTGliL3BsYXRmb3JtLnB5CkBAIC0xMjIsNyArMTIyLDcgQEAKIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKICAgICAjIG9zLmRldm51bGwgd2FzIGFkZGVkIGluIFB5dGhvbiAyLjQsIHNvIGVtdWxhdGUgaXQgZm9yIGVhcmxpZXIKICAgICAjIFB5dGhvbiB2ZXJzaW9ucwotICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoJ2RvcycsJ3dpbjMyJywnd2luMTYnLCdvczInKToKKyAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCdkb3MnLCd3aW4zMicsJ3dpbjE2Jyk6CiAgICAgICAgICMgVXNlIHRoZSBvbGQgQ1AvTSBOVUwgYXMgZGV2aWNlIG5hbWUKICAgICAgICAgREVWX05VTEwgPSAnTlVMJwogICAgIGVsc2U6CkBAIC0zMTYsNyArMzE2LDcgQEAKICAgICAiIiIKICAgICB0cnk6CiAgICAgICAgIGV0YyA9IG9zLmxpc3RkaXIoJy9ldGMnKQotICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgIyBQcm9iYWJseSBub3QgYSBVbml4IHN5c3RlbQogICAgICAgICByZXR1cm4gZGlzdG5hbWUsdmVyc2lvbixpZAogICAgIGV0Yy5zb3J0KCkKQEAgLTQwMywxMyArNDAzLDEzIEBACiAKIGRlZiBfc3lzY21kX3ZlcihzeXN0ZW09JycsIHJlbGVhc2U9JycsIHZlcnNpb249JycsCiAKLSAgICAgICAgICAgICAgIHN1cHBvcnRlZF9wbGF0Zm9ybXM9KCd3aW4zMicsJ3dpbjE2JywnZG9zJywnb3MyJykpOgorICAgICAgICAgICAgICAgc3VwcG9ydGVkX3BsYXRmb3Jtcz0oJ3dpbjMyJywnd2luMTYnLCdkb3MnKSk6CiAKICAgICAiIiIgVHJpZXMgdG8gZmlndXJlIG91dCB0aGUgT1MgdmVyc2lvbiB1c2VkIGFuZCByZXR1cm5zCiAgICAgICAgIGEgdHVwbGUgKHN5c3RlbSxyZWxlYXNlLHZlcnNpb24pLgogCiAgICAgICAgIEl0IHVzZXMgdGhlICJ2ZXIiIHNoZWxsIGNvbW1hbmQgZm9yIHRoaXMgd2hpY2ggaXMga25vd24KLSAgICAgICAgdG8gZXhpc3RzIG9uIFdpbmRvd3MsIERPUyBhbmQgT1MvMi4gWFhYIE90aGVycyB0b28gPworICAgICAgICB0byBleGlzdHMgb24gV2luZG93cywgRE9TLiBYWFggT3RoZXJzIHRvbyA/CiAKICAgICAgICAgSW4gY2FzZSB0aGlzIGZhaWxzLCB0aGUgZ2l2ZW4gcGFyYW1ldGVycyBhcmUgdXNlZCBhcwogICAgICAgICBkZWZhdWx0cy4KQEAgLTQyNCwxMyArNDI0LDEwIEBACiAgICAgICAgICAgICBwaXBlID0gcG9wZW4oY21kKQogICAgICAgICAgICAgaW5mbyA9IHBpcGUucmVhZCgpCiAgICAgICAgICAgICBpZiBwaXBlLmNsb3NlKCk6Ci0gICAgICAgICAgICAgICAgcmFpc2Ugb3MuZXJyb3IoJ2NvbW1hbmQgZmFpbGVkJykKKyAgICAgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCdjb21tYW5kIGZhaWxlZCcpCiAgICAgICAgICAgICAjIFhYWCBIb3cgY2FuIEkgc3VwcHJlc3Mgc2hlbGwgZXJyb3JzIGZyb20gYmVpbmcgd3JpdHRlbgogICAgICAgICAgICAgIyAgICAgdG8gc3RkZXJyID8KLSAgICAgICAgZXhjZXB0IG9zLmVycm9yIGFzIHdoeToKLSAgICAgICAgICAgICNwcmludCAnQ29tbWFuZCAlcyBmYWlsZWQ6ICVzJyAlIChjbWQsd2h5KQotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgd2h5OgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyB3aHk6CiAgICAgICAgICAgICAjcHJpbnQgJ0NvbW1hbmQgJXMgZmFpbGVkOiAlcycgJSAoY21kLHdoeSkKICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGVsc2U6CkBAIC01ODEsNyArNTc4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIyBEaXNjYXJkIGFueSB0eXBlIHRoYXQgaXNuJ3QgUkVHX1NaCiAgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUgPT0gUkVHX1NaIGFuZCBuYW1lLmZpbmQoIlNlcnZlciIpICE9IC0xOgogICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdF90eXBlID0gVkVSX05UX1NFUlZFUgotICAgICAgICAgICAgICAgIGV4Y2VwdCBXaW5kb3dzRXJyb3I6CisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgICMgVXNlIGRlZmF1bHQgb2YgVkVSX05UX1dPUktTVEFUSU9OCiAgICAgICAgICAgICAgICAgICAgIHBhc3MKIApAQCAtODgyLDcgKzg3OSw3IEBACiAgICAgICAgIHJldHVybiBkZWZhdWx0CiAgICAgdHJ5OgogICAgICAgICByZXR1cm4gc29ja2V0LmdldGhvc3RuYW1lKCkKLSAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAjIFN0aWxsIG5vdCB3b3JraW5nLi4uCiAgICAgICAgIHJldHVybiBkZWZhdWx0CiAKQEAgLTkwMSwxMiArODk4LDEyIEBACiAKICAgICAiIiIgSW50ZXJmYWNlIHRvIHRoZSBzeXN0ZW0ncyB1bmFtZSBjb21tYW5kLgogICAgICIiIgotICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoJ2RvcycsJ3dpbjMyJywnd2luMTYnLCdvczInKToKKyAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCdkb3MnLCd3aW4zMicsJ3dpbjE2Jyk6CiAgICAgICAgICMgWFhYIE90aGVycyB0b28gPwogICAgICAgICByZXR1cm4gZGVmYXVsdAogICAgIHRyeToKICAgICAgICAgZiA9IG9zLnBvcGVuKCd1bmFtZSAlcyAyPiAlcycgJSAob3B0aW9uLCBERVZfTlVMTCkpCi0gICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvcixvcy5lcnJvcik6CisgICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgT1NFcnJvcik6CiAgICAgICAgIHJldHVybiBkZWZhdWx0CiAgICAgb3V0cHV0ID0gZi5yZWFkKCkuc3RyaXAoKQogICAgIHJjID0gZi5jbG9zZSgpCkBAIC05MjQsNyArOTIxLDcgQEAKICAgICAgICAgZGVmYXVsdCBpbiBjYXNlIHRoZSBjb21tYW5kIHNob3VsZCBmYWlsLgogCiAgICAgIiIiCi0gICAgaWYgc3lzLnBsYXRmb3JtIGluICgnZG9zJywnd2luMzInLCd3aW4xNicsJ29zMicpOgorICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoJ2RvcycsJ3dpbjMyJywnd2luMTYnKToKICAgICAgICAgIyBYWFggT3RoZXJzIHRvbyA/CiAgICAgICAgIHJldHVybiBkZWZhdWx0CiAgICAgdGFyZ2V0ID0gX2ZvbGxvd19zeW1saW5rcyh0YXJnZXQpCkBAIC05MzIsNyArOTI5LDcgQEAKICAgICAgICAgcHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oWydmaWxlJywgdGFyZ2V0XSwKICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCiAKLSAgICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLG9zLmVycm9yKToKKyAgICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBPU0Vycm9yKToKICAgICAgICAgcmV0dXJuIGRlZmF1bHQKICAgICBvdXRwdXQgPSBwcm9jLmNvbW11bmljYXRlKClbMF0uZGVjb2RlKCdsYXRpbi0xJykKICAgICByYyA9IHByb2Mud2FpdCgpCmRpZmYgLS1naXQgYS9MaWIvcG9wbGliLnB5IGIvTGliL3BvcGxpYi5weQppbmRleCBkNDJkOWRkLi4wZjEyYWUyIDEwMDY0NAotLS0gYS9MaWIvcG9wbGliLnB5CisrKyBiL0xpYi9wb3BsaWIucHkKQEAgLTEzLDcgKzEzLDE1IEBACiAKICMgSW1wb3J0cwogCi1pbXBvcnQgcmUsIHNvY2tldAoraW1wb3J0IGVycm5vCitpbXBvcnQgcmUKK2ltcG9ydCBzb2NrZXQKKwordHJ5OgorICAgIGltcG9ydCBzc2wKKyAgICBIQVZFX1NTTCA9IFRydWUKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBIQVZFX1NTTCA9IEZhbHNlCiAKIF9fYWxsX18gPSBbIlBPUDMiLCJlcnJvcl9wcm90byJdCiAKQEAgLTU1LDYgKzYzLDggQEAKICAgICAgICAgICAgIEFQT1AgbmFtZSBkaWdlc3QgICAgICAgIGFwb3AobmFtZSwgZGlnZXN0KQogICAgICAgICAgICAgVE9QIG1zZyBuICAgICAgICAgICAgICAgdG9wKG1zZywgbikKICAgICAgICAgICAgIFVJREwgW21zZ10gICAgICAgICAgICAgIHVpZGwobXNnID0gTm9uZSkKKyAgICAgICAgICAgIENBUEEgICAgICAgICAgICAgICAgICAgIGNhcGEoKQorICAgICAgICAgICAgU1RMUyAgICAgICAgICAgICAgICAgICAgc3RscygpCiAKICAgICBSYWlzZXMgb25lIGV4Y2VwdGlvbjogJ2Vycm9yX3Byb3RvJy4KIApAQCAtODEsNiArOTEsNyBAQAogICAgICAgICAgICAgICAgICB0aW1lb3V0PXNvY2tldC5fR0xPQkFMX0RFRkFVTFRfVElNRU9VVCk6CiAgICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKICAgICAgICAgc2VsZi5wb3J0ID0gcG9ydAorICAgICAgICBzZWxmLl90bHNfZXN0YWJsaXNoZWQgPSBGYWxzZQogICAgICAgICBzZWxmLnNvY2sgPSBzZWxmLl9jcmVhdGVfc29ja2V0KHRpbWVvdXQpCiAgICAgICAgIHNlbGYuZmlsZSA9IHNlbGYuc29jay5tYWtlZmlsZSgncmInKQogICAgICAgICBzZWxmLl9kZWJ1Z2dpbmcgPSAwCkBAIC0yNTksNyArMjcwLDE0IEBACiAgICAgICAgIGlmIHNlbGYuZmlsZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHNlbGYuZmlsZS5jbG9zZSgpCiAgICAgICAgIGlmIHNlbGYuc29jayBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuc29jay5jbG9zZSgpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5zb2NrLnNodXRkb3duKHNvY2tldC5TSFVUX1JEV1IpCisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgICAgICMgVGhlIHNlcnZlciBtaWdodCBhbHJlYWR5IGhhdmUgY2xvc2VkIHRoZSBjb25uZWN0aW9uCisgICAgICAgICAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FTk9UQ09OTjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgc2VsZi5zb2NrLmNsb3NlKCkKICAgICAgICAgc2VsZi5maWxlID0gc2VsZi5zb2NrID0gTm9uZQogCiAgICAgI19fZGVsX18gPSBxdWl0CkBAIC0zMTUsMjEgKzMzMyw3MSBAQAogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Nob3J0Y21kKCdVSURMICVzJyAlIHdoaWNoKQogICAgICAgICByZXR1cm4gc2VsZi5fbG9uZ2NtZCgnVUlETCcpCiAKLXRyeToKLSAgICBpbXBvcnQgc3NsCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgcGFzcwotZWxzZToKKworICAgIGRlZiBjYXBhKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gc2VydmVyIGNhcGFiaWxpdGllcyAoUkZDIDI0NDkpIGFzIGEgZGljdGlvbmFyeQorICAgICAgICA+Pj4gYz1wb3BsaWIuUE9QMygnbG9jYWxob3N0JykKKyAgICAgICAgPj4+IGMuY2FwYSgpCisgICAgICAgIHsnSU1QTEVNRU5UQVRJT04nOiBbJ0N5cnVzJywgJ1BPUDMnLCAnc2VydmVyJywgJ3YyLjIuMTInXSwKKyAgICAgICAgICdUT1AnOiBbXSwgJ0xPR0lOLURFTEFZJzogWycwJ10sICdBVVRILVJFU1AtQ09ERSc6IFtdLAorICAgICAgICAgJ0VYUElSRSc6IFsnTkVWRVInXSwgJ1VTRVInOiBbXSwgJ1NUTFMnOiBbXSwgJ1BJUEVMSU5JTkcnOiBbXSwKKyAgICAgICAgICdVSURMJzogW10sICdSRVNQLUNPREVTJzogW119CisgICAgICAgID4+PgorCisgICAgICAgIFJlYWxseSwgYWNjb3JkaW5nIHRvIFJGQyAyNDQ5LCB0aGUgY3lydXMgZm9sa3Mgc2hvdWxkIGF2b2lkCisgICAgICAgIGhhdmluZyB0aGUgaW1wbGVtZW50YXRpb24gc3BsaXR0ZWQgaW50byBtdWx0aXBsZSBhcmd1bWVudHMuLi4KKyAgICAgICAgIiIiCisgICAgICAgIGRlZiBfcGFyc2VjYXAobGluZSk6CisgICAgICAgICAgICBsc3QgPSBsaW5lLmRlY29kZSgnYXNjaWknKS5zcGxpdCgpCisgICAgICAgICAgICByZXR1cm4gbHN0WzBdLCBsc3RbMTpdCisKKyAgICAgICAgY2FwcyA9IHt9CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3AgPSBzZWxmLl9sb25nY21kKCdDQVBBJykKKyAgICAgICAgICAgIHJhd2NhcHMgPSByZXNwWzFdCisgICAgICAgICAgICBmb3IgY2FwbGluZSBpbiByYXdjYXBzOgorICAgICAgICAgICAgICAgIGNhcG5tLCBjYXBhcmdzID0gX3BhcnNlY2FwKGNhcGxpbmUpCisgICAgICAgICAgICAgICAgY2Fwc1tjYXBubV0gPSBjYXBhcmdzCisgICAgICAgIGV4Y2VwdCBlcnJvcl9wcm90byBhcyBfZXJyOgorICAgICAgICAgICAgcmFpc2UgZXJyb3JfcHJvdG8oJy1FUlIgQ0FQQSBub3Qgc3VwcG9ydGVkIGJ5IHNlcnZlcicpCisgICAgICAgIHJldHVybiBjYXBzCisKKworICAgIGRlZiBzdGxzKHNlbGYsIGNvbnRleHQ9Tm9uZSk6CisgICAgICAgICIiIlN0YXJ0IGEgVExTIHNlc3Npb24gb24gdGhlIGFjdGl2ZSBjb25uZWN0aW9uIGFzIHNwZWNpZmllZCBpbiBSRkMgMjU5NS4KKworICAgICAgICAgICAgICAgIGNvbnRleHQgLSBhIHNzbC5TU0xDb250ZXh0CisgICAgICAgICIiIgorICAgICAgICBpZiBub3QgSEFWRV9TU0w6CisgICAgICAgICAgICByYWlzZSBlcnJvcl9wcm90bygnLUVSUiBUTFMgc3VwcG9ydCBtaXNzaW5nJykKKyAgICAgICAgaWYgc2VsZi5fdGxzX2VzdGFibGlzaGVkOgorICAgICAgICAgICAgcmFpc2UgZXJyb3JfcHJvdG8oJy1FUlIgVExTIHNlc3Npb24gYWxyZWFkeSBlc3RhYmxpc2hlZCcpCisgICAgICAgIGNhcHMgPSBzZWxmLmNhcGEoKQorICAgICAgICBpZiBub3QgJ1NUTFMnIGluIGNhcHM6CisgICAgICAgICAgICByYWlzZSBlcnJvcl9wcm90bygnLUVSUiBTVExTIG5vdCBzdXBwb3J0ZWQgYnkgc2VydmVyJykKKyAgICAgICAgaWYgY29udGV4dCBpcyBOb25lOgorICAgICAgICAgICAgY29udGV4dCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9TU0x2MjMpCisgICAgICAgICAgICBjb250ZXh0Lm9wdGlvbnMgfD0gc3NsLk9QX05PX1NTTHYyCisgICAgICAgIHJlc3AgPSBzZWxmLl9zaG9ydGNtZCgnU1RMUycpCisgICAgICAgIHNlbGYuc29jayA9IGNvbnRleHQud3JhcF9zb2NrZXQoc2VsZi5zb2NrKQorICAgICAgICBzZWxmLmZpbGUgPSBzZWxmLnNvY2subWFrZWZpbGUoJ3JiJykKKyAgICAgICAgc2VsZi5fdGxzX2VzdGFibGlzaGVkID0gVHJ1ZQorICAgICAgICByZXR1cm4gcmVzcAorCisKK2lmIEhBVkVfU1NMOgogCiAgICAgY2xhc3MgUE9QM19TU0woUE9QMyk6CiAgICAgICAgICIiIlBPUDMgY2xpZW50IGNsYXNzIG92ZXIgU1NMIGNvbm5lY3Rpb24KIAotICAgICAgICBJbnN0YW50aWF0ZSB3aXRoOiBQT1AzX1NTTChob3N0bmFtZSwgcG9ydD05OTUsIGtleWZpbGU9Tm9uZSwgY2VydGZpbGU9Tm9uZSkKKyAgICAgICAgSW5zdGFudGlhdGUgd2l0aDogUE9QM19TU0woaG9zdG5hbWUsIHBvcnQ9OTk1LCBrZXlmaWxlPU5vbmUsIGNlcnRmaWxlPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ9Tm9uZSkKIAogICAgICAgICAgICAgICAgaG9zdG5hbWUgLSB0aGUgaG9zdG5hbWUgb2YgdGhlIHBvcDMgb3ZlciBzc2wgc2VydmVyCiAgICAgICAgICAgICAgICBwb3J0IC0gcG9ydCBudW1iZXIKICAgICAgICAgICAgICAgIGtleWZpbGUgLSBQRU0gZm9ybWF0dGVkIGZpbGUgdGhhdCBjb3VudGFpbnMgeW91ciBwcml2YXRlIGtleQogICAgICAgICAgICAgICAgY2VydGZpbGUgLSBQRU0gZm9ybWF0dGVkIGNlcnRpZmljYXRlIGNoYWluIGZpbGUKKyAgICAgICAgICAgICAgIGNvbnRleHQgLSBhIHNzbC5TU0xDb250ZXh0CiAKICAgICAgICAgU2VlIHRoZSBtZXRob2RzIG9mIHRoZSBwYXJlbnQgY2xhc3MgUE9QMyBmb3IgbW9yZSBkb2N1bWVudGF0aW9uLgogICAgICAgICAiIiIKQEAgLTM1NSw2ICs0MjMsMTMgQEAKICAgICAgICAgICAgICAgICBzb2NrID0gc3NsLndyYXBfc29ja2V0KHNvY2ssIHNlbGYua2V5ZmlsZSwgc2VsZi5jZXJ0ZmlsZSkKICAgICAgICAgICAgIHJldHVybiBzb2NrCiAKKyAgICAgICAgZGVmIHN0bHMoc2VsZiwga2V5ZmlsZT1Ob25lLCBjZXJ0ZmlsZT1Ob25lLCBjb250ZXh0PU5vbmUpOgorICAgICAgICAgICAgIiIiVGhlIG1ldGhvZCB1bmNvbmRpdGlvbmFsbHkgcmFpc2VzIGFuIGV4Y2VwdGlvbiBzaW5jZSB0aGUKKyAgICAgICAgICAgIFNUTFMgY29tbWFuZCBkb2Vzbid0IG1ha2UgYW55IHNlbnNlIG9uIGFuIGFscmVhZHkgZXN0YWJsaXNoZWQKKyAgICAgICAgICAgIFNTTC9UTFMgc2Vzc2lvbi4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgcmFpc2UgZXJyb3JfcHJvdG8oJy1FUlIgVExTIHNlc3Npb24gYWxyZWFkeSBlc3RhYmxpc2hlZCcpCisKICAgICBfX2FsbF9fLmFwcGVuZCgiUE9QM19TU0wiKQogCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgpkaWZmIC0tZ2l0IGEvTGliL3Bvc2l4cGF0aC5weSBiL0xpYi9wb3NpeHBhdGgucHkKaW5kZXggYjFlMWE5Mi4uZTFkNTliNiAxMDA2NDQKLS0tIGEvTGliL3Bvc2l4cGF0aC5weQorKysgYi9MaWIvcG9zaXhwYXRoLnB5CkBAIC0xNjIsNyArMTYyLDcgQEAKICAgICAiIiJUZXN0IHdoZXRoZXIgYSBwYXRoIGlzIGEgc3ltYm9saWMgbGluayIiIgogICAgIHRyeToKICAgICAgICAgc3QgPSBvcy5sc3RhdChwYXRoKQotICAgIGV4Y2VwdCAob3MuZXJyb3IsIEF0dHJpYnV0ZUVycm9yKToKKyAgICBleGNlcHQgKE9TRXJyb3IsIEF0dHJpYnV0ZUVycm9yKToKICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgcmV0dXJuIHN0YXQuU19JU0xOSyhzdC5zdF9tb2RlKQogCkBAIC0xNzIsMzkgKzE3MiwxMSBAQAogICAgICIiIlRlc3Qgd2hldGhlciBhIHBhdGggZXhpc3RzLiAgUmV0dXJucyBUcnVlIGZvciBicm9rZW4gc3ltYm9saWMgbGlua3MiIiIKICAgICB0cnk6CiAgICAgICAgIG9zLmxzdGF0KHBhdGgpCi0gICAgZXhjZXB0IG9zLmVycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICByZXR1cm4gRmFsc2UKICAgICByZXR1cm4gVHJ1ZQogCiAKLSMgQXJlIHR3byBmaWxlbmFtZXMgcmVhbGx5IHBvaW50aW5nIHRvIHRoZSBzYW1lIGZpbGU/Ci0KLWRlZiBzYW1lZmlsZShmMSwgZjIpOgotICAgICIiIlRlc3Qgd2hldGhlciB0d28gcGF0aG5hbWVzIHJlZmVyZW5jZSB0aGUgc2FtZSBhY3R1YWwgZmlsZSIiIgotICAgIHMxID0gb3Muc3RhdChmMSkKLSAgICBzMiA9IG9zLnN0YXQoZjIpCi0gICAgcmV0dXJuIHNhbWVzdGF0KHMxLCBzMikKLQotCi0jIEFyZSB0d28gb3BlbiBmaWxlcyByZWFsbHkgcmVmZXJlbmNpbmcgdGhlIHNhbWUgZmlsZT8KLSMgKE5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBmaWxlIGRlc2NyaXB0b3IhKQotCi1kZWYgc2FtZW9wZW5maWxlKGZwMSwgZnAyKToKLSAgICAiIiJUZXN0IHdoZXRoZXIgdHdvIG9wZW4gZmlsZSBvYmplY3RzIHJlZmVyZW5jZSB0aGUgc2FtZSBmaWxlIiIiCi0gICAgczEgPSBvcy5mc3RhdChmcDEpCi0gICAgczIgPSBvcy5mc3RhdChmcDIpCi0gICAgcmV0dXJuIHNhbWVzdGF0KHMxLCBzMikKLQotCi0jIEFyZSB0d28gc3RhdCBidWZmZXJzIChvYnRhaW5lZCBmcm9tIHN0YXQsIGZzdGF0IG9yIGxzdGF0KQotIyBkZXNjcmliaW5nIHRoZSBzYW1lIGZpbGU/Ci0KLWRlZiBzYW1lc3RhdChzMSwgczIpOgotICAgICIiIlRlc3Qgd2hldGhlciB0d28gc3RhdCBidWZmZXJzIHJlZmVyZW5jZSB0aGUgc2FtZSBmaWxlIiIiCi0gICAgcmV0dXJuIHMxLnN0X2lubyA9PSBzMi5zdF9pbm8gYW5kIFwKLSAgICAgICAgICAgczEuc3RfZGV2ID09IHMyLnN0X2RldgotCi0KICMgSXMgYSBwYXRoIGEgbW91bnQgcG9pbnQ/CiAjIChEb2VzIHRoaXMgd29yayBmb3IgYWxsIFVOSVhlcz8gIElzIGl0IGV2ZW4gZ3VhcmFudGVlZCB0byB3b3JrIGJ5IFBvc2l4PykKIApAQCAtMjIwLDcgKzE5Miw3IEBACiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBwYXJlbnQgPSBqb2luKHBhdGgsICcuLicpCiAgICAgICAgIHMyID0gb3MubHN0YXQocGFyZW50KQotICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgcmV0dXJuIEZhbHNlICMgSXQgZG9lc24ndCBleGlzdCAtLSBzbyBub3QgYSBtb3VudCBwb2ludCA6LSkKICAgICBkZXYxID0gczEuc3RfZGV2CiAgICAgZGV2MiA9IHMyLnN0X2RldgpkaWZmIC0tZ2l0IGEvTGliL3BwcmludC5weSBiL0xpYi9wcHJpbnQucHkKaW5kZXggYWU5NmRkZS4uMWY5OGY1YyAxMDA2NDQKLS0tIGEvTGliL3BwcmludC5weQorKysgYi9MaWIvcHByaW50LnB5CkBAIC0zNCw2ICszNCw3IEBACiAKICIiIgogCitpbXBvcnQgcmUKIGltcG9ydCBzeXMgYXMgX3N5cwogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QgYXMgX09yZGVyZWREaWN0CiBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTyBhcyBfU3RyaW5nSU8KQEAgLTE1OCwxMyArMTU5LDEwIEBACiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgcmVwID0gc2VsZi5fcmVwcihvYmplY3QsIGNvbnRleHQsIGxldmVsIC0gMSkKICAgICAgICAgdHlwID0gX3R5cGUob2JqZWN0KQotICAgICAgICBzZXBMaW5lcyA9IF9sZW4ocmVwKSA+IChzZWxmLl93aWR0aCAtIDEgLSBpbmRlbnQgLSBhbGxvd2FuY2UpCisgICAgICAgIG1heF93aWR0aCA9IHNlbGYuX3dpZHRoIC0gMSAtIGluZGVudCAtIGFsbG93YW5jZQorICAgICAgICBzZXBMaW5lcyA9IF9sZW4ocmVwKSA+IG1heF93aWR0aAogICAgICAgICB3cml0ZSA9IHN0cmVhbS53cml0ZQogCi0gICAgICAgIGlmIHNlbGYuX2RlcHRoIGFuZCBsZXZlbCA+IHNlbGYuX2RlcHRoOgotICAgICAgICAgICAgd3JpdGUocmVwKQotICAgICAgICAgICAgcmV0dXJuCi0KICAgICAgICAgaWYgc2VwTGluZXM6CiAgICAgICAgICAgICByID0gZ2V0YXR0cih0eXAsICJfX3JlcHJfXyIsIE5vbmUpCiAgICAgICAgICAgICBpZiBpc3N1YmNsYXNzKHR5cCwgZGljdCk6CkBAIC0yNDIsNiArMjQwLDM3IEBACiAgICAgICAgICAgICAgICAgd3JpdGUoZW5kY2hhcikKICAgICAgICAgICAgICAgICByZXR1cm4KIAorICAgICAgICAgICAgaWYgaXNzdWJjbGFzcyh0eXAsIHN0cikgYW5kIGxlbihvYmplY3QpID4gMCBhbmQgciBpcyBzdHIuX19yZXByX186CisgICAgICAgICAgICAgICAgZGVmIF9zdHJfcGFydHMocyk6CisgICAgICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgICAgICAgICBSZXR1cm4gYSBsaXN0IG9mIHN0cmluZyBsaXRlcmFscyBjb21wcmlzaW5nIHRoZSByZXByKCkKKyAgICAgICAgICAgICAgICAgICAgb2YgdGhlIGdpdmVuIHN0cmluZyB1c2luZyBsaXRlcmFsIGNvbmNhdGVuYXRpb24uCisgICAgICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgICAgICAgICBsaW5lcyA9IHMuc3BsaXRsaW5lcyhUcnVlKQorICAgICAgICAgICAgICAgICAgICBmb3IgaSwgbGluZSBpbiBlbnVtZXJhdGUobGluZXMpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVwID0gcmVwcihsaW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgX2xlbihyZXApIDw9IG1heF93aWR0aDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCByZXAKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBBIGxpc3Qgb2YgYWx0ZXJuYXRpbmcgKG5vbi1zcGFjZSwgc3BhY2UpIHN0cmluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0cyA9IHJlLnNwbGl0KHInKFxzKyknLCBsaW5lKSArIFsnJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gJycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4ocGFydHMpLCAyKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydCA9IHBhcnRzW2ldICsgcGFydHNbaSsxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGUgPSBjdXJyZW50ICsgcGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBsZW4ocmVwcihjYW5kaWRhdGUpKSA+IG1heF93aWR0aDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGN1cnJlbnQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgcmVwcihjdXJyZW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IHBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBjYW5kaWRhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjdXJyZW50OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCByZXByKGN1cnJlbnQpCisgICAgICAgICAgICAgICAgZm9yIGksIHJlcCBpbiBlbnVtZXJhdGUoX3N0cl9wYXJ0cyhvYmplY3QpKToKKyAgICAgICAgICAgICAgICAgICAgaWYgaSA+IDA6CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSgnXG4nICsgJyAnKmluZGVudCkKKyAgICAgICAgICAgICAgICAgICAgd3JpdGUocmVwKQorICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICB3cml0ZShyZXApCiAKICAgICBkZWYgX3JlcHIoc2VsZiwgb2JqZWN0LCBjb250ZXh0LCBsZXZlbCk6CmRpZmYgLS1naXQgYS9MaWIvcHJvZmlsZS5weSBiL0xpYi9wcm9maWxlLnB5CmluZGV4IDc0M2U3N2QuLjVkMGU5NjggMTAwNzU1Ci0tLSBhL0xpYi9wcm9maWxlLnB5CisrKyBiL0xpYi9wcm9maWxlLnB5CkBAIC00MCw2ICs0MCw0MCBAQAogIyAgICAgICByZXR1cm4gaV9jb3VudAogI2l0aW1lcyA9IGludGVnZXJfdGltZXIgIyByZXBsYWNlIHdpdGggQyBjb2RlZCB0aW1lciByZXR1cm5pbmcgaW50ZWdlcnMKIAorY2xhc3MgX1V0aWxzOgorICAgICIiIlN1cHBvcnQgY2xhc3MgZm9yIHV0aWxpdHkgZnVuY3Rpb25zIHdoaWNoIGFyZSBzaGFyZWQgYnkKKyAgICBwcm9maWxlLnB5IGFuZCBjUHJvZmlsZS5weSBtb2R1bGVzLgorICAgIE5vdCBzdXBwb3NlZCB0byBiZSB1c2VkIGRpcmVjdGx5LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb2ZpbGVyKToKKyAgICAgICAgc2VsZi5wcm9maWxlciA9IHByb2ZpbGVyCisKKyAgICBkZWYgcnVuKHNlbGYsIHN0YXRlbWVudCwgZmlsZW5hbWUsIHNvcnQpOgorICAgICAgICBwcm9mID0gc2VsZi5wcm9maWxlcigpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHByb2YucnVuKHN0YXRlbWVudCkKKyAgICAgICAgZXhjZXB0IFN5c3RlbUV4aXQ6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9zaG93KHByb2YsIGZpbGVuYW1lLCBzb3J0KQorCisgICAgZGVmIHJ1bmN0eChzZWxmLCBzdGF0ZW1lbnQsIGdsb2JhbHMsIGxvY2FscywgZmlsZW5hbWUsIHNvcnQpOgorICAgICAgICBwcm9mID0gc2VsZi5wcm9maWxlcigpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHByb2YucnVuY3R4KHN0YXRlbWVudCwgZ2xvYmFscywgbG9jYWxzKQorICAgICAgICBleGNlcHQgU3lzdGVtRXhpdDoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX3Nob3cocHJvZiwgZmlsZW5hbWUsIHNvcnQpCisKKyAgICBkZWYgX3Nob3coc2VsZiwgcHJvZiwgZmlsZW5hbWUsIHNvcnQpOgorICAgICAgICBpZiBmaWxlbmFtZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHByb2YuZHVtcF9zdGF0cyhmaWxlbmFtZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByb2YucHJpbnRfc3RhdHMoc29ydCkKKworCiAjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICMgVGhlIGZvbGxvd2luZyBhcmUgdGhlIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb25zIGZvciB0aGUgcHJvZmlsZXIgY2xhc3MKICMgTm90ZSB0aGF0IGFuIGluc3RhbmNlIG9mIFByb2ZpbGUoKSBpcyAqbm90KiBuZWVkZWQgdG8gY2FsbCB0aGVtLgpAQCAtNTYsMTUgKzkwLDcgQEAKICAgICBzdGFuZGFyZCBuYW1lIHN0cmluZyAoZmlsZS9saW5lL2Z1bmN0aW9uLW5hbWUpIHRoYXQgaXMgcHJlc2VudGVkIGluCiAgICAgZWFjaCBsaW5lLgogICAgICIiIgotICAgIHByb2YgPSBQcm9maWxlKCkKLSAgICB0cnk6Ci0gICAgICAgIHByb2YgPSBwcm9mLnJ1bihzdGF0ZW1lbnQpCi0gICAgZXhjZXB0IFN5c3RlbUV4aXQ6Ci0gICAgICAgIHBhc3MKLSAgICBpZiBmaWxlbmFtZSBpcyBub3QgTm9uZToKLSAgICAgICAgcHJvZi5kdW1wX3N0YXRzKGZpbGVuYW1lKQotICAgIGVsc2U6Ci0gICAgICAgIHJldHVybiBwcm9mLnByaW50X3N0YXRzKHNvcnQpCisgICAgcmV0dXJuIF9VdGlscyhQcm9maWxlKS5ydW4oc3RhdGVtZW50LCBmaWxlbmFtZSwgc29ydCkKIAogZGVmIHJ1bmN0eChzdGF0ZW1lbnQsIGdsb2JhbHMsIGxvY2FscywgZmlsZW5hbWU9Tm9uZSwgc29ydD0tMSk6CiAgICAgIiIiUnVuIHN0YXRlbWVudCB1bmRlciBwcm9maWxlciwgc3VwcGx5aW5nIHlvdXIgb3duIGdsb2JhbHMgYW5kIGxvY2FscywKQEAgLTcyLDE2ICs5OCw4IEBACiAKICAgICBzdGF0ZW1lbnQgYW5kIGZpbGVuYW1lIGhhdmUgdGhlIHNhbWUgc2VtYW50aWNzIGFzIHByb2ZpbGUucnVuCiAgICAgIiIiCi0gICAgcHJvZiA9IFByb2ZpbGUoKQotICAgIHRyeToKLSAgICAgICAgcHJvZiA9IHByb2YucnVuY3R4KHN0YXRlbWVudCwgZ2xvYmFscywgbG9jYWxzKQotICAgIGV4Y2VwdCBTeXN0ZW1FeGl0OgotICAgICAgICBwYXNzCisgICAgcmV0dXJuIF9VdGlscyhQcm9maWxlKS5ydW5jdHgoc3RhdGVtZW50LCBnbG9iYWxzLCBsb2NhbHMsIGZpbGVuYW1lLCBzb3J0KQogCi0gICAgaWYgZmlsZW5hbWUgaXMgbm90IE5vbmU6Ci0gICAgICAgIHByb2YuZHVtcF9zdGF0cyhmaWxlbmFtZSkKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gcHJvZi5wcmludF9zdGF0cyhzb3J0KQogCiBjbGFzcyBQcm9maWxlOgogICAgICIiIlByb2ZpbGVyIGNsYXNzLgpAQCAtMzczLDEwICszOTEsOSBAQAogICAgICAgICAgICAgICAgICAgcHJpbnRfc3RhdHMoKQogCiAgICAgZGVmIGR1bXBfc3RhdHMoc2VsZiwgZmlsZSk6Ci0gICAgICAgIGYgPSBvcGVuKGZpbGUsICd3YicpCi0gICAgICAgIHNlbGYuY3JlYXRlX3N0YXRzKCkKLSAgICAgICAgbWFyc2hhbC5kdW1wKHNlbGYuc3RhdHMsIGYpCi0gICAgICAgIGYuY2xvc2UoKQorICAgICAgICB3aXRoIG9wZW4oZmlsZSwgJ3diJykgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuY3JlYXRlX3N0YXRzKCkKKyAgICAgICAgICAgIG1hcnNoYWwuZHVtcChzZWxmLnN0YXRzLCBmKQogCiAgICAgZGVmIGNyZWF0ZV9zdGF0cyhzZWxmKToKICAgICAgICAgc2VsZi5zaW11bGF0ZV9jbWRfY29tcGxldGUoKQpkaWZmIC0tZ2l0IGEvTGliL3BzdGF0cy5weSBiL0xpYi9wc3RhdHMucHkKaW5kZXggNmE3NzYwNS4uZTFlYzM1NSAxMDA2NDQKLS0tIGEvTGliL3BzdGF0cy5weQorKysgYi9MaWIvcHN0YXRzLnB5CkBAIC05Myw5ICs5Myw4IEBACiAgICAgICAgICAgICBzZWxmLnN0YXRzID0ge30KICAgICAgICAgICAgIHJldHVybgogICAgICAgICBlbGlmIGlzaW5zdGFuY2UoYXJnLCBzdHIpOgotICAgICAgICAgICAgZiA9IG9wZW4oYXJnLCAncmInKQotICAgICAgICAgICAgc2VsZi5zdGF0cyA9IG1hcnNoYWwubG9hZChmKQotICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgICAgICB3aXRoIG9wZW4oYXJnLCAncmInKSBhcyBmOgorICAgICAgICAgICAgICAgIHNlbGYuc3RhdHMgPSBtYXJzaGFsLmxvYWQoZikKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBmaWxlX3N0YXRzID0gb3Muc3RhdChhcmcpCiAgICAgICAgICAgICAgICAgYXJnID0gdGltZS5jdGltZShmaWxlX3N0YXRzLnN0X210aW1lKSArICIgICAgIiArIGFyZwpAQCAtMTQ5LDExICsxNDgsOCBAQAogCiAgICAgZGVmIGR1bXBfc3RhdHMoc2VsZiwgZmlsZW5hbWUpOgogICAgICAgICAiIiJXcml0ZSB0aGUgcHJvZmlsZSBkYXRhIHRvIGEgZmlsZSB3ZSBrbm93IGhvdyB0byBsb2FkIGJhY2suIiIiCi0gICAgICAgIGYgPSBvcGVuKGZpbGVuYW1lLCAnd2InKQotICAgICAgICB0cnk6CisgICAgICAgIHdpdGggb3BlbihmaWxlbmFtZSwgJ3diJykgYXMgZjoKICAgICAgICAgICAgIG1hcnNoYWwuZHVtcChzZWxmLnN0YXRzLCBmKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgZi5jbG9zZSgpCiAKICAgICAjIGxpc3QgdGhlIHR1cGxlIGluZGljZXMgYW5kIGRpcmVjdGlvbnMgZm9yIHNvcnRpbmcsCiAgICAgIyBhbG9uZyB3aXRoIHNvbWUgcHJpbnRhYmxlIGRlc2NyaXB0aW9uCkBAIC02MTIsNyArNjA4LDcgQEAKICAgICAgICAgICAgIGlmIGxpbmU6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRzID0gU3RhdHMobGluZSkKLSAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlcnI6CisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgogICAgICAgICAgICAgICAgICAgICBwcmludChlcnIuYXJnc1sxXSwgZmlsZT1zZWxmLnN0cmVhbSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnI6CmRpZmYgLS1naXQgYS9MaWIvcHR5LnB5IGIvTGliL3B0eS5weQppbmRleCAzY2NmNjE5Li5lODQxZjEyIDEwMDY0NAotLS0gYS9MaWIvcHR5LnB5CisrKyBiL0xpYi9wdHkucHkKQEAgLTQ3LDI3ICs0NywxNiBAQAogICAgIHJldHVybiBfb3Blbl90ZXJtaW5hbCgpCiAKIGRlZiBfb3Blbl90ZXJtaW5hbCgpOgotICAgICIiIk9wZW4gcHR5IG1hc3RlciBhbmQgcmV0dXJuIChtYXN0ZXJfZmQsIHR0eV9uYW1lKS4KLSAgICBTR0kgYW5kIGdlbmVyaWMgQlNEIHZlcnNpb24sIGZvciB3aGVuIG9wZW5wdHkoKSBmYWlscy4iIiIKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBzZ2kKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgIHBhc3MKLSAgICBlbHNlOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0dHlfbmFtZSwgbWFzdGVyX2ZkID0gc2dpLl9nZXRwdHkob3MuT19SRFdSLCAwbzY2NiwgMCkKLSAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgbXNnOgotICAgICAgICAgICAgcmFpc2Ugb3MuZXJyb3IobXNnKQotICAgICAgICByZXR1cm4gbWFzdGVyX2ZkLCB0dHlfbmFtZQorICAgICIiIk9wZW4gcHR5IG1hc3RlciBhbmQgcmV0dXJuIChtYXN0ZXJfZmQsIHR0eV9uYW1lKS4iIiIKICAgICBmb3IgeCBpbiAncHFyc3R1dnd4eXpQUVJTVCc6CiAgICAgICAgIGZvciB5IGluICcwMTIzNDU2Nzg5YWJjZGVmJzoKICAgICAgICAgICAgIHB0eV9uYW1lID0gJy9kZXYvcHR5JyArIHggKyB5CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgZmQgPSBvcy5vcGVuKHB0eV9uYW1lLCBvcy5PX1JEV1IpCi0gICAgICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgcmV0dXJuIChmZCwgJy9kZXYvdHR5JyArIHggKyB5KQotICAgIHJhaXNlIG9zLmVycm9yKCdvdXQgb2YgcHR5IGRldmljZXMnKQorICAgIHJhaXNlIE9TRXJyb3IoJ291dCBvZiBwdHkgZGV2aWNlcycpCiAKIGRlZiBzbGF2ZV9vcGVuKHR0eV9uYW1lKToKICAgICAiIiJzbGF2ZV9vcGVuKHR0eV9uYW1lKSAtPiBzbGF2ZV9mZApAQCAtODMsNyArNzIsNyBAQAogICAgIHRyeToKICAgICAgICAgaW9jdGwocmVzdWx0LCBJX1BVU0gsICJwdGVtIikKICAgICAgICAgaW9jdGwocmVzdWx0LCBJX1BVU0gsICJsZHRlcm0iKQotICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICBwYXNzCiAgICAgcmV0dXJuIHJlc3VsdAogCkBAIC0xNzMsOCArMTYyLDkgQEAKICAgICAgICAgcmVzdG9yZSA9IDAKICAgICB0cnk6CiAgICAgICAgIF9jb3B5KG1hc3Rlcl9mZCwgbWFzdGVyX3JlYWQsIHN0ZGluX3JlYWQpCi0gICAgZXhjZXB0IChJT0Vycm9yLCBPU0Vycm9yKToKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgaWYgcmVzdG9yZToKICAgICAgICAgICAgIHR0eS50Y3NldGF0dHIoU1RESU5fRklMRU5PLCB0dHkuVENTQUZMVVNILCBtb2RlKQogCiAgICAgb3MuY2xvc2UobWFzdGVyX2ZkKQorICAgIHJldHVybiBvcy53YWl0cGlkKHBpZCwgMClbMV0KZGlmZiAtLWdpdCBhL0xpYi9weV9jb21waWxlLnB5IGIvTGliL3B5X2NvbXBpbGUucHkKaW5kZXggNjJkNjlhZC4uNzAxZThhYyAxMDA2NDQKLS0tIGEvTGliL3B5X2NvbXBpbGUucHkKKysrIGIvTGliL3B5X2NvbXBpbGUucHkKQEAgLTMsMTcgKzMsMTMgQEAKIFRoaXMgbW9kdWxlIGhhcyBpbnRpbWF0ZSBrbm93bGVkZ2Ugb2YgdGhlIGZvcm1hdCBvZiAucHljIGZpbGVzLgogIiIiCiAKLWltcG9ydCBidWlsdGlucwotaW1wb3J0IGVycm5vCiBpbXBvcnQgaW1wCi1pbXBvcnQgbWFyc2hhbAoraW1wb3J0IGltcG9ydGxpYi5fYm9vdHN0cmFwCitpbXBvcnQgaW1wb3J0bGliLm1hY2hpbmVyeQogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCi1pbXBvcnQgdG9rZW5pemUKIGltcG9ydCB0cmFjZWJhY2sKIAotTUFHSUMgPSBpbXAuZ2V0X21hZ2ljKCkKLQogX19hbGxfXyA9IFsiY29tcGlsZSIsICJtYWluIiwgIlB5Q29tcGlsZUVycm9yIl0KIAogCkBAIC02NSwxMyArNjEsNiBAQAogICAgICAgICByZXR1cm4gc2VsZi5tc2cKIAogCi1kZWYgd3JfbG9uZyhmLCB4KToKLSAgICAiIiJJbnRlcm5hbDsgd3JpdGUgYSAzMi1iaXQgaW50IHRvIGEgZmlsZSBpbiBsaXR0bGUtZW5kaWFuIG9yZGVyLiIiIgotICAgIGYud3JpdGUoYnl0ZXMoW3ggICAgICAgICAmIDB4ZmYsCi0gICAgICAgICAgICAgICAgICAgKHggPj4gOCkgICYgMHhmZiwKLSAgICAgICAgICAgICAgICAgICAoeCA+PiAxNikgJiAweGZmLAotICAgICAgICAgICAgICAgICAgICh4ID4+IDI0KSAmIDB4ZmZdKSkKLQogZGVmIGNvbXBpbGUoZmlsZSwgY2ZpbGU9Tm9uZSwgZGZpbGU9Tm9uZSwgZG9yYWlzZT1GYWxzZSwgb3B0aW1pemU9LTEpOgogICAgICIiIkJ5dGUtY29tcGlsZSBvbmUgUHl0aG9uIHNvdXJjZSBmaWxlIHRvIFB5dGhvbiBieXRlY29kZS4KIApAQCAtMTA4LDE3ICs5NywxNiBAQAogICAgIGJ5dGUtY29tcGlsZSBhbGwgaW5zdGFsbGVkIGZpbGVzIChvciBhbGwgZmlsZXMgaW4gc2VsZWN0ZWQKICAgICBkaXJlY3RvcmllcykuCiAgICAgIiIiCi0gICAgd2l0aCB0b2tlbml6ZS5vcGVuKGZpbGUpIGFzIGY6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHN0ID0gb3MuZnN0YXQoZi5maWxlbm8oKSkKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgc3QgPSBvcy5zdGF0KGZpbGUpCi0gICAgICAgIHRpbWVzdGFtcCA9IGludChzdC5zdF9tdGltZSkKLSAgICAgICAgc2l6ZSA9IHN0LnN0X3NpemUgJiAweEZGRkZGRkZGCi0gICAgICAgIGNvZGVzdHJpbmcgPSBmLnJlYWQoKQorICAgIGlmIGNmaWxlIGlzIE5vbmU6CisgICAgICAgIGlmIG9wdGltaXplID49IDA6CisgICAgICAgICAgICBjZmlsZSA9IGltcC5jYWNoZV9mcm9tX3NvdXJjZShmaWxlLCBkZWJ1Z19vdmVycmlkZT1ub3Qgb3B0aW1pemUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjZmlsZSA9IGltcC5jYWNoZV9mcm9tX3NvdXJjZShmaWxlKQorICAgIGxvYWRlciA9IGltcG9ydGxpYi5tYWNoaW5lcnkuU291cmNlRmlsZUxvYWRlcignPHB5X2NvbXBpbGU+JywgZmlsZSkKKyAgICBzb3VyY2VfYnl0ZXMgPSBsb2FkZXIuZ2V0X2RhdGEoZmlsZSkKICAgICB0cnk6Ci0gICAgICAgIGNvZGVvYmplY3QgPSBidWlsdGlucy5jb21waWxlKGNvZGVzdHJpbmcsIGRmaWxlIG9yIGZpbGUsICdleGVjJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemU9b3B0aW1pemUpCisgICAgICAgIGNvZGUgPSBsb2FkZXIuc291cmNlX3RvX2NvZGUoc291cmNlX2J5dGVzLCBkZmlsZSBvciBmaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9vcHRpbWl6ZT1vcHRpbWl6ZSkKICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGVycjoKICAgICAgICAgcHlfZXhjID0gUHlDb21waWxlRXJyb3IoZXJyLl9fY2xhc3NfXywgZXJyLCBkZmlsZSBvciBmaWxlKQogICAgICAgICBpZiBkb3JhaXNlOgpAQCAtMTI2LDI4ICsxMTQsMjAgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUocHlfZXhjLm1zZyArICdcbicpCiAgICAgICAgICAgICByZXR1cm4KLSAgICBpZiBjZmlsZSBpcyBOb25lOgotICAgICAgICBpZiBvcHRpbWl6ZSA+PSAwOgotICAgICAgICAgICAgY2ZpbGUgPSBpbXAuY2FjaGVfZnJvbV9zb3VyY2UoZmlsZSwgZGVidWdfb3ZlcnJpZGU9bm90IG9wdGltaXplKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgY2ZpbGUgPSBpbXAuY2FjaGVfZnJvbV9zb3VyY2UoZmlsZSkKICAgICB0cnk6CiAgICAgICAgIGRpcm5hbWUgPSBvcy5wYXRoLmRpcm5hbWUoY2ZpbGUpCiAgICAgICAgIGlmIGRpcm5hbWU6CiAgICAgICAgICAgICBvcy5tYWtlZGlycyhkaXJuYW1lKQotICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycm9yOgotICAgICAgICBpZiBlcnJvci5lcnJubyAhPSBlcnJuby5FRVhJU1Q6Ci0gICAgICAgICAgICByYWlzZQotICAgIHdpdGggb3BlbihjZmlsZSwgJ3diJykgYXMgZmM6Ci0gICAgICAgIGZjLndyaXRlKGInXDBcMFwwXDAnKQotICAgICAgICB3cl9sb25nKGZjLCB0aW1lc3RhbXApCi0gICAgICAgIHdyX2xvbmcoZmMsIHNpemUpCi0gICAgICAgIG1hcnNoYWwuZHVtcChjb2Rlb2JqZWN0LCBmYykKLSAgICAgICAgZmMuZmx1c2goKQotICAgICAgICBmYy5zZWVrKDAsIDApCi0gICAgICAgIGZjLndyaXRlKE1BR0lDKQorICAgIGV4Y2VwdCBGaWxlRXhpc3RzRXJyb3I6CisgICAgICAgIHBhc3MKKyAgICBzb3VyY2Vfc3RhdHMgPSBsb2FkZXIucGF0aF9zdGF0cyhmaWxlKQorICAgIGJ5dGVjb2RlID0gaW1wb3J0bGliLl9ib290c3RyYXAuX2NvZGVfdG9fYnl0ZWNvZGUoCisgICAgICAgICAgICBjb2RlLCBzb3VyY2Vfc3RhdHNbJ210aW1lJ10sIHNvdXJjZV9zdGF0c1snc2l6ZSddKQorICAgIG1vZGUgPSBpbXBvcnRsaWIuX2Jvb3RzdHJhcC5fY2FsY19tb2RlKGZpbGUpCisgICAgaW1wb3J0bGliLl9ib290c3RyYXAuX3dyaXRlX2F0b21pYyhjZmlsZSwgYnl0ZWNvZGUsIG1vZGUpCiAgICAgcmV0dXJuIGNmaWxlCiAKKwogZGVmIG1haW4oYXJncz1Ob25lKToKICAgICAiIiJDb21waWxlIHNldmVyYWwgc291cmNlIGZpbGVzLgogCkBAIC0xNzMsNyArMTUzLDcgQEAKICAgICAgICAgICAgIGV4Y2VwdCBQeUNvbXBpbGVFcnJvciBhcyBlcnJvcjoKICAgICAgICAgICAgICAgICBydiA9IDEKICAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCIlc1xuIiAlIGVycm9yLm1zZykKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGVycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyb3I6CiAgICAgICAgICAgICAgICAgcnYgPSAxCiAgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiJXNcbiIgJSBlcnJvcikKICAgICBlbHNlOgpkaWZmIC0tZ2l0IGEvTGliL3B5ZG9jLnB5IGIvTGliL3B5ZG9jLnB5CmluZGV4IDlkY2UwNzkuLjc1MDVjY2QgMTAwNzU1Ci0tLSBhL0xpYi9weWRvYy5weQorKysgYi9MaWIvcHlkb2MucHkKQEAgLTIyNiw3ICsyMjYsNyBAQAogICAgIGlmIGxhc3R1cGRhdGUgaXMgTm9uZSBvciBsYXN0dXBkYXRlIDwgbXRpbWU6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGZpbGUgPSB0b2tlbml6ZS5vcGVuKGZpbGVuYW1lKQotICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAjIG1vZHVsZSBjYW4ndCBiZSBvcGVuZWQsIHNvIHNraXAgaXQKICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgIGJpbmFyeV9zdWZmaXhlcyA9IGltcG9ydGxpYi5tYWNoaW5lcnkuQllURUNPREVfU1VGRklYRVNbOl0KQEAgLTEzOTYsNyArMTM5Niw3IEBACiAgICAgICAgICAgICByZXR1cm4gbGFtYmRhIHRleHQ6IHBpcGVwYWdlcih0ZXh0LCBvcy5lbnZpcm9uWydQQUdFUiddKQogICAgIGlmIG9zLmVudmlyb24uZ2V0KCdURVJNJykgaW4gKCdkdW1iJywgJ2VtYWNzJyk6CiAgICAgICAgIHJldHVybiBwbGFpbnBhZ2VyCi0gICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMicgb3Igc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ29zMicpOgorICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgogICAgICAgICByZXR1cm4gbGFtYmRhIHRleHQ6IHRlbXBmaWxlcGFnZXIocGxhaW4odGV4dCksICdtb3JlIDwnKQogICAgIGlmIGhhc2F0dHIob3MsICdzeXN0ZW0nKSBhbmQgb3Muc3lzdGVtKCcobGVzcykgMj4vZGV2L251bGwnKSA9PSAwOgogICAgICAgICByZXR1cm4gbGFtYmRhIHRleHQ6IHBpcGVwYWdlcih0ZXh0LCAnbGVzcycpCkBAIC0xNDIyLDE2ICsxNDIyLDE1IEBACiAgICAgdHJ5OgogICAgICAgICBwaXBlLndyaXRlKHRleHQpCiAgICAgICAgIHBpcGUuY2xvc2UoKQotICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICBwYXNzICMgSWdub3JlIGJyb2tlbiBwaXBlcyBjYXVzZWQgYnkgcXVpdHRpbmcgdGhlIHBhZ2VyIHByb2dyYW0uCiAKIGRlZiB0ZW1wZmlsZXBhZ2VyKHRleHQsIGNtZCk6CiAgICAgIiIiUGFnZSB0aHJvdWdoIHRleHQgYnkgaW52b2tpbmcgYSBwcm9ncmFtIG9uIGEgdGVtcG9yYXJ5IGZpbGUuIiIiCiAgICAgaW1wb3J0IHRlbXBmaWxlCiAgICAgZmlsZW5hbWUgPSB0ZW1wZmlsZS5ta3RlbXAoKQotICAgIGZpbGUgPSBvcGVuKGZpbGVuYW1lLCAndycpCi0gICAgZmlsZS53cml0ZSh0ZXh0KQotICAgIGZpbGUuY2xvc2UoKQorICAgIHdpdGggb3BlbihmaWxlbmFtZSwgJ3cnKSBhcyBmaWxlOgorICAgICAgICBmaWxlLndyaXRlKHRleHQpCiAgICAgdHJ5OgogICAgICAgICBvcy5zeXN0ZW0oY21kICsgJyAiJyArIGZpbGVuYW1lICsgJyInKQogICAgIGZpbmFsbHk6CkBAIC0xODUwLDEwICsxODQ5LDEwIEBACiBQeXRob24gcHJvZ3JhbXMgYW5kIHVzaW5nIFB5dGhvbiBtb2R1bGVzLiAgVG8gcXVpdCB0aGlzIGhlbHAgdXRpbGl0eSBhbmQKIHJldHVybiB0byB0aGUgaW50ZXJwcmV0ZXIsIGp1c3QgdHlwZSAicXVpdCIuCiAKLVRvIGdldCBhIGxpc3Qgb2YgYXZhaWxhYmxlIG1vZHVsZXMsIGtleXdvcmRzLCBvciB0b3BpY3MsIHR5cGUgIm1vZHVsZXMiLAotImtleXdvcmRzIiwgb3IgInRvcGljcyIuICBFYWNoIG1vZHVsZSBhbHNvIGNvbWVzIHdpdGggYSBvbmUtbGluZSBzdW1tYXJ5Ci1vZiB3aGF0IGl0IGRvZXM7IHRvIGxpc3QgdGhlIG1vZHVsZXMgd2hvc2Ugc3VtbWFyaWVzIGNvbnRhaW4gYSBnaXZlbiB3b3JkCi1zdWNoIGFzICJzcGFtIiwgdHlwZSAibW9kdWxlcyBzcGFtIi4KK1RvIGdldCBhIGxpc3Qgb2YgYXZhaWxhYmxlIG1vZHVsZXMsIGtleXdvcmRzLCBzeW1ib2xzLCBvciB0b3BpY3MsIHR5cGUKKyJtb2R1bGVzIiwgImtleXdvcmRzIiwgInN5bWJvbHMiLCBvciAidG9waWNzIi4gIEVhY2ggbW9kdWxlIGFsc28gY29tZXMKK3dpdGggYSBvbmUtbGluZSBzdW1tYXJ5IG9mIHdoYXQgaXQgZG9lczsgdG8gbGlzdCB0aGUgbW9kdWxlcyB3aG9zZSBuYW1lCitvciBzdW1tYXJ5IGNvbnRhaW4gYSBnaXZlbiBzdHJpbmcgc3VjaCBhcyAic3BhbSIsIHR5cGUgIm1vZHVsZXMgc3BhbSIuCiAnJycgJSB0dXBsZShbc3lzLnZlcnNpb25bOjNdXSoyKSkKIAogICAgIGRlZiBsaXN0KHNlbGYsIGl0ZW1zLCBjb2x1bW5zPTQsIHdpZHRoPTgwKToKQEAgLTE5NTgsOSArMTk1NywxMCBAQAogICAgIGRlZiBsaXN0bW9kdWxlcyhzZWxmLCBrZXk9JycpOgogICAgICAgICBpZiBrZXk6CiAgICAgICAgICAgICBzZWxmLm91dHB1dC53cml0ZSgnJycKLUhlcmUgaXMgYSBsaXN0IG9mIG1hdGNoaW5nIG1vZHVsZXMuICBFbnRlciBhbnkgbW9kdWxlIG5hbWUgdG8gZ2V0IG1vcmUgaGVscC4KK0hlcmUgaXMgYSBsaXN0IG9mIG1vZHVsZXMgd2hvc2UgbmFtZSBvciBzdW1tYXJ5IGNvbnRhaW5zICd7fScuCitJZiB0aGVyZSBhcmUgYW55LCBlbnRlciBhIG1vZHVsZSBuYW1lIHRvIGdldCBtb3JlIGhlbHAuCiAKLScnJykKKycnJy5mb3JtYXQoa2V5KSkKICAgICAgICAgICAgIGFwcm9wb3Moa2V5KQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5vdXRwdXQud3JpdGUoJycnCkBAIC0xOTc5LDM1ICsxOTc5LDExIEBACiAgICAgICAgICAgICBzZWxmLmxpc3QobW9kdWxlcy5rZXlzKCkpCiAgICAgICAgICAgICBzZWxmLm91dHB1dC53cml0ZSgnJycKIEVudGVyIGFueSBtb2R1bGUgbmFtZSB0byBnZXQgbW9yZSBoZWxwLiAgT3IsIHR5cGUgIm1vZHVsZXMgc3BhbSIgdG8gc2VhcmNoCi1mb3IgbW9kdWxlcyB3aG9zZSBkZXNjcmlwdGlvbnMgY29udGFpbiB0aGUgd29yZCAic3BhbSIuCitmb3IgbW9kdWxlcyB3aG9zZSBuYW1lIG9yIHN1bW1hcnkgY29udGFpbiB0aGUgc3RyaW5nICJzcGFtIi4KICcnJykKIAogaGVscCA9IEhlbHBlcigpCiAKLWNsYXNzIFNjYW5uZXI6Ci0gICAgIiIiQSBnZW5lcmljIHRyZWUgaXRlcmF0b3IuIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJvb3RzLCBjaGlsZHJlbiwgZGVzY2VuZHApOgotICAgICAgICBzZWxmLnJvb3RzID0gcm9vdHNbOl0KLSAgICAgICAgc2VsZi5zdGF0ZSA9IFtdCi0gICAgICAgIHNlbGYuY2hpbGRyZW4gPSBjaGlsZHJlbgotICAgICAgICBzZWxmLmRlc2NlbmRwID0gZGVzY2VuZHAKLQotICAgIGRlZiBuZXh0KHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5zdGF0ZToKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnJvb3RzOgotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICByb290ID0gc2VsZi5yb290cy5wb3AoMCkKLSAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBbKHJvb3QsIHNlbGYuY2hpbGRyZW4ocm9vdCkpXQotICAgICAgICBub2RlLCBjaGlsZHJlbiA9IHNlbGYuc3RhdGVbLTFdCi0gICAgICAgIGlmIG5vdCBjaGlsZHJlbjoKLSAgICAgICAgICAgIHNlbGYuc3RhdGUucG9wKCkKLSAgICAgICAgICAgIHJldHVybiBzZWxmLm5leHQoKQotICAgICAgICBjaGlsZCA9IGNoaWxkcmVuLnBvcCgwKQotICAgICAgICBpZiBzZWxmLmRlc2NlbmRwKGNoaWxkKToKLSAgICAgICAgICAgIHNlbGYuc3RhdGUuYXBwZW5kKChjaGlsZCwgc2VsZi5jaGlsZHJlbihjaGlsZCkpKQotICAgICAgICByZXR1cm4gY2hpbGQKLQotCiBjbGFzcyBNb2R1bGVTY2FubmVyOgogICAgICIiIkFuIGludGVycnVwdGlibGUgc2Nhbm5lciB0aGF0IHNlYXJjaGVzIG1vZHVsZSBzeW5vcHNlcy4iIiIKIApkaWZmIC0tZ2l0IGEvTGliL3F1b3ByaS5weSBiL0xpYi9xdW9wcmkucHkKaW5kZXggM2QwZjBhYy4uZTViZDAxMCAxMDA3NTUKLS0tIGEvTGliL3F1b3ByaS5weQorKysgYi9MaWIvcXVvcHJpLnB5CkBAIC0yMjMsNyArMjIzLDcgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBmcCA9IG9wZW4oZmlsZSwgInJiIikKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIG1zZzoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIG1zZzoKICAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCIlczogY2FuJ3Qgb3BlbiAoJXMpXG4iICUgKGZpbGUsIG1zZykpCiAgICAgICAgICAgICAgICAgc3RzID0gMQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCmRpZmYgLS1naXQgYS9MaWIvcmFuZG9tLnB5IGIvTGliL3JhbmRvbS5weQppbmRleCA3ZDhkNGYzLi5iMTgzZjU2IDEwMDY0NAotLS0gYS9MaWIvcmFuZG9tLnB5CisrKyBiL0xpYi9yYW5kb20ucHkKQEAgLTE1MSw2ICsxNTEsOSBAQAogCiAjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLSBwaWNrbGUgc3VwcG9ydCAgLS0tLS0tLS0tLS0tLS0tLS0tLQogCisgICAgIyBJc3N1ZSAxNzQ4OTogU2luY2UgX19yZWR1Y2VfXyB3YXMgZGVmaW5lZCB0byBmaXggIzc1OTg4OSB0aGlzIGlzIG5vCisgICAgIyBsb25nZXIgY2FsbGVkOyB3ZSBsZWF2ZSBpdCBoZXJlIGJlY2F1c2UgaXQgaGFzIGJlZW4gaGVyZSBzaW5jZSByYW5kb20gd2FzCisgICAgIyByZXdyaXR0ZW4gYmFjayBpbiAyMDAxIGFuZCB3aHkgcmlzayBicmVha2luZyBzb21ldGhpbmcuCiAgICAgZGVmIF9fZ2V0c3RhdGVfXyhzZWxmKTogIyBmb3IgcGlja2xlCiAgICAgICAgIHJldHVybiBzZWxmLmdldHN0YXRlKCkKIApAQCAtMjUyLDEwICsyNTUsMTEgQEAKICAgICAgICAgcmV0dXJuIHNlcVtpXQogCiAgICAgZGVmIHNodWZmbGUoc2VsZiwgeCwgcmFuZG9tPU5vbmUsIGludD1pbnQpOgotICAgICAgICAiIiJ4LCByYW5kb209cmFuZG9tLnJhbmRvbSAtPiBzaHVmZmxlIGxpc3QgeCBpbiBwbGFjZTsgcmV0dXJuIE5vbmUuCisgICAgICAgICIiIlNodWZmbGUgbGlzdCB4IGluIHBsYWNlLCBhbmQgcmV0dXJuIE5vbmUuCiAKLSAgICAgICAgT3B0aW9uYWwgYXJnIHJhbmRvbSBpcyBhIDAtYXJndW1lbnQgZnVuY3Rpb24gcmV0dXJuaW5nIGEgcmFuZG9tCi0gICAgICAgIGZsb2F0IGluIFswLjAsIDEuMCk7IGJ5IGRlZmF1bHQsIHRoZSBzdGFuZGFyZCByYW5kb20ucmFuZG9tLgorICAgICAgICBPcHRpb25hbCBhcmd1bWVudCByYW5kb20gaXMgYSAwLWFyZ3VtZW50IGZ1bmN0aW9uIHJldHVybmluZyBhCisgICAgICAgIHJhbmRvbSBmbG9hdCBpbiBbMC4wLCAxLjApOyBpZiBpdCBpcyB0aGUgZGVmYXVsdCBOb25lLCB0aGUKKyAgICAgICAgc3RhbmRhcmQgcmFuZG9tLnJhbmRvbSB3aWxsIGJlIHVzZWQuCiAgICAgICAgICIiIgogCiAgICAgICAgIHJhbmRiZWxvdyA9IHNlbGYuX3JhbmRiZWxvdwpkaWZmIC0tZ2l0IGEvTGliL3NjaGVkLnB5IGIvTGliL3NjaGVkLnB5CmluZGV4IGNjZjhjZTkuLjlhODJhODkgMTAwNjQ0Ci0tLSBhL0xpYi9zY2hlZC5weQorKysgYi9MaWIvc2NoZWQucHkKQEAgLTcxLDEwICs3MSwxMCBAQAogICAgICAgICAiIiIKICAgICAgICAgaWYga3dhcmdzIGlzIF9zZW50aW5lbDoKICAgICAgICAgICAgIGt3YXJncyA9IHt9CisgICAgICAgIGV2ZW50ID0gRXZlbnQodGltZSwgcHJpb3JpdHksIGFjdGlvbiwgYXJndW1lbnQsIGt3YXJncykKICAgICAgICAgd2l0aCBzZWxmLl9sb2NrOgotICAgICAgICAgICAgZXZlbnQgPSBFdmVudCh0aW1lLCBwcmlvcml0eSwgYWN0aW9uLCBhcmd1bWVudCwga3dhcmdzKQogICAgICAgICAgICAgaGVhcHEuaGVhcHB1c2goc2VsZi5fcXVldWUsIGV2ZW50KQotICAgICAgICAgICAgcmV0dXJuIGV2ZW50ICMgVGhlIElECisgICAgICAgIHJldHVybiBldmVudCAjIFRoZSBJRAogCiAgICAgZGVmIGVudGVyKHNlbGYsIGRlbGF5LCBwcmlvcml0eSwgYWN0aW9uLCBhcmd1bWVudD0oKSwga3dhcmdzPV9zZW50aW5lbCk6CiAgICAgICAgICIiIkEgdmFyaWFudCB0aGF0IHNwZWNpZmllcyB0aGUgdGltZSBhcyBhIHJlbGF0aXZlIHRpbWUuCkBAIC04Miw5ICs4Miw4IEBACiAgICAgICAgIFRoaXMgaXMgYWN0dWFsbHkgdGhlIG1vcmUgY29tbW9ubHkgdXNlZCBpbnRlcmZhY2UuCiAKICAgICAgICAgIiIiCi0gICAgICAgIHdpdGggc2VsZi5fbG9jazoKLSAgICAgICAgICAgIHRpbWUgPSBzZWxmLnRpbWVmdW5jKCkgKyBkZWxheQotICAgICAgICAgICAgcmV0dXJuIHNlbGYuZW50ZXJhYnModGltZSwgcHJpb3JpdHksIGFjdGlvbiwgYXJndW1lbnQsIGt3YXJncykKKyAgICAgICAgdGltZSA9IHNlbGYudGltZWZ1bmMoKSArIGRlbGF5CisgICAgICAgIHJldHVybiBzZWxmLmVudGVyYWJzKHRpbWUsIHByaW9yaXR5LCBhY3Rpb24sIGFyZ3VtZW50LCBrd2FyZ3MpCiAKICAgICBkZWYgY2FuY2VsKHNlbGYsIGV2ZW50KToKICAgICAgICAgIiIiUmVtb3ZlIGFuIGV2ZW50IGZyb20gdGhlIHF1ZXVlLgpAQCAtMTY1LDQgKzE2NCw0IEBACiAgICAgICAgICMgdGhlIGFjdHVhbCBvcmRlciB0aGV5IHdvdWxkIGJlIHJldHJpZXZlZC4KICAgICAgICAgd2l0aCBzZWxmLl9sb2NrOgogICAgICAgICAgICAgZXZlbnRzID0gc2VsZi5fcXVldWVbOl0KLSAgICAgICAgICAgIHJldHVybiBtYXAoaGVhcHEuaGVhcHBvcCwgW2V2ZW50c10qbGVuKGV2ZW50cykpCisgICAgICAgIHJldHVybiBtYXAoaGVhcHEuaGVhcHBvcCwgW2V2ZW50c10qbGVuKGV2ZW50cykpCmRpZmYgLS1naXQgYS9MaWIvc2hlbHZlLnB5IGIvTGliL3NoZWx2ZS5weQppbmRleCBjYzE4MTVlLi5jZWY1ODBlIDEwMDY0NAotLS0gYS9MaWIvc2hlbHZlLnB5CisrKyBiL0xpYi9zaGVsdmUucHkKQEAgLTYxLDcgKzYxLDcgQEAKIAogaW1wb3J0IGNvbGxlY3Rpb25zCiAKLV9fYWxsX18gPSBbIlNoZWxmIiwiQnNkRGJTaGVsZiIsIkRiZmlsZW5hbWVTaGVsZiIsIm9wZW4iXQorX19hbGxfXyA9IFsiU2hlbGYiLCAiQnNkRGJTaGVsZiIsICJEYmZpbGVuYW1lU2hlbGYiLCAib3BlbiJdCiAKIGNsYXNzIF9DbG9zZWREaWN0KGNvbGxlY3Rpb25zLk11dGFibGVNYXBwaW5nKToKICAgICAnTWFya2VyIGZvciBhIGNsb3NlZCBkaWN0LiAgQWNjZXNzIGF0dGVtcHRzIHJhaXNlIGEgVmFsdWVFcnJvci4nCkBAIC0xMzEsNiArMTMxLDEyIEBACiAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKICAgICAgICAgICAgIHBhc3MKIAorICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgdHlwZSwgdmFsdWUsIHRyYWNlYmFjayk6CisgICAgICAgIHNlbGYuY2xvc2UoKQorCiAgICAgZGVmIGNsb3NlKHNlbGYpOgogICAgICAgICBzZWxmLnN5bmMoKQogICAgICAgICB0cnk6CkBAIC0xNDcsNiArMTUzLDcgQEAKICAgICBkZWYgX19kZWxfXyhzZWxmKToKICAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ3dyaXRlYmFjaycpOgogICAgICAgICAgICAgIyBfX2luaXRfXyBkaWRuJ3Qgc3VjY2VlZCwgc28gZG9uJ3QgYm90aGVyIGNsb3NpbmcKKyAgICAgICAgICAgICMgc2VlIGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUxMzM5MDA3IGZvciBkZXRhaWxzCiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgc2VsZi5jbG9zZSgpCiAKZGlmZiAtLWdpdCBhL0xpYi9zaHV0aWwucHkgYi9MaWIvc2h1dGlsLnB5CmluZGV4IDM5MDRmNDMuLjY4NzlkOGIgMTAwNjQ0Ci0tLSBhL0xpYi9zaHV0aWwucHkKKysrIGIvTGliL3NodXRpbC5weQpAQCAtMzksMTcgKzM5LDIwIEBACiAgICAgICAgICAgICJpZ25vcmVfcGF0dGVybnMiLCAiY2hvd24iLCAid2hpY2giXQogICAgICAgICAgICAjIGRpc2tfdXNhZ2UgaXMgYWRkZWQgbGF0ZXIsIGlmIGF2YWlsYWJsZSBvbiB0aGUgcGxhdGZvcm0KIAotY2xhc3MgRXJyb3IoRW52aXJvbm1lbnRFcnJvcik6CitjbGFzcyBFcnJvcihPU0Vycm9yKToKICAgICBwYXNzCiAKLWNsYXNzIFNwZWNpYWxGaWxlRXJyb3IoRW52aXJvbm1lbnRFcnJvcik6CitjbGFzcyBTYW1lRmlsZUVycm9yKEVycm9yKToKKyAgICAiIiJSYWlzZWQgd2hlbiBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGFyZSB0aGUgc2FtZSBmaWxlLiIiIgorCitjbGFzcyBTcGVjaWFsRmlsZUVycm9yKE9TRXJyb3IpOgogICAgICIiIlJhaXNlZCB3aGVuIHRyeWluZyB0byBkbyBhIGtpbmQgb2Ygb3BlcmF0aW9uIChlLmcuIGNvcHlpbmcpIHdoaWNoIGlzCiAgICAgbm90IHN1cHBvcnRlZCBvbiBhIHNwZWNpYWwgZmlsZSAoZS5nLiBhIG5hbWVkIHBpcGUpIiIiCiAKLWNsYXNzIEV4ZWNFcnJvcihFbnZpcm9ubWVudEVycm9yKToKK2NsYXNzIEV4ZWNFcnJvcihPU0Vycm9yKToKICAgICAiIiJSYWlzZWQgd2hlbiBhIGNvbW1hbmQgY291bGQgbm90IGJlIGV4ZWN1dGVkIiIiCiAKLWNsYXNzIFJlYWRFcnJvcihFbnZpcm9ubWVudEVycm9yKToKK2NsYXNzIFJlYWRFcnJvcihPU0Vycm9yKToKICAgICAiIiJSYWlzZWQgd2hlbiBhbiBhcmNoaXZlIGNhbm5vdCBiZSByZWFkIiIiCiAKIGNsYXNzIFJlZ2lzdHJ5RXJyb3IoRXhjZXB0aW9uKToKQEAgLTU3LDExICs2MCw2IEBACiAgICAgYW5kIHVucGFja2luZyByZWdpc3RlcmllcyBmYWlscyIiIgogCiAKLXRyeToKLSAgICBXaW5kb3dzRXJyb3IKLWV4Y2VwdCBOYW1lRXJyb3I6Ci0gICAgV2luZG93c0Vycm9yID0gTm9uZQotCiBkZWYgY29weWZpbGVvYmooZnNyYywgZmRzdCwgbGVuZ3RoPTE2KjEwMjQpOgogICAgICIiImNvcHkgZGF0YSBmcm9tIGZpbGUtbGlrZSBvYmplY3QgZnNyYyB0byBmaWxlLWxpa2Ugb2JqZWN0IGZkc3QiIiIKICAgICB3aGlsZSAxOgpAQCAtOTAsNyArODgsNyBAQAogCiAgICAgIiIiCiAgICAgaWYgX3NhbWVmaWxlKHNyYywgZHN0KToKLSAgICAgICAgcmFpc2UgRXJyb3IoImAlc2AgYW5kIGAlc2AgYXJlIHRoZSBzYW1lIGZpbGUiICUgKHNyYywgZHN0KSkKKyAgICAgICAgcmFpc2UgU2FtZUZpbGVFcnJvcigieyFyfSBhbmQgeyFyfSBhcmUgdGhlIHNhbWUgZmlsZSIuZm9ybWF0KHNyYywgZHN0KSkKIAogICAgIGZvciBmbiBpbiBbc3JjLCBkc3RdOgogICAgICAgICB0cnk6CkBAIC0yMjEsNiArMjE5LDkgQEAKICAgICBJZiBmb2xsb3dfc3ltbGlua3MgaXMgZmFsc2UsIHN5bWxpbmtzIHdvbid0IGJlIGZvbGxvd2VkLiBUaGlzCiAgICAgcmVzZW1ibGVzIEdOVSdzICJjcCAtUCBzcmMgZHN0Ii4KIAorICAgIElmIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYXJlIHRoZSBzYW1lIGZpbGUsIGEgU2FtZUZpbGVFcnJvciB3aWxsIGJlCisgICAgcmFpc2VkLgorCiAgICAgIiIiCiAgICAgaWYgb3MucGF0aC5pc2Rpcihkc3QpOgogICAgICAgICBkc3QgPSBvcy5wYXRoLmpvaW4oZHN0LCBvcy5wYXRoLmJhc2VuYW1lKHNyYykpCkBAIC0zMjksMTUgKzMzMCwxMyBAQAogICAgICAgICAjIGNvbnRpbnVlIHdpdGggb3RoZXIgZmlsZXMKICAgICAgICAgZXhjZXB0IEVycm9yIGFzIGVycjoKICAgICAgICAgICAgIGVycm9ycy5leHRlbmQoZXJyLmFyZ3NbMF0pCi0gICAgICAgIGV4Y2VwdCBFbnZpcm9ubWVudEVycm9yIGFzIHdoeToKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgd2h5OgogICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoc3JjbmFtZSwgZHN0bmFtZSwgc3RyKHdoeSkpKQogICAgIHRyeToKICAgICAgICAgY29weXN0YXQoc3JjLCBkc3QpCiAgICAgZXhjZXB0IE9TRXJyb3IgYXMgd2h5OgotICAgICAgICBpZiBXaW5kb3dzRXJyb3IgaXMgbm90IE5vbmUgYW5kIGlzaW5zdGFuY2Uod2h5LCBXaW5kb3dzRXJyb3IpOgotICAgICAgICAgICAgIyBDb3B5aW5nIGZpbGUgYWNjZXNzIHRpbWVzIG1heSBmYWlsIG9uIFdpbmRvd3MKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZWxzZToKKyAgICAgICAgIyBDb3B5aW5nIGZpbGUgYWNjZXNzIHRpbWVzIG1heSBmYWlsIG9uIFdpbmRvd3MKKyAgICAgICAgaWYgd2h5LndpbmVycm9yIGlzIE5vbmU6CiAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKChzcmMsIGRzdCwgc3RyKHdoeSkpKQogICAgIGlmIGVycm9yczoKICAgICAgICAgcmFpc2UgRXJyb3IoZXJyb3JzKQpAQCAtMzU2LDI0ICszNTUsMjQgQEAKICAgICBuYW1lcyA9IFtdCiAgICAgdHJ5OgogICAgICAgICBuYW1lcyA9IG9zLmxpc3RkaXIocGF0aCkKLSAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgIG9uZXJyb3Iob3MubGlzdGRpciwgcGF0aCwgc3lzLmV4Y19pbmZvKCkpCiAgICAgZm9yIG5hbWUgaW4gbmFtZXM6CiAgICAgICAgIGZ1bGxuYW1lID0gb3MucGF0aC5qb2luKHBhdGgsIG5hbWUpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG1vZGUgPSBvcy5sc3RhdChmdWxsbmFtZSkuc3RfbW9kZQotICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgbW9kZSA9IDAKICAgICAgICAgaWYgc3RhdC5TX0lTRElSKG1vZGUpOgogICAgICAgICAgICAgX3JtdHJlZV91bnNhZmUoZnVsbG5hbWUsIG9uZXJyb3IpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgb3MudW5saW5rKGZ1bGxuYW1lKQotICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgb25lcnJvcihvcy51bmxpbmssIGZ1bGxuYW1lLCBzeXMuZXhjX2luZm8oKSkKICAgICB0cnk6CiAgICAgICAgIG9zLnJtZGlyKHBhdGgpCi0gICAgZXhjZXB0IG9zLmVycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICBvbmVycm9yKG9zLnJtZGlyLCBwYXRoLCBzeXMuZXhjX2luZm8oKSkKIAogIyBWZXJzaW9uIHVzaW5nIGZkLWJhc2VkIEFQSXMgdG8gcHJvdGVjdCBhZ2FpbnN0IHJhY2VzCkBAIC00NjQsNyArNDYzLDcgQEAKICAgICAgICAgICAgICAgICBfcm10cmVlX3NhZmVfZmQoZmQsIHBhdGgsIG9uZXJyb3IpCiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBvcy5ybWRpcihwYXRoKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgb25lcnJvcihvcy5ybWRpciwgcGF0aCwgc3lzLmV4Y19pbmZvKCkpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHRyeToKZGlmZiAtLWdpdCBhL0xpYi9zaXRlLnB5IGIvTGliL3NpdGUucHkKaW5kZXggMTNlNzMzNi4uOTZhNGJlZiAxMDA2NDQKLS0tIGEvTGliL3NpdGUucHkKKysrIGIvTGliL3NpdGUucHkKQEAgLTU4LDExICs1OCwxNCBAQAogYmVjYXVzZSBiYXIucHRoIGNvbWVzIGFscGhhYmV0aWNhbGx5IGJlZm9yZSBmb28ucHRoOyBhbmQgc3BhbSBpcwogb21pdHRlZCBiZWNhdXNlIGl0IGlzIG5vdCBtZW50aW9uZWQgaW4gZWl0aGVyIHBhdGggY29uZmlndXJhdGlvbiBmaWxlLgogCi1BZnRlciB0aGVzZSBwYXRoIG1hbmlwdWxhdGlvbnMsIGFuIGF0dGVtcHQgaXMgbWFkZSB0byBpbXBvcnQgYSBtb2R1bGUKK1RoZSByZWFkbGluZSBtb2R1bGUgaXMgYWxzbyBhdXRvbWF0aWNhbGx5IGNvbmZpZ3VyZWQgdG8gZW5hYmxlCitjb21wbGV0aW9uIGZvciBzeXN0ZW1zIHRoYXQgc3VwcG9ydCBpdC4gIFRoaXMgY2FuIGJlIG92ZXJyaWRlbiBpbgorc2l0ZWN1c3RvbWl6ZSwgdXNlcmN1c3RvbWl6ZSBvciBQWVRIT05TVEFSVFVQLgorCitBZnRlciB0aGVzZSBvcGVyYXRpb25zLCBhbiBhdHRlbXB0IGlzIG1hZGUgdG8gaW1wb3J0IGEgbW9kdWxlCiBuYW1lZCBzaXRlY3VzdG9taXplLCB3aGljaCBjYW4gcGVyZm9ybSBhcmJpdHJhcnkgYWRkaXRpb25hbAogc2l0ZS1zcGVjaWZpYyBjdXN0b21pemF0aW9ucy4gIElmIHRoaXMgaW1wb3J0IGZhaWxzIHdpdGggYW4KIEltcG9ydEVycm9yIGV4Y2VwdGlvbiwgaXQgaXMgc2lsZW50bHkgaWdub3JlZC4KLQogIiIiCiAKIGltcG9ydCBzeXMKQEAgLTE0NiwxNCArMTQ5LDE0IEBACiAgICAgICAgYW5kIGFkZCB0aGF0IHRvIGtub3duX3BhdGhzLCBvciBleGVjdXRlIGl0IGlmIGl0IHN0YXJ0cyB3aXRoICdpbXBvcnQgJy4KICAgICAiIiIKICAgICBpZiBrbm93bl9wYXRocyBpcyBOb25lOgotICAgICAgICBfaW5pdF9wYXRoaW5mbygpCisgICAgICAgIGtub3duX3BhdGhzID0gX2luaXRfcGF0aGluZm8oKQogICAgICAgICByZXNldCA9IDEKICAgICBlbHNlOgogICAgICAgICByZXNldCA9IDAKICAgICBmdWxsbmFtZSA9IG9zLnBhdGguam9pbihzaXRlZGlyLCBuYW1lKQogICAgIHRyeToKICAgICAgICAgZiA9IG9wZW4oZnVsbG5hbWUsICJyIikKLSAgICBleGNlcHQgSU9FcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgcmV0dXJuCiAgICAgd2l0aCBmOgogICAgICAgICBmb3IgbiwgbGluZSBpbiBlbnVtZXJhdGUoZik6CkBAIC0xOTYsNyArMTk5LDcgQEAKICAgICAgICAga25vd25fcGF0aHMuYWRkKHNpdGVkaXJjYXNlKQogICAgIHRyeToKICAgICAgICAgbmFtZXMgPSBvcy5saXN0ZGlyKHNpdGVkaXIpCi0gICAgZXhjZXB0IG9zLmVycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICByZXR1cm4KICAgICBuYW1lcyA9IFtuYW1lIGZvciBuYW1lIGluIG5hbWVzIGlmIG5hbWUuZW5kc3dpdGgoIi5wdGgiKV0KICAgICBmb3IgbmFtZSBpbiBzb3J0ZWQobmFtZXMpOgpAQCAtMzAwLDkgKzMwMyw3IEBACiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBzZWVuLmFkZChwcmVmaXgpCiAKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgnb3MyZW14JywgJ3Jpc2NvcycpOgotICAgICAgICAgICAgc2l0ZXBhY2thZ2VzLmFwcGVuZChvcy5wYXRoLmpvaW4ocHJlZml4LCAiTGliIiwgInNpdGUtcGFja2FnZXMiKSkKLSAgICAgICAgZWxpZiBvcy5zZXAgPT0gJy8nOgorICAgICAgICBpZiBvcy5zZXAgPT0gJy8nOgogICAgICAgICAgICAgc2l0ZXBhY2thZ2VzLmFwcGVuZChvcy5wYXRoLmpvaW4ocHJlZml4LCAibGliIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHl0aG9uIiArIHN5cy52ZXJzaW9uWzozXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2l0ZS1wYWNrYWdlcyIpKQpAQCAtMzI5LDIzICszMzAsNiBAQAogCiAgICAgcmV0dXJuIGtub3duX3BhdGhzCiAKLWRlZiBzZXRCRUdJTkxJQlBBVEgoKToKLSAgICAiIiJUaGUgT1MvMiBFTVggcG9ydCBoYXMgb3B0aW9uYWwgZXh0ZW5zaW9uIG1vZHVsZXMgdGhhdCBkbyBkb3VibGUgZHV0eQotICAgIGFzIERMTHMgKGFuZCBtdXN0IHVzZSB0aGUgLkRMTCBmaWxlIGV4dGVuc2lvbikgZm9yIG90aGVyIGV4dGVuc2lvbnMuCi0gICAgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggbmVlZHMgdG8gYmUgYW1lbmRlZCBzbyB0aGVzZSB3aWxsIGJlIGZvdW5kCi0gICAgZHVyaW5nIG1vZHVsZSBpbXBvcnQuICBVc2UgQkVHSU5MSUJQQVRIIHNvIHRoYXQgdGhlc2UgYXJlIGF0IHRoZSBzdGFydAotICAgIG9mIHRoZSBsaWJyYXJ5IHNlYXJjaCBwYXRoLgotCi0gICAgIiIiCi0gICAgZGxscGF0aCA9IG9zLnBhdGguam9pbihzeXMucHJlZml4LCAiTGliIiwgImxpYi1keW5sb2FkIikKLSAgICBsaWJwYXRoID0gb3MuZW52aXJvblsnQkVHSU5MSUJQQVRIJ10uc3BsaXQoJzsnKQotICAgIGlmIGxpYnBhdGhbLTFdOgotICAgICAgICBsaWJwYXRoLmFwcGVuZChkbGxwYXRoKQotICAgIGVsc2U6Ci0gICAgICAgIGxpYnBhdGhbLTFdID0gZGxscGF0aAotICAgIG9zLmVudmlyb25bJ0JFR0lOTElCUEFUSCddID0gJzsnLmpvaW4obGlicGF0aCkKLQotCiBkZWYgc2V0cXVpdCgpOgogICAgICIiIkRlZmluZSBuZXcgYnVpbHRpbnMgJ3F1aXQnIGFuZCAnZXhpdCcuCiAKQEAgLTM5OCwxMSArMzgyLDEwIEBACiAgICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gc2VsZi5fX2ZpbGVzOgogICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gb3MucGF0aC5qb2luKGRpciwgZmlsZW5hbWUpCiAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBmcCA9IG9wZW4oZmlsZW5hbWUsICJyIikKLSAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGZwLnJlYWQoKQotICAgICAgICAgICAgICAgICAgICBmcC5jbG9zZSgpCisgICAgICAgICAgICAgICAgICAgIHdpdGggb3BlbihmaWxlbmFtZSwgInIiKSBhcyBmcDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBmcC5yZWFkKCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgaWYgZGF0YToKICAgICAgICAgICAgICAgICBicmVhawpAQCAtNDcyLDYgKzQ1NSw0OCBAQAogZGVmIHNldGhlbHBlcigpOgogICAgIGJ1aWx0aW5zLmhlbHAgPSBfSGVscGVyKCkKIAorZGVmIGVuYWJsZXJsY29tcGxldGVyKCk6CisgICAgIiIiRW5hYmxlIGRlZmF1bHQgcmVhZGxpbmUgY29uZmlndXJhdGlvbiBvbiBpbnRlcmFjdGl2ZSBwcm9tcHRzLCBieQorICAgIHJlZ2lzdGVyaW5nIGEgc3lzLl9faW50ZXJhY3RpdmVob29rX18uCisKKyAgICBJZiB0aGUgcmVhZGxpbmUgbW9kdWxlIGNhbiBiZSBpbXBvcnRlZCwgdGhlIGhvb2sgd2lsbCBzZXQgdGhlIFRhYiBrZXkKKyAgICBhcyBjb21wbGV0aW9uIGtleSBhbmQgcmVnaXN0ZXIgfi8ucHl0aG9uX2hpc3RvcnkgYXMgaGlzdG9yeSBmaWxlLgorICAgIFRoaXMgY2FuIGJlIG92ZXJyaWRlbiBpbiB0aGUgc2l0ZWN1c3RvbWl6ZSBvciB1c2VyY3VzdG9taXplIG1vZHVsZSwKKyAgICBvciBpbiBhIFBZVEhPTlNUQVJUVVAgZmlsZS4KKyAgICAiIiIKKyAgICBkZWYgcmVnaXN0ZXJfcmVhZGxpbmUoKToKKyAgICAgICAgaW1wb3J0IGF0ZXhpdAorICAgICAgICB0cnk6CisgICAgICAgICAgICBpbXBvcnQgcmVhZGxpbmUKKyAgICAgICAgICAgIGltcG9ydCBybGNvbXBsZXRlcgorICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIFJlYWRpbmcgdGhlIGluaXRpYWxpemF0aW9uIChjb25maWcpIGZpbGUgbWF5IG5vdCBiZSBlbm91Z2ggdG8gc2V0IGEKKyAgICAgICAgIyBjb21wbGV0aW9uIGtleSwgc28gd2Ugc2V0IG9uZSBmaXJzdCBhbmQgdGhlbiByZWFkIHRoZSBmaWxlCisgICAgICAgIGlmICdsaWJlZGl0JyBpbiBnZXRhdHRyKHJlYWRsaW5lLCAnX19kb2NfXycsICcnKToKKyAgICAgICAgICAgIHJlYWRsaW5lLnBhcnNlX2FuZF9iaW5kKCdiaW5kIF5JIHJsX2NvbXBsZXRlJykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlYWRsaW5lLnBhcnNlX2FuZF9iaW5kKCd0YWI6IGNvbXBsZXRlJykKKworICAgICAgICB0cnk6CisgICAgICAgICAgICByZWFkbGluZS5yZWFkX2luaXRfZmlsZSgpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgIyBBbiBPU0Vycm9yIGhlcmUgY291bGQgaGF2ZSBtYW55IGNhdXNlcywgYnV0IHRoZSBtb3N0IGxpa2VseSBvbmUKKyAgICAgICAgICAgICMgaXMgdGhhdCB0aGVyZSdzIG5vIC5pbnB1dHJjIGZpbGUgKG9yIC5lZGl0cmMgZmlsZSBpbiB0aGUgY2FzZSBvZgorICAgICAgICAgICAgIyBNYWMgT1MgWCArIGxpYmVkaXQpIGluIHRoZSBleHBlY3RlZCBsb2NhdGlvbi4gIEluIHRoYXQgY2FzZSwgd2UKKyAgICAgICAgICAgICMgd2FudCB0byBpZ25vcmUgdGhlIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBoaXN0b3J5ID0gb3MucGF0aC5qb2luKG9zLnBhdGguZXhwYW5kdXNlcignficpLCAnLnB5dGhvbl9oaXN0b3J5JykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVhZGxpbmUucmVhZF9oaXN0b3J5X2ZpbGUoaGlzdG9yeSkKKyAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGF0ZXhpdC5yZWdpc3RlcihyZWFkbGluZS53cml0ZV9oaXN0b3J5X2ZpbGUsIGhpc3RvcnkpCisKKyAgICBzeXMuX19pbnRlcmFjdGl2ZWhvb2tfXyA9IHJlZ2lzdGVyX3JlYWRsaW5lCisKIGRlZiBhbGlhc21iY3MoKToKICAgICAiIiJPbiBXaW5kb3dzLCBzb21lIGRlZmF1bHQgZW5jb2RpbmdzIGFyZSBub3QgcHJvdmlkZWQgYnkgUHl0aG9uLAogICAgIHdoaWxlIHRoZXkgYXJlIGFsd2F5cyBhdmFpbGFibGUgYXMgIm1iY3MiIGluIGVhY2ggbG9jYWxlLiBNYWtlCkBAIC01ODgsMTEgKzYxMywxMCBAQAogICAgICAgICBFTkFCTEVfVVNFUl9TSVRFID0gY2hlY2tfZW5hYmxldXNlcnNpdGUoKQogICAgIGtub3duX3BhdGhzID0gYWRkdXNlcnNpdGVwYWNrYWdlcyhrbm93bl9wYXRocykKICAgICBrbm93bl9wYXRocyA9IGFkZHNpdGVwYWNrYWdlcyhrbm93bl9wYXRocykKLSAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ29zMmVteCc6Ci0gICAgICAgIHNldEJFR0lOTElCUEFUSCgpCiAgICAgc2V0cXVpdCgpCiAgICAgc2V0Y29weXJpZ2h0KCkKICAgICBzZXRoZWxwZXIoKQorICAgIGVuYWJsZXJsY29tcGxldGVyKCkKICAgICBhbGlhc21iY3MoKQogICAgIGV4ZWNzaXRlY3VzdG9taXplKCkKICAgICBpZiBFTkFCTEVfVVNFUl9TSVRFOgpkaWZmIC0tZ2l0IGEvTGliL3NtdHBkLnB5IGIvTGliL3NtdHBkLnB5CmluZGV4IDc3OGQ2ZDYuLmYyODAzNmEgMTAwNzU1Ci0tLSBhL0xpYi9zbXRwZC5weQorKysgYi9MaWIvc210cGQucHkKQEAgLTEyMSw4ICsxMjEsOSBAQAogICAgICAgICB9KQogICAgIG1heF9jb21tYW5kX3NpemVfbGltaXQgPSBtYXgoY29tbWFuZF9zaXplX2xpbWl0cy52YWx1ZXMoKSkKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXJ2ZXIsIGNvbm4sIGFkZHIsIGRhdGFfc2l6ZV9saW1pdD1EQVRBX1NJWkVfREVGQVVMVCk6Ci0gICAgICAgIGFzeW5jaGF0LmFzeW5jX2NoYXQuX19pbml0X18oc2VsZiwgY29ubikKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2VydmVyLCBjb25uLCBhZGRyLCBkYXRhX3NpemVfbGltaXQ9REFUQV9TSVpFX0RFRkFVTFQsCisgICAgICAgICAgICAgICAgIG1hcD1Ob25lKToKKyAgICAgICAgYXN5bmNoYXQuYXN5bmNfY2hhdC5fX2luaXRfXyhzZWxmLCBjb25uLCBtYXA9bWFwKQogICAgICAgICBzZWxmLnNtdHBfc2VydmVyID0gc2VydmVyCiAgICAgICAgIHNlbGYuY29ubiA9IGNvbm4KICAgICAgICAgc2VsZi5hZGRyID0gYWRkcgpAQCAtMTM3LDcgKzEzOCw3IEBACiAgICAgICAgIHNlbGYubnVtX2J5dGVzID0gMAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnBlZXIgPSBjb25uLmdldHBlZXJuYW1lKCkKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlcnI6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgICAgICMgYSByYWNlIGNvbmRpdGlvbiAgbWF5IG9jY3VyIGlmIHRoZSBvdGhlciBlbmQgaXMgY2xvc2luZwogICAgICAgICAgICAgIyBiZWZvcmUgd2UgY2FuIGdldCB0aGUgcGVlcm5hbWUKICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQpAQCAtNTc2LDExICs1NzcsMTEgQEAKICAgICBjaGFubmVsX2NsYXNzID0gU01UUENoYW5uZWwKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2NhbGFkZHIsIHJlbW90ZWFkZHIsCi0gICAgICAgICAgICAgICAgIGRhdGFfc2l6ZV9saW1pdD1EQVRBX1NJWkVfREVGQVVMVCk6CisgICAgICAgICAgICAgICAgIGRhdGFfc2l6ZV9saW1pdD1EQVRBX1NJWkVfREVGQVVMVCwgbWFwPU5vbmUpOgogICAgICAgICBzZWxmLl9sb2NhbGFkZHIgPSBsb2NhbGFkZHIKICAgICAgICAgc2VsZi5fcmVtb3RlYWRkciA9IHJlbW90ZWFkZHIKICAgICAgICAgc2VsZi5kYXRhX3NpemVfbGltaXQgPSBkYXRhX3NpemVfbGltaXQKLSAgICAgICAgYXN5bmNvcmUuZGlzcGF0Y2hlci5fX2luaXRfXyhzZWxmKQorICAgICAgICBhc3luY29yZS5kaXNwYXRjaGVyLl9faW5pdF9fKHNlbGYsIG1hcD1tYXApCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuY3JlYXRlX3NvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQogICAgICAgICAgICAgIyB0cnkgdG8gcmUtdXNlIGEgc2VydmVyIHBvcnQgaWYgcG9zc2libGUKQEAgLTU5Nyw3ICs1OTgsOCBAQAogCiAgICAgZGVmIGhhbmRsZV9hY2NlcHRlZChzZWxmLCBjb25uLCBhZGRyKToKICAgICAgICAgcHJpbnQoJ0luY29taW5nIGNvbm5lY3Rpb24gZnJvbSAlcycgJSByZXByKGFkZHIpLCBmaWxlPURFQlVHU1RSRUFNKQotICAgICAgICBjaGFubmVsID0gc2VsZi5jaGFubmVsX2NsYXNzKHNlbGYsIGNvbm4sIGFkZHIsIHNlbGYuZGF0YV9zaXplX2xpbWl0KQorICAgICAgICBjaGFubmVsID0gc2VsZi5jaGFubmVsX2NsYXNzKHNlbGYsIGNvbm4sIGFkZHIsIHNlbGYuZGF0YV9zaXplX2xpbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX21hcCkKIAogICAgICMgQVBJIGZvciAiZG9pbmcgc29tZXRoaW5nIHVzZWZ1bCB3aXRoIHRoZSBtZXNzYWdlIgogICAgIGRlZiBwcm9jZXNzX21lc3NhZ2Uoc2VsZiwgcGVlciwgbWFpbGZyb20sIHJjcHR0b3MsIGRhdGEpOgpAQCAtNjY4LDcgKzY3MCw3IEBACiAgICAgICAgIGV4Y2VwdCBzbXRwbGliLlNNVFBSZWNpcGllbnRzUmVmdXNlZCBhcyBlOgogICAgICAgICAgICAgcHJpbnQoJ2dvdCBTTVRQUmVjaXBpZW50c1JlZnVzZWQnLCBmaWxlPURFQlVHU1RSRUFNKQogICAgICAgICAgICAgcmVmdXNlZCA9IGUucmVjaXBpZW50cwotICAgICAgICBleGNlcHQgKHNvY2tldC5lcnJvciwgc210cGxpYi5TTVRQRXhjZXB0aW9uKSBhcyBlOgorICAgICAgICBleGNlcHQgKE9TRXJyb3IsIHNtdHBsaWIuU01UUEV4Y2VwdGlvbikgYXMgZToKICAgICAgICAgICAgIHByaW50KCdnb3QnLCBlLl9fY2xhc3NfXywgZmlsZT1ERUJVR1NUUkVBTSkKICAgICAgICAgICAgICMgQWxsIHJlY2lwaWVudHMgd2VyZSByZWZ1c2VkLiAgSWYgdGhlIGV4Y2VwdGlvbiBoYWQgYW4gYXNzb2NpYXRlZAogICAgICAgICAgICAgIyBlcnJvciBjb2RlLCB1c2UgaXQuICBPdGhlcndpc2UsZmFrZSBpdCB3aXRoIGEgbm9uLXRyaWdnZXJpbmcKQEAgLTg1MCw4ICs4NTIsNyBAQAogICAgICAgICBub2JvZHkgPSBwd2QuZ2V0cHduYW0oJ25vYm9keScpWzJdCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG9zLnNldHVpZChub2JvZHkpCi0gICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVQRVJNOiByYWlzZQorICAgICAgICBleGNlcHQgUGVybWlzc2lvbkVycm9yOgogICAgICAgICAgICAgcHJpbnQoJ0Nhbm5vdCBzZXR1aWQgIm5vYm9keSI7IHRyeSBydW5uaW5nIHdpdGggLW4gb3B0aW9uLicsIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgICAgIHN5cy5leGl0KDEpCiAgICAgdHJ5OgpkaWZmIC0tZ2l0IGEvTGliL3NtdHBsaWIucHkgYi9MaWIvc210cGxpYi5weQppbmRleCBmMmM4NDUyLi5jYzQ2ZTRmIDEwMDY0NAotLS0gYS9MaWIvc210cGxpYi5weQorKysgYi9MaWIvc210cGxpYi5weQpAQCAtNjYsNyArNjYsNyBAQAogT0xEU1RZTEVfQVVUSCA9IHJlLmNvbXBpbGUociJhdXRoPSguKikiLCByZS5JKQogCiAjIEV4Y2VwdGlvbiBjbGFzc2VzIHVzZWQgYnkgdGhpcyBtb2R1bGUuCi1jbGFzcyBTTVRQRXhjZXB0aW9uKEV4Y2VwdGlvbik6CitjbGFzcyBTTVRQRXhjZXB0aW9uKE9TRXJyb3IpOgogICAgICIiIkJhc2UgY2xhc3MgZm9yIGFsbCBleGNlcHRpb25zIHJhaXNlZCBieSB0aGlzIG1vZHVsZS4iIiIKIAogY2xhc3MgU01UUFNlcnZlckRpc2Nvbm5lY3RlZChTTVRQRXhjZXB0aW9uKToKQEAgLTMxMCw3ICszMTAsNyBAQAogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgcG9ydCA9IGludChwb3J0KQogICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBzb2NrZXQuZXJyb3IoIm5vbm51bWVyaWMgcG9ydCIpCisgICAgICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoIm5vbm51bWVyaWMgcG9ydCIpCiAgICAgICAgIGlmIG5vdCBwb3J0OgogICAgICAgICAgICAgcG9ydCA9IHNlbGYuZGVmYXVsdF9wb3J0CiAgICAgICAgIGlmIHNlbGYuZGVidWdsZXZlbCA+IDA6CkBAIC0zMzEsNyArMzMxLDcgQEAKICAgICAgICAgICAgICAgICBzID0gcy5lbmNvZGUoImFzY2lpIikKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzZWxmLnNvY2suc2VuZGFsbChzKQotICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQogICAgICAgICAgICAgICAgIHJhaXNlIFNNVFBTZXJ2ZXJEaXNjb25uZWN0ZWQoJ1NlcnZlciBub3QgY29ubmVjdGVkJykKICAgICAgICAgZWxzZToKQEAgLTM2NCw3ICszNjQsNyBAQAogICAgICAgICB3aGlsZSAxOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGxpbmUgPSBzZWxmLmZpbGUucmVhZGxpbmUoKQotICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICBzZWxmLmNsb3NlKCkKICAgICAgICAgICAgICAgICByYWlzZSBTTVRQU2VydmVyRGlzY29ubmVjdGVkKCJDb25uZWN0aW9uIHVuZXhwZWN0ZWRseSBjbG9zZWQ6ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc3RyKGUpKQpAQCAtOTMwLDcgKzkzMCw3IEBACiAgICAgICAgICAgICBzZWxmLnNvY2sgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9VTklYLCBzb2NrZXQuU09DS19TVFJFQU0pCiAgICAgICAgICAgICBzZWxmLmZpbGUgPSBOb25lCiAgICAgICAgICAgICBzZWxmLnNvY2suY29ubmVjdChob3N0KQotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIGlmIHNlbGYuZGVidWdsZXZlbCA+IDA6CiAgICAgICAgICAgICAgICAgcHJpbnQoJ2Nvbm5lY3QgZmFpbDonLCBob3N0LCBmaWxlPXN0ZGVycikKICAgICAgICAgICAgIGlmIHNlbGYuc29jazoKZGlmZiAtLWdpdCBhL0xpYi9zbmRoZHIucHkgYi9MaWIvc25kaGRyLnB5CmluZGV4IDlmNWRjYzkuLjI0MGU1MDcgMTAwNjQ0Ci0tLSBhL0xpYi9zbmRoZHIucHkKKysrIGIvTGliL3NuZGhkci5weQpAQCAtMTEsNyArMTEsNyBAQAogLSBudW1iZXIgb2YgYml0cy9zYW1wbGUsIG9yICdVJyBmb3IgVS1MQVcsIG9yICdBJyBmb3IgQS1MQVcKIAogSWYgdGhlIGZpbGUgZG9lc24ndCBoYXZlIGEgcmVjb2duaXphYmxlIHR5cGUsIGl0IHJldHVybnMgTm9uZS4KLUlmIHRoZSBmaWxlIGNhbid0IGJlIG9wZW5lZCwgSU9FcnJvciBpcyByYWlzZWQuCitJZiB0aGUgZmlsZSBjYW4ndCBiZSBvcGVuZWQsIE9TRXJyb3IgaXMgcmFpc2VkLgogCiBUbyBjb21wdXRlIHRoZSB0b3RhbCB0aW1lLCBkaXZpZGUgdGhlIG51bWJlciBvZiBmcmFtZXMgYnkgdGhlCiBzYW1wbGluZyByYXRlIChhIGZyYW1lIGNvbnRhaW5zIGEgc2FtcGxlIGZvciBlYWNoIGNoYW5uZWwpLgpAQCAtMTM3LDE0ICsxMzcsMTcgQEAKIAogCiBkZWYgdGVzdF93YXYoaCwgZik6CisgICAgaW1wb3J0IHdhdmUKICAgICAjICdSSUZGJyA8bGVuPiAnV0FWRScgJ2ZtdCAnIDxsZW4+CiAgICAgaWYgbm90IGguc3RhcnRzd2l0aChiJ1JJRkYnKSBvciBoWzg6MTJdICE9IGInV0FWRScgb3IgaFsxMjoxNl0gIT0gYidmbXQgJzoKICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICBzdHlsZSA9IGdldF9zaG9ydF9sZShoWzIwOjIyXSkKLSAgICBuY2hhbm5lbHMgPSBnZXRfc2hvcnRfbGUoaFsyMjoyNF0pCi0gICAgcmF0ZSA9IGdldF9sb25nX2xlKGhbMjQ6MjhdKQotICAgIHNhbXBsZV9iaXRzID0gZ2V0X3Nob3J0X2xlKGhbMzQ6MzZdKQotICAgIHJldHVybiAnd2F2JywgcmF0ZSwgbmNoYW5uZWxzLCAtMSwgc2FtcGxlX2JpdHMKKyAgICBmLnNlZWsoMCkKKyAgICB0cnk6CisgICAgICAgIHcgPSB3YXZlLm9wZW5mcChmLCAncicpCisgICAgZXhjZXB0IChFT0ZFcnJvciwgd2F2ZS5FcnJvcik6CisgICAgICAgIHJldHVybiBOb25lCisgICAgcmV0dXJuICgnd2F2Jywgdy5nZXRmcmFtZXJhdGUoKSwgdy5nZXRuY2hhbm5lbHMoKSwKKyAgICAgICAgICAgICAgICAgICB3LmdldG5mcmFtZXMoKSwgOCp3LmdldHNhbXB3aWR0aCgpKQogCiB0ZXN0cy5hcHBlbmQodGVzdF93YXYpCiAKQEAgLTIzMCw3ICsyMzMsNyBAQAogICAgICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgcHJpbnQod2hhdChmaWxlbmFtZSkpCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgIHByaW50KCcqKiogbm90IGZvdW5kICoqKicpCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CmRpZmYgLS1naXQgYS9MaWIvc29ja2V0LnB5IGIvTGliL3NvY2tldC5weQppbmRleCBkNGYxYjY1Li45NmY4ZWQwIDEwMDY0NAotLS0gYS9MaWIvc29ja2V0LnB5CisrKyBiL0xpYi9zb2NrZXQucHkKQEAgLTEwMywxMyArMTAzLDMyIEBACiAgICAgICAgICAgICBzZWxmLmNsb3NlKCkKIAogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgIiIiV3JhcCBfX3JlcHJfXygpIHRvIHJldmVhbCB0aGUgcmVhbCBjbGFzcyBuYW1lLiIiIgotICAgICAgICBzID0gX3NvY2tldC5zb2NrZXQuX19yZXByX18oc2VsZikKLSAgICAgICAgaWYgcy5zdGFydHN3aXRoKCI8c29ja2V0IG9iamVjdCIpOgotICAgICAgICAgICAgcyA9ICI8JXMuJXMlcyVzIiAlIChzZWxmLl9fY2xhc3NfXy5fX21vZHVsZV9fLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0cihzZWxmLCAnX2Nsb3NlZCcsIEZhbHNlKSBhbmQgIiBbY2xvc2VkXSAiIG9yICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzWzc6XSkKKyAgICAgICAgIiIiV3JhcCBfX3JlcHJfXygpIHRvIHJldmVhbCB0aGUgcmVhbCBjbGFzcyBuYW1lIGFuZCBzb2NrZXQKKyAgICAgICAgYWRkcmVzcyhlcykuCisgICAgICAgICIiIgorICAgICAgICBjbG9zZWQgPSBnZXRhdHRyKHNlbGYsICdfY2xvc2VkJywgRmFsc2UpCisgICAgICAgIHMgPSAiPCVzLiVzJXMgZmQ9JWksIGZhbWlseT0laSwgdHlwZT0laSwgcHJvdG89JWkiIFwKKyAgICAgICAgICAgICUgKHNlbGYuX19jbGFzc19fLl9fbW9kdWxlX18sCisgICAgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgICAgICIgW2Nsb3NlZF0iIGlmIGNsb3NlZCBlbHNlICIiLAorICAgICAgICAgICAgICAgc2VsZi5maWxlbm8oKSwKKyAgICAgICAgICAgICAgIHNlbGYuZmFtaWx5LAorICAgICAgICAgICAgICAgc2VsZi50eXBlLAorICAgICAgICAgICAgICAgc2VsZi5wcm90bykKKyAgICAgICAgaWYgbm90IGNsb3NlZDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBsYWRkciA9IHNlbGYuZ2V0c29ja25hbWUoKQorICAgICAgICAgICAgICAgIGlmIGxhZGRyOgorICAgICAgICAgICAgICAgICAgICBzICs9ICIsIGxhZGRyPSVzIiAlIHN0cihsYWRkcikKKyAgICAgICAgICAgIGV4Y2VwdCBlcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmFkZHIgPSBzZWxmLmdldHBlZXJuYW1lKCkKKyAgICAgICAgICAgICAgICBpZiByYWRkcjoKKyAgICAgICAgICAgICAgICAgICAgcyArPSAiLCByYWRkcj0lcyIgJSBzdHIocmFkZHIpCisgICAgICAgICAgICBleGNlcHQgZXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBzICs9ICc+JwogICAgICAgICByZXR1cm4gcwogCiAgICAgZGVmIF9fZ2V0c3RhdGVfXyhzZWxmKToKQEAgLTI5MSw3ICszMTAsNyBAQAogICAgICAgICBzZWxmLl9jaGVja0Nsb3NlZCgpCiAgICAgICAgIHNlbGYuX2NoZWNrUmVhZGFibGUoKQogICAgICAgICBpZiBzZWxmLl90aW1lb3V0X29jY3VycmVkOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigiY2Fubm90IHJlYWQgZnJvbSB0aW1lZCBvdXQgb2JqZWN0IikKKyAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoImNhbm5vdCByZWFkIGZyb20gdGltZWQgb3V0IG9iamVjdCIpCiAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3NvY2sucmVjdl9pbnRvKGIpCmRpZmYgLS1naXQgYS9MaWIvc29ja2V0c2VydmVyLnB5IGIvTGliL3NvY2tldHNlcnZlci5weQppbmRleCA4MzMyZmRmLi5lOWU0ZTRlIDEwMDY0NAotLS0gYS9MaWIvc29ja2V0c2VydmVyLnB5CisrKyBiL0xpYi9zb2NrZXRzZXJ2ZXIucHkKQEAgLTI5OSw3ICsyOTksNyBAQAogICAgICAgICAiIiIKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmVxdWVzdCwgY2xpZW50X2FkZHJlc3MgPSBzZWxmLmdldF9yZXF1ZXN0KCkKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgaWYgc2VsZi52ZXJpZnlfcmVxdWVzdChyZXF1ZXN0LCBjbGllbnRfYWRkcmVzcyk6CiAgICAgICAgICAgICB0cnk6CkBAIC00NzksNyArNDc5LDcgQEAKICAgICAgICAgICAgICNleHBsaWNpdGx5IHNodXRkb3duLiAgc29ja2V0LmNsb3NlKCkgbWVyZWx5IHJlbGVhc2VzCiAgICAgICAgICAgICAjdGhlIHNvY2tldCBhbmQgd2FpdHMgZm9yIEdDIHRvIHBlcmZvcm0gdGhlIGFjdHVhbCBjbG9zZS4KICAgICAgICAgICAgIHJlcXVlc3Quc2h1dGRvd24oc29ja2V0LlNIVVRfV1IpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgcGFzcyAjc29tZSBwbGF0Zm9ybXMgbWF5IHJhaXNlIEVOT1RDT05OIGhlcmUKICAgICAgICAgc2VsZi5jbG9zZV9yZXF1ZXN0KHJlcXVlc3QpCiAKQEAgLTUzMiw3ICs1MzIsNyBAQAogICAgICAgICAgICAgIyBjaGlsZHJlbi4KICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBwaWQsIHN0YXR1cyA9IG9zLndhaXRwaWQoMCwgMCkKLSAgICAgICAgICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgIHBpZCA9IE5vbmUKICAgICAgICAgICAgIGlmIHBpZCBub3QgaW4gc2VsZi5hY3RpdmVfY2hpbGRyZW46IGNvbnRpbnVlCiAgICAgICAgICAgICBzZWxmLmFjdGl2ZV9jaGlsZHJlbi5yZW1vdmUocGlkKQpAQCAtNTQ1LDcgKzU0NSw3IEBACiAgICAgICAgIGZvciBjaGlsZCBpbiBzZWxmLmFjdGl2ZV9jaGlsZHJlbjoKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBwaWQsIHN0YXR1cyA9IG9zLndhaXRwaWQoY2hpbGQsIG9zLldOT0hBTkcpCi0gICAgICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICBwaWQgPSBOb25lCiAgICAgICAgICAgICBpZiBub3QgcGlkOiBjb250aW51ZQogICAgICAgICAgICAgdHJ5OgpkaWZmIC0tZ2l0IGEvTGliL3NxbGl0ZTMvdGVzdC9kYmFwaS5weSBiL0xpYi9zcWxpdGUzL3Rlc3QvZGJhcGkucHkKaW5kZXggYjdlYzFhZC4uMDQ2NDlmYyAxMDA2NDQKLS0tIGEvTGliL3NxbGl0ZTMvdGVzdC9kYmFwaS5weQorKysgYi9MaWIvc3FsaXRlMy90ZXN0L2RiYXBpLnB5CkBAIC0yOCw2ICsyOCw5IEBACiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgdGhyZWFkaW5nID0gTm9uZQogCitmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgVEVTVEZOLCB1bmxpbmsKKworCiBjbGFzcyBNb2R1bGVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIENoZWNrQVBJTGV2ZWwoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3FsaXRlLmFwaWxldmVsLCAiMi4wIiwKQEAgLTE2Myw2ICsxNjYsMjEgQEAKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CiAgICAgICAgICAgICBzZWxmLmN4LmluX3RyYW5zYWN0aW9uID0gVHJ1ZQogCisgICAgZGVmIENoZWNrT3BlblVyaShzZWxmKToKKyAgICAgICAgaWYgc3FsaXRlLnNxbGl0ZV92ZXJzaW9uX2luZm8gPCAoMywgNywgNyk6CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNxbGl0ZS5Ob3RTdXBwb3J0ZWRFcnJvcik6CisgICAgICAgICAgICAgICAgc3FsaXRlLmNvbm5lY3QoJzptZW1vcnk6JywgdXJpPVRydWUpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHVubGluaywgVEVTVEZOKQorICAgICAgICB3aXRoIHNxbGl0ZS5jb25uZWN0KFRFU1RGTikgYXMgY3g6CisgICAgICAgICAgICBjeC5leGVjdXRlKCdjcmVhdGUgdGFibGUgdGVzdChpZCBpbnRlZ2VyKScpCisgICAgICAgIHdpdGggc3FsaXRlLmNvbm5lY3QoJ2ZpbGU6JyArIFRFU1RGTiwgdXJpPVRydWUpIGFzIGN4OgorICAgICAgICAgICAgY3guZXhlY3V0ZSgnaW5zZXJ0IGludG8gdGVzdChpZCkgdmFsdWVzKDApJykKKyAgICAgICAgd2l0aCBzcWxpdGUuY29ubmVjdCgnZmlsZTonICsgVEVTVEZOICsgJz9tb2RlPXJvJywgdXJpPVRydWUpIGFzIGN4OgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhzcWxpdGUuT3BlcmF0aW9uYWxFcnJvcik6CisgICAgICAgICAgICAgICAgY3guZXhlY3V0ZSgnaW5zZXJ0IGludG8gdGVzdChpZCkgdmFsdWVzKDEpJykKKworCiBjbGFzcyBDdXJzb3JUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLmN4ID0gc3FsaXRlLmNvbm5lY3QoIjptZW1vcnk6IikKZGlmZiAtLWdpdCBhL0xpYi9zcmVfY29tcGlsZS5weSBiL0xpYi9zcmVfY29tcGlsZS5weQppbmRleCA5MGUzYTI1Li5lYTZlNmJlIDEwMDY0NAotLS0gYS9MaWIvc3JlX2NvbXBpbGUucHkKKysrIGIvTGliL3NyZV9jb21waWxlLnB5CkBAIC02NSwxMyArNjUsNiBAQAogICAgICAgICBlbGlmIG9wIGluIFJFUEVBVElOR19DT0RFUzoKICAgICAgICAgICAgIGlmIGZsYWdzICYgU1JFX0ZMQUdfVEVNUExBVEU6CiAgICAgICAgICAgICAgICAgcmFpc2UgZXJyb3IoImludGVybmFsOiB1bnN1cHBvcnRlZCB0ZW1wbGF0ZSBvcGVyYXRvciIpCi0gICAgICAgICAgICAgICAgZW1pdChPUENPREVTW1JFUEVBVF0pCi0gICAgICAgICAgICAgICAgc2tpcCA9IF9sZW4oY29kZSk7IGVtaXQoMCkKLSAgICAgICAgICAgICAgICBlbWl0KGF2WzBdKQotICAgICAgICAgICAgICAgIGVtaXQoYXZbMV0pCi0gICAgICAgICAgICAgICAgX2NvbXBpbGUoY29kZSwgYXZbMl0sIGZsYWdzKQotICAgICAgICAgICAgICAgIGVtaXQoT1BDT0RFU1tTVUNDRVNTXSkKLSAgICAgICAgICAgICAgICBjb2RlW3NraXBdID0gX2xlbihjb2RlKSAtIHNraXAKICAgICAgICAgICAgIGVsaWYgX3NpbXBsZShhdikgYW5kIG9wIGlzIG5vdCBSRVBFQVQ6CiAgICAgICAgICAgICAgICAgaWYgb3AgaXMgTUFYX1JFUEVBVDoKICAgICAgICAgICAgICAgICAgICAgZW1pdChPUENPREVTW1JFUEVBVF9PTkVdKQpkaWZmIC0tZ2l0IGEvTGliL3NzbC5weSBiL0xpYi9zc2wucHkKaW5kZXggMzBlZTEzYi4uOGFmMjJjNyAxMDA2NDQKLS0tIGEvTGliL3NzbC5weQorKysgYi9MaWIvc3NsLnB5CkBAIC01Miw2ICs1MiwzOSBAQAogUFJPVE9DT0xfU1NMdjMKIFBST1RPQ09MX1NTTHYyMwogUFJPVE9DT0xfVExTdjEKK1BST1RPQ09MX1RMU3YxXzEKK1BST1RPQ09MX1RMU3YxXzIKKworVGhlIGZvbGxvd2luZyBjb25zdGFudHMgaWRlbnRpZnkgdmFyaW91cyBTU0wgYWxlcnQgbWVzc2FnZSBkZXNjcmlwdGlvbnMgYXMgcGVyCitodHRwOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL3Rscy1wYXJhbWV0ZXJzL3Rscy1wYXJhbWV0ZXJzLnhtbCN0bHMtcGFyYW1ldGVycy02CisKK0FMRVJUX0RFU0NSSVBUSU9OX0NMT1NFX05PVElGWQorQUxFUlRfREVTQ1JJUFRJT05fVU5FWFBFQ1RFRF9NRVNTQUdFCitBTEVSVF9ERVNDUklQVElPTl9CQURfUkVDT1JEX01BQworQUxFUlRfREVTQ1JJUFRJT05fUkVDT1JEX09WRVJGTE9XCitBTEVSVF9ERVNDUklQVElPTl9ERUNPTVBSRVNTSU9OX0ZBSUxVUkUKK0FMRVJUX0RFU0NSSVBUSU9OX0hBTkRTSEFLRV9GQUlMVVJFCitBTEVSVF9ERVNDUklQVElPTl9CQURfQ0VSVElGSUNBVEUKK0FMRVJUX0RFU0NSSVBUSU9OX1VOU1VQUE9SVEVEX0NFUlRJRklDQVRFCitBTEVSVF9ERVNDUklQVElPTl9DRVJUSUZJQ0FURV9SRVZPS0VECitBTEVSVF9ERVNDUklQVElPTl9DRVJUSUZJQ0FURV9FWFBJUkVECitBTEVSVF9ERVNDUklQVElPTl9DRVJUSUZJQ0FURV9VTktOT1dOCitBTEVSVF9ERVNDUklQVElPTl9JTExFR0FMX1BBUkFNRVRFUgorQUxFUlRfREVTQ1JJUFRJT05fVU5LTk9XTl9DQQorQUxFUlRfREVTQ1JJUFRJT05fQUNDRVNTX0RFTklFRAorQUxFUlRfREVTQ1JJUFRJT05fREVDT0RFX0VSUk9SCitBTEVSVF9ERVNDUklQVElPTl9ERUNSWVBUX0VSUk9SCitBTEVSVF9ERVNDUklQVElPTl9QUk9UT0NPTF9WRVJTSU9OCitBTEVSVF9ERVNDUklQVElPTl9JTlNVRkZJQ0lFTlRfU0VDVVJJVFkKK0FMRVJUX0RFU0NSSVBUSU9OX0lOVEVSTkFMX0VSUk9SCitBTEVSVF9ERVNDUklQVElPTl9VU0VSX0NBTkNFTExFRAorQUxFUlRfREVTQ1JJUFRJT05fTk9fUkVORUdPVElBVElPTgorQUxFUlRfREVTQ1JJUFRJT05fVU5TVVBQT1JURURfRVhURU5TSU9OCitBTEVSVF9ERVNDUklQVElPTl9DRVJUSUZJQ0FURV9VTk9CVEFJTkFCTEUKK0FMRVJUX0RFU0NSSVBUSU9OX1VOUkVDT0dOSVpFRF9OQU1FCitBTEVSVF9ERVNDUklQVElPTl9CQURfQ0VSVElGSUNBVEVfU1RBVFVTX1JFU1BPTlNFCitBTEVSVF9ERVNDUklQVElPTl9CQURfQ0VSVElGSUNBVEVfSEFTSF9WQUxVRQorQUxFUlRfREVTQ1JJUFRJT05fVU5LTk9XTl9QU0tfSURFTlRJVFkKICIiIgogCiBpbXBvcnQgdGV4dHdyYXAKQEAgLTY2LDM1ICs5OSwyMyBAQAogICAgIFNTTFN5c2NhbGxFcnJvciwgU1NMRU9GRXJyb3IsCiAgICAgKQogZnJvbSBfc3NsIGltcG9ydCBDRVJUX05PTkUsIENFUlRfT1BUSU9OQUwsIENFUlRfUkVRVUlSRUQKLWZyb20gX3NzbCBpbXBvcnQgKAotICAgIE9QX0FMTCwgT1BfTk9fU1NMdjIsIE9QX05PX1NTTHYzLCBPUF9OT19UTFN2MSwKLSAgICBPUF9DSVBIRVJfU0VSVkVSX1BSRUZFUkVOQ0UsIE9QX1NJTkdMRV9ESF9VU0UKLSAgICApCi10cnk6Ci0gICAgZnJvbSBfc3NsIGltcG9ydCBPUF9OT19DT01QUkVTU0lPTgotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIHBhc3MKLXRyeToKLSAgICBmcm9tIF9zc2wgaW1wb3J0IE9QX1NJTkdMRV9FQ0RIX1VTRQotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIHBhc3MKIGZyb20gX3NzbCBpbXBvcnQgUkFORF9zdGF0dXMsIFJBTkRfZWdkLCBSQU5EX2FkZCwgUkFORF9ieXRlcywgUkFORF9wc2V1ZG9fYnl0ZXMKLWZyb20gX3NzbCBpbXBvcnQgKAotICAgIFNTTF9FUlJPUl9aRVJPX1JFVFVSTiwKLSAgICBTU0xfRVJST1JfV0FOVF9SRUFELAotICAgIFNTTF9FUlJPUl9XQU5UX1dSSVRFLAotICAgIFNTTF9FUlJPUl9XQU5UX1g1MDlfTE9PS1VQLAotICAgIFNTTF9FUlJPUl9TWVNDQUxMLAotICAgIFNTTF9FUlJPUl9TU0wsCi0gICAgU1NMX0VSUk9SX1dBTlRfQ09OTkVDVCwKLSAgICBTU0xfRVJST1JfRU9GLAotICAgIFNTTF9FUlJPUl9JTlZBTElEX0VSUk9SX0NPREUsCi0gICAgKQorCitkZWYgX2ltcG9ydF9zeW1ib2xzKHByZWZpeCk6CisgICAgZm9yIG4gaW4gZGlyKF9zc2wpOgorICAgICAgICBpZiBuLnN0YXJ0c3dpdGgocHJlZml4KToKKyAgICAgICAgICAgIGdsb2JhbHMoKVtuXSA9IGdldGF0dHIoX3NzbCwgbikKKworX2ltcG9ydF9zeW1ib2xzKCdPUF8nKQorX2ltcG9ydF9zeW1ib2xzKCdBTEVSVF9ERVNDUklQVElPTl8nKQorX2ltcG9ydF9zeW1ib2xzKCdTU0xfRVJST1JfJykKKwogZnJvbSBfc3NsIGltcG9ydCBIQVNfU05JLCBIQVNfRUNESCwgSEFTX05QTgotZnJvbSBfc3NsIGltcG9ydCAoUFJPVE9DT0xfU1NMdjMsIFBST1RPQ09MX1NTTHYyMywKLSAgICAgICAgICAgICAgICAgIFBST1RPQ09MX1RMU3YxKQorCitmcm9tIF9zc2wgaW1wb3J0IFBST1RPQ09MX1NTTHYzLCBQUk9UT0NPTF9TU0x2MjMsIFBST1RPQ09MX1RMU3YxCiBmcm9tIF9zc2wgaW1wb3J0IF9PUEVOU1NMX0FQSV9WRVJTSU9OCiAKKwogX1BST1RPQ09MX05BTUVTID0gewogICAgIFBST1RPQ09MX1RMU3YxOiAiVExTdjEiLAogICAgIFBST1RPQ09MX1NTTHYyMzogIlNTTHYyMyIsCkBAIC0xMDgsMTMgKzEyOSwyMyBAQAogZWxzZToKICAgICBfUFJPVE9DT0xfTkFNRVNbUFJPVE9DT0xfU1NMdjJdID0gIlNTTHYyIgogCit0cnk6CisgICAgZnJvbSBfc3NsIGltcG9ydCBQUk9UT0NPTF9UTFN2MV8xLCBQUk9UT0NPTF9UTFN2MV8yCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgcGFzcworZWxzZToKKyAgICBfUFJPVE9DT0xfTkFNRVNbUFJPVE9DT0xfVExTdjFfMV0gPSAiVExTdjEuMSIKKyAgICBfUFJPVE9DT0xfTkFNRVNbUFJPVE9DT0xfVExTdjFfMl0gPSAiVExTdjEuMiIKKwogZnJvbSBzb2NrZXQgaW1wb3J0IGdldG5hbWVpbmZvIGFzIF9nZXRuYW1laW5mbwotZnJvbSBzb2NrZXQgaW1wb3J0IGVycm9yIGFzIHNvY2tldF9lcnJvcgogZnJvbSBzb2NrZXQgaW1wb3J0IHNvY2tldCwgQUZfSU5FVCwgU09DS19TVFJFQU0sIGNyZWF0ZV9jb25uZWN0aW9uCiBpbXBvcnQgYmFzZTY0ICAgICAgICAjIGZvciBERVItdG8tUEVNIHRyYW5zbGF0aW9uCiBpbXBvcnQgdHJhY2ViYWNrCiBpbXBvcnQgZXJybm8KIAorCitzb2NrZXRfZXJyb3IgPSBPU0Vycm9yICAjIGtlZXAgdGhhdCBwdWJsaWMgbmFtZSBpbiBtb2R1bGUgbmFtZXNwYWNlCisKIGlmIF9zc2wuSEFTX1RMU19VTklRVUU6CiAgICAgQ0hBTk5FTF9CSU5ESU5HX1RZUEVTID0gWyd0bHMtdW5pcXVlJ10KIGVsc2U6CkBAIC0xOTUsNyArMjI2LDcgQEAKICAgICAiIiJBbiBTU0xDb250ZXh0IGhvbGRzIHZhcmlvdXMgU1NMLXJlbGF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZAogICAgIGRhdGEsIHN1Y2ggYXMgY2VydGlmaWNhdGVzIGFuZCBwb3NzaWJseSBhIHByaXZhdGUga2V5LiIiIgogCi0gICAgX19zbG90c19fID0gKCdwcm90b2NvbCcsKQorICAgIF9fc2xvdHNfXyA9ICgncHJvdG9jb2wnLCAnX193ZWFrcmVmX18nKQogCiAgICAgZGVmIF9fbmV3X18oY2xzLCBwcm90b2NvbCwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgc2VsZiA9IF9TU0xDb250ZXh0Ll9fbmV3X18oY2xzLCBwcm90b2NvbCkKQEAgLTI0Myw3ICsyNzQsNyBAQAogICAgICAgICAgICAgICAgICBfY29udGV4dD1Ob25lKToKIAogICAgICAgICBpZiBfY29udGV4dDoKLSAgICAgICAgICAgIHNlbGYuY29udGV4dCA9IF9jb250ZXh0CisgICAgICAgICAgICBzZWxmLl9jb250ZXh0ID0gX2NvbnRleHQKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGlmIHNlcnZlcl9zaWRlIGFuZCBub3QgY2VydGZpbGU6CiAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY2VydGZpbGUgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIHNlcnZlci1zaWRlICIKQEAgLTI1MiwxNiArMjgzLDE2IEBACiAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY2VydGZpbGUgbXVzdCBiZSBzcGVjaWZpZWQiKQogICAgICAgICAgICAgaWYgY2VydGZpbGUgYW5kIG5vdCBrZXlmaWxlOgogICAgICAgICAgICAgICAgIGtleWZpbGUgPSBjZXJ0ZmlsZQotICAgICAgICAgICAgc2VsZi5jb250ZXh0ID0gU1NMQ29udGV4dChzc2xfdmVyc2lvbikKLSAgICAgICAgICAgIHNlbGYuY29udGV4dC52ZXJpZnlfbW9kZSA9IGNlcnRfcmVxcworICAgICAgICAgICAgc2VsZi5fY29udGV4dCA9IFNTTENvbnRleHQoc3NsX3ZlcnNpb24pCisgICAgICAgICAgICBzZWxmLl9jb250ZXh0LnZlcmlmeV9tb2RlID0gY2VydF9yZXFzCiAgICAgICAgICAgICBpZiBjYV9jZXJ0czoKLSAgICAgICAgICAgICAgICBzZWxmLmNvbnRleHQubG9hZF92ZXJpZnlfbG9jYXRpb25zKGNhX2NlcnRzKQorICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRleHQubG9hZF92ZXJpZnlfbG9jYXRpb25zKGNhX2NlcnRzKQogICAgICAgICAgICAgaWYgY2VydGZpbGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5jb250ZXh0LmxvYWRfY2VydF9jaGFpbihjZXJ0ZmlsZSwga2V5ZmlsZSkKKyAgICAgICAgICAgICAgICBzZWxmLl9jb250ZXh0LmxvYWRfY2VydF9jaGFpbihjZXJ0ZmlsZSwga2V5ZmlsZSkKICAgICAgICAgICAgIGlmIG5wbl9wcm90b2NvbHM6Ci0gICAgICAgICAgICAgICAgc2VsZi5jb250ZXh0LnNldF9ucG5fcHJvdG9jb2xzKG5wbl9wcm90b2NvbHMpCisgICAgICAgICAgICAgICAgc2VsZi5fY29udGV4dC5zZXRfbnBuX3Byb3RvY29scyhucG5fcHJvdG9jb2xzKQogICAgICAgICAgICAgaWYgY2lwaGVyczoKLSAgICAgICAgICAgICAgICBzZWxmLmNvbnRleHQuc2V0X2NpcGhlcnMoY2lwaGVycykKKyAgICAgICAgICAgICAgICBzZWxmLl9jb250ZXh0LnNldF9jaXBoZXJzKGNpcGhlcnMpCiAgICAgICAgICAgICBzZWxmLmtleWZpbGUgPSBrZXlmaWxlCiAgICAgICAgICAgICBzZWxmLmNlcnRmaWxlID0gY2VydGZpbGUKICAgICAgICAgICAgIHNlbGYuY2VydF9yZXFzID0gY2VydF9yZXFzCkBAIC0yNzUsNyArMzA2LDYgQEAKICAgICAgICAgc2VsZi5zZXJ2ZXJfaG9zdG5hbWUgPSBzZXJ2ZXJfaG9zdG5hbWUKICAgICAgICAgc2VsZi5kb19oYW5kc2hha2Vfb25fY29ubmVjdCA9IGRvX2hhbmRzaGFrZV9vbl9jb25uZWN0CiAgICAgICAgIHNlbGYuc3VwcHJlc3NfcmFnZ2VkX2VvZnMgPSBzdXBwcmVzc19yYWdnZWRfZW9mcwotICAgICAgICBjb25uZWN0ZWQgPSBGYWxzZQogICAgICAgICBpZiBzb2NrIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc29ja2V0Ll9faW5pdF9fKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFtaWx5PXNvY2suZmFtaWx5LApAQCAtMjgzLDI3ICszMTMsMjkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90bz1zb2NrLnByb3RvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVubz1zb2NrLmZpbGVubygpKQogICAgICAgICAgICAgc2VsZi5zZXR0aW1lb3V0KHNvY2suZ2V0dGltZW91dCgpKQotICAgICAgICAgICAgIyBzZWUgaWYgaXQncyBjb25uZWN0ZWQKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzb2NrLmdldHBlZXJuYW1lKCkKLSAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXRfZXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVOT1RDT05OOgotICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBjb25uZWN0ZWQgPSBUcnVlCiAgICAgICAgICAgICBzb2NrLmRldGFjaCgpCiAgICAgICAgIGVsaWYgZmlsZW5vIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc29ja2V0Ll9faW5pdF9fKHNlbGYsIGZpbGVubz1maWxlbm8pCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzb2NrZXQuX19pbml0X18oc2VsZiwgZmFtaWx5PWZhbWlseSwgdHlwZT10eXBlLCBwcm90bz1wcm90bykKIAorICAgICAgICAjIFNlZSBpZiB3ZSBhcmUgY29ubmVjdGVkCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuZ2V0cGVlcm5hbWUoKQorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FTk9UQ09OTjoKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgY29ubmVjdGVkID0gRmFsc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNvbm5lY3RlZCA9IFRydWUKKwogICAgICAgICBzZWxmLl9jbG9zZWQgPSBGYWxzZQogICAgICAgICBzZWxmLl9zc2xvYmogPSBOb25lCiAgICAgICAgIHNlbGYuX2Nvbm5lY3RlZCA9IGNvbm5lY3RlZAogICAgICAgICBpZiBjb25uZWN0ZWQ6CiAgICAgICAgICAgICAjIGNyZWF0ZSB0aGUgU1NMIG9iamVjdAogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuX3NzbG9iaiA9IHNlbGYuY29udGV4dC5fd3JhcF9zb2NrZXQoc2VsZiwgc2VydmVyX3NpZGUsCisgICAgICAgICAgICAgICAgc2VsZi5fc3Nsb2JqID0gc2VsZi5fY29udGV4dC5fd3JhcF9zb2NrZXQoc2VsZiwgc2VydmVyX3NpZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaG9zdG5hbWUpCiAgICAgICAgICAgICAgICAgaWYgZG9faGFuZHNoYWtlX29uX2Nvbm5lY3Q6CiAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBzZWxmLmdldHRpbWVvdXQoKQpAQCAtMzEyLDEwICszNDQsMTkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImRvX2hhbmRzaGFrZV9vbl9jb25uZWN0IHNob3VsZCBub3QgYmUgc3BlY2lmaWVkIGZvciBub24tYmxvY2tpbmcgc29ja2V0cyIpCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuZG9faGFuZHNoYWtlKCkKIAotICAgICAgICAgICAgZXhjZXB0IHNvY2tldF9lcnJvciBhcyB4OgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgeDoKICAgICAgICAgICAgICAgICBzZWxmLmNsb3NlKCkKICAgICAgICAgICAgICAgICByYWlzZSB4CiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY29udGV4dChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NvbnRleHQKKworICAgIEBjb250ZXh0LnNldHRlcgorICAgIGRlZiBjb250ZXh0KHNlbGYsIGN0eCk6CisgICAgICAgIHNlbGYuX2NvbnRleHQgPSBjdHgKKyAgICAgICAgc2VsZi5fc3Nsb2JqLmNvbnRleHQgPSBjdHgKKwogICAgIGRlZiBkdXAoc2VsZik6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkKCJDYW4ndCBkdXAoKSAlcyBpbnN0YW5jZXMiICUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18uX19uYW1lX18pCkBAIC0zMjQsNiArMzY1LDE0IEBACiAgICAgICAgICMgcmFpc2UgYW4gZXhjZXB0aW9uIGhlcmUgaWYgeW91IHdpc2ggdG8gY2hlY2sgZm9yIHNwdXJpb3VzIGNsb3NlcwogICAgICAgICBwYXNzCiAKKyAgICBkZWYgX2NoZWNrX2Nvbm5lY3RlZChzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuX2Nvbm5lY3RlZDoKKyAgICAgICAgICAgICMgZ2V0cGVlcm5hbWUoKSB3aWxsIHJhaXNlIEVOT1RDT05OIGlmIHRoZSBzb2NrZXQgaXMgcmVhbGx5CisgICAgICAgICAgICAjIG5vdCBjb25uZWN0ZWQ7IG5vdGUgdGhhdCB3ZSBjYW4gYmUgY29ubmVjdGVkIGV2ZW4gd2l0aG91dAorICAgICAgICAgICAgIyBfY29ubmVjdGVkIGJlaW5nIHNldCwgZS5nLiBpZiBjb25uZWN0KCkgZmlyc3QgcmV0dXJuZWQKKyAgICAgICAgICAgICMgRUFHQUlOLgorICAgICAgICAgICAgc2VsZi5nZXRwZWVybmFtZSgpCisKICAgICBkZWYgcmVhZChzZWxmLCBsZW49MCwgYnVmZmVyPU5vbmUpOgogICAgICAgICAiIiJSZWFkIHVwIHRvIExFTiBieXRlcyBhbmQgcmV0dXJuIHRoZW0uCiAgICAgICAgIFJldHVybiB6ZXJvLWxlbmd0aCBzdHJpbmcgb24gRU9GLiIiIgpAQCAtMzU4LDYgKzQwNyw3IEBACiAgICAgICAgIGNlcnRpZmljYXRlIHdhcyBwcm92aWRlZCwgYnV0IG5vdCB2YWxpZGF0ZWQuIiIiCiAKICAgICAgICAgc2VsZi5fY2hlY2tDbG9zZWQoKQorICAgICAgICBzZWxmLl9jaGVja19jb25uZWN0ZWQoKQogICAgICAgICByZXR1cm4gc2VsZi5fc3Nsb2JqLnBlZXJfY2VydGlmaWNhdGUoYmluYXJ5X2Zvcm0pCiAKICAgICBkZWYgc2VsZWN0ZWRfbnBuX3Byb3RvY29sKHNlbGYpOgpAQCAtMzg4LDE4ICs0MzgsMTcgQEAKICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAogICAgICAgICAgICAgICAgICAgICAibm9uLXplcm8gZmxhZ3Mgbm90IGFsbG93ZWQgaW4gY2FsbHMgdG8gc2VuZCgpIG9uICVzIiAlCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19jbGFzc19fKQotICAgICAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHYgPSBzZWxmLl9zc2xvYmoud3JpdGUoZGF0YSkKLSAgICAgICAgICAgICAgICBleGNlcHQgU1NMRXJyb3IgYXMgeDoKLSAgICAgICAgICAgICAgICAgICAgaWYgeC5hcmdzWzBdID09IFNTTF9FUlJPUl9XQU5UX1JFQUQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMAotICAgICAgICAgICAgICAgICAgICBlbGlmIHguYXJnc1swXSA9PSBTU0xfRVJST1JfV0FOVF9XUklURToKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHYgPSBzZWxmLl9zc2xvYmoud3JpdGUoZGF0YSkKKyAgICAgICAgICAgIGV4Y2VwdCBTU0xFcnJvciBhcyB4OgorICAgICAgICAgICAgICAgIGlmIHguYXJnc1swXSA9PSBTU0xfRVJST1JfV0FOVF9SRUFEOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMAorICAgICAgICAgICAgICAgIGVsaWYgeC5hcmdzWzBdID09IFNTTF9FUlJPUl9XQU5UX1dSSVRFOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMAogICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB2CisgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiB2CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByZXR1cm4gc29ja2V0LnNlbmQoc2VsZiwgZGF0YSwgZmxhZ3MpCiAKQEAgLTUwNywxMiArNTU2LDExIEBACiAKICAgICBkZWYgX3JlYWxfY2xvc2Uoc2VsZik6CiAgICAgICAgIHNlbGYuX3NzbG9iaiA9IE5vbmUKLSAgICAgICAgIyBzZWxmLl9jbG9zZWQgPSBUcnVlCiAgICAgICAgIHNvY2tldC5fcmVhbF9jbG9zZShzZWxmKQogCiAgICAgZGVmIGRvX2hhbmRzaGFrZShzZWxmLCBibG9jaz1GYWxzZSk6CiAgICAgICAgICIiIlBlcmZvcm0gYSBUTFMvU1NMIGhhbmRzaGFrZS4iIiIKLQorICAgICAgICBzZWxmLl9jaGVja19jb25uZWN0ZWQoKQogICAgICAgICB0aW1lb3V0ID0gc2VsZi5nZXR0aW1lb3V0KCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgaWYgdGltZW91dCA9PSAwLjAgYW5kIGJsb2NrOgpAQCAtNTM2LDExICs1ODQsMTEgQEAKICAgICAgICAgICAgICAgICByYyA9IE5vbmUKICAgICAgICAgICAgICAgICBzb2NrZXQuY29ubmVjdChzZWxmLCBhZGRyKQogICAgICAgICAgICAgaWYgbm90IHJjOgorICAgICAgICAgICAgICAgIHNlbGYuX2Nvbm5lY3RlZCA9IFRydWUKICAgICAgICAgICAgICAgICBpZiBzZWxmLmRvX2hhbmRzaGFrZV9vbl9jb25uZWN0OgogICAgICAgICAgICAgICAgICAgICBzZWxmLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICAgICAgICAgc2VsZi5fY29ubmVjdGVkID0gVHJ1ZQogICAgICAgICAgICAgcmV0dXJuIHJjCi0gICAgICAgIGV4Y2VwdCBzb2NrZXRfZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgc2VsZi5fc3Nsb2JqID0gTm9uZQogICAgICAgICAgICAgcmFpc2UKIApkaWZmIC0tZ2l0IGEvTGliL3N0cnVjdC5weSBiL0xpYi9zdHJ1Y3QucHkKaW5kZXggOWJmYzIzZi4uZDZiYmE1OCAxMDA2NDQKLS0tIGEvTGliL3N0cnVjdC5weQorKysgYi9MaWIvc3RydWN0LnB5CkBAIC0xLDYgKzEsNyBAQAogX19hbGxfXyA9IFsKICAgICAjIEZ1bmN0aW9ucwogICAgICdjYWxjc2l6ZScsICdwYWNrJywgJ3BhY2tfaW50bycsICd1bnBhY2snLCAndW5wYWNrX2Zyb20nLAorICAgICdpdGVyX3VucGFjaycsCiAKICAgICAjIENsYXNzZXMKICAgICAnU3RydWN0JywKZGlmZiAtLWdpdCBhL0xpYi9zdWJwcm9jZXNzLnB5IGIvTGliL3N1YnByb2Nlc3MucHkKaW5kZXggNjg5MDQ2ZS4uNzg5MDdlMCAxMDA2NDQKLS0tIGEvTGliL3N1YnByb2Nlc3MucHkKKysrIGIvTGliL3N1YnByb2Nlc3MucHkKQEAgLTE3NSw2ICsxNzUsOSBAQAogCiAgICAgPj4+IG91dHB1dCA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KFsibHMiLCAiLWwiLCAiL2Rldi9udWxsIl0pCiAKKyAgICBUaGVyZSBpcyBhbiBhZGRpdGlvbmFsIG9wdGlvbmFsIGFyZ3VtZW50LCAiaW5wdXQiLCBhbGxvd2luZyB5b3UgdG8KKyAgICBwYXNzIGEgc3RyaW5nIHRvIHRoZSBzdWJwcm9jZXNzJ3Mgc3RkaW4uICBJZiB5b3UgdXNlIHRoaXMgYXJndW1lbnQKKyAgICB5b3UgbWF5IG5vdCBhbHNvIHVzZSB0aGUgUG9wZW4gY29uc3RydWN0b3IncyAic3RkaW4iIGFyZ3VtZW50LgogCiBFeGNlcHRpb25zCiAtLS0tLS0tLS0tCkBAIC0zOTUsOCArMzk4LDYgQEAKICAgICAgICAgaFN0ZE91dHB1dCA9IE5vbmUKICAgICAgICAgaFN0ZEVycm9yID0gTm9uZQogICAgICAgICB3U2hvd1dpbmRvdyA9IDAKLSAgICBjbGFzcyBweXdpbnR5cGVzOgotICAgICAgICBlcnJvciA9IElPRXJyb3IKIGVsc2U6CiAgICAgaW1wb3J0IHNlbGVjdAogICAgIF9oYXNfcG9sbCA9IGhhc2F0dHIoc2VsZWN0LCAncG9sbCcpCkBAIC01NjUsMTQgKzU2NiwzMSBAQAogICAgIC4uLiAgICAgICAgICAgICAgc3RkZXJyPVNURE9VVCkKICAgICBiJ2xzOiBub25fZXhpc3RlbnRfZmlsZTogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVxuJwogCisgICAgVGhlcmUgaXMgYW4gYWRkaXRpb25hbCBvcHRpb25hbCBhcmd1bWVudCwgImlucHV0IiwgYWxsb3dpbmcgeW91IHRvCisgICAgcGFzcyBhIHN0cmluZyB0byB0aGUgc3VicHJvY2VzcydzIHN0ZGluLiAgSWYgeW91IHVzZSB0aGlzIGFyZ3VtZW50CisgICAgeW91IG1heSBub3QgYWxzbyB1c2UgdGhlIFBvcGVuIGNvbnN0cnVjdG9yJ3MgInN0ZGluIiBhcmd1bWVudCwgYXMKKyAgICBpdCB0b28gd2lsbCBiZSB1c2VkIGludGVybmFsbHkuICBFeGFtcGxlOgorCisgICAgPj4+IGNoZWNrX291dHB1dChbInNlZCIsICItZSIsICJzL2Zvby9iYXIvIl0sCisgICAgLi4uICAgICAgICAgICAgICBpbnB1dD1iIndoZW4gaW4gdGhlIGNvdXJzZSBvZiBmb29tYW4gZXZlbnRzXG4iKQorICAgIGInd2hlbiBpbiB0aGUgY291cnNlIG9mIGJhcm1hbiBldmVudHNcbicKKwogICAgIElmIHVuaXZlcnNhbF9uZXdsaW5lcz1UcnVlIGlzIHBhc3NlZCwgdGhlIHJldHVybiB2YWx1ZSB3aWxsIGJlIGEKICAgICBzdHJpbmcgcmF0aGVyIHRoYW4gYnl0ZXMuCiAgICAgIiIiCiAgICAgaWYgJ3N0ZG91dCcgaW4ga3dhcmdzOgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzdGRvdXQgYXJndW1lbnQgbm90IGFsbG93ZWQsIGl0IHdpbGwgYmUgb3ZlcnJpZGRlbi4nKQorICAgIGlmICdpbnB1dCcgaW4ga3dhcmdzOgorICAgICAgICBpZiAnc3RkaW4nIGluIGt3YXJnczoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3N0ZGluIGFuZCBpbnB1dCBhcmd1bWVudHMgbWF5IG5vdCBib3RoIGJlIHVzZWQuJykKKyAgICAgICAgaW5wdXRkYXRhID0ga3dhcmdzWydpbnB1dCddCisgICAgICAgIGRlbCBrd2FyZ3NbJ2lucHV0J10KKyAgICAgICAga3dhcmdzWydzdGRpbiddID0gUElQRQorICAgIGVsc2U6CisgICAgICAgIGlucHV0ZGF0YSA9IE5vbmUKICAgICB3aXRoIFBvcGVuKCpwb3BlbmFyZ3MsIHN0ZG91dD1QSVBFLCAqKmt3YXJncykgYXMgcHJvY2VzczoKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgb3V0cHV0LCB1bnVzZWRfZXJyID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSh0aW1lb3V0PXRpbWVvdXQpCisgICAgICAgICAgICBvdXRwdXQsIHVudXNlZF9lcnIgPSBwcm9jZXNzLmNvbW11bmljYXRlKGlucHV0ZGF0YSwgdGltZW91dD10aW1lb3V0KQogICAgICAgICBleGNlcHQgVGltZW91dEV4cGlyZWQ6CiAgICAgICAgICAgICBwcm9jZXNzLmtpbGwoKQogICAgICAgICAgICAgb3V0cHV0LCB1bnVzZWRfZXJyID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSgpCkBAIC04MjMsNyArODQxLDcgQEAKICAgICAgICAgICAgIGZvciBmIGluIGZpbHRlcihOb25lLCAoc2VsZi5zdGRpbiwgc2VsZi5zdGRvdXQsIHNlbGYuc3RkZXJyKSk6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBmLmNsb3NlKCkKLSAgICAgICAgICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvcjoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgcGFzcyAgIyBJZ25vcmUgRUJBREYgb3Igb3RoZXIgZXJyb3JzLgogCiAgICAgICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2hpbGQgcGlwZXMgYXJlIGNsb3NlZCBhcyB3ZWxsLgpAQCAtODM3LDcgKzg1NSw3IEBACiAgICAgICAgICAgICBmb3IgZmQgaW4gdG9fY2xvc2U6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBvcy5jbG9zZShmZCkKLSAgICAgICAgICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvcjoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgcGFzcwogCiAgICAgICAgICAgICByYWlzZQpAQCAtOTAxLDcgKzkxOSw3IEBACiAgICAgICAgICAgICAgICAgaWYgaW5wdXQ6CiAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RkaW4ud3JpdGUoaW5wdXQpCi0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6CisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVQSVBFIGFuZCBlLmVycm5vICE9IGVycm5vLkVJTlZBTDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgICAgIHNlbGYuc3RkaW4uY2xvc2UoKQpAQCAtMTAzMywyMyArMTA1MSw2IEBACiAgICAgICAgICAgICByZXR1cm4gSGFuZGxlKGgpCiAKIAotICAgICAgICBkZWYgX2ZpbmRfdzl4cG9wZW4oc2VsZik6Ci0gICAgICAgICAgICAiIiJGaW5kIGFuZCByZXR1cm4gYWJzb2x1dCBwYXRoIHRvIHc5eHBvcGVuLmV4ZSIiIgotICAgICAgICAgICAgdzl4cG9wZW4gPSBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF93aW5hcGkuR2V0TW9kdWxlRmlsZU5hbWUoMCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInc5eHBvcGVuLmV4ZSIpCi0gICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHModzl4cG9wZW4pOgotICAgICAgICAgICAgICAgICMgRWVlayAtIGZpbGUtbm90LWZvdW5kIC0gcG9zc2libHkgYW4gZW1iZWRkaW5nCi0gICAgICAgICAgICAgICAgIyBzaXR1YXRpb24gLSBzZWUgaWYgd2UgY2FuIGxvY2F0ZSBpdCBpbiBzeXMuZXhlY19wcmVmaXgKLSAgICAgICAgICAgICAgICB3OXhwb3BlbiA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoc3lzLmJhc2VfZXhlY19wcmVmaXgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3OXhwb3Blbi5leGUiKQotICAgICAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyh3OXhwb3Blbik6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiQ2Fubm90IGxvY2F0ZSB3OXhwb3Blbi5leGUsIHdoaWNoIGlzICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuZWVkZWQgZm9yIFBvcGVuIHRvIHdvcmsgd2l0aCB5b3VyICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaGVsbCBvciBwbGF0Zm9ybS4iKQotICAgICAgICAgICAgcmV0dXJuIHc5eHBvcGVuCi0KLQogICAgICAgICBkZWYgX2V4ZWN1dGVfY2hpbGQoc2VsZiwgYXJncywgZXhlY3V0YWJsZSwgcHJlZXhlY19mbiwgY2xvc2VfZmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc19mZHMsIGN3ZCwgZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnR1cGluZm8sIGNyZWF0aW9uZmxhZ3MsIHNoZWxsLApAQCAtMTA3OCwyMSArMTA3OSw2IEBACiAgICAgICAgICAgICAgICAgc3RhcnR1cGluZm8ud1Nob3dXaW5kb3cgPSBfd2luYXBpLlNXX0hJREUKICAgICAgICAgICAgICAgICBjb21zcGVjID0gb3MuZW52aXJvbi5nZXQoIkNPTVNQRUMiLCAiY21kLmV4ZSIpCiAgICAgICAgICAgICAgICAgYXJncyA9ICd7fSAvYyAie30iJy5mb3JtYXQgKGNvbXNwZWMsIGFyZ3MpCi0gICAgICAgICAgICAgICAgaWYgKF93aW5hcGkuR2V0VmVyc2lvbigpID49IDB4ODAwMDAwMDAgb3IKLSAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguYmFzZW5hbWUoY29tc3BlYykubG93ZXIoKSA9PSAiY29tbWFuZC5jb20iKToKLSAgICAgICAgICAgICAgICAgICAgIyBXaW45eCwgb3IgdXNpbmcgY29tbWFuZC5jb20gb24gTlQuIFdlIG5lZWQgdG8KLSAgICAgICAgICAgICAgICAgICAgIyB1c2UgdGhlIHc5eHBvcGVuIGludGVybWVkaWF0ZSBwcm9ncmFtLiBGb3IgbW9yZQotICAgICAgICAgICAgICAgICAgICAjIGluZm9ybWF0aW9uLCBzZWUgS0IgUTE1MDk1NgotICAgICAgICAgICAgICAgICAgICAjIChodHRwOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDAxMTEwNTA4NDAwMi9odHRwOi8vc3VwcG9ydC5taWNyb3NvZnQuY29tL3N1cHBvcnQva2IvYXJ0aWNsZXMvUTE1MC85LzU2LmFzcCkKLSAgICAgICAgICAgICAgICAgICAgdzl4cG9wZW4gPSBzZWxmLl9maW5kX3c5eHBvcGVuKCkKLSAgICAgICAgICAgICAgICAgICAgYXJncyA9ICciJXMiICVzJyAlICh3OXhwb3BlbiwgYXJncykKLSAgICAgICAgICAgICAgICAgICAgIyBOb3QgcGFzc2luZyBDUkVBVEVfTkVXX0NPTlNPTEUgaGFzIGJlZW4ga25vd24gdG8KLSAgICAgICAgICAgICAgICAgICAgIyBjYXVzZSByYW5kb20gZmFpbHVyZXMgb24gd2luOXguICBTcGVjaWZpY2FsbHkgYQotICAgICAgICAgICAgICAgICAgICAjIGRpYWxvZzogIllvdXIgcHJvZ3JhbSBhY2Nlc3NlZCBtZW0gY3VycmVudGx5IGluCi0gICAgICAgICAgICAgICAgICAgICMgdXNlIGF0IHh4eCIgYW5kIGEgaG9wZWZ1bCB3YXJuaW5nIGFib3V0IHRoZQotICAgICAgICAgICAgICAgICAgICAjIHN0YWJpbGl0eSBvZiB5b3VyIHN5c3RlbS4gIENvc3QgaXMgQ3RybCtDIHdvbid0Ci0gICAgICAgICAgICAgICAgICAgICMga2lsbCBjaGlsZHJlbi4KLSAgICAgICAgICAgICAgICAgICAgY3JlYXRpb25mbGFncyB8PSBfd2luYXBpLkNSRUFURV9ORVdfQ09OU09MRQogCiAgICAgICAgICAgICAjIFN0YXJ0IHRoZSBwcm9jZXNzCiAgICAgICAgICAgICB0cnk6CkBAIC0xMTA0LDEyICsxMDkwLDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjd2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0dXBpbmZvKQotICAgICAgICAgICAgZXhjZXB0IHB5d2ludHlwZXMuZXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICAjIFRyYW5zbGF0ZSBweXdpbnR5cGVzLmVycm9yIHRvIFdpbmRvd3NFcnJvciwgd2hpY2ggaXMKLSAgICAgICAgICAgICAgICAjIGEgc3ViY2xhc3Mgb2YgT1NFcnJvci4gIEZJWE1FOiBXZSBzaG91bGQgcmVhbGx5Ci0gICAgICAgICAgICAgICAgIyB0cmFuc2xhdGUgZXJybm8gdXNpbmcgX3N5c19lcnJsaXN0IChvciBzaW1pbGFyKSwgYnV0Ci0gICAgICAgICAgICAgICAgIyBob3cgY2FuIHRoaXMgYmUgZG9uZSBmcm9tIFB5dGhvbj8KLSAgICAgICAgICAgICAgICByYWlzZSBXaW5kb3dzRXJyb3IoKmUuYXJncykKICAgICAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgIyBDaGlsZCBpcyBsYXVuY2hlZC4gQ2xvc2UgdGhlIHBhcmVudCdzIGNvcHkgb2YgdGhvc2UgcGlwZQogICAgICAgICAgICAgICAgICMgaGFuZGxlcyB0aGF0IG9ubHkgdGhlIGNoaWxkIHNob3VsZCBoYXZlIG9wZW4uICBZb3UgbmVlZApAQCAtMTE5NCw3ICsxMTc0LDcgQEAKICAgICAgICAgICAgICAgICBpZiBpbnB1dCBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGRpbi53cml0ZShpbnB1dCkKLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRVBJUEU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgICAgICBzZWxmLnN0ZGluLmNsb3NlKCkKQEAgLTE0MTQsMTMgKzEzOTQsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uX25hbWUsIGhleF9lcnJubywgZXJyX21zZyA9ICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJwaXBlX2RhdGEuc3BsaXQoYic6JywgMikpCiAgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbl9uYW1lID0gYidSdW50aW1lRXJyb3InCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbl9uYW1lID0gYidTdWJwcm9jZXNzRXJyb3InCiAgICAgICAgICAgICAgICAgICAgIGhleF9lcnJubyA9IGInMCcKICAgICAgICAgICAgICAgICAgICAgZXJyX21zZyA9IChiJ0JhZCBleGNlcHRpb24gZGF0YSBmcm9tIGNoaWxkOiAnICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXByKGVycnBpcGVfZGF0YSkpCiAgICAgICAgICAgICAgICAgY2hpbGRfZXhjZXB0aW9uX3R5cGUgPSBnZXRhdHRyKAogICAgICAgICAgICAgICAgICAgICAgICAgYnVpbHRpbnMsIGV4Y2VwdGlvbl9uYW1lLmRlY29kZSgnYXNjaWknKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFJ1bnRpbWVFcnJvcikKKyAgICAgICAgICAgICAgICAgICAgICAgIFN1YnByb2Nlc3NFcnJvcikKICAgICAgICAgICAgICAgICBlcnJfbXNnID0gZXJyX21zZy5kZWNvZGUoZXJyb3JzPSJzdXJyb2dhdGVwYXNzIikKICAgICAgICAgICAgICAgICBpZiBpc3N1YmNsYXNzKGNoaWxkX2V4Y2VwdGlvbl90eXBlLCBPU0Vycm9yKSBhbmQgaGV4X2Vycm5vOgogICAgICAgICAgICAgICAgICAgICBlcnJub19udW0gPSBpbnQoaGV4X2Vycm5vLCAxNikKQEAgLTE0NTAsMTEgKzE0MzAsMTEgQEAKICAgICAgICAgICAgICAgICBzZWxmLnJldHVybmNvZGUgPSBfV0VYSVRTVEFUVVMoc3RzKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAjIFNob3VsZCBuZXZlciBoYXBwZW4KLSAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIlVua25vd24gY2hpbGQgZXhpdCBzdGF0dXMhIikKKyAgICAgICAgICAgICAgICByYWlzZSBTdWJwcm9jZXNzRXJyb3IoIlVua25vd24gY2hpbGQgZXhpdCBzdGF0dXMhIikKIAogCiAgICAgICAgIGRlZiBfaW50ZXJuYWxfcG9sbChzZWxmLCBfZGVhZHN0YXRlPU5vbmUsIF93YWl0cGlkPW9zLndhaXRwaWQsCi0gICAgICAgICAgICAgICAgX1dOT0hBTkc9b3MuV05PSEFORywgX29zX2Vycm9yPW9zLmVycm9yLCBfRUNISUxEPWVycm5vLkVDSElMRCk6CisgICAgICAgICAgICAgICAgX1dOT0hBTkc9b3MuV05PSEFORywgX0VDSElMRD1lcnJuby5FQ0hJTEQpOgogICAgICAgICAgICAgIiIiQ2hlY2sgaWYgY2hpbGQgcHJvY2VzcyBoYXMgdGVybWluYXRlZC4gIFJldHVybnMgcmV0dXJuY29kZQogICAgICAgICAgICAgYXR0cmlidXRlLgogCkBAIC0xNDY3LDcgKzE0NDcsNyBAQAogICAgICAgICAgICAgICAgICAgICBwaWQsIHN0cyA9IF93YWl0cGlkKHNlbGYucGlkLCBfV05PSEFORykKICAgICAgICAgICAgICAgICAgICAgaWYgcGlkID09IHNlbGYucGlkOgogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX2V4aXRzdGF0dXMoc3RzKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBfb3NfZXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgICAgICAgICBpZiBfZGVhZHN0YXRlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXR1cm5jb2RlID0gX2RlYWRzdGF0ZQogICAgICAgICAgICAgICAgICAgICBlbGlmIGUuZXJybm8gPT0gX0VDSElMRDoKQEAgLTE2MjQsNyArMTYwNCw3IEBACiAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFRpbWVvdXRFeHBpcmVkKHNlbGYuYXJncywgb3JpZ190aW1lb3V0KQogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgcmVhZHkgPSBwb2xsZXIucG9sbCh0aW1lb3V0KQotICAgICAgICAgICAgICAgIGV4Y2VwdCBzZWxlY3QuZXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgICAgICAgICBpZiBlLmFyZ3NbMF0gPT0gZXJybm8uRUlOVFI6CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgICAgICByYWlzZQpAQCAtMTY5Miw3ICsxNjcyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgKHJsaXN0LCB3bGlzdCwgeGxpc3QpID0gXAogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNlbGVjdChzZWxmLl9yZWFkX3NldCwgc2VsZi5fd3JpdGVfc2V0LCBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCkKLSAgICAgICAgICAgICAgICBleGNlcHQgc2VsZWN0LmVycm9yIGFzIGU6CisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICAgICAgaWYgZS5hcmdzWzBdID09IGVycm5vLkVJTlRSOgogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICAgICAgcmFpc2UKZGlmZiAtLWdpdCBhL0xpYi9zeW1ib2wucHkgYi9MaWIvc3ltYm9sLnB5CmluZGV4IDM0MTQzYjUuLjVjZjRhNjUgMTAwNzU1Ci0tLSBhL0xpYi9zeW1ib2wucHkKKysrIGIvTGliL3N5bWJvbC5weQpAQCAtMTAwLDcgKzEwMCw3IEBACiAgICAgICAgIHN5bV9uYW1lW192YWx1ZV0gPSBfbmFtZQogCiAKLWRlZiBtYWluKCk6CitkZWYgX21haW4oKToKICAgICBpbXBvcnQgc3lzCiAgICAgaW1wb3J0IHRva2VuCiAgICAgaWYgbGVuKHN5cy5hcmd2KSA9PSAxOgpAQCAtMTA4LDQgKzEwOCw0IEBACiAgICAgdG9rZW4uX21haW4oKQogCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgIG1haW4oKQorICAgIF9tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi9zeW10YWJsZS5weSBiL0xpYi9zeW10YWJsZS5weQppbmRleCAzOWMxYTgwLi5jMGUzMmRmIDEwMDY0NAotLS0gYS9MaWIvc3ltdGFibGUucHkKKysrIGIvTGliL3N5bXRhYmxlLnB5CkBAIC0yMzUsNyArMjM1LDggQEAKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgICBpbXBvcnQgb3MsIHN5cwotICAgIHNyYyA9IG9wZW4oc3lzLmFyZ3ZbMF0pLnJlYWQoKQorICAgIHdpdGggb3BlbihzeXMuYXJndlswXSkgYXMgZjoKKyAgICAgICAgc3JjID0gZi5yZWFkKCkKICAgICBtb2QgPSBzeW10YWJsZShzcmMsIG9zLnBhdGguc3BsaXQoc3lzLmFyZ3ZbMF0pWzFdLCAiZXhlYyIpCiAgICAgZm9yIGlkZW50IGluIG1vZC5nZXRfaWRlbnRpZmllcnMoKToKICAgICAgICAgaW5mbyA9IG1vZC5sb29rdXAoaWRlbnQpCmRpZmYgLS1naXQgYS9MaWIvc3lzY29uZmlnLnB5IGIvTGliL3N5c2NvbmZpZy5weQppbmRleCAyZjVmNzQwLi4yMDk1NjU3IDEwMDY0NAotLS0gYS9MaWIvc3lzY29uZmlnLnB5CisrKyBiL0xpYi9zeXNjb25maWcucHkKQEAgLTUyLDI1ICs1Miw2IEBACiAgICAgICAgICdzY3JpcHRzJzogJ3tiYXNlfS9TY3JpcHRzJywKICAgICAgICAgJ2RhdGEnOiAne2Jhc2V9JywKICAgICAgICAgfSwKLSAgICAnb3MyJzogewotICAgICAgICAnc3RkbGliJzogJ3tpbnN0YWxsZWRfYmFzZX0vTGliJywKLSAgICAgICAgJ3BsYXRzdGRsaWInOiAne2Jhc2V9L0xpYicsCi0gICAgICAgICdwdXJlbGliJzogJ3tiYXNlfS9MaWIvc2l0ZS1wYWNrYWdlcycsCi0gICAgICAgICdwbGF0bGliJzogJ3tiYXNlfS9MaWIvc2l0ZS1wYWNrYWdlcycsCi0gICAgICAgICdpbmNsdWRlJzogJ3tpbnN0YWxsZWRfYmFzZX0vSW5jbHVkZScsCi0gICAgICAgICdwbGF0aW5jbHVkZSc6ICd7aW5zdGFsbGVkX2Jhc2V9L0luY2x1ZGUnLAotICAgICAgICAnc2NyaXB0cyc6ICd7YmFzZX0vU2NyaXB0cycsCi0gICAgICAgICdkYXRhJzogJ3tiYXNlfScsCi0gICAgICAgIH0sCi0gICAgJ29zMl9ob21lJzogewotICAgICAgICAnc3RkbGliJzogJ3t1c2VyYmFzZX0vbGliL3B5dGhvbntweV92ZXJzaW9uX3Nob3J0fScsCi0gICAgICAgICdwbGF0c3RkbGliJzogJ3t1c2VyYmFzZX0vbGliL3B5dGhvbntweV92ZXJzaW9uX3Nob3J0fScsCi0gICAgICAgICdwdXJlbGliJzogJ3t1c2VyYmFzZX0vbGliL3B5dGhvbntweV92ZXJzaW9uX3Nob3J0fS9zaXRlLXBhY2thZ2VzJywKLSAgICAgICAgJ3BsYXRsaWInOiAne3VzZXJiYXNlfS9saWIvcHl0aG9ue3B5X3ZlcnNpb25fc2hvcnR9L3NpdGUtcGFja2FnZXMnLAotICAgICAgICAnaW5jbHVkZSc6ICd7dXNlcmJhc2V9L2luY2x1ZGUvcHl0aG9ue3B5X3ZlcnNpb25fc2hvcnR9JywKLSAgICAgICAgJ3NjcmlwdHMnOiAne3VzZXJiYXNlfS9iaW4nLAotICAgICAgICAnZGF0YSc6ICd7dXNlcmJhc2V9JywKLSAgICAgICAgfSwKICAgICAnbnRfdXNlcic6IHsKICAgICAgICAgJ3N0ZGxpYic6ICd7dXNlcmJhc2V9L1B5dGhvbntweV92ZXJzaW9uX25vZG90fScsCiAgICAgICAgICdwbGF0c3RkbGliJzogJ3t1c2VyYmFzZX0vUHl0aG9ue3B5X3ZlcnNpb25fbm9kb3R9JywKQEAgLTIxMCw3ICsxOTEsNiBAQAogICAgIGRlZiBqb2ludXNlcigqYXJncyk6CiAgICAgICAgIHJldHVybiBvcy5wYXRoLmV4cGFuZHVzZXIob3MucGF0aC5qb2luKCphcmdzKSkKIAotICAgICMgd2hhdCBhYm91dCAnb3MyZW14JywgJ3Jpc2NvcycgPwogICAgIGlmIG9zLm5hbWUgPT0gIm50IjoKICAgICAgICAgYmFzZSA9IG9zLmVudmlyb24uZ2V0KCJBUFBEQVRBIikgb3IgIn4iCiAgICAgICAgIGlmIGVudl9iYXNlOgpAQCAtMzY5LDIxICszNDksMjEgQEAKICAgICBtYWtlZmlsZSA9IGdldF9tYWtlZmlsZV9maWxlbmFtZSgpCiAgICAgdHJ5OgogICAgICAgICBfcGFyc2VfbWFrZWZpbGUobWFrZWZpbGUsIHZhcnMpCi0gICAgZXhjZXB0IElPRXJyb3IgYXMgZToKKyAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICBtc2cgPSAiaW52YWxpZCBQeXRob24gaW5zdGFsbGF0aW9uOiB1bmFibGUgdG8gb3BlbiAlcyIgJSBtYWtlZmlsZQogICAgICAgICBpZiBoYXNhdHRyKGUsICJzdHJlcnJvciIpOgogICAgICAgICAgICAgbXNnID0gbXNnICsgIiAoJXMpIiAlIGUuc3RyZXJyb3IKLSAgICAgICAgcmFpc2UgSU9FcnJvcihtc2cpCisgICAgICAgIHJhaXNlIE9TRXJyb3IobXNnKQogICAgICMgbG9hZCB0aGUgaW5zdGFsbGVkIHB5Y29uZmlnLmg6CiAgICAgY29uZmlnX2ggPSBnZXRfY29uZmlnX2hfZmlsZW5hbWUoKQogICAgIHRyeToKICAgICAgICAgd2l0aCBvcGVuKGNvbmZpZ19oKSBhcyBmOgogICAgICAgICAgICAgcGFyc2VfY29uZmlnX2goZiwgdmFycykKLSAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgIG1zZyA9ICJpbnZhbGlkIFB5dGhvbiBpbnN0YWxsYXRpb246IHVuYWJsZSB0byBvcGVuICVzIiAlIGNvbmZpZ19oCiAgICAgICAgIGlmIGhhc2F0dHIoZSwgInN0cmVycm9yIik6CiAgICAgICAgICAgICBtc2cgPSBtc2cgKyAiICglcykiICUgZS5zdHJlcnJvcgotICAgICAgICByYWlzZSBJT0Vycm9yKG1zZykKKyAgICAgICAgcmFpc2UgT1NFcnJvcihtc2cpCiAgICAgIyBPbiBBSVgsIHRoZXJlIGFyZSB3cm9uZyBwYXRocyB0byB0aGUgbGlua2VyIHNjcmlwdHMgaW4gdGhlIE1ha2VmaWxlCiAgICAgIyAtLSB0aGVzZSBwYXRocyBhcmUgcmVsYXRpdmUgdG8gdGhlIFB5dGhvbiBzb3VyY2UsIGJ1dCB3aGVuIGluc3RhbGxlZAogICAgICMgdGhlIHNjcmlwdHMgYXJlIGluIGFub3RoZXIgZGlyZWN0b3J5LgpAQCAtNDM2LDcgKzQxNiw2IEBACiAgICAgdmFyc1snTElCREVTVCddID0gZ2V0X3BhdGgoJ3N0ZGxpYicpCiAgICAgdmFyc1snQklOTElCREVTVCddID0gZ2V0X3BhdGgoJ3BsYXRzdGRsaWInKQogICAgIHZhcnNbJ0lOQ0xVREVQWSddID0gZ2V0X3BhdGgoJ2luY2x1ZGUnKQotICAgIHZhcnNbJ1NPJ10gPSAnLnB5ZCcKICAgICB2YXJzWydFWFRfU1VGRklYJ10gPSAnLnB5ZCcKICAgICB2YXJzWydFWEUnXSA9ICcuZXhlJwogICAgIHZhcnNbJ1ZFUlNJT04nXSA9IF9QWV9WRVJTSU9OX1NIT1JUX05PX0RPVApAQCAtNTUyLDcgKzUzMSw3IEBACiAgICAgICAgICAgICAjIHN5cy5hYmlmbGFncyBtYXkgbm90IGJlIGRlZmluZWQgb24gYWxsIHBsYXRmb3Jtcy4KICAgICAgICAgICAgIF9DT05GSUdfVkFSU1snYWJpZmxhZ3MnXSA9ICcnCiAKLSAgICAgICAgaWYgb3MubmFtZSBpbiAoJ250JywgJ29zMicpOgorICAgICAgICBpZiBvcy5uYW1lID09ICdudCc6CiAgICAgICAgICAgICBfaW5pdF9ub25fcG9zaXgoX0NPTkZJR19WQVJTKQogICAgICAgICBpZiBvcy5uYW1lID09ICdwb3NpeCc6CiAgICAgICAgICAgICBfaW5pdF9wb3NpeChfQ09ORklHX1ZBUlMpCmRpZmYgLS1naXQgYS9MaWIvdGFibmFubnkucHkgYi9MaWIvdGFibmFubnkucHkKaW5kZXggNWI5YjQ0NC4uNDZlMGY1NiAxMDA3NTUKLS0tIGEvTGliL3RhYm5hbm55LnB5CisrKyBiL0xpYi90YWJuYW5ueS5weQpAQCAtOTUsNyArOTUsNyBAQAogCiAgICAgdHJ5OgogICAgICAgICBmID0gdG9rZW5pemUub3BlbihmaWxlKQotICAgIGV4Y2VwdCBJT0Vycm9yIGFzIG1zZzoKKyAgICBleGNlcHQgT1NFcnJvciBhcyBtc2c6CiAgICAgICAgIGVycnByaW50KCIlcjogSS9PIEVycm9yOiAlcyIgJSAoZmlsZSwgbXNnKSkKICAgICAgICAgcmV0dXJuCiAKZGlmZiAtLWdpdCBhL0xpYi90YXJmaWxlLnB5IGIvTGliL3RhcmZpbGUucHkKaW5kZXggNjY5Mzg0MC4uMDZkZjdkZiAxMDA2NDQKLS0tIGEvTGliL3RhcmZpbGUucHkKKysrIGIvTGliL3RhcmZpbGUucHkKQEAgLTU2LDkgKzU2LDkgQEAKICMgb3Muc3ltbGluayBvbiBXaW5kb3dzIHByaW9yIHRvIDYuMCByYWlzZXMgTm90SW1wbGVtZW50ZWRFcnJvcgogc3ltbGlua19leGNlcHRpb24gPSAoQXR0cmlidXRlRXJyb3IsIE5vdEltcGxlbWVudGVkRXJyb3IpCiB0cnk6Ci0gICAgIyBXaW5kb3dzRXJyb3IgKDEzMTQpIHdpbGwgYmUgcmFpc2VkIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaG9sZCB0aGUKKyAgICAjIE9TRXJyb3IgKHdpbmVycm9yPTEzMTQpIHdpbGwgYmUgcmFpc2VkIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaG9sZCB0aGUKICAgICAjIFNlQ3JlYXRlU3ltYm9saWNMaW5rUHJpdmlsZWdlIHByaXZpbGVnZQotICAgIHN5bWxpbmtfZXhjZXB0aW9uICs9IChXaW5kb3dzRXJyb3IsKQorICAgIHN5bWxpbmtfZXhjZXB0aW9uICs9IChPU0Vycm9yLCkKIGV4Y2VwdCBOYW1lRXJyb3I6CiAgICAgcGFzcwogCkBAIC0yNjQsMTMgKzI2NCwxMyBAQAogICAgIGZvciBiIGluIHJhbmdlKGJsb2Nrcyk6CiAgICAgICAgIGJ1ZiA9IHNyYy5yZWFkKEJVRlNJWkUpCiAgICAgICAgIGlmIGxlbihidWYpIDwgQlVGU0laRToKLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoImVuZCBvZiBmaWxlIHJlYWNoZWQiKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigiZW5kIG9mIGZpbGUgcmVhY2hlZCIpCiAgICAgICAgIGRzdC53cml0ZShidWYpCiAKICAgICBpZiByZW1haW5kZXIgIT0gMDoKICAgICAgICAgYnVmID0gc3JjLnJlYWQocmVtYWluZGVyKQogICAgICAgICBpZiBsZW4oYnVmKSA8IHJlbWFpbmRlcjoKLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoImVuZCBvZiBmaWxlIHJlYWNoZWQiKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigiZW5kIG9mIGZpbGUgcmVhY2hlZCIpCiAgICAgICAgIGRzdC53cml0ZShidWYpCiAgICAgcmV0dXJuCiAKQEAgLTM5OSw3ICszOTksNyBAQAogICAgICAgICAgICAgICAgIGlmIG1vZGUgPT0gInIiOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmRidWYgPSBiIiIKICAgICAgICAgICAgICAgICAgICAgc2VsZi5jbXAgPSBiejIuQloyRGVjb21wcmVzc29yKCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5leGNlcHRpb24gPSBJT0Vycm9yCisgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhjZXB0aW9uID0gT1NFcnJvcgogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuY21wID0gYnoyLkJaMkNvbXByZXNzb3IoKQogCkBAIC0xNjMxLDcgKzE2MzEsNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBmaWxlb2JqID0gZ3ppcC5HemlwRmlsZShuYW1lLCBtb2RlICsgImIiLCBjb21wcmVzc2xldmVsLCBmaWxlb2JqKQogICAgICAgICAgICAgdCA9IGNscy50YXJvcGVuKG5hbWUsIG1vZGUsIGZpbGVvYmosICoqa3dhcmdzKQotICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBpZiBub3QgZXh0ZmlsZW9iaiBhbmQgZmlsZW9iaiBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICBmaWxlb2JqLmNsb3NlKCkKICAgICAgICAgICAgIGlmIGZpbGVvYmogaXMgTm9uZToKQEAgLTE2NjIsNyArMTY2Miw3IEBACiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgdCA9IGNscy50YXJvcGVuKG5hbWUsIG1vZGUsIGZpbGVvYmosICoqa3dhcmdzKQotICAgICAgICBleGNlcHQgKElPRXJyb3IsIEVPRkVycm9yKToKKyAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBFT0ZFcnJvcik6CiAgICAgICAgICAgICBmaWxlb2JqLmNsb3NlKCkKICAgICAgICAgICAgIHJhaXNlIFJlYWRFcnJvcigibm90IGEgYnppcDIgZmlsZSIpCiAgICAgICAgIHQuX2V4dGZpbGVvYmogPSBGYWxzZQpAQCAtMjAyMiw3ICsyMDIyLDcgQEAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5fZXh0cmFjdF9tZW1iZXIodGFyaW5mbywgb3MucGF0aC5qb2luKHBhdGgsIHRhcmluZm8ubmFtZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRfYXR0cnM9c2V0X2F0dHJzKQotICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvciBhcyBlOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgaWYgc2VsZi5lcnJvcmxldmVsID4gMDoKICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgZWxzZToKQEAgLTIyMTEsOSArMjIxMSw4IEBACiAgICAgICAgICAgICAgICAgaWYgdGFyaW5mby5pc3N5bSgpIGFuZCBoYXNhdHRyKG9zLCAibGNob3duIik6CiAgICAgICAgICAgICAgICAgICAgIG9zLmxjaG93bih0YXJnZXRwYXRoLCB1LCBnKQogICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSAhPSAib3MyZW14IjoKLSAgICAgICAgICAgICAgICAgICAgICAgIG9zLmNob3duKHRhcmdldHBhdGgsIHUsIGcpCi0gICAgICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvciBhcyBlOgorICAgICAgICAgICAgICAgICAgICBvcy5jaG93bih0YXJnZXRwYXRoLCB1LCBnKQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICByYWlzZSBFeHRyYWN0RXJyb3IoImNvdWxkIG5vdCBjaGFuZ2Ugb3duZXIiKQogCiAgICAgZGVmIGNobW9kKHNlbGYsIHRhcmluZm8sIHRhcmdldHBhdGgpOgpAQCAtMjIyMiw3ICsyMjIxLDcgQEAKICAgICAgICAgaWYgaGFzYXR0cihvcywgJ2NobW9kJyk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgb3MuY2htb2QodGFyZ2V0cGF0aCwgdGFyaW5mby5tb2RlKQotICAgICAgICAgICAgZXhjZXB0IEVudmlyb25tZW50RXJyb3IgYXMgZToKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAgICAgcmFpc2UgRXh0cmFjdEVycm9yKCJjb3VsZCBub3QgY2hhbmdlIG1vZGUiKQogCiAgICAgZGVmIHV0aW1lKHNlbGYsIHRhcmluZm8sIHRhcmdldHBhdGgpOgpAQCAtMjIzMiw3ICsyMjMxLDcgQEAKICAgICAgICAgICAgIHJldHVybgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBvcy51dGltZSh0YXJnZXRwYXRoLCAodGFyaW5mby5tdGltZSwgdGFyaW5mby5tdGltZSkpCi0gICAgICAgIGV4Y2VwdCBFbnZpcm9ubWVudEVycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICByYWlzZSBFeHRyYWN0RXJyb3IoImNvdWxkIG5vdCBjaGFuZ2UgbW9kaWZpY2F0aW9uIHRpbWUiKQogCiAgICAgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzIzLDkgKzIzMjIsOSBAQAogICAgICAgICAgICBjb3JyZXNwb25kcyB0byBUYXJGaWxlJ3MgbW9kZS4KICAgICAgICAgIiIiCiAgICAgICAgIGlmIHNlbGYuY2xvc2VkOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigiJXMgaXMgY2xvc2VkIiAlIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigiJXMgaXMgY2xvc2VkIiAlIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fKQogICAgICAgICBpZiBtb2RlIGlzIG5vdCBOb25lIGFuZCBzZWxmLm1vZGUgbm90IGluIG1vZGU6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKCJiYWQgb3BlcmF0aW9uIGZvciBtb2RlICVyIiAlIHNlbGYubW9kZSkKKyAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoImJhZCBvcGVyYXRpb24gZm9yIG1vZGUgJXIiICUgc2VsZi5tb2RlKQogCiAgICAgZGVmIF9maW5kX2xpbmtfdGFyZ2V0KHNlbGYsIHRhcmluZm8pOgogICAgICAgICAiIiJGaW5kIHRoZSB0YXJnZXQgbWVtYmVyIG9mIGEgc3ltbGluayBvciBoYXJkbGluayBtZW1iZXIgaW4gdGhlCmRpZmYgLS1naXQgYS9MaWIvdGVsbmV0bGliLnB5IGIvTGliL3RlbG5ldGxpYi5weQppbmRleCBhNTk2OTNlLi5iNGI3Y2Q0IDEwMDY0NAotLS0gYS9MaWIvdGVsbmV0bGliLnB5CisrKyBiL0xpYi90ZWxuZXRsaWIucHkKQEAgLTI3Myw3ICsyNzMsNyBAQAogICAgICAgICAiIiJXcml0ZSBhIHN0cmluZyB0byB0aGUgc29ja2V0LCBkb3VibGluZyBhbnkgSUFDIGNoYXJhY3RlcnMuCiAKICAgICAgICAgQ2FuIGJsb2NrIGlmIHRoZSBjb25uZWN0aW9uIGlzIGJsb2NrZWQuICBNYXkgcmFpc2UKLSAgICAgICAgc29ja2V0LmVycm9yIGlmIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZC4KKyAgICAgICAgT1NFcnJvciBpZiB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQuCiAKICAgICAgICAgIiIiCiAgICAgICAgIGlmIElBQyBpbiBidWZmZXI6CkBAIC0zMTMsNyArMzEzLDcgQEAKICAgICAgICAgICAgIHdoaWxlIGkgPCAwIGFuZCBub3Qgc2VsZi5lb2Y6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICByZWFkeSA9IHBvbGxlci5wb2xsKGNhbGxfdGltZW91dCkKLSAgICAgICAgICAgICAgICBleGNlcHQgc2VsZWN0LmVycm9yIGFzIGU6CisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FSU5UUjoKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRpbWVvdXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxhcHNlZCA9IHRpbWUoKSAtIHRpbWVfc3RhcnQKQEAgLTY4Myw3ICs2ODMsNyBAQAogICAgICAgICAgICAgd2hpbGUgbm90IG0gYW5kIG5vdCBzZWxmLmVvZjoKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIHJlYWR5ID0gcG9sbGVyLnBvbGwoY2FsbF90aW1lb3V0KQotICAgICAgICAgICAgICAgIGV4Y2VwdCBzZWxlY3QuZXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgICAgICAgICBpZiBlLmVycm5vID09IGVycm5vLkVJTlRSOgogICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGltZW91dCBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGFwc2VkID0gdGltZSgpIC0gdGltZV9zdGFydApkaWZmIC0tZ2l0IGEvTGliL3RlbXBmaWxlLnB5IGIvTGliL3RlbXBmaWxlLnB5CmluZGV4IDRhYWQ3YjUuLjEwYjZhMWIgMTAwNjQ0Ci0tLSBhL0xpYi90ZW1wZmlsZS5weQorKysgYi9MaWIvdGVtcGZpbGUucHkKQEAgLTU4LDYgKzU4LDggQEAKIF9hbGxvY2F0ZV9sb2NrID0gX3RocmVhZC5hbGxvY2F0ZV9sb2NrCiAKIF90ZXh0X29wZW5mbGFncyA9IF9vcy5PX1JEV1IgfCBfb3MuT19DUkVBVCB8IF9vcy5PX0VYQ0wKK2lmIGhhc2F0dHIoX29zLCAnT19DTE9FWEVDJyk6CisgICAgX3RleHRfb3BlbmZsYWdzIHw9IF9vcy5PX0NMT0VYRUMKIGlmIGhhc2F0dHIoX29zLCAnT19OT0lOSEVSSVQnKToKICAgICBfdGV4dF9vcGVuZmxhZ3MgfD0gX29zLk9fTk9JTkhFUklUCiBpZiBoYXNhdHRyKF9vcywgJ09fTk9GT0xMT1cnKToKQEAgLTY4NCw3ICs2ODYsNiBAQAogICAgIF9pc2xpbmsgPSBzdGF0aWNtZXRob2QoX29zLnBhdGguaXNsaW5rKQogICAgIF9yZW1vdmUgPSBzdGF0aWNtZXRob2QoX29zLnJlbW92ZSkKICAgICBfcm1kaXIgPSBzdGF0aWNtZXRob2QoX29zLnJtZGlyKQotICAgIF9vc19lcnJvciA9IE9TRXJyb3IKICAgICBfd2FybiA9IF93YXJuaW5ncy53YXJuCiAKICAgICBkZWYgX3JtdHJlZShzZWxmLCBwYXRoKToKQEAgLTY5NCwxNiArNjk1LDE2IEBACiAgICAgICAgICAgICBmdWxsbmFtZSA9IHNlbGYuX3BhdGhfam9pbihwYXRoLCBuYW1lKQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGlzZGlyID0gc2VsZi5faXNkaXIoZnVsbG5hbWUpIGFuZCBub3Qgc2VsZi5faXNsaW5rKGZ1bGxuYW1lKQotICAgICAgICAgICAgZXhjZXB0IHNlbGYuX29zX2Vycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgaXNkaXIgPSBGYWxzZQogICAgICAgICAgICAgaWYgaXNkaXI6CiAgICAgICAgICAgICAgICAgc2VsZi5fcm10cmVlKGZ1bGxuYW1lKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlbW92ZShmdWxsbmFtZSkKLSAgICAgICAgICAgICAgICBleGNlcHQgc2VsZi5fb3NfZXJyb3I6CisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5fcm1kaXIocGF0aCkKLSAgICAgICAgZXhjZXB0IHNlbGYuX29zX2Vycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L19fbWFpbl9fLnB5IGIvTGliL3Rlc3QvX19tYWluX18ucHkKaW5kZXggY2U1NjE1Yi4uZDVmYmUxNSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvX19tYWluX18ucHkKKysrIGIvTGliL3Rlc3QvX19tYWluX18ucHkKQEAgLTEsMTMgKzEsMyBAQAotZnJvbSB0ZXN0IGltcG9ydCByZWdydGVzdCwgc3VwcG9ydAorZnJvbSB0ZXN0IGltcG9ydCByZWdydGVzdAogCi0KLVRFTVBESVIsIFRFU1RDV0QgPSByZWdydGVzdC5fbWFrZV90ZW1wX2Rpcl9mb3JfYnVpbGQocmVncnRlc3QuVEVNUERJUikKLXJlZ3J0ZXN0LlRFTVBESVIgPSBURU1QRElSCi1yZWdydGVzdC5URVNUQ1dEID0gVEVTVENXRAotCi0jIFJ1biB0aGUgdGVzdHMgaW4gYSBjb250ZXh0IG1hbmFnZXIgdGhhdCB0ZW1wb3JhcnkgY2hhbmdlcyB0aGUgQ1dEIHRvIGEKLSMgdGVtcG9yYXJ5IGFuZCB3cml0YWJsZSBkaXJlY3RvcnkuIElmIGl0J3Mgbm90IHBvc3NpYmxlIHRvIGNyZWF0ZSBvcgotIyBjaGFuZ2UgdGhlIENXRCwgdGhlIG9yaWdpbmFsIENXRCB3aWxsIGJlIHVzZWQuIFRoZSBvcmlnaW5hbCBDV0QgaXMKLSMgYXZhaWxhYmxlIGZyb20gc3VwcG9ydC5TQVZFRENXRC4KLXdpdGggc3VwcG9ydC50ZW1wX2N3ZChURVNUQ1dELCBxdWlldD1UcnVlKToKLSAgICByZWdydGVzdC5tYWluKCkKK3JlZ3J0ZXN0Lm1haW5faW5fdGVtcF9jd2QoKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvYmFkc3ludGF4X2Z1dHVyZTEwLnB5IGIvTGliL3Rlc3QvYmFkc3ludGF4X2Z1dHVyZTEwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhNWFiNjcKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC9iYWRzeW50YXhfZnV0dXJlMTAucHkKQEAgLTAsMCArMSwzIEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydAorInNwYW0sIGJhciwgYmxhaCIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L2J5dGVjb2RlX2hlbHBlci5weSBiL0xpYi90ZXN0L2J5dGVjb2RlX2hlbHBlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDk0M2NkCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvYnl0ZWNvZGVfaGVscGVyLnB5CkBAIC0wLDAgKzEsNzIgQEAKKyIiImJ5dGVjb2RlX2hlbHBlciAtIHN1cHBvcnQgdG9vbHMgZm9yIHRlc3RpbmcgY29ycmVjdCBieXRlY29kZSBnZW5lcmF0aW9uIiIiCisKK2ltcG9ydCB1bml0dGVzdAoraW1wb3J0IGRpcworaW1wb3J0IGlvCisKK19VTlNQRUNJRklFRCA9IG9iamVjdCgpCisKK2NsYXNzIEJ5dGVjb2RlVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIkN1c3RvbSBhc3NlcnRpb24gbWV0aG9kcyBmb3IgaW5zcGVjdGluZyBieXRlY29kZS4iIiIKKworICAgIGRlZiBnZXRfZGlzYXNzZW1ibHlfYXNfc3RyaW5nKHNlbGYsIGNvKToKKyAgICAgICAgcyA9IGlvLlN0cmluZ0lPKCkKKyAgICAgICAgZGlzLmRpcyhjbywgZmlsZT1zKQorICAgICAgICByZXR1cm4gcy5nZXR2YWx1ZSgpCisKKyAgICBkZWYgYXNzZXJ0SW5zdHJ1Y3Rpb25NYXRjaGVzKHNlbGYsIGluc3RyLCBleHBlY3RlZCwgKiwgbGluZV9vZmZzZXQ9MCk6CisgICAgICAgICMgRGVsaWJlcmF0ZWx5IHRlc3Qgb3BuYW1lIGZpcnN0LCBzaW5jZSB0aGF0IGdpdmVzIGEgbW9yZQorICAgICAgICAjIG1lYW5pbmdmdWwgZXJyb3IgbWVzc2FnZSB0aGFuIHRlc3Rpbmcgb3Bjb2RlCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zdHIub3BuYW1lLCBleHBlY3RlZC5vcG5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zdHIub3Bjb2RlLCBleHBlY3RlZC5vcGNvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zdHIuYXJnLCBleHBlY3RlZC5hcmcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zdHIuYXJndmFsLCBleHBlY3RlZC5hcmd2YWwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zdHIuYXJncmVwciwgZXhwZWN0ZWQuYXJncmVwcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnN0ci5vZmZzZXQsIGV4cGVjdGVkLm9mZnNldCkKKyAgICAgICAgaWYgZXhwZWN0ZWQuc3RhcnRzX2xpbmUgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGluc3RyLnN0YXJ0c19saW5lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnN0ci5zdGFydHNfbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQuc3RhcnRzX2xpbmUgKyBsaW5lX29mZnNldCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnN0ci5pc19qdW1wX3RhcmdldCwgZXhwZWN0ZWQuaXNfanVtcF90YXJnZXQpCisKKworICAgIGRlZiBhc3NlcnRCeXRlY29kZUV4YWN0bHlNYXRjaGVzKHNlbGYsIHgsIGV4cGVjdGVkLCAqLCBsaW5lX29mZnNldD0wKToKKyAgICAgICAgIiIiVGhyb3dzIEFzc2VydGlvbkVycm9yIGlmIGFueSBkaXNjcmVwYW5jeSBpcyBmb3VuZCBpbiBieXRlY29kZQorCisgICAgICAgICp4KiBpcyB0aGUgb2JqZWN0IHRvIGJlIGludHJvc3BlY3RlZAorICAgICAgICAqZXhwZWN0ZWQqIGlzIGEgbGlzdCBvZiBkaXMuSW5zdHJ1Y3Rpb24gb2JqZWN0cworCisgICAgICAgIFNldCAqbGluZV9vZmZzZXQqIGFzIGFwcHJvcHJpYXRlIHRvIGFkanVzdCBmb3IgdGhlIGxvY2F0aW9uIG9mIHRoZQorICAgICAgICBvYmplY3QgdG8gYmUgZGlzYXNzZW1ibGVkIHdpdGhpbiB0aGUgdGVzdCBmaWxlLiBJZiB0aGUgZXhwZWN0ZWQgbGlzdAorICAgICAgICBhc3N1bWVzIHRoZSBmaXJzdCBsaW5lIGlzIGxpbmUgMSwgdGhlbiBhbiBhcHByb3ByaWF0ZSBvZmZzZXQgd291bGQgYmUKKyAgICAgICAgYGAxIC0gZi5fX2NvZGVfXy5jb19maXJzdGxpbmVub2BgLgorICAgICAgICAiIiIKKyAgICAgICAgYWN0dWFsID0gZGlzLmdldF9pbnN0cnVjdGlvbnMoeCwgbGluZV9vZmZzZXQ9bGluZV9vZmZzZXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChhY3R1YWwpLCBleHBlY3RlZCkKKworICAgIGRlZiBhc3NlcnRJbkJ5dGVjb2RlKHNlbGYsIHgsIG9wbmFtZSwgYXJndmFsPV9VTlNQRUNJRklFRCk6CisgICAgICAgICIiIlJldHVybnMgaW5zdHIgaWYgb3AgaXMgZm91bmQsIG90aGVyd2lzZSB0aHJvd3MgQXNzZXJ0aW9uRXJyb3IiIiIKKyAgICAgICAgZm9yIGluc3RyIGluIGRpcy5nZXRfaW5zdHJ1Y3Rpb25zKHgpOgorICAgICAgICAgICAgaWYgaW5zdHIub3BuYW1lID09IG9wbmFtZToKKyAgICAgICAgICAgICAgICBpZiBhcmd2YWwgaXMgX1VOU1BFQ0lGSUVEIG9yIGluc3RyLmFyZ3ZhbCA9PSBhcmd2YWw6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnN0cgorICAgICAgICBkaXNhc3NlbWJseSA9IHNlbGYuZ2V0X2Rpc2Fzc2VtYmx5X2FzX3N0cmluZyh4KQorICAgICAgICBpZiBhcmd2YWwgaXMgX1VOU1BFQ0lGSUVEOgorICAgICAgICAgICAgbXNnID0gJyVzIG5vdCBmb3VuZCBpbiBieXRlY29kZTpcbiVzJyAlIChvcG5hbWUsIGRpc2Fzc2VtYmx5KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbXNnID0gJyglcywlcikgbm90IGZvdW5kIGluIGJ5dGVjb2RlOlxuJXMnCisgICAgICAgICAgICBtc2cgPSBtc2cgJSAob3BuYW1lLCBhcmd2YWwsIGRpc2Fzc2VtYmx5KQorICAgICAgICBzZWxmLmZhaWwobXNnKQorCisgICAgZGVmIGFzc2VydE5vdEluQnl0ZWNvZGUoc2VsZiwgeCwgb3BuYW1lLCBhcmd2YWw9X1VOU1BFQ0lGSUVEKToKKyAgICAgICAgIiIiVGhyb3dzIEFzc2VydGlvbkVycm9yIGlmIG9wIGlzIGZvdW5kIiIiCisgICAgICAgIGZvciBpbnN0ciBpbiBkaXMuZ2V0X2luc3RydWN0aW9ucyh4KToKKyAgICAgICAgICAgIGlmIGluc3RyLm9wbmFtZSA9PSBvcG5hbWU6CisgICAgICAgICAgICAgICAgZGlzYXNzZW1ibHkgPSBzZWxmLmdldF9kaXNhc3NlbWJseV9hc19zdHJpbmcoY28pCisgICAgICAgICAgICAgICAgaWYgb3Bhcmd2YWwgaXMgX1VOU1BFQ0lGSUVEOgorICAgICAgICAgICAgICAgICAgICBtc2cgPSAnJXMgb2NjdXJzIGluIGJ5dGVjb2RlOlxuJXMnICUgKG9wbmFtZSwgZGlzYXNzZW1ibHkpCisgICAgICAgICAgICAgICAgZWxpZiBpbnN0ci5hcmd2YWwgPT0gYXJndmFsOgorICAgICAgICAgICAgICAgICAgICBtc2cgPSAnKCVzLCVyKSBvY2N1cnMgaW4gYnl0ZWNvZGU6XG4lcycKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gbXNnICUgKG9wbmFtZSwgYXJndmFsLCBkaXNhc3NlbWJseSkKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwobXNnKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvZm9ya193YWl0LnB5IGIvTGliL3Rlc3QvZm9ya193YWl0LnB5CmluZGV4IDg4NTI3ZGYuLjE5YjU0ZWMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L2Zvcmtfd2FpdC5weQorKysgYi9MaWIvdGVzdC9mb3JrX3dhaXQucHkKQEAgLTI4LDcgKzI4LDcgQEAKICAgICAgICAgICAgIHNlbGYuYWxpdmVbaWRdID0gb3MuZ2V0cGlkKCkKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKFNIT1JUU0xFRVApCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgIHBhc3MKIAogICAgIGRlZiB3YWl0X2ltcGwoc2VsZiwgY3BpZCk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC9qc29uX3Rlc3RzL3Rlc3RfZmFpbC5weSBiL0xpYi90ZXN0L2pzb25fdGVzdHMvdGVzdF9mYWlsLnB5CmluZGV4IDc4MDkwNTYuLjViNjUyZTggMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L2pzb25fdGVzdHMvdGVzdF9mYWlsLnB5CisrKyBiL0xpYi90ZXN0L2pzb25fdGVzdHMvdGVzdF9mYWlsLnB5CkBAIC0xLDQgKzEsNSBAQAogZnJvbSB0ZXN0Lmpzb25fdGVzdHMgaW1wb3J0IFB5VGVzdCwgQ1Rlc3QKK2ltcG9ydCByZQogCiAjIDIwMDctMTAtMDUKIEpTT05ET0NTID0gWwpAQCAtMTAwLDYgKzEwMSw5NCBAQAogICAgICAgICAjVGhpcyBpcyBmb3IgcHl0aG9uIGVuY29kZXIKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLmR1bXBzLCBkYXRhLCBpbmRlbnQ9VHJ1ZSkKIAorICAgIGRlZiB0ZXN0X3RydW5jYXRlZF9pbnB1dChzZWxmKToKKyAgICAgICAgdGVzdF9jYXNlcyA9IFsKKyAgICAgICAgICAgICgnJywgJ0V4cGVjdGluZyB2YWx1ZScsIDApLAorICAgICAgICAgICAgKCdbJywgJ0V4cGVjdGluZyB2YWx1ZScsIDEpLAorICAgICAgICAgICAgKCdbNDInLCAiRXhwZWN0aW5nICcsJyBkZWxpbWl0ZXIiLCAzKSwKKyAgICAgICAgICAgICgnWzQyLCcsICdFeHBlY3RpbmcgdmFsdWUnLCA0KSwKKyAgICAgICAgICAgICgnWyInLCAnVW50ZXJtaW5hdGVkIHN0cmluZyBzdGFydGluZyBhdCcsIDEpLAorICAgICAgICAgICAgKCdbInNwYW0nLCAnVW50ZXJtaW5hdGVkIHN0cmluZyBzdGFydGluZyBhdCcsIDEpLAorICAgICAgICAgICAgKCdbInNwYW0iJywgIkV4cGVjdGluZyAnLCcgZGVsaW1pdGVyIiwgNyksCisgICAgICAgICAgICAoJ1sic3BhbSIsJywgJ0V4cGVjdGluZyB2YWx1ZScsIDgpLAorICAgICAgICAgICAgKCd7JywgJ0V4cGVjdGluZyBwcm9wZXJ0eSBuYW1lIGVuY2xvc2VkIGluIGRvdWJsZSBxdW90ZXMnLCAxKSwKKyAgICAgICAgICAgICgneyInLCAnVW50ZXJtaW5hdGVkIHN0cmluZyBzdGFydGluZyBhdCcsIDEpLAorICAgICAgICAgICAgKCd7InNwYW0nLCAnVW50ZXJtaW5hdGVkIHN0cmluZyBzdGFydGluZyBhdCcsIDEpLAorICAgICAgICAgICAgKCd7InNwYW0iJywgIkV4cGVjdGluZyAnOicgZGVsaW1pdGVyIiwgNyksCisgICAgICAgICAgICAoJ3sic3BhbSI6JywgJ0V4cGVjdGluZyB2YWx1ZScsIDgpLAorICAgICAgICAgICAgKCd7InNwYW0iOjQyJywgIkV4cGVjdGluZyAnLCcgZGVsaW1pdGVyIiwgMTApLAorICAgICAgICAgICAgKCd7InNwYW0iOjQyLCcsICdFeHBlY3RpbmcgcHJvcGVydHkgbmFtZSBlbmNsb3NlZCBpbiBkb3VibGUgcXVvdGVzJywgMTEpLAorICAgICAgICBdCisgICAgICAgIHRlc3RfY2FzZXMgKz0gWworICAgICAgICAgICAgKCciJywgJ1VudGVybWluYXRlZCBzdHJpbmcgc3RhcnRpbmcgYXQnLCAwKSwKKyAgICAgICAgICAgICgnInNwYW0nLCAnVW50ZXJtaW5hdGVkIHN0cmluZyBzdGFydGluZyBhdCcsIDApLAorICAgICAgICBdCisgICAgICAgIGZvciBkYXRhLCBtc2csIGlkeCBpbiB0ZXN0X2Nhc2VzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgIHInXnswfTogbGluZSAxIGNvbHVtbiB7MX0gXChjaGFyIHsyfVwpJy5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIHJlLmVzY2FwZShtc2cpLCBpZHggKyAxLCBpZHgpLAorICAgICAgICAgICAgICAgIHNlbGYubG9hZHMsIGRhdGEpCisKKyAgICBkZWYgdGVzdF91bmV4cGVjdGVkX2RhdGEoc2VsZik6CisgICAgICAgIHRlc3RfY2FzZXMgPSBbCisgICAgICAgICAgICAoJ1ssJywgJ0V4cGVjdGluZyB2YWx1ZScsIDEpLAorICAgICAgICAgICAgKCd7InNwYW0iOlt9JywgJ0V4cGVjdGluZyB2YWx1ZScsIDkpLAorICAgICAgICAgICAgKCdbNDI6JywgIkV4cGVjdGluZyAnLCcgZGVsaW1pdGVyIiwgMyksCisgICAgICAgICAgICAoJ1s0MiAic3BhbSInLCAiRXhwZWN0aW5nICcsJyBkZWxpbWl0ZXIiLCA0KSwKKyAgICAgICAgICAgICgnWzQyLF0nLCAnRXhwZWN0aW5nIHZhbHVlJywgNCksCisgICAgICAgICAgICAoJ3sic3BhbSI6WzQyfScsICJFeHBlY3RpbmcgJywnIGRlbGltaXRlciIsIDExKSwKKyAgICAgICAgICAgICgnWyJdJywgJ1VudGVybWluYXRlZCBzdHJpbmcgc3RhcnRpbmcgYXQnLCAxKSwKKyAgICAgICAgICAgICgnWyJzcGFtIjonLCAiRXhwZWN0aW5nICcsJyBkZWxpbWl0ZXIiLCA3KSwKKyAgICAgICAgICAgICgnWyJzcGFtIixdJywgJ0V4cGVjdGluZyB2YWx1ZScsIDgpLAorICAgICAgICAgICAgKCd7OicsICdFeHBlY3RpbmcgcHJvcGVydHkgbmFtZSBlbmNsb3NlZCBpbiBkb3VibGUgcXVvdGVzJywgMSksCisgICAgICAgICAgICAoJ3ssJywgJ0V4cGVjdGluZyBwcm9wZXJ0eSBuYW1lIGVuY2xvc2VkIGluIGRvdWJsZSBxdW90ZXMnLCAxKSwKKyAgICAgICAgICAgICgnezQyJywgJ0V4cGVjdGluZyBwcm9wZXJ0eSBuYW1lIGVuY2xvc2VkIGluIGRvdWJsZSBxdW90ZXMnLCAxKSwKKyAgICAgICAgICAgICgnW3tdJywgJ0V4cGVjdGluZyBwcm9wZXJ0eSBuYW1lIGVuY2xvc2VkIGluIGRvdWJsZSBxdW90ZXMnLCAyKSwKKyAgICAgICAgICAgICgneyJzcGFtIiwnLCAiRXhwZWN0aW5nICc6JyBkZWxpbWl0ZXIiLCA3KSwKKyAgICAgICAgICAgICgneyJzcGFtIn0nLCAiRXhwZWN0aW5nICc6JyBkZWxpbWl0ZXIiLCA3KSwKKyAgICAgICAgICAgICgnW3sic3BhbSJdJywgIkV4cGVjdGluZyAnOicgZGVsaW1pdGVyIiwgOCksCisgICAgICAgICAgICAoJ3sic3BhbSI6fScsICdFeHBlY3RpbmcgdmFsdWUnLCA4KSwKKyAgICAgICAgICAgICgnW3sic3BhbSI6XScsICdFeHBlY3RpbmcgdmFsdWUnLCA5KSwKKyAgICAgICAgICAgICgneyJzcGFtIjo0MiAiaGFtIicsICJFeHBlY3RpbmcgJywnIGRlbGltaXRlciIsIDExKSwKKyAgICAgICAgICAgICgnW3sic3BhbSI6NDJdJywgIkV4cGVjdGluZyAnLCcgZGVsaW1pdGVyIiwgMTEpLAorICAgICAgICAgICAgKCd7InNwYW0iOjQyLH0nLCAnRXhwZWN0aW5nIHByb3BlcnR5IG5hbWUgZW5jbG9zZWQgaW4gZG91YmxlIHF1b3RlcycsIDExKSwKKyAgICAgICAgXQorICAgICAgICBmb3IgZGF0YSwgbXNnLCBpZHggaW4gdGVzdF9jYXNlczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICByJ157MH06IGxpbmUgMSBjb2x1bW4gezF9IFwoY2hhciB7Mn1cKScuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICByZS5lc2NhcGUobXNnKSwgaWR4ICsgMSwgaWR4KSwKKyAgICAgICAgICAgICAgICBzZWxmLmxvYWRzLCBkYXRhKQorCisgICAgZGVmIHRlc3RfZXh0cmFfZGF0YShzZWxmKToKKyAgICAgICAgdGVzdF9jYXNlcyA9IFsKKyAgICAgICAgICAgICgnW11dJywgJ0V4dHJhIGRhdGEnLCAyKSwKKyAgICAgICAgICAgICgne319JywgJ0V4dHJhIGRhdGEnLCAyKSwKKyAgICAgICAgICAgICgnW10sW10nLCAnRXh0cmEgZGF0YScsIDIpLAorICAgICAgICAgICAgKCd7fSx7fScsICdFeHRyYSBkYXRhJywgMiksCisgICAgICAgIF0KKyAgICAgICAgdGVzdF9jYXNlcyArPSBbCisgICAgICAgICAgICAoJzQyLCJzcGFtIicsICdFeHRyYSBkYXRhJywgMiksCisgICAgICAgICAgICAoJyJzcGFtIiw0MicsICdFeHRyYSBkYXRhJywgNiksCisgICAgICAgIF0KKyAgICAgICAgZm9yIGRhdGEsIG1zZywgaWR4IGluIHRlc3RfY2FzZXM6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgcideezB9OiBsaW5lIDEgY29sdW1uIHsxfSAtIGxpbmUgMSBjb2x1bW4gezJ9JworICAgICAgICAgICAgICAgIHInIFwoY2hhciB7M30gLSB7NH1cKScuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICByZS5lc2NhcGUobXNnKSwgaWR4ICsgMSwgbGVuKGRhdGEpICsgMSwgaWR4LCBsZW4oZGF0YSkpLAorICAgICAgICAgICAgICAgIHNlbGYubG9hZHMsIGRhdGEpCisKKyAgICBkZWYgdGVzdF9saW5lY29sKHNlbGYpOgorICAgICAgICB0ZXN0X2Nhc2VzID0gWworICAgICAgICAgICAgKCchJywgMSwgMSwgMCksCisgICAgICAgICAgICAoJyAhJywgMSwgMiwgMSksCisgICAgICAgICAgICAoJ1xuIScsIDIsIDEsIDEpLAorICAgICAgICAgICAgKCdcbiAgXG5cbiAgICAgIScsIDQsIDYsIDEwKSwKKyAgICAgICAgXQorICAgICAgICBmb3IgZGF0YSwgbGluZSwgY29sLCBpZHggaW4gdGVzdF9jYXNlczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICByJ15FeHBlY3RpbmcgdmFsdWU6IGxpbmUgezB9IGNvbHVtbiB7MX0nCisgICAgICAgICAgICAgICAgcicgXChjaGFyIHsyfVwpJCcuZm9ybWF0KGxpbmUsIGNvbCwgaWR4KSwKKyAgICAgICAgICAgICAgICBzZWxmLmxvYWRzLCBkYXRhKQogCiBjbGFzcyBUZXN0UHlGYWlsKFRlc3RGYWlsLCBQeVRlc3QpOiBwYXNzCiBjbGFzcyBUZXN0Q0ZhaWwoVGVzdEZhaWwsIENUZXN0KTogcGFzcwpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvanNvbl90ZXN0cy90ZXN0X2luZGVudC5weSBiL0xpYi90ZXN0L2pzb25fdGVzdHMvdGVzdF9pbmRlbnQucHkKaW5kZXggNGM3MDY0Ni4uNGViNGY4OSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvanNvbl90ZXN0cy90ZXN0X2luZGVudC5weQorKysgYi9MaWIvdGVzdC9qc29uX3Rlc3RzL3Rlc3RfaW5kZW50LnB5CkBAIC0zMiw2ICszMiw4IEBACiAgICAgICAgIGQxID0gc2VsZi5kdW1wcyhoKQogICAgICAgICBkMiA9IHNlbGYuZHVtcHMoaCwgaW5kZW50PTIsIHNvcnRfa2V5cz1UcnVlLCBzZXBhcmF0b3JzPSgnLCcsICc6ICcpKQogICAgICAgICBkMyA9IHNlbGYuZHVtcHMoaCwgaW5kZW50PSdcdCcsIHNvcnRfa2V5cz1UcnVlLCBzZXBhcmF0b3JzPSgnLCcsICc6ICcpKQorICAgICAgICBkNCA9IHNlbGYuZHVtcHMoaCwgaW5kZW50PTIsIHNvcnRfa2V5cz1UcnVlKQorICAgICAgICBkNSA9IHNlbGYuZHVtcHMoaCwgaW5kZW50PSdcdCcsIHNvcnRfa2V5cz1UcnVlKQogCiAgICAgICAgIGgxID0gc2VsZi5sb2FkcyhkMSkKICAgICAgICAgaDIgPSBzZWxmLmxvYWRzKGQyKQpAQCAtNDIsNiArNDQsOCBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgzLCBoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQyLCBleHBlY3QuZXhwYW5kdGFicygyKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkMywgZXhwZWN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQ0LCBkMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkNSwgZDMpCiAKICAgICBkZWYgdGVzdF9pbmRlbnQwKHNlbGYpOgogICAgICAgICBoID0gezM6IDF9CmRpZmYgLS1naXQgYS9MaWIvdGVzdC9rZXljZXJ0My5wZW0gYi9MaWIvdGVzdC9rZXljZXJ0My5wZW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJmYTYyYwotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L2tleWNlcnQzLnBlbQpAQCAtMCwwICsxLDczIEBACistLS0tLUJFR0lOIFBSSVZBVEUgS0VZLS0tLS0KK01JSUNkZ0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQW1Bd2dnSmNBZ0VBQW9HQkFNTGdEMGtBS0RiNWNGeVAKK2pid05mUjVDdGV3ZFhDK2tNWEFXRDhETHhpVFR2aE1XN3FWbmx3T20zNm1abHN6SEt2c1JmMDVsVDRwZWdpRk0KKzl6MmoxT2xhTitjaS9YN05VMjJUTk42Y3JZU2lONzdGallKUDQ2NGo4NzZuZFN4eUQrcnp5czM4NlQrMXIxYVoKK2FnZ0Vka2oxVHNTc3YxeldJWUtsUElqbHZodXhBZ01CQUFFQ2dZQTBhSCtUMlZmM1dPUHY4S2RrY0pnNmdDUmUKK3lKS1hPV2dXUmNpY3gvQ1V6T0VzVHhtRklEUEx4cUFXQTNrN3YwQiszdmpHdzVZOWx5Y1YvNVhxWE5vUUkxNGoKK3kwOWlOc3VtZHMxM3U1QUtrR2RUSm5aaFE3VUtkb1ZIZnVQNDRaZE92L3JKNS9WRDZGNHpXeXdwZTkwcGNiSysKK0FXRFZ0dXNnR1FCU2llRWwxUUpCQU95VnJVRzVsMnlvVUJ0ZDJ6ci9raUdtL0RZeVhsSXRoUU8vQTMvTG5nRFcKKzUveWRHeFZzVDdsQVZPZ0Nzb1QrMEw0ZWZUaDkwUGp6VzhMUFFyUEJXVk1DUVFEUzNoL0Z0WVlkNWxmeitGTkwKKzlDRWUxRjF3OWw4UDc0OXVOVUQwZzMxN3p2MXRhdElxVkNzUVdIZlZITmRWdmZRK3ZTRnczOE9PUk8wMFhxczkKKzFHSnJBa0Jrb1hYRWt4Q1pveTRQdGVoZU8vOElXV0xHR3I2TDdkaTZNekZsMWxJcXdUNkQ4TDlvYVYydnluRlQKK0RuS29wMHBhMDlVbmhqeXc1N0tNTm1TRTJTVUpBa0VBcmxvVEV6cGdSbUNxNElLMi9OcENlR2RIUzV1cVJsYmgKKzFWSWEveEdwczdFV1FsNU1uOHN3UURlbC9ZUDNXR0hUamZ4N3BnU2VnUWZreWFSdEdwWjlPUUpBYTlWdW1qOG0KK0pBQXRJMEJuZ2E4aGdReDdCaFRRWTRDYWREeHlpUkdPR1lod1V6WVZDcWtiMnNiVlJIOUhud1VhSlQ3Y1dCWTMKK1JuSmRIT01YV2VtNy93PT0KKy0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0KK0NlcnRpZmljYXRlOgorICAgIERhdGE6CisgICAgICAgIFZlcnNpb246IDEgKDB4MCkKKyAgICAgICAgU2VyaWFsIE51bWJlcjogMTI3MjMzNDI2MTI3MjE0NDMyODEgKDB4YjA5MjY0YjFmMmRhMjFkMSkKKyAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGExV2l0aFJTQUVuY3J5cHRpb24KKyAgICAgICAgSXNzdWVyOiBDPVhZLCBPPVB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uIENBLCBDTj1vdXItY2Etc2VydmVyCisgICAgICAgIFZhbGlkaXR5CisgICAgICAgICAgICBOb3QgQmVmb3JlOiBKYW4gIDQgMTk6NDc6MDcgMjAxMyBHTVQKKyAgICAgICAgICAgIE5vdCBBZnRlciA6IE5vdiAxMyAxOTo0NzowNyAyMDIyIEdNVAorICAgICAgICBTdWJqZWN0OiBDPVhZLCBMPUNhc3RsZSBBbnRocmF4LCBPPVB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBDTj1sb2NhbGhvc3QKKyAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5IEluZm86CisgICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvbgorICAgICAgICAgICAgICAgIFB1YmxpYy1LZXk6ICgxMDI0IGJpdCkKKyAgICAgICAgICAgICAgICBNb2R1bHVzOgorICAgICAgICAgICAgICAgICAgICAwMDpjMjplMDowZjo0OTowMDoyODozNjpmOTo3MDo1Yzo4Zjo4ZDpiYzowZDoKKyAgICAgICAgICAgICAgICAgICAgN2Q6MWU6NDI6YjU6ZWM6MWQ6NWM6MmY6YTQ6MzE6NzA6MTY6MGY6YzA6Y2I6CisgICAgICAgICAgICAgICAgICAgIGM2OjI0OmQzOmJlOjEzOjE2OmVlOmE1OjY3Ojk3OjAzOmE2OmRmOmE5Ojk5OgorICAgICAgICAgICAgICAgICAgICA5NjpjYzpjNzoyYTpmYjoxMTo3Zjo0ZTo2NTo0Zjo4YTo1ZTo4MjoyMTo0YzoKKyAgICAgICAgICAgICAgICAgICAgZjc6M2Q6YTM6ZDQ6ZTk6NWE6Mzc6ZTc6MjI6ZmQ6N2U6Y2Q6NTM6NmQ6OTM6CisgICAgICAgICAgICAgICAgICAgIDM0OmRlOjljOmFkOjg0OmEyOjM3OmJlOmM1OjhkOjgyOjRmOmUzOmFlOjIzOgorICAgICAgICAgICAgICAgICAgICBmMzpiZTphNzo3NToyYzo3MjowZjplYTpmMzpjYTpjZDpmYzplOTozZjpiNToKKyAgICAgICAgICAgICAgICAgICAgYWY6NTY6OTk6NmE6MDg6MDQ6NzY6NDg6ZjU6NGU6YzQ6YWM6YmY6NWM6ZDY6CisgICAgICAgICAgICAgICAgICAgIDIxOjgyOmE1OjNjOjg4OmU1OmJlOjFiOmIxCisgICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQorICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTFXaXRoUlNBRW5jcnlwdGlvbgorICAgICAgICAgMmY6NDI6NWY6YTM6MDk6MmM6ZmE6NTE6ODg6Yzc6Mzc6N2Y6ZWE6MGU6NjM6ZjA6YTI6OWE6CisgICAgICAgICBlNTo1YTplMjpjODoyMDpmMDozZjo2MDpiYzpjODowZjpiNjpjNjo3NjpjZTpkYjo4Mzo5MzoKKyAgICAgICAgIGY1OmEzOjMzOjY3OjAxOjhlOjA0OmNkOjAwOjlhOjczOmZkOmYzOjM1Ojg2OmZhOmQ3OjEzOgorICAgICAgICAgZTI6NDY6YzY6OWQ6YzA6Mjk6NTM6ZDQ6YTk6OTA6Yjg6Nzc6NGI6ZTY6ODM6NzY6ZTQ6OTI6CisgICAgICAgICBkNjo5Yzo1MDpjZjo0MzpkMDpjNjowMTo3Nzo2MTo5YTpkZTo5Yjo3MDpmNzo3MjpjZDo1OToKKyAgICAgICAgIDAwOjMxOjY5OmQ5OmI0OmNhOjA2OjljOjZkOmMzOmM3OjgwOjhjOjY4OmU2OmI1OmEyOmY4OgorICAgICAgICAgZWY6MWQ6YmI6MTY6OWY6Nzc6Nzc6ZWY6ODc6NjI6MjI6OWI6NGQ6Njk6YTQ6M2E6MWE6ZjE6CisgICAgICAgICAyMTo1ZTo4YzozMjphYzo5MjpmZDoxNTo2YjoxODpjMjo3ZjoxNTowZDo5ODozMDpjYTo3NToKKyAgICAgICAgIDhmOjFhOjcxOmRmOmRhOjFkOmIyOmVmOjlhOmU4OjJkOjJlOjAyOmZkOjRhOjNjOmFhOjk2OgorICAgICAgICAgMGI6MDY6NWQ6MzU6YjM6M2Q6MjQ6ODc6NGI6ZTA6YjA6NTg6NjA6MmY6NDU6YWM6MmU6NDg6CisgICAgICAgICA4YTpiMDo5OToxMDo2NToyNzpmZjpjYzpiMTpkODpmZDpiZDoyNjo2YjpiOTowYzowNToyYToKKyAgICAgICAgIGY0OjQ1OjYzOjM1OjUxOjA3OmVkOjgzOjg1OmZlOjZmOjY5OmNiOmJiOjQwOmE4OmFlOmI2OgorICAgICAgICAgM2I6NTY6NGE6MmQ6YTQ6ZWQ6NmQ6MTE6MmM6NGQ6ZWQ6MTc6MjQ6ZmQ6NDc6YmM6ZDM6NDE6CisgICAgICAgICBhMjpkMzowNjpmZTowYzo5MDpkODpkODo5NDoyNjpjNDpmZjpjYzphMTpkODo0Mjo3NzplYjoKKyAgICAgICAgIGZjOmE5Ojk0OjcxCistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUNwRENDQVl3Q0NRQ3drbVN4OHRvaDBUQU5CZ2txaGtpRzl3MEJBUVVGQURCTk1Rc3dDUVlEVlFRR0V3SlkKK1dURW1NQ1FHQTFVRUNnd2RVSGwwYUc5dUlGTnZablIzWVhKbElFWnZkVzVrWVhScGIyNGdRMEV4RmpBVUJnTlYKK0JBTU1EVzkxY2kxallTMXpaWEoyWlhJd0hoY05NVE13TVRBME1UazBOekEzV2hjTk1qSXhNVEV6TVRrME56QTMKK1dqQmZNUXN3Q1FZRFZRUUdFd0pZV1RFWE1CVUdBMVVFQnhNT1EyRnpkR3hsSUVGdWRHaHlZWGd4SXpBaEJnTlYKK0JBb1RHbEI1ZEdodmJpQlRiMlowZDJGeVpTQkdiM1Z1WkdGMGFXOXVNUkl3RUFZRFZRUURFd2xzYjJOaGJHaHYKK2MzUXdnWjh3RFFZSktvWklodmNOQVFFQkJRQURnWTBBTUlHSkFvR0JBTUxnRDBrQUtEYjVjRnlQamJ3TmZSNUMKK3Rld2RYQytrTVhBV0Q4REx4aVRUdmhNVzdxVm5sd09tMzZtWmxzekhLdnNSZjA1bFQ0cGVnaUZNOXoyajFPbGEKK04rY2kvWDdOVTIyVE5ONmNyWVNpTjc3RmpZSlA0NjRqODc2bmRTeHlEK3J6eXMzODZUKzFyMWFaYWdnRWRrajEKK1RzU3N2MXpXSVlLbFBJamx2aHV4QWdNQkFBRXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBQzlDWDZNSkxQcFIKK2lNYzNmK29PWS9DaW11VmE0c2dnOEQ5Z3ZNZ1B0c1oyenR1RGsvV2pNMmNCamdUTkFKcHovZk0xaHZyWEUrSkcKK3hwM0FLVlBVcVpDNGQwdm1nM2Jra3RhY1VNOUQwTVlCZDJHYTNwdHc5M0xOV1FBeGFkbTB5Z2FjYmNQSGdJeG8KKzVyV2krTzhkdXhhZmQzZnZoMklpbTAxcHBEb2E4U0ZlakRLc2t2MFZheGpDZnhVTm1EREtkWThhY2QvYUhiTHYKK211Z3RMZ0w5U2p5cWxnc0dYVFd6UFNTSFMrQ3dXR0F2UmF3dVNJcXdtUkJsSi8vTXNkajl2U1pydVF3Rkt2UkYKK1l6VlJCKzJEaGY1dmFjdTdRS2l1dGp0V1NpMms3VzBSTEUzdEZ5VDlSN3pUUWFMVEJ2NE1rTmpZbENiRS84eWgKKzJFSjM2L3lwbEhFPQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3Qva2V5Y2VydDQucGVtIGIvTGliL3Rlc3Qva2V5Y2VydDQucGVtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzMzU1YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC9rZXljZXJ0NC5wZW0KQEAgLTAsMCArMSw3MyBAQAorLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCitNSUlDZGdJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0FtQXdnZ0pjQWdFQUFvR0JBSzVVUWlNSTVWa05zMlF2CitMN2dVYWlEZEZldk5VWFJqVTRESEFlM1p6ellMWk5FNjloOWdPOVZDU1MxNnRKNWZUNVZFdTBFWnlHcjBlM1YyCitOa1gwWm9VMEhjL1VhWTRxeDdMSG1uNVNZWnBJeGhKbmtmN1N5SEpLMXpVYUdsVTAvTHhZcUl1R0N0RjVkcXgxCitMMk9RaEV4MUdNNlJ5ZEhkZ1g2OUc2NExYY1k1QWdNQkFBRUNnWUFoc1JNZkprYjlFUkxNbC9vRy81c0xRdTlMCitwV0RLdDYrWndkeHpsWmJnZ1E4NUNNWXNoakxLSW9kMkRMTC9zTGYyeDFQUlh5UkcxMzFNMUUzazh6a2t6NmRlCitSMXVEcklOL3g5MWl1WXpmTFFaR2g4Yk1ZN1lqZDJlb3JvYTZSLzdEanBFbEdlakx4T0FhRFdPMFNUMklGUXk5CitteVRHUzJqU005N3djWGZzU1FKQkFOUDNqZWxKb1M1WDZCUmpUU25lWTIxd2NvY3hWdVFoOHBYcEVyQUxWTnNUCitkcnJGVGVhQnVacDdLdmJ0bklNNWcyV1JOdmF4TFpsQVkvaFhQSnZpNm5jQ1FRRFNpeDFjZWJtbDZFbVBsRVpTCitNbThnd0kyRjl1ZlV1bndKbUJKY3o4MjZEbzBaTkdCeVdEQU0vSlFaSDRGWDRHZkFGTnVqOFBVYitHUWZhZGt4CitpMURQQWtFQTBsVnNOSG9qdnVEc0lvOEhHdXphck5aUVQyYmVXakoxamR4aDl0N0hyVHg3TElwczZyYi9maE9LCitaczBSNmdWQUphRWJjV0FQWjJ0RnlFQ0luQWRuc1FKQVVqYWVYWGp1eEZrak9GeW01UHZxcHZocGl2RXg3OEJ1CitKUFRyM3JBS1htZkdNeHhmdU9hMHhLMXdTeXNoUDZaUi9SQm4vK2xjWFBLdWJoSFFET2Vnd3dKQUpGMURCUW5OCisrL3RMbU9QVUx0RHdmUDRaaXhuKy84R21HT2FoRm9SY3U2VklHSG1SaWxKVG42TU9CdXR3N0dsdjJZZGVDNmwvCitlODNHcTZmZkxWZktOUT09CistLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCitDZXJ0aWZpY2F0ZToKKyAgICBEYXRhOgorICAgICAgICBWZXJzaW9uOiAxICgweDApCisgICAgICAgIFNlcmlhbCBOdW1iZXI6IDEyNzIzMzQyNjEyNzIxNDQzMjgyICgweGIwOTI2NGIxZjJkYTIxZDIpCisgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMVdpdGhSU0FFbmNyeXB0aW9uCisgICAgICAgIElzc3VlcjogQz1YWSwgTz1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQSwgQ049b3VyLWNhLXNlcnZlcgorICAgICAgICBWYWxpZGl0eQorICAgICAgICAgICAgTm90IEJlZm9yZTogSmFuICA0IDE5OjQ3OjA3IDIwMTMgR01UCisgICAgICAgICAgICBOb3QgQWZ0ZXIgOiBOb3YgMTMgMTk6NDc6MDcgMjAyMiBHTVQKKyAgICAgICAgU3ViamVjdDogQz1YWSwgTD1DYXN0bGUgQW50aHJheCwgTz1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiwgQ049ZmFrZWhvc3RuYW1lCisgICAgICAgIFN1YmplY3QgUHVibGljIEtleSBJbmZvOgorICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KKyAgICAgICAgICAgICAgICBQdWJsaWMtS2V5OiAoMTAyNCBiaXQpCisgICAgICAgICAgICAgICAgTW9kdWx1czoKKyAgICAgICAgICAgICAgICAgICAgMDA6YWU6NTQ6NDI6MjM6MDg6ZTU6NTk6MGQ6YjM6NjQ6MmY6MmY6Yjg6MTQ6CisgICAgICAgICAgICAgICAgICAgIDZhOjIwOmRkOjE1OmViOmNkOjUxOjc0OjYzOjUzOjgwOmM3OjAxOmVkOmQ5OgorICAgICAgICAgICAgICAgICAgICBjZjozNjowYjo2NDpkMTozYTpmNjoxZjo2MDozYjpkNTo0Mjo0OToyZDo3YToKKyAgICAgICAgICAgICAgICAgICAgYjQ6OWU6NWY6NGY6OTU6NDQ6YmI6NDE6MTk6Yzg6NmE6ZjQ6N2I6NzU6NzY6CisgICAgICAgICAgICAgICAgICAgIDM2OjQ1OmY0OjY2Ojg1OjM0OjFkOmNmOmQ0OjY5OjhlOjJhOmM3OmIyOmM3OgorICAgICAgICAgICAgICAgICAgICA5YTo3ZTo1Mjo2MTo5YTo0ODpjNjoxMjo2Nzo5MTpmZTpkMjpjODo3Mjo0YToKKyAgICAgICAgICAgICAgICAgICAgZDc6MzU6MWE6MWE6NTU6MzQ6ZmM6YmM6NTg6YTg6OGI6ODY6MGE6ZDE6Nzk6CisgICAgICAgICAgICAgICAgICAgIDc2OmFjOjc1OjJmOjYzOjkwOjg0OjRjOjc1OjE4OmNlOjkxOmM5OmQxOmRkOgorICAgICAgICAgICAgICAgICAgICA4MTo3ZTpiZDoxYjphZTowYjo1ZDpjNjozOQorICAgICAgICAgICAgICAgIEV4cG9uZW50OiA2NTUzNyAoMHgxMDAwMSkKKyAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGExV2l0aFJTQUVuY3J5cHRpb24KKyAgICAgICAgIGFkOjQ1OjhhOjhlOmVmOmM2OmVmOjA0OjQxOjVjOjJjOjRhOjg0OmRjOjAyOjc2OjBjOmQwOgorICAgICAgICAgNjY6MGY6ZjA6MTY6MDQ6NTg6NGQ6ZmQ6Njg6Yjc6Yjg6ZDM6YTg6NDE6YTU6NWM6M2M6NmY6CisgICAgICAgICA2NTozYzpkMTpmODpjZTo0MzozNTplNzo0MTo1Zjo1MzozZDpjOToyYzpjMzo3ZDpmYzo1NjoKKyAgICAgICAgIDRhOmZhOjQ3Ojc3OjM4OjlkOmJiOjk3OjI4OjBhOjNiOjkxOjE5OjdmOmJjOjc0OmFlOjE1OgorICAgICAgICAgNmI6YmQ6MjA6MzY6Njc6NDU6YTU6MWU6Nzk6ZDc6NzU6ZTY6ODk6NWM6NmQ6NTQ6ODQ6ZDE6CisgICAgICAgICA5NTpkNzphNzpiNDozMzozYzphZjozNzpjNDo3OTo4Zjo1ZTo3NTpkYzo3NTpjMjoxODpmYjoKKyAgICAgICAgIDYxOjZmOjJkOmRjOjM4OjY1OjViOmJhOjY3OjI4OmQwOjg4OmQ3OjhkOmI5OjIzOjVhOjhlOgorICAgICAgICAgZTg6YzY6YmI6ZGI6Y2U6ZDU6Yjg6NDE6MmE6Y2U6OTM6MDg6YjY6OTU6YWQ6MzQ6MjA6MTg6CisgICAgICAgICBkNTozYjozNzo1Mjo3NDo1MDowYjowNzoyYzpiMDo2ZDphNDo0Yzo3YjpmNDplMDpmZDpkMToKKyAgICAgICAgIGFmOjE3OmFhOjIwOmNkOjYyOmUzOmYwOjlkOjM3OjY5OmRiOjQxOmJkOmQ0OjFjOmZiOjUzOgorICAgICAgICAgMjA6ZGE6ODg6OWQ6NzY6MjY6Njc6Y2U6MDE6OTA6YTc6ODA6MWQ6YTk6NWI6Mzk6NzM6Njg6CisgICAgICAgICA1NDowYTpkMToyYTowMzoxYjo4ZjozYzo0Mzo1ZDo1ZDpjNDo1MTpmMTphNzplNzoxMTpkYToKKyAgICAgICAgIDMxOjJjOjQ5OjA2OmFmOjA0OmY0OmI4OjNjOjk5OmM0OjIwOmI5OjA2OjM2OmEyOjAwOjkyOgorICAgICAgICAgNjE6MWQ6MGM6NmQ6MjQ6MDU6ZTI6ODI6ZTE6NDc6ZGI6YTA6NWY6YmE6Yjk6ZmI6YmE6ZmE6CisgICAgICAgICA0OToxMjoxZTpjZQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlDcHpDQ0FZOENDUUN3a21TeDh0b2gwakFOQmdrcWhraUc5dzBCQVFVRkFEQk5NUXN3Q1FZRFZRUUdFd0pZCitXVEVtTUNRR0ExVUVDZ3dkVUhsMGFHOXVJRk52Wm5SM1lYSmxJRVp2ZFc1a1lYUnBiMjRnUTBFeEZqQVVCZ05WCitCQU1NRFc5MWNpMWpZUzF6WlhKMlpYSXdIaGNOTVRNd01UQTBNVGswTnpBM1doY05Nakl4TVRFek1UazBOekEzCitXakJpTVFzd0NRWURWUVFHRXdKWVdURVhNQlVHQTFVRUJ4TU9RMkZ6ZEd4bElFRnVkR2h5WVhneEl6QWhCZ05WCitCQW9UR2xCNWRHaHZiaUJUYjJaMGQyRnlaU0JHYjNWdVpHRjBhVzl1TVJVd0V3WURWUVFERXd4bVlXdGxhRzl6CitkRzVoYldVd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFLNVVRaU1JNVZrTnMyUXZMN2dVCithaURkRmV2TlVYUmpVNERIQWUzWnp6WUxaTkU2OWg5Z085VkNTUzE2dEo1ZlQ1VkV1MEVaeUdyMGUzVjJOa1gwCitab1UwSGMvVWFZNHF4N0xIbW41U1lacEl4aEpua2Y3U3lISksxelVhR2xVMC9MeFlxSXVHQ3RGNWRxeDFMMk9RCitoRXgxR002UnlkSGRnWDY5RzY0TFhjWTVBZ01CQUFFd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFLMUZpbzd2Cit4dThFUVZ3c1NvVGNBbllNMEdZUDhCWUVXRTM5YUxlNDA2aEJwVnc4YjJVODBmak9RelhuUVY5VFBja3N3MzM4CitWa3I2UjNjNG5idVhLQW83a1JsL3ZIU3VGV3U5SURablJhVWVlZGQxNW9sY2JWU0UwWlhYcDdRelBLODN4SG1QCitYblhjZGNJWSsyRnZMZHc0WlZ1Nlp5alFpTmVOdVNOYWp1akd1OXZPMWJoQktzNlRDTGFWclRRZ0dOVTdOMUowCitVQXNITExCdHBFeDc5T0Q5MGE4WHFpRE5ZdVB3blRkcDIwRzkxQno3VXlEYWlKMTJKbWZPQVpDbmdCMnBXemx6CithRlFLMFNvREc0ODhRMTFkeEZIeHArY1IyakVzU1FhdkJQUzRQSm5FSUxrR05xSUFrbUVkREcwa0JlS0M0VWZiCitvRis2dWZ1Nitra1NIczQ9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS9MaWIvdGVzdC9tYWtlX3NzbF9jZXJ0cy5weSBiL0xpYi90ZXN0L21ha2Vfc3NsX2NlcnRzLnB5CmluZGV4IDQ4ZDJlNTcuLmY2MzA4MTMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L21ha2Vfc3NsX2NlcnRzLnB5CisrKyBiL0xpYi90ZXN0L21ha2Vfc3NsX2NlcnRzLnB5CkBAIC0yLDYgKzIsNyBAQAogYW5kIGZyaWVuZHMuIiIiCiAKIGltcG9ydCBvcworaW1wb3J0IHNodXRpbAogaW1wb3J0IHN5cwogaW1wb3J0IHRlbXBmaWxlCiBmcm9tIHN1YnByb2Nlc3MgaW1wb3J0ICoKQEAgLTIwLDExICsyMSw1MiBAQAogCiAgICAgW3JlcV94NTA5X2V4dGVuc2lvbnNdCiAgICAgc3ViamVjdEFsdE5hbWUgICAgICAgICA9IEROUzp7aG9zdG5hbWV9CisKKyAgICBbIGNhIF0KKyAgICBkZWZhdWx0X2NhICAgICAgPSBDQV9kZWZhdWx0CisKKyAgICBbIENBX2RlZmF1bHQgXQorICAgIGRpciA9IGNhZGlyCisgICAgZGF0YWJhc2UgID0gJGRpci9pbmRleC50eHQKKyAgICBkZWZhdWx0X21kID0gc2hhMQorICAgIGRlZmF1bHRfZGF5cyA9IDM2MDAKKyAgICBjZXJ0aWZpY2F0ZSA9IHB5Y2FjZXJ0LnBlbQorICAgIHByaXZhdGVfa2V5ID0gcHljYWtleS5wZW0KKyAgICBzZXJpYWwgICAgPSAkZGlyL3NlcmlhbAorICAgIFJBTkRGSUxFICA9ICRkaXIvLnJhbmQKKworICAgIHBvbGljeSAgICAgICAgICA9IHBvbGljeV9tYXRjaAorCisgICAgWyBwb2xpY3lfbWF0Y2ggXQorICAgIGNvdW50cnlOYW1lICAgICAgICAgICAgID0gbWF0Y2gKKyAgICBzdGF0ZU9yUHJvdmluY2VOYW1lICAgICA9IG9wdGlvbmFsCisgICAgb3JnYW5pemF0aW9uTmFtZSAgICAgICAgPSBtYXRjaAorICAgIG9yZ2FuaXphdGlvbmFsVW5pdE5hbWUgID0gb3B0aW9uYWwKKyAgICBjb21tb25OYW1lICAgICAgICAgICAgICA9IHN1cHBsaWVkCisgICAgZW1haWxBZGRyZXNzICAgICAgICAgICAgPSBvcHRpb25hbAorCisgICAgWyBwb2xpY3lfYW55dGhpbmcgXQorICAgIGNvdW50cnlOYW1lICAgPSBvcHRpb25hbAorICAgIHN0YXRlT3JQcm92aW5jZU5hbWUgPSBvcHRpb25hbAorICAgIGxvY2FsaXR5TmFtZSAgICA9IG9wdGlvbmFsCisgICAgb3JnYW5pemF0aW9uTmFtZSAgPSBvcHRpb25hbAorICAgIG9yZ2FuaXphdGlvbmFsVW5pdE5hbWUgID0gb3B0aW9uYWwKKyAgICBjb21tb25OYW1lICAgID0gc3VwcGxpZWQKKyAgICBlbWFpbEFkZHJlc3MgICAgPSBvcHRpb25hbAorCisKKyAgICBbIHYzX2NhIF0KKworICAgIHN1YmplY3RLZXlJZGVudGlmaWVyPWhhc2gKKyAgICBhdXRob3JpdHlLZXlJZGVudGlmaWVyPWtleWlkOmFsd2F5cyxpc3N1ZXIKKyAgICBiYXNpY0NvbnN0cmFpbnRzID0gQ0E6dHJ1ZQorCiAgICAgIiIiCiAKIGhlcmUgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKIAotZGVmIG1ha2VfY2VydF9rZXkoaG9zdG5hbWUpOgorZGVmIG1ha2VfY2VydF9rZXkoaG9zdG5hbWUsIHNpZ249RmFsc2UpOgorICAgIHByaW50KCJjcmVhdGluZyBjZXJ0IGZvciAiICsgaG9zdG5hbWUpCiAgICAgdGVtcG5hbWVzID0gW10KICAgICBmb3IgaSBpbiByYW5nZSgzKToKICAgICAgICAgd2l0aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoZGVsZXRlPUZhbHNlKSBhcyBmOgpAQCAtMzMsMTAgKzc1LDI1IEBACiAgICAgdHJ5OgogICAgICAgICB3aXRoIG9wZW4ocmVxX2ZpbGUsICd3JykgYXMgZjoKICAgICAgICAgICAgIGYud3JpdGUocmVxX3RlbXBsYXRlLmZvcm1hdChob3N0bmFtZT1ob3N0bmFtZSkpCi0gICAgICAgIGFyZ3MgPSBbJ3JlcScsICctbmV3JywgJy1kYXlzJywgJzM2NTAnLCAnLW5vZGVzJywgJy14NTA5JywKKyAgICAgICAgYXJncyA9IFsncmVxJywgJy1uZXcnLCAnLWRheXMnLCAnMzY1MCcsICctbm9kZXMnLAogICAgICAgICAgICAgICAgICctbmV3a2V5JywgJ3JzYToxMDI0JywgJy1rZXlvdXQnLCBrZXlfZmlsZSwKLSAgICAgICAgICAgICAgICAnLW91dCcsIGNlcnRfZmlsZSwgJy1jb25maWcnLCByZXFfZmlsZV0KKyAgICAgICAgICAgICAgICAnLWNvbmZpZycsIHJlcV9maWxlXQorICAgICAgICBpZiBzaWduOgorICAgICAgICAgICAgd2l0aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoZGVsZXRlPUZhbHNlKSBhcyBmOgorICAgICAgICAgICAgICAgIHRlbXBuYW1lcy5hcHBlbmQoZi5uYW1lKQorICAgICAgICAgICAgICAgIHJlcWZpbGUgPSBmLm5hbWUKKyAgICAgICAgICAgIGFyZ3MgKz0gWyctb3V0JywgcmVxZmlsZSBdCisKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFyZ3MgKz0gWycteDUwOScsICctb3V0JywgY2VydF9maWxlIF0KICAgICAgICAgY2hlY2tfY2FsbChbJ29wZW5zc2wnXSArIGFyZ3MpCisKKyAgICAgICAgaWYgc2lnbjoKKyAgICAgICAgICAgIGFyZ3MgPSBbJ2NhJywgJy1jb25maWcnLCByZXFfZmlsZSwgJy1vdXQnLCBjZXJ0X2ZpbGUsICctb3V0ZGlyJywgJ2NhZGlyJywKKyAgICAgICAgICAgICAgICAgICAgJy1wb2xpY3knLCAncG9saWN5X2FueXRoaW5nJywgJy1iYXRjaCcsICctaW5maWxlcycsIHJlcWZpbGUgXQorICAgICAgICAgICAgY2hlY2tfY2FsbChbJ29wZW5zc2wnXSArIGFyZ3MpCisKKwogICAgICAgICB3aXRoIG9wZW4oY2VydF9maWxlLCAncicpIGFzIGY6CiAgICAgICAgICAgICBjZXJ0ID0gZi5yZWFkKCkKICAgICAgICAgd2l0aCBvcGVuKGtleV9maWxlLCAncicpIGFzIGY6CkBAIC00Niw2ICsxMDMsMzIgQEAKICAgICAgICAgZm9yIG5hbWUgaW4gdGVtcG5hbWVzOgogICAgICAgICAgICAgb3MucmVtb3ZlKG5hbWUpCiAKK1RNUF9DQURJUiA9ICdjYWRpcicKKworZGVmIHVubWFrZV9jYSgpOgorICAgIHNodXRpbC5ybXRyZWUoVE1QX0NBRElSKQorCitkZWYgbWFrZV9jYSgpOgorICAgIG9zLm1rZGlyKFRNUF9DQURJUikKKyAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKCdjYWRpcicsJ2luZGV4LnR4dCcpLCdhKycpIGFzIGY6CisgICAgICAgIHBhc3MgIyBlbXB0eSBmaWxlCisgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbignY2FkaXInLCdpbmRleC50eHQuYXR0cicpLCd3KycpIGFzIGY6CisgICAgICAgIGYud3JpdGUoJ3VuaXF1ZV9zdWJqZWN0ID0gbm8nKQorCisgICAgd2l0aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoInciKSBhcyB0OgorICAgICAgICB0LndyaXRlKHJlcV90ZW1wbGF0ZS5mb3JtYXQoaG9zdG5hbWU9J291ci1jYS1zZXJ2ZXInKSkKKyAgICAgICAgdC5mbHVzaCgpCisgICAgICAgIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKCkgYXMgZjoKKyAgICAgICAgICAgIGFyZ3MgPSBbJ3JlcScsICctbmV3JywgJy1kYXlzJywgJzM2NTAnLCAnLWV4dGVuc2lvbnMnLCAndjNfY2EnLCAnLW5vZGVzJywKKyAgICAgICAgICAgICAgICAgICAgJy1uZXdrZXknLCAncnNhOjIwNDgnLCAnLWtleW91dCcsICdweWNha2V5LnBlbScsCisgICAgICAgICAgICAgICAgICAgICctb3V0JywgZi5uYW1lLAorICAgICAgICAgICAgICAgICAgICAnLXN1YmonLCAnL0M9WFkvTD1DYXN0bGUgQW50aHJheC9PPVB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uIENBL0NOPW91ci1jYS1zZXJ2ZXInXQorICAgICAgICAgICAgY2hlY2tfY2FsbChbJ29wZW5zc2wnXSArIGFyZ3MpCisgICAgICAgICAgICBhcmdzID0gWydjYScsICctY29uZmlnJywgdC5uYW1lLCAnLWNyZWF0ZV9zZXJpYWwnLAorICAgICAgICAgICAgICAgICAgICAnLW91dCcsICdweWNhY2VydC5wZW0nLCAnLWJhdGNoJywgJy1vdXRkaXInLCBUTVBfQ0FESVIsCisgICAgICAgICAgICAgICAgICAgICcta2V5ZmlsZScsICdweWNha2V5LnBlbScsICctZGF5cycsICczNjUwJywKKyAgICAgICAgICAgICAgICAgICAgJy1zZWxmc2lnbicsICctZXh0ZW5zaW9ucycsICd2M19jYScsICctaW5maWxlcycsIGYubmFtZSBdCisgICAgICAgICAgICBjaGVja19jYWxsKFsnb3BlbnNzbCddICsgYXJncykKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICBvcy5jaGRpcihoZXJlKQpAQCAtNTQsMTEgKzEzNywzNCBAQAogICAgICAgICBmLndyaXRlKGNlcnQpCiAgICAgd2l0aCBvcGVuKCdzc2xfa2V5LnBlbScsICd3JykgYXMgZjoKICAgICAgICAgZi53cml0ZShrZXkpCisgICAgcHJpbnQoInBhc3N3b3JkIHByb3RlY3Rpbmcgc3NsX2tleS5wZW0gaW4gc3NsX2tleS5wYXNzd2QucGVtIikKKyAgICBjaGVja19jYWxsKFsnb3BlbnNzbCcsJ3JzYScsJy1pbicsJ3NzbF9rZXkucGVtJywnLW91dCcsJ3NzbF9rZXkucGFzc3dkLnBlbScsJy1kZXMzJywnLXBhc3NvdXQnLCdwYXNzOnNvbWVwYXNzJ10pCisgICAgY2hlY2tfY2FsbChbJ29wZW5zc2wnLCdyc2EnLCctaW4nLCdzc2xfa2V5LnBlbScsJy1vdXQnLCdrZXljZXJ0LnBhc3N3ZC5wZW0nLCctZGVzMycsJy1wYXNzb3V0JywncGFzczpzb21lcGFzcyddKQorCiAgICAgd2l0aCBvcGVuKCdrZXljZXJ0LnBlbScsICd3JykgYXMgZjoKICAgICAgICAgZi53cml0ZShrZXkpCiAgICAgICAgIGYud3JpdGUoY2VydCkKKworICAgIHdpdGggb3Blbigna2V5Y2VydC5wYXNzd2QucGVtJywgJ2ErJykgYXMgZjoKKyAgICAgICAgZi53cml0ZShjZXJ0KQorCiAgICAgIyBGb3IgY2VydGlmaWNhdGUgbWF0Y2hpbmcgdGVzdHMKKyAgICBtYWtlX2NhKCkKICAgICBjZXJ0LCBrZXkgPSBtYWtlX2NlcnRfa2V5KCdmYWtlaG9zdG5hbWUnKQogICAgIHdpdGggb3Blbigna2V5Y2VydDIucGVtJywgJ3cnKSBhcyBmOgogICAgICAgICBmLndyaXRlKGtleSkKICAgICAgICAgZi53cml0ZShjZXJ0KQorCisgICAgY2VydCwga2V5ID0gbWFrZV9jZXJ0X2tleSgnbG9jYWxob3N0JywgVHJ1ZSkKKyAgICB3aXRoIG9wZW4oJ2tleWNlcnQzLnBlbScsICd3JykgYXMgZjoKKyAgICAgICAgZi53cml0ZShrZXkpCisgICAgICAgIGYud3JpdGUoY2VydCkKKworICAgIGNlcnQsIGtleSA9IG1ha2VfY2VydF9rZXkoJ2Zha2Vob3N0bmFtZScsIFRydWUpCisgICAgd2l0aCBvcGVuKCdrZXljZXJ0NC5wZW0nLCAndycpIGFzIGY6CisgICAgICAgIGYud3JpdGUoa2V5KQorICAgICAgICBmLndyaXRlKGNlcnQpCisKKyAgICB1bm1ha2VfY2EoKQorICAgIHByaW50KCJcblxuUGxlYXNlIGNoYW5nZSB0aGUgdmFsdWVzIGluIHRlc3Rfc3NsLnB5LCB0ZXN0X3BhcnNlX2NlcnQgZnVuY3Rpb24gcmVsYXRlZCB0byBub3RBZnRlcixub3RCZWZvcmUgYW5kIHNlcmlhbE51bWJlciIpCisgICAgY2hlY2tfY2FsbChbJ29wZW5zc2wnLCd4NTA5JywnLWluJywna2V5Y2VydC5wZW0nLCctZGF0ZXMnLCctc2VyaWFsJywnLW5vb3V0J10pCmRpZmYgLS1naXQgYS9MaWIvdGVzdC9tb2NrX3NvY2tldC5weSBiL0xpYi90ZXN0L21vY2tfc29ja2V0LnB5CmluZGV4IGQwOWU3OGMuLjhlZjBlYzggMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L21vY2tfc29ja2V0LnB5CisrKyBiL0xpYi90ZXN0L21vY2tfc29ja2V0LnB5CkBAIC0xNDAsMTIgKzE0MCw4IEBACiAgICAgcmV0dXJuICIiCiAKIAotY2xhc3MgZ2FpZXJyb3IoRXhjZXB0aW9uKToKLSAgICBwYXNzCi0KLQotY2xhc3MgZXJyb3IoRXhjZXB0aW9uKToKLSAgICBwYXNzCitnYWllcnJvciA9IHNvY2tldF9tb2R1bGUuZ2FpZXJyb3IKK2Vycm9yID0gc29ja2V0X21vZHVsZS5lcnJvcgogCiAKICMgQ29uc3RhbnRzCmRpZmYgLS1naXQgYS9MaWIvdGVzdC9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LnB5IGIvTGliL3Rlc3QvbXVsdGlieXRlY29kZWNfc3VwcG9ydC5weQppbmRleCAyNmJhYzdiLi5kY2FhZTdiIDEwMDY0NAotLS0gYS9MaWIvdGVzdC9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LnB5CisrKyBiL0xpYi90ZXN0L211bHRpYnl0ZWNvZGVjX3N1cHBvcnQucHkKQEAgLTI4Miw3ICsyODIsNyBAQAogICAgICAgICB1bml0dGVzdC5UZXN0Q2FzZS5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprdykKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5vcGVuX21hcHBpbmdfZmlsZSgpLmNsb3NlKCkgIyB0ZXN0IGl0IHRvIHJlcG9ydCB0aGUgZXJyb3IgZWFybHkKLSAgICAgICAgZXhjZXB0IChJT0Vycm9yLCBIVFRQRXhjZXB0aW9uKToKKyAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBIVFRQRXhjZXB0aW9uKToKICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoIkNvdWxkIG5vdCByZXRyaWV2ZSAiK3NlbGYubWFwZmlsZXVybCkKIAogICAgIGRlZiBvcGVuX21hcHBpbmdfZmlsZShzZWxmKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3BpY2tsZXRlc3Rlci5weSBiL0xpYi90ZXN0L3BpY2tsZXRlc3Rlci5weQppbmRleCAzNDIzNDYyLi43ZTZlNzU4IDEwMDY0NAotLS0gYS9MaWIvdGVzdC9waWNrbGV0ZXN0ZXIucHkKKysrIGIvTGliL3Rlc3QvcGlja2xldGVzdGVyLnB5CkBAIC02MDEsMzAgKzYwMSw2IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCBzZWxmLmxvYWRzLCBiJ2cwXG5wMCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5sb2FkcyhiJygoS2R0cDBcbmhceDAwbC4pKScpLCBbKDEwMCwpLCAoMTAwLCldKQogCi0gICAgZGVmIHRlc3RfaW5zZWN1cmVfc3RyaW5ncyhzZWxmKToKLSAgICAgICAgIyBYWFggU29tZSBvZiB0aGVzZSB0ZXN0cyBhcmUgdGVtcG9yYXJpbHkgZGlzYWJsZWQKLSAgICAgICAgaW5zZWN1cmUgPSBbYiJhYmMiLCBiIjIgKyAyIiwgIyBub3QgcXVvdGVkCi0gICAgICAgICAgICAgICAgICAgICMjIGIiJ2FiYycgKyAnZGVmJyIsICMgbm90IGEgc2luZ2xlIHF1b3RlZCBzdHJpbmcKLSAgICAgICAgICAgICAgICAgICAgYiInYWJjIiwgIyBxdW90ZSBpcyBub3QgY2xvc2VkCi0gICAgICAgICAgICAgICAgICAgIGIiJ2FiY1wiIiwgIyBvcGVuIHF1b3RlIGFuZCBjbG9zZSBxdW90ZSBkb24ndCBtYXRjaAotICAgICAgICAgICAgICAgICAgICBiIidhYmMnICAgPyIsICMganVuayBhZnRlciBjbG9zZSBxdW90ZQotICAgICAgICAgICAgICAgICAgICBiIidcXCciLCAjIHRyYWlsaW5nIGJhY2tzbGFzaAotICAgICAgICAgICAgICAgICAgICAjIFZhcmlhdGlvbnMgb24gaXNzdWUgIzE3NzEwCi0gICAgICAgICAgICAgICAgICAgIGIiJyIsCi0gICAgICAgICAgICAgICAgICAgIGInIicsCi0gICAgICAgICAgICAgICAgICAgIGIiJyAiLAotICAgICAgICAgICAgICAgICAgICBiIicgICIsCi0gICAgICAgICAgICAgICAgICAgIGIiJyAgICIsCi0gICAgICAgICAgICAgICAgICAgIGIiJyAgICAiLAotICAgICAgICAgICAgICAgICAgICBiJyIgICAgJywKLSAgICAgICAgICAgICAgICAgICAgIyBzb21lIHRlc3RzIG9mIHRoZSBxdW90aW5nIHJ1bGVzCi0gICAgICAgICAgICAgICAgICAgICMjIGIiJ2FiY1wiXCcnIiwKLSAgICAgICAgICAgICAgICAgICAgIyMgYiInXFxcXGFcJ1wnXCdcXFwnXFxcXFwnJyIsCi0gICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgZm9yIGIgaW4gaW5zZWN1cmU6Ci0gICAgICAgICAgICBidWYgPSBiIlMiICsgYiArIGIiXDAxMnAwXDAxMi4iCi0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxmLmxvYWRzLCBidWYpCi0KICAgICBkZWYgdGVzdF91bmljb2RlKHNlbGYpOgogICAgICAgICBlbmRjYXNlcyA9IFsnJywgJzxcXHU+JywgJzxcXFx1MTIzND4nLCAnPFxuPicsCiAgICAgICAgICAgICAgICAgICAgICc8XFw+JywgJzxcXFxVMDAwMTIzNDU+JywKQEAgLTEyMTQsNiArMTE5MCwzNSBAQAogICAgICAgICBkdW1wZWQgPSBiJ1x4ODBceDAzWFx4MDFceDAwXHgwMFx4MDBhclx4ZmZceGZmXHhmZlx4ZmYuJwogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxmLmxvYWRzLCBkdW1wZWQpCiAKKyAgICBkZWYgdGVzdF9iYWRseV9lc2NhcGVkX3N0cmluZyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2VsZi5sb2FkcywgYiJTJ1xcJ1xuLiIpCisKKyAgICBkZWYgdGVzdF9iYWRseV9xdW90ZWRfc3RyaW5nKHNlbGYpOgorICAgICAgICAjIElzc3VlICMxNzcxMAorICAgICAgICBiYWRwaWNrbGVzID0gW2IiUydcbi4iLAorICAgICAgICAgICAgICAgICAgICAgIGInUyJcbi4nLAorICAgICAgICAgICAgICAgICAgICAgIGInU1wnIFxuLicsCisgICAgICAgICAgICAgICAgICAgICAgYidTIiBcbi4nLAorICAgICAgICAgICAgICAgICAgICAgIGInU1wnIlxuLicsCisgICAgICAgICAgICAgICAgICAgICAgYidTIlwnXG4uJywKKyAgICAgICAgICAgICAgICAgICAgICBiIlMnICcgXG4uIiwKKyAgICAgICAgICAgICAgICAgICAgICBiJ1MiICIgXG4uJywKKyAgICAgICAgICAgICAgICAgICAgICBiIlMgJydcbi4iLAorICAgICAgICAgICAgICAgICAgICAgIGInUyAiIlxuLicsCisgICAgICAgICAgICAgICAgICAgICAgYidTIFxuLicsCisgICAgICAgICAgICAgICAgICAgICAgYidTXG4uJywKKyAgICAgICAgICAgICAgICAgICAgICBiJ1MuJ10KKyAgICAgICAgZm9yIHAgaW4gYmFkcGlja2xlczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHBpY2tsZS5VbnBpY2tsaW5nRXJyb3IsIHNlbGYubG9hZHMsIHApCisKKyAgICBkZWYgdGVzdF9jb3JyZWN0bHlfcXVvdGVkX3N0cmluZyhzZWxmKToKKyAgICAgICAgZ29vZHBpY2tsZXMgPSBbKGIiUycnXG4uIiwgJycpLAorICAgICAgICAgICAgICAgICAgICAgICAoYidTIiJcbi4nLCAnJyksCisgICAgICAgICAgICAgICAgICAgICAgIChiJ1MiXFxuIlxuLicsICdcbicpLAorICAgICAgICAgICAgICAgICAgICAgICAoYiJTJ1xcbidcbi4iLCAnXG4nKV0KKyAgICAgICAgZm9yIHAsIGV4cGVjdGVkIGluIGdvb2RwaWNrbGVzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmxvYWRzKHApLCBleHBlY3RlZCkKKwogICAgIGRlZiBfY2hlY2tfcGlja2xpbmdfd2l0aF9vcGNvZGUoc2VsZiwgb2JqLCBvcGNvZGUsIHByb3RvKToKICAgICAgICAgcGlja2xlZCA9IHNlbGYuZHVtcHMob2JqLCBwcm90bykKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wY29kZV9pbl9waWNrbGUob3Bjb2RlLCBwaWNrbGVkKSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3B5Y2FjZXJ0LnBlbSBiL0xpYi90ZXN0L3B5Y2FjZXJ0LnBlbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWIxZjNlCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvcHljYWNlcnQucGVtCkBAIC0wLDAgKzEsNzggQEAKK0NlcnRpZmljYXRlOgorICAgIERhdGE6CisgICAgICAgIFZlcnNpb246IDMgKDB4MikKKyAgICAgICAgU2VyaWFsIE51bWJlcjogMTI3MjMzNDI2MTI3MjE0NDMyODAgKDB4YjA5MjY0YjFmMmRhMjFkMCkKKyAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGExV2l0aFJTQUVuY3J5cHRpb24KKyAgICAgICAgSXNzdWVyOiBDPVhZLCBPPVB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uIENBLCBDTj1vdXItY2Etc2VydmVyCisgICAgICAgIFZhbGlkaXR5CisgICAgICAgICAgICBOb3QgQmVmb3JlOiBKYW4gIDQgMTk6NDc6MDcgMjAxMyBHTVQKKyAgICAgICAgICAgIE5vdCBBZnRlciA6IEphbiAgMiAxOTo0NzowNyAyMDIzIEdNVAorICAgICAgICBTdWJqZWN0OiBDPVhZLCBPPVB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uIENBLCBDTj1vdXItY2Etc2VydmVyCisgICAgICAgIFN1YmplY3QgUHVibGljIEtleSBJbmZvOgorICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KKyAgICAgICAgICAgICAgICBQdWJsaWMtS2V5OiAoMjA0OCBiaXQpCisgICAgICAgICAgICAgICAgTW9kdWx1czoKKyAgICAgICAgICAgICAgICAgICAgMDA6ZTc6ZGU6ZTk6ZTM6MGM6OWY6MDA6YjY6YTE6ZmQ6MmI6NWI6OTY6ZDI6CisgICAgICAgICAgICAgICAgICAgIDZmOmNjOmUwOmJlOjg2OmI5OjIwOjVlOmVjOjAzOjdhOjU1OmFiOmVhOmE0OgorICAgICAgICAgICAgICAgICAgICBlOTpmOTo0OTo4NTpkMjo2NjpkNTplZDpjNzo3YTplYTo1Njo4ZToyZDo4ZjoKKyAgICAgICAgICAgICAgICAgICAgZTc6NDI6ZTI6NjI6Mjg6YTk6OWY6ZDY6MWI6OGU6ZWI6YjU6YjQ6OWM6OWY6CisgICAgICAgICAgICAgICAgICAgIDE0OmFiOmRmOmU2Ojk0OjhiOjc2OjFkOjNlOjZkOjI0OjYxOmVkOjBjOmJmOgorICAgICAgICAgICAgICAgICAgICAwMDo4YTo2MTowYzpkZjo1YzpjODozNjo3MzoxNjowMDpjZDo0NzpiYTo2ZDoKKyAgICAgICAgICAgICAgICAgICAgYTQ6YTQ6NzQ6ODg6ODM6MjM6MGE6MTk6ZmM6MDk6YTc6M2M6NGE6NGI6ZDM6CisgICAgICAgICAgICAgICAgICAgIGU3OjFkOjJkOmU0OmVhOjRjOjU0OjIxOmYzOjI2OmRiOjg5OjM3OjE4OmQ0OgorICAgICAgICAgICAgICAgICAgICAwMjpiYjo0MDozMjo1ZjphNDpmZjoyZDoxYzpmNzpkNDpiYjplYzo4ZTpjZjoKKyAgICAgICAgICAgICAgICAgICAgNWM6ODI6YWM6ZTY6N2M6MDg6NmM6NDg6ODU6NjE6MDc6N2Y6MjU6ZTA6NWM6CisgICAgICAgICAgICAgICAgICAgIGUwOmJjOjM0OjVmOmUwOmI5OjA0OjQ3Ojc1OmM4OjQ3OjBiOjhkOmJjOmQ2OgorICAgICAgICAgICAgICAgICAgICBjODo2ODo1ZjozMzo4Mzo2MjpkMjoyMDo0NDozNTpiMTphZDo4MToxYTo4YToKKyAgICAgICAgICAgICAgICAgICAgY2Q6YmM6MzU6YjA6NWM6OGI6NDc6ZDY6MTg6ZTk6OWM6MTg6OTc6Y2M6MDE6CisgICAgICAgICAgICAgICAgICAgIDNjOjI5OmNjOmU4OjFlOmU0OmU0OmMxOmI4OmRlOmU3OmMyOjExOjE4Ojg3OgorICAgICAgICAgICAgICAgICAgICA1YTo5MzozNDpkODphNjoyNTpmNzoxNDo3MTplYjplNDoyMTphMjpkMjowZjoKKyAgICAgICAgICAgICAgICAgICAgMmU6MmU6ZDQ6NjI6MDA6MzU6ZDM6ZDY6ZWY6NWM6NjA6NGI6NGM6YTk6MTQ6CisgICAgICAgICAgICAgICAgICAgIGUyOmRkOjE1OjU4OjQ2OjM3OjMzOjI2OmI3OmU3OjJlOjVkOmVkOjQyOmU0OgorICAgICAgICAgICAgICAgICAgICBjNTo0ZAorICAgICAgICAgICAgICAgIEV4cG9uZW50OiA2NTUzNyAoMHgxMDAwMSkKKyAgICAgICAgWDUwOXYzIGV4dGVuc2lvbnM6CisgICAgICAgICAgICBYNTA5djMgU3ViamVjdCBLZXkgSWRlbnRpZmllcjogCisgICAgICAgICAgICAgICAgQkM6REQ6NjI6RDk6NzY6REE6MUI6RDI6NTQ6NkI6Q0Y6RTA6NjY6OUI6MUU6MUU6N0I6NTY6MEM6MEIKKyAgICAgICAgICAgIFg1MDl2MyBBdXRob3JpdHkgS2V5IElkZW50aWZpZXI6IAorICAgICAgICAgICAgICAgIGtleWlkOkJDOkREOjYyOkQ5Ojc2OkRBOjFCOkQyOjU0OjZCOkNGOkUwOjY2OjlCOjFFOjFFOjdCOjU2OjBDOjBCCisKKyAgICAgICAgICAgIFg1MDl2MyBCYXNpYyBDb25zdHJhaW50czogCisgICAgICAgICAgICAgICAgQ0E6VFJVRQorICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTFXaXRoUlNBRW5jcnlwdGlvbgorICAgICAgICAgN2Q6MGE6ZjU6Y2I6OGQ6ZDM6NWQ6YmQ6OTk6OGU6Zjg6MmI6MGY6YmE6ZWI6YzI6ZDk6YTY6CisgICAgICAgICAyNzo0ZjoyZTo3YjoyZjowZTo2NDpkODoxYzozNTo1MDo0ZTplZTpmYzo5MDpiOTo4ZDo2ZDoKKyAgICAgICAgIGE4OmM1OmM2OjA2OmIwOmFmOmYzOjJkOmJmOjNiOmI4OjQyOjA3OmRkOjE4OjdkOjZkOjk1OgorICAgICAgICAgNTQ6NTc6ODU6MTg6NjA6NDc6MmY6ZWI6Nzg6MWI6Zjk6ZTg6MTc6ZmQ6NWE6MGQ6ODc6MTc6CisgICAgICAgICAyODphYzo0Yzo2YTplNjpiYzoyOTpmNDpmNDo1NTo3MDoyOTo0MjpkZTo4NTplYTphYjo2YzoKKyAgICAgICAgIDIzOjA2OjY0OjMwOjc1OjAyOjhlOjUzOmJjOjVlOjAxOjMzOjM3OmNjOjFlOmNkOmI4OmE0OgorICAgICAgICAgZmQ6Y2E6ZTQ6NWY6NjU6M2I6ODM6MWM6ODY6ZjE6NTU6MDI6YTA6M2E6OGY6ZGI6OTE6Yjc6CisgICAgICAgICA0MDoxNDpiNDplNzo4ZDpkMjplZTo3MzpiYTplMzplNTozNDoyZDpiYzo5NDo2Zjo0ZToyNDoKKyAgICAgICAgIDA2OmY3OjVmOjhiOjBlOmE3OjhlOjZiOmRlOjVlOjc1OmY0OjMyOjlhOjUwOmIxOjQ0OjMzOgorICAgICAgICAgOWE6ZDA6MDU6ZTI6Nzg6ODI6ZmY6ZGI6ZGE6OGE6NjM6ZWI6YTk6ZGQ6ZDE6YmY6YTA6NjE6CisgICAgICAgICBhZDplMzo5ZTo4YToyNDo1ZDo2MjowZTplNzo0Yzo5MTo3ZjplZjpkZjozNDozNjozYjoyZjoKKyAgICAgICAgIDVkOmY1Ojg0OmIyOjJmOmM0OjZkOjkzOjk2OjFhOjZmOjMwOjI4OmYxOmRhOjEyOjlhOjY0OgorICAgICAgICAgYjQ6NDA6MzM6MWQ6YmQ6ZGU6MmI6NTM6YTg6ZWE6YmU6ZDY6YmM6NGU6OTY6ZjU6NDQ6ZmI6CisgICAgICAgICAzMjoxODphZTpkNToxZjpmNjo2OTphZjpiNjo0ZTo3YjoxZDo1ODplYzozYjphOTo1MzphMzoKKyAgICAgICAgIDVlOjU4OmM4OjllCistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSURiVENDQWxXZ0F3SUJBZ0lKQUxDU1pMSHkyaUhRTUEwR0NTcUdTSWIzRFFFQkJRVUFNRTB4Q3pBSkJnTlYKK0JBWVRBbGhaTVNZd0pBWURWUVFLREIxUWVYUm9iMjRnVTI5bWRIZGhjbVVnUm05MWJtUmhkR2x2YmlCRFFURVcKK01CUUdBMVVFQXd3TmIzVnlMV05oTFhObGNuWmxjakFlRncweE16QXhNRFF4T1RRM01EZGFGdzB5TXpBeE1ESXgKK09UUTNNRGRhTUUweEN6QUpCZ05WQkFZVEFsaFpNU1l3SkFZRFZRUUtEQjFRZVhSb2IyNGdVMjltZEhkaGNtVWcKK1JtOTFibVJoZEdsdmJpQkRRVEVXTUJRR0ExVUVBd3dOYjNWeUxXTmhMWE5sY25abGNqQ0NBU0l3RFFZSktvWkkKK2h2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBT2ZlNmVNTW53QzJvZjByVzViU2I4emd2b2E1SUY3c0EzcFYKK3ErcWs2ZmxKaGRKbTFlM0hldXBXamkyUDUwTGlZaWlwbjlZYmp1dTF0SnlmRkt2ZjVwU0xkaDArYlNSaDdReS8KK0FJcGhETjljeURaekZnRE5SN3B0cEtSMGlJTWpDaG44Q2FjOFNrdlQ1eDB0NU9wTVZDSHpKdHVKTnhqVUFydEEKK01sK2sveTBjOTlTNzdJN1BYSUtzNW53SWJFaUZZUWQvSmVCYzRMdzBYK0M1QkVkMXlFY0xqYnpXeUdoZk00TmkKKzBpQkVOYkd0Z1JxS3pidzFzRnlMUjlZWTZad1lsOHdCUENuTTZCN2s1TUc0M3VmQ0VSaUhXcE0wMktZbDl4UngKKzYrUWhvdElQTGk3VVlnQTEwOWJ2WEdCTFRLa1U0dDBWV0VZM015YTM1eTVkN1VMa3hVMENBd0VBQWFOUU1FNHcKK0hRWURWUjBPQkJZRUZMemRZdGwyMmh2U1ZHdlA0R2FiSGg1N1Znd0xNQjhHQTFVZEl3UVlNQmFBRkx6ZFl0bDIKKzJodlNWR3ZQNEdhYkhoNTdWZ3dMTUF3R0ExVWRFd1FGTUFNQkFmOHdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUIKK0FIMEs5Y3VOMDEyOW1ZNzRLdys2NjhMWnBpZFBMbnN2RG1UWUhEVlFUdTc4a0xtTmJhakZ4Z2F3ci9NdHZ6dTQKK1FnZmRHSDF0bFZSWGhSaGdSeS9yZUJ2NTZCZjlXZzJIRnlpc1RHcm12Q24wOUZWd0tVTGVoZXFyYkNNR1pEQjEKK0FvNVR2RjRCTXpmTUhzMjRwUDNLNUY5bE80TWNodkZWQXFBNmo5dVJ0MEFVdE9lTjB1NXp1dVBsTkMyOGxHOU8KK0pBYjNYNHNPcDQ1cjNsNTE5REthVUxGRU01clFCZUo0Z3YvYjJvcGo2Nm5kMGIrZ1lhM2pub29rWFdJTzUweVIKK2YrL2ZORFk3TDEzMWhMSXZ4RzJUbGhwdk1DangyaEthWkxSQU14MjkzaXRUcU9xKzFyeE9sdlZFK3pJWXJ0VWYKKzltbXZ0azU3SFZqc082bFRvMTVZeUo0PQorLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvcHljYWtleS5wZW0gYi9MaWIvdGVzdC9weWNha2V5LnBlbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzZlZmZlCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvcHljYWtleS5wZW0KQEAgLTAsMCArMSwyOCBAQAorLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCitNSUlFdmdJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLZ3dnZ1NrQWdFQUFvSUJBUURuM3VuakRKOEF0cUg5CitLMXVXMG0vTTRMNkd1U0JlN0FONlZhdnFwT241U1lYU1p0WHR4M3JxVm80dGorZEM0bUlvcVovV0c0N3J0YlNjCitueFNyMythVWkzWWRQbTBrWWUwTXZ3Q0tZUXpmWE1nMmN4WUF6VWU2YmFTa2RJaURJd29aL0FtblBFcEwwK2NkCitMZVRxVEZRaDh5YmJpVGNZMUFLN1FESmZwUDh0SFBmVXUreU96MXlDck9aOENHeEloV0VIZnlYZ1hPQzhORi9nCit1UVJIZGNoSEM0Mjgxc2hvWHpPRFl0SWdSRFd4cllFYWlzMjhOYkJjaTBmV0dPbWNHSmZNQVR3cHpPZ2U1T1RCCit1Tjdud2hFWWgxcVROTmltSmZjVWNldmtJYUxTRHk0dTFHSUFOZFBXNzF4Z1MweXBGT0xkRlZoR056TW10K2N1CitYZTFDNU1WTkFnTUJBQUVDZ2dFQkFKUE03UXVVclBuNGNMTi9Zc2QxNWx3VFduOW9IREZGZ2tZRnZDczY2Z1hFCitqdS82S3gyQmpXRTR3VEpieTA5QUhNL01xQjBEdmd1VDdNZjFRMmozdFBRMUhab3dnOE93UkRsZXV3cDZLSWxzCitqQmJoTDBKZGwvNUhDNjdrdFd2Wjl3TnZPL3dGRzFyUWZUNkZWYWpmOUxVYldFYVNaYk9HMlNMaEhmc0hvcnp1Cit4alRKYUkzYlEvMCs3OUIxZXh3azVydXdoekZSZC9YcFk4aGxzN0QvUmZQSXVIRGxCZ2hrVzNONTlLRldyZjVoCis2Yk5FaDJUSG0wK0l5R2NHcXMwRkQrUUNPWHl2c2p3U1Vzd3FycjJjdExSRU9lRGNkNVJlVWpTeFlnamNKUnJtCitKN2NlSVkvK3V3REp4dy9PbG5tQnZGNnBRTWtLd1lXMmdGenR1K2cydDRVQ2dZRUEvOXlvMDFFeHo0Y3J4WHN5Cit0QWxuREpNKytuWmNtMDdydEZqVEtIVWZLWS9jQ2dOVGE4dWRNMHN2bmZ3bGlkL2RwZ0xzSTM4Z3gwNEhIQzFpCitFWjRhY3orVG9JV2VkTHhNMG5xNzMvL3hlUldFYXpPdkN6MW1NVFphTWxkYWhUV0F5ek44cVZLMkIvNjI1WXk0Cit3TllXeXdlQkJ3RUI4TXphQ3M3M3Nwa3NYT3NDZ1lFQTUvN3d2aGlvZllHRkFmTXVBTmVKSXdETDJPdEJub092CittVk5mQ21pM0dDMzhmend5aTVacHNrV0RpUzJ3b0orTFFmczlRdTRFY1piVUZMZDdnYmVPdmI1Z21GVXRZb3BlCitMaXRVVUt1bklSMThNa1ErbVFEQnBRUFFQaGs0UUpQNXJlQ2JXa3JmVHU3YjVvL2lTNDFzNmZCVEZtdXpoTGNUCitDNzF2RmRDeWVLY0NnWUFpQ0NxWWVPdEVMRG1CT2VMRG1hQ1FScUdRMU45NmRPUGJDQm1GL3hZWEJDQ0RZRy9mCitIYVVhSm56OTZZVGdzdHNiY3JZUC9wL1FncXRsYncvbFFmOUlwd011emJjRzFlanQ4Zzg5T3lEV055dDJ5dGdVCitpYVVuRkpDb3MzL0J5aDBJYWgvQnNkT3VlbzIvT0psMlpNT0JXODBvcmxTZ3Y4NmNzMnkwMzdUTDR3S0JnUURtCitPT3lXK01sYm93aG5JdmZvQmZ3bExFa2VmbmVqNG5LRDZXUkxaQmN1ZTVReWYzNTVYMDZNaHNjOWZvWGxIKzZHCitEOWgvYnN3aUhOZGhwNk44MnJkZ1BHaUhReC9DeGlVb0UvK2IvbnZnTk81bXc2cUxFMkVYYkcxZThwQU1KY3lFCitiSHcrWWthd2dnRGZFTEkwMzZmUmo1Z2tpOFNlVXo4blMxbk5nRWxieVFLQmdDUkRYOUpoK013U0x1NFFCV2R0CisvZmkrbHYzSzZrdW4vZkk3RU9WMXZDVi9qODcxdElDdTdwdTVCck9MeEFIcW9WZlU5QVVYMjk5LzJLakNiNXB2Citram9naVVLNnFXQ1dCbGZ1cUROV0dDb1VHdDFyaHpuVXZhMG5OalNNeTVyaW5CaGhqcFJPWkMycHc0OGxPbHVQCitVdXZYc2FQcGg3R1RxUHV5NEthYjEyWUMKKy0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3JlZ3J0ZXN0LnB5IGIvTGliL3Rlc3QvcmVncnRlc3QucHkKaW5kZXggNjM2MjgyZS4uNGM1NWRiNSAxMDA3NTUKLS0tIGEvTGliL3Rlc3QvcmVncnRlc3QucHkKKysrIGIvTGliL3Rlc3QvcmVncnRlc3QucHkKQEAgLTEsMTEgKzEsMTggQEAKICMhIC91c3IvYmluL2VudiBweXRob24zCiAKICIiIgotVXNhZ2U6CitTY3JpcHQgdG8gcnVuIFB5dGhvbiByZWdyZXNzaW9uIHRlc3RzLgogCitSdW4gdGhpcyBzY3JpcHQgd2l0aCAtaCBvciAtLWhlbHAgZm9yIGRvY3VtZW50YXRpb24uCisiIiIKKworVVNBR0UgPSAiIiJcCiBweXRob24gLW0gdGVzdCBbb3B0aW9uc10gW3Rlc3RfbmFtZTEgW3Rlc3RfbmFtZTIgLi4uXV0KIHB5dGhvbiBwYXRoL3RvL0xpYi90ZXN0L3JlZ3J0ZXN0LnB5IFtvcHRpb25zXSBbdGVzdF9uYW1lMSBbdGVzdF9uYW1lMiAuLi5dXQorIiIiCiAKK0RFU0NSSVBUSU9OID0gIiIiXAorUnVuIFB5dGhvbiByZWdyZXNzaW9uIHRlc3RzLgogCiBJZiBubyBhcmd1bWVudHMgb3Igb3B0aW9ucyBhcmUgcHJvdmlkZWQsIGZpbmRzIGFsbCBmaWxlcyBtYXRjaGluZwogdGhlIHBhdHRlcm4gInRlc3RfKiIgaW4gdGhlIExpYi90ZXN0IHN1YmRpcmVjdG9yeSBhbmQgcnVucwpAQCAtMTUsNjMgKzIyLDEwIEBACiBjb21tYW5kIGxpbmU6CiAKIHB5dGhvbiAtRSAtV2QgLW0gdGVzdCBbb3B0aW9uc10gW3Rlc3RfbmFtZTEgLi4uXQorIiIiCiAKLQotT3B0aW9uczoKLQotLWgvLS1oZWxwICAgICAgIC0tIHByaW50IHRoaXMgdGV4dCBhbmQgZXhpdAotLS10aW1lb3V0IFRJTUVPVVQKLSAgICAgICAgICAgICAgICAtLSBkdW1wIHRoZSB0cmFjZWJhY2sgYW5kIGV4aXQgaWYgYSB0ZXN0IHRha2VzIG1vcmUKLSAgICAgICAgICAgICAgICAgICB0aGFuIFRJTUVPVVQgc2Vjb25kczsgZGlzYWJsZWQgaWYgVElNRU9VVCBpcyBuZWdhdGl2ZQotICAgICAgICAgICAgICAgICAgIG9yIGVxdWFscyB0byB6ZXJvCi0tLXdhaXQgICAgICAgICAgLS0gd2FpdCBmb3IgdXNlciBpbnB1dCwgZS5nLiwgYWxsb3cgYSBkZWJ1Z2dlciB0byBiZSBhdHRhY2hlZAotCi1WZXJib3NpdHkKLQotLXYvLS12ZXJib3NlICAgIC0tIHJ1biB0ZXN0cyBpbiB2ZXJib3NlIG1vZGUgd2l0aCBvdXRwdXQgdG8gc3Rkb3V0Ci0tdy8tLXZlcmJvc2UyICAgLS0gcmUtcnVuIGZhaWxlZCB0ZXN0cyBpbiB2ZXJib3NlIG1vZGUKLS1XLy0tdmVyYm9zZTMgICAtLSBkaXNwbGF5IHRlc3Qgb3V0cHV0IG9uIGZhaWx1cmUKLS1kLy0tZGVidWcgICAgICAtLSBwcmludCB0cmFjZWJhY2sgZm9yIGZhaWxlZCB0ZXN0cwotLXEvLS1xdWlldCAgICAgIC0tIG5vIG91dHB1dCB1bmxlc3Mgb25lIG9yIG1vcmUgdGVzdHMgZmFpbAotLW8vLS1zbG93ICAgICAgIC0tIHByaW50IHRoZSBzbG93ZXN0IDEwIHRlc3RzCi0gICAtLWhlYWRlciAgICAgLS0gcHJpbnQgaGVhZGVyIHdpdGggaW50ZXJwcmV0ZXIgaW5mbwotCi1TZWxlY3RpbmcgdGVzdHMKLQotLXIvLS1yYW5kb21pemUgIC0tIHJhbmRvbWl6ZSB0ZXN0IGV4ZWN1dGlvbiBvcmRlciAoc2VlIGJlbG93KQotICAgLS1yYW5kc2VlZCAgIC0tIHBhc3MgYSByYW5kb20gc2VlZCB0byByZXByb2R1Y2UgYSBwcmV2aW91cyByYW5kb20gcnVuCi0tZi8tLWZyb21maWxlICAgLS0gcmVhZCBuYW1lcyBvZiB0ZXN0cyB0byBydW4gZnJvbSBhIGZpbGUgKHNlZSBiZWxvdykKLS14Ly0tZXhjbHVkZSAgICAtLSBhcmd1bWVudHMgYXJlIHRlc3RzIHRvICpleGNsdWRlKgotLXMvLS1zaW5nbGUgICAgIC0tIHNpbmdsZSBzdGVwIHRocm91Z2ggYSBzZXQgb2YgdGVzdHMgKHNlZSBiZWxvdykKLS1tLy0tbWF0Y2ggUEFUICAtLSBtYXRjaCB0ZXN0IGNhc2VzIGFuZCBtZXRob2RzIHdpdGggZ2xvYiBwYXR0ZXJuIFBBVAotLUcvLS1mYWlsZmFzdCAgIC0tIGZhaWwgYXMgc29vbiBhcyBhIHRlc3QgZmFpbHMgKG9ubHkgd2l0aCAtdiBvciAtVykKLS11Ly0tdXNlIFJFUzEsUkVTMiwuLi4KLSAgICAgICAgICAgICAgICAtLSBzcGVjaWZ5IHdoaWNoIHNwZWNpYWwgcmVzb3VyY2UgaW50ZW5zaXZlIHRlc3RzIHRvIHJ1bgotLU0vLS1tZW1saW1pdCBMSU1JVAotICAgICAgICAgICAgICAgIC0tIHJ1biB2ZXJ5IGxhcmdlIG1lbW9yeS1jb25zdW1pbmcgdGVzdHMKLSAgIC0tdGVzdGRpciBESVIKLSAgICAgICAgICAgICAgICAtLSBleGVjdXRlIHRlc3QgZmlsZXMgaW4gdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkgKGluc3RlYWQKLSAgICAgICAgICAgICAgICAgICBvZiB0aGUgUHl0aG9uIHN0ZGxpYiB0ZXN0IHN1aXRlKQotCi1TcGVjaWFsIHJ1bnMKLQotLWwvLS1maW5kbGVha3MgIC0tIGlmIEdDIGlzIGF2YWlsYWJsZSBkZXRlY3QgdGVzdHMgdGhhdCBsZWFrIG1lbW9yeQotLUwvLS1ydW5sZWFrcyAgIC0tIHJ1biB0aGUgbGVha3MoMSkgY29tbWFuZCBqdXN0IGJlZm9yZSBleGl0Ci0tUi8tLWh1bnRybGVha3MgUlVOQ09VTlRTCi0gICAgICAgICAgICAgICAgLS0gc2VhcmNoIGZvciByZWZlcmVuY2UgbGVha3MgKG5lZWRzIGRlYnVnIGJ1aWxkLCB2LiBzbG93KQotLWovLS1tdWx0aXByb2Nlc3MgUFJPQ0VTU0VTCi0gICAgICAgICAgICAgICAgLS0gcnVuIFBST0NFU1NFUyBwcm9jZXNzZXMgYXQgb25jZQotLVQvLS1jb3ZlcmFnZSAgIC0tIHR1cm4gb24gY29kZSBjb3ZlcmFnZSB0cmFjaW5nIHVzaW5nIHRoZSB0cmFjZSBtb2R1bGUKLS1ELy0tY292ZXJkaXIgRElSRUNUT1JZCi0gICAgICAgICAgICAgICAgLS0gRGlyZWN0b3J5IHdoZXJlIGNvdmVyYWdlIGZpbGVzIGFyZSBwdXQKLS1OLy0tbm9jb3ZlcmRpciAtLSBQdXQgY292ZXJhZ2UgZmlsZXMgYWxvbmdzaWRlIG1vZHVsZXMKLS10Ly0tdGhyZXNob2xkIFRIUkVTSE9MRAotICAgICAgICAgICAgICAgIC0tIGNhbGwgZ2Muc2V0X3RocmVzaG9sZChUSFJFU0hPTEQpCi0tbi8tLW5vd2luZG93cyAgLS0gc3VwcHJlc3MgZXJyb3IgbWVzc2FnZSBib3hlcyBvbiBXaW5kb3dzCi0tRi8tLWZvcmV2ZXIgICAgLS0gcnVuIHRoZSBzcGVjaWZpZWQgdGVzdHMgaW4gYSBsb29wLCB1bnRpbCBhbiBlcnJvciBoYXBwZW5zCi0KLQotQWRkaXRpb25hbCBPcHRpb24gRGV0YWlsczoKK0VQSUxPRyA9ICIiIlwKK0FkZGl0aW9uYWwgb3B0aW9uIGRldGFpbHM6CiAKIC1yIHJhbmRvbWl6ZXMgdGVzdCBleGVjdXRpb24gb3JkZXIuIFlvdSBjYW4gdXNlIC0tcmFuZHNlZWQ9aW50IHRvIHByb3ZpZGUgYQogaW50IHNlZWQgdmFsdWUgZm9yIHRoZSByYW5kb21pemVyOyB0aGlzIGlzIHVzZWZ1bCBmb3IgcmVwcm9kdWNpbmcgdHJvdWJsZXNvbWUKQEAgLTE2OCwxMSArMTIyLDEyIEBACiAjIFdlIGltcG9ydCBpbXBvcnRsaWIgKkFTQVAqIGluIG9yZGVyIHRvIHRlc3QgIzE1Mzg2CiBpbXBvcnQgaW1wb3J0bGliCiAKK2ltcG9ydCBhcmdwYXJzZQogaW1wb3J0IGJ1aWx0aW5zCiBpbXBvcnQgZmF1bHRoYW5kbGVyCi1pbXBvcnQgZ2V0b3B0CiBpbXBvcnQgaW8KIGltcG9ydCBqc29uCitpbXBvcnQgbG9jYWxlCiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiBpbXBvcnQgcGxhdGZvcm0KQEAgLTI0NiwxMiArMjAxLDE0NyBAQAogUkVTT1VSQ0VfTkFNRVMgPSAoJ2F1ZGlvJywgJ2N1cnNlcycsICdsYXJnZWZpbGUnLCAnbmV0d29yaycsCiAgICAgICAgICAgICAgICAgICAnZGVjaW1hbCcsICdjcHUnLCAnc3VicHJvY2VzcycsICd1cmxmZXRjaCcsICdndWknKQogCi1URU1QRElSID0gb3MucGF0aC5hYnNwYXRoKHRlbXBmaWxlLmdldHRlbXBkaXIoKSkKKyMgV2hlbiB0ZXN0cyBhcmUgcnVuIGZyb20gdGhlIFB5dGhvbiBidWlsZCBkaXJlY3RvcnksIGl0IGlzIGJlc3QgcHJhY3RpY2UKKyMgdG8ga2VlcCB0aGUgdGVzdCBmaWxlcyBpbiBhIHN1YmZvbGRlci4gIFRoaXMgZWFzZXMgdGhlIGNsZWFudXAgb2YgbGVmdG92ZXIKKyMgZmlsZXMgdXNpbmcgdGhlICJtYWtlIGRpc3RjbGVhbiIgY29tbWFuZC4KK2lmIHN5c2NvbmZpZy5pc19weXRob25fYnVpbGQoKToKKyAgICBURU1QRElSID0gb3MucGF0aC5qb2luKHN5c2NvbmZpZy5nZXRfY29uZmlnX3Zhcignc3JjZGlyJyksICdidWlsZCcpCitlbHNlOgorICAgIFRFTVBESVIgPSB0ZW1wZmlsZS5nZXR0ZW1wZGlyKCkKK1RFTVBESVIgPSBvcy5wYXRoLmFic3BhdGgoVEVNUERJUikKIAotZGVmIHVzYWdlKG1zZyk6Ci0gICAgcHJpbnQobXNnLCBmaWxlPXN5cy5zdGRlcnIpCi0gICAgcHJpbnQoIlVzZSAtLWhlbHAgZm9yIHVzYWdlIiwgZmlsZT1zeXMuc3RkZXJyKQotICAgIHN5cy5leGl0KDIpCitjbGFzcyBfQXJnUGFyc2VyKGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKToKKworICAgIGRlZiBlcnJvcihzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgc3VwZXIoKS5lcnJvcihtZXNzYWdlICsgIlxuUGFzcyAtaCBvciAtLWhlbHAgZm9yIGNvbXBsZXRlIGhlbHAuIikKKworZGVmIF9jcmVhdGVfcGFyc2VyKCk6CisgICAgIyBTZXQgcHJvZyB0byBwcmV2ZW50IHRoZSB1bmluZm9ybWF0aXZlICJfX21haW5fXy5weSIgZnJvbSBkaXNwbGF5aW5nIGluCisgICAgIyBlcnJvciBtZXNzYWdlcyB3aGVuIHVzaW5nICJweXRob24gLW0gdGVzdCAuLi4iLgorICAgIHBhcnNlciA9IF9BcmdQYXJzZXIocHJvZz0ncmVncnRlc3QucHknLAorICAgICAgICAgICAgICAgICAgICAgICAgdXNhZ2U9VVNBR0UsCisgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj1ERVNDUklQVElPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVwaWxvZz1FUElMT0csCisgICAgICAgICAgICAgICAgICAgICAgICBhZGRfaGVscD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlcl9jbGFzcz1hcmdwYXJzZS5SYXdEZXNjcmlwdGlvbkhlbHBGb3JtYXR0ZXIpCisKKyAgICAjIEFyZ3VtZW50cyB3aXRoIHRoaXMgY2xhdXNlIGFkZGVkIHRvIGl0cyBoZWxwIGFyZSBkZXNjcmliZWQgZnVydGhlciBpbgorICAgICMgdGhlIGVwaWxvZydzICJBZGRpdGlvbmFsIG9wdGlvbiBkZXRhaWxzIiBzZWN0aW9uLgorICAgIG1vcmVfZGV0YWlscyA9ICcgIFNlZSB0aGUgc2VjdGlvbiBhdCBib3R0b20gZm9yIG1vcmUgZGV0YWlscy4nCisKKyAgICBncm91cCA9IHBhcnNlci5hZGRfYXJndW1lbnRfZ3JvdXAoJ0dlbmVyYWwgb3B0aW9ucycpCisgICAgIyBXZSBhZGQgaGVscCBleHBsaWNpdGx5IHRvIGNvbnRyb2wgd2hhdCBhcmd1bWVudCBncm91cCBpdCByZW5kZXJzIHVuZGVyLgorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLWgnLCAnLS1oZWxwJywgYWN0aW9uPSdoZWxwJywKKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nc2hvdyB0aGlzIGhlbHAgbWVzc2FnZSBhbmQgZXhpdCcpCisgICAgZ3JvdXAuYWRkX2FyZ3VtZW50KCctLXRpbWVvdXQnLCBtZXRhdmFyPSdUSU1FT1VUJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J2R1bXAgdGhlIHRyYWNlYmFjayBhbmQgZXhpdCBpZiBhIHRlc3QgdGFrZXMgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9yZSB0aGFuIFRJTUVPVVQgc2Vjb25kczsgZGlzYWJsZWQgaWYgVElNRU9VVCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcyBuZWdhdGl2ZSBvciBlcXVhbHMgdG8gemVybycpCisgICAgZ3JvdXAuYWRkX2FyZ3VtZW50KCctLXdhaXQnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBoZWxwPSd3YWl0IGZvciB1c2VyICcKKyAgICAgICAgICAgICAgICAgICAgICAgICdpbnB1dCwgZS5nLiwgYWxsb3cgYSBkZWJ1Z2dlciB0byBiZSBhdHRhY2hlZCcpCisgICAgZ3JvdXAuYWRkX2FyZ3VtZW50KCctLXNsYXZlYXJncycsIG1ldGF2YXI9J0FSR1MnKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLVMnLCAnLS1zdGFydCcsIG1ldGF2YXI9J1NUQVJUJywgaGVscD0ndGhlIG5hbWUgb2YgJworICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSB0ZXN0IGF0IHdoaWNoIHRvIHN0YXJ0LicgKyBtb3JlX2RldGFpbHMpCisKKyAgICBncm91cCA9IHBhcnNlci5hZGRfYXJndW1lbnRfZ3JvdXAoJ1ZlcmJvc2l0eScpCisgICAgZ3JvdXAuYWRkX2FyZ3VtZW50KCctdicsICctLXZlcmJvc2UnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdydW4gdGVzdHMgaW4gdmVyYm9zZSBtb2RlIHdpdGggb3V0cHV0IHRvIHN0ZG91dCcpCisgICAgZ3JvdXAuYWRkX2FyZ3VtZW50KCctdycsICctLXZlcmJvc2UyJywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncmUtcnVuIGZhaWxlZCB0ZXN0cyBpbiB2ZXJib3NlIG1vZGUnKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLVcnLCAnLS12ZXJib3NlMycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J2Rpc3BsYXkgdGVzdCBvdXRwdXQgb24gZmFpbHVyZScpCisgICAgZ3JvdXAuYWRkX2FyZ3VtZW50KCctZCcsICctLWRlYnVnJywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncHJpbnQgdHJhY2ViYWNrIGZvciBmYWlsZWQgdGVzdHMnKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLXEnLCAnLS1xdWlldCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J25vIG91dHB1dCB1bmxlc3Mgb25lIG9yIG1vcmUgdGVzdHMgZmFpbCcpCisgICAgZ3JvdXAuYWRkX2FyZ3VtZW50KCctbycsICctLXNsb3cnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdwcmludCB0aGUgc2xvd2VzdCAxMCB0ZXN0cycpCisgICAgZ3JvdXAuYWRkX2FyZ3VtZW50KCctLWhlYWRlcicsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3ByaW50IGhlYWRlciB3aXRoIGludGVycHJldGVyIGluZm8nKQorCisgICAgZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCdTZWxlY3RpbmcgdGVzdHMnKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLXInLCAnLS1yYW5kb21pemUnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdyYW5kb21pemUgdGVzdCBleGVjdXRpb24gb3JkZXIuJyArIG1vcmVfZGV0YWlscykKKyAgICBncm91cC5hZGRfYXJndW1lbnQoJy0tcmFuZHNlZWQnLCBtZXRhdmFyPSdTRUVEJywgaGVscD0ncGFzcyBhIHJhbmRvbSBzZWVkICcKKyAgICAgICAgICAgICAgICAgICAgICAgJ3RvIHJlcHJvZHVjZSBhIHByZXZpb3VzIHJhbmRvbSBydW4nKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLWYnLCAnLS1mcm9tZmlsZScsIG1ldGF2YXI9J0ZJTEUnLCBoZWxwPSdyZWFkIG5hbWVzICcKKyAgICAgICAgICAgICAgICAgICAgICAgJ29mIHRlc3RzIHRvIHJ1biBmcm9tIGEgZmlsZS4nICsgbW9yZV9kZXRhaWxzKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLXgnLCAnLS1leGNsdWRlJywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nYXJndW1lbnRzIGFyZSB0ZXN0cyB0byAqZXhjbHVkZSonKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLXMnLCAnLS1zaW5nbGUnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBoZWxwPSdzaW5nbGUgJworICAgICAgICAgICAgICAgICAgICAgICAnc3RlcCB0aHJvdWdoIGEgc2V0IG9mIHRlc3RzLicgKyBtb3JlX2RldGFpbHMpCisgICAgZ3JvdXAuYWRkX2FyZ3VtZW50KCctbScsICctLW1hdGNoJywgbWV0YXZhcj0nUEFUJywgaGVscD0nbWF0Y2ggdGVzdCBjYXNlcyAnCisgICAgICAgICAgICAgICAgICAgICAgICdhbmQgbWV0aG9kcyB3aXRoIGdsb2IgcGF0dGVybiBQQVQnKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLUcnLCAnLS1mYWlsZmFzdCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGhlbHA9J2ZhaWwgYXMgJworICAgICAgICAgICAgICAgICAgICAgICAnc29vbiBhcyBhIHRlc3QgZmFpbHMgKG9ubHkgd2l0aCAtdiBvciAtVyknKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLXUnLCAnLS11c2UnLCBtZXRhdmFyPSdSRVMxLFJFUzIsLi4uJywgaGVscD0nc3BlY2lmeSAnCisgICAgICAgICAgICAgICAgICAgICAgICd3aGljaCBzcGVjaWFsIHJlc291cmNlIGludGVuc2l2ZSB0ZXN0cyB0byBydW4uJyArCisgICAgICAgICAgICAgICAgICAgICAgIG1vcmVfZGV0YWlscykKKyAgICBncm91cC5hZGRfYXJndW1lbnQoJy1NJywgJy0tbWVtbGltaXQnLCBtZXRhdmFyPSdMSU1JVCcsIGhlbHA9J3J1biB2ZXJ5ICcKKyAgICAgICAgICAgICAgICAgICAgICAgJ2xhcmdlIG1lbW9yeS1jb25zdW1pbmcgdGVzdHMuJyArIG1vcmVfZGV0YWlscykKKyAgICBncm91cC5hZGRfYXJndW1lbnQoJy0tdGVzdGRpcicsIG1ldGF2YXI9J0RJUicsCisgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J2V4ZWN1dGUgdGVzdCBmaWxlcyBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhpbnN0ZWFkIG9mIHRoZSBQeXRob24gc3RkbGliIHRlc3Qgc3VpdGUpJykKKworICAgIGdyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgnU3BlY2lhbCBydW5zJykKKyAgICBncm91cC5hZGRfYXJndW1lbnQoJy1sJywgJy0tZmluZGxlYWtzJywgYWN0aW9uPSdzdG9yZV90cnVlJywgaGVscD0naWYgR0MgJworICAgICAgICAgICAgICAgICAgICAgICAnaXMgYXZhaWxhYmxlIGRldGVjdCB0ZXN0cyB0aGF0IGxlYWsgbWVtb3J5JykKKyAgICBncm91cC5hZGRfYXJndW1lbnQoJy1MJywgJy0tcnVubGVha3MnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdydW4gdGhlIGxlYWtzKDEpIGNvbW1hbmQganVzdCBiZWZvcmUgZXhpdC4nICsKKyAgICAgICAgICAgICAgICAgICAgICAgbW9yZV9kZXRhaWxzKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLVInLCAnLS1odW50cmxlYWtzJywgbWV0YXZhcj0nUlVOQ09VTlRTJywKKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nc2VhcmNoIGZvciByZWZlcmVuY2UgbGVha3MgKG5lZWRzIGRlYnVnIGJ1aWxkLCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Zlcnkgc2xvdykuJyArIG1vcmVfZGV0YWlscykKKyAgICBncm91cC5hZGRfYXJndW1lbnQoJy1qJywgJy0tbXVsdGlwcm9jZXNzJywgbWV0YXZhcj0nUFJPQ0VTU0VTJywKKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncnVuIFBST0NFU1NFUyBwcm9jZXNzZXMgYXQgb25jZScpCisgICAgZ3JvdXAuYWRkX2FyZ3VtZW50KCctVCcsICctLWNvdmVyYWdlJywgYWN0aW9uPSdzdG9yZV90cnVlJywgaGVscD0ndHVybiBvbiAnCisgICAgICAgICAgICAgICAgICAgICAgICdjb2RlIGNvdmVyYWdlIHRyYWNpbmcgdXNpbmcgdGhlIHRyYWNlIG1vZHVsZScpCisgICAgZ3JvdXAuYWRkX2FyZ3VtZW50KCctRCcsICctLWNvdmVyZGlyJywgbWV0YXZhcj0nRElSJywKKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nZGlyZWN0b3J5IHdoZXJlIGNvdmVyYWdlIGZpbGVzIGFyZSBwdXQnKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLU4nLCAnLS1ub2NvdmVyZGlyJywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncHV0IGNvdmVyYWdlIGZpbGVzIGFsb25nc2lkZSBtb2R1bGVzJykKKyAgICBncm91cC5hZGRfYXJndW1lbnQoJy10JywgJy0tdGhyZXNob2xkJywgbWV0YXZhcj0nVEhSRVNIT0xEJywKKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nY2FsbCBnYy5zZXRfdGhyZXNob2xkKFRIUkVTSE9MRCknKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLW4nLCAnLS1ub3dpbmRvd3MnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdzdXBwcmVzcyBlcnJvciBtZXNzYWdlIGJveGVzIG9uIFdpbmRvd3MnKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLUYnLCAnLS1mb3JldmVyJywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncnVuIHRoZSBzcGVjaWZpZWQgdGVzdHMgaW4gYSBsb29wLCB1bnRpbCBhbiAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Vycm9yIGhhcHBlbnMnKQorCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnYXJncycsIG5hcmdzPWFyZ3BhcnNlLlJFTUFJTkRFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9YXJncGFyc2UuU1VQUFJFU1MpCisKKyAgICByZXR1cm4gcGFyc2VyCisKKyMgVE9ETzogcmVtb3ZlIHRoaXMgZnVuY3Rpb24gYXMgZGVzY3JpYmVkIGluIGlzc3VlICMxNjc5OSwgZm9yIGV4YW1wbGUuCisjIFdlIHVzZSB0aGlzIGZ1bmN0aW9uIHNpbmNlIHJlZ3J0ZXN0Lm1haW4oKSB3YXMgb3JpZ2luYWxseSB3cml0dGVuIHRvIHVzZQorIyBnZXRvcHQgZm9yIHBhcnNpbmcuCitkZWYgX2NvbnZlcnRfbmFtZXNwYWNlX3RvX2dldG9wdChucyk6CisgICAgIiIiQ29udmVydCBhbiBhcmdwYXJzZS5OYW1lc3BhY2Ugb2JqZWN0IHRvIGEgZ2V0b3B0LXN0eWxlIG9wdHMgbGlzdC4KKworICAgIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcyBmdW5jdGlvbiBtaW1pY3MgdGhlIGZpcnN0IGVsZW1lbnQgb2YKKyAgICBnZXRvcHQuZ2V0b3B0KCkncyAob3B0cywgYXJncykgcmV0dXJuIHZhbHVlLiAgSW4gYWRkaXRpb24sIHRoZSAob3B0aW9uLAorICAgIHZhbHVlKSBwYWlycyBpbiB0aGUgb3B0cyBsaXN0IGFyZSBzb3J0ZWQgYnkgb3B0aW9uIGFuZCB1c2UgdGhlIGxvbmcKKyAgICBvcHRpb24gc3RyaW5nLiAgVGhlIGFyZ3MgcGFydCBvZiAob3B0cywgYXJncykgY2FuIGJlIG1pbWlja2VkIGJ5IHRoZQorICAgIGFyZ3MgYXR0cmlidXRlIG9mIHRoZSBOYW1lc3BhY2Ugb2JqZWN0IHdlIGFyZSB1c2luZyBpbiByZWdydGVzdC4KKyAgICAiIiIKKyAgICBvcHRzID0gW10KKyAgICBhcmdzX2RpY3QgPSB2YXJzKG5zKQorICAgIGZvciBrZXkgaW4gc29ydGVkKGFyZ3NfZGljdC5rZXlzKCkpOgorICAgICAgICBpZiBrZXkgPT0gJ2FyZ3MnOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgdmFsID0gYXJnc19kaWN0W2tleV0KKyAgICAgICAgIyBEb24ndCBjb250aW51ZSBpZiB2YWwgZXF1YWxzICcnIGJlY2F1c2UgdGhpcyBtZWFucyBhbiBvcHRpb24KKyAgICAgICAgIyBhY2NlcHRpbmcgYSB2YWx1ZSB3YXMgcHJvdmlkZWQgdGhlIGVtcHR5IHN0cmluZy4gIFN1Y2ggdmFsdWVzIHNob3VsZAorICAgICAgICAjIHNob3cgdXAgaW4gdGhlIHJldHVybmVkIG9wdHMgbGlzdC4KKyAgICAgICAgaWYgdmFsIGlzIE5vbmUgb3IgdmFsIGlzIEZhbHNlOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgdmFsIGlzIFRydWU6CisgICAgICAgICAgICAjIFRoZW4gYW4gb3B0aW9uIHdpdGggYWN0aW9uIHN0b3JlX3RydWUgd2FzIHBhc3NlZC4gZ2V0b3B0CisgICAgICAgICAgICAjIGluY2x1ZGVzIHRoZXNlIHdpdGggdmFsdWUgJycgaW4gdGhlIG9wdHMgbGlzdC4KKyAgICAgICAgICAgIHZhbCA9ICcnCisgICAgICAgIG9wdHMuYXBwZW5kKCgnLS0nICsga2V5LCB2YWwpKQorICAgIHJldHVybiBvcHRzCiAKIAogZGVmIG1haW4odGVzdHM9Tm9uZSwgdGVzdGRpcj1Ob25lLCB2ZXJib3NlPTAsIHF1aWV0PUZhbHNlLApAQCAtMjk4LDE3ICszODgsMTIgQEAKICAgICByZXBsYWNlX3N0ZG91dCgpCiAKICAgICBzdXBwb3J0LnJlY29yZF9vcmlnaW5hbF9zdGRvdXQoc3lzLnN0ZG91dCkKLSAgICB0cnk6Ci0gICAgICAgIG9wdHMsIGFyZ3MgPSBnZXRvcHQuZ2V0b3B0KHN5cy5hcmd2WzE6XSwgJ2h2cXhzb1M6cmY6bHU6dDpURDpOTFI6RmR3V006bmo6R206JywKLSAgICAgICAgICAgIFsnaGVscCcsICd2ZXJib3NlJywgJ3ZlcmJvc2UyJywgJ3ZlcmJvc2UzJywgJ3F1aWV0JywKLSAgICAgICAgICAgICAnZXhjbHVkZScsICdzaW5nbGUnLCAnc2xvdycsICdyYW5kb21pemUnLCAnZnJvbWZpbGU9JywgJ2ZpbmRsZWFrcycsCi0gICAgICAgICAgICAgJ3VzZT0nLCAndGhyZXNob2xkPScsICdjb3ZlcmRpcj0nLCAnbm9jb3ZlcmRpcicsCi0gICAgICAgICAgICAgJ3J1bmxlYWtzJywgJ2h1bnRybGVha3M9JywgJ21lbWxpbWl0PScsICdyYW5kc2VlZD0nLAotICAgICAgICAgICAgICdtdWx0aXByb2Nlc3M9JywgJ2NvdmVyYWdlJywgJ3NsYXZlYXJncz0nLCAnZm9yZXZlcicsICdkZWJ1ZycsCi0gICAgICAgICAgICAgJ3N0YXJ0PScsICdub3dpbmRvd3MnLCAnaGVhZGVyJywgJ3Rlc3RkaXI9JywgJ3RpbWVvdXQ9JywgJ3dhaXQnLAotICAgICAgICAgICAgICdmYWlsZmFzdCcsICdtYXRjaD0nXSkKLSAgICBleGNlcHQgZ2V0b3B0LmVycm9yIGFzIG1zZzoKLSAgICAgICAgdXNhZ2UobXNnKQorCisgICAgcGFyc2VyID0gX2NyZWF0ZV9wYXJzZXIoKQorICAgIG5zID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorICAgIG9wdHMgPSBfY29udmVydF9uYW1lc3BhY2VfdG9fZ2V0b3B0KG5zKQorICAgIGFyZ3MgPSBucy5hcmdzCisgICAgdXNhZ2UgPSBwYXJzZXIuZXJyb3IKIAogICAgICMgRGVmYXVsdHMKICAgICBpZiByYW5kb21fc2VlZCBpcyBOb25lOgpAQCAtMzE5LDEwICs0MDQsNyBAQAogICAgIHN0YXJ0ID0gTm9uZQogICAgIHRpbWVvdXQgPSBOb25lCiAgICAgZm9yIG8sIGEgaW4gb3B0czoKLSAgICAgICAgaWYgbyBpbiAoJy1oJywgJy0taGVscCcpOgotICAgICAgICAgICAgcHJpbnQoX19kb2NfXykKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBlbGlmIG8gaW4gKCctdicsICctLXZlcmJvc2UnKToKKyAgICAgICAgaWYgbyBpbiAoJy12JywgJy0tdmVyYm9zZScpOgogICAgICAgICAgICAgdmVyYm9zZSArPSAxCiAgICAgICAgIGVsaWYgbyBpbiAoJy13JywgJy0tdmVyYm9zZTInKToKICAgICAgICAgICAgIHZlcmJvc2UyID0gVHJ1ZQpAQCAtNTA2LDcgKzU4OCw3IEBACiAgICAgICAgICAgICBuZXh0X3Rlc3QgPSBmcC5yZWFkKCkuc3RyaXAoKQogICAgICAgICAgICAgdGVzdHMgPSBbbmV4dF90ZXN0XQogICAgICAgICAgICAgZnAuY2xvc2UoKQotICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAKICAgICBpZiBmcm9tZmlsZToKQEAgLTYxNSw3ICs2OTcsNyBAQAogICAgICAgICAgICAgc3lzLmV4aXQoMikKICAgICAgICAgZnJvbSBxdWV1ZSBpbXBvcnQgUXVldWUKICAgICAgICAgZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBQb3BlbiwgUElQRQotICAgICAgICBkZWJ1Z19vdXRwdXRfcGF0ID0gcmUuY29tcGlsZShyIlxbXGQrIHJlZnNcXSQiKQorICAgICAgICBkZWJ1Z19vdXRwdXRfcGF0ID0gcmUuY29tcGlsZShyIlxbXGQrIHJlZnMsIFxkKyBibG9ja3NcXSQiKQogICAgICAgICBvdXRwdXQgPSBRdWV1ZSgpCiAgICAgICAgIHBlbmRpbmcgPSBNdWx0aXByb2Nlc3NUZXN0cyh0ZXN0cykKICAgICAgICAgb3B0X2FyZ3MgPSBzdXBwb3J0LmFyZ3NfZnJvbV9pbnRlcnByZXRlcl9mbGFncygpCkBAIC03NjMsMjAgKzg0NSw2IEBACiAgICAgICAgIHByaW50KGNvdW50KGxlbihza2lwcGVkKSwgInRlc3QiKSwgInNraXBwZWQ6IikKICAgICAgICAgcHJpbnRsaXN0KHNraXBwZWQpCiAKLSAgICAgICAgZSA9IF9FeHBlY3RlZFNraXBzKCkKLSAgICAgICAgcGxhdCA9IHN5cy5wbGF0Zm9ybQotICAgICAgICBpZiBlLmlzdmFsaWQoKToKLSAgICAgICAgICAgIHN1cnByaXNlID0gc2V0KHNraXBwZWQpIC0gZS5nZXRleHBlY3RlZCgpIC0gc2V0KHJlc291cmNlX2RlbmllZHMpCi0gICAgICAgICAgICBpZiBzdXJwcmlzZToKLSAgICAgICAgICAgICAgICBwcmludChjb3VudChsZW4oc3VycHJpc2UpLCAic2tpcCIpLCBcCi0gICAgICAgICAgICAgICAgICAgICAgInVuZXhwZWN0ZWQgb24iLCBwbGF0ICsgIjoiKQotICAgICAgICAgICAgICAgIHByaW50bGlzdChzdXJwcmlzZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQoIlRob3NlIHNraXBzIGFyZSBhbGwgZXhwZWN0ZWQgb24iLCBwbGF0ICsgIi4iKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcHJpbnQoIkFzayBzb21lb25lIHRvIHRlYWNoIHJlZ3J0ZXN0LnB5IGFib3V0IHdoaWNoIHRlc3RzIGFyZSIpCi0gICAgICAgICAgICBwcmludCgiZXhwZWN0ZWQgdG8gZ2V0IHNraXBwZWQgb24iLCBwbGF0ICsgIi4iKQotCiAgICAgaWYgdmVyYm9zZTIgYW5kIGJhZDoKICAgICAgICAgcHJpbnQoIlJlLXJ1bm5pbmcgZmFpbGVkIHRlc3RzIGluIHZlcmJvc2UgbW9kZSIpCiAgICAgICAgIGZvciB0ZXN0IGluIGJhZDoKQEAgLTk5NCw3ICsxMDYyLDcgQEAKICAgICAgICAgICAgICAgICAgJ3N5cy53YXJub3B0aW9ucycsICd0aHJlYWRpbmcuX2RhbmdsaW5nJywKICAgICAgICAgICAgICAgICAgJ211bHRpcHJvY2Vzc2luZy5wcm9jZXNzLl9kYW5nbGluZycsCiAgICAgICAgICAgICAgICAgICdzeXNjb25maWcuX0NPTkZJR19WQVJTJywgJ3N5c2NvbmZpZy5fSU5TVEFMTF9TQ0hFTUVTJywKLSAgICAgICAgICAgICAgICAgJ3N1cHBvcnQuVEVTVEZOJywKKyAgICAgICAgICAgICAgICAgJ3N1cHBvcnQuVEVTVEZOJywgJ2xvY2FsZScsCiAgICAgICAgICAgICAgICAgKQogCiAgICAgZGVmIGdldF9zeXNfYXJndihzZWxmKToKQEAgLTExNjMsNiArMTIzMSwxOSBAQAogICAgICAgICAgICAgZWxpZiBvcy5wYXRoLmlzZGlyKHN1cHBvcnQuVEVTVEZOKToKICAgICAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHN1cHBvcnQuVEVTVEZOKQogCisgICAgX2xjID0gW2dldGF0dHIobG9jYWxlLCBsYykgZm9yIGxjIGluIGRpcihsb2NhbGUpIGlmIGxjLnN0YXJ0c3dpdGgoJ0xDXycpXQorICAgIGRlZiBnZXRfbG9jYWxlKHNlbGYpOgorICAgICAgICBwYWlyaW5ncyA9IFtdCisgICAgICAgIGZvciBsYyBpbiBzZWxmLl9sYzoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBwYWlyaW5ncy5hcHBlbmQoKGxjLCBsb2NhbGUuZ2V0bG9jYWxlKGxjKSkpCisgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIHJldHVybiBwYWlyaW5ncworICAgIGRlZiByZXN0b3JlX2xvY2FsZShzZWxmLCBzYXZlZCk6CisgICAgICAgIGZvciBsYywgc2V0dGluZyBpbiBzYXZlZDoKKyAgICAgICAgICAgIGxvY2FsZS5zZXRsb2NhbGUobGMsIHNldHRpbmcpCisKICAgICBkZWYgcmVzb3VyY2VfaW5mbyhzZWxmKToKICAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi5yZXNvdXJjZXM6CiAgICAgICAgICAgICBtZXRob2Rfc3VmZml4ID0gbmFtZS5yZXBsYWNlKCcuJywgJ18nKQpAQCAtMTIxMCw4ICsxMjkxLDcgQEAKICAgICAgICAgICAgIGFic3Rlc3QgPSAndGVzdC4nICsgdGVzdAogICAgICAgICB3aXRoIHNhdmVkX3Rlc3RfZW52aXJvbm1lbnQodGVzdCwgdmVyYm9zZSwgcXVpZXQpIGFzIGVudmlyb25tZW50OgogICAgICAgICAgICAgc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCi0gICAgICAgICAgICB0aGVfcGFja2FnZSA9IF9faW1wb3J0X18oYWJzdGVzdCwgZ2xvYmFscygpLCBsb2NhbHMoKSwgW10pCi0gICAgICAgICAgICB0aGVfbW9kdWxlID0gZ2V0YXR0cih0aGVfcGFja2FnZSwgdGVzdCkKKyAgICAgICAgICAgIHRoZV9tb2R1bGUgPSBpbXBvcnRsaWIuaW1wb3J0X21vZHVsZShhYnN0ZXN0KQogICAgICAgICAgICAgIyBJZiB0aGUgdGVzdCBoYXMgYSB0ZXN0X21haW4sIHRoYXQgd2lsbCBydW4gdGhlIGFwcHJvcHJpYXRlCiAgICAgICAgICAgICAjIHRlc3RzLiAgSWYgbm90LCB1c2Ugbm9ybWFsIHVuaXR0ZXN0IHRlc3QgbG9hZGluZy4KICAgICAgICAgICAgIHRlc3RfcnVubmVyID0gZ2V0YXR0cih0aGVfbW9kdWxlLCAidGVzdF9tYWluIiwgTm9uZSkKQEAgLTEzMjcsNDEgKzE0MDcsNTAgQEAKICAgICAgICAgZm9yIG9iaiBpbiBhYmMuX19zdWJjbGFzc2VzX18oKSArIFthYmNdOgogICAgICAgICAgICAgYWJjc1tvYmpdID0gb2JqLl9hYmNfcmVnaXN0cnkuY29weSgpCiAKLSAgICBpZiBpbmRpcmVjdF90ZXN0OgotICAgICAgICBkZWYgcnVuX3RoZV90ZXN0KCk6Ci0gICAgICAgICAgICBpbmRpcmVjdF90ZXN0KCkKLSAgICBlbHNlOgotICAgICAgICBkZWYgcnVuX3RoZV90ZXN0KCk6Ci0gICAgICAgICAgICBkZWwgc3lzLm1vZHVsZXNbdGhlX21vZHVsZS5fX25hbWVfX10KLSAgICAgICAgICAgIGV4ZWMoJ2ltcG9ydCAnICsgdGhlX21vZHVsZS5fX25hbWVfXykKLQotICAgIGRlbHRhcyA9IFtdCiAgICAgbndhcm11cCwgbnRyYWNrZWQsIGZuYW1lID0gaHVudHJsZWFrcwogICAgIGZuYW1lID0gb3MucGF0aC5qb2luKHN1cHBvcnQuU0FWRURDV0QsIGZuYW1lKQogICAgIHJlcGNvdW50ID0gbndhcm11cCArIG50cmFja2VkCisgICAgcmNfZGVsdGFzID0gWzBdICogcmVwY291bnQKKyAgICBhbGxvY19kZWx0YXMgPSBbMF0gKiByZXBjb3VudAorCiAgICAgcHJpbnQoImJlZ2lubmluZyIsIHJlcGNvdW50LCAicmVwZXRpdGlvbnMiLCBmaWxlPXN5cy5zdGRlcnIpCiAgICAgcHJpbnQoKCIxMjM0NTY3ODkwIioocmVwY291bnQvLzEwICsgMSkpWzpyZXBjb3VudF0sIGZpbGU9c3lzLnN0ZGVycikKICAgICBzeXMuc3RkZXJyLmZsdXNoKCkKLSAgICBkYXNoX1JfY2xlYW51cChmcywgcHMsIHBpYywgemRjLCBhYmNzKQogICAgIGZvciBpIGluIHJhbmdlKHJlcGNvdW50KToKLSAgICAgICAgcmNfYmVmb3JlID0gc3lzLmdldHRvdGFscmVmY291bnQoKQotICAgICAgICBydW5fdGhlX3Rlc3QoKQorICAgICAgICBpbmRpcmVjdF90ZXN0KCkKKyAgICAgICAgYWxsb2NfYWZ0ZXIsIHJjX2FmdGVyID0gZGFzaF9SX2NsZWFudXAoZnMsIHBzLCBwaWMsIHpkYywgYWJjcykKICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnLicpCiAgICAgICAgIHN5cy5zdGRlcnIuZmx1c2goKQotICAgICAgICBkYXNoX1JfY2xlYW51cChmcywgcHMsIHBpYywgemRjLCBhYmNzKQotICAgICAgICByY19hZnRlciA9IHN5cy5nZXR0b3RhbHJlZmNvdW50KCkKICAgICAgICAgaWYgaSA+PSBud2FybXVwOgotICAgICAgICAgICAgZGVsdGFzLmFwcGVuZChyY19hZnRlciAtIHJjX2JlZm9yZSkKKyAgICAgICAgICAgIHJjX2RlbHRhc1tpXSA9IHJjX2FmdGVyIC0gcmNfYmVmb3JlCisgICAgICAgICAgICBhbGxvY19kZWx0YXNbaV0gPSBhbGxvY19hZnRlciAtIGFsbG9jX2JlZm9yZQorICAgICAgICBhbGxvY19iZWZvcmUsIHJjX2JlZm9yZSA9IGFsbG9jX2FmdGVyLCByY19hZnRlcgogICAgIHByaW50KGZpbGU9c3lzLnN0ZGVycikKLSAgICBpZiBhbnkoZGVsdGFzKToKLSAgICAgICAgbXNnID0gJyVzIGxlYWtlZCAlcyByZWZlcmVuY2VzLCBzdW09JXMnICUgKHRlc3QsIGRlbHRhcywgc3VtKGRlbHRhcykpCi0gICAgICAgIHByaW50KG1zZywgZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICBzeXMuc3RkZXJyLmZsdXNoKCkKLSAgICAgICAgd2l0aCBvcGVuKGZuYW1lLCAiYSIpIGFzIHJlZnJlcDoKLSAgICAgICAgICAgIHByaW50KG1zZywgZmlsZT1yZWZyZXApCi0gICAgICAgICAgICByZWZyZXAuZmx1c2goKQotICAgICAgICByZXR1cm4gVHJ1ZQotICAgIHJldHVybiBGYWxzZQorICAgICMgVGhlc2UgY2hlY2tlcnMgcmV0dXJuIEZhbHNlIG9uIHN1Y2Nlc3MsIFRydWUgb24gZmFpbHVyZQorICAgIGRlZiBjaGVja19yY19kZWx0YXMoZGVsdGFzKToKKyAgICAgICAgcmV0dXJuIGFueShkZWx0YXMpCisgICAgZGVmIGNoZWNrX2FsbG9jX2RlbHRhcyhkZWx0YXMpOgorICAgICAgICAjIEF0IGxlYXN0IDEvM3JkIG9mIDBzCisgICAgICAgIGlmIDMgKiBkZWx0YXMuY291bnQoMCkgPCBsZW4oZGVsdGFzKToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICMgTm90aGluZyBlbHNlIHRoYW4gMXMsIDBzIGFuZCAtMXMKKyAgICAgICAgaWYgbm90IHNldChkZWx0YXMpIDw9IHsxLDAsLTF9OgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgZmFpbGVkID0gRmFsc2UKKyAgICBmb3IgZGVsdGFzLCBpdGVtX25hbWUsIGNoZWNrZXIgaW4gWworICAgICAgICAocmNfZGVsdGFzLCAncmVmZXJlbmNlcycsIGNoZWNrX3JjX2RlbHRhcyksCisgICAgICAgIChhbGxvY19kZWx0YXMsICdtZW1vcnkgYmxvY2tzJywgY2hlY2tfYWxsb2NfZGVsdGFzKV06CisgICAgICAgIGlmIGNoZWNrZXIoZGVsdGFzKToKKyAgICAgICAgICAgIG1zZyA9ICclcyBsZWFrZWQgJXMgJXMsIHN1bT0lcycgJSAoCisgICAgICAgICAgICAgICAgdGVzdCwgZGVsdGFzW253YXJtdXA6XSwgaXRlbV9uYW1lLCBzdW0oZGVsdGFzKSkKKyAgICAgICAgICAgIHByaW50KG1zZywgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgc3lzLnN0ZGVyci5mbHVzaCgpCisgICAgICAgICAgICB3aXRoIG9wZW4oZm5hbWUsICJhIikgYXMgcmVmcmVwOgorICAgICAgICAgICAgICAgIHByaW50KG1zZywgZmlsZT1yZWZyZXApCisgICAgICAgICAgICAgICAgcmVmcmVwLmZsdXNoKCkKKyAgICAgICAgICAgIGZhaWxlZCA9IFRydWUKKyAgICByZXR1cm4gZmFpbGVkCiAKIGRlZiBkYXNoX1JfY2xlYW51cChmcywgcHMsIHBpYywgemRjLCBhYmNzKToKICAgICBpbXBvcnQgZ2MsIGNvcHlyZWcKQEAgLTE0MjcsOCArMTUxNiwxMSBAQAogICAgIGVsc2U6CiAgICAgICAgIGN0eXBlcy5fcmVzZXRfY2FjaGUoKQogCi0gICAgIyBDb2xsZWN0IGN5Y2xpYyB0cmFzaC4KKyAgICAjIENvbGxlY3QgY3ljbGljIHRyYXNoIGFuZCByZWFkIG1lbW9yeSBzdGF0aXN0aWNzIGltbWVkaWF0ZWx5IGFmdGVyLgorICAgIGZ1bmMxID0gc3lzLmdldGFsbG9jYXRlZGJsb2NrcworICAgIGZ1bmMyID0gc3lzLmdldHRvdGFscmVmY291bnQKICAgICBnYy5jb2xsZWN0KCkKKyAgICByZXR1cm4gZnVuYzEoKSwgZnVuYzIoKQogCiBkZWYgd2FybV9jYWNoZXMoKToKICAgICAjIGNoYXIgY2FjaGUKQEAgLTE0NzEsMzA3ICsxNTYzLDEwIEBACiAgICAgcHJpbnQoZmlsbCgnICcuam9pbihzdHIoZWx0KSBmb3IgZWx0IGluIHNvcnRlZCh4KSksIHdpZHRoLAogICAgICAgICAgICAgICAgaW5pdGlhbF9pbmRlbnQ9YmxhbmtzLCBzdWJzZXF1ZW50X2luZGVudD1ibGFua3MpKQogCi0jIE1hcCBzeXMucGxhdGZvcm0gdG8gYSBzdHJpbmcgY29udGFpbmluZyB0aGUgYmFzZW5hbWVzIG9mIHRlc3RzCi0jIGV4cGVjdGVkIHRvIGJlIHNraXBwZWQgb24gdGhhdCBwbGF0Zm9ybS4KLSMKLSMgU3BlY2lhbCBjYXNlczoKLSMgICAgIHRlc3RfcGVwMjc3Ci0jICAgICAgICAgVGhlIF9FeHBlY3RlZFNraXBzIGNvbnN0cnVjdG9yIGFkZHMgdGhpcyB0byB0aGUgc2V0IG9mIGV4cGVjdGVkCi0jICAgICAgICAgc2tpcHMgaWYgbm90IG9zLnBhdGguc3VwcG9ydHNfdW5pY29kZV9maWxlbmFtZXMuCi0jICAgICB0ZXN0X3RpbWVvdXQKLSMgICAgICAgICBDb250cm9sbGVkIGJ5IHRlc3RfdGltZW91dC5za2lwX2V4cGVjdGVkLiAgUmVxdWlyZXMgdGhlIG5ldHdvcmsKLSMgICAgICAgICByZXNvdXJjZSBhbmQgYSBzb2NrZXQgbW9kdWxlLgotIwotIyBUZXN0cyB0aGF0IGFyZSBleHBlY3RlZCB0byBiZSBza2lwcGVkIGV2ZXJ5d2hlcmUgZXhjZXB0IG9uIG9uZSBwbGF0Zm9ybQotIyBhcmUgYWxzbyBoYW5kbGVkIHNlcGFyYXRlbHkuCiAKLV9leHBlY3RhdGlvbnMgPSAoCi0gICAgKCd3aW4zMicsCi0gICAgICAgICIiIgotICAgICAgICB0ZXN0X19sb2NhbGUKLSAgICAgICAgdGVzdF9jcnlwdAotICAgICAgICB0ZXN0X2N1cnNlcwotICAgICAgICB0ZXN0X2RibQotICAgICAgICB0ZXN0X2RldnBvbGwKLSAgICAgICAgdGVzdF9mY250bAotICAgICAgICB0ZXN0X2ZvcmsxCi0gICAgICAgIHRlc3RfZXBvbGwKLSAgICAgICAgdGVzdF9kYm1fZ251Ci0gICAgICAgIHRlc3RfZGJtX25kYm0KLSAgICAgICAgdGVzdF9ncnAKLSAgICAgICAgdGVzdF9pb2N0bAotICAgICAgICB0ZXN0X2xhcmdlZmlsZQotICAgICAgICB0ZXN0X2txdWV1ZQotICAgICAgICB0ZXN0X29wZW5wdHkKLSAgICAgICAgdGVzdF9vc3NhdWRpb2RldgotICAgICAgICB0ZXN0X3BpcGVzCi0gICAgICAgIHRlc3RfcG9sbAotICAgICAgICB0ZXN0X3Bvc2l4Ci0gICAgICAgIHRlc3RfcHR5Ci0gICAgICAgIHRlc3RfcHdkCi0gICAgICAgIHRlc3RfcmVzb3VyY2UKLSAgICAgICAgdGVzdF9zaWduYWwKLSAgICAgICAgdGVzdF9zeXNsb2cKLSAgICAgICAgdGVzdF90aHJlYWRzaWduYWxzCi0gICAgICAgIHRlc3Rfd2FpdDMKLSAgICAgICAgdGVzdF93YWl0NAotICAgICAgICAiIiIpLAotICAgICgnbGludXgnLAotICAgICAgICAiIiIKLSAgICAgICAgdGVzdF9jdXJzZXMKLSAgICAgICAgdGVzdF9kZXZwb2xsCi0gICAgICAgIHRlc3RfbGFyZ2VmaWxlCi0gICAgICAgIHRlc3Rfa3F1ZXVlCi0gICAgICAgIHRlc3Rfb3NzYXVkaW9kZXYKLSAgICAgICAgIiIiKSwKLSAgICAoJ3VuaXh3YXJlJywKLSAgICAgICAgIiIiCi0gICAgICAgIHRlc3RfZXBvbGwKLSAgICAgICAgdGVzdF9sYXJnZWZpbGUKLSAgICAgICAgdGVzdF9rcXVldWUKLSAgICAgICAgdGVzdF9taW5pZG9tCi0gICAgICAgIHRlc3Rfb3BlbnB0eQotICAgICAgICB0ZXN0X3B5ZXhwYXQKLSAgICAgICAgdGVzdF9zYXgKLSAgICAgICAgdGVzdF9zdW5kcnkKLSAgICAgICAgIiIiKSwKLSAgICAoJ29wZW51bml4JywKLSAgICAgICAgIiIiCi0gICAgICAgIHRlc3RfZXBvbGwKLSAgICAgICAgdGVzdF9sYXJnZWZpbGUKLSAgICAgICAgdGVzdF9rcXVldWUKLSAgICAgICAgdGVzdF9taW5pZG9tCi0gICAgICAgIHRlc3Rfb3BlbnB0eQotICAgICAgICB0ZXN0X3B5ZXhwYXQKLSAgICAgICAgdGVzdF9zYXgKLSAgICAgICAgdGVzdF9zdW5kcnkKLSAgICAgICAgIiIiKSwKLSAgICAoJ3Njb19zdicsCi0gICAgICAgICIiIgotICAgICAgICB0ZXN0X2FzeW5jaGF0Ci0gICAgICAgIHRlc3RfZm9yazEKLSAgICAgICAgdGVzdF9lcG9sbAotICAgICAgICB0ZXN0X2dldHRleHQKLSAgICAgICAgdGVzdF9sYXJnZWZpbGUKLSAgICAgICAgdGVzdF9sb2NhbGUKLSAgICAgICAgdGVzdF9rcXVldWUKLSAgICAgICAgdGVzdF9taW5pZG9tCi0gICAgICAgIHRlc3Rfb3BlbnB0eQotICAgICAgICB0ZXN0X3B5ZXhwYXQKLSAgICAgICAgdGVzdF9xdWV1ZQotICAgICAgICB0ZXN0X3NheAotICAgICAgICB0ZXN0X3N1bmRyeQotICAgICAgICB0ZXN0X3RocmVhZAotICAgICAgICB0ZXN0X3RocmVhZGVkX2ltcG9ydAotICAgICAgICB0ZXN0X3RocmVhZGVkdGVtcGZpbGUKLSAgICAgICAgdGVzdF90aHJlYWRpbmcKLSAgICAgICAgIiIiKSwKLSAgICAoJ2RhcndpbicsCi0gICAgICAgICIiIgotICAgICAgICB0ZXN0X19sb2NhbGUKLSAgICAgICAgdGVzdF9jdXJzZXMKLSAgICAgICAgdGVzdF9kZXZwb2xsCi0gICAgICAgIHRlc3RfZXBvbGwKLSAgICAgICAgdGVzdF9kYm1fZ251Ci0gICAgICAgIHRlc3RfZ2RiCi0gICAgICAgIHRlc3RfbGFyZ2VmaWxlCi0gICAgICAgIHRlc3RfbG9jYWxlCi0gICAgICAgIHRlc3RfbWluaWRvbQotICAgICAgICB0ZXN0X29zc2F1ZGlvZGV2Ci0gICAgICAgIHRlc3RfcG9sbAotICAgICAgICAiIiIpLAotICAgICgnc3Vub3MnLAotICAgICAgICAiIiIKLSAgICAgICAgdGVzdF9jdXJzZXMKLSAgICAgICAgdGVzdF9kYm0KLSAgICAgICAgdGVzdF9lcG9sbAotICAgICAgICB0ZXN0X2txdWV1ZQotICAgICAgICB0ZXN0X2RibV9nbnUKLSAgICAgICAgdGVzdF9nemlwCi0gICAgICAgIHRlc3Rfb3BlbnB0eQotICAgICAgICB0ZXN0X3ppcGZpbGUKLSAgICAgICAgdGVzdF96bGliCi0gICAgICAgICIiIiksCi0gICAgKCdocC11eCcsCi0gICAgICAgICIiIgotICAgICAgICB0ZXN0X2N1cnNlcwotICAgICAgICB0ZXN0X2Vwb2xsCi0gICAgICAgIHRlc3RfZGJtX2dudQotICAgICAgICB0ZXN0X2d6aXAKLSAgICAgICAgdGVzdF9sYXJnZWZpbGUKLSAgICAgICAgdGVzdF9sb2NhbGUKLSAgICAgICAgdGVzdF9rcXVldWUKLSAgICAgICAgdGVzdF9taW5pZG9tCi0gICAgICAgIHRlc3Rfb3BlbnB0eQotICAgICAgICB0ZXN0X3B5ZXhwYXQKLSAgICAgICAgdGVzdF9zYXgKLSAgICAgICAgdGVzdF96aXBmaWxlCi0gICAgICAgIHRlc3RfemxpYgotICAgICAgICAiIiIpLAotICAgICgnY3lnd2luJywKLSAgICAgICAgIiIiCi0gICAgICAgIHRlc3RfY3Vyc2VzCi0gICAgICAgIHRlc3RfZGJtCi0gICAgICAgIHRlc3RfZGV2cG9sbAotICAgICAgICB0ZXN0X2Vwb2xsCi0gICAgICAgIHRlc3RfaW9jdGwKLSAgICAgICAgdGVzdF9rcXVldWUKLSAgICAgICAgdGVzdF9sYXJnZWZpbGUKLSAgICAgICAgdGVzdF9sb2NhbGUKLSAgICAgICAgdGVzdF9vc3NhdWRpb2RldgotICAgICAgICB0ZXN0X3NvY2tldHNlcnZlcgotICAgICAgICAiIiIpLAotICAgICgnb3MyZW14JywKLSAgICAgICAgIiIiCi0gICAgICAgIHRlc3RfYXVkaW9vcAotICAgICAgICB0ZXN0X2N1cnNlcwotICAgICAgICB0ZXN0X2Vwb2xsCi0gICAgICAgIHRlc3Rfa3F1ZXVlCi0gICAgICAgIHRlc3RfbGFyZ2VmaWxlCi0gICAgICAgIHRlc3RfbW1hcAotICAgICAgICB0ZXN0X29wZW5wdHkKLSAgICAgICAgdGVzdF9vc3NhdWRpb2RldgotICAgICAgICB0ZXN0X3B0eQotICAgICAgICB0ZXN0X3Jlc291cmNlCi0gICAgICAgIHRlc3Rfc2lnbmFsCi0gICAgICAgICIiIiksCi0gICAgKCdmcmVlYnNkJywKLSAgICAgICAgIiIiCi0gICAgICAgIHRlc3RfZGV2cG9sbAotICAgICAgICB0ZXN0X2Vwb2xsCi0gICAgICAgIHRlc3RfZGJtX2dudQotICAgICAgICB0ZXN0X2xvY2FsZQotICAgICAgICB0ZXN0X29zc2F1ZGlvZGV2Ci0gICAgICAgIHRlc3RfcGVwMjc3Ci0gICAgICAgIHRlc3RfcHR5Ci0gICAgICAgIHRlc3Rfc29ja2V0c2VydmVyCi0gICAgICAgIHRlc3RfdGNsCi0gICAgICAgIHRlc3RfdGsKLSAgICAgICAgdGVzdF90dGtfZ3Vpb25seQotICAgICAgICB0ZXN0X3R0a190ZXh0b25seQotICAgICAgICB0ZXN0X3RpbWVvdXQKLSAgICAgICAgdGVzdF91cmxsaWJuZXQKLSAgICAgICAgdGVzdF9tdWx0aXByb2Nlc3NpbmcKLSAgICAgICAgIiIiKSwKLSAgICAoJ2FpeCcsCi0gICAgICAgICIiIgotICAgICAgICB0ZXN0X2J6MgotICAgICAgICB0ZXN0X2Vwb2xsCi0gICAgICAgIHRlc3RfZGJtX2dudQotICAgICAgICB0ZXN0X2d6aXAKLSAgICAgICAgdGVzdF9rcXVldWUKLSAgICAgICAgdGVzdF9vc3NhdWRpb2RldgotICAgICAgICB0ZXN0X3RjbAotICAgICAgICB0ZXN0X3RrCi0gICAgICAgIHRlc3RfdHRrX2d1aW9ubHkKLSAgICAgICAgdGVzdF90dGtfdGV4dG9ubHkKLSAgICAgICAgdGVzdF96aXBpbXBvcnQKLSAgICAgICAgdGVzdF96bGliCi0gICAgICAgICIiIiksCi0gICAgKCdvcGVuYnNkJywKLSAgICAgICAgIiIiCi0gICAgICAgIHRlc3RfY3R5cGVzCi0gICAgICAgIHRlc3RfZGV2cG9sbAotICAgICAgICB0ZXN0X2Vwb2xsCi0gICAgICAgIHRlc3RfZGJtX2dudQotICAgICAgICB0ZXN0X2xvY2FsZQotICAgICAgICB0ZXN0X25vcm1hbGl6YXRpb24KLSAgICAgICAgdGVzdF9vc3NhdWRpb2RldgotICAgICAgICB0ZXN0X3BlcDI3NwotICAgICAgICB0ZXN0X3RjbAotICAgICAgICB0ZXN0X3RrCi0gICAgICAgIHRlc3RfdHRrX2d1aW9ubHkKLSAgICAgICAgdGVzdF90dGtfdGV4dG9ubHkKLSAgICAgICAgdGVzdF9tdWx0aXByb2Nlc3NpbmcKLSAgICAgICAgIiIiKSwKLSAgICAoJ25ldGJzZCcsCi0gICAgICAgICIiIgotICAgICAgICB0ZXN0X2N0eXBlcwotICAgICAgICB0ZXN0X2N1cnNlcwotICAgICAgICB0ZXN0X2RldnBvbGwKLSAgICAgICAgdGVzdF9lcG9sbAotICAgICAgICB0ZXN0X2RibV9nbnUKLSAgICAgICAgdGVzdF9sb2NhbGUKLSAgICAgICAgdGVzdF9vc3NhdWRpb2RldgotICAgICAgICB0ZXN0X3BlcDI3NwotICAgICAgICB0ZXN0X3RjbAotICAgICAgICB0ZXN0X3RrCi0gICAgICAgIHRlc3RfdHRrX2d1aW9ubHkKLSAgICAgICAgdGVzdF90dGtfdGV4dG9ubHkKLSAgICAgICAgdGVzdF9tdWx0aXByb2Nlc3NpbmcKLSAgICAgICAgIiIiKSwKLSkKLQotY2xhc3MgX0V4cGVjdGVkU2tpcHM6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBpbXBvcnQgb3MucGF0aAotICAgICAgICBmcm9tIHRlc3QgaW1wb3J0IHRlc3RfdGltZW91dAotCi0gICAgICAgIHNlbGYudmFsaWQgPSBGYWxzZQotICAgICAgICBleHBlY3RlZCA9IE5vbmUKLSAgICAgICAgZm9yIGl0ZW0gaW4gX2V4cGVjdGF0aW9uczoKLSAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKGl0ZW1bMF0pOgotICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gaXRlbVsxXQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGlmIGV4cGVjdGVkIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5leHBlY3RlZCA9IHNldChleHBlY3RlZC5zcGxpdCgpKQotCi0gICAgICAgICAgICAjIFRoZXNlIGFyZSBicm9rZW4gdGVzdHMsIGZvciBub3cgc2tpcHBlZCBvbiBldmVyeSBwbGF0Zm9ybS4KLSAgICAgICAgICAgICMgWFhYIEZpeCB0aGVzZSEKLSAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWQuYWRkKCd0ZXN0X25pcycpCi0KLSAgICAgICAgICAgICMgZXhwZWN0ZWQgdG8gYmUgc2tpcHBlZCBvbiBldmVyeSBwbGF0Zm9ybSwgZXZlbiBMaW51eAotICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguc3VwcG9ydHNfdW5pY29kZV9maWxlbmFtZXM6Ci0gICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZC5hZGQoJ3Rlc3RfcGVwMjc3JykKLQotICAgICAgICAgICAgIyBkb2N0ZXN0LCBwcm9maWxlIGFuZCBjUHJvZmlsZSB0ZXN0cyBmYWlsIHdoZW4gdGhlIGNvZGVjIGZvciB0aGUKLSAgICAgICAgICAgICMgZnMgZW5jb2RpbmcgaXNuJ3QgYnVpbHQgaW4gYmVjYXVzZSBQeVVuaWNvZGVfRGVjb2RlKCkgYWRkcyB0d28KLSAgICAgICAgICAgICMgY2FsbHMgaW50byBQeXRob24uCi0gICAgICAgICAgICBlbmNzID0gKCJ1dGYtOCIsICJsYXRpbi0xIiwgImFzY2lpIiwgIm1iY3MiLCAidXRmLTE2IiwgInV0Zi0zMiIpCi0gICAgICAgICAgICBpZiBzeXMuZ2V0ZmlsZXN5c3RlbWVuY29kaW5nKCkubG93ZXIoKSBub3QgaW4gZW5jczoKLSAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkLmFkZCgndGVzdF9wcm9maWxlJykKLSAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkLmFkZCgndGVzdF9jUHJvZmlsZScpCi0gICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZC5hZGQoJ3Rlc3RfZG9jdGVzdCcpCi0KLSAgICAgICAgICAgIGlmIHRlc3RfdGltZW91dC5za2lwX2V4cGVjdGVkOgotICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWQuYWRkKCd0ZXN0X3RpbWVvdXQnKQotCi0gICAgICAgICAgICBpZiBzeXMucGxhdGZvcm0gIT0gIndpbjMyIjoKLSAgICAgICAgICAgICAgICAjIHRlc3Rfc3FsaXRlIGlzIG9ubHkgcmVsaWFibGUgb24gV2luZG93cyB3aGVyZSB0aGUgbGlicmFyeQotICAgICAgICAgICAgICAgICMgaXMgZGlzdHJpYnV0ZWQgd2l0aCBQeXRob24KLSAgICAgICAgICAgICAgICBXSU5fT05MWSA9IHsidGVzdF91bmljb2RlX2ZpbGUiLCAidGVzdF93aW5yZWciLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X3dpbnNvdW5kIiwgInRlc3Rfc3RhcnRmaWxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9zcWxpdGUiLCAidGVzdF9tc2lsaWIifQotICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWQgfD0gV0lOX09OTFkKLQotICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICdzdW5vczUnOgotICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWQuYWRkKCd0ZXN0X25pcycpCi0KLSAgICAgICAgICAgIGlmIHN1cHBvcnQucHl0aG9uX2lzX29wdGltaXplZCgpOgotICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWQuYWRkKCJ0ZXN0X2dkYiIpCi0KLSAgICAgICAgICAgIHNlbGYudmFsaWQgPSBUcnVlCi0KLSAgICBkZWYgaXN2YWxpZChzZWxmKToKLSAgICAgICAgIlJldHVybiB0cnVlIGlmZiBfRXhwZWN0ZWRTa2lwcyBrbm93cyBhYm91dCB0aGUgY3VycmVudCBwbGF0Zm9ybS4iCi0gICAgICAgIHJldHVybiBzZWxmLnZhbGlkCi0KLSAgICBkZWYgZ2V0ZXhwZWN0ZWQoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiBzZXQgb2YgdGVzdCBuYW1lcyB3ZSBleHBlY3QgdG8gc2tpcCBvbiBjdXJyZW50IHBsYXRmb3JtLgotCi0gICAgICAgIHNlbGYuaXN2YWxpZCgpIG11c3QgYmUgdHJ1ZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgYXNzZXJ0IHNlbGYuaXN2YWxpZCgpCi0gICAgICAgIHJldHVybiBzZWxmLmV4cGVjdGVkCi0KLWRlZiBfbWFrZV90ZW1wX2Rpcl9mb3JfYnVpbGQoVEVNUERJUik6Ci0gICAgIyBXaGVuIHRlc3RzIGFyZSBydW4gZnJvbSB0aGUgUHl0aG9uIGJ1aWxkIGRpcmVjdG9yeSwgaXQgaXMgYmVzdCBwcmFjdGljZQotICAgICMgdG8ga2VlcCB0aGUgdGVzdCBmaWxlcyBpbiBhIHN1YmZvbGRlci4gIEl0IGVhc2VzIHRoZSBjbGVhbnVwIG9mIGxlZnRvdmVyCi0gICAgIyBmaWxlcyB1c2luZyBjb21tYW5kICJtYWtlIGRpc3RjbGVhbiIuCitkZWYgbWFpbl9pbl90ZW1wX2N3ZCgpOgorICAgICIiIlJ1biBtYWluKCkgaW4gYSB0ZW1wb3Jhcnkgd29ya2luZyBkaXJlY3RvcnkuIiIiCiAgICAgaWYgc3lzY29uZmlnLmlzX3B5dGhvbl9idWlsZCgpOgotICAgICAgICBURU1QRElSID0gb3MucGF0aC5qb2luKHN5c2NvbmZpZy5nZXRfY29uZmlnX3Zhcignc3JjZGlyJyksICdidWlsZCcpCi0gICAgICAgIFRFTVBESVIgPSBvcy5wYXRoLmFic3BhdGgoVEVNUERJUikKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgb3MubWtkaXIoVEVNUERJUikKICAgICAgICAgZXhjZXB0IEZpbGVFeGlzdHNFcnJvcjoKQEAgLTE3ODAsMTAgKzE1NzUsMTYgQEAKICAgICAjIERlZmluZSBhIHdyaXRhYmxlIHRlbXAgZGlyIHRoYXQgd2lsbCBiZSB1c2VkIGFzIGN3ZCB3aGlsZSBydW5uaW5nCiAgICAgIyB0aGUgdGVzdHMuIFRoZSBuYW1lIG9mIHRoZSBkaXIgaW5jbHVkZXMgdGhlIHBpZCB0byBhbGxvdyBwYXJhbGxlbAogICAgICMgdGVzdGluZyAoc2VlIHRoZSAtaiBvcHRpb24pLgotICAgIFRFU1RDV0QgPSAndGVzdF9weXRob25fe30nLmZvcm1hdChvcy5nZXRwaWQoKSkKKyAgICB0ZXN0X2N3ZCA9ICd0ZXN0X3B5dGhvbl97fScuZm9ybWF0KG9zLmdldHBpZCgpKQorICAgIHRlc3RfY3dkID0gb3MucGF0aC5qb2luKFRFTVBESVIsIHRlc3RfY3dkKQogCi0gICAgVEVTVENXRCA9IG9zLnBhdGguam9pbihURU1QRElSLCBURVNUQ1dEKQotICAgIHJldHVybiBURU1QRElSLCBURVNUQ1dECisgICAgIyBSdW4gdGhlIHRlc3RzIGluIGEgY29udGV4dCBtYW5hZ2VyIHRoYXQgdGVtcG9yYXJpbHkgY2hhbmdlcyB0aGUgQ1dEIHRvIGEKKyAgICAjIHRlbXBvcmFyeSBhbmQgd3JpdGFibGUgZGlyZWN0b3J5LiAgSWYgaXQncyBub3QgcG9zc2libGUgdG8gY3JlYXRlIG9yCisgICAgIyBjaGFuZ2UgdGhlIENXRCwgdGhlIG9yaWdpbmFsIENXRCB3aWxsIGJlIHVzZWQuICBUaGUgb3JpZ2luYWwgQ1dEIGlzCisgICAgIyBhdmFpbGFibGUgZnJvbSBzdXBwb3J0LlNBVkVEQ1dELgorICAgIHdpdGggc3VwcG9ydC50ZW1wX2N3ZCh0ZXN0X2N3ZCwgcXVpZXQ9VHJ1ZSk6CisgICAgICAgIG1haW4oKQorCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgIyBSZW1vdmUgcmVncnRlc3QucHkncyBvd24gZGlyZWN0b3J5IGZyb20gdGhlIG1vZHVsZSBzZWFyY2ggcGF0aC4gRGVzcGl0ZQpAQCAtMTgwNywxMSArMTYwOCw0IEBACiAgICAgIyBzYW5pdHkgY2hlY2sKICAgICBhc3NlcnQgX19maWxlX18gPT0gb3MucGF0aC5hYnNwYXRoKHN5cy5hcmd2WzBdKQogCi0gICAgVEVNUERJUiwgVEVTVENXRCA9IF9tYWtlX3RlbXBfZGlyX2Zvcl9idWlsZChURU1QRElSKQotCi0gICAgIyBSdW4gdGhlIHRlc3RzIGluIGEgY29udGV4dCBtYW5hZ2VyIHRoYXQgdGVtcG9yYXJ5IGNoYW5nZXMgdGhlIENXRCB0byBhCi0gICAgIyB0ZW1wb3JhcnkgYW5kIHdyaXRhYmxlIGRpcmVjdG9yeS4gSWYgaXQncyBub3QgcG9zc2libGUgdG8gY3JlYXRlIG9yCi0gICAgIyBjaGFuZ2UgdGhlIENXRCwgdGhlIG9yaWdpbmFsIENXRCB3aWxsIGJlIHVzZWQuIFRoZSBvcmlnaW5hbCBDV0QgaXMKLSAgICAjIGF2YWlsYWJsZSBmcm9tIHN1cHBvcnQuU0FWRURDV0QuCi0gICAgd2l0aCBzdXBwb3J0LnRlbXBfY3dkKFRFU1RDV0QsIHF1aWV0PVRydWUpOgotICAgICAgICBtYWluKCkKKyAgICBtYWluX2luX3RlbXBfY3dkKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3NvcnRwZXJmLnB5IGIvTGliL3Rlc3Qvc29ydHBlcmYucHkKaW5kZXggYWY3YzBiNC4uOTA3MjJmNyAxMDA2NDQKLS0tIGEvTGliL3Rlc3Qvc29ydHBlcmYucHkKKysrIGIvTGliL3Rlc3Qvc29ydHBlcmYucHkKQEAgLTIyLDcgKzIyLDcgQEAKICAgICBmbiA9IG9zLnBhdGguam9pbih0ZCwgInJyJTA2ZCIgJSBuKQogICAgIHRyeToKICAgICAgICAgZnAgPSBvcGVuKGZuLCAicmIiKQotICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICByID0gcmFuZG9tLnJhbmRvbQogICAgICAgICByZXN1bHQgPSBbcigpIGZvciBpIGluIHJhbmdlKG4pXQogICAgICAgICB0cnk6CkBAIC0zNSw5ICszNSw5IEBACiAgICAgICAgICAgICAgICAgaWYgZnA6CiAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnVubGluayhmbikKLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yOgorICAgICAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgbXNnOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBtc2c6CiAgICAgICAgICAgICBwcmludCgiY2FuJ3Qgd3JpdGUiLCBmbiwgIjoiLCBtc2cpCiAgICAgZWxzZToKICAgICAgICAgcmVzdWx0ID0gbWFyc2hhbC5sb2FkKGZwKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3Qvc3NsX3NlcnZlcnMucHkgYi9MaWIvdGVzdC9zc2xfc2VydmVycy5weQppbmRleCA4Njg2MTUzLi43NTliM2Y0IDEwMDY0NAotLS0gYS9MaWIvdGVzdC9zc2xfc2VydmVycy5weQorKysgYi9MaWIvdGVzdC9zc2xfc2VydmVycy5weQpAQCAtMzUsNyArMzUsNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzb2NrLCBhZGRyID0gc2VsZi5zb2NrZXQuYWNjZXB0KCkKICAgICAgICAgICAgIHNzbGNvbm4gPSBzZWxmLmNvbnRleHQud3JhcF9zb2NrZXQoc29jaywgc2VydmVyX3NpZGU9VHJ1ZSkKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgIyBzb2NrZXQgZXJyb3JzIGFyZSBzaWxlbmNlZCBieSB0aGUgY2FsbGVyLCBwcmludCB0aGVtIGhlcmUKICAgICAgICAgICAgIGlmIHN1cHBvcnQudmVyYm9zZToKICAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJHb3QgYW4gZXJyb3I6XG4lc1xuIiAlIGUpCkBAIC0xNDcsOSArMTQ3LDExIEBACiAgICAgICAgIHNlbGYuc2VydmVyLnNodXRkb3duKCkKIAogCi1kZWYgbWFrZV9odHRwc19zZXJ2ZXIoY2FzZSwgY2VydGZpbGU9Q0VSVEZJTEUsIGhvc3Q9SE9TVCwgaGFuZGxlcl9jbGFzcz1Ob25lKToKLSAgICAjIHdlIGFzc3VtZSB0aGUgY2VydGZpbGUgY29udGFpbnMgYm90aCBwcml2YXRlIGtleSBhbmQgY2VydGlmaWNhdGUKLSAgICBjb250ZXh0ID0gc3NsLlNTTENvbnRleHQoc3NsLlBST1RPQ09MX1NTTHYyMykKK2RlZiBtYWtlX2h0dHBzX3NlcnZlcihjYXNlLCAqLCBjb250ZXh0PU5vbmUsIGNlcnRmaWxlPUNFUlRGSUxFLAorICAgICAgICAgICAgICAgICAgICAgIGhvc3Q9SE9TVCwgaGFuZGxlcl9jbGFzcz1Ob25lKToKKyAgICBpZiBjb250ZXh0IGlzIE5vbmU6CisgICAgICAgIGNvbnRleHQgPSBzc2wuU1NMQ29udGV4dChzc2wuUFJPVE9DT0xfU1NMdjIzKQorICAgICMgV2UgYXNzdW1lIHRoZSBjZXJ0ZmlsZSBjb250YWlucyBib3RoIHByaXZhdGUga2V5IGFuZCBjZXJ0aWZpY2F0ZQogICAgIGNvbnRleHQubG9hZF9jZXJ0X2NoYWluKGNlcnRmaWxlKQogICAgIHNlcnZlciA9IEhUVFBTU2VydmVyVGhyZWFkKGNvbnRleHQsIGhvc3QsIGhhbmRsZXJfY2xhc3MpCiAgICAgZmxhZyA9IHRocmVhZGluZy5FdmVudCgpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC9zdXBwb3J0LnB5IGIvTGliL3Rlc3Qvc3VwcG9ydC5weQppbmRleCBiYzUxNzZhLi45N2RlNjA4IDEwMDY0NAotLS0gYS9MaWIvdGVzdC9zdXBwb3J0LnB5CisrKyBiL0xpYi90ZXN0L3N1cHBvcnQucHkKQEAgLTkzLDcgKzkzLDggQEAKICAgICAiIiJDb250ZXh0IG1hbmFnZXIgdG8gc3VwcHJlc3MgcGFja2FnZSBhbmQgbW9kdWxlIGRlcHJlY2F0aW9uCiAgICAgd2FybmluZ3Mgd2hlbiBpbXBvcnRpbmcgdGhlbS4KIAotICAgIElmIGlnbm9yZSBpcyBGYWxzZSwgdGhpcyBjb250ZXh0IG1hbmFnZXIgaGFzIG5vIGVmZmVjdC4iIiIKKyAgICBJZiBpZ25vcmUgaXMgRmFsc2UsIHRoaXMgY29udGV4dCBtYW5hZ2VyIGhhcyBubyBlZmZlY3QuCisgICAgIiIiCiAgICAgaWYgaWdub3JlOgogICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CiAgICAgICAgICAgICB3YXJuaW5ncy5maWx0ZXJ3YXJuaW5ncygiaWdub3JlIiwgIi4rIChtb2R1bGV8cGFja2FnZSkiLApAQCAtMTAzLDIzICsxMDQsMjkgQEAKICAgICAgICAgeWllbGQKIAogCi1kZWYgaW1wb3J0X21vZHVsZShuYW1lLCBkZXByZWNhdGVkPUZhbHNlKToKK2RlZiBpbXBvcnRfbW9kdWxlKG5hbWUsIGRlcHJlY2F0ZWQ9RmFsc2UsICosIHJlcXVpcmVkX29uPSgpKToKICAgICAiIiJJbXBvcnQgYW5kIHJldHVybiB0aGUgbW9kdWxlIHRvIGJlIHRlc3RlZCwgcmFpc2luZyBTa2lwVGVzdCBpZgogICAgIGl0IGlzIG5vdCBhdmFpbGFibGUuCiAKICAgICBJZiBkZXByZWNhdGVkIGlzIFRydWUsIGFueSBtb2R1bGUgb3IgcGFja2FnZSBkZXByZWNhdGlvbiBtZXNzYWdlcwotICAgIHdpbGwgYmUgc3VwcHJlc3NlZC4iIiIKKyAgICB3aWxsIGJlIHN1cHByZXNzZWQuIElmIGEgbW9kdWxlIGlzIHJlcXVpcmVkIG9uIGEgcGxhdGZvcm0gYnV0IG9wdGlvbmFsIGZvcgorICAgIG90aGVycywgc2V0IHJlcXVpcmVkX29uIHRvIGFuIGl0ZXJhYmxlIG9mIHBsYXRmb3JtIHByZWZpeGVzIHdoaWNoIHdpbGwgYmUKKyAgICBjb21wYXJlZCBhZ2FpbnN0IHN5cy5wbGF0Zm9ybS4KKyAgICAiIiIKICAgICB3aXRoIF9pZ25vcmVfZGVwcmVjYXRlZF9pbXBvcnRzKGRlcHJlY2F0ZWQpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICByZXR1cm4gaW1wb3J0bGliLmltcG9ydF9tb2R1bGUobmFtZSkKICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yIGFzIG1zZzoKKyAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKHR1cGxlKHJlcXVpcmVkX29uKSk6CisgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KHN0cihtc2cpKQogCiAKIGRlZiBfc2F2ZV9hbmRfcmVtb3ZlX21vZHVsZShuYW1lLCBvcmlnX21vZHVsZXMpOgogICAgICIiIkhlbHBlciBmdW5jdGlvbiB0byBzYXZlIGFuZCByZW1vdmUgYSBtb2R1bGUgZnJvbSBzeXMubW9kdWxlcwogCi0gICAgICAgUmFpc2UgSW1wb3J0RXJyb3IgaWYgdGhlIG1vZHVsZSBjYW4ndCBiZSBpbXBvcnRlZC4iIiIKKyAgICAgICBSYWlzZSBJbXBvcnRFcnJvciBpZiB0aGUgbW9kdWxlIGNhbid0IGJlIGltcG9ydGVkLgorICAgICAgICIiIgogICAgICMgdHJ5IHRvIGltcG9ydCB0aGUgbW9kdWxlIGFuZCByYWlzZSBhbiBlcnJvciBpZiBpdCBjYW4ndCBiZSBpbXBvcnRlZAogICAgIGlmIG5hbWUgbm90IGluIHN5cy5tb2R1bGVzOgogICAgICAgICBfX2ltcG9ydF9fKG5hbWUpCkBAIC0yODQsMjUgKzI5MSwyMCBAQAogZGVmIHVubGluayhmaWxlbmFtZSk6CiAgICAgdHJ5OgogICAgICAgICBfdW5saW5rKGZpbGVuYW1lKQotICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycm9yOgotICAgICAgICAjIFRoZSBmaWxlbmFtZSBuZWVkIG5vdCBleGlzdC4KLSAgICAgICAgaWYgZXJyb3IuZXJybm8gbm90IGluIChlcnJuby5FTk9FTlQsIGVycm5vLkVOT1RESVIpOgotICAgICAgICAgICAgcmFpc2UKKyAgICBleGNlcHQgKEZpbGVOb3RGb3VuZEVycm9yLCBOb3RBRGlyZWN0b3J5RXJyb3IpOgorICAgICAgICBwYXNzCiAKIGRlZiBybWRpcihkaXJuYW1lKToKICAgICB0cnk6CiAgICAgICAgIF9ybWRpcihkaXJuYW1lKQotICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycm9yOgotICAgICAgICAjIFRoZSBkaXJlY3RvcnkgbmVlZCBub3QgZXhpc3QuCi0gICAgICAgIGlmIGVycm9yLmVycm5vICE9IGVycm5vLkVOT0VOVDoKLSAgICAgICAgICAgIHJhaXNlCisgICAgZXhjZXB0IEZpbGVOb3RGb3VuZEVycm9yOgorICAgICAgICBwYXNzCiAKIGRlZiBybXRyZWUocGF0aCk6CiAgICAgdHJ5OgogICAgICAgICBfcm10cmVlKHBhdGgpCi0gICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyb3I6Ci0gICAgICAgIGlmIGVycm9yLmVycm5vICE9IGVycm5vLkVOT0VOVDoKLSAgICAgICAgICAgIHJhaXNlCisgICAgZXhjZXB0IEZpbGVOb3RGb3VuZEVycm9yOgorICAgICAgICBwYXNzCiAKIGRlZiBtYWtlX2xlZ2FjeV9weWMoc291cmNlKToKICAgICAiIiJNb3ZlIGEgUEVQIDMxNDcgcHljL3B5byBmaWxlIHRvIGl0cyBsZWdhY3kgcHljL3B5byBsb2NhdGlvbi4KQEAgLTQ4OSw3ICs0OTEsNyBAQAogICAgIHRoZSBTT19SRVVTRUFERFIgc29ja2V0IG9wdGlvbiBoYXZpbmcgZGlmZmVyZW50IHNlbWFudGljcyBvbiBXaW5kb3dzIHZlcnN1cwogICAgIFVuaXgvTGludXguICBPbiBVbml4LCB5b3UgY2FuJ3QgaGF2ZSB0d28gQUZfSU5FVCBTT0NLX1NUUkVBTSBzb2NrZXRzIGJpbmQsCiAgICAgbGlzdGVuIGFuZCB0aGVuIGFjY2VwdCBjb25uZWN0aW9ucyBvbiBpZGVudGljYWwgaG9zdC9wb3J0cy4gIEFuIEVBRERSSU5VU0UKLSAgICBzb2NrZXQuZXJyb3Igd2lsbCBiZSByYWlzZWQgYXQgc29tZSBwb2ludCAoZGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybSBhbmQKKyAgICBPU0Vycm9yIHdpbGwgYmUgcmFpc2VkIGF0IHNvbWUgcG9pbnQgKGRlcGVuZGluZyBvbiB0aGUgcGxhdGZvcm0gYW5kCiAgICAgdGhlIG9yZGVyIGJpbmQgYW5kIGxpc3RlbiB3ZXJlIGNhbGxlZCBvbiBlYWNoIHNvY2tldCkuCiAKICAgICBIb3dldmVyLCBvbiBXaW5kb3dzLCBpZiBTT19SRVVTRUFERFIgaXMgc2V0IG9uIHRoZSBzb2NrZXRzLCBubyBFQUREUklOVVNFCkBAIC01NjMsNyArNTY1LDcgQEAKICAgICAgICAgICAgIHNvY2sgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVUNiwgc29ja2V0LlNPQ0tfU1RSRUFNKQogICAgICAgICAgICAgc29jay5iaW5kKCgnOjoxJywgMCkpCiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBleGNlcHQgKHNvY2tldC5lcnJvciwgc29ja2V0LmdhaWVycm9yKToKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBpZiBzb2NrOgpAQCAtMTA5Miw5ICsxMDk0LDkgQEAKICMgQ29udGV4dCBtYW5hZ2VycyB0aGF0IHJhaXNlIFJlc291cmNlRGVuaWVkIHdoZW4gdmFyaW91cyBpc3N1ZXMKICMgd2l0aCB0aGUgSW50ZXJuZXQgY29ubmVjdGlvbiBtYW5pZmVzdCB0aGVtc2VsdmVzIGFzIGV4Y2VwdGlvbnMuCiAjIFhYWCBkZXByZWNhdGUgdGhlc2UgYW5kIHVzZSB0cmFuc2llbnRfaW50ZXJuZXQoKSBpbnN0ZWFkCi10aW1lX291dCA9IFRyYW5zaWVudFJlc291cmNlKElPRXJyb3IsIGVycm5vPWVycm5vLkVUSU1FRE9VVCkKLXNvY2tldF9wZWVyX3Jlc2V0ID0gVHJhbnNpZW50UmVzb3VyY2Uoc29ja2V0LmVycm9yLCBlcnJubz1lcnJuby5FQ09OTlJFU0VUKQotaW9lcnJvcl9wZWVyX3Jlc2V0ID0gVHJhbnNpZW50UmVzb3VyY2UoSU9FcnJvciwgZXJybm89ZXJybm8uRUNPTk5SRVNFVCkKK3RpbWVfb3V0ID0gVHJhbnNpZW50UmVzb3VyY2UoT1NFcnJvciwgZXJybm89ZXJybm8uRVRJTUVET1VUKQorc29ja2V0X3BlZXJfcmVzZXQgPSBUcmFuc2llbnRSZXNvdXJjZShPU0Vycm9yLCBlcnJubz1lcnJuby5FQ09OTlJFU0VUKQoraW9lcnJvcl9wZWVyX3Jlc2V0ID0gVHJhbnNpZW50UmVzb3VyY2UoT1NFcnJvciwgZXJybm89ZXJybm8uRUNPTk5SRVNFVCkKIAogCiBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgpAQCAtMTE0MCwxNyArMTE0MiwxNyBAQAogICAgICAgICBpZiB0aW1lb3V0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc29ja2V0LnNldGRlZmF1bHR0aW1lb3V0KHRpbWVvdXQpCiAgICAgICAgIHlpZWxkCi0gICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyOgorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgIyB1cmxsaWIgY2FuIHdyYXAgb3JpZ2luYWwgc29ja2V0IGVycm9ycyBtdWx0aXBsZSB0aW1lcyAoISksIHdlIG11c3QKICAgICAgICAgIyB1bndyYXAgdG8gZ2V0IGF0IHRoZSBvcmlnaW5hbCBlcnJvci4KICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgIGEgPSBlcnIuYXJncwotICAgICAgICAgICAgaWYgbGVuKGEpID49IDEgYW5kIGlzaW5zdGFuY2UoYVswXSwgSU9FcnJvcik6CisgICAgICAgICAgICBpZiBsZW4oYSkgPj0gMSBhbmQgaXNpbnN0YW5jZShhWzBdLCBPU0Vycm9yKToKICAgICAgICAgICAgICAgICBlcnIgPSBhWzBdCiAgICAgICAgICAgICAjIFRoZSBlcnJvciBjYW4gYWxzbyBiZSB3cmFwcGVkIGFzIGFyZ3NbMV06CiAgICAgICAgICAgICAjICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgbXNnOgotICAgICAgICAgICAgIyAgICAgICAgcmFpc2UgSU9FcnJvcignc29ja2V0IGVycm9yJywgbXNnKS53aXRoX3RyYWNlYmFjayhzeXMuZXhjX2luZm8oKVsyXSkKLSAgICAgICAgICAgIGVsaWYgbGVuKGEpID49IDIgYW5kIGlzaW5zdGFuY2UoYVsxXSwgSU9FcnJvcik6CisgICAgICAgICAgICAjICAgICAgICByYWlzZSBPU0Vycm9yKCdzb2NrZXQgZXJyb3InLCBtc2cpLndpdGhfdHJhY2ViYWNrKHN5cy5leGNfaW5mbygpWzJdKQorICAgICAgICAgICAgZWxpZiBsZW4oYSkgPj0gMiBhbmQgaXNpbnN0YW5jZShhWzFdLCBPU0Vycm9yKToKICAgICAgICAgICAgICAgICBlcnIgPSBhWzFdCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGJyZWFrCkBAIC0xNzc3LDcgKzE3NzksNyBAQAogICAgIFRoaXMgd2lsbCB0eXBpY2FsbHkgYmUgcnVuIG9uIHRoZSByZXN1bHQgb2YgdGhlIGNvbW11bmljYXRlKCkgbWV0aG9kCiAgICAgb2YgYSBzdWJwcm9jZXNzLlBvcGVuIG9iamVjdC4KICAgICAiIiIKLSAgICBzdGRlcnIgPSByZS5zdWIoYnIiXFtcZCsgcmVmc1xdXHI/XG4/IiwgYiIiLCBzdGRlcnIpLnN0cmlwKCkKKyAgICBzdGRlcnIgPSByZS5zdWIoYnIiXFtcZCsgcmVmcywgXGQrIGJsb2Nrc1xdXHI/XG4/IiwgYiIiLCBzdGRlcnIpLnN0cmlwKCkKICAgICByZXR1cm4gc3RkZXJyCiAKIGRlZiBhcmdzX2Zyb21faW50ZXJwcmV0ZXJfZmxhZ3MoKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfX19hbGxfXy5weSBiL0xpYi90ZXN0L3Rlc3RfX19hbGxfXy5weQppbmRleCA2MDhlYzAxLi4wOTNlYTJmIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X19fYWxsX18ucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9fX2FsbF9fLnB5CkBAIC0yOSwxNyArMjksMjAgQEAKICAgICAgICAgaWYgbm90IGhhc2F0dHIoc3lzLm1vZHVsZXNbbW9kbmFtZV0sICJfX2FsbF9fIik6CiAgICAgICAgICAgICByYWlzZSBOb0FsbChtb2RuYW1lKQogICAgICAgICBuYW1lcyA9IHt9Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGV4ZWMoImZyb20gJXMgaW1wb3J0ICoiICUgbW9kbmFtZSwgbmFtZXMpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICMgSW5jbHVkZSB0aGUgbW9kdWxlIG5hbWUgaW4gdGhlIGV4Y2VwdGlvbiBzdHJpbmcKLSAgICAgICAgICAgIHNlbGYuZmFpbCgiX19hbGxfXyBmYWlsdXJlIGluIHt9OiB7fToge30iLmZvcm1hdCgKLSAgICAgICAgICAgICAgICAgICAgICBtb2RuYW1lLCBlLl9fY2xhc3NfXy5fX25hbWVfXywgZSkpCi0gICAgICAgIGlmICJfX2J1aWx0aW5zX18iIGluIG5hbWVzOgotICAgICAgICAgICAgZGVsIG5hbWVzWyJfX2J1aWx0aW5zX18iXQotICAgICAgICBrZXlzID0gc2V0KG5hbWVzKQotICAgICAgICBhbGwgPSBzZXQoc3lzLm1vZHVsZXNbbW9kbmFtZV0uX19hbGxfXykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrZXlzLCBhbGwpCisgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KG1vZHVsZT1tb2RuYW1lKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBleGVjKCJmcm9tICVzIGltcG9ydCAqIiAlIG1vZG5hbWUsIG5hbWVzKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICMgSW5jbHVkZSB0aGUgbW9kdWxlIG5hbWUgaW4gdGhlIGV4Y2VwdGlvbiBzdHJpbmcKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoIl9fYWxsX18gZmFpbHVyZSBpbiB7fToge306IHt9Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZG5hbWUsIGUuX19jbGFzc19fLl9fbmFtZV9fLCBlKSkKKyAgICAgICAgICAgIGlmICJfX2J1aWx0aW5zX18iIGluIG5hbWVzOgorICAgICAgICAgICAgICAgIGRlbCBuYW1lc1siX19idWlsdGluc19fIl0KKyAgICAgICAgICAgIGtleXMgPSBzZXQobmFtZXMpCisgICAgICAgICAgICBhbGxfbGlzdCA9IHN5cy5tb2R1bGVzW21vZG5hbWVdLl9fYWxsX18KKyAgICAgICAgICAgIGFsbF9zZXQgPSBzZXQoYWxsX2xpc3QpCisgICAgICAgICAgICBzZWxmLmFzc2VydENvdW50RXF1YWwoYWxsX3NldCwgYWxsX2xpc3QsICJpbiBtb2R1bGUge30iLmZvcm1hdChtb2RuYW1lKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoa2V5cywgYWxsX3NldCwgImluIG1vZHVsZSB7fSIuZm9ybWF0KG1vZG5hbWUpKQogCiAgICAgZGVmIHdhbGtfbW9kdWxlcyhzZWxmLCBiYXNlZGlyLCBtb2RwYXRoKToKICAgICAgICAgZm9yIGZuIGluIHNvcnRlZChvcy5saXN0ZGlyKGJhc2VkaXIpKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfYWJjLnB5IGIvTGliL3Rlc3QvdGVzdF9hYmMucHkKaW5kZXggNjUzYzk1Ny4uNGIxNTE1NyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9hYmMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9hYmMucHkKQEAgLTk2LDYgKzk2LDE5IEBACiAKIGNsYXNzIFRlc3RBQkModW5pdHRlc3QuVGVzdENhc2UpOgogCisgICAgZGVmIHRlc3RfQUJDX2hlbHBlcihzZWxmKToKKyAgICAgICAgIyBjcmVhdGUgYW4gQUJDIHVzaW5nIHRoZSBoZWxwZXIgY2xhc3MgYW5kIHBlcmZvcm0gYmFzaWMgY2hlY2tzCisgICAgICAgIGNsYXNzIEMoYWJjLkFCQyk6CisgICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICAgICAgICAgIGRlZiBmb28oY2xzKTogcmV0dXJuIGNscy5fX25hbWVfXworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoQyksIGFiYy5BQkNNZXRhKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIEMpCisgICAgICAgIGNsYXNzIEQoQyk6CisgICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgIGRlZiBmb28oY2xzKTogcmV0dXJuIHN1cGVyKCkuZm9vKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChELmZvbygpLCAnRCcpCisKICAgICBkZWYgdGVzdF9hYnN0cmFjdG1ldGhvZF9iYXNpY3Moc2VsZik6CiAgICAgICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKICAgICAgICAgZGVmIGZvbyhzZWxmKTogcGFzcwpAQCAtMzE2LDcgKzMyOSwxMCBAQAogICAgICAgICBiID0gQigpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaXNpbnN0YW5jZShiLCBBKSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpc2luc3RhbmNlKGIsIChBLCkpKQorICAgICAgICB0b2tlbl9vbGQgPSBhYmMuZ2V0X2NhY2hlX3Rva2VuKCkKICAgICAgICAgQS5yZWdpc3RlcihCKQorICAgICAgICB0b2tlbl9uZXcgPSBhYmMuZ2V0X2NhY2hlX3Rva2VuKCkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh0b2tlbl9vbGQsIHRva2VuX25ldykKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoYiwgQSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGIsIChBLCkpKQogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2FpZmMucHkgYi9MaWIvdGVzdC90ZXN0X2FpZmMucHkKaW5kZXggOWMwZTdiOS4uOThkNDNlNCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9haWZjLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfYWlmYy5weQpAQCAtNDMsNiArNDMsMTggQEAKICAgICAgICAgICAgICgyLCAyLCA0ODAwMCwgMTQ0MDAsIGInTk9ORScsIGInbm90IGNvbXByZXNzZWQnKSwKICAgICAgICAgICAgICkKIAorICAgIGRlZiB0ZXN0X2NvbnRleHRfbWFuYWdlcihzZWxmKToKKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuc25kZmlsZXBhdGgsICdyYicpIGFzIHRlc3RmaWxlOgorICAgICAgICAgICAgd2l0aCBhaWZjLm9wZW4odGVzdGZpbGUpIGFzIGY6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0ZmlsZS5jbG9zZWQsIFRydWUpCisgICAgICAgIHdpdGggb3BlbihURVNURk4sICd3YicpIGFzIHRlc3RmaWxlOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhhaWZjLkVycm9yKToKKyAgICAgICAgICAgICAgICB3aXRoIGFpZmMub3Blbih0ZXN0ZmlsZSwgJ3diJykgYXMgZm91dDoKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0ZmlsZS5jbG9zZWQsIFRydWUpCisgICAgICAgICAgICBmb3V0LmNsb3NlKCkgIyBkbyBub3RoaW5nCisKICAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgogICAgICAgICBmID0gc2VsZi5mID0gYWlmYy5vcGVuKHNlbGYuc25kZmlsZXBhdGgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkZnJhbWVzKDApLCBiJycpCkBAIC0zMTksMTIgKzMzMSwxNCBAQAogCiAgICAgZGVmIHRlc3Rfd3JpdGVfYWlmZl9ieV9leHRlbnNpb24oc2VsZik6CiAgICAgICAgIHNhbXB3aWR0aCA9IDIKLSAgICAgICAgZm91dCA9IHNlbGYuZm91dCA9IGFpZmMub3BlbihURVNURk4gKyAnLmFpZmYnLCAnd2InKQorICAgICAgICBmaWxlbmFtZSA9IFRFU1RGTiArICcuYWlmZicKKyAgICAgICAgZm91dCA9IHNlbGYuZm91dCA9IGFpZmMub3BlbihmaWxlbmFtZSwgJ3diJykKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHVubGluaywgZmlsZW5hbWUpCiAgICAgICAgIGZvdXQuc2V0cGFyYW1zKCgxLCBzYW1wd2lkdGgsIDEsIDEsIGInVUxBVycsIGInJykpCiAgICAgICAgIGZyYW1lcyA9IGInXHgwMCcgKiBmb3V0LmdldG5jaGFubmVscygpICogc2FtcHdpZHRoCiAgICAgICAgIGZvdXQud3JpdGVmcmFtZXMoZnJhbWVzKQogICAgICAgICBmb3V0LmNsb3NlKCkKLSAgICAgICAgZiA9IHNlbGYuZiA9IGFpZmMub3BlbihURVNURk4gKyAnLmFpZmYnLCAncmInKQorICAgICAgICBmID0gc2VsZi5mID0gYWlmYy5vcGVuKGZpbGVuYW1lLCAncmInKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuZ2V0Y29tcHR5cGUoKSwgYidOT05FJykKICAgICAgICAgZi5jbG9zZSgpCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfYXJncGFyc2UucHkgYi9MaWIvdGVzdC90ZXN0X2FyZ3BhcnNlLnB5CmluZGV4IGMwNmM5NDAuLjAwY2RlMmUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfYXJncGFyc2UucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9hcmdwYXJzZS5weQpAQCAtMTQsNiArMTQsNyBAQAogZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8KIAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0Citmcm9tIHVuaXR0ZXN0IGltcG9ydCBtb2NrCiBjbGFzcyBTdGRJT0J1ZmZlcihTdHJpbmdJTyk6CiAgICAgcGFzcwogCkBAIC0xNDIxLDYgKzE0MjIsMTkgQEAKICAgICAgICAgdHlwZSA9IGFyZ3BhcnNlLkZpbGVUeXBlKCd3YicsIDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIkZpbGVUeXBlKCd3YicsIDEpIiwgcmVwcih0eXBlKSkKIAorICAgIGRlZiB0ZXN0X3JfbGF0aW4oc2VsZik6CisgICAgICAgIHR5cGUgPSBhcmdwYXJzZS5GaWxlVHlwZSgncicsIGVuY29kaW5nPSdsYXRpbl8xJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiRmlsZVR5cGUoJ3InLCBlbmNvZGluZz0nbGF0aW5fMScpIiwgcmVwcih0eXBlKSkKKworICAgIGRlZiB0ZXN0X3dfYmlnNV9pZ25vcmUoc2VsZik6CisgICAgICAgIHR5cGUgPSBhcmdwYXJzZS5GaWxlVHlwZSgndycsIGVuY29kaW5nPSdiaWc1JywgZXJyb3JzPSdpZ25vcmUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJGaWxlVHlwZSgndycsIGVuY29kaW5nPSdiaWc1JywgZXJyb3JzPSdpZ25vcmUnKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVwcih0eXBlKSkKKworICAgIGRlZiB0ZXN0X3JfMV9yZXBsYWNlKHNlbGYpOgorICAgICAgICB0eXBlID0gYXJncGFyc2UuRmlsZVR5cGUoJ3InLCAxLCBlcnJvcnM9J3JlcGxhY2UnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJGaWxlVHlwZSgncicsIDEsIGVycm9ycz0ncmVwbGFjZScpIiwgcmVwcih0eXBlKSkKKwogCiBjbGFzcyBSRmlsZShvYmplY3QpOgogICAgIHNlZW4gPSB7fQpAQCAtMTU1Nyw2ICsxNTcxLDI0IEBACiAgICAgXQogCiAKK2NsYXNzIFRlc3RGaWxlVHlwZU9wZW5BcmdzKFRlc3RDYXNlKToKKyAgICAiIiJUZXN0IHRoYXQgb3BlbiAodGhlIGJ1aWx0aW4pIGlzIGNvcnJlY3RseSBjYWxsZWQiIiIKKworICAgIGRlZiB0ZXN0X29wZW5fYXJncyhzZWxmKToKKyAgICAgICAgRlQgPSBhcmdwYXJzZS5GaWxlVHlwZQorICAgICAgICBjYXNlcyA9IFsKKyAgICAgICAgICAgIChGVCgncmInKSwgKCdyYicsIC0xLCBOb25lLCBOb25lKSksCisgICAgICAgICAgICAoRlQoJ3cnLCAxKSwgKCd3JywgMSwgTm9uZSwgTm9uZSkpLAorICAgICAgICAgICAgKEZUKCd3JywgZXJyb3JzPSdyZXBsYWNlJyksICgndycsIC0xLCBOb25lLCAncmVwbGFjZScpKSwKKyAgICAgICAgICAgIChGVCgnd2InLCBlbmNvZGluZz0nYmlnNScpLCAoJ3diJywgLTEsICdiaWc1JywgTm9uZSkpLAorICAgICAgICAgICAgKEZUKCd3JywgMCwgJ2wxJywgJ3N0cmljdCcpLCAoJ3cnLCAwLCAnbDEnLCAnc3RyaWN0JykpLAorICAgICAgICBdCisgICAgICAgIHdpdGggbW9jay5wYXRjaCgnYnVpbHRpbnMub3BlbicpIGFzIG06CisgICAgICAgICAgICBmb3IgdHlwZSwgYXJncyBpbiBjYXNlczoKKyAgICAgICAgICAgICAgICB0eXBlKCdmb28nKQorICAgICAgICAgICAgICAgIG0uYXNzZXJ0X2NhbGxlZF93aXRoKCdmb28nLCAqYXJncykKKworCiBjbGFzcyBUZXN0VHlwZUNhbGxhYmxlKFBhcnNlclRlc3RDYXNlKToKICAgICAiIiJUZXN0IHNvbWUgY2FsbGFibGVzIGFzIG9wdGlvbi9hcmd1bWVudCB0eXBlcyIiIgogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2FycmF5LnB5IGIvTGliL3Rlc3QvdGVzdF9hcnJheS5weQppbmRleCBmMjFiNjlmLi5hNDRlZTA3IDEwMDc1NQotLS0gYS9MaWIvdGVzdC90ZXN0X2FycmF5LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfYXJyYXkucHkKQEAgLTM1MywxMiArMzUzLDEyIEBACiAgICAgICAgICAgICBzdXBwb3J0LnVubGluayhzdXBwb3J0LlRFU1RGTikKIAogICAgIGRlZiB0ZXN0X2Zyb21maWxlX2lvZXJyb3Ioc2VsZik6Ci0gICAgICAgICMgSXNzdWUgIzUzOTU6IENoZWNrIGlmIGZyb21maWxlIHJhaXNlcyBhIHByb3BlciBJT0Vycm9yCisgICAgICAgICMgSXNzdWUgIzUzOTU6IENoZWNrIGlmIGZyb21maWxlIHJhaXNlcyBhIHByb3BlciBPU0Vycm9yCiAgICAgICAgICMgaW5zdGVhZCBvZiBFT0ZFcnJvci4KICAgICAgICAgYSA9IGFycmF5LmFycmF5KHNlbGYudHlwZWNvZGUpCiAgICAgICAgIGYgPSBvcGVuKHN1cHBvcnQuVEVTVEZOLCAnd2InKQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBhLmZyb21maWxlLCBmLCBsZW4oc2VsZi5leGFtcGxlKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIGEuZnJvbWZpbGUsIGYsIGxlbihzZWxmLmV4YW1wbGUpKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgZi5jbG9zZSgpCiAgICAgICAgICAgICBzdXBwb3J0LnVubGluayhzdXBwb3J0LlRFU1RGTikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfYXN0LnB5IGIvTGliL3Rlc3QvdGVzdF9hc3QucHkKaW5kZXggZGMyNDEyNi4uYzQ1MzI2ZiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9hc3QucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9hc3QucHkKQEAgLTE4MCwyMCArMTgwLDM2IEBACiAKIGNsYXNzIEFTVF9UZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKLSAgICBkZWYgX2Fzc2VydFRydWVvcmRlcihzZWxmLCBhc3Rfbm9kZSwgcGFyZW50X3Bvcyk6CisgICAgZGVmIF9hc3NlcnRUcnVlb3JkZXIoc2VsZiwgYXN0X25vZGUsIHBhcmVudF9wb3MsIHJldmVyc2VfY2hlY2sgPSBGYWxzZSk6CisgICAgICAgIGRlZiBzaG91bGRfcmV2ZXJzZV9jaGVjayhwYXJlbnQsIGNoaWxkKToKKyAgICAgICAgICAgICMgSW4gc29tZSBzaXR1YXRpb25zLCB0aGUgY2hpbGRyZW4gb2Ygbm9kZXMgb2NjdXIgYmVmb3JlCisgICAgICAgICAgICAjIHRoZWlyIHBhcmVudHMsIGZvciBleGFtcGxlIGluIGEuYi5jLCBhIG9jY3VycyBiZWZvcmUgYgorICAgICAgICAgICAgIyBidXQgYSBpcyBhIGNoaWxkIG9mIGIuCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHBhcmVudCwgYXN0LkNhbGwpOgorICAgICAgICAgICAgICAgIGlmIHBhcmVudC5mdW5jID09IGNoaWxkOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShwYXJlbnQsIChhc3QuQXR0cmlidXRlLCBhc3QuU3Vic2NyaXB0KSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCiAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGFzdF9ub2RlLCBhc3QuQVNUKSBvciBhc3Rfbm9kZS5fZmllbGRzIGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgaWYgaXNpbnN0YW5jZShhc3Rfbm9kZSwgKGFzdC5leHByLCBhc3Quc3RtdCwgYXN0LmV4Y2VwdGhhbmRsZXIpKToKICAgICAgICAgICAgIG5vZGVfcG9zID0gKGFzdF9ub2RlLmxpbmVubywgYXN0X25vZGUuY29sX29mZnNldCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub2RlX3BvcyA+PSBwYXJlbnRfcG9zKQorICAgICAgICAgICAgaWYgcmV2ZXJzZV9jaGVjazoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobm9kZV9wb3MgPD0gcGFyZW50X3BvcykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vZGVfcG9zID49IHBhcmVudF9wb3MpCiAgICAgICAgICAgICBwYXJlbnRfcG9zID0gKGFzdF9ub2RlLmxpbmVubywgYXN0X25vZGUuY29sX29mZnNldCkKICAgICAgICAgZm9yIG5hbWUgaW4gYXN0X25vZGUuX2ZpZWxkczoKICAgICAgICAgICAgIHZhbHVlID0gZ2V0YXR0cihhc3Rfbm9kZSwgbmFtZSkKICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGxpc3QpOgogICAgICAgICAgICAgICAgIGZvciBjaGlsZCBpbiB2YWx1ZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fYXNzZXJ0VHJ1ZW9yZGVyKGNoaWxkLCBwYXJlbnRfcG9zKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9hc3NlcnRUcnVlb3JkZXIoY2hpbGQsIHBhcmVudF9wb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZF9yZXZlcnNlX2NoZWNrKGFzdF9ub2RlLCBjaGlsZCkpCiAgICAgICAgICAgICBlbGlmIHZhbHVlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHNlbGYuX2Fzc2VydFRydWVvcmRlcih2YWx1ZSwgcGFyZW50X3BvcykKKyAgICAgICAgICAgICAgICBzZWxmLl9hc3NlcnRUcnVlb3JkZXIodmFsdWUsIHBhcmVudF9wb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZF9yZXZlcnNlX2NoZWNrKGFzdF9ub2RlLCB2YWx1ZSkpCiAKICAgICBkZWYgdGVzdF9BU1Rfb2JqZWN0cyhzZWxmKToKICAgICAgICAgeCA9IGFzdC5BU1QoKQpAQCAtMjYyLDE0ICsyNzgsMTQgQEAKIAogICAgIGRlZiB0ZXN0X2FyZ3VtZW50cyhzZWxmKToKICAgICAgICAgeCA9IGFzdC5hcmd1bWVudHMoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHguX2ZpZWxkcywgKCdhcmdzJywgJ3ZhcmFyZycsICd2YXJhcmdhbm5vdGF0aW9uJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2t3b25seWFyZ3MnLCAna3dhcmcnLCAna3dhcmdhbm5vdGF0aW9uJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlZmF1bHRzJywgJ2t3X2RlZmF1bHRzJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeC5fZmllbGRzLCAoJ2FyZ3MnLCAndmFyYXJnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2t3b25seWFyZ3MnLCAna3dfZGVmYXVsdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAna3dhcmcnLCAnZGVmYXVsdHMnKSkKIAogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKICAgICAgICAgICAgIHgudmFyYXJnCiAKLSAgICAgICAgeCA9IGFzdC5hcmd1bWVudHMoKnJhbmdlKDEsIDkpKQorICAgICAgICB4ID0gYXN0LmFyZ3VtZW50cygqcmFuZ2UoMSwgNykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeC52YXJhcmcsIDIpCiAKICAgICBkZWYgdGVzdF9maWVsZF9hdHRyX3dyaXRhYmxlKHNlbGYpOgpAQCAtNDM5LDcgKzQ1NSw3IEBACiAgICAgICAgICAgICAibGluZW5vPTEsIGNvbF9vZmZzZXQ9MCksIGFyZ3M9W05hbWUoaWQ9J2VnZ3MnLCBjdHg9TG9hZCgpLCAiCiAgICAgICAgICAgICAibGluZW5vPTEsIGNvbF9vZmZzZXQ9NSksIFN0cihzPSdhbmQgY2hlZXNlJywgbGluZW5vPTEsICIKICAgICAgICAgICAgICJjb2xfb2Zmc2V0PTExKV0sIGtleXdvcmRzPVtdLCBzdGFyYXJncz1Ob25lLCBrd2FyZ3M9Tm9uZSwgIgotICAgICAgICAgICAgImxpbmVubz0xLCBjb2xfb2Zmc2V0PTApLCBsaW5lbm89MSwgY29sX29mZnNldD0wKV0pIgorICAgICAgICAgICAgImxpbmVubz0xLCBjb2xfb2Zmc2V0PTQpLCBsaW5lbm89MSwgY29sX29mZnNldD0wKV0pIgogICAgICAgICApCiAKICAgICBkZWYgdGVzdF9jb3B5X2xvY2F0aW9uKHNlbGYpOgpAQCAtNDYwLDcgKzQ3Niw3IEBACiAgICAgICAgICAgICAiTW9kdWxlKGJvZHk9W0V4cHIodmFsdWU9Q2FsbChmdW5jPU5hbWUoaWQ9J3dyaXRlJywgY3R4PUxvYWQoKSwgIgogICAgICAgICAgICAgImxpbmVubz0xLCBjb2xfb2Zmc2V0PTApLCBhcmdzPVtTdHIocz0nc3BhbScsIGxpbmVubz0xLCAiCiAgICAgICAgICAgICAiY29sX29mZnNldD02KV0sIGtleXdvcmRzPVtdLCBzdGFyYXJncz1Ob25lLCBrd2FyZ3M9Tm9uZSwgIgotICAgICAgICAgICAgImxpbmVubz0xLCBjb2xfb2Zmc2V0PTApLCBsaW5lbm89MSwgY29sX29mZnNldD0wKSwgIgorICAgICAgICAgICAgImxpbmVubz0xLCBjb2xfb2Zmc2V0PTUpLCBsaW5lbm89MSwgY29sX29mZnNldD0wKSwgIgogICAgICAgICAgICAgIkV4cHIodmFsdWU9Q2FsbChmdW5jPU5hbWUoaWQ9J3NwYW0nLCBjdHg9TG9hZCgpLCBsaW5lbm89MSwgIgogICAgICAgICAgICAgImNvbF9vZmZzZXQ9MCksIGFyZ3M9W1N0cihzPSdlZ2dzJywgbGluZW5vPTEsIGNvbF9vZmZzZXQ9MCldLCAiCiAgICAgICAgICAgICAia2V5d29yZHM9W10sIHN0YXJhcmdzPU5vbmUsIGt3YXJncz1Ob25lLCBsaW5lbm89MSwgIgpAQCAtNTYwLDggKzU3Niw4IEBACiAgICAgICAgIHNlbGYubW9kKG0sICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IiwgImV2YWwiKQogCiAgICAgZGVmIF9jaGVja19hcmd1bWVudHMoc2VsZiwgZmFjLCBjaGVjayk6Ci0gICAgICAgIGRlZiBhcmd1bWVudHMoYXJncz1Ob25lLCB2YXJhcmc9Tm9uZSwgdmFyYXJnYW5ub3RhdGlvbj1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgIGt3b25seWFyZ3M9Tm9uZSwga3dhcmc9Tm9uZSwga3dhcmdhbm5vdGF0aW9uPU5vbmUsCisgICAgICAgIGRlZiBhcmd1bWVudHMoYXJncz1Ob25lLCB2YXJhcmc9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICBrd29ubHlhcmdzPU5vbmUsIGt3YXJnPU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHM9Tm9uZSwga3dfZGVmYXVsdHM9Tm9uZSk6CiAgICAgICAgICAgICBpZiBhcmdzIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgYXJncyA9IFtdCkBAIC01NzEsMjAgKzU4NywxMiBAQAogICAgICAgICAgICAgICAgIGRlZmF1bHRzID0gW10KICAgICAgICAgICAgIGlmIGt3X2RlZmF1bHRzIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAga3dfZGVmYXVsdHMgPSBbXQotICAgICAgICAgICAgYXJncyA9IGFzdC5hcmd1bWVudHMoYXJncywgdmFyYXJnLCB2YXJhcmdhbm5vdGF0aW9uLCBrd29ubHlhcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmcsIGt3YXJnYW5ub3RhdGlvbiwgZGVmYXVsdHMsIGt3X2RlZmF1bHRzKQorICAgICAgICAgICAgYXJncyA9IGFzdC5hcmd1bWVudHMoYXJncywgdmFyYXJnLCBrd29ubHlhcmdzLCBrd19kZWZhdWx0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnLCBkZWZhdWx0cykKICAgICAgICAgICAgIHJldHVybiBmYWMoYXJncykKICAgICAgICAgYXJncyA9IFthc3QuYXJnKCJ4IiwgYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSkpXQogICAgICAgICBjaGVjayhhcmd1bWVudHMoYXJncz1hcmdzKSwgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQotICAgICAgICBjaGVjayhhcmd1bWVudHModmFyYXJnYW5ub3RhdGlvbj1hc3QuTnVtKDMpKSwKLSAgICAgICAgICAgICAgInZhcmFyZ2Fubm90YXRpb24gYnV0IG5vIHZhcmFyZyIpCi0gICAgICAgIGNoZWNrKGFyZ3VtZW50cyh2YXJhcmdhbm5vdGF0aW9uPWFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpLCB2YXJhcmc9IngiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCiAgICAgICAgIGNoZWNrKGFyZ3VtZW50cyhrd29ubHlhcmdzPWFyZ3MpLCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCi0gICAgICAgIGNoZWNrKGFyZ3VtZW50cyhrd2FyZ2Fubm90YXRpb249YXN0Lk51bSg0MikpLAotICAgICAgICAgICAgICAgICAgICAgICAia3dhcmdhbm5vdGF0aW9uIGJ1dCBubyBrd2FyZyIpCi0gICAgICAgIGNoZWNrKGFyZ3VtZW50cyhrd2FyZ2Fubm90YXRpb249YXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnPSJ4IiksICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKICAgICAgICAgY2hlY2soYXJndW1lbnRzKGRlZmF1bHRzPVthc3QuTnVtKDMpXSksCiAgICAgICAgICAgICAgICAgICAgICAgICJtb3JlIHBvc2l0aW9uYWwgZGVmYXVsdHMgdGhhbiBhcmdzIikKICAgICAgICAgY2hlY2soYXJndW1lbnRzKGt3X2RlZmF1bHRzPVthc3QuTnVtKDQpXSksCkBAIC01OTksNyArNjA3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQogCiAgICAgZGVmIHRlc3RfZnVuY2RlZihzZWxmKToKLSAgICAgICAgYSA9IGFzdC5hcmd1bWVudHMoW10sIE5vbmUsIE5vbmUsIFtdLCBOb25lLCBOb25lLCBbXSwgW10pCisgICAgICAgIGEgPSBhc3QuYXJndW1lbnRzKFtdLCBOb25lLCBbXSwgW10sIE5vbmUsIFtdKQogICAgICAgICBmID0gYXN0LkZ1bmN0aW9uRGVmKCJ4IiwgYSwgW10sIFtdLCBOb25lKQogICAgICAgICBzZWxmLnN0bXQoZiwgImVtcHR5IGJvZHkgb24gRnVuY3Rpb25EZWYiKQogICAgICAgICBmID0gYXN0LkZ1bmN0aW9uRGVmKCJ4IiwgYSwgW2FzdC5QYXNzKCldLCBbYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSldLApAQCAtNzcwLDcgKzc3OCw3IEBACiAgICAgICAgIHNlbGYuZXhwcih1LCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCiAKICAgICBkZWYgdGVzdF9sYW1iZGEoc2VsZik6Ci0gICAgICAgIGEgPSBhc3QuYXJndW1lbnRzKFtdLCBOb25lLCBOb25lLCBbXSwgTm9uZSwgTm9uZSwgW10sIFtdKQorICAgICAgICBhID0gYXN0LmFyZ3VtZW50cyhbXSwgTm9uZSwgW10sIFtdLCBOb25lLCBbXSkKICAgICAgICAgc2VsZi5leHByKGFzdC5MYW1iZGEoYSwgYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSkpLAogICAgICAgICAgICAgICAgICAgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQogICAgICAgICBkZWYgZmFjKGFyZ3MpOgpAQCAtOTI4LDYgKzkzNiw5IEBACiAgICAgZGVmIHRlc3RfdHVwbGUoc2VsZik6CiAgICAgICAgIHNlbGYuX3NlcXVlbmNlKGFzdC5UdXBsZSkKIAorICAgIGRlZiB0ZXN0X25hbWVjb25zdGFudChzZWxmKToKKyAgICAgICAgc2VsZi5leHByKGFzdC5OYW1lQ29uc3RhbnQoNCksICJzaW5nbGV0b24gbXVzdCBiZSBUcnVlLCBGYWxzZSwgb3IgTm9uZSIpCisKICAgICBkZWYgdGVzdF9zdGRsaWJfdmFsaWRhdGVzKHNlbGYpOgogICAgICAgICBzdGRsaWIgPSBvcy5wYXRoLmRpcm5hbWUoYXN0Ll9fZmlsZV9fKQogICAgICAgICB0ZXN0cyA9IFtmbiBmb3IgZm4gaW4gb3MubGlzdGRpcihzdGRsaWIpIGlmIGZuLmVuZHN3aXRoKCIucHkiKV0KQEAgLTkzNiw3ICs5NDcsNyBAQAogICAgICAgICAgICAgZm4gPSBvcy5wYXRoLmpvaW4oc3RkbGliLCBtb2R1bGUpCiAgICAgICAgICAgICB3aXRoIG9wZW4oZm4sICJyIiwgZW5jb2Rpbmc9InV0Zi04IikgYXMgZnA6CiAgICAgICAgICAgICAgICAgc291cmNlID0gZnAucmVhZCgpCi0gICAgICAgICAgICBtb2QgPSBhc3QucGFyc2Uoc291cmNlKQorICAgICAgICAgICAgbW9kID0gYXN0LnBhcnNlKHNvdXJjZSwgZm4pCiAgICAgICAgICAgICBjb21waWxlKG1vZCwgZm4sICJleGVjIikKIAogCkBAIC05NTksMTYgKzk3MCwxNiBAQAogCiAjIyMjIEVWRVJZVEhJTkcgQkVMT1cgSVMgR0VORVJBVEVEICMjIyMjCiBleGVjX3Jlc3VsdHMgPSBbCi0oJ01vZHVsZScsIFsoJ0V4cHInLCAoMSwgMCksICgnTmFtZScsICgxLCAwKSwgJ05vbmUnLCAoJ0xvYWQnLCkpKV0pLAotKCdNb2R1bGUnLCBbKCdGdW5jdGlvbkRlZicsICgxLCAwKSwgJ2YnLCAoJ2FyZ3VtZW50cycsIFtdLCBOb25lLCBOb25lLCBbXSwgTm9uZSwgTm9uZSwgW10sIFtdKSwgWygnUGFzcycsICgxLCA5KSldLCBbXSwgTm9uZSldKSwKLSgnTW9kdWxlJywgWygnRnVuY3Rpb25EZWYnLCAoMSwgMCksICdmJywgKCdhcmd1bWVudHMnLCBbKCdhcmcnLCAnYScsIE5vbmUpXSwgTm9uZSwgTm9uZSwgW10sIE5vbmUsIE5vbmUsIFtdLCBbXSksIFsoJ1Bhc3MnLCAoMSwgMTApKV0sIFtdLCBOb25lKV0pLAotKCdNb2R1bGUnLCBbKCdGdW5jdGlvbkRlZicsICgxLCAwKSwgJ2YnLCAoJ2FyZ3VtZW50cycsIFsoJ2FyZycsICdhJywgTm9uZSldLCBOb25lLCBOb25lLCBbXSwgTm9uZSwgTm9uZSwgWygnTnVtJywgKDEsIDgpLCAwKV0sIFtdKSwgWygnUGFzcycsICgxLCAxMikpXSwgW10sIE5vbmUpXSksCi0oJ01vZHVsZScsIFsoJ0Z1bmN0aW9uRGVmJywgKDEsIDApLCAnZicsICgnYXJndW1lbnRzJywgW10sICdhcmdzJywgTm9uZSwgW10sIE5vbmUsIE5vbmUsIFtdLCBbXSksIFsoJ1Bhc3MnLCAoMSwgMTQpKV0sIFtdLCBOb25lKV0pLAotKCdNb2R1bGUnLCBbKCdGdW5jdGlvbkRlZicsICgxLCAwKSwgJ2YnLCAoJ2FyZ3VtZW50cycsIFtdLCBOb25lLCBOb25lLCBbXSwgJ2t3YXJncycsIE5vbmUsIFtdLCBbXSksIFsoJ1Bhc3MnLCAoMSwgMTcpKV0sIFtdLCBOb25lKV0pLAotKCdNb2R1bGUnLCBbKCdGdW5jdGlvbkRlZicsICgxLCAwKSwgJ2YnLCAoJ2FyZ3VtZW50cycsIFsoJ2FyZycsICdhJywgTm9uZSksICgnYXJnJywgJ2InLCBOb25lKSwgKCdhcmcnLCAnYycsIE5vbmUpLCAoJ2FyZycsICdkJywgTm9uZSksICgnYXJnJywgJ2UnLCBOb25lKV0sICdhcmdzJywgTm9uZSwgW10sICdrd2FyZ3MnLCBOb25lLCBbKCdOdW0nLCAoMSwgMTEpLCAxKSwgKCdOYW1lJywgKDEsIDE2KSwgJ05vbmUnLCAoJ0xvYWQnLCkpLCAoJ0xpc3QnLCAoMSwgMjQpLCBbXSwgKCdMb2FkJywpKSwgKCdEaWN0JywgKDEsIDMwKSwgW10sIFtdKV0sIFtdKSwgWygnUGFzcycsICgxLCA1MikpXSwgW10sIE5vbmUpXSksCisoJ01vZHVsZScsIFsoJ0V4cHInLCAoMSwgMCksICgnTmFtZUNvbnN0YW50JywgKDEsIDApLCBOb25lKSldKSwKKygnTW9kdWxlJywgWygnRnVuY3Rpb25EZWYnLCAoMSwgMCksICdmJywgKCdhcmd1bWVudHMnLCBbXSwgTm9uZSwgW10sIFtdLCBOb25lLCBbXSksIFsoJ1Bhc3MnLCAoMSwgOSkpXSwgW10sIE5vbmUpXSksCisoJ01vZHVsZScsIFsoJ0Z1bmN0aW9uRGVmJywgKDEsIDApLCAnZicsICgnYXJndW1lbnRzJywgWygnYXJnJywgKDEsIDYpLCAnYScsIE5vbmUpXSwgTm9uZSwgW10sIFtdLCBOb25lLCBbXSksIFsoJ1Bhc3MnLCAoMSwgMTApKV0sIFtdLCBOb25lKV0pLAorKCdNb2R1bGUnLCBbKCdGdW5jdGlvbkRlZicsICgxLCAwKSwgJ2YnLCAoJ2FyZ3VtZW50cycsIFsoJ2FyZycsICgxLCA2KSwgJ2EnLCBOb25lKV0sIE5vbmUsIFtdLCBbXSwgTm9uZSwgWygnTnVtJywgKDEsIDgpLCAwKV0pLCBbKCdQYXNzJywgKDEsIDEyKSldLCBbXSwgTm9uZSldKSwKKygnTW9kdWxlJywgWygnRnVuY3Rpb25EZWYnLCAoMSwgMCksICdmJywgKCdhcmd1bWVudHMnLCBbXSwgKCdhcmcnLCAoMSwgNyksICdhcmdzJywgTm9uZSksIFtdLCBbXSwgTm9uZSwgW10pLCBbKCdQYXNzJywgKDEsIDE0KSldLCBbXSwgTm9uZSldKSwKKygnTW9kdWxlJywgWygnRnVuY3Rpb25EZWYnLCAoMSwgMCksICdmJywgKCdhcmd1bWVudHMnLCBbXSwgTm9uZSwgW10sIFtdLCAoJ2FyZycsICgxLCA4KSwgJ2t3YXJncycsIE5vbmUpLCBbXSksIFsoJ1Bhc3MnLCAoMSwgMTcpKV0sIFtdLCBOb25lKV0pLAorKCdNb2R1bGUnLCBbKCdGdW5jdGlvbkRlZicsICgxLCAwKSwgJ2YnLCAoJ2FyZ3VtZW50cycsIFsoJ2FyZycsICgxLCA2KSwgJ2EnLCBOb25lKSwgKCdhcmcnLCAoMSwgOSksICdiJywgTm9uZSksICgnYXJnJywgKDEsIDE0KSwgJ2MnLCBOb25lKSwgKCdhcmcnLCAoMSwgMjIpLCAnZCcsIE5vbmUpLCAoJ2FyZycsICgxLCAyOCksICdlJywgTm9uZSldLCAoJ2FyZycsICgxLCAzNSksICdhcmdzJywgTm9uZSksIFtdLCBbXSwgKCdhcmcnLCAoMSwgNDMpLCAna3dhcmdzJywgTm9uZSksIFsoJ051bScsICgxLCAxMSksIDEpLCAoJ05hbWVDb25zdGFudCcsICgxLCAxNiksIE5vbmUpLCAoJ0xpc3QnLCAoMSwgMjQpLCBbXSwgKCdMb2FkJywpKSwgKCdEaWN0JywgKDEsIDMwKSwgW10sIFtdKV0pLCBbKCdQYXNzJywgKDEsIDUyKSldLCBbXSwgTm9uZSldKSwKICgnTW9kdWxlJywgWygnQ2xhc3NEZWYnLCAoMSwgMCksICdDJywgW10sIFtdLCBOb25lLCBOb25lLCBbKCdQYXNzJywgKDEsIDgpKV0sIFtdKV0pLAogKCdNb2R1bGUnLCBbKCdDbGFzc0RlZicsICgxLCAwKSwgJ0MnLCBbKCdOYW1lJywgKDEsIDgpLCAnb2JqZWN0JywgKCdMb2FkJywpKV0sIFtdLCBOb25lLCBOb25lLCBbKCdQYXNzJywgKDEsIDE3KSldLCBbXSldKSwKLSgnTW9kdWxlJywgWygnRnVuY3Rpb25EZWYnLCAoMSwgMCksICdmJywgKCdhcmd1bWVudHMnLCBbXSwgTm9uZSwgTm9uZSwgW10sIE5vbmUsIE5vbmUsIFtdLCBbXSksIFsoJ1JldHVybicsICgxLCA4KSwgKCdOdW0nLCAoMSwgMTUpLCAxKSldLCBbXSwgTm9uZSldKSwKKygnTW9kdWxlJywgWygnRnVuY3Rpb25EZWYnLCAoMSwgMCksICdmJywgKCdhcmd1bWVudHMnLCBbXSwgTm9uZSwgW10sIFtdLCBOb25lLCBbXSksIFsoJ1JldHVybicsICgxLCA4KSwgKCdOdW0nLCAoMSwgMTUpLCAxKSldLCBbXSwgTm9uZSldKSwKICgnTW9kdWxlJywgWygnRGVsZXRlJywgKDEsIDApLCBbKCdOYW1lJywgKDEsIDQpLCAndicsICgnRGVsJywpKV0pXSksCiAoJ01vZHVsZScsIFsoJ0Fzc2lnbicsICgxLCAwKSwgWygnTmFtZScsICgxLCAwKSwgJ3YnLCAoJ1N0b3JlJywpKV0sICgnTnVtJywgKDEsIDQpLCAxKSldKSwKICgnTW9kdWxlJywgWygnQXVnQXNzaWduJywgKDEsIDApLCAoJ05hbWUnLCAoMSwgMCksICd2JywgKCdTdG9yZScsKSksICgnQWRkJywpLCAoJ051bScsICgxLCA1KSwgMSkpXSksCkBAIC05NzcsNyArOTg4LDcgQEAKICgnTW9kdWxlJywgWygnSWYnLCAoMSwgMCksICgnTmFtZScsICgxLCAzKSwgJ3YnLCAoJ0xvYWQnLCkpLCBbKCdQYXNzJywgKDEsIDUpKV0sIFtdKV0pLAogKCdNb2R1bGUnLCBbKCdXaXRoJywgKDEsIDApLCBbKCd3aXRoaXRlbScsICgnTmFtZScsICgxLCA1KSwgJ3gnLCAoJ0xvYWQnLCkpLCAoJ05hbWUnLCAoMSwgMTApLCAneScsICgnU3RvcmUnLCkpKV0sIFsoJ1Bhc3MnLCAoMSwgMTMpKV0pXSksCiAoJ01vZHVsZScsIFsoJ1dpdGgnLCAoMSwgMCksIFsoJ3dpdGhpdGVtJywgKCdOYW1lJywgKDEsIDUpLCAneCcsICgnTG9hZCcsKSksICgnTmFtZScsICgxLCAxMCksICd5JywgKCdTdG9yZScsKSkpLCAoJ3dpdGhpdGVtJywgKCdOYW1lJywgKDEsIDEzKSwgJ3onLCAoJ0xvYWQnLCkpLCAoJ05hbWUnLCAoMSwgMTgpLCAncScsICgnU3RvcmUnLCkpKV0sIFsoJ1Bhc3MnLCAoMSwgMjEpKV0pXSksCi0oJ01vZHVsZScsIFsoJ1JhaXNlJywgKDEsIDApLCAoJ0NhbGwnLCAoMSwgNiksICgnTmFtZScsICgxLCA2KSwgJ0V4Y2VwdGlvbicsICgnTG9hZCcsKSksIFsoJ1N0cicsICgxLCAxNiksICdzdHJpbmcnKV0sIFtdLCBOb25lLCBOb25lKSwgTm9uZSldKSwKKygnTW9kdWxlJywgWygnUmFpc2UnLCAoMSwgMCksICgnQ2FsbCcsICgxLCAxNSksICgnTmFtZScsICgxLCA2KSwgJ0V4Y2VwdGlvbicsICgnTG9hZCcsKSksIFsoJ1N0cicsICgxLCAxNiksICdzdHJpbmcnKV0sIFtdLCBOb25lLCBOb25lKSwgTm9uZSldKSwKICgnTW9kdWxlJywgWygnVHJ5JywgKDEsIDApLCBbKCdQYXNzJywgKDIsIDIpKV0sIFsoJ0V4Y2VwdEhhbmRsZXInLCAoMywgMCksICgnTmFtZScsICgzLCA3KSwgJ0V4Y2VwdGlvbicsICgnTG9hZCcsKSksIE5vbmUsIFsoJ1Bhc3MnLCAoNCwgMikpXSldLCBbXSwgW10pXSksCiAoJ01vZHVsZScsIFsoJ1RyeScsICgxLCAwKSwgWygnUGFzcycsICgyLCAyKSldLCBbXSwgW10sIFsoJ1Bhc3MnLCAoNCwgMikpXSldKSwKICgnTW9kdWxlJywgWygnQXNzZXJ0JywgKDEsIDApLCAoJ05hbWUnLCAoMSwgNyksICd2JywgKCdMb2FkJywpKSwgTm9uZSldKSwKQEAgLTEwMDIsMjkgKzEwMTMsMjkgQEAKICgnSW50ZXJhY3RpdmUnLCBbKCdFeHByJywgKDEsIDApLCAoJ0Jpbk9wJywgKDEsIDApLCAoJ051bScsICgxLCAwKSwgMSksICgnQWRkJywpLCAoJ051bScsICgxLCAyKSwgMikpKV0pLAogXQogZXZhbF9yZXN1bHRzID0gWwotKCdFeHByZXNzaW9uJywgKCdOYW1lJywgKDEsIDApLCAnTm9uZScsICgnTG9hZCcsKSkpLAorKCdFeHByZXNzaW9uJywgKCdOYW1lQ29uc3RhbnQnLCAoMSwgMCksIE5vbmUpKSwKICgnRXhwcmVzc2lvbicsICgnQm9vbE9wJywgKDEsIDApLCAoJ0FuZCcsKSwgWygnTmFtZScsICgxLCAwKSwgJ2EnLCAoJ0xvYWQnLCkpLCAoJ05hbWUnLCAoMSwgNiksICdiJywgKCdMb2FkJywpKV0pKSwKICgnRXhwcmVzc2lvbicsICgnQmluT3AnLCAoMSwgMCksICgnTmFtZScsICgxLCAwKSwgJ2EnLCAoJ0xvYWQnLCkpLCAoJ0FkZCcsKSwgKCdOYW1lJywgKDEsIDQpLCAnYicsICgnTG9hZCcsKSkpKSwKICgnRXhwcmVzc2lvbicsICgnVW5hcnlPcCcsICgxLCAwKSwgKCdOb3QnLCksICgnTmFtZScsICgxLCA0KSwgJ3YnLCAoJ0xvYWQnLCkpKSksCi0oJ0V4cHJlc3Npb24nLCAoJ0xhbWJkYScsICgxLCAwKSwgKCdhcmd1bWVudHMnLCBbXSwgTm9uZSwgTm9uZSwgW10sIE5vbmUsIE5vbmUsIFtdLCBbXSksICgnTmFtZScsICgxLCA3KSwgJ05vbmUnLCAoJ0xvYWQnLCkpKSksCisoJ0V4cHJlc3Npb24nLCAoJ0xhbWJkYScsICgxLCAwKSwgKCdhcmd1bWVudHMnLCBbXSwgTm9uZSwgW10sIFtdLCBOb25lLCBbXSksICgnTmFtZUNvbnN0YW50JywgKDEsIDcpLCBOb25lKSkpLAogKCdFeHByZXNzaW9uJywgKCdEaWN0JywgKDEsIDApLCBbKCdOdW0nLCAoMSwgMiksIDEpXSwgWygnTnVtJywgKDEsIDQpLCAyKV0pKSwKICgnRXhwcmVzc2lvbicsICgnRGljdCcsICgxLCAwKSwgW10sIFtdKSksCi0oJ0V4cHJlc3Npb24nLCAoJ1NldCcsICgxLCAwKSwgWygnTmFtZScsICgxLCAxKSwgJ05vbmUnLCAoJ0xvYWQnLCkpXSkpLAorKCdFeHByZXNzaW9uJywgKCdTZXQnLCAoMSwgMCksIFsoJ05hbWVDb25zdGFudCcsICgxLCAxKSwgTm9uZSldKSksCiAoJ0V4cHJlc3Npb24nLCAoJ0RpY3QnLCAoMSwgMCksIFsoJ051bScsICgyLCA2KSwgMSldLCBbKCdOdW0nLCAoNCwgMTApLCAyKV0pKSwKICgnRXhwcmVzc2lvbicsICgnTGlzdENvbXAnLCAoMSwgMSksICgnTmFtZScsICgxLCAxKSwgJ2EnLCAoJ0xvYWQnLCkpLCBbKCdjb21wcmVoZW5zaW9uJywgKCdOYW1lJywgKDEsIDcpLCAnYicsICgnU3RvcmUnLCkpLCAoJ05hbWUnLCAoMSwgMTIpLCAnYycsICgnTG9hZCcsKSksIFsoJ05hbWUnLCAoMSwgMTcpLCAnZCcsICgnTG9hZCcsKSldKV0pKSwKICgnRXhwcmVzc2lvbicsICgnR2VuZXJhdG9yRXhwJywgKDEsIDEpLCAoJ05hbWUnLCAoMSwgMSksICdhJywgKCdMb2FkJywpKSwgWygnY29tcHJlaGVuc2lvbicsICgnTmFtZScsICgxLCA3KSwgJ2InLCAoJ1N0b3JlJywpKSwgKCdOYW1lJywgKDEsIDEyKSwgJ2MnLCAoJ0xvYWQnLCkpLCBbKCdOYW1lJywgKDEsIDE3KSwgJ2QnLCAoJ0xvYWQnLCkpXSldKSksCiAoJ0V4cHJlc3Npb24nLCAoJ0NvbXBhcmUnLCAoMSwgMCksICgnTnVtJywgKDEsIDApLCAxKSwgWygnTHQnLCksICgnTHQnLCldLCBbKCdOdW0nLCAoMSwgNCksIDIpLCAoJ051bScsICgxLCA4KSwgMyldKSksCi0oJ0V4cHJlc3Npb24nLCAoJ0NhbGwnLCAoMSwgMCksICgnTmFtZScsICgxLCAwKSwgJ2YnLCAoJ0xvYWQnLCkpLCBbKCdOdW0nLCAoMSwgMiksIDEpLCAoJ051bScsICgxLCA0KSwgMildLCBbKCdrZXl3b3JkJywgJ2MnLCAoJ051bScsICgxLCA4KSwgMykpXSwgKCdOYW1lJywgKDEsIDExKSwgJ2QnLCAoJ0xvYWQnLCkpLCAoJ05hbWUnLCAoMSwgMTUpLCAnZScsICgnTG9hZCcsKSkpKSwKKygnRXhwcmVzc2lvbicsICgnQ2FsbCcsICgxLCAxKSwgKCdOYW1lJywgKDEsIDApLCAnZicsICgnTG9hZCcsKSksIFsoJ051bScsICgxLCAyKSwgMSksICgnTnVtJywgKDEsIDQpLCAyKV0sIFsoJ2tleXdvcmQnLCAnYycsICgnTnVtJywgKDEsIDgpLCAzKSldLCAoJ05hbWUnLCAoMSwgMTEpLCAnZCcsICgnTG9hZCcsKSksICgnTmFtZScsICgxLCAxNSksICdlJywgKCdMb2FkJywpKSkpLAogKCdFeHByZXNzaW9uJywgKCdOdW0nLCAoMSwgMCksIDEwKSksCiAoJ0V4cHJlc3Npb24nLCAoJ1N0cicsICgxLCAwKSwgJ3N0cmluZycpKSwKLSgnRXhwcmVzc2lvbicsICgnQXR0cmlidXRlJywgKDEsIDApLCAoJ05hbWUnLCAoMSwgMCksICdhJywgKCdMb2FkJywpKSwgJ2InLCAoJ0xvYWQnLCkpKSwKLSgnRXhwcmVzc2lvbicsICgnU3Vic2NyaXB0JywgKDEsIDApLCAoJ05hbWUnLCAoMSwgMCksICdhJywgKCdMb2FkJywpKSwgKCdTbGljZScsICgnTmFtZScsICgxLCAyKSwgJ2InLCAoJ0xvYWQnLCkpLCAoJ05hbWUnLCAoMSwgNCksICdjJywgKCdMb2FkJywpKSwgTm9uZSksICgnTG9hZCcsKSkpLAorKCdFeHByZXNzaW9uJywgKCdBdHRyaWJ1dGUnLCAoMSwgMiksICgnTmFtZScsICgxLCAwKSwgJ2EnLCAoJ0xvYWQnLCkpLCAnYicsICgnTG9hZCcsKSkpLAorKCdFeHByZXNzaW9uJywgKCdTdWJzY3JpcHQnLCAoMSwgMiksICgnTmFtZScsICgxLCAwKSwgJ2EnLCAoJ0xvYWQnLCkpLCAoJ1NsaWNlJywgKCdOYW1lJywgKDEsIDIpLCAnYicsICgnTG9hZCcsKSksICgnTmFtZScsICgxLCA0KSwgJ2MnLCAoJ0xvYWQnLCkpLCBOb25lKSwgKCdMb2FkJywpKSksCiAoJ0V4cHJlc3Npb24nLCAoJ05hbWUnLCAoMSwgMCksICd2JywgKCdMb2FkJywpKSksCiAoJ0V4cHJlc3Npb24nLCAoJ0xpc3QnLCAoMSwgMCksIFsoJ051bScsICgxLCAxKSwgMSksICgnTnVtJywgKDEsIDMpLCAyKSwgKCdOdW0nLCAoMSwgNSksIDMpXSwgKCdMb2FkJywpKSksCiAoJ0V4cHJlc3Npb24nLCAoJ0xpc3QnLCAoMSwgMCksIFtdLCAoJ0xvYWQnLCkpKSwKICgnRXhwcmVzc2lvbicsICgnVHVwbGUnLCAoMSwgMCksIFsoJ051bScsICgxLCAwKSwgMSksICgnTnVtJywgKDEsIDIpLCAyKSwgKCdOdW0nLCAoMSwgNCksIDMpXSwgKCdMb2FkJywpKSksCiAoJ0V4cHJlc3Npb24nLCAoJ1R1cGxlJywgKDEsIDEpLCBbKCdOdW0nLCAoMSwgMSksIDEpLCAoJ051bScsICgxLCAzKSwgMiksICgnTnVtJywgKDEsIDUpLCAzKV0sICgnTG9hZCcsKSkpLAogKCdFeHByZXNzaW9uJywgKCdUdXBsZScsICgxLCAwKSwgW10sICgnTG9hZCcsKSkpLAotKCdFeHByZXNzaW9uJywgKCdDYWxsJywgKDEsIDApLCAoJ0F0dHJpYnV0ZScsICgxLCAwKSwgKCdBdHRyaWJ1dGUnLCAoMSwgMCksICgnQXR0cmlidXRlJywgKDEsIDApLCAoJ05hbWUnLCAoMSwgMCksICdhJywgKCdMb2FkJywpKSwgJ2InLCAoJ0xvYWQnLCkpLCAnYycsICgnTG9hZCcsKSksICdkJywgKCdMb2FkJywpKSwgWygnU3Vic2NyaXB0JywgKDEsIDgpLCAoJ0F0dHJpYnV0ZScsICgxLCA4KSwgKCdOYW1lJywgKDEsIDgpLCAnYScsICgnTG9hZCcsKSksICdiJywgKCdMb2FkJywpKSwgKCdTbGljZScsICgnTnVtJywgKDEsIDEyKSwgMSksICgnTnVtJywgKDEsIDE0KSwgMiksIE5vbmUpLCAoJ0xvYWQnLCkpXSwgW10sIE5vbmUsIE5vbmUpKSwKKygnRXhwcmVzc2lvbicsICgnQ2FsbCcsICgxLCA3KSwgKCdBdHRyaWJ1dGUnLCAoMSwgNiksICgnQXR0cmlidXRlJywgKDEsIDQpLCAoJ0F0dHJpYnV0ZScsICgxLCAyKSwgKCdOYW1lJywgKDEsIDApLCAnYScsICgnTG9hZCcsKSksICdiJywgKCdMb2FkJywpKSwgJ2MnLCAoJ0xvYWQnLCkpLCAnZCcsICgnTG9hZCcsKSksIFsoJ1N1YnNjcmlwdCcsICgxLCAxMiksICgnQXR0cmlidXRlJywgKDEsIDEwKSwgKCdOYW1lJywgKDEsIDgpLCAnYScsICgnTG9hZCcsKSksICdiJywgKCdMb2FkJywpKSwgKCdTbGljZScsICgnTnVtJywgKDEsIDEyKSwgMSksICgnTnVtJywgKDEsIDE0KSwgMiksIE5vbmUpLCAoJ0xvYWQnLCkpXSwgW10sIE5vbmUsIE5vbmUpKSwKIF0KIG1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9hc3luY2hhdC5weSBiL0xpYi90ZXN0L3Rlc3RfYXN5bmNoYXQucHkKaW5kZXggYzc5ZmU2Zi4uYjYxNmYzMCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9hc3luY2hhdC5weQorKysgYi9MaWIvdGVzdC90ZXN0X2FzeW5jaGF0LnB5CkBAIC0xNSw2ICsxNSw3IEBACiAKIEhPU1QgPSBzdXBwb3J0LkhPU1QKIFNFUlZFUl9RVUlUID0gYidRVUlUXG4nCitUSU1FT1VUID0gMy4wCiAKIGlmIHRocmVhZGluZzoKICAgICBjbGFzcyBlY2hvX3NlcnZlcih0aHJlYWRpbmcuVGhyZWFkKToKQEAgLTEyMyw3ICsxMjQsOSBAQAogICAgICAgICBjLnB1c2goYiJJJ20gbm90IGRlYWQgeWV0ISIgKyB0ZXJtKQogICAgICAgICBjLnB1c2goU0VSVkVSX1FVSVQpCiAgICAgICAgIGFzeW5jb3JlLmxvb3AodXNlX3BvbGw9c2VsZi51c2Vwb2xsLCBjb3VudD0zMDAsIHRpbWVvdXQ9LjAxKQotICAgICAgICBzLmpvaW4oKQorICAgICAgICBzLmpvaW4odGltZW91dD1USU1FT1VUKQorICAgICAgICBpZiBzLmlzX2FsaXZlKCk6CisgICAgICAgICAgICBzZWxmLmZhaWwoImpvaW4oKSB0aW1lZCBvdXQiKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb250ZW50cywgW2IiaGVsbG8gd29ybGQiLCBiIkknbSBub3QgZGVhZCB5ZXQhIl0pCiAKQEAgLTE1NCw3ICsxNTcsOSBAQAogICAgICAgICBjLnB1c2goZGF0YSkKICAgICAgICAgYy5wdXNoKFNFUlZFUl9RVUlUKQogICAgICAgICBhc3luY29yZS5sb29wKHVzZV9wb2xsPXNlbGYudXNlcG9sbCwgY291bnQ9MzAwLCB0aW1lb3V0PS4wMSkKLSAgICAgICAgcy5qb2luKCkKKyAgICAgICAgcy5qb2luKHRpbWVvdXQ9VElNRU9VVCkKKyAgICAgICAgaWYgcy5pc19hbGl2ZSgpOgorICAgICAgICAgICAgc2VsZi5mYWlsKCJqb2luKCkgdGltZWQgb3V0IikKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29udGVudHMsIFtkYXRhWzp0ZXJtbGVuXV0pCiAKQEAgLTE3NCw3ICsxNzksOSBAQAogICAgICAgICBjLnB1c2goZGF0YSkKICAgICAgICAgYy5wdXNoKFNFUlZFUl9RVUlUKQogICAgICAgICBhc3luY29yZS5sb29wKHVzZV9wb2xsPXNlbGYudXNlcG9sbCwgY291bnQ9MzAwLCB0aW1lb3V0PS4wMSkKLSAgICAgICAgcy5qb2luKCkKKyAgICAgICAgcy5qb2luKHRpbWVvdXQ9VElNRU9VVCkKKyAgICAgICAgaWYgcy5pc19hbGl2ZSgpOgorICAgICAgICAgICAgc2VsZi5mYWlsKCJqb2luKCkgdGltZWQgb3V0IikKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29udGVudHMsIFtdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuYnVmZmVyLCBkYXRhKQpAQCAtMTg2LDcgKzE5Myw5IEBACiAgICAgICAgIHAgPSBhc3luY2hhdC5zaW1wbGVfcHJvZHVjZXIoZGF0YStTRVJWRVJfUVVJVCwgYnVmZmVyX3NpemU9OCkKICAgICAgICAgYy5wdXNoX3dpdGhfcHJvZHVjZXIocCkKICAgICAgICAgYXN5bmNvcmUubG9vcCh1c2VfcG9sbD1zZWxmLnVzZXBvbGwsIGNvdW50PTMwMCwgdGltZW91dD0uMDEpCi0gICAgICAgIHMuam9pbigpCisgICAgICAgIHMuam9pbih0aW1lb3V0PVRJTUVPVVQpCisgICAgICAgIGlmIHMuaXNfYWxpdmUoKToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgiam9pbigpIHRpbWVkIG91dCIpCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvbnRlbnRzLCBbYiJoZWxsbyB3b3JsZCIsIGIiSSdtIG5vdCBkZWFkIHlldCEiXSkKIApAQCAtMTk2LDcgKzIwNSw5IEBACiAgICAgICAgIGRhdGEgPSBiImhlbGxvIHdvcmxkXG5JJ20gbm90IGRlYWQgeWV0IVxuIgogICAgICAgICBjLnB1c2hfd2l0aF9wcm9kdWNlcihkYXRhK1NFUlZFUl9RVUlUKQogICAgICAgICBhc3luY29yZS5sb29wKHVzZV9wb2xsPXNlbGYudXNlcG9sbCwgY291bnQ9MzAwLCB0aW1lb3V0PS4wMSkKLSAgICAgICAgcy5qb2luKCkKKyAgICAgICAgcy5qb2luKHRpbWVvdXQ9VElNRU9VVCkKKyAgICAgICAgaWYgcy5pc19hbGl2ZSgpOgorICAgICAgICAgICAgc2VsZi5mYWlsKCJqb2luKCkgdGltZWQgb3V0IikKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29udGVudHMsIFtiImhlbGxvIHdvcmxkIiwgYiJJJ20gbm90IGRlYWQgeWV0ISJdKQogCkBAIC0yMDcsNyArMjE4LDkgQEAKICAgICAgICAgYy5wdXNoKGIiaGVsbG8gd29ybGRcblxuSSdtIG5vdCBkZWFkIHlldCFcbiIpCiAgICAgICAgIGMucHVzaChTRVJWRVJfUVVJVCkKICAgICAgICAgYXN5bmNvcmUubG9vcCh1c2VfcG9sbD1zZWxmLnVzZXBvbGwsIGNvdW50PTMwMCwgdGltZW91dD0uMDEpCi0gICAgICAgIHMuam9pbigpCisgICAgICAgIHMuam9pbih0aW1lb3V0PVRJTUVPVVQpCisgICAgICAgIGlmIHMuaXNfYWxpdmUoKToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgiam9pbigpIHRpbWVkIG91dCIpCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvbnRlbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgIFtiImhlbGxvIHdvcmxkIiwgYiIiLCBiIkknbSBub3QgZGVhZCB5ZXQhIl0pCkBAIC0yMjYsNyArMjM5LDkgQEAKICAgICAgICAgIyB3aGVyZSB0aGUgc2VydmVyIGVjaG9lcyBhbGwgb2YgaXRzIGRhdGEgYmVmb3JlIHdlIGNhbiBjaGVjayB0aGF0IGl0CiAgICAgICAgICMgZ290IGFueSBkb3duIGJlbG93LgogICAgICAgICBzLnN0YXJ0X3Jlc2VuZF9ldmVudC5zZXQoKQotICAgICAgICBzLmpvaW4oKQorICAgICAgICBzLmpvaW4odGltZW91dD1USU1FT1VUKQorICAgICAgICBpZiBzLmlzX2FsaXZlKCk6CisgICAgICAgICAgICBzZWxmLmZhaWwoImpvaW4oKSB0aW1lZCBvdXQiKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb250ZW50cywgW10pCiAgICAgICAgICMgdGhlIHNlcnZlciBtaWdodCBoYXZlIGJlZW4gYWJsZSB0byBzZW5kIGEgYnl0ZSBvciB0d28gYmFjaywgYnV0IHRoaXMKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfYXN5bmNvcmUucHkgYi9MaWIvdGVzdC90ZXN0X2FzeW5jb3JlLnB5CmluZGV4IDg3OGIyNmMuLmMwMmE5NzYgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfYXN5bmNvcmUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9hc3luY29yZS5weQpAQCAtMjAsNyArMjAsNyBAQAogICAgIHRocmVhZGluZyA9IE5vbmUKIAogSE9TVCA9IHN1cHBvcnQuSE9TVAotCitUSU1FT1VUID0gMwogSEFTX1VOSVhfU09DS0VUUyA9IGhhc2F0dHIoc29ja2V0LCAnQUZfVU5JWCcpCiAKIGNsYXNzIGR1bW15c29ja2V0OgpAQCAtMzk3LDcgKzM5NywxMCBAQAogCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcC5nZXR2YWx1ZSgpLCBkYXRhKjIpCiAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICB0LmpvaW4oKQorICAgICAgICAgICAgdC5qb2luKHRpbWVvdXQ9VElNRU9VVCkKKyAgICAgICAgICAgIGlmIHQuaXNfYWxpdmUoKToKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoImpvaW4oKSB0aW1lZCBvdXQiKQorCiAKIAogY2xhc3MgRGlzcGF0Y2hlcldpdGhTZW5kVGVzdHNfVXNlUG9sbChEaXNwYXRjaGVyV2l0aFNlbmRUZXN0cyk6CkBAIC03NTYsNyArNzU5LDcgQEAKICAgICAgICAgczIgPSBhc3luY29yZS5kaXNwYXRjaGVyKCkKICAgICAgICAgczIuY3JlYXRlX3NvY2tldChzZWxmLmZhbWlseSkKICAgICAgICAgIyBFQUREUklOVVNFIGluZGljYXRlcyB0aGUgc29ja2V0IHdhcyBjb3JyZWN0bHkgYm91bmQKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCBzMi5iaW5kLCAoc2VsZi5hZGRyWzBdLCBwb3J0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgczIuYmluZCwgKHNlbGYuYWRkclswXSwgcG9ydCkpCiAKICAgICBkZWYgdGVzdF9zZXRfcmV1c2VfYWRkcihzZWxmKToKICAgICAgICAgaWYgSEFTX1VOSVhfU09DS0VUUyBhbmQgc2VsZi5mYW1pbHkgPT0gc29ja2V0LkFGX1VOSVg6CkBAIC03NjQsNyArNzY3LDcgQEAKICAgICAgICAgc29jayA9IHNvY2tldC5zb2NrZXQoc2VsZi5mYW1pbHkpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNvY2suc2V0c29ja29wdChzb2NrZXQuU09MX1NPQ0tFVCwgc29ja2V0LlNPX1JFVVNFQUREUiwgMSkKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICB1bml0dGVzdC5za2lwKCJTT19SRVVTRUFERFIgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtIikKICAgICAgICAgZWxzZToKICAgICAgICAgICAgICMgaWYgU09fUkVVU0VBRERSIHN1Y2NlZWRlZCBmb3Igc29jayB3ZSBleHBlY3QgYXN5bmNvcmUKQEAgLTc4OSw3ICs3OTIsMTEgQEAKICAgICAgICAgICAgIHQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1sYW1iZGE6IGFzeW5jb3JlLmxvb3AodGltZW91dD0wLjEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50PTUwMCkpCiAgICAgICAgICAgICB0LnN0YXJ0KCkKLSAgICAgICAgICAgIHNlbGYuYWRkQ2xlYW51cCh0LmpvaW4pCisgICAgICAgICAgICBkZWYgY2xlYW51cCgpOgorICAgICAgICAgICAgICAgIHQuam9pbih0aW1lb3V0PVRJTUVPVVQpCisgICAgICAgICAgICAgICAgaWYgdC5pc19hbGl2ZSgpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoImpvaW4oKSB0aW1lZCBvdXQiKQorICAgICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGNsZWFudXApCiAKICAgICAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNlbGYuZmFtaWx5LCBzb2NrZXQuU09DS19TVFJFQU0pCiAgICAgICAgICAgICBzLnNldHRpbWVvdXQoLjIpCkBAIC03OTcsNyArODA0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QucGFjaygnaWknLCAxLCAwKSkKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzLmNvbm5lY3Qoc2VydmVyLmFkZHJlc3MpCi0gICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICAgICBzLmNsb3NlKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfYmlzZWN0LnB5IGIvTGliL3Rlc3QvdGVzdF9iaXNlY3QucHkKaW5kZXggN2I5YmQxOS4uNTgwYTk2MyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9iaXNlY3QucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9iaXNlY3QucHkKQEAgLTcsNyArNyw3IEBACiBjX2Jpc2VjdCA9IHN1cHBvcnQuaW1wb3J0X2ZyZXNoX21vZHVsZSgnYmlzZWN0JywgZnJlc2g9WydfYmlzZWN0J10pCiAKIGNsYXNzIFJhbmdlKG9iamVjdCk6Ci0gICAgIiIiQSB0cml2aWFsIHJhbmdlKCktbGlrZSBvYmplY3Qgd2l0aG91dCBhbnkgaW50ZWdlciB3aWR0aCBsaW1pdGF0aW9ucy4iIiIKKyAgICAiIiJBIHRyaXZpYWwgcmFuZ2UoKS1saWtlIG9iamVjdCB0aGF0IGhhcyBhbiBpbnNlcnQoKSBtZXRob2QuIiIiCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0YXJ0LCBzdG9wKToKICAgICAgICAgc2VsZi5zdGFydCA9IHN0YXJ0CiAgICAgICAgIHNlbGYuc3RvcCA9IHN0b3AKQEAgLTEyMCwxMCArMTIwLDEwIEBACiAgICAgZGVmIHRlc3RfbmVnYXRpdmVfbG8oc2VsZik6CiAgICAgICAgICMgSXNzdWUgMzMwMQogICAgICAgICBtb2QgPSBzZWxmLm1vZHVsZQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuYmlzZWN0X2xlZnQsIFsxLCAyLCAzXSwgNSwgLTEsIDMpLAotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuYmlzZWN0X3JpZ2h0LCBbMSwgMiwgM10sIDUsIC0xLCAzKSwKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbW9kLmluc29ydF9sZWZ0LCBbMSwgMiwgM10sIDUsIC0xLCAzKSwKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbW9kLmluc29ydF9yaWdodCwgWzEsIDIsIDNdLCA1LCAtMSwgMyksCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG1vZC5iaXNlY3RfbGVmdCwgWzEsIDIsIDNdLCA1LCAtMSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbW9kLmJpc2VjdF9yaWdodCwgWzEsIDIsIDNdLCA1LCAtMSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbW9kLmluc29ydF9sZWZ0LCBbMSwgMiwgM10sIDUsIC0xLCAzKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuaW5zb3J0X3JpZ2h0LCBbMSwgMiwgM10sIDUsIC0xLCAzKQogCiAgICAgZGVmIHRlc3RfbGFyZ2VfcmFuZ2Uoc2VsZik6CiAgICAgICAgICMgSXNzdWUgMTM0OTYKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfYnVpbHRpbi5weSBiL0xpYi90ZXN0L3Rlc3RfYnVpbHRpbi5weQppbmRleCBjMzQyYTQzLi5mNDZmOGQ1IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2J1aWx0aW4ucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9idWlsdGluLnB5CkBAIC00NjQsNiArNDY0LDExIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZXZhbCwgKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFN5bnRheEVycm9yLCBldmFsLCBib21bOjJdICsgYidhJykKIAorICAgICAgICBjbGFzcyBYOgorICAgICAgICAgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBldmFsLCAiZm9vIiwge30sIFgoKSkKKwogICAgIGRlZiB0ZXN0X2dlbmVyYWxfZXZhbChzZWxmKToKICAgICAgICAgIyBUZXN0cyB0aGF0IGdlbmVyYWwgbWFwcGluZ3MgY2FuIGJlIHVzZWQgZm9yIHRoZSBsb2NhbHMgYXJndW1lbnQKIApAQCAtMTQ3NiwxNyArMTQ4MSwxMSBAQAogICAgICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICMgSXNzdWUgIzc5OTQ6IG9iamVjdC5fX2Zvcm1hdF9fIHdpdGggYSBub24tZW1wdHkgZm9ybWF0IHN0cmluZyBpcwogICAgICAgICAjICBkZXByZWNhdGVkCi0gICAgICAgIGRlZiB0ZXN0X2RlcHJlY2F0ZWRfZm9ybWF0X3N0cmluZyhvYmosIGZtdF9zdHIsIHNob3VsZF9yYWlzZV93YXJuaW5nKToKLSAgICAgICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MocmVjb3JkPVRydWUpIGFzIHc6Ci0gICAgICAgICAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCJhbHdheXMiLCBEZXByZWNhdGlvbldhcm5pbmcpCi0gICAgICAgICAgICAgICAgZm9ybWF0KG9iaiwgZm10X3N0cikKLSAgICAgICAgICAgIGlmIHNob3VsZF9yYWlzZV93YXJuaW5nOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHcpLCAxKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZSh3WzBdLm1lc3NhZ2UsIERlcHJlY2F0aW9uV2FybmluZykKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEluKCdvYmplY3QuX19mb3JtYXRfXyB3aXRoIGEgbm9uLWVtcHR5IGZvcm1hdCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RyaW5nJywgc3RyKHdbMF0ubWVzc2FnZSkpCisgICAgICAgIGRlZiB0ZXN0X2RlcHJlY2F0ZWRfZm9ybWF0X3N0cmluZyhvYmosIGZtdF9zdHIsIHNob3VsZF9yYWlzZSk6CisgICAgICAgICAgICBpZiBzaG91bGRfcmFpc2U6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBmb3JtYXQsIG9iaiwgZm10X3N0cikKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odyksIDApCisgICAgICAgICAgICAgICAgZm9ybWF0KG9iaiwgZm10X3N0cikKIAogICAgICAgICBmbXRfc3RycyA9IFsnJywgJ3MnXQogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2J5dGVzLnB5IGIvTGliL3Rlc3QvdGVzdF9ieXRlcy5weQppbmRleCAzNTIwZTgzLi5mMTJmOTExIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2J5dGVzLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfYnl0ZXMucHkKQEAgLTI4OCw4ICsyODgsMjIgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi50eXBlMnRlc3QoYiIiKS5qb2luKGxzdCksIGIiYWJjIikKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi50eXBlMnRlc3QoYiIiKS5qb2luKHR1cGxlKGxzdCkpLCBiImFiYyIpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudHlwZTJ0ZXN0KGIiIikuam9pbihpdGVyKGxzdCkpLCBiImFiYyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi50eXBlMnRlc3QoYiIuIikuam9pbihbYiJhYiIsIGIiY2QiXSksIGIiYWIuY2QiKQotICAgICAgICAjIFhYWCBtb3JlLi4uCisgICAgICAgIGRvdF9qb2luID0gc2VsZi50eXBlMnRlc3QoYiIuOiIpLmpvaW4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkb3Rfam9pbihbYiJhYiIsIGIiY2QiXSksIGIiYWIuOmNkIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkb3Rfam9pbihbbWVtb3J5dmlldyhiImFiIiksIGIiY2QiXSksIGIiYWIuOmNkIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkb3Rfam9pbihbYiJhYiIsIG1lbW9yeXZpZXcoYiJjZCIpXSksIGIiYWIuOmNkIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkb3Rfam9pbihbYnl0ZWFycmF5KGIiYWIiKSwgYiJjZCJdKSwgYiJhYi46Y2QiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRvdF9qb2luKFtiImFiIiwgYnl0ZWFycmF5KGIiY2QiKV0pLCBiImFiLjpjZCIpCisgICAgICAgICMgU3RyZXNzIGl0IHdpdGggbWFueSBpdGVtcworICAgICAgICBzZXEgPSBbYiJhYmMiXSAqIDEwMDAKKyAgICAgICAgZXhwZWN0ZWQgPSBiImFiYyIgKyBiIi46YWJjIiAqIDk5OQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRvdF9qb2luKHNlcSksIGV4cGVjdGVkKQorICAgICAgICAjIEVycm9yIGhhbmRsaW5nIGFuZCBjbGVhbnVwIHdoZW4gc29tZSBpdGVtIGluIHRoZSBtaWRkbGUgb2YgdGhlCisgICAgICAgICMgc2VxdWVuY2UgaGFzIHRoZSB3cm9uZyB0eXBlLgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICBkb3Rfam9pbihbYnl0ZWFycmF5KGIiYWIiKSwgImNkIiwgYiJlZiJdKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICBkb3Rfam9pbihbbWVtb3J5dmlldyhiImFiIiksICJjZCIsIGIiZWYiXSkKIAogICAgIGRlZiB0ZXN0X2NvdW50KHNlbGYpOgogICAgICAgICBiID0gc2VsZi50eXBlMnRlc3QoYidtaXNzaXNzaXBwaScpCkBAIC03NTksNyArNzczLDcgQEAKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBvcy5yZW1vdmUodGZuKQotICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgcGFzcwogCiAgICAgZGVmIHRlc3RfcmV2ZXJzZShzZWxmKToKQEAgLTEyNzQsNiArMTI4OCwxMSBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2YWwsIG5ld3ZhbCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh2YWwgaXMgbm90IG5ld3ZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByKycgcmV0dXJuZWQgdmFsIG9uIGEgbXV0YWJsZSBvYmplY3QnKQorICAgICAgICBzZXAgPSBzZWxmLm1hcnNoYWwoYicnKQorICAgICAgICBuZXd2YWwgPSBzZXAuam9pbihbdmFsXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2YWwsIG5ld3ZhbCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh2YWwsIG5ld3ZhbCkKKwogCiBjbGFzcyBGaXhlZFN0cmluZ1Rlc3QodGVzdC5zdHJpbmdfdGVzdHMuQmFzZVRlc3QpOgogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2J6Mi5weSBiL0xpYi90ZXN0L3Rlc3RfYnoyLnB5CmluZGV4IDkxMmZhYzEuLjcwOTBjZDYgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfYnoyLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfYnoyLnB5CkBAIC0xLDYgKzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0Ci1mcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgVEVTVEZOLCBiaWdtZW10ZXN0LCBfNEcKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBiaWdtZW10ZXN0LCBfNEcKIAogaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIGlvIGltcG9ydCBCeXRlc0lPCkBAIC0xOCwxMCArMTgsMTAgQEAKIGJ6MiA9IHN1cHBvcnQuaW1wb3J0X21vZHVsZSgnYnoyJykKIGZyb20gYnoyIGltcG9ydCBCWjJGaWxlLCBCWjJDb21wcmVzc29yLCBCWjJEZWNvbXByZXNzb3IKIAotaGFzX2NtZGxpbmVfYnVuemlwMiA9IHN5cy5wbGF0Zm9ybSBub3QgaW4gKCJ3aW4zMiIsICJvczJlbXgiKQogCiBjbGFzcyBCYXNlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgIkJhc2UgZm9yIG90aGVyIHRlc3RjYXNlcy4iCisKICAgICBURVhUX0xJTkVTID0gWwogICAgICAgICBiJ3Jvb3Q6eDowOjA6cm9vdDovcm9vdDovYmluL2Jhc2hcbicsCiAgICAgICAgIGInYmluOng6MToxOmJpbjovYmluOlxuJywKQEAgLTUwLDEzICs1MCwxNyBAQAogICAgIEVNUFRZX0RBVEEgPSBiJ0JaaDlceDE3ckU4UFx4OTBceDAwXHgwMFx4MDBceDAwJwogCiAgICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmZpbGVuYW1lID0gVEVTVEZOCisgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBzdXBwb3J0LlRFU1RGTgogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShzZWxmLmZpbGVuYW1lKToKICAgICAgICAgICAgIG9zLnVubGluayhzZWxmLmZpbGVuYW1lKQogCi0gICAgaWYgaGFzX2NtZGxpbmVfYnVuemlwMjoKKyAgICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKKyAgICAgICAgIyBidW56aXAyIGlzbid0IGF2YWlsYWJsZSB0byBydW4gb24gV2luZG93cy4KKyAgICAgICAgZGVmIGRlY29tcHJlc3Moc2VsZiwgZGF0YSk6CisgICAgICAgICAgICByZXR1cm4gYnoyLmRlY29tcHJlc3MoZGF0YSkKKyAgICBlbHNlOgogICAgICAgICBkZWYgZGVjb21wcmVzcyhzZWxmLCBkYXRhKToKICAgICAgICAgICAgIHBvcCA9IHN1YnByb2Nlc3MuUG9wZW4oImJ1bnppcDIiLCBzaGVsbD1UcnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsCkBAIC03MCwzMSArNzQsMjEgQEAKICAgICAgICAgICAgICAgICByZXQgPSBiejIuZGVjb21wcmVzcyhkYXRhKQogICAgICAgICAgICAgcmV0dXJuIHJldAogCi0gICAgZWxzZToKLSAgICAgICAgIyBidW56aXAyIGlzbid0IGF2YWlsYWJsZSB0byBydW4gb24gV2luZG93cy4KLSAgICAgICAgZGVmIGRlY29tcHJlc3Moc2VsZiwgZGF0YSk6Ci0gICAgICAgICAgICByZXR1cm4gYnoyLmRlY29tcHJlc3MoZGF0YSkKIAogY2xhc3MgQloyRmlsZVRlc3QoQmFzZVRlc3QpOgotICAgICJUZXN0IEJaMkZpbGUgdHlwZSBtaXNjZWxsYW5lb3VzIG1ldGhvZHMuIgorICAgICJUZXN0IHRoZSBCWjJGaWxlIGNsYXNzLiIKIAogICAgIGRlZiBjcmVhdGVUZW1wRmlsZShzZWxmLCBzdHJlYW1zPTEpOgogICAgICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgIndiIikgYXMgZjoKICAgICAgICAgICAgIGYud3JpdGUoc2VsZi5EQVRBICogc3RyZWFtcykKIAogICAgIGRlZiB0ZXN0QmFkQXJncyhzZWxmKToKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgotICAgICAgICAgICAgQloyRmlsZSgxMjMuNDU2KQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgotICAgICAgICAgICAgQloyRmlsZSgiL2Rldi9udWxsIiwgInoiKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgotICAgICAgICAgICAgQloyRmlsZSgiL2Rldi9udWxsIiwgInJ4IikKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKLSAgICAgICAgICAgIEJaMkZpbGUoIi9kZXYvbnVsbCIsICJyYnQiKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgotICAgICAgICAgICAgQloyRmlsZSgiL2Rldi9udWxsIiwgY29tcHJlc3NsZXZlbD0wKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgotICAgICAgICAgICAgQloyRmlsZSgiL2Rldi9udWxsIiwgY29tcHJlc3NsZXZlbD0xMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBCWjJGaWxlLCAxMjMuNDU2KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBCWjJGaWxlLCAiL2Rldi9udWxsIiwgInoiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBCWjJGaWxlLCAiL2Rldi9udWxsIiwgInJ4IikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgQloyRmlsZSwgIi9kZXYvbnVsbCIsICJyYnQiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBCWjJGaWxlLCAiL2Rldi9udWxsIiwgY29tcHJlc3NsZXZlbD0wKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBCWjJGaWxlLCAiL2Rldi9udWxsIiwgY29tcHJlc3NsZXZlbD0xMCkKIAogICAgIGRlZiB0ZXN0UmVhZChzZWxmKToKICAgICAgICAgc2VsZi5jcmVhdGVUZW1wRmlsZSgpCkBAIC0yMTUsOSArMjA5LDggQEAKICAgICAgICAgc2VsZi5jcmVhdGVUZW1wRmlsZSgpCiAgICAgICAgIGJ6MmYgPSBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpCiAgICAgICAgIGJ6MmYuY2xvc2UoKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBiejJmLl9fbmV4dF9fKQotICAgICAgICAjIFRoaXMgY2FsbCB3aWxsIGRlYWRsb2NrIGlmIHRoZSBhYm92ZSAuX19uZXh0X18gY2FsbCBmYWlsZWQgdG8KLSAgICAgICAgIyByZWxlYXNlIHRoZSBsb2NrLgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBuZXh0LCBiejJmKQorICAgICAgICAjIFRoaXMgY2FsbCB3aWxsIGRlYWRsb2NrIGlmIHRoZSBhYm92ZSBjYWxsIGZhaWxlZCB0byByZWxlYXNlIHRoZSBsb2NrLgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBiejJmLnJlYWRsaW5lcykKIAogICAgIGRlZiB0ZXN0V3JpdGUoc2VsZik6CkBAIC0yNjEsOCArMjU0LDggQEAKICAgICAgICAgICAgIGJ6MmYud3JpdGUoYiJhYmMiKQogCiAgICAgICAgIHdpdGggQloyRmlsZShzZWxmLmZpbGVuYW1lLCAiciIpIGFzIGJ6MmY6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBiejJmLndyaXRlLCBiImEiKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgYnoyZi53cml0ZWxpbmVzLCBbYiJhIl0pCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBiejJmLndyaXRlLCBiImEiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgYnoyZi53cml0ZWxpbmVzLCBbYiJhIl0pCiAKICAgICBkZWYgdGVzdEFwcGVuZChzZWxmKToKICAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUsICJ3IikgYXMgYnoyZjoKQEAgLTM4MCw3ICszNzMsNyBAQAogICAgICAgICAgICAgYnoyZi5jbG9zZSgpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGJ6MmYuc2Vla2FibGUpCiAKLSAgICAgICAgYnoyZiA9IEJaMkZpbGUoQnl0ZXNJTygpLCBtb2RlPSJ3IikKKyAgICAgICAgYnoyZiA9IEJaMkZpbGUoQnl0ZXNJTygpLCAidyIpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYnoyZi5zZWVrYWJsZSgpKQogICAgICAgICBmaW5hbGx5OgpAQCAtNDA2LDcgKzM5OSw3IEBACiAgICAgICAgICAgICBiejJmLmNsb3NlKCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYnoyZi5yZWFkYWJsZSkKIAotICAgICAgICBiejJmID0gQloyRmlsZShCeXRlc0lPKCksIG1vZGU9InciKQorICAgICAgICBiejJmID0gQloyRmlsZShCeXRlc0lPKCksICJ3IikKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShiejJmLnJlYWRhYmxlKCkpCiAgICAgICAgIGZpbmFsbHk6CkBAIC00MjMsNyArNDE2LDcgQEAKICAgICAgICAgICAgIGJ6MmYuY2xvc2UoKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBiejJmLndyaXRhYmxlKQogCi0gICAgICAgIGJ6MmYgPSBCWjJGaWxlKEJ5dGVzSU8oKSwgbW9kZT0idyIpCisgICAgICAgIGJ6MmYgPSBCWjJGaWxlKEJ5dGVzSU8oKSwgInciKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYnoyZi53cml0YWJsZSgpKQogICAgICAgICBmaW5hbGx5OgpAQCAtNDM3LDcgKzQzMCw3IEBACiAgICAgICAgICAgICBkZWwgbwogCiAgICAgZGVmIHRlc3RPcGVuTm9uZXhpc3RlbnQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIEJaMkZpbGUsICIvbm9uL2V4aXN0ZW50IikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgQloyRmlsZSwgIi9ub24vZXhpc3RlbnQiKQogCiAgICAgZGVmIHRlc3RSZWFkbGluZXNOb05ld2xpbmUoc2VsZik6CiAgICAgICAgICMgSXNzdWUgIzExOTEwNDM6IHJlYWRsaW5lcygpIGZhaWxzIG9uIGEgZmlsZSBjb250YWluaW5nIG5vIG5ld2xpbmUuCkBAIC00NzcsNyArNDcwLDcgQEAKICAgICAgICAgIyBJc3N1ZSAjNzIwNTogVXNpbmcgYSBCWjJGaWxlIGZyb20gc2V2ZXJhbCB0aHJlYWRzIHNob3VsZG4ndCBkZWFkbG9jay4KICAgICAgICAgZGF0YSA9IGIiMSIgKiAyKioyMAogICAgICAgICBudGhyZWFkcyA9IDEwCi0gICAgICAgIHdpdGggYnoyLkJaMkZpbGUoc2VsZi5maWxlbmFtZSwgJ3diJykgYXMgZjoKKyAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUsICd3YicpIGFzIGY6CiAgICAgICAgICAgICBkZWYgY29tcCgpOgogICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDUpOgogICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGRhdGEpCkBAIC00ODgsMjggKzQ4MSwyNyBAQAogICAgICAgICAgICAgICAgIHQuam9pbigpCiAKICAgICBkZWYgdGVzdFdpdGhvdXRUaHJlYWRpbmcoc2VsZik6Ci0gICAgICAgIGJ6MiA9IHN1cHBvcnQuaW1wb3J0X2ZyZXNoX21vZHVsZSgiYnoyIiwgYmxvY2tlZD0oInRocmVhZGluZyIsKSkKLSAgICAgICAgd2l0aCBiejIuQloyRmlsZShzZWxmLmZpbGVuYW1lLCAid2IiKSBhcyBmOgorICAgICAgICBtb2R1bGUgPSBzdXBwb3J0LmltcG9ydF9mcmVzaF9tb2R1bGUoImJ6MiIsIGJsb2NrZWQ9KCJ0aHJlYWRpbmciLCkpCisgICAgICAgIHdpdGggbW9kdWxlLkJaMkZpbGUoc2VsZi5maWxlbmFtZSwgIndiIikgYXMgZjoKICAgICAgICAgICAgIGYud3JpdGUoYiJhYmMiKQotICAgICAgICB3aXRoIGJ6Mi5CWjJGaWxlKHNlbGYuZmlsZW5hbWUsICJyYiIpIGFzIGY6CisgICAgICAgIHdpdGggbW9kdWxlLkJaMkZpbGUoc2VsZi5maWxlbmFtZSwgInJiIikgYXMgZjoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIGIiYWJjIikKIAogICAgIGRlZiB0ZXN0TWl4ZWRJdGVyYXRpb25BbmRSZWFkcyhzZWxmKToKICAgICAgICAgc2VsZi5jcmVhdGVUZW1wRmlsZSgpCiAgICAgICAgIGxpbmVsZW4gPSBsZW4oc2VsZi5URVhUX0xJTkVTWzBdKQogICAgICAgICBoYWxmbGVuID0gbGluZWxlbiAvLyAyCi0gICAgICAgIHdpdGggYnoyLkJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKKyAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpIGFzIGJ6MmY6CiAgICAgICAgICAgICBiejJmLnJlYWQoaGFsZmxlbikKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV4dChiejJmKSwgc2VsZi5URVhUX0xJTkVTWzBdW2hhbGZsZW46XSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKCksIHNlbGYuVEVYVFtsaW5lbGVuOl0pCi0gICAgICAgIHdpdGggYnoyLkJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKKyAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpIGFzIGJ6MmY6CiAgICAgICAgICAgICBiejJmLnJlYWRsaW5lKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV4dChiejJmKSwgc2VsZi5URVhUX0xJTkVTWzFdKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiejJmLnJlYWRsaW5lKCksIHNlbGYuVEVYVF9MSU5FU1syXSkKLSAgICAgICAgd2l0aCBiejIuQloyRmlsZShzZWxmLmZpbGVuYW1lKSBhcyBiejJmOgorICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKICAgICAgICAgICAgIGJ6MmYucmVhZGxpbmVzKCkKLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU3RvcEl0ZXJhdGlvbik6Ci0gICAgICAgICAgICAgICAgbmV4dChiejJmKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3RvcEl0ZXJhdGlvbiwgbmV4dCwgYnoyZikKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkbGluZXMoKSwgW10pCiAKICAgICBkZWYgdGVzdE11bHRpU3RyZWFtT3JkZXJpbmcoc2VsZik6CkBAIC01NzcsNiArNTY5LDIwIEBACiAgICAgICAgICAgICAgICAgYnoyZi5zZWVrKC0xNTAsIDEpCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiejJmLnJlYWQoKSwgc2VsZi5URVhUWzUwMC0xNTA6XSkKIAorICAgIGRlZiB0ZXN0X3JlYWRfdHJ1bmNhdGVkKHNlbGYpOgorICAgICAgICAjIERyb3AgdGhlIGVvc19tYWdpYyBmaWVsZCAoNiBieXRlcykgYW5kIENSQyAoNCBieXRlcykuCisgICAgICAgIHRydW5jYXRlZCA9IHNlbGYuREFUQVs6LTEwXQorICAgICAgICB3aXRoIEJaMkZpbGUoQnl0ZXNJTyh0cnVuY2F0ZWQpKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRU9GRXJyb3IsIGYucmVhZCkKKyAgICAgICAgd2l0aCBCWjJGaWxlKEJ5dGVzSU8odHJ1bmNhdGVkKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKGxlbihzZWxmLlRFWFQpKSwgc2VsZi5URVhUKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRU9GRXJyb3IsIGYucmVhZCwgMSkKKyAgICAgICAgIyBJbmNvbXBsZXRlIDQtYnl0ZSBmaWxlIGhlYWRlciwgYW5kIGJsb2NrIGhlYWRlciBvZiBhdCBsZWFzdCAxNDYgYml0cy4KKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMjIpOgorICAgICAgICAgICAgd2l0aCBCWjJGaWxlKEJ5dGVzSU8odHJ1bmNhdGVkWzppXSkpIGFzIGY6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRU9GRXJyb3IsIGYucmVhZCwgMSkKKworCiBjbGFzcyBCWjJDb21wcmVzc29yVGVzdChCYXNlVGVzdCk6CiAgICAgZGVmIHRlc3RDb21wcmVzcyhzZWxmKToKICAgICAgICAgYnoyYyA9IEJaMkNvbXByZXNzb3IoKQpAQCAtNzAzLDk3ICs3MDksMTAyIEBACiAKIAogY2xhc3MgT3BlblRlc3QoQmFzZVRlc3QpOgorICAgICJUZXN0IHRoZSBvcGVuIGZ1bmN0aW9uLiIKKworICAgIGRlZiBvcGVuKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHJldHVybiBiejIub3BlbigqYXJncywgKiprd2FyZ3MpCisKICAgICBkZWYgdGVzdF9iaW5hcnlfbW9kZXMoc2VsZik6Ci0gICAgICAgIHdpdGggYnoyLm9wZW4oc2VsZi5maWxlbmFtZSwgIndiIikgYXMgZjoKKyAgICAgICAgd2l0aCBzZWxmLm9wZW4oc2VsZi5maWxlbmFtZSwgIndiIikgYXMgZjoKICAgICAgICAgICAgIGYud3JpdGUoc2VsZi5URVhUKQogICAgICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgInJiIikgYXMgZjoKLSAgICAgICAgICAgIGZpbGVfZGF0YSA9IGJ6Mi5kZWNvbXByZXNzKGYucmVhZCgpKQorICAgICAgICAgICAgZmlsZV9kYXRhID0gc2VsZi5kZWNvbXByZXNzKGYucmVhZCgpKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlX2RhdGEsIHNlbGYuVEVYVCkKLSAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAicmIiKSBhcyBmOgorICAgICAgICB3aXRoIHNlbGYub3BlbihzZWxmLmZpbGVuYW1lLCAicmIiKSBhcyBmOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgc2VsZi5URVhUKQotICAgICAgICB3aXRoIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJhYiIpIGFzIGY6CisgICAgICAgIHdpdGggc2VsZi5vcGVuKHNlbGYuZmlsZW5hbWUsICJhYiIpIGFzIGY6CiAgICAgICAgICAgICBmLndyaXRlKHNlbGYuVEVYVCkKICAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5hbWUsICJyYiIpIGFzIGY6Ci0gICAgICAgICAgICBmaWxlX2RhdGEgPSBiejIuZGVjb21wcmVzcyhmLnJlYWQoKSkKKyAgICAgICAgICAgIGZpbGVfZGF0YSA9IHNlbGYuZGVjb21wcmVzcyhmLnJlYWQoKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZV9kYXRhLCBzZWxmLlRFWFQgKiAyKQogCiAgICAgZGVmIHRlc3RfaW1wbGljaXRfYmluYXJ5X21vZGVzKHNlbGYpOgogICAgICAgICAjIFRlc3QgaW1wbGljaXQgYmluYXJ5IG1vZGVzIChubyAiYiIgb3IgInQiIGluIG1vZGUgc3RyaW5nKS4KLSAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAidyIpIGFzIGY6CisgICAgICAgIHdpdGggc2VsZi5vcGVuKHNlbGYuZmlsZW5hbWUsICJ3IikgYXMgZjoKICAgICAgICAgICAgIGYud3JpdGUoc2VsZi5URVhUKQogICAgICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgInJiIikgYXMgZjoKLSAgICAgICAgICAgIGZpbGVfZGF0YSA9IGJ6Mi5kZWNvbXByZXNzKGYucmVhZCgpKQorICAgICAgICAgICAgZmlsZV9kYXRhID0gc2VsZi5kZWNvbXByZXNzKGYucmVhZCgpKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlX2RhdGEsIHNlbGYuVEVYVCkKLSAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAiciIpIGFzIGY6CisgICAgICAgIHdpdGggc2VsZi5vcGVuKHNlbGYuZmlsZW5hbWUsICJyIikgYXMgZjoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIHNlbGYuVEVYVCkKLSAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAiYSIpIGFzIGY6CisgICAgICAgIHdpdGggc2VsZi5vcGVuKHNlbGYuZmlsZW5hbWUsICJhIikgYXMgZjoKICAgICAgICAgICAgIGYud3JpdGUoc2VsZi5URVhUKQogICAgICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgInJiIikgYXMgZjoKLSAgICAgICAgICAgIGZpbGVfZGF0YSA9IGJ6Mi5kZWNvbXByZXNzKGYucmVhZCgpKQorICAgICAgICAgICAgZmlsZV9kYXRhID0gc2VsZi5kZWNvbXByZXNzKGYucmVhZCgpKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlX2RhdGEsIHNlbGYuVEVYVCAqIDIpCiAKICAgICBkZWYgdGVzdF90ZXh0X21vZGVzKHNlbGYpOgogICAgICAgICB0ZXh0ID0gc2VsZi5URVhULmRlY29kZSgiYXNjaWkiKQogICAgICAgICB0ZXh0X25hdGl2ZV9lb2wgPSB0ZXh0LnJlcGxhY2UoIlxuIiwgb3MubGluZXNlcCkKLSAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAid3QiKSBhcyBmOgorICAgICAgICB3aXRoIHNlbGYub3BlbihzZWxmLmZpbGVuYW1lLCAid3QiKSBhcyBmOgogICAgICAgICAgICAgZi53cml0ZSh0ZXh0KQogICAgICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgInJiIikgYXMgZjoKLSAgICAgICAgICAgIGZpbGVfZGF0YSA9IGJ6Mi5kZWNvbXByZXNzKGYucmVhZCgpKS5kZWNvZGUoImFzY2lpIikKKyAgICAgICAgICAgIGZpbGVfZGF0YSA9IHNlbGYuZGVjb21wcmVzcyhmLnJlYWQoKSkuZGVjb2RlKCJhc2NpaSIpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVfZGF0YSwgdGV4dF9uYXRpdmVfZW9sKQotICAgICAgICB3aXRoIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJydCIpIGFzIGY6CisgICAgICAgIHdpdGggc2VsZi5vcGVuKHNlbGYuZmlsZW5hbWUsICJydCIpIGFzIGY6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCB0ZXh0KQotICAgICAgICB3aXRoIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJhdCIpIGFzIGY6CisgICAgICAgIHdpdGggc2VsZi5vcGVuKHNlbGYuZmlsZW5hbWUsICJhdCIpIGFzIGY6CiAgICAgICAgICAgICBmLndyaXRlKHRleHQpCiAgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVuYW1lLCAicmIiKSBhcyBmOgotICAgICAgICAgICAgZmlsZV9kYXRhID0gYnoyLmRlY29tcHJlc3MoZi5yZWFkKCkpLmRlY29kZSgiYXNjaWkiKQorICAgICAgICAgICAgZmlsZV9kYXRhID0gc2VsZi5kZWNvbXByZXNzKGYucmVhZCgpKS5kZWNvZGUoImFzY2lpIikKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZV9kYXRhLCB0ZXh0X25hdGl2ZV9lb2wgKiAyKQogCiAgICAgZGVmIHRlc3RfZmlsZW9iaihzZWxmKToKLSAgICAgICAgd2l0aCBiejIub3BlbihCeXRlc0lPKHNlbGYuREFUQSksICJyIikgYXMgZjoKKyAgICAgICAgd2l0aCBzZWxmLm9wZW4oQnl0ZXNJTyhzZWxmLkRBVEEpLCAiciIpIGFzIGY6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBzZWxmLlRFWFQpCi0gICAgICAgIHdpdGggYnoyLm9wZW4oQnl0ZXNJTyhzZWxmLkRBVEEpLCAicmIiKSBhcyBmOgorICAgICAgICB3aXRoIHNlbGYub3BlbihCeXRlc0lPKHNlbGYuREFUQSksICJyYiIpIGFzIGY6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBzZWxmLlRFWFQpCiAgICAgICAgIHRleHQgPSBzZWxmLlRFWFQuZGVjb2RlKCJhc2NpaSIpCi0gICAgICAgIHdpdGggYnoyLm9wZW4oQnl0ZXNJTyhzZWxmLkRBVEEpLCAicnQiKSBhcyBmOgorICAgICAgICB3aXRoIHNlbGYub3BlbihCeXRlc0lPKHNlbGYuREFUQSksICJydCIpIGFzIGY6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCB0ZXh0KQogCiAgICAgZGVmIHRlc3RfYmFkX3BhcmFtcyhzZWxmKToKICAgICAgICAgIyBUZXN0IGludmFsaWQgcGFyYW1ldGVyIGNvbWJpbmF0aW9ucy4KLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKLSAgICAgICAgICAgIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJ3YnQiKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgotICAgICAgICAgICAgYnoyLm9wZW4oc2VsZi5maWxlbmFtZSwgInJiIiwgZW5jb2Rpbmc9InV0Zi04IikKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKLSAgICAgICAgICAgIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJyYiIsIGVycm9ycz0iaWdub3JlIikKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKLSAgICAgICAgICAgIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJyYiIsIG5ld2xpbmU9IlxuIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5vcGVuLCBzZWxmLmZpbGVuYW1lLCAid2J0IikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5vcGVuLCBzZWxmLmZpbGVuYW1lLCAicmIiLCBlbmNvZGluZz0idXRmLTgiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm9wZW4sIHNlbGYuZmlsZW5hbWUsICJyYiIsIGVycm9ycz0iaWdub3JlIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5vcGVuLCBzZWxmLmZpbGVuYW1lLCAicmIiLCBuZXdsaW5lPSJcbiIpCiAKICAgICBkZWYgdGVzdF9lbmNvZGluZyhzZWxmKToKICAgICAgICAgIyBUZXN0IG5vbi1kZWZhdWx0IGVuY29kaW5nLgogICAgICAgICB0ZXh0ID0gc2VsZi5URVhULmRlY29kZSgiYXNjaWkiKQogICAgICAgICB0ZXh0X25hdGl2ZV9lb2wgPSB0ZXh0LnJlcGxhY2UoIlxuIiwgb3MubGluZXNlcCkKLSAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAid3QiLCBlbmNvZGluZz0idXRmLTE2LWxlIikgYXMgZjoKKyAgICAgICAgd2l0aCBzZWxmLm9wZW4oc2VsZi5maWxlbmFtZSwgInd0IiwgZW5jb2Rpbmc9InV0Zi0xNi1sZSIpIGFzIGY6CiAgICAgICAgICAgICBmLndyaXRlKHRleHQpCiAgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVuYW1lLCAicmIiKSBhcyBmOgotICAgICAgICAgICAgZmlsZV9kYXRhID0gYnoyLmRlY29tcHJlc3MoZi5yZWFkKCkpLmRlY29kZSgidXRmLTE2LWxlIikKKyAgICAgICAgICAgIGZpbGVfZGF0YSA9IHNlbGYuZGVjb21wcmVzcyhmLnJlYWQoKSkuZGVjb2RlKCJ1dGYtMTYtbGUiKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlX2RhdGEsIHRleHRfbmF0aXZlX2VvbCkKLSAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAicnQiLCBlbmNvZGluZz0idXRmLTE2LWxlIikgYXMgZjoKKyAgICAgICAgd2l0aCBzZWxmLm9wZW4oc2VsZi5maWxlbmFtZSwgInJ0IiwgZW5jb2Rpbmc9InV0Zi0xNi1sZSIpIGFzIGY6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCB0ZXh0KQogCiAgICAgZGVmIHRlc3RfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcihzZWxmKToKICAgICAgICAgIyBUZXN0IHdpdGggbm9uLWRlZmF1bHQgZW5jb2RpbmcgZXJyb3IgaGFuZGxlci4KLSAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAid2IiKSBhcyBmOgorICAgICAgICB3aXRoIHNlbGYub3BlbihzZWxmLmZpbGVuYW1lLCAid2IiKSBhcyBmOgogICAgICAgICAgICAgZi53cml0ZShiImZvb1x4ZmZiYXIiKQotICAgICAgICB3aXRoIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJydCIsIGVuY29kaW5nPSJhc2NpaSIsIGVycm9ycz0iaWdub3JlIikgXAorICAgICAgICB3aXRoIHNlbGYub3BlbihzZWxmLmZpbGVuYW1lLCAicnQiLCBlbmNvZGluZz0iYXNjaWkiLCBlcnJvcnM9Imlnbm9yZSIpIFwKICAgICAgICAgICAgICAgICBhcyBmOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgImZvb2JhciIpCiAKICAgICBkZWYgdGVzdF9uZXdsaW5lKHNlbGYpOgogICAgICAgICAjIFRlc3Qgd2l0aCBleHBsaWNpdCBuZXdsaW5lICh1bml2ZXJzYWwgbmV3bGluZSBtb2RlIGRpc2FibGVkKS4KICAgICAgICAgdGV4dCA9IHNlbGYuVEVYVC5kZWNvZGUoImFzY2lpIikKLSAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAid3QiLCBuZXdsaW5lPSJcbiIpIGFzIGY6CisgICAgICAgIHdpdGggc2VsZi5vcGVuKHNlbGYuZmlsZW5hbWUsICJ3dCIsIG5ld2xpbmU9IlxuIikgYXMgZjoKICAgICAgICAgICAgIGYud3JpdGUodGV4dCkKLSAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAicnQiLCBuZXdsaW5lPSJcciIpIGFzIGY6CisgICAgICAgIHdpdGggc2VsZi5vcGVuKHNlbGYuZmlsZW5hbWUsICJydCIsIG5ld2xpbmU9IlxyIikgYXMgZjoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkbGluZXMoKSwgW3RleHRdKQogCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfY21kX2xpbmUucHkgYi9MaWIvdGVzdC90ZXN0X2NtZF9saW5lLnB5CmluZGV4IGE4OWQ3ZTQuLjlhZTg4MmYgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfY21kX2xpbmUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9jbWRfbGluZS5weQpAQCAtNjIsNiArNjIsMzQgQEAKICAgICAgICAgb3B0cyA9IGV2YWwob3V0LnNwbGl0bGluZXMoKVswXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcHRzLCB7J2EnOiBUcnVlLCAnYic6ICdjLGQ9ZSd9KQogCisgICAgZGVmIHRlc3Rfc2hvd3JlZmNvdW50KHNlbGYpOgorICAgICAgICBkZWYgcnVuX3B5dGhvbigqYXJncyk6CisgICAgICAgICAgICAjIHRoaXMgaXMgc2ltaWxhciB0byBhc3NlcnRfcHl0aG9uX29rIGJ1dCBkb2Vzbid0IHN0cmlwCisgICAgICAgICAgICAjIHRoZSByZWZjb3VudCBmcm9tIHN0ZGVyci4gIEl0IGNhbiBiZSByZXBsYWNlZCBvbmNlCisgICAgICAgICAgICAjIGFzc2VydF9weXRob25fb2sgc3RvcHMgZG9pbmcgdGhhdC4KKyAgICAgICAgICAgIGNtZCA9IFtzeXMuZXhlY3V0YWJsZV0KKyAgICAgICAgICAgIGNtZC5leHRlbmQoYXJncykKKyAgICAgICAgICAgIFBJUEUgPSBzdWJwcm9jZXNzLlBJUEUKKyAgICAgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc3Rkb3V0PVBJUEUsIHN0ZGVycj1QSVBFKQorICAgICAgICAgICAgb3V0LCBlcnIgPSBwLmNvbW11bmljYXRlKCkKKyAgICAgICAgICAgIHAuc3Rkb3V0LmNsb3NlKCkKKyAgICAgICAgICAgIHAuc3RkZXJyLmNsb3NlKCkKKyAgICAgICAgICAgIHJjID0gcC5yZXR1cm5jb2RlCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJjLCAwKQorICAgICAgICAgICAgcmV0dXJuIHJjLCBvdXQsIGVycgorICAgICAgICBjb2RlID0gJ2ltcG9ydCBzeXM7IHByaW50KHN5cy5feG9wdGlvbnMpJworICAgICAgICAjIG5vcm1hbGx5IHRoZSByZWZjb3VudCBpcyBoaWRkZW4KKyAgICAgICAgcmMsIG91dCwgZXJyID0gcnVuX3B5dGhvbignLWMnLCBjb2RlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG91dC5yc3RyaXAoKSwgYid7fScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyLCBiJycpCisgICAgICAgICMgIi1YIHNob3dyZWZjb3VudCIgc2hvd3MgdGhlIHJlZmNvdW50LCBidXQgb25seSBpbiBkZWJ1ZyBidWlsZHMKKyAgICAgICAgcmMsIG91dCwgZXJyID0gcnVuX3B5dGhvbignLVgnLCAnc2hvd3JlZmNvdW50JywgJy1jJywgY29kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXQucnN0cmlwKCksIGIieydzaG93cmVmY291bnQnOiBUcnVlfSIpCisgICAgICAgIGlmIGhhc2F0dHIoc3lzLCAnZ2V0dG90YWxyZWZjb3VudCcpOiAgIyBkZWJ1ZyBidWlsZAorICAgICAgICAgICAgc2VsZi5hc3NlcnRSZWdleChlcnIsIGJyJ15cW1xkKyByZWZzLCBcZCsgYmxvY2tzXF0nKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnIsIGInJykKKwogICAgIGRlZiB0ZXN0X3J1bl9tb2R1bGUoc2VsZik6CiAgICAgICAgICMgVGVzdCBleHBlY3RlZCBvcGVyYXRpb24gb2YgdGhlICctbScgc3dpdGNoCiAgICAgICAgICMgU3dpdGNoIG5lZWRzIGFuIGFyZ3VtZW50CkBAIC03MCw5ICs5OCw5IEBACiAgICAgICAgIGFzc2VydF9weXRob25fZmFpbHVyZSgnLW0nLCAnZm5vcmQ0MzUyMHh5eicpCiAgICAgICAgICMgQ2hlY2sgdGhlIHJ1bnB5IG1vZHVsZSBhbHNvIGdpdmVzIGFuIGVycm9yIGZvcgogICAgICAgICAjIGEgbm9uZXhpc3RlbnQgbW9kdWxlCi0gICAgICAgIGFzc2VydF9weXRob25fZmFpbHVyZSgnLW0nLCAncnVucHknLCAnZm5vcmQ0MzUyMHh5eicpLAorICAgICAgICBhc3NlcnRfcHl0aG9uX2ZhaWx1cmUoJy1tJywgJ3J1bnB5JywgJ2Zub3JkNDM1MjB4eXonKQogICAgICAgICAjIEFsbCBnb29kIGlmIG1vZHVsZSBpcyBsb2NhdGVkIGFuZCBydW4gc3VjY2Vzc2Z1bGx5Ci0gICAgICAgIGFzc2VydF9weXRob25fb2soJy1tJywgJ3RpbWVpdCcsICctbicsICcxJyksCisgICAgICAgIGFzc2VydF9weXRob25fb2soJy1tJywgJ3RpbWVpdCcsICctbicsICcxJykKIAogICAgIGRlZiB0ZXN0X3J1bl9tb2R1bGVfYnVnMTc2NDQwNyhzZWxmKToKICAgICAgICAgIyAtbSBhbmQgLWkgbmVlZCB0byBwbGF5IHdlbGwgdG9nZXRoZXIKQEAgLTIxMyw2ICsyNDEsMjMgQEAKICAgICAgICAgc2VsZi5hc3NlcnRJbihwYXRoMS5lbmNvZGUoJ2FzY2lpJyksIG91dCkKICAgICAgICAgc2VsZi5hc3NlcnRJbihwYXRoMi5lbmNvZGUoJ2FzY2lpJyksIG91dCkKIAorICAgIGRlZiB0ZXN0X2VtcHR5X1BZVEhPTlBBVEhfaXNzdWUxNjMwOShzZWxmKToKKyAgICAgICAgIyBPbiBQb3NpeCwgaXQgaXMgZG9jdW1lbnRlZCB0aGF0IHNldHRpbmcgUEFUSCB0byB0aGUKKyAgICAgICAgIyBlbXB0eSBzdHJpbmcgaXMgZXF1aXZhbGVudCB0byBub3Qgc2V0dGluZyBQQVRIIGF0IGFsbCwKKyAgICAgICAgIyB3aGljaCBpcyBhbiBleGNlcHRpb24gdG8gdGhlIHJ1bGUgdGhhdCBpbiBhIHN0cmluZyBsaWtlCisgICAgICAgICMgIi9iaW46Oi91c3IvYmluIiB0aGUgZW1wdHkgc3RyaW5nIGluIHRoZSBtaWRkbGUgZ2V0cworICAgICAgICAjIGludGVycHJldGVkIGFzICcuJworICAgICAgICBjb2RlID0gIiIiaWYgMToKKyAgICAgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgICAgIHBhdGggPSAiOiIuam9pbihzeXMucGF0aCkKKyAgICAgICAgICAgIHBhdGggPSBwYXRoLmVuY29kZSgiYXNjaWkiLCAiYmFja3NsYXNocmVwbGFjZSIpCisgICAgICAgICAgICBzeXMuc3Rkb3V0LmJ1ZmZlci53cml0ZShwYXRoKSIiIgorICAgICAgICByYzEsIG91dDEsIGVycjEgPSBhc3NlcnRfcHl0aG9uX29rKCctYycsIGNvZGUsIFBZVEhPTlBBVEg9IiIpCisgICAgICAgIHJjMiwgb3V0MiwgZXJyMiA9IGFzc2VydF9weXRob25fb2soJy1jJywgY29kZSkKKyAgICAgICAgIyByZWdhcmRpbmcgdG8gUG9zaXggc3BlY2lmaWNhdGlvbiwgb3V0cHV0cyBzaG91bGQgYmUgZXF1YWwKKyAgICAgICAgIyBmb3IgZW1wdHkgYW5kIHVuc2V0IFBZVEhPTlBBVEgKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXQxLCBvdXQyKQorCiAgICAgZGVmIHRlc3RfZGlzcGxheWhvb2tfdW5lbmNvZGFibGUoc2VsZik6CiAgICAgICAgIGZvciBlbmNvZGluZyBpbiAoJ2FzY2lpJywgJ2xhdGluLTEnLCAndXRmLTgnKToKICAgICAgICAgICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCkBAIC0yOTAsNyArMzM1LDcgQEAKICAgICAgICAgcmMsIG91dCwgZXJyID0gYXNzZXJ0X3B5dGhvbl9vaygnLWMnLCBjb2RlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGInJywgb3V0KQogICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KGVyci5kZWNvZGUoJ2FzY2lpJywgJ2lnbm9yZScpLAotICAgICAgICAgICAgICAgICAgICAgICAgICdFeGNlcHRpb24gT1NFcnJvcjogLiogaWdub3JlZCcpCisgICAgICAgICAgICAgICAgICAgICAgICAgJ0V4Y2VwdGlvbiBpZ25vcmVkIGluLipcbk9TRXJyb3I6IC4qJykKIAogICAgIGRlZiB0ZXN0X2Nsb3NlZF9zdGRvdXQoc2VsZik6CiAgICAgICAgICMgSXNzdWUgIzEzNDQ0OiBpZiBzdGRvdXQgaGFzIGJlZW4gZXhwbGljaXRseSBjbG9zZWQsIHdlIHNob3VsZApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jb2RlY3MucHkgYi9MaWIvdGVzdC90ZXN0X2NvZGVjcy5weQppbmRleCBjNjgwODhlLi4yZjNjZjRkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2NvZGVjcy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NvZGVjcy5weQpAQCAtMjI5NSw4ICsyMjk1LDggQEAKICAgICBkZWYgdGVzdF9pbnZhbGlkX2NvZGVfcGFnZShzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgY29kZWNzLmNvZGVfcGFnZV9lbmNvZGUsIC0xLCAnYScpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGNvZGVjcy5jb2RlX3BhZ2VfZGVjb2RlLCAtMSwgYidhJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoV2luZG93c0Vycm9yLCBjb2RlY3MuY29kZV9wYWdlX2VuY29kZSwgMTIzLCAnYScpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFdpbmRvd3NFcnJvciwgY29kZWNzLmNvZGVfcGFnZV9kZWNvZGUsIDEyMywgYidhJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgY29kZWNzLmNvZGVfcGFnZV9lbmNvZGUsIDEyMywgJ2EnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBjb2RlY3MuY29kZV9wYWdlX2RlY29kZSwgMTIzLCBiJ2EnKQogCiAgICAgZGVmIHRlc3RfY29kZV9wYWdlX25hbWUoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVW5pY29kZUVuY29kZUVycm9yLCAnY3A5MzInLApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jb2xsZWN0aW9ucy5weSBiL0xpYi90ZXN0L3Rlc3RfY29sbGVjdGlvbnMucHkKaW5kZXggYWYyN2QyMi4uOGYzNzllZiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jb2xsZWN0aW9ucy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NvbGxlY3Rpb25zLnB5CkBAIC0xMTIsNiArMTEyLDM4IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGljdChkKSwgZGljdChhPTEsIGI9MiwgYz0zMCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGljdChkLml0ZW1zKCkpLCBkaWN0KGE9MSwgYj0yLCBjPTMwKSkKIAorICAgIGRlZiB0ZXN0X25ld19jaGlsZChzZWxmKToKKyAgICAgICAgJ1Rlc3RzIGZvciBjaGFuZ2VzIGZvciBpc3N1ZSAjMTY2MTMuJworICAgICAgICBjID0gQ2hhaW5NYXAoKQorICAgICAgICBjWydhJ10gPSAxCisgICAgICAgIGNbJ2InXSA9IDIKKyAgICAgICAgbSA9IHsnYic6MjAsICdjJzogMzB9CisgICAgICAgIGQgPSBjLm5ld19jaGlsZChtKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQubWFwcywgW3snYic6MjAsICdjJzozMH0sIHsnYSc6MSwgJ2InOjJ9XSkgICMgY2hlY2sgaW50ZXJuYWwgc3RhdGUKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhtLCBkLm1hcHNbMF0pCisKKyAgICAgICAgIyBVc2UgYSBkaWZmZXJlbnQgbWFwIHRoYW4gYSBkaWN0CisgICAgICAgIGNsYXNzIGxvd2VyZGljdChkaWN0KToKKyAgICAgICAgICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoa2V5LCBzdHIpOgorICAgICAgICAgICAgICAgICAgICBrZXkgPSBrZXkubG93ZXIoKQorICAgICAgICAgICAgICAgIHJldHVybiBkaWN0Ll9fZ2V0aXRlbV9fKHNlbGYsIGtleSkKKyAgICAgICAgICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwga2V5KToKKyAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGtleSwgc3RyKToKKyAgICAgICAgICAgICAgICAgICAga2V5ID0ga2V5Lmxvd2VyKCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZGljdC5fX2NvbnRhaW5zX18oc2VsZiwga2V5KQorCisgICAgICAgIGMgPSBDaGFpbk1hcCgpCisgICAgICAgIGNbJ2EnXSA9IDEKKyAgICAgICAgY1snYiddID0gMgorICAgICAgICBtID0gbG93ZXJkaWN0KGI9MjAsIGM9MzApCisgICAgICAgIGQgPSBjLm5ld19jaGlsZChtKQorICAgICAgICBzZWxmLmFzc2VydElzKG0sIGQubWFwc1swXSkKKyAgICAgICAgZm9yIGtleSBpbiAnYWJjJzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGNoZWNrIGNvbnRhaW5zCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKGtleSwgZCkKKyAgICAgICAgZm9yIGssIHYgaW4gZGljdChhPTEsIEI9MjAsIEM9MzAsIHo9MTAwKS5pdGVtcygpOiAgICAgICAgICAgICAjIGNoZWNrIGdldAorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLmdldChrLCAxMDApLCB2KQorCiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMgTmFtZWQgVHVwbGVzCkBAIC0xMjEzLDkgKzEyNDUsMTggQEAKICAgICAgICAgIyBkbyBub3Qgc2F2ZSBpbnN0YW5jZSBkaWN0aW9uYXJ5IGlmIG5vdCBuZWVkZWQKICAgICAgICAgcGFpcnMgPSBbKCdjJywgMSksICgnYicsIDIpLCAoJ2EnLCAzKSwgKCdkJywgNCksICgnZScsIDUpLCAoJ2YnLCA2KV0KICAgICAgICAgb2QgPSBPcmRlcmVkRGljdChwYWlycykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ob2QuX19yZWR1Y2VfXygpKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUob2QuX19yZWR1Y2VfXygpWzJdKQogICAgICAgICBvZC54ID0gMTAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ob2QuX19yZWR1Y2VfXygpKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUob2QuX19yZWR1Y2VfXygpWzJdKQorCisgICAgZGVmIHRlc3RfcGlja2xlX3JlY3Vyc2l2ZShzZWxmKToKKyAgICAgICAgb2QgPSBPcmRlcmVkRGljdCgpCisgICAgICAgIG9kWzFdID0gb2QKKyAgICAgICAgZm9yIHByb3RvIGluIHJhbmdlKC0xLCBwaWNrbGUuSElHSEVTVF9QUk9UT0NPTCArIDEpOgorICAgICAgICAgICAgZHVwID0gcGlja2xlLmxvYWRzKHBpY2tsZS5kdW1wcyhvZCwgcHJvdG8pKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdChkdXAsIG9kKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGR1cC5rZXlzKCkpLCBbMV0pCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKGR1cFsxXSwgZHVwKQogCiAgICAgZGVmIHRlc3RfcmVwcihzZWxmKToKICAgICAgICAgb2QgPSBPcmRlcmVkRGljdChbKCdjJywgMSksICgnYicsIDIpLCAoJ2EnLCAzKSwgKCdkJywgNCksICgnZScsIDUpLCAoJ2YnLCA2KV0pCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2NvbXBsZXgucHkgYi9MaWIvdGVzdC90ZXN0X2NvbXBsZXgucHkKaW5kZXggNmIzNGRkYy4uMmE4NWJmNCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jb21wbGV4LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfY29tcGxleC5weQpAQCAtMjIxLDYgKzIyMSw4IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY29tcGxleCwgT1MoTm9uZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY29tcGxleCwgTlMoTm9uZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY29tcGxleCwge30pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY29tcGxleCwgTlMoMS41KSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjb21wbGV4LCBOUygxKSkKIAogICAgICAgICBzZWxmLmFzc2VydEFsbW9zdEVxdWFsKGNvbXBsZXgoIjErMTBqIiksIDErMTBqKQogICAgICAgICBzZWxmLmFzc2VydEFsbW9zdEVxdWFsKGNvbXBsZXgoMTApLCAxMCswaikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfY29uY3VycmVudF9mdXR1cmVzLnB5IGIvTGliL3Rlc3QvdGVzdF9jb25jdXJyZW50X2Z1dHVyZXMucHkKaW5kZXggNmFlNDUwZC4uNGFkMzMwOSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jb25jdXJyZW50X2Z1dHVyZXMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9jb25jdXJyZW50X2Z1dHVyZXMucHkKQEAgLTE1LDYgKzE1LDcgQEAKIGltcG9ydCB0aHJlYWRpbmcKIGltcG9ydCB0aW1lCiBpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB3ZWFrcmVmCiAKIGZyb20gY29uY3VycmVudCBpbXBvcnQgZnV0dXJlcwogZnJvbSBjb25jdXJyZW50LmZ1dHVyZXMuX2Jhc2UgaW1wb3J0ICgKQEAgLTUyLDYgKzUzLDExIEBACiAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCiAKIAorY2xhc3MgTXlPYmplY3Qob2JqZWN0KToKKyAgICBkZWYgbXlfbWV0aG9kKHNlbGYpOgorICAgICAgICBwYXNzCisKKwogY2xhc3MgRXhlY3V0b3JNaXhpbjoKICAgICB3b3JrZXJfY291bnQgPSA1CiAKQEAgLTM5Niw2ICs0MDIsMjIgQEAKICAgICAgICAgc2VsZi5leGVjdXRvci5tYXAoc3RyLCBbMl0gKiAoc2VsZi53b3JrZXJfY291bnQgKyAxKSkKICAgICAgICAgc2VsZi5leGVjdXRvci5zaHV0ZG93bigpCiAKKyAgICBAdGVzdC5zdXBwb3J0LmNweXRob25fb25seQorICAgIGRlZiB0ZXN0X25vX3N0YWxlX3JlZmVyZW5jZXMoc2VsZik6CisgICAgICAgICMgSXNzdWUgIzE2Mjg0OiBjaGVjayB0aGF0IHRoZSBleGVjdXRvcnMgZG9uJ3QgdW5uZWNlc3NhcmlseSBoYW5nIG9udG8KKyAgICAgICAgIyByZWZlcmVuY2VzLgorICAgICAgICBteV9vYmplY3QgPSBNeU9iamVjdCgpCisgICAgICAgIG15X29iamVjdF9jb2xsZWN0ZWQgPSB0aHJlYWRpbmcuRXZlbnQoKQorICAgICAgICBteV9vYmplY3RfY2FsbGJhY2sgPSB3ZWFrcmVmLnJlZigKKyAgICAgICAgICAgIG15X29iamVjdCwgbGFtYmRhIG9iajogbXlfb2JqZWN0X2NvbGxlY3RlZC5zZXQoKSkKKyAgICAgICAgIyBEZWxpYmVyYXRlbHkgZGlzY2FyZGluZyB0aGUgZnV0dXJlLgorICAgICAgICBzZWxmLmV4ZWN1dG9yLnN1Ym1pdChteV9vYmplY3QubXlfbWV0aG9kKQorICAgICAgICBkZWwgbXlfb2JqZWN0CisKKyAgICAgICAgY29sbGVjdGVkID0gbXlfb2JqZWN0X2NvbGxlY3RlZC53YWl0KHRpbWVvdXQ9NS4wKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoY29sbGVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgIlN0YWxlIHJlZmVyZW5jZSBub3QgY29sbGVjdGVkIHdpdGhpbiB0aW1lb3V0LiIpCisKIAogY2xhc3MgVGhyZWFkUG9vbEV4ZWN1dG9yVGVzdChUaHJlYWRQb29sTWl4aW4sIEV4ZWN1dG9yVGVzdCk6CiAgICAgZGVmIHRlc3RfbWFwX3N1Ym1pdHNfd2l0aG91dF9pdGVyYXRpb24oc2VsZik6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2NvbnRleHRsaWIucHkgYi9MaWIvdGVzdC90ZXN0X2NvbnRleHRsaWIucHkKaW5kZXggZTUyZWQ5MS4uZDEzNjU5ZCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jb250ZXh0bGliLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfY29udGV4dGxpYi5weQpAQCAtNTk0LDYgKzU5NCwyOCBAQAogICAgICAgICBzdGFjay5wdXNoKGNtKQogICAgICAgICBzZWxmLmFzc2VydElzKHN0YWNrLl9leGl0X2NhbGxiYWNrc1stMV0sIGNtKQogCitjbGFzcyBUZXN0SWdub3JlZCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9ub19leGNlcHRpb24oc2VsZik6CisKKyAgICAgICAgd2l0aCBpZ25vcmVkKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3coMiwgNSksIDMyKQorCisgICAgZGVmIHRlc3RfZXhhY3RfZXhjZXB0aW9uKHNlbGYpOgorCisgICAgICAgIHdpdGggaWdub3JlZChUeXBlRXJyb3IpOgorICAgICAgICAgICAgbGVuKDUpCisKKyAgICBkZWYgdGVzdF9tdWx0aXBsZV9leGNlcHRpb25fYXJncyhzZWxmKToKKworICAgICAgICB3aXRoIGlnbm9yZWQoWmVyb0RpdmlzaW9uRXJyb3IsIFR5cGVFcnJvcik6CisgICAgICAgICAgICBsZW4oNSkKKworICAgIGRlZiB0ZXN0X2V4Y2VwdGlvbl9oaWVyYXJjaHkoc2VsZik6CisKKyAgICAgICAgd2l0aCBpZ25vcmVkKExvb2t1cEVycm9yKToKKyAgICAgICAgICAgICdIZWxsbydbNTBdCisKIAogIyBUaGlzIGlzIG5lZWRlZCB0byBtYWtlIHRoZSB0ZXN0IGFjdHVhbGx5IHJ1biB1bmRlciByZWdydGVzdC5weSEKIGRlZiB0ZXN0X21haW4oKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfY3Byb2ZpbGUucHkgYi9MaWIvdGVzdC90ZXN0X2Nwcm9maWxlLnB5CmluZGV4IDU2NzY2NjguLmMzZWI3ZmEgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfY3Byb2ZpbGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9jcHJvZmlsZS5weQpAQCAtNiw5ICs2LDExIEBACiAjIHJpcCBvZmYgYWxsIGludGVyZXN0aW5nIHN0dWZmIGZyb20gdGVzdF9wcm9maWxlCiBpbXBvcnQgY1Byb2ZpbGUKIGZyb20gdGVzdC50ZXN0X3Byb2ZpbGUgaW1wb3J0IFByb2ZpbGVUZXN0LCByZWdlbmVyYXRlX2V4cGVjdGVkX291dHB1dAorZnJvbSB0ZXN0LnByb2ZpbGVlIGltcG9ydCB0ZXN0ZnVuYwogCiBjbGFzcyBDUHJvZmlsZVRlc3QoUHJvZmlsZVRlc3QpOgogICAgIHByb2ZpbGVyY2xhc3MgPSBjUHJvZmlsZS5Qcm9maWxlCisgICAgcHJvZmlsZXJtb2R1bGUgPSBjUHJvZmlsZQogICAgIGV4cGVjdGVkX21heF9vdXRwdXQgPSAie2J1aWx0LWluIG1ldGhvZCBtYXh9IgogCiAgICAgZGVmIGdldF9leHBlY3RlZF9vdXRwdXQoc2VsZik6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2NyeXB0LnB5IGIvTGliL3Rlc3QvdGVzdF9jcnlwdC5weQppbmRleCBjZmI3MzQxLi42MjRkNzAyIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2NyeXB0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfY3J5cHQucHkKQEAgLTEsMTEgKzEsNyBAQAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBpbXBvcnQgdW5pdHRlc3QKIAotZGVmIHNldFVwTW9kdWxlKCk6Ci0gICAgIyB0aGlzIGltcG9ydCB3aWxsIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0IGlmIF9jcnlwdCBkb2Vzbid0IGV4aXN0LAotICAgICMgc28gaXQgaGFzIHRvIGJlIGRvbmUgaW4gc2V0VXBNb2R1bGUgZm9yIHRlc3QgZGlzY292ZXJ5IHRvIHdvcmsKLSAgICBnbG9iYWwgY3J5cHQKLSAgICBjcnlwdCA9IHN1cHBvcnQuaW1wb3J0X21vZHVsZSgnY3J5cHQnKQorY3J5cHQgPSBzdXBwb3J0LmltcG9ydF9tb2R1bGUoJ2NyeXB0JykKIAogY2xhc3MgQ3J5cHRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfY3N2LnB5IGIvTGliL3Rlc3QvdGVzdF9jc3YucHkKaW5kZXggOTZmOGFhNy4uOTc0ZDczZCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jc3YucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9jc3YucHkKQEAgLTEzNiwxMiArMTM2LDEyIEBACiAgICAgICAgICAgICAgICAgcmV0dXJuIDEwOwogICAgICAgICAgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGkpOgogICAgICAgICAgICAgICAgIGlmIGkgPiAyOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJT0Vycm9yCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIHNlbGYuX3dyaXRlX3Rlc3QsIEJhZExpc3QoKSwgJycpCisgICAgICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc2VsZi5fd3JpdGVfdGVzdCwgQmFkTGlzdCgpLCAnJykKICAgICAgICAgY2xhc3MgQmFkSXRlbToKICAgICAgICAgICAgIGRlZiBfX3N0cl9fKHNlbGYpOgotICAgICAgICAgICAgICAgIHJhaXNlIElPRXJyb3IKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgc2VsZi5fd3JpdGVfdGVzdCwgW0JhZEl0ZW0oKV0sICcnKQorICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc2VsZi5fd3JpdGVfdGVzdCwgW0JhZEl0ZW0oKV0sICcnKQogCiAgICAgZGVmIHRlc3Rfd3JpdGVfYmlnZmllbGQoc2VsZik6CiAgICAgICAgICMgVGhpcyBleGVyY2lzZXMgdGhlIGJ1ZmZlciByZWFsbG9jIGZ1bmN0aW9uYWxpdHkKQEAgLTE4Niw5ICsxODYsOSBAQAogICAgIGRlZiB0ZXN0X3dyaXRlcm93cyhzZWxmKToKICAgICAgICAgY2xhc3MgQnJva2VuRmlsZToKICAgICAgICAgICAgIGRlZiB3cml0ZShzZWxmLCBidWYpOgotICAgICAgICAgICAgICAgIHJhaXNlIElPRXJyb3IKKyAgICAgICAgICAgICAgICByYWlzZSBPU0Vycm9yCiAgICAgICAgIHdyaXRlciA9IGNzdi53cml0ZXIoQnJva2VuRmlsZSgpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCB3cml0ZXIud3JpdGVyb3dzLCBbWydhJ11dKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCB3cml0ZXIud3JpdGVyb3dzLCBbWydhJ11dKQogCiAgICAgICAgIHdpdGggVGVtcG9yYXJ5RmlsZSgidysiLCBuZXdsaW5lPScnKSBhcyBmaWxlb2JqOgogICAgICAgICAgICAgd3JpdGVyID0gY3N2LndyaXRlcihmaWxlb2JqKQpAQCAtMzA4LDYgKzMwOCwxNSBAQAogICAgICAgICAgICAgZm9yIGksIHJvdyBpbiBlbnVtZXJhdGUoY3N2LnJlYWRlcihmaWxlb2JqKSk6CiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3csIHJvd3NbaV0pCiAKKyAgICBkZWYgdGVzdF9yb3VuZHRyaXBfZXNjYXBlZF91bnF1b3RlZF9uZXdsaW5lcyhzZWxmKToKKyAgICAgICAgd2l0aCBUZW1wb3JhcnlGaWxlKCJ3KyIsIG5ld2xpbmU9JycpIGFzIGZpbGVvYmo6CisgICAgICAgICAgICB3cml0ZXIgPSBjc3Yud3JpdGVyKGZpbGVvYmoscXVvdGluZz1jc3YuUVVPVEVfTk9ORSxlc2NhcGVjaGFyPSJcXCIpCisgICAgICAgICAgICByb3dzID0gW1snYVxuYicsJ2InXSxbJ2MnLCd4XHJcbmQnXV0KKyAgICAgICAgICAgIHdyaXRlci53cml0ZXJvd3Mocm93cykKKyAgICAgICAgICAgIGZpbGVvYmouc2VlaygwKQorICAgICAgICAgICAgZm9yIGksIHJvdyBpbiBlbnVtZXJhdGUoY3N2LnJlYWRlcihmaWxlb2JqLHF1b3Rpbmc9Y3N2LlFVT1RFX05PTkUsZXNjYXBlY2hhcj0iXFwiKSk6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyb3cscm93c1tpXSkKKwogY2xhc3MgVGVzdERpYWxlY3RSZWdpc3RyeSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfcmVnaXN0cnlfYmFkYXJncyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjc3YubGlzdF9kaWFsZWN0cywgTm9uZSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZGJtLnB5IGIvTGliL3Rlc3QvdGVzdF9kYm0ucHkKaW5kZXggNzUyZTBiNy4uZTAyZmE3NSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9kYm0ucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9kYm0ucHkKQEAgLTU3LDcgKzU3LDcgQEAKICAgICAgICAgcmV0dXJuIGtleXMKIAogICAgIGRlZiB0ZXN0X2Vycm9yKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhzZWxmLm1vZHVsZS5lcnJvciwgSU9FcnJvcikpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKHNlbGYubW9kdWxlLmVycm9yLCBPU0Vycm9yKSkKIAogICAgIGRlZiB0ZXN0X2FueWRibV9ub3RfZXhpc3Rpbmcoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGRibS5lcnJvciwgZGJtLm9wZW4sIF9mbmFtZSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZGVjaW1hbC5weSBiL0xpYi90ZXN0L3Rlc3RfZGVjaW1hbC5weQppbmRleCA1MGE5YWQ0Li5hZTM2ODkzIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2RlY2ltYWwucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9kZWNpbWFsLnB5CkBAIC0yOTAsNyArMjkwLDYgQEAKICAgICAgICAgZ2xvYmFsIHNraXBfZXhwZWN0ZWQKICAgICAgICAgaWYgc2tpcF9leHBlY3RlZDoKICAgICAgICAgICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0Ci0gICAgICAgICAgICByZXR1cm4KICAgICAgICAgd2l0aCBvcGVuKGZpbGUpIGFzIGY6CiAgICAgICAgICAgICBmb3IgbGluZSBpbiBmOgogICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoJ1xyXG4nLCAnJykucmVwbGFjZSgnXG4nLCAnJykKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZGVzY3IucHkgYi9MaWIvdGVzdC90ZXN0X2Rlc2NyLnB5CmluZGV4IDM3NzYzODkuLjhjYjMxNTUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZGVzY3IucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9kZXNjci5weQpAQCAtMTc4OSw2ICsxNzg5LDcgQEAKICAgICAgICAgICAgICgiX190cnVuY19fIiwgaW50LCB6ZXJvLCBzZXQoKSwge30pLAogICAgICAgICAgICAgKCJfX2NlaWxfXyIsIG1hdGguY2VpbCwgemVybywgc2V0KCksIHt9KSwKICAgICAgICAgICAgICgiX19kaXJfXyIsIGRpciwgZW1wdHlfc2VxLCBzZXQoKSwge30pLAorICAgICAgICAgICAgKCJfX3JvdW5kX18iLCByb3VuZCwgemVybywgc2V0KCksIHt9KSwKICAgICAgICAgICAgIF0KIAogICAgICAgICBjbGFzcyBDaGVja2VyKG9iamVjdCk6CkBAIC0yMjQ5LDcgKzIyNTAsOSBAQAogICAgICAgICBtaW5zdGFuY2UgPSBNKCJtIikKICAgICAgICAgbWluc3RhbmNlLmIgPSAyCiAgICAgICAgIG1pbnN0YW5jZS5hID0gMQotICAgICAgICBuYW1lcyA9IFt4IGZvciB4IGluIGRpcihtaW5zdGFuY2UpIGlmIHggbm90IGluIFsiX19uYW1lX18iLCAiX19kb2NfXyJdXQorICAgICAgICBkZWZhdWx0X2F0dHJpYnV0ZXMgPSBbJ19fbmFtZV9fJywgJ19fZG9jX18nLCAnX19wYWNrYWdlX18nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19fbG9hZGVyX18nXQorICAgICAgICBuYW1lcyA9IFt4IGZvciB4IGluIGRpcihtaW5zdGFuY2UpIGlmIHggbm90IGluIGRlZmF1bHRfYXR0cmlidXRlc10KICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lcywgWydhJywgJ2InXSkKIAogICAgICAgICBjbGFzcyBNMihNKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZGV2cG9sbC5weSBiL0xpYi90ZXN0L3Rlc3RfZGV2cG9sbC5weQppbmRleCBiZWY0ZTE4Li5lYzM1MGNkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2RldnBvbGwucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9kZXZwb2xsLnB5CkBAIC04LDcgKzgsNyBAQAogdHJ5OgogICAgIHNlbGVjdC5kZXZwb2xsCiBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoInNlbGVjdC5kZXZwb2xsIG5vdCBkZWZpbmVkIC0tIHNraXBwaW5nIHRlc3RfZGV2cG9sbCIpCisgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoInNlbGVjdC5kZXZwb2xsIG5vdCBkZWZpbmVkIikKIAogCiBkZWYgZmluZF9yZWFkeV9tYXRjaGluZyhyZWFkeSwgZmxhZyk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2Rpcy5weSBiL0xpYi90ZXN0L3Rlc3RfZGlzLnB5CmluZGV4IDFiY2Q2OTMuLmExYzY1ODIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZGlzLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZGlzLnB5CkBAIC0xLDExICsxLDEzIEBACiAjIE1pbmltYWwgdGVzdHMgZm9yIGRpcyBtb2R1bGUKIAogZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IHJ1bl91bml0dGVzdCwgY2FwdHVyZWRfc3Rkb3V0Citmcm9tIHRlc3QuYnl0ZWNvZGVfaGVscGVyIGltcG9ydCBCeXRlY29kZVRlc3RDYXNlCiBpbXBvcnQgZGlmZmxpYgogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgc3lzCiBpbXBvcnQgZGlzCiBpbXBvcnQgaW8KK2ltcG9ydCB0eXBlcwogCiBjbGFzcyBfQzoKICAgICBkZWYgX19pbml0X18oc2VsZiwgeCk6CkBAIC0yMiwxMiArMjQsMTIgQEAKICIiIiAlIChfQy5fX2luaXRfXy5fX2NvZGVfXy5jb19maXJzdGxpbmVubyArIDEsKQogCiBkaXNfY19pbnN0YW5jZV9tZXRob2RfYnl0ZXMgPSAiIiJcCi0gICAgICAgICAgMCBMT0FEX0ZBU1QgICAgICAgICAgIDEgKDEpCi0gICAgICAgICAgMyBMT0FEX0NPTlNUICAgICAgICAgIDEgKDEpCi0gICAgICAgICAgNiBDT01QQVJFX09QICAgICAgICAgIDIgKD09KQotICAgICAgICAgIDkgTE9BRF9GQVNUICAgICAgICAgICAwICgwKQotICAgICAgICAgMTIgU1RPUkVfQVRUUiAgICAgICAgICAwICgwKQotICAgICAgICAgMTUgTE9BRF9DT05TVCAgICAgICAgICAwICgwKQorICAgICAgICAgIDAgTE9BRF9GQVNUICAgICAgICAgICAgICAgIDEgKDEpCisgICAgICAgICAgMyBMT0FEX0NPTlNUICAgICAgICAgICAgICAgMSAoMSkKKyAgICAgICAgICA2IENPTVBBUkVfT1AgICAgICAgICAgICAgICAyICg9PSkKKyAgICAgICAgICA5IExPQURfRkFTVCAgICAgICAgICAgICAgICAwICgwKQorICAgICAgICAgMTIgU1RPUkVfQVRUUiAgICAgICAgICAgICAgIDAgKDApCisgICAgICAgICAxNSBMT0FEX0NPTlNUICAgICAgICAgICAgICAgMCAoMCkKICAgICAgICAgIDE4IFJFVFVSTl9WQUxVRQogIiIiCiAKQEAgLTQ4LDExICs1MCwxMSBAQAogCiAKIGRpc19mX2NvX2NvZGUgPSAiIiJcCi0gICAgICAgICAgMCBMT0FEX0dMT0JBTCAgICAgICAgIDAgKDApCi0gICAgICAgICAgMyBMT0FEX0ZBU1QgICAgICAgICAgIDAgKDApCi0gICAgICAgICAgNiBDQUxMX0ZVTkNUSU9OICAgICAgIDEgKDEgcG9zaXRpb25hbCwgMCBrZXl3b3JkIHBhaXIpCisgICAgICAgICAgMCBMT0FEX0dMT0JBTCAgICAgICAgICAgICAgMCAoMCkKKyAgICAgICAgICAzIExPQURfRkFTVCAgICAgICAgICAgICAgICAwICgwKQorICAgICAgICAgIDYgQ0FMTF9GVU5DVElPTiAgICAgICAgICAgIDEgKDEgcG9zaXRpb25hbCwgMCBrZXl3b3JkIHBhaXIpCiAgICAgICAgICAgOSBQT1BfVE9QCi0gICAgICAgICAxMCBMT0FEX0NPTlNUICAgICAgICAgIDEgKDEpCisgICAgICAgICAxMCBMT0FEX0NPTlNUICAgICAgICAgICAgICAgMSAoMSkKICAgICAgICAgIDEzIFJFVFVSTl9WQUxVRQogIiIiCiAKQEAgLTI5OCwyOSArMzAwLDE2IEBACiBBcmd1bWVudCBjb3VudDogICAgMQogS3ctb25seSBhcmd1bWVudHM6IDAKIE51bWJlciBvZiBsb2NhbHM6ICAxCi1TdGFjayBzaXplOiAgICAgICAgNAorU3RhY2sgc2l6ZTogICAgICAgIDMKIEZsYWdzOiAgICAgICAgICAgICBPUFRJTUlaRUQsIE5FV0xPQ0FMUywgTk9GUkVFCiBDb25zdGFudHM6CiAgICAwOiAlcgotICAgMTogJ19fZnVuY19fJwotICAgMjogJ19fY29kZV9fJwotICAgMzogJzxjb2RlX2luZm8+JwotICAgNDogJ2NvX2NvZGUnCi0gICA1OiAiZG9uJ3Qga25vdyBob3cgdG8gZGlzYXNzZW1ibGUgJSVzIG9iamVjdHMiCi0lc05hbWVzOgotICAgMDogaGFzYXR0cgotICAgMTogX19mdW5jX18KLSAgIDI6IF9fY29kZV9fCi0gICAzOiBpc2luc3RhbmNlCi0gICA0OiBzdHIKLSAgIDU6IF90cnlfY29tcGlsZQotICAgNjogX2Zvcm1hdF9jb2RlX2luZm8KLSAgIDc6IFR5cGVFcnJvcgotICAgODogdHlwZQotICAgOTogX19uYW1lX18KK05hbWVzOgorICAgMDogX2Zvcm1hdF9jb2RlX2luZm8KKyAgIDE6IF9nZXRfY29kZV9vYmplY3QKIFZhcmlhYmxlIG5hbWVzOgotICAgMDogeCIiIiAlICgoJ0Zvcm1hdHRlZCBkZXRhaWxzIG9mIG1ldGhvZHMsIGZ1bmN0aW9ucywgb3IgY29kZS4nLCAnICAgNjogTm9uZVxuJykKLSAgICAgICAgICAgICAgaWYgc3lzLmZsYWdzLm9wdGltaXplIDwgMiBlbHNlIChOb25lLCAnJykpCisgICAwOiB4IiIiICUgKCgnRm9ybWF0dGVkIGRldGFpbHMgb2YgbWV0aG9kcywgZnVuY3Rpb25zLCBvciBjb2RlLicsKQorICAgICAgICAgICAgICBpZiBzeXMuZmxhZ3Mub3B0aW1pemUgPCAyIGVsc2UgKE5vbmUsKSkKIAogQHN0YXRpY21ldGhvZAogZGVmIHRyaWNreSh4LCB5LCB6PVRydWUsICphcmdzLCBjLCBkLCBlPVtdLCAqKmt3ZHMpOgpAQCAtMzg0LDcgKzM3Myw3IEBACiAKIGNvZGVfaW5mb19leHByX3N0ciA9ICIiIlwKIE5hbWU6ICAgICAgICAgICAgICA8bW9kdWxlPgotRmlsZW5hbWU6ICAgICAgICAgIDxjb2RlX2luZm8+CitGaWxlbmFtZTogICAgICAgICAgPGRpc2Fzc2VtYmx5PgogQXJndW1lbnQgY291bnQ6ICAgIDAKIEt3LW9ubHkgYXJndW1lbnRzOiAwCiBOdW1iZXIgb2YgbG9jYWxzOiAgMApAQCAtMzk3LDcgKzM4Niw3IEBACiAKIGNvZGVfaW5mb19zaW1wbGVfc3RtdF9zdHIgPSAiIiJcCiBOYW1lOiAgICAgICAgICAgICAgPG1vZHVsZT4KLUZpbGVuYW1lOiAgICAgICAgICA8Y29kZV9pbmZvPgorRmlsZW5hbWU6ICAgICAgICAgIDxkaXNhc3NlbWJseT4KIEFyZ3VtZW50IGNvdW50OiAgICAwCiBLdy1vbmx5IGFyZ3VtZW50czogMAogTnVtYmVyIG9mIGxvY2FsczogIDAKQEAgLTQxMSw3ICs0MDAsNyBAQAogCiBjb2RlX2luZm9fY29tcG91bmRfc3RtdF9zdHIgPSAiIiJcCiBOYW1lOiAgICAgICAgICAgICAgPG1vZHVsZT4KLUZpbGVuYW1lOiAgICAgICAgICA8Y29kZV9pbmZvPgorRmlsZW5hbWU6ICAgICAgICAgIDxkaXNhc3NlbWJseT4KIEFyZ3VtZW50IGNvdW50OiAgICAwCiBLdy1vbmx5IGFyZ3VtZW50czogMAogTnVtYmVyIG9mIGxvY2FsczogIDAKQEAgLTQ0NSw2ICs0MzQsOSBAQAogICAgICAgICAgICAgd2l0aCBjYXB0dXJlZF9zdGRvdXQoKSBhcyBvdXRwdXQ6CiAgICAgICAgICAgICAgICAgZGlzLnNob3dfY29kZSh4KQogICAgICAgICAgICAgc2VsZi5hc3NlcnRSZWdleChvdXRwdXQuZ2V0dmFsdWUoKSwgZXhwZWN0ZWQrIlxuIikKKyAgICAgICAgICAgIG91dHB1dCA9IGlvLlN0cmluZ0lPKCkKKyAgICAgICAgICAgIGRpcy5zaG93X2NvZGUoeCwgZmlsZT1vdXRwdXQpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KG91dHB1dC5nZXR2YWx1ZSgpLCBleHBlY3RlZCkKIAogICAgIGRlZiB0ZXN0X2NvZGVfaW5mb19vYmplY3Qoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZGlzLmNvZGVfaW5mbywgb2JqZWN0KCkpCkBAIC00NTMsOCArNDQ1LDI4OSBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpcy5wcmV0dHlfZmxhZ3MoMCksICcweDAnKQogCiAKKyMgRm9kZGVyIGZvciBpbnN0cnVjdGlvbiBpbnRyb3NwZWN0aW9uIHRlc3RzCisjICAgRWRpdGluZyBhbnkgb2YgdGhlc2UgbWF5IHJlcXVpcmUgcmVjYWxjdWxhdGluZyB0aGUgZXhwZWN0ZWQgb3V0cHV0CitkZWYgb3V0ZXIoYT0xLCBiPTIpOgorICAgIGRlZiBmKGM9MywgZD00KToKKyAgICAgICAgZGVmIGlubmVyKGU9NSwgZj02KToKKyAgICAgICAgICAgIHByaW50KGEsIGIsIGMsIGQsIGUsIGYpCisgICAgICAgIHByaW50KGEsIGIsIGMsIGQpCisgICAgICAgIHJldHVybiBpbm5lcgorICAgIHByaW50KGEsIGIsICcnLCAxLCBbXSwge30sICJIZWxsbyB3b3JsZCEiKQorICAgIHJldHVybiBmCisKK2RlZiBqdW1weSgpOgorICAgICMgVGhpcyB3b24ndCBhY3R1YWxseSBydW4gKGJ1dCB0aGF0J3MgT0ssIHdlIG9ubHkgZGlzYXNzZW1ibGUgaXQpCisgICAgZm9yIGkgaW4gcmFuZ2UoMTApOgorICAgICAgICBwcmludChpKQorICAgICAgICBpZiBpIDwgNDoKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIGkgPiA2OgorICAgICAgICAgICAgYnJlYWsKKyAgICBlbHNlOgorICAgICAgICBwcmludCgiSSBjYW4gaGF6IGVsc2UgY2xhdXNlPyIpCisgICAgd2hpbGUgaToKKyAgICAgICAgcHJpbnQoaSkKKyAgICAgICAgaSAtPSAxCisgICAgICAgIGlmIGkgPiA2OgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgaSA8IDQ6CisgICAgICAgICAgICBicmVhaworICAgIGVsc2U6CisgICAgICAgIHByaW50KCJXaG8gbGV0IGxvbGNhdHogaW50byB0aGlzIHRlc3Qgc3VpdGU/IikKKyAgICB0cnk6CisgICAgICAgIDEgLyAwCisgICAgZXhjZXB0IFplcm9EaXZpc2lvbkVycm9yOgorICAgICAgICBwcmludCgiSGVyZSB3ZSBnbywgaGVyZSB3ZSBnbywgaGVyZSB3ZSBnby4uLiIpCisgICAgZWxzZToKKyAgICAgICAgd2l0aCBpIGFzIGRvZGd5OgorICAgICAgICAgICAgcHJpbnQoIk5ldmVyIHJlYWNoIHRoaXMiKQorICAgIGZpbmFsbHk6CisgICAgICAgIHByaW50KCJPSywgbm93IHdlJ3JlIGRvbmUiKQorCisjIEVuZCBmb2RkZXIgZm9yIG9waW5mbyBnZW5lcmF0aW9uIHRlc3RzCitleHBlY3RlZF9vdXRlcl9vZmZzZXQgPSAxIC0gb3V0ZXIuX19jb2RlX18uY29fZmlyc3RsaW5lbm8KK2V4cGVjdGVkX2p1bXB5X29mZnNldCA9IDEgLSBqdW1weS5fX2NvZGVfXy5jb19maXJzdGxpbmVubworY29kZV9vYmplY3RfZiA9IG91dGVyLl9fY29kZV9fLmNvX2NvbnN0c1szXQorY29kZV9vYmplY3RfaW5uZXIgPSBjb2RlX29iamVjdF9mLmNvX2NvbnN0c1szXQorCisjIFRoZSBmb2xsb3dpbmcgbGluZXMgYXJlIHVzZWZ1bCB0byByZWdlbmVyYXRlIHRoZSBleHBlY3RlZCByZXN1bHRzIGFmdGVyCisjIGVpdGhlciB0aGUgZm9kZGVyIGlzIG1vZGlmaWVkIG9yIHRoZSBieXRlY29kZSBnZW5lcmF0aW9uIGNoYW5nZXMKKyMgQWZ0ZXIgcmVnZW5lcmF0aW9uLCB1cGRhdGUgdGhlIHJlZmVyZW5jZXMgdG8gY29kZV9vYmplY3RfZiBhbmQKKyMgY29kZV9vYmplY3RfaW5uZXIgYmVmb3JlIHJlcnVubmluZyB0aGUgdGVzdHMKKworI19pbnN0cnVjdGlvbnMgPSBkaXMuZ2V0X2luc3RydWN0aW9ucyhvdXRlciwgbGluZV9vZmZzZXQ9ZXhwZWN0ZWRfb3V0ZXJfb2Zmc2V0KQorI3ByaW50KCdleHBlY3RlZF9vcGluZm9fb3V0ZXIgPSBbXG4gICcsCisgICAgICAjJyxcbiAgJy5qb2luKG1hcChzdHIsIF9pbnN0cnVjdGlvbnMpKSwgJyxcbl0nLCBzZXA9JycpCisjX2luc3RydWN0aW9ucyA9IGRpcy5nZXRfaW5zdHJ1Y3Rpb25zKG91dGVyKCksIGxpbmVfb2Zmc2V0PWV4cGVjdGVkX291dGVyX29mZnNldCkKKyNwcmludCgnZXhwZWN0ZWRfb3BpbmZvX2YgPSBbXG4gICcsCisgICAgICAjJyxcbiAgJy5qb2luKG1hcChzdHIsIF9pbnN0cnVjdGlvbnMpKSwgJyxcbl0nLCBzZXA9JycpCisjX2luc3RydWN0aW9ucyA9IGRpcy5nZXRfaW5zdHJ1Y3Rpb25zKG91dGVyKCkoKSwgbGluZV9vZmZzZXQ9ZXhwZWN0ZWRfb3V0ZXJfb2Zmc2V0KQorI3ByaW50KCdleHBlY3RlZF9vcGluZm9faW5uZXIgPSBbXG4gICcsCisgICAgICAjJyxcbiAgJy5qb2luKG1hcChzdHIsIF9pbnN0cnVjdGlvbnMpKSwgJyxcbl0nLCBzZXA9JycpCisjX2luc3RydWN0aW9ucyA9IGRpcy5nZXRfaW5zdHJ1Y3Rpb25zKGp1bXB5LCBsaW5lX29mZnNldD1leHBlY3RlZF9qdW1weV9vZmZzZXQpCisjcHJpbnQoJ2V4cGVjdGVkX29waW5mb19qdW1weSA9IFtcbiAgJywKKyAgICAgICMnLFxuICAnLmpvaW4obWFwKHN0ciwgX2luc3RydWN0aW9ucykpLCAnLFxuXScsIHNlcD0nJykKKworCitJbnN0cnVjdGlvbiA9IGRpcy5JbnN0cnVjdGlvbgorZXhwZWN0ZWRfb3BpbmZvX291dGVyID0gWworICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ09OU1QnLCBvcGNvZGU9MTAwLCBhcmc9MSwgYXJndmFsPTMsIGFyZ3JlcHI9JzMnLCBvZmZzZXQ9MCwgc3RhcnRzX2xpbmU9MiwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ09OU1QnLCBvcGNvZGU9MTAwLCBhcmc9MiwgYXJndmFsPTQsIGFyZ3JlcHI9JzQnLCBvZmZzZXQ9Mywgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ0xPU1VSRScsIG9wY29kZT0xMzUsIGFyZz0wLCBhcmd2YWw9J2EnLCBhcmdyZXByPSdhJywgb2Zmc2V0PTYsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0NMT1NVUkUnLCBvcGNvZGU9MTM1LCBhcmc9MSwgYXJndmFsPSdiJywgYXJncmVwcj0nYicsIG9mZnNldD05LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nQlVJTERfVFVQTEUnLCBvcGNvZGU9MTAyLCBhcmc9MiwgYXJndmFsPTIsIGFyZ3JlcHI9JycsIG9mZnNldD0xMiwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ09OU1QnLCBvcGNvZGU9MTAwLCBhcmc9MywgYXJndmFsPWNvZGVfb2JqZWN0X2YsIGFyZ3JlcHI9cmVwcihjb2RlX29iamVjdF9mKSwgb2Zmc2V0PTE1LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9DT05TVCcsIG9wY29kZT0xMDAsIGFyZz00LCBhcmd2YWw9J291dGVyLjxsb2NhbHM+LmYnLCBhcmdyZXByPSInb3V0ZXIuPGxvY2Fscz4uZiciLCBvZmZzZXQ9MTgsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdNQUtFX0NMT1NVUkUnLCBvcGNvZGU9MTM0LCBhcmc9MiwgYXJndmFsPTIsIGFyZ3JlcHI9JycsIG9mZnNldD0yMSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1NUT1JFX0ZBU1QnLCBvcGNvZGU9MTI1LCBhcmc9MiwgYXJndmFsPSdmJywgYXJncmVwcj0nZicsIG9mZnNldD0yNCwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfR0xPQkFMJywgb3Bjb2RlPTExNiwgYXJnPTAsIGFyZ3ZhbD0ncHJpbnQnLCBhcmdyZXByPSdwcmludCcsIG9mZnNldD0yNywgc3RhcnRzX2xpbmU9NywgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfREVSRUYnLCBvcGNvZGU9MTM2LCBhcmc9MCwgYXJndmFsPSdhJywgYXJncmVwcj0nYScsIG9mZnNldD0zMCwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfREVSRUYnLCBvcGNvZGU9MTM2LCBhcmc9MSwgYXJndmFsPSdiJywgYXJncmVwcj0nYicsIG9mZnNldD0zMywgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ09OU1QnLCBvcGNvZGU9MTAwLCBhcmc9NSwgYXJndmFsPScnLCBhcmdyZXByPSInJyIsIG9mZnNldD0zNiwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ09OU1QnLCBvcGNvZGU9MTAwLCBhcmc9NiwgYXJndmFsPTEsIGFyZ3JlcHI9JzEnLCBvZmZzZXQ9MzksIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdCVUlMRF9MSVNUJywgb3Bjb2RlPTEwMywgYXJnPTAsIGFyZ3ZhbD0wLCBhcmdyZXByPScnLCBvZmZzZXQ9NDIsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdCVUlMRF9NQVAnLCBvcGNvZGU9MTA1LCBhcmc9MCwgYXJndmFsPTAsIGFyZ3JlcHI9JycsIG9mZnNldD00NSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ09OU1QnLCBvcGNvZGU9MTAwLCBhcmc9NywgYXJndmFsPSdIZWxsbyB3b3JsZCEnLCBhcmdyZXByPSInSGVsbG8gd29ybGQhJyIsIG9mZnNldD00OCwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0NBTExfRlVOQ1RJT04nLCBvcGNvZGU9MTMxLCBhcmc9NywgYXJndmFsPTcsIGFyZ3JlcHI9JzcgcG9zaXRpb25hbCwgMCBrZXl3b3JkIHBhaXInLCBvZmZzZXQ9NTEsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdQT1BfVE9QJywgb3Bjb2RlPTEsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTU0LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9GQVNUJywgb3Bjb2RlPTEyNCwgYXJnPTIsIGFyZ3ZhbD0nZicsIGFyZ3JlcHI9J2YnLCBvZmZzZXQ9NTUsIHN0YXJ0c19saW5lPTgsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdSRVRVUk5fVkFMVUUnLCBvcGNvZGU9ODMsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTU4LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCitdCisKK2V4cGVjdGVkX29waW5mb19mID0gWworICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ09OU1QnLCBvcGNvZGU9MTAwLCBhcmc9MSwgYXJndmFsPTUsIGFyZ3JlcHI9JzUnLCBvZmZzZXQ9MCwgc3RhcnRzX2xpbmU9MywgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ09OU1QnLCBvcGNvZGU9MTAwLCBhcmc9MiwgYXJndmFsPTYsIGFyZ3JlcHI9JzYnLCBvZmZzZXQ9Mywgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ0xPU1VSRScsIG9wY29kZT0xMzUsIGFyZz0yLCBhcmd2YWw9J2EnLCBhcmdyZXByPSdhJywgb2Zmc2V0PTYsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0NMT1NVUkUnLCBvcGNvZGU9MTM1LCBhcmc9MywgYXJndmFsPSdiJywgYXJncmVwcj0nYicsIG9mZnNldD05LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9DTE9TVVJFJywgb3Bjb2RlPTEzNSwgYXJnPTAsIGFyZ3ZhbD0nYycsIGFyZ3JlcHI9J2MnLCBvZmZzZXQ9MTIsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0NMT1NVUkUnLCBvcGNvZGU9MTM1LCBhcmc9MSwgYXJndmFsPSdkJywgYXJncmVwcj0nZCcsIG9mZnNldD0xNSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0JVSUxEX1RVUExFJywgb3Bjb2RlPTEwMiwgYXJnPTQsIGFyZ3ZhbD00LCBhcmdyZXByPScnLCBvZmZzZXQ9MTgsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0NPTlNUJywgb3Bjb2RlPTEwMCwgYXJnPTMsIGFyZ3ZhbD1jb2RlX29iamVjdF9pbm5lciwgYXJncmVwcj1yZXByKGNvZGVfb2JqZWN0X2lubmVyKSwgb2Zmc2V0PTIxLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9DT05TVCcsIG9wY29kZT0xMDAsIGFyZz00LCBhcmd2YWw9J291dGVyLjxsb2NhbHM+LmYuPGxvY2Fscz4uaW5uZXInLCBhcmdyZXByPSInb3V0ZXIuPGxvY2Fscz4uZi48bG9jYWxzPi5pbm5lciciLCBvZmZzZXQ9MjQsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdNQUtFX0NMT1NVUkUnLCBvcGNvZGU9MTM0LCBhcmc9MiwgYXJndmFsPTIsIGFyZ3JlcHI9JycsIG9mZnNldD0yNywgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1NUT1JFX0ZBU1QnLCBvcGNvZGU9MTI1LCBhcmc9MiwgYXJndmFsPSdpbm5lcicsIGFyZ3JlcHI9J2lubmVyJywgb2Zmc2V0PTMwLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9HTE9CQUwnLCBvcGNvZGU9MTE2LCBhcmc9MCwgYXJndmFsPSdwcmludCcsIGFyZ3JlcHI9J3ByaW50Jywgb2Zmc2V0PTMzLCBzdGFydHNfbGluZT01LCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9ERVJFRicsIG9wY29kZT0xMzYsIGFyZz0yLCBhcmd2YWw9J2EnLCBhcmdyZXByPSdhJywgb2Zmc2V0PTM2LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9ERVJFRicsIG9wY29kZT0xMzYsIGFyZz0zLCBhcmd2YWw9J2InLCBhcmdyZXByPSdiJywgb2Zmc2V0PTM5LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9ERVJFRicsIG9wY29kZT0xMzYsIGFyZz0wLCBhcmd2YWw9J2MnLCBhcmdyZXByPSdjJywgb2Zmc2V0PTQyLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9ERVJFRicsIG9wY29kZT0xMzYsIGFyZz0xLCBhcmd2YWw9J2QnLCBhcmdyZXByPSdkJywgb2Zmc2V0PTQ1LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nQ0FMTF9GVU5DVElPTicsIG9wY29kZT0xMzEsIGFyZz00LCBhcmd2YWw9NCwgYXJncmVwcj0nNCBwb3NpdGlvbmFsLCAwIGtleXdvcmQgcGFpcicsIG9mZnNldD00OCwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1BPUF9UT1AnLCBvcGNvZGU9MSwgYXJnPU5vbmUsIGFyZ3ZhbD1Ob25lLCBhcmdyZXByPScnLCBvZmZzZXQ9NTEsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0ZBU1QnLCBvcGNvZGU9MTI0LCBhcmc9MiwgYXJndmFsPSdpbm5lcicsIGFyZ3JlcHI9J2lubmVyJywgb2Zmc2V0PTUyLCBzdGFydHNfbGluZT02LCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nUkVUVVJOX1ZBTFVFJywgb3Bjb2RlPTgzLCBhcmc9Tm9uZSwgYXJndmFsPU5vbmUsIGFyZ3JlcHI9JycsIG9mZnNldD01NSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorXQorCitleHBlY3RlZF9vcGluZm9faW5uZXIgPSBbCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9HTE9CQUwnLCBvcGNvZGU9MTE2LCBhcmc9MCwgYXJndmFsPSdwcmludCcsIGFyZ3JlcHI9J3ByaW50Jywgb2Zmc2V0PTAsIHN0YXJ0c19saW5lPTQsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0RFUkVGJywgb3Bjb2RlPTEzNiwgYXJnPTAsIGFyZ3ZhbD0nYScsIGFyZ3JlcHI9J2EnLCBvZmZzZXQ9Mywgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfREVSRUYnLCBvcGNvZGU9MTM2LCBhcmc9MSwgYXJndmFsPSdiJywgYXJncmVwcj0nYicsIG9mZnNldD02LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9ERVJFRicsIG9wY29kZT0xMzYsIGFyZz0yLCBhcmd2YWw9J2MnLCBhcmdyZXByPSdjJywgb2Zmc2V0PTksIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0RFUkVGJywgb3Bjb2RlPTEzNiwgYXJnPTMsIGFyZ3ZhbD0nZCcsIGFyZ3JlcHI9J2QnLCBvZmZzZXQ9MTIsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0ZBU1QnLCBvcGNvZGU9MTI0LCBhcmc9MCwgYXJndmFsPSdlJywgYXJncmVwcj0nZScsIG9mZnNldD0xNSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfRkFTVCcsIG9wY29kZT0xMjQsIGFyZz0xLCBhcmd2YWw9J2YnLCBhcmdyZXByPSdmJywgb2Zmc2V0PTE4LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nQ0FMTF9GVU5DVElPTicsIG9wY29kZT0xMzEsIGFyZz02LCBhcmd2YWw9NiwgYXJncmVwcj0nNiBwb3NpdGlvbmFsLCAwIGtleXdvcmQgcGFpcicsIG9mZnNldD0yMSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1BPUF9UT1AnLCBvcGNvZGU9MSwgYXJnPU5vbmUsIGFyZ3ZhbD1Ob25lLCBhcmdyZXByPScnLCBvZmZzZXQ9MjQsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0NPTlNUJywgb3Bjb2RlPTEwMCwgYXJnPTAsIGFyZ3ZhbD1Ob25lLCBhcmdyZXByPSdOb25lJywgb2Zmc2V0PTI1LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nUkVUVVJOX1ZBTFVFJywgb3Bjb2RlPTgzLCBhcmc9Tm9uZSwgYXJndmFsPU5vbmUsIGFyZ3JlcHI9JycsIG9mZnNldD0yOCwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorXQorCitleHBlY3RlZF9vcGluZm9fanVtcHkgPSBbCisgIEluc3RydWN0aW9uKG9wbmFtZT0nU0VUVVBfTE9PUCcsIG9wY29kZT0xMjAsIGFyZz03NCwgYXJndmFsPTc3LCBhcmdyZXByPSd0byA3NycsIG9mZnNldD0wLCBzdGFydHNfbGluZT0zLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9HTE9CQUwnLCBvcGNvZGU9MTE2LCBhcmc9MCwgYXJndmFsPSdyYW5nZScsIGFyZ3JlcHI9J3JhbmdlJywgb2Zmc2V0PTMsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0NPTlNUJywgb3Bjb2RlPTEwMCwgYXJnPTEsIGFyZ3ZhbD0xMCwgYXJncmVwcj0nMTAnLCBvZmZzZXQ9Niwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0NBTExfRlVOQ1RJT04nLCBvcGNvZGU9MTMxLCBhcmc9MSwgYXJndmFsPTEsIGFyZ3JlcHI9JzEgcG9zaXRpb25hbCwgMCBrZXl3b3JkIHBhaXInLCBvZmZzZXQ9OSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0dFVF9JVEVSJywgb3Bjb2RlPTY4LCBhcmc9Tm9uZSwgYXJndmFsPU5vbmUsIGFyZ3JlcHI9JycsIG9mZnNldD0xMiwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0ZPUl9JVEVSJywgb3Bjb2RlPTkzLCBhcmc9NTAsIGFyZ3ZhbD02NiwgYXJncmVwcj0ndG8gNjYnLCBvZmZzZXQ9MTMsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PVRydWUpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1NUT1JFX0ZBU1QnLCBvcGNvZGU9MTI1LCBhcmc9MCwgYXJndmFsPSdpJywgYXJncmVwcj0naScsIG9mZnNldD0xNiwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfR0xPQkFMJywgb3Bjb2RlPTExNiwgYXJnPTEsIGFyZ3ZhbD0ncHJpbnQnLCBhcmdyZXByPSdwcmludCcsIG9mZnNldD0xOSwgc3RhcnRzX2xpbmU9NCwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfRkFTVCcsIG9wY29kZT0xMjQsIGFyZz0wLCBhcmd2YWw9J2knLCBhcmdyZXByPSdpJywgb2Zmc2V0PTIyLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nQ0FMTF9GVU5DVElPTicsIG9wY29kZT0xMzEsIGFyZz0xLCBhcmd2YWw9MSwgYXJncmVwcj0nMSBwb3NpdGlvbmFsLCAwIGtleXdvcmQgcGFpcicsIG9mZnNldD0yNSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1BPUF9UT1AnLCBvcGNvZGU9MSwgYXJnPU5vbmUsIGFyZ3ZhbD1Ob25lLCBhcmdyZXByPScnLCBvZmZzZXQ9MjgsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0ZBU1QnLCBvcGNvZGU9MTI0LCBhcmc9MCwgYXJndmFsPSdpJywgYXJncmVwcj0naScsIG9mZnNldD0yOSwgc3RhcnRzX2xpbmU9NSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ09OU1QnLCBvcGNvZGU9MTAwLCBhcmc9MiwgYXJndmFsPTQsIGFyZ3JlcHI9JzQnLCBvZmZzZXQ9MzIsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdDT01QQVJFX09QJywgb3Bjb2RlPTEwNywgYXJnPTAsIGFyZ3ZhbD0nPCcsIGFyZ3JlcHI9JzwnLCBvZmZzZXQ9MzUsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdQT1BfSlVNUF9JRl9GQUxTRScsIG9wY29kZT0xMTQsIGFyZz00NywgYXJndmFsPTQ3LCBhcmdyZXByPScnLCBvZmZzZXQ9MzgsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdKVU1QX0FCU09MVVRFJywgb3Bjb2RlPTExMywgYXJnPTEzLCBhcmd2YWw9MTMsIGFyZ3JlcHI9JycsIG9mZnNldD00MSwgc3RhcnRzX2xpbmU9NiwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0pVTVBfRk9SV0FSRCcsIG9wY29kZT0xMTAsIGFyZz0wLCBhcmd2YWw9NDcsIGFyZ3JlcHI9J3RvIDQ3Jywgb2Zmc2V0PTQ0LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9GQVNUJywgb3Bjb2RlPTEyNCwgYXJnPTAsIGFyZ3ZhbD0naScsIGFyZ3JlcHI9J2knLCBvZmZzZXQ9NDcsIHN0YXJ0c19saW5lPTcsIGlzX2p1bXBfdGFyZ2V0PVRydWUpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ09OU1QnLCBvcGNvZGU9MTAwLCBhcmc9MywgYXJndmFsPTYsIGFyZ3JlcHI9JzYnLCBvZmZzZXQ9NTAsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdDT01QQVJFX09QJywgb3Bjb2RlPTEwNywgYXJnPTQsIGFyZ3ZhbD0nPicsIGFyZ3JlcHI9Jz4nLCBvZmZzZXQ9NTMsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdQT1BfSlVNUF9JRl9GQUxTRScsIG9wY29kZT0xMTQsIGFyZz0xMywgYXJndmFsPTEzLCBhcmdyZXByPScnLCBvZmZzZXQ9NTYsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdCUkVBS19MT09QJywgb3Bjb2RlPTgwLCBhcmc9Tm9uZSwgYXJndmFsPU5vbmUsIGFyZ3JlcHI9JycsIG9mZnNldD01OSwgc3RhcnRzX2xpbmU9OCwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0pVTVBfQUJTT0xVVEUnLCBvcGNvZGU9MTEzLCBhcmc9MTMsIGFyZ3ZhbD0xMywgYXJncmVwcj0nJywgb2Zmc2V0PTYwLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nSlVNUF9BQlNPTFVURScsIG9wY29kZT0xMTMsIGFyZz0xMywgYXJndmFsPTEzLCBhcmdyZXByPScnLCBvZmZzZXQ9NjMsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdQT1BfQkxPQ0snLCBvcGNvZGU9ODcsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTY2LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1UcnVlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0dMT0JBTCcsIG9wY29kZT0xMTYsIGFyZz0xLCBhcmd2YWw9J3ByaW50JywgYXJncmVwcj0ncHJpbnQnLCBvZmZzZXQ9NjcsIHN0YXJ0c19saW5lPTEwLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9DT05TVCcsIG9wY29kZT0xMDAsIGFyZz00LCBhcmd2YWw9J0kgY2FuIGhheiBlbHNlIGNsYXVzZT8nLCBhcmdyZXByPSInSSBjYW4gaGF6IGVsc2UgY2xhdXNlPyciLCBvZmZzZXQ9NzAsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdDQUxMX0ZVTkNUSU9OJywgb3Bjb2RlPTEzMSwgYXJnPTEsIGFyZ3ZhbD0xLCBhcmdyZXByPScxIHBvc2l0aW9uYWwsIDAga2V5d29yZCBwYWlyJywgb2Zmc2V0PTczLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nUE9QX1RPUCcsIG9wY29kZT0xLCBhcmc9Tm9uZSwgYXJndmFsPU5vbmUsIGFyZ3JlcHI9JycsIG9mZnNldD03Niwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1NFVFVQX0xPT1AnLCBvcGNvZGU9MTIwLCBhcmc9NzQsIGFyZ3ZhbD0xNTQsIGFyZ3JlcHI9J3RvIDE1NCcsIG9mZnNldD03Nywgc3RhcnRzX2xpbmU9MTEsIGlzX2p1bXBfdGFyZ2V0PVRydWUpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfRkFTVCcsIG9wY29kZT0xMjQsIGFyZz0wLCBhcmd2YWw9J2knLCBhcmdyZXByPSdpJywgb2Zmc2V0PTgwLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1UcnVlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdQT1BfSlVNUF9JRl9GQUxTRScsIG9wY29kZT0xMTQsIGFyZz0xNDMsIGFyZ3ZhbD0xNDMsIGFyZ3JlcHI9JycsIG9mZnNldD04Mywgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfR0xPQkFMJywgb3Bjb2RlPTExNiwgYXJnPTEsIGFyZ3ZhbD0ncHJpbnQnLCBhcmdyZXByPSdwcmludCcsIG9mZnNldD04Niwgc3RhcnRzX2xpbmU9MTIsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0ZBU1QnLCBvcGNvZGU9MTI0LCBhcmc9MCwgYXJndmFsPSdpJywgYXJncmVwcj0naScsIG9mZnNldD04OSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0NBTExfRlVOQ1RJT04nLCBvcGNvZGU9MTMxLCBhcmc9MSwgYXJndmFsPTEsIGFyZ3JlcHI9JzEgcG9zaXRpb25hbCwgMCBrZXl3b3JkIHBhaXInLCBvZmZzZXQ9OTIsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdQT1BfVE9QJywgb3Bjb2RlPTEsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTk1LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9GQVNUJywgb3Bjb2RlPTEyNCwgYXJnPTAsIGFyZ3ZhbD0naScsIGFyZ3JlcHI9J2knLCBvZmZzZXQ9OTYsIHN0YXJ0c19saW5lPTEzLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9DT05TVCcsIG9wY29kZT0xMDAsIGFyZz01LCBhcmd2YWw9MSwgYXJncmVwcj0nMScsIG9mZnNldD05OSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0lOUExBQ0VfU1VCVFJBQ1QnLCBvcGNvZGU9NTYsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTEwMiwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1NUT1JFX0ZBU1QnLCBvcGNvZGU9MTI1LCBhcmc9MCwgYXJndmFsPSdpJywgYXJncmVwcj0naScsIG9mZnNldD0xMDMsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0ZBU1QnLCBvcGNvZGU9MTI0LCBhcmc9MCwgYXJndmFsPSdpJywgYXJncmVwcj0naScsIG9mZnNldD0xMDYsIHN0YXJ0c19saW5lPTE0LCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9DT05TVCcsIG9wY29kZT0xMDAsIGFyZz0zLCBhcmd2YWw9NiwgYXJncmVwcj0nNicsIG9mZnNldD0xMDksIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdDT01QQVJFX09QJywgb3Bjb2RlPTEwNywgYXJnPTQsIGFyZ3ZhbD0nPicsIGFyZ3JlcHI9Jz4nLCBvZmZzZXQ9MTEyLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nUE9QX0pVTVBfSUZfRkFMU0UnLCBvcGNvZGU9MTE0LCBhcmc9MTI0LCBhcmd2YWw9MTI0LCBhcmdyZXByPScnLCBvZmZzZXQ9MTE1LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nSlVNUF9BQlNPTFVURScsIG9wY29kZT0xMTMsIGFyZz04MCwgYXJndmFsPTgwLCBhcmdyZXByPScnLCBvZmZzZXQ9MTE4LCBzdGFydHNfbGluZT0xNSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0pVTVBfRk9SV0FSRCcsIG9wY29kZT0xMTAsIGFyZz0wLCBhcmd2YWw9MTI0LCBhcmdyZXByPSd0byAxMjQnLCBvZmZzZXQ9MTIxLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9GQVNUJywgb3Bjb2RlPTEyNCwgYXJnPTAsIGFyZ3ZhbD0naScsIGFyZ3JlcHI9J2knLCBvZmZzZXQ9MTI0LCBzdGFydHNfbGluZT0xNiwgaXNfanVtcF90YXJnZXQ9VHJ1ZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9DT05TVCcsIG9wY29kZT0xMDAsIGFyZz0yLCBhcmd2YWw9NCwgYXJncmVwcj0nNCcsIG9mZnNldD0xMjcsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdDT01QQVJFX09QJywgb3Bjb2RlPTEwNywgYXJnPTAsIGFyZ3ZhbD0nPCcsIGFyZ3JlcHI9JzwnLCBvZmZzZXQ9MTMwLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nUE9QX0pVTVBfSUZfRkFMU0UnLCBvcGNvZGU9MTE0LCBhcmc9ODAsIGFyZ3ZhbD04MCwgYXJncmVwcj0nJywgb2Zmc2V0PTEzMywgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0JSRUFLX0xPT1AnLCBvcGNvZGU9ODAsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTEzNiwgc3RhcnRzX2xpbmU9MTcsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdKVU1QX0FCU09MVVRFJywgb3Bjb2RlPTExMywgYXJnPTgwLCBhcmd2YWw9ODAsIGFyZ3JlcHI9JycsIG9mZnNldD0xMzcsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdKVU1QX0FCU09MVVRFJywgb3Bjb2RlPTExMywgYXJnPTgwLCBhcmd2YWw9ODAsIGFyZ3JlcHI9JycsIG9mZnNldD0xNDAsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdQT1BfQkxPQ0snLCBvcGNvZGU9ODcsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTE0Mywgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9VHJ1ZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9HTE9CQUwnLCBvcGNvZGU9MTE2LCBhcmc9MSwgYXJndmFsPSdwcmludCcsIGFyZ3JlcHI9J3ByaW50Jywgb2Zmc2V0PTE0NCwgc3RhcnRzX2xpbmU9MTksIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0NPTlNUJywgb3Bjb2RlPTEwMCwgYXJnPTYsIGFyZ3ZhbD0nV2hvIGxldCBsb2xjYXR6IGludG8gdGhpcyB0ZXN0IHN1aXRlPycsIGFyZ3JlcHI9IidXaG8gbGV0IGxvbGNhdHogaW50byB0aGlzIHRlc3Qgc3VpdGU/JyIsIG9mZnNldD0xNDcsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdDQUxMX0ZVTkNUSU9OJywgb3Bjb2RlPTEzMSwgYXJnPTEsIGFyZ3ZhbD0xLCBhcmdyZXByPScxIHBvc2l0aW9uYWwsIDAga2V5d29yZCBwYWlyJywgb2Zmc2V0PTE1MCwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1BPUF9UT1AnLCBvcGNvZGU9MSwgYXJnPU5vbmUsIGFyZ3ZhbD1Ob25lLCBhcmdyZXByPScnLCBvZmZzZXQ9MTUzLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nU0VUVVBfRklOQUxMWScsIG9wY29kZT0xMjIsIGFyZz03MiwgYXJndmFsPTIyOSwgYXJncmVwcj0ndG8gMjI5Jywgb2Zmc2V0PTE1NCwgc3RhcnRzX2xpbmU9MjAsIGlzX2p1bXBfdGFyZ2V0PVRydWUpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1NFVFVQX0VYQ0VQVCcsIG9wY29kZT0xMjEsIGFyZz0xMiwgYXJndmFsPTE3MiwgYXJncmVwcj0ndG8gMTcyJywgb2Zmc2V0PTE1Nywgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ09OU1QnLCBvcGNvZGU9MTAwLCBhcmc9NSwgYXJndmFsPTEsIGFyZ3JlcHI9JzEnLCBvZmZzZXQ9MTYwLCBzdGFydHNfbGluZT0yMSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ09OU1QnLCBvcGNvZGU9MTAwLCBhcmc9NywgYXJndmFsPTAsIGFyZ3JlcHI9JzAnLCBvZmZzZXQ9MTYzLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nQklOQVJZX1RSVUVfRElWSURFJywgb3Bjb2RlPTI3LCBhcmc9Tm9uZSwgYXJndmFsPU5vbmUsIGFyZ3JlcHI9JycsIG9mZnNldD0xNjYsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdQT1BfVE9QJywgb3Bjb2RlPTEsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTE2Nywgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1BPUF9CTE9DSycsIG9wY29kZT04NywgYXJnPU5vbmUsIGFyZ3ZhbD1Ob25lLCBhcmdyZXByPScnLCBvZmZzZXQ9MTY4LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nSlVNUF9GT1JXQVJEJywgb3Bjb2RlPTExMCwgYXJnPTI4LCBhcmd2YWw9MjAwLCBhcmdyZXByPSd0byAyMDAnLCBvZmZzZXQ9MTY5LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nRFVQX1RPUCcsIG9wY29kZT00LCBhcmc9Tm9uZSwgYXJndmFsPU5vbmUsIGFyZ3JlcHI9JycsIG9mZnNldD0xNzIsIHN0YXJ0c19saW5lPTIyLCBpc19qdW1wX3RhcmdldD1UcnVlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0dMT0JBTCcsIG9wY29kZT0xMTYsIGFyZz0yLCBhcmd2YWw9J1plcm9EaXZpc2lvbkVycm9yJywgYXJncmVwcj0nWmVyb0RpdmlzaW9uRXJyb3InLCBvZmZzZXQ9MTczLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nQ09NUEFSRV9PUCcsIG9wY29kZT0xMDcsIGFyZz0xMCwgYXJndmFsPSdleGNlcHRpb24gbWF0Y2gnLCBhcmdyZXByPSdleGNlcHRpb24gbWF0Y2gnLCBvZmZzZXQ9MTc2LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nUE9QX0pVTVBfSUZfRkFMU0UnLCBvcGNvZGU9MTE0LCBhcmc9MTk5LCBhcmd2YWw9MTk5LCBhcmdyZXByPScnLCBvZmZzZXQ9MTc5LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nUE9QX1RPUCcsIG9wY29kZT0xLCBhcmc9Tm9uZSwgYXJndmFsPU5vbmUsIGFyZ3JlcHI9JycsIG9mZnNldD0xODIsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdQT1BfVE9QJywgb3Bjb2RlPTEsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTE4Mywgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1BPUF9UT1AnLCBvcGNvZGU9MSwgYXJnPU5vbmUsIGFyZ3ZhbD1Ob25lLCBhcmdyZXByPScnLCBvZmZzZXQ9MTg0LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9HTE9CQUwnLCBvcGNvZGU9MTE2LCBhcmc9MSwgYXJndmFsPSdwcmludCcsIGFyZ3JlcHI9J3ByaW50Jywgb2Zmc2V0PTE4NSwgc3RhcnRzX2xpbmU9MjMsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0NPTlNUJywgb3Bjb2RlPTEwMCwgYXJnPTgsIGFyZ3ZhbD0nSGVyZSB3ZSBnbywgaGVyZSB3ZSBnbywgaGVyZSB3ZSBnby4uLicsIGFyZ3JlcHI9IidIZXJlIHdlIGdvLCBoZXJlIHdlIGdvLCBoZXJlIHdlIGdvLi4uJyIsIG9mZnNldD0xODgsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdDQUxMX0ZVTkNUSU9OJywgb3Bjb2RlPTEzMSwgYXJnPTEsIGFyZ3ZhbD0xLCBhcmdyZXByPScxIHBvc2l0aW9uYWwsIDAga2V5d29yZCBwYWlyJywgb2Zmc2V0PTE5MSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1BPUF9UT1AnLCBvcGNvZGU9MSwgYXJnPU5vbmUsIGFyZ3ZhbD1Ob25lLCBhcmdyZXByPScnLCBvZmZzZXQ9MTk0LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nUE9QX0VYQ0VQVCcsIG9wY29kZT04OSwgYXJnPU5vbmUsIGFyZ3ZhbD1Ob25lLCBhcmdyZXByPScnLCBvZmZzZXQ9MTk1LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nSlVNUF9GT1JXQVJEJywgb3Bjb2RlPTExMCwgYXJnPTI2LCBhcmd2YWw9MjI1LCBhcmdyZXByPSd0byAyMjUnLCBvZmZzZXQ9MTk2LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nRU5EX0ZJTkFMTFknLCBvcGNvZGU9ODgsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTE5OSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9VHJ1ZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9GQVNUJywgb3Bjb2RlPTEyNCwgYXJnPTAsIGFyZ3ZhbD0naScsIGFyZ3JlcHI9J2knLCBvZmZzZXQ9MjAwLCBzdGFydHNfbGluZT0yNSwgaXNfanVtcF90YXJnZXQ9VHJ1ZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nU0VUVVBfV0lUSCcsIG9wY29kZT0xNDMsIGFyZz0xNywgYXJndmFsPTIyMywgYXJncmVwcj0ndG8gMjIzJywgb2Zmc2V0PTIwMywgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1NUT1JFX0ZBU1QnLCBvcGNvZGU9MTI1LCBhcmc9MSwgYXJndmFsPSdkb2RneScsIGFyZ3JlcHI9J2RvZGd5Jywgb2Zmc2V0PTIwNiwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfR0xPQkFMJywgb3Bjb2RlPTExNiwgYXJnPTEsIGFyZ3ZhbD0ncHJpbnQnLCBhcmdyZXByPSdwcmludCcsIG9mZnNldD0yMDksIHN0YXJ0c19saW5lPTI2LCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9DT05TVCcsIG9wY29kZT0xMDAsIGFyZz05LCBhcmd2YWw9J05ldmVyIHJlYWNoIHRoaXMnLCBhcmdyZXByPSInTmV2ZXIgcmVhY2ggdGhpcyciLCBvZmZzZXQ9MjEyLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nQ0FMTF9GVU5DVElPTicsIG9wY29kZT0xMzEsIGFyZz0xLCBhcmd2YWw9MSwgYXJncmVwcj0nMSBwb3NpdGlvbmFsLCAwIGtleXdvcmQgcGFpcicsIG9mZnNldD0yMTUsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdQT1BfVE9QJywgb3Bjb2RlPTEsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTIxOCwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1BPUF9CTE9DSycsIG9wY29kZT04NywgYXJnPU5vbmUsIGFyZ3ZhbD1Ob25lLCBhcmdyZXByPScnLCBvZmZzZXQ9MjE5LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nTE9BRF9DT05TVCcsIG9wY29kZT0xMDAsIGFyZz0wLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nTm9uZScsIG9mZnNldD0yMjAsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdXSVRIX0NMRUFOVVAnLCBvcGNvZGU9ODEsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTIyMywgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9VHJ1ZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nRU5EX0ZJTkFMTFknLCBvcGNvZGU9ODgsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTIyNCwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1BPUF9CTE9DSycsIG9wY29kZT04NywgYXJnPU5vbmUsIGFyZ3ZhbD1Ob25lLCBhcmdyZXByPScnLCBvZmZzZXQ9MjI1LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1UcnVlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0NPTlNUJywgb3Bjb2RlPTEwMCwgYXJnPTAsIGFyZ3ZhbD1Ob25lLCBhcmdyZXByPSdOb25lJywgb2Zmc2V0PTIyNiwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfR0xPQkFMJywgb3Bjb2RlPTExNiwgYXJnPTEsIGFyZ3ZhbD0ncHJpbnQnLCBhcmdyZXByPSdwcmludCcsIG9mZnNldD0yMjksIHN0YXJ0c19saW5lPTI4LCBpc19qdW1wX3RhcmdldD1UcnVlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdMT0FEX0NPTlNUJywgb3Bjb2RlPTEwMCwgYXJnPTEwLCBhcmd2YWw9Ik9LLCBub3cgd2UncmUgZG9uZSIsIGFyZ3JlcHI9JyJPSywgbm93IHdlXCdyZSBkb25lIicsIG9mZnNldD0yMzIsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKKyAgSW5zdHJ1Y3Rpb24ob3BuYW1lPSdDQUxMX0ZVTkNUSU9OJywgb3Bjb2RlPTEzMSwgYXJnPTEsIGFyZ3ZhbD0xLCBhcmdyZXByPScxIHBvc2l0aW9uYWwsIDAga2V5d29yZCBwYWlyJywgb2Zmc2V0PTIzNSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J1BPUF9UT1AnLCBvcGNvZGU9MSwgYXJnPU5vbmUsIGFyZ3ZhbD1Ob25lLCBhcmdyZXByPScnLCBvZmZzZXQ9MjM4LCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nRU5EX0ZJTkFMTFknLCBvcGNvZGU9ODgsIGFyZz1Ob25lLCBhcmd2YWw9Tm9uZSwgYXJncmVwcj0nJywgb2Zmc2V0PTIzOSwgc3RhcnRzX2xpbmU9Tm9uZSwgaXNfanVtcF90YXJnZXQ9RmFsc2UpLAorICBJbnN0cnVjdGlvbihvcG5hbWU9J0xPQURfQ09OU1QnLCBvcGNvZGU9MTAwLCBhcmc9MCwgYXJndmFsPU5vbmUsIGFyZ3JlcHI9J05vbmUnLCBvZmZzZXQ9MjQwLCBzdGFydHNfbGluZT1Ob25lLCBpc19qdW1wX3RhcmdldD1GYWxzZSksCisgIEluc3RydWN0aW9uKG9wbmFtZT0nUkVUVVJOX1ZBTFVFJywgb3Bjb2RlPTgzLCBhcmc9Tm9uZSwgYXJndmFsPU5vbmUsIGFyZ3JlcHI9JycsIG9mZnNldD0yNDMsIHN0YXJ0c19saW5lPU5vbmUsIGlzX2p1bXBfdGFyZ2V0PUZhbHNlKSwKK10KKworY2xhc3MgSW5zdHJ1Y3Rpb25UZXN0cyhCeXRlY29kZVRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9vdXRlcihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRCeXRlY29kZUV4YWN0bHlNYXRjaGVzKG91dGVyLCBleHBlY3RlZF9vcGluZm9fb3V0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lX29mZnNldD1leHBlY3RlZF9vdXRlcl9vZmZzZXQpCisKKyAgICBkZWYgdGVzdF9uZXN0ZWQoc2VsZik6CisgICAgICAgIHdpdGggY2FwdHVyZWRfc3Rkb3V0KCk6CisgICAgICAgICAgICBmID0gb3V0ZXIoKQorICAgICAgICBzZWxmLmFzc2VydEJ5dGVjb2RlRXhhY3RseU1hdGNoZXMoZiwgZXhwZWN0ZWRfb3BpbmZvX2YsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lX29mZnNldD1leHBlY3RlZF9vdXRlcl9vZmZzZXQpCisKKyAgICBkZWYgdGVzdF9kb3VibHlfbmVzdGVkKHNlbGYpOgorICAgICAgICB3aXRoIGNhcHR1cmVkX3N0ZG91dCgpOgorICAgICAgICAgICAgaW5uZXIgPSBvdXRlcigpKCkKKyAgICAgICAgc2VsZi5hc3NlcnRCeXRlY29kZUV4YWN0bHlNYXRjaGVzKGlubmVyLCBleHBlY3RlZF9vcGluZm9faW5uZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lX29mZnNldD1leHBlY3RlZF9vdXRlcl9vZmZzZXQpCisKKyAgICBkZWYgdGVzdF9qdW1weShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRCeXRlY29kZUV4YWN0bHlNYXRjaGVzKGp1bXB5LCBleHBlY3RlZF9vcGluZm9fanVtcHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lX29mZnNldD1leHBlY3RlZF9qdW1weV9vZmZzZXQpCisKK2NsYXNzIEJ5dGVjb2RlVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X2luc3RhbnRpYXRpb24oc2VsZik6CisgICAgICAgICMgVGVzdCB3aXRoIGZ1bmN0aW9uLCBtZXRob2QsIGNvZGUgc3RyaW5nIGFuZCBjb2RlIG9iamVjdAorICAgICAgICBmb3Igb2JqIGluIFtfZiwgX0MoMSkuX19pbml0X18sICJhPTEiLCBfZi5fX2NvZGVfX106CisgICAgICAgICAgICBiID0gZGlzLkJ5dGVjb2RlKG9iaikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShiLmNvZGVvYmosIHR5cGVzLkNvZGVUeXBlKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZGlzLkJ5dGVjb2RlLCBvYmplY3QoKSkKKworICAgIGRlZiB0ZXN0X2l0ZXJhdGlvbihzZWxmKToKKyAgICAgICAgYiA9IGRpcy5CeXRlY29kZShfZikKKyAgICAgICAgZm9yIGluc3RyIGluIGI6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaW5zdHIsIGRpcy5JbnN0cnVjdGlvbikKKworICAgICAgICBhc3NlcnQgbGVuKGxpc3QoYikpID4gMCAgIyBJdGVyYXRpbmcgc2hvdWxkIHlpZWxkIGF0IGxlYXN0IDEgaW5zdHJ1Y3Rpb24KKworICAgIGRlZiB0ZXN0X2luZm8oc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IDEwMDAKKyAgICAgICAgZm9yIHgsIGV4cGVjdGVkIGluIENvZGVJbmZvVGVzdHMudGVzdF9wYWlyczoKKyAgICAgICAgICAgIGIgPSBkaXMuQnl0ZWNvZGUoeCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXgoYi5pbmZvKCksIGV4cGVjdGVkKQorCisgICAgZGVmIHRlc3RfZGlzcGxheV9jb2RlKHNlbGYpOgorICAgICAgICBiID0gZGlzLkJ5dGVjb2RlKF9mKQorICAgICAgICBvdXRwdXQgPSBpby5TdHJpbmdJTygpCisgICAgICAgIGIuZGlzcGxheV9jb2RlKGZpbGU9b3V0cHV0KQorICAgICAgICByZXN1bHQgPSBbbGluZS5yc3RyaXAoKSBmb3IgbGluZSBpbiBvdXRwdXQuZ2V0dmFsdWUoKS5zcGxpdGxpbmVzKCldCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LCBkaXNfZi5zcGxpdGxpbmVzKCkpCisKKwogZGVmIHRlc3RfbWFpbigpOgotICAgIHJ1bl91bml0dGVzdChEaXNUZXN0cywgQ29kZUluZm9UZXN0cykKKyAgICBydW5fdW5pdHRlc3QoRGlzVGVzdHMsIENvZGVJbmZvVGVzdHMsIEluc3RydWN0aW9uVGVzdHMsIEJ5dGVjb2RlVGVzdHMpCiAKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICAgdGVzdF9tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZG9jdGVzdC5weSBiL0xpYi90ZXN0L3Rlc3RfZG9jdGVzdC5weQppbmRleCA4ZjhjN2M3Li4zZTM2ZjE5IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2RvY3Rlc3QucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9kb2N0ZXN0LnB5CkBAIC0xNDA5LDggKzE0MDksNDAgQEAKICAgICAgICAgMgogICAgIFRlc3RSZXN1bHRzKGZhaWxlZD0zLCBhdHRlbXB0ZWQ9NSkKIAotRm9yIHRoZSBwdXJwb3NlcyBvZiBSRVBPUlRfT05MWV9GSVJTVF9GQUlMVVJFLCB1bmV4cGVjdGVkIGV4Y2VwdGlvbnMKLWNvdW50IGFzIGZhaWx1cmVzOgorVGhlIEZBSUxfRkFTVCBmbGFnIGNhdXNlcyB0aGUgcnVubmVyIHRvIGV4aXQgYWZ0ZXIgdGhlIGZpcnN0IGZhaWxpbmcgZXhhbXBsZSwKK3NvIHN1YnNlcXVlbnQgZXhhbXBsZXMgYXJlIG5vdCBldmVuIGF0dGVtcHRlZDoKKworICAgID4+PiBmbGFncyA9IGRvY3Rlc3QuRkFJTF9GQVNUCisgICAgPj4+IGRvY3Rlc3QuRG9jVGVzdFJ1bm5lcih2ZXJib3NlPUZhbHNlLCBvcHRpb25mbGFncz1mbGFncykucnVuKHRlc3QpCisgICAgLi4uICMgZG9jdGVzdDogK0VMTElQU0lTCisgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgIEZpbGUgLi4uLCBsaW5lIDUsIGluIGYKKyAgICBGYWlsZWQgZXhhbXBsZToKKyAgICAgICAgcHJpbnQoMikgIyBmaXJzdCBmYWlsdXJlCisgICAgRXhwZWN0ZWQ6CisgICAgICAgIDIwMAorICAgIEdvdDoKKyAgICAgICAgMgorICAgIFRlc3RSZXN1bHRzKGZhaWxlZD0xLCBhdHRlbXB0ZWQ9MikKKworU3BlY2lmeWluZyBib3RoIEZBSUxfRkFTVCBhbmQgUkVQT1JUX09OTFlfRklSU1RfRkFJTFVSRSBpcyBlcXVpdmFsZW50IHRvCitGQUlMX0ZBU1Qgb25seToKKworICAgID4+PiBmbGFncyA9IGRvY3Rlc3QuRkFJTF9GQVNUIHwgZG9jdGVzdC5SRVBPUlRfT05MWV9GSVJTVF9GQUlMVVJFCisgICAgPj4+IGRvY3Rlc3QuRG9jVGVzdFJ1bm5lcih2ZXJib3NlPUZhbHNlLCBvcHRpb25mbGFncz1mbGFncykucnVuKHRlc3QpCisgICAgLi4uICMgZG9jdGVzdDogK0VMTElQU0lTCisgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgIEZpbGUgLi4uLCBsaW5lIDUsIGluIGYKKyAgICBGYWlsZWQgZXhhbXBsZToKKyAgICAgICAgcHJpbnQoMikgIyBmaXJzdCBmYWlsdXJlCisgICAgRXhwZWN0ZWQ6CisgICAgICAgIDIwMAorICAgIEdvdDoKKyAgICAgICAgMgorICAgIFRlc3RSZXN1bHRzKGZhaWxlZD0xLCBhdHRlbXB0ZWQ9MikKKworRm9yIHRoZSBwdXJwb3NlcyBvZiBib3RoIFJFUE9SVF9PTkxZX0ZJUlNUX0ZBSUxVUkUgYW5kIEZBSUxfRkFTVCwgdW5leHBlY3RlZAorZXhjZXB0aW9ucyBjb3VudCBhcyBmYWlsdXJlczoKIAogICAgID4+PiBkZWYgZih4KToKICAgICAuLi4gICAgIHInJycKQEAgLTE0MzcsNiArMTQ2OSwxNyBAQAogICAgICAgICAuLi4KICAgICAgICAgVmFsdWVFcnJvcjogMgogICAgIFRlc3RSZXN1bHRzKGZhaWxlZD0zLCBhdHRlbXB0ZWQ9NSkKKyAgICA+Pj4gZmxhZ3MgPSBkb2N0ZXN0LkZBSUxfRkFTVAorICAgID4+PiBkb2N0ZXN0LkRvY1Rlc3RSdW5uZXIodmVyYm9zZT1GYWxzZSwgb3B0aW9uZmxhZ3M9ZmxhZ3MpLnJ1bih0ZXN0KQorICAgIC4uLiAjIGRvY3Rlc3Q6ICtFTExJUFNJUworICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICBGaWxlIC4uLiwgbGluZSA1LCBpbiBmCisgICAgRmFpbGVkIGV4YW1wbGU6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoMikgIyBmaXJzdCBmYWlsdXJlCisgICAgRXhjZXB0aW9uIHJhaXNlZDoKKyAgICAgICAgLi4uCisgICAgICAgIFZhbHVlRXJyb3I6IDIKKyAgICBUZXN0UmVzdWx0cyhmYWlsZWQ9MSwgYXR0ZW1wdGVkPTIpCiAKIE5ldyBvcHRpb24gZmxhZ3MgY2FuIGFsc28gYmUgcmVnaXN0ZXJlZCwgdmlhIHJlZ2lzdGVyX29wdGlvbmZsYWcoKS4gIEhlcmUKIHdlIHJlYWNoIGludG8gZG9jdGVzdCdzIGludGVybmFscyBhIGJpdC4KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZW1haWwvdG9ydHVyZV90ZXN0LnB5IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90b3J0dXJlX3Rlc3QucHkKaW5kZXggNTQ0YjFiYi4uMTljZjY0ZiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9lbWFpbC90b3J0dXJlX3Rlc3QucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90b3J0dXJlX3Rlc3QucHkKQEAgLTI3LDcgKzI3LDcgQEAKICMgUHJldmVudCB0aGlzIHRlc3QgZnJvbSBydW5uaW5nIGluIHRoZSBQeXRob24gZGlzdHJvCiB0cnk6CiAgICAgb3BlbmZpbGUoJ2NyaXNwaW4tdG9ydHVyZS50eHQnKQotZXhjZXB0IElPRXJyb3I6CitleGNlcHQgT1NFcnJvcjoKICAgICByYWlzZSBUZXN0U2tpcHBlZAogCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZW51bWVyYXRlLnB5IGIvTGliL3Rlc3QvdGVzdF9lbnVtZXJhdGUucHkKaW5kZXggMmU5MDRjZi4uYTJkMThkMCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9lbnVtZXJhdGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9lbnVtZXJhdGUucHkKQEAgLTEsNCArMSw1IEBACiBpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCBvcGVyYXRvcgogaW1wb3J0IHN5cwogaW1wb3J0IHBpY2tsZQogCkBAIC0xNjgsMTUgKzE2OSwxMiBAQAogICAgICAgICB4ID0gcmFuZ2UoMSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKHJldmVyc2VkKHgpKSwgdHlwZShpdGVyKHgpKSkKIAotICAgIEBzdXBwb3J0LmNweXRob25fb25seQogICAgIGRlZiB0ZXN0X2xlbihzZWxmKToKLSAgICAgICAgIyBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwgbm90IGFuIGludGVyZmFjZSByZXF1aXJlbWVudAotICAgICAgICBmcm9tIHRlc3QudGVzdF9pdGVybGVuIGltcG9ydCBsZW4KICAgICAgICAgZm9yIHMgaW4gKCdoZWxsbycsIHR1cGxlKCdoZWxsbycpLCBsaXN0KCdoZWxsbycpLCByYW5nZSg1KSk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXZlcnNlZChzKSksIGxlbihzKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IubGVuZ3RoX2hpbnQocmV2ZXJzZWQocykpLCBsZW4ocykpCiAgICAgICAgICAgICByID0gcmV2ZXJzZWQocykKICAgICAgICAgICAgIGxpc3QocikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHIpLCAwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVyYXRvci5sZW5ndGhfaGludChyKSwgMCkKICAgICAgICAgY2xhc3MgU2VxV2l0aFdlaXJkTGVuOgogICAgICAgICAgICAgY2FsbGVkID0gRmFsc2UKICAgICAgICAgICAgIGRlZiBfX2xlbl9fKHNlbGYpOgpAQCAtMTg3LDcgKzE4NSw3IEBACiAgICAgICAgICAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgaW5kZXgpOgogICAgICAgICAgICAgICAgIHJldHVybiBpbmRleAogICAgICAgICByID0gcmV2ZXJzZWQoU2VxV2l0aFdlaXJkTGVuKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFplcm9EaXZpc2lvbkVycm9yLCBsZW4sIHIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFplcm9EaXZpc2lvbkVycm9yLCBvcGVyYXRvci5sZW5ndGhfaGludCwgcikKIAogCiAgICAgZGVmIHRlc3RfZ2Moc2VsZik6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2Vwb2xsLnB5IGIvTGliL3Rlc3QvdGVzdF9lcG9sbC5weQppbmRleCA3Zjk1NDdmLi43MDc3YTcwIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2Vwb2xsLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZXBvbGwucHkKQEAgLTMzLDcgKzMzLDcgQEAKIAogdHJ5OgogICAgIHNlbGVjdC5lcG9sbCgpCi1leGNlcHQgSU9FcnJvciBhcyBlOgorZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICBpZiBlLmVycm5vID09IGVycm5vLkVOT1NZUzoKICAgICAgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoImtlcm5lbCBkb2Vzbid0IHN1cHBvcnQgZXBvbGwoKSIpCiAgICAgcmFpc2UKQEAgLTU2LDcgKzU2LDcgQEAKICAgICAgICAgY2xpZW50LnNldGJsb2NraW5nKEZhbHNlKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBjbGllbnQuY29ubmVjdCgoJzEyNy4wLjAuMScsIHNlbGYuc2VydmVyU29ja2V0LmdldHNvY2tuYW1lKClbMV0pKQotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUuYXJnc1swXSwgZXJybm8uRUlOUFJPR1JFU1MpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiQ29ubmVjdCBzaG91bGQgaGF2ZSByYWlzZWQgRUlOUFJPR1JFU1MiKQpAQCAtODcsNiArODcsMTMgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxlY3QuZXBvbGwsIFsnZm9vJ10pCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZWN0LmVwb2xsLCB7fSkKIAorICAgIGRlZiB0ZXN0X2NvbnRleHRfbWFuYWdlcihzZWxmKToKKyAgICAgICAgd2l0aCBzZWxlY3QuZXBvbGwoMTYpIGFzIGVwOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKGVwLmZpbGVubygpLCAwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShlcC5jbG9zZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShlcC5jbG9zZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGVwLmZpbGVubykKKwogICAgIGRlZiB0ZXN0X2FkZChzZWxmKToKICAgICAgICAgc2VydmVyLCBjbGllbnQgPSBzZWxmLl9jb25uZWN0ZWRfcGFpcigpCiAKQEAgLTExNSwxMiArMTIyLDEyIEBACiAgICAgICAgICAgICAjIFZhbHVlRXJyb3I6IGZpbGUgZGVzY3JpcHRvciBjYW5ub3QgYmUgYSBuZWdhdGl2ZSBpbnRlZ2VyICgtMSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGVwLnJlZ2lzdGVyLCAtMSwKICAgICAgICAgICAgICAgICBzZWxlY3QuRVBPTExJTiB8IHNlbGVjdC5FUE9MTE9VVCkKLSAgICAgICAgICAgICMgSU9FcnJvcjogW0Vycm5vIDldIEJhZCBmaWxlIGRlc2NyaXB0b3IKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGVwLnJlZ2lzdGVyLCAxMDAwMCwKKyAgICAgICAgICAgICMgT1NFcnJvcjogW0Vycm5vIDldIEJhZCBmaWxlIGRlc2NyaXB0b3IKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIGVwLnJlZ2lzdGVyLCAxMDAwMCwKICAgICAgICAgICAgICAgICBzZWxlY3QuRVBPTExJTiB8IHNlbGVjdC5FUE9MTE9VVCkKICAgICAgICAgICAgICMgcmVnaXN0ZXJpbmcgdHdpY2UgYWxzbyByYWlzZXMgYW4gZXhjZXB0aW9uCiAgICAgICAgICAgICBlcC5yZWdpc3RlcihzZXJ2ZXIsIHNlbGVjdC5FUE9MTElOIHwgc2VsZWN0LkVQT0xMT1VUKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgZXAucmVnaXN0ZXIsIHNlcnZlciwKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIGVwLnJlZ2lzdGVyLCBzZXJ2ZXIsCiAgICAgICAgICAgICAgICAgc2VsZWN0LkVQT0xMSU4gfCBzZWxlY3QuRVBPTExPVVQpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBlcC5jbG9zZSgpCkBAIC0xNDIsNyArMTQ5LDcgQEAKICAgICAgICAgZXAuY2xvc2UoKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBlcDIucG9sbCgxLCA0KQotICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmFyZ3NbMF0sIGVycm5vLkVCQURGLCBlKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5mYWlsKCJlcG9sbCBvbiBjbG9zZWQgZmQgZGlkbid0IHJhaXNlIEVCQURGIikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZXhjZXB0aW9ucy5weSBiL0xpYi90ZXN0L3Rlc3RfZXhjZXB0aW9ucy5weQppbmRleCAxYWQ3Zjk3Li4yZjM5ZDRiIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2V4Y2VwdGlvbnMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9leGNlcHRpb25zLnB5CkBAIC04LDggKzgsOCBAQAogaW1wb3J0IGVycm5vCiAKIGZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCAoVEVTVEZOLCBjYXB0dXJlZF9vdXRwdXQsIGNoZWNrX2ltcGxfZGV0YWlsLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjcHl0aG9uX29ubHksIGdjX2NvbGxlY3QsIHJ1bl91bml0dGVzdCwgbm9fdHJhY2luZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5saW5rKQorICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja193YXJuaW5ncywgY3B5dGhvbl9vbmx5LCBnY19jb2xsZWN0LCBydW5fdW5pdHRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG5vX3RyYWNpbmcsIHVubGluaykKIAogY2xhc3MgTmFpdmVFeGNlcHRpb24oRXhjZXB0aW9uKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgeCk6CkBAIC0yNDQsMjIgKzI0NCwyMiBAQAogICAgICAgICAgICAgICAgIHsnYXJncycgOiAoJ2ZvbycsIDEpfSksCiAgICAgICAgICAgICAoU3lzdGVtRXhpdCwgKCdmb28nLCksCiAgICAgICAgICAgICAgICAgeydhcmdzJyA6ICgnZm9vJywpLCAnY29kZScgOiAnZm9vJ30pLAotICAgICAgICAgICAgKElPRXJyb3IsICgnZm9vJywpLAorICAgICAgICAgICAgKE9TRXJyb3IsICgnZm9vJywpLAogICAgICAgICAgICAgICAgIHsnYXJncycgOiAoJ2ZvbycsKSwgJ2ZpbGVuYW1lJyA6IE5vbmUsCiAgICAgICAgICAgICAgICAgICdlcnJubycgOiBOb25lLCAnc3RyZXJyb3InIDogTm9uZX0pLAotICAgICAgICAgICAgKElPRXJyb3IsICgnZm9vJywgJ2JhcicpLAorICAgICAgICAgICAgKE9TRXJyb3IsICgnZm9vJywgJ2JhcicpLAogICAgICAgICAgICAgICAgIHsnYXJncycgOiAoJ2ZvbycsICdiYXInKSwgJ2ZpbGVuYW1lJyA6IE5vbmUsCiAgICAgICAgICAgICAgICAgICdlcnJubycgOiAnZm9vJywgJ3N0cmVycm9yJyA6ICdiYXInfSksCi0gICAgICAgICAgICAoSU9FcnJvciwgKCdmb28nLCAnYmFyJywgJ2JheicpLAorICAgICAgICAgICAgKE9TRXJyb3IsICgnZm9vJywgJ2JhcicsICdiYXonKSwKICAgICAgICAgICAgICAgICB7J2FyZ3MnIDogKCdmb28nLCAnYmFyJyksICdmaWxlbmFtZScgOiAnYmF6JywKICAgICAgICAgICAgICAgICAgJ2Vycm5vJyA6ICdmb28nLCAnc3RyZXJyb3InIDogJ2Jhcid9KSwKLSAgICAgICAgICAgIChJT0Vycm9yLCAoJ2ZvbycsICdiYXInLCAnYmF6JywgJ3F1dXgnKSwKKyAgICAgICAgICAgIChPU0Vycm9yLCAoJ2ZvbycsICdiYXInLCAnYmF6JywgJ3F1dXgnKSwKICAgICAgICAgICAgICAgICB7J2FyZ3MnIDogKCdmb28nLCAnYmFyJywgJ2JheicsICdxdXV4Jyl9KSwKLSAgICAgICAgICAgIChFbnZpcm9ubWVudEVycm9yLCAoJ2Vycm5vU3RyJywgJ3N0ckVycm9yU3RyJywgJ2ZpbGVuYW1lU3RyJyksCisgICAgICAgICAgICAoT1NFcnJvciwgKCdlcnJub1N0cicsICdzdHJFcnJvclN0cicsICdmaWxlbmFtZVN0cicpLAogICAgICAgICAgICAgICAgIHsnYXJncycgOiAoJ2Vycm5vU3RyJywgJ3N0ckVycm9yU3RyJyksCiAgICAgICAgICAgICAgICAgICdzdHJlcnJvcicgOiAnc3RyRXJyb3JTdHInLCAnZXJybm8nIDogJ2Vycm5vU3RyJywKICAgICAgICAgICAgICAgICAgJ2ZpbGVuYW1lJyA6ICdmaWxlbmFtZVN0cid9KSwKLSAgICAgICAgICAgIChFbnZpcm9ubWVudEVycm9yLCAoMSwgJ3N0ckVycm9yU3RyJywgJ2ZpbGVuYW1lU3RyJyksCisgICAgICAgICAgICAoT1NFcnJvciwgKDEsICdzdHJFcnJvclN0cicsICdmaWxlbmFtZVN0cicpLAogICAgICAgICAgICAgICAgIHsnYXJncycgOiAoMSwgJ3N0ckVycm9yU3RyJyksICdlcnJubycgOiAxLAogICAgICAgICAgICAgICAgICAnc3RyZXJyb3InIDogJ3N0ckVycm9yU3RyJywgJ2ZpbGVuYW1lJyA6ICdmaWxlbmFtZVN0cid9KSwKICAgICAgICAgICAgIChTeW50YXhFcnJvciwgKCksIHsnbXNnJyA6IE5vbmUsICd0ZXh0JyA6IE5vbmUsCkBAIC00MDksNyArNDA5LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZS5fX2NvbnRleHRfXykKICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZS5fX2NhdXNlX18pCiAKLSAgICAgICAgY2xhc3MgTXlFeGNlcHRpb24oRW52aXJvbm1lbnRFcnJvcik6CisgICAgICAgIGNsYXNzIE15RXhjZXB0aW9uKE9TRXJyb3IpOgogICAgICAgICAgICAgcGFzcwogCiAgICAgICAgIGUgPSBNeUV4Y2VwdGlvbigpCkBAIC05NDcsOSArOTQ3LDEwIEBACiAKICAgICBkZWYgdGVzdF9ub25fc3RyX2FyZ3VtZW50KHNlbGYpOgogICAgICAgICAjIElzc3VlICMxNTc3OAotICAgICAgICBhcmcgPSBiJ2FiYycKLSAgICAgICAgZXhjID0gSW1wb3J0RXJyb3IoYXJnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihhcmcpLCBzdHIoZXhjKSkKKyAgICAgICAgd2l0aCBjaGVja193YXJuaW5ncygoJycsIEJ5dGVzV2FybmluZyksIHF1aWV0PVRydWUpOgorICAgICAgICAgICAgYXJnID0gYidhYmMnCisgICAgICAgICAgICBleGMgPSBJbXBvcnRFcnJvcihhcmcpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihhcmcpLCBzdHIoZXhjKSkKIAogCiBkZWYgdGVzdF9tYWluKCk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2ZjbnRsLnB5IGIvTGliL3Rlc3QvdGVzdF9mY250bC5weQppbmRleCAwOWNiMDQ3Li45ZGQ4ODdhIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2ZjbnRsLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZmNudGwucHkKQEAgLTEsNyArMSw0IEBACiAiIiJUZXN0IHByb2dyYW0gZm9yIHRoZSBmY250bCBDIG1vZHVsZS4KLQotT1MvMitFTVggZG9lc24ndCBzdXBwb3J0IHRoZSBmaWxlIGxvY2tpbmcgb3BlcmF0aW9ucy4KLQogIiIiCiBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCBvcwpAQCAtMzcsOCArMzQsNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZjbnRsLkZfV1JMQ0ssIDApCiAgICAgZWxpZiBzeXMucGxhdGZvcm0gaW4gWydhaXgzJywgJ2FpeDQnLCAnaHAtdXhCJywgJ3VuaXh3YXJlNyddOgogICAgICAgICBsb2NrZGF0YSA9IHN0cnVjdC5wYWNrKCdoaGxsbGlpJywgZmNudGwuRl9XUkxDSywgMCwgMCwgMCwgMCwgMCwgMCkKLSAgICBlbGlmIHN5cy5wbGF0Zm9ybSBpbiBbJ29zMmVteCddOgotICAgICAgICBsb2NrZGF0YSA9IE5vbmUKICAgICBlbHNlOgogICAgICAgICBsb2NrZGF0YSA9IHN0cnVjdC5wYWNrKCdoaCcrc3RhcnRfbGVuKydoaCcsIGZjbnRsLkZfV1JMQ0ssIDAsIDAsIDAsIDAsIDApCiAgICAgaWYgbG9ja2RhdGE6CkBAIC02NCwxOCArNTksMTYgQEAKICAgICAgICAgcnYgPSBmY250bC5mY250bChzZWxmLmYuZmlsZW5vKCksIGZjbnRsLkZfU0VURkwsIG9zLk9fTk9OQkxPQ0spCiAgICAgICAgIGlmIHZlcmJvc2U6CiAgICAgICAgICAgICBwcmludCgnU3RhdHVzIGZyb20gZmNudGwgd2l0aCBPX05PTkJMT0NLOiAnLCBydikKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtIG5vdCBpbiBbJ29zMmVteCddOgotICAgICAgICAgICAgcnYgPSBmY250bC5mY250bChzZWxmLmYuZmlsZW5vKCksIGZjbnRsLkZfU0VUTEtXLCBsb2NrZGF0YSkKLSAgICAgICAgICAgIGlmIHZlcmJvc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQoJ1N0cmluZyBmcm9tIGZjbnRsIHdpdGggRl9TRVRMS1c6ICcsIHJlcHIocnYpKQorICAgICAgICBydiA9IGZjbnRsLmZjbnRsKHNlbGYuZi5maWxlbm8oKSwgZmNudGwuRl9TRVRMS1csIGxvY2tkYXRhKQorICAgICAgICBpZiB2ZXJib3NlOgorICAgICAgICAgICAgcHJpbnQoJ1N0cmluZyBmcm9tIGZjbnRsIHdpdGggRl9TRVRMS1c6ICcsIHJlcHIocnYpKQogICAgICAgICBzZWxmLmYuY2xvc2UoKQogCiAgICAgZGVmIHRlc3RfZmNudGxfZmlsZV9kZXNjcmlwdG9yKHNlbGYpOgogICAgICAgICAjIGFnYWluLCBidXQgcGFzcyB0aGUgZmlsZSByYXRoZXIgdGhhbiBudW1lcmljIGRlc2NyaXB0b3IKICAgICAgICAgc2VsZi5mID0gb3BlbihURVNURk4sICd3YicpCiAgICAgICAgIHJ2ID0gZmNudGwuZmNudGwoc2VsZi5mLCBmY250bC5GX1NFVEZMLCBvcy5PX05PTkJMT0NLKQotICAgICAgICBpZiBzeXMucGxhdGZvcm0gbm90IGluIFsnb3MyZW14J106Ci0gICAgICAgICAgICBydiA9IGZjbnRsLmZjbnRsKHNlbGYuZiwgZmNudGwuRl9TRVRMS1csIGxvY2tkYXRhKQorICAgICAgICBydiA9IGZjbnRsLmZjbnRsKHNlbGYuZiwgZmNudGwuRl9TRVRMS1csIGxvY2tkYXRhKQogICAgICAgICBzZWxmLmYuY2xvc2UoKQogCiAgICAgZGVmIHRlc3RfZmNudGxfYmFkX2ZpbGUoc2VsZik6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2ZpbGUucHkgYi9MaWIvdGVzdC90ZXN0X2ZpbGUucHkKaW5kZXggYTc4ZGRmMy4uMWRhZmZlNCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9maWxlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZmlsZS5weQpAQCAtODcsNyArODcsNyBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IGYuY2xvc2VkKQogCiAgICAgICAgIGlmIGhhc2F0dHIoZiwgInJlYWRpbnRvIik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygoSU9FcnJvciwgVHlwZUVycm9yKSwgZi5yZWFkaW50bywgIiIpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygoT1NFcnJvciwgVHlwZUVycm9yKSwgZi5yZWFkaW50bywgIiIpCiAgICAgICAgIGYuY2xvc2UoKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoZi5jbG9zZWQpCiAKQEAgLTEyNiw3ICsxMjYsNyBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmYuX19leGl0X18oKnN5cy5leGNfaW5mbygpKSwgTm9uZSkKIAogICAgIGRlZiB0ZXN0UmVhZFdoZW5Xcml0aW5nKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBzZWxmLmYucmVhZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc2VsZi5mLnJlYWQpCiAKIGNsYXNzIENBdXRvRmlsZVRlc3RzKEF1dG9GaWxlVGVzdHMsIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBvcGVuID0gaW8ub3BlbgpAQCAtMTUxLDEyICsxNTEsMTIgQEAKICAgICBkZWYgdGVzdFN0ZGluKHNlbGYpOgogICAgICAgICAjIFRoaXMgY2F1c2VzIHRoZSBpbnRlcnByZXRlciB0byBleGl0IG9uIE9TRjEgdjUuMS4KICAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICdvc2YxVjUnOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoKElPRXJyb3IsIFZhbHVlRXJyb3IpLCBzeXMuc3RkaW4uc2VlaywgLTEpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygoT1NFcnJvciwgVmFsdWVFcnJvciksIHN5cy5zdGRpbi5zZWVrLCAtMSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHByaW50KCgKICAgICAgICAgICAgICAgICAnICBTa2lwcGluZyBzeXMuc3RkaW4uc2VlaygtMSksIGl0IG1heSBjcmFzaCB0aGUgaW50ZXJwcmV0ZXIuJwogICAgICAgICAgICAgICAgICcgVGVzdCBtYW51YWxseS4nKSwgZmlsZT1zeXMuX19zdGRvdXRfXykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoKElPRXJyb3IsIFZhbHVlRXJyb3IpLCBzeXMuc3RkaW4udHJ1bmNhdGUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKChPU0Vycm9yLCBWYWx1ZUVycm9yKSwgc3lzLnN0ZGluLnRydW5jYXRlKQogCiAgICAgZGVmIHRlc3RCYWRNb2RlQXJndW1lbnQoc2VsZik6CiAgICAgICAgICMgdmVyaWZ5IHRoYXQgd2UgZ2V0IGEgc2Vuc2libGUgZXJyb3IgbWVzc2FnZSBmb3IgYmFkIG1vZGUgYXJndW1lbnQKQEAgLTE4Nyw3ICsxODcsNyBAQAogICAgICAgICAgICAgICAgIGQgPSBpbnQoZi5yZWFkKCkuZGVjb2RlKCJhc2NpaSIpKQogICAgICAgICAgICAgICAgIGYuY2xvc2UoKQogICAgICAgICAgICAgICAgIGYuY2xvc2UoKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgbXNnOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnZXJyb3Igc2V0dGluZyBidWZmZXIgc2l6ZSAlZDogJXMnICUgKHMsIHN0cihtc2cpKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZCwgcykKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9maWxlY21wLnB5IGIvTGliL3Rlc3QvdGVzdF9maWxlY21wLnB5CmluZGV4IDA5NTk5NzkuLmY3NjAxNDcgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZmlsZWNtcC5weQorKysgYi9MaWIvdGVzdC90ZXN0X2ZpbGVjbXAucHkKQEAgLTEsNCArMSwzIEBACi0KIGltcG9ydCBvcywgZmlsZWNtcCwgc2h1dGlsLCB0ZW1wZmlsZQogaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKQEAgLTQ2LDkgKzQ1LDE0IEBACiAgICAgICAgIHNlbGYuZGlyID0gb3MucGF0aC5qb2luKHRtcGRpciwgJ2RpcicpCiAgICAgICAgIHNlbGYuZGlyX3NhbWUgPSBvcy5wYXRoLmpvaW4odG1wZGlyLCAnZGlyLXNhbWUnKQogICAgICAgICBzZWxmLmRpcl9kaWZmID0gb3MucGF0aC5qb2luKHRtcGRpciwgJ2Rpci1kaWZmJykKKworICAgICAgICAjIEFub3RoZXIgZGlyIGlzIGNyZWF0ZWQgdW5kZXIgZGlyX3NhbWUsIGJ1dCBpdCBoYXMgYSBuYW1lIGZyb20gdGhlCisgICAgICAgICMgaWdub3JlZCBsaXN0IHNvIGl0IHNob3VsZCBub3QgYWZmZWN0IHRlc3RpbmcgcmVzdWx0cy4KKyAgICAgICAgc2VsZi5kaXJfaWdub3JlZCA9IG9zLnBhdGguam9pbihzZWxmLmRpcl9zYW1lLCAnLmhnJykKKwogICAgICAgICBzZWxmLmNhc2VpbnNlbnNpdGl2ZSA9IG9zLnBhdGgubm9ybWNhc2UoJ0EnKSA9PSBvcy5wYXRoLm5vcm1jYXNlKCdhJykKICAgICAgICAgZGF0YSA9ICdDb250ZW50cyBvZiBmaWxlIGdvIGhlcmUuXG4nCi0gICAgICAgIGZvciBkaXIgaW4gW3NlbGYuZGlyLCBzZWxmLmRpcl9zYW1lLCBzZWxmLmRpcl9kaWZmXToKKyAgICAgICAgZm9yIGRpciBpbiAoc2VsZi5kaXIsIHNlbGYuZGlyX3NhbWUsIHNlbGYuZGlyX2RpZmYsIHNlbGYuZGlyX2lnbm9yZWQpOgogICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkaXIsIFRydWUpCiAgICAgICAgICAgICBvcy5ta2RpcihkaXIpCiAgICAgICAgICAgICBpZiBzZWxmLmNhc2VpbnNlbnNpdGl2ZSBhbmQgZGlyIGlzIHNlbGYuZGlyX3NhbWU6CkBAIC02NCw5ICs2OCwxMSBAQAogICAgICAgICBvdXRwdXQuY2xvc2UoKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYuZGlyKQotICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYuZGlyX3NhbWUpCi0gICAgICAgIHNodXRpbC5ybXRyZWUoc2VsZi5kaXJfZGlmZikKKyAgICAgICAgZm9yIGRpciBpbiAoc2VsZi5kaXIsIHNlbGYuZGlyX3NhbWUsIHNlbGYuZGlyX2RpZmYpOgorICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkaXIpCisKKyAgICBkZWYgdGVzdF9kZWZhdWx0X2lnbm9yZXMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJy5oZycsIGZpbGVjbXAuREVGQVVMVF9JR05PUkVTKQogCiAgICAgZGVmIHRlc3RfY21wZmlsZXMoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmaWxlY21wLmNtcGZpbGVzKHNlbGYuZGlyLCBzZWxmLmRpciwgWydmaWxlJ10pID09CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2ZpbGVpbnB1dC5weSBiL0xpYi90ZXN0L3Rlc3RfZmlsZWlucHV0LnB5CmluZGV4IDFlNzA2NDEuLmM0MmUzZTggMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZmlsZWlucHV0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZmlsZWlucHV0LnB5CkBAIC0yNzUsOCArMjc1LDggQEAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgdDEgPSB3cml0ZVRtcCgxLCBbIiJdKQogICAgICAgICAgICAgd2l0aCBGaWxlSW5wdXQoZmlsZXM9dDEpIGFzIGZpOgotICAgICAgICAgICAgICAgIHJhaXNlIElPRXJyb3IKLSAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgcmFpc2UgT1NFcnJvcgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmkuX2ZpbGVzLCAoKSkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHJlbW92ZV90ZW1wZmlsZXModDEpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2ZpbGVpby5weSBiL0xpYi90ZXN0L3Rlc3RfZmlsZWlvLnB5CmluZGV4IDE5NzM3ZDkuLjBjY2JkYTIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZmlsZWlvLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZmlsZWlvLnB5CkBAIC0xNDUsMTYgKzE0NSwxNiBAQAogICAgICAgICAjIFVuaXggY2FsbHMgZGlyY2hlY2soKSBhbmQgcmV0dXJucyAiW0Vycm5vIDIxXTogSXMgYSBkaXJlY3RvcnkiCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIF9GaWxlSU8oJy4nLCAncicpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGUuZXJybm8sIDApCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUuZmlsZW5hbWUsICIuIikKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuZmFpbCgiU2hvdWxkIGhhdmUgcmFpc2VkIElPRXJyb3IiKQorICAgICAgICAgICAgc2VsZi5mYWlsKCJTaG91bGQgaGF2ZSByYWlzZWQgT1NFcnJvciIpCiAKICAgICBAdW5pdHRlc3Quc2tpcElmKG9zLm5hbWUgPT0gJ250JywgInRlc3Qgb25seSB3b3JrcyBvbiBhIFBPU0lYLWxpa2Ugc3lzdGVtIikKICAgICBkZWYgdGVzdE9wZW5EaXJGRChzZWxmKToKICAgICAgICAgZmQgPSBvcy5vcGVuKCcuJywgb3MuT19SRE9OTFkpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvcikgYXMgY206CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvcikgYXMgY206CiAgICAgICAgICAgICBfRmlsZUlPKGZkLCAncicpCiAgICAgICAgIG9zLmNsb3NlKGZkKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJubywgZXJybm8uRUlTRElSKQpAQCAtMTcyLDcgKzE3Miw3IEBACiAgICAgICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgc2VsZi5mLmNsb3NlKCkKLSAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICByZXR1cm4gd3JhcHBlcgogCkBAIC0xODQsMTQgKzE4NCwxNCBAQAogICAgICAgICAgICAgb3MuY2xvc2UoZi5maWxlbm8oKSkKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBmdW5jKHNlbGYsIGYpCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUuZXJybm8sIGVycm5vLkVCQURGKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoIlNob3VsZCBoYXZlIHJhaXNlZCBJT0Vycm9yIikKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoIlNob3VsZCBoYXZlIHJhaXNlZCBPU0Vycm9yIikKICAgICAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBzZWxmLmYuY2xvc2UoKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHJldHVybiB3cmFwcGVyCiAKQEAgLTIzOCw3ICsyMzgsNyBAQAogICAgIGRlZiBSZW9wZW5Gb3JSZWFkKHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLmYuY2xvc2UoKQotICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYuZiA9IF9GaWxlSU8oVEVTVEZOLCAncicpCiAgICAgICAgIG9zLmNsb3NlKHNlbGYuZi5maWxlbm8oKSkKQEAgLTI4Niw3ICsyODYsNyBAQAogICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICJ3aW4zMiI6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBmID0gX0ZpbGVJTygiL2Rldi90dHkiLCAiYSIpCi0gICAgICAgICAgICAgICAgZXhjZXB0IEVudmlyb25tZW50RXJyb3I6CisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgICMgV2hlbiBydW4gaW4gYSBjcm9uIGpvYiB0aGVyZSBqdXN0IGFyZW4ndCBhbnkKICAgICAgICAgICAgICAgICAgICAgIyB0dHlzLCBzbyBza2lwIHRoZSB0ZXN0LiAgVGhpcyBhbHNvIGhhbmRsZXMgb3RoZXIKICAgICAgICAgICAgICAgICAgICAgIyBPUydlcyB0aGF0IGRvbid0IHN1cHBvcnQgL2Rldi90dHkuCkBAIC0zNDcsNyArMzQ3LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgX0ZpbGVJTywgbWFrZV9iYWRfZmQoKSkKICAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CiAgICAgICAgICAgICBpbXBvcnQgbXN2Y3J0Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBtc3ZjcnQuZ2V0X29zZmhhbmRsZSwgbWFrZV9iYWRfZmQoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIG1zdmNydC5nZXRfb3NmaGFuZGxlLCBtYWtlX2JhZF9mZCgpKQogICAgICAgICAjIElzc3VlIDE1OTg5CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgX0ZpbGVJTywgX3Rlc3RjYXBpLklOVF9NQVggKyAxKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIF9GaWxlSU8sIF90ZXN0Y2FwaS5JTlRfTUlOIC0gMSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZm9ybWF0LnB5IGIvTGliL3Rlc3QvdGVzdF9mb3JtYXQucHkKaW5kZXggZjhmNTQyMC4uYmJjZTk3MCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9mb3JtYXQucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9mb3JtYXQucHkKQEAgLTMwNyw2ICszMDcsMjUgQEAKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIGxvY2FsZS5zZXRsb2NhbGUobG9jYWxlLkxDX0FMTCwgb2xkbG9jKQogCisgICAgQHN1cHBvcnQuY3B5dGhvbl9vbmx5CisgICAgZGVmIHRlc3Rfb3B0aW1pc2F0aW9ucyhzZWxmKToKKyAgICAgICAgdGV4dCA9ICJhYmNkZSIgIyA1IGNoYXJhY3RlcnMKKworICAgICAgICBzZWxmLmFzc2VydElzKCIlcyIgJSB0ZXh0LCB0ZXh0KQorICAgICAgICBzZWxmLmFzc2VydElzKCIlLjVzIiAlIHRleHQsIHRleHQpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoIiUuMTBzIiAlIHRleHQsIHRleHQpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoIiUxcyIgJSB0ZXh0LCB0ZXh0KQorICAgICAgICBzZWxmLmFzc2VydElzKCIlNXMiICUgdGV4dCwgdGV4dCkKKworICAgICAgICBzZWxmLmFzc2VydElzKCJ7MH0iLmZvcm1hdCh0ZXh0KSwgdGV4dCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcygiezA6c30iLmZvcm1hdCh0ZXh0KSwgdGV4dCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcygiezA6LjVzfSIuZm9ybWF0KHRleHQpLCB0ZXh0KQorICAgICAgICBzZWxmLmFzc2VydElzKCJ7MDouMTBzfSIuZm9ybWF0KHRleHQpLCB0ZXh0KQorICAgICAgICBzZWxmLmFzc2VydElzKCJ7MDoxc30iLmZvcm1hdCh0ZXh0KSwgdGV4dCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcygiezA6NXN9Ii5mb3JtYXQodGV4dCksIHRleHQpCisKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh0ZXh0ICUgKCksIHRleHQpCisgICAgICAgIHNlbGYuYXNzZXJ0SXModGV4dC5mb3JtYXQoKSwgdGV4dCkKIAogCiBkZWYgdGVzdF9tYWluKCk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2ZyYWN0aW9ucy5weSBiL0xpYi90ZXN0L3Rlc3RfZnJhY3Rpb25zLnB5CmluZGV4IDFmYWQ5MjEuLjMzMzY1MzIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZnJhY3Rpb25zLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZnJhY3Rpb25zLnB5CkBAIC0xNDYsOSArMTQ2LDEwIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKDAsIDEpLCBfY29tcG9uZW50cyhGKC0wLjApKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoMzYwMjg3OTcwMTg5NjM5NywgMzYwMjg3OTcwMTg5NjM5NjgpLAogICAgICAgICAgICAgICAgICAgICAgICAgIF9jb21wb25lbnRzKEYoMC4xKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRiwgZmxvYXQoJ25hbicpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIEYsIGZsb2F0KCdpbmYnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBGLCBmbG9hdCgnLWluZicpKQorICAgICAgICAjIGJ1ZyAxNjQ2OTogZXJyb3IgdHlwZXMgc2hvdWxkIGJlIGNvbnNpc3RlbnQgd2l0aCBmbG9hdCAtPiBpbnQKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgRiwgZmxvYXQoJ25hbicpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBGLCBmbG9hdCgnaW5mJykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIEYsIGZsb2F0KCctaW5mJykpCiAKICAgICBkZWYgdGVzdEluaXRGcm9tRGVjaW1hbChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoMTEsIDEwKSwKQEAgLTE1NywxMCArMTU4LDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgX2NvbXBvbmVudHMoRihEZWNpbWFsKCczLjVlLTInKSkpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCgwLCAxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBfY29tcG9uZW50cyhGKERlY2ltYWwoJy4wMDBlMjAnKSkpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIEYsIERlY2ltYWwoJ25hbicpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIEYsIERlY2ltYWwoJ3NuYW4nKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBGLCBEZWNpbWFsKCdpbmYnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBGLCBEZWNpbWFsKCctaW5mJykpCisgICAgICAgICMgYnVnIDE2NDY5OiBlcnJvciB0eXBlcyBzaG91bGQgYmUgY29uc2lzdGVudCB3aXRoIGRlY2ltYWwgLT4gaW50CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIEYsIERlY2ltYWwoJ25hbicpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBGLCBEZWNpbWFsKCdzbmFuJykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIEYsIERlY2ltYWwoJ2luZicpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBGLCBEZWNpbWFsKCctaW5mJykpCiAKICAgICBkZWYgdGVzdEZyb21TdHJpbmcoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKDUsIDEpLCBfY29tcG9uZW50cyhGKCI1IikpKQpAQCAtMjQ4LDE0ICsyNTAsMTUgQEAKIAogICAgICAgICBpbmYgPSAxZTEwMDAKICAgICAgICAgbmFuID0gaW5mIC0gaW5mCisgICAgICAgICMgYnVnIDE2NDY5OiBlcnJvciB0eXBlcyBzaG91bGQgYmUgY29uc2lzdGVudCB3aXRoIGZsb2F0IC0+IGludAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlc01lc3NhZ2UoCi0gICAgICAgICAgICBUeXBlRXJyb3IsICJDYW5ub3QgY29udmVydCBpbmYgdG8gRnJhY3Rpb24uIiwKKyAgICAgICAgICAgIE92ZXJmbG93RXJyb3IsICJDYW5ub3QgY29udmVydCBpbmYgdG8gRnJhY3Rpb24uIiwKICAgICAgICAgICAgIEYuZnJvbV9mbG9hdCwgaW5mKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlc01lc3NhZ2UoCi0gICAgICAgICAgICBUeXBlRXJyb3IsICJDYW5ub3QgY29udmVydCAtaW5mIHRvIEZyYWN0aW9uLiIsCisgICAgICAgICAgICBPdmVyZmxvd0Vycm9yLCAiQ2Fubm90IGNvbnZlcnQgLWluZiB0byBGcmFjdGlvbi4iLAogICAgICAgICAgICAgRi5mcm9tX2Zsb2F0LCAtaW5mKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlc01lc3NhZ2UoCi0gICAgICAgICAgICBUeXBlRXJyb3IsICJDYW5ub3QgY29udmVydCBuYW4gdG8gRnJhY3Rpb24uIiwKKyAgICAgICAgICAgIFZhbHVlRXJyb3IsICJDYW5ub3QgY29udmVydCBuYW4gdG8gRnJhY3Rpb24uIiwKICAgICAgICAgICAgIEYuZnJvbV9mbG9hdCwgbmFuKQogCiAgICAgZGVmIHRlc3RGcm9tRGVjaW1hbChzZWxmKToKQEAgLTI2OCwxNyArMjcxLDE4IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSAtIEYoMSwgMTAqKjMwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBGLmZyb21fZGVjaW1hbChEZWNpbWFsKCIwLiIgKyAiOSIgKiAzMCkpKQogCisgICAgICAgICMgYnVnIDE2NDY5OiBlcnJvciB0eXBlcyBzaG91bGQgYmUgY29uc2lzdGVudCB3aXRoIGRlY2ltYWwgLT4gaW50CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzTWVzc2FnZSgKLSAgICAgICAgICAgIFR5cGVFcnJvciwgIkNhbm5vdCBjb252ZXJ0IEluZmluaXR5IHRvIEZyYWN0aW9uLiIsCisgICAgICAgICAgICBPdmVyZmxvd0Vycm9yLCAiQ2Fubm90IGNvbnZlcnQgSW5maW5pdHkgdG8gRnJhY3Rpb24uIiwKICAgICAgICAgICAgIEYuZnJvbV9kZWNpbWFsLCBEZWNpbWFsKCJpbmYiKSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNNZXNzYWdlKAotICAgICAgICAgICAgVHlwZUVycm9yLCAiQ2Fubm90IGNvbnZlcnQgLUluZmluaXR5IHRvIEZyYWN0aW9uLiIsCisgICAgICAgICAgICBPdmVyZmxvd0Vycm9yLCAiQ2Fubm90IGNvbnZlcnQgLUluZmluaXR5IHRvIEZyYWN0aW9uLiIsCiAgICAgICAgICAgICBGLmZyb21fZGVjaW1hbCwgRGVjaW1hbCgiLWluZiIpKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlc01lc3NhZ2UoCi0gICAgICAgICAgICBUeXBlRXJyb3IsICJDYW5ub3QgY29udmVydCBOYU4gdG8gRnJhY3Rpb24uIiwKKyAgICAgICAgICAgIFZhbHVlRXJyb3IsICJDYW5ub3QgY29udmVydCBOYU4gdG8gRnJhY3Rpb24uIiwKICAgICAgICAgICAgIEYuZnJvbV9kZWNpbWFsLCBEZWNpbWFsKCJuYW4iKSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNNZXNzYWdlKAotICAgICAgICAgICAgVHlwZUVycm9yLCAiQ2Fubm90IGNvbnZlcnQgc05hTiB0byBGcmFjdGlvbi4iLAorICAgICAgICAgICAgVmFsdWVFcnJvciwgIkNhbm5vdCBjb252ZXJ0IHNOYU4gdG8gRnJhY3Rpb24uIiwKICAgICAgICAgICAgIEYuZnJvbV9kZWNpbWFsLCBEZWNpbWFsKCJzbmFuIikpCiAKICAgICBkZWYgdGVzdExpbWl0RGVub21pbmF0b3Ioc2VsZik6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2Zyb3plbi5weSBiL0xpYi90ZXN0L3Rlc3RfZnJvemVuLnB5CmluZGV4IGZkNjc2MWMuLjYyNGUzMjEgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZnJvemVuLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZnJvemVuLnB5CkBAIC0zNiw3ICszNiw3IEBACiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGV4cGVjdC5hZGQoJ3NwYW0nKQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KGRpcihfX3BoZWxsb19fKSksIGV4cGVjdCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX19waGVsbG9fXy5fX3BhdGhfXywgW19fcGhlbGxvX18uX19uYW1lX19dKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfX3BoZWxsb19fLl9fcGF0aF9fLCBbXSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0LmdldHZhbHVlKCksICdIZWxsbyB3b3JsZCFcbicpCiAKICAgICAgICAgd2l0aCBjYXB0dXJlZF9zdGRvdXQoKSBhcyBzdGRvdXQ6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2Z0cGxpYi5weSBiL0xpYi90ZXN0L3Rlc3RfZnRwbGliLnB5CmluZGV4IDZhNjUxNjUuLjg2NWMyMjggMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZnRwbGliLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZnRwbGliLnB5CkBAIC0yMSw2ICsyMSw3IEBACiBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgSE9TVAogdGhyZWFkaW5nID0gc3VwcG9ydC5pbXBvcnRfbW9kdWxlKCd0aHJlYWRpbmcnKQogCitUSU1FT1VUID0gMwogIyB0aGUgZHVtbXkgZGF0YSByZXR1cm5lZCBieSBzZXJ2ZXIgb3ZlciB0aGUgZGF0YSBjaGFubmVsIHdoZW4KICMgUkVUUiwgTElTVCwgTkxTVCwgTUxTRCBjb21tYW5kcyBhcmUgaXNzdWVkCiBSRVRSX0RBVEEgPSAnYWJjZGUxMjM0NVxyXG4nICogMTAwMApAQCAtMTI1LDcgKzEyNiw3IEBACiAgICAgICAgIGFkZHIgPSBsaXN0KG1hcChpbnQsIGFyZy5zcGxpdCgnLCcpKSkKICAgICAgICAgaXAgPSAnJWQuJWQuJWQuJWQnICV0dXBsZShhZGRyWzo0XSkKICAgICAgICAgcG9ydCA9IChhZGRyWzRdICogMjU2KSArIGFkZHJbNV0KLSAgICAgICAgcyA9IHNvY2tldC5jcmVhdGVfY29ubmVjdGlvbigoaXAsIHBvcnQpLCB0aW1lb3V0PTIpCisgICAgICAgIHMgPSBzb2NrZXQuY3JlYXRlX2Nvbm5lY3Rpb24oKGlwLCBwb3J0KSwgdGltZW91dD1USU1FT1VUKQogICAgICAgICBzZWxmLmR0cCA9IHNlbGYuZHRwX2hhbmRsZXIocywgYmFzZWNsYXNzPXNlbGYpCiAgICAgICAgIHNlbGYucHVzaCgnMjAwIGFjdGl2ZSBkYXRhIGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQnKQogCkBAIC0xMzMsNyArMTM0LDcgQEAKICAgICAgICAgd2l0aCBzb2NrZXQuc29ja2V0KCkgYXMgc29jazoKICAgICAgICAgICAgIHNvY2suYmluZCgoc2VsZi5zb2NrZXQuZ2V0c29ja25hbWUoKVswXSwgMCkpCiAgICAgICAgICAgICBzb2NrLmxpc3Rlbig1KQotICAgICAgICAgICAgc29jay5zZXR0aW1lb3V0KDEwKQorICAgICAgICAgICAgc29jay5zZXR0aW1lb3V0KFRJTUVPVVQpCiAgICAgICAgICAgICBpcCwgcG9ydCA9IHNvY2suZ2V0c29ja25hbWUoKVs6Ml0KICAgICAgICAgICAgIGlwID0gaXAucmVwbGFjZSgnLicsICcsJyk7IHAxID0gcG9ydCAvIDI1NjsgcDIgPSBwb3J0ICUgMjU2CiAgICAgICAgICAgICBzZWxmLnB1c2goJzIyNyBlbnRlcmluZyBwYXNzaXZlIG1vZGUgKCVzLCVkLCVkKScgJShpcCwgcDEsIHAyKSkKQEAgLTE0Myw3ICsxNDQsNyBAQAogICAgIGRlZiBjbWRfZXBydChzZWxmLCBhcmcpOgogICAgICAgICBhZiwgaXAsIHBvcnQgPSBhcmcuc3BsaXQoYXJnWzBdKVsxOi0xXQogICAgICAgICBwb3J0ID0gaW50KHBvcnQpCi0gICAgICAgIHMgPSBzb2NrZXQuY3JlYXRlX2Nvbm5lY3Rpb24oKGlwLCBwb3J0KSwgdGltZW91dD0yKQorICAgICAgICBzID0gc29ja2V0LmNyZWF0ZV9jb25uZWN0aW9uKChpcCwgcG9ydCksIHRpbWVvdXQ9VElNRU9VVCkKICAgICAgICAgc2VsZi5kdHAgPSBzZWxmLmR0cF9oYW5kbGVyKHMsIGJhc2VjbGFzcz1zZWxmKQogICAgICAgICBzZWxmLnB1c2goJzIwMCBhY3RpdmUgZGF0YSBjb25uZWN0aW9uIGVzdGFibGlzaGVkJykKIApAQCAtMTUxLDcgKzE1Miw3IEBACiAgICAgICAgIHdpdGggc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVDYpIGFzIHNvY2s6CiAgICAgICAgICAgICBzb2NrLmJpbmQoKHNlbGYuc29ja2V0LmdldHNvY2tuYW1lKClbMF0sIDApKQogICAgICAgICAgICAgc29jay5saXN0ZW4oNSkKLSAgICAgICAgICAgIHNvY2suc2V0dGltZW91dCgxMCkKKyAgICAgICAgICAgIHNvY2suc2V0dGltZW91dChUSU1FT1VUKQogICAgICAgICAgICAgcG9ydCA9IHNvY2suZ2V0c29ja25hbWUoKVsxXQogICAgICAgICAgICAgc2VsZi5wdXNoKCcyMjkgZW50ZXJpbmcgZXh0ZW5kZWQgcGFzc2l2ZSBtb2RlICh8fHwlZHwpJyAlcG9ydCkKICAgICAgICAgICAgIGNvbm4sIGFkZHIgPSBzb2NrLmFjY2VwdCgpCkBAIC0zMjEsNyArMzIyLDcgQEAKICAgICAgICAgICAgICAgICBlbGlmIGVyci5hcmdzWzBdID09IHNzbC5TU0xfRVJST1JfRU9GOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5oYW5kbGVfY2xvc2UoKQogICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGVycjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgICAgICAgICBpZiBlcnIuYXJnc1swXSA9PSBlcnJuby5FQ09OTkFCT1JURUQ6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmhhbmRsZV9jbG9zZSgpCiAgICAgICAgICAgICBlbHNlOgpAQCAtMzM1LDcgKzMzNiw3IEBACiAgICAgICAgICAgICAgICAgaWYgZXJyLmFyZ3NbMF0gaW4gKHNzbC5TU0xfRVJST1JfV0FOVF9SRUFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2wuU1NMX0VSUk9SX1dBTlRfV1JJVEUpOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZXJyOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgogICAgICAgICAgICAgICAgICMgQW55ICJzb2NrZXQgZXJyb3IiIGNvcnJlc3BvbmRzIHRvIGEgU1NMX0VSUk9SX1NZU0NBTEwgcmV0dXJuCiAgICAgICAgICAgICAgICAgIyBmcm9tIE9wZW5TU0wncyBTU0xfc2h1dGRvd24oKSwgY29ycmVzcG9uZGluZyB0byBhCiAgICAgICAgICAgICAgICAgIyBjbG9zZWQgc29ja2V0IGNvbmRpdGlvbi4gU2VlIGFsc286CkBAIC00NTQsNyArNDU1LDcgQEAKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYuc2VydmVyID0gRHVtbXlGVFBTZXJ2ZXIoKEhPU1QsIDApKQogICAgICAgICBzZWxmLnNlcnZlci5zdGFydCgpCi0gICAgICAgIHNlbGYuY2xpZW50ID0gZnRwbGliLkZUUCh0aW1lb3V0PTIpCisgICAgICAgIHNlbGYuY2xpZW50ID0gZnRwbGliLkZUUCh0aW1lb3V0PVRJTUVPVVQpCiAgICAgICAgIHNlbGYuY2xpZW50LmNvbm5lY3Qoc2VsZi5zZXJ2ZXIuaG9zdCwgc2VsZi5zZXJ2ZXIucG9ydCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKQEAgLTQ4Miw3ICs0ODMsNyBAQAogCiAgICAgZGVmIHRlc3RfYWxsX2Vycm9ycyhzZWxmKToKICAgICAgICAgZXhjZXB0aW9ucyA9IChmdHBsaWIuZXJyb3JfcmVwbHksIGZ0cGxpYi5lcnJvcl90ZW1wLCBmdHBsaWIuZXJyb3JfcGVybSwKLSAgICAgICAgICAgICAgICAgICAgICBmdHBsaWIuZXJyb3JfcHJvdG8sIGZ0cGxpYi5FcnJvciwgSU9FcnJvciwgRU9GRXJyb3IpCisgICAgICAgICAgICAgICAgICAgICAgZnRwbGliLmVycm9yX3Byb3RvLCBmdHBsaWIuRXJyb3IsIE9TRXJyb3IsIEVPRkVycm9yKQogICAgICAgICBmb3IgeCBpbiBleGNlcHRpb25zOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHJhaXNlIHgoJ2V4Y2VwdGlvbiBub3QgaW5jbHVkZWQgaW4gYWxsX2Vycm9ycyBzZXQnKQpAQCAtNjY3LDcgKzY2OCw3IEBACiAKICAgICBkZWYgdGVzdF9tYWtlcGFzdihzZWxmKToKICAgICAgICAgaG9zdCwgcG9ydCA9IHNlbGYuY2xpZW50Lm1ha2VwYXN2KCkKLSAgICAgICAgY29ubiA9IHNvY2tldC5jcmVhdGVfY29ubmVjdGlvbigoaG9zdCwgcG9ydCksIDEwKQorICAgICAgICBjb25uID0gc29ja2V0LmNyZWF0ZV9jb25uZWN0aW9uKChob3N0LCBwb3J0KSwgdGltZW91dD1USU1FT1VUKQogICAgICAgICBjb25uLmNsb3NlKCkKICAgICAgICAgIyBJUHY0IGlzIGluIHVzZSwganVzdCBtYWtlIHN1cmUgc2VuZF9lcHN2IGhhcyBub3QgYmVlbiB1c2VkCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zZXJ2ZXIuaGFuZGxlcl9pbnN0YW5jZS5sYXN0X3JlY2VpdmVkX2NtZCwgJ3Bhc3YnKQpAQCAtNjgwLDEyICs2ODEsMTIgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzZWxmLmNsaWVudC5zZW5kY21kKCdub29wJykKLSAgICAgICAgICAgIGV4Y2VwdCAoc29ja2V0LmVycm9yLCBFT0ZFcnJvcik6CisgICAgICAgICAgICBleGNlcHQgKE9TRXJyb3IsIEVPRkVycm9yKToKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICAgICAgIyBiYXNlIHRlc3QKLSAgICAgICAgd2l0aCBmdHBsaWIuRlRQKHRpbWVvdXQ9MikgYXMgc2VsZi5jbGllbnQ6CisgICAgICAgIHdpdGggZnRwbGliLkZUUCh0aW1lb3V0PVRJTUVPVVQpIGFzIHNlbGYuY2xpZW50OgogICAgICAgICAgICAgc2VsZi5jbGllbnQuY29ubmVjdChzZWxmLnNlcnZlci5ob3N0LCBzZWxmLnNlcnZlci5wb3J0KQogICAgICAgICAgICAgc2VsZi5jbGllbnQuc2VuZGNtZCgnbm9vcCcpCiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNfY2xpZW50X2Nvbm5lY3RlZCgpKQpAQCAtNjkzLDcgKzY5NCw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaXNfY2xpZW50X2Nvbm5lY3RlZCgpKQogCiAgICAgICAgICMgUVVJVCBzZW50IGluc2lkZSB0aGUgd2l0aCBibG9jawotICAgICAgICB3aXRoIGZ0cGxpYi5GVFAodGltZW91dD0yKSBhcyBzZWxmLmNsaWVudDoKKyAgICAgICAgd2l0aCBmdHBsaWIuRlRQKHRpbWVvdXQ9VElNRU9VVCkgYXMgc2VsZi5jbGllbnQ6CiAgICAgICAgICAgICBzZWxmLmNsaWVudC5jb25uZWN0KHNlbGYuc2VydmVyLmhvc3QsIHNlbGYuc2VydmVyLnBvcnQpCiAgICAgICAgICAgICBzZWxmLmNsaWVudC5zZW5kY21kKCdub29wJykKICAgICAgICAgICAgIHNlbGYuY2xpZW50LnF1aXQoKQpAQCAtNzAzLDcgKzcwNCw3IEBACiAgICAgICAgICMgZm9yY2UgYSB3cm9uZyByZXNwb25zZSBjb2RlIHRvIGJlIHNlbnQgb24gUVVJVDogZXJyb3JfcGVybQogICAgICAgICAjIGlzIGV4cGVjdGVkIGFuZCB0aGUgY29ubmVjdGlvbiBpcyBzdXBwb3NlZCB0byBiZSBjbG9zZWQKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBmdHBsaWIuRlRQKHRpbWVvdXQ9MikgYXMgc2VsZi5jbGllbnQ6CisgICAgICAgICAgICB3aXRoIGZ0cGxpYi5GVFAodGltZW91dD1USU1FT1VUKSBhcyBzZWxmLmNsaWVudDoKICAgICAgICAgICAgICAgICBzZWxmLmNsaWVudC5jb25uZWN0KHNlbGYuc2VydmVyLmhvc3QsIHNlbGYuc2VydmVyLnBvcnQpCiAgICAgICAgICAgICAgICAgc2VsZi5jbGllbnQuc2VuZGNtZCgnbm9vcCcpCiAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXIuaGFuZGxlcl9pbnN0YW5jZS5uZXh0X3Jlc3BvbnNlID0gJzU1MCBlcnJvciBvbiBxdWl0JwpAQCAtNzI1LDcgKzcyNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzPShIT1NULCBwb3J0KSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jbGllbnQuc29jay5nZXRzb2NrbmFtZSgpWzFdLCBwb3J0KQogICAgICAgICAgICAgc2VsZi5jbGllbnQucXVpdCgpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICBpZiBlLmVycm5vID09IGVycm5vLkVBRERSSU5VU0U6CiAgICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgiY291bGRuJ3QgYmluZCB0byBwb3J0ICVkIiAlIHBvcnQpCiAgICAgICAgICAgICByYWlzZQpAQCAtNzM2LDcgKzczNyw3IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHdpdGggc2VsZi5jbGllbnQudHJhbnNmZXJjbWQoJ2xpc3QnKSBhcyBzb2NrOgogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29jay5nZXRzb2NrbmFtZSgpWzFdLCBwb3J0KQotICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FQUREUklOVVNFOgogICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoImNvdWxkbid0IGJpbmQgdG8gcG9ydCAlZCIgJSBwb3J0KQogICAgICAgICAgICAgcmFpc2UKQEAgLTc1OSw3ICs3NjAsNyBAQAogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBEdW1teUZUUFNlcnZlcigoJzo6MScsIDApLCBhZj1zb2NrZXQuQUZfSU5FVDYpCiAgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KCkKLSAgICAgICAgc2VsZi5jbGllbnQgPSBmdHBsaWIuRlRQKCkKKyAgICAgICAgc2VsZi5jbGllbnQgPSBmdHBsaWIuRlRQKHRpbWVvdXQ9VElNRU9VVCkKICAgICAgICAgc2VsZi5jbGllbnQuY29ubmVjdChzZWxmLnNlcnZlci5ob3N0LCBzZWxmLnNlcnZlci5wb3J0KQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgpAQCAtNzc2LDcgKzc3Nyw3IEBACiAKICAgICBkZWYgdGVzdF9tYWtlcGFzdihzZWxmKToKICAgICAgICAgaG9zdCwgcG9ydCA9IHNlbGYuY2xpZW50Lm1ha2VwYXN2KCkKLSAgICAgICAgY29ubiA9IHNvY2tldC5jcmVhdGVfY29ubmVjdGlvbigoaG9zdCwgcG9ydCksIDEwKQorICAgICAgICBjb25uID0gc29ja2V0LmNyZWF0ZV9jb25uZWN0aW9uKChob3N0LCBwb3J0KSwgdGltZW91dD1USU1FT1VUKQogICAgICAgICBjb25uLmNsb3NlKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNlcnZlci5oYW5kbGVyX2luc3RhbmNlLmxhc3RfcmVjZWl2ZWRfY21kLCAnZXBzdicpCiAKQEAgLTgwMiw3ICs4MDMsNyBAQAogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBEdW1teVRMU19GVFBTZXJ2ZXIoKEhPU1QsIDApKQogICAgICAgICBzZWxmLnNlcnZlci5zdGFydCgpCi0gICAgICAgIHNlbGYuY2xpZW50ID0gZnRwbGliLkZUUF9UTFModGltZW91dD0yKQorICAgICAgICBzZWxmLmNsaWVudCA9IGZ0cGxpYi5GVFBfVExTKHRpbWVvdXQ9VElNRU9VVCkKICAgICAgICAgc2VsZi5jbGllbnQuY29ubmVjdChzZWxmLnNlcnZlci5ob3N0LCBzZWxmLnNlcnZlci5wb3J0KQogICAgICAgICAjIGVuYWJsZSBUTFMKICAgICAgICAgc2VsZi5jbGllbnQuYXV0aCgpCkBAIC04MTUsNyArODE2LDcgQEAKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYuc2VydmVyID0gRHVtbXlUTFNfRlRQU2VydmVyKChIT1NULCAwKSkKICAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoKQotICAgICAgICBzZWxmLmNsaWVudCA9IGZ0cGxpYi5GVFBfVExTKHRpbWVvdXQ9MikKKyAgICAgICAgc2VsZi5jbGllbnQgPSBmdHBsaWIuRlRQX1RMUyh0aW1lb3V0PVRJTUVPVVQpCiAgICAgICAgIHNlbGYuY2xpZW50LmNvbm5lY3Qoc2VsZi5zZXJ2ZXIuaG9zdCwgc2VsZi5zZXJ2ZXIucG9ydCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKQEAgLTg3NSw3ICs4NzYsNyBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmdHBsaWIuRlRQX1RMUywgY2VydGZpbGU9Q0VSVEZJTEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleWZpbGU9Q0VSVEZJTEUsIGNvbnRleHQ9Y3R4KQogCi0gICAgICAgIHNlbGYuY2xpZW50ID0gZnRwbGliLkZUUF9UTFMoY29udGV4dD1jdHgsIHRpbWVvdXQ9MikKKyAgICAgICAgc2VsZi5jbGllbnQgPSBmdHBsaWIuRlRQX1RMUyhjb250ZXh0PWN0eCwgdGltZW91dD1USU1FT1VUKQogICAgICAgICBzZWxmLmNsaWVudC5jb25uZWN0KHNlbGYuc2VydmVyLmhvc3QsIHNlbGYuc2VydmVyLnBvcnQpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SXNJbnN0YW5jZShzZWxmLmNsaWVudC5zb2NrLCBzc2wuU1NMU29ja2V0KQogICAgICAgICBzZWxmLmNsaWVudC5hdXRoKCkKQEAgLTk4OSw4ICs5OTAsMTkgQEAKICAgICAgICAgZnRwLmNsb3NlKCkKIAogCitjbGFzcyBUZXN0TmV0cmNEZXByZWNhdGlvbihUZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9kZXByZWNhdGlvbihzZWxmKToKKyAgICAgICAgd2l0aCBzdXBwb3J0LnRlbXBfY3dkKCksIHN1cHBvcnQuRW52aXJvbm1lbnRWYXJHdWFyZCgpIGFzIGVudjoKKyAgICAgICAgICAgIGVudlsnSE9NRSddID0gb3MuZ2V0Y3dkKCkKKyAgICAgICAgICAgIG9wZW4oJy5uZXRyYycsICd3JykuY2xvc2UoKQorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFdhcm5zKERlcHJlY2F0aW9uV2FybmluZyk6CisgICAgICAgICAgICAgICAgZnRwbGliLk5ldHJjKCkKKworCisKIGRlZiB0ZXN0X21haW4oKToKLSAgICB0ZXN0cyA9IFtUZXN0RlRQQ2xhc3MsIFRlc3RUaW1lb3V0c10KKyAgICB0ZXN0cyA9IFtUZXN0RlRQQ2xhc3MsIFRlc3RUaW1lb3V0cywgVGVzdE5ldHJjRGVwcmVjYXRpb25dCiAgICAgaWYgc3VwcG9ydC5JUFY2X0VOQUJMRUQ6CiAgICAgICAgIHRlc3RzLmFwcGVuZChUZXN0SVB2NkVudmlyb25tZW50KQogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2Z1bmN0b29scy5weSBiL0xpYi90ZXN0L3Rlc3RfZnVuY3Rvb2xzLnB5CmluZGV4IGRiMWU5MzQuLmE2YjFlMDMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZnVuY3Rvb2xzLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZnVuY3Rvb2xzLnB5CkBAIC0xLDU3ICsxLDU0IEBACi1pbXBvcnQgZnVuY3Rvb2xzCiBpbXBvcnQgY29sbGVjdGlvbnMKLWltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAotZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0Ci1mcm9tIHdlYWtyZWYgaW1wb3J0IHByb3h5Citmcm9tIGl0ZXJ0b29scyBpbXBvcnQgcGVybXV0YXRpb25zCiBpbXBvcnQgcGlja2xlCiBmcm9tIHJhbmRvbSBpbXBvcnQgY2hvaWNlCitpbXBvcnQgc3lzCitmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKK2ltcG9ydCB1bml0dGVzdAorZnJvbSB3ZWFrcmVmIGltcG9ydCBwcm94eQogCi1Ac3RhdGljbWV0aG9kCi1kZWYgUHl0aG9uUGFydGlhbChmdW5jLCAqYXJncywgKiprZXl3b3Jkcyk6Ci0gICAgJ1B1cmUgUHl0aG9uIGFwcHJveGltYXRpb24gb2YgcGFydGlhbCgpJwotICAgIGRlZiBuZXdmdW5jKCpmYXJncywgKipma2V5d29yZHMpOgotICAgICAgICBuZXdrZXl3b3JkcyA9IGtleXdvcmRzLmNvcHkoKQotICAgICAgICBuZXdrZXl3b3Jkcy51cGRhdGUoZmtleXdvcmRzKQotICAgICAgICByZXR1cm4gZnVuYygqKGFyZ3MgKyBmYXJncyksICoqbmV3a2V5d29yZHMpCi0gICAgbmV3ZnVuYy5mdW5jID0gZnVuYwotICAgIG5ld2Z1bmMuYXJncyA9IGFyZ3MKLSAgICBuZXdmdW5jLmtleXdvcmRzID0ga2V5d29yZHMKLSAgICByZXR1cm4gbmV3ZnVuYworaW1wb3J0IGZ1bmN0b29scworCitweV9mdW5jdG9vbHMgPSBzdXBwb3J0LmltcG9ydF9mcmVzaF9tb2R1bGUoJ2Z1bmN0b29scycsIGJsb2NrZWQ9WydfZnVuY3Rvb2xzJ10pCitjX2Z1bmN0b29scyA9IHN1cHBvcnQuaW1wb3J0X2ZyZXNoX21vZHVsZSgnZnVuY3Rvb2xzJywgZnJlc2g9WydfZnVuY3Rvb2xzJ10pCisKK2RlY2ltYWwgPSBzdXBwb3J0LmltcG9ydF9mcmVzaF9tb2R1bGUoJ2RlY2ltYWwnLCBmcmVzaD1bJ19kZWNpbWFsJ10pCisKIAogZGVmIGNhcHR1cmUoKmFyZ3MsICoqa3cpOgogICAgICIiImNhcHR1cmUgYWxsIHBvc2l0aW9uYWwgYW5kIGtleXdvcmQgYXJndW1lbnRzIiIiCiAgICAgcmV0dXJuIGFyZ3MsIGt3CiAKKwogZGVmIHNpZ25hdHVyZShwYXJ0KToKICAgICAiIiIgcmV0dXJuIHRoZSBzaWduYXR1cmUgb2YgYSBwYXJ0aWFsIG9iamVjdCAiIiIKICAgICByZXR1cm4gKHBhcnQuZnVuYywgcGFydC5hcmdzLCBwYXJ0LmtleXdvcmRzLCBwYXJ0Ll9fZGljdF9fKQogCi1jbGFzcyBUZXN0UGFydGlhbCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKLSAgICB0aGV0eXBlID0gZnVuY3Rvb2xzLnBhcnRpYWwKK2NsYXNzIFRlc3RQYXJ0aWFsOgogCiAgICAgZGVmIHRlc3RfYmFzaWNfZXhhbXBsZXMoc2VsZik6Ci0gICAgICAgIHAgPSBzZWxmLnRoZXR5cGUoY2FwdHVyZSwgMSwgMiwgYT0xMCwgYj0yMCkKKyAgICAgICAgcCA9IHNlbGYucGFydGlhbChjYXB0dXJlLCAxLCAyLCBhPTEwLCBiPTIwKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoY2FsbGFibGUocCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocCgzLCA0LCBiPTMwLCBjPTQwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoKDEsIDIsIDMsIDQpLCBkaWN0KGE9MTAsIGI9MzAsIGM9NDApKSkKLSAgICAgICAgcCA9IHNlbGYudGhldHlwZShtYXAsIGxhbWJkYSB4OiB4KjEwKQorICAgICAgICBwID0gc2VsZi5wYXJ0aWFsKG1hcCwgbGFtYmRhIHg6IHgqMTApCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChwKFsxLDIsMyw0XSkpLCBbMTAsIDIwLCAzMCwgNDBdKQogCiAgICAgZGVmIHRlc3RfYXR0cmlidXRlcyhzZWxmKToKLSAgICAgICAgcCA9IHNlbGYudGhldHlwZShjYXB0dXJlLCAxLCAyLCBhPTEwLCBiPTIwKQorICAgICAgICBwID0gc2VsZi5wYXJ0aWFsKGNhcHR1cmUsIDEsIDIsIGE9MTAsIGI9MjApCiAgICAgICAgICMgYXR0cmlidXRlcyBzaG91bGQgYmUgcmVhZGFibGUKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLmZ1bmMsIGNhcHR1cmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5hcmdzLCAoMSwgMikpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5rZXl3b3JkcywgZGljdChhPTEwLCBiPTIwKSkKICAgICAgICAgIyBhdHRyaWJ1dGVzIHNob3VsZCBub3QgYmUgd3JpdGFibGUKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc2VsZi50aGV0eXBlLCB0eXBlKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc2VsZi5wYXJ0aWFsLCB0eXBlKToKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgc2V0YXR0ciwgcCwgJ2Z1bmMnLCBtYXApCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBzZXRhdHRyLCBwLCAnYXJncycsICgxLCAyKSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIHNldGF0dHIsIHAsICdrZXl3b3JkcycsIGRpY3QoYT0xLCBiPTIpKQogCi0gICAgICAgIHAgPSBzZWxmLnRoZXR5cGUoaGV4KQorICAgICAgICBwID0gc2VsZi5wYXJ0aWFsKGhleCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZGVsIHAuX19kaWN0X18KICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKQEAgLTYwLDkgKzU3LDkgQEAKICAgICAgICAgICAgIHNlbGYuZmFpbCgncGFydGlhbCBvYmplY3QgYWxsb3dlZCBfX2RpY3RfXyB0byBiZSBkZWxldGVkJykKIAogICAgIGRlZiB0ZXN0X2FyZ3VtZW50X2NoZWNraW5nKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYudGhldHlwZSkgICAgICMgbmVlZCBhdCBsZWFzdCBhIGZ1bmMgYXJnCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5wYXJ0aWFsKSAgICAgIyBuZWVkIGF0IGxlYXN0IGEgZnVuYyBhcmcKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi50aGV0eXBlKDIpKCkKKyAgICAgICAgICAgIHNlbGYucGFydGlhbCgyKSgpCiAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGVsc2U6CkBAIC03Myw3ICs3MCw3IEBACiAgICAgICAgIGRlZiBmdW5jKGE9MTAsIGI9MjApOgogICAgICAgICAgICAgcmV0dXJuIGEKICAgICAgICAgZCA9IHsnYSc6M30KLSAgICAgICAgcCA9IHNlbGYudGhldHlwZShmdW5jLCBhPTUpCisgICAgICAgIHAgPSBzZWxmLnBhcnRpYWwoZnVuYywgYT01KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAoKipkKSwgMykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLCB7J2EnOjN9KQogICAgICAgICBwKGI9NykKQEAgLTgyLDIwICs3OSwyMCBAQAogICAgIGRlZiB0ZXN0X2FyZ19jb21iaW5hdGlvbnMoc2VsZik6CiAgICAgICAgICMgZXhlcmNpc2Ugc3BlY2lhbCBjb2RlIHBhdGhzIGZvciB6ZXJvIGFyZ3MgaW4gZWl0aGVyIHBhcnRpYWwKICAgICAgICAgIyBvYmplY3Qgb3IgdGhlIGNhbGxlcgotICAgICAgICBwID0gc2VsZi50aGV0eXBlKGNhcHR1cmUpCisgICAgICAgIHAgPSBzZWxmLnBhcnRpYWwoY2FwdHVyZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwKCksICgoKSwge30pKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAoMSwyKSwgKCgxLDIpLCB7fSkpCi0gICAgICAgIHAgPSBzZWxmLnRoZXR5cGUoY2FwdHVyZSwgMSwgMikKKyAgICAgICAgcCA9IHNlbGYucGFydGlhbChjYXB0dXJlLCAxLCAyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAoKSwgKCgxLDIpLCB7fSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocCgzLDQpLCAoKDEsMiwzLDQpLCB7fSkpCiAKICAgICBkZWYgdGVzdF9rd19jb21iaW5hdGlvbnMoc2VsZik6CiAgICAgICAgICMgZXhlcmNpc2Ugc3BlY2lhbCBjb2RlIHBhdGhzIGZvciBubyBrZXl3b3JkIGFyZ3MgaW4KICAgICAgICAgIyBlaXRoZXIgdGhlIHBhcnRpYWwgb2JqZWN0IG9yIHRoZSBjYWxsZXIKLSAgICAgICAgcCA9IHNlbGYudGhldHlwZShjYXB0dXJlKQorICAgICAgICBwID0gc2VsZi5wYXJ0aWFsKGNhcHR1cmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocCgpLCAoKCksIHt9KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwKGE9MSksICgoKSwgeydhJzoxfSkpCi0gICAgICAgIHAgPSBzZWxmLnRoZXR5cGUoY2FwdHVyZSwgYT0xKQorICAgICAgICBwID0gc2VsZi5wYXJ0aWFsKGNhcHR1cmUsIGE9MSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwKCksICgoKSwgeydhJzoxfSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocChiPTIpLCAoKCksIHsnYSc6MSwgJ2InOjJ9KSkKICAgICAgICAgIyBrZXl3b3JkIGFyZ3MgaW4gdGhlIGNhbGwgb3ZlcnJpZGUgdGhvc2UgaW4gdGhlIHBhcnRpYWwgb2JqZWN0CkBAIC0xMDQsNyArMTAxLDcgQEAKICAgICBkZWYgdGVzdF9wb3NpdGlvbmFsKHNlbGYpOgogICAgICAgICAjIG1ha2Ugc3VyZSBwb3NpdGlvbmFsIGFyZ3VtZW50cyBhcmUgY2FwdHVyZWQgY29ycmVjdGx5CiAgICAgICAgIGZvciBhcmdzIGluIFsoKSwgKDAsKSwgKDAsMSksICgwLDEsMiksICgwLDEsMiwzKV06Ci0gICAgICAgICAgICBwID0gc2VsZi50aGV0eXBlKGNhcHR1cmUsICphcmdzKQorICAgICAgICAgICAgcCA9IHNlbGYucGFydGlhbChjYXB0dXJlLCAqYXJncykKICAgICAgICAgICAgIGV4cGVjdGVkID0gYXJncyArICgneCcsKQogICAgICAgICAgICAgZ290LCBlbXB0eSA9IHAoJ3gnKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkID09IGdvdCBhbmQgZW1wdHkgPT0ge30pCkBAIC0xMTIsMTQgKzEwOSwxNCBAQAogICAgIGRlZiB0ZXN0X2tleXdvcmQoc2VsZik6CiAgICAgICAgICMgbWFrZSBzdXJlIGtleXdvcmQgYXJndW1lbnRzIGFyZSBjYXB0dXJlZCBjb3JyZWN0bHkKICAgICAgICAgZm9yIGEgaW4gWydhJywgMCwgTm9uZSwgMy41XToKLSAgICAgICAgICAgIHAgPSBzZWxmLnRoZXR5cGUoY2FwdHVyZSwgYT1hKQorICAgICAgICAgICAgcCA9IHNlbGYucGFydGlhbChjYXB0dXJlLCBhPWEpCiAgICAgICAgICAgICBleHBlY3RlZCA9IHsnYSc6YSwneCc6Tm9uZX0KICAgICAgICAgICAgIGVtcHR5LCBnb3QgPSBwKHg9Tm9uZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZCA9PSBnb3QgYW5kIGVtcHR5ID09ICgpKQogCiAgICAgZGVmIHRlc3Rfbm9fc2lkZV9lZmZlY3RzKHNlbGYpOgogICAgICAgICAjIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gc2lkZSBlZmZlY3RzIHRoYXQgYWZmZWN0IHN1YnNlcXVlbnQgY2FsbHMKLSAgICAgICAgcCA9IHNlbGYudGhldHlwZShjYXB0dXJlLCAwLCBhPTEpCisgICAgICAgIHAgPSBzZWxmLnBhcnRpYWwoY2FwdHVyZSwgMCwgYT0xKQogICAgICAgICBhcmdzMSwga3cxID0gcCgxLCBiPTIpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhcmdzMSA9PSAoMCwxKSBhbmQga3cxID09IHsnYSc6MSwnYic6Mn0pCiAgICAgICAgIGFyZ3MyLCBrdzIgPSBwKCkKQEAgLTEyOCwxMyArMTI1LDEzIEBACiAgICAgZGVmIHRlc3RfZXJyb3JfcHJvcGFnYXRpb24oc2VsZik6CiAgICAgICAgIGRlZiBmKHgsIHkpOgogICAgICAgICAgICAgeCAvIHkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IsIHNlbGYudGhldHlwZShmLCAxLCAwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IsIHNlbGYudGhldHlwZShmLCAxKSwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IsIHNlbGYudGhldHlwZShmKSwgMSwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IsIHNlbGYudGhldHlwZShmLCB5PTApLCAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgc2VsZi5wYXJ0aWFsKGYsIDEsIDApKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgc2VsZi5wYXJ0aWFsKGYsIDEpLCAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgc2VsZi5wYXJ0aWFsKGYpLCAxLCAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgc2VsZi5wYXJ0aWFsKGYsIHk9MCksIDEpCiAKICAgICBkZWYgdGVzdF93ZWFrcmVmKHNlbGYpOgotICAgICAgICBmID0gc2VsZi50aGV0eXBlKGludCwgYmFzZT0xNikKKyAgICAgICAgZiA9IHNlbGYucGFydGlhbChpbnQsIGJhc2U9MTYpCiAgICAgICAgIHAgPSBwcm94eShmKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuZnVuYywgcC5mdW5jKQogICAgICAgICBmID0gTm9uZQpAQCAtMTQyLDM5ICsxMzksNDUgQEAKIAogICAgIGRlZiB0ZXN0X3dpdGhfYm91bmRfYW5kX3VuYm91bmRfbWV0aG9kcyhzZWxmKToKICAgICAgICAgZGF0YSA9IGxpc3QobWFwKHN0ciwgcmFuZ2UoMTApKSkKLSAgICAgICAgam9pbiA9IHNlbGYudGhldHlwZShzdHIuam9pbiwgJycpCisgICAgICAgIGpvaW4gPSBzZWxmLnBhcnRpYWwoc3RyLmpvaW4sICcnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGpvaW4oZGF0YSksICcwMTIzNDU2Nzg5JykKLSAgICAgICAgam9pbiA9IHNlbGYudGhldHlwZSgnJy5qb2luKQorICAgICAgICBqb2luID0gc2VsZi5wYXJ0aWFsKCcnLmpvaW4pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoam9pbihkYXRhKSwgJzAxMjM0NTY3ODknKQogCisKK0B1bml0dGVzdC5za2lwVW5sZXNzKGNfZnVuY3Rvb2xzLCAncmVxdWlyZXMgdGhlIEMgX2Z1bmN0b29scyBtb2R1bGUnKQorY2xhc3MgVGVzdFBhcnRpYWxDKFRlc3RQYXJ0aWFsLCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgaWYgY19mdW5jdG9vbHM6CisgICAgICAgIHBhcnRpYWwgPSBjX2Z1bmN0b29scy5wYXJ0aWFsCisKICAgICBkZWYgdGVzdF9yZXByKHNlbGYpOgogICAgICAgICBhcmdzID0gKG9iamVjdCgpLCBvYmplY3QoKSkKICAgICAgICAgYXJnc19yZXByID0gJywgJy5qb2luKHJlcHIoYSkgZm9yIGEgaW4gYXJncykKICAgICAgICAga3dhcmdzID0geydhJzogb2JqZWN0KCksICdiJzogb2JqZWN0KCl9CiAgICAgICAgIGt3YXJnc19yZXByID0gJywgJy5qb2luKCIlcz0lciIgJSAoaywgdikgZm9yIGssIHYgaW4ga3dhcmdzLml0ZW1zKCkpCi0gICAgICAgIGlmIHNlbGYudGhldHlwZSBpcyBmdW5jdG9vbHMucGFydGlhbDoKKyAgICAgICAgaWYgc2VsZi5wYXJ0aWFsIGlzIGNfZnVuY3Rvb2xzLnBhcnRpYWw6CiAgICAgICAgICAgICBuYW1lID0gJ2Z1bmN0b29scy5wYXJ0aWFsJwogICAgICAgICBlbHNlOgotICAgICAgICAgICAgbmFtZSA9IHNlbGYudGhldHlwZS5fX25hbWVfXworICAgICAgICAgICAgbmFtZSA9IHNlbGYucGFydGlhbC5fX25hbWVfXwogCi0gICAgICAgIGYgPSBzZWxmLnRoZXR5cGUoY2FwdHVyZSkKKyAgICAgICAgZiA9IHNlbGYucGFydGlhbChjYXB0dXJlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd7fSh7IXJ9KScuZm9ybWF0KG5hbWUsIGNhcHR1cmUpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJlcHIoZikpCiAKLSAgICAgICAgZiA9IHNlbGYudGhldHlwZShjYXB0dXJlLCAqYXJncykKKyAgICAgICAgZiA9IHNlbGYucGFydGlhbChjYXB0dXJlLCAqYXJncykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgne30oeyFyfSwge30pJy5mb3JtYXQobmFtZSwgY2FwdHVyZSwgYXJnc19yZXByKSwKICAgICAgICAgICAgICAgICAgICAgICAgICByZXByKGYpKQogCi0gICAgICAgIGYgPSBzZWxmLnRoZXR5cGUoY2FwdHVyZSwgKiprd2FyZ3MpCisgICAgICAgIGYgPSBzZWxmLnBhcnRpYWwoY2FwdHVyZSwgKiprd2FyZ3MpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3t9KHshcn0sIHt9KScuZm9ybWF0KG5hbWUsIGNhcHR1cmUsIGt3YXJnc19yZXByKSwKICAgICAgICAgICAgICAgICAgICAgICAgICByZXByKGYpKQogCi0gICAgICAgIGYgPSBzZWxmLnRoZXR5cGUoY2FwdHVyZSwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBmID0gc2VsZi5wYXJ0aWFsKGNhcHR1cmUsICphcmdzLCAqKmt3YXJncykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgne30oeyFyfSwge30sIHt9KScuZm9ybWF0KG5hbWUsIGNhcHR1cmUsIGFyZ3NfcmVwciwga3dhcmdzX3JlcHIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJlcHIoZikpCiAKICAgICBkZWYgdGVzdF9waWNrbGUoc2VsZik6Ci0gICAgICAgIGYgPSBzZWxmLnRoZXR5cGUoc2lnbmF0dXJlLCAnYXNkZicsIGJhcj1UcnVlKQorICAgICAgICBmID0gc2VsZi5wYXJ0aWFsKHNpZ25hdHVyZSwgJ2FzZGYnLCBiYXI9VHJ1ZSkKICAgICAgICAgZi5hZGRfc29tZXRoaW5nX3RvX19kaWN0X18gPSBUcnVlCiAgICAgICAgIGZfY29weSA9IHBpY2tsZS5sb2FkcyhwaWNrbGUuZHVtcHMoZikpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2lnbmF0dXJlKGYpLCBzaWduYXR1cmUoZl9jb3B5KSkKQEAgLTE5MywyOCArMTk2LDI2IEBACiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7fQogICAgICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IKIAotICAgICAgICBmID0gc2VsZi50aGV0eXBlKG9iamVjdCkKKyAgICAgICAgZiA9IHNlbGYucGFydGlhbChvYmplY3QpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoU3lzdGVtRXJyb3IsCiAgICAgICAgICAgICAgICAgIm5ldyBzdHlsZSBnZXRhcmdzIGZvcm1hdCBidXQgYXJndW1lbnQgaXMgbm90IGEgdHVwbGUiLAogICAgICAgICAgICAgICAgIGYuX19zZXRzdGF0ZV9fLCBCYWRTZXF1ZW5jZSgpKQogCi1jbGFzcyBQYXJ0aWFsU3ViY2xhc3MoZnVuY3Rvb2xzLnBhcnRpYWwpOgotICAgIHBhc3MKIAotY2xhc3MgVGVzdFBhcnRpYWxTdWJjbGFzcyhUZXN0UGFydGlhbCk6CitjbGFzcyBUZXN0UGFydGlhbFB5KFRlc3RQYXJ0aWFsLCB1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgcGFydGlhbCA9IHN0YXRpY21ldGhvZChweV9mdW5jdG9vbHMucGFydGlhbCkKIAotICAgIHRoZXR5cGUgPSBQYXJ0aWFsU3ViY2xhc3MKIAotY2xhc3MgVGVzdFB5dGhvblBhcnRpYWwoVGVzdFBhcnRpYWwpOgoraWYgY19mdW5jdG9vbHM6CisgICAgY2xhc3MgUGFydGlhbFN1YmNsYXNzKGNfZnVuY3Rvb2xzLnBhcnRpYWwpOgorICAgICAgICBwYXNzCiAKLSAgICB0aGV0eXBlID0gUHl0aG9uUGFydGlhbAogCi0gICAgIyB0aGUgcHl0aG9uIHZlcnNpb24gaGFzbid0IGEgbmljZSByZXByCi0gICAgZGVmIHRlc3RfcmVwcihzZWxmKTogcGFzcworQHVuaXR0ZXN0LnNraXBVbmxlc3MoY19mdW5jdG9vbHMsICdyZXF1aXJlcyB0aGUgQyBfZnVuY3Rvb2xzIG1vZHVsZScpCitjbGFzcyBUZXN0UGFydGlhbENTdWJjbGFzcyhUZXN0UGFydGlhbEMpOgorICAgIGlmIGNfZnVuY3Rvb2xzOgorICAgICAgICBwYXJ0aWFsID0gUGFydGlhbFN1YmNsYXNzCiAKLSAgICAjIHRoZSBweXRob24gdmVyc2lvbiBpc24ndCBwaWNrbGFibGUKLSAgICBkZWYgdGVzdF9waWNrbGUoc2VsZik6IHBhc3MKLSAgICBkZWYgdGVzdF9zZXRzdGF0ZV9yZWZjb3VudChzZWxmKTogcGFzcwogCiBjbGFzcyBUZXN0VXBkYXRlV3JhcHBlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAKQEAgLTMyMiw2ICszMjMsNyBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUod3JhcHBlci5fX2RvY19fLnN0YXJ0c3dpdGgoJ21heCgnKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cmFwcGVyLl9fYW5ub3RhdGlvbnNfXywge30pCiAKKwogY2xhc3MgVGVzdFdyYXBzKFRlc3RVcGRhdGVXcmFwcGVyKToKIAogICAgIGRlZiBfZGVmYXVsdF91cGRhdGUoc2VsZik6CkBAIC0zODIsNiArMzg0LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cmFwcGVyLmF0dHIsICdUaGlzIGlzIGEgZGlmZmVyZW50IHRlc3QnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdyYXBwZXIuZGljdF9hdHRyLCBmLmRpY3RfYXR0cikKIAorCiBjbGFzcyBUZXN0UmVkdWNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBmdW5jID0gZnVuY3Rvb2xzLnJlZHVjZQogCkBAIC00NjIsMjQgKzQ2NSwyOSBAQAogICAgICAgICBkID0geyJvbmUiOiAxLCAidHdvIjogMiwgInRocmVlIjogM30KICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmZ1bmMoYWRkLCBkKSwgIiIuam9pbihkLmtleXMoKSkpCiAKLWNsYXNzIFRlc3RDbXBUb0tleSh1bml0dGVzdC5UZXN0Q2FzZSk6CisKK2NsYXNzIFRlc3RDbXBUb0tleToKIAogICAgIGRlZiB0ZXN0X2NtcF90b19rZXkoc2VsZik6CiAgICAgICAgIGRlZiBjbXAxKHgsIHkpOgogICAgICAgICAgICAgcmV0dXJuICh4ID4geSkgLSAoeCA8IHkpCi0gICAgICAgIGtleSA9IGZ1bmN0b29scy5jbXBfdG9fa2V5KGNtcDEpCisgICAgICAgIGtleSA9IHNlbGYuY21wX3RvX2tleShjbXAxKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGtleSgzKSwga2V5KDMpKQogICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIoa2V5KDMpLCBrZXkoMSkpCisgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKGtleSgzKSwga2V5KDMpKQorCiAgICAgICAgIGRlZiBjbXAyKHgsIHkpOgogICAgICAgICAgICAgcmV0dXJuIGludCh4KSAtIGludCh5KQotICAgICAgICBrZXkgPSBmdW5jdG9vbHMuY21wX3RvX2tleShjbXAyKQorICAgICAgICBrZXkgPSBzZWxmLmNtcF90b19rZXkoY21wMikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrZXkoNC4wKSwga2V5KCc0JykpCiAgICAgICAgIHNlbGYuYXNzZXJ0TGVzcyhrZXkoMiksIGtleSgnMzUnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRMZXNzRXF1YWwoa2V5KDIpLCBrZXkoJzM1JykpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoa2V5KDIpLCBrZXkoJzM1JykpCiAKICAgICBkZWYgdGVzdF9jbXBfdG9fa2V5X2FyZ3VtZW50cyhzZWxmKToKICAgICAgICAgZGVmIGNtcDEoeCwgeSk6CiAgICAgICAgICAgICByZXR1cm4gKHggPiB5KSAtICh4IDwgeSkKLSAgICAgICAga2V5ID0gZnVuY3Rvb2xzLmNtcF90b19rZXkobXljbXA9Y21wMSkKKyAgICAgICAga2V5ID0gc2VsZi5jbXBfdG9fa2V5KG15Y21wPWNtcDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoa2V5KG9iaj0zKSwga2V5KG9iaj0zKSkKICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKGtleShvYmo9MyksIGtleShvYmo9MSkpCiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoKFR5cGVFcnJvciwgQXR0cmlidXRlRXJyb3IpKToKQEAgLTQ4NywxMCArNDk1LDEwIEBACiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoKFR5cGVFcnJvciwgQXR0cmlidXRlRXJyb3IpKToKICAgICAgICAgICAgIDEgPCBrZXkoMykgICAgIyBsaHMgaXMgbm90IGEgSyBvYmplY3QKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgotICAgICAgICAgICAga2V5ID0gZnVuY3Rvb2xzLmNtcF90b19rZXkoKSAgICAgICAgICAgICAjIHRvbyBmZXcgYXJncworICAgICAgICAgICAga2V5ID0gc2VsZi5jbXBfdG9fa2V5KCkgICAgICAgICAgICAgIyB0b28gZmV3IGFyZ3MKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgotICAgICAgICAgICAga2V5ID0gZnVuY3Rvb2xzLmNtcF90b19rZXkoY21wMSwgTm9uZSkgICAjIHRvbyBtYW55IGFyZ3MKLSAgICAgICAga2V5ID0gZnVuY3Rvb2xzLmNtcF90b19rZXkoY21wMSkKKyAgICAgICAgICAgIGtleSA9IHNlbGYuY21wX3RvX2tleShjbXAxLCBOb25lKSAgICMgdG9vIG1hbnkgYXJncworICAgICAgICBrZXkgPSBzZWxmLmNtcF90b19rZXkoY21wMSkKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgogICAgICAgICAgICAga2V5KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRvbyBmZXcgYXJncwogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CkBAIC00OTksNyArNTA3LDcgQEAKICAgICBkZWYgdGVzdF9iYWRfY21wKHNlbGYpOgogICAgICAgICBkZWYgY21wMSh4LCB5KToKICAgICAgICAgICAgIHJhaXNlIFplcm9EaXZpc2lvbkVycm9yCi0gICAgICAgIGtleSA9IGZ1bmN0b29scy5jbXBfdG9fa2V5KGNtcDEpCisgICAgICAgIGtleSA9IHNlbGYuY21wX3RvX2tleShjbXAxKQogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFplcm9EaXZpc2lvbkVycm9yKToKICAgICAgICAgICAgIGtleSgzKSA+IGtleSgxKQogCkBAIC01MTQsMTMgKzUyMiwxMyBAQAogICAgIGRlZiB0ZXN0X29ial9maWVsZChzZWxmKToKICAgICAgICAgZGVmIGNtcDEoeCwgeSk6CiAgICAgICAgICAgICByZXR1cm4gKHggPiB5KSAtICh4IDwgeSkKLSAgICAgICAga2V5ID0gZnVuY3Rvb2xzLmNtcF90b19rZXkobXljbXA9Y21wMSkKKyAgICAgICAga2V5ID0gc2VsZi5jbXBfdG9fa2V5KG15Y21wPWNtcDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoa2V5KDUwKS5vYmosIDUwKQogCiAgICAgZGVmIHRlc3Rfc29ydF9pbnQoc2VsZik6CiAgICAgICAgIGRlZiBteWNtcCh4LCB5KToKICAgICAgICAgICAgIHJldHVybiB5IC0geAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChyYW5nZSg1KSwga2V5PWZ1bmN0b29scy5jbXBfdG9fa2V5KG15Y21wKSksCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVkKHJhbmdlKDUpLCBrZXk9c2VsZi5jbXBfdG9fa2V5KG15Y21wKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgWzQsIDMsIDIsIDEsIDBdKQogCiAgICAgZGVmIHRlc3Rfc29ydF9pbnRfc3RyKHNlbGYpOgpAQCAtNTI4LDE4ICs1MzYsMjkgQEAKICAgICAgICAgICAgIHgsIHkgPSBpbnQoeCksIGludCh5KQogICAgICAgICAgICAgcmV0dXJuICh4ID4geSkgLSAoeCA8IHkpCiAgICAgICAgIHZhbHVlcyA9IFs1LCAnMycsIDcsIDIsICcwJywgJzEnLCA0LCAnMTAnLCAxXQotICAgICAgICB2YWx1ZXMgPSBzb3J0ZWQodmFsdWVzLCBrZXk9ZnVuY3Rvb2xzLmNtcF90b19rZXkobXljbXApKQorICAgICAgICB2YWx1ZXMgPSBzb3J0ZWQodmFsdWVzLCBrZXk9c2VsZi5jbXBfdG9fa2V5KG15Y21wKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbaW50KHZhbHVlKSBmb3IgdmFsdWUgaW4gdmFsdWVzXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBbMCwgMSwgMSwgMiwgMywgNCwgNSwgNywgMTBdKQogCiAgICAgZGVmIHRlc3RfaGFzaChzZWxmKToKICAgICAgICAgZGVmIG15Y21wKHgsIHkpOgogICAgICAgICAgICAgcmV0dXJuIHkgLSB4Ci0gICAgICAgIGtleSA9IGZ1bmN0b29scy5jbXBfdG9fa2V5KG15Y21wKQorICAgICAgICBrZXkgPSBzZWxmLmNtcF90b19rZXkobXljbXApCiAgICAgICAgIGsgPSBrZXkoMTApCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaGFzaCwgaykKICAgICAgICAgc2VsZi5hc3NlcnROb3RJc0luc3RhbmNlKGssIGNvbGxlY3Rpb25zLkhhc2hhYmxlKQogCisKK0B1bml0dGVzdC5za2lwVW5sZXNzKGNfZnVuY3Rvb2xzLCAncmVxdWlyZXMgdGhlIEMgX2Z1bmN0b29scyBtb2R1bGUnKQorY2xhc3MgVGVzdENtcFRvS2V5QyhUZXN0Q21wVG9LZXksIHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBpZiBjX2Z1bmN0b29sczoKKyAgICAgICAgY21wX3RvX2tleSA9IGNfZnVuY3Rvb2xzLmNtcF90b19rZXkKKworCitjbGFzcyBUZXN0Q21wVG9LZXlQeShUZXN0Q21wVG9LZXksIHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBjbXBfdG9fa2V5ID0gc3RhdGljbWV0aG9kKHB5X2Z1bmN0b29scy5jbXBfdG9fa2V5KQorCisKIGNsYXNzIFRlc3RUb3RhbE9yZGVyaW5nKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X3RvdGFsX29yZGVyaW5nX2x0KHNlbGYpOgpAQCAtNjQwLDExICs2NTksMTIgQEAKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgogICAgICAgICAgICAgVGVzdFRPKDgpIDw9ICgpCiAKKwogY2xhc3MgVGVzdExSVSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9scnUoc2VsZik6CiAgICAgICAgIGRlZiBvcmlnKHgsIHkpOgotICAgICAgICAgICAgcmV0dXJuIDMqeCt5CisgICAgICAgICAgICByZXR1cm4gMyAqIHggKyB5CiAgICAgICAgIGYgPSBmdW5jdG9vbHMubHJ1X2NhY2hlKG1heHNpemU9MjApKG9yaWcpCiAgICAgICAgIGhpdHMsIG1pc3NlcywgbWF4c2l6ZSwgY3VycnNpemUgPSBmLmNhY2hlX2luZm8oKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1heHNpemUsIDIwKQpAQCAtNzQ5LDcgKzc2OSw3IEBACiAgICAgICAgICMgVmVyaWZ5IHRoYXQgdXNlcl9mdW5jdGlvbiBleGNlcHRpb25zIGdldCBwYXNzZWQgdGhyb3VnaCB3aXRob3V0CiAgICAgICAgICMgY3JlYXRpbmcgYSBoYXJkLXRvLXJlYWQgY2hhaW5lZCBleGNlcHRpb24uCiAgICAgICAgICMgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTEzMTc3Ci0gICAgICAgIGZvciBtYXhzaXplIGluIChOb25lLCAxMDApOgorICAgICAgICBmb3IgbWF4c2l6ZSBpbiAoTm9uZSwgMTI4KToKICAgICAgICAgICAgIEBmdW5jdG9vbHMubHJ1X2NhY2hlKG1heHNpemUpCiAgICAgICAgICAgICBkZWYgZnVuYyhpKToKICAgICAgICAgICAgICAgICByZXR1cm4gJ2FiYydbaV0KQEAgLTc2Miw3ICs3ODIsNyBAQAogICAgICAgICAgICAgICAgIGZ1bmMoMTUpCiAKICAgICBkZWYgdGVzdF9scnVfd2l0aF90eXBlcyhzZWxmKToKLSAgICAgICAgZm9yIG1heHNpemUgaW4gKE5vbmUsIDEwMCk6CisgICAgICAgIGZvciBtYXhzaXplIGluIChOb25lLCAxMjgpOgogICAgICAgICAgICAgQGZ1bmN0b29scy5scnVfY2FjaGUobWF4c2l6ZT1tYXhzaXplLCB0eXBlZD1UcnVlKQogICAgICAgICAgICAgZGVmIHNxdWFyZSh4KToKICAgICAgICAgICAgICAgICByZXR1cm4geCAqIHgKQEAgLTc3Nyw2ICs3OTcsMzYgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3F1YXJlLmNhY2hlX2luZm8oKS5oaXRzLCA0KQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzcXVhcmUuY2FjaGVfaW5mbygpLm1pc3NlcywgNCkKIAorICAgIGRlZiB0ZXN0X2xydV93aXRoX2tleXdvcmRfYXJncyhzZWxmKToKKyAgICAgICAgQGZ1bmN0b29scy5scnVfY2FjaGUoKQorICAgICAgICBkZWYgZmliKG4pOgorICAgICAgICAgICAgaWYgbiA8IDI6CisgICAgICAgICAgICAgICAgcmV0dXJuIG4KKyAgICAgICAgICAgIHJldHVybiBmaWIobj1uLTEpICsgZmliKG49bi0yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgW2ZpYihuPW51bWJlcikgZm9yIG51bWJlciBpbiByYW5nZSgxNildLAorICAgICAgICAgICAgWzAsIDEsIDEsIDIsIDMsIDUsIDgsIDEzLCAyMSwgMzQsIDU1LCA4OSwgMTQ0LCAyMzMsIDM3NywgNjEwXQorICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmliLmNhY2hlX2luZm8oKSwKKyAgICAgICAgICAgIGZ1bmN0b29scy5fQ2FjaGVJbmZvKGhpdHM9MjgsIG1pc3Nlcz0xNiwgbWF4c2l6ZT0xMjgsIGN1cnJzaXplPTE2KSkKKyAgICAgICAgZmliLmNhY2hlX2NsZWFyKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWIuY2FjaGVfaW5mbygpLAorICAgICAgICAgICAgZnVuY3Rvb2xzLl9DYWNoZUluZm8oaGl0cz0wLCBtaXNzZXM9MCwgbWF4c2l6ZT0xMjgsIGN1cnJzaXplPTApKQorCisgICAgZGVmIHRlc3RfbHJ1X3dpdGhfa2V5d29yZF9hcmdzX21heHNpemVfbm9uZShzZWxmKToKKyAgICAgICAgQGZ1bmN0b29scy5scnVfY2FjaGUobWF4c2l6ZT1Ob25lKQorICAgICAgICBkZWYgZmliKG4pOgorICAgICAgICAgICAgaWYgbiA8IDI6CisgICAgICAgICAgICAgICAgcmV0dXJuIG4KKyAgICAgICAgICAgIHJldHVybiBmaWIobj1uLTEpICsgZmliKG49bi0yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtmaWIobj1udW1iZXIpIGZvciBudW1iZXIgaW4gcmFuZ2UoMTYpXSwKKyAgICAgICAgICAgIFswLCAxLCAxLCAyLCAzLCA1LCA4LCAxMywgMjEsIDM0LCA1NSwgODksIDE0NCwgMjMzLCAzNzcsIDYxMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmliLmNhY2hlX2luZm8oKSwKKyAgICAgICAgICAgIGZ1bmN0b29scy5fQ2FjaGVJbmZvKGhpdHM9MjgsIG1pc3Nlcz0xNiwgbWF4c2l6ZT1Ob25lLCBjdXJyc2l6ZT0xNikpCisgICAgICAgIGZpYi5jYWNoZV9jbGVhcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmliLmNhY2hlX2luZm8oKSwKKyAgICAgICAgICAgIGZ1bmN0b29scy5fQ2FjaGVJbmZvKGhpdHM9MCwgbWlzc2VzPTAsIG1heHNpemU9Tm9uZSwgY3VycnNpemU9MCkpCisKICAgICBkZWYgdGVzdF9uZWVkX2Zvcl9ybG9jayhzZWxmKToKICAgICAgICAgIyBUaGlzIHdpbGwgZGVhZGxvY2sgb24gYW4gTFJVIGNhY2hlIHRoYXQgdXNlcyBhIHJlZ3VsYXIgbG9jawogCkBAIC04MDIsMTcgKzg1MiwzNjYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICBEb3VibGVFcSgyKSkgICAgICAgICAgICAgICAjIFZlcmlmeSB0aGUgY29ycmVjdCByZXR1cm4gdmFsdWUKIAogCitjbGFzcyBUZXN0U2luZ2xlRGlzcGF0Y2godW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X3NpbXBsZV9vdmVybG9hZHMoc2VsZik6CisgICAgICAgIEBmdW5jdG9vbHMuc2luZ2xlZGlzcGF0Y2gKKyAgICAgICAgZGVmIGcob2JqKToKKyAgICAgICAgICAgIHJldHVybiAiYmFzZSIKKyAgICAgICAgZGVmIGdfaW50KGkpOgorICAgICAgICAgICAgcmV0dXJuICJpbnRlZ2VyIgorICAgICAgICBnLnJlZ2lzdGVyKGludCwgZ19pbnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZygic3RyIiksICJiYXNlIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKDEpLCAiaW50ZWdlciIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhbMSwyLDNdKSwgImJhc2UiKQorCisgICAgZGVmIHRlc3RfbXJvKHNlbGYpOgorICAgICAgICBAZnVuY3Rvb2xzLnNpbmdsZWRpc3BhdGNoCisgICAgICAgIGRlZiBnKG9iaik6CisgICAgICAgICAgICByZXR1cm4gImJhc2UiCisgICAgICAgIGNsYXNzIEM6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGNsYXNzIEQoQyk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGRlZiBnX0MoYyk6CisgICAgICAgICAgICByZXR1cm4gIkMiCisgICAgICAgIGcucmVnaXN0ZXIoQywgZ19DKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoQygpKSwgIkMiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoRCgpKSwgIkMiKQorCisgICAgZGVmIHRlc3RfY2xhc3NpY19jbGFzc2VzKHNlbGYpOgorICAgICAgICBAZnVuY3Rvb2xzLnNpbmdsZWRpc3BhdGNoCisgICAgICAgIGRlZiBnKG9iaik6CisgICAgICAgICAgICByZXR1cm4gImJhc2UiCisgICAgICAgIGNsYXNzIEM6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGNsYXNzIEQoQyk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGRlZiBnX0MoYyk6CisgICAgICAgICAgICByZXR1cm4gIkMiCisgICAgICAgIGcucmVnaXN0ZXIoQywgZ19DKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoQygpKSwgIkMiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoRCgpKSwgIkMiKQorCisgICAgZGVmIHRlc3RfcmVnaXN0ZXJfZGVjb3JhdG9yKHNlbGYpOgorICAgICAgICBAZnVuY3Rvb2xzLnNpbmdsZWRpc3BhdGNoCisgICAgICAgIGRlZiBnKG9iaik6CisgICAgICAgICAgICByZXR1cm4gImJhc2UiCisgICAgICAgIEBnLnJlZ2lzdGVyKGludCkKKyAgICAgICAgZGVmIGdfaW50KGkpOgorICAgICAgICAgICAgcmV0dXJuICJpbnQgJXMiICUgKGksKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoIiIpLCAiYmFzZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZygxMiksICJpbnQgMTIiKQorICAgICAgICBzZWxmLmFzc2VydElzKGcuZGlzcGF0Y2goaW50KSwgZ19pbnQpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoZy5kaXNwYXRjaChvYmplY3QpLCBnLmRpc3BhdGNoKHN0cikpCisgICAgICAgICMgTm90ZTogaW4gdGhlIGFzc2VydCBhYm92ZSB0aGlzIGlzIG5vdCBnLgorICAgICAgICAjIEBzaW5nbGVkaXNwYXRjaCByZXR1cm5zIHRoZSB3cmFwcGVyLgorCisgICAgZGVmIHRlc3Rfd3JhcHBpbmdfYXR0cmlidXRlcyhzZWxmKToKKyAgICAgICAgQGZ1bmN0b29scy5zaW5nbGVkaXNwYXRjaAorICAgICAgICBkZWYgZyhvYmopOgorICAgICAgICAgICAgIlNpbXBsZSB0ZXN0IgorICAgICAgICAgICAgcmV0dXJuICJUZXN0IgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcuX19uYW1lX18sICJnIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnLl9fZG9jX18sICJTaW1wbGUgdGVzdCIpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhkZWNpbWFsLCAncmVxdWlyZXMgX2RlY2ltYWwnKQorICAgIEBzdXBwb3J0LmNweXRob25fb25seQorICAgIGRlZiB0ZXN0X2NfY2xhc3NlcyhzZWxmKToKKyAgICAgICAgQGZ1bmN0b29scy5zaW5nbGVkaXNwYXRjaAorICAgICAgICBkZWYgZyhvYmopOgorICAgICAgICAgICAgcmV0dXJuICJiYXNlIgorICAgICAgICBAZy5yZWdpc3RlcihkZWNpbWFsLkRlY2ltYWxFeGNlcHRpb24pCisgICAgICAgIGRlZiBfKG9iaik6CisgICAgICAgICAgICByZXR1cm4gb2JqLmFyZ3MKKyAgICAgICAgc3VibiA9IGRlY2ltYWwuU3Vibm9ybWFsKCJFeHBvbmVudCA8IEVtaW4iKQorICAgICAgICBybmQgPSBkZWNpbWFsLlJvdW5kZWQoIk51bWJlciBnb3Qgcm91bmRlZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhzdWJuKSwgKCJFeHBvbmVudCA8IEVtaW4iLCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhybmQpLCAoIk51bWJlciBnb3Qgcm91bmRlZCIsKSkKKyAgICAgICAgQGcucmVnaXN0ZXIoZGVjaW1hbC5TdWJub3JtYWwpCisgICAgICAgIGRlZiBfKG9iaik6CisgICAgICAgICAgICByZXR1cm4gIlRvbyBzbWFsbCB0byBjYXJlLiIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHN1Ym4pLCAiVG9vIHNtYWxsIHRvIGNhcmUuIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHJuZCksICgiTnVtYmVyIGdvdCByb3VuZGVkIiwpKQorCisgICAgZGVmIHRlc3RfY29tcG9zZV9tcm8oc2VsZik6CisgICAgICAgIGMgPSBjb2xsZWN0aW9ucworICAgICAgICBtcm8gPSBmdW5jdG9vbHMuX2NvbXBvc2VfbXJvCisgICAgICAgIGJhc2VzID0gW2MuU2VxdWVuY2UsIGMuTXV0YWJsZU1hcHBpbmcsIGMuTWFwcGluZywgYy5TZXRdCisgICAgICAgIGZvciBoYXlzdGFjayBpbiBwZXJtdXRhdGlvbnMoYmFzZXMpOgorICAgICAgICAgICAgbSA9IG1ybyhkaWN0LCBoYXlzdGFjaykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobSwgW2RpY3QsIGMuTXV0YWJsZU1hcHBpbmcsIGMuTWFwcGluZywgb2JqZWN0XSkKKyAgICAgICAgYmFzZXMgPSBbYy5Db250YWluZXIsIGMuTWFwcGluZywgYy5NdXRhYmxlTWFwcGluZywgYy5PcmRlcmVkRGljdF0KKyAgICAgICAgZm9yIGhheXN0YWNrIGluIHBlcm11dGF0aW9ucyhiYXNlcyk6CisgICAgICAgICAgICBtID0gbXJvKGMuQ2hhaW5NYXAsIGhheXN0YWNrKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLCBbYy5DaGFpbk1hcCwgYy5NdXRhYmxlTWFwcGluZywgYy5NYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5TaXplZCwgYy5JdGVyYWJsZSwgYy5Db250YWluZXIsIG9iamVjdF0pCisgICAgICAgICMgTm90ZTogVGhlIE1STyBvcmRlciBiZWxvdyBkZXBlbmRzIG9uIGhheXN0YWNrIG9yZGVyaW5nLgorICAgICAgICBtID0gbXJvKGMuZGVmYXVsdGRpY3QsIFtjLlNpemVkLCBjLkNvbnRhaW5lciwgc3RyXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLCBbYy5kZWZhdWx0ZGljdCwgZGljdCwgYy5Db250YWluZXIsIGMuU2l6ZWQsIG9iamVjdF0pCisgICAgICAgIG0gPSBtcm8oYy5kZWZhdWx0ZGljdCwgW2MuQ29udGFpbmVyLCBjLlNpemVkLCBzdHJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0sIFtjLmRlZmF1bHRkaWN0LCBkaWN0LCBjLlNpemVkLCBjLkNvbnRhaW5lciwgb2JqZWN0XSkKKworICAgIGRlZiB0ZXN0X3JlZ2lzdGVyX2FiYyhzZWxmKToKKyAgICAgICAgYyA9IGNvbGxlY3Rpb25zCisgICAgICAgIGQgPSB7ImEiOiAiYiJ9CisgICAgICAgIGwgPSBbMSwgMiwgM10KKyAgICAgICAgcyA9IHtvYmplY3QoKSwgTm9uZX0KKyAgICAgICAgZiA9IGZyb3plbnNldChzKQorICAgICAgICB0ID0gKDEsIDIsIDMpCisgICAgICAgIEBmdW5jdG9vbHMuc2luZ2xlZGlzcGF0Y2gKKyAgICAgICAgZGVmIGcob2JqKToKKyAgICAgICAgICAgIHJldHVybiAiYmFzZSIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGQpLCAiYmFzZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhsKSwgImJhc2UiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcocyksICJiYXNlIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGYpLCAiYmFzZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyh0KSwgImJhc2UiKQorICAgICAgICBnLnJlZ2lzdGVyKGMuU2l6ZWQsIGxhbWJkYSBvYmo6ICJzaXplZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhkKSwgInNpemVkIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGwpLCAic2l6ZWQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcocyksICJzaXplZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhmKSwgInNpemVkIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHQpLCAic2l6ZWQiKQorICAgICAgICBnLnJlZ2lzdGVyKGMuTXV0YWJsZU1hcHBpbmcsIGxhbWJkYSBvYmo6ICJtdXRhYmxlbWFwcGluZyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhkKSwgIm11dGFibGVtYXBwaW5nIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGwpLCAic2l6ZWQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcocyksICJzaXplZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhmKSwgInNpemVkIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHQpLCAic2l6ZWQiKQorICAgICAgICBnLnJlZ2lzdGVyKGMuQ2hhaW5NYXAsIGxhbWJkYSBvYmo6ICJjaGFpbm1hcCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhkKSwgIm11dGFibGVtYXBwaW5nIikgICMgaXJyZWxldmFudCBBQkNzIHJlZ2lzdGVyZWQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGwpLCAic2l6ZWQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcocyksICJzaXplZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhmKSwgInNpemVkIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHQpLCAic2l6ZWQiKQorICAgICAgICBnLnJlZ2lzdGVyKGMuTXV0YWJsZVNlcXVlbmNlLCBsYW1iZGEgb2JqOiAibXV0YWJsZXNlcXVlbmNlIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGQpLCAibXV0YWJsZW1hcHBpbmciKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcobCksICJtdXRhYmxlc2VxdWVuY2UiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcocyksICJzaXplZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhmKSwgInNpemVkIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHQpLCAic2l6ZWQiKQorICAgICAgICBnLnJlZ2lzdGVyKGMuTXV0YWJsZVNldCwgbGFtYmRhIG9iajogIm11dGFibGVzZXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoZCksICJtdXRhYmxlbWFwcGluZyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhsKSwgIm11dGFibGVzZXF1ZW5jZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhzKSwgIm11dGFibGVzZXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoZiksICJzaXplZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyh0KSwgInNpemVkIikKKyAgICAgICAgZy5yZWdpc3RlcihjLk1hcHBpbmcsIGxhbWJkYSBvYmo6ICJtYXBwaW5nIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGQpLCAibXV0YWJsZW1hcHBpbmciKSAgIyBub3Qgc3BlY2lmaWMgZW5vdWdoCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhsKSwgIm11dGFibGVzZXF1ZW5jZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhzKSwgIm11dGFibGVzZXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoZiksICJzaXplZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyh0KSwgInNpemVkIikKKyAgICAgICAgZy5yZWdpc3RlcihjLlNlcXVlbmNlLCBsYW1iZGEgb2JqOiAic2VxdWVuY2UiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoZCksICJtdXRhYmxlbWFwcGluZyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhsKSwgIm11dGFibGVzZXF1ZW5jZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhzKSwgIm11dGFibGVzZXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoZiksICJzaXplZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyh0KSwgInNlcXVlbmNlIikKKyAgICAgICAgZy5yZWdpc3RlcihjLlNldCwgbGFtYmRhIG9iajogInNldCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhkKSwgIm11dGFibGVtYXBwaW5nIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGwpLCAibXV0YWJsZXNlcXVlbmNlIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHMpLCAibXV0YWJsZXNldCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhmKSwgInNldCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyh0KSwgInNlcXVlbmNlIikKKyAgICAgICAgZy5yZWdpc3RlcihkaWN0LCBsYW1iZGEgb2JqOiAiZGljdCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhkKSwgImRpY3QiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcobCksICJtdXRhYmxlc2VxdWVuY2UiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcocyksICJtdXRhYmxlc2V0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGYpLCAic2V0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHQpLCAic2VxdWVuY2UiKQorICAgICAgICBnLnJlZ2lzdGVyKGxpc3QsIGxhbWJkYSBvYmo6ICJsaXN0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGQpLCAiZGljdCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhsKSwgImxpc3QiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcocyksICJtdXRhYmxlc2V0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGYpLCAic2V0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHQpLCAic2VxdWVuY2UiKQorICAgICAgICBnLnJlZ2lzdGVyKHNldCwgbGFtYmRhIG9iajogImNvbmNyZXRlLXNldCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhkKSwgImRpY3QiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcobCksICJsaXN0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHMpLCAiY29uY3JldGUtc2V0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGYpLCAic2V0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHQpLCAic2VxdWVuY2UiKQorICAgICAgICBnLnJlZ2lzdGVyKGZyb3plbnNldCwgbGFtYmRhIG9iajogImZyb3plbi1zZXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoZCksICJkaWN0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGwpLCAibGlzdCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhzKSwgImNvbmNyZXRlLXNldCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhmKSwgImZyb3plbi1zZXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcodCksICJzZXF1ZW5jZSIpCisgICAgICAgIGcucmVnaXN0ZXIodHVwbGUsIGxhbWJkYSBvYmo6ICJ0dXBsZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhkKSwgImRpY3QiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcobCksICJsaXN0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHMpLCAiY29uY3JldGUtc2V0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGYpLCAiZnJvemVuLXNldCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyh0KSwgInR1cGxlIikKKworICAgIGRlZiB0ZXN0X21yb19jb25mbGljdHMoc2VsZik6CisgICAgICAgIGMgPSBjb2xsZWN0aW9ucworCisgICAgICAgIEBmdW5jdG9vbHMuc2luZ2xlZGlzcGF0Y2gKKyAgICAgICAgZGVmIGcoYXJnKToKKyAgICAgICAgICAgIHJldHVybiAiYmFzZSIKKworICAgICAgICBjbGFzcyBPKGMuU2l6ZWQpOgorICAgICAgICAgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIDAKKworICAgICAgICBvID0gTygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhvKSwgImJhc2UiKQorICAgICAgICBnLnJlZ2lzdGVyKGMuSXRlcmFibGUsIGxhbWJkYSBhcmc6ICJpdGVyYWJsZSIpCisgICAgICAgIGcucmVnaXN0ZXIoYy5Db250YWluZXIsIGxhbWJkYSBhcmc6ICJjb250YWluZXIiKQorICAgICAgICBnLnJlZ2lzdGVyKGMuU2l6ZWQsIGxhbWJkYSBhcmc6ICJzaXplZCIpCisgICAgICAgIGcucmVnaXN0ZXIoYy5TZXQsIGxhbWJkYSBhcmc6ICJzZXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcobyksICJzaXplZCIpCisgICAgICAgIGMuSXRlcmFibGUucmVnaXN0ZXIoTykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKG8pLCAic2l6ZWQiKSAgICMgYmVjYXVzZSBpdCdzIGV4cGxpY2l0bHkgaW4gX19tcm9fXworICAgICAgICBjLkNvbnRhaW5lci5yZWdpc3RlcihPKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcobyksICJzaXplZCIpICAgIyBzZWUgYWJvdmU6IFNpemVkIGlzIGluIF9fbXJvX18KKworICAgICAgICBjbGFzcyBQOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIHAgPSBQKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHApLCAiYmFzZSIpCisgICAgICAgIGMuSXRlcmFibGUucmVnaXN0ZXIoUCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKHApLCAiaXRlcmFibGUiKQorICAgICAgICBjLkNvbnRhaW5lci5yZWdpc3RlcihQKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvcikgYXMgcmU6CisgICAgICAgICAgICBnKHApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgICAgIHN0cihyZSksCisgICAgICAgICAgICAgICAgKCJBbWJpZ3VvdXMgZGlzcGF0Y2g6IDxjbGFzcyAnY29sbGVjdGlvbnMuYWJjLkNvbnRhaW5lcic+ICIKKyAgICAgICAgICAgICAgICAgICAgIm9yIDxjbGFzcyAnY29sbGVjdGlvbnMuYWJjLkl0ZXJhYmxlJz4iKSwKKyAgICAgICAgICAgICkKKworICAgICAgICBjbGFzcyBRKGMuU2l6ZWQpOgorICAgICAgICAgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIDAKKworICAgICAgICBxID0gUSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhxKSwgInNpemVkIikKKyAgICAgICAgYy5JdGVyYWJsZS5yZWdpc3RlcihRKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcocSksICJzaXplZCIpICAgIyBiZWNhdXNlIGl0J3MgZXhwbGljaXRseSBpbiBfX21yb19fCisgICAgICAgIGMuU2V0LnJlZ2lzdGVyKFEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhxKSwgInNldCIpICAgICAjIGJlY2F1c2UgYy5TZXQgaXMgYSBzdWJjbGFzcyBvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjLlNpemVkIHdoaWNoIGlzIGV4cGxpY2l0bHkgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgX19tcm9fXworCisgICAgZGVmIHRlc3RfY2FjaGVfaW52YWxpZGF0aW9uKHNlbGYpOgorICAgICAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBVc2VyRGljdAorICAgICAgICBjbGFzcyBUcmFjaW5nRGljdChVc2VyRGljdCk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICBzdXBlcihUcmFjaW5nRGljdCwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICAgICAgICAgIHNlbGYuc2V0X29wcyA9IFtdCisgICAgICAgICAgICAgICAgc2VsZi5nZXRfb3BzID0gW10KKyAgICAgICAgICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuZGF0YVtrZXldCisgICAgICAgICAgICAgICAgc2VsZi5nZXRfb3BzLmFwcGVuZChrZXkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgICAgICAgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpOgorICAgICAgICAgICAgICAgIHNlbGYuc2V0X29wcy5hcHBlbmQoa2V5KQorICAgICAgICAgICAgICAgIHNlbGYuZGF0YVtrZXldID0gdmFsdWUKKyAgICAgICAgICAgIGRlZiBjbGVhcihzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLmRhdGEuY2xlYXIoKQorICAgICAgICBfb3JpZ193a2QgPSBmdW5jdG9vbHMuV2Vha0tleURpY3Rpb25hcnkKKyAgICAgICAgdGQgPSBUcmFjaW5nRGljdCgpCisgICAgICAgIGZ1bmN0b29scy5XZWFrS2V5RGljdGlvbmFyeSA9IGxhbWJkYTogdGQKKyAgICAgICAgYyA9IGNvbGxlY3Rpb25zCisgICAgICAgIEBmdW5jdG9vbHMuc2luZ2xlZGlzcGF0Y2gKKyAgICAgICAgZGVmIGcoYXJnKToKKyAgICAgICAgICAgIHJldHVybiAiYmFzZSIKKyAgICAgICAgZCA9IHt9CisgICAgICAgIGwgPSBbXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih0ZCksIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhkKSwgImJhc2UiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih0ZCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGQuZ2V0X29wcywgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGQuc2V0X29wcywgW2RpY3RdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRkLmRhdGFbZGljdF0sIGcucmVnaXN0cnlbb2JqZWN0XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGwpLCAiYmFzZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHRkKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZC5nZXRfb3BzLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZC5zZXRfb3BzLCBbZGljdCwgbGlzdF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGQuZGF0YVtkaWN0XSwgZy5yZWdpc3RyeVtvYmplY3RdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRkLmRhdGFbbGlzdF0sIGcucmVnaXN0cnlbb2JqZWN0XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZC5kYXRhW2RpY3RdLCB0ZC5kYXRhW2xpc3RdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcobCksICJiYXNlIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGQpLCAiYmFzZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGQuZ2V0X29wcywgW2xpc3QsIGRpY3RdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRkLnNldF9vcHMsIFtkaWN0LCBsaXN0XSkKKyAgICAgICAgZy5yZWdpc3RlcihsaXN0LCBsYW1iZGEgYXJnOiAibGlzdCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGQuZ2V0X29wcywgW2xpc3QsIGRpY3RdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih0ZCksIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhkKSwgImJhc2UiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih0ZCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGQuZ2V0X29wcywgW2xpc3QsIGRpY3RdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRkLnNldF9vcHMsIFtkaWN0LCBsaXN0LCBkaWN0XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZC5kYXRhW2RpY3RdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0b29scy5fZmluZF9pbXBsKGRpY3QsIGcucmVnaXN0cnkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcobCksICJsaXN0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odGQpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRkLmdldF9vcHMsIFtsaXN0LCBkaWN0XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZC5zZXRfb3BzLCBbZGljdCwgbGlzdCwgZGljdCwgbGlzdF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGQuZGF0YVtsaXN0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdG9vbHMuX2ZpbmRfaW1wbChsaXN0LCBnLnJlZ2lzdHJ5KSkKKyAgICAgICAgY2xhc3MgWDoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgYy5NdXRhYmxlTWFwcGluZy5yZWdpc3RlcihYKSAgICMgV2lsbCBub3QgaW52YWxpZGF0ZSB0aGUgY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5vdCB1c2luZyBBQkNzIHlldC4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGQpLCAiYmFzZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhsKSwgImxpc3QiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRkLmdldF9vcHMsIFtsaXN0LCBkaWN0LCBkaWN0LCBsaXN0XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZC5zZXRfb3BzLCBbZGljdCwgbGlzdCwgZGljdCwgbGlzdF0pCisgICAgICAgIGcucmVnaXN0ZXIoYy5TaXplZCwgbGFtYmRhIGFyZzogInNpemVkIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odGQpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoZCksICJzaXplZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHRkKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZC5nZXRfb3BzLCBbbGlzdCwgZGljdCwgZGljdCwgbGlzdF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGQuc2V0X29wcywgW2RpY3QsIGxpc3QsIGRpY3QsIGxpc3QsIGRpY3RdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcobCksICJsaXN0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odGQpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRkLmdldF9vcHMsIFtsaXN0LCBkaWN0LCBkaWN0LCBsaXN0XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZC5zZXRfb3BzLCBbZGljdCwgbGlzdCwgZGljdCwgbGlzdCwgZGljdCwgbGlzdF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhsKSwgImxpc3QiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoZCksICJzaXplZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGQuZ2V0X29wcywgW2xpc3QsIGRpY3QsIGRpY3QsIGxpc3QsIGxpc3QsIGRpY3RdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRkLnNldF9vcHMsIFtkaWN0LCBsaXN0LCBkaWN0LCBsaXN0LCBkaWN0LCBsaXN0XSkKKyAgICAgICAgZy5kaXNwYXRjaChsaXN0KQorICAgICAgICBnLmRpc3BhdGNoKGRpY3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGQuZ2V0X29wcywgW2xpc3QsIGRpY3QsIGRpY3QsIGxpc3QsIGxpc3QsIGRpY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QsIGRpY3RdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRkLnNldF9vcHMsIFtkaWN0LCBsaXN0LCBkaWN0LCBsaXN0LCBkaWN0LCBsaXN0XSkKKyAgICAgICAgYy5NdXRhYmxlU2V0LnJlZ2lzdGVyKFgpICAgICAgICMgV2lsbCBpbnZhbGlkYXRlIHRoZSBjYWNoZS4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odGQpLCAyKSAgICMgU3RhbGUgY2FjaGUuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhsKSwgImxpc3QiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih0ZCksIDEpCisgICAgICAgIGcucmVnaXN0ZXIoYy5NdXRhYmxlTWFwcGluZywgbGFtYmRhIGFyZzogIm11dGFibGVtYXBwaW5nIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odGQpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcoZCksICJtdXRhYmxlbWFwcGluZyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHRkKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnKGwpLCAibGlzdCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHRkKSwgMikKKyAgICAgICAgZy5yZWdpc3RlcihkaWN0LCBsYW1iZGEgYXJnOiAiZGljdCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZyhkKSwgImRpY3QiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcobCksICJsaXN0IikKKyAgICAgICAgZy5fY2xlYXJfY2FjaGUoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih0ZCksIDApCisgICAgICAgIGZ1bmN0b29scy5XZWFrS2V5RGljdGlvbmFyeSA9IF9vcmlnX3drZAorCisKIGRlZiB0ZXN0X21haW4odmVyYm9zZT1Ob25lKToKICAgICB0ZXN0X2NsYXNzZXMgPSAoCi0gICAgICAgIFRlc3RQYXJ0aWFsLAotICAgICAgICBUZXN0UGFydGlhbFN1YmNsYXNzLAotICAgICAgICBUZXN0UHl0aG9uUGFydGlhbCwKKyAgICAgICAgVGVzdFBhcnRpYWxDLAorICAgICAgICBUZXN0UGFydGlhbFB5LAorICAgICAgICBUZXN0UGFydGlhbENTdWJjbGFzcywKICAgICAgICAgVGVzdFVwZGF0ZVdyYXBwZXIsCiAgICAgICAgIFRlc3RUb3RhbE9yZGVyaW5nLAotICAgICAgICBUZXN0Q21wVG9LZXksCisgICAgICAgIFRlc3RDbXBUb0tleUMsCisgICAgICAgIFRlc3RDbXBUb0tleVB5LAogICAgICAgICBUZXN0V3JhcHMsCiAgICAgICAgIFRlc3RSZWR1Y2UsCiAgICAgICAgIFRlc3RMUlUsCisgICAgICAgIFRlc3RTaW5nbGVEaXNwYXRjaCwKICAgICApCiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoKnRlc3RfY2xhc3NlcykKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9mdXR1cmUucHkgYi9MaWIvdGVzdC90ZXN0X2Z1dHVyZS5weQppbmRleCBhMGMxNTZmLi5iZWFjOTkzIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2Z1dHVyZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X2Z1dHVyZS5weQpAQCAtODIsNiArODIsMTQgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuZmFpbCgiZXhwZWN0ZWQgZXhjZXB0aW9uIGRpZG4ndCBvY2N1ciIpCiAKKyAgICBkZWYgdGVzdF9iYWRmdXR1cmUxMChzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZnJvbSB0ZXN0IGltcG9ydCBiYWRzeW50YXhfZnV0dXJlMTAKKyAgICAgICAgZXhjZXB0IFN5bnRheEVycm9yIGFzIG1zZzoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2V0X2Vycm9yX2xvY2F0aW9uKG1zZyksICgiYmFkc3ludGF4X2Z1dHVyZTEwIiwgJzMnKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgiZXhwZWN0ZWQgZXhjZXB0aW9uIGRpZG4ndCBvY2N1ciIpCisKICAgICBkZWYgdGVzdF9wYXJzZXJoYWNrKHNlbGYpOgogICAgICAgICAjIHRlc3QgdGhhdCB0aGUgcGFyc2VyLmM6OmZ1dHVyZV9oYWNrIGZ1bmN0aW9uIHdvcmtzIGFzIGV4cGVjdGVkCiAgICAgICAgICMgTm90ZTogYWx0aG91Z2ggdGhpcyB0ZXN0IG11c3QgcGFzcywgaXQncyBub3QgdGVzdGluZyB0aGUgb3JpZ2luYWwKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZ2MucHkgYi9MaWIvdGVzdC90ZXN0X2djLnB5CmluZGV4IGM1OWI3MmUuLjZiNTJlNWEgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZ2MucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9nYy5weQpAQCAtMSw2ICsxLDggQEAKIGltcG9ydCB1bml0dGVzdAogZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0ICh2ZXJib3NlLCByZWZjb3VudF90ZXN0LCBydW5fdW5pdHRlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBfcHl0aG9uX3N0ZGVycikKK2Zyb20gdGVzdC5zY3JpcHRfaGVscGVyIGltcG9ydCBhc3NlcnRfcHl0aG9uX29rLCBtYWtlX3NjcmlwdCwgdGVtcF9kaXIKKwogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIGltcG9ydCBnYwpAQCAtNjEwLDYgKzYxMiw2NiBAQAogICAgICAgICBzdGRlcnIgPSBydW5fY29tbWFuZChjb2RlICUgImdjLkRFQlVHX1NBVkVBTEwiKQogICAgICAgICBzZWxmLmFzc2VydE5vdEluKGIidW5jb2xsZWN0YWJsZSBvYmplY3RzIGF0IHNodXRkb3duIiwgc3RkZXJyKQogCisgICAgZGVmIHRlc3RfZ2NfbWFpbl9tb2R1bGVfYXRfc2h1dGRvd24oc2VsZik6CisgICAgICAgICMgQ3JlYXRlIGEgcmVmZXJlbmNlIGN5Y2xlIHRocm91Z2ggdGhlIF9fbWFpbl9fIG1vZHVsZSBhbmQgY2hlY2sKKyAgICAgICAgIyBpdCBnZXRzIGNvbGxlY3RlZCBhdCBpbnRlcnByZXRlciBzaHV0ZG93bi4KKyAgICAgICAgY29kZSA9ICIiImlmIDE6CisgICAgICAgICAgICBpbXBvcnQgd2Vha3JlZgorICAgICAgICAgICAgY2xhc3MgQzoKKyAgICAgICAgICAgICAgICBkZWYgX19kZWxfXyhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ19fZGVsX18gY2FsbGVkJykKKyAgICAgICAgICAgIGwgPSBbQygpXQorICAgICAgICAgICAgbC5hcHBlbmQobCkKKyAgICAgICAgICAgICIiIgorICAgICAgICByYywgb3V0LCBlcnIgPSBhc3NlcnRfcHl0aG9uX29rKCctYycsIGNvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0LnN0cmlwKCksIGInX19kZWxfXyBjYWxsZWQnKQorCisgICAgZGVmIHRlc3RfZ2Nfb3JkaW5hcnlfbW9kdWxlX2F0X3NodXRkb3duKHNlbGYpOgorICAgICAgICAjIFNhbWUgYXMgYWJvdmUsIGJ1dCB3aXRoIGEgbm9uLV9fbWFpbl9fIG1vZHVsZS4KKyAgICAgICAgd2l0aCB0ZW1wX2RpcigpIGFzIHNjcmlwdF9kaXI6CisgICAgICAgICAgICBtb2R1bGUgPSAiIiJpZiAxOgorICAgICAgICAgICAgICAgIGltcG9ydCB3ZWFrcmVmCisgICAgICAgICAgICAgICAgY2xhc3MgQzoKKyAgICAgICAgICAgICAgICAgICAgZGVmIF9fZGVsX18oc2VsZik6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgnX19kZWxfXyBjYWxsZWQnKQorICAgICAgICAgICAgICAgIGwgPSBbQygpXQorICAgICAgICAgICAgICAgIGwuYXBwZW5kKGwpCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBjb2RlID0gIiIiaWYgMToKKyAgICAgICAgICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgICAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsICVyKQorICAgICAgICAgICAgICAgIGltcG9ydCBnY3Rlc3QKKyAgICAgICAgICAgICAgICAiIiIgJSAoc2NyaXB0X2RpciwpCisgICAgICAgICAgICBtYWtlX3NjcmlwdChzY3JpcHRfZGlyLCAnZ2N0ZXN0JywgbW9kdWxlKQorICAgICAgICAgICAgcmMsIG91dCwgZXJyID0gYXNzZXJ0X3B5dGhvbl9vaygnLWMnLCBjb2RlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXQuc3RyaXAoKSwgYidfX2RlbF9fIGNhbGxlZCcpCisKKyAgICBkZWYgdGVzdF9nZXRfc3RhdHMoc2VsZik6CisgICAgICAgIHN0YXRzID0gZ2MuZ2V0X3N0YXRzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc3RhdHMpLCAzKQorICAgICAgICBmb3Igc3QgaW4gc3RhdHM6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2Uoc3QsIGRpY3QpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNldChzdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiY29sbGVjdGVkIiwgImNvbGxlY3Rpb25zIiwgInVuY29sbGVjdGFibGUifSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKHN0WyJjb2xsZWN0ZWQiXSwgMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKHN0WyJjb2xsZWN0aW9ucyJdLCAwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwoc3RbInVuY29sbGVjdGFibGUiXSwgMCkKKyAgICAgICAgIyBDaGVjayB0aGF0IGNvbGxlY3Rpb24gY291bnRzIGFyZSBpbmNyZW1lbnRlZCBjb3JyZWN0bHkKKyAgICAgICAgaWYgZ2MuaXNlbmFibGVkKCk6CisgICAgICAgICAgICBzZWxmLmFkZENsZWFudXAoZ2MuZW5hYmxlKQorICAgICAgICAgICAgZ2MuZGlzYWJsZSgpCisgICAgICAgIG9sZCA9IGdjLmdldF9zdGF0cygpCisgICAgICAgIGdjLmNvbGxlY3QoMCkKKyAgICAgICAgbmV3ID0gZ2MuZ2V0X3N0YXRzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdbMF1bImNvbGxlY3Rpb25zIl0sIG9sZFswXVsiY29sbGVjdGlvbnMiXSArIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3WzFdWyJjb2xsZWN0aW9ucyJdLCBvbGRbMV1bImNvbGxlY3Rpb25zIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3WzJdWyJjb2xsZWN0aW9ucyJdLCBvbGRbMl1bImNvbGxlY3Rpb25zIl0pCisgICAgICAgIGdjLmNvbGxlY3QoMikKKyAgICAgICAgbmV3ID0gZ2MuZ2V0X3N0YXRzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdbMF1bImNvbGxlY3Rpb25zIl0sIG9sZFswXVsiY29sbGVjdGlvbnMiXSArIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3WzFdWyJjb2xsZWN0aW9ucyJdLCBvbGRbMV1bImNvbGxlY3Rpb25zIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3WzJdWyJjb2xsZWN0aW9ucyJdLCBvbGRbMl1bImNvbGxlY3Rpb25zIl0gKyAxKQorCiAKIGNsYXNzIEdDQ2FsbGJhY2tUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9nZW5lcmF0b3JzLnB5IGIvTGliL3Rlc3QvdGVzdF9nZW5lcmF0b3JzLnB5CmluZGV4IDk1ODA1NGEuLmVkZjM0NDMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZ2VuZXJhdG9ycy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2dlbmVyYXRvcnMucHkKQEAgLTE3MjksOSArMTcyOSw3IEBACiA+Pj4gZyA9IGYoKQogPj4+IG5leHQoZykKID4+PiBkZWwgZwotPj4+IHN5cy5zdGRlcnIuZ2V0dmFsdWUoKS5zdGFydHN3aXRoKAotLi4uICAgICAiRXhjZXB0aW9uIFJ1bnRpbWVFcnJvcjogJ2dlbmVyYXRvciBpZ25vcmVkIEdlbmVyYXRvckV4aXQnIGluICIKLS4uLiApCis+Pj4gIlJ1bnRpbWVFcnJvcjogZ2VuZXJhdG9yIGlnbm9yZWQgR2VuZXJhdG9yRXhpdCIgaW4gc3lzLnN0ZGVyci5nZXR2YWx1ZSgpCiBUcnVlCiA+Pj4gc3lzLnN0ZGVyciA9IG9sZAogCkBAIC0xODQxLDIyICsxODM5LDIzIEBACiAuLi4gICAgIHN5cy5zdGRlcnIgPSBpby5TdHJpbmdJTygpCiAuLi4gICAgIGNsYXNzIExlYWtlcjoKIC4uLiAgICAgICAgIGRlZiBfX2RlbF9fKHNlbGYpOgotLi4uICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcgorLi4uICAgICAgICAgICAgIGRlZiBpbnZva2UobWVzc2FnZSk6CisuLi4gICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcihtZXNzYWdlKQorLi4uICAgICAgICAgICAgIGludm9rZSgidGVzdCIpCiAuLi4KIC4uLiAgICAgbCA9IExlYWtlcigpCiAuLi4gICAgIGRlbCBsCiAuLi4gICAgIGVyciA9IHN5cy5zdGRlcnIuZ2V0dmFsdWUoKS5zdHJpcCgpCi0uLi4gICAgIGVyci5zdGFydHN3aXRoKAotLi4uICAgICAgICAgIkV4Y2VwdGlvbiBSdW50aW1lRXJyb3I6IFJ1bnRpbWVFcnJvcigpIGluIDwiCi0uLi4gICAgICkKLS4uLiAgICAgZXJyLmVuZHN3aXRoKCI+IGlnbm9yZWQiKQotLi4uICAgICBsZW4oZXJyLnNwbGl0bGluZXMoKSkKKy4uLiAgICAgIkV4Y2VwdGlvbiBpZ25vcmVkIGluIiBpbiBlcnIKKy4uLiAgICAgIlJ1bnRpbWVFcnJvcjogdGVzdCIgaW4gZXJyCisuLi4gICAgICJUcmFjZWJhY2siIGluIGVycgorLi4uICAgICAiaW4gaW52b2tlIiBpbiBlcnIKIC4uLiBmaW5hbGx5OgogLi4uICAgICBzeXMuc3RkZXJyID0gb2xkCiBUcnVlCiBUcnVlCi0xCi0KK1RydWUKK1RydWUKIAogCiBUaGVzZSByZWZsZWFrIHRlc3RzIHNob3VsZCBwZXJoYXBzIGJlIGluIGEgdGVzdGZpbGUgb2YgdGhlaXIgb3duLApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9nZW5lcmljcGF0aC5weSBiL0xpYi90ZXN0L3Rlc3RfZ2VuZXJpY3BhdGgucHkKaW5kZXggZmQ4YmM1Ny4uZTk2Nzg5NyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9nZW5lcmljcGF0aC5weQorKysgYi9MaWIvdGVzdC90ZXN0X2dlbmVyaWNwYXRoLnB5CkBAIC0xODgsMTIgKzE4OCw5MyBAQAogICAgICAgICAgICAgc3VwcG9ydC51bmxpbmsoc3VwcG9ydC5URVNURk4pCiAgICAgICAgICAgICBzYWZlX3JtZGlyKHN1cHBvcnQuVEVTVEZOKQogCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfY3JlYXRlX2ZpbGUoZmlsZW5hbWUpOgorICAgICAgICB3aXRoIG9wZW4oZmlsZW5hbWUsICd3YicpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKGInZm9vJykKKworICAgIGRlZiB0ZXN0X3NhbWVmaWxlKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0ZXN0X2ZuID0gc3VwcG9ydC5URVNURk4gKyAiMSIKKyAgICAgICAgICAgIHNlbGYuX2NyZWF0ZV9maWxlKHRlc3RfZm4pCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5wYXRobW9kdWxlLnNhbWVmaWxlKHRlc3RfZm4sIHRlc3RfZm4pKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLnBhdGhtb2R1bGUuc2FtZWZpbGUpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvcy5yZW1vdmUodGVzdF9mbikKKworICAgIEBzdXBwb3J0LnNraXBfdW5sZXNzX3N5bWxpbmsKKyAgICBkZWYgdGVzdF9zYW1lZmlsZV9vbl9zeW1saW5rKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X3NhbWVmaWxlX29uX2xpbmtfZnVuYyhvcy5zeW1saW5rKQorCisgICAgZGVmIHRlc3Rfc2FtZWZpbGVfb25fbGluayhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9zYW1lZmlsZV9vbl9saW5rX2Z1bmMob3MubGluaykKKworICAgIGRlZiBfdGVzdF9zYW1lZmlsZV9vbl9saW5rX2Z1bmMoc2VsZiwgZnVuYyk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRlc3RfZm4xID0gc3VwcG9ydC5URVNURk4gKyAiMSIKKyAgICAgICAgICAgIHRlc3RfZm4yID0gc3VwcG9ydC5URVNURk4gKyAiMiIKKyAgICAgICAgICAgIHNlbGYuX2NyZWF0ZV9maWxlKHRlc3RfZm4xKQorCisgICAgICAgICAgICBmdW5jKHRlc3RfZm4xLCB0ZXN0X2ZuMikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLnBhdGhtb2R1bGUuc2FtZWZpbGUodGVzdF9mbjEsIHRlc3RfZm4yKSkKKyAgICAgICAgICAgIG9zLnJlbW92ZSh0ZXN0X2ZuMikKKworICAgICAgICAgICAgc2VsZi5fY3JlYXRlX2ZpbGUodGVzdF9mbjIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYucGF0aG1vZHVsZS5zYW1lZmlsZSh0ZXN0X2ZuMSwgdGVzdF9mbjIpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MucmVtb3ZlKHRlc3RfZm4xKQorICAgICAgICAgICAgb3MucmVtb3ZlKHRlc3RfZm4yKQorCisgICAgZGVmIHRlc3Rfc2FtZXN0YXQoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRlc3RfZm4gPSBzdXBwb3J0LlRFU1RGTiArICIxIgorICAgICAgICAgICAgc2VsZi5fY3JlYXRlX2ZpbGUodGVzdF9mbikKKyAgICAgICAgICAgIHRlc3RfZm5zID0gW3Rlc3RfZm5dKjIKKyAgICAgICAgICAgIHN0YXRzID0gbWFwKG9zLnN0YXQsIHRlc3RfZm5zKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYucGF0aG1vZHVsZS5zYW1lc3RhdCgqc3RhdHMpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MucmVtb3ZlKHRlc3RfZm4pCisKKyAgICBAc3VwcG9ydC5za2lwX3VubGVzc19zeW1saW5rCisgICAgZGVmIHRlc3Rfc2FtZXN0YXRfb25fc3ltbGluayhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9zYW1lc3RhdF9vbl9saW5rX2Z1bmMob3Muc3ltbGluaykKKworICAgIGRlZiB0ZXN0X3NhbWVzdGF0X29uX2xpbmsoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3Rfc2FtZXN0YXRfb25fbGlua19mdW5jKG9zLmxpbmspCisKKyAgICBkZWYgX3Rlc3Rfc2FtZXN0YXRfb25fbGlua19mdW5jKHNlbGYsIGZ1bmMpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0ZXN0X2ZuMSA9IHN1cHBvcnQuVEVTVEZOICsgIjEiCisgICAgICAgICAgICB0ZXN0X2ZuMiA9IHN1cHBvcnQuVEVTVEZOICsgIjIiCisgICAgICAgICAgICBzZWxmLl9jcmVhdGVfZmlsZSh0ZXN0X2ZuMSkKKyAgICAgICAgICAgIHRlc3RfZm5zID0gKHRlc3RfZm4xLCB0ZXN0X2ZuMikKKyAgICAgICAgICAgIGZ1bmMoKnRlc3RfZm5zKQorICAgICAgICAgICAgc3RhdHMgPSBtYXAob3Muc3RhdCwgdGVzdF9mbnMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5wYXRobW9kdWxlLnNhbWVzdGF0KCpzdGF0cykpCisgICAgICAgICAgICBvcy5yZW1vdmUodGVzdF9mbjIpCisKKyAgICAgICAgICAgIHNlbGYuX2NyZWF0ZV9maWxlKHRlc3RfZm4yKQorICAgICAgICAgICAgc3RhdHMgPSBtYXAob3Muc3RhdCwgdGVzdF9mbnMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYucGF0aG1vZHVsZS5zYW1lc3RhdCgqc3RhdHMpKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYucGF0aG1vZHVsZS5zYW1lc3RhdCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIG9zLnJlbW92ZSh0ZXN0X2ZuMSkKKyAgICAgICAgICAgIG9zLnJlbW92ZSh0ZXN0X2ZuMikKKworICAgIGRlZiB0ZXN0X3NhbWVvcGVuZmlsZShzZWxmKToKKyAgICAgICAgZm5hbWUgPSBzdXBwb3J0LlRFU1RGTiArICIxIgorICAgICAgICB3aXRoIG9wZW4oZm5hbWUsICJ3YiIpIGFzIGEsIG9wZW4oZm5hbWUsICJ3YiIpIGFzIGI6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5wYXRobW9kdWxlLnNhbWVvcGVuZmlsZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5maWxlbm8oKSwgYi5maWxlbm8oKSkpCisKIGNsYXNzIFRlc3RHZW5lcmljVGVzdChHZW5lcmljVGVzdCwgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgICMgSXNzdWUgMTY4NTI6IEdlbmVyaWNUZXN0IGNhbid0IGluaGVyaXQgZnJvbSB1bml0dGVzdC5UZXN0Q2FzZQogICAgICMgZm9yIHRlc3QgZGlzY292ZXJ5IHB1cnBvc2VzOyBDb21tb25UZXN0IGluaGVyaXRzIGZyb20gR2VuZXJpY1Rlc3QKICAgICAjIGFuZCBpcyBvbmx5IG1lYW50IHRvIGJlIGluaGVyaXRlZCBieSBvdGhlcnMuCiAgICAgcGF0aG1vZHVsZSA9IGdlbmVyaWNwYXRoCiAKKwogIyBGb2xsb3dpbmcgVGVzdENhc2UgaXMgbm90IHN1cHBvc2VkIHRvIGJlIHJ1biBmcm9tIHRlc3RfZ2VuZXJpY3BhdGguCiAjIEl0IGlzIGluaGVyaXRlZCBieSBvdGhlciB0ZXN0IG1vZHVsZXMgKG1hY3BhdGgsIG50cGF0aCwgcG9zaXhwYXRoKS4KIApAQCAtMzIyLDcgKzQwMyw2IEBACiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJuZWVkIHN1cHBvcnQuVEVTVEZOX05PTkFTQ0lJIikKIAotICAgICAgICAjIFRlc3Qgbm9uLUFTQ0lJLCBub24tVVRGOCBieXRlcyBpbiB0aGUgcGF0aC4KICAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncygpOgogICAgICAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCJpZ25vcmUiLCBEZXByZWNhdGlvbldhcm5pbmcpCiAgICAgICAgICAgICB3aXRoIHN1cHBvcnQudGVtcF9jd2QobmFtZSk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2dldGFyZ3MyLnB5IGIvTGliL3Rlc3QvdGVzdF9nZXRhcmdzMi5weQppbmRleCA0OGNhOTRlLi5kNzVhZDMwIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2dldGFyZ3MyLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZ2V0YXJnczIucHkKQEAgLTIsMzcgKzIsMzUgQEAKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAogZnJvbSBfdGVzdGNhcGkgaW1wb3J0IGdldGFyZ3Nfa2V5d29yZHMsIGdldGFyZ3Nfa2V5d29yZF9vbmx5CiAKLSIiIgotPiBIb3cgYWJvdXQgdGhlIGZvbGxvd2luZyBjb3VudGVycHJvcG9zYWwuIFRoaXMgYWxzbyBjaGFuZ2VzIHNvbWUgb2YKLT4gdGhlIG90aGVyIGZvcm1hdCBjb2RlcyB0byBiZSBhIGxpdHRsZSBtb3JlIHJlZ3VsYXIuCi0+Ci0+IENvZGUgQyB0eXBlIFJhbmdlIGNoZWNrCi0+Ci0+IGIgdW5zaWduZWQgY2hhciAwLi5VQ0hBUl9NQVgKLT4gaCBzaWduZWQgc2hvcnQgU0hSVF9NSU4uLlNIUlRfTUFYCi0+IEIgdW5zaWduZWQgY2hhciBub25lICoqCi0+IEggdW5zaWduZWQgc2hvcnQgbm9uZSAqKgotPiBrICogdW5zaWduZWQgbG9uZyBub25lCi0+IEkgKiB1bnNpZ25lZCBpbnQgMC4uVUlOVF9NQVgKLQotCi0+IGkgaW50IElOVF9NSU4uLklOVF9NQVgKLT4gbCBsb25nIExPTkdfTUlOLi5MT05HX01BWAotCi0+IEsgKiB1bnNpZ25lZCBsb25nIGxvbmcgbm9uZQotPiBMIGxvbmcgbG9uZyBMTE9OR19NSU4uLkxMT05HX01BWAotCi0+IE5vdGVzOgotPgotPiAqIE5ldyBmb3JtYXQgY29kZXMuCi0+Ci0+ICoqIENoYW5nZWQgZnJvbSBwcmV2aW91cyAicmFuZ2UtYW5kLWEtaGFsZiIgdG8gIm5vbmUiOyB0aGUKLT4gcmFuZ2UtYW5kLWEtaGFsZiBjaGVja2luZyB3YXNuJ3QgcGFydGljdWxhcmx5IHVzZWZ1bC4KLQotUGx1cyBhIEMgQVBJIG9yIHR3bywgZS5nLiBQeUludF9Bc0xvbmdNYXNrKCkgLT4KLXVuc2lnbmVkIGxvbmcgYW5kIFB5SW50X0FzTG9uZ0xvbmdNYXNrKCkgLT4gdW5zaWduZWQKLWxvbmcgbG9uZyAoaWYgdGhhdCBleGlzdHMpLgotIiIiCisjID4gSG93IGFib3V0IHRoZSBmb2xsb3dpbmcgY291bnRlcnByb3Bvc2FsLiBUaGlzIGFsc28gY2hhbmdlcyBzb21lIG9mCisjID4gdGhlIG90aGVyIGZvcm1hdCBjb2RlcyB0byBiZSBhIGxpdHRsZSBtb3JlIHJlZ3VsYXIuCisjID4KKyMgPiBDb2RlIEMgdHlwZSBSYW5nZSBjaGVjaworIyA+CisjID4gYiB1bnNpZ25lZCBjaGFyIDAuLlVDSEFSX01BWAorIyA+IGggc2lnbmVkIHNob3J0IFNIUlRfTUlOLi5TSFJUX01BWAorIyA+IEIgdW5zaWduZWQgY2hhciBub25lICoqCisjID4gSCB1bnNpZ25lZCBzaG9ydCBub25lICoqCisjID4gayAqIHVuc2lnbmVkIGxvbmcgbm9uZQorIyA+IEkgKiB1bnNpZ25lZCBpbnQgMC4uVUlOVF9NQVgKKyMKKyMKKyMgPiBpIGludCBJTlRfTUlOLi5JTlRfTUFYCisjID4gbCBsb25nIExPTkdfTUlOLi5MT05HX01BWAorIworIyA+IEsgKiB1bnNpZ25lZCBsb25nIGxvbmcgbm9uZQorIyA+IEwgbG9uZyBsb25nIExMT05HX01JTi4uTExPTkdfTUFYCisjCisjID4gTm90ZXM6CisjID4KKyMgPiAqIE5ldyBmb3JtYXQgY29kZXMuCisjID4KKyMgPiAqKiBDaGFuZ2VkIGZyb20gcHJldmlvdXMgInJhbmdlLWFuZC1hLWhhbGYiIHRvICJub25lIjsgdGhlCisjID4gcmFuZ2UtYW5kLWEtaGFsZiBjaGVja2luZyB3YXNuJ3QgcGFydGljdWxhcmx5IHVzZWZ1bC4KKyMKKyMgUGx1cyBhIEMgQVBJIG9yIHR3bywgZS5nLiBQeUludF9Bc0xvbmdNYXNrKCkgLT4KKyMgdW5zaWduZWQgbG9uZyBhbmQgUHlJbnRfQXNMb25nTG9uZ01hc2soKSAtPiB1bnNpZ25lZAorIyBsb25nIGxvbmcgKGlmIHRoYXQgZXhpc3RzKS4KIAogTEFSR0UgPSAweDdGRkZGRkZGCiBWRVJZX0xBUkdFID0gMHhGRjAwMDAxMjEyMTIxMjEyMTIxMjEyNDIKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZ2V0cGFzcy5weSBiL0xpYi90ZXN0L3Rlc3RfZ2V0cGFzcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTUzN2I5Ci0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvdGVzdF9nZXRwYXNzLnB5CkBAIC0wLDAgKzEsMTQ5IEBACitpbXBvcnQgZ2V0cGFzcworaW1wb3J0IG9zCitpbXBvcnQgdW5pdHRlc3QKK2Zyb20gaW8gaW1wb3J0IFN0cmluZ0lPCitmcm9tIHVuaXR0ZXN0IGltcG9ydCBtb2NrCitmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKKwordHJ5OgorICAgIGltcG9ydCB0ZXJtaW9zCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgdGVybWlvcyA9IE5vbmUKK3RyeToKKyAgICBpbXBvcnQgcHdkCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgcHdkID0gTm9uZQorCitAbW9jay5wYXRjaCgnb3MuZW52aXJvbicpCitjbGFzcyBHZXRwYXNzR2V0dXNlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfdXNlcm5hbWVfdGFrZXNfdXNlcm5hbWVfZnJvbV9lbnYoc2VsZiwgZW52aXJvbik6CisgICAgICAgIGV4cGVjdGVkX25hbWUgPSAnc29tZV9uYW1lJworICAgICAgICBlbnZpcm9uLmdldC5yZXR1cm5fdmFsdWUgPSBleHBlY3RlZF9uYW1lCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfbmFtZSwgZ2V0cGFzcy5nZXR1c2VyKCkpCisKKyAgICBkZWYgdGVzdF91c2VybmFtZV9wcmlvcml0aWVzX29mX2Vudl92YWx1ZXMoc2VsZiwgZW52aXJvbik6CisgICAgICAgIGVudmlyb24uZ2V0LnJldHVybl92YWx1ZSA9IE5vbmUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZ2V0cGFzcy5nZXR1c2VyKCkKKyAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOiAjIGluIGNhc2UgdGhlcmUncyBubyBwd2QgbW9kdWxlCisgICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBlbnZpcm9uLmdldC5jYWxsX2FyZ3NfbGlzdCwKKyAgICAgICAgICAgIFttb2NrLmNhbGwoeCkgZm9yIHggaW4gKCdMT0dOQU1FJywgJ1VTRVInLCAnTE5BTUUnLCAnVVNFUk5BTUUnKV0pCisKKyAgICBkZWYgdGVzdF91c2VybmFtZV9mYWxsc19iYWNrX3RvX3B3ZChzZWxmLCBlbnZpcm9uKToKKyAgICAgICAgZXhwZWN0ZWRfbmFtZSA9ICdzb21lX25hbWUnCisgICAgICAgIGVudmlyb24uZ2V0LnJldHVybl92YWx1ZSA9IE5vbmUKKyAgICAgICAgaWYgcHdkOgorICAgICAgICAgICAgd2l0aCBtb2NrLnBhdGNoKCdvcy5nZXR1aWQnKSBhcyB1aWQsIFwKKyAgICAgICAgICAgICAgICAgICAgbW9jay5wYXRjaCgncHdkLmdldHB3dWlkJykgYXMgZ2V0cHc6CisgICAgICAgICAgICAgICAgdWlkLnJldHVybl92YWx1ZSA9IDQyCisgICAgICAgICAgICAgICAgZ2V0cHcucmV0dXJuX3ZhbHVlID0gW2V4cGVjdGVkX25hbWVdCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0cGFzcy5nZXR1c2VyKCkpCisgICAgICAgICAgICAgICAgZ2V0cHcuYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoNDIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvciwgZ2V0cGFzcy5nZXR1c2VyKQorCisKK2NsYXNzIEdldHBhc3NSYXdpbnB1dFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfZmx1c2hlc19zdHJlYW1fYWZ0ZXJfcHJvbXB0KHNlbGYpOgorICAgICAgICAjIHNlZSBpc3N1ZSAxNzAzCisgICAgICAgIHN0cmVhbSA9IG1vY2suTW9jayhzcGVjPVN0cmluZ0lPKQorICAgICAgICBpbnB1dCA9IFN0cmluZ0lPKCdpbnB1dF9zdHJpbmcnKQorICAgICAgICBnZXRwYXNzLl9yYXdfaW5wdXQoJ3NvbWVfcHJvbXB0Jywgc3RyZWFtLCBpbnB1dD1pbnB1dCkKKyAgICAgICAgc3RyZWFtLmZsdXNoLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCkKKworICAgIGRlZiB0ZXN0X3VzZXNfc3RkZXJyX2FzX2RlZmF1bHQoc2VsZik6CisgICAgICAgIGlucHV0ID0gU3RyaW5nSU8oJ2lucHV0X3N0cmluZycpCisgICAgICAgIHByb21wdCA9ICdzb21lX3Byb21wdCcKKyAgICAgICAgd2l0aCBtb2NrLnBhdGNoKCdzeXMuc3RkZXJyJykgYXMgc3RkZXJyOgorICAgICAgICAgICAgZ2V0cGFzcy5fcmF3X2lucHV0KHByb21wdCwgaW5wdXQ9aW5wdXQpCisgICAgICAgICAgICBzdGRlcnIud3JpdGUuYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgocHJvbXB0KQorCisgICAgQG1vY2sucGF0Y2goJ3N5cy5zdGRpbicpCisgICAgZGVmIHRlc3RfdXNlc19zdGRpbl9hc19kZWZhdWx0X2lucHV0KHNlbGYsIG1vY2tfaW5wdXQpOgorICAgICAgICBtb2NrX2lucHV0LnJlYWRsaW5lLnJldHVybl92YWx1ZSA9ICdpbnB1dF9zdHJpbmcnCisgICAgICAgIGdldHBhc3MuX3Jhd19pbnB1dChzdHJlYW09U3RyaW5nSU8oKSkKKyAgICAgICAgbW9ja19pbnB1dC5yZWFkbGluZS5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgpCisKKyAgICBkZWYgdGVzdF9yYWlzZXNfb25fZW1wdHlfaW5wdXQoc2VsZik6CisgICAgICAgIGlucHV0ID0gU3RyaW5nSU8oJycpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEVPRkVycm9yLCBnZXRwYXNzLl9yYXdfaW5wdXQsIGlucHV0PWlucHV0KQorCisgICAgZGVmIHRlc3RfdHJpbXNfdHJhaWxpbmdfbmV3bGluZShzZWxmKToKKyAgICAgICAgaW5wdXQgPSBTdHJpbmdJTygndGVzdFxuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgndGVzdCcsIGdldHBhc3MuX3Jhd19pbnB1dChpbnB1dD1pbnB1dCkpCisKKworIyBTb21lIG9mIHRoZXNlIHRlc3RzIGFyZSBhIGJpdCB3aGl0ZS1ib3guICBUaGUgZnVuY3Rpb25hbCByZXF1aXJlbWVudCBpcyB0aGF0CisjIHRoZSBwYXNzd29yZCBpbnB1dCBiZSB0YWtlbiBkaXJlY3RseSBmcm9tIHRoZSB0dHksIGFuZCB0aGF0IGl0IG5vdCBiZSBlY2hvZWQKKyMgb24gdGhlIHNjcmVlbiwgdW5sZXNzIHdlIGFyZSBmYWxsaW5nIGJhY2sgdG8gc3RkZXJyL3N0ZGluLgorCisjIFNvbWUgb2YgdGhlc2UgbWlnaHQgcnVuIG9uIHBsYXRmb3JtcyB3aXRob3V0IHRlcm1pb3MsIGJ1dCBwbGF5IGl0IHNhZmUuCitAdW5pdHRlc3Quc2tpcFVubGVzcyh0ZXJtaW9zLCAndGVzdHMgcmVxdWlyZSBzeXN0ZW0gd2l0aCB0ZXJtaW9zJykKK2NsYXNzIFVuaXhHZXRwYXNzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF91c2VzX3R0eV9kaXJlY3RseShzZWxmKToKKyAgICAgICAgd2l0aCBtb2NrLnBhdGNoKCdvcy5vcGVuJykgYXMgb3BlbiwgXAorICAgICAgICAgICAgICAgIG1vY2sucGF0Y2goJ29zLmZkb3BlbicpOgorICAgICAgICAgICAgIyBCeSBzZXR0aW5nIG9wZW4ncyByZXR1cm4gdmFsdWUgdG8gTm9uZSB0aGUgaW1wbGVtZW50YXRpb24gd2lsbAorICAgICAgICAgICAgIyBza2lwIGNvZGUgd2UgZG9uJ3QgY2FyZSBhYm91dCBpbiB0aGlzIHRlc3QuICBXZSBjYW4gbW9jayB0aGlzIG91dAorICAgICAgICAgICAgIyBmdWxseSBpZiBhbiBhbHRlcm5hdGUgaW1wbGVtZW50YXRpb24gd29ya3MgZGlmZmVyZW50bHkuCisgICAgICAgICAgICBvcGVuLnJldHVybl92YWx1ZSA9IE5vbmUKKyAgICAgICAgICAgIGdldHBhc3MudW5peF9nZXRwYXNzKCkKKyAgICAgICAgICAgIG9wZW4uYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoJy9kZXYvdHR5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MuT19SRFdSIHwgb3MuT19OT0NUVFkpCisKKyAgICBkZWYgdGVzdF9yZXNldHNfdGVybWlvcyhzZWxmKToKKyAgICAgICAgd2l0aCBtb2NrLnBhdGNoKCdvcy5vcGVuJykgYXMgb3BlbiwgXAorICAgICAgICAgICAgICAgIG1vY2sucGF0Y2goJ29zLmZkb3BlbicpLCBcCisgICAgICAgICAgICAgICAgbW9jay5wYXRjaCgndGVybWlvcy50Y2dldGF0dHInKSBhcyB0Y2dldGF0dHIsIFwKKyAgICAgICAgICAgICAgICBtb2NrLnBhdGNoKCd0ZXJtaW9zLnRjc2V0YXR0cicpIGFzIHRjc2V0YXR0cjoKKyAgICAgICAgICAgIG9wZW4ucmV0dXJuX3ZhbHVlID0gMworICAgICAgICAgICAgZmFrZV9hdHRycyA9IFsyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NV0KKyAgICAgICAgICAgIHRjZ2V0YXR0ci5yZXR1cm5fdmFsdWUgPSBsaXN0KGZha2VfYXR0cnMpCisgICAgICAgICAgICBnZXRwYXNzLnVuaXhfZ2V0cGFzcygpCisgICAgICAgICAgICB0Y3NldGF0dHIuYXNzZXJ0X2NhbGxlZF93aXRoKDMsIG1vY2suQU5ZLCBmYWtlX2F0dHJzKQorCisgICAgZGVmIHRlc3RfZmFsbHNfYmFja190b19mYWxsYmFja19pZl90ZXJtaW9zX3JhaXNlcyhzZWxmKToKKyAgICAgICAgd2l0aCBtb2NrLnBhdGNoKCdvcy5vcGVuJykgYXMgb3BlbiwgXAorICAgICAgICAgICAgICAgIG1vY2sucGF0Y2goJ29zLmZkb3BlbicpIGFzIGZkb3BlbiwgXAorICAgICAgICAgICAgICAgIG1vY2sucGF0Y2goJ3Rlcm1pb3MudGNnZXRhdHRyJyksIFwKKyAgICAgICAgICAgICAgICBtb2NrLnBhdGNoKCd0ZXJtaW9zLnRjc2V0YXR0cicpIGFzIHRjc2V0YXR0ciwgXAorICAgICAgICAgICAgICAgIG1vY2sucGF0Y2goJ2dldHBhc3MuZmFsbGJhY2tfZ2V0cGFzcycpIGFzIGZhbGxiYWNrOgorICAgICAgICAgICAgb3Blbi5yZXR1cm5fdmFsdWUgPSAzCisgICAgICAgICAgICBmZG9wZW4ucmV0dXJuX3ZhbHVlID0gU3RyaW5nSU8oKQorICAgICAgICAgICAgdGNzZXRhdHRyLnNpZGVfZWZmZWN0ID0gdGVybWlvcy5lcnJvcgorICAgICAgICAgICAgZ2V0cGFzcy51bml4X2dldHBhc3MoKQorICAgICAgICAgICAgZmFsbGJhY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoJ1Bhc3N3b3JkOiAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRvcGVuLnJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2ZsdXNoZXNfc3RyZWFtX2FmdGVyX2lucHV0KHNlbGYpOgorICAgICAgICAjIGlzc3VlIDcyMDgKKyAgICAgICAgd2l0aCBtb2NrLnBhdGNoKCdvcy5vcGVuJykgYXMgb3BlbiwgXAorICAgICAgICAgICAgICAgIG1vY2sucGF0Y2goJ29zLmZkb3BlbicpLCBcCisgICAgICAgICAgICAgICAgbW9jay5wYXRjaCgndGVybWlvcy50Y2dldGF0dHInKSwgXAorICAgICAgICAgICAgICAgIG1vY2sucGF0Y2goJ3Rlcm1pb3MudGNzZXRhdHRyJyk6CisgICAgICAgICAgICBvcGVuLnJldHVybl92YWx1ZSA9IDMKKyAgICAgICAgICAgIG1vY2tfc3RyZWFtID0gbW9jay5Nb2NrKHNwZWM9U3RyaW5nSU8pCisgICAgICAgICAgICBnZXRwYXNzLnVuaXhfZ2V0cGFzcyhzdHJlYW09bW9ja19zdHJlYW0pCisgICAgICAgICAgICBtb2NrX3N0cmVhbS5mbHVzaC5hc3NlcnRfY2FsbGVkX3dpdGgoKQorCisgICAgZGVmIHRlc3RfZmFsbHNfYmFja190b19zdGRpbihzZWxmKToKKyAgICAgICAgd2l0aCBtb2NrLnBhdGNoKCdvcy5vcGVuJykgYXMgb3Nfb3BlbiwgXAorICAgICAgICAgICAgICAgIG1vY2sucGF0Y2goJ3N5cy5zdGRpbicsIHNwZWM9U3RyaW5nSU8pIGFzIHN0ZGluOgorICAgICAgICAgICAgb3Nfb3Blbi5zaWRlX2VmZmVjdCA9IElPRXJyb3IKKyAgICAgICAgICAgIHN0ZGluLmZpbGVuby5zaWRlX2VmZmVjdCA9IEF0dHJpYnV0ZUVycm9yCisgICAgICAgICAgICB3aXRoIHN1cHBvcnQuY2FwdHVyZWRfc3RkZXJyKCkgYXMgc3RkZXJyOgorICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJucyhnZXRwYXNzLkdldFBhc3NXYXJuaW5nKToKKyAgICAgICAgICAgICAgICAgICAgZ2V0cGFzcy51bml4X2dldHBhc3MoKQorICAgICAgICAgICAgc3RkaW4ucmVhZGxpbmUuYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbignV2FybmluZycsIHN0ZGVyci5nZXR2YWx1ZSgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbignUGFzc3dvcmQ6Jywgc3RkZXJyLmdldHZhbHVlKCkpCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZ3ppcC5weSBiL0xpYi90ZXN0L3Rlc3RfZ3ppcC5weQpvbGQgbW9kZSAxMDA3NTUKbmV3IG1vZGUgMTAwNjQ0CmluZGV4IDVlYWM5MjEuLjM3ZmU4NTMKLS0tIGEvTGliL3Rlc3QvdGVzdF9nemlwLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZ3ppcC5weQpAQCAtMzg5LDYgKzM4OSwyMCBAQAogICAgICAgICAgICAgZGF0YWMgPSBnemlwLmNvbXByZXNzKGRhdGEpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGd6aXAuZGVjb21wcmVzcyhkYXRhYyksIGRhdGEpCiAKKyAgICBkZWYgdGVzdF9yZWFkX3RydW5jYXRlZChzZWxmKToKKyAgICAgICAgZGF0YSA9IGRhdGExKjUwCisgICAgICAgICMgRHJvcCB0aGUgQ1JDICg0IGJ5dGVzKSBhbmQgZmlsZSBzaXplICg0IGJ5dGVzKS4KKyAgICAgICAgdHJ1bmNhdGVkID0gZ3ppcC5jb21wcmVzcyhkYXRhKVs6LThdCisgICAgICAgIHdpdGggZ3ppcC5HemlwRmlsZShmaWxlb2JqPWlvLkJ5dGVzSU8odHJ1bmNhdGVkKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEVPRkVycm9yLCBmLnJlYWQpCisgICAgICAgIHdpdGggZ3ppcC5HemlwRmlsZShmaWxlb2JqPWlvLkJ5dGVzSU8odHJ1bmNhdGVkKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKGxlbihkYXRhKSksIGRhdGEpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhFT0ZFcnJvciwgZi5yZWFkLCAxKQorICAgICAgICAjIEluY29tcGxldGUgMTAtYnl0ZSBoZWFkZXIuCisgICAgICAgIGZvciBpIGluIHJhbmdlKDIsIDEwKToKKyAgICAgICAgICAgIHdpdGggZ3ppcC5HemlwRmlsZShmaWxlb2JqPWlvLkJ5dGVzSU8odHJ1bmNhdGVkWzppXSkpIGFzIGY6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRU9GRXJyb3IsIGYucmVhZCwgMSkKKwogICAgIGRlZiB0ZXN0X3JlYWRfd2l0aF9leHRyYShzZWxmKToKICAgICAgICAgIyBHemlwIGRhdGEgd2l0aCBhbiBleHRyYSBmaWVsZAogICAgICAgICBnemRhdGEgPSAoYidceDFmXHg4Ylx4MDhceDA0XHhiMlx4MTdjUVx4MDJceGZmJwpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9oYXNobGliLnB5IGIvTGliL3Rlc3QvdGVzdF9oYXNobGliLnB5CmluZGV4IDMyZjg1ZTkuLjU0MjAxYTEgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfaGFzaGxpYi5weQorKysgYi9MaWIvdGVzdC90ZXN0X2hhc2hsaWIucHkKQEAgLTM2LDcgKzM2LDEwIEBACiBjbGFzcyBIYXNoTGliVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIHN1cHBvcnRlZF9oYXNoX25hbWVzID0gKCAnbWQ1JywgJ01ENScsICdzaGExJywgJ1NIQTEnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhMjI0JywgJ1NIQTIyNCcsICdzaGEyNTYnLCAnU0hBMjU2JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYTM4NCcsICdTSEEzODQnLCAnc2hhNTEyJywgJ1NIQTUxMicgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhMzg0JywgJ1NIQTM4NCcsICdzaGE1MTInLCAnU0hBNTEyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYTNfMjI0JywgJ3NoYTNfMjU2JywgJ3NoYTNfMzg0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYTNfNTEyJywgJ1NIQTNfMjI0JywgJ1NIQTNfMjU2JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NIQTNfMzg0JywgJ1NIQTNfNTEyJyApCiAKICAgICAjIElzc3VlICMxNDY5MzogZmFsbGJhY2sgbW9kdWxlcyBhcmUgYWx3YXlzIGNvbXBpbGVkIHVuZGVyIFBPU0lYCiAgICAgX3dhcm5fb25fZXh0ZW5zaW9uX2ltcG9ydCA9IG9zLm5hbWUgPT0gJ3Bvc2l4JyBvciBDT01QSUxFRF9XSVRIX1BZREVCVUcKQEAgLTkzLDYgKzk2LDEyIEBACiAgICAgICAgIGlmIF9zaGE1MTI6CiAgICAgICAgICAgICBzZWxmLmNvbnN0cnVjdG9yc190b190ZXN0WydzaGEzODQnXS5hZGQoX3NoYTUxMi5zaGEzODQpCiAgICAgICAgICAgICBzZWxmLmNvbnN0cnVjdG9yc190b190ZXN0WydzaGE1MTInXS5hZGQoX3NoYTUxMi5zaGE1MTIpCisgICAgICAgIF9zaGEzID0gc2VsZi5fY29uZGl0aW9uYWxfaW1wb3J0X21vZHVsZSgnX3NoYTMnKQorICAgICAgICBpZiBfc2hhMzoKKyAgICAgICAgICAgIHNlbGYuY29uc3RydWN0b3JzX3RvX3Rlc3RbJ3NoYTNfMjI0J10uYWRkKF9zaGEzLnNoYTNfMjI0KQorICAgICAgICAgICAgc2VsZi5jb25zdHJ1Y3RvcnNfdG9fdGVzdFsnc2hhM18yNTYnXS5hZGQoX3NoYTMuc2hhM18yNTYpCisgICAgICAgICAgICBzZWxmLmNvbnN0cnVjdG9yc190b190ZXN0WydzaGEzXzM4NCddLmFkZChfc2hhMy5zaGEzXzM4NCkKKyAgICAgICAgICAgIHNlbGYuY29uc3RydWN0b3JzX3RvX3Rlc3RbJ3NoYTNfNTEyJ10uYWRkKF9zaGEzLnNoYTNfNTEyKQogCiAgICAgICAgIHN1cGVyKEhhc2hMaWJUZXN0Q2FzZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQogCkBAIC0xNTgsNiArMTY3LDcgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobTEuZGlnZXN0KCksIG0yLmRpZ2VzdCgpKQogCiAgICAgZGVmIGNoZWNrKHNlbGYsIG5hbWUsIGRhdGEsIGRpZ2VzdCk6CisgICAgICAgIGRpZ2VzdCA9IGRpZ2VzdC5sb3dlcigpCiAgICAgICAgIGNvbnN0cnVjdG9ycyA9IHNlbGYuY29uc3RydWN0b3JzX3RvX3Rlc3RbbmFtZV0KICAgICAgICAgIyAyIGlzIGZvciBoYXNobGliLm5hbWUoLi4uKSBhbmQgaGFzaGxpYi5uZXcobmFtZSwgLi4uKQogICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbChsZW4oY29uc3RydWN0b3JzKSwgMikKQEAgLTE4Myw2ICsxOTMsMTAgQEAKICAgICAgICAgc2VsZi5jaGVja19ub191bmljb2RlKCdzaGEyNTYnKQogICAgICAgICBzZWxmLmNoZWNrX25vX3VuaWNvZGUoJ3NoYTM4NCcpCiAgICAgICAgIHNlbGYuY2hlY2tfbm9fdW5pY29kZSgnc2hhNTEyJykKKyAgICAgICAgc2VsZi5jaGVja19ub191bmljb2RlKCdzaGEzXzIyNCcpCisgICAgICAgIHNlbGYuY2hlY2tfbm9fdW5pY29kZSgnc2hhM18yNTYnKQorICAgICAgICBzZWxmLmNoZWNrX25vX3VuaWNvZGUoJ3NoYTNfMzg0JykKKyAgICAgICAgc2VsZi5jaGVja19ub191bmljb2RlKCdzaGEzXzUxMicpCiAKICAgICBkZWYgdGVzdF9jYXNlX21kNV8wKHNlbGYpOgogICAgICAgICBzZWxmLmNoZWNrKCdtZDUnLCBiJycsICdkNDFkOGNkOThmMDBiMjA0ZTk4MDA5OThlY2Y4NDI3ZScpCkBAIC0zMTgsMTEgKzMzMiwxMjIgQEAKICAgICAgICAgICAiZTcxODQ4M2QwY2U3Njk2NDRlMmU0MmM3YmMxNWI0NjM4ZTFmOThiMTNiMjA0NDI4NTYzMmE4MDNhZmE5NzNlYiIrCiAgICAgICAgICAgImRlMGZmMjQ0ODc3ZWE2MGE0Y2IwNDMyY2U1NzdjMzFiZWIwMDljNWMyYzQ5YWEyZTRlYWRiMjE3YWQ4Y2MwOWIiKQogCisgICAgIyBTSEEtMyBmYW1pbHkKKyAgICBkZWYgdGVzdF9jYXNlX3NoYTNfMjI0XzAoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2soJ3NoYTNfMjI0JywgYiIiLAorICAgICAgICAgICJGNzE4Mzc1MDJCQThFMTA4MzdCREQ4RDM2NUFEQjg1NTkxODk1NjAyRkM1NTJCNDhCNzM5MEFCRCIpCisKKyAgICBkZWYgdGVzdF9jYXNlX3NoYTNfMjI0XzEoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2soJ3NoYTNfMjI0JywgYnl0ZXMuZnJvbWhleCgiQ0MiKSwKKyAgICAgICAgICAiQTlDQUI1OUVCNDBBMTBCMjQ2MjkwRjJENjA4NkUzMkUzNjg5RkFGMUQyNkI0NzBDODk5RjI4MDIiKQorCisgICAgZGVmIHRlc3RfY2FzZV9zaGEzXzIyNF8yKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrKCdzaGEzXzIyNCcsIGJ5dGVzLmZyb21oZXgoIjQxRkIiKSwKKyAgICAgICAgICAiNjE1QkEzNjdBRkRDMzVBQUMzOTdCQzdFQjVENThEMTA2QTczNEIyNDk4NkQ1RDk3OEZFRkQ2MkMiKQorCisgICAgZGVmIHRlc3RfY2FzZV9zaGEzXzIyNF8zKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrKCdzaGEzXzIyNCcsIGJ5dGVzLmZyb21oZXgoCisgICAgICAgICAgICAiNDMzQzUzMDMxMzE2MjRDMDAyMUQ4NjhBMzA4MjU0NzVFOEQwQkQzMDUyQTAyMjE4MDM5OEY0Q0E0NDIzQjkiKworICAgICAgICAgICAgIjgyMTRCNkJFQUFDMjFDODgwN0EyQzMzRjhDOTNCRDQyQjA5MkNDMUIwNkNFREYzMjI0RDVFRDFFQzI5Nzg0IisKKyAgICAgICAgICAgICI0NDRGMjJFMDhBNTVBQTU4NTQyQjUyNEIwMkNEM0Q1RDVGNjkwN0FGRTcxQzVENzQ2MjIyNEEzRjlEOUU1MyIrCisgICAgICAgICAgICAiRTdFMDg0NkRDQkI0Q0UiKSwKKyAgICAgICAgICAiNjJCMTBGMUI2MjM2RUJDMkRBNzI5NTc3NDJBOEQ0RTQ4RTIxM0I1Rjg5MzQ2MDRCRkQ0RDJDM0EiKQorCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fNEcgKyA1LCBtZW11c2U9MSkKKyAgICBkZWYgdGVzdF9jYXNlX3NoYTNfMjI0X2h1Z2Uoc2VsZiwgc2l6ZSk6CisgICAgICAgIGlmIHNpemUgPT0gXzRHICsgNToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLmNoZWNrKCdzaGEzXzIyNCcsIGInQScqc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICc1OGVmNjAwNTdjOWRkZGI2YTg3NDc3ZTlhY2U1YTI2ZjBkOWRiMDE4ODFjZjliMTBhOWY4YzIyNCcpCisgICAgICAgICAgICBleGNlcHQgT3ZlcmZsb3dFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzICMgMzItYml0IGFyY2gKKworCisgICAgZGVmIHRlc3RfY2FzZV9zaGEzXzI1Nl8wKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrKCdzaGEzXzI1NicsIGIiIiwKKyAgICAgICAgICAiQzVEMjQ2MDE4NkY3MjMzQzkyN0U3REIyRENDNzAzQzBFNTAwQjY1M0NBODIyNzNCN0JGQUQ4MDQ1RDg1QTQ3MCIpCisKKyAgICBkZWYgdGVzdF9jYXNlX3NoYTNfMjU2XzEoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2soJ3NoYTNfMjU2JywgYnl0ZXMuZnJvbWhleCgiQ0MiKSwKKyAgICAgICAgICAiRUVBRDZEQkZDNzM0MEE1NkNBRURDMDQ0Njk2QTE2ODg3MDU0OUE2QTdGNkY1Njk2MUU4NEE1NEJEOTk3MEI4QSIpCisKKyAgICBkZWYgdGVzdF9jYXNlX3NoYTNfMjU2XzIoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2soJ3NoYTNfMjU2JywgYnl0ZXMuZnJvbWhleCgiNDFGQiIpLAorICAgICAgICAgICJBOEVBQ0VEQTRENDdCMzI4MUE3OTVBRDlFMUVBMjEyMkI0MDdCQUY5QUFCQ0I5RTE4QjU3MTdCNzg3MzUzN0QyIikKKworICAgIGRlZiB0ZXN0X2Nhc2Vfc2hhM18yNTZfMyhzZWxmKToKKyAgICAgICAgc2VsZi5jaGVjaygnc2hhM18yNTYnLCBieXRlcy5mcm9taGV4KAorICAgICAgICAgICAgIjQzM0M1MzAzMTMxNjI0QzAwMjFEODY4QTMwODI1NDc1RThEMEJEMzA1MkEwMjIxODAzOThGNENBNDQyM0I5IisKKyAgICAgICAgICAgICI4MjE0QjZCRUFBQzIxQzg4MDdBMkMzM0Y4QzkzQkQ0MkIwOTJDQzFCMDZDRURGMzIyNEQ1RUQxRUMyOTc4NCIrCisgICAgICAgICAgICAiNDQ0RjIyRTA4QTU1QUE1ODU0MkI1MjRCMDJDRDNENUQ1RjY5MDdBRkU3MUM1RDc0NjIyMjRBM0Y5RDlFNTMiKworICAgICAgICAgICAgIkU3RTA4NDZEQ0JCNENFIiksCisgICAgICAgICAgIkNFODdBNTE3M0JGRkQ5MjM5OTIyMTY1OEY4MDFENDVDMjk0RDkwMDZFRTlGM0Y5RDQxOUM4RDQyNzc0OERDNDEiKQorCisKKyAgICBkZWYgdGVzdF9jYXNlX3NoYTNfMzg0XzAoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2soJ3NoYTNfMzg0JywgYiIiLAorICAgICAgICAgICIyQzIzMTQ2QTYzQTI5QUNGOTlFNzNCODhGOEMyNEVBQTdEQzYwQUE3NzE3ODBDQ0MwMDZBRkJGQThGRTI0NzlCIisKKyAgICAgICAgICAiMkREMkIyMTM2MjMzNzQ0MUFDMTJCNTE1OTExOTU3RkYiKQorCisgICAgZGVmIHRlc3RfY2FzZV9zaGEzXzM4NF8xKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrKCdzaGEzXzM4NCcsIGJ5dGVzLmZyb21oZXgoIkNDIiksCisgICAgICAgICAgIjFCODRFNjJBNDZFNUEyMDE4NjE3NTRBRjVEQzk1QzRBMUE2OUNBRjRBNzk2QUU0MDU2ODAxNjFFMjk1NzI2NDEiKworICAgICAgICAgICJGNUZBMUU4NjQxRDc5NTgzMzZFRTdCMTFDNThGNzNFOSIpCisKKyAgICBkZWYgdGVzdF9jYXNlX3NoYTNfMzg0XzIoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2soJ3NoYTNfMzg0JywgYnl0ZXMuZnJvbWhleCgiNDFGQiIpLAorICAgICAgICAgICI0OTVDQ0UyNzE0Q0Q3MkM4QzUzQzMzNjNEMjJDNThCNTU5NjBGRTI2QkUwQkYzQkJDN0EzMzE2REQ1NjNBRDFEIisKKyAgICAgICAgICAiQjg0MTBFNzVFRUZFQTY1NUUzOUQ0NjcwRUMwQjE3OTIiKQorCisgICAgZGVmIHRlc3RfY2FzZV9zaGEzXzM4NF8zKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrKCdzaGEzXzM4NCcsIGJ5dGVzLmZyb21oZXgoCisgICAgICAgICAgICAiNDMzQzUzMDMxMzE2MjRDMDAyMUQ4NjhBMzA4MjU0NzVFOEQwQkQzMDUyQTAyMjE4MDM5OEY0Q0E0NDIzQjkiKworICAgICAgICAgICAgIjgyMTRCNkJFQUFDMjFDODgwN0EyQzMzRjhDOTNCRDQyQjA5MkNDMUIwNkNFREYzMjI0RDVFRDFFQzI5Nzg0IisKKyAgICAgICAgICAgICI0NDRGMjJFMDhBNTVBQTU4NTQyQjUyNEIwMkNEM0Q1RDVGNjkwN0FGRTcxQzVENzQ2MjIyNEEzRjlEOUU1MyIrCisgICAgICAgICAgICAiRTdFMDg0NkRDQkI0Q0UiKSwKKyAgICAgICAgICAiMTM1MTE0NTA4REQ2M0UyNzlFNzA5QzI2Rjc4MTdDMDQ4Mjc2NkNERTQ5MTMyRTNFREYyRUVERDg5OTZGNEUzNSIrCisgICAgICAgICAgIjk2RDE4NDEwMEIzODQ4NjgyNDlGMUQ4QjhGREFBMkM5IikKKworCisgICAgZGVmIHRlc3RfY2FzZV9zaGEzXzUxMl8wKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrKCdzaGEzXzUxMicsIGIiIiwKKyAgICAgICAgICAiMEVBQjQyREU0QzNDRUI5MjM1RkM5MUFDRkZFNzQ2QjI5QzI5QThDMzY2QjdDNjBFNEU2N0M0NjZGMzZBNDMwNCIrCisgICAgICAgICAgIkMwMEZBOUNBRjlEODc5NzZCQTQ2OUJDQkUwNjcxM0I0MzVGMDkxRUYyNzY5RkIxNjBDREFCMzNEMzY3MDY4MEUiKQorCisgICAgZGVmIHRlc3RfY2FzZV9zaGEzXzUxMl8xKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrKCdzaGEzXzUxMicsIGJ5dGVzLmZyb21oZXgoIkNDIiksCisgICAgICAgICAgIjg2MzBDMTNDQkQwNjZFQTc0QkJFN0ZFNDY4RkVDMURFRTEwRURDMTI1NEZCNEMxQjdDNUZENjlCNjQ2RTQ0MTYiKworICAgICAgICAgICIwQjhDRTAxRDA1QTA5MDhDQTc5MERGQjA4MEY0QjUxM0JDM0I2MjI1RUNFN0E4MTAzNzE0NDFBNUFDNjY2RUI5IikKKworICAgIGRlZiB0ZXN0X2Nhc2Vfc2hhM181MTJfMihzZWxmKToKKyAgICAgICAgc2VsZi5jaGVjaygnc2hhM181MTInLCBieXRlcy5mcm9taGV4KCI0MUZCIiksCisgICAgICAgICAgIjU1MURBNjIzNkY4Qjk2RkNFOUY5N0YxMTkwRTkwMTMyNEYwQjQ1RTA2REJCQjVDREI4MzU1RDZFRDFEQzM0QjMiKworICAgICAgICAgICJGMEVBRTdEQ0I2ODYyMkZGMjMyRkEzQ0VDRTBENDYxNkNERUIzOTMxRjkzODAzNjYyQTI4REYxQ0Q1MzVCNzMxIikKKworICAgIGRlZiB0ZXN0X2Nhc2Vfc2hhM181MTJfMyhzZWxmKToKKyAgICAgICAgc2VsZi5jaGVjaygnc2hhM181MTInLCBieXRlcy5mcm9taGV4KAorICAgICAgICAgICAgIjQzM0M1MzAzMTMxNjI0QzAwMjFEODY4QTMwODI1NDc1RThEMEJEMzA1MkEwMjIxODAzOThGNENBNDQyM0I5IisKKyAgICAgICAgICAgICI4MjE0QjZCRUFBQzIxQzg4MDdBMkMzM0Y4QzkzQkQ0MkIwOTJDQzFCMDZDRURGMzIyNEQ1RUQxRUMyOTc4NCIrCisgICAgICAgICAgICAiNDQ0RjIyRTA4QTU1QUE1ODU0MkI1MjRCMDJDRDNENUQ1RjY5MDdBRkU3MUM1RDc0NjIyMjRBM0Y5RDlFNTMiKworICAgICAgICAgICAgIkU3RTA4NDZEQ0JCNENFIiksCisgICAgICAgICAgIjUyN0QyOEUzNDFFNkIxNEY0Njg0QURCNEI4MjRDNDk2QzY0ODJFNTExNDk1NjVEM0QxNzIyNjgyODg4NDMwNkIiKworICAgICAgICAgICI1MUQ2MTQ4QTcyNjIyQzJCNzVGNUQzNTEwQjc5OUQ4QkRDMDNFQUVERTQ1MzY3NkE2RUM4RkUwM0ExQUQwRUFCIikKKworCiAgICAgZGVmIHRlc3RfZ2lsKHNlbGYpOgogICAgICAgICAjIENoZWNrIHRoaW5ncyB3b3JrIGZpbmUgd2l0aCBhbiBpbnB1dCBsYXJnZXIgdGhhbiB0aGUgc2l6ZSByZXF1aXJlZAogICAgICAgICAjIGZvciBtdWx0aXRocmVhZGVkIG9wZXJhdGlvbiAod2hpY2ggaXMgaGFyZHdpcmVkIHRvIDIwNDgpLgogICAgICAgICBnaWxfbWluc2l6ZSA9IDIwNDgKIAorICAgICAgICBmb3IgbmFtZSBpbiBzZWxmLnN1cHBvcnRlZF9oYXNoX25hbWVzOgorICAgICAgICAgICAgbSA9IGhhc2hsaWIubmV3KG5hbWUpCisgICAgICAgICAgICBtLnVwZGF0ZShiJzEnKQorICAgICAgICAgICAgbS51cGRhdGUoYicjJyAqIGdpbF9taW5zaXplKQorICAgICAgICAgICAgbS51cGRhdGUoYicxJykKKworICAgICAgICAgICAgbSA9IGhhc2hsaWIubmV3KG5hbWUsIGIneCcgKiBnaWxfbWluc2l6ZSkKKyAgICAgICAgICAgIG0udXBkYXRlKGInMScpCisKICAgICAgICAgbSA9IGhhc2hsaWIubWQ1KCkKICAgICAgICAgbS51cGRhdGUoYicxJykKICAgICAgICAgbS51cGRhdGUoYicjJyAqIGdpbF9taW5zaXplKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9odHRwbGliLnB5IGIvTGliL3Rlc3QvdGVzdF9odHRwbGliLnB5CmluZGV4IDg2M2U0YmMuLmIzNjg4YWYgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfaHR0cGxpYi5weQorKysgYi9MaWIvdGVzdC90ZXN0X2h0dHBsaWIucHkKQEAgLTI3LDggKzI3LDEwIEBACiAgICAgICAgIHNlbGYudGV4dCA9IHRleHQKICAgICAgICAgc2VsZi5maWxlY2xhc3MgPSBmaWxlY2xhc3MKICAgICAgICAgc2VsZi5kYXRhID0gYicnCisgICAgICAgIHNlbGYuc2VuZGFsbF9jYWxscyA9IDAKIAogICAgIGRlZiBzZW5kYWxsKHNlbGYsIGRhdGEpOgorICAgICAgICBzZWxmLnNlbmRhbGxfY2FsbHMgKz0gMQogICAgICAgICBzZWxmLmRhdGEgKz0gZGF0YQogCiAgICAgZGVmIG1ha2VmaWxlKHNlbGYsIG1vZGUsIGJ1ZnNpemU9Tm9uZSk6CkBAIC00NSw3ICs0Nyw3IEBACiAKICAgICBkZWYgc2VuZGFsbChzZWxmLCBkYXRhKToKICAgICAgICAgaWYgc2VsZi5waXBlX3RyaWdnZXIgaW4gZGF0YToKLSAgICAgICAgICAgIHJhaXNlIHNvY2tldC5lcnJvcihlcnJuby5FUElQRSwgImdvdGNoYSIpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKGVycm5vLkVQSVBFLCAiZ290Y2hhIikKICAgICAgICAgc2VsZi5kYXRhICs9IGRhdGEKIAogICAgIGRlZiBjbG9zZShzZWxmKToKQEAgLTU4OCw3ICs1OTAsNyBAQAogICAgICAgICAgICAgYiJDb250ZW50LUxlbmd0aCIpCiAgICAgICAgIGNvbm4gPSBjbGllbnQuSFRUUENvbm5lY3Rpb24oImV4YW1wbGUuY29tIikKICAgICAgICAgY29ubi5zb2NrID0gc29jawotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IsCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYTogY29ubi5yZXF1ZXN0KCJQVVQiLCAiL3VybCIsICJib2R5IikpCiAgICAgICAgIHJlc3AgPSBjb25uLmdldHJlc3BvbnNlKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg0MDEsIHJlc3Auc3RhdHVzKQpAQCAtNjM0LDYgKzYzNiwyOCBAQAogICAgICAgICByZXNwLmNsb3NlKCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3AuY2xvc2VkKQogCisgICAgZGVmIHRlc3RfZGVsYXllZF9hY2tfb3B0KHNlbGYpOgorICAgICAgICAjIFRlc3QgdGhhdCBOYWdsZS9kZWxheWVkX2FjayBvcHRpbWlzdGFpb24gd29ya3MgY29ycmVjdGx5LgorCisgICAgICAgICMgRm9yIHNtYWxsIHBheWxvYWRzLCBpdCBzaG91bGQgY29hbGVzY2UgdGhlIGJvZHkgd2l0aAorICAgICAgICAjIGhlYWRlcnMsIHJlc3VsdGluZyBpbiBhIHNpbmdsZSBzZW5kYWxsKCkgY2FsbAorICAgICAgICBjb25uID0gY2xpZW50LkhUVFBDb25uZWN0aW9uKCdleGFtcGxlLmNvbScpCisgICAgICAgIHNvY2sgPSBGYWtlU29ja2V0KE5vbmUpCisgICAgICAgIGNvbm4uc29jayA9IHNvY2sKKyAgICAgICAgYm9keSA9IGIneCcgKiAoY29ubi5tc3MgLSAxKQorICAgICAgICBjb25uLnJlcXVlc3QoJ1BPU1QnLCAnLycsIGJvZHkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29jay5zZW5kYWxsX2NhbGxzLCAxKQorCisgICAgICAgICMgRm9yIGxhcmdlIHBheWxvYWRzLCBpdCBzaG91bGQgc2VuZCB0aGUgaGVhZGVycyBhbmQKKyAgICAgICAgIyB0aGVuIHRoZSBib2R5LCByZXN1bHRpbmcgaW4gbW9yZSB0aGFuIG9uZSBzZW5kYWxsKCkKKyAgICAgICAgIyBjYWxsCisgICAgICAgIGNvbm4gPSBjbGllbnQuSFRUUENvbm5lY3Rpb24oJ2V4YW1wbGUuY29tJykKKyAgICAgICAgc29jayA9IEZha2VTb2NrZXQoTm9uZSkKKyAgICAgICAgY29ubi5zb2NrID0gc29jaworICAgICAgICBib2R5ID0gYid4JyAqIGNvbm4ubXNzCisgICAgICAgIGNvbm4ucmVxdWVzdCgnUE9TVCcsICcvJywgYm9keSkKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKHNvY2suc2VuZGFsbF9jYWxscywgMSkKKwogY2xhc3MgT2ZmbGluZVRlc3QoVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3Jlc3BvbnNlcyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbGllbnQucmVzcG9uc2VzW2NsaWVudC5OT1RfRk9VTkRdLCAiTm90IEZvdW5kIikKQEAgLTcyNCw3ICs3NDgsNyBAQAogCiAgICAgZGVmIG1ha2Vfc2VydmVyKHNlbGYsIGNlcnRmaWxlKToKICAgICAgICAgZnJvbSB0ZXN0LnNzbF9zZXJ2ZXJzIGltcG9ydCBtYWtlX2h0dHBzX3NlcnZlcgotICAgICAgICByZXR1cm4gbWFrZV9odHRwc19zZXJ2ZXIoc2VsZiwgY2VydGZpbGUpCisgICAgICAgIHJldHVybiBtYWtlX2h0dHBzX3NlcnZlcihzZWxmLCBjZXJ0ZmlsZT1jZXJ0ZmlsZSkKIAogICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZXMoc2VsZik6CiAgICAgICAgICMgc2ltcGxlIHRlc3QgdG8gY2hlY2sgaXQncyBzdG9yaW5nIHRoZSB0aW1lb3V0CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2h0dHBzZXJ2ZXJzLnB5IGIvTGliL3Rlc3QvdGVzdF9odHRwc2VydmVycy5weQppbmRleCAwM2MwNzc2Li5lYzc1MWNjIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2h0dHBzZXJ2ZXJzLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfaHR0cHNlcnZlcnMucHkKQEAgLTkyLDYgKzkyLDEzIEBACiAgICAgICAgIGRlZiBkb19LRVlFUlJPUihzZWxmKToKICAgICAgICAgICAgIHNlbGYuc2VuZF9lcnJvcig5OTkpCiAKKyAgICAgICAgZGVmIGRvX05PVEZPVU5EKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5zZW5kX2Vycm9yKDQwNCkKKworICAgICAgICBkZWYgZG9fRVhQTEFJTkVSUk9SKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5zZW5kX2Vycm9yKDk5OSwgIlNob3J0IE1lc3NhZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGlzIGlzIGEgbG9uZyBcbiBleHBsYWluYXRpb24iKQorCiAgICAgICAgIGRlZiBkb19DVVNUT00oc2VsZik6CiAgICAgICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoOTk5KQogICAgICAgICAgICAgc2VsZi5zZW5kX2hlYWRlcignQ29udGVudC1UeXBlJywgJ3RleHQvaHRtbCcpCkBAIC0yMDMsNiArMjEwLDEyIEBACiAgICAgICAgIHJlcyA9IHNlbGYuY29uLmdldHJlc3BvbnNlKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMuc3RhdHVzLCA5OTkpCiAKKyAgICBkZWYgdGVzdF9yZXR1cm5fZXhwbGFpbl9lcnJvcihzZWxmKToKKyAgICAgICAgc2VsZi5jb24ucmVxdWVzdCgnRVhQTEFJTkVSUk9SJywgJy8nKQorICAgICAgICByZXMgPSBzZWxmLmNvbi5nZXRyZXNwb25zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLnN0YXR1cywgOTk5KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaW50KHJlcy5nZXRoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJykpKQorCiAgICAgZGVmIHRlc3RfbGF0aW4xX2hlYWRlcihzZWxmKToKICAgICAgICAgc2VsZi5jb24ucmVxdWVzdCgnTEFUSU5PTkVIRUFERVInLCAnLycsIGhlYWRlcnM9ewogICAgICAgICAgICAgJ1gtU3BlY2lhbC1JbmNvbWluZyc6ICAgICAgICfDhHJnZXIgbWl0IFVuaWNvZGUnCkBAIC0yMTEsNiArMjI0LDE0IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLmdldGhlYWRlcignWC1TcGVjaWFsJyksICdEw6RuZ2Vyb3VzIE1pbmQnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcy5yZWFkKCksICfDhHJnZXIgbWl0IFVuaWNvZGUnLmVuY29kZSgndXRmLTgnKSkKIAorICAgIGRlZiB0ZXN0X2Vycm9yX2NvbnRlbnRfbGVuZ3RoKHNlbGYpOgorICAgICAgICAjIElzc3VlICMxNjA4ODogc3RhbmRhcmQgZXJyb3IgcmVzcG9uc2VzIHNob3VsZCBoYXZlIGEgY29udGVudC1sZW5ndGgKKyAgICAgICAgc2VsZi5jb24ucmVxdWVzdCgnTk9URk9VTkQnLCAnLycpCisgICAgICAgIHJlcyA9IHNlbGYuY29uLmdldHJlc3BvbnNlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMuc3RhdHVzLCA0MDQpCisgICAgICAgIGRhdGEgPSByZXMucmVhZCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW50KHJlcy5nZXRoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJykpLCBsZW4oZGF0YSkpCisKIAogY2xhc3MgU2ltcGxlSFRUUFNlcnZlclRlc3RDYXNlKEJhc2VUZXN0Q2FzZSk6CiAgICAgY2xhc3MgcmVxdWVzdF9oYW5kbGVyKE5vTG9nUmVxdWVzdEhhbmRsZXIsIFNpbXBsZUhUVFBSZXF1ZXN0SGFuZGxlcik6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2ltYXBsaWIucHkgYi9MaWIvdGVzdC90ZXN0X2ltYXBsaWIucHkKaW5kZXggN2RiM2Y3ZC4uYzM3ZWExZCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9pbWFwbGliLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfaW1hcGxpYi5weQpAQCAtMTI1LDcgKzEyNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAjIE5ha2VkIHNvY2tldHMgcmV0dXJuIGVtcHR5IHN0cmluZ3MuLgogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgICAgIGxpbmUgKz0gcGFydAotICAgICAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgICAgICAjIC4uYnV0IFNTTFNvY2tldHMgcmFpc2UgZXhjZXB0aW9ucy4KICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgaWYgbGluZS5lbmRzd2l0aChiJ1xyXG4nKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfaW1wLnB5IGIvTGliL3Rlc3QvdGVzdF9pbXAucHkKaW5kZXggZmU0MzZmMy4uN2I4NTk0OCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9pbXAucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9pbXAucHkKQEAgLTEsMyArMSw3IEBACit0cnk6CisgICAgaW1wb3J0IF90aHJlYWQKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBfdGhyZWFkID0gTm9uZQogaW1wb3J0IGltcAogaW1wb3J0IGltcG9ydGxpYgogaW1wb3J0IG9zCkBAIC04LDYgKzEyLDE2IEBACiBpbXBvcnQgdW5pdHRlc3QKIGltcG9ydCB3YXJuaW5ncwogCisKK2RlZiByZXF1aXJlc19sb2FkX2R5bmFtaWMobWV0aCk6CisgICAgIiIiRGVjb3JhdG9yIHRvIHNraXAgYSB0ZXN0IGlmIG5vdCBydW5uaW5nIHVuZGVyIENQeXRob24gb3IgbGFja2luZworICAgIGltcC5sb2FkX2R5bmFtaWMoKS4iIiIKKyAgICBtZXRoID0gc3VwcG9ydC5jcHl0aG9uX29ubHkobWV0aCkKKyAgICByZXR1cm4gdW5pdHRlc3Quc2tpcElmKG5vdCBoYXNhdHRyKGltcCwgJ2xvYWRfZHluYW1pYycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ltcC5sb2FkX2R5bmFtaWMoKSByZXF1aXJlZCcpKG1ldGgpCisKKworQHVuaXR0ZXN0LnNraXBJZihfdGhyZWFkIGlzIE5vbmUsICdfdGhyZWFkIG1vZHVsZSBpcyByZXF1aXJlZCcpCiBjbGFzcyBMb2NrVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgIiIiVmVyeSBiYXNpYyB0ZXN0IG9mIGltcG9ydCBsb2NrIGZ1bmN0aW9ucy4iIiIKQEAgLTIwNyw5ICsyMjEsNyBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhvcmlnX3BhdGgsIG5ld19vcy5wYXRoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdChvcmlnX2dldGVudiwgbmV3X29zLmdldGVudikKIAotICAgIEBzdXBwb3J0LmNweXRob25fb25seQotICAgIEB1bml0dGVzdC5za2lwSWYobm90IGhhc2F0dHIoaW1wLCAnbG9hZF9keW5hbWljJyksCi0gICAgICAgICAgICAgICAgICAgICAnaW1wLmxvYWRfZHluYW1pYygpIHJlcXVpcmVkJykKKyAgICBAcmVxdWlyZXNfbG9hZF9keW5hbWljCiAgICAgZGVmIHRlc3RfaXNzdWUxNTgyOF9sb2FkX2V4dGVuc2lvbnMoc2VsZik6CiAgICAgICAgICMgSXNzdWUgMTU4MjggcGlja2VkIHVwIHRoYXQgdGhlIGFkYXB0ZXIgYmV0d2VlbiB0aGUgb2xkIGltcCBBUEkKICAgICAgICAgIyBhbmQgaW1wb3J0bGliIGNvdWxkbid0IGhhbmRsZSBDIGV4dGVuc2lvbnMKQEAgLTIyMSw2ICsyMzMsMjIgQEAKICAgICAgICAgbW9kID0gaW1wLmxvYWRfbW9kdWxlKGV4YW1wbGUsICp4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZC5fX25hbWVfXywgZXhhbXBsZSkKIAorICAgIEByZXF1aXJlc19sb2FkX2R5bmFtaWMKKyAgICBkZWYgdGVzdF9pc3N1ZTE2NDIxX211bHRpcGxlX21vZHVsZXNfaW5fb25lX2RsbChzZWxmKToKKyAgICAgICAgIyBJc3N1ZSAxNjQyMTogbG9hZGluZyBzZXZlcmFsIG1vZHVsZXMgZnJvbSB0aGUgc2FtZSBjb21waWxlZCBmaWxlIGZhaWxzCisgICAgICAgIG0gPSAnX3Rlc3RpbXBvcnRtdWx0aXBsZScKKyAgICAgICAgZmlsZW9iaiwgcGF0aG5hbWUsIGRlc2NyaXB0aW9uID0gaW1wLmZpbmRfbW9kdWxlKG0pCisgICAgICAgIGZpbGVvYmouY2xvc2UoKQorICAgICAgICBtb2QwID0gaW1wLmxvYWRfZHluYW1pYyhtLCBwYXRobmFtZSkKKyAgICAgICAgbW9kMSA9IGltcC5sb2FkX2R5bmFtaWMoJ190ZXN0aW1wb3J0bXVsdGlwbGVfZm9vJywgcGF0aG5hbWUpCisgICAgICAgIG1vZDIgPSBpbXAubG9hZF9keW5hbWljKCdfdGVzdGltcG9ydG11bHRpcGxlX2JhcicsIHBhdGhuYW1lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZDAuX19uYW1lX18sIG0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kMS5fX25hbWVfXywgJ190ZXN0aW1wb3J0bXVsdGlwbGVfZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2QyLl9fbmFtZV9fLCAnX3Rlc3RpbXBvcnRtdWx0aXBsZV9iYXInKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgICAgIGltcC5sb2FkX2R5bmFtaWMoJ25vbmV4aXN0ZW50JywgcGF0aG5hbWUpCisKKyAgICBAcmVxdWlyZXNfbG9hZF9keW5hbWljCiAgICAgZGVmIHRlc3RfbG9hZF9keW5hbWljX0ltcG9ydEVycm9yX3BhdGgoc2VsZik6CiAgICAgICAgICMgSXNzdWUgIzE1NTk1NDkgYWRkZWQgYG5hbWVgIGFuZCBgcGF0aGAgYXR0cmlidXRlcyB0byBJbXBvcnRFcnJvcgogICAgICAgICAjIGluIG9yZGVyIHRvIHByb3ZpZGUgYmV0dGVyIGRldGFpbC4gSXNzdWUgIzEwODU0IGltcGxlbWVudGVkIHRob3NlCkBAIC0yMzIsMTQgKzI2MCwxMiBAQAogICAgICAgICBzZWxmLmFzc2VydEluKHBhdGgsIGVyci5leGNlcHRpb24ucGF0aCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lLCBlcnIuZXhjZXB0aW9uLm5hbWUpCiAKLSAgICBAc3VwcG9ydC5jcHl0aG9uX29ubHkKLSAgICBAdW5pdHRlc3Quc2tpcElmKG5vdCBoYXNhdHRyKGltcCwgJ2xvYWRfZHluYW1pYycpLAotICAgICAgICAgICAgICAgICAgICAgJ2ltcC5sb2FkX2R5bmFtaWMoKSByZXF1aXJlZCcpCisgICAgQHJlcXVpcmVzX2xvYWRfZHluYW1pYwogICAgIGRlZiB0ZXN0X2xvYWRfbW9kdWxlX2V4dGVuc2lvbl9maWxlX2lzX05vbmUoc2VsZik6CiAgICAgICAgICMgV2hlbiBsb2FkaW5nIGFuIGV4dGVuc2lvbiBtb2R1bGUgYW5kIHRoZSBmaWxlIGlzIE5vbmUsIG9wZW4gb25lCiAgICAgICAgICMgb24gdGhlIGJlaGFsZiBvZiBpbXAubG9hZF9keW5hbWljKCkuCiAgICAgICAgICMgSXNzdWUgIzE1OTAyCi0gICAgICAgIG5hbWUgPSAnX2hlYXBxJworICAgICAgICBuYW1lID0gJ190ZXN0aW1wb3J0bXVsdGlwbGUnCiAgICAgICAgIGZvdW5kID0gaW1wLmZpbmRfbW9kdWxlKG5hbWUpCiAgICAgICAgIGlmIGZvdW5kWzBdIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgZm91bmRbMF0uY2xvc2UoKQpAQCAtNDI3LDIwICs0NTMsNSBAQAogICAgICAgICAgICAgb3Mucm1kaXIobmFtZSkKIAogCi1kZWYgdGVzdF9tYWluKCk6Ci0gICAgdGVzdHMgPSBbCi0gICAgICAgIEltcG9ydFRlc3RzLAotICAgICAgICBQRVAzMTQ3VGVzdHMsCi0gICAgICAgIFJlbG9hZFRlc3RzLAotICAgICAgICBOdWxsSW1wb3J0ZXJUZXN0cywKLSAgICAgICAgXQotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IF90aHJlYWQKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgIHBhc3MKLSAgICBlbHNlOgotICAgICAgICB0ZXN0cy5hcHBlbmQoTG9ja1Rlc3RzKQotICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KCp0ZXN0cykKLQogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICB0ZXN0X21haW4oKQorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9pbXBvcnRsaWIvZnJvemVuL3Rlc3RfbG9hZGVyLnB5IGIvTGliL3Rlc3QvdGVzdF9pbXBvcnRsaWIvZnJvemVuL3Rlc3RfbG9hZGVyLnB5CmluZGV4IDRiOGVjMTUuLjg3MzFiZGMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfaW1wb3J0bGliL2Zyb3plbi90ZXN0X2xvYWRlci5weQorKysgYi9MaWIvdGVzdC90ZXN0X2ltcG9ydGxpYi9mcm96ZW4vdGVzdF9sb2FkZXIucHkKQEAgLTI0LDcgKzI0LDcgQEAKICAgICAgICAgICAgIG1vZHVsZSA9IG1hY2hpbmVyeS5Gcm96ZW5JbXBvcnRlci5sb2FkX21vZHVsZSgnX19waGVsbG9fXycpCiAgICAgICAgICAgICBjaGVjayA9IHsnX19uYW1lX18nOiAnX19waGVsbG9fXycsCiAgICAgICAgICAgICAgICAgICAgICAnX19wYWNrYWdlX18nOiAnX19waGVsbG9fXycsCi0gICAgICAgICAgICAgICAgICAgICAnX19wYXRoX18nOiBbJ19fcGhlbGxvX18nXSwKKyAgICAgICAgICAgICAgICAgICAgICdfX3BhdGhfXyc6IFtdLAogICAgICAgICAgICAgICAgICAgICAgJ19fbG9hZGVyX18nOiBtYWNoaW5lcnkuRnJvemVuSW1wb3J0ZXIsCiAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICBmb3IgYXR0ciwgdmFsdWUgaW4gY2hlY2suaXRlbXMoKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfaW1wb3J0bGliL2ltcG9ydF8vdGVzdF9fX2xvYWRlcl9fLnB5IGIvTGliL3Rlc3QvdGVzdF9pbXBvcnRsaWIvaW1wb3J0Xy90ZXN0X19fbG9hZGVyX18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2UwZDNkZAotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3RfaW1wb3J0bGliL2ltcG9ydF8vdGVzdF9fX2xvYWRlcl9fLnB5CkBAIC0wLDAgKzEsNDQgQEAKK2ltcG9ydCBpbXAKK2ltcG9ydCBzeXMKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIC4uIGltcG9ydCB1dGlsCitmcm9tIC4gaW1wb3J0IHV0aWwgYXMgaW1wb3J0X3V0aWwKKworCitjbGFzcyBMb2FkZXJNb2NrOgorCisgICAgZGVmIGZpbmRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lLCBwYXRoPU5vbmUpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lKToKKyAgICAgICAgc3lzLm1vZHVsZXNbZnVsbG5hbWVdID0gc2VsZi5tb2R1bGUKKyAgICAgICAgcmV0dXJuIHNlbGYubW9kdWxlCisKKworY2xhc3MgTG9hZGVyQXR0cmlidXRlVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfX19sb2FkZXJfX19taXNzaW5nKHNlbGYpOgorICAgICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZSgnYmxhaCcpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRlbCBtb2R1bGUuX19sb2FkZXJfXworICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGxvYWRlciA9IExvYWRlck1vY2soKQorICAgICAgICBsb2FkZXIubW9kdWxlID0gbW9kdWxlCisgICAgICAgIHdpdGggdXRpbC51bmNhY2hlKCdibGFoJyksIHV0aWwuaW1wb3J0X3N0YXRlKG1ldGFfcGF0aD1bbG9hZGVyXSk6CisgICAgICAgICAgICBtb2R1bGUgPSBpbXBvcnRfdXRpbC5pbXBvcnRfKCdibGFoJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2FkZXIsIG1vZHVsZS5fX2xvYWRlcl9fKQorCisgICAgZGVmIHRlc3RfX19sb2FkZXJfX19pc19Ob25lKHNlbGYpOgorICAgICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZSgnYmxhaCcpCisgICAgICAgIG1vZHVsZS5fX2xvYWRlcl9fID0gTm9uZQorICAgICAgICBsb2FkZXIgPSBMb2FkZXJNb2NrKCkKKyAgICAgICAgbG9hZGVyLm1vZHVsZSA9IG1vZHVsZQorICAgICAgICB3aXRoIHV0aWwudW5jYWNoZSgnYmxhaCcpLCB1dGlsLmltcG9ydF9zdGF0ZShtZXRhX3BhdGg9W2xvYWRlcl0pOgorICAgICAgICAgICAgcmV0dXJuZWRfbW9kdWxlID0gaW1wb3J0X3V0aWwuaW1wb3J0XygnYmxhaCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9hZGVyLCBtb2R1bGUuX19sb2FkZXJfXykKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9pbXBvcnRsaWIvc291cmNlL3Rlc3RfYWJjX2xvYWRlci5weSBiL0xpYi90ZXN0L3Rlc3RfaW1wb3J0bGliL3NvdXJjZS90ZXN0X2FiY19sb2FkZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkOTEyYjYuLjAwMDAwMDAKLS0tIGEvTGliL3Rlc3QvdGVzdF9pbXBvcnRsaWIvc291cmNlL3Rlc3RfYWJjX2xvYWRlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDkwNiArMCwwIEBACi1pbXBvcnQgaW1wb3J0bGliCi1mcm9tIGltcG9ydGxpYiBpbXBvcnQgYWJjCi0KLWZyb20gLi4gaW1wb3J0IGFiYyBhcyB0ZXN0aW5nX2FiYwotZnJvbSAuLiBpbXBvcnQgdXRpbAotZnJvbSAuIGltcG9ydCB1dGlsIGFzIHNvdXJjZV91dGlsCi0KLWltcG9ydCBpbXAKLWltcG9ydCBpbnNwZWN0Ci1pbXBvcnQgaW8KLWltcG9ydCBtYXJzaGFsCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLWltcG9ydCB0eXBlcwotaW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQgd2FybmluZ3MKLQotCi1jbGFzcyBTb3VyY2VPbmx5TG9hZGVyTW9jayhhYmMuU291cmNlTG9hZGVyKToKLQotICAgICMgR2xvYmFscyB0aGF0IHNob3VsZCBiZSBkZWZpbmVkIGZvciBhbGwgbW9kdWxlcy4KLSAgICBzb3VyY2UgPSAoYiJfID0gJzo6Jy5qb2luKFtfX25hbWVfXywgX19maWxlX18sIF9fY2FjaGVkX18sIF9fcGFja2FnZV9fLCAiCi0gICAgICAgICAgICAgIGIicmVwcihfX2xvYWRlcl9fKV0pIikKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoKToKLSAgICAgICAgc2VsZi5wYXRoID0gcGF0aAotCi0gICAgZGVmIGdldF9kYXRhKHNlbGYsIHBhdGgpOgotICAgICAgICBhc3NlcnQgc2VsZi5wYXRoID09IHBhdGgKLSAgICAgICAgcmV0dXJuIHNlbGYuc291cmNlCi0KLSAgICBkZWYgZ2V0X2ZpbGVuYW1lKHNlbGYsIGZ1bGxuYW1lKToKLSAgICAgICAgcmV0dXJuIHNlbGYucGF0aAotCi0gICAgZGVmIG1vZHVsZV9yZXByKHNlbGYsIG1vZHVsZSk6Ci0gICAgICAgIHJldHVybiAnPG1vZHVsZT4nCi0KLQotY2xhc3MgU291cmNlTG9hZGVyTW9jayhTb3VyY2VPbmx5TG9hZGVyTW9jayk6Ci0KLSAgICBzb3VyY2VfbXRpbWUgPSAxCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCwgbWFnaWM9aW1wLmdldF9tYWdpYygpKToKLSAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXRoKQotICAgICAgICBzZWxmLmJ5dGVjb2RlX3BhdGggPSBpbXAuY2FjaGVfZnJvbV9zb3VyY2Uoc2VsZi5wYXRoKQotICAgICAgICBzZWxmLnNvdXJjZV9zaXplID0gbGVuKHNlbGYuc291cmNlKQotICAgICAgICBkYXRhID0gYnl0ZWFycmF5KG1hZ2ljKQotICAgICAgICBkYXRhLmV4dGVuZChpbXBvcnRsaWIuX3dfbG9uZyhzZWxmLnNvdXJjZV9tdGltZSkpCi0gICAgICAgIGRhdGEuZXh0ZW5kKGltcG9ydGxpYi5fd19sb25nKHNlbGYuc291cmNlX3NpemUpKQotICAgICAgICBjb2RlX29iamVjdCA9IGNvbXBpbGUoc2VsZi5zb3VyY2UsIHNlbGYucGF0aCwgJ2V4ZWMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb250X2luaGVyaXQ9VHJ1ZSkKLSAgICAgICAgZGF0YS5leHRlbmQobWFyc2hhbC5kdW1wcyhjb2RlX29iamVjdCkpCi0gICAgICAgIHNlbGYuYnl0ZWNvZGUgPSBieXRlcyhkYXRhKQotICAgICAgICBzZWxmLndyaXR0ZW4gPSB7fQotCi0gICAgZGVmIGdldF9kYXRhKHNlbGYsIHBhdGgpOgotICAgICAgICBpZiBwYXRoID09IHNlbGYucGF0aDoKLSAgICAgICAgICAgIHJldHVybiBzdXBlcigpLmdldF9kYXRhKHBhdGgpCi0gICAgICAgIGVsaWYgcGF0aCA9PSBzZWxmLmJ5dGVjb2RlX3BhdGg6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5ieXRlY29kZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcgotCi0gICAgZGVmIHBhdGhfc3RhdHMoc2VsZiwgcGF0aCk6Ci0gICAgICAgIGFzc2VydCBwYXRoID09IHNlbGYucGF0aAotICAgICAgICByZXR1cm4geydtdGltZSc6IHNlbGYuc291cmNlX210aW1lLCAnc2l6ZSc6IHNlbGYuc291cmNlX3NpemV9Ci0KLSAgICBkZWYgc2V0X2RhdGEoc2VsZiwgcGF0aCwgZGF0YSk6Ci0gICAgICAgIHNlbGYud3JpdHRlbltwYXRoXSA9IGJ5dGVzKGRhdGEpCi0gICAgICAgIHJldHVybiBwYXRoID09IHNlbGYuYnl0ZWNvZGVfcGF0aAotCi0KLWNsYXNzIFB5TG9hZGVyTW9jayhhYmMuUHlMb2FkZXIpOgotCi0gICAgIyBHbG9iYWxzIHRoYXQgc2hvdWxkIGJlIGRlZmluZWQgZm9yIGFsbCBtb2R1bGVzLgotICAgIHNvdXJjZSA9IChiIl8gPSAnOjonLmpvaW4oW19fbmFtZV9fLCBfX2ZpbGVfXywgX19wYWNrYWdlX18sICIKLSAgICAgICAgICAgICAgYiJyZXByKF9fbG9hZGVyX18pXSkiKQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGRhdGEpOgotICAgICAgICAiIiJUYWtlIGEgZGljdCBvZiAnbW9kdWxlX25hbWU6IHBhdGgnIHBhaXJpbmdzLgotCi0gICAgICAgIFBhdGhzIHNob3VsZCBoYXZlIG5vIGZpbGUgZXh0ZW5zaW9uLCBhbGxvd2luZyBwYWNrYWdlcyB0byBiZSBkZW5vdGVkIGJ5Ci0gICAgICAgIGVuZGluZyBpbiAnX19pbml0X18nLgotCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLm1vZHVsZV9wYXRocyA9IGRhdGEKLSAgICAgICAgc2VsZi5wYXRoX3RvX21vZHVsZSA9IHt2YWw6a2V5IGZvciBrZXksdmFsIGluIGRhdGEuaXRlbXMoKX0KLQotICAgIGRlZiBnZXRfZGF0YShzZWxmLCBwYXRoKToKLSAgICAgICAgaWYgcGF0aCBub3QgaW4gc2VsZi5wYXRoX3RvX21vZHVsZToKLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IKLSAgICAgICAgcmV0dXJuIHNlbGYuc291cmNlCi0KLSAgICBkZWYgaXNfcGFja2FnZShzZWxmLCBuYW1lKToKLSAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHNlbGYuZ2V0X2ZpbGVuYW1lKG5hbWUpKQotICAgICAgICByZXR1cm4gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMF0gPT0gJ19faW5pdF9fJwotCi0gICAgZGVmIHNvdXJjZV9wYXRoKHNlbGYsIG5hbWUpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5tb2R1bGVfcGF0aHNbbmFtZV0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IKLQotICAgIGRlZiBnZXRfZmlsZW5hbWUoc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIlNpbGVuY2UgZGVwcmVjYXRpb24gd2FybmluZy4iIiIKLSAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncyhyZWNvcmQ9VHJ1ZSkgYXMgdzoKLSAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcigiYWx3YXlzIikKLSAgICAgICAgICAgIHBhdGggPSBzdXBlcigpLmdldF9maWxlbmFtZShuYW1lKQotICAgICAgICAgICAgYXNzZXJ0IGxlbih3KSA9PSAxCi0gICAgICAgICAgICBhc3NlcnQgaXNzdWJjbGFzcyh3WzBdLmNhdGVnb3J5LCBEZXByZWNhdGlvbldhcm5pbmcpCi0gICAgICAgICAgICByZXR1cm4gcGF0aAotCi0gICAgZGVmIG1vZHVsZV9yZXByKHNlbGYpOgotICAgICAgICByZXR1cm4gJzxtb2R1bGU+JwotCi0KLWNsYXNzIFB5TG9hZGVyQ29tcGF0TW9jayhQeUxvYWRlck1vY2spOgotCi0gICAgIiIiTW9jayB0aGF0IG1hdGNoZXMgd2hhdCBpcyBzdWdnZXN0ZWQgdG8gaGF2ZSBhIGxvYWRlciB0aGF0IGlzIGNvbXBhdGlibGUKLSAgICBmcm9tIFB5dGhvbiAzLjEgb253YXJkcy4iIiIKLQotICAgIGRlZiBnZXRfZmlsZW5hbWUoc2VsZiwgZnVsbG5hbWUpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5tb2R1bGVfcGF0aHNbZnVsbG5hbWVdCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yCi0KLSAgICBkZWYgc291cmNlX3BhdGgoc2VsZiwgZnVsbG5hbWUpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5nZXRfZmlsZW5hbWUoZnVsbG5hbWUpCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLQotY2xhc3MgUHlQeWNMb2FkZXJNb2NrKGFiYy5QeVB5Y0xvYWRlciwgUHlMb2FkZXJNb2NrKToKLQotICAgIGRlZmF1bHRfbXRpbWUgPSAxCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlLCBiYz17fSk6Ci0gICAgICAgICIiIkluaXRpYWxpemUgbW9jay4KLQotICAgICAgICAnYmMnIGlzIGEgZGljdCBrZXllZCBvbiBhIG1vZHVsZSdzIG5hbWUuIFRoZSB2YWx1ZSBpcyBkaWN0IHdpdGgKLSAgICAgICAgcG9zc2libGUga2V5cyBvZiAncGF0aCcsICdtdGltZScsICdtYWdpYycsIGFuZCAnYmMnLiBFeGNlcHQgZm9yICdwYXRoJywKLSAgICAgICAgZWFjaCBvZiB0aG9zZSBrZXlzIGNvbnRyb2wgaWYgYW55IHBhcnQgb2YgY3JlYXRlZCBieXRlY29kZSBpcyB0bwotICAgICAgICBkZXZpYXRlIGZyb20gZGVmYXVsdCB2YWx1ZXMuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIHN1cGVyKCkuX19pbml0X18oc291cmNlKQotICAgICAgICBzZWxmLm1vZHVsZV9ieXRlY29kZSA9IHt9Ci0gICAgICAgIHNlbGYucGF0aF90b19ieXRlY29kZSA9IHt9Ci0gICAgICAgIHNlbGYuYnl0ZWNvZGVfdG9fcGF0aCA9IHt9Ci0gICAgICAgIGZvciBuYW1lLCBkYXRhIGluIGJjLml0ZW1zKCk6Ci0gICAgICAgICAgICBzZWxmLnBhdGhfdG9fYnl0ZWNvZGVbZGF0YVsncGF0aCddXSA9IG5hbWUKLSAgICAgICAgICAgIHNlbGYuYnl0ZWNvZGVfdG9fcGF0aFtuYW1lXSA9IGRhdGFbJ3BhdGgnXQotICAgICAgICAgICAgbWFnaWMgPSBkYXRhLmdldCgnbWFnaWMnLCBpbXAuZ2V0X21hZ2ljKCkpCi0gICAgICAgICAgICBtdGltZSA9IGltcG9ydGxpYi5fd19sb25nKGRhdGEuZ2V0KCdtdGltZScsIHNlbGYuZGVmYXVsdF9tdGltZSkpCi0gICAgICAgICAgICBzb3VyY2Vfc2l6ZSA9IGltcG9ydGxpYi5fd19sb25nKGxlbihzZWxmLnNvdXJjZSkgJiAweEZGRkZGRkZGKQotICAgICAgICAgICAgaWYgJ2JjJyBpbiBkYXRhOgotICAgICAgICAgICAgICAgIGJjID0gZGF0YVsnYmMnXQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBiYyA9IHNlbGYuY29tcGlsZV9iYyhuYW1lKQotICAgICAgICAgICAgc2VsZi5tb2R1bGVfYnl0ZWNvZGVbbmFtZV0gPSBtYWdpYyArIG10aW1lICsgc291cmNlX3NpemUgKyBiYwotCi0gICAgZGVmIGNvbXBpbGVfYmMoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHNvdXJjZV9wYXRoID0gc2VsZi5tb2R1bGVfcGF0aHMuZ2V0KG5hbWUsICc8dGVzdD4nKSBvciAnPHRlc3Q+JwotICAgICAgICBjb2RlID0gY29tcGlsZShzZWxmLnNvdXJjZSwgc291cmNlX3BhdGgsICdleGVjJykKLSAgICAgICAgcmV0dXJuIG1hcnNoYWwuZHVtcHMoY29kZSkKLQotICAgIGRlZiBzb3VyY2VfbXRpbWUoc2VsZiwgbmFtZSk6Ci0gICAgICAgIGlmIG5hbWUgaW4gc2VsZi5tb2R1bGVfcGF0aHM6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5kZWZhdWx0X210aW1lCi0gICAgICAgIGVsaWYgbmFtZSBpbiBzZWxmLm1vZHVsZV9ieXRlY29kZToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcgotCi0gICAgZGVmIGJ5dGVjb2RlX3BhdGgoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLmJ5dGVjb2RlX3RvX3BhdGhbbmFtZV0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgaWYgbmFtZSBpbiBzZWxmLm1vZHVsZV9wYXRoczoKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcgotCi0gICAgZGVmIHdyaXRlX2J5dGVjb2RlKHNlbGYsIG5hbWUsIGJ5dGVjb2RlKToKLSAgICAgICAgc2VsZi5tb2R1bGVfYnl0ZWNvZGVbbmFtZV0gPSBieXRlY29kZQotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgZGVmIGdldF9kYXRhKHNlbGYsIHBhdGgpOgotICAgICAgICBpZiBwYXRoIGluIHNlbGYucGF0aF90b19tb2R1bGU6Ci0gICAgICAgICAgICByZXR1cm4gc3VwZXIoKS5nZXRfZGF0YShwYXRoKQotICAgICAgICBlbGlmIHBhdGggaW4gc2VsZi5wYXRoX3RvX2J5dGVjb2RlOgotICAgICAgICAgICAgbmFtZSA9IHNlbGYucGF0aF90b19ieXRlY29kZVtwYXRoXQotICAgICAgICAgICAgcmV0dXJuIHNlbGYubW9kdWxlX2J5dGVjb2RlW25hbWVdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yCi0KLSAgICBkZWYgaXNfcGFja2FnZShzZWxmLCBuYW1lKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkuaXNfcGFja2FnZShuYW1lKQotICAgICAgICBleGNlcHQgVHlwZUVycm9yOgotICAgICAgICAgICAgcmV0dXJuICdfX2luaXRfXycgaW4gc2VsZi5ieXRlY29kZV90b19wYXRoW25hbWVdCi0KLSAgICBkZWYgZ2V0X2NvZGUoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MocmVjb3JkPVRydWUpIGFzIHc6Ci0gICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImFsd2F5cyIpCi0gICAgICAgICAgICBjb2RlX29iamVjdCA9IHN1cGVyKCkuZ2V0X2NvZGUobmFtZSkKLSAgICAgICAgICAgIGFzc2VydCBsZW4odykgPT0gMQotICAgICAgICAgICAgYXNzZXJ0IGlzc3ViY2xhc3Mod1swXS5jYXRlZ29yeSwgRGVwcmVjYXRpb25XYXJuaW5nKQotICAgICAgICAgICAgcmV0dXJuIGNvZGVfb2JqZWN0Ci0KLWNsYXNzIFB5TG9hZGVyVGVzdHModGVzdGluZ19hYmMuTG9hZGVyVGVzdHMpOgotCi0gICAgIiIiVGVzdHMgZm9yIGltcG9ydGxpYi5hYmMuUHlMb2FkZXIuIiIiCi0KLSAgICBtb2NrZXIgPSBQeUxvYWRlck1vY2sKLQotICAgIGRlZiBlcV9hdHRycyhzZWxmLCBvYiwgKiprd2FyZ3MpOgotICAgICAgICBmb3IgYXR0ciwgdmFsIGluIGt3YXJncy5pdGVtcygpOgotICAgICAgICAgICAgZm91bmQgPSBnZXRhdHRyKG9iLCBhdHRyKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb3VuZCwgdmFsLAotICAgICAgICAgICAgICAgICAgICAie30gYXR0cmlidXRlOiB7fSAhPSB7fSIuZm9ybWF0KGF0dHIsIGZvdW5kLCB2YWwpKQotCi0gICAgZGVmIHRlc3RfbW9kdWxlKHNlbGYpOgotICAgICAgICBuYW1lID0gJzxtb2R1bGU+JwotICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKCcnLCAncGF0aCcsICd0bycsICdtb2R1bGUnKQotICAgICAgICBtb2NrID0gc2VsZi5tb2NrZXIoe25hbWU6IHBhdGh9KQotICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKToKLSAgICAgICAgICAgIG1vZHVsZSA9IG1vY2subG9hZF9tb2R1bGUobmFtZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4obmFtZSwgc3lzLm1vZHVsZXMpCi0gICAgICAgIHNlbGYuZXFfYXR0cnMobW9kdWxlLCBfX25hbWVfXz1uYW1lLCBfX2ZpbGVfXz1wYXRoLCBfX3BhY2thZ2VfXz0nJywKLSAgICAgICAgICAgICAgICAgICAgICAgIF9fbG9hZGVyX189bW9jaykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vdCBoYXNhdHRyKG1vZHVsZSwgJ19fcGF0aF9fJykpCi0gICAgICAgIHJldHVybiBtb2NrLCBuYW1lCi0KLSAgICBkZWYgdGVzdF9wYWNrYWdlKHNlbGYpOgotICAgICAgICBuYW1lID0gJzxwa2c+JwotICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKCdwYXRoJywgJ3RvJywgbmFtZSwgJ19faW5pdF9fJykKLSAgICAgICAgbW9jayA9IHNlbGYubW9ja2VyKHtuYW1lOiBwYXRofSkKLSAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUobmFtZSk6Ci0gICAgICAgICAgICBtb2R1bGUgPSBtb2NrLmxvYWRfbW9kdWxlKG5hbWUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEluKG5hbWUsIHN5cy5tb2R1bGVzKQotICAgICAgICBzZWxmLmVxX2F0dHJzKG1vZHVsZSwgX19uYW1lX189bmFtZSwgX19maWxlX189cGF0aCwKLSAgICAgICAgICAgICAgICBfX3BhdGhfXz1bb3MucGF0aC5kaXJuYW1lKHBhdGgpXSwgX19wYWNrYWdlX189bmFtZSwKLSAgICAgICAgICAgICAgICBfX2xvYWRlcl9fPW1vY2spCi0gICAgICAgIHJldHVybiBtb2NrLCBuYW1lCi0KLSAgICBkZWYgdGVzdF9sYWNraW5nX3BhcmVudChzZWxmKToKLSAgICAgICAgbmFtZSA9ICdwa2cubW9kJwotICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKCdwYXRoJywgJ3RvJywgJ3BrZycsICdtb2QnKQotICAgICAgICBtb2NrID0gc2VsZi5tb2NrZXIoe25hbWU6IHBhdGh9KQotICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKToKLSAgICAgICAgICAgIG1vZHVsZSA9IG1vY2subG9hZF9tb2R1bGUobmFtZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4obmFtZSwgc3lzLm1vZHVsZXMpCi0gICAgICAgIHNlbGYuZXFfYXR0cnMobW9kdWxlLCBfX25hbWVfXz1uYW1lLCBfX2ZpbGVfXz1wYXRoLCBfX3BhY2thZ2VfXz0ncGtnJywKLSAgICAgICAgICAgICAgICAgICAgICAgIF9fbG9hZGVyX189bW9jaykKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKG1vZHVsZSwgJ19fcGF0aF9fJykpCi0gICAgICAgIHJldHVybiBtb2NrLCBuYW1lCi0KLSAgICBkZWYgdGVzdF9tb2R1bGVfcmV1c2Uoc2VsZik6Ci0gICAgICAgIG5hbWUgPSAnbW9kJwotICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKCdwYXRoJywgJ3RvJywgJ21vZCcpCi0gICAgICAgIG1vZHVsZSA9IGltcC5uZXdfbW9kdWxlKG5hbWUpCi0gICAgICAgIG1vY2sgPSBzZWxmLm1vY2tlcih7bmFtZTogcGF0aH0pCi0gICAgICAgIHdpdGggdXRpbC51bmNhY2hlKG5hbWUpOgotICAgICAgICAgICAgc3lzLm1vZHVsZXNbbmFtZV0gPSBtb2R1bGUKLSAgICAgICAgICAgIGxvYWRlZF9tb2R1bGUgPSBtb2NrLmxvYWRfbW9kdWxlKG5hbWUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydElzKGxvYWRlZF9tb2R1bGUsIG1vZHVsZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoc3lzLm1vZHVsZXNbbmFtZV0sIG1vZHVsZSkKLSAgICAgICAgcmV0dXJuIG1vY2ssIG5hbWUKLQotICAgIGRlZiB0ZXN0X3N0YXRlX2FmdGVyX2ZhaWx1cmUoc2VsZik6Ci0gICAgICAgIG5hbWUgPSAibW9kIgotICAgICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZShuYW1lKQotICAgICAgICBtb2R1bGUuYmxhaCA9IE5vbmUKLSAgICAgICAgbW9jayA9IHNlbGYubW9ja2VyKHtuYW1lOiBvcy5wYXRoLmpvaW4oJ3BhdGgnLCAndG8nLCAnbW9kJyl9KQotICAgICAgICBtb2NrLnNvdXJjZSA9IGIiMS8wIgotICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKToKLSAgICAgICAgICAgIHN5cy5tb2R1bGVzW25hbWVdID0gbW9kdWxlCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFplcm9EaXZpc2lvbkVycm9yKToKLSAgICAgICAgICAgICAgICBtb2NrLmxvYWRfbW9kdWxlKG5hbWUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydElzKHN5cy5tb2R1bGVzW25hbWVdLCBtb2R1bGUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFzYXR0cihtb2R1bGUsICdibGFoJykpCi0gICAgICAgIHJldHVybiBtb2NrCi0KLSAgICBkZWYgdGVzdF91bmxvYWRhYmxlKHNlbGYpOgotICAgICAgICBuYW1lID0gIm1vZCIKLSAgICAgICAgbW9jayA9IHNlbGYubW9ja2VyKHtuYW1lOiBvcy5wYXRoLmpvaW4oJ3BhdGgnLCAndG8nLCAnbW9kJyl9KQotICAgICAgICBtb2NrLnNvdXJjZSA9IGIiMS8wIgotICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKToKLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IpOgotICAgICAgICAgICAgICAgIG1vY2subG9hZF9tb2R1bGUobmFtZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4obmFtZSwgc3lzLm1vZHVsZXMpCi0gICAgICAgIHJldHVybiBtb2NrCi0KLQotY2xhc3MgUHlMb2FkZXJDb21wYXRUZXN0cyhQeUxvYWRlclRlc3RzKToKLQotICAgICIiIlRlc3QgdGhhdCB0aGUgc3VnZ2VzdGVkIGNvZGUgdG8gbWFrZSBhIGxvYWRlciB0aGF0IGlzIGNvbXBhdGlibGUgZnJvbQotICAgIFB5dGhvbiAzLjEgZm9yd2FyZCB3b3Jrcy4iIiIKLQotICAgIG1vY2tlciA9IFB5TG9hZGVyQ29tcGF0TW9jawotCi0KLWNsYXNzIFB5TG9hZGVySW50ZXJmYWNlVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgIiIiVGVzdHMgZm9yIGltcG9ydGxpYi5hYmMuUHlMb2FkZXIgdG8gbWFrZSBzdXJlIHRoYXQgd2hlbiBzb3VyY2VfcGF0aCgpCi0gICAgZG9lc24ndCByZXR1cm4gYSBwYXRoIGV2ZXJ5dGhpbmcgd29ya3MgYXMgZXhwZWN0ZWQuIiIiCi0KLSAgICBkZWYgdGVzdF9ub19zb3VyY2VfcGF0aChzZWxmKToKLSAgICAgICAgIyBObyBzb3VyY2UgcGF0aCBzaG91bGQgbGVhZCB0byBJbXBvcnRFcnJvci4KLSAgICAgICAgbmFtZSA9ICdtb2QnCi0gICAgICAgIG1vY2sgPSBQeUxvYWRlck1vY2soe30pCi0gICAgICAgIHdpdGggdXRpbC51bmNhY2hlKG5hbWUpLCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6Ci0gICAgICAgICAgICBtb2NrLmxvYWRfbW9kdWxlKG5hbWUpCi0KLSAgICBkZWYgdGVzdF9zb3VyY2VfcGF0aF9pc19Ob25lKHNlbGYpOgotICAgICAgICBuYW1lID0gJ21vZCcKLSAgICAgICAgbW9jayA9IFB5TG9hZGVyTW9jayh7bmFtZTogTm9uZX0pCi0gICAgICAgIHdpdGggdXRpbC51bmNhY2hlKG5hbWUpLCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6Ci0gICAgICAgICAgICBtb2NrLmxvYWRfbW9kdWxlKG5hbWUpCi0KLSAgICBkZWYgdGVzdF9nZXRfZmlsZW5hbWVfd2l0aF9zb3VyY2VfcGF0aChzZWxmKToKLSAgICAgICAgIyBnZXRfZmlsZW5hbWUoKSBzaG91bGQgcmV0dXJuIHdoYXQgc291cmNlX3BhdGgoKSByZXR1cm5zLgotICAgICAgICBuYW1lID0gJ21vZCcKLSAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbigncGF0aCcsICd0bycsICdzb3VyY2UnKQotICAgICAgICBtb2NrID0gUHlMb2FkZXJNb2NrKHtuYW1lOiBwYXRofSkKLSAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUobmFtZSk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suZ2V0X2ZpbGVuYW1lKG5hbWUpLCBwYXRoKQotCi0gICAgZGVmIHRlc3RfZ2V0X2ZpbGVuYW1lX25vX3NvdXJjZV9wYXRoKHNlbGYpOgotICAgICAgICAjIGdldF9maWxlbmFtZSgpIHNob3VsZCByYWlzZSBJbXBvcnRFcnJvciBpZiBzb3VyY2VfcGF0aCByZXR1cm5zIE5vbmUuCi0gICAgICAgIG5hbWUgPSAnbW9kJwotICAgICAgICBtb2NrID0gUHlMb2FkZXJNb2NrKHtuYW1lOiBOb25lfSkKLSAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUobmFtZSksIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKLSAgICAgICAgICAgIG1vY2suZ2V0X2ZpbGVuYW1lKG5hbWUpCi0KLQotY2xhc3MgUHlQeWNMb2FkZXJUZXN0cyhQeUxvYWRlclRlc3RzKToKLQotICAgICIiIlRlc3RzIGZvciBpbXBvcnRsaWIuYWJjLlB5UHljTG9hZGVyLiIiIgotCi0gICAgbW9ja2VyID0gUHlQeWNMb2FkZXJNb2NrCi0KLSAgICBAc291cmNlX3V0aWwud3JpdGVzX2J5dGVjb2RlX2ZpbGVzCi0gICAgZGVmIHZlcmlmeV9ieXRlY29kZShzZWxmLCBtb2NrLCBuYW1lKToKLSAgICAgICAgYXNzZXJ0IG5hbWUgaW4gbW9jay5tb2R1bGVfcGF0aHMKLSAgICAgICAgc2VsZi5hc3NlcnRJbihuYW1lLCBtb2NrLm1vZHVsZV9ieXRlY29kZSkKLSAgICAgICAgbWFnaWMgPSBtb2NrLm1vZHVsZV9ieXRlY29kZVtuYW1lXVs6NF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWdpYywgaW1wLmdldF9tYWdpYygpKQotICAgICAgICBtdGltZSA9IGltcG9ydGxpYi5fcl9sb25nKG1vY2subW9kdWxlX2J5dGVjb2RlW25hbWVdWzQ6OF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXRpbWUsIDEpCi0gICAgICAgIHNvdXJjZV9zaXplID0gbW9jay5tb2R1bGVfYnl0ZWNvZGVbbmFtZV1bODoxMl0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obW9jay5zb3VyY2UpICYgMHhGRkZGRkZGRiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnRsaWIuX3JfbG9uZyhzb3VyY2Vfc2l6ZSkpCi0gICAgICAgIGJjID0gbW9jay5tb2R1bGVfYnl0ZWNvZGVbbmFtZV1bMTI6XQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJjLCBtb2NrLmNvbXBpbGVfYmMobmFtZSkpCi0KLSAgICBkZWYgdGVzdF9tb2R1bGUoc2VsZik6Ci0gICAgICAgIG1vY2ssIG5hbWUgPSBzdXBlcigpLnRlc3RfbW9kdWxlKCkKLSAgICAgICAgc2VsZi52ZXJpZnlfYnl0ZWNvZGUobW9jaywgbmFtZSkKLQotICAgIGRlZiB0ZXN0X3BhY2thZ2Uoc2VsZik6Ci0gICAgICAgIG1vY2ssIG5hbWUgPSBzdXBlcigpLnRlc3RfcGFja2FnZSgpCi0gICAgICAgIHNlbGYudmVyaWZ5X2J5dGVjb2RlKG1vY2ssIG5hbWUpCi0KLSAgICBkZWYgdGVzdF9sYWNraW5nX3BhcmVudChzZWxmKToKLSAgICAgICAgbW9jaywgbmFtZSA9IHN1cGVyKCkudGVzdF9sYWNraW5nX3BhcmVudCgpCi0gICAgICAgIHNlbGYudmVyaWZ5X2J5dGVjb2RlKG1vY2ssIG5hbWUpCi0KLSAgICBkZWYgdGVzdF9tb2R1bGVfcmV1c2Uoc2VsZik6Ci0gICAgICAgIG1vY2ssIG5hbWUgPSBzdXBlcigpLnRlc3RfbW9kdWxlX3JldXNlKCkKLSAgICAgICAgc2VsZi52ZXJpZnlfYnl0ZWNvZGUobW9jaywgbmFtZSkKLQotICAgIGRlZiB0ZXN0X3N0YXRlX2FmdGVyX2ZhaWx1cmUoc2VsZik6Ci0gICAgICAgIHN1cGVyKCkudGVzdF9zdGF0ZV9hZnRlcl9mYWlsdXJlKCkKLQotICAgIGRlZiB0ZXN0X3VubG9hZGFibGUoc2VsZik6Ci0gICAgICAgIHN1cGVyKCkudGVzdF91bmxvYWRhYmxlKCkKLQotCi1jbGFzcyBQeVB5Y0xvYWRlckludGVyZmFjZVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgICIiIlRlc3QgZm9yIHRoZSBpbnRlcmZhY2Ugb2YgaW1wb3J0bGliLmFiYy5QeVB5Y0xvYWRlci4iIiIKLQotICAgIGRlZiBnZXRfZmlsZW5hbWVfY2hlY2soc2VsZiwgc3JjX3BhdGgsIGJjX3BhdGgsIGV4cGVjdCk6Ci0gICAgICAgIG5hbWUgPSAnbW9kJwotICAgICAgICBtb2NrID0gUHlQeWNMb2FkZXJNb2NrKHtuYW1lOiBzcmNfcGF0aH0sIHtuYW1lOiB7J3BhdGgnOiBiY19wYXRofX0pCi0gICAgICAgIHdpdGggdXRpbC51bmNhY2hlKG5hbWUpOgotICAgICAgICAgICAgYXNzZXJ0IG1vY2suc291cmNlX3BhdGgobmFtZSkgPT0gc3JjX3BhdGgKLSAgICAgICAgICAgIGFzc2VydCBtb2NrLmJ5dGVjb2RlX3BhdGgobmFtZSkgPT0gYmNfcGF0aAotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmdldF9maWxlbmFtZShuYW1lKSwgZXhwZWN0KQotCi0gICAgZGVmIHRlc3RfZmlsZW5hbWVfd2l0aF9zb3VyY2VfYmMoc2VsZik6Ci0gICAgICAgICMgV2hlbiBzb3VyY2UgYW5kIGJ5dGVjb2RlIHBhdGhzIHByZXNlbnQsIHJldHVybiB0aGUgc291cmNlIHBhdGguCi0gICAgICAgIHNlbGYuZ2V0X2ZpbGVuYW1lX2NoZWNrKCdzb3VyY2VfcGF0aCcsICdiY19wYXRoJywgJ3NvdXJjZV9wYXRoJykKLQotICAgIGRlZiB0ZXN0X2ZpbGVuYW1lX3dpdGhfc291cmNlX25vX2JjKHNlbGYpOgotICAgICAgICAjIFdpdGggc291cmNlIGJ1dCBubyBiYywgcmV0dXJuIHNvdXJjZSBwYXRoLgotICAgICAgICBzZWxmLmdldF9maWxlbmFtZV9jaGVjaygnc291cmNlX3BhdGgnLCBOb25lLCAnc291cmNlX3BhdGgnKQotCi0gICAgZGVmIHRlc3RfZmlsZW5hbWVfd2l0aF9ub19zb3VyY2VfYmMoc2VsZik6Ci0gICAgICAgICMgV2l0aCBub3Qgc291cmNlIGJ1dCBiYywgcmV0dXJuIHRoZSBiYyBwYXRoLgotICAgICAgICBzZWxmLmdldF9maWxlbmFtZV9jaGVjayhOb25lLCAnYmNfcGF0aCcsICdiY19wYXRoJykKLQotICAgIGRlZiB0ZXN0X2ZpbGVuYW1lX3dpdGhfbm9fc291cmNlX29yX2JjKHNlbGYpOgotICAgICAgICAjIFdpdGggbm8gc291cmNlIG9yIGJjLCByYWlzZSBJbXBvcnRFcnJvci4KLSAgICAgICAgbmFtZSA9ICdtb2QnCi0gICAgICAgIG1vY2sgPSBQeVB5Y0xvYWRlck1vY2soe25hbWU6IE5vbmV9LCB7bmFtZTogeydwYXRoJzogTm9uZX19KQotICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKSwgc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpOgotICAgICAgICAgICAgbW9jay5nZXRfZmlsZW5hbWUobmFtZSkKLQotCi1jbGFzcyBTa2lwV3JpdGluZ0J5dGVjb2RlVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgIiIiVGVzdCB0aGF0IGJ5dGVjb2RlIGlzIHByb3Blcmx5IGhhbmRsZWQgYmFzZWQgb24KLSAgICBzeXMuZG9udF93cml0ZV9ieXRlY29kZS4iIiIKLQotICAgIEBzb3VyY2VfdXRpbC53cml0ZXNfYnl0ZWNvZGVfZmlsZXMKLSAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwgZG9udF93cml0ZV9ieXRlY29kZSk6Ci0gICAgICAgIG5hbWUgPSAnbW9kJwotICAgICAgICBtb2NrID0gUHlQeWNMb2FkZXJNb2NrKHtuYW1lOiBvcy5wYXRoLmpvaW4oJ3BhdGgnLCAndG8nLCAnbW9kJyl9KQotICAgICAgICBzeXMuZG9udF93cml0ZV9ieXRlY29kZSA9IGRvbnRfd3JpdGVfYnl0ZWNvZGUKLSAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUobmFtZSk6Ci0gICAgICAgICAgICBtb2NrLmxvYWRfbW9kdWxlKG5hbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QobmFtZSBpbiBtb2NrLm1vZHVsZV9ieXRlY29kZSwgZG9udF93cml0ZV9ieXRlY29kZSkKLQotICAgIGRlZiB0ZXN0X25vX2J5dGVjb2RlX3dyaXR0ZW4oc2VsZik6Ci0gICAgICAgIHNlbGYucnVuX3Rlc3QoVHJ1ZSkKLQotICAgIGRlZiB0ZXN0X2J5dGVjb2RlX3dyaXR0ZW4oc2VsZik6Ci0gICAgICAgIHNlbGYucnVuX3Rlc3QoRmFsc2UpCi0KLQotY2xhc3MgUmVnZW5lcmF0ZWRCeXRlY29kZVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgICIiIlRlc3QgdGhhdCBieXRlY29kZSBpcyByZWdlbmVyYXRlZCBhcyBleHBlY3RlZC4iIiIKLQotICAgIEBzb3VyY2VfdXRpbC53cml0ZXNfYnl0ZWNvZGVfZmlsZXMKLSAgICBkZWYgdGVzdF9kaWZmZXJlbnRfbWFnaWMoc2VsZik6Ci0gICAgICAgICMgQSBkaWZmZXJlbnQgbWFnaWMgbnVtYmVyIHNob3VsZCBsZWFkIHRvIG5ldyBieXRlY29kZS4KLSAgICAgICAgbmFtZSA9ICdtb2QnCi0gICAgICAgIGJhZF9tYWdpYyA9IGInXHgwMFx4MDBceDAwXHgwMCcKLSAgICAgICAgYXNzZXJ0IGJhZF9tYWdpYyAhPSBpbXAuZ2V0X21hZ2ljKCkKLSAgICAgICAgbW9jayA9IFB5UHljTG9hZGVyTW9jayh7bmFtZTogb3MucGF0aC5qb2luKCdwYXRoJywgJ3RvJywgJ21vZCcpfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge25hbWU6IHsncGF0aCc6IG9zLnBhdGguam9pbigncGF0aCcsICd0bycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vZC5ieXRlY29kZScpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWdpYyc6IGJhZF9tYWdpY319KQotICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKToKLSAgICAgICAgICAgIG1vY2subG9hZF9tb2R1bGUobmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbihuYW1lLCBtb2NrLm1vZHVsZV9ieXRlY29kZSkKLSAgICAgICAgbWFnaWMgPSBtb2NrLm1vZHVsZV9ieXRlY29kZVtuYW1lXVs6NF0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWdpYywgaW1wLmdldF9tYWdpYygpKQotCi0gICAgQHNvdXJjZV91dGlsLndyaXRlc19ieXRlY29kZV9maWxlcwotICAgIGRlZiB0ZXN0X29sZF9tdGltZShzZWxmKToKLSAgICAgICAgIyBCeXRlY29kZSB3aXRoIGFuIG9sZGVyIG10aW1lIHNob3VsZCBiZSByZWdlbmVyYXRlZC4KLSAgICAgICAgbmFtZSA9ICdtb2QnCi0gICAgICAgIG9sZF9tdGltZSA9IFB5UHljTG9hZGVyTW9jay5kZWZhdWx0X210aW1lIC0gMQotICAgICAgICBtb2NrID0gUHlQeWNMb2FkZXJNb2NrKHtuYW1lOiBvcy5wYXRoLmpvaW4oJ3BhdGgnLCAndG8nLCAnbW9kJyl9LAotICAgICAgICAgICAgICAgIHtuYW1lOiB7J3BhdGgnOiAncGF0aC90by9tb2QuYnl0ZWNvZGUnLCAnbXRpbWUnOiBvbGRfbXRpbWV9fSkKLSAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUobmFtZSk6Ci0gICAgICAgICAgICBtb2NrLmxvYWRfbW9kdWxlKG5hbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4obmFtZSwgbW9jay5tb2R1bGVfYnl0ZWNvZGUpCi0gICAgICAgIG10aW1lID0gaW1wb3J0bGliLl9yX2xvbmcobW9jay5tb2R1bGVfYnl0ZWNvZGVbbmFtZV1bNDo4XSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdGltZSwgUHlQeWNMb2FkZXJNb2NrLmRlZmF1bHRfbXRpbWUpCi0KLQotY2xhc3MgQmFkQnl0ZWNvZGVGYWlsdXJlVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgIiIiVGVzdCBpbXBvcnQgZmFpbHVyZXMgd2hlbiB0aGVyZSBpcyBubyBzb3VyY2UgYW5kIHBhcnRzIG9mIHRoZSBieXRlY29kZQotICAgIGlzIGJhZC4iIiIKLQotICAgIGRlZiB0ZXN0X2JhZF9tYWdpYyhzZWxmKToKLSAgICAgICAgIyBBIGJhZCBtYWdpYyBudW1iZXIgc2hvdWxkIGxlYWQgdG8gYW4gSW1wb3J0RXJyb3IuCi0gICAgICAgIG5hbWUgPSAnbW9kJwotICAgICAgICBiYWRfbWFnaWMgPSBiJ1x4MDBceDAwXHgwMFx4MDAnCi0gICAgICAgIGJjID0ge25hbWU6Ci0gICAgICAgICAgICAgICAgeydwYXRoJzogb3MucGF0aC5qb2luKCdwYXRoJywgJ3RvJywgJ21vZCcpLAotICAgICAgICAgICAgICAgICAnbWFnaWMnOiBiYWRfbWFnaWN9fQotICAgICAgICBtb2NrID0gUHlQeWNMb2FkZXJNb2NrKHtuYW1lOiBOb25lfSwgYmMpCi0gICAgICAgIHdpdGggdXRpbC51bmNhY2hlKG5hbWUpLCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcikgYXMgY206Ci0gICAgICAgICAgICBtb2NrLmxvYWRfbW9kdWxlKG5hbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLm5hbWUsIG5hbWUpCi0KLSAgICBkZWYgdGVzdF9ub19ieXRlY29kZShzZWxmKToKLSAgICAgICAgIyBNaXNzaW5nIGNvZGUgb2JqZWN0IGJ5dGVjb2RlIHNob3VsZCBsZWFkIHRvIGFuIEVPRkVycm9yLgotICAgICAgICBuYW1lID0gJ21vZCcKLSAgICAgICAgYmMgPSB7bmFtZTogeydwYXRoJzogb3MucGF0aC5qb2luKCdwYXRoJywgJ3RvJywgJ21vZCcpLCAnYmMnOiBiJyd9fQotICAgICAgICBtb2NrID0gUHlQeWNMb2FkZXJNb2NrKHtuYW1lOiBOb25lfSwgYmMpCi0gICAgICAgIHdpdGggdXRpbC51bmNhY2hlKG5hbWUpLCBzZWxmLmFzc2VydFJhaXNlcyhFT0ZFcnJvcik6Ci0gICAgICAgICAgICBtb2NrLmxvYWRfbW9kdWxlKG5hbWUpCi0KLSAgICBkZWYgdGVzdF9iYWRfYnl0ZWNvZGUoc2VsZik6Ci0gICAgICAgICMgTWFsZm9ybWVkIGNvZGUgb2JqZWN0IGJ5dGVjb2RlIHNob3VsZCBsZWFkIHRvIGEgVmFsdWVFcnJvci4KLSAgICAgICAgbmFtZSA9ICdtb2QnCi0gICAgICAgIGJjID0ge25hbWU6IHsncGF0aCc6IG9zLnBhdGguam9pbigncGF0aCcsICd0bycsICdtb2QnKSwgJ2JjJzogYicxMjM0J319Ci0gICAgICAgIG1vY2sgPSBQeVB5Y0xvYWRlck1vY2soe25hbWU6IE5vbmV9LCBiYykKLSAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUobmFtZSksIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgotICAgICAgICAgICAgbW9jay5sb2FkX21vZHVsZShuYW1lKQotCi0KLWRlZiByYWlzZV9JbXBvcnRFcnJvcigqYXJncywgKiprd2FyZ3MpOgotICAgIHJhaXNlIEltcG9ydEVycm9yCi0KLWNsYXNzIE1pc3NpbmdQYXRoc1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgICIiIlRlc3Qgd2hhdCBoYXBwZW5zIHdoZW4gYSBzb3VyY2Ugb3IgYnl0ZWNvZGUgcGF0aCBkb2VzIG5vdCBleGlzdCAoZWl0aGVyCi0gICAgZnJvbSAqX3BhdGggcmV0dXJuaW5nIE5vbmUgb3IgcmFpc2luZyBJbXBvcnRFcnJvcikuIiIiCi0KLSAgICBkZWYgdGVzdF9zb3VyY2VfcGF0aF9Ob25lKHNlbGYpOgotICAgICAgICAjIEJ5dGVjb2RlIHNob3VsZCBiZSB1c2VkIHdoZW4gc291cmNlX3BhdGggcmV0dXJucyBOb25lLCBhbG9uZyB3aXRoCi0gICAgICAgICMgX19maWxlX18gYmVpbmcgc2V0IHRvIHRoZSBieXRlY29kZSBwYXRoLgotICAgICAgICBuYW1lID0gJ21vZCcKLSAgICAgICAgYnl0ZWNvZGVfcGF0aCA9ICdwYXRoL3RvL21vZCcKLSAgICAgICAgbW9jayA9IFB5UHljTG9hZGVyTW9jayh7bmFtZTogTm9uZX0sIHtuYW1lOiB7J3BhdGgnOiBieXRlY29kZV9wYXRofX0pCi0gICAgICAgIHdpdGggdXRpbC51bmNhY2hlKG5hbWUpOgotICAgICAgICAgICAgbW9kdWxlID0gbW9jay5sb2FkX21vZHVsZShuYW1lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX2ZpbGVfXywgYnl0ZWNvZGVfcGF0aCkKLQotICAgICMgVGVzdGluZyBmb3IgYnl0ZWNvZGVfcGF0aCByZXR1cm5pbmcgTm9uZSBoYW5kbGVkIGJ5IGFsbCB0ZXN0cyB3aGVyZSBubwotICAgICMgYnl0ZWNvZGUgaW5pdGlhbGx5IGV4aXN0cy4KLQotICAgIGRlZiB0ZXN0X2FsbF9wYXRoc19Ob25lKHNlbGYpOgotICAgICAgICAjIElmIGFsbCAqX3BhdGggbWV0aG9kcyByZXR1cm4gTm9uZSwgcmFpc2UgSW1wb3J0RXJyb3IuCi0gICAgICAgIG5hbWUgPSAnbW9kJwotICAgICAgICBtb2NrID0gUHlQeWNMb2FkZXJNb2NrKHtuYW1lOiBOb25lfSkKLSAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUobmFtZSksIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKSBhcyBjbToKLSAgICAgICAgICAgIG1vY2subG9hZF9tb2R1bGUobmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24ubmFtZSwgbmFtZSkKLQotICAgIGRlZiB0ZXN0X3NvdXJjZV9wYXRoX0ltcG9ydEVycm9yKHNlbGYpOgotICAgICAgICAjIEFuIEltcG9ydEVycm9yIGZyb20gc291cmNlX3BhdGggc2hvdWxkIHRyaWdnZXIgYW4gSW1wb3J0RXJyb3IuCi0gICAgICAgIG5hbWUgPSAnbW9kJwotICAgICAgICBtb2NrID0gUHlQeWNMb2FkZXJNb2NrKHt9LCB7bmFtZTogeydwYXRoJzogb3MucGF0aC5qb2luKCdwYXRoJywgJ3RvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9kJyl9fSkKLSAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUobmFtZSksIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKLSAgICAgICAgICAgIG1vY2subG9hZF9tb2R1bGUobmFtZSkKLQotICAgIGRlZiB0ZXN0X2J5dGVjb2RlX3BhdGhfSW1wb3J0RXJyb3Ioc2VsZik6Ci0gICAgICAgICMgQW4gSW1wb3J0RXJyb3IgZnJvbSBieXRlY29kZV9wYXRoIHNob3VsZCB0cmlnZ2VyIGFuIEltcG9ydEVycm9yLgotICAgICAgICBuYW1lID0gJ21vZCcKLSAgICAgICAgbW9jayA9IFB5UHljTG9hZGVyTW9jayh7bmFtZTogb3MucGF0aC5qb2luKCdwYXRoJywgJ3RvJywgJ21vZCcpfSkKLSAgICAgICAgYmFkX21ldGggPSB0eXBlcy5NZXRob2RUeXBlKHJhaXNlX0ltcG9ydEVycm9yLCBtb2NrKQotICAgICAgICBtb2NrLmJ5dGVjb2RlX3BhdGggPSBiYWRfbWV0aAotICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKSwgc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgbW9jay5sb2FkX21vZHVsZShuYW1lKQotCi0KLWNsYXNzIFNvdXJjZUxvYWRlclRlc3RIYXJuZXNzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRlZiBzZXRVcChzZWxmLCAqLCBpc19wYWNrYWdlPVRydWUsICoqa3dhcmdzKToKLSAgICAgICAgc2VsZi5wYWNrYWdlID0gJ3BrZycKLSAgICAgICAgaWYgaXNfcGFja2FnZToKLSAgICAgICAgICAgIHNlbGYucGF0aCA9IG9zLnBhdGguam9pbihzZWxmLnBhY2thZ2UsICdfX2luaXRfXy5weScpCi0gICAgICAgICAgICBzZWxmLm5hbWUgPSBzZWxmLnBhY2thZ2UKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG1vZHVsZV9uYW1lID0gJ21vZCcKLSAgICAgICAgICAgIHNlbGYucGF0aCA9IG9zLnBhdGguam9pbihzZWxmLnBhY2thZ2UsICcuJy5qb2luKFsnbW9kJywgJ3B5J10pKQotICAgICAgICAgICAgc2VsZi5uYW1lID0gJy4nLmpvaW4oW3NlbGYucGFja2FnZSwgbW9kdWxlX25hbWVdKQotICAgICAgICBzZWxmLmNhY2hlZCA9IGltcC5jYWNoZV9mcm9tX3NvdXJjZShzZWxmLnBhdGgpCi0gICAgICAgIHNlbGYubG9hZGVyID0gc2VsZi5sb2FkZXJfbW9jayhzZWxmLnBhdGgsICoqa3dhcmdzKQotCi0gICAgZGVmIHZlcmlmeV9tb2R1bGUoc2VsZiwgbW9kdWxlKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19uYW1lX18sIHNlbGYubmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19maWxlX18sIHNlbGYucGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19jYWNoZWRfXywgc2VsZi5jYWNoZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLl9fcGFja2FnZV9fLCBzZWxmLnBhY2thZ2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLl9fbG9hZGVyX18sIHNlbGYubG9hZGVyKQotICAgICAgICB2YWx1ZXMgPSBtb2R1bGUuXy5zcGxpdCgnOjonKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZhbHVlc1swXSwgc2VsZi5uYW1lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZhbHVlc1sxXSwgc2VsZi5wYXRoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZhbHVlc1syXSwgc2VsZi5jYWNoZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmFsdWVzWzNdLCBzZWxmLnBhY2thZ2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmFsdWVzWzRdLCByZXByKHNlbGYubG9hZGVyKSkKLQotICAgIGRlZiB2ZXJpZnlfY29kZShzZWxmLCBjb2RlX29iamVjdCk6Ci0gICAgICAgIG1vZHVsZSA9IGltcC5uZXdfbW9kdWxlKHNlbGYubmFtZSkKLSAgICAgICAgbW9kdWxlLl9fZmlsZV9fID0gc2VsZi5wYXRoCi0gICAgICAgIG1vZHVsZS5fX2NhY2hlZF9fID0gc2VsZi5jYWNoZWQKLSAgICAgICAgbW9kdWxlLl9fcGFja2FnZV9fID0gc2VsZi5wYWNrYWdlCi0gICAgICAgIG1vZHVsZS5fX2xvYWRlcl9fID0gc2VsZi5sb2FkZXIKLSAgICAgICAgbW9kdWxlLl9fcGF0aF9fID0gW10KLSAgICAgICAgZXhlYyhjb2RlX29iamVjdCwgbW9kdWxlLl9fZGljdF9fKQotICAgICAgICBzZWxmLnZlcmlmeV9tb2R1bGUobW9kdWxlKQotCi0KLWNsYXNzIFNvdXJjZU9ubHlMb2FkZXJUZXN0cyhTb3VyY2VMb2FkZXJUZXN0SGFybmVzcyk6Ci0KLSAgICAiIiJUZXN0IGltcG9ydGxpYi5hYmMuU291cmNlTG9hZGVyIGZvciBzb3VyY2Utb25seSBsb2FkaW5nLgotCi0gICAgUmVsb2FkIHRlc3RpbmcgaXMgc3Vic3VtZWQgYnkgdGhlIHRlc3RzIGZvcgotICAgIGltcG9ydGxpYi51dGlsLm1vZHVsZV9mb3JfbG9hZGVyLgotCi0gICAgIiIiCi0KLSAgICBsb2FkZXJfbW9jayA9IFNvdXJjZU9ubHlMb2FkZXJNb2NrCi0KLSAgICBkZWYgdGVzdF9nZXRfc291cmNlKHNlbGYpOgotICAgICAgICAjIFZlcmlmeSB0aGUgc291cmNlIGNvZGUgaXMgcmV0dXJuZWQgYXMgYSBzdHJpbmcuCi0gICAgICAgICMgSWYgYW4gSU9FcnJvciBpcyByYWlzZWQgYnkgZ2V0X2RhdGEgdGhlbiByYWlzZSBJbXBvcnRFcnJvci4KLSAgICAgICAgZXhwZWN0ZWRfc291cmNlID0gc2VsZi5sb2FkZXIuc291cmNlLmRlY29kZSgndXRmLTgnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubG9hZGVyLmdldF9zb3VyY2Uoc2VsZi5uYW1lKSwgZXhwZWN0ZWRfc291cmNlKQotICAgICAgICBkZWYgcmFpc2VfSU9FcnJvcihwYXRoKToKLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IKLSAgICAgICAgc2VsZi5sb2FkZXIuZ2V0X2RhdGEgPSByYWlzZV9JT0Vycm9yCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpIGFzIGNtOgotICAgICAgICAgICAgc2VsZi5sb2FkZXIuZ2V0X3NvdXJjZShzZWxmLm5hbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLm5hbWUsIHNlbGYubmFtZSkKLQotICAgIGRlZiB0ZXN0X2lzX3BhY2thZ2Uoc2VsZik6Ci0gICAgICAgICMgUHJvcGVybHkgZGV0ZWN0IHdoZW4gbG9hZGluZyBhIHBhY2thZ2UuCi0gICAgICAgIHNlbGYuc2V0VXAoaXNfcGFja2FnZT1GYWxzZSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLmxvYWRlci5pc19wYWNrYWdlKHNlbGYubmFtZSkpCi0gICAgICAgIHNlbGYuc2V0VXAoaXNfcGFja2FnZT1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5sb2FkZXIuaXNfcGFja2FnZShzZWxmLm5hbWUpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYubG9hZGVyLmlzX3BhY2thZ2Uoc2VsZi5uYW1lICsgJy5fX2luaXRfXycpKQotCi0gICAgZGVmIHRlc3RfZ2V0X2NvZGUoc2VsZik6Ci0gICAgICAgICMgVmVyaWZ5IHRoZSBjb2RlIG9iamVjdCBpcyBjcmVhdGVkLgotICAgICAgICBjb2RlX29iamVjdCA9IHNlbGYubG9hZGVyLmdldF9jb2RlKHNlbGYubmFtZSkKLSAgICAgICAgc2VsZi52ZXJpZnlfY29kZShjb2RlX29iamVjdCkKLQotICAgIGRlZiB0ZXN0X2xvYWRfbW9kdWxlKHNlbGYpOgotICAgICAgICAjIExvYWRpbmcgYSBtb2R1bGUgc2hvdWxkIHNldCBfX25hbWVfXywgX19sb2FkZXJfXywgX19wYWNrYWdlX18sCi0gICAgICAgICMgX19wYXRoX18gKGZvciBwYWNrYWdlcyksIF9fZmlsZV9fLCBhbmQgX19jYWNoZWRfXy4KLSAgICAgICAgIyBUaGUgbW9kdWxlIHNob3VsZCBhbHNvIGJlIHB1dCBpbnRvIHN5cy5tb2R1bGVzLgotICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShzZWxmLm5hbWUpOgotICAgICAgICAgICAgbW9kdWxlID0gc2VsZi5sb2FkZXIubG9hZF9tb2R1bGUoc2VsZi5uYW1lKQotICAgICAgICAgICAgc2VsZi52ZXJpZnlfbW9kdWxlKG1vZHVsZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLl9fcGF0aF9fLCBbb3MucGF0aC5kaXJuYW1lKHNlbGYucGF0aCldKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihzZWxmLm5hbWUsIHN5cy5tb2R1bGVzKQotCi0gICAgZGVmIHRlc3RfcGFja2FnZV9zZXR0aW5ncyhzZWxmKToKLSAgICAgICAgIyBfX3BhY2thZ2VfXyBuZWVkcyB0byBiZSBzZXQsIHdoaWxlIF9fcGF0aF9fIGlzIHNldCBvbiBpZiB0aGUgbW9kdWxlCi0gICAgICAgICMgaXMgYSBwYWNrYWdlLgotICAgICAgICAjIFRlc3RpbmcgdGhlIHZhbHVlcyBmb3IgYSBwYWNrYWdlIGFyZSBjb3ZlcmVkIGJ5IHRlc3RfbG9hZF9tb2R1bGUuCi0gICAgICAgIHNlbGYuc2V0VXAoaXNfcGFja2FnZT1GYWxzZSkKLSAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUoc2VsZi5uYW1lKToKLSAgICAgICAgICAgIG1vZHVsZSA9IHNlbGYubG9hZGVyLmxvYWRfbW9kdWxlKHNlbGYubmFtZSkKLSAgICAgICAgICAgIHNlbGYudmVyaWZ5X21vZHVsZShtb2R1bGUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IGhhc2F0dHIobW9kdWxlLCAnX19wYXRoX18nKSkKLQotICAgIGRlZiB0ZXN0X2dldF9zb3VyY2VfZW5jb2Rpbmcoc2VsZik6Ci0gICAgICAgICMgU291cmNlIGlzIGNvbnNpZGVyZWQgZW5jb2RlZCBpbiBVVEYtOCBieSBkZWZhdWx0IHVubGVzcyBvdGhlcndpc2UKLSAgICAgICAgIyBzcGVjaWZpZWQgYnkgYW4gZW5jb2RpbmcgbGluZS4KLSAgICAgICAgc291cmNlID0gIl8gPSAnw7wnIgotICAgICAgICBzZWxmLmxvYWRlci5zb3VyY2UgPSBzb3VyY2UuZW5jb2RlKCd1dGYtOCcpCi0gICAgICAgIHJldHVybmVkX3NvdXJjZSA9IHNlbGYubG9hZGVyLmdldF9zb3VyY2Uoc2VsZi5uYW1lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybmVkX3NvdXJjZSwgc291cmNlKQotICAgICAgICBzb3VyY2UgPSAiIyBjb2Rpbmc6IGxhdGluLTFcbl8gPSDDvCIKLSAgICAgICAgc2VsZi5sb2FkZXIuc291cmNlID0gc291cmNlLmVuY29kZSgnbGF0aW4tMScpCi0gICAgICAgIHJldHVybmVkX3NvdXJjZSA9IHNlbGYubG9hZGVyLmdldF9zb3VyY2Uoc2VsZi5uYW1lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybmVkX3NvdXJjZSwgc291cmNlKQotCi0KLUB1bml0dGVzdC5za2lwSWYoc3lzLmRvbnRfd3JpdGVfYnl0ZWNvZGUsICJzeXMuZG9udF93cml0ZV9ieXRlY29kZSBpcyB0cnVlIikKLWNsYXNzIFNvdXJjZUxvYWRlckJ5dGVjb2RlVGVzdHMoU291cmNlTG9hZGVyVGVzdEhhcm5lc3MpOgotCi0gICAgIiIiVGVzdCBpbXBvcnRsaWIuYWJjLlNvdXJjZUxvYWRlcidzIHVzZSBvZiBieXRlY29kZS4KLQotICAgIFNvdXJjZS1vbmx5IHRlc3RpbmcgaGFuZGxlZCBieSBTb3VyY2VPbmx5TG9hZGVyVGVzdHMuCi0KLSAgICAiIiIKLQotICAgIGxvYWRlcl9tb2NrID0gU291cmNlTG9hZGVyTW9jawotCi0gICAgZGVmIHZlcmlmeV9jb2RlKHNlbGYsIGNvZGVfb2JqZWN0LCAqLCBieXRlY29kZV93cml0dGVuPUZhbHNlKToKLSAgICAgICAgc3VwZXIoKS52ZXJpZnlfY29kZShjb2RlX29iamVjdCkKLSAgICAgICAgaWYgYnl0ZWNvZGVfd3JpdHRlbjoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5jYWNoZWQsIHNlbGYubG9hZGVyLndyaXR0ZW4pCi0gICAgICAgICAgICBkYXRhID0gYnl0ZWFycmF5KGltcC5nZXRfbWFnaWMoKSkKLSAgICAgICAgICAgIGRhdGEuZXh0ZW5kKGltcG9ydGxpYi5fd19sb25nKHNlbGYubG9hZGVyLnNvdXJjZV9tdGltZSkpCi0gICAgICAgICAgICBkYXRhLmV4dGVuZChpbXBvcnRsaWIuX3dfbG9uZyhzZWxmLmxvYWRlci5zb3VyY2Vfc2l6ZSkpCi0gICAgICAgICAgICBkYXRhLmV4dGVuZChtYXJzaGFsLmR1bXBzKGNvZGVfb2JqZWN0KSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5sb2FkZXIud3JpdHRlbltzZWxmLmNhY2hlZF0sIGJ5dGVzKGRhdGEpKQotCi0gICAgZGVmIHRlc3RfY29kZV93aXRoX2V2ZXJ5dGhpbmcoc2VsZik6Ci0gICAgICAgICMgV2hlbiBldmVyeXRoaW5nIHNob3VsZCB3b3JrLgotICAgICAgICBjb2RlX29iamVjdCA9IHNlbGYubG9hZGVyLmdldF9jb2RlKHNlbGYubmFtZSkKLSAgICAgICAgc2VsZi52ZXJpZnlfY29kZShjb2RlX29iamVjdCkKLQotICAgIGRlZiB0ZXN0X25vX2J5dGVjb2RlKHNlbGYpOgotICAgICAgICAjIElmIG5vIGJ5dGVjb2RlIGV4aXN0cyB0aGVuIG1vdmUgb24gdG8gdGhlIHNvdXJjZS4KLSAgICAgICAgc2VsZi5sb2FkZXIuYnl0ZWNvZGVfcGF0aCA9ICI8ZG9lcyBub3QgZXhpc3Q+IgotICAgICAgICAjIFNhbml0eSBjaGVjawotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IpOgotICAgICAgICAgICAgYnl0ZWNvZGVfcGF0aCA9IGltcC5jYWNoZV9mcm9tX3NvdXJjZShzZWxmLnBhdGgpCi0gICAgICAgICAgICBzZWxmLmxvYWRlci5nZXRfZGF0YShieXRlY29kZV9wYXRoKQotICAgICAgICBjb2RlX29iamVjdCA9IHNlbGYubG9hZGVyLmdldF9jb2RlKHNlbGYubmFtZSkKLSAgICAgICAgc2VsZi52ZXJpZnlfY29kZShjb2RlX29iamVjdCwgYnl0ZWNvZGVfd3JpdHRlbj1UcnVlKQotCi0gICAgZGVmIHRlc3RfY29kZV9iYWRfdGltZXN0YW1wKHNlbGYpOgotICAgICAgICAjIEJ5dGVjb2RlIGlzIG9ubHkgdXNlZCB3aGVuIHRoZSB0aW1lc3RhbXAgbWF0Y2hlcyB0aGUgc291cmNlIEVYQUNUTFkuCi0gICAgICAgIGZvciBzb3VyY2VfbXRpbWUgaW4gKDAsIDIpOgotICAgICAgICAgICAgYXNzZXJ0IHNvdXJjZV9tdGltZSAhPSBzZWxmLmxvYWRlci5zb3VyY2VfbXRpbWUKLSAgICAgICAgICAgIG9yaWdpbmFsID0gc2VsZi5sb2FkZXIuc291cmNlX210aW1lCi0gICAgICAgICAgICBzZWxmLmxvYWRlci5zb3VyY2VfbXRpbWUgPSBzb3VyY2VfbXRpbWUKLSAgICAgICAgICAgICMgSWYgYnl0ZWNvZGUgaXMgdXNlZCB0aGVuIEVPRkVycm9yIHdvdWxkIGJlIHJhaXNlZCBieSBtYXJzaGFsLgotICAgICAgICAgICAgc2VsZi5sb2FkZXIuYnl0ZWNvZGUgPSBzZWxmLmxvYWRlci5ieXRlY29kZVs4Ol0KLSAgICAgICAgICAgIGNvZGVfb2JqZWN0ID0gc2VsZi5sb2FkZXIuZ2V0X2NvZGUoc2VsZi5uYW1lKQotICAgICAgICAgICAgc2VsZi52ZXJpZnlfY29kZShjb2RlX29iamVjdCwgYnl0ZWNvZGVfd3JpdHRlbj1UcnVlKQotICAgICAgICAgICAgc2VsZi5sb2FkZXIuc291cmNlX210aW1lID0gb3JpZ2luYWwKLQotICAgIGRlZiB0ZXN0X2NvZGVfYmFkX21hZ2ljKHNlbGYpOgotICAgICAgICAjIFNraXAgb3ZlciBieXRlY29kZSB3aXRoIGEgYmFkIG1hZ2ljIG51bWJlci4KLSAgICAgICAgc2VsZi5zZXRVcChtYWdpYz1iJzAwMDAnKQotICAgICAgICAjIElmIGJ5dGVjb2RlIGlzIHVzZWQgdGhlbiBFT0ZFcnJvciB3b3VsZCBiZSByYWlzZWQgYnkgbWFyc2hhbC4KLSAgICAgICAgc2VsZi5sb2FkZXIuYnl0ZWNvZGUgPSBzZWxmLmxvYWRlci5ieXRlY29kZVs4Ol0KLSAgICAgICAgY29kZV9vYmplY3QgPSBzZWxmLmxvYWRlci5nZXRfY29kZShzZWxmLm5hbWUpCi0gICAgICAgIHNlbGYudmVyaWZ5X2NvZGUoY29kZV9vYmplY3QsIGJ5dGVjb2RlX3dyaXR0ZW49VHJ1ZSkKLQotICAgIGRlZiB0ZXN0X2RvbnRfd3JpdGVfYnl0ZWNvZGUoc2VsZik6Ci0gICAgICAgICMgQnl0ZWNvZGUgaXMgbm90IHdyaXR0ZW4gaWYgc3lzLmRvbnRfd3JpdGVfYnl0ZWNvZGUgaXMgdHJ1ZS4KLSAgICAgICAgIyBDYW4gYXNzdW1lIGl0IGlzIGZhbHNlIGFscmVhZHkgdGhhbmtzIHRvIHRoZSBza2lwSWYgY2xhc3MgZGVjb3JhdG9yLgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzeXMuZG9udF93cml0ZV9ieXRlY29kZSA9IFRydWUKLSAgICAgICAgICAgIHNlbGYubG9hZGVyLmJ5dGVjb2RlX3BhdGggPSAiPGRvZXMgbm90IGV4aXN0PiIKLSAgICAgICAgICAgIGNvZGVfb2JqZWN0ID0gc2VsZi5sb2FkZXIuZ2V0X2NvZGUoc2VsZi5uYW1lKQotICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbihzZWxmLmNhY2hlZCwgc2VsZi5sb2FkZXIud3JpdHRlbikKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHN5cy5kb250X3dyaXRlX2J5dGVjb2RlID0gRmFsc2UKLQotICAgIGRlZiB0ZXN0X25vX3NldF9kYXRhKHNlbGYpOgotICAgICAgICAjIElmIHNldF9kYXRhIGlzIG5vdCBkZWZpbmVkLCBvbmUgY2FuIHN0aWxsIHJlYWQgYnl0ZWNvZGUuCi0gICAgICAgIHNlbGYuc2V0VXAobWFnaWM9YicwMDAwJykKLSAgICAgICAgb3JpZ2luYWxfc2V0X2RhdGEgPSBzZWxmLmxvYWRlci5fX2NsYXNzX18uc2V0X2RhdGEKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZGVsIHNlbGYubG9hZGVyLl9fY2xhc3NfXy5zZXRfZGF0YQotICAgICAgICAgICAgY29kZV9vYmplY3QgPSBzZWxmLmxvYWRlci5nZXRfY29kZShzZWxmLm5hbWUpCi0gICAgICAgICAgICBzZWxmLnZlcmlmeV9jb2RlKGNvZGVfb2JqZWN0KQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5sb2FkZXIuX19jbGFzc19fLnNldF9kYXRhID0gb3JpZ2luYWxfc2V0X2RhdGEKLQotICAgIGRlZiB0ZXN0X3NldF9kYXRhX3JhaXNlc19leGNlcHRpb25zKHNlbGYpOgotICAgICAgICAjIFJhaXNpbmcgTm90SW1wbGVtZW50ZWRFcnJvciBvciBJT0Vycm9yIGlzIG9rYXkgZm9yIHNldF9kYXRhLgotICAgICAgICBkZWYgcmFpc2VfZXhjZXB0aW9uKGV4Yyk6Ci0gICAgICAgICAgICBkZWYgY2xvc3VyZSgqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAgICAgICAgIHJhaXNlIGV4YwotICAgICAgICAgICAgcmV0dXJuIGNsb3N1cmUKLQotICAgICAgICBzZWxmLnNldFVwKG1hZ2ljPWInMDAwMCcpCi0gICAgICAgIHNlbGYubG9hZGVyLnNldF9kYXRhID0gcmFpc2VfZXhjZXB0aW9uKE5vdEltcGxlbWVudGVkRXJyb3IpCi0gICAgICAgIGNvZGVfb2JqZWN0ID0gc2VsZi5sb2FkZXIuZ2V0X2NvZGUoc2VsZi5uYW1lKQotICAgICAgICBzZWxmLnZlcmlmeV9jb2RlKGNvZGVfb2JqZWN0KQotCi0KLWNsYXNzIFNvdXJjZUxvYWRlckdldFNvdXJjZVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgICIiIlRlc3RzIGZvciBpbXBvcnRsaWIuYWJjLlNvdXJjZUxvYWRlci5nZXRfc291cmNlKCkuIiIiCi0KLSAgICBkZWYgdGVzdF9kZWZhdWx0X2VuY29kaW5nKHNlbGYpOgotICAgICAgICAjIFNob3VsZCBoYXZlIG5vIHByb2JsZW1zIHdpdGggVVRGLTggdGV4dC4KLSAgICAgICAgbmFtZSA9ICdtb2QnCi0gICAgICAgIG1vY2sgPSBTb3VyY2VPbmx5TG9hZGVyTW9jaygnbW9kLmZpbGUnKQotICAgICAgICBzb3VyY2UgPSAneCA9ICLDvCInCi0gICAgICAgIG1vY2suc291cmNlID0gc291cmNlLmVuY29kZSgndXRmLTgnKQotICAgICAgICByZXR1cm5lZF9zb3VyY2UgPSBtb2NrLmdldF9zb3VyY2UobmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5lZF9zb3VyY2UsIHNvdXJjZSkKLQotICAgIGRlZiB0ZXN0X2RlY29kZWRfc291cmNlKHNlbGYpOgotICAgICAgICAjIERlY29kaW5nIHNob3VsZCB3b3JrLgotICAgICAgICBuYW1lID0gJ21vZCcKLSAgICAgICAgbW9jayA9IFNvdXJjZU9ubHlMb2FkZXJNb2NrKCJtb2QuZmlsZSIpCi0gICAgICAgIHNvdXJjZSA9ICIjIGNvZGluZzogTGF0aW4tMVxueD0nw7wnIgotICAgICAgICBhc3NlcnQgc291cmNlLmVuY29kZSgnbGF0aW4tMScpICE9IHNvdXJjZS5lbmNvZGUoJ3V0Zi04JykKLSAgICAgICAgbW9jay5zb3VyY2UgPSBzb3VyY2UuZW5jb2RlKCdsYXRpbi0xJykKLSAgICAgICAgcmV0dXJuZWRfc291cmNlID0gbW9jay5nZXRfc291cmNlKG5hbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuZWRfc291cmNlLCBzb3VyY2UpCi0KLSAgICBkZWYgdGVzdF91bml2ZXJzYWxfbmV3bGluZXMoc2VsZik6Ci0gICAgICAgICMgUEVQIDMwMiBzYXlzIHVuaXZlcnNhbCBuZXdsaW5lcyBzaG91bGQgYmUgdXNlZC4KLSAgICAgICAgbmFtZSA9ICdtb2QnCi0gICAgICAgIG1vY2sgPSBTb3VyY2VPbmx5TG9hZGVyTW9jaygnbW9kLmZpbGUnKQotICAgICAgICBzb3VyY2UgPSAieCA9IDQyXHJcbnkgPSAtMTNcclxuIgotICAgICAgICBtb2NrLnNvdXJjZSA9IHNvdXJjZS5lbmNvZGUoJ3V0Zi04JykKLSAgICAgICAgZXhwZWN0ID0gaW8uSW5jcmVtZW50YWxOZXdsaW5lRGVjb2RlcihOb25lLCBUcnVlKS5kZWNvZGUoc291cmNlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suZ2V0X3NvdXJjZShuYW1lKSwgZXhwZWN0KQotCi0KLWNsYXNzIEFic3RyYWN0TWV0aG9kSW1wbFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgICIiIlRlc3QgdGhlIGNvbmNyZXRlIGFic3RyYWN0bWV0aG9kIGltcGxlbWVudGF0aW9ucy4iIiIKLQotICAgIGNsYXNzIE1ldGFQYXRoRmluZGVyKGFiYy5NZXRhUGF0aEZpbmRlcik6Ci0gICAgICAgIGRlZiBmaW5kX21vZHVsZShzZWxmLCBmdWxsbmFtZSwgcGF0aCk6Ci0gICAgICAgICAgICBzdXBlcigpLmZpbmRfbW9kdWxlKGZ1bGxuYW1lLCBwYXRoKQotCi0gICAgY2xhc3MgUGF0aEVudHJ5RmluZGVyKGFiYy5QYXRoRW50cnlGaW5kZXIpOgotICAgICAgICBkZWYgZmluZF9tb2R1bGUoc2VsZiwgXyk6Ci0gICAgICAgICAgICBzdXBlcigpLmZpbmRfbW9kdWxlKF8pCi0KLSAgICAgICAgZGVmIGZpbmRfbG9hZGVyKHNlbGYsIF8pOgotICAgICAgICAgICAgc3VwZXIoKS5maW5kX2xvYWRlcihfKQotCi0gICAgY2xhc3MgRmluZGVyKGFiYy5GaW5kZXIpOgotICAgICAgICBkZWYgZmluZF9tb2R1bGUoc2VsZiwgZnVsbG5hbWUsIHBhdGgpOgotICAgICAgICAgICAgc3VwZXIoKS5maW5kX21vZHVsZShmdWxsbmFtZSwgcGF0aCkKLQotICAgIGNsYXNzIExvYWRlcihhYmMuTG9hZGVyKToKLSAgICAgICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lKToKLSAgICAgICAgICAgIHN1cGVyKCkubG9hZF9tb2R1bGUoZnVsbG5hbWUpCi0gICAgICAgIGRlZiBtb2R1bGVfcmVwcihzZWxmLCBtb2R1bGUpOgotICAgICAgICAgICAgc3VwZXIoKS5tb2R1bGVfcmVwcihtb2R1bGUpCi0KLSAgICBjbGFzcyBSZXNvdXJjZUxvYWRlcihMb2FkZXIsIGFiYy5SZXNvdXJjZUxvYWRlcik6Ci0gICAgICAgIGRlZiBnZXRfZGF0YShzZWxmLCBfKToKLSAgICAgICAgICAgIHN1cGVyKCkuZ2V0X2RhdGEoXykKLQotICAgIGNsYXNzIEluc3BlY3RMb2FkZXIoTG9hZGVyLCBhYmMuSW5zcGVjdExvYWRlcik6Ci0gICAgICAgIGRlZiBpc19wYWNrYWdlKHNlbGYsIF8pOgotICAgICAgICAgICAgc3VwZXIoKS5pc19wYWNrYWdlKF8pCi0KLSAgICAgICAgZGVmIGdldF9jb2RlKHNlbGYsIF8pOgotICAgICAgICAgICAgc3VwZXIoKS5nZXRfY29kZShfKQotCi0gICAgICAgIGRlZiBnZXRfc291cmNlKHNlbGYsIF8pOgotICAgICAgICAgICAgc3VwZXIoKS5nZXRfc291cmNlKF8pCi0KLSAgICBjbGFzcyBFeGVjdXRpb25Mb2FkZXIoSW5zcGVjdExvYWRlciwgYWJjLkV4ZWN1dGlvbkxvYWRlcik6Ci0gICAgICAgIGRlZiBnZXRfZmlsZW5hbWUoc2VsZiwgXyk6Ci0gICAgICAgICAgICBzdXBlcigpLmdldF9maWxlbmFtZShfKQotCi0gICAgY2xhc3MgU291cmNlTG9hZGVyKFJlc291cmNlTG9hZGVyLCBFeGVjdXRpb25Mb2FkZXIsIGFiYy5Tb3VyY2VMb2FkZXIpOgotICAgICAgICBwYXNzCi0KLSAgICBjbGFzcyBQeUxvYWRlcihSZXNvdXJjZUxvYWRlciwgSW5zcGVjdExvYWRlciwgYWJjLlB5TG9hZGVyKToKLSAgICAgICAgZGVmIHNvdXJjZV9wYXRoKHNlbGYsIF8pOgotICAgICAgICAgICAgc3VwZXIoKS5zb3VyY2VfcGF0aChfKQotCi0gICAgY2xhc3MgUHlQeWNMb2FkZXIoUHlMb2FkZXIsIGFiYy5QeVB5Y0xvYWRlcik6Ci0gICAgICAgIGRlZiBieXRlY29kZV9wYXRoKHNlbGYsIF8pOgotICAgICAgICAgICAgc3VwZXIoKS5ieXRlY29kZV9wYXRoKF8pCi0KLSAgICAgICAgZGVmIHNvdXJjZV9tdGltZShzZWxmLCBfKToKLSAgICAgICAgICAgIHN1cGVyKCkuc291cmNlX210aW1lKF8pCi0KLSAgICAgICAgZGVmIHdyaXRlX2J5dGVjb2RlKHNlbGYsIF8sIF8yKToKLSAgICAgICAgICAgIHN1cGVyKCkud3JpdGVfYnl0ZWNvZGUoXywgXzIpCi0KLSAgICBkZWYgcmFpc2VzX05vdEltcGxlbWVudGVkRXJyb3Ioc2VsZiwgaW5zLCAqYXJncyk6Ci0gICAgICAgIGZvciBtZXRob2RfbmFtZSBpbiBhcmdzOgotICAgICAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihpbnMsIG1ldGhvZF9uYW1lKQotICAgICAgICAgICAgYXJnX2NvdW50ID0gbGVuKGluc3BlY3QuZ2V0ZnVsbGFyZ3NwZWMobWV0aG9kKVswXSkgLSAxCi0gICAgICAgICAgICBhcmdzID0gWycnXSAqIGFyZ19jb3VudAotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG1ldGhvZCgqYXJncykKLSAgICAgICAgICAgIGV4Y2VwdCBOb3RJbXBsZW1lbnRlZEVycm9yOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbXNnID0gInt9Lnt9IGRpZCBub3QgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciIKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwobXNnLmZvcm1hdChpbnMuX19jbGFzc19fLl9fbmFtZV9fLCBtZXRob2RfbmFtZSkpCi0KLSAgICBkZWYgdGVzdF9Mb2FkZXIoc2VsZik6Ci0gICAgICAgIHNlbGYucmFpc2VzX05vdEltcGxlbWVudGVkRXJyb3Ioc2VsZi5Mb2FkZXIoKSwgJ2xvYWRfbW9kdWxlJykKLQotICAgICMgWFhYIG1pc3BsYWNlZDsgc2hvdWxkIGJlIHNvbWV3aGVyZSBlbHNlCi0gICAgZGVmIHRlc3RfRmluZGVyKHNlbGYpOgotICAgICAgICBzZWxmLnJhaXNlc19Ob3RJbXBsZW1lbnRlZEVycm9yKHNlbGYuRmluZGVyKCksICdmaW5kX21vZHVsZScpCi0KLSAgICBkZWYgdGVzdF9SZXNvdXJjZUxvYWRlcihzZWxmKToKLSAgICAgICAgc2VsZi5yYWlzZXNfTm90SW1wbGVtZW50ZWRFcnJvcihzZWxmLlJlc291cmNlTG9hZGVyKCksICdsb2FkX21vZHVsZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9kYXRhJykKLQotICAgIGRlZiB0ZXN0X0luc3BlY3RMb2FkZXIoc2VsZik6Ci0gICAgICAgIHNlbGYucmFpc2VzX05vdEltcGxlbWVudGVkRXJyb3Ioc2VsZi5JbnNwZWN0TG9hZGVyKCksICdsb2FkX21vZHVsZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzX3BhY2thZ2UnLCAnZ2V0X2NvZGUnLCAnZ2V0X3NvdXJjZScpCi0KLSAgICBkZWYgdGVzdF9FeGVjdXRpb25Mb2FkZXIoc2VsZik6Ci0gICAgICAgIHNlbGYucmFpc2VzX05vdEltcGxlbWVudGVkRXJyb3Ioc2VsZi5FeGVjdXRpb25Mb2FkZXIoKSwgJ2xvYWRfbW9kdWxlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXNfcGFja2FnZScsICdnZXRfY29kZScsICdnZXRfc291cmNlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X2ZpbGVuYW1lJykKLQotICAgIGRlZiB0ZXN0X1NvdXJjZUxvYWRlcihzZWxmKToKLSAgICAgICAgaW5zID0gc2VsZi5Tb3VyY2VMb2FkZXIoKQotICAgICAgICAjIFJlcXVpcmVkIGFic3RyYWN0bWV0aG9kcy4KLSAgICAgICAgc2VsZi5yYWlzZXNfTm90SW1wbGVtZW50ZWRFcnJvcihpbnMsICdnZXRfZmlsZW5hbWUnLCAnZ2V0X2RhdGEnKQotICAgICAgICAjIE9wdGlvbmFsIGFic3RyYWN0bWV0aG9kcy4KLSAgICAgICAgc2VsZi5yYWlzZXNfTm90SW1wbGVtZW50ZWRFcnJvcihpbnMsJ3BhdGhfc3RhdHMnLCAnc2V0X2RhdGEnKQotCi0gICAgZGVmIHRlc3RfUHlMb2FkZXIoc2VsZik6Ci0gICAgICAgIHNlbGYucmFpc2VzX05vdEltcGxlbWVudGVkRXJyb3Ioc2VsZi5QeUxvYWRlcigpLCAnc291cmNlX3BhdGgnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfZGF0YScsICdpc19wYWNrYWdlJykKLQotICAgIGRlZiB0ZXN0X1B5UHljTG9hZGVyKHNlbGYpOgotICAgICAgICBzZWxmLnJhaXNlc19Ob3RJbXBsZW1lbnRlZEVycm9yKHNlbGYuUHlQeWNMb2FkZXIoKSwgJ3NvdXJjZV9wYXRoJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc291cmNlX210aW1lJywgJ2J5dGVjb2RlX3BhdGgnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3cml0ZV9ieXRlY29kZScpCi0KLQotZGVmIHRlc3RfbWFpbigpOgotICAgIGZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBydW5fdW5pdHRlc3QKLSAgICBydW5fdW5pdHRlc3QoUHlMb2FkZXJUZXN0cywgUHlMb2FkZXJDb21wYXRUZXN0cywKLSAgICAgICAgICAgICAgICAgICAgUHlMb2FkZXJJbnRlcmZhY2VUZXN0cywKLSAgICAgICAgICAgICAgICAgICAgUHlQeWNMb2FkZXJUZXN0cywgUHlQeWNMb2FkZXJJbnRlcmZhY2VUZXN0cywKLSAgICAgICAgICAgICAgICAgICAgU2tpcFdyaXRpbmdCeXRlY29kZVRlc3RzLCBSZWdlbmVyYXRlZEJ5dGVjb2RlVGVzdHMsCi0gICAgICAgICAgICAgICAgICAgIEJhZEJ5dGVjb2RlRmFpbHVyZVRlc3RzLCBNaXNzaW5nUGF0aHNUZXN0cywKLSAgICAgICAgICAgICAgICAgICAgU291cmNlT25seUxvYWRlclRlc3RzLAotICAgICAgICAgICAgICAgICAgICBTb3VyY2VMb2FkZXJCeXRlY29kZVRlc3RzLAotICAgICAgICAgICAgICAgICAgICBTb3VyY2VMb2FkZXJHZXRTb3VyY2VUZXN0cywKLSAgICAgICAgICAgICAgICAgICAgQWJzdHJhY3RNZXRob2RJbXBsVGVzdHMpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9pbXBvcnRsaWIvc291cmNlL3Rlc3RfZmlsZV9sb2FkZXIucHkgYi9MaWIvdGVzdC90ZXN0X2ltcG9ydGxpYi9zb3VyY2UvdGVzdF9maWxlX2xvYWRlci5weQppbmRleCBkNTk5NjlhLi42ZTI0OGYzIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2ltcG9ydGxpYi9zb3VyY2UvdGVzdF9maWxlX2xvYWRlci5weQorKysgYi9MaWIvdGVzdC90ZXN0X2ltcG9ydGxpYi9zb3VyY2UvdGVzdF9maWxlX2xvYWRlci5weQpAQCAtMTUsNyArMTUsNyBAQAogaW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiAKLWZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBtYWtlX2xlZ2FjeV9weWMKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBtYWtlX2xlZ2FjeV9weWMsIHVubG9hZAogCiAKIGNsYXNzIFNpbXBsZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtMjYsMjMgKzI2LDEzIEBACiAgICAgIiIiCiAKICAgICBkZWYgdGVzdF9sb2FkX21vZHVsZV9BUEkoc2VsZik6Ci0gICAgICAgICMgSWYgZnVsbG5hbWUgaXMgbm90IHNwZWNpZmllZCB0aGF0IGFzc3VtZSBzZWxmLm5hbWUgaXMgZGVzaXJlZC4KLSAgICAgICAgY2xhc3MgVGVzdGVyTWl4aW4oaW1wb3J0bGliLmFiYy5Mb2FkZXIpOgotICAgICAgICAgICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lKTogcmV0dXJuIGZ1bGxuYW1lCi0gICAgICAgICAgICBkZWYgbW9kdWxlX3JlcHIoc2VsZiwgbW9kdWxlKTogcmV0dXJuICc8bW9kdWxlPicKKyAgICAgICAgY2xhc3MgVGVzdGVyKGltcG9ydGxpYi5hYmMuRmlsZUxvYWRlcik6CisgICAgICAgICAgICBkZWYgZ2V0X3NvdXJjZShzZWxmLCBfKTogcmV0dXJuICdhdHRyID0gNDInCisgICAgICAgICAgICBkZWYgaXNfcGFja2FnZShzZWxmLCBfKTogcmV0dXJuIEZhbHNlCiAKLSAgICAgICAgY2xhc3MgVGVzdGVyKGltcG9ydGxpYi5hYmMuRmlsZUxvYWRlciwgVGVzdGVyTWl4aW4pOgotICAgICAgICAgICAgZGVmIGdldF9jb2RlKHNlbGYsIF8pOiBwYXNzCi0gICAgICAgICAgICBkZWYgZ2V0X3NvdXJjZShzZWxmLCBfKTogcGFzcwotICAgICAgICAgICAgZGVmIGlzX3BhY2thZ2Uoc2VsZiwgXyk6IHBhc3MKLQotICAgICAgICBuYW1lID0gJ21vZF9uYW1lJwotICAgICAgICBsb2FkZXIgPSBUZXN0ZXIobmFtZSwgJ3NvbWVfcGF0aCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZSwgbG9hZGVyLmxvYWRfbW9kdWxlKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZSwgbG9hZGVyLmxvYWRfbW9kdWxlKE5vbmUpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWUsIGxvYWRlci5sb2FkX21vZHVsZShuYW1lKSkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6Ci0gICAgICAgICAgICBsb2FkZXIubG9hZF9tb2R1bGUobG9hZGVyLm5hbWUgKyAnWFhYJykKKyAgICAgICAgbG9hZGVyID0gVGVzdGVyKCdibGFoJywgJ2JsYWgucHknKQorICAgICAgICBzZWxmLmFkZENsZWFudXAodW5sb2FkLCAnYmxhaCcpCisgICAgICAgIG1vZHVsZSA9IGxvYWRlci5sb2FkX21vZHVsZSgpICAjIFNob3VsZCBub3QgcmFpc2UgYW4gZXhjZXB0aW9uLgogCiAgICAgZGVmIHRlc3RfZ2V0X2ZpbGVuYW1lX0FQSShzZWxmKToKICAgICAgICAgIyBJZiBmdWxsbmFtZSBpcyBub3Qgc2V0IHRoZW4gYXNzdW1lIHNlbGYucGF0aCBpcyBkZXNpcmVkLgpAQCAtNDA4LDcgKzM5OCw3IEBACiAgICAgICAgICAgICBvcy5jaG1vZChieXRlY29kZV9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgc3RhdC5TX0lSVVNSIHwgc3RhdC5TX0lSR1JQIHwgc3RhdC5TX0lST1RIKQogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICMgU2hvdWxkIG5vdCByYWlzZSBJT0Vycm9yIQorICAgICAgICAgICAgICAgICMgU2hvdWxkIG5vdCByYWlzZSBPU0Vycm9yIQogICAgICAgICAgICAgICAgIHNlbGYuaW1wb3J0XyhtYXBwaW5nWydfdGVtcCddLCAnX3RlbXAnKQogICAgICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICAgICAjIE1ha2Ugd3JpdGFibGUgZm9yIGV2ZW50dWFsIGNsZWFuLXVwLgpAQCAtNDczLDEzICs0NjMsNiBAQAogICAgICAgICBzZWxmLl90ZXN0X25vbl9jb2RlX21hcnNoYWwoZGVsX3NvdXJjZT1UcnVlKQogCiAKLWRlZiB0ZXN0X21haW4oKToKLSAgICBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0Ci0gICAgcnVuX3VuaXR0ZXN0KFNpbXBsZVRlc3QsCi0gICAgICAgICAgICAgICAgIFNvdXJjZUxvYWRlckJhZEJ5dGVjb2RlVGVzdCwKLSAgICAgICAgICAgICAgICAgU291cmNlbGVzc0xvYWRlckJhZEJ5dGVjb2RlVGVzdAotICAgICAgICAgICAgICAgICkKLQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHRlc3RfbWFpbigpCisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2ltcG9ydGxpYi90ZXN0X2FiYy5weSBiL0xpYi90ZXN0L3Rlc3RfaW1wb3J0bGliL3Rlc3RfYWJjLnB5CmluZGV4IGM2MjBjMzcuLmVhNDE3ZjUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfaW1wb3J0bGliL3Rlc3RfYWJjLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfaW1wb3J0bGliL3Rlc3RfYWJjLnB5CkBAIC0xLDkgKzEsMjEgQEAKK2ltcG9ydCBpbXBvcnRsaWIKIGZyb20gaW1wb3J0bGliIGltcG9ydCBhYmMKIGZyb20gaW1wb3J0bGliIGltcG9ydCBtYWNoaW5lcnkKKworaW1wb3J0IGNvbnRleHRsaWIKK2ltcG9ydCBpbXAKIGltcG9ydCBpbnNwZWN0CitpbXBvcnQgaW8KK2ltcG9ydCBtYXJzaGFsCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2Zyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAogaW1wb3J0IHVuaXR0ZXN0Citmcm9tIHVuaXR0ZXN0IGltcG9ydCBtb2NrCiAKK2Zyb20gLiBpbXBvcnQgdXRpbAogCisjIyMjIyBJbmhlcml0YW5jZSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogY2xhc3MgSW5oZXJpdGFuY2VUZXN0czoKIAogICAgICIiIlRlc3QgdGhhdCB0aGUgc3BlY2lmaWVkIGNsYXNzIGlzIGEgc3ViY2xhc3Mvc3VwZXJjbGFzcyBvZiB0aGUgZXhwZWN0ZWQKQEAgLTQzLDExICs1NSw2IEBACiAgICAgc3ViY2xhc3NlcyA9IFttYWNoaW5lcnkuRmlsZUZpbmRlcl0KIAogCi1jbGFzcyBMb2FkZXIoSW5oZXJpdGFuY2VUZXN0cywgdW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgc3ViY2xhc3NlcyA9IFthYmMuUHlMb2FkZXJdCi0KLQogY2xhc3MgUmVzb3VyY2VMb2FkZXIoSW5oZXJpdGFuY2VUZXN0cywgdW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgc3VwZXJjbGFzc2VzID0gW2FiYy5Mb2FkZXJdCkBAIC01NiwxNCArNjMsMTMgQEAKIGNsYXNzIEluc3BlY3RMb2FkZXIoSW5oZXJpdGFuY2VUZXN0cywgdW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgc3VwZXJjbGFzc2VzID0gW2FiYy5Mb2FkZXJdCi0gICAgc3ViY2xhc3NlcyA9IFthYmMuUHlMb2FkZXIsIG1hY2hpbmVyeS5CdWlsdGluSW1wb3J0ZXIsCisgICAgc3ViY2xhc3NlcyA9IFttYWNoaW5lcnkuQnVpbHRpbkltcG9ydGVyLAogICAgICAgICAgICAgICAgICAgICBtYWNoaW5lcnkuRnJvemVuSW1wb3J0ZXIsIG1hY2hpbmVyeS5FeHRlbnNpb25GaWxlTG9hZGVyXQogCiAKIGNsYXNzIEV4ZWN1dGlvbkxvYWRlcihJbmhlcml0YW5jZVRlc3RzLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBzdXBlcmNsYXNzZXMgPSBbYWJjLkluc3BlY3RMb2FkZXJdCi0gICAgc3ViY2xhc3NlcyA9IFthYmMuUHlMb2FkZXJdCiAKIAogY2xhc3MgRmlsZUxvYWRlcihJbmhlcml0YW5jZVRlc3RzLCB1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC03OCwyNiArODQsNzQ1IEBACiAgICAgc3ViY2xhc3NlcyA9IFttYWNoaW5lcnkuU291cmNlRmlsZUxvYWRlcl0KIAogCi1jbGFzcyBQeUxvYWRlcihJbmhlcml0YW5jZVRlc3RzLCB1bml0dGVzdC5UZXN0Q2FzZSk6CisjIyMjIyBEZWZhdWx0IHJldHVybiB2YWx1ZXMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworY2xhc3MgTWV0YVBhdGhGaW5kZXJTdWJjbGFzcyhhYmMuTWV0YVBhdGhGaW5kZXIpOgogCi0gICAgc3VwZXJjbGFzc2VzID0gW2FiYy5Mb2FkZXIsIGFiYy5SZXNvdXJjZUxvYWRlciwgYWJjLkV4ZWN1dGlvbkxvYWRlcl0KKyAgICBkZWYgZmluZF9tb2R1bGUoc2VsZiwgZnVsbG5hbWUsIHBhdGgpOgorICAgICAgICByZXR1cm4gc3VwZXIoKS5maW5kX21vZHVsZShmdWxsbmFtZSwgcGF0aCkKIAogCi1jbGFzcyBQeVB5Y0xvYWRlcihJbmhlcml0YW5jZVRlc3RzLCB1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBNZXRhUGF0aEZpbmRlckRlZmF1bHRzVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogCi0gICAgc3VwZXJjbGFzc2VzID0gW2FiYy5QeUxvYWRlcl0KKyAgICBpbnMgPSBNZXRhUGF0aEZpbmRlclN1YmNsYXNzKCkKKworICAgIGRlZiB0ZXN0X2ZpbmRfbW9kdWxlKHNlbGYpOgorICAgICAgICAjIERlZmF1bHQgc2hvdWxkIHJldHVybiBOb25lLgorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzZWxmLmlucy5maW5kX21vZHVsZSgnc29tZXRoaW5nJywgTm9uZSkpCisKKyAgICBkZWYgdGVzdF9pbnZhbGlkYXRlX2NhY2hlcyhzZWxmKToKKyAgICAgICAgIyBDYWxsaW5nIHRoZSBtZXRob2QgaXMgYSBuby1vcC4KKyAgICAgICAgc2VsZi5pbnMuaW52YWxpZGF0ZV9jYWNoZXMoKQogCiAKLWRlZiB0ZXN0X21haW4oKToKLSAgICBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0Ci0gICAgY2xhc3NlcyA9IFtdCi0gICAgZm9yIGNsYXNzXyBpbiBnbG9iYWxzKCkudmFsdWVzKCk6Ci0gICAgICAgIGlmIChpbnNwZWN0LmlzY2xhc3MoY2xhc3NfKSBhbmQKLSAgICAgICAgICAgICAgICBpc3N1YmNsYXNzKGNsYXNzXywgdW5pdHRlc3QuVGVzdENhc2UpIGFuZAotICAgICAgICAgICAgICAgIGlzc3ViY2xhc3MoY2xhc3NfLCBJbmhlcml0YW5jZVRlc3RzKSk6Ci0gICAgICAgICAgICBjbGFzc2VzLmFwcGVuZChjbGFzc18pCi0gICAgcnVuX3VuaXR0ZXN0KCpjbGFzc2VzKQorY2xhc3MgUGF0aEVudHJ5RmluZGVyU3ViY2xhc3MoYWJjLlBhdGhFbnRyeUZpbmRlcik6CisKKyAgICBkZWYgZmluZF9sb2FkZXIoc2VsZiwgZnVsbG5hbWUpOgorICAgICAgICByZXR1cm4gc3VwZXIoKS5maW5kX2xvYWRlcihmdWxsbmFtZSkKKworCitjbGFzcyBQYXRoRW50cnlGaW5kZXJEZWZhdWx0c1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGlucyA9IFBhdGhFbnRyeUZpbmRlclN1YmNsYXNzKCkKKworICAgIGRlZiB0ZXN0X2ZpbmRfbG9hZGVyKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKChOb25lLCBbXSksIHNlbGYuaW5zLmZpbmRfbG9hZGVyKCdzb21ldGhpbmcnKSkKKworICAgIGRlZiBmaW5kX21vZHVsZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBzZWxmLmlucy5maW5kX21vZHVsZSgnc29tZXRoaW5nJykpCisKKyAgICBkZWYgdGVzdF9pbnZhbGlkYXRlX2NhY2hlcyhzZWxmKToKKyAgICAgICAgIyBTaG91bGQgYmUgYSBuby1vcC4KKyAgICAgICAgc2VsZi5pbnMuaW52YWxpZGF0ZV9jYWNoZXMoKQorCisKK2NsYXNzIExvYWRlclN1YmNsYXNzKGFiYy5Mb2FkZXIpOgorCisgICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lKToKKyAgICAgICAgcmV0dXJuIHN1cGVyKCkubG9hZF9tb2R1bGUoZnVsbG5hbWUpCisKKworY2xhc3MgTG9hZGVyRGVmYXVsdHNUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBpbnMgPSBMb2FkZXJTdWJjbGFzcygpCisKKyAgICBkZWYgdGVzdF9sb2FkX21vZHVsZShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6CisgICAgICAgICAgICBzZWxmLmlucy5sb2FkX21vZHVsZSgnc29tZXRoaW5nJykKKworICAgIGRlZiB0ZXN0X21vZHVsZV9yZXByKHNlbGYpOgorICAgICAgICBtb2QgPSBpbXAubmV3X21vZHVsZSgnYmxhaCcpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvcik6CisgICAgICAgICAgICBzZWxmLmlucy5tb2R1bGVfcmVwcihtb2QpCisgICAgICAgIG9yaWdpbmFsX3JlcHIgPSByZXByKG1vZCkKKyAgICAgICAgbW9kLl9fbG9hZGVyX18gPSBzZWxmLmlucworICAgICAgICAjIFNob3VsZCBzdGlsbCByZXR1cm4gYSBwcm9wZXIgcmVwci4KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlcHIobW9kKSkKKworCitjbGFzcyBSZXNvdXJjZUxvYWRlclN1YmNsYXNzKExvYWRlclN1YmNsYXNzLCBhYmMuUmVzb3VyY2VMb2FkZXIpOgorCisgICAgZGVmIGdldF9kYXRhKHNlbGYsIHBhdGgpOgorICAgICAgICByZXR1cm4gc3VwZXIoKS5nZXRfZGF0YShwYXRoKQorCisKK2NsYXNzIFJlc291cmNlTG9hZGVyRGVmYXVsdHNUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBpbnMgPSBSZXNvdXJjZUxvYWRlclN1YmNsYXNzKCkKKworICAgIGRlZiB0ZXN0X2dldF9kYXRhKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IpOgorICAgICAgICAgICAgc2VsZi5pbnMuZ2V0X2RhdGEoJy9zb21lL3BhdGgnKQorCisKK2NsYXNzIEluc3BlY3RMb2FkZXJTdWJjbGFzcyhMb2FkZXJTdWJjbGFzcywgYWJjLkluc3BlY3RMb2FkZXIpOgorCisgICAgZGVmIGlzX3BhY2thZ2Uoc2VsZiwgZnVsbG5hbWUpOgorICAgICAgICByZXR1cm4gc3VwZXIoKS5pc19wYWNrYWdlKGZ1bGxuYW1lKQorCisgICAgZGVmIGdldF9zb3VyY2Uoc2VsZiwgZnVsbG5hbWUpOgorICAgICAgICByZXR1cm4gc3VwZXIoKS5nZXRfc291cmNlKGZ1bGxuYW1lKQorCisKK2NsYXNzIEluc3BlY3RMb2FkZXJEZWZhdWx0c1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGlucyA9IEluc3BlY3RMb2FkZXJTdWJjbGFzcygpCisKKyAgICBkZWYgdGVzdF9pc19wYWNrYWdlKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgICAgIHNlbGYuaW5zLmlzX3BhY2thZ2UoJ2JsYWgnKQorCisgICAgZGVmIHRlc3RfZ2V0X3NvdXJjZShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6CisgICAgICAgICAgICBzZWxmLmlucy5nZXRfc291cmNlKCdibGFoJykKKworCitjbGFzcyBFeGVjdXRpb25Mb2FkZXJTdWJjbGFzcyhJbnNwZWN0TG9hZGVyU3ViY2xhc3MsIGFiYy5FeGVjdXRpb25Mb2FkZXIpOgorCisgICAgZGVmIGdldF9maWxlbmFtZShzZWxmLCBmdWxsbmFtZSk6CisgICAgICAgIHJldHVybiBzdXBlcigpLmdldF9maWxlbmFtZShmdWxsbmFtZSkKKworCitjbGFzcyBFeGVjdXRpb25Mb2FkZXJEZWZhdWx0c1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGlucyA9IEV4ZWN1dGlvbkxvYWRlclN1YmNsYXNzKCkKKworICAgIGRlZiB0ZXN0X2dldF9maWxlbmFtZShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6CisgICAgICAgICAgICBzZWxmLmlucy5nZXRfZmlsZW5hbWUoJ2JsYWgnKQorCisjIyMjIyBMb2FkZXIgY29uY3JldGUgbWV0aG9kcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworY2xhc3MgTG9hZGVyQ29uY3JldGVNZXRob2RUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9pbml0X21vZHVsZV9hdHRycyhzZWxmKToKKyAgICAgICAgbG9hZGVyID0gTG9hZGVyU3ViY2xhc3MoKQorICAgICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZSgnYmxhaCcpCisgICAgICAgIGxvYWRlci5pbml0X21vZHVsZV9hdHRycyhtb2R1bGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLl9fbG9hZGVyX18sIGxvYWRlcikKKworCisjIyMjIyBJbnNwZWN0TG9hZGVyIGNvbmNyZXRlIG1ldGhvZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworY2xhc3MgSW5zcGVjdExvYWRlclNvdXJjZVRvQ29kZVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiBzb3VyY2VfdG9fbW9kdWxlKHNlbGYsIGRhdGEsIHBhdGg9Tm9uZSk6CisgICAgICAgICIiIkhlbHAgd2l0aCBzb3VyY2VfdG9fY29kZSgpIHRlc3RzLiIiIgorICAgICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZSgnYmxhaCcpCisgICAgICAgIGxvYWRlciA9IEluc3BlY3RMb2FkZXJTdWJjbGFzcygpCisgICAgICAgIGlmIHBhdGggaXMgTm9uZToKKyAgICAgICAgICAgIGNvZGUgPSBsb2FkZXIuc291cmNlX3RvX2NvZGUoZGF0YSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNvZGUgPSBsb2FkZXIuc291cmNlX3RvX2NvZGUoZGF0YSwgcGF0aCkKKyAgICAgICAgZXhlYyhjb2RlLCBtb2R1bGUuX19kaWN0X18pCisgICAgICAgIHJldHVybiBtb2R1bGUKKworICAgIGRlZiB0ZXN0X3NvdXJjZV90b19jb2RlX3NvdXJjZShzZWxmKToKKyAgICAgICAgIyBTaW5jZSBjb21waWxlKCkgY2FuIGhhbmRsZSBzdHJpbmdzLCBzbyBzaG91bGQgc291cmNlX3RvX2NvZGUoKS4KKyAgICAgICAgc291cmNlID0gJ2F0dHIgPSA0MicKKyAgICAgICAgbW9kdWxlID0gc2VsZi5zb3VyY2VfdG9fbW9kdWxlKHNvdXJjZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIobW9kdWxlLCAnYXR0cicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5hdHRyLCA0MikKKworICAgIGRlZiB0ZXN0X3NvdXJjZV90b19jb2RlX2J5dGVzKHNlbGYpOgorICAgICAgICAjIFNpbmNlIGNvbXBpbGUoKSBjYW4gaGFuZGxlIGJ5dGVzLCBzbyBzaG91bGQgc291cmNlX3RvX2NvZGUoKS4KKyAgICAgICAgc291cmNlID0gYidhdHRyID0gNDInCisgICAgICAgIG1vZHVsZSA9IHNlbGYuc291cmNlX3RvX21vZHVsZShzb3VyY2UpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKG1vZHVsZSwgJ2F0dHInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuYXR0ciwgNDIpCisKKyAgICBkZWYgdGVzdF9zb3VyY2VfdG9fY29kZV9wYXRoKHNlbGYpOgorICAgICAgICAjIFNwZWNpZnlpbmcgYSBwYXRoIHNob3VsZCBzZXQgaXQgZm9yIHRoZSBjb2RlIG9iamVjdC4KKyAgICAgICAgcGF0aCA9ICdwYXRoL3RvL3NvbWV3aGVyZScKKyAgICAgICAgbG9hZGVyID0gSW5zcGVjdExvYWRlclN1YmNsYXNzKCkKKyAgICAgICAgY29kZSA9IGxvYWRlci5zb3VyY2VfdG9fY29kZSgnJywgcGF0aCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb2RlLmNvX2ZpbGVuYW1lLCBwYXRoKQorCisgICAgZGVmIHRlc3Rfc291cmNlX3RvX2NvZGVfbm9fcGF0aChzZWxmKToKKyAgICAgICAgIyBOb3Qgc2V0dGluZyBhIHBhdGggc2hvdWxkIHN0aWxsIHdvcmsgYW5kIGJlIHNldCB0byA8c3RyaW5nPiBzaW5jZSB0aGF0CisgICAgICAgICMgaXMgYSBwcmUtZXhpc3RpbmcgcHJhY3RpY2UgYXMgYSBkZWZhdWx0IHRvIGNvbXBpbGUoKS4KKyAgICAgICAgbG9hZGVyID0gSW5zcGVjdExvYWRlclN1YmNsYXNzKCkKKyAgICAgICAgY29kZSA9IGxvYWRlci5zb3VyY2VfdG9fY29kZSgnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb2RlLmNvX2ZpbGVuYW1lLCAnPHN0cmluZz4nKQorCisKK2NsYXNzIEluc3BlY3RMb2FkZXJHZXRDb2RlVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfZ2V0X2NvZGUoc2VsZik6CisgICAgICAgICMgVGVzdCBzdWNjZXNzLgorICAgICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZSgnYmxhaCcpCisgICAgICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3QoSW5zcGVjdExvYWRlclN1YmNsYXNzLCAnZ2V0X3NvdXJjZScpIGFzIG1vY2tlZDoKKyAgICAgICAgICAgIG1vY2tlZC5yZXR1cm5fdmFsdWUgPSAnYXR0ciA9IDQyJworICAgICAgICAgICAgbG9hZGVyID0gSW5zcGVjdExvYWRlclN1YmNsYXNzKCkKKyAgICAgICAgICAgIGNvZGUgPSBsb2FkZXIuZ2V0X2NvZGUoJ2JsYWgnKQorICAgICAgICBleGVjKGNvZGUsIG1vZHVsZS5fX2RpY3RfXykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuYXR0ciwgNDIpCisKKyAgICBkZWYgdGVzdF9nZXRfY29kZV9zb3VyY2VfaXNfTm9uZShzZWxmKToKKyAgICAgICAgIyBJZiBnZXRfc291cmNlKCkgaXMgTm9uZSB0aGVuIHRoaXMgc2hvdWxkIGJlIE5vbmUuCisgICAgICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3QoSW5zcGVjdExvYWRlclN1YmNsYXNzLCAnZ2V0X3NvdXJjZScpIGFzIG1vY2tlZDoKKyAgICAgICAgICAgIG1vY2tlZC5yZXR1cm5fdmFsdWUgPSBOb25lCisgICAgICAgICAgICBsb2FkZXIgPSBJbnNwZWN0TG9hZGVyU3ViY2xhc3MoKQorICAgICAgICAgICAgY29kZSA9IGxvYWRlci5nZXRfY29kZSgnYmxhaCcpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGNvZGUpCisKKyAgICBkZWYgdGVzdF9nZXRfY29kZV9zb3VyY2Vfbm90X2ZvdW5kKHNlbGYpOgorICAgICAgICAjIElmIHRoZXJlIGlzIG5vIHNvdXJjZSB0aGVuIHRoZXJlIGlzIG5vIGNvZGUgb2JqZWN0LgorICAgICAgICBsb2FkZXIgPSBJbnNwZWN0TG9hZGVyU3ViY2xhc3MoKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgICAgIGxvYWRlci5nZXRfY29kZSgnYmxhaCcpCisKKworY2xhc3MgSW5zcGVjdExvYWRlckluaXRNb2R1bGVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIG1vY2tfaXNfcGFja2FnZShyZXR1cm5fdmFsdWUpOgorICAgICAgICByZXR1cm4gbW9jay5wYXRjaC5vYmplY3QoSW5zcGVjdExvYWRlclN1YmNsYXNzLCAnaXNfcGFja2FnZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9cmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIGluaXRfbW9kdWxlX2F0dHJzKHNlbGYsIG5hbWUpOgorICAgICAgICBsb2FkZXIgPSBJbnNwZWN0TG9hZGVyU3ViY2xhc3MoKQorICAgICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZShuYW1lKQorICAgICAgICBsb2FkZXIuaW5pdF9tb2R1bGVfYXR0cnMobW9kdWxlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX2xvYWRlcl9fLCBsb2FkZXIpCisgICAgICAgIHJldHVybiBtb2R1bGUKKworICAgIGRlZiB0ZXN0X3BhY2thZ2Uoc2VsZik6CisgICAgICAgICMgSWYgYSBwYWNrYWdlLCB0aGVuIF9fcGFja2FnZV9fID09IF9fbmFtZV9fLCBfX3BhdGhfXyA9PSBbXQorICAgICAgICB3aXRoIHNlbGYubW9ja19pc19wYWNrYWdlKFRydWUpOgorICAgICAgICAgICAgbmFtZSA9ICdibGFoJworICAgICAgICAgICAgbW9kdWxlID0gc2VsZi5pbml0X21vZHVsZV9hdHRycyhuYW1lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19wYWNrYWdlX18sIG5hbWUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX3BhdGhfXywgW10pCisKKyAgICBkZWYgdGVzdF90b3BsZXZlbChzZWxmKToKKyAgICAgICAgIyBJZiBhIG1vZHVsZSBpcyB0b3AtbGV2ZWwsIF9fcGFja2FnZV9fID09ICcnCisgICAgICAgIHdpdGggc2VsZi5tb2NrX2lzX3BhY2thZ2UoRmFsc2UpOgorICAgICAgICAgICAgbmFtZSA9ICdibGFoJworICAgICAgICAgICAgbW9kdWxlID0gc2VsZi5pbml0X21vZHVsZV9hdHRycyhuYW1lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19wYWNrYWdlX18sICcnKQorCisgICAgZGVmIHRlc3Rfc3VibW9kdWxlKHNlbGYpOgorICAgICAgICAjIElmIGEgbW9kdWxlIGlzIGNvbnRhaW5lZCB3aXRoaW4gYSBwYWNrYWdlIHRoZW4gc2V0IF9fcGFja2FnZV9fIHRvIHRoZQorICAgICAgICAjIHBhY2thZ2UgbmFtZS4KKyAgICAgICAgd2l0aCBzZWxmLm1vY2tfaXNfcGFja2FnZShGYWxzZSk6CisgICAgICAgICAgICBuYW1lID0gJ3BrZy5tb2QnCisgICAgICAgICAgICBtb2R1bGUgPSBzZWxmLmluaXRfbW9kdWxlX2F0dHJzKG5hbWUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX3BhY2thZ2VfXywgJ3BrZycpCisKKyAgICBkZWYgdGVzdF9pc19wYWNrYWdlX0ltcG9ydEVycm9yKHNlbGYpOgorICAgICAgICAjIElmIGlzX3BhY2thZ2UoKSByYWlzZXMgSW1wb3J0RXJyb3IsIF9fcGFja2FnZV9fIHNob3VsZCBiZSBOb25lIGFuZAorICAgICAgICAjIF9fcGF0aF9fIHNob3VsZCBub3QgYmUgc2V0LgorICAgICAgICB3aXRoIHNlbGYubW9ja19pc19wYWNrYWdlKEZhbHNlKSBhcyBtb2NrZWRfbWV0aG9kOgorICAgICAgICAgICAgbW9ja2VkX21ldGhvZC5zaWRlX2VmZmVjdCA9IEltcG9ydEVycm9yCisgICAgICAgICAgICBuYW1lID0gJ21vZCcKKyAgICAgICAgICAgIG1vZHVsZSA9IHNlbGYuaW5pdF9tb2R1bGVfYXR0cnMobmFtZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKG1vZHVsZS5fX3BhY2thZ2VfXykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cihtb2R1bGUsICdfX3BhdGhfXycpKQorCisKK2NsYXNzIEluc3BlY3RMb2FkZXJMb2FkTW9kdWxlVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgIiIiVGVzdCBJbnNwZWN0TG9hZGVyLmxvYWRfbW9kdWxlKCkuIiIiCisKKyAgICBtb2R1bGVfbmFtZSA9ICdibGFoJworCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBwb3J0LnVubG9hZChzZWxmLm1vZHVsZV9uYW1lKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc3VwcG9ydC51bmxvYWQsIHNlbGYubW9kdWxlX25hbWUpCisKKyAgICBkZWYgbW9ja19nZXRfY29kZShzZWxmKToKKyAgICAgICAgcmV0dXJuIG1vY2sucGF0Y2gub2JqZWN0KEluc3BlY3RMb2FkZXJTdWJjbGFzcywgJ2dldF9jb2RlJykKKworICAgIGRlZiB0ZXN0X2dldF9jb2RlX0ltcG9ydEVycm9yKHNlbGYpOgorICAgICAgICAjIElmIGdldF9jb2RlKCkgcmFpc2VzIEltcG9ydEVycm9yLCBpdCBzaG91bGQgcHJvcGFnYXRlLgorICAgICAgICB3aXRoIHNlbGYubW9ja19nZXRfY29kZSgpIGFzIG1vY2tlZF9nZXRfY29kZToKKyAgICAgICAgICAgIG1vY2tlZF9nZXRfY29kZS5zaWRlX2VmZmVjdCA9IEltcG9ydEVycm9yCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgICAgICAgICBsb2FkZXIgPSBJbnNwZWN0TG9hZGVyU3ViY2xhc3MoKQorICAgICAgICAgICAgICAgIGxvYWRlci5sb2FkX21vZHVsZShzZWxmLm1vZHVsZV9uYW1lKQorCisgICAgZGVmIHRlc3RfZ2V0X2NvZGVfTm9uZShzZWxmKToKKyAgICAgICAgIyBJZiBnZXRfY29kZSgpIHJldHVybnMgTm9uZSwgcmFpc2UgSW1wb3J0RXJyb3IuCisgICAgICAgIHdpdGggc2VsZi5tb2NrX2dldF9jb2RlKCkgYXMgbW9ja2VkX2dldF9jb2RlOgorICAgICAgICAgICAgbW9ja2VkX2dldF9jb2RlLnJldHVybl92YWx1ZSA9IE5vbmUKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICAgICAgICAgIGxvYWRlciA9IEluc3BlY3RMb2FkZXJTdWJjbGFzcygpCisgICAgICAgICAgICAgICAgbG9hZGVyLmxvYWRfbW9kdWxlKHNlbGYubW9kdWxlX25hbWUpCisKKyAgICBkZWYgdGVzdF9tb2R1bGVfcmV0dXJuZWQoc2VsZik6CisgICAgICAgICMgVGhlIGxvYWRlZCBtb2R1bGUgc2hvdWxkIGJlIHJldHVybmVkLgorICAgICAgICBjb2RlID0gY29tcGlsZSgnYXR0ciA9IDQyJywgJzxzdHJpbmc+JywgJ2V4ZWMnKQorICAgICAgICB3aXRoIHNlbGYubW9ja19nZXRfY29kZSgpIGFzIG1vY2tlZF9nZXRfY29kZToKKyAgICAgICAgICAgIG1vY2tlZF9nZXRfY29kZS5yZXR1cm5fdmFsdWUgPSBjb2RlCisgICAgICAgICAgICBsb2FkZXIgPSBJbnNwZWN0TG9hZGVyU3ViY2xhc3MoKQorICAgICAgICAgICAgbW9kdWxlID0gbG9hZGVyLmxvYWRfbW9kdWxlKHNlbGYubW9kdWxlX25hbWUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZSwgc3lzLm1vZHVsZXNbc2VsZi5tb2R1bGVfbmFtZV0pCisKKworIyMjIyMgRXhlY3V0aW9uTG9hZGVyIGNvbmNyZXRlIG1ldGhvZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2NsYXNzIEV4ZWN1dGlvbkxvYWRlckdldENvZGVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgbW9ja19tZXRob2RzKHNlbGYsICosIGdldF9zb3VyY2U9RmFsc2UsIGdldF9maWxlbmFtZT1GYWxzZSk6CisgICAgICAgIHNvdXJjZV9tb2NrX2NvbnRleHQsIGZpbGVuYW1lX21vY2tfY29udGV4dCA9IE5vbmUsIE5vbmUKKyAgICAgICAgaWYgZ2V0X3NvdXJjZToKKyAgICAgICAgICAgIHNvdXJjZV9tb2NrX2NvbnRleHQgPSBtb2NrLnBhdGNoLm9iamVjdChFeGVjdXRpb25Mb2FkZXJTdWJjbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X3NvdXJjZScpCisgICAgICAgIGlmIGdldF9maWxlbmFtZToKKyAgICAgICAgICAgIGZpbGVuYW1lX21vY2tfY29udGV4dCA9IG1vY2sucGF0Y2gub2JqZWN0KEV4ZWN1dGlvbkxvYWRlclN1YmNsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9maWxlbmFtZScpCisgICAgICAgIHJldHVybiBzb3VyY2VfbW9ja19jb250ZXh0LCBmaWxlbmFtZV9tb2NrX2NvbnRleHQKKworICAgIGRlZiB0ZXN0X2dldF9jb2RlKHNlbGYpOgorICAgICAgICBwYXRoID0gJ2JsYWgucHknCisgICAgICAgIHNvdXJjZV9tb2NrX2NvbnRleHQsIGZpbGVuYW1lX21vY2tfY29udGV4dCA9IHNlbGYubW9ja19tZXRob2RzKAorICAgICAgICAgICAgICAgIGdldF9zb3VyY2U9VHJ1ZSwgZ2V0X2ZpbGVuYW1lPVRydWUpCisgICAgICAgIHdpdGggc291cmNlX21vY2tfY29udGV4dCBhcyBzb3VyY2VfbW9jaywgZmlsZW5hbWVfbW9ja19jb250ZXh0IGFzIG5hbWVfbW9jazoKKyAgICAgICAgICAgIHNvdXJjZV9tb2NrLnJldHVybl92YWx1ZSA9ICdhdHRyID0gNDInCisgICAgICAgICAgICBuYW1lX21vY2sucmV0dXJuX3ZhbHVlID0gcGF0aAorICAgICAgICAgICAgbG9hZGVyID0gRXhlY3V0aW9uTG9hZGVyU3ViY2xhc3MoKQorICAgICAgICAgICAgY29kZSA9IGxvYWRlci5nZXRfY29kZSgnYmxhaCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29kZS5jb19maWxlbmFtZSwgcGF0aCkKKyAgICAgICAgbW9kdWxlID0gaW1wLm5ld19tb2R1bGUoJ2JsYWgnKQorICAgICAgICBleGVjKGNvZGUsIG1vZHVsZS5fX2RpY3RfXykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuYXR0ciwgNDIpCisKKyAgICBkZWYgdGVzdF9nZXRfY29kZV9zb3VyY2VfaXNfTm9uZShzZWxmKToKKyAgICAgICAgIyBJZiBnZXRfc291cmNlKCkgaXMgTm9uZSB0aGVuIHRoaXMgc2hvdWxkIGJlIE5vbmUuCisgICAgICAgIHNvdXJjZV9tb2NrX2NvbnRleHQsIF8gPSBzZWxmLm1vY2tfbWV0aG9kcyhnZXRfc291cmNlPVRydWUpCisgICAgICAgIHdpdGggc291cmNlX21vY2tfY29udGV4dCBhcyBtb2NrZWQ6CisgICAgICAgICAgICBtb2NrZWQucmV0dXJuX3ZhbHVlID0gTm9uZQorICAgICAgICAgICAgbG9hZGVyID0gRXhlY3V0aW9uTG9hZGVyU3ViY2xhc3MoKQorICAgICAgICAgICAgY29kZSA9IGxvYWRlci5nZXRfY29kZSgnYmxhaCcpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGNvZGUpCisKKyAgICBkZWYgdGVzdF9nZXRfY29kZV9zb3VyY2Vfbm90X2ZvdW5kKHNlbGYpOgorICAgICAgICAjIElmIHRoZXJlIGlzIG5vIHNvdXJjZSB0aGVuIHRoZXJlIGlzIG5vIGNvZGUgb2JqZWN0LgorICAgICAgICBsb2FkZXIgPSBFeGVjdXRpb25Mb2FkZXJTdWJjbGFzcygpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICAgICAgbG9hZGVyLmdldF9jb2RlKCdibGFoJykKKworICAgIGRlZiB0ZXN0X2dldF9jb2RlX25vX3BhdGgoc2VsZik6CisgICAgICAgICMgSWYgZ2V0X2ZpbGVuYW1lKCkgcmFpc2VzIEltcG9ydEVycm9yIHRoZW4gc2ltcGx5IHNraXAgc2V0dGluZyB0aGUgcGF0aAorICAgICAgICAjIG9uIHRoZSBjb2RlIG9iamVjdC4KKyAgICAgICAgc291cmNlX21vY2tfY29udGV4dCwgZmlsZW5hbWVfbW9ja19jb250ZXh0ID0gc2VsZi5tb2NrX21ldGhvZHMoCisgICAgICAgICAgICAgICAgZ2V0X3NvdXJjZT1UcnVlLCBnZXRfZmlsZW5hbWU9VHJ1ZSkKKyAgICAgICAgd2l0aCBzb3VyY2VfbW9ja19jb250ZXh0IGFzIHNvdXJjZV9tb2NrLCBmaWxlbmFtZV9tb2NrX2NvbnRleHQgYXMgbmFtZV9tb2NrOgorICAgICAgICAgICAgc291cmNlX21vY2sucmV0dXJuX3ZhbHVlID0gJ2F0dHIgPSA0MicKKyAgICAgICAgICAgIG5hbWVfbW9jay5zaWRlX2VmZmVjdCA9IEltcG9ydEVycm9yCisgICAgICAgICAgICBsb2FkZXIgPSBFeGVjdXRpb25Mb2FkZXJTdWJjbGFzcygpCisgICAgICAgICAgICBjb2RlID0gbG9hZGVyLmdldF9jb2RlKCdibGFoJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb2RlLmNvX2ZpbGVuYW1lLCAnPHN0cmluZz4nKQorICAgICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZSgnYmxhaCcpCisgICAgICAgIGV4ZWMoY29kZSwgbW9kdWxlLl9fZGljdF9fKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5hdHRyLCA0MikKKworCitjbGFzcyBFeGVjdXRpb25Mb2FkZXJJbml0TW9kdWxlVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgQHN0YXRpY21ldGhvZAorICAgIEBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCisgICAgZGVmIG1vY2tfbWV0aG9kcyhpc19wYWNrYWdlLCBmaWxlbmFtZSk6CisgICAgICAgIGlzX3BhY2thZ2VfbWFuYWdlciA9IEluc3BlY3RMb2FkZXJJbml0TW9kdWxlVGVzdHMubW9ja19pc19wYWNrYWdlKGlzX3BhY2thZ2UpCisgICAgICAgIGdldF9maWxlbmFtZV9tYW5hZ2VyID0gbW9jay5wYXRjaC5vYmplY3QoRXhlY3V0aW9uTG9hZGVyU3ViY2xhc3MsCisgICAgICAgICAgICAgICAgJ2dldF9maWxlbmFtZScsIHJldHVybl92YWx1ZT1maWxlbmFtZSkKKyAgICAgICAgd2l0aCBpc19wYWNrYWdlX21hbmFnZXIgYXMgbW9ja19pc19wYWNrYWdlOgorICAgICAgICAgICAgd2l0aCBnZXRfZmlsZW5hbWVfbWFuYWdlciBhcyBtb2NrX2dldF9maWxlbmFtZToKKyAgICAgICAgICAgICAgICB5aWVsZCB7J2lzX3BhY2thZ2UnOiBtb2NrX2lzX3BhY2thZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICdnZXRfZmlsZW5hbWUnOiBtb2NrX2dldF9maWxlbmFtZX0KKworICAgIGRlZiB0ZXN0X3RvcGxldmVsKHNlbGYpOgorICAgICAgICAjIFZlcmlmeSBfX2xvYWRlcl9fLCBfX2ZpbGVfXywgYW5kIF9fcGFja2FnZV9fOyBubyBfX3BhdGhfXy4KKyAgICAgICAgbmFtZSA9ICdibGFoJworICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKCdzb21lJywgJ3BhdGgnLCAne30ucHknLmZvcm1hdChuYW1lKSkKKyAgICAgICAgd2l0aCBzZWxmLm1vY2tfbWV0aG9kcyhGYWxzZSwgcGF0aCk6CisgICAgICAgICAgICBsb2FkZXIgPSBFeGVjdXRpb25Mb2FkZXJTdWJjbGFzcygpCisgICAgICAgICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZShuYW1lKQorICAgICAgICAgICAgbG9hZGVyLmluaXRfbW9kdWxlX2F0dHJzKG1vZHVsZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhtb2R1bGUuX19sb2FkZXJfXywgbG9hZGVyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX2ZpbGVfXywgcGF0aCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19wYWNrYWdlX18sICcnKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIobW9kdWxlLCAnX19wYXRoX18nKSkKKworICAgIGRlZiB0ZXN0X3BhY2thZ2Uoc2VsZik6CisgICAgICAgICMgVmVyaWZ5IF9fbG9hZGVyX18sIF9fZmlsZV9fLCBfX3BhY2thZ2VfXywgYW5kIF9fcGF0aF9fLgorICAgICAgICBuYW1lID0gJ3BrZycKKyAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbignc29tZScsICdwa2cnLCAnX19pbml0X18ucHknKQorICAgICAgICB3aXRoIHNlbGYubW9ja19tZXRob2RzKFRydWUsIHBhdGgpOgorICAgICAgICAgICAgbG9hZGVyID0gRXhlY3V0aW9uTG9hZGVyU3ViY2xhc3MoKQorICAgICAgICAgICAgbW9kdWxlID0gaW1wLm5ld19tb2R1bGUobmFtZSkKKyAgICAgICAgICAgIGxvYWRlci5pbml0X21vZHVsZV9hdHRycyhtb2R1bGUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMobW9kdWxlLl9fbG9hZGVyX18sIGxvYWRlcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19maWxlX18sIHBhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLl9fcGFja2FnZV9fLCAncGtnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19wYXRoX18sIFtvcy5wYXRoLmRpcm5hbWUocGF0aCldKQorCisgICAgZGVmIHRlc3Rfc3VibW9kdWxlKHNlbGYpOgorICAgICAgICAjIFZlcmlmeSBfX3BhY2thZ2VfXyBhbmQgbm90IF9fcGF0aF9fOyB0ZXN0X3RvcGxldmVsKCkgdGFrZXMgY2FyZSBvZgorICAgICAgICAjIG90aGVyIGF0dHJpYnV0ZXMuCisgICAgICAgIG5hbWUgPSAncGtnLnN1Ym1vZHVsZScKKyAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbignc29tZScsICdwa2cnLCAnc3VibW9kdWxlLnB5JykKKyAgICAgICAgd2l0aCBzZWxmLm1vY2tfbWV0aG9kcyhGYWxzZSwgcGF0aCk6CisgICAgICAgICAgICBsb2FkZXIgPSBFeGVjdXRpb25Mb2FkZXJTdWJjbGFzcygpCisgICAgICAgICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZShuYW1lKQorICAgICAgICAgICAgbG9hZGVyLmluaXRfbW9kdWxlX2F0dHJzKG1vZHVsZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19wYWNrYWdlX18sICdwa2cnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX2ZpbGVfXywgcGF0aCkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKG1vZHVsZSwgJ19fcGF0aF9fJykpCisKKyAgICBkZWYgdGVzdF9nZXRfZmlsZW5hbWVfSW1wb3J0RXJyb3Ioc2VsZik6CisgICAgICAgICMgSWYgZ2V0X2ZpbGVuYW1lKCkgcmFpc2VzIEltcG9ydEVycm9yLCBkb24ndCBzZXQgX19maWxlX18uCisgICAgICAgIG5hbWUgPSAnYmxhaCcKKyAgICAgICAgcGF0aCA9ICdibGFoLnB5JworICAgICAgICB3aXRoIHNlbGYubW9ja19tZXRob2RzKEZhbHNlLCBwYXRoKSBhcyBtb2NrZWRfbWV0aG9kczoKKyAgICAgICAgICAgIG1vY2tlZF9tZXRob2RzWydnZXRfZmlsZW5hbWUnXS5zaWRlX2VmZmVjdCA9IEltcG9ydEVycm9yCisgICAgICAgICAgICBsb2FkZXIgPSBFeGVjdXRpb25Mb2FkZXJTdWJjbGFzcygpCisgICAgICAgICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZShuYW1lKQorICAgICAgICAgICAgbG9hZGVyLmluaXRfbW9kdWxlX2F0dHJzKG1vZHVsZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKG1vZHVsZSwgJ19fZmlsZV9fJykpCisKKworIyMjIyMgU291cmNlTG9hZGVyIGNvbmNyZXRlIG1ldGhvZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2NsYXNzIFNvdXJjZU9ubHlMb2FkZXJNb2NrKGFiYy5Tb3VyY2VMb2FkZXIpOgorCisgICAgIyBHbG9iYWxzIHRoYXQgc2hvdWxkIGJlIGRlZmluZWQgZm9yIGFsbCBtb2R1bGVzLgorICAgIHNvdXJjZSA9IChiIl8gPSAnOjonLmpvaW4oW19fbmFtZV9fLCBfX2ZpbGVfXywgX19jYWNoZWRfXywgX19wYWNrYWdlX18sICIKKyAgICAgICAgICAgICAgYiJyZXByKF9fbG9hZGVyX18pXSkiKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgpOgorICAgICAgICBzZWxmLnBhdGggPSBwYXRoCisKKyAgICBkZWYgZ2V0X2RhdGEoc2VsZiwgcGF0aCk6CisgICAgICAgIGlmIHBhdGggIT0gc2VsZi5wYXRoOgorICAgICAgICAgICAgcmFpc2UgSU9FcnJvcgorICAgICAgICByZXR1cm4gc2VsZi5zb3VyY2UKKworICAgIGRlZiBnZXRfZmlsZW5hbWUoc2VsZiwgZnVsbG5hbWUpOgorICAgICAgICByZXR1cm4gc2VsZi5wYXRoCisKKyAgICBkZWYgbW9kdWxlX3JlcHIoc2VsZiwgbW9kdWxlKToKKyAgICAgICAgcmV0dXJuICc8bW9kdWxlPicKKworCitjbGFzcyBTb3VyY2VMb2FkZXJNb2NrKFNvdXJjZU9ubHlMb2FkZXJNb2NrKToKKworICAgIHNvdXJjZV9tdGltZSA9IDEKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoLCBtYWdpYz1pbXAuZ2V0X21hZ2ljKCkpOgorICAgICAgICBzdXBlcigpLl9faW5pdF9fKHBhdGgpCisgICAgICAgIHNlbGYuYnl0ZWNvZGVfcGF0aCA9IGltcC5jYWNoZV9mcm9tX3NvdXJjZShzZWxmLnBhdGgpCisgICAgICAgIHNlbGYuc291cmNlX3NpemUgPSBsZW4oc2VsZi5zb3VyY2UpCisgICAgICAgIGRhdGEgPSBieXRlYXJyYXkobWFnaWMpCisgICAgICAgIGRhdGEuZXh0ZW5kKGltcG9ydGxpYi5fd19sb25nKHNlbGYuc291cmNlX210aW1lKSkKKyAgICAgICAgZGF0YS5leHRlbmQoaW1wb3J0bGliLl93X2xvbmcoc2VsZi5zb3VyY2Vfc2l6ZSkpCisgICAgICAgIGNvZGVfb2JqZWN0ID0gY29tcGlsZShzZWxmLnNvdXJjZSwgc2VsZi5wYXRoLCAnZXhlYycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbnRfaW5oZXJpdD1UcnVlKQorICAgICAgICBkYXRhLmV4dGVuZChtYXJzaGFsLmR1bXBzKGNvZGVfb2JqZWN0KSkKKyAgICAgICAgc2VsZi5ieXRlY29kZSA9IGJ5dGVzKGRhdGEpCisgICAgICAgIHNlbGYud3JpdHRlbiA9IHt9CisKKyAgICBkZWYgZ2V0X2RhdGEoc2VsZiwgcGF0aCk6CisgICAgICAgIGlmIHBhdGggPT0gc2VsZi5wYXRoOgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkuZ2V0X2RhdGEocGF0aCkKKyAgICAgICAgZWxpZiBwYXRoID09IHNlbGYuYnl0ZWNvZGVfcGF0aDoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmJ5dGVjb2RlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBPU0Vycm9yCisKKyAgICBkZWYgcGF0aF9zdGF0cyhzZWxmLCBwYXRoKToKKyAgICAgICAgaWYgcGF0aCAhPSBzZWxmLnBhdGg6CisgICAgICAgICAgICByYWlzZSBJT0Vycm9yCisgICAgICAgIHJldHVybiB7J210aW1lJzogc2VsZi5zb3VyY2VfbXRpbWUsICdzaXplJzogc2VsZi5zb3VyY2Vfc2l6ZX0KKworICAgIGRlZiBzZXRfZGF0YShzZWxmLCBwYXRoLCBkYXRhKToKKyAgICAgICAgc2VsZi53cml0dGVuW3BhdGhdID0gYnl0ZXMoZGF0YSkKKyAgICAgICAgcmV0dXJuIHBhdGggPT0gc2VsZi5ieXRlY29kZV9wYXRoCisKKworY2xhc3MgU291cmNlTG9hZGVyVGVzdEhhcm5lc3ModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHNldFVwKHNlbGYsICosIGlzX3BhY2thZ2U9VHJ1ZSwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLnBhY2thZ2UgPSAncGtnJworICAgICAgICBpZiBpc19wYWNrYWdlOgorICAgICAgICAgICAgc2VsZi5wYXRoID0gb3MucGF0aC5qb2luKHNlbGYucGFja2FnZSwgJ19faW5pdF9fLnB5JykKKyAgICAgICAgICAgIHNlbGYubmFtZSA9IHNlbGYucGFja2FnZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbW9kdWxlX25hbWUgPSAnbW9kJworICAgICAgICAgICAgc2VsZi5wYXRoID0gb3MucGF0aC5qb2luKHNlbGYucGFja2FnZSwgJy4nLmpvaW4oWydtb2QnLCAncHknXSkpCisgICAgICAgICAgICBzZWxmLm5hbWUgPSAnLicuam9pbihbc2VsZi5wYWNrYWdlLCBtb2R1bGVfbmFtZV0pCisgICAgICAgIHNlbGYuY2FjaGVkID0gaW1wLmNhY2hlX2Zyb21fc291cmNlKHNlbGYucGF0aCkKKyAgICAgICAgc2VsZi5sb2FkZXIgPSBzZWxmLmxvYWRlcl9tb2NrKHNlbGYucGF0aCwgKiprd2FyZ3MpCisKKyAgICBkZWYgdmVyaWZ5X21vZHVsZShzZWxmLCBtb2R1bGUpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX25hbWVfXywgc2VsZi5uYW1lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX2ZpbGVfXywgc2VsZi5wYXRoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX2NhY2hlZF9fLCBzZWxmLmNhY2hlZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19wYWNrYWdlX18sIHNlbGYucGFja2FnZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19sb2FkZXJfXywgc2VsZi5sb2FkZXIpCisgICAgICAgIHZhbHVlcyA9IG1vZHVsZS5fLnNwbGl0KCc6OicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmFsdWVzWzBdLCBzZWxmLm5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmFsdWVzWzFdLCBzZWxmLnBhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmFsdWVzWzJdLCBzZWxmLmNhY2hlZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2YWx1ZXNbM10sIHNlbGYucGFja2FnZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2YWx1ZXNbNF0sIHJlcHIoc2VsZi5sb2FkZXIpKQorCisgICAgZGVmIHZlcmlmeV9jb2RlKHNlbGYsIGNvZGVfb2JqZWN0KToKKyAgICAgICAgbW9kdWxlID0gaW1wLm5ld19tb2R1bGUoc2VsZi5uYW1lKQorICAgICAgICBtb2R1bGUuX19maWxlX18gPSBzZWxmLnBhdGgKKyAgICAgICAgbW9kdWxlLl9fY2FjaGVkX18gPSBzZWxmLmNhY2hlZAorICAgICAgICBtb2R1bGUuX19wYWNrYWdlX18gPSBzZWxmLnBhY2thZ2UKKyAgICAgICAgbW9kdWxlLl9fbG9hZGVyX18gPSBzZWxmLmxvYWRlcgorICAgICAgICBtb2R1bGUuX19wYXRoX18gPSBbXQorICAgICAgICBleGVjKGNvZGVfb2JqZWN0LCBtb2R1bGUuX19kaWN0X18pCisgICAgICAgIHNlbGYudmVyaWZ5X21vZHVsZShtb2R1bGUpCisKKworY2xhc3MgU291cmNlT25seUxvYWRlclRlc3RzKFNvdXJjZUxvYWRlclRlc3RIYXJuZXNzKToKKworICAgICIiIlRlc3QgaW1wb3J0bGliLmFiYy5Tb3VyY2VMb2FkZXIgZm9yIHNvdXJjZS1vbmx5IGxvYWRpbmcuCisKKyAgICBSZWxvYWQgdGVzdGluZyBpcyBzdWJzdW1lZCBieSB0aGUgdGVzdHMgZm9yCisgICAgaW1wb3J0bGliLnV0aWwubW9kdWxlX2Zvcl9sb2FkZXIuCisKKyAgICAiIiIKKworICAgIGxvYWRlcl9tb2NrID0gU291cmNlT25seUxvYWRlck1vY2sKKworICAgIGRlZiB0ZXN0X2dldF9zb3VyY2Uoc2VsZik6CisgICAgICAgICMgVmVyaWZ5IHRoZSBzb3VyY2UgY29kZSBpcyByZXR1cm5lZCBhcyBhIHN0cmluZy4KKyAgICAgICAgIyBJZiBhbiBPU0Vycm9yIGlzIHJhaXNlZCBieSBnZXRfZGF0YSB0aGVuIHJhaXNlIEltcG9ydEVycm9yLgorICAgICAgICBleHBlY3RlZF9zb3VyY2UgPSBzZWxmLmxvYWRlci5zb3VyY2UuZGVjb2RlKCd1dGYtOCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5sb2FkZXIuZ2V0X3NvdXJjZShzZWxmLm5hbWUpLCBleHBlY3RlZF9zb3VyY2UpCisgICAgICAgIGRlZiByYWlzZV9PU0Vycm9yKHBhdGgpOgorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcgorICAgICAgICBzZWxmLmxvYWRlci5nZXRfZGF0YSA9IHJhaXNlX09TRXJyb3IKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcikgYXMgY206CisgICAgICAgICAgICBzZWxmLmxvYWRlci5nZXRfc291cmNlKHNlbGYubmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24ubmFtZSwgc2VsZi5uYW1lKQorCisgICAgZGVmIHRlc3RfaXNfcGFja2FnZShzZWxmKToKKyAgICAgICAgIyBQcm9wZXJseSBkZXRlY3Qgd2hlbiBsb2FkaW5nIGEgcGFja2FnZS4KKyAgICAgICAgc2VsZi5zZXRVcChpc19wYWNrYWdlPUZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYubG9hZGVyLmlzX3BhY2thZ2Uoc2VsZi5uYW1lKSkKKyAgICAgICAgc2VsZi5zZXRVcChpc19wYWNrYWdlPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmxvYWRlci5pc19wYWNrYWdlKHNlbGYubmFtZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5sb2FkZXIuaXNfcGFja2FnZShzZWxmLm5hbWUgKyAnLl9faW5pdF9fJykpCisKKyAgICBkZWYgdGVzdF9nZXRfY29kZShzZWxmKToKKyAgICAgICAgIyBWZXJpZnkgdGhlIGNvZGUgb2JqZWN0IGlzIGNyZWF0ZWQuCisgICAgICAgIGNvZGVfb2JqZWN0ID0gc2VsZi5sb2FkZXIuZ2V0X2NvZGUoc2VsZi5uYW1lKQorICAgICAgICBzZWxmLnZlcmlmeV9jb2RlKGNvZGVfb2JqZWN0KQorCisgICAgZGVmIHRlc3Rfc291cmNlX3RvX2NvZGUoc2VsZik6CisgICAgICAgICMgVmVyaWZ5IHRoZSBjb21waWxlZCBjb2RlIG9iamVjdC4KKyAgICAgICAgY29kZSA9IHNlbGYubG9hZGVyLnNvdXJjZV90b19jb2RlKHNlbGYubG9hZGVyLnNvdXJjZSwgc2VsZi5wYXRoKQorICAgICAgICBzZWxmLnZlcmlmeV9jb2RlKGNvZGUpCisKKyAgICBkZWYgdGVzdF9sb2FkX21vZHVsZShzZWxmKToKKyAgICAgICAgIyBMb2FkaW5nIGEgbW9kdWxlIHNob3VsZCBzZXQgX19uYW1lX18sIF9fbG9hZGVyX18sIF9fcGFja2FnZV9fLAorICAgICAgICAjIF9fcGF0aF9fIChmb3IgcGFja2FnZXMpLCBfX2ZpbGVfXywgYW5kIF9fY2FjaGVkX18uCisgICAgICAgICMgVGhlIG1vZHVsZSBzaG91bGQgYWxzbyBiZSBwdXQgaW50byBzeXMubW9kdWxlcy4KKyAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUoc2VsZi5uYW1lKToKKyAgICAgICAgICAgIG1vZHVsZSA9IHNlbGYubG9hZGVyLmxvYWRfbW9kdWxlKHNlbGYubmFtZSkKKyAgICAgICAgICAgIHNlbGYudmVyaWZ5X21vZHVsZShtb2R1bGUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX3BhdGhfXywgW29zLnBhdGguZGlybmFtZShzZWxmLnBhdGgpXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5uYW1lLCBzeXMubW9kdWxlcykKKworICAgIGRlZiB0ZXN0X3BhY2thZ2Vfc2V0dGluZ3Moc2VsZik6CisgICAgICAgICMgX19wYWNrYWdlX18gbmVlZHMgdG8gYmUgc2V0LCB3aGlsZSBfX3BhdGhfXyBpcyBzZXQgb24gaWYgdGhlIG1vZHVsZQorICAgICAgICAjIGlzIGEgcGFja2FnZS4KKyAgICAgICAgIyBUZXN0aW5nIHRoZSB2YWx1ZXMgZm9yIGEgcGFja2FnZSBhcmUgY292ZXJlZCBieSB0ZXN0X2xvYWRfbW9kdWxlLgorICAgICAgICBzZWxmLnNldFVwKGlzX3BhY2thZ2U9RmFsc2UpCisgICAgICAgIHdpdGggdXRpbC51bmNhY2hlKHNlbGYubmFtZSk6CisgICAgICAgICAgICBtb2R1bGUgPSBzZWxmLmxvYWRlci5sb2FkX21vZHVsZShzZWxmLm5hbWUpCisgICAgICAgICAgICBzZWxmLnZlcmlmeV9tb2R1bGUobW9kdWxlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vdCBoYXNhdHRyKG1vZHVsZSwgJ19fcGF0aF9fJykpCisKKyAgICBkZWYgdGVzdF9nZXRfc291cmNlX2VuY29kaW5nKHNlbGYpOgorICAgICAgICAjIFNvdXJjZSBpcyBjb25zaWRlcmVkIGVuY29kZWQgaW4gVVRGLTggYnkgZGVmYXVsdCB1bmxlc3Mgb3RoZXJ3aXNlCisgICAgICAgICMgc3BlY2lmaWVkIGJ5IGFuIGVuY29kaW5nIGxpbmUuCisgICAgICAgIHNvdXJjZSA9ICJfID0gJ8O8JyIKKyAgICAgICAgc2VsZi5sb2FkZXIuc291cmNlID0gc291cmNlLmVuY29kZSgndXRmLTgnKQorICAgICAgICByZXR1cm5lZF9zb3VyY2UgPSBzZWxmLmxvYWRlci5nZXRfc291cmNlKHNlbGYubmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5lZF9zb3VyY2UsIHNvdXJjZSkKKyAgICAgICAgc291cmNlID0gIiMgY29kaW5nOiBsYXRpbi0xXG5fID0gw7wiCisgICAgICAgIHNlbGYubG9hZGVyLnNvdXJjZSA9IHNvdXJjZS5lbmNvZGUoJ2xhdGluLTEnKQorICAgICAgICByZXR1cm5lZF9zb3VyY2UgPSBzZWxmLmxvYWRlci5nZXRfc291cmNlKHNlbGYubmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5lZF9zb3VyY2UsIHNvdXJjZSkKKworCitAdW5pdHRlc3Quc2tpcElmKHN5cy5kb250X3dyaXRlX2J5dGVjb2RlLCAic3lzLmRvbnRfd3JpdGVfYnl0ZWNvZGUgaXMgdHJ1ZSIpCitjbGFzcyBTb3VyY2VMb2FkZXJCeXRlY29kZVRlc3RzKFNvdXJjZUxvYWRlclRlc3RIYXJuZXNzKToKKworICAgICIiIlRlc3QgaW1wb3J0bGliLmFiYy5Tb3VyY2VMb2FkZXIncyB1c2Ugb2YgYnl0ZWNvZGUuCisKKyAgICBTb3VyY2Utb25seSB0ZXN0aW5nIGhhbmRsZWQgYnkgU291cmNlT25seUxvYWRlclRlc3RzLgorCisgICAgIiIiCisKKyAgICBsb2FkZXJfbW9jayA9IFNvdXJjZUxvYWRlck1vY2sKKworICAgIGRlZiB2ZXJpZnlfY29kZShzZWxmLCBjb2RlX29iamVjdCwgKiwgYnl0ZWNvZGVfd3JpdHRlbj1GYWxzZSk6CisgICAgICAgIHN1cGVyKCkudmVyaWZ5X2NvZGUoY29kZV9vYmplY3QpCisgICAgICAgIGlmIGJ5dGVjb2RlX3dyaXR0ZW46CisgICAgICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYuY2FjaGVkLCBzZWxmLmxvYWRlci53cml0dGVuKQorICAgICAgICAgICAgZGF0YSA9IGJ5dGVhcnJheShpbXAuZ2V0X21hZ2ljKCkpCisgICAgICAgICAgICBkYXRhLmV4dGVuZChpbXBvcnRsaWIuX3dfbG9uZyhzZWxmLmxvYWRlci5zb3VyY2VfbXRpbWUpKQorICAgICAgICAgICAgZGF0YS5leHRlbmQoaW1wb3J0bGliLl93X2xvbmcoc2VsZi5sb2FkZXIuc291cmNlX3NpemUpKQorICAgICAgICAgICAgZGF0YS5leHRlbmQobWFyc2hhbC5kdW1wcyhjb2RlX29iamVjdCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubG9hZGVyLndyaXR0ZW5bc2VsZi5jYWNoZWRdLCBieXRlcyhkYXRhKSkKKworICAgIGRlZiB0ZXN0X2NvZGVfd2l0aF9ldmVyeXRoaW5nKHNlbGYpOgorICAgICAgICAjIFdoZW4gZXZlcnl0aGluZyBzaG91bGQgd29yay4KKyAgICAgICAgY29kZV9vYmplY3QgPSBzZWxmLmxvYWRlci5nZXRfY29kZShzZWxmLm5hbWUpCisgICAgICAgIHNlbGYudmVyaWZ5X2NvZGUoY29kZV9vYmplY3QpCisKKyAgICBkZWYgdGVzdF9ub19ieXRlY29kZShzZWxmKToKKyAgICAgICAgIyBJZiBubyBieXRlY29kZSBleGlzdHMgdGhlbiBtb3ZlIG9uIHRvIHRoZSBzb3VyY2UuCisgICAgICAgIHNlbGYubG9hZGVyLmJ5dGVjb2RlX3BhdGggPSAiPGRvZXMgbm90IGV4aXN0PiIKKyAgICAgICAgIyBTYW5pdHkgY2hlY2sKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKToKKyAgICAgICAgICAgIGJ5dGVjb2RlX3BhdGggPSBpbXAuY2FjaGVfZnJvbV9zb3VyY2Uoc2VsZi5wYXRoKQorICAgICAgICAgICAgc2VsZi5sb2FkZXIuZ2V0X2RhdGEoYnl0ZWNvZGVfcGF0aCkKKyAgICAgICAgY29kZV9vYmplY3QgPSBzZWxmLmxvYWRlci5nZXRfY29kZShzZWxmLm5hbWUpCisgICAgICAgIHNlbGYudmVyaWZ5X2NvZGUoY29kZV9vYmplY3QsIGJ5dGVjb2RlX3dyaXR0ZW49VHJ1ZSkKKworICAgIGRlZiB0ZXN0X2NvZGVfYmFkX3RpbWVzdGFtcChzZWxmKToKKyAgICAgICAgIyBCeXRlY29kZSBpcyBvbmx5IHVzZWQgd2hlbiB0aGUgdGltZXN0YW1wIG1hdGNoZXMgdGhlIHNvdXJjZSBFWEFDVExZLgorICAgICAgICBmb3Igc291cmNlX210aW1lIGluICgwLCAyKToKKyAgICAgICAgICAgIGFzc2VydCBzb3VyY2VfbXRpbWUgIT0gc2VsZi5sb2FkZXIuc291cmNlX210aW1lCisgICAgICAgICAgICBvcmlnaW5hbCA9IHNlbGYubG9hZGVyLnNvdXJjZV9tdGltZQorICAgICAgICAgICAgc2VsZi5sb2FkZXIuc291cmNlX210aW1lID0gc291cmNlX210aW1lCisgICAgICAgICAgICAjIElmIGJ5dGVjb2RlIGlzIHVzZWQgdGhlbiBFT0ZFcnJvciB3b3VsZCBiZSByYWlzZWQgYnkgbWFyc2hhbC4KKyAgICAgICAgICAgIHNlbGYubG9hZGVyLmJ5dGVjb2RlID0gc2VsZi5sb2FkZXIuYnl0ZWNvZGVbODpdCisgICAgICAgICAgICBjb2RlX29iamVjdCA9IHNlbGYubG9hZGVyLmdldF9jb2RlKHNlbGYubmFtZSkKKyAgICAgICAgICAgIHNlbGYudmVyaWZ5X2NvZGUoY29kZV9vYmplY3QsIGJ5dGVjb2RlX3dyaXR0ZW49VHJ1ZSkKKyAgICAgICAgICAgIHNlbGYubG9hZGVyLnNvdXJjZV9tdGltZSA9IG9yaWdpbmFsCisKKyAgICBkZWYgdGVzdF9jb2RlX2JhZF9tYWdpYyhzZWxmKToKKyAgICAgICAgIyBTa2lwIG92ZXIgYnl0ZWNvZGUgd2l0aCBhIGJhZCBtYWdpYyBudW1iZXIuCisgICAgICAgIHNlbGYuc2V0VXAobWFnaWM9YicwMDAwJykKKyAgICAgICAgIyBJZiBieXRlY29kZSBpcyB1c2VkIHRoZW4gRU9GRXJyb3Igd291bGQgYmUgcmFpc2VkIGJ5IG1hcnNoYWwuCisgICAgICAgIHNlbGYubG9hZGVyLmJ5dGVjb2RlID0gc2VsZi5sb2FkZXIuYnl0ZWNvZGVbODpdCisgICAgICAgIGNvZGVfb2JqZWN0ID0gc2VsZi5sb2FkZXIuZ2V0X2NvZGUoc2VsZi5uYW1lKQorICAgICAgICBzZWxmLnZlcmlmeV9jb2RlKGNvZGVfb2JqZWN0LCBieXRlY29kZV93cml0dGVuPVRydWUpCisKKyAgICBkZWYgdGVzdF9kb250X3dyaXRlX2J5dGVjb2RlKHNlbGYpOgorICAgICAgICAjIEJ5dGVjb2RlIGlzIG5vdCB3cml0dGVuIGlmIHN5cy5kb250X3dyaXRlX2J5dGVjb2RlIGlzIHRydWUuCisgICAgICAgICMgQ2FuIGFzc3VtZSBpdCBpcyBmYWxzZSBhbHJlYWR5IHRoYW5rcyB0byB0aGUgc2tpcElmIGNsYXNzIGRlY29yYXRvci4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3lzLmRvbnRfd3JpdGVfYnl0ZWNvZGUgPSBUcnVlCisgICAgICAgICAgICBzZWxmLmxvYWRlci5ieXRlY29kZV9wYXRoID0gIjxkb2VzIG5vdCBleGlzdD4iCisgICAgICAgICAgICBjb2RlX29iamVjdCA9IHNlbGYubG9hZGVyLmdldF9jb2RlKHNlbGYubmFtZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oc2VsZi5jYWNoZWQsIHNlbGYubG9hZGVyLndyaXR0ZW4pCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzeXMuZG9udF93cml0ZV9ieXRlY29kZSA9IEZhbHNlCisKKyAgICBkZWYgdGVzdF9ub19zZXRfZGF0YShzZWxmKToKKyAgICAgICAgIyBJZiBzZXRfZGF0YSBpcyBub3QgZGVmaW5lZCwgb25lIGNhbiBzdGlsbCByZWFkIGJ5dGVjb2RlLgorICAgICAgICBzZWxmLnNldFVwKG1hZ2ljPWInMDAwMCcpCisgICAgICAgIG9yaWdpbmFsX3NldF9kYXRhID0gc2VsZi5sb2FkZXIuX19jbGFzc19fLnNldF9kYXRhCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRlbCBzZWxmLmxvYWRlci5fX2NsYXNzX18uc2V0X2RhdGEKKyAgICAgICAgICAgIGNvZGVfb2JqZWN0ID0gc2VsZi5sb2FkZXIuZ2V0X2NvZGUoc2VsZi5uYW1lKQorICAgICAgICAgICAgc2VsZi52ZXJpZnlfY29kZShjb2RlX29iamVjdCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYubG9hZGVyLl9fY2xhc3NfXy5zZXRfZGF0YSA9IG9yaWdpbmFsX3NldF9kYXRhCisKKyAgICBkZWYgdGVzdF9zZXRfZGF0YV9yYWlzZXNfZXhjZXB0aW9ucyhzZWxmKToKKyAgICAgICAgIyBSYWlzaW5nIE5vdEltcGxlbWVudGVkRXJyb3Igb3IgT1NFcnJvciBpcyBva2F5IGZvciBzZXRfZGF0YS4KKyAgICAgICAgZGVmIHJhaXNlX2V4Y2VwdGlvbihleGMpOgorICAgICAgICAgICAgZGVmIGNsb3N1cmUoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICByYWlzZSBleGMKKyAgICAgICAgICAgIHJldHVybiBjbG9zdXJlCisKKyAgICAgICAgc2VsZi5zZXRVcChtYWdpYz1iJzAwMDAnKQorICAgICAgICBzZWxmLmxvYWRlci5zZXRfZGF0YSA9IHJhaXNlX2V4Y2VwdGlvbihOb3RJbXBsZW1lbnRlZEVycm9yKQorICAgICAgICBjb2RlX29iamVjdCA9IHNlbGYubG9hZGVyLmdldF9jb2RlKHNlbGYubmFtZSkKKyAgICAgICAgc2VsZi52ZXJpZnlfY29kZShjb2RlX29iamVjdCkKKworCitjbGFzcyBTb3VyY2VMb2FkZXJHZXRTb3VyY2VUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICAiIiJUZXN0cyBmb3IgaW1wb3J0bGliLmFiYy5Tb3VyY2VMb2FkZXIuZ2V0X3NvdXJjZSgpLiIiIgorCisgICAgZGVmIHRlc3RfZGVmYXVsdF9lbmNvZGluZyhzZWxmKToKKyAgICAgICAgIyBTaG91bGQgaGF2ZSBubyBwcm9ibGVtcyB3aXRoIFVURi04IHRleHQuCisgICAgICAgIG5hbWUgPSAnbW9kJworICAgICAgICBtb2NrID0gU291cmNlT25seUxvYWRlck1vY2soJ21vZC5maWxlJykKKyAgICAgICAgc291cmNlID0gJ3ggPSAiw7wiJworICAgICAgICBtb2NrLnNvdXJjZSA9IHNvdXJjZS5lbmNvZGUoJ3V0Zi04JykKKyAgICAgICAgcmV0dXJuZWRfc291cmNlID0gbW9jay5nZXRfc291cmNlKG5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuZWRfc291cmNlLCBzb3VyY2UpCisKKyAgICBkZWYgdGVzdF9kZWNvZGVkX3NvdXJjZShzZWxmKToKKyAgICAgICAgIyBEZWNvZGluZyBzaG91bGQgd29yay4KKyAgICAgICAgbmFtZSA9ICdtb2QnCisgICAgICAgIG1vY2sgPSBTb3VyY2VPbmx5TG9hZGVyTW9jaygibW9kLmZpbGUiKQorICAgICAgICBzb3VyY2UgPSAiIyBjb2Rpbmc6IExhdGluLTFcbng9J8O8JyIKKyAgICAgICAgYXNzZXJ0IHNvdXJjZS5lbmNvZGUoJ2xhdGluLTEnKSAhPSBzb3VyY2UuZW5jb2RlKCd1dGYtOCcpCisgICAgICAgIG1vY2suc291cmNlID0gc291cmNlLmVuY29kZSgnbGF0aW4tMScpCisgICAgICAgIHJldHVybmVkX3NvdXJjZSA9IG1vY2suZ2V0X3NvdXJjZShuYW1lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybmVkX3NvdXJjZSwgc291cmNlKQorCisgICAgZGVmIHRlc3RfdW5pdmVyc2FsX25ld2xpbmVzKHNlbGYpOgorICAgICAgICAjIFBFUCAzMDIgc2F5cyB1bml2ZXJzYWwgbmV3bGluZXMgc2hvdWxkIGJlIHVzZWQuCisgICAgICAgIG5hbWUgPSAnbW9kJworICAgICAgICBtb2NrID0gU291cmNlT25seUxvYWRlck1vY2soJ21vZC5maWxlJykKKyAgICAgICAgc291cmNlID0gInggPSA0MlxyXG55ID0gLTEzXHJcbiIKKyAgICAgICAgbW9jay5zb3VyY2UgPSBzb3VyY2UuZW5jb2RlKCd1dGYtOCcpCisgICAgICAgIGV4cGVjdCA9IGlvLkluY3JlbWVudGFsTmV3bGluZURlY29kZXIoTm9uZSwgVHJ1ZSkuZGVjb2RlKHNvdXJjZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmdldF9zb3VyY2UobmFtZSksIGV4cGVjdCkKKworCitjbGFzcyBTb3VyY2VMb2FkZXJJbml0TW9kdWxlQXR0clRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgICIiIlRlc3RzIGZvciBpbXBvcnRsaWIuYWJjLlNvdXJjZUxvYWRlci5pbml0X21vZHVsZV9hdHRycygpLiIiIgorCisgICAgZGVmIHRlc3RfaW5pdF9tb2R1bGVfYXR0cnMoc2VsZik6CisgICAgICAgICMgSWYgX19maWxlX18gc2V0LCBfX2NhY2hlZF9fID09IGltcC5jYWNoZWRfZnJvbV9zb3VyY2UoX19maWxlX18pLgorICAgICAgICBuYW1lID0gJ2JsYWgnCisgICAgICAgIHBhdGggPSAnYmxhaC5weScKKyAgICAgICAgbG9hZGVyID0gU291cmNlT25seUxvYWRlck1vY2socGF0aCkKKyAgICAgICAgbW9kdWxlID0gaW1wLm5ld19tb2R1bGUobmFtZSkKKyAgICAgICAgbG9hZGVyLmluaXRfbW9kdWxlX2F0dHJzKG1vZHVsZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19sb2FkZXJfXywgbG9hZGVyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX3BhY2thZ2VfXywgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLl9fZmlsZV9fLCBwYXRoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX2NhY2hlZF9fLCBpbXAuY2FjaGVfZnJvbV9zb3VyY2UocGF0aCkpCisKKyAgICBAbW9jay5wYXRjaCgnaW1wb3J0bGliLl9ib290c3RyYXAuY2FjaGVfZnJvbV9zb3VyY2UnKQorICAgIGRlZiB0ZXN0X2NhY2hlX2Zyb21fc291cmNlX05vdEltcGxlbWVudGVkRXJyb3Ioc2VsZiwgbW9ja19jYWNoZV9mcm9tX3NvdXJjZSk6CisgICAgICAgICMgSWYgaW1wLmNhY2hlX2Zyb21fc291cmNlKCkgcmFpc2VzIE5vdEltcGxlbWVudGVkRXJyb3IgZG9uJ3Qgc2V0CisgICAgICAgICMgX19jYWNoZWRfXy4KKyAgICAgICAgbW9ja19jYWNoZV9mcm9tX3NvdXJjZS5zaWRlX2VmZmVjdCA9IE5vdEltcGxlbWVudGVkRXJyb3IKKyAgICAgICAgbmFtZSA9ICdibGFoJworICAgICAgICBwYXRoID0gJ2JsYWgucHknCisgICAgICAgIGxvYWRlciA9IFNvdXJjZU9ubHlMb2FkZXJNb2NrKHBhdGgpCisgICAgICAgIG1vZHVsZSA9IGltcC5uZXdfbW9kdWxlKG5hbWUpCisgICAgICAgIGxvYWRlci5pbml0X21vZHVsZV9hdHRycyhtb2R1bGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLl9fZmlsZV9fLCBwYXRoKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIobW9kdWxlLCAnX19jYWNoZWRfXycpKQorCisgICAgZGVmIHRlc3Rfbm9fZ2V0X2ZpbGVuYW1lKHNlbGYpOgorICAgICAgICAjIE5vIF9fZmlsZV9fLCBubyBfX2NhY2hlZF9fLgorICAgICAgICB3aXRoIG1vY2sucGF0Y2gub2JqZWN0KFNvdXJjZU9ubHlMb2FkZXJNb2NrLCAnZ2V0X2ZpbGVuYW1lJykgYXMgbW9ja2VkOgorICAgICAgICAgICAgbW9ja2VkLnNpZGVfZWZmZWN0ID0gSW1wb3J0RXJyb3IKKyAgICAgICAgICAgIG5hbWUgPSAnYmxhaCcKKyAgICAgICAgICAgIGxvYWRlciA9IFNvdXJjZU9ubHlMb2FkZXJNb2NrKCdibGFoLnB5JykKKyAgICAgICAgICAgIG1vZHVsZSA9IGltcC5uZXdfbW9kdWxlKG5hbWUpCisgICAgICAgICAgICBsb2FkZXIuaW5pdF9tb2R1bGVfYXR0cnMobW9kdWxlKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIobW9kdWxlLCAnX19maWxlX18nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKG1vZHVsZSwgJ19fY2FjaGVkX18nKSkKKwogCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdGVzdF9tYWluKCkKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfaW1wb3J0bGliL3Rlc3RfYXBpLnB5IGIvTGliL3Rlc3QvdGVzdF9pbXBvcnRsaWIvdGVzdF9hcGkucHkKaW5kZXggYjFhNTg5NC4uMjk3ZDZjYiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9pbXBvcnRsaWIvdGVzdF9hcGkucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9pbXBvcnRsaWIvdGVzdF9hcGkucHkKQEAgLTEsNiArMSw3IEBACiBmcm9tIC4gaW1wb3J0IHV0aWwKIGltcG9ydCBpbXAKIGltcG9ydCBpbXBvcnRsaWIKK2Zyb20gaW1wb3J0bGliIGltcG9ydCBfYm9vdHN0cmFwCiBmcm9tIGltcG9ydGxpYiBpbXBvcnQgbWFjaGluZXJ5CiBpbXBvcnQgc3lzCiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKQEAgLTExNSw2ICsxMTYsMjAgQEAKICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CiAgICAgICAgICAgICAgICAgaW1wb3J0bGliLmZpbmRfbG9hZGVyKG5hbWUpCiAKKyAgICBkZWYgdGVzdF9zeXNfbW9kdWxlc19sb2FkZXJfaXNfbm90X3NldChzZWxmKToKKyAgICAgICAgIyBTaG91bGQgcmFpc2UgVmFsdWVFcnJvcgorICAgICAgICAjIElzc3VlICMxNzA5OQorICAgICAgICBuYW1lID0gJ3NvbWVfbW9kJworICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKToKKyAgICAgICAgICAgIG1vZHVsZSA9IGltcC5uZXdfbW9kdWxlKG5hbWUpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZGVsIG1vZHVsZS5fX2xvYWRlcl9fCisgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgc3lzLm1vZHVsZXNbbmFtZV0gPSBtb2R1bGUKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICAgICAgaW1wb3J0bGliLmZpbmRfbG9hZGVyKG5hbWUpCisKICAgICBkZWYgdGVzdF9zdWNjZXNzKHNlbGYpOgogICAgICAgICAjIFJldHVybiB0aGUgbG9hZGVyIGZvdW5kIG9uIHN5cy5tZXRhX3BhdGguCiAgICAgICAgIG5hbWUgPSAnc29tZV9tb2QnCkBAIC0xODIsMjEgKzE5NywxMyBAQAogICAgICAgICAjIElzc3VlICMxNzA5ODogYWxsIG1vZHVsZXMgc2hvdWxkIGhhdmUgX19sb2FkZXJfXyBkZWZpbmVkLgogICAgICAgICBmb3IgbmFtZSwgbW9kdWxlIGluIHN5cy5tb2R1bGVzLml0ZW1zKCk6CiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKG1vZHVsZSwgdHlwZXMuTW9kdWxlVHlwZSk6Ci0gICAgICAgICAgICAgICAgaWYgbmFtZSBpbiBzeXMuYnVpbHRpbl9tb2R1bGVfbmFtZXM6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1wb3J0bGliLm1hY2hpbmVyeS5CdWlsdGluSW1wb3J0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlLl9fbG9hZGVyX18pCi0gICAgICAgICAgICAgICAgZWxpZiBpbXAuaXNfZnJvemVuKG5hbWUpOgotICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGltcG9ydGxpYi5tYWNoaW5lcnkuRnJvemVuSW1wb3J0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlLl9fbG9hZGVyX18pCi0KLWRlZiB0ZXN0X21haW4oKToKLSAgICBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0Ci0gICAgcnVuX3VuaXR0ZXN0KEltcG9ydE1vZHVsZVRlc3RzLAotICAgICAgICAgICAgICAgICBGaW5kTG9hZGVyVGVzdHMsCi0gICAgICAgICAgICAgICAgIEludmFsaWRhdGVDYWNoZVRlc3RzLAotICAgICAgICAgICAgICAgICBGcm96ZW5JbXBvcnRsaWJUZXN0cywKLSAgICAgICAgICAgICAgICAgU3RhcnR1cFRlc3RzKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKG1vZHVsZSwgJ19fbG9hZGVyX18nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3shcn0gbGFja3MgYSBfX2xvYWRlcl9fIGF0dHJpYnV0ZScuZm9ybWF0KG5hbWUpKQorICAgICAgICAgICAgICAgIGlmIGltcG9ydGxpYi5tYWNoaW5lcnkuQnVpbHRpbkltcG9ydGVyLmZpbmRfbW9kdWxlKG5hbWUpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90KG1vZHVsZS5fX2xvYWRlcl9fLCBOb25lKQorICAgICAgICAgICAgICAgIGVsaWYgaW1wb3J0bGliLm1hY2hpbmVyeS5Gcm96ZW5JbXBvcnRlci5maW5kX21vZHVsZShuYW1lKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdChtb2R1bGUuX19sb2FkZXJfXywgTm9uZSkKIAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHRlc3RfbWFpbigpCisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2ltcG9ydGxpYi90ZXN0X3V0aWwucHkgYi9MaWIvdGVzdC90ZXN0X2ltcG9ydGxpYi90ZXN0X3V0aWwucHkKaW5kZXggZWZjODk3Ny4uZTZiMDA4NCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9pbXBvcnRsaWIvdGVzdF91dGlsLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfaW1wb3J0bGliL3Rlc3RfdXRpbC5weQpAQCAtMiwyMiArMiw5OCBAQAogZnJvbSAuIGltcG9ydCB1dGlsIGFzIHRlc3RfdXRpbAogaW1wb3J0IGltcAogaW1wb3J0IHN5cworZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBpbXBvcnQgdHlwZXMKIGltcG9ydCB1bml0dGVzdAoraW1wb3J0IHdhcm5pbmdzCisKKworY2xhc3MgTW9kdWxlVG9Mb2FkVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgbW9kdWxlX25hbWUgPSAnTW9kdWxlTWFuYWdlclRlc3RfbW9kdWxlJworCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBwb3J0LnVubG9hZChzZWxmLm1vZHVsZV9uYW1lKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc3VwcG9ydC51bmxvYWQsIHNlbGYubW9kdWxlX25hbWUpCisKKyAgICBkZWYgdGVzdF9uZXdfbW9kdWxlKHNlbGYpOgorICAgICAgICAjIFRlc3QgYSBuZXcgbW9kdWxlIGlzIGNyZWF0ZWQsIGluc2VydGVkIGludG8gc3lzLm1vZHVsZXMsIGhhcworICAgICAgICAjIF9faW5pdGlhbGl6aW5nX18gc2V0IHRvIFRydWUgYWZ0ZXIgZW50ZXJpbmcgdGhlIGNvbnRleHQgbWFuYWdlciwKKyAgICAgICAgIyBhbmQgX19pbml0aWFsaXppbmdfXyBzZXQgdG8gRmFsc2UgYWZ0ZXIgZXhpdGluZy4KKyAgICAgICAgd2l0aCB1dGlsLm1vZHVsZV90b19sb2FkKHNlbGYubW9kdWxlX25hbWUpIGFzIG1vZHVsZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5tb2R1bGVfbmFtZSwgc3lzLm1vZHVsZXMpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKHN5cy5tb2R1bGVzW3NlbGYubW9kdWxlX25hbWVdLCBtb2R1bGUpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobW9kdWxlLl9faW5pdGlhbGl6aW5nX18pCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9kdWxlLl9faW5pdGlhbGl6aW5nX18pCisKKyAgICBkZWYgdGVzdF9uZXdfbW9kdWxlX2ZhaWxlZChzZWxmKToKKyAgICAgICAgIyBUZXN0IHRoZSBtb2R1bGUgaXMgcmVtb3ZlZCBmcm9tIHN5cy5tb2R1bGVzLgorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIHV0aWwubW9kdWxlX3RvX2xvYWQoc2VsZi5tb2R1bGVfbmFtZSkgYXMgbW9kdWxlOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5tb2R1bGVfbmFtZSwgc3lzLm1vZHVsZXMpCisgICAgICAgICAgICAgICAgcmFpc2UgZXhjZXB0aW9uCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKHNlbGYubW9kdWxlX25hbWUsIHN5cy5tb2R1bGVzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mYWlsKCdpbXBvcnRsaWIudXRpbC5tb2R1bGVfdG9fbG9hZCBzd2FsbG93ZWQgYW4gZXhjZXB0aW9uJykKKworICAgIGRlZiB0ZXN0X3JlbG9hZChzZWxmKToKKyAgICAgICAgIyBUZXN0IHRoYXQgdGhlIHNhbWUgbW9kdWxlIGlzIGluIHN5cy5tb2R1bGVzLgorICAgICAgICBjcmVhdGVkX21vZHVsZSA9IGltcC5uZXdfbW9kdWxlKHNlbGYubW9kdWxlX25hbWUpCisgICAgICAgIHN5cy5tb2R1bGVzW3NlbGYubW9kdWxlX25hbWVdID0gY3JlYXRlZF9tb2R1bGUKKyAgICAgICAgd2l0aCB1dGlsLm1vZHVsZV90b19sb2FkKHNlbGYubW9kdWxlX25hbWUpIGFzIG1vZHVsZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMobW9kdWxlLCBjcmVhdGVkX21vZHVsZSkKKworICAgIGRlZiB0ZXN0X3JlbG9hZF9mYWlsZWQoc2VsZik6CisgICAgICAgICMgVGVzdCB0aGF0IHRoZSBtb2R1bGUgd2FzIGxlZnQgaW4gc3lzLm1vZHVsZXMuCisgICAgICAgIGNyZWF0ZWRfbW9kdWxlID0gaW1wLm5ld19tb2R1bGUoc2VsZi5tb2R1bGVfbmFtZSkKKyAgICAgICAgc3lzLm1vZHVsZXNbc2VsZi5tb2R1bGVfbmFtZV0gPSBjcmVhdGVkX21vZHVsZQorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIHV0aWwubW9kdWxlX3RvX2xvYWQoc2VsZi5tb2R1bGVfbmFtZSkgYXMgbW9kdWxlOgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbgorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihzZWxmLm1vZHVsZV9uYW1lLCBzeXMubW9kdWxlcykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgnaW1wb3J0bGliLnV0aWwubW9kdWxlX3RvX2xvYWQgc3dhbGxvd2VkIGFuIGV4Y2VwdGlvbicpCisKKyAgICBkZWYgdGVzdF9yZXNldF9uYW1lKHNlbGYpOgorICAgICAgICAjIElmIHJlc2V0X25hbWUgaXMgdHJ1ZSB0aGVuIG1vZHVsZS5fX25hbWVfXyA9IG5hbWUsIGVsc2UgbGVhdmUgaXQgYmUuCisgICAgICAgIG9kZF9uYW1lID0gJ25vdCB5b3VyIHR5cGljYWwgbmFtZScKKyAgICAgICAgY3JlYXRlZF9tb2R1bGUgPSBpbXAubmV3X21vZHVsZShzZWxmLm1vZHVsZV9uYW1lKQorICAgICAgICBjcmVhdGVkX21vZHVsZS5fX25hbWVfXyA9IG9kZF9uYW1lCisgICAgICAgIHN5cy5tb2R1bGVzW3NlbGYubW9kdWxlX25hbWVdID0gY3JlYXRlZF9tb2R1bGUKKyAgICAgICAgd2l0aCB1dGlsLm1vZHVsZV90b19sb2FkKHNlbGYubW9kdWxlX25hbWUpIGFzIG1vZHVsZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLl9fbmFtZV9fLCBzZWxmLm1vZHVsZV9uYW1lKQorICAgICAgICBjcmVhdGVkX21vZHVsZS5fX25hbWVfXyA9IG9kZF9uYW1lCisgICAgICAgIHdpdGggdXRpbC5tb2R1bGVfdG9fbG9hZChzZWxmLm1vZHVsZV9uYW1lLCByZXNldF9uYW1lPUZhbHNlKSBhcyBtb2R1bGU6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX25hbWVfXywgb2RkX25hbWUpCiAKIAogY2xhc3MgTW9kdWxlRm9yTG9hZGVyVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgIiIiVGVzdHMgZm9yIGltcG9ydGxpYi51dGlsLm1vZHVsZV9mb3JfbG9hZGVyLiIiIgogCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBtb2R1bGVfZm9yX2xvYWRlcihmdW5jKToKKyAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncygpOgorICAgICAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdpZ25vcmUnLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICAgICAgcmV0dXJuIHV0aWwubW9kdWxlX2Zvcl9sb2FkZXIoZnVuYykKKworICAgIGRlZiB0ZXN0X3dhcm5pbmcoc2VsZik6CisgICAgICAgICMgU2hvdWxkIHJhaXNlIGEgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZyB3aGVuIHVzZWQuCisgICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcignZXJyb3InLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKToKKyAgICAgICAgICAgICAgICBmdW5jID0gdXRpbC5tb2R1bGVfZm9yX2xvYWRlcihsYW1iZGEgeDogeCkKKwogICAgIGRlZiByZXR1cm5fbW9kdWxlKHNlbGYsIG5hbWUpOgotICAgICAgICBmeG4gPSB1dGlsLm1vZHVsZV9mb3JfbG9hZGVyKGxhbWJkYSBzZWxmLCBtb2R1bGU6IG1vZHVsZSkKKyAgICAgICAgZnhuID0gc2VsZi5tb2R1bGVfZm9yX2xvYWRlcihsYW1iZGEgc2VsZiwgbW9kdWxlOiBtb2R1bGUpCiAgICAgICAgIHJldHVybiBmeG4oc2VsZiwgbmFtZSkKIAogICAgIGRlZiByYWlzZV9leGNlcHRpb24oc2VsZiwgbmFtZSk6CiAgICAgICAgIGRlZiB0b193cmFwKHNlbGYsIG1vZHVsZSk6CiAgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcgotICAgICAgICBmeG4gPSB1dGlsLm1vZHVsZV9mb3JfbG9hZGVyKHRvX3dyYXApCisgICAgICAgIGZ4biA9IHNlbGYubW9kdWxlX2Zvcl9sb2FkZXIodG9fd3JhcCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZnhuKHNlbGYsIG5hbWUpCiAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKQEAgLTM1LDEyICsxMTEsMjMgQEAKIAogICAgIGRlZiB0ZXN0X3JlbG9hZChzZWxmKToKICAgICAgICAgIyBUZXN0IHRoYXQgYSBtb2R1bGUgaXMgcmV1c2VkIGlmIGFscmVhZHkgaW4gc3lzLm1vZHVsZXMuCisgICAgICAgIGNsYXNzIEZha2VMb2FkZXI6CisgICAgICAgICAgICBkZWYgaXNfcGFja2FnZShzZWxmLCBuYW1lKToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgQHNlbGYubW9kdWxlX2Zvcl9sb2FkZXIKKyAgICAgICAgICAgIGRlZiBsb2FkX21vZHVsZShzZWxmLCBtb2R1bGUpOgorICAgICAgICAgICAgICAgIHJldHVybiBtb2R1bGUKICAgICAgICAgbmFtZSA9ICdhLmIuYycKICAgICAgICAgbW9kdWxlID0gaW1wLm5ld19tb2R1bGUoJ2EuYi5jJykKKyAgICAgICAgbW9kdWxlLl9fbG9hZGVyX18gPSA0MgorICAgICAgICBtb2R1bGUuX19wYWNrYWdlX18gPSA0MgogICAgICAgICB3aXRoIHRlc3RfdXRpbC51bmNhY2hlKG5hbWUpOgogICAgICAgICAgICAgc3lzLm1vZHVsZXNbbmFtZV0gPSBtb2R1bGUKLSAgICAgICAgICAgIHJldHVybmVkX21vZHVsZSA9IHNlbGYucmV0dXJuX21vZHVsZShuYW1lKQorICAgICAgICAgICAgbG9hZGVyID0gRmFrZUxvYWRlcigpCisgICAgICAgICAgICByZXR1cm5lZF9tb2R1bGUgPSBsb2FkZXIubG9hZF9tb2R1bGUobmFtZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMocmV0dXJuZWRfbW9kdWxlLCBzeXMubW9kdWxlc1tuYW1lXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLl9fbG9hZGVyX18sIGxvYWRlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLl9fcGFja2FnZV9fLCBuYW1lKQogCiAgICAgZGVmIHRlc3RfbmV3X21vZHVsZV9mYWlsdXJlKHNlbGYpOgogICAgICAgICAjIFRlc3QgdGhhdCBhIG1vZHVsZSBpcyByZW1vdmVkIGZyb20gc3lzLm1vZHVsZXMgaWYgYWRkZWQgYnV0IGFuCkBAIC02MSw3ICsxNDgsNyBAQAogCiAgICAgZGVmIHRlc3RfZGVjb3JhdG9yX2F0dHJzKHNlbGYpOgogICAgICAgICBkZWYgZnhuKHNlbGYsIG1vZHVsZSk6IHBhc3MKLSAgICAgICAgd3JhcHBlZCA9IHV0aWwubW9kdWxlX2Zvcl9sb2FkZXIoZnhuKQorICAgICAgICB3cmFwcGVkID0gc2VsZi5tb2R1bGVfZm9yX2xvYWRlcihmeG4pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JhcHBlZC5fX25hbWVfXywgZnhuLl9fbmFtZV9fKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdyYXBwZWQuX19xdWFsbmFtZV9fLCBmeG4uX19xdWFsbmFtZV9fKQogCkBAIC04Nyw3ICsxNzQsNyBAQAogICAgICAgICAgICAgICAgIHNlbGYuX3BrZyA9IGlzX3BhY2thZ2UKICAgICAgICAgICAgIGRlZiBpc19wYWNrYWdlKHNlbGYsIG5hbWUpOgogICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wa2cKLSAgICAgICAgICAgIEB1dGlsLm1vZHVsZV9mb3JfbG9hZGVyCisgICAgICAgICAgICBAc2VsZi5tb2R1bGVfZm9yX2xvYWRlcgogICAgICAgICAgICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIG1vZHVsZSk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIG1vZHVsZQogCkBAIC0xNjIsNiArMjQ5LDM3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JhcHBlZC5fX3F1YWxuYW1lX18sIGZ4bi5fX3F1YWxuYW1lX18pCiAKIAorY2xhc3MgU2V0TG9hZGVyVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgIiIiVGVzdHMgaW1wb3J0bGliLnV0aWwuc2V0X2xvYWRlcigpLiIiIgorCisgICAgY2xhc3MgRHVtbXlMb2FkZXI6CisgICAgICAgIEB1dGlsLnNldF9sb2FkZXIKKyAgICAgICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIG1vZHVsZSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5tb2R1bGUKKworICAgIGRlZiB0ZXN0X25vX2F0dHJpYnV0ZShzZWxmKToKKyAgICAgICAgbG9hZGVyID0gc2VsZi5EdW1teUxvYWRlcigpCisgICAgICAgIGxvYWRlci5tb2R1bGUgPSBpbXAubmV3X21vZHVsZSgnYmxhaCcpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRlbCBsb2FkZXIubW9kdWxlLl9fbG9hZGVyX18KKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvYWRlciwgbG9hZGVyLmxvYWRfbW9kdWxlKCdibGFoJykuX19sb2FkZXJfXykKKworICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZV9pc19Ob25lKHNlbGYpOgorICAgICAgICBsb2FkZXIgPSBzZWxmLkR1bW15TG9hZGVyKCkKKyAgICAgICAgbG9hZGVyLm1vZHVsZSA9IGltcC5uZXdfbW9kdWxlKCdibGFoJykKKyAgICAgICAgbG9hZGVyLm1vZHVsZS5fX2xvYWRlcl9fID0gTm9uZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvYWRlciwgbG9hZGVyLmxvYWRfbW9kdWxlKCdibGFoJykuX19sb2FkZXJfXykKKworICAgIGRlZiB0ZXN0X25vdF9yZXNldChzZWxmKToKKyAgICAgICAgbG9hZGVyID0gc2VsZi5EdW1teUxvYWRlcigpCisgICAgICAgIGxvYWRlci5tb2R1bGUgPSBpbXAubmV3X21vZHVsZSgnYmxhaCcpCisgICAgICAgIGxvYWRlci5tb2R1bGUuX19sb2FkZXJfXyA9IDQyCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNDIsIGxvYWRlci5sb2FkX21vZHVsZSgnYmxhaCcpLl9fbG9hZGVyX18pCisKKwogY2xhc3MgUmVzb2x2ZU5hbWVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAiIiJUZXN0cyBpbXBvcnRsaWIudXRpbC5yZXNvbHZlX25hbWUoKS4iIiIKQEAgLTE5NSwxNCArMzEzLDUgQEAKICAgICAgICAgICAgIHV0aWwucmVzb2x2ZV9uYW1lKCcuLmJhY29uJywgJ3NwYW0nKQogCiAKLWRlZiB0ZXN0X21haW4oKToKLSAgICBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKLSAgICBzdXBwb3J0LnJ1bl91bml0dGVzdCgKLSAgICAgICAgICAgIE1vZHVsZUZvckxvYWRlclRlc3RzLAotICAgICAgICAgICAgU2V0UGFja2FnZVRlc3RzLAotICAgICAgICAgICAgUmVzb2x2ZU5hbWVUZXN0cwotICAgICAgICApCi0KLQogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB0ZXN0X21haW4oKQorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9pbnNwZWN0LnB5IGIvTGliL3Rlc3QvdGVzdF9pbnNwZWN0LnB5CmluZGV4IDlmNWU5M2IuLjZiZDliZDEgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfaW5zcGVjdC5weQorKysgYi9MaWIvdGVzdC90ZXN0X2luc3BlY3QucHkKQEAgLTQwMSwxNCArNDAxLDE0IEBACiAgICAgICAgICAgICB1bmljb2RlZGF0YS5fX2ZpbGVfX1stNDpdIGluICgiLnB5YyIsICIucHlvIiksCiAgICAgICAgICJ1bmljb2RlZGF0YSBpcyBub3QgYW4gZXh0ZXJuYWwgYmluYXJ5IG1vZHVsZSIpCiAgICAgZGVmIHRlc3RfZmluZHNvdXJjZV9iaW5hcnkoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGluc3BlY3QuZ2V0c291cmNlLCB1bmljb2RlZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgaW5zcGVjdC5maW5kc291cmNlLCB1bmljb2RlZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgaW5zcGVjdC5nZXRzb3VyY2UsIHVuaWNvZGVkYXRhKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBpbnNwZWN0LmZpbmRzb3VyY2UsIHVuaWNvZGVkYXRhKQogCiAgICAgZGVmIHRlc3RfZmluZHNvdXJjZV9jb2RlX2luX2xpbmVjYWNoZShzZWxmKToKICAgICAgICAgbGluZXMgPSBbIng9MSJdCiAgICAgICAgIGNvID0gY29tcGlsZShsaW5lc1swXSwgIl9keW5hbWljYWxseV9jcmVhdGVkX2ZpbGUiLCAiZXhlYyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGluc3BlY3QuZmluZHNvdXJjZSwgY28pCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGluc3BlY3QuZ2V0c291cmNlLCBjbykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgaW5zcGVjdC5maW5kc291cmNlLCBjbykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgaW5zcGVjdC5nZXRzb3VyY2UsIGNvKQogICAgICAgICBsaW5lY2FjaGUuY2FjaGVbY28uY29fZmlsZW5hbWVdID0gKDEsIE5vbmUsIGxpbmVzLCBjby5jb19maWxlbmFtZSkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LmZpbmRzb3VyY2UoY28pLCAobGluZXMsMCkpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2ludC5weSBiL0xpYi90ZXN0L3Rlc3RfaW50LnB5CmluZGV4IDcwM2MyMzMuLjQ5MjEyMzAgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfaW50LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfaW50LnB5CkBAIC0yMzYsNiArMjM2LDQ3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaW50LCBiYXNlPTEwKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGludCwgYmFzZT0wKQogCisgICAgZGVmIHRlc3RfaW50X2Jhc2VfbGltaXRzKHNlbGYpOgorICAgICAgICAiIiJUZXN0aW5nIHRoZSBzdXBwb3J0ZWQgbGltaXRzIG9mIHRoZSBpbnQoKSBiYXNlIHBhcmFtZXRlci4iIiIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnQoJzAnLCA1KSwgMCkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGludCgnMCcsIDEpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBpbnQoJzAnLCAzNykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGludCgnMCcsIC05MDkpICAjIEFuIG9sZCBtYWdpYyB2YWx1ZSBiYXNlIGZyb20gUHl0aG9uIDIuCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBpbnQoJzAnLCBiYXNlPTAtKDIqKjIzNCkpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBpbnQoJzAnLCBiYXNlPTIqKjIzNCkKKyAgICAgICAgIyBCYXNlcyAyIHRocm91Z2ggMzYgYXJlIHN1cHBvcnRlZC4KKyAgICAgICAgZm9yIGJhc2UgaW4gcmFuZ2UoMiwzNyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGludCgnMCcsIGJhc2U9YmFzZSksIDApCisKKyAgICBkZWYgdGVzdF9pbnRfYmFzZV9iYWRfdHlwZXMoc2VsZik6CisgICAgICAgICIiIk5vdCBpbnRlZ2VyIHR5cGVzIGFyZSBub3QgdmFsaWQgYmFzZXM7IGlzc3VlMTY3NzIuIiIiCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIGludCgnMCcsIDUuNSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgaW50KCcwJywgNS4wKQorCisgICAgZGVmIHRlc3RfaW50X2Jhc2VfaW5kZXhhYmxlKHNlbGYpOgorICAgICAgICBjbGFzcyBNeUluZGV4YWJsZShvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZhbHVlKToKKyAgICAgICAgICAgICAgICBzZWxmLnZhbHVlID0gdmFsdWUKKyAgICAgICAgICAgIGRlZiBfX2luZGV4X18oc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYudmFsdWUKKworICAgICAgICAjIENoZWNrIG91dCBvZiByYW5nZSBiYXNlcy4KKyAgICAgICAgZm9yIGJhc2UgaW4gMioqMTAwLCAtMioqMTAwLCAxLCAzNzoKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICAgICAgaW50KCc0MycsIGJhc2UpCisKKyAgICAgICAgIyBDaGVjayBpbi1yYW5nZSBiYXNlcy4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnQoJzEwMScsIGJhc2U9TXlJbmRleGFibGUoMikpLCA1KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGludCgnMTAxJywgYmFzZT1NeUluZGV4YWJsZSgxMCkpLCAxMDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW50KCcxMDEnLCBiYXNlPU15SW5kZXhhYmxlKDM2KSksIDEgKyAzNioqMikKKwogICAgIGRlZiB0ZXN0X25vbl9udW1lcmljX2lucHV0X3R5cGVzKHNlbGYpOgogICAgICAgICAjIFRlc3QgcG9zc2libGUgbm9uLW51bWVyaWMgdHlwZXMgZm9yIHRoZSBhcmd1bWVudCB4LCBpbmNsdWRpbmcKICAgICAgICAgIyBzdWJjbGFzc2VzIG9mIHRoZSBleHBsaWNpdGx5IGRvY3VtZW50ZWQgYWNjZXB0ZWQgdHlwZXMuCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2lvLnB5IGIvTGliL3Rlc3QvdGVzdF9pby5weQppbmRleCA5Yjg5MjAyLi41ZmI2OGI0IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2lvLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfaW8ucHkKQEAgLTE2NSw3ICsxNjUsNyBAQAogICAgIGRlZiBjbG9zZShzZWxmKToKICAgICAgICAgaWYgbm90IHNlbGYuY2xvc2VkOgogICAgICAgICAgICAgc2VsZi5jbG9zZWQgPSAxCi0gICAgICAgICAgICByYWlzZSBJT0Vycm9yCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yCiAKIGNsYXNzIENDbG9zZUZhaWx1cmVJTyhDbG9zZUZhaWx1cmVJTywgaW8uUmF3SU9CYXNlKToKICAgICBwYXNzCkBAIC02MDEsOSArNjAxLDkgQEAKICAgICBkZWYgdGVzdF9mbHVzaF9lcnJvcl9vbl9jbG9zZShzZWxmKToKICAgICAgICAgZiA9IHNlbGYub3BlbihzdXBwb3J0LlRFU1RGTiwgIndiIiwgYnVmZmVyaW5nPTApCiAgICAgICAgIGRlZiBiYWRfZmx1c2goKToKLSAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigpCiAgICAgICAgIGYuZmx1c2ggPSBiYWRfZmx1c2gKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgZi5jbG9zZSkgIyBleGNlcHRpb24gbm90IHN3YWxsb3dlZAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBmLmNsb3NlKSAjIGV4Y2VwdGlvbiBub3Qgc3dhbGxvd2VkCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmLmNsb3NlZCkKIAogICAgIGRlZiB0ZXN0X211bHRpX2Nsb3NlKHNlbGYpOgpAQCAtNzYyLDcgKzc2Miw3IEBACiAgICAgICAgIGlmIHM6CiAgICAgICAgICAgICAjIFRoZSBkZXN0cnVjdG9yICptYXkqIGhhdmUgcHJpbnRlZCBhbiB1bnJhaXNhYmxlIGVycm9yLCBjaGVjayBpdAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocy5zcGxpdGxpbmVzKCkpLCAxKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHMuc3RhcnRzd2l0aCgiRXhjZXB0aW9uIElPRXJyb3I6ICIpLCBzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHMuc3RhcnRzd2l0aCgiRXhjZXB0aW9uIE9TRXJyb3I6ICIpLCBzKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHMuZW5kc3dpdGgoIiBpZ25vcmVkIiksIHMpCiAKICAgICBkZWYgdGVzdF9yZXByKHNlbGYpOgpAQCAtNzc4LDIyICs3NzgsMjIgQEAKICAgICBkZWYgdGVzdF9mbHVzaF9lcnJvcl9vbl9jbG9zZShzZWxmKToKICAgICAgICAgcmF3ID0gc2VsZi5Nb2NrUmF3SU8oKQogICAgICAgICBkZWYgYmFkX2ZsdXNoKCk6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKCkKKyAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoKQogICAgICAgICByYXcuZmx1c2ggPSBiYWRfZmx1c2gKICAgICAgICAgYiA9IHNlbGYudHAocmF3KQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBiLmNsb3NlKSAjIGV4Y2VwdGlvbiBub3Qgc3dhbGxvd2VkCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIGIuY2xvc2UpICMgZXhjZXB0aW9uIG5vdCBzd2FsbG93ZWQKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGIuY2xvc2VkKQogCiAgICAgZGVmIHRlc3RfY2xvc2VfZXJyb3Jfb25fY2xvc2Uoc2VsZik6CiAgICAgICAgIHJhdyA9IHNlbGYuTW9ja1Jhd0lPKCkKICAgICAgICAgZGVmIGJhZF9mbHVzaCgpOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcignZmx1c2gnKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcignZmx1c2gnKQogICAgICAgICBkZWYgYmFkX2Nsb3NlKCk6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKCdjbG9zZScpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCdjbG9zZScpCiAgICAgICAgIHJhdy5jbG9zZSA9IGJhZF9jbG9zZQogICAgICAgICBiID0gc2VsZi50cChyYXcpCiAgICAgICAgIGIuZmx1c2ggPSBiYWRfZmx1c2gKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yKSBhcyBlcnI6ICMgZXhjZXB0aW9uIG5vdCBzd2FsbG93ZWQKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBlcnI6ICMgZXhjZXB0aW9uIG5vdCBzd2FsbG93ZWQKICAgICAgICAgICAgIGIuY2xvc2UoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVyci5leGNlcHRpb24uYXJncywgKCdjbG9zZScsKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnIuZXhjZXB0aW9uLl9fY29udGV4dF9fLmFyZ3MsICgnZmx1c2gnLCkpCkBAIC04MzMsNiArODMzLDE0IEBACiAgICAgICAgIGJ1ZmlvID0gc2VsZi50cChyYXdpbywgYnVmZmVyX3NpemU9YnVmc2l6ZTIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3lzLmdldHNpemVvZihidWZpbyksIHNpemUgKyBidWZzaXplMikKIAorICAgIEBzdXBwb3J0LmNweXRob25fb25seQorICAgIGRlZiB0ZXN0X2J1ZmZlcl9mcmVlaW5nKHNlbGYpIDoKKyAgICAgICAgYnVmc2l6ZSA9IDQwOTYKKyAgICAgICAgcmF3aW8gPSBzZWxmLk1vY2tSYXdJTygpCisgICAgICAgIGJ1ZmlvID0gc2VsZi50cChyYXdpbywgYnVmZmVyX3NpemU9YnVmc2l6ZSkKKyAgICAgICAgc2l6ZSA9IHN5cy5nZXRzaXplb2YoYnVmaW8pIC0gYnVmc2l6ZQorICAgICAgICBidWZpby5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3lzLmdldHNpemVvZihidWZpbyksIHNpemUpCiAKIGNsYXNzIEJ1ZmZlcmVkUmVhZGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwgQ29tbW9uQnVmZmVyZWRUZXN0cyk6CiAgICAgcmVhZF9tb2RlID0gInJiIgpAQCAtMTAwNyw4ICsxMDE1LDggQEAKICAgICBkZWYgdGVzdF9taXNiZWhhdmVkX2lvKHNlbGYpOgogICAgICAgICByYXdpbyA9IHNlbGYuTWlzYmVoYXZlZFJhd0lPKChiImFiYyIsIGIiZCIsIGIiZWZnIikpCiAgICAgICAgIGJ1ZmlvID0gc2VsZi50cChyYXdpbykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgYnVmaW8uc2VlaywgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgYnVmaW8udGVsbCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgYnVmaW8uc2VlaywgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgYnVmaW8udGVsbCkKIAogICAgIGRlZiB0ZXN0X25vX2V4dHJhbmVvdXNfcmVhZChzZWxmKToKICAgICAgICAgIyBJc3N1ZSAjOTU1MDsgd2hlbiB0aGUgcmF3IElPIG9iamVjdCBoYXMgc2F0aXNmaWVkIHRoZSByZWFkIHJlcXVlc3QsCkBAIC0xMDU5LDcgKzEwNjcsNyBAQAogICAgICAgICBidWZpbyA9IHNlbGYudHAocmF3aW8pCiAgICAgICAgICMgX3B5aW8uQnVmZmVyZWRSZWFkZXIgc2VlbXMgdG8gaW1wbGVtZW50IHJlYWRpbmcgZGlmZmVyZW50LCBzbyB0aGF0CiAgICAgICAgICMgY2hlY2tpbmcgdGhpcyBpcyBub3Qgc28gZWFzeS4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgYnVmaW8ucmVhZCwgMTApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIGJ1ZmlvLnJlYWQsIDEwKQogCiAgICAgZGVmIHRlc3RfZ2FyYmFnZV9jb2xsZWN0aW9uKHNlbGYpOgogICAgICAgICAjIEMgQnVmZmVyZWRSZWFkZXIgb2JqZWN0cyBhcmUgY29sbGVjdGVkLgpAQCAtMTMxMiw5ICsxMzIwLDkgQEAKICAgICBkZWYgdGVzdF9taXNiZWhhdmVkX2lvKHNlbGYpOgogICAgICAgICByYXdpbyA9IHNlbGYuTWlzYmVoYXZlZFJhd0lPKCkKICAgICAgICAgYnVmaW8gPSBzZWxmLnRwKHJhd2lvLCA1KQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBidWZpby5zZWVrLCAwKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBidWZpby50ZWxsKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBidWZpby53cml0ZSwgYiJhYmNkZWYiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBidWZpby5zZWVrLCAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBidWZpby50ZWxsKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBidWZpby53cml0ZSwgYiJhYmNkZWYiKQogCiAgICAgZGVmIHRlc3RfbWF4X2J1ZmZlcl9zaXplX3JlbW92YWwoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKQEAgLTEzMjMsMTEgKzEzMzEsMTEgQEAKICAgICBkZWYgdGVzdF93cml0ZV9lcnJvcl9vbl9jbG9zZShzZWxmKToKICAgICAgICAgcmF3ID0gc2VsZi5Nb2NrUmF3SU8oKQogICAgICAgICBkZWYgYmFkX3dyaXRlKGIpOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCkKICAgICAgICAgcmF3LndyaXRlID0gYmFkX3dyaXRlCiAgICAgICAgIGIgPSBzZWxmLnRwKHJhdykKICAgICAgICAgYi53cml0ZShiJ3NwYW0nKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBiLmNsb3NlKSAjIGV4Y2VwdGlvbiBub3Qgc3dhbGxvd2VkCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIGIuY2xvc2UpICMgZXhjZXB0aW9uIG5vdCBzd2FsbG93ZWQKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGIuY2xvc2VkKQogCiAKQEAgLTEzOTcsMTQgKzE0MDUsMTQgQEAKICAgICAgICAgICAgIGRlZiByZWFkYWJsZShzZWxmKToKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBzZWxmLnRwLCBOb3RSZWFkYWJsZSgpLCBzZWxmLk1vY2tSYXdJTygpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBzZWxmLnRwLCBOb3RSZWFkYWJsZSgpLCBzZWxmLk1vY2tSYXdJTygpKQogCiAgICAgZGVmIHRlc3RfY29uc3RydWN0b3Jfd2l0aF9ub3Rfd3JpdGVhYmxlKHNlbGYpOgogICAgICAgICBjbGFzcyBOb3RXcml0ZWFibGUoTW9ja1Jhd0lPKToKICAgICAgICAgICAgIGRlZiB3cml0YWJsZShzZWxmKToKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBzZWxmLnRwLCBzZWxmLk1vY2tSYXdJTygpLCBOb3RXcml0ZWFibGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc2VsZi50cCwgc2VsZi5Nb2NrUmF3SU8oKSwgTm90V3JpdGVhYmxlKCkpCiAKICAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgogICAgICAgICBwYWlyID0gc2VsZi50cChzZWxmLkJ5dGVzSU8oYiJhYmNkZWYiKSwgc2VsZi5Nb2NrUmF3SU8oKSkKQEAgLTIxNjUsNyArMjE3Myw3IEBACiAgICAgICAgIGlmIHM6CiAgICAgICAgICAgICAjIFRoZSBkZXN0cnVjdG9yICptYXkqIGhhdmUgcHJpbnRlZCBhbiB1bnJhaXNhYmxlIGVycm9yLCBjaGVjayBpdAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocy5zcGxpdGxpbmVzKCkpLCAxKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHMuc3RhcnRzd2l0aCgiRXhjZXB0aW9uIElPRXJyb3I6ICIpLCBzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHMuc3RhcnRzd2l0aCgiRXhjZXB0aW9uIE9TRXJyb3I6ICIpLCBzKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHMuZW5kc3dpdGgoIiBpZ25vcmVkIiksIHMpCiAKICAgICAjIFN5c3RlbWF0aWMgdGVzdHMgb2YgdGhlIHRleHQgSS9PIEFQSQpAQCAtMjIzNyw3ICsyMjQ1LDcgQEAKICAgICAgICAgZi5zZWVrKDApCiAgICAgICAgIGZvciBsaW5lIGluIGY6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmUsICJceGZmXG4iKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgZi50ZWxsKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgZi50ZWxsKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYudGVsbCgpLCBwMikKICAgICAgICAgZi5jbG9zZSgpCiAKQEAgLTIzNDEsNyArMjM0OSw3IEBACiAgICAgICAgICAgICBkZWYgcmVhZGFibGUoc2VsZik6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIHR4dCA9IHNlbGYuVGV4dElPV3JhcHBlcihVblJlYWRhYmxlKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIHR4dC5yZWFkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCB0eHQucmVhZCkKIAogICAgIGRlZiB0ZXN0X3JlYWRfb25lX2J5X29uZShzZWxmKToKICAgICAgICAgdHh0ID0gc2VsZi5UZXh0SU9XcmFwcGVyKHNlbGYuQnl0ZXNJTyhiIkFBXHJcbkJCIikpCkBAIC0yNTE2LDkgKzI1MjQsOSBAQAogICAgIGRlZiB0ZXN0X2ZsdXNoX2Vycm9yX29uX2Nsb3NlKHNlbGYpOgogICAgICAgICB0eHQgPSBzZWxmLlRleHRJT1dyYXBwZXIoc2VsZi5CeXRlc0lPKHNlbGYudGVzdGRhdGEpLCBlbmNvZGluZz0iYXNjaWkiKQogICAgICAgICBkZWYgYmFkX2ZsdXNoKCk6Ci0gICAgICAgICAgICByYWlzZSBJT0Vycm9yKCkKKyAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoKQogICAgICAgICB0eHQuZmx1c2ggPSBiYWRfZmx1c2gKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgdHh0LmNsb3NlKSAjIGV4Y2VwdGlvbiBub3Qgc3dhbGxvd2VkCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHR4dC5jbG9zZSkgIyBleGNlcHRpb24gbm90IHN3YWxsb3dlZAogICAgICAgICBzZWxmLmFzc2VydFRydWUodHh0LmNsb3NlZCkKIAogICAgIGRlZiB0ZXN0X211bHRpX2Nsb3NlKHNlbGYpOgpAQCAtMjg5Niw3ICsyOTA0LDcgQEAKICAgICAgICAgICAgIGZvciBmZCBpbiBmZHM6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBvcy5jbG9zZShmZCkKLSAgICAgICAgICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvciBhcyBlOgorICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRUJBREY6CiAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICBzZWxmLmFkZENsZWFudXAoY2xlYW51cF9mZHMpCkBAIC0zMDg0LDcgKzMwOTIsNyBAQAogICAgICAgICAgICAgIyBidWZmZXIsIGFuZCBibG9jayBhZ2Fpbi4KICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICB3aW8uY2xvc2UoKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FQkFERjoKICAgICAgICAgICAgICAgICAgICAgcmFpc2UKIApAQCAtMzIxMiw3ICszMjIwLDcgQEAKICAgICAgICAgICAgICMgYnVmZmVyLCBhbmQgY291bGQgYmxvY2sgKGluIGNhc2Ugb2YgZmFpbHVyZSkuCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgd2lvLmNsb3NlKCkKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRUJBREY6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfaW9jdGwucHkgYi9MaWIvdGVzdC90ZXN0X2lvY3RsLnB5CmluZGV4IDUzMWM5YWYuLjdlYjMyNGEgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfaW9jdGwucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9pb2N0bC5weQpAQCAtOCw3ICs4LDcgQEAKIAogdHJ5OgogICAgIHR0eSA9IG9wZW4oIi9kZXYvdHR5IiwgInJiIikKLWV4Y2VwdCBJT0Vycm9yOgorZXhjZXB0IE9TRXJyb3I6CiAgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoIlVuYWJsZSB0byBvcGVuIC9kZXYvdHR5IikKIGVsc2U6CiAgICAgIyBTa2lwIGlmIGFub3RoZXIgcHJvY2VzcyBpcyBpbiBmb3JlZ3JvdW5kCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2l0ZXJsZW4ucHkgYi9MaWIvdGVzdC90ZXN0X2l0ZXJsZW4ucHkKaW5kZXggOTEwMWY2Yy4uMTUyZjVmYyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9pdGVybGVuLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfaXRlcmxlbi5weQpAQCAtNDUsMzEgKzQ1LDIxIEBACiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKIGZyb20gaXRlcnRvb2xzIGltcG9ydCByZXBlYXQKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlCi1mcm9tIGJ1aWx0aW5zIGltcG9ydCBsZW4gYXMgX2xlbgorZnJvbSBvcGVyYXRvciBpbXBvcnQgbGVuZ3RoX2hpbnQKIAogbiA9IDEwCiAKLWRlZiBsZW4ob2JqKToKLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBfbGVuKG9iaikKLSAgICBleGNlcHQgVHlwZUVycm9yOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIG5vdGU6IHRoaXMgaXMgYW4gaW50ZXJuYWwgdW5kb2N1bWVudGVkIEFQSSwKLSAgICAgICAgICAgICMgZG9uJ3QgcmVseSBvbiBpdCBpbiB5b3VyIG93biBwcm9ncmFtcwotICAgICAgICAgICAgcmV0dXJuIG9iai5fX2xlbmd0aF9oaW50X18oKQotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IKIAogY2xhc3MgVGVzdEludmFyaWFudFdpdGhvdXRNdXRhdGlvbnM6CiAKICAgICBkZWYgdGVzdF9pbnZhcmlhbnQoc2VsZik6CiAgICAgICAgIGl0ID0gc2VsZi5pdAogICAgICAgICBmb3IgaSBpbiByZXZlcnNlZChyYW5nZSgxLCBuKzEpKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGl0KSwgaSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuZ3RoX2hpbnQoaXQpLCBpKQogICAgICAgICAgICAgbmV4dChpdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oaXQpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbmd0aF9oaW50KGl0KSwgMCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3RvcEl0ZXJhdGlvbiwgbmV4dCwgaXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGl0KSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW5ndGhfaGludChpdCksIDApCiAKIGNsYXNzIFRlc3RUZW1wb3JhcmlseUltbXV0YWJsZShUZXN0SW52YXJpYW50V2l0aG91dE11dGF0aW9ucyk6CiAKQEAgLTc4LDEyICs2OCwxMiBAQAogICAgICAgICAjIGxlbmd0aCBpbW11dGFiaWxpdHkgIGR1cmluZyBpdGVyYXRpb24KIAogICAgICAgICBpdCA9IHNlbGYuaXQKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oaXQpLCBuKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbmd0aF9oaW50KGl0KSwgbikKICAgICAgICAgbmV4dChpdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oaXQpLCBuLTEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuZ3RoX2hpbnQoaXQpLCBuLTEpCiAgICAgICAgIHNlbGYubXV0YXRlKCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBuZXh0LCBpdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oaXQpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbmd0aF9oaW50KGl0KSwgMCkKIAogIyMgLS0tLS0tLSBDb25jcmV0ZSBUeXBlIFRlc3RzIC0tLS0tLS0KIApAQCAtOTIsMTAgKzgyLDYgQEAKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYuaXQgPSByZXBlYXQoTm9uZSwgbikKIAotICAgIGRlZiB0ZXN0X25vX2xlbl9mb3JfaW5maW5pdGVfcmVwZWF0KHNlbGYpOgotICAgICAgICAjIFRoZSByZXBlYXQoKSBvYmplY3QgY2FuIGFsc28gYmUgaW5maW5pdGUKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsZW4sIHJlcGVhdChOb25lKSkKLQogY2xhc3MgVGVzdFhyYW5nZShUZXN0SW52YXJpYW50V2l0aG91dE11dGF0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgpAQCAtMTY3LDE0ICsxNTMsMTUgQEAKICAgICAgICAgaXQgPSBpdGVyKGQpCiAgICAgICAgIG5leHQoaXQpCiAgICAgICAgIG5leHQoaXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGl0KSwgbi0yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbmd0aF9oaW50KGl0KSwgbiAtIDIpCiAgICAgICAgIGQuYXBwZW5kKG4pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGl0KSwgbi0xKSAgIyBncm93IHdpdGggYXBwZW5kCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuZ3RoX2hpbnQoaXQpLCBuIC0gMSkgICMgZ3JvdyB3aXRoIGFwcGVuZAogICAgICAgICBkWzE6XSA9IFtdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGl0KSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW5ndGhfaGludChpdCksIDApCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChpdCksIFtdKQogICAgICAgICBkLmV4dGVuZChyYW5nZSgyMCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGl0KSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW5ndGhfaGludChpdCksIDApCisKIAogY2xhc3MgVGVzdExpc3RSZXZlcnNlZChUZXN0SW52YXJpYW50V2l0aG91dE11dGF0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgogCkBAIC0xODYsMzIgKzE3Myw0MSBAQAogICAgICAgICBpdCA9IHJldmVyc2VkKGQpCiAgICAgICAgIG5leHQoaXQpCiAgICAgICAgIG5leHQoaXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGl0KSwgbi0yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbmd0aF9oaW50KGl0KSwgbiAtIDIpCiAgICAgICAgIGQuYXBwZW5kKG4pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGl0KSwgbi0yKSAgIyBpZ25vcmUgYXBwZW5kCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuZ3RoX2hpbnQoaXQpLCBuIC0gMikgICMgaWdub3JlIGFwcGVuZAogICAgICAgICBkWzE6XSA9IFtdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGl0KSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW5ndGhfaGludChpdCksIDApCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChpdCksIFtdKSAgIyBjb25maXJtIGludmFyaWFudAogICAgICAgICBkLmV4dGVuZChyYW5nZSgyMCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGl0KSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW5ndGhfaGludChpdCksIDApCiAKICMjIC0tIENoZWNrIHRvIG1ha2Ugc3VyZSBleGNlcHRpb25zIGFyZSBub3Qgc3VwcHJlc3NlZCBieSBfX2xlbmd0aF9oaW50X18oKQogCiAKIGNsYXNzIEJhZExlbihvYmplY3QpOgotICAgIGRlZiBfX2l0ZXJfXyhzZWxmKTogcmV0dXJuIGl0ZXIocmFuZ2UoMTApKQorICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGl0ZXIocmFuZ2UoMTApKQorCiAgICAgZGVmIF9fbGVuX18oc2VsZik6CiAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignaGVsbG8nKQogCisKIGNsYXNzIEJhZExlbmd0aEhpbnQob2JqZWN0KToKLSAgICBkZWYgX19pdGVyX18oc2VsZik6IHJldHVybiBpdGVyKHJhbmdlKDEwKSkKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBpdGVyKHJhbmdlKDEwKSkKKwogICAgIGRlZiBfX2xlbmd0aF9oaW50X18oc2VsZik6CiAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignaGVsbG8nKQogCisKIGNsYXNzIE5vbmVMZW5ndGhIaW50KG9iamVjdCk6Ci0gICAgZGVmIF9faXRlcl9fKHNlbGYpOiByZXR1cm4gaXRlcihyYW5nZSgxMCkpCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gaXRlcihyYW5nZSgxMCkpCisKICAgICBkZWYgX19sZW5ndGhfaGludF9fKHNlbGYpOgotICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKwogCiBjbGFzcyBUZXN0TGVuZ3RoSGludEV4Y2VwdGlvbnModW5pdHRlc3QuVGVzdENhc2UpOgogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2l0ZXJ0b29scy5weSBiL0xpYi90ZXN0L3Rlc3RfaXRlcnRvb2xzLnB5CmluZGV4IDUzOTI2YTkuLmZkZjc5ODQgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfaXRlcnRvb2xzLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfaXRlcnRvb2xzLnB5CkBAIC0xNzI5LDkgKzE3MjksOCBAQAogY2xhc3MgTGVuZ3RoVHJhbnNwYXJlbmN5KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X3JlcGVhdChzZWxmKToKLSAgICAgICAgZnJvbSB0ZXN0LnRlc3RfaXRlcmxlbiBpbXBvcnQgbGVuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlcGVhdChOb25lLCA1MCkpLCA1MCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsZW4sIHJlcGVhdChOb25lKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVyYXRvci5sZW5ndGhfaGludChyZXBlYXQoTm9uZSwgNTApKSwgNTApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IubGVuZ3RoX2hpbnQocmVwZWF0KE5vbmUpLCAxMiksIDEyKQogCiBjbGFzcyBSZWdyZXNzaW9uVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2tleXdvcmQucHkgYi9MaWIvdGVzdC90ZXN0X2tleXdvcmQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY5OWY1MgotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3Rfa2V5d29yZC5weQpAQCAtMCwwICsxLDEzOCBAQAoraW1wb3J0IGtleXdvcmQKK2ltcG9ydCB1bml0dGVzdAorZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CitpbXBvcnQgZmlsZWNtcAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHNodXRpbAoraW1wb3J0IHRleHR3cmFwCisKK0tFWVdPUkRfRklMRSAgICAgICAgICAgICA9IHN1cHBvcnQuZmluZGZpbGUoJ2tleXdvcmQucHknKQorR1JBTU1BUl9GSUxFICAgICAgICAgICAgID0gb3MucGF0aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuLicsICcuLicsICdQeXRob24nLCAnZ3JhbWluaXQuYycpCitURVNUX1BZX0ZJTEUgICAgICAgICAgICAgPSAna2V5d29yZF90ZXN0LnB5JworR1JBTU1BUl9URVNUX0ZJTEUgICAgICAgID0gJ2dyYW1pbml0X3Rlc3QuYycKK1BZX0ZJTEVfV0lUSE9VVF9LRVlXT1JEUyA9ICdtaW5pbWFsX2tleXdvcmQucHknCitOT05FWElTVEVOVF9GSUxFICAgICAgICAgPSAnbm90X2hlcmUudHh0JworCisKK2NsYXNzIFRlc3RfaXNrZXl3b3JkKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF90cnVlX2lzX2Ffa2V5d29yZChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGtleXdvcmQuaXNrZXl3b3JkKCdUcnVlJykpCisKKyAgICBkZWYgdGVzdF91cHBlcmNhc2VfdHJ1ZV9pc19ub3RfYV9rZXl3b3JkKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGtleXdvcmQuaXNrZXl3b3JkKCdUUlVFJykpCisKKyAgICBkZWYgdGVzdF9ub25lX3ZhbHVlX2lzX25vdF9hX2tleXdvcmQoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoa2V5d29yZC5pc2tleXdvcmQoTm9uZSkpCisKKyAgICAjIFRoaXMgaXMgcHJvYmFibHkgYW4gYWNjaWRlbnQgb2YgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24sIGJ1dCBzaG91bGQgYmUKKyAgICAjIHByZXNlcnZlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAgICBkZWYgdGVzdF9jaGFuZ2luZ190aGVfa3dsaXN0X2RvZXNfbm90X2FmZmVjdF9pc2tleXdvcmQoc2VsZik6CisgICAgICAgIG9sZGxpc3QgPSBrZXl3b3JkLmt3bGlzdAorICAgICAgICBzZWxmLmFkZENsZWFudXAoc2V0YXR0ciwga2V5d29yZCwgJ2t3bGlzdCcsIG9sZGxpc3QpCisgICAgICAgIGtleXdvcmQua3dsaXN0ID0gWydpdHMnLCAnYWxsJywgJ2VnZ3MnLCAnYmVhbnMnLCAnYW5kJywgJ2EnLCAnc2xpY2UnXQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGtleXdvcmQuaXNrZXl3b3JkKCdlZ2dzJykpCisKKworY2xhc3MgVGVzdEtleXdvcmRHZW5lcmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiBfY29weV9maWxlX3dpdGhvdXRfZ2VuZXJhdGVkX2tleXdvcmRzKHNlbGYsIHNvdXJjZV9maWxlLCBkZXN0X2ZpbGUpOgorICAgICAgICB3aXRoIG9wZW4oc291cmNlX2ZpbGUsICdyYicpIGFzIGZwOgorICAgICAgICAgICAgbGluZXMgPSBmcC5yZWFkbGluZXMoKQorICAgICAgICBubCA9IGxpbmVzWzBdW2xlbihsaW5lc1swXS5zdHJpcCgpKTpdCisgICAgICAgIHdpdGggb3BlbihkZXN0X2ZpbGUsICd3YicpIGFzIGZwOgorICAgICAgICAgICAgZnAud3JpdGVsaW5lcyhsaW5lc1s6bGluZXMuaW5kZXgoYiIjLS1zdGFydCBrZXl3b3Jkcy0tIiArIG5sKSArIDFdKQorICAgICAgICAgICAgZnAud3JpdGVsaW5lcyhsaW5lc1tsaW5lcy5pbmRleChiIiMtLWVuZCBrZXl3b3Jkcy0tIiArIG5sKTpdKQorCisgICAgZGVmIF9nZW5lcmF0ZV9rZXl3b3JkcyhzZWxmLCBncmFtbWFyX2ZpbGUsIHRhcmdldF9rZXl3b3JkX3B5X2ZpbGUpOgorICAgICAgICBwcm9jID0gc3VicHJvY2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLRVlXT1JEX0ZJTEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFtbWFyX2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfa2V5d29yZF9weV9maWxlXSwgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSkKKyAgICAgICAgc3RkZXJyID0gcHJvYy5jb21tdW5pY2F0ZSgpWzFdCisgICAgICAgIHJldHVybiBwcm9jLnJldHVybmNvZGUsIHN0ZGVycgorCisgICAgQHVuaXR0ZXN0LnNraXBJZihub3Qgb3MucGF0aC5leGlzdHMoR1JBTU1BUl9GSUxFKSwKKyAgICAgICAgICAgICAgICAgICAgICd0ZXN0IG9ubHkgd29ya3MgZnJvbSBzb3VyY2UgYnVpbGQgZGlyZWN0b3J5JykKKyAgICBkZWYgdGVzdF9yZWFsX2dyYW1tYXJfYW5kX2tleXdvcmRfZmlsZShzZWxmKToKKyAgICAgICAgc2VsZi5fY29weV9maWxlX3dpdGhvdXRfZ2VuZXJhdGVkX2tleXdvcmRzKEtFWVdPUkRfRklMRSwgVEVTVF9QWV9GSUxFKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc3VwcG9ydC51bmxpbmssIFRFU1RfUFlfRklMRSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmaWxlY21wLmNtcChLRVlXT1JEX0ZJTEUsIFRFU1RfUFlfRklMRSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKDAsIGInJyksIHNlbGYuX2dlbmVyYXRlX2tleXdvcmRzKEdSQU1NQVJfRklMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVTVF9QWV9GSUxFKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbGVjbXAuY21wKEtFWVdPUkRfRklMRSwgVEVTVF9QWV9GSUxFKSkKKworICAgIGRlZiB0ZXN0X2dyYW1tYXIoc2VsZik6CisgICAgICAgIHNlbGYuX2NvcHlfZmlsZV93aXRob3V0X2dlbmVyYXRlZF9rZXl3b3JkcyhLRVlXT1JEX0ZJTEUsIFRFU1RfUFlfRklMRSkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHN1cHBvcnQudW5saW5rLCBURVNUX1BZX0ZJTEUpCisgICAgICAgIHdpdGggb3BlbihHUkFNTUFSX1RFU1RfRklMRSwgJ3cnKSBhcyBmcDoKKyAgICAgICAgICAgICMgU29tZSBvZiB0aGVzZSBhcmUgcHJvYmFibHkgaW1wbGVtZW50YXRpb24gYWNjaWRlbnRzLgorICAgICAgICAgICAgZnAud3JpdGVsaW5lcyh0ZXh0d3JhcC5kZWRlbnQoIiIiXAorICAgICAgICAgICAgICAgIHsyLCAxfSwKKyAgICAgICAgICAgICAgICAgICAgezExLCAiZW5jb2RpbmdfZGVjbCIsIDAsIDIsIHN0YXRlc183OSwKKyAgICAgICAgICAgICAgICAgICAgICJcMDAwXDAwMFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAiCisgICAgICAgICAgICAgICAgICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgICAgICAgICAgICAgICAgIHsxLCAiamVsbG8ifSwKKyAgICAgICAgICAgICAgICAgICAgezMyNiwgMH0sCisgICAgICAgICAgICAgICAgICAgIHsxLCAidHVybmlwIn0sCisgICAgICAgICAgICAgICAgXHR7MSwgIlRoaXMgb25lIGlzIHRhYiBpbmRlbnRlZCIKKyAgICAgICAgICAgICAgICAgICAgezI3OCwgMH0sCisgICAgICAgICAgICAgICAgICAgIHsxLCAiY3JhenkgYnV0IGxlZ2FsIgorICAgICAgICAgICAgICAgICJhbHNvIGxlZ2FsIiB7MSwgIgorICAgICAgICAgICAgICAgICAgICB7MSwgImNvbnRpbnVlIn0sCisgICAgICAgICAgICAgICAgICAgezEsICJsZW1vbiJ9LAorICAgICAgICAgICAgICAgICAgICAgezEsICJ0b21hdG8ifSwKKyAgICAgICAgICAgICAgICB7MSwgIndpZ2lpIn0sCisgICAgICAgICAgICAgICAgICAgIHsxLCAnbm8gZ29vZCd9CisgICAgICAgICAgICAgICAgICAgIHsyODMsIDB9LAorICAgICAgICAgICAgICAgICAgICB7MSwgICJ0b28gbWFueSBzcGFjZXMifSIiIikpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzdXBwb3J0LnVubGluaywgR1JBTU1BUl9URVNUX0ZJTEUpCisgICAgICAgIHNlbGYuX2dlbmVyYXRlX2tleXdvcmRzKEdSQU1NQVJfVEVTVF9GSUxFLCBURVNUX1BZX0ZJTEUpCisgICAgICAgIGV4cGVjdGVkID0gWworICAgICAgICAgICAgIiAgICAgICAgJ1RoaXMgb25lIGlzIHRhYiBpbmRlbnRlZCcsIiwKKyAgICAgICAgICAgICIgICAgICAgICdhbHNvIGxlZ2FsJywiLAorICAgICAgICAgICAgIiAgICAgICAgJ2NvbnRpbnVlJywiLAorICAgICAgICAgICAgIiAgICAgICAgJ2NyYXp5IGJ1dCBsZWdhbCcsIiwKKyAgICAgICAgICAgICIgICAgICAgICdqZWxsbycsIiwKKyAgICAgICAgICAgICIgICAgICAgICdsZW1vbicsIiwKKyAgICAgICAgICAgICIgICAgICAgICd0b21hdG8nLCIsCisgICAgICAgICAgICAiICAgICAgICAndHVybmlwJywiLAorICAgICAgICAgICAgIiAgICAgICAgJ3dpZ2lpJywiLAorICAgICAgICAgICAgXQorICAgICAgICB3aXRoIG9wZW4oVEVTVF9QWV9GSUxFKSBhcyBmcDoKKyAgICAgICAgICAgIGxpbmVzID0gZnAucmVhZCgpLnNwbGl0bGluZXMoKQorICAgICAgICBzdGFydCA9IGxpbmVzLmluZGV4KCIjLS1zdGFydCBrZXl3b3Jkcy0tIikgKyAxCisgICAgICAgIGVuZCA9IGxpbmVzLmluZGV4KCIjLS1lbmQga2V5d29yZHMtLSIpCisgICAgICAgIGFjdHVhbCA9IGxpbmVzW3N0YXJ0OmVuZF0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWwsIGV4cGVjdGVkKQorCisgICAgZGVmIHRlc3RfZW1wdHlfZ3JhbW1hcl9yZXN1bHRzX2luX25vX2tleXdvcmRzKHNlbGYpOgorICAgICAgICBzZWxmLl9jb3B5X2ZpbGVfd2l0aG91dF9nZW5lcmF0ZWRfa2V5d29yZHMoS0VZV09SRF9GSUxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFlfRklMRV9XSVRIT1VUX0tFWVdPUkRTKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc3VwcG9ydC51bmxpbmssIFBZX0ZJTEVfV0lUSE9VVF9LRVlXT1JEUykKKyAgICAgICAgc2h1dGlsLmNvcHlmaWxlKEtFWVdPUkRfRklMRSwgVEVTVF9QWV9GSUxFKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc3VwcG9ydC51bmxpbmssIFRFU1RfUFlfRklMRSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoMCwgYicnKSwgc2VsZi5fZ2VuZXJhdGVfa2V5d29yZHMob3MuZGV2bnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVTVF9QWV9GSUxFKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbGVjbXAuY21wKFRFU1RfUFlfRklMRSwgUFlfRklMRV9XSVRIT1VUX0tFWVdPUkRTKSkKKworICAgIGRlZiB0ZXN0X2tleXdvcmRzX3B5X3dpdGhvdXRfbWFya2Vyc19wcm9kdWNlc19lcnJvcihzZWxmKToKKyAgICAgICAgcmMsIHN0ZGVyciA9IHNlbGYuX2dlbmVyYXRlX2tleXdvcmRzKG9zLmRldm51bGwsIG9zLmRldm51bGwpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwocmMsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXgoc3RkZXJyLCBiJ2RvZXMgbm90IGNvbnRhaW4gZm9ybWF0IG1hcmtlcnMnKQorCisgICAgZGVmIHRlc3RfbWlzc2luZ19ncmFtbWFyX2ZpbGVfcHJvZHVjZXNfZXJyb3Ioc2VsZik6CisgICAgICAgIHJjLCBzdGRlcnIgPSBzZWxmLl9nZW5lcmF0ZV9rZXl3b3JkcyhOT05FWElTVEVOVF9GSUxFLCBLRVlXT1JEX0ZJTEUpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwocmMsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXgoc3RkZXJyLCBiJyg/bXMpJyArIE5PTkVYSVNURU5UX0ZJTEUuZW5jb2RlKCkpCisKKyAgICBkZWYgdGVzdF9taXNzaW5nX2tleXdvcmRzX3B5X2ZpbGVfcHJvZHVjZXNfZXJyb3Ioc2VsZik6CisgICAgICAgIHJjLCBzdGRlcnIgPSBzZWxmLl9nZW5lcmF0ZV9rZXl3b3Jkcyhvcy5kZXZudWxsLCBOT05FWElTVEVOVF9GSUxFKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHJjLCAwKQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KHN0ZGVyciwgYicoP21zKScgKyBOT05FWElTVEVOVF9GSUxFLmVuY29kZSgpKQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2tleXdvcmRvbmx5YXJnLnB5IGIvTGliL3Rlc3QvdGVzdF9rZXl3b3Jkb25seWFyZy5weQppbmRleCAwNTAzYTdmLi5lNGE0NGMxIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2tleXdvcmRvbmx5YXJnLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfa2V5d29yZG9ubHlhcmcucHkKQEAgLTE3Niw2ICsxNzYsMTggQEAKICAgICAgICAgICAgICAgICByZXR1cm4gX19hCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWCgpLmYoKSwgNDIpCiAKKyAgICBkZWYgdGVzdF9kZWZhdWx0X2V2YWx1YXRpb25fb3JkZXIoc2VsZik6CisgICAgICAgICMgU2VlIGlzc3VlIDE2OTY3CisgICAgICAgIGEgPSA0MgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE5hbWVFcnJvcikgYXMgZXJyOgorICAgICAgICAgICAgZGVmIGYodj1hLCB4PWIsICosIHk9Yywgej1kKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVyci5leGNlcHRpb24pLCAibmFtZSAnYicgaXMgbm90IGRlZmluZWQiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE5hbWVFcnJvcikgYXMgZXJyOgorICAgICAgICAgICAgZiA9IGxhbWJkYSB2PWEsIHg9YiwgKiwgeT1jLCB6PWQ6IE5vbmUKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZXJyLmV4Y2VwdGlvbiksICJuYW1lICdiJyBpcyBub3QgZGVmaW5lZCIpCisKKwogZGVmIHRlc3RfbWFpbigpOgogICAgIHJ1bl91bml0dGVzdChLZXl3b3JkT25seUFyZ1Rlc3RDYXNlKQogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2txdWV1ZS5weSBiL0xpYi90ZXN0L3Rlc3Rfa3F1ZXVlLnB5CmluZGV4IDE0OWU2YjYuLjkwMmM5OWMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfa3F1ZXVlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfa3F1ZXVlLnB5CkBAIC05NCw3ICs5NCw3IEBACiAgICAgICAgIGNsaWVudC5zZXRibG9ja2luZyhGYWxzZSkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgY2xpZW50LmNvbm5lY3QoKCcxMjcuMC4wLjEnLCBzZXJ2ZXJTb2NrZXQuZ2V0c29ja25hbWUoKVsxXSkpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzWzBdLCBlcnJuby5FSU5QUk9HUkVTUykKICAgICAgICAgZWxzZToKICAgICAgICAgICAgICNyYWlzZSBBc3NlcnRpb25FcnJvcigiQ29ubmVjdCBzaG91bGQgaGF2ZSByYWlzZWQgRUlOUFJPR1JFU1MiKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9sYXJnZWZpbGUucHkgYi9MaWIvdGVzdC90ZXN0X2xhcmdlZmlsZS5weQppbmRleCAxYzYyOTdhLi43NTAyZGMzIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2xhcmdlZmlsZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X2xhcmdlZmlsZS5weQpAQCAtMTQsNyArMTQsNyBAQAogICAgIGltcG9ydCBzaWduYWwKICAgICAjIFRoZSBkZWZhdWx0IGhhbmRsZXIgZm9yIFNJR1hGU1ogaXMgdG8gYWJvcnQgdGhlIHByb2Nlc3MuCiAgICAgIyBCeSBpZ25vcmluZyBpdCwgc3lzdGVtIGNhbGxzIGV4Y2VlZGluZyB0aGUgZmlsZSBzaXplIHJlc291cmNlCi0gICAgIyBsaW1pdCB3aWxsIHJhaXNlIElPRXJyb3IgaW5zdGVhZCBvZiBjcmFzaGluZyB0aGUgaW50ZXJwcmV0ZXIuCisgICAgIyBsaW1pdCB3aWxsIHJhaXNlIE9TRXJyb3IgaW5zdGVhZCBvZiBjcmFzaGluZyB0aGUgaW50ZXJwcmV0ZXIuCiAgICAgb2xkaGFuZGxlciA9IHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR1hGU1osIHNpZ25hbC5TSUdfSUdOKQogZXhjZXB0IChJbXBvcnRFcnJvciwgQXR0cmlidXRlRXJyb3IpOgogICAgIHBhc3MKQEAgLTE2Miw3ICsxNjIsNyBAQAogICAgICAgICAgICAgIyBmbHVzaCwgdG9vIQogICAgICAgICAgICAgZi53cml0ZShiJ3gnKQogICAgICAgICAgICAgZi5mbHVzaCgpCi0gICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgT3ZlcmZsb3dFcnJvcik6CisgICAgICAgIGV4Y2VwdCAoT1NFcnJvciwgT3ZlcmZsb3dFcnJvcik6CiAgICAgICAgICAgICBmLmNsb3NlKCkKICAgICAgICAgICAgIHVubGluayhURVNURk4pCiAgICAgICAgICAgICByYWlzZSB1bml0dGVzdC5Ta2lwVGVzdCgiZmlsZXN5c3RlbSBkb2VzIG5vdCBoYXZlIGxhcmdlZmlsZSBzdXBwb3J0IikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfbG9nZ2luZy5weSBiL0xpYi90ZXN0L3Rlc3RfbG9nZ2luZy5weQppbmRleCBjOWEwNTFhLi42M2Q0OWZlIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2xvZ2dpbmcucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9sb2dnaW5nLnB5CkBAIC0yNiw2ICsyNiw3IEBACiBpbXBvcnQgbG9nZ2luZy5jb25maWcKIAogaW1wb3J0IGNvZGVjcworaW1wb3J0IGNvbmZpZ3BhcnNlcgogaW1wb3J0IGRhdGV0aW1lCiBpbXBvcnQgcGlja2xlCiBpbXBvcnQgaW8KQEAgLTgxLDcgKzgyLDcgQEAKICAgICAiIiJCYXNlIGNsYXNzIGZvciBsb2dnaW5nIHRlc3RzLiIiIgogCiAgICAgbG9nX2Zvcm1hdCA9ICIlKG5hbWUpcyAtPiAlKGxldmVsbmFtZSlzOiAlKG1lc3NhZ2UpcyIKLSAgICBleHBlY3RlZF9sb2dfcGF0ID0gciJeKFtcdy5dKykgLT4gKFtcd10rKTogKFtcZF0rKSQiCisgICAgZXhwZWN0ZWRfbG9nX3BhdCA9IHIiXihbXHcuXSspIC0+IChcdyspOiAoXGQrKSQiCiAgICAgbWVzc2FnZV9udW0gPSAwCiAKICAgICBkZWYgc2V0VXAoc2VsZik6CkBAIC05Myw3ICs5NCw4IEBACiAgICAgICAgICAgICBzZWxmLnNhdmVkX2hhbmRsZXJzID0gbG9nZ2luZy5faGFuZGxlcnMuY29weSgpCiAgICAgICAgICAgICBzZWxmLnNhdmVkX2hhbmRsZXJfbGlzdCA9IGxvZ2dpbmcuX2hhbmRsZXJMaXN0WzpdCiAgICAgICAgICAgICBzZWxmLnNhdmVkX2xvZ2dlcnMgPSBzYXZlZF9sb2dnZXJzID0gbG9nZ2VyX2RpY3QuY29weSgpCi0gICAgICAgICAgICBzZWxmLnNhdmVkX2xldmVsX25hbWVzID0gbG9nZ2luZy5fbGV2ZWxOYW1lcy5jb3B5KCkKKyAgICAgICAgICAgIHNlbGYuc2F2ZWRfbmFtZV90b19sZXZlbCA9IGxvZ2dpbmcuX25hbWVUb0xldmVsLmNvcHkoKQorICAgICAgICAgICAgc2VsZi5zYXZlZF9sZXZlbF90b19uYW1lID0gbG9nZ2luZy5fbGV2ZWxUb05hbWUuY29weSgpCiAgICAgICAgICAgICBzZWxmLmxvZ2dlcl9zdGF0ZXMgPSBsb2dnZXJfc3RhdGVzID0ge30KICAgICAgICAgICAgIGZvciBuYW1lIGluIHNhdmVkX2xvZ2dlcnM6CiAgICAgICAgICAgICAgICAgbG9nZ2VyX3N0YXRlc1tuYW1lXSA9IGdldGF0dHIoc2F2ZWRfbG9nZ2Vyc1tuYW1lXSwKQEAgLTEzNSw4ICsxMzcsMTAgQEAKICAgICAgICAgc2VsZi5yb290X2xvZ2dlci5zZXRMZXZlbChzZWxmLm9yaWdpbmFsX2xvZ2dpbmdfbGV2ZWwpCiAgICAgICAgIGxvZ2dpbmcuX2FjcXVpcmVMb2NrKCkKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgbG9nZ2luZy5fbGV2ZWxOYW1lcy5jbGVhcigpCi0gICAgICAgICAgICBsb2dnaW5nLl9sZXZlbE5hbWVzLnVwZGF0ZShzZWxmLnNhdmVkX2xldmVsX25hbWVzKQorICAgICAgICAgICAgbG9nZ2luZy5fbGV2ZWxUb05hbWUuY2xlYXIoKQorICAgICAgICAgICAgbG9nZ2luZy5fbGV2ZWxUb05hbWUudXBkYXRlKHNlbGYuc2F2ZWRfbGV2ZWxfdG9fbmFtZSkKKyAgICAgICAgICAgIGxvZ2dpbmcuX25hbWVUb0xldmVsLmNsZWFyKCkKKyAgICAgICAgICAgIGxvZ2dpbmcuX25hbWVUb0xldmVsLnVwZGF0ZShzZWxmLnNhdmVkX25hbWVfdG9fbGV2ZWwpCiAgICAgICAgICAgICBsb2dnaW5nLl9oYW5kbGVycy5jbGVhcigpCiAgICAgICAgICAgICBsb2dnaW5nLl9oYW5kbGVycy51cGRhdGUoc2VsZi5zYXZlZF9oYW5kbGVycykKICAgICAgICAgICAgIGxvZ2dpbmcuX2hhbmRsZXJMaXN0WzpdID0gc2VsZi5zYXZlZF9oYW5kbGVyX2xpc3QKQEAgLTE1MCwxNCArMTU0LDE3IEBACiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBsb2dnaW5nLl9yZWxlYXNlTG9jaygpCiAKLSAgICBkZWYgYXNzZXJ0X2xvZ19saW5lcyhzZWxmLCBleHBlY3RlZF92YWx1ZXMsIHN0cmVhbT1Ob25lKToKKyAgICBkZWYgYXNzZXJ0X2xvZ19saW5lcyhzZWxmLCBleHBlY3RlZF92YWx1ZXMsIHN0cmVhbT1Ob25lLCBwYXQ9Tm9uZSk6CiAgICAgICAgICIiIk1hdGNoIHRoZSBjb2xsZWN0ZWQgbG9nIGxpbmVzIGFnYWluc3QgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbgogICAgICAgICBzZWxmLmV4cGVjdGVkX2xvZ19wYXQsIGFuZCBjb21wYXJlIHRoZSBleHRyYWN0ZWQgZ3JvdXAgdmFsdWVzIHRvCiAgICAgICAgIHRoZSBleHBlY3RlZF92YWx1ZXMgbGlzdCBvZiB0dXBsZXMuIiIiCiAgICAgICAgIHN0cmVhbSA9IHN0cmVhbSBvciBzZWxmLnN0cmVhbQotICAgICAgICBwYXQgPSByZS5jb21waWxlKHNlbGYuZXhwZWN0ZWRfbG9nX3BhdCkKKyAgICAgICAgcGF0ID0gcmUuY29tcGlsZShwYXQgb3Igc2VsZi5leHBlY3RlZF9sb2dfcGF0KQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzdHJlYW0ucmVzZXQoKQorICAgICAgICAgICAgaWYgaGFzYXR0cihzdHJlYW0sICdyZXNldCcpOgorICAgICAgICAgICAgICAgIHN0cmVhbS5yZXNldCgpCisgICAgICAgICAgICBlbGlmIGhhc2F0dHIoc3RyZWFtLCAnc2VlaycpOgorICAgICAgICAgICAgICAgIHN0cmVhbS5zZWVrKDApCiAgICAgICAgICAgICBhY3R1YWxfbGluZXMgPSBzdHJlYW0ucmVhZGxpbmVzKCkKICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgogICAgICAgICAgICAgIyBTdHJpbmdJTy5TdHJpbmdJTyBsYWNrcyBhIHJlc2V0KCkgbWV0aG9kLgpAQCAtNDM1LDcgKzQ0Miw3IEBACiAgICAgIiIiVGVzdCB2YXJpb3VzIGZpbHRlcmluZyBwb3NzaWJpbGl0aWVzIHdpdGggY3VzdG9tIGxvZ2dpbmcgbGV2ZWxzLiIiIgogCiAgICAgIyBTa2lwIHRoZSBsb2dnZXIgbmFtZSBncm91cC4KLSAgICBleHBlY3RlZF9sb2dfcGF0ID0gciJeW1x3Ll0rIC0+IChbXHddKyk6IChbXGRdKykkIgorICAgIGV4cGVjdGVkX2xvZ19wYXQgPSByIl5bXHcuXSsgLT4gKFx3Kyk6IChcZCspJCIKIAogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgQmFzZVRlc3Quc2V0VXAoc2VsZikKQEAgLTU2NSw3ICs1NzIsNyBAQAogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5mYWNpbGl0eSwgaC5MT0dfVVNFUikKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaC51bml4c29ja2V0KQogICAgICAgICAgICAgICAgIGguY2xvc2UoKQotICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjogIyBzeXNsb2dkIG1pZ2h0IG5vdCBiZSBhdmFpbGFibGUKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOiAjIHN5c2xvZ2QgbWlnaHQgbm90IGJlIGF2YWlsYWJsZQogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgZm9yIG1ldGhvZCBpbiAoJ0dFVCcsICdQT1NUJywgJ1BVVCcpOgogICAgICAgICAgICAgaWYgbWV0aG9kID09ICdQVVQnOgpAQCAtNjUyLDQxICs2NTksNiBAQAogIyAtLSBpZiBpdCBwcm92ZXMgdG8gYmUgb2Ygd2lkZXIgdXRpbGl0eSB0aGFuIGp1c3QgdGVzdF9sb2dnaW5nCiAKIGlmIHRocmVhZGluZzoKLSAgICBjbGFzcyBUZXN0U01UUENoYW5uZWwoc210cGQuU01UUENoYW5uZWwpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBkZXJpdmVkIGNsYXNzIGhhcyBoYWQgdG8gYmUgY3JlYXRlZCBiZWNhdXNlIHNtdHBkIGRvZXMgbm90Ci0gICAgICAgIHN1cHBvcnQgdXNlIG9mIGN1c3RvbSBjaGFubmVsIG1hcHMsIGFsdGhvdWdoIHRoZXkgYXJlIGFsbG93ZWQgYnkKLSAgICAgICAgYXN5bmNvcmUncyBkZXNpZ24uIElzc3VlICMxMTk1OSBoYXMgYmVlbiByYWlzZWQgdG8gYWRkcmVzcyB0aGlzLAotICAgICAgICBhbmQgaWYgcmVzb2x2ZWQgc2F0aXNmYWN0b3JpbHksIHNvbWUgb2YgdGhpcyBjb2RlIGNhbiBiZSByZW1vdmVkLgotICAgICAgICAiIiIKLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlcnZlciwgY29ubiwgYWRkciwgc29ja21hcCk6Ci0gICAgICAgICAgICBhc3luY2hhdC5hc3luY19jaGF0Ll9faW5pdF9fKHNlbGYsIGNvbm4sIHNvY2ttYXApCi0gICAgICAgICAgICBzZWxmLnNtdHBfc2VydmVyID0gc2VydmVyCi0gICAgICAgICAgICBzZWxmLmNvbm4gPSBjb25uCi0gICAgICAgICAgICBzZWxmLmFkZHIgPSBhZGRyCi0gICAgICAgICAgICBzZWxmLmRhdGFfc2l6ZV9saW1pdCA9IE5vbmUKLSAgICAgICAgICAgIHNlbGYucmVjZWl2ZWRfbGluZXMgPSBbXQotICAgICAgICAgICAgc2VsZi5zbXRwX3N0YXRlID0gc2VsZi5DT01NQU5ECi0gICAgICAgICAgICBzZWxmLnNlZW5fZ3JlZXRpbmcgPSAnJwotICAgICAgICAgICAgc2VsZi5tYWlsZnJvbSA9IE5vbmUKLSAgICAgICAgICAgIHNlbGYucmNwdHRvcyA9IFtdCi0gICAgICAgICAgICBzZWxmLnJlY2VpdmVkX2RhdGEgPSAnJwotICAgICAgICAgICAgc2VsZi5mcWRuID0gc29ja2V0LmdldGZxZG4oKQotICAgICAgICAgICAgc2VsZi5udW1fYnl0ZXMgPSAwCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5wZWVyID0gY29ubi5nZXRwZWVybmFtZSgpCi0gICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGVycjoKLSAgICAgICAgICAgICAgICAjIGEgcmFjZSBjb25kaXRpb24gIG1heSBvY2N1ciBpZiB0aGUgb3RoZXIgZW5kIGlzIGNsb3NpbmcKLSAgICAgICAgICAgICAgICAjIGJlZm9yZSB3ZSBjYW4gZ2V0IHRoZSBwZWVybmFtZQotICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQotICAgICAgICAgICAgICAgIGlmIGVyci5hcmdzWzBdICE9IGVycm5vLkVOT1RDT05OOgotICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgc2VsZi5wdXNoKCcyMjAgJXMgJXMnICUgKHNlbGYuZnFkbiwgc210cGQuX192ZXJzaW9uX18pKQotICAgICAgICAgICAgc2VsZi5zZXRfdGVybWluYXRvcihiJ1xyXG4nKQotICAgICAgICAgICAgc2VsZi5leHRlbmRlZF9zbXRwID0gRmFsc2UKLQotCiAgICAgY2xhc3MgVGVzdFNNVFBTZXJ2ZXIoc210cGQuU01UUFNlcnZlcik6CiAgICAgICAgICIiIgogICAgICAgICBUaGlzIGNsYXNzIGltcGxlbWVudHMgYSB0ZXN0IFNNVFAgc2VydmVyLgpAQCAtNzA3LDM3ICs2NzksMTQgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIDpmdW5jOmBhc3luY29yZS5sb29wYC4gVGhpcyBhdm9pZHMgY2hhbmdpbmcgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICA6bW9kOmBhc3luY29yZWAgbW9kdWxlJ3MgZ2xvYmFsIHN0YXRlLgogICAgICAgICAiIiIKLSAgICAgICAgY2hhbm5lbF9jbGFzcyA9IFRlc3RTTVRQQ2hhbm5lbAogCiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyLCBoYW5kbGVyLCBwb2xsX2ludGVydmFsLCBzb2NrbWFwKToKLSAgICAgICAgICAgIHNlbGYuX2xvY2FsYWRkciA9IGFkZHIKLSAgICAgICAgICAgIHNlbGYuX3JlbW90ZWFkZHIgPSBOb25lCi0gICAgICAgICAgICBzZWxmLmRhdGFfc2l6ZV9saW1pdCA9IE5vbmUKLSAgICAgICAgICAgIHNlbGYuc29ja21hcCA9IHNvY2ttYXAKLSAgICAgICAgICAgIGFzeW5jb3JlLmRpc3BhdGNoZXIuX19pbml0X18oc2VsZiwgbWFwPXNvY2ttYXApCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc29jayA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKLSAgICAgICAgICAgICAgICBzb2NrLnNldGJsb2NraW5nKDApCi0gICAgICAgICAgICAgICAgc2VsZi5zZXRfc29ja2V0KHNvY2ssIG1hcD1zb2NrbWFwKQotICAgICAgICAgICAgICAgICMgdHJ5IHRvIHJlLXVzZSBhIHNlcnZlciBwb3J0IGlmIHBvc3NpYmxlCi0gICAgICAgICAgICAgICAgc2VsZi5zZXRfcmV1c2VfYWRkcigpCi0gICAgICAgICAgICAgICAgc2VsZi5iaW5kKGFkZHIpCi0gICAgICAgICAgICAgICAgc2VsZi5wb3J0ID0gc29jay5nZXRzb2NrbmFtZSgpWzFdCi0gICAgICAgICAgICAgICAgc2VsZi5saXN0ZW4oNSkKLSAgICAgICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgICAgICBzZWxmLmNsb3NlKCkKLSAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgc210cGQuU01UUFNlcnZlci5fX2luaXRfXyhzZWxmLCBhZGRyLCBOb25lLCBtYXA9c29ja21hcCkKKyAgICAgICAgICAgIHNlbGYucG9ydCA9IHNlbGYuc29ja2V0LmdldHNvY2tuYW1lKClbMV0KICAgICAgICAgICAgIHNlbGYuX2hhbmRsZXIgPSBoYW5kbGVyCiAgICAgICAgICAgICBzZWxmLl90aHJlYWQgPSBOb25lCiAgICAgICAgICAgICBzZWxmLnBvbGxfaW50ZXJ2YWwgPSBwb2xsX2ludGVydmFsCiAKLSAgICAgICAgZGVmIGhhbmRsZV9hY2NlcHRlZChzZWxmLCBjb25uLCBhZGRyKToKLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgUmVkZWZpbmVkIG9ubHkgYmVjYXVzZSB0aGUgYmFzZSBjbGFzcyBkb2VzIG5vdCBwYXNzIGluIGEKLSAgICAgICAgICAgIG1hcCwgZm9yY2luZyB1c2Ugb2YgYSBnbG9iYWwgaW4gOm1vZDpgYXN5bmNvcmVgLgotICAgICAgICAgICAgIiIiCi0gICAgICAgICAgICBjaGFubmVsID0gc2VsZi5jaGFubmVsX2NsYXNzKHNlbGYsIGNvbm4sIGFkZHIsIHNlbGYuc29ja21hcCkKLQogICAgICAgICBkZWYgcHJvY2Vzc19tZXNzYWdlKHNlbGYsIHBlZXIsIG1haWxmcm9tLCByY3B0dG9zLCBkYXRhKToKICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgRGVsZWdhdGVzIHRvIHRoZSBoYW5kbGVyIHBhc3NlZCBpbiB0byB0aGUgc2VydmVyJ3MgY29uc3RydWN0b3IuCkBAIC03NjgsOCArNzE3LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZnVuYzpgYXN5bmNvcmUubG9vcGAuCiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBhc3luY29yZS5sb29wKHBvbGxfaW50ZXJ2YWwsIG1hcD1zZWxmLnNvY2ttYXApCi0gICAgICAgICAgICBleGNlcHQgc2VsZWN0LmVycm9yOgorICAgICAgICAgICAgICAgIGFzeW5jb3JlLmxvb3AocG9sbF9pbnRlcnZhbCwgbWFwPXNlbGYuX21hcCkKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgICMgT24gRnJlZUJTRCA4LCBjbG9zaW5nIHRoZSBzZXJ2ZXIgcmVwZWF0YWJseQogICAgICAgICAgICAgICAgICMgcmFpc2VzIHRoaXMgZXJyb3IuIFdlIHN3YWxsb3cgaXQgaWYgdGhlCiAgICAgICAgICAgICAgICAgIyBzZXJ2ZXIgaGFzIGJlZW4gY2xvc2VkLgpAQCAtODc2LDcgKzgyNSw3IEBACiAgICAgICAgICAgICAgICAgc29jaywgYWRkciA9IHNlbGYuc29ja2V0LmFjY2VwdCgpCiAgICAgICAgICAgICAgICAgaWYgc2VsZi5zc2xjdHg6CiAgICAgICAgICAgICAgICAgICAgIHNvY2sgPSBzZWxmLnNzbGN0eC53cmFwX3NvY2tldChzb2NrLCBzZXJ2ZXJfc2lkZT1UcnVlKQotICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICAjIHNvY2tldCBlcnJvcnMgYXJlIHNpbGVuY2VkIGJ5IHRoZSBjYWxsZXIsIHByaW50IHRoZW0gaGVyZQogICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkdvdCBhbiBlcnJvcjpcbiVzXG4iICUgZSkKICAgICAgICAgICAgICAgICByYWlzZQpAQCAtOTQyLDcgKzg5MSw3IEBACiAgICAgICAgICAgICAgICAgICAgIGlmIGRhdGE6CiAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwZXIoRGVsZWdhdGluZ1VEUFJlcXVlc3RIYW5kbGVyLCBzZWxmKS5maW5pc2goKQotICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlci5fY2xvc2VkOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQogCkBAIC05OTYsNyArOTQ1LDcgQEAKICAgICAiIiJUZXN0cyBmb3IgdGhlIE1lbW9yeUhhbmRsZXIuIiIiCiAKICAgICAjIERvIG5vdCBib3RoZXIgd2l0aCBhIGxvZ2dlciBuYW1lIGdyb3VwLgotICAgIGV4cGVjdGVkX2xvZ19wYXQgPSByIl5bXHcuXSsgLT4gKFtcd10rKTogKFtcZF0rKSQiCisgICAgZXhwZWN0ZWRfbG9nX3BhdCA9IHIiXltcdy5dKyAtPiAoXHcrKTogKFxkKykkIgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBCYXNlVGVzdC5zZXRVcChzZWxmKQpAQCAtMTA0OSw3ICs5OTgsNyBAQAogCiAgICAgIiIiUmVhZGluZyBsb2dnaW5nIGNvbmZpZyBmcm9tIGEgLmluaS1zdHlsZSBjb25maWcgZmlsZS4iIiIKIAotICAgIGV4cGVjdGVkX2xvZ19wYXQgPSByIl4oW1x3XSspIFwrXCsgKFtcd10rKSQiCisgICAgZXhwZWN0ZWRfbG9nX3BhdCA9IHIiXihcdyspIFwrXCsgKFx3KykkIgogCiAgICAgIyBjb25maWcwIGlzIGEgc3RhbmRhcmQgY29uZmlndXJhdGlvbi4KICAgICBjb25maWcwID0gIiIiCkBAIC0xMjk3LDYgKzEyNDYsMjQgQEAKICAgICAgICAgICAgICMgT3JpZ2luYWwgbG9nZ2VyIG91dHB1dCBpcyBlbXB0eS4KICAgICAgICAgICAgIHNlbGYuYXNzZXJ0X2xvZ19saW5lcyhbXSkKIAorICAgIGRlZiB0ZXN0X2NvbmZpZzBfdXNpbmdfY3Bfb2soc2VsZik6CisgICAgICAgICMgQSBzaW1wbGUgY29uZmlnIGZpbGUgd2hpY2ggb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IHNldHRpbmdzLgorICAgICAgICB3aXRoIGNhcHR1cmVkX3N0ZG91dCgpIGFzIG91dHB1dDoKKyAgICAgICAgICAgIGZpbGUgPSBpby5TdHJpbmdJTyh0ZXh0d3JhcC5kZWRlbnQoc2VsZi5jb25maWcwKSkKKyAgICAgICAgICAgIGNwID0gY29uZmlncGFyc2VyLkNvbmZpZ1BhcnNlcigpCisgICAgICAgICAgICBjcC5yZWFkX2ZpbGUoZmlsZSkKKyAgICAgICAgICAgIGxvZ2dpbmcuY29uZmlnLmZpbGVDb25maWcoY3ApCisgICAgICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCisgICAgICAgICAgICAjIFdvbid0IG91dHB1dCBhbnl0aGluZworICAgICAgICAgICAgbG9nZ2VyLmluZm8oc2VsZi5uZXh0X21lc3NhZ2UoKSkKKyAgICAgICAgICAgICMgT3V0cHV0cyBhIG1lc3NhZ2UKKyAgICAgICAgICAgIGxvZ2dlci5lcnJvcihzZWxmLm5leHRfbWVzc2FnZSgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRfbG9nX2xpbmVzKFsKKyAgICAgICAgICAgICAgICAoJ0VSUk9SJywgJzInKSwKKyAgICAgICAgICAgIF0sIHN0cmVhbT1vdXRwdXQpCisgICAgICAgICAgICAjIE9yaWdpbmFsIGxvZ2dlciBvdXRwdXQgaXMgZW1wdHkuCisgICAgICAgICAgICBzZWxmLmFzc2VydF9sb2dfbGluZXMoW10pCisKICAgICBkZWYgdGVzdF9jb25maWcxX29rKHNlbGYsIGNvbmZpZz1jb25maWcxKToKICAgICAgICAgIyBBIGNvbmZpZyBmaWxlIGRlZmluaW5nIGEgc3ViLXBhcnNlciBhcyB3ZWxsLgogICAgICAgICB3aXRoIGNhcHR1cmVkX3N0ZG91dCgpIGFzIG91dHB1dDoKQEAgLTE0NDksMTYgKzE0MTYsMTkgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmxvZ19vdXRwdXQsICJzcGFtXG5lZ2dzXG4iKQogCiAgICAgZGVmIHRlc3Rfbm9zZXJ2ZXIoc2VsZik6CisgICAgICAgICMgQXZvaWQgdGltaW5nLXJlbGF0ZWQgZmFpbHVyZXMgZHVlIHRvIFNvY2tldEhhbmRsZXIncyBvd24gaGFyZC13aXJlZAorICAgICAgICAjIG9uZS1zZWNvbmQgdGltZW91dCBvbiBzb2NrZXQuY3JlYXRlX2Nvbm5lY3Rpb24oKSAoaXNzdWUgIzE2MjY0KS4KKyAgICAgICAgc2VsZi5zb2NrX2hkbHIucmV0cnlTdGFydCA9IDIuNQogICAgICAgICAjIEtpbGwgdGhlIHNlcnZlcgogICAgICAgICBzZWxmLnNlcnZlci5zdG9wKDIuMCkKLSAgICAgICAgI1RoZSBsb2dnaW5nIGNhbGwgc2hvdWxkIHRyeSB0byBjb25uZWN0LCB3aGljaCBzaG91bGQgZmFpbAorICAgICAgICAjIFRoZSBsb2dnaW5nIGNhbGwgc2hvdWxkIHRyeSB0byBjb25uZWN0LCB3aGljaCBzaG91bGQgZmFpbAogICAgICAgICB0cnk6CiAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoJ0RlbGliZXJhdGUgbWlzdGFrZScpCiAgICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6CiAgICAgICAgICAgICBzZWxmLnJvb3RfbG9nZ2VyLmV4Y2VwdGlvbignTmV2ZXIgc2VudCcpCiAgICAgICAgIHNlbGYucm9vdF9sb2dnZXIuZXJyb3IoJ05ldmVyIHNlbnQsIGVpdGhlcicpCiAgICAgICAgIG5vdyA9IHRpbWUudGltZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLnNvY2tfaGRsci5yZXRyeVRpbWUgPiBub3cpCisgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcihzZWxmLnNvY2tfaGRsci5yZXRyeVRpbWUsIG5vdykKICAgICAgICAgdGltZS5zbGVlcChzZWxmLnNvY2tfaGRsci5yZXRyeVRpbWUgLSBub3cgKyAwLjAwMSkKICAgICAgICAgc2VsZi5yb290X2xvZ2dlci5lcnJvcignTm9yIHRoaXMnKQogCkBAIC0xNzg0LDcgKzE3NTQsNyBAQAogICAgICAgICAgICAgbG9nZ2VyLnJlbW92ZUhhbmRsZXIoaCkKICAgICAgICAgICAgIHMgPSBzdHJlYW0uZ2V0dmFsdWUoKQogICAgICAgICAgICAgaC5jbG9zZSgpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocy5maW5kKCJVc2VyV2FybmluZzogSSdtIHdhcm5pbmcgeW91Li4uXG4iKSA+IDApCisgICAgICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIocy5maW5kKCJVc2VyV2FybmluZzogSSdtIHdhcm5pbmcgeW91Li4uXG4iKSwgMCkKIAogICAgICAgICAgICAgI1NlZSBpZiBhbiBleHBsaWNpdCBmaWxlIHVzZXMgdGhlIG9yaWdpbmFsIGltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBhX2ZpbGUgPSBpby5TdHJpbmdJTygpCkBAIC0xODIyLDcgKzE3OTIsNyBAQAogCiAgICAgIiIiUmVhZGluZyBsb2dnaW5nIGNvbmZpZyBmcm9tIGEgZGljdGlvbmFyeS4iIiIKIAotICAgIGV4cGVjdGVkX2xvZ19wYXQgPSByIl4oW1x3XSspIFwrXCsgKFtcd10rKSQiCisgICAgZXhwZWN0ZWRfbG9nX3BhdCA9IHIiXihcdyspIFwrXCsgKFx3KykkIgogCiAgICAgIyBjb25maWcwIGlzIGEgc3RhbmRhcmQgY29uZmlndXJhdGlvbi4KICAgICBjb25maWcwID0gewpAQCAtMjM5NCw2ICsyMzY0LDMyIEBACiAgICAgICAgIH0sCiAgICAgfQogCisgICAgIyBBcyBjb25maWcwLCBidXQgd2l0aCBwcm9wZXJ0aWVzCisgICAgY29uZmlnMTQgPSB7CisgICAgICAgICd2ZXJzaW9uJzogMSwKKyAgICAgICAgJ2Zvcm1hdHRlcnMnOiB7CisgICAgICAgICAgICAnZm9ybTEnIDogeworICAgICAgICAgICAgICAgICdmb3JtYXQnIDogJyUobGV2ZWxuYW1lKXMgKysgJShtZXNzYWdlKXMnLAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgICAgJ2hhbmRsZXJzJyA6IHsKKyAgICAgICAgICAgICdoYW5kMScgOiB7CisgICAgICAgICAgICAgICAgJ2NsYXNzJyA6ICdsb2dnaW5nLlN0cmVhbUhhbmRsZXInLAorICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogJ2Zvcm0xJywKKyAgICAgICAgICAgICAgICAnbGV2ZWwnIDogJ05PVFNFVCcsCisgICAgICAgICAgICAgICAgJ3N0cmVhbScgIDogJ2V4dDovL3N5cy5zdGRvdXQnLAorICAgICAgICAgICAgICAgICcuJzogeworICAgICAgICAgICAgICAgICAgICAnZm9vJzogJ2JhcicsCisgICAgICAgICAgICAgICAgICAgICd0ZXJtaW5hdG9yJzogJyFcbicsCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgICAgJ3Jvb3QnIDogeworICAgICAgICAgICAgJ2xldmVsJyA6ICdXQVJOSU5HJywKKyAgICAgICAgICAgICdoYW5kbGVycycgOiBbJ2hhbmQxJ10sCisgICAgICAgIH0sCisgICAgfQorCiAgICAgb3V0X29mX29yZGVyID0gewogICAgICAgICAidmVyc2lvbiI6IDEsCiAgICAgICAgICJmb3JtYXR0ZXJzIjogewpAQCAtMjY2MSwxMSArMjY1NywyMCBAQAogICAgIGRlZiB0ZXN0X2NvbmZpZzEzX2ZhaWx1cmUoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbiwgc2VsZi5hcHBseV9jb25maWcsIHNlbGYuY29uZmlnMTMpCiAKKyAgICBkZWYgdGVzdF9jb25maWcxNF9vayhzZWxmKToKKyAgICAgICAgd2l0aCBjYXB0dXJlZF9zdGRvdXQoKSBhcyBvdXRwdXQ6CisgICAgICAgICAgICBzZWxmLmFwcGx5X2NvbmZpZyhzZWxmLmNvbmZpZzE0KQorICAgICAgICAgICAgaCA9IGxvZ2dpbmcuX2hhbmRsZXJzWydoYW5kMSddCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguZm9vLCAnYmFyJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC50ZXJtaW5hdG9yLCAnIVxuJykKKyAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygnRXhjbGFtYXRpb24nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG91dHB1dC5nZXR2YWx1ZSgpLmVuZHN3aXRoKCdFeGNsYW1hdGlvbiFcbicpKQorCiAgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkaW5nLCAnbGlzdGVuKCkgbmVlZHMgdGhyZWFkaW5nIHRvIHdvcmsnKQotICAgIGRlZiBzZXR1cF92aWFfbGlzdGVuZXIoc2VsZiwgdGV4dCk6CisgICAgZGVmIHNldHVwX3ZpYV9saXN0ZW5lcihzZWxmLCB0ZXh0LCB2ZXJpZnk9Tm9uZSk6CiAgICAgICAgIHRleHQgPSB0ZXh0LmVuY29kZSgidXRmLTgiKQogICAgICAgICAjIEFzayBmb3IgYSByYW5kb21seSBhc3NpZ25lZCBwb3J0IChieSB1c2luZyBwb3J0IDApCi0gICAgICAgIHQgPSBsb2dnaW5nLmNvbmZpZy5saXN0ZW4oMCkKKyAgICAgICAgdCA9IGxvZ2dpbmcuY29uZmlnLmxpc3RlbigwLCB2ZXJpZnkpCiAgICAgICAgIHQuc3RhcnQoKQogICAgICAgICB0LnJlYWR5LndhaXQoKQogICAgICAgICAjIE5vdyBnZXQgdGhlIHBvcnQgYWxsb2NhdGVkCkBAIC0yNzI1LDYgKzI3MzAsNjkgQEAKICAgICAgICAgICAgICMgT3JpZ2luYWwgbG9nZ2VyIG91dHB1dCBpcyBlbXB0eS4KICAgICAgICAgICAgIHNlbGYuYXNzZXJ0X2xvZ19saW5lcyhbXSkKIAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZGluZywgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCisgICAgZGVmIHRlc3RfbGlzdGVuX3ZlcmlmeShzZWxmKToKKworICAgICAgICBkZWYgdmVyaWZ5X2ZhaWwoc3R1ZmYpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBkZWYgdmVyaWZ5X3JldmVyc2Uoc3R1ZmYpOgorICAgICAgICAgICAgcmV0dXJuIHN0dWZmWzo6LTFdCisKKyAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoImNvbXBpbGVyLnBhcnNlciIpCisgICAgICAgIHRvX3NlbmQgPSB0ZXh0d3JhcC5kZWRlbnQoQ29uZmlnRmlsZVRlc3QuY29uZmlnMSkKKyAgICAgICAgIyBGaXJzdCwgc3BlY2lmeSBhIHZlcmlmaWNhdGlvbiBmdW5jdGlvbiB0aGF0IHdpbGwgZmFpbC4KKyAgICAgICAgIyBXZSBleHBlY3QgdG8gc2VlIG5vIG91dHB1dCwgc2luY2Ugb3VyIGNvbmZpZ3VyYXRpb24KKyAgICAgICAgIyBuZXZlciB0b29rIGVmZmVjdC4KKyAgICAgICAgd2l0aCBjYXB0dXJlZF9zdGRvdXQoKSBhcyBvdXRwdXQ6CisgICAgICAgICAgICBzZWxmLnNldHVwX3ZpYV9saXN0ZW5lcih0b19zZW5kLCB2ZXJpZnlfZmFpbCkKKyAgICAgICAgICAgICMgQm90aCB3aWxsIG91dHB1dCBhIG1lc3NhZ2UKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKHNlbGYubmV4dF9tZXNzYWdlKCkpCisgICAgICAgICAgICBsb2dnZXIuZXJyb3Ioc2VsZi5uZXh0X21lc3NhZ2UoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRfbG9nX2xpbmVzKFtdLCBzdHJlYW09b3V0cHV0KQorICAgICAgICAjIE9yaWdpbmFsIGxvZ2dlciBvdXRwdXQgaGFzIHRoZSBzdHVmZiB3ZSBsb2dnZWQuCisgICAgICAgIHNlbGYuYXNzZXJ0X2xvZ19saW5lcyhbCisgICAgICAgICAgICAoJ0lORk8nLCAnMScpLAorICAgICAgICAgICAgKCdFUlJPUicsICcyJyksCisgICAgICAgIF0sIHBhdD1yIl5bXHcuXSsgLT4gKFx3Kyk6IChcZCspJCIpCisKKyAgICAgICAgIyBOb3csIHBlcmZvcm0gbm8gdmVyaWZpY2F0aW9uLiBPdXIgY29uZmlndXJhdGlvbgorICAgICAgICAjIHNob3VsZCB0YWtlIGVmZmVjdC4KKworICAgICAgICB3aXRoIGNhcHR1cmVkX3N0ZG91dCgpIGFzIG91dHB1dDoKKyAgICAgICAgICAgIHNlbGYuc2V0dXBfdmlhX2xpc3RlbmVyKHRvX3NlbmQpICAgICMgbm8gdmVyaWZ5IGNhbGxhYmxlIHNwZWNpZmllZAorICAgICAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoImNvbXBpbGVyLnBhcnNlciIpCisgICAgICAgICAgICAjIEJvdGggd2lsbCBvdXRwdXQgYSBtZXNzYWdlCisgICAgICAgICAgICBsb2dnZXIuaW5mbyhzZWxmLm5leHRfbWVzc2FnZSgpKQorICAgICAgICAgICAgbG9nZ2VyLmVycm9yKHNlbGYubmV4dF9tZXNzYWdlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0X2xvZ19saW5lcyhbCisgICAgICAgICAgICAoJ0lORk8nLCAnMycpLAorICAgICAgICAgICAgKCdFUlJPUicsICc0JyksCisgICAgICAgIF0sIHN0cmVhbT1vdXRwdXQpCisgICAgICAgICMgT3JpZ2luYWwgbG9nZ2VyIG91dHB1dCBzdGlsbCBoYXMgdGhlIHN0dWZmIHdlIGxvZ2dlZCBiZWZvcmUuCisgICAgICAgIHNlbGYuYXNzZXJ0X2xvZ19saW5lcyhbCisgICAgICAgICAgICAoJ0lORk8nLCAnMScpLAorICAgICAgICAgICAgKCdFUlJPUicsICcyJyksCisgICAgICAgIF0sIHBhdD1yIl5bXHcuXSsgLT4gKFx3Kyk6IChcZCspJCIpCisKKyAgICAgICAgIyBOb3csIHBlcmZvcm0gdmVyaWZpY2F0aW9uIHdoaWNoIHRyYW5zZm9ybXMgdGhlIGJ5dGVzLgorCisgICAgICAgIHdpdGggY2FwdHVyZWRfc3Rkb3V0KCkgYXMgb3V0cHV0OgorICAgICAgICAgICAgc2VsZi5zZXR1cF92aWFfbGlzdGVuZXIodG9fc2VuZFs6Oi0xXSwgdmVyaWZ5X3JldmVyc2UpCisgICAgICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigiY29tcGlsZXIucGFyc2VyIikKKyAgICAgICAgICAgICMgQm90aCB3aWxsIG91dHB1dCBhIG1lc3NhZ2UKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKHNlbGYubmV4dF9tZXNzYWdlKCkpCisgICAgICAgICAgICBsb2dnZXIuZXJyb3Ioc2VsZi5uZXh0X21lc3NhZ2UoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRfbG9nX2xpbmVzKFsKKyAgICAgICAgICAgICgnSU5GTycsICc1JyksCisgICAgICAgICAgICAoJ0VSUk9SJywgJzYnKSwKKyAgICAgICAgXSwgc3RyZWFtPW91dHB1dCkKKyAgICAgICAgIyBPcmlnaW5hbCBsb2dnZXIgb3V0cHV0IHN0aWxsIGhhcyB0aGUgc3R1ZmYgd2UgbG9nZ2VkIGJlZm9yZS4KKyAgICAgICAgc2VsZi5hc3NlcnRfbG9nX2xpbmVzKFsKKyAgICAgICAgICAgICgnSU5GTycsICcxJyksCisgICAgICAgICAgICAoJ0VSUk9SJywgJzInKSwKKyAgICAgICAgXSwgcGF0PXIiXltcdy5dKyAtPiAoXHcrKTogKFxkKykkIikKKwogICAgIGRlZiB0ZXN0X291dF9vZl9vcmRlcihzZWxmKToKICAgICAgICAgc2VsZi5hcHBseV9jb25maWcoc2VsZi5vdXRfb2Zfb3JkZXIpCiAgICAgICAgIGhhbmRsZXIgPSBsb2dnaW5nLmdldExvZ2dlcignbXltb2R1bGUnKS5oYW5kbGVyc1swXQpAQCAtMjc4NCwxNCArMjg1MiwxNCBAQAogICAgICAgICBsMiA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdkZWYuZ2hpJykKICAgICAgICAgYzEgPSByLmdldENoaWxkKCd4eXonKQogICAgICAgICBjMiA9IHIuZ2V0Q2hpbGQoJ3V2dy54eXonKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoYzEgaXMgbG9nZ2luZy5nZXRMb2dnZXIoJ3h5eicpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoYzIgaXMgbG9nZ2luZy5nZXRMb2dnZXIoJ3V2dy54eXonKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhjMSwgbG9nZ2luZy5nZXRMb2dnZXIoJ3h5eicpKQorICAgICAgICBzZWxmLmFzc2VydElzKGMyLCBsb2dnaW5nLmdldExvZ2dlcigndXZ3Lnh5eicpKQogICAgICAgICBjMSA9IGwxLmdldENoaWxkKCdkZWYnKQogICAgICAgICBjMiA9IGMxLmdldENoaWxkKCdnaGknKQogICAgICAgICBjMyA9IGwxLmdldENoaWxkKCdkZWYuZ2hpJykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMxIGlzIGxvZ2dpbmcuZ2V0TG9nZ2VyKCdhYmMuZGVmJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjMiBpcyBsb2dnaW5nLmdldExvZ2dlcignYWJjLmRlZi5naGknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMyIGlzIGMzKQorICAgICAgICBzZWxmLmFzc2VydElzKGMxLCBsb2dnaW5nLmdldExvZ2dlcignYWJjLmRlZicpKQorICAgICAgICBzZWxmLmFzc2VydElzKGMyLCBsb2dnaW5nLmdldExvZ2dlcignYWJjLmRlZi5naGknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhjMiwgYzMpCiAKIAogY2xhc3MgRGVyaXZlZExvZ1JlY29yZChsb2dnaW5nLkxvZ1JlY29yZCk6CkBAIC0yODM0LDcgKzI5MDIsNyBAQAogCiBjbGFzcyBRdWV1ZUhhbmRsZXJUZXN0KEJhc2VUZXN0KToKICAgICAjIERvIG5vdCBib3RoZXIgd2l0aCBhIGxvZ2dlciBuYW1lIGdyb3VwLgotICAgIGV4cGVjdGVkX2xvZ19wYXQgPSByIl5bXHcuXSsgLT4gKFtcd10rKTogKFtcZF0rKSQiCisgICAgZXhwZWN0ZWRfbG9nX3BhdCA9IHIiXltcdy5dKyAtPiAoXHcrKTogKFxkKykkIgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBCYXNlVGVzdC5zZXRVcChzZWxmKQpAQCAtMzEyOCwxMyArMzE5NiwxMyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcwIC0gcmVsZWFzZScsIHNlbGYuY2FsbGVkWy0xXSkKIAogICAgIGRlZiB0ZXN0X3dpdGhfaW9lcnJvcl9pbl9hY3F1aXJlKHNlbGYpOgotICAgICAgICBzZWxmLl90ZXN0X3dpdGhfZmFpbHVyZV9pbl9tZXRob2QoJ2FjcXVpcmUnLCBJT0Vycm9yKQorICAgICAgICBzZWxmLl90ZXN0X3dpdGhfZmFpbHVyZV9pbl9tZXRob2QoJ2FjcXVpcmUnLCBPU0Vycm9yKQogCiAgICAgZGVmIHRlc3Rfd2l0aF9pb2Vycm9yX2luX2ZsdXNoKHNlbGYpOgotICAgICAgICBzZWxmLl90ZXN0X3dpdGhfZmFpbHVyZV9pbl9tZXRob2QoJ2ZsdXNoJywgSU9FcnJvcikKKyAgICAgICAgc2VsZi5fdGVzdF93aXRoX2ZhaWx1cmVfaW5fbWV0aG9kKCdmbHVzaCcsIE9TRXJyb3IpCiAKICAgICBkZWYgdGVzdF93aXRoX2lvZXJyb3JfaW5fY2xvc2Uoc2VsZik6Ci0gICAgICAgIHNlbGYuX3Rlc3Rfd2l0aF9mYWlsdXJlX2luX21ldGhvZCgnY2xvc2UnLCBJT0Vycm9yKQorICAgICAgICBzZWxmLl90ZXN0X3dpdGhfZmFpbHVyZV9pbl9tZXRob2QoJ2Nsb3NlJywgT1NFcnJvcikKIAogICAgIGRlZiB0ZXN0X3dpdGhfdmFsdWVlcnJvcl9pbl9hY3F1aXJlKHNlbGYpOgogICAgICAgICBzZWxmLl90ZXN0X3dpdGhfZmFpbHVyZV9pbl9tZXRob2QoJ2FjcXVpcmUnLCBWYWx1ZUVycm9yKQpAQCAtMzM0MSw2ICszNDA5LDEyIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9nZ2luZy5yb290LmxldmVsLCBzZWxmLm9yaWdpbmFsX2xvZ2dpbmdfbGV2ZWwpCiAKICAgICBkZWYgdGVzdF9maWxlbmFtZShzZWxmKToKKworICAgICAgICBkZWYgY2xlYW51cChoMSwgaDIsIGZuKToKKyAgICAgICAgICAgIGgxLmNsb3NlKCkKKyAgICAgICAgICAgIGgyLmNsb3NlKCkKKyAgICAgICAgICAgIG9zLnJlbW92ZShmbikKKwogICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKGZpbGVuYW1lPSd0ZXN0LmxvZycpCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obG9nZ2luZy5yb290LmhhbmRsZXJzKSwgMSkKQEAgLTMzNDgsMTcgKzM0MjIsMjMgQEAKICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGhhbmRsZXIsIGxvZ2dpbmcuRmlsZUhhbmRsZXIpCiAKICAgICAgICAgZXhwZWN0ZWQgPSBsb2dnaW5nLkZpbGVIYW5kbGVyKCd0ZXN0LmxvZycsICdhJykKLSAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGV4cGVjdGVkLmNsb3NlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhbmRsZXIuc3RyZWFtLm1vZGUsIGV4cGVjdGVkLnN0cmVhbS5tb2RlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhbmRsZXIuc3RyZWFtLm5hbWUsIGV4cGVjdGVkLnN0cmVhbS5uYW1lKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoY2xlYW51cCwgaGFuZGxlciwgZXhwZWN0ZWQsICd0ZXN0LmxvZycpCiAKICAgICBkZWYgdGVzdF9maWxlbW9kZShzZWxmKToKKworICAgICAgICBkZWYgY2xlYW51cChoMSwgaDIsIGZuKToKKyAgICAgICAgICAgIGgxLmNsb3NlKCkKKyAgICAgICAgICAgIGgyLmNsb3NlKCkKKyAgICAgICAgICAgIG9zLnJlbW92ZShmbikKKwogICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKGZpbGVuYW1lPSd0ZXN0LmxvZycsIGZpbGVtb2RlPSd3YicpCiAKICAgICAgICAgaGFuZGxlciA9IGxvZ2dpbmcucm9vdC5oYW5kbGVyc1swXQogICAgICAgICBleHBlY3RlZCA9IGxvZ2dpbmcuRmlsZUhhbmRsZXIoJ3Rlc3QubG9nJywgJ3diJykKLSAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGV4cGVjdGVkLmNsb3NlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhbmRsZXIuc3RyZWFtLm1vZGUsIGV4cGVjdGVkLnN0cmVhbS5tb2RlKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoY2xlYW51cCwgaGFuZGxlciwgZXhwZWN0ZWQsICd0ZXN0LmxvZycpCiAKICAgICBkZWYgdGVzdF9zdHJlYW0oc2VsZik6CiAgICAgICAgIHN0cmVhbSA9IGlvLlN0cmluZ0lPKCkKQEAgLTM4MTQsNiArMzg5NCw2MyBAQAogICAgICAgICBhc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbG9nZ2luZy5oYW5kbGVycy5UaW1lZFJvdGF0aW5nRmlsZUhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZuLCAnVzcnLCBkZWxheT1UcnVlKQogCisgICAgZGVmIHRlc3RfY29tcHV0ZV9yb2xsb3Zlcl9kYWlseV9hdHRpbWUoc2VsZik6CisgICAgICAgIGN1cnJlbnRUaW1lID0gMAorICAgICAgICBhdFRpbWUgPSBkYXRldGltZS50aW1lKDEyLCAwLCAwKQorICAgICAgICByaCA9IGxvZ2dpbmcuaGFuZGxlcnMuVGltZWRSb3RhdGluZ0ZpbGVIYW5kbGVyKAorICAgICAgICAgICAgc2VsZi5mbiwgd2hlbj0nTUlETklHSFQnLCBpbnRlcnZhbD0xLCBiYWNrdXBDb3VudD0wLCB1dGM9VHJ1ZSwKKyAgICAgICAgICAgIGF0VGltZT1hdFRpbWUpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFjdHVhbCA9IHJoLmNvbXB1dGVSb2xsb3ZlcihjdXJyZW50VGltZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsLCBjdXJyZW50VGltZSArIDEyICogNjAgKiA2MCkKKworICAgICAgICAgICAgYWN0dWFsID0gcmguY29tcHV0ZVJvbGxvdmVyKGN1cnJlbnRUaW1lICsgMTMgKiA2MCAqIDYwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWwsIGN1cnJlbnRUaW1lICsgMzYgKiA2MCAqIDYwKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcmguY2xvc2UoKQorCisgICAgI0B1bml0dGVzdC5za2lwSWYoVHJ1ZSwgJ1RlbXBvcmFyaWx5IHNraXBwZWQgd2hpbGUgZmFpbHVyZXMgaW52ZXN0aWdhdGVkLicpCisgICAgZGVmIHRlc3RfY29tcHV0ZV9yb2xsb3Zlcl93ZWVrbHlfYXR0aW1lKHNlbGYpOgorICAgICAgICBjdXJyZW50VGltZSA9IGludCh0aW1lLnRpbWUoKSkKKyAgICAgICAgdG9kYXkgPSBjdXJyZW50VGltZSAtIGN1cnJlbnRUaW1lICUgODY0MDAKKworICAgICAgICBhdFRpbWUgPSBkYXRldGltZS50aW1lKDEyLCAwLCAwKQorCisgICAgICAgIHdkYXkgPSB0aW1lLmdtdGltZSh0b2RheSkudG1fd2RheQorICAgICAgICBmb3IgZGF5IGluIHJhbmdlKDcpOgorICAgICAgICAgICAgcmggPSBsb2dnaW5nLmhhbmRsZXJzLlRpbWVkUm90YXRpbmdGaWxlSGFuZGxlcigKKyAgICAgICAgICAgICAgICBzZWxmLmZuLCB3aGVuPSdXJWQnICUgZGF5LCBpbnRlcnZhbD0xLCBiYWNrdXBDb3VudD0wLCB1dGM9VHJ1ZSwKKyAgICAgICAgICAgICAgICBhdFRpbWU9YXRUaW1lKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGlmIHdkYXkgPiBkYXk6CisgICAgICAgICAgICAgICAgICAgICMgVGhlIHJvbGxvdmVyIGRheSBoYXMgYWxyZWFkeSBwYXNzZWQgdGhpcyB3ZWVrLCBzbyB3ZQorICAgICAgICAgICAgICAgICAgICAjIGdvIG92ZXIgaW50byBuZXh0IHdlZWsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAoNyAtIHdkYXkgKyBkYXkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSAoZGF5IC0gd2RheSkKKyAgICAgICAgICAgICAgICAjIEF0IHRoaXMgcG9pbnQgZXhwZWN0ZWQgaXMgaW4gZGF5cyBmcm9tIG5vdywgY29udmVydCB0byBzZWNvbmRzCisgICAgICAgICAgICAgICAgZXhwZWN0ZWQgKj0gMjQgKiA2MCAqIDYwCisgICAgICAgICAgICAgICAgIyBBZGQgaW4gdGhlIHJvbGxvdmVyIHRpbWUKKyAgICAgICAgICAgICAgICBleHBlY3RlZCArPSAxMiAqIDYwICogNjAKKyAgICAgICAgICAgICAgICAjIEFkZCBpbiBhZGp1c3RtZW50IGZvciB0b2RheQorICAgICAgICAgICAgICAgIGV4cGVjdGVkICs9IHRvZGF5CisgICAgICAgICAgICAgICAgYWN0dWFsID0gcmguY29tcHV0ZVJvbGxvdmVyKHRvZGF5KQorICAgICAgICAgICAgICAgIGlmIGFjdHVhbCAhPSBleHBlY3RlZDoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ2ZhaWxlZCBpbiB0aW1lem9uZTogJWQnICUgdGltZS50aW1lem9uZSkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ2xvY2FsIHZhcnM6ICVzJyAlIGxvY2FscygpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsLCBleHBlY3RlZCkKKyAgICAgICAgICAgICAgICBpZiBkYXkgPT0gd2RheToKKyAgICAgICAgICAgICAgICAgICAgIyBnb2VzIGludG8gZm9sbG93aW5nIHdlZWsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQgKz0gNyAqIDI0ICogNjAgKiA2MAorICAgICAgICAgICAgICAgIGFjdHVhbCA9IHJoLmNvbXB1dGVSb2xsb3Zlcih0b2RheSArIDEzICogNjAgKiA2MCkKKyAgICAgICAgICAgICAgICBpZiBhY3R1YWwgIT0gZXhwZWN0ZWQ6CisgICAgICAgICAgICAgICAgICAgIHByaW50KCdmYWlsZWQgaW4gdGltZXpvbmU6ICVkJyAlIHRpbWUudGltZXpvbmUpCisgICAgICAgICAgICAgICAgICAgIHByaW50KCdsb2NhbCB2YXJzOiAlcycgJSBsb2NhbHMoKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIHJoLmNsb3NlKCkKKworCiBkZWYgc2VjcygqKmt3KToKICAgICByZXR1cm4gZGF0ZXRpbWUudGltZWRlbHRhKCoqa3cpIC8vIGRhdGV0aW1lLnRpbWVkZWx0YShzZWNvbmRzPTEpCiAKQEAgLTM4NzIsNyArNDAwOSw3IEBACiAgICAgICAgIGguaGFuZGxlKHIpCiAgICAgICAgIGguY2xvc2UoKQogICAgICAgICAjIE5vdyBzZWUgaWYgdGhlIGV2ZW50IGlzIHJlY29yZGVkCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShudW1fcmVjcyA8IHdpbjMyZXZ0bG9nLkdldE51bWJlck9mRXZlbnRMb2dSZWNvcmRzKGVsaCkpCisgICAgICAgIHNlbGYuYXNzZXJ0TGVzcyhudW1fcmVjcywgd2luMzJldnRsb2cuR2V0TnVtYmVyT2ZFdmVudExvZ1JlY29yZHMoZWxoKSkKICAgICAgICAgZmxhZ3MgPSB3aW4zMmV2dGxvZy5FVkVOVExPR19CQUNLV0FSRFNfUkVBRCB8IFwKICAgICAgICAgICAgICAgICB3aW4zMmV2dGxvZy5FVkVOVExPR19TRVFVRU5USUFMX1JFQUQKICAgICAgICAgZm91bmQgPSBGYWxzZQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9sb25nLnB5IGIvTGliL3Rlc3QvdGVzdF9sb25nLnB5CmluZGV4IGI0MTdiZWEuLmI1OTgxOTIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfbG9uZy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2xvbmcucHkKQEAgLTEwODYsNyArMTA4Niw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsICgyNTYpLnRvX2J5dGVzLCAxLCAnYmlnJywgc2lnbmVkPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsICgyNTYpLnRvX2J5dGVzLCAxLCAnbGl0dGxlJywgc2lnbmVkPUZhbHNlKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCAoMjU2KS50b19ieXRlcywgMSwgJ2xpdHRsZScsIHNpZ25lZD1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCAoLTEpLnRvX2J5dGVzLCAyLCAnYmlnJywgc2lnbmVkPUZhbHNlKSwKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgKC0xKS50b19ieXRlcywgMiwgJ2JpZycsIHNpZ25lZD1GYWxzZSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgKC0xKS50b19ieXRlcywgMiwgJ2xpdHRsZScsIHNpZ25lZD1GYWxzZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoMCkudG9fYnl0ZXMoMCwgJ2JpZycpLCBiJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKDEpLnRvX2J5dGVzKDUsICdiaWcnKSwgYidceDAwXHgwMFx4MDBceDAwXHgwMScpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2x6bWEucHkgYi9MaWIvdGVzdC90ZXN0X2x6bWEucHkKaW5kZXggYTEzY2YzYi4uMjBkODU4MiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9sem1hLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfbHptYS5weQpAQCAtNjY5LDYgKzY2OSwyMCBAQAogICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWls6MTI4XSkpIGFzIGY6CiAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhFT0ZFcnJvciwgZi5yZWFkKQogCisgICAgZGVmIHRlc3RfcmVhZF90cnVuY2F0ZWQoc2VsZik6CisgICAgICAgICMgRHJvcCBzdHJlYW0gZm9vdGVyOiBDUkMgKDQgYnl0ZXMpLCBpbmRleCBzaXplICg0IGJ5dGVzKSwKKyAgICAgICAgIyBmbGFncyAoMiBieXRlcykgYW5kIG1hZ2ljIG51bWJlciAoMiBieXRlcykuCisgICAgICAgIHRydW5jYXRlZCA9IENPTVBSRVNTRURfWFpbOi0xMl0KKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKHRydW5jYXRlZCkpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhFT0ZFcnJvciwgZi5yZWFkKQorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8odHJ1bmNhdGVkKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKGxlbihJTlBVVCkpLCBJTlBVVCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEVPRkVycm9yLCBmLnJlYWQsIDEpCisgICAgICAgICMgSW5jb21wbGV0ZSAxMi1ieXRlIGhlYWRlci4KKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMTIpOgorICAgICAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKHRydW5jYXRlZFs6aV0pKSBhcyBmOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEVPRkVycm9yLCBmLnJlYWQsIDEpCisKICAgICBkZWYgdGVzdF9yZWFkX2JhZF9hcmdzKHNlbGYpOgogICAgICAgICBmID0gTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSkKICAgICAgICAgZi5jbG9zZSgpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X21haWxib3gucHkgYi9MaWIvdGVzdC90ZXN0X21haWxib3gucHkKaW5kZXggMzllODY0My4uNmM2NzljZSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9tYWlsYm94LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfbWFpbGJveC5weQpAQCAtNTk2LDcgKzU5Niw3IEBACiAKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIFRlc3RNYWlsYm94LnNldFVwKHNlbGYpCi0gICAgICAgIGlmIG9zLm5hbWUgaW4gKCdudCcsICdvczInKSBvciBzeXMucGxhdGZvcm0gPT0gJ2N5Z3dpbic6CisgICAgICAgIGlmIChvcy5uYW1lID09ICdudCcpIG9yIChzeXMucGxhdGZvcm0gPT0gJ2N5Z3dpbicpOgogICAgICAgICAgICAgc2VsZi5fYm94LmNvbG9uID0gJyEnCiAKICAgICBkZWYgYXNzZXJ0TWFpbGJveEVtcHR5KHNlbGYpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9tYXJzaGFsLnB5IGIvTGliL3Rlc3QvdGVzdF9tYXJzaGFsLnB5CmluZGV4IDAyNWI1M2MuLjI5Mjc0NmIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfbWFyc2hhbC5weQorKysgYi9MaWIvdGVzdC90ZXN0X21hcnNoYWwucHkKQEAgLTIzLDM3ICsyMywxMyBAQAogCiBjbGFzcyBJbnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSwgSGVscGVyTWl4aW4pOgogICAgIGRlZiB0ZXN0X2ludHMoc2VsZik6Ci0gICAgICAgICMgVGVzdCB0aGUgZnVsbCByYW5nZSBvZiBQeXRob24gaW50cy4KLSAgICAgICAgbiA9IHN5cy5tYXhzaXplCisgICAgICAgICMgVGVzdCBhIHJhbmdlIG9mIFB5dGhvbiBpbnRzIGxhcmdlciB0aGFuIHRoZSBtYWNoaW5lIHdvcmQgc2l6ZS4KKyAgICAgICAgbiA9IHN5cy5tYXhzaXplICoqIDIKICAgICAgICAgd2hpbGUgbjoKICAgICAgICAgICAgIGZvciBleHBlY3RlZCBpbiAoLW4sIG4pOgogICAgICAgICAgICAgICAgIHNlbGYuaGVscGVyKGV4cGVjdGVkKQogICAgICAgICAgICAgbiA9IG4gPj4gMQogCi0gICAgZGVmIHRlc3RfaW50NjQoc2VsZik6Ci0gICAgICAgICMgU2ltdWxhdGUgaW50IG1hcnNoYWxpbmcgb24gYSA2NC1iaXQgYm94LiAgVGhpcyBpcyBtb3N0IGludGVyZXN0aW5nIGlmCi0gICAgICAgICMgd2UncmUgcnVubmluZyB0aGUgdGVzdCBvbiBhIDMyLWJpdCBib3gsIG9mIGNvdXJzZS4KLQotICAgICAgICBkZWYgdG9fbGl0dGxlX2VuZGlhbl9zdHJpbmcodmFsdWUsIG5ieXRlcyk6Ci0gICAgICAgICAgICBiID0gYnl0ZWFycmF5KCkKLSAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKG5ieXRlcyk6Ci0gICAgICAgICAgICAgICAgYi5hcHBlbmQodmFsdWUgJiAweGZmKQotICAgICAgICAgICAgICAgIHZhbHVlID4+PSA4Ci0gICAgICAgICAgICByZXR1cm4gYgotCi0gICAgICAgIG1heGludDY0ID0gKDEgPDwgNjMpIC0gMQotICAgICAgICBtaW5pbnQ2NCA9IC1tYXhpbnQ2NC0xCi0KLSAgICAgICAgZm9yIGJhc2UgaW4gbWF4aW50NjQsIG1pbmludDY0LCAtbWF4aW50NjQsIC0obWluaW50NjQgPj4gMSk6Ci0gICAgICAgICAgICB3aGlsZSBiYXNlOgotICAgICAgICAgICAgICAgIHMgPSBiJ0knICsgdG9fbGl0dGxlX2VuZGlhbl9zdHJpbmcoYmFzZSwgOCkKLSAgICAgICAgICAgICAgICBnb3QgPSBtYXJzaGFsLmxvYWRzKHMpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiYXNlLCBnb3QpCi0gICAgICAgICAgICAgICAgaWYgYmFzZSA9PSAtMTogICMgYSBmaXhlZC1wb2ludCBmb3Igc2hpZnRpbmcgcmlnaHQgMQotICAgICAgICAgICAgICAgICAgICBiYXNlID0gMAotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGJhc2UgPj49IDEKLQogICAgIGRlZiB0ZXN0X2Jvb2woc2VsZik6CiAgICAgICAgIGZvciBiIGluIChUcnVlLCBGYWxzZSk6CiAgICAgICAgICAgICBzZWxmLmhlbHBlcihiKQpAQCAtMjAwLDEwICsxNzYsMTQgQEAKICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgcGFzcwogCi0gICAgZGVmIHRlc3RfbG9hZHNfcmVjdXJzaW9uKHNlbGYpOgorICAgIGRlZiB0ZXN0X2xvYWRzXzJ4X2NvZGUoc2VsZik6CiAgICAgICAgIHMgPSBiJ2MnICsgKGInWCcgKiA0KjQpICsgYid7JyAqIDIqKjIwCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG1hcnNoYWwubG9hZHMsIHMpCiAKKyAgICBkZWYgdGVzdF9sb2Fkc19yZWN1cnNpb24oc2VsZik6CisgICAgICAgIHMgPSBiJ2MnICsgKGInWCcgKiA0KjUpICsgYid7JyAqIDIqKjIwCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG1hcnNoYWwubG9hZHMsIHMpCisKICAgICBkZWYgdGVzdF9yZWN1cnNpb25fbGltaXQoc2VsZik6CiAgICAgICAgICMgQ3JlYXRlIGEgZGVlcGx5IG5lc3RlZCBzdHJ1Y3R1cmUuCiAgICAgICAgIGhlYWQgPSBsYXN0ID0gW10KQEAgLTI3OSw2ICsyNTksMTEgQEAKICAgICAgICAgdW5pY29kZV9zdHJpbmcgPSAnVCcKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtYXJzaGFsLmxvYWRzLCB1bmljb2RlX3N0cmluZykKIAorICAgIGRlZiBfdGVzdF9lb2Yoc2VsZik6CisgICAgICAgIGRhdGEgPSBtYXJzaGFsLmR1bXBzKCgiaGVsbG8iLCAiZG9sbHkiLCBOb25lKSkKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGRhdGEpKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEVPRkVycm9yLCBtYXJzaGFsLmxvYWRzLCBkYXRhWzA6IGldKQorCiBMQVJHRV9TSVpFID0gMioqMzEKIHBvaW50ZXJfc2l6ZSA9IDggaWYgc3lzLm1heHNpemUgPiAweEZGRkZGRkZGIGVsc2UgNAogCkBAIC0zMjMsNiArMzA4LDEyMiBAQAogICAgIGRlZiB0ZXN0X2J5dGVhcnJheShzZWxmLCBzaXplKToKICAgICAgICAgc2VsZi5jaGVja191bm1hcnNoYWxsYWJsZShieXRlYXJyYXkoc2l6ZSkpCiAKK2RlZiBDb2xsZWN0T2JqZWN0SURzKGlkcywgb2JqKToKKyAgICAiIiJDb2xsZWN0IG9iamVjdCBpZHMgc2VlbiBpbiBhIHN0cnVjdHVyZSIiIgorICAgIGlmIGlkKG9iaikgaW4gaWRzOgorICAgICAgICByZXR1cm4KKyAgICBpZHMuYWRkKGlkKG9iaikpCisgICAgaWYgaXNpbnN0YW5jZShvYmosIChsaXN0LCB0dXBsZSwgc2V0LCBmcm96ZW5zZXQpKToKKyAgICAgICAgZm9yIGUgaW4gb2JqOgorICAgICAgICAgICAgQ29sbGVjdE9iamVjdElEcyhpZHMsIGUpCisgICAgZWxpZiBpc2luc3RhbmNlKG9iaiwgZGljdCk6CisgICAgICAgIGZvciBrLCB2IGluIG9iai5pdGVtcygpOgorICAgICAgICAgICAgQ29sbGVjdE9iamVjdElEcyhpZHMsIGspCisgICAgICAgICAgICBDb2xsZWN0T2JqZWN0SURzKGlkcywgdikKKyAgICByZXR1cm4gbGVuKGlkcykKKworY2xhc3MgSW5zdGFuY2luZ1Rlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlLCBIZWxwZXJNaXhpbik6CisgICAgaW50b2JqID0gMTIzMzIxCisgICAgZmxvYXRvYmogPSAxLjIzNDUKKyAgICBzdHJvYmogPSAiYWJjZGUiKjMKKyAgICBkaWN0b2JqID0geyJoZWxsbyI6ZmxvYXRvYmosICJnb29kYnllIjpmbG9hdG9iaiwgZmxvYXRvYmo6ImhlbGxvIn0KKworICAgIGRlZiBoZWxwZXIzKHNlbGYsIHJzYW1wbGUsIHJlY3Vyc2l2ZT1GYWxzZSwgc2ltcGxlPUZhbHNlKToKKyAgICAgICAgI3dlIGhhdmUgdHdvIGluc3RhbmNlcworICAgICAgICBzYW1wbGUgPSAocnNhbXBsZSwgcnNhbXBsZSkKKworICAgICAgICBuMCA9IENvbGxlY3RPYmplY3RJRHMoc2V0KCksIHNhbXBsZSkKKworICAgICAgICBzMyA9IG1hcnNoYWwuZHVtcHMoc2FtcGxlLCAzKQorICAgICAgICBuMyA9IENvbGxlY3RPYmplY3RJRHMoc2V0KCksIG1hcnNoYWwubG9hZHMoczMpKQorCisgICAgICAgICNzYW1lIG51bWJlciBvZiBpbnN0YW5jZXMgZ2VuZXJhdGVkCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobjMsIG4wKQorCisgICAgICAgIGlmIG5vdCByZWN1cnNpdmU6CisgICAgICAgICAgICAjY2FuIGNvbXBhcmUgd2l0aCB2ZXJzaW9uIDIKKyAgICAgICAgICAgIHMyID0gbWFyc2hhbC5kdW1wcyhzYW1wbGUsIDIpCisgICAgICAgICAgICBuMiA9IENvbGxlY3RPYmplY3RJRHMoc2V0KCksIG1hcnNoYWwubG9hZHMoczIpKQorICAgICAgICAgICAgI29sZCBmb3JtYXQgZ2VuZXJhdGVkIG1vcmUgaW5zdGFuY2VzCisgICAgICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIobjIsIG4wKQorCisgICAgICAgICAgICAjaWYgY29tcGxleCBvYmplY3RzIGFyZSBpbiB0aGVyZSwgb2xkIGZvcm1hdCBpcyBsYXJnZXIKKyAgICAgICAgICAgIGlmIG5vdCBzaW1wbGU6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKGxlbihzMiksIGxlbihzMykpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKGxlbihzMiksIGxlbihzMykpCisKKyAgICBkZWYgdGVzdEludChzZWxmKToKKyAgICAgICAgc2VsZi5oZWxwZXIoc2VsZi5pbnRvYmopCisgICAgICAgIHNlbGYuaGVscGVyMyhzZWxmLmludG9iaiwgc2ltcGxlPVRydWUpCisKKyAgICBkZWYgdGVzdEZsb2F0KHNlbGYpOgorICAgICAgICBzZWxmLmhlbHBlcihzZWxmLmZsb2F0b2JqKQorICAgICAgICBzZWxmLmhlbHBlcjMoc2VsZi5mbG9hdG9iaikKKworICAgIGRlZiB0ZXN0U3RyKHNlbGYpOgorICAgICAgICBzZWxmLmhlbHBlcihzZWxmLnN0cm9iaikKKyAgICAgICAgc2VsZi5oZWxwZXIzKHNlbGYuc3Ryb2JqKQorCisgICAgZGVmIHRlc3REaWN0KHNlbGYpOgorICAgICAgICBzZWxmLmhlbHBlcihzZWxmLmRpY3RvYmopCisgICAgICAgIHNlbGYuaGVscGVyMyhzZWxmLmRpY3RvYmopCisKKyAgICBkZWYgdGVzdE1vZHVsZShzZWxmKToKKyAgICAgICAgd2l0aCBvcGVuKF9fZmlsZV9fLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgY29kZSA9IGYucmVhZCgpCisgICAgICAgIGlmIF9fZmlsZV9fLmVuZHN3aXRoKCIucHkiKToKKyAgICAgICAgICAgIGNvZGUgPSBjb21waWxlKGNvZGUsIF9fZmlsZV9fLCAiZXhlYyIpCisgICAgICAgIHNlbGYuaGVscGVyKGNvZGUpCisgICAgICAgIHNlbGYuaGVscGVyMyhjb2RlKQorCisgICAgZGVmIHRlc3RSZWN1cnNpb24oc2VsZik6CisgICAgICAgIGQgPSBkaWN0KHNlbGYuZGljdG9iaikKKyAgICAgICAgZFsic2VsZiJdID0gZAorICAgICAgICBzZWxmLmhlbHBlcjMoZCwgcmVjdXJzaXZlPVRydWUpCisgICAgICAgIGwgPSBbc2VsZi5kaWN0b2JqXQorICAgICAgICBsLmFwcGVuZChsKQorICAgICAgICBzZWxmLmhlbHBlcjMobCwgcmVjdXJzaXZlPVRydWUpCisKK2NsYXNzIENvbXBhdGliaWxpdHlUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIF90ZXN0KHNlbGYsIHZlcnNpb24pOgorICAgICAgICB3aXRoIG9wZW4oX19maWxlX18sICJyYiIpIGFzIGY6CisgICAgICAgICAgICBjb2RlID0gZi5yZWFkKCkKKyAgICAgICAgaWYgX19maWxlX18uZW5kc3dpdGgoIi5weSIpOgorICAgICAgICAgICAgY29kZSA9IGNvbXBpbGUoY29kZSwgX19maWxlX18sICJleGVjIikKKyAgICAgICAgZGF0YSA9IG1hcnNoYWwuZHVtcHMoY29kZSwgdmVyc2lvbikKKyAgICAgICAgbWFyc2hhbC5sb2FkcyhkYXRhKQorCisgICAgZGVmIHRlc3QwVG8zKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KDApCisKKyAgICBkZWYgdGVzdDFUbzMoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QoMSkKKworICAgIGRlZiB0ZXN0MlRvMyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdCgyKQorCisgICAgZGVmIHRlc3QzVG8zKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KDMpCisKK2NsYXNzIEludGVybmluZ1Rlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlLCBIZWxwZXJNaXhpbik6CisgICAgc3Ryb2JqID0gInRoaXMgaXMgYW4gaW50ZXJuZWQgc3RyaW5nIgorICAgIHN0cm9iaiA9IHN5cy5pbnRlcm4oc3Ryb2JqKQorCisgICAgZGVmIHRlc3RJbnRlcm4oc2VsZik6CisgICAgICAgIHMgPSBtYXJzaGFsLmxvYWRzKG1hcnNoYWwuZHVtcHMoc2VsZi5zdHJvYmopKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMsIHNlbGYuc3Ryb2JqKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlkKHMpLCBpZChzZWxmLnN0cm9iaikpCisgICAgICAgIHMyID0gc3lzLmludGVybihzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlkKHMyKSwgaWQocykpCisKKyAgICBkZWYgdGVzdE5vSW50ZXJuKHNlbGYpOgorICAgICAgICBzID0gbWFyc2hhbC5sb2FkcyhtYXJzaGFsLmR1bXBzKHNlbGYuc3Ryb2JqLCAyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLCBzZWxmLnN0cm9iaikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChpZChzKSwgaWQoc2VsZi5zdHJvYmopKQorICAgICAgICBzMiA9IHN5cy5pbnRlcm4ocykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChpZChzMiksIGlkKHMpKQorCiAKIGRlZiB0ZXN0X21haW4oKToKICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChJbnRUZXN0Q2FzZSwKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfbWVtb3J5aW8ucHkgYi9MaWIvdGVzdC90ZXN0X21lbW9yeWlvLnB5CmluZGV4IGQ2MTFhMzEuLjRkZTRmNjUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfbWVtb3J5aW8ucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9tZW1vcnlpby5weQpAQCAtNTIwLDEyICs1MjAsMTIgQEAKICAgICBkZWYgdGVzdF9yZWxhdGl2ZV9zZWVrKHNlbGYpOgogICAgICAgICBtZW1pbyA9IHNlbGYuaW9jbGFzcygpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgbWVtaW8uc2VlaywgLTEsIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIG1lbWlvLnNlZWssIDMsIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIG1lbWlvLnNlZWssIC0zLCAxKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBtZW1pby5zZWVrLCAtMSwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgbWVtaW8uc2VlaywgMSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgbWVtaW8uc2VlaywgMSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgbWVtaW8uc2VlaywgLTEsIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIG1lbWlvLnNlZWssIDMsIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIG1lbWlvLnNlZWssIC0zLCAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBtZW1pby5zZWVrLCAtMSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgbWVtaW8uc2VlaywgMSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgbWVtaW8uc2VlaywgMSwgMikKIAogICAgIGRlZiB0ZXN0X3RleHRpb19wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgICBtZW1pbyA9IHNlbGYuaW9jbGFzcygpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X21tYXAucHkgYi9MaWIvdGVzdC90ZXN0X21tYXAucHkKaW5kZXggZDA2NjM2OC4uNTA1ZmZiYSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9tbWFwLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfbW1hcC5weQpAQCAtMjQ1LDcgKzI0NSw3IEBACiAKICAgICBkZWYgdGVzdF9iYWRfZmlsZV9kZXNjKHNlbGYpOgogICAgICAgICAjIFRyeSBvcGVuaW5nIGEgYmFkIGZpbGUgZGVzY3JpcHRvci4uLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtbWFwLmVycm9yLCBtbWFwLm1tYXAsIC0yLCA0MDk2KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBtbWFwLm1tYXAsIC0yLCA0MDk2KQogCiAgICAgZGVmIHRlc3RfdG91Z2hlcl9maW5kKHNlbGYpOgogICAgICAgICAjIERvIGEgdG91Z2hlciAuZmluZCgpIHRlc3QuICBTRiBidWcgNTE1OTQzIHBvaW50ZWQgb3V0IHRoYXQsIGluIDIuMiwKQEAgLTY1OCw3ICs2NTgsNyBAQAogICAgICAgICAgICAgbSA9IG1tYXAubW1hcChmLmZpbGVubygpLCAwKQogICAgICAgICAgICAgZi5jbG9zZSgpCiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgbS5yZXNpemUoMCkgIyB3aWxsIHJhaXNlIFdpbmRvd3NFcnJvcgorICAgICAgICAgICAgICAgIG0ucmVzaXplKDApICMgd2lsbCByYWlzZSBPU0Vycm9yCiAgICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgdHJ5OgpAQCAtNjczLDcgKzY3Myw3IEBACiAgICAgICAgICAgICAjIHBhcmFtZXRlcnMgdG8gX2dldF9vc2ZoYW5kbGUuCiAgICAgICAgICAgICBzID0gc29ja2V0LnNvY2tldCgpCiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhtbWFwLmVycm9yKToKKyAgICAgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IpOgogICAgICAgICAgICAgICAgICAgICBtID0gbW1hcC5tbWFwKHMuZmlsZW5vKCksIDEwKQogICAgICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICAgICBzLmNsb3NlKCkKQEAgLTY4NCwxMSArNjg0LDExIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtLmNsb3NlZCkKIAogICAgIGRlZiB0ZXN0X2NvbnRleHRfbWFuYWdlcl9leGNlcHRpb24oc2VsZik6Ci0gICAgICAgICMgVGVzdCB0aGF0IHRoZSBJT0Vycm9yIGdldHMgcGFzc2VkIHRocm91Z2gKKyAgICAgICAgIyBUZXN0IHRoYXQgdGhlIE9TRXJyb3IgZ2V0cyBwYXNzZWQgdGhyb3VnaAogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbikgYXMgZXhjOgogICAgICAgICAgICAgd2l0aCBtbWFwLm1tYXAoLTEsIDEwKSBhcyBtOgotICAgICAgICAgICAgICAgIHJhaXNlIElPRXJyb3IKLSAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGV4Yy5leGNlcHRpb24sIElPRXJyb3IsCisgICAgICAgICAgICAgICAgcmFpc2UgT1NFcnJvcgorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoZXhjLmV4Y2VwdGlvbiwgT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3cm9uZyBleGNlcHRpb24gcmFpc2VkIGluIGNvbnRleHQgbWFuYWdlciIpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtLmNsb3NlZCwgImNvbnRleHQgbWFuYWdlciBmYWlsZWQiKQogCkBAIC03MDksNyArNzA5LDcgQEAKICAgICAgICAgICAgIGYuc2VlayhudW1femVyb2VzKQogICAgICAgICAgICAgZi53cml0ZSh0YWlsKQogICAgICAgICAgICAgZi5mbHVzaCgpCi0gICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgT3ZlcmZsb3dFcnJvcik6CisgICAgICAgIGV4Y2VwdCAoT1NFcnJvciwgT3ZlcmZsb3dFcnJvcik6CiAgICAgICAgICAgICBmLmNsb3NlKCkKICAgICAgICAgICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KCJmaWxlc3lzdGVtIGRvZXMgbm90IGhhdmUgbGFyZ2VmaWxlIHN1cHBvcnQiKQogICAgICAgICByZXR1cm4gZgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9tb2R1bGUucHkgYi9MaWIvdGVzdC90ZXN0X21vZHVsZS5weQppbmRleCBlNWEyNTI1Li5iMzRiMzBmIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X21vZHVsZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X21vZHVsZS5weQpAQCAtMzMsNyArMzMsMTAgQEAKICAgICAgICAgZm9vID0gTW9kdWxlVHlwZSgiZm9vIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28uX19uYW1lX18sICJmb28iKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5fX2RvY19fLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5fX2RpY3RfXywgeyJfX25hbWVfXyI6ICJmb28iLCAiX19kb2NfXyI6IE5vbmV9KQorICAgICAgICBzZWxmLmFzc2VydElzKGZvby5fX2xvYWRlcl9fLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzKGZvby5fX3BhY2thZ2VfXywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28uX19kaWN0X18sIHsiX19uYW1lX18iOiAiZm9vIiwgIl9fZG9jX18iOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX2xvYWRlcl9fIjogTm9uZSwgIl9fcGFja2FnZV9fIjogTm9uZX0pCiAKICAgICBkZWYgdGVzdF9hc2NpaV9kb2NzdHJpbmcoc2VsZik6CiAgICAgICAgICMgQVNDSUkgZG9jc3RyaW5nCkBAIC00MSw3ICs0NCw4IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLl9fbmFtZV9fLCAiZm9vIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28uX19kb2NfXywgImZvb2RvYyIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLl9fZGljdF9fLAotICAgICAgICAgICAgICAgICAgICAgICAgIHsiX19uYW1lX18iOiAiZm9vIiwgIl9fZG9jX18iOiAiZm9vZG9jIn0pCisgICAgICAgICAgICAgICAgICAgICAgICAgeyJfX25hbWVfXyI6ICJmb28iLCAiX19kb2NfXyI6ICJmb29kb2MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiX19sb2FkZXJfXyI6IE5vbmUsICJfX3BhY2thZ2VfXyI6IE5vbmV9KQogCiAgICAgZGVmIHRlc3RfdW5pY29kZV9kb2NzdHJpbmcoc2VsZik6CiAgICAgICAgICMgVW5pY29kZSBkb2NzdHJpbmcKQEAgLTQ5LDcgKzUzLDggQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28uX19uYW1lX18sICJmb28iKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5fX2RvY19fLCAiZm9vZG9jXHUxMjM0IikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28uX19kaWN0X18sCi0gICAgICAgICAgICAgICAgICAgICAgICAgeyJfX25hbWVfXyI6ICJmb28iLCAiX19kb2NfXyI6ICJmb29kb2NcdTEyMzQifSkKKyAgICAgICAgICAgICAgICAgICAgICAgICB7Il9fbmFtZV9fIjogImZvbyIsICJfX2RvY19fIjogImZvb2RvY1x1MTIzNCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJfX2xvYWRlcl9fIjogTm9uZSwgIl9fcGFja2FnZV9fIjogTm9uZX0pCiAKICAgICBkZWYgdGVzdF9yZWluaXQoc2VsZik6CiAgICAgICAgICMgUmVpbml0aWFsaXphdGlvbiBzaG91bGQgbm90IHJlcGxhY2UgdGhlIF9fZGljdF9fCkBAIC02MSw3ICs2Niw4IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLl9fZG9jX18sICJmb29kb2MiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5iYXIsIDQyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5fX2RpY3RfXywKLSAgICAgICAgICAgICAgeyJfX25hbWVfXyI6ICJmb28iLCAiX19kb2NfXyI6ICJmb29kb2MiLCAiYmFyIjogNDJ9KQorICAgICAgICAgICAgICB7Il9fbmFtZV9fIjogImZvbyIsICJfX2RvY19fIjogImZvb2RvYyIsICJiYXIiOiA0MiwKKyAgICAgICAgICAgICAgICJfX2xvYWRlcl9fIjogTm9uZSwgIl9fcGFja2FnZV9fIjogTm9uZX0pCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmb28uX19kaWN0X18gaXMgZCkKIAogICAgIEB1bml0dGVzdC5leHBlY3RlZEZhaWx1cmUKQEAgLTExMCwxMyArMTE2LDE5IEBACiAgICAgICAgIG0uX19maWxlX18gPSAnL3RtcC9mb28ucHknCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihtKSwgIjxtb2R1bGUgJz8nIGZyb20gJy90bXAvZm9vLnB5Jz4iKQogCisgICAgZGVmIHRlc3RfbW9kdWxlX3JlcHJfd2l0aF9sb2FkZXJfYXNfTm9uZShzZWxmKToKKyAgICAgICAgbSA9IE1vZHVsZVR5cGUoJ2ZvbycpCisgICAgICAgIGFzc2VydCBtLl9fbG9hZGVyX18gaXMgTm9uZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIobSksICI8bW9kdWxlICdmb28nPiIpCisKICAgICBkZWYgdGVzdF9tb2R1bGVfcmVwcl93aXRoX2JhcmVfbG9hZGVyX2J1dF9ub19uYW1lKHNlbGYpOgogICAgICAgICBtID0gTW9kdWxlVHlwZSgnZm9vJykKICAgICAgICAgZGVsIG0uX19uYW1lX18KICAgICAgICAgIyBZZXMsIGEgY2xhc3Mgbm90IGFuIGluc3RhbmNlLgogICAgICAgICBtLl9fbG9hZGVyX18gPSBCYXJlTG9hZGVyCisgICAgICAgIGxvYWRlcl9yZXByID0gcmVwcihCYXJlTG9hZGVyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcmVwcihtKSwgIjxtb2R1bGUgJz8nICg8Y2xhc3MgJ3Rlc3QudGVzdF9tb2R1bGUuQmFyZUxvYWRlcic+KT4iKQorICAgICAgICAgICAgcmVwcihtKSwgIjxtb2R1bGUgJz8nICh7fSk+Ii5mb3JtYXQobG9hZGVyX3JlcHIpKQogCiAgICAgZGVmIHRlc3RfbW9kdWxlX3JlcHJfd2l0aF9mdWxsX2xvYWRlcl9idXRfbm9fbmFtZShzZWxmKToKICAgICAgICAgIyBtLl9fbG9hZGVyX18ubW9kdWxlX3JlcHIoKSB3aWxsIGZhaWwgYmVjYXVzZSB0aGUgbW9kdWxlIGhhcyBubwpAQCAtMTI2LDE1ICsxMzgsMTcgQEAKICAgICAgICAgZGVsIG0uX19uYW1lX18KICAgICAgICAgIyBZZXMsIGEgY2xhc3Mgbm90IGFuIGluc3RhbmNlLgogICAgICAgICBtLl9fbG9hZGVyX18gPSBGdWxsTG9hZGVyCisgICAgICAgIGxvYWRlcl9yZXByID0gcmVwcihGdWxsTG9hZGVyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcmVwcihtKSwgIjxtb2R1bGUgJz8nICg8Y2xhc3MgJ3Rlc3QudGVzdF9tb2R1bGUuRnVsbExvYWRlcic+KT4iKQorICAgICAgICAgICAgcmVwcihtKSwgIjxtb2R1bGUgJz8nICh7fSk+Ii5mb3JtYXQobG9hZGVyX3JlcHIpKQogCiAgICAgZGVmIHRlc3RfbW9kdWxlX3JlcHJfd2l0aF9iYXJlX2xvYWRlcihzZWxmKToKICAgICAgICAgbSA9IE1vZHVsZVR5cGUoJ2ZvbycpCiAgICAgICAgICMgWWVzLCBhIGNsYXNzIG5vdCBhbiBpbnN0YW5jZS4KICAgICAgICAgbS5fX2xvYWRlcl9fID0gQmFyZUxvYWRlcgorICAgICAgICBtb2R1bGVfcmVwciA9IHJlcHIoQmFyZUxvYWRlcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHJlcHIobSksICI8bW9kdWxlICdmb28nICg8Y2xhc3MgJ3Rlc3QudGVzdF9tb2R1bGUuQmFyZUxvYWRlcic+KT4iKQorICAgICAgICAgICAgcmVwcihtKSwgIjxtb2R1bGUgJ2ZvbycgKHt9KT4iLmZvcm1hdChtb2R1bGVfcmVwcikpCiAKICAgICBkZWYgdGVzdF9tb2R1bGVfcmVwcl93aXRoX2Z1bGxfbG9hZGVyKHNlbGYpOgogICAgICAgICBtID0gTW9kdWxlVHlwZSgnZm9vJykKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfbXVsdGlieXRlY29kZWMucHkgYi9MaWIvdGVzdC90ZXN0X211bHRpYnl0ZWNvZGVjLnB5CmluZGV4IGZlYjdiZDUuLjkxMTQ4YTYgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfbXVsdGlieXRlY29kZWMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9tdWx0aWJ5dGVjb2RlYy5weQpAQCAtMTc2LDU3ICsxNzYsMjggQEAKICAgICAgICAgICAgIHN1cHBvcnQudW5saW5rKFRFU1RGTikKIAogY2xhc3MgVGVzdF9TdHJlYW1Xcml0ZXIodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGlmIGxlbignXFUwMDAxMjM0NScpID09IDI6ICMgVUNTMgotICAgICAgICBkZWYgdGVzdF9nYjE4MDMwKHNlbGYpOgotICAgICAgICAgICAgcz0gaW8uQnl0ZXNJTygpCi0gICAgICAgICAgICBjID0gY29kZWNzLmdldHdyaXRlcignZ2IxODAzMCcpKHMpCi0gICAgICAgICAgICBjLndyaXRlKCcxMjMnKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHZhbHVlKCksIGInMTIzJykKLSAgICAgICAgICAgIGMud3JpdGUoJ1xVMDAwMTIzNDUnKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHZhbHVlKCksIGInMTIzXHg5MDdceDk1OScpCi0gICAgICAgICAgICBjLndyaXRlKCdcVTAwMDEyMzQ1J1swXSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5nZXR2YWx1ZSgpLCBiJzEyM1x4OTA3XHg5NTknKQotICAgICAgICAgICAgYy53cml0ZSgnXFUwMDAxMjM0NSdbMV0gKyAnXFUwMDAxMjM0NScgKyAnXHVhYzAwXHUwMGFjJykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5nZXR2YWx1ZSgpLAotICAgICAgICAgICAgICAgICAgICBiJzEyM1x4OTA3XHg5NTlceDkwN1x4OTU5XHg5MDdceDk1OVx4ODI3XHhjZjVceDgxMFx4ODUxJykKLSAgICAgICAgICAgIGMud3JpdGUoJ1xVMDAwMTIzNDUnWzBdKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHZhbHVlKCksCi0gICAgICAgICAgICAgICAgICAgIGInMTIzXHg5MDdceDk1OVx4OTA3XHg5NTlceDkwN1x4OTU5XHg4MjdceGNmNVx4ODEwXHg4NTEnKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pY29kZUVycm9yLCBjLnJlc2V0KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHZhbHVlKCksCi0gICAgICAgICAgICAgICAgICAgIGInMTIzXHg5MDdceDk1OVx4OTA3XHg5NTlceDkwN1x4OTU5XHg4MjdceGNmNVx4ODEwXHg4NTEnKQorICAgIGRlZiB0ZXN0X2diMTgwMzAoc2VsZik6CisgICAgICAgIHM9IGlvLkJ5dGVzSU8oKQorICAgICAgICBjID0gY29kZWNzLmdldHdyaXRlcignZ2IxODAzMCcpKHMpCisgICAgICAgIGMud3JpdGUoJzEyMycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5nZXR2YWx1ZSgpLCBiJzEyMycpCisgICAgICAgIGMud3JpdGUoJ1xVMDAwMTIzNDUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuZ2V0dmFsdWUoKSwgYicxMjNceDkwN1x4OTU5JykKKyAgICAgICAgYy53cml0ZSgnXHVhYzAwXHUwMGFjJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHZhbHVlKCksCisgICAgICAgICAgICAgICAgYicxMjNceDkwN1x4OTU5XHg4MjdceGNmNVx4ODEwXHg4NTEnKQogCi0gICAgICAgIGRlZiB0ZXN0X3V0Zl84KHNlbGYpOgotICAgICAgICAgICAgcz0gaW8uQnl0ZXNJTygpCi0gICAgICAgICAgICBjID0gY29kZWNzLmdldHdyaXRlcigndXRmLTgnKShzKQotICAgICAgICAgICAgYy53cml0ZSgnMTIzJykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5nZXR2YWx1ZSgpLCBiJzEyMycpCi0gICAgICAgICAgICBjLndyaXRlKCdcVTAwMDEyMzQ1JykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5nZXR2YWx1ZSgpLCBiJzEyM1x4ZjBceDkyXHg4ZFx4ODUnKQotCi0gICAgICAgICAgICAjIFB5dGhvbiB1dGYtOCBjb2RlYyBjYW4ndCBidWZmZXIgc3Vycm9nYXRlIHBhaXJzIHlldC4KLSAgICAgICAgICAgIGlmIDA6Ci0gICAgICAgICAgICAgICAgYy53cml0ZSgnXFUwMDAxMjM0NSdbMF0pCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHZhbHVlKCksIGInMTIzXHhmMFx4OTJceDhkXHg4NScpCi0gICAgICAgICAgICAgICAgYy53cml0ZSgnXFUwMDAxMjM0NSdbMV0gKyAnXFUwMDAxMjM0NScgKyAnXHVhYzAwXHUwMGFjJykKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuZ2V0dmFsdWUoKSwKLSAgICAgICAgICAgICAgICAgICAgYicxMjNceGYwXHg5Mlx4OGRceDg1XHhmMFx4OTJceDhkXHg4NVx4ZjBceDkyXHg4ZFx4ODUnCi0gICAgICAgICAgICAgICAgICAgIGInXHhlYVx4YjBceDgwXHhjMlx4YWMnKQotICAgICAgICAgICAgICAgIGMud3JpdGUoJ1xVMDAwMTIzNDUnWzBdKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5nZXR2YWx1ZSgpLAotICAgICAgICAgICAgICAgICAgICBiJzEyM1x4ZjBceDkyXHg4ZFx4ODVceGYwXHg5Mlx4OGRceDg1XHhmMFx4OTJceDhkXHg4NScKLSAgICAgICAgICAgICAgICAgICAgYidceGVhXHhiMFx4ODBceGMyXHhhYycpCi0gICAgICAgICAgICAgICAgYy5yZXNldCgpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHZhbHVlKCksCi0gICAgICAgICAgICAgICAgICAgIGInMTIzXHhmMFx4OTJceDhkXHg4NVx4ZjBceDkyXHg4ZFx4ODVceGYwXHg5Mlx4OGRceDg1JwotICAgICAgICAgICAgICAgICAgICBiJ1x4ZWFceGIwXHg4MFx4YzJceGFjXHhlZFx4YTBceDg4JykKLSAgICAgICAgICAgICAgICBjLndyaXRlKCdcVTAwMDEyMzQ1J1sxXSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuZ2V0dmFsdWUoKSwKLSAgICAgICAgICAgICAgICAgICAgYicxMjNceGYwXHg5Mlx4OGRceDg1XHhmMFx4OTJceDhkXHg4NVx4ZjBceDkyXHg4ZFx4ODUnCi0gICAgICAgICAgICAgICAgICAgIGInXHhlYVx4YjBceDgwXHhjMlx4YWNceGVkXHhhMFx4ODhceGVkXHhiZFx4ODUnKQotCi0gICAgZWxzZTogIyBVQ1M0Ci0gICAgICAgIHBhc3MKKyAgICBkZWYgdGVzdF91dGZfOChzZWxmKToKKyAgICAgICAgcz0gaW8uQnl0ZXNJTygpCisgICAgICAgIGMgPSBjb2RlY3MuZ2V0d3JpdGVyKCd1dGYtOCcpKHMpCisgICAgICAgIGMud3JpdGUoJzEyMycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5nZXR2YWx1ZSgpLCBiJzEyMycpCisgICAgICAgIGMud3JpdGUoJ1xVMDAwMTIzNDUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuZ2V0dmFsdWUoKSwgYicxMjNceGYwXHg5Mlx4OGRceDg1JykKKyAgICAgICAgYy53cml0ZSgnXHVhYzAwXHUwMGFjJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHZhbHVlKCksCisgICAgICAgICAgICBiJzEyM1x4ZjBceDkyXHg4ZFx4ODUnCisgICAgICAgICAgICBiJ1x4ZWFceGIwXHg4MFx4YzJceGFjJykKIAogICAgIGRlZiB0ZXN0X3N0cmVhbXdyaXRlcl9zdHJ3cml0ZShzZWxmKToKICAgICAgICAgcyA9IGlvLkJ5dGVzSU8oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9tdWx0aXByb2Nlc3NpbmcucHkgYi9MaWIvdGVzdC90ZXN0X211bHRpcHJvY2Vzc2luZy5weQppbmRleCA5YjNlMTgwLi4zYmU3MmM0IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X211bHRpcHJvY2Vzc2luZy5weQorKysgYi9MaWIvdGVzdC90ZXN0X211bHRpcHJvY2Vzc2luZy5weQpAQCAtMTksNiArMTksNyBAQAogaW1wb3J0IHJhbmRvbQogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBzdHJ1Y3QKK2ltcG9ydCBvcGVyYXRvcgogaW1wb3J0IHRlc3Quc3VwcG9ydAogaW1wb3J0IHRlc3Quc2NyaXB0X2hlbHBlcgogCkBAIC0xNjI0LDYgKzE2MjUsMTggQEAKIAogY2xhc3MgX1Rlc3RQb29sKEJhc2VUZXN0Q2FzZSk6CiAKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgorICAgICAgICBzdXBlcigpLnNldFVwQ2xhc3MoKQorICAgICAgICBjbHMucG9vbCA9IGNscy5Qb29sKDQpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgorICAgICAgICBjbHMucG9vbC50ZXJtaW5hdGUoKQorICAgICAgICBjbHMucG9vbC5qb2luKCkKKyAgICAgICAgY2xzLnBvb2wgPSBOb25lCisgICAgICAgIHN1cGVyKCkudGVhckRvd25DbGFzcygpCisKICAgICBkZWYgdGVzdF9hcHBseShzZWxmKToKICAgICAgICAgcGFwcGx5ID0gc2VsZi5wb29sLmFwcGx5CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFwcGx5KHNxciwgKDUsKSksIHNxcig1KSkKQEAgLTE3MTUsMTUgKzE3MjgsNiBAQAogICAgICAgICBwLmpvaW4oKQogCiAgICAgZGVmIHRlc3RfdGVybWluYXRlKHNlbGYpOgotICAgICAgICBpZiBzZWxmLlRZUEUgPT0gJ21hbmFnZXInOgotICAgICAgICAgICAgIyBPbiBVbml4IGEgZm9ya2VkIHByb2Nlc3MgaW5jcmVmcyBlYWNoIHNoYXJlZCBvYmplY3QgdG8KLSAgICAgICAgICAgICMgd2hpY2ggaXRzIHBhcmVudCBwcm9jZXNzIGhlbGQgYSByZWZlcmVuY2UuICBJZiB0aGUKLSAgICAgICAgICAgICMgZm9ya2VkIHByb2Nlc3MgZ2V0cyB0ZXJtaW5hdGVkIHRoZW4gdGhlcmUgaXMgbGlrZWx5IHRvCi0gICAgICAgICAgICAjIGJlIGEgcmVmZXJlbmNlIGxlYWsuICBTbyB0byBwcmV2ZW50Ci0gICAgICAgICAgICAjIF9UZXN0WlpaTnVtYmVyT2ZPYmplY3RzIGZyb20gZmFpbGluZyB3ZSBza2lwIHRoaXMgdGVzdAotICAgICAgICAgICAgIyB3aGVuIHVzaW5nIGEgbWFuYWdlci4KLSAgICAgICAgICAgIHJldHVybgotCiAgICAgICAgIHJlc3VsdCA9IHNlbGYucG9vbC5tYXBfYXN5bmMoCiAgICAgICAgICAgICB0aW1lLnNsZWVwLCBbMC4xIGZvciBpIGluIHJhbmdlKDEwMDAwKV0sIGNodW5rc2l6ZT0xCiAgICAgICAgICAgICApCkBAIC0xNzUxLDkgKzE3NTUsMzcgQEAKICAgICAgICAgICAgIHdpdGggbXVsdGlwcm9jZXNzaW5nLlBvb2woMikgYXMgcDoKICAgICAgICAgICAgICAgICByID0gcC5tYXBfYXN5bmMoc3FyLCBMKQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoci5nZXQoKSwgZXhwZWN0ZWQpCi0gICAgICAgICAgICBwcmludChwLl9zdGF0ZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHAubWFwX2FzeW5jLCBzcXIsIEwpCiAKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX3Rlc3RfdHJhY2ViYWNrKGNscyk6CisgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigxMjMpICMgc29tZSBjb21tZW50CisKKyAgICBkZWYgdGVzdF90cmFjZWJhY2soc2VsZik6CisgICAgICAgICMgV2Ugd2FudCBlbnN1cmUgdGhhdCB0aGUgdHJhY2ViYWNrIGZyb20gdGhlIGNoaWxkIHByb2Nlc3MgaXMKKyAgICAgICAgIyBjb250YWluZWQgaW4gdGhlIHRyYWNlYmFjayByYWlzZWQgaW4gdGhlIG1haW4gcHJvY2Vzcy4KKyAgICAgICAgaWYgc2VsZi5UWVBFID09ICdwcm9jZXNzZXMnOgorICAgICAgICAgICAgd2l0aCBzZWxmLlBvb2woMSkgYXMgcDoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHAuYXBwbHkoc2VsZi5fdGVzdF90cmFjZWJhY2spCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICAgICBleGMgPSBlCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoJ2V4cGVjdGVkIFJ1bnRpbWVFcnJvcicpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKHR5cGUoZXhjKSwgUnVudGltZUVycm9yKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleGMuYXJncywgKDEyMywpKQorICAgICAgICAgICAgY2F1c2UgPSBleGMuX19jYXVzZV9fCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKHR5cGUoY2F1c2UpLCBtdWx0aXByb2Nlc3NpbmcucG9vbC5SZW1vdGVUcmFjZWJhY2spCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCdyYWlzZSBSdW50aW1lRXJyb3IoMTIzKSAjIHNvbWUgY29tbWVudCcsIGNhdXNlLnRiKQorCisgICAgICAgICAgICB3aXRoIHRlc3Quc3VwcG9ydC5jYXB0dXJlZF9zdGRlcnIoKSBhcyBmMToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIGV4YworICAgICAgICAgICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHN5cy5leGNlcHRob29rKCpzeXMuZXhjX2luZm8oKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3JhaXNlIFJ1bnRpbWVFcnJvcigxMjMpICMgc29tZSBjb21tZW50JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZjEuZ2V0dmFsdWUoKSkKKwogZGVmIHJhaXNpbmcoKToKICAgICByYWlzZSBLZXlFcnJvcigia2V5IikKIApAQCAtMTg0NSwzNSArMTg3Nyw2IEBACiAgICAgICAgIGZvciAoaiwgcmVzKSBpbiBlbnVtZXJhdGUocmVzdWx0cyk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcy5nZXQoKSwgc3FyKGopKQogCi0KLSMKLSMgVGVzdCB0aGF0IG1hbmFnZXIgaGFzIGV4cGVjdGVkIG51bWJlciBvZiBzaGFyZWQgb2JqZWN0cyBsZWZ0Ci0jCi0KLWNsYXNzIF9UZXN0WlpaTnVtYmVyT2ZPYmplY3RzKEJhc2VUZXN0Q2FzZSk6Ci0gICAgIyBCZWNhdXNlIHRlc3QgY2FzZXMgYXJlIHNvcnRlZCBhbHBoYWJldGljYWxseSwgdGhpcyBvbmUgd2lsbCBnZXQKLSAgICAjIHJ1biBhZnRlciBhbGwgdGhlIG90aGVyIHRlc3RzIGZvciB0aGUgbWFuYWdlci4gIEl0IHRlc3RzIHRoYXQKLSAgICAjIHRoZXJlIGhhdmUgYmVlbiBubyAicmVmZXJlbmNlIGxlYWtzIiBmb3IgdGhlIG1hbmFnZXIncyBzaGFyZWQKLSAgICAjIG9iamVjdHMuICBOb3RlIHRoZSBjb21tZW50IGluIF9UZXN0UG9vbC50ZXN0X3Rlcm1pbmF0ZSgpLgotCi0gICAgIyBJZiBzb21lIG90aGVyIHRlc3QgdXNpbmcgTWFuYWdlck1peGluLm1hbmFnZXIgZmFpbHMsIHRoZW4gdGhlCi0gICAgIyByYWlzZWQgZXhjZXB0aW9uIG1heSBrZWVwIGFsaXZlIGEgZnJhbWUgd2hpY2ggaG9sZHMgYSByZWZlcmVuY2UKLSAgICAjIHRvIGEgbWFuYWdlZCBvYmplY3QuICBUaGlzIHdpbGwgY2F1c2UgdGVzdF9udW1iZXJfb2Zfb2JqZWN0cyB0bwotICAgICMgYWxzbyBmYWlsLgotICAgIEFMTE9XRURfVFlQRVMgPSAoJ21hbmFnZXInLCkKLQotICAgIGRlZiB0ZXN0X251bWJlcl9vZl9vYmplY3RzKHNlbGYpOgotICAgICAgICBFWFBFQ1RFRF9OVU1CRVIgPSAxICAgICAgICAgICAgICAgICMgdGhlIHBvb2wgb2JqZWN0IGlzIHN0aWxsIGFsaXZlCi0gICAgICAgIG11bHRpcHJvY2Vzc2luZy5hY3RpdmVfY2hpbGRyZW4oKSAgIyBkaXNjYXJkIGRlYWQgcHJvY2VzcyBvYmpzCi0gICAgICAgIGdjLmNvbGxlY3QoKSAgICAgICAgICAgICAgICAgICAgICAgIyBkbyBnYXJiYWdlIGNvbGxlY3Rpb24KLSAgICAgICAgcmVmcyA9IHNlbGYubWFuYWdlci5fbnVtYmVyX29mX29iamVjdHMoKQotICAgICAgICBkZWJ1Z19pbmZvID0gc2VsZi5tYW5hZ2VyLl9kZWJ1Z19pbmZvKCkKLSAgICAgICAgaWYgcmVmcyAhPSBFWFBFQ1RFRF9OVU1CRVI6Ci0gICAgICAgICAgICBwcmludChzZWxmLm1hbmFnZXIuX2RlYnVnX2luZm8oKSkKLSAgICAgICAgICAgIHByaW50KGRlYnVnX2luZm8pCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWZzLCBFWFBFQ1RFRF9OVU1CRVIpCi0KICMKICMgVGVzdCBvZiBjcmVhdGluZyBhIGN1c3RvbWl6ZWQgbWFuYWdlciBjbGFzcwogIwpAQCAtMjA1MSw3ICsyMDU0LDcgQEAKICAgICAgICAgICAgIGFkZHJlc3M9YWRkciwgYXV0aGtleT1hdXRoa2V5LCBzZXJpYWxpemVyPVNFUklBTElaRVIpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG1hbmFnZXIuc3RhcnQoKQotICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FQUREUklOVVNFOgogICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICAjIFJldHJ5IGFmdGVyIHNvbWUgdGltZSwgaW4gY2FzZSB0aGUgb2xkIHNvY2tldCB3YXMgbGluZ2VyaW5nCkBAIC0yMTY1LDkgKzIxNjgsOSBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWFkZXIud3JpdGFibGUsIEZhbHNlKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cml0ZXIucmVhZGFibGUsIEZhbHNlKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cml0ZXIud3JpdGFibGUsIFRydWUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCByZWFkZXIuc2VuZCwgMikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIHdyaXRlci5yZWN2KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgd3JpdGVyLnBvbGwpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCByZWFkZXIuc2VuZCwgMikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHdyaXRlci5yZWN2KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgd3JpdGVyLnBvbGwpCiAKICAgICBkZWYgdGVzdF9zcGF3bl9jbG9zZShzZWxmKToKICAgICAgICAgIyBXZSB0ZXN0IHRoYXQgYSBwaXBlIGNvbm5lY3Rpb24gY2FuIGJlIGNsb3NlZCBieSBwYXJlbnQKQEAgLTIzMjksOCArMjMzMiw4IEBACiAgICAgICAgIGlmIHNlbGYuVFlQRSA9PSAncHJvY2Vzc2VzJzoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhLmNsb3NlZCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShiLmNsb3NlZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGEucmVjdikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGIucmVjdikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIGEucmVjdikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIGIucmVjdikKIAogY2xhc3MgX1Rlc3RMaXN0ZW5lcihCYXNlVGVzdENhc2UpOgogCkBAIC0yMzUxLDcgKzIzNTQsNyBAQAogICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQucmVjdigpLCAxNzI5KQogCiAgICAgICAgIGlmIHNlbGYuVFlQRSA9PSAncHJvY2Vzc2VzJzoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGwuYWNjZXB0KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgbC5hY2NlcHQpCiAKIGNsYXNzIF9UZXN0TGlzdGVuZXJDbGllbnQoQmFzZVRlc3RDYXNlKToKIApAQCAtMjk0MiwyNyArMjk0NSwxOCBAQAogICAgIGRlZiB0ZXN0X2ludmFsaWRfaGFuZGxlcyhzZWxmKToKICAgICAgICAgY29ubiA9IG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uLkNvbm5lY3Rpb24oNDQ5Nzc2MDgpCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKChWYWx1ZUVycm9yLCBJT0Vycm9yKSwgY29ubi5wb2xsKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoKFZhbHVlRXJyb3IsIE9TRXJyb3IpLCBjb25uLnBvbGwpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAjIEhhY2sgcHJpdmF0ZSBhdHRyaWJ1dGUgX2hhbmRsZSB0byBhdm9pZCBwcmludGluZyBhbiBlcnJvcgogICAgICAgICAgICAgIyBpbiBjb25uLl9fZGVsX18KICAgICAgICAgICAgIGNvbm4uX2hhbmRsZSA9IE5vbmUKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoKFZhbHVlRXJyb3IsIElPRXJyb3IpLAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygoVmFsdWVFcnJvciwgT1NFcnJvciksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uLkNvbm5lY3Rpb24sIC0xKQogCiAjCiAjIEZ1bmN0aW9ucyB1c2VkIHRvIGNyZWF0ZSB0ZXN0IGNhc2VzIGZyb20gdGhlIGJhc2Ugb25lcyBpbiB0aGlzIG1vZHVsZQogIwogCi1kZWYgZ2V0X2F0dHJpYnV0ZXMoU291cmNlLCBuYW1lcyk6Ci0gICAgZCA9IHt9Ci0gICAgZm9yIG5hbWUgaW4gbmFtZXM6Ci0gICAgICAgIG9iaiA9IGdldGF0dHIoU291cmNlLCBuYW1lKQotICAgICAgICBpZiB0eXBlKG9iaikgPT0gdHlwZShnZXRfYXR0cmlidXRlcyk6Ci0gICAgICAgICAgICBvYmogPSBzdGF0aWNtZXRob2Qob2JqKQotICAgICAgICBkW25hbWVdID0gb2JqCi0gICAgcmV0dXJuIGQKLQogZGVmIGNyZWF0ZV90ZXN0X2Nhc2VzKE1peGluLCB0eXBlKToKICAgICByZXN1bHQgPSB7fQogICAgIGdsb2IgPSBnbG9iYWxzKCkKQEAgLTI5NzUsMTAgKzI5NjksMTAgQEAKICAgICAgICAgICAgIGFzc2VydCBzZXQoYmFzZS5BTExPV0VEX1RZUEVTKSA8PSBBTExfVFlQRVMsIHNldChiYXNlLkFMTE9XRURfVFlQRVMpCiAgICAgICAgICAgICBpZiB0eXBlIGluIGJhc2UuQUxMT1dFRF9UWVBFUzoKICAgICAgICAgICAgICAgICBuZXduYW1lID0gJ1dpdGgnICsgVHlwZSArIG5hbWVbMTpdCi0gICAgICAgICAgICAgICAgY2xhc3MgVGVtcChiYXNlLCB1bml0dGVzdC5UZXN0Q2FzZSwgTWl4aW4pOgorICAgICAgICAgICAgICAgIGNsYXNzIFRlbXAoYmFzZSwgTWl4aW4sIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgICAgIHJlc3VsdFtuZXduYW1lXSA9IFRlbXAKLSAgICAgICAgICAgICAgICBUZW1wLl9fbmFtZV9fID0gbmV3bmFtZQorICAgICAgICAgICAgICAgIFRlbXAuX19uYW1lX18gPSBUZW1wLl9fcXVhbG5hbWVfXyA9IG5ld25hbWUKICAgICAgICAgICAgICAgICBUZW1wLl9fbW9kdWxlX18gPSBNaXhpbi5fX21vZHVsZV9fCiAgICAgcmV0dXJuIHJlc3VsdAogCkBAIC0yOTg5LDEyICsyOTgzLDI0IEBACiBjbGFzcyBQcm9jZXNzZXNNaXhpbihvYmplY3QpOgogICAgIFRZUEUgPSAncHJvY2Vzc2VzJwogICAgIFByb2Nlc3MgPSBtdWx0aXByb2Nlc3NpbmcuUHJvY2VzcwotICAgIGxvY2FscygpLnVwZGF0ZShnZXRfYXR0cmlidXRlcyhtdWx0aXByb2Nlc3NpbmcsICgKLSAgICAgICAgJ1F1ZXVlJywgJ0xvY2snLCAnUkxvY2snLCAnU2VtYXBob3JlJywgJ0JvdW5kZWRTZW1hcGhvcmUnLAotICAgICAgICAnQ29uZGl0aW9uJywgJ0V2ZW50JywgJ0JhcnJpZXInLCAnVmFsdWUnLCAnQXJyYXknLCAnUmF3VmFsdWUnLAotICAgICAgICAnUmF3QXJyYXknLCAnY3VycmVudF9wcm9jZXNzJywgJ2FjdGl2ZV9jaGlsZHJlbicsICdQaXBlJywKLSAgICAgICAgJ2Nvbm5lY3Rpb24nLCAnSm9pbmFibGVRdWV1ZScsICdQb29sJwotICAgICAgICApKSkKKyAgICBjb25uZWN0aW9uID0gbXVsdGlwcm9jZXNzaW5nLmNvbm5lY3Rpb24KKyAgICBjdXJyZW50X3Byb2Nlc3MgPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLmN1cnJlbnRfcHJvY2VzcykKKyAgICBhY3RpdmVfY2hpbGRyZW4gPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLmFjdGl2ZV9jaGlsZHJlbikKKyAgICBQb29sID0gc3RhdGljbWV0aG9kKG11bHRpcHJvY2Vzc2luZy5Qb29sKQorICAgIFBpcGUgPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLlBpcGUpCisgICAgUXVldWUgPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLlF1ZXVlKQorICAgIEpvaW5hYmxlUXVldWUgPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLkpvaW5hYmxlUXVldWUpCisgICAgTG9jayA9IHN0YXRpY21ldGhvZChtdWx0aXByb2Nlc3NpbmcuTG9jaykKKyAgICBSTG9jayA9IHN0YXRpY21ldGhvZChtdWx0aXByb2Nlc3NpbmcuUkxvY2spCisgICAgU2VtYXBob3JlID0gc3RhdGljbWV0aG9kKG11bHRpcHJvY2Vzc2luZy5TZW1hcGhvcmUpCisgICAgQm91bmRlZFNlbWFwaG9yZSA9IHN0YXRpY21ldGhvZChtdWx0aXByb2Nlc3NpbmcuQm91bmRlZFNlbWFwaG9yZSkKKyAgICBDb25kaXRpb24gPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLkNvbmRpdGlvbikKKyAgICBFdmVudCA9IHN0YXRpY21ldGhvZChtdWx0aXByb2Nlc3NpbmcuRXZlbnQpCisgICAgQmFycmllciA9IHN0YXRpY21ldGhvZChtdWx0aXByb2Nlc3NpbmcuQmFycmllcikKKyAgICBWYWx1ZSA9IHN0YXRpY21ldGhvZChtdWx0aXByb2Nlc3NpbmcuVmFsdWUpCisgICAgQXJyYXkgPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLkFycmF5KQorICAgIFJhd1ZhbHVlID0gc3RhdGljbWV0aG9kKG11bHRpcHJvY2Vzc2luZy5SYXdWYWx1ZSkKKyAgICBSYXdBcnJheSA9IHN0YXRpY21ldGhvZChtdWx0aXByb2Nlc3NpbmcuUmF3QXJyYXkpCiAKIHRlc3RjYXNlc19wcm9jZXNzZXMgPSBjcmVhdGVfdGVzdF9jYXNlcyhQcm9jZXNzZXNNaXhpbiwgdHlwZT0ncHJvY2Vzc2VzJykKIGdsb2JhbHMoKS51cGRhdGUodGVzdGNhc2VzX3Byb2Nlc3NlcykKQEAgLTMwMDMsMTIgKzMwMDksNDggQEAKIGNsYXNzIE1hbmFnZXJNaXhpbihvYmplY3QpOgogICAgIFRZUEUgPSAnbWFuYWdlcicKICAgICBQcm9jZXNzID0gbXVsdGlwcm9jZXNzaW5nLlByb2Nlc3MKLSAgICBtYW5hZ2VyID0gb2JqZWN0Ll9fbmV3X18obXVsdGlwcm9jZXNzaW5nLm1hbmFnZXJzLlN5bmNNYW5hZ2VyKQotICAgIGxvY2FscygpLnVwZGF0ZShnZXRfYXR0cmlidXRlcyhtYW5hZ2VyLCAoCi0gICAgICAgICdRdWV1ZScsICdMb2NrJywgJ1JMb2NrJywgJ1NlbWFwaG9yZScsICdCb3VuZGVkU2VtYXBob3JlJywKLSAgICAgICAgJ0NvbmRpdGlvbicsICdFdmVudCcsICdCYXJyaWVyJywgJ1ZhbHVlJywgJ0FycmF5JywgJ2xpc3QnLCAnZGljdCcsCi0gICAgICAgICdOYW1lc3BhY2UnLCAnSm9pbmFibGVRdWV1ZScsICdQb29sJwotICAgICAgICApKSkKKyAgICBRdWV1ZSA9IHByb3BlcnR5KG9wZXJhdG9yLmF0dHJnZXR0ZXIoJ21hbmFnZXIuUXVldWUnKSkKKyAgICBKb2luYWJsZVF1ZXVlID0gcHJvcGVydHkob3BlcmF0b3IuYXR0cmdldHRlcignbWFuYWdlci5Kb2luYWJsZVF1ZXVlJykpCisgICAgTG9jayA9IHByb3BlcnR5KG9wZXJhdG9yLmF0dHJnZXR0ZXIoJ21hbmFnZXIuTG9jaycpKQorICAgIFJMb2NrID0gcHJvcGVydHkob3BlcmF0b3IuYXR0cmdldHRlcignbWFuYWdlci5STG9jaycpKQorICAgIFNlbWFwaG9yZSA9IHByb3BlcnR5KG9wZXJhdG9yLmF0dHJnZXR0ZXIoJ21hbmFnZXIuU2VtYXBob3JlJykpCisgICAgQm91bmRlZFNlbWFwaG9yZSA9IHByb3BlcnR5KG9wZXJhdG9yLmF0dHJnZXR0ZXIoJ21hbmFnZXIuQm91bmRlZFNlbWFwaG9yZScpKQorICAgIENvbmRpdGlvbiA9IHByb3BlcnR5KG9wZXJhdG9yLmF0dHJnZXR0ZXIoJ21hbmFnZXIuQ29uZGl0aW9uJykpCisgICAgRXZlbnQgPSBwcm9wZXJ0eShvcGVyYXRvci5hdHRyZ2V0dGVyKCdtYW5hZ2VyLkV2ZW50JykpCisgICAgQmFycmllciA9IHByb3BlcnR5KG9wZXJhdG9yLmF0dHJnZXR0ZXIoJ21hbmFnZXIuQmFycmllcicpKQorICAgIFZhbHVlID0gcHJvcGVydHkob3BlcmF0b3IuYXR0cmdldHRlcignbWFuYWdlci5WYWx1ZScpKQorICAgIEFycmF5ID0gcHJvcGVydHkob3BlcmF0b3IuYXR0cmdldHRlcignbWFuYWdlci5BcnJheScpKQorICAgIGxpc3QgPSBwcm9wZXJ0eShvcGVyYXRvci5hdHRyZ2V0dGVyKCdtYW5hZ2VyLmxpc3QnKSkKKyAgICBkaWN0ID0gcHJvcGVydHkob3BlcmF0b3IuYXR0cmdldHRlcignbWFuYWdlci5kaWN0JykpCisgICAgTmFtZXNwYWNlID0gcHJvcGVydHkob3BlcmF0b3IuYXR0cmdldHRlcignbWFuYWdlci5OYW1lc3BhY2UnKSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBQb29sKGNscywgKmFyZ3MsICoqa3dkcyk6CisgICAgICAgIHJldHVybiBjbHMubWFuYWdlci5Qb29sKCphcmdzLCAqKmt3ZHMpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgorICAgICAgICBjbHMubWFuYWdlciA9IG11bHRpcHJvY2Vzc2luZy5NYW5hZ2VyKCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6CisgICAgICAgICMgb25seSB0aGUgbWFuYWdlciBwcm9jZXNzIHNob3VsZCBiZSByZXR1cm5lZCBieSBhY3RpdmVfY2hpbGRyZW4oKQorICAgICAgICAjIGJ1dCB0aGlzIGNhbiB0YWtlIGEgYml0IG9uIHNsb3cgbWFjaGluZXMsIHNvIHdhaXQgYSBmZXcgc2Vjb25kcworICAgICAgICAjIGlmIHRoZXJlIGFyZSBvdGhlciBjaGlsZHJlbiB0b28gKHNlZSAjMTczOTUpCisgICAgICAgIHQgPSAwLjAxCisgICAgICAgIHdoaWxlIGxlbihtdWx0aXByb2Nlc3NpbmcuYWN0aXZlX2NoaWxkcmVuKCkpID4gMSBhbmQgdCA8IDU6CisgICAgICAgICAgICB0aW1lLnNsZWVwKHQpCisgICAgICAgICAgICB0ICo9IDIKKyAgICAgICAgZ2MuY29sbGVjdCgpICAgICAgICAgICAgICAgICAgICAgICAjIGRvIGdhcmJhZ2UgY29sbGVjdGlvbgorICAgICAgICBpZiBjbHMubWFuYWdlci5fbnVtYmVyX29mX29iamVjdHMoKSAhPSAwOgorICAgICAgICAgICAgIyBUaGlzIGlzIG5vdCByZWFsbHkgYW4gZXJyb3Igc2luY2Ugc29tZSB0ZXN0cyBkbyBub3QKKyAgICAgICAgICAgICMgZW5zdXJlIHRoYXQgYWxsIHByb2Nlc3NlcyB3aGljaCBob2xkIGEgcmVmZXJlbmNlIHRvIGEKKyAgICAgICAgICAgICMgbWFuYWdlZCBvYmplY3QgaGF2ZSBiZWVuIGpvaW5lZC4KKyAgICAgICAgICAgIHByaW50KCdTaGFyZWQgb2JqZWN0cyB3aGljaCBzdGlsbCBleGlzdCBhdCBtYW5hZ2VyIHNodXRkb3duOicpCisgICAgICAgICAgICBwcmludChjbHMubWFuYWdlci5fZGVidWdfaW5mbygpKQorICAgICAgICBjbHMubWFuYWdlci5zaHV0ZG93bigpCisgICAgICAgIGNscy5tYW5hZ2VyLmpvaW4oKQorICAgICAgICBjbHMubWFuYWdlciA9IE5vbmUKIAogdGVzdGNhc2VzX21hbmFnZXIgPSBjcmVhdGVfdGVzdF9jYXNlcyhNYW5hZ2VyTWl4aW4sIHR5cGU9J21hbmFnZXInKQogZ2xvYmFscygpLnVwZGF0ZSh0ZXN0Y2FzZXNfbWFuYWdlcikKQEAgLTMwMTcsMTYgKzMwNTksMjcgQEAKIGNsYXNzIFRocmVhZHNNaXhpbihvYmplY3QpOgogICAgIFRZUEUgPSAndGhyZWFkcycKICAgICBQcm9jZXNzID0gbXVsdGlwcm9jZXNzaW5nLmR1bW15LlByb2Nlc3MKLSAgICBsb2NhbHMoKS51cGRhdGUoZ2V0X2F0dHJpYnV0ZXMobXVsdGlwcm9jZXNzaW5nLmR1bW15LCAoCi0gICAgICAgICdRdWV1ZScsICdMb2NrJywgJ1JMb2NrJywgJ1NlbWFwaG9yZScsICdCb3VuZGVkU2VtYXBob3JlJywKLSAgICAgICAgJ0NvbmRpdGlvbicsICdFdmVudCcsICdCYXJyaWVyJywgJ1ZhbHVlJywgJ0FycmF5JywgJ2N1cnJlbnRfcHJvY2VzcycsCi0gICAgICAgICdhY3RpdmVfY2hpbGRyZW4nLCAnUGlwZScsICdjb25uZWN0aW9uJywgJ2RpY3QnLCAnbGlzdCcsCi0gICAgICAgICdOYW1lc3BhY2UnLCAnSm9pbmFibGVRdWV1ZScsICdQb29sJwotICAgICAgICApKSkKKyAgICBjb25uZWN0aW9uID0gbXVsdGlwcm9jZXNzaW5nLmR1bW15LmNvbm5lY3Rpb24KKyAgICBjdXJyZW50X3Byb2Nlc3MgPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLmR1bW15LmN1cnJlbnRfcHJvY2VzcykKKyAgICBhY3RpdmVfY2hpbGRyZW4gPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLmR1bW15LmFjdGl2ZV9jaGlsZHJlbikKKyAgICBQb29sID0gc3RhdGljbWV0aG9kKG11bHRpcHJvY2Vzc2luZy5Qb29sKQorICAgIFBpcGUgPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLmR1bW15LlBpcGUpCisgICAgUXVldWUgPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLmR1bW15LlF1ZXVlKQorICAgIEpvaW5hYmxlUXVldWUgPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLmR1bW15LkpvaW5hYmxlUXVldWUpCisgICAgTG9jayA9IHN0YXRpY21ldGhvZChtdWx0aXByb2Nlc3NpbmcuZHVtbXkuTG9jaykKKyAgICBSTG9jayA9IHN0YXRpY21ldGhvZChtdWx0aXByb2Nlc3NpbmcuZHVtbXkuUkxvY2spCisgICAgU2VtYXBob3JlID0gc3RhdGljbWV0aG9kKG11bHRpcHJvY2Vzc2luZy5kdW1teS5TZW1hcGhvcmUpCisgICAgQm91bmRlZFNlbWFwaG9yZSA9IHN0YXRpY21ldGhvZChtdWx0aXByb2Nlc3NpbmcuZHVtbXkuQm91bmRlZFNlbWFwaG9yZSkKKyAgICBDb25kaXRpb24gPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLmR1bW15LkNvbmRpdGlvbikKKyAgICBFdmVudCA9IHN0YXRpY21ldGhvZChtdWx0aXByb2Nlc3NpbmcuZHVtbXkuRXZlbnQpCisgICAgQmFycmllciA9IHN0YXRpY21ldGhvZChtdWx0aXByb2Nlc3NpbmcuZHVtbXkuQmFycmllcikKKyAgICBWYWx1ZSA9IHN0YXRpY21ldGhvZChtdWx0aXByb2Nlc3NpbmcuZHVtbXkuVmFsdWUpCisgICAgQXJyYXkgPSBzdGF0aWNtZXRob2QobXVsdGlwcm9jZXNzaW5nLmR1bW15LkFycmF5KQogCiB0ZXN0Y2FzZXNfdGhyZWFkcyA9IGNyZWF0ZV90ZXN0X2Nhc2VzKFRocmVhZHNNaXhpbiwgdHlwZT0ndGhyZWFkcycpCiBnbG9iYWxzKCkudXBkYXRlKHRlc3RjYXNlc190aHJlYWRzKQogCisKIGNsYXNzIE90aGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgIyBUT0RPOiBhZGQgbW9yZSB0ZXN0cyBmb3IgZGVsaXZlci9hbnN3ZXIgY2hhbGxlbmdlLgogICAgIGRlZiB0ZXN0X2RlbGl2ZXJfY2hhbGxlbmdlX2F1dGhfZmFpbHVyZShzZWxmKToKQEAgLTM0ODksMTIgKzM1NDIsNiBAQAogCiAgICAgbXVsdGlwcm9jZXNzaW5nLmdldF9sb2dnZXIoKS5zZXRMZXZlbChMT0dfTEVWRUwpCiAKLSAgICBQcm9jZXNzZXNNaXhpbi5wb29sID0gbXVsdGlwcm9jZXNzaW5nLlBvb2woNCkKLSAgICBUaHJlYWRzTWl4aW4ucG9vbCA9IG11bHRpcHJvY2Vzc2luZy5kdW1teS5Qb29sKDQpCi0gICAgTWFuYWdlck1peGluLm1hbmFnZXIuX19pbml0X18oKQotICAgIE1hbmFnZXJNaXhpbi5tYW5hZ2VyLnN0YXJ0KCkKLSAgICBNYW5hZ2VyTWl4aW4ucG9vbCA9IE1hbmFnZXJNaXhpbi5tYW5hZ2VyLlBvb2woNCkKLQogICAgIHRlc3RjYXNlcyA9ICgKICAgICAgICAgc29ydGVkKHRlc3RjYXNlc19wcm9jZXNzZXMudmFsdWVzKCksIGtleT1sYW1iZGEgdGM6dGMuX19uYW1lX18pICsKICAgICAgICAgc29ydGVkKHRlc3RjYXNlc190aHJlYWRzLnZhbHVlcygpLCBrZXk9bGFtYmRhIHRjOnRjLl9fbmFtZV9fKSArCkBAIC0zNTA0LDE4ICszNTUxLDcgQEAKIAogICAgIGxvYWRUZXN0c0Zyb21UZXN0Q2FzZSA9IHVuaXR0ZXN0LmRlZmF1bHRUZXN0TG9hZGVyLmxvYWRUZXN0c0Zyb21UZXN0Q2FzZQogICAgIHN1aXRlID0gdW5pdHRlc3QuVGVzdFN1aXRlKGxvYWRUZXN0c0Zyb21UZXN0Q2FzZSh0YykgZm9yIHRjIGluIHRlc3RjYXNlcykKLSAgICB0cnk6Ci0gICAgICAgIHJ1bihzdWl0ZSkKLSAgICBmaW5hbGx5OgotICAgICAgICBUaHJlYWRzTWl4aW4ucG9vbC50ZXJtaW5hdGUoKQotICAgICAgICBQcm9jZXNzZXNNaXhpbi5wb29sLnRlcm1pbmF0ZSgpCi0gICAgICAgIE1hbmFnZXJNaXhpbi5wb29sLnRlcm1pbmF0ZSgpCi0gICAgICAgIE1hbmFnZXJNaXhpbi5wb29sLmpvaW4oKQotICAgICAgICBNYW5hZ2VyTWl4aW4ubWFuYWdlci5zaHV0ZG93bigpCi0gICAgICAgIE1hbmFnZXJNaXhpbi5tYW5hZ2VyLmpvaW4oKQotICAgICAgICBUaHJlYWRzTWl4aW4ucG9vbC5qb2luKCkKLSAgICAgICAgUHJvY2Vzc2VzTWl4aW4ucG9vbC5qb2luKCkKLSAgICAgICAgZGVsIFByb2Nlc3Nlc01peGluLnBvb2wsIFRocmVhZHNNaXhpbi5wb29sLCBNYW5hZ2VyTWl4aW4ucG9vbAorICAgIHJ1bihzdWl0ZSkKIAogZGVmIG1haW4oKToKICAgICB0ZXN0X21haW4odW5pdHRlc3QuVGV4dFRlc3RSdW5uZXIodmVyYm9zaXR5PTIpLnJ1bikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfbm50cGxpYi5weSBiL0xpYi90ZXN0L3Rlc3Rfbm50cGxpYi5weQppbmRleCAxOWZiMTBhLi43Y2Y0OTdhIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X25udHBsaWIucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9ubnRwbGliLnB5CkBAIC0yNjQsNyArMjY0LDcgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzZXJ2ZXIuaGVscCgpCi0gICAgICAgICAgICBleGNlcHQgKHNvY2tldC5lcnJvciwgRU9GRXJyb3IpOgorICAgICAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBFT0ZFcnJvcik6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X25vcm1hbGl6YXRpb24ucHkgYi9MaWIvdGVzdC90ZXN0X25vcm1hbGl6YXRpb24ucHkKaW5kZXggZTNlMjU2MC4uZGIyOGUxYSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9ub3JtYWxpemF0aW9uLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfbm9ybWFsaXphdGlvbi5weQpAQCAtNDMsNyArNDMsNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICB0ZXN0ZGF0YSA9IG9wZW5fdXJscmVzb3VyY2UoVEVTVERBVEFVUkwsIGVuY29kaW5nPSJ1dGYtOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2s9Y2hlY2tfdmVyc2lvbikKLSAgICAgICAgZXhjZXB0IChJT0Vycm9yLCBIVFRQRXhjZXB0aW9uKToKKyAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBIVFRQRXhjZXB0aW9uKToKICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoIkNvdWxkIG5vdCByZXRyaWV2ZSAiICsgVEVTVERBVEFVUkwpCiAgICAgICAgIHNlbGYuYWRkQ2xlYW51cCh0ZXN0ZGF0YS5jbG9zZSkKICAgICAgICAgZm9yIGxpbmUgaW4gdGVzdGRhdGE6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X29wZW5wdHkucHkgYi9MaWIvdGVzdC90ZXN0X29wZW5wdHkucHkKaW5kZXggZTgxNzVmZi4uODcxM2QzNCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9vcGVucHR5LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfb3BlbnB0eS5weQpAQCAtNCw3ICs0LDcgQEAKIGZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBydW5fdW5pdHRlc3QKIAogaWYgbm90IGhhc2F0dHIob3MsICJvcGVucHR5Iik6Ci0gICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoIk5vIG9wZW5wdHkoKSBhdmFpbGFibGUuIikKKyAgICByYWlzZSB1bml0dGVzdC5Ta2lwVGVzdCgib3Mub3BlbnB0eSgpIG5vdCBhdmFpbGFibGUuIikKIAogCiBjbGFzcyBPcGVucHR5VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X29wZXJhdG9yLnB5IGIvTGliL3Rlc3QvdGVzdF9vcGVyYXRvci5weQppbmRleCBmYTYwOGI5Li5hYjU4YTk4IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X29wZXJhdG9yLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfb3BlcmF0b3IucHkKQEAgLTEsOCArMSwxMCBAQAotaW1wb3J0IG9wZXJhdG9yCiBpbXBvcnQgdW5pdHRlc3QKIAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiAKK3B5X29wZXJhdG9yID0gc3VwcG9ydC5pbXBvcnRfZnJlc2hfbW9kdWxlKCdvcGVyYXRvcicsIGJsb2NrZWQ9Wydfb3BlcmF0b3InXSkKK2Nfb3BlcmF0b3IgPSBzdXBwb3J0LmltcG9ydF9mcmVzaF9tb2R1bGUoJ29wZXJhdG9yJywgZnJlc2g9Wydfb3BlcmF0b3InXSkKKwogY2xhc3MgU2VxMToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbHN0KToKICAgICAgICAgc2VsZi5sc3QgPSBsc3QKQEAgLTMyLDggKzM0LDkgQEAKICAgICAgICAgcmV0dXJuIG90aGVyICogc2VsZi5sc3QKIAogCi1jbGFzcyBPcGVyYXRvclRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIE9wZXJhdG9yVGVzdENhc2U6CiAgICAgZGVmIHRlc3RfbHQoc2VsZik6CisgICAgICAgIG9wZXJhdG9yID0gc2VsZi5tb2R1bGUKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5sdCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5sdCwgMWosIDJqKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9wZXJhdG9yLmx0KDEsIDApKQpAQCAtNDQsNiArNDcsNyBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUob3BlcmF0b3IubHQoMSwgMi4wKSkKIAogICAgIGRlZiB0ZXN0X2xlKHNlbGYpOgorICAgICAgICBvcGVyYXRvciA9IHNlbGYubW9kdWxlCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IubGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IubGUsIDFqLCAyaikKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcGVyYXRvci5sZSgxLCAwKSkKQEAgLTU0LDYgKzU4LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wZXJhdG9yLmxlKDEsIDIuMCkpCiAKICAgICBkZWYgdGVzdF9lcShzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBjbGFzcyBDKG9iamVjdCk6CiAgICAgICAgICAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKICAgICAgICAgICAgICAgICByYWlzZSBTeW50YXhFcnJvcgpAQCAtNjcsNiArNzIsNyBAQAogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9wZXJhdG9yLmVxKDEsIDIuMCkpCiAKICAgICBkZWYgdGVzdF9uZShzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBjbGFzcyBDKG9iamVjdCk6CiAgICAgICAgICAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKICAgICAgICAgICAgICAgICByYWlzZSBTeW50YXhFcnJvcgpAQCAtODAsNiArODYsNyBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUob3BlcmF0b3IubmUoMSwgMi4wKSkKIAogICAgIGRlZiB0ZXN0X2dlKHNlbGYpOgorICAgICAgICBvcGVyYXRvciA9IHNlbGYubW9kdWxlCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuZ2UpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuZ2UsIDFqLCAyaikKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wZXJhdG9yLmdlKDEsIDApKQpAQCAtOTAsNiArOTcsNyBAQAogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9wZXJhdG9yLmdlKDEsIDIuMCkpCiAKICAgICBkZWYgdGVzdF9ndChzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLmd0KQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLmd0LCAxaiwgMmopCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcGVyYXRvci5ndCgxLCAwKSkKQEAgLTEwMCwyMiArMTA4LDI2IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3BlcmF0b3IuZ3QoMSwgMi4wKSkKIAogICAgIGRlZiB0ZXN0X2FicyhzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLmFicykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5hYnMsIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IuYWJzKC0xKSwgMSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVyYXRvci5hYnMoMSksIDEpCiAKICAgICBkZWYgdGVzdF9hZGQoc2VsZik6CisgICAgICAgIG9wZXJhdG9yID0gc2VsZi5tb2R1bGUKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5hZGQpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuYWRkLCBOb25lLCBOb25lKQogICAgICAgICBzZWxmLmFzc2VydFRydWUob3BlcmF0b3IuYWRkKDMsIDQpID09IDcpCiAKICAgICBkZWYgdGVzdF9iaXR3aXNlX2FuZChzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLmFuZF8pCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuYW5kXywgTm9uZSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wZXJhdG9yLmFuZF8oMHhmLCAweGEpID09IDB4YSkKIAogICAgIGRlZiB0ZXN0X2NvbmNhdChzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLmNvbmNhdCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5jb25jYXQsIE5vbmUsIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcGVyYXRvci5jb25jYXQoJ3B5JywgJ3Rob24nKSA9PSAncHl0aG9uJykKQEAgLTEyNSwxMiArMTM3LDE0IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuY29uY2F0LCAxMywgMjkpCiAKICAgICBkZWYgdGVzdF9jb3VudE9mKHNlbGYpOgorICAgICAgICBvcGVyYXRvciA9IHNlbGYubW9kdWxlCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuY291bnRPZikKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5jb3VudE9mLCBOb25lLCBOb25lKQogICAgICAgICBzZWxmLmFzc2VydFRydWUob3BlcmF0b3IuY291bnRPZihbMSwgMiwgMSwgMywgMSwgNF0sIDMpID09IDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcGVyYXRvci5jb3VudE9mKFsxLCAyLCAxLCAzLCAxLCA0XSwgNSkgPT0gMCkKIAogICAgIGRlZiB0ZXN0X2RlbGl0ZW0oc2VsZik6CisgICAgICAgIG9wZXJhdG9yID0gc2VsZi5tb2R1bGUKICAgICAgICAgYSA9IFs0LCAzLCAyLCAxXQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLmRlbGl0ZW0sIGEpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuZGVsaXRlbSwgYSwgTm9uZSkKQEAgLTEzOCwzMyArMTUyLDM5IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhID09IFs0LCAyLCAxXSkKIAogICAgIGRlZiB0ZXN0X2Zsb29yZGl2KHNlbGYpOgorICAgICAgICBvcGVyYXRvciA9IHNlbGYubW9kdWxlCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuZmxvb3JkaXYsIDUpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuZmxvb3JkaXYsIE5vbmUsIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcGVyYXRvci5mbG9vcmRpdig1LCAyKSA9PSAyKQogCiAgICAgZGVmIHRlc3RfdHJ1ZWRpdihzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLnRydWVkaXYsIDUpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IudHJ1ZWRpdiwgTm9uZSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wZXJhdG9yLnRydWVkaXYoNSwgMikgPT0gMi41KQogCiAgICAgZGVmIHRlc3RfZ2V0aXRlbShzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBhID0gcmFuZ2UoMTApCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuZ2V0aXRlbSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5nZXRpdGVtLCBhLCBOb25lKQogICAgICAgICBzZWxmLmFzc2VydFRydWUob3BlcmF0b3IuZ2V0aXRlbShhLCAyKSA9PSAyKQogCiAgICAgZGVmIHRlc3RfaW5kZXhPZihzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLmluZGV4T2YpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuaW5kZXhPZiwgTm9uZSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wZXJhdG9yLmluZGV4T2YoWzQsIDMsIDIsIDFdLCAzKSA9PSAxKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBvcGVyYXRvci5pbmRleE9mLCBbNCwgMywgMiwgMV0sIDApCiAKICAgICBkZWYgdGVzdF9pbnZlcnQoc2VsZik6CisgICAgICAgIG9wZXJhdG9yID0gc2VsZi5tb2R1bGUKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5pbnZlcnQpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuaW52ZXJ0LCBOb25lKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZXJhdG9yLmludig0KSwgLTUpCiAKICAgICBkZWYgdGVzdF9sc2hpZnQoc2VsZik6CisgICAgICAgIG9wZXJhdG9yID0gc2VsZi5tb2R1bGUKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5sc2hpZnQpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IubHNoaWZ0LCBOb25lLCA0MikKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wZXJhdG9yLmxzaGlmdCg1LCAxKSA9PSAxMCkKQEAgLTE3MiwxNiArMTkyLDE5IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG9wZXJhdG9yLmxzaGlmdCwgMiwgLTEpCiAKICAgICBkZWYgdGVzdF9tb2Qoc2VsZik6CisgICAgICAgIG9wZXJhdG9yID0gc2VsZi5tb2R1bGUKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5tb2QpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IubW9kLCBOb25lLCA0MikKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wZXJhdG9yLm1vZCg1LCAyKSA9PSAxKQogCiAgICAgZGVmIHRlc3RfbXVsKHNlbGYpOgorICAgICAgICBvcGVyYXRvciA9IHNlbGYubW9kdWxlCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IubXVsKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLm11bCwgTm9uZSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wZXJhdG9yLm11bCg1LCAyKSA9PSAxMCkKIAogICAgIGRlZiB0ZXN0X25lZyhzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLm5lZykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5uZWcsIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IubmVnKDUpLCAtNSkKQEAgLTE5MCwxMSArMjEzLDEzIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IubmVnKC0wKSwgMCkKIAogICAgIGRlZiB0ZXN0X2JpdHdpc2Vfb3Ioc2VsZik6CisgICAgICAgIG9wZXJhdG9yID0gc2VsZi5tb2R1bGUKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5vcl8pCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3Iub3JfLCBOb25lLCBOb25lKQogICAgICAgICBzZWxmLmFzc2VydFRydWUob3BlcmF0b3Iub3JfKDB4YSwgMHg1KSA9PSAweGYpCiAKICAgICBkZWYgdGVzdF9wb3Moc2VsZik6CisgICAgICAgIG9wZXJhdG9yID0gc2VsZi5tb2R1bGUKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5wb3MpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IucG9zLCBOb25lKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZXJhdG9yLnBvcyg1KSwgNSkKQEAgLTIwMywxNCArMjI4LDE1IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IucG9zKC0wKSwgMCkKIAogICAgIGRlZiB0ZXN0X3BvdyhzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLnBvdykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5wb3csIE5vbmUsIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IucG93KDMsNSksIDMqKjUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IuX19wb3dfXygzLDUpLCAzKio1KQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLnBvdywgMSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5wb3csIDEsIDIsIDMpCiAKICAgICBkZWYgdGVzdF9yc2hpZnQoc2VsZik6CisgICAgICAgIG9wZXJhdG9yID0gc2VsZi5tb2R1bGUKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5yc2hpZnQpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IucnNoaWZ0LCBOb25lLCA0MikKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wZXJhdG9yLnJzaGlmdCg1LCAxKSA9PSAyKQpAQCAtMjE4LDEyICsyNDQsMTQgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgb3BlcmF0b3IucnNoaWZ0LCAyLCAtMSkKIAogICAgIGRlZiB0ZXN0X2NvbnRhaW5zKHNlbGYpOgorICAgICAgICBvcGVyYXRvciA9IHNlbGYubW9kdWxlCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuY29udGFpbnMpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuY29udGFpbnMsIE5vbmUsIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcGVyYXRvci5jb250YWlucyhyYW5nZSg0KSwgMikpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3BlcmF0b3IuY29udGFpbnMocmFuZ2UoNCksIDUpKQogCiAgICAgZGVmIHRlc3Rfc2V0aXRlbShzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBhID0gbGlzdChyYW5nZSgzKSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5zZXRpdGVtLCBhKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLnNldGl0ZW0sIGEsIE5vbmUsIE5vbmUpCkBAIC0yMzIsMTEgKzI2MCwxMyBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbmRleEVycm9yLCBvcGVyYXRvci5zZXRpdGVtLCBhLCA0LCAyKQogCiAgICAgZGVmIHRlc3Rfc3ViKHNlbGYpOgorICAgICAgICBvcGVyYXRvciA9IHNlbGYubW9kdWxlCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3Iuc3ViKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLnN1YiwgTm9uZSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wZXJhdG9yLnN1Yig1LCAyKSA9PSAzKQogCiAgICAgZGVmIHRlc3RfdHJ1dGgoc2VsZik6CisgICAgICAgIG9wZXJhdG9yID0gc2VsZi5tb2R1bGUKICAgICAgICAgY2xhc3MgQyhvYmplY3QpOgogICAgICAgICAgICAgZGVmIF9fYm9vbF9fKHNlbGYpOgogICAgICAgICAgICAgICAgIHJhaXNlIFN5bnRheEVycm9yCkBAIC0yNDgsMTEgKzI3OCwxMyBAQAogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9wZXJhdG9yLnRydXRoKFtdKSkKIAogICAgIGRlZiB0ZXN0X2JpdHdpc2VfeG9yKHNlbGYpOgorICAgICAgICBvcGVyYXRvciA9IHNlbGYubW9kdWxlCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IueG9yKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLnhvciwgTm9uZSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wZXJhdG9yLnhvcigweGIsIDB4YykgPT0gMHg3KQogCiAgICAgZGVmIHRlc3RfaXMoc2VsZik6CisgICAgICAgIG9wZXJhdG9yID0gc2VsZi5tb2R1bGUKICAgICAgICAgYSA9IGIgPSAneHl6cGRxJwogICAgICAgICBjID0gYVs6M10gKyBiWzM6XQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLmlzXykKQEAgLTI2MCw2ICsyOTIsNyBAQAogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9wZXJhdG9yLmlzXyhhLGMpKQogCiAgICAgZGVmIHRlc3RfaXNfbm90KHNlbGYpOgorICAgICAgICBvcGVyYXRvciA9IHNlbGYubW9kdWxlCiAgICAgICAgIGEgPSBiID0gJ3h5enBkcScKICAgICAgICAgYyA9IGFbOjNdICsgYlszOl0KICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcGVyYXRvci5pc19ub3QpCkBAIC0yNjcsNiArMzAwLDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9wZXJhdG9yLmlzX25vdChhLGMpKQogCiAgICAgZGVmIHRlc3RfYXR0cmdldHRlcihzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBjbGFzcyBBOgogICAgICAgICAgICAgcGFzcwogICAgICAgICBhID0gQSgpCkBAIC0zMTYsNiArMzUwLDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKGEpLCAoJ2FydGh1cicsICd0aG9tYXMnLCAnam9obnNvbicpKQogCiAgICAgZGVmIHRlc3RfaXRlbWdldHRlcihzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQogICAgICAgICBhID0gJ0FCQ0RFJwogICAgICAgICBmID0gb3BlcmF0b3IuaXRlbWdldHRlcigyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoYSksICdDJykKQEAgLTM1MCwxMiArMzg1LDE1IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuaXRlbWdldHRlcigyLCAneCcsIDUpLCBkYXRhKQogCiAgICAgZGVmIHRlc3RfbWV0aG9kY2FsbGVyKHNlbGYpOgorICAgICAgICBvcGVyYXRvciA9IHNlbGYubW9kdWxlCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IubWV0aG9kY2FsbGVyKQogICAgICAgICBjbGFzcyBBOgogICAgICAgICAgICAgZGVmIGZvbyhzZWxmLCAqYXJncywgKiprd2RzKToKICAgICAgICAgICAgICAgICByZXR1cm4gYXJnc1swXSArIGFyZ3NbMV0KICAgICAgICAgICAgIGRlZiBiYXIoc2VsZiwgZj00Mik6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGYKKyAgICAgICAgICAgIGRlZiBiYXooKmFyZ3MsICoqa3dkcyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGt3ZHNbJ25hbWUnXSwga3dkc1snc2VsZiddCiAgICAgICAgIGEgPSBBKCkKICAgICAgICAgZiA9IG9wZXJhdG9yLm1ldGhvZGNhbGxlcignZm9vJykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgZiwgYSkKQEAgLTM2Niw4ICs0MDQsMTEgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBmLCBhLCBhKQogICAgICAgICBmID0gb3BlcmF0b3IubWV0aG9kY2FsbGVyKCdiYXInLCBmPTUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZihhKSwgNSkKKyAgICAgICAgZiA9IG9wZXJhdG9yLm1ldGhvZGNhbGxlcignYmF6JywgbmFtZT0nc3BhbScsIHNlbGY9J2VnZ3MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoYSksICgnc3BhbScsICdlZ2dzJykpCiAKICAgICBkZWYgdGVzdF9pbnBsYWNlKHNlbGYpOgorICAgICAgICBvcGVyYXRvciA9IHNlbGYubW9kdWxlCiAgICAgICAgIGNsYXNzIEMob2JqZWN0KToKICAgICAgICAgICAgIGRlZiBfX2lhZGRfXyAgICAgKHNlbGYsIG90aGVyKTogcmV0dXJuICJpYWRkIgogICAgICAgICAgICAgZGVmIF9faWFuZF9fICAgICAoc2VsZiwgb3RoZXIpOiByZXR1cm4gImlhbmQiCkBAIC0zOTYsMzcgKzQzNyw0OCBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZXJhdG9yLml0cnVlZGl2IChjLCA1KSwgIml0cnVlZGl2IikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVyYXRvci5peG9yICAgICAoYywgNSksICJpeG9yIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVyYXRvci5pY29uY2F0ICAoYywgYyksICJpYWRkIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVyYXRvci5fX2lhZGRfXyAgICAgKGMsIDUpLCAiaWFkZCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IuX19pYW5kX18gICAgIChjLCA1KSwgImlhbmQiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZXJhdG9yLl9faWZsb29yZGl2X18oYywgNSksICJpZmxvb3JkaXYiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZXJhdG9yLl9faWxzaGlmdF9fICAoYywgNSksICJpbHNoaWZ0IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVyYXRvci5fX2ltb2RfXyAgICAgKGMsIDUpLCAiaW1vZCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IuX19pbXVsX18gICAgIChjLCA1KSwgImltdWwiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZXJhdG9yLl9faW9yX18gICAgICAoYywgNSksICJpb3IiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZXJhdG9yLl9faXBvd19fICAgICAoYywgNSksICJpcG93IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVyYXRvci5fX2lyc2hpZnRfXyAgKGMsIDUpLCAiaXJzaGlmdCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IuX19pc3ViX18gICAgIChjLCA1KSwgImlzdWIiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZXJhdG9yLl9faXRydWVkaXZfXyAoYywgNSksICJpdHJ1ZWRpdiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IuX19peG9yX18gICAgIChjLCA1KSwgIml4b3IiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZXJhdG9yLl9faWNvbmNhdF9fICAoYywgYyksICJpYWRkIikKIAotZGVmIHRlc3RfbWFpbih2ZXJib3NlPU5vbmUpOgotICAgIGltcG9ydCBzeXMKLSAgICB0ZXN0X2NsYXNzZXMgPSAoCi0gICAgICAgIE9wZXJhdG9yVGVzdENhc2UsCi0gICAgKQorICAgIGRlZiB0ZXN0X2xlbmd0aF9oaW50KHNlbGYpOgorICAgICAgICBvcGVyYXRvciA9IHNlbGYubW9kdWxlCisgICAgICAgIGNsYXNzIFgob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZSk6CisgICAgICAgICAgICAgICAgc2VsZi52YWx1ZSA9IHZhbHVlCiAKLSAgICBzdXBwb3J0LnJ1bl91bml0dGVzdCgqdGVzdF9jbGFzc2VzKQorICAgICAgICAgICAgZGVmIF9fbGVuZ3RoX2hpbnRfXyhzZWxmKToKKyAgICAgICAgICAgICAgICBpZiB0eXBlKHNlbGYudmFsdWUpIGlzIHR5cGU6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIHNlbGYudmFsdWUKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi52YWx1ZQogCi0gICAgIyB2ZXJpZnkgcmVmZXJlbmNlIGNvdW50aW5nCi0gICAgaWYgdmVyYm9zZSBhbmQgaGFzYXR0cihzeXMsICJnZXR0b3RhbHJlZmNvdW50Iik6Ci0gICAgICAgIGltcG9ydCBnYwotICAgICAgICBjb3VudHMgPSBbTm9uZV0gKiA1Ci0gICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihjb3VudHMpKToKLSAgICAgICAgICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KCp0ZXN0X2NsYXNzZXMpCi0gICAgICAgICAgICBnYy5jb2xsZWN0KCkKLSAgICAgICAgICAgIGNvdW50c1tpXSA9IHN5cy5nZXR0b3RhbHJlZmNvdW50KCkKLSAgICAgICAgcHJpbnQoY291bnRzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZXJhdG9yLmxlbmd0aF9oaW50KFtdLCAyKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVyYXRvci5sZW5ndGhfaGludChpdGVyKFsxLCAyLCAzXSkpLCAzKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IubGVuZ3RoX2hpbnQoWCgyKSksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3BlcmF0b3IubGVuZ3RoX2hpbnQoWChOb3RJbXBsZW1lbnRlZCksIDQpLCA0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZXJhdG9yLmxlbmd0aF9oaW50KFgoVHlwZUVycm9yKSwgMTIpLCAxMikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgb3BlcmF0b3IubGVuZ3RoX2hpbnQoWCgiYWJjIikpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBvcGVyYXRvci5sZW5ndGhfaGludChYKC0yKSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhMb29rdXBFcnJvcik6CisgICAgICAgICAgICBvcGVyYXRvci5sZW5ndGhfaGludChYKExvb2t1cEVycm9yKSkKKworICAgIGRlZiB0ZXN0X2R1bmRlcl9pc19vcmlnaW5hbChzZWxmKToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm1vZHVsZQorCisgICAgICAgIG5hbWVzID0gW25hbWUgZm9yIG5hbWUgaW4gZGlyKG9wZXJhdG9yKSBpZiBub3QgbmFtZS5zdGFydHN3aXRoKCdfJyldCisgICAgICAgIGZvciBuYW1lIGluIG5hbWVzOgorICAgICAgICAgICAgb3JpZyA9IGdldGF0dHIob3BlcmF0b3IsIG5hbWUpCisgICAgICAgICAgICBkdW5kZXIgPSBnZXRhdHRyKG9wZXJhdG9yLCAnX18nICsgbmFtZS5zdHJpcCgnXycpICsgJ19fJywgTm9uZSkKKyAgICAgICAgICAgIGlmIGR1bmRlcjoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzKGR1bmRlciwgb3JpZykKKworY2xhc3MgUHlPcGVyYXRvclRlc3RDYXNlKE9wZXJhdG9yVGVzdENhc2UsIHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBtb2R1bGUgPSBweV9vcGVyYXRvcgorCitAdW5pdHRlc3Quc2tpcFVubGVzcyhjX29wZXJhdG9yLCAncmVxdWlyZXMgX29wZXJhdG9yJykKK2NsYXNzIENPcGVyYXRvclRlc3RDYXNlKE9wZXJhdG9yVGVzdENhc2UsIHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBtb2R1bGUgPSBjX29wZXJhdG9yCiAKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Ci0gICAgdGVzdF9tYWluKHZlcmJvc2U9VHJ1ZSkKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfb3B0cGFyc2UucHkgYi9MaWIvdGVzdC90ZXN0X29wdHBhcnNlLnB5CmluZGV4IDc4ZGUyNzguLjk0NzMwMTEgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfb3B0cGFyc2UucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9vcHRwYXJzZS5weQpAQCAtNzMwLDcgKzczMCw3IEBACiAgICAgZGVmIHRlc3Rfc2hvcnRfYW5kX2xvbmdfb3B0aW9uX3NwbGl0KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFBhcnNlT0soWyItYSIsICJ4eXoiLCAiLS1mb28iLCAiYmFyIl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2EnOiAneHl6JywgJ2Jvbyc6IE5vbmUsICdmb28nOiBbImJhciJdfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdKQogCiAgICAgZGVmIHRlc3Rfc2hvcnRfb3B0aW9uX3NwbGl0X2xvbmdfb3B0aW9uX2FwcGVuZChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRQYXJzZU9LKFsiLS1mb289YmFyIiwgIi1iIiwgIjEyMyIsICItLWZvbyIsICJiYXoiXSwKQEAgLTc0MCwxNSArNzQwLDE1IEBACiAgICAgZGVmIHRlc3Rfc2hvcnRfb3B0aW9uX3NwbGl0X29uZV9wb3NpdGlvbmFsX2FyZyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRQYXJzZU9LKFsiLWEiLCAiZm9vIiwgImJhciJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeydhJzogImZvbyIsICdib28nOiBOb25lLCAnZm9vJzogTm9uZX0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBbImJhciJdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiYmFyIl0pCiAKICAgICBkZWYgdGVzdF9zaG9ydF9vcHRpb25fY29uc3VtZXNfc2VwYXJhdG9yKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFBhcnNlT0soWyItYSIsICItLSIsICJmb28iLCAiYmFyIl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2EnOiAiLS0iLCAnYm9vJzogTm9uZSwgJ2Zvbyc6IE5vbmV9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJmb28iLCAiYmFyIl0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJmb28iLCAiYmFyIl0pCiAgICAgICAgIHNlbGYuYXNzZXJ0UGFyc2VPSyhbIi1hIiwgIi0tIiwgIi0tZm9vIiwgImJhciJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeydhJzogIi0tIiwgJ2Jvbyc6IE5vbmUsICdmb28nOiBbImJhciJdfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdKQogCiAgICAgZGVmIHRlc3Rfc2hvcnRfb3B0aW9uX2pvaW5lZF9hbmRfc2VwYXJhdG9yKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFBhcnNlT0soWyItYWIiLCAiLS0iLCAiLS1mb28iLCAiYmFyIl0sCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X29zLnB5IGIvTGliL3Rlc3QvdGVzdF9vcy5weQppbmRleCAxOTQ1N2VjLi44OTE2MzA1IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X29zLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfb3MucHkKQEAgLTQ3MSw5ICs0NzEsOSBAQAogICAgICAgICAgICAgIyBWZXJpZnkgdGhhdCBhbiBvcGVuIGZpbGUgY2FuIGJlIHN0YXQnZWQKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBvcy5zdGF0KHIiYzpccGFnZWZpbGUuc3lzIikKLSAgICAgICAgICAgIGV4Y2VwdCBXaW5kb3dzRXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICBpZiBlLmVycm5vID09IDI6ICMgZmlsZSBkb2VzIG5vdCBleGlzdDsgY2Fubm90IHJ1biB0ZXN0Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgZXhjZXB0IEZpbGVOb3RGb3VuZEVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MgIyBmaWxlIGRvZXMgbm90IGV4aXN0OyBjYW5ub3QgcnVuIHRlc3QKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJDb3VsZCBub3Qgc3RhdCBwYWdlZmlsZS5zeXMiKQogCiAgICAgICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICJwaXBlIiksICJyZXF1aXJlcyBvcy5waXBlKCkiKQpAQCAtMTA5NywyNyArMTA5NywyNyBAQAogCiBjbGFzcyBXaW4zMkVycm9yVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3JlbmFtZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoV2luZG93c0Vycm9yLCBvcy5yZW5hbWUsIHN1cHBvcnQuVEVTVEZOLCBzdXBwb3J0LlRFU1RGTisiLmJhayIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIG9zLnJlbmFtZSwgc3VwcG9ydC5URVNURk4sIHN1cHBvcnQuVEVTVEZOKyIuYmFrIikKIAogICAgIGRlZiB0ZXN0X3JlbW92ZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoV2luZG93c0Vycm9yLCBvcy5yZW1vdmUsIHN1cHBvcnQuVEVTVEZOKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBvcy5yZW1vdmUsIHN1cHBvcnQuVEVTVEZOKQogCiAgICAgZGVmIHRlc3RfY2hkaXIoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFdpbmRvd3NFcnJvciwgb3MuY2hkaXIsIHN1cHBvcnQuVEVTVEZOKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBvcy5jaGRpciwgc3VwcG9ydC5URVNURk4pCiAKICAgICBkZWYgdGVzdF9ta2RpcihzZWxmKToKICAgICAgICAgZiA9IG9wZW4oc3VwcG9ydC5URVNURk4sICJ3IikKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoV2luZG93c0Vycm9yLCBvcy5ta2Rpciwgc3VwcG9ydC5URVNURk4pCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBvcy5ta2Rpciwgc3VwcG9ydC5URVNURk4pCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBmLmNsb3NlKCkKICAgICAgICAgICAgIG9zLnVubGluayhzdXBwb3J0LlRFU1RGTikKIAogICAgIGRlZiB0ZXN0X3V0aW1lKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhXaW5kb3dzRXJyb3IsIG9zLnV0aW1lLCBzdXBwb3J0LlRFU1RGTiwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgb3MudXRpbWUsIHN1cHBvcnQuVEVTVEZOLCBOb25lKQogCiAgICAgZGVmIHRlc3RfY2htb2Qoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFdpbmRvd3NFcnJvciwgb3MuY2htb2QsIHN1cHBvcnQuVEVTVEZOLCAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBvcy5jaG1vZCwgc3VwcG9ydC5URVNURk4sIDApCiAKIGNsYXNzIFRlc3RJbnZhbGlkRkQodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIHNpbmdsZXMgPSBbImZjaGRpciIsICJkdXAiLCAiZmRvcGVuIiwgImZkYXRhc3luYyIsICJmc3RhdCIsCkBAIC0xMjQ1LDMxICsxMjQ1LDMxIEBACiAgICAgICAgIGlmIGhhc2F0dHIob3MsICdzZXR1aWQnKToKICAgICAgICAgICAgIGRlZiB0ZXN0X3NldHVpZChzZWxmKToKICAgICAgICAgICAgICAgICBpZiBvcy5nZXR1aWQoKSAhPSAwOgotICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhvcy5lcnJvciwgb3Muc2V0dWlkLCAwKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBvcy5zZXR1aWQsIDApCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgb3Muc2V0dWlkLCAxPDwzMikKIAogICAgICAgICBpZiBoYXNhdHRyKG9zLCAnc2V0Z2lkJyk6CiAgICAgICAgICAgICBkZWYgdGVzdF9zZXRnaWQoc2VsZik6CiAgICAgICAgICAgICAgICAgaWYgb3MuZ2V0dWlkKCkgIT0gMCBhbmQgbm90IEhBVkVfV0hFRUxfR1JPVVA6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG9zLmVycm9yLCBvcy5zZXRnaWQsIDApCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIG9zLnNldGdpZCwgMCkKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBvcy5zZXRnaWQsIDE8PDMyKQogCiAgICAgICAgIGlmIGhhc2F0dHIob3MsICdzZXRldWlkJyk6CiAgICAgICAgICAgICBkZWYgdGVzdF9zZXRldWlkKHNlbGYpOgogICAgICAgICAgICAgICAgIGlmIG9zLmdldHVpZCgpICE9IDA6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG9zLmVycm9yLCBvcy5zZXRldWlkLCAwKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBvcy5zZXRldWlkLCAwKQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIG9zLnNldGV1aWQsIDE8PDMyKQogCiAgICAgICAgIGlmIGhhc2F0dHIob3MsICdzZXRlZ2lkJyk6CiAgICAgICAgICAgICBkZWYgdGVzdF9zZXRlZ2lkKHNlbGYpOgogICAgICAgICAgICAgICAgIGlmIG9zLmdldHVpZCgpICE9IDAgYW5kIG5vdCBIQVZFX1dIRUVMX0dST1VQOgotICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhvcy5lcnJvciwgb3Muc2V0ZWdpZCwgMCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgb3Muc2V0ZWdpZCwgMCkKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBvcy5zZXRlZ2lkLCAxPDwzMikKIAogICAgICAgICBpZiBoYXNhdHRyKG9zLCAnc2V0cmV1aWQnKToKICAgICAgICAgICAgIGRlZiB0ZXN0X3NldHJldWlkKHNlbGYpOgogICAgICAgICAgICAgICAgIGlmIG9zLmdldHVpZCgpICE9IDA6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG9zLmVycm9yLCBvcy5zZXRyZXVpZCwgMCwgMCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgb3Muc2V0cmV1aWQsIDAsIDApCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgb3Muc2V0cmV1aWQsIDE8PDMyLCAwKQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIG9zLnNldHJldWlkLCAwLCAxPDwzMikKIApAQCAtMTI4Myw3ICsxMjgzLDcgQEAKICAgICAgICAgaWYgaGFzYXR0cihvcywgJ3NldHJlZ2lkJyk6CiAgICAgICAgICAgICBkZWYgdGVzdF9zZXRyZWdpZChzZWxmKToKICAgICAgICAgICAgICAgICBpZiBvcy5nZXR1aWQoKSAhPSAwIGFuZCBub3QgSEFWRV9XSEVFTF9HUk9VUDoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMob3MuZXJyb3IsIG9zLnNldHJlZ2lkLCAwLCAwKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBvcy5zZXRyZWdpZCwgMCwgMCkKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBvcy5zZXRyZWdpZCwgMTw8MzIsIDApCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgb3Muc2V0cmVnaWQsIDAsIDE8PDMyKQogCkBAIC0yMTQ2LDYgKzIxNDYsMTEyIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGFjdHVhbCkKIAogCitjbGFzcyBPU0Vycm9yVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgY2xhc3MgU3RyKHN0cik6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgc2VsZi5ieXRlc19maWxlbmFtZXMgPSBbXQorICAgICAgICBzZWxmLnVuaWNvZGVfZmlsZW5hbWVzID0gW10KKyAgICAgICAgaWYgc3VwcG9ydC5URVNURk5fVU5FTkNPREFCTEUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBkZWNvZGVkID0gc3VwcG9ydC5URVNURk5fVU5FTkNPREFCTEUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRlY29kZWQgPSBzdXBwb3J0LlRFU1RGTgorICAgICAgICBzZWxmLnVuaWNvZGVfZmlsZW5hbWVzLmFwcGVuZChkZWNvZGVkKQorICAgICAgICBzZWxmLnVuaWNvZGVfZmlsZW5hbWVzLmFwcGVuZChTdHIoZGVjb2RlZCkpCisgICAgICAgIGlmIHN1cHBvcnQuVEVTVEZOX1VOREVDT0RBQkxFIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZW5jb2RlZCA9IHN1cHBvcnQuVEVTVEZOX1VOREVDT0RBQkxFCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlbmNvZGVkID0gb3MuZnNlbmNvZGUoc3VwcG9ydC5URVNURk4pCisgICAgICAgIHNlbGYuYnl0ZXNfZmlsZW5hbWVzLmFwcGVuZChlbmNvZGVkKQorICAgICAgICBzZWxmLmJ5dGVzX2ZpbGVuYW1lcy5hcHBlbmQobWVtb3J5dmlldyhlbmNvZGVkKSkKKworICAgICAgICBzZWxmLmZpbGVuYW1lcyA9IHNlbGYuYnl0ZXNfZmlsZW5hbWVzICsgc2VsZi51bmljb2RlX2ZpbGVuYW1lcworCisgICAgZGVmIHRlc3Rfb3NlcnJvcl9maWxlbmFtZShzZWxmKToKKyAgICAgICAgZnVuY3MgPSBbCisgICAgICAgICAgICAoc2VsZi5maWxlbmFtZXMsIG9zLmNoZGlyLCksCisgICAgICAgICAgICAoc2VsZi5maWxlbmFtZXMsIG9zLmNobW9kLCAwbzc3NyksCisgICAgICAgICAgICAoc2VsZi5maWxlbmFtZXMsIG9zLmxzdGF0LCksCisgICAgICAgICAgICAoc2VsZi5maWxlbmFtZXMsIG9zLm9wZW4sIG9zLk9fUkRPTkxZKSwKKyAgICAgICAgICAgIChzZWxmLmZpbGVuYW1lcywgb3Mucm1kaXIsKSwKKyAgICAgICAgICAgIChzZWxmLmZpbGVuYW1lcywgb3Muc3RhdCwpLAorICAgICAgICAgICAgKHNlbGYuZmlsZW5hbWVzLCBvcy51bmxpbmssKSwKKyAgICAgICAgXQorICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKKyAgICAgICAgICAgIGZ1bmNzLmV4dGVuZCgoCisgICAgICAgICAgICAgICAgKHNlbGYuYnl0ZXNfZmlsZW5hbWVzLCBvcy5yZW5hbWUsIGIiZHN0IiksCisgICAgICAgICAgICAgICAgKHNlbGYuYnl0ZXNfZmlsZW5hbWVzLCBvcy5yZXBsYWNlLCBiImRzdCIpLAorICAgICAgICAgICAgICAgIChzZWxmLnVuaWNvZGVfZmlsZW5hbWVzLCBvcy5yZW5hbWUsICJkc3QiKSwKKyAgICAgICAgICAgICAgICAoc2VsZi51bmljb2RlX2ZpbGVuYW1lcywgb3MucmVwbGFjZSwgImRzdCIpLAorICAgICAgICAgICAgICAgICMgSXNzdWUgIzE2NDE0OiBEb24ndCB0ZXN0IHVuZGVjb2RhYmxlIG5hbWVzIHdpdGggbGlzdGRpcigpCisgICAgICAgICAgICAgICAgIyBiZWNhdXNlIG9mIGEgV2luZG93cyBidWcuCisgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICMgV2l0aCB0aGUgQU5TSSBjb2RlIHBhZ2UgOTMyLCBvcy5saXN0ZGlyKGInXHhlNycpIHJldHVybiBhbgorICAgICAgICAgICAgICAgICMgZW1wdHkgbGlzdCAoaW5zdGVhZCBvZiBmYWlsaW5nKSwgd2hlcmVhcyBvcy5saXN0ZGlyKGInXHhmZicpCisgICAgICAgICAgICAgICAgIyByYWlzZXMgYSBGaWxlTm90Rm91bmRFcnJvci4gSXQgbG9va3MgbGlrZSBhIFdpbmRvd3MgYnVnOgorICAgICAgICAgICAgICAgICMgYidceGU3JyBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3QsIEZpbmRGaXJzdEZpbGVBKGInXHhlNycpCisgICAgICAgICAgICAgICAgIyBmYWlscyB3aXRoIEVSUk9SX0ZJTEVfTk9UX0ZPVU5EICgyKSwgaW5zdGVhZCBvZgorICAgICAgICAgICAgICAgICMgRVJST1JfUEFUSF9OT1RfRk9VTkQgKDMpLgorICAgICAgICAgICAgICAgIChzZWxmLnVuaWNvZGVfZmlsZW5hbWVzLCBvcy5saXN0ZGlyLCksCisgICAgICAgICAgICApKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZnVuY3MuZXh0ZW5kKCgKKyAgICAgICAgICAgICAgICAoc2VsZi5maWxlbmFtZXMsIG9zLmxpc3RkaXIsKSwKKyAgICAgICAgICAgICAgICAoc2VsZi5maWxlbmFtZXMsIG9zLnJlbmFtZSwgImRzdCIpLAorICAgICAgICAgICAgICAgIChzZWxmLmZpbGVuYW1lcywgb3MucmVwbGFjZSwgImRzdCIpLAorICAgICAgICAgICAgKSkKKyAgICAgICAgaWYgaGFzYXR0cihvcywgImNob3duIik6CisgICAgICAgICAgICBmdW5jcy5hcHBlbmQoKHNlbGYuZmlsZW5hbWVzLCBvcy5jaG93biwgMCwgMCkpCisgICAgICAgIGlmIGhhc2F0dHIob3MsICJsY2hvd24iKToKKyAgICAgICAgICAgIGZ1bmNzLmFwcGVuZCgoc2VsZi5maWxlbmFtZXMsIG9zLmxjaG93biwgMCwgMCkpCisgICAgICAgIGlmIGhhc2F0dHIob3MsICJ0cnVuY2F0ZSIpOgorICAgICAgICAgICAgZnVuY3MuYXBwZW5kKChzZWxmLmZpbGVuYW1lcywgb3MudHJ1bmNhdGUsIDApKQorICAgICAgICBpZiBoYXNhdHRyKG9zLCAiY2hmbGFncyIpOgorICAgICAgICAgICAgZnVuY3MuYXBwZW5kKChzZWxmLmZpbGVuYW1lcywgb3MuY2hmbGFncywgMCkpCisgICAgICAgIGlmIGhhc2F0dHIob3MsICJsY2hmbGFncyIpOgorICAgICAgICAgICAgZnVuY3MuYXBwZW5kKChzZWxmLmZpbGVuYW1lcywgb3MubGNoZmxhZ3MsIDApKQorICAgICAgICBpZiBoYXNhdHRyKG9zLCAiY2hyb290Iik6CisgICAgICAgICAgICBmdW5jcy5hcHBlbmQoKHNlbGYuZmlsZW5hbWVzLCBvcy5jaHJvb3QsKSkKKyAgICAgICAgaWYgaGFzYXR0cihvcywgImxpbmsiKToKKyAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiOgorICAgICAgICAgICAgICAgIGZ1bmNzLmFwcGVuZCgoc2VsZi5ieXRlc19maWxlbmFtZXMsIG9zLmxpbmssIGIiZHN0IikpCisgICAgICAgICAgICAgICAgZnVuY3MuYXBwZW5kKChzZWxmLnVuaWNvZGVfZmlsZW5hbWVzLCBvcy5saW5rLCAiZHN0IikpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGZ1bmNzLmFwcGVuZCgoc2VsZi5maWxlbmFtZXMsIG9zLmxpbmssICJkc3QiKSkKKyAgICAgICAgaWYgaGFzYXR0cihvcywgImxpc3R4YXR0ciIpOgorICAgICAgICAgICAgZnVuY3MuZXh0ZW5kKCgKKyAgICAgICAgICAgICAgICAoc2VsZi5maWxlbmFtZXMsIG9zLmxpc3R4YXR0ciwpLAorICAgICAgICAgICAgICAgIChzZWxmLmZpbGVuYW1lcywgb3MuZ2V0eGF0dHIsICJ1c2VyLnRlc3QiKSwKKyAgICAgICAgICAgICAgICAoc2VsZi5maWxlbmFtZXMsIG9zLnNldHhhdHRyLCAidXNlci50ZXN0IiwgYid1c2VyJyksCisgICAgICAgICAgICAgICAgKHNlbGYuZmlsZW5hbWVzLCBvcy5yZW1vdmV4YXR0ciwgInVzZXIudGVzdCIpLAorICAgICAgICAgICAgKSkKKyAgICAgICAgaWYgaGFzYXR0cihvcywgImxjaG1vZCIpOgorICAgICAgICAgICAgZnVuY3MuYXBwZW5kKChzZWxmLmZpbGVuYW1lcywgb3MubGNobW9kLCAwbzc3NykpCisgICAgICAgIGlmIGhhc2F0dHIob3MsICJyZWFkbGluayIpOgorICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6CisgICAgICAgICAgICAgICAgZnVuY3MuYXBwZW5kKChzZWxmLnVuaWNvZGVfZmlsZW5hbWVzLCBvcy5yZWFkbGluaywpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmdW5jcy5hcHBlbmQoKHNlbGYuZmlsZW5hbWVzLCBvcy5yZWFkbGluaywpKQorCisgICAgICAgIGZvciBmaWxlbmFtZXMsIGZ1bmMsICpmdW5jX2FyZ3MgaW4gZnVuY3M6CisgICAgICAgICAgICBmb3IgbmFtZSBpbiBmaWxlbmFtZXM6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBmdW5jKG5hbWUsICpmdW5jX2FyZ3MpCisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzKGVyci5maWxlbmFtZSwgbmFtZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoIk5vIGV4Y2VwdGlvbiB0aHJvd24gYnkge30iLmZvcm1hdChmdW5jKSkKKworY2xhc3MgQ1BVQ291bnRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfY3B1X2NvdW50KHNlbGYpOgorICAgICAgICBjcHVzID0gb3MuY3B1X2NvdW50KCkKKyAgICAgICAgaWYgY3B1cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShjcHVzLCBpbnQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIoY3B1cywgMCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoIkNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBDUFVzIikKKwogQHN1cHBvcnQucmVhcF90aHJlYWRzCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoCkBAIC0yMTc1LDcgKzIyODEsOSBAQAogICAgICAgICBFeHRlbmRlZEF0dHJpYnV0ZVRlc3RzLAogICAgICAgICBXaW4zMkRlcHJlY2F0ZWRCeXRlc0FQSSwKICAgICAgICAgVGVybXNpemVUZXN0cywKKyAgICAgICAgT1NFcnJvclRlc3RzLAogICAgICAgICBSZW1vdmVEaXJzVGVzdHMsCisgICAgICAgIENQVUNvdW50VGVzdHMsCiAgICAgKQogCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9vc3NhdWRpb2Rldi5weSBiL0xpYi90ZXN0L3Rlc3Rfb3NzYXVkaW9kZXYucHkKaW5kZXggMzkwOGEwNS4uYzllMmEyNCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9vc3NhdWRpb2Rldi5weQorKysgYi9MaWIvdGVzdC90ZXN0X29zc2F1ZGlvZGV2LnB5CkBAIC00NCw3ICs0NCw3IEBACiAgICAgZGVmIHBsYXlfc291bmRfZmlsZShzZWxmLCBkYXRhLCByYXRlLCBzc2l6ZSwgbmNoYW5uZWxzKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZHNwID0gb3NzYXVkaW9kZXYub3BlbigndycpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIG1zZzoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICAgICAgaWYgbXNnLmFyZ3NbMF0gaW4gKGVycm5vLkVBQ0NFUywgZXJybm8uRU5PRU5ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm5vLkVOT0RFViwgZXJybm8uRUJVU1kpOgogICAgICAgICAgICAgICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KG1zZykKQEAgLTE5MCw3ICsxOTAsNyBAQAogZGVmIHRlc3RfbWFpbigpOgogICAgIHRyeToKICAgICAgICAgZHNwID0gb3NzYXVkaW9kZXYub3BlbigndycpCi0gICAgZXhjZXB0IChvc3NhdWRpb2Rldi5lcnJvciwgSU9FcnJvcikgYXMgbXNnOgorICAgIGV4Y2VwdCAob3NzYXVkaW9kZXYuZXJyb3IsIE9TRXJyb3IpIGFzIG1zZzoKICAgICAgICAgaWYgbXNnLmFyZ3NbMF0gaW4gKGVycm5vLkVBQ0NFUywgZXJybm8uRU5PRU5ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybm8uRU5PREVWLCBlcnJuby5FQlVTWSk6CiAgICAgICAgICAgICByYWlzZSB1bml0dGVzdC5Ta2lwVGVzdChtc2cpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3BlZXBob2xlci5weSBiL0xpYi90ZXN0L3Rlc3RfcGVlcGhvbGVyLnB5CmluZGV4IDFjYWNkZWEuLjUwMjU3OTIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfcGVlcGhvbGVyLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfcGVlcGhvbGVyLnB5CkBAIC01LDQ0ICs1LDI4IEBACiBpbXBvcnQgdW5pdHRlc3QKIGZyb20gbWF0aCBpbXBvcnQgY29weXNpZ24KIAotZGVmIGRpc2Fzc2VtYmxlKGZ1bmMpOgotICAgIGYgPSBTdHJpbmdJTygpCi0gICAgdG1wID0gc3lzLnN0ZG91dAotICAgIHN5cy5zdGRvdXQgPSBmCi0gICAgdHJ5OgotICAgICAgICBkaXMuZGlzKGZ1bmMpCi0gICAgZmluYWxseToKLSAgICAgICAgc3lzLnN0ZG91dCA9IHRtcAotICAgIHJlc3VsdCA9IGYuZ2V0dmFsdWUoKQotICAgIGYuY2xvc2UoKQotICAgIHJldHVybiByZXN1bHQKK2Zyb20gdGVzdC5ieXRlY29kZV9oZWxwZXIgaW1wb3J0IEJ5dGVjb2RlVGVzdENhc2UKIAotZGVmIGRpc19zaW5nbGUobGluZSk6Ci0gICAgcmV0dXJuIGRpc2Fzc2VtYmxlKGNvbXBpbGUobGluZSwgJycsICdzaW5nbGUnKSkKLQotCi1jbGFzcyBUZXN0VHJhbmZvcm1zKHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFRlc3RUcmFuZm9ybXMoQnl0ZWNvZGVUZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF91bm90KHNlbGYpOgogICAgICAgICAjIFVOQVJZX05PVCBQT1BfSlVNUF9JRl9GQUxTRSAgLS0+ICBQT1BfSlVNUF9JRl9UUlVFJwogICAgICAgICBkZWYgdW5vdCh4KToKICAgICAgICAgICAgIGlmIG5vdCB4ID09IDI6CiAgICAgICAgICAgICAgICAgZGVsIHgKLSAgICAgICAgYXNtID0gZGlzYXNzZW1ibGUodW5vdCkKLSAgICAgICAgZm9yIGVsZW0gaW4gKCdVTkFSWV9OT1QnLCAnUE9QX0pVTVBfSUZfRkFMU0UnKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oZWxlbSwgYXNtKQotICAgICAgICBmb3IgZWxlbSBpbiAoJ1BPUF9KVU1QX0lGX1RSVUUnLCk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEluKGVsZW0sIGFzbSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbkJ5dGVjb2RlKHVub3QsICdVTkFSWV9OT1QnKQorICAgICAgICBzZWxmLmFzc2VydE5vdEluQnl0ZWNvZGUodW5vdCwgJ1BPUF9KVU1QX0lGX0ZBTFNFJykKKyAgICAgICAgc2VsZi5hc3NlcnRJbkJ5dGVjb2RlKHVub3QsICdQT1BfSlVNUF9JRl9UUlVFJykKIAogICAgIGRlZiB0ZXN0X2VsaW1faW52ZXJzaW9uX29mX2lzX29yX2luKHNlbGYpOgotICAgICAgICBmb3IgbGluZSwgZWxlbSBpbiAoCi0gICAgICAgICAgICAoJ25vdCBhIGlzIGInLCAnKGlzIG5vdCknLCksCi0gICAgICAgICAgICAoJ25vdCBhIGluIGInLCAnKG5vdCBpbiknLCksCi0gICAgICAgICAgICAoJ25vdCBhIGlzIG5vdCBiJywgJyhpcyknLCksCi0gICAgICAgICAgICAoJ25vdCBhIG5vdCBpbiBiJywgJyhpbiknLCksCisgICAgICAgIGZvciBsaW5lLCBjbXBfb3AgaW4gKAorICAgICAgICAgICAgKCdub3QgYSBpcyBiJywgJ2lzIG5vdCcsKSwKKyAgICAgICAgICAgICgnbm90IGEgaW4gYicsICdub3QgaW4nLCksCisgICAgICAgICAgICAoJ25vdCBhIGlzIG5vdCBiJywgJ2lzJywpLAorICAgICAgICAgICAgKCdub3QgYSBub3QgaW4gYicsICdpbicsKSwKICAgICAgICAgICAgICk6Ci0gICAgICAgICAgICBhc20gPSBkaXNfc2luZ2xlKGxpbmUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEluKGVsZW0sIGFzbSkKKyAgICAgICAgICAgIGNvZGUgPSBjb21waWxlKGxpbmUsICcnLCAnc2luZ2xlJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW5CeXRlY29kZShjb2RlLCAnQ09NUEFSRV9PUCcsIGNtcF9vcCkKIAogICAgIGRlZiB0ZXN0X2dsb2JhbF9hc19jb25zdGFudChzZWxmKToKICAgICAgICAgIyBMT0FEX0dMT0JBTCBOb25lL1RydWUvRmFsc2UgIC0tPiAgTE9BRF9DT05TVCBOb25lL1RydWUvRmFsc2UKQEAgLTU2LDE3ICs0MCwxNCBAQAogICAgICAgICBkZWYgaCh4KToKICAgICAgICAgICAgIEZhbHNlCiAgICAgICAgICAgICByZXR1cm4geAotICAgICAgICBmb3IgZnVuYywgbmFtZSBpbiAoKGYsICdOb25lJyksIChnLCAnVHJ1ZScpLCAoaCwgJ0ZhbHNlJykpOgotICAgICAgICAgICAgYXNtID0gZGlzYXNzZW1ibGUoZnVuYykKLSAgICAgICAgICAgIGZvciBlbGVtIGluICgnTE9BRF9HTE9CQUwnLCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbihlbGVtLCBhc20pCi0gICAgICAgICAgICBmb3IgZWxlbSBpbiAoJ0xPQURfQ09OU1QnLCAnKCcrbmFtZSsnKScpOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oZWxlbSwgYXNtKQorICAgICAgICBmb3IgZnVuYywgZWxlbSBpbiAoKGYsIE5vbmUpLCAoZywgVHJ1ZSksIChoLCBGYWxzZSkpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbkJ5dGVjb2RlKGZ1bmMsICdMT0FEX0dMT0JBTCcpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluQnl0ZWNvZGUoZnVuYywgJ0xPQURfQ09OU1QnLCBlbGVtKQogICAgICAgICBkZWYgZigpOgogICAgICAgICAgICAgJ0FkZGluZyBhIGRvY3N0cmluZyBtYWRlIHRoaXMgdGVzdCBmYWlsIGluIFB5Mi41LjAnCiAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBzZWxmLmFzc2VydEluKCdMT0FEX0NPTlNUJywgZGlzYXNzZW1ibGUoZikpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ0xPQURfR0xPQkFMJywgZGlzYXNzZW1ibGUoZikpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW5CeXRlY29kZShmLCAnTE9BRF9HTE9CQUwnKQorICAgICAgICBzZWxmLmFzc2VydEluQnl0ZWNvZGUoZiwgJ0xPQURfQ09OU1QnLCBOb25lKQogCiAgICAgZGVmIHRlc3Rfd2hpbGVfb25lKHNlbGYpOgogICAgICAgICAjIFNraXAgb3ZlcjogIExPQURfQ09OU1QgdHJ1ZWNvbnN0ICBQT1BfSlVNUF9JRl9GQUxTRSB4eApAQCAtNzQsMTEgKzU1LDEwIEBACiAgICAgICAgICAgICB3aGlsZSAxOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIHJldHVybiBsaXN0Ci0gICAgICAgIGFzbSA9IGRpc2Fzc2VtYmxlKGYpCiAgICAgICAgIGZvciBlbGVtIGluICgnTE9BRF9DT05TVCcsICdQT1BfSlVNUF9JRl9GQUxTRScpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbihlbGVtLCBhc20pCisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluQnl0ZWNvZGUoZiwgZWxlbSkKICAgICAgICAgZm9yIGVsZW0gaW4gKCdKVU1QX0FCU09MVVRFJywpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihlbGVtLCBhc20pCisgICAgICAgICAgICBzZWxmLmFzc2VydEluQnl0ZWNvZGUoZiwgZWxlbSkKIAogICAgIGRlZiB0ZXN0X3BhY2tfdW5wYWNrKHNlbGYpOgogICAgICAgICBmb3IgbGluZSwgZWxlbSBpbiAoCkBAIC04NiwyOCArNjYsMzAgQEAKICAgICAgICAgICAgICgnYSwgYiA9IGEsIGInLCAnUk9UX1RXTycsKSwKICAgICAgICAgICAgICgnYSwgYiwgYyA9IGEsIGIsIGMnLCAnUk9UX1RIUkVFJywpLAogICAgICAgICAgICAgKToKLSAgICAgICAgICAgIGFzbSA9IGRpc19zaW5nbGUobGluZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oZWxlbSwgYXNtKQotICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbignQlVJTERfVFVQTEUnLCBhc20pCi0gICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdVTlBBQ0tfVFVQTEUnLCBhc20pCisgICAgICAgICAgICBjb2RlID0gY29tcGlsZShsaW5lLCcnLCdzaW5nbGUnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbkJ5dGVjb2RlKGNvZGUsIGVsZW0pCisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluQnl0ZWNvZGUoY29kZSwgJ0JVSUxEX1RVUExFJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW5CeXRlY29kZShjb2RlLCAnVU5QQUNLX1RVUExFJykKIAogICAgIGRlZiB0ZXN0X2ZvbGRpbmdfb2ZfdHVwbGVzX29mX2NvbnN0YW50cyhzZWxmKToKICAgICAgICAgZm9yIGxpbmUsIGVsZW0gaW4gKAotICAgICAgICAgICAgKCdhID0gMSwyLDMnLCAnKCgxLCAyLCAzKSknKSwKLSAgICAgICAgICAgICgnKCJhIiwiYiIsImMiKScsICIoKCdhJywgJ2InLCAnYycpKSIpLAotICAgICAgICAgICAgKCdhLGIsYyA9IDEsMiwzJywgJygoMSwgMiwgMykpJyksCi0gICAgICAgICAgICAoJyhOb25lLCAxLCBOb25lKScsICcoKE5vbmUsIDEsIE5vbmUpKScpLAotICAgICAgICAgICAgKCcoKDEsIDIpLCAzLCA0KScsICcoKCgxLCAyKSwgMywgNCkpJyksCisgICAgICAgICAgICAoJ2EgPSAxLDIsMycsICgxLCAyLCAzKSksCisgICAgICAgICAgICAoJygiYSIsImIiLCJjIiknLCAoJ2EnLCAnYicsICdjJykpLAorICAgICAgICAgICAgKCdhLGIsYyA9IDEsMiwzJywgKDEsIDIsIDMpKSwKKyAgICAgICAgICAgICgnKE5vbmUsIDEsIE5vbmUpJywgKE5vbmUsIDEsIE5vbmUpKSwKKyAgICAgICAgICAgICgnKCgxLCAyKSwgMywgNCknLCAoKDEsIDIpLCAzLCA0KSksCiAgICAgICAgICAgICApOgotICAgICAgICAgICAgYXNtID0gZGlzX3NpbmdsZShsaW5lKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihlbGVtLCBhc20pCi0gICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdCVUlMRF9UVVBMRScsIGFzbSkKKyAgICAgICAgICAgIGNvZGUgPSBjb21waWxlKGxpbmUsJycsJ3NpbmdsZScpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluQnl0ZWNvZGUoY29kZSwgJ0xPQURfQ09OU1QnLCBlbGVtKQorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbkJ5dGVjb2RlKGNvZGUsICdCVUlMRF9UVVBMRScpCiAKICAgICAgICAgIyBMb25nIHR1cGxlcyBzaG91bGQgYmUgZm9sZGVkIHRvby4KLSAgICAgICAgYXNtID0gZGlzX3NpbmdsZShyZXByKHR1cGxlKHJhbmdlKDEwMDAwKSkpKQorICAgICAgICBjb2RlID0gY29tcGlsZShyZXByKHR1cGxlKHJhbmdlKDEwMDAwKSkpLCcnLCdzaW5nbGUnKQorICAgICAgICBzZWxmLmFzc2VydE5vdEluQnl0ZWNvZGUoY29kZSwgJ0JVSUxEX1RVUExFJykKICAgICAgICAgIyBPbmUgTE9BRF9DT05TVCBmb3IgdGhlIHR1cGxlLCBvbmUgZm9yIHRoZSBOb25lIHJldHVybiB2YWx1ZQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFzbS5jb3VudCgnTE9BRF9DT05TVCcpLCAyKQotICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdCVUlMRF9UVVBMRScsIGFzbSkKKyAgICAgICAgbG9hZF9jb25zdHMgPSBbaW5zdHIgZm9yIGluc3RyIGluIGRpcy5nZXRfaW5zdHJ1Y3Rpb25zKGNvZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpbnN0ci5vcG5hbWUgPT0gJ0xPQURfQ09OU1QnXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihsb2FkX2NvbnN0cyksIDIpCiAKICAgICAgICAgIyBCdWcgMTA1MzgxOTogIFR1cGxlIG9mIGNvbnN0YW50cyBtaXNpZGVudGlmaWVkIHdoZW4gcHJlc2VudGVkIHdpdGg6CiAgICAgICAgICMgLiAuIC4gb3Bjb2RlX3dpdGhfYXJnIDEwMCAgIHVuYXJ5X29wY29kZSAgIEJVSUxEX1RVUExFIDEgIC4gLiAuCkBAIC0xMjksMTQgKzExMSwxNCBAQAogICAgIGRlZiB0ZXN0X2ZvbGRpbmdfb2ZfbGlzdHNfb2ZfY29uc3RhbnRzKHNlbGYpOgogICAgICAgICBmb3IgbGluZSwgZWxlbSBpbiAoCiAgICAgICAgICAgICAjIGluL25vdCBpbiBjb25zdGFudHMgd2l0aCBCVUlMRF9MSVNUIHNob3VsZCBiZSBmb2xkZWQgdG8gYSB0dXBsZToKLSAgICAgICAgICAgICgnYSBpbiBbMSwyLDNdJywgJygxLCAyLCAzKScpLAotICAgICAgICAgICAgKCdhIG5vdCBpbiBbImEiLCJiIiwiYyJdJywgIigoJ2EnLCAnYicsICdjJykpIiksCi0gICAgICAgICAgICAoJ2EgaW4gW05vbmUsIDEsIE5vbmVdJywgJygoTm9uZSwgMSwgTm9uZSkpJyksCi0gICAgICAgICAgICAoJ2Egbm90IGluIFsoMSwgMiksIDMsIDRdJywgJygoKDEsIDIpLCAzLCA0KSknKSwKKyAgICAgICAgICAgICgnYSBpbiBbMSwyLDNdJywgKDEsIDIsIDMpKSwKKyAgICAgICAgICAgICgnYSBub3QgaW4gWyJhIiwiYiIsImMiXScsICgnYScsICdiJywgJ2MnKSksCisgICAgICAgICAgICAoJ2EgaW4gW05vbmUsIDEsIE5vbmVdJywgKE5vbmUsIDEsIE5vbmUpKSwKKyAgICAgICAgICAgICgnYSBub3QgaW4gWygxLCAyKSwgMywgNF0nLCAoKDEsIDIpLCAzLCA0KSksCiAgICAgICAgICAgICApOgotICAgICAgICAgICAgYXNtID0gZGlzX3NpbmdsZShsaW5lKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihlbGVtLCBhc20pCi0gICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdCVUlMRF9MSVNUJywgYXNtKQorICAgICAgICAgICAgY29kZSA9IGNvbXBpbGUobGluZSwgJycsICdzaW5nbGUnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbkJ5dGVjb2RlKGNvZGUsICdMT0FEX0NPTlNUJywgZWxlbSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW5CeXRlY29kZShjb2RlLCAnQlVJTERfTElTVCcpCiAKICAgICBkZWYgdGVzdF9mb2xkaW5nX29mX3NldHNfb2ZfY29uc3RhbnRzKHNlbGYpOgogICAgICAgICBmb3IgbGluZSwgZWxlbSBpbiAoCkBAIC0xNDcsMTggKzEyOSw5IEBACiAgICAgICAgICAgICAoJ2Egbm90IGluIHsoMSwgMiksIDMsIDR9JywgZnJvemVuc2V0KHsoMSwgMiksIDMsIDR9KSksCiAgICAgICAgICAgICAoJ2EgaW4gezEsIDIsIDMsIDMsIDIsIDF9JywgZnJvemVuc2V0KHsxLCAyLCAzfSkpLAogICAgICAgICAgICAgKToKLSAgICAgICAgICAgIGFzbSA9IGRpc19zaW5nbGUobGluZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ0JVSUxEX1NFVCcsIGFzbSkKLQotICAgICAgICAgICAgIyBWZXJpZnkgdGhhdCB0aGUgZnJvemVuc2V0ICdlbGVtJyBpcyBpbiB0aGUgZGlzYXNzZW1ibHkKLSAgICAgICAgICAgICMgVGhlIG9yZGVyaW5nIG9mIHRoZSBlbGVtZW50cyBpbiByZXByKCBmcm96ZW5zZXQgKSBpc24ndAotICAgICAgICAgICAgIyBndWFyYW50ZWVkLCBzbyB3ZSBqdW1wIHRocm91Z2ggc29tZSBob29wcyB0byBlbnN1cmUgdGhhdCB3ZSBoYXZlCi0gICAgICAgICAgICAjIHRoZSBmcm96ZW5zZXQgd2UgZXhwZWN0OgotICAgICAgICAgICAgc2VsZi5hc3NlcnRJbignZnJvemVuc2V0JywgYXNtKQotICAgICAgICAgICAgIyBFeHRyYWN0IHRoZSBmcm96ZW5zZXQgbGl0ZXJhbCBmcm9tIHRoZSBkaXNhc3NlbWJseToKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaChyJy4qKGZyb3plbnNldFwoey4qfVwpKS4qJywgYXNtLCByZS5ET1RBTEwpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZhbChtLmdyb3VwKDEpKSwgZWxlbSkKKyAgICAgICAgICAgIGNvZGUgPSBjb21waWxlKGxpbmUsICcnLCAnc2luZ2xlJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW5CeXRlY29kZShjb2RlLCAnQlVJTERfU0VUJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW5CeXRlY29kZShjb2RlLCAnTE9BRF9DT05TVCcsIGVsZW0pCiAKICAgICAgICAgIyBFbnN1cmUgdGhhdCB0aGUgcmVzdWx0aW5nIGNvZGUgYWN0dWFsbHkgd29ya3M6CiAgICAgICAgIGRlZiBmKGEpOgpAQCAtMTc2LDk4ICsxNDksMTAzIEBACiAKICAgICBkZWYgdGVzdF9mb2xkaW5nX29mX2Jpbm9wc19vbl9jb25zdGFudHMoc2VsZik6CiAgICAgICAgIGZvciBsaW5lLCBlbGVtIGluICgKLSAgICAgICAgICAgICgnYSA9IDIrMys0JywgJyg5KScpLCAgICAgICAgICAgICAgICAgICAjIGNoYWluZWQgZm9sZAotICAgICAgICAgICAgKCciQCIqNCcsICIoJ0BAQEAnKSIpLCAgICAgICAgICAgICAgICAgICMgY2hlY2sgc3RyaW5nIG9wcwotICAgICAgICAgICAgKCdhPSJhYmMiICsgImRlZiInLCAiKCdhYmNkZWYnKSIpLCAgICAgICMgY2hlY2sgc3RyaW5nIG9wcwotICAgICAgICAgICAgKCdhID0gMyoqNCcsICcoODEpJyksICAgICAgICAgICAgICAgICAgICMgYmluYXJ5IHBvd2VyCi0gICAgICAgICAgICAoJ2EgPSAzKjQnLCAnKDEyKScpLCAgICAgICAgICAgICAgICAgICAgIyBiaW5hcnkgbXVsdGlwbHkKLSAgICAgICAgICAgICgnYSA9IDEzLy80JywgJygzKScpLCAgICAgICAgICAgICAgICAgICAjIGJpbmFyeSBmbG9vciBkaXZpZGUKLSAgICAgICAgICAgICgnYSA9IDE0JTQnLCAnKDIpJyksICAgICAgICAgICAgICAgICAgICAjIGJpbmFyeSBtb2R1bG8KLSAgICAgICAgICAgICgnYSA9IDIrMycsICcoNSknKSwgICAgICAgICAgICAgICAgICAgICAjIGJpbmFyeSBhZGQKLSAgICAgICAgICAgICgnYSA9IDEzLTQnLCAnKDkpJyksICAgICAgICAgICAgICAgICAgICAjIGJpbmFyeSBzdWJ0cmFjdAotICAgICAgICAgICAgKCdhID0gKDEyLDEzKVsxXScsICcoMTMpJyksICAgICAgICAgICAgICMgYmluYXJ5IHN1YnNjcgotICAgICAgICAgICAgKCdhID0gMTMgPDwgMicsICcoNTIpJyksICAgICAgICAgICAgICAgICMgYmluYXJ5IGxzaGlmdAotICAgICAgICAgICAgKCdhID0gMTMgPj4gMicsICcoMyknKSwgICAgICAgICAgICAgICAgICMgYmluYXJ5IHJzaGlmdAotICAgICAgICAgICAgKCdhID0gMTMgJiA3JywgJyg1KScpLCAgICAgICAgICAgICAgICAgICMgYmluYXJ5IGFuZAotICAgICAgICAgICAgKCdhID0gMTMgXiA3JywgJygxMCknKSwgICAgICAgICAgICAgICAgICMgYmluYXJ5IHhvcgotICAgICAgICAgICAgKCdhID0gMTMgfCA3JywgJygxNSknKSwgICAgICAgICAgICAgICAgICMgYmluYXJ5IG9yCisgICAgICAgICAgICAoJ2EgPSAyKzMrNCcsIDkpLCAgICAgICAgICAgICAgICAgICAjIGNoYWluZWQgZm9sZAorICAgICAgICAgICAgKCciQCIqNCcsICdAQEBAJyksICAgICAgICAgICAgICAgICAgIyBjaGVjayBzdHJpbmcgb3BzCisgICAgICAgICAgICAoJ2E9ImFiYyIgKyAiZGVmIicsICdhYmNkZWYnKSwgICAgICAjIGNoZWNrIHN0cmluZyBvcHMKKyAgICAgICAgICAgICgnYSA9IDMqKjQnLCA4MSksICAgICAgICAgICAgICAgICAgICMgYmluYXJ5IHBvd2VyCisgICAgICAgICAgICAoJ2EgPSAzKjQnLCAxMiksICAgICAgICAgICAgICAgICAgICAjIGJpbmFyeSBtdWx0aXBseQorICAgICAgICAgICAgKCdhID0gMTMvLzQnLCAzKSwgICAgICAgICAgICAgICAgICAgIyBiaW5hcnkgZmxvb3IgZGl2aWRlCisgICAgICAgICAgICAoJ2EgPSAxNCU0JywgMiksICAgICAgICAgICAgICAgICAgICAjIGJpbmFyeSBtb2R1bG8KKyAgICAgICAgICAgICgnYSA9IDIrMycsIDUpLCAgICAgICAgICAgICAgICAgICAgICMgYmluYXJ5IGFkZAorICAgICAgICAgICAgKCdhID0gMTMtNCcsIDkpLCAgICAgICAgICAgICAgICAgICAgIyBiaW5hcnkgc3VidHJhY3QKKyAgICAgICAgICAgICgnYSA9ICgxMiwxMylbMV0nLCAxMyksICAgICAgICAgICAgICMgYmluYXJ5IHN1YnNjcgorICAgICAgICAgICAgKCdhID0gMTMgPDwgMicsIDUyKSwgICAgICAgICAgICAgICAgIyBiaW5hcnkgbHNoaWZ0CisgICAgICAgICAgICAoJ2EgPSAxMyA+PiAyJywgMyksICAgICAgICAgICAgICAgICAjIGJpbmFyeSByc2hpZnQKKyAgICAgICAgICAgICgnYSA9IDEzICYgNycsIDUpLCAgICAgICAgICAgICAgICAgICMgYmluYXJ5IGFuZAorICAgICAgICAgICAgKCdhID0gMTMgXiA3JywgMTApLCAgICAgICAgICAgICAgICAgIyBiaW5hcnkgeG9yCisgICAgICAgICAgICAoJ2EgPSAxMyB8IDcnLCAxNSksICAgICAgICAgICAgICAgICAjIGJpbmFyeSBvcgogICAgICAgICAgICAgKToKLSAgICAgICAgICAgIGFzbSA9IGRpc19zaW5nbGUobGluZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oZWxlbSwgYXNtLCBhc20pCi0gICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdCSU5BUllfJywgYXNtKQorICAgICAgICAgICAgY29kZSA9IGNvbXBpbGUobGluZSwgJycsICdzaW5nbGUnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbkJ5dGVjb2RlKGNvZGUsICdMT0FEX0NPTlNUJywgZWxlbSkKKyAgICAgICAgICAgIGZvciBpbnN0ciBpbiBkaXMuZ2V0X2luc3RydWN0aW9ucyhjb2RlKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluc3RyLm9wbmFtZS5zdGFydHN3aXRoKCdCSU5BUllfJykpCiAKICAgICAgICAgIyBWZXJpZnkgdGhhdCB1bmZvbGRhYmxlcyBhcmUgc2tpcHBlZAotICAgICAgICBhc20gPSBkaXNfc2luZ2xlKCdhPTIrImIiJykKLSAgICAgICAgc2VsZi5hc3NlcnRJbignKDIpJywgYXNtKQotICAgICAgICBzZWxmLmFzc2VydEluKCIoJ2InKSIsIGFzbSkKKyAgICAgICAgY29kZSA9IGNvbXBpbGUoJ2E9MisiYiInLCAnJywgJ3NpbmdsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0SW5CeXRlY29kZShjb2RlLCAnTE9BRF9DT05TVCcsIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0SW5CeXRlY29kZShjb2RlLCAnTE9BRF9DT05TVCcsICdiJykKIAogICAgICAgICAjIFZlcmlmeSB0aGF0IGxhcmdlIHNlcXVlbmNlcyBkbyBub3QgcmVzdWx0IGZyb20gZm9sZGluZwotICAgICAgICBhc20gPSBkaXNfc2luZ2xlKCdhPSJ4IioxMDAwJykKLSAgICAgICAgc2VsZi5hc3NlcnRJbignKDEwMDApJywgYXNtKQorICAgICAgICBjb2RlID0gY29tcGlsZSgnYT0ieCIqMTAwMCcsICcnLCAnc2luZ2xlJykKKyAgICAgICAgc2VsZi5hc3NlcnRJbkJ5dGVjb2RlKGNvZGUsICdMT0FEX0NPTlNUJywgMTAwMCkKIAogICAgIGRlZiB0ZXN0X2JpbmFyeV9zdWJzY3Jfb25fdW5pY29kZShzZWxmKToKICAgICAgICAgIyB2YWxpZCBjb2RlIGdldCBvcHRpbWl6ZWQKLSAgICAgICAgYXNtID0gZGlzX3NpbmdsZSgnImZvbyJbMF0nKQotICAgICAgICBzZWxmLmFzc2VydEluKCIoJ2YnKSIsIGFzbSkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RJbignQklOQVJZX1NVQlNDUicsIGFzbSkKLSAgICAgICAgYXNtID0gZGlzX3NpbmdsZSgnIlx1MDA2MVx1ZmZmZiJbMV0nKQotICAgICAgICBzZWxmLmFzc2VydEluKCIoJ1xcdWZmZmYnKSIsIGFzbSkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RJbignQklOQVJZX1NVQlNDUicsIGFzbSkKLSAgICAgICAgYXNtID0gZGlzX3NpbmdsZSgnIlxVMDAwMTIzNDVhYmNkZWYiWzNdJykKLSAgICAgICAgc2VsZi5hc3NlcnRJbigiKCdjJykiLCBhc20pCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ0JJTkFSWV9TVUJTQ1InLCBhc20pCisgICAgICAgIGNvZGUgPSBjb21waWxlKCciZm9vIlswXScsICcnLCAnc2luZ2xlJykKKyAgICAgICAgc2VsZi5hc3NlcnRJbkJ5dGVjb2RlKGNvZGUsICdMT0FEX0NPTlNUJywgJ2YnKQorICAgICAgICBzZWxmLmFzc2VydE5vdEluQnl0ZWNvZGUoY29kZSwgJ0JJTkFSWV9TVUJTQ1InKQorICAgICAgICBjb2RlID0gY29tcGlsZSgnIlx1MDA2MVx1ZmZmZiJbMV0nLCAnJywgJ3NpbmdsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0SW5CeXRlY29kZShjb2RlLCAnTE9BRF9DT05TVCcsICdcdWZmZmYnKQorICAgICAgICBzZWxmLmFzc2VydE5vdEluQnl0ZWNvZGUoY29kZSwnQklOQVJZX1NVQlNDUicpCisKKyAgICAgICAgIyBXaXRoIFBFUCAzOTMsIG5vbi1CTVAgY2hhciBnZXQgb3B0aW1pemVkCisgICAgICAgIGNvZGUgPSBjb21waWxlKCciXFUwMDAxMjM0NSJbMF0nLCAnJywgJ3NpbmdsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0SW5CeXRlY29kZShjb2RlLCAnTE9BRF9DT05TVCcsICdcVTAwMDEyMzQ1JykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbkJ5dGVjb2RlKGNvZGUsICdCSU5BUllfU1VCU0NSJykKIAogICAgICAgICAjIGludmFsaWQgY29kZSBkb2Vzbid0IGdldCBvcHRpbWl6ZWQKICAgICAgICAgIyBvdXQgb2YgcmFuZ2UKLSAgICAgICAgYXNtID0gZGlzX3NpbmdsZSgnImZ1dSJbMTBdJykKLSAgICAgICAgc2VsZi5hc3NlcnRJbignQklOQVJZX1NVQlNDUicsIGFzbSkKKyAgICAgICAgY29kZSA9IGNvbXBpbGUoJyJmdXUiWzEwXScsICcnLCAnc2luZ2xlJykKKyAgICAgICAgc2VsZi5hc3NlcnRJbkJ5dGVjb2RlKGNvZGUsICdCSU5BUllfU1VCU0NSJykKIAogICAgIGRlZiB0ZXN0X2ZvbGRpbmdfb2ZfdW5hcnlvcHNfb25fY29uc3RhbnRzKHNlbGYpOgogICAgICAgICBmb3IgbGluZSwgZWxlbSBpbiAoCi0gICAgICAgICAgICAoJy0wLjUnLCAnKC0wLjUpJyksICAgICAgICAgICAgICAgICAgICAgIyB1bmFyeSBuZWdhdGl2ZQotICAgICAgICAgICAgKCctMC4wJywgJygtMC4wKScpLCAgICAgICAgICAgICAgICAgICAgICMgLTAuMAotICAgICAgICAgICAgKCctKDEuMC0xLjApJywnKC0wLjApJyksICAgICAgICAgICAgICAgICMgLTAuMCBhZnRlciBmb2xkaW5nCi0gICAgICAgICAgICAoJy0wJywgJygwKScpLCAgICAgICAgICAgICAgICAgICAgICAgICAgIyAtMAotICAgICAgICAgICAgKCd+LTInLCAnKDEpJyksICAgICAgICAgICAgICAgICAgICAgICAgICMgdW5hcnkgaW52ZXJ0Ci0gICAgICAgICAgICAoJysxJywgJygxKScpLCAgICAgICAgICAgICAgICAgICAgICAgICAgIyB1bmFyeSBwb3NpdGl2ZQorICAgICAgICAgICAgKCctMC41JywgLTAuNSksICAgICAgICAgICAgICAgICAgICAgIyB1bmFyeSBuZWdhdGl2ZQorICAgICAgICAgICAgKCctMC4wJywgLTAuMCksICAgICAgICAgICAgICAgICAgICAgIyAtMC4wCisgICAgICAgICAgICAoJy0oMS4wLTEuMCknLCAtMC4wKSwgICAgICAgICAgICAgICAjIC0wLjAgYWZ0ZXIgZm9sZGluZworICAgICAgICAgICAgKCctMCcsIDApLCAgICAgICAgICAgICAgICAgICAgICAgICAgIyAtMAorICAgICAgICAgICAgKCd+LTInLCAxKSwgICAgICAgICAgICAgICAgICAgICAgICAgIyB1bmFyeSBpbnZlcnQKKyAgICAgICAgICAgICgnKzEnLCAxKSwgICAgICAgICAgICAgICAgICAgICAgICAgICMgdW5hcnkgcG9zaXRpdmUKICAgICAgICAgKToKLSAgICAgICAgICAgIGFzbSA9IGRpc19zaW5nbGUobGluZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oZWxlbSwgYXNtLCBhc20pCi0gICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdVTkFSWV8nLCBhc20pCisgICAgICAgICAgICBjb2RlID0gY29tcGlsZShsaW5lLCAnJywgJ3NpbmdsZScpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluQnl0ZWNvZGUoY29kZSwgJ0xPQURfQ09OU1QnLCBlbGVtKQorICAgICAgICAgICAgZm9yIGluc3RyIGluIGRpcy5nZXRfaW5zdHJ1Y3Rpb25zKGNvZGUpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5zdHIub3BuYW1lLnN0YXJ0c3dpdGgoJ1VOQVJZXycpKQogCiAgICAgICAgICMgQ2hlY2sgdGhhdCAtMC4wIHdvcmtzIGFmdGVyIG1hcnNoYWxpbmcKICAgICAgICAgZGVmIG5lZ3plcm8oKToKICAgICAgICAgICAgIHJldHVybiAtKDEuMC0xLjApCiAKLSAgICAgICAgc2VsZi5hc3NlcnROb3RJbignVU5BUllfJywgZGlzYXNzZW1ibGUobmVnemVybykpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb3B5c2lnbigxLjAsIG5lZ3plcm8oKSkgPCAwKQorICAgICAgICBmb3IgaW5zdHIgaW4gZGlzLmdldF9pbnN0cnVjdGlvbnMoY29kZSk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluc3RyLm9wbmFtZS5zdGFydHN3aXRoKCdVTkFSWV8nKSkKIAogICAgICAgICAjIFZlcmlmeSB0aGF0IHVuZm9sZGFibGVzIGFyZSBza2lwcGVkCi0gICAgICAgIGZvciBsaW5lLCBlbGVtIGluICgKLSAgICAgICAgICAgICgnLSJhYmMiJywgIignYWJjJykiKSwgICAgICAgICAgICAgICAgICAjIHVuYXJ5IG5lZ2F0aXZlCi0gICAgICAgICAgICAoJ34iYWJjIicsICIoJ2FiYycpIiksICAgICAgICAgICAgICAgICAgIyB1bmFyeSBpbnZlcnQKKyAgICAgICAgZm9yIGxpbmUsIGVsZW0sIG9wbmFtZSBpbiAoCisgICAgICAgICAgICAoJy0iYWJjIicsICdhYmMnLCAnVU5BUllfTkVHQVRJVkUnKSwKKyAgICAgICAgICAgICgnfiJhYmMiJywgJ2FiYycsICdVTkFSWV9JTlZFUlQnKSwKICAgICAgICAgKToKLSAgICAgICAgICAgIGFzbSA9IGRpc19zaW5nbGUobGluZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oZWxlbSwgYXNtLCBhc20pCi0gICAgICAgICAgICBzZWxmLmFzc2VydEluKCdVTkFSWV8nLCBhc20pCisgICAgICAgICAgICBjb2RlID0gY29tcGlsZShsaW5lLCAnJywgJ3NpbmdsZScpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluQnl0ZWNvZGUoY29kZSwgJ0xPQURfQ09OU1QnLCBlbGVtKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbkJ5dGVjb2RlKGNvZGUsIG9wbmFtZSkKIAogICAgIGRlZiB0ZXN0X2VsaW1fZXh0cmFfcmV0dXJuKHNlbGYpOgogICAgICAgICAjIFJFVFVSTiBMT0FEX0NPTlNUIE5vbmUgUkVUVVJOICAtLT4gIFJFVFVSTgogICAgICAgICBkZWYgZih4KToKICAgICAgICAgICAgIHJldHVybiB4Ci0gICAgICAgIGFzbSA9IGRpc2Fzc2VtYmxlKGYpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ0xPQURfQ09OU1QnLCBhc20pCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJyhOb25lKScsIGFzbSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhc20uc3BsaXQoKS5jb3VudCgnUkVUVVJOX1ZBTFVFJyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW5CeXRlY29kZShmLCAnTE9BRF9DT05TVCcsIE5vbmUpCisgICAgICAgIHJldHVybnMgPSBbaW5zdHIgZm9yIGluc3RyIGluIGRpcy5nZXRfaW5zdHJ1Y3Rpb25zKGYpCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGluc3RyLm9wbmFtZSA9PSAnUkVUVVJOX1ZBTFVFJ10KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocmV0dXJucyksIDEpCiAKICAgICBkZWYgdGVzdF9lbGltX2p1bXBfdG9fcmV0dXJuKHNlbGYpOgogICAgICAgICAjIEpVTVBfRk9SV0FSRCB0byBSRVRVUk4gLS0+ICBSRVRVUk4KICAgICAgICAgZGVmIGYoY29uZCwgdHJ1ZV92YWx1ZSwgZmFsc2VfdmFsdWUpOgogICAgICAgICAgICAgcmV0dXJuIHRydWVfdmFsdWUgaWYgY29uZCBlbHNlIGZhbHNlX3ZhbHVlCi0gICAgICAgIGFzbSA9IGRpc2Fzc2VtYmxlKGYpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ0pVTVBfRk9SV0FSRCcsIGFzbSkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RJbignSlVNUF9BQlNPTFVURScsIGFzbSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhc20uc3BsaXQoKS5jb3VudCgnUkVUVVJOX1ZBTFVFJyksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW5CeXRlY29kZShmLCAnSlVNUF9GT1JXQVJEJykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbkJ5dGVjb2RlKGYsICdKVU1QX0FCU09MVVRFJykKKyAgICAgICAgcmV0dXJucyA9IFtpbnN0ciBmb3IgaW5zdHIgaW4gZGlzLmdldF9pbnN0cnVjdGlvbnMoZikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5zdHIub3BuYW1lID09ICdSRVRVUk5fVkFMVUUnXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXR1cm5zKSwgMikKIAogICAgIGRlZiB0ZXN0X2VsaW1fanVtcF9hZnRlcl9yZXR1cm4xKHNlbGYpOgogICAgICAgICAjIEVsaW1pbmF0ZSBkZWFkIGNvZGU6IGp1bXBzIGltbWVkaWF0ZWx5IGFmdGVyIHJldHVybnMgY2FuJ3QgYmUgcmVhY2hlZApAQCAtMjgwLDQ4ICsyNTgsNTMgQEAKICAgICAgICAgICAgICAgICBpZiBjb25kMTogcmV0dXJuIDQKICAgICAgICAgICAgICAgICByZXR1cm4gNQogICAgICAgICAgICAgcmV0dXJuIDYKLSAgICAgICAgYXNtID0gZGlzYXNzZW1ibGUoZikKLSAgICAgICAgc2VsZi5hc3NlcnROb3RJbignSlVNUF9GT1JXQVJEJywgYXNtKQotICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdKVU1QX0FCU09MVVRFJywgYXNtKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFzbS5zcGxpdCgpLmNvdW50KCdSRVRVUk5fVkFMVUUnKSwgNikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbkJ5dGVjb2RlKGYsICdKVU1QX0ZPUldBUkQnKQorICAgICAgICBzZWxmLmFzc2VydE5vdEluQnl0ZWNvZGUoZiwgJ0pVTVBfQUJTT0xVVEUnKQorICAgICAgICByZXR1cm5zID0gW2luc3RyIGZvciBpbnN0ciBpbiBkaXMuZ2V0X2luc3RydWN0aW9ucyhmKQorICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpbnN0ci5vcG5hbWUgPT0gJ1JFVFVSTl9WQUxVRSddCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJldHVybnMpLCA2KQogCiAgICAgZGVmIHRlc3RfZWxpbV9qdW1wX2FmdGVyX3JldHVybjIoc2VsZik6CiAgICAgICAgICMgRWxpbWluYXRlIGRlYWQgY29kZToganVtcHMgaW1tZWRpYXRlbHkgYWZ0ZXIgcmV0dXJucyBjYW4ndCBiZSByZWFjaGVkCiAgICAgICAgIGRlZiBmKGNvbmQxLCBjb25kMik6CiAgICAgICAgICAgICB3aGlsZSAxOgogICAgICAgICAgICAgICAgIGlmIGNvbmQxOiByZXR1cm4gNAotICAgICAgICBhc20gPSBkaXNhc3NlbWJsZShmKQotICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdKVU1QX0ZPUldBUkQnLCBhc20pCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW5CeXRlY29kZShmLCAnSlVNUF9GT1JXQVJEJykKICAgICAgICAgIyBUaGVyZSBzaG91bGQgYmUgb25lIGp1bXAgZm9yIHRoZSB3aGlsZSBsb29wLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFzbS5zcGxpdCgpLmNvdW50KCdKVU1QX0FCU09MVVRFJyksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXNtLnNwbGl0KCkuY291bnQoJ1JFVFVSTl9WQUxVRScpLCAyKQorICAgICAgICByZXR1cm5zID0gW2luc3RyIGZvciBpbnN0ciBpbiBkaXMuZ2V0X2luc3RydWN0aW9ucyhmKQorICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpbnN0ci5vcG5hbWUgPT0gJ0pVTVBfQUJTT0xVVEUnXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXR1cm5zKSwgMSkKKyAgICAgICAgcmV0dXJucyA9IFtpbnN0ciBmb3IgaW5zdHIgaW4gZGlzLmdldF9pbnN0cnVjdGlvbnMoZikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5zdHIub3BuYW1lID09ICdSRVRVUk5fVkFMVUUnXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXR1cm5zKSwgMikKIAogICAgIGRlZiB0ZXN0X21ha2VfZnVuY3Rpb25fZG9lc250X2JhaWwoc2VsZik6CiAgICAgICAgIGRlZiBmKCk6CiAgICAgICAgICAgICBkZWYgZygpLT4xKzE6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgcmV0dXJuIGcKLSAgICAgICAgYXNtID0gZGlzYXNzZW1ibGUoZikKLSAgICAgICAgc2VsZi5hc3NlcnROb3RJbignQklOQVJZX0FERCcsIGFzbSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbkJ5dGVjb2RlKGYsICdCSU5BUllfQUREJykKIAogICAgIGRlZiB0ZXN0X2NvbnN0YW50X2ZvbGRpbmcoc2VsZik6CiAgICAgICAgICMgSXNzdWUgIzExMjQ0OiBhZ2dyZXNzaXZlIGNvbnN0YW50IGZvbGRpbmcuCiAgICAgICAgIGV4cHJzID0gWwotICAgICAgICAgICAgIjMgKiAtNSIsCi0gICAgICAgICAgICAiLTMgKiA1IiwKLSAgICAgICAgICAgICIyICogKDMgKiA0KSIsCi0gICAgICAgICAgICAiKDIgKiAzKSAqIDQiLAotICAgICAgICAgICAgIigtMSwgMiwgMykiLAotICAgICAgICAgICAgIigxLCAtMiwgMykiLAotICAgICAgICAgICAgIigxLCAyLCAtMykiLAotICAgICAgICAgICAgIigxLCAyLCAtMykgKiA2IiwKLSAgICAgICAgICAgICJsYW1iZGEgeDogeCBpbiB7KDMgKiAtNSkgKyAoLTEgLSA2KSwgKDEsIC0yLCAzKSAqIDIsIE5vbmV9IiwKKyAgICAgICAgICAgICczICogLTUnLAorICAgICAgICAgICAgJy0zICogNScsCisgICAgICAgICAgICAnMiAqICgzICogNCknLAorICAgICAgICAgICAgJygyICogMykgKiA0JywKKyAgICAgICAgICAgICcoLTEsIDIsIDMpJywKKyAgICAgICAgICAgICcoMSwgLTIsIDMpJywKKyAgICAgICAgICAgICcoMSwgMiwgLTMpJywKKyAgICAgICAgICAgICcoMSwgMiwgLTMpICogNicsCisgICAgICAgICAgICAnbGFtYmRhIHg6IHggaW4geygzICogLTUpICsgKC0xIC0gNiksICgxLCAtMiwgMykgKiAyLCBOb25lfScsCiAgICAgICAgIF0KICAgICAgICAgZm9yIGUgaW4gZXhwcnM6Ci0gICAgICAgICAgICBhc20gPSBkaXNfc2luZ2xlKGUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdVTkFSWV8nLCBhc20sIGUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdCSU5BUllfJywgYXNtLCBlKQotICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbignQlVJTERfJywgYXNtLCBlKQorICAgICAgICAgICAgY29kZSA9IGNvbXBpbGUoZSwgJycsICdzaW5nbGUnKQorICAgICAgICAgICAgZm9yIGluc3RyIGluIGRpcy5nZXRfaW5zdHJ1Y3Rpb25zKGNvZGUpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5zdHIub3BuYW1lLnN0YXJ0c3dpdGgoJ1VOQVJZXycpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5zdHIub3BuYW1lLnN0YXJ0c3dpdGgoJ0JJTkFSWV8nKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluc3RyLm9wbmFtZS5zdGFydHN3aXRoKCdCVUlMRF8nKSkKKwogCiBjbGFzcyBUZXN0QnVnbGV0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKQEAgLTM0Myw3ICszMjYsNyBAQAogICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KCp0ZXN0X2NsYXNzZXMpCiAKICAgICAjIHZlcmlmeSByZWZlcmVuY2UgY291bnRpbmcKLSAgICBpZiB2ZXJib3NlIGFuZCBoYXNhdHRyKHN5cywgImdldHRvdGFscmVmY291bnQiKToKKyAgICBpZiB2ZXJib3NlIGFuZCBoYXNhdHRyKHN5cywgJ2dldHRvdGFscmVmY291bnQnKToKICAgICAgICAgaW1wb3J0IGdjCiAgICAgICAgIGNvdW50cyA9IFtOb25lXSAqIDUKICAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGNvdW50cykpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wZXAyNzcucHkgYi9MaWIvdGVzdC90ZXN0X3BlcDI3Ny5weQppbmRleCA0YjE2Y2JiLi45YmFlNmRjIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3BlcDI3Ny5weQorKysgYi9MaWIvdGVzdC90ZXN0X3BlcDI3Ny5weQpAQCAtOTksMTAgKzk5LDYgQEAKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhleHBlY3RlZF9leGNlcHRpb24pIGFzIGM6CiAgICAgICAgICAgICBmbihmaWxlbmFtZSkKICAgICAgICAgZXhjX2ZpbGVuYW1lID0gYy5leGNlcHRpb24uZmlsZW5hbWUKLSAgICAgICAgIyBsaXN0ZGlyIG1heSBhcHBlbmQgYSB3aWxkY2FyZCB0byB0aGUgZmlsZW5hbWUKLSAgICAgICAgaWYgZm4gaXMgb3MubGlzdGRpciBhbmQgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6Ci0gICAgICAgICAgICBleGNfZmlsZW5hbWUsIF8sIHdpbGRjYXJkID0gZXhjX2ZpbGVuYW1lLnJwYXJ0aXRpb24ob3Muc2VwKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3aWxkY2FyZCwgJyouKicpCiAgICAgICAgIGlmIGNoZWNrX2ZpbGVuYW1lOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleGNfZmlsZW5hbWUsIGZpbGVuYW1lLCAiRnVuY3Rpb24gJyVzKCVhKSBmYWlsZWQgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2l0aCBiYWQgZmlsZW5hbWUgaW4gdGhlIGV4Y2VwdGlvbjogJWEiICUKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcG9sbC5weSBiL0xpYi90ZXN0L3Rlc3RfcG9sbC5weQppbmRleCBmMmQxNzk1Li5hMmZlYzNkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3BvbGwucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9wb2xsLnB5CkBAIC0xLDEzICsxLDEzIEBACiAjIFRlc3QgY2FzZSBmb3IgdGhlIG9zLnBvbGwoKSBmdW5jdGlvbgogCi1pbXBvcnQgb3MsIHNlbGVjdCwgcmFuZG9tLCB1bml0dGVzdAoraW1wb3J0IG9zLCBzZWxlY3QsIHJhbmRvbSwgdW5pdHRlc3QsIHN1YnByb2Nlc3MKIGltcG9ydCBfdGVzdGNhcGkKIGZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBURVNURk4sIHJ1bl91bml0dGVzdAogCiB0cnk6CiAgICAgc2VsZWN0LnBvbGwKIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICByYWlzZSB1bml0dGVzdC5Ta2lwVGVzdCgic2VsZWN0LnBvbGwgbm90IGRlZmluZWQgLS0gc2tpcHBpbmcgdGVzdF9wb2xsIikKKyAgICByYWlzZSB1bml0dGVzdC5Ta2lwVGVzdCgic2VsZWN0LnBvbGwgbm90IGRlZmluZWQiKQogCiAKIGRlZiBmaW5kX3JlYWR5X21hdGNoaW5nKHJlYWR5LCBmbGFnKToKQEAgLTY4LDEzICs2OCwxMSBAQAogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmcywgW01TR10gKiBOVU1fUElQRVMpCiAKLSAgICBkZWYgcG9sbF91bml0X3Rlc3RzKHNlbGYpOgorICAgIGRlZiB0ZXN0X3BvbGxfdW5pdF90ZXN0cyhzZWxmKToKICAgICAgICAgIyByZXR1cm5zIE5WQUwgZm9yIGludmFsaWQgZmlsZSBkZXNjcmlwdG9yCi0gICAgICAgIEZEID0gNDIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgb3MuY2xvc2UoRkQpCi0gICAgICAgIGV4Y2VwdCBPU0Vycm9yOgotICAgICAgICAgICAgcGFzcworICAgICAgICBGRCwgdyA9IG9zLnBpcGUoKQorICAgICAgICBvcy5jbG9zZShGRCkKKyAgICAgICAgb3MuY2xvc2UodykKICAgICAgICAgcCA9IHNlbGVjdC5wb2xsKCkKICAgICAgICAgcC5yZWdpc3RlcihGRCkKICAgICAgICAgciA9IHAucG9sbCgpCkBAIC0xMTcsNyArMTE1LDkgQEAKIAogICAgIGRlZiB0ZXN0X3BvbGwyKHNlbGYpOgogICAgICAgICBjbWQgPSAnZm9yIGkgaW4gMCAxIDIgMyA0IDUgNiA3IDggOTsgZG8gZWNobyB0ZXN0aW5nLi4uOyBzbGVlcCAxOyBkb25lJwotICAgICAgICBwID0gb3MucG9wZW4oY21kLCAncicpCisgICAgICAgIHByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc2hlbGw9VHJ1ZSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmc2l6ZT0wKQorICAgICAgICBwID0gcHJvYy5zdGRvdXQKICAgICAgICAgcG9sbHN0ZXIgPSBzZWxlY3QucG9sbCgpCiAgICAgICAgIHBvbGxzdGVyLnJlZ2lzdGVyKCBwLCBzZWxlY3QuUE9MTElOICkKICAgICAgICAgZm9yIHRvdXQgaW4gKDAsIDEwMDAsIDIwMDAsIDQwMDAsIDgwMDAsIDE2MDAwKSArICgtMSwpKjEwOgpAQCAtMTI3LDcgKzEyNyw3IEBACiAgICAgICAgICAgICBmZCwgZmxhZ3MgPSBmZGxpc3RbMF0KICAgICAgICAgICAgIGlmIGZsYWdzICYgc2VsZWN0LlBPTExIVVA6CiAgICAgICAgICAgICAgICAgbGluZSA9IHAucmVhZGxpbmUoKQotICAgICAgICAgICAgICAgIGlmIGxpbmUgIT0gIiI6CisgICAgICAgICAgICAgICAgaWYgbGluZSAhPSBiIiI6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnZXJyb3I6IHBpcGUgc2VlbXMgdG8gYmUgY2xvc2VkLCBidXQgc3RpbGwgcmV0dXJucyBkYXRhJykKICAgICAgICAgICAgICAgICBjb250aW51ZQogCkBAIC0xMzUsNiArMTM1LDcgQEAKICAgICAgICAgICAgICAgICBsaW5lID0gcC5yZWFkbGluZSgpCiAgICAgICAgICAgICAgICAgaWYgbm90IGxpbmU6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaW5lLCBiJ3Rlc3RpbmcuLi5cbicpCiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdVbmV4cGVjdGVkIHJldHVybiB2YWx1ZSBmcm9tIHNlbGVjdC5wb2xsOiAlcycgJSBmZGxpc3QpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3BvcGxpYi5weSBiL0xpYi90ZXN0L3Rlc3RfcG9wbGliLnB5CmluZGV4IGMwOTI5YTAuLjkzNTg0OGIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfcG9wbGliLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfcG9wbGliLnB5CkBAIC0xOCw2ICsxOCwxMyBAQAogSE9TVCA9IHRlc3Rfc3VwcG9ydC5IT1NUCiBQT1JUID0gMAogCitTVVBQT1JUU19TU0wgPSBGYWxzZQoraWYgaGFzYXR0cihwb3BsaWIsICdQT1AzX1NTTCcpOgorICAgIGltcG9ydCBzc2wKKworICAgIFNVUFBPUlRTX1NTTCA9IFRydWUKKyAgICBDRVJURklMRSA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pIG9yIG9zLmN1cmRpciwgImtleWNlcnQucGVtIikKKwogIyB0aGUgZHVtbXkgZGF0YSByZXR1cm5lZCBieSBzZXJ2ZXIgd2hlbiBMSVNUIGFuZCBSRVRSIGNvbW1hbmRzIGFyZSBpc3N1ZWQKIExJU1RfUkVTUCA9IGInMSAxXHJcbjIgMlxyXG4zIDNcclxuNCA0XHJcbjUgNVxyXG4uXHJcbicKIFJFVFJfUkVTUCA9IGIiIiJGcm9tOiBwb3N0bWFzdGVyQHB5dGhvbi5vcmdcCkBAIC0zMywxMSArNDAsMTUgQEAKIAogY2xhc3MgRHVtbXlQT1AzSGFuZGxlcihhc3luY2hhdC5hc3luY19jaGF0KToKIAorICAgIENBUEFTID0geydVSURMJzogW10sICdJTVBMRU1FTlRBVElPTic6IFsncHl0aG9uLXRlc3RsaWItcG9wLXNlcnZlciddfQorCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbm4pOgogICAgICAgICBhc3luY2hhdC5hc3luY19jaGF0Ll9faW5pdF9fKHNlbGYsIGNvbm4pCiAgICAgICAgIHNlbGYuc2V0X3Rlcm1pbmF0b3IoYiJcclxuIikKICAgICAgICAgc2VsZi5pbl9idWZmZXIgPSBbXQogICAgICAgICBzZWxmLnB1c2goJytPSyBkdW1teSBwb3AzIHNlcnZlciByZWFkeS4gPHRpbWVzdGFtcD4nKQorICAgICAgICBzZWxmLnRsc19hY3RpdmUgPSBGYWxzZQorICAgICAgICBzZWxmLnRsc19zdGFydGluZyA9IEZhbHNlCiAKICAgICBkZWYgY29sbGVjdF9pbmNvbWluZ19kYXRhKHNlbGYsIGRhdGEpOgogICAgICAgICBzZWxmLmluX2J1ZmZlci5hcHBlbmQoZGF0YSkKQEAgLTExMiw2ICsxMjMsNjUgQEAKICAgICAgICAgc2VsZi5wdXNoKCcrT0sgY2xvc2luZy4nKQogICAgICAgICBzZWxmLmNsb3NlX3doZW5fZG9uZSgpCiAKKyAgICBkZWYgX2dldF9jYXBhcyhzZWxmKToKKyAgICAgICAgX2NhcGFzID0gZGljdChzZWxmLkNBUEFTKQorICAgICAgICBpZiBub3Qgc2VsZi50bHNfYWN0aXZlIGFuZCBTVVBQT1JUU19TU0w6CisgICAgICAgICAgICBfY2FwYXNbJ1NUTFMnXSA9IFtdCisgICAgICAgIHJldHVybiBfY2FwYXMKKworICAgIGRlZiBjbWRfY2FwYShzZWxmLCBhcmcpOgorICAgICAgICBzZWxmLnB1c2goJytPSyBDYXBhYmlsaXR5IGxpc3QgZm9sbG93cycpCisgICAgICAgIGlmIHNlbGYuX2dldF9jYXBhcygpOgorICAgICAgICAgICAgZm9yIGNhcCwgcGFyYW1zIGluIHNlbGYuX2dldF9jYXBhcygpLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgX2xuID0gW2NhcF0KKyAgICAgICAgICAgICAgICBpZiBwYXJhbXM6CisgICAgICAgICAgICAgICAgICAgIF9sbi5leHRlbmQocGFyYW1zKQorICAgICAgICAgICAgICAgIHNlbGYucHVzaCgnICcuam9pbihfbG4pKQorICAgICAgICBzZWxmLnB1c2goJy4nKQorCisgICAgaWYgU1VQUE9SVFNfU1NMOgorCisgICAgICAgIGRlZiBjbWRfc3RscyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgaWYgc2VsZi50bHNfYWN0aXZlIGlzIEZhbHNlOgorICAgICAgICAgICAgICAgIHNlbGYucHVzaCgnK09LIEJlZ2luIFRMUyBuZWdvdGlhdGlvbicpCisgICAgICAgICAgICAgICAgdGxzX3NvY2sgPSBzc2wud3JhcF9zb2NrZXQoc2VsZi5zb2NrZXQsIGNlcnRmaWxlPUNFUlRGSUxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9zaWRlPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9faGFuZHNoYWtlX29uX2Nvbm5lY3Q9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcHJlc3NfcmFnZ2VkX2VvZnM9RmFsc2UpCisgICAgICAgICAgICAgICAgc2VsZi5kZWxfY2hhbm5lbCgpCisgICAgICAgICAgICAgICAgc2VsZi5zZXRfc29ja2V0KHRsc19zb2NrKQorICAgICAgICAgICAgICAgIHNlbGYudGxzX2FjdGl2ZSA9IFRydWUKKyAgICAgICAgICAgICAgICBzZWxmLnRsc19zdGFydGluZyA9IFRydWUKKyAgICAgICAgICAgICAgICBzZWxmLmluX2J1ZmZlciA9IFtdCisgICAgICAgICAgICAgICAgc2VsZi5fZG9fdGxzX2hhbmRzaGFrZSgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYucHVzaCgnLUVSUiBDb21tYW5kIG5vdCBwZXJtaXR0ZWQgd2hlbiBUTFMgYWN0aXZlJykKKworICAgICAgICBkZWYgX2RvX3Rsc19oYW5kc2hha2Uoc2VsZik6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5zb2NrZXQuZG9faGFuZHNoYWtlKCkKKyAgICAgICAgICAgIGV4Y2VwdCBzc2wuU1NMRXJyb3IgYXMgZXJyOgorICAgICAgICAgICAgICAgIGlmIGVyci5hcmdzWzBdIGluIChzc2wuU1NMX0VSUk9SX1dBTlRfUkVBRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NsLlNTTF9FUlJPUl9XQU5UX1dSSVRFKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAgZWxpZiBlcnIuYXJnc1swXSA9PSBzc2wuU1NMX0VSUk9SX0VPRjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuaGFuZGxlX2Nsb3NlKCkKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgorICAgICAgICAgICAgICAgIGlmIGVyci5hcmdzWzBdID09IGVycm5vLkVDT05OQUJPUlRFRDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuaGFuZGxlX2Nsb3NlKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi50bHNfYWN0aXZlID0gVHJ1ZQorICAgICAgICAgICAgICAgIHNlbGYudGxzX3N0YXJ0aW5nID0gRmFsc2UKKworICAgICAgICBkZWYgaGFuZGxlX3JlYWQoc2VsZik6CisgICAgICAgICAgICBpZiBzZWxmLnRsc19zdGFydGluZzoKKyAgICAgICAgICAgICAgICBzZWxmLl9kb190bHNfaGFuZHNoYWtlKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBhc3luY2hhdC5hc3luY19jaGF0LmhhbmRsZV9yZWFkKHNlbGYpCisgICAgICAgICAgICAgICAgZXhjZXB0IHNzbC5TU0xFT0ZFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVfY2xvc2UoKQogCiBjbGFzcyBEdW1teVBPUDNTZXJ2ZXIoYXN5bmNvcmUuZGlzcGF0Y2hlciwgdGhyZWFkaW5nLlRocmVhZCk6CiAKQEAgLTIzMiwxOSArMzAyLDM1IEBACiAgICAgICAgIHNlbGYuY2xpZW50LnVpZGwoKQogICAgICAgICBzZWxmLmNsaWVudC51aWRsKCdmb28nKQogCisgICAgZGVmIHRlc3RfY2FwYShzZWxmKToKKyAgICAgICAgY2FwYSA9IHNlbGYuY2xpZW50LmNhcGEoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ0lNUExFTUVOVEFUSU9OJyBpbiBjYXBhLmtleXMoKSkKKwogICAgIGRlZiB0ZXN0X3F1aXQoc2VsZik6CiAgICAgICAgIHJlc3AgPSBzZWxmLmNsaWVudC5xdWl0KCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3ApCiAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHNlbGYuY2xpZW50LnNvY2spCiAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHNlbGYuY2xpZW50LmZpbGUpCiAKKyAgICBpZiBTVVBQT1JUU19TU0w6CiAKLVNVUFBPUlRTX1NTTCA9IEZhbHNlCi1pZiBoYXNhdHRyKHBvcGxpYiwgJ1BPUDNfU1NMJyk6Ci0gICAgaW1wb3J0IHNzbAorICAgICAgICBkZWYgdGVzdF9zdGxzX2NhcGEoc2VsZik6CisgICAgICAgICAgICBjYXBhID0gc2VsZi5jbGllbnQuY2FwYSgpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1NUTFMnIGluIGNhcGEua2V5cygpKQogCi0gICAgU1VQUE9SVFNfU1NMID0gVHJ1ZQotICAgIENFUlRGSUxFID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykgb3Igb3MuY3VyZGlyLCAia2V5Y2VydC5wZW0iKQorICAgICAgICBkZWYgdGVzdF9zdGxzKHNlbGYpOgorICAgICAgICAgICAgZXhwZWN0ZWQgPSBiJytPSyBCZWdpbiBUTFMgbmVnb3RpYXRpb24nCisgICAgICAgICAgICByZXNwID0gc2VsZi5jbGllbnQuc3RscygpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AsIGV4cGVjdGVkKQorCisgICAgICAgIGRlZiB0ZXN0X3N0bHNfY29udGV4dChzZWxmKToKKyAgICAgICAgICAgIGV4cGVjdGVkID0gYicrT0sgQmVnaW4gVExTIG5lZ290aWF0aW9uJworICAgICAgICAgICAgY3R4ID0gc3NsLlNTTENvbnRleHQoc3NsLlBST1RPQ09MX1RMU3YxKQorICAgICAgICAgICAgcmVzcCA9IHNlbGYuY2xpZW50LnN0bHMoY29udGV4dD1jdHgpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AsIGV4cGVjdGVkKQorCisKK2lmIFNVUFBPUlRTX1NTTDoKIAogICAgIGNsYXNzIER1bW15UE9QM19TU0xIYW5kbGVyKER1bW15UE9QM0hhbmRsZXIpOgogCkBAIC0yNTYsMzQgKzM0MiwxMyBAQAogICAgICAgICAgICAgc2VsZi5kZWxfY2hhbm5lbCgpCiAgICAgICAgICAgICBzZWxmLnNldF9zb2NrZXQoc3NsX3NvY2tldCkKICAgICAgICAgICAgICMgTXVzdCB0cnkgaGFuZHNoYWtlIGJlZm9yZSBjYWxsaW5nIHB1c2goKQotICAgICAgICAgICAgc2VsZi5fc3NsX2FjY2VwdGluZyA9IFRydWUKLSAgICAgICAgICAgIHNlbGYuX2RvX3NzbF9oYW5kc2hha2UoKQorICAgICAgICAgICAgc2VsZi50bHNfYWN0aXZlID0gVHJ1ZQorICAgICAgICAgICAgc2VsZi50bHNfc3RhcnRpbmcgPSBUcnVlCisgICAgICAgICAgICBzZWxmLl9kb190bHNfaGFuZHNoYWtlKCkKICAgICAgICAgICAgIHNlbGYuc2V0X3Rlcm1pbmF0b3IoYiJcclxuIikKICAgICAgICAgICAgIHNlbGYuaW5fYnVmZmVyID0gW10KICAgICAgICAgICAgIHNlbGYucHVzaCgnK09LIGR1bW15IHBvcDMgc2VydmVyIHJlYWR5LiA8dGltZXN0YW1wPicpCiAKLSAgICAgICAgZGVmIF9kb19zc2xfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuc29ja2V0LmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICAgICBleGNlcHQgc3NsLlNTTEVycm9yIGFzIGVycjoKLSAgICAgICAgICAgICAgICBpZiBlcnIuYXJnc1swXSBpbiAoc3NsLlNTTF9FUlJPUl9XQU5UX1JFQUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzbC5TU0xfRVJST1JfV0FOVF9XUklURSk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgICAgIGVsaWYgZXJyLmFyZ3NbMF0gPT0gc3NsLlNTTF9FUlJPUl9FT0Y6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmhhbmRsZV9jbG9zZSgpCi0gICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZXJyOgotICAgICAgICAgICAgICAgIGlmIGVyci5hcmdzWzBdID09IGVycm5vLkVDT05OQUJPUlRFRDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuaGFuZGxlX2Nsb3NlKCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc3NsX2FjY2VwdGluZyA9IEZhbHNlCi0KLSAgICAgICAgZGVmIGhhbmRsZV9yZWFkKHNlbGYpOgotICAgICAgICAgICAgaWYgc2VsZi5fc3NsX2FjY2VwdGluZzoKLSAgICAgICAgICAgICAgICBzZWxmLl9kb19zc2xfaGFuZHNoYWtlKCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgRHVtbXlQT1AzSGFuZGxlci5oYW5kbGVfcmVhZChzZWxmKQotCiAKICAgICBjbGFzcyBUZXN0UE9QM19TU0xDbGFzcyhUZXN0UE9QM0NsYXNzKToKICAgICAgICAgIyByZXBlYXQgcHJldmlvdXMgdGVzdHMgYnkgdXNpbmcgcG9wbGliLlBPUDNfU1NMCkBAIC0zMTQsNiArMzc5LDM5IEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydElzKHNlbGYuY2xpZW50LnNvY2suY29udGV4dCwgY3R4KQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuY2xpZW50Lm5vb3AoKS5zdGFydHN3aXRoKGInK09LJykpCiAKKyAgICAgICAgZGVmIHRlc3Rfc3RscyhzZWxmKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHBvcGxpYi5lcnJvcl9wcm90bywgc2VsZi5jbGllbnQuc3RscykKKworICAgICAgICB0ZXN0X3N0bHNfY29udGV4dCA9IHRlc3Rfc3RscworCisgICAgICAgIGRlZiB0ZXN0X3N0bHNfY2FwYShzZWxmKToKKyAgICAgICAgICAgIGNhcGEgPSBzZWxmLmNsaWVudC5jYXBhKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoJ1NUTFMnIGluIGNhcGEua2V5cygpKQorCisKKyAgICBjbGFzcyBUZXN0UE9QM19UTFNDbGFzcyhUZXN0UE9QM0NsYXNzKToKKyAgICAgICAgIyByZXBlYXQgcHJldmlvdXMgdGVzdHMgYnkgdXNpbmcgcG9wbGliLlBPUDMuc3RscygpCisKKyAgICAgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBEdW1teVBPUDNTZXJ2ZXIoKEhPU1QsIFBPUlQpKQorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoKQorICAgICAgICAgICAgc2VsZi5jbGllbnQgPSBwb3BsaWIuUE9QMyhzZWxmLnNlcnZlci5ob3N0LCBzZWxmLnNlcnZlci5wb3J0LCB0aW1lb3V0PTMpCisgICAgICAgICAgICBzZWxmLmNsaWVudC5zdGxzKCkKKworICAgICAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICAgICBpZiBzZWxmLmNsaWVudC5maWxlIGlzIG5vdCBOb25lIGFuZCBzZWxmLmNsaWVudC5zb2NrIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYuY2xpZW50LnF1aXQoKQorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcCgpCisKKyAgICAgICAgZGVmIHRlc3Rfc3RscyhzZWxmKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHBvcGxpYi5lcnJvcl9wcm90bywgc2VsZi5jbGllbnQuc3RscykKKworICAgICAgICB0ZXN0X3N0bHNfY29udGV4dCA9IHRlc3Rfc3RscworCisgICAgICAgIGRlZiB0ZXN0X3N0bHNfY2FwYShzZWxmKToKKyAgICAgICAgICAgIGNhcGEgPSBzZWxmLmNsaWVudC5jYXBhKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYidTVExTJyBpbiBjYXBhLmtleXMoKSkKKwogCiBjbGFzcyBUZXN0VGltZW91dHMoVGVzdENhc2UpOgogCkBAIC0zNzMsNiArNDcxLDcgQEAKICAgICB0ZXN0cyA9IFtUZXN0UE9QM0NsYXNzLCBUZXN0VGltZW91dHNdCiAgICAgaWYgU1VQUE9SVFNfU1NMOgogICAgICAgICB0ZXN0cy5hcHBlbmQoVGVzdFBPUDNfU1NMQ2xhc3MpCisgICAgICAgIHRlc3RzLmFwcGVuZChUZXN0UE9QM19UTFNDbGFzcykKICAgICB0aHJlYWRfaW5mbyA9IHRlc3Rfc3VwcG9ydC50aHJlYWRpbmdfc2V0dXAoKQogICAgIHRyeToKICAgICAgICAgdGVzdF9zdXBwb3J0LnJ1bl91bml0dGVzdCgqdGVzdHMpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3Bvc2l4LnB5IGIvTGliL3Rlc3QvdGVzdF9wb3NpeC5weQppbmRleCA0ZDllMWY1Li40ODU2MDgzIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3Bvc2l4LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfcG9zaXgucHkKQEAgLTYwNyw3ICs2MDcsNyBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdC5zdF9mbGFncyB8IHN0YXQuVUZfSU1NVVRBQkxFLCBuZXdfc3Quc3RfZmxhZ3MpCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgZmQgPSBvcGVuKHRhcmdldF9maWxlLCAndysnKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmVycm5vLCBlcnJuby5FUEVSTSkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHBvc2l4LmNoZmxhZ3ModGFyZ2V0X2ZpbGUsIHN0LnN0X2ZsYWdzKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wb3NpeHBhdGgucHkgYi9MaWIvdGVzdC90ZXN0X3Bvc2l4cGF0aC5weQppbmRleCAwZTdkODY2Li40MTI4NDljIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3Bvc2l4cGF0aC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3Bvc2l4cGF0aC5weQpAQCAtMTg2LDYzICsxODYsNiBAQAogICAgICAgICAgICAgaWYgbm90IGYuY2xvc2UoKToKICAgICAgICAgICAgICAgICBmLmNsb3NlKCkKIAotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgX2NyZWF0ZV9maWxlKGZpbGVuYW1lKToKLSAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCAnd2InKSBhcyBmOgotICAgICAgICAgICAgZi53cml0ZShiJ2ZvbycpCi0KLSAgICBkZWYgdGVzdF9zYW1lZmlsZShzZWxmKToKLSAgICAgICAgdGVzdF9mbiA9IHN1cHBvcnQuVEVTVEZOICsgIjEiCi0gICAgICAgIHNlbGYuX2NyZWF0ZV9maWxlKHRlc3RfZm4pCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3NpeHBhdGguc2FtZWZpbGUodGVzdF9mbiwgdGVzdF9mbikpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgcG9zaXhwYXRoLnNhbWVmaWxlKQotCi0gICAgQHVuaXR0ZXN0LnNraXBJZigKLSAgICAgICAgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicpLAotICAgICAgICAicG9zaXhwYXRoLnNhbWVmaWxlIGRvZXMgbm90IHdvcmsgb24gbGlua3MgaW4gV2luZG93cyIpCi0gICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihvcywgInN5bWxpbmsiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiTWlzc2luZyBzeW1saW5rIGltcGxlbWVudGF0aW9uIikKLSAgICBkZWYgdGVzdF9zYW1lZmlsZV9vbl9saW5rcyhzZWxmKToKLSAgICAgICAgdGVzdF9mbjEgPSBzdXBwb3J0LlRFU1RGTiArICIxIgotICAgICAgICB0ZXN0X2ZuMiA9IHN1cHBvcnQuVEVTVEZOICsgIjIiCi0gICAgICAgIHNlbGYuX2NyZWF0ZV9maWxlKHRlc3RfZm4xKQotCi0gICAgICAgIG9zLnN5bWxpbmsodGVzdF9mbjEsIHRlc3RfZm4yKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocG9zaXhwYXRoLnNhbWVmaWxlKHRlc3RfZm4xLCB0ZXN0X2ZuMikpCi0gICAgICAgIG9zLnJlbW92ZSh0ZXN0X2ZuMikKLQotICAgICAgICBzZWxmLl9jcmVhdGVfZmlsZSh0ZXN0X2ZuMikKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwb3NpeHBhdGguc2FtZWZpbGUodGVzdF9mbjEsIHRlc3RfZm4yKSkKLQotCi0gICAgZGVmIHRlc3Rfc2FtZXN0YXQoc2VsZik6Ci0gICAgICAgIHRlc3RfZm4gPSBzdXBwb3J0LlRFU1RGTiArICIxIgotICAgICAgICBzZWxmLl9jcmVhdGVfZmlsZSh0ZXN0X2ZuKQotICAgICAgICB0ZXN0X2ZucyA9IFt0ZXN0X2ZuXSoyCi0gICAgICAgIHN0YXRzID0gbWFwKG9zLnN0YXQsIHRlc3RfZm5zKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocG9zaXhwYXRoLnNhbWVzdGF0KCpzdGF0cykpCi0KLSAgICBAdW5pdHRlc3Quc2tpcElmKAotICAgICAgICBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJyksCi0gICAgICAgICJwb3NpeHBhdGguc2FtZXN0YXQgZG9lcyBub3Qgd29yayBvbiBsaW5rcyBpbiBXaW5kb3dzIikKLSAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKG9zLCAic3ltbGluayIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICJNaXNzaW5nIHN5bWxpbmsgaW1wbGVtZW50YXRpb24iKQotICAgIGRlZiB0ZXN0X3NhbWVzdGF0X29uX2xpbmtzKHNlbGYpOgotICAgICAgICB0ZXN0X2ZuMSA9IHN1cHBvcnQuVEVTVEZOICsgIjEiCi0gICAgICAgIHRlc3RfZm4yID0gc3VwcG9ydC5URVNURk4gKyAiMiIKLSAgICAgICAgc2VsZi5fY3JlYXRlX2ZpbGUodGVzdF9mbjEpCi0gICAgICAgIHRlc3RfZm5zID0gKHRlc3RfZm4xLCB0ZXN0X2ZuMikKLSAgICAgICAgb3Muc3ltbGluaygqdGVzdF9mbnMpCi0gICAgICAgIHN0YXRzID0gbWFwKG9zLnN0YXQsIHRlc3RfZm5zKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocG9zaXhwYXRoLnNhbWVzdGF0KCpzdGF0cykpCi0gICAgICAgIG9zLnJlbW92ZSh0ZXN0X2ZuMikKLQotICAgICAgICBzZWxmLl9jcmVhdGVfZmlsZSh0ZXN0X2ZuMikKLSAgICAgICAgc3RhdHMgPSBtYXAob3Muc3RhdCwgdGVzdF9mbnMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocG9zaXhwYXRoLnNhbWVzdGF0KCpzdGF0cykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBwb3NpeHBhdGguc2FtZXN0YXQpCi0KICAgICBkZWYgdGVzdF9pc21vdW50KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydElzKHBvc2l4cGF0aC5pc21vdW50KCIvIiksIFRydWUpCiAgICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MoKToKQEAgLTU5NSwxMSArNTM4LDYgQEAKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIG9zLmdldGN3ZGIgPSByZWFsX2dldGN3ZGIKIAotICAgIGRlZiB0ZXN0X3NhbWVvcGVuZmlsZShzZWxmKToKLSAgICAgICAgZm5hbWUgPSBzdXBwb3J0LlRFU1RGTiArICIxIgotICAgICAgICB3aXRoIG9wZW4oZm5hbWUsICJ3YiIpIGFzIGEsIG9wZW4oZm5hbWUsICJ3YiIpIGFzIGI6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocG9zaXhwYXRoLnNhbWVvcGVuZmlsZShhLmZpbGVubygpLCBiLmZpbGVubygpKSkKLQogCiBjbGFzcyBQb3NpeENvbW1vblRlc3QodGVzdF9nZW5lcmljcGF0aC5Db21tb25UZXN0LCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgcGF0aG1vZHVsZSA9IHBvc2l4cGF0aApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wcHJpbnQucHkgYi9MaWIvdGVzdC90ZXN0X3BwcmludC5weQppbmRleCBkNDkyZDc1Li5iZjEzNmRlIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3BwcmludC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3BwcmludC5weQpAQCAtMSwzICsxLDUgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisKIGltcG9ydCBwcHJpbnQKIGltcG9ydCB0ZXN0LnN1cHBvcnQKIGltcG9ydCB1bml0dGVzdApAQCAtNDc1LDYgKzQ3Nyw0MiBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwcmludC5wZm9ybWF0KGRpY3QuZnJvbWtleXMoa2V5cywgMCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICd7JXI6IDAsICVyOiAwfScgJSB0dXBsZShzb3J0ZWQoa2V5cywga2V5PWlkKSkpCiAKKyAgICBkZWYgdGVzdF9zdHJfd3JhcChzZWxmKToKKyAgICAgICAgIyBwcHJpbnQgdHJpZXMgdG8gd3JhcCBzdHJpbmdzIGludGVsbGlnZW50bHkKKyAgICAgICAgZm94ID0gJ3RoZSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgYSBsYXp5IGRvZycKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcHJpbnQucGZvcm1hdChmb3gsIHdpZHRoPTIwKSwgIiIiXAorJ3RoZSBxdWljayBicm93biAnCisnZm94IGp1bXBlZCBvdmVyICcKKydhIGxhenkgZG9nJyIiIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcHJpbnQucGZvcm1hdCh7J2EnOiAxLCAnYic6IGZveCwgJ2MnOiAyfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0yNiksICIiIlwKK3snYSc6IDEsCisgJ2InOiAndGhlIHF1aWNrIGJyb3duICcKKyAgICAgICdmb3gganVtcGVkIG92ZXIgJworICAgICAgJ2EgbGF6eSBkb2cnLAorICdjJzogMn0iIiIpCisgICAgICAgICMgV2l0aCBzb21lIHNwZWNpYWwgY2hhcmFjdGVycworICAgICAgICAjIC0gXG4gYWx3YXlzIHRyaWdnZXJzIGEgbmV3IGxpbmUgaW4gdGhlIHBwcmludAorICAgICAgICAjIC0gXHQgYW5kIFxuIGFyZSBlc2NhcGVkCisgICAgICAgICMgLSBub24tQVNDSUkgaXMgYWxsb3dlZAorICAgICAgICAjIC0gYW4gYXBvc3Ryb3BoZSBkb2Vzbid0IGRpc3J1cHQgdGhlIHBwcmludAorICAgICAgICBzcGVjaWFsID0gIlBvcnRvbnMgZGl4IGJvbnMgXCJ3aGlza3lzXCJcbsOgIGwnYXZvY2F0IGdvdWphdFx0IHF1aSBmdW1haXQgYXUgem9vIgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwcmludC5wZm9ybWF0KHNwZWNpYWwsIHdpZHRoPTIwKSwgIiIiXAorJ1BvcnRvbnMgZGl4IGJvbnMgJworJyJ3aGlza3lzIlxcbicKKyLDoCBsJ2F2b2NhdCAiCisnZ291amF0XFx0IHF1aSAnCisnZnVtYWl0IGF1IHpvbyciIiIpCisgICAgICAgICMgQW4gdW53cmFwcGFibGUgc3RyaW5nIGlzIGZvcm1hdHRlZCBhcyBpdHMgcmVwcgorICAgICAgICB1bndyYXBwYWJsZSA9ICJ4IiAqIDEwMAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwcmludC5wZm9ybWF0KHVud3JhcHBhYmxlLCB3aWR0aD04MCksIHJlcHIodW53cmFwcGFibGUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwcmludC5wZm9ybWF0KCcnKSwgIicnIikKKyAgICAgICAgIyBDaGVjayB0aGF0IHRoZSBwcHJpbnQgaXMgYSB1c2FibGUgcmVwcgorICAgICAgICBzcGVjaWFsICo9IDEwCisgICAgICAgIGZvciB3aWR0aCBpbiByYW5nZSgzLCA0MCk6CisgICAgICAgICAgICBmb3JtYXR0ZWQgPSBwcHJpbnQucGZvcm1hdChzcGVjaWFsLCB3aWR0aD13aWR0aCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZhbCgiKCIgKyBmb3JtYXR0ZWQgKyAiKSIpLCBzcGVjaWFsKQorCiAKIGNsYXNzIERvdHRlZFByZXR0eVByaW50ZXIocHByaW50LlByZXR0eVByaW50ZXIpOgogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3ByaW50LnB5IGIvTGliL3Rlc3QvdGVzdF9wcmludC5weQppbmRleCA5ZDZkYmVhLi43ZWVhMzQ5IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3ByaW50LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfcHJpbnQucHkKQEAgLTEsNjIgKzEsNTUgQEAKLSIiIlRlc3QgY29ycmVjdCBvcGVyYXRpb24gb2YgdGhlIHByaW50IGZ1bmN0aW9uLgotIiIiCi0KLSMgSW4gMi42LCB0aGlzIGdpdmVzIHVzIHRoZSBiZWhhdmlvciB3ZSB3YW50LiAgSW4gMy4wLCBpdCBoYXMKLSMgIG5vIGZ1bmN0aW9uLCBidXQgaXQgc3RpbGwgbXVzdCBwYXJzZSBjb3JyZWN0bHkuCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCi0KIGltcG9ydCB1bml0dGVzdAotZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0Citmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwogCi10cnk6Ci0gICAgIyAzLngKLSAgICBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwotZXhjZXB0IEltcG9ydEVycm9yOgotICAgICMgMi54Ci0gICAgZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KK2Zyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAogCiBOb3REZWZpbmVkID0gb2JqZWN0KCkKIAogIyBBIGRpc3BhdGNoIHRhYmxlIGFsbCA4IGNvbWJpbmF0aW9ucyBvZiBwcm92aWRpbmcKLSMgIHNlcCwgZW5kLCBhbmQgZmlsZQorIyBzZXAsIGVuZCwgYW5kIGZpbGUuCiAjIEkgdXNlIHRoaXMgbWFjaGluZXJ5IHNvIHRoYXQgSSdtIG5vdCBqdXN0IHBhc3NpbmcgZGVmYXVsdAotIyAgdmFsdWVzIHRvIHByaW50LCBJJ20gZWl0aGVyIHBhc3Npbmcgb3Igbm90IHBhc3NpbmcgaW4gdGhlCi0jICBhcmd1bWVudHMKKyMgdmFsdWVzIHRvIHByaW50LCBJJ20gZWl0aGVyIHBhc3Npbmcgb3Igbm90IHBhc3NpbmcgaW4gdGhlCisjIGFyZ3VtZW50cy4KIGRpc3BhdGNoID0gewogICAgIChGYWxzZSwgRmFsc2UsIEZhbHNlKToKLSAgICAgbGFtYmRhIGFyZ3MsIHNlcCwgZW5kLCBmaWxlOiBwcmludCgqYXJncyksCisgICAgICAgIGxhbWJkYSBhcmdzLCBzZXAsIGVuZCwgZmlsZTogcHJpbnQoKmFyZ3MpLAogICAgIChGYWxzZSwgRmFsc2UsIFRydWUpOgotICAgICBsYW1iZGEgYXJncywgc2VwLCBlbmQsIGZpbGU6IHByaW50KGZpbGU9ZmlsZSwgKmFyZ3MpLAorICAgICAgICBsYW1iZGEgYXJncywgc2VwLCBlbmQsIGZpbGU6IHByaW50KGZpbGU9ZmlsZSwgKmFyZ3MpLAogICAgIChGYWxzZSwgVHJ1ZSwgIEZhbHNlKToKLSAgICAgbGFtYmRhIGFyZ3MsIHNlcCwgZW5kLCBmaWxlOiBwcmludChlbmQ9ZW5kLCAqYXJncyksCisgICAgICAgIGxhbWJkYSBhcmdzLCBzZXAsIGVuZCwgZmlsZTogcHJpbnQoZW5kPWVuZCwgKmFyZ3MpLAogICAgIChGYWxzZSwgVHJ1ZSwgIFRydWUpOgotICAgICBsYW1iZGEgYXJncywgc2VwLCBlbmQsIGZpbGU6IHByaW50KGVuZD1lbmQsIGZpbGU9ZmlsZSwgKmFyZ3MpLAorICAgICAgICBsYW1iZGEgYXJncywgc2VwLCBlbmQsIGZpbGU6IHByaW50KGVuZD1lbmQsIGZpbGU9ZmlsZSwgKmFyZ3MpLAogICAgIChUcnVlLCAgRmFsc2UsIEZhbHNlKToKLSAgICAgbGFtYmRhIGFyZ3MsIHNlcCwgZW5kLCBmaWxlOiBwcmludChzZXA9c2VwLCAqYXJncyksCisgICAgICAgIGxhbWJkYSBhcmdzLCBzZXAsIGVuZCwgZmlsZTogcHJpbnQoc2VwPXNlcCwgKmFyZ3MpLAogICAgIChUcnVlLCAgRmFsc2UsIFRydWUpOgotICAgICBsYW1iZGEgYXJncywgc2VwLCBlbmQsIGZpbGU6IHByaW50KHNlcD1zZXAsIGZpbGU9ZmlsZSwgKmFyZ3MpLAorICAgICAgICBsYW1iZGEgYXJncywgc2VwLCBlbmQsIGZpbGU6IHByaW50KHNlcD1zZXAsIGZpbGU9ZmlsZSwgKmFyZ3MpLAogICAgIChUcnVlLCAgVHJ1ZSwgIEZhbHNlKToKLSAgICAgbGFtYmRhIGFyZ3MsIHNlcCwgZW5kLCBmaWxlOiBwcmludChzZXA9c2VwLCBlbmQ9ZW5kLCAqYXJncyksCisgICAgICAgIGxhbWJkYSBhcmdzLCBzZXAsIGVuZCwgZmlsZTogcHJpbnQoc2VwPXNlcCwgZW5kPWVuZCwgKmFyZ3MpLAogICAgIChUcnVlLCAgVHJ1ZSwgIFRydWUpOgotICAgICBsYW1iZGEgYXJncywgc2VwLCBlbmQsIGZpbGU6IHByaW50KHNlcD1zZXAsIGVuZD1lbmQsIGZpbGU9ZmlsZSwgKmFyZ3MpLAotICAgIH0KKyAgICAgICAgbGFtYmRhIGFyZ3MsIHNlcCwgZW5kLCBmaWxlOiBwcmludChzZXA9c2VwLCBlbmQ9ZW5kLCBmaWxlPWZpbGUsICphcmdzKSwKK30KKwogCiAjIENsYXNzIHVzZWQgdG8gdGVzdCBfX3N0cl9fIGFuZCBwcmludAogY2xhc3MgQ2xhc3NXaXRoX19zdHJfXzoKICAgICBkZWYgX19pbml0X18oc2VsZiwgeCk6CiAgICAgICAgIHNlbGYueCA9IHgKKwogICAgIGRlZiBfX3N0cl9fKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi54CiAKLWNsYXNzIFRlc3RQcmludCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgZGVmIGNoZWNrKHNlbGYsIGV4cGVjdGVkLCBhcmdzLAotICAgICAgICAgICAgc2VwPU5vdERlZmluZWQsIGVuZD1Ob3REZWZpbmVkLCBmaWxlPU5vdERlZmluZWQpOgotICAgICAgICAjIENhcHR1cmUgc3lzLnN0ZG91dCBpbiBhIFN0cmluZ0lPLiAgQ2FsbCBwcmludCB3aXRoIGFyZ3MsCi0gICAgICAgICMgIGFuZCB3aXRoIHNlcCwgZW5kLCBhbmQgZmlsZSwgaWYgdGhleSdyZSBkZWZpbmVkLiAgUmVzdWx0Ci0gICAgICAgICMgIG11c3QgbWF0Y2ggZXhwZWN0ZWQuCiAKLSAgICAgICAgIyBMb29rIHVwIHRoZSBhY3R1YWwgZnVuY3Rpb24gdG8gY2FsbCwgYmFzZWQgb24gaWYgc2VwLCBlbmQsIGFuZCBmaWxlCi0gICAgICAgICMgIGFyZSBkZWZpbmVkCitjbGFzcyBUZXN0UHJpbnQodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIlRlc3QgY29ycmVjdCBvcGVyYXRpb24gb2YgdGhlIHByaW50IGZ1bmN0aW9uLiIiIgorCisgICAgZGVmIGNoZWNrKHNlbGYsIGV4cGVjdGVkLCBhcmdzLAorICAgICAgICAgICAgICBzZXA9Tm90RGVmaW5lZCwgZW5kPU5vdERlZmluZWQsIGZpbGU9Tm90RGVmaW5lZCk6CisgICAgICAgICMgQ2FwdHVyZSBzeXMuc3Rkb3V0IGluIGEgU3RyaW5nSU8uICBDYWxsIHByaW50IHdpdGggYXJncywKKyAgICAgICAgIyBhbmQgd2l0aCBzZXAsIGVuZCwgYW5kIGZpbGUsIGlmIHRoZXkncmUgZGVmaW5lZC4gIFJlc3VsdAorICAgICAgICAjIG11c3QgbWF0Y2ggZXhwZWN0ZWQuCisKKyAgICAgICAgIyBMb29rIHVwIHRoZSBhY3R1YWwgZnVuY3Rpb24gdG8gY2FsbCwgYmFzZWQgb24gaWYgc2VwLCBlbmQsCisgICAgICAgICMgYW5kIGZpbGUgYXJlIGRlZmluZWQuCiAgICAgICAgIGZuID0gZGlzcGF0Y2hbKHNlcCBpcyBub3QgTm90RGVmaW5lZCwKICAgICAgICAgICAgICAgICAgICAgICAgZW5kIGlzIG5vdCBOb3REZWZpbmVkLAogICAgICAgICAgICAgICAgICAgICAgICBmaWxlIGlzIG5vdCBOb3REZWZpbmVkKV0KQEAgLTY5LDcgKzYyLDcgQEAKICAgICBkZWYgdGVzdF9wcmludChzZWxmKToKICAgICAgICAgZGVmIHgoZXhwZWN0ZWQsIGFyZ3MsIHNlcD1Ob3REZWZpbmVkLCBlbmQ9Tm90RGVmaW5lZCk6CiAgICAgICAgICAgICAjIFJ1biB0aGUgdGVzdCAyIHdheXM6IG5vdCB1c2luZyBmaWxlLCBhbmQgdXNpbmcKLSAgICAgICAgICAgICMgIGZpbGUgZGlyZWN0ZWQgdG8gYSBTdHJpbmdJTworICAgICAgICAgICAgIyBmaWxlIGRpcmVjdGVkIHRvIGEgU3RyaW5nSU8uCiAKICAgICAgICAgICAgIHNlbGYuY2hlY2soZXhwZWN0ZWQsIGFyZ3MsIHNlcD1zZXAsIGVuZD1lbmQpCiAKQEAgLTEwMSwxMSArOTQsNiBAQAogICAgICAgICB4KCcqXG4nLCAoQ2xhc3NXaXRoX19zdHJfXygnKicpLCkpCiAgICAgICAgIHgoJ2FiYyAxXG4nLCAoQ2xhc3NXaXRoX19zdHJfXygnYWJjJyksIDEpKQogCi0jICAgICAgICAjIDIueCB1bmljb2RlIHRlc3RzCi0jICAgICAgICB4KHUnMSAyXG4nLCAoJzEnLCB1JzInKSkKLSMgICAgICAgIHgodSd1XDEyMzRcbicsICh1J3VcMTIzNCcsKSkKLSMgICAgICAgIHgodScgIGFiYyAxXG4nLCAoJyAnLCBDbGFzc1dpdGhfX3N0cl9fKHUnYWJjJyksIDEpKQotCiAgICAgICAgICMgZXJyb3JzCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgcHJpbnQsICcnLCBzZXA9MykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBwcmludCwgJycsIGVuZD0zKQpAQCAtMTEzLDEyICsxMDEsMTQgQEAKIAogICAgIGRlZiB0ZXN0X3ByaW50X2ZsdXNoKHNlbGYpOgogICAgICAgICAjIG9wZXJhdGlvbiBvZiB0aGUgZmx1c2ggZmxhZwotICAgICAgICBjbGFzcyBmaWxlbGlrZSgpOgorICAgICAgICBjbGFzcyBmaWxlbGlrZToKICAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgICAgICAgICBzZWxmLndyaXR0ZW4gPSAnJwogICAgICAgICAgICAgICAgIHNlbGYuZmx1c2hlZCA9IDAKKwogICAgICAgICAgICAgZGVmIHdyaXRlKHNlbGYsIHN0cik6CiAgICAgICAgICAgICAgICAgc2VsZi53cml0dGVuICs9IHN0cgorCiAgICAgICAgICAgICBkZWYgZmx1c2goc2VsZik6CiAgICAgICAgICAgICAgICAgc2VsZi5mbHVzaGVkICs9IDEKIApAQCAtMTMwLDE1ICsxMjAsMTMgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLmZsdXNoZWQsIDIpCiAKICAgICAgICAgIyBlbnN1cmUgZXhjZXB0aW9ucyBmcm9tIGZsdXNoIGFyZSBwYXNzZWQgdGhyb3VnaAotICAgICAgICBjbGFzcyBub2ZsdXNoKCk6CisgICAgICAgIGNsYXNzIG5vZmx1c2g6CiAgICAgICAgICAgICBkZWYgd3JpdGUoc2VsZiwgc3RyKToKICAgICAgICAgICAgICAgICBwYXNzCisKICAgICAgICAgICAgIGRlZiBmbHVzaChzZWxmKToKICAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBwcmludCwgMSwgZmlsZT1ub2ZsdXNoKCksIGZsdXNoPVRydWUpCiAKLWRlZiB0ZXN0X21haW4oKToKLSAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChUZXN0UHJpbnQpCi0KIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Ci0gICAgdGVzdF9tYWluKCkKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcHJvZmlsZS5weSBiL0xpYi90ZXN0L3Rlc3RfcHJvZmlsZS5weQppbmRleCBjZDdlYzU4Li4xZmMzYzQyIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3Byb2ZpbGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9wcm9maWxlLnB5CkBAIC0zLDkgKzMsMTEgQEAKIGltcG9ydCBzeXMKIGltcG9ydCBwc3RhdHMKIGltcG9ydCB1bml0dGVzdAoraW1wb3J0IG9zCiBmcm9tIGRpZmZsaWIgaW1wb3J0IHVuaWZpZWRfZGlmZgogZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8KLWZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBydW5fdW5pdHRlc3QKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBURVNURk4sIHJ1bl91bml0dGVzdCwgdW5saW5rCitmcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRtYW5hZ2VyCiAKIGltcG9ydCBwcm9maWxlCiBmcm9tIHRlc3QucHJvZmlsZWUgaW1wb3J0IHRlc3RmdW5jLCB0aW1lcgpAQCAtMTQsOSArMTYsMTMgQEAKIGNsYXNzIFByb2ZpbGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIHByb2ZpbGVyY2xhc3MgPSBwcm9maWxlLlByb2ZpbGUKKyAgICBwcm9maWxlcm1vZHVsZSA9IHByb2ZpbGUKICAgICBtZXRob2RuYW1lcyA9IFsncHJpbnRfc3RhdHMnLCAncHJpbnRfY2FsbGVycycsICdwcmludF9jYWxsZWVzJ10KICAgICBleHBlY3RlZF9tYXhfb3V0cHV0ID0gJzowKG1heCknCiAKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHVubGluayhURVNURk4pCisKICAgICBkZWYgZ2V0X2V4cGVjdGVkX291dHB1dChzZWxmKToKICAgICAgICAgcmV0dXJuIF9Qcm9maWxlT3V0cHV0CiAKQEAgLTc0LDYgKzgwLDE5IEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYuZXhwZWN0ZWRfbWF4X291dHB1dCwgcmVzLAogICAgICAgICAgICAgICAgICJQcm9maWxpbmcgezAhcn0gZGlkbid0IHJlcG9ydCBtYXg6XG57MX0iLmZvcm1hdChzdG10LCByZXMpKQogCisgICAgZGVmIHRlc3RfcnVuKHNlbGYpOgorICAgICAgICB3aXRoIHNpbGVudCgpOgorICAgICAgICAgICAgc2VsZi5wcm9maWxlcm1vZHVsZS5ydW4oImludCgnMScpIikKKyAgICAgICAgc2VsZi5wcm9maWxlcm1vZHVsZS5ydW4oImludCgnMScpIiwgZmlsZW5hbWU9VEVTVEZOKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5leGlzdHMoVEVTVEZOKSkKKworICAgIGRlZiB0ZXN0X3J1bmN0eChzZWxmKToKKyAgICAgICAgd2l0aCBzaWxlbnQoKToKKyAgICAgICAgICAgIHNlbGYucHJvZmlsZXJtb2R1bGUucnVuY3R4KCJ0ZXN0ZnVuYygpIiwgZ2xvYmFscygpLCBsb2NhbHMoKSkKKyAgICAgICAgc2VsZi5wcm9maWxlcm1vZHVsZS5ydW5jdHgoInRlc3RmdW5jKCkiLCBnbG9iYWxzKCksIGxvY2FscygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lPVRFU1RGTikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguZXhpc3RzKFRFU1RGTikpCisKIAogZGVmIHJlZ2VuZXJhdGVfZXhwZWN0ZWRfb3V0cHV0KGZpbGVuYW1lLCBjbHMpOgogICAgIGZpbGVuYW1lID0gZmlsZW5hbWUucnN0cmlwKCdjbycpCkBAIC05NSw2ICsxMTQsMTQgQEAKICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLCByZXN1bHRzW2krMV0pKQogICAgICAgICBmLndyaXRlKCdcbmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6XG4gICAgbWFpbigpXG4nKQogCitAY29udGV4dG1hbmFnZXIKK2RlZiBzaWxlbnQoKToKKyAgICBzdGRvdXQgPSBzeXMuc3Rkb3V0CisgICAgdHJ5OgorICAgICAgICBzeXMuc3Rkb3V0ID0gU3RyaW5nSU8oKQorICAgICAgICB5aWVsZAorICAgIGZpbmFsbHk6CisgICAgICAgIHN5cy5zdGRvdXQgPSBzdGRvdXQKIAogZGVmIHRlc3RfbWFpbigpOgogICAgIHJ1bl91bml0dGVzdChQcm9maWxlVGVzdCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcHR5LnB5IGIvTGliL3Rlc3QvdGVzdF9wdHkucHkKaW5kZXggMjkyOTdmOC4uODkxNjg2MSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9wdHkucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9wdHkucHkKQEAgLTE4Nyw3ICsxODcsNyBAQAogICAgICAgICAgICAgIyNkZWJ1ZygiUmVhZGluZyBmcm9tIG1hc3Rlcl9mZCBub3cgdGhhdCB0aGUgY2hpbGQgaGFzIGV4aXRlZCIpCiAgICAgICAgICAgICAjI3RyeToKICAgICAgICAgICAgICMjICAgIHMxID0gb3MucmVhZChtYXN0ZXJfZmQsIDEwMjQpCi0gICAgICAgICAgICAjI2V4Y2VwdCBvcy5lcnJvcjoKKyAgICAgICAgICAgICMjZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAjIyAgICBwYXNzCiAgICAgICAgICAgICAjI2Vsc2U6CiAgICAgICAgICAgICAjIyAgICByYWlzZSBUZXN0RmFpbGVkKCJSZWFkIGZyb20gbWFzdGVyX2ZkIGRpZCBub3QgcmFpc2UgZXhjZXB0aW9uIikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcHlfY29tcGlsZS5weSBiL0xpYi90ZXN0L3Rlc3RfcHlfY29tcGlsZS5weQppbmRleCBmM2MxYTZhLi5lMTc5NTU0IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3B5X2NvbXBpbGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9weV9jb21waWxlLnB5CkBAIC0yLDYgKzIsNyBAQAogaW1wb3J0IG9zCiBpbXBvcnQgcHlfY29tcGlsZQogaW1wb3J0IHNodXRpbAoraW1wb3J0IHN0YXQKIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHVuaXR0ZXN0CiAKQEAgLTU0LDggKzU1LDIwIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmV4aXN0cyhzZWxmLnB5Y19wYXRoKSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcy5wYXRoLmV4aXN0cyhzZWxmLmNhY2hlX3BhdGgpKQogCi1kZWYgdGVzdF9tYWluKCk6Ci0gICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoUHlDb21waWxlVGVzdHMpCisgICAgQHVuaXR0ZXN0LnNraXBJZihvcy5uYW1lID09ICdudCcsCisgICAgICAgICAgICAgICAgICAgICAnY2Fubm90IGNvbnRyb2wgZGlyZWN0b3J5IHBlcm1pc3Npb25zIG9uIFdpbmRvd3MnKQorICAgIGRlZiB0ZXN0X2V4Y2VwdGlvbnNfcHJvcGFnYXRlKHNlbGYpOgorICAgICAgICAjIE1ha2Ugc3VyZSB0aGF0IGV4Y2VwdGlvbnMgcmFpc2VkIHRoYW5rcyB0byBpc3N1ZXMgd2l0aCB3cml0aW5nCisgICAgICAgICMgYnl0ZWNvZGUuCisgICAgICAgICMgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTE3MjQ0CisgICAgICAgIG1vZGUgPSBvcy5zdGF0KHNlbGYuZGlyZWN0b3J5KQorICAgICAgICBvcy5jaG1vZChzZWxmLmRpcmVjdG9yeSwgc3RhdC5TX0lSRUFEKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IpOgorICAgICAgICAgICAgICAgIHB5X2NvbXBpbGUuY29tcGlsZShzZWxmLnNvdXJjZV9wYXRoLCBzZWxmLnB5Y19wYXRoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MuY2htb2Qoc2VsZi5kaXJlY3RvcnksIG1vZGUuc3RfbW9kZSkKKwogCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgIHRlc3RfbWFpbigpCisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3B5ZG9jLnB5IGIvTGliL3Rlc3QvdGVzdF9weWRvYy5weQppbmRleCBjZGNjNzA3Li4zOTlmODE4IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3B5ZG9jLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfcHlkb2MucHkKQEAgLTI5LDEwICsyOSw2IEBACiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgdGhyZWFkaW5nID0gTm9uZQogCi0jIEp1c3QgaW4gY2FzZSBzeXMubW9kdWxlc1sidGVzdCJdIGhhcyB0aGUgb3B0aW9uYWwgYXR0cmlidXRlIF9fbG9hZGVyX18uCi1pZiBoYXNhdHRyKHB5ZG9jX21vZCwgIl9fbG9hZGVyX18iKToKLSAgICBkZWwgcHlkb2NfbW9kLl9fbG9hZGVyX18KLQogaWYgdGVzdC5zdXBwb3J0LkhBVkVfRE9DU1RSSU5HUzoKICAgICBleHBlY3RlZF9kYXRhX2RvY3N0cmluZ3MgPSAoCiAgICAgICAgICdkaWN0aW9uYXJ5IGZvciBpbnN0YW5jZSB2YXJpYWJsZXMgKGlmIGRlZmluZWQpJywKQEAgLTQyMSw2ICs0MTcsMzEgQEAKICAgICAgICAgICAgIHN5bm9wc2lzID0gcHlkb2Muc3lub3BzaXMoVEVTVEZOLCB7fSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3lub3BzaXMsICdsaW5lIDE6IGhceGU5JykKIAorICAgIGRlZiB0ZXN0X3NwbGl0ZG9jX3dpdGhfZGVzY3JpcHRpb24oc2VsZik6CisgICAgICAgIGV4YW1wbGVfc3RyaW5nID0gIkkgQW0gQSBEb2NcblxuXG5IZXJlIGlzIG15IGRlc2NyaXB0aW9uIgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB5ZG9jLnNwbGl0ZG9jKGV4YW1wbGVfc3RyaW5nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoJ0kgQW0gQSBEb2MnLCAnXG5IZXJlIGlzIG15IGRlc2NyaXB0aW9uJykpCisKKyAgICBkZWYgdGVzdF9pc19vYmplY3Rfb3JfbWV0aG9kKHNlbGYpOgorICAgICAgICBkb2MgPSBweWRvYy5Eb2MoKQorICAgICAgICAjIEJvdW5kIE1ldGhvZAorICAgICAgICBzZWxmLmFzc2VydFRydWUocHlkb2MuX2lzX3NvbWVfbWV0aG9kKGRvYy5mYWlsKSkKKyAgICAgICAgIyBNZXRob2QgRGVzY3JpcHRvcgorICAgICAgICBzZWxmLmFzc2VydFRydWUocHlkb2MuX2lzX3NvbWVfbWV0aG9kKGludC5fX2FkZF9fKSkKKyAgICAgICAgIyBTdHJpbmcKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShweWRvYy5faXNfc29tZV9tZXRob2QoIkkgYW0gbm90IGEgbWV0aG9kIikpCisKKyAgICBkZWYgdGVzdF9pc19wYWNrYWdlX3doZW5fbm90X3BhY2thZ2Uoc2VsZik6CisgICAgICAgIHdpdGggdGVzdC5zdXBwb3J0LnRlbXBfY3dkKCkgYXMgdGVzdF9kaXI6CisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHB5ZG9jLmlzcGFja2FnZSh0ZXN0X2RpcikpCisKKyAgICBkZWYgdGVzdF9pc19wYWNrYWdlX3doZW5faXNfcGFja2FnZShzZWxmKToKKyAgICAgICAgd2l0aCB0ZXN0LnN1cHBvcnQudGVtcF9jd2QoKSBhcyB0ZXN0X2RpcjoKKyAgICAgICAgICAgIGluaXRfcGF0aCA9IG9zLnBhdGguam9pbih0ZXN0X2RpciwgJ19faW5pdF9fLnB5JykKKyAgICAgICAgICAgIG9wZW4oaW5pdF9wYXRoLCAndycpLmNsb3NlKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShweWRvYy5pc3BhY2thZ2UodGVzdF9kaXIpKQorICAgICAgICAgICAgb3MucmVtb3ZlKGluaXRfcGF0aCkKKwogICAgIGRlZiB0ZXN0X2FsbG1ldGhvZHMoc2VsZik6CiAgICAgICAgICMgaXNzdWUgMTc0NzY6IGFsbG1ldGhvZHMgd2FzIG5vIGxvbmdlciByZXR1cm5pbmcgdW5ib3VuZCBtZXRob2RzLgogICAgICAgICAjIFRoaXMgdGVzdCBpcyBhIGJpdCBmcmFnaWxlIGluIHRoZSBmYWNlIG9mIGNoYW5nZXMgdG8gb2JqZWN0IGFuZCB0eXBlLApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9yYW5kb20ucHkgYi9MaWIvdGVzdC90ZXN0X3JhbmRvbS5weQppbmRleCBmYWNkZGIxLi40OWEzZjdiIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3JhbmRvbS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3JhbmRvbS5weQpAQCAtMSwxMCArMSwxMiBAQAogIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwogCiBpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB1bml0dGVzdC5tb2NrCiBpbXBvcnQgcmFuZG9tCiBpbXBvcnQgdGltZQogaW1wb3J0IHBpY2tsZQogaW1wb3J0IHdhcm5pbmdzCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgcGFydGlhbAogZnJvbSBtYXRoIGltcG9ydCBsb2csIGV4cCwgcGksIGZzdW0sIHNpbgogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiAKQEAgLTQ2LDYgKzQ4LDQ4IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5nZW4uc2VlZCwgMSwgMiwgMywgNCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB0eXBlKHNlbGYuZ2VuKSwgW10pCiAKKyAgICBAdW5pdHRlc3QubW9jay5wYXRjaCgncmFuZG9tLl91cmFuZG9tJykgIyBvcy51cmFuZG9tCisgICAgZGVmIHRlc3Rfc2VlZF93aGVuX3JhbmRvbW5lc3Nfc291cmNlX25vdF9mb3VuZChzZWxmLCB1cmFuZG9tX21vY2spOgorICAgICAgICAjIFJhbmRvbS5zZWVkKCkgdXNlcyB0aW1lLnRpbWUoKSB3aGVuIGFuIG9wZXJhdGluZyBzeXN0ZW0gc3BlY2lmaWMKKyAgICAgICAgIyByYW5kb21uZXNzIHNvdXJjZSBpcyBub3QgZm91bmQuIFRvIHRlc3QgdGhpcyBvbiBtYWNoaW5lcyB3ZXJlIGl0CisgICAgICAgICMgZXhpc3RzLCBydW4gdGhlIGFib3ZlIHRlc3QsIHRlc3Rfc2VlZGFyZ3MoKSwgYWdhaW4gYWZ0ZXIgbW9ja2luZworICAgICAgICAjIG9zLnVyYW5kb20oKSBzbyB0aGF0IGl0IHJhaXNlcyB0aGUgZXhjZXB0aW9uIGV4cGVjdGVkIHdoZW4gdGhlCisgICAgICAgICMgcmFuZG9tbmVzcyBzb3VyY2UgaXMgbm90IGF2YWlsYWJsZS4KKyAgICAgICAgdXJhbmRvbV9tb2NrLnNpZGVfZWZmZWN0ID0gTm90SW1wbGVtZW50ZWRFcnJvcgorICAgICAgICBzZWxmLnRlc3Rfc2VlZGFyZ3MoKQorCisgICAgZGVmIHRlc3Rfc2h1ZmZsZShzZWxmKToKKyAgICAgICAgc2h1ZmZsZSA9IHNlbGYuZ2VuLnNodWZmbGUKKyAgICAgICAgbHN0ID0gW10KKyAgICAgICAgc2h1ZmZsZShsc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobHN0LCBbXSkKKyAgICAgICAgbHN0ID0gWzM3XQorICAgICAgICBzaHVmZmxlKGxzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsc3QsIFszN10pCisgICAgICAgIHNlcXMgPSBbbGlzdChyYW5nZShuKSkgZm9yIG4gaW4gcmFuZ2UoMTApXQorICAgICAgICBzaHVmZmxlZF9zZXFzID0gW2xpc3QocmFuZ2UobikpIGZvciBuIGluIHJhbmdlKDEwKV0KKyAgICAgICAgZm9yIHNodWZmbGVkX3NlcSBpbiBzaHVmZmxlZF9zZXFzOgorICAgICAgICAgICAgc2h1ZmZsZShzaHVmZmxlZF9zZXEpCisgICAgICAgIGZvciAoc2VxLCBzaHVmZmxlZF9zZXEpIGluIHppcChzZXFzLCBzaHVmZmxlZF9zZXFzKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlcSksIGxlbihzaHVmZmxlZF9zZXEpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQoc2VxKSwgc2V0KHNodWZmbGVkX3NlcSkpCisgICAgICAgICMgVGhlIGFib3ZlIHRlc3RzIGFsbCB3b3VsZCBwYXNzIGlmIHRoZSBzaHVmZmxlIHdhcyBhCisgICAgICAgICMgbm8tb3AuIFRoZSBmb2xsb3dpbmcgbm9uLWRldGVybWluaXN0aWMgdGVzdCBjb3ZlcnMgdGhhdC4gIEl0CisgICAgICAgICMgYXNzZXJ0cyB0aGF0IHRoZSBzaHVmZmxlZCBzZXF1ZW5jZSBvZiAxMDAwIGRpc3RpbmN0IGVsZW1lbnRzCisgICAgICAgICMgbXVzdCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgb25lLiBBbHRob3VnaCB0aGVyZSBpcworICAgICAgICAjIG1hdGhlbWF0aWNhbGx5IGEgbm9uLXplcm8gcHJvYmFiaWxpdHkgdGhhdCB0aGlzIGNvdWxkCisgICAgICAgICMgYWN0dWFsbHkgaGFwcGVuIGluIGEgZ2VudWluZWx5IHJhbmRvbSBzaHVmZmxlLCBpdCBpcworICAgICAgICAjIGNvbXBsZXRlbHkgbmVnbGlnaWJsZSwgZ2l2ZW4gdGhhdCB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlCisgICAgICAgICMgcGVybXV0YXRpb25zIG9mIDEwMDAgb2JqZWN0cyBpcyAxMDAwISAoZmFjdG9yaWFsIG9mIDEwMDApLAorICAgICAgICAjIHdoaWNoIGlzIGNvbnNpZGVyYWJseSBsYXJnZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGF0b21zIGluIHRoZQorICAgICAgICAjIHVuaXZlcnNlLi4uCisgICAgICAgIGxzdCA9IGxpc3QocmFuZ2UoMTAwMCkpCisgICAgICAgIHNodWZmbGVkX2xzdCA9IGxpc3QocmFuZ2UoMTAwMCkpCisgICAgICAgIHNodWZmbGUoc2h1ZmZsZWRfbHN0KQorICAgICAgICBzZWxmLmFzc2VydFRydWUobHN0ICE9IHNodWZmbGVkX2xzdCkKKyAgICAgICAgc2h1ZmZsZShsc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsc3QgIT0gc2h1ZmZsZWRfbHN0KQorCiAgICAgZGVmIHRlc3RfY2hvaWNlKHNlbGYpOgogICAgICAgICBjaG9pY2UgPSBzZWxmLmdlbi5jaG9pY2UKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbmRleEVycm9yKToKQEAgLTY1LDYgKzEwOSw4IEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih1bmlxKSwgaykKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh1bmlxIDw9IHNldChwb3B1bGF0aW9uKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmdlbi5zYW1wbGUoW10sIDApLCBbXSkgICMgdGVzdCBlZGdlIGNhc2UgTj09az09MAorICAgICAgICAjIEV4Y2VwdGlvbiByYWlzZWQgaWYgc2l6ZSBvZiBzYW1wbGUgZXhjZWVkcyB0aGF0IG9mIHBvcHVsYXRpb24KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2VsZi5nZW4uc2FtcGxlLCBwb3B1bGF0aW9uLCBOKzEpCiAKICAgICBkZWYgdGVzdF9zYW1wbGVfZGlzdHJpYnV0aW9uKHNlbGYpOgogICAgICAgICAjIEZvciB0aGUgZW50aXJlIGFsbG93YWJsZSByYW5nZSBvZiAwIDw9IGsgPD0gTiwgdmFsaWRhdGUgdGhhdApAQCAtMjA1LDYgKzI1MSwyNSBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQocmFuZ2Uoc3RhcnQsc3RvcCkpLAogICAgICAgICAgICAgICAgIHNldChbc2VsZi5nZW4ucmFuZHJhbmdlKHN0YXJ0LHN0b3ApIGZvciBpIGluIHJhbmdlKDEwMCldKSkKIAorICAgIGRlZiB0ZXN0X3JhbmRyYW5nZV9ub251bml0X3N0ZXAoc2VsZik6CisgICAgICAgIHJpbnQgPSBzZWxmLmdlbi5yYW5kcmFuZ2UoMCwgMTAsIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4ocmludCwgKDAsIDIsIDQsIDYsIDgpKQorICAgICAgICByaW50ID0gc2VsZi5nZW4ucmFuZHJhbmdlKDAsIDIsIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmludCwgMCkKKworICAgIGRlZiB0ZXN0X3JhbmRyYW5nZV9lcnJvcnMoc2VsZik6CisgICAgICAgIHJhaXNlcyA9IHBhcnRpYWwoc2VsZi5hc3NlcnRSYWlzZXMsIFZhbHVlRXJyb3IsIHNlbGYuZ2VuLnJhbmRyYW5nZSkKKyAgICAgICAgIyBFbXB0eSByYW5nZQorICAgICAgICByYWlzZXMoMywgMykKKyAgICAgICAgcmFpc2VzKC03MjEpCisgICAgICAgIHJhaXNlcygwLCAxMDAsIC0xMikKKyAgICAgICAgIyBOb24taW50ZWdlciBzdGFydC9zdG9wCisgICAgICAgIHJhaXNlcygzLjE0MTU5KQorICAgICAgICByYWlzZXMoMCwgMi43MTgyOCkKKyAgICAgICAgIyBaZXJvIGFuZCBub24taW50ZWdlciBzdGVwCisgICAgICAgIHJhaXNlcygwLCA0MiwgMCkKKyAgICAgICAgcmFpc2VzKDAsIDQyLCAzLjE0MTU5KQorCiAgICAgZGVmIHRlc3RfZ2VucmFuZGJpdHMoc2VsZik6CiAgICAgICAgICMgVmVyaWZ5IHJhbmdlcwogICAgICAgICBmb3IgayBpbiByYW5nZSgxLCAxMDAwKToKQEAgLTI3NCw2ICszMzksMTYgQEAKICAgICAgICAgIyBMYXN0IGVsZW1lbnQgcy9iIGFuIGludCBhbHNvCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5nZW4uc2V0c3RhdGUsICgyLCAoMCwpKjYyNCsoJ2EnLCksIE5vbmUpKQogCisgICAgICAgICMgTGl0dGxlIHRyaWNrIHRvIG1ha2UgInR1cGxlKHggJSAoMioqMzIpIGZvciB4IGluIGludGVybmFsc3RhdGUpIgorICAgICAgICAjIHJhaXNlIFZhbHVlRXJyb3IuIEkgY2Fubm90IHRoaW5rIG9mIGEgc2ltcGxlIHdheSB0byBhY2hpZXZlIHRoaXMsIHNvCisgICAgICAgICMgSSBhbSBvcHRpbmcgZm9yIHVzaW5nIGEgZ2VuZXJhdG9yIGFzIHRoZSBtaWRkbGUgYXJndW1lbnQgb2Ygc2V0c3RhdGUKKyAgICAgICAgIyB3aGljaCBhdHRlbXB0cyB0byBjYXN0IGEgTmFOIHRvIGludGVnZXIuCisgICAgICAgIHN0YXRlX3ZhbHVlcyA9IHNlbGYuZ2VuLmdldHN0YXRlKClbMV0KKyAgICAgICAgc3RhdGVfdmFsdWVzID0gbGlzdChzdGF0ZV92YWx1ZXMpCisgICAgICAgIHN0YXRlX3ZhbHVlc1stMV0gPSBmbG9hdCgnbmFuJykKKyAgICAgICAgc3RhdGUgPSAoaW50KHgpIGZvciB4IGluIHN0YXRlX3ZhbHVlcykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLmdlbi5zZXRzdGF0ZSwgKDIsIHN0YXRlLCBOb25lKSkKKwogICAgIGRlZiB0ZXN0X3JlZmVyZW5jZUltcGxlbWVudGF0aW9uKHNlbGYpOgogICAgICAgICAjIENvbXBhcmUgdGhlIHB5dGhvbiBpbXBsZW1lbnRhdGlvbiB3aXRoIHJlc3VsdHMgZnJvbSB0aGUgb3JpZ2luYWwKICAgICAgICAgIyBjb2RlLiAgQ3JlYXRlIDIwMDAgNTMtYml0IHByZWNpc2lvbiByYW5kb20gZmxvYXRzLiAgQ29tcGFyZSBvbmx5CkBAIC00MTMsNiArNDg4LDM4IEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGssIG51bWJpdHMpICAgICAgICAjIG5vdGUgdGhlIHN0cm9uZ2VyIGFzc2VydGlvbgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKDIqKmsgPiBuID4gMioqKGstMSkpICAgIyBub3RlIHRoZSBzdHJvbmdlciBhc3NlcnRpb24KIAorICAgIEB1bml0dGVzdC5tb2NrLnBhdGNoKCdyYW5kb20uUmFuZG9tLnJhbmRvbScpCisgICAgZGVmIHRlc3RfcmFuZGJlbG93X292ZXJyaWRlbl9yYW5kb20oc2VsZiwgcmFuZG9tX21vY2spOgorICAgICAgICAjIFJhbmRvbS5fcmFuZGJlbG93KCkgY2FuIG9ubHkgdXNlIHJhbmRvbSgpIHdoZW4gdGhlIGJ1aWx0LWluIG9uZQorICAgICAgICAjIGhhcyBiZWVuIG92ZXJyaWRkZW4gYnV0IG5vIG5ldyBnZXRyYW5kYml0cygpIG1ldGhvZCB3YXMgc3VwcGxpZWQuCisgICAgICAgIHJhbmRvbV9tb2NrLnNpZGVfZWZmZWN0ID0gcmFuZG9tLlN5c3RlbVJhbmRvbSgpLnJhbmRvbQorICAgICAgICBtYXhzaXplID0gMTw8cmFuZG9tLkJQRgorICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CisgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImlnbm9yZSIsIFVzZXJXYXJuaW5nKQorICAgICAgICAgICAgIyBQb3B1bGF0aW9uIHJhbmdlIHRvbyBsYXJnZSAobiA+PSBtYXhzaXplKQorICAgICAgICAgICAgc2VsZi5nZW4uX3JhbmRiZWxvdyhtYXhzaXplKzEsIG1heHNpemUgPSBtYXhzaXplKQorICAgICAgICBzZWxmLmdlbi5fcmFuZGJlbG93KDU2NDAsIG1heHNpemUgPSBtYXhzaXplKQorCisgICAgICAgICMgVGhpcyBtaWdodCBiZSBnb2luZyB0b28gZmFyIHRvIHRlc3QgYSBzaW5nbGUgbGluZSwgYnV0IGJlY2F1c2Ugb2Ygb3VyCisgICAgICAgICMgbm9ibGUgYWltIG9mIGFjaGlldmluZyAxMDAlIHRlc3QgY292ZXJhZ2Ugd2UgbmVlZCB0byB3cml0ZSBhIGNhc2UgaW4KKyAgICAgICAgIyB3aGljaCB0aGUgZm9sbG93aW5nIGxpbmUgaW4gUmFuZG9tLl9yYW5kYmVsb3coKSBnZXRzIGV4ZWN1dGVkOgorICAgICAgICAjCisgICAgICAgICMgcmVtID0gbWF4c2l6ZSAlIG4KKyAgICAgICAgIyBsaW1pdCA9IChtYXhzaXplIC0gcmVtKSAvIG1heHNpemUKKyAgICAgICAgIyByID0gcmFuZG9tKCkKKyAgICAgICAgIyB3aGlsZSByID49IGxpbWl0OgorICAgICAgICAjICAgICByID0gcmFuZG9tKCkgIyA8PT0gKlRoaXMgbGluZSogPD09PAorICAgICAgICAjCisgICAgICAgICMgVGhlcmVmb3JlLCB0byBndWFyYW50ZWUgdGhhdCB0aGUgd2hpbGUgbG9vcCBpcyBleGVjdXRlZCBhdCBsZWFzdAorICAgICAgICAjIG9uY2UsIHdlIG5lZWQgdG8gbW9jayByYW5kb20oKSBzbyB0aGF0IGl0IHJldHVybnMgYSBudW1iZXIgZ3JlYXRlcgorICAgICAgICAjIHRoYW4gJ2xpbWl0JyB0aGUgZmlyc3QgdGltZSBpdCBnZXRzIGNhbGxlZC4KKworICAgICAgICBuID0gNDIKKyAgICAgICAgZXBzaWxvbiA9IDAuMDEKKyAgICAgICAgbGltaXQgPSAobWF4c2l6ZSAtIChtYXhzaXplICUgbikpIC8gbWF4c2l6ZQorICAgICAgICByYW5kb21fbW9jay5zaWRlX2VmZmVjdCA9IFtsaW1pdCArIGVwc2lsb24sIGxpbWl0IC0gZXBzaWxvbl0KKyAgICAgICAgc2VsZi5nZW4uX3JhbmRiZWxvdyhuLCBtYXhzaXplID0gbWF4c2l6ZSkKKwogICAgIGRlZiB0ZXN0X3JhbmRyYW5nZV9idWdfMTU5MDg5MShzZWxmKToKICAgICAgICAgc3RhcnQgPSAxMDAwMDAwMDAwMDAwCiAgICAgICAgIHN0b3AgPSAtMTAwMDAwMDAwMDAwMDAwMDAwMDAwCkBAIC01MzAsNiArNjM3LDEwNiBAQAogICAgICAgICByYW5kb20udm9ubWlzZXN2YXJpYXRlKDAsIDFlMTUpCiAgICAgICAgIHJhbmRvbS52b25taXNlc3ZhcmlhdGUoMCwgMWUxMDApCiAKKyAgICBkZWYgdGVzdF9nYW1tYXZhcmlhdGVfZXJyb3JzKHNlbGYpOgorICAgICAgICAjIEJvdGggYWxwaGEgYW5kIGJldGEgbXVzdCBiZSA+IDAuMAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCByYW5kb20uZ2FtbWF2YXJpYXRlLCAtMSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcmFuZG9tLmdhbW1hdmFyaWF0ZSwgMCwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcmFuZG9tLmdhbW1hdmFyaWF0ZSwgMiwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcmFuZG9tLmdhbW1hdmFyaWF0ZSwgMSwgLTMpCisKKyAgICBAdW5pdHRlc3QubW9jay5wYXRjaCgncmFuZG9tLlJhbmRvbS5yYW5kb20nKQorICAgIGRlZiB0ZXN0X2dhbW1hdmFyaWF0ZV9mdWxsX2NvZGVfY292ZXJhZ2Uoc2VsZiwgcmFuZG9tX21vY2spOgorICAgICAgICAjIFRoZXJlIGFyZSB0aHJlZSBkaWZmZXJlbnQgcG9zc2liaWxpdGllcyBpbiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbgorICAgICAgICAjIG9mIHJhbmRvbS5nYW1tYXZhcmlhdGUoKSwgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiAnYWxwaGEnLiBXaGF0IHdlCisgICAgICAgICMgYXJlIGdvaW5nIHRvIGRvIGhlcmUgaXMgdG8gZml4IHRoZSB2YWx1ZXMgcmV0dXJuZWQgYnkgcmFuZG9tKCkgdG8KKyAgICAgICAgIyBnZW5lcmF0ZSB0ZXN0IGNhc2VzIHRoYXQgcHJvdmlkZSAxMDAlIGxpbmUgY292ZXJhZ2Ugb2YgdGhlIG1ldGhvZC4KKworICAgICAgICAjICMxOiBhbHBoYSA+IDEuMDogd2Ugd2FudCB0aGUgZmlyc3QgcmFuZG9tIG51bWJlciB0byBiZSBvdXRzaWRlIHRoZQorICAgICAgICAjIFsxZS03LCAuOTk5OTk5OV0gcmFuZ2UsIHNvIHRoYXQgdGhlIGNvbnRpbnVlIHN0YXRlbWVudCBleGVjdXRlcworICAgICAgICAjIG9uY2UuIFRoZSB2YWx1ZXMgb2YgdTEgYW5kIHUyIHdpbGwgYmUgMC41IGFuZCAwLjMsIHJlc3BlY3RpdmVseS4KKyAgICAgICAgcmFuZG9tX21vY2suc2lkZV9lZmZlY3QgPSBbMWUtOCwgMC41LCAwLjNdCisgICAgICAgIHJldHVybmVkX3ZhbHVlID0gcmFuZG9tLmdhbW1hdmFyaWF0ZSgxLjEsIDIuMykKKyAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChyZXR1cm5lZF92YWx1ZSwgMi41MykKKworICAgICAgICAjICMyOiBhbHBoYSA9PSAxOiBmaXJzdCByYW5kb20gbnVtYmVyIGxlc3MgdGhhbiAxZS03IHRvIHRoYXQgdGhlIGJvZHkKKyAgICAgICAgIyBvZiB0aGUgd2hpbGUgbG9vcCBleGVjdXRlcyBvbmNlLiBUaGVuIHJhbmRvbS5yYW5kb20oKSByZXR1cm5zIDAuNDUsCisgICAgICAgICMgd2hpY2ggY2F1c2VzIHdoaWxlIHRvIHN0b3AgbG9vcGluZyBhbmQgdGhlIGFsZ29yaXRobSB0byB0ZXJtaW5hdGUuCisgICAgICAgIHJhbmRvbV9tb2NrLnNpZGVfZWZmZWN0ID0gWzFlLTgsIDAuNDVdCisgICAgICAgIHJldHVybmVkX3ZhbHVlID0gcmFuZG9tLmdhbW1hdmFyaWF0ZSgxLjAsIDMuMTQpCisgICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwocmV0dXJuZWRfdmFsdWUsIDIuNTA3MzE0MTY2MTIzODAzKQorCisgICAgICAgICMgIzM6IDAgPCBhbHBoYSA8IDEuIFRoaXMgaXMgdGhlIG1vc3QgY29tcGxleCByZWdpb24gb2YgY29kZSB0byBjb3ZlciwKKyAgICAgICAgIyBhcyB0aGVyZSBhcmUgbXVsdGlwbGUgaWYtZWxzZSBzdGF0ZW1lbnRzLiBMZXQncyB0YWtlIGEgbG9vayBhdCB0aGUKKyAgICAgICAgIyBzb3VyY2UgY29kZSwgYW5kIGRldGVybWluZSB0aGUgdmFsdWVzIHRoYXQgd2UgbmVlZCBhY2NvcmRpbmdseToKKyAgICAgICAgIworICAgICAgICAjIHdoaWxlIDE6CisgICAgICAgICMgICAgIHUgPSByYW5kb20oKQorICAgICAgICAjICAgICBiID0gKF9lICsgYWxwaGEpL19lCisgICAgICAgICMgICAgIHAgPSBiKnUKKyAgICAgICAgIyAgICAgaWYgcCA8PSAxLjA6ICMgPD09PSAoQSkKKyAgICAgICAgIyAgICAgICAgIHggPSBwICoqICgxLjAvYWxwaGEpCisgICAgICAgICMgICAgIGVsc2U6ICMgPD09PSAoQikKKyAgICAgICAgIyAgICAgICAgIHggPSAtX2xvZygoYi1wKS9hbHBoYSkKKyAgICAgICAgIyAgICAgdTEgPSByYW5kb20oKQorICAgICAgICAjICAgICBpZiBwID4gMS4wOiAjIDw9PT0gKEMpCisgICAgICAgICMgICAgICAgICBpZiB1MSA8PSB4ICoqIChhbHBoYSAtIDEuMCk6ICMgPD09PSAoRCkKKyAgICAgICAgIyAgICAgICAgICAgICBicmVhaworICAgICAgICAjICAgICBlbGlmIHUxIDw9IF9leHAoLXgpOiAjIDw9PT0gKEUpCisgICAgICAgICMgICAgICAgICBicmVhaworICAgICAgICAjIHJldHVybiB4ICogYmV0YQorICAgICAgICAjCisgICAgICAgICMgRmlyc3QsIHdlIHdhbnQgKEEpIHRvIGJlIFRydWUuIEZvciB0aGF0IHdlIG5lZWQgdGhhdDoKKyAgICAgICAgIyBiKnJhbmRvbSgpIDw9IDEuMAorICAgICAgICAjIHIxID0gcmFuZG9tKCkgPD0gMS4wIC8gYgorICAgICAgICAjCisgICAgICAgICMgV2Ugbm93IGdldCB0byB0aGUgc2Vjb25kIGlmLWVsc2UgYnJhbmNoLCBhbmQgaGVyZSwgc2luY2UgcCA8PSAxLjAsCisgICAgICAgICMgKEMpIGlzIEZhbHNlIGFuZCB3ZSB0YWtlIHRoZSBlbGlmIGJyYW5jaCwgKEUpLiBGb3IgaXQgdG8gYmUgVHJ1ZSwKKyAgICAgICAgIyBzbyB0aGF0IHRoZSBicmVhayBpcyBleGVjdXRlZCwgd2UgbmVlZCB0aGF0OgorICAgICAgICAjIHIyID0gcmFuZG9tKCkgPD0gX2V4cCgteCkKKyAgICAgICAgIyByMiA8PSBfZXhwKC0ocCAqKiAoMS4wL2FscGhhKSkpCisgICAgICAgICMgcjIgPD0gX2V4cCgtKChiKnIxKSAqKiAoMS4wL2FscGhhKSkpCisKKyAgICAgICAgX2UgPSByYW5kb20uX2UKKyAgICAgICAgX2V4cCA9IHJhbmRvbS5fZXhwCisgICAgICAgIF9sb2cgPSByYW5kb20uX2xvZworICAgICAgICBhbHBoYSA9IDAuMzUKKyAgICAgICAgYmV0YSA9IDEuNDUKKyAgICAgICAgYiA9IChfZSArIGFscGhhKS9fZQorICAgICAgICBlcHNpbG9uID0gMC4wMQorCisgICAgICAgIHIxID0gMC44ODU5Mjk2NDQxNTY2ICMgMS4wIC8gYgorICAgICAgICByMiA9IDAuMzY3ODc5NDQxMTcxNCAjIF9leHAoLSgoYipyMSkgKiogKDEuMC9hbHBoYSkpKQorCisgICAgICAgICMgVGhlc2UgZm91ciAicmFuZG9tIiB2YWx1ZXMgcmVzdWx0IGluIHRoZSBmb2xsb3dpbmcgdHJhY2U6CisgICAgICAgICMgKEEpIFRydWUsIChFKSBGYWxzZSAtLT4gW25leHQgaXRlcmF0aW9uIG9mIHdoaWxlXQorICAgICAgICAjIChBKSBUcnVlLCAoRSkgVHJ1ZSAtLT4gW3doaWxlIGxvb3AgYnJlYWtzXQorICAgICAgICByYW5kb21fbW9jay5zaWRlX2VmZmVjdCA9IFtyMSwgcjIgKyBlcHNpbG9uLCByMSwgcjJdCisgICAgICAgIHJldHVybmVkX3ZhbHVlID0gcmFuZG9tLmdhbW1hdmFyaWF0ZShhbHBoYSwgYmV0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChyZXR1cm5lZF92YWx1ZSwgMS40NDk5OTk5OTk5OTk3NTQ0KQorCisgICAgICAgICMgTGV0J3Mgbm93IG1ha2UgKEEpIGJlIEZhbHNlLiBJZiB0aGlzIGlzIHRoZSBjYXNlLCB3aGVuIHdlIGdldCB0byB0aGUKKyAgICAgICAgIyBzZWNvbmQgaWYtZWxzZSAncCcgaXMgZ3JlYXRlciB0aGFuIDEsIHNvIChDKSBldmFsdWF0ZXMgdG8gVHJ1ZS4gV2UKKyAgICAgICAgIyBub3cgZW5jb3VudGVyIGEgc2Vjb25kIGlmIHN0YXRlbWVudCwgKEQpLCB3aGljaCBpbiBvcmRlciB0byBleGVjdXRlCisgICAgICAgICMgbXVzdCBzYXRpc2Z5IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uOgorICAgICAgICAjIHIyIDw9IHggKiogKGFscGhhIC0gMS4wKQorICAgICAgICAjIHIyIDw9ICgtX2xvZygoYi1wKS9hbHBoYSkpICoqIChhbHBoYSAtIDEuMCkKKyAgICAgICAgIyByMiA8PSAoLV9sb2coKGItKGIqcjEpKS9hbHBoYSkpICoqIChhbHBoYSAtIDEuMCkKKyAgICAgICAgcjEgPSAwLjg5NTkyOTY0NDE1NjYgIyAoMS4wIC8gYikgKyBlcHNpbG9uIC0tIHNvIHRoYXQgKEEpIGlzIEZhbHNlCisgICAgICAgIHIyID0gMC45NDQ1NDAwNDA4ODk4MTQxCisKKyAgICAgICAgIyBBbmQgdGhlc2UgZm91ciB2YWx1ZXMgcmVzdWx0IGluIHRoZSBmb2xsb3dpbmcgdHJhY2U6CisgICAgICAgICMgKEIpIGFuZCAoQykgVHJ1ZSwgKEQpIEZhbHNlIC0tPiBbbmV4dCBpdGVyYXRpb24gb2Ygd2hpbGVdCisgICAgICAgICMgKEIpIGFuZCAoQykgVHJ1ZSwgKEQpIFRydWUgW3doaWxlIGxvb3AgYnJlYWtzXQorICAgICAgICByYW5kb21fbW9jay5zaWRlX2VmZmVjdCA9IFtyMSwgcjIgKyBlcHNpbG9uLCByMSwgcjJdCisgICAgICAgIHJldHVybmVkX3ZhbHVlID0gcmFuZG9tLmdhbW1hdmFyaWF0ZShhbHBoYSwgYmV0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChyZXR1cm5lZF92YWx1ZSwgMS41ODMwMzQ5NTYxNzYwNzgxKQorCisgICAgQHVuaXR0ZXN0Lm1vY2sucGF0Y2goJ3JhbmRvbS5SYW5kb20uZ2FtbWF2YXJpYXRlJykKKyAgICBkZWYgdGVzdF9iZXRhdmFyaWF0ZV9yZXR1cm5femVybyhzZWxmLCBnYW1tYXZhcmlhdGVfbW9jayk6CisgICAgICAgICMgYmV0YXZhcmlhdGUoKSByZXR1cm5zIHplcm8gd2hlbiB0aGUgR2FtbWEgZGlzdHJpYnV0aW9uCisgICAgICAgICMgdGhhdCBpdCB1c2VzIGludGVybmFsbHkgcmV0dXJucyB0aGlzIHNhbWUgdmFsdWUuCisgICAgICAgIGdhbW1hdmFyaWF0ZV9tb2NrLnJldHVybl92YWx1ZSA9IDAuMAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAuMCwgcmFuZG9tLmJldGF2YXJpYXRlKDIuNzE4MjgsIDMuMTQxNTkpKQogCiBjbGFzcyBUZXN0TW9kdWxlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdE1hZ2ljQ29uc3RhbnRzKHNlbGYpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9yYW5nZS5weSBiL0xpYi90ZXN0L3Rlc3RfcmFuZ2UucHkKaW5kZXggMmExM2JmZS4uZjA4ODM4NyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9yYW5nZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3JhbmdlLnB5CkBAIC0zMTMsNyArMzEzLDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCByYW5nZSwgSU4oKSkKIAogICAgICAgICAjIFRlc3QgdXNlIG9mIHVzZXItZGVmaW5lZCBjbGFzc2VzIGluIHNsaWNlIGluZGljZXMuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyYW5nZSgxMClbOkkoNSldKSwgbGlzdChyYW5nZSg1KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmFuZ2UoMTApWzpJKDUpXSwgcmFuZ2UoNSkpCiAKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IpOgogICAgICAgICAgICAgcmFuZ2UoMCwgMTApWzpJWCgpXQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9yZWdydGVzdC5weSBiL0xpYi90ZXN0L3Rlc3RfcmVncnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWI5NzJjYQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3RfcmVncnRlc3QucHkKQEAgLTAsMCArMSwxMDAgQEAKKyIiIgorVGVzdHMgb2YgcmVncnRlc3QucHkuCisiIiIKKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgZ2V0b3B0CitpbXBvcnQgdW5pdHRlc3QKK2Zyb20gdGVzdCBpbXBvcnQgcmVncnRlc3QsIHN1cHBvcnQKKworZGVmIG9sZF9wYXJzZV9hcmdzKGFyZ3MpOgorICAgICIiIlBhcnNlIGFyZ3VtZW50cyBhcyByZWdydGVzdCBkaWQgc3RyaWN0bHkgcHJpb3IgdG8gMy40LgorCisgICAgUmFpc2VzIGdldG9wdC5HZXRvcHRFcnJvciBvbiBiYWQgYXJndW1lbnRzLgorICAgICIiIgorICAgIHJldHVybiBnZXRvcHQuZ2V0b3B0KGFyZ3MsICdodnF4c29TOnJmOmx1OnQ6VEQ6TkxSOkZkd1dNOm5qOkdtOicsCisgICAgICAgIFsnaGVscCcsICd2ZXJib3NlJywgJ3ZlcmJvc2UyJywgJ3ZlcmJvc2UzJywgJ3F1aWV0JywKKyAgICAgICAgICdleGNsdWRlJywgJ3NpbmdsZScsICdzbG93JywgJ3JhbmRvbWl6ZScsICdmcm9tZmlsZT0nLCAnZmluZGxlYWtzJywKKyAgICAgICAgICd1c2U9JywgJ3RocmVzaG9sZD0nLCAnY292ZXJkaXI9JywgJ25vY292ZXJkaXInLAorICAgICAgICAgJ3J1bmxlYWtzJywgJ2h1bnRybGVha3M9JywgJ21lbWxpbWl0PScsICdyYW5kc2VlZD0nLAorICAgICAgICAgJ211bHRpcHJvY2Vzcz0nLCAnY292ZXJhZ2UnLCAnc2xhdmVhcmdzPScsICdmb3JldmVyJywgJ2RlYnVnJywKKyAgICAgICAgICdzdGFydD0nLCAnbm93aW5kb3dzJywgJ2hlYWRlcicsICd0ZXN0ZGlyPScsICd0aW1lb3V0PScsICd3YWl0JywKKyAgICAgICAgICdmYWlsZmFzdCcsICdtYXRjaD0nXSkKKworY2xhc3MgUGFyc2VBcmdzVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgIiIiVGVzdCB0aGF0IHJlZ3J0ZXN0J3MgcGFyc2luZyBjb2RlIG1hdGNoZXMgdGhlIHByaW9yIGdldG9wdCBiZWhhdmlvci4iIiIKKworICAgIGRlZiBfcGFyc2VfYXJncyhzZWxmLCBhcmdzKToKKyAgICAgICAgIyBUaGlzIGlzIHRoZSBzYW1lIGxvZ2ljIGFzIHRoYXQgdXNlZCBpbiByZWdydGVzdC5tYWluKCkKKyAgICAgICAgcGFyc2VyID0gcmVncnRlc3QuX2NyZWF0ZV9wYXJzZXIoKQorICAgICAgICBucyA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3M9YXJncykKKyAgICAgICAgb3B0cyA9IHJlZ3J0ZXN0Ll9jb252ZXJ0X25hbWVzcGFjZV90b19nZXRvcHQobnMpCisgICAgICAgIHJldHVybiBvcHRzLCBucy5hcmdzCisKKyAgICBkZWYgX2NoZWNrX2FyZ3Moc2VsZiwgYXJncywgZXhwZWN0ZWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGUgZXhwZWN0ZWQgcGFyYW1ldGVyIGlzIGZvciBjYXNlcyB3aGVuIHRoZSBiZWhhdmlvciBvZiB0aGUgbmV3CisgICAgICAgIHBhcnNlX2FyZ3MgZGlmZmVycyBmcm9tIHRoZSBvbGQgKGJ1dCBkZWxpYmVyYXRlbHkgc28pLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgZXhwZWN0ZWQgaXMgTm9uZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBleHBlY3RlZCA9IG9sZF9wYXJzZV9hcmdzKGFyZ3MpCisgICAgICAgICAgICBleGNlcHQgZ2V0b3B0LkdldG9wdEVycm9yOgorICAgICAgICAgICAgICAgICMgU3VwcHJlc3MgdXNhZ2Ugc3RyaW5nIG91dHB1dCB3aGVuIGFuIGFyZ3BhcnNlLkFyZ3VtZW50RXJyb3IKKyAgICAgICAgICAgICAgICAjIGVycm9yIGlzIHJhaXNlZC4KKyAgICAgICAgICAgICAgICB3aXRoIHN1cHBvcnQuY2FwdHVyZWRfc3RkZXJyKCk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFN5c3RlbUV4aXQsIHNlbGYuX3BhcnNlX2FyZ3MsIGFyZ3MpCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICMgVGhlIG5ldyBwYXJzZV9hcmdzKCkgc29ydHMgYnkgbG9uZyBvcHRpb24gc3RyaW5nLgorICAgICAgICBleHBlY3RlZFswXS5zb3J0KCkKKyAgICAgICAgYWN0dWFsID0gc2VsZi5fcGFyc2VfYXJncyhhcmdzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQpCisKKyAgICBkZWYgdGVzdF91bnJlY29nbml6ZWRfYXJndW1lbnQoc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrX2FyZ3MoWyctLXh4eCddKQorCisgICAgZGVmIHRlc3RfdmFsdWVfbm90X3Byb3ZpZGVkKHNlbGYpOgorICAgICAgICBzZWxmLl9jaGVja19hcmdzKFsnLS1zdGFydCddKQorCisgICAgZGVmIHRlc3Rfc2hvcnRfb3B0aW9uKHNlbGYpOgorICAgICAgICAjIGdldG9wdCByZXR1cm5zIHRoZSBzaG9ydCBvcHRpb24gd2hlcmVhcyBhcmdwYXJzZSByZXR1cm5zIHRoZSBsb25nLgorICAgICAgICBleHBlY3RlZCA9IChbKCctLXF1aWV0JywgJycpXSwgW10pCisgICAgICAgIHNlbGYuX2NoZWNrX2FyZ3MoWyctcSddLCBleHBlY3RlZD1leHBlY3RlZCkKKworICAgIGRlZiB0ZXN0X2xvbmdfb3B0aW9uKHNlbGYpOgorICAgICAgICBzZWxmLl9jaGVja19hcmdzKFsnLS1xdWlldCddKQorCisgICAgZGVmIHRlc3RfbG9uZ19vcHRpb25fX3BhcnRpYWwoc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrX2FyZ3MoWyctLXF1aSddKQorCisgICAgZGVmIHRlc3RfdHdvX29wdGlvbnMoc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrX2FyZ3MoWyctLXF1aWV0JywgJy0tZXhjbHVkZSddKQorCisgICAgZGVmIHRlc3Rfb3B0aW9uX3dpdGhfdmFsdWUoc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrX2FyZ3MoWyctLXN0YXJ0JywgJ2ZvbyddKQorCisgICAgZGVmIHRlc3Rfb3B0aW9uX3dpdGhfZW1wdHlfc3RyaW5nX3ZhbHVlKHNlbGYpOgorICAgICAgICBzZWxmLl9jaGVja19hcmdzKFsnLS1zdGFydCcsICcnXSkKKworICAgIGRlZiB0ZXN0X2FyZyhzZWxmKToKKyAgICAgICAgc2VsZi5fY2hlY2tfYXJncyhbJ2ZvbyddKQorCisgICAgZGVmIHRlc3Rfb3B0aW9uX2FuZF9hcmcoc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrX2FyZ3MoWyctLXF1aWV0JywgJ2ZvbyddKQorCisgICAgZGVmIHRlc3RfZnJvbWZpbGUoc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrX2FyZ3MoWyctLWZyb21maWxlJywgJ2ZpbGUnXSkKKworICAgIGRlZiB0ZXN0X21hdGNoKHNlbGYpOgorICAgICAgICBzZWxmLl9jaGVja19hcmdzKFsnLS1tYXRjaCcsICdwYXR0ZXJuJ10pCisKKyAgICBkZWYgdGVzdF9yYW5kb21pemUoc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrX2FyZ3MoWyctLXJhbmRvbWl6ZSddKQorCisKK2RlZiB0ZXN0X21haW4oKToKKyAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChfX25hbWVfXykKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9yZXNvdXJjZS5weSBiL0xpYi90ZXN0L3Rlc3RfcmVzb3VyY2UucHkKaW5kZXggZjM0MTZiNy4uYmIzZmYyNSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9yZXNvdXJjZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3Jlc291cmNlLnB5CkBAIC02MSw3ICs2MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSg1KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKC4xKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYuZmx1c2goKQotICAgICAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgbGltaXRfc2V0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICAgICAgICAgIGlmIGxpbWl0X3NldDoKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc2NvcGUucHkgYi9MaWIvdGVzdC90ZXN0X3Njb3BlLnB5CmluZGV4IDI2Y2UwNDIuLmIzMjU1NDUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfc2NvcGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zY29wZS5weQpAQCAtNzE1LDYgKzcxNSwxOSBAQAogICAgICAgICBkZWYgYigpOgogICAgICAgICAgICAgZ2xvYmFsIGEKIAorICAgIGRlZiB0ZXN0Q2xhc3NOYW1lc3BhY2VPdmVycmlkZXNDbG9zdXJlKHNlbGYpOgorICAgICAgICAjIFNlZSAjMTc4NTMuCisgICAgICAgIHggPSA0MgorICAgICAgICBjbGFzcyBYOgorICAgICAgICAgICAgbG9jYWxzKClbIngiXSA9IDQzCisgICAgICAgICAgICB5ID0geAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFgueSwgNDMpCisgICAgICAgIGNsYXNzIFg6CisgICAgICAgICAgICBsb2NhbHMoKVsieCJdID0gNDMKKyAgICAgICAgICAgIGRlbCB4CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cihYLCAieCIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgsIDQyKQorCiAgICAgQGNweXRob25fb25seQogICAgIGRlZiB0ZXN0Q2VsbExlYWsoc2VsZik6CiAgICAgICAgICMgSXNzdWUgMTc5MjcuCkBAIC03NDMsMTAgKzc1Niw2IEBACiAgICAgICAgIGRlbCB0ZXN0ZXIKICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocmVmKCkpCiAKLSAgICBkZWYgdGVzdF9fQ2xhc3NfX0dsb2JhbChzZWxmKToKLSAgICAgICAgcyA9ICJjbGFzcyBYOlxuICAgIGdsb2JhbCBfX2NsYXNzX19cbiAgICBkZWYgZihzZWxmKTogc3VwZXIoKSIKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IsIGV4ZWMsIHMpCi0KIAogZGVmIHRlc3RfbWFpbigpOgogICAgIHJ1bl91bml0dGVzdChTY29wZVRlc3RzKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zZWxlY3QucHkgYi9MaWIvdGVzdC90ZXN0X3NlbGVjdC5weQppbmRleCBkZGI5YTBmLi44ZjlhMWM5IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3NlbGVjdC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3NlbGVjdC5weQpAQCAtNSw3ICs1LDcgQEAKIGltcG9ydCB1bml0dGVzdAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiAKLUB1bml0dGVzdC5za2lwSWYoc3lzLnBsYXRmb3JtWzozXSBpbiAoJ3dpbicsICdvczInLCAncmlzY29zJyksCitAdW5pdHRlc3Quc2tpcElmKChzeXMucGxhdGZvcm1bOjNdPT0nd2luJyksCiAgICAgICAgICAgICAgICAgICJjYW4ndCBlYXNpbHkgdGVzdCBvbiB0aGlzIHN5c3RlbSIpCiBjbGFzcyBTZWxlY3RUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKQEAgLTMyLDcgKzMyLDcgQEAKICAgICAgICAgICAgIGZwLmNsb3NlKCkKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzZWxlY3Quc2VsZWN0KFtmZF0sIFtdLCBbXSwgMCkKLSAgICAgICAgICAgIGV4Y2VwdCBzZWxlY3QuZXJyb3IgYXMgZXJyOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyLmVycm5vLCBlcnJuby5FQkFERikKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJleGNlcHRpb24gbm90IHJhaXNlZCIpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NldC5weSBiL0xpYi90ZXN0L3Rlc3Rfc2V0LnB5CmluZGV4IDhmODYxNTYuLmY4YzcxODAgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfc2V0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc2V0LnB5CkBAIC04NDgsOCArODQ4LDYgQEAKICAgICAgICAgZm9yIHYgaW4gc2VsZi5zZXQ6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEluKHYsIHNlbGYudmFsdWVzKQogICAgICAgICBzZXRpdGVyID0gaXRlcihzZWxmLnNldCkKLSAgICAgICAgIyBub3RlOiBfX2xlbmd0aF9oaW50X18gaXMgYW4gaW50ZXJuYWwgdW5kb2N1bWVudGVkIEFQSSwKLSAgICAgICAgIyBkb24ndCByZWx5IG9uIGl0IGluIHlvdXIgb3duIHByb2dyYW1zCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0aXRlci5fX2xlbmd0aF9oaW50X18oKSwgbGVuKHNlbGYuc2V0KSkKIAogICAgIGRlZiB0ZXN0X3BpY2tsaW5nKHNlbGYpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zaGVsdmUucHkgYi9MaWIvdGVzdC90ZXN0X3NoZWx2ZS5weQppbmRleCAxM2MxMjY1Li5iZDUxZDg2IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3NoZWx2ZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3NoZWx2ZS5weQpAQCAtMTQ4LDYgKzE0OCwxOSBAQAogICAgICAgICBwMiA9IGRbZW5jb2RlZGtleV0KICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChwMSwgcDIpICAjIFdyaXRlIGNyZWF0ZXMgbmV3IG9iamVjdCBpbiBzdG9yZQogCisgICAgZGVmIHRlc3Rfd2l0aChzZWxmKToKKyAgICAgICAgZDEgPSB7fQorICAgICAgICB3aXRoIHNoZWx2ZS5TaGVsZihkMSwgcHJvdG9jb2w9Miwgd3JpdGViYWNrPUZhbHNlKSBhcyBzOgorICAgICAgICAgICAgc1sna2V5MSddID0gWzEsMiwzLDRdCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNbJ2tleTEnXSwgWzEsMiwzLDRdKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGxlbiwgcykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc1sna2V5MSddCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mYWlsKCdDbG9zZWQgc2hlbGYgc2hvdWxkIG5vdCBmaW5kIGEga2V5JykKIAogZnJvbSB0ZXN0IGltcG9ydCBtYXBwaW5nX3Rlc3RzCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc2h1dGlsLnB5IGIvTGliL3Rlc3QvdGVzdF9zaHV0aWwucHkKaW5kZXggNjc5NGE5My4uZmFkOTI0YSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zaHV0aWwucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zaHV0aWwucHkKQEAgLTE4LDcgKzE4LDggQEAKICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfYXJjaGl2ZV9mb3JtYXQsIHVucmVnaXN0ZXJfYXJjaGl2ZV9mb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgIGdldF9hcmNoaXZlX2Zvcm1hdHMsIEVycm9yLCB1bnBhY2tfYXJjaGl2ZSwKICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfdW5wYWNrX2Zvcm1hdCwgUmVnaXN0cnlFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgdW5yZWdpc3Rlcl91bnBhY2tfZm9ybWF0LCBnZXRfdW5wYWNrX2Zvcm1hdHMpCisgICAgICAgICAgICAgICAgICAgIHVucmVnaXN0ZXJfdW5wYWNrX2Zvcm1hdCwgZ2V0X3VucGFja19mb3JtYXRzLAorICAgICAgICAgICAgICAgICAgICBTYW1lRmlsZUVycm9yKQogaW1wb3J0IHRhcmZpbGUKIGltcG9ydCB3YXJuaW5ncwogCkBAIC03MzksNyArNzQwLDcgQEAKICAgICAgICAgICAgIHdpdGggb3BlbihzcmMsICd3JykgYXMgZjoKICAgICAgICAgICAgICAgICBmLndyaXRlKCdjaGVkZGFyJykKICAgICAgICAgICAgIG9zLmxpbmsoc3JjLCBkc3QpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzaHV0aWwuRXJyb3IsIHNodXRpbC5jb3B5ZmlsZSwgc3JjLCBkc3QpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzaHV0aWwuU2FtZUZpbGVFcnJvciwgc2h1dGlsLmNvcHlmaWxlLCBzcmMsIGRzdCkKICAgICAgICAgICAgIHdpdGggb3BlbihzcmMsICdyJykgYXMgZjoKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCAnY2hlZGRhcicpCiAgICAgICAgICAgICBvcy5yZW1vdmUoZHN0KQpAQCAtNzU5LDcgKzc2MCw3IEBACiAgICAgICAgICAgICAjIHRvIFRFU1RGTi9URVNURk4vY2hlZXNlLCB3aGlsZSBpdCBzaG91bGQgcG9pbnQgYXQKICAgICAgICAgICAgICMgVEVTVEZOL2NoZWVzZS4KICAgICAgICAgICAgIG9zLnN5bWxpbmsoJ2NoZWVzZScsIGRzdCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHNodXRpbC5FcnJvciwgc2h1dGlsLmNvcHlmaWxlLCBzcmMsIGRzdCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHNodXRpbC5TYW1lRmlsZUVycm9yLCBzaHV0aWwuY29weWZpbGUsIHNyYywgZHN0KQogICAgICAgICAgICAgd2l0aCBvcGVuKHNyYywgJ3InKSBhcyBmOgogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksICdjaGVkZGFyJykKICAgICAgICAgICAgIG9zLnJlbW92ZShkc3QpCkBAIC0xMjY2LDYgKzEyNjcsMTYgQEAKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguZXhpc3RzKHJ2KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWFkX2ZpbGUoc3JjX2ZpbGUpLCByZWFkX2ZpbGUoZHN0X2ZpbGUpKQogCisgICAgZGVmIHRlc3RfY29weWZpbGVfc2FtZV9maWxlKHNlbGYpOgorICAgICAgICAjIGNvcHlmaWxlKCkgc2hvdWxkIHJhaXNlIFNhbWVGaWxlRXJyb3IgaWYgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24KKyAgICAgICAgIyBhcmUgdGhlIHNhbWUuCisgICAgICAgIHNyY19kaXIgPSBzZWxmLm1rZHRlbXAoKQorICAgICAgICBzcmNfZmlsZSA9IG9zLnBhdGguam9pbihzcmNfZGlyLCAnZm9vJykKKyAgICAgICAgd3JpdGVfZmlsZShzcmNfZmlsZSwgJ2ZvbycpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFNhbWVGaWxlRXJyb3IsIHNodXRpbC5jb3B5ZmlsZSwgc3JjX2ZpbGUsIHNyY19maWxlKQorICAgICAgICAjIEJ1dCBFcnJvciBzaG91bGQgd29yayB0b28sIHRvIHN0YXkgYmFja3dhcmQgY29tcGF0aWJsZS4KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRXJyb3IsIHNodXRpbC5jb3B5ZmlsZSwgc3JjX2ZpbGUsIHNyY19maWxlKQorCiAgICAgZGVmIHRlc3RfY29weXRyZWVfcmV0dXJuX3ZhbHVlKHNlbGYpOgogICAgICAgICAjIGNvcHl0cmVlIHJldHVybnMgaXRzIGRlc3RpbmF0aW9uIHBhdGguCiAgICAgICAgIHNyY19kaXIgPSBzZWxmLm1rZHRlbXAoKQpAQCAtMTU2MSw3ICsxNTcyLDcgQEAKICAgICAgICAgICAgIHNlbGYuX2V4aXRlZF93aXRoID0gZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190YgogICAgICAgICAgICAgaWYgc2VsZi5fcmFpc2VfaW5fZXhpdDoKICAgICAgICAgICAgICAgICBzZWxmLl9yYWlzZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigiQ2Fubm90IGNsb3NlIikKKyAgICAgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCJDYW5ub3QgY2xvc2UiKQogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3N1cHByZXNzX2F0X2V4aXQKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKQEAgLTE1NzUsMTIgKzE1ODYsMTIgQEAKICAgICBkZWYgdGVzdF93X3NvdXJjZV9vcGVuX2ZhaWxzKHNlbGYpOgogICAgICAgICBkZWYgX29wZW4oZmlsZW5hbWUsIG1vZGU9J3InKToKICAgICAgICAgICAgIGlmIGZpbGVuYW1lID09ICdzcmNmaWxlJzoKLSAgICAgICAgICAgICAgICByYWlzZSBJT0Vycm9yKCdDYW5ub3Qgb3BlbiAic3JjZmlsZSInKQorICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoJ0Nhbm5vdCBvcGVuICJzcmNmaWxlIicpCiAgICAgICAgICAgICBhc3NlcnQgMCAgIyBzaG91bGRuJ3QgcmVhY2ggaGVyZS4KIAogICAgICAgICBzZWxmLl9zZXRfc2h1dGlsX29wZW4oX29wZW4pCiAKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgc2h1dGlsLmNvcHlmaWxlLCAnc3JjZmlsZScsICdkZXN0ZmlsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHNodXRpbC5jb3B5ZmlsZSwgJ3NyY2ZpbGUnLCAnZGVzdGZpbGUnKQogCiAgICAgZGVmIHRlc3Rfd19kZXN0X29wZW5fZmFpbHMoc2VsZik6CiAKQEAgLTE1OTAsMTQgKzE2MDEsMTQgQEAKICAgICAgICAgICAgIGlmIGZpbGVuYW1lID09ICdzcmNmaWxlJzoKICAgICAgICAgICAgICAgICByZXR1cm4gc3JjZmlsZQogICAgICAgICAgICAgaWYgZmlsZW5hbWUgPT0gJ2Rlc3RmaWxlJzoKLSAgICAgICAgICAgICAgICByYWlzZSBJT0Vycm9yKCdDYW5ub3Qgb3BlbiAiZGVzdGZpbGUiJykKKyAgICAgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCdDYW5ub3Qgb3BlbiAiZGVzdGZpbGUiJykKICAgICAgICAgICAgIGFzc2VydCAwICAjIHNob3VsZG4ndCByZWFjaCBoZXJlLgogCiAgICAgICAgIHNlbGYuX3NldF9zaHV0aWxfb3Blbihfb3BlbikKIAogICAgICAgICBzaHV0aWwuY29weWZpbGUoJ3NyY2ZpbGUnLCAnZGVzdGZpbGUnKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoc3JjZmlsZS5fZW50ZXJlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNyY2ZpbGUuX2V4aXRlZF93aXRoWzBdIGlzIElPRXJyb3IpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzcmNmaWxlLl9leGl0ZWRfd2l0aFswXSBpcyBPU0Vycm9yKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNyY2ZpbGUuX2V4aXRlZF93aXRoWzFdLmFyZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCdDYW5ub3Qgb3BlbiAiZGVzdGZpbGUiJywpKQogCkBAIC0xNjE5LDcgKzE2MzAsNyBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUoc3JjZmlsZS5fZW50ZXJlZCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRlc3RmaWxlLl9lbnRlcmVkKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoZGVzdGZpbGUuX3JhaXNlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNyY2ZpbGUuX2V4aXRlZF93aXRoWzBdIGlzIElPRXJyb3IpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzcmNmaWxlLl9leGl0ZWRfd2l0aFswXSBpcyBPU0Vycm9yKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNyY2ZpbGUuX2V4aXRlZF93aXRoWzFdLmFyZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCdDYW5ub3QgY2xvc2UnLCkpCiAKQEAgLTE2MzcsNyArMTY0OCw3IEBACiAKICAgICAgICAgc2VsZi5fc2V0X3NodXRpbF9vcGVuKF9vcGVuKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNodXRpbC5jb3B5ZmlsZSwgJ3NyY2ZpbGUnLCAnZGVzdGZpbGUnKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoc3JjZmlsZS5fZW50ZXJlZCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRlc3RmaWxlLl9lbnRlcmVkKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zaWduYWwucHkgYi9MaWIvdGVzdC90ZXN0X3NpZ25hbC5weQppbmRleCA5OTI0M2RmLi4zZDI1MGUxIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3NpZ25hbC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3NpZ25hbC5weQpAQCAtMTUsOSArMTUsNiBAQAogZXhjZXB0IEltcG9ydEVycm9yOgogICAgIHRocmVhZGluZyA9IE5vbmUKIAotaWYgc3lzLnBsYXRmb3JtIGluICgnb3MyJywgJ3Jpc2NvcycpOgotICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KCJDYW4ndCB0ZXN0IHNpZ25hbCBvbiAlcyIgJSBzeXMucGxhdGZvcm0pCi0KIAogY2xhc3MgSGFuZGxlckJDYWxsZWQoRXhjZXB0aW9uKToKICAgICBwYXNzCkBAIC0zNiw3ICszMyw3IEBACiBkZWYgaWdub3JpbmdfZWludHIoX19mdW5jLCAqYXJncywgKiprd2FyZ3MpOgogICAgIHRyeToKICAgICAgICAgcmV0dXJuIF9fZnVuYygqYXJncywgKiprd2FyZ3MpCi0gICAgZXhjZXB0IEVudmlyb25tZW50RXJyb3IgYXMgZToKKyAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVJTlRSOgogICAgICAgICAgICAgcmFpc2UKICAgICAgICAgcmV0dXJuIE5vbmUKQEAgLTMwOSwxMCArMzA2LDEwIEBACiAgICAgICAgICAgICAjIFdlIGF0dGVtcHQgdG8gZ2V0IGEgc2lnbmFsIGR1cmluZyB0aGUgc2VsZWN0IGNhbGwKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzZWxlY3Quc2VsZWN0KFtyZWFkXSwgW10sIFtdLCBUSU1FT1VUX0ZVTEwpCi0gICAgICAgICAgICBleGNlcHQgc2VsZWN0LmVycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oInNlbGVjdC5lcnJvciBub3QgcmFpc2VkIikKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk9TRXJyb3Igbm90IHJhaXNlZCIpCiAgICAgICAgICAgICBhZnRlcl90aW1lID0gdGltZS50aW1lKCkKICAgICAgICAgICAgIGR0ID0gYWZ0ZXJfdGltZSAtIGJlZm9yZV90aW1lCiAgICAgICAgICAgICBpZiBkdCA+PSBUSU1FT1VUX0hBTEY6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NpdGUucHkgYi9MaWIvdGVzdC90ZXN0X3NpdGUucHkKaW5kZXggMjkyODZjNy4uOWM3ODQwZiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zaXRlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc2l0ZS5weQpAQCAtMjIyLDExICsyMjIsNyBAQAogICAgICAgICBzaXRlLlBSRUZJWEVTID0gWyd4b3hvJ10KICAgICAgICAgZGlycyA9IHNpdGUuZ2V0c2l0ZXBhY2thZ2VzKCkKIAotICAgICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCdvczJlbXgnLCAncmlzY29zJyk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkaXJzKSwgMSkKLSAgICAgICAgICAgIHdhbnRlZCA9IG9zLnBhdGguam9pbigneG94bycsICdMaWInLCAnc2l0ZS1wYWNrYWdlcycpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpcnNbMF0sIHdhbnRlZCkKLSAgICAgICAgZWxpZiAoc3lzLnBsYXRmb3JtID09ICJkYXJ3aW4iIGFuZAorICAgICAgICBpZiAoc3lzLnBsYXRmb3JtID09ICJkYXJ3aW4iIGFuZAogICAgICAgICAgICAgc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCJQWVRIT05GUkFNRVdPUksiKSk6CiAgICAgICAgICAgICAjIE9TIFggZnJhbWV3b3JrIGJ1aWxkcwogICAgICAgICAgICAgc2l0ZS5QUkVGSVhFUyA9IFsnUHl0aG9uLmZyYW1ld29yayddCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NsaWNlLnB5IGIvTGliL3Rlc3QvdGVzdF9zbGljZS5weQppbmRleCAyZGY5MjcxLi45MjAzZDVlIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3NsaWNlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc2xpY2UucHkKQEAgLTQsOCArNCw3MCBAQAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBmcm9tIHBpY2tsZSBpbXBvcnQgbG9hZHMsIGR1bXBzCiAKK2ltcG9ydCBpdGVydG9vbHMKK2ltcG9ydCBvcGVyYXRvcgogaW1wb3J0IHN5cwogCisKK2RlZiBldmFsdWF0ZV9zbGljZV9pbmRleChhcmcpOgorICAgICIiIgorICAgIEhlbHBlciBmdW5jdGlvbiB0byBjb252ZXJ0IGEgc2xpY2UgYXJndW1lbnQgdG8gYW4gaW50ZWdlciwgYW5kIHJhaXNlCisgICAgVHlwZUVycm9yIHdpdGggYSBzdWl0YWJsZSBtZXNzYWdlIG9uIGZhaWx1cmUuCisKKyAgICAiIiIKKyAgICBpZiBoYXNhdHRyKGFyZywgJ19faW5kZXhfXycpOgorICAgICAgICByZXR1cm4gb3BlcmF0b3IuaW5kZXgoYXJnKQorICAgIGVsc2U6CisgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAgICJzbGljZSBpbmRpY2VzIG11c3QgYmUgaW50ZWdlcnMgb3IgIgorICAgICAgICAgICAgIk5vbmUgb3IgaGF2ZSBhbiBfX2luZGV4X18gbWV0aG9kIikKKworZGVmIHNsaWNlX2luZGljZXMoc2xpY2UsIGxlbmd0aCk6CisgICAgIiIiCisgICAgUmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGZvciB0aGUgc2xpY2UuaW5kaWNlcyBtZXRob2QuCisKKyAgICAiIiIKKyAgICAjIENvbXB1dGUgc3RlcCBhbmQgbGVuZ3RoIGFzIGludGVnZXJzLgorICAgIGxlbmd0aCA9IG9wZXJhdG9yLmluZGV4KGxlbmd0aCkKKyAgICBzdGVwID0gMSBpZiBzbGljZS5zdGVwIGlzIE5vbmUgZWxzZSBldmFsdWF0ZV9zbGljZV9pbmRleChzbGljZS5zdGVwKQorCisgICAgIyBSYWlzZSBWYWx1ZUVycm9yIGZvciBuZWdhdGl2ZSBsZW5ndGggb3IgemVybyBzdGVwLgorICAgIGlmIGxlbmd0aCA8IDA6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImxlbmd0aCBzaG91bGQgbm90IGJlIG5lZ2F0aXZlIikKKyAgICBpZiBzdGVwID09IDA6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInNsaWNlIHN0ZXAgY2Fubm90IGJlIHplcm8iKQorCisgICAgIyBGaW5kIGxvd2VyIGFuZCB1cHBlciBib3VuZHMgZm9yIHN0YXJ0IGFuZCBzdG9wLgorICAgIGxvd2VyID0gLTEgaWYgc3RlcCA8IDAgZWxzZSAwCisgICAgdXBwZXIgPSBsZW5ndGggLSAxIGlmIHN0ZXAgPCAwIGVsc2UgbGVuZ3RoCisKKyAgICAjIENvbXB1dGUgc3RhcnQuCisgICAgaWYgc2xpY2Uuc3RhcnQgaXMgTm9uZToKKyAgICAgICAgc3RhcnQgPSB1cHBlciBpZiBzdGVwIDwgMCBlbHNlIGxvd2VyCisgICAgZWxzZToKKyAgICAgICAgc3RhcnQgPSBldmFsdWF0ZV9zbGljZV9pbmRleChzbGljZS5zdGFydCkKKyAgICAgICAgc3RhcnQgPSBtYXgoc3RhcnQgKyBsZW5ndGgsIGxvd2VyKSBpZiBzdGFydCA8IDAgZWxzZSBtaW4oc3RhcnQsIHVwcGVyKQorCisgICAgIyBDb21wdXRlIHN0b3AuCisgICAgaWYgc2xpY2Uuc3RvcCBpcyBOb25lOgorICAgICAgICBzdG9wID0gbG93ZXIgaWYgc3RlcCA8IDAgZWxzZSB1cHBlcgorICAgIGVsc2U6CisgICAgICAgIHN0b3AgPSBldmFsdWF0ZV9zbGljZV9pbmRleChzbGljZS5zdG9wKQorICAgICAgICBzdG9wID0gbWF4KHN0b3AgKyBsZW5ndGgsIGxvd2VyKSBpZiBzdG9wIDwgMCBlbHNlIG1pbihzdG9wLCB1cHBlcikKKworICAgIHJldHVybiBzdGFydCwgc3RvcCwgc3RlcAorCisKKyMgQ2xhc3MgcHJvdmlkaW5nIGFuIF9faW5kZXhfXyBtZXRob2QuICBVc2VkIGZvciB0ZXN0aW5nIHNsaWNlLmluZGljZXMuCisKK2NsYXNzIE15SW5kZXhhYmxlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi52YWx1ZSA9IHZhbHVlCisKKyAgICBkZWYgX19pbmRleF9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi52YWx1ZQorCisKIGNsYXNzIFNsaWNlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9jb25zdHJ1Y3RvcihzZWxmKToKQEAgLTc1LDYgKzEzNywyMiBAQAogICAgICAgICBzID0gc2xpY2Uob2JqKQogICAgICAgICBzZWxmLmFzc2VydFRydWUocy5zdG9wIGlzIG9iaikKIAorICAgIGRlZiBjaGVja19pbmRpY2VzKHNlbGYsIHNsaWNlLCBsZW5ndGgpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBhY3R1YWwgPSBzbGljZS5pbmRpY2VzKGxlbmd0aCkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICBhY3R1YWwgPSAidmFsdWVlcnJvciIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZXhwZWN0ZWQgPSBzbGljZV9pbmRpY2VzKHNsaWNlLCBsZW5ndGgpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgZXhwZWN0ZWQgPSAidmFsdWVlcnJvciIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWwsIGV4cGVjdGVkKQorCisgICAgICAgIGlmIGxlbmd0aCA+PSAwIGFuZCBzbGljZS5zdGVwICE9IDA6CisgICAgICAgICAgICBhY3R1YWwgPSByYW5nZSgqc2xpY2UuaW5kaWNlcyhsZW5ndGgpKQorICAgICAgICAgICAgZXhwZWN0ZWQgPSByYW5nZShsZW5ndGgpW3NsaWNlXQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWwsIGV4cGVjdGVkKQorCiAgICAgZGVmIHRlc3RfaW5kaWNlcyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzbGljZShOb25lICAgICAgICAgICApLmluZGljZXMoMTApLCAoMCwgMTAsICAxKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzbGljZShOb25lLCAgTm9uZSwgIDIpLmluZGljZXMoMTApLCAoMCwgMTAsICAyKSkKQEAgLTEwOCw3ICsxODYsNDEgQEAKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocmFuZ2UoMTApKVs6OnN5cy5tYXhzaXplIC0gMV0sIFswXSkKIAotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBzbGljZShOb25lKS5pbmRpY2VzLCAxPDwxMDApCisgICAgICAgICMgQ2hlY2sgYSB2YXJpZXR5IG9mIHN0YXJ0LCBzdG9wLCBzdGVwIGFuZCBsZW5ndGggdmFsdWVzLCBpbmNsdWRpbmcKKyAgICAgICAgIyB2YWx1ZXMgZXhjZWVkaW5nIHN5cy5tYXhzaXplIChzZWUgaXNzdWUgIzE0Nzk0KS4KKyAgICAgICAgdmFscyA9IFtOb25lLCAtMioqMTAwLCAtMioqMzAsIC01MywgLTcsIC0xLCAwLCAxLCA3LCA1MywgMioqMzAsIDIqKjEwMF0KKyAgICAgICAgbGVuZ3RocyA9IFswLCAxLCA3LCA1MywgMioqMzAsIDIqKjEwMF0KKyAgICAgICAgZm9yIHNsaWNlX2FyZ3MgaW4gaXRlcnRvb2xzLnByb2R1Y3QodmFscywgcmVwZWF0PTMpOgorICAgICAgICAgICAgcyA9IHNsaWNlKCpzbGljZV9hcmdzKQorICAgICAgICAgICAgZm9yIGxlbmd0aCBpbiBsZW5ndGhzOgorICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tfaW5kaWNlcyhzLCBsZW5ndGgpCisgICAgICAgIHNlbGYuY2hlY2tfaW5kaWNlcyhzbGljZSgwLCAxMCwgMSksIC0zKQorCisgICAgICAgICMgTmVnYXRpdmUgbGVuZ3RoIHNob3VsZCByYWlzZSBWYWx1ZUVycm9yCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBzbGljZShOb25lKS5pbmRpY2VzKC0xKQorCisgICAgICAgICMgWmVybyBzdGVwIHNob3VsZCByYWlzZSBWYWx1ZUVycm9yCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBzbGljZSgwLCAxMCwgMCkuaW5kaWNlcyg1KQorCisgICAgICAgICMgVXNpbmcgYSBzdGFydCwgc3RvcCBvciBzdGVwIG9yIGxlbmd0aCB0aGF0IGNhbid0IGJlIGludGVycHJldGVkIGFzIGFuCisgICAgICAgICMgaW50ZWdlciBzaG91bGQgZ2l2ZSBhIFR5cGVFcnJvciAuLi4KKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgc2xpY2UoMC4wLCAxMCwgMSkuaW5kaWNlcyg1KQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICBzbGljZSgwLCAxMC4wLCAxKS5pbmRpY2VzKDUpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIHNsaWNlKDAsIDEwLCAxLjApLmluZGljZXMoNSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgc2xpY2UoMCwgMTAsIDEpLmluZGljZXMoNS4wKQorCisgICAgICAgICMgLi4uIGJ1dCBpdCBzaG91bGQgYmUgZmluZSB0byB1c2UgYSBjdXN0b20gY2xhc3MgdGhhdCBwcm92aWRlcyBpbmRleC4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzbGljZSgwLCAxMCwgMSkuaW5kaWNlcyg1KSwgKDAsIDUsIDEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNsaWNlKE15SW5kZXhhYmxlKDApLCAxMCwgMSkuaW5kaWNlcyg1KSwgKDAsIDUsIDEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNsaWNlKDAsIE15SW5kZXhhYmxlKDEwKSwgMSkuaW5kaWNlcyg1KSwgKDAsIDUsIDEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNsaWNlKDAsIDEwLCBNeUluZGV4YWJsZSgxKSkuaW5kaWNlcyg1KSwgKDAsIDUsIDEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNsaWNlKDAsIDEwLCAxKS5pbmRpY2VzKE15SW5kZXhhYmxlKDUpKSwgKDAsIDUsIDEpKQogCiAgICAgZGVmIHRlc3Rfc2V0c2xpY2Vfd2l0aG91dF9nZXRzbGljZShzZWxmKToKICAgICAgICAgdG1wID0gW10KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc210cGxpYi5weSBiL0xpYi90ZXN0L3Rlc3Rfc210cGxpYi5weQppbmRleCBmOTNkMzU1Li44ZjY0ZWMxIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3NtdHBsaWIucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zbXRwbGliLnB5CkBAIC0yMjIsNyArMjIyLDcgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc210cC5zb3VyY2VfYWRkcmVzcywgKCcxMjcuMC4wLjEnLCBwb3J0KSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc210cC5sb2NhbF9ob3N0bmFtZSwgJ2xvY2FsaG9zdCcpCiAgICAgICAgICAgICBzbXRwLnF1aXQoKQotICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FQUREUklOVVNFOgogICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoImNvdWxkbid0IGJpbmQgdG8gcG9ydCAlZCIgJSBwb3J0KQogICAgICAgICAgICAgcmFpc2UKQEAgLTUyNCwxMiArNTI0LDYgQEAKIAogY2xhc3MgTm9uQ29ubmVjdGluZ1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc210cGxpYi5zb2NrZXQgPSBtb2NrX3NvY2tldAotCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICBzbXRwbGliLnNvY2tldCA9IHNvY2tldAotCiAgICAgZGVmIHRlc3ROb3RDb25uZWN0ZWQoc2VsZik6CiAgICAgICAgICMgVGVzdCB2YXJpb3VzIG9wZXJhdGlvbnMgb24gYW4gdW5jb25uZWN0ZWQgU01UUCBvYmplY3QgdGhhdAogICAgICAgICAjIHNob3VsZCByYWlzZSBleGNlcHRpb25zIChhdCBwcmVzZW50IHRoZSBhdHRlbXB0IGluIFNNVFAuc2VuZApAQCAtNTQxLDEwICs1MzUsMTAgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgc210cC5zZW5kLCAndGVzdCBtc2cnKQogCiAgICAgZGVmIHRlc3ROb25udW1lcmljUG9ydChzZWxmKToKLSAgICAgICAgIyBjaGVjayB0aGF0IG5vbi1udW1lcmljIHBvcnQgcmFpc2VzIHNvY2tldC5lcnJvcgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtb2NrX3NvY2tldC5lcnJvciwgc210cGxpYi5TTVRQLAorICAgICAgICAjIGNoZWNrIHRoYXQgbm9uLW51bWVyaWMgcG9ydCByYWlzZXMgT1NFcnJvcgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBzbXRwbGliLlNNVFAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbGhvc3QiLCAiYm9ndXMiKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtb2NrX3NvY2tldC5lcnJvciwgc210cGxpYi5TTVRQLAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBzbXRwbGliLlNNVFAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbGhvc3Q6Ym9ndXMiKQogCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc25kaGRyLnB5IGIvTGliL3Rlc3QvdGVzdF9zbmRoZHIucHkKaW5kZXggMTAwNDY4OC4uNWUwYWJlMCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zbmRoZHIucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zbmRoZHIucHkKQEAgLTEyLDcgKzEyLDcgQEAKICAgICAgICAgICAgICgnc25kaGRyLmhjb20nLCAoJ2hjb20nLCAyMjA1MC4wLCAxLCAtMSwgOCkpLAogICAgICAgICAgICAgKCdzbmRoZHIuc25kdCcsICgnc25kdCcsIDQ0MTAwLCAxLCA1LCA4KSksCiAgICAgICAgICAgICAoJ3NuZGhkci52b2MnLCAoJ3ZvYycsIDAsIDEsIC0xLCA4KSksCi0gICAgICAgICAgICAoJ3NuZGhkci53YXYnLCAoJ3dhdicsIDQ0MTAwLCAyLCAtMSwgMTYpKSwKKyAgICAgICAgICAgICgnc25kaGRyLndhdicsICgnd2F2JywgNDQxMDAsIDIsIDUsIDE2KSksCiAgICAgICAgICk6CiAgICAgICAgICAgICBmaWxlbmFtZSA9IGZpbmRmaWxlKGZpbGVuYW1lLCBzdWJkaXI9InNuZGhkcmRhdGEiKQogICAgICAgICAgICAgd2hhdCA9IHNuZGhkci53aGF0KGZpbGVuYW1lKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zb2NrZXQucHkgYi9MaWIvdGVzdC90ZXN0X3NvY2tldC5weQppbmRleCA1NDZhMTBkLi5hMmRlMzk4IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3NvY2tldC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3NvY2tldC5weQpAQCAtMiw3ICsyLDYgQEAKIAogaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKLWZyb20gdW5pdHRlc3QuY2FzZSBpbXBvcnQgX0V4cGVjdGVkRmFpbHVyZQogCiBpbXBvcnQgZXJybm8KIGltcG9ydCBpbwpAQCAtNDYsNyArNDUsNyBAQAogICAgICIiIkNoZWNrIHdoZXRoZXIgQ0FOIHNvY2tldHMgYXJlIHN1cHBvcnRlZCBvbiB0aGlzIGhvc3QuIiIiCiAgICAgdHJ5OgogICAgICAgICBzID0gc29ja2V0LnNvY2tldChzb2NrZXQuUEZfQ0FOLCBzb2NrZXQuU09DS19SQVcsIHNvY2tldC5DQU5fUkFXKQotICAgIGV4Y2VwdCAoQXR0cmlidXRlRXJyb3IsIHNvY2tldC5lcnJvciwgT1NFcnJvcik6CisgICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgT1NFcnJvcik6CiAgICAgICAgIHJldHVybiBGYWxzZQogICAgIGVsc2U6CiAgICAgICAgIHMuY2xvc2UoKQpAQCAtMTIxLDEyICsxMjAsNDIgQEAKICAgICBpbnRlcmZhY2UgPSAndmNhbjAnCiAgICAgYnVmc2l6ZSA9IDEyOAogCisgICAgIiIiVGhlIENBTiBmcmFtZSBzdHJ1Y3R1cmUgaXMgZGVmaW5lZCBpbiA8bGludXgvY2FuLmg+OgorCisgICAgc3RydWN0IGNhbl9mcmFtZSB7CisgICAgICAgIGNhbmlkX3QgY2FuX2lkOyAgLyogMzIgYml0IENBTl9JRCArIEVGRi9SVFIvRVJSIGZsYWdzICovCisgICAgICAgIF9fdTggICAgY2FuX2RsYzsgLyogZGF0YSBsZW5ndGggY29kZTogMCAuLiA4ICovCisgICAgICAgIF9fdTggICAgZGF0YVs4XSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSk7CisgICAgfTsKKyAgICAiIiIKKyAgICBjYW5fZnJhbWVfZm10ID0gIj1JQjN4OHMiCisgICAgY2FuX2ZyYW1lX3NpemUgPSBzdHJ1Y3QuY2FsY3NpemUoY2FuX2ZyYW1lX2ZtdCkKKworICAgICIiIlRoZSBCcm9hZGNhc3QgTWFuYWdlbWVudCBDb21tYW5kIGZyYW1lIHN0cnVjdHVyZSBpcyBkZWZpbmVkCisgICAgaW4gPGxpbnV4L2Nhbi9iY20uaD46CisKKyAgICBzdHJ1Y3QgYmNtX21zZ19oZWFkIHsKKyAgICAgICAgX191MzIgb3Bjb2RlOworICAgICAgICBfX3UzMiBmbGFnczsKKyAgICAgICAgX191MzIgY291bnQ7CisgICAgICAgIHN0cnVjdCB0aW1ldmFsIGl2YWwxLCBpdmFsMjsKKyAgICAgICAgY2FuaWRfdCBjYW5faWQ7CisgICAgICAgIF9fdTMyIG5mcmFtZXM7CisgICAgICAgIHN0cnVjdCBjYW5fZnJhbWUgZnJhbWVzWzBdOworICAgIH0KKworICAgIGBiY21fbXNnX2hlYWRgIG11c3QgYmUgOCBieXRlcyBhbGlnbmVkIGJlY2F1c2Ugb2YgdGhlIGBmcmFtZXNgIG1lbWJlciAoc2VlCisgICAgYHN0cnVjdCBjYW5fZnJhbWVgIGRlZmluaXRpb24pLiBNdXN0IHVzZSBuYXRpdmUgbm90IHN0YW5kYXJkIHR5cGVzIGZvciBwYWNraW5nLgorICAgICIiIgorICAgIGJjbV9jbWRfbXNnX2ZtdCA9ICJAM0k0bDJJIgorICAgIGJjbV9jbWRfbXNnX2ZtdCArPSAieCIgKiAoc3RydWN0LmNhbGNzaXplKGJjbV9jbWRfbXNnX2ZtdCkgJSA4KQorCiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLnMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5QRl9DQU4sIHNvY2tldC5TT0NLX1JBVywgc29ja2V0LkNBTl9SQVcpCiAgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzZWxmLnMuY2xvc2UpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYucy5iaW5kKChzZWxmLmludGVyZmFjZSwpKQotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoJ25ldHdvcmsgaW50ZXJmYWNlIGAlc2AgZG9lcyBub3QgZXhpc3QnICUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaW50ZXJmYWNlKQogCkBAIC0yNDIsOSArMjcxLDYgQEAKICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigidGVzdF9mdW5jIG11c3QgYmUgYSBjYWxsYWJsZSBmdW5jdGlvbiIpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHRlc3RfZnVuYygpCi0gICAgICAgIGV4Y2VwdCBfRXhwZWN0ZWRGYWlsdXJlOgotICAgICAgICAgICAgIyBXZSBkZWxpYmVyYXRlbHkgaWdub3JlIGV4cGVjdGVkIGZhaWx1cmVzCi0gICAgICAgICAgICBwYXNzCiAgICAgICAgIGV4Y2VwdCBCYXNlRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICBzZWxmLnF1ZXVlLnB1dChlKQogICAgICAgICBmaW5hbGx5OgpAQCAtMjk1LDcgKzMyMSw3IEBACiAgICAgICAgIHNlbGYuY2xpID0gc29ja2V0LnNvY2tldChzb2NrZXQuUEZfQ0FOLCBzb2NrZXQuU09DS19SQVcsIHNvY2tldC5DQU5fUkFXKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLmNsaS5iaW5kKChzZWxmLmludGVyZmFjZSwpKQotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICMgc2tpcFRlc3Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaGVyZSwgYW5kIHdpbGwgYmUgY2FsbGVkIGluIHRoZQogICAgICAgICAgICAgIyBzZXJ2ZXIgaW5zdGVhZAogICAgICAgICAgICAgcGFzcwpAQCAtNjA4LDcgKzYzNCw3IEBACiAgICAgICAgICAgICAgICAgICAgIGZvciBvYmogaW4gYXJnc10KICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoKmNhbGxhcmdzKQotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAjIFhYWDogY2hlY2sgZXJybm8/CiAgICAgICAgICAgICBlcnIgPSBzdHIoZSkKICAgICAgICAgZWxzZToKQEAgLTYyNiw4ICs2NTIsMTcgQEAKIAogICAgIGRlZiB0ZXN0X3JlcHIoc2VsZik6CiAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCi0gICAgICAgIHNlbGYuYWRkQ2xlYW51cChzLmNsb3NlKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVwcihzKS5zdGFydHN3aXRoKCI8c29ja2V0LnNvY2tldCBvYmplY3QiKSkKKyAgICAgICAgd2l0aCBzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbignZmQ9JWknICUgcy5maWxlbm8oKSwgcmVwcihzKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2ZhbWlseT0laScgJSBzb2NrZXQuQUZfSU5FVCwgcmVwcihzKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3R5cGU9JWknICUgc29ja2V0LlNPQ0tfU1RSRUFNLCByZXByKHMpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigncHJvdG89MCcsIHJlcHIocykpCisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdyYWRkcicsIHJlcHIocykpCisgICAgICAgICAgICBzLmJpbmQoKCcxMjcuMC4wLjEnLCAwKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2xhZGRyJywgcmVwcihzKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc3RyKHMuZ2V0c29ja25hbWUoKSksIHJlcHIocykpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ1tjbG9zZWRdJywgcmVwcihzKSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbignbGFkZHInLCByZXByKHMpKQogCiAgICAgZGVmIHRlc3Rfd2Vha3JlZihzZWxmKToKICAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKQEAgLTY0NSwxMSArNjgwLDExIEBACiAgICAgZGVmIHRlc3RTb2NrZXRFcnJvcihzZWxmKToKICAgICAgICAgIyBUZXN0aW5nIHNvY2tldCBtb2R1bGUgZXhjZXB0aW9ucwogICAgICAgICBtc2cgPSAiRXJyb3IgcmFpc2luZyBzb2NrZXQgZXhjZXB0aW9uICglcykuIgotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgbXNnPW1zZyAlICdzb2NrZXQuZXJyb3InKToKLSAgICAgICAgICAgIHJhaXNlIHNvY2tldC5lcnJvcgotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgbXNnPW1zZyAlICdzb2NrZXQuaGVycm9yJyk6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgbXNnPW1zZyAlICdPU0Vycm9yJyk6CisgICAgICAgICAgICByYWlzZSBPU0Vycm9yCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgbXNnPW1zZyAlICdzb2NrZXQuaGVycm9yJyk6CiAgICAgICAgICAgICByYWlzZSBzb2NrZXQuaGVycm9yCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCBtc2c9bXNnICUgJ3NvY2tldC5nYWllcnJvcicpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIG1zZz1tc2cgJSAnc29ja2V0LmdhaWVycm9yJyk6CiAgICAgICAgICAgICByYWlzZSBzb2NrZXQuZ2FpZXJyb3IKIAogICAgIGRlZiB0ZXN0U2VuZHRvRXJyb3JzKHNlbGYpOgpAQCAtNzEyLDEzICs3NDcsMTMgQEAKICAgICAgICAgaG9zdG5hbWUgPSBzb2NrZXQuZ2V0aG9zdG5hbWUoKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpcCA9IHNvY2tldC5nZXRob3N0YnluYW1lKGhvc3RuYW1lKQotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICMgUHJvYmFibHkgbmFtZSBsb29rdXAgd2Fzbid0IHNldCB1cCByaWdodDsgc2tpcCB0aGlzIHRlc3QKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBzZWxmLmFzc2VydFRydWUoaXAuZmluZCgnLicpID49IDAsICJFcnJvciByZXNvbHZpbmcgaG9zdCB0byBpcC4iKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBobmFtZSwgYWxpYXNlcywgaXBhZGRycyA9IHNvY2tldC5nZXRob3N0YnlhZGRyKGlwKQotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICMgUHJvYmFibHkgYSBzaW1pbGFyIHByb2JsZW0gYXMgYWJvdmU7IHNraXAgdGhpcyB0ZXN0CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgYWxsX2hvc3RfbmFtZXMgPSBbaG9zdG5hbWUsIGhuYW1lXSArIGFsaWFzZXMKQEAgLTczMiw3ICs3NjcsNyBAQAogICAgICAgICBvbGRobiA9IHNvY2tldC5nZXRob3N0bmFtZSgpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNvY2tldC5zZXRob3N0bmFtZSgnbmV3JykKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgogICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FUEVSTToKICAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJ0ZXN0IHNob3VsZCBiZSBydW4gYXMgcm9vdCIpCiAgICAgICAgICAgICBlbHNlOgpAQCAtNzY2LDggKzgwMSw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvY2tldC5pZl9uYW1laW5kZXgoKSBub3QgYXZhaWxhYmxlLicpCiAgICAgZGVmIHRlc3RJbnZhbGlkSW50ZXJmYWNlTmFtZUluZGV4KHNlbGYpOgogICAgICAgICAjIHRlc3Qgbm9uZXhpc3RlbnQgaW50ZXJmYWNlIGluZGV4L25hbWUKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCBzb2NrZXQuaWZfaW5kZXh0b25hbWUsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgc29ja2V0LmlmX25hbWV0b2luZGV4LCAnX0RFQURCRUVGJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc29ja2V0LmlmX2luZGV4dG9uYW1lLCAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBzb2NrZXQuaWZfbmFtZXRvaW5kZXgsICdfREVBREJFRUYnKQogICAgICAgICAjIHRlc3Qgd2l0aCBpbnZhbGlkIHZhbHVlcwogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNvY2tldC5pZl9uYW1ldG9pbmRleCwgMCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzb2NrZXQuaWZfaW5kZXh0b25hbWUsICdfREVBREJFRUYnKQpAQCAtNzg4LDcgKzgyMyw3IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgICMgT24gc29tZSB2ZXJzaW9ucywgdGhpcyBjcmFzaGVzIHRoZSBpbnRlcnByZXRlci4KICAgICAgICAgICAgIHNvY2tldC5nZXRuYW1laW5mbygoJ3gnLCAwLCAwLCAwKSwgMCkKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAKICAgICBkZWYgdGVzdE50b0goc2VsZik6CkBAIC04MzUsMTcgKzg3MCwxNyBAQAogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHBvcnQgPSBzb2NrZXQuZ2V0c2VydmJ5bmFtZShzZXJ2aWNlLCAndGNwJykKICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIHNvY2tldC5lcnJvcgorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcgogICAgICAgICAjIFRyeSBzYW1lIGNhbGwgd2l0aCBvcHRpb25hbCBwcm90b2NvbCBvbWl0dGVkCiAgICAgICAgIHBvcnQyID0gc29ja2V0LmdldHNlcnZieW5hbWUoc2VydmljZSkKICAgICAgICAgZXEocG9ydCwgcG9ydDIpCiAgICAgICAgICMgVHJ5IHVkcCwgYnV0IGRvbid0IGJhcmYgaWYgaXQgZG9lc24ndCBleGlzdAogICAgICAgICB0cnk6CiAgICAgICAgICAgICB1ZHBwb3J0ID0gc29ja2V0LmdldHNlcnZieW5hbWUoc2VydmljZSwgJ3VkcCcpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgdWRwcG9ydCA9IE5vbmUKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGVxKHVkcHBvcnQsIHBvcnQpCkBAIC05MDEsNyArOTM2LDcgQEAKICAgICAgICAgZyA9IGxhbWJkYSBhOiBpbmV0X3B0b24oQUZfSU5FVCwgYSkKIAogICAgICAgICBhc3NlcnRJbnZhbGlkID0gbGFtYmRhIGZ1bmMsYTogc2VsZi5hc3NlcnRSYWlzZXMoCi0gICAgICAgICAgICAoc29ja2V0LmVycm9yLCBWYWx1ZUVycm9yKSwgZnVuYywgYQorICAgICAgICAgICAgKE9TRXJyb3IsIFZhbHVlRXJyb3IpLCBmdW5jLCBhCiAgICAgICAgICkKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGInXHgwMFx4MDBceDAwXHgwMCcsIGYoJzAuMC4wLjAnKSkKQEAgLTkzNiw3ICs5NzEsNyBAQAogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIGYgPSBsYW1iZGEgYTogaW5ldF9wdG9uKEFGX0lORVQ2LCBhKQogICAgICAgICBhc3NlcnRJbnZhbGlkID0gbGFtYmRhIGE6IHNlbGYuYXNzZXJ0UmFpc2VzKAotICAgICAgICAgICAgKHNvY2tldC5lcnJvciwgVmFsdWVFcnJvciksIGYsIGEKKyAgICAgICAgICAgIChPU0Vycm9yLCBWYWx1ZUVycm9yKSwgZiwgYQogICAgICAgICApCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiJ1x4MDAnICogMTYsIGYoJzo6JykpCkBAIC05ODUsNyArMTAyMCw3IEBACiAgICAgICAgIGZyb20gc29ja2V0IGltcG9ydCBpbmV0X250b2EgYXMgZiwgaW5ldF9udG9wLCBBRl9JTkVUCiAgICAgICAgIGcgPSBsYW1iZGEgYTogaW5ldF9udG9wKEFGX0lORVQsIGEpCiAgICAgICAgIGFzc2VydEludmFsaWQgPSBsYW1iZGEgZnVuYyxhOiBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgIChzb2NrZXQuZXJyb3IsIFZhbHVlRXJyb3IpLCBmdW5jLCBhCisgICAgICAgICAgICAoT1NFcnJvciwgVmFsdWVFcnJvciksIGZ1bmMsIGEKICAgICAgICAgKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzEuMC4xLjAnLCBmKGInXHgwMVx4MDBceDAxXHgwMCcpKQpAQCAtMTAxNCw3ICsxMDQ5LDcgQEAKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBmID0gbGFtYmRhIGE6IGluZXRfbnRvcChBRl9JTkVUNiwgYSkKICAgICAgICAgYXNzZXJ0SW52YWxpZCA9IGxhbWJkYSBhOiBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgIChzb2NrZXQuZXJyb3IsIFZhbHVlRXJyb3IpLCBmLCBhCisgICAgICAgICAgICAoT1NFcnJvciwgVmFsdWVFcnJvciksIGYsIGEKICAgICAgICAgKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzo6JywgZihiJ1x4MDAnICogMTYpKQpAQCAtMTA0Miw3ICsxMDc3LDcgQEAKICAgICAgICAgIyBBdCBsZWFzdCBmb3IgZUNvcy4gIFRoaXMgaXMgcmVxdWlyZWQgZm9yIHRoZSBTLzM5MCB0byBwYXNzLgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBteV9pcF9hZGRyID0gc29ja2V0LmdldGhvc3RieW5hbWUoc29ja2V0LmdldGhvc3RuYW1lKCkpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgIyBQcm9iYWJseSBuYW1lIGxvb2t1cCB3YXNuJ3Qgc2V0IHVwIHJpZ2h0OyBza2lwIHRoaXMgdGVzdAogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4obmFtZVswXSwgKCIwLjAuMC4wIiwgbXlfaXBfYWRkciksICclcyBpbnZhbGlkJyAlIG5hbWVbMF0pCkBAIC0xMDY5LDcgKzExMDQsNyBAQAogICAgICAgICBzb2NrID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQogICAgICAgICBzb2NrLnNldHRpbWVvdXQoMSkKICAgICAgICAgc29jay5jbG9zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgc29jay5zZW5kLCBiInNwYW0iKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBzb2NrLnNlbmQsIGIic3BhbSIpCiAKICAgICBkZWYgdGVzdE5ld0F0dHJpYnV0ZXMoc2VsZik6CiAgICAgICAgICMgdGVzdGluZyAuZmFtaWx5LCAudHlwZSBhbmQgLnByb3RvY29sCkBAIC0xMTcxLDcgKzEyMDYsNyBAQAogCiAgICAgZGVmIHRlc3RfZ2V0bmFtZWluZm8oc2VsZik6CiAgICAgICAgICMgb25seSBJUCBhZGRyZXNzZXMgYXJlIGFsbG93ZWQKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCBzb2NrZXQuZ2V0bmFtZWluZm8sICgnbWFpbC5weXRob24ub3JnJywwKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc29ja2V0LmdldG5hbWVpbmZvLCAoJ21haWwucHl0aG9uLm9yZycsMCksIDApCiAKICAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhzdXBwb3J0LmlzX3Jlc291cmNlX2VuYWJsZWQoJ25ldHdvcmsnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV0d29yayBpcyBub3QgZW5hYmxlZCcpCkBAIC0xMjk0LDEwICsxMzI5LDM1IEBACiAgICAgICAgIHNvY2tldC5QRl9DQU4KICAgICAgICAgc29ja2V0LkNBTl9SQVcKIAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc29ja2V0LCAiQ0FOX0JDTSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICdzb2NrZXQuQ0FOX0JDTSByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCisgICAgZGVmIHRlc3RCQ01Db25zdGFudHMoc2VsZik6CisgICAgICAgIHNvY2tldC5DQU5fQkNNCisKKyAgICAgICAgIyBvcGNvZGVzCisgICAgICAgIHNvY2tldC5DQU5fQkNNX1RYX1NFVFVQICAgICAjIGNyZWF0ZSAoY3ljbGljKSB0cmFuc21pc3Npb24gdGFzaworICAgICAgICBzb2NrZXQuQ0FOX0JDTV9UWF9ERUxFVEUgICAgIyByZW1vdmUgKGN5Y2xpYykgdHJhbnNtaXNzaW9uIHRhc2sKKyAgICAgICAgc29ja2V0LkNBTl9CQ01fVFhfUkVBRCAgICAgICMgcmVhZCBwcm9wZXJ0aWVzIG9mIChjeWNsaWMpIHRyYW5zbWlzc2lvbiB0YXNrCisgICAgICAgIHNvY2tldC5DQU5fQkNNX1RYX1NFTkQgICAgICAjIHNlbmQgb25lIENBTiBmcmFtZQorICAgICAgICBzb2NrZXQuQ0FOX0JDTV9SWF9TRVRVUCAgICAgIyBjcmVhdGUgUlggY29udGVudCBmaWx0ZXIgc3Vic2NyaXB0aW9uCisgICAgICAgIHNvY2tldC5DQU5fQkNNX1JYX0RFTEVURSAgICAjIHJlbW92ZSBSWCBjb250ZW50IGZpbHRlciBzdWJzY3JpcHRpb24KKyAgICAgICAgc29ja2V0LkNBTl9CQ01fUlhfUkVBRCAgICAgICMgcmVhZCBwcm9wZXJ0aWVzIG9mIFJYIGNvbnRlbnQgZmlsdGVyIHN1YnNjcmlwdGlvbgorICAgICAgICBzb2NrZXQuQ0FOX0JDTV9UWF9TVEFUVVMgICAgIyByZXBseSB0byBUWF9SRUFEIHJlcXVlc3QKKyAgICAgICAgc29ja2V0LkNBTl9CQ01fVFhfRVhQSVJFRCAgICMgbm90aWZpY2F0aW9uIG9uIHBlcmZvcm1lZCB0cmFuc21pc3Npb25zIChjb3VudD0wKQorICAgICAgICBzb2NrZXQuQ0FOX0JDTV9SWF9TVEFUVVMgICAgIyByZXBseSB0byBSWF9SRUFEIHJlcXVlc3QKKyAgICAgICAgc29ja2V0LkNBTl9CQ01fUlhfVElNRU9VVCAgICMgY3ljbGljIG1lc3NhZ2UgaXMgYWJzZW50CisgICAgICAgIHNvY2tldC5DQU5fQkNNX1JYX0NIQU5HRUQgICAjIHVwZGF0ZWQgQ0FOIGZyYW1lIChkZXRlY3RlZCBjb250ZW50IGNoYW5nZSkKKwogICAgIGRlZiB0ZXN0Q3JlYXRlU29ja2V0KHNlbGYpOgogICAgICAgICB3aXRoIHNvY2tldC5zb2NrZXQoc29ja2V0LlBGX0NBTiwgc29ja2V0LlNPQ0tfUkFXLCBzb2NrZXQuQ0FOX1JBVykgYXMgczoKICAgICAgICAgICAgIHBhc3MKIAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc29ja2V0LCAiQ0FOX0JDTSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICdzb2NrZXQuQ0FOX0JDTSByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCisgICAgZGVmIHRlc3RDcmVhdGVCQ01Tb2NrZXQoc2VsZik6CisgICAgICAgIHdpdGggc29ja2V0LnNvY2tldChzb2NrZXQuUEZfQ0FOLCBzb2NrZXQuU09DS19ER1JBTSwgc29ja2V0LkNBTl9CQ00pIGFzIHM6CisgICAgICAgICAgICBwYXNzCisKICAgICBkZWYgdGVzdEJpbmRBbnkoc2VsZik6CiAgICAgICAgIHdpdGggc29ja2V0LnNvY2tldChzb2NrZXQuUEZfQ0FOLCBzb2NrZXQuU09DS19SQVcsIHNvY2tldC5DQU5fUkFXKSBhcyBzOgogICAgICAgICAgICAgcy5iaW5kKCgnJywgKSkKQEAgLTEzMDUsNyArMTM2NSw3IEBACiAgICAgZGVmIHRlc3RUb29Mb25nSW50ZXJmYWNlTmFtZShzZWxmKToKICAgICAgICAgIyBtb3N0IHN5c3RlbXMgbGltaXQgSUZOQU1TSVogdG8gMTYsIHRha2UgMTAyNCB0byBiZSBzdXJlCiAgICAgICAgIHdpdGggc29ja2V0LnNvY2tldChzb2NrZXQuUEZfQ0FOLCBzb2NrZXQuU09DS19SQVcsIHNvY2tldC5DQU5fUkFXKSBhcyBzOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNSZWdleChzb2NrZXQuZXJyb3IsICdpbnRlcmZhY2UgbmFtZSB0b28gbG9uZycsCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KE9TRXJyb3IsICdpbnRlcmZhY2UgbmFtZSB0b28gbG9uZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuYmluZCwgKCd4JyAqIDEwMjQsKSkKIAogICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc29ja2V0LCAiQ0FOX1JBV19MT09QQkFDSyIpLApAQCAtMTMzMCwxOSArMTM5MCw4IEBACiAKIAogQHVuaXR0ZXN0LnNraXBVbmxlc3MoSEFWRV9TT0NLRVRfQ0FOLCAnU29ja2V0Q2FuIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKLUB1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZCwgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCiBjbGFzcyBDQU5UZXN0KFRocmVhZGVkQ0FOU29ja2V0VGVzdCk6CiAKLSAgICAiIiJUaGUgQ0FOIGZyYW1lIHN0cnVjdHVyZSBpcyBkZWZpbmVkIGluIDxsaW51eC9jYW4uaD46Ci0KLSAgICBzdHJ1Y3QgY2FuX2ZyYW1lIHsKLSAgICAgICAgY2FuaWRfdCBjYW5faWQ7ICAvKiAzMiBiaXQgQ0FOX0lEICsgRUZGL1JUUi9FUlIgZmxhZ3MgKi8KLSAgICAgICAgX191OCAgICBjYW5fZGxjOyAvKiBkYXRhIGxlbmd0aCBjb2RlOiAwIC4uIDggKi8KLSAgICAgICAgX191OCAgICBkYXRhWzhdIF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKTsKLSAgICB9OwotICAgICIiIgotICAgIGNhbl9mcmFtZV9mbXQgPSAiPUlCM3g4cyIKLQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXRob2ROYW1lPSdydW5UZXN0Jyk6CiAgICAgICAgIFRocmVhZGVkQ0FOU29ja2V0VGVzdC5fX2luaXRfXyhzZWxmLCBtZXRob2ROYW1lPW1ldGhvZE5hbWUpCiAKQEAgLTEzOTEsNiArMTQ0MCw0NiBAQAogICAgICAgICBzZWxmLmNmMiA9IHNlbGYuYnVpbGRfY2FuX2ZyYW1lKDB4MTIsIGInXHg5OVx4MjJceDMzJykKICAgICAgICAgc2VsZi5jbGkuc2VuZChzZWxmLmNmMikKIAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc29ja2V0LCAiQ0FOX0JDTSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICdzb2NrZXQuQ0FOX0JDTSByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCisgICAgZGVmIF90ZXN0QkNNKHNlbGYpOgorICAgICAgICBjZiwgYWRkciA9IHNlbGYuY2xpLnJlY3Zmcm9tKHNlbGYuYnVmc2l6ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNmLCBjZikKKyAgICAgICAgY2FuX2lkLCBjYW5fZGxjLCBkYXRhID0gc2VsZi5kaXNzZWN0X2Nhbl9mcmFtZShjZikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbl9pZCwgY2FuX2lkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGF0YSwgZGF0YSkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc29ja2V0LCAiQ0FOX0JDTSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICdzb2NrZXQuQ0FOX0JDTSByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCisgICAgZGVmIHRlc3RCQ00oc2VsZik6CisgICAgICAgIGJjbSA9IHNvY2tldC5zb2NrZXQoc29ja2V0LlBGX0NBTiwgc29ja2V0LlNPQ0tfREdSQU0sIHNvY2tldC5DQU5fQkNNKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoYmNtLmNsb3NlKQorICAgICAgICBiY20uY29ubmVjdCgoc2VsZi5pbnRlcmZhY2UsKSkKKyAgICAgICAgc2VsZi5jYW5faWQgPSAweDEyMworICAgICAgICBzZWxmLmRhdGEgPSBieXRlcyhbMHhjMCwgMHhmZiwgMHhlZV0pCisgICAgICAgIHNlbGYuY2YgPSBzZWxmLmJ1aWxkX2Nhbl9mcmFtZShzZWxmLmNhbl9pZCwgc2VsZi5kYXRhKQorICAgICAgICBvcGNvZGUgPSBzb2NrZXQuQ0FOX0JDTV9UWF9TRU5ECisgICAgICAgIGZsYWdzID0gMAorICAgICAgICBjb3VudCA9IDAKKyAgICAgICAgaXZhbDFfc2Vjb25kcyA9IGl2YWwxX3VzZWMgPSBpdmFsMl9zZWNvbmRzID0gaXZhbDJfdXNlYyA9IDAKKyAgICAgICAgYmNtX2Nhbl9pZCA9IDB4MDIyMgorICAgICAgICBuZnJhbWVzID0gMQorICAgICAgICBhc3NlcnQgbGVuKHNlbGYuY2YpID09IDE2CisgICAgICAgIGhlYWRlciA9IHN0cnVjdC5wYWNrKHNlbGYuYmNtX2NtZF9tc2dfZm10LAorICAgICAgICAgICAgICAgICAgICBvcGNvZGUsCisgICAgICAgICAgICAgICAgICAgIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICBjb3VudCwKKyAgICAgICAgICAgICAgICAgICAgaXZhbDFfc2Vjb25kcywKKyAgICAgICAgICAgICAgICAgICAgaXZhbDFfdXNlYywKKyAgICAgICAgICAgICAgICAgICAgaXZhbDJfc2Vjb25kcywKKyAgICAgICAgICAgICAgICAgICAgaXZhbDJfdXNlYywKKyAgICAgICAgICAgICAgICAgICAgYmNtX2Nhbl9pZCwKKyAgICAgICAgICAgICAgICAgICAgbmZyYW1lcywKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICBoZWFkZXJfcGx1c19mcmFtZSA9IGhlYWRlciArIHNlbGYuY2YKKyAgICAgICAgYnl0ZXNfc2VudCA9IGJjbS5zZW5kKGhlYWRlcl9wbHVzX2ZyYW1lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ5dGVzX3NlbnQsIGxlbihoZWFkZXJfcGx1c19mcmFtZSkpCisKIAogQHVuaXR0ZXN0LnNraXBVbmxlc3MoSEFWRV9TT0NLRVRfUkRTLCAnUkRTIHNvY2tldHMgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4nKQogY2xhc3MgQmFzaWNSRFNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTE2MDUsNyArMTY5NCw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZiwgZmlsZW5vKQogICAgICAgICAjIGNsaV9jb25uIGNhbm5vdCBiZSB1c2VkIGFueW1vcmUuLi4KICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuY2xpX2Nvbm4uX2Nsb3NlZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCBzZWxmLmNsaV9jb25uLnJlY3YsIDEwMjQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHNlbGYuY2xpX2Nvbm4ucmVjdiwgMTAyNCkKICAgICAgICAgc2VsZi5jbGlfY29ubi5jbG9zZSgpCiAgICAgICAgICMgLi4uYnV0IHdlIGNhbiBjcmVhdGUgYW5vdGhlciBzb2NrZXQgdXNpbmcgdGhlIChzdGlsbCBvcGVuKQogICAgICAgICAjIGZpbGUgZGVzY3JpcHRvcgpAQCAtMTk3NCw3ICsyMDYzLDcgQEAKICAgICBkZWYgX3Rlc3RTZW5kbXNnRXhjZXNzQ21zZ1JlamVjdChzZWxmKToKICAgICAgICAgaWYgbm90IGhhc2F0dHIoc29ja2V0LCAiQ01TR19TUEFDRSIpOgogICAgICAgICAgICAgIyBDYW4gb25seSBzZW5kIG9uZSBpdGVtCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvcikgYXMgY206CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IpIGFzIGNtOgogICAgICAgICAgICAgICAgIHNlbGYuc2VuZG1zZ1RvU2VydmVyKFtNU0ddLCBbKDAsIDAsIGIiIiksICgwLCAwLCBiIiIpXSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGNtLmV4Y2VwdGlvbi5lcnJubykKICAgICAgICAgc2VsZi5zZW5kVG9TZXJ2ZXIoYiJkb25lIikKQEAgLTE5ODUsNyArMjA3NCw3IEBACiAKICAgICBkZWYgX3Rlc3RTZW5kbXNnQWZ0ZXJDbG9zZShzZWxmKToKICAgICAgICAgc2VsZi5jbGlfc29jay5jbG9zZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgc2VsZi5zZW5kbXNnVG9TZXJ2ZXIsIFtNU0ddKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBzZWxmLnNlbmRtc2dUb1NlcnZlciwgW01TR10pCiAKIAogY2xhc3MgU2VuZG1zZ1N0cmVhbVRlc3RzKFNlbmRtc2dUZXN0cyk6CkBAIC0yMDI5LDcgKzIxMTgsNyBAQAogICAgIEB0ZXN0U2VuZG1zZ0RvbnRXYWl0LmNsaWVudF9za2lwCiAgICAgZGVmIF90ZXN0U2VuZG1zZ0RvbnRXYWl0KHNlbGYpOgogICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvcikgYXMgY206CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IpIGFzIGNtOgogICAgICAgICAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VuZG1zZ1RvU2VydmVyKFtiImEiKjUxMl0sIFtdLCBzb2NrZXQuTVNHX0RPTlRXQUlUKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihjbS5leGNlcHRpb24uZXJybm8sCkBAIC0yMDQ5LDkgKzIxMzgsOSBAQAogICAgICAgICBwYXNzCiAKICAgICBkZWYgX3Rlc3RTZW5kbXNnTm9EZXN0QWRkcihzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCBzZWxmLmNsaV9zb2NrLnNlbmRtc2csCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHNlbGYuY2xpX3NvY2suc2VuZG1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgW01TR10pCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgc2VsZi5jbGlfc29jay5zZW5kbXNnLAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBzZWxmLmNsaV9zb2NrLnNlbmRtc2csCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtNU0ddLCBbXSwgMCwgTm9uZSkKIAogCkBAIC0yMTM3LDcgKzIyMjYsNyBAQAogICAgIGRlZiB0ZXN0UmVjdm1zZ0FmdGVyQ2xvc2Uoc2VsZik6CiAgICAgICAgICMgQ2hlY2sgdGhhdCByZWN2bXNnW19pbnRvXSgpIGZhaWxzIG9uIGEgY2xvc2VkIHNvY2tldC4KICAgICAgICAgc2VsZi5zZXJ2X3NvY2suY2xvc2UoKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IsIHNlbGYuZG9SZWN2bXNnLCBzZWxmLnNlcnZfc29jaywgMTAyNCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc2VsZi5kb1JlY3Ztc2csIHNlbGYuc2Vydl9zb2NrLCAxMDI0KQogCiAgICAgZGVmIF90ZXN0UmVjdm1zZ0FmdGVyQ2xvc2Uoc2VsZik6CiAgICAgICAgIHBhc3MKQEAgLTI1MzIsOCArMjYyMSw3IEBACiAgICAgZGVmIF90ZXN0RkRQYXNzQ01TR19MRU4oc2VsZik6CiAgICAgICAgIHNlbGYuY3JlYXRlQW5kU2VuZEZEcygxKQogCi0gICAgIyBJc3N1ZSAjMTI5NTg6IFRoZSBmb2xsb3dpbmcgdGVzdCBoYXMgcHJvYmxlbXMgb24gTWFjIE9TIFgKLSAgICBAc3VwcG9ydC5hbnRpY2lwYXRlX2ZhaWx1cmUoc3lzLnBsYXRmb3JtID09ICJkYXJ3aW4iKQorICAgIEB1bml0dGVzdC5za2lwSWYoc3lzLnBsYXRmb3JtID09ICJkYXJ3aW4iLCAic2tpcHBpbmcsIHNlZSBpc3N1ZSAjMTI5NTgiKQogICAgIEByZXF1aXJlQXR0cnMoc29ja2V0LCAiQ01TR19TUEFDRSIpCiAgICAgZGVmIHRlc3RGRFBhc3NTZXBhcmF0ZShzZWxmKToKICAgICAgICAgIyBQYXNzIHR3byBGRHMgaW4gdHdvIHNlcGFyYXRlIGFycmF5cy4gIEFycmF5cyBtYXkgYmUgY29tYmluZWQKQEAgLTI1NDMsNyArMjYzMSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGNtc2dzPTIpCiAKICAgICBAdGVzdEZEUGFzc1NlcGFyYXRlLmNsaWVudF9za2lwCi0gICAgQHN1cHBvcnQuYW50aWNpcGF0ZV9mYWlsdXJlKHN5cy5wbGF0Zm9ybSA9PSAiZGFyd2luIikKKyAgICBAdW5pdHRlc3Quc2tpcElmKHN5cy5wbGF0Zm9ybSA9PSAiZGFyd2luIiwgInNraXBwaW5nLCBzZWUgaXNzdWUgIzEyOTU4IikKICAgICBkZWYgX3Rlc3RGRFBhc3NTZXBhcmF0ZShzZWxmKToKICAgICAgICAgZmQwLCBmZDEgPSBzZWxmLm5ld0ZEcygyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKApAQCAtMjU1NSw4ICsyNjQzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LmFycmF5KCJpIiwgW2ZkMV0pKV0pLAogICAgICAgICAgICAgbGVuKE1TRykpCiAKLSAgICAjIElzc3VlICMxMjk1ODogVGhlIGZvbGxvd2luZyB0ZXN0IGhhcyBwcm9ibGVtcyBvbiBNYWMgT1MgWAotICAgIEBzdXBwb3J0LmFudGljaXBhdGVfZmFpbHVyZShzeXMucGxhdGZvcm0gPT0gImRhcndpbiIpCisgICAgQHVuaXR0ZXN0LnNraXBJZihzeXMucGxhdGZvcm0gPT0gImRhcndpbiIsICJza2lwcGluZywgc2VlIGlzc3VlICMxMjk1OCIpCiAgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQsICJDTVNHX1NQQUNFIikKICAgICBkZWYgdGVzdEZEUGFzc1NlcGFyYXRlTWluU3BhY2Uoc2VsZik6CiAgICAgICAgICMgUGFzcyB0d28gRkRzIGluIHR3byBzZXBhcmF0ZSBhcnJheXMsIHJlY2VpdmluZyB0aGVtIGludG8gdGhlCkBAIC0yNTY4LDcgKzI2NTUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhjbXNncz0yLCBpZ25vcmVmbGFncz1zb2NrZXQuTVNHX0NUUlVOQykKIAogICAgIEB0ZXN0RkRQYXNzU2VwYXJhdGVNaW5TcGFjZS5jbGllbnRfc2tpcAotICAgIEBzdXBwb3J0LmFudGljaXBhdGVfZmFpbHVyZShzeXMucGxhdGZvcm0gPT0gImRhcndpbiIpCisgICAgQHVuaXR0ZXN0LnNraXBJZihzeXMucGxhdGZvcm0gPT0gImRhcndpbiIsICJza2lwcGluZywgc2VlIGlzc3VlICMxMjk1OCIpCiAgICAgZGVmIF90ZXN0RkRQYXNzU2VwYXJhdGVNaW5TcGFjZShzZWxmKToKICAgICAgICAgZmQwLCBmZDEgPSBzZWxmLm5ld0ZEcygyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKApAQCAtMjU4NSw3ICsyNjcyLDcgQEAKICAgICAgICAgIyBjYWxsIGZhaWxzLCBqdXN0IHNlbmQgbXNnIHdpdGggbm8gYW5jaWxsYXJ5IGRhdGEuCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG5ieXRlcyA9IHNlbGYuc2VuZG1zZ1RvU2VydmVyKFttc2ddLCBhbmNkYXRhKQotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAjIENoZWNrIHRoYXQgaXQgd2FzIHRoZSBzeXN0ZW0gY2FsbCB0aGF0IGZhaWxlZAogICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGUuZXJybm8sIGludCkKICAgICAgICAgICAgIG5ieXRlcyA9IHNlbGYuc2VuZG1zZ1RvU2VydmVyKFttc2ddKQpAQCAtMjk2Myw3ICszMDUwLDcgQEAKICAgICAgICAgICAgICAgICAgIGFycmF5LmFycmF5KCJpIiwgW3NlbGYudHJhZmZpY19jbGFzc10pLnRvYnl0ZXMoKSArIGIiXHgwMCIpLAogICAgICAgICAgICAgICAgICAoc29ja2V0LklQUFJPVE9fSVBWNiwgc29ja2V0LklQVjZfSE9QTElNSVQsCiAgICAgICAgICAgICAgICAgICBhcnJheS5hcnJheSgiaSIsIFtzZWxmLmhvcF9saW1pdF0pKV0pCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShlLmVycm5vLCBpbnQpCiAgICAgICAgICAgICBuYnl0ZXMgPSBzZWxmLnNlbmRtc2dUb1NlcnZlcigKICAgICAgICAgICAgICAgICBbTVNHXSwKQEAgLTM0MTcsMTAgKzM1MDQsMTAgQEAKICAgICAgICAgc2VsZi5zZXJ2LnNldHRpbWVvdXQoc2VsZi50aW1lb3V0KQogCiAgICAgZGVmIGNoZWNrSW50ZXJydXB0ZWRSZWN2KHNlbGYsIGZ1bmMsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICMgQ2hlY2sgdGhhdCBmdW5jKCphcmdzLCAqKmt3YXJncykgcmFpc2VzIHNvY2tldC5lcnJvciB3aXRoIGFuCisgICAgICAgICMgQ2hlY2sgdGhhdCBmdW5jKCphcmdzLCAqKmt3YXJncykgcmFpc2VzIE9TRXJyb3Igd2l0aCBhbgogICAgICAgICAjIGVycm5vIG9mIEVJTlRSIHdoZW4gaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwuCiAgICAgICAgIHNlbGYuc2V0QWxhcm0oc2VsZi5hbGFybV90aW1lKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvcikgYXMgY206CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvcikgYXMgY206CiAgICAgICAgICAgICBmdW5jKCphcmdzLCAqKmt3YXJncykKICAgICAgICAgc2VsZi5hc3NlcnROb3RJc0luc3RhbmNlKGNtLmV4Y2VwdGlvbiwgc29ja2V0LnRpbWVvdXQpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVycm5vLCBlcnJuby5FSU5UUikKQEAgLTM0NzcsOSArMzU2NCw5IEBACiAKICAgICBkZWYgY2hlY2tJbnRlcnJ1cHRlZFNlbmQoc2VsZiwgZnVuYywgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgIyBDaGVjayB0aGF0IGZ1bmMoKmFyZ3MsICoqa3dhcmdzKSwgcnVuIGluIGEgbG9vcCwgcmFpc2VzCi0gICAgICAgICMgc29ja2V0LmVycm9yIHdpdGggYW4gZXJybm8gb2YgRUlOVFIgd2hlbiBpbnRlcnJ1cHRlZCBieSBhCisgICAgICAgICMgT1NFcnJvciB3aXRoIGFuIGVycm5vIG9mIEVJTlRSIHdoZW4gaW50ZXJydXB0ZWQgYnkgYQogICAgICAgICAjIHNpZ25hbC4KLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IpIGFzIGNtOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IpIGFzIGNtOgogICAgICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgICAgICBzZWxmLnNldEFsYXJtKHNlbGYuYWxhcm1fdGltZSkKICAgICAgICAgICAgICAgICBmdW5jKCphcmdzLCAqKmt3YXJncykKQEAgLTM1NzYsNyArMzY2Myw3IEBACiAgICAgICAgIHN0YXJ0ID0gdGltZS50aW1lKCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5zZXJ2LmFjY2VwdCgpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgcGFzcwogICAgICAgICBlbmQgPSB0aW1lLnRpbWUoKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoKGVuZCAtIHN0YXJ0KSA8IDEuMCwgIkVycm9yIHNldHRpbmcgbm9uLWJsb2NraW5nIG1vZGUuIikKQEAgLTM2MDEsNyArMzY4OCw3IEBACiAgICAgICAgICAgICBzdGFydCA9IHRpbWUudGltZSgpCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2LmFjY2VwdCgpCi0gICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgZW5kID0gdGltZS50aW1lKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgoZW5kIC0gc3RhcnQpIDwgMS4wLCAiRXJyb3IgY3JlYXRpbmcgd2l0aCBub24tYmxvY2tpbmcgbW9kZS4iKQpAQCAtMzYzMSw3ICszNzE4LDcgQEAKICAgICAgICAgc2VsZi5zZXJ2LnNldGJsb2NraW5nKDApCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGNvbm4sIGFkZHIgPSBzZWxmLnNlcnYuYWNjZXB0KCkKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmZhaWwoIkVycm9yIHRyeWluZyB0byBkbyBub24tYmxvY2tpbmcgYWNjZXB0LiIpCkBAIC0zNjYxLDcgKzM3NDgsNyBAQAogICAgICAgICBjb25uLnNldGJsb2NraW5nKDApCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG1zZyA9IGNvbm4ucmVjdihsZW4oTVNHKSkKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmZhaWwoIkVycm9yIHRyeWluZyB0byBkbyBub24tYmxvY2tpbmcgcmVjdi4iKQpAQCAtMzc0NCw3ICszODMxLDcgQEAKICAgICAgICAgIyBGaXJzdCByZWFkIHJhaXNlcyBhIHRpbWVvdXQKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LnRpbWVvdXQsIHNlbGYucmVhZF9maWxlLnJlYWQsIDEpCiAgICAgICAgICMgU2Vjb25kIHJlYWQgaXMgZGlzYWxsb3dlZAotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IpIGFzIGN0eDoKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjdHg6CiAgICAgICAgICAgICBzZWxmLnJlYWRfZmlsZS5yZWFkKDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oImNhbm5vdCByZWFkIGZyb20gdGltZWQgb3V0IG9iamVjdCIsIHN0cihjdHguZXhjZXB0aW9uKSkKIApAQCAtMzgzNiw3ICszOTIzLDcgQEAKICAgICAgICAgc2VsZi5yZWFkX2ZpbGUuY2xvc2UoKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxmLnJlYWRfZmlsZS5maWxlbm8pCiAgICAgICAgIHNlbGYuY2xpX2Nvbm4uY2xvc2UoKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IsIHNlbGYuY2xpX2Nvbm4uZ2V0c29ja25hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHNlbGYuY2xpX2Nvbm4uZ2V0c29ja25hbWUpCiAKICAgICBkZWYgX3Rlc3RSZWFsQ2xvc2Uoc2VsZik6CiAgICAgICAgIHBhc3MKQEAgLTM4NzMsNyArMzk2MCw3IEBACiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIF9yYWlzZV9laW50cigpOgotICAgICAgICByYWlzZSBzb2NrZXQuZXJyb3IoZXJybm8uRUlOVFIsICJpbnRlcnJ1cHRlZCIpCisgICAgICAgIHJhaXNlIE9TRXJyb3IoZXJybm8uRUlOVFIsICJpbnRlcnJ1cHRlZCIpCiAKICAgICBkZWYgX3RleHRpb3dyYXBfbW9ja19zb2NrZXQoc2VsZiwgbW9jaywgYnVmZmVyaW5nPS0xKToKICAgICAgICAgcmF3ID0gc29ja2V0LlNvY2tldElPKG1vY2ssICJyIikKQEAgLTM5ODUsNyArNDA3Miw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLCBzZWxmLnJlYWRfbXNnKQogICAgICAgICAjIC4uLnVudGlsIHRoZSBmaWxlIGlzIGl0c2VsZiBjbG9zZWQKICAgICAgICAgc2VsZi5yZWFkX2ZpbGUuY2xvc2UoKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IsIHNlbGYuY2xpX2Nvbm4ucmVjdiwgMTAyNCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc2VsZi5jbGlfY29ubi5yZWN2LCAxMDI0KQogCiAgICAgZGVmIF90ZXN0TWFrZWZpbGVDbG9zZShzZWxmKToKICAgICAgICAgc2VsZi53cml0ZV9maWxlLndyaXRlKHNlbGYud3JpdGVfbXNnKQpAQCAtNDEzNCw3ICs0MjIxLDcgQEAKICAgICAgICAgcG9ydCA9IHN1cHBvcnQuZmluZF91bnVzZWRfcG9ydCgpCiAgICAgICAgIGNsaSA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGNsaS5jbG9zZSkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IpIGFzIGNtOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IpIGFzIGNtOgogICAgICAgICAgICAgY2xpLmNvbm5lY3QoKEhPU1QsIHBvcnQpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJubywgZXJybm8uRUNPTk5SRUZVU0VEKQogCkBAIC00MTQyLDcgKzQyMjksNyBAQAogICAgICAgICAjIElzc3VlICM5NzkyOiBlcnJvcnMgcmFpc2VkIGJ5IGNyZWF0ZV9jb25uZWN0aW9uKCkgc2hvdWxkIGhhdmUKICAgICAgICAgIyBhIHByb3BlciBlcnJubyBhdHRyaWJ1dGUuCiAgICAgICAgIHBvcnQgPSBzdXBwb3J0LmZpbmRfdW51c2VkX3BvcnQoKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvcikgYXMgY206CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvcikgYXMgY206CiAgICAgICAgICAgICBzb2NrZXQuY3JlYXRlX2Nvbm5lY3Rpb24oKEhPU1QsIHBvcnQpKQogCiAgICAgICAgICMgSXNzdWUgIzE2MjU3OiBjcmVhdGVfY29ubmVjdGlvbigpIGNhbGxzIGdldGFkZHJpbmZvKCkgYWdhaW5zdApAQCAtNDI5MCw3ICs0Mzc3LDcgQEAKICAgICAgICAgICAgIGZvbyA9IHNlbGYuc2Vydi5hY2NlcHQoKQogICAgICAgICBleGNlcHQgc29ja2V0LnRpbWVvdXQ6CiAgICAgICAgICAgICBzZWxmLmZhaWwoImNhdWdodCB0aW1lb3V0IGluc3RlYWQgb2YgZXJyb3IgKFRDUCkiKQotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIG9rID0gVHJ1ZQogICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICBzZWxmLmZhaWwoImNhdWdodCB1bmV4cGVjdGVkIGV4Y2VwdGlvbiAoVENQKSIpCkBAIC00MzQ3LDcgKzQ0MzQsNyBAQAogICAgICAgICAgICAgZm9vID0gc2VsZi5zZXJ2LnJlY3YoMTAyNCkKICAgICAgICAgZXhjZXB0IHNvY2tldC50aW1lb3V0OgogICAgICAgICAgICAgc2VsZi5mYWlsKCJjYXVnaHQgdGltZW91dCBpbnN0ZWFkIG9mIGVycm9yIChVRFApIikKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBvayA9IFRydWUKICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgc2VsZi5mYWlsKCJjYXVnaHQgdW5leHBlY3RlZCBleGNlcHRpb24gKFVEUCkiKQpAQCAtNDM1NywxMCArNDQ0NCwxMCBAQAogY2xhc3MgVGVzdEV4Y2VwdGlvbnModW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RFeGNlcHRpb25UcmVlKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhzb2NrZXQuZXJyb3IsIEV4Y2VwdGlvbikpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKHNvY2tldC5oZXJyb3IsIHNvY2tldC5lcnJvcikpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKHNvY2tldC5nYWllcnJvciwgc29ja2V0LmVycm9yKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3Moc29ja2V0LnRpbWVvdXQsIHNvY2tldC5lcnJvcikpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKE9TRXJyb3IsIEV4Y2VwdGlvbikpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKHNvY2tldC5oZXJyb3IsIE9TRXJyb3IpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhzb2NrZXQuZ2FpZXJyb3IsIE9TRXJyb3IpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhzb2NrZXQudGltZW91dCwgT1NFcnJvcikpCiAKIGNsYXNzIFRlc3RMaW51eEFic3RyYWN0TmFtZXNwYWNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKIApAQCAtNDM4Niw3ICs0NDczLDcgQEAKICAgICBkZWYgdGVzdE5hbWVPdmVyZmxvdyhzZWxmKToKICAgICAgICAgYWRkcmVzcyA9ICJceDAwIiArICJoIiAqIHNlbGYuVU5JWF9QQVRIX01BWAogICAgICAgICB3aXRoIHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX1VOSVgsIHNvY2tldC5TT0NLX1NUUkVBTSkgYXMgczoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgcy5iaW5kLCBhZGRyZXNzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgcy5iaW5kLCBhZGRyZXNzKQogCiAgICAgZGVmIHRlc3RTdHJOYW1lKHNlbGYpOgogICAgICAgICAjIENoZWNrIHRoYXQgYW4gYWJzdHJhY3QgbmFtZSBjYW4gYmUgcGFzc2VkIGFzIGEgc3RyaW5nLgpAQCAtNDYyNSw3ICs0NzEyLDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNvY2suX2Nsb3NlZCkKICAgICAgICAgIyBleGNlcHRpb24gaW5zaWRlIHdpdGggYmxvY2sKICAgICAgICAgd2l0aCBzb2NrZXQuc29ja2V0KCkgYXMgc29jazoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgc29jay5zZW5kYWxsLCBiJ2ZvbycpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBzb2NrLnNlbmRhbGwsIGInZm9vJykKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNvY2suX2Nsb3NlZCkKIAogICAgIGRlZiB0ZXN0Q3JlYXRlQ29ubmVjdGlvbkJhc2Uoc2VsZik6CkBAIC00NjUzLDcgKzQ3NDAsNyBAQAogICAgICAgICB3aXRoIHNvY2tldC5jcmVhdGVfY29ubmVjdGlvbihhZGRyZXNzKSBhcyBzb2NrOgogICAgICAgICAgICAgc29jay5jbG9zZSgpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzb2NrLl9jbG9zZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgc29jay5zZW5kYWxsLCBiJ2ZvbycpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHNvY2suc2VuZGFsbCwgYidmb28nKQogCiAKIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc29ja2V0LCAiU09DS19DTE9FWEVDIiksCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NvY2tldHNlcnZlci5weSBiL0xpYi90ZXN0L3Rlc3Rfc29ja2V0c2VydmVyLnB5CmluZGV4IDQ2NDA1N2UuLjg0YTVlN2IgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfc29ja2V0c2VydmVyLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc29ja2V0c2VydmVyLnB5CkBAIC0yNyw3ICsyNyw3IEBACiBIT1NUID0gdGVzdC5zdXBwb3J0LkhPU1QKIAogSEFWRV9VTklYX1NPQ0tFVFMgPSBoYXNhdHRyKHNvY2tldCwgIkFGX1VOSVgiKQotSEFWRV9GT1JLSU5HID0gaGFzYXR0cihvcywgImZvcmsiKSBhbmQgb3MubmFtZSAhPSAib3MyIgorSEFWRV9GT1JLSU5HID0gaGFzYXR0cihvcywgImZvcmsiKQogCiBkZWYgc2lnbmFsX2FsYXJtKG4pOgogICAgICIiIkNhbGwgc2lnbmFsLmFsYXJtIHdoZW4gaXQgZXhpc3RzIChpLmUuIG5vdCBvbiBXaW5kb3dzKS4iIiIKQEAgLTgyLDcgKzgyLDcgQEAKICAgICAgICAgZm9yIGZuIGluIHNlbGYudGVzdF9maWxlczoKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBvcy5yZW1vdmUoZm4pCi0gICAgICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYudGVzdF9maWxlc1s6XSA9IFtdCiAKQEAgLTkzLDIxICs5Myw3IEBACiAgICAgICAgICAgICAjIFhYWDogV2UgbmVlZCBhIHdheSB0byB0ZWxsIEFGX1VOSVggdG8gcGljayBpdHMgb3duIG5hbWUKICAgICAgICAgICAgICMgbGlrZSBBRl9JTkVUIHByb3ZpZGVzIHBvcnQ9PTAuCiAgICAgICAgICAgICBkaXIgPSBOb25lCi0gICAgICAgICAgICBpZiBvcy5uYW1lID09ICdvczInOgotICAgICAgICAgICAgICAgIGRpciA9ICdcc29ja2V0JwogICAgICAgICAgICAgZm4gPSB0ZW1wZmlsZS5ta3RlbXAocHJlZml4PSd1bml4X3NvY2tldC4nLCBkaXI9ZGlyKQotICAgICAgICAgICAgaWYgb3MubmFtZSA9PSAnb3MyJzoKLSAgICAgICAgICAgICAgICAjIEFGX1VOSVggc29ja2V0IG5hbWVzIG9uIE9TLzIgcmVxdWlyZSBhIHNwZWNpZmljIHByZWZpeAotICAgICAgICAgICAgICAgICMgd2hpY2ggY2FuJ3QgaW5jbHVkZSBhIGRyaXZlIGxldHRlciBhbmQgbXVzdCBhbHNvIHVzZQotICAgICAgICAgICAgICAgICMgYmFja3NsYXNoZXMgYXMgZGlyZWN0b3J5IHNlcGFyYXRvcnMKLSAgICAgICAgICAgICAgICBpZiBmblsxXSA9PSAnOic6Ci0gICAgICAgICAgICAgICAgICAgIGZuID0gZm5bMjpdCi0gICAgICAgICAgICAgICAgaWYgZm5bMF0gaW4gKG9zLnNlcCwgb3MuYWx0c2VwKToKLSAgICAgICAgICAgICAgICAgICAgZm4gPSBmblsxOl0KLSAgICAgICAgICAgICAgICBpZiBvcy5zZXAgPT0gJy8nOgotICAgICAgICAgICAgICAgICAgICBmbiA9IGZuLnJlcGxhY2Uob3Muc2VwLCBvcy5hbHRzZXApCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgZm4gPSBmbi5yZXBsYWNlKG9zLmFsdHNlcCwgb3Muc2VwKQogICAgICAgICAgICAgc2VsZi50ZXN0X2ZpbGVzLmFwcGVuZChmbikKICAgICAgICAgICAgIHJldHVybiBmbgogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NzbC5weSBiL0xpYi90ZXN0L3Rlc3Rfc3NsLnB5CmluZGV4IDFjNGFhN2MuLjIyNGUwZTIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfc3NsLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc3NsLnB5CkBAIC0xNywxNiArMTcsMTEgQEAKIGltcG9ydCB3ZWFrcmVmCiBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCBmdW5jdG9vbHMKK2Zyb20gdW5pdHRlc3QgaW1wb3J0IG1vY2sKIAogc3NsID0gc3VwcG9ydC5pbXBvcnRfbW9kdWxlKCJzc2wiKQogCi1QUk9UT0NPTFMgPSBbCi0gICAgc3NsLlBST1RPQ09MX1NTTHYzLAotICAgIHNzbC5QUk9UT0NPTF9TU0x2MjMsIHNzbC5QUk9UT0NPTF9UTFN2MQotXQotaWYgaGFzYXR0cihzc2wsICdQUk9UT0NPTF9TU0x2MicpOgotICAgIFBST1RPQ09MUy5hcHBlbmQoc3NsLlBST1RPQ09MX1NTTHYyKQotCitQUk9UT0NPTFMgPSBzb3J0ZWQoc3NsLl9QUk9UT0NPTF9OQU1FUykKIEhPU1QgPSBzdXBwb3J0LkhPU1QKIAogZGF0YV9maWxlID0gbGFtYmRhIG5hbWU6IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCBuYW1lKQpAQCAtNDgsNiArNDMsMTEgQEAKIENBUEFUSCA9IGRhdGFfZmlsZSgiY2FwYXRoIikKIEJZVEVTX0NBUEFUSCA9IG9zLmZzZW5jb2RlKENBUEFUSCkKIAorIyBUd28ga2V5cyBhbmQgY2VydHMgc2lnbmVkIGJ5IHRoZSBzYW1lIENBIChmb3IgU05JIHRlc3RzKQorU0lHTkVEX0NFUlRGSUxFID0gZGF0YV9maWxlKCJrZXljZXJ0My5wZW0iKQorU0lHTkVEX0NFUlRGSUxFMiA9IGRhdGFfZmlsZSgia2V5Y2VydDQucGVtIikKK1NJR05JTkdfQ0EgPSBkYXRhX2ZpbGUoInB5Y2FjZXJ0LnBlbSIpCisKIFNWTl9QWVRIT05fT1JHX1JPT1RfQ0VSVCA9IGRhdGFfZmlsZSgiaHR0cHNfc3ZuX3B5dGhvbl9vcmdfcm9vdC5wZW0iKQogCiBFTVBUWUNFUlQgPSBkYXRhX2ZpbGUoIm51bGxjZXJ0LnBlbSIpCkBAIC01OSw2ICs1OSw3IEBACiBESEZJTEUgPSBkYXRhX2ZpbGUoImRoNTEyLnBlbSIpCiBCWVRFU19ESEZJTEUgPSBvcy5mc2VuY29kZShESEZJTEUpCiAKKwogZGVmIGhhbmRsZV9lcnJvcihwcmVmaXgpOgogICAgIGV4Y19mb3JtYXQgPSAnICcuam9pbih0cmFjZWJhY2suZm9ybWF0X2V4Y2VwdGlvbigqc3lzLmV4Y19pbmZvKCkpKQogICAgIGlmIHN1cHBvcnQudmVyYm9zZToKQEAgLTg5LDE0ICs5MCwxMiBAQAogICAgIGVsc2U6CiAgICAgICAgIHJldHVybiBmdW5jCiAKK25lZWRzX3NuaSA9IHVuaXR0ZXN0LnNraXBVbmxlc3Moc3NsLkhBU19TTkksICJTTkkgc3VwcG9ydCBuZWVkZWQgZm9yIHRoaXMgdGVzdCIpCisKIAogY2xhc3MgQmFzaWNTb2NrZXRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9jb25zdGFudHMoc2VsZik6Ci0gICAgICAgICNzc2wuUFJPVE9DT0xfU1NMdjIKLSAgICAgICAgc3NsLlBST1RPQ09MX1NTTHYyMwotICAgICAgICBzc2wuUFJPVE9DT0xfU1NMdjMKLSAgICAgICAgc3NsLlBST1RPQ09MX1RMU3YxCiAgICAgICAgIHNzbC5DRVJUX05PTkUKICAgICAgICAgc3NsLkNFUlRfT1BUSU9OQUwKICAgICAgICAgc3NsLkNFUlRfUkVRVUlSRUQKQEAgLTE0Miw2ICsxNDEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAoKCdvcmdhbml6YXRpb25OYW1lJywgJ1B5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uJyksKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgnY29tbW9uTmFtZScsICdsb2NhbGhvc3QnKSwpKQogICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAjIE5vdGUgdGhlIG5leHQgdGhyZWUgYXNzZXJ0cyB3aWxsIGZhaWwgaWYgdGhlIGtleXMgYXJlIHJlZ2VuZXJhdGVkCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocFsnbm90QWZ0ZXInXSwgJ09jdCAgNSAyMzowMTo1NiAyMDIwIEdNVCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocFsnbm90QmVmb3JlJ10sICdPY3QgIDggMjM6MDE6NTYgMjAxMCBHTVQnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBbJ3NlcmlhbE51bWJlciddLCAnRDdDNzM4MTkxOUFGQzI0RScpCkBAIC0yMTQsMTUgKzIxNCwxNSBAQAogCiAgICAgZGVmIHRlc3Rfd3JhcHBlZF91bmNvbm5lY3RlZChzZWxmKToKICAgICAgICAgIyBNZXRob2RzIG9uIGFuIHVuY29ubmVjdGVkIFNTTFNvY2tldCBwcm9wYWdhdGUgdGhlIG9yaWdpbmFsCi0gICAgICAgICMgc29ja2V0LmVycm9yIHJhaXNlIGJ5IHRoZSB1bmRlcmx5aW5nIHNvY2tldCBvYmplY3QuCisgICAgICAgICMgT1NFcnJvciByYWlzZSBieSB0aGUgdW5kZXJseWluZyBzb2NrZXQgb2JqZWN0LgogICAgICAgICBzID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCkKICAgICAgICAgd2l0aCBzc2wud3JhcF9zb2NrZXQocykgYXMgc3M6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IsIHNzLnJlY3YsIDEpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IsIHNzLnJlY3ZfaW50bywgYnl0ZWFycmF5KGIneCcpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCBzcy5yZWN2ZnJvbSwgMSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgc3MucmVjdmZyb21faW50bywgYnl0ZWFycmF5KGIneCcpLCAxKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCBzcy5zZW5kLCBiJ3gnKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCBzcy5zZW5kdG8sIGIneCcsICgnMC4wLjAuMCcsIDApKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc3MucmVjdiwgMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHNzLnJlY3ZfaW50bywgYnl0ZWFycmF5KGIneCcpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc3MucmVjdmZyb20sIDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBzcy5yZWN2ZnJvbV9pbnRvLCBieXRlYXJyYXkoYid4JyksIDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBzcy5zZW5kLCBiJ3gnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc3Muc2VuZHRvLCBiJ3gnLCAoJzAuMC4wLjAnLCAwKSkKIAogICAgIGRlZiB0ZXN0X3RpbWVvdXQoc2VsZik6CiAgICAgICAgICMgSXNzdWUgIzg1MjQ6IHdoZW4gY3JlYXRpbmcgYW4gU1NMIHNvY2tldCwgdGhlIHRpbWVvdXQgb2YgdGhlCkBAIC0yNDcsMTUgKzI0NywxNSBAQAogICAgICAgICB3aXRoIHNzbC53cmFwX3NvY2tldChzb2NrLCBzZXJ2ZXJfc2lkZT1UcnVlLCBjZXJ0ZmlsZT1DRVJURklMRSkgYXMgczoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgImNhbid0IGNvbm5lY3QgaW4gc2VydmVyLXNpZGUgbW9kZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLmNvbm5lY3QsIChIT1NULCA4MDgwKSkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yKSBhcyBjbToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjbToKICAgICAgICAgICAgIHdpdGggc29ja2V0LnNvY2tldCgpIGFzIHNvY2s6CiAgICAgICAgICAgICAgICAgc3NsLndyYXBfc29ja2V0KHNvY2ssIGNlcnRmaWxlPVdST05HQ0VSVCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJybm8sIGVycm5vLkVOT0VOVCkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yKSBhcyBjbToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjbToKICAgICAgICAgICAgIHdpdGggc29ja2V0LnNvY2tldCgpIGFzIHNvY2s6CiAgICAgICAgICAgICAgICAgc3NsLndyYXBfc29ja2V0KHNvY2ssIGNlcnRmaWxlPUNFUlRGSUxFLCBrZXlmaWxlPVdST05HQ0VSVCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJybm8sIGVycm5vLkVOT0VOVCkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yKSBhcyBjbToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjbToKICAgICAgICAgICAgIHdpdGggc29ja2V0LnNvY2tldCgpIGFzIHNvY2s6CiAgICAgICAgICAgICAgICAgc3NsLndyYXBfc29ja2V0KHNvY2ssIGNlcnRmaWxlPVdST05HQ0VSVCwga2V5ZmlsZT1XUk9OR0NFUlQpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVycm5vLCBlcnJuby5FTk9FTlQpCkBAIC0zOTgsMTEgKzM5OCw4IEBACiAKICAgICBAc2tpcF9pZl9icm9rZW5fdWJ1bnR1X3NzbAogICAgIGRlZiB0ZXN0X2NvbnN0cnVjdG9yKHNlbGYpOgotICAgICAgICBpZiBoYXNhdHRyKHNzbCwgJ1BST1RPQ09MX1NTTHYyJyk6Ci0gICAgICAgICAgICBjdHggPSBzc2wuU1NMQ29udGV4dChzc2wuUFJPVE9DT0xfU1NMdjIpCi0gICAgICAgIGN0eCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9TU0x2MjMpCi0gICAgICAgIGN0eCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9TU0x2MykKLSAgICAgICAgY3R4ID0gc3NsLlNTTENvbnRleHQoc3NsLlBST1RPQ09MX1RMU3YxKQorICAgICAgICBmb3IgcHJvdG9jb2wgaW4gUFJPVE9DT0xTOgorICAgICAgICAgICAgc3NsLlNTTENvbnRleHQocHJvdG9jb2wpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc3NsLlNTTENvbnRleHQpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNzbC5TU0xDb250ZXh0LCAtMSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc3NsLlNTTENvbnRleHQsIDQyKQpAQCAtNDYyLDcgKzQ1OSw3IEBACiAgICAgICAgIGN0eC5sb2FkX2NlcnRfY2hhaW4oQ0VSVEZJTEUpCiAgICAgICAgIGN0eC5sb2FkX2NlcnRfY2hhaW4oQ0VSVEZJTEUsIGtleWZpbGU9Q0VSVEZJTEUpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY3R4LmxvYWRfY2VydF9jaGFpbiwga2V5ZmlsZT1DRVJURklMRSkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yKSBhcyBjbToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjbToKICAgICAgICAgICAgIGN0eC5sb2FkX2NlcnRfY2hhaW4oV1JPTkdDRVJUKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJubywgZXJybm8uRU5PRU5UKQogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoc3NsLlNTTEVycm9yLCAiUEVNIGxpYiIpOgpAQCAtNTQ3LDcgKzU0NCw3IEBACiAgICAgICAgIGN0eC5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoY2FmaWxlPUJZVEVTX0NFUlRGSUxFLCBjYXBhdGg9Tm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjdHgubG9hZF92ZXJpZnlfbG9jYXRpb25zKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGN0eC5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMsIE5vbmUsIE5vbmUpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvcikgYXMgY206CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvcikgYXMgY206CiAgICAgICAgICAgICBjdHgubG9hZF92ZXJpZnlfbG9jYXRpb25zKFdST05HQ0VSVCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJybm8sIGVycm5vLkVOT0VOVCkKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KHNzbC5TU0xFcnJvciwgIlBFTSBsaWIiKToKQEAgLTYwNSw2ICs2MDIsMzQgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgY3R4LnNldF9lY2RoX2N1cnZlLCAiZm9vIikKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgY3R4LnNldF9lY2RoX2N1cnZlLCBiImZvbyIpCiAKKyAgICBAbmVlZHNfc25pCisgICAgZGVmIHRlc3Rfc25pX2NhbGxiYWNrKHNlbGYpOgorICAgICAgICBjdHggPSBzc2wuU1NMQ29udGV4dChzc2wuUFJPVE9DT0xfVExTdjEpCisKKyAgICAgICAgIyBzZXRfc2VydmVybmFtZV9jYWxsYmFjayBleHBlY3RzIGEgY2FsbGFibGUsIG9yIE5vbmUKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjdHguc2V0X3NlcnZlcm5hbWVfY2FsbGJhY2spCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY3R4LnNldF9zZXJ2ZXJuYW1lX2NhbGxiYWNrLCA0KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGN0eC5zZXRfc2VydmVybmFtZV9jYWxsYmFjaywgIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY3R4LnNldF9zZXJ2ZXJuYW1lX2NhbGxiYWNrLCBjdHgpCisKKyAgICAgICAgZGVmIGR1bW15Y2FsbGJhY2soc29jaywgc2VydmVybmFtZSwgY3R4KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgY3R4LnNldF9zZXJ2ZXJuYW1lX2NhbGxiYWNrKE5vbmUpCisgICAgICAgIGN0eC5zZXRfc2VydmVybmFtZV9jYWxsYmFjayhkdW1teWNhbGxiYWNrKQorCisgICAgQG5lZWRzX3NuaQorICAgIGRlZiB0ZXN0X3NuaV9jYWxsYmFja19yZWZjeWNsZShzZWxmKToKKyAgICAgICAgIyBSZWZlcmVuY2UgY3ljbGVzIHRocm91Z2ggdGhlIHNlcnZlcm5hbWUgY2FsbGJhY2sgYXJlIGRldGVjdGVkCisgICAgICAgICMgYW5kIGNsZWFyZWQuCisgICAgICAgIGN0eCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9UTFN2MSkKKyAgICAgICAgZGVmIGR1bW15Y2FsbGJhY2soc29jaywgc2VydmVybmFtZSwgY3R4LCBjeWNsZT1jdHgpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBjdHguc2V0X3NlcnZlcm5hbWVfY2FsbGJhY2soZHVtbXljYWxsYmFjaykKKyAgICAgICAgd3IgPSB3ZWFrcmVmLnJlZihjdHgpCisgICAgICAgIGRlbCBjdHgsIGR1bW15Y2FsbGJhY2sKKyAgICAgICAgZ2MuY29sbGVjdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMod3IoKSwgTm9uZSkKKwogCiBjbGFzcyBTU0xFcnJvclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKIApAQCAtMTA0Nyw3ICsxMDcyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiIHNlcnZlcjogcmVhZCAlciAoJXMpLCBzZW5kaW5nIGJhY2sgJXIgKCVzKS4uLlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKG1zZywgY3R5cGUsIG1zZy5sb3dlcigpLCBjdHlwZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZShtc2cubG93ZXIoKSkKLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLnNlcnZlci5jaGF0dHk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2Vycm9yKCJUZXN0IHNlcnZlciBmYWlsdXJlOlxuIikKICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQpAQCAtMTE1Nyw3ICsxMTgyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmhhbmRsZV9jbG9zZSgpCiAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBzc2wuU1NMRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGVycjoKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgogICAgICAgICAgICAgICAgICAgICAgICAgaWYgZXJyLmFyZ3NbMF0gPT0gZXJybm8uRUNPTk5BQk9SVEVEOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmhhbmRsZV9jbG9zZSgpCiAgICAgICAgICAgICAgICAgICAgIGVsc2U6CkBAIC0xMjYxLDE5ICsxMjg2LDE5IEBACiAgICAgICAgICAgICBleGNlcHQgc3NsLlNTTEVycm9yIGFzIHg6CiAgICAgICAgICAgICAgICAgaWYgc3VwcG9ydC52ZXJib3NlOgogICAgICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJcblNTTEVycm9yIGlzICVzXG4iICUgeC5hcmdzWzFdKQotICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyB4OgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgeDoKICAgICAgICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6Ci0gICAgICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIlxuc29ja2V0LmVycm9yIGlzICVzXG4iICUgeC5hcmdzWzFdKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgeDoKKyAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiXG5PU0Vycm9yIGlzICVzXG4iICUgeC5hcmdzWzFdKQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgeDoKICAgICAgICAgICAgICAgICBpZiB4LmVycm5vICE9IGVycm5vLkVOT0VOVDoKICAgICAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6Ci0gICAgICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIlxJT0Vycm9yIGlzICVzXG4iICUgc3RyKHgpKQorICAgICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJcT1NFcnJvciBpcyAlc1xuIiAlIHN0cih4KSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoIlVzZSBvZiBpbnZhbGlkIGNlcnQgc2hvdWxkIGhhdmUgZmFpbGVkISIpCiAKICAgICBkZWYgc2VydmVyX3BhcmFtc190ZXN0KGNsaWVudF9jb250ZXh0LCBzZXJ2ZXJfY29udGV4dCwgaW5kYXRhPWIiRk9PXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhdHR5PVRydWUsIGNvbm5lY3Rpb25jaGF0dHk9RmFsc2UpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhdHR5PVRydWUsIGNvbm5lY3Rpb25jaGF0dHk9RmFsc2UsIHNuaV9uYW1lPU5vbmUpOgogICAgICAgICAiIiIKICAgICAgICAgTGF1bmNoIGEgc2VydmVyLCBjb25uZWN0IGEgY2xpZW50IHRvIGl0IGFuZCB0cnkgdmFyaW91cyByZWFkcwogICAgICAgICBhbmQgd3JpdGVzLgpAQCAtMTI4Myw3ICsxMzA4LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXR0eT1jaGF0dHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uY2hhdHR5PUZhbHNlKQogICAgICAgICB3aXRoIHNlcnZlcjoKLSAgICAgICAgICAgIHdpdGggY2xpZW50X2NvbnRleHQud3JhcF9zb2NrZXQoc29ja2V0LnNvY2tldCgpKSBhcyBzOgorICAgICAgICAgICAgd2l0aCBjbGllbnRfY29udGV4dC53cmFwX3NvY2tldChzb2NrZXQuc29ja2V0KCksCisgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9ob3N0bmFtZT1zbmlfbmFtZSkgYXMgczoKICAgICAgICAgICAgICAgICBzLmNvbm5lY3QoKEhPU1QsIHNlcnZlci5wb3J0KSkKICAgICAgICAgICAgICAgICBmb3IgYXJnIGluIFtpbmRhdGEsIGJ5dGVhcnJheShpbmRhdGEpLCBtZW1vcnl2aWV3KGluZGF0YSldOgogICAgICAgICAgICAgICAgICAgICBpZiBjb25uZWN0aW9uY2hhdHR5OgpAQCAtMTMwNyw2ICsxMzMzLDcgQEAKICAgICAgICAgICAgICAgICBzdGF0cy51cGRhdGUoewogICAgICAgICAgICAgICAgICAgICAnY29tcHJlc3Npb24nOiBzLmNvbXByZXNzaW9uKCksCiAgICAgICAgICAgICAgICAgICAgICdjaXBoZXInOiBzLmNpcGhlcigpLAorICAgICAgICAgICAgICAgICAgICAncGVlcmNlcnQnOiBzLmdldHBlZXJjZXJ0KCksCiAgICAgICAgICAgICAgICAgICAgICdjbGllbnRfbnBuX3Byb3RvY29sJzogcy5zZWxlY3RlZF9ucG5fcHJvdG9jb2woKQogICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgcy5jbG9zZSgpCkBAIC0xMzMyLDEyICsxMzU5LDE1IEBACiAgICAgICAgIGNsaWVudF9jb250ZXh0Lm9wdGlvbnMgPSBzc2wuT1BfQUxMIHwgY2xpZW50X29wdGlvbnMKICAgICAgICAgc2VydmVyX2NvbnRleHQgPSBzc2wuU1NMQ29udGV4dChzZXJ2ZXJfcHJvdG9jb2wpCiAgICAgICAgIHNlcnZlcl9jb250ZXh0Lm9wdGlvbnMgPSBzc2wuT1BfQUxMIHwgc2VydmVyX29wdGlvbnMKKworICAgICAgICAjIE5PVEU6IHdlIG11c3QgZW5hYmxlICJBTEwiIGNpcGhlcnMgb24gdGhlIGNsaWVudCwgb3RoZXJ3aXNlIGFuCisgICAgICAgICMgU1NMdjIzIGNsaWVudCB3aWxsIHNlbmQgYW4gU1NMdjMgaGVsbG8gKHJhdGhlciB0aGFuIFNTTHYyKQorICAgICAgICAjIHN0YXJ0aW5nIGZyb20gT3BlblNTTCAxLjAuMCAoc2VlIGlzc3VlICM4MzIyKS4KKyAgICAgICAgaWYgY2xpZW50X2NvbnRleHQucHJvdG9jb2wgPT0gc3NsLlBST1RPQ09MX1NTTHYyMzoKKyAgICAgICAgICAgIGNsaWVudF9jb250ZXh0LnNldF9jaXBoZXJzKCJBTEwiKQorCiAgICAgICAgIGZvciBjdHggaW4gKGNsaWVudF9jb250ZXh0LCBzZXJ2ZXJfY29udGV4dCk6CiAgICAgICAgICAgICBjdHgudmVyaWZ5X21vZGUgPSBjZXJ0c3JlcXMKLSAgICAgICAgICAgICMgTk9URTogd2UgbXVzdCBlbmFibGUgIkFMTCIgY2lwaGVycywgb3RoZXJ3aXNlIGFuIFNTTHYyMyBjbGllbnQKLSAgICAgICAgICAgICMgd2lsbCBzZW5kIGFuIFNTTHYzIGhlbGxvIChyYXRoZXIgdGhhbiBTU0x2Mikgc3RhcnRpbmcgZnJvbQotICAgICAgICAgICAgIyBPcGVuU1NMIDEuMC4wIChzZWUgaXNzdWUgIzgzMjIpLgotICAgICAgICAgICAgY3R4LnNldF9jaXBoZXJzKCJBTEwiKQogICAgICAgICAgICAgY3R4LmxvYWRfY2VydF9jaGFpbihDRVJURklMRSkKICAgICAgICAgICAgIGN0eC5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoQ0VSVEZJTEUpCiAgICAgICAgIHRyeToKQEAgLTEzNDgsNyArMTM3OCw3IEBACiAgICAgICAgIGV4Y2VwdCBzc2wuU1NMRXJyb3I6CiAgICAgICAgICAgICBpZiBleHBlY3Rfc3VjY2VzczoKICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICBpZiBleHBlY3Rfc3VjY2VzcyBvciBlLmVycm5vICE9IGVycm5vLkVDT05OUkVTRVQ6CiAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgZWxzZToKQEAgLTEzNjcsMTAgKzEzOTcsMTEgQEAKICAgICAgICAgICAgIGlmIHN1cHBvcnQudmVyYm9zZToKICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJcbiIpCiAgICAgICAgICAgICBmb3IgcHJvdG9jb2wgaW4gUFJPVE9DT0xTOgotICAgICAgICAgICAgICAgIGNvbnRleHQgPSBzc2wuU1NMQ29udGV4dChwcm90b2NvbCkKLSAgICAgICAgICAgICAgICBjb250ZXh0LmxvYWRfY2VydF9jaGFpbihDRVJURklMRSkKLSAgICAgICAgICAgICAgICBzZXJ2ZXJfcGFyYW1zX3Rlc3QoY29udGV4dCwgY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhdHR5PVRydWUsIGNvbm5lY3Rpb25jaGF0dHk9VHJ1ZSkKKyAgICAgICAgICAgICAgICB3aXRoIHNlbGYuc3ViVGVzdChwcm90b2NvbD1zc2wuX1BST1RPQ09MX05BTUVTW3Byb3RvY29sXSk6CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQgPSBzc2wuU1NMQ29udGV4dChwcm90b2NvbCkKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5sb2FkX2NlcnRfY2hhaW4oQ0VSVEZJTEUpCisgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9wYXJhbXNfdGVzdChjb250ZXh0LCBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhdHR5PVRydWUsIGNvbm5lY3Rpb25jaGF0dHk9VHJ1ZSkKIAogICAgICAgICBkZWYgdGVzdF9nZXRwZWVyY2VydChzZWxmKToKICAgICAgICAgICAgIGlmIHN1cHBvcnQudmVyYm9zZToKQEAgLTE0MjIsNyArMTQ1Myw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFka2V5LnBlbSIpKQogCiAgICAgICAgIGRlZiB0ZXN0X3J1ZGVfc2h1dGRvd24oc2VsZik6Ci0gICAgICAgICAgICAiIiJBIGJydXRhbCBzaHV0ZG93biBvZiBhbiBTU0wgc2VydmVyIHNob3VsZCByYWlzZSBhbiBJT0Vycm9yCisgICAgICAgICAgICAiIiJBIGJydXRhbCBzaHV0ZG93biBvZiBhbiBTU0wgc2VydmVyIHNob3VsZCByYWlzZSBhbiBPU0Vycm9yCiAgICAgICAgICAgICBpbiB0aGUgY2xpZW50IHdoZW4gYXR0ZW1wdGluZyBoYW5kc2hha2UuCiAgICAgICAgICAgICAiIiIKICAgICAgICAgICAgIGxpc3RlbmVyX3JlYWR5ID0gdGhyZWFkaW5nLkV2ZW50KCkKQEAgLTE0NTAsNyArMTQ4MSw3IEBACiAgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVyX2dvbmUud2FpdCgpCiAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgICAgIHNzbF9zb2NrID0gc3NsLndyYXBfc29ja2V0KGMpCi0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnY29ubmVjdGluZyB0byBjbG9zZWQgU1NMIHNvY2tldCBzaG91bGQgaGF2ZSBmYWlsZWQnKQpAQCAtMTQ5Myw3ICsxNTI0LDcgQEAKICAgICAgICAgICAgIGlmIGhhc2F0dHIoc3NsLCAnUFJPVE9DT0xfU1NMdjInKToKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIHRyeV9wcm90b2NvbF9jb21ibyhzc2wuUFJPVE9DT0xfU1NMdjIzLCBzc2wuUFJPVE9DT0xfU1NMdjIsIFRydWUpCi0gICAgICAgICAgICAgICAgZXhjZXB0IChzc2wuU1NMRXJyb3IsIHNvY2tldC5lcnJvcikgYXMgeDoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyB4OgogICAgICAgICAgICAgICAgICAgICAjIHRoaXMgZmFpbHMgb24gc29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuU1NMICgwLjkuN2wsIGZvciBpbnN0YW5jZSkKICAgICAgICAgICAgICAgICAgICAgaWYgc3VwcG9ydC52ZXJib3NlOgogICAgICAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgKQEAgLTE1NTMsNiArMTU4NCw0OSBAQAogICAgICAgICAgICAgdHJ5X3Byb3RvY29sX2NvbWJvKHNzbC5QUk9UT0NPTF9UTFN2MSwgc3NsLlBST1RPQ09MX1NTTHYyMywgRmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X29wdGlvbnM9c3NsLk9QX05PX1RMU3YxKQogCisgICAgICAgIEBza2lwX2lmX2Jyb2tlbl91YnVudHVfc3NsCisgICAgICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc3NsLCAiUFJPVE9DT0xfVExTdjFfMSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVExTIHZlcnNpb24gMS4xIG5vdCBzdXBwb3J0ZWQuIikKKyAgICAgICAgZGVmIHRlc3RfcHJvdG9jb2xfdGxzdjFfMShzZWxmKToKKyAgICAgICAgICAgICIiIkNvbm5lY3RpbmcgdG8gYSBUTFN2MS4xIHNlcnZlciB3aXRoIHZhcmlvdXMgY2xpZW50IG9wdGlvbnMuCisgICAgICAgICAgICAgICBUZXN0aW5nIGFnYWluc3Qgb2xkZXIgVExTIHZlcnNpb25zLiIiIgorICAgICAgICAgICAgaWYgc3VwcG9ydC52ZXJib3NlOgorICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIlxuIikKKyAgICAgICAgICAgIHRyeV9wcm90b2NvbF9jb21ibyhzc2wuUFJPVE9DT0xfVExTdjFfMSwgc3NsLlBST1RPQ09MX1RMU3YxXzEsIFRydWUpCisgICAgICAgICAgICBpZiBoYXNhdHRyKHNzbCwgJ1BST1RPQ09MX1NTTHYyJyk6CisgICAgICAgICAgICAgICAgdHJ5X3Byb3RvY29sX2NvbWJvKHNzbC5QUk9UT0NPTF9UTFN2MV8xLCBzc2wuUFJPVE9DT0xfU1NMdjIsIEZhbHNlKQorICAgICAgICAgICAgdHJ5X3Byb3RvY29sX2NvbWJvKHNzbC5QUk9UT0NPTF9UTFN2MV8xLCBzc2wuUFJPVE9DT0xfU1NMdjMsIEZhbHNlKQorICAgICAgICAgICAgdHJ5X3Byb3RvY29sX2NvbWJvKHNzbC5QUk9UT0NPTF9UTFN2MV8xLCBzc2wuUFJPVE9DT0xfU1NMdjIzLCBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRfb3B0aW9ucz1zc2wuT1BfTk9fVExTdjFfMSkKKworICAgICAgICAgICAgdHJ5X3Byb3RvY29sX2NvbWJvKHNzbC5QUk9UT0NPTF9TU0x2MjMsIHNzbC5QUk9UT0NPTF9UTFN2MV8xLCBUcnVlKQorICAgICAgICAgICAgdHJ5X3Byb3RvY29sX2NvbWJvKHNzbC5QUk9UT0NPTF9UTFN2MV8xLCBzc2wuUFJPVE9DT0xfVExTdjEsIEZhbHNlKQorICAgICAgICAgICAgdHJ5X3Byb3RvY29sX2NvbWJvKHNzbC5QUk9UT0NPTF9UTFN2MSwgc3NsLlBST1RPQ09MX1RMU3YxXzEsIEZhbHNlKQorCisKKyAgICAgICAgQHNraXBfaWZfYnJva2VuX3VidW50dV9zc2wKKyAgICAgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihzc2wsICJQUk9UT0NPTF9UTFN2MV8yIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUTFMgdmVyc2lvbiAxLjIgbm90IHN1cHBvcnRlZC4iKQorICAgICAgICBkZWYgdGVzdF9wcm90b2NvbF90bHN2MV8yKHNlbGYpOgorICAgICAgICAgICAgIiIiQ29ubmVjdGluZyB0byBhIFRMU3YxLjIgc2VydmVyIHdpdGggdmFyaW91cyBjbGllbnQgb3B0aW9ucy4KKyAgICAgICAgICAgICAgIFRlc3RpbmcgYWdhaW5zdCBvbGRlciBUTFMgdmVyc2lvbnMuIiIiCisgICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6CisgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiXG4iKQorICAgICAgICAgICAgdHJ5X3Byb3RvY29sX2NvbWJvKHNzbC5QUk9UT0NPTF9UTFN2MV8yLCBzc2wuUFJPVE9DT0xfVExTdjFfMiwgVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfb3B0aW9ucz1zc2wuT1BfTk9fU1NMdjN8c3NsLk9QX05PX1NTTHYyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9vcHRpb25zPXNzbC5PUF9OT19TU0x2M3xzc2wuT1BfTk9fU1NMdjIsKQorICAgICAgICAgICAgaWYgaGFzYXR0cihzc2wsICdQUk9UT0NPTF9TU0x2MicpOgorICAgICAgICAgICAgICAgIHRyeV9wcm90b2NvbF9jb21ibyhzc2wuUFJPVE9DT0xfVExTdjFfMiwgc3NsLlBST1RPQ09MX1NTTHYyLCBGYWxzZSkKKyAgICAgICAgICAgIHRyeV9wcm90b2NvbF9jb21ibyhzc2wuUFJPVE9DT0xfVExTdjFfMiwgc3NsLlBST1RPQ09MX1NTTHYzLCBGYWxzZSkKKyAgICAgICAgICAgIHRyeV9wcm90b2NvbF9jb21ibyhzc2wuUFJPVE9DT0xfVExTdjFfMiwgc3NsLlBST1RPQ09MX1NTTHYyMywgRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X29wdGlvbnM9c3NsLk9QX05PX1RMU3YxXzIpCisKKyAgICAgICAgICAgIHRyeV9wcm90b2NvbF9jb21ibyhzc2wuUFJPVE9DT0xfU1NMdjIzLCBzc2wuUFJPVE9DT0xfVExTdjFfMiwgVHJ1ZSkKKyAgICAgICAgICAgIHRyeV9wcm90b2NvbF9jb21ibyhzc2wuUFJPVE9DT0xfVExTdjFfMiwgc3NsLlBST1RPQ09MX1RMU3YxLCBGYWxzZSkKKyAgICAgICAgICAgIHRyeV9wcm90b2NvbF9jb21ibyhzc2wuUFJPVE9DT0xfVExTdjEsIHNzbC5QUk9UT0NPTF9UTFN2MV8yLCBGYWxzZSkKKyAgICAgICAgICAgIHRyeV9wcm90b2NvbF9jb21ibyhzc2wuUFJPVE9DT0xfVExTdjFfMiwgc3NsLlBST1RPQ09MX1RMU3YxXzEsIEZhbHNlKQorICAgICAgICAgICAgdHJ5X3Byb3RvY29sX2NvbWJvKHNzbC5QUk9UT0NPTF9UTFN2MV8xLCBzc2wuUFJPVE9DT0xfVExTdjFfMiwgRmFsc2UpCisKICAgICAgICAgZGVmIHRlc3Rfc3RhcnR0bHMoc2VsZik6CiAgICAgICAgICAgICAiIiJTd2l0Y2hpbmcgZnJvbSBjbGVhciB0ZXh0IHRvIGVuY3J5cHRlZCBhbmQgYmFjayBhZ2Fpbi4iIiIKICAgICAgICAgICAgIG1zZ3MgPSAoYiJtc2cgMSIsIGIiTVNHIDIiLCBiIlNUQVJUVExTIiwgYiJNU0cgMyIsIGIibXNnIDQiLCBiIkVORFRMUyIsIGIibXNnIDUiLCBiIm1zZyA2IikKQEAgLTE2MTMsNyArMTY4Nyw3IEBACiAKICAgICAgICAgZGVmIHRlc3Rfc29ja2V0c2VydmVyKHNlbGYpOgogICAgICAgICAgICAgIiIiVXNpbmcgYSBTb2NrZXRTZXJ2ZXIgdG8gY3JlYXRlIGFuZCBtYW5hZ2UgU1NMIGNvbm5lY3Rpb25zLiIiIgotICAgICAgICAgICAgc2VydmVyID0gbWFrZV9odHRwc19zZXJ2ZXIoc2VsZiwgQ0VSVEZJTEUpCisgICAgICAgICAgICBzZXJ2ZXIgPSBtYWtlX2h0dHBzX3NlcnZlcihzZWxmLCBjZXJ0ZmlsZT1DRVJURklMRSkKICAgICAgICAgICAgICMgdHJ5IHRvIGNvbm5lY3QKICAgICAgICAgICAgIGlmIHN1cHBvcnQudmVyYm9zZToKICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCdcbicpCkBAIC0xODY5LDYgKzE5NDMsMjAgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShyZW1vdGUsIHNzbC5TU0xTb2NrZXQpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBlZXIsIGNsaWVudF9hZGRyKQogCisgICAgICAgIGRlZiB0ZXN0X2dldHBlZXJjZXJ0X2Vub3Rjb25uKHNlbGYpOgorICAgICAgICAgICAgY29udGV4dCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9TU0x2MjMpCisgICAgICAgICAgICB3aXRoIGNvbnRleHQud3JhcF9zb2NrZXQoc29ja2V0LnNvY2tldCgpKSBhcyBzb2NrOgorICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvcikgYXMgY206CisgICAgICAgICAgICAgICAgICAgIHNvY2suZ2V0cGVlcmNlcnQoKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVycm5vLCBlcnJuby5FTk9UQ09OTikKKworICAgICAgICBkZWYgdGVzdF9kb19oYW5kc2hha2VfZW5vdGNvbm4oc2VsZik6CisgICAgICAgICAgICBjb250ZXh0ID0gc3NsLlNTTENvbnRleHQoc3NsLlBST1RPQ09MX1NTTHYyMykKKyAgICAgICAgICAgIHdpdGggY29udGV4dC53cmFwX3NvY2tldChzb2NrZXQuc29ja2V0KCkpIGFzIHNvY2s6CisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjbToKKyAgICAgICAgICAgICAgICAgICAgc29jay5kb19oYW5kc2hha2UoKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVycm5vLCBlcnJuby5FTk9UQ09OTikKKwogICAgICAgICBkZWYgdGVzdF9kZWZhdWx0X2NpcGhlcnMoc2VsZik6CiAgICAgICAgICAgICBjb250ZXh0ID0gc3NsLlNTTENvbnRleHQoc3NsLlBST1RPQ09MX1NTTHYyMykKICAgICAgICAgICAgIHRyeToKQEAgLTE4ODAsNyArMTk2OCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2xfdmVyc2lvbj1zc2wuUFJPVE9DT0xfU1NMdjIzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhdHR5PUZhbHNlKSBhcyBzZXJ2ZXI6CiAgICAgICAgICAgICAgICAgd2l0aCBjb250ZXh0LndyYXBfc29ja2V0KHNvY2tldC5zb2NrZXQoKSkgYXMgczoKLSAgICAgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcygoT1NFcnJvciwgc3NsLlNTTEVycm9yKSk6CisgICAgICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvcik6CiAgICAgICAgICAgICAgICAgICAgICAgICBzLmNvbm5lY3QoKEhPU1QsIHNlcnZlci5wb3J0KSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oIm5vIHNoYXJlZCBjaXBoZXIiLCBzdHIoc2VydmVyLmNvbm5fZXJyb3JzWzBdKSkKIApAQCAtMjAxMyw2ICsyMTAxLDEwOSBAQAogICAgICAgICAgICAgICAgICAgICBpZiBsZW4oc3RhdHNbJ3NlcnZlcl9ucG5fcHJvdG9jb2xzJ10pIGVsc2UgJ25vdGhpbmcnCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXJ2ZXJfcmVzdWx0LCBleHBlY3RlZCwgbXNnICUgKHNlcnZlcl9yZXN1bHQsICJzZXJ2ZXIiKSkKIAorICAgICAgICBkZWYgc25pX2NvbnRleHRzKHNlbGYpOgorICAgICAgICAgICAgc2VydmVyX2NvbnRleHQgPSBzc2wuU1NMQ29udGV4dChzc2wuUFJPVE9DT0xfVExTdjEpCisgICAgICAgICAgICBzZXJ2ZXJfY29udGV4dC5sb2FkX2NlcnRfY2hhaW4oU0lHTkVEX0NFUlRGSUxFKQorICAgICAgICAgICAgb3RoZXJfY29udGV4dCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9UTFN2MSkKKyAgICAgICAgICAgIG90aGVyX2NvbnRleHQubG9hZF9jZXJ0X2NoYWluKFNJR05FRF9DRVJURklMRTIpCisgICAgICAgICAgICBjbGllbnRfY29udGV4dCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9UTFN2MSkKKyAgICAgICAgICAgIGNsaWVudF9jb250ZXh0LnZlcmlmeV9tb2RlID0gc3NsLkNFUlRfUkVRVUlSRUQKKyAgICAgICAgICAgIGNsaWVudF9jb250ZXh0LmxvYWRfdmVyaWZ5X2xvY2F0aW9ucyhTSUdOSU5HX0NBKQorICAgICAgICAgICAgcmV0dXJuIHNlcnZlcl9jb250ZXh0LCBvdGhlcl9jb250ZXh0LCBjbGllbnRfY29udGV4dAorCisgICAgICAgIGRlZiBjaGVja19jb21tb25fbmFtZShzZWxmLCBzdGF0cywgbmFtZSk6CisgICAgICAgICAgICBjZXJ0ID0gc3RhdHNbJ3BlZXJjZXJ0J10KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oKCgnY29tbW9uTmFtZScsIG5hbWUpLCksIGNlcnRbJ3N1YmplY3QnXSkKKworICAgICAgICBAbmVlZHNfc25pCisgICAgICAgIGRlZiB0ZXN0X3NuaV9jYWxsYmFjayhzZWxmKToKKyAgICAgICAgICAgIGNhbGxzID0gW10KKyAgICAgICAgICAgIHNlcnZlcl9jb250ZXh0LCBvdGhlcl9jb250ZXh0LCBjbGllbnRfY29udGV4dCA9IHNlbGYuc25pX2NvbnRleHRzKCkKKworICAgICAgICAgICAgZGVmIHNlcnZlcm5hbWVfY2Ioc3NsX3NvY2ssIHNlcnZlcl9uYW1lLCBpbml0aWFsX2NvbnRleHQpOgorICAgICAgICAgICAgICAgIGNhbGxzLmFwcGVuZCgoc2VydmVyX25hbWUsIGluaXRpYWxfY29udGV4dCkpCisgICAgICAgICAgICAgICAgaWYgc2VydmVyX25hbWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHNzbF9zb2NrLmNvbnRleHQgPSBvdGhlcl9jb250ZXh0CisgICAgICAgICAgICBzZXJ2ZXJfY29udGV4dC5zZXRfc2VydmVybmFtZV9jYWxsYmFjayhzZXJ2ZXJuYW1lX2NiKQorCisgICAgICAgICAgICBzdGF0cyA9IHNlcnZlcl9wYXJhbXNfdGVzdChjbGllbnRfY29udGV4dCwgc2VydmVyX2NvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGF0dHk9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNuaV9uYW1lPSdzdXBlcm1lc3NhZ2UnKQorICAgICAgICAgICAgIyBUaGUgaG9zdG5hbWUgd2FzIGZldGNoZWQgcHJvcGVybHksIGFuZCB0aGUgY2VydGlmaWNhdGUgd2FzCisgICAgICAgICAgICAjIGNoYW5nZWQgZm9yIHRoZSBjb25uZWN0aW9uLgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYWxscywgWygic3VwZXJtZXNzYWdlIiwgc2VydmVyX2NvbnRleHQpXSkKKyAgICAgICAgICAgICMgQ0VSVEZJTEU0IHdhcyBzZWxlY3RlZAorICAgICAgICAgICAgc2VsZi5jaGVja19jb21tb25fbmFtZShzdGF0cywgJ2Zha2Vob3N0bmFtZScpCisKKyAgICAgICAgICAgIGNhbGxzID0gW10KKyAgICAgICAgICAgICMgVGhlIGNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIHNlcnZlcl9uYW1lPU5vbmUKKyAgICAgICAgICAgIHN0YXRzID0gc2VydmVyX3BhcmFtc190ZXN0KGNsaWVudF9jb250ZXh0LCBzZXJ2ZXJfY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXR0eT1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc25pX25hbWU9Tm9uZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FsbHMsIFsoTm9uZSwgc2VydmVyX2NvbnRleHQpXSkKKyAgICAgICAgICAgIHNlbGYuY2hlY2tfY29tbW9uX25hbWUoc3RhdHMsICdsb2NhbGhvc3QnKQorCisgICAgICAgICAgICAjIENoZWNrIGRpc2FibGluZyB0aGUgY2FsbGJhY2sKKyAgICAgICAgICAgIGNhbGxzID0gW10KKyAgICAgICAgICAgIHNlcnZlcl9jb250ZXh0LnNldF9zZXJ2ZXJuYW1lX2NhbGxiYWNrKE5vbmUpCisKKyAgICAgICAgICAgIHN0YXRzID0gc2VydmVyX3BhcmFtc190ZXN0KGNsaWVudF9jb250ZXh0LCBzZXJ2ZXJfY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXR0eT1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc25pX25hbWU9J25vdGZ1bm55JykKKyAgICAgICAgICAgICMgQ2VydGlmaWNhdGUgZGlkbid0IGNoYW5nZQorICAgICAgICAgICAgc2VsZi5jaGVja19jb21tb25fbmFtZShzdGF0cywgJ2xvY2FsaG9zdCcpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhbGxzLCBbXSkKKworICAgICAgICBAbmVlZHNfc25pCisgICAgICAgIGRlZiB0ZXN0X3NuaV9jYWxsYmFja19hbGVydChzZWxmKToKKyAgICAgICAgICAgICMgUmV0dXJuaW5nIGEgVExTIGFsZXJ0IGlzIHJlZmxlY3RlZCB0byB0aGUgY29ubmVjdGluZyBjbGllbnQKKyAgICAgICAgICAgIHNlcnZlcl9jb250ZXh0LCBvdGhlcl9jb250ZXh0LCBjbGllbnRfY29udGV4dCA9IHNlbGYuc25pX2NvbnRleHRzKCkKKworICAgICAgICAgICAgZGVmIGNiX3JldHVybmluZ19hbGVydChzc2xfc29jaywgc2VydmVyX25hbWUsIGluaXRpYWxfY29udGV4dCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNzbC5BTEVSVF9ERVNDUklQVElPTl9BQ0NFU1NfREVOSUVECisgICAgICAgICAgICBzZXJ2ZXJfY29udGV4dC5zZXRfc2VydmVybmFtZV9jYWxsYmFjayhjYl9yZXR1cm5pbmdfYWxlcnQpCisKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoc3NsLlNTTEVycm9yKSBhcyBjbToKKyAgICAgICAgICAgICAgICBzdGF0cyA9IHNlcnZlcl9wYXJhbXNfdGVzdChjbGllbnRfY29udGV4dCwgc2VydmVyX2NvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhdHR5PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNuaV9uYW1lPSdzdXBlcm1lc3NhZ2UnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24ucmVhc29uLCAnVExTVjFfQUxFUlRfQUNDRVNTX0RFTklFRCcpCisKKyAgICAgICAgQG5lZWRzX3NuaQorICAgICAgICBkZWYgdGVzdF9zbmlfY2FsbGJhY2tfcmFpc2luZyhzZWxmKToKKyAgICAgICAgICAgICMgUmFpc2luZyBmYWlscyB0aGUgY29ubmVjdGlvbiB3aXRoIGEgVExTIGhhbmRzaGFrZSBmYWlsdXJlIGFsZXJ0LgorICAgICAgICAgICAgc2VydmVyX2NvbnRleHQsIG90aGVyX2NvbnRleHQsIGNsaWVudF9jb250ZXh0ID0gc2VsZi5zbmlfY29udGV4dHMoKQorCisgICAgICAgICAgICBkZWYgY2JfcmFpc2luZyhzc2xfc29jaywgc2VydmVyX25hbWUsIGluaXRpYWxfY29udGV4dCk6CisgICAgICAgICAgICAgICAgMS8wCisgICAgICAgICAgICBzZXJ2ZXJfY29udGV4dC5zZXRfc2VydmVybmFtZV9jYWxsYmFjayhjYl9yYWlzaW5nKQorCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNzbC5TU0xFcnJvcikgYXMgY20sIFwKKyAgICAgICAgICAgICAgICAgc3VwcG9ydC5jYXB0dXJlZF9zdGRlcnIoKSBhcyBzdGRlcnI6CisgICAgICAgICAgICAgICAgc3RhdHMgPSBzZXJ2ZXJfcGFyYW1zX3Rlc3QoY2xpZW50X2NvbnRleHQsIHNlcnZlcl9jb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXR0eT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbmlfbmFtZT0nc3VwZXJtZXNzYWdlJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLnJlYXNvbiwgJ1NTTFYzX0FMRVJUX0hBTkRTSEFLRV9GQUlMVVJFJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oIlplcm9EaXZpc2lvbkVycm9yIiwgc3RkZXJyLmdldHZhbHVlKCkpCisKKyAgICAgICAgQG5lZWRzX3NuaQorICAgICAgICBkZWYgdGVzdF9zbmlfY2FsbGJhY2tfd3JvbmdfcmV0dXJuX3R5cGUoc2VsZik6CisgICAgICAgICAgICAjIFJldHVybmluZyB0aGUgd3JvbmcgcmV0dXJuIHR5cGUgdGVybWluYXRlcyB0aGUgVExTIGNvbm5lY3Rpb24KKyAgICAgICAgICAgICMgd2l0aCBhbiBpbnRlcm5hbCBlcnJvciBhbGVydC4KKyAgICAgICAgICAgIHNlcnZlcl9jb250ZXh0LCBvdGhlcl9jb250ZXh0LCBjbGllbnRfY29udGV4dCA9IHNlbGYuc25pX2NvbnRleHRzKCkKKworICAgICAgICAgICAgZGVmIGNiX3dyb25nX3JldHVybl90eXBlKHNzbF9zb2NrLCBzZXJ2ZXJfbmFtZSwgaW5pdGlhbF9jb250ZXh0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gImZvbyIKKyAgICAgICAgICAgIHNlcnZlcl9jb250ZXh0LnNldF9zZXJ2ZXJuYW1lX2NhbGxiYWNrKGNiX3dyb25nX3JldHVybl90eXBlKQorCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNzbC5TU0xFcnJvcikgYXMgY20sIFwKKyAgICAgICAgICAgICAgICAgc3VwcG9ydC5jYXB0dXJlZF9zdGRlcnIoKSBhcyBzdGRlcnI6CisgICAgICAgICAgICAgICAgc3RhdHMgPSBzZXJ2ZXJfcGFyYW1zX3Rlc3QoY2xpZW50X2NvbnRleHQsIHNlcnZlcl9jb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXR0eT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbmlfbmFtZT0nc3VwZXJtZXNzYWdlJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLnJlYXNvbiwgJ1RMU1YxX0FMRVJUX0lOVEVSTkFMX0VSUk9SJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oIlR5cGVFcnJvciIsIHN0ZGVyci5nZXR2YWx1ZSgpKQorCiAKIGRlZiB0ZXN0X21haW4odmVyYm9zZT1GYWxzZSk6CiAgICAgaWYgc3VwcG9ydC52ZXJib3NlOgpAQCAtMjAzMiwxMCArMjIyMywxNiBAQAogICAgICAgICAgICAgKHNzbC5PUEVOU1NMX1ZFUlNJT04sIHNzbC5PUEVOU1NMX1ZFUlNJT05fSU5GTykpCiAgICAgICAgIHByaW50KCIgICAgICAgICAgdW5kZXIgJXMiICUgcGxhdCkKICAgICAgICAgcHJpbnQoIiAgICAgICAgICBIQVNfU05JID0gJXIiICUgc3NsLkhBU19TTkkpCisgICAgICAgIHByaW50KCIgICAgICAgICAgT1BfQUxMID0gMHglOHgiICUgc3NsLk9QX0FMTCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcHJpbnQoIiAgICAgICAgICBPUF9OT19UTFN2MV8xID0gMHglOHgiICUgc3NsLk9QX05PX1RMU3YxXzEpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKIAogICAgIGZvciBmaWxlbmFtZSBpbiBbCiAgICAgICAgIENFUlRGSUxFLCBTVk5fUFlUSE9OX09SR19ST09UX0NFUlQsIEJZVEVTX0NFUlRGSUxFLAogICAgICAgICBPTkxZQ0VSVCwgT05MWUtFWSwgQllURVNfT05MWUNFUlQsIEJZVEVTX09OTFlLRVksCisgICAgICAgIFNJR05FRF9DRVJURklMRSwgU0lHTkVEX0NFUlRGSUxFMiwgU0lHTklOR19DQSwKICAgICAgICAgQkFEQ0VSVCwgQkFES0VZLCBFTVBUWUNFUlRdOgogICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZmlsZW5hbWUpOgogICAgICAgICAgICAgcmFpc2Ugc3VwcG9ydC5UZXN0RmFpbGVkKCJDYW4ndCByZWFkIGNlcnRpZmljYXRlIGZpbGUgJXIiICUgZmlsZW5hbWUpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3N0cnVjdC5weSBiL0xpYi90ZXN0L3Rlc3Rfc3RydWN0LnB5CmluZGV4IDIyMzc0ZDIuLmZhNTY5ZDQgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfc3RydWN0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc3RydWN0LnB5CkBAIC0xLDQgKzEsNiBAQAorZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgYWJjCiBpbXBvcnQgYXJyYXkKK2ltcG9ydCBvcGVyYXRvcgogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgc3RydWN0CiBpbXBvcnQgc3lzCkBAIC02LDcgKzgsNiBAQAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiAKIElTQklHRU5ESUFOID0gc3lzLmJ5dGVvcmRlciA9PSAiYmlnIgotSVMzMkJJVCA9IHN5cy5tYXhzaXplID09IDB4N2ZmZmZmZmYKIAogaW50ZWdlcl9jb2RlcyA9ICdiJywgJ0InLCAnaCcsICdIJywgJ2knLCAnSScsICdsJywgJ0wnLCAncScsICdRJywgJ24nLCAnTicKIGJ5dGVvcmRlcnMgPSAnJywgJ0AnLCAnPScsICc8JywgJz4nLCAnIScKQEAgLTQ4OSw3ICs0OTAsNyBAQAogICAgIGRlZiB0ZXN0X2Jvb2woc2VsZik6CiAgICAgICAgIGNsYXNzIEV4cGxvZGluZ0Jvb2wob2JqZWN0KToKICAgICAgICAgICAgIGRlZiBfX2Jvb2xfXyhzZWxmKToKLSAgICAgICAgICAgICAgICByYWlzZSBJT0Vycm9yCisgICAgICAgICAgICAgICAgcmFpc2UgT1NFcnJvcgogICAgICAgICBmb3IgcHJlZml4IGluIHR1cGxlKCI8PiE9IikrKCcnLCk6CiAgICAgICAgICAgICBmYWxzZSA9ICgpLCBbXSwgW10sICcnLCAwCiAgICAgICAgICAgICB0cnVlID0gWzFdLCAndGVzdCcsIDUsIC0xLCAweGZmZmZmZmZmKzEsIDB4ZmZmZmZmZmYvMgpAQCAtNTIwLDEwICs1MjEsMTAgQEAKIAogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHN0cnVjdC5wYWNrKHByZWZpeCArICc/JywgRXhwbG9kaW5nQm9vbCgpKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgiRXhwZWN0ZWQgSU9FcnJvcjogc3RydWN0LnBhY2soJXIsICIKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoIkV4cGVjdGVkIE9TRXJyb3I6IHN0cnVjdC5wYWNrKCVyLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBsb2RpbmdCb29sKCkpIiAlIChwcmVmaXggKyAnPycpKQogCiAgICAgICAgIGZvciBjIGluIFtiJ1x4MDEnLCBiJ1x4N2YnLCBiJ1x4ZmYnLCBiJ1x4MGYnLCBiJ1x4ZjAnXToKQEAgLTUzNiwxMCArNTM3LDYgQEAKICAgICAgICAgaHVnZWNvdW50MiA9ICd7fWJ7fUgnLmZvcm1hdChzeXMubWF4c2l6ZS8vMiwgc3lzLm1heHNpemUvLzIpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHN0cnVjdC5lcnJvciwgc3RydWN0LmNhbGNzaXplLCBodWdlY291bnQyKQogCi0gICAgaWYgSVMzMkJJVDoKLSAgICAgICAgZGVmIHRlc3RfY3Jhc2hlcihzZWxmKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE1lbW9yeUVycm9yLCBzdHJ1Y3QucGFjaywgIjM1NzkxMzk0MWIiLCAiYSIpCi0KICAgICBkZWYgdGVzdF90cmFpbGluZ19jb3VudGVyKHNlbGYpOgogICAgICAgICBzdG9yZSA9IGFycmF5LmFycmF5KCdiJywgYicgJyoxMDApCiAKQEAgLTU3Niw3ICs1NzMsNyBAQAogICAgICAgICAjIFRoZSBzaXplIG9mICdQeVN0cnVjdE9iamVjdCcKICAgICAgICAgdG90YWxzaXplID0gc3VwcG9ydC5jYWxjb2Jqc2l6ZSgnMm4zUCcpCiAgICAgICAgICMgVGhlIHNpemUgdGFrZW4gdXAgYnkgdGhlICdmb3JtYXRjb2RlJyBkeW5hbWljIGFycmF5Ci0gICAgICAgIHRvdGFsc2l6ZSArPSBzdHJ1Y3QuY2FsY3NpemUoJ1AybjBQJykgKiAobnVtYmVyX29mX2NvZGVzICsgMSkKKyAgICAgICAgdG90YWxzaXplICs9IHN0cnVjdC5jYWxjc2l6ZSgnUDNuMFAnKSAqIChudW1iZXJfb2ZfY29kZXMgKyAxKQogICAgICAgICBzdXBwb3J0LmNoZWNrX3NpemVvZihzZWxmLCBzdHJ1Y3QuU3RydWN0KGZvcm1hdF9zdHIpLCB0b3RhbHNpemUpCiAKICAgICBAc3VwcG9ydC5jcHl0aG9uX29ubHkKQEAgLTU4NywxNCArNTg0LDg0IEBACiAgICAgICAgIHNlbGYuY2hlY2tfc2l6ZW9mKCdCJyAqIDEyMzQsIDEyMzQpCiAgICAgICAgIHNlbGYuY2hlY2tfc2l6ZW9mKCdmZCcsIDIpCiAgICAgICAgIHNlbGYuY2hlY2tfc2l6ZW9mKCd4eHh4eHh4eHh4eHh4eCcsIDApCi0gICAgICAgIHNlbGYuY2hlY2tfc2l6ZW9mKCcxMDBIJywgMTAwKQorICAgICAgICBzZWxmLmNoZWNrX3NpemVvZignMTAwSCcsIDEpCiAgICAgICAgIHNlbGYuY2hlY2tfc2l6ZW9mKCcxODdzJywgMSkKICAgICAgICAgc2VsZi5jaGVja19zaXplb2YoJzIwcCcsIDEpCiAgICAgICAgIHNlbGYuY2hlY2tfc2l6ZW9mKCcwcycsIDEpCiAgICAgICAgIHNlbGYuY2hlY2tfc2l6ZW9mKCcwYycsIDApCiAKKworY2xhc3MgVW5wYWNrSXRlcmF0b3JUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiIKKyAgICBUZXN0cyBmb3IgaXRlcmF0aXZlIHVucGFja2luZyAoc3RydWN0LlN0cnVjdC5pdGVyX3VucGFjaykuCisgICAgIiIiCisKKyAgICBkZWYgdGVzdF9jb25zdHJ1Y3Qoc2VsZik6CisgICAgICAgIGRlZiBfY2hlY2tfaXRlcmF0b3IoaXQpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGl0LCBhYmMuSXRlcmF0b3IpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaXQsIGFiYy5JdGVyYWJsZSkKKyAgICAgICAgcyA9IHN0cnVjdC5TdHJ1Y3QoJz5pYmNwJykKKyAgICAgICAgaXQgPSBzLml0ZXJfdW5wYWNrKGIiIikKKyAgICAgICAgX2NoZWNrX2l0ZXJhdG9yKGl0KQorICAgICAgICBpdCA9IHMuaXRlcl91bnBhY2soYiIxMjM0NTY3IikKKyAgICAgICAgX2NoZWNrX2l0ZXJhdG9yKGl0KQorICAgICAgICAjIFdyb25nIGJ5dGVzIGxlbmd0aAorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHN0cnVjdC5lcnJvcik6CisgICAgICAgICAgICBzLml0ZXJfdW5wYWNrKGIiMTIzNDU2IikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhzdHJ1Y3QuZXJyb3IpOgorICAgICAgICAgICAgcy5pdGVyX3VucGFjayhiIjEyMzQ1Njc4IikKKyAgICAgICAgIyBaZXJvLWxlbmd0aCBzdHJ1Y3QKKyAgICAgICAgcyA9IHN0cnVjdC5TdHJ1Y3QoJz4nKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHN0cnVjdC5lcnJvcik6CisgICAgICAgICAgICBzLml0ZXJfdW5wYWNrKGIiIikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhzdHJ1Y3QuZXJyb3IpOgorICAgICAgICAgICAgcy5pdGVyX3VucGFjayhiIjEyIikKKworICAgIGRlZiB0ZXN0X2l0ZXJhdGUoc2VsZik6CisgICAgICAgIHMgPSBzdHJ1Y3QuU3RydWN0KCc+SUInKQorICAgICAgICBiID0gYnl0ZXMocmFuZ2UoMSwgMTYpKQorICAgICAgICBpdCA9IHMuaXRlcl91bnBhY2soYikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXh0KGl0KSwgKDB4MDEwMjAzMDQsIDUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5leHQoaXQpLCAoMHgwNjA3MDgwOSwgMTApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5leHQoaXQpLCAoMHgwYjBjMGQwZSwgMTUpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTdG9wSXRlcmF0aW9uLCBuZXh0LCBpdCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3RvcEl0ZXJhdGlvbiwgbmV4dCwgaXQpCisKKyAgICBkZWYgdGVzdF9hcmJpdHJhcnlfYnVmZmVyKHNlbGYpOgorICAgICAgICBzID0gc3RydWN0LlN0cnVjdCgnPklCJykKKyAgICAgICAgYiA9IGJ5dGVzKHJhbmdlKDEsIDExKSkKKyAgICAgICAgaXQgPSBzLml0ZXJfdW5wYWNrKG1lbW9yeXZpZXcoYikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV4dChpdCksICgweDAxMDIwMzA0LCA1KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXh0KGl0KSwgKDB4MDYwNzA4MDksIDEwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3RvcEl0ZXJhdGlvbiwgbmV4dCwgaXQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFN0b3BJdGVyYXRpb24sIG5leHQsIGl0KQorCisgICAgZGVmIHRlc3RfbGVuZ3RoX2hpbnQoc2VsZik6CisgICAgICAgIGxoID0gb3BlcmF0b3IubGVuZ3RoX2hpbnQKKyAgICAgICAgcyA9IHN0cnVjdC5TdHJ1Y3QoJz5JQicpCisgICAgICAgIGIgPSBieXRlcyhyYW5nZSgxLCAxNikpCisgICAgICAgIGl0ID0gcy5pdGVyX3VucGFjayhiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxoKGl0KSwgMykKKyAgICAgICAgbmV4dChpdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaChpdCksIDIpCisgICAgICAgIG5leHQoaXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGgoaXQpLCAxKQorICAgICAgICBuZXh0KGl0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxoKGl0KSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3RvcEl0ZXJhdGlvbiwgbmV4dCwgaXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGgoaXQpLCAwKQorCisgICAgZGVmIHRlc3RfbW9kdWxlX2Z1bmMoc2VsZik6CisgICAgICAgICMgU2FuaXR5IGNoZWNrIGZvciB0aGUgZ2xvYmFsIHN0cnVjdC5pdGVyX3VucGFjaygpCisgICAgICAgIGl0ID0gc3RydWN0Lml0ZXJfdW5wYWNrKCc+SUInLCBieXRlcyhyYW5nZSgxLCAxMSkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5leHQoaXQpLCAoMHgwMTAyMDMwNCwgNSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV4dChpdCksICgweDA2MDcwODA5LCAxMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFN0b3BJdGVyYXRpb24sIG5leHQsIGl0KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTdG9wSXRlcmF0aW9uLCBuZXh0LCBpdCkKKworCiBkZWYgdGVzdF9tYWluKCk6Ci0gICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoU3RydWN0VGVzdCkKKyAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChfX25hbWVfXykKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zdWJwcm9jZXNzLnB5IGIvTGliL3Rlc3QvdGVzdF9zdWJwcm9jZXNzLnB5CmluZGV4IDkwMWQ0ZGYuLjUwOTIzZTggMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfc3VicHJvY2Vzcy5weQorKysgYi9MaWIvdGVzdC90ZXN0X3N1YnByb2Nlc3MucHkKQEAgLTE1OCw4ICsxNTgsMjggQEAKICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oYidCREZMJywgb3V0cHV0KQogCisgICAgZGVmIHRlc3RfY2hlY2tfb3V0cHV0X3N0ZGluX2FyZyhzZWxmKToKKyAgICAgICAgIyBjaGVja19vdXRwdXQoKSBjYW4gYmUgY2FsbGVkIHdpdGggc3RkaW4gc2V0IHRvIGEgZmlsZQorICAgICAgICB0ZiA9IHRlbXBmaWxlLlRlbXBvcmFyeUZpbGUoKQorICAgICAgICBzZWxmLmFkZENsZWFudXAodGYuY2xvc2UpCisgICAgICAgIHRmLndyaXRlKGIncGVhcicpCisgICAgICAgIHRmLnNlZWsoMCkKKyAgICAgICAgb3V0cHV0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoCisgICAgICAgICAgICAgICAgW3N5cy5leGVjdXRhYmxlLCAiLWMiLAorICAgICAgICAgICAgICAgICAiaW1wb3J0IHN5czsgc3lzLnN0ZG91dC53cml0ZShzeXMuc3RkaW4ucmVhZCgpLnVwcGVyKCkpIl0sCisgICAgICAgICAgICAgICAgc3RkaW49dGYpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oYidQRUFSJywgb3V0cHV0KQorCisgICAgZGVmIHRlc3RfY2hlY2tfb3V0cHV0X2lucHV0X2FyZyhzZWxmKToKKyAgICAgICAgIyBjaGVja19vdXRwdXQoKSBjYW4gYmUgY2FsbGVkIHdpdGggaW5wdXQgc2V0IHRvIGEgc3RyaW5nCisgICAgICAgIG91dHB1dCA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KAorICAgICAgICAgICAgICAgIFtzeXMuZXhlY3V0YWJsZSwgIi1jIiwKKyAgICAgICAgICAgICAgICAgImltcG9ydCBzeXM7IHN5cy5zdGRvdXQud3JpdGUoc3lzLnN0ZGluLnJlYWQoKS51cHBlcigpKSJdLAorICAgICAgICAgICAgICAgIGlucHV0PWIncGVhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oYidQRUFSJywgb3V0cHV0KQorCiAgICAgZGVmIHRlc3RfY2hlY2tfb3V0cHV0X3N0ZG91dF9hcmcoc2VsZik6Ci0gICAgICAgICMgY2hlY2tfb3V0cHV0KCkgZnVuY3Rpb24gc3RkZXJyIHJlZGlyZWN0ZWQgdG8gc3Rkb3V0CisgICAgICAgICMgY2hlY2tfb3V0cHV0KCkgcmVmdXNlcyB0byBhY2NlcHQgJ3N0ZG91dCcgYXJndW1lbnQKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBjOgogICAgICAgICAgICAgb3V0cHV0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgIFtzeXMuZXhlY3V0YWJsZSwgIi1jIiwgInByaW50KCd3aWxsIG5vdCBiZSBydW4nKSJdLApAQCAtMTY3LDYgKzE4NywyMCBAQAogICAgICAgICAgICAgc2VsZi5mYWlsKCJFeHBlY3RlZCBWYWx1ZUVycm9yIHdoZW4gc3Rkb3V0IGFyZyBzdXBwbGllZC4iKQogICAgICAgICBzZWxmLmFzc2VydEluKCdzdGRvdXQnLCBjLmV4Y2VwdGlvbi5hcmdzWzBdKQogCisgICAgZGVmIHRlc3RfY2hlY2tfb3V0cHV0X3N0ZGluX3dpdGhfaW5wdXRfYXJnKHNlbGYpOgorICAgICAgICAjIGNoZWNrX291dHB1dCgpIHJlZnVzZXMgdG8gYWNjZXB0ICdzdGRpbicgd2l0aCAnaW5wdXQnCisgICAgICAgIHRmID0gdGVtcGZpbGUuVGVtcG9yYXJ5RmlsZSgpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cCh0Zi5jbG9zZSkKKyAgICAgICAgdGYud3JpdGUoYidwZWFyJykKKyAgICAgICAgdGYuc2VlaygwKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFzIGM6CisgICAgICAgICAgICBvdXRwdXQgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dCgKKyAgICAgICAgICAgICAgICAgICAgW3N5cy5leGVjdXRhYmxlLCAiLWMiLCAicHJpbnQoJ3dpbGwgbm90IGJlIHJ1bicpIl0sCisgICAgICAgICAgICAgICAgICAgIHN0ZGluPXRmLCBpbnB1dD1iJ2hhcmUnKQorICAgICAgICAgICAgc2VsZi5mYWlsKCJFeHBlY3RlZCBWYWx1ZUVycm9yIHdoZW4gc3RkaW4gYW5kIGlucHV0IGFyZ3Mgc3VwcGxpZWQuIikKKyAgICAgICAgc2VsZi5hc3NlcnRJbignc3RkaW4nLCBjLmV4Y2VwdGlvbi5hcmdzWzBdKQorICAgICAgICBzZWxmLmFzc2VydEluKCdpbnB1dCcsIGMuZXhjZXB0aW9uLmFyZ3NbMF0pCisKICAgICBkZWYgdGVzdF9jaGVja19vdXRwdXRfdGltZW91dChzZWxmKToKICAgICAgICAgIyBjaGVja19vdXRwdXQoKSBmdW5jdGlvbiB3aXRoIHRpbWVvdXQgYXJnCiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZCkgYXMgYzoKQEAgLTk3Nyw4ICsxMDExLDcgQEAKICAgICAgICAgIyB2YWx1ZSBmb3IgdGhhdCBsaW1pdCwgYnV0IFdpbmRvd3MgaGFzIDIwNDgsIHNvIHdlIGxvb3AKICAgICAgICAgIyAxMDI0IHRpbWVzIChlYWNoIGNhbGwgbGVha2VkIHR3byBmZHMpLgogICAgICAgICBmb3IgaSBpbiByYW5nZSgxMDI0KToKLSAgICAgICAgICAgICMgV2luZG93cyByYWlzZXMgSU9FcnJvci4gIE90aGVycyByYWlzZSBPU0Vycm9yLgotICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhFbnZpcm9ubWVudEVycm9yKSBhcyBjOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjOgogICAgICAgICAgICAgICAgIHN1YnByb2Nlc3MuUG9wZW4oWydub25leGlzdGluZ19pX2hvcGUnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQpAQCAtMTIzMSw3ICsxMjY0LDcgQEAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcCA9IHN1YnByb2Nlc3MuUG9wZW4oW3N5cy5leGVjdXRhYmxlLCAiLWMiLCAiIl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVleGVjX2ZuPXJhaXNlX2l0KQotICAgICAgICBleGNlcHQgUnVudGltZUVycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLlN1YnByb2Nlc3NFcnJvciBhcyBlOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKAogICAgICAgICAgICAgICAgICAgICBzdWJwcm9jZXNzLl9wb3NpeHN1YnByb2Nlc3MsCiAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZCBhIFZhbHVlRXJyb3IgZnJvbSB0aGUgcHJlZXhlY19mbiIpCkBAIC0xMjcwLDkgKzEzMDMsMTAgQEAKICAgICAgICAgIiIiSXNzdWUxNjE0MDogRG9uJ3QgZG91YmxlIGNsb3NlIHBpcGVzIG9uIHByZWV4ZWMgZXJyb3IuIiIiCiAKICAgICAgICAgZGVmIHJhaXNlX2l0KCk6Ci0gICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoImZvcmNlIHRoZSBfZXhlY3V0ZV9jaGlsZCgpIGVycnBpcGVfZGF0YSBwYXRoLiIpCisgICAgICAgICAgICByYWlzZSBzdWJwcm9jZXNzLlN1YnByb2Nlc3NFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgImZvcmNlIHRoZSBfZXhlY3V0ZV9jaGlsZCgpIGVycnBpcGVfZGF0YSBwYXRoLiIpCiAKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHN1YnByb2Nlc3MuU3VicHJvY2Vzc0Vycm9yKToKICAgICAgICAgICAgIHNlbGYuX1Rlc3RFeGVjdXRlQ2hpbGRQb3BlbigKICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsIFtzeXMuZXhlY3V0YWJsZSwgIi1jIiwgInBhc3MiXSwKICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGluPXN1YnByb2Nlc3MuUElQRSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKQEAgLTE2MzUsMTIgKzE2NjksMTIgQEAKICAgICAgICAgICAgICMgUHVyZSBQeXRob24gaW1wbGVtZW50YXRpb25zIGtlZXBzIHRoZSBtZXNzYWdlCiAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzdWJwcm9jZXNzLl9wb3NpeHN1YnByb2Nlc3MpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihlcnIpLCAic3Vycm9nYXRlOlx1RENmZiIpCi0gICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3IgYXMgZXJyOgorICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5TdWJwcm9jZXNzRXJyb3IgYXMgZXJyOgogICAgICAgICAgICAgIyBfcG9zaXhzdWJwcm9jZXNzIHVzZXMgYSBkZWZhdWx0IG1lc3NhZ2UKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHN1YnByb2Nlc3MuX3Bvc2l4c3VicHJvY2VzcykKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVyciksICJFeGNlcHRpb24gb2NjdXJyZWQgaW4gcHJlZXhlY19mbi4iKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5mYWlsKCJFeHBlY3RlZCBWYWx1ZUVycm9yIG9yIFJ1bnRpbWVFcnJvciIpCisgICAgICAgICAgICBzZWxmLmZhaWwoIkV4cGVjdGVkIFZhbHVlRXJyb3Igb3Igc3VicHJvY2Vzcy5TdWJwcm9jZXNzRXJyb3IiKQogCiAgICAgZGVmIHRlc3RfdW5kZWNvZGFibGVfZW52KHNlbGYpOgogICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiAoKCd0ZXN0JywgJ2FiY1x1RENGRicpLCAoJ3Rlc3RcdURDRkYnLCAnNDInKSk6CkBAIC0xOTI3LDcgKzE5NjEsNyBAQAogICAgICAgICAjIGxldCBzb21lIHRpbWUgZm9yIHRoZSBwcm9jZXNzIHRvIGV4aXQsIGFuZCBjcmVhdGUgYSBuZXcgUG9wZW46IHRoaXMKICAgICAgICAgIyBzaG91bGQgdHJpZ2dlciB0aGUgd2FpdCgpIG9mIHAKICAgICAgICAgdGltZS5zbGVlcCgwLjIpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoRW52aXJvbm1lbnRFcnJvcikgYXMgYzoKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjOgogICAgICAgICAgICAgd2l0aCBzdWJwcm9jZXNzLlBvcGVuKFsnbm9uZXhpc3RpbmdfaV9ob3BlJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKSBhcyBwcm9jOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zdW5kcnkucHkgYi9MaWIvdGVzdC90ZXN0X3N1bmRyeS5weQppbmRleCBmY2NjZGY3Li5mMTcxZDZmIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3N1bmRyeS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3N1bmRyeS5weQpAQCAtMSwxOSArMSwyNiBAQAogIiIiRG8gYSBtaW5pbWFsIHRlc3Qgb2YgYWxsIHRoZSBtb2R1bGVzIHRoYXQgYXJlbid0IG90aGVyd2lzZSB0ZXN0ZWQuIiIiCi0KLWZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAoraW1wb3J0IGltcG9ydGxpYgogaW1wb3J0IHN5cworZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBpbXBvcnQgdW5pdHRlc3QKIAogY2xhc3MgVGVzdFVudGVzdGVkTW9kdWxlcyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3RfYXRfbGVhc3RfaW1wb3J0X3VudGVzdGVkX21vZHVsZXMoc2VsZik6CisgICAgZGVmIHRlc3RfdW50ZXN0ZWRfbW9kdWxlc19jYW5fYmVfaW1wb3J0ZWQoc2VsZik6CisgICAgICAgIHVudGVzdGVkID0gKCdiZGInLCAnZW5jb2RpbmdzJywgJ2Zvcm1hdHRlcicsICdpbWdoZHInLAorICAgICAgICAgICAgICAgICAgICAnbWFjdXJsMnBhdGgnLCAnbnR1cmwycGF0aCcsICd0YWJuYW5ueScpCiAgICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncyhxdWlldD1UcnVlKToKLSAgICAgICAgICAgIGltcG9ydCBiZGIKLSAgICAgICAgICAgIGltcG9ydCBjZ2l0YgorICAgICAgICAgICAgZm9yIG5hbWUgaW4gdW50ZXN0ZWQ6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBzdXBwb3J0LmltcG9ydF9tb2R1bGUoJ3Rlc3QudGVzdF97fScuZm9ybWF0KG5hbWUpKQorICAgICAgICAgICAgICAgIGV4Y2VwdCB1bml0dGVzdC5Ta2lwVGVzdDoKKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0bGliLmltcG9ydF9tb2R1bGUobmFtZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ3t9IGhhcyB0ZXN0cyBldmVuIHRob3VnaCB0ZXN0X3N1bmRyeSBjbGFpbXMgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ290aGVyd2lzZScuZm9ybWF0KG5hbWUpKQogCiAgICAgICAgICAgICBpbXBvcnQgZGlzdHV0aWxzLmJjcHBjb21waWxlcgogICAgICAgICAgICAgaW1wb3J0IGRpc3R1dGlscy5jY29tcGlsZXIKICAgICAgICAgICAgIGltcG9ydCBkaXN0dXRpbHMuY3lnd2luY2NvbXBpbGVyCi0gICAgICAgICAgICBpbXBvcnQgZGlzdHV0aWxzLmVteGNjb21waWxlcgogICAgICAgICAgICAgaW1wb3J0IGRpc3R1dGlscy5maWxlbGlzdAogICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicpOgogICAgICAgICAgICAgICAgIGltcG9ydCBkaXN0dXRpbHMubXN2Y2NvbXBpbGVyCkBAIC0zOSwyMiArNDYsOSBAQAogICAgICAgICAgICAgaW1wb3J0IGRpc3R1dGlscy5jb21tYW5kLnNkaXN0CiAgICAgICAgICAgICBpbXBvcnQgZGlzdHV0aWxzLmNvbW1hbmQudXBsb2FkCiAKLSAgICAgICAgICAgIGltcG9ydCBlbmNvZGluZ3MKLSAgICAgICAgICAgIGltcG9ydCBmb3JtYXR0ZXIKLSAgICAgICAgICAgIGltcG9ydCBnZXRwYXNzCiAgICAgICAgICAgICBpbXBvcnQgaHRtbC5lbnRpdGllcwotICAgICAgICAgICAgaW1wb3J0IGltZ2hkcgotICAgICAgICAgICAgaW1wb3J0IGtleXdvcmQKLSAgICAgICAgICAgIGltcG9ydCBtYWN1cmwycGF0aAotICAgICAgICAgICAgaW1wb3J0IG1haWxjYXAKLSAgICAgICAgICAgIGltcG9ydCBudHVybDJwYXRoCi0gICAgICAgICAgICBpbXBvcnQgb3MyZW14cGF0aAotICAgICAgICAgICAgaW1wb3J0IHBzdGF0cwotICAgICAgICAgICAgaW1wb3J0IHB5X2NvbXBpbGUKLSAgICAgICAgICAgIGltcG9ydCBzbmRoZHIKLSAgICAgICAgICAgIGltcG9ydCB0YWJuYW5ueQogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGltcG9ydCB0dHkgICAgICMgbm90IGF2YWlsYWJsZSBvbiBXaW5kb3dzCisgICAgICAgICAgICAgICAgaW1wb3J0IHR0eSAgIyBOb3QgYXZhaWxhYmxlIG9uIFdpbmRvd3MKICAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgICAgICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6CiAgICAgICAgICAgICAgICAgICAgIHByaW50KCJza2lwcGluZyB0dHkiKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zdXBlci5weSBiL0xpYi90ZXN0L3Rlc3Rfc3VwZXIucHkKaW5kZXggMWUyNzJlZS4uMzdmYzJkOSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zdXBlci5weQorKysgYi9MaWIvdGVzdC90ZXN0X3N1cGVyLnB5CkBAIC00NCw2ICs0NCwxMSBAQAogCiBjbGFzcyBUZXN0U3VwZXIodW5pdHRlc3QuVGVzdENhc2UpOgogCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIFRoaXMgZml4ZXMgdGhlIGRhbWFnZSB0aGF0IHRlc3RfdmFyaW91c19fX2NsYXNzX19fcGF0aG9sb2dpZXMgZG9lcy4KKyAgICAgICAgbm9ubG9jYWwgX19jbGFzc19fCisgICAgICAgIF9fY2xhc3NfXyA9IFRlc3RTdXBlcgorCiAgICAgZGVmIHRlc3RfYmFzaWNzX3dvcmtpbmcoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRCgpLmYoKSwgJ0FCQ0QnKQogCkBAIC04MSw4ICs4Niw3IEBACiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChFKCkuZigpLCAnQUUnKQogCi0gICAgQHVuaXR0ZXN0LmV4cGVjdGVkRmFpbHVyZQotICAgIGRlZiB0ZXN0X19fY2xhc3NfX19zZXQoc2VsZik6CisgICAgZGVmIHRlc3RfdmFyaW91c19fX2NsYXNzX19fcGF0aG9sb2dpZXMoc2VsZik6CiAgICAgICAgICMgU2VlIGlzc3VlICMxMjM3MAogICAgICAgICBjbGFzcyBYKEEpOgogICAgICAgICAgICAgZGVmIGYoc2VsZik6CkBAIC05MSw2ICs5NSwzMSBAQAogICAgICAgICB4ID0gWCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeC5mKCksICdBJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4Ll9fY2xhc3NfXywgNDEzKQorICAgICAgICBjbGFzcyBYOgorICAgICAgICAgICAgeCA9IF9fY2xhc3NfXworICAgICAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgICAgICBfX2NsYXNzX18KKyAgICAgICAgc2VsZi5hc3NlcnRJcyhYLngsIHR5cGUoc2VsZikpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoTmFtZUVycm9yKSBhcyBlOgorICAgICAgICAgICAgZXhlYygiIiJjbGFzcyBYOgorICAgICAgICAgICAgICAgIF9fY2xhc3NfXworICAgICAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgICAgIF9fY2xhc3NfXyIiIiwgZ2xvYmFscygpLCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh0eXBlKGUuZXhjZXB0aW9uKSwgTmFtZUVycm9yKSAjIE5vdCBVbmJvdW5kTG9jYWxFcnJvcgorICAgICAgICBjbGFzcyBYOgorICAgICAgICAgICAgZ2xvYmFsIF9fY2xhc3NfXworICAgICAgICAgICAgX19jbGFzc19fID0gNDIKKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgX19jbGFzc19fCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2xvYmFscygpWyJfX2NsYXNzX18iXSwgNDIpCisgICAgICAgIGRlbCBnbG9iYWxzKClbIl9fY2xhc3NfXyJdCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oIl9fY2xhc3NfXyIsIFguX19kaWN0X18pCisgICAgICAgIGNsYXNzIFg6CisgICAgICAgICAgICBub25sb2NhbCBfX2NsYXNzX18KKyAgICAgICAgICAgIF9fY2xhc3NfXyA9IDQyCisgICAgICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgICAgIF9fY2xhc3NfXworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9fY2xhc3NfXywgNDIpCiAKICAgICBkZWYgdGVzdF9fX2NsYXNzX19faW5zdGFuY2VtZXRob2Qoc2VsZik6CiAgICAgICAgICMgU2VlIGlzc3VlICMxNDg1NwpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zeW50YXgucHkgYi9MaWIvdGVzdC90ZXN0X3N5bnRheC5weQppbmRleCA1OTI2YjY5Li5hOWQzNjI4IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3N5bnRheC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3N5bnRheC5weQpAQCAtMzMsNyArMzMsNyBAQAogCiA+Pj4gTm9uZSA9IDEKIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKLVN5bnRheEVycm9yOiBhc3NpZ25tZW50IHRvIGtleXdvcmQKK1N5bnRheEVycm9yOiBjYW4ndCBhc3NpZ24gdG8ga2V5d29yZAogCiBJdCdzIGEgc3ludGF4IGVycm9yIHRvIGFzc2lnbiB0byB0aGUgZW1wdHkgdHVwbGUuICBXaHkgaXNuJ3QgaXQgYW4KIGVycm9yIHRvIGFzc2lnbiB0byB0aGUgZW1wdHkgbGlzdD8gIEl0IHdpbGwgYWx3YXlzIHJhaXNlIHNvbWUgZXJyb3IgYXQKQEAgLTIzMyw3ICsyMzMsNyBAQAogU3ludGF4RXJyb3I6IGNhbid0IGFzc2lnbiB0byBnZW5lcmF0b3IgZXhwcmVzc2lvbgogPj4+IE5vbmUgKz0gMQogVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgotU3ludGF4RXJyb3I6IGFzc2lnbm1lbnQgdG8ga2V5d29yZAorU3ludGF4RXJyb3I6IGNhbid0IGFzc2lnbiB0byBrZXl3b3JkCiA+Pj4gZigpICs9IDEKIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKIFN5bnRheEVycm9yOiBjYW4ndCBhc3NpZ24gdG8gZnVuY3Rpb24gY2FsbApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zeXMucHkgYi9MaWIvdGVzdC90ZXN0X3N5cy5weQppbmRleCA5ZDk3YzhkLi45M2I5ZjhjIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3N5cy5weQorKysgYi9MaWIvdGVzdC90ZXN0X3N5cy5weQpAQCAtNiw2ICs2LDggQEAKIGltcG9ydCB3YXJuaW5ncwogaW1wb3J0IG9wZXJhdG9yCiBpbXBvcnQgY29kZWNzCitpbXBvcnQgZ2MKK2ltcG9ydCBzeXNjb25maWcKIAogIyBjb3VudCB0aGUgbnVtYmVyIG9mIHRlc3QgcnVucywgdXNlZCB0byBjcmVhdGUgdW5pcXVlCiAjIHN0cmluZ3MgdG8gaW50ZXJuIGluIHRlc3RfaW50ZXJuKCkKQEAgLTQ4MCw3ICs0ODIsNyBAQAogICAgIGRlZiB0ZXN0X3RocmVhZF9pbmZvKHNlbGYpOgogICAgICAgICBpbmZvID0gc3lzLnRocmVhZF9pbmZvCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGluZm8pLCAzKQotICAgICAgICBzZWxmLmFzc2VydEluKGluZm8ubmFtZSwgKCdudCcsICdvczInLCAncHRocmVhZCcsICdzb2xhcmlzJywgTm9uZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oaW5mby5uYW1lLCAoJ250JywgJ3B0aHJlYWQnLCAnc29sYXJpcycsIE5vbmUpKQogICAgICAgICBzZWxmLmFzc2VydEluKGluZm8ubG9jaywgKCdzZW1hcGhvcmUnLCAnbXV0ZXgrY29uZCcsIE5vbmUpKQogCiAgICAgZGVmIHRlc3RfNDM1ODEoc2VsZik6CkBAIC02MDksNiArNjExLDM2IEBACiAgICAgICAgIHJldCwgb3V0LCBlcnIgPSBhc3NlcnRfcHl0aG9uX29rKCphcmdzKQogICAgICAgICBzZWxmLmFzc2VydEluKGIiZnJlZSBQeURpY3RPYmplY3RzIiwgZXJyKQogCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihzeXMsICJnZXRhbGxvY2F0ZWRibG9ja3MiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAic3lzLmdldGFsbG9jYXRlZGJsb2NrcyB1bmF2YWlsYWJsZSBvbiB0aGlzIGJ1aWxkIikKKyAgICBkZWYgdGVzdF9nZXRhbGxvY2F0ZWRibG9ja3Moc2VsZik6CisgICAgICAgICMgU29tZSBzYW5pdHkgY2hlY2tzCisgICAgICAgIHdpdGhfcHltYWxsb2MgPSBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ1dJVEhfUFlNQUxMT0MnKQorICAgICAgICBhID0gc3lzLmdldGFsbG9jYXRlZGJsb2NrcygpCisgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShhKSwgaW50KQorICAgICAgICBpZiB3aXRoX3B5bWFsbG9jOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKGEsIDApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIFdoZW4gV0lUSF9QWU1BTExPQyBpc24ndCBhdmFpbGFibGUsIHdlIGRvbid0IGtub3cgYW55dGhpbmcKKyAgICAgICAgICAgICMgYWJvdXQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb246IHRoZSBmdW5jdGlvbiBtaWdodAorICAgICAgICAgICAgIyByZXR1cm4gMCBvciBzb21ldGhpbmcgZ3JlYXRlci4KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKGEsIDApCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgV2hpbGUgd2UgY291bGQgaW1hZ2luZSBhIFB5dGhvbiBzZXNzaW9uIHdoZXJlIHRoZSBudW1iZXIgb2YKKyAgICAgICAgICAgICMgbXVsdGlwbGUgYnVmZmVyIG9iamVjdHMgd291bGQgZXhjZWVkIHRoZSBzaGFyaW5nIG9mIHJlZmVyZW5jZXMsCisgICAgICAgICAgICAjIGl0IGlzIHVubGlrZWx5IHRvIGhhcHBlbiBpbiBhIG5vcm1hbCB0ZXN0IHJ1bi4KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0TGVzcyhhLCBzeXMuZ2V0dG90YWxyZWZjb3VudCgpKQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAjIGdldHRvdGFscmVmY291bnQoKSBub3QgYXZhaWxhYmxlCisgICAgICAgICAgICBwYXNzCisgICAgICAgIGdjLmNvbGxlY3QoKQorICAgICAgICBiID0gc3lzLmdldGFsbG9jYXRlZGJsb2NrcygpCisgICAgICAgIHNlbGYuYXNzZXJ0TGVzc0VxdWFsKGIsIGEpCisgICAgICAgIGdjLmNvbGxlY3QoKQorICAgICAgICBjID0gc3lzLmdldGFsbG9jYXRlZGJsb2NrcygpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oYywgcmFuZ2UoYiAtIDUwLCBiICsgNTApKQorCisKIGNsYXNzIFNpemVvZlRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zeXNjb25maWcucHkgYi9MaWIvdGVzdC90ZXN0X3N5c2NvbmZpZy5weQppbmRleCA5MjE5MzYwLi41MjkzNjQ5IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3N5c2NvbmZpZy5weQorKysgYi9MaWIvdGVzdC90ZXN0X3N5c2NvbmZpZy5weQpAQCAtMjM0LDcgKzIzNCw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmlzZmlsZShjb25maWdfaCksIGNvbmZpZ19oKQogCiAgICAgZGVmIHRlc3RfZ2V0X3NjaGVtZV9uYW1lcyhzZWxmKToKLSAgICAgICAgd2FudGVkID0gKCdudCcsICdudF91c2VyJywgJ29zMicsICdvczJfaG9tZScsICdvc3hfZnJhbWV3b3JrX3VzZXInLAorICAgICAgICB3YW50ZWQgPSAoJ250JywgJ250X3VzZXInLCAnb3N4X2ZyYW1ld29ya191c2VyJywKICAgICAgICAgICAgICAgICAgICdwb3NpeF9ob21lJywgJ3Bvc2l4X3ByZWZpeCcsICdwb3NpeF91c2VyJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRfc2NoZW1lX25hbWVzKCksIHdhbnRlZCkKIApAQCAtMzA1LDE0ICszMDUsMTMgQEAKICAgICAgICAgaWYgJ01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCcgaW4gZW52OgogICAgICAgICAgICAgZGVsIGVudlsnTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUJ10KIAotICAgICAgICB3aXRoIG9wZW4oJy9kZXYvbnVsbCcsICd3JykgYXMgZGV2bnVsbF9mcDoKLSAgICAgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKFsKLSAgICAgICAgICAgICAgICAgICAgc3lzLmV4ZWN1dGFibGUsICctYycsCi0gICAgICAgICAgICAgICAgICAgICdpbXBvcnQgc3lzY29uZmlnOyBwcmludChzeXNjb25maWcuZ2V0X3BsYXRmb3JtKCkpJywKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCi0gICAgICAgICAgICAgICAgc3RkZXJyPWRldm51bGxfZnAsCi0gICAgICAgICAgICAgICAgZW52PWVudikKKyAgICAgICAgcCA9IHN1YnByb2Nlc3MuUG9wZW4oWworICAgICAgICAgICAgICAgIHN5cy5leGVjdXRhYmxlLCAnLWMnLAorICAgICAgICAgICAgICAgICdpbXBvcnQgc3lzY29uZmlnOyBwcmludChzeXNjb25maWcuZ2V0X3BsYXRmb3JtKCkpJywKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCwKKyAgICAgICAgICAgIGVudj1lbnYpCiAgICAgICAgIHRlc3RfcGxhdGZvcm0gPSBwLmNvbW11bmljYXRlKClbMF0uc3RyaXAoKQogICAgICAgICB0ZXN0X3BsYXRmb3JtID0gdGVzdF9wbGF0Zm9ybS5kZWNvZGUoJ3V0Zi04JykKICAgICAgICAgc3RhdHVzID0gcC53YWl0KCkKQEAgLTMyNSwyMCArMzI0LDE5IEBACiAgICAgICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCiAgICAgICAgIGVudlsnTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUJ10gPSAnMTAuMScKIAotICAgICAgICB3aXRoIG9wZW4oJy9kZXYvbnVsbCcpIGFzIGRldl9udWxsOgotICAgICAgICAgICAgcCA9IHN1YnByb2Nlc3MuUG9wZW4oWwotICAgICAgICAgICAgICAgICAgICBzeXMuZXhlY3V0YWJsZSwgJy1jJywKLSAgICAgICAgICAgICAgICAgICAgJ2ltcG9ydCBzeXNjb25maWc7IHByaW50KHN5c2NvbmZpZy5nZXRfcGxhdGZvcm0oKSknLAotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKLSAgICAgICAgICAgICAgICBzdGRlcnI9ZGV2X251bGwsCi0gICAgICAgICAgICAgICAgZW52PWVudikKLSAgICAgICAgICAgIHRlc3RfcGxhdGZvcm0gPSBwLmNvbW11bmljYXRlKClbMF0uc3RyaXAoKQotICAgICAgICAgICAgdGVzdF9wbGF0Zm9ybSA9IHRlc3RfcGxhdGZvcm0uZGVjb2RlKCd1dGYtOCcpCi0gICAgICAgICAgICBzdGF0dXMgPSBwLndhaXQoKQorICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3BlbihbCisgICAgICAgICAgICAgICAgc3lzLmV4ZWN1dGFibGUsICctYycsCisgICAgICAgICAgICAgICAgJ2ltcG9ydCBzeXNjb25maWc7IHByaW50KHN5c2NvbmZpZy5nZXRfcGxhdGZvcm0oKSknLAorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5ERVZOVUxMLAorICAgICAgICAgICAgZW52PWVudikKKyAgICAgICAgdGVzdF9wbGF0Zm9ybSA9IHAuY29tbXVuaWNhdGUoKVswXS5zdHJpcCgpCisgICAgICAgIHRlc3RfcGxhdGZvcm0gPSB0ZXN0X3BsYXRmb3JtLmRlY29kZSgndXRmLTgnKQorICAgICAgICBzdGF0dXMgPSBwLndhaXQoKQogCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0YXR1cywgMCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXlfcGxhdGZvcm0sIHRlc3RfcGxhdGZvcm0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RhdHVzLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG15X3BsYXRmb3JtLCB0ZXN0X3BsYXRmb3JtKQogCiAgICAgZGVmIHRlc3Rfc3JjZGlyKHNlbGYpOgogICAgICAgICAjIFNlZSBJc3N1ZXMgIzE1MzIyLCAjMTUzNjQuCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3RhcmZpbGUucHkgYi9MaWIvdGVzdC90ZXN0X3RhcmZpbGUucHkKaW5kZXggOWI5OGRmMi4uYTY5NDM3YyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF90YXJmaWxlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfdGFyZmlsZS5weQpAQCAtMTY2MCwyMCArMTY2MCwyMCBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUodGFyLmNsb3NlZCwgImNvbnRleHQgbWFuYWdlciBmYWlsZWQiKQogCiAgICAgZGVmIHRlc3RfY2xvc2VkKHNlbGYpOgotICAgICAgICAjIFRoZSBfX2VudGVyX18oKSBtZXRob2QgaXMgc3VwcG9zZWQgdG8gcmFpc2UgSU9FcnJvcgorICAgICAgICAjIFRoZSBfX2VudGVyX18oKSBtZXRob2QgaXMgc3VwcG9zZWQgdG8gcmFpc2UgT1NFcnJvcgogICAgICAgICAjIGlmIHRoZSBUYXJGaWxlIG9iamVjdCBpcyBhbHJlYWR5IGNsb3NlZC4KICAgICAgICAgdGFyID0gdGFyZmlsZS5vcGVuKHRhcm5hbWUpCiAgICAgICAgIHRhci5jbG9zZSgpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvcik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvcik6CiAgICAgICAgICAgICB3aXRoIHRhcjoKICAgICAgICAgICAgICAgICBwYXNzCiAKICAgICBkZWYgdGVzdF9leGNlcHRpb24oc2VsZik6Ci0gICAgICAgICMgVGVzdCBpZiB0aGUgSU9FcnJvciBleGNlcHRpb24gaXMgcGFzc2VkIHRocm91Z2ggcHJvcGVybHkuCisgICAgICAgICMgVGVzdCBpZiB0aGUgT1NFcnJvciBleGNlcHRpb24gaXMgcGFzc2VkIHRocm91Z2ggcHJvcGVybHkuCiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uKSBhcyBleGM6CiAgICAgICAgICAgICB3aXRoIHRhcmZpbGUub3Blbih0YXJuYW1lKSBhcyB0YXI6Ci0gICAgICAgICAgICAgICAgcmFpc2UgSU9FcnJvcgotICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoZXhjLmV4Y2VwdGlvbiwgSU9FcnJvciwKKyAgICAgICAgICAgICAgICByYWlzZSBPU0Vycm9yCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShleGMuZXhjZXB0aW9uLCBPU0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndyb25nIGV4Y2VwdGlvbiByYWlzZWQgaW4gY29udGV4dCBtYW5hZ2VyIikKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHRhci5jbG9zZWQsICJjb250ZXh0IG1hbmFnZXIgZmFpbGVkIikKIApAQCAtMTc1MSw3ICsxNzUxLDcgQEAKICAgICBkZWYgdGVzdF9ub25fZXhpc3RlbnRfdGFyZ3pfZmlsZShzZWxmKToKICAgICAgICAgIyBUZXN0IGZvciBpc3N1ZTExNTEzOiBwcmV2ZW50IG5vbi1leGlzdGVudCBnemlwcGVkIHRhcmZpbGVzIHJhaXNpbmcKICAgICAgICAgIyBtdWx0aXBsZSBleGNlcHRpb25zLgotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoSU9FcnJvciwgInh4eCIpIGFzIGV4OgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoT1NFcnJvciwgInh4eCIpIGFzIGV4OgogICAgICAgICAgICAgdGFyZmlsZS5vcGVuKCJ4eHgiLCBzZWxmLm1vZGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXguZXhjZXB0aW9uLmVycm5vLCBlcnJuby5FTk9FTlQpCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdGVtcGZpbGUucHkgYi9MaWIvdGVzdC90ZXN0X3RlbXBmaWxlLnB5CmluZGV4IDI5NjI5MzkuLjQzN2IwMmIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdGVtcGZpbGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF90ZW1wZmlsZS5weQpAQCAtMTUxLDcgKzE1MSw3IEBACiAgICAgICAgICAgICAgICAgIyB2aWEgYW55IGJ1Z3MgYWJvdmUKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIG9zLmtpbGwocGlkLCBzaWduYWwuU0lHS0lMTCkKLSAgICAgICAgICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvcjoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgb3MuY2xvc2UocmVhZF9mZCkKICAgICAgICAgICAgIG9zLmNsb3NlKHdyaXRlX2ZkKQpAQCAtMTkwLDcgKzE5MCw3IEBACiAKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBkaXJuYW1lID0gb3MuZ2V0Y3dkKCkKLSAgICAgICAgICAgIGV4Y2VwdCAoQXR0cmlidXRlRXJyb3IsIG9zLmVycm9yKToKKyAgICAgICAgICAgIGV4Y2VwdCAoQXR0cmlidXRlRXJyb3IsIE9TRXJyb3IpOgogICAgICAgICAgICAgICAgIGRpcm5hbWUgPSBvcy5jdXJkaXIKIAogICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihkaXJuYW1lLCBjYW5kKQpAQCAtMzE1LDcgKzMxNSw3IEBACiAgICAgICAgIGZpbGUgPSBzZWxmLmRvX2NyZWF0ZSgpCiAgICAgICAgIG1vZGUgPSBzdGF0LlNfSU1PREUob3Muc3RhdChmaWxlLm5hbWUpLnN0X21vZGUpCiAgICAgICAgIGV4cGVjdGVkID0gMG82MDAKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgnd2luMzInLCAnb3MyZW14Jyk6CisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgogICAgICAgICAgICAgIyBUaGVyZSdzIG5vIGRpc3RpbmN0aW9uIGFtb25nICd1c2VyJywgJ2dyb3VwJyBhbmQgJ3dvcmxkJzsKICAgICAgICAgICAgICMgcmVwbGljYXRlIHRoZSAndXNlcicgYml0cy4KICAgICAgICAgICAgIHVzZXIgPSBleHBlY3RlZCA+PiA2CkBAIC0zNDksNyArMzQ5LDcgQEAKICAgICAgICAgIyBPbiBXaW5kb3dzIGEgc3Bhd24qIC9wYXRoLyB3aXRoIGVtYmVkZGVkIHNwYWNlcyBzaG91bGRuJ3QgYmUgcXVvdGVkLAogICAgICAgICAjIGJ1dCBhbiBhcmcgd2l0aCBlbWJlZGRlZCBzcGFjZXMgc2hvdWxkIGJlIGRlY29yYXRlZCB3aXRoIGRvdWJsZQogICAgICAgICAjIHF1b3RlcyBvbiBlYWNoIGVuZAotICAgICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCd3aW4zMicsKToKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CiAgICAgICAgICAgICBkZWNvcmF0ZWQgPSAnIiVzIicgJSBzeXMuZXhlY3V0YWJsZQogICAgICAgICAgICAgdGVzdGVyID0gJyIlcyInICUgdGVzdGVyCiAgICAgICAgIGVsc2U6CkBAIC01MTgsNyArNTE4LDcgQEAKICAgICAgICAgICAgIG1vZGUgPSBzdGF0LlNfSU1PREUob3Muc3RhdChkaXIpLnN0X21vZGUpCiAgICAgICAgICAgICBtb2RlICY9IDBvNzc3ICMgTWFzayBvZmYgc3RpY2t5IGJpdHMgaW5oZXJpdGVkIGZyb20gL3RtcAogICAgICAgICAgICAgZXhwZWN0ZWQgPSAwbzcwMAotICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgnd2luMzInLCAnb3MyZW14Jyk6CisgICAgICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKICAgICAgICAgICAgICAgICAjIFRoZXJlJ3Mgbm8gZGlzdGluY3Rpb24gYW1vbmcgJ3VzZXInLCAnZ3JvdXAnIGFuZCAnd29ybGQnOwogICAgICAgICAgICAgICAgICMgcmVwbGljYXRlIHRoZSAndXNlcicgYml0cy4KICAgICAgICAgICAgICAgICB1c2VyID0gZXhwZWN0ZWQgPj4gNgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF90aHJlYWQucHkgYi9MaWIvdGVzdC90ZXN0X3RocmVhZC5weQppbmRleCBhMTkxZTE1Li5mOWE3MjFiIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3RocmVhZC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3RocmVhZC5weQpAQCAtNjgsNyArNjgsNyBAQAogICAgICAgICB0aHJlYWQuc3RhY2tfc2l6ZSgwKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRocmVhZC5zdGFja19zaXplKCksIDAsICJzdGFja19zaXplIG5vdCByZXNldCB0byBkZWZhdWx0IikKIAotICAgICAgICBpZiBvcy5uYW1lIG5vdCBpbiAoIm50IiwgIm9zMiIsICJwb3NpeCIpOgorICAgICAgICBpZiBvcy5uYW1lIG5vdCBpbiAoIm50IiwgInBvc2l4Iik6CiAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICB0c3Nfc3VwcG9ydGVkID0gVHJ1ZQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF90aHJlYWRpbmcucHkgYi9MaWIvdGVzdC90ZXN0X3RocmVhZGluZy5weQppbmRleCA3OTk2N2RjLi5lY2YyMmZjIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3RocmVhZGluZy5weQorKysgYi9MaWIvdGVzdC90ZXN0X3RocmVhZGluZy5weQpAQCAtNDUyLDcgKzQ1Miw3IEBACiAgICAgIyBwcm9ibGVtcyB3aXRoIHNvbWUgb3BlcmF0aW5nIHN5c3RlbXMgKGlzc3VlICMzODYzKTogc2tpcCBwcm9ibGVtYXRpYyB0ZXN0cwogICAgICMgb24gcGxhdGZvcm1zIGtub3duIHRvIGJlaGF2ZSBiYWRseS4KICAgICBwbGF0Zm9ybXNfdG9fc2tpcCA9ICgnZnJlZWJzZDQnLCAnZnJlZWJzZDUnLCAnZnJlZWJzZDYnLCAnbmV0YnNkNScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ29zMmVteCcsICdocC11eDExJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaHAtdXgxMScpCiAKICAgICBkZWYgX3J1bl9hbmRfam9pbihzZWxmLCBzY3JpcHQpOgogICAgICAgICBzY3JpcHQgPSAiIiJpZiAxOgpAQCAtNzI4LDYgKzcyOCwzMSBAQAogICAgICAgICBmb3IgdCBpbiB0aHJlYWRzOgogICAgICAgICAgICAgdC5qb2luKCkKIAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICdmb3JrJyksICJuZWVkcyBvcy5mb3JrKCkiKQorICAgIGRlZiB0ZXN0X2NsZWFyX3RocmVhZHNfc3RhdGVzX2FmdGVyX2Zvcmsoc2VsZik6CisgICAgICAgICMgSXNzdWUgIzE3MDk0OiBjaGVjayB0aGF0IHRocmVhZHMgc3RhdGVzIGFyZSBjbGVhcmVkIGFmdGVyIGZvcmsoKQorCisgICAgICAgICMgc3RhcnQgYSBidW5jaCBvZiB0aHJlYWRzCisgICAgICAgIHRocmVhZHMgPSBbXQorICAgICAgICBmb3IgaSBpbiByYW5nZSgxNik6CisgICAgICAgICAgICB0ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9bGFtYmRhIDogdGltZS5zbGVlcCgwLjMpKQorICAgICAgICAgICAgdGhyZWFkcy5hcHBlbmQodCkKKyAgICAgICAgICAgIHQuc3RhcnQoKQorCisgICAgICAgIHBpZCA9IG9zLmZvcmsoKQorICAgICAgICBpZiBwaWQgPT0gMDoKKyAgICAgICAgICAgICMgY2hlY2sgdGhhdCB0aHJlYWRzIHN0YXRlcyBoYXZlIGJlZW4gY2xlYXJlZAorICAgICAgICAgICAgaWYgbGVuKHN5cy5fY3VycmVudF9mcmFtZXMoKSkgPT0gMToKKyAgICAgICAgICAgICAgICBvcy5fZXhpdCgwKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBvcy5fZXhpdCgxKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgXywgc3RhdHVzID0gb3Mud2FpdHBpZChwaWQsIDApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHN0YXR1cykKKworICAgICAgICBmb3IgdCBpbiB0aHJlYWRzOgorICAgICAgICAgICAgdC5qb2luKCkKKwogCiBjbGFzcyBUaHJlYWRpbmdFeGNlcHRpb25UZXN0cyhCYXNlVGVzdENhc2UpOgogICAgICMgQSBSdW50aW1lRXJyb3Igc2hvdWxkIGJlIHJhaXNlZCBpZiBUaHJlYWQuc3RhcnQoKSBpcyBjYWxsZWQKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdGhyZWFkc2lnbmFscy5weSBiL0xpYi90ZXN0L3Rlc3RfdGhyZWFkc2lnbmFscy5weQppbmRleCBmOTc1YTc1Li5iMTAwNGU2IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3RocmVhZHNpZ25hbHMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF90aHJlYWRzaWduYWxzLnB5CkBAIC04LDcgKzgsNyBAQAogdGhyZWFkID0gaW1wb3J0X21vZHVsZSgnX3RocmVhZCcpCiBpbXBvcnQgdGltZQogCi1pZiBzeXMucGxhdGZvcm1bOjNdIGluICgnd2luJywgJ29zMicpIG9yIHN5cy5wbGF0Zm9ybT09J3Jpc2Nvcyc6CitpZiAoc3lzLnBsYXRmb3JtWzozXSA9PSAnd2luJyk6CiAgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoIkNhbid0IHRlc3Qgc2lnbmFsIG9uICVzIiAlIHN5cy5wbGF0Zm9ybSkKIAogcHJvY2Vzc19waWQgPSBvcy5nZXRwaWQoKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF90aW1lb3V0LnB5IGIvTGliL3Rlc3QvdGVzdF90aW1lb3V0LnB5CmluZGV4IGMzYzRhY2YuLmQyOGQ2MmIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdGltZW91dC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3RpbWVvdXQucHkKQEAgLTE5NCw3ICsxOTQsNyBAQAogICAgICAgICAgICAgc29jay5jb25uZWN0KCh3aGl0ZWhvbGUpKQogICAgICAgICBleGNlcHQgc29ja2V0LnRpbWVvdXQ6CiAgICAgICAgICAgICBwYXNzCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGVycjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgogICAgICAgICAgICAgaWYgZXJyLmVycm5vID09IGVycm5vLkVDT05OUkVGVVNFRDoKICAgICAgICAgICAgICAgICBza2lwID0gRmFsc2UKICAgICAgICAgZmluYWxseToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdHJhY2ViYWNrLnB5IGIvTGliL3Rlc3QvdGVzdF90cmFjZWJhY2sucHkKaW5kZXggNWJjZTJhZi4uMjQ3NTNhOCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF90cmFjZWJhY2sucHkKKysrIGIvTGliL3Rlc3QvdGVzdF90cmFjZWJhY2sucHkKQEAgLTE2MCwxMSArMTYwLDI2IEBACiAgICAgICAgICAgICBmaWxlXyA9IFN0cmluZ0lPKCkKICAgICAgICAgICAgIHRyYWNlYmFja19wcmludCh0YiwgZmlsZV8pCiAgICAgICAgICAgICBweXRob25fZm10ICA9IGZpbGVfLmdldHZhbHVlKCkKKyAgICAgICAgICAgICMgQ2FsbCBhbGwgX3RiIGFuZCBfZXhjIGZ1bmN0aW9ucworICAgICAgICAgICAgd2l0aCBjYXB0dXJlZF9vdXRwdXQoInN0ZGVyciIpIGFzIHRic3RkZXJyOgorICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF90Yih0YikKKyAgICAgICAgICAgIHRiZmlsZSA9IFN0cmluZ0lPKCkKKyAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF90Yih0YiwgZmlsZT10YmZpbGUpCisgICAgICAgICAgICB3aXRoIGNhcHR1cmVkX291dHB1dCgic3RkZXJyIikgYXMgZXhjc3RkZXJyOgorICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICAgICAgZXhjZm10ID0gdHJhY2ViYWNrLmZvcm1hdF9leGMoKQorICAgICAgICAgICAgZXhjZmlsZSA9IFN0cmluZ0lPKCkKKyAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1leGNmaWxlKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmFpc2UgRXJyb3IoInVuYWJsZSB0byBjcmVhdGUgdGVzdCB0cmFjZWJhY2sgc3RyaW5nIikKIAogICAgICAgICAjIE1ha2Ugc3VyZSB0aGF0IFB5dGhvbiBhbmQgdGhlIHRyYWNlYmFjayBtb2R1bGUgZm9ybWF0IHRoZSBzYW1lIHRoaW5nCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2ViYWNrX2ZtdCwgcHl0aG9uX2ZtdCkKKyAgICAgICAgIyBOb3cgdmVyaWZ5IHRoZSBfdGIgZnVuYyBvdXRwdXQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YnN0ZGVyci5nZXR2YWx1ZSgpLCB0YmZpbGUuZ2V0dmFsdWUoKSkKKyAgICAgICAgIyBOb3cgdmVyaWZ5IHRoZSBfZXhjIGZ1bmMgb3V0cHV0CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhjc3RkZXJyLmdldHZhbHVlKCksIGV4Y2ZpbGUuZ2V0dmFsdWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleGNmbXQsIGV4Y2ZpbGUuZ2V0dmFsdWUoKSkKIAogICAgICAgICAjIE1ha2Ugc3VyZSB0aGF0IHRoZSB0cmFjZWJhY2sgaXMgcHJvcGVybHkgaW5kZW50ZWQuCiAgICAgICAgIHRiX2xpbmVzID0gcHl0aG9uX2ZtdC5zcGxpdGxpbmVzKCkKQEAgLTE3NCw2ICsxODksMTkgQEAKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxvY2F0aW9uLnN0YXJ0c3dpdGgoJyAgRmlsZScpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoc291cmNlX2xpbmUuc3RhcnRzd2l0aCgnICAgIHJhaXNlJykpCiAKKyAgICBkZWYgdGVzdF9zdGFja19mb3JtYXQoc2VsZik6CisgICAgICAgICMgVmVyaWZ5IF9zdGFjayBmdW5jdGlvbnMuIE5vdGUgd2UgaGF2ZSB0byB1c2UgX2dldGZyYW1lKDEpIHRvCisgICAgICAgICMgY29tcGFyZSB0aGVtIHdpdGhvdXQgdGhpcyBmcmFtZSBhcHBlYXJpbmcgaW4gdGhlIG91dHB1dAorICAgICAgICB3aXRoIGNhcHR1cmVkX291dHB1dCgic3RkZXJyIikgYXMgc3RzdGRlcnI6CisgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfc3RhY2soc3lzLl9nZXRmcmFtZSgxKSkKKyAgICAgICAgc3RmaWxlID0gU3RyaW5nSU8oKQorICAgICAgICB0cmFjZWJhY2sucHJpbnRfc3RhY2soc3lzLl9nZXRmcmFtZSgxKSwgZmlsZT1zdGZpbGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RzdGRlcnIuZ2V0dmFsdWUoKSwgc3RmaWxlLmdldHZhbHVlKCkpCisKKyAgICAgICAgc3RmbXQgPSB0cmFjZWJhY2suZm9ybWF0X3N0YWNrKHN5cy5fZ2V0ZnJhbWUoMSkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHN0ZGVyci5nZXR2YWx1ZSgpLCAiIi5qb2luKHN0Zm10KSkKKwogCiBjYXVzZV9tZXNzYWdlID0gKAogICAgICJcblRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2UgIgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF90eXBlcy5weSBiL0xpYi90ZXN0L3Rlc3RfdHlwZXMucHkKaW5kZXggM2VlNGM2Yi4uZWMxMDc1MiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF90eXBlcy5weQorKysgYi9MaWIvdGVzdC90ZXN0X3R5cGVzLnB5CkBAIC0yLDYgKzIsNyBAQAogCiBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0LCBydW5fd2l0aF9sb2NhbGUKIGltcG9ydCBjb2xsZWN0aW9ucworaW1wb3J0IHBpY2tsZQogaW1wb3J0IGxvY2FsZQogaW1wb3J0IHN5cwogaW1wb3J0IHR5cGVzCkBAIC0xMDc3LDkgKzEwNzgsMTkgQEAKICAgICAgICAgbnMyID0gdHlwZXMuU2ltcGxlTmFtZXNwYWNlKCkKICAgICAgICAgbnMyLnggPSAic3BhbSIKICAgICAgICAgbnMyLl95ID0gNQorICAgICAgICBuYW1lID0gIm5hbWVzcGFjZSIKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIobnMxKSwgIm5hbWVzcGFjZSh3PTMsIHg9MSwgeT0yKSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihuczIpLCAibmFtZXNwYWNlKF95PTUsIHg9J3NwYW0nKSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihuczEpLCAie25hbWV9KHc9MywgeD0xLCB5PTIpIi5mb3JtYXQobmFtZT1uYW1lKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKG5zMiksICJ7bmFtZX0oX3k9NSwgeD0nc3BhbScpIi5mb3JtYXQobmFtZT1uYW1lKSkKKworICAgIGRlZiB0ZXN0X2VxdWFsKHNlbGYpOgorICAgICAgICBuczEgPSB0eXBlcy5TaW1wbGVOYW1lc3BhY2UoeD0xKQorICAgICAgICBuczIgPSB0eXBlcy5TaW1wbGVOYW1lc3BhY2UoKQorICAgICAgICBuczIueCA9IDEKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGVzLlNpbXBsZU5hbWVzcGFjZSgpLCB0eXBlcy5TaW1wbGVOYW1lc3BhY2UoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuczEsIG5zMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChuczIsIHR5cGVzLlNpbXBsZU5hbWVzcGFjZSgpKQogCiAgICAgZGVmIHRlc3RfbmVzdGVkKHNlbGYpOgogICAgICAgICBuczEgPSB0eXBlcy5TaW1wbGVOYW1lc3BhY2UoYT0xLCBiPTIpCkBAIC0xMTE3LDExICsxMTI4LDEyIEBACiAgICAgICAgIG5zMS5zcGFtID0gbnMxCiAgICAgICAgIG5zMi5zcGFtID0gbnMzCiAgICAgICAgIG5zMy5zcGFtID0gbnMyCisgICAgICAgIG5hbWUgPSAibmFtZXNwYWNlIgorICAgICAgICByZXByMSA9ICJ7bmFtZX0oYz0nY29va2llJywgc3BhbT17bmFtZX0oLi4uKSkiLmZvcm1hdChuYW1lPW5hbWUpCisgICAgICAgIHJlcHIyID0gIntuYW1lfShzcGFtPXtuYW1lfShzcGFtPXtuYW1lfSguLi4pLCB4PTEpKSIuZm9ybWF0KG5hbWU9bmFtZSkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIobnMxKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZXNwYWNlKGM9J2Nvb2tpZScsIHNwYW09bmFtZXNwYWNlKC4uLikpIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKG5zMiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWVzcGFjZShzcGFtPW5hbWVzcGFjZShzcGFtPW5hbWVzcGFjZSguLi4pLCB4PTEpKSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihuczEpLCByZXByMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKG5zMiksIHJlcHIyKQogCiAgICAgZGVmIHRlc3RfYXNfZGljdChzZWxmKToKICAgICAgICAgbnMgPSB0eXBlcy5TaW1wbGVOYW1lc3BhY2Uoc3BhbT0nc3BhbXNwYW1zcGFtJykKQEAgLTExNDQsNiArMTE1NiwxOSBAQAogICAgICAgICBzZWxmLmFzc2VydElzKHR5cGUoc3BhbSksIFNwYW0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmFycyhzcGFtKSwgeydoYW0nOiA4LCAnZWdncyc6IDl9KQogCisgICAgZGVmIHRlc3RfcGlja2xlKHNlbGYpOgorICAgICAgICBucyA9IHR5cGVzLlNpbXBsZU5hbWVzcGFjZShicmVha2Zhc3Q9InNwYW0iLCBsdW5jaD0ic3BhbSIpCisKKyAgICAgICAgZm9yIHByb3RvY29sIGluIHJhbmdlKHBpY2tsZS5ISUdIRVNUX1BST1RPQ09MICsgMSk6CisgICAgICAgICAgICBwbmFtZSA9ICJwcm90b2NvbCB7fSIuZm9ybWF0KHByb3RvY29sKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG5zX3BpY2tsZWQgPSBwaWNrbGUuZHVtcHMobnMsIHByb3RvY29sKQorICAgICAgICAgICAgZXhjZXB0IFR5cGVFcnJvciBhcyBlOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihwbmFtZSkgZnJvbSBlCisgICAgICAgICAgICBuc19yb3VuZHRyaXAgPSBwaWNrbGUubG9hZHMobnNfcGlja2xlZCkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChucywgbnNfcm91bmR0cmlwLCBwbmFtZSkKKwogCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgcnVuX3VuaXR0ZXN0KFR5cGVzVGVzdHMsIE1hcHBpbmdQcm94eVRlc3RzLCBDbGFzc0NyZWF0aW9uVGVzdHMsCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3Vjbi5weSBiL0xpYi90ZXN0L3Rlc3RfdWNuLnB5CmluZGV4IDJlNjM3NDUuLjU5YmRlNzQgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdWNuLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfdWNuLnB5CkBAIC0xNzMsNyArMTczLDcgQEAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgdGVzdGRhdGEgPSBzdXBwb3J0Lm9wZW5fdXJscmVzb3VyY2UodXJsLCBlbmNvZGluZz0idXRmLTgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2s9Y2hlY2tfdmVyc2lvbikKLSAgICAgICAgZXhjZXB0IChJT0Vycm9yLCBIVFRQRXhjZXB0aW9uKToKKyAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBIVFRQRXhjZXB0aW9uKToKICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoIkNvdWxkIG5vdCByZXRyaWV2ZSAiICsgdXJsKQogICAgICAgICBzZWxmLmFkZENsZWFudXAodGVzdGRhdGEuY2xvc2UpCiAgICAgICAgIGZvciBsaW5lIGluIHRlc3RkYXRhOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF91bmljb2RlLnB5IGIvTGliL3Rlc3QvdGVzdF91bmljb2RlLnB5CmluZGV4IGJlZjY0YWEuLjcwZDM3YTYgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdW5pY29kZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3VuaWNvZGUucHkKQEAgLTcsNiArNyw3IEBACiAiIiIjIgogaW1wb3J0IF9zdHJpbmcKIGltcG9ydCBjb2RlY3MKK2ltcG9ydCBpdGVydG9vbHMKIGltcG9ydCBzdHJ1Y3QKIGltcG9ydCBzeXMKIGltcG9ydCB1bml0dGVzdApAQCAtMzEsNiArMzIsMTYgQEAKICAgICAgICAgcmV0dXJuIE5vbmUKIGNvZGVjcy5yZWdpc3RlcihzZWFyY2hfZnVuY3Rpb24pCiAKK2RlZiBkdXBsaWNhdGVfc3RyaW5nKHRleHQpOgorICAgICIiIgorICAgIFRyeSB0byBnZXQgYSBmcmVzaCBjbG9uZSBvZiB0aGUgc3BlY2lmaWVkIHRleHQ6CisgICAgbmV3IG9iamVjdCB3aXRoIGEgcmVmZXJlbmNlIGNvdW50IG9mIDEuCisKKyAgICBUaGlzIGlzIGEgYmVzdC1lZmZvcnQ6IGxhdGluMSBzaW5nbGUgbGV0dGVycyBhbmQgdGhlIGVtcHR5CisgICAgc3RyaW5nICgnJykgYXJlIHNpbmdsZXRvbnMgYW5kIGNhbm5vdCBiZSBjbG9uZWQuCisgICAgIiIiCisgICAgcmV0dXJuIHRleHQuZW5jb2RlKCkuZGVjb2RlKCkKKwogY2xhc3MgVW5pY29kZVRlc3Qoc3RyaW5nX3Rlc3RzLkNvbW1vblRlc3QsCiAgICAgICAgIHN0cmluZ190ZXN0cy5NaXhpblN0clVuaWNvZGVVc2VyU3RyaW5nVGVzdCwKICAgICAgICAgc3RyaW5nX3Rlc3RzLk1peGluU3RyVW5pY29kZVRlc3QsCkBAIC04NDMsMTEgKzg1NCw5IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3swOmR9Jy5mb3JtYXQoRygnZGF0YScpKSwgJ0coZGF0YSknKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd7MCFzfScuZm9ybWF0KEcoJ2RhdGEnKSksICdzdHJpbmcgaXMgZGF0YScpCiAKLSAgICAgICAgbXNnID0gJ29iamVjdC5fX2Zvcm1hdF9fIHdpdGggYSBub24tZW1wdHkgZm9ybWF0IHN0cmluZyBpcyBkZXByZWNhdGVkJwotICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKG1zZywgRGVwcmVjYXRpb25XYXJuaW5nKSk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd7MDpeMTB9Jy5mb3JtYXQoRSgnZGF0YScpKSwgJyBFKGRhdGEpICAnKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnezA6XjEwc30nLmZvcm1hdChFKCdkYXRhJykpLCAnIEUoZGF0YSkgICcpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd7MDo+MTVzfScuZm9ybWF0KEcoJ2RhdGEnKSksICcgc3RyaW5nIGlzIGRhdGEnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsICd7MDpeMTB9Jy5mb3JtYXQsIEUoJ2RhdGEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCAnezA6XjEwc30nLmZvcm1hdCwgRSgnZGF0YScpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsICd7MDo+MTVzfScuZm9ybWF0LCBHKCdkYXRhJykpCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiezA6ZGF0ZTogJVktJW0tJWR9Ii5mb3JtYXQoSSh5ZWFyPTIwMDcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGg9OCwKQEAgLTg4Myw3ICs4OTIsNyBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCAiezAiLmZvcm1hdCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgInswLn0iLmZvcm1hdCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgInswLn0iLmZvcm1hdCwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgInswW30iLmZvcm1hdCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgInswW30iLmZvcm1hdCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgInswW30iLmZvcm1hdCwgW10pCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCAgICJ7MF19Ii5mb3JtYXQpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsICJ7MC5bXX0iLmZvcm1hdCwgMCkKQEAgLTkzNSw2ICs5NDQsMTQgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAnJykKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ7W3t9XX0iLmZvcm1hdCh7Int9IjogNX0pLCAiNSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIntbe31dfSIuZm9ybWF0KHsie30iIDogImEifSksICJhIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgie1t7XX0iLmZvcm1hdCh7InsiIDogImEifSksICJhIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgie1t9XX0iLmZvcm1hdCh7In0iIDogImEifSksICJhIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgie1tbXX0iLmZvcm1hdCh7IlsiIDogImEifSksICJhIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgie1shXX0iLmZvcm1hdCh7IiEiIDogImEifSksICJhIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgInthe31ifSIuZm9ybWF0LCA0MikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgInthe2J9Ii5mb3JtYXQsIDQyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCAie1t9Ii5mb3JtYXQsIDQyKQogCiAgICAgZGVmIHRlc3RfZm9ybWF0X21hcChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJy5mb3JtYXRfbWFwKHt9KSwgJycpCkBAIC0xOTg2LDkgKzIwMDMsMTAgQEAKICAgICAjIFRlc3QgUHlVbmljb2RlX0Zyb21Gb3JtYXQoKQogICAgIGRlZiB0ZXN0X2Zyb21fZm9ybWF0KHNlbGYpOgogICAgICAgICBzdXBwb3J0LmltcG9ydF9tb2R1bGUoJ2N0eXBlcycpCi0gICAgICAgIGZyb20gY3R5cGVzIGltcG9ydCAocHl0aG9uYXBpLCBweV9vYmplY3QsCisgICAgICAgIGZyb20gY3R5cGVzIGltcG9ydCAoCisgICAgICAgICAgICBweXRob25hcGksIHB5X29iamVjdCwgc2l6ZW9mLAogICAgICAgICAgICAgY19pbnQsIGNfbG9uZywgY19sb25nbG9uZywgY19zc2l6ZV90LAotICAgICAgICAgICAgY191aW50LCBjX3Vsb25nLCBjX3Vsb25nbG9uZywgY19zaXplX3QpCisgICAgICAgICAgICBjX3VpbnQsIGNfdWxvbmcsIGNfdWxvbmdsb25nLCBjX3NpemVfdCwgY192b2lkX3ApCiAgICAgICAgIG5hbWUgPSAiUHlVbmljb2RlX0Zyb21Gb3JtYXQiCiAgICAgICAgIF9QeVVuaWNvZGVfRnJvbUZvcm1hdCA9IGdldGF0dHIocHl0aG9uYXBpLCBuYW1lKQogICAgICAgICBfUHlVbmljb2RlX0Zyb21Gb3JtYXQucmVzdHlwZSA9IHB5X29iamVjdApAQCAtMTk5OSw5ICsyMDE3LDEzIEBACiAgICAgICAgICAgICAgICAgZm9yIGFyZyBpbiBhcmdzKQogICAgICAgICAgICAgcmV0dXJuIF9QeVVuaWNvZGVfRnJvbUZvcm1hdChmb3JtYXQsICpjYXJncykKIAorICAgICAgICBkZWYgY2hlY2tfZm9ybWF0KGV4cGVjdGVkLCBmb3JtYXQsICphcmdzKToKKyAgICAgICAgICAgIHRleHQgPSBQeVVuaWNvZGVfRnJvbUZvcm1hdChmb3JtYXQsICphcmdzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgdGV4dCkKKwogICAgICAgICAjIGFzY2lpIGZvcm1hdCwgbm9uLWFzY2lpIGFyZ3VtZW50Ci0gICAgICAgIHRleHQgPSBQeVVuaWNvZGVfRnJvbUZvcm1hdChiJ2FzY2lpXHg3Zj0lVScsICd1bmljb2RlXHhlOScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGV4dCwgJ2FzY2lpXHg3Zj11bmljb2RlXHhlOScpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnYXNjaWlceDdmPXVuaWNvZGVceGU5JywKKyAgICAgICAgICAgICAgICAgICAgIGInYXNjaWlceDdmPSVVJywgJ3VuaWNvZGVceGU5JykKIAogICAgICAgICAjIG5vbi1hc2NpaSBmb3JtYXQsIGFzY2lpIGFyZ3VtZW50OiBlbnN1cmUgdGhhdCBQeVVuaWNvZGVfRnJvbUZvcm1hdFYoKQogICAgICAgICAjIHJhaXNlcyBhbiBlcnJvcgpAQCAtMjAxMSw1OCArMjAzMywyMDAgQEAKICAgICAgICAgICAgIFB5VW5pY29kZV9Gcm9tRm9ybWF0LCBiJ3VuaWNvZGVceGU5PSVzJywgJ2FzY2lpJykKIAogICAgICAgICAjIHRlc3QgIiVjIgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJWMnLCBjX2ludCgweGFiY2QpKSwgJ1x1YWJjZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYiclYycsIGNfaW50KDB4MTBmZmZmKSksICdcVTAwMTBmZmZmJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCdcdWFiY2QnLAorICAgICAgICAgICAgICAgICAgICAgYiclYycsIGNfaW50KDB4YWJjZCkpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnXFUwMDEwZmZmZicsCisgICAgICAgICAgICAgICAgICAgICBiJyVjJywgY19pbnQoMHgxMGZmZmYpKQogCiAgICAgICAgICMgdGVzdCAiJSIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyUnKSwgJyUnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJSUnKSwgJyUnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJSVzJyksICclcycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYidbJSVdJyksICdbJV0nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJSUlcycsIGInYWJjJyksICclYWJjJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCclJywKKyAgICAgICAgICAgICAgICAgICAgIGInJScpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnJScsCisgICAgICAgICAgICAgICAgICAgICBiJyUlJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCclcycsCisgICAgICAgICAgICAgICAgICAgICBiJyUlcycpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnWyVdJywKKyAgICAgICAgICAgICAgICAgICAgIGInWyUlXScpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnJWFiYycsCisgICAgICAgICAgICAgICAgICAgICBiJyUlJXMnLCBiJ2FiYycpCisKKyAgICAgICAgIyB0cnVuY2F0ZWQgc3RyaW5nCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnYWJjJywKKyAgICAgICAgICAgICAgICAgICAgIGInJS4zcycsIGInYWJjZGVmJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCdhYmNbXHVmZmZkJywKKyAgICAgICAgICAgICAgICAgICAgIGInJS41cycsICdhYmNbXHUyMGFjXScuZW5jb2RlKCd1dGY4JykpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgiJ1xcdTIwYWNBQkMnIiwKKyAgICAgICAgICAgICAgICAgICAgIGInJUEnLCAnXHUyMGFjQUJDJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCInXFx1MjAiLAorICAgICAgICAgICAgICAgICAgICAgYiclLjVBJywgJ1x1MjBhY0FCQ0RFRicpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgiJ1x1MjBhY0FCQyciLAorICAgICAgICAgICAgICAgICAgICAgYiclUicsICdcdTIwYWNBQkMnKQorICAgICAgICBjaGVja19mb3JtYXQoIidcdTIwYWNBIiwKKyAgICAgICAgICAgICAgICAgICAgIGInJS4zUicsICdcdTIwYWNBQkNERUYnKQorICAgICAgICBjaGVja19mb3JtYXQoJ1x1MjBhY0FCJywKKyAgICAgICAgICAgICAgICAgICAgIGInJS4zUycsICdcdTIwYWNBQkNERUYnKQorICAgICAgICBjaGVja19mb3JtYXQoJ1x1MjBhY0FCJywKKyAgICAgICAgICAgICAgICAgICAgIGInJS4zVScsICdcdTIwYWNBQkNERUYnKQorICAgICAgICBjaGVja19mb3JtYXQoJ1x1MjBhY0FCJywKKyAgICAgICAgICAgICAgICAgICAgIGInJS4zVicsICdcdTIwYWNBQkNERUYnLCBOb25lKQorICAgICAgICBjaGVja19mb3JtYXQoJ2FiY1tcdWZmZmQnLAorICAgICAgICAgICAgICAgICAgICAgYiclLjVWJywgTm9uZSwgJ2FiY1tcdTIwYWNdJy5lbmNvZGUoJ3V0ZjgnKSkKKworICAgICAgICAjIGZvbGxvd2luZyB0ZXN0cyBjb21lcyBmcm9tICM3MzMwCisgICAgICAgICMgdGVzdCB3aWR0aCBtb2RpZmllciBhbmQgcHJlY2lzaW9uIG1vZGlmaWVyIHdpdGggJVMKKyAgICAgICAgY2hlY2tfZm9ybWF0KCJyZXByPSAgYWJjIiwKKyAgICAgICAgICAgICAgICAgICAgIGIncmVwcj0lNVMnLCAnYWJjJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCJyZXByPWFiIiwKKyAgICAgICAgICAgICAgICAgICAgIGIncmVwcj0lLjJTJywgJ2FiYycpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgicmVwcj0gICBhYiIsCisgICAgICAgICAgICAgICAgICAgICBiJ3JlcHI9JTUuMlMnLCAnYWJjJykKKworICAgICAgICAjIHRlc3Qgd2lkdGggbW9kaWZpZXIgYW5kIHByZWNpc2lvbiBtb2RpZmllciB3aXRoICVSCisgICAgICAgIGNoZWNrX2Zvcm1hdCgicmVwcj0gICAnYWJjJyIsCisgICAgICAgICAgICAgICAgICAgICBiJ3JlcHI9JThSJywgJ2FiYycpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgicmVwcj0nYWIiLAorICAgICAgICAgICAgICAgICAgICAgYidyZXByPSUuM1InLCAnYWJjJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCJyZXByPSAgJ2FiIiwKKyAgICAgICAgICAgICAgICAgICAgIGIncmVwcj0lNS4zUicsICdhYmMnKQorCisgICAgICAgICMgdGVzdCB3aWR0aCBtb2RpZmllciBhbmQgcHJlY2lzaW9uIG1vZGlmaWVyIHdpdGggJUEKKyAgICAgICAgY2hlY2tfZm9ybWF0KCJyZXByPSAgICdhYmMnIiwKKyAgICAgICAgICAgICAgICAgICAgIGIncmVwcj0lOEEnLCAnYWJjJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCJyZXByPSdhYiIsCisgICAgICAgICAgICAgICAgICAgICBiJ3JlcHI9JS4zQScsICdhYmMnKQorICAgICAgICBjaGVja19mb3JtYXQoInJlcHI9ICAnYWIiLAorICAgICAgICAgICAgICAgICAgICAgYidyZXByPSU1LjNBJywgJ2FiYycpCisKKyAgICAgICAgIyB0ZXN0IHdpZHRoIG1vZGlmaWVyIGFuZCBwcmVjaXNpb24gbW9kaWZpZXIgd2l0aCAlcworICAgICAgICBjaGVja19mb3JtYXQoInJlcHI9ICBhYmMiLAorICAgICAgICAgICAgICAgICAgICAgYidyZXByPSU1cycsIGInYWJjJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCJyZXByPWFiIiwKKyAgICAgICAgICAgICAgICAgICAgIGIncmVwcj0lLjJzJywgYidhYmMnKQorICAgICAgICBjaGVja19mb3JtYXQoInJlcHI9ICAgYWIiLAorICAgICAgICAgICAgICAgICAgICAgYidyZXByPSU1LjJzJywgYidhYmMnKQorCisgICAgICAgICMgdGVzdCB3aWR0aCBtb2RpZmllciBhbmQgcHJlY2lzaW9uIG1vZGlmaWVyIHdpdGggJVUKKyAgICAgICAgY2hlY2tfZm9ybWF0KCJyZXByPSAgYWJjIiwKKyAgICAgICAgICAgICAgICAgICAgIGIncmVwcj0lNVUnLCAnYWJjJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCJyZXByPWFiIiwKKyAgICAgICAgICAgICAgICAgICAgIGIncmVwcj0lLjJVJywgJ2FiYycpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgicmVwcj0gICBhYiIsCisgICAgICAgICAgICAgICAgICAgICBiJ3JlcHI9JTUuMlUnLCAnYWJjJykKKworICAgICAgICAjIHRlc3Qgd2lkdGggbW9kaWZpZXIgYW5kIHByZWNpc2lvbiBtb2RpZmllciB3aXRoICVWCisgICAgICAgIGNoZWNrX2Zvcm1hdCgicmVwcj0gIGFiYyIsCisgICAgICAgICAgICAgICAgICAgICBiJ3JlcHI9JTVWJywgJ2FiYycsIGInMTIzJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCJyZXByPWFiIiwKKyAgICAgICAgICAgICAgICAgICAgIGIncmVwcj0lLjJWJywgJ2FiYycsIGInMTIzJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCJyZXByPSAgIGFiIiwKKyAgICAgICAgICAgICAgICAgICAgIGIncmVwcj0lNS4yVicsICdhYmMnLCBiJzEyMycpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgicmVwcj0gIDEyMyIsCisgICAgICAgICAgICAgICAgICAgICBiJ3JlcHI9JTVWJywgTm9uZSwgYicxMjMnKQorICAgICAgICBjaGVja19mb3JtYXQoInJlcHI9MTIiLAorICAgICAgICAgICAgICAgICAgICAgYidyZXByPSUuMlYnLCBOb25lLCBiJzEyMycpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgicmVwcj0gICAxMiIsCisgICAgICAgICAgICAgICAgICAgICBiJ3JlcHI9JTUuMlYnLCBOb25lLCBiJzEyMycpCiAKICAgICAgICAgIyB0ZXN0IGludGVnZXIgZm9ybWF0cyAoJWksICVkLCAldSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyUwM2knLCBjX2ludCgxMCkpLCAnMDEwJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyUwLjRpJywgY19pbnQoMTApKSwgJzAwMTAnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJWknLCBjX2ludCgtMTIzKSksICctMTIzJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyVsaScsIGNfbG9uZygtMTIzKSksICctMTIzJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyVsbGknLCBjX2xvbmdsb25nKC0xMjMpKSwgJy0xMjMnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJXppJywgY19zc2l6ZV90KC0xMjMpKSwgJy0xMjMnKQorICAgICAgICBjaGVja19mb3JtYXQoJzAxMCcsCisgICAgICAgICAgICAgICAgICAgICBiJyUwM2knLCBjX2ludCgxMCkpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnMDAxMCcsCisgICAgICAgICAgICAgICAgICAgICBiJyUwLjRpJywgY19pbnQoMTApKQorICAgICAgICBjaGVja19mb3JtYXQoJy0xMjMnLAorICAgICAgICAgICAgICAgICAgICAgYiclaScsIGNfaW50KC0xMjMpKQorICAgICAgICBjaGVja19mb3JtYXQoJy0xMjMnLAorICAgICAgICAgICAgICAgICAgICAgYiclbGknLCBjX2xvbmcoLTEyMykpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnLTEyMycsCisgICAgICAgICAgICAgICAgICAgICBiJyVsbGknLCBjX2xvbmdsb25nKC0xMjMpKQorICAgICAgICBjaGVja19mb3JtYXQoJy0xMjMnLAorICAgICAgICAgICAgICAgICAgICAgYiclemknLCBjX3NzaXplX3QoLTEyMykpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyVkJywgY19pbnQoLTEyMykpLCAnLTEyMycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYiclbGQnLCBjX2xvbmcoLTEyMykpLCAnLTEyMycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYiclbGxkJywgY19sb25nbG9uZygtMTIzKSksICctMTIzJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyV6ZCcsIGNfc3NpemVfdCgtMTIzKSksICctMTIzJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCctMTIzJywKKyAgICAgICAgICAgICAgICAgICAgIGInJWQnLCBjX2ludCgtMTIzKSkKKyAgICAgICAgY2hlY2tfZm9ybWF0KCctMTIzJywKKyAgICAgICAgICAgICAgICAgICAgIGInJWxkJywgY19sb25nKC0xMjMpKQorICAgICAgICBjaGVja19mb3JtYXQoJy0xMjMnLAorICAgICAgICAgICAgICAgICAgICAgYiclbGxkJywgY19sb25nbG9uZygtMTIzKSkKKyAgICAgICAgY2hlY2tfZm9ybWF0KCctMTIzJywKKyAgICAgICAgICAgICAgICAgICAgIGInJXpkJywgY19zc2l6ZV90KC0xMjMpKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYicldScsIGNfdWludCgxMjMpKSwgJzEyMycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYiclbHUnLCBjX3Vsb25nKDEyMykpLCAnMTIzJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyVsbHUnLCBjX3Vsb25nbG9uZygxMjMpKSwgJzEyMycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYiclenUnLCBjX3NpemVfdCgxMjMpKSwgJzEyMycpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnMTIzJywKKyAgICAgICAgICAgICAgICAgICAgIGInJXUnLCBjX3VpbnQoMTIzKSkKKyAgICAgICAgY2hlY2tfZm9ybWF0KCcxMjMnLAorICAgICAgICAgICAgICAgICAgICAgYiclbHUnLCBjX3Vsb25nKDEyMykpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnMTIzJywKKyAgICAgICAgICAgICAgICAgICAgIGInJWxsdScsIGNfdWxvbmdsb25nKDEyMykpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnMTIzJywKKyAgICAgICAgICAgICAgICAgICAgIGInJXp1JywgY19zaXplX3QoMTIzKSkKKworICAgICAgICAjIHRlc3QgbG9uZyBvdXRwdXQKKyAgICAgICAgbWluX2xvbmdsb25nID0gLSgyICoqICg4ICogc2l6ZW9mKGNfbG9uZ2xvbmcpIC0gMSkpCisgICAgICAgIG1heF9sb25nbG9uZyA9IC1taW5fbG9uZ2xvbmcgLSAxCisgICAgICAgIGNoZWNrX2Zvcm1hdChzdHIobWluX2xvbmdsb25nKSwKKyAgICAgICAgICAgICAgICAgICAgIGInJWxsZCcsIGNfbG9uZ2xvbmcobWluX2xvbmdsb25nKSkKKyAgICAgICAgY2hlY2tfZm9ybWF0KHN0cihtYXhfbG9uZ2xvbmcpLAorICAgICAgICAgICAgICAgICAgICAgYiclbGxkJywgY19sb25nbG9uZyhtYXhfbG9uZ2xvbmcpKQorICAgICAgICBtYXhfdWxvbmdsb25nID0gMiAqKiAoOCAqIHNpemVvZihjX3Vsb25nbG9uZykpIC0gMQorICAgICAgICBjaGVja19mb3JtYXQoc3RyKG1heF91bG9uZ2xvbmcpLAorICAgICAgICAgICAgICAgICAgICAgYiclbGx1JywgY191bG9uZ2xvbmcobWF4X3Vsb25nbG9uZykpCisgICAgICAgIFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJXAnLCBjX3ZvaWRfcCgtMSkpCisKKyAgICAgICAgIyB0ZXN0IHBhZGRpbmcgKHdpZHRoIGFuZC9vciBwcmVjaXNpb24pCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnMTIzJy5yanVzdCgxMCwgJzAnKSwKKyAgICAgICAgICAgICAgICAgICAgIGInJTAxMGknLCBjX2ludCgxMjMpKQorICAgICAgICBjaGVja19mb3JtYXQoJzEyMycucmp1c3QoMTAwKSwKKyAgICAgICAgICAgICAgICAgICAgIGInJTEwMGknLCBjX2ludCgxMjMpKQorICAgICAgICBjaGVja19mb3JtYXQoJzEyMycucmp1c3QoMTAwLCAnMCcpLAorICAgICAgICAgICAgICAgICAgICAgYiclLjEwMGknLCBjX2ludCgxMjMpKQorICAgICAgICBjaGVja19mb3JtYXQoJzEyMycucmp1c3QoODAsICcwJykucmp1c3QoMTAwKSwKKyAgICAgICAgICAgICAgICAgICAgIGInJTEwMC44MGknLCBjX2ludCgxMjMpKQorCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnMTIzJy5yanVzdCgxMCwgJzAnKSwKKyAgICAgICAgICAgICAgICAgICAgIGInJTAxMHUnLCBjX3VpbnQoMTIzKSkKKyAgICAgICAgY2hlY2tfZm9ybWF0KCcxMjMnLnJqdXN0KDEwMCksCisgICAgICAgICAgICAgICAgICAgICBiJyUxMDB1JywgY191aW50KDEyMykpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnMTIzJy5yanVzdCgxMDAsICcwJyksCisgICAgICAgICAgICAgICAgICAgICBiJyUuMTAwdScsIGNfdWludCgxMjMpKQorICAgICAgICBjaGVja19mb3JtYXQoJzEyMycucmp1c3QoODAsICcwJykucmp1c3QoMTAwKSwKKyAgICAgICAgICAgICAgICAgICAgIGInJTEwMC44MHUnLCBjX3VpbnQoMTIzKSkKKworICAgICAgICBjaGVja19mb3JtYXQoJzEyMycucmp1c3QoMTAsICcwJyksCisgICAgICAgICAgICAgICAgICAgICBiJyUwMTB4JywgY19pbnQoMHgxMjMpKQorICAgICAgICBjaGVja19mb3JtYXQoJzEyMycucmp1c3QoMTAwKSwKKyAgICAgICAgICAgICAgICAgICAgIGInJTEwMHgnLCBjX2ludCgweDEyMykpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnMTIzJy5yanVzdCgxMDAsICcwJyksCisgICAgICAgICAgICAgICAgICAgICBiJyUuMTAweCcsIGNfaW50KDB4MTIzKSkKKyAgICAgICAgY2hlY2tfZm9ybWF0KCcxMjMnLnJqdXN0KDgwLCAnMCcpLnJqdXN0KDEwMCksCisgICAgICAgICAgICAgICAgICAgICBiJyUxMDAuODB4JywgY19pbnQoMHgxMjMpKQogCiAgICAgICAgICMgdGVzdCAlQQotICAgICAgICB0ZXh0ID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoYiclJUE6JUEnLCAnYWJjXHhlOVx1YWJjZFxVMDAxMGZmZmYnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRleHQsIHIiJUE6J2FiY1x4ZTlcdWFiY2RcVTAwMTBmZmZmJyIpCisgICAgICAgIGNoZWNrX2Zvcm1hdChyIiVBOidhYmNceGU5XHVhYmNkXFUwMDEwZmZmZiciLAorICAgICAgICAgICAgICAgICAgICAgYiclJUE6JUEnLCAnYWJjXHhlOVx1YWJjZFxVMDAxMGZmZmYnKQogCiAgICAgICAgICMgdGVzdCAlVgotICAgICAgICB0ZXh0ID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoYidyZXByPSVWJywgJ2FiYycsIGIneHl6JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXh0LCAncmVwcj1hYmMnKQorICAgICAgICBjaGVja19mb3JtYXQoJ3JlcHI9YWJjJywKKyAgICAgICAgICAgICAgICAgICAgIGIncmVwcj0lVicsICdhYmMnLCBiJ3h5eicpCiAKICAgICAgICAgIyBUZXN0IHN0cmluZyBkZWNvZGUgZnJvbSBwYXJhbWV0ZXIgb2YgJXMgdXNpbmcgdXRmLTguCiAgICAgICAgICMgYidceGU0XHhiYVx4YmFceGU2XHhiMFx4OTEnIGlzIHV0Zi04IGVuY29kZWQgYnl0ZSBzZXF1ZW5jZSBvZgogICAgICAgICAjICdcdTRlYmFcdTZjMTEnCi0gICAgICAgIHRleHQgPSBQeVVuaWNvZGVfRnJvbUZvcm1hdChiJ3JlcHI9JVYnLCBOb25lLCBiJ1x4ZTRceGJhXHhiYVx4ZTZceGIwXHg5MScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGV4dCwgJ3JlcHI9XHU0ZWJhXHU2YzExJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCdyZXByPVx1NGViYVx1NmMxMScsCisgICAgICAgICAgICAgICAgICAgICBiJ3JlcHI9JVYnLCBOb25lLCBiJ1x4ZTRceGJhXHhiYVx4ZTZceGIwXHg5MScpCiAKICAgICAgICAgI1Rlc3QgcmVwbGFjZSBlcnJvciBoYW5kbGVyLgotICAgICAgICB0ZXh0ID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoYidyZXByPSVWJywgTm9uZSwgYidhYmNceGZmJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXh0LCAncmVwcj1hYmNcdWZmZmQnKQorICAgICAgICBjaGVja19mb3JtYXQoJ3JlcHI9YWJjXHVmZmZkJywKKyAgICAgICAgICAgICAgICAgICAgIGIncmVwcj0lVicsIE5vbmUsIGInYWJjXHhmZicpCiAKICAgICAgICAgIyBub3Qgc3VwcG9ydGVkOiBjb3B5IHRoZSByYXcgZm9ybWF0IHN0cmluZy4gdGhlc2UgdGVzdHMgYXJlIGp1c3QgaGVyZQogICAgICAgICAjIHRvIGNoZWNrIGZvciBjcmFzaHMgYW5kIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhcyBzcGVjaWZpY2F0aW9ucwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJTElcycsIGInYWJjJyksICclcycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYiclMWFiYycpLCAnJTFhYmMnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJStpJywgY19pbnQoMTApKSwgJyUraScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYiclLiVzJywgYidhYmMnKSwgJyUuJXMnKQorICAgICAgICBjaGVja19mb3JtYXQoJyVzJywKKyAgICAgICAgICAgICAgICAgICAgIGInJTElcycsIGInYWJjJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCclMWFiYycsCisgICAgICAgICAgICAgICAgICAgICBiJyUxYWJjJykKKyAgICAgICAgY2hlY2tfZm9ybWF0KCclK2knLAorICAgICAgICAgICAgICAgICAgICAgYiclK2knLCBjX2ludCgxMCkpCisgICAgICAgIGNoZWNrX2Zvcm1hdCgnJS4lcycsCisgICAgICAgICAgICAgICAgICAgICBiJyUuJXMnLCBiJ2FiYycpCiAKICAgICAjIFRlc3QgUHlVbmljb2RlX0FzV2lkZUNoYXIoKQogICAgIGRlZiB0ZXN0X2Fzd2lkZWNoYXIoc2VsZik6CkBAIC0yMTg2LDYgKzIzNTAsODAgQEAKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGFiYywgYWJjZGVmKQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWJjZGVmLmRlY29kZSgndW5pY29kZV9pbnRlcm5hbCcpLCB0ZXh0KQogCisgICAgZGVmIHRlc3RfY29tcGFyZShzZWxmKToKKyAgICAgICAgIyBJc3N1ZSAjMTc2MTUKKyAgICAgICAgTiA9IDEwCisgICAgICAgIGFzY2lpID0gJ2EnICogTgorICAgICAgICBhc2NpaTIgPSAneicgKiBOCisgICAgICAgIGxhdGluID0gJ1x4ODAnICogTgorICAgICAgICBsYXRpbjIgPSAnXHhmZicgKiBOCisgICAgICAgIGJtcCA9ICdcdTAxMDAnICogTgorICAgICAgICBibXAyID0gJ1x1ZmZmZicgKiBOCisgICAgICAgIGFzdHJhbCA9ICdcVTAwMTAwMDAwJyAqIE4KKyAgICAgICAgYXN0cmFsMiA9ICdcVTAwMTBmZmZmJyAqIE4KKyAgICAgICAgc3RyaW5ncyA9ICgKKyAgICAgICAgICAgIGFzY2lpLCBhc2NpaTIsCisgICAgICAgICAgICBsYXRpbiwgbGF0aW4yLAorICAgICAgICAgICAgYm1wLCBibXAyLAorICAgICAgICAgICAgYXN0cmFsLCBhc3RyYWwyKQorICAgICAgICBmb3IgdGV4dDEsIHRleHQyIGluIGl0ZXJ0b29scy5jb21iaW5hdGlvbnMoc3RyaW5ncywgMik6CisgICAgICAgICAgICBlcXVhbCA9ICh0ZXh0MSBpcyB0ZXh0MikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGV4dDEgPT0gdGV4dDIsIGVxdWFsKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXh0MSAhPSB0ZXh0Miwgbm90IGVxdWFsKQorCisgICAgICAgICAgICBpZiBlcXVhbDoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUodGV4dDEgPD0gdGV4dDIpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHRleHQxID49IHRleHQyKQorCisgICAgICAgICAgICAgICAgIyB0ZXh0MSBpcyB0ZXh0MjogZHVwbGljYXRlIHN0cmluZ3MgdG8gc2tpcCB0aGUgInN0cjEgPT0gc3RyMiIKKyAgICAgICAgICAgICAgICAjIG9wdGltaXphdGlvbiBpbiB1bmljb2RlX2NvbXBhcmVfZXEoKSBhbmQgcmVhbGx5IGNvbXBhcmUKKyAgICAgICAgICAgICAgICAjIGNoYXJhY3RlciBwZXIgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgY29weTEgPSBkdXBsaWNhdGVfc3RyaW5nKHRleHQxKQorICAgICAgICAgICAgICAgIGNvcHkyID0gZHVwbGljYXRlX3N0cmluZyh0ZXh0MikKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90KGNvcHkxLCBjb3B5MikKKworICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb3B5MSA9PSBjb3B5MikKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGNvcHkxICE9IGNvcHkyKQorCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNvcHkxIDw9IGNvcHkyKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb3B5MiA+PSBjb3B5MikKKworICAgICAgICBzZWxmLmFzc2VydFRydWUoYXNjaWkgPCBhc2NpaTIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhc2NpaSA8IGxhdGluKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoYXNjaWkgPCBibXApCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhc2NpaSA8IGFzdHJhbCkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShhc2NpaSA+PSBhc2NpaTIpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYXNjaWkgPj0gbGF0aW4pCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYXNjaWkgPj0gYm1wKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGFzY2lpID49IGFzdHJhbCkKKworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGxhdGluIDwgYXNjaWkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsYXRpbiA8IGxhdGluMikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxhdGluIDwgYm1wKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobGF0aW4gPCBhc3RyYWwpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsYXRpbiA+PSBhc2NpaSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShsYXRpbiA+PSBsYXRpbjIpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobGF0aW4gPj0gYm1wKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGxhdGluID49IGFzdHJhbCkKKworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGJtcCA8IGFzY2lpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGJtcCA8IGxhdGluKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoYm1wIDwgYm1wMikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJtcCA8IGFzdHJhbCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJtcCA+PSBhc2NpaSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJtcCA+PSBsYXRpbikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShibXAgPj0gYm1wMikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShibXAgPj0gYXN0cmFsKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYXN0cmFsIDwgYXNjaWkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYXN0cmFsIDwgbGF0aW4pCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYXN0cmFsIDwgYm1wMikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGFzdHJhbCA8IGFzdHJhbDIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhc3RyYWwgPj0gYXNjaWkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhc3RyYWwgPj0gbGF0aW4pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhc3RyYWwgPj0gYm1wMikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShhc3RyYWwgPj0gYXN0cmFsMikKKwogCiBjbGFzcyBTdHJpbmdNb2R1bGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9mb3JtYXR0ZXJfcGFyc2VyKHNlbGYpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF91bmljb2RlZGF0YS5weSBiL0xpYi90ZXN0L3Rlc3RfdW5pY29kZWRhdGEucHkKaW5kZXggOTlhYTAwMy4uNjc3NTA4YiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF91bmljb2RlZGF0YS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3VuaWNvZGVkYXRhLnB5CkBAIC04MCw3ICs4MCw3IEBACiBjbGFzcyBVbmljb2RlRnVuY3Rpb25zVGVzdChVbmljb2RlRGF0YWJhc2VUZXN0KToKIAogICAgICMgdXBkYXRlIHRoaXMsIGlmIHRoZSBkYXRhYmFzZSBjaGFuZ2VzCi0gICAgZXhwZWN0ZWRjaGVja3N1bSA9ICcxN2ZlMmYxMmI3ODhlNGZmZjU0NzliNDY5YzQ0MDRiYjZlY2Y4NDFmJworICAgIGV4cGVjdGVkY2hlY2tzdW0gPSAnZWJkNjRlODE1NTNjOWNiMzdmNDI0ZjU2MTYyNTQ0OTlmY2Q4ODQ5ZScKICAgICBkZWYgdGVzdF9mdW5jdGlvbl9jaGVja3N1bShzZWxmKToKICAgICAgICAgZGF0YSA9IFtdCiAgICAgICAgIGggPSBoYXNobGliLnNoYTEoKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF91cmxsaWIucHkgYi9MaWIvdGVzdC90ZXN0X3VybGxpYi5weQppbmRleCBhMmVhNDk3Li5iNGI1NmQ2IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3VybGxpYi5weQorKysgYi9MaWIvdGVzdC90ZXN0X3VybGxpYi5weQpAQCAtMTYsNiArMTYsNyBAQAogZnJvbSBiYXNlNjQgaW1wb3J0IGI2NGVuY29kZQogaW1wb3J0IGNvbGxlY3Rpb25zCiAKKwogZGVmIGhleGVzY2FwZShjaGFyKToKICAgICAiIiJFc2NhcGUgY2hhciBhcyBSRkMgMjM5NiBzcGVjaWZpZXMiIiIKICAgICBoZXhfcmVwciA9IGhleChvcmQoY2hhcikpWzI6XS51cHBlcigpCkBAIC0yMzgsNyArMjM5LDcgQEAKICAgICAgICAgc2VsZi5jaGVja19yZWFkKGIiMS4xIikKIAogICAgIGRlZiB0ZXN0X3JlYWRfYm9ndXMoc2VsZik6Ci0gICAgICAgICMgdXJsb3BlbigpIHNob3VsZCByYWlzZSBJT0Vycm9yIGZvciBtYW55IGVycm9yIGNvZGVzLgorICAgICAgICAjIHVybG9wZW4oKSBzaG91bGQgcmFpc2UgT1NFcnJvciBmb3IgbWFueSBlcnJvciBjb2Rlcy4KICAgICAgICAgc2VsZi5mYWtlaHR0cChiJycnSFRUUC8xLjEgNDAxIEF1dGhlbnRpY2F0aW9uIFJlcXVpcmVkCiBEYXRlOiBXZWQsIDAyIEphbiAyMDA4IDAzOjAzOjU0IEdNVAogU2VydmVyOiBBcGFjaGUvMS4zLjMzIChEZWJpYW4gR05VL0xpbnV4KSBtb2Rfc3NsLzIuOC4yMiBPcGVuU1NMLzAuOS43ZQpAQCAtMjQ2LDEyICsyNDcsMTIgQEAKIENvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEKICcnJykKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgdXJsb3BlbiwgImh0dHA6Ly9weXRob24ub3JnLyIpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCB1cmxvcGVuLCAiaHR0cDovL3B5dGhvbi5vcmcvIikKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHNlbGYudW5mYWtlaHR0cCgpCiAKICAgICBkZWYgdGVzdF9pbnZhbGlkX3JlZGlyZWN0KHNlbGYpOgotICAgICAgICAjIHVybG9wZW4oKSBzaG91bGQgcmFpc2UgSU9FcnJvciBmb3IgbWFueSBlcnJvciBjb2Rlcy4KKyAgICAgICAgIyB1cmxvcGVuKCkgc2hvdWxkIHJhaXNlIE9TRXJyb3IgZm9yIG1hbnkgZXJyb3IgY29kZXMuCiAgICAgICAgIHNlbGYuZmFrZWh0dHAoYicnJ0hUVFAvMS4xIDMwMiBGb3VuZAogRGF0ZTogV2VkLCAwMiBKYW4gMjAwOCAwMzowMzo1NCBHTVQKIFNlcnZlcjogQXBhY2hlLzEuMy4zMyAoRGViaWFuIEdOVS9MaW51eCkgbW9kX3NzbC8yLjguMjIgT3BlblNTTC8wLjkuN2UKQEAgLTI2NiwxOSArMjY3LDIwIEBACiAgICAgICAgICAgICBzZWxmLnVuZmFrZWh0dHAoKQogCiAgICAgZGVmIHRlc3RfZW1wdHlfc29ja2V0KHNlbGYpOgotICAgICAgICAjIHVybG9wZW4oKSByYWlzZXMgSU9FcnJvciBpZiB0aGUgdW5kZXJseWluZyBzb2NrZXQgZG9lcyBub3Qgc2VuZCBhbnkKKyAgICAgICAgIyB1cmxvcGVuKCkgcmFpc2VzIE9TRXJyb3IgaWYgdGhlIHVuZGVybHlpbmcgc29ja2V0IGRvZXMgbm90IHNlbmQgYW55CiAgICAgICAgICMgZGF0YS4gKCMxNjgwMjMwKQogICAgICAgICBzZWxmLmZha2VodHRwKGInJykKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgdXJsb3BlbiwgImh0dHA6Ly9zb21ldGhpbmciKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgdXJsb3BlbiwgImh0dHA6Ly9zb21ldGhpbmciKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgc2VsZi51bmZha2VodHRwKCkKIAogICAgIGRlZiB0ZXN0X21pc3NpbmdfbG9jYWxmaWxlKHNlbGYpOgogICAgICAgICAjIFRlc3QgZm9yICMxMDgzNgotICAgICAgICAjIDMuMyAtIFVSTEVycm9yIGlzIG5vdCBjYXB0dXJlZCwgZXhwbGljaXQgSU9FcnJvciBpcyByYWlzZWQuCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvcik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXModXJsbGliLmVycm9yLlVSTEVycm9yKSBhcyBlOgogICAgICAgICAgICAgdXJsb3BlbignZmlsZTovL2xvY2FsaG9zdC9hL2ZpbGUvd2hpY2gvZG9lc25vdC9leGlzdHMucHknKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZS5leGNlcHRpb24uZmlsZW5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShlLmV4Y2VwdGlvbi5yZWFzb24pCiAKICAgICBkZWYgdGVzdF9maWxlX25vdGV4aXN0cyhzZWxmKToKICAgICAgICAgZmQsIHRtcF9maWxlID0gdGVtcGZpbGUubWtzdGVtcCgpCkBAIC0yOTEsMjAgKzI5MywyMSBAQAogICAgICAgICAgICAgb3MuY2xvc2UoZmQpCiAgICAgICAgICAgICBvcy51bmxpbmsodG1wX2ZpbGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3MucGF0aC5leGlzdHModG1wX2ZpbGUpKQotICAgICAgICAjIDMuMyAtIElPRXJyb3IgaW5zdGVhZCBvZiBVUkxFcnJvcgotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHVybGxpYi5lcnJvci5VUkxFcnJvcik6CiAgICAgICAgICAgICB1cmxvcGVuKHRtcF9maWxldXJsKQogCiAgICAgZGVmIHRlc3RfZnRwX25vaG9zdChzZWxmKToKICAgICAgICAgdGVzdF9mdHBfdXJsID0gJ2Z0cDovLy9wYXRoJwotICAgICAgICAjIDMuMyAtIElPRXJyb3IgaW5zdGVhZCBvZiBVUkxFcnJvcgotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHVybGxpYi5lcnJvci5VUkxFcnJvcikgYXMgZToKICAgICAgICAgICAgIHVybG9wZW4odGVzdF9mdHBfdXJsKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGUuZXhjZXB0aW9uLmZpbGVuYW1lKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZS5leGNlcHRpb24ucmVhc29uKQogCiAgICAgZGVmIHRlc3RfZnRwX25vbmV4aXN0aW5nKHNlbGYpOgotICAgICAgICAjIDMuMyAtIElPRXJyb3IgaW5zdGVhZCBvZiBVUkxFcnJvcgotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHVybGxpYi5lcnJvci5VUkxFcnJvcikgYXMgZToKICAgICAgICAgICAgIHVybG9wZW4oJ2Z0cDovL2xvY2FsaG9zdC9hL2ZpbGUvd2hpY2gvZG9lc25vdC9leGlzdHMucHknKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGUuZXhjZXB0aW9uLmZpbGVuYW1lKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZS5leGNlcHRpb24ucmVhc29uKQogCiAKICAgICBkZWYgdGVzdF91c2VycGFzc19pbnVybChzZWxmKToKQEAgLTM0MSw2ICszNDQsNzkgQEAKICAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJyxEZXByZWNhdGlvbldhcm5pbmcpKToKICAgICAgICAgICAgIHVybGxpYi5yZXF1ZXN0LlVSTG9wZW5lcigpCiAKK2NsYXNzIHVybG9wZW5fRGF0YVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJUZXN0IHVybG9wZW4oKSBvcGVuaW5nIGEgZGF0YSBVUkwuIiIiCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgICMgdGV4dCBjb250YWluaW5nIFVSTCBzcGVjaWFsLSBhbmQgdW5pY29kZS1jaGFyYWN0ZXJzCisgICAgICAgIHNlbGYudGV4dCA9ICJ0ZXN0IGRhdGEgVVJMcyA6OywlPSYgXHUwMGY2IFx1MDBjNCAiCisgICAgICAgICMgMngxIHBpeGVsIFJHQiBQTkcgaW1hZ2Ugd2l0aCBvbmUgYmxhY2sgYW5kIG9uZSB3aGl0ZSBwaXhlbAorICAgICAgICBzZWxmLmltYWdlID0gKAorICAgICAgICAgICAgYidceDg5UE5HXHJcblx4MWFcblx4MDBceDAwXHgwMFxySUhEUlx4MDBceDAwXHgwMFx4MDJceDAwXHgwMFx4MDAnCisgICAgICAgICAgICBiJ1x4MDFceDA4XHgwMlx4MDBceDAwXHgwMHtAXHhlOFx4ZGRceDAwXHgwMFx4MDBceDAxc1JHQlx4MDBceGFlJworICAgICAgICAgICAgYidceGNlXHgxY1x4ZTlceDAwXHgwMFx4MDBceDBmSURBVFx4MDhceGQ3Y2BgYFx4ZjhceGZmXHhmZj9ceDAwJworICAgICAgICAgICAgYidceDA2XHgwMVx4MDJceGZlXG5vL1x4MWVceDAwXHgwMFx4MDBceDAwSUVORFx4YWVCYFx4ODInKQorCisgICAgICAgIHNlbGYudGV4dF91cmwgPSAoCisgICAgICAgICAgICAiZGF0YTp0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgsdGVzdCUyMGRhdGElMjBVUkxzJTIwJTNBJTNCJTJDJTI1JTMiCisgICAgICAgICAgICAiRCUyNiUyMCVDMyVCNiUyMCVDMyU4NCUyMCIpCisgICAgICAgIHNlbGYudGV4dF91cmxfYmFzZTY0ID0gKAorICAgICAgICAgICAgImRhdGE6dGV4dC9wbGFpbjtjaGFyc2V0PUlTTy04ODU5LTE7YmFzZTY0LGRHVnpkQ0JrWVhSaElGVlNUSE1nT2pzIgorICAgICAgICAgICAgInNKVDBtSVBZZ3hDQSUzRCIpCisgICAgICAgICMgYmFzZTY0IGVuY29kZWQgZGF0YSBVUkwgdGhhdCBjb250YWlucyBpZ25vcmFibGUgc3BhY2VzLAorICAgICAgICAjIHN1Y2ggYXMgIlxuIiwgIiAiLCAiJTBBIiwgYW5kICIlMjAiLgorICAgICAgICBzZWxmLmltYWdlX3VybCA9ICgKKyAgICAgICAgICAgICJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFJQUFBQUJDQUlBQUFCN1xuIgorICAgICAgICAgICAgIlFPamRBQUFBQVhOU1IwSUFyczRjNlFBQUFBOUpSRUZVQ05kaiUwQVlHQmclMkJQLy9Qd0FHQVFMJTJCQ204ICIKKyAgICAgICAgICAgICJ2SGdBQUFBQkpSVTVFcmtKZ2dnJTNEJTNEJTBBJTIwIikKKworICAgICAgICBzZWxmLnRleHRfdXJsX3Jlc3AgPSB1cmxsaWIucmVxdWVzdC51cmxvcGVuKHNlbGYudGV4dF91cmwpCisgICAgICAgIHNlbGYudGV4dF91cmxfYmFzZTY0X3Jlc3AgPSB1cmxsaWIucmVxdWVzdC51cmxvcGVuKAorICAgICAgICAgICAgc2VsZi50ZXh0X3VybF9iYXNlNjQpCisgICAgICAgIHNlbGYuaW1hZ2VfdXJsX3Jlc3AgPSB1cmxsaWIucmVxdWVzdC51cmxvcGVuKHNlbGYuaW1hZ2VfdXJsKQorCisgICAgZGVmIHRlc3RfaW50ZXJmYWNlKHNlbGYpOgorICAgICAgICAjIE1ha2Ugc3VyZSBvYmplY3QgcmV0dXJuZWQgYnkgdXJsb3BlbigpIGhhcyB0aGUgc3BlY2lmaWVkIG1ldGhvZHMKKyAgICAgICAgZm9yIGF0dHIgaW4gKCJyZWFkIiwgInJlYWRsaW5lIiwgInJlYWRsaW5lcyIsCisgICAgICAgICAgICAgICAgICAgICAiY2xvc2UiLCAiaW5mbyIsICJnZXR1cmwiLCAiZ2V0Y29kZSIsICJfX2l0ZXJfXyIpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIoc2VsZi50ZXh0X3VybF9yZXNwLCBhdHRyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAib2JqZWN0IHJldHVybmVkIGJ5IHVybG9wZW4oKSBsYWNrcyAlcyBhdHRyaWJ1dGUiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyKQorCisgICAgZGVmIHRlc3RfaW5mbyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHNlbGYudGV4dF91cmxfcmVzcC5pbmZvKCksIGVtYWlsLm1lc3NhZ2UuTWVzc2FnZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnRleHRfdXJsX2Jhc2U2NF9yZXNwLmluZm8oKS5nZXRfcGFyYW1zKCksCisgICAgICAgICAgICBbKCd0ZXh0L3BsYWluJywgJycpLCAoJ2NoYXJzZXQnLCAnSVNPLTg4NTktMScpXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmltYWdlX3VybF9yZXNwLmluZm8oKVsnY29udGVudC1sZW5ndGgnXSwKKyAgICAgICAgICAgIHN0cihsZW4oc2VsZi5pbWFnZSkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVybGxpYi5yZXF1ZXN0LnVybG9wZW4oImRhdGE6LCIpLmluZm8oKS5nZXRfcGFyYW1zKCksCisgICAgICAgICAgICBbKCd0ZXh0L3BsYWluJywgJycpLCAoJ2NoYXJzZXQnLCAnVVMtQVNDSUknKV0pCisKKyAgICBkZWYgdGVzdF9nZXR1cmwoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi50ZXh0X3VybF9yZXNwLmdldHVybCgpLCBzZWxmLnRleHRfdXJsKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudGV4dF91cmxfYmFzZTY0X3Jlc3AuZ2V0dXJsKCksCisgICAgICAgICAgICBzZWxmLnRleHRfdXJsX2Jhc2U2NCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmltYWdlX3VybF9yZXNwLmdldHVybCgpLCBzZWxmLmltYWdlX3VybCkKKworICAgIGRlZiB0ZXN0X3JlYWRfdGV4dChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnRleHRfdXJsX3Jlc3AucmVhZCgpLmRlY29kZSgKKyAgICAgICAgICAgIGRpY3Qoc2VsZi50ZXh0X3VybF9yZXNwLmluZm8oKS5nZXRfcGFyYW1zKCkpWydjaGFyc2V0J10pLCBzZWxmLnRleHQpCisKKyAgICBkZWYgdGVzdF9yZWFkX3RleHRfYmFzZTY0KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudGV4dF91cmxfYmFzZTY0X3Jlc3AucmVhZCgpLmRlY29kZSgKKyAgICAgICAgICAgIGRpY3Qoc2VsZi50ZXh0X3VybF9iYXNlNjRfcmVzcC5pbmZvKCkuZ2V0X3BhcmFtcygpKVsnY2hhcnNldCddKSwKKyAgICAgICAgICAgIHNlbGYudGV4dCkKKworICAgIGRlZiB0ZXN0X3JlYWRfaW1hZ2Uoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5pbWFnZV91cmxfcmVzcC5yZWFkKCksIHNlbGYuaW1hZ2UpCisKKyAgICBkZWYgdGVzdF9taXNzaW5nX2NvbW1hKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLHVybGxpYi5yZXF1ZXN0LnVybG9wZW4sJ2RhdGE6dGV4dC9wbGFpbicpCisKKyAgICBkZWYgdGVzdF9pbnZhbGlkX2Jhc2U2NF9kYXRhKHNlbGYpOgorICAgICAgICAjIG1pc3NpbmcgcGFkZGluZyBjaGFyYWN0ZXIKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcix1cmxsaWIucmVxdWVzdC51cmxvcGVuLCdkYXRhOjtiYXNlNjQsQ2c9JykKKwogY2xhc3MgdXJscmV0cmlldmVfRmlsZVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAiIiJUZXN0IHVybGxpYi51cmxyZXRyaWV2ZSgpIG9uIGxvY2FsIGZpbGVzIiIiCiAKQEAgLTEyOTEsNiArMTM2Nyw3IEBACiAjICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdHAuZnRwLnNvY2suZ2V0dGltZW91dCgpLCAzMCkKICMgICAgICAgICBmdHAuY2xvc2UoKQogCisKIGNsYXNzIFJlcXVlc3RUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgIiIiVW5pdCB0ZXN0cyBmb3IgdXJsbGliLnJlcXVlc3QuUmVxdWVzdC4iIiIKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF91cmxsaWIyLnB5IGIvTGliL3Rlc3QvdGVzdF91cmxsaWIyLnB5CmluZGV4IDMzZjkwZjQuLmIzNjU5ZjQgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdXJsbGliMi5weQorKysgYi9MaWIvdGVzdC90ZXN0X3VybGxpYjIucHkKQEAgLTExLDYgKzExLDcgQEAKICMgVGhlIHByb3h5IGJ5cGFzcyBtZXRob2QgaW1wb3J0ZWQgYmVsb3cgaGFzIGxvZ2ljIHNwZWNpZmljIHRvIHRoZSBPU1gKICMgcHJveHkgY29uZmlnIGRhdGEgc3RydWN0dXJlIGJ1dCBpcyB0ZXN0YWJsZSBvbiBhbGwgcGxhdGZvcm1zLgogZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgUmVxdWVzdCwgT3BlbmVyRGlyZWN0b3IsIF9wcm94eV9ieXBhc3NfbWFjb3N4X3N5c2NvbmYKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZQogaW1wb3J0IHVybGxpYi5lcnJvcgogCiAjIFhYWApAQCAtMTE4LDYgKzExOSwxNSBAQAogICAgICAgICBzZWxmLmFzc2VydElzTm9uZShyZXEuZ2V0X2hlYWRlcigiTm90LXRoZXJlIikpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVxLmdldF9oZWFkZXIoIk5vdC10aGVyZSIsICJkZWZhdWx0IiksICJkZWZhdWx0IikKIAorICAgICAgICByZXEucmVtb3ZlX2hlYWRlcigiU3BhbS1lZ2dzIikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXEuaGFzX2hlYWRlcigiU3BhbS1lZ2dzIikpCisKKyAgICAgICAgcmVxLmFkZF91bnJlZGlyZWN0ZWRfaGVhZGVyKCJVbnJlZGlyZWN0ZWQtc3BhbSIsICJFZ2dzIikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlcS5oYXNfaGVhZGVyKCJVbnJlZGlyZWN0ZWQtc3BhbSIpKQorCisgICAgICAgIHJlcS5yZW1vdmVfaGVhZGVyKCJVbnJlZGlyZWN0ZWQtc3BhbSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmVxLmhhc19oZWFkZXIoIlVucmVkaXJlY3RlZC1zcGFtIikpCisKIAogICAgIGRlZiB0ZXN0X3Bhc3N3b3JkX21hbmFnZXIoc2VsZik6CiAgICAgICAgIG1nciA9IHVybGxpYi5yZXF1ZXN0LkhUVFBQYXNzd29yZE1ncigpCkBAIC0yODMsNiArMjkzLDcgQEAKICAgICAgICAgc2VsZi5yZXFfaGVhZGVycyA9IFtdCiAgICAgICAgIHNlbGYuZGF0YSA9IE5vbmUKICAgICAgICAgc2VsZi5yYWlzZV9vbl9lbmRoZWFkZXJzID0gRmFsc2UKKyAgICAgICAgc2VsZi5zb2NrID0gTm9uZQogICAgICAgICBzZWxmLl90dW5uZWxfaGVhZGVycyA9IHt9CiAKICAgICBkZWYgX19jYWxsX18oc2VsZiwgaG9zdCwgdGltZW91dD1zb2NrZXQuX0dMT0JBTF9ERUZBVUxUX1RJTUVPVVQpOgpAQCAtMzEwLDggKzMyMSw3IEBACiAgICAgICAgIGlmIGJvZHk6CiAgICAgICAgICAgICBzZWxmLmRhdGEgPSBib2R5CiAgICAgICAgIGlmIHNlbGYucmFpc2Vfb25fZW5kaGVhZGVyczoKLSAgICAgICAgICAgIGltcG9ydCBzb2NrZXQKLSAgICAgICAgICAgIHJhaXNlIHNvY2tldC5lcnJvcigpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCkKICAgICBkZWYgZ2V0cmVzcG9uc2Uoc2VsZik6CiAgICAgICAgIHJldHVybiBNb2NrSFRUUFJlc3BvbnNlKE1vY2tGaWxlKCksIHt9LCAyMDAsICJPSyIpCiAKQEAgLTU5NiwyNyArNjA2LDYgQEAKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYXJnc1sxXSBpcyBOb25lIG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzaW5zdGFuY2UoYXJnc1sxXSwgTW9ja1Jlc3BvbnNlKSkKIAotICAgIGRlZiB0ZXN0X21ldGhvZF9kZXByZWNhdGlvbnMoc2VsZik6Ci0gICAgICAgIHJlcSA9IFJlcXVlc3QoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJucyhEZXByZWNhdGlvbldhcm5pbmcpOgotICAgICAgICAgICAgcmVxLmFkZF9kYXRhKCJkYXRhIikKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFdhcm5zKERlcHJlY2F0aW9uV2FybmluZyk6Ci0gICAgICAgICAgICByZXEuZ2V0X2RhdGEoKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0V2FybnMoRGVwcmVjYXRpb25XYXJuaW5nKToKLSAgICAgICAgICAgIHJlcS5oYXNfZGF0YSgpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJucyhEZXByZWNhdGlvbldhcm5pbmcpOgotICAgICAgICAgICAgcmVxLmdldF9ob3N0KCkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFdhcm5zKERlcHJlY2F0aW9uV2FybmluZyk6Ci0gICAgICAgICAgICByZXEuZ2V0X3NlbGVjdG9yKCkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFdhcm5zKERlcHJlY2F0aW9uV2FybmluZyk6Ci0gICAgICAgICAgICByZXEuaXNfdW52ZXJpZmlhYmxlKCkKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFdhcm5zKERlcHJlY2F0aW9uV2FybmluZyk6Ci0gICAgICAgICAgICByZXEuZ2V0X29yaWdpbl9yZXFfaG9zdCgpCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJucyhEZXByZWNhdGlvbldhcm5pbmcpOgotICAgICAgICAgICAgcmVxLmdldF90eXBlKCkKLQotCiBkZWYgc2FuZXBhdGhuYW1lMnVybChwYXRoKToKICAgICB0cnk6CiAgICAgICAgIHBhdGguZW5jb2RlKCJ1dGYtOCIpCkBAIC04MTEsNyArODAwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiRm9vIiwgImJhciIpLCAoIlNwYW0iLCAiZWdncyIpXSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaHR0cC5kYXRhLCBkYXRhKQogCi0gICAgICAgICMgY2hlY2sgc29ja2V0LmVycm9yIGNvbnZlcnRlZCB0byBVUkxFcnJvcgorICAgICAgICAjIGNoZWNrIE9TRXJyb3IgY29udmVydGVkIHRvIFVSTEVycm9yCiAgICAgICAgIGh0dHAucmFpc2Vfb25fZW5kaGVhZGVycyA9IFRydWUKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXModXJsbGliLmVycm9yLlVSTEVycm9yLCBoLmRvX29wZW4sIGh0dHAsIHJlcSkKIApAQCAtOTE2LDYgKzkwNSwzNiBAQAogICAgICAgICAgICAgcF9kc19yZXEgPSBoLmRvX3JlcXVlc3RfKGRzX3JlcSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocF9kc19yZXEudW5yZWRpcmVjdGVkX2hkcnNbIkhvc3QiXSwiZXhhbXBsZS5jb20iKQogCisgICAgZGVmIHRlc3RfZnVsbF91cmxfc2V0dGVyKHNlbGYpOgorICAgICAgICAjIENoZWNrcyB0byBlbnN1cmUgdGhhdCBjb21wb25lbnRzIGFyZSBzZXQgY29ycmVjdGx5IGFmdGVyIHNldHRpbmcgdGhlCisgICAgICAgICMgZnVsbF91cmwgb2YgYSBSZXF1ZXN0IG9iamVjdAorCisgICAgICAgIHVybHMgPSBbCisgICAgICAgICAgICAnaHR0cDovL2V4YW1wbGUuY29tP2Zvbz1iYXIjYmF6JywKKyAgICAgICAgICAgICdodHRwOi8vZXhhbXBsZS5jb20/Zm9vPWJhciZzcGFtPWVnZ3MjYmFzaCcsCisgICAgICAgICAgICAnaHR0cDovL2V4YW1wbGUuY29tJywKKyAgICAgICAgXQorCisgICAgICAgICMgdGVzdGluZyBhIHJldXNhYmxlIHJlcXVlc3QgaW5zdGFuY2UsIGJ1dCB0aGUgdXJsIHBhcmFtZXRlciBpcworICAgICAgICAjIHJlcXVpcmVkLCBzbyBqdXN0IHVzZSBhIGR1bW15IG9uZSB0byBpbnN0YW50aWF0ZQorICAgICAgICByID0gUmVxdWVzdCgnaHR0cDovL2V4YW1wbGUuY29tJykKKyAgICAgICAgZm9yIHVybCBpbiB1cmxzOgorICAgICAgICAgICAgci5mdWxsX3VybCA9IHVybAorICAgICAgICAgICAgcGFyc2VkID0gdXJscGFyc2UodXJsKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHIuZ2V0X2Z1bGxfdXJsKCksIHVybCkKKyAgICAgICAgICAgICMgZnVsbF91cmwgc2V0dGVyIHVzZXMgc3BsaXR0YWcgdG8gc3BsaXQgaW50byBjb21wb25lbnRzLgorICAgICAgICAgICAgIyBzcGxpdHRhZyBzZXRzIHRoZSBmcmFnbWVudCBhcyBOb25lIHdoaWxlIHVybHBhcnNlIHNldHMgaXQgdG8gJycKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoci5mcmFnbWVudCBvciAnJywgcGFyc2VkLmZyYWdtZW50KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cmxwYXJzZShyLmdldF9mdWxsX3VybCgpKS5xdWVyeSwgcGFyc2VkLnF1ZXJ5KQorCisgICAgZGVmIHRlc3RfZnVsbF91cmxfZGVsZXRlcihzZWxmKToKKyAgICAgICAgciA9IFJlcXVlc3QoJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20nKQorICAgICAgICBkZWwgci5mdWxsX3VybAorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShyLmZ1bGxfdXJsKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShyLmZyYWdtZW50KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHIuc2VsZWN0b3IsICcnKQorCiAgICAgZGVmIHRlc3RfZml4cGF0aF9pbl93ZWlyZHVybHMoc2VsZik6CiAgICAgICAgICMgSXNzdWU0NDkzOiB1cmxsaWIyIHRvIHN1cHBseSAnLycgd2hlbiB0byB1cmxzIHdoZXJlIHBhdGggZG9lcyBub3QKICAgICAgICAgIyBzdGFydCB3aXRoJy8nCkBAIC0xNDE1LDYgKzE0MzQsMjEgQEAKICAgICAgICAgc2VsZi5vcGVuZXJfaGFzX2hhbmRsZXIobywgTXlIVFRQSGFuZGxlcikKICAgICAgICAgc2VsZi5vcGVuZXJfaGFzX2hhbmRsZXIobywgTXlPdGhlckhUVFBIYW5kbGVyKQogCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3VwcG9ydC5pc19yZXNvdXJjZV9lbmFibGVkKCduZXR3b3JrJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlc3QgcmVxdWlyZXMgbmV0d29yayBhY2Nlc3MnKQorICAgIGRlZiB0ZXN0X2lzc3VlMTY0NjQoc2VsZik6CisgICAgICAgIG9wZW5lciA9IHVybGxpYi5yZXF1ZXN0LmJ1aWxkX29wZW5lcigpCisgICAgICAgIHJlcXVlc3QgPSB1cmxsaWIucmVxdWVzdC5SZXF1ZXN0KCJodHRwOi8vd3d3LnB5dGhvbi5vcmcvfmplcmVteS8iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlcXVlc3QuZGF0YSkKKworICAgICAgICBvcGVuZXIub3BlbihyZXF1ZXN0LCAiMSIuZW5jb2RlKCJ1cy1hc2NpaSIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIiMSIsIHJlcXVlc3QuZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiMSIsIHJlcXVlc3QuZ2V0X2hlYWRlcigiQ29udGVudC1sZW5ndGgiKSkKKworICAgICAgICBvcGVuZXIub3BlbihyZXF1ZXN0LCAiMTIzNDU2Nzg5MCIuZW5jb2RlKCJ1cy1hc2NpaSIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIiMTIzNDU2Nzg5MCIsIHJlcXVlc3QuZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiMTAiLCByZXF1ZXN0LmdldF9oZWFkZXIoIkNvbnRlbnQtbGVuZ3RoIikpCisKICAgICBkZWYgdGVzdF9IVFRQRXJyb3JfaW50ZXJmYWNlKHNlbGYpOgogICAgICAgICAiIiIKICAgICAgICAgSXNzdWUgMTMyMTEgcmV2ZWFscyB0aGF0IEhUVFBFcnJvciBkaWRuJ3QgaW1wbGVtZW50IHRoZSBVUkxFcnJvcgpAQCAtMTQyNiwxMiArMTQ2MCwxMSBAQAogICAgICAgICBlcnIgPSB1cmxsaWIuZXJyb3IuSFRUUEVycm9yKHVybCwgY29kZSwgbXNnLCBoZHJzLCBmcCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIoZXJyLCAncmVhc29uJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyLnJlYXNvbiwgJ3NvbWV0aGluZyBiYWQgaGFwcGVuZWQnKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFzYXR0cihlcnIsICdoZHJzJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyLmhkcnMsICdDb250ZW50LUxlbmd0aDogNDInKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFzYXR0cihlcnIsICdoZWFkZXJzJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyLmhlYWRlcnMsICdDb250ZW50LUxlbmd0aDogNDInKQogICAgICAgICBleHBlY3RlZF9lcnJtc2cgPSAnSFRUUCBFcnJvciAlczogJXMnICUgKGVyci5jb2RlLCBlcnIubXNnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihlcnIpLCBleHBlY3RlZF9lcnJtc2cpCiAKLQogY2xhc3MgUmVxdWVzdFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiBzZXRVcChzZWxmKToKQEAgLTE0NTEsNiArMTQ4NCwyNSBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5nZXQuZGF0YSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiUE9TVCIsIHNlbGYuZ2V0LmdldF9tZXRob2QoKSkKIAorICAgICMgaXNzdWUgMTY0NjQKKyAgICAjIGlmIHdlIGNoYW5nZSBkYXRhIHdlIG5lZWQgdG8gcmVtb3ZlIGNvbnRlbnQtbGVuZ3RoIGhlYWRlcgorICAgICMgKGNhdXNlIGl0J3MgbW9zdCBwcm9iYWJseSBjYWxjdWxhdGVkIGZvciBwcmV2aW91cyB2YWx1ZSkKKyAgICBkZWYgdGVzdF9zZXR0aW5nX2RhdGFfc2hvdWxkX3JlbW92ZV9jb250ZW50X2xlbmd0aChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbigiQ29udGVudC1sZW5ndGgiLCBzZWxmLmdldC51bnJlZGlyZWN0ZWRfaGRycykKKyAgICAgICAgc2VsZi5nZXQuYWRkX3VucmVkaXJlY3RlZF9oZWFkZXIoIkNvbnRlbnQtbGVuZ3RoIiwgNDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNDIsIHNlbGYuZ2V0LnVucmVkaXJlY3RlZF9oZHJzWyJDb250ZW50LWxlbmd0aCJdKQorICAgICAgICBzZWxmLmdldC5kYXRhID0gInNwYW0iCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oIkNvbnRlbnQtbGVuZ3RoIiwgc2VsZi5nZXQudW5yZWRpcmVjdGVkX2hkcnMpCisKKyAgICAjIGlzc3VlIDE3NDg1IHNhbWUgZm9yIGRlbGV0aW5nIGRhdGEuCisgICAgZGVmIHRlc3RfZGVsZXRpbmdfZGF0YV9zaG91bGRfcmVtb3ZlX2NvbnRlbnRfbGVuZ3RoKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydE5vdEluKCJDb250ZW50LWxlbmd0aCIsIHNlbGYuZ2V0LnVucmVkaXJlY3RlZF9oZHJzKQorICAgICAgICBzZWxmLmdldC5kYXRhID0gJ2ZvbycKKyAgICAgICAgc2VsZi5nZXQuYWRkX3VucmVkaXJlY3RlZF9oZWFkZXIoIkNvbnRlbnQtbGVuZ3RoIiwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgzLCBzZWxmLmdldC51bnJlZGlyZWN0ZWRfaGRyc1siQ29udGVudC1sZW5ndGgiXSkKKyAgICAgICAgZGVsIHNlbGYuZ2V0LmRhdGEKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbigiQ29udGVudC1sZW5ndGgiLCBzZWxmLmdldC51bnJlZGlyZWN0ZWRfaGRycykKKwogICAgIGRlZiB0ZXN0X2dldF9mdWxsX3VybChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiaHR0cDovL3d3dy5weXRob24ub3JnL35qZXJlbXkvIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmdldC5nZXRfZnVsbF91cmwoKSkKQEAgLTE0OTIsMjEgKzE1NDQsMTMgQEAKICAgICAgICAgcmVxID0gUmVxdWVzdCh1cmwpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVxLmdldF9mdWxsX3VybCgpLCB1cmwpCiAKLSAgICBkZWYgdGVzdF9IVFRQRXJyb3JfaW50ZXJmYWNlX2NhbGwoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBJc3N1ZSAxNTcwMSAtIEhUVFBFcnJvciBpbnRlcmZhY2UgaGFzIGluZm8gbWV0aG9kIGF2YWlsYWJsZSBmcm9tIFVSTEVycm9yCi0gICAgICAgICIiIgotICAgICAgICBlcnIgPSB1cmxsaWIucmVxdWVzdC5IVFRQRXJyb3IobXNnPSJzb21ldGhpbmcgYmFkIGhhcHBlbmVkIiwgdXJsPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU9Tm9uZSwgaGRycz0nQ29udGVudC1MZW5ndGg6NDInLCBmcD1Ob25lKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFzYXR0cihlcnIsICdyZWFzb24nKSkKLSAgICAgICAgYXNzZXJ0IGhhc2F0dHIoZXJyLCAncmVhc29uJykKLSAgICAgICAgYXNzZXJ0IGhhc2F0dHIoZXJyLCAnaW5mbycpCi0gICAgICAgIGFzc2VydCBjYWxsYWJsZShlcnIuaW5mbykKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZXJyLmluZm8oKQotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBzZWxmLmZhaWwoJ2Vyci5pbmZvIGNhbGwgZmFpbGVkLicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyLmluZm8oKSwgIkNvbnRlbnQtTGVuZ3RoOjQyIikKKyAgICBkZWYgdGVzdF91cmxfZnVsbHVybF9nZXRfZnVsbF91cmwoc2VsZik6CisgICAgICAgIHVybHMgPSBbJ2h0dHA6Ly9kb2NzLnB5dGhvbi5vcmcnLAorICAgICAgICAgICAgICAgICdodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvdXJsbGliMi5odG1sI09LJywKKyAgICAgICAgICAgICAgICAnaHR0cDovL3d3dy5weXRob24ub3JnLz9xcz1xdWVyeSNmcmFnbWVudD10cnVlJyBdCisgICAgICAgIGZvciB1cmwgaW4gdXJsczoKKyAgICAgICAgICAgIHJlcSA9IFJlcXVlc3QodXJsKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXEuZ2V0X2Z1bGxfdXJsKCksIHJlcS5mdWxsX3VybCkKIAogZGVmIHRlc3RfbWFpbih2ZXJib3NlPU5vbmUpOgogICAgIGZyb20gdGVzdCBpbXBvcnQgdGVzdF91cmxsaWIyCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3VybGxpYjJfbG9jYWxuZXQucHkgYi9MaWIvdGVzdC90ZXN0X3VybGxpYjJfbG9jYWxuZXQucHkKaW5kZXggYjFhYTE1OC4uMDgyNTBjMyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF91cmxsaWIyX2xvY2FsbmV0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfdXJsbGliMl9sb2NhbG5ldC5weQpAQCAtOSw3ICs5LDEwIEBACiBpbXBvcnQgaGFzaGxpYgogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiB0aHJlYWRpbmcgPSBzdXBwb3J0LmltcG9ydF9tb2R1bGUoJ3RocmVhZGluZycpCi0KK3RyeToKKyAgICBpbXBvcnQgc3NsCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgc3NsID0gTm9uZQogCiBoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogIyBTZWxmLXNpZ25lZCBjZXJ0IGZpbGUgZm9yICdsb2NhbGhvc3QnCkBAIC0xNyw2ICsyMCw3IEBACiAjIFNlbGYtc2lnbmVkIGNlcnQgZmlsZSBmb3IgJ2Zha2Vob3N0bmFtZScKIENFUlRfZmFrZWhvc3RuYW1lID0gb3MucGF0aC5qb2luKGhlcmUsICdrZXljZXJ0Mi5wZW0nKQogCisKICMgTG9vcGJhY2sgaHR0cCBzZXJ2ZXIgaW5mcmFzdHJ1Y3R1cmUKIAogY2xhc3MgTG9vcGJhY2tIdHRwU2VydmVyKGh0dHAuc2VydmVyLkhUVFBTZXJ2ZXIpOgpAQCAtMzUzLDEyICszNTcsMTUgQEAKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHN1cGVyKFRlc3RVcmxvcGVuLCBzZWxmKS5zZXRVcCgpCiAgICAgICAgICMgSWdub3JlIHByb3hpZXMgZm9yIGxvY2FsaG9zdCB0ZXN0cy4KKyAgICAgICAgc2VsZi5vbGRfZW52aXJvbiA9IG9zLmVudmlyb24uY29weSgpCiAgICAgICAgIG9zLmVudmlyb25bJ05PX1BST1hZJ10gPSAnKicKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBOb25lCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgIGlmIHNlbGYuc2VydmVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcCgpCisgICAgICAgIG9zLmVudmlyb24uY2xlYXIoKQorICAgICAgICBvcy5lbnZpcm9uLnVwZGF0ZShzZWxmLm9sZF9lbnZpcm9uKQogICAgICAgICBzdXBlcihUZXN0VXJsb3Blbiwgc2VsZikudGVhckRvd24oKQogCiAgICAgZGVmIHVybG9wZW4oc2VsZiwgdXJsLCBkYXRhPU5vbmUsICoqa3dhcmdzKToKQEAgLTM4NiwxNCArMzkzLDE0IEBACiAgICAgICAgIGhhbmRsZXIucG9ydCA9IHBvcnQKICAgICAgICAgcmV0dXJuIGhhbmRsZXIKIAotICAgIGRlZiBzdGFydF9odHRwc19zZXJ2ZXIoc2VsZiwgcmVzcG9uc2VzPU5vbmUsIGNlcnRmaWxlPUNFUlRfbG9jYWxob3N0KToKKyAgICBkZWYgc3RhcnRfaHR0cHNfc2VydmVyKHNlbGYsIHJlc3BvbnNlcz1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHVybGxpYi5yZXF1ZXN0LCAnSFRUUFNIYW5kbGVyJyk6CiAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCdzc2wgc3VwcG9ydCByZXF1aXJlZCcpCiAgICAgICAgIGZyb20gdGVzdC5zc2xfc2VydmVycyBpbXBvcnQgbWFrZV9odHRwc19zZXJ2ZXIKICAgICAgICAgaWYgcmVzcG9uc2VzIGlzIE5vbmU6CiAgICAgICAgICAgICByZXNwb25zZXMgPSBbKDIwMCwgW10sIGIid2UgY2FyZSBhIGJpdCIpXQogICAgICAgICBoYW5kbGVyID0gR2V0UmVxdWVzdEhhbmRsZXIocmVzcG9uc2VzKQotICAgICAgICBzZXJ2ZXIgPSBtYWtlX2h0dHBzX3NlcnZlcihzZWxmLCBjZXJ0ZmlsZT1jZXJ0ZmlsZSwgaGFuZGxlcl9jbGFzcz1oYW5kbGVyKQorICAgICAgICBzZXJ2ZXIgPSBtYWtlX2h0dHBzX3NlcnZlcihzZWxmLCBoYW5kbGVyX2NsYXNzPWhhbmRsZXIsICoqa3dhcmdzKQogICAgICAgICBoYW5kbGVyLnBvcnQgPSBzZXJ2ZXIucG9ydAogICAgICAgICByZXR1cm4gaGFuZGxlcgogCkBAIC00ODMsNiArNDkwLDIxIEBACiAgICAgICAgICAgICBzZWxmLnVybG9wZW4oImh0dHBzOi8vbG9jYWxob3N0OiVzL2JpemFycmUiICUgaGFuZGxlci5wb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgIGNhZGVmYXVsdD1UcnVlKQogCisgICAgZGVmIHRlc3RfaHR0cHNfc25pKHNlbGYpOgorICAgICAgICBpZiBzc2wgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoInNzbCBtb2R1bGUgcmVxdWlyZWQiKQorICAgICAgICBpZiBub3Qgc3NsLkhBU19TTkk6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJTTkkgc3VwcG9ydCByZXF1aXJlZCBpbiBPcGVuU1NMIikKKyAgICAgICAgc25pX25hbWUgPSBOb25lCisgICAgICAgIGRlZiBjYl9zbmkoc3NsX3NvY2ssIHNlcnZlcl9uYW1lLCBpbml0aWFsX2NvbnRleHQpOgorICAgICAgICAgICAgbm9ubG9jYWwgc25pX25hbWUKKyAgICAgICAgICAgIHNuaV9uYW1lID0gc2VydmVyX25hbWUKKyAgICAgICAgY29udGV4dCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9UTFN2MSkKKyAgICAgICAgY29udGV4dC5zZXRfc2VydmVybmFtZV9jYWxsYmFjayhjYl9zbmkpCisgICAgICAgIGhhbmRsZXIgPSBzZWxmLnN0YXJ0X2h0dHBzX3NlcnZlcihjb250ZXh0PWNvbnRleHQsIGNlcnRmaWxlPUNFUlRfbG9jYWxob3N0KQorICAgICAgICBzZWxmLnVybG9wZW4oImh0dHBzOi8vbG9jYWxob3N0OiVzIiAlIGhhbmRsZXIucG9ydCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzbmlfbmFtZSwgImxvY2FsaG9zdCIpCisKICAgICBkZWYgdGVzdF9zZW5kaW5nX2hlYWRlcnMoc2VsZik6CiAgICAgICAgIGhhbmRsZXIgPSBzZWxmLnN0YXJ0X3NlcnZlcigpCiAgICAgICAgIHJlcSA9IHVybGxpYi5yZXF1ZXN0LlJlcXVlc3QoImh0dHA6Ly9sb2NhbGhvc3Q6JXMvIiAlIGhhbmRsZXIucG9ydCwKQEAgLTUyOSw3ICs1NTEsNyBAQAogICAgICAgICAjIHNvIHdlIHJ1biB0aGUgdGVzdCBvbmx5IHdoZW4gLXVuZXR3b3JrLy11YWxsIGlzIHNwZWNpZmllZCB0bwogICAgICAgICAjIG1pdGlnYXRlIHRoZSBwcm9ibGVtIGEgYml0IChzZWUgIzE3NTY0KQogICAgICAgICBzdXBwb3J0LnJlcXVpcmVzKCduZXR3b3JrJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBHaXZlbiB0aGF0IGJvdGggVmVyaVNpZ24gYW5kIHZhcmlvdXMgSVNQcyBoYXZlIGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdGhlIHBhc3Qgb3IgYXJlIHByZXNlbnRseSBoaWphY2tpbmcgdmFyaW91cyBpbnZhbGlkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZG9tYWluIG5hbWUgcmVxdWVzdHMgaW4gYW4gYXR0ZW1wdCB0byBib29zdCB0cmFmZmljCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3VybGxpYjJuZXQucHkgYi9MaWIvdGVzdC90ZXN0X3VybGxpYjJuZXQucHkKaW5kZXggN2YzYzkzYS4uYjY3NGJlMCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF91cmxsaWIybmV0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfdXJsbGliMm5ldC5weQpAQCAtMTY0LDYgKzE2NCwxNCBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMuZ2V0dXJsKCksCiAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vZG9jcy5weXRob24ub3JnLzIvZ2xvc3NhcnkuaHRtbCNnbG9zc2FyeSIpCiAKKyAgICBkZWYgdGVzdF9yZWRpcmVjdF91cmxfd2l0aGZyYWcoc2VsZik6CisgICAgICAgIHJlZGlyZWN0X3VybF93aXRoX2ZyYWcgPSAiaHR0cDovL2JpdGx5LmNvbS91cmxsaWJyZWRpcmVjdHRlc3QiCisgICAgICAgIHdpdGggc3VwcG9ydC50cmFuc2llbnRfaW50ZXJuZXQocmVkaXJlY3RfdXJsX3dpdGhfZnJhZyk6CisgICAgICAgICAgICByZXEgPSB1cmxsaWIucmVxdWVzdC5SZXF1ZXN0KHJlZGlyZWN0X3VybF93aXRoX2ZyYWcpCisgICAgICAgICAgICByZXMgPSB1cmxsaWIucmVxdWVzdC51cmxvcGVuKHJlcSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLmdldHVybCgpLAorICAgICAgICAgICAgICAgICAgICAiaHR0cDovL2RvY3MucHl0aG9uLm9yZy8zLjQvZ2xvc3NhcnkuaHRtbCN0ZXJtLWdsb2JhbC1pbnRlcnByZXRlci1sb2NrIikKKwogICAgIGRlZiB0ZXN0X2N1c3RvbV9oZWFkZXJzKHNlbGYpOgogICAgICAgICB1cmwgPSAiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIKICAgICAgICAgd2l0aCBzdXBwb3J0LnRyYW5zaWVudF9pbnRlcm5ldCh1cmwpOgpAQCAtMjE2LDcgKzIyNCw3IEBACiAgICAgICAgICAgICAgICAgZGVidWcodXJsKQogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgZiA9IHVybG9wZW4odXJsLCByZXEsIFRJTUVPVVQpCi0gICAgICAgICAgICAgICAgZXhjZXB0IEVudmlyb25tZW50RXJyb3IgYXMgZXJyOgorICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgICAgICAgICAgICAgZGVidWcoZXJyKQogICAgICAgICAgICAgICAgICAgICBpZiBleHBlY3RlZF9lcnI6CiAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSAoIkRpZG4ndCBnZXQgZXhwZWN0ZWQgZXJyb3IocykgJXMgZm9yICVzICVzLCBnb3QgJXM6ICVzIiAlCkBAIC0zMzAsMzEgKzMzOCw5IEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUuZnAuZnAucmF3Ll9zb2NrLmdldHRpbWVvdXQoKSwgNjApCiAKIAotQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3NsLCAicmVxdWlyZXMgU1NMIHN1cHBvcnQiKQotY2xhc3MgSFRUUFNUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9zbmkoc2VsZik6Ci0gICAgICAgIHNlbGYuc2tpcFRlc3QoInRlc3QgZGlzYWJsZWQgLSB0ZXN0IHNlcnZlciBuZWVkZWQiKQotICAgICAgICAjIENoZWNrcyB0aGF0IFNlcnZlciBOYW1lIEluZGljYXRpb24gd29ya3MsIGlmIHN1cHBvcnRlZCBieSB0aGUKLSAgICAgICAgIyBPcGVuU1NMIGxpbmtlZCB0by4KLSAgICAgICAgIyBUaGUgc3NsIG1vZHVsZSBpdHNlbGYgZG9lc24ndCBoYXZlIHNlcnZlci1zaWRlIHN1cHBvcnQgZm9yIFNOSSwKLSAgICAgICAgIyBzbyB3ZSByZWx5IG9uIGEgdGhpcmQtcGFydHkgdGVzdCBzaXRlLgotICAgICAgICBleHBlY3Rfc25pID0gc3NsLkhBU19TTkkKLSAgICAgICAgd2l0aCBzdXBwb3J0LnRyYW5zaWVudF9pbnRlcm5ldCgiWFhYIik6Ci0gICAgICAgICAgICB1ID0gdXJsbGliLnJlcXVlc3QudXJsb3BlbigiWFhYIikKLSAgICAgICAgICAgIGNvbnRlbnRzID0gdS5yZWFkYWxsKCkKLSAgICAgICAgICAgIGlmIGV4cGVjdF9zbmk6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihiIkdyZWF0IiwgY29udGVudHMpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbihiIlVuZm9ydHVuYXRlbHkiLCBjb250ZW50cykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbihiIkdyZWF0IiwgY29udGVudHMpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihiIlVuZm9ydHVuYXRlbHkiLCBjb250ZW50cykKLQotCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgc3VwcG9ydC5yZXF1aXJlcygibmV0d29yayIpCiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoQXV0aFRlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgIEhUVFBTVGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgT3RoZXJOZXR3b3JrVGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xvc2VTb2NrZXRUZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVvdXRUZXN0LApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF91cmxsaWJuZXQucHkgYi9MaWIvdGVzdC90ZXN0X3VybGxpYm5ldC5weQppbmRleCAyMGVmY2E2Li5iNjg4OGYzIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3VybGxpYm5ldC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3VybGxpYm5ldC5weQpAQCAtMTI0LDE2ICsxMjQsMTUgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgICMgVGhpcyBoYXBwZW5zIHdpdGggc29tZSBvdmVyemVhbG91cyBETlMgcHJvdmlkZXJzIHN1Y2ggYXMgT3BlbkROUwogICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgiJXIgc2hvdWxkIG5vdCByZXNvbHZlIGZvciB0ZXN0IHRvIHdvcmsiICUgYm9ndXNfZG9tYWluKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAjIFNGIHBhdGNoIDgwOTkxNTogIEluIFNlcCAyMDAzLCBWZXJpU2lnbiBzdGFydGVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICMgaGlnaGphY2tpbmcgaW52YWxpZCAuY29tIGFuZCAubmV0IGFkZHJlc3NlcyB0bwotICAgICAgICAgICAgICAgICAgICAgICAgICAjIGJvb3N0IHRyYWZmaWMgdG8gdGhlaXIgb3duIHNpdGUuICBUaGlzIHRlc3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzdGFydGVkIGZhaWxpbmcgdGhlbi4gIE9uZSBob3BlcyB0aGUgLmludmFsaWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIyBkb21haW4gd2lsbCBiZSBzcGFyZWQgdG8gc2VydmUgaXRzIGRlZmluZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIyBwdXJwb3NlLgotICAgICAgICAgICAgICAgICAgICAgICAgICAjIHVybGxpYi51cmxvcGVuLCAiaHR0cDovL3d3dy5zYWRmbGtqc2FzYWRmLmNvbS8iKQotICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxsaWIucmVxdWVzdC51cmxvcGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3NhZGZsa2pzYXNmLmkubnZhbGkuZC8iKQorICAgICAgICBmYWlsdXJlX2V4cGxhbmF0aW9uID0gKCdvcGVuaW5nIGFuIGludmFsaWQgVVJMIGRpZCBub3QgcmFpc2UgT1NFcnJvcjsgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjYW4gYmUgY2F1c2VkIGJ5IGEgYnJva2VuIEROUyBzZXJ2ZXIgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoZS5nLiByZXR1cm5zIDQwNCBvciBoaWphY2tzIHBhZ2UpJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBtc2c9ZmFpbHVyZV9leHBsYW5hdGlvbik6CisgICAgICAgICAgICAjIFNGIHBhdGNoIDgwOTkxNTogIEluIFNlcCAyMDAzLCBWZXJpU2lnbiBzdGFydGVkIGhpZ2hqYWNraW5nCisgICAgICAgICAgICAjIGludmFsaWQgLmNvbSBhbmQgLm5ldCBhZGRyZXNzZXMgdG8gYm9vc3QgdHJhZmZpYyB0byB0aGVpciBvd24KKyAgICAgICAgICAgICMgc2l0ZS4gIFRoaXMgdGVzdCBzdGFydGVkIGZhaWxpbmcgdGhlbi4gIE9uZSBob3BlcyB0aGUgLmludmFsaWQKKyAgICAgICAgICAgICMgZG9tYWluIHdpbGwgYmUgc3BhcmVkIHRvIHNlcnZlIGl0cyBkZWZpbmVkIHB1cnBvc2UuCisgICAgICAgICAgICB1cmxsaWIucmVxdWVzdC51cmxvcGVuKCJodHRwOi8vc2FkZmxranNhc2YuaS5udmFsaS5kLyIpCiAKIAogY2xhc3MgdXJscmV0cmlldmVOZXR3b3JrVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF91cmxwYXJzZS5weSBiL0xpYi90ZXN0L3Rlc3RfdXJscGFyc2UucHkKaW5kZXggMzc4YTQyNy4uYzkzOGYwOSAxMDA3NTUKLS0tIGEvTGliL3Rlc3QvdGVzdF91cmxwYXJzZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3VybHBhcnNlLnB5CkBAIC04NDcsNiArODQ3LDE0IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDEucGF0aCwgJzg2My0xMjM0JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwMS5wYXJhbXMsICdwaG9uZS1jb250ZXh0PSsxLTkxNC01NTUnKQogCisgICAgZGVmIHRlc3RfdW53cmFwKHNlbGYpOgorICAgICAgICB1cmwgPSB1cmxsaWIucGFyc2UudW53cmFwKCc8VVJMOnR5cGU6Ly9ob3N0L3BhdGg+JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1cmwsICd0eXBlOi8vaG9zdC9wYXRoJykKKworICAgIGRlZiB0ZXN0X1F1b3Rlcl9yZXByKHNlbGYpOgorICAgICAgICBxdW90ZXIgPSB1cmxsaWIucGFyc2UuUXVvdGVyKHVybGxpYi5wYXJzZS5fQUxXQVlTX1NBRkUpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ1F1b3RlcicsIHJlcHIocXVvdGVyKSkKKwogCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoVXJsUGFyc2VUZXN0Q2FzZSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdmVudi5weSBiL0xpYi90ZXN0L3Rlc3RfdmVudi5weQppbmRleCA5Njk2ODQ0Li4yYTUyOGM5IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3ZlbnYucHkKKysrIGIvTGliL3Rlc3QvdGVzdF92ZW52LnB5CkBAIC0xMTMsMTMgKzExMyw2OCBAQAogICAgICAgICAgICAgb3V0LCBlcnIgPSBwLmNvbW11bmljYXRlKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0LnN0cmlwKCksIGV4cGVjdGVkLmVuY29kZSgpKQogCisgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CisgICAgICAgIEVOVl9TVUJESVJTID0gKAorICAgICAgICAgICAgKCdTY3JpcHRzJywpLAorICAgICAgICAgICAgKCdJbmNsdWRlJywpLAorICAgICAgICAgICAgKCdMaWInLCksCisgICAgICAgICAgICAoJ0xpYicsICdzaXRlLXBhY2thZ2VzJyksCisgICAgICAgICkKKyAgICBlbHNlOgorICAgICAgICBFTlZfU1VCRElSUyA9ICgKKyAgICAgICAgICAgICgnYmluJywpLAorICAgICAgICAgICAgKCdpbmNsdWRlJywpLAorICAgICAgICAgICAgKCdsaWInLCksCisgICAgICAgICAgICAoJ2xpYicsICdweXRob24lZC4lZCcgJSBzeXMudmVyc2lvbl9pbmZvWzoyXSksCisgICAgICAgICAgICAoJ2xpYicsICdweXRob24lZC4lZCcgJSBzeXMudmVyc2lvbl9pbmZvWzoyXSwgJ3NpdGUtcGFja2FnZXMnKSwKKyAgICAgICAgKQorCisgICAgZGVmIGNyZWF0ZV9jb250ZW50cyhzZWxmLCBwYXRocywgZmlsZW5hbWUpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIHNvbWUgZmlsZXMgaW4gdGhlIGVudmlyb25tZW50IHdoaWNoIGFyZSB1bnJlbGF0ZWQKKyAgICAgICAgdG8gdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQuCisgICAgICAgICIiIgorICAgICAgICBmb3Igc3ViZGlycyBpbiBwYXRoczoKKyAgICAgICAgICAgIGQgPSBvcy5wYXRoLmpvaW4oc2VsZi5lbnZfZGlyLCAqc3ViZGlycykKKyAgICAgICAgICAgIG9zLm1rZGlyKGQpCisgICAgICAgICAgICBmbiA9IG9zLnBhdGguam9pbihkLCBmaWxlbmFtZSkKKyAgICAgICAgICAgIHdpdGggb3BlbihmbiwgJ3diJykgYXMgZjoKKyAgICAgICAgICAgICAgICBmLndyaXRlKGInU3RpbGwgaGVyZT8nKQorCiAgICAgZGVmIHRlc3Rfb3ZlcndyaXRlX2V4aXN0aW5nKHNlbGYpOgogICAgICAgICAiIiIKLSAgICAgICAgVGVzdCBjb250cm9sIG9mIG92ZXJ3cml0aW5nIGFuIGV4aXN0aW5nIGVudmlyb25tZW50IGRpcmVjdG9yeS4KKyAgICAgICAgVGVzdCBjcmVhdGluZyBlbnZpcm9ubWVudCBpbiBhbiBleGlzdGluZyBkaXJlY3RvcnkuCiAgICAgICAgICIiIgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCB2ZW52LmNyZWF0ZSwgc2VsZi5lbnZfZGlyKQorICAgICAgICBzZWxmLmNyZWF0ZV9jb250ZW50cyhzZWxmLkVOVl9TVUJESVJTLCAnZm9vJykKKyAgICAgICAgdmVudi5jcmVhdGUoc2VsZi5lbnZfZGlyKQorICAgICAgICBmb3Igc3ViZGlycyBpbiBzZWxmLkVOVl9TVUJESVJTOgorICAgICAgICAgICAgZm4gPSBvcy5wYXRoLmpvaW4oc2VsZi5lbnZfZGlyLCAqKHN1YmRpcnMgKyAoJ2ZvbycsKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5leGlzdHMoZm4pKQorICAgICAgICAgICAgd2l0aCBvcGVuKGZuLCAncmInKSBhcyBmOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIGInU3RpbGwgaGVyZT8nKQorCiAgICAgICAgIGJ1aWxkZXIgPSB2ZW52LkVudkJ1aWxkZXIoY2xlYXI9VHJ1ZSkKICAgICAgICAgYnVpbGRlci5jcmVhdGUoc2VsZi5lbnZfZGlyKQorICAgICAgICBmb3Igc3ViZGlycyBpbiBzZWxmLkVOVl9TVUJESVJTOgorICAgICAgICAgICAgZm4gPSBvcy5wYXRoLmpvaW4oc2VsZi5lbnZfZGlyLCAqKHN1YmRpcnMgKyAoJ2ZvbycsKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9zLnBhdGguZXhpc3RzKGZuKSkKKworICAgIGRlZiBjbGVhcl9kaXJlY3Rvcnkoc2VsZiwgcGF0aCk6CisgICAgICAgIGZvciBmbiBpbiBvcy5saXN0ZGlyKHBhdGgpOgorICAgICAgICAgICAgZm4gPSBvcy5wYXRoLmpvaW4ocGF0aCwgZm4pCisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzbGluayhmbikgb3Igb3MucGF0aC5pc2ZpbGUoZm4pOgorICAgICAgICAgICAgICAgIG9zLnJlbW92ZShmbikKKyAgICAgICAgICAgIGVsaWYgb3MucGF0aC5pc2Rpcihmbik6CisgICAgICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShmbikKKworICAgIGRlZiB0ZXN0X3Vub3ZlcndyaXRhYmxlX2ZhaWxzKHNlbGYpOgorICAgICAgICAjY3JlYXRlIGEgZmlsZSBjbGFzaGluZyB3aXRoIGRpcmVjdG9yaWVzIGluIHRoZSBlbnYgZGlyCisgICAgICAgIGZvciBwYXRocyBpbiBzZWxmLkVOVl9TVUJESVJTWzozXToKKyAgICAgICAgICAgIGZuID0gb3MucGF0aC5qb2luKHNlbGYuZW52X2RpciwgKnBhdGhzKQorICAgICAgICAgICAgd2l0aCBvcGVuKGZuLCAnd2InKSBhcyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGUoYicnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoKFZhbHVlRXJyb3IsIE9TRXJyb3IpLCB2ZW52LmNyZWF0ZSwgc2VsZi5lbnZfZGlyKQorICAgICAgICAgICAgc2VsZi5jbGVhcl9kaXJlY3Rvcnkoc2VsZi5lbnZfZGlyKQogCiAgICAgZGVmIHRlc3RfdXBncmFkZShzZWxmKToKICAgICAgICAgIiIiCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3dhaXQzLnB5IGIvTGliL3Rlc3QvdGVzdF93YWl0My5weQppbmRleCBiZDA2YzhkLi5mNmEwNjVkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3dhaXQzLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfd2FpdDMucHkKQEAgLTcsMTUgKzcsMTEgQEAKIGZyb20gdGVzdC5mb3JrX3dhaXQgaW1wb3J0IEZvcmtXYWl0CiBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0LCByZWFwX2NoaWxkcmVuCiAKLXRyeToKLSAgICBvcy5mb3JrCi1leGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoIm9zLmZvcmsgbm90IGRlZmluZWQgLS0gc2tpcHBpbmcgdGVzdF93YWl0MyIpCitpZiBub3QgaGFzYXR0cihvcywgJ2ZvcmsnKToKKyAgICByYWlzZSB1bml0dGVzdC5Ta2lwVGVzdCgib3MuZm9yayBub3QgZGVmaW5lZCIpCiAKLXRyeToKLSAgICBvcy53YWl0MwotZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KCJvcy53YWl0MyBub3QgZGVmaW5lZCAtLSBza2lwcGluZyB0ZXN0X3dhaXQzIikKK2lmIG5vdCBoYXNhdHRyKG9zLCAnd2FpdDMnKToKKyAgICByYWlzZSB1bml0dGVzdC5Ta2lwVGVzdCgib3Mud2FpdDMgbm90IGRlZmluZWQiKQogCiBjbGFzcyBXYWl0M1Rlc3QoRm9ya1dhaXQpOgogICAgIGRlZiB3YWl0X2ltcGwoc2VsZiwgY3BpZCk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3dhdmUucHkgYi9MaWIvdGVzdC90ZXN0X3dhdmUucHkKaW5kZXggZTBhYWNlNC4uNTgxZDk3MyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF93YXZlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfd2F2ZS5weQpAQCAtNTgsNiArNTgsMjIgQEAKICAgICAgICAgb3V0cHV0ID0gYidcMCcgKiBuZnJhbWVzICogbmNoYW5uZWxzICogc2FtcHdpZHRoCiAgICAgICAgIHNlbGYuZi53cml0ZWZyYW1lcyhvdXRwdXQpCiAKKyAgICBkZWYgdGVzdF9nZXRwYXJhbXMoc2VsZik6CisgICAgICAgIHNlbGYuZiA9IHdhdmUub3BlbihURVNURk4sICd3YicpCisgICAgICAgIHNlbGYuZi5zZXRuY2hhbm5lbHMobmNoYW5uZWxzKQorICAgICAgICBzZWxmLmYuc2V0c2FtcHdpZHRoKHNhbXB3aWR0aCkKKyAgICAgICAgc2VsZi5mLnNldGZyYW1lcmF0ZShmcmFtZXJhdGUpCisgICAgICAgIHNlbGYuZi5jbG9zZSgpCisKKyAgICAgICAgc2VsZi5mID0gd2F2ZS5vcGVuKFRFU1RGTiwgJ3JiJykKKyAgICAgICAgcGFyYW1zID0gc2VsZi5mLmdldHBhcmFtcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyYW1zLm5jaGFubmVscywgc2VsZi5mLmdldG5jaGFubmVscygpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcmFtcy5uZnJhbWVzLCBzZWxmLmYuZ2V0bmZyYW1lcygpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcmFtcy5zYW1wd2lkdGgsIHNlbGYuZi5nZXRzYW1wd2lkdGgoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJhbXMuZnJhbWVyYXRlLCBzZWxmLmYuZ2V0ZnJhbWVyYXRlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyYW1zLmNvbXB0eXBlLCBzZWxmLmYuZ2V0Y29tcHR5cGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJhbXMuY29tcG5hbWUsIHNlbGYuZi5nZXRjb21wbmFtZSgpKQorCiAKIGRlZiB0ZXN0X21haW4oKToKICAgICBydW5fdW5pdHRlc3QoVGVzdFdhdmUpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3dlYWtyZWYucHkgYi9MaWIvdGVzdC90ZXN0X3dlYWtyZWYucHkKaW5kZXggNTcxZTMzZi4uNTUxZDk1YyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF93ZWFrcmVmLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfd2Vha3JlZi5weQpAQCAtNywxMSArNywxNSBAQAogaW1wb3J0IGNvbnRleHRsaWIKIGltcG9ydCBjb3B5CiAKLWZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAorZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0LCBzY3JpcHRfaGVscGVyCiAKICMgVXNlZCBpbiBSZWZlcmVuY2VzVGVzdENhc2UudGVzdF9yZWZfY3JlYXRlZF9kdXJpbmdfZGVsKCkgLgogcmVmX2Zyb21fZGVsID0gTm9uZQogCisjIFVzZWQgYnkgRmluYWxpemVUZXN0Q2FzZSBhcyBhIGdsb2JhbCB0aGF0IG1heSBiZSByZXBsYWNlZCBieSBOb25lCisjIHdoZW4gdGhlIGludGVycHJldGVyIHNodXRzIGRvd24uCitfZ2xvYmFsX3ZhciA9ICdmb29iYXInCisKIGNsYXNzIEM6CiAgICAgZGVmIG1ldGhvZChzZWxmKToKICAgICAgICAgcGFzcwpAQCAtNDcsNiArNTEsMTEgQEAKICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCiAgICAgZGVmIF9faGFzaF9fKHNlbGYpOgogICAgICAgICByZXR1cm4gaGFzaChzZWxmLmFyZykKKyAgICBkZWYgc29tZV9tZXRob2Qoc2VsZik6CisgICAgICAgIHJldHVybiA0CisgICAgZGVmIG90aGVyX21ldGhvZChzZWxmKToKKyAgICAgICAgcmV0dXJuIDUKKwogCiBjbGFzcyBSZWZDeWNsZToKICAgICBkZWYgX19pbml0X18oc2VsZik6CkBAIC03OTcsNiArODA2LDMwIEBACiAgICAgICAgIGRlbCByb290CiAgICAgICAgIGdjLmNvbGxlY3QoKQogCisgICAgZGVmIHRlc3RfY2FsbGJhY2tfYXR0cmlidXRlKHNlbGYpOgorICAgICAgICB4ID0gT2JqZWN0KDEpCisgICAgICAgIGNhbGxiYWNrID0gbGFtYmRhIHJlZjogTm9uZQorICAgICAgICByZWYxID0gd2Vha3JlZi5yZWYoeCwgY2FsbGJhY2spCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocmVmMS5fX2NhbGxiYWNrX18sIGNhbGxiYWNrKQorCisgICAgICAgIHJlZjIgPSB3ZWFrcmVmLnJlZih4KQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShyZWYyLl9fY2FsbGJhY2tfXykKKworICAgIGRlZiB0ZXN0X2NhbGxiYWNrX2F0dHJpYnV0ZV9hZnRlcl9kZWxldGlvbihzZWxmKToKKyAgICAgICAgeCA9IE9iamVjdCgxKQorICAgICAgICByZWYgPSB3ZWFrcmVmLnJlZih4LCBzZWxmLmNhbGxiYWNrKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZWYuX19jYWxsYmFja19fKQorICAgICAgICBkZWwgeAorICAgICAgICBzdXBwb3J0LmdjX2NvbGxlY3QoKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShyZWYuX19jYWxsYmFja19fKQorCisgICAgZGVmIHRlc3Rfc2V0X2NhbGxiYWNrX2F0dHJpYnV0ZShzZWxmKToKKyAgICAgICAgeCA9IE9iamVjdCgxKQorICAgICAgICBjYWxsYmFjayA9IGxhbWJkYSByZWY6IE5vbmUKKyAgICAgICAgcmVmMSA9IHdlYWtyZWYucmVmKHgsIGNhbGxiYWNrKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgIHJlZjEuX19jYWxsYmFja19fID0gbGFtYmRhIHJlZjogTm9uZQorCiAKIGNsYXNzIFN1YmNsYXNzYWJsZVdlYWtyZWZUZXN0Q2FzZShUZXN0QmFzZSk6CiAKQEAgLTkwMSw2ICs5MzQsMTQwIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYmNhbGxlZCwgMCkKIAogCitjbGFzcyBXZWFrTWV0aG9kVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIF9zdWJjbGFzcyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIGEgT2JqZWN0IHN1YmNsYXNzIG92ZXJyaWRpbmcgYHNvbWVfbWV0aG9kYC4iIiIKKyAgICAgICAgY2xhc3MgQyhPYmplY3QpOgorICAgICAgICAgICAgZGVmIHNvbWVfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiA2CisgICAgICAgIHJldHVybiBDCisKKyAgICBkZWYgdGVzdF9hbGl2ZShzZWxmKToKKyAgICAgICAgbyA9IE9iamVjdCgxKQorICAgICAgICByID0gd2Vha3JlZi5XZWFrTWV0aG9kKG8uc29tZV9tZXRob2QpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShyLCB3ZWFrcmVmLlJlZmVyZW5jZVR5cGUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShyKCksIHR5cGUoby5zb21lX21ldGhvZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocigpLl9fc2VsZl9fLCBvKQorICAgICAgICBzZWxmLmFzc2VydElzKHIoKS5fX2Z1bmNfXywgby5zb21lX21ldGhvZC5fX2Z1bmNfXykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyKCkoKSwgNCkKKworICAgIGRlZiB0ZXN0X29iamVjdF9kZWFkKHNlbGYpOgorICAgICAgICBvID0gT2JqZWN0KDEpCisgICAgICAgIHIgPSB3ZWFrcmVmLldlYWtNZXRob2Qoby5zb21lX21ldGhvZCkKKyAgICAgICAgZGVsIG8KKyAgICAgICAgZ2MuY29sbGVjdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocigpLCBOb25lKQorCisgICAgZGVmIHRlc3RfbWV0aG9kX2RlYWQoc2VsZik6CisgICAgICAgIEMgPSBzZWxmLl9zdWJjbGFzcygpCisgICAgICAgIG8gPSBDKDEpCisgICAgICAgIHIgPSB3ZWFrcmVmLldlYWtNZXRob2Qoby5zb21lX21ldGhvZCkKKyAgICAgICAgZGVsIEMuc29tZV9tZXRob2QKKyAgICAgICAgZ2MuY29sbGVjdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocigpLCBOb25lKQorCisgICAgZGVmIHRlc3RfY2FsbGJhY2tfd2hlbl9vYmplY3RfZGVhZChzZWxmKToKKyAgICAgICAgIyBUZXN0IGNhbGxiYWNrIGJlaGF2aW91ciB3aGVuIG9iamVjdCBkaWVzIGZpcnN0LgorICAgICAgICBDID0gc2VsZi5fc3ViY2xhc3MoKQorICAgICAgICBjYWxscyA9IFtdCisgICAgICAgIGRlZiBjYihhcmcpOgorICAgICAgICAgICAgY2FsbHMuYXBwZW5kKGFyZykKKyAgICAgICAgbyA9IEMoMSkKKyAgICAgICAgciA9IHdlYWtyZWYuV2Vha01ldGhvZChvLnNvbWVfbWV0aG9kLCBjYikKKyAgICAgICAgZGVsIG8KKyAgICAgICAgZ2MuY29sbGVjdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FsbHMsIFtyXSkKKyAgICAgICAgIyBDYWxsYmFjayBpcyBvbmx5IGNhbGxlZCBvbmNlLgorICAgICAgICBDLnNvbWVfbWV0aG9kID0gT2JqZWN0LnNvbWVfbWV0aG9kCisgICAgICAgIGdjLmNvbGxlY3QoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhbGxzLCBbcl0pCisKKyAgICBkZWYgdGVzdF9jYWxsYmFja193aGVuX21ldGhvZF9kZWFkKHNlbGYpOgorICAgICAgICAjIFRlc3QgY2FsbGJhY2sgYmVoYXZpb3VyIHdoZW4gbWV0aG9kIGRpZXMgZmlyc3QuCisgICAgICAgIEMgPSBzZWxmLl9zdWJjbGFzcygpCisgICAgICAgIGNhbGxzID0gW10KKyAgICAgICAgZGVmIGNiKGFyZyk6CisgICAgICAgICAgICBjYWxscy5hcHBlbmQoYXJnKQorICAgICAgICBvID0gQygxKQorICAgICAgICByID0gd2Vha3JlZi5XZWFrTWV0aG9kKG8uc29tZV9tZXRob2QsIGNiKQorICAgICAgICBkZWwgQy5zb21lX21ldGhvZAorICAgICAgICBnYy5jb2xsZWN0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYWxscywgW3JdKQorICAgICAgICAjIENhbGxiYWNrIGlzIG9ubHkgY2FsbGVkIG9uY2UuCisgICAgICAgIGRlbCBvCisgICAgICAgIGdjLmNvbGxlY3QoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhbGxzLCBbcl0pCisKKyAgICBAc3VwcG9ydC5jcHl0aG9uX29ubHkKKyAgICBkZWYgdGVzdF9ub19jeWNsZXMoc2VsZik6CisgICAgICAgICMgQSBXZWFrTWV0aG9kIGRvZXNuJ3QgY3JlYXRlIGFueSByZWZlcmVuY2UgY3ljbGUgdG8gaXRzZWxmLgorICAgICAgICBvID0gT2JqZWN0KDEpCisgICAgICAgIGRlZiBjYihfKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgciA9IHdlYWtyZWYuV2Vha01ldGhvZChvLnNvbWVfbWV0aG9kLCBjYikKKyAgICAgICAgd3IgPSB3ZWFrcmVmLnJlZihyKQorICAgICAgICBkZWwgcgorICAgICAgICBzZWxmLmFzc2VydElzKHdyKCksIE5vbmUpCisKKyAgICBkZWYgdGVzdF9lcXVhbGl0eShzZWxmKToKKyAgICAgICAgZGVmIF9lcShhLCBiKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhID09IGIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGEgIT0gYikKKyAgICAgICAgZGVmIF9uZShhLCBiKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhICE9IGIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGEgPT0gYikKKyAgICAgICAgeCA9IE9iamVjdCgxKQorICAgICAgICB5ID0gT2JqZWN0KDEpCisgICAgICAgIGEgPSB3ZWFrcmVmLldlYWtNZXRob2QoeC5zb21lX21ldGhvZCkKKyAgICAgICAgYiA9IHdlYWtyZWYuV2Vha01ldGhvZCh5LnNvbWVfbWV0aG9kKQorICAgICAgICBjID0gd2Vha3JlZi5XZWFrTWV0aG9kKHgub3RoZXJfbWV0aG9kKQorICAgICAgICBkID0gd2Vha3JlZi5XZWFrTWV0aG9kKHkub3RoZXJfbWV0aG9kKQorICAgICAgICAjIE9iamVjdHMgZXF1YWwsIHNhbWUgbWV0aG9kCisgICAgICAgIF9lcShhLCBiKQorICAgICAgICBfZXEoYywgZCkKKyAgICAgICAgIyBPYmplY3RzIGVxdWFsLCBkaWZmZXJlbnQgbWV0aG9kCisgICAgICAgIF9uZShhLCBjKQorICAgICAgICBfbmUoYSwgZCkKKyAgICAgICAgX25lKGIsIGMpCisgICAgICAgIF9uZShiLCBkKQorICAgICAgICAjIE9iamVjdHMgdW5lcXVhbCwgc2FtZSBvciBkaWZmZXJlbnQgbWV0aG9kCisgICAgICAgIHogPSBPYmplY3QoMikKKyAgICAgICAgZSA9IHdlYWtyZWYuV2Vha01ldGhvZCh6LnNvbWVfbWV0aG9kKQorICAgICAgICBmID0gd2Vha3JlZi5XZWFrTWV0aG9kKHoub3RoZXJfbWV0aG9kKQorICAgICAgICBfbmUoYSwgZSkKKyAgICAgICAgX25lKGEsIGYpCisgICAgICAgIF9uZShiLCBlKQorICAgICAgICBfbmUoYiwgZikKKyAgICAgICAgZGVsIHgsIHksIHoKKyAgICAgICAgZ2MuY29sbGVjdCgpCisgICAgICAgICMgRGVhZCBXZWFrTWV0aG9kcyBjb21wYXJlIGJ5IGlkZW50aXR5CisgICAgICAgIHJlZnMgPSBhLCBiLCBjLCBkLCBlLCBmCisgICAgICAgIGZvciBxIGluIHJlZnM6CisgICAgICAgICAgICBmb3IgciBpbiByZWZzOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocSA9PSByLCBxIGlzIHIpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxICE9IHIsIHEgaXMgbm90IHIpCisKKyAgICBkZWYgdGVzdF9oYXNoaW5nKHNlbGYpOgorICAgICAgICAjIEFsaXZlIFdlYWtNZXRob2RzIGFyZSBoYXNoYWJsZSBpZiB0aGUgdW5kZXJseWluZyBvYmplY3QgaXMKKyAgICAgICAgIyBoYXNoYWJsZS4KKyAgICAgICAgeCA9IE9iamVjdCgxKQorICAgICAgICB5ID0gT2JqZWN0KDEpCisgICAgICAgIGEgPSB3ZWFrcmVmLldlYWtNZXRob2QoeC5zb21lX21ldGhvZCkKKyAgICAgICAgYiA9IHdlYWtyZWYuV2Vha01ldGhvZCh5LnNvbWVfbWV0aG9kKQorICAgICAgICBjID0gd2Vha3JlZi5XZWFrTWV0aG9kKHkub3RoZXJfbWV0aG9kKQorICAgICAgICAjIFNpbmNlIFdlYWtNZXRob2Qgb2JqZWN0cyBhcmUgZXF1YWwsIHRoZSBoYXNoZXMgc2hvdWxkIGJlIGVxdWFsLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2goYSksIGhhc2goYikpCisgICAgICAgIGhhID0gaGFzaChhKQorICAgICAgICAjIERlYWQgV2Vha01ldGhvZHMgcmV0YWluIHRoZWlyIG9sZCBoYXNoIHZhbHVlCisgICAgICAgIGRlbCB4LCB5CisgICAgICAgIGdjLmNvbGxlY3QoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2goYSksIGhhKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2goYiksIGhhKQorICAgICAgICAjIElmIGl0IHdhc24ndCBoYXNoZWQgd2hlbiBhbGl2ZSwgYSBkZWFkIFdlYWtNZXRob2QgY2Fubm90IGJlIGhhc2hlZC4KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBoYXNoLCBjKQorCisKIGNsYXNzIE1hcHBpbmdUZXN0Q2FzZShUZXN0QmFzZSk6CiAKICAgICBDT1VOVCA9IDEwCkBAIC0xMzg4LDYgKzE1NTUsMTUxIEBACiAgICAgZGVmIF9yZWZlcmVuY2Uoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9fcmVmLmNvcHkoKQogCisKK2NsYXNzIEZpbmFsaXplVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgY2xhc3MgQToKKyAgICAgICAgcGFzcworCisgICAgZGVmIF9jb2xsZWN0X2lmX25lY2Vzc2FyeShzZWxmKToKKyAgICAgICAgIyB3ZSBjcmVhdGUgbm8gcmVmLWN5Y2xlcyBzbyBpbiBDUHl0aG9uIG5vIGdjIHNob3VsZCBiZSBuZWVkZWQKKyAgICAgICAgaWYgc3lzLmltcGxlbWVudGF0aW9uLm5hbWUgIT0gJ2NweXRob24nOgorICAgICAgICAgICAgc3VwcG9ydC5nY19jb2xsZWN0KCkKKworICAgIGRlZiB0ZXN0X2ZpbmFsaXplKHNlbGYpOgorICAgICAgICBkZWYgYWRkKHgseSx6KToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoeCArIHkgKyB6KQorICAgICAgICAgICAgcmV0dXJuIHggKyB5ICsgegorCisgICAgICAgIGEgPSBzZWxmLkEoKQorCisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIGYgPSB3ZWFrcmVmLmZpbmFsaXplKGEsIGFkZCwgNjcsIDQzLCB6PTg5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuYWxpdmUsIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5wZWVrKCksIChhLCBhZGQsICg2Nyw0MyksIHsneic6ODl9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCksIDE5OSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmKCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZigpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucGVlaygpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuZGV0YWNoKCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5hbGl2ZSwgRmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCBbMTk5XSkKKworICAgICAgICByZXMgPSBbXQorICAgICAgICBmID0gd2Vha3JlZi5maW5hbGl6ZShhLCBhZGQsIDY3LCA0MywgODkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5wZWVrKCksIChhLCBhZGQsICg2Nyw0Myw4OSksIHt9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLmRldGFjaCgpLCAoYSwgYWRkLCAoNjcsNDMsODkpLCB7fSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZigpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnBlZWsoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLmRldGFjaCgpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuYWxpdmUsIEZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgW10pCisKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgZiA9IHdlYWtyZWYuZmluYWxpemUoYSwgYWRkLCB4PTY3LCB5PTQzLCB6PTg5KQorICAgICAgICBkZWwgYQorICAgICAgICBzZWxmLl9jb2xsZWN0X2lmX25lY2Vzc2FyeSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZigpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnBlZWsoKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLmRldGFjaCgpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuYWxpdmUsIEZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgWzE5OV0pCisKKyAgICBkZWYgdGVzdF9vcmRlcihzZWxmKToKKyAgICAgICAgYSA9IHNlbGYuQSgpCisgICAgICAgIHJlcyA9IFtdCisKKyAgICAgICAgZjEgPSB3ZWFrcmVmLmZpbmFsaXplKGEsIHJlcy5hcHBlbmQsICdmMScpCisgICAgICAgIGYyID0gd2Vha3JlZi5maW5hbGl6ZShhLCByZXMuYXBwZW5kLCAnZjInKQorICAgICAgICBmMyA9IHdlYWtyZWYuZmluYWxpemUoYSwgcmVzLmFwcGVuZCwgJ2YzJykKKyAgICAgICAgZjQgPSB3ZWFrcmVmLmZpbmFsaXplKGEsIHJlcy5hcHBlbmQsICdmNCcpCisgICAgICAgIGY1ID0gd2Vha3JlZi5maW5hbGl6ZShhLCByZXMuYXBwZW5kLCAnZjUnKQorCisgICAgICAgICMgbWFrZSBzdXJlIGZpbmFsaXplcnMgY2FuIGtlZXAgdGhlbXNlbHZlcyBhbGl2ZQorICAgICAgICBkZWwgZjEsIGY0CisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGYyLmFsaXZlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZjMuYWxpdmUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmNS5hbGl2ZSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUoZjUuZGV0YWNoKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZjUuYWxpdmUpCisKKyAgICAgICAgZjUoKSAgICAgICAgICAgICAgICAgICAgICAgIyBub3RoaW5nIGJlY2F1c2UgcHJldmlvdXNseSB1bnJlZ2lzdGVyZWQKKyAgICAgICAgcmVzLmFwcGVuZCgnQScpCisgICAgICAgIGYzKCkgICAgICAgICAgICAgICAgICAgICAgICMgPT4gcmVzLmFwcGVuZCgnZjMnKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGYzLmFsaXZlKQorICAgICAgICByZXMuYXBwZW5kKCdCJykKKyAgICAgICAgZjMoKSAgICAgICAgICAgICAgICAgICAgICAgIyBub3RoaW5nIGJlY2F1c2UgcHJldmlvdXNseSBjYWxsZWQKKyAgICAgICAgcmVzLmFwcGVuZCgnQycpCisgICAgICAgIGRlbCBhCisgICAgICAgIHNlbGYuX2NvbGxlY3RfaWZfbmVjZXNzYXJ5KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyA9PiByZXMuYXBwZW5kKCdmNCcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgPT4gcmVzLmFwcGVuZCgnZjInKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjID0+IHJlcy5hcHBlbmQoJ2YxJykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmMi5hbGl2ZSkKKyAgICAgICAgcmVzLmFwcGVuZCgnRCcpCisgICAgICAgIGYyKCkgICAgICAgICAgICAgICAgICAgICAgICMgbm90aGluZyBiZWNhdXNlIHByZXZpb3VzbHkgY2FsbGVkIGJ5IGdjCisKKyAgICAgICAgZXhwZWN0ZWQgPSBbJ0EnLCAnZjMnLCAnQicsICdDJywgJ2Y0JywgJ2YyJywgJ2YxJywgJ0QnXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgZXhwZWN0ZWQpCisKKyAgICBkZWYgdGVzdF9hbGxfZnJlZWQoc2VsZik6CisgICAgICAgICMgd2Ugd2FudCBhIHdlYWtyZWZhYmxlIHN1YmNsYXNzIG9mIHdlYWtyZWYuZmluYWxpemUKKyAgICAgICAgY2xhc3MgTXlGaW5hbGl6ZXIod2Vha3JlZi5maW5hbGl6ZSk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgYSA9IHNlbGYuQSgpCisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIGRlZiBjYWxsYmFjaygpOgorICAgICAgICAgICAgcmVzLmFwcGVuZCgxMjMpCisgICAgICAgIGYgPSBNeUZpbmFsaXplcihhLCBjYWxsYmFjaykKKworICAgICAgICB3cl9jYWxsYmFjayA9IHdlYWtyZWYucmVmKGNhbGxiYWNrKQorICAgICAgICB3cl9mID0gd2Vha3JlZi5yZWYoZikKKyAgICAgICAgZGVsIGNhbGxiYWNrLCBmCisKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUod3JfY2FsbGJhY2soKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUod3JfZigpKQorCisgICAgICAgIGRlbCBhCisgICAgICAgIHNlbGYuX2NvbGxlY3RfaWZfbmVjZXNzYXJ5KCkKKworICAgICAgICBzZWxmLmFzc2VydElzTm9uZSh3cl9jYWxsYmFjaygpKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZSh3cl9mKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCBbMTIzXSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBydW5faW5fY2hpbGQoY2xzKToKKyAgICAgICAgZGVmIGVycm9yKCk6CisgICAgICAgICAgICAjIENyZWF0ZSBhbiBhdGV4aXQgZmluYWxpemVyIGZyb20gaW5zaWRlIGEgZmluYWxpemVyIGNhbGxlZAorICAgICAgICAgICAgIyBhdCBleGl0LiAgVGhpcyBzaG91bGQgYmUgdGhlIG5leHQgdG8gYmUgcnVuLgorICAgICAgICAgICAgZzEgPSB3ZWFrcmVmLmZpbmFsaXplKGNscywgcHJpbnQsICdnMScpCisgICAgICAgICAgICBwcmludCgnZjMgZXJyb3InKQorICAgICAgICAgICAgMS8wCisKKyAgICAgICAgIyBjbHMgc2hvdWxkIHN0YXkgYWxpdmUgdGlsbCBhdGV4aXQgY2FsbGJhY2tzIHJ1bgorICAgICAgICBmMSA9IHdlYWtyZWYuZmluYWxpemUoY2xzLCBwcmludCwgJ2YxJywgX2dsb2JhbF92YXIpCisgICAgICAgIGYyID0gd2Vha3JlZi5maW5hbGl6ZShjbHMsIHByaW50LCAnZjInLCBfZ2xvYmFsX3ZhcikKKyAgICAgICAgZjMgPSB3ZWFrcmVmLmZpbmFsaXplKGNscywgZXJyb3IpCisgICAgICAgIGY0ID0gd2Vha3JlZi5maW5hbGl6ZShjbHMsIHByaW50LCAnZjQnLCBfZ2xvYmFsX3ZhcikKKworICAgICAgICBhc3NlcnQgZjEuYXRleGl0ID09IFRydWUKKyAgICAgICAgZjIuYXRleGl0ID0gRmFsc2UKKyAgICAgICAgYXNzZXJ0IGYzLmF0ZXhpdCA9PSBUcnVlCisgICAgICAgIGFzc2VydCBmNC5hdGV4aXQgPT0gVHJ1ZQorCisgICAgZGVmIHRlc3RfYXRleGl0KHNlbGYpOgorICAgICAgICBwcm9nID0gKCdmcm9tIHRlc3QudGVzdF93ZWFrcmVmIGltcG9ydCBGaW5hbGl6ZVRlc3RDYXNlOycrCisgICAgICAgICAgICAgICAgJ0ZpbmFsaXplVGVzdENhc2UucnVuX2luX2NoaWxkKCknKQorICAgICAgICByYywgb3V0LCBlcnIgPSBzY3JpcHRfaGVscGVyLmFzc2VydF9weXRob25fb2soJy1jJywgcHJvZykKKyAgICAgICAgb3V0ID0gb3V0LmRlY29kZSgnYXNjaWknKS5zcGxpdGxpbmVzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXQsIFsnZjQgZm9vYmFyJywgJ2YzIGVycm9yJywgJ2cxJywgJ2YxIGZvb2JhciddKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoYidaZXJvRGl2aXNpb25FcnJvcicgaW4gZXJyKQorCisKIGxpYnJlZnRlc3QgPSAiIiIgRG9jdGVzdCBmb3IgZXhhbXBsZXMgaW4gdGhlIGxpYnJhcnkgcmVmZXJlbmNlOiB3ZWFrcmVmLnJzdAogCiA+Pj4gaW1wb3J0IHdlYWtyZWYKQEAgLTE0NzYsMTAgKzE3ODgsMTIgQEAKIGRlZiB0ZXN0X21haW4oKToKICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdCgKICAgICAgICAgUmVmZXJlbmNlc1Rlc3RDYXNlLAorICAgICAgICBXZWFrTWV0aG9kVGVzdENhc2UsCiAgICAgICAgIE1hcHBpbmdUZXN0Q2FzZSwKICAgICAgICAgV2Vha1ZhbHVlRGljdGlvbmFyeVRlc3RDYXNlLAogICAgICAgICBXZWFrS2V5RGljdGlvbmFyeVRlc3RDYXNlLAogICAgICAgICBTdWJjbGFzc2FibGVXZWFrcmVmVGVzdENhc2UsCisgICAgICAgIEZpbmFsaXplVGVzdENhc2UsCiAgICAgICAgICkKICAgICBzdXBwb3J0LnJ1bl9kb2N0ZXN0KHN5cy5tb2R1bGVzW19fbmFtZV9fXSkKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF93aW5yZWcucHkgYi9MaWIvdGVzdC90ZXN0X3dpbnJlZy5weQppbmRleCBjYjRjZGU5Li5lZjRjZTU1IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3dpbnJlZy5weQorKysgYi9MaWIvdGVzdC90ZXN0X3dpbnJlZy5weQpAQCAtOCw3ICs4LDcgQEAKIGZyb20gcGxhdGZvcm0gaW1wb3J0IG1hY2hpbmUKIAogIyBEbyB0aGlzIGZpcnN0IHNvIHRlc3Qgd2lsbCBiZSBza2lwcGVkIGlmIG1vZHVsZSBkb2Vzbid0IGV4aXN0Ci1zdXBwb3J0LmltcG9ydF9tb2R1bGUoJ3dpbnJlZycpCitzdXBwb3J0LmltcG9ydF9tb2R1bGUoJ3dpbnJlZycsIHJlcXVpcmVkX29uPVsnd2luJ10pCiAjIE5vdyBpbXBvcnQgZXZlcnl0aGluZwogZnJvbSB3aW5yZWcgaW1wb3J0ICoKIApAQCAtNTcsMTMgKzU3LDEzIEBACiAgICAgZGVmIGRlbGV0ZV90cmVlKHNlbGYsIHJvb3QsIHN1YmtleSk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGhrZXkgPSBPcGVuS2V5KHJvb3QsIHN1YmtleSwgS0VZX0FMTF9BQ0NFU1MpCi0gICAgICAgIGV4Y2VwdCBXaW5kb3dzRXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgIyBzdWJrZXkgZG9lcyBub3QgZXhpc3QKICAgICAgICAgICAgIHJldHVybgogICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHN1YnN1YmtleSA9IEVudW1LZXkoaGtleSwgMCkKLSAgICAgICAgICAgIGV4Y2VwdCBXaW5kb3dzRXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAjIG5vIG1vcmUgc3Via2V5cwogICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICBzZWxmLmRlbGV0ZV90cmVlKGhrZXksIHN1YnN1YmtleSkKQEAgLTEwMCw3ICsxMDAsNyBAQAogICAgICAgICAgICAgUXVlcnlJbmZvS2V5KGludF9zdWJfa2V5KQogICAgICAgICAgICAgc2VsZi5mYWlsKCJJdCBhcHBlYXJzIHRoZSBDbG9zZUtleSgpIGZ1bmN0aW9uIGRvZXMgIgogICAgICAgICAgICAgICAgICAgICAgICJub3QgY2xvc2UgdGhlIGFjdHVhbCBrZXkhIikKLSAgICAgICAgZXhjZXB0IEVudmlyb25tZW50RXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgcGFzcwogICAgICAgICAjIC4uLiBhbmQgY2xvc2UgdGhhdCBrZXkgdGhhdCB3YXkgOi0pCiAgICAgICAgIGludF9rZXkgPSBpbnQoa2V5KQpAQCAtMTA5LDcgKzEwOSw3IEBACiAgICAgICAgICAgICBRdWVyeUluZm9LZXkoaW50X2tleSkKICAgICAgICAgICAgIHNlbGYuZmFpbCgiSXQgYXBwZWFycyB0aGUga2V5LkNsb3NlKCkgZnVuY3Rpb24gIgogICAgICAgICAgICAgICAgICAgICAgICJkb2VzIG5vdCBjbG9zZSB0aGUgYWN0dWFsIGtleSEiKQotICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAKICAgICBkZWYgX3JlYWRfdGVzdF9kYXRhKHNlbGYsIHJvb3Rfa2V5LCBzdWJrZXlzdHI9InN1Yl9rZXkiLCBPcGVuS2V5PU9wZW5LZXkpOgpAQCAtMTI2LDcgKzEyNiw3IEBACiAgICAgICAgICAgICB3aGlsZSAxOgogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IEVudW1WYWx1ZShzdWJfa2V5LCBpbmRleCkKLSAgICAgICAgICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvcjoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGEgaW4gdGVzdF9kYXRhLCBUcnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRpZG4ndCByZWFkIGJhY2sgdGhlIGNvcnJlY3QgdGVzdCBkYXRhIikKQEAgLTE0Nyw3ICsxNDcsNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBFbnVtS2V5KGtleSwgMSkKICAgICAgICAgICAgIHNlbGYuZmFpbCgiV2FzIGFibGUgdG8gZ2V0IGEgc2Vjb25kIGtleSB3aGVuIEkgb25seSBoYXZlIG9uZSEiKQotICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAKICAgICAgICAga2V5LkNsb3NlKCkKQEAgLTE3MSw3ICsxNzEsNyBAQAogICAgICAgICAgICAgIyBTaG91bGRudCBiZSBhYmxlIHRvIGRlbGV0ZSBpdCB0d2ljZSEKICAgICAgICAgICAgIERlbGV0ZUtleShrZXksIHN1YmtleXN0cikKICAgICAgICAgICAgIHNlbGYuZmFpbCgiRGVsZXRpbmcgdGhlIGtleSB0d2ljZSBzdWNjZWVkZWQiKQotICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGtleS5DbG9zZSgpCiAgICAgICAgIERlbGV0ZUtleShyb290X2tleSwgdGVzdF9rZXlfbmFtZSkKQEAgLTE3OSw3ICsxNzksNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBrZXkgPSBPcGVuS2V5KHJvb3Rfa2V5LCB0ZXN0X2tleV9uYW1lKQogICAgICAgICAgICAgc2VsZi5mYWlsKCJDb3VsZCBvcGVuIHRoZSBub24tZXhpc3RlbnQga2V5IikKLSAgICAgICAgZXhjZXB0IFdpbmRvd3NFcnJvcjogIyBVc2UgdGhpcyBlcnJvciBuYW1lIHRoaXMgdGltZQorICAgICAgICBleGNlcHQgT1NFcnJvcjogIyBVc2UgdGhpcyBlcnJvciBuYW1lIHRoaXMgdGltZQogICAgICAgICAgICAgcGFzcwogCiAgICAgZGVmIF90ZXN0X2FsbChzZWxmLCByb290X2tleSwgc3Via2V5c3RyPSJzdWJfa2V5Iik6CkBAIC0yMzAsNyArMjMwLDcgQEAKIAogICAgIGRlZiB0ZXN0X2luZXhpc3RhbnRfcmVtb3RlX3JlZ2lzdHJ5KHNlbGYpOgogICAgICAgICBjb25uZWN0ID0gbGFtYmRhOiBDb25uZWN0UmVnaXN0cnkoImFiY2RlZmdoaWprbCIsIEhLRVlfQ1VSUkVOVF9VU0VSKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhXaW5kb3dzRXJyb3IsIGNvbm5lY3QpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIGNvbm5lY3QpCiAKICAgICBkZWYgdGVzdEV4cGFuZEVudmlyb25tZW50U3RyaW5ncyhzZWxmKToKICAgICAgICAgciA9IEV4cGFuZEVudmlyb25tZW50U3RyaW5ncygiJXdpbmRpciVcXHRlc3QiKQpAQCAtMjQyLDggKzI0Miw4IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHdpdGggQ29ubmVjdFJlZ2lzdHJ5KE5vbmUsIEhLRVlfTE9DQUxfTUFDSElORSkgYXMgaDoKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGguaGFuZGxlLCAwKQotICAgICAgICAgICAgICAgIHJhaXNlIFdpbmRvd3NFcnJvcgotICAgICAgICBleGNlcHQgV2luZG93c0Vycm9yOgorICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguaGFuZGxlLCAwKQogCiAgICAgZGVmIHRlc3RfY2hhbmdpbmdfdmFsdWUoc2VsZik6CkBAIC00MDcsNyArNDA3LDcgQEAKICAgICAgICAgICAgICAgICBvcGVuX2ZhaWwgPSBsYW1iZGE6IE9wZW5LZXkoSEtFWV9DVVJSRU5UX1VTRVIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfcmVmbGVjdF9rZXlfbmFtZSwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS0VZX1JFQUQgfCBLRVlfV09XNjRfNjRLRVkpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoV2luZG93c0Vycm9yLCBvcGVuX2ZhaWwpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgb3Blbl9mYWlsKQogCiAgICAgICAgICAgICAjIE5vdyBleHBsaWNpdGx5IG9wZW4gdGhlIDY0LWJpdCB2ZXJzaW9uIG9mIHRoZSBrZXkKICAgICAgICAgICAgIHdpdGggT3BlbktleShIS0VZX0NVUlJFTlRfVVNFUiwgdGVzdF9yZWZsZWN0X2tleV9uYW1lLCAwLApAQCAtNDQ3LDcgKzQ0Nyw3IEBACiAgICAgICAgICAgICBvcGVuX2ZhaWwgPSBsYW1iZGE6IE9wZW5LZXlFeChIS0VZX0NVUlJFTlRfVVNFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfcmVmbGVjdF9rZXlfbmFtZSwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtFWV9SRUFEIHwgS0VZX1dPVzY0XzY0S0VZKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoV2luZG93c0Vycm9yLCBvcGVuX2ZhaWwpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBvcGVuX2ZhaWwpCiAKICAgICAgICAgICAgICMgTWFrZSBzdXJlIHRoZSAzMi1iaXQga2V5IGlzIGFjdHVhbGx5IHRoZXJlCiAgICAgICAgICAgICB3aXRoIE9wZW5LZXlFeChIS0VZX0NVUlJFTlRfVVNFUiwgdGVzdF9yZWZsZWN0X2tleV9uYW1lLCAwLApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF93aW5zb3VuZC5weSBiL0xpYi90ZXN0L3Rlc3Rfd2luc291bmQucHkKaW5kZXggZWI3Zjc1Zi4uNjFkODY0YSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF93aW5zb3VuZC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3dpbnNvdW5kLnB5CkBAIC0yMiw3ICsyMiw3IEBACiAgICAgICAgIGtleSA9IHdpbnJlZy5PcGVuS2V5RXgod2lucmVnLkhLRVlfQ1VSUkVOVF9VU0VSLAogICAgICAgICAgICAgICAgICJBcHBFdmVudHNcU2NoZW1lc1xBcHBzXC5EZWZhdWx0XHswfVwuRGVmYXVsdCIuZm9ybWF0KHNvdW5kKSkKICAgICAgICAgcmV0dXJuIHdpbnJlZy5FbnVtVmFsdWUoa2V5LCAwKVsxXSAhPSAiIgotICAgIGV4Y2VwdCBXaW5kb3dzRXJyb3I6CisgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgIHJldHVybiBGYWxzZQogCiBjbGFzcyBCZWVwVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3htbF9ldHJlZS5weSBiL0xpYi90ZXN0L3Rlc3RfeG1sX2V0cmVlLnB5CmluZGV4IDRhNTg2YmQuLjZjNWJmMDIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfeG1sX2V0cmVlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfeG1sX2V0cmVlLnB5CkBAIC0xMCw2ICsxMCw3IEBACiBpbXBvcnQgb3BlcmF0b3IKIGltcG9ydCBwaWNrbGUKIGltcG9ydCBzeXMKK2ltcG9ydCB0eXBlcwogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgd2Vha3JlZgogCkBAIC0yNDAsNyArMjQxLDYgQEAKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEVULlhNTCwgRVQuZnJvbXN0cmluZykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChFVC5QSSwgRVQuUHJvY2Vzc2luZ0luc3RydWN0aW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEVULlhNTFBhcnNlciwgRVQuWE1MVHJlZUJ1aWxkZXIpCiAKICAgICBkZWYgdGVzdF9zaW1wbGVvcHMoc2VsZik6CiAgICAgICAgICMgQmFzaWMgbWV0aG9kIHNhbml0eSBjaGVja3MuCkBAIC00MzMsMTUgKzQzMyw2IEBACiAgICAgICAgICAgICAgICAgJyAgIDxlbXB0eS1lbGVtZW50IC8+XG4nCiAgICAgICAgICAgICAgICAgJzwvcm9vdD4nKQogCi0gICAgICAgIHBhcnNlciA9IEVULlhNTFRyZWVCdWlsZGVyKCkgIyAxLjIgY29tcGF0aWJpbGl0eQotICAgICAgICBwYXJzZXIuZmVlZChkYXRhKQotICAgICAgICBzZWxmLnNlcmlhbGl6ZV9jaGVjayhwYXJzZXIuY2xvc2UoKSwKLSAgICAgICAgICAgICAgICAnPHJvb3Q+XG4nCi0gICAgICAgICAgICAgICAgJyAgIDxlbGVtZW50IGtleT0idmFsdWUiPnRleHQ8L2VsZW1lbnQ+XG4nCi0gICAgICAgICAgICAgICAgJyAgIDxlbGVtZW50PnRleHQ8L2VsZW1lbnQ+dGFpbFxuJwotICAgICAgICAgICAgICAgICcgICA8ZW1wdHktZWxlbWVudCAvPlxuJwotICAgICAgICAgICAgICAgICc8L3Jvb3Q+JykKLQogICAgICAgICB0YXJnZXQgPSBFVC5UcmVlQnVpbGRlcigpCiAgICAgICAgIHBhcnNlciA9IEVULlhNTFBhcnNlcih0YXJnZXQ9dGFyZ2V0KQogICAgICAgICBwYXJzZXIuZmVlZChkYXRhKQpAQCAtOTUyLDYgKzk0MywxNjkgQEAKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcmlhbGl6ZWQsIGV4cGVjdGVkKQogCiAKK2NsYXNzIEluY3JlbWVudGFsUGFyc2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgX2ZlZWQoc2VsZiwgcGFyc2VyLCBkYXRhLCBjaHVua19zaXplPU5vbmUpOgorICAgICAgICBpZiBjaHVua19zaXplIGlzIE5vbmU6CisgICAgICAgICAgICBwYXJzZXIuZGF0YV9yZWNlaXZlZChkYXRhKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKGRhdGEpLCBjaHVua19zaXplKToKKyAgICAgICAgICAgICAgICBwYXJzZXIuZGF0YV9yZWNlaXZlZChkYXRhW2k6aStjaHVua19zaXplXSkKKworICAgIGRlZiBhc3NlcnRfZXZlbnRfdGFncyhzZWxmLCBwYXJzZXIsIGV4cGVjdGVkKToKKyAgICAgICAgZXZlbnRzID0gcGFyc2VyLmV2ZW50cygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyhhY3Rpb24sIGVsZW0udGFnKSBmb3IgYWN0aW9uLCBlbGVtIGluIGV2ZW50c10sCisgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQpCisKKyAgICBkZWYgdGVzdF9zaW1wbGVfeG1sKHNlbGYpOgorICAgICAgICBmb3IgY2h1bmtfc2l6ZSBpbiAoTm9uZSwgMSwgNSk6CisgICAgICAgICAgICB3aXRoIHNlbGYuc3ViVGVzdChjaHVua19zaXplPWNodW5rX3NpemUpOgorICAgICAgICAgICAgICAgIHBhcnNlciA9IEVULkluY3JlbWVudGFsUGFyc2VyKCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydF9ldmVudF90YWdzKHBhcnNlciwgW10pCisgICAgICAgICAgICAgICAgc2VsZi5fZmVlZChwYXJzZXIsICI8IS0tIGNvbW1lbnQgLS0+XG4iLCBjaHVua19zaXplKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0X2V2ZW50X3RhZ3MocGFyc2VyLCBbXSkKKyAgICAgICAgICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICI8cm9vdD5cbiAgPGVsZW1lbnQga2V5PSd2YWx1ZSc+dGV4dDwvZWxlbWVudCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHVua19zaXplKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0X2V2ZW50X3RhZ3MocGFyc2VyLCBbXSkKKyAgICAgICAgICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIj5cbiIsIGNodW5rX3NpemUpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRfZXZlbnRfdGFncyhwYXJzZXIsIFsoJ2VuZCcsICdlbGVtZW50JyldKQorICAgICAgICAgICAgICAgIHNlbGYuX2ZlZWQocGFyc2VyLCAiPGVsZW1lbnQ+dGV4dDwvZWxlbWVudD50YWlsXG4iLCBjaHVua19zaXplKQorICAgICAgICAgICAgICAgIHNlbGYuX2ZlZWQocGFyc2VyLCAiPGVtcHR5LWVsZW1lbnQvPlxuIiwgY2h1bmtfc2l6ZSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydF9ldmVudF90YWdzKHBhcnNlciwgWworICAgICAgICAgICAgICAgICAgICAoJ2VuZCcsICdlbGVtZW50JyksCisgICAgICAgICAgICAgICAgICAgICgnZW5kJywgJ2VtcHR5LWVsZW1lbnQnKSwKKyAgICAgICAgICAgICAgICAgICAgXSkKKyAgICAgICAgICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIjwvcm9vdD5cbiIsIGNodW5rX3NpemUpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRfZXZlbnRfdGFncyhwYXJzZXIsIFsoJ2VuZCcsICdyb290JyldKQorICAgICAgICAgICAgICAgICMgUmVjZWl2aW5nIEVPRiBzZXRzIHRoZSBgcm9vdGAgYXR0cmlidXRlCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhwYXJzZXIucm9vdCwgTm9uZSkKKyAgICAgICAgICAgICAgICBwYXJzZXIuZW9mX3JlY2VpdmVkKCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlci5yb290LnRhZywgJ3Jvb3QnKQorCisgICAgZGVmIHRlc3RfZGF0YV9yZWNlaXZlZF93aGlsZV9pdGVyYXRpbmcoc2VsZik6CisgICAgICAgIHBhcnNlciA9IEVULkluY3JlbWVudGFsUGFyc2VyKCkKKyAgICAgICAgaXQgPSBwYXJzZXIuZXZlbnRzKCkKKyAgICAgICAgc2VsZi5fZmVlZChwYXJzZXIsICI8cm9vdD5cbiAgPGVsZW1lbnQga2V5PSd2YWx1ZSc+dGV4dDwvZWxlbWVudD5cbiIpCisgICAgICAgIGFjdGlvbiwgZWxlbSA9IG5leHQoaXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKGFjdGlvbiwgZWxlbS50YWcpLCAoJ2VuZCcsICdlbGVtZW50JykpCisgICAgICAgIHNlbGYuX2ZlZWQocGFyc2VyLCAiPC9yb290PlxuIikKKyAgICAgICAgYWN0aW9uLCBlbGVtID0gbmV4dChpdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoYWN0aW9uLCBlbGVtLnRhZyksICgnZW5kJywgJ3Jvb3QnKSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTdG9wSXRlcmF0aW9uKToKKyAgICAgICAgICAgIG5leHQoaXQpCisKKyAgICBkZWYgdGVzdF9zaW1wbGVfeG1sX3dpdGhfbnMoc2VsZik6CisgICAgICAgIHBhcnNlciA9IEVULkluY3JlbWVudGFsUGFyc2VyKCkKKyAgICAgICAgc2VsZi5hc3NlcnRfZXZlbnRfdGFncyhwYXJzZXIsIFtdKQorICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIjwhLS0gY29tbWVudCAtLT5cbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V2ZW50X3RhZ3MocGFyc2VyLCBbXSkKKyAgICAgICAgc2VsZi5fZmVlZChwYXJzZXIsICI8cm9vdCB4bWxucz0nbmFtZXNwYWNlJz5cbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V2ZW50X3RhZ3MocGFyc2VyLCBbXSkKKyAgICAgICAgc2VsZi5fZmVlZChwYXJzZXIsICI8ZWxlbWVudCBrZXk9J3ZhbHVlJz50ZXh0PC9lbGVtZW50IikKKyAgICAgICAgc2VsZi5hc3NlcnRfZXZlbnRfdGFncyhwYXJzZXIsIFtdKQorICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIj5cbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V2ZW50X3RhZ3MocGFyc2VyLCBbKCdlbmQnLCAne25hbWVzcGFjZX1lbGVtZW50JyldKQorICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIjxlbGVtZW50PnRleHQ8L2VsZW1lbnQ+dGFpbFxuIikKKyAgICAgICAgc2VsZi5fZmVlZChwYXJzZXIsICI8ZW1wdHktZWxlbWVudC8+XG4iKQorICAgICAgICBzZWxmLmFzc2VydF9ldmVudF90YWdzKHBhcnNlciwgWworICAgICAgICAgICAgKCdlbmQnLCAne25hbWVzcGFjZX1lbGVtZW50JyksCisgICAgICAgICAgICAoJ2VuZCcsICd7bmFtZXNwYWNlfWVtcHR5LWVsZW1lbnQnKSwKKyAgICAgICAgICAgIF0pCisgICAgICAgIHNlbGYuX2ZlZWQocGFyc2VyLCAiPC9yb290PlxuIikKKyAgICAgICAgc2VsZi5hc3NlcnRfZXZlbnRfdGFncyhwYXJzZXIsIFsoJ2VuZCcsICd7bmFtZXNwYWNlfXJvb3QnKV0pCisgICAgICAgICMgUmVjZWl2aW5nIEVPRiBzZXRzIHRoZSBgcm9vdGAgYXR0cmlidXRlCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocGFyc2VyLnJvb3QsIE5vbmUpCisgICAgICAgIHBhcnNlci5lb2ZfcmVjZWl2ZWQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlci5yb290LnRhZywgJ3tuYW1lc3BhY2V9cm9vdCcpCisKKyAgICBkZWYgdGVzdF9uc19ldmVudHMoc2VsZik6CisgICAgICAgIHBhcnNlciA9IEVULkluY3JlbWVudGFsUGFyc2VyKGV2ZW50cz0oJ3N0YXJ0LW5zJywgJ2VuZC1ucycpKQorICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIjwhLS0gY29tbWVudCAtLT5cbiIpCisgICAgICAgIHNlbGYuX2ZlZWQocGFyc2VyLCAiPHJvb3QgeG1sbnM9J25hbWVzcGFjZSc+XG4iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgbGlzdChwYXJzZXIuZXZlbnRzKCkpLAorICAgICAgICAgICAgWygnc3RhcnQtbnMnLCAoJycsICduYW1lc3BhY2UnKSldKQorICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIjxlbGVtZW50IGtleT0ndmFsdWUnPnRleHQ8L2VsZW1lbnQiKQorICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIj5cbiIpCisgICAgICAgIHNlbGYuX2ZlZWQocGFyc2VyLCAiPGVsZW1lbnQ+dGV4dDwvZWxlbWVudD50YWlsXG4iKQorICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIjxlbXB0eS1lbGVtZW50Lz5cbiIpCisgICAgICAgIHNlbGYuX2ZlZWQocGFyc2VyLCAiPC9yb290PlxuIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHBhcnNlci5ldmVudHMoKSksIFsoJ2VuZC1ucycsIE5vbmUpXSkKKyAgICAgICAgcGFyc2VyLmVvZl9yZWNlaXZlZCgpCisKKyAgICBkZWYgdGVzdF9ldmVudHMoc2VsZik6CisgICAgICAgIHBhcnNlciA9IEVULkluY3JlbWVudGFsUGFyc2VyKGV2ZW50cz0oKSkKKyAgICAgICAgc2VsZi5fZmVlZChwYXJzZXIsICI8cm9vdC8+XG4iKQorICAgICAgICBzZWxmLmFzc2VydF9ldmVudF90YWdzKHBhcnNlciwgW10pCisKKyAgICAgICAgcGFyc2VyID0gRVQuSW5jcmVtZW50YWxQYXJzZXIoZXZlbnRzPSgnc3RhcnQnLCAnZW5kJykpCisgICAgICAgIHNlbGYuX2ZlZWQocGFyc2VyLCAiPCEtLSBjb21tZW50IC0tPlxuIikKKyAgICAgICAgc2VsZi5hc3NlcnRfZXZlbnRfdGFncyhwYXJzZXIsIFtdKQorICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIjxyb290PlxuIikKKyAgICAgICAgc2VsZi5hc3NlcnRfZXZlbnRfdGFncyhwYXJzZXIsIFsoJ3N0YXJ0JywgJ3Jvb3QnKV0pCisgICAgICAgIHNlbGYuX2ZlZWQocGFyc2VyLCAiPGVsZW1lbnQga2V5PSd2YWx1ZSc+dGV4dDwvZWxlbWVudCIpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V2ZW50X3RhZ3MocGFyc2VyLCBbKCdzdGFydCcsICdlbGVtZW50JyldKQorICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIj5cbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V2ZW50X3RhZ3MocGFyc2VyLCBbKCdlbmQnLCAnZWxlbWVudCcpXSkKKyAgICAgICAgc2VsZi5fZmVlZChwYXJzZXIsCisgICAgICAgICAgICAgICAgICAgIjxlbGVtZW50IHhtbG5zPSdmb28nPnRleHQ8ZW1wdHktZWxlbWVudC8+PC9lbGVtZW50PnRhaWxcbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V2ZW50X3RhZ3MocGFyc2VyLCBbCisgICAgICAgICAgICAoJ3N0YXJ0JywgJ3tmb299ZWxlbWVudCcpLAorICAgICAgICAgICAgKCdzdGFydCcsICd7Zm9vfWVtcHR5LWVsZW1lbnQnKSwKKyAgICAgICAgICAgICgnZW5kJywgJ3tmb299ZW1wdHktZWxlbWVudCcpLAorICAgICAgICAgICAgKCdlbmQnLCAne2Zvb31lbGVtZW50JyksCisgICAgICAgICAgICBdKQorICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIjwvcm9vdD4iKQorICAgICAgICBwYXJzZXIuZW9mX3JlY2VpdmVkKCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhwYXJzZXIucm9vdCwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRfZXZlbnRfdGFncyhwYXJzZXIsIFsoJ2VuZCcsICdyb290JyldKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlci5yb290LnRhZywgJ3Jvb3QnKQorCisgICAgICAgIHBhcnNlciA9IEVULkluY3JlbWVudGFsUGFyc2VyKGV2ZW50cz0oJ3N0YXJ0JywpKQorICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIjwhLS0gY29tbWVudCAtLT5cbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V2ZW50X3RhZ3MocGFyc2VyLCBbXSkKKyAgICAgICAgc2VsZi5fZmVlZChwYXJzZXIsICI8cm9vdD5cbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V2ZW50X3RhZ3MocGFyc2VyLCBbKCdzdGFydCcsICdyb290JyldKQorICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIjxlbGVtZW50IGtleT0ndmFsdWUnPnRleHQ8L2VsZW1lbnQiKQorICAgICAgICBzZWxmLmFzc2VydF9ldmVudF90YWdzKHBhcnNlciwgWygnc3RhcnQnLCAnZWxlbWVudCcpXSkKKyAgICAgICAgc2VsZi5fZmVlZChwYXJzZXIsICI+XG4iKQorICAgICAgICBzZWxmLmFzc2VydF9ldmVudF90YWdzKHBhcnNlciwgW10pCisgICAgICAgIHNlbGYuX2ZlZWQocGFyc2VyLAorICAgICAgICAgICAgICAgICAgICI8ZWxlbWVudCB4bWxucz0nZm9vJz50ZXh0PGVtcHR5LWVsZW1lbnQvPjwvZWxlbWVudD50YWlsXG4iKQorICAgICAgICBzZWxmLmFzc2VydF9ldmVudF90YWdzKHBhcnNlciwgWworICAgICAgICAgICAgKCdzdGFydCcsICd7Zm9vfWVsZW1lbnQnKSwKKyAgICAgICAgICAgICgnc3RhcnQnLCAne2Zvb31lbXB0eS1lbGVtZW50JyksCisgICAgICAgICAgICBdKQorICAgICAgICBzZWxmLl9mZWVkKHBhcnNlciwgIjwvcm9vdD4iKQorICAgICAgICBwYXJzZXIuZW9mX3JlY2VpdmVkKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJzZXIucm9vdC50YWcsICdyb290JykKKworICAgIGRlZiB0ZXN0X2V2ZW50c19zZXF1ZW5jZShzZWxmKToKKyAgICAgICAgIyBUZXN0IHRoYXQgZXZlbnRzIGNhbiBiZSBzb21lIHNlcXVlbmNlIHRoYXQncyBub3QganVzdCBhIHR1cGxlIG9yIGxpc3QKKyAgICAgICAgZXZlbnRzZXQgPSB7J2VuZCcsICdzdGFydCd9CisgICAgICAgIHBhcnNlciA9IEVULkluY3JlbWVudGFsUGFyc2VyKGV2ZW50cz1ldmVudHNldCkKKyAgICAgICAgc2VsZi5fZmVlZChwYXJzZXIsICI8Zm9vPmJhcjwvZm9vPiIpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V2ZW50X3RhZ3MocGFyc2VyLCBbKCdzdGFydCcsICdmb28nKSwgKCdlbmQnLCAnZm9vJyldKQorCisgICAgICAgIGNsYXNzIER1bW15SXRlcjoKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLmV2ZW50cyA9IGl0ZXIoWydzdGFydCcsICdlbmQnLCAnc3RhcnQtbnMnXSkKKyAgICAgICAgICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICAgICAgZGVmIF9fbmV4dF9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBuZXh0KHNlbGYuZXZlbnRzKQorCisgICAgICAgIHBhcnNlciA9IEVULkluY3JlbWVudGFsUGFyc2VyKGV2ZW50cz1EdW1teUl0ZXIoKSkKKyAgICAgICAgc2VsZi5fZmVlZChwYXJzZXIsICI8Zm9vPmJhcjwvZm9vPiIpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V2ZW50X3RhZ3MocGFyc2VyLCBbKCdzdGFydCcsICdmb28nKSwgKCdlbmQnLCAnZm9vJyldKQorCisKKyAgICBkZWYgdGVzdF91bmtub3duX2V2ZW50KHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgRVQuSW5jcmVtZW50YWxQYXJzZXIoZXZlbnRzPSgnc3RhcnQnLCAnZW5kJywgJ2JvZ3VzJykpCisKKwogIwogIyB4aW5jbHVkZSB0ZXN0cyAoc2FtcGxlcyBmcm9tIGFwcGVuZGl4IEMgb2YgdGhlIHhpbmNsdWRlIHNwZWNpZmljYXRpb24pCiAKQEAgLTEyOTMsNyArMTQ0Nyw3IEBACiAgICAgICAgICMgRG9uJ3QgY3Jhc2ggd2hlbiB1c2luZyBjdXN0b20gZW50aXRpZXMuCiAKICAgICAgICAgRU5USVRJRVMgPSB7J3JzcXVvJzogJ1x1MjAxOScsICdsc3F1byc6ICdcdTIwMTgnfQotICAgICAgICBwYXJzZXIgPSBFVC5YTUxUcmVlQnVpbGRlcigpCisgICAgICAgIHBhcnNlciA9IEVULlhNTFBhcnNlcigpCiAgICAgICAgIHBhcnNlci5lbnRpdHkudXBkYXRlKEVOVElUSUVTKQogICAgICAgICBwYXJzZXIuZmVlZCgiIiI8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgogPCFET0NUWVBFIHBhdGVudC1hcHBsaWNhdGlvbi1wdWJsaWNhdGlvbiBTWVNURU0gInBhcC12MTUtMjAwMS0wMS0zMS5kdGQiIFtdPgpAQCAtMTQ1NSw2ICsxNjA5LDcgQEAKICAgICAgICAgRVQucmVnaXN0ZXJfbmFtZXNwYWNlKCd0ZXN0MTA3NzcnLCAnaHR0cDovL215dXJpLycpCiAgICAgICAgIEVULnJlZ2lzdGVyX25hbWVzcGFjZSgndGVzdDEwNzc3JywgJ2h0dHA6Ly9teXVyaS8nKQogCisKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogCkBAIC0xNjE4LDYgKzE3NzMsMTEgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmZpbmQoJy4vdGFnW2xhc3QoKS0xXScpLmF0dHJpYlsnY2xhc3MnXSwgJ2MnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUuZmluZCgnLi90YWdbbGFzdCgpLTJdJykuYXR0cmliWydjbGFzcyddLCAnYicpCiAKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNSZWdleChTeW50YXhFcnJvciwgJ1hQYXRoJywgZS5maW5kLCAnLi90YWdbMF0nKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFN5bnRheEVycm9yLCAnWFBhdGgnLCBlLmZpbmQsICcuL3RhZ1stMV0nKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFN5bnRheEVycm9yLCAnWFBhdGgnLCBlLmZpbmQsICcuL3RhZ1tsYXN0KCktMF0nKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFN5bnRheEVycm9yLCAnWFBhdGgnLCBlLmZpbmQsICcuL3RhZ1tsYXN0KCkrMV0nKQorCiAgICAgZGVmIHRlc3RfZmluZGFsbChzZWxmKToKICAgICAgICAgZSA9IEVULlhNTChTQU1QTEVfWE1MKQogICAgICAgICBlWzJdID0gRVQuWE1MKFNBTVBMRV9TRUNUSU9OKQpAQCAtMTg2Myw3ICsyMDIzLDcgQEAKICAgICAgICAgIyBNaW1pY2sgU2ltcGxlVEFMJ3MgYmVoYXZpb3VyIChpc3N1ZSAjMTYwODkpOiBib3RoIHZlcnNpb25zIG9mCiAgICAgICAgICMgVHJlZUJ1aWxkZXIgc2hvdWxkIGJlIGFibGUgdG8gY29wZSB3aXRoIGEgc3ViY2xhc3Mgb2YgdGhlCiAgICAgICAgICMgcHVyZSBQeXRob24gRWxlbWVudCBjbGFzcy4KLSAgICAgICAgYmFzZSA9IEVULl9FbGVtZW50CisgICAgICAgIGJhc2UgPSBFVC5fRWxlbWVudF9QeQogICAgICAgICAjIE5vdCBmcm9tIGEgQyBleHRlbnNpb24KICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiYXNlLl9fbW9kdWxlX18sICd4bWwuZXRyZWUuRWxlbWVudFRyZWUnKQogICAgICAgICAjIEZvcmNlIHNvbWUgbXVsdGlwbGUgaW5oZXJpdGFuY2Ugd2l0aCBhIEMgY2xhc3MgdG8gbWFrZSB0aGluZ3MKQEAgLTIyMjIsNiArMjM4MiwxOCBAQAogICAgICAgICAgICAgRVQudG9zdHJpbmcocm9vdCwgJ3V0Zi0xNicpLAogICAgICAgICAgICAgYicnLmpvaW4oRVQudG9zdHJpbmdsaXN0KHJvb3QsICd1dGYtMTYnKSkpCiAKKyAgICBkZWYgdGVzdF9zaG9ydF9lbXB0eV9lbGVtZW50cyhzZWxmKToKKyAgICAgICAgcm9vdCA9IEVULmZyb21zdHJpbmcoJzx0YWc+YTx4IC8+Yjx5PjwveT5jPC90YWc+JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIEVULnRvc3RyaW5nKHJvb3QsICd1bmljb2RlJyksCisgICAgICAgICAgICAnPHRhZz5hPHggLz5iPHkgLz5jPC90YWc+JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIEVULnRvc3RyaW5nKHJvb3QsICd1bmljb2RlJywgc2hvcnRfZW1wdHlfZWxlbWVudHM9VHJ1ZSksCisgICAgICAgICAgICAnPHRhZz5hPHggLz5iPHkgLz5jPC90YWc+JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIEVULnRvc3RyaW5nKHJvb3QsICd1bmljb2RlJywgc2hvcnRfZW1wdHlfZWxlbWVudHM9RmFsc2UpLAorICAgICAgICAgICAgJzx0YWc+YTx4PjwveD5iPHk+PC95PmM8L3RhZz4nKQorCiAKIGNsYXNzIFBhcnNlRXJyb3JUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9zdWJjbGFzcyhzZWxmKToKQEAgLTIyODcsOCArMjQ1OSwxMSBAQAogCiAgICAgIyBUZXN0IHRoYXQgdGhlIEMgYWNjZWxlcmF0b3Igd2FzIG5vdCBpbXBvcnRlZCBmb3IgcHlFVAogICAgIGRlZiB0ZXN0X2NvcnJlY3RfaW1wb3J0X3B5RVQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHlFVC5FbGVtZW50Ll9fbW9kdWxlX18sICd4bWwuZXRyZWUuRWxlbWVudFRyZWUnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB5RVQuU3ViRWxlbWVudC5fX21vZHVsZV9fLCAneG1sLmV0cmVlLkVsZW1lbnRUcmVlJykKKyAgICAgICAgIyBUaGUgdHlwZSBvZiBtZXRob2RzIGRlZmluZWQgaW4gUHl0aG9uIGNvZGUgaXMgdHlwZXMuRnVuY3Rpb25UeXBlLAorICAgICAgICAjIHdoaWxlIHRoZSB0eXBlIG9mIG1ldGhvZHMgZGVmaW5lZCBpbnNpZGUgX2VsZW1lbnR0cmVlIGlzCisgICAgICAgICMgPGNsYXNzICd3cmFwcGVyX2Rlc2NyaXB0b3InPgorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UocHlFVC5FbGVtZW50Ll9faW5pdF9fLCB0eXBlcy5GdW5jdGlvblR5cGUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShweUVULlhNTFBhcnNlci5fX2luaXRfXywgdHlwZXMuRnVuY3Rpb25UeXBlKQogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTIzNTAsNiArMjUyNSw3IEBACiAgICAgICAgIEVsZW1lbnRTbGljaW5nVGVzdCwKICAgICAgICAgQmFzaWNFbGVtZW50VGVzdCwKICAgICAgICAgRWxlbWVudFRyZWVUZXN0LAorICAgICAgICBJbmNyZW1lbnRhbFBhcnNlclRlc3QsCiAgICAgICAgIElPVGVzdCwKICAgICAgICAgUGFyc2VFcnJvclRlc3QsCiAgICAgICAgIFhJbmNsdWRlVGVzdCwKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfeG1sX2V0cmVlX2MucHkgYi9MaWIvdGVzdC90ZXN0X3htbF9ldHJlZV9jLnB5CmluZGV4IGJjYWE3MjQuLmIzZmY3YWUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfeG1sX2V0cmVlX2MucHkKKysrIGIvTGliL3Rlc3QvdGVzdF94bWxfZXRyZWVfYy5weQpAQCAtMiw2ICsyLDcgQEAKIGltcG9ydCBzeXMsIHN0cnVjdAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgaW1wb3J0X2ZyZXNoX21vZHVsZQoraW1wb3J0IHR5cGVzCiBpbXBvcnQgdW5pdHRlc3QKIAogY0VUID0gaW1wb3J0X2ZyZXNoX21vZHVsZSgneG1sLmV0cmVlLkVsZW1lbnRUcmVlJywKQEAgLTMzLDE0ICszNCwyMiBAQAogCiAKIEB1bml0dGVzdC5za2lwVW5sZXNzKGNFVCwgJ3JlcXVpcmVzIF9lbGVtZW50dHJlZScpCitAc3VwcG9ydC5jcHl0aG9uX29ubHkKIGNsYXNzIFRlc3RBY2NlbGVyYXRvckltcG9ydGVkKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAjIFRlc3QgdGhhdCB0aGUgQyBhY2NlbGVyYXRvciB3YXMgaW1wb3J0ZWQsIGFzIGV4cGVjdGVkCiAgICAgZGVmIHRlc3RfY29ycmVjdF9pbXBvcnRfY0VUKHNlbGYpOgorICAgICAgICAjIFN1YkVsZW1lbnQgaXMgYSBmdW5jdGlvbiBzbyBpdCByZXRhaW5zIF9lbGVtZW50dHJlZSBhcyBpdHMgbW9kdWxlLgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNFVC5TdWJFbGVtZW50Ll9fbW9kdWxlX18sICdfZWxlbWVudHRyZWUnKQogCiAgICAgZGVmIHRlc3RfY29ycmVjdF9pbXBvcnRfY0VUX2FsaWFzKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNFVF9hbGlhcy5TdWJFbGVtZW50Ll9fbW9kdWxlX18sICdfZWxlbWVudHRyZWUnKQogCisgICAgZGVmIHRlc3RfcGFyc2VyX2NvbWVzX2Zyb21fQyhzZWxmKToKKyAgICAgICAgIyBUaGUgdHlwZSBvZiBtZXRob2RzIGRlZmluZWQgaW4gUHl0aG9uIGNvZGUgaXMgdHlwZXMuRnVuY3Rpb25UeXBlLAorICAgICAgICAjIHdoaWxlIHRoZSB0eXBlIG9mIG1ldGhvZHMgZGVmaW5lZCBpbnNpZGUgX2VsZW1lbnR0cmVlIGlzCisgICAgICAgICMgPGNsYXNzICd3cmFwcGVyX2Rlc2NyaXB0b3InPgorICAgICAgICBzZWxmLmFzc2VydE5vdElzSW5zdGFuY2UoY0VULkVsZW1lbnQuX19pbml0X18sIHR5cGVzLkZ1bmN0aW9uVHlwZSkKKwogCiBAdW5pdHRlc3Quc2tpcFVubGVzcyhjRVQsICdyZXF1aXJlcyBfZWxlbWVudHRyZWUnKQogQHN1cHBvcnQuY3B5dGhvbl9vbmx5CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3htbHJwYy5weSBiL0xpYi90ZXN0L3Rlc3RfeG1scnBjLnB5CmluZGV4IDE2Zjg1YzUuLjgxN2NiZDggMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfeG1scnBjLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfeG1scnBjLnB5CkBAIC0yMTUsNyArMjE1LDcgQEAKICAgICAgICAgICAgIHhtbHJwYy5jbGllbnQuU2VydmVyUHJveHkoJ2h0dHBzOi8vbG9jYWxob3N0Ojk5OTknKS5iYWRfZnVuY3Rpb24oKQogICAgICAgICBleGNlcHQgTm90SW1wbGVtZW50ZWRFcnJvcjoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzX3NzbCwgInhtbHJwYyBjbGllbnQncyBlcnJvciB3aXRoIFNTTCBzdXBwb3J0IikKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFzX3NzbCkKIAogY2xhc3MgSGVscGVyVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtNDkyLDcgKzQ5Miw3IEBACiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICBleGNfbWVzcyA9IGUuaGVhZGVycy5nZXQoJ1gtZXhjZXB0aW9uJykKICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICMgSWdub3JlIHNvY2tldC5lcnJvcnMgaGVyZS4KKyAgICAgICAgIyBJZ25vcmUgT1NFcnJvcnMgaGVyZS4KICAgICAgICAgZXhjX21lc3MgPSBzdHIoZSkKIAogICAgIGlmIGV4Y19tZXNzIGFuZCAndGVtcG9yYXJpbHkgdW5hdmFpbGFibGUnIGluIGV4Y19tZXNzLmxvd2VyKCk6CkBAIC01MDcsNyArNTA3LDcgQEAKICAgICAgICAgZGVmIG1ha2VfcmVxdWVzdF9hbmRfc2tpcChzZWxmKToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICB4bWxycGNsaWIuU2VydmVyUHJveHkoVVJMKS5teV9mdW5jdGlvbigpCi0gICAgICAgICAgICBleGNlcHQgKHhtbHJwY2xpYi5Qcm90b2NvbEVycm9yLCBzb2NrZXQuZXJyb3IpIGFzIGU6CisgICAgICAgICAgICBleGNlcHQgKHhtbHJwY2xpYi5Qcm90b2NvbEVycm9yLCBPU0Vycm9yKSBhcyBlOgogICAgICAgICAgICAgICAgIGlmIG5vdCBpc191bmF2YWlsYWJsZV9leGNlcHRpb24oZSk6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICByYWlzZSB1bml0dGVzdC5Ta2lwVGVzdChyZWFzb24pCkBAIC01NDUsNyArNTQ1LDcgQEAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcCA9IHhtbHJwY2xpYi5TZXJ2ZXJQcm94eShVUkwpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAucG93KDYsOCksIDYqKjgpCi0gICAgICAgIGV4Y2VwdCAoeG1scnBjbGliLlByb3RvY29sRXJyb3IsIHNvY2tldC5lcnJvcikgYXMgZToKKyAgICAgICAgZXhjZXB0ICh4bWxycGNsaWIuUHJvdG9jb2xFcnJvciwgT1NFcnJvcikgYXMgZToKICAgICAgICAgICAgICMgaWdub3JlIGZhaWx1cmVzIGR1ZSB0byBub24tYmxvY2tpbmcgc29ja2V0ICd1bmF2YWlsYWJsZScgZXJyb3JzCiAgICAgICAgICAgICBpZiBub3QgaXNfdW5hdmFpbGFibGVfZXhjZXB0aW9uKGUpOgogICAgICAgICAgICAgICAgICMgcHJvdG9jb2wgZXJyb3I7IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpbiB0ZXN0IG91dHB1dApAQCAtNTU4LDcgKzU1OCw3IEBACiAgICAgICAgICAgICBwID0geG1scnBjbGliLlNlcnZlclByb3h5KFVSTCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5hZGQoc3RhcnRfc3RyaW5nLCBlbmRfc3RyaW5nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfc3RyaW5nICsgZW5kX3N0cmluZykKLSAgICAgICAgZXhjZXB0ICh4bWxycGNsaWIuUHJvdG9jb2xFcnJvciwgc29ja2V0LmVycm9yKSBhcyBlOgorICAgICAgICBleGNlcHQgKHhtbHJwY2xpYi5Qcm90b2NvbEVycm9yLCBPU0Vycm9yKSBhcyBlOgogICAgICAgICAgICAgIyBpZ25vcmUgZmFpbHVyZXMgZHVlIHRvIG5vbi1ibG9ja2luZyBzb2NrZXQgJ3VuYXZhaWxhYmxlJyBlcnJvcnMKICAgICAgICAgICAgIGlmIG5vdCBpc191bmF2YWlsYWJsZV9leGNlcHRpb24oZSk6CiAgICAgICAgICAgICAgICAgIyBwcm90b2NvbCBlcnJvcjsgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGluIHRlc3Qgb3V0cHV0CkBAIC01ODQsNyArNTg0LDcgQEAKICAgICAgICAgICAgIHAgPSB4bWxycGNsaWIuU2VydmVyUHJveHkoVVJMKQogICAgICAgICAgICAgbWV0aCA9IHAuc3lzdGVtLmxpc3RNZXRob2RzKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KG1ldGgpLCBleHBlY3RlZF9tZXRob2RzKQotICAgICAgICBleGNlcHQgKHhtbHJwY2xpYi5Qcm90b2NvbEVycm9yLCBzb2NrZXQuZXJyb3IpIGFzIGU6CisgICAgICAgIGV4Y2VwdCAoeG1scnBjbGliLlByb3RvY29sRXJyb3IsIE9TRXJyb3IpIGFzIGU6CiAgICAgICAgICAgICAjIGlnbm9yZSBmYWlsdXJlcyBkdWUgdG8gbm9uLWJsb2NraW5nIHNvY2tldCAndW5hdmFpbGFibGUnIGVycm9ycwogICAgICAgICAgICAgaWYgbm90IGlzX3VuYXZhaWxhYmxlX2V4Y2VwdGlvbihlKToKICAgICAgICAgICAgICAgICAjIHByb3RvY29sIGVycm9yOyBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaW4gdGVzdCBvdXRwdXQKQEAgLTU5Nyw3ICs1OTcsNyBAQAogICAgICAgICAgICAgcCA9IHhtbHJwY2xpYi5TZXJ2ZXJQcm94eShVUkwpCiAgICAgICAgICAgICBkaXZoZWxwID0gcC5zeXN0ZW0ubWV0aG9kSGVscCgnZGl2JykKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGl2aGVscCwgJ1RoaXMgaXMgdGhlIGRpdiBmdW5jdGlvbicpCi0gICAgICAgIGV4Y2VwdCAoeG1scnBjbGliLlByb3RvY29sRXJyb3IsIHNvY2tldC5lcnJvcikgYXMgZToKKyAgICAgICAgZXhjZXB0ICh4bWxycGNsaWIuUHJvdG9jb2xFcnJvciwgT1NFcnJvcikgYXMgZToKICAgICAgICAgICAgICMgaWdub3JlIGZhaWx1cmVzIGR1ZSB0byBub24tYmxvY2tpbmcgc29ja2V0ICd1bmF2YWlsYWJsZScgZXJyb3JzCiAgICAgICAgICAgICBpZiBub3QgaXNfdW5hdmFpbGFibGVfZXhjZXB0aW9uKGUpOgogICAgICAgICAgICAgICAgICMgcHJvdG9jb2wgZXJyb3I7IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpbiB0ZXN0IG91dHB1dApAQCAtNjExLDcgKzYxMSw3IEBACiAgICAgICAgICAgICBwID0geG1scnBjbGliLlNlcnZlclByb3h5KFVSTCkKICAgICAgICAgICAgIG15ZnVuY3Rpb24gPSBwLnN5c3RlbS5tZXRob2RIZWxwKCdteV9mdW5jdGlvbicpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG15ZnVuY3Rpb24sICdUaGlzIGlzIG15IGZ1bmN0aW9uJykKLSAgICAgICAgZXhjZXB0ICh4bWxycGNsaWIuUHJvdG9jb2xFcnJvciwgc29ja2V0LmVycm9yKSBhcyBlOgorICAgICAgICBleGNlcHQgKHhtbHJwY2xpYi5Qcm90b2NvbEVycm9yLCBPU0Vycm9yKSBhcyBlOgogICAgICAgICAgICAgIyBpZ25vcmUgZmFpbHVyZXMgZHVlIHRvIG5vbi1ibG9ja2luZyBzb2NrZXQgJ3VuYXZhaWxhYmxlJyBlcnJvcnMKICAgICAgICAgICAgIGlmIG5vdCBpc191bmF2YWlsYWJsZV9leGNlcHRpb24oZSk6CiAgICAgICAgICAgICAgICAgIyBwcm90b2NvbCBlcnJvcjsgcHJvdmlkZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGluIHRlc3Qgb3V0cHV0CkBAIC02MjQsNyArNjI0LDcgQEAKICAgICAgICAgICAgIHAgPSB4bWxycGNsaWIuU2VydmVyUHJveHkoVVJMKQogICAgICAgICAgICAgZGl2c2lnID0gcC5zeXN0ZW0ubWV0aG9kU2lnbmF0dXJlKCdkaXYnKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaXZzaWcsICdzaWduYXR1cmVzIG5vdCBzdXBwb3J0ZWQnKQotICAgICAgICBleGNlcHQgKHhtbHJwY2xpYi5Qcm90b2NvbEVycm9yLCBzb2NrZXQuZXJyb3IpIGFzIGU6CisgICAgICAgIGV4Y2VwdCAoeG1scnBjbGliLlByb3RvY29sRXJyb3IsIE9TRXJyb3IpIGFzIGU6CiAgICAgICAgICAgICAjIGlnbm9yZSBmYWlsdXJlcyBkdWUgdG8gbm9uLWJsb2NraW5nIHNvY2tldCAndW5hdmFpbGFibGUnIGVycm9ycwogICAgICAgICAgICAgaWYgbm90IGlzX3VuYXZhaWxhYmxlX2V4Y2VwdGlvbihlKToKICAgICAgICAgICAgICAgICAjIHByb3RvY29sIGVycm9yOyBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaW4gdGVzdCBvdXRwdXQKQEAgLTY0MSw3ICs2NDEsNyBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRfcmVzdWx0LCAyKzMpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvd19yZXN1bHQsIDYqKjgpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpdl9yZXN1bHQsIDEyNy8vNDIpCi0gICAgICAgIGV4Y2VwdCAoeG1scnBjbGliLlByb3RvY29sRXJyb3IsIHNvY2tldC5lcnJvcikgYXMgZToKKyAgICAgICAgZXhjZXB0ICh4bWxycGNsaWIuUHJvdG9jb2xFcnJvciwgT1NFcnJvcikgYXMgZToKICAgICAgICAgICAgICMgaWdub3JlIGZhaWx1cmVzIGR1ZSB0byBub24tYmxvY2tpbmcgc29ja2V0ICd1bmF2YWlsYWJsZScgZXJyb3JzCiAgICAgICAgICAgICBpZiBub3QgaXNfdW5hdmFpbGFibGVfZXhjZXB0aW9uKGUpOgogICAgICAgICAgICAgICAgICMgcHJvdG9jb2wgZXJyb3I7IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpbiB0ZXN0IG91dHB1dApAQCAtNjYyLDcgKzY2Miw3IEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdC5yZXN1bHRzWzBdWydmYXVsdFN0cmluZyddLAogICAgICAgICAgICAgICAgICc8Y2xhc3MgXCdFeGNlcHRpb25cJz46bWV0aG9kICJ0aGlzX2lzX25vdF9leGlzdHMiICcKICAgICAgICAgICAgICAgICAnaXMgbm90IHN1cHBvcnRlZCcpCi0gICAgICAgIGV4Y2VwdCAoeG1scnBjbGliLlByb3RvY29sRXJyb3IsIHNvY2tldC5lcnJvcikgYXMgZToKKyAgICAgICAgZXhjZXB0ICh4bWxycGNsaWIuUHJvdG9jb2xFcnJvciwgT1NFcnJvcikgYXMgZToKICAgICAgICAgICAgICMgaWdub3JlIGZhaWx1cmVzIGR1ZSB0byBub24tYmxvY2tpbmcgc29ja2V0ICd1bmF2YWlsYWJsZScgZXJyb3JzCiAgICAgICAgICAgICBpZiBub3QgaXNfdW5hdmFpbGFibGVfZXhjZXB0aW9uKGUpOgogICAgICAgICAgICAgICAgICMgcHJvdG9jb2wgZXJyb3I7IHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpbiB0ZXN0IG91dHB1dApAQCAtOTE1LDcgKzkxNSw3IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHAgPSB4bWxycGNsaWIuU2VydmVyUHJveHkoVVJMKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnBvdyg2LDgpLCA2Kio4KQotICAgICAgICBleGNlcHQgKHhtbHJwY2xpYi5Qcm90b2NvbEVycm9yLCBzb2NrZXQuZXJyb3IpIGFzIGU6CisgICAgICAgIGV4Y2VwdCAoeG1scnBjbGliLlByb3RvY29sRXJyb3IsIE9TRXJyb3IpIGFzIGU6CiAgICAgICAgICAgICAjIGlnbm9yZSBmYWlsdXJlcyBkdWUgdG8gbm9uLWJsb2NraW5nIHNvY2tldCAndW5hdmFpbGFibGUnIGVycm9ycwogICAgICAgICAgICAgaWYgbm90IGlzX3VuYXZhaWxhYmxlX2V4Y2VwdGlvbihlKToKICAgICAgICAgICAgICAgICAjIHByb3RvY29sIGVycm9yOyBwcm92aWRlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaW4gdGVzdCBvdXRwdXQKQEAgLTkyOCw3ICs5MjgsNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBwID0geG1scnBjbGliLlNlcnZlclByb3h5KFVSTCkKICAgICAgICAgICAgIHAucG93KDYsOCkKLSAgICAgICAgZXhjZXB0ICh4bWxycGNsaWIuUHJvdG9jb2xFcnJvciwgc29ja2V0LmVycm9yKSBhcyBlOgorICAgICAgICBleGNlcHQgKHhtbHJwY2xpYi5Qcm90b2NvbEVycm9yLCBPU0Vycm9yKSBhcyBlOgogICAgICAgICAgICAgIyBpZ25vcmUgZmFpbHVyZXMgZHVlIHRvIG5vbi1ibG9ja2luZyBzb2NrZXQgJ3VuYXZhaWxhYmxlJyBlcnJvcnMKICAgICAgICAgICAgIGlmIG5vdCBpc191bmF2YWlsYWJsZV9leGNlcHRpb24oZSkgYW5kIGhhc2F0dHIoZSwgImhlYWRlcnMiKToKICAgICAgICAgICAgICAgICAjIFRoZSB0d28gc2VydmVyLXNpZGUgZXJyb3IgaGVhZGVycyBzaG91bGRuJ3QgYmUgc2VudCBiYWNrIGluIHRoaXMgY2FzZQpAQCAtOTQ4LDcgKzk0OCw3IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHAgPSB4bWxycGNsaWIuU2VydmVyUHJveHkoVVJMKQogICAgICAgICAgICAgcC5wb3coNiw4KQotICAgICAgICBleGNlcHQgKHhtbHJwY2xpYi5Qcm90b2NvbEVycm9yLCBzb2NrZXQuZXJyb3IpIGFzIGU6CisgICAgICAgIGV4Y2VwdCAoeG1scnBjbGliLlByb3RvY29sRXJyb3IsIE9TRXJyb3IpIGFzIGU6CiAgICAgICAgICAgICAjIGlnbm9yZSBmYWlsdXJlcyBkdWUgdG8gbm9uLWJsb2NraW5nIHNvY2tldCAndW5hdmFpbGFibGUnIGVycm9ycwogICAgICAgICAgICAgaWYgbm90IGlzX3VuYXZhaWxhYmxlX2V4Y2VwdGlvbihlKSBhbmQgaGFzYXR0cihlLCAiaGVhZGVycyIpOgogICAgICAgICAgICAgICAgICMgV2Ugc2hvdWxkIGdldCBlcnJvciBpbmZvIGluIHRoZSByZXNwb25zZQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF94bWxycGNfbmV0LnB5IGIvTGliL3Rlc3QvdGVzdF94bWxycGNfbmV0LnB5CmluZGV4IGRmYjVmOWEuLjQ1N2UzZmIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfeG1scnBjX25ldC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3htbHJwY19uZXQucHkKQEAgLTE4LDcgKzE4LDcgQEAKICAgICAgICAgc2VydmVyID0geG1scnBjbGliLlNlcnZlclByb3h5KCJodHRwOi8vdGltZS54bWxycGMuY29tL1JQQzIiKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICB0MCA9IHNlcnZlci5jdXJyZW50VGltZS5nZXRDdXJyZW50VGltZSgpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoIm5ldHdvcmsgZXJyb3I6ICVzIiAlIGUpCiAgICAgICAgICAgICByZXR1cm4KIApAQCAtNDIsNyArNDIsNyBAQAogICAgICAgICBzZXJ2ZXIgPSB4bWxycGNsaWIuU2VydmVyUHJveHkoImh0dHA6Ly9idWlsZGJvdC5weXRob24ub3JnL2FsbC94bWxycGMvIikKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgYnVpbGRlcnMgPSBzZXJ2ZXIuZ2V0QWxsQnVpbGRlcnMoKQotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJuZXR3b3JrIGVycm9yOiAlcyIgJSBlKQogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIHNlbGYuYWRkQ2xlYW51cChsYW1iZGE6IHNlcnZlcignY2xvc2UnKSgpKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF96aXBmaWxlLnB5IGIvTGliL3Rlc3QvdGVzdF96aXBmaWxlLnB5CmluZGV4IDVlODM3Y2QuLjUyOWY3YjggMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfemlwZmlsZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3ppcGZpbGUucHkKQEAgLTEwNTAsNyArMTA1MCw3IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHdpdGggemlwZmlsZS5aaXBGaWxlKFRFU1RGTiwgJ2EnKSBhcyB6ZjoKICAgICAgICAgICAgICAgICB6Zi53cml0ZXN0cihmaWxlbmFtZSwgY29udGVudCkKLSAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgc2VsZi5mYWlsKCdDb3VsZCBub3QgYXBwZW5kIGRhdGEgdG8gYSBub24tZXhpc3RlbnQgemlwIGZpbGUuJykKIAogICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5leGlzdHMoVEVTVEZOKSkKQEAgLTExMzAsNyArMTEzMCw3IEBACiAgICAgICAgIGNoayA9IHppcGZpbGUuaXNfemlwZmlsZShmcCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNoaykKIAotICAgIGRlZiB0ZXN0X25vbl9leGlzdGVudF9maWxlX3JhaXNlc19JT0Vycm9yKHNlbGYpOgorICAgIGRlZiB0ZXN0X25vbl9leGlzdGVudF9maWxlX3JhaXNlc19PU0Vycm9yKHNlbGYpOgogICAgICAgICAjIG1ha2Ugc3VyZSB3ZSBkb24ndCByYWlzZSBhbiBBdHRyaWJ1dGVFcnJvciB3aGVuIGEgcGFydGlhbGx5LWNvbnN0cnVjdGVkCiAgICAgICAgICMgWmlwRmlsZSBpbnN0YW5jZSBpcyBmaW5hbGl6ZWQ7IHRoaXMgdGVzdHMgZm9yIHJlZ3Jlc3Npb24gb24gU0YgdHJhY2tlcgogICAgICAgICAjIGJ1ZyAjNDAzODcxLgpAQCAtMTE0Miw3ICsxMTQyLDcgQEAKICAgICAgICAgIyBpdCBpcyBpZ25vcmVkLCBidXQgdGhlIHVzZXIgc2hvdWxkIGJlIHN1ZmZpY2llbnRseSBhbm5veWVkIGJ5CiAgICAgICAgICMgdGhlIG1lc3NhZ2Ugb24gdGhlIG91dHB1dCB0aGF0IHJlZ3Jlc3Npb24gd2lsbCBiZSBub3RpY2VkCiAgICAgICAgICMgcXVpY2tseS4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgemlwZmlsZS5aaXBGaWxlLCBURVNURk4pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHppcGZpbGUuWmlwRmlsZSwgVEVTVEZOKQogCiAgICAgZGVmIHRlc3RfZW1wdHlfZmlsZV9yYWlzZXNfQmFkWmlwRmlsZShzZWxmKToKICAgICAgICAgZiA9IG9wZW4oVEVTVEZOLCAndycpCkBAIC0xNDE2LDcgKzE0MTYsNyBAQAogICAgIGRlZiB0ZXN0X29wZW5fZW1wdHlfZmlsZShzZWxmKToKICAgICAgICAgIyBJc3N1ZSAxNzEwNzAzOiBDaGVjayB0aGF0IG9wZW5pbmcgYSBmaWxlIHdpdGggbGVzcyB0aGFuIDIyIGJ5dGVzCiAgICAgICAgICMgcmFpc2VzIGEgQmFkWmlwRmlsZSBleGNlcHRpb24gKHJhdGhlciB0aGFuIHRoZSBwcmV2aW91c2x5IHVuaGVscGZ1bAotICAgICAgICAjIElPRXJyb3IpCisgICAgICAgICMgT1NFcnJvcikKICAgICAgICAgZiA9IG9wZW4oVEVTVEZOLCAndycpCiAgICAgICAgIGYuY2xvc2UoKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh6aXBmaWxlLkJhZFppcEZpbGUsIHppcGZpbGUuWmlwRmlsZSwgVEVTVEZOLCAncicpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3ppcGltcG9ydC5weSBiL0xpYi90ZXN0L3Rlc3RfemlwaW1wb3J0LnB5CmluZGV4IGY3Y2I4YjkuLmE2MGQzZTAgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfemlwaW1wb3J0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfemlwaW1wb3J0LnB5CkBAIC0xOTYsNiArMTk2LDcgQEAKICAgICAgICAgICAgIGZvciBuYW1lLCAobXRpbWUsIGRhdGEpIGluIGZpbGVzLml0ZW1zKCk6CiAgICAgICAgICAgICAgICAgemluZm8gPSBaaXBJbmZvKG5hbWUsIHRpbWUubG9jYWx0aW1lKG10aW1lKSkKICAgICAgICAgICAgICAgICB6aW5mby5jb21wcmVzc190eXBlID0gc2VsZi5jb21wcmVzc2lvbgorICAgICAgICAgICAgICAgIHppbmZvLmNvbW1lbnQgPSBiInNwYW0iCiAgICAgICAgICAgICAgICAgei53cml0ZXN0cih6aW5mbywgZGF0YSkKICAgICAgICAgICAgIHouY2xvc2UoKQogCkBAIC0yNDUsNiArMjQ2LDcgQEAKICAgICAgICAgICAgIGZvciBuYW1lLCAobXRpbWUsIGRhdGEpIGluIGZpbGVzLml0ZW1zKCk6CiAgICAgICAgICAgICAgICAgemluZm8gPSBaaXBJbmZvKG5hbWUsIHRpbWUubG9jYWx0aW1lKG10aW1lKSkKICAgICAgICAgICAgICAgICB6aW5mby5jb21wcmVzc190eXBlID0gc2VsZi5jb21wcmVzc2lvbgorICAgICAgICAgICAgICAgIHppbmZvLmNvbW1lbnQgPSBiImVnZ3MiCiAgICAgICAgICAgICAgICAgei53cml0ZXN0cih6aW5mbywgZGF0YSkKICAgICAgICAgICAgIHouY2xvc2UoKQogCkBAIC00NTksNyArNDYxLDcgQEAKIAogICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3IsIHoubG9hZF9tb2R1bGUsICdhYmMnKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3IsIHouZ2V0X2NvZGUsICdhYmMnKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgei5nZXRfZGF0YSwgJ2FiYycpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCB6LmdldF9kYXRhLCAnYWJjJykKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGVycm9yLCB6LmdldF9zb3VyY2UsICdhYmMnKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3IsIHouaXNfcGFja2FnZSwgJ2FiYycpCiAgICAgICAgIGZpbmFsbHk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90Zl9pbmhlcml0X2NoZWNrLnB5IGIvTGliL3Rlc3QvdGZfaW5oZXJpdF9jaGVjay5weQppbmRleCA5MmViZDk1Li5hZmU1MGQyIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90Zl9pbmhlcml0X2NoZWNrLnB5CisrKyBiL0xpYi90ZXN0L3RmX2luaGVyaXRfY2hlY2sucHkKQEAgLTExLDcgKzExLDcgQEAKIAogICAgIHRyeToKICAgICAgICAgb3Mud3JpdGUoZmQsIGIiYmxhdCIpCi0gICAgZXhjZXB0IG9zLmVycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAjIFN1Y2Nlc3MgLS0gY291bGQgbm90IHdyaXRlIHRvIGZkLgogICAgICAgICBzeXMuZXhpdCgwKQogICAgIGVsc2U6CmRpZmYgLS1naXQgYS9MaWIvdGhyZWFkaW5nLnB5IGIvTGliL3RocmVhZGluZy5weQppbmRleCBhYjkzMDJjLi4zNTI2ODk0IDEwMDY0NAotLS0gYS9MaWIvdGhyZWFkaW5nLnB5CisrKyBiL0xpYi90aHJlYWRpbmcucHkKQEAgLTEwLDYgKzEwLDExIEBACiAgICAgZnJvbSB0aW1lIGltcG9ydCB0aW1lIGFzIF90aW1lCiBmcm9tIHRyYWNlYmFjayBpbXBvcnQgZm9ybWF0X2V4YyBhcyBfZm9ybWF0X2V4YwogZnJvbSBfd2Vha3JlZnNldCBpbXBvcnQgV2Vha1NldAorZnJvbSBpdGVydG9vbHMgaW1wb3J0IGlzbGljZSBhcyBfaXNsaWNlCit0cnk6CisgICAgZnJvbSBfY29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlIGFzIF9kZXF1ZQorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlIGFzIF9kZXF1ZQogCiAjIE5vdGUgcmVnYXJkaW5nIFBFUCA4IGNvbXBsaWFudCBuYW1lcwogIyAgVGhpcyB0aHJlYWRpbmcgbW9kZWwgd2FzIG9yaWdpbmFsbHkgaW5zcGlyZWQgYnkgSmF2YSwgYW5kIGluaGVyaXRlZApAQCAtNzksNyArODQsNyBAQAogICAgIGRlZiBhY3F1aXJlKHNlbGYsIGJsb2NraW5nPVRydWUsIHRpbWVvdXQ9LTEpOgogICAgICAgICBtZSA9IGdldF9pZGVudCgpCiAgICAgICAgIGlmIHNlbGYuX293bmVyID09IG1lOgotICAgICAgICAgICAgc2VsZi5fY291bnQgPSBzZWxmLl9jb3VudCArIDEKKyAgICAgICAgICAgIHNlbGYuX2NvdW50ICs9IDEKICAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgIHJjID0gc2VsZi5fYmxvY2suYWNxdWlyZShibG9ja2luZywgdGltZW91dCkKICAgICAgICAgaWYgcmM6CkBAIC0xNDYsNyArMTUxLDcgQEAKICAgICAgICAgICAgIHNlbGYuX2lzX293bmVkID0gbG9jay5faXNfb3duZWQKICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgogICAgICAgICAgICAgcGFzcwotICAgICAgICBzZWxmLl93YWl0ZXJzID0gW10KKyAgICAgICAgc2VsZi5fd2FpdGVycyA9IF9kZXF1ZSgpCiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fbG9jay5fX2VudGVyX18oKQpAQCAtMjE2LDE0ICsyMjEsMTQgQEAKICAgICBkZWYgbm90aWZ5KHNlbGYsIG49MSk6CiAgICAgICAgIGlmIG5vdCBzZWxmLl9pc19vd25lZCgpOgogICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJjYW5ub3Qgbm90aWZ5IG9uIHVuLWFjcXVpcmVkIGxvY2siKQotICAgICAgICBfX3dhaXRlcnMgPSBzZWxmLl93YWl0ZXJzCi0gICAgICAgIHdhaXRlcnMgPSBfX3dhaXRlcnNbOm5dCi0gICAgICAgIGlmIG5vdCB3YWl0ZXJzOgorICAgICAgICBhbGxfd2FpdGVycyA9IHNlbGYuX3dhaXRlcnMKKyAgICAgICAgd2FpdGVyc190b19ub3RpZnkgPSBfZGVxdWUoX2lzbGljZShhbGxfd2FpdGVycywgbikpCisgICAgICAgIGlmIG5vdCB3YWl0ZXJzX3RvX25vdGlmeToKICAgICAgICAgICAgIHJldHVybgotICAgICAgICBmb3Igd2FpdGVyIGluIHdhaXRlcnM6CisgICAgICAgIGZvciB3YWl0ZXIgaW4gd2FpdGVyc190b19ub3RpZnk6CiAgICAgICAgICAgICB3YWl0ZXIucmVsZWFzZSgpCiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgX193YWl0ZXJzLnJlbW92ZSh3YWl0ZXIpCisgICAgICAgICAgICAgICAgYWxsX3dhaXRlcnMucmVtb3ZlKHdhaXRlcikKICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgogICAgICAgICAgICAgICAgIHBhc3MKIApAQCAtMjYxLDcgKzI2Niw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICBzZWxmLl9jb25kLndhaXQodGltZW91dCkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fdmFsdWUgPSBzZWxmLl92YWx1ZSAtIDEKKyAgICAgICAgICAgICAgICBzZWxmLl92YWx1ZSAtPSAxCiAgICAgICAgICAgICAgICAgcmMgPSBUcnVlCiAgICAgICAgIHJldHVybiByYwogCkBAIC0yNjksNyArMjc0LDcgQEAKIAogICAgIGRlZiByZWxlYXNlKHNlbGYpOgogICAgICAgICB3aXRoIHNlbGYuX2NvbmQ6Ci0gICAgICAgICAgICBzZWxmLl92YWx1ZSA9IHNlbGYuX3ZhbHVlICsgMQorICAgICAgICAgICAgc2VsZi5fdmFsdWUgKz0gMQogICAgICAgICAgICAgc2VsZi5fY29uZC5ub3RpZnkoKQogCiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsIHQsIHYsIHRiKToKQEAgLTUwNCw3ICs1MDksNyBAQAogX2NvdW50ZXIgPSAwCiBkZWYgX25ld25hbWUodGVtcGxhdGU9IlRocmVhZC0lZCIpOgogICAgIGdsb2JhbCBfY291bnRlcgotICAgIF9jb3VudGVyID0gX2NvdW50ZXIgKyAxCisgICAgX2NvdW50ZXIgKz0gMQogICAgIHJldHVybiB0ZW1wbGF0ZSAlIF9jb3VudGVyCiAKICMgQWN0aXZlIHRocmVhZCBhZG1pbmlzdHJhdGlvbgpkaWZmIC0tZ2l0IGEvTGliL3RpbWVpdC5weSBiL0xpYi90aW1laXQucHkKaW5kZXggNGY3ZDI4Zi4uZWFkMjAzMCAxMDA2NDQKLS0tIGEvTGliL3RpbWVpdC5weQorKysgYi9MaWIvdGltZWl0LnB5CkBAIC0zMSwzOCArMzEsMjkgQEAKIElmIC1uIGlzIG5vdCBnaXZlbiwgYSBzdWl0YWJsZSBudW1iZXIgb2YgbG9vcHMgaXMgY2FsY3VsYXRlZCBieSB0cnlpbmcKIHN1Y2Nlc3NpdmUgcG93ZXJzIG9mIDEwIHVudGlsIHRoZSB0b3RhbCB0aW1lIGlzIGF0IGxlYXN0IDAuMiBzZWNvbmRzLgogCi1UaGUgZGlmZmVyZW5jZSBpbiBkZWZhdWx0IHRpbWVyIGZ1bmN0aW9uIGlzIGJlY2F1c2Ugb24gV2luZG93cywKLWNsb2NrKCkgaGFzIG1pY3Jvc2Vjb25kIGdyYW51bGFyaXR5IGJ1dCB0aW1lKCkncyBncmFudWxhcml0eSBpcyAxLzYwdGgKLW9mIGEgc2Vjb25kOyBvbiBVbml4LCBjbG9jaygpIGhhcyAxLzEwMHRoIG9mIGEgc2Vjb25kIGdyYW51bGFyaXR5IGFuZAotdGltZSgpIGlzIG11Y2ggbW9yZSBwcmVjaXNlLiAgT24gZWl0aGVyIHBsYXRmb3JtLCB0aGUgZGVmYXVsdCB0aW1lcgotZnVuY3Rpb25zIG1lYXN1cmUgd2FsbCBjbG9jayB0aW1lLCBub3QgdGhlIENQVSB0aW1lLiAgVGhpcyBtZWFucyB0aGF0Ci1vdGhlciBwcm9jZXNzZXMgcnVubmluZyBvbiB0aGUgc2FtZSBjb21wdXRlciBtYXkgaW50ZXJmZXJlIHdpdGggdGhlCi10aW1pbmcuICBUaGUgYmVzdCB0aGluZyB0byBkbyB3aGVuIGFjY3VyYXRlIHRpbWluZyBpcyBuZWNlc3NhcnkgaXMgdG8KLXJlcGVhdCB0aGUgdGltaW5nIGEgZmV3IHRpbWVzIGFuZCB1c2UgdGhlIGJlc3QgdGltZS4gIFRoZSAtciBvcHRpb24gaXMKLWdvb2QgZm9yIHRoaXM7IHRoZSBkZWZhdWx0IG9mIDMgcmVwZXRpdGlvbnMgaXMgcHJvYmFibHkgZW5vdWdoIGluIG1vc3QKLWNhc2VzLiAgT24gVW5peCwgeW91IGNhbiB1c2UgY2xvY2soKSB0byBtZWFzdXJlIENQVSB0aW1lLgotCiBOb3RlOiB0aGVyZSBpcyBhIGNlcnRhaW4gYmFzZWxpbmUgb3ZlcmhlYWQgYXNzb2NpYXRlZCB3aXRoIGV4ZWN1dGluZyBhCi1wYXNzIHN0YXRlbWVudC4gIFRoZSBjb2RlIGhlcmUgZG9lc24ndCB0cnkgdG8gaGlkZSBpdCwgYnV0IHlvdSBzaG91bGQKLWJlIGF3YXJlIG9mIGl0LiAgVGhlIGJhc2VsaW5lIG92ZXJoZWFkIGNhbiBiZSBtZWFzdXJlZCBieSBpbnZva2luZyB0aGUKLXByb2dyYW0gd2l0aG91dCBhcmd1bWVudHMuCitwYXNzIHN0YXRlbWVudC4gIEl0IGRpZmZlcnMgYmV0d2VlbiB2ZXJzaW9ucy4gIFRoZSBjb2RlIGhlcmUgZG9lc24ndCB0cnkKK3RvIGhpZGUgaXQsIGJ1dCB5b3Ugc2hvdWxkIGJlIGF3YXJlIG9mIGl0LiAgVGhlIGJhc2VsaW5lIG92ZXJoZWFkIGNhbiBiZQorbWVhc3VyZWQgYnkgaW52b2tpbmcgdGhlIHByb2dyYW0gd2l0aG91dCBhcmd1bWVudHMuCiAKLVRoZSBiYXNlbGluZSBvdmVyaGVhZCBkaWZmZXJzIGJldHdlZW4gUHl0aG9uIHZlcnNpb25zISAgQWxzbywgdG8KLWZhaXJseSBjb21wYXJlIG9sZGVyIFB5dGhvbiB2ZXJzaW9ucyB0byBQeXRob24gMi4zLCB5b3UgbWF5IHdhbnQgdG8KLXVzZSBweXRob24gLU8gZm9yIHRoZSBvbGRlciB2ZXJzaW9ucyB0byBhdm9pZCB0aW1pbmcgU0VUX0xJTkVOTwotaW5zdHJ1Y3Rpb25zLgorQ2xhc3NlczoKKworICAgIFRpbWVyCisKK0Z1bmN0aW9uczoKKworICAgIHRpbWVpdChzdHJpbmcsIHN0cmluZykgLT4gZmxvYXQKKyAgICByZXBlYXQoc3RyaW5nLCBzdHJpbmcpIC0+IGxpc3QKKyAgICBkZWZhdWx0X3RpbWVyKCkgLT4gZmxvYXQKKwogIiIiCiAKIGltcG9ydCBnYwogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKLXRyeToKLSAgICBpbXBvcnQgaXRlcnRvb2xzCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgIyBNdXN0IGJlIGFuIG9sZGVyIFB5dGhvbiB2ZXJzaW9uIChzZWUgdGltZWl0KCkgYmVsb3cpCi0gICAgaXRlcnRvb2xzID0gTm9uZQoraW1wb3J0IGl0ZXJ0b29scwogCi1fX2FsbF9fID0gWyJUaW1lciJdCitfX2FsbF9fID0gWyJUaW1lciIsICJ0aW1laXQiLCAicmVwZWF0IiwgImRlZmF1bHRfdGltZXIiXQogCiBkdW1teV9zcmNfbmFtZSA9ICI8dGltZWl0LXNyYz4iCiBkZWZhdWx0X251bWJlciA9IDEwMDAwMDAKQEAgLTE4MCwxMCArMTcxLDcgQEAKICAgICAgICAgdG8gb25lIG1pbGxpb24uICBUaGUgbWFpbiBzdGF0ZW1lbnQsIHRoZSBzZXR1cCBzdGF0ZW1lbnQgYW5kCiAgICAgICAgIHRoZSB0aW1lciBmdW5jdGlvbiB0byBiZSB1c2VkIGFyZSBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLgogICAgICAgICAiIiIKLSAgICAgICAgaWYgaXRlcnRvb2xzOgotICAgICAgICAgICAgaXQgPSBpdGVydG9vbHMucmVwZWF0KE5vbmUsIG51bWJlcikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGl0ID0gW05vbmVdICogbnVtYmVyCisgICAgICAgIGl0ID0gaXRlcnRvb2xzLnJlcGVhdChOb25lLCBudW1iZXIpCiAgICAgICAgIGdjb2xkID0gZ2MuaXNlbmFibGVkKCkKICAgICAgICAgZ2MuZGlzYWJsZSgpCiAgICAgICAgIHRyeToKZGlmZiAtLWdpdCBhL0xpYi90a2ludGVyL19faW5pdF9fLnB5IGIvTGliL3RraW50ZXIvX19pbml0X18ucHkKaW5kZXggZjYxOTc4Ni4uZjc4ZDI0ZCAxMDA2NDQKLS0tIGEvTGliL3RraW50ZXIvX19pbml0X18ucHkKKysrIGIvTGliL3RraW50ZXIvX19pbml0X18ucHkKQEAgLTIxODEsNDUgKzIxODEsNiBAQAogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIHNlbGYudGsuY2FsbChzZWxmLl93LCAnaW52b2tlJykKIAotCi0jIEluZGljZXM6Ci0jIFhYWCBJIGRvbid0IGxpa2UgdGhlc2UgLS0gdGFrZSB0aGVtIGF3YXkKLWRlZiBBdEVuZCgpOgotICAgIHdhcm5pbmdzLndhcm4oInRraW50ZXIuQXRFbmQgd2lsbCBiZSByZW1vdmVkIGluIDMuNCIsCi0gICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MikKLSAgICByZXR1cm4gJ2VuZCcKLQotCi1kZWYgQXRJbnNlcnQoKmFyZ3MpOgotICAgIHdhcm5pbmdzLndhcm4oInRraW50ZXIuQXRJbnNlcnQgd2lsbCBiZSByZW1vdmVkIGluIDMuNCIsCi0gICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MikKLSAgICBzID0gJ2luc2VydCcKLSAgICBmb3IgYSBpbiBhcmdzOgotICAgICAgICBpZiBhOiBzID0gcyArICgnICcgKyBhKQotICAgIHJldHVybiBzCi0KLQotZGVmIEF0U2VsRmlyc3QoKToKLSAgICB3YXJuaW5ncy53YXJuKCJ0a2ludGVyLkF0U2VsRmlyc3Qgd2lsbCBiZSByZW1vdmVkIGluIDMuNCIsCi0gICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MikKLSAgICByZXR1cm4gJ3NlbC5maXJzdCcKLQotCi1kZWYgQXRTZWxMYXN0KCk6Ci0gICAgd2FybmluZ3Mud2FybigidGtpbnRlci5BdFNlbExhc3Qgd2lsbCBiZSByZW1vdmVkIGluIDMuNCIsCi0gICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MikKLSAgICByZXR1cm4gJ3NlbC5sYXN0JwotCi0KLWRlZiBBdCh4LCB5PU5vbmUpOgotICAgIHdhcm5pbmdzLndhcm4oInRraW50ZXIuQXQgd2lsbCBiZSByZW1vdmVkIGluIDMuNCIsCi0gICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MikKLSAgICBpZiB5IGlzIE5vbmU6Ci0gICAgICAgIHJldHVybiAnQCVyJyAlICh4LCkKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gJ0AlciwlcicgJSAoeCwgeSkKLQotCiBjbGFzcyBDYW52YXMoV2lkZ2V0LCBYVmlldywgWVZpZXcpOgogICAgICIiIkNhbnZhcyB3aWRnZXQgdG8gZGlzcGxheSBncmFwaGljYWwgZWxlbWVudHMgbGlrZSBsaW5lcyBvciB0ZXh0LiIiIgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtYXN0ZXI9Tm9uZSwgY25mPXt9LCAqKmt3KToKZGlmZiAtLWdpdCBhL0xpYi90a2ludGVyL2ZpbGVkaWFsb2cucHkgYi9MaWIvdGtpbnRlci9maWxlZGlhbG9nLnB5CmluZGV4IDNmZmIyNTIuLmE3MWFmYjIgMTAwNjQ0Ci0tLSBhL0xpYi90a2ludGVyL2ZpbGVkaWFsb2cucHkKKysrIGIvTGliL3RraW50ZXIvZmlsZWRpYWxvZy5weQpAQCAtMTY2LDcgKzE2Niw3IEBACiAgICAgICAgIGRpciwgcGF0ID0gc2VsZi5nZXRfZmlsdGVyKCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgbmFtZXMgPSBvcy5saXN0ZGlyKGRpcikKLSAgICAgICAgZXhjZXB0IG9zLmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHNlbGYubWFzdGVyLmJlbGwoKQogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIHNlbGYuZGlyZWN0b3J5ID0gZGlyCkBAIC0yMDksNyArMjA5LDcgQEAKICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNhYnMoZGlyKToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBwd2QgPSBvcy5nZXRjd2QoKQotICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgcHdkID0gTm9uZQogICAgICAgICAgICAgaWYgcHdkOgogICAgICAgICAgICAgICAgIGRpciA9IG9zLnBhdGguam9pbihwd2QsIGRpcikKZGlmZiAtLWdpdCBhL0xpYi90b2tlbi5weSBiL0xpYi90b2tlbi5weQppbmRleCAzMWZhZTBhLi43NDcwYzhjIDEwMDc1NQotLS0gYS9MaWIvdG9rZW4ucHkKKysrIGIvTGliL3Rva2VuLnB5CkBAIC05Myw3ICs5Myw3IEBACiAgICAgICAgIG91dEZpbGVOYW1lID0gYXJnc1sxXQogICAgIHRyeToKICAgICAgICAgZnAgPSBvcGVuKGluRmlsZU5hbWUpCi0gICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyOgorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiSS9PIGVycm9yOiAlc1xuIiAlIHN0cihlcnIpKQogICAgICAgICBzeXMuZXhpdCgxKQogICAgIGxpbmVzID0gZnAucmVhZCgpLnNwbGl0KCJcbiIpCkBAIC0xMTIsNyArMTEyLDcgQEAKICAgICAjIGxvYWQgdGhlIG91dHB1dCBza2VsZXRvbiBmcm9tIHRoZSB0YXJnZXQ6CiAgICAgdHJ5OgogICAgICAgICBmcCA9IG9wZW4ob3V0RmlsZU5hbWUpCi0gICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyOgorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiSS9PIGVycm9yOiAlc1xuIiAlIHN0cihlcnIpKQogICAgICAgICBzeXMuZXhpdCgyKQogICAgIGZvcm1hdCA9IGZwLnJlYWQoKS5zcGxpdCgiXG4iKQpAQCAtMTI5LDcgKzEyOSw3IEBACiAgICAgZm9ybWF0W3N0YXJ0OmVuZF0gPSBsaW5lcwogICAgIHRyeToKICAgICAgICAgZnAgPSBvcGVuKG91dEZpbGVOYW1lLCAndycpCi0gICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyOgorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiSS9PIGVycm9yOiAlc1xuIiAlIHN0cihlcnIpKQogICAgICAgICBzeXMuZXhpdCg0KQogICAgIGZwLndyaXRlKCJcbiIuam9pbihmb3JtYXQpKQpkaWZmIC0tZ2l0IGEvTGliL3Rva2VuaXplLnB5IGIvTGliL3Rva2VuaXplLnB5CmluZGV4IGNiZjkxZWYuLjJmYmRlMGYgMTAwNjQ0Ci0tLSBhL0xpYi90b2tlbml6ZS5weQorKysgYi9MaWIvdG9rZW5pemUucHkKQEAgLTY3MCw3ICs2NzAsNyBAQAogICAgICAgICBlcnJvcihlcnIuYXJnc1swXSwgZmlsZW5hbWUsIChsaW5lLCBjb2x1bW4pKQogICAgIGV4Y2VwdCBTeW50YXhFcnJvciBhcyBlcnI6CiAgICAgICAgIGVycm9yKGVyciwgZmlsZW5hbWUpCi0gICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyOgorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgZXJyb3IoZXJyKQogICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKICAgICAgICAgcHJpbnQoImludGVycnVwdGVkXG4iKQpkaWZmIC0tZ2l0IGEvTGliL3RyYWNlLnB5IGIvTGliL3RyYWNlLnB5CmluZGV4IGMwOWIzNjUuLjA5ZmU5ZWUgMTAwNjQ0Ci0tLSBhL0xpYi90cmFjZS5weQorKysgYi9MaWIvdHJhY2UucHkKQEAgLTIzOCw3ICsyMzgsNyBAQAogICAgICAgICAgICAgICAgIGNvdW50cywgY2FsbGVkZnVuY3MsIGNhbGxlcnMgPSBcCiAgICAgICAgICAgICAgICAgICAgICAgICBwaWNrbGUubG9hZChvcGVuKHNlbGYuaW5maWxlLCAncmInKSkKICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZShzZWxmLl9fY2xhc3NfXyhjb3VudHMsIGNhbGxlZGZ1bmNzLCBjYWxsZXJzKSkKLSAgICAgICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgRU9GRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGVycjoKKyAgICAgICAgICAgIGV4Y2VwdCAoT1NFcnJvciwgRU9GRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGVycjoKICAgICAgICAgICAgICAgICBwcmludCgoIlNraXBwaW5nIGNvdW50cyBmaWxlICVyOiAlcyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAoc2VsZi5pbmZpbGUsIGVycikpLCBmaWxlPXN5cy5zdGRlcnIpCiAKQEAgLTM0OCw3ICszNDgsNyBAQAogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHBpY2tsZS5kdW1wKChzZWxmLmNvdW50cywgc2VsZi5jYWxsZWRmdW5jcywgc2VsZi5jYWxsZXJzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuKHNlbGYub3V0ZmlsZSwgJ3diJyksIDEpCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlcnI6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlcnI6CiAgICAgICAgICAgICAgICAgcHJpbnQoIkNhbid0IHNhdmUgY291bnRzIGZpbGVzIGJlY2F1c2UgJXMiICUgZXJyLCBmaWxlPXN5cy5zdGRlcnIpCiAKICAgICBkZWYgd3JpdGVfcmVzdWx0c19maWxlKHNlbGYsIHBhdGgsIGxpbmVzLCBsbm90YWIsIGxpbmVzX2hpdCwgZW5jb2Rpbmc9Tm9uZSk6CkBAIC0zNTYsNyArMzU2LDcgQEAKIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBvdXRmaWxlID0gb3BlbihwYXRoLCAidyIsIGVuY29kaW5nPWVuY29kaW5nKQotICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlcnI6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgICAgIHByaW50KCgidHJhY2U6IENvdWxkIG5vdCBvcGVuICVyIGZvciB3cml0aW5nOiAlcyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLSBza2lwcGluZyIgJSAocGF0aCwgZXJyKSksIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgICAgIHJldHVybiAwLCAwCkBAIC00MzcsNyArNDM3LDcgQEAKICAgICAgICAgd2l0aCB0b2tlbml6ZS5vcGVuKGZpbGVuYW1lKSBhcyBmOgogICAgICAgICAgICAgcHJvZyA9IGYucmVhZCgpCiAgICAgICAgICAgICBlbmNvZGluZyA9IGYuZW5jb2RpbmcKLSAgICBleGNlcHQgSU9FcnJvciBhcyBlcnI6CisgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgogICAgICAgICBwcmludCgoIk5vdCBwcmludGluZyBjb3ZlcmFnZSBkYXRhIGZvciAlcjogJXMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChmaWxlbmFtZSwgZXJyKSksIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgcmV0dXJuIHt9CkBAIC04MDIsNyArODAyLDcgQEAKICAgICAgICAgICAgICAgICAnX19jYWNoZWRfXyc6IE5vbmUsCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB0LnJ1bmN0eChjb2RlLCBnbG9icywgZ2xvYnMpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGVycjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgogICAgICAgICAgICAgX2Vycl9leGl0KCJDYW5ub3QgcnVuIGZpbGUgJXIgYmVjYXVzZTogJXMiICUgKHN5cy5hcmd2WzBdLCBlcnIpKQogICAgICAgICBleGNlcHQgU3lzdGVtRXhpdDoKICAgICAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xpYi90cmFjZWJhY2sucHkgYi9MaWIvdHJhY2ViYWNrLnB5CmluZGV4IGVlYjllNzMuLjNhYTE1NzggMTAwNjQ0Ci0tLSBhL0xpYi90cmFjZWJhY2sucHkKKysrIGIvTGliL3RyYWNlYmFjay5weQpAQCAtMiwyNiArMiwzMSBAQAogCiBpbXBvcnQgbGluZWNhY2hlCiBpbXBvcnQgc3lzCitpbXBvcnQgb3BlcmF0b3IKIAogX19hbGxfXyA9IFsnZXh0cmFjdF9zdGFjaycsICdleHRyYWN0X3RiJywgJ2Zvcm1hdF9leGNlcHRpb24nLAogICAgICAgICAgICAnZm9ybWF0X2V4Y2VwdGlvbl9vbmx5JywgJ2Zvcm1hdF9saXN0JywgJ2Zvcm1hdF9zdGFjaycsCiAgICAgICAgICAgICdmb3JtYXRfdGInLCAncHJpbnRfZXhjJywgJ2Zvcm1hdF9leGMnLCAncHJpbnRfZXhjZXB0aW9uJywKICAgICAgICAgICAgJ3ByaW50X2xhc3QnLCAncHJpbnRfc3RhY2snLCAncHJpbnRfdGInXQogCi1kZWYgX3ByaW50KGZpbGUsIHN0cj0nJywgdGVybWluYXRvcj0nXG4nKToKLSAgICBmaWxlLndyaXRlKHN0cit0ZXJtaW5hdG9yKQorIworIyBGb3JtYXR0aW5nIGFuZCBwcmludGluZyBsaXN0cyBvZiB0cmFjZWJhY2sgbGluZXMuCisjCiAKK2RlZiBfZm9ybWF0X2xpc3RfaXRlcihleHRyYWN0ZWRfbGlzdCk6CisgICAgZm9yIGZpbGVuYW1lLCBsaW5lbm8sIG5hbWUsIGxpbmUgaW4gZXh0cmFjdGVkX2xpc3Q6CisgICAgICAgIGl0ZW0gPSAnICBGaWxlICJ7fSIsIGxpbmUge30sIGluIHt9XG4nLmZvcm1hdChmaWxlbmFtZSwgbGluZW5vLCBuYW1lKQorICAgICAgICBpZiBsaW5lOgorICAgICAgICAgICAgaXRlbSA9IGl0ZW0gKyAnICAgIHt9XG4nLmZvcm1hdChsaW5lLnN0cmlwKCkpCisgICAgICAgIHlpZWxkIGl0ZW0KIAogZGVmIHByaW50X2xpc3QoZXh0cmFjdGVkX2xpc3QsIGZpbGU9Tm9uZSk6CiAgICAgIiIiUHJpbnQgdGhlIGxpc3Qgb2YgdHVwbGVzIGFzIHJldHVybmVkIGJ5IGV4dHJhY3RfdGIoKSBvcgogICAgIGV4dHJhY3Rfc3RhY2soKSBhcyBhIGZvcm1hdHRlZCBzdGFjayB0cmFjZSB0byB0aGUgZ2l2ZW4gZmlsZS4iIiIKICAgICBpZiBmaWxlIGlzIE5vbmU6CiAgICAgICAgIGZpbGUgPSBzeXMuc3RkZXJyCi0gICAgZm9yIGZpbGVuYW1lLCBsaW5lbm8sIG5hbWUsIGxpbmUgaW4gZXh0cmFjdGVkX2xpc3Q6Ci0gICAgICAgIF9wcmludChmaWxlLAotICAgICAgICAgICAgICAgJyAgRmlsZSAiJXMiLCBsaW5lICVkLCBpbiAlcycgJSAoZmlsZW5hbWUsbGluZW5vLG5hbWUpKQotICAgICAgICBpZiBsaW5lOgotICAgICAgICAgICAgX3ByaW50KGZpbGUsICcgICAgJXMnICUgbGluZS5zdHJpcCgpKQorICAgIGZvciBpdGVtIGluIF9mb3JtYXRfbGlzdF9pdGVyKGV4dHJhY3RlZF9saXN0KToKKyAgICAgICAgcHJpbnQoaXRlbSwgZmlsZT1maWxlLCBlbmQ9IiIpCiAKIGRlZiBmb3JtYXRfbGlzdChleHRyYWN0ZWRfbGlzdCk6CiAgICAgIiIiRm9ybWF0IGEgbGlzdCBvZiB0cmFjZWJhY2sgZW50cnkgdHVwbGVzIGZvciBwcmludGluZy4KQEAgLTMzLDE0ICszOCw0NCBAQAogICAgIHRoZSBzdHJpbmdzIG1heSBjb250YWluIGludGVybmFsIG5ld2xpbmVzIGFzIHdlbGwsIGZvciB0aG9zZSBpdGVtcwogICAgIHdob3NlIHNvdXJjZSB0ZXh0IGxpbmUgaXMgbm90IE5vbmUuCiAgICAgIiIiCi0gICAgbGlzdCA9IFtdCi0gICAgZm9yIGZpbGVuYW1lLCBsaW5lbm8sIG5hbWUsIGxpbmUgaW4gZXh0cmFjdGVkX2xpc3Q6Ci0gICAgICAgIGl0ZW0gPSAnICBGaWxlICIlcyIsIGxpbmUgJWQsIGluICVzXG4nICUgKGZpbGVuYW1lLGxpbmVubyxuYW1lKQotICAgICAgICBpZiBsaW5lOgotICAgICAgICAgICAgaXRlbSA9IGl0ZW0gKyAnICAgICVzXG4nICUgbGluZS5zdHJpcCgpCi0gICAgICAgIGxpc3QuYXBwZW5kKGl0ZW0pCi0gICAgcmV0dXJuIGxpc3QKKyAgICByZXR1cm4gbGlzdChfZm9ybWF0X2xpc3RfaXRlcihleHRyYWN0ZWRfbGlzdCkpCiAKKyMKKyMgUHJpbnRpbmcgYW5kIEV4dHJhY3RpbmcgVHJhY2ViYWNrcy4KKyMKKworIyBleHRyYWN0b3IgdGFrZXMgY3VyciBhbmQgbmVlZHMgdG8gcmV0dXJuIGEgdHVwbGUgb2Y6CisjIC0gRnJhbWUgb2JqZWN0CisjIC0gTGluZSBudW1iZXIKKyMgLSBOZXh0IGl0ZW0gKHNhbWUgdHlwZSBhcyBjdXJyKQorIyBJbiBwcmFjdGljZSwgY3VyciBpcyBlaXRoZXIgYSB0cmFjZWJhY2sgb3IgYSBmcmFtZS4KK2RlZiBfZXh0cmFjdF90Yl9vcl9zdGFja19pdGVyKGN1cnIsIGxpbWl0LCBleHRyYWN0b3IpOgorICAgIGlmIGxpbWl0IGlzIE5vbmU6CisgICAgICAgIGxpbWl0ID0gZ2V0YXR0cihzeXMsICd0cmFjZWJhY2tsaW1pdCcsIE5vbmUpCisKKyAgICBuID0gMAorICAgIHdoaWxlIGN1cnIgaXMgbm90IE5vbmUgYW5kIChsaW1pdCBpcyBOb25lIG9yIG4gPCBsaW1pdCk6CisgICAgICAgIGYsIGxpbmVubywgbmV4dF9pdGVtID0gZXh0cmFjdG9yKGN1cnIpCisgICAgICAgIGNvID0gZi5mX2NvZGUKKyAgICAgICAgZmlsZW5hbWUgPSBjby5jb19maWxlbmFtZQorICAgICAgICBuYW1lID0gY28uY29fbmFtZQorCisgICAgICAgIGxpbmVjYWNoZS5jaGVja2NhY2hlKGZpbGVuYW1lKQorICAgICAgICBsaW5lID0gbGluZWNhY2hlLmdldGxpbmUoZmlsZW5hbWUsIGxpbmVubywgZi5mX2dsb2JhbHMpCisKKyAgICAgICAgaWYgbGluZToKKyAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN0cmlwKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxpbmUgPSBOb25lCisKKyAgICAgICAgeWllbGQgKGZpbGVuYW1lLCBsaW5lbm8sIG5hbWUsIGxpbmUpCisgICAgICAgIGN1cnIgPSBuZXh0X2l0ZW0KKyAgICAgICAgbiArPSAxCisKK2RlZiBfZXh0cmFjdF90Yl9pdGVyKHRiLCBsaW1pdCk6CisgICAgcmV0dXJuIF9leHRyYWN0X3RiX29yX3N0YWNrX2l0ZXIoCisgICAgICAgICAgICAgICAgdGIsIGxpbWl0LAorICAgICAgICAgICAgICAgIG9wZXJhdG9yLmF0dHJnZXR0ZXIoInRiX2ZyYW1lIiwgInRiX2xpbmVubyIsICJ0Yl9uZXh0IikpCiAKIGRlZiBwcmludF90Yih0YiwgbGltaXQ9Tm9uZSwgZmlsZT1Ob25lKToKICAgICAiIiJQcmludCB1cCB0byAnbGltaXQnIHN0YWNrIHRyYWNlIGVudHJpZXMgZnJvbSB0aGUgdHJhY2ViYWNrICd0YicuCkBAIC01MCwyOSArODUsMTEgQEAKICAgICAnZmlsZScgc2hvdWxkIGJlIGFuIG9wZW4gZmlsZSBvciBmaWxlLWxpa2Ugb2JqZWN0IHdpdGggYSB3cml0ZSgpCiAgICAgbWV0aG9kLgogICAgICIiIgotICAgIGlmIGZpbGUgaXMgTm9uZToKLSAgICAgICAgZmlsZSA9IHN5cy5zdGRlcnIKLSAgICBpZiBsaW1pdCBpcyBOb25lOgotICAgICAgICBpZiBoYXNhdHRyKHN5cywgJ3RyYWNlYmFja2xpbWl0Jyk6Ci0gICAgICAgICAgICBsaW1pdCA9IHN5cy50cmFjZWJhY2tsaW1pdAotICAgIG4gPSAwCi0gICAgd2hpbGUgdGIgaXMgbm90IE5vbmUgYW5kIChsaW1pdCBpcyBOb25lIG9yIG4gPCBsaW1pdCk6Ci0gICAgICAgIGYgPSB0Yi50Yl9mcmFtZQotICAgICAgICBsaW5lbm8gPSB0Yi50Yl9saW5lbm8KLSAgICAgICAgY28gPSBmLmZfY29kZQotICAgICAgICBmaWxlbmFtZSA9IGNvLmNvX2ZpbGVuYW1lCi0gICAgICAgIG5hbWUgPSBjby5jb19uYW1lCi0gICAgICAgIF9wcmludChmaWxlLAotICAgICAgICAgICAgICAgJyAgRmlsZSAiJXMiLCBsaW5lICVkLCBpbiAlcycgJSAoZmlsZW5hbWUsIGxpbmVubywgbmFtZSkpCi0gICAgICAgIGxpbmVjYWNoZS5jaGVja2NhY2hlKGZpbGVuYW1lKQotICAgICAgICBsaW5lID0gbGluZWNhY2hlLmdldGxpbmUoZmlsZW5hbWUsIGxpbmVubywgZi5mX2dsb2JhbHMpCi0gICAgICAgIGlmIGxpbmU6IF9wcmludChmaWxlLCAnICAgICcgKyBsaW5lLnN0cmlwKCkpCi0gICAgICAgIHRiID0gdGIudGJfbmV4dAotICAgICAgICBuID0gbisxCisgICAgcHJpbnRfbGlzdChleHRyYWN0X3RiKHRiLCBsaW1pdD1saW1pdCksIGZpbGU9ZmlsZSkKIAogZGVmIGZvcm1hdF90Yih0YiwgbGltaXQ9Tm9uZSk6Ci0gICAgIiIiQSBzaG9ydGhhbmQgZm9yICdmb3JtYXRfbGlzdChleHRyYWN0X3N0YWNrKGYsIGxpbWl0KSkuIiIiCi0gICAgcmV0dXJuIGZvcm1hdF9saXN0KGV4dHJhY3RfdGIodGIsIGxpbWl0KSkKKyAgICAiIiJBIHNob3J0aGFuZCBmb3IgJ2Zvcm1hdF9saXN0KGV4dHJhY3RfdGIodGIsIGxpbWl0KSkuIiIiCisgICAgcmV0dXJuIGZvcm1hdF9saXN0KGV4dHJhY3RfdGIodGIsIGxpbWl0PWxpbWl0KSkKIAogZGVmIGV4dHJhY3RfdGIodGIsIGxpbWl0PU5vbmUpOgogICAgICIiIlJldHVybiBsaXN0IG9mIHVwIHRvIGxpbWl0IHByZS1wcm9jZXNzZWQgZW50cmllcyBmcm9tIHRyYWNlYmFjay4KQEAgLTg1LDI2ICsxMDIsMTEgQEAKICAgICBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlIHN0cmlwcGVkOyBpZiB0aGUgc291cmNlIGlzIG5vdAogICAgIGF2YWlsYWJsZSBpdCBpcyBOb25lLgogICAgICIiIgotICAgIGlmIGxpbWl0IGlzIE5vbmU6Ci0gICAgICAgIGlmIGhhc2F0dHIoc3lzLCAndHJhY2ViYWNrbGltaXQnKToKLSAgICAgICAgICAgIGxpbWl0ID0gc3lzLnRyYWNlYmFja2xpbWl0Ci0gICAgbGlzdCA9IFtdCi0gICAgbiA9IDAKLSAgICB3aGlsZSB0YiBpcyBub3QgTm9uZSBhbmQgKGxpbWl0IGlzIE5vbmUgb3IgbiA8IGxpbWl0KToKLSAgICAgICAgZiA9IHRiLnRiX2ZyYW1lCi0gICAgICAgIGxpbmVubyA9IHRiLnRiX2xpbmVubwotICAgICAgICBjbyA9IGYuZl9jb2RlCi0gICAgICAgIGZpbGVuYW1lID0gY28uY29fZmlsZW5hbWUKLSAgICAgICAgbmFtZSA9IGNvLmNvX25hbWUKLSAgICAgICAgbGluZWNhY2hlLmNoZWNrY2FjaGUoZmlsZW5hbWUpCi0gICAgICAgIGxpbmUgPSBsaW5lY2FjaGUuZ2V0bGluZShmaWxlbmFtZSwgbGluZW5vLCBmLmZfZ2xvYmFscykKLSAgICAgICAgaWYgbGluZTogbGluZSA9IGxpbmUuc3RyaXAoKQotICAgICAgICBlbHNlOiBsaW5lID0gTm9uZQotICAgICAgICBsaXN0LmFwcGVuZCgoZmlsZW5hbWUsIGxpbmVubywgbmFtZSwgbGluZSkpCi0gICAgICAgIHRiID0gdGIudGJfbmV4dAotICAgICAgICBuID0gbisxCi0gICAgcmV0dXJuIGxpc3QKKyAgICByZXR1cm4gbGlzdChfZXh0cmFjdF90Yl9pdGVyKHRiLCBsaW1pdD1saW1pdCkpCiAKKyMKKyMgRXhjZXB0aW9uIGZvcm1hdHRpbmcgYW5kIG91dHB1dC4KKyMKIAogX2NhdXNlX21lc3NhZ2UgPSAoCiAgICAgIlxuVGhlIGFib3ZlIGV4Y2VwdGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSAiCkBAIC0xMzIsOSArMTM0LDIzIEBACiAgICAgaXRzLmFwcGVuZChbKGV4YywgY3VzdG9tX3RiIG9yIGV4Yy5fX3RyYWNlYmFja19fKV0pCiAgICAgIyBpdGVydG9vbHMuY2hhaW4gaXMgaW4gYW4gZXh0ZW5zaW9uIG1vZHVsZSBhbmQgbWF5IGJlIHVuYXZhaWxhYmxlCiAgICAgZm9yIGl0IGluIGl0czoKLSAgICAgICAgZm9yIHggaW4gaXQ6Ci0gICAgICAgICAgICB5aWVsZCB4CisgICAgICAgIHlpZWxkIGZyb20gaXQKIAorZGVmIF9mb3JtYXRfZXhjZXB0aW9uX2l0ZXIoZXR5cGUsIHZhbHVlLCB0YiwgbGltaXQsIGNoYWluKToKKyAgICBpZiBjaGFpbjoKKyAgICAgICAgdmFsdWVzID0gX2l0ZXJfY2hhaW4odmFsdWUsIHRiKQorICAgIGVsc2U6CisgICAgICAgIHZhbHVlcyA9IFsodmFsdWUsIHRiKV0KKworICAgIGZvciB2YWx1ZSwgdGIgaW4gdmFsdWVzOgorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgorICAgICAgICAgICAgIyBUaGlzIGlzIGEgY2F1c2UvY29udGV4dCBtZXNzYWdlIGxpbmUKKyAgICAgICAgICAgIHlpZWxkIHZhbHVlICsgJ1xuJworICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgdGI6CisgICAgICAgICAgICB5aWVsZCAnVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOlxuJworICAgICAgICAgICAgeWllbGQgZnJvbSBfZm9ybWF0X2xpc3RfaXRlcihfZXh0cmFjdF90Yl9pdGVyKHRiLCBsaW1pdD1saW1pdCkpCisgICAgICAgIHlpZWxkIGZyb20gX2Zvcm1hdF9leGNlcHRpb25fb25seV9pdGVyKHR5cGUodmFsdWUpLCB2YWx1ZSkKIAogZGVmIHByaW50X2V4Y2VwdGlvbihldHlwZSwgdmFsdWUsIHRiLCBsaW1pdD1Ob25lLCBmaWxlPU5vbmUsIGNoYWluPVRydWUpOgogICAgICIiIlByaW50IGV4Y2VwdGlvbiB1cCB0byAnbGltaXQnIHN0YWNrIHRyYWNlIGVudHJpZXMgZnJvbSAndGInIHRvICdmaWxlJy4KQEAgLTE0OSwyMCArMTY1LDggQEAKICAgICAiIiIKICAgICBpZiBmaWxlIGlzIE5vbmU6CiAgICAgICAgIGZpbGUgPSBzeXMuc3RkZXJyCi0gICAgaWYgY2hhaW46Ci0gICAgICAgIHZhbHVlcyA9IF9pdGVyX2NoYWluKHZhbHVlLCB0YikKLSAgICBlbHNlOgotICAgICAgICB2YWx1ZXMgPSBbKHZhbHVlLCB0YildCi0gICAgZm9yIHZhbHVlLCB0YiBpbiB2YWx1ZXM6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHN0cik6Ci0gICAgICAgICAgICBfcHJpbnQoZmlsZSwgdmFsdWUpCi0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICBpZiB0YjoKLSAgICAgICAgICAgIF9wcmludChmaWxlLCAnVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOicpCi0gICAgICAgICAgICBwcmludF90Yih0YiwgbGltaXQsIGZpbGUpCi0gICAgICAgIGxpbmVzID0gZm9ybWF0X2V4Y2VwdGlvbl9vbmx5KHR5cGUodmFsdWUpLCB2YWx1ZSkKLSAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6Ci0gICAgICAgICAgICBfcHJpbnQoZmlsZSwgbGluZSwgJycpCisgICAgZm9yIGxpbmUgaW4gX2Zvcm1hdF9leGNlcHRpb25faXRlcihldHlwZSwgdmFsdWUsIHRiLCBsaW1pdCwgY2hhaW4pOgorICAgICAgICBwcmludChsaW5lLCBmaWxlPWZpbGUsIGVuZD0iIikKIAogZGVmIGZvcm1hdF9leGNlcHRpb24oZXR5cGUsIHZhbHVlLCB0YiwgbGltaXQ9Tm9uZSwgY2hhaW49VHJ1ZSk6CiAgICAgIiIiRm9ybWF0IGEgc3RhY2sgdHJhY2UgYW5kIHRoZSBleGNlcHRpb24gaW5mb3JtYXRpb24uCkBAIC0xNzMsMjAgKzE3Nyw3IEBACiAgICAgdGhlc2UgbGluZXMgYXJlIGNvbmNhdGVuYXRlZCBhbmQgcHJpbnRlZCwgZXhhY3RseSB0aGUgc2FtZSB0ZXh0IGlzCiAgICAgcHJpbnRlZCBhcyBkb2VzIHByaW50X2V4Y2VwdGlvbigpLgogICAgICIiIgotICAgIGxpc3QgPSBbXQotICAgIGlmIGNoYWluOgotICAgICAgICB2YWx1ZXMgPSBfaXRlcl9jaGFpbih2YWx1ZSwgdGIpCi0gICAgZWxzZToKLSAgICAgICAgdmFsdWVzID0gWyh2YWx1ZSwgdGIpXQotICAgIGZvciB2YWx1ZSwgdGIgaW4gdmFsdWVzOgotICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgotICAgICAgICAgICAgbGlzdC5hcHBlbmQodmFsdWUgKyAnXG4nKQotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgaWYgdGI6Ci0gICAgICAgICAgICBsaXN0LmFwcGVuZCgnVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOlxuJykKLSAgICAgICAgICAgIGxpc3QuZXh0ZW5kKGZvcm1hdF90Yih0YiwgbGltaXQpKQotICAgICAgICBsaXN0LmV4dGVuZChmb3JtYXRfZXhjZXB0aW9uX29ubHkodHlwZSh2YWx1ZSksIHZhbHVlKSkKLSAgICByZXR1cm4gbGlzdAorICAgIHJldHVybiBsaXN0KF9mb3JtYXRfZXhjZXB0aW9uX2l0ZXIoZXR5cGUsIHZhbHVlLCB0YiwgbGltaXQsIGNoYWluKSkKIAogZGVmIGZvcm1hdF9leGNlcHRpb25fb25seShldHlwZSwgdmFsdWUpOgogICAgICIiIkZvcm1hdCB0aGUgZXhjZXB0aW9uIHBhcnQgb2YgYSB0cmFjZWJhY2suCkBAIC0yMDQsMTAgKzE5NSwxNCBAQAogICAgIHN0cmluZyBpbiB0aGUgbGlzdC4KIAogICAgICIiIgorICAgIHJldHVybiBsaXN0KF9mb3JtYXRfZXhjZXB0aW9uX29ubHlfaXRlcihldHlwZSwgdmFsdWUpKQorCitkZWYgX2Zvcm1hdF9leGNlcHRpb25fb25seV9pdGVyKGV0eXBlLCB2YWx1ZSk6CiAgICAgIyBHcmFjZWZ1bGx5IGhhbmRsZSAodGhlIHdheSBQeXRob24gMi40IGFuZCBlYXJsaWVyIGRpZCkgdGhlIGNhc2Ugb2YKICAgICAjIGJlaW5nIGNhbGxlZCB3aXRoIChOb25lLCBOb25lKS4KICAgICBpZiBldHlwZSBpcyBOb25lOgotICAgICAgICByZXR1cm4gW19mb3JtYXRfZmluYWxfZXhjX2xpbmUoZXR5cGUsIHZhbHVlKV0KKyAgICAgICAgeWllbGQgX2Zvcm1hdF9maW5hbF9leGNfbGluZShldHlwZSwgdmFsdWUpCisgICAgICAgIHJldHVybgogCiAgICAgc3R5cGUgPSBldHlwZS5fX25hbWVfXwogICAgIHNtb2QgPSBldHlwZS5fX21vZHVsZV9fCkBAIC0yMTUsMjYgKzIxMCwyNiBAQAogICAgICAgICBzdHlwZSA9IHNtb2QgKyAnLicgKyBzdHlwZQogCiAgICAgaWYgbm90IGlzc3ViY2xhc3MoZXR5cGUsIFN5bnRheEVycm9yKToKLSAgICAgICAgcmV0dXJuIFtfZm9ybWF0X2ZpbmFsX2V4Y19saW5lKHN0eXBlLCB2YWx1ZSldCisgICAgICAgIHlpZWxkIF9mb3JtYXRfZmluYWxfZXhjX2xpbmUoc3R5cGUsIHZhbHVlKQorICAgICAgICByZXR1cm4KIAogICAgICMgSXQgd2FzIGEgc3ludGF4IGVycm9yOyBzaG93IGV4YWN0bHkgd2hlcmUgdGhlIHByb2JsZW0gd2FzIGZvdW5kLgotICAgIGxpbmVzID0gW10KICAgICBmaWxlbmFtZSA9IHZhbHVlLmZpbGVuYW1lIG9yICI8c3RyaW5nPiIKICAgICBsaW5lbm8gPSBzdHIodmFsdWUubGluZW5vKSBvciAnPycKLSAgICBsaW5lcy5hcHBlbmQoJyAgRmlsZSAiJXMiLCBsaW5lICVzXG4nICUgKGZpbGVuYW1lLCBsaW5lbm8pKQorICAgIHlpZWxkICcgIEZpbGUgInt9IiwgbGluZSB7fVxuJy5mb3JtYXQoZmlsZW5hbWUsIGxpbmVubykKKwogICAgIGJhZGxpbmUgPSB2YWx1ZS50ZXh0CiAgICAgb2Zmc2V0ID0gdmFsdWUub2Zmc2V0CiAgICAgaWYgYmFkbGluZSBpcyBub3QgTm9uZToKLSAgICAgICAgbGluZXMuYXBwZW5kKCcgICAgJXNcbicgJSBiYWRsaW5lLnN0cmlwKCkpCisgICAgICAgIHlpZWxkICcgICAge31cbicuZm9ybWF0KGJhZGxpbmUuc3RyaXAoKSkKICAgICAgICAgaWYgb2Zmc2V0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgY2FyZXRzcGFjZSA9IGJhZGxpbmUucnN0cmlwKCdcbicpWzpvZmZzZXRdLmxzdHJpcCgpCiAgICAgICAgICAgICAjIG5vbi1zcGFjZSB3aGl0ZXNwYWNlIChsaWtlcyB0YWJzKSBtdXN0IGJlIGtlcHQgZm9yIGFsaWdubWVudAogICAgICAgICAgICAgY2FyZXRzcGFjZSA9ICgoYy5pc3NwYWNlKCkgYW5kIGMgb3IgJyAnKSBmb3IgYyBpbiBjYXJldHNwYWNlKQogICAgICAgICAgICAgIyBvbmx5IHRocmVlIHNwYWNlcyB0byBhY2NvdW50IGZvciBvZmZzZXQxID09IHBvcyAwCi0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoJyAgICVzXlxuJyAlICcnLmpvaW4oY2FyZXRzcGFjZSkpCisgICAgICAgICAgICB5aWVsZCAnICAge31eXG4nLmZvcm1hdCgnJy5qb2luKGNhcmV0c3BhY2UpKQogICAgIG1zZyA9IHZhbHVlLm1zZyBvciAiPG5vIGRldGFpbCBhdmFpbGFibGU+IgotICAgIGxpbmVzLmFwcGVuZCgiJXM6ICVzXG4iICUgKHN0eXBlLCBtc2cpKQotICAgIHJldHVybiBsaW5lcworICAgIHlpZWxkICJ7fToge31cbiIuZm9ybWF0KHN0eXBlLCBtc2cpCiAKIGRlZiBfZm9ybWF0X2ZpbmFsX2V4Y19saW5lKGV0eXBlLCB2YWx1ZSk6CiAgICAgdmFsdWVzdHIgPSBfc29tZV9zdHIodmFsdWUpCkBAIC0yNTAsMzggKzI0NSwzNCBAQAogICAgIGV4Y2VwdDoKICAgICAgICAgcmV0dXJuICc8dW5wcmludGFibGUgJXMgb2JqZWN0PicgJSB0eXBlKHZhbHVlKS5fX25hbWVfXwogCi0KIGRlZiBwcmludF9leGMobGltaXQ9Tm9uZSwgZmlsZT1Ob25lLCBjaGFpbj1UcnVlKToKICAgICAiIiJTaG9ydGhhbmQgZm9yICdwcmludF9leGNlcHRpb24oKnN5cy5leGNfaW5mbygpLCBsaW1pdCwgZmlsZSknLiIiIgotICAgIGlmIGZpbGUgaXMgTm9uZToKLSAgICAgICAgZmlsZSA9IHN5cy5zdGRlcnIKLSAgICB0cnk6Ci0gICAgICAgIGV0eXBlLCB2YWx1ZSwgdGIgPSBzeXMuZXhjX2luZm8oKQotICAgICAgICBwcmludF9leGNlcHRpb24oZXR5cGUsIHZhbHVlLCB0YiwgbGltaXQsIGZpbGUsIGNoYWluKQotICAgIGZpbmFsbHk6Ci0gICAgICAgIGV0eXBlID0gdmFsdWUgPSB0YiA9IE5vbmUKLQorICAgIHByaW50X2V4Y2VwdGlvbigqc3lzLmV4Y19pbmZvKCksIGxpbWl0PWxpbWl0LCBmaWxlPWZpbGUsIGNoYWluPWNoYWluKQogCiBkZWYgZm9ybWF0X2V4YyhsaW1pdD1Ob25lLCBjaGFpbj1UcnVlKToKICAgICAiIiJMaWtlIHByaW50X2V4YygpIGJ1dCByZXR1cm4gYSBzdHJpbmcuIiIiCi0gICAgdHJ5OgotICAgICAgICBldHlwZSwgdmFsdWUsIHRiID0gc3lzLmV4Y19pbmZvKCkKLSAgICAgICAgcmV0dXJuICcnLmpvaW4oCi0gICAgICAgICAgICBmb3JtYXRfZXhjZXB0aW9uKGV0eXBlLCB2YWx1ZSwgdGIsIGxpbWl0LCBjaGFpbikpCi0gICAgZmluYWxseToKLSAgICAgICAgZXR5cGUgPSB2YWx1ZSA9IHRiID0gTm9uZQotCisgICAgcmV0dXJuICIiLmpvaW4oZm9ybWF0X2V4Y2VwdGlvbigqc3lzLmV4Y19pbmZvKCksIGxpbWl0PWxpbWl0LCBjaGFpbj1jaGFpbikpCiAKIGRlZiBwcmludF9sYXN0KGxpbWl0PU5vbmUsIGZpbGU9Tm9uZSwgY2hhaW49VHJ1ZSk6CiAgICAgIiIiVGhpcyBpcyBhIHNob3J0aGFuZCBmb3IgJ3ByaW50X2V4Y2VwdGlvbihzeXMubGFzdF90eXBlLAogICAgIHN5cy5sYXN0X3ZhbHVlLCBzeXMubGFzdF90cmFjZWJhY2ssIGxpbWl0LCBmaWxlKScuIiIiCiAgICAgaWYgbm90IGhhc2F0dHIoc3lzLCAibGFzdF90eXBlIik6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm5vIGxhc3QgZXhjZXB0aW9uIikKLSAgICBpZiBmaWxlIGlzIE5vbmU6Ci0gICAgICAgIGZpbGUgPSBzeXMuc3RkZXJyCiAgICAgcHJpbnRfZXhjZXB0aW9uKHN5cy5sYXN0X3R5cGUsIHN5cy5sYXN0X3ZhbHVlLCBzeXMubGFzdF90cmFjZWJhY2ssCiAgICAgICAgICAgICAgICAgICAgIGxpbWl0LCBmaWxlLCBjaGFpbikKIAorIworIyBQcmludGluZyBhbmQgRXh0cmFjdGluZyBTdGFja3MuCisjCisKK2RlZiBfZXh0cmFjdF9zdGFja19pdGVyKGYsIGxpbWl0PU5vbmUpOgorICAgIHJldHVybiBfZXh0cmFjdF90Yl9vcl9zdGFja19pdGVyKAorICAgICAgICAgICAgICAgIGYsIGxpbWl0LCBsYW1iZGEgZjogKGYsIGYuZl9saW5lbm8sIGYuZl9iYWNrKSkKKworZGVmIF9nZXRfc3RhY2soZik6CisgICAgaWYgZiBpcyBOb25lOgorICAgICAgICBmID0gc3lzLl9nZXRmcmFtZSgpLmZfYmFjay5mX2JhY2sKKyAgICByZXR1cm4gZgogCiBkZWYgcHJpbnRfc3RhY2soZj1Ob25lLCBsaW1pdD1Ob25lLCBmaWxlPU5vbmUpOgogICAgICIiIlByaW50IGEgc3RhY2sgdHJhY2UgZnJvbSBpdHMgaW52b2NhdGlvbiBwb2ludC4KQEAgLTI5MCwyMSArMjgxLDExIEBACiAgICAgc3RhY2sgZnJhbWUgYXQgd2hpY2ggdG8gc3RhcnQuIFRoZSBvcHRpb25hbCAnbGltaXQnIGFuZCAnZmlsZScKICAgICBhcmd1bWVudHMgaGF2ZSB0aGUgc2FtZSBtZWFuaW5nIGFzIGZvciBwcmludF9leGNlcHRpb24oKS4KICAgICAiIiIKLSAgICBpZiBmIGlzIE5vbmU6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJhaXNlIFplcm9EaXZpc2lvbkVycm9yCi0gICAgICAgIGV4Y2VwdCBaZXJvRGl2aXNpb25FcnJvcjoKLSAgICAgICAgICAgIGYgPSBzeXMuZXhjX2luZm8oKVsyXS50Yl9mcmFtZS5mX2JhY2sKLSAgICBwcmludF9saXN0KGV4dHJhY3Rfc3RhY2soZiwgbGltaXQpLCBmaWxlKQorICAgIHByaW50X2xpc3QoZXh0cmFjdF9zdGFjayhfZ2V0X3N0YWNrKGYpLCBsaW1pdD1saW1pdCksIGZpbGU9ZmlsZSkKIAogZGVmIGZvcm1hdF9zdGFjayhmPU5vbmUsIGxpbWl0PU5vbmUpOgogICAgICIiIlNob3J0aGFuZCBmb3IgJ2Zvcm1hdF9saXN0KGV4dHJhY3Rfc3RhY2soZiwgbGltaXQpKScuIiIiCi0gICAgaWYgZiBpcyBOb25lOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcgotICAgICAgICBleGNlcHQgWmVyb0RpdmlzaW9uRXJyb3I6Ci0gICAgICAgICAgICBmID0gc3lzLmV4Y19pbmZvKClbMl0udGJfZnJhbWUuZl9iYWNrCi0gICAgcmV0dXJuIGZvcm1hdF9saXN0KGV4dHJhY3Rfc3RhY2soZiwgbGltaXQpKQorICAgIHJldHVybiBmb3JtYXRfbGlzdChleHRyYWN0X3N0YWNrKF9nZXRfc3RhY2soZiksIGxpbWl0PWxpbWl0KSkKIAogZGVmIGV4dHJhY3Rfc3RhY2soZj1Ob25lLCBsaW1pdD1Ob25lKToKICAgICAiIiJFeHRyYWN0IHRoZSByYXcgdHJhY2ViYWNrIGZyb20gdGhlIGN1cnJlbnQgc3RhY2sgZnJhbWUuCkBAIC0zMTUsMjcgKzI5Niw2IEBACiAgICAgbGluZSBudW1iZXIsIGZ1bmN0aW9uIG5hbWUsIHRleHQpLCBhbmQgdGhlIGVudHJpZXMgYXJlIGluIG9yZGVyCiAgICAgZnJvbSBvbGRlc3QgdG8gbmV3ZXN0IHN0YWNrIGZyYW1lLgogICAgICIiIgotICAgIGlmIGYgaXMgTm9uZToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IKLSAgICAgICAgZXhjZXB0IFplcm9EaXZpc2lvbkVycm9yOgotICAgICAgICAgICAgZiA9IHN5cy5leGNfaW5mbygpWzJdLnRiX2ZyYW1lLmZfYmFjawotICAgIGlmIGxpbWl0IGlzIE5vbmU6Ci0gICAgICAgIGlmIGhhc2F0dHIoc3lzLCAndHJhY2ViYWNrbGltaXQnKToKLSAgICAgICAgICAgIGxpbWl0ID0gc3lzLnRyYWNlYmFja2xpbWl0Ci0gICAgbGlzdCA9IFtdCi0gICAgbiA9IDAKLSAgICB3aGlsZSBmIGlzIG5vdCBOb25lIGFuZCAobGltaXQgaXMgTm9uZSBvciBuIDwgbGltaXQpOgotICAgICAgICBsaW5lbm8gPSBmLmZfbGluZW5vCi0gICAgICAgIGNvID0gZi5mX2NvZGUKLSAgICAgICAgZmlsZW5hbWUgPSBjby5jb19maWxlbmFtZQotICAgICAgICBuYW1lID0gY28uY29fbmFtZQotICAgICAgICBsaW5lY2FjaGUuY2hlY2tjYWNoZShmaWxlbmFtZSkKLSAgICAgICAgbGluZSA9IGxpbmVjYWNoZS5nZXRsaW5lKGZpbGVuYW1lLCBsaW5lbm8sIGYuZl9nbG9iYWxzKQotICAgICAgICBpZiBsaW5lOiBsaW5lID0gbGluZS5zdHJpcCgpCi0gICAgICAgIGVsc2U6IGxpbmUgPSBOb25lCi0gICAgICAgIGxpc3QuYXBwZW5kKChmaWxlbmFtZSwgbGluZW5vLCBuYW1lLCBsaW5lKSkKLSAgICAgICAgZiA9IGYuZl9iYWNrCi0gICAgICAgIG4gPSBuKzEKLSAgICBsaXN0LnJldmVyc2UoKQotICAgIHJldHVybiBsaXN0CisgICAgc3RhY2sgPSBsaXN0KF9leHRyYWN0X3N0YWNrX2l0ZXIoX2dldF9zdGFjayhmKSwgbGltaXQ9bGltaXQpKQorICAgIHN0YWNrLnJldmVyc2UoKQorICAgIHJldHVybiBzdGFjawpkaWZmIC0tZ2l0IGEvTGliL3R1cnRsZS5weSBiL0xpYi90dXJ0bGUucHkKaW5kZXggNDljZDg2ZC4uN2VkYmIwNSAxMDA2NDQKLS0tIGEvTGliL3R1cnRsZS5weQorKysgYi9MaWIvdHVydGxlLnB5CkBAIC0zODQzLDE4ICszODQzLDE4IEBACiAgICAgICAgIGtleSA9ICJUdXJ0bGUuIittZXRob2RuYW1lCiAgICAgICAgIGRvY3NkaWN0W2tleV0gPSBldmFsKGtleSkuX19kb2NfXwogCi0gICAgZiA9IG9wZW4oIiVzLnB5IiAlIGZpbGVuYW1lLCJ3IikKLSAgICBrZXlzID0gc29ydGVkKFt4IGZvciB4IGluIGRvY3NkaWN0LmtleXMoKQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgeC5zcGxpdCgnLicpWzFdIG5vdCBpbiBfYWxpYXNfbGlzdF0pCi0gICAgZi53cml0ZSgnZG9jc2RpY3QgPSB7XG5cbicpCi0gICAgZm9yIGtleSBpbiBrZXlzWzotMV06CisgICAgd2l0aCBvcGVuKCIlcy5weSIgJSBmaWxlbmFtZSwidyIpIGFzIGY6CisgICAgICAgIGtleXMgPSBzb3J0ZWQoW3ggZm9yIHggaW4gZG9jc2RpY3Qua2V5cygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeC5zcGxpdCgnLicpWzFdIG5vdCBpbiBfYWxpYXNfbGlzdF0pCisgICAgICAgIGYud3JpdGUoJ2RvY3NkaWN0ID0ge1xuXG4nKQorICAgICAgICBmb3Iga2V5IGluIGtleXNbOi0xXToKKyAgICAgICAgICAgIGYud3JpdGUoJyVzIDpcbicgJSByZXByKGtleSkpCisgICAgICAgICAgICBmLndyaXRlKCcgICAgICAgICIiIiVzXG4iIiIsXG5cbicgJSBkb2NzZGljdFtrZXldKQorICAgICAgICBrZXkgPSBrZXlzWy0xXQogICAgICAgICBmLndyaXRlKCclcyA6XG4nICUgcmVwcihrZXkpKQotICAgICAgICBmLndyaXRlKCcgICAgICAgICIiIiVzXG4iIiIsXG5cbicgJSBkb2NzZGljdFtrZXldKQotICAgIGtleSA9IGtleXNbLTFdCi0gICAgZi53cml0ZSgnJXMgOlxuJyAlIHJlcHIoa2V5KSkKLSAgICBmLndyaXRlKCcgICAgICAgICIiIiVzXG4iIiJcblxuJyAlIGRvY3NkaWN0W2tleV0pCi0gICAgZi53cml0ZSgifVxuIikKLSAgICBmLmNsb3NlKCkKKyAgICAgICAgZi53cml0ZSgnICAgICAgICAiIiIlc1xuIiIiXG5cbicgJSBkb2NzZGljdFtrZXldKQorICAgICAgICBmLndyaXRlKCJ9XG4iKQorICAgICAgICBmLmNsb3NlKCkKIAogZGVmIHJlYWRfZG9jc3RyaW5ncyhsYW5nKToKICAgICAiIiJSZWFkIGluIGRvY3N0cmluZ3MgZnJvbSBsYW5nLXNwZWNpZmljIGRvY3N0cmluZyBkaWN0aW9uYXJ5LgpkaWZmIC0tZ2l0IGEvTGliL3VuaXR0ZXN0L2Nhc2UucHkgYi9MaWIvdW5pdHRlc3QvY2FzZS5weQppbmRleCBmNTZhZjU1Li5kMDRlYTYxIDEwMDY0NAotLS0gYS9MaWIvdW5pdHRlc3QvY2FzZS5weQorKysgYi9MaWIvdW5pdHRlc3QvY2FzZS5weQpAQCAtNyw2ICs3LDcgQEAKIGltcG9ydCByZQogaW1wb3J0IHdhcm5pbmdzCiBpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBjb250ZXh0bGliCiAKIGZyb20gLiBpbXBvcnQgcmVzdWx0CiBmcm9tIC51dGlsIGltcG9ydCAoc3RyY2xhc3MsIHNhZmVfcmVwciwgX2NvdW50X2RpZmZfYWxsX3B1cnBvc2UsCkBAIC0yNiwxNyArMjcsMTEgQEAKICAgICBpbnN0ZWFkIG9mIHJhaXNpbmcgdGhpcyBkaXJlY3RseS4KICAgICAiIiIKIAotY2xhc3MgX0V4cGVjdGVkRmFpbHVyZShFeGNlcHRpb24pOgorY2xhc3MgX1Nob3VsZFN0b3AoRXhjZXB0aW9uKToKICAgICAiIiIKLSAgICBSYWlzZSB0aGlzIHdoZW4gYSB0ZXN0IGlzIGV4cGVjdGVkIHRvIGZhaWwuCi0KLSAgICBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4KKyAgICBUaGUgdGVzdCBzaG91bGQgc3RvcC4KICAgICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGNfaW5mbyk6Ci0gICAgICAgIHN1cGVyKF9FeHBlY3RlZEZhaWx1cmUsIHNlbGYpLl9faW5pdF9fKCkKLSAgICAgICAgc2VsZi5leGNfaW5mbyA9IGV4Y19pbmZvCi0KIGNsYXNzIF9VbmV4cGVjdGVkU3VjY2VzcyhFeGNlcHRpb24pOgogICAgICIiIgogICAgIFRoZSB0ZXN0IHdhcyBzdXBwb3NlZCB0byBmYWlsLCBidXQgaXQgZGlkbid0IQpAQCAtNDQsMTMgKzM5LDQwIEBACiAKIAogY2xhc3MgX091dGNvbWUob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlc3VsdD1Ob25lKToKKyAgICAgICAgc2VsZi5leHBlY3RpbmdfZmFpbHVyZSA9IEZhbHNlCisgICAgICAgIHNlbGYucmVzdWx0ID0gcmVzdWx0CisgICAgICAgIHNlbGYucmVzdWx0X3N1cHBvcnRzX3N1YnRlc3RzID0gaGFzYXR0cihyZXN1bHQsICJhZGRTdWJUZXN0IikKICAgICAgICAgc2VsZi5zdWNjZXNzID0gVHJ1ZQotICAgICAgICBzZWxmLnNraXBwZWQgPSBOb25lCi0gICAgICAgIHNlbGYudW5leHBlY3RlZFN1Y2Nlc3MgPSBOb25lCisgICAgICAgIHNlbGYuc2tpcHBlZCA9IFtdCiAgICAgICAgIHNlbGYuZXhwZWN0ZWRGYWlsdXJlID0gTm9uZQogICAgICAgICBzZWxmLmVycm9ycyA9IFtdCi0gICAgICAgIHNlbGYuZmFpbHVyZXMgPSBbXQorCisgICAgQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKKyAgICBkZWYgdGVzdFBhcnRFeGVjdXRvcihzZWxmLCB0ZXN0X2Nhc2UsIGlzVGVzdD1GYWxzZSk6CisgICAgICAgIG9sZF9zdWNjZXNzID0gc2VsZi5zdWNjZXNzCisgICAgICAgIHNlbGYuc3VjY2VzcyA9IFRydWUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgeWllbGQKKyAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0IFNraXBUZXN0IGFzIGU6CisgICAgICAgICAgICBzZWxmLnN1Y2Nlc3MgPSBGYWxzZQorICAgICAgICAgICAgc2VsZi5za2lwcGVkLmFwcGVuZCgodGVzdF9jYXNlLCBzdHIoZSkpKQorICAgICAgICBleGNlcHQgX1Nob3VsZFN0b3A6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIGV4Y19pbmZvID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgICAgIGlmIHNlbGYuZXhwZWN0aW5nX2ZhaWx1cmU6CisgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZEZhaWx1cmUgPSBleGNfaW5mbworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLnN1Y2Nlc3MgPSBGYWxzZQorICAgICAgICAgICAgICAgIHNlbGYuZXJyb3JzLmFwcGVuZCgodGVzdF9jYXNlLCBleGNfaW5mbykpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBzZWxmLnJlc3VsdF9zdXBwb3J0c19zdWJ0ZXN0cyBhbmQgc2VsZi5zdWNjZXNzOgorICAgICAgICAgICAgICAgIHNlbGYuZXJyb3JzLmFwcGVuZCgodGVzdF9jYXNlLCBOb25lKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuc3VjY2VzcyA9IHNlbGYuc3VjY2VzcyBhbmQgb2xkX3N1Y2Nlc3MKIAogCiBkZWYgX2lkKG9iaik6CkBAIC04OCwxNiArMTEwLDkgQEAKICAgICAgICAgcmV0dXJuIHNraXAocmVhc29uKQogICAgIHJldHVybiBfaWQKIAotCi1kZWYgZXhwZWN0ZWRGYWlsdXJlKGZ1bmMpOgotICAgIEBmdW5jdG9vbHMud3JhcHMoZnVuYykKLSAgICBkZWYgd3JhcHBlcigqYXJncywgKiprd2FyZ3MpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmdW5jKCphcmdzLCAqKmt3YXJncykKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHJhaXNlIF9FeHBlY3RlZEZhaWx1cmUoc3lzLmV4Y19pbmZvKCkpCi0gICAgICAgIHJhaXNlIF9VbmV4cGVjdGVkU3VjY2VzcwotICAgIHJldHVybiB3cmFwcGVyCitkZWYgZXhwZWN0ZWRGYWlsdXJlKHRlc3RfaXRlbSk6CisgICAgdGVzdF9pdGVtLl9fdW5pdHRlc3RfZXhwZWN0aW5nX2ZhaWx1cmVfXyA9IFRydWUKKyAgICByZXR1cm4gdGVzdF9pdGVtCiAKIAogY2xhc3MgX0Fzc2VydFJhaXNlc0Jhc2VDb250ZXh0KG9iamVjdCk6CkBAIC0yNzAsNyArMjg1LDcgQEAKICAgICAgICAgICAgbm90IGhhdmUgYSBtZXRob2Qgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuCiAgICAgICAgICIiIgogICAgICAgICBzZWxmLl90ZXN0TWV0aG9kTmFtZSA9IG1ldGhvZE5hbWUKLSAgICAgICAgc2VsZi5fb3V0Y29tZUZvckRvQ2xlYW51cHMgPSBOb25lCisgICAgICAgIHNlbGYuX291dGNvbWUgPSBOb25lCiAgICAgICAgIHNlbGYuX3Rlc3RNZXRob2REb2MgPSAnTm8gdGVzdCcKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgdGVzdE1ldGhvZCA9IGdldGF0dHIoc2VsZiwgbWV0aG9kTmFtZSkKQEAgLTI4Myw2ICsyOTgsNyBAQAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5fdGVzdE1ldGhvZERvYyA9IHRlc3RNZXRob2QuX19kb2NfXwogICAgICAgICBzZWxmLl9jbGVhbnVwcyA9IFtdCisgICAgICAgIHNlbGYuX3N1YnRlc3QgPSBOb25lCiAKICAgICAgICAgIyBNYXAgdHlwZXMgdG8gY3VzdG9tIGFzc2VydEVxdWFsIGZ1bmN0aW9ucyB0aGF0IHdpbGwgY29tcGFyZQogICAgICAgICAjIGluc3RhbmNlcyBvZiBzYWlkIHR5cGUgaW4gbW9yZSBkZXRhaWwgdG8gZ2VuZXJhdGUgYSBtb3JlIHVzZWZ1bApAQCAtMzcwLDQ0ICszODYsODAgQEAKICAgICAgICAgcmV0dXJuICI8JXMgdGVzdE1ldGhvZD0lcz4iICUgXAogICAgICAgICAgICAgICAgKHN0cmNsYXNzKHNlbGYuX19jbGFzc19fKSwgc2VsZi5fdGVzdE1ldGhvZE5hbWUpCiAKLSAgICBkZWYgX2FkZFNraXAoc2VsZiwgcmVzdWx0LCByZWFzb24pOgorICAgIGRlZiBfYWRkU2tpcChzZWxmLCByZXN1bHQsIHRlc3RfY2FzZSwgcmVhc29uKToKICAgICAgICAgYWRkU2tpcCA9IGdldGF0dHIocmVzdWx0LCAnYWRkU2tpcCcsIE5vbmUpCiAgICAgICAgIGlmIGFkZFNraXAgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBhZGRTa2lwKHNlbGYsIHJlYXNvbikKKyAgICAgICAgICAgIGFkZFNraXAodGVzdF9jYXNlLCByZWFzb24pCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJUZXN0UmVzdWx0IGhhcyBubyBhZGRTa2lwIG1ldGhvZCwgc2tpcHMgbm90IHJlcG9ydGVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVudGltZVdhcm5pbmcsIDIpCi0gICAgICAgICAgICByZXN1bHQuYWRkU3VjY2VzcyhzZWxmKQorICAgICAgICAgICAgcmVzdWx0LmFkZFN1Y2Nlc3ModGVzdF9jYXNlKQogCi0gICAgZGVmIF9leGVjdXRlVGVzdFBhcnQoc2VsZiwgZnVuY3Rpb24sIG91dGNvbWUsIGlzVGVzdD1GYWxzZSk6CisgICAgQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKKyAgICBkZWYgc3ViVGVzdChzZWxmLCBtc2c9Tm9uZSwgKipwYXJhbXMpOgorICAgICAgICAiIiJSZXR1cm4gYSBjb250ZXh0IG1hbmFnZXIgdGhhdCB3aWxsIHJldHVybiB0aGUgZW5jbG9zZWQgYmxvY2sKKyAgICAgICAgb2YgY29kZSBpbiBhIHN1YnRlc3QgaWRlbnRpZmllZCBieSB0aGUgb3B0aW9uYWwgbWVzc2FnZSBhbmQKKyAgICAgICAga2V5d29yZCBwYXJhbWV0ZXJzLiAgQSBmYWlsdXJlIGluIHRoZSBzdWJ0ZXN0IG1hcmtzIHRoZSB0ZXN0CisgICAgICAgIGNhc2UgYXMgZmFpbGVkIGJ1dCByZXN1bWVzIGV4ZWN1dGlvbiBhdCB0aGUgZW5kIG9mIHRoZSBlbmNsb3NlZAorICAgICAgICBibG9jaywgYWxsb3dpbmcgZnVydGhlciB0ZXN0IGNvZGUgdG8gYmUgZXhlY3V0ZWQuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3Qgc2VsZi5fb3V0Y29tZS5yZXN1bHRfc3VwcG9ydHNfc3VidGVzdHM6CisgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHBhcmVudCA9IHNlbGYuX3N1YnRlc3QKKyAgICAgICAgaWYgcGFyZW50IGlzIE5vbmU6CisgICAgICAgICAgICBwYXJhbXNfbWFwID0gY29sbGVjdGlvbnMuQ2hhaW5NYXAocGFyYW1zKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcGFyYW1zX21hcCA9IHBhcmVudC5wYXJhbXMubmV3X2NoaWxkKHBhcmFtcykKKyAgICAgICAgc2VsZi5fc3VidGVzdCA9IF9TdWJUZXN0KHNlbGYsIG1zZywgcGFyYW1zX21hcCkKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgZnVuY3Rpb24oKQotICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICByYWlzZQotICAgICAgICBleGNlcHQgU2tpcFRlc3QgYXMgZToKLSAgICAgICAgICAgIG91dGNvbWUuc3VjY2VzcyA9IEZhbHNlCi0gICAgICAgICAgICBvdXRjb21lLnNraXBwZWQgPSBzdHIoZSkKLSAgICAgICAgZXhjZXB0IF9VbmV4cGVjdGVkU3VjY2VzczoKLSAgICAgICAgICAgIGV4Y19pbmZvID0gc3lzLmV4Y19pbmZvKCkKLSAgICAgICAgICAgIG91dGNvbWUuc3VjY2VzcyA9IEZhbHNlCi0gICAgICAgICAgICBpZiBpc1Rlc3Q6Ci0gICAgICAgICAgICAgICAgb3V0Y29tZS51bmV4cGVjdGVkU3VjY2VzcyA9IGV4Y19pbmZvCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG91dGNvbWUuZXJyb3JzLmFwcGVuZChleGNfaW5mbykKLSAgICAgICAgZXhjZXB0IF9FeHBlY3RlZEZhaWx1cmU6Ci0gICAgICAgICAgICBvdXRjb21lLnN1Y2Nlc3MgPSBGYWxzZQotICAgICAgICAgICAgZXhjX2luZm8gPSBzeXMuZXhjX2luZm8oKQotICAgICAgICAgICAgaWYgaXNUZXN0OgotICAgICAgICAgICAgICAgIG91dGNvbWUuZXhwZWN0ZWRGYWlsdXJlID0gZXhjX2luZm8KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgb3V0Y29tZS5lcnJvcnMuYXBwZW5kKGV4Y19pbmZvKQotICAgICAgICBleGNlcHQgc2VsZi5mYWlsdXJlRXhjZXB0aW9uOgotICAgICAgICAgICAgb3V0Y29tZS5zdWNjZXNzID0gRmFsc2UKLSAgICAgICAgICAgIG91dGNvbWUuZmFpbHVyZXMuYXBwZW5kKHN5cy5leGNfaW5mbygpKQotICAgICAgICAgICAgZXhjX2luZm8gPSBzeXMuZXhjX2luZm8oKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICBvdXRjb21lLnN1Y2Nlc3MgPSBGYWxzZQotICAgICAgICAgICAgb3V0Y29tZS5lcnJvcnMuYXBwZW5kKHN5cy5leGNfaW5mbygpKQorICAgICAgICAgICAgd2l0aCBzZWxmLl9vdXRjb21lLnRlc3RQYXJ0RXhlY3V0b3Ioc2VsZi5fc3VidGVzdCwgaXNUZXN0PVRydWUpOgorICAgICAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fb3V0Y29tZS5zdWNjZXNzOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuX291dGNvbWUucmVzdWx0CisgICAgICAgICAgICAgICAgaWYgcmVzdWx0IGlzIG5vdCBOb25lIGFuZCByZXN1bHQuZmFpbGZhc3Q6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIF9TaG91bGRTdG9wCisgICAgICAgICAgICBlbGlmIHNlbGYuX291dGNvbWUuZXhwZWN0ZWRGYWlsdXJlOgorICAgICAgICAgICAgICAgICMgSWYgdGhlIHRlc3QgaXMgZXhwZWN0aW5nIGEgZmFpbHVyZSwgd2UgcmVhbGx5IHdhbnQgdG8KKyAgICAgICAgICAgICAgICAjIHN0b3Agbm93IGFuZCByZWdpc3RlciB0aGUgZXhwZWN0ZWQgZmFpbHVyZS4KKyAgICAgICAgICAgICAgICByYWlzZSBfU2hvdWxkU3RvcAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fc3VidGVzdCA9IHBhcmVudAorCisgICAgZGVmIF9mZWVkRXJyb3JzVG9SZXN1bHQoc2VsZiwgcmVzdWx0LCBlcnJvcnMpOgorICAgICAgICBmb3IgdGVzdCwgZXhjX2luZm8gaW4gZXJyb3JzOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh0ZXN0LCBfU3ViVGVzdCk6CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZFN1YlRlc3QodGVzdC50ZXN0X2Nhc2UsIHRlc3QsIGV4Y19pbmZvKQorICAgICAgICAgICAgZWxpZiBleGNfaW5mbyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBpZiBpc3N1YmNsYXNzKGV4Y19pbmZvWzBdLCBzZWxmLmZhaWx1cmVFeGNlcHRpb24pOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkRmFpbHVyZSh0ZXN0LCBleGNfaW5mbykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkRXJyb3IodGVzdCwgZXhjX2luZm8pCisKKyAgICBkZWYgX2FkZEV4cGVjdGVkRmFpbHVyZShzZWxmLCByZXN1bHQsIGV4Y19pbmZvKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYWRkRXhwZWN0ZWRGYWlsdXJlID0gcmVzdWx0LmFkZEV4cGVjdGVkRmFpbHVyZQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJUZXN0UmVzdWx0IGhhcyBubyBhZGRFeHBlY3RlZEZhaWx1cmUgbWV0aG9kLCByZXBvcnRpbmcgYXMgcGFzc2VzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUnVudGltZVdhcm5pbmcpCisgICAgICAgICAgICByZXN1bHQuYWRkU3VjY2VzcyhzZWxmKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYWRkRXhwZWN0ZWRGYWlsdXJlKHNlbGYsIGV4Y19pbmZvKQorCisgICAgZGVmIF9hZGRVbmV4cGVjdGVkU3VjY2VzcyhzZWxmLCByZXN1bHQpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBhZGRVbmV4cGVjdGVkU3VjY2VzcyA9IHJlc3VsdC5hZGRVbmV4cGVjdGVkU3VjY2VzcworICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJUZXN0UmVzdWx0IGhhcyBubyBhZGRVbmV4cGVjdGVkU3VjY2VzcyBtZXRob2QsIHJlcG9ydGluZyBhcyBmYWlsdXJlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUnVudGltZVdhcm5pbmcpCisgICAgICAgICAgICAjIFdlIG5lZWQgdG8gcGFzcyBhbiBhY3R1YWwgZXhjZXB0aW9uIGFuZCB0cmFjZWJhY2sgdG8gYWRkRmFpbHVyZSwKKyAgICAgICAgICAgICMgb3RoZXJ3aXNlIHRoZSBsZWdhY3kgcmVzdWx0IGNhbiBjaG9rZS4KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByYWlzZSBfVW5leHBlY3RlZFN1Y2Nlc3MgZnJvbSBOb25lCisgICAgICAgICAgICBleGNlcHQgX1VuZXhwZWN0ZWRTdWNjZXNzOgorICAgICAgICAgICAgICAgIHJlc3VsdC5hZGRGYWlsdXJlKHNlbGYsIHN5cy5leGNfaW5mbygpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYWRkVW5leHBlY3RlZFN1Y2Nlc3Moc2VsZikKIAogICAgIGRlZiBydW4oc2VsZiwgcmVzdWx0PU5vbmUpOgogICAgICAgICBvcmlnX3Jlc3VsdCA9IHJlc3VsdApAQCAtNDI2LDQ2ICs0NzgsMzggQEAKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBza2lwX3doeSA9IChnZXRhdHRyKHNlbGYuX19jbGFzc19fLCAnX191bml0dGVzdF9za2lwX3doeV9fJywgJycpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgZ2V0YXR0cih0ZXN0TWV0aG9kLCAnX191bml0dGVzdF9za2lwX3doeV9fJywgJycpKQotICAgICAgICAgICAgICAgIHNlbGYuX2FkZFNraXAocmVzdWx0LCBza2lwX3doeSkKKyAgICAgICAgICAgICAgICBzZWxmLl9hZGRTa2lwKHJlc3VsdCwgc2VsZiwgc2tpcF93aHkpCiAgICAgICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgICAgIHJlc3VsdC5zdG9wVGVzdChzZWxmKQogICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGV4cGVjdGluZ19mYWlsdXJlID0gZ2V0YXR0cih0ZXN0TWV0aG9kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fdW5pdHRlc3RfZXhwZWN0aW5nX2ZhaWx1cmVfXyIsIEZhbHNlKQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBvdXRjb21lID0gX091dGNvbWUoKQotICAgICAgICAgICAgc2VsZi5fb3V0Y29tZUZvckRvQ2xlYW51cHMgPSBvdXRjb21lCisgICAgICAgICAgICBvdXRjb21lID0gX091dGNvbWUocmVzdWx0KQorICAgICAgICAgICAgc2VsZi5fb3V0Y29tZSA9IG91dGNvbWUKIAotICAgICAgICAgICAgc2VsZi5fZXhlY3V0ZVRlc3RQYXJ0KHNlbGYuc2V0VXAsIG91dGNvbWUpCisgICAgICAgICAgICB3aXRoIG91dGNvbWUudGVzdFBhcnRFeGVjdXRvcihzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLnNldFVwKCkKICAgICAgICAgICAgIGlmIG91dGNvbWUuc3VjY2VzczoKLSAgICAgICAgICAgICAgICBzZWxmLl9leGVjdXRlVGVzdFBhcnQodGVzdE1ldGhvZCwgb3V0Y29tZSwgaXNUZXN0PVRydWUpCi0gICAgICAgICAgICAgICAgc2VsZi5fZXhlY3V0ZVRlc3RQYXJ0KHNlbGYudGVhckRvd24sIG91dGNvbWUpCisgICAgICAgICAgICAgICAgb3V0Y29tZS5leHBlY3RpbmdfZmFpbHVyZSA9IGV4cGVjdGluZ19mYWlsdXJlCisgICAgICAgICAgICAgICAgd2l0aCBvdXRjb21lLnRlc3RQYXJ0RXhlY3V0b3Ioc2VsZiwgaXNUZXN0PVRydWUpOgorICAgICAgICAgICAgICAgICAgICB0ZXN0TWV0aG9kKCkKKyAgICAgICAgICAgICAgICBvdXRjb21lLmV4cGVjdGluZ19mYWlsdXJlID0gRmFsc2UKKyAgICAgICAgICAgICAgICB3aXRoIG91dGNvbWUudGVzdFBhcnRFeGVjdXRvcihzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50ZWFyRG93bigpCiAKICAgICAgICAgICAgIHNlbGYuZG9DbGVhbnVwcygpCisgICAgICAgICAgICBmb3IgdGVzdCwgcmVhc29uIGluIG91dGNvbWUuc2tpcHBlZDoKKyAgICAgICAgICAgICAgICBzZWxmLl9hZGRTa2lwKHJlc3VsdCwgdGVzdCwgcmVhc29uKQorICAgICAgICAgICAgc2VsZi5fZmVlZEVycm9yc1RvUmVzdWx0KHJlc3VsdCwgb3V0Y29tZS5lcnJvcnMpCiAgICAgICAgICAgICBpZiBvdXRjb21lLnN1Y2Nlc3M6Ci0gICAgICAgICAgICAgICAgcmVzdWx0LmFkZFN1Y2Nlc3Moc2VsZikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgb3V0Y29tZS5za2lwcGVkIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9hZGRTa2lwKHJlc3VsdCwgb3V0Y29tZS5za2lwcGVkKQotICAgICAgICAgICAgICAgIGZvciBleGNfaW5mbyBpbiBvdXRjb21lLmVycm9yczoKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZEVycm9yKHNlbGYsIGV4Y19pbmZvKQotICAgICAgICAgICAgICAgIGZvciBleGNfaW5mbyBpbiBvdXRjb21lLmZhaWx1cmVzOgotICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkRmFpbHVyZShzZWxmLCBleGNfaW5mbykKLSAgICAgICAgICAgICAgICBpZiBvdXRjb21lLnVuZXhwZWN0ZWRTdWNjZXNzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBhZGRVbmV4cGVjdGVkU3VjY2VzcyA9IGdldGF0dHIocmVzdWx0LCAnYWRkVW5leHBlY3RlZFN1Y2Nlc3MnLCBOb25lKQotICAgICAgICAgICAgICAgICAgICBpZiBhZGRVbmV4cGVjdGVkU3VjY2VzcyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGFkZFVuZXhwZWN0ZWRTdWNjZXNzKHNlbGYpCisgICAgICAgICAgICAgICAgaWYgZXhwZWN0aW5nX2ZhaWx1cmU6CisgICAgICAgICAgICAgICAgICAgIGlmIG91dGNvbWUuZXhwZWN0ZWRGYWlsdXJlOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fYWRkRXhwZWN0ZWRGYWlsdXJlKHJlc3VsdCwgb3V0Y29tZS5leHBlY3RlZEZhaWx1cmUpCiAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJUZXN0UmVzdWx0IGhhcyBubyBhZGRVbmV4cGVjdGVkU3VjY2VzcyBtZXRob2QsIHJlcG9ydGluZyBhcyBmYWlsdXJlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bnRpbWVXYXJuaW5nKQotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZEZhaWx1cmUoc2VsZiwgb3V0Y29tZS51bmV4cGVjdGVkU3VjY2VzcykKLQotICAgICAgICAgICAgICAgIGlmIG91dGNvbWUuZXhwZWN0ZWRGYWlsdXJlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBhZGRFeHBlY3RlZEZhaWx1cmUgPSBnZXRhdHRyKHJlc3VsdCwgJ2FkZEV4cGVjdGVkRmFpbHVyZScsIE5vbmUpCi0gICAgICAgICAgICAgICAgICAgIGlmIGFkZEV4cGVjdGVkRmFpbHVyZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGFkZEV4cGVjdGVkRmFpbHVyZShzZWxmLCBvdXRjb21lLmV4cGVjdGVkRmFpbHVyZSkKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIlRlc3RSZXN1bHQgaGFzIG5vIGFkZEV4cGVjdGVkRmFpbHVyZSBtZXRob2QsIHJlcG9ydGluZyBhcyBwYXNzZXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSdW50aW1lV2FybmluZykKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hZGRTdWNjZXNzKHNlbGYpCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9hZGRVbmV4cGVjdGVkU3VjY2VzcyhyZXN1bHQpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZFN1Y2Nlc3Moc2VsZikKICAgICAgICAgICAgIHJldHVybiByZXN1bHQKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHJlc3VsdC5zdG9wVGVzdChzZWxmKQpAQCAtNDc3LDExICs1MjEsMTEgQEAKICAgICBkZWYgZG9DbGVhbnVwcyhzZWxmKToKICAgICAgICAgIiIiRXhlY3V0ZSBhbGwgY2xlYW51cCBmdW5jdGlvbnMuIE5vcm1hbGx5IGNhbGxlZCBmb3IgeW91IGFmdGVyCiAgICAgICAgIHRlYXJEb3duLiIiIgotICAgICAgICBvdXRjb21lID0gc2VsZi5fb3V0Y29tZUZvckRvQ2xlYW51cHMgb3IgX091dGNvbWUoKQorICAgICAgICBvdXRjb21lID0gc2VsZi5fb3V0Y29tZSBvciBfT3V0Y29tZSgpCiAgICAgICAgIHdoaWxlIHNlbGYuX2NsZWFudXBzOgogICAgICAgICAgICAgZnVuY3Rpb24sIGFyZ3MsIGt3YXJncyA9IHNlbGYuX2NsZWFudXBzLnBvcCgpCi0gICAgICAgICAgICBwYXJ0ID0gbGFtYmRhOiBmdW5jdGlvbigqYXJncywgKiprd2FyZ3MpCi0gICAgICAgICAgICBzZWxmLl9leGVjdXRlVGVzdFBhcnQocGFydCwgb3V0Y29tZSkKKyAgICAgICAgICAgIHdpdGggb3V0Y29tZS50ZXN0UGFydEV4ZWN1dG9yKHNlbGYpOgorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCphcmdzLCAqKmt3YXJncykKIAogICAgICAgICAjIHJldHVybiB0aGlzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQogICAgICAgICAjIGV2ZW4gdGhvdWdoIHdlIG5vIGxvbmdlciB1cyBpdCBpbnRlcm5hbGx5CkBAIC0xMjEyLDMgKzEyNTYsMzkgQEAKICAgICAgICAgICAgIHJldHVybiBzZWxmLl9kZXNjcmlwdGlvbgogICAgICAgICBkb2MgPSBzZWxmLl90ZXN0RnVuYy5fX2RvY19fCiAgICAgICAgIHJldHVybiBkb2MgYW5kIGRvYy5zcGxpdCgiXG4iKVswXS5zdHJpcCgpIG9yIE5vbmUKKworCitjbGFzcyBfU3ViVGVzdChUZXN0Q2FzZSk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9jYXNlLCBtZXNzYWdlLCBwYXJhbXMpOgorICAgICAgICBzdXBlcigpLl9faW5pdF9fKCkKKyAgICAgICAgc2VsZi5fbWVzc2FnZSA9IG1lc3NhZ2UKKyAgICAgICAgc2VsZi50ZXN0X2Nhc2UgPSB0ZXN0X2Nhc2UKKyAgICAgICAgc2VsZi5wYXJhbXMgPSBwYXJhbXMKKyAgICAgICAgc2VsZi5mYWlsdXJlRXhjZXB0aW9uID0gdGVzdF9jYXNlLmZhaWx1cmVFeGNlcHRpb24KKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzdWJ0ZXN0cyBjYW5ub3QgYmUgcnVuIGRpcmVjdGx5IikKKworICAgIGRlZiBfc3ViRGVzY3JpcHRpb24oc2VsZik6CisgICAgICAgIHBhcnRzID0gW10KKyAgICAgICAgaWYgc2VsZi5fbWVzc2FnZToKKyAgICAgICAgICAgIHBhcnRzLmFwcGVuZCgiW3t9XSIuZm9ybWF0KHNlbGYuX21lc3NhZ2UpKQorICAgICAgICBpZiBzZWxmLnBhcmFtczoKKyAgICAgICAgICAgIHBhcmFtc19kZXNjID0gJywgJy5qb2luKAorICAgICAgICAgICAgICAgICJ7fT17IXJ9Ii5mb3JtYXQoaywgdikKKyAgICAgICAgICAgICAgICBmb3IgKGssIHYpIGluIHNvcnRlZChzZWxmLnBhcmFtcy5pdGVtcygpKSkKKyAgICAgICAgICAgIHBhcnRzLmFwcGVuZCgiKHt9KSIuZm9ybWF0KHBhcmFtc19kZXNjKSkKKyAgICAgICAgcmV0dXJuICIgIi5qb2luKHBhcnRzKSBvciAnKDxzdWJ0ZXN0PiknCisKKyAgICBkZWYgaWQoc2VsZik6CisgICAgICAgIHJldHVybiAie30ge30iLmZvcm1hdChzZWxmLnRlc3RfY2FzZS5pZCgpLCBzZWxmLl9zdWJEZXNjcmlwdGlvbigpKQorCisgICAgZGVmIHNob3J0RGVzY3JpcHRpb24oc2VsZik6CisgICAgICAgICIiIlJldHVybnMgYSBvbmUtbGluZSBkZXNjcmlwdGlvbiBvZiB0aGUgc3VidGVzdCwgb3IgTm9uZSBpZiBubworICAgICAgICBkZXNjcmlwdGlvbiBoYXMgYmVlbiBwcm92aWRlZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLnRlc3RfY2FzZS5zaG9ydERlc2NyaXB0aW9uKCkKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gInt9IHt9Ii5mb3JtYXQoc2VsZi50ZXN0X2Nhc2UsIHNlbGYuX3N1YkRlc2NyaXB0aW9uKCkpCmRpZmYgLS1naXQgYS9MaWIvdW5pdHRlc3QvbG9hZGVyLnB5IGIvTGliL3VuaXR0ZXN0L2xvYWRlci5weQppbmRleCAyYjkyNTI1Li5hZDg5Y2QwIDEwMDY0NAotLS0gYS9MaWIvdW5pdHRlc3QvbG9hZGVyLnB5CisrKyBiL0xpYi91bml0dGVzdC9sb2FkZXIucHkKQEAgLTM0LDYgKzM0LDE0IEBACiAgICAgVGVzdENsYXNzID0gdHlwZShjbGFzc25hbWUsIChjYXNlLlRlc3RDYXNlLCksIGF0dHJzKQogICAgIHJldHVybiBzdWl0ZUNsYXNzKChUZXN0Q2xhc3MobWV0aG9kbmFtZSksKSkKIAorZGVmIF9tYWtlX3NraXBwZWRfdGVzdChtZXRob2RuYW1lLCBleGNlcHRpb24sIHN1aXRlQ2xhc3MpOgorICAgIEBjYXNlLnNraXAoc3RyKGV4Y2VwdGlvbikpCisgICAgZGVmIHRlc3RTa2lwcGVkKHNlbGYpOgorICAgICAgICBwYXNzCisgICAgYXR0cnMgPSB7bWV0aG9kbmFtZTogdGVzdFNraXBwZWR9CisgICAgVGVzdENsYXNzID0gdHlwZSgiTW9kdWxlU2tpcHBlZCIsIChjYXNlLlRlc3RDYXNlLCksIGF0dHJzKQorICAgIHJldHVybiBzdWl0ZUNsYXNzKChUZXN0Q2xhc3MobWV0aG9kbmFtZSksKSkKKwogZGVmIF9qeXRob25fYXdhcmVfc3BsaXRleHQocGF0aCk6CiAgICAgaWYgcGF0aC5sb3dlcigpLmVuZHN3aXRoKCckcHkuY2xhc3MnKToKICAgICAgICAgcmV0dXJuIHBhdGhbOi05XQpAQCAtMTY5LDYgKzE3Nyw5IEBACiAgICAgICAgIFRoZSBwYXR0ZXJuIGlzIGRlbGliZXJhdGVseSBub3Qgc3RvcmVkIGFzIGEgbG9hZGVyIGF0dHJpYnV0ZSBzbyB0aGF0CiAgICAgICAgIHBhY2thZ2VzIGNhbiBjb250aW51ZSBkaXNjb3ZlcnkgdGhlbXNlbHZlcy4gdG9wX2xldmVsX2RpciBpcyBzdG9yZWQgc28KICAgICAgICAgbG9hZF90ZXN0cyBkb2VzIG5vdCBuZWVkIHRvIHBhc3MgdGhpcyBhcmd1bWVudCBpbiB0byBsb2FkZXIuZGlzY292ZXIoKS4KKworICAgICAgICBQYXRocyBhcmUgc29ydGVkIGJlZm9yZSBiZWluZyBpbXBvcnRlZCB0byBlbnN1cmUgcmVwcm9kdWNpYmxlIGV4ZWN1dGlvbgorICAgICAgICBvcmRlciBldmVuIG9uIGZpbGVzeXN0ZW1zIHdpdGggbm9uLWFscGhhYmV0aWNhbCBvcmRlcmluZyBsaWtlIGV4dDMvNC4KICAgICAgICAgIiIiCiAgICAgICAgIHNldF9pbXBsaWNpdF90b3AgPSBGYWxzZQogICAgICAgICBpZiB0b3BfbGV2ZWxfZGlyIGlzIE5vbmUgYW5kIHNlbGYuX3RvcF9sZXZlbF9kaXIgaXMgbm90IE5vbmU6CkBAIC0yNDUsNyArMjU2LDcgQEAKIAogICAgIGRlZiBfZmluZF90ZXN0cyhzZWxmLCBzdGFydF9kaXIsIHBhdHRlcm4pOgogICAgICAgICAiIiJVc2VkIGJ5IGRpc2NvdmVyeS4gWWllbGRzIHRlc3Qgc3VpdGVzIGl0IGxvYWRzLiIiIgotICAgICAgICBwYXRocyA9IG9zLmxpc3RkaXIoc3RhcnRfZGlyKQorICAgICAgICBwYXRocyA9IHNvcnRlZChvcy5saXN0ZGlyKHN0YXJ0X2RpcikpCiAKICAgICAgICAgZm9yIHBhdGggaW4gcGF0aHM6CiAgICAgICAgICAgICBmdWxsX3BhdGggPSBvcy5wYXRoLmpvaW4oc3RhcnRfZGlyLCBwYXRoKQpAQCAtMjU5LDYgKzI3MCw4IEBACiAgICAgICAgICAgICAgICAgbmFtZSA9IHNlbGYuX2dldF9uYW1lX2Zyb21fcGF0aChmdWxsX3BhdGgpCiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBtb2R1bGUgPSBzZWxmLl9nZXRfbW9kdWxlX2Zyb21fbmFtZShuYW1lKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBjYXNlLlNraXBUZXN0IGFzIGU6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIF9tYWtlX3NraXBwZWRfdGVzdChuYW1lLCBlLCBzZWxmLnN1aXRlQ2xhc3MpCiAgICAgICAgICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgICAgICAgICB5aWVsZCBfbWFrZV9mYWlsZWRfaW1wb3J0X3Rlc3QobmFtZSwgc2VsZi5zdWl0ZUNsYXNzKQogICAgICAgICAgICAgICAgIGVsc2U6CkBAIC0yOTEsOCArMzA0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICMgdGVzdHMgbG9hZGVkIGZyb20gcGFja2FnZSBmaWxlCiAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0ZXN0cwogICAgICAgICAgICAgICAgICAgICAjIHJlY3Vyc2UgaW50byB0aGUgcGFja2FnZQotICAgICAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiBzZWxmLl9maW5kX3Rlc3RzKGZ1bGxfcGF0aCwgcGF0dGVybik6Ci0gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0ZXN0CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIGZyb20gc2VsZi5fZmluZF90ZXN0cyhmdWxsX3BhdGgsIHBhdHRlcm4pCiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgbG9hZF90ZXN0cyhzZWxmLCB0ZXN0cywgcGF0dGVybikKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC9tYWluLnB5IGIvTGliL3VuaXR0ZXN0L21haW4ucHkKaW5kZXggZWFkNjQ5My4uZWRiMTQxYSAxMDA2NDQKLS0tIGEvTGliL3VuaXR0ZXN0L21haW4ucHkKKysrIGIvTGliL3VuaXR0ZXN0L21haW4ucHkKQEAgLTE2NCw3ICsxNjQsMTAgQEAKICAgICAgICAgICAgICAgICAjIHRvIHN1cHBvcnQgcHl0aG9uIC1tIHVuaXR0ZXN0IC4uLgogICAgICAgICAgICAgICAgIHNlbGYubW9kdWxlID0gTm9uZQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi50ZXN0TmFtZXMgPSAoc2VsZi5kZWZhdWx0VGVzdCwpCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYuZGVmYXVsdFRlc3QsIHN0cik6CisgICAgICAgICAgICAgICAgc2VsZi50ZXN0TmFtZXMgPSAoc2VsZi5kZWZhdWx0VGVzdCwpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYudGVzdE5hbWVzID0gbGlzdChzZWxmLmRlZmF1bHRUZXN0KQogICAgICAgICBzZWxmLmNyZWF0ZVRlc3RzKCkKIAogICAgIGRlZiBjcmVhdGVUZXN0cyhzZWxmKToKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC9tb2NrLnB5IGIvTGliL3VuaXR0ZXN0L21vY2sucHkKaW5kZXggMDczODY5YS4uZGM1YzAzMyAxMDA2NDQKLS0tIGEvTGliL3VuaXR0ZXN0L21vY2sucHkKKysrIGIvTGliL3VuaXR0ZXN0L21vY2sucHkKQEAgLTI3LDcgKzI3LDcgQEAKIGltcG9ydCBpbnNwZWN0CiBpbXBvcnQgcHByaW50CiBpbXBvcnQgc3lzCi1mcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKK2Zyb20gZnVuY3Rvb2xzIGltcG9ydCB3cmFwcywgcGFydGlhbAogCiAKIEJhc2VFeGNlcHRpb25zID0gKEJhc2VFeGNlcHRpb24sKQpAQCAtNjYsNTUgKzY2LDQ1IEBACiApCiAKIAotZGVmIF9nZXRzaWduYXR1cmUoZnVuYywgc2tpcGZpcnN0LCBpbnN0YW5jZT1GYWxzZSk6Ci0gICAgaWYgaXNpbnN0YW5jZShmdW5jLCB0eXBlKSBhbmQgbm90IGluc3RhbmNlOgorZGVmIF9nZXRfc2lnbmF0dXJlX29iamVjdChmdW5jLCBhc19pbnN0YW5jZSwgZWF0X3NlbGYpOgorICAgICIiIgorICAgIEdpdmVuIGFuIGFyYml0cmFyeSwgcG9zc2libHkgY2FsbGFibGUgb2JqZWN0LCB0cnkgdG8gY3JlYXRlIGEgc3VpdGFibGUKKyAgICBzaWduYXR1cmUgb2JqZWN0LgorICAgIFJldHVybiBhIChyZWR1Y2VkIGZ1bmMsIHNpZ25hdHVyZSkgdHVwbGUsIG9yIE5vbmUuCisgICAgIiIiCisgICAgaWYgaXNpbnN0YW5jZShmdW5jLCB0eXBlKSBhbmQgbm90IGFzX2luc3RhbmNlOgorICAgICAgICAjIElmIGl0J3MgYSB0eXBlIGFuZCBzaG91bGQgYmUgbW9kZWxsZWQgYXMgYSB0eXBlLCB1c2UgX19pbml0X18uCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGZ1bmMgPSBmdW5jLl9faW5pdF9fCiAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBza2lwZmlyc3QgPSBUcnVlCisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAjIFNraXAgdGhlIGBzZWxmYCBhcmd1bWVudCBpbiBfX2luaXRfXworICAgICAgICBlYXRfc2VsZiA9IFRydWUKICAgICBlbGlmIG5vdCBpc2luc3RhbmNlKGZ1bmMsIEZ1bmN0aW9uVHlwZXMpOgotICAgICAgICAjIGZvciBjbGFzc2VzIHdoZXJlIGluc3RhbmNlIGlzIFRydWUgd2UgZW5kIHVwIGhlcmUgdG9vCisgICAgICAgICMgSWYgd2UgcmVhbGx5IHdhbnQgdG8gbW9kZWwgYW4gaW5zdGFuY2Ugb2YgdGhlIHBhc3NlZCB0eXBlLAorICAgICAgICAjIF9fY2FsbF9fIHNob3VsZCBiZSBsb29rZWQgdXAsIG5vdCBfX2luaXRfXy4KICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZnVuYyA9IGZ1bmMuX19jYWxsX18KICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgcmV0dXJuCi0KKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgaWYgZWF0X3NlbGY6CisgICAgICAgIHNpZ19mdW5jID0gcGFydGlhbChmdW5jLCBOb25lKQorICAgIGVsc2U6CisgICAgICAgIHNpZ19mdW5jID0gZnVuYwogICAgIHRyeToKLSAgICAgICAgYXJnc3BlYyA9IGluc3BlY3QuZ2V0ZnVsbGFyZ3NwZWMoZnVuYykKLSAgICBleGNlcHQgVHlwZUVycm9yOgotICAgICAgICAjIEMgZnVuY3Rpb24gLyBtZXRob2QsIHBvc3NpYmx5IGluaGVyaXRlZCBvYmplY3QoKS5fX2luaXRfXwotICAgICAgICByZXR1cm4KLQotICAgIHJlZ2FyZ3MsIHZhcmFyZ3MsIHZhcmt3LCBkZWZhdWx0cywga3dvbmx5LCBrd29ubHlkZWYsIGFubiA9IGFyZ3NwZWMKLQotCi0gICAgIyBpbnN0YW5jZSBtZXRob2RzIGFuZCBjbGFzc21ldGhvZHMgbmVlZCB0byBsb3NlIHRoZSBzZWxmIGFyZ3VtZW50Ci0gICAgaWYgZ2V0YXR0cihmdW5jLCAnX19zZWxmX18nLCBOb25lKSBpcyBub3QgTm9uZToKLSAgICAgICAgcmVnYXJncyA9IHJlZ2FyZ3NbMTpdCi0gICAgaWYgc2tpcGZpcnN0OgotICAgICAgICAjIHRoaXMgY29uZGl0aW9uIGFuZCB0aGUgYWJvdmUgb25lIGFyZSBuZXZlciBib3RoIFRydWUgLSB3aHk/Ci0gICAgICAgIHJlZ2FyZ3MgPSByZWdhcmdzWzE6XQotCi0gICAgc2lnbmF0dXJlID0gaW5zcGVjdC5mb3JtYXRhcmdzcGVjKAotICAgICAgICByZWdhcmdzLCB2YXJhcmdzLCB2YXJrdywgZGVmYXVsdHMsCi0gICAgICAgIGt3b25seSwga3dvbmx5ZGVmLCBhbm4sIGZvcm1hdHZhbHVlPWxhbWJkYSB2YWx1ZTogIiIpCi0gICAgcmV0dXJuIHNpZ25hdHVyZVsxOi0xXSwgZnVuYworICAgICAgICByZXR1cm4gZnVuYywgaW5zcGVjdC5zaWduYXR1cmUoc2lnX2Z1bmMpCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICMgQ2VydGFpbiBjYWxsYWJsZSB0eXBlcyBhcmUgbm90IHN1cHBvcnRlZCBieSBpbnNwZWN0LnNpZ25hdHVyZSgpCisgICAgICAgIHJldHVybiBOb25lCiAKIAogZGVmIF9jaGVja19zaWduYXR1cmUoZnVuYywgbW9jaywgc2tpcGZpcnN0LCBpbnN0YW5jZT1GYWxzZSk6Ci0gICAgaWYgbm90IF9jYWxsYWJsZShmdW5jKToKKyAgICBzaWcgPSBfZ2V0X3NpZ25hdHVyZV9vYmplY3QoZnVuYywgaW5zdGFuY2UsIHNraXBmaXJzdCkKKyAgICBpZiBzaWcgaXMgTm9uZToKICAgICAgICAgcmV0dXJuCi0KLSAgICByZXN1bHQgPSBfZ2V0c2lnbmF0dXJlKGZ1bmMsIHNraXBmaXJzdCwgaW5zdGFuY2UpCi0gICAgaWYgcmVzdWx0IGlzIE5vbmU6Ci0gICAgICAgIHJldHVybgotICAgIHNpZ25hdHVyZSwgZnVuYyA9IHJlc3VsdAotCi0gICAgIyBjYW4ndCB1c2Ugc2VsZiBiZWNhdXNlICJzZWxmIiBpcyBjb21tb24gYXMgYW4gYXJndW1lbnQgbmFtZQotICAgICMgdW5mb3J0dW5hdGVseSBldmVuIG5vdCBpbiB0aGUgZmlyc3QgcGxhY2UKLSAgICBzcmMgPSAibGFtYmRhIF9tb2NrX3NlbGYsICVzOiBOb25lIiAlIHNpZ25hdHVyZQotICAgIGNoZWNrc2lnID0gZXZhbChzcmMsIHt9KQorICAgIGZ1bmMsIHNpZyA9IHNpZworICAgIGRlZiBjaGVja3NpZyhfbW9ja19zZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzaWcuYmluZCgqYXJncywgKiprd2FyZ3MpCiAgICAgX2NvcHlfZnVuY19kZXRhaWxzKGZ1bmMsIGNoZWNrc2lnKQogICAgIHR5cGUobW9jaykuX21vY2tfY2hlY2tfc2lnID0gY2hlY2tzaWcKIApAQCAtMTY2LDE1ICsxNTYsMTIgQEAKICAgICAgICAgcmV0dXJuCiAKICAgICBza2lwZmlyc3QgPSBpc2luc3RhbmNlKG9yaWdpbmFsLCB0eXBlKQotICAgIHJlc3VsdCA9IF9nZXRzaWduYXR1cmUob3JpZ2luYWwsIHNraXBmaXJzdCwgaW5zdGFuY2UpCisgICAgcmVzdWx0ID0gX2dldF9zaWduYXR1cmVfb2JqZWN0KG9yaWdpbmFsLCBpbnN0YW5jZSwgc2tpcGZpcnN0KQogICAgIGlmIHJlc3VsdCBpcyBOb25lOgotICAgICAgICAjIHdhcyBhIEMgZnVuY3Rpb24gKGUuZy4gb2JqZWN0KCkuX19pbml0X18gKSB0aGF0IGNhbid0IGJlIG1vY2tlZAogICAgICAgICByZXR1cm4KLQotICAgIHNpZ25hdHVyZSwgZnVuYyA9IHJlc3VsdAotCi0gICAgc3JjID0gImxhbWJkYSAlczogTm9uZSIgJSBzaWduYXR1cmUKLSAgICBjaGVja3NpZyA9IGV2YWwoc3JjLCB7fSkKKyAgICBmdW5jLCBzaWcgPSByZXN1bHQKKyAgICBkZWYgY2hlY2tzaWcoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc2lnLmJpbmQoKmFyZ3MsICoqa3dhcmdzKQogICAgIF9jb3B5X2Z1bmNfZGV0YWlscyhmdW5jLCBjaGVja3NpZykKIAogICAgIG5hbWUgPSBvcmlnaW5hbC5fX25hbWVfXwpAQCAtMzY4LDcgKzM1NSw3IEBACiAgICAgZGVmIF9faW5pdF9fKAogICAgICAgICAgICAgc2VsZiwgc3BlYz1Ob25lLCB3cmFwcz1Ob25lLCBuYW1lPU5vbmUsIHNwZWNfc2V0PU5vbmUsCiAgICAgICAgICAgICBwYXJlbnQ9Tm9uZSwgX3NwZWNfc3RhdGU9Tm9uZSwgX25ld19uYW1lPScnLCBfbmV3X3BhcmVudD1Ob25lLAotICAgICAgICAgICAgKiprd2FyZ3MKKyAgICAgICAgICAgIF9zcGVjX2FzX2luc3RhbmNlPUZhbHNlLCBfZWF0X3NlbGY9Tm9uZSwgKiprd2FyZ3MKICAgICAgICAgKToKICAgICAgICAgaWYgX25ld19wYXJlbnQgaXMgTm9uZToKICAgICAgICAgICAgIF9uZXdfcGFyZW50ID0gcGFyZW50CkBAIC0zODIsOCArMzY5LDEwIEBACiAgICAgICAgIGlmIHNwZWNfc2V0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc3BlYyA9IHNwZWNfc2V0CiAgICAgICAgICAgICBzcGVjX3NldCA9IFRydWUKKyAgICAgICAgaWYgX2VhdF9zZWxmIGlzIE5vbmU6CisgICAgICAgICAgICBfZWF0X3NlbGYgPSBwYXJlbnQgaXMgbm90IE5vbmUKIAotICAgICAgICBzZWxmLl9tb2NrX2FkZF9zcGVjKHNwZWMsIHNwZWNfc2V0KQorICAgICAgICBzZWxmLl9tb2NrX2FkZF9zcGVjKHNwZWMsIHNwZWNfc2V0LCBfc3BlY19hc19pbnN0YW5jZSwgX2VhdF9zZWxmKQogCiAgICAgICAgIF9fZGljdF9fWydfbW9ja19jaGlsZHJlbiddID0ge30KICAgICAgICAgX19kaWN0X19bJ19tb2NrX3dyYXBzJ10gPSB3cmFwcwpAQCAtNDI4LDIwICs0MTcsMjYgQEAKICAgICAgICAgc2VsZi5fbW9ja19hZGRfc3BlYyhzcGVjLCBzcGVjX3NldCkKIAogCi0gICAgZGVmIF9tb2NrX2FkZF9zcGVjKHNlbGYsIHNwZWMsIHNwZWNfc2V0KToKKyAgICBkZWYgX21vY2tfYWRkX3NwZWMoc2VsZiwgc3BlYywgc3BlY19zZXQsIF9zcGVjX2FzX2luc3RhbmNlPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICBfZWF0X3NlbGY9RmFsc2UpOgogICAgICAgICBfc3BlY19jbGFzcyA9IE5vbmUKKyAgICAgICAgX3NwZWNfc2lnbmF0dXJlID0gTm9uZQogCiAgICAgICAgIGlmIHNwZWMgaXMgbm90IE5vbmUgYW5kIG5vdCBfaXNfbGlzdChzcGVjKToKICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3BlYywgdHlwZSk6CiAgICAgICAgICAgICAgICAgX3NwZWNfY2xhc3MgPSBzcGVjCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIF9zcGVjX2NsYXNzID0gX2dldF9jbGFzcyhzcGVjKQorICAgICAgICAgICAgcmVzID0gX2dldF9zaWduYXR1cmVfb2JqZWN0KHNwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3NwZWNfYXNfaW5zdGFuY2UsIF9lYXRfc2VsZikKKyAgICAgICAgICAgIF9zcGVjX3NpZ25hdHVyZSA9IHJlcyBhbmQgcmVzWzFdCiAKICAgICAgICAgICAgIHNwZWMgPSBkaXIoc3BlYykKIAogICAgICAgICBfX2RpY3RfXyA9IHNlbGYuX19kaWN0X18KICAgICAgICAgX19kaWN0X19bJ19zcGVjX2NsYXNzJ10gPSBfc3BlY19jbGFzcwogICAgICAgICBfX2RpY3RfX1snX3NwZWNfc2V0J10gPSBzcGVjX3NldAorICAgICAgICBfX2RpY3RfX1snX3NwZWNfc2lnbmF0dXJlJ10gPSBfc3BlY19zaWduYXR1cmUKICAgICAgICAgX19kaWN0X19bJ19tb2NrX21ldGhvZHMnXSA9IHNwZWMKIAogCkBAIC02OTUsNyArNjkwLDYgQEAKICAgICAgICAgc2VsZi5fbW9ja19jaGlsZHJlbltuYW1lXSA9IF9kZWxldGVkCiAKIAotCiAgICAgZGVmIF9mb3JtYXRfbW9ja19jYWxsX3NpZ25hdHVyZShzZWxmLCBhcmdzLCBrd2FyZ3MpOgogICAgICAgICBuYW1lID0gc2VsZi5fbW9ja19uYW1lIG9yICdtb2NrJwogICAgICAgICByZXR1cm4gX2Zvcm1hdF9jYWxsX3NpZ25hdHVyZShuYW1lLCBhcmdzLCBrd2FyZ3MpCkBAIC03MTEsNiArNzA1LDI4IEBACiAgICAgICAgIHJldHVybiBtZXNzYWdlICUgKGV4cGVjdGVkX3N0cmluZywgYWN0dWFsX3N0cmluZykKIAogCisgICAgZGVmIF9jYWxsX21hdGNoZXIoc2VsZiwgX2NhbGwpOgorICAgICAgICAiIiIKKyAgICAgICAgR2l2ZW4gYSBjYWxsIChvciBzaW1wbHkgYSAoYXJncywga3dhcmdzKSB0dXBsZSksIHJldHVybiBhCisgICAgICAgIGNvbXBhcmlzb24ga2V5IHN1aXRhYmxlIGZvciBtYXRjaGluZyB3aXRoIG90aGVyIGNhbGxzLgorICAgICAgICBUaGlzIGlzIGEgYmVzdCBlZmZvcnQgbWV0aG9kIHdoaWNoIHJlbGllcyBvbiB0aGUgc3BlYydzIHNpZ25hdHVyZSwKKyAgICAgICAgaWYgYXZhaWxhYmxlLCBvciBmYWxscyBiYWNrIG9uIHRoZSBhcmd1bWVudHMgdGhlbXNlbHZlcy4KKyAgICAgICAgIiIiCisgICAgICAgIHNpZyA9IHNlbGYuX3NwZWNfc2lnbmF0dXJlCisgICAgICAgIGlmIHNpZyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIGxlbihfY2FsbCkgPT0gMjoKKyAgICAgICAgICAgICAgICBuYW1lID0gJycKKyAgICAgICAgICAgICAgICBhcmdzLCBrd2FyZ3MgPSBfY2FsbAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBuYW1lLCBhcmdzLCBrd2FyZ3MgPSBfY2FsbAorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBuYW1lLCBzaWcuYmluZCgqYXJncywgKiprd2FyZ3MpCisgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yIGFzIGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGUud2l0aF90cmFjZWJhY2soTm9uZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBfY2FsbAorCisKICAgICBkZWYgYXNzZXJ0X2NhbGxlZF93aXRoKF9tb2NrX3NlbGYsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgICIiImFzc2VydCB0aGF0IHRoZSBtb2NrIHdhcyBjYWxsZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGFyZ3VtZW50cy4KIApAQCAtNzIxLDkgKzczNywxNCBAQAogICAgICAgICAgICAgZXhwZWN0ZWQgPSBzZWxmLl9mb3JtYXRfbW9ja19jYWxsX3NpZ25hdHVyZShhcmdzLCBrd2FyZ3MpCiAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcignRXhwZWN0ZWQgY2FsbDogJXNcbk5vdCBjYWxsZWQnICUgKGV4cGVjdGVkLCkpCiAKLSAgICAgICAgaWYgc2VsZi5jYWxsX2FyZ3MgIT0gKGFyZ3MsIGt3YXJncyk6CisgICAgICAgIGRlZiBfZXJyb3JfbWVzc2FnZSgpOgogICAgICAgICAgICAgbXNnID0gc2VsZi5fZm9ybWF0X21vY2tfZmFpbHVyZV9tZXNzYWdlKGFyZ3MsIGt3YXJncykKLSAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKG1zZykKKyAgICAgICAgICAgIHJldHVybiBtc2cKKyAgICAgICAgZXhwZWN0ZWQgPSBzZWxmLl9jYWxsX21hdGNoZXIoKGFyZ3MsIGt3YXJncykpCisgICAgICAgIGFjdHVhbCA9IHNlbGYuX2NhbGxfbWF0Y2hlcihzZWxmLmNhbGxfYXJncykKKyAgICAgICAgaWYgZXhwZWN0ZWQgIT0gYWN0dWFsOgorICAgICAgICAgICAgY2F1c2UgPSBleHBlY3RlZCBpZiBpc2luc3RhbmNlKGV4cGVjdGVkLCBFeGNlcHRpb24pIGVsc2UgTm9uZQorICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoX2Vycm9yX21lc3NhZ2UoKSkgZnJvbSBjYXVzZQogCiAKICAgICBkZWYgYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoX21vY2tfc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKQEAgLTc0NywxOCArNzY4LDIxIEBACiAKICAgICAgICAgSWYgYGFueV9vcmRlcmAgaXMgVHJ1ZSB0aGVuIHRoZSBjYWxscyBjYW4gYmUgaW4gYW55IG9yZGVyLCBidXQKICAgICAgICAgdGhleSBtdXN0IGFsbCBhcHBlYXIgaW4gYG1vY2tfY2FsbHNgLiIiIgorICAgICAgICBleHBlY3RlZCA9IFtzZWxmLl9jYWxsX21hdGNoZXIoYykgZm9yIGMgaW4gY2FsbHNdCisgICAgICAgIGNhdXNlID0gZXhwZWN0ZWQgaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgRXhjZXB0aW9uKSBlbHNlIE5vbmUKKyAgICAgICAgYWxsX2NhbGxzID0gX0NhbGxMaXN0KHNlbGYuX2NhbGxfbWF0Y2hlcihjKSBmb3IgYyBpbiBzZWxmLm1vY2tfY2FsbHMpCiAgICAgICAgIGlmIG5vdCBhbnlfb3JkZXI6Ci0gICAgICAgICAgICBpZiBjYWxscyBub3QgaW4gc2VsZi5tb2NrX2NhbGxzOgorICAgICAgICAgICAgaWYgZXhwZWN0ZWQgbm90IGluIGFsbF9jYWxsczoKICAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigKICAgICAgICAgICAgICAgICAgICAgJ0NhbGxzIG5vdCBmb3VuZC5cbkV4cGVjdGVkOiAlclxuJwogICAgICAgICAgICAgICAgICAgICAnQWN0dWFsOiAlcicgJSAoY2FsbHMsIHNlbGYubW9ja19jYWxscykKLSAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKSBmcm9tIGNhdXNlCiAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICBhbGxfY2FsbHMgPSBsaXN0KHNlbGYubW9ja19jYWxscykKKyAgICAgICAgYWxsX2NhbGxzID0gbGlzdChhbGxfY2FsbHMpCiAKICAgICAgICAgbm90X2ZvdW5kID0gW10KLSAgICAgICAgZm9yIGthbGwgaW4gY2FsbHM6CisgICAgICAgIGZvciBrYWxsIGluIGV4cGVjdGVkOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGFsbF9jYWxscy5yZW1vdmUoa2FsbCkKICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgpAQCAtNzY2LDcgKzc5MCw3IEBACiAgICAgICAgIGlmIG5vdF9mb3VuZDoKICAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKAogICAgICAgICAgICAgICAgICclciBub3QgYWxsIGZvdW5kIGluIGNhbGwgbGlzdCcgJSAodHVwbGUobm90X2ZvdW5kKSwpCi0gICAgICAgICAgICApCisgICAgICAgICAgICApIGZyb20gY2F1c2UKIAogCiAgICAgZGVmIGFzc2VydF9hbnlfY2FsbChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgpAQCAtNzc1LDEyICs3OTksMTQgQEAKICAgICAgICAgVGhlIGFzc2VydCBwYXNzZXMgaWYgdGhlIG1vY2sgaGFzICpldmVyKiBiZWVuIGNhbGxlZCwgdW5saWtlCiAgICAgICAgIGBhc3NlcnRfY2FsbGVkX3dpdGhgIGFuZCBgYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGhgIHRoYXQgb25seSBwYXNzIGlmCiAgICAgICAgIHRoZSBjYWxsIGlzIHRoZSBtb3N0IHJlY2VudCBvbmUuIiIiCi0gICAgICAgIGthbGwgPSBjYWxsKCphcmdzLCAqKmt3YXJncykKLSAgICAgICAgaWYga2FsbCBub3QgaW4gc2VsZi5jYWxsX2FyZ3NfbGlzdDoKKyAgICAgICAgZXhwZWN0ZWQgPSBzZWxmLl9jYWxsX21hdGNoZXIoKGFyZ3MsIGt3YXJncykpCisgICAgICAgIGFjdHVhbCA9IFtzZWxmLl9jYWxsX21hdGNoZXIoYykgZm9yIGMgaW4gc2VsZi5jYWxsX2FyZ3NfbGlzdF0KKyAgICAgICAgaWYgZXhwZWN0ZWQgbm90IGluIGFjdHVhbDoKKyAgICAgICAgICAgIGNhdXNlID0gZXhwZWN0ZWQgaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgRXhjZXB0aW9uKSBlbHNlIE5vbmUKICAgICAgICAgICAgIGV4cGVjdGVkX3N0cmluZyA9IHNlbGYuX2Zvcm1hdF9tb2NrX2NhbGxfc2lnbmF0dXJlKGFyZ3MsIGt3YXJncykKICAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKAogICAgICAgICAgICAgICAgICclcyBjYWxsIG5vdCBmb3VuZCcgJSBleHBlY3RlZF9zdHJpbmcKLSAgICAgICAgICAgICkKKyAgICAgICAgICAgICkgZnJvbSBjYXVzZQogCiAKICAgICBkZWYgX2dldF9jaGlsZF9tb2NrKHNlbGYsICoqa3cpOgpAQCAtODUwLDExICs4NzYsMTIgQEAKICAgICAgICAgc2VsZiA9IF9tb2NrX3NlbGYKICAgICAgICAgc2VsZi5jYWxsZWQgPSBUcnVlCiAgICAgICAgIHNlbGYuY2FsbF9jb3VudCArPSAxCi0gICAgICAgIHNlbGYuY2FsbF9hcmdzID0gX0NhbGwoKGFyZ3MsIGt3YXJncyksIHR3bz1UcnVlKQotICAgICAgICBzZWxmLmNhbGxfYXJnc19saXN0LmFwcGVuZChfQ2FsbCgoYXJncywga3dhcmdzKSwgdHdvPVRydWUpKQotCiAgICAgICAgIF9uZXdfbmFtZSA9IHNlbGYuX21vY2tfbmV3X25hbWUKICAgICAgICAgX25ld19wYXJlbnQgPSBzZWxmLl9tb2NrX25ld19wYXJlbnQKKworICAgICAgICBfY2FsbCA9IF9DYWxsKChhcmdzLCBrd2FyZ3MpLCB0d289VHJ1ZSkKKyAgICAgICAgc2VsZi5jYWxsX2FyZ3MgPSBfY2FsbAorICAgICAgICBzZWxmLmNhbGxfYXJnc19saXN0LmFwcGVuZChfY2FsbCkKICAgICAgICAgc2VsZi5tb2NrX2NhbGxzLmFwcGVuZChfQ2FsbCgoJycsIGFyZ3MsIGt3YXJncykpKQogCiAgICAgICAgIHNlZW4gPSBzZXQoKQpAQCAtOTA5LDggKzkzNiw2IEBACiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAgICAgICAgICByZXRfdmFsID0gZWZmZWN0KCphcmdzLCAqKmt3YXJncykKLSAgICAgICAgICAgIGlmIHJldF92YWwgaXMgREVGQVVMVDoKLSAgICAgICAgICAgICAgICByZXRfdmFsID0gc2VsZi5yZXR1cm5fdmFsdWUKIAogICAgICAgICBpZiAoc2VsZi5fbW9ja193cmFwcyBpcyBub3QgTm9uZSBhbmQKICAgICAgICAgICAgICBzZWxmLl9tb2NrX3JldHVybl92YWx1ZSBpcyBERUZBVUxUKToKQEAgLTIwMzAsNiArMjA1NSw4IEBACiAgICAgZWxpZiBzcGVjIGlzIE5vbmU6CiAgICAgICAgICMgTm9uZSB3ZSBtb2NrIHdpdGggYSBub3JtYWwgbW9jayB3aXRob3V0IGEgc3BlYwogICAgICAgICBfa3dhcmdzID0ge30KKyAgICBpZiBfa3dhcmdzIGFuZCBpbnN0YW5jZToKKyAgICAgICAgX2t3YXJnc1snX3NwZWNfYXNfaW5zdGFuY2UnXSA9IFRydWUKIAogICAgIF9rd2FyZ3MudXBkYXRlKGt3YXJncykKIApAQCAtMjA5NiwxMCArMjEyMywxMiBAQAogICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzcGVjLCBGdW5jdGlvblR5cGVzKToKICAgICAgICAgICAgICAgICBwYXJlbnQgPSBtb2NrLm1vY2sKIAotICAgICAgICAgICAgbmV3ID0gTWFnaWNNb2NrKHBhcmVudD1wYXJlbnQsIG5hbWU9ZW50cnksIF9uZXdfbmFtZT1lbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbmV3X3BhcmVudD1wYXJlbnQsICoqa3dhcmdzKQotICAgICAgICAgICAgbW9jay5fbW9ja19jaGlsZHJlbltlbnRyeV0gPSBuZXcKICAgICAgICAgICAgIHNraXBmaXJzdCA9IF9tdXN0X3NraXAoc3BlYywgZW50cnksIGlzX3R5cGUpCisgICAgICAgICAgICBrd2FyZ3NbJ19lYXRfc2VsZiddID0gc2tpcGZpcnN0CisgICAgICAgICAgICBuZXcgPSBNYWdpY01vY2socGFyZW50PXBhcmVudCwgbmFtZT1lbnRyeSwgX25ld19uYW1lPWVudHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9uZXdfcGFyZW50PXBhcmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKKyAgICAgICAgICAgIG1vY2suX21vY2tfY2hpbGRyZW5bZW50cnldID0gbmV3CiAgICAgICAgICAgICBfY2hlY2tfc2lnbmF0dXJlKG9yaWdpbmFsLCBuZXcsIHNraXBmaXJzdD1za2lwZmlyc3QpCiAKICAgICAgICAgIyBzbyBmdW5jdGlvbnMgY3JlYXRlZCB3aXRoIF9zZXRfc2lnbmF0dXJlIGJlY29tZSBpbnN0YW5jZSBhdHRyaWJ1dGVzLApAQCAtMjExMyw2ICsyMTQyLDEwIEBACiAKIAogZGVmIF9tdXN0X3NraXAoc3BlYywgZW50cnksIGlzX3R5cGUpOgorICAgICIiIgorICAgIFJldHVybiB3aGV0aGVyIHdlIHNob3VsZCBza2lwIHRoZSBmaXJzdCBhcmd1bWVudCBvbiBzcGVjJ3MgYGVudHJ5YAorICAgIGF0dHJpYnV0ZS4KKyAgICAiIiIKICAgICBpZiBub3QgaXNpbnN0YW5jZShzcGVjLCB0eXBlKToKICAgICAgICAgaWYgZW50cnkgaW4gZ2V0YXR0cihzcGVjLCAnX19kaWN0X18nLCB7fSk6CiAgICAgICAgICAgICAjIGluc3RhbmNlIGF0dHJpYnV0ZSAtIHNob3VsZG4ndCBza2lwCkBAIC0yMTI1LDcgKzIxNTgsMTIgQEAKICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVzdWx0LCAoc3RhdGljbWV0aG9kLCBjbGFzc21ldGhvZCkpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVybiBpc190eXBlCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShnZXRhdHRyKHJlc3VsdCwgJ19fZ2V0X18nLCBOb25lKSwgTWV0aG9kV3JhcHBlclR5cGVzKToKKyAgICAgICAgICAgICMgTm9ybWFsIG1ldGhvZCA9PiBza2lwIGlmIGxvb2tlZCB1cCBvbiB0eXBlCisgICAgICAgICAgICAjIChpZiBsb29rZWQgdXAgb24gaW5zdGFuY2UsIHNlbGYgaXMgYWxyZWFkeSBza2lwcGVkKQorICAgICAgICAgICAgcmV0dXJuIGlzX3R5cGUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgIyBzaG91bGRuJ3QgZ2V0IGhlcmUgdW5sZXNzIGZ1bmN0aW9uIGlzIGEgZHluYW1pY2FsbHkgcHJvdmlkZWQgYXR0cmlidXRlCiAgICAgIyBYWFhYIHVudGVzdGVkIGJlaGF2aW91cgpAQCAtMjE1OSw5ICsyMTk3LDMxIEBACiAgICAgdHlwZShBTlkuX19lcV9fKSwKICkKIAorTWV0aG9kV3JhcHBlclR5cGVzID0gKAorICAgIHR5cGUoQU5ZLl9fZXFfXy5fX2dldF9fKSwKKykKKwogCiBmaWxlX3NwZWMgPSBOb25lCiAKK2RlZiBfaXRlcmF0ZV9yZWFkX2RhdGEocmVhZF9kYXRhKToKKyAgICAjIEhlbHBlciBmb3IgbW9ja19vcGVuOgorICAgICMgUmV0cmlldmUgbGluZXMgZnJvbSByZWFkX2RhdGEgdmlhIGEgZ2VuZXJhdG9yIHNvIHRoYXQgc2VwYXJhdGUgY2FsbHMgdG8KKyAgICAjIHJlYWRsaW5lLCByZWFkLCBhbmQgcmVhZGxpbmVzIGFyZSBwcm9wZXJseSBpbnRlcmxlYXZlZAorICAgIGRhdGFfYXNfbGlzdCA9IFsne31cbicuZm9ybWF0KGwpIGZvciBsIGluIHJlYWRfZGF0YS5zcGxpdCgnXG4nKV0KKworICAgIGlmIGRhdGFfYXNfbGlzdFstMV0gPT0gJ1xuJzoKKyAgICAgICAgIyBJZiB0aGUgbGFzdCBsaW5lIGVuZGVkIGluIGEgbmV3bGluZSwgdGhlIGxpc3QgY29tcHJlaGVuc2lvbiB3aWxsIGhhdmUgYW4KKyAgICAgICAgIyBleHRyYSBlbnRyeSB0aGF0J3MganVzdCBhIG5ld2xpbmUuICBSZW1vdmUgdGhpcy4KKyAgICAgICAgZGF0YV9hc19saXN0ID0gZGF0YV9hc19saXN0WzotMV0KKyAgICBlbHNlOgorICAgICAgICAjIElmIHRoZXJlIHdhc24ndCBhbiBleHRyYSBuZXdsaW5lIGJ5IGl0c2VsZiwgdGhlbiB0aGUgZmlsZSBiZWluZworICAgICAgICAjIGVtdWxhdGVkIGRvZXNuJ3QgaGF2ZSBhIG5ld2xpbmUgdG8gZW5kIHRoZSBsYXN0IGxpbmUgIHJlbW92ZSB0aGUKKyAgICAgICAgIyBuZXdsaW5lIHRoYXQgb3VyIG5haXZlIGZvcm1hdCgpIGFkZGVkCisgICAgICAgIGRhdGFfYXNfbGlzdFstMV0gPSBkYXRhX2FzX2xpc3RbLTFdWzotMV0KKworICAgIGZvciBsaW5lIGluIGRhdGFfYXNfbGlzdDoKKyAgICAgICAgeWllbGQgbGluZQogCiBkZWYgbW9ja19vcGVuKG1vY2s9Tm9uZSwgcmVhZF9kYXRhPScnKToKICAgICAiIiIKQEAgLTIxNzIsOSArMjIzMiwyNyBAQAogICAgIGRlZmF1bHQpIHRoZW4gYSBgTWFnaWNNb2NrYCB3aWxsIGJlIGNyZWF0ZWQgZm9yIHlvdSwgd2l0aCB0aGUgQVBJIGxpbWl0ZWQKICAgICB0byBtZXRob2RzIG9yIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIG9uIHN0YW5kYXJkIGZpbGUgaGFuZGxlcy4KIAotICAgIGByZWFkX2RhdGFgIGlzIGEgc3RyaW5nIGZvciB0aGUgYHJlYWRgIG1ldGhvZCBvZiB0aGUgZmlsZSBoYW5kbGUgdG8gcmV0dXJuLgotICAgIFRoaXMgaXMgYW4gZW1wdHkgc3RyaW5nIGJ5IGRlZmF1bHQuCisgICAgYHJlYWRfZGF0YWAgaXMgYSBzdHJpbmcgZm9yIHRoZSBgcmVhZGAgbWV0aG9kZGxpbmVgLCBhbmQgYHJlYWRsaW5lc2Agb2YgdGhlCisgICAgZmlsZSBoYW5kbGUgdG8gcmV0dXJuLiAgVGhpcyBpcyBhbiBlbXB0eSBzdHJpbmcgYnkgZGVmYXVsdC4KICAgICAiIiIKKyAgICBkZWYgX3JlYWRsaW5lc19zaWRlX2VmZmVjdCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBpZiBoYW5kbGUucmVhZGxpbmVzLnJldHVybl92YWx1ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBoYW5kbGUucmVhZGxpbmVzLnJldHVybl92YWx1ZQorICAgICAgICByZXR1cm4gbGlzdChfZGF0YSkKKworICAgIGRlZiBfcmVhZF9zaWRlX2VmZmVjdCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBpZiBoYW5kbGUucmVhZC5yZXR1cm5fdmFsdWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gaGFuZGxlLnJlYWQucmV0dXJuX3ZhbHVlCisgICAgICAgIHJldHVybiAnJy5qb2luKF9kYXRhKQorCisgICAgZGVmIF9yZWFkbGluZV9zaWRlX2VmZmVjdCgpOgorICAgICAgICBpZiBoYW5kbGUucmVhZGxpbmUucmV0dXJuX3ZhbHVlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICB5aWVsZCBoYW5kbGUucmVhZGxpbmUucmV0dXJuX3ZhbHVlCisgICAgICAgIGZvciBsaW5lIGluIF9kYXRhOgorICAgICAgICAgICAgeWllbGQgbGluZQorCisKICAgICBnbG9iYWwgZmlsZV9zcGVjCiAgICAgaWYgZmlsZV9zcGVjIGlzIE5vbmU6CiAgICAgICAgIGltcG9ydCBfaW8KQEAgLTIxODQsOSArMjI2MiwxOCBAQAogICAgICAgICBtb2NrID0gTWFnaWNNb2NrKG5hbWU9J29wZW4nLCBzcGVjPW9wZW4pCiAKICAgICBoYW5kbGUgPSBNYWdpY01vY2soc3BlYz1maWxlX3NwZWMpCi0gICAgaGFuZGxlLndyaXRlLnJldHVybl92YWx1ZSA9IE5vbmUKICAgICBoYW5kbGUuX19lbnRlcl9fLnJldHVybl92YWx1ZSA9IGhhbmRsZQotICAgIGhhbmRsZS5yZWFkLnJldHVybl92YWx1ZSA9IHJlYWRfZGF0YQorCisgICAgX2RhdGEgPSBfaXRlcmF0ZV9yZWFkX2RhdGEocmVhZF9kYXRhKQorCisgICAgaGFuZGxlLndyaXRlLnJldHVybl92YWx1ZSA9IE5vbmUKKyAgICBoYW5kbGUucmVhZC5yZXR1cm5fdmFsdWUgPSBOb25lCisgICAgaGFuZGxlLnJlYWRsaW5lLnJldHVybl92YWx1ZSA9IE5vbmUKKyAgICBoYW5kbGUucmVhZGxpbmVzLnJldHVybl92YWx1ZSA9IE5vbmUKKworICAgIGhhbmRsZS5yZWFkLnNpZGVfZWZmZWN0ID0gX3JlYWRfc2lkZV9lZmZlY3QKKyAgICBoYW5kbGUucmVhZGxpbmUuc2lkZV9lZmZlY3QgPSBfcmVhZGxpbmVfc2lkZV9lZmZlY3QoKQorICAgIGhhbmRsZS5yZWFkbGluZXMuc2lkZV9lZmZlY3QgPSBfcmVhZGxpbmVzX3NpZGVfZWZmZWN0CiAKICAgICBtb2NrLnJldHVybl92YWx1ZSA9IGhhbmRsZQogICAgIHJldHVybiBtb2NrCmRpZmYgLS1naXQgYS9MaWIvdW5pdHRlc3QvcmVzdWx0LnB5IGIvTGliL3VuaXR0ZXN0L3Jlc3VsdC5weQppbmRleCA5N2U1NDI2Li5mM2Y0YjY3IDEwMDY0NAotLS0gYS9MaWIvdW5pdHRlc3QvcmVzdWx0LnB5CisrKyBiL0xpYi91bml0dGVzdC9yZXN1bHQucHkKQEAgLTEyMSw2ICsxMjEsMjIgQEAKICAgICAgICAgc2VsZi5mYWlsdXJlcy5hcHBlbmQoKHRlc3QsIHNlbGYuX2V4Y19pbmZvX3RvX3N0cmluZyhlcnIsIHRlc3QpKSkKICAgICAgICAgc2VsZi5fbWlycm9yT3V0cHV0ID0gVHJ1ZQogCisgICAgQGZhaWxmYXN0CisgICAgZGVmIGFkZFN1YlRlc3Qoc2VsZiwgdGVzdCwgc3VidGVzdCwgZXJyKToKKyAgICAgICAgIiIiQ2FsbGVkIGF0IHRoZSBlbmQgb2YgYSBzdWJ0ZXN0LgorICAgICAgICAnZXJyJyBpcyBOb25lIGlmIHRoZSBzdWJ0ZXN0IGVuZGVkIHN1Y2Nlc3NmdWxseSwgb3RoZXJ3aXNlIGl0J3MgYQorICAgICAgICB0dXBsZSBvZiB2YWx1ZXMgYXMgcmV0dXJuZWQgYnkgc3lzLmV4Y19pbmZvKCkuCisgICAgICAgICIiIgorICAgICAgICAjIEJ5IGRlZmF1bHQsIHdlIGRvbid0IGRvIGFueXRoaW5nIHdpdGggc3VjY2Vzc2Z1bCBzdWJ0ZXN0cywgYnV0CisgICAgICAgICMgbW9yZSBzb3BoaXN0aWNhdGVkIHRlc3QgcmVzdWx0cyBtaWdodCB3YW50IHRvIHJlY29yZCB0aGVtLgorICAgICAgICBpZiBlcnIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiBpc3N1YmNsYXNzKGVyclswXSwgdGVzdC5mYWlsdXJlRXhjZXB0aW9uKToKKyAgICAgICAgICAgICAgICBlcnJvcnMgPSBzZWxmLmZhaWx1cmVzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGVycm9ycyA9IHNlbGYuZXJyb3JzCisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKChzdWJ0ZXN0LCBzZWxmLl9leGNfaW5mb190b19zdHJpbmcoZXJyLCB0ZXN0KSkpCisgICAgICAgICAgICBzZWxmLl9taXJyb3JPdXRwdXQgPSBUcnVlCisKICAgICBkZWYgYWRkU3VjY2VzcyhzZWxmLCB0ZXN0KToKICAgICAgICAgIkNhbGxlZCB3aGVuIGEgdGVzdCBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSIKICAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGliL3VuaXR0ZXN0L3Rlc3Qvc3VwcG9ydC5weSBiL0xpYi91bml0dGVzdC90ZXN0L3N1cHBvcnQucHkKaW5kZXggZGJlNGRkYy4uMDJlOGYzYSAxMDA2NDQKLS0tIGEvTGliL3VuaXR0ZXN0L3Rlc3Qvc3VwcG9ydC5weQorKysgYi9MaWIvdW5pdHRlc3QvdGVzdC9zdXBwb3J0LnB5CkBAIC00MSw3ICs0MSw3IEBACiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJQcm9ibGVtIGhhc2hpbmcgJXMgYW5kICVzOiAlcyIgJSAob2JqXzEsIG9ial8yLCBlKSkKIAogCi1jbGFzcyBMb2dnaW5nUmVzdWx0KHVuaXR0ZXN0LlRlc3RSZXN1bHQpOgorY2xhc3MgX0Jhc2VMb2dnaW5nUmVzdWx0KHVuaXR0ZXN0LlRlc3RSZXN1bHQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2cpOgogICAgICAgICBzZWxmLl9ldmVudHMgPSBsb2cKICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygpCkBAIC01Miw3ICs1Miw3IEBACiAKICAgICBkZWYgc3RhcnRUZXN0UnVuKHNlbGYpOgogICAgICAgICBzZWxmLl9ldmVudHMuYXBwZW5kKCdzdGFydFRlc3RSdW4nKQotICAgICAgICBzdXBlcihMb2dnaW5nUmVzdWx0LCBzZWxmKS5zdGFydFRlc3RSdW4oKQorICAgICAgICBzdXBlcigpLnN0YXJ0VGVzdFJ1bigpCiAKICAgICBkZWYgc3RvcFRlc3Qoc2VsZiwgdGVzdCk6CiAgICAgICAgIHNlbGYuX2V2ZW50cy5hcHBlbmQoJ3N0b3BUZXN0JykKQEAgLTYwLDcgKzYwLDcgQEAKIAogICAgIGRlZiBzdG9wVGVzdFJ1bihzZWxmKToKICAgICAgICAgc2VsZi5fZXZlbnRzLmFwcGVuZCgnc3RvcFRlc3RSdW4nKQotICAgICAgICBzdXBlcihMb2dnaW5nUmVzdWx0LCBzZWxmKS5zdG9wVGVzdFJ1bigpCisgICAgICAgIHN1cGVyKCkuc3RvcFRlc3RSdW4oKQogCiAgICAgZGVmIGFkZEZhaWx1cmUoc2VsZiwgKmFyZ3MpOgogICAgICAgICBzZWxmLl9ldmVudHMuYXBwZW5kKCdhZGRGYWlsdXJlJykKQEAgLTY4LDcgKzY4LDcgQEAKIAogICAgIGRlZiBhZGRTdWNjZXNzKHNlbGYsICphcmdzKToKICAgICAgICAgc2VsZi5fZXZlbnRzLmFwcGVuZCgnYWRkU3VjY2VzcycpCi0gICAgICAgIHN1cGVyKExvZ2dpbmdSZXN1bHQsIHNlbGYpLmFkZFN1Y2Nlc3MoKmFyZ3MpCisgICAgICAgIHN1cGVyKCkuYWRkU3VjY2VzcygqYXJncykKIAogICAgIGRlZiBhZGRFcnJvcihzZWxmLCAqYXJncyk6CiAgICAgICAgIHNlbGYuX2V2ZW50cy5hcHBlbmQoJ2FkZEVycm9yJykKQEAgLTc2LDE1ICs3NiwzOSBAQAogCiAgICAgZGVmIGFkZFNraXAoc2VsZiwgKmFyZ3MpOgogICAgICAgICBzZWxmLl9ldmVudHMuYXBwZW5kKCdhZGRTa2lwJykKLSAgICAgICAgc3VwZXIoTG9nZ2luZ1Jlc3VsdCwgc2VsZikuYWRkU2tpcCgqYXJncykKKyAgICAgICAgc3VwZXIoKS5hZGRTa2lwKCphcmdzKQogCiAgICAgZGVmIGFkZEV4cGVjdGVkRmFpbHVyZShzZWxmLCAqYXJncyk6CiAgICAgICAgIHNlbGYuX2V2ZW50cy5hcHBlbmQoJ2FkZEV4cGVjdGVkRmFpbHVyZScpCi0gICAgICAgIHN1cGVyKExvZ2dpbmdSZXN1bHQsIHNlbGYpLmFkZEV4cGVjdGVkRmFpbHVyZSgqYXJncykKKyAgICAgICAgc3VwZXIoKS5hZGRFeHBlY3RlZEZhaWx1cmUoKmFyZ3MpCiAKICAgICBkZWYgYWRkVW5leHBlY3RlZFN1Y2Nlc3Moc2VsZiwgKmFyZ3MpOgogICAgICAgICBzZWxmLl9ldmVudHMuYXBwZW5kKCdhZGRVbmV4cGVjdGVkU3VjY2VzcycpCi0gICAgICAgIHN1cGVyKExvZ2dpbmdSZXN1bHQsIHNlbGYpLmFkZFVuZXhwZWN0ZWRTdWNjZXNzKCphcmdzKQorICAgICAgICBzdXBlcigpLmFkZFVuZXhwZWN0ZWRTdWNjZXNzKCphcmdzKQorCisKK2NsYXNzIExlZ2FjeUxvZ2dpbmdSZXN1bHQoX0Jhc2VMb2dnaW5nUmVzdWx0KToKKyAgICAiIiIKKyAgICBBIGxlZ2FjeSBUZXN0UmVzdWx0IGltcGxlbWVudGF0aW9uLCB3aXRob3V0IGFuIGFkZFN1YlRlc3QgbWV0aG9kLAorICAgIHdoaWNoIHJlY29yZHMgaXRzIG1ldGhvZCBjYWxscy4KKyAgICAiIiIKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhZGRTdWJUZXN0KHNlbGYpOgorICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcgorCisKK2NsYXNzIExvZ2dpbmdSZXN1bHQoX0Jhc2VMb2dnaW5nUmVzdWx0KToKKyAgICAiIiIKKyAgICBBIFRlc3RSZXN1bHQgaW1wbGVtZW50YXRpb24gd2hpY2ggcmVjb3JkcyBpdHMgbWV0aG9kIGNhbGxzLgorICAgICIiIgorCisgICAgZGVmIGFkZFN1YlRlc3Qoc2VsZiwgdGVzdCwgc3VidGVzdCwgZXJyKToKKyAgICAgICAgaWYgZXJyIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl9ldmVudHMuYXBwZW5kKCdhZGRTdWJUZXN0U3VjY2VzcycpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9ldmVudHMuYXBwZW5kKCdhZGRTdWJUZXN0RmFpbHVyZScpCisgICAgICAgIHN1cGVyKCkuYWRkU3ViVGVzdCh0ZXN0LCBzdWJ0ZXN0LCBlcnIpCiAKIAogY2xhc3MgUmVzdWx0V2l0aE5vU3RhcnRUZXN0UnVuU3RvcFRlc3RSdW4ob2JqZWN0KToKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3RfY2FzZS5weSBiL0xpYi91bml0dGVzdC90ZXN0L3Rlc3RfY2FzZS5weQppbmRleCBmZGIyZTc4Li4wZDkyM2YwIDEwMDY0NAotLS0gYS9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0X2Nhc2UucHkKKysrIGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9jYXNlLnB5CkBAIC0xMyw3ICsxMyw3IEBACiBpbXBvcnQgdW5pdHRlc3QKIAogZnJvbSAuc3VwcG9ydCBpbXBvcnQgKAotICAgIFRlc3RFcXVhbGl0eSwgVGVzdEhhc2hpbmcsIExvZ2dpbmdSZXN1bHQsCisgICAgVGVzdEVxdWFsaXR5LCBUZXN0SGFzaGluZywgTG9nZ2luZ1Jlc3VsdCwgTGVnYWN5TG9nZ2luZ1Jlc3VsdCwKICAgICBSZXN1bHRXaXRoTm9TdGFydFRlc3RSdW5TdG9wVGVzdFJ1bgogKQogCkBAIC0yOTcsNiArMjk3LDk4IEBACiAKICAgICAgICAgRm9vKCd0ZXN0JykucnVuKCkKIAorICAgIGRlZiBfY2hlY2tfY2FsbF9vcmRlcl9fc3VidGVzdHMoc2VsZiwgcmVzdWx0LCBldmVudHMsIGV4cGVjdGVkX2V2ZW50cyk6CisgICAgICAgIGNsYXNzIEZvbyhUZXN0LkxvZ2dpbmdUZXN0Q2FzZSk6CisgICAgICAgICAgICBkZWYgdGVzdChzZWxmKToKKyAgICAgICAgICAgICAgICBzdXBlcihGb28sIHNlbGYpLnRlc3QoKQorICAgICAgICAgICAgICAgIGZvciBpIGluIFsxLCAyLCAzXToKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QoaT1pKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gMToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ2ZhaWx1cmUnKQorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4gWzIsIDNdOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KGo9aik6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgKiBqID09IDY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoJ3JhaXNlZCBieSBGb28udGVzdCcpCisgICAgICAgICAgICAgICAgMSAvIDAKKworICAgICAgICAjIE9yZGVyIGlzIHRoZSBmb2xsb3dpbmc6CisgICAgICAgICMgaT0xID0+IHN1YnRlc3QgZmFpbHVyZQorICAgICAgICAjIGk9Miwgaj0yID0+IHN1YnRlc3Qgc3VjY2VzcworICAgICAgICAjIGk9Miwgaj0zID0+IHN1YnRlc3QgZXJyb3IKKyAgICAgICAgIyBpPTMsIGo9MiA9PiBzdWJ0ZXN0IGVycm9yCisgICAgICAgICMgaT0zLCBqPTMgPT4gc3VidGVzdCBzdWNjZXNzCisgICAgICAgICMgdG9wbGV2ZWwgPT4gZXJyb3IKKyAgICAgICAgRm9vKGV2ZW50cykucnVuKHJlc3VsdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudHMsIGV4cGVjdGVkX2V2ZW50cykKKworICAgIGRlZiB0ZXN0X3J1bl9jYWxsX29yZGVyX19zdWJ0ZXN0cyhzZWxmKToKKyAgICAgICAgZXZlbnRzID0gW10KKyAgICAgICAgcmVzdWx0ID0gTG9nZ2luZ1Jlc3VsdChldmVudHMpCisgICAgICAgIGV4cGVjdGVkID0gWydzdGFydFRlc3QnLCAnc2V0VXAnLCAndGVzdCcsICd0ZWFyRG93bicsCisgICAgICAgICAgICAgICAgICAgICdhZGRTdWJUZXN0RmFpbHVyZScsICdhZGRTdWJUZXN0U3VjY2VzcycsCisgICAgICAgICAgICAgICAgICAgICdhZGRTdWJUZXN0RmFpbHVyZScsICdhZGRTdWJUZXN0RmFpbHVyZScsCisgICAgICAgICAgICAgICAgICAgICdhZGRTdWJUZXN0U3VjY2VzcycsICdhZGRFcnJvcicsICdzdG9wVGVzdCddCisgICAgICAgIHNlbGYuX2NoZWNrX2NhbGxfb3JkZXJfX3N1YnRlc3RzKHJlc3VsdCwgZXZlbnRzLCBleHBlY3RlZCkKKworICAgIGRlZiB0ZXN0X3J1bl9jYWxsX29yZGVyX19zdWJ0ZXN0c19sZWdhY3koc2VsZik6CisgICAgICAgICMgV2l0aCBhIGxlZ2FjeSByZXN1bHQgb2JqZWN0ICh3aXRob3V0IGEgYWRkU3ViVGVzdCBtZXRob2QpLAorICAgICAgICAjIHRleHQgZXhlY3V0aW9uIHN0b3BzIGFmdGVyIHRoZSBmaXJzdCBzdWJ0ZXN0IGZhaWx1cmUuCisgICAgICAgIGV2ZW50cyA9IFtdCisgICAgICAgIHJlc3VsdCA9IExlZ2FjeUxvZ2dpbmdSZXN1bHQoZXZlbnRzKQorICAgICAgICBleHBlY3RlZCA9IFsnc3RhcnRUZXN0JywgJ3NldFVwJywgJ3Rlc3QnLCAndGVhckRvd24nLAorICAgICAgICAgICAgICAgICAgICAnYWRkRmFpbHVyZScsICdzdG9wVGVzdCddCisgICAgICAgIHNlbGYuX2NoZWNrX2NhbGxfb3JkZXJfX3N1YnRlc3RzKHJlc3VsdCwgZXZlbnRzLCBleHBlY3RlZCkKKworICAgIGRlZiBfY2hlY2tfY2FsbF9vcmRlcl9fc3VidGVzdHNfc3VjY2VzcyhzZWxmLCByZXN1bHQsIGV2ZW50cywgZXhwZWN0ZWRfZXZlbnRzKToKKyAgICAgICAgY2xhc3MgRm9vKFRlc3QuTG9nZ2luZ1Rlc3RDYXNlKToKKyAgICAgICAgICAgIGRlZiB0ZXN0KHNlbGYpOgorICAgICAgICAgICAgICAgIHN1cGVyKEZvbywgc2VsZikudGVzdCgpCisgICAgICAgICAgICAgICAgZm9yIGkgaW4gWzEsIDJdOgorICAgICAgICAgICAgICAgICAgICB3aXRoIHNlbGYuc3ViVGVzdChpPWkpOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4gWzIsIDNdOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KGo9aik6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBGb28oZXZlbnRzKS5ydW4ocmVzdWx0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50cywgZXhwZWN0ZWRfZXZlbnRzKQorCisgICAgZGVmIHRlc3RfcnVuX2NhbGxfb3JkZXJfX3N1YnRlc3RzX3N1Y2Nlc3Moc2VsZik6CisgICAgICAgIGV2ZW50cyA9IFtdCisgICAgICAgIHJlc3VsdCA9IExvZ2dpbmdSZXN1bHQoZXZlbnRzKQorICAgICAgICAjIFRoZSA2IHN1YnRlc3Qgc3VjY2Vzc2VzIGFyZSBpbmRpdmlkdWFsbHkgcmVjb3JkZWQsIGluIGFkZGl0aW9uCisgICAgICAgICMgdG8gdGhlIHdob2xlIHRlc3Qgc3VjY2Vzcy4KKyAgICAgICAgZXhwZWN0ZWQgPSAoWydzdGFydFRlc3QnLCAnc2V0VXAnLCAndGVzdCcsICd0ZWFyRG93biddCisgICAgICAgICAgICAgICAgICAgICsgNiAqIFsnYWRkU3ViVGVzdFN1Y2Nlc3MnXQorICAgICAgICAgICAgICAgICAgICArIFsnYWRkU3VjY2VzcycsICdzdG9wVGVzdCddKQorICAgICAgICBzZWxmLl9jaGVja19jYWxsX29yZGVyX19zdWJ0ZXN0c19zdWNjZXNzKHJlc3VsdCwgZXZlbnRzLCBleHBlY3RlZCkKKworICAgIGRlZiB0ZXN0X3J1bl9jYWxsX29yZGVyX19zdWJ0ZXN0c19zdWNjZXNzX2xlZ2FjeShzZWxmKToKKyAgICAgICAgIyBXaXRoIGEgbGVnYWN5IHJlc3VsdCwgb25seSB0aGUgd2hvbGUgdGVzdCBzdWNjZXNzIGlzIHJlY29yZGVkLgorICAgICAgICBldmVudHMgPSBbXQorICAgICAgICByZXN1bHQgPSBMZWdhY3lMb2dnaW5nUmVzdWx0KGV2ZW50cykKKyAgICAgICAgZXhwZWN0ZWQgPSBbJ3N0YXJ0VGVzdCcsICdzZXRVcCcsICd0ZXN0JywgJ3RlYXJEb3duJywKKyAgICAgICAgICAgICAgICAgICAgJ2FkZFN1Y2Nlc3MnLCAnc3RvcFRlc3QnXQorICAgICAgICBzZWxmLl9jaGVja19jYWxsX29yZGVyX19zdWJ0ZXN0c19zdWNjZXNzKHJlc3VsdCwgZXZlbnRzLCBleHBlY3RlZCkKKworICAgIGRlZiB0ZXN0X3J1bl9jYWxsX29yZGVyX19zdWJ0ZXN0c19mYWlsZmFzdChzZWxmKToKKyAgICAgICAgZXZlbnRzID0gW10KKyAgICAgICAgcmVzdWx0ID0gTG9nZ2luZ1Jlc3VsdChldmVudHMpCisgICAgICAgIHJlc3VsdC5mYWlsZmFzdCA9IFRydWUKKworICAgICAgICBjbGFzcyBGb28oVGVzdC5Mb2dnaW5nVGVzdENhc2UpOgorICAgICAgICAgICAgZGVmIHRlc3Qoc2VsZik6CisgICAgICAgICAgICAgICAgc3VwZXIoRm9vLCBzZWxmKS50ZXN0KCkKKyAgICAgICAgICAgICAgICB3aXRoIHNlbGYuc3ViVGVzdChpPTEpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ2ZhaWx1cmUnKQorICAgICAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KGk9Mik6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnZmFpbHVyZScpCisgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdmYWlsdXJlJykKKworICAgICAgICBleHBlY3RlZCA9IFsnc3RhcnRUZXN0JywgJ3NldFVwJywgJ3Rlc3QnLCAndGVhckRvd24nLAorICAgICAgICAgICAgICAgICAgICAnYWRkU3ViVGVzdEZhaWx1cmUnLCAnc3RvcFRlc3QnXQorICAgICAgICBGb28oZXZlbnRzKS5ydW4ocmVzdWx0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50cywgZXhwZWN0ZWQpCisKICAgICAjICJUaGlzIGNsYXNzIGF0dHJpYnV0ZSBnaXZlcyB0aGUgZXhjZXB0aW9uIHJhaXNlZCBieSB0aGUgdGVzdCgpIG1ldGhvZC4KICAgICAjIElmIGEgdGVzdCBmcmFtZXdvcmsgbmVlZHMgdG8gdXNlIGEgc3BlY2lhbGl6ZWQgZXhjZXB0aW9uLCBwb3NzaWJseSB0bwogICAgICMgY2FycnkgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiwgaXQgbXVzdCBzdWJjbGFzcyB0aGlzIGV4Y2VwdGlvbiBpbgpkaWZmIC0tZ2l0IGEvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9kaXNjb3ZlcnkucHkgYi9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0X2Rpc2NvdmVyeS5weQppbmRleCAxZmRmOTkxLi5lY2EzNDhlIDEwMDY0NAotLS0gYS9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0X2Rpc2NvdmVyeS5weQorKysgYi9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0X2Rpc2NvdmVyeS5weQpAQCAtNDYsOSArNDYsOSBAQAogICAgICAgICBkZWYgcmVzdG9yZV9pc2RpcigpOgogICAgICAgICAgICAgb3MucGF0aC5pc2RpciA9IG9yaWdpbmFsX2lzZGlyCiAKLSAgICAgICAgcGF0aF9saXN0cyA9IFtbJ3Rlc3QxLnB5JywgJ3Rlc3QyLnB5JywgJ25vdF9hX3Rlc3QucHknLCAndGVzdF9kaXInLAorICAgICAgICBwYXRoX2xpc3RzID0gW1sndGVzdDIucHknLCAndGVzdDEucHknLCAnbm90X2FfdGVzdC5weScsICd0ZXN0X2RpcicsCiAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0LmZvbycsICd0ZXN0LW5vdC1hLW1vZHVsZS5weScsICdhbm90aGVyX2RpciddLAotICAgICAgICAgICAgICAgICAgICAgIFsndGVzdDMucHknLCAndGVzdDQucHknLCBdXQorICAgICAgICAgICAgICAgICAgICAgIFsndGVzdDQucHknLCAndGVzdDMucHknLCBdXQogICAgICAgICBvcy5saXN0ZGlyID0gbGFtYmRhIHBhdGg6IHBhdGhfbGlzdHMucG9wKDApCiAgICAgICAgIHNlbGYuYWRkQ2xlYW51cChyZXN0b3JlX2xpc3RkaXIpCiAKQEAgLTcwLDYgKzcwLDggQEAKICAgICAgICAgbG9hZGVyLl90b3BfbGV2ZWxfZGlyID0gdG9wX2xldmVsCiAgICAgICAgIHN1aXRlID0gbGlzdChsb2FkZXIuX2ZpbmRfdGVzdHModG9wX2xldmVsLCAndGVzdCoucHknKSkKIAorICAgICAgICAjIFRoZSB0ZXN0IHN1aXRlcyBmb3VuZCBzaG91bGQgYmUgc29ydGVkIGFscGhhYmV0aWNhbGx5IGZvciByZWxpYWJsZQorICAgICAgICAjIGV4ZWN1dGlvbiBvcmRlci4KICAgICAgICAgZXhwZWN0ZWQgPSBbbmFtZSArICcgbW9kdWxlIHRlc3RzJyBmb3IgbmFtZSBpbgogICAgICAgICAgICAgICAgICAgICAoJ3Rlc3QxJywgJ3Rlc3QyJyldCiAgICAgICAgIGV4cGVjdGVkLmV4dGVuZChbKCd0ZXN0X2Rpci4lcycgJSBuYW1lKSArICcgbW9kdWxlIHRlc3RzJyBmb3IgbmFtZSBpbgpAQCAtMTMyLDYgKzEzNCw3IEBACiAgICAgICAgICMgYW5kIGRpcmVjdGx5IGZyb20gdGhlIHRlc3RfZGlyZWN0b3J5MiBwYWNrYWdlCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3VpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgWydsb2FkX3Rlc3RzJywgJ3Rlc3RfZGlyZWN0b3J5MicgKyAnIG1vZHVsZSB0ZXN0cyddKQorICAgICAgICAjIFRoZSB0ZXN0IG1vZHVsZSBwYXRocyBzaG91bGQgYmUgc29ydGVkIGZvciByZWxpYWJsZSBleGVjdXRpb24gb3JkZXIKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNb2R1bGUucGF0aHMsIFsndGVzdF9kaXJlY3RvcnknLCAndGVzdF9kaXJlY3RvcnkyJ10pCiAKICAgICAgICAgIyBsb2FkX3Rlc3RzIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkIG9uY2Ugd2l0aCBsb2FkZXIsIHRlc3RzIGFuZCBwYXR0ZXJuCkBAIC0xODQsMTEgKzE4Nyw5IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2ZpbmRfdGVzdHNfYXJncywgWyhzdGFydF9kaXIsICdwYXR0ZXJuJyldKQogICAgICAgICBzZWxmLmFzc2VydEluKHRvcF9sZXZlbF9kaXIsIHN5cy5wYXRoKQogCi0gICAgZGVmIHRlc3RfZGlzY292ZXJfd2l0aF9tb2R1bGVzX3RoYXRfZmFpbF90b19pbXBvcnQoc2VsZik6Ci0gICAgICAgIGxvYWRlciA9IHVuaXR0ZXN0LlRlc3RMb2FkZXIoKQotCisgICAgZGVmIHNldHVwX2ltcG9ydF9pc3N1ZV90ZXN0cyhzZWxmLCBmYWtlZmlsZSk6CiAgICAgICAgIGxpc3RkaXIgPSBvcy5saXN0ZGlyCi0gICAgICAgIG9zLmxpc3RkaXIgPSBsYW1iZGEgXzogWyd0ZXN0X3RoaXNfZG9lc19ub3RfZXhpc3QucHknXQorICAgICAgICBvcy5saXN0ZGlyID0gbGFtYmRhIF86IFtmYWtlZmlsZV0KICAgICAgICAgaXNmaWxlID0gb3MucGF0aC5pc2ZpbGUKICAgICAgICAgb3MucGF0aC5pc2ZpbGUgPSBsYW1iZGEgXzogVHJ1ZQogICAgICAgICBvcmlnX3N5c19wYXRoID0gc3lzLnBhdGhbOl0KQEAgLTE5OCw2ICsxOTksMTEgQEAKICAgICAgICAgICAgIHN5cy5wYXRoWzpdID0gb3JpZ19zeXNfcGF0aAogICAgICAgICBzZWxmLmFkZENsZWFudXAocmVzdG9yZSkKIAorICAgIGRlZiB0ZXN0X2Rpc2NvdmVyX3dpdGhfbW9kdWxlc190aGF0X2ZhaWxfdG9faW1wb3J0KHNlbGYpOgorICAgICAgICBsb2FkZXIgPSB1bml0dGVzdC5UZXN0TG9hZGVyKCkKKworICAgICAgICBzZWxmLnNldHVwX2ltcG9ydF9pc3N1ZV90ZXN0cygndGVzdF90aGlzX2RvZXNfbm90X2V4aXN0LnB5JykKKwogICAgICAgICBzdWl0ZSA9IGxvYWRlci5kaXNjb3ZlcignLicpCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4ob3MuZ2V0Y3dkKCksIHN5cy5wYXRoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN1aXRlLmNvdW50VGVzdENhc2VzKCksIDEpCkBAIC0yMDYsNiArMjEyLDIyIEBACiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpOgogICAgICAgICAgICAgdGVzdC50ZXN0X3RoaXNfZG9lc19ub3RfZXhpc3QoKQogCisgICAgZGVmIHRlc3RfZGlzY292ZXJfd2l0aF9tb2R1bGVfdGhhdF9yYWlzZXNfU2tpcFRlc3Rfb25faW1wb3J0KHNlbGYpOgorICAgICAgICBsb2FkZXIgPSB1bml0dGVzdC5UZXN0TG9hZGVyKCkKKworICAgICAgICBkZWYgX2dldF9tb2R1bGVfZnJvbV9uYW1lKG5hbWUpOgorICAgICAgICAgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoJ3NraXBwZXJvbycpCisgICAgICAgIGxvYWRlci5fZ2V0X21vZHVsZV9mcm9tX25hbWUgPSBfZ2V0X21vZHVsZV9mcm9tX25hbWUKKworICAgICAgICBzZWxmLnNldHVwX2ltcG9ydF9pc3N1ZV90ZXN0cygndGVzdF9za2lwX2R1bW15LnB5JykKKworICAgICAgICBzdWl0ZSA9IGxvYWRlci5kaXNjb3ZlcignLicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3VpdGUuY291bnRUZXN0Q2FzZXMoKSwgMSkKKworICAgICAgICByZXN1bHQgPSB1bml0dGVzdC5UZXN0UmVzdWx0KCkKKyAgICAgICAgc3VpdGUucnVuKHJlc3VsdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocmVzdWx0LnNraXBwZWQpLCAxKQorCiAgICAgZGVmIHRlc3RfY29tbWFuZF9saW5lX2hhbmRsaW5nX3BhcnNlQXJncyhzZWxmKToKICAgICAgICAgcHJvZ3JhbSA9IFRlc3RhYmxlVGVzdFByb2dyYW0oKQogCmRpZmYgLS1naXQgYS9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0X3Byb2dyYW0ucHkgYi9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0X3Byb2dyYW0ucHkKaW5kZXggOTc5NDg2OC4uOTdkN2EyNCAxMDA2NDQKLS0tIGEvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9wcm9ncmFtLnB5CisrKyBiL0xpYi91bml0dGVzdC90ZXN0L3Rlc3RfcHJvZ3JhbS5weQpAQCAtNjQsNiArNjQsNDEgQEAKICAgICAgICAgICAgIHJldHVybiBzZWxmLnN1aXRlQ2xhc3MoCiAgICAgICAgICAgICAgICAgW3NlbGYubG9hZFRlc3RzRnJvbVRlc3RDYXNlKFRlc3RfVGVzdFByb2dyYW0uRm9vQmFyKV0pCiAKKyAgICAgICAgZGVmIGxvYWRUZXN0c0Zyb21OYW1lcyhzZWxmLCBuYW1lcywgbW9kdWxlKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnN1aXRlQ2xhc3MoCisgICAgICAgICAgICAgICAgW3NlbGYubG9hZFRlc3RzRnJvbVRlc3RDYXNlKFRlc3RfVGVzdFByb2dyYW0uRm9vQmFyKV0pCisKKyAgICBkZWYgdGVzdF9kZWZhdWx0VGVzdF93aXRoX3N0cmluZyhzZWxmKToKKyAgICAgICAgY2xhc3MgRmFrZVJ1bm5lcihvYmplY3QpOgorICAgICAgICAgICAgZGVmIHJ1bihzZWxmLCB0ZXN0KToKKyAgICAgICAgICAgICAgICBzZWxmLnRlc3QgPSB0ZXN0CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICBvbGRfYXJndiA9IHN5cy5hcmd2CisgICAgICAgIHN5cy5hcmd2ID0gWydmYWtldGVzdCddCisgICAgICAgIHJ1bm5lciA9IEZha2VSdW5uZXIoKQorICAgICAgICBwcm9ncmFtID0gdW5pdHRlc3QuVGVzdFByb2dyYW0odGVzdFJ1bm5lcj1ydW5uZXIsIGV4aXQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VGVzdD0ndW5pdHRlc3QudGVzdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0TG9hZGVyPXNlbGYuRm9vQmFyTG9hZGVyKCkpCisgICAgICAgIHN5cy5hcmd2ID0gb2xkX2FyZ3YKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoJ3VuaXR0ZXN0LnRlc3QnLCksIHByb2dyYW0udGVzdE5hbWVzKQorCisgICAgZGVmIHRlc3RfZGVmYXVsdFRlc3Rfd2l0aF9pdGVyYWJsZShzZWxmKToKKyAgICAgICAgY2xhc3MgRmFrZVJ1bm5lcihvYmplY3QpOgorICAgICAgICAgICAgZGVmIHJ1bihzZWxmLCB0ZXN0KToKKyAgICAgICAgICAgICAgICBzZWxmLnRlc3QgPSB0ZXN0CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICBvbGRfYXJndiA9IHN5cy5hcmd2CisgICAgICAgIHN5cy5hcmd2ID0gWydmYWtldGVzdCddCisgICAgICAgIHJ1bm5lciA9IEZha2VSdW5uZXIoKQorICAgICAgICBwcm9ncmFtID0gdW5pdHRlc3QuVGVzdFByb2dyYW0oCisgICAgICAgICAgICB0ZXN0UnVubmVyPXJ1bm5lciwgZXhpdD1GYWxzZSwKKyAgICAgICAgICAgIGRlZmF1bHRUZXN0PVsndW5pdHRlc3QudGVzdCcsICd1bml0dGVzdC50ZXN0MiddLAorICAgICAgICAgICAgdGVzdExvYWRlcj1zZWxmLkZvb0JhckxvYWRlcigpKQorICAgICAgICBzeXMuYXJndiA9IG9sZF9hcmd2CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyd1bml0dGVzdC50ZXN0JywgJ3VuaXR0ZXN0LnRlc3QyJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW0udGVzdE5hbWVzKQogCiAgICAgZGVmIHRlc3RfTm9uRXhpdChzZWxmKToKICAgICAgICAgcHJvZ3JhbSA9IHVuaXR0ZXN0Lm1haW4oZXhpdD1GYWxzZSwKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3RfcmVzdWx0LnB5IGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9yZXN1bHQucHkKaW5kZXggMWM1OGU2MS4uNmRkOWJiMCAxMDA2NDQKLS0tIGEvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9yZXN1bHQucHkKKysrIGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9yZXN1bHQucHkKQEAgLTIyNyw2ICsyMjcsNDAgQEAKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHRlc3RfY2FzZSBpcyB0ZXN0KQogICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoZm9ybWF0dGVkX2V4Yywgc3RyKQogCisgICAgZGVmIHRlc3RfYWRkU3ViVGVzdChzZWxmKToKKyAgICAgICAgY2xhc3MgRm9vKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoc2VsZik6CisgICAgICAgICAgICAgICAgbm9ubG9jYWwgc3VidGVzdAorICAgICAgICAgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KGZvbz0xKToKKyAgICAgICAgICAgICAgICAgICAgc3VidGVzdCA9IHNlbGYuX3N1YnRlc3QKKyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgMS8wCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBaZXJvRGl2aXNpb25FcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y19pbmZvX3R1cGxlID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgICAgICAgICAgICAgIyBSZWdpc3RlciBhbiBlcnJvciBieSBoYW5kICh0byBjaGVjayB0aGUgQVBJKQorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkU3ViVGVzdCh0ZXN0LCBzdWJ0ZXN0LCBleGNfaW5mb190dXBsZSkKKyAgICAgICAgICAgICAgICAgICAgIyBOb3cgdHJpZ2dlciBhIGZhaWx1cmUKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJzb21lIHJlY29nbml6YWJsZSBmYWlsdXJlIikKKworICAgICAgICBzdWJ0ZXN0ID0gTm9uZQorICAgICAgICB0ZXN0ID0gRm9vKCd0ZXN0XzEnKQorICAgICAgICByZXN1bHQgPSB1bml0dGVzdC5UZXN0UmVzdWx0KCkKKworICAgICAgICB0ZXN0LnJ1bihyZXN1bHQpCisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXN1bHQud2FzU3VjY2Vzc2Z1bCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXN1bHQuZXJyb3JzKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocmVzdWx0LmZhaWx1cmVzKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQudGVzdHNSdW4sIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LnNob3VsZFN0b3AsIEZhbHNlKQorCisgICAgICAgIHRlc3RfY2FzZSwgZm9ybWF0dGVkX2V4YyA9IHJlc3VsdC5lcnJvcnNbMF0KKyAgICAgICAgc2VsZi5hc3NlcnRJcyh0ZXN0X2Nhc2UsIHN1YnRlc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oIlplcm9EaXZpc2lvbkVycm9yIiwgZm9ybWF0dGVkX2V4YykKKyAgICAgICAgdGVzdF9jYXNlLCBmb3JtYXR0ZWRfZXhjID0gcmVzdWx0LmZhaWx1cmVzWzBdCisgICAgICAgIHNlbGYuYXNzZXJ0SXModGVzdF9jYXNlLCBzdWJ0ZXN0KQorICAgICAgICBzZWxmLmFzc2VydEluKCJzb21lIHJlY29nbml6YWJsZSBmYWlsdXJlIiwgZm9ybWF0dGVkX2V4YykKKwogICAgIGRlZiB0ZXN0R2V0RGVzY3JpcHRpb25XaXRob3V0RG9jc3RyaW5nKHNlbGYpOgogICAgICAgICByZXN1bHQgPSB1bml0dGVzdC5UZXh0VGVzdFJlc3VsdChOb25lLCBUcnVlLCAxKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKApAQCAtMjM0LDYgKzI2OCwzNyBAQAogICAgICAgICAgICAgICAgICd0ZXN0R2V0RGVzY3JpcHRpb25XaXRob3V0RG9jc3RyaW5nICgnICsgX19uYW1lX18gKwogICAgICAgICAgICAgICAgICcuVGVzdF9UZXN0UmVzdWx0KScpCiAKKyAgICBkZWYgdGVzdEdldFN1YlRlc3REZXNjcmlwdGlvbldpdGhvdXREb2NzdHJpbmcoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KGZvbz0xLCBiYXI9Mik6CisgICAgICAgICAgICByZXN1bHQgPSB1bml0dGVzdC5UZXh0VGVzdFJlc3VsdChOb25lLCBUcnVlLCAxKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmdldERlc2NyaXB0aW9uKHNlbGYuX3N1YnRlc3QpLAorICAgICAgICAgICAgICAgICAgICAndGVzdEdldFN1YlRlc3REZXNjcmlwdGlvbldpdGhvdXREb2NzdHJpbmcgKCcgKyBfX25hbWVfXyArCisgICAgICAgICAgICAgICAgICAgICcuVGVzdF9UZXN0UmVzdWx0KSAoYmFyPTIsIGZvbz0xKScpCisgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KCdzb21lIG1lc3NhZ2UnKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHVuaXR0ZXN0LlRleHRUZXN0UmVzdWx0KE5vbmUsIFRydWUsIDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgICAgICAgICByZXN1bHQuZ2V0RGVzY3JpcHRpb24oc2VsZi5fc3VidGVzdCksCisgICAgICAgICAgICAgICAgICAgICd0ZXN0R2V0U3ViVGVzdERlc2NyaXB0aW9uV2l0aG91dERvY3N0cmluZyAoJyArIF9fbmFtZV9fICsKKyAgICAgICAgICAgICAgICAgICAgJy5UZXN0X1Rlc3RSZXN1bHQpIFtzb21lIG1lc3NhZ2VdJykKKworICAgIGRlZiB0ZXN0R2V0U3ViVGVzdERlc2NyaXB0aW9uV2l0aG91dERvY3N0cmluZ0FuZFBhcmFtcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QoKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHVuaXR0ZXN0LlRleHRUZXN0UmVzdWx0KE5vbmUsIFRydWUsIDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgICAgICAgICByZXN1bHQuZ2V0RGVzY3JpcHRpb24oc2VsZi5fc3VidGVzdCksCisgICAgICAgICAgICAgICAgICAgICd0ZXN0R2V0U3ViVGVzdERlc2NyaXB0aW9uV2l0aG91dERvY3N0cmluZ0FuZFBhcmFtcyAnCisgICAgICAgICAgICAgICAgICAgICcoJyArIF9fbmFtZV9fICsgJy5UZXN0X1Rlc3RSZXN1bHQpICg8c3VidGVzdD4pJykKKworICAgIGRlZiB0ZXN0R2V0TmVzdGVkU3ViVGVzdERlc2NyaXB0aW9uV2l0aG91dERvY3N0cmluZyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QoZm9vPTEpOgorICAgICAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QoYmFyPTIpOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHVuaXR0ZXN0LlRleHRUZXN0UmVzdWx0KE5vbmUsIFRydWUsIDEpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5nZXREZXNjcmlwdGlvbihzZWxmLl9zdWJ0ZXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0R2V0TmVzdGVkU3ViVGVzdERlc2NyaXB0aW9uV2l0aG91dERvY3N0cmluZyAnCisgICAgICAgICAgICAgICAgICAgICAgICAnKCcgKyBfX25hbWVfXyArICcuVGVzdF9UZXN0UmVzdWx0KSAoYmFyPTIsIGZvbz0xKScpCisKICAgICBAdW5pdHRlc3Quc2tpcElmKHN5cy5mbGFncy5vcHRpbWl6ZSA+PSAyLAogICAgICAgICAgICAgICAgICAgICAgIkRvY3N0cmluZ3MgYXJlIG9taXR0ZWQgd2l0aCAtTzIgYW5kIGFib3ZlIikKICAgICBkZWYgdGVzdEdldERlc2NyaXB0aW9uV2l0aE9uZUxpbmVEb2NzdHJpbmcoc2VsZik6CkBAIC0yNDcsNiArMzEyLDE4IEBACiAKICAgICBAdW5pdHRlc3Quc2tpcElmKHN5cy5mbGFncy5vcHRpbWl6ZSA+PSAyLAogICAgICAgICAgICAgICAgICAgICAgIkRvY3N0cmluZ3MgYXJlIG9taXR0ZWQgd2l0aCAtTzIgYW5kIGFib3ZlIikKKyAgICBkZWYgdGVzdEdldFN1YlRlc3REZXNjcmlwdGlvbldpdGhPbmVMaW5lRG9jc3RyaW5nKHNlbGYpOgorICAgICAgICAiIiJUZXN0cyBnZXREZXNjcmlwdGlvbigpIGZvciBhIG1ldGhvZCB3aXRoIGEgZG9jc3RyaW5nLiIiIgorICAgICAgICByZXN1bHQgPSB1bml0dGVzdC5UZXh0VGVzdFJlc3VsdChOb25lLCBUcnVlLCAxKQorICAgICAgICB3aXRoIHNlbGYuc3ViVGVzdChmb289MSwgYmFyPTIpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAgICByZXN1bHQuZ2V0RGVzY3JpcHRpb24oc2VsZi5fc3VidGVzdCksCisgICAgICAgICAgICAgICAoJ3Rlc3RHZXRTdWJUZXN0RGVzY3JpcHRpb25XaXRoT25lTGluZURvY3N0cmluZyAnCisgICAgICAgICAgICAgICAgJygnICsgX19uYW1lX18gKyAnLlRlc3RfVGVzdFJlc3VsdCkgKGJhcj0yLCBmb289MSlcbicKKyAgICAgICAgICAgICAgICAnVGVzdHMgZ2V0RGVzY3JpcHRpb24oKSBmb3IgYSBtZXRob2Qgd2l0aCBhIGRvY3N0cmluZy4nKSkKKworICAgIEB1bml0dGVzdC5za2lwSWYoc3lzLmZsYWdzLm9wdGltaXplID49IDIsCisgICAgICAgICAgICAgICAgICAgICAiRG9jc3RyaW5ncyBhcmUgb21pdHRlZCB3aXRoIC1PMiBhbmQgYWJvdmUiKQogICAgIGRlZiB0ZXN0R2V0RGVzY3JpcHRpb25XaXRoTXVsdGlMaW5lRG9jc3RyaW5nKHNlbGYpOgogICAgICAgICAiIiJUZXN0cyBnZXREZXNjcmlwdGlvbigpIGZvciBhIG1ldGhvZCB3aXRoIGEgbG9uZ2VyIGRvY3N0cmluZy4KICAgICAgICAgVGhlIHNlY29uZCBsaW5lIG9mIHRoZSBkb2NzdHJpbmcuCkBAIC0yNTksNiArMzM2LDIxIEBACiAgICAgICAgICAgICAgICAgJ1Rlc3RzIGdldERlc2NyaXB0aW9uKCkgZm9yIGEgbWV0aG9kIHdpdGggYSBsb25nZXIgJwogICAgICAgICAgICAgICAgICdkb2NzdHJpbmcuJykpCiAKKyAgICBAdW5pdHRlc3Quc2tpcElmKHN5cy5mbGFncy5vcHRpbWl6ZSA+PSAyLAorICAgICAgICAgICAgICAgICAgICAgIkRvY3N0cmluZ3MgYXJlIG9taXR0ZWQgd2l0aCAtTzIgYW5kIGFib3ZlIikKKyAgICBkZWYgdGVzdEdldFN1YlRlc3REZXNjcmlwdGlvbldpdGhNdWx0aUxpbmVEb2NzdHJpbmcoc2VsZik6CisgICAgICAgICIiIlRlc3RzIGdldERlc2NyaXB0aW9uKCkgZm9yIGEgbWV0aG9kIHdpdGggYSBsb25nZXIgZG9jc3RyaW5nLgorICAgICAgICBUaGUgc2Vjb25kIGxpbmUgb2YgdGhlIGRvY3N0cmluZy4KKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IHVuaXR0ZXN0LlRleHRUZXN0UmVzdWx0KE5vbmUsIFRydWUsIDEpCisgICAgICAgIHdpdGggc2VsZi5zdWJUZXN0KGZvbz0xLCBiYXI9Mik6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgICAgIHJlc3VsdC5nZXREZXNjcmlwdGlvbihzZWxmLl9zdWJ0ZXN0KSwKKyAgICAgICAgICAgICAgICgndGVzdEdldFN1YlRlc3REZXNjcmlwdGlvbldpdGhNdWx0aUxpbmVEb2NzdHJpbmcgJworICAgICAgICAgICAgICAgICcoJyArIF9fbmFtZV9fICsgJy5UZXN0X1Rlc3RSZXN1bHQpIChiYXI9MiwgZm9vPTEpXG4nCisgICAgICAgICAgICAgICAgJ1Rlc3RzIGdldERlc2NyaXB0aW9uKCkgZm9yIGEgbWV0aG9kIHdpdGggYSBsb25nZXIgJworICAgICAgICAgICAgICAgICdkb2NzdHJpbmcuJykpCisKICAgICBkZWYgdGVzdFN0YWNrRnJhbWVUcmltbWluZyhzZWxmKToKICAgICAgICAgY2xhc3MgRnJhbWUob2JqZWN0KToKICAgICAgICAgICAgIGNsYXNzIHRiX2ZyYW1lKG9iamVjdCk6CmRpZmYgLS1naXQgYS9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0X3J1bm5lci5weSBiL0xpYi91bml0dGVzdC90ZXN0L3Rlc3RfcnVubmVyLnB5CmluZGV4IGUyMmU2YmMuLjVhOTFmMWIgMTAwNjQ0Ci0tLSBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3RfcnVubmVyLnB5CisrKyBiL0xpYi91bml0dGVzdC90ZXN0L3Rlc3RfcnVubmVyLnB5CkBAIC01LDYgKzUsNyBAQAogaW1wb3J0IHN1YnByb2Nlc3MKIAogaW1wb3J0IHVuaXR0ZXN0Citmcm9tIHVuaXR0ZXN0LmNhc2UgaW1wb3J0IF9PdXRjb21lCiAKIGZyb20gLnN1cHBvcnQgaW1wb3J0IExvZ2dpbmdSZXN1bHQsIFJlc3VsdFdpdGhOb1N0YXJ0VGVzdFJ1blN0b3BUZXN0UnVuCiAKQEAgLTQyLDEyICs0Myw4IEBACiAgICAgICAgICAgICBkZWYgdGVzdE5vdGhpbmcoc2VsZik6CiAgICAgICAgICAgICAgICAgcGFzcwogCi0gICAgICAgIGNsYXNzIE1vY2tPdXRjb21lKG9iamVjdCk6Ci0gICAgICAgICAgICBzdWNjZXNzID0gVHJ1ZQotICAgICAgICAgICAgZXJyb3JzID0gW10KLQogICAgICAgICB0ZXN0ID0gVGVzdGFibGVUZXN0KCd0ZXN0Tm90aGluZycpCi0gICAgICAgIHRlc3QuX291dGNvbWVGb3JEb0NsZWFudXBzID0gTW9ja091dGNvbWUKKyAgICAgICAgb3V0Y29tZSA9IHRlc3QuX291dGNvbWUgPSBfT3V0Y29tZSgpCiAKICAgICAgICAgZXhjMSA9IEV4Y2VwdGlvbignZm9vJykKICAgICAgICAgZXhjMiA9IEV4Y2VwdGlvbignYmFyJykKQEAgLTYxLDkgKzU4LDEwIEBACiAgICAgICAgIHRlc3QuYWRkQ2xlYW51cChjbGVhbnVwMikKIAogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHRlc3QuZG9DbGVhbnVwcygpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKE1vY2tPdXRjb21lLnN1Y2Nlc3MpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3V0Y29tZS5zdWNjZXNzKQogCi0gICAgICAgIChUeXBlMSwgaW5zdGFuY2UxLCBfKSwgKFR5cGUyLCBpbnN0YW5jZTIsIF8pID0gcmV2ZXJzZWQoTW9ja091dGNvbWUuZXJyb3JzKQorICAgICAgICAoKF8sIChUeXBlMSwgaW5zdGFuY2UxLCBfKSksCisgICAgICAgICAoXywgKFR5cGUyLCBpbnN0YW5jZTIsIF8pKSkgPSByZXZlcnNlZChvdXRjb21lLmVycm9ycykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoVHlwZTEsIGluc3RhbmNlMSksIChFeGNlcHRpb24sIGV4YzEpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKChUeXBlMiwgaW5zdGFuY2UyKSwgKEV4Y2VwdGlvbiwgZXhjMikpCiAKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rfc2tpcHBpbmcucHkgYi9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0X3NraXBwaW5nLnB5CmluZGV4IDk1MjI0MGUuLjM1NTY5MzIgMTAwNjQ0Ci0tLSBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rfc2tpcHBpbmcucHkKKysrIGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9za2lwcGluZy5weQpAQCAtMjksNiArMjksMzEgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQuc2tpcHBlZCwgWyh0ZXN0LCAidGVzdGluZyIpXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQudGVzdHNSdW4sIDEpCiAKKyAgICBkZWYgdGVzdF9za2lwcGluZ19zdWJ0ZXN0cyhzZWxmKToKKyAgICAgICAgY2xhc3MgRm9vKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NraXBfbWUoc2VsZik6CisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QoYT0xKToKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QoYj0yKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoInNraXAgMSIpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoInNraXAgMiIpCisgICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgic2tpcCAzIikKKyAgICAgICAgZXZlbnRzID0gW10KKyAgICAgICAgcmVzdWx0ID0gTG9nZ2luZ1Jlc3VsdChldmVudHMpCisgICAgICAgIHRlc3QgPSBGb28oInRlc3Rfc2tpcF9tZSIpCisgICAgICAgIHRlc3QucnVuKHJlc3VsdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmVudHMsIFsnc3RhcnRUZXN0JywgJ2FkZFNraXAnLCAnYWRkU2tpcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZFNraXAnLCAnc3RvcFRlc3QnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocmVzdWx0LnNraXBwZWQpLCAzKQorICAgICAgICBzdWJ0ZXN0LCBtc2cgPSByZXN1bHQuc2tpcHBlZFswXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZywgInNraXAgMSIpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShzdWJ0ZXN0LCB1bml0dGVzdC5UZXN0Q2FzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdChzdWJ0ZXN0LCB0ZXN0KQorICAgICAgICBzdWJ0ZXN0LCBtc2cgPSByZXN1bHQuc2tpcHBlZFsxXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZywgInNraXAgMiIpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShzdWJ0ZXN0LCB1bml0dGVzdC5UZXN0Q2FzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdChzdWJ0ZXN0LCB0ZXN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdC5za2lwcGVkWzJdLCAodGVzdCwgInNraXAgMyIpKQorCiAgICAgZGVmIHRlc3Rfc2tpcHBpbmdfZGVjb3JhdG9ycyhzZWxmKToKICAgICAgICAgb3BfdGFibGUgPSAoKHVuaXR0ZXN0LnNraXBVbmxlc3MsIEZhbHNlLCBUcnVlKSwKICAgICAgICAgICAgICAgICAgICAgKHVuaXR0ZXN0LnNraXBJZiwgVHJ1ZSwgRmFsc2UpKQpAQCAtOTUsNiArMTIwLDMxIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LmV4cGVjdGVkRmFpbHVyZXNbMF1bMF0sIHRlc3QpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXN1bHQud2FzU3VjY2Vzc2Z1bCgpKQogCisgICAgZGVmIHRlc3RfZXhwZWN0ZWRfZmFpbHVyZV9zdWJ0ZXN0cyhzZWxmKToKKyAgICAgICAgIyBBIGZhaWx1cmUgaW4gYW55IHN1YnRlc3QgY291bnRzIGFzIHRoZSBleHBlY3RlZCBmYWlsdXJlIG9mIHRoZQorICAgICAgICAjIHdob2xlIHRlc3QuCisgICAgICAgIGNsYXNzIEZvbyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICAgICBAdW5pdHRlc3QuZXhwZWN0ZWRGYWlsdXJlCisgICAgICAgICAgICBkZWYgdGVzdF9kaWUoc2VsZik6CisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QoKToKKyAgICAgICAgICAgICAgICAgICAgIyBUaGlzIG9uZSBzdWNjZWVkcworICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QoKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJoZWxwIG1lISIpCisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QoKToKKyAgICAgICAgICAgICAgICAgICAgIyBUaGlzIG9uZSBkb2Vzbid0IGdldCBleGVjdXRlZAorICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoInNob3VsZG4ndCBjb21lIGhlcmUiKQorICAgICAgICBldmVudHMgPSBbXQorICAgICAgICByZXN1bHQgPSBMb2dnaW5nUmVzdWx0KGV2ZW50cykKKyAgICAgICAgdGVzdCA9IEZvbygidGVzdF9kaWUiKQorICAgICAgICB0ZXN0LnJ1bihyZXN1bHQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsnc3RhcnRUZXN0JywgJ2FkZFN1YlRlc3RTdWNjZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZEV4cGVjdGVkRmFpbHVyZScsICdzdG9wVGVzdCddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXN1bHQuZXhwZWN0ZWRGYWlsdXJlcyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocmVzdWx0LmV4cGVjdGVkRmFpbHVyZXNbMF1bMF0sIHRlc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXN1bHQud2FzU3VjY2Vzc2Z1bCgpKQorCiAgICAgZGVmIHRlc3RfdW5leHBlY3RlZF9zdWNjZXNzKHNlbGYpOgogICAgICAgICBjbGFzcyBGb28odW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgQHVuaXR0ZXN0LmV4cGVjdGVkRmFpbHVyZQpAQCAtMTEwLDYgKzE2MCwzMCBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdC51bmV4cGVjdGVkU3VjY2Vzc2VzLCBbdGVzdF0pCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXN1bHQud2FzU3VjY2Vzc2Z1bCgpKQogCisgICAgZGVmIHRlc3RfdW5leHBlY3RlZF9zdWNjZXNzX3N1YnRlc3RzKHNlbGYpOgorICAgICAgICAjIFN1Y2Nlc3MgaW4gYWxsIHN1YnRlc3RzIGNvdW50cyBhcyB0aGUgdW5leHBlY3RlZCBzdWNjZXNzIG9mCisgICAgICAgICMgdGhlIHdob2xlIHRlc3QuCisgICAgICAgIGNsYXNzIEZvbyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICAgICBAdW5pdHRlc3QuZXhwZWN0ZWRGYWlsdXJlCisgICAgICAgICAgICBkZWYgdGVzdF9kaWUoc2VsZik6CisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QoKToKKyAgICAgICAgICAgICAgICAgICAgIyBUaGlzIG9uZSBzdWNjZWVkcworICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLnN1YlRlc3QoKToKKyAgICAgICAgICAgICAgICAgICAgIyBTbyBkb2VzIHRoaXMgb25lCisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZXZlbnRzID0gW10KKyAgICAgICAgcmVzdWx0ID0gTG9nZ2luZ1Jlc3VsdChldmVudHMpCisgICAgICAgIHRlc3QgPSBGb28oInRlc3RfZGllIikKKyAgICAgICAgdGVzdC5ydW4ocmVzdWx0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2ZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICBbJ3N0YXJ0VGVzdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRTdWJUZXN0U3VjY2VzcycsICdhZGRTdWJUZXN0U3VjY2VzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRVbmV4cGVjdGVkU3VjY2VzcycsICdzdG9wVGVzdCddKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJlc3VsdC5mYWlsdXJlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQudW5leHBlY3RlZFN1Y2Nlc3NlcywgW3Rlc3RdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzdWx0Lndhc1N1Y2Nlc3NmdWwoKSkKKwogICAgIGRlZiB0ZXN0X3NraXBfZG9lc250X3J1bl9zZXR1cChzZWxmKToKICAgICAgICAgY2xhc3MgRm9vKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHdhc1NldFVwID0gRmFsc2UKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL3Rlc3RoZWxwZXJzLnB5IGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdGhlbHBlcnMucHkKaW5kZXggOGJmYjI5My4uOGIyZTk2ZCAxMDA2NDQKLS0tIGEvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdGhlbHBlcnMucHkKKysrIGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdGhlbHBlcnMucHkKQEAgLTMzNyw5ICszMzcsMTAgQEAKIAogCiAgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6Ci0gICAgICAgIGZvciBzcGVjIGluIChTb21lQ2xhc3MsIFNvbWVDbGFzcygpKToKLSAgICAgICAgICAgIG1vY2sgPSBjcmVhdGVfYXV0b3NwZWMoc3BlYykKLSAgICAgICAgICAgIHNlbGYuX2NoZWNrX3NvbWVjbGFzc19tb2NrKG1vY2spCisgICAgICAgIG1vY2sgPSBjcmVhdGVfYXV0b3NwZWMoU29tZUNsYXNzKQorICAgICAgICBzZWxmLl9jaGVja19zb21lY2xhc3NfbW9jayhtb2NrKQorICAgICAgICBtb2NrID0gY3JlYXRlX2F1dG9zcGVjKFNvbWVDbGFzcygpKQorICAgICAgICBzZWxmLl9jaGVja19zb21lY2xhc3NfbW9jayhtb2NrKQogCiAKICAgICBkZWYgdGVzdF9jcmVhdGVfYXV0b3NwZWNfcmV0dXJuX3ZhbHVlKHNlbGYpOgpAQCAtNTc2LDEwICs1NzcsMTAgQEAKIAogICAgIGRlZiB0ZXN0X3NwZWNfaW5oZXJpdGFuY2VfZm9yX2NsYXNzZXMoc2VsZik6CiAgICAgICAgIGNsYXNzIEZvbyhvYmplY3QpOgotICAgICAgICAgICAgZGVmIGEoc2VsZik6CisgICAgICAgICAgICBkZWYgYShzZWxmLCB4KToKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICBjbGFzcyBCYXIob2JqZWN0KToKLSAgICAgICAgICAgICAgICBkZWYgZihzZWxmKToKKyAgICAgICAgICAgICAgICBkZWYgZihzZWxmLCB5KToKICAgICAgICAgICAgICAgICAgICAgcGFzcwogCiAgICAgICAgIGNsYXNzX21vY2sgPSBjcmVhdGVfYXV0b3NwZWMoRm9vKQpAQCAtNTg3LDI2ICs1ODgsMzAgQEAKICAgICAgICAgc2VsZi5hc3NlcnRJc05vdChjbGFzc19tb2NrLCBjbGFzc19tb2NrKCkpCiAKICAgICAgICAgZm9yIHRoaXNfbW9jayBpbiBjbGFzc19tb2NrLCBjbGFzc19tb2NrKCk6Ci0gICAgICAgICAgICB0aGlzX21vY2suYSgpCi0gICAgICAgICAgICB0aGlzX21vY2suYS5hc3NlcnRfY2FsbGVkX3dpdGgoKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB0aGlzX21vY2suYSwgJ2ZvbycpCisgICAgICAgICAgICB0aGlzX21vY2suYSh4PTUpCisgICAgICAgICAgICB0aGlzX21vY2suYS5hc3NlcnRfY2FsbGVkX3dpdGgoeD01KQorICAgICAgICAgICAgdGhpc19tb2NrLmEuYXNzZXJ0X2NhbGxlZF93aXRoKDUpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHRoaXNfbW9jay5hLCAnZm9vJywgJ2JhcicpCiAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgdGhpc19tb2NrLCAnYicpCiAKICAgICAgICAgaW5zdGFuY2VfbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhGb28oKSkKLSAgICAgICAgaW5zdGFuY2VfbW9jay5hKCkKLSAgICAgICAgaW5zdGFuY2VfbW9jay5hLmFzc2VydF9jYWxsZWRfd2l0aCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaW5zdGFuY2VfbW9jay5hLCAnZm9vJykKKyAgICAgICAgaW5zdGFuY2VfbW9jay5hKDUpCisgICAgICAgIGluc3RhbmNlX21vY2suYS5hc3NlcnRfY2FsbGVkX3dpdGgoNSkKKyAgICAgICAgaW5zdGFuY2VfbW9jay5hLmFzc2VydF9jYWxsZWRfd2l0aCh4PTUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaW5zdGFuY2VfbW9jay5hLCAnZm9vJywgJ2JhcicpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBpbnN0YW5jZV9tb2NrLCAnYicpCiAKICAgICAgICAgIyBUaGUgcmV0dXJuIHZhbHVlIGlzbid0IGlzbid0IGNhbGxhYmxlCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaW5zdGFuY2VfbW9jaykKIAotICAgICAgICBpbnN0YW5jZV9tb2NrLkJhci5mKCkKLSAgICAgICAgaW5zdGFuY2VfbW9jay5CYXIuZi5hc3NlcnRfY2FsbGVkX3dpdGgoKQorICAgICAgICBpbnN0YW5jZV9tb2NrLkJhci5mKDYpCisgICAgICAgIGluc3RhbmNlX21vY2suQmFyLmYuYXNzZXJ0X2NhbGxlZF93aXRoKDYpCisgICAgICAgIGluc3RhbmNlX21vY2suQmFyLmYuYXNzZXJ0X2NhbGxlZF93aXRoKHk9NikKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGdldGF0dHIsIGluc3RhbmNlX21vY2suQmFyLCAnZycpCiAKLSAgICAgICAgaW5zdGFuY2VfbW9jay5CYXIoKS5mKCkKLSAgICAgICAgaW5zdGFuY2VfbW9jay5CYXIoKS5mLmFzc2VydF9jYWxsZWRfd2l0aCgpCisgICAgICAgIGluc3RhbmNlX21vY2suQmFyKCkuZig2KQorICAgICAgICBpbnN0YW5jZV9tb2NrLkJhcigpLmYuYXNzZXJ0X2NhbGxlZF93aXRoKDYpCisgICAgICAgIGluc3RhbmNlX21vY2suQmFyKCkuZi5hc3NlcnRfY2FsbGVkX3dpdGgoeT02KQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgaW5zdGFuY2VfbW9jay5CYXIoKSwgJ2cnKQogCiAKQEAgLTY2MywxMiArNjY4LDE1IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbW9jaykKICAgICAgICAgbW9jaygxLCAyKQogICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgxLCAyKQorICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgxLCBiPTIpCisgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKGE9MSwgYj0yKQogCiAgICAgICAgIGYuZiA9IGYKICAgICAgICAgbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhmKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG1vY2suZikKICAgICAgICAgbW9jay5mKDMsIDQpCiAgICAgICAgIG1vY2suZi5hc3NlcnRfY2FsbGVkX3dpdGgoMywgNCkKKyAgICAgICAgbW9jay5mLmFzc2VydF9jYWxsZWRfd2l0aChhPTMsIGI9NCkKIAogCiAgICAgZGVmIHRlc3Rfc2tpcF9hdHRyaWJ1dGVlcnJvcnMoc2VsZik6CkBAIC03MDQsOSArNzEyLDEzIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbW9jaykKICAgICAgICAgbW9jaygxKQogICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKDEpCisgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoYT0xKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgbW9jay5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCwgMikKIAogICAgICAgICBtb2NrKDQsIDUpCiAgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKDQsIDUpCisgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKGE9NCwgYj01KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgsIGE9NSwgYj00KQogCiAKICAgICBkZWYgdGVzdF9jbGFzc193aXRoX25vX2luaXQoc2VsZik6CkBAIC03MTksMjQgKzczMSwyNyBAQAogCiAgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX2NhbGxhYmxlKHNlbGYpOgogICAgICAgICBjbGFzcyBDYWxsYWJsZShvYmplY3QpOgotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHgsIHkpOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBhKToKICAgICAgICAgICAgICAgICBwYXNzCiAKICAgICAgICAgbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhDYWxsYWJsZSkKLSAgICAgICAgbW9jaygpCi0gICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoKQorICAgICAgICBtb2NrKDEsIDIpCisgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoMSwgMikKKyAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCh4PTEsIHk9MikKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtb2NrLCAnYScpCiAKLSAgICAgICAgaW5zdGFuY2UgPSBtb2NrKCkKKyAgICAgICAgaW5zdGFuY2UgPSBtb2NrKDEsIDIpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaW5zdGFuY2UpCiAgICAgICAgIGluc3RhbmNlKGE9J2EnKQorICAgICAgICBpbnN0YW5jZS5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgnYScpCiAgICAgICAgIGluc3RhbmNlLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKGE9J2EnKQogICAgICAgICBpbnN0YW5jZSgnYScpCiAgICAgICAgIGluc3RhbmNlLmFzc2VydF9jYWxsZWRfd2l0aCgnYScpCisgICAgICAgIGluc3RhbmNlLmFzc2VydF9jYWxsZWRfd2l0aChhPSdhJykKIAotICAgICAgICBtb2NrID0gY3JlYXRlX2F1dG9zcGVjKENhbGxhYmxlKCkpCisgICAgICAgIG1vY2sgPSBjcmVhdGVfYXV0b3NwZWMoQ2FsbGFibGUoMSwgMikpCiAgICAgICAgIG1vY2soYT0nYScpCiAgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoYT0nYScpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbW9jaykKQEAgLTc3OSw3ICs3OTQsMTEgQEAKICAgICAgICAgICAgICAgICBwYXNzCiAKICAgICAgICAgYSA9IGNyZWF0ZV9hdXRvc3BlYyhGb28pCisgICAgICAgIGEuZigxMCkKKyAgICAgICAgYS5mLmFzc2VydF9jYWxsZWRfd2l0aCgxMCkKKyAgICAgICAgYS5mLmFzc2VydF9jYWxsZWRfd2l0aChzZWxmPTEwKQogICAgICAgICBhLmYoc2VsZj0xMCkKKyAgICAgICAgYS5mLmFzc2VydF9jYWxsZWRfd2l0aCgxMCkKICAgICAgICAgYS5mLmFzc2VydF9jYWxsZWRfd2l0aChzZWxmPTEwKQogCiAKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL3Rlc3Rtb2NrLnB5IGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdG1vY2sucHkKaW5kZXggM2QwNzc2Yy4uMTI3Nzg2YyAxMDA2NDQKLS0tIGEvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdG1vY2sucHkKKysrIGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdG1vY2sucHkKQEAgLTI1LDYgKzI1LDE4IEBACiAgICAgX19uZXh0X18gPSBuZXh0CiAKIAorY2xhc3MgU29tZXRoaW5nKG9iamVjdCk6CisgICAgZGVmIG1ldGgoc2VsZiwgYSwgYiwgYywgZD1Ob25lKToKKyAgICAgICAgcGFzcworCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGNtZXRoKGNscywgYSwgYiwgYywgZD1Ob25lKToKKyAgICAgICAgcGFzcworCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBzbWV0aChhLCBiLCBjLCBkPU5vbmUpOgorICAgICAgICBwYXNzCisKIAogY2xhc3MgTW9ja1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCkBAIC0yNzMsNiArMjg1LDQzIEBACiAgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKDEsIDIsIDMsIGE9J2Zpc2gnLCBiPSdub3RoaW5nJykKIAogCisgICAgZGVmIHRlc3RfYXNzZXJ0X2NhbGxlZF93aXRoX2Z1bmN0aW9uX3NwZWMoc2VsZik6CisgICAgICAgIGRlZiBmKGEsIGIsIGMsIGQ9Tm9uZSk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgbW9jayA9IE1vY2soc3BlYz1mKQorCisgICAgICAgIG1vY2soMSwgYj0yLCBjPTMpCisgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKDEsIDIsIDMpCisgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKGE9MSwgYj0yLCBjPTMpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBtb2NrLmFzc2VydF9jYWxsZWRfd2l0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgYj0zLCBjPTIpCisgICAgICAgICMgRXhwZWN0ZWQgY2FsbCBkb2Vzbid0IG1hdGNoIHRoZSBzcGVjJ3Mgc2lnbmF0dXJlCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoZT04KQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoY20uZXhjZXB0aW9uLl9fY2F1c2VfXywgVHlwZUVycm9yKQorCisKKyAgICBkZWYgdGVzdF9hc3NlcnRfY2FsbGVkX3dpdGhfbWV0aG9kX3NwZWMoc2VsZik6CisgICAgICAgIGRlZiBfY2hlY2sobW9jayk6CisgICAgICAgICAgICBtb2NrKDEsIGI9MiwgYz0zKQorICAgICAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoMSwgMiwgMykKKyAgICAgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKGE9MSwgYj0yLCBjPTMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCBiPTMsIGM9MikKKworICAgICAgICBtb2NrID0gTW9jayhzcGVjPVNvbWV0aGluZygpLm1ldGgpCisgICAgICAgIF9jaGVjayhtb2NrKQorICAgICAgICBtb2NrID0gTW9jayhzcGVjPVNvbWV0aGluZy5jbWV0aCkKKyAgICAgICAgX2NoZWNrKG1vY2spCisgICAgICAgIG1vY2sgPSBNb2NrKHNwZWM9U29tZXRoaW5nKCkuY21ldGgpCisgICAgICAgIF9jaGVjayhtb2NrKQorICAgICAgICBtb2NrID0gTW9jayhzcGVjPVNvbWV0aGluZy5zbWV0aCkKKyAgICAgICAgX2NoZWNrKG1vY2spCisgICAgICAgIG1vY2sgPSBNb2NrKHNwZWM9U29tZXRoaW5nKCkuc21ldGgpCisgICAgICAgIF9jaGVjayhtb2NrKQorCisKICAgICBkZWYgdGVzdF9hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aChzZWxmKToKICAgICAgICAgbW9jayA9IE1vY2soKQogICAgICAgICBtb2NrKCkKQEAgLTI5Nyw2ICszNDYsMjkgQEAKICAgICAgICAgKQogCiAKKyAgICBkZWYgdGVzdF9hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aF9mdW5jdGlvbl9zcGVjKHNlbGYpOgorICAgICAgICBkZWYgZihhLCBiLCBjLCBkPU5vbmUpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIG1vY2sgPSBNb2NrKHNwZWM9ZikKKworICAgICAgICBtb2NrKDEsIGI9MiwgYz0zKQorICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKDEsIDIsIDMpCisgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoYT0xLCBiPTIsIGM9MykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIG1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIGI9MywgYz0yKQorICAgICAgICAjIEV4cGVjdGVkIGNhbGwgZG9lc24ndCBtYXRjaCB0aGUgc3BlYydzIHNpZ25hdHVyZQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yKSBhcyBjbToKKyAgICAgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoZT04KQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoY20uZXhjZXB0aW9uLl9fY2F1c2VfXywgVHlwZUVycm9yKQorICAgICAgICAjIE1vY2sgY2FsbGVkIG1vcmUgdGhhbiBvbmNlID0+IGFsd2F5cyBmYWlscworICAgICAgICBtb2NrKDQsIDUsIDYpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBtb2NrLmFzc2VydF9jYWxsZWRfb25jZV93aXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAyLCAzKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgbW9jay5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgNCwgNSwgNikKKworCiAgICAgZGVmIHRlc3RfYXR0cmlidXRlX2FjY2Vzc19yZXR1cm5zX21vY2tzKHNlbGYpOgogICAgICAgICBtb2NrID0gTW9jaygpCiAgICAgICAgIHNvbWV0aGluZyA9IG1vY2suc29tZXRoaW5nCkBAIC05OTUsNiArMTA2NywzOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgKQogCiAKKyAgICBkZWYgdGVzdF9hc3NlcnRfaGFzX2NhbGxzX3dpdGhfZnVuY3Rpb25fc3BlYyhzZWxmKToKKyAgICAgICAgZGVmIGYoYSwgYiwgYywgZD1Ob25lKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBtb2NrID0gTW9jayhzcGVjPWYpCisKKyAgICAgICAgbW9jaygxLCBiPTIsIGM9MykKKyAgICAgICAgbW9jayg0LCA1LCBjPTYsIGQ9NykKKyAgICAgICAgbW9jaygxMCwgMTEsIGM9MTIpCisgICAgICAgIGNhbGxzID0gWworICAgICAgICAgICAgKCcnLCAoMSwgMiwgMyksIHt9KSwKKyAgICAgICAgICAgICgnJywgKDQsIDUsIDYpLCB7J2QnOiA3fSksCisgICAgICAgICAgICAoKDEwLCAxMSwgMTIpLCB7fSksCisgICAgICAgICAgICBdCisgICAgICAgIG1vY2suYXNzZXJ0X2hhc19jYWxscyhjYWxscykKKyAgICAgICAgbW9jay5hc3NlcnRfaGFzX2NhbGxzKGNhbGxzLCBhbnlfb3JkZXI9VHJ1ZSkKKyAgICAgICAgbW9jay5hc3NlcnRfaGFzX2NhbGxzKGNhbGxzWzE6XSkKKyAgICAgICAgbW9jay5hc3NlcnRfaGFzX2NhbGxzKGNhbGxzWzE6XSwgYW55X29yZGVyPVRydWUpCisgICAgICAgIG1vY2suYXNzZXJ0X2hhc19jYWxscyhjYWxsc1s6LTFdKQorICAgICAgICBtb2NrLmFzc2VydF9oYXNfY2FsbHMoY2FsbHNbOi0xXSwgYW55X29yZGVyPVRydWUpCisgICAgICAgICMgUmV2ZXJzZWQgb3JkZXIKKyAgICAgICAgY2FsbHMgPSBsaXN0KHJldmVyc2VkKGNhbGxzKSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvcik6CisgICAgICAgICAgICBtb2NrLmFzc2VydF9oYXNfY2FsbHMoY2FsbHMpCisgICAgICAgIG1vY2suYXNzZXJ0X2hhc19jYWxscyhjYWxscywgYW55X29yZGVyPVRydWUpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IpOgorICAgICAgICAgICAgbW9jay5hc3NlcnRfaGFzX2NhbGxzKGNhbGxzWzE6XSkKKyAgICAgICAgbW9jay5hc3NlcnRfaGFzX2NhbGxzKGNhbGxzWzE6XSwgYW55X29yZGVyPVRydWUpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IpOgorICAgICAgICAgICAgbW9jay5hc3NlcnRfaGFzX2NhbGxzKGNhbGxzWzotMV0pCisgICAgICAgIG1vY2suYXNzZXJ0X2hhc19jYWxscyhjYWxsc1s6LTFdLCBhbnlfb3JkZXI9VHJ1ZSkKKworCiAgICAgZGVmIHRlc3RfYXNzZXJ0X2FueV9jYWxsKHNlbGYpOgogICAgICAgICBtb2NrID0gTW9jaygpCiAgICAgICAgIG1vY2soMSwgMikKQEAgLTEwMjEsNiArMTEyNiwyNiBAQAogICAgICAgICApCiAKIAorICAgIGRlZiB0ZXN0X2Fzc2VydF9hbnlfY2FsbF93aXRoX2Z1bmN0aW9uX3NwZWMoc2VsZik6CisgICAgICAgIGRlZiBmKGEsIGIsIGMsIGQ9Tm9uZSk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgbW9jayA9IE1vY2soc3BlYz1mKQorCisgICAgICAgIG1vY2soMSwgYj0yLCBjPTMpCisgICAgICAgIG1vY2soNCwgNSwgYz02LCBkPTcpCisgICAgICAgIG1vY2suYXNzZXJ0X2FueV9jYWxsKDEsIDIsIDMpCisgICAgICAgIG1vY2suYXNzZXJ0X2FueV9jYWxsKGE9MSwgYj0yLCBjPTMpCisgICAgICAgIG1vY2suYXNzZXJ0X2FueV9jYWxsKDQsIDUsIDYsIDcpCisgICAgICAgIG1vY2suYXNzZXJ0X2FueV9jYWxsKGE9NCwgYj01LCBjPTYsIGQ9NykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIG1vY2suYXNzZXJ0X2FueV9jYWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAxLCBiPTMsIGM9MikKKyAgICAgICAgIyBFeHBlY3RlZCBjYWxsIGRvZXNuJ3QgbWF0Y2ggdGhlIHNwZWMncyBzaWduYXR1cmUKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvcikgYXMgY206CisgICAgICAgICAgICBtb2NrLmFzc2VydF9hbnlfY2FsbChlPTgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShjbS5leGNlcHRpb24uX19jYXVzZV9fLCBUeXBlRXJyb3IpCisKKwogICAgIGRlZiB0ZXN0X21vY2tfY2FsbHNfY3JlYXRlX2F1dG9zcGVjKHNlbGYpOgogICAgICAgICBkZWYgZihhLCBiKToKICAgICAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL3Rlc3R3aXRoLnB5IGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdHdpdGgucHkKaW5kZXggMGEwY2ZhZC4uZjU0ZTA1MSAxMDA2NDQKLS0tIGEvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdHdpdGgucHkKKysrIGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdHdpdGgucHkKQEAgLTE3Miw1ICsxNzIsODggQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQsICdmb28nKQogCiAKKyAgICBkZWYgdGVzdF9yZWFkbGluZV9kYXRhKHNlbGYpOgorICAgICAgICAjIENoZWNrIHRoYXQgcmVhZGxpbmUgd2lsbCByZXR1cm4gYWxsIHRoZSBsaW5lcyBmcm9tIHRoZSBmYWtlIGZpbGUKKyAgICAgICAgbW9jayA9IG1vY2tfb3BlbihyZWFkX2RhdGE9J2Zvb1xuYmFyXG5iYXpcbicpCisgICAgICAgIHdpdGggcGF0Y2goJyVzLm9wZW4nICUgX19uYW1lX18sIG1vY2ssIGNyZWF0ZT1UcnVlKToKKyAgICAgICAgICAgIGggPSBvcGVuKCdiYXInKQorICAgICAgICAgICAgbGluZTEgPSBoLnJlYWRsaW5lKCkKKyAgICAgICAgICAgIGxpbmUyID0gaC5yZWFkbGluZSgpCisgICAgICAgICAgICBsaW5lMyA9IGgucmVhZGxpbmUoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmUxLCAnZm9vXG4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmUyLCAnYmFyXG4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmUzLCAnYmF6XG4nKQorCisgICAgICAgICMgQ2hlY2sgdGhhdCB3ZSBwcm9wZXJseSBlbXVsYXRlIGEgZmlsZSB0aGF0IGRvZXNuJ3QgZW5kIGluIGEgbmV3bGluZQorICAgICAgICBtb2NrID0gbW9ja19vcGVuKHJlYWRfZGF0YT0nZm9vJykKKyAgICAgICAgd2l0aCBwYXRjaCgnJXMub3BlbicgJSBfX25hbWVfXywgbW9jaywgY3JlYXRlPVRydWUpOgorICAgICAgICAgICAgaCA9IG9wZW4oJ2JhcicpCisgICAgICAgICAgICByZXN1bHQgPSBoLnJlYWRsaW5lKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQsICdmb28nKQorCisKKyAgICBkZWYgdGVzdF9yZWFkbGluZXNfZGF0YShzZWxmKToKKyAgICAgICAgIyBUZXN0IHRoYXQgZW11bGF0aW5nIGEgZmlsZSB0aGF0IGVuZHMgaW4gYSBuZXdsaW5lIGNoYXJhY3RlciB3b3JrcworICAgICAgICBtb2NrID0gbW9ja19vcGVuKHJlYWRfZGF0YT0nZm9vXG5iYXJcbmJhelxuJykKKyAgICAgICAgd2l0aCBwYXRjaCgnJXMub3BlbicgJSBfX25hbWVfXywgbW9jaywgY3JlYXRlPVRydWUpOgorICAgICAgICAgICAgaCA9IG9wZW4oJ2JhcicpCisgICAgICAgICAgICByZXN1bHQgPSBoLnJlYWRsaW5lcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LCBbJ2Zvb1xuJywgJ2JhclxuJywgJ2JhelxuJ10pCisKKyAgICAgICAgIyBUZXN0IHRoYXQgZmlsZXMgd2l0aG91dCBhIGZpbmFsIG5ld2xpbmUgd2lsbCBhbHNvIGJlIGNvcnJlY3RseQorICAgICAgICAjIGVtdWxhdGVkCisgICAgICAgIG1vY2sgPSBtb2NrX29wZW4ocmVhZF9kYXRhPSdmb29cbmJhclxuYmF6JykKKyAgICAgICAgd2l0aCBwYXRjaCgnJXMub3BlbicgJSBfX25hbWVfXywgbW9jaywgY3JlYXRlPVRydWUpOgorICAgICAgICAgICAgaCA9IG9wZW4oJ2JhcicpCisgICAgICAgICAgICByZXN1bHQgPSBoLnJlYWRsaW5lcygpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQsIFsnZm9vXG4nLCAnYmFyXG4nLCAnYmF6J10pCisKKworICAgIGRlZiB0ZXN0X21vY2tfb3Blbl9yZWFkX3dpdGhfYXJndW1lbnQoc2VsZik6CisgICAgICAgICMgQXQgb25lIHBvaW50IGNhbGxpbmcgcmVhZCB3aXRoIGFuIGFyZ3VtZW50IHdhcyBicm9rZW4KKyAgICAgICAgIyBmb3IgbW9ja3MgcmV0dXJuZWQgYnkgbW9ja19vcGVuCisgICAgICAgIHNvbWVfZGF0YSA9ICdmb29cbmJhclxuYmF6JworICAgICAgICBtb2NrID0gbW9ja19vcGVuKHJlYWRfZGF0YT1zb21lX2RhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jaygpLnJlYWQoMTApLCBzb21lX2RhdGEpCisKKworICAgIGRlZiB0ZXN0X2ludGVybGVhdmVkX3JlYWRzKHNlbGYpOgorICAgICAgICAjIFRlc3QgdGhhdCBjYWxsaW5nIHJlYWQsIHJlYWRsaW5lLCBhbmQgcmVhZGxpbmVzIHB1bGxzIGRhdGEKKyAgICAgICAgIyBzZXF1ZW50aWFsbHkgZnJvbSB0aGUgZGF0YSB3ZSBwcmVsb2FkIHdpdGgKKyAgICAgICAgbW9jayA9IG1vY2tfb3BlbihyZWFkX2RhdGE9J2Zvb1xuYmFyXG5iYXpcbicpCisgICAgICAgIHdpdGggcGF0Y2goJyVzLm9wZW4nICUgX19uYW1lX18sIG1vY2ssIGNyZWF0ZT1UcnVlKToKKyAgICAgICAgICAgIGggPSBvcGVuKCdiYXInKQorICAgICAgICAgICAgbGluZTEgPSBoLnJlYWRsaW5lKCkKKyAgICAgICAgICAgIHJlc3QgPSBoLnJlYWRsaW5lcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGluZTEsICdmb29cbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdCwgWydiYXJcbicsICdiYXpcbiddKQorCisgICAgICAgIG1vY2sgPSBtb2NrX29wZW4ocmVhZF9kYXRhPSdmb29cbmJhclxuYmF6XG4nKQorICAgICAgICB3aXRoIHBhdGNoKCclcy5vcGVuJyAlIF9fbmFtZV9fLCBtb2NrLCBjcmVhdGU9VHJ1ZSk6CisgICAgICAgICAgICBoID0gb3BlbignYmFyJykKKyAgICAgICAgICAgIGxpbmUxID0gaC5yZWFkbGluZSgpCisgICAgICAgICAgICByZXN0ID0gaC5yZWFkKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaW5lMSwgJ2Zvb1xuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN0LCAnYmFyXG5iYXpcbicpCisKKworICAgIGRlZiB0ZXN0X292ZXJyaWRpbmdfcmV0dXJuX3ZhbHVlcyhzZWxmKToKKyAgICAgICAgbW9jayA9IG1vY2tfb3BlbihyZWFkX2RhdGE9J2ZvbycpCisgICAgICAgIGhhbmRsZSA9IG1vY2soKQorCisgICAgICAgIGhhbmRsZS5yZWFkLnJldHVybl92YWx1ZSA9ICdiYXInCisgICAgICAgIGhhbmRsZS5yZWFkbGluZS5yZXR1cm5fdmFsdWUgPSAnYmFyJworICAgICAgICBoYW5kbGUucmVhZGxpbmVzLnJldHVybl92YWx1ZSA9IFsnYmFyJ10KKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhbmRsZS5yZWFkKCksICdiYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhbmRsZS5yZWFkbGluZSgpLCAnYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYW5kbGUucmVhZGxpbmVzKCksIFsnYmFyJ10pCisKKyAgICAgICAgIyBjYWxsIHJlcGVhdGVkbHkgdG8gY2hlY2sgdGhhdCBhIFN0b3BJdGVyYXRpb24gaXMgbm90IHByb3BhZ2F0ZWQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYW5kbGUucmVhZGxpbmUoKSwgJ2JhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFuZGxlLnJlYWRsaW5lKCksICdiYXInKQorCisKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdXJsbGliL2Vycm9yLnB5IGIvTGliL3VybGxpYi9lcnJvci5weQppbmRleCBiNzEyZWJiLi40NWI3MTY5IDEwMDY0NAotLS0gYS9MaWIvdXJsbGliL2Vycm9yLnB5CisrKyBiL0xpYi91cmxsaWIvZXJyb3IucHkKQEAgLTEsNiArMSw2IEBACiAiIiJFeGNlcHRpb24gY2xhc3NlcyByYWlzZWQgYnkgdXJsbGliLgogCi1UaGUgYmFzZSBleGNlcHRpb24gY2xhc3MgaXMgVVJMRXJyb3IsIHdoaWNoIGluaGVyaXRzIGZyb20gSU9FcnJvci4gIEl0CitUaGUgYmFzZSBleGNlcHRpb24gY2xhc3MgaXMgVVJMRXJyb3IsIHdoaWNoIGluaGVyaXRzIGZyb20gT1NFcnJvci4gIEl0CiBkb2Vzbid0IGRlZmluZSBhbnkgYmVoYXZpb3Igb2YgaXRzIG93biwgYnV0IGlzIHRoZSBiYXNlIGNsYXNzIGZvciBhbGwKIGV4Y2VwdGlvbnMgZGVmaW5lZCBpbiB0aGlzIHBhY2thZ2UuCiAKQEAgLTE3LDExICsxNywxMSBAQAogCiAKICMgZG8gdGhlc2UgZXJyb3IgY2xhc3NlcyBtYWtlIHNlbnNlPwotIyBtYWtlIHN1cmUgYWxsIG9mIHRoZSBJT0Vycm9yIHN0dWZmIGlzIG92ZXJyaWRkZW4uICB3ZSBqdXN0IHdhbnQgdG8gYmUKKyMgbWFrZSBzdXJlIGFsbCBvZiB0aGUgT1NFcnJvciBzdHVmZiBpcyBvdmVycmlkZGVuLiAgd2UganVzdCB3YW50IHRvIGJlCiAjIHN1YnR5cGVzLgogCi1jbGFzcyBVUkxFcnJvcihJT0Vycm9yKToKLSAgICAjIFVSTEVycm9yIGlzIGEgc3ViLXR5cGUgb2YgSU9FcnJvciwgYnV0IGl0IGRvZXNuJ3Qgc2hhcmUgYW55IG9mCitjbGFzcyBVUkxFcnJvcihPU0Vycm9yKToKKyAgICAjIFVSTEVycm9yIGlzIGEgc3ViLXR5cGUgb2YgT1NFcnJvciwgYnV0IGl0IGRvZXNuJ3Qgc2hhcmUgYW55IG9mCiAgICAgIyB0aGUgaW1wbGVtZW50YXRpb24uICBuZWVkIHRvIG92ZXJyaWRlIF9faW5pdF9fIGFuZCBfX3N0cl9fLgogICAgICMgSXQgc2V0cyBzZWxmLmFyZ3MgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvdGhlciBFbnZpcm9ubWVudEVycm9yCiAgICAgIyBzdWJjbGFzc2VzLCBidXQgYXJncyBkb2Vzbid0IGhhdmUgdGhlIHR5cGljYWwgZm9ybWF0IHdpdGggZXJybm8gaW4KQEAgLTYxLDkgKzYxLDEzIEBACiAgICAgZGVmIHJlYXNvbihzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYubXNnCiAKLSAgICBkZWYgaW5mbyhzZWxmKToKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaGVhZGVycyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuaGRycwogCisgICAgQGhlYWRlcnMuc2V0dGVyCisgICAgZGVmIGhlYWRlcnMoc2VsZiwgaGVhZGVycyk6CisgICAgICAgIHNlbGYuaGRycyA9IGhlYWRlcnMKIAogIyBleGNlcHRpb24gcmFpc2VkIHdoZW4gZG93bmxvYWRlZCBzaXplIGRvZXMgbm90IG1hdGNoIGNvbnRlbnQtbGVuZ3RoCiBjbGFzcyBDb250ZW50VG9vU2hvcnRFcnJvcihVUkxFcnJvcik6CmRpZmYgLS1naXQgYS9MaWIvdXJsbGliL3BhcnNlLnB5IGIvTGliL3VybGxpYi9wYXJzZS5weQppbmRleCBhYmU1ZDBkLi5iNDliN2ExIDEwMDY0NAotLS0gYS9MaWIvdXJsbGliL3BhcnNlLnB5CisrKyBiL0xpYi91cmxsaWIvcGFyc2UucHkKQEAgLTg0Niw3ICs4NDYsNiBAQAogICAgICIiInNwbGl0dHlwZSgndHlwZTpvcGFxdWVzdHJpbmcnKSAtLT4gJ3R5cGUnLCAnb3BhcXVlc3RyaW5nJy4iIiIKICAgICBnbG9iYWwgX3R5cGVwcm9nCiAgICAgaWYgX3R5cGVwcm9nIGlzIE5vbmU6Ci0gICAgICAgIGltcG9ydCByZQogICAgICAgICBfdHlwZXByb2cgPSByZS5jb21waWxlKCdeKFteLzpdKyk6JykKIAogICAgIG1hdGNoID0gX3R5cGVwcm9nLm1hdGNoKHVybCkKQEAgLTg2MCw3ICs4NTksNiBAQAogICAgICIiInNwbGl0aG9zdCgnLy9ob3N0Wzpwb3J0XS9wYXRoJykgLS0+ICdob3N0Wzpwb3J0XScsICcvcGF0aCcuIiIiCiAgICAgZ2xvYmFsIF9ob3N0cHJvZwogICAgIGlmIF9ob3N0cHJvZyBpcyBOb25lOgotICAgICAgICBpbXBvcnQgcmUKICAgICAgICAgX2hvc3Rwcm9nID0gcmUuY29tcGlsZSgnXi8vKFteLz9dKikoLiopJCcpCiAKICAgICBtYXRjaCA9IF9ob3N0cHJvZy5tYXRjaCh1cmwpCkBAIC04NzcsNyArODc1LDYgQEAKICAgICAiIiJzcGxpdHVzZXIoJ3VzZXJbOnBhc3N3ZF1AaG9zdFs6cG9ydF0nKSAtLT4gJ3VzZXJbOnBhc3N3ZF0nLCAnaG9zdFs6cG9ydF0nLiIiIgogICAgIGdsb2JhbCBfdXNlcnByb2cKICAgICBpZiBfdXNlcnByb2cgaXMgTm9uZToKLSAgICAgICAgaW1wb3J0IHJlCiAgICAgICAgIF91c2VycHJvZyA9IHJlLmNvbXBpbGUoJ14oLiopQCguKikkJykKIAogICAgIG1hdGNoID0gX3VzZXJwcm9nLm1hdGNoKGhvc3QpCkBAIC04ODksNyArODg2LDYgQEAKICAgICAiIiJzcGxpdHBhc3N3ZCgndXNlcjpwYXNzd2QnKSAtPiAndXNlcicsICdwYXNzd2QnLiIiIgogICAgIGdsb2JhbCBfcGFzc3dkcHJvZwogICAgIGlmIF9wYXNzd2Rwcm9nIGlzIE5vbmU6Ci0gICAgICAgIGltcG9ydCByZQogICAgICAgICBfcGFzc3dkcHJvZyA9IHJlLmNvbXBpbGUoJ14oW146XSopOiguKikkJyxyZS5TKQogCiAgICAgbWF0Y2ggPSBfcGFzc3dkcHJvZy5tYXRjaCh1c2VyKQpAQCAtOTAyLDcgKzg5OCw2IEBACiAgICAgIiIic3BsaXRwb3J0KCdob3N0OnBvcnQnKSAtLT4gJ2hvc3QnLCAncG9ydCcuIiIiCiAgICAgZ2xvYmFsIF9wb3J0cHJvZwogICAgIGlmIF9wb3J0cHJvZyBpcyBOb25lOgotICAgICAgICBpbXBvcnQgcmUKICAgICAgICAgX3BvcnRwcm9nID0gcmUuY29tcGlsZSgnXiguKik6KFswLTldKykkJykKIAogICAgIG1hdGNoID0gX3BvcnRwcm9nLm1hdGNoKGhvc3QpCkBAIC05MTcsNyArOTEyLDYgQEAKICAgICBSZXR1cm4gTm9uZSBpZiAnOicgYnV0IG5vdCBhIHZhbGlkIG51bWJlci4iIiIKICAgICBnbG9iYWwgX25wb3J0cHJvZwogICAgIGlmIF9ucG9ydHByb2cgaXMgTm9uZToKLSAgICAgICAgaW1wb3J0IHJlCiAgICAgICAgIF9ucG9ydHByb2cgPSByZS5jb21waWxlKCdeKC4qKTooLiopJCcpCiAKICAgICBtYXRjaCA9IF9ucG9ydHByb2cubWF0Y2goaG9zdCkKQEAgLTkzNiw3ICs5MzAsNiBAQAogICAgICIiInNwbGl0cXVlcnkoJy9wYXRoP3F1ZXJ5JykgLS0+ICcvcGF0aCcsICdxdWVyeScuIiIiCiAgICAgZ2xvYmFsIF9xdWVyeXByb2cKICAgICBpZiBfcXVlcnlwcm9nIGlzIE5vbmU6Ci0gICAgICAgIGltcG9ydCByZQogICAgICAgICBfcXVlcnlwcm9nID0gcmUuY29tcGlsZSgnXiguKilcPyhbXj9dKikkJykKIAogICAgIG1hdGNoID0gX3F1ZXJ5cHJvZy5tYXRjaCh1cmwpCkBAIC05NDgsNyArOTQxLDYgQEAKICAgICAiIiJzcGxpdHRhZygnL3BhdGgjdGFnJykgLS0+ICcvcGF0aCcsICd0YWcnLiIiIgogICAgIGdsb2JhbCBfdGFncHJvZwogICAgIGlmIF90YWdwcm9nIGlzIE5vbmU6Ci0gICAgICAgIGltcG9ydCByZQogICAgICAgICBfdGFncHJvZyA9IHJlLmNvbXBpbGUoJ14oLiopIyhbXiNdKikkJykKIAogICAgIG1hdGNoID0gX3RhZ3Byb2cubWF0Y2godXJsKQpAQCAtOTY2LDcgKzk1OCw2IEBACiAgICAgIiIic3BsaXR2YWx1ZSgnYXR0cj12YWx1ZScpIC0tPiAnYXR0cicsICd2YWx1ZScuIiIiCiAgICAgZ2xvYmFsIF92YWx1ZXByb2cKICAgICBpZiBfdmFsdWVwcm9nIGlzIE5vbmU6Ci0gICAgICAgIGltcG9ydCByZQogICAgICAgICBfdmFsdWVwcm9nID0gcmUuY29tcGlsZSgnXihbXj1dKik9KC4qKSQnKQogCiAgICAgbWF0Y2ggPSBfdmFsdWVwcm9nLm1hdGNoKGF0dHIpCmRpZmYgLS1naXQgYS9MaWIvdXJsbGliL3JlcXVlc3QucHkgYi9MaWIvdXJsbGliL3JlcXVlc3QucHkKaW5kZXggYTc0NDVkMS4uNDc2NWE5NCAxMDA2NDQKLS0tIGEvTGliL3VybGxpYi9yZXF1ZXN0LnB5CisrKyBiL0xpYi91cmxsaWIvcmVxdWVzdC5weQpAQCAtMTgsNyArMTgsNyBAQAogdXJsbGliLiAgcGFzcyB0aGUgdXJsIGFuZCBvcHRpb25hbGx5IGRhdGEgdG8gcG9zdCB0byBhbiBIVFRQIFVSTCwgYW5kCiBnZXQgYSBmaWxlLWxpa2Ugb2JqZWN0IGJhY2suICBPbmUgZGlmZmVyZW5jZSBpcyB0aGF0IHlvdSBjYW4gYWxzbyBwYXNzCiBhIFJlcXVlc3QgaW5zdGFuY2UgaW5zdGVhZCBvZiBVUkwuICBSYWlzZXMgYSBVUkxFcnJvciAoc3ViY2xhc3Mgb2YKLUlPRXJyb3IpOyBmb3IgSFRUUCBlcnJvcnMsIHJhaXNlcyBhbiBIVFRQRXJyb3IsIHdoaWNoIGNhbiBhbHNvIGJlCitPU0Vycm9yKTsgZm9yIEhUVFAgZXJyb3JzLCByYWlzZXMgYW4gSFRUUEVycm9yLCB3aGljaCBjYW4gYWxzbyBiZQogdHJlYXRlZCBhcyBhIHZhbGlkIHJlc3BvbnNlLgogCiBidWlsZF9vcGVuZXIgLS0gRnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgbmV3IE9wZW5lckRpcmVjdG9yIGluc3RhbmNlLgpAQCAtMTAzLDcgKzEwMyw4IEBACiBmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgKAogICAgIHVybHBhcnNlLCB1cmxzcGxpdCwgdXJsam9pbiwgdW53cmFwLCBxdW90ZSwgdW5xdW90ZSwKICAgICBzcGxpdHR5cGUsIHNwbGl0aG9zdCwgc3BsaXRwb3J0LCBzcGxpdHVzZXIsIHNwbGl0cGFzc3dkLAotICAgIHNwbGl0YXR0ciwgc3BsaXRxdWVyeSwgc3BsaXR2YWx1ZSwgc3BsaXR0YWcsIHRvX2J5dGVzLCB1cmx1bnBhcnNlKQorICAgIHNwbGl0YXR0ciwgc3BsaXRxdWVyeSwgc3BsaXR2YWx1ZSwgc3BsaXR0YWcsIHRvX2J5dGVzLAorICAgIHVucXVvdGVfdG9fYnl0ZXMsIHVybHVucGFyc2UpCiBmcm9tIHVybGxpYi5yZXNwb25zZSBpbXBvcnQgYWRkaW5mb3VybCwgYWRkY2xvc2Vob29rCiAKICMgY2hlY2sgZm9yIFNTTApAQCAtMTIxLDcgKzEyMiw3IEBACiAgICAgJ0hUVFBQYXNzd29yZE1ncicsICdIVFRQUGFzc3dvcmRNZ3JXaXRoRGVmYXVsdFJlYWxtJywKICAgICAnQWJzdHJhY3RCYXNpY0F1dGhIYW5kbGVyJywgJ0hUVFBCYXNpY0F1dGhIYW5kbGVyJywgJ1Byb3h5QmFzaWNBdXRoSGFuZGxlcicsCiAgICAgJ0Fic3RyYWN0RGlnZXN0QXV0aEhhbmRsZXInLCAnSFRUUERpZ2VzdEF1dGhIYW5kbGVyJywgJ1Byb3h5RGlnZXN0QXV0aEhhbmRsZXInLAotICAgICdIVFRQSGFuZGxlcicsICdGaWxlSGFuZGxlcicsICdGVFBIYW5kbGVyJywgJ0NhY2hlRlRQSGFuZGxlcicsCisgICAgJ0hUVFBIYW5kbGVyJywgJ0ZpbGVIYW5kbGVyJywgJ0ZUUEhhbmRsZXInLCAnQ2FjaGVGVFBIYW5kbGVyJywgJ0RhdGFIYW5kbGVyJywKICAgICAnVW5rbm93bkhhbmRsZXInLCAnSFRUUEVycm9yUHJvY2Vzc29yJywKICAgICAjIEZ1bmN0aW9ucwogICAgICd1cmxvcGVuJywgJ2luc3RhbGxfb3BlbmVyJywgJ2J1aWxkX29wZW5lcicsCkBAIC0yMjcsNyArMjI4LDcgQEAKICAgICBmb3IgdGVtcF9maWxlIGluIF91cmxfdGVtcGZpbGVzOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBvcy51bmxpbmsodGVtcF9maWxlKQotICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAKICAgICBkZWwgX3VybF90ZW1wZmlsZXNbOl0KQEAgLTI1OCwyNCArMjU5LDU5IEBACiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybCwgZGF0YT1Ob25lLCBoZWFkZXJzPXt9LAogICAgICAgICAgICAgICAgICBvcmlnaW5fcmVxX2hvc3Q9Tm9uZSwgdW52ZXJpZmlhYmxlPUZhbHNlLAogICAgICAgICAgICAgICAgICBtZXRob2Q9Tm9uZSk6Ci0gICAgICAgICMgdW53cmFwKCc8VVJMOnR5cGU6Ly9ob3N0L3BhdGg+JykgLS0+ICd0eXBlOi8vaG9zdC9wYXRoJwotICAgICAgICBzZWxmLmZ1bGxfdXJsID0gdW53cmFwKHVybCkKLSAgICAgICAgc2VsZi5mdWxsX3VybCwgc2VsZi5mcmFnbWVudCA9IHNwbGl0dGFnKHNlbGYuZnVsbF91cmwpCi0gICAgICAgIHNlbGYuZGF0YSA9IGRhdGEKKyAgICAgICAgc2VsZi5mdWxsX3VybCA9IHVybAogICAgICAgICBzZWxmLmhlYWRlcnMgPSB7fQorICAgICAgICBzZWxmLnVucmVkaXJlY3RlZF9oZHJzID0ge30KKyAgICAgICAgc2VsZi5fZGF0YSA9IE5vbmUKKyAgICAgICAgc2VsZi5kYXRhID0gZGF0YQogICAgICAgICBzZWxmLl90dW5uZWxfaG9zdCA9IE5vbmUKICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gaGVhZGVycy5pdGVtcygpOgogICAgICAgICAgICAgc2VsZi5hZGRfaGVhZGVyKGtleSwgdmFsdWUpCi0gICAgICAgIHNlbGYudW5yZWRpcmVjdGVkX2hkcnMgPSB7fQogICAgICAgICBpZiBvcmlnaW5fcmVxX2hvc3QgaXMgTm9uZToKICAgICAgICAgICAgIG9yaWdpbl9yZXFfaG9zdCA9IHJlcXVlc3RfaG9zdChzZWxmKQogICAgICAgICBzZWxmLm9yaWdpbl9yZXFfaG9zdCA9IG9yaWdpbl9yZXFfaG9zdAogICAgICAgICBzZWxmLnVudmVyaWZpYWJsZSA9IHVudmVyaWZpYWJsZQogICAgICAgICBzZWxmLm1ldGhvZCA9IG1ldGhvZAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGZ1bGxfdXJsKHNlbGYpOgorICAgICAgICBpZiBzZWxmLmZyYWdtZW50OgorICAgICAgICAgICAgcmV0dXJuICd7fSN7fScuZm9ybWF0KHNlbGYuX2Z1bGxfdXJsLCBzZWxmLmZyYWdtZW50KQorICAgICAgICByZXR1cm4gc2VsZi5fZnVsbF91cmwKKworICAgIEBmdWxsX3VybC5zZXR0ZXIKKyAgICBkZWYgZnVsbF91cmwoc2VsZiwgdXJsKToKKyAgICAgICAgIyB1bndyYXAoJzxVUkw6dHlwZTovL2hvc3QvcGF0aD4nKSAtLT4gJ3R5cGU6Ly9ob3N0L3BhdGgnCisgICAgICAgIHNlbGYuX2Z1bGxfdXJsID0gdW53cmFwKHVybCkKKyAgICAgICAgc2VsZi5fZnVsbF91cmwsIHNlbGYuZnJhZ21lbnQgPSBzcGxpdHRhZyhzZWxmLl9mdWxsX3VybCkKICAgICAgICAgc2VsZi5fcGFyc2UoKQogCisgICAgQGZ1bGxfdXJsLmRlbGV0ZXIKKyAgICBkZWYgZnVsbF91cmwoc2VsZik6CisgICAgICAgIHNlbGYuX2Z1bGxfdXJsID0gTm9uZQorICAgICAgICBzZWxmLmZyYWdtZW50ID0gTm9uZQorICAgICAgICBzZWxmLnNlbGVjdG9yID0gJycKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkYXRhKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fZGF0YQorCisgICAgQGRhdGEuc2V0dGVyCisgICAgZGVmIGRhdGEoc2VsZiwgZGF0YSk6CisgICAgICAgIGlmIGRhdGEgIT0gc2VsZi5fZGF0YToKKyAgICAgICAgICAgIHNlbGYuX2RhdGEgPSBkYXRhCisgICAgICAgICAgICAjIGlzc3VlIDE2NDY0CisgICAgICAgICAgICAjIGlmIHdlIGNoYW5nZSBkYXRhIHdlIG5lZWQgdG8gcmVtb3ZlIGNvbnRlbnQtbGVuZ3RoIGhlYWRlcgorICAgICAgICAgICAgIyAoY2F1c2UgaXQncyBtb3N0IHByb2JhYmx5IGNhbGN1bGF0ZWQgZm9yIHByZXZpb3VzIHZhbHVlKQorICAgICAgICAgICAgaWYgc2VsZi5oYXNfaGVhZGVyKCJDb250ZW50LWxlbmd0aCIpOgorICAgICAgICAgICAgICAgIHNlbGYucmVtb3ZlX2hlYWRlcigiQ29udGVudC1sZW5ndGgiKQorCisgICAgQGRhdGEuZGVsZXRlcgorICAgIGRlZiBkYXRhKHNlbGYpOgorICAgICAgICBzZWxmLmRhdGEgPSBOb25lCisKICAgICBkZWYgX3BhcnNlKHNlbGYpOgotICAgICAgICBzZWxmLnR5cGUsIHJlc3QgPSBzcGxpdHR5cGUoc2VsZi5mdWxsX3VybCkKKyAgICAgICAgc2VsZi50eXBlLCByZXN0ID0gc3BsaXR0eXBlKHNlbGYuX2Z1bGxfdXJsKQogICAgICAgICBpZiBzZWxmLnR5cGUgaXMgTm9uZToKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInVua25vd24gdXJsIHR5cGU6ICVyIiAlIHNlbGYuZnVsbF91cmwpCiAgICAgICAgIHNlbGYuaG9zdCwgc2VsZi5zZWxlY3RvciA9IHNwbGl0aG9zdChyZXN0KQpAQCAtMjkyLDU0ICszMjgsNyBAQAogICAgICAgICAgICAgcmV0dXJuICJHRVQiCiAKICAgICBkZWYgZ2V0X2Z1bGxfdXJsKHNlbGYpOgotICAgICAgICBpZiBzZWxmLmZyYWdtZW50OgotICAgICAgICAgICAgcmV0dXJuICclcyMlcycgJSAoc2VsZi5mdWxsX3VybCwgc2VsZi5mcmFnbWVudCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLmZ1bGxfdXJsCi0KLSAgICAjIEJlZ2luIGRlcHJlY2F0ZWQgbWV0aG9kcwotCi0gICAgZGVmIGFkZF9kYXRhKHNlbGYsIGRhdGEpOgotICAgICAgICBtc2cgPSAiUmVxdWVzdC5hZGRfZGF0YSBtZXRob2QgaXMgZGVwcmVjYXRlZC4iCi0gICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MSkKLSAgICAgICAgc2VsZi5kYXRhID0gZGF0YQotCi0gICAgZGVmIGhhc19kYXRhKHNlbGYpOgotICAgICAgICBtc2cgPSAiUmVxdWVzdC5oYXNfZGF0YSBtZXRob2QgaXMgZGVwcmVjYXRlZC4iCi0gICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MSkKLSAgICAgICAgcmV0dXJuIHNlbGYuZGF0YSBpcyBub3QgTm9uZQotCi0gICAgZGVmIGdldF9kYXRhKHNlbGYpOgotICAgICAgICBtc2cgPSAiUmVxdWVzdC5nZXRfZGF0YSBtZXRob2QgaXMgZGVwcmVjYXRlZC4iCi0gICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MSkKLSAgICAgICAgcmV0dXJuIHNlbGYuZGF0YQotCi0gICAgZGVmIGdldF90eXBlKHNlbGYpOgotICAgICAgICBtc2cgPSAiUmVxdWVzdC5nZXRfdHlwZSBtZXRob2QgaXMgZGVwcmVjYXRlZC4iCi0gICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MSkKLSAgICAgICAgcmV0dXJuIHNlbGYudHlwZQotCi0gICAgZGVmIGdldF9ob3N0KHNlbGYpOgotICAgICAgICBtc2cgPSAiUmVxdWVzdC5nZXRfaG9zdCBtZXRob2QgaXMgZGVwcmVjYXRlZC4iCi0gICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MSkKLSAgICAgICAgcmV0dXJuIHNlbGYuaG9zdAotCi0gICAgZGVmIGdldF9zZWxlY3RvcihzZWxmKToKLSAgICAgICAgbXNnID0gIlJlcXVlc3QuZ2V0X3NlbGVjdG9yIG1ldGhvZCBpcyBkZXByZWNhdGVkLiIKLSAgICAgICAgd2FybmluZ3Mud2Fybihtc2csIERlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0xKQotICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RvcgotCi0gICAgZGVmIGlzX3VudmVyaWZpYWJsZShzZWxmKToKLSAgICAgICAgbXNnID0gIlJlcXVlc3QuaXNfdW52ZXJpZmlhYmxlIG1ldGhvZCBpcyBkZXByZWNhdGVkLiIKLSAgICAgICAgd2FybmluZ3Mud2Fybihtc2csIERlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0xKQotICAgICAgICByZXR1cm4gc2VsZi51bnZlcmlmaWFibGUKLQotICAgIGRlZiBnZXRfb3JpZ2luX3JlcV9ob3N0KHNlbGYpOgotICAgICAgICBtc2cgPSAiUmVxdWVzdC5nZXRfb3JpZ2luX3JlcV9ob3N0IG1ldGhvZCBpcyBkZXByZWNhdGVkLiIKLSAgICAgICAgd2FybmluZ3Mud2Fybihtc2csIERlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0xKQotICAgICAgICByZXR1cm4gc2VsZi5vcmlnaW5fcmVxX2hvc3QKLQotICAgICMgRW5kIGRlcHJlY2F0ZWQgbWV0aG9kcworICAgICAgICByZXR1cm4gc2VsZi5mdWxsX3VybAogCiAgICAgZGVmIHNldF9wcm94eShzZWxmLCBob3N0LCB0eXBlKToKICAgICAgICAgaWYgc2VsZi50eXBlID09ICdodHRwcycgYW5kIG5vdCBzZWxmLl90dW5uZWxfaG9zdDoKQEAgLTM2OSw2ICszNTgsMTAgQEAKICAgICAgICAgICAgIGhlYWRlcl9uYW1lLAogICAgICAgICAgICAgc2VsZi51bnJlZGlyZWN0ZWRfaGRycy5nZXQoaGVhZGVyX25hbWUsIGRlZmF1bHQpKQogCisgICAgZGVmIHJlbW92ZV9oZWFkZXIoc2VsZiwgaGVhZGVyX25hbWUpOgorICAgICAgICBzZWxmLmhlYWRlcnMucG9wKGhlYWRlcl9uYW1lLCBOb25lKQorICAgICAgICBzZWxmLnVucmVkaXJlY3RlZF9oZHJzLnBvcChoZWFkZXJfbmFtZSwgTm9uZSkKKwogICAgIGRlZiBoZWFkZXJfaXRlbXMoc2VsZik6CiAgICAgICAgIGhkcnMgPSBzZWxmLnVucmVkaXJlY3RlZF9oZHJzLmNvcHkoKQogICAgICAgICBoZHJzLnVwZGF0ZShzZWxmLmhlYWRlcnMpCkBAIC01MzEsNyArNTI0LDggQEAKICAgICBvcGVuZXIgPSBPcGVuZXJEaXJlY3RvcigpCiAgICAgZGVmYXVsdF9jbGFzc2VzID0gW1Byb3h5SGFuZGxlciwgVW5rbm93bkhhbmRsZXIsIEhUVFBIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICBIVFRQRGVmYXVsdEVycm9ySGFuZGxlciwgSFRUUFJlZGlyZWN0SGFuZGxlciwKLSAgICAgICAgICAgICAgICAgICAgICAgRlRQSGFuZGxlciwgRmlsZUhhbmRsZXIsIEhUVFBFcnJvclByb2Nlc3Nvcl0KKyAgICAgICAgICAgICAgICAgICAgICAgRlRQSGFuZGxlciwgRmlsZUhhbmRsZXIsIEhUVFBFcnJvclByb2Nlc3NvciwKKyAgICAgICAgICAgICAgICAgICAgICAgRGF0YUhhbmRsZXJdCiAgICAgaWYgaGFzYXR0cihodHRwLmNsaWVudCwgIkhUVFBTQ29ubmVjdGlvbiIpOgogICAgICAgICBkZWZhdWx0X2NsYXNzZXMuYXBwZW5kKEhUVFBTSGFuZGxlcikKICAgICBza2lwID0gc2V0KCkKQEAgLTEyNDYsMTEgKzEyNDAsMTcgQEAKIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBoLnJlcXVlc3QocmVxLmdldF9tZXRob2QoKSwgcmVxLnNlbGVjdG9yLCByZXEuZGF0YSwgaGVhZGVycykKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlcnI6ICMgdGltZW91dCBlcnJvcgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlcnI6ICMgdGltZW91dCBlcnJvcgogICAgICAgICAgICAgaC5jbG9zZSgpCiAgICAgICAgICAgICByYWlzZSBVUkxFcnJvcihlcnIpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByID0gaC5nZXRyZXNwb25zZSgpCisgICAgICAgICAgICAjIElmIHRoZSBzZXJ2ZXIgZG9lcyBub3Qgc2VuZCB1cyBhICdDb25uZWN0aW9uOiBjbG9zZScgaGVhZGVyLAorICAgICAgICAgICAgIyBIVFRQQ29ubmVjdGlvbiBhc3N1bWVzIHRoZSBzb2NrZXQgc2hvdWxkIGJlIGxlZnQgb3Blbi4gTWFudWFsbHkKKyAgICAgICAgICAgICMgbWFyayB0aGUgc29ja2V0IHRvIGJlIGNsb3NlZCB3aGVuIHRoaXMgcmVzcG9uc2Ugb2JqZWN0IGdvZXMgYXdheS4KKyAgICAgICAgICAgIGlmIGguc29jazoKKyAgICAgICAgICAgICAgICBoLnNvY2suY2xvc2UoKQorICAgICAgICAgICAgICAgIGguc29jayA9IE5vbmUKIAogICAgICAgICByLnVybCA9IHJlcS5nZXRfZnVsbF91cmwoKQogICAgICAgICAjIFRoaXMgbGluZSByZXBsYWNlcyB0aGUgLm1zZyBhdHRyaWJ1dGUgb2YgdGhlIEhUVFBSZXNwb25zZQpAQCAtMTQ0NSw3ICsxNDQ1LDcgQEAKIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBob3N0ID0gc29ja2V0LmdldGhvc3RieW5hbWUoaG9zdCkKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBtc2c6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIG1zZzoKICAgICAgICAgICAgIHJhaXNlIFVSTEVycm9yKG1zZykKICAgICAgICAgcGF0aCwgYXR0cnMgPSBzcGxpdGF0dHIocmVxLnNlbGVjdG9yKQogICAgICAgICBkaXJzID0gcGF0aC5zcGxpdCgnLycpCkBAIC0xNTMxLDYgKzE1MzEsMzYgQEAKICAgICAgICAgc2VsZi5jYWNoZS5jbGVhcigpCiAgICAgICAgIHNlbGYudGltZW91dC5jbGVhcigpCiAKK2NsYXNzIERhdGFIYW5kbGVyKEJhc2VIYW5kbGVyKToKKyAgICBkZWYgZGF0YV9vcGVuKHNlbGYsIHJlcSk6CisgICAgICAgICMgZGF0YSBVUkxzIGFzIHNwZWNpZmllZCBpbiBSRkMgMjM5Ny4KKyAgICAgICAgIworICAgICAgICAjIGlnbm9yZXMgUE9TVGVkIGRhdGEKKyAgICAgICAgIworICAgICAgICAjIHN5bnRheDoKKyAgICAgICAgIyBkYXRhdXJsICAgOj0gImRhdGE6IiBbIG1lZGlhdHlwZSBdIFsgIjtiYXNlNjQiIF0gIiwiIGRhdGEKKyAgICAgICAgIyBtZWRpYXR5cGUgOj0gWyB0eXBlICIvIiBzdWJ0eXBlIF0gKiggIjsiIHBhcmFtZXRlciApCisgICAgICAgICMgZGF0YSAgICAgIDo9ICp1cmxjaGFyCisgICAgICAgICMgcGFyYW1ldGVyIDo9IGF0dHJpYnV0ZSAiPSIgdmFsdWUKKyAgICAgICAgdXJsID0gcmVxLmZ1bGxfdXJsCisKKyAgICAgICAgc2NoZW1lLCBkYXRhID0gdXJsLnNwbGl0KCI6IiwxKQorICAgICAgICBtZWRpYXR5cGUsIGRhdGEgPSBkYXRhLnNwbGl0KCIsIiwxKQorCisgICAgICAgICMgZXZlbiBiYXNlNjQgZW5jb2RlZCBkYXRhIFVSTHMgbWlnaHQgYmUgcXVvdGVkIHNvIHVucXVvdGUgaW4gYW55IGNhc2U6CisgICAgICAgIGRhdGEgPSB1bnF1b3RlX3RvX2J5dGVzKGRhdGEpCisgICAgICAgIGlmIG1lZGlhdHlwZS5lbmRzd2l0aCgiO2Jhc2U2NCIpOgorICAgICAgICAgICAgZGF0YSA9IGJhc2U2NC5kZWNvZGVieXRlcyhkYXRhKQorICAgICAgICAgICAgbWVkaWF0eXBlID0gbWVkaWF0eXBlWzotN10KKworICAgICAgICBpZiBub3QgbWVkaWF0eXBlOgorICAgICAgICAgICAgbWVkaWF0eXBlID0gInRleHQvcGxhaW47Y2hhcnNldD1VUy1BU0NJSSIKKworICAgICAgICBoZWFkZXJzID0gZW1haWwubWVzc2FnZV9mcm9tX3N0cmluZygiQ29udGVudC10eXBlOiAlc1xuQ29udGVudC1sZW5ndGg6ICVkXG4iICUKKyAgICAgICAgICAgIChtZWRpYXR5cGUsIGxlbihkYXRhKSkpCisKKyAgICAgICAgcmV0dXJuIGFkZGluZm91cmwoaW8uQnl0ZXNJTyhkYXRhKSwgaGVhZGVycywgdXJsKQorCiAKICMgQ29kZSBtb3ZlIGZyb20gdGhlIG9sZCB1cmxsaWIgbW9kdWxlCiAKQEAgLTE2NTQsMjAgKzE2ODQsMjAgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLCBuYW1lKSh1cmwpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYsIG5hbWUpKHVybCwgZGF0YSkKLSAgICAgICAgZXhjZXB0IEhUVFBFcnJvcjoKKyAgICAgICAgZXhjZXB0IChIVFRQRXJyb3IsIFVSTEVycm9yKToKICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgbXNnOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcignc29ja2V0IGVycm9yJywgbXNnKS53aXRoX3RyYWNlYmFjayhzeXMuZXhjX2luZm8oKVsyXSkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcignc29ja2V0IGVycm9yJywgbXNnKS53aXRoX3RyYWNlYmFjayhzeXMuZXhjX2luZm8oKVsyXSkKIAogICAgIGRlZiBvcGVuX3Vua25vd24oc2VsZiwgZnVsbHVybCwgZGF0YT1Ob25lKToKICAgICAgICAgIiIiT3ZlcnJpZGFibGUgaW50ZXJmYWNlIHRvIG9wZW4gdW5rbm93biBVUkwgdHlwZS4iIiIKICAgICAgICAgdHlwZSwgdXJsID0gc3BsaXR0eXBlKGZ1bGx1cmwpCi0gICAgICAgIHJhaXNlIElPRXJyb3IoJ3VybCBlcnJvcicsICd1bmtub3duIHVybCB0eXBlJywgdHlwZSkKKyAgICAgICAgcmFpc2UgT1NFcnJvcigndXJsIGVycm9yJywgJ3Vua25vd24gdXJsIHR5cGUnLCB0eXBlKQogCiAgICAgZGVmIG9wZW5fdW5rbm93bl9wcm94eShzZWxmLCBwcm94eSwgZnVsbHVybCwgZGF0YT1Ob25lKToKICAgICAgICAgIiIiT3ZlcnJpZGFibGUgaW50ZXJmYWNlIHRvIG9wZW4gdW5rbm93biBVUkwgdHlwZS4iIiIKICAgICAgICAgdHlwZSwgdXJsID0gc3BsaXR0eXBlKGZ1bGx1cmwpCi0gICAgICAgIHJhaXNlIElPRXJyb3IoJ3VybCBlcnJvcicsICdpbnZhbGlkIHByb3h5IGZvciAlcycgJSB0eXBlLCBwcm94eSkKKyAgICAgICAgcmFpc2UgT1NFcnJvcigndXJsIGVycm9yJywgJ2ludmFsaWQgcHJveHkgZm9yICVzJyAlIHR5cGUsIHByb3h5KQogCiAgICAgIyBFeHRlcm5hbCBpbnRlcmZhY2UKICAgICBkZWYgcmV0cmlldmUoc2VsZiwgdXJsLCBmaWxlbmFtZT1Ob25lLCByZXBvcnRob29rPU5vbmUsIGRhdGE9Tm9uZSk6CkBAIC0xNjgzLDcgKzE3MTMsNyBAQAogICAgICAgICAgICAgICAgIGhkcnMgPSBmcC5pbmZvKCkKICAgICAgICAgICAgICAgICBmcC5jbG9zZSgpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHVybDJwYXRobmFtZShzcGxpdGhvc3QodXJsMSlbMV0pLCBoZHJzCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBtc2c6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBtc2c6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICBmcCA9IHNlbGYub3Blbih1cmwsIGRhdGEpCiAgICAgICAgIHRyeToKQEAgLTE3NzYsNyArMTgwNiw3IEBACiAgICAgICAgICAgICAgICAgaWYgcHJveHlfYnlwYXNzKHJlYWxob3N0KToKICAgICAgICAgICAgICAgICAgICAgaG9zdCA9IHJlYWxob3N0CiAKLSAgICAgICAgaWYgbm90IGhvc3Q6IHJhaXNlIElPRXJyb3IoJ2h0dHAgZXJyb3InLCAnbm8gaG9zdCBnaXZlbicpCisgICAgICAgIGlmIG5vdCBob3N0OiByYWlzZSBPU0Vycm9yKCdodHRwIGVycm9yJywgJ25vIGhvc3QgZ2l2ZW4nKQogCiAgICAgICAgIGlmIHByb3h5X3Bhc3N3ZDoKICAgICAgICAgICAgIHByb3h5X3Bhc3N3ZCA9IHVucXVvdGUocHJveHlfcGFzc3dkKQpAQCAtMTg0OSw3ICsxODc5LDcgQEAKICAgICAgICAgcmV0dXJuIHNlbGYuaHR0cF9lcnJvcl9kZWZhdWx0KHVybCwgZnAsIGVycmNvZGUsIGVycm1zZywgaGVhZGVycykKIAogICAgIGRlZiBodHRwX2Vycm9yX2RlZmF1bHQoc2VsZiwgdXJsLCBmcCwgZXJyY29kZSwgZXJybXNnLCBoZWFkZXJzKToKLSAgICAgICAgIiIiRGVmYXVsdCBlcnJvciBoYW5kbGVyOiBjbG9zZSB0aGUgY29ubmVjdGlvbiBhbmQgcmFpc2UgSU9FcnJvci4iIiIKKyAgICAgICAgIiIiRGVmYXVsdCBlcnJvciBoYW5kbGVyOiBjbG9zZSB0aGUgY29ubmVjdGlvbiBhbmQgcmFpc2UgT1NFcnJvci4iIiIKICAgICAgICAgZnAuY2xvc2UoKQogICAgICAgICByYWlzZSBIVFRQRXJyb3IodXJsLCBlcnJjb2RlLCBlcnJtc2csIGhlYWRlcnMsIE5vbmUpCiAKQEAgLTE5NzYsNyArMjAwNiw3IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgIFt0eXBlLCBkYXRhXSA9IHVybC5zcGxpdCgnLCcsIDEpCiAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcignZGF0YSBlcnJvcicsICdiYWQgZGF0YSBVUkwnKQorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcignZGF0YSBlcnJvcicsICdiYWQgZGF0YSBVUkwnKQogICAgICAgICBpZiBub3QgdHlwZToKICAgICAgICAgICAgIHR5cGUgPSAndGV4dC9wbGFpbjtjaGFyc2V0PVVTLUFTQ0lJJwogICAgICAgICBzZW1pID0gdHlwZS5yZmluZCgnOycpCkBAIC0yNDI1LDcgKzI0NTUsNyBAQAogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgaG9zdElQID0gc29ja2V0LmdldGhvc3RieW5hbWUoaG9zdG9ubHkpCiAgICAgICAgICAgICAgICAgICAgIGhvc3RJUCA9IGlwMm51bShob3N0SVApCi0gICAgICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICAgICAgYmFzZSA9IGlwMm51bShtLmdyb3VwKDEpKQpAQCAtMjUxMSw3ICsyNTQxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIHByb3hpZXNbJ2h0dHBzJ10gPSAnaHR0cHM6Ly8lcycgJSBwcm94eVNlcnZlcgogICAgICAgICAgICAgICAgICAgICAgICAgcHJveGllc1snZnRwJ10gPSAnZnRwOi8vJXMnICUgcHJveHlTZXJ2ZXIKICAgICAgICAgICAgIGludGVybmV0U2V0dGluZ3MuQ2xvc2UoKQotICAgICAgICBleGNlcHQgKFdpbmRvd3NFcnJvciwgVmFsdWVFcnJvciwgVHlwZUVycm9yKToKKyAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBWYWx1ZUVycm9yLCBUeXBlRXJyb3IpOgogICAgICAgICAgICAgIyBFaXRoZXIgcmVnaXN0cnkga2V5IG5vdCBmb3VuZCBldGMsIG9yIHRoZSB2YWx1ZSBpbiBhbgogICAgICAgICAgICAgIyB1bmV4cGVjdGVkIGZvcm1hdC4KICAgICAgICAgICAgICMgcHJveGllcyBhbHJlYWR5IHNldCB1cCB0byBiZSBlbXB0eSBzbyBub3RoaW5nIHRvIGRvCkBAIC0yNTQxLDcgKzI1NzEsNyBAQAogICAgICAgICAgICAgcHJveHlPdmVycmlkZSA9IHN0cih3aW5yZWcuUXVlcnlWYWx1ZUV4KGludGVybmV0U2V0dGluZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQcm94eU92ZXJyaWRlJylbMF0pCiAgICAgICAgICAgICAjIF5eXl4gUmV0dXJuZWQgYXMgVW5pY29kZSBidXQgcHJvYmxlbXMgaWYgbm90IGNvbnZlcnRlZCB0byBBU0NJSQotICAgICAgICBleGNlcHQgV2luZG93c0Vycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgIGlmIG5vdCBwcm94eUVuYWJsZSBvciBub3QgcHJveHlPdmVycmlkZToKICAgICAgICAgICAgIHJldHVybiAwCkBAIC0yNTUyLDEzICsyNTgyLDEzIEBACiAgICAgICAgICAgICBhZGRyID0gc29ja2V0LmdldGhvc3RieW5hbWUocmF3SG9zdCkKICAgICAgICAgICAgIGlmIGFkZHIgIT0gcmF3SG9zdDoKICAgICAgICAgICAgICAgICBob3N0LmFwcGVuZChhZGRyKQotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZnFkbiA9IHNvY2tldC5nZXRmcWRuKHJhd0hvc3QpCiAgICAgICAgICAgICBpZiBmcWRuICE9IHJhd0hvc3Q6CiAgICAgICAgICAgICAgICAgaG9zdC5hcHBlbmQoZnFkbikKLSAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgICMgbWFrZSBhIGNoZWNrIHZhbHVlIGxpc3QgZnJvbSB0aGUgcmVnaXN0cnkgZW50cnk6IHJlcGxhY2UgdGhlCiAgICAgICAgICMgJzxsb2NhbD4nIHN0cmluZyBieSB0aGUgbG9jYWxob3N0IGVudHJ5IGFuZCB0aGUgY29ycmVzcG9uZGluZwpkaWZmIC0tZ2l0IGEvTGliL3V1aWQucHkgYi9MaWIvdXVpZC5weQppbmRleCAwZGYwNzQzLi41ZDA5MWI5IDEwMDY0NAotLS0gYS9MaWIvdXVpZC5weQorKysgYi9MaWIvdXVpZC5weQpAQCAtMzI5LDcgKzMyOSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBpZiB3b3Jkc1tpXSBpbiBod19pZGVudGlmaWVyczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3Jkc1tnZXRfaW5kZXgoaSldLnJlcGxhY2UoJzonLCAnJyksIDE2KQotICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBjb250aW51ZQogICAgIHJldHVybiBOb25lCiAKQEAgLTM3MSw3ICszNzEsNyBAQAogICAgIGZvciBkaXIgaW4gZGlyczoKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcGlwZSA9IG9zLnBvcGVuKG9zLnBhdGguam9pbihkaXIsICdpcGNvbmZpZycpICsgJyAvYWxsJykKLSAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgY29udGludWUKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGZvciBsaW5lIGluIHBpcGU6CmRpZmYgLS1naXQgYS9MaWIvdmVudi9fX2luaXRfXy5weSBiL0xpYi92ZW52L19faW5pdF9fLnB5CmluZGV4IDM5MjA3NDcuLmVjZGI2OGUgMTAwNjQ0Ci0tLSBhL0xpYi92ZW52L19faW5pdF9fLnB5CisrKyBiL0xpYi92ZW52L19faW5pdF9fLnB5CkBAIC05Miw2ICs5MiwxNCBAQAogICAgICAgICAgICAgc2VsZi5zZXR1cF9zY3JpcHRzKGNvbnRleHQpCiAgICAgICAgICAgICBzZWxmLnBvc3Rfc2V0dXAoY29udGV4dCkKIAorICAgIGRlZiBjbGVhcl9kaXJlY3Rvcnkoc2VsZiwgcGF0aCk6CisgICAgICAgIGZvciBmbiBpbiBvcy5saXN0ZGlyKHBhdGgpOgorICAgICAgICAgICAgZm4gPSBvcy5wYXRoLmpvaW4ocGF0aCwgZm4pCisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzbGluayhmbikgb3Igb3MucGF0aC5pc2ZpbGUoZm4pOgorICAgICAgICAgICAgICAgIG9zLnJlbW92ZShmbikKKyAgICAgICAgICAgIGVsaWYgb3MucGF0aC5pc2Rpcihmbik6CisgICAgICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShmbikKKwogICAgIGRlZiBlbnN1cmVfZGlyZWN0b3JpZXMoc2VsZiwgZW52X2Rpcik6CiAgICAgICAgICIiIgogICAgICAgICBDcmVhdGUgdGhlIGRpcmVjdG9yaWVzIGZvciB0aGUgZW52aXJvbm1lbnQuCkBAIC0xMDMsMTEgKzExMSwxMSBAQAogICAgICAgICBkZWYgY3JlYXRlX2lmX25lZWRlZChkKToKICAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhkKToKICAgICAgICAgICAgICAgICBvcy5tYWtlZGlycyhkKQorICAgICAgICAgICAgZWxpZiBvcy5wYXRoLmlzbGluayhkKSBvciBvcy5wYXRoLmlzZmlsZShkKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdVbmFibGUgdG8gY3JlYXRlIGRpcmVjdG9yeSAlcicgJSBkKQogCi0gICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGVudl9kaXIpIGFuZCBub3QgKHNlbGYuY2xlYXIgb3Igc2VsZi51cGdyYWRlKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0RpcmVjdG9yeSBleGlzdHM6ICVzJyAlIGVudl9kaXIpCiAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGVudl9kaXIpIGFuZCBzZWxmLmNsZWFyOgotICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShlbnZfZGlyKQorICAgICAgICAgICAgc2VsZi5jbGVhcl9kaXJlY3RvcnkoZW52X2RpcikKICAgICAgICAgY29udGV4dCA9IENvbnRleHQoKQogICAgICAgICBjb250ZXh0LmVudl9kaXIgPSBlbnZfZGlyCiAgICAgICAgIGNvbnRleHQuZW52X25hbWUgPSBvcy5wYXRoLnNwbGl0KGVudl9kaXIpWzFdCkBAIC0zNzgsMTEgKzM4NiwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3doZW4gc3ltbGlua3MgYXJlIG5vdCB0aGUgZGVmYXVsdCBmb3IgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBwbGF0Zm9ybS4nKQogICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWNsZWFyJywgZGVmYXVsdD1GYWxzZSwgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdjbGVhcicsIGhlbHA9J0RlbGV0ZSB0aGUgZW52aXJvbm1lbnQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlyZWN0b3J5IGlmIGl0IGFscmVhZHkgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXhpc3RzLiBJZiBub3Qgc3BlY2lmaWVkIGFuZCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aGUgZGlyZWN0b3J5IGV4aXN0cywgYW4gZXJyb3InCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgaXMgcmFpc2VkLicpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nY2xlYXInLCBoZWxwPSdEZWxldGUgdGhlIGNvbnRlbnRzIG9mIHRoZSAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbnZpcm9ubWVudCBkaXJlY3RvcnkgaWYgaXQgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWxyZWFkeSBleGlzdHMsIGJlZm9yZSAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbnZpcm9ubWVudCBjcmVhdGlvbi4nKQogICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXVwZ3JhZGUnLCBkZWZhdWx0PUZhbHNlLCBhY3Rpb249J3N0b3JlX3RydWUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3VwZ3JhZGUnLCBoZWxwPSdVcGdyYWRlIHRoZSBlbnZpcm9ubWVudCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXJlY3RvcnkgdG8gdXNlIHRoaXMgdmVyc2lvbiAnCmRpZmYgLS1naXQgYS9MaWIvdmVudi9zY3JpcHRzL3Bvc2l4L2FjdGl2YXRlLmNzaCBiL0xpYi92ZW52L3NjcmlwdHMvcG9zaXgvYWN0aXZhdGUuY3NoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5ZDc5ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdmVudi9zY3JpcHRzL3Bvc2l4L2FjdGl2YXRlLmNzaApAQCAtMCwwICsxLDM3IEBACisjIFRoaXMgZmlsZSBtdXN0IGJlIHVzZWQgd2l0aCAic291cmNlIGJpbi9hY3RpdmF0ZS5jc2giICpmcm9tIGNzaCouCisjIFlvdSBjYW5ub3QgcnVuIGl0IGRpcmVjdGx5LgorIyBDcmVhdGVkIGJ5IERhdmlkZSBEaSBCbGFzaSA8ZGF2aWRlZGJAZ21haWwuY29tPi4KKyMgUG9ydGVkIHRvIFB5dGhvbiAzLjMgdmVudiBieSBBbmRyZXcgU3ZldGxvdiA8YW5kcmV3LnN2ZXRsb3ZAZ21haWwuY29tPgorCithbGlhcyBkZWFjdGl2YXRlICd0ZXN0ICQ/X09MRF9WSVJUVUFMX1BBVEggIT0gMCAmJiBzZXRlbnYgUEFUSCAiJF9PTERfVklSVFVBTF9QQVRIIiAmJiB1bnNldCBfT0xEX1ZJUlRVQUxfUEFUSDsgcmVoYXNoOyB0ZXN0ICQ/X09MRF9WSVJUVUFMX1BST01QVCAhPSAwICYmIHNldCBwcm9tcHQ9IiRfT0xEX1ZJUlRVQUxfUFJPTVBUIiAmJiB1bnNldCBfT0xEX1ZJUlRVQUxfUFJPTVBUOyB1bnNldGVudiBWSVJUVUFMX0VOVjsgdGVzdCAiXCE6KiIgIT0gIm5vbmRlc3RydWN0aXZlIiAmJiB1bmFsaWFzIGRlYWN0aXZhdGUnCisKKyMgVW5zZXQgaXJyZWxhdmVudCB2YXJpYWJsZXMuCitkZWFjdGl2YXRlIG5vbmRlc3RydWN0aXZlCisKK3NldGVudiBWSVJUVUFMX0VOViAiX19WRU5WX0RJUl9fIgorCitzZXQgX09MRF9WSVJUVUFMX1BBVEg9IiRQQVRIIgorc2V0ZW52IFBBVEggIiRWSVJUVUFMX0VOVi9fX1ZFTlZfQklOX05BTUVfXzokUEFUSCIKKworCitzZXQgX09MRF9WSVJUVUFMX1BST01QVD0iJHByb21wdCIKKworaWYgKCEgIiQ/VklSVFVBTF9FTlZfRElTQUJMRV9QUk9NUFQiKSB0aGVuCisgICAgaWYgKCJfX1ZFTlZfTkFNRV9fIiAhPSAiIikgdGhlbgorICAgICAgICBzZXQgZW52X25hbWUgPSAiX19WRU5WX05BTUVfXyIKKyAgICBlbHNlCisgICAgICAgIGlmIChgYmFzZW5hbWUgIlZJUlRVQUxfRU5WImAgPT0gIl9fIikgdGhlbgorICAgICAgICAgICAgIyBzcGVjaWFsIGNhc2UgZm9yIEFzcGVuIG1hZ2ljIGRpcmVjdG9yaWVzCisgICAgICAgICAgICAjIHNlZSBodHRwOi8vd3d3LnpldGFkZXYuY29tL3NvZnR3YXJlL2FzcGVuLworICAgICAgICAgICAgc2V0IGVudl9uYW1lID0gYGJhc2VuYW1lIFxgZGlybmFtZSAiJFZJUlRVQUxfRU5WIlxgYAorICAgICAgICBlbHNlCisgICAgICAgICAgICBzZXQgZW52X25hbWUgPSBgYmFzZW5hbWUgIiRWSVJUVUFMX0VOViJgCisgICAgICAgIGVuZGlmCisgICAgZW5kaWYKKyAgICBzZXQgcHJvbXB0ID0gIlskZW52X25hbWVdICRwcm9tcHQiCisgICAgdW5zZXQgZW52X25hbWUKK2VuZGlmCisKK2FsaWFzIHB5ZG9jIHB5dGhvbiAtbSBweWRvYworCityZWhhc2gKZGlmZiAtLWdpdCBhL0xpYi92ZW52L3NjcmlwdHMvcG9zaXgvYWN0aXZhdGUuZmlzaCBiL0xpYi92ZW52L3NjcmlwdHMvcG9zaXgvYWN0aXZhdGUuZmlzaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YWMxNjM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGliL3ZlbnYvc2NyaXB0cy9wb3NpeC9hY3RpdmF0ZS5maXNoCkBAIC0wLDAgKzEsNzQgQEAKKyMgVGhpcyBmaWxlIG11c3QgYmUgdXNlZCB3aXRoICIuIGJpbi9hY3RpdmF0ZS5maXNoIiAqZnJvbSBmaXNoKiAoaHR0cDovL2Zpc2hzaGVsbC5vcmcpCisjIHlvdSBjYW5ub3QgcnVuIGl0IGRpcmVjdGx5CisKK2Z1bmN0aW9uIGRlYWN0aXZhdGUgIC1kICJFeGl0IHZpcnR1YWxlbnYgYW5kIHJldHVybiB0byBub3JtYWwgc2hlbGwgZW52aXJvbm1lbnQiCisgICAgIyByZXNldCBvbGQgZW52aXJvbm1lbnQgdmFyaWFibGVzCisgICAgaWYgdGVzdCAtbiAiJF9PTERfVklSVFVBTF9QQVRIIgorICAgICAgICBzZXQgLWd4IFBBVEggJF9PTERfVklSVFVBTF9QQVRICisgICAgICAgIHNldCAtZSBfT0xEX1ZJUlRVQUxfUEFUSAorICAgIGVuZAorICAgIGlmIHRlc3QgLW4gIiRfT0xEX1ZJUlRVQUxfUFlUSE9OSE9NRSIKKyAgICAgICAgc2V0IC1neCBQWVRIT05IT01FICRfT0xEX1ZJUlRVQUxfUFlUSE9OSE9NRQorICAgICAgICBzZXQgLWUgX09MRF9WSVJUVUFMX1BZVEhPTkhPTUUKKyAgICBlbmQKKworICAgIGlmIHRlc3QgLW4gIiRfT0xEX0ZJU0hfUFJPTVBUX09WRVJSSURFIgorICAgICAgICBmdW5jdGlvbnMgLWUgZmlzaF9wcm9tcHQKKyAgICAgICAgc2V0IC1lIF9PTERfRklTSF9QUk9NUFRfT1ZFUlJJREUKKyAgICAgICAgLiAoIGJlZ2luCisgICAgICAgICAgICAgICAgcHJpbnRmICJmdW5jdGlvbiBmaXNoX3Byb21wdFxuXHQjIgorICAgICAgICAgICAgICAgIGZ1bmN0aW9ucyBfb2xkX2Zpc2hfcHJvbXB0CisgICAgICAgICAgICBlbmQgfCBwc3ViICkKKyAgICAgICAgZnVuY3Rpb25zIC1lIF9vbGRfZmlzaF9wcm9tcHQKKyAgICBlbmQKKworICAgIHNldCAtZSBWSVJUVUFMX0VOVgorICAgIGlmIHRlc3QgIiRhcmd2WzFdIiAhPSAibm9uZGVzdHJ1Y3RpdmUiCisgICAgICAgICMgU2VsZiBkZXN0cnVjdCEKKyAgICAgICAgZnVuY3Rpb25zIC1lIGRlYWN0aXZhdGUKKyAgICBlbmQKK2VuZAorCisjIHVuc2V0IGlycmVsYXZlbnQgdmFyaWFibGVzCitkZWFjdGl2YXRlIG5vbmRlc3RydWN0aXZlCisKK3NldCAtZ3ggVklSVFVBTF9FTlYgIl9fVkVOVl9ESVJfXyIKKworc2V0IC1neCBfT0xEX1ZJUlRVQUxfUEFUSCAkUEFUSAorc2V0IC1neCBQQVRIICIkVklSVFVBTF9FTlYvX19WRU5WX0JJTl9OQU1FX18iICRQQVRICisKKyMgdW5zZXQgUFlUSE9OSE9NRSBpZiBzZXQKK2lmIHNldCAtcSBQWVRIT05IT01FCisgICAgc2V0IC1neCBfT0xEX1ZJUlRVQUxfUFlUSE9OSE9NRSAkUFlUSE9OSE9NRQorICAgIHNldCAtZSBQWVRIT05IT01FCitlbmQKKworaWYgdGVzdCAteiAiJFZJUlRVQUxfRU5WX0RJU0FCTEVfUFJPTVBUIgorICAgICMgZmlzaCB1c2VzIGEgZnVuY3Rpb24gaW5zdGVhZCBvZiBhbiBlbnYgdmFyIHRvIGdlbmVyYXRlIHRoZSBwcm9tcHQuCisKKyAgICAjIHNhdmUgdGhlIGN1cnJlbnQgZmlzaF9wcm9tcHQgZnVuY3Rpb24gYXMgdGhlIGZ1bmN0aW9uIF9vbGRfZmlzaF9wcm9tcHQKKyAgICAuICggYmVnaW4KKyAgICAgICAgICAgIHByaW50ZiAiZnVuY3Rpb24gX29sZF9maXNoX3Byb21wdFxuXHQjIgorICAgICAgICAgICAgZnVuY3Rpb25zIGZpc2hfcHJvbXB0CisgICAgICAgIGVuZCB8IHBzdWIgKQorCisgICAgIyB3aXRoIHRoZSBvcmlnaW5hbCBwcm9tcHQgZnVuY3Rpb24gcmVuYW1lZCwgd2UgY2FuIG92ZXJyaWRlIHdpdGggb3VyIG93bi4KKyAgICBmdW5jdGlvbiBmaXNoX3Byb21wdAorICAgICAgICAjIFByb21wdCBvdmVycmlkZT8KKyAgICAgICAgaWYgdGVzdCAtbiAiX19WRU5WX05BTUVfXyIKKyAgICAgICAgICAgIHByaW50ZiAiJXMlcyVzIiAiX19WRU5WX05BTUVfXyIgKHNldF9jb2xvciBub3JtYWwpIChfb2xkX2Zpc2hfcHJvbXB0KQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGVuZAorICAgICAgICAjIC4uLk90aGVyd2lzZSwgcHJlcGVuZCBlbnYKKyAgICAgICAgc2V0IC1sIF9jaGVja2Jhc2UgKGJhc2VuYW1lICIkVklSVFVBTF9FTlYiKQorICAgICAgICBpZiB0ZXN0ICRfY2hlY2tiYXNlID0gIl9fIgorICAgICAgICAgICAgIyBzcGVjaWFsIGNhc2UgZm9yIEFzcGVuIG1hZ2ljIGRpcmVjdG9yaWVzCisgICAgICAgICAgICAjIHNlZSBodHRwOi8vd3d3LnpldGFkZXYuY29tL3NvZnR3YXJlL2FzcGVuLworICAgICAgICAgICAgcHJpbnRmICIlc1slc10lcyAlcyIgKHNldF9jb2xvciAtYiBibHVlIHdoaXRlKSAoYmFzZW5hbWUgKGRpcm5hbWUgIiRWSVJUVUFMX0VOViIpKSAoc2V0X2NvbG9yIG5vcm1hbCkgKF9vbGRfZmlzaF9wcm9tcHQpCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByaW50ZiAiJXMoJXMpJXMlcyIgKHNldF9jb2xvciAtYiBibHVlIHdoaXRlKSAoYmFzZW5hbWUgIiRWSVJUVUFMX0VOViIpIChzZXRfY29sb3Igbm9ybWFsKSAoX29sZF9maXNoX3Byb21wdCkKKyAgICAgICAgZW5kCisgICAgZW5kCisKKyAgICBzZXQgLWd4IF9PTERfRklTSF9QUk9NUFRfT1ZFUlJJREUgIiRWSVJUVUFMX0VOViIKK2VuZApkaWZmIC0tZ2l0IGEvTGliL3dhcm5pbmdzLnB5IGIvTGliL3dhcm5pbmdzLnB5CmluZGV4IGVkYmJiNWUuLmIwNWEwOGUgMTAwNjQ0Ci0tLSBhL0xpYi93YXJuaW5ncy5weQorKysgYi9MaWIvd2FybmluZ3MucHkKQEAgLTE2LDcgKzE2LDcgQEAKICAgICAgICAgZmlsZSA9IHN5cy5zdGRlcnIKICAgICB0cnk6CiAgICAgICAgIGZpbGUud3JpdGUoZm9ybWF0d2FybmluZyhtZXNzYWdlLCBjYXRlZ29yeSwgZmlsZW5hbWUsIGxpbmVubywgbGluZSkpCi0gICAgZXhjZXB0IElPRXJyb3I6CisgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgIHBhc3MgIyB0aGUgZmlsZSAocHJvYmFibHkgc3RkZXJyKSBpcyBpbnZhbGlkIC0gdGhpcyB3YXJuaW5nIGdldHMgbG9zdC4KIAogZGVmIGZvcm1hdHdhcm5pbmcobWVzc2FnZSwgY2F0ZWdvcnksIGZpbGVuYW1lLCBsaW5lbm8sIGxpbmU9Tm9uZSk6CmRpZmYgLS1naXQgYS9MaWIvd2F2ZS5weSBiL0xpYi93YXZlLnB5CmluZGV4IDU0ZjAzMDIuLmVhNDEwYzEgMTAwNjQ0Ci0tLSBhL0xpYi93YXZlLnB5CisrKyBiL0xpYi93YXZlLnB5CkBAIC0xOCw3ICsxOCw3IEBACiAgICAgICBnZXRjb21wdHlwZSgpICAgLS0gcmV0dXJucyBjb21wcmVzc2lvbiB0eXBlICgnTk9ORScgZm9yIGxpbmVhciBzYW1wbGVzKQogICAgICAgZ2V0Y29tcG5hbWUoKSAgIC0tIHJldHVybnMgaHVtYW4tcmVhZGFibGUgdmVyc2lvbiBvZgogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXByZXNzaW9uIHR5cGUgKCdub3QgY29tcHJlc3NlZCcgbGluZWFyIHNhbXBsZXMpCi0gICAgICBnZXRwYXJhbXMoKSAgICAgLS0gcmV0dXJucyBhIHR1cGxlIGNvbnNpc3Rpbmcgb2YgYWxsIG9mIHRoZQorICAgICAgZ2V0cGFyYW1zKCkgICAgIC0tIHJldHVybnMgYSBuYW1lZHR1cGxlIGNvbnNpc3Rpbmcgb2YgYWxsIG9mIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgIGFib3ZlIGluIHRoZSBhYm92ZSBvcmRlcgogICAgICAgZ2V0bWFya2VycygpICAgIC0tIHJldHVybnMgTm9uZSAoZm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICBhaWZjIG1vZHVsZSkKQEAgLTgyLDE0ICs4MiwxMyBAQAogCiBfYXJyYXlfZm10cyA9IE5vbmUsICdiJywgJ2gnLCBOb25lLCAnbCcKIAotIyBEZXRlcm1pbmUgZW5kaWFuLW5lc3MKIGltcG9ydCBzdHJ1Y3QKLWlmIHN0cnVjdC5wYWNrKCJoIiwgMSkgPT0gYiJcMDAwXDAwMSI6Ci0gICAgYmlnX2VuZGlhbiA9IDEKLWVsc2U6Ci0gICAgYmlnX2VuZGlhbiA9IDAKLQoraW1wb3J0IHN5cwogZnJvbSBjaHVuayBpbXBvcnQgQ2h1bmsKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IG5hbWVkdHVwbGUKKworX3Jlc3VsdCA9IG5hbWVkdHVwbGUoJ3BhcmFtcycsCisgICAgICAgICAgICAgICAgICAgICAnbmNoYW5uZWxzIHNhbXB3aWR0aCBmcmFtZXJhdGUgbmZyYW1lcyBjb21wdHlwZSBjb21wbmFtZScpCiAKIGNsYXNzIFdhdmVfcmVhZDoKICAgICAiIiJWYXJpYWJsZXMgdXNlZCBpbiB0aGlzIGNsYXNzOgpAQCAtMjA2LDkgKzIwNSw5IEBACiAgICAgICAgIHJldHVybiBzZWxmLl9jb21wbmFtZQogCiAgICAgZGVmIGdldHBhcmFtcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2V0bmNoYW5uZWxzKCksIHNlbGYuZ2V0c2FtcHdpZHRoKCksIFwKLSAgICAgICAgICAgICAgIHNlbGYuZ2V0ZnJhbWVyYXRlKCksIHNlbGYuZ2V0bmZyYW1lcygpLCBcCi0gICAgICAgICAgICAgICBzZWxmLmdldGNvbXB0eXBlKCksIHNlbGYuZ2V0Y29tcG5hbWUoKQorICAgICAgICByZXR1cm4gX3Jlc3VsdChzZWxmLmdldG5jaGFubmVscygpLCBzZWxmLmdldHNhbXB3aWR0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmdldGZyYW1lcmF0ZSgpLCBzZWxmLmdldG5mcmFtZXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5nZXRjb21wdHlwZSgpLCBzZWxmLmdldGNvbXBuYW1lKCkpCiAKICAgICBkZWYgZ2V0bWFya2VycyhzZWxmKToKICAgICAgICAgcmV0dXJuIE5vbmUKQEAgLTIzMSw3ICsyMzAsNyBAQAogICAgICAgICAgICAgc2VsZi5fZGF0YV9zZWVrX25lZWRlZCA9IDAKICAgICAgICAgaWYgbmZyYW1lcyA9PSAwOgogICAgICAgICAgICAgcmV0dXJuIGInJwotICAgICAgICBpZiBzZWxmLl9zYW1wd2lkdGggPiAxIGFuZCBiaWdfZW5kaWFuOgorICAgICAgICBpZiBzZWxmLl9zYW1wd2lkdGggPiAxIGFuZCBzeXMuYnl0ZW9yZGVyID09ICdiaWcnOgogICAgICAgICAgICAgIyB1bmZvcnR1bmF0ZWx5IHRoZSBmcm9tZmlsZSgpIG1ldGhvZCBkb2VzIG5vdCB0YWtlCiAgICAgICAgICAgICAjIHNvbWV0aGluZyB0aGF0IG9ubHkgbG9va3MgbGlrZSBhIGZpbGUgb2JqZWN0LCBzbwogICAgICAgICAgICAgIyB3ZSBoYXZlIHRvIHJlYWNoIGludG8gdGhlIGlubmFyZHMgb2YgdGhlIGNodW5rIG9iamVjdApAQCAtMzk4LDggKzM5Nyw4IEBACiAgICAgZGVmIGdldHBhcmFtcyhzZWxmKToKICAgICAgICAgaWYgbm90IHNlbGYuX25jaGFubmVscyBvciBub3Qgc2VsZi5fc2FtcHdpZHRoIG9yIG5vdCBzZWxmLl9mcmFtZXJhdGU6CiAgICAgICAgICAgICByYWlzZSBFcnJvcignbm90IGFsbCBwYXJhbWV0ZXJzIHNldCcpCi0gICAgICAgIHJldHVybiBzZWxmLl9uY2hhbm5lbHMsIHNlbGYuX3NhbXB3aWR0aCwgc2VsZi5fZnJhbWVyYXRlLCBcCi0gICAgICAgICAgICAgIHNlbGYuX25mcmFtZXMsIHNlbGYuX2NvbXB0eXBlLCBzZWxmLl9jb21wbmFtZQorICAgICAgICByZXR1cm4gX3Jlc3VsdChzZWxmLl9uY2hhbm5lbHMsIHNlbGYuX3NhbXB3aWR0aCwgc2VsZi5fZnJhbWVyYXRlLAorICAgICAgICAgICAgICBzZWxmLl9uZnJhbWVzLCBzZWxmLl9jb21wdHlwZSwgc2VsZi5fY29tcG5hbWUpCiAKICAgICBkZWYgc2V0bWFyayhzZWxmLCBpZCwgcG9zLCBuYW1lKToKICAgICAgICAgcmFpc2UgRXJyb3IoJ3NldG1hcmsoKSBub3Qgc3VwcG9ydGVkJykKQEAgLTQxOCw3ICs0MTcsNyBAQAogICAgICAgICBuZnJhbWVzID0gbGVuKGRhdGEpIC8vIChzZWxmLl9zYW1wd2lkdGggKiBzZWxmLl9uY2hhbm5lbHMpCiAgICAgICAgIGlmIHNlbGYuX2NvbnZlcnQ6CiAgICAgICAgICAgICBkYXRhID0gc2VsZi5fY29udmVydChkYXRhKQotICAgICAgICBpZiBzZWxmLl9zYW1wd2lkdGggPiAxIGFuZCBiaWdfZW5kaWFuOgorICAgICAgICBpZiBzZWxmLl9zYW1wd2lkdGggPiAxIGFuZCBzeXMuYnl0ZW9yZGVyID09ICdiaWcnOgogICAgICAgICAgICAgaW1wb3J0IGFycmF5CiAgICAgICAgICAgICBkYXRhID0gYXJyYXkuYXJyYXkoX2FycmF5X2ZtdHNbc2VsZi5fc2FtcHdpZHRoXSwgZGF0YSkKICAgICAgICAgICAgIGRhdGEuYnl0ZXN3YXAoKQpkaWZmIC0tZ2l0IGEvTGliL3dlYWtyZWYucHkgYi9MaWIvd2Vha3JlZi5weQppbmRleCBmY2I2Yjc0Li40YzBiMjZlIDEwMDY0NAotLS0gYS9MaWIvd2Vha3JlZi5weQorKysgYi9MaWIvd2Vha3JlZi5weQpAQCAtMjEsMTMgKzIxLDcwIEBACiBmcm9tIF93ZWFrcmVmc2V0IGltcG9ydCBXZWFrU2V0LCBfSXRlcmF0aW9uR3VhcmQKIAogaW1wb3J0IGNvbGxlY3Rpb25zICAjIEltcG9ydCBhZnRlciBfd2Vha3JlZiB0byBhdm9pZCBjaXJjdWxhciBpbXBvcnQuCitpbXBvcnQgc3lzCitpbXBvcnQgaXRlcnRvb2xzCitpbXBvcnQgYXRleGl0CiAKIFByb3h5VHlwZXMgPSAoUHJveHlUeXBlLCBDYWxsYWJsZVByb3h5VHlwZSkKIAogX19hbGxfXyA9IFsicmVmIiwgInByb3h5IiwgImdldHdlYWtyZWZjb3VudCIsICJnZXR3ZWFrcmVmcyIsCiAgICAgICAgICAgICJXZWFrS2V5RGljdGlvbmFyeSIsICJSZWZlcmVuY2VUeXBlIiwgIlByb3h5VHlwZSIsCiAgICAgICAgICAgICJDYWxsYWJsZVByb3h5VHlwZSIsICJQcm94eVR5cGVzIiwgIldlYWtWYWx1ZURpY3Rpb25hcnkiLAotICAgICAgICAgICAiV2Vha1NldCJdCisgICAgICAgICAgICJXZWFrU2V0IiwgIldlYWtNZXRob2QiLCAiZmluYWxpemUiXQorCisKK2NsYXNzIFdlYWtNZXRob2QocmVmKToKKyAgICAiIiIKKyAgICBBIGN1c3RvbSBgd2Vha3JlZi5yZWZgIHN1YmNsYXNzIHdoaWNoIHNpbXVsYXRlcyBhIHdlYWsgcmVmZXJlbmNlIHRvCisgICAgYSBib3VuZCBtZXRob2QsIHdvcmtpbmcgYXJvdW5kIHRoZSBsaWZldGltZSBwcm9ibGVtIG9mIGJvdW5kIG1ldGhvZHMuCisgICAgIiIiCisKKyAgICBfX3Nsb3RzX18gPSAiX2Z1bmNfcmVmIiwgIl9tZXRoX3R5cGUiLCAiX2FsaXZlIiwgIl9fd2Vha3JlZl9fIgorCisgICAgZGVmIF9fbmV3X18oY2xzLCBtZXRoLCBjYWxsYmFjaz1Ob25lKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb2JqID0gbWV0aC5fX3NlbGZfXworICAgICAgICAgICAgZnVuYyA9IG1ldGguX19mdW5jX18KKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJhcmd1bWVudCBzaG91bGQgYmUgYSBib3VuZCBtZXRob2QsIG5vdCB7fSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KHR5cGUobWV0aCkpKSBmcm9tIE5vbmUKKyAgICAgICAgZGVmIF9jYihhcmcpOgorICAgICAgICAgICAgIyBUaGUgc2VsZi13ZWFrcmVmIHRyaWNrIGlzIG5lZWRlZCB0byBhdm9pZCBjcmVhdGluZyBhIHJlZmVyZW5jZQorICAgICAgICAgICAgIyBjeWNsZS4KKyAgICAgICAgICAgIHNlbGYgPSBzZWxmX3dyKCkKKyAgICAgICAgICAgIGlmIHNlbGYuX2FsaXZlOgorICAgICAgICAgICAgICAgIHNlbGYuX2FsaXZlID0gRmFsc2UKKyAgICAgICAgICAgICAgICBpZiBjYWxsYmFjayBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soc2VsZikKKyAgICAgICAgc2VsZiA9IHJlZi5fX25ld19fKGNscywgb2JqLCBfY2IpCisgICAgICAgIHNlbGYuX2Z1bmNfcmVmID0gcmVmKGZ1bmMsIF9jYikKKyAgICAgICAgc2VsZi5fbWV0aF90eXBlID0gdHlwZShtZXRoKQorICAgICAgICBzZWxmLl9hbGl2ZSA9IFRydWUKKyAgICAgICAgc2VsZl93ciA9IHJlZihzZWxmKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYpOgorICAgICAgICBvYmogPSBzdXBlcigpLl9fY2FsbF9fKCkKKyAgICAgICAgZnVuYyA9IHNlbGYuX2Z1bmNfcmVmKCkKKyAgICAgICAgaWYgb2JqIGlzIE5vbmUgb3IgZnVuYyBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIHNlbGYuX21ldGhfdHlwZShmdW5jLCBvYmopCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgV2Vha01ldGhvZCk6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fYWxpdmUgb3Igbm90IG90aGVyLl9hbGl2ZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZiBpcyBvdGhlcgorICAgICAgICAgICAgcmV0dXJuIHJlZi5fX2VxX18oc2VsZiwgb3RoZXIpIGFuZCBzZWxmLl9mdW5jX3JlZiA9PSBvdGhlci5fZnVuY19yZWYKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgV2Vha01ldGhvZCk6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fYWxpdmUgb3Igbm90IG90aGVyLl9hbGl2ZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZiBpcyBub3Qgb3RoZXIKKyAgICAgICAgICAgIHJldHVybiByZWYuX19uZV9fKHNlbGYsIG90aGVyKSBvciBzZWxmLl9mdW5jX3JlZiAhPSBvdGhlci5fZnVuY19yZWYKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIF9faGFzaF9fID0gcmVmLl9faGFzaF9fCiAKIAogY2xhc3MgV2Vha1ZhbHVlRGljdGlvbmFyeShjb2xsZWN0aW9ucy5NdXRhYmxlTWFwcGluZyk6CkBAIC0xNTMsOCArMjEwLDcgQEAKIAogICAgICAgICAiIiIKICAgICAgICAgd2l0aCBfSXRlcmF0aW9uR3VhcmQoc2VsZik6Ci0gICAgICAgICAgICBmb3Igd3IgaW4gc2VsZi5kYXRhLnZhbHVlcygpOgotICAgICAgICAgICAgICAgIHlpZWxkIHdyCisgICAgICAgICAgICB5aWVsZCBmcm9tIHNlbGYuZGF0YS52YWx1ZXMoKQogCiAgICAgZGVmIHZhbHVlcyhzZWxmKToKICAgICAgICAgd2l0aCBfSXRlcmF0aW9uR3VhcmQoc2VsZik6CkBAIC0zODMsMyArNDM5LDEzNSBAQAogICAgICAgICAgICAgICAgIGRbcmVmKGtleSwgc2VsZi5fcmVtb3ZlKV0gPSB2YWx1ZQogICAgICAgICBpZiBsZW4oa3dhcmdzKToKICAgICAgICAgICAgIHNlbGYudXBkYXRlKGt3YXJncykKKworCitjbGFzcyBmaW5hbGl6ZToKKyAgICAiIiJDbGFzcyBmb3IgZmluYWxpemF0aW9uIG9mIHdlYWtyZWZhYmxlIG9iamVjdHMKKworICAgIGZpbmFsaXplKG9iaiwgZnVuYywgKmFyZ3MsICoqa3dhcmdzKSByZXR1cm5zIGEgY2FsbGFibGUgZmluYWxpemVyCisgICAgb2JqZWN0IHdoaWNoIHdpbGwgYmUgY2FsbGVkIHdoZW4gb2JqIGlzIGdhcmJhZ2UgY29sbGVjdGVkLiBUaGUKKyAgICBmaXJzdCB0aW1lIHRoZSBmaW5hbGl6ZXIgaXMgY2FsbGVkIGl0IGV2YWx1YXRlcyBmdW5jKCphcmcsICoqa3dhcmdzKQorICAgIGFuZCByZXR1cm5zIHRoZSByZXN1bHQuIEFmdGVyIHRoaXMgdGhlIGZpbmFsaXplciBpcyBkZWFkLCBhbmQKKyAgICBjYWxsaW5nIGl0IGp1c3QgcmV0dXJucyBOb25lLgorCisgICAgV2hlbiB0aGUgcHJvZ3JhbSBleGl0cyBhbnkgcmVtYWluaW5nIGZpbmFsaXplcnMgZm9yIHdoaWNoIHRoZQorICAgIGF0ZXhpdCBhdHRyaWJ1dGUgaXMgdHJ1ZSB3aWxsIGJlIHJ1biBpbiByZXZlcnNlIG9yZGVyIG9mIGNyZWF0aW9uLgorICAgIEJ5IGRlZmF1bHQgYXRleGl0IGlzIHRydWUuCisgICAgIiIiCisKKyAgICAjIEZpbmFsaXplciBvYmplY3RzIGRvbid0IGhhdmUgYW55IHN0YXRlIG9mIHRoZWlyIG93bi4gIFRoZXkgYXJlCisgICAgIyBqdXN0IHVzZWQgYXMga2V5cyB0byBsb29rdXAgX0luZm8gb2JqZWN0cyBpbiB0aGUgcmVnaXN0cnkuICBUaGlzCisgICAgIyBlbnN1cmVzIHRoYXQgdGhleSBjYW5ub3QgYmUgcGFydCBvZiBhIHJlZi1jeWNsZS4KKworICAgIF9fc2xvdHNfXyA9ICgpCisgICAgX3JlZ2lzdHJ5ID0ge30KKyAgICBfc2h1dGRvd24gPSBGYWxzZQorICAgIF9pbmRleF9pdGVyID0gaXRlcnRvb2xzLmNvdW50KCkKKyAgICBfZGlydHkgPSBGYWxzZQorCisgICAgY2xhc3MgX0luZm86CisgICAgICAgIF9fc2xvdHNfXyA9ICgid2Vha3JlZiIsICJmdW5jIiwgImFyZ3MiLCAia3dhcmdzIiwgImF0ZXhpdCIsICJpbmRleCIpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb2JqLCBmdW5jLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBpbmZvID0gc2VsZi5fSW5mbygpCisgICAgICAgIGluZm8ud2Vha3JlZiA9IHJlZihvYmosIHNlbGYpCisgICAgICAgIGluZm8uZnVuYyA9IGZ1bmMKKyAgICAgICAgaW5mby5hcmdzID0gYXJncworICAgICAgICBpbmZvLmt3YXJncyA9IGt3YXJncyBvciBOb25lCisgICAgICAgIGluZm8uYXRleGl0ID0gVHJ1ZQorICAgICAgICBpbmZvLmluZGV4ID0gbmV4dChzZWxmLl9pbmRleF9pdGVyKQorICAgICAgICBzZWxmLl9yZWdpc3RyeVtzZWxmXSA9IGluZm8KKyAgICAgICAgZmluYWxpemUuX2RpcnR5ID0gVHJ1ZQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIF89Tm9uZSk6CisgICAgICAgICIiIklmIGFsaXZlIHRoZW4gbWFyayBhcyBkZWFkIGFuZCByZXR1cm4gZnVuYygqYXJncywgKiprd2FyZ3MpOworICAgICAgICBvdGhlcndpc2UgcmV0dXJuIE5vbmUiIiIKKyAgICAgICAgaW5mbyA9IHNlbGYuX3JlZ2lzdHJ5LnBvcChzZWxmLCBOb25lKQorICAgICAgICBpZiBpbmZvIGFuZCBub3Qgc2VsZi5fc2h1dGRvd246CisgICAgICAgICAgICByZXR1cm4gaW5mby5mdW5jKCppbmZvLmFyZ3MsICoqKGluZm8ua3dhcmdzIG9yIHt9KSkKKworICAgIGRlZiBkZXRhY2goc2VsZik6CisgICAgICAgICIiIklmIGFsaXZlIHRoZW4gbWFyayBhcyBkZWFkIGFuZCByZXR1cm4gKG9iaiwgZnVuYywgYXJncywga3dhcmdzKTsKKyAgICAgICAgb3RoZXJ3aXNlIHJldHVybiBOb25lIiIiCisgICAgICAgIGluZm8gPSBzZWxmLl9yZWdpc3RyeS5nZXQoc2VsZikKKyAgICAgICAgb2JqID0gaW5mbyBhbmQgaW5mby53ZWFrcmVmKCkKKyAgICAgICAgaWYgb2JqIGlzIG5vdCBOb25lIGFuZCBzZWxmLl9yZWdpc3RyeS5wb3Aoc2VsZiwgTm9uZSk6CisgICAgICAgICAgICByZXR1cm4gKG9iaiwgaW5mby5mdW5jLCBpbmZvLmFyZ3MsIGluZm8ua3dhcmdzIG9yIHt9KQorCisgICAgZGVmIHBlZWsoc2VsZik6CisgICAgICAgICIiIklmIGFsaXZlIHRoZW4gcmV0dXJuIChvYmosIGZ1bmMsIGFyZ3MsIGt3YXJncyk7CisgICAgICAgIG90aGVyd2lzZSByZXR1cm4gTm9uZSIiIgorICAgICAgICBpbmZvID0gc2VsZi5fcmVnaXN0cnkuZ2V0KHNlbGYpCisgICAgICAgIG9iaiA9IGluZm8gYW5kIGluZm8ud2Vha3JlZigpCisgICAgICAgIGlmIG9iaiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiAob2JqLCBpbmZvLmZ1bmMsIGluZm8uYXJncywgaW5mby5rd2FyZ3Mgb3Ige30pCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgYWxpdmUoc2VsZik6CisgICAgICAgICIiIldoZXRoZXIgZmluYWxpemVyIGlzIGFsaXZlIiIiCisgICAgICAgIHJldHVybiBzZWxmIGluIHNlbGYuX3JlZ2lzdHJ5CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgYXRleGl0KHNlbGYpOgorICAgICAgICAiIiJXaGV0aGVyIGZpbmFsaXplciBzaG91bGQgYmUgY2FsbGVkIGF0IGV4aXQiIiIKKyAgICAgICAgaW5mbyA9IHNlbGYuX3JlZ2lzdHJ5LmdldChzZWxmKQorICAgICAgICByZXR1cm4gYm9vbChpbmZvKSBhbmQgaW5mby5hdGV4aXQKKworICAgIEBhdGV4aXQuc2V0dGVyCisgICAgZGVmIGF0ZXhpdChzZWxmLCB2YWx1ZSk6CisgICAgICAgIGluZm8gPSBzZWxmLl9yZWdpc3RyeS5nZXQoc2VsZikKKyAgICAgICAgaWYgaW5mbzoKKyAgICAgICAgICAgIGluZm8uYXRleGl0ID0gYm9vbCh2YWx1ZSkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgaW5mbyA9IHNlbGYuX3JlZ2lzdHJ5LmdldChzZWxmKQorICAgICAgICBvYmogPSBpbmZvIGFuZCBpbmZvLndlYWtyZWYoKQorICAgICAgICBpZiBvYmogaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiAnPCVzIG9iamVjdCBhdCAlI3g7IGRlYWQ+JyAlICh0eXBlKHNlbGYpLl9fbmFtZV9fLCBpZChzZWxmKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAnPCVzIG9iamVjdCBhdCAlI3g7IGZvciAlciBhdCAlI3g+JyAlIFwKKyAgICAgICAgICAgICAgICAodHlwZShzZWxmKS5fX25hbWVfXywgaWQoc2VsZiksIHR5cGUob2JqKS5fX25hbWVfXywgaWQob2JqKSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfc2VsZWN0X2Zvcl9leGl0KGNscyk6CisgICAgICAgICMgUmV0dXJuIGxpdmUgZmluYWxpemVycyBtYXJrZWQgZm9yIGV4aXQsIG9sZGVzdCBmaXJzdAorICAgICAgICBMID0gWyhmLGkpIGZvciAoZixpKSBpbiBjbHMuX3JlZ2lzdHJ5Lml0ZW1zKCkgaWYgaS5hdGV4aXRdCisgICAgICAgIEwuc29ydChrZXk9bGFtYmRhIGl0ZW06aXRlbVsxXS5pbmRleCkKKyAgICAgICAgcmV0dXJuIFtmIGZvciAoZixpKSBpbiBMXQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9leGl0ZnVuYyhjbHMpOgorICAgICAgICAjIEF0IHNodXRkb3duIGludm9rZSBmaW5hbGl6ZXJzIGZvciB3aGljaCBhdGV4aXQgaXMgdHJ1ZS4KKyAgICAgICAgIyBUaGlzIGlzIGNhbGxlZCBvbmNlIGFsbCBvdGhlciBub24tZGFlbW9uaWMgdGhyZWFkcyBoYXZlIGJlZW4KKyAgICAgICAgIyBqb2luZWQuCisgICAgICAgIHJlZW5hYmxlX2djID0gRmFsc2UKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgY2xzLl9yZWdpc3RyeToKKyAgICAgICAgICAgICAgICBpbXBvcnQgZ2MKKyAgICAgICAgICAgICAgICBpZiBnYy5pc2VuYWJsZWQoKToKKyAgICAgICAgICAgICAgICAgICAgcmVlbmFibGVfZ2MgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGdjLmRpc2FibGUoKQorICAgICAgICAgICAgICAgIHBlbmRpbmcgPSBOb25lCisgICAgICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICAgICAgaWYgcGVuZGluZyBpcyBOb25lIG9yIGZpbmFsaXplLl9kaXJ0eToKKyAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmcgPSBjbHMuX3NlbGVjdF9mb3JfZXhpdCgpCisgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbGl6ZS5fZGlydHkgPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICBpZiBub3QgcGVuZGluZzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgIGYgPSBwZW5kaW5nLnBvcCgpCisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgZ2MgaXMgZGlzYWJsZWQsIHNvIChhc3N1bWluZyBubyBkYWVtb25pYworICAgICAgICAgICAgICAgICAgICAgICAgIyB0aHJlYWRzKSB0aGUgZm9sbG93aW5nIGlzIHRoZSBvbmx5IGxpbmUgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICMgdGhpcyBmdW5jdGlvbiB3aGljaCBtaWdodCB0cmlnZ2VyIGNyZWF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAjIG9mIGEgbmV3IGZpbmFsaXplcgorICAgICAgICAgICAgICAgICAgICAgICAgZigpCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICBzeXMuZXhjZXB0aG9vaygqc3lzLmV4Y19pbmZvKCkpCisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmIG5vdCBpbiBjbHMuX3JlZ2lzdHJ5CisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAjIHByZXZlbnQgYW55IG1vcmUgZmluYWxpemVycyBmcm9tIGV4ZWN1dGluZyBkdXJpbmcgc2h1dGRvd24KKyAgICAgICAgICAgIGZpbmFsaXplLl9zaHV0ZG93biA9IFRydWUKKyAgICAgICAgICAgIGlmIHJlZW5hYmxlX2djOgorICAgICAgICAgICAgICAgIGdjLmVuYWJsZSgpCisKK2F0ZXhpdC5yZWdpc3RlcihmaW5hbGl6ZS5fZXhpdGZ1bmMpCmRpZmYgLS1naXQgYS9MaWIvd2ViYnJvd3Nlci5weSBiL0xpYi93ZWJicm93c2VyLnB5CmluZGV4IDk0NWVkYTQuLjI3MTRiZDEgMTAwNjQ0Ci0tLSBhL0xpYi93ZWJicm93c2VyLnB5CisrKyBiL0xpYi93ZWJicm93c2VyLnB5CkBAIC01LDYgKzUsNyBAQAogaW1wb3J0IGlvCiBpbXBvcnQgb3MKIGltcG9ydCBzaGxleAoraW1wb3J0IHNodXRpbAogaW1wb3J0IHN5cwogaW1wb3J0IHN0YXQKIGltcG9ydCBzdWJwcm9jZXNzCkBAIC04Myw3ICs4NCw3IEBACiAKICAgICAiIiIKICAgICBjbWQgPSBicm93c2VyLnNwbGl0KClbMF0KLSAgICBpZiBub3QgX2lzY29tbWFuZChjbWQpOgorICAgIGlmIG5vdCBzaHV0aWwud2hpY2goY21kKToKICAgICAgICAgcmV0dXJuIFtOb25lLCBOb25lXQogICAgIG5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGNtZCkKICAgICB0cnk6CkBAIC0xMDIsMzggKzEwMyw2IEBACiAgICAgcmV0dXJuIFtOb25lLCBOb25lXQogCiAKLWlmIHN5cy5wbGF0Zm9ybVs6M10gPT0gIndpbiI6Ci0gICAgZGVmIF9pc2V4ZWN1dGFibGUoY21kKToKLSAgICAgICAgY21kID0gY21kLmxvd2VyKCkKLSAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoY21kKSBhbmQgY21kLmVuZHN3aXRoKCgiLmV4ZSIsICIuYmF0IikpOgotICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgZm9yIGV4dCBpbiAiLmV4ZSIsICIuYmF0IjoKLSAgICAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKGNtZCArIGV4dCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgcmV0dXJuIEZhbHNlCi1lbHNlOgotICAgIGRlZiBfaXNleGVjdXRhYmxlKGNtZCk6Ci0gICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKGNtZCk6Ci0gICAgICAgICAgICBtb2RlID0gb3Muc3RhdChjbWQpW3N0YXQuU1RfTU9ERV0KLSAgICAgICAgICAgIGlmIG1vZGUgJiBzdGF0LlNfSVhVU1Igb3IgbW9kZSAmIHN0YXQuU19JWEdSUCBvciBtb2RlICYgc3RhdC5TX0lYT1RIOgotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHJldHVybiBGYWxzZQotCi1kZWYgX2lzY29tbWFuZChjbWQpOgotICAgICIiIlJldHVybiBUcnVlIGlmIGNtZCBpcyBleGVjdXRhYmxlIG9yIGNhbiBiZSBmb3VuZCBvbiB0aGUgZXhlY3V0YWJsZQotICAgIHNlYXJjaCBwYXRoLiIiIgotICAgIGlmIF9pc2V4ZWN1dGFibGUoY21kKToKLSAgICAgICAgcmV0dXJuIFRydWUKLSAgICBwYXRoID0gb3MuZW52aXJvbi5nZXQoIlBBVEgiKQotICAgIGlmIG5vdCBwYXRoOgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICBmb3IgZCBpbiBwYXRoLnNwbGl0KG9zLnBhdGhzZXApOgotICAgICAgICBleGUgPSBvcy5wYXRoLmpvaW4oZCwgY21kKQotICAgICAgICBpZiBfaXNleGVjdXRhYmxlKGV4ZSk6Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgIHJldHVybiBGYWxzZQotCi0KICMgR2VuZXJhbCBwYXJlbnQgY2xhc3NlcwogCiBjbGFzcyBCYXNlQnJvd3NlcihvYmplY3QpOgpAQCAtNDE4LDExICszODcsMTEgQEAKICAgICAgICAgICAgICMgbmVlZCB0byBQSU5HIGVhY2ggb25lIHVudGlsIHdlIGZpbmQgb25lIHRoYXQncyBsaXZlCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgcy5jb25uZWN0KGZuKQotICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgICMgbm8gZ29vZDsgYXR0ZW1wdCB0byBjbGVhbiBpdCBvdXQsIGJ1dCBkb24ndCBmYWlsOgogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgb3MudW5saW5rKGZuKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJldHVybiBzCkBAIC00NTMsMjIgKzQyMiwyMiBAQAogZGVmIHJlZ2lzdGVyX1hfYnJvd3NlcnMoKToKIAogICAgICMgdXNlIHhkZy1vcGVuIGlmIGFyb3VuZAotICAgIGlmIF9pc2NvbW1hbmQoInhkZy1vcGVuIik6CisgICAgaWYgc2h1dGlsLndoaWNoKCJ4ZGctb3BlbiIpOgogICAgICAgICByZWdpc3RlcigieGRnLW9wZW4iLCBOb25lLCBCYWNrZ3JvdW5kQnJvd3NlcigieGRnLW9wZW4iKSkKIAogICAgICMgVGhlIGRlZmF1bHQgR05PTUUzIGJyb3dzZXIKLSAgICBpZiAiR05PTUVfREVTS1RPUF9TRVNTSU9OX0lEIiBpbiBvcy5lbnZpcm9uIGFuZCBfaXNjb21tYW5kKCJndmZzLW9wZW4iKToKKyAgICBpZiAiR05PTUVfREVTS1RPUF9TRVNTSU9OX0lEIiBpbiBvcy5lbnZpcm9uIGFuZCBzaHV0aWwud2hpY2goImd2ZnMtb3BlbiIpOgogICAgICAgICByZWdpc3RlcigiZ3Zmcy1vcGVuIiwgTm9uZSwgQmFja2dyb3VuZEJyb3dzZXIoImd2ZnMtb3BlbiIpKQogCiAgICAgIyBUaGUgZGVmYXVsdCBHTk9NRSBicm93c2VyCi0gICAgaWYgIkdOT01FX0RFU0tUT1BfU0VTU0lPTl9JRCIgaW4gb3MuZW52aXJvbiBhbmQgX2lzY29tbWFuZCgiZ25vbWUtb3BlbiIpOgorICAgIGlmICJHTk9NRV9ERVNLVE9QX1NFU1NJT05fSUQiIGluIG9zLmVudmlyb24gYW5kIHNodXRpbC53aGljaCgiZ25vbWUtb3BlbiIpOgogICAgICAgICByZWdpc3RlcigiZ25vbWUtb3BlbiIsIE5vbmUsIEJhY2tncm91bmRCcm93c2VyKCJnbm9tZS1vcGVuIikpCiAKICAgICAjIFRoZSBkZWZhdWx0IEtERSBicm93c2VyCi0gICAgaWYgIktERV9GVUxMX1NFU1NJT04iIGluIG9zLmVudmlyb24gYW5kIF9pc2NvbW1hbmQoImtmbWNsaWVudCIpOgorICAgIGlmICJLREVfRlVMTF9TRVNTSU9OIiBpbiBvcy5lbnZpcm9uIGFuZCBzaHV0aWwud2hpY2goImtmbWNsaWVudCIpOgogICAgICAgICByZWdpc3Rlcigia2ZtY2xpZW50IiwgS29ucXVlcm9yLCBLb25xdWVyb3IoImtmbWNsaWVudCIpKQogCi0gICAgaWYgX2lzY29tbWFuZCgieC13d3ctYnJvd3NlciIpOgorICAgIGlmIHNodXRpbC53aGljaCgieC13d3ctYnJvd3NlciIpOgogICAgICAgICByZWdpc3RlcigieC13d3ctYnJvd3NlciIsIE5vbmUsIEJhY2tncm91bmRCcm93c2VyKCJ4LXd3dy1icm93c2VyIikpCiAKICAgICAjIFRoZSBNb3ppbGxhL05ldHNjYXBlIGJyb3dzZXJzCkBAIC00NzYsMzkgKzQ0NSwzOSBAQAogICAgICAgICAgICAgICAgICAgICAibW96aWxsYS1maXJlYmlyZCIsICJmaXJlYmlyZCIsCiAgICAgICAgICAgICAgICAgICAgICJpY2V3ZWFzZWwiLCAiaWNlYXBlIiwKICAgICAgICAgICAgICAgICAgICAgInNlYW1vbmtleSIsICJtb3ppbGxhIiwgIm5ldHNjYXBlIik6Ci0gICAgICAgIGlmIF9pc2NvbW1hbmQoYnJvd3Nlcik6CisgICAgICAgIGlmIHNodXRpbC53aGljaChicm93c2VyKToKICAgICAgICAgICAgIHJlZ2lzdGVyKGJyb3dzZXIsIE5vbmUsIE1vemlsbGEoYnJvd3NlcikpCiAKICAgICAjIEtvbnF1ZXJvci9rZm0sIHRoZSBLREUgYnJvd3Nlci4KLSAgICBpZiBfaXNjb21tYW5kKCJrZm0iKToKKyAgICBpZiBzaHV0aWwud2hpY2goImtmbSIpOgogICAgICAgICByZWdpc3Rlcigia2ZtIiwgS29ucXVlcm9yLCBLb25xdWVyb3IoImtmbSIpKQotICAgIGVsaWYgX2lzY29tbWFuZCgia29ucXVlcm9yIik6CisgICAgZWxpZiBzaHV0aWwud2hpY2goImtvbnF1ZXJvciIpOgogICAgICAgICByZWdpc3Rlcigia29ucXVlcm9yIiwgS29ucXVlcm9yLCBLb25xdWVyb3IoImtvbnF1ZXJvciIpKQogCiAgICAgIyBHbm9tZSdzIEdhbGVvbiBhbmQgRXBpcGhhbnkKICAgICBmb3IgYnJvd3NlciBpbiAoImdhbGVvbiIsICJlcGlwaGFueSIpOgotICAgICAgICBpZiBfaXNjb21tYW5kKGJyb3dzZXIpOgorICAgICAgICBpZiBzaHV0aWwud2hpY2goYnJvd3Nlcik6CiAgICAgICAgICAgICByZWdpc3Rlcihicm93c2VyLCBOb25lLCBHYWxlb24oYnJvd3NlcikpCiAKICAgICAjIFNraXBzdG9uZSwgYW5vdGhlciBHdGsvTW96aWxsYSBiYXNlZCBicm93c2VyCi0gICAgaWYgX2lzY29tbWFuZCgic2tpcHN0b25lIik6CisgICAgaWYgc2h1dGlsLndoaWNoKCJza2lwc3RvbmUiKToKICAgICAgICAgcmVnaXN0ZXIoInNraXBzdG9uZSIsIE5vbmUsIEJhY2tncm91bmRCcm93c2VyKCJza2lwc3RvbmUiKSkKIAogICAgICMgR29vZ2xlIENocm9tZS9DaHJvbWl1bSBicm93c2VycwogICAgIGZvciBicm93c2VyIGluICgiZ29vZ2xlLWNocm9tZSIsICJjaHJvbWUiLCAiY2hyb21pdW0iLCAiY2hyb21pdW0tYnJvd3NlciIpOgotICAgICAgICBpZiBfaXNjb21tYW5kKGJyb3dzZXIpOgorICAgICAgICBpZiBzaHV0aWwud2hpY2goYnJvd3Nlcik6CiAgICAgICAgICAgICByZWdpc3Rlcihicm93c2VyLCBOb25lLCBDaHJvbWUoYnJvd3NlcikpCiAKICAgICAjIE9wZXJhLCBxdWl0ZSBwb3B1bGFyCi0gICAgaWYgX2lzY29tbWFuZCgib3BlcmEiKToKKyAgICBpZiBzaHV0aWwud2hpY2goIm9wZXJhIik6CiAgICAgICAgIHJlZ2lzdGVyKCJvcGVyYSIsIE5vbmUsIE9wZXJhKCJvcGVyYSIpKQogCiAgICAgIyBOZXh0LCBNb3NhaWMgLS0gb2xkIGJ1dCBzdGlsbCBpbiB1c2UuCi0gICAgaWYgX2lzY29tbWFuZCgibW9zYWljIik6CisgICAgaWYgc2h1dGlsLndoaWNoKCJtb3NhaWMiKToKICAgICAgICAgcmVnaXN0ZXIoIm1vc2FpYyIsIE5vbmUsIEJhY2tncm91bmRCcm93c2VyKCJtb3NhaWMiKSkKIAogICAgICMgR3JhaWwsIHRoZSBQeXRob24gYnJvd3Nlci4gRG9lcyBhbnlib2R5IHN0aWxsIHVzZSBpdD8KLSAgICBpZiBfaXNjb21tYW5kKCJncmFpbCIpOgorICAgIGlmIHNodXRpbC53aGljaCgiZ3JhaWwiKToKICAgICAgICAgcmVnaXN0ZXIoImdyYWlsIiwgR3JhaWwsIE5vbmUpCiAKICMgUHJlZmVyIFggYnJvd3NlcnMgaWYgcHJlc2VudApAQCAtNTE3LDE4ICs0ODYsMTggQEAKIAogIyBBbHNvIHRyeSBjb25zb2xlIGJyb3dzZXJzCiBpZiBvcy5lbnZpcm9uLmdldCgiVEVSTSIpOgotICAgIGlmIF9pc2NvbW1hbmQoInd3dy1icm93c2VyIik6CisgICAgaWYgc2h1dGlsLndoaWNoKCJ3d3ctYnJvd3NlciIpOgogICAgICAgICByZWdpc3Rlcigid3d3LWJyb3dzZXIiLCBOb25lLCBHZW5lcmljQnJvd3Nlcigid3d3LWJyb3dzZXIiKSkKICAgICAjIFRoZSBMaW5rcy9lbGlua3MgYnJvd3NlcnMgPGh0dHA6Ly9hcnRheC5rYXJsaW4ubWZmLmN1bmkuY3ovfm1pa3VsYXMvbGlua3MvPgotICAgIGlmIF9pc2NvbW1hbmQoImxpbmtzIik6CisgICAgaWYgc2h1dGlsLndoaWNoKCJsaW5rcyIpOgogICAgICAgICByZWdpc3RlcigibGlua3MiLCBOb25lLCBHZW5lcmljQnJvd3NlcigibGlua3MiKSkKLSAgICBpZiBfaXNjb21tYW5kKCJlbGlua3MiKToKKyAgICBpZiBzaHV0aWwud2hpY2goImVsaW5rcyIpOgogICAgICAgICByZWdpc3RlcigiZWxpbmtzIiwgTm9uZSwgRWxpbmtzKCJlbGlua3MiKSkKICAgICAjIFRoZSBMeW54IGJyb3dzZXIgPGh0dHA6Ly9seW54LmlzYy5vcmcvPiwgPGh0dHA6Ly9seW54LmJyb3dzZXIub3JnLz4KLSAgICBpZiBfaXNjb21tYW5kKCJseW54Iik6CisgICAgaWYgc2h1dGlsLndoaWNoKCJseW54Iik6CiAgICAgICAgIHJlZ2lzdGVyKCJseW54IiwgTm9uZSwgR2VuZXJpY0Jyb3dzZXIoImx5bngiKSkKICAgICAjIFRoZSB3M20gYnJvd3NlciA8aHR0cDovL3czbS5zb3VyY2Vmb3JnZS5uZXQvPgotICAgIGlmIF9pc2NvbW1hbmQoInczbSIpOgorICAgIGlmIHNodXRpbC53aGljaCgidzNtIik6CiAgICAgICAgIHJlZ2lzdGVyKCJ3M20iLCBOb25lLCBHZW5lcmljQnJvd3NlcigidzNtIikpCiAKICMKQEAgLTU0MCw3ICs1MDksNyBAQAogICAgICAgICBkZWYgb3BlbihzZWxmLCB1cmwsIG5ldz0wLCBhdXRvcmFpc2U9VHJ1ZSk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgb3Muc3RhcnRmaWxlKHVybCkKLSAgICAgICAgICAgIGV4Y2VwdCBXaW5kb3dzRXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAjIFtFcnJvciAyMl0gTm8gYXBwbGljYXRpb24gaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQKICAgICAgICAgICAgICAgICAjIGZpbGUgZm9yIHRoaXMgb3BlcmF0aW9uOiAnPFVSTD4nCiAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCkBAIC01NTgsNyArNTI3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW50ZXJuZXQgRXhwbG9yZXJcXElFWFBMT1JFLkVYRSIpCiAgICAgZm9yIGJyb3dzZXIgaW4gKCJmaXJlZm94IiwgImZpcmViaXJkIiwgInNlYW1vbmtleSIsICJtb3ppbGxhIiwKICAgICAgICAgICAgICAgICAgICAgIm5ldHNjYXBlIiwgIm9wZXJhIiwgaWV4cGxvcmUpOgotICAgICAgICBpZiBfaXNjb21tYW5kKGJyb3dzZXIpOgorICAgICAgICBpZiBzaHV0aWwud2hpY2goYnJvd3Nlcik6CiAgICAgICAgICAgICByZWdpc3Rlcihicm93c2VyLCBOb25lLCBCYWNrZ3JvdW5kQnJvd3Nlcihicm93c2VyKSkKIAogIwpAQCAtNjQ0LDE3ICs2MTMsNiBAQAogICAgIHJlZ2lzdGVyKCJNYWNPU1giLCBOb25lLCBNYWNPU1hPU0FTY3JpcHQoJ2RlZmF1bHQnKSwgLTEpCiAKIAotIwotIyBQbGF0Zm9ybSBzdXBwb3J0IGZvciBPUy8yCi0jCi0KLWlmIHN5cy5wbGF0Zm9ybVs6M10gPT0gIm9zMiIgYW5kIF9pc2NvbW1hbmQoIm5ldHNjYXBlIik6Ci0gICAgX3RyeW9yZGVyID0gW10KLSAgICBfYnJvd3NlcnMgPSB7fQotICAgIHJlZ2lzdGVyKCJvczJuZXRzY2FwZSIsIE5vbmUsCi0gICAgICAgICAgICAgR2VuZXJpY0Jyb3dzZXIoWyJzdGFydCIsICJuZXRzY2FwZSIsICIlcyJdKSwgLTEpCi0KLQogIyBPSywgbm93IHRoYXQgd2Uga25vdyB3aGF0IHRoZSBkZWZhdWx0IHByZWZlcmVuY2Ugb3JkZXJzIGZvciBlYWNoCiAjIHBsYXRmb3JtIGFyZSwgYWxsb3cgdXNlciB0byBvdmVycmlkZSB0aGVtIHdpdGggdGhlIEJST1dTRVIgdmFyaWFibGUuCiBpZiAiQlJPV1NFUiIgaW4gb3MuZW52aXJvbjoKZGlmZiAtLWdpdCBhL0xpYi94bWwvZG9tL2V4cGF0YnVpbGRlci5weSBiL0xpYi94bWwvZG9tL2V4cGF0YnVpbGRlci5weQppbmRleCBmMDc0YWI5Li44MWUyZGY3IDEwMDY0NAotLS0gYS9MaWIveG1sL2RvbS9leHBhdGJ1aWxkZXIucHkKKysrIGIvTGliL3htbC9kb20vZXhwYXRidWlsZGVyLnB5CkBAIC05MDUsMTEgKzkwNSw4IEBACiAgICAgICAgIGJ1aWxkZXIgPSBFeHBhdEJ1aWxkZXIoKQogCiAgICAgaWYgaXNpbnN0YW5jZShmaWxlLCBzdHIpOgotICAgICAgICBmcCA9IG9wZW4oZmlsZSwgJ3JiJykKLSAgICAgICAgdHJ5OgorICAgICAgICB3aXRoIG9wZW4oZmlsZSwgJ3JiJykgYXMgZnA6CiAgICAgICAgICAgICByZXN1bHQgPSBidWlsZGVyLnBhcnNlRmlsZShmcCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGZwLmNsb3NlKCkKICAgICBlbHNlOgogICAgICAgICByZXN1bHQgPSBidWlsZGVyLnBhcnNlRmlsZShmaWxlKQogICAgIHJldHVybiByZXN1bHQKQEAgLTkzOSwxMSArOTM2LDggQEAKICAgICAgICAgYnVpbGRlciA9IEZyYWdtZW50QnVpbGRlcihjb250ZXh0KQogCiAgICAgaWYgaXNpbnN0YW5jZShmaWxlLCBzdHIpOgotICAgICAgICBmcCA9IG9wZW4oZmlsZSwgJ3JiJykKLSAgICAgICAgdHJ5OgorICAgICAgICB3aXRoIG9wZW4oZmlsZSwgJ3JiJykgYXMgZnA6CiAgICAgICAgICAgICByZXN1bHQgPSBidWlsZGVyLnBhcnNlRmlsZShmcCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGZwLmNsb3NlKCkKICAgICBlbHNlOgogICAgICAgICByZXN1bHQgPSBidWlsZGVyLnBhcnNlRmlsZShmaWxlKQogICAgIHJldHVybiByZXN1bHQKZGlmZiAtLWdpdCBhL0xpYi94bWwvZXRyZWUvRWxlbWVudEluY2x1ZGUucHkgYi9MaWIveG1sL2V0cmVlL0VsZW1lbnRJbmNsdWRlLnB5CmluZGV4IDZjYzFiNDQuLjczZTQ5MWUgMTAwNjQ0Ci0tLSBhL0xpYi94bWwvZXRyZWUvRWxlbWVudEluY2x1ZGUucHkKKysrIGIvTGliL3htbC9ldHJlZS9FbGVtZW50SW5jbHVkZS5weQpAQCAtNzEsOCArNzEsOCBAQAogIyBAcmV0dXJuIFRoZSBleHBhbmRlZCByZXNvdXJjZS4gIElmIHRoZSBwYXJzZSBtb2RlIGlzICJ4bWwiLCB0aGlzCiAjICAgIGlzIGFuIEVsZW1lbnRUcmVlIGluc3RhbmNlLiAgSWYgdGhlIHBhcnNlIG1vZGUgaXMgInRleHQiLCB0aGlzCiAjICAgIGlzIGEgVW5pY29kZSBzdHJpbmcuICBJZiB0aGUgbG9hZGVyIGZhaWxzLCBpdCBjYW4gcmV0dXJuIE5vbmUKLSMgICAgb3IgcmFpc2UgYW4gSU9FcnJvciBleGNlcHRpb24uCi0jIEB0aHJvd3MgSU9FcnJvciBJZiB0aGUgbG9hZGVyIGZhaWxzIHRvIGxvYWQgdGhlIHJlc291cmNlLgorIyAgICBvciByYWlzZSBhbiBPU0Vycm9yIGV4Y2VwdGlvbi4KKyMgQHRocm93cyBPU0Vycm9yIElmIHRoZSBsb2FkZXIgZmFpbHMgdG8gbG9hZCB0aGUgcmVzb3VyY2UuCiAKIGRlZiBkZWZhdWx0X2xvYWRlcihocmVmLCBwYXJzZSwgZW5jb2Rpbmc9Tm9uZSk6CiAgICAgaWYgcGFyc2UgPT0gInhtbCI6CkBAIC05NSw3ICs5NSw3IEBACiAjICAgICB0aGF0IGltcGxlbWVudHMgdGhlIHNhbWUgaW50ZXJmYWNlIGFzIDxiPmRlZmF1bHRfbG9hZGVyPC9iPi4KICMgQHRocm93cyBGYXRhbEluY2x1ZGVFcnJvciBJZiB0aGUgZnVuY3Rpb24gZmFpbHMgdG8gaW5jbHVkZSBhIGdpdmVuCiAjICAgICByZXNvdXJjZSwgb3IgaWYgdGhlIHRyZWUgY29udGFpbnMgbWFsZm9ybWVkIFhJbmNsdWRlIGVsZW1lbnRzLgotIyBAdGhyb3dzIElPRXJyb3IgSWYgdGhlIGZ1bmN0aW9uIGZhaWxzIHRvIGxvYWQgYSBnaXZlbiByZXNvdXJjZS4KKyMgQHRocm93cyBPU0Vycm9yIElmIHRoZSBmdW5jdGlvbiBmYWlscyB0byBsb2FkIGEgZ2l2ZW4gcmVzb3VyY2UuCiAKIGRlZiBpbmNsdWRlKGVsZW0sIGxvYWRlcj1Ob25lKToKICAgICBpZiBsb2FkZXIgaXMgTm9uZToKZGlmZiAtLWdpdCBhL0xpYi94bWwvZXRyZWUvRWxlbWVudFBhdGgucHkgYi9MaWIveG1sL2V0cmVlL0VsZW1lbnRQYXRoLnB5CmluZGV4IDUyZTY1ZjAuLmJmOTg0YjkgMTAwNjQ0Ci0tLSBhL0xpYi94bWwvZXRyZWUvRWxlbWVudFBhdGgucHkKKysrIGIvTGliL3htbC9ldHJlZS9FbGVtZW50UGF0aC5weQpAQCAtMTA1LDE0ICsxMDUsMTIgQEAKIGRlZiBwcmVwYXJlX3N0YXIobmV4dCwgdG9rZW4pOgogICAgIGRlZiBzZWxlY3QoY29udGV4dCwgcmVzdWx0KToKICAgICAgICAgZm9yIGVsZW0gaW4gcmVzdWx0OgotICAgICAgICAgICAgZm9yIGUgaW4gZWxlbToKLSAgICAgICAgICAgICAgICB5aWVsZCBlCisgICAgICAgICAgICB5aWVsZCBmcm9tIGVsZW0KICAgICByZXR1cm4gc2VsZWN0CiAKIGRlZiBwcmVwYXJlX3NlbGYobmV4dCwgdG9rZW4pOgogICAgIGRlZiBzZWxlY3QoY29udGV4dCwgcmVzdWx0KToKLSAgICAgICAgZm9yIGVsZW0gaW4gcmVzdWx0OgotICAgICAgICAgICAgeWllbGQgZWxlbQorICAgICAgICB5aWVsZCBmcm9tIHJlc3VsdAogICAgIHJldHVybiBzZWxlY3QKIAogZGVmIHByZXBhcmVfZGVzY2VuZGFudChuZXh0LCB0b2tlbik6CkBAIC0xNzYsNyArMTc0LDcgQEAKICAgICAgICAgICAgICAgICBpZiBlbGVtLmdldChrZXkpID09IHZhbHVlOgogICAgICAgICAgICAgICAgICAgICB5aWVsZCBlbGVtCiAgICAgICAgIHJldHVybiBzZWxlY3QKLSAgICBpZiBzaWduYXR1cmUgPT0gIi0iIGFuZCBub3QgcmUubWF0Y2goIlxkKyQiLCBwcmVkaWNhdGVbMF0pOgorICAgIGlmIHNpZ25hdHVyZSA9PSAiLSIgYW5kIG5vdCByZS5tYXRjaCgiXC0/XGQrJCIsIHByZWRpY2F0ZVswXSk6CiAgICAgICAgICMgW3RhZ10KICAgICAgICAgdGFnID0gcHJlZGljYXRlWzBdCiAgICAgICAgIGRlZiBzZWxlY3QoY29udGV4dCwgcmVzdWx0KToKQEAgLTE4NCw3ICsxODIsNyBAQAogICAgICAgICAgICAgICAgIGlmIGVsZW0uZmluZCh0YWcpIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgICAgICB5aWVsZCBlbGVtCiAgICAgICAgIHJldHVybiBzZWxlY3QKLSAgICBpZiBzaWduYXR1cmUgPT0gIi09JyIgYW5kIG5vdCByZS5tYXRjaCgiXGQrJCIsIHByZWRpY2F0ZVswXSk6CisgICAgaWYgc2lnbmF0dXJlID09ICItPSciIGFuZCBub3QgcmUubWF0Y2goIlwtP1xkKyQiLCBwcmVkaWNhdGVbMF0pOgogICAgICAgICAjIFt0YWc9J3ZhbHVlJ10KICAgICAgICAgdGFnID0gcHJlZGljYXRlWzBdCiAgICAgICAgIHZhbHVlID0gcHJlZGljYXRlWy0xXQpAQCAtMTk4LDcgKzE5NiwxMCBAQAogICAgIGlmIHNpZ25hdHVyZSA9PSAiLSIgb3Igc2lnbmF0dXJlID09ICItKCkiIG9yIHNpZ25hdHVyZSA9PSAiLSgpLSI6CiAgICAgICAgICMgW2luZGV4XSBvciBbbGFzdCgpXSBvciBbbGFzdCgpLWluZGV4XQogICAgICAgICBpZiBzaWduYXR1cmUgPT0gIi0iOgorICAgICAgICAgICAgIyBbaW5kZXhdCiAgICAgICAgICAgICBpbmRleCA9IGludChwcmVkaWNhdGVbMF0pIC0gMQorICAgICAgICAgICAgaWYgaW5kZXggPCAwOgorICAgICAgICAgICAgICAgIHJhaXNlIFN5bnRheEVycm9yKCJYUGF0aCBwb3NpdGlvbiA+PSAxIGV4cGVjdGVkIikKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGlmIHByZWRpY2F0ZVswXSAhPSAibGFzdCI6CiAgICAgICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3IoInVuc3VwcG9ydGVkIGZ1bmN0aW9uIikKQEAgLTIwNyw2ICsyMDgsOCBAQAogICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGludChwcmVkaWNhdGVbMl0pIC0gMQogICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgogICAgICAgICAgICAgICAgICAgICByYWlzZSBTeW50YXhFcnJvcigidW5zdXBwb3J0ZWQgZXhwcmVzc2lvbiIpCisgICAgICAgICAgICAgICAgaWYgaW5kZXggPiAtMjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3IoIlhQYXRoIG9mZnNldCBmcm9tIGxhc3QoKSBtdXN0IGJlIG5lZ2F0aXZlIikKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgaW5kZXggPSAtMQogICAgICAgICBkZWYgc2VsZWN0KGNvbnRleHQsIHJlc3VsdCk6CmRpZmYgLS1naXQgYS9MaWIveG1sL2V0cmVlL0VsZW1lbnRUcmVlLnB5IGIvTGliL3htbC9ldHJlZS9FbGVtZW50VHJlZS5weQppbmRleCA0YzczMzAzLi5lZGYyNTgxIDEwMDY0NAotLS0gYS9MaWIveG1sL2V0cmVlL0VsZW1lbnRUcmVlLnB5CisrKyBiL0xpYi94bWwvZXRyZWUvRWxlbWVudFRyZWUucHkKQEAgLTEsMjggKzEsNDcgQEAKKyIiIkxpZ2h0d2VpZ2h0IFhNTCBzdXBwb3J0IGZvciBQeXRob24uCisKKyBYTUwgaXMgYW4gaW5oZXJlbnRseSBoaWVyYXJjaGljYWwgZGF0YSBmb3JtYXQsIGFuZCB0aGUgbW9zdCBuYXR1cmFsIHdheSB0bworIHJlcHJlc2VudCBpdCBpcyB3aXRoIGEgdHJlZS4gIFRoaXMgbW9kdWxlIGhhcyB0d28gY2xhc3NlcyBmb3IgdGhpcyBwdXJwb3NlOgorCisgICAgMS4gRWxlbWVudFRyZWUgcmVwcmVzZW50cyB0aGUgd2hvbGUgWE1MIGRvY3VtZW50IGFzIGEgdHJlZSBhbmQKKworICAgIDIuIEVsZW1lbnQgcmVwcmVzZW50cyBhIHNpbmdsZSBub2RlIGluIHRoaXMgdHJlZS4KKworIEludGVyYWN0aW9ucyB3aXRoIHRoZSB3aG9sZSBkb2N1bWVudCAocmVhZGluZyBhbmQgd3JpdGluZyB0by9mcm9tIGZpbGVzKSBhcmUKKyB1c3VhbGx5IGRvbmUgb24gdGhlIEVsZW1lbnRUcmVlIGxldmVsLiAgSW50ZXJhY3Rpb25zIHdpdGggYSBzaW5nbGUgWE1MIGVsZW1lbnQKKyBhbmQgaXRzIHN1Yi1lbGVtZW50cyBhcmUgZG9uZSBvbiB0aGUgRWxlbWVudCBsZXZlbC4KKworIEVsZW1lbnQgaXMgYSBmbGV4aWJsZSBjb250YWluZXIgb2JqZWN0IGRlc2lnbmVkIHRvIHN0b3JlIGhpZXJhcmNoaWNhbCBkYXRhCisgc3RydWN0dXJlcyBpbiBtZW1vcnkuIEl0IGNhbiBiZSBkZXNjcmliZWQgYXMgYSBjcm9zcyBiZXR3ZWVuIGEgbGlzdCBhbmQgYQorIGRpY3Rpb25hcnkuICBFYWNoIEVsZW1lbnQgaGFzIGEgbnVtYmVyIG9mIHByb3BlcnRpZXMgYXNzb2NpYXRlZCB3aXRoIGl0OgorCisgICAgJ3RhZycgLSBhIHN0cmluZyBjb250YWluaW5nIHRoZSBlbGVtZW50J3MgbmFtZS4KKworICAgICdhdHRyaWJ1dGVzJyAtIGEgUHl0aG9uIGRpY3Rpb25hcnkgc3RvcmluZyB0aGUgZWxlbWVudCdzIGF0dHJpYnV0ZXMuCisKKyAgICAndGV4dCcgLSBhIHN0cmluZyBjb250YWluaW5nIHRoZSBlbGVtZW50J3MgdGV4dCBjb250ZW50LgorCisgICAgJ3RhaWwnIC0gYW4gb3B0aW9uYWwgc3RyaW5nIGNvbnRhaW5pbmcgdGV4dCBhZnRlciB0aGUgZWxlbWVudCdzIGVuZCB0YWcuCisKKyAgICBBbmQgYSBudW1iZXIgb2YgY2hpbGQgZWxlbWVudHMgc3RvcmVkIGluIGEgUHl0aG9uIHNlcXVlbmNlLgorCisgVG8gY3JlYXRlIGFuIGVsZW1lbnQgaW5zdGFuY2UsIHVzZSB0aGUgRWxlbWVudCBjb25zdHJ1Y3RvciwKKyBvciB0aGUgU3ViRWxlbWVudCBmYWN0b3J5IGZ1bmN0aW9uLgorCisgWW91IGNhbiBhbHNvIHVzZSB0aGUgRWxlbWVudFRyZWUgY2xhc3MgdG8gd3JhcCBhbiBlbGVtZW50IHN0cnVjdHVyZQorIGFuZCBjb252ZXJ0IGl0IHRvIGFuZCBmcm9tIFhNTC4KKworIiIiCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgTGljZW5zZWQgdG8gUFNGIHVuZGVyIGEgQ29udHJpYnV0b3IgQWdyZWVtZW50LgorIyBTZWUgaHR0cDovL3d3dy5weXRob24ub3JnL3BzZi9saWNlbnNlIGZvciBsaWNlbnNpbmcgZGV0YWlscy4KICMKICMgRWxlbWVudFRyZWUKLSMgJElkOiBFbGVtZW50VHJlZS5weSAzNDQwIDIwMDgtMDctMTggMTQ6NDU6MDFaIGZyZWRyaWsgJAotIwotIyBsaWdodC13ZWlnaHQgWE1MIHN1cHBvcnQgZm9yIFB5dGhvbiAyLjMgYW5kIGxhdGVyLgotIwotIyBoaXN0b3J5IChzaW5jZSAxLjIuNik6Ci0jIDIwMDUtMTEtMTIgZmwgICBhZGRlZCB0b3N0cmluZ2xpc3QvZnJvbXN0cmluZ2xpc3QgaGVscGVycwotIyAyMDA2LTA3LTA1IGZsICAgbWVyZ2VkIGluIHNlbGVjdGVkIGNoYW5nZXMgZnJvbSB0aGUgMS4zIHNhbmRib3gKLSMgMjAwNi0wNy0wNSBmbCAgIHJlbW92ZWQgc3VwcG9ydCBmb3IgMi4xIGFuZCBlYXJsaWVyCi0jIDIwMDctMDYtMjEgZmwgICBhZGRlZCBkZXByZWNhdGlvbi9mdXR1cmUgd2FybmluZ3MKLSMgMjAwNy0wOC0yNSBmbCAgIGFkZGVkIGRvY3R5cGUgaG9vaywgYWRkZWQgcGFyc2VyIHZlcnNpb24gYXR0cmlidXRlIGV0YwotIyAyMDA3LTA4LTI2IGZsICAgYWRkZWQgbmV3IHNlcmlhbGl6ZXIgY29kZSAoYmV0dGVyIG5hbWVzcGFjZSBoYW5kbGluZywgZXRjKQotIyAyMDA3LTA4LTI3IGZsICAgd2FybiBmb3IgYnJva2VuIC90YWcgc2VhcmNoZXMgb24gdHJlZSBsZXZlbAotIyAyMDA3LTA5LTAyIGZsICAgYWRkZWQgaHRtbC90ZXh0IG1ldGhvZHMgdG8gc2VyaWFsaXplciAoZXhwZXJpbWVudGFsKQotIyAyMDA3LTA5LTA1IGZsICAgYWRkZWQgbWV0aG9kIGFyZ3VtZW50IHRvIHRvc3RyaW5nL3Rvc3RyaW5nbGlzdAotIyAyMDA3LTA5LTA2IGZsICAgaW1wcm92ZWQgZXJyb3IgaGFuZGxpbmcKLSMgMjAwNy0wOS0xMyBmbCAgIGFkZGVkIGl0ZXJ0ZXh0LCBpdGVyZmluZDsgYXNzb3J0ZWQgY2xlYW51cHMKLSMgMjAwNy0xMi0xNSBmbCAgIGFkZGVkIEMxNE4gaG9va3MsIGNvcHkgbWV0aG9kIChleHBlcmltZW50YWwpCi0jCiAjIENvcHlyaWdodCAoYykgMTk5OS0yMDA4IGJ5IEZyZWRyaWsgTHVuZGguICBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBmcmVkcmlrQHB5dGhvbndhcmUuY29tCiAjIGh0dHA6Ly93d3cucHl0aG9ud2FyZS5jb20KLSMKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgVGhlIEVsZW1lbnRUcmVlIHRvb2xraXQgaXMKICMKQEAgLTUxLDkgKzcwLDYgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRS4KICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIyBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBDb250cmlidXRvciBBZ3JlZW1lbnQuCi0jIFNlZSBodHRwOi8vd3d3LnB5dGhvbi5vcmcvcHNmL2xpY2Vuc2UgZm9yIGxpY2Vuc2luZyBkZXRhaWxzLgotCiBfX2FsbF9fID0gWwogICAgICMgcHVibGljIHN5bWJvbHMKICAgICAiQ29tbWVudCIsCkBAIC02OSwzNCArODUsMTIgQEAKICAgICAiVHJlZUJ1aWxkZXIiLAogICAgICJWRVJTSU9OIiwKICAgICAiWE1MIiwgIlhNTElEIiwKLSAgICAiWE1MUGFyc2VyIiwgIlhNTFRyZWVCdWlsZGVyIiwKKyAgICAiWE1MUGFyc2VyIiwKICAgICAicmVnaXN0ZXJfbmFtZXNwYWNlIiwKICAgICBdCiAKIFZFUlNJT04gPSAiMS4zLjAiCiAKLSMjCi0jIFRoZSA8Yj5FbGVtZW50PC9iPiB0eXBlIGlzIGEgZmxleGlibGUgY29udGFpbmVyIG9iamVjdCwgZGVzaWduZWQgdG8KLSMgc3RvcmUgaGllcmFyY2hpY2FsIGRhdGEgc3RydWN0dXJlcyBpbiBtZW1vcnkuIFRoZSB0eXBlIGNhbiBiZQotIyBkZXNjcmliZWQgYXMgYSBjcm9zcyBiZXR3ZWVuIGEgbGlzdCBhbmQgYSBkaWN0aW9uYXJ5LgotIyA8cD4KLSMgRWFjaCBlbGVtZW50IGhhcyBhIG51bWJlciBvZiBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCBpdDoKLSMgPHVsPgotIyA8bGk+YSA8aT50YWc8L2k+LiBUaGlzIGlzIGEgc3RyaW5nIGlkZW50aWZ5aW5nIHdoYXQga2luZCBvZiBkYXRhCi0jIHRoaXMgZWxlbWVudCByZXByZXNlbnRzICh0aGUgZWxlbWVudCB0eXBlLCBpbiBvdGhlciB3b3JkcykuPC9saT4KLSMgPGxpPmEgbnVtYmVyIG9mIDxpPmF0dHJpYnV0ZXM8L2k+LCBzdG9yZWQgaW4gYSBQeXRob24gZGljdGlvbmFyeS48L2xpPgotIyA8bGk+YSA8aT50ZXh0PC9pPiBzdHJpbmcuPC9saT4KLSMgPGxpPmFuIG9wdGlvbmFsIDxpPnRhaWw8L2k+IHN0cmluZy48L2xpPgotIyA8bGk+YSBudW1iZXIgb2YgPGk+Y2hpbGQgZWxlbWVudHM8L2k+LCBzdG9yZWQgaW4gYSBQeXRob24gc2VxdWVuY2U8L2xpPgotIyA8L3VsPgotIwotIyBUbyBjcmVhdGUgYW4gZWxlbWVudCBpbnN0YW5jZSwgdXNlIHRoZSB7QGxpbmsgI0VsZW1lbnR9IGNvbnN0cnVjdG9yCi0jIG9yIHRoZSB7QGxpbmsgI1N1YkVsZW1lbnR9IGZhY3RvcnkgZnVuY3Rpb24uCi0jIDxwPgotIyBUaGUge0BsaW5rICNFbGVtZW50VHJlZX0gY2xhc3MgY2FuIGJlIHVzZWQgdG8gd3JhcCBhbiBlbGVtZW50Ci0jIHN0cnVjdHVyZSwgYW5kIGNvbnZlcnQgaXQgZnJvbSBhbmQgdG8gWE1MLgotIyMKLQogaW1wb3J0IHN5cwogaW1wb3J0IHJlCiBpbXBvcnQgd2FybmluZ3MKQEAgLTEwNiw4MSArMTAwLDY4IEBACiBmcm9tIC4gaW1wb3J0IEVsZW1lbnRQYXRoCiAKIAotIyMKLSMgUGFyc2VyIGVycm9yLiAgVGhpcyBpcyBhIHN1YmNsYXNzIG9mIDxiPlN5bnRheEVycm9yPC9iPi4KLSMgPHA+Ci0jIEluIGFkZGl0aW9uIHRvIHRoZSBleGNlcHRpb24gdmFsdWUsIGFuIGV4Y2VwdGlvbiBpbnN0YW5jZSBjb250YWlucyBhCi0jIHNwZWNpZmljIGV4Y2VwdGlvbiBjb2RlIGluIHRoZSA8Yj5jb2RlPC9iPiBhdHRyaWJ1dGUsIGFuZCB0aGUgbGluZSBhbmQKLSMgY29sdW1uIG9mIHRoZSBlcnJvciBpbiB0aGUgPGI+cG9zaXRpb248L2I+IGF0dHJpYnV0ZS4KLQogY2xhc3MgUGFyc2VFcnJvcihTeW50YXhFcnJvcik6CisgICAgIiIiQW4gZXJyb3Igd2hlbiBwYXJzaW5nIGFuIFhNTCBkb2N1bWVudC4KKworICAgIEluIGFkZGl0aW9uIHRvIGl0cyBleGNlcHRpb24gdmFsdWUsIGEgUGFyc2VFcnJvciBjb250YWlucworICAgIHR3byBleHRyYSBhdHRyaWJ1dGVzOgorICAgICAgICAnY29kZScgICAgIC0gdGhlIHNwZWNpZmljIGV4Y2VwdGlvbiBjb2RlCisgICAgICAgICdwb3NpdGlvbicgLSB0aGUgbGluZSBhbmQgY29sdW1uIG9mIHRoZSBlcnJvcgorCisgICAgIiIiCiAgICAgcGFzcwogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMjCi0jIENoZWNrcyBpZiBhbiBvYmplY3QgYXBwZWFycyB0byBiZSBhIHZhbGlkIGVsZW1lbnQgb2JqZWN0LgotIwotIyBAcGFyYW0gQW4gZWxlbWVudCBpbnN0YW5jZS4KLSMgQHJldHVybiBBIHRydWUgdmFsdWUgaWYgdGhpcyBpcyBhbiBlbGVtZW50IG9iamVjdC4KLSMgQGRlZnJldHVybiBmbGFnCiAKIGRlZiBpc2VsZW1lbnQoZWxlbWVudCk6Ci0gICAgIyBGSVhNRTogbm90IHN1cmUgYWJvdXQgdGhpczsKLSAgICAjIGlzaW5zdGFuY2UoZWxlbWVudCwgRWxlbWVudCkgb3IgbG9vayBmb3IgdGFnL2F0dHJpYi90ZXh0IGF0dHJpYnV0ZXMKKyAgICAiIiJSZXR1cm4gVHJ1ZSBpZiAqZWxlbWVudCogYXBwZWFycyB0byBiZSBhbiBFbGVtZW50LiIiIgogICAgIHJldHVybiBoYXNhdHRyKGVsZW1lbnQsICd0YWcnKQogCi0jIwotIyBFbGVtZW50IGNsYXNzLiAgVGhpcyBjbGFzcyBkZWZpbmVzIHRoZSBFbGVtZW50IGludGVyZmFjZSwgYW5kCi0jIHByb3ZpZGVzIGEgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgaW50ZXJmYWNlLgotIyA8cD4KLSMgVGhlIGVsZW1lbnQgbmFtZSwgYXR0cmlidXRlIG5hbWVzLCBhbmQgYXR0cmlidXRlIHZhbHVlcyBjYW4gYmUKLSMgZWl0aGVyIEFTQ0lJIHN0cmluZ3MgKG9yZGluYXJ5IFB5dGhvbiBzdHJpbmdzIGNvbnRhaW5pbmcgb25seSA3LWJpdAotIyBBU0NJSSBjaGFyYWN0ZXJzKSBvciBVbmljb2RlIHN0cmluZ3MuCi0jCi0jIEBwYXJhbSB0YWcgVGhlIGVsZW1lbnQgbmFtZS4KLSMgQHBhcmFtIGF0dHJpYiBBbiBvcHRpb25hbCBkaWN0aW9uYXJ5LCBjb250YWluaW5nIGVsZW1lbnQgYXR0cmlidXRlcy4KLSMgQHBhcmFtICoqZXh0cmEgQWRkaXRpb25hbCBhdHRyaWJ1dGVzLCBnaXZlbiBhcyBrZXl3b3JkIGFyZ3VtZW50cy4KLSMgQHNlZSBFbGVtZW50Ci0jIEBzZWUgU3ViRWxlbWVudAotIyBAc2VlIENvbW1lbnQKLSMgQHNlZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24KIAogY2xhc3MgRWxlbWVudDoKLSAgICAjIDx0YWcgYXR0cmliPnRleHQ8Y2hpbGQvPi4uLjwvdGFnPnRhaWwKKyAgICAiIiJBbiBYTUwgZWxlbWVudC4KIAotICAgICMjCi0gICAgIyAoQXR0cmlidXRlKSBFbGVtZW50IHRhZy4KKyAgICBUaGlzIGNsYXNzIGlzIHRoZSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIEVsZW1lbnQgaW50ZXJmYWNlLgorCisgICAgQW4gZWxlbWVudCdzIGxlbmd0aCBpcyBpdHMgbnVtYmVyIG9mIHN1YmVsZW1lbnRzLiAgVGhhdCBtZWFucyBpZiB5b3UKKyAgICB5b3Ugd2FudCB0byBjaGVjayBpZiBhbiBlbGVtZW50IGlzIHRydWx5IGVtcHR5LCB5b3Ugc2hvdWxkIGNoZWNrIEJPVEgKKyAgICBpdHMgbGVuZ3RoIEFORCBpdHMgdGV4dCBhdHRyaWJ1dGUuCisKKyAgICBUaGUgZWxlbWVudCB0YWcsIGF0dHJpYnV0ZSBuYW1lcywgYW5kIGF0dHJpYnV0ZSB2YWx1ZXMgY2FuIGJlIGVpdGhlcgorICAgIGJ5dGVzIG9yIHN0cmluZ3MuCisKKyAgICAqdGFnKiBpcyB0aGUgZWxlbWVudCBuYW1lLiAgKmF0dHJpYiogaXMgYW4gb3B0aW9uYWwgZGljdGlvbmFyeSBjb250YWluaW5nCisgICAgZWxlbWVudCBhdHRyaWJ1dGVzLiAqZXh0cmEqIGFyZSBhZGRpdGlvbmFsIGVsZW1lbnQgYXR0cmlidXRlcyBnaXZlbiBhcworICAgIGtleXdvcmQgYXJndW1lbnRzLgorCisgICAgRXhhbXBsZSBmb3JtOgorICAgICAgICA8dGFnIGF0dHJpYj50ZXh0PGNoaWxkLz4uLi48L3RhZz50YWlsCisKKyAgICAiIiIKIAogICAgIHRhZyA9IE5vbmUKLQotICAgICMjCi0gICAgIyAoQXR0cmlidXRlKSBFbGVtZW50IGF0dHJpYnV0ZSBkaWN0aW9uYXJ5LiAgV2hlcmUgcG9zc2libGUsIHVzZQotICAgICMge0BsaW5rICNFbGVtZW50LmdldH0sCi0gICAgIyB7QGxpbmsgI0VsZW1lbnQuc2V0fSwKLSAgICAjIHtAbGluayAjRWxlbWVudC5rZXlzfSwgYW5kCi0gICAgIyB7QGxpbmsgI0VsZW1lbnQuaXRlbXN9IHRvIGFjY2VzcwotICAgICMgZWxlbWVudCBhdHRyaWJ1dGVzLgorICAgICIiIlRoZSBlbGVtZW50J3MgbmFtZS4iIiIKIAogICAgIGF0dHJpYiA9IE5vbmUKLQotICAgICMjCi0gICAgIyAoQXR0cmlidXRlKSBUZXh0IGJlZm9yZSBmaXJzdCBzdWJlbGVtZW50LiAgVGhpcyBpcyBlaXRoZXIgYQotICAgICMgc3RyaW5nIG9yIHRoZSB2YWx1ZSBOb25lLiAgTm90ZSB0aGF0IGlmIHRoZXJlIHdhcyBubyB0ZXh0LCB0aGlzCi0gICAgIyBhdHRyaWJ1dGUgbWF5IGJlIGVpdGhlciBOb25lIG9yIGFuIGVtcHR5IHN0cmluZywgZGVwZW5kaW5nIG9uCi0gICAgIyB0aGUgcGFyc2VyLgorICAgICIiIkRpY3Rpb25hcnkgb2YgdGhlIGVsZW1lbnQncyBhdHRyaWJ1dGVzLiIiIgogCiAgICAgdGV4dCA9IE5vbmUKKyAgICAiIiIKKyAgICBUZXh0IGJlZm9yZSBmaXJzdCBzdWJlbGVtZW50LiBUaGlzIGlzIGVpdGhlciBhIHN0cmluZyBvciB0aGUgdmFsdWUgTm9uZS4KKyAgICBOb3RlIHRoYXQgaWYgdGhlcmUgaXMgbm8gdGV4dCwgdGhpcyBhdHRyaWJ1dGUgbWF5IGJlIGVpdGhlcgorICAgIE5vbmUgb3IgdGhlIGVtcHR5IHN0cmluZywgZGVwZW5kaW5nIG9uIHRoZSBwYXJzZXIuCiAKLSAgICAjIwotICAgICMgKEF0dHJpYnV0ZSkgVGV4dCBhZnRlciB0aGlzIGVsZW1lbnQncyBlbmQgdGFnLCBidXQgYmVmb3JlIHRoZQotICAgICMgbmV4dCBzaWJsaW5nIGVsZW1lbnQncyBzdGFydCB0YWcuICBUaGlzIGlzIGVpdGhlciBhIHN0cmluZyBvcgotICAgICMgdGhlIHZhbHVlIE5vbmUuICBOb3RlIHRoYXQgaWYgdGhlcmUgd2FzIG5vIHRleHQsIHRoaXMgYXR0cmlidXRlCi0gICAgIyBtYXkgYmUgZWl0aGVyIE5vbmUgb3IgYW4gZW1wdHkgc3RyaW5nLCBkZXBlbmRpbmcgb24gdGhlIHBhcnNlci4KKyAgICAiIiIKIAotICAgIHRhaWwgPSBOb25lICMgdGV4dCBhZnRlciBlbmQgdGFnLCBpZiBhbnkKKyAgICB0YWlsID0gTm9uZQorICAgICIiIgorICAgIFRleHQgYWZ0ZXIgdGhpcyBlbGVtZW50J3MgZW5kIHRhZywgYnV0IGJlZm9yZSB0aGUgbmV4dCBzaWJsaW5nIGVsZW1lbnQncworICAgIHN0YXJ0IHRhZy4gIFRoaXMgaXMgZWl0aGVyIGEgc3RyaW5nIG9yIHRoZSB2YWx1ZSBOb25lLiAgTm90ZSB0aGF0IGlmIHRoZXJlCisgICAgd2FzIG5vIHRleHQsIHRoaXMgYXR0cmlidXRlIG1heSBiZSBlaXRoZXIgTm9uZSBvciBhbiBlbXB0eSBzdHJpbmcsCisgICAgZGVwZW5kaW5nIG9uIHRoZSBwYXJzZXIuCiAKLSAgICAjIGNvbnN0cnVjdG9yCisgICAgIiIiCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgdGFnLCBhdHRyaWI9e30sICoqZXh0cmEpOgogICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhdHRyaWIsIGRpY3QpOgpAQCAtMTk1LDM2ICsxNzYsMzAgQEAKICAgICBkZWYgX19yZXByX18oc2VsZik6CiAgICAgICAgIHJldHVybiAiPEVsZW1lbnQgJXMgYXQgMHgleD4iICUgKHJlcHIoc2VsZi50YWcpLCBpZChzZWxmKSkKIAotICAgICMjCi0gICAgIyBDcmVhdGVzIGEgbmV3IGVsZW1lbnQgb2JqZWN0IG9mIHRoZSBzYW1lIHR5cGUgYXMgdGhpcyBlbGVtZW50LgotICAgICMKLSAgICAjIEBwYXJhbSB0YWcgRWxlbWVudCB0YWcuCi0gICAgIyBAcGFyYW0gYXR0cmliIEVsZW1lbnQgYXR0cmlidXRlcywgZ2l2ZW4gYXMgYSBkaWN0aW9uYXJ5LgotICAgICMgQHJldHVybiBBIG5ldyBlbGVtZW50IGluc3RhbmNlLgotCiAgICAgZGVmIG1ha2VlbGVtZW50KHNlbGYsIHRhZywgYXR0cmliKToKKyAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IGVsZW1lbnQgd2l0aCB0aGUgc2FtZSB0eXBlLgorCisgICAgICAgICp0YWcqIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGVsZW1lbnQgbmFtZS4KKyAgICAgICAgKmF0dHJpYiogaXMgYSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcgdGhlIGVsZW1lbnQgYXR0cmlidXRlcy4KKworICAgICAgICBEbyBub3QgY2FsbCB0aGlzIG1ldGhvZCwgdXNlIHRoZSBTdWJFbGVtZW50IGZhY3RvcnkgZnVuY3Rpb24gaW5zdGVhZC4KKworICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHRhZywgYXR0cmliKQogCi0gICAgIyMKLSAgICAjIChFeHBlcmltZW50YWwpIENvcGllcyB0aGUgY3VycmVudCBlbGVtZW50LiAgVGhpcyBjcmVhdGVzIGEKLSAgICAjIHNoYWxsb3cgY29weTsgc3ViZWxlbWVudHMgd2lsbCBiZSBzaGFyZWQgd2l0aCB0aGUgb3JpZ2luYWwgdHJlZS4KLSAgICAjCi0gICAgIyBAcmV0dXJuIEEgbmV3IGVsZW1lbnQgaW5zdGFuY2UuCi0KICAgICBkZWYgY29weShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIGNvcHkgb2YgY3VycmVudCBlbGVtZW50LgorCisgICAgICAgIFRoaXMgY3JlYXRlcyBhIHNoYWxsb3cgY29weS4gU3ViZWxlbWVudHMgd2lsbCBiZSBzaGFyZWQgd2l0aCB0aGUKKyAgICAgICAgb3JpZ2luYWwgdHJlZS4KKworICAgICAgICAiIiIKICAgICAgICAgZWxlbSA9IHNlbGYubWFrZWVsZW1lbnQoc2VsZi50YWcsIHNlbGYuYXR0cmliKQogICAgICAgICBlbGVtLnRleHQgPSBzZWxmLnRleHQKICAgICAgICAgZWxlbS50YWlsID0gc2VsZi50YWlsCiAgICAgICAgIGVsZW1bOl0gPSBzZWxmCiAgICAgICAgIHJldHVybiBlbGVtCiAKLSAgICAjIwotICAgICMgUmV0dXJucyB0aGUgbnVtYmVyIG9mIHN1YmVsZW1lbnRzLiAgTm90ZSB0aGF0IHRoaXMgb25seSBjb3VudHMKLSAgICAjIGZ1bGwgZWxlbWVudHM7IHRvIGNoZWNrIGlmIHRoZXJlJ3MgYW55IGNvbnRlbnQgaW4gYW4gZWxlbWVudCwgeW91Ci0gICAgIyBoYXZlIHRvIGNoZWNrIGJvdGggdGhlIGxlbmd0aCBhbmQgdGhlIDxiPnRleHQ8L2I+IGF0dHJpYnV0ZS4KLSAgICAjCi0gICAgIyBAcmV0dXJuIFRoZSBudW1iZXIgb2Ygc3ViZWxlbWVudHMuCi0KICAgICBkZWYgX19sZW5fXyhzZWxmKToKICAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9jaGlsZHJlbikKIApAQCAtMjM2LDIzICsyMTEsOSBAQAogICAgICAgICAgICAgKQogICAgICAgICByZXR1cm4gbGVuKHNlbGYuX2NoaWxkcmVuKSAhPSAwICMgZW11bGF0ZSBvbGQgYmVoYXZpb3VyLCBmb3Igbm93CiAKLSAgICAjIwotICAgICMgUmV0dXJucyB0aGUgZ2l2ZW4gc3ViZWxlbWVudCwgYnkgaW5kZXguCi0gICAgIwotICAgICMgQHBhcmFtIGluZGV4IFdoYXQgc3ViZWxlbWVudCB0byByZXR1cm4uCi0gICAgIyBAcmV0dXJuIFRoZSBnaXZlbiBzdWJlbGVtZW50LgotICAgICMgQGV4Y2VwdGlvbiBJbmRleEVycm9yIElmIHRoZSBnaXZlbiBlbGVtZW50IGRvZXMgbm90IGV4aXN0LgotCiAgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGluZGV4KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2NoaWxkcmVuW2luZGV4XQogCi0gICAgIyMKLSAgICAjIFJlcGxhY2VzIHRoZSBnaXZlbiBzdWJlbGVtZW50LCBieSBpbmRleC4KLSAgICAjCi0gICAgIyBAcGFyYW0gaW5kZXggV2hhdCBzdWJlbGVtZW50IHRvIHJlcGxhY2UuCi0gICAgIyBAcGFyYW0gZWxlbWVudCBUaGUgbmV3IGVsZW1lbnQgdmFsdWUuCi0gICAgIyBAZXhjZXB0aW9uIEluZGV4RXJyb3IgSWYgdGhlIGdpdmVuIGVsZW1lbnQgZG9lcyBub3QgZXhpc3QuCi0KICAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwgaW5kZXgsIGVsZW1lbnQpOgogICAgICAgICAjIGlmIGlzaW5zdGFuY2UoaW5kZXgsIHNsaWNlKToKICAgICAgICAgIyAgICAgZm9yIGVsdCBpbiBlbGVtZW50OgpAQCAtMjYxLDc2ICsyMjIsNjIgQEAKICAgICAgICAgIyAgICAgYXNzZXJ0IGlzZWxlbWVudChlbGVtZW50KQogICAgICAgICBzZWxmLl9jaGlsZHJlbltpbmRleF0gPSBlbGVtZW50CiAKLSAgICAjIwotICAgICMgRGVsZXRlcyB0aGUgZ2l2ZW4gc3ViZWxlbWVudCwgYnkgaW5kZXguCi0gICAgIwotICAgICMgQHBhcmFtIGluZGV4IFdoYXQgc3ViZWxlbWVudCB0byBkZWxldGUuCi0gICAgIyBAZXhjZXB0aW9uIEluZGV4RXJyb3IgSWYgdGhlIGdpdmVuIGVsZW1lbnQgZG9lcyBub3QgZXhpc3QuCi0KICAgICBkZWYgX19kZWxpdGVtX18oc2VsZiwgaW5kZXgpOgogICAgICAgICBkZWwgc2VsZi5fY2hpbGRyZW5baW5kZXhdCiAKLSAgICAjIwotICAgICMgQWRkcyBhIHN1YmVsZW1lbnQgdG8gdGhlIGVuZCBvZiB0aGlzIGVsZW1lbnQuICBJbiBkb2N1bWVudCBvcmRlciwKLSAgICAjIHRoZSBuZXcgZWxlbWVudCB3aWxsIGFwcGVhciBhZnRlciB0aGUgbGFzdCBleGlzdGluZyBzdWJlbGVtZW50IChvcgotICAgICMgZGlyZWN0bHkgYWZ0ZXIgdGhlIHRleHQsIGlmIGl0J3MgdGhlIGZpcnN0IHN1YmVsZW1lbnQpLCBidXQgYmVmb3JlCi0gICAgIyB0aGUgZW5kIHRhZyBmb3IgdGhpcyBlbGVtZW50LgotICAgICMKLSAgICAjIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IHRvIGFkZC4KKyAgICBkZWYgYXBwZW5kKHNlbGYsIHN1YmVsZW1lbnQpOgorICAgICAgICAiIiJBZGQgKnN1YmVsZW1lbnQqIHRvIHRoZSBlbmQgb2YgdGhpcyBlbGVtZW50LgogCi0gICAgZGVmIGFwcGVuZChzZWxmLCBlbGVtZW50KToKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2lzX2VsZW1lbnQoZWxlbWVudCkKLSAgICAgICAgc2VsZi5fY2hpbGRyZW4uYXBwZW5kKGVsZW1lbnQpCisgICAgICAgIFRoZSBuZXcgZWxlbWVudCB3aWxsIGFwcGVhciBpbiBkb2N1bWVudCBvcmRlciBhZnRlciB0aGUgbGFzdCBleGlzdGluZworICAgICAgICBzdWJlbGVtZW50IChvciBkaXJlY3RseSBhZnRlciB0aGUgdGV4dCwgaWYgaXQncyB0aGUgZmlyc3Qgc3ViZWxlbWVudCksCisgICAgICAgIGJ1dCBiZWZvcmUgdGhlIGVuZCB0YWcgZm9yIHRoaXMgZWxlbWVudC4KIAotICAgICMjCi0gICAgIyBBcHBlbmRzIHN1YmVsZW1lbnRzIGZyb20gYSBzZXF1ZW5jZS4KLSAgICAjCi0gICAgIyBAcGFyYW0gZWxlbWVudHMgQSBzZXF1ZW5jZSBvYmplY3Qgd2l0aCB6ZXJvIG9yIG1vcmUgZWxlbWVudHMuCi0gICAgIyBAc2luY2UgMS4zCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9hc3NlcnRfaXNfZWxlbWVudChzdWJlbGVtZW50KQorICAgICAgICBzZWxmLl9jaGlsZHJlbi5hcHBlbmQoc3ViZWxlbWVudCkKIAogICAgIGRlZiBleHRlbmQoc2VsZiwgZWxlbWVudHMpOgorICAgICAgICAiIiJBcHBlbmQgc3ViZWxlbWVudHMgZnJvbSBhIHNlcXVlbmNlLgorCisgICAgICAgICplbGVtZW50cyogaXMgYSBzZXF1ZW5jZSB3aXRoIHplcm8gb3IgbW9yZSBlbGVtZW50cy4KKworICAgICAgICAiIiIKICAgICAgICAgZm9yIGVsZW1lbnQgaW4gZWxlbWVudHM6CiAgICAgICAgICAgICBzZWxmLl9hc3NlcnRfaXNfZWxlbWVudChlbGVtZW50KQogICAgICAgICBzZWxmLl9jaGlsZHJlbi5leHRlbmQoZWxlbWVudHMpCiAKLSAgICAjIwotICAgICMgSW5zZXJ0cyBhIHN1YmVsZW1lbnQgYXQgdGhlIGdpdmVuIHBvc2l0aW9uIGluIHRoaXMgZWxlbWVudC4KLSAgICAjCi0gICAgIyBAcGFyYW0gaW5kZXggV2hlcmUgdG8gaW5zZXJ0IHRoZSBuZXcgc3ViZWxlbWVudC4KLQotICAgIGRlZiBpbnNlcnQoc2VsZiwgaW5kZXgsIGVsZW1lbnQpOgotICAgICAgICBzZWxmLl9hc3NlcnRfaXNfZWxlbWVudChlbGVtZW50KQotICAgICAgICBzZWxmLl9jaGlsZHJlbi5pbnNlcnQoaW5kZXgsIGVsZW1lbnQpCisgICAgZGVmIGluc2VydChzZWxmLCBpbmRleCwgc3ViZWxlbWVudCk6CisgICAgICAgICIiIkluc2VydCAqc3ViZWxlbWVudCogYXQgcG9zaXRpb24gKmluZGV4Ki4iIiIKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2lzX2VsZW1lbnQoc3ViZWxlbWVudCkKKyAgICAgICAgc2VsZi5fY2hpbGRyZW4uaW5zZXJ0KGluZGV4LCBzdWJlbGVtZW50KQogCiAgICAgZGVmIF9hc3NlcnRfaXNfZWxlbWVudChzZWxmLCBlKToKICAgICAgICAgIyBOZWVkIHRvIHJlZmVyIHRvIHRoZSBhY3R1YWwgUHl0aG9uIGltcGxlbWVudGF0aW9uLCBub3QgdGhlCiAgICAgICAgICMgc2hhZG93aW5nIEMgaW1wbGVtZW50YXRpb24uCi0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGUsIF9FbGVtZW50KToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZSwgX0VsZW1lbnRfUHkpOgogICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCdleHBlY3RlZCBhbiBFbGVtZW50LCBub3QgJXMnICUgdHlwZShlKS5fX25hbWVfXykKIAotICAgICMjCi0gICAgIyBSZW1vdmVzIGEgbWF0Y2hpbmcgc3ViZWxlbWVudC4gIFVubGlrZSB0aGUgPGI+ZmluZDwvYj4gbWV0aG9kcywKLSAgICAjIHRoaXMgbWV0aG9kIGNvbXBhcmVzIGVsZW1lbnRzIGJhc2VkIG9uIGlkZW50aXR5LCBub3Qgb24gdGFnCi0gICAgIyB2YWx1ZSBvciBjb250ZW50cy4gIFRvIHJlbW92ZSBzdWJlbGVtZW50cyBieSBvdGhlciBtZWFucywgdGhlCi0gICAgIyBlYXNpZXN0IHdheSBpcyBvZnRlbiB0byB1c2UgYSBsaXN0IGNvbXByZWhlbnNpb24gdG8gc2VsZWN0IHdoYXQKLSAgICAjIGVsZW1lbnRzIHRvIGtlZXAsIGFuZCB1c2Ugc2xpY2UgYXNzaWdubWVudCB0byB1cGRhdGUgdGhlIHBhcmVudAotICAgICMgZWxlbWVudC4KLSAgICAjCi0gICAgIyBAcGFyYW0gZWxlbWVudCBXaGF0IGVsZW1lbnQgdG8gcmVtb3ZlLgotICAgICMgQGV4Y2VwdGlvbiBWYWx1ZUVycm9yIElmIGEgbWF0Y2hpbmcgZWxlbWVudCBjb3VsZCBub3QgYmUgZm91bmQuCisgICAgZGVmIHJlbW92ZShzZWxmLCBzdWJlbGVtZW50KToKKyAgICAgICAgIiIiUmVtb3ZlIG1hdGNoaW5nIHN1YmVsZW1lbnQuCiAKLSAgICBkZWYgcmVtb3ZlKHNlbGYsIGVsZW1lbnQpOgorICAgICAgICBVbmxpa2UgdGhlIGZpbmQgbWV0aG9kcywgdGhpcyBtZXRob2QgY29tcGFyZXMgZWxlbWVudHMgYmFzZWQgb24KKyAgICAgICAgaWRlbnRpdHksIE5PVCBPTiB0YWcgdmFsdWUgb3IgY29udGVudHMuICBUbyByZW1vdmUgc3ViZWxlbWVudHMgYnkKKyAgICAgICAgb3RoZXIgbWVhbnMsIHRoZSBlYXNpZXN0IHdheSBpcyB0byB1c2UgYSBsaXN0IGNvbXByZWhlbnNpb24gdG8KKyAgICAgICAgc2VsZWN0IHdoYXQgZWxlbWVudHMgdG8ga2VlcCwgYW5kIHRoZW4gdXNlIHNsaWNlIGFzc2lnbm1lbnQgdG8gdXBkYXRlCisgICAgICAgIHRoZSBwYXJlbnQgZWxlbWVudC4KKworICAgICAgICBWYWx1ZUVycm9yIGlzIHJhaXNlZCBpZiBhIG1hdGNoaW5nIGVsZW1lbnQgY291bGQgbm90IGJlIGZvdW5kLgorCisgICAgICAgICIiIgogICAgICAgICAjIGFzc2VydCBpc2VsZW1lbnQoZWxlbWVudCkKLSAgICAgICAgc2VsZi5fY2hpbGRyZW4ucmVtb3ZlKGVsZW1lbnQpCi0KLSAgICAjIwotICAgICMgKERlcHJlY2F0ZWQpIFJldHVybnMgYWxsIHN1YmVsZW1lbnRzLiAgVGhlIGVsZW1lbnRzIGFyZSByZXR1cm5lZAotICAgICMgaW4gZG9jdW1lbnQgb3JkZXIuCi0gICAgIwotICAgICMgQHJldHVybiBBIGxpc3Qgb2Ygc3ViZWxlbWVudHMuCi0gICAgIyBAZGVmcmV0dXJuIGxpc3Qgb2YgRWxlbWVudCBpbnN0YW5jZXMKKyAgICAgICAgc2VsZi5fY2hpbGRyZW4ucmVtb3ZlKHN1YmVsZW1lbnQpCiAKICAgICBkZWYgZ2V0Y2hpbGRyZW4oc2VsZik6CisgICAgICAgICIiIihEZXByZWNhdGVkKSBSZXR1cm4gYWxsIHN1YmVsZW1lbnRzLgorCisgICAgICAgIEVsZW1lbnRzIGFyZSByZXR1cm5lZCBpbiBkb2N1bWVudCBvcmRlci4KKworICAgICAgICAiIiIKICAgICAgICAgd2FybmluZ3Mud2FybigKICAgICAgICAgICAgICJUaGlzIG1ldGhvZCB3aWxsIGJlIHJlbW92ZWQgaW4gZnV0dXJlIHZlcnNpb25zLiAgIgogICAgICAgICAgICAgIlVzZSAnbGlzdChlbGVtKScgb3IgaXRlcmF0aW9uIG92ZXIgZWxlbSBpbnN0ZWFkLiIsCkBAIC0zMzgsMTMxICsyODUsMTI4IEBACiAgICAgICAgICAgICApCiAgICAgICAgIHJldHVybiBzZWxmLl9jaGlsZHJlbgogCi0gICAgIyMKLSAgICAjIEZpbmRzIHRoZSBmaXJzdCBtYXRjaGluZyBzdWJlbGVtZW50LCBieSB0YWcgbmFtZSBvciBwYXRoLgotICAgICMKLSAgICAjIEBwYXJhbSBwYXRoIFdoYXQgZWxlbWVudCB0byBsb29rIGZvci4KLSAgICAjIEBrZXlwYXJhbSBuYW1lc3BhY2VzIE9wdGlvbmFsIG5hbWVzcGFjZSBwcmVmaXggbWFwLgotICAgICMgQHJldHVybiBUaGUgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCwgb3IgTm9uZSBpZiBubyBlbGVtZW50IHdhcyBmb3VuZC4KLSAgICAjIEBkZWZyZXR1cm4gRWxlbWVudCBvciBOb25lCi0KICAgICBkZWYgZmluZChzZWxmLCBwYXRoLCBuYW1lc3BhY2VzPU5vbmUpOgorICAgICAgICAiIiJGaW5kIGZpcnN0IG1hdGNoaW5nIGVsZW1lbnQgYnkgdGFnIG5hbWUgb3IgcGF0aC4KKworICAgICAgICAqcGF0aCogaXMgYSBzdHJpbmcgaGF2aW5nIGVpdGhlciBhbiBlbGVtZW50IHRhZyBvciBhbiBYUGF0aCwKKyAgICAgICAgKm5hbWVzcGFjZXMqIGlzIGFuIG9wdGlvbmFsIG1hcHBpbmcgZnJvbSBuYW1lc3BhY2UgcHJlZml4IHRvIGZ1bGwgbmFtZS4KKworICAgICAgICBSZXR1cm4gdGhlIGZpcnN0IG1hdGNoaW5nIGVsZW1lbnQsIG9yIE5vbmUgaWYgbm8gZWxlbWVudCB3YXMgZm91bmQuCisKKyAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBFbGVtZW50UGF0aC5maW5kKHNlbGYsIHBhdGgsIG5hbWVzcGFjZXMpCiAKLSAgICAjIwotICAgICMgRmluZHMgdGV4dCBmb3IgdGhlIGZpcnN0IG1hdGNoaW5nIHN1YmVsZW1lbnQsIGJ5IHRhZyBuYW1lIG9yIHBhdGguCi0gICAgIwotICAgICMgQHBhcmFtIHBhdGggV2hhdCBlbGVtZW50IHRvIGxvb2sgZm9yLgotICAgICMgQHBhcmFtIGRlZmF1bHQgV2hhdCB0byByZXR1cm4gaWYgdGhlIGVsZW1lbnQgd2FzIG5vdCBmb3VuZC4KLSAgICAjIEBrZXlwYXJhbSBuYW1lc3BhY2VzIE9wdGlvbmFsIG5hbWVzcGFjZSBwcmVmaXggbWFwLgotICAgICMgQHJldHVybiBUaGUgdGV4dCBjb250ZW50IG9mIHRoZSBmaXJzdCBtYXRjaGluZyBlbGVtZW50LCBvciB0aGUKLSAgICAjICAgICBkZWZhdWx0IHZhbHVlIG5vIGVsZW1lbnQgd2FzIGZvdW5kLiAgTm90ZSB0aGF0IGlmIHRoZSBlbGVtZW50Ci0gICAgIyAgICAgaXMgZm91bmQsIGJ1dCBoYXMgbm8gdGV4dCBjb250ZW50LCB0aGlzIG1ldGhvZCByZXR1cm5zIGFuCi0gICAgIyAgICAgZW1wdHkgc3RyaW5nLgotICAgICMgQGRlZnJldHVybiBzdHJpbmcKLQogICAgIGRlZiBmaW5kdGV4dChzZWxmLCBwYXRoLCBkZWZhdWx0PU5vbmUsIG5hbWVzcGFjZXM9Tm9uZSk6CisgICAgICAgICIiIkZpbmQgdGV4dCBmb3IgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCBieSB0YWcgbmFtZSBvciBwYXRoLgorCisgICAgICAgICpwYXRoKiBpcyBhIHN0cmluZyBoYXZpbmcgZWl0aGVyIGFuIGVsZW1lbnQgdGFnIG9yIGFuIFhQYXRoLAorICAgICAgICAqZGVmYXVsdCogaXMgdGhlIHZhbHVlIHRvIHJldHVybiBpZiB0aGUgZWxlbWVudCB3YXMgbm90IGZvdW5kLAorICAgICAgICAqbmFtZXNwYWNlcyogaXMgYW4gb3B0aW9uYWwgbWFwcGluZyBmcm9tIG5hbWVzcGFjZSBwcmVmaXggdG8gZnVsbCBuYW1lLgorCisgICAgICAgIFJldHVybiB0ZXh0IGNvbnRlbnQgb2YgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCwgb3IgZGVmYXVsdCB2YWx1ZSBpZgorICAgICAgICBub25lIHdhcyBmb3VuZC4gIE5vdGUgdGhhdCBpZiBhbiBlbGVtZW50IGlzIGZvdW5kIGhhdmluZyBubyB0ZXh0CisgICAgICAgIGNvbnRlbnQsIHRoZSBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQuCisKKyAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBFbGVtZW50UGF0aC5maW5kdGV4dChzZWxmLCBwYXRoLCBkZWZhdWx0LCBuYW1lc3BhY2VzKQogCi0gICAgIyMKLSAgICAjIEZpbmRzIGFsbCBtYXRjaGluZyBzdWJlbGVtZW50cywgYnkgdGFnIG5hbWUgb3IgcGF0aC4KLSAgICAjCi0gICAgIyBAcGFyYW0gcGF0aCBXaGF0IGVsZW1lbnQgdG8gbG9vayBmb3IuCi0gICAgIyBAa2V5cGFyYW0gbmFtZXNwYWNlcyBPcHRpb25hbCBuYW1lc3BhY2UgcHJlZml4IG1hcC4KLSAgICAjIEByZXR1cm4gQSBsaXN0IG9yIG90aGVyIHNlcXVlbmNlIGNvbnRhaW5pbmcgYWxsIG1hdGNoaW5nIGVsZW1lbnRzLAotICAgICMgICAgaW4gZG9jdW1lbnQgb3JkZXIuCi0gICAgIyBAZGVmcmV0dXJuIGxpc3Qgb2YgRWxlbWVudCBpbnN0YW5jZXMKLQogICAgIGRlZiBmaW5kYWxsKHNlbGYsIHBhdGgsIG5hbWVzcGFjZXM9Tm9uZSk6CisgICAgICAgICIiIkZpbmQgYWxsIG1hdGNoaW5nIHN1YmVsZW1lbnRzIGJ5IHRhZyBuYW1lIG9yIHBhdGguCisKKyAgICAgICAgKnBhdGgqIGlzIGEgc3RyaW5nIGhhdmluZyBlaXRoZXIgYW4gZWxlbWVudCB0YWcgb3IgYW4gWFBhdGgsCisgICAgICAgICpuYW1lc3BhY2VzKiBpcyBhbiBvcHRpb25hbCBtYXBwaW5nIGZyb20gbmFtZXNwYWNlIHByZWZpeCB0byBmdWxsIG5hbWUuCisKKyAgICAgICAgUmV0dXJucyBsaXN0IGNvbnRhaW5pbmcgYWxsIG1hdGNoaW5nIGVsZW1lbnRzIGluIGRvY3VtZW50IG9yZGVyLgorCisgICAgICAgICIiIgogICAgICAgICByZXR1cm4gRWxlbWVudFBhdGguZmluZGFsbChzZWxmLCBwYXRoLCBuYW1lc3BhY2VzKQogCi0gICAgIyMKLSAgICAjIEZpbmRzIGFsbCBtYXRjaGluZyBzdWJlbGVtZW50cywgYnkgdGFnIG5hbWUgb3IgcGF0aC4KLSAgICAjCi0gICAgIyBAcGFyYW0gcGF0aCBXaGF0IGVsZW1lbnQgdG8gbG9vayBmb3IuCi0gICAgIyBAa2V5cGFyYW0gbmFtZXNwYWNlcyBPcHRpb25hbCBuYW1lc3BhY2UgcHJlZml4IG1hcC4KLSAgICAjIEByZXR1cm4gQW4gaXRlcmF0b3Igb3Igc2VxdWVuY2UgY29udGFpbmluZyBhbGwgbWF0Y2hpbmcgZWxlbWVudHMsCi0gICAgIyAgICBpbiBkb2N1bWVudCBvcmRlci4KLSAgICAjIEBkZWZyZXR1cm4gYSBnZW5lcmF0ZWQgc2VxdWVuY2Ugb2YgRWxlbWVudCBpbnN0YW5jZXMKLQogICAgIGRlZiBpdGVyZmluZChzZWxmLCBwYXRoLCBuYW1lc3BhY2VzPU5vbmUpOgorICAgICAgICAiIiJGaW5kIGFsbCBtYXRjaGluZyBzdWJlbGVtZW50cyBieSB0YWcgbmFtZSBvciBwYXRoLgorCisgICAgICAgICpwYXRoKiBpcyBhIHN0cmluZyBoYXZpbmcgZWl0aGVyIGFuIGVsZW1lbnQgdGFnIG9yIGFuIFhQYXRoLAorICAgICAgICAqbmFtZXNwYWNlcyogaXMgYW4gb3B0aW9uYWwgbWFwcGluZyBmcm9tIG5hbWVzcGFjZSBwcmVmaXggdG8gZnVsbCBuYW1lLgorCisgICAgICAgIFJldHVybiBhbiBpdGVyYWJsZSB5aWVsZGluZyBhbGwgbWF0Y2hpbmcgZWxlbWVudHMgaW4gZG9jdW1lbnQgb3JkZXIuCisKKyAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBFbGVtZW50UGF0aC5pdGVyZmluZChzZWxmLCBwYXRoLCBuYW1lc3BhY2VzKQogCi0gICAgIyMKLSAgICAjIFJlc2V0cyBhbiBlbGVtZW50LiAgVGhpcyBmdW5jdGlvbiByZW1vdmVzIGFsbCBzdWJlbGVtZW50cywgY2xlYXJzCi0gICAgIyBhbGwgYXR0cmlidXRlcywgYW5kIHNldHMgdGhlIDxiPnRleHQ8L2I+IGFuZCA8Yj50YWlsPC9iPiBhdHRyaWJ1dGVzCi0gICAgIyB0byBOb25lLgotCiAgICAgZGVmIGNsZWFyKHNlbGYpOgorICAgICAgICAiIiJSZXNldCBlbGVtZW50LgorCisgICAgICAgIFRoaXMgZnVuY3Rpb24gcmVtb3ZlcyBhbGwgc3ViZWxlbWVudHMsIGNsZWFycyBhbGwgYXR0cmlidXRlcywgYW5kIHNldHMKKyAgICAgICAgdGhlIHRleHQgYW5kIHRhaWwgYXR0cmlidXRlcyB0byBOb25lLgorCisgICAgICAgICIiIgogICAgICAgICBzZWxmLmF0dHJpYi5jbGVhcigpCiAgICAgICAgIHNlbGYuX2NoaWxkcmVuID0gW10KICAgICAgICAgc2VsZi50ZXh0ID0gc2VsZi50YWlsID0gTm9uZQogCi0gICAgIyMKLSAgICAjIEdldHMgYW4gZWxlbWVudCBhdHRyaWJ1dGUuICBFcXVpdmFsZW50IHRvIDxiPmF0dHJpYi5nZXQ8L2I+LCBidXQKLSAgICAjIHNvbWUgaW1wbGVtZW50YXRpb25zIG1heSBoYW5kbGUgdGhpcyBhIGJpdCBtb3JlIGVmZmljaWVudGx5LgotICAgICMKLSAgICAjIEBwYXJhbSBrZXkgV2hhdCBhdHRyaWJ1dGUgdG8gbG9vayBmb3IuCi0gICAgIyBAcGFyYW0gZGVmYXVsdCBXaGF0IHRvIHJldHVybiBpZiB0aGUgYXR0cmlidXRlIHdhcyBub3QgZm91bmQuCi0gICAgIyBAcmV0dXJuIFRoZSBhdHRyaWJ1dGUgdmFsdWUsIG9yIHRoZSBkZWZhdWx0IHZhbHVlLCBpZiB0aGUKLSAgICAjICAgICBhdHRyaWJ1dGUgd2FzIG5vdCBmb3VuZC4KLSAgICAjIEBkZWZyZXR1cm4gc3RyaW5nIG9yIE5vbmUKLQogICAgIGRlZiBnZXQoc2VsZiwga2V5LCBkZWZhdWx0PU5vbmUpOgorICAgICAgICAiIiJHZXQgZWxlbWVudCBhdHRyaWJ1dGUuCisKKyAgICAgICAgRXF1aXZhbGVudCB0byBhdHRyaWIuZ2V0LCBidXQgc29tZSBpbXBsZW1lbnRhdGlvbnMgbWF5IGhhbmRsZSB0aGlzIGEKKyAgICAgICAgYml0IG1vcmUgZWZmaWNpZW50bHkuICAqa2V5KiBpcyB3aGF0IGF0dHJpYnV0ZSB0byBsb29rIGZvciwgYW5kCisgICAgICAgICpkZWZhdWx0KiBpcyB3aGF0IHRvIHJldHVybiBpZiB0aGUgYXR0cmlidXRlIHdhcyBub3QgZm91bmQuCisKKyAgICAgICAgUmV0dXJucyBhIHN0cmluZyBjb250YWluaW5nIHRoZSBhdHRyaWJ1dGUgdmFsdWUsIG9yIHRoZSBkZWZhdWx0IGlmCisgICAgICAgIGF0dHJpYnV0ZSB3YXMgbm90IGZvdW5kLgorCisgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5hdHRyaWIuZ2V0KGtleSwgZGVmYXVsdCkKIAotICAgICMjCi0gICAgIyBTZXRzIGFuIGVsZW1lbnQgYXR0cmlidXRlLiAgRXF1aXZhbGVudCB0byA8Yj5hdHRyaWJba2V5XSA9IHZhbHVlPC9iPiwKLSAgICAjIGJ1dCBzb21lIGltcGxlbWVudGF0aW9ucyBtYXkgaGFuZGxlIHRoaXMgYSBiaXQgbW9yZSBlZmZpY2llbnRseS4KLSAgICAjCi0gICAgIyBAcGFyYW0ga2V5IFdoYXQgYXR0cmlidXRlIHRvIHNldC4KLSAgICAjIEBwYXJhbSB2YWx1ZSBUaGUgYXR0cmlidXRlIHZhbHVlLgotCiAgICAgZGVmIHNldChzZWxmLCBrZXksIHZhbHVlKToKKyAgICAgICAgIiIiU2V0IGVsZW1lbnQgYXR0cmlidXRlLgorCisgICAgICAgIEVxdWl2YWxlbnQgdG8gYXR0cmliW2tleV0gPSB2YWx1ZSwgYnV0IHNvbWUgaW1wbGVtZW50YXRpb25zIG1heSBoYW5kbGUKKyAgICAgICAgdGhpcyBhIGJpdCBtb3JlIGVmZmljaWVudGx5LiAgKmtleSogaXMgd2hhdCBhdHRyaWJ1dGUgdG8gc2V0LCBhbmQKKyAgICAgICAgKnZhbHVlKiBpcyB0aGUgYXR0cmlidXRlIHZhbHVlIHRvIHNldCBpdCB0by4KKworICAgICAgICAiIiIKICAgICAgICAgc2VsZi5hdHRyaWJba2V5XSA9IHZhbHVlCiAKLSAgICAjIwotICAgICMgR2V0cyBhIGxpc3Qgb2YgYXR0cmlidXRlIG5hbWVzLiAgVGhlIG5hbWVzIGFyZSByZXR1cm5lZCBpbiBhbgotICAgICMgYXJiaXRyYXJ5IG9yZGVyIChqdXN0IGxpa2UgZm9yIGFuIG9yZGluYXJ5IFB5dGhvbiBkaWN0aW9uYXJ5KS4KLSAgICAjIEVxdWl2YWxlbnQgdG8gPGI+YXR0cmliLmtleXMoKTwvYj4uCi0gICAgIwotICAgICMgQHJldHVybiBBIGxpc3Qgb2YgZWxlbWVudCBhdHRyaWJ1dGUgbmFtZXMuCi0gICAgIyBAZGVmcmV0dXJuIGxpc3Qgb2Ygc3RyaW5ncwotCiAgICAgZGVmIGtleXMoc2VsZik6CisgICAgICAgICIiIkdldCBsaXN0IG9mIGF0dHJpYnV0ZSBuYW1lcy4KKworICAgICAgICBOYW1lcyBhcmUgcmV0dXJuZWQgaW4gYW4gYXJiaXRyYXJ5IG9yZGVyLCBqdXN0IGxpa2UgYW4gb3JkaW5hcnkKKyAgICAgICAgUHl0aG9uIGRpY3QuICBFcXVpdmFsZW50IHRvIGF0dHJpYi5rZXlzKCkKKworICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIHNlbGYuYXR0cmliLmtleXMoKQogCi0gICAgIyMKLSAgICAjIEdldHMgZWxlbWVudCBhdHRyaWJ1dGVzLCBhcyBhIHNlcXVlbmNlLiAgVGhlIGF0dHJpYnV0ZXMgYXJlCi0gICAgIyByZXR1cm5lZCBpbiBhbiBhcmJpdHJhcnkgb3JkZXIuICBFcXVpdmFsZW50IHRvIDxiPmF0dHJpYi5pdGVtcygpPC9iPi4KLSAgICAjCi0gICAgIyBAcmV0dXJuIEEgbGlzdCBvZiAobmFtZSwgdmFsdWUpIHR1cGxlcyBmb3IgYWxsIGF0dHJpYnV0ZXMuCi0gICAgIyBAZGVmcmV0dXJuIGxpc3Qgb2YgKHN0cmluZywgc3RyaW5nKSB0dXBsZXMKLQogICAgIGRlZiBpdGVtcyhzZWxmKToKKyAgICAgICAgIiIiR2V0IGVsZW1lbnQgYXR0cmlidXRlcyBhcyBhIHNlcXVlbmNlLgorCisgICAgICAgIFRoZSBhdHRyaWJ1dGVzIGFyZSByZXR1cm5lZCBpbiBhcmJpdHJhcnkgb3JkZXIuICBFcXVpdmFsZW50IHRvCisgICAgICAgIGF0dHJpYi5pdGVtcygpLgorCisgICAgICAgIFJldHVybiBhIGxpc3Qgb2YgKG5hbWUsIHZhbHVlKSB0dXBsZXMuCisKKyAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLmF0dHJpYi5pdGVtcygpCiAKLSAgICAjIwotICAgICMgQ3JlYXRlcyBhIHRyZWUgaXRlcmF0b3IuICBUaGUgaXRlcmF0b3IgbG9vcHMgb3ZlciB0aGlzIGVsZW1lbnQKLSAgICAjIGFuZCBhbGwgc3ViZWxlbWVudHMsIGluIGRvY3VtZW50IG9yZGVyLCBhbmQgcmV0dXJucyBhbGwgZWxlbWVudHMKLSAgICAjIHdpdGggYSBtYXRjaGluZyB0YWcuCi0gICAgIyA8cD4KLSAgICAjIElmIHRoZSB0cmVlIHN0cnVjdHVyZSBpcyBtb2RpZmllZCBkdXJpbmcgaXRlcmF0aW9uLCBuZXcgb3IgcmVtb3ZlZAotICAgICMgZWxlbWVudHMgbWF5IG9yIG1heSBub3QgYmUgaW5jbHVkZWQuICBUbyBnZXQgYSBzdGFibGUgc2V0LCB1c2UgdGhlCi0gICAgIyBsaXN0KCkgZnVuY3Rpb24gb24gdGhlIGl0ZXJhdG9yLCBhbmQgbG9vcCBvdmVyIHRoZSByZXN1bHRpbmcgbGlzdC4KLSAgICAjCi0gICAgIyBAcGFyYW0gdGFnIFdoYXQgdGFncyB0byBsb29rIGZvciAoZGVmYXVsdCBpcyB0byByZXR1cm4gYWxsIGVsZW1lbnRzKS4KLSAgICAjIEByZXR1cm4gQW4gaXRlcmF0b3IgY29udGFpbmluZyBhbGwgdGhlIG1hdGNoaW5nIGVsZW1lbnRzLgotICAgICMgQGRlZnJldHVybiBpdGVyYXRvcgotCiAgICAgZGVmIGl0ZXIoc2VsZiwgdGFnPU5vbmUpOgorICAgICAgICAiIiJDcmVhdGUgdHJlZSBpdGVyYXRvci4KKworICAgICAgICBUaGUgaXRlcmF0b3IgbG9vcHMgb3ZlciB0aGUgZWxlbWVudCBhbmQgYWxsIHN1YmVsZW1lbnRzIGluIGRvY3VtZW50CisgICAgICAgIG9yZGVyLCByZXR1cm5pbmcgYWxsIGVsZW1lbnRzIHdpdGggYSBtYXRjaGluZyB0YWcuCisKKyAgICAgICAgSWYgdGhlIHRyZWUgc3RydWN0dXJlIGlzIG1vZGlmaWVkIGR1cmluZyBpdGVyYXRpb24sIG5ldyBvciByZW1vdmVkCisgICAgICAgIGVsZW1lbnRzIG1heSBvciBtYXkgbm90IGJlIGluY2x1ZGVkLiAgVG8gZ2V0IGEgc3RhYmxlIHNldCwgdXNlIHRoZQorICAgICAgICBsaXN0KCkgZnVuY3Rpb24gb24gdGhlIGl0ZXJhdG9yLCBhbmQgbG9vcCBvdmVyIHRoZSByZXN1bHRpbmcgbGlzdC4KKworICAgICAgICAqdGFnKiBpcyB3aGF0IHRhZ3MgdG8gbG9vayBmb3IgKGRlZmF1bHQgaXMgdG8gcmV0dXJuIGFsbCBlbGVtZW50cykKKworICAgICAgICBSZXR1cm4gYW4gaXRlcmF0b3IgY29udGFpbmluZyBhbGwgdGhlIG1hdGNoaW5nIGVsZW1lbnRzLgorCisgICAgICAgICIiIgogICAgICAgICBpZiB0YWcgPT0gIioiOgogICAgICAgICAgICAgdGFnID0gTm9uZQogICAgICAgICBpZiB0YWcgaXMgTm9uZSBvciBzZWxmLnRhZyA9PSB0YWc6CiAgICAgICAgICAgICB5aWVsZCBzZWxmCiAgICAgICAgIGZvciBlIGluIHNlbGYuX2NoaWxkcmVuOgotICAgICAgICAgICAgZm9yIGUgaW4gZS5pdGVyKHRhZyk6Ci0gICAgICAgICAgICAgICAgeWllbGQgZQorICAgICAgICAgICAgeWllbGQgZnJvbSBlLml0ZXIodGFnKQogCiAgICAgIyBjb21wYXRpYmlsaXR5CiAgICAgZGVmIGdldGl0ZXJhdG9yKHNlbGYsIHRhZz1Ob25lKToKQEAgLTQ3NCw3OCArNDE4LDY3IEBACiAgICAgICAgICkKICAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5pdGVyKHRhZykpCiAKLSAgICAjIwotICAgICMgQ3JlYXRlcyBhIHRleHQgaXRlcmF0b3IuICBUaGUgaXRlcmF0b3IgbG9vcHMgb3ZlciB0aGlzIGVsZW1lbnQKLSAgICAjIGFuZCBhbGwgc3ViZWxlbWVudHMsIGluIGRvY3VtZW50IG9yZGVyLCBhbmQgcmV0dXJucyBhbGwgaW5uZXIKLSAgICAjIHRleHQuCi0gICAgIwotICAgICMgQHJldHVybiBBbiBpdGVyYXRvciBjb250YWluaW5nIGFsbCBpbm5lciB0ZXh0LgotICAgICMgQGRlZnJldHVybiBpdGVyYXRvcgotCiAgICAgZGVmIGl0ZXJ0ZXh0KHNlbGYpOgorICAgICAgICAiIiJDcmVhdGUgdGV4dCBpdGVyYXRvci4KKworICAgICAgICBUaGUgaXRlcmF0b3IgbG9vcHMgb3ZlciB0aGUgZWxlbWVudCBhbmQgYWxsIHN1YmVsZW1lbnRzIGluIGRvY3VtZW50CisgICAgICAgIG9yZGVyLCByZXR1cm5pbmcgYWxsIGlubmVyIHRleHQuCisKKyAgICAgICAgIiIiCiAgICAgICAgIHRhZyA9IHNlbGYudGFnCiAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHRhZywgc3RyKSBhbmQgdGFnIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIGlmIHNlbGYudGV4dDoKICAgICAgICAgICAgIHlpZWxkIHNlbGYudGV4dAogICAgICAgICBmb3IgZSBpbiBzZWxmOgotICAgICAgICAgICAgZm9yIHMgaW4gZS5pdGVydGV4dCgpOgotICAgICAgICAgICAgICAgIHlpZWxkIHMKKyAgICAgICAgICAgIHlpZWxkIGZyb20gZS5pdGVydGV4dCgpCiAgICAgICAgICAgICBpZiBlLnRhaWw6CiAgICAgICAgICAgICAgICAgeWllbGQgZS50YWlsCiAKLSMgY29tcGF0aWJpbGl0eQotX0VsZW1lbnQgPSBfRWxlbWVudEludGVyZmFjZSA9IEVsZW1lbnQKLQotIyMKLSMgU3ViZWxlbWVudCBmYWN0b3J5LiAgVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGFuIGVsZW1lbnQgaW5zdGFuY2UsIGFuZAotIyBhcHBlbmRzIGl0IHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuCi0jIDxwPgotIyBUaGUgZWxlbWVudCBuYW1lLCBhdHRyaWJ1dGUgbmFtZXMsIGFuZCBhdHRyaWJ1dGUgdmFsdWVzIGNhbiBiZQotIyBlaXRoZXIgOC1iaXQgQVNDSUkgc3RyaW5ncyBvciBVbmljb2RlIHN0cmluZ3MuCi0jCi0jIEBwYXJhbSBwYXJlbnQgVGhlIHBhcmVudCBlbGVtZW50LgotIyBAcGFyYW0gdGFnIFRoZSBzdWJlbGVtZW50IG5hbWUuCi0jIEBwYXJhbSBhdHRyaWIgQW4gb3B0aW9uYWwgZGljdGlvbmFyeSwgY29udGFpbmluZyBlbGVtZW50IGF0dHJpYnV0ZXMuCi0jIEBwYXJhbSAqKmV4dHJhIEFkZGl0aW9uYWwgYXR0cmlidXRlcywgZ2l2ZW4gYXMga2V5d29yZCBhcmd1bWVudHMuCi0jIEByZXR1cm4gQW4gZWxlbWVudCBpbnN0YW5jZS4KLSMgQGRlZnJldHVybiBFbGVtZW50CiAKIGRlZiBTdWJFbGVtZW50KHBhcmVudCwgdGFnLCBhdHRyaWI9e30sICoqZXh0cmEpOgorICAgICIiIlN1YmVsZW1lbnQgZmFjdG9yeSB3aGljaCBjcmVhdGVzIGFuIGVsZW1lbnQgaW5zdGFuY2UsIGFuZCBhcHBlbmRzIGl0CisgICAgdG8gYW4gZXhpc3RpbmcgcGFyZW50LgorCisgICAgVGhlIGVsZW1lbnQgdGFnLCBhdHRyaWJ1dGUgbmFtZXMsIGFuZCBhdHRyaWJ1dGUgdmFsdWVzIGNhbiBiZSBlaXRoZXIKKyAgICBieXRlcyBvciBVbmljb2RlIHN0cmluZ3MuCisKKyAgICAqcGFyZW50KiBpcyB0aGUgcGFyZW50IGVsZW1lbnQsICp0YWcqIGlzIHRoZSBzdWJlbGVtZW50cyBuYW1lLCAqYXR0cmliKiBpcworICAgIGFuIG9wdGlvbmFsIGRpcmVjdG9yeSBjb250YWluaW5nIGVsZW1lbnQgYXR0cmlidXRlcywgKmV4dHJhKiBhcmUKKyAgICBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgZ2l2ZW4gYXMga2V5d29yZCBhcmd1bWVudHMuCisKKyAgICAiIiIKICAgICBhdHRyaWIgPSBhdHRyaWIuY29weSgpCiAgICAgYXR0cmliLnVwZGF0ZShleHRyYSkKICAgICBlbGVtZW50ID0gcGFyZW50Lm1ha2VlbGVtZW50KHRhZywgYXR0cmliKQogICAgIHBhcmVudC5hcHBlbmQoZWxlbWVudCkKICAgICByZXR1cm4gZWxlbWVudAogCi0jIwotIyBDb21tZW50IGVsZW1lbnQgZmFjdG9yeS4gIFRoaXMgZmFjdG9yeSBmdW5jdGlvbiBjcmVhdGVzIGEgc3BlY2lhbAotIyBlbGVtZW50IHRoYXQgd2lsbCBiZSBzZXJpYWxpemVkIGFzIGFuIFhNTCBjb21tZW50IGJ5IHRoZSBzdGFuZGFyZAotIyBzZXJpYWxpemVyLgotIyA8cD4KLSMgVGhlIGNvbW1lbnQgc3RyaW5nIGNhbiBiZSBlaXRoZXIgYW4gOC1iaXQgQVNDSUkgc3RyaW5nIG9yIGEgVW5pY29kZQotIyBzdHJpbmcuCi0jCi0jIEBwYXJhbSB0ZXh0IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGNvbW1lbnQgc3RyaW5nLgotIyBAcmV0dXJuIEFuIGVsZW1lbnQgaW5zdGFuY2UsIHJlcHJlc2VudGluZyBhIGNvbW1lbnQuCi0jIEBkZWZyZXR1cm4gRWxlbWVudAogCiBkZWYgQ29tbWVudCh0ZXh0PU5vbmUpOgorICAgICIiIkNvbW1lbnQgZWxlbWVudCBmYWN0b3J5LgorCisgICAgVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgc3BlY2lhbCBlbGVtZW50IHdoaWNoIHRoZSBzdGFuZGFyZCBzZXJpYWxpemVyCisgICAgc2VyaWFsaXplcyBhcyBhbiBYTUwgY29tbWVudC4KKworICAgICp0ZXh0KiBpcyBhIHN0cmluZyBjb250YWluaW5nIHRoZSBjb21tZW50IHN0cmluZy4KKworICAgICIiIgogICAgIGVsZW1lbnQgPSBFbGVtZW50KENvbW1lbnQpCiAgICAgZWxlbWVudC50ZXh0ID0gdGV4dAogICAgIHJldHVybiBlbGVtZW50CiAKLSMjCi0jIFBJIGVsZW1lbnQgZmFjdG9yeS4gIFRoaXMgZmFjdG9yeSBmdW5jdGlvbiBjcmVhdGVzIGEgc3BlY2lhbCBlbGVtZW50Ci0jIHRoYXQgd2lsbCBiZSBzZXJpYWxpemVkIGFzIGFuIFhNTCBwcm9jZXNzaW5nIGluc3RydWN0aW9uIGJ5IHRoZSBzdGFuZGFyZAotIyBzZXJpYWxpemVyLgotIwotIyBAcGFyYW0gdGFyZ2V0IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFBJIHRhcmdldC4KLSMgQHBhcmFtIHRleHQgQSBzdHJpbmcgY29udGFpbmluZyB0aGUgUEkgY29udGVudHMsIGlmIGFueS4KLSMgQHJldHVybiBBbiBlbGVtZW50IGluc3RhbmNlLCByZXByZXNlbnRpbmcgYSBQSS4KLSMgQGRlZnJldHVybiBFbGVtZW50CiAKIGRlZiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24odGFyZ2V0LCB0ZXh0PU5vbmUpOgorICAgICIiIlByb2Nlc3NpbmcgSW5zdHJ1Y3Rpb24gZWxlbWVudCBmYWN0b3J5LgorCisgICAgVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgc3BlY2lhbCBlbGVtZW50IHdoaWNoIHRoZSBzdGFuZGFyZCBzZXJpYWxpemVyCisgICAgc2VyaWFsaXplcyBhcyBhbiBYTUwgY29tbWVudC4KKworICAgICp0YXJnZXQqIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24sICp0ZXh0KiBpcyBhCisgICAgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gY29udGVudHMsIGlmIGFueS4KKworICAgICIiIgogICAgIGVsZW1lbnQgPSBFbGVtZW50KFByb2Nlc3NpbmdJbnN0cnVjdGlvbikKICAgICBlbGVtZW50LnRleHQgPSB0YXJnZXQKICAgICBpZiB0ZXh0OgpAQCAtNTU0LDE3ICs0ODcsMjEgQEAKIAogUEkgPSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24KIAotIyMKLSMgUU5hbWUgd3JhcHBlci4gIFRoaXMgY2FuIGJlIHVzZWQgdG8gd3JhcCBhIFFOYW1lIGF0dHJpYnV0ZSB2YWx1ZSwgaW4KLSMgb3JkZXIgdG8gZ2V0IHByb3BlciBuYW1lc3BhY2UgaGFuZGxpbmcgb24gb3V0cHV0LgotIwotIyBAcGFyYW0gdGV4dCBBIHN0cmluZyBjb250YWluaW5nIHRoZSBRTmFtZSB2YWx1ZSwgaW4gdGhlIGZvcm0ge3VyaX1sb2NhbCwKLSMgICAgIG9yLCBpZiB0aGUgdGFnIGFyZ3VtZW50IGlzIGdpdmVuLCB0aGUgVVJJIHBhcnQgb2YgYSBRTmFtZS4KLSMgQHBhcmFtIHRhZyBPcHRpb25hbCB0YWcuICBJZiBnaXZlbiwgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGludGVycHJldGVkIGFzCi0jICAgICBhbiBVUkksIGFuZCB0aGlzIGFyZ3VtZW50IGlzIGludGVycHJldGVkIGFzIGEgbG9jYWwgbmFtZS4KLSMgQHJldHVybiBBbiBvcGFxdWUgb2JqZWN0LCByZXByZXNlbnRpbmcgdGhlIFFOYW1lLgogCiBjbGFzcyBRTmFtZToKKyAgICAiIiJRdWFsaWZpZWQgbmFtZSB3cmFwcGVyLgorCisgICAgVGhpcyBjbGFzcyBjYW4gYmUgdXNlZCB0byB3cmFwIGEgUU5hbWUgYXR0cmlidXRlIHZhbHVlIGluIG9yZGVyIHRvIGdldAorICAgIHByb3BlciBuYW1lc3BhY2UgaGFuZGluZyBvbiBvdXRwdXQuCisKKyAgICAqdGV4dF9vcl91cmkqIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFFOYW1lIHZhbHVlIGVpdGhlciBpbiB0aGUgZm9ybQorICAgIHt1cml9bG9jYWwsIG9yIGlmIHRoZSB0YWcgYXJndW1lbnQgaXMgZ2l2ZW4sIHRoZSBVUkkgcGFydCBvZiBhIFFOYW1lLgorCisgICAgKnRhZyogaXMgYW4gb3B0aW9uYWwgYXJndW1lbnQgd2hpY2ggaWYgZ2l2ZW4sIHdpbGwgbWFrZSB0aGUgZmlyc3QKKyAgICBhcmd1bWVudCAodGV4dF9vcl91cmkpIGJlIGludGVycHJldGVkIGFzIGEgVVJJLCBhbmQgdGhpcyBhcmd1bWVudCAodGFnKQorICAgIGJlIGludGVycHJldGVkIGFzIGEgbG9jYWwgbmFtZS4KKworICAgICIiIgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXh0X29yX3VyaSwgdGFnPU5vbmUpOgogICAgICAgICBpZiB0YWc6CiAgICAgICAgICAgICB0ZXh0X29yX3VyaSA9ICJ7JXN9JXMiICUgKHRleHRfb3JfdXJpLCB0YWcpCkBAIC02MDIsNjMgKzUzOSw2NSBAQAogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMjCi0jIEVsZW1lbnRUcmVlIHdyYXBwZXIgY2xhc3MuICBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYW4gZW50aXJlIGVsZW1lbnQKLSMgaGllcmFyY2h5LCBhbmQgYWRkcyBzb21lIGV4dHJhIHN1cHBvcnQgZm9yIHNlcmlhbGl6YXRpb24gdG8gYW5kIGZyb20KLSMgc3RhbmRhcmQgWE1MLgotIwotIyBAcGFyYW0gZWxlbWVudCBPcHRpb25hbCByb290IGVsZW1lbnQuCi0jIEBrZXlwYXJhbSBmaWxlIE9wdGlvbmFsIGZpbGUgaGFuZGxlIG9yIGZpbGUgbmFtZS4gIElmIGdpdmVuLCB0aGUKLSMgICAgIHRyZWUgaXMgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgY29udGVudHMgb2YgdGhpcyBYTUwgZmlsZS4KIAogY2xhc3MgRWxlbWVudFRyZWU6CisgICAgIiIiQW4gWE1MIGVsZW1lbnQgaGllcmFyY2h5LgogCisgICAgVGhpcyBjbGFzcyBhbHNvIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHNlcmlhbGl6YXRpb24gdG8gYW5kIGZyb20KKyAgICBzdGFuZGFyZCBYTUwuCisKKyAgICAqZWxlbWVudCogaXMgYW4gb3B0aW9uYWwgcm9vdCBlbGVtZW50IG5vZGUsCisgICAgKmZpbGUqIGlzIGFuIG9wdGlvbmFsIGZpbGUgaGFuZGxlIG9yIGZpbGUgbmFtZSBvZiBhbiBYTUwgZmlsZSB3aG9zZQorICAgIGNvbnRlbnRzIHdpbGwgYmUgdXNlZCB0byBpbml0aWFsaXplIHRoZSB0cmVlIHdpdGguCisKKyAgICAiIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgZWxlbWVudD1Ob25lLCBmaWxlPU5vbmUpOgogICAgICAgICAjIGFzc2VydCBlbGVtZW50IGlzIE5vbmUgb3IgaXNlbGVtZW50KGVsZW1lbnQpCiAgICAgICAgIHNlbGYuX3Jvb3QgPSBlbGVtZW50ICMgZmlyc3Qgbm9kZQogICAgICAgICBpZiBmaWxlOgogICAgICAgICAgICAgc2VsZi5wYXJzZShmaWxlKQogCi0gICAgIyMKLSAgICAjIEdldHMgdGhlIHJvb3QgZWxlbWVudCBmb3IgdGhpcyB0cmVlLgotICAgICMKLSAgICAjIEByZXR1cm4gQW4gZWxlbWVudCBpbnN0YW5jZS4KLSAgICAjIEBkZWZyZXR1cm4gRWxlbWVudAotCiAgICAgZGVmIGdldHJvb3Qoc2VsZik6CisgICAgICAgICIiIlJldHVybiByb290IGVsZW1lbnQgb2YgdGhpcyB0cmVlLiIiIgogICAgICAgICByZXR1cm4gc2VsZi5fcm9vdAogCi0gICAgIyMKLSAgICAjIFJlcGxhY2VzIHRoZSByb290IGVsZW1lbnQgZm9yIHRoaXMgdHJlZS4gIFRoaXMgZGlzY2FyZHMgdGhlCi0gICAgIyBjdXJyZW50IGNvbnRlbnRzIG9mIHRoZSB0cmVlLCBhbmQgcmVwbGFjZXMgaXQgd2l0aCB0aGUgZ2l2ZW4KLSAgICAjIGVsZW1lbnQuICBVc2Ugd2l0aCBjYXJlLgotICAgICMKLSAgICAjIEBwYXJhbSBlbGVtZW50IEFuIGVsZW1lbnQgaW5zdGFuY2UuCi0KICAgICBkZWYgX3NldHJvb3Qoc2VsZiwgZWxlbWVudCk6CisgICAgICAgICIiIlJlcGxhY2Ugcm9vdCBlbGVtZW50IG9mIHRoaXMgdHJlZS4KKworICAgICAgICBUaGlzIHdpbGwgZGlzY2FyZCB0aGUgY3VycmVudCBjb250ZW50cyBvZiB0aGUgdHJlZSBhbmQgcmVwbGFjZSBpdAorICAgICAgICB3aXRoIHRoZSBnaXZlbiBlbGVtZW50LiAgVXNlIHdpdGggY2FyZSEKKworICAgICAgICAiIiIKICAgICAgICAgIyBhc3NlcnQgaXNlbGVtZW50KGVsZW1lbnQpCiAgICAgICAgIHNlbGYuX3Jvb3QgPSBlbGVtZW50CiAKLSAgICAjIwotICAgICMgTG9hZHMgYW4gZXh0ZXJuYWwgWE1MIGRvY3VtZW50IGludG8gdGhpcyBlbGVtZW50IHRyZWUuCi0gICAgIwotICAgICMgQHBhcmFtIHNvdXJjZSBBIGZpbGUgbmFtZSBvciBmaWxlIG9iamVjdC4gIElmIGEgZmlsZSBvYmplY3QgaXMKLSAgICAjICAgICBnaXZlbiwgaXQgb25seSBoYXMgdG8gaW1wbGVtZW50IGEgPGI+cmVhZChuKTwvYj4gbWV0aG9kLgotICAgICMgQGtleXBhcmFtIHBhcnNlciBBbiBvcHRpb25hbCBwYXJzZXIgaW5zdGFuY2UuICBJZiBub3QgZ2l2ZW4sIHRoZQotICAgICMgICAgIHN0YW5kYXJkIHtAbGluayBYTUxQYXJzZXJ9IHBhcnNlciBpcyB1c2VkLgotICAgICMgQHJldHVybiBUaGUgZG9jdW1lbnQgcm9vdCBlbGVtZW50LgotICAgICMgQGRlZnJldHVybiBFbGVtZW50Ci0gICAgIyBAZXhjZXB0aW9uIFBhcnNlRXJyb3IgSWYgdGhlIHBhcnNlciBmYWlscyB0byBwYXJzZSB0aGUgZG9jdW1lbnQuCi0KICAgICBkZWYgcGFyc2Uoc2VsZiwgc291cmNlLCBwYXJzZXI9Tm9uZSk6CisgICAgICAgICIiIkxvYWQgZXh0ZXJuYWwgWE1MIGRvY3VtZW50IGludG8gZWxlbWVudCB0cmVlLgorCisgICAgICAgICpzb3VyY2UqIGlzIGEgZmlsZSBuYW1lIG9yIGZpbGUgb2JqZWN0LCAqcGFyc2VyKiBpcyBhbiBvcHRpb25hbCBwYXJzZXIKKyAgICAgICAgaW5zdGFuY2UgdGhhdCBkZWZhdWx0cyB0byBYTUxQYXJzZXIuCisKKyAgICAgICAgUGFyc2VFcnJvciBpcyByYWlzZWQgaWYgdGhlIHBhcnNlciBmYWlscyB0byBwYXJzZSB0aGUgZG9jdW1lbnQuCisKKyAgICAgICAgUmV0dXJucyB0aGUgcm9vdCBlbGVtZW50IG9mIHRoZSBnaXZlbiBzb3VyY2UgZG9jdW1lbnQuCisKKyAgICAgICAgIiIiCiAgICAgICAgIGNsb3NlX3NvdXJjZSA9IEZhbHNlCiAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNvdXJjZSwgInJlYWQiKToKICAgICAgICAgICAgIHNvdXJjZSA9IG9wZW4oc291cmNlLCAicmIiKQogICAgICAgICAgICAgY2xvc2Vfc291cmNlID0gVHJ1ZQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpZiBub3QgcGFyc2VyOgotICAgICAgICAgICAgICAgIHBhcnNlciA9IFhNTFBhcnNlcih0YXJnZXQ9VHJlZUJ1aWxkZXIoKSkKLSAgICAgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICBpZiBwYXJzZXIgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAjIElmIG5vIHBhcnNlciB3YXMgc3BlY2lmaWVkLCBjcmVhdGUgYSBkZWZhdWx0IFhNTFBhcnNlcgorICAgICAgICAgICAgICAgIHBhcnNlciA9IFhNTFBhcnNlcigpCisgICAgICAgICAgICAgICAgaWYgaGFzYXR0cihwYXJzZXIsICdfcGFyc2Vfd2hvbGUnKToKKyAgICAgICAgICAgICAgICAgICAgIyBUaGUgZGVmYXVsdCBYTUxQYXJzZXIsIHdoZW4gaXQgY29tZXMgZnJvbSBhbiBhY2NlbGVyYXRvciwKKyAgICAgICAgICAgICAgICAgICAgIyBjYW4gZGVmaW5lIGFuIGludGVybmFsIF9wYXJzZV93aG9sZSBBUEkgZm9yIGVmZmljaWVuY3kuCisgICAgICAgICAgICAgICAgICAgICMgSXQgY2FuIGJlIHVzZWQgdG8gcGFyc2UgdGhlIHdob2xlIHNvdXJjZSB3aXRob3V0IGZlZWRpbmcKKyAgICAgICAgICAgICAgICAgICAgIyBpdCB3aXRoIGNodW5rcy4KKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcm9vdCA9IHBhcnNlci5fcGFyc2Vfd2hvbGUoc291cmNlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcm9vdAorICAgICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgICAgICBkYXRhID0gc291cmNlLnJlYWQoNjU1MzYpCiAgICAgICAgICAgICAgICAgaWYgbm90IGRhdGE6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCkBAIC02NjksMTUgKzYwOCwxNSBAQAogICAgICAgICAgICAgaWYgY2xvc2Vfc291cmNlOgogICAgICAgICAgICAgICAgIHNvdXJjZS5jbG9zZSgpCiAKLSAgICAjIwotICAgICMgQ3JlYXRlcyBhIHRyZWUgaXRlcmF0b3IgZm9yIHRoZSByb290IGVsZW1lbnQuICBUaGUgaXRlcmF0b3IgbG9vcHMKLSAgICAjIG92ZXIgYWxsIGVsZW1lbnRzIGluIHRoaXMgdHJlZSwgaW4gZG9jdW1lbnQgb3JkZXIuCi0gICAgIwotICAgICMgQHBhcmFtIHRhZyBXaGF0IHRhZ3MgdG8gbG9vayBmb3IgKGRlZmF1bHQgaXMgdG8gcmV0dXJuIGFsbCBlbGVtZW50cykKLSAgICAjIEByZXR1cm4gQW4gaXRlcmF0b3IuCi0gICAgIyBAZGVmcmV0dXJuIGl0ZXJhdG9yCi0KICAgICBkZWYgaXRlcihzZWxmLCB0YWc9Tm9uZSk6CisgICAgICAgICIiIkNyZWF0ZSBhbmQgcmV0dXJuIHRyZWUgaXRlcmF0b3IgZm9yIHRoZSByb290IGVsZW1lbnQuCisKKyAgICAgICAgVGhlIGl0ZXJhdG9yIGxvb3BzIG92ZXIgYWxsIGVsZW1lbnRzIGluIHRoaXMgdHJlZSwgaW4gZG9jdW1lbnQgb3JkZXIuCisKKyAgICAgICAgKnRhZyogaXMgYSBzdHJpbmcgd2l0aCB0aGUgdGFnIG5hbWUgdG8gaXRlcmF0ZSBvdmVyCisgICAgICAgIChkZWZhdWx0IGlzIHRvIHJldHVybiBhbGwgZWxlbWVudHMpLgorCisgICAgICAgICIiIgogICAgICAgICAjIGFzc2VydCBzZWxmLl9yb290IGlzIG5vdCBOb25lCiAgICAgICAgIHJldHVybiBzZWxmLl9yb290Lml0ZXIodGFnKQogCkBAIC02OTEsMTUgKzYzMCwxNyBAQAogICAgICAgICApCiAgICAgICAgIHJldHVybiBsaXN0KHNlbGYuaXRlcih0YWcpKQogCi0gICAgIyMKLSAgICAjIFNhbWUgYXMgZ2V0cm9vdCgpLmZpbmQocGF0aCksIHN0YXJ0aW5nIGF0IHRoZSByb290IG9mIHRoZSB0cmVlLgotICAgICMKLSAgICAjIEBwYXJhbSBwYXRoIFdoYXQgZWxlbWVudCB0byBsb29rIGZvci4KLSAgICAjIEBrZXlwYXJhbSBuYW1lc3BhY2VzIE9wdGlvbmFsIG5hbWVzcGFjZSBwcmVmaXggbWFwLgotICAgICMgQHJldHVybiBUaGUgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCwgb3IgTm9uZSBpZiBubyBlbGVtZW50IHdhcyBmb3VuZC4KLSAgICAjIEBkZWZyZXR1cm4gRWxlbWVudCBvciBOb25lCi0KICAgICBkZWYgZmluZChzZWxmLCBwYXRoLCBuYW1lc3BhY2VzPU5vbmUpOgorICAgICAgICAiIiJGaW5kIGZpcnN0IG1hdGNoaW5nIGVsZW1lbnQgYnkgdGFnIG5hbWUgb3IgcGF0aC4KKworICAgICAgICBTYW1lIGFzIGdldHJvb3QoKS5maW5kKHBhdGgpLCB3aGljaCBpcyBFbGVtZW50LmZpbmQoKQorCisgICAgICAgICpwYXRoKiBpcyBhIHN0cmluZyBoYXZpbmcgZWl0aGVyIGFuIGVsZW1lbnQgdGFnIG9yIGFuIFhQYXRoLAorICAgICAgICAqbmFtZXNwYWNlcyogaXMgYW4gb3B0aW9uYWwgbWFwcGluZyBmcm9tIG5hbWVzcGFjZSBwcmVmaXggdG8gZnVsbCBuYW1lLgorCisgICAgICAgIFJldHVybiB0aGUgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCwgb3IgTm9uZSBpZiBubyBlbGVtZW50IHdhcyBmb3VuZC4KKworICAgICAgICAiIiIKICAgICAgICAgIyBhc3NlcnQgc2VsZi5fcm9vdCBpcyBub3QgTm9uZQogICAgICAgICBpZiBwYXRoWzoxXSA9PSAiLyI6CiAgICAgICAgICAgICBwYXRoID0gIi4iICsgcGF0aApAQCAtNzExLDE5ICs2NTIsMTcgQEAKICAgICAgICAgICAgICAgICApCiAgICAgICAgIHJldHVybiBzZWxmLl9yb290LmZpbmQocGF0aCwgbmFtZXNwYWNlcykKIAotICAgICMjCi0gICAgIyBTYW1lIGFzIGdldHJvb3QoKS5maW5kdGV4dChwYXRoKSwgc3RhcnRpbmcgYXQgdGhlIHJvb3Qgb2YgdGhlIHRyZWUuCi0gICAgIwotICAgICMgQHBhcmFtIHBhdGggV2hhdCBlbGVtZW50IHRvIGxvb2sgZm9yLgotICAgICMgQHBhcmFtIGRlZmF1bHQgV2hhdCB0byByZXR1cm4gaWYgdGhlIGVsZW1lbnQgd2FzIG5vdCBmb3VuZC4KLSAgICAjIEBrZXlwYXJhbSBuYW1lc3BhY2VzIE9wdGlvbmFsIG5hbWVzcGFjZSBwcmVmaXggbWFwLgotICAgICMgQHJldHVybiBUaGUgdGV4dCBjb250ZW50IG9mIHRoZSBmaXJzdCBtYXRjaGluZyBlbGVtZW50LCBvciB0aGUKLSAgICAjICAgICBkZWZhdWx0IHZhbHVlIG5vIGVsZW1lbnQgd2FzIGZvdW5kLiAgTm90ZSB0aGF0IGlmIHRoZSBlbGVtZW50Ci0gICAgIyAgICAgaXMgZm91bmQsIGJ1dCBoYXMgbm8gdGV4dCBjb250ZW50LCB0aGlzIG1ldGhvZCByZXR1cm5zIGFuCi0gICAgIyAgICAgZW1wdHkgc3RyaW5nLgotICAgICMgQGRlZnJldHVybiBzdHJpbmcKLQogICAgIGRlZiBmaW5kdGV4dChzZWxmLCBwYXRoLCBkZWZhdWx0PU5vbmUsIG5hbWVzcGFjZXM9Tm9uZSk6CisgICAgICAgICIiIkZpbmQgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCBieSB0YWcgbmFtZSBvciBwYXRoLgorCisgICAgICAgIFNhbWUgYXMgZ2V0cm9vdCgpLmZpbmR0ZXh0KHBhdGgpLCAgd2hpY2ggaXMgRWxlbWVudC5maW5kdGV4dCgpCisKKyAgICAgICAgKnBhdGgqIGlzIGEgc3RyaW5nIGhhdmluZyBlaXRoZXIgYW4gZWxlbWVudCB0YWcgb3IgYW4gWFBhdGgsCisgICAgICAgICpuYW1lc3BhY2VzKiBpcyBhbiBvcHRpb25hbCBtYXBwaW5nIGZyb20gbmFtZXNwYWNlIHByZWZpeCB0byBmdWxsIG5hbWUuCisKKyAgICAgICAgUmV0dXJuIHRoZSBmaXJzdCBtYXRjaGluZyBlbGVtZW50LCBvciBOb25lIGlmIG5vIGVsZW1lbnQgd2FzIGZvdW5kLgorCisgICAgICAgICIiIgogICAgICAgICAjIGFzc2VydCBzZWxmLl9yb290IGlzIG5vdCBOb25lCiAgICAgICAgIGlmIHBhdGhbOjFdID09ICIvIjoKICAgICAgICAgICAgIHBhdGggPSAiLiIgKyBwYXRoCkBAIC03MzUsMTYgKzY3NCwxNyBAQAogICAgICAgICAgICAgICAgICkKICAgICAgICAgcmV0dXJuIHNlbGYuX3Jvb3QuZmluZHRleHQocGF0aCwgZGVmYXVsdCwgbmFtZXNwYWNlcykKIAotICAgICMjCi0gICAgIyBTYW1lIGFzIGdldHJvb3QoKS5maW5kYWxsKHBhdGgpLCBzdGFydGluZyBhdCB0aGUgcm9vdCBvZiB0aGUgdHJlZS4KLSAgICAjCi0gICAgIyBAcGFyYW0gcGF0aCBXaGF0IGVsZW1lbnQgdG8gbG9vayBmb3IuCi0gICAgIyBAa2V5cGFyYW0gbmFtZXNwYWNlcyBPcHRpb25hbCBuYW1lc3BhY2UgcHJlZml4IG1hcC4KLSAgICAjIEByZXR1cm4gQSBsaXN0IG9yIGl0ZXJhdG9yIGNvbnRhaW5pbmcgYWxsIG1hdGNoaW5nIGVsZW1lbnRzLAotICAgICMgICAgaW4gZG9jdW1lbnQgb3JkZXIuCi0gICAgIyBAZGVmcmV0dXJuIGxpc3Qgb2YgRWxlbWVudCBpbnN0YW5jZXMKLQogICAgIGRlZiBmaW5kYWxsKHNlbGYsIHBhdGgsIG5hbWVzcGFjZXM9Tm9uZSk6CisgICAgICAgICIiIkZpbmQgYWxsIG1hdGNoaW5nIHN1YmVsZW1lbnRzIGJ5IHRhZyBuYW1lIG9yIHBhdGguCisKKyAgICAgICAgU2FtZSBhcyBnZXRyb290KCkuZmluZGFsbChwYXRoKSwgd2hpY2ggaXMgRWxlbWVudC5maW5kYWxsKCkuCisKKyAgICAgICAgKnBhdGgqIGlzIGEgc3RyaW5nIGhhdmluZyBlaXRoZXIgYW4gZWxlbWVudCB0YWcgb3IgYW4gWFBhdGgsCisgICAgICAgICpuYW1lc3BhY2VzKiBpcyBhbiBvcHRpb25hbCBtYXBwaW5nIGZyb20gbmFtZXNwYWNlIHByZWZpeCB0byBmdWxsIG5hbWUuCisKKyAgICAgICAgUmV0dXJuIGxpc3QgY29udGFpbmluZyBhbGwgbWF0Y2hpbmcgZWxlbWVudHMgaW4gZG9jdW1lbnQgb3JkZXIuCisKKyAgICAgICAgIiIiCiAgICAgICAgICMgYXNzZXJ0IHNlbGYuX3Jvb3QgaXMgbm90IE5vbmUKICAgICAgICAgaWYgcGF0aFs6MV0gPT0gIi8iOgogICAgICAgICAgICAgcGF0aCA9ICIuIiArIHBhdGgKQEAgLTc1NiwxNyArNjk2LDE3IEBACiAgICAgICAgICAgICAgICAgKQogICAgICAgICByZXR1cm4gc2VsZi5fcm9vdC5maW5kYWxsKHBhdGgsIG5hbWVzcGFjZXMpCiAKLSAgICAjIwotICAgICMgRmluZHMgYWxsIG1hdGNoaW5nIHN1YmVsZW1lbnRzLCBieSB0YWcgbmFtZSBvciBwYXRoLgotICAgICMgU2FtZSBhcyBnZXRyb290KCkuaXRlcmZpbmQocGF0aCkuCi0gICAgIwotICAgICMgQHBhcmFtIHBhdGggV2hhdCBlbGVtZW50IHRvIGxvb2sgZm9yLgotICAgICMgQGtleXBhcmFtIG5hbWVzcGFjZXMgT3B0aW9uYWwgbmFtZXNwYWNlIHByZWZpeCBtYXAuCi0gICAgIyBAcmV0dXJuIEFuIGl0ZXJhdG9yIG9yIHNlcXVlbmNlIGNvbnRhaW5pbmcgYWxsIG1hdGNoaW5nIGVsZW1lbnRzLAotICAgICMgICAgaW4gZG9jdW1lbnQgb3JkZXIuCi0gICAgIyBAZGVmcmV0dXJuIGEgZ2VuZXJhdGVkIHNlcXVlbmNlIG9mIEVsZW1lbnQgaW5zdGFuY2VzCi0KICAgICBkZWYgaXRlcmZpbmQoc2VsZiwgcGF0aCwgbmFtZXNwYWNlcz1Ob25lKToKKyAgICAgICAgIiIiRmluZCBhbGwgbWF0Y2hpbmcgc3ViZWxlbWVudHMgYnkgdGFnIG5hbWUgb3IgcGF0aC4KKworICAgICAgICBTYW1lIGFzIGdldHJvb3QoKS5pdGVyZmluZChwYXRoKSwgd2hpY2ggaXMgZWxlbWVudC5pdGVyZmluZCgpCisKKyAgICAgICAgKnBhdGgqIGlzIGEgc3RyaW5nIGhhdmluZyBlaXRoZXIgYW4gZWxlbWVudCB0YWcgb3IgYW4gWFBhdGgsCisgICAgICAgICpuYW1lc3BhY2VzKiBpcyBhbiBvcHRpb25hbCBtYXBwaW5nIGZyb20gbmFtZXNwYWNlIHByZWZpeCB0byBmdWxsIG5hbWUuCisKKyAgICAgICAgUmV0dXJuIGFuIGl0ZXJhYmxlIHlpZWxkaW5nIGFsbCBtYXRjaGluZyBlbGVtZW50cyBpbiBkb2N1bWVudCBvcmRlci4KKworICAgICAgICAiIiIKICAgICAgICAgIyBhc3NlcnQgc2VsZi5fcm9vdCBpcyBub3QgTm9uZQogICAgICAgICBpZiBwYXRoWzoxXSA9PSAiLyI6CiAgICAgICAgICAgICBwYXRoID0gIi4iICsgcGF0aApAQCAtNzc4LDI2ICs3MTgsMzUgQEAKICAgICAgICAgICAgICAgICApCiAgICAgICAgIHJldHVybiBzZWxmLl9yb290Lml0ZXJmaW5kKHBhdGgsIG5hbWVzcGFjZXMpCiAKLSAgICAjIwotICAgICMgV3JpdGVzIHRoZSBlbGVtZW50IHRyZWUgdG8gYSBmaWxlLCBhcyBYTUwuCi0gICAgIwotICAgICMgQGRlZiB3cml0ZShmaWxlLCAqKm9wdGlvbnMpCi0gICAgIyBAcGFyYW0gZmlsZSBBIGZpbGUgbmFtZSwgb3IgYSBmaWxlIG9iamVjdCBvcGVuZWQgZm9yIHdyaXRpbmcuCi0gICAgIyBAcGFyYW0gKipvcHRpb25zIE9wdGlvbnMsIGdpdmVuIGFzIGtleXdvcmQgYXJndW1lbnRzLgotICAgICMgQGtleXBhcmFtIGVuY29kaW5nIE9wdGlvbmFsIG91dHB1dCBlbmNvZGluZyAoZGVmYXVsdCBpcyBVUy1BU0NJSSkuCi0gICAgIyAgICAgVXNlICJ1bmljb2RlIiB0byByZXR1cm4gYSBVbmljb2RlIHN0cmluZy4KLSAgICAjIEBrZXlwYXJhbSB4bWxfZGVjbGFyYXRpb24gQ29udHJvbHMgaWYgYW4gWE1MIGRlY2xhcmF0aW9uIHNob3VsZAotICAgICMgICAgIGJlIGFkZGVkIHRvIHRoZSBmaWxlLiAgVXNlIEZhbHNlIGZvciBuZXZlciwgVHJ1ZSBmb3IgYWx3YXlzLAotICAgICMgICAgIE5vbmUgZm9yIG9ubHkgaWYgbm90IFVTLUFTQ0lJIG9yIFVURi04IG9yIFVuaWNvZGUuICBOb25lIGlzIGRlZmF1bHQuCi0gICAgIyBAa2V5cGFyYW0gZGVmYXVsdF9uYW1lc3BhY2UgU2V0cyB0aGUgZGVmYXVsdCBYTUwgbmFtZXNwYWNlIChmb3IgInhtbG5zIikuCi0gICAgIyBAa2V5cGFyYW0gbWV0aG9kIE9wdGlvbmFsIG91dHB1dCBtZXRob2QgKCJ4bWwiLCAiaHRtbCIsICJ0ZXh0IiBvcgotICAgICMgICAgICJjMTRuIjsgZGVmYXVsdCBpcyAieG1sIikuCi0KICAgICBkZWYgd3JpdGUoc2VsZiwgZmlsZV9vcl9maWxlbmFtZSwKICAgICAgICAgICAgICAgZW5jb2Rpbmc9Tm9uZSwKICAgICAgICAgICAgICAgeG1sX2RlY2xhcmF0aW9uPU5vbmUsCiAgICAgICAgICAgICAgIGRlZmF1bHRfbmFtZXNwYWNlPU5vbmUsCi0gICAgICAgICAgICAgIG1ldGhvZD1Ob25lKToKKyAgICAgICAgICAgICAgbWV0aG9kPU5vbmUsICosCisgICAgICAgICAgICAgIHNob3J0X2VtcHR5X2VsZW1lbnRzPVRydWUpOgorICAgICAgICAiIiJXcml0ZSBlbGVtZW50IHRyZWUgdG8gYSBmaWxlIGFzIFhNTC4KKworICAgICAgICBBcmd1bWVudHM6CisgICAgICAgICAgKmZpbGVfb3JfZmlsZW5hbWUqIC0tIGZpbGUgbmFtZSBvciBhIGZpbGUgb2JqZWN0IG9wZW5lZCBmb3Igd3JpdGluZworCisgICAgICAgICAgKmVuY29kaW5nKiAtLSB0aGUgb3V0cHV0IGVuY29kaW5nIChkZWZhdWx0OiBVUy1BU0NJSSkKKworICAgICAgICAgICp4bWxfZGVjbGFyYXRpb24qIC0tIGJvb2wgaW5kaWNhdGluZyBpZiBhbiBYTUwgZGVjbGFyYXRpb24gc2hvdWxkIGJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIG91dHB1dC4gSWYgTm9uZSwgYW4gWE1MIGRlY2xhcmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgYWRkZWQgaWYgZW5jb2RpbmcgSVMgTk9UIGVpdGhlciBvZjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUy1BU0NJSSwgVVRGLTgsIG9yIFVuaWNvZGUKKworICAgICAgICAgICpkZWZhdWx0X25hbWVzcGFjZSogLS0gc2V0cyB0aGUgZGVmYXVsdCBYTUwgbmFtZXNwYWNlIChmb3IgInhtbG5zIikKKworICAgICAgICAgICptZXRob2QqIC0tIGVpdGhlciAieG1sIiAoZGVmYXVsdCksICJodG1sLCAidGV4dCIsIG9yICJjMTRuIgorCisgICAgICAgICAgKnNob3J0X2VtcHR5X2VsZW1lbnRzKiAtLSBjb250cm9scyB0aGUgZm9ybWF0dGluZyBvZiBlbGVtZW50cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBjb250YWluIG5vIGNvbnRlbnQuIElmIFRydWUgKGRlZmF1bHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGV5IGFyZSBlbWl0dGVkIGFzIGEgc2luZ2xlIHNlbGYtY2xvc2VkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWcsIG90aGVyd2lzZSB0aGV5IGFyZSBlbWl0dGVkIGFzIGEgcGFpcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Ygc3RhcnQvZW5kIHRhZ3MKKworICAgICAgICAiIiIKICAgICAgICAgaWYgbm90IG1ldGhvZDoKICAgICAgICAgICAgIG1ldGhvZCA9ICJ4bWwiCiAgICAgICAgIGVsaWYgbWV0aG9kIG5vdCBpbiBfc2VyaWFsaXplOgpAQCAtODI1LDcgKzc3NCw4IEBACiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHFuYW1lcywgbmFtZXNwYWNlcyA9IF9uYW1lc3BhY2VzKHNlbGYuX3Jvb3QsIGRlZmF1bHRfbmFtZXNwYWNlKQogICAgICAgICAgICAgICAgIHNlcmlhbGl6ZSA9IF9zZXJpYWxpemVbbWV0aG9kXQotICAgICAgICAgICAgICAgIHNlcmlhbGl6ZSh3cml0ZSwgc2VsZi5fcm9vdCwgcW5hbWVzLCBuYW1lc3BhY2VzKQorICAgICAgICAgICAgICAgIHNlcmlhbGl6ZSh3cml0ZSwgc2VsZi5fcm9vdCwgcW5hbWVzLCBuYW1lc3BhY2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydF9lbXB0eV9lbGVtZW50cz1zaG9ydF9lbXB0eV9lbGVtZW50cykKIAogICAgIGRlZiB3cml0ZV9jMTRuKHNlbGYsIGZpbGUpOgogICAgICAgICAjIGx4bWwuZXRyZWUgY29tcGF0aWJpbGl0eS4gIHVzZSBvdXRwdXQgbWV0aG9kIGluc3RlYWQKQEAgLTk0Nyw3ICs4OTcsOCBAQAogICAgICAgICAgICAgYWRkX3FuYW1lKHRleHQudGV4dCkKICAgICByZXR1cm4gcW5hbWVzLCBuYW1lc3BhY2VzCiAKLWRlZiBfc2VyaWFsaXplX3htbCh3cml0ZSwgZWxlbSwgcW5hbWVzLCBuYW1lc3BhY2VzKToKK2RlZiBfc2VyaWFsaXplX3htbCh3cml0ZSwgZWxlbSwgcW5hbWVzLCBuYW1lc3BhY2VzLAorICAgICAgICAgICAgICAgICAgIHNob3J0X2VtcHR5X2VsZW1lbnRzLCAqKmt3YXJncyk6CiAgICAgdGFnID0gZWxlbS50YWcKICAgICB0ZXh0ID0gZWxlbS50ZXh0CiAgICAgaWYgdGFnIGlzIENvbW1lbnQ6CkBAIC05NjAsNyArOTExLDggQEAKICAgICAgICAgICAgIGlmIHRleHQ6CiAgICAgICAgICAgICAgICAgd3JpdGUoX2VzY2FwZV9jZGF0YSh0ZXh0KSkKICAgICAgICAgICAgIGZvciBlIGluIGVsZW06Ci0gICAgICAgICAgICAgICAgX3NlcmlhbGl6ZV94bWwod3JpdGUsIGUsIHFuYW1lcywgTm9uZSkKKyAgICAgICAgICAgICAgICBfc2VyaWFsaXplX3htbCh3cml0ZSwgZSwgcW5hbWVzLCBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0X2VtcHR5X2VsZW1lbnRzPXNob3J0X2VtcHR5X2VsZW1lbnRzKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgd3JpdGUoIjwiICsgdGFnKQogICAgICAgICAgICAgaXRlbXMgPSBsaXN0KGVsZW0uaXRlbXMoKSkKQEAgLTk4MiwxMiArOTM0LDEzIEBACiAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gX2VzY2FwZV9hdHRyaWIodikKICAgICAgICAgICAgICAgICAgICAgd3JpdGUoIiAlcz1cIiVzXCIiICUgKHFuYW1lc1trXSwgdikpCi0gICAgICAgICAgICBpZiB0ZXh0IG9yIGxlbihlbGVtKToKKyAgICAgICAgICAgIGlmIHRleHQgb3IgbGVuKGVsZW0pIG9yIG5vdCBzaG9ydF9lbXB0eV9lbGVtZW50czoKICAgICAgICAgICAgICAgICB3cml0ZSgiPiIpCiAgICAgICAgICAgICAgICAgaWYgdGV4dDoKICAgICAgICAgICAgICAgICAgICAgd3JpdGUoX2VzY2FwZV9jZGF0YSh0ZXh0KSkKICAgICAgICAgICAgICAgICBmb3IgZSBpbiBlbGVtOgotICAgICAgICAgICAgICAgICAgICBfc2VyaWFsaXplX3htbCh3cml0ZSwgZSwgcW5hbWVzLCBOb25lKQorICAgICAgICAgICAgICAgICAgICBfc2VyaWFsaXplX3htbCh3cml0ZSwgZSwgcW5hbWVzLCBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydF9lbXB0eV9lbGVtZW50cz1zaG9ydF9lbXB0eV9lbGVtZW50cykKICAgICAgICAgICAgICAgICB3cml0ZSgiPC8iICsgdGFnICsgIj4iKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICB3cml0ZSgiIC8+IikKQEAgLTEwMDIsNyArOTU1LDcgQEAKIGV4Y2VwdCBOYW1lRXJyb3I6CiAgICAgcGFzcwogCi1kZWYgX3NlcmlhbGl6ZV9odG1sKHdyaXRlLCBlbGVtLCBxbmFtZXMsIG5hbWVzcGFjZXMpOgorZGVmIF9zZXJpYWxpemVfaHRtbCh3cml0ZSwgZWxlbSwgcW5hbWVzLCBuYW1lc3BhY2VzLCAqKmt3YXJncyk6CiAgICAgdGFnID0gZWxlbS50YWcKICAgICB0ZXh0ID0gZWxlbS50ZXh0CiAgICAgaWYgdGFnIGlzIENvbW1lbnQ6CkBAIC0xMDY2LDE4ICsxMDE5LDE5IEBACiAjICAgImMxNG4iOiBfc2VyaWFsaXplX2MxNG4sCiB9CiAKLSMjCi0jIFJlZ2lzdGVycyBhIG5hbWVzcGFjZSBwcmVmaXguICBUaGUgcmVnaXN0cnkgaXMgZ2xvYmFsLCBhbmQgYW55Ci0jIGV4aXN0aW5nIG1hcHBpbmcgZm9yIGVpdGhlciB0aGUgZ2l2ZW4gcHJlZml4IG9yIHRoZSBuYW1lc3BhY2UgVVJJCi0jIHdpbGwgYmUgcmVtb3ZlZC4KLSMKLSMgQHBhcmFtIHByZWZpeCBOYW1lc3BhY2UgcHJlZml4LgotIyBAcGFyYW0gdXJpIE5hbWVzcGFjZSB1cmkuICBUYWdzIGFuZCBhdHRyaWJ1dGVzIGluIHRoaXMgbmFtZXNwYWNlCi0jICAgICB3aWxsIGJlIHNlcmlhbGl6ZWQgd2l0aCB0aGUgZ2l2ZW4gcHJlZml4LCBpZiBhdCBhbGwgcG9zc2libGUuCi0jIEBleGNlcHRpb24gVmFsdWVFcnJvciBJZiB0aGUgcHJlZml4IGlzIHJlc2VydmVkLCBvciBpcyBvdGhlcndpc2UKLSMgICAgIGludmFsaWQuCiAKIGRlZiByZWdpc3Rlcl9uYW1lc3BhY2UocHJlZml4LCB1cmkpOgorICAgICIiIlJlZ2lzdGVyIGEgbmFtZXNwYWNlIHByZWZpeC4KKworICAgIFRoZSByZWdpc3RyeSBpcyBnbG9iYWwsIGFuZCBhbnkgZXhpc3RpbmcgbWFwcGluZyBmb3IgZWl0aGVyIHRoZQorICAgIGdpdmVuIHByZWZpeCBvciB0aGUgbmFtZXNwYWNlIFVSSSB3aWxsIGJlIHJlbW92ZWQuCisKKyAgICAqcHJlZml4KiBpcyB0aGUgbmFtZXNwYWNlIHByZWZpeCwgKnVyaSogaXMgYSBuYW1lc3BhY2UgdXJpLiBUYWdzIGFuZAorICAgIGF0dHJpYnV0ZXMgaW4gdGhpcyBuYW1lc3BhY2Ugd2lsbCBiZSBzZXJpYWxpemVkIHdpdGggcHJlZml4IGlmIHBvc3NpYmxlLgorCisgICAgVmFsdWVFcnJvciBpcyByYWlzZWQgaWYgcHJlZml4IGlzIHJlc2VydmVkIG9yIGlzIGludmFsaWQuCisKKyAgICAiIiIKICAgICBpZiByZS5tYXRjaCgibnNcZCskIiwgcHJlZml4KToKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiUHJlZml4IGZvcm1hdCByZXNlcnZlZCBmb3IgaW50ZXJuYWwgdXNlIikKICAgICBmb3IgaywgdiBpbiBsaXN0KF9uYW1lc3BhY2VfbWFwLml0ZW1zKCkpOgpAQCAtMTE1Myw0MCArMTEwNywyNyBAQAogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMjCi0jIEdlbmVyYXRlcyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBYTUwgZWxlbWVudCwgaW5jbHVkaW5nIGFsbAotIyBzdWJlbGVtZW50cy4gIElmIGVuY29kaW5nIGlzICJ1bmljb2RlIiwgdGhlIHJldHVybiB0eXBlIGlzIGEgc3RyaW5nOwotIyBvdGhlcndpc2UgaXQgaXMgYSBieXRlcyBhcnJheS4KLSMKLSMgQHBhcmFtIGVsZW1lbnQgQW4gRWxlbWVudCBpbnN0YW5jZS4KLSMgQGtleXBhcmFtIGVuY29kaW5nIE9wdGlvbmFsIG91dHB1dCBlbmNvZGluZyAoZGVmYXVsdCBpcyBVUy1BU0NJSSkuCi0jICAgICBVc2UgInVuaWNvZGUiIHRvIHJldHVybiBhIFVuaWNvZGUgc3RyaW5nLgotIyBAa2V5cGFyYW0gbWV0aG9kIE9wdGlvbmFsIG91dHB1dCBtZXRob2QgKCJ4bWwiLCAiaHRtbCIsICJ0ZXh0IiBvcgotIyAgICAgImMxNG4iOyBkZWZhdWx0IGlzICJ4bWwiKS4KLSMgQHJldHVybiBBbiAob3B0aW9uYWxseSkgZW5jb2RlZCBzdHJpbmcgY29udGFpbmluZyB0aGUgWE1MIGRhdGEuCi0jIEBkZWZyZXR1cm4gc3RyaW5nCitkZWYgdG9zdHJpbmcoZWxlbWVudCwgZW5jb2Rpbmc9Tm9uZSwgbWV0aG9kPU5vbmUsICosCisgICAgICAgICAgICAgc2hvcnRfZW1wdHlfZWxlbWVudHM9VHJ1ZSk6CisgICAgIiIiR2VuZXJhdGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIFhNTCBlbGVtZW50LgogCi1kZWYgdG9zdHJpbmcoZWxlbWVudCwgZW5jb2Rpbmc9Tm9uZSwgbWV0aG9kPU5vbmUpOgorICAgIEFsbCBzdWJlbGVtZW50cyBhcmUgaW5jbHVkZWQuICBJZiBlbmNvZGluZyBpcyAidW5pY29kZSIsIGEgc3RyaW5nCisgICAgaXMgcmV0dXJuZWQuIE90aGVyd2lzZSBhIGJ5dGVzdHJpbmcgaXMgcmV0dXJuZWQuCisKKyAgICAqZWxlbWVudCogaXMgYW4gRWxlbWVudCBpbnN0YW5jZSwgKmVuY29kaW5nKiBpcyBhbiBvcHRpb25hbCBvdXRwdXQKKyAgICBlbmNvZGluZyBkZWZhdWx0aW5nIHRvIFVTLUFTQ0lJLCAqbWV0aG9kKiBpcyBhbiBvcHRpb25hbCBvdXRwdXQgd2hpY2ggY2FuCisgICAgYmUgb25lIG9mICJ4bWwiIChkZWZhdWx0KSwgImh0bWwiLCAidGV4dCIgb3IgImMxNG4iLgorCisgICAgUmV0dXJucyBhbiAob3B0aW9uYWxseSkgZW5jb2RlZCBzdHJpbmcgY29udGFpbmluZyB0aGUgWE1MIGRhdGEuCisKKyAgICAiIiIKICAgICBzdHJlYW0gPSBpby5TdHJpbmdJTygpIGlmIGVuY29kaW5nID09ICd1bmljb2RlJyBlbHNlIGlvLkJ5dGVzSU8oKQotICAgIEVsZW1lbnRUcmVlKGVsZW1lbnQpLndyaXRlKHN0cmVhbSwgZW5jb2RpbmcsIG1ldGhvZD1tZXRob2QpCisgICAgRWxlbWVudFRyZWUoZWxlbWVudCkud3JpdGUoc3RyZWFtLCBlbmNvZGluZywgbWV0aG9kPW1ldGhvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydF9lbXB0eV9lbGVtZW50cz1zaG9ydF9lbXB0eV9lbGVtZW50cykKICAgICByZXR1cm4gc3RyZWFtLmdldHZhbHVlKCkKIAotIyMKLSMgR2VuZXJhdGVzIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIFhNTCBlbGVtZW50LCBpbmNsdWRpbmcgYWxsCi0jIHN1YmVsZW1lbnRzLgotIwotIyBAcGFyYW0gZWxlbWVudCBBbiBFbGVtZW50IGluc3RhbmNlLgotIyBAa2V5cGFyYW0gZW5jb2RpbmcgT3B0aW9uYWwgb3V0cHV0IGVuY29kaW5nIChkZWZhdWx0IGlzIFVTLUFTQ0lJKS4KLSMgICAgIFVzZSAidW5pY29kZSIgdG8gcmV0dXJuIGEgVW5pY29kZSBzdHJpbmcuCi0jIEBrZXlwYXJhbSBtZXRob2QgT3B0aW9uYWwgb3V0cHV0IG1ldGhvZCAoInhtbCIsICJodG1sIiwgInRleHQiIG9yCi0jICAgICAiYzE0biI7IGRlZmF1bHQgaXMgInhtbCIpLgotIyBAcmV0dXJuIEEgc2VxdWVuY2Ugb2JqZWN0IGNvbnRhaW5pbmcgdGhlIFhNTCBkYXRhLgotIyBAZGVmcmV0dXJuIHNlcXVlbmNlCi0jIEBzaW5jZSAxLjMKLQogY2xhc3MgX0xpc3REYXRhU3RyZWFtKGlvLkJ1ZmZlcmVkSU9CYXNlKToKLSAgICAiIiIgQW4gYXV4aWxpYXJ5IHN0cmVhbSBhY2N1bXVsYXRpbmcgaW50byBhIGxpc3QgcmVmZXJlbmNlCi0gICAgIiIiCisgICAgIiIiQW4gYXV4aWxpYXJ5IHN0cmVhbSBhY2N1bXVsYXRpbmcgaW50byBhIGxpc3QgcmVmZXJlbmNlLiIiIgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsc3QpOgogICAgICAgICBzZWxmLmxzdCA9IGxzdAogCkBAIC0xMjAyLDIyICsxMTQzLDI1IEBACiAgICAgZGVmIHRlbGwoc2VsZik6CiAgICAgICAgIHJldHVybiBsZW4oc2VsZi5sc3QpCiAKLWRlZiB0b3N0cmluZ2xpc3QoZWxlbWVudCwgZW5jb2Rpbmc9Tm9uZSwgbWV0aG9kPU5vbmUpOgorZGVmIHRvc3RyaW5nbGlzdChlbGVtZW50LCBlbmNvZGluZz1Ob25lLCBtZXRob2Q9Tm9uZSwgKiwKKyAgICAgICAgICAgICAgICAgc2hvcnRfZW1wdHlfZWxlbWVudHM9VHJ1ZSk6CiAgICAgbHN0ID0gW10KICAgICBzdHJlYW0gPSBfTGlzdERhdGFTdHJlYW0obHN0KQotICAgIEVsZW1lbnRUcmVlKGVsZW1lbnQpLndyaXRlKHN0cmVhbSwgZW5jb2RpbmcsIG1ldGhvZD1tZXRob2QpCisgICAgRWxlbWVudFRyZWUoZWxlbWVudCkud3JpdGUoc3RyZWFtLCBlbmNvZGluZywgbWV0aG9kPW1ldGhvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydF9lbXB0eV9lbGVtZW50cz1zaG9ydF9lbXB0eV9lbGVtZW50cykKICAgICByZXR1cm4gbHN0CiAKLSMjCi0jIFdyaXRlcyBhbiBlbGVtZW50IHRyZWUgb3IgZWxlbWVudCBzdHJ1Y3R1cmUgdG8gc3lzLnN0ZG91dC4gIFRoaXMKLSMgZnVuY3Rpb24gc2hvdWxkIGJlIHVzZWQgZm9yIGRlYnVnZ2luZyBvbmx5LgotIyA8cD4KLSMgVGhlIGV4YWN0IG91dHB1dCBmb3JtYXQgaXMgaW1wbGVtZW50YXRpb24gZGVwZW5kZW50LiAgSW4gdGhpcwotIyB2ZXJzaW9uLCBpdCdzIHdyaXR0ZW4gYXMgYW4gb3JkaW5hcnkgWE1MIGZpbGUuCi0jCi0jIEBwYXJhbSBlbGVtIEFuIGVsZW1lbnQgdHJlZSBvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnQuCiAKIGRlZiBkdW1wKGVsZW0pOgorICAgICIiIldyaXRlIGVsZW1lbnQgdHJlZSBvciBlbGVtZW50IHN0cnVjdHVyZSB0byBzeXMuc3Rkb3V0LgorCisgICAgVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgdXNlZCBmb3IgZGVidWdnaW5nIG9ubHkuCisKKyAgICAqZWxlbSogaXMgZWl0aGVyIGFuIEVsZW1lbnRUcmVlLCBvciBhIHNpbmdsZSBFbGVtZW50LiAgVGhlIGV4YWN0IG91dHB1dAorICAgIGZvcm1hdCBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQuICBJbiB0aGlzIHZlcnNpb24sIGl0J3Mgd3JpdHRlbiBhcyBhbgorICAgIG9yZGluYXJ5IFhNTCBmaWxlLgorCisgICAgIiIiCiAgICAgIyBkZWJ1Z2dpbmcKICAgICBpZiBub3QgaXNpbnN0YW5jZShlbGVtLCBFbGVtZW50VHJlZSk6CiAgICAgICAgIGVsZW0gPSBFbGVtZW50VHJlZShlbGVtKQpAQCAtMTIyOSwxNDQgKzExNzMsMTUxIEBACiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIHBhcnNpbmcKIAotIyMKLSMgUGFyc2VzIGFuIFhNTCBkb2N1bWVudCBpbnRvIGFuIGVsZW1lbnQgdHJlZS4KLSMKLSMgQHBhcmFtIHNvdXJjZSBBIGZpbGVuYW1lIG9yIGZpbGUgb2JqZWN0IGNvbnRhaW5pbmcgWE1MIGRhdGEuCi0jIEBwYXJhbSBwYXJzZXIgQW4gb3B0aW9uYWwgcGFyc2VyIGluc3RhbmNlLiAgSWYgbm90IGdpdmVuLCB0aGUKLSMgICAgIHN0YW5kYXJkIHtAbGluayBYTUxQYXJzZXJ9IHBhcnNlciBpcyB1c2VkLgotIyBAcmV0dXJuIEFuIEVsZW1lbnRUcmVlIGluc3RhbmNlCiAKIGRlZiBwYXJzZShzb3VyY2UsIHBhcnNlcj1Ob25lKToKKyAgICAiIiJQYXJzZSBYTUwgZG9jdW1lbnQgaW50byBlbGVtZW50IHRyZWUuCisKKyAgICAqc291cmNlKiBpcyBhIGZpbGVuYW1lIG9yIGZpbGUgb2JqZWN0IGNvbnRhaW5pbmcgWE1MIGRhdGEsCisgICAgKnBhcnNlciogaXMgYW4gb3B0aW9uYWwgcGFyc2VyIGluc3RhbmNlIGRlZmF1bHRpbmcgdG8gWE1MUGFyc2VyLgorCisgICAgUmV0dXJuIGFuIEVsZW1lbnRUcmVlIGluc3RhbmNlLgorCisgICAgIiIiCiAgICAgdHJlZSA9IEVsZW1lbnRUcmVlKCkKICAgICB0cmVlLnBhcnNlKHNvdXJjZSwgcGFyc2VyKQogICAgIHJldHVybiB0cmVlCiAKLSMjCi0jIFBhcnNlcyBhbiBYTUwgZG9jdW1lbnQgaW50byBhbiBlbGVtZW50IHRyZWUgaW5jcmVtZW50YWxseSwgYW5kIHJlcG9ydHMKLSMgd2hhdCdzIGdvaW5nIG9uIHRvIHRoZSB1c2VyLgotIwotIyBAcGFyYW0gc291cmNlIEEgZmlsZW5hbWUgb3IgZmlsZSBvYmplY3QgY29udGFpbmluZyBYTUwgZGF0YS4KLSMgQHBhcmFtIGV2ZW50cyBBIGxpc3Qgb2YgZXZlbnRzIHRvIHJlcG9ydCBiYWNrLiAgSWYgb21pdHRlZCwgb25seSAiZW5kIgotIyAgICAgZXZlbnRzIGFyZSByZXBvcnRlZC4KLSMgQHBhcmFtIHBhcnNlciBBbiBvcHRpb25hbCBwYXJzZXIgaW5zdGFuY2UuICBJZiBub3QgZ2l2ZW4sIHRoZQotIyAgICAgc3RhbmRhcmQge0BsaW5rIFhNTFBhcnNlcn0gcGFyc2VyIGlzIHVzZWQuCi0jIEByZXR1cm4gQSAoZXZlbnQsIGVsZW0pIGl0ZXJhdG9yLgogCiBkZWYgaXRlcnBhcnNlKHNvdXJjZSwgZXZlbnRzPU5vbmUsIHBhcnNlcj1Ob25lKToKKyAgICAiIiJJbmNyZW1lbnRhbGx5IHBhcnNlIFhNTCBkb2N1bWVudCBpbnRvIEVsZW1lbnRUcmVlLgorCisgICAgVGhpcyBjbGFzcyBhbHNvIHJlcG9ydHMgd2hhdCdzIGdvaW5nIG9uIHRvIHRoZSB1c2VyIGJhc2VkIG9uIHRoZQorICAgICpldmVudHMqIGl0IGlzIGluaXRpYWxpemVkIHdpdGguICBUaGUgc3VwcG9ydGVkIGV2ZW50cyBhcmUgdGhlIHN0cmluZ3MKKyAgICAic3RhcnQiLCAiZW5kIiwgInN0YXJ0LW5zIiBhbmQgImVuZC1ucyIgKHRoZSAibnMiIGV2ZW50cyBhcmUgdXNlZCB0byBnZXQKKyAgICBkZXRhaWxlZCBuYW1lc3BhY2UgaW5mb3JtYXRpb24pLiAgSWYgKmV2ZW50cyogaXMgb21pdHRlZCwgb25seQorICAgICJlbmQiIGV2ZW50cyBhcmUgcmVwb3J0ZWQuCisKKyAgICAqc291cmNlKiBpcyBhIGZpbGVuYW1lIG9yIGZpbGUgb2JqZWN0IGNvbnRhaW5pbmcgWE1MIGRhdGEsICpldmVudHMqIGlzCisgICAgYSBsaXN0IG9mIGV2ZW50cyB0byByZXBvcnQgYmFjaywgKnBhcnNlciogaXMgYW4gb3B0aW9uYWwgcGFyc2VyIGluc3RhbmNlLgorCisgICAgUmV0dXJucyBhbiBpdGVyYXRvciBwcm92aWRpbmcgKGV2ZW50LCBlbGVtKSBwYWlycy4KKworICAgICIiIgogICAgIGNsb3NlX3NvdXJjZSA9IEZhbHNlCiAgICAgaWYgbm90IGhhc2F0dHIoc291cmNlLCAicmVhZCIpOgogICAgICAgICBzb3VyY2UgPSBvcGVuKHNvdXJjZSwgInJiIikKICAgICAgICAgY2xvc2Vfc291cmNlID0gVHJ1ZQotICAgIGlmIG5vdCBwYXJzZXI6Ci0gICAgICAgIHBhcnNlciA9IFhNTFBhcnNlcih0YXJnZXQ9VHJlZUJ1aWxkZXIoKSkKICAgICByZXR1cm4gX0l0ZXJQYXJzZUl0ZXJhdG9yKHNvdXJjZSwgZXZlbnRzLCBwYXJzZXIsIGNsb3NlX3NvdXJjZSkKIAotY2xhc3MgX0l0ZXJQYXJzZUl0ZXJhdG9yOgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZSwgZXZlbnRzLCBwYXJzZXIsIGNsb3NlX3NvdXJjZT1GYWxzZSk6Ci0gICAgICAgIHNlbGYuX2ZpbGUgPSBzb3VyY2UKLSAgICAgICAgc2VsZi5fY2xvc2VfZmlsZSA9IGNsb3NlX3NvdXJjZQotICAgICAgICBzZWxmLl9ldmVudHMgPSBbXQorY2xhc3MgSW5jcmVtZW50YWxQYXJzZXI6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXZlbnRzPU5vbmUsIHBhcnNlcj1Ob25lKToKKyAgICAgICAgIyBfZWxlbWVudHRyZWUuYyBleHBlY3RzIGEgbGlzdCwgbm90IGEgZGVxdWUKKyAgICAgICAgc2VsZi5fZXZlbnRzX3F1ZXVlID0gW10KICAgICAgICAgc2VsZi5faW5kZXggPSAwCi0gICAgICAgIHNlbGYuX2Vycm9yID0gTm9uZQogICAgICAgICBzZWxmLnJvb3QgPSBzZWxmLl9yb290ID0gTm9uZQorICAgICAgICBpZiBub3QgcGFyc2VyOgorICAgICAgICAgICAgcGFyc2VyID0gWE1MUGFyc2VyKHRhcmdldD1UcmVlQnVpbGRlcigpKQogICAgICAgICBzZWxmLl9wYXJzZXIgPSBwYXJzZXIKICAgICAgICAgIyB3aXJlIHVwIHRoZSBwYXJzZXIgZm9yIGV2ZW50IHJlcG9ydGluZwotICAgICAgICBwYXJzZXIgPSBzZWxmLl9wYXJzZXIuX3BhcnNlcgotICAgICAgICBhcHBlbmQgPSBzZWxmLl9ldmVudHMuYXBwZW5kCiAgICAgICAgIGlmIGV2ZW50cyBpcyBOb25lOgotICAgICAgICAgICAgZXZlbnRzID0gWyJlbmQiXQotICAgICAgICBmb3IgZXZlbnQgaW4gZXZlbnRzOgotICAgICAgICAgICAgaWYgZXZlbnQgPT0gInN0YXJ0IjoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHBhcnNlci5vcmRlcmVkX2F0dHJpYnV0ZXMgPSAxCi0gICAgICAgICAgICAgICAgICAgIHBhcnNlci5zcGVjaWZpZWRfYXR0cmlidXRlcyA9IDEKLSAgICAgICAgICAgICAgICAgICAgZGVmIGhhbmRsZXIodGFnLCBhdHRyaWJfaW4sIGV2ZW50PWV2ZW50LCBhcHBlbmQ9YXBwZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydD1zZWxmLl9wYXJzZXIuX3N0YXJ0X2xpc3QpOgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKChldmVudCwgc3RhcnQodGFnLCBhdHRyaWJfaW4pKSkKLSAgICAgICAgICAgICAgICAgICAgcGFyc2VyLlN0YXJ0RWxlbWVudEhhbmRsZXIgPSBoYW5kbGVyCi0gICAgICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgICAgICAgICBkZWYgaGFuZGxlcih0YWcsIGF0dHJpYl9pbiwgZXZlbnQ9ZXZlbnQsIGFwcGVuZD1hcHBlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0PXNlbGYuX3BhcnNlci5fc3RhcnQpOgotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kKChldmVudCwgc3RhcnQodGFnLCBhdHRyaWJfaW4pKSkKLSAgICAgICAgICAgICAgICAgICAgcGFyc2VyLlN0YXJ0RWxlbWVudEhhbmRsZXIgPSBoYW5kbGVyCi0gICAgICAgICAgICBlbGlmIGV2ZW50ID09ICJlbmQiOgotICAgICAgICAgICAgICAgIGRlZiBoYW5kbGVyKHRhZywgZXZlbnQ9ZXZlbnQsIGFwcGVuZD1hcHBlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kPXNlbGYuX3BhcnNlci5fZW5kKToKLSAgICAgICAgICAgICAgICAgICAgYXBwZW5kKChldmVudCwgZW5kKHRhZykpKQotICAgICAgICAgICAgICAgIHBhcnNlci5FbmRFbGVtZW50SGFuZGxlciA9IGhhbmRsZXIKLSAgICAgICAgICAgIGVsaWYgZXZlbnQgPT0gInN0YXJ0LW5zIjoKLSAgICAgICAgICAgICAgICBkZWYgaGFuZGxlcihwcmVmaXgsIHVyaSwgZXZlbnQ9ZXZlbnQsIGFwcGVuZD1hcHBlbmQpOgotICAgICAgICAgICAgICAgICAgICBhcHBlbmQoKGV2ZW50LCAocHJlZml4IG9yICIiLCB1cmkgb3IgIiIpKSkKLSAgICAgICAgICAgICAgICBwYXJzZXIuU3RhcnROYW1lc3BhY2VEZWNsSGFuZGxlciA9IGhhbmRsZXIKLSAgICAgICAgICAgIGVsaWYgZXZlbnQgPT0gImVuZC1ucyI6Ci0gICAgICAgICAgICAgICAgZGVmIGhhbmRsZXIocHJlZml4LCBldmVudD1ldmVudCwgYXBwZW5kPWFwcGVuZCk6Ci0gICAgICAgICAgICAgICAgICAgIGFwcGVuZCgoZXZlbnQsIE5vbmUpKQotICAgICAgICAgICAgICAgIHBhcnNlci5FbmROYW1lc3BhY2VEZWNsSGFuZGxlciA9IGhhbmRsZXIKKyAgICAgICAgICAgIGV2ZW50cyA9ICgiZW5kIiwpCisgICAgICAgIHNlbGYuX3BhcnNlci5fc2V0ZXZlbnRzKHNlbGYuX2V2ZW50c19xdWV1ZSwgZXZlbnRzKQorCisgICAgZGVmIGRhdGFfcmVjZWl2ZWQoc2VsZiwgZGF0YSk6CisgICAgICAgIGlmIHNlbGYuX3BhcnNlciBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiZGF0YV9yZWNlaXZlZCgpIGNhbGxlZCBhZnRlciBlbmQgb2Ygc3RyZWFtIikKKyAgICAgICAgaWYgZGF0YToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLl9wYXJzZXIuZmVlZChkYXRhKQorICAgICAgICAgICAgZXhjZXB0IFN5bnRheEVycm9yIGFzIGV4YzoKKyAgICAgICAgICAgICAgICBzZWxmLl9ldmVudHNfcXVldWUuYXBwZW5kKGV4YykKKworICAgIGRlZiBlb2ZfcmVjZWl2ZWQoc2VsZik6CisgICAgICAgIHNlbGYuX3Jvb3QgPSBzZWxmLl9wYXJzZXIuY2xvc2UoKQorICAgICAgICBzZWxmLl9wYXJzZXIgPSBOb25lCisgICAgICAgIGlmIHNlbGYuX2luZGV4ID49IGxlbihzZWxmLl9ldmVudHNfcXVldWUpOgorICAgICAgICAgICAgc2VsZi5yb290ID0gc2VsZi5fcm9vdAorCisgICAgZGVmIGV2ZW50cyhzZWxmKToKKyAgICAgICAgZXZlbnRzID0gc2VsZi5fZXZlbnRzX3F1ZXVlCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICBpbmRleCA9IHNlbGYuX2luZGV4CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZXZlbnQgPSBldmVudHNbc2VsZi5faW5kZXhdCisgICAgICAgICAgICAgICAgIyBBdm9pZCByZXRhaW5pbmcgcmVmZXJlbmNlcyB0byBwYXN0IGV2ZW50cworICAgICAgICAgICAgICAgIGV2ZW50c1tzZWxmLl9pbmRleF0gPSBOb25lCisgICAgICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgaW5kZXggKz0gMQorICAgICAgICAgICAgIyBDb21wYWN0IHRoZSBsaXN0IGluIGEgTygxKSBhbW9ydGl6ZWQgZmFzaGlvbgorICAgICAgICAgICAgaWYgaW5kZXggKiAyID49IGxlbihldmVudHMpOgorICAgICAgICAgICAgICAgIGV2ZW50c1s6aW5kZXhdID0gW10KKyAgICAgICAgICAgICAgICBzZWxmLl9pbmRleCA9IDAKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidW5rbm93biBldmVudCAlciIgJSBldmVudCkKKyAgICAgICAgICAgICAgICBzZWxmLl9pbmRleCA9IGluZGV4CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGV2ZW50LCBFeGNlcHRpb24pOgorICAgICAgICAgICAgICAgIHJhaXNlIGV2ZW50CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHlpZWxkIGV2ZW50CisgICAgICAgIGlmIHNlbGYuX3BhcnNlciBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5yb290ID0gc2VsZi5fcm9vdAorCisKK2NsYXNzIF9JdGVyUGFyc2VJdGVyYXRvcihJbmNyZW1lbnRhbFBhcnNlcik6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlLCBldmVudHMsIHBhcnNlciwgY2xvc2Vfc291cmNlPUZhbHNlKToKKyAgICAgICAgSW5jcmVtZW50YWxQYXJzZXIuX19pbml0X18oc2VsZiwgZXZlbnRzLCBwYXJzZXIpCisgICAgICAgIHNlbGYuX2ZpbGUgPSBzb3VyY2UKKyAgICAgICAgc2VsZi5fY2xvc2VfZmlsZSA9IGNsb3NlX3NvdXJjZQogCiAgICAgZGVmIF9fbmV4dF9fKHNlbGYpOgogICAgICAgICB3aGlsZSAxOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGl0ZW0gPSBzZWxmLl9ldmVudHNbc2VsZi5faW5kZXhdCi0gICAgICAgICAgICAgICAgc2VsZi5faW5kZXggKz0gMQotICAgICAgICAgICAgICAgIHJldHVybiBpdGVtCi0gICAgICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBpZiBzZWxmLl9lcnJvcjoKLSAgICAgICAgICAgICAgICBlID0gc2VsZi5fZXJyb3IKLSAgICAgICAgICAgICAgICBzZWxmLl9lcnJvciA9IE5vbmUKLSAgICAgICAgICAgICAgICByYWlzZSBlCisgICAgICAgICAgICBmb3IgZXZlbnQgaW4gc2VsZi5ldmVudHMoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQKICAgICAgICAgICAgIGlmIHNlbGYuX3BhcnNlciBpcyBOb25lOgotICAgICAgICAgICAgICAgIHNlbGYucm9vdCA9IHNlbGYuX3Jvb3QKICAgICAgICAgICAgICAgICBpZiBzZWxmLl9jbG9zZV9maWxlOgogICAgICAgICAgICAgICAgICAgICBzZWxmLl9maWxlLmNsb3NlKCkKICAgICAgICAgICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCiAgICAgICAgICAgICAjIGxvYWQgZXZlbnQgYnVmZmVyCi0gICAgICAgICAgICBkZWwgc2VsZi5fZXZlbnRzWzpdCi0gICAgICAgICAgICBzZWxmLl9pbmRleCA9IDAKICAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9maWxlLnJlYWQoMTYzODQpCiAgICAgICAgICAgICBpZiBkYXRhOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFyc2VyLmZlZWQoZGF0YSkKLSAgICAgICAgICAgICAgICBleGNlcHQgU3ludGF4RXJyb3IgYXMgZXhjOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9lcnJvciA9IGV4YworICAgICAgICAgICAgICAgIHNlbGYuZGF0YV9yZWNlaXZlZChkYXRhKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl9yb290ID0gc2VsZi5fcGFyc2VyLmNsb3NlKCkKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJzZXIgPSBOb25lCisgICAgICAgICAgICAgICAgc2VsZi5lb2ZfcmVjZWl2ZWQoKQogCiAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZgogCi0jIwotIyBQYXJzZXMgYW4gWE1MIGRvY3VtZW50IGZyb20gYSBzdHJpbmcgY29uc3RhbnQuICBUaGlzIGZ1bmN0aW9uIGNhbgotIyBiZSB1c2VkIHRvIGVtYmVkICJYTUwgbGl0ZXJhbHMiIGluIFB5dGhvbiBjb2RlLgotIwotIyBAcGFyYW0gc291cmNlIEEgc3RyaW5nIGNvbnRhaW5pbmcgWE1MIGRhdGEuCi0jIEBwYXJhbSBwYXJzZXIgQW4gb3B0aW9uYWwgcGFyc2VyIGluc3RhbmNlLiAgSWYgbm90IGdpdmVuLCB0aGUKLSMgICAgIHN0YW5kYXJkIHtAbGluayBYTUxQYXJzZXJ9IHBhcnNlciBpcyB1c2VkLgotIyBAcmV0dXJuIEFuIEVsZW1lbnQgaW5zdGFuY2UuCi0jIEBkZWZyZXR1cm4gRWxlbWVudAogCiBkZWYgWE1MKHRleHQsIHBhcnNlcj1Ob25lKToKKyAgICAiIiJQYXJzZSBYTUwgZG9jdW1lbnQgZnJvbSBzdHJpbmcgY29uc3RhbnQuCisKKyAgICBUaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGVtYmVkICJYTUwgTGl0ZXJhbHMiIGluIFB5dGhvbiBjb2RlLgorCisgICAgKnRleHQqIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgWE1MIGRhdGEsICpwYXJzZXIqIGlzIGFuCisgICAgb3B0aW9uYWwgcGFyc2VyIGluc3RhbmNlLCBkZWZhdWx0aW5nIHRvIHRoZSBzdGFuZGFyZCBYTUxQYXJzZXIuCisKKyAgICBSZXR1cm5zIGFuIEVsZW1lbnQgaW5zdGFuY2UuCisKKyAgICAiIiIKICAgICBpZiBub3QgcGFyc2VyOgogICAgICAgICBwYXJzZXIgPSBYTUxQYXJzZXIodGFyZ2V0PVRyZWVCdWlsZGVyKCkpCiAgICAgcGFyc2VyLmZlZWQodGV4dCkKICAgICByZXR1cm4gcGFyc2VyLmNsb3NlKCkKIAotIyMKLSMgUGFyc2VzIGFuIFhNTCBkb2N1bWVudCBmcm9tIGEgc3RyaW5nIGNvbnN0YW50LCBhbmQgYWxzbyByZXR1cm5zCi0jIGEgZGljdGlvbmFyeSB3aGljaCBtYXBzIGZyb20gZWxlbWVudCBpZDpzIHRvIGVsZW1lbnRzLgotIwotIyBAcGFyYW0gc291cmNlIEEgc3RyaW5nIGNvbnRhaW5pbmcgWE1MIGRhdGEuCi0jIEBwYXJhbSBwYXJzZXIgQW4gb3B0aW9uYWwgcGFyc2VyIGluc3RhbmNlLiAgSWYgbm90IGdpdmVuLCB0aGUKLSMgICAgIHN0YW5kYXJkIHtAbGluayBYTUxQYXJzZXJ9IHBhcnNlciBpcyB1c2VkLgotIyBAcmV0dXJuIEEgdHVwbGUgY29udGFpbmluZyBhbiBFbGVtZW50IGluc3RhbmNlIGFuZCBhIGRpY3Rpb25hcnkuCi0jIEBkZWZyZXR1cm4gKEVsZW1lbnQsIGRpY3Rpb25hcnkpCiAKIGRlZiBYTUxJRCh0ZXh0LCBwYXJzZXI9Tm9uZSk6CisgICAgIiIiUGFyc2UgWE1MIGRvY3VtZW50IGZyb20gc3RyaW5nIGNvbnN0YW50IGZvciBpdHMgSURzLgorCisgICAgKnRleHQqIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgWE1MIGRhdGEsICpwYXJzZXIqIGlzIGFuCisgICAgb3B0aW9uYWwgcGFyc2VyIGluc3RhbmNlLCBkZWZhdWx0aW5nIHRvIHRoZSBzdGFuZGFyZCBYTUxQYXJzZXIuCisKKyAgICBSZXR1cm5zIGFuIChFbGVtZW50LCBkaWN0KSB0dXBsZSwgaW4gd2hpY2ggdGhlCisgICAgZGljdCBtYXBzIGVsZW1lbnQgaWQ6cyB0byBlbGVtZW50cy4KKworICAgICIiIgogICAgIGlmIG5vdCBwYXJzZXI6CiAgICAgICAgIHBhcnNlciA9IFhNTFBhcnNlcih0YXJnZXQ9VHJlZUJ1aWxkZXIoKSkKICAgICBwYXJzZXIuZmVlZCh0ZXh0KQpAQCAtMTM3OCwyNyArMTMyOSwxOCBAQAogICAgICAgICAgICAgaWRzW2lkXSA9IGVsZW0KICAgICByZXR1cm4gdHJlZSwgaWRzCiAKLSMjCi0jIFBhcnNlcyBhbiBYTUwgZG9jdW1lbnQgZnJvbSBhIHN0cmluZyBjb25zdGFudC4gIFNhbWUgYXMge0BsaW5rICNYTUx9LgotIwotIyBAZGVmIGZyb21zdHJpbmcodGV4dCkKLSMgQHBhcmFtIHNvdXJjZSBBIHN0cmluZyBjb250YWluaW5nIFhNTCBkYXRhLgotIyBAcmV0dXJuIEFuIEVsZW1lbnQgaW5zdGFuY2UuCi0jIEBkZWZyZXR1cm4gRWxlbWVudAotCisjIFBhcnNlIFhNTCBkb2N1bWVudCBmcm9tIHN0cmluZyBjb25zdGFudC4gIEFsaWFzIGZvciBYTUwoKS4KIGZyb21zdHJpbmcgPSBYTUwKIAotIyMKLSMgUGFyc2VzIGFuIFhNTCBkb2N1bWVudCBmcm9tIGEgc2VxdWVuY2Ugb2Ygc3RyaW5nIGZyYWdtZW50cy4KLSMKLSMgQHBhcmFtIHNlcXVlbmNlIEEgbGlzdCBvciBvdGhlciBzZXF1ZW5jZSBjb250YWluaW5nIFhNTCBkYXRhIGZyYWdtZW50cy4KLSMgQHBhcmFtIHBhcnNlciBBbiBvcHRpb25hbCBwYXJzZXIgaW5zdGFuY2UuICBJZiBub3QgZ2l2ZW4sIHRoZQotIyAgICAgc3RhbmRhcmQge0BsaW5rIFhNTFBhcnNlcn0gcGFyc2VyIGlzIHVzZWQuCi0jIEByZXR1cm4gQW4gRWxlbWVudCBpbnN0YW5jZS4KLSMgQGRlZnJldHVybiBFbGVtZW50Ci0jIEBzaW5jZSAxLjMKLQogZGVmIGZyb21zdHJpbmdsaXN0KHNlcXVlbmNlLCBwYXJzZXI9Tm9uZSk6CisgICAgIiIiUGFyc2UgWE1MIGRvY3VtZW50IGZyb20gc2VxdWVuY2Ugb2Ygc3RyaW5nIGZyYWdtZW50cy4KKworICAgICpzZXF1ZW5jZSogaXMgYSBsaXN0IG9mIG90aGVyIHNlcXVlbmNlLCAqcGFyc2VyKiBpcyBhbiBvcHRpb25hbCBwYXJzZXIKKyAgICBpbnN0YW5jZSwgZGVmYXVsdGluZyB0byB0aGUgc3RhbmRhcmQgWE1MUGFyc2VyLgorCisgICAgUmV0dXJucyBhbiBFbGVtZW50IGluc3RhbmNlLgorCisgICAgIiIiCiAgICAgaWYgbm90IHBhcnNlcjoKICAgICAgICAgcGFyc2VyID0gWE1MUGFyc2VyKHRhcmdldD1UcmVlQnVpbGRlcigpKQogICAgIGZvciB0ZXh0IGluIHNlcXVlbmNlOgpAQCAtMTQwNywxOSArMTM0OSwyMCBAQAogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMjCi0jIEdlbmVyaWMgZWxlbWVudCBzdHJ1Y3R1cmUgYnVpbGRlci4gIFRoaXMgYnVpbGRlciBjb252ZXJ0cyBhIHNlcXVlbmNlCi0jIG9mIHtAbGluayAjVHJlZUJ1aWxkZXIuc3RhcnR9LCB7QGxpbmsgI1RyZWVCdWlsZGVyLmRhdGF9LCBhbmQge0BsaW5rCi0jICNUcmVlQnVpbGRlci5lbmR9IG1ldGhvZCBjYWxscyB0byBhIHdlbGwtZm9ybWVkIGVsZW1lbnQgc3RydWN0dXJlLgotIyA8cD4KLSMgWW91IGNhbiB1c2UgdGhpcyBjbGFzcyB0byBidWlsZCBhbiBlbGVtZW50IHN0cnVjdHVyZSB1c2luZyBhIGN1c3RvbSBYTUwKLSMgcGFyc2VyLCBvciBhIHBhcnNlciBmb3Igc29tZSBvdGhlciBYTUwtbGlrZSBmb3JtYXQuCi0jCi0jIEBwYXJhbSBlbGVtZW50X2ZhY3RvcnkgT3B0aW9uYWwgZWxlbWVudCBmYWN0b3J5LiAgVGhpcyBmYWN0b3J5Ci0jICAgIGlzIGNhbGxlZCB0byBjcmVhdGUgbmV3IEVsZW1lbnQgaW5zdGFuY2VzLCBhcyBuZWNlc3NhcnkuCiAKIGNsYXNzIFRyZWVCdWlsZGVyOgorICAgICIiIkdlbmVyaWMgZWxlbWVudCBzdHJ1Y3R1cmUgYnVpbGRlci4KIAorICAgIFRoaXMgYnVpbGRlciBjb252ZXJ0cyBhIHNlcXVlbmNlIG9mIHN0YXJ0LCBkYXRhLCBhbmQgZW5kIG1ldGhvZAorICAgIGNhbGxzIHRvIGEgd2VsbC1mb3JtZWQgZWxlbWVudCBzdHJ1Y3R1cmUuCisKKyAgICBZb3UgY2FuIHVzZSB0aGlzIGNsYXNzIHRvIGJ1aWxkIGFuIGVsZW1lbnQgc3RydWN0dXJlIHVzaW5nIGEgY3VzdG9tIFhNTAorICAgIHBhcnNlciwgb3IgYSBwYXJzZXIgZm9yIHNvbWUgb3RoZXIgWE1MLWxpa2UgZm9ybWF0LgorCisgICAgKmVsZW1lbnRfZmFjdG9yeSogaXMgYW4gb3B0aW9uYWwgZWxlbWVudCBmYWN0b3J5IHdoaWNoIGlzIGNhbGxlZAorICAgIHRvIGNyZWF0ZSBuZXcgRWxlbWVudCBpbnN0YW5jZXMsIGFzIG5lY2Vzc2FyeS4KKworICAgICIiIgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlbGVtZW50X2ZhY3Rvcnk9Tm9uZSk6CiAgICAgICAgIHNlbGYuX2RhdGEgPSBbXSAjIGRhdGEgY29sbGVjdG9yCiAgICAgICAgIHNlbGYuX2VsZW0gPSBbXSAjIGVsZW1lbnQgc3RhY2sKQEAgLTE0MjksMTQgKzEzNzIsOCBAQAogICAgICAgICAgICAgZWxlbWVudF9mYWN0b3J5ID0gRWxlbWVudAogICAgICAgICBzZWxmLl9mYWN0b3J5ID0gZWxlbWVudF9mYWN0b3J5CiAKLSAgICAjIwotICAgICMgRmx1c2hlcyB0aGUgYnVpbGRlciBidWZmZXJzLCBhbmQgcmV0dXJucyB0aGUgdG9wbGV2ZWwgZG9jdW1lbnQKLSAgICAjIGVsZW1lbnQuCi0gICAgIwotICAgICMgQHJldHVybiBBbiBFbGVtZW50IGluc3RhbmNlLgotICAgICMgQGRlZnJldHVybiBFbGVtZW50Ci0KICAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgICIiIkZsdXNoIGJ1aWxkZXIgYnVmZmVycyBhbmQgcmV0dXJuIHRvcGxldmVsIGRvY3VtZW50IEVsZW1lbnQuIiIiCiAgICAgICAgIGFzc2VydCBsZW4oc2VsZi5fZWxlbSkgPT0gMCwgIm1pc3NpbmcgZW5kIHRhZ3MiCiAgICAgICAgIGFzc2VydCBzZWxmLl9sYXN0IGlzIG5vdCBOb25lLCAibWlzc2luZyB0b3BsZXZlbCBlbGVtZW50IgogICAgICAgICByZXR1cm4gc2VsZi5fbGFzdApAQCAtMTQ1MywyNCArMTM5MCwxNyBAQAogICAgICAgICAgICAgICAgICAgICBzZWxmLl9sYXN0LnRleHQgPSB0ZXh0CiAgICAgICAgICAgICBzZWxmLl9kYXRhID0gW10KIAotICAgICMjCi0gICAgIyBBZGRzIHRleHQgdG8gdGhlIGN1cnJlbnQgZWxlbWVudC4KLSAgICAjCi0gICAgIyBAcGFyYW0gZGF0YSBBIHN0cmluZy4gIFRoaXMgc2hvdWxkIGJlIGVpdGhlciBhbiA4LWJpdCBzdHJpbmcKLSAgICAjICAgIGNvbnRhaW5pbmcgQVNDSUkgdGV4dCwgb3IgYSBVbmljb2RlIHN0cmluZy4KLQogICAgIGRlZiBkYXRhKHNlbGYsIGRhdGEpOgorICAgICAgICAiIiJBZGQgdGV4dCB0byBjdXJyZW50IGVsZW1lbnQuIiIiCiAgICAgICAgIHNlbGYuX2RhdGEuYXBwZW5kKGRhdGEpCiAKLSAgICAjIwotICAgICMgT3BlbnMgYSBuZXcgZWxlbWVudC4KLSAgICAjCi0gICAgIyBAcGFyYW0gdGFnIFRoZSBlbGVtZW50IG5hbWUuCi0gICAgIyBAcGFyYW0gYXR0cmliIEEgZGljdGlvbmFyeSBjb250YWluaW5nIGVsZW1lbnQgYXR0cmlidXRlcy4KLSAgICAjIEByZXR1cm4gVGhlIG9wZW5lZCBlbGVtZW50LgotICAgICMgQGRlZnJldHVybiBFbGVtZW50Ci0KICAgICBkZWYgc3RhcnQoc2VsZiwgdGFnLCBhdHRycyk6CisgICAgICAgICIiIk9wZW4gbmV3IGVsZW1lbnQgYW5kIHJldHVybiBpdC4KKworICAgICAgICAqdGFnKiBpcyB0aGUgZWxlbWVudCBuYW1lLCAqYXR0cnMqIGlzIGEgZGljdCBjb250YWluaW5nIGVsZW1lbnQKKyAgICAgICAgYXR0cmlidXRlcy4KKworICAgICAgICAiIiIKICAgICAgICAgc2VsZi5fZmx1c2goKQogICAgICAgICBzZWxmLl9sYXN0ID0gZWxlbSA9IHNlbGYuX2ZhY3RvcnkodGFnLCBhdHRycykKICAgICAgICAgaWYgc2VsZi5fZWxlbToKQEAgLTE0NzksMTQgKzE0MDksMTIgQEAKICAgICAgICAgc2VsZi5fdGFpbCA9IDAKICAgICAgICAgcmV0dXJuIGVsZW0KIAotICAgICMjCi0gICAgIyBDbG9zZXMgdGhlIGN1cnJlbnQgZWxlbWVudC4KLSAgICAjCi0gICAgIyBAcGFyYW0gdGFnIFRoZSBlbGVtZW50IG5hbWUuCi0gICAgIyBAcmV0dXJuIFRoZSBjbG9zZWQgZWxlbWVudC4KLSAgICAjIEBkZWZyZXR1cm4gRWxlbWVudAotCiAgICAgZGVmIGVuZChzZWxmLCB0YWcpOgorICAgICAgICAiIiJDbG9zZSBhbmQgcmV0dXJuIGN1cnJlbnQgRWxlbWVudC4KKworICAgICAgICAqdGFnKiBpcyB0aGUgZWxlbWVudCBuYW1lLgorCisgICAgICAgICIiIgogICAgICAgICBzZWxmLl9mbHVzaCgpCiAgICAgICAgIHNlbGYuX2xhc3QgPSBzZWxmLl9lbGVtLnBvcCgpCiAgICAgICAgIGFzc2VydCBzZWxmLl9sYXN0LnRhZyA9PSB0YWcsXApAQCAtMTQ5NSwyMCArMTQyMywxOCBAQAogICAgICAgICBzZWxmLl90YWlsID0gMQogICAgICAgICByZXR1cm4gc2VsZi5fbGFzdAogCi0jIwotIyBFbGVtZW50IHN0cnVjdHVyZSBidWlsZGVyIGZvciBYTUwgc291cmNlIGRhdGEsIGJhc2VkIG9uIHRoZQotIyA8Yj5leHBhdDwvYj4gcGFyc2VyLgotIwotIyBAa2V5cGFyYW0gdGFyZ2V0IFRhcmdldCBvYmplY3QuICBJZiBvbWl0dGVkLCB0aGUgYnVpbGRlciB1c2VzIGFuCi0jICAgICBpbnN0YW5jZSBvZiB0aGUgc3RhbmRhcmQge0BsaW5rICNUcmVlQnVpbGRlcn0gY2xhc3MuCi0jIEBrZXlwYXJhbSBodG1sIFByZWRlZmluZSBIVE1MIGVudGl0aWVzLiAgVGhpcyBmbGFnIGlzIG5vdCBzdXBwb3J0ZWQKLSMgICAgIGJ5IHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLgotIyBAa2V5cGFyYW0gZW5jb2RpbmcgT3B0aW9uYWwgZW5jb2RpbmcuICBJZiBnaXZlbiwgdGhlIHZhbHVlIG92ZXJyaWRlcwotIyAgICAgdGhlIGVuY29kaW5nIHNwZWNpZmllZCBpbiB0aGUgWE1MIGZpbGUuCi0jIEBzZWUgI0VsZW1lbnRUcmVlCi0jIEBzZWUgI1RyZWVCdWlsZGVyCiAKKyMgYWxzbyBzZWUgRWxlbWVudFRyZWUgYW5kIFRyZWVCdWlsZGVyCiBjbGFzcyBYTUxQYXJzZXI6CisgICAgIiIiRWxlbWVudCBzdHJ1Y3R1cmUgYnVpbGRlciBmb3IgWE1MIHNvdXJjZSBkYXRhIGJhc2VkIG9uIHRoZSBleHBhdCBwYXJzZXIuCisKKyAgICAqaHRtbCogYXJlIHByZWRlZmluZWQgSFRNTCBlbnRpdGllcyAobm90IHN1cHBvcnRlZCBjdXJyZW50bHkpLAorICAgICp0YXJnZXQqIGlzIGFuIG9wdGlvbmFsIHRhcmdldCBvYmplY3Qgd2hpY2ggZGVmYXVsdHMgdG8gYW4gaW5zdGFuY2Ugb2YgdGhlCisgICAgc3RhbmRhcmQgVHJlZUJ1aWxkZXIgY2xhc3MsICplbmNvZGluZyogaXMgYW4gb3B0aW9uYWwgZW5jb2Rpbmcgc3RyaW5nCisgICAgd2hpY2ggaWYgZ2l2ZW4sIG92ZXJyaWRlcyB0aGUgZW5jb2Rpbmcgc3BlY2lmaWVkIGluIHRoZSBYTUwgZmlsZToKKyAgICBodHRwOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL2NoYXJhY3Rlci1zZXRzCisKKyAgICAiIiIKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBodG1sPTAsIHRhcmdldD1Ob25lLCBlbmNvZGluZz1Ob25lKToKICAgICAgICAgdHJ5OgpAQCAtMTU2MSw2ICsxNDg3LDM5IEBACiAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKICAgICAgICAgICAgIHBhc3MgIyB1bmtub3duCiAKKyAgICBkZWYgX3NldGV2ZW50cyhzZWxmLCBldmVudHNfcXVldWUsIGV2ZW50c190b19yZXBvcnQpOgorICAgICAgICAjIEludGVybmFsIEFQSSBmb3IgSW5jcmVtZW50YWxQYXJzZXIKKyAgICAgICAgIyBldmVudHNfdG9fcmVwb3J0OiBhIGxpc3Qgb2YgZXZlbnRzIHRvIHJlcG9ydCBkdXJpbmcgcGFyc2luZyAoc2FtZSBhcworICAgICAgICAjIHRoZSAqZXZlbnRzKiBvZiBJbmNyZW1lbnRhbFBhcnNlcidzIGNvbnN0cnVjdG9yLgorICAgICAgICAjIGV2ZW50c19xdWV1ZTogYSBsaXN0IG9mIGFjdHVhbCBwYXJzaW5nIGV2ZW50cyB0aGF0IHdpbGwgYmUgcG9wdWxhdGVkCisgICAgICAgICMgYnkgdGhlIHVuZGVybHlpbmcgcGFyc2VyLgorICAgICAgICAjCisgICAgICAgIHBhcnNlciA9IHNlbGYuX3BhcnNlcgorICAgICAgICBhcHBlbmQgPSBldmVudHNfcXVldWUuYXBwZW5kCisgICAgICAgIGZvciBldmVudF9uYW1lIGluIGV2ZW50c190b19yZXBvcnQ6CisgICAgICAgICAgICBpZiBldmVudF9uYW1lID09ICJzdGFydCI6CisgICAgICAgICAgICAgICAgcGFyc2VyLm9yZGVyZWRfYXR0cmlidXRlcyA9IDEKKyAgICAgICAgICAgICAgICBwYXJzZXIuc3BlY2lmaWVkX2F0dHJpYnV0ZXMgPSAxCisgICAgICAgICAgICAgICAgZGVmIGhhbmRsZXIodGFnLCBhdHRyaWJfaW4sIGV2ZW50PWV2ZW50X25hbWUsIGFwcGVuZD1hcHBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ9c2VsZi5fc3RhcnRfbGlzdCk6CisgICAgICAgICAgICAgICAgICAgIGFwcGVuZCgoZXZlbnQsIHN0YXJ0KHRhZywgYXR0cmliX2luKSkpCisgICAgICAgICAgICAgICAgcGFyc2VyLlN0YXJ0RWxlbWVudEhhbmRsZXIgPSBoYW5kbGVyCisgICAgICAgICAgICBlbGlmIGV2ZW50X25hbWUgPT0gImVuZCI6CisgICAgICAgICAgICAgICAgZGVmIGhhbmRsZXIodGFnLCBldmVudD1ldmVudF9uYW1lLCBhcHBlbmQ9YXBwZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZD1zZWxmLl9lbmQpOgorICAgICAgICAgICAgICAgICAgICBhcHBlbmQoKGV2ZW50LCBlbmQodGFnKSkpCisgICAgICAgICAgICAgICAgcGFyc2VyLkVuZEVsZW1lbnRIYW5kbGVyID0gaGFuZGxlcgorICAgICAgICAgICAgZWxpZiBldmVudF9uYW1lID09ICJzdGFydC1ucyI6CisgICAgICAgICAgICAgICAgZGVmIGhhbmRsZXIocHJlZml4LCB1cmksIGV2ZW50PWV2ZW50X25hbWUsIGFwcGVuZD1hcHBlbmQpOgorICAgICAgICAgICAgICAgICAgICBhcHBlbmQoKGV2ZW50LCAocHJlZml4IG9yICIiLCB1cmkgb3IgIiIpKSkKKyAgICAgICAgICAgICAgICBwYXJzZXIuU3RhcnROYW1lc3BhY2VEZWNsSGFuZGxlciA9IGhhbmRsZXIKKyAgICAgICAgICAgIGVsaWYgZXZlbnRfbmFtZSA9PSAiZW5kLW5zIjoKKyAgICAgICAgICAgICAgICBkZWYgaGFuZGxlcihwcmVmaXgsIGV2ZW50PWV2ZW50X25hbWUsIGFwcGVuZD1hcHBlbmQpOgorICAgICAgICAgICAgICAgICAgICBhcHBlbmQoKGV2ZW50LCBOb25lKSkKKyAgICAgICAgICAgICAgICBwYXJzZXIuRW5kTmFtZXNwYWNlRGVjbEhhbmRsZXIgPSBoYW5kbGVyCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInVua25vd24gZXZlbnQgJXIiICUgZXZlbnRfbmFtZSkKKwogICAgIGRlZiBfcmFpc2VlcnJvcihzZWxmLCB2YWx1ZSk6CiAgICAgICAgIGVyciA9IFBhcnNlRXJyb3IodmFsdWUpCiAgICAgICAgIGVyci5jb2RlID0gdmFsdWUuY29kZQpAQCAtMTY1MCwxNSArMTYwOSwxMyBAQAogICAgICAgICAgICAgICAgICAgICBzZWxmLmRvY3R5cGUobmFtZSwgcHViaWQsIHN5c3RlbVsxOi0xXSkKICAgICAgICAgICAgICAgICBzZWxmLl9kb2N0eXBlID0gTm9uZQogCi0gICAgIyMKLSAgICAjIChEZXByZWNhdGVkKSBIYW5kbGVzIGEgZG9jdHlwZSBkZWNsYXJhdGlvbi4KLSAgICAjCi0gICAgIyBAcGFyYW0gbmFtZSBEb2N0eXBlIG5hbWUuCi0gICAgIyBAcGFyYW0gcHViaWQgUHVibGljIGlkZW50aWZpZXIuCi0gICAgIyBAcGFyYW0gc3lzdGVtIFN5c3RlbSBpZGVudGlmaWVyLgotCiAgICAgZGVmIGRvY3R5cGUoc2VsZiwgbmFtZSwgcHViaWQsIHN5c3RlbSk6Ci0gICAgICAgICIiIlRoaXMgbWV0aG9kIG9mIFhNTFBhcnNlciBpcyBkZXByZWNhdGVkLiIiIgorICAgICAgICAiIiIoRGVwcmVjYXRlZCkgIEhhbmRsZSBkb2N0eXBlIGRlY2xhcmF0aW9uCisKKyAgICAgICAgKm5hbWUqIGlzIHRoZSBEb2N0eXBlIG5hbWUsICpwdWJpZCogaXMgdGhlIHB1YmxpYyBpZGVudGlmaWVyLAorICAgICAgICBhbmQgKnN5c3RlbSogaXMgdGhlIHN5c3RlbSBpZGVudGlmaWVyLgorCisgICAgICAgICIiIgogICAgICAgICB3YXJuaW5ncy53YXJuKAogICAgICAgICAgICAgIlRoaXMgbWV0aG9kIG9mIFhNTFBhcnNlciBpcyBkZXByZWNhdGVkLiAgRGVmaW5lIGRvY3R5cGUoKSAiCiAgICAgICAgICAgICAibWV0aG9kIG9uIHRoZSBUcmVlQnVpbGRlciB0YXJnZXQuIiwKQEAgLTE2NjgsMjQgKzE2MjUsMTUgQEAKICAgICAjIHNlbnRpbmVsLCBpZiBkb2N0eXBlIGlzIHJlZGVmaW5lZCBpbiBhIHN1YmNsYXNzCiAgICAgX19kb2N0eXBlID0gZG9jdHlwZQogCi0gICAgIyMKLSAgICAjIEZlZWRzIGRhdGEgdG8gdGhlIHBhcnNlci4KLSAgICAjCi0gICAgIyBAcGFyYW0gZGF0YSBFbmNvZGVkIGRhdGEuCi0KICAgICBkZWYgZmVlZChzZWxmLCBkYXRhKToKKyAgICAgICAgIiIiRmVlZCBlbmNvZGVkIGRhdGEgdG8gcGFyc2VyLiIiIgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnBhcnNlci5QYXJzZShkYXRhLCAwKQogICAgICAgICBleGNlcHQgc2VsZi5fZXJyb3IgYXMgdjoKICAgICAgICAgICAgIHNlbGYuX3JhaXNlZXJyb3IodikKIAotICAgICMjCi0gICAgIyBGaW5pc2hlcyBmZWVkaW5nIGRhdGEgdG8gdGhlIHBhcnNlci4KLSAgICAjCi0gICAgIyBAcmV0dXJuIEFuIGVsZW1lbnQgc3RydWN0dXJlLgotICAgICMgQGRlZnJldHVybiBFbGVtZW50Ci0KICAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgICIiIkZpbmlzaCBmZWVkaW5nIGRhdGEgdG8gcGFyc2VyIGFuZCByZXR1cm4gZWxlbWVudCBzdHJ1Y3R1cmUuIiIiCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYucGFyc2VyLlBhcnNlKCIiLCAxKSAjIGVuZCBvZiBkYXRhCiAgICAgICAgIGV4Y2VwdCBzZWxmLl9lcnJvciBhcyB2OgpAQCAtMTcwNCwxMDMgKzE2NTIsMTIgQEAKIAogIyBJbXBvcnQgdGhlIEMgYWNjZWxlcmF0b3JzCiB0cnk6CisgICAgIyBFbGVtZW50IGlzIGdvaW5nIHRvIGJlIHNoYWRvd2VkIGJ5IHRoZSBDIGltcGxlbWVudGF0aW9uLiBXZSBuZWVkIHRvIGtlZXAKKyAgICAjIHRoZSBQeXRob24gdmVyc2lvbiBvZiBpdCBhY2Nlc3NpYmxlIGZvciBzb21lICJjcmVhdGl2ZSIgYnkgZXh0ZXJuYWwgY29kZQorICAgICMgKHNlZSB0ZXN0cykKKyAgICBfRWxlbWVudF9QeSA9IEVsZW1lbnQKKwogICAgICMgRWxlbWVudCwgU3ViRWxlbWVudCwgUGFyc2VFcnJvciwgVHJlZUJ1aWxkZXIsIFhNTFBhcnNlcgogICAgIGZyb20gX2VsZW1lbnR0cmVlIGltcG9ydCAqCiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgcGFzcwotZWxzZToKLSAgICAjIE92ZXJ3cml0ZSAnRWxlbWVudFRyZWUucGFyc2UnIGFuZCAnaXRlcnBhcnNlJyB0byB1c2UgdGhlIEMgWE1MUGFyc2VyCi0KLSAgICBjbGFzcyBFbGVtZW50VHJlZShFbGVtZW50VHJlZSk6Ci0gICAgICAgIGRlZiBwYXJzZShzZWxmLCBzb3VyY2UsIHBhcnNlcj1Ob25lKToKLSAgICAgICAgICAgIGNsb3NlX3NvdXJjZSA9IEZhbHNlCi0gICAgICAgICAgICBpZiBub3QgaGFzYXR0cihzb3VyY2UsICdyZWFkJyk6Ci0gICAgICAgICAgICAgICAgc291cmNlID0gb3Blbihzb3VyY2UsICdyYicpCi0gICAgICAgICAgICAgICAgY2xvc2Vfc291cmNlID0gVHJ1ZQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGlmIHBhcnNlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBzb3VyY2UucmVhZCg2NTUzNikKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBkYXRhOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXIuZmVlZChkYXRhKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9yb290ID0gcGFyc2VyLmNsb3NlKCkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBwYXJzZXIgPSBYTUxQYXJzZXIoKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9yb290ID0gcGFyc2VyLl9wYXJzZShzb3VyY2UpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Jvb3QKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgaWYgY2xvc2Vfc291cmNlOgotICAgICAgICAgICAgICAgICAgICBzb3VyY2UuY2xvc2UoKQotCi0gICAgY2xhc3MgaXRlcnBhcnNlOgotICAgICAgICAiIiJQYXJzZXMgYW4gWE1MIHNlY3Rpb24gaW50byBhbiBlbGVtZW50IHRyZWUgaW5jcmVtZW50YWxseS4KLQotICAgICAgICBSZXBvcnRzIHdoYXTigJlzIGdvaW5nIG9uIHRvIHRoZSB1c2VyLiAnc291cmNlJyBpcyBhIGZpbGVuYW1lIG9yIGZpbGUKLSAgICAgICAgb2JqZWN0IGNvbnRhaW5pbmcgWE1MIGRhdGEuICdldmVudHMnIGlzIGEgbGlzdCBvZiBldmVudHMgdG8gcmVwb3J0IGJhY2suCi0gICAgICAgIFRoZSBzdXBwb3J0ZWQgZXZlbnRzIGFyZSB0aGUgc3RyaW5ncyAic3RhcnQiLCAiZW5kIiwgInN0YXJ0LW5zIiBhbmQKLSAgICAgICAgImVuZC1ucyIgKHRoZSAibnMiIGV2ZW50cyBhcmUgdXNlZCB0byBnZXQgZGV0YWlsZWQgbmFtZXNwYWNlCi0gICAgICAgIGluZm9ybWF0aW9uKS4gSWYgJ2V2ZW50cycgaXMgb21pdHRlZCwgb25seSAiZW5kIiBldmVudHMgYXJlIHJlcG9ydGVkLgotICAgICAgICAncGFyc2VyJyBpcyBhbiBvcHRpb25hbCBwYXJzZXIgaW5zdGFuY2UuIElmIG5vdCBnaXZlbiwgdGhlIHN0YW5kYXJkCi0gICAgICAgIFhNTFBhcnNlciBwYXJzZXIgaXMgdXNlZC4gUmV0dXJucyBhbiBpdGVyYXRvciBwcm92aWRpbmcKLSAgICAgICAgKGV2ZW50LCBlbGVtKSBwYWlycy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcm9vdCA9IE5vbmUKLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGUsIGV2ZW50cz1Ob25lLCBwYXJzZXI9Tm9uZSk6Ci0gICAgICAgICAgICBzZWxmLl9jbG9zZV9maWxlID0gRmFsc2UKLSAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKGZpbGUsICdyZWFkJyk6Ci0gICAgICAgICAgICAgICAgZmlsZSA9IG9wZW4oZmlsZSwgJ3JiJykKLSAgICAgICAgICAgICAgICBzZWxmLl9jbG9zZV9maWxlID0gVHJ1ZQotICAgICAgICAgICAgc2VsZi5fZmlsZSA9IGZpbGUKLSAgICAgICAgICAgIHNlbGYuX2V2ZW50cyA9IFtdCi0gICAgICAgICAgICBzZWxmLl9pbmRleCA9IDAKLSAgICAgICAgICAgIHNlbGYuX2Vycm9yID0gTm9uZQotICAgICAgICAgICAgc2VsZi5yb290ID0gc2VsZi5fcm9vdCA9IE5vbmUKLSAgICAgICAgICAgIGlmIHBhcnNlciBpcyBOb25lOgotICAgICAgICAgICAgICAgIHBhcnNlciA9IFhNTFBhcnNlcih0YXJnZXQ9VHJlZUJ1aWxkZXIoKSkKLSAgICAgICAgICAgIHNlbGYuX3BhcnNlciA9IHBhcnNlcgotICAgICAgICAgICAgc2VsZi5fcGFyc2VyLl9zZXRldmVudHMoc2VsZi5fZXZlbnRzLCBldmVudHMpCi0KLSAgICAgICAgZGVmIF9fbmV4dF9fKHNlbGYpOgotICAgICAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIGl0ZW0gPSBzZWxmLl9ldmVudHNbc2VsZi5faW5kZXhdCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2luZGV4ICs9IDEKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0KLSAgICAgICAgICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgICAgIGlmIHNlbGYuX2Vycm9yOgotICAgICAgICAgICAgICAgICAgICBlID0gc2VsZi5fZXJyb3IKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXJyb3IgPSBOb25lCi0gICAgICAgICAgICAgICAgICAgIHJhaXNlIGUKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9wYXJzZXIgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5yb290ID0gc2VsZi5fcm9vdAotICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9jbG9zZV9maWxlOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZmlsZS5jbG9zZSgpCi0gICAgICAgICAgICAgICAgICAgIHJhaXNlIFN0b3BJdGVyYXRpb24KLSAgICAgICAgICAgICAgICAjIGxvYWQgZXZlbnQgYnVmZmVyCi0gICAgICAgICAgICAgICAgZGVsIHNlbGYuX2V2ZW50c1s6XQotICAgICAgICAgICAgICAgIHNlbGYuX2luZGV4ID0gMAotICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9maWxlLnJlYWQoMTYzODQpCi0gICAgICAgICAgICAgICAgaWYgZGF0YToKLSAgICAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFyc2VyLmZlZWQoZGF0YSkKLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IFN5bnRheEVycm9yIGFzIGV4YzoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Vycm9yID0gZXhjCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcm9vdCA9IHNlbGYuX3BhcnNlci5jbG9zZSgpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3BhcnNlciA9IE5vbmUKLQotICAgICAgICBkZWYgX19pdGVyX18oc2VsZik6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZgotCi0jIGNvbXBhdGliaWxpdHkKLVhNTFRyZWVCdWlsZGVyID0gWE1MUGFyc2VyCi0KLSMgd29ya2Fyb3VuZCBjaXJjdWxhciBpbXBvcnQuCi10cnk6Ci0gICAgZnJvbSBFbGVtZW50QzE0TiBpbXBvcnQgX3NlcmlhbGl6ZV9jMTRuCi0gICAgX3NlcmlhbGl6ZVsiYzE0biJdID0gX3NlcmlhbGl6ZV9jMTRuCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGliL3htbHJwYy9jbGllbnQucHkgYi9MaWIveG1scnBjL2NsaWVudC5weQppbmRleCBkN2IyZGIzLi5mZjQyMjY1IDEwMDY0NAotLS0gYS9MaWIveG1scnBjL2NsaWVudC5weQorKysgYi9MaWIveG1scnBjL2NsaWVudC5weQpAQCAtMTA0NSw3ICsxMDQ1LDcgQEAKICAgICBnemYgPSBnemlwLkd6aXBGaWxlKG1vZGU9InJiIiwgZmlsZW9iaj1mKQogICAgIHRyeToKICAgICAgICAgZGVjb2RlZCA9IGd6Zi5yZWFkKCkKLSAgICBleGNlcHQgSU9FcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxpZCBkYXRhIikKICAgICBmLmNsb3NlKCkKICAgICBnemYuY2xvc2UoKQpAQCAtMTEzMCw4ICsxMTMwLDkgQEAKICAgICAgICAgZm9yIGkgaW4gKDAsIDEpOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnNpbmdsZV9yZXF1ZXN0KGhvc3QsIGhhbmRsZXIsIHJlcXVlc3RfYm9keSwgdmVyYm9zZSkKLSAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICBpZiBpIG9yIGUuZXJybm8gbm90IGluIChlcnJuby5FQ09OTlJFU0VULCBlcnJuby5FQ09OTkFCT1JURUQsIGVycm5vLkVQSVBFKToKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAgICAgICAgICAgaWYgaSBvciBlLmVycm5vIG5vdCBpbiAoZXJybm8uRUNPTk5SRVNFVCwgZXJybm8uRUNPTk5BQk9SVEVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm5vLkVQSVBFKToKICAgICAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgIGV4Y2VwdCBodHRwLmNsaWVudC5CYWRTdGF0dXNMaW5lOiAjY2xvc2UgYWZ0ZXIgd2Ugc2VudCByZXF1ZXN0CiAgICAgICAgICAgICAgICAgaWYgaToKQEAgLTEzODUsNyArMTM4Niw3IEBACiAgICAgICAgICMgZ2V0IHRoZSB1cmwKICAgICAgICAgdHlwZSwgdXJpID0gdXJsbGliLnBhcnNlLnNwbGl0dHlwZSh1cmkpCiAgICAgICAgIGlmIHR5cGUgbm90IGluICgiaHR0cCIsICJodHRwcyIpOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigidW5zdXBwb3J0ZWQgWE1MLVJQQyBwcm90b2NvbCIpCisgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCJ1bnN1cHBvcnRlZCBYTUwtUlBDIHByb3RvY29sIikKICAgICAgICAgc2VsZi5fX2hvc3QsIHNlbGYuX19oYW5kbGVyID0gdXJsbGliLnBhcnNlLnNwbGl0aG9zdCh1cmkpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9faGFuZGxlcjoKICAgICAgICAgICAgIHNlbGYuX19oYW5kbGVyID0gIi9SUEMyIgpkaWZmIC0tZ2l0IGEvTGliL3ppcGZpbGUucHkgYi9MaWIvemlwZmlsZS5weQppbmRleCAzNDQ4YzYxLi5iOTBhZjU1IDEwMDY0NAotLS0gYS9MaWIvemlwZmlsZS5weQorKysgYi9MaWIvemlwZmlsZS5weQpAQCAtMTY0LDcgKzE2NCw3IEBACiAgICAgdHJ5OgogICAgICAgICBpZiBfRW5kUmVjRGF0YShmcCk6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZSAgICAgICAgICMgZmlsZSBoYXMgY29ycmVjdCBtYWdpYyBudW1iZXIKLSAgICBleGNlcHQgSU9FcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgcGFzcwogICAgIHJldHVybiBGYWxzZQogCkBAIC0xODAsNyArMTgwLDcgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHdpdGggb3BlbihmaWxlbmFtZSwgInJiIikgYXMgZnA6CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gX2NoZWNrX3ppcGZpbGUoZnApCi0gICAgZXhjZXB0IElPRXJyb3I6CisgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgIHBhc3MKICAgICByZXR1cm4gcmVzdWx0CiAKQEAgLTE5MCw3ICsxOTAsNyBAQAogICAgICIiIgogICAgIHRyeToKICAgICAgICAgZnBpbi5zZWVrKG9mZnNldCAtIHNpemVFbmRDZW50RGlyNjRMb2NhdG9yLCAyKQotICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAjIElmIHRoZSBzZWVrIGZhaWxzLCB0aGUgZmlsZSBpcyBub3QgbGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4gYSBaSVA2NAogICAgICAgICAjIGVuZC1vZi1hcmNoaXZlIHJlY29yZCwgc28ganVzdCByZXR1cm4gdGhlIGVuZCByZWNvcmQgd2Ugd2VyZSBnaXZlbi4KICAgICAgICAgcmV0dXJuIGVuZHJlYwpAQCAtMjQyLDcgKzI0Miw3IEBACiAgICAgIyBmaWxlIGlmIHRoaXMgaXMgdGhlIGNhc2UpLgogICAgIHRyeToKICAgICAgICAgZnBpbi5zZWVrKC1zaXplRW5kQ2VudERpciwgMikKLSAgICBleGNlcHQgSU9FcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgcmV0dXJuIE5vbmUKICAgICBkYXRhID0gZnBpbi5yZWFkKCkKICAgICBpZiAobGVuKGRhdGEpID09IHNpemVFbmRDZW50RGlyIGFuZApAQCAtOTEwLDcgKzkxMCw3IEBACiAgICAgICAgICAgICBtb2RlRGljdCA9IHsncicgOiAncmInLCAndyc6ICd3YicsICdhJyA6ICdyK2InfQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHNlbGYuZnAgPSBpby5vcGVuKGZpbGUsIG1vZGVEaWN0W21vZGVdKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICBpZiBtb2RlID09ICdhJzoKICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IGtleSA9ICd3JwogICAgICAgICAgICAgICAgICAgICBzZWxmLmZwID0gaW8ub3BlbihmaWxlLCBtb2RlRGljdFttb2RlXSkKQEAgLTk2MSw3ICs5NjEsNyBAQAogICAgICAgICBmcCA9IHNlbGYuZnAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZW5kcmVjID0gX0VuZFJlY0RhdGEoZnApCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHJhaXNlIEJhZFppcEZpbGUoIkZpbGUgaXMgbm90IGEgemlwIGZpbGUiKQogICAgICAgICBpZiBub3QgZW5kcmVjOgogICAgICAgICAgICAgcmFpc2UgQmFkWmlwRmlsZSgiRmlsZSBpcyBub3QgYSB6aXAgZmlsZSIpCmRpZmYgLS1naXQgYS9NYWMvVG9vbHMvYnVuZGxlYnVpbGRlci5weSBiL01hYy9Ub29scy9idW5kbGVidWlsZGVyLnB5CmluZGV4IDZjYzEzMGYuLmY1Njc5ZDMgMTAwNjQ0Ci0tLSBhL01hYy9Ub29scy9idW5kbGVidWlsZGVyLnB5CisrKyBiL01hYy9Ub29scy9idW5kbGVidWlsZGVyLnB5CkBAIC0yNzAsNyArMjcwLDcgQEAKIGRlbCBfX2xvYWQKICIiIgogCi1NQVlNSVNTX01PRFVMRVMgPSBbJ21hYycsICdvczInLCAnbnQnLCAnbnRwYXRoJywgJ2RvcycsICdkb3NwYXRoJywKK01BWU1JU1NfTU9EVUxFUyA9IFsnbWFjJywgJ250JywgJ250cGF0aCcsICdkb3MnLCAnZG9zcGF0aCcsCiAgICAgJ3dpbjMyYXBpJywgJ2NlJywgJ193aW5yZWcnLCAnbnR1cmwycGF0aCcsICdzaXRlY3VzdG9taXplJywKICAgICAnb3JnLnB5dGhvbi5jb3JlJywgJ3Jpc2NvcycsICdyaXNjb3NlbnZpcm9uJywgJ3Jpc2Nvc3BhdGgnCiBdCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5wcmUuaW4gYi9NYWtlZmlsZS5wcmUuaW4KaW5kZXggNjcwOWY0YS4uYWI1NmUzZiAxMDA2NDQKLS0tIGEvTWFrZWZpbGUucHJlLmluCisrKyBiL01ha2VmaWxlLnByZS5pbgpAQCAtMTI3LDcgKzEyNyw2IEBACiAjIFN5bWJvbHMgdXNlZCBmb3IgdXNpbmcgc2hhcmVkIGxpYnJhcmllcwogU0hMSUJfU1VGRklYPQlAU0hMSUJfU1VGRklYQAogRVhUX1NVRkZJWD0JQEVYVF9TVUZGSVhACi1TTz0JCSQoU0hMSUJfU1VGRklYKQogTERTSEFSRUQ9CUBMRFNIQVJFREAgJChQWV9MREZMQUdTKQogQkxEU0hBUkVEPQlAQkxEU0hBUkVEQCAkKFBZX0xERkxBR1MpCiBMRENYWFNIQVJFRD0JQExEQ1hYU0hBUkVEQApAQCAtNDQwLDcgKzQzOSw3IEBACiAKICMgRGVmYXVsdCB0YXJnZXQKIGFsbDoJCWJ1aWxkX2FsbAotYnVpbGRfYWxsOgkkKEJVSUxEUFlUSE9OKSBvbGRzaGFyZWRtb2RzIHNoYXJlZG1vZHMgZ2RiaG9va3MgTW9kdWxlcy9fdGVzdGVtYmVkCitidWlsZF9hbGw6CSQoQlVJTERQWVRIT04pIG9sZHNoYXJlZG1vZHMgc2hhcmVkbW9kcyBnZGJob29rcyBNb2R1bGVzL190ZXN0ZW1iZWQgcHl0aG9uLWNvbmZpZwogCiAjIENvbXBpbGUgYSBiaW5hcnkgd2l0aCBnY2MgcHJvZmlsZSBndWlkZWQgb3B0aW1pemF0aW9uLgogcHJvZmlsZS1vcHQ6CkBAIC03MDgsMjcgKzcwNywzMSBAQAogCQkJCSQoc3JjZGlyKS9PYmplY3RzL3VuaWNvZGV0eXBlX2RiLmgKIAogQllURVNUUl9ERVBTID0gXAotCQkkKHNyY2RpcikvSW5jbHVkZS9ieXRlc19tZXRob2RzLmggXAogCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvY291bnQuaCBcCiAJCSQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi9jdHlwZS5oIFwKLQkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL2VxLmggXAogCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvZmFzdHNlYXJjaC5oIFwKIAkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL2ZpbmQuaCBcCi0JCSQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi9maW5kX21heF9jaGFyLmggXAorCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvam9pbi5oIFwKIAkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3BhcnRpdGlvbi5oIFwKIAkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3NwbGl0LmggXAogCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvc3RyaW5nZGVmcy5oIFwKLQkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3RyYW5zbW9ncmlmeS5oIFwKLQkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3VuaWNvZGVkZWZzLmggXAotCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvbG9jYWxldXRpbC5oIFwKLQkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3VuZGVmLmgKKwkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3RyYW5zbW9ncmlmeS5oCiAKLVVOSUNPREVfREVQUyA9ICQoQllURVNUUl9ERVBTKSBcCitVTklDT0RFX0RFUFMgPSBcCiAJCSQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi9hc2NpaWxpYi5oIFwKIAkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL2NvZGVjcy5oIFwKKwkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL2NvdW50LmggXAorCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvZmFzdHNlYXJjaC5oIFwKKwkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL2ZpbmQuaCBcCisJCSQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi9maW5kX21heF9jaGFyLmggXAorCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvbG9jYWxldXRpbC5oIFwKKwkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3BhcnRpdGlvbi5oIFwKKwkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3JlcGxhY2UuaCBcCisJCSQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi9zcGxpdC5oIFwKIAkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3VjczFsaWIuaCBcCiAJCSQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi91Y3MybGliLmggXAogCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvdWNzNGxpYi5oIFwKKwkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3VuZGVmLmggXAogCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvdW5pY29kZV9mb3JtYXQuaCBcCiAJCSQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi91bmljb2RlZGVmcy5oCiAKQEAgLTc0Niw5ICs3NDksNiBAQAogCiBQeXRob24vY2V2YWwubzogJChPUENPREVUQVJHRVRTX0gpICQoc3JjZGlyKS9QeXRob24vY2V2YWxfZ2lsLmgKIAotUHl0aG9uL2Zvcm1hdHRlcl91bmljb2RlLm86ICQoc3JjZGlyKS9QeXRob24vZm9ybWF0dGVyX3VuaWNvZGUuYyBcCi0JCQkJJChCWVRFU1RSX0RFUFMpCi0KIFB5dGhvbi9mcm96ZW4ubzogUHl0aG9uL2ltcG9ydGxpYi5oCiAKIE9iamVjdHMvdHlwZW9iamVjdC5vOiBPYmplY3RzL3R5cGVzbG90cy5pbmMKQEAgLTExNTIsMTAgKzExNTIsMTIgQEAKIAlmaTsgXAogCWNkICQoc3JjZGlyKS9MaWIvJChQTEFURElSKTsgJChSVU5TSEFSRUQpIC4vcmVnZW4KIAotcHl0aG9uLWNvbmZpZzogJChzcmNkaXIpL01pc2MvcHl0aG9uLWNvbmZpZy5pbgorcHl0aG9uLWNvbmZpZzogJChzcmNkaXIpL01pc2MvcHl0aG9uLWNvbmZpZy5pbiBNaXNjL3B5dGhvbi1jb25maWcuc2gKIAkjIFN1YnN0aXR1dGlvbiBoYXBwZW5zIGhlcmUsIGFzIHRoZSBjb21wbGV0ZWx5LWV4cGFuZGVkIEJJTkRJUgogCSMgaXMgbm90IGF2YWlsYWJsZSBpbiBjb25maWd1cmUKLQlzZWQgLWUgInMsQEVYRU5BTUVALCQoQklORElSKS9weXRob24kKExEVkVSU0lPTikkKEVYRSksIiA8ICQoc3JjZGlyKS9NaXNjL3B5dGhvbi1jb25maWcuaW4gPnB5dGhvbi1jb25maWcKKwlzZWQgLWUgInMsQEVYRU5BTUVALCQoQklORElSKS9weXRob24kKExEVkVSU0lPTikkKEVYRSksIiA8ICQoc3JjZGlyKS9NaXNjL3B5dGhvbi1jb25maWcuaW4gPnB5dGhvbi1jb25maWcucHkKKwkjIFJlcGxhY2UgbWFrZWZpbGUgY29tcGF0LiB2YXJpYWJsZSByZWZlcmVuY2VzIHdpdGggc2hlbGwgc2NyaXB0IGNvbXBhdC4gb25lczsgJChWQVIpIC0+ICR7VkFSfQorCXNlZCAtZSAncyxcJCQoXChbQS1aYS16MC05X10qXCkpLFwkJFx7XDFcfSxnJyA8IE1pc2MvcHl0aG9uLWNvbmZpZy5zaCA+cHl0aG9uLWNvbmZpZwogCiAjIEluc3RhbGwgdGhlIGluY2x1ZGUgZmlsZXMKIElOQ0xESVJTVE9NQUtFPSQoSU5DTFVERURJUikgJChDT05GSU5DTFVERURJUikgJChJTkNMVURFUFkpICQoQ09ORklOQ0xVREVQWSkKQEAgLTEyMTMsOCArMTIxNSw4IEBACiAJJChJTlNUQUxMX0RBVEEpIE1pc2MvcHl0aG9uLnBjICQoREVTVERJUikkKExJQlBDKS9weXRob24tJChWRVJTSU9OKS5wYwogCSQoSU5TVEFMTF9TQ1JJUFQpICQoc3JjZGlyKS9Nb2R1bGVzL21ha2VzZXR1cCAkKERFU1RESVIpJChMSUJQTCkvbWFrZXNldHVwCiAJJChJTlNUQUxMX1NDUklQVCkgJChzcmNkaXIpL2luc3RhbGwtc2ggJChERVNURElSKSQoTElCUEwpL2luc3RhbGwtc2gKKwkkKElOU1RBTExfU0NSSVBUKSBweXRob24tY29uZmlnLnB5ICQoREVTVERJUikkKExJQlBMKS9weXRob24tY29uZmlnLnB5CiAJJChJTlNUQUxMX1NDUklQVCkgcHl0aG9uLWNvbmZpZyAkKERFU1RESVIpJChCSU5ESVIpL3B5dGhvbiQoTERWRVJTSU9OKS1jb25maWcKLQlybSBweXRob24tY29uZmlnCiAJQGlmIFsgLXMgTW9kdWxlcy9weXRob24uZXhwIC1hIFwKIAkJImBlY2hvICQoTUFDSERFUCkgfCBzZWQgJ3MvXlwoLi4uXCkuKi9cMS8nYCIgPSAiYWl4IiBdOyB0aGVuIFwKIAkJZWNobzsgZWNobyAiSW5zdGFsbGluZyBzdXBwb3J0IGZpbGVzIGZvciBidWlsZGluZyBzaGFyZWQgZXh0ZW5zaW9uIG1vZHVsZXMgb24gQUlYOiI7IFwKQEAgLTE0MDEsNiArMTQwMyw3IEBACiAJCWNvbmZpZy5jYWNoZSBjb25maWcubG9nIHB5Y29uZmlnLmggTW9kdWxlcy9jb25maWcuYwogCS1ybSAtcmYgYnVpbGQgcGxhdGZvcm0KIAktcm0gLXJmICQoUFlUSE9ORlJBTUVXT1JLRElSKQorCS1ybSAtZiBweXRob24tY29uZmlnLnB5IHB5dGhvbi1jb25maWcKIAogIyBNYWtlIHRoaW5ncyBleHRyYSBjbGVhbiwgYmVmb3JlIG1ha2luZyBhIGRpc3RyaWJ1dGlvbjoKICMgcmVtb3ZlIGFsbCBnZW5lcmF0ZWQgZmlsZXMsIGV2ZW4gTWFrZWZpbGVbLnByZV0KZGlmZiAtLWdpdCBhL01pc2MvQUNLUyBiL01pc2MvQUNLUwppbmRleCA1MmU0NDRlLi4zY2U1Y2QyIDEwMDY0NAotLS0gYS9NaXNjL0FDS1MKKysrIGIvTWlzYy9BQ0tTCkBAIC01Niw2ICs1Niw3IEBACiBEb25vdmFuIEJhYXJkYQogQXJuZSBCYWJlbmhhdXNlcmhlaWRlCiBBdHRpbGEgQmFibworTWF0dCBCYWNobWFubgogTWFyY2luIEJhY2hyeQogQWxmb25zbyBCYWNpZXJvCiBEd2F5bmUgQmFpbGV5CkBAIC0xMjAsNiArMTIxLDcgQEAKIE1pY2hhZWwgQmlydHdlbGwKIFN0dWFydCBCaXNob3AKIFJveSBCaXhsZXIKK0RhbmllbCBCbGFjawogSm9uYXRoYW4gQmxhY2sKIFJlbmF1ZCBCbGFuY2gKIE1pa2UgQmxhbmQKQEAgLTE0OSw4ICsxNTEsMTAgQEAKIEdlb3JnIEJyYW5kbAogQ2hyaXN0b3BoZXIgQnJhbm5vbgogVGVycmVuY2UgQnJhbm5vbgorU3ZlbiBCcmF1Y2gKIEVyaWsgQnJheQogQnJpYW4gQnJhemlsCitEZW1pYW4gQnJlY2h0CiBEYXZlIEJyZW5uYW4KIFRvbSBCcmlkZ21hbgogQW50aG9ueSBCcmlnZ3MKQEAgLTE3MCw2ICsxNzQsNyBAQAogU3RhbiBCdWJyb3Vza2kKIEVyaWsgZGUgQnVlZ2VyCiBKYW4tSGVpbiBCw7xocm1hbgorTGFycyBCdWl0aW5jawogRGljayBCdWx0ZXJtYW4KIEJpbGwgQnVtZ2FybmVyCiBKaW1teSBCdXJnZXR0CkBAIC0yMjIsNiArMjI3LDcgQEAKIENyYWlnIENpdHJvCiBHaWxsZXMgQ2l2YXJpbwogQ2hyaXMgQ2xhcmsKK0xhdXJpZSBDbGFyay1NaWNoYWxlawogTWlrZSBDbGFya3NvbgogQW5kcmV3IENsZWdnCiBCcmFkIENsZW1lbnRzCkBAIC0zMTksNiArMzI1LDcgQEAKIFJvYmluIER1bm4KIEx1a2UgRHVuc3RhbgogVmlyZ2lsIER1cHJhcworQnJ1bm8gRHVwdWlzCiBBbmR5IER1c3RtYW4KIEdhcnkgRHV6YW4KIEV1Z2VuZSBEdnVyZWNoZW5za2kKQEAgLTM0MSw2ICszNDgsNyBAQAogSmVmZiBFcGxlcgogSmVmZiBNY05laWwKIFRvbSBFcHBlcmx5CitHw7ZrY2VuIEVyYXNsYW4KIFN0b2ZmZWwgRXJhc211cwogSsO8cmdlbiBBLiBFcmhhcmQKIE1pY2hhZWwgRXJuc3QKQEAgLTQ1MSw2ICs0NTksNyBAQAogRGFnIEdydW5lYXUKIEZpbGlwIEdydXN6Y3p5xYRza2kKIFRob21hcyBHdWV0dGxlcgorQW51aiBHdXB0YQogTWljaGFlbCBHdXJhdmFnZQogTGFycyBHdXN0w6RiZWwKIFRob21hcyBHw7x0dGxlcgpAQCAtNDYxLDYgKzQ3MCw3IEBACiBSYXNtdXMgSGFobgogUGV0ZXIgSGFpZ2h0CiBWw6FjbGF2IEhhaXNtYW4KK1piaWduaWV3IEhhbGFzCiBXYWxrZXIgSGFsZSBJVgogQm9iIEhhbGxleQogSmVzc2UgSGFsbGlvCkBAIC01OTAsNiArNjAwLDcgQEAKIEZyZWRyaWsgSm9oYW5zc29uCiBHcmVnb3J5IEsuIEpvaG5zb24KIEtlbnQgSm9obnNvbgorTWljaGFlbCBKb2huc29uCiBTaW1vbiBKb2huc3RvbgogTWF0dCBKb2luZXIKIFRob21hcyBKb2xsYW5zCkBAIC02MDcsNiArNjE4LDcgQEAKIEFuZHJlYXMgSnVuZwogVGF0dG9vIE1hYm9uem8gSy4KIEJvaHVzbGF2IEthYnJkYQorQWxleGV5IEthY2hheWV2CiBCb2IgS2FobgogS3VydCBCLiBLYWlzZXIKIFRhbWl0byBLYWppeWFtYQpAQCAtNjgzLDYgKzY5NSw3IEBACiBFcm5vIEt1dXNlbGEKIFJvc3MgTGFnZXJ3YWxsCiBDYW1lcm9uIExhaXJkCitEYXZpZCBMYW0KIFRob21hcyBMYW1iCiBKZWFuLUJhcHRpc3RlICJKaWJhIiBMYW15CiBSb25hbiBMYW15CkBAIC03MTksNiArNzMyLDcgQEAKIE1hcmMtQW5kcsOpIExlbWJ1cmcKIEpvaG4gTGVudG9uCiBLb3N0eWFudHluIExlc2NoZW5rbworQmVubm8gTGVzbGllCiBDaHJpc3RvcGhlciBUdXIgTGVzbmlld3NraS1MYWFzCiBBbGFpbiBMZXVmcm95CiBNYXJrIExldmluc29uCkBAIC03NDUsNiArNzU5LDcgQEAKIEFubmUgTG9yZAogVG9tIExvcmVkbwogSnVzdGluIExvdmUKK05lZCBKYWNrc29uIExvdmVseQogSmFzb24gTG93ZQogVG9ueSBMb3duZHMKIFJheSBMb3l6YWdhCkBAIC03NTIsNiArNzY3LDcgQEAKIExvcmVuIEx1a2UKIEZyZWRyaWsgTHVuZGgKIE1hcmsgTHV0egorVGFyYXMgTHlhcHVuCiBKaW0gTHluY2gKIE1pa2FlbCBMeW5ndmlnCiBNYXJ0aW4gdm9uIEzDtndpcwpAQCAtNzY1LDYgKzc4MSw3IEBACiBTdGV2ZSBNYWpld3NraQogR3J6ZWdvcnogTWFrYXJld2ljegogRGF2aWQgTWFsY29sbQorR3JlZyBNYWxjb2xtCiBLZW4gTWFuaGVpbWVyCiBWbGFkaW1pciBNYXJhbmdvem92CiBDb2xpbiBNYXJjCkBAIC03ODUsNiArODAyLDcgQEAKIEdyYWhhbSBNYXR0aGV3cwogRGlldGVyIE1hdXJlcgogRGFuaWVsIE1heQorTHVjYXMgTWF5c3RyZQogQXJuYXVkIE1hemluCiBSZWJlY2NhIE1jQ3JlYXJ5CiBLaXJrIE1jRG9uYWxkCkBAIC04NDEsNiArODU5LDcgQEAKIEJlbiBNb3JnYW4KIERlcmVrIE1vcnIKIEphbWVzIEEgTW9ycmlzb24KK01hcnRpbiBNb3JyaXNvbgogRGVyZWsgTWNUYXZpc2ggTW91bmNlCiBBbGVzc2FuZHJvIE1vdXJhCiBQYWJsbyBNb3V6bwpAQCAtODU0LDYgKzg3Myw3IEBACiBMb3VpcyBNdW5ybwogUi4gRGF2aWQgTXVycmF5CiBNYXR0aSBNw6RraQorSsO2cmcgTcO8bGxlcgogRGFsZSBOYWdhdGEKIEpvaG4gTmFnbGUKIFRha2FoaXJvIE5ha2F5YW1hCkBAIC05MTUsNiArOTM1LDcgQEAKIFRvZGQgUi4gUGFsbWVyCiBKdWFuIERhdmlkIEliw6HDsWV6IFBhbG9tYXIKIEphbiBQYWx1cworTWF0aGlhcyBQYW56ZW5iw7ZjawogTS4gUGFwaWxsb24KIFBldGVyIFBhcmVudGUKIEFsZXhhbmRyZSBQYXJlbnRlYXUKQEAgLTkyMyw2ICs5NDQsNyBAQAogSGVpa2tpIFBhcnRhbmVuCiBIYXJyaSBQYXNhbmVuCiBHYcOrbCBQYXNncmltYXVkCitBc2hpc2ggTml0aW4gUGF0aWwKIFJhbmR5IFBhdXNjaAogU2FtdWVsZSBQZWRyb25pCiBKdXN0aW4gUGVlbApAQCAtOTQxLDYgKzk2Myw3IEBACiBCZW5qYW1pbiBQZXRlcnNvbgogSm9lIFBldGVyc29uCiBDaHJpcyBQZXRyaWxsaQorUm91bWVuIFBldHJvdgogQmpvcm4gUGV0dGVyc2VuCiBKdXN0aW4gRC4gUGV0dGl0CiBSb25ueSBQZmFubnNjaG1pZHQKQEAgLTk2MSw3ICs5ODQsOSBAQAogSmVhbi1GcmFuw6dvaXMgUGnDqXJvbm5lCiBPbGVnIFBsYWtob3RueXVrCiBSZW1pIFBvaW50ZWwKK0FyaWVsIFBvbGlhawogR3VpbGhlcm1lIFBvbG8KK0lsbGlhIFBvbG9zdWtoaW4KIE1pY2hhZWwgUG9tcmFuaW5nCiBJdXN0aW4gUG9wCiBDbGF1ZGl1IFBvcGEKQEAgLTk3MSw2ICs5OTYsNyBAQAogUGF1bCBQcmVzY29kCiBEb25vdmFuIFByZXN0b24KIFBhdWwgUHJpY2UKK0l1bGlpYSBQcm9za3VybmlhCiBKeXJraSBQdWxsaWFpbmVuCiBTdGV2ZSBQdXJjZWxsCiBFZHVhcmRvIFDDqXJlegpAQCAtOTc5LDYgKzEwMDUsNyBAQAogQnJpYW4gUXVpbmxhbgogQW5kZXJzIFF2aXN0CiBUaG9tYXMgUmFjaGVsCitSYW0gUmFjaHVtCiBKw6lyw7RtZSBSYWRpeAogQnVydG9uIFJhZG9ucwogSmVmZiBSYW1uYW5pCkBAIC0xMDE0LDcgKzEwNDEsNyBAQAogSmVhbi1DbGF1ZGUgUmltYmF1bHQKIFZsYWQgUmlzY3V0aWEKIFdlcyBSaXNoZWwKLURhbiBSaXRpCitEYW5pZWwgUml0aQogSnVhbiBNLiBCZWxsbyBSaXZhcwogRGF2aWRlIFJpenpvCiBBbnRob255IFJvYWNoCkBAIC0xMTQxLDYgKzExNjgsNyBAQAogS3JhZ2VuIFNpdGFrZXIKIE1pY2hhZWwgU2xvYW4KIE5pY2sgU2xvYW4KK1bDoWNsYXYgxaBtaWxhdWVyCiBDaHJpc3RvcGhlciBTbWl0aAogRXJpYyBWLiBTbWl0aAogR3JlZ29yeSBQLiBTbWl0aApAQCAtMTE5NCw2ICsxMjIyLDcgQEAKIFDDqXRlciBTemFiw7MKIEFtaXIgU3pla2VseQogQXJmcmV2ZXIgRnJlaHRlcyBUYWlmZXJzYXIgQXJhaGVzaXMKK0hpZGVha2kgVGFrYWhhc2hpCiBOZWlsIFRhbGxpbQogR2VvZmYgVGFsdm9sYQogTXVzYXNoaSBUYW11cmEKQEAgLTEyMDQsMTIgKzEyMzMsMTQgQEAKIE1vbnR5IFRheWxvcgogQW5hdG9seSBUZWNodG9uaWsKIE1pa2hhaWwgVGVyZWtob3YKK1ZpY3RvciBUZXJyw7NuCiBSaWNoYXJkIE0uIFRldwogVG9iaWFzIFRoZWxlbgogTG93ZSBUaGlkZXJtYW4KIE5pY29sYXMgTS4gVGhpw6lyeQogSmFtZXMgVGhvbWFzCiBSb2JpbiBUaG9tYXMKK0JyaWFuIFRob3JuZQogU3RlcGhlbiBUaG9ybmUKIEplcmVteSBUaHVyZ29vZAogRXJpYyBUaWVkZW1hbm4KQEAgLTEzNDIsNiArMTM3Myw3IEBACiBHb3Jkb24gV29ybGV5CiBEYXJyZW4gV29ycmFsbAogVGhvbWFzIFdvdXRlcnMKK0RhbmllbCBXb3puaWFrCiBIZWlrbyBXdW5kcmFtCiBEb3VnIFd5YXR0CiBSb2JlcnQgWGlhbwpAQCAtMTM1NCw2ICsxMzg2LDcgQEAKIERhbm55IFlvbwogUm9yeSBZb3JrZQogR2VvcmdlIFlvc2hpZGEKK0thenVoaXJvIFlvc2hpZGEKIE1hc2F6dW1pIFlvc2hpa2F3YQogQXJuYXVkIFlzbWFsCiBCZXJuYXJkIFl1ZQpkaWZmIC0tZ2l0IGEvTWlzYy9ISVNUT1JZIGIvTWlzYy9ISVNUT1JZCmluZGV4IDgzMjdkY2EuLjgzNDIxY2QgMTAwNjQ0Ci0tLSBhL01pc2MvSElTVE9SWQorKysgYi9NaXNjL0hJU1RPUlkKQEAgLTMsMTMgKzMsNDExMCBAQAogCiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIHJlbGVhc2UgbWVzc2FnZXMgZm9yIHByZXZpb3VzIFB5dGhvbiByZWxlYXNlcy4KIEFzIHlvdSByZWFkIG9uIHlvdSBnbyBiYWNrIHRvIHRoZSBkYXJrIGFnZXMgb2YgUHl0aG9uJ3MgaGlzdG9yeS4KLShOb3RlOiBuZXdzIGFib3V0IDIuNWMyIGFuZCBsYXRlciAyLjUgcmVsZWFzZXMgaXMgaW4gdGhlIE1pc2MvTkVXUwotZmlsZSBvZiB0aGUgcmVsZWFzZTI1LW1haW50IGJyYW5jaC4pCiAKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAKK1doYXQncyBOZXcgaW4gUHl0aG9uIDMuMy4wPworPT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKypSZWxlYXNlIGRhdGU6IDI5LVNlcC0yMDEyKgorCitDb3JlIGFuZCBCdWlsdGlucworLS0tLS0tLS0tLS0tLS0tLS0KKworLSBJc3N1ZSAjMTYwNDY6IEZpeCBsb2FkaW5nIHNvdXJjZWxlc3MgbGVnYWN5IC5weW8gZmlsZXMuCisKKy0gSXNzdWUgIzE2MDYwOiBGaXggcmVmY291bnRpbmcgYnVnIHdoZW4gX190cnVuY19fIHJldHVybnMgYW4gb2JqZWN0CisgIHdob3NlIF9faW50X18gZ2l2ZXMgYSBub24taW50ZWdlci4gIFBhdGNoIGJ5IFNlcmhpeSBTdG9yY2hha2EuCisKK0V4dGVuc2lvbiBNb2R1bGVzCistLS0tLS0tLS0tLS0tLS0tLQorCistIElzc3VlICMxNjAxMjogRml4IGEgcmVncmVzc2lvbiBpbiBweWV4cGF0LiBUaGUgcGFyc2VyJ3MgVXNlRm9yZWlnbkRURCgpCisgIG1ldGhvZCBkb2Vzbid0IHJlcXVpcmUgYW4gYXJndW1lbnQgYWdhaW4uCisKKworV2hhdCdzIE5ldyBpbiBQeXRob24gMy4zLjAgUmVsZWFzZSBDYW5kaWRhdGUgMz8KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKypSZWxlYXNlIGRhdGU6IDIzLVNlcC0yMDEyKgorCitDb3JlIGFuZCBCdWlsdGlucworLS0tLS0tLS0tLS0tLS0tLS0KKworLSBJc3N1ZSAjMTU5MDA6IEZpeCByZWZlcmVuY2UgbGVhayBpbiBQeVVuaWNvZGVfVHJhbnNsYXRlQ2hhcm1hcCgpLgorCistIElzc3VlICMxNTkyNjogRml4IGNyYXNoIGFmdGVyIG11bHRpcGxlIHJlaW5pdGlhbGl6YXRpb25zIG9mIHRoZSBpbnRlcnByZXRlci4KKworLSBJc3N1ZSAjMTU4OTU6IEZpeCBGSUxFIHBvaW50ZXIgbGVhayBpbiBvbmUgZXJyb3IgYnJhbmNoIG9mCisgIFB5UnVuX1NpbXBsZUZpbGVFeEZsYWdzKCkgd2hlbiBmaWxlbmFtZSBwb2ludHMgdG8gYSBweWMvcHlvIGZpbGUsIGNsb3NlaXQKKyAgaXMgZmFsc2UgYW4gYW5kIHNldF9tYWluX2xvYWRlcigpIGZhaWxzLgorCistIEZpeGVzIGZvciBhIGZldyBjcmFzaCBhbmQgbWVtb3J5IGxlYWsgcmVncmVzc2lvbnMgZm91bmQgYnkgQ292ZXJpdHkuCisKK0xpYnJhcnkKKy0tLS0tLS0KKworLSBJc3N1ZSAjMTU4ODI6IENoYW5nZSBfZGVjaW1hbCB0byBhY2NlcHQgYW55IGNvZWZmaWNpZW50IHR1cGxlIHdoZW4KKyAgY29uc3RydWN0aW5nIGluZmluaXRpZXMuIFRoaXMgaXMgZG9uZSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKKyAgd2l0aCBkZWNpbWFsLnB5OiBJbmZpbml0eSBjb2VmZmljaWVudHMgYXJlIHVuZGVmaW5lZCBpbiBfZGVjaW1hbAorICAoaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBzcGVjaWZpY2F0aW9uKS4KKworLSBJc3N1ZSAjMTU5MjU6IEZpeCBhIHJlZ3Jlc3Npb24gaW4gZW1haWwudXRpbCB3aGVyZSB0aGUgcGFyc2VkYXRlKCkgYW5kCisgIHBhcnNlZGF0ZV90eigpIGZ1bmN0aW9ucyBkaWQgbm90IHJldHVybiBOb25lIGFueW1vcmUgd2hlbiB0aGUgYXJndW1lbnQgY291bGQKKyAgbm90IGJlIHBhcnNlZC4KKworRXh0ZW5zaW9uIE1vZHVsZXMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzE1OTczOiBGaXggYSBzZWdtZW50YXRpb24gZmF1bHQgd2hlbiBjb21wYXJpbmcgZGF0ZXRpbWUgdGltZXpvbmUKKyAgb2JqZWN0cy4KKworLSBJc3N1ZSAjMTU5Nzc6IEZpeCBtZW1vcnkgbGVhayBpbiBNb2R1bGVzL19zc2wuYyB3aGVuIHRoZSBmdW5jdGlvbgorICBfc2V0X25wbl9wcm90b2NvbHMoKSBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMsIHRoYW5rcyB0byBEYW5pZWwgU29tbWVybWFubi4KKworLSBJc3N1ZSAjMTU5Njk6IGZhdWx0aGFuZGxlciBtb2R1bGU6IHJlbmFtZSBkdW1wX3RyYWNlYmFja3NfbGF0ZXIoKSB0bworICBkdW1wX3RyYWNlYmFja19sYXRlcigpIGFuZCBjYW5jZWxfZHVtcF90cmFjZWJhY2tzX2xhdGVyKCkgdG8KKyAgY2FuY2VsX2R1bXBfdHJhY2ViYWNrX2xhdGVyKCkuCisKKy0gX2RlY2ltYWwgbW9kdWxlOiB1c2Ugb25seSBDIDg5IHN0eWxlIGNvbW1lbnRzLgorCisKK1doYXQncyBOZXcgaW4gUHl0aG9uIDMuMy4wIFJlbGVhc2UgQ2FuZGlkYXRlIDI/Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqUmVsZWFzZSBkYXRlOiAwOS1TZXAtMjAxMioKKworQ29yZSBhbmQgQnVpbHRpbnMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzEzOTkyOiBUaGUgdHJhc2hjYW4gbWVjaGFuaXNtIGlzIG5vdyB0aHJlYWQtc2FmZS4gIFRoaXMgZWxpbWluYXRlcworICBzcG9yYWRpYyBjcmFzaGVzIGluIG11bHRpLXRocmVhZCBwcm9ncmFtcyB3aGVuIHNldmVyYWwgbG9uZyBkZWFsbG9jYXRvcgorICBjaGFpbnMgcmFuIGNvbmN1cnJlbnRseSBhbmQgaW52b2x2ZWQgc3ViY2xhc3NlcyBvZiBidWlsdC1pbiBjb250YWluZXIKKyAgdHlwZXMuCisKKy0gSXNzdWUgIzE1Nzg0OiBNb2RpZnkgT1NFcnJvci5fX3N0cl9fKCkgdG8gYmV0dGVyIGRpc3Rpbmd1aXNoIGJldHdlZW4KKyAgZXJybm8gZXJyb3IgbnVtYmVycyBhbmQgV2luZG93cyBlcnJvciBudW1iZXJzLgorCistIElzc3VlICMxNTc4MTogRml4IHR3byBzbWFsbCByYWNlIGNvbmRpdGlvbnMgaW4gaW1wb3J0J3MgbW9kdWxlIGxvY2tpbmcuCisKK0xpYnJhcnkKKy0tLS0tLS0KKworLSBJc3N1ZSAjMTU4NDc6IEZpeCBhIHJlZ3Jlc3Npb24gaW4gYXJncGFyc2UsIHdoaWNoIGRpZCBub3QgYWNjZXB0IHR1cGxlcworICBhcyBhcmd1bWVudCBsaXN0cyBhbnltb3JlLgorCistIElzc3VlICMxNTgyODogUmVzdG9yZSBzdXBwb3J0IGZvciBDIGV4dGVuc2lvbnMgaW4gaW1wLmxvYWRfbW9kdWxlKCkuCisKKy0gSXNzdWUgIzE1MzQwOiBGaXggaW1wb3J0aW5nIHRoZSByYW5kb20gbW9kdWxlIHdoZW4gL2Rldi91cmFuZG9tIGNhbm5vdAorICBiZSBvcGVuZWQuICBUaGlzIHdhcyBhIHJlZ3Jlc3Npb24gY2F1c2VkIGJ5IHRoZSBoYXNoIHJhbmRvbWl6YXRpb24gcGF0Y2guCisKKy0gSXNzdWUgIzEwNjUwOiBEZXByZWNhdGUgdGhlIHdhdGNoZXhwIHBhcmFtZXRlciBvZiB0aGUgRGVjaW1hbC5xdWFudGl6ZSgpCisgIG1ldGhvZC4KKworLSBJc3N1ZSAjMTU3ODU6IE1vZGlmeSB3aW5kb3cuZ2V0X3djaCgpIEFQSSBvZiB0aGUgY3Vyc2VzIG1vZHVsZTogcmV0dXJuCisgIGEgY2hhcmFjdGVyIGZvciBtb3N0IGtleXMsIGFuZCBhbiBpbnRlZ2VyIGZvciBzcGVjaWFsIGtleXMsIGluc3RlYWQgb2YKKyAgYWx3YXlzIHJldHVybmluZyBhbiBpbnRlZ2VyLiBTbyBpdCBpcyBub3cgcG9zc2libGUgdG8gZGlzdGluZ3Vpc2ggc3BlY2lhbAorICBrZXlzIGxpa2Uga2V5cGFkIGtleXMuCisKKy0gSXNzdWUgIzE0MjIzOiBGaXggd2luZG93LmFkZGNoKCkgb2YgdGhlIGN1cnNlcyBtb2R1bGUgZm9yIHNwZWNpYWwgY2hhcmFjdGVycworICBsaWtlIGN1cnNlcy5BQ1NfSExJTkU6IHRoZSBQeXRob24gZnVuY3Rpb24gYWRkY2goaW50KSBhbmQgYWRkY2goYnl0ZXMpIGlzIG5vdworICBjYWxsaW5nIHRoZSBDIGZ1bmN0aW9uIHdhZGRjaCgpL212d2FkZGNoKCkgKGFzIGl0IHdhcyBkb25lIGluIFB5dGhvbiAzLjIpLAorICBpbnN0ZWFkIG9mIHdhZGRfd2NoKCkvbXZ3YWRkX3djaCgpLiBUaGUgUHl0aG9uIGZ1bmN0aW9uIGFkZGNoKHN0cikgaXMgc3RpbGwKKyAgY2FsbGluZyB0aGUgQyBmdW5jdGlvbiB3YWRkX3djaCgpL212d2FkZF93Y2goKSBpZiB0aGUgUHl0aG9uIGN1cnNlcyBpcyBsaW5rZWQKKyAgdG8gbGlibmN1cnNlc3cuCisKK0J1aWxkCistLS0tLQorCistIElzc3VlICMxNTgyMjogUmVhbGx5IGVuc3VyZSAydG8zIGdyYW1tYXIgcGlja2xlcyBhcmUgcHJvcGVybHkgaW5zdGFsbGVkCisgIChyZXBsYWNlcyBmaXhlcyBmb3IgSXNzdWUgIzE1NjQ1KS4KKworRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLQorCistIElzc3VlICMxNTgxNDogVGhlIG1lbW9yeXZpZXcgZW5oYW5jZW1lbnRzIGluIDMuMy4wIGFjY2lkZW50YWxseSBwZXJtaXR0ZWQKKyAgdGhlIGhhc2hpbmcgb2YgbXVsdGktZGltZW5zaW9uYWwgbWVtb3J2aWV3cyBhbmQgbWVtb3J5dmlld3Mgd2l0aCBtdWx0aS1ieXRlCisgIGl0ZW0gZm9ybWF0cy4gVGhlIGludGVuZGVkIHJlc3RyaWN0aW9ucyBoYXZlIG5vdyBiZWVuIGRvY3VtZW50ZWQgLSB0aGV5CisgIHdpbGwgYmUgY29ycmVjdGx5IGVuZm9yY2VkIGluIDMuMy4xCisKKworV2hhdCdzIE5ldyBpbiBQeXRob24gMy4zLjAgUmVsZWFzZSBDYW5kaWRhdGUgMT8KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKypSZWxlYXNlIGRhdGU6IDI1LUF1Zy0yMDEyKgorCitDb3JlIGFuZCBCdWlsdGlucworLS0tLS0tLS0tLS0tLS0tLS0KKworLSBJc3N1ZSAjMTU1NzM6IG1lbW9yeXZpZXcgY29tcGFyaXNvbnMgYXJlIG5vdyBwZXJmb3JtZWQgYnkgdmFsdWUgd2l0aCBmdWxsCisgIHN1cHBvcnQgZm9yIGFueSB2YWxpZCBzdHJ1Y3QgbW9kdWxlIGZvcm1hdCBkZWZpbml0aW9uLgorCistIElzc3VlICMxNTMxNjogV2hlbiBhbiBpdGVtIGluIHRoZSBmcm9tbGlzdCBmb3IgX19pbXBvcnRfXyBkb2Vzbid0IGV4aXN0LAorICBkb24ndCByYWlzZSBhbiBlcnJvciwgYnV0IGlmIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQgYXMgcGFydCBvZiBhbiBpbXBvcnQgZG8KKyAgbGV0IHRoYXQgcHJvcGFnYXRlLgorCistIElzc3VlICMxNTc3ODogZW5zdXJlIHRoYXQgc3RyKEltcG9ydEVycm9yKG1zZykpIHJldHVybnMgYSBzdHIKKyAgZXZlbiB3aGVuIG1zZyBpc24ndCBhIHN0ci4KKworLSBJc3N1ZSAjMjA1MTogU291cmNlIGZpbGUgcGVybWlzc2lvbiBiaXRzIGFyZSBvbmNlIGFnYWluIGNvcnJlY3RseQorICBjb3BpZWQgdG8gdGhlIGNhY2hlZCBieXRlY29kZSBmaWxlLiAoVGhlIG1pZ3JhdGlvbiB0byBpbXBvcnRsaWIKKyAgcmVpbnRyb2R1Y2VkIHRoaXMgcHJvYmxlbSBiZWNhdXNlIHRoZXNlIHdhcyBubyByZWdyZXNzaW9uIHRlc3QuIEEgdGVzdAorICBoYXMgYmVlbiBhZGRlZCBhcyBwYXJ0IG9mIHRoaXMgcGF0Y2gpCisKKy0gSXNzdWUgIzE1NzYxOiBGaXggY3Jhc2ggd2hlbiBQWVRIT05FWEVDVVRBQkxFIGlzIHNldCBvbiBNYWMgT1MgWC4KKworLSBJc3N1ZSAjMTU3MjY6IEZpeCBpbmNvcnJlY3QgYm91bmRzIGNoZWNraW5nIGluIFB5U3RhdGVfRmluZE1vZHVsZS4KKyAgUGF0Y2ggYnkgUm9iaW4gU2NocmVpYmVyLgorCistIElzc3VlICMxNTYwNDogVXBkYXRlIHVzZXMgb2YgUHlPYmplY3RfSXNUcnVlKCkgdG8gY2hlY2sgZm9yIGFuZCBoYW5kbGUKKyAgZXJyb3JzIGNvcnJlY3RseS4gIFBhdGNoIGJ5IFNlcmhpeSBTdG9yY2hha2EuCisKKy0gSXNzdWUgIzE0ODQ2OiBpbXBvcnRsaWIuRmlsZUZpbmRlciBub3cgaGFuZGxlcyB0aGUgY2FzZSB3aGVyZSB0aGUKKyAgZGlyZWN0b3J5IGJlaW5nIHNlYXJjaGVkIGlzIHJlbW92ZWQgYWZ0ZXIgYSBwcmV2aW91cyBpbXBvcnQgYXR0ZW1wdAorCitMaWJyYXJ5CistLS0tLS0tCisKKy0gSXNzdWUgIzEzMzcwOiBFbnN1cmUgdGhhdCBjdHlwZXMgd29ya3Mgb24gTWFjIE9TIFggd2hlbiBQeXRob24gaXMKKyAgY29tcGlsZWQgdXNpbmcgdGhlIGNsYW5nIGNvbXBpbGVyCisKKy0gSXNzdWUgIzEzMDcyOiBUaGUgYXJyYXkgbW9kdWxlJ3MgJ3UnIGZvcm1hdCBjb2RlIGlzIG5vdyBkZXByZWNhdGVkIGFuZAorICB3aWxsIGJlIHJlbW92ZWQgaW4gUHl0aG9uIDQuMC4KKworLSBJc3N1ZSAjMTU1NDQ6IEZpeCBEZWNpbWFsLl9fZmxvYXRfXyB0byB3b3JrIHdpdGggcGF5bG9hZC1jYXJyeWluZyBOYU5zLgorCistIElzc3VlICMxNTI0OTogQnl0ZXNHZW5lcmF0b3Igbm93IGNvcnJlY3RseSBtYW5nbGVzIEZyb20gbGluZXMgKHdoZW4KKyAgcmVxdWVzdGVkKSBldmVuIGlmIHRoZSBib2R5IGNvbnRhaW5zIHVuZGVjb2RhYmxlIGJ5dGVzLgorCistIElzc3VlICMxNTc3NzogRml4IGEgcmVmbGVhayBpbiBfcG9zaXhzdWJwcm9jZXNzLgorCistIElzc3VlICMjNjY1MTk0OiBVcGRhdGUgZW1haWwudXRpbHMubG9jYWx0aW1lIHRvIHVzZSBkYXRldGltZS5hc3RpbWV6b25lIGFuZAorICBjb3JyZWN0bHkgaGFuZGxlIGhpc3RvcmljIGNoYW5nZXMgaW4gVVRDIG9mZnNldHMuCisKKy0gSXNzdWUgIzE1MTk5OiBGaXggSmF2YVNjcmlwdCdzIGRlZmF1bHQgTUlNRSB0eXBlIHRvIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQuCisgIFBhdGNoIGJ5IEJvaHVzbGF2IEthYnJkYS4KKworLSBJc3N1ZSAjMTI2NDM6IGNvZGUuSW50ZXJhY3RpdmVDb25zb2xlIG5vdyByZXNwZWN0cyBzeXMuZXhjZXB0aG9vayB3aGVuCisgIGRpc3BsYXlpbmcgZXhjZXB0aW9ucyAoUGF0Y2ggYnkgQWFyb24gSWxlcykKKworLSBJc3N1ZSAjMTM1Nzk6IHN0cmluZy5Gb3JtYXR0ZXIgbm93IHVuZGVyc3RhbmRzIHRoZSAnYScgY29udmVyc2lvbiBzcGVjaWZpZXIuCisKKy0gSXNzdWUgIzE1NzkzOiBTdGFjayBjb3JydXB0aW9uIGluIHNzbC5SQU5EX2VnZCgpLgorICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgorCistIElzc3VlICMxNTU5NTogRml4IHN1YnByb2Nlc3MuUG9wZW4odW5pdmVyc2FsX25ld2xpbmVzPVRydWUpCisgIGZvciBjZXJ0YWluIGxvY2FsZXMgKHV0Zi0xNiBhbmQgdXRmLTMyIGZhbWlseSkuIFBhdGNoIGJ5IENocmlzIEplcmRvbmVrLgorCistIElzc3VlICMxNTQ3NzogSW4gY21hdGggYW5kIG1hdGggbW9kdWxlcywgYWRkIHdvcmthcm91bmQgZm9yIHBsYXRmb3JtcyB3aG9zZQorICBzeXN0ZW0tc3VwcGxpZWQgbG9nMXAgZnVuY3Rpb24gZG9lc24ndCByZXNwZWN0IHNpZ25zIG9mIHplcm9zLgorCistIElzc3VlICMxNTcxNTogaW1wb3J0bGliLl9faW1wb3J0X18oKSB3aWxsIHNpbGVuY2UgYW4gSW1wb3J0RXJyb3Igd2hlbiB0aGUgdXNlCisgIG9mIGZyb21saXN0IGxlYWRzIHRvIGEgZmFpbGVkIGltcG9ydC4KKworLSBJc3N1ZSAjMTQ2Njk6IEZpeCBwaWNrbGluZyBvZiBjb25uZWN0aW9ucyBhbmQgc29ja2V0cyBvbiBNYWNPU1gKKyAgYnkgc2VuZGluZy9yZWNlaXZpbmcgYW4gYWNrbm93bGVkZ21lbnQgYWZ0ZXIgZmlsZSBkZXNjcmlwdG9yIHRyYW5zZmVyLgorICBUZXN0UGlja2xpbmdDb25uZWN0aW9uIGhhcyBiZWVuIHJlZW5hYmxlZCBmb3IgTWFjT1NYLgorCistIElzc3VlICMxMTA2MjogRml4IGFkZGluZyBhIG1lc3NhZ2UgZnJvbSBmaWxlIHRvIEJhYnlsIG1haWxib3guCisKKy0gSXNzdWUgIzE1NjQ2OiBQcmV2ZW50IGVxdWl2YWxlbnQgb2YgYSBmb3JrIGJvbWIgd2hlbiB1c2luZworICBtdWx0aXByb2Nlc3Npbmcgb24gV2luZG93cyB3aXRob3V0IHRoZSAiaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJyIKKyAgaWRpb20uCisKKy0gSXNzdWUgIzE1Njc4OiBGaXggSURMRSBtZW51cyB3aGVuIHN0YXJ0ZWQgZnJvbSBPUyBYIGNvbW1hbmQgbGluZQorICAoMy4zLjBiMiByZWdyZXNzaW9uKS4KKworQyBBUEkKKy0tLS0tCisKK0V4dGVuc2lvbiBNb2R1bGVzCistLS0tLS0tLS0tLS0tLS0tLQorCitUb29scy9EZW1vcworLS0tLS0tLS0tLS0KKworRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLQorCistIElzc3VlICMxNDY3NDogQWRkIGEgZGlzY3Vzc2lvbiBvZiB0aGUganNvbiBtb2R1bGUncyBzdGFuZGFyZCBjb21wbGlhbmNlLgorICBQYXRjaCBieSBDaHJpcyBSZWJlcnQuCisKKy0gQ3JlYXRlIGEgJ0NvbmN1cnJlbnQgRXhlY3V0aW9uJyBzZWN0aW9uIGluIHRoZSBkb2NzLCBhbmQgc3BsaXQgdXAgdGhlCisgICdPcHRpb25hbCBPcGVyYXRpbmcgU3lzdGVtIFNlcnZpY2VzJyBzZWN0aW9uIHRvIHVzZSBhIG1vcmUgdXNlci1jZW50cmljCisgIGNsYXNzaWZpY2F0aW9uIHNjaGVtZSAoc3BsaXR0aW5nIHRoZW0gYWNyb3NzIHRoZSBuZXcgQ0Ugc2VjdGlvbiwgSVBDIGFuZAorICB0ZXh0IHByb2Nlc3NpbmcpLiBPcGVyYXRpbmcgc3lzdGVtIGxpbWl0YXRvbnMgY2FuIGJlIHJlZmxlY3RlZCB3aXRoCisgIHRoZSBTcGhpbnggYGA6cGxhdGZvcm06YGAgdGFnLCBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgYXMgcGFydCBvZiB0aGUgVGFibGUgb2YKKyAgQ29udGVudHMuCisKKy0gSXNzdWUgIzQ5NjY6IEJyaW5nIHRoZSBzZXF1ZW5jZSBkb2NzIHVwIHRvIGRhdGUgZm9yIHRoZSBQeTNrIHRyYW5zaXRpb24KKyAgYW5kIHRoZSBtYW55IGxhbmd1YWdlIGVuaGFuY2VtZW50cyBzaW5jZSB0aGV5IHdlcmUgb3JpZ2luYWwgd3JpdHRlbgorCistIFRoZSAicGF0aCBpbXBvcnRlciIgbWlzbm9tZXIgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCBFcmljIFNub3cncworICBtb3JlLWF3a3dhcmQtYnV0LWF0LWxlYXN0LW5vdC13cm9uZyBzdWdnZXN0aW9uIG9mICJwYXRoIGJhc2VkIGZpbmRlciIgaW4KKyAgdGhlIGltcG9ydCBzeXN0ZW0gcmVmZXJlbmNlIGRvY3MKKworLSBJc3N1ZSAjMTU2NDA6IERvY3VtZW50IGltcG9ydGxpYi5hYmMuRmluZGVyIGFzIGRlcHJlY2F0ZWQuCisKKy0gSXNzdWUgIzE1NjMwOiBBZGQgYW4gZXhhbXBsZSBmb3IgImNvbnRpbnVlIiBzdG10IGluIHRoZSB0dXRvcmlhbC4gUGF0Y2ggYnkKKyAgRGFuaWVsIEVsbGlzLgorCitUZXN0cworLS0tLS0KKworLSBJc3N1ZSAjMTU3NDc6IFpGUyBhbHdheXMgcmV0dXJucyBFT1BOT1RTVVBQIHdoZW4gYXR0ZW1wdGluZyB0byBzZXQgdGhlCisgIFVGX0lNTVVUQUJMRSBmbGFnICh2aWEgZWl0aGVyIGNoZmxhZ3Mgb3IgbGNoZmxhZ3MpOyByZWZhY3RvciBhZmZlY3RlZAorICB0ZXN0cyBpbiB0ZXN0X3Bvc2l4LnB5IHRvIGFjY291bnQgZm9yIHRoaXMuCisKKy0gSXNzdWUgIzE1Mjg1OiBSZWZhY3RvciB0aGUgYXBwcm9hY2ggZm9yIHRlc3RpbmcgY29ubmVjdCB0aW1lb3V0cyB1c2luZworICB0d28gZXh0ZXJuYWwgaG9zdHMgdGhhdCBoYXZlIGJlZW4gY29uZmlndXJlZCBzcGVjaWZpY2FsbHkgZm9yIHRoaXMgdHlwZQorICBvZiB0ZXN0LgorCistIElzc3VlICMxNTc0MzogUmVtb3ZlIHRoZSBkZXByZWNhdGVkIG1ldGhvZCB1c2FnZSBpbiB1cmxsaWIgdGVzdHMuIFBhdGNoIGJ5CisgIEplZmYgS251cHAuCisKKy0gSXNzdWUgIzE1NjE1OiBBZGQgc29tZSB0ZXN0cyBmb3IgdGhlIGpzb24gbW9kdWxlJ3MgaGFuZGxpbmcgb2YgaW52YWxpZAorICBpbnB1dCBkYXRhLiAgUGF0Y2ggYnkgS3VzaGFsIERhcy4KKworQnVpbGQKKy0tLS0tCisKKy0gT3V0cHV0IGxpYiBmaWxlcyBmb3IgUEdPIGJ1aWxkIGludG8gUEdPIGRpcmVjdG9yeS4KKworLSBQaWNrIHVwIDMyLWJpdCBsYXVuY2hlciBmcm9tIFBHTyBkaXJlY3Rvcnkgb24gNjQtYml0IFBHTyBidWlsZC4KKworLSBEcm9wIFBDXHB5dGhvbl9udC5oIGFzIGl0J3Mgbm90IHVzZWQuIEFkZCBpbnB1dCBkZXBlbmRlbmN5IG9uIGN1c3RvbQorICBidWlsZCBzdGVwLgorCistIElzc3VlICMxNTUxMTogRHJvcCBleHBsaWNpdCBkZXBlbmRlbmN5IG9uIHB5dGhvbnh5LmxpYiBmcm9tIF9kZWNpbWFsCisgIGFtZDY0IGNvbmZpZ3VyYXRpb24uCisKKy0gQWRkIG1pc3NpbmcgUEdJL1BHTyBjb25maWd1cmF0aW9ucyBmb3IgcHl3bGF1bmNoZXIuCisKKy0gSXNzdWUgIzE1NjQ1OiBFbnN1cmUgMnRvMyBncmFtbWFyIHBpY2tsZXMgYXJlIHByb3Blcmx5IGluc3RhbGxlZC4KKworCitXaGF0J3MgTmV3IGluIFB5dGhvbiAzLjMuMCBCZXRhIDI/Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKypSZWxlYXNlIGRhdGU6IDEyLUF1Zy0yMDEyKgorCitDb3JlIGFuZCBCdWlsdGlucworLS0tLS0tLS0tLS0tLS0tLS0KKworLSBJc3N1ZSAjMTU1Njg6IEZpeCB0aGUgcmV0dXJuIHZhbHVlIG9mICJ5aWVsZCBmcm9tIiB3aGVuIFN0b3BJdGVyYXRpb24gaXMKKyAgcmFpc2VkIGJ5IGEgY3VzdG9tIGl0ZXJhdG9yLgorCistIElzc3VlICMxMzExOTogc3lzLnN0ZG91dCBhbmQgc3lzLnN0ZGVyciBhcmUgbm93IHVzaW5nICJcclxuIiBuZXdsaW5lIG9uCisgIFdpbmRvd3MsIGFzIFB5dGhvbiAyLgorCistIElzc3VlICMxNTUzNDogRml4IHRoZSBmYXN0LXNlYXJjaCBmdW5jdGlvbiBmb3Igbm9uLUFTQ0lJIFVuaWNvZGUgc3RyaW5ncy4KKworLSBJc3N1ZSAjMTU1MDg6IEZpeCB0aGUgZG9jc3RyaW5nIGZvciBfX2ltcG9ydF9fIHRvIGhhdmUgdGhlIHByb3BlciBkZWZhdWx0CisgIHZhbHVlIG9mIDAgZm9yICdsZXZlbCcgYW5kIHRvIG5vdCBtZW50aW9uIG5lZ2F0aXZlIGxldmVscyBzaW5jZSB0aGV5IGFyZSBub3QKKyAgc3VwcG9ydGVkLgorCistIElzc3VlICMxNTQyNTogRWxpbWluYXRlZCB0cmFjZWJhY2sgbm9pc2UgZnJvbSBtb3JlIHNpdHVhdGlvbnMgaW52b2x2aW5nCisgIGltcG9ydGxpYi4KKworLSBJc3N1ZSAjMTQ1Nzg6IFN1cHBvcnQgbW9kdWxlcyByZWdpc3RlcmVkIGluIHRoZSBXaW5kb3dzIHJlZ2lzdHJ5IGFnYWluLgorCistIElzc3VlICMxNTQ2NjogU3RvcCB1c2luZyBUWVBFX0lOVDY0IGluIG1hcnNoYWwsIHRvIG1ha2UgaW1wb3J0bGliLmggKGFuZCBvdGhlcgorICBieXRlIGNvZGUgZmlsZXMpIGVxdWFsIGJldHdlZW4gMzItYml0IGFuZCA2NC1iaXQgc3lzdGVtcy4KKworLSBJc3N1ZSAjMTY5MjMzNTogTW92ZSBpbml0aWFsIGV4Y2VwdGlvbiBhcmdzIGFzc2lnbm1lbnQgdG8KKyAgIkJhc2VFeGNlcHRpb24uX19uZXdfXyIgdG8gaGVscCBwaWNrbGluZyBvZiBuYWl2ZSBzdWJjbGFzc2VzLgorCistIElzc3VlICMxMjgzNDogRml4IFB5QnVmZmVyX1RvQ29udGlndW91cygpIGZvciBub24tY29udGlndW91cyBhcnJheXMuCisKKy0gSXNzdWUgIzE1NDU2OiBGaXggY29kZSBfX3NpemVvZl9fIGFmdGVyICMxMjM5OSBjaGFuZ2UuICBQYXRjaCBieSBTZXJoaXkKKyAgU3RvcmNoYWthLgorCistIElzc3VlICMxNTQwNDogUmVmbGVhayBpbiBQeU1ldGhvZE9iamVjdCByZXByLgorCistIElzc3VlICMxNTM5NDogQW4gaXNzdWUgaW4gUHlNb2R1bGVfQ3JlYXRlIHRoYXQgY2F1c2VkIHJlZmVyZW5jZXMgdG8gYmUgbGVha2VkCisgIG9uIHNvbWUgZXJyb3IgcGF0aHMgaGFzIGJlZW4gZml4ZWQuICBQYXRjaCBieSBKdWxpYSBMYXdhbGwuCisKKy0gSXNzdWUgIzE1MzY4OiBBbiBpc3N1ZSB0aGF0IGNhdXNlZCBieXRlY29kZSBnZW5lcmF0aW9uIHRvIGJlIG5vbi1kZXRlcm1pbmlzdGljCisgIGhhcyBiZWVuIGZpeGVkLgorCistIElzc3VlICMxNTIwMjogQ29uc2lzdGVudGx5IHVzZSB0aGUgbmFtZSAiZm9sbG93X3N5bWxpbmtzIiBmb3IgbmV3IHBhcmFtZXRlcnMKKyAgaW4gb3MgYW5kIHNodXRpbCBmdW5jdGlvbnMuCisKKy0gSXNzdWUgIzE1MzE0OiBfX21haW5fXy5fX2xvYWRlcl9fIGlzIG5vdyBzZXQgY29ycmVjdGx5IGR1cmluZyBpbnRlcnByZXRlcgorICBzdGFydHVwLgorCistIElzc3VlICMxNTExMTogV2hlbiBhIG1vZHVsZSBpbXBvcnRlZCB1c2luZyAnZnJvbSBpbXBvcnQnIGhhcyBhbiBJbXBvcnRFcnJvcgorICBpbnNpZGUgaXRzZWxmLCBkb24ndCBtYXNrIHRoYXQgZmFjdCBiZWhpbmQgYSBnZW5lcmljIEltcG9ydEVycm9yIGZvciB0aGUKKyAgbW9kdWxlIGl0c2VsZi4KKworLSBJc3N1ZSAjMTUyOTM6IEFkZCBHQyBzdXBwb3J0IHRvIHRoZSBBU1QgYmFzZSBub2RlIHR5cGUuCisKKy0gSXNzdWUgIzE1MjkxOiBGaXggYSBtZW1vcnkgbGVhayB3aGVyZSBBU1Qgbm9kZXMgd2hlcmUgbm90IHByb3Blcmx5CisgIGRlYWxsb2NhdGVkLgorCistIElzc3VlICMxNTExMDogRml4IHRoZSB0cmFjZWJhY2tzIGdlbmVyYXRlZCBieSAiaW1wb3J0IHh4eCIgdG8gbm90IHNob3cgdGhlCisgIGltcG9ydGxpYiBzdGFjayBmcmFtZXMuCisKKy0gSXNzdWUgIzE1MDIwOiBUaGUgcHJvZ3JhbSBuYW1lIHVzZWQgdG8gc2VhcmNoIGZvciBQeXRob24ncyBwYXRoIGlzIG5vdworICAicHl0aG9uMyIgdW5kZXIgVW5peCwgbm90ICJweXRob24iLgorCistIElzc3VlICMxNTAzMzogRml4IHRoZSBleGl0IHN0YXR1cyBidWcgd2hlbiBtb2R1bGVzIGludm9rZWQgdXNpbmcgLW0gc3dpdGgsCisgIHJldHVybiB0aGUgcHJvcGVyIGZhaWx1cmUgcmV0dXJuIHZhbHVlICgxKS4gUGF0Y2ggY29udHJpYnV0ZWQgYnkgSmVmZiBLbnVwcC4KKworLSBJc3N1ZSAjMTUyMjk6IEFuIE9TRXJyb3Igc3ViY2xhc3Mgd2hvc2UgX19pbml0X18gZG9lc24ndCBjYWxsIGJhY2sKKyAgT1NFcnJvci5fX2luaXRfXyBjb3VsZCBwcm9kdWNlIGluY29tcGxldGUgaW5zdGFuY2VzLCBsZWFkaW5nIHRvIGNyYXNoZXMgd2hlbgorICBjYWxsaW5nIHN0cigpIG9uIHRoZW0uCisKKy0gSXNzdWUgMTUzMDc6IFZpcnR1YWwgZW52aXJvbm1lbnRzIG5vdyB1c2Ugc3ltbGlua3Mgd2l0aCBmcmFtZXdvcmsgYnVpbGRzIG9uCisgIE1hYyBPUyBYLCBsaWtlIG90aGVyIFBPU0lYIGJ1aWxkcy4KKworTGlicmFyeQorLS0tLS0tLQorCistIElzc3VlICMxNTQyNDogQWRkIGEgX19zaXplb2ZfXyBpbXBsZW1lbnRhdGlvbiBmb3IgYXJyYXkgb2JqZWN0cy4gIFBhdGNoIGJ5CisgIEx1ZHdpZyBIw6RobmUuCisKKy0gSXNzdWUgIzE1NTc2OiBBbGxvdyBleHRlbnNpb24gbW9kdWxlcyB0byBhY3QgYXMgYSBwYWNrYWdlJ3MgX19pbml0X18gbW9kdWxlLgorCistIElzc3VlICMxNTUwMjogSGF2ZSBpbXBvcnRsaWIuaW52YWxpZGF0ZV9jYWNoZXMoKSB3b3JrIG9uIHN5cy5tZXRhX3BhdGggaW5zdGVhZAorICBvZiBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZS4KKworLSBJc3N1ZSAjMTUxNjM6IFB5ZG9jIHNob3VsZG4ndCBsaXN0IF9fbG9hZGVyX18gYXMgbW9kdWxlIGRhdGEuCisKKy0gSXNzdWUgIzE1NDcxOiBEbyBub3QgdXNlIG11dGFibGUgb2JqZWN0cyBhcyBkZWZhdWx0cyBmb3IKKyAgaW1wb3J0bGliLl9faW1wb3J0X18oKS4KKworLSBJc3N1ZSAjMTU1NTk6IFRvIGF2b2lkIGEgcHJvYmxlbWF0aWMgZmFpbHVyZSBtb2RlIHdoZW4gcGFzc2VkIHRvIHRoZSBieXRlcworICBjb25zdHJ1Y3Rvciwgb2JqZWN0cyBpbiB0aGUgaXBhZGRyZXNzIG1vZHVsZSBubyBsb25nZXIgaW1wbGVtZW50IF9faW5kZXhfXworICAodGhleSBzdGlsbCBpbXBsZW1lbnQgX19pbnRfXyBhcyBhcHByb3ByaWF0ZSkKKworLSBJc3N1ZSAjMTU1NDY6IEZpeCBoYW5kbGluZyBvZiBwYXRob2xvZ2ljYWwgaW5wdXQgZGF0YSBpbiB0aGUgcGVlaygpIGFuZAorICByZWFkMSgpIG1ldGhvZHMgb2YgdGhlIEJaMkZpbGUsIEd6aXBGaWxlIGFuZCBMWk1BRmlsZSBjbGFzc2VzLgorCistIElzc3VlICMxMzA1MjogRml4IElETEUgY3Jhc2hpbmcgd2hlbiByZXBsYWNlIHN0cmluZyBpbiBTZWFyY2gvUmVwbGFjZSBkaWFsb2cKKyAgZW5kZWQgd2l0aCAnXCcuIFBhdGNoIGJ5IFJvZ2VyIFNlcnd5LgorCistIElzc3VlICMxMjY1NTogSW5zdGVhZCBvZiByZXF1aXJpbmcgYSBjdXN0b20gdHlwZSwgb3Muc2NoZWRfZ2V0YWZmaW5pdHkgYW5kCisgIG9zLnNjaGVkX3NldGFmZmluaXR5IG5vdyB1c2UgcmVndWxhciBzZXRzIG9mIGludGVnZXJzIHRvIHJlcHJlc2VudCB0aGUgQ1BVcyBhCisgIHByb2Nlc3MgaXMgcmVzdHJpY3RlZCB0by4KKworLSBJc3N1ZSAjMTU1Mzg6IEZpeCBjb21waWxhdGlvbiBvZiB0aGUgZ2V0bmFtZWluZm8oKSAvIGdldGFkZHJpbmZvKCkgZW11bGF0aW9uCisgIGNvZGUuICBQYXRjaCBieSBQaGlsaXBwIEhhZ2VtZWlzdGVyLgorCistIElzc3VlICMxNTUxOTogUHJvcGVybHkgZXhwb3NlIFdpbmRvd3NSZWdpc3RyeUZpbmRlciBpbiBpbXBvcnRsaWIgKGFuZCB1c2UgdGhlCisgIGNvcnJlY3QgdGVybSBmb3IgaXQpLiBPcmlnaW5hbCBwYXRjaCBieSBFcmljIFNub3cuCisKKy0gSXNzdWUgIzE1NTAyOiBCcmluZyB0aGUgaW1wb3J0bGliIEFCQ3MgaW50byBsaW5lIHdpdGggdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlCisgIGltcG9ydCBwcm90b2NvbHMgZ2l2ZW4gUEVQIDQyMC4gT3JpZ2luYWwgcGF0Y2ggYnkgRXJpYyBTbm93LgorCistIElzc3VlICMxNTQ5OTogTGF1bmNoaW5nIGEgd2ViYnJvd3NlciBpbiBVbml4IHVzZWQgdG8gc2xlZXAgZm9yIGEgZmV3IHNlY29uZHMuCisgIE9yaWdpbmFsIHBhdGNoIGJ5IEFudG9uIEJhcmtvdnNreS4KKworLSBJc3N1ZSAjMTU0NjM6IFRoZSBmYXVsdGhhbmRsZXIgbW9kdWxlIHRydW5jYXRlcyBzdHJpbmdzIHRvIDUwMCBjaGFyYWN0ZXJzLAorICBpbnN0ZWFkIG9mIDEwMCwgdG8gYmUgYWJsZSB0byBkaXNwbGF5IGxvbmcgZmlsZSBwYXRocy4KKworLSBJc3N1ZSAjNjA1NjogTWFrZSBtdWx0aXByb2Nlc3NpbmcgdXNlIHNldGJsb2NraW5nKFRydWUpIG9uIHRoZSBzb2NrZXRzIGl0CisgIHVzZXMuICBPcmlnaW5hbCBwYXRjaCBieSBKIERlcmVrIFdpbHNvbi4KKworLSBJc3N1ZSAjMTUzNjQ6IEZpeCBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ3NyY2RpcicpIHRvIGJlIGFuIGFic29sdXRlIHBhdGguCisKKy0gSXNzdWUgIzE1MDQxOiBVcGRhdGUgInNlZSBhbHNvIiBsaXN0IGluIHRraW50ZXIgZG9jdW1lbnRhdGlvbi4KKworLSBJc3N1ZSAjMTU0MTM6IG9zLnRpbWVzKCkgaGFkIGRpc2FwcGVhcmVkIHVuZGVyIFdpbmRvd3MuCisKKy0gSXNzdWUgIzE1NDAyOiBBbiBpc3N1ZSBpbiB0aGUgc3RydWN0IG1vZHVsZSB0aGF0IGNhdXNlZCBzeXMuZ2V0c2l6ZW9mIHRvCisgIHJldHVybiBpbmNvcnJlY3QgcmVzdWx0cyBmb3Igc3RydWN0LlN0cnVjdCBpbnN0YW5jZXMgaGFzIGJlZW4gZml4ZWQuICBJbml0aWFsCisgIHBhdGNoIGJ5IFNlcmhpeSBTdG9yY2hha2EuCisKKy0gSXNzdWUgIzE1MjMyOiBXaGVuIG1hbmdsZV9mcm9tIGlzIFRydWUsIGVtYWlsLkdlbmVyYXRvciBub3cgY29ycmVjdGx5IG1hbmdsZXMKKyAgbGluZXMgdGhhdCBzdGFydCB3aXRoICdGcm9tICcgdGhhdCBvY2N1ciBpbiBhIE1JTUUgcHJlYW1ibGUgb3IgZXBpbG9ndWUuCisKKy0gSXNzdWUgIzE1MDk0OiBJbmNvcnJlY3RseSBwbGFjZWQgI2VuZGlmIGluIF90a2ludGVyLmMuICBQYXRjaCBieSBTZXJoaXkKKyAgU3RvcmNoYWthLgorCistIElzc3VlICMxMzkyMjogYXJncGFyc2Ugbm8gbG9uZ2VyIGluY29ycmVjdGx5IHN0cmlwcyAnLS0ncyB0aGF0IGFwcGVhciBhZnRlcgorICB0aGUgZmlyc3Qgb25lLgorCistIElzc3VlICMxMjM1MzogYXJncGFyc2Ugbm93IGNvcnJlY3RseSBoYW5kbGVzIG51bGwgYXJndW1lbnQgdmFsdWVzLgorCistIElzc3VlICMxMDAxNywgaXNzdWUgIzE0OTk4OiBGaXggVHlwZUVycm9yIHVzaW5nIHBwcmludCBvbiBkaWN0aW9uYXJpZXMgd2l0aAorICB1c2VyLWRlZmluZWQgdHlwZXMgYXMga2V5cyBvciBvdGhlciB1bm9yZGVyYWJsZSBrZXlzLgorCistIElzc3VlICMxNTM5NzogaW5zcGVjdC5nZXRtb2R1bGVuYW1lKCkgaXMgbm93IGJhc2VkIGRpcmVjdGx5IG9uIGltcG9ydGxpYiB2aWEgYQorICBuZXcgaW1wb3J0bGliLm1hY2hpbmVyeS5hbGxfc3VmZml4ZXMoKSBBUEkuCisKKy0gSXNzdWUgIzE0NjM1OiB0ZWxuZXRsaWIgd2lsbCB1c2UgcG9sbCgpIHJhdGhlciB0aGFuIHNlbGVjdCgpIHdoZW4gcG9zc2libGUgdG8KKyAgYXZvaWQgZmFpbGluZyBkdWUgdG8gdGhlIHNlbGVjdCgpIGZpbGUgZGVzY3JpcHRvciBsaW1pdC4KKworLSBJc3N1ZSAjMTUxODA6IENsYXJpZnkgcG9zaXhwYXRoLmpvaW4oKSBlcnJvciBtZXNzYWdlIHdoZW4gbWl4aW5nIHN0ciAmIGJ5dGVzLgorCistIElzc3VlICMxNTM0MzogcGtndXRpbCBub3cgaW5jbHVkZXMgYW4gaXRlcl9pbXBvcnRlcl9tb2R1bGVzIGltcGxlbWVudGF0aW9uIGZvcgorICBpbXBvcnRsaWIubWFjaGluZXJ5LkZpbGVGaW5kZXIgKHNpbWlsYXIgdG8gdGhlIHdheSBpdCBhbHJlYWR5IGhhbmRsZWQKKyAgemlwaW1wb3J0LnppcGltcG9ydGVyKS4KKworLSBJc3N1ZSAjMTUzMTQ6IHJ1bnB5IG5vdyBzZXRzIF9fbWFpbl9fLl9fbG9hZGVyX18gY29ycmVjdGx5LgorCistIElzc3VlICMxNTM1NzogVGhlIGltcG9ydCBlbXVsYXRpb24gaW4gcGtndXRpbCBpcyBub3cgZGVwcmVjYXRlZC4gcGtndXRpbCB1c2VzCisgIGltcG9ydGxpYiBpbnRlcm5hbGx5IHJhdGhlciB0aGFuIHRoZSBlbXVsYXRpb24uCisKKy0gSXNzdWUgIzE1MjMzOiBQeXRob24gbm93IGd1YXJhbnRlZXMgdGhhdCBjYWxsYWJsZXMgcmVnaXN0ZXJlZCB3aXRoIHRoZSBhdGV4aXQKKyAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGluIGEgZGV0ZXJtaW5pc3RpYyBvcmRlci4KKworLSBJc3N1ZSAjMTUyMzg6IHNodXRpbC5jb3B5c3RhdCBub3cgY29waWVzIExpbnV4ICJleHRlbmRlZCBhdHRyaWJ1dGVzIi4KKworLSBJc3N1ZSAjMTUyMzA6IHJ1bnB5LnJ1bl9wYXRoIG5vdyBjb3JyZWN0bHkgc2V0cyBfX3BhY2thZ2VfXyBhcyBkZXNjcmliZWQgaW4KKyAgdGhlIGRvY3VtZW50YXRpb24uCisKKy0gSXNzdWUgIzE1MzE1OiBTdXBwb3J0IFZTIDIwMTAgaW4gZGlzdHV0aWxzIGN5Z3dpbmNvbXBpbGVyLgorCistIElzc3VlICMxNTI5NDogRml4IGEgcmVncmVzc2lvbiBpbiBwa2d1dGlsLmV4dGVuZF9wYXRoKCkncyBoYW5kbGluZyBvZiBuZXN0ZWQKKyAgbmFtZXNwYWNlIHBhY2thZ2VzLgorCistIElzc3VlICMxNTA1NjogaW1wLmNhY2hlX2Zyb21fc291cmNlKCkgYW5kIHNvdXJjZV9mcm9tX2NhY2hlKCkgcmFpc2UKKyAgTm90SW1wbGVtZW50ZWRFcnJvciB3aGVuIHN5cy5pbXBsZW1lbnRhdGlvbi5jYWNoZV90YWcgaXMgc2V0IHRvIE5vbmUuCisKKy0gSXNzdWUgIzE1MjU2OiBHcmFtbWF0aWNhbCBtaXN0YWtlIGluIGV4Y2VwdGlvbiByYWlzZWQgYnkgaW1wLmZpbmRfbW9kdWxlKCkuCisKKy0gSXNzdWUgIzU5MzE6IHdzZ2lyZWYgZW52aXJvbiB2YXJpYWJsZSBTRVJWRVJfU09GVFdBUkUgd2lsbCBzcGVjaWZ5IGFuCisgIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHRlcm0gbGlrZSBDUHl0aG9uLCBKeXRob24gaW5zdGVhZCBvZiBnZW5lcmljICJQeXRob24iLgorCistIElzc3VlICMxMzI0ODogUmVtb3ZlIG9ic29sZXRlIGFyZ3VtZW50ICJtYXhfYnVmZmVyX3NpemUiIG9mIEJ1ZmZlcmVkV3JpdGVyIGFuZAorICBCdWZmZXJlZFJXUGFpciwgZnJvbSB0aGUgaW8gbW9kdWxlLgorCistIElzc3VlICMxMzI0ODogUmVtb3ZlIG9ic29sZXRlIGFyZ3VtZW50ICJ2ZXJzaW9uIiBvZiBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlci4KKworLSBJc3N1ZSAjMTQ4MTQ6IEltcGxlbWVudCBtb3JlIGNvbnNpc3RlbnQgb3JkZXJpbmcgYW5kIHNvcnRpbmcgYmVoYXZpb3VyIGZvcgorICBpcGFkZHJlc3Mgb2JqZWN0cy4KKworLSBJc3N1ZSAjMTQ4MTQ6IGlwYWRkcmVzcyBuZXR3b3JrIG9iamVjdHMgY29ycmVjdGx5IHJldHVybiBOb3RJbXBsZW1lbnRlZCB3aGVuCisgIGNvbXBhcmVkIHRvIGFyYml0cmFyeSBvYmplY3RzIGluc3RlYWQgb2YgcmFpc2luZyBUeXBlRXJyb3IuCisKKy0gSXNzdWUgIzE0OTkwOiBDb3JyZWN0bHkgZmFpbCB3aXRoIFN5bnRheEVycm9yIG9uIGludmFsaWQgZW5jb2RpbmcgZGVjbGFyYXRpb24uCisKKy0gSXNzdWUgIzE0ODE0OiBpcGFkZHJlc3Mgbm93IHByb3ZpZGVzIG1vcmUgaW5mb3JtYXRpdmUgZXJyb3IgbWVzc2FnZXMgd2hlbgorICBjb25zdHJ1Y3RpbmcgaW5zdGFuY2VzIGRpcmVjdGx5IChjaGFuZ2VzIHBlcm1pdHRlZCBkdXJpbmcgYmV0YSBkdWUgdG8KKyAgcHJvdmlzaW9uYWwgQVBJIHN0YXR1cykuCisKKy0gSXNzdWUgIzE1MjQ3OiBGaWxlSU8gbm93IHJhaXNlcyBhbiBlcnJvciB3aGVuIGdpdmVuIGEgZmlsZSBkZXNjcmlwdG9yIHBvaW50aW5nCisgIHRvIGEgZGlyZWN0b3J5LgorCistIElzc3VlICMxNTI2MTogU3RvcCBvcy5zdGF0KGZkKSBjcmFzaGluZyBvbiBXaW5kb3dzIHdoZW4gZmQgbm90IG9wZW4uCisKKy0gSXNzdWUgIzE1MTY2OiBJbXBsZW1lbnQgaW1wLmdldF90YWcoKSB1c2luZyBzeXMuaW1wbGVtZW50YXRpb24uY2FjaGVfdGFnLgorCistIElzc3VlICMxNTIxMDogQ2F0Y2ggS2V5RXJyb3Igd2hlbiBpbXBvcnRsaWIuX19pbml0X18gY2FuJ3QgZmluZAorICBfZnJvemVuX2ltcG9ydGxpYiBpbiBzeXMubW9kdWxlcywgbm90IEltcG9ydEVycm9yLgorCistIElzc3VlICMxNTAzMDogaW1wb3J0bGliLmFiYy5QeVB5Y0xvYWRlciBub3cgc3VwcG9ydHMgdGhlIG5ldyBzb3VyY2Ugc2l6ZQorICBoZWFkZXIgZmllbGQgaW4gLnB5YyBmaWxlcy4KKworLSBJc3N1ZSAjNTM0NjogUHJlc2VydmUgcGVybWlzc2lvbnMgb2YgbWJveCwgTU1ERiBhbmQgQmFieWwgbWFpbGJveCBmaWxlcyBvbgorICBmbHVzaCgpLgorCistIElzc3VlICMxMDU3MTogRml4IHRoZSAiLS1zaWduIiBvcHRpb24gb2YgZGlzdHV0aWxzJyB1cGxvYWQgY29tbWFuZC4gIFBhdGNoIGJ5CisgIEpha3ViIFdpbGsuCisKKy0gSXNzdWUgIzk1NTk6IElmIG1lc3NhZ2VzIHdlcmUgb25seSBhZGRlZCwgYSBuZXcgZmlsZSBpcyBubyBsb25nZXIgY3JlYXRlZCBhbmQKKyAgcmVuYW1lZCBvdmVyIHRoZSBvbGQgZmlsZSB3aGVuIGZsdXNoKCkgaXMgY2FsbGVkIG9uIGFuIG1ib3gsIE1NREYgb3IgQmFieWwKKyAgbWFpbGJveC4KKworLSBJc3N1ZSAxMDkyNDogRml4ZWQgY3J5cHQubWtzYWx0KCkgdG8gdXNlIGEgUk5HIHRoYXQgaXMgc3VpdGFibGUgZm9yCisgIGNyeXB0b2dyYXBoaWMgcHVycG9zZS4KKworLSBJc3N1ZSAjMTUxODQ6IEVuc3VyZSBjb25zaXN0ZW50IHJlc3VsdHMgb2YgT1MgWCBjb25maWd1cmF0aW9uIHRhaWxvcmluZyBmb3IKKyAgdW5pdmVyc2FsIGJ1aWxkcyBieSBmYWN0b3Jpbmcgb3V0IGNvbW1vbiBPUyBYLXNwZWNpZmljIGN1c3RvbWl6YXRpb25zIGZyb20KKyAgc3lzY29uZmlnLCBkaXN0dXRpbHMuc3lzY29uZmlnLCBkaXN0dXRpbHMudXRpbCwgYW5kIGRpc3R1dGlscy51bml4Y2NvbXBpbGVyCisgIGludG8gYSBuZXcgbW9kdWxlIF9vc3hfc3VwcG9ydC4KKworQyBBUEkKKy0tLS0tCisKKy0gSXNzdWUgIzE1NjEwOiBQeUltcG9ydF9JbXBvcnRNb2R1bGVFeCgpIG5vdyB1c2VzIGEgJ2xldmVsJyBvZiAwIGluc3RlYWQgb2YgLTEuCisKKy0gSXNzdWVzICMxNTE2OSwgIzE0NTk5OiBTdHJpcCBvdXQgdGhlIEMgaW1wbGVtZW50YXRpb24gb2YKKyAgaW1wLnNvdXJjZV9mcm9tX2NhY2hlKCkgdXNlZCBieSBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZVdpdGhQYXRobmFtZXMoKSBhbmQKKyAgdXNlZCB0aGUgUHl0aG9uIGNvZGUgaW5zdGVhZC4gTGVhZHMgdG8gUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGVPYmplY3QoKSB0byBub3QKKyAgdHJ5IHRvIGluZmVyIHRoZSBzb3VyY2UgcGF0aCBmcm9tIHRoZSBieXRlY29kZSBwYXRoIGFzCisgIFB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlV2l0aFBhdGhuYW1lcygpIGRvZXMuCisKK0V4dGVuc2lvbiBNb2R1bGVzCistLS0tLS0tLS0tLS0tLS0tLQorCistIElzc3VlICMxNTY3NjogTm93ICJtbWFwIiBjaGVjayBmb3IgZW1wdHkgZmlsZXMgYmVmb3JlIGRvaW5nIHRoZQorICBvZmZzZXQgY2hlY2suICBQYXRjaCBieSBTdGV2ZW4gV2lsbGlzLgorCistIElzc3VlICM2NDkzOiBBbiBpc3N1ZSBpbiBjdHlwZXMgb24gV2luZG93cyB0aGF0IGNhdXNlZCBzdHJ1Y3R1cmUgYml0ZmllbGRzCisgIG9mIHR5cGUgY3R5cGVzLmNfdWludDMyIGFuZCB3aWR0aCAzMiB0byBpbmNvcnJlY3RseSBiZSBzZXQgaGFzIGJlZW4gZml4ZWQuCisKKy0gSXNzdWUgIzE1MTk0OiBVcGRhdGUgbGliZmZpIHRvIHRoZSAzLjAuMTEgcmVsZWFzZS4KKworVG9vbHMvRGVtb3MKKy0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzE1NDU4OiBweXRob24tY29uZmlnIGdldHMgYSBuZXcgb3B0aW9uIC0tY29uZmlnZGlyIHRvIHByaW50IHRoZSAkTElCUEwKKyAgdmFsdWUuCisKKy0gTW92ZSBpbXBvcnRsaWIudGVzdC5iZW5jaG1hcmsgdG8gVG9vbHMvaW1wb3J0YmVuY2guCisKKy0gSXNzdWUgIzEyNjA1OiBUaGUgZ2RiIGhvb2tzIGZvciBkZWJ1Z2dpbmcgQ1B5dGhvbiAod2l0aGluIFRvb2xzL2dkYikgaGF2ZSBiZWVuCisgIGVuaGFuY2VkIHRvIHNob3cgaW5mb3JtYXRpb24gb24gbW9yZSBDIGZyYW1lcyByZWxldmFudCB0byBDUHl0aG9uIHdpdGhpbiB0aGUKKyAgInB5LWJ0IiBhbmQgInB5LWJ0LWZ1bGwiIGNvbW1hbmRzOgorCisgICogQyBmcmFtZXMgdGhhdCBhcmUgd2FpdGluZyBvbiB0aGUgR0lMCisgICogQyBmcmFtZXMgdGhhdCBhcmUgZ2FyYmFnZS1jb2xsZWN0aW5nCisgICogQyBmcmFtZXMgdGhhdCBhcmUgZHVlIHRvIHRoZSBpbnZvY2F0aW9uIG9mIGEgUHlDRnVuY3Rpb24KKworRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLQorCistIElzc3VlICMxNTQ0NDogVXNlIHByb3BlciBzcGVsbGluZyBmb3Igbm9uLUFTQ0lJIGNvbnRyaWJ1dG9yIG5hbWVzLiAgUGF0Y2gKKyAgYnkgU2VyaGl5IFN0b3JjaGFrYS4KKworLSBJc3N1ZSAjMTUyOTU6IFJlb3JnYW5pemUgYW5kIHJld3JpdGUgdGhlIGRvY3VtZW50YXRpb24gb24gdGhlIGltcG9ydCBzeXN0ZW0uCisKKy0gSXNzdWUgIzE1MjMwOiBDbGVhcmx5IGRvY3VtZW50IHNvbWUgb2YgdGhlIGxpbWl0YXRpb25zIG9mIHRoZSBydW5weSBtb2R1bGUgYW5kCisgIG51ZGdlIHJlYWRlcnMgdG93YXJkcyBpbXBvcnRsaWIgd2hlbiBhcHByb3ByaWF0ZS4KKworLSBJc3N1ZSAjMTUwNTM6IENvcHkgUHl0aG9uIDMuMyBpbXBvcnQgbG9jayBjaGFuZ2Ugbm90aWNlIHRvIGFsbCByZWxldmFudAorICBmdW5jdGlvbnMgaW4gaW1wIGluc3RlYWQgb2YganVzdCBhdCB0aGUgdG9wIG9mIHRoZSByZWxldmFudCBzZWN0aW9uLgorCistIElzc3VlICMxNTI4ODogTGluayB0byB0aGUgdGVybSAibG9hZGVyIiBpbiBub3RlcyBpbiBwa2d1dGlsIGFib3V0IGhvdyB0aGluZ3MKKyAgd29uJ3Qgd29yayBhcyBleHBlY3RlZCBpbiBQeXRob24gMy4zIGFuZCBtYXJrIHRoZSByZXF1aXNpdGUgZnVuY3Rpb25zIGFzCisgICJjaGFuZ2VkIiBzaW5jZSB0aGV5IHdpbGwgbm8gbG9uZ2VyIHdvcmsgd2l0aCBtb2R1bGVzIGRpcmVjdGx5IGltcG9ydGVkIGJ5CisgIGltcG9ydCBpdHNlbGYuCisKKy0gSXNzdWUgIzEzNTU3OiBDbGFyaWZ5IGVmZmVjdCBvZiBnaXZpbmcgdHdvIGRpZmZlcmVudCBuYW1lc3BhY2VzIHRvIGV4ZWMgb3IKKyAgZXhlY2ZpbGUoKS4KKworLSBJc3N1ZSAjMTUyNTA6IERvY3VtZW50IHRoYXQgZmlsZWNtcC5kaXJjbXAgY29tcGFyZXMgZmlsZXMgc2hhbGxvd2x5LiBQYXRjaAorICBjb250cmlidXRlZCBieSBDaHJpcyBKZXJkb25lay4KKworVGVzdHMKKy0tLS0tCisKKy0gSXNzdWUgIzE1NDY3OiBNb3ZlIGhlbHBlcnMgZm9yIF9fc2l6ZW9mX18gdGVzdHMgaW50byB0ZXN0X3N1cHBvcnQuICBQYXRjaCBieQorICBTZXJoaXkgU3RvcmNoYWthLgorCistIElzc3VlICMxNTMyMDogTWFrZSBpdGVyYXRpbmcgdGhlIGxpc3Qgb2YgdGVzdHMgdGhyZWFkLXNhZmUgd2hlbiBydW5uaW5nIHRlc3RzCisgIGluIG11bHRpcHJvY2VzcyBtb2RlLiBQYXRjaCBieSBDaHJpcyBKZXJkb25lay4KKworLSBJc3N1ZSAjMTUxNjg6IE1vdmUgaW1wb3J0bGliLnRlc3QgdG8gdGVzdC50ZXN0X2ltcG9ydGxpYi4KKworLSBJc3N1ZSAjMTUwOTE6IFJlYWN0aXZhdGUgYSB0ZXN0IG9uIFVOSVggd2hpY2ggd2FzIGZhaWxpbmcgdGhhbmtzIHRvIGEKKyAgZm9yZ290dGVuIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpIGNhbGwuCisKKy0gSXNzdWUgIzE1MjMwOiBBZG9wdGVkIGEgbW9yZSBzeXN0ZW1hdGljIGFwcHJvYWNoIGluIHRoZSBydW5weSB0ZXN0cy4KKworLSBJc3N1ZSAjMTUzMDA6IEVuc3VyZSB0aGUgdGVtcG9yYXJ5IHRlc3Qgd29ya2luZyBkaXJlY3RvcmllcyBhcmUgaW4gdGhlIHNhbWUKKyAgcGFyZW50IGZvbGRlciB3aGVuIHJ1bm5pbmcgdGVzdHMgaW4gbXVsdGlwcm9jZXNzIG1vZGUgZnJvbSBhIFB5dGhvbiBidWlsZC4KKyAgUGF0Y2ggYnkgQ2hyaXMgSmVyZG9uZWsuCisKKy0gSXNzdWUgIzE1Mjg0OiBTa2lwIHtzZW5kLHJlY3Z9bXNnIHRlc3RzIGluIHRlc3Rfc29ja2V0IHdoZW4gSVB2NiBpcyBub3QKKyAgZW5hYmxlZC4gUGF0Y2ggYnkgQnJpYW4gQnJhemlsLgorCistIElzc3VlICMxNTI3NzogRml4IGEgcmVzb3VyY2UgbGVhayBpbiBzdXBwb3J0LnB5IHdoZW4gSVB2NiBpcyBkaXNhYmxlZC4gIFBhdGNoCisgIGJ5IEJyaWFuIEJyYXppbC4KKworQnVpbGQKKy0tLS0tCisKKy0gSXNzdWUgIzExNzE1OiBGaXggbXVsdGlhcmNoIGRldGVjdGlvbiB3aXRob3V0IGhhdmluZyBEZWJpYW4gZGV2ZWxvcG1lbnQgdG9vbHMKKyAgKGRwa2ctZGV2KSBpbnN0YWxsZWQuCisKKy0gSXNzdWUgIzE1MDM3OiBCdWlsZCBPUyBYIGluc3RhbGxlcnMgd2l0aCBsb2NhbCBjb3B5IG9mIG5jdXJzZXMgNS45IGxpYnJhcmllcworICB0byBhdm9pZCBjdXJzZXMudW5nZXRfd2NoIGJ1ZyBwcmVzZW50IGluIG9sZGVyIHZlcnNpb25zIG9mIG5jdXJzZXMgc3VjaCBhcworICB0aG9zZSBzaGlwcGVkIHdpdGggT1MgWC4KKworLSBJc3N1ZSAjMTU1NjA6IEZpeCBidWlsZGluZyBfc3FsaXRlMyBleHRlbnNpb24gb24gT1MgWCB3aXRoIGFuIFNESy4gIEFsc28sIGZvcgorICBPUyBYIGluc3RhbGxlcnMsIGVuc3VyZSBjb25zaXN0ZW50IHNxbGl0ZTMgYmVoYXZpb3IgYW5kIGZlYXR1cmUgYXZhaWxhYmlsaXR5CisgIGJ5IGJ1aWxkaW5nIGEgbG9jYWwgY29weSBvZiBsaWJzcWxpdGUzIHJhdGhlciB0aGFuIGRlcGVuZGluZyBvbiB0aGUgd2lkZSByYW5nZQorICBvZiB2ZXJzaW9ucyBzdXBwbGllZCB3aXRoIHZhcmlvdXMgT1MgWCByZWxlYXNlcy4KKworLSBJc3N1ZSAjODg0NzogRGlzYWJsZSBDT01EQVQgZm9sZGluZyBpbiBXaW5kb3dzIFBHTyBidWlsZHMuCisKKy0gSXNzdWUgIzE0MDE4OiBGaXggT1MgWCBUY2wvVGsgZnJhbWV3b3JrIGNoZWNraW5nIHdoZW4gdXNpbmcgT1MgWCBTREtzLgorCistIElzc3VlICMxNTQzMTogQWRkIF9mcmVlemVfaW1wb3J0bGliIHByb2plY3QgdG8gcmVnZW5lcmF0ZSBpbXBvcnRsaWIuaCBvbgorICBXaW5kb3dzLiBQYXRjaCBieSBLcmlzdGrDoW4gVmFsdXIgSsOzbnNzb24uCisKKy0gSXNzdWUgIzE0MTk3OiBGb3IgT1MgWCBmcmFtZXdvcmsgYnVpbGRzLCBlbnN1cmUgbGlua3MgdG8gdGhlIHNoYXJlZCBsaWJyYXJ5CisgIGFyZSBjcmVhdGVkIHdpdGggdGhlIHByb3BlciBBQkkgc3VmZml4LgorCistIElzc3VlICMxNDMzMDogRm9yIGNyb3NzIGJ1aWxkcywgZG9uJ3QgdXNlIGhvc3QgcHl0aG9uLCB1c2UgaG9zdCBzZWFyY2ggcGF0aHMKKyAgZm9yIGhvc3QgY29tcGlsZXIuCisKKy0gSXNzdWUgIzE1MjM1OiBBbGxvdyBCZXJrbGV5IERCIHZlcnNpb25zIHVwIHRvIDUuMyB0byBidWlsZCB0aGUgZGJtIG1vZHVsZS4KKworLSBJc3N1ZSAjMTUyNjg6IFNlYXJjaCBjdXJzZXMuaCBpbiAvdXNyL2luY2x1ZGUvbmN1cnNlc3cuCisKKworV2hhdCdzIE5ldyBpbiBQeXRob24gMy4zLjAgQmV0YSAxPworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqUmVsZWFzZSBkYXRlOiAyNy1KdW4tMjAxMioKKworQ29yZSBhbmQgQnVpbHRpbnMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKy0gRml4IGEgKG1vc3QgbGlrZWx5KSB2ZXJ5IHJhcmUgbWVtb3J5IGxlYWsgd2hlbiBjYWxsaW5nIG1haW4oKSBhbmQgbm90IGJlaW5nCisgIGFibGUgdG8gZGVjb2RlIGEgY29tbWFuZC1saW5lIGFyZ3VtZW50LgorCistIElzc3VlICMxNDgxNTogVXNlIFB5X3NzaXplX3QgaW5zdGVhZCBvZiBsb25nIGZvciB0aGUgb2JqZWN0IGhhc2gsIHRvCisgIHByZXNlcnZlIGFsbCA2NCBiaXRzIG9mIGhhc2ggb24gV2luNjQuCisKKy0gSXNzdWUgIzEyMjY4OiBGaWxlIHJlYWRsaW5lLCByZWFkbGluZXMgYW5kIHJlYWQoKSBvciByZWFkYWxsKCkgbWV0aG9kcworICBubyBsb25nZXIgbG9zZSBkYXRhIHdoZW4gYW4gdW5kZXJseWluZyByZWFkIHN5c3RlbSBjYWxsIGlzIGludGVycnVwdGVkLgorICBJT0Vycm9yIGlzIG5vIGxvbmdlciByYWlzZWQgZHVlIHRvIGEgcmVhZCBzeXN0ZW0gY2FsbCByZXR1cm5pbmcgRUlOVFIKKyAgZnJvbSB3aXRoaW4gdGhlc2UgbWV0aG9kcy4KKworLSBJc3N1ZSAjMTE2MjY6IEFkZCBfU2l6ZVQgZnVuY3Rpb25zIHRvIHN0YWJsZSBBQkkuCisKKy0gSXNzdWUgIzE1MTQ2OiBBZGQgUHlUeXBlX0Zyb21TcGVjV2l0aEJhc2VzLiBQYXRjaCBieSBSb2JpbiBTY2hyZWliZXIuCisKKy0gSXNzdWUgIzE1MTQyOiBGaXggcmVmZXJlbmNlIGxlYWsgd2hlbiBkZWFsbG9jYXRpbmcgaW5zdGFuY2VzIG9mIHR5cGVzCisgIGNyZWF0ZWQgdXNpbmcgUHlUeXBlX0Zyb21TcGVjKCkuCisKKy0gSXNzdWUgIzE1MDQyOiBBZGQgUHlTdGF0ZV9BZGRNb2R1bGUgYW5kIFB5U3RhdGVfUmVtb3ZlTW9kdWxlLiBBZGQgdmVyc2lvbgorICBndWFyZCBmb3IgUHlfTElNSVRFRF9BUEkgYWRkaXRpb25zLiBQYXRjaCBieSBSb2JpbiBTY2hyZWliZXIuCisKKy0gSXNzdWUgIzEwMDUzOiBEb24ndCBjbG9zZSBGRHMgd2hlbiBGaWxlSU8uX19pbml0X18gZmFpbHMuIExvb3NlbHkgYmFzZWQgb24KKyAgdGhlIHdvcmsgYnkgSGlyb2thenUgWWFtYW1vdG8uCisKKy0gSXNzdWUgIzE1MDk2OiBSZW1vdmVkIHN1cHBvcnQgZm9yIHVyJycgYXMgdGhlIHJhdyBub3RhdGlvbiBpc24ndAorICBjb21wYXRpYmxlIHdpdGggUHl0aG9uIDIueCdzIHJhdyB1bmljb2RlIHN0cmluZ3MuCisKKy0gSXNzdWUgIzEzNzgzOiBHZW5lcmF0b3Igb2JqZWN0cyBub3cgdXNlIHRoZSBpZGVudGlmaWVyIEFQSXMgaW50ZXJuYWxseQorCistIElzc3VlICMxNDg3NDogUmVzdG9yZSBjaGFybWFwIGRlY29kaW5nIHNwZWVkIHRvIHByZS1QRVAgMzkzIGxldmVscy4KKyAgUGF0Y2ggYnkgU2VyaGl5IFN0b3JjaGFrYS4KKworLSBJc3N1ZSAjMTUwMjY6IHV0Zi0xNiBlbmNvZGluZyBpcyBub3cgc2lnbmlmaWNhbnRseSBmYXN0ZXIgKHVwIHRvIDEweCkuCisgIFBhdGNoIGJ5IFNlcmhpeSBTdG9yY2hha2EuCisKKy0gSXNzdWUgIzExMDIyOiBvcGVuKCkgYW5kIGlvLlRleHRJT1dyYXBwZXIgYXJlIG5vdyBjYWxsaW5nCisgIGxvY2FsZS5nZXRwcmVmZXJyZWRlbmNvZGluZyhGYWxzZSkgaW5zdGVhZCBvZiBsb2NhbGUuZ2V0cHJlZmVycmVkZW5jb2RpbmcoKQorICBpbiB0ZXh0IG1vZGUgaWYgdGhlIGVuY29kaW5nIGlzIG5vdCBzcGVjaWZpZWQuIERvbid0IGNoYW5nZSB0ZW1wb3JhcnkgdGhlCisgIGxvY2FsZSBlbmNvZGluZyB1c2luZyBsb2NhbGUuc2V0bG9jYWxlKCksIHVzZSB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcKKyAgaW5zdGVhZCBvZiB0aGUgdXNlciBwcmVmZXJyZWQgZW5jb2RpbmcuCisKKy0gSXNzdWUgIzE0NjczOiBBZGQgRXJpYyBTbm93J3Mgc3lzLmltcGxlbWVudGF0aW9uIGltcGxlbWVudGF0aW9uLgorCistIElzc3VlICMxNTAzODogT3B0aW1pemUgcHl0aG9uIExvY2tzIG9uIFdpbmRvd3MuCisKK0xpYnJhcnkKKy0tLS0tLS0KKworLSBJc3N1ZSAjOTgwMzogRG9uJ3QgY2xvc2UgSURMRSBvbiBzYXZpbmcgaWYgYnJlYWtwb2ludCBpcyBvcGVuLgorICBQYXRjaCBieSBSb2dlciBTZXJ3eS4KKworLSBJc3N1ZSAjMTIyODg6IENvbnNpZGVyICcwJyBhbmQgJzAuMCcgYXMgdmFsaWQgaW5pdGlhbHZhbHVlCisgIGZvciB0a2ludGVyIFNpbXBsZURpYWxvZy4KKworLSBJc3N1ZSAjMTU1MTI6IEFkZCBhIF9fc2l6ZW9mX18gaW1wbGVtZW50YXRpb24gZm9yIHBhcnNlci4KKyAgUGF0Y2ggYnkgU2VyaGl5IFN0b3JjaGFrYS4KKworLSBJc3N1ZSAjMTU0Njk6IEFkZCBhIF9fc2l6ZW9mX18gaW1wbGVtZW50YXRpb24gZm9yIGRlcXVlIG9iamVjdHMuCisgIFBhdGNoIGJ5IFNlcmhpeSBTdG9yY2hha2EuCisKKy0gSXNzdWUgIzE1NDg5OiBBZGQgYSBfX3NpemVvZl9fIGltcGxlbWVudGF0aW9uIGZvciBCeXRlc0lPIG9iamVjdHMuCisgIFBhdGNoIGJ5IFNlcmhpeSBTdG9yY2hha2EuCisKKy0gSXNzdWUgIzE1NDg3OiBBZGQgYSBfX3NpemVvZl9fIGltcGxlbWVudGF0aW9uIGZvciBidWZmZXJlZCBJL08gb2JqZWN0cy4KKyAgUGF0Y2ggYnkgU2VyaGl5IFN0b3JjaGFrYS4KKworLSBJc3N1ZSAjMTU1MTQ6IENvcnJlY3QgX19zaXplb2ZfXyBzdXBwb3J0IGZvciBjcHVfc2V0LgorICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgorCistIElzc3VlICMxNTE4NzogQnVnZml4OiByZW1vdmUgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHRlc3Rfc2h1dGlsIHdhcyBsZWF2aW5nCisgIGJlaGluZC4KKworLSBJc3N1ZSAjMTUxNzc6IEFkZGVkIGRpcl9mZCBwYXJhbWV0ZXIgdG8gb3MuZndhbGsoKS4KKworLSBJc3N1ZSAjMTUxNzY6IENsYXJpZmllZCBiZWhhdmlvciwgZG9jdW1lbnRhdGlvbiwgYW5kIGltcGxlbWVudGF0aW9uCisgIG9mIG9zLmxpc3RkaXIoKS4KKworLSBJc3N1ZSAjMTUwNjE6IFJlLWltcGxlbWVudGVkIGhtYWMuY29tcGFyZV9kaWdlc3QoKSBpbiBDIHRvIHByZXZlbnQgZnVydGhlcgorICB0aW1pbmcgYW5hbHlzaXMgYW5kIHRvIHN1cHBvcnQgYWxsIGJ1ZmZlciBwcm90b2NvbCBhd2FyZSBvYmplY3RzIGFzIHdlbGwgYXMKKyAgQVNDSUkgb25seSBzdHIgaW5zdGFuY2VzIHNhZmVseS4KKworLSBJc3N1ZSAjMTUxNjQ6IENoYW5nZSByZXR1cm4gdmFsdWUgb2YgcGxhdGZvcm0udW5hbWUoKSBmcm9tIGEKKyAgcGxhaW4gdHVwbGUgdG8gYSBjb2xsZWN0aW9ucy5uYW1lZHR1cGxlLgorCistIFN1cHBvcnQgTWFnZWlhIExpbnV4IGluIHRoZSBwbGF0Zm9ybSBtb2R1bGUuCisKKy0gSXNzdWUgIzExNjc4OiBTdXBwb3J0IEFyY2ggbGludXggaW4gdGhlIHBsYXRmb3JtIG1vZHVsZS4KKworLSBJc3N1ZSAjMTUxMTg6IENoYW5nZSByZXR1cm4gdmFsdWUgb2Ygb3MudW5hbWUoKSBhbmQgb3MudGltZXMoKSBmcm9tCisgIHBsYWluIHR1cGxlcyB0byBpbW11dGFibGUgaXRlcmFibGUgb2JqZWN0cyB3aXRoIG5hbWVkIGF0dHJpYnV0ZXMKKyAgKHN0cnVjdHNlcSBvYmplY3RzKS4KKworLSBTcGVlZCB1cCBfZGVjaW1hbCBieSBhbm90aGVyIDEwLTE1JSBieSBjYWNoaW5nIHRoZSB0aHJlYWQgbG9jYWwgY29udGV4dAorICB0aGF0IHdhcyBsYXN0IGFjY2Vzc2VkLiBJbiB0aGUgcGkgYmVuY2htYXJrICg2NC1iaXQgcGxhdGZvcm0sIHByZWM9OSksCisgIF9kZWNpbWFsIGlzIG5vdyBvbmx5IDEuNXggc2xvd2VyIHRoYW4gZmxvYXQuCisKKy0gUmVtb3ZlIHRoZSBwYWNrYWdpbmcgbW9kdWxlLCB3aGljaCBpcyBub3QgcmVhZHkgZm9yIHByaW1lIHRpbWUuCisKKy0gSXNzdWUgIzE1MTU0OiBBZGQgImRpcl9mZCIgcGFyYW1ldGVyIHRvIG9zLnJtZGlyLCByZW1vdmUgInJtZGlyIgorICBwYXJhbWV0ZXIgZnJvbSBvcy5yZW1vdmUgLyBvcy51bmxpbmsuCisKKy0gSXNzdWUgIzQ0ODk6IEFkZCBhIHNodXRpbC5ybXRyZWUgdGhhdCBpc24ndCBzdXNjZXB0aWJsZSB0byBzeW1saW5rIGF0dGFja3MuCisgIEl0IGlzIHVzZWQgYXV0b21hdGljYWxseSBvbiBwbGF0Zm9ybXMgc3VwcG9ydGluZyB0aGUgbmVjZXNzYXJ5IG9zLm9wZW5hdCgpCisgIGFuZCBvcy51bmxpbmthdCgpIGZ1bmN0aW9ucy4gTWFpbiBjb2RlIGJ5IE1hcnRpbiB2b24gTMO2d2lzLgorCistIElzc3VlICMxNTE1NjogSFRNTFBhcnNlciBub3cgdXNlcyB0aGUgbmV3ICJodG1sLmVudGl0aWVzLmh0bWw1IiBkaWN0aW9uYXJ5LgorCistIElzc3VlICMxMTExMzogYWRkIGEgbmV3ICJodG1sNSIgZGljdGlvbmFyeSBjb250YWluaW5nIHRoZSBuYW1lZCBjaGFyYWN0ZXIKKyAgcmVmZXJlbmNlcyBkZWZpbmVkIGJ5IHRoZSBIVE1MNSBzdGFuZGFyZCBhbmQgdGhlIGVxdWl2YWxlbnQgVW5pY29kZQorICBjaGFyYWN0ZXIocykgdG8gdGhlIGh0bWwuZW50aXRpZXMgbW9kdWxlLgorCistIElzc3VlICMxNTExNDogdGhlIHN0cmljdCBtb2RlIG9mIEhUTUxQYXJzZXIgYW5kIHRoZSBIVE1MUGFyc2VFcnJvciBleGNlcHRpb24KKyAgYXJlIGRlcHJlY2F0ZWQgbm93IHRoYXQgdGhlIHBhcnNlciBpcyBhYmxlIHRvIHBhcnNlIGludmFsaWQgbWFya3VwLgorCistIElzc3VlICMzNjY1OiBcdSBhbmQgXFUgZXNjYXBlcyBhcmUgbm93IHN1cHBvcnRlZCBpbiB1bmljb2RlIHJlZ3VsYXIKKyAgZXhwcmVzc2lvbnMuICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgorCistIElzc3VlICMxNTE1MzogQWRkZWQgaW5zcGVjdC5nZXRnZW5lcmF0b3Jsb2NhbHMgdG8gc2ltcGxpZnkgd2hpdGUgYm94CisgIHRlc3Rpbmcgb2YgZ2VuZXJhdG9yIHN0YXRlIHVwZGF0ZXMKKworLSBJc3N1ZSAjMTMwNjI6IEFkZGVkIGluc3BlY3QuZ2V0Y2xvc3VyZXZhcnMgdG8gc2ltcGxpZnkgdGVzdGluZyBzdGF0ZWZ1bAorICBjbG9zdXJlcworCistIElzc3VlICMxMTAyNDogRml4ZXMgYW5kIGFkZGl0aW9uYWwgdGVzdHMgZm9yIFRpbWUySW50ZXJuYWxkYXRlLgorCistIElzc3VlICMxNDYyNjogTGFyZ2UgcmVmYWN0b3Jpbmcgb2YgZnVuY3Rpb25zIC8gcGFyYW1ldGVycyBpbiB0aGUgb3MgbW9kdWxlLgorICBNYW55IGZ1bmN0aW9ucyBub3cgc3VwcG9ydCAiZGlyX2ZkIiBhbmQgImZvbGxvd19zeW1saW5rcyIgcGFyYW1ldGVyczsKKyAgc29tZSBhbHNvIHN1cHBvcnQgYWNjZXB0aW5nIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yIGluIHBsYWNlIG9mIGEgcGF0aAorICBzdHJpbmcuICBBZGRlZCBvcy5zdXBwb3J0XyogY29sbGVjdGlvbnMgYXMgTEJZTCBoZWxwZXJzLiAgUmVtb3ZlZCBtYW55CisgIGZ1bmN0aW9ucyBvbmx5IHByZXZpb3VzbHkgc2VlbiBpbiAzLjMgYWxwaGEgcmVsZWFzZXMgKG9mdGVuIHN0YXJ0aW5nIHdpdGgKKyAgImYiIG9yICJsIiwgb3IgZW5kaW5nIHdpdGggImF0IikuICBPcmlnaW5hbGx5IHN1Z2dlc3RlZCBieSBTZXJoaXkgU3RvcmNoYWthOworICBpbXBsZW1lbnRlZCBieSBMYXJyeSBIYXN0aW5ncy4KKworLSBJc3N1ZSAjMTUwMDg6IEltcGxlbWVudCBQRVAgMzYyICJTaWduYXR1cmUgT2JqZWN0cyIuCisgIFBhdGNoIGJ5IFl1cnkgU2VsaXZhbm92LgorCistIElzc3VlOiAjMTUxMzg6IGJhc2U2NC51cmxzYWZlX3tlbixkZX1jb2RlKCkgYXJlIG5vdyAzLTR4IGZhc3Rlci4KKworLSBJc3N1ZSAjNDQ0NTgyOiBBZGQgc2h1dGlsLndoaWNoLCBmb3IgZmluZGluZyBwcm9ncmFtcyBvbiB0aGUgc3lzdGVtIHBhdGguCisgIE9yaWdpbmFsIHBhdGNoIGJ5IEVyaWsgRGVtYWluZSwgd2l0aCBsYXRlciBpdGVyYXRpb25zIGJ5IEphbiBLaWxsaWFuCisgIGFuZCBCcmlhbiBDdXJ0aW4uCisKKy0gSXNzdWUgIzE0ODM3OiBTU0wgZXJyb3JzIG5vdyBoYXZlIGBgbGlicmFyeWBgIGFuZCBgYHJlYXNvbmBgIGF0dHJpYnV0ZXMKKyAgZGVzY3JpYmluZyBwcmVjaXNlbHkgd2hhdCBoYXBwZW5lZCBhbmQgaW4gd2hpY2ggT3BlblNTTCBzdWJtb2R1bGUuICBUaGUKKyAgc3RyKCkgb2YgYSBTU0xFcnJvciBpcyBhbHNvIGVuaGFuY2VkIGFjY29yZGluZ2x5LgorCistIElzc3VlICM5NTI3OiBkYXRldGltZS5hc3RpbWV6b25lKCkgbWV0aG9kIHdpbGwgbm93IHN1cHBseSBhIGNsYXNzCisgIHRpbWV6b25lIGluc3RhbmNlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHN5c3RlbSBsb2NhbCB0aW1lem9uZSB3aGVuCisgIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50cy4KKworLSBJc3N1ZSAjMTQ2NTM6IGVtYWlsLnV0aWxzLm1rdGltZV90eigpIG5vIGxvbmdlciByZWxpZXMgb24gc3lzdGVtCisgIG1rdGltZSgpIHdoZW4gdGltZXpvbmUgb2ZmZXN0IGlzIHN1cHBsaWVkLgorCistIElzc3VlICMxNDY4NDogemxpYi5jb21wcmVzc29iaigpIGFuZCB6bGliLmRlY29tcHJlc3NvYmooKSBub3cgc3VwcG9ydCB0aGUgdXNlCisgIG9mIHByZWRlZmluZWQgY29tcHJlc3Npb24gZGljdGlvbmFyaWVzLiBPcmlnaW5hbCBwYXRjaCBieSBTYW0gUnVzaGluZy4KKworLSBGaXggR3ppcEZpbGUncyBoYW5kbGluZyBvZiBmaWxlbmFtZXMgZ2l2ZW4gYXMgYnl0ZXMgb2JqZWN0cy4KKworLSBJc3N1ZSAjMTQ3NzI6IFJldHVybiBkZXN0aW5hdGlvbiB2YWx1ZXMgZnJvbSBzb21lIHNodXRpbCBmdW5jdGlvbnMuCisKKy0gSXNzdWUgIzE1MDY0OiBJbXBsZW1lbnQgY29udGV4dCBtYW5hZ2VyIHByb3RvY29sIGZvciBtdWx0aXByb2Nlc3NpbmcgdHlwZXMKKworLSBJc3N1ZSAjMTUxMDE6IE1ha2UgcG9vbCBmaW5hbGl6ZXIgYXZvaWQgam9pbmluZyBjdXJyZW50IHRocmVhZC4KKworLSBJc3N1ZSAjMTQ2NTc6IFRoZSBmcm96ZW4gaW5zdGFuY2Ugb2YgaW1wb3J0bGliIHVzZWQgZm9yIGJvb3RzdHJhcCBpcyBub3cKKyAgYWxzbyB0aGUgbW9kdWxlIGltcG9ydGVkIGFzIGltcG9ydGxpYi5fYm9vdHN0cmFwLgorCistIElzc3VlICMxNDA1NTogQWRkIF9fc2l6ZW9mX18gc3VwcG9ydCB0byBfZWxlbWVudHRyZWUuCisKKy0gSXNzdWUgIzE1MDU0OiBBIGJ1ZyBpbiB0b2tlbml6ZS50b2tlbml6ZSB0aGF0IGNhdXNlZCBzdHJpbmcgbGl0ZXJhbHMKKyAgd2l0aCAnYicgcHJlZml4ZXMgdG8gYmUgaW5jb3JyZWN0bHkgdG9rZW5pemVkIGhhcyBiZWVuIGZpeGVkLgorICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgorCistIElzc3VlICMxNTAwNjogQWxsb3cgZXF1YWxpdHkgY29tcGFyaXNvbiBiZXR3ZWVuIG5haXZlIGFuZCBhd2FyZQorICB0aW1lIG9yIGRhdGV0aW1lIG9iamVjdHMuCisKKy0gSXNzdWUgIzE0OTgyOiBEb2N1bWVudCB0aGF0IHBrZ3V0aWwncyBpdGVyYXRpb24gZnVuY3Rpb25zIHJlcXVpcmUgdGhlCisgIG5vbi1zdGFuZGFyZCBpdGVyX21vZHVsZXMoKSBtZXRob2QgdG8gYmUgZGVmaW5lZCBieSBhbiBpbXBvcnRlciAoc29tZXRoaW5nCisgIHRoZSBpbXBvcnRsaWIgaW1wb3J0ZXJzIGRvIG5vdCBkZWZpbmUpLgorCistIElzc3VlICMxNTAzNjogTWFpbGJveCBubyBsb25nZXIgdGhyb3dzIGFuIGVycm9yIGlmIGEgZmx1c2ggaXMgZG9uZQorICBiZXR3ZWVuIG9wZXJhdGlvbnMgd2hlbiByZW1vdmluZyBvciBjaGFuZ2luZyBtdWx0aXBsZSBpdGVtcyBpbiBtYm94LAorICBNTURGLCBvciBCYWJ5bCBtYWlsYm94ZXMuCisKKy0gSXNzdWUgIzE0MDU5OiBJbXBsZW1lbnQgbXVsdGlwcm9jZXNzaW5nLkJhcnJpZXIuCisKKy0gSXNzdWUgIzE1MDYxOiBUaGUgaW5hcHByb3ByaWF0ZWx5IG5hbWVkIGhtYWMuc2VjdXJlX2NvbXBhcmUgaGFzIGJlZW4KKyAgcmVuYW1lZCB0byBobWFjLmNvbXBhcmVfZGlnZXN0LCByZXN0cmljdGVkIHRvIG9wZXJhdGluZyBvbiBieXRlcyBpbnB1dHMKKyAgb25seSBhbmQgaGFkIGl0cyBkb2N1bWVudGF0aW9uIHVwZGF0ZWQgdG8gbW9yZSBhY2N1cmF0ZWx5IHJlZmxlY3QgYm90aCBpdHMKKyAgaW50ZW50IGFuZCBpdHMgbGltaXRhdGlvbnMKKworLSBJc3N1ZSAjMTM4NDE6IE1ha2UgY2hpbGQgcHJvY2Vzc2VzIGV4aXQgdXNpbmcgc3lzLmV4aXQoKSBvbiBXaW5kb3dzLgorCistIElzc3VlICMxNDkzNjogY3Vyc2VzX3BhbmVsIHdhcyBjb252ZXJ0ZWQgdG8gUEVQIDMxMjEgYW5kIFBFUCAzODQgQVBJLgorICBQYXRjaCBieSBSb2JpbiBTY2hyZWliZXIuCisKKy0gSXNzdWUgIzE2Njc1NDY6IE9uIHBsYXRmb3JtcyBzdXBwb3J0aW5nIHRtX3pvbmUgYW5kIHRtX2dtdG9mZiBmaWVsZHMKKyAgaW4gc3RydWN0IHRtLCB0aW1lLnN0cnVjdF90aW1lIG9iamVjdHMgcmV0dXJuZWQgYnkgdGltZS5nbXRpbWUoKSwKKyAgdGltZS5sb2NhbHRpbWUoKSBhbmQgdGltZS5zdHJwdGltZSgpIGZ1bmN0aW9ucyBub3cgaGF2ZSB0bV96b25lIGFuZAorICB0bV9nbXRvZmYgYXR0cmlidXRlcy4gIE9yaWdpbmFsIHBhdGNoIGJ5IFBhdWwgQm9kZGllLgorCistIFJlbmFtZSBhZGp1c3RlZCBhdHRyaWJ1dGUgdG8gYWRqdXN0YWJsZSBpbiB0aW1lLmdldF9jbG9ja19pbmZvKCkgcmVzdWx0LgorCistIElzc3VlICMzNTE4OiBSZW1vdmUgcmVmZXJlbmNlcyB0byBub24tZXhpc3RlbnQgQmFzZU1hbmFnZXIuZnJvbV9hZGRyZXNzKCkKKyAgbWV0aG9kLgorCistIElzc3VlICMxMzg1NzogQWRkZWQgdGV4dHdyYXAuaW5kZW50KCkgZnVuY3Rpb24gKGluaXRpYWwgcGF0Y2ggYnkgRXpyYQorICBCZXJjaCkKKworLSBJc3N1ZSAjMjczNjogQWRkZWQgZGF0ZXRpbWUudGltZXN0YW1wKCkgbWV0aG9kLgorCistIElzc3VlICMxMzg1NDogTWFrZSBtdWx0aXByb2Nlc3NpbmcgcHJvcGVybHkgaGFuZGxlIG5vbi1pbnRlZ2VyCisgIG5vbi1zdHJpbmcgYXJndW1lbnQgdG8gU3lzdGVtRXhpdC4KKworLSBJc3N1ZSAjMTIxNTc6IE1ha2UgcG9vbC5tYXAoKSBlbXB0eSBpdGVyYWJsZXMgY29ycmVjdGx5LiAgSW5pdGlhbAorICBwYXRjaCBieSBtb3VhZC4KKworLSBJc3N1ZSAjMTE4MjM6IGRpc2Fzc2VtYmx5IG5vdyBzaG93cyBhcmd1bWVudCBjb3VudHMgb24gY2FsbHMgd2l0aCBrZXl3b3JkIGFyZ3MuCisKKy0gSXNzdWUgIzE0NzExOiBvcy5zdGF0X2Zsb2F0X3RpbWVzKCkgaGFzIGJlZW4gZGVwcmVjYXRlZC4KKworLSBMWk1BRmlsZSBub3cgYWNjZXB0cyB0aGUgbW9kZXMgInJiIi8id2IiLyJhYiIgYXMgc3lub255bXMgb2YgInIiLyJ3Ii8iYSIuCisKKy0gVGhlIGJ6MiBhbmQgbHptYSBtb2R1bGVzIG5vdyBlYWNoIGNvbnRhaW4gYW4gb3BlbigpIGZ1bmN0aW9uLCBhbGxvd2luZworICBjb21wcmVzc2VkIGZpbGVzIHRvIHJlYWRpbHkgYmUgb3BlbmVkIGluIHRleHQgbW9kZSBhcyB3ZWxsIGFzIGJpbmFyeSBtb2RlLgorCistIEJaMkZpbGUuX19pbml0X18oKSBhbmQgTFpNQUZpbGUuX19pbml0X18oKSBub3cgYWNjZXB0IGEgZmlsZSBvYmplY3QgYXMgdGhlaXIKKyAgZmlyc3QgYXJndW1lbnQsIHJhdGhlciB0aGFuIHJlcXVpcmluZyBhIHNlcGFyYXRlICJmaWxlb2JqIiBhcmd1bWVudC4KKworLSBnemlwLm9wZW4oKSBub3cgYWNjZXB0cyBmaWxlIG9iamVjdHMgYXMgd2VsbCBhcyBmaWxlbmFtZXMuCisKKy0gSXNzdWUgIzE0OTkyOiBvcy5tYWtlZGlycyhwYXRoLCBleGlzdF9vaz1UcnVlKSB3b3VsZCByYWlzZSBhbiBPU0Vycm9yCisgIHdoZW4gdGhlIHBhdGggZXhpc3RlZCBhbmQgaGFkIHRoZSBTX0lTR0lEIG1vZGUgYml0IHNldCB3aGVuIGl0IHdhcworICBub3QgZXhwbGljaXRseSBhc2tlZCBmb3IuICBUaGlzIGlzIG5vIGxvbmdlciBhbiBleGNlcHRpb24gYXMgbWtkaXIKKyAgY2Fubm90IGNvbnRyb2wgaWYgdGhlIE9TIHNldHMgdGhhdCBiaXQgZm9yIGl0IG9yIG5vdC4KKworLSBJc3N1ZSAjMTQ5ODk6IE1ha2UgdGhlIENHSSBlbmFibGUgb3B0aW9uIHRvIGh0dHAuc2VydmVyIGF2YWlsYWJsZSB2aWEgY29tbWFuZAorICBsaW5lLgorCistIElzc3VlICMxNDk4NzogQWRkIGEgbWlzc2luZyBpbXBvcnQgc3RhdGVtZW50IHRvIGluc3BlY3QuCisKKy0gSXNzdWUgIzEwNzk6IGVtYWlsLmhlYWRlci5kZWNvZGVfaGVhZGVyIG5vdyBjb3JyZWN0bHkgcGFyc2VzIGFsbCB0aGUgZXhhbXBsZXMKKyAgaW4gUkZDMjA0Ny4gIFRoZXJlIGlzIGEgbmVjZXNzYXJ5IHZpc2libGUgYmVoYXZpb3IgY2hhbmdlOiB0aGUgbGVhZGluZyBhbmQvb3IKKyAgdHJhaWxpbmcgd2hpdGVzcGFjZSBvbiBBU0NJSSBwYXJ0cyBpcyBub3cgcHJlc2VydmVkLgorCistIElzc3VlICMxNDk2OTogQmV0dGVyIGhhbmRsaW5nIG9mIGV4Y2VwdGlvbiBjaGFpbmluZyBpbiBjb250ZXh0bGliLkV4aXRTdGFjaworCistIElzc3VlICMxNDk2MjogVXBkYXRlIHRleHQgY29sb3JpbmcgaW4gSURMRSBzaGVsbCB3aW5kb3cgYWZ0ZXIgY2hhbmdpbmcKKyAgb3B0aW9ucy4gIFBhdGNoIGJ5IFJvZ2VyIFNlcnd5LgorCistIElzc3VlICMxNDk2MzogQ29udmVydCBjb250ZXh0bGliLkV4aXRTdGFjay5fX2V4aXRfXyB0byB1c2UgYW4gaXRlcmF0aXZlCisgIGFsZ29yaXRobSAoUGF0Y2ggYnkgQWxvbiBIb3JldikKKworLSBJc3N1ZSAjMTQ3ODU6IEFkZCBzeXMuX2RlYnVnbWFsbG9jc3RhdHMoKSB0byBoZWxwIGRlYnVnIGxvdy1sZXZlbCBtZW1vcnkKKyAgYWxsb2NhdGlvbiBpc3N1ZXMKKworLSBJc3N1ZSAjMTQ0NDM6IEVuc3VyZSB0aGF0IC5weSBmaWxlcyBhcmUgYnl0ZS1jb21waWxlZCB3aXRoIHRoZSBjb3JyZWN0IFB5dGhvbgorICBleGVjdXRhYmxlIHdpdGhpbiBiZGlzdF9ycG0gZXZlbiBvbiBvbGRlciB2ZXJzaW9ucyBvZiBSUE0KKworQy1BUEkKKy0tLS0tCisKKy0gSXNzdWUgIzEzNzgzOiBJbmFkdmVydGVudCBhZGRpdGlvbnMgdG8gdGhlIHB1YmxpYyBDIEFQSSBpbiB0aGUgUEVQIDM4MAorICBpbXBsZW1lbnRhdGlvbiBoYXZlIGVpdGhlciBiZWVuIHJlbW92ZWQgb3IgbWFya2VkIGFzIHByaXZhdGUgaW50ZXJmYWNlcy4KKworRXh0ZW5zaW9uIE1vZHVsZXMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzE1MDAwOiBTdXBwb3J0IHRoZSAidW5pcXVlIiB4MzIgYXJjaGl0ZWN0dXJlIGluIF9wb3NpeHN1YnByb2Nlc3MuYy4KKworRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLQorCistIElzc3VlICMxNTA4MTogRG9jdW1lbnQgUHlTdGF0ZV9GaW5kTW9kdWxlLgorICBQYXRjaCBieSBSb2JpbiBTY2hyZWliZXIuCisKKy0gSXNzdWUgIzE0ODE0OiBBZGRlZCBmaXJzdCBkcmFmdCBvZiBpcGFkZHJlc3MgbW9kdWxlIEFQSSByZWZlcmVuY2UKKworVGVzdHMKKy0tLS0tCisKKy0gSXNzdWUgIzE0NzY5OiB0ZXN0X2NhcGkgbm93IGhhcyBTa2lwaXRlbVRlc3QsIHdoaWNoIGNsZXZlcmx5IGNoZWNrcworICBmb3IgInBhcml0eSIgYmV0d2VlbiBQeUFyZ19QYXJzZVR1cGxlKCkgYW5kIHRoZSBQeXRob24vZ2V0YXJncy5jIHN0YXRpYworICBmdW5jdGlvbiBza2lwaXRlbSgpIGZvciBhbGwgcG9zc2libGUgImZvcm1hdCB1bml0cyIuCisKKy0gdGVzdF9ubnRwbGliIG5vdyB0b2xlcmF0ZXMgYmVpbmcgcnVuIGZyb20gYmVoaW5kIE5OVFAgZ2F0ZXdheXMgdGhhdCBhZGQKKyAgIlgtQW50aXZpcnVzIiBoZWFkZXJzIHRvIGFydGljbGVzCisKKy0gSXNzdWUgIzE1MDQzOiB0ZXN0X2dkYiBpcyBub3cgc2tpcHBlZCBlbnRpcmVseSBpZiBnZGIgc2VjdXJpdHkgc2V0dGluZ3MKKyAgYmxvY2sgbG9hZGluZyBvZiB0aGUgZ2RiIGhvb2tzCisKKy0gSXNzdWUgIzE0OTYzOiBBZGQgdGVzdCBjYXNlcyBmb3IgZXhjZXB0aW9uIGhhbmRsaW5nIGJlaGF2aW91cgorICBpbiBjb250ZXh0bGliLkV4aXRTdGFjayAoSW5pdGlhbCBwYXRjaCBieSBBbG9uIEhvcmV2KQorCitCdWlsZAorLS0tLS0KKworLSBJc3N1ZSAjMTM1OTA6IEltcHJvdmUgc3VwcG9ydCBmb3IgT1MgWCBYY29kZSA0OgorICAgICogVHJ5IHRvIGF2b2lkIGJ1aWxkaW5nIFB5dGhvbiBvciBleHRlbnNpb24gbW9kdWxlcyB3aXRoIHByb2JsZW1hdGljCisgICAgICBsbHZtLWdjYyBjb21waWxlci4KKyAgICAqIFNpbmNlIFhjb2RlIDQgcmVtb3ZlcyBwcGMgc3VwcG9ydCwgZXh0ZW5zaW9uIG1vZHVsZSBidWlsZHMgbm93CisgICAgICBjaGVjayBmb3IgcHBjIGNvbXBpbGVyIHN1cHBvcnQgYW5kIGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHBwYyBhbmQKKyAgICAgIHBwYzY0IGFyY2hzIHdoZW4gbm90IGF2YWlsYWJsZS4KKyAgICAqIFNpbmNlIFhjb2RlIDQgbm8gbG9uZ2VyIGluc3RhbGwgU0RLcyBpbiBkZWZhdWx0IGxvY2F0aW9ucywKKyAgICAgIGV4dGVuc2lvbiBtb2R1bGUgYnVpbGRzIG5vdyByZXZlcnQgdG8gdXNpbmcgaW5zdGFsbGVkIGhlYWRlcnMKKyAgICAgIGFuZCBsaWJzIGlmIHRoZSBTREsgdXNlZCB0byBidWlsZCB0aGUgaW50ZXJwcmV0ZXIgaXMgbm90CisgICAgICBhdmFpbGFibGUuCisgICAgKiBVcGRhdGUgLi9jb25maWd1cmUgdG8gdXNlIGJldHRlciBkZWZhdWx0cyBmb3IgdW5pdmVyc2FsIGJ1aWxkczsKKyAgICAgIGluIHBhcnRpY3VsYXIsIC0tZW5hYmxlLXVuaXZlcnNhbHNkaz15ZXMgdXNlcyB0aGUgWGNvZGUgZGVmYXVsdAorICAgICAgU0RLIGFuZCAtLXdpdGgtdW5pdmVyc2FsLWFyY2hzIG5vdyBkZWZhdWx0cyB0byAiaW50ZWwiIGlmIHBwYworICAgICAgbm90IGF2YWlsYWJsZS4KKworLSBJc3N1ZSAjMTQyMjU6IEZpeCBVbmljb2RlIHN1cHBvcnQgZm9yIGN1cnNlcyAoIzEyNTY3KSBvbiBPUyBYCisKKy0gSXNzdWUgIzE0OTI4OiBGaXggaW1wb3J0bGliIGJvb3RzdHJhcCBpc3N1ZXMgYnkgdXNpbmcgYSBjdXN0b20gZXhlY3V0YWJsZQorICAoTW9kdWxlcy9fZnJlZXplX2ltcG9ydGxpYikgdG8gYnVpbGQgUHl0aG9uL2ltcG9ydGxpYi5oLgorCisKK1doYXQncyBOZXcgaW4gUHl0aG9uIDMuMy4wIEFscGhhIDQ/Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqUmVsZWFzZSBkYXRlOiAzMS1NYXktMjAxMioKKworQ29yZSBhbmQgQnVpbHRpbnMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzE0ODM1OiBNYWtlIHBsaXN0bGliIG91dHB1dCBlbXB0eSBhcnJheXMgJiBkaWN0cyBsaWtlIE9TIFguCisgIFBhdGNoIGJ5IFNpZG5leSBTYW4gTWFydMOtbi4KKworLSBJc3N1ZSAjMTQ3NDQ6IFVzZSB0aGUgbmV3IF9QeVVuaWNvZGVXcml0ZXIgaW50ZXJuYWwgQVBJIHRvIHNwZWVkIHVwCisgIHN0ciVhcmdzIGFuZCBzdHIuZm9ybWF0KGFyZ3MpLgorCistIElzc3VlICMxNDkzMDogTWFrZSBtZW1vcnl2aWV3IG9iamVjdHMgd2Vha3JlZmFibGUuCisKKy0gSXNzdWUgIzE0Nzc1OiBGaXggYSBwb3RlbnRpYWwgcXVhZHJhdGljIGRpY3QgYnVpbGQtdXAgZHVlIHRvIHRoZSBnYXJiYWdlCisgIGNvbGxlY3RvciByZXBlYXRlZGx5IHRyeWluZyB0byB1bnRyYWNrIGRpY3RzLgorCistIElzc3VlICMxNDg1NzogZml4IHJlZ3Jlc3Npb24gaW4gcmVmZXJlbmNlcyB0byBQRVAgMzEzNSBpbXBsaWNpdCBfX2NsYXNzX18KKyAgY2xvc3VyZSB2YXJpYWJsZSAoUmVvcGVucyBpc3N1ZSAjMTIzNzApCisKKy0gSXNzdWUgIzE0NzEyIChQRVAgNDA1KTogVmlydHVhbCBlbnZpcm9ubWVudHMuIEltcGxlbWVudGVkIGJ5IFZpbmF5IFNhamlwLgorCistIElzc3VlICMxNDY2MCAoUEVQIDQyMCk6IE5hbWVzcGFjZSBwYWNrYWdlcy4gSW1wbGVtZW50ZWQgYnkgRXJpYyBTbWl0aC4KKworLSBJc3N1ZSAjMTQ0OTQ6IEZpeCBfX2Z1dHVyZV9fLnB5IGFuZCBpdHMgZG9jdW1lbnRhdGlvbiB0byBub3RlIHRoYXQKKyAgYWJzb2x1dGUgaW1wb3J0cyBhcmUgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaW4gMy4wIGluc3RlYWQgb2YgMi43LgorICBQYXRjaCBieSBTdmVuIE1hcm5hY2guCisKKy0gSXNzdWUgIzkyNjA6IEEgZmluZXItZ3JhaW5lZCBpbXBvcnQgbG9jay4gIE1vc3Qgb2YgdGhlIGltcG9ydCBzZXF1ZW5jZQorICBub3cgdXNlcyBwZXItbW9kdWxlIGxvY2tzIHJhdGhlciB0aGFuIHRoZSBnbG9iYWwgaW1wb3J0IGxvY2ssIGVsaW1pbmF0aW5nCisgIHdlbGwta25vd24gaXNzdWVzIHdpdGggdGhyZWFkcyBhbmQgaW1wb3J0cy4KKworLSBJc3N1ZSAjMTQ2MjQ6IFVURi0xNiBkZWNvZGluZyBpcyBub3cgM3ggdG8gNHggZmFzdGVyIG9uIHZhcmlvdXMgaW5wdXRzLgorICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgorCistIGFzZGxfc2VxIGFuZCBhc2RsX2ludF9zZXEgYXJlIG5vdyBQeV9zc2l6ZV90IHNpemVkLgorCistIElzc3VlICMxNDEzMyAoUEVQIDQxNSk6IEltcGxlbWVudCBzdXBwcmVzc2lvbiBvZiBfX2NvbnRleHRfXyBkaXNwbGF5IHdpdGggYW4KKyAgYXR0cmlidXRlIG9uIEJhc2VFeGNlcHRpb24uIFRoaXMgcmVwbGFjZXMgdGhlIG9yaWdpbmFsIG1lY2hhbmlzbSBvZiBQRVAgNDA5LgorCistIElzc3VlICMxNDQxNzogTXV0YXRpbmcgYSBkaWN0IGR1cmluZyBsb29rdXAgbm93IHJlc3RhcnRzIHRoZSBsb29rdXAgaW5zdGVhZAorICBvZiByYWlzaW5nIGEgUnVudGltZUVycm9yICh1bmRvZXMgaXNzdWUgIzE0MjA1KS4KKworLSBJc3N1ZSAjMTQ3Mzg6IFNwZWVkLXVwIFVURi04IGRlY29kaW5nIG9uIG5vbi1BU0NJSSBkYXRhLiAgUGF0Y2ggYnkgU2VyaGl5CisgIFN0b3JjaGFrYS4KKworLSBJc3N1ZSAjMTQ3MDA6IEZpeCB0d28gYnJva2VuIGFuZCB1bmRlZmluZWQtYmVoYXZpb3VyLWluZHVjaW5nIG92ZXJmbG93IGNoZWNrcworICBpbiBvbGQtc3R5bGUgc3RyaW5nIGZvcm1hdHRpbmcuCisKKy0gSXNzdWUgIzE0NzA1OiBUaGUgUHlBcmdfUGFyc2UoKSBmYW1pbHkgb2YgZnVuY3Rpb25zIG5vdyBzdXBwb3J0IHRoZSAncCcgZm9ybWF0CisgIHVuaXQsIHdoaWNoIGFjY2VwdHMgYSAiYm9vbGVhbiBwcmVkaWNhdGUiIGFyZ3VtZW50LiAgSXQgY29udmVydHMgYW55IFB5dGhvbgorICB2YWx1ZSBpbnRvIGFuIGludGVnZXItLTAgaWYgaXQgaXMgImZhbHNlIiwgYW5kIDEgb3RoZXJ3aXNlLgorCitMaWJyYXJ5CistLS0tLS0tCisKKy0gSXNzdWUgIzE0NjkwOiBVc2UgbW9ub3RvbmljIGNsb2NrIGluc3RlYWQgb2Ygc3lzdGVtIGNsb2NrIGluIHRoZSBzY2hlZCwKKyAgc3VicHJvY2VzcyBhbmQgdHJhY2UgbW9kdWxlcy4KKworLSBJc3N1ZSAjMTQ5NTg6IENoYW5nZSBJRExFIHN5c3RheCBoaWdobGlnaHRpbmcgdG8gcmVjb2duaXplIGFsbCBzdHJpbmcgYW5kCisgIGJ5dGUgbGl0ZXJhbHMgc3VwcG9ydGVkIGluIFB5dGhvbiAzLjMuCisKKy0gSXNzdWUgIzEwOTk3OiBQcmV2ZW50IGEgZHVwbGljYXRlIGVudHJ5IGluIElETEUncyAiUmVjZW50IEZpbGVzIiBtZW51LgorCistIElzc3VlICMxNDQ0MzogVGVsbCBycG1idWlsZCB0byB1c2UgdGhlIGNvcnJlY3QgdmVyc2lvbiBvZiBQeXRob24gaW4KKyAgYmRpc3RfcnBtLiBJbml0aWFsIHBhdGNoIGJ5IFJvc3MgTGFnZXJ3YWxsLgorCistIElzc3VlICMxNDkyOTogU3RvcCBJZGxlIDMueCBmcm9tIGNsb3Npbmcgb24gVW5pY29kZSBkZWNvZGUgZXJyb3JzIHdoZW4KKyAgZ3JlcHBpbmcuIFBhdGNoIGJ5IFJvZ2VyIFNlcnd5LgorCistIElzc3VlICMxMjUxNTogZW1haWwgbm93IHJlZ2lzdGVycyBhIGRlZmVjdCBpZiBpdCBnZXRzIHRvIEVPRiB3aGlsZSBwYXJzaW5nCisgIGEgTUlNRSBwYXJ0IHdpdGhvdXQgc2VlaW5nIHRoZSBjbG9zaW5nIE1JTUUgYm91bmRhcnkuCisKKy0gSXNzdWUgIzEyNTEwOiBBdHRlbXB0aW5nIHRvIGdldCBpbnZhbGlkIHRvb2x0aXAgbm8gbG9uZ2VyIGNsb3NlcyBJZGxlLgorICBPdGhlciB0b29sdGlwc3MgaGF2ZSBiZWVuIGNvcnJlY3RlZCBvciBpbXByb3ZlZCBhbmQgdGhlIG51bWJlciBvZiB0ZXN0cworICBoYXMgYmVlbiB0cmlwbGVkLiBPcmlnaW5hbCBwYXRjaCBieSBSb2dlciBTZXJ3eS4KKworLSBJc3N1ZSAjMTY3MjU2ODogZW1haWwgbm93IGFsd2F5cyBkZWNvZGVzIGJhc2U2NCBwYXlsb2FkcywgYWRkaW5nIHBhZGRpbmcgYW5kCisgIGlnbm9yaW5nIG5vbi1iYXNlNjQtYWxwaGFiZXQgY2hhcmFjdGVycyBpZiBuZWVkZWQsIGFuZCByZWdpc3RlcmluZyBkZWZlY3RzCisgIGZvciBhbnkgc3VjaCBwcm9ibGVtcy4KKworLSBJc3N1ZSAjMTQ5MjU6IGVtYWlsIG5vdyByZWdpc3RlcnMgYSBkZWZlY3Qgd2hlbiB0aGUgcGFyc2VyIGRlY2lkZXMgdGhhdCB0aGVyZQorICBpcyBhIG1pc3NpbmcgaGVhZGVyL2JvZHkgc2VwYXJhdG9yIGxpbmUuICBNYWxmb3JtZWRIZWFkZXJEZWZlY3QsIHdoaWNoIHRoZQorICBleGlzdGluZyBjb2RlIHdvdWxkIG5ldmVyIGFjdHVhbGx5IGdlbmVyYXRlLCBpcyBkZXByZWNhdGVkLgorCistIElzc3VlICMxMDM2NTogRmlsZSBvcGVuIGRpYWxvZyBub3cgd29ya3MgaW5zdGVhZCBvZiBjcmFzaGluZyBldmVuIHdoZW4KKyAgdGhlIHBhcmVudCB3aW5kb3cgaXMgY2xvc2VkIGJlZm9yZSB0aGUgZGlhbG9nLiBQYXRjaCBieSBSb2dlciBTZXJ3eS4KKworLSBJc3N1ZSAjODczOTogVXBkYXRlZCBzbXRwZCB0byBzdXBwb3J0IFJGQyA1MzIxLCBhbmQgYWRkZWQgc3VwcG9ydCBmb3IgdGhlCisgIFJGQyAxODcwIFNJWkUgZXh0ZW5zaW9uLgorCistIElzc3VlICM2NjUxOTQ6IEFkZGVkIGEgbG9jYWx0aW1lIGZ1bmN0aW9uIHRvIGVtYWlsLnV0aWxzIHRvIHByb3ZpZGUgYW4KKyAgYXdhcmUgbG9jYWwgZGF0ZXRpbWUgZm9yIHVzZSBpbiBzZXR0aW5nIERhdGUgaGVhZGVycy4KKworLSBJc3N1ZSAjMTI1ODY6IEFkZGVkIG5ldyBwcm92aXNpb25hbCBwb2xpY2llcyB0aGF0IGltcGxlbWVudCBjb252ZW5pZW50CisgIHVuaWNvZGUgc3VwcG9ydCBmb3IgZW1haWwgaGVhZGVycy4gIFNlZSBXaGF0J3MgTmV3IGZvciBkZXRhaWxzLgorCistIElzc3VlICMxNDczMTogUmVmYWN0b3JlZCBlbWFpbCBQb2xpY3kgZnJhbWV3b3JrIHRvIHN1cHBvcnQgZnVsbCBiYWNrd2FyZAorICBjb21wYXRpYmlsaXR5IHdpdGggUHl0aG9uIDMuMiBieSBkZWZhdWx0IHlldCBhbGxvdyBmb3IgdGhlIGludHJvZHVjdGlvbiBvZgorICBuZXcgZmVhdHVyZXMgdGhyb3VnaCBuZXcgcG9saWNpZXMuICBOb3RlIHRoYXQgUG9saWN5Lm11c3RfYmVfN2JpdCBpcyByZW5hbWVkCisgIHRvIGN0ZV90eXBlLgorCistIElzc3VlICMxNDg3NjogVXNlIHVzZXItc2VsZWN0ZWQgZm9udCBmb3IgaGlnaGxpZ2h0IGNvbmZpZ3VyYXRpb24uCisKKy0gSXNzdWUgIzE0OTIwOiBGaXggdGhlIGhlbHAodXJsbGliLnBhcnNlKSBmYWlsdXJlIG9uIGxvY2FsZSBDIG9uIHRlcm1pbmFscy4KKyAgSGF2ZSBhc2NpaSBjaGFyYWN0ZXJzIGluIGhlbHAuCisKKy0gSXNzdWUgIzE0NTQ4OiBNYWtlIG11bHRpcHJvY2Vzc2luZyBmaW5hbGl6ZXJzIGNoZWNrIHBpZCBiZWZvcmUKKyAgcnVubmluZyB0byBjb3BlIHdpdGggcG9zc2liaWxpdHkgb2YgZ2MgcnVubmluZyBqdXN0IGFmdGVyIGZvcmsuCisKKy0gSXNzdWUgIzE0ODYzOiBVcGRhdGUgdGhlIGRvY3VtZW50YXRpb24gb2Ygb3MuZmRvcGVuKCkgdG8gcmVmbGVjdCB0aGUKKyAgZmFjdCB0aGF0IGl0J3Mgb25seSBhIHRoaW4gd3JhcHBlciBhcm91bmQgb3BlbigpIGFueW1vcmUuCisKKy0gSXNzdWUgIzE0MDM2OiBBZGQgYW4gYWRkaXRpb25hbCBjaGVjayB0byB2YWxpZGF0ZSB0aGF0IHBvcnQgaW4gdXJscGFyc2UgZG9lcworICBub3QgZ28gaW4gaWxsZWdhbCByYW5nZSBhbmQgcmV0dXJucyBOb25lLgorCistIElzc3VlICMxNDg2MjogQWRkIG1pc3NpbmcgbmFtZXMgdG8gb3MuX19hbGxfXworCistIElzc3VlICMxNDg3NTogVXNlIGZsb2F0KCdpbmYnKSBpbnN0ZWFkIG9mIGZsb2F0KCcxZTY2NjY2JykgaW4gdGhlIGpzb24gbW9kdWxlLgorCistIElzc3VlICMxMzU4NTogQWRkZWQgY29udGV4dGxpYi5FeGl0U3RhY2sKKworLSBQRVAgMzE0NCwgSXNzdWUgIzE0ODE0OiBBZGRlZCB0aGUgaXBhZGRyZXNzIG1vZHVsZQorCistIElzc3VlICMxNDQyNjogQ29ycmVjdCB0aGUgRGF0ZSBmb3JtYXQgaW4gRXhwaXJlcyBhdHRyaWJ1dGUgb2YgU2V0LUNvb2tpZQorICBIZWFkZXIgaW4gQ29va2llLnB5LgorCistIElzc3VlICMxNDU4ODogVGhlIHR5cGVzIG1vZHVsZSBub3cgcHJvdmlkZSBuZXdfY2xhc3MoKSBhbmQgcHJlcGFyZV9jbGFzcygpCisgIGZ1bmN0aW9ucyB0byBzdXBwb3J0IFBFUCAzMTE1IGNvbXBsaWFudCBkeW5hbWljIGNsYXNzIGNyZWF0aW9uLiBQYXRjaCBieQorICBEYW5pZWwgVXJiYW4gYW5kIE5pY2sgQ29naGxhbi4KKworLSBJc3N1ZSAjMTMxNTI6IEFsbG93IHRvIHNwZWNpZnkgYSBjdXN0b20gdGFic2l6ZSBmb3IgZXhwYW5kaW5nIHRhYnMgaW4KKyAgdGV4dHdyYXAuIFBhdGNoIGJ5IEpvaG4gRmV1ZXJzdGVpbi4KKworLSBJc3N1ZSAjMTQ3MjE6IFNlbmQgdGhlIGNvcnJlY3QgJ0NvbnRlbnQtbGVuZ3RoOiAwJyBoZWFkZXIgd2hlbiB0aGUgYm9keSBpcyBhbgorICBlbXB0eSBzdHJpbmcgJycuIEluaXRpYWwgUGF0Y2ggY29udHJpYnV0ZWQgYnkgQXJ2ZSBLbnVkc2VuLgorCistIElzc3VlICMxNDA3MjogRml4IHBhcnNpbmcgb2YgJ3RlbCcgVVJJcyBpbiB1cmxwYXJzZSBieSBtYWtpbmcgdGhlIGNoZWNrIGZvcgorICBwb3J0cyBzdHJpY3Rlci4KKworLSBJc3N1ZSAjOTM3NDogR2VuZXJpYyBwYXJzaW5nIG9mIHF1ZXJ5IGFuZCBmcmFnbWVudCBwb3J0aW9ucyBvZiB1cmwgZm9yIGFueQorICBzY2hlbWUuIFN1cHBvcnRlZCBib3RoIGJ5IFJGQzM5ODYgYW5kIFJGQzIzOTYuCisKKy0gSXNzdWUgIzE0Nzk4OiBGaXggdGhlIGZ1bmN0aW9ucyBpbiBweWNsYnIgdG8gcmFpc2UgYW4gSW1wb3J0RXJyb3IKKyAgd2hlbiB0aGUgZmlyc3QgcGFydCBvZiBhIGRvdHRlZCBuYW1lIGlzIG5vdCBhIHBhY2thZ2UuIFBhdGNoIGJ5CisgIFhhdmllciBkZSBHYXllLgorCistIElzc3VlICMxMjA5ODogbXVsdGlwcm9jZXNzaW5nIG9uIFdpbmRvd3Mgbm93IHN0YXJ0cyBjaGlsZCBwcm9jZXNzZXMKKyAgdXNpbmcgdGhlIHNhbWUgc3lzLmZsYWdzIGFzIHRoZSBjdXJyZW50IHByb2Nlc3MuICBJbml0aWFsIHBhdGNoIGJ5CisgIFNlcmdleSBNZXplbnRzZXYuCisKKy0gSXNzdWUgIzEzMDMxOiBTbWFsbCBzcGVlZC11cCBmb3IgdGFyZmlsZSB3aGVuIHVuemlwcGluZyB0YXJmaWxlcy4KKyAgUGF0Y2ggYnkgSnVzdGluIFBlZWwuCisKKy0gSXNzdWUgIzE0NzgwOiB1cmxsaWIucmVxdWVzdC51cmxvcGVuKCkgbm93IGhhcyBhIGBgY2FkZWZhdWx0YGAgYXJndW1lbnQKKyAgdG8gdXNlIHRoZSBkZWZhdWx0IGNlcnRpZmljYXRlIHN0b3JlLiAgSW5pdGlhbCBwYXRjaCBieSBKYW1lcyBPYWtsZXkuCisKKy0gSXNzdWUgIzE0ODI5OiBGaXggYmlzZWN0IGFuZCByYW5nZSgpIGluZGV4aW5nIHdpdGggbGFyZ2UgaW5kaWNlcworICAoPj0gMiAqKiAzMikgdW5kZXIgNjQtYml0IFdpbmRvd3MuCisKKy0gSXNzdWUgIzE0NzMyOiBUaGUgX2NzdiBtb2R1bGUgbm93IHVzZXMgUEVQIDMxMjEgbW9kdWxlIGluaXRpYWxpemF0aW9uLgorICBQYXRjaCBieSBSb2JpbiBTY2hyZWliZXIuCisKKy0gSXNzdWUgIzE0ODA5OiBBZGQgSFRUUCBzdGF0dXMgY29kZXMgaW50cm9kdWNlZCBieSBSRkMgNjU4NSB0byBodHRwLnNlcnZlcgorICBhbmQgaHR0cC5jbGllbnQuIFBhdGNoIGJ5IEV1bmdKdW4gWWkuCisKKy0gSXNzdWUgIzE0Nzc3OiB0a2ludGVyIG1heSByZXR1cm4gdW5kZWNvZGVkIFVURi04IGJ5dGVzIGFzIGEgc3RyaW5nIHdoZW4KKyAgYWNjZXNzaW5nIHRoZSBUayBjbGlwYm9hcmQuICBNb2RpZnkgY2xpcGJvYWRfZ2V0KCkgdG8gZmlyc3QgcmVxdWVzdCB0eXBlCisgIFVURjhfU1RSSU5HIHdoZW4gbm8gc3BlY2lmaWMgdHlwZSBpcyByZXF1ZXN0ZWQgaW4gYW4gWDExIHdpbmRvd2luZworICBlbnZpcm9ubWVudCwgZmFsbGluZyBiYWNrIHRvIHRoZSBjdXJyZW50IGRlZmF1bHQgdHlwZSBTVFJJTkcgaWYgdGhhdCBmYWlscy4KKyAgT3JpZ2luYWwgcGF0Y2ggYnkgVGhvbWFzIEtsdXl2ZXIuCisKKy0gSXNzdWUgIzE0NzczOiBGaXggb3MuZndhbGsoKSBmYWlsaW5nIG9uIGRhbmdsaW5nIHN5bWxpbmtzLgorCistIElzc3VlICMxMjU0MTogQmUgbGVuaWVudCB3aXRoIHF1b3RlcyBhcm91bmQgUmVhbG0gZmllbGQgb2YgSFRUUCBCYXNpYworICBBdXRoZW50YXRpb24gaW4gdXJsbGliMi4KKworLSBJc3N1ZSAjMTQ4MDc6IG1vdmUgdW5kb2N1bWVudGVkIHRhcmZpbGUuZmlsZW1vZGUoKSB0byBzdGF0LmZpbGVtb2RlKCkgYW5kIGFkZAorICBkb2MgZW50cnkuIEFkZCB0YXJmaWxlLmZpbGVtb2RlIGFsaWFzIHdpdGggZGVwcmVjYXRpb24gd2FybmluZy4KKworLSBJc3N1ZSAjMTM4MTU6IFRhckZpbGUuZXh0cmFjdGZpbGUoKSBub3cgcmV0dXJucyBpby5CdWZmZXJlZFJlYWRlciBvYmplY3RzLgorCistIElzc3VlICMxNDUzMjogQWRkIGEgc2VjdXJlX2NvbXBhcmUoKSBoZWxwZXIgdG8gdGhlIGhtYWMgbW9kdWxlLCB0byBtaXRpZ2F0ZQorICB0aW1pbmcgYXR0YWNrcy4gUGF0Y2ggYnkgSm9uIE9iZXJoZWlkZS4KKworLSBBZGQgaW1wb3J0bGliLnV0aWwucmVzb2x2ZV9uYW1lKCkuCisKKy0gSXNzdWUgIzE0MzY2OiBTdXBwb3J0IGx6bWEgY29tcHJlc3Npb24gaW4gemlwIGZpbGVzLgorICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgorCistIElzc3VlICMxMzk1OTogSW50cm9kdWNlIGltcG9ydGxpYi5maW5kX2xvYWRlcigpIGFuZCBkb2N1bWVudAorICBpbXAuZmluZF9tb2R1bGUvbG9hZF9tb2R1bGUgYXMgZGVwcmVjYXRlZC4KKworLSBJc3N1ZSAjMTQwODI6IHNodXRpbC5jb3B5MigpIG5vdyBjb3BpZXMgZXh0ZW5kZWQgYXR0cmlidXRlcywgaWYgcG9zc2libGUuCisgIFBhdGNoIGJ5IEh5bmVrIFNjaGxhd2Fjay4KKworLSBJc3N1ZSAjMTM5NTk6IE1ha2UgaW1wb3J0bGliLmFiYy5GaWxlTG9hZGVyLmxvYWRfbW9kdWxlKCkvZ2V0X2ZpbGVuYW1lKCkgYW5kCisgIGltcG9ydGxpYi5tYWNoaW5lcnkuRXh0ZW5zaW9uRmlsZUxvYWRlci5sb2FkX21vZHVsZSgpIGhhdmUgdGhlaXIgc2luZ2xlCisgIGFyZ3VtZW50IGJlIG9wdGlvbmFsLiBBbGxvd3MgZm9yIHRoZSByZXBsYWNlbWVudCAoYW5kIHRodXMgZGVwcmVjYXRpb24pIG9mCisgIGltcC5sb2FkX3NvdXJjZSgpL2xvYWRfcGFja2FnZSgpL2xvYWRfY29tcGlsZWQoKS4KKworLSBJc3N1ZSAjMTM5NTk6IGltcC5nZXRfc3VmZml4ZXMoKSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm91ciBvZiB0aGUgbmV3CisgIGF0dHJpYnV0ZXMgb24gaW1wb3J0bGliLm1hY2hpbmVyeTogU09VUkNFX1NVRkZJWEVTLCBERUJVR19CWVRFQ09ERV9TVUZGSVhFUywKKyAgT1BUSU1JWkVEX0JZVEVDT0RFX1NVRkZJWEVTLCBCWVRFQ09ERV9TVUZGSVhFUywgYW5kIEVYVEVOU0lPTl9TVUZGSVhFUy4gVGhpcworICBsZWQgdG8gYW4gaW5kaXJlY3QgZGVwcmVjYXRpb24gb2YgaW5zcGVjdC5nZXRtb2R1bGVpbmZvKCkuCisKKy0gSXNzdWUgIzE0NjYyOiBQcmV2ZW50IHNodXRpbCBmYWlsdXJlcyBvbiBPUyBYIHdoZW4gZGVzdGluYXRpb24gZG9lcyBub3QKKyAgc3VwcG9ydCBjaGZsYWcgb3BlcmF0aW9ucy4gIFBhdGNoIGJ5IEh5bmVrIFNjaGxhd2Fjay4KKworLSBJc3N1ZSAjMTQxNTc6IEZpeCB0aW1lLnN0cnB0aW1lIGZhaWxpbmcgd2l0aG91dCBhIHllYXIgb24gRmVicnVhcnkgMjl0aC4KKyAgUGF0Y2ggYnkgSHluZWsgU2NobGF3YWNrLgorCistIElzc3VlICMxNDc1MzogTWFrZSBtdWx0aXByb2Nlc3NpbmcncyBoYW5kbGluZyBvZiBuZWdhdGl2ZSB0aW1lb3V0cworICB0aGUgc2FtZSBhcyBpdCB3YXMgaW4gUHl0aG9uIDMuMi4KKworLSBJc3N1ZSAjMTQ1ODM6IEZpeCBpbXBvcnRsaWIgYnVnIHdoZW4gYSBwYWNrYWdlJ3MgX19pbml0X18ucHkgd291bGQgZmlyc3QKKyAgaW1wb3J0IG9uZSBvZiBpdHMgbW9kdWxlcyB0aGVuIHJhaXNlIGFuIGVycm9yLgorCistIElzc3VlICMxNDc0MTogRml4IG1pc3Npbmcgc3VwcG9ydCBmb3IgRWxsaXBzaXMgKCcuLi4nKSBpbiBwYXJzZXIgbW9kdWxlLgorCistIElzc3VlICMxNDY5NzogRml4IG1pc3Npbmcgc3VwcG9ydCBmb3Igc2V0IGRpc3BsYXlzIGFuZCBzZXQgY29tcHJlaGVuc2lvbnMgaW4KKyAgcGFyc2VyIG1vZHVsZS4KKworLSBJc3N1ZSAjMTQ3MDE6IEZpeCBtaXNzaW5nIHN1cHBvcnQgZm9yICdyYWlzZSAuLi4gZnJvbScgaW4gcGFyc2VyIG1vZHVsZS4KKworLSBBZGQgc3VwcG9ydCBmb3IgdGltZW91dHMgdG8gdGhlIGFjcXVpcmUoKSBtZXRob2RzIG9mCisgIG11bHRpcHJvY2Vzc2luZydzIGxvY2svc2VtYXBob3JlL2NvbmRpdGlvbiBwcm94aWVzLgorCistIElzc3VlICMxMzk4OTogQWRkIHN1cHBvcnQgZm9yIHRleHQgbW9kZSB0byBnemlwLm9wZW4oKS4KKworLSBJc3N1ZSAjMTQxMjc6IFRoZSBvcy5zdGF0KCkgcmVzdWx0IG9iamVjdCBub3cgcHJvdmlkZXMgdGhyZWUgYWRkaXRpb25hbAorICBmaWVsZHM6IHN0X2N0aW1lX25zLCBzdF9tdGltZV9ucywgYW5kIHN0X2F0aW1lX25zLCBwcm92aWRpbmcgdGhvc2UgdGltZXMgYXMgYW4KKyAgaW50ZWdlciB3aXRoIG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gIFRoZSBmdW5jdGlvbnMgb3MudXRpbWUoKSwgb3MubHV0aW1lcygpLAorICBhbmQgb3MuZnV0aW1lcygpIG5vdyBhY2NlcHQgYSBuZXcgcGFyYW1ldGVyLCBucywgd2hpY2ggYWNjZXB0cyBtdGltZSBhbmQgYXRpbWUKKyAgYXMgaW50ZWdlcnMgd2l0aCBuYW5vc2Vjb25kIHJlc29sdXRpb24uCisKKy0gSXNzdWUgIzE0MTI3IGFuZCAjMTAxNDg6IHNodXRpbC5jb3B5c3RhdCBub3cgcHJlc2VydmVzIGV4YWN0IG10aW1lIGFuZCBhdGltZQorICBvbiBmaWxlc3lzdGVtcyBwcm92aWRpbmcgbmFub3NlY29uZCByZXNvbHV0aW9uLgorCitUb29scy9EZW1vcworLS0tLS0tLS0tLS0KKworLSBJc3N1ZSAjMTQ2OTU6IEJyaW5nIFRvb2xzL3BhcnNlci91bnBhcnNlLnB5IHN1cHBvcnQgdXAgdG8gZGF0ZSB3aXRoCisgIHRoZSBQeXRob24gMy4zIEdyYW1tYXIuCisKK0J1aWxkCistLS0tLQorCistIElzc3VlICMxNDQ3MjogVXBkYXRlIC5naXRpZ25vcmUuIFBhdGNoIGJ5IE1hdGVqIENlcGwuCisKKy0gVXBncmFkZSBXaW5kb3dzIGxpYnJhcnkgdmVyc2lvbnM6IGJ6aXAgMS4wLjYsIE9wZW5TU0wgMS4wLjFjLgorCistIElzc3VlICMxNDY5MzogVW5kZXIgbm9uLVdpbmRvd3MgcGxhdGZvcm1zLCBoYXNobGliJ3MgZmFsbGJhY2sgbW9kdWxlcyBhcmUKKyAgYWx3YXlzIGNvbXBpbGVkLCBldmVuIGlmIE9wZW5TU0wgaXMgcHJlc2VudCBhdCBidWlsZCB0aW1lLgorCistIElzc3VlICMxMzIxMDogV2luZG93cyBidWlsZCBub3cgdXNlcyBWUzIwMTAsIHBvcnRlZCBmcm9tIFZTMjAwOC4KKworRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLQorCistIElzc3VlICMxNDU4ODogVGhlIGxhbmd1YWdlIHJlZmVyZW5jZSBub3cgYWNjdXJhdGVseSBkb2N1bWVudHMgdGhlIFB5dGhvbiAzCisgIGNsYXNzIGRlZmluaXRpb24gcHJvY2Vzcy4gUGF0Y2ggYnkgTmljayBDb2dobGFuLgorCistIElzc3VlICMxNDk0MzogQ29ycmVjdCBhIGRlZmF1bHQgYXJndW1lbnQgdmFsdWUgZm9yIHdpbnJlZy5PcGVuS2V5CisgIGFuZCBjb3JyZWN0bHkgbGlzdCB0aGUgYXJndW1lbnQgbmFtZXMgaW4gdGhlIGZ1bmN0aW9uJ3MgZXhwbGFuYXRpb24uCisKKworV2hhdCdzIE5ldyBpbiBQeXRob24gMy4zLjAgQWxwaGEgMz8KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKypSZWxlYXNlIGRhdGU6IDAxLU1heS0yMDEyKgorCitDb3JlIGFuZCBCdWlsdGlucworLS0tLS0tLS0tLS0tLS0tLS0KKworLSBJc3N1ZSAjMTQ2OTk6IEZpeCBjYWxsaW5nIHRoZSBjbGFzc21ldGhvZCBkZXNjcmlwdG9yIGRpcmVjdGx5LgorCistIElzc3VlICMxNDQzMzogUHJldmVudCBtc3ZjcnQgY3Jhc2ggaW4gaW50ZXJhY3RpdmUgcHJvbXB0IHdoZW4gc3RkaW4gaXMgY2xvc2VkLgorCistIElzc3VlICMxNDUyMTogTWFrZSByZXN1bHQgb2YgZmxvYXQoJ25hbicpIGFuZCBmbG9hdCgnLW5hbicpIG1vcmUgY29uc2lzdGVudAorICBhY3Jvc3MgcGxhdGZvcm1zLgorCistIElzc3VlICMxNDY0NjogX19pbXBvcnRfXygpIHNldHMgX19sb2FkZXJfXyBpZiB0aGUgbG9hZGVyIGRpZCBub3QuCisKKy0gSXNzdWUgIzE0NjA1OiBObyBsb25nZXIgaGF2ZSBpbXBsaWNpdCBlbnRyaWVzIGluIHN5cy5tZXRhX3BhdGguIElmCisgIHN5cy5tZXRhX3BhdGggaXMgZm91bmQgdG8gYmUgZW1wdHksIHJhaXNlIEltcG9ydFdhcm5pbmcuCisKKy0gSXNzdWUgIzE0NjA1OiBObyBsb25nZXIgaGF2ZSBpbXBsaWNpdCBlbnRyaWVzIGluIHN5cy5wYXRoX2hvb2tzLiBJZgorICBzeXMucGF0aF9ob29rcyBpcyBmb3VuZCB0byBiZSBlbXB0eSwgYSB3YXJuaW5nIHdpbGwgYmUgcmFpc2VkLiBOb25lIGlzIG5vdworICBpbnNlcnRlZCBpbnRvIHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlIGlmIG5vIGZpbmRlciB3YXMgZGlzY292ZXJlZC4gVGhpcyBhbHNvCisgIG1lYW5zIGltcC5OdWxsSW1wb3J0ZXIgaXMgbm8gbG9uZ2VyIGltcGxpY2l0bHkgdXNlZC4KKworLSBJc3N1ZSAjMTM5MDM6IEltcGxlbWVudCBQRVAgNDEyLiBJbmRpdmlkdWFsIGRpY3Rpb25hcnkgaW5zdGFuY2VzIGNhbiBub3cgc2hhcmUKKyAgdGhlaXIga2V5cyB3aXRoIG90aGVyIGRpY3Rpb25hcmllcy4gQ2xhc3NlcyB0YWtlIGFkdmFudGFnZSBvZiB0aGlzIHRvIHNoYXJlCisgIHRoZWlyIGluc3RhbmNlIGRpY3Rpb25hcnkga2V5cyBmb3IgaW1wcm92ZWQgbWVtb3J5IGFuZCBwZXJmb3JtYW5jZS4KKworLSBJc3N1ZSAjMTE2MDMgKGFnYWluKTogU2V0dGluZyBfX3JlcHJfXyB0byBfX3N0cl9fIG5vdyByYWlzZXMgYSBSdW50aW1lRXJyb3IKKyAgd2hlbiByZXByKCkgb3Igc3RyKCkgaXMgY2FsbGVkIG9uIHN1Y2ggYW4gb2JqZWN0LgorCistIElzc3VlICMxNDY1ODogRml4IGJpbmRpbmcgYSBzcGVjaWFsIG1ldGhvZCB0byBhIGJ1aWx0aW4gaW1wbGVtZW50YXRpb24gb2YgYQorICBzcGVjaWFsIG1ldGhvZCB3aXRoIGEgZGlmZmVyZW50IG5hbWUuCisKKy0gSXNzdWUgIzE0NjMwOiBGaXggYSBtZW1vcnkgYWNjZXNzIGJ1ZyBmb3IgaW5zdGFuY2VzIG9mIGEgc3ViY2xhc3Mgb2YgaW50CisgIHdpdGggdmFsdWUgMC4KKworLSBJc3N1ZSAjMTQzMzk6IFNwZWVkIGltcHJvdmVtZW50cyB0byBiaW4sIG9jdCBhbmQgaGV4IGZ1bmN0aW9ucy4gIFBhdGNoIGJ5CisgIFNlcmhpeSBTdG9yY2hha2EuCisKKy0gSXNzdWUgIzE0MDk4OiBOZXcgZnVuY3Rpb25zIFB5RXJyX0dldEV4Y0luZm8gYW5kIFB5RXJyX1NldEV4Y0luZm8uCisgIFBhdGNoIGJ5IFN0ZWZhbiBCZWhuZWwuCisKKy0gSXNzdWUgIzE0Mzg1OiBJdCBpcyBub3cgcG9zc2libGUgdG8gdXNlIGEgY3VzdG9tIHR5cGUgZm9yIHRoZSBfX2J1aWx0aW5zX18KKyAgbmFtZXNwYWNlLCBpbnN0ZWFkIG9mIGEgZGljdC4gSXQgY2FuIGJlIHVzZWQgZm9yIHNhbmRib3hpbmcgZm9yIGV4YW1wbGUuCisgIFJhaXNlIGFsc28gYSBOYW1lRXJyb3IgaW5zdGVhZCBvZiBJbXBvcnRFcnJvciBpZiBfX2J1aWxkX2NsYXNzX18gbmFtZSBpZiBub3QKKyAgZm91bmQgaW4gX19idWlsdGluc19fLgorCistIElzc3VlICMxMjU5OTogQmUgbW9yZSBzdHJpY3QgaW4gYWNjZXB0aW5nIE5vbmUgY29tcGFyZWQgdG8gYSBmYWxzZS1saWtlCisgIG9iamVjdCBmb3IgaW1wb3J0bGliLnV0aWwubW9kdWxlX2Zvcl9sb2FkZXIgYW5kCisgIGltcG9ydGxpYi5tYWNoaW5lcnkuUGF0aEZpbmRlci4KKworLSBJc3N1ZSAjMTQ2MTI6IEZpeCBqdW1waW5nIGFyb3VuZCB3aXRoIGJsb2NrcyBieSBzZXR0aW5nIGZfbGluZW5vLgorCistIElzc3VlICMxNDU5MjogQXR0ZW1wdGluZyBhIHJlbGF0aXZlIGltcG9ydCB3L28gX19wYWNrYWdlX18gb3IgX19uYW1lX18gc2V0IGluCisgIGdsb2JhbHMgcmFpc2VzIGEgS2V5RXJyb3IuCisKKy0gSXNzdWUgIzE0NjA3OiBGaXgga2V5d29yZC1vbmx5IGFyZ3VtZW50cyB3aGljaCBzdGFydGVkIHdpdGggYGBfX2BgLgorCistIElzc3VlICMxMDg1NDogVGhlIEltcG9ydEVycm9yIHJhaXNlZCB3aGVuIGFuIGV4dGVuc2lvbiBtb2R1bGUgb24gV2luZG93cworICBmYWlscyB0byBpbXBvcnQgbm93IHVzZXMgdGhlIG5ldyBwYXRoIGFuZCBuYW1lIGF0dHJpYnV0ZXMgZnJvbQorICBJc3N1ZSAjMTU1OTU0OS4KKworLSBJc3N1ZSAjMTM4ODk6IENoZWNrIGFuZCAoaWYgbmVjZXNzYXJ5KSBzZXQgRlBVIGNvbnRyb2wgd29yZCBiZWZvcmUgY2FsbGluZworICBhbnkgb2YgdGhlIGR0b2EuYyBzdHJpbmcgPC0+IGZsb2F0IGNvbnZlcnNpb24gZnVuY3Rpb25zLCBvbiBNU1ZDIGJ1aWxkcyBvZgorICBQeXRob24uICBUaGlzIGZpeGVzIGlzc3VlcyB3aGVuIGVtYmVkZGluZyBQeXRob24gaW4gYSBEZWxwaGkgYXBwLgorCistIF9faW1wb3J0X18oKSBub3cgbWF0Y2hlcyBQRVAgMzI4IGFuZCBkb2N1bWVudGF0aW9uIGJ5IGRlZmF1bHRpbmcgJ2luZGV4JyB0byAwCisgIGluc3RlYWQgb2YgLTEgYW5kIHJlbW92aW5nIHN1cHBvcnQgZm9yIG5lZ2F0aXZlIHZhbHVlcy4KKworLSBJc3N1ZSAjMjM3NzogTWFrZSBpbXBvcnRsaWIgdGhlIGltcGxlbWVudGF0aW9uIG9mIF9faW1wb3J0X18oKS4KKworLSBJc3N1ZSAjMTU1OTU0OTogSW1wb3J0RXJyb3Igbm93IGhhcyAnbmFtZScgYW5kICdwYXRoJyBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNldAorICB1c2luZyBrZXl3b3JkIGFyZ3VtZW50cyB0byBpdHMgY29uc3RydWN0b3IuIFRoZXkgYXJlIGN1cnJlbnRseSBub3Qgc2V0IGJ5CisgIGltcG9ydCBhcyB0aGV5IGFyZSBtZWFudCBmb3IgdXNlIGJ5IGltcG9ydGxpYi4KKworLSBJc3N1ZSAjMTQ0NzQ6IFNhdmUgYW5kIHJlc3RvcmUgZXhjZXB0aW9uIHN0YXRlIGluIHRocmVhZC5zdGFydF9uZXdfdGhyZWFkKCkKKyAgd2hpbGUgd3JpdGluZyBlcnJvciBtZXNzYWdlIGlmIHRoZSB0aHJlYWQgbGVhdmVzIGEgdW5oYW5kbGVkIGV4Y2VwdGlvbi4KKworLSBJc3N1ZSAjMTMwMTk6IEZpeCBwb3RlbnRpYWwgcmVmZXJlbmNlIGxlYWtzIGluIGJ5dGVhcnJheS5leHRlbmQoKS4gIFBhdGNoCisgIGJ5IFN1bWFuIFNhaGEuCisKK0xpYnJhcnkKKy0tLS0tLS0KKworLSBJc3N1ZSAjMTQ3Njg6IG9zLnBhdGguZXhwYW5kdXNlcignfi9hJykgZG9lc24ndCB3b3JrcyBjb3JyZWN0bHkgd2hlbiBIT01FIGlzICcvJy4KKworLSBJc3N1ZSAjMTQzNzE6IFN1cHBvcnQgYnppcDIgaW4gemlwZmlsZSBtb2R1bGUuICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgorCistIElzc3VlICMxMzE4MzogRml4IHBkYiBza2lwcGluZyBmcmFtZXMgYWZ0ZXIgaGl0dGluZyBhIGJyZWFrcG9pbnQgYW5kIHJ1bm5pbmcKKyAgc3RlcC4gIFBhdGNoIGJ5IFhhdmllciBkZSBHYXllLgorCistIElzc3VlICMxNDY5NjogRml4IHBhcnNlciBtb2R1bGUgdG8gdW5kZXJzdGFuZCAnbm9ubG9jYWwnIGRlY2xhcmF0aW9ucy4KKworLSBJc3N1ZSAjMTA5NDE6IEZpeCBpbWFwbGliLkludGVybmFsZGF0ZTJ0dXBsZSB0byBwcm9kdWNlIGNvcnJlY3QgcmVzdWx0IG5lYXIKKyAgdGhlIERTVCB0cmFuc2l0aW9uLiAgUGF0Y2ggYnkgSm9lIFBldGVyc29uLgorCistIElzc3VlICM5MTU0OiBGaXggcGFyc2VyIG1vZHVsZSB0byB1bmRlcnN0YW5kIGZ1bmN0aW9uIGFubm90YXRpb25zLgorCistIElzc3VlICM2MDg1OiBJbiBodHRwLnNlcnZlci5weSBTaW1wbGVIVFRQU2VydmVyLmFkZHJlc3Nfc3RyaW5nIHJldHVybnMgdGhlCisgIGNsaWVudCBpcCBhZGRyZXNzIGluc3RlYWQgY2xpZW50IGhvc3RuYW1lLiBQYXRjaCBieSBDaGFybGVzLUZyYW7Dp29pcyBOYXRhbGkuCisKKy0gSXNzdWUgIzE0MzA5OiBEZXByZWNhdGUgdGltZS5jbG9jaygpLCB1c2UgdGltZS5wZXJmX2NvdW50ZXIoKSBvcgorICB0aW1lLnByb2Nlc3NfdGltZSgpIGluc3RlYWQuCisKKy0gSXNzdWUgIzE0NDI4OiBJbXBsZW1lbnQgdGhlIFBFUCA0MTguIEFkZCB0aW1lLmdldF9jbG9ja19pbmZvKCksCisgIHRpbWUucGVyZl9jb3VudGVyKCkgYW5kIHRpbWUucHJvY2Vzc190aW1lKCkgZnVuY3Rpb25zLCBhbmQgcmVuYW1lCisgIHRpbWUuc3RlYWR5KCkgdG8gdGltZS5tb25vdG9uaWMoKS4KKworLSBJc3N1ZSAjMTQ2NDY6IGltcG9ydGxpYi51dGlsLm1vZHVsZV9mb3JfbG9hZGVyKCkgbm93IHNldHMgX19sb2FkZXJfXyBhbmQKKyAgX19wYWNrYWdlX18gKHdoZW4gcG9zc2libGUpLgorCistIElzc3VlICMxNDY2NDogSXQgaXMgbm93IHBvc3NpYmxlIHRvIHVzZSBAdW5pdHRlc3Quc2tpcHtJZixVbmxlc3N9IG9uIGEKKyAgdGVzdCBjbGFzcyB0aGF0IGRvZXNuJ3QgaW5oZXJpdCBmcm9tIFRlc3RDYXNlIChpLmUuIGEgbWl4aW4pLgorCistIElzc3VlICM0ODkyOiBtdWx0aXByb2Nlc3NpbmcgQ29ubmVjdGlvbnMgY2FuIG5vdyBiZSB0cmFuc2ZlcnJlZCBvdmVyCisgIG11bHRpcHJvY2Vzc2luZyBDb25uZWN0aW9ucy4gIFBhdGNoIGJ5IFJpY2hhcmQgT3Vka2VyayAoc2J0KS4KKworLSBJc3N1ZSAjMTQxNjA6IFRhckZpbGUuZXh0cmFjdGZpbGUoKSBmYWlsZWQgdG8gcmVzb2x2ZSBzeW1ib2xpYyBsaW5rcyB3aGVuCisgIHRoZSBsaW5rcyB3ZXJlIG5vdCBsb2NhdGVkIGluIGFuIGFyY2hpdmUgc3ViZGlyZWN0b3J5LgorCistIElzc3VlICMxNDYzODogcHlkb2Mgbm93IHRyZWF0cyBub24tc3RyaW5nIF9fbmFtZV9fIHZhbHVlcyBhcyBpZiB0aGV5CisgIHdlcmUgbWlzc2luZywgaW5zdGVhZCBvZiByYWlzaW5nIGFuIGVycm9yLgorCistIElzc3VlICMxMzY4NDogRml4IGh0dHBsaWIgdHVubmVsIGlzc3VlIG9mIGluZmluaXRlIGxvb3BzIGZvciBjZXJ0YWluIHNpdGVzCisgIHdoaWNoIHNlbmQgRU9GIHdpdGhvdXQgdHJhaWxpbmcgXHJcbi4KKworLSBJc3N1ZSAjMTQ2MDU6IEFkZCBpbXBvcnRsaWIuYWJjLkZpbGVMb2FkZXIsIGltcG9ydGxpYi5tYWNoaW5lcnkuKEZpbGVGaW5kZXIsCisgIFNvdXJjZUZpbGVMb2FkZXIsIFNvdXJjZWxlc3NGaWxlTG9hZGVyLCBFeHRlbnNpb25GaWxlTG9hZGVyKS4KKworLSBJc3N1ZSAjMTM5NTk6IGltcC5jYWNoZV9mcm9tX3NvdXJjZSgpL3NvdXJjZV9mcm9tX2NhY2hlKCkgbm93IGZvbGxvdworICBvcy5wYXRoLmpvaW4oKS9zcGxpdCgpIHNlbWFudGljcyBmb3IgcGF0aCBtYW5pcHVsYXRpb24gaW5zdGVhZCBvZiBpdHMgcHJpb3IsCisgIGN1c3RvbSBzZW1hbnRpY3Mgb2YgY2FyaW5nIHRoZSByaWdodC1tb3N0IHBhdGggc2VwYXJhdG9yIGZvcndhcmQgaW4gcGF0aAorICBqb2luaW5nLgorCistIElzc3VlICMyMTkzOiBBbGxvdyAiOiIgY2hhcmFjdGVyIGluIENvb2tpZSBOQU1FIHZhbHVlcy4KKworLSBJc3N1ZSAjMTQ2Mjk6IHRva2VuaXplci5kZXRlY3RfZW5jb2Rpbmcgd2lsbCBzcGVjaWZ5IHRoZSBmaWxlbmFtZSBpbiB0aGUKKyAgU3ludGF4RXJyb3IgZXhjZXB0aW9uIGlmIGZvdW5kIGF0IHJlYWRsaW5lLl9fc2VsZl9fLm5hbWUuCisKKy0gSXNzdWUgIzE0NjI5OiBSYWlzZSBTeW50YXhFcnJvciBpbiB0b2tlbml6ZXIuZGV0ZWN0X2VuY29kaW5nIGlmIHRoZQorICBmaXJzdCB0d28gbGluZXMgaGF2ZSBub24tVVRGLTggY2hhcmFjdGVycyB3aXRob3V0IGFuIGVuY29kaW5nIGRlY2xhcmF0aW9uLgorCistIElzc3VlICMxNDMwODogRml4IGFuIGV4Y2VwdGlvbiB3aGVuIGEgImR1bW15IiB0aHJlYWQgaXMgaW4gdGhlIHRocmVhZGluZworICBtb2R1bGUncyBhY3RpdmUgbGlzdCBhZnRlciBhIGZvcmsoKS4KKworLSBJc3N1ZSAjMTE3NTA6IFRoZSBXaW5kb3dzIEFQSSBmdW5jdGlvbnMgc2NhdHRlcmVkIGluIHRoZSBfc3VicHJvY2VzcyBhbmQKKyAgX211bHRpcHJvY2Vzc2luZy53aW4zMiBtb2R1bGVzIG5vdyBsaXZlIGluIGEgc2luZ2xlIG1vZHVsZSAiX3dpbmFwaSIuCisgIFBhdGNoIGJ5IHNidC4KKworLSBJc3N1ZSAjMTQwODc6IG11bHRpcHJvY2Vzc2luZzogYWRkIENvbmRpdGlvbi53YWl0X2ZvcigpLiBQYXRjaCBieSBzYnQuCisKKy0gSXNzdWUgIzE0NTM4OiBIVE1MUGFyc2VyIGNhbiBub3cgcGFyc2UgY29ycmVjdGx5IHN0YXJ0IHRhZ3MgdGhhdCBjb250YWluCisgIGEgYmFyZSAnLycuCisKKy0gSXNzdWUgIzE0NDUyOiBTeXNMb2dIYW5kbGVyIG5vIGxvbmdlciBpbnNlcnRzIGEgVVRGLTggQk9NIGludG8gdGhlIG1lc3NhZ2UuCisKKy0gSXNzdWUgIzE0Mzg2OiBFeHBvc2UgdGhlIGRpY3RfcHJveHkgaW50ZXJuYWwgdHlwZSBhcyB0eXBlcy5NYXBwaW5nUHJveHlUeXBlLgorCistIElzc3VlICMxMzk1OTogTWFrZSBpbXAucmVsb2FkKCkgYWx3YXlzIHVzZSBhIG1vZHVsZSdzIF9fbG9hZGVyX18gdG8gcGVyZm9ybQorICB0aGUgcmVsb2FkLgorCistIElzc3VlICMxMzk1OTogQWRkIGltcC5weSBhbmQgcmVuYW1lIHRoZSBidWlsdC1pbiBtb2R1bGUgdG8gX2ltcCwgYWxsb3dpbmcgZm9yCisgIHJlLWltcGxlbWVudGluZyBwYXJ0cyBvZiB0aGUgbW9kdWxlIGluIHB1cmUgUHl0aG9uLgorCistIElzc3VlICMxMzQ5NjogRml4IHBvdGVudGlhbCBvdmVyZmxvdyBpbiBiaXNlY3QuYmlzZWN0IGFsZ29yaXRobSB3aGVuIGFwcGxpZWQKKyAgdG8gYSBjb2xsZWN0aW9uIG9mIHNpemUgPiBzeXMubWF4c2l6ZSAvIDIuCisKKy0gSGF2ZSBpbXBvcnRsaWIgdGFrZSBhZHZhbnRhZ2Ugb2YgSW1wb3J0RXJyb3IncyBuZXcgJ25hbWUnIGFuZCAncGF0aCcKKyAgYXR0cmlidXRlcy4KKworLSBJc3N1ZSAjMTQzOTk6IHppcGZpbGUgbm93IHJlY29nbml6ZXMgdGhhdCB0aGUgYXJjaGl2ZSBoYXMgYmVlbiBtb2RpZmllZCBldmVuCisgIGlmIG9ubHkgdGhlIGNvbW1lbnQgaXMgY2hhbmdlZC4gIEluIGFkZGl0aW9uLCB0aGUgVHlwZUVycm9yIHRoYXQgcmVzdWx0cyBmcm9tCisgIHRyeWluZyB0byBzZXQgYSBub24tYmluYXJ5IHZhbHVlIGFzIGEgY29tbWVudCBpcyBub3cgcmFpc2VkIGF0IHRoZSB0aW1lCisgIHRoZSBjb21tZW50IGlzIHNldCByYXRoZXIgdGhhbiBhdCB0aGUgdGltZSB0aGUgemlwZmlsZSBpcyB3cml0dGVuLgorCistIHRyYWNlLkNvdmVyYWdlUmVzdWx0cy5pc19pZ25vcmVkX2ZpbGVuYW1lKCkgbm93IGlnbm9yZXMgYW55IG5hbWUgdGhhdCBzdGFydHMKKyAgd2l0aCAiPCIgYW5kIGVuZHMgd2l0aCAiPiIgaW5zdGVhZCBvZiBzcGVjaWFsLWNhc2luZyAiPHN0cmluZz4iIGFuZAorICAiPGRvY3Rlc3QgIi4KKworLSBJc3N1ZSAjMTI1Mzc6IFRoZSBtYWlsYm94IG1vZHVsZSBubyBsb25nZXIgZGVwZW5kcyBvbiBrbm93bGVkZ2Ugb2YgaW50ZXJuYWwKKyAgaW1wbGVtZW50YXRpb24gZGV0YWlscyBvZiB0aGUgZW1haWwgcGFja2FnZSBNZXNzYWdlIG9iamVjdC4KKworLSBJc3N1ZSAjNzk3ODogc29ja2V0c2VydmVyIG5vdyByZXN0YXJ0cyB0aGUgc2VsZWN0KCkgY2FsbCB3aGVuIEVJTlRSIGlzCisgIHJldHVybmVkLiAgVGhpcyBhdm9pZHMgY3Jhc2hpbmcgdGhlIHNlcnZlciBsb29wIHdoZW4gYSBzaWduYWwgaXMgcmVjZWl2ZWQuCisgIFBhdGNoIGJ5IEplcnp5IEtvemVyYS4KKworLSBJc3N1ZSAjMTQ1MjI6IEF2b2lkIGR1cGxpY2F0aW5nIHNvY2tldCBoYW5kbGVzIGluIG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uLgorICBQYXRjaCBieSBzYnQuCisKKy0gRG9uJ3QgUHlfREVDUkVGIE5VTEwgdmFyaWFibGUgaW4gaW8uSW5jcmVtZW50YWxOZXdsaW5lRGVjb2Rlci4KKworLSBJc3N1ZSAjODUxNTogU2V0IF9fZmlsZV9fIHdoZW4gcnVuIGZpbGUgaW4gSURMRS4KKyAgSW5pdGlhbCBwYXRjaCBieSBCcnVjZSBGcmVkZXJpa3Nlbi4KKworLSBJc3N1ZSAjMTQ0OTY6IEZpeCB3cm9uZyBuYW1lIGluIGlkbGVsaWIvdGFiYmVkcGFnZXMucHkuCisgIFBhdGNoIGJ5IFBvcGEgQ2xhdWRpdS4KKworLSBJc3N1ZSAjMzAzMzogQWRkIGRpc3BsYXlvZiBwYXJhbWV0ZXIgdG8gdGtpbnRlciBmb250LiBQYXRjaCBieSBHdWlsaGVybWUgUG9sby4KKworLSBJc3N1ZSAjMTQ0ODI6IFJhaXNlIGEgVmFsdWVFcnJvciwgbm90IGEgTmFtZUVycm9yLCB3aGVuIHRyeWluZyB0byBjcmVhdGUKKyAgYSBtdWx0aXByb2Nlc3NpbmcgQ2xpZW50IG9yIExpc3RlbmVyIHdpdGggYW4gQUZfVU5JWCB0eXBlIGFkZHJlc3MgdW5kZXIKKyAgV2luZG93cy4gIFBhdGNoIGJ5IFBvcGEgQ2xhdWRpdS4KKworLSBJc3N1ZSAjODAyMzEwOiBHZW5lcmF0ZSBhbHdheXMgdW5pcXVlIHRraW50ZXIgZm9udCBuYW1lcyBpZiBub3QgZGlyZWN0bHkgcGFzc2VkLgorCistIElzc3VlICMxNDE1MTogUmFpc2UgYSBWYWx1ZUVycm9yLCBub3QgYSBOYW1lRXJyb3IsIHdoZW4gdHJ5aW5nIHRvIGNyZWF0ZQorICBhIG11bHRpcHJvY2Vzc2luZyBDbGllbnQgb3IgTGlzdGVuZXIgd2l0aCBhbiBBRl9QSVBFIHR5cGUgYWRkcmVzcyB1bmRlcgorICBub24tV2luZG93cyBwbGF0Zm9ybXMuICBQYXRjaCBieSBQb3BhIENsYXVkaXUuCisKKy0gSXNzdWUgIzE0NDkzOiBVc2UgZ3Zmcy1vcGVuIG9yIHhkZy1vcGVuIGluIHdlYmJyb3dzZXIuCisKK0J1aWxkCistLS0tLQorCistICJtYWtlIHRvdWNoIiB3aWxsIG5vdyB0b3VjaCBnZW5lcmF0ZWQgZmlsZXMgdGhhdCBhcmUgY2hlY2tlZCBpbnRvIE1lcmN1cmlhbCwKKyAgYWZ0ZXIgYSAiaGcgdXBkYXRlIiB3aGljaCBmYWlsZWQgdG8gYnJpbmcgdGhlIHRpbWVzdGFtcHMgaW50byB0aGUgcmlnaHQgb3JkZXIuCisKK1Rlc3RzCistLS0tLQorCistIElzc3VlICMxNDAyNjogSW4gdGVzdF9jbWRfbGluZV9zY3JpcHQsIGNoZWNrIHRoYXQgc3lzLmFyZ3YgaXMgcG9wdWxhdGVkCisgIGNvcnJlY3RseSBmb3IgdGhlIHZhcmlvdXMgaW52b2NhdGlvbiBhcHByb2FjaGVzIChQYXRjaCBieSBKYXNvbiBZZW8pCisKKy0gSXNzdWUgIzE0MDMyOiBGaXggaW5jb3JyZWN0IHZhcmlhYmxlIG5hbWUgaW4gdGVzdF9jbWRfbGluZV9zY3JpcHQgZGVidWdnaW5nCisgIG1lc3NhZ2UgKFBhdGNoIGJ5IEphc29uIFllbykKKworLSBJc3N1ZSAjMTQ1ODk6IFVwZGF0ZSBjZXJ0aWZpY2F0ZSBjaGFpbiBmb3Igc2hhMjU2LnRicy1pbnRlcm5ldC5jb20sIGZpeGluZworICBhIHRlc3QgZmFpbHVyZSBpbiB0ZXN0X3NzbC4KKworLSBJc3N1ZSAjMTQzNTU6IFJlZ3J0ZXN0IG5vdyBzdXBwb3J0cyB0aGUgc3RhbmRhcmQgdW5pdHRlc3QgdGVzdCBsb2FkaW5nLCBhbmQKKyAgd2lsbCB1c2UgaXQgaWYgYSB0ZXN0IGZpbGUgY29udGFpbnMgbm8gYHRlc3RfbWFpbmAgbWV0aG9kLgorCitUb29scyAvIERlbW9zCistLS0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzM1NjE6IFRoZSBXaW5kb3dzIGluc3RhbGxlciBub3cgaGFzIGFuIG9wdGlvbiwgb2ZmIGJ5IGRlZmF1bHQsIGZvcgorICBwbGFjaW5nIHRoZSBQeXRob24gaW5zdGFsbGF0aW9uIGludG8gdGhlIHN5c3RlbSAiUGF0aCIgZW52aXJvbm1lbnQgdmFyaWFibGUuCisKKy0gSXNzdWUgIzEzMTY1OiBzdHJpbmdiZW5jaCBpcyBub3cgYXZhaWxhYmxlIGluIHRoZSBUb29scy9zdHJpbmdiZW5jaCBmb2xkZXIuCisgIEl0IHVzZWQgdG8gbGl2ZSBpbiBpdHMgb3duIFNWTiBwcm9qZWN0LgorCisKK1doYXQncyBOZXcgaW4gUHl0aG9uIDMuMy4wIEFscGhhIDI/Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqUmVsZWFzZSBkYXRlOiAwMS1BcHItMjAxMioKKworQ29yZSBhbmQgQnVpbHRpbnMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzE2ODMzNjg6IG9iamVjdC5fX25ld19fIGFuZCBvYmplY3QuX19pbml0X18gcmFpc2UgYSBUeXBlRXJyb3IgaWYgdGhleQorICBhcmUgcGFzc2VkIGFyZ3VtZW50cyBhbmQgdGhlaXIgY29tcGxlbWVudGFyeSBtZXRob2QgaXMgbm90IG92ZXJyaWRkZW4uCisKKy0gSXNzdWUgIzE0Mzc4OiBGaXggY29tcGlsaW5nIGFzdC5JbXBvcnRGcm9tIG5vZGVzIHdpdGggYSAiX19mdXR1cmVfXyIgc3RyaW5nIGFzCisgIHRoZSBtb2R1bGUgbmFtZSB0aGF0IHdhcyBub3QgaW50ZXJuZWQuCisKKy0gSXNzdWUgIzE0MzMxOiBVc2Ugc2lnbmlmaWNhbnRseSBsZXNzIHN0YWNrIHNwYWNlIHdoZW4gaW1wb3J0aW5nIG1vZHVsZXMgYnkKKyAgYWxsb2NhdGluZyBwYXRoIGJ1ZmZlcnMgb24gdGhlIGhlYXAgaW5zdGVhZCBvZiB0aGUgc3RhY2suCisKKy0gSXNzdWUgIzE0MzM0OiBQcmV2ZW50IGluIGEgc2VnZmF1bHQgaW4gdHlwZS5fX2dldGF0dHJpYnV0ZV9fIHdoZW4gaXQgd2FzIG5vdAorICBwYXNzZWQgc3RyaW5ncy4KKworLSBJc3N1ZSAjMTQ2OTYyOTogQWxsb3cgY3ljbGVzIHRocm91Z2ggYW4gb2JqZWN0J3MgX19kaWN0X18gc2xvdCB0byBiZQorICBjb2xsZWN0ZWQuIChGb3IgZXhhbXBsZSBpZiBgYHguX19kaWN0X18gaXMgeGBgKS4KKworLSBJc3N1ZSAjMTQyMDU6IGRpY3QgbG9va3VwIHJhaXNlcyBhIFJ1bnRpbWVFcnJvciBpZiB0aGUgZGljdCBpcyBtb2RpZmllZAorICBkdXJpbmcgYSBsb29rdXAuCisKKy0gSXNzdWUgIzE0MjIwOiBXaGVuIGEgZ2VuZXJhdG9yIGlzIGRlbGVnYXRpbmcgdG8gYW5vdGhlciBpdGVyYXRvciB3aXRoIHRoZQorICB5aWVsZCBmcm9tIHN5bnRheCwgaXQgbmVlZHMgdG8gaGF2ZSBpdHMgYGBnaV9ydW5uaW5nYGAgZmxhZyBzZXQgdG8gVHJ1ZS4KKworLSBJc3N1ZSAjMTQ0MzU6IFJlbW92ZSBkZWRpY2F0ZWQgYmxvY2sgYWxsb2NhdG9yIGZyb20gZmxvYXRvYmplY3QuYyBhbmQgcmVseQorICBvbiB0aGUgUHlPYmplY3RfTWFsbG9jKCkgYXBpIGxpa2UgYWxsIG90aGVyIG9iamVjdHMuCisKKy0gSXNzdWUgIzE0NDcxOiBGaXggYSBwb3NzaWJsZSBidWZmZXIgb3ZlcnJ1biBpbiB0aGUgd2lucmVnIG1vZHVsZS4KKworLSBJc3N1ZSAjMTQyODg6IEFsbG93IHRoZSBzZXJpYWxpemF0aW9uIG9mIGJ1aWx0aW4gaXRlcmF0b3JzCisKK0xpYnJhcnkKKy0tLS0tLS0KKworLSBJc3N1ZSAjMTQzMDA6IFVuZGVyIFdpbmRvd3MsIHNvY2tldHMgY3JlYXRlZCB1c2luZyBzb2NrZXQuZHVwKCkgbm93IGFsbG93CisgIG92ZXJsYXBwZWQgSS9PLiAgUGF0Y2ggYnkgc2J0LgorCistIElzc3VlICMxMzg3Mjogc29ja2V0LmRldGFjaCgpIG5vdyBtYXJrcyB0aGUgc29ja2V0IGNsb3NlZCAoYXMgbWlycm9yZWQKKyAgaW4gdGhlIHNvY2tldCByZXByKCkpLiAgUGF0Y2ggYnkgTWF0dCBKb2luZXIuCisKKy0gSXNzdWUgIzE0NDA2OiBGaXggYSByYWNlIGNvbmRpdGlvbiB3aGVuIHVzaW5nIGBgY29uY3VycmVudC5mdXR1cmVzLndhaXQoCisgIHJldHVybl93aGVuPUFMTF9DT01QTEVURUQpYGAuICBQYXRjaCBieSBNYXR0IEpvaW5lci4KKworLSBJc3N1ZSAjNTEzNjogZGVwcmVjYXRlIG9sZCwgdW51c2VkIGZ1bmN0aW9ucyBmcm9tIHRraW50ZXIuCisKKy0gSXNzdWUgIzE0NDA5OiBJRExFIG5vdyBwcm9wZXJseSBleGVjdXRlcyBjb21tYW5kcyBpbiB0aGUgU2hlbGwgd2luZG93CisgIHdoZW4gaXQgY2Fubm90IHJlYWQgdGhlIG5vcm1hbCBjb25maWcgZmlsZXMgb24gc3RhcnR1cCBhbmQKKyAgaGFzIHRvIHVzZSB0aGUgYnVpbHQtaW4gZGVmYXVsdCBrZXkgYmluZGluZ3MuCisgIFRoZXJlIHdhcyBwcmV2aW91c2x5IGEgYnVnIGluIG9uZSBvZiB0aGUgZGVmYXVsdHMuCisKKy0gSXNzdWUgIzE0NDE2OiBzeXNsb2cgbm93IGRlZmluZXMgdGhlIExPR19PREVMQVkgYW5kIExPR19BVVRIUFJJViBjb25zdGFudHMKKyAgaWYgdGhleSBhcmUgZGVmaW5lZCBpbiA8c3lzbG9nLmg+LgorCistIElETEUgY2FuIGJlIGxhdW5jaGVkIGFzIHB5dGhvbiAtbSBpZGxlbGliCisKKy0gSXNzdWUgIzE0Mjk1OiBBZGQgdW5pdHRlc3QubW9jaworCistIElzc3VlICM3NjUyOiBBZGQgLS13aXRoLXN5c3RlbS1saWJtcGRlYyBvcHRpb24gdG8gY29uZmlndXJlIGZvciBsaW5raW5nCisgIHRoZSBfZGVjaW1hbCBtb2R1bGUgYWdhaW5zdCBhbiBpbnN0YWxsZWQgbGlibXBkZWMuCisKKy0gSXNzdWUgIzE0MzgwOiBNSU1FVGV4dCBub3cgZGVmYXVsdHMgdG8gdXRmLTggd2hlbiBwYXNzZWQgbm9uLUFTQ0lJIHVuaWNvZGUKKyAgd2l0aCBubyBjaGFyc2V0IHNwZWNpZmllZC4KKworLSBJc3N1ZSAjMTAzNDA6IGFzeW5jb3JlIC0gcHJvcGVybHkgaGFuZGxlIEVJTlZBTCBpbiBkaXNwYXRjaGVyIGNvbnN0cnVjdG9yIG9uCisgIE9TWDsgYXZvaWQgdG8gY2FsbCBoYW5kbGVfY29ubmVjdCBpbiBjYXNlIG9mIGEgZGlzY29ubmVjdGVkIHNvY2tldCB3aGljaAorICB3YXMgbm90IG1lYW50IHRvIGNvbm5lY3QuCisKKy0gSXNzdWUgIzE0MjA0OiBUaGUgc3NsIG1vZHVsZSBub3cgaGFzIHN1cHBvcnQgZm9yIHRoZSBOZXh0IFByb3RvY29sCisgIE5lZ290aWF0aW9uIGV4dGVuc2lvbiwgaWYgYXZhaWxhYmxlIGluIHRoZSB1bmRlcmx5aW5nIE9wZW5TU0wgbGlicmFyeS4KKyAgUGF0Y2ggYnkgQ29saW4gTWFyYy4KKworLSBJc3N1ZSAjMzAzNTogVW51c2VkIGZ1bmN0aW9ucyBmcm9tIHRraW50ZXIgYXJlIG1hcmtlZCBhcyBwZW5kaW5nIGRlcHJlY2F0ZWQuCisKKy0gSXNzdWUgIzEyNzU3OiBGaXggdGhlIHNraXBwaW5nIG9mIGRvY3Rlc3RzIHdoZW4gcHl0aG9uIGlzIHJ1biB3aXRoIC1PTyBzbworICB0aGF0IGl0IHdvcmtzIGluIHVuaXR0ZXN0J3MgdmVyYm9zZSBtb2RlIGFzIHdlbGwgYXMgbm9uLXZlcmJvc2UgbW9kZS4KKworLSBJc3N1ZSAjNzY1MjogSW50ZWdyYXRlIHRoZSBkZWNpbWFsIGZsb2F0aW5nIHBvaW50IGxpYm1wZGVjIGxpYnJhcnkgdG8gc3BlZWQKKyAgdXAgdGhlIGRlY2ltYWwgbW9kdWxlLiBQZXJmb3JtYW5jZSBnYWlucyBvZiB0aGUgbmV3IEMgaW1wbGVtZW50YXRpb24gYXJlCisgIGJldHdlZW4gMTB4IGFuZCAxMDB4LCBkZXBlbmRpbmcgb24gdGhlIGFwcGxpY2F0aW9uLgorCistIElzc3VlICMzNTczOiBJRExFIGhhbmdzIHdoZW4gcGFzc2luZyBpbnZhbGlkIGNvbW1hbmQgbGluZSBhcmdzCisgIChkaXJlY3RvcnkoaWVzKSBpbnN0ZWFkIG9mIGZpbGUocykpIChQYXRjaCBieSBHdWlsaGVybWUgUG9sbykKKworLSBJc3N1ZSAjMTQyNjk6IFNNVFBEIG5vdyBjb25mb3JtcyB0byB0aGUgUkZDIGFuZCByZXF1aXJlcyBhIEhFTE8gY29tbWFuZAorICBiZWZvcmUgTUFJTCwgUkNQVCwgb3IgREFUQS4KKworLSBJc3N1ZSAjMTM2OTQ6IGFzeW5jaHJvbm91cyBjb25uZWN0IGluIGFzeW5jb3JlLmRpc3BhdGNoZXIgZG9lcyBub3Qgc2V0IGFkZHIKKyAgYXR0cmlidXRlLgorCistIElzc3VlICMxNDM0NDogZml4ZWQgdGhlIHJlcHIgb2YgZW1haWwucG9saWN5IG9iamVjdHMuCisKKy0gSXNzdWUgIzExNjg2OiBBZGRlZCBtaXNzaW5nIGVudHJpZXMgdG8gZW1haWwgcGFja2FnZSBfX2FsbF9fIGxpc3RzCisgIChtb3N0bHkgdGhlIG5ldyBCeXRlcyBjbGFzc2VzKS4KKworLSBJc3N1ZSAjMTQzMzU6IG11bHRpcHJvY2Vzc2luZydzIGN1c3RvbSBQaWNrbGVyIHN1YmNsYXNzIG5vdyBpbmhlcml0cyBmcm9tCisgIHRoZSBDLWFjY2VsZXJhdGVkIGltcGxlbWVudGF0aW9uLiAgUGF0Y2ggYnkgc2J0LgorCistIElzc3VlICMxMDQ4NDogRml4IHRoZSBDR0lIVFRQU2VydmVyJ3MgUEFUSF9JTkZPIGhhbmRsaW5nIHByb2JsZW0uCisKKy0gSXNzdWUgIzExMTk5OiBGaXggdGhlIHdpdGggdXJsbGliIHdoaWNoIGhhbmdzIG9uIHBhcnRpY3VsYXIgZnRwIHVybHMuCisKKy0gSW1wcm92ZSB0aGUgbWVtb3J5IHV0aWxpemF0aW9uIGFuZCBzcGVlZCBvZiBmdW5jdG9vbHMubHJ1X2NhY2hlLgorCistIElzc3VlICMxNDIyMjogVXNlIHRoZSBuZXcgdGltZS5zdGVhZHkoKSBmdW5jdGlvbiBpbnN0ZWFkIG9mIHRpbWUudGltZSgpIGZvcgorICB0aW1lb3V0IGluIHF1ZXVlIGFuZCB0aHJlYWRpbmcgbW9kdWxlcyB0byBub3QgYmUgYWZmZWN0ZWQgb2Ygc3lzdGVtIHRpbWUKKyAgdXBkYXRlLgorCistIElzc3VlICMxMzI0ODogUmVtb3ZlIGxpYjJ0bzMucHl0cmVlLkJhc2UuZ2V0X3ByZWZpeC9zZXRfcHJlZml4LgorCistIElzc3VlICMxNDIzNDogQ1ZFLTIwMTItMDg3NjogUmFuZG9taXplIGhhc2hlcyBvZiB4bWwgYXR0cmlidXRlcyBpbiB0aGUgaGFzaAorICB0YWJsZSBpbnRlcm5hbCB0byB0aGUgcHlleHBhdCBtb2R1bGUncyBjb3B5IG9mIHRoZSBleHBhdCBsaWJyYXJ5IHRvIGF2b2lkIGEKKyAgZGVuaWFsIG9mIHNlcnZpY2UgZHVlIHRvIGhhc2ggY29sbGlzaW9ucy4gIFBhdGNoIGJ5IERhdmlkIE1hbGNvbG0gd2l0aCBzb21lCisgIG1vZGlmaWNhdGlvbnMgYnkgdGhlIGV4cGF0IHByb2plY3QuCisKKy0gSXNzdWUgIzE0MjAwOiBJZGxlIHNoZWxsIGNyYXNoIG9uIHByaW50aW5nIG5vbi1CTVAgdW5pY29kZSBjaGFyYWN0ZXIuCisKKy0gSXNzdWUgIzEyODE4OiBmb3JtYXQgYWRkcmVzcyBubyBsb25nZXIgbmVlZGxlc3NseSBcIGVzY2FwZXMgKClzIGluIG5hbWVzIHdoZW4KKyAgdGhlIG5hbWUgZW5kcyB1cCBiZWluZyBxdW90ZWQuCisKKy0gSXNzdWUgIzE0MDYyOiBCeXRlc0dlbmVyYXRvciBub3cgY29ycmVjdGx5IGZvbGRzIEhlYWRlciBvYmplY3RzLAorICBpbmNsdWRpbmcgdXNpbmcgbGluZXNlcCB3aGVuIGZvbGRpbmcuCisKKy0gSXNzdWUgIzEzODM5OiBXaGVuIGludm9rZWQgb24gdGhlIGNvbW1hbmQtbGluZSwgdGhlIHBzdGF0cyBtb2R1bGUgbm93CisgIGFjY2VwdHMgc2V2ZXJhbCBmaWxlbmFtZXMgb2YgcHJvZmlsZSBzdGF0IGZpbGVzIGFuZCBtZXJnZXMgdGhlbSBhbGwuCisgIFBhdGNoIGJ5IE1hdHQgSm9pbmVyLgorCistIElzc3VlICMxNDI5MTogRW1haWwgbm93IGRlZmF1bHRzIHRvIHV0Zi04IGZvciBub24tQVNDSUkgdW5pY29kZSBoZWFkZXJzCisgIGluc3RlYWQgb2YgcmFpc2luZyBhbiBlcnJvci4gIFRoaXMgZml4ZXMgYSByZWdyZXNzaW9uIHJlbGF0aXZlIHRvIDIuNy4KKworLSBJc3N1ZSAjOTg5NzEyOiBTdXBwb3J0IHVzaW5nIFRrIHdpdGhvdXQgYSBtYWlubG9vcC4KKworLSBJc3N1ZSAjNTIxOTogUHJldmVudCBldmVudCBoYW5kbGVyIGNhc2NhZGUgaW4gSURMRS4KKworLSBJc3N1ZSAjMzgzNTogUmVmdXNlIHRvIHVzZSB1bnRocmVhZGVkIFRjbCBpbiB0aHJlYWRlZCBQeXRob24uCisKKy0gSXNzdWUgIzI4NDM6IEFkZCBuZXcgVGsgQVBJIHRvIFRraW50ZXIuCisKKy0gSXNzdWUgIzE0MTg0OiBJbmNyZWFzZSB0aGUgZGVmYXVsdCBzdGFjayBzaXplIGZvciBzZWNvbmRhcnkgdGhyZWFkcyBvbgorICBNYWMgT1MgWCB0byBhdm9pZCBpbnRlcnByZXRlciBjcmFzaGVzIHdoZW4gdXNpbmcgdGhyZWFkcyBvbiAxMC43LgorCistIElzc3VlICMxNDE4MDogZGF0ZXRpbWUuZGF0ZS5mcm9tdGltZXN0YW1wKCksCisgIGRhdGV0aW1lLmRhdGV0aW1lLmZyb210aW1lc3RhbXAoKSBhbmQgZGF0ZXRpbWUuZGF0ZXRpbWUudXRjZnJvbXRpbWVzdGFtcCgpCisgIG5vdyByYWlzZSBhbiBPU0Vycm9yIGluc3RlYWQgb2YgVmFsdWVFcnJvciBpZiBsb2NhbHRpbWUoKSBvciBnbXRpbWUoKSBmYWlsZWQuCisKKy0gSXNzdWUgIzE0MTgwOiB0aW1lLmN0aW1lKCksIGdtdGltZSgpLCB0aW1lLmxvY2FsdGltZSgpLAorICBkYXRldGltZS5kYXRlLmZyb210aW1lc3RhbXAoKSwgZGF0ZXRpbWUuZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcCgpIGFuZAorICBkYXRldGltZS5kYXRldGltZS51dGNmcm9tdGltZXN0YW1wKCkgbm93IHJhaXNlcyBhbiBPdmVyZmxvd0Vycm9yLCBpbnN0ZWFkIG9mCisgIGEgVmFsdWVFcnJvciwgaWYgdGhlIHRpbWVzdGFtcCBkb2VzIG5vdCBmaXQgaW4gdGltZV90LgorCistIElzc3VlICMxNDE4MDogZGF0ZXRpbWUuZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcCgpIGFuZAorICBkYXRldGltZS5kYXRldGltZS51dGNmcm9tdGltZXN0YW1wKCkgbm93IHJvdW5kIG1pY3Jvc2Vjb25kcyB0b3dhcmRzIHplcm8KKyAgaW5zdGVhZCBvZiByb3VuZGluZyB0byBuZWFyZXN0IHdpdGggdGllcyBnb2luZyBhd2F5IGZyb20gemVyby4KKworLSBJc3N1ZSAjMTA1NDM6IEZpeCB1bml0dGVzdCB0ZXN0IGRpc2NvdmVyeSB3aXRoIEp5dGhvbiBieXRlY29kZSBmaWxlcy4KKworLSBJc3N1ZSAjMTE3ODg2MzogU2VwYXJhdGUgaW5pdGlhbGlzYXRpb24gZnJvbSBzZXR0aW5nIHdoZW4gaW5pdGlhbGl6aW5nCisgIFRraW50ZXIuVmFyaWFibGVzOyBoYXJtb25pemUgZXhjZXB0aW9ucyB0byBWYWx1ZUVycm9yOyBvbmx5IGRlbGV0ZSB2YXJpYWJsZXMKKyAgdGhhdCBoYXZlIG5vdCBiZWVuIGRlbGV0ZWQ7IGFzc2VydCB0aGF0IHZhcmlhYmxlIG5hbWVzIGFyZSBzdHJpbmdzLgorCistIElzc3VlICMxNDEwNDogSW1wbGVtZW50IHRpbWUubW9ub3RvbmljKCkgb24gTWFjIE9TIFgsIHBhdGNoIHdyaXR0ZW4gYnkKKyAgTmljaG9sYXMgUmlsZXkuCisKKy0gSXNzdWUgIzEzMzk0OiB0aGUgYWlmYyBtb2R1bGUgbm93IHVzZXMgd2FybmluZ3Mud2FybigpIHRvIHNpZ25hbCB3YXJuaW5ncy4KKworLSBJc3N1ZSAjMTQyNTI6IEZpeCBzdWJwcm9jZXNzLlBvcGVuLnRlcm1pbmF0ZSgpIHRvIG5vdCByYWlzZSBhbiBlcnJvciB1bmRlcgorICBXaW5kb3dzIHdoZW4gdGhlIGNoaWxkIHByb2Nlc3MgaGFzIGFscmVhZHkgZXhpdGVkLgorCistIElzc3VlICMxNDIyMzogY3Vyc2VzLmFkZGNoKCkgaXMgbm8gbW9yZSBsaW1pdGVkIHRvIHRoZSByYW5nZSAwLTI1NSB3aGVuIHRoZQorICBQeXRob24gY3Vyc2VzIGlzIG5vdCBsaW5rZWQgdG8gbGlibmN1cnNlc3cuIEl0IHdhcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZAorICBpbiBQeXRob24gMy4zYTEuCisKKy0gSXNzdWUgIzE0MTY4OiBDaGVjayBmb3IgcHJlc2VuY2Ugb2YgRWxlbWVudC5fYXR0cnMgaW4gbWluaWRvbSBiZWZvcmUKKyAgYWNjZXNzaW5nIGl0LgorCistIElzc3VlICMxMjMyODogRml4IG11bHRpcHJvY2Vzc2luZydzIHVzZSBvZiBvdmVybGFwcGVkIEkvTyBvbiBXaW5kb3dzLgorICBBbHNvLCBhZGQgYSBtdWx0aXByb2Nlc3NpbmcuY29ubmVjdGlvbi53YWl0KHJsaXN0LCB0aW1lb3V0PU5vbmUpIGZ1bmN0aW9uCisgIGZvciBwb2xsaW5nIG11bHRpcGxlIG9iamVjdHMgYXQgb25jZS4gIFBhdGNoIGJ5IHNidC4KKworLSBJc3N1ZSAjMTQwMDc6IEFjY2VwdCBpbmNvbXBsZXRlIFRyZWVCdWlsZGVyIG9iamVjdHMgKG1pc3Npbmcgc3RhcnQsIGVuZCwKKyAgZGF0YSBvciBjbG9zZSBtZXRob2QpIGZvciB0aGUgUHl0aG9uIGltcGxlbWVudGF0aW9uIGFzIHdlbGwuCisgIERyb3AgdGhlIG5vLW9wIFRyZWVCdWlsZGVyKCkueG1sKCkgbWV0aG9kIGZyb20gdGhlIEMgaW1wbGVtZW50YXRpb24uCisKKy0gSXNzdWUgIzE0MjEwOiBwZGIgbm93IGhhcyB0YWItY29tcGxldGlvbiBub3Qgb25seSBmb3IgY29tbWFuZCBuYW1lcywgYnV0CisgIGFsc28gZm9yIHRoZWlyIGFyZ3VtZW50cywgd2hlcmV2ZXIgcG9zc2libGUuCisKKy0gSXNzdWUgIzE0MzEwOiBTb2NrZXRzIGNhbiBub3cgYmUgd2l0aCBvdGhlciBwcm9jZXNzZXMgb24gV2luZG93cyB1c2luZworICB0aGUgYXBpIHNvY2tldC5zb2NrZXQuc2hhcmUoKSBhbmQgc29ja2V0LmZyb21zaGFyZSgpLgorCistIElzc3VlICMxMDU3NjogVGhlIGdjIG1vZHVsZSBub3cgaGFzIGEgJ2NhbGxiYWNrcycgbWVtYmVyIHRoYXQgd2lsbCBnZXQKKyAgY2FsbGVkIHdoZW4gZ2FyYmFnZSBjb2xsZWN0aW9uIHRha2VzIHBsYWNlLgorCitCdWlsZAorLS0tLS0KKworLSBJc3N1ZSAjMTQ1NTc6IEZpeCBleHRlbnNpb25zIGJ1aWxkIG9uIEhQLVVYLiBQYXRjaCBieSBBZGkgUm9pYmFuLgorCistIElzc3VlICMxNDM4NzogRG8gbm90IGluY2x1ZGUgYWNjdS5oIGZyb20gUHl0aG9uLmguCisKKy0gSXNzdWUgIzE0MzU5OiBPbmx5IHVzZSBPX0NMT0VYRUMgaW4gX3Bvc2l4bW9kdWxlLmMgaWYgaXQgaXMgZGVmaW5lZC4KKyAgQmFzZWQgb24gcGF0Y2ggZnJvbSBIZXJ2w6kgQ29hdGFuaGF5LgorCistIElzc3VlICMxNDMyMTogRG8gbm90IHJ1biBwZ2VuIGR1cmluZyB0aGUgYnVpbGQgaWYgZmlsZXMgYXJlIHVwIHRvIGRhdGUuCisKK0RvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0KKworLSBJc3N1ZSAjMTQwMzQ6IGFkZGVkIHRoZSBhcmdwYXJzZSB0dXRvcmlhbC4KKworLSBJc3N1ZSAjMTQzMjQ6IEZpeCBjb25maWd1cmUgdGVzdHMgZm9yIGNyb3NzIGJ1aWxkcy4KKworLSBJc3N1ZSAjMTQzMjc6IENhbGwgQUNfQ0FOT05JQ0FMX0hPU1QgaW4gY29uZmlndXJlLmFjIGFuZCBjaGVjayBpbgorICBjb25maWcue2d1ZXNzLHN1Yn0uIERvbid0IHVzZSB1bmFtZSBjYWxscyBmb3IgY3Jvc3MgYnVpbGRzLgorCitFeHRlbnNpb24gTW9kdWxlcworLS0tLS0tLS0tLS0tLS0tLS0KKworLSBJc3N1ZSAjOTA0MTogQW4gaXNzdWUgaW4gY3R5cGVzLmNfbG9uZ2RvdWJsZSwgY3R5cGVzLmNfZG91YmxlLCBhbmQKKyAgY3R5cGVzLmNfZmxvYXQgdGhhdCBjYXVzZWQgYW4gaW5jb3JyZWN0IGV4Y2VwdGlvbiB0byBiZSByZXR1cm5lZCBpbiB0aGUKKyAgY2FzZSBvZiBvdmVyZmxvdyBoYXMgYmVlbiBmaXhlZC4KKworLSBJc3N1ZSAjMTQyMTI6IFRoZSByZSBtb2R1bGUgZGlkbid0IHJldGFpbiBhIHJlZmVyZW5jZSB0byBidWZmZXJzIGl0IHdhcworICBzY2FubmluZywgcmVzdWx0aW5nIGluIHNlZ2ZhdWx0cy4KKworLSBJc3N1ZSAjMTQyNTk6IFRoZSBmaW5kaXRlcigpIG1ldGhvZCBvZiByZSBvYmplY3RzIGRpZCBub3QgdGFrZSBhbnkKKyAga2V5d29yZCBhcmd1bWVudHMsIGNvbnRyYXJ5IHRvIHRoZSBkb2N1bWVudGF0aW9uLgorCistIElzc3VlICMxMDE0MjogU3VwcG9ydCBmb3IgU0VFS19IT0xFL1NFRUtfREFUQSAoZm9yIGV4YW1wbGUsIHVuZGVyIFpGUykuCisKK1Rlc3RzCistLS0tLQorCistIElzc3VlICMxNDQ0MjogQWRkIG1pc3NpbmcgZXJybm8gaW1wb3J0IGluIHRlc3Rfc210cGxpYi4KKworLSBJc3N1ZSAjODMxNTogKHBhcnRpYWwgZml4KSBweXRob24gLW0gdW5pdHRlc3QgdGVzdC50ZXN0X2VtYWlsIG5vdyB3b3Jrcy4KKworCitXaGF0J3MgTmV3IGluIFB5dGhvbiAzLjMuMCBBbHBoYSAxPworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKlJlbGVhc2UgZGF0ZTogMDUtTWFyLTIwMTIqCisKK0NvcmUgYW5kIEJ1aWx0aW5zCistLS0tLS0tLS0tLS0tLS0tLQorCistIElzc3VlICMxNDE3MjogRml4IHJlZmVyZW5jZSBsZWFrIHdoZW4gbWFyc2hhbGxpbmcgYSBidWZmZXItbGlrZSBvYmplY3QKKyAgKG90aGVyIHRoYW4gYSBieXRlcyBvYmplY3QpLgorCistIElzc3VlICMxMzUyMTogZGljdC5zZXRkZWZhdWx0KCkgbm93IGRvZXMgb25seSBvbmUgbG9va3VwIGZvciB0aGUgZ2l2ZW4ga2V5LAorICBtYWtpbmcgaXQgImF0b21pYyIgZm9yIG1hbnkgcHVycG9zZXMuICBQYXRjaCBieSBGaWxpcCBHcnVzemN6ecWEc2tpLgorCistIFBFUCA0MDksIElzc3VlICM2MjEwOiAicmFpc2UgWCBmcm9tIE5vbmUiIGlzIG5vdyBzdXBwb3J0ZWQgYXMgYSBtZWFucyBvZgorICBzdXBwcmVzc2luZyB0aGUgZGlzcGxheSBvZiB0aGUgY2hhaW5lZCBleGNlcHRpb24gY29udGV4dC4gVGhlIGNoYWluZWQKKyAgY29udGV4dCBzdGlsbCByZW1haW5zIGF2YWlsYWJsZSBhcyB0aGUgX19jb250ZXh0X18gYXR0cmlidXRlLgorCistIElzc3VlICMxMDE4MTogTmV3IG1lbW9yeXZpZXcgaW1wbGVtZW50YXRpb24gZml4ZXMgbXVsdGlwbGUgb3duZXJzaGlwCisgIGFuZCBsaWZldGltZSBpc3N1ZXMgb2YgZHluYW1pY2FsbHkgYWxsb2NhdGVkIFB5X2J1ZmZlciBtZW1iZXJzICgjOTk5MCkKKyAgYXMgd2VsbCBhcyBjcmFzaGVzICgjODMwNSwgIzc0MzMpLiBNYW55IG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQKKyAgKFNlZSB3aGF0c25ldy8zLjMpLCBhbmQgdGhlIGRvY3VtZW50YXRpb24gaGFzIGJlZW4gdXBkYXRlZCBleHRlbnNpdmVseS4KKyAgVGhlIG5kYXJyYXkgdGVzdCBvYmplY3QgZnJvbSBfdGVzdGJ1ZmZlci5jIGltcGxlbWVudHMgYWxsIGFzcGVjdHMgb2YKKyAgUEVQLTMxMTgsIHNvIGZ1cnRoZXIgZGV2ZWxvcG1lbnQgdG93YXJkcyB0aGUgY29tcGxldGUgaW1wbGVtZW50YXRpb24KKyAgb2YgdGhlIFBFUCBjYW4gcHJvY2VlZCBpbiBhIHRlc3QtZHJpdmVuIG1hbm5lci4KKworICBUaGFua3MgdG8gTmljayBDb2dobGFuLCBBbnRvaW5lIFBpdHJvdSBhbmQgUGF1bGkgVmlydGFuZW4gZm9yIHJldmlldworICBhbmQgbWFueSBpZGVhcy4KKworLSBJc3N1ZSAjMTI4MzQ6IEZpeCBpbmNvcnJlY3QgcmVzdWx0cyBvZiBtZW1vcnl2aWV3LnRvYnl0ZXMoKSBmb3IKKyAgbm9uLWNvbnRpZ3VvdXMgYXJyYXlzLgorCistIElzc3VlICM1MjMxOiBJbnRyb2R1Y2UgbWVtb3J5dmlldy5jYXN0KCkgbWV0aG9kIHRoYXQgYWxsb3dzIGNoYW5naW5nCisgIGZvcm1hdCBhbmQgc2hhcGUgd2l0aG91dCBtYWtpbmcgYSBjb3B5IG9mIHRoZSB1bmRlcmx5aW5nIG1lbW9yeS4KKworLSBJc3N1ZSAjMTQwODQ6IEZpeCBhIGZpbGUgZGVzY3JpcHRvciBsZWFrIHdoZW4gaW1wb3J0aW5nIGEgbW9kdWxlIHdpdGggYQorICBiYWQgZW5jb2RpbmcuCisKKy0gVXBncmFkZSBVbmljb2RlIGRhdGEgdG8gVW5pY29kZSA2LjEuCisKKy0gSXNzdWUgIzE0MDQwOiBSZW1vdmUgcmFyZWx5IHVzZWQgZmlsZSBuYW1lIHN1ZmZpeGVzIGZvciBDIGV4dGVuc2lvbnMKKyAgKHVuZGVyIFBPU0lYIG1haW5seSkuCisKKy0gSXNzdWUgIzE0MDUxOiBBbGxvdyBhcmJpdHJhcnkgYXR0cmlidXRlcyB0byBiZSBzZXQgb2YgY2xhc3NtZXRob2QgYW5kCisgIHN0YXRpY21ldGhvZC4KKworLSBJc3N1ZSAjMTM3MDM6IG9DRVJULTIwMTEtMDAzOiBSYW5kb21pemUgaGFzaGVzIG9mIHN0ciBhbmQgYnl0ZXMgdG8gcHJvdGVjdAorICBhZ2FpbnN0IGRlbmlhbCBvZiBzZXJ2aWNlIGF0dGFja3MgZHVlIHRvIGhhc2ggY29sbGlzaW9ucyB3aXRoaW4gdGhlIGRpY3QgYW5kCisgIHNldCB0eXBlcy4gIFBhdGNoIGJ5IERhdmlkIE1hbGNvbG0sIGJhc2VkIG9uIHdvcmsgYnkgVmljdG9yIFN0aW5uZXIuCisKKy0gSXNzdWUgIzEzMDIwOiBGaXggYSByZWZlcmVuY2UgbGVhayB3aGVuIGFsbG9jYXRpbmcgYSBzdHJ1Y3RzZXF1ZW5jZSBvYmplY3QKKyAgZmFpbHMuICBQYXRjaCBieSBTdW1hbiBTYWhhLgorCistIElzc3VlICMxMzkwODogUmVhZHkgdHlwZXMgcmV0dXJuZWQgZnJvbSBQeVR5cGVfRnJvbVNwZWMuCisKKy0gSXNzdWUgIzExMjM1OiBGaXggT3ZlcmZsb3dFcnJvciB3aGVuIHRyeWluZyB0byBpbXBvcnQgYSBzb3VyY2UgZmlsZSB3aG9zZQorICBtb2RpZmljYXRpb24gdGltZSBkb2Vzbid0IGZpdCBpbiBhIDMyLWJpdCB0aW1lc3RhbXAuCisKKy0gSXNzdWUgIzEyNzA1OiBBIFN5bnRheEVycm9yIGV4Y2VwdGlvbiBpcyBub3cgcmFpc2VkIHdoZW4gYXR0ZW1wdGluZyB0bworICBjb21waWxlIG11bHRpcGxlIHN0YXRlbWVudHMgYXMgYSBzaW5nbGUgaW50ZXJhY3RpdmUgc3RhdGVtZW50LgorCistIEZpeCB0aGUgYnVpbHRpbiBtb2R1bGUgaW5pdGlhbGl6YXRpb24gY29kZSB0byBzdG9yZSB0aGUgaW5pdCBmdW5jdGlvbiBmb3IKKyAgZnV0dXJlIHJlaW5pdGlhbGl6YXRpb24uCisKKy0gSXNzdWUgIzgwNTI6IFRoZSBwb3NpeCBzdWJwcm9jZXNzIG1vZHVsZSB3b3VsZCB0YWtlIGEgbG9uZyB0aW1lIGNsb3NpbmcKKyAgYWxsIHBvc3NpYmxlIGZpbGUgZGVzY3JpcHRvcnMgaW4gdGhlIGNoaWxkIHByb2Nlc3MgcmF0aGVyIHRoYW4ganVzdCBvcGVuCisgIGZpbGUgZGVzY3JpcHRvcnMuICBJdCBub3cgY2xvc2VzIG9ubHkgdGhlIG9wZW4gZmRzIGlmIHBvc3NpYmxlIGZvciB0aGUKKyAgZGVmYXVsdCBjbG9zZV9mZHM9VHJ1ZSBiZWhhdmlvci4KKworLSBJc3N1ZSAjMTM2Mjk6IFJlbnVtYmVyIHRoZSB0b2tlbnMgaW4gdG9rZW4uaCBzbyB0aGF0IHRoZXkgbWF0Y2ggdGhlIGluZGV4ZXMKKyAgaW50byBfUHlQYXJzZXJfVG9rZW5OYW1lcy4KKworLSBJc3N1ZSAjMTM3NTI6IEFkZCBhIGNhc2Vmb2xkKCkgbWV0aG9kIHRvIHN0ci4KKworLSBJc3N1ZSAjMTM3NjE6IEFkZCBhICJmbHVzaCIga2V5d29yZCBhcmd1bWVudCB0byB0aGUgcHJpbnQoKSBmdW5jdGlvbiwKKyAgdXNlZCB0byBlbnN1cmUgZmx1c2hpbmcgdGhlIG91dHB1dCBzdHJlYW0uCisKKy0gSXNzdWUgIzEzNjQ1OiBweWMgZmlsZXMgbm93IGNvbnRhaW4gdGhlIHNpemUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgc291cmNlCisgIGNvZGUsIHRvIGF2b2lkIHRpbWVzdGFtcCBjb2xsaXNpb25zIChlc3BlY2lhbGx5IG9uIGZpbGVzeXN0ZW1zIHdpdGggYSBsb3cKKyAgdGltZXN0YW1wIHJlc29sdXRpb24pIHdoZW4gY2hlY2tpbmcgZm9yIGZyZXNobmVzcyBvZiB0aGUgYnl0ZWNvZGUuCisKKy0gUEVQIDM4MCwgSXNzdWUgIzExNjgyOiBBZGQgInlpZWxkIGZyb20gPHg+IiB0byBzdXBwb3J0IGVhc3kgZGVsZWdhdGlvbiB0bworICBzdWJnZW5lcmF0b3JzIChpbml0aWFsIHBhdGNoIGJ5IEdyZWcgRXdpbmcsIGludGVncmF0aW9uIGludG8gMy4zIGJ5CisgIFJlbmF1ZCBCbGFuY2gsIFJ5YW4gS2VsbHksIFpiaWduaWV3IErEmWRyemVqZXdza2ktU3ptZWsgYW5kIE5pY2sgQ29naGxhbikKKworLSBJc3N1ZSAjMTM3NDg6IFJhdyBieXRlcyBsaXRlcmFscyBjYW4gbm93IGJlIHdyaXR0ZW4gd2l0aCB0aGUgYGByYmBgIHByZWZpeAorICBhcyB3ZWxsIGFzIGBgYnJgYC4KKworLSBJc3N1ZSAjMTI3MzY6IFVzZSBmdWxsIHVuaWNvZGUgY2FzZSBtYXBwaW5ncyBmb3IgdXBwZXIsIGxvd2VyLCBhbmQgdGl0bGUgY2FzZS4KKworLSBJc3N1ZSAjMTI3NjA6IEFkZCBhIGNyZWF0ZSBtb2RlIHRvIG9wZW4oKS4gUGF0Y2ggYnkgRGF2aWQgVG93bnNoZW5kLgorCistIElzc3VlICMxMzczODogU2ltcGxpZnkgaW1wbGVtZW50YXRpb24gb2YgYnl0ZXMubG93ZXIoKSBhbmQgYnl0ZXMudXBwZXIoKS4KKworLSBJc3N1ZSAjMTM1Nzc6IEJ1aWx0LWluIG1ldGhvZHMgYW5kIGZ1bmN0aW9ucyBub3cgaGF2ZSBhIF9fcXVhbG5hbWVfXy4KKyAgUGF0Y2ggYnkgc2J0LgorCistIElzc3VlICM2Njk1OiBGdWxsIGdhcmJhZ2UgY29sbGVjdGlvbiBydW5zIG5vdyBjbGVhciB0aGUgZnJlZWxpc3Qgb2Ygc2V0CisgIG9iamVjdHMuICBJbml0aWFsIHBhdGNoIGJ5IE1hdHRoaWFzIFRyb2ZmYWVzLgorCistIEZpeCBPU0Vycm9yLl9faW5pdF9fIGFuZCBPU0Vycm9yLl9fbmV3X18gc28gdGhhdCBlYWNoIG9mIHRoZW0gY2FuIGJlCisgIG92ZXJyaWRlbiBhbmQgdGFrZSBhZGRpdGlvbmFsIGFyZ3VtZW50cyAoZm9sbG93dXAgdG8gaXNzdWUgIzEyNTU1KS4KKworLSBGaXggdGhlIGZpeCBmb3IgaXNzdWUgIzEyMTQ5OiBpdCB3YXMgaW5jb3JyZWN0LCBhbHRob3VnaCBpdCBoYWQgdGhlIHNpZGUKKyAgZWZmZWN0IG9mIGFwcGVhcmluZyB0byByZXNvbHZlIHRoZSBpc3N1ZS4gIFRoYW5rcyB0byBNYXJrIFNoYW5ub24gZm9yCisgIG5vdGljaW5nLgorCistIElzc3VlICMxMzUwNTogUGlja2xlIGJ5dGVzIG9iamVjdHMgaW4gYSB3YXkgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGgKKyAgUHl0aG9uIDIgd2hlbiB1c2luZyBwcm90b2NvbHMgPD0gMi4KKworLSBJc3N1ZSAjMTExNDc6IEZpeCBhbiB1bnVzZWQgYXJndW1lbnQgaW4gX1B5X0FOTk9UQVRFX01FTU9SWV9PUkRFUi4gIChGaXgKKyAgZ2l2ZW4gYnkgQ2FtcGJlbGwgQmFydG9uKS4KKworLSBJc3N1ZSAjMTM1MDM6IFVzZSBhIG1vcmUgZWZmaWNpZW50IHJlZHVjdGlvbiBmb3JtYXQgZm9yIGJ5dGVhcnJheXMgd2l0aAorICBwaWNrbGUgcHJvdG9jb2wgPj0gMy4gIFRoZSBvbGQgcmVkdWN0aW9uIGZvcm1hdCBpcyBrZXB0IHdpdGggb2xkZXIgcHJvdG9jb2xzCisgIGluIG9yZGVyIHRvIGFsbG93IHVucGlja2xpbmcgdW5kZXIgUHl0aG9uIDIuICBQYXRjaCBieSBJcm1lbiBkZSBKb25nLgorCistIElzc3VlICM3MTExOiBQeXRob24gY2FuIG5vdyBiZSBydW4gd2l0aG91dCBhIHN0ZGluLCBzdGRvdXQgb3Igc3RkZXJyCisgIHN0cmVhbS4gIEl0IHdhcyBhbHJlYWR5IHRoZSBjYXNlIHdpdGggUHl0aG9uIDIuICBIb3dldmVyLCB0aGUgY29ycmVzcG9uZGluZworICBzeXMgbW9kdWxlIGVudHJpZXMgYXJlIG5vdyBzZXQgdG8gTm9uZSAoaW5zdGVhZCBvZiBhbiB1bnVzYWJsZSBmaWxlIG9iamVjdCkuCisKKy0gSXNzdWUgIzExODQ5OiBFbnN1cmUgdGhhdCBmcmVlKClkIG1lbW9yeSBhcmVuYXMgYXJlIHJlYWxseSByZWxlYXNlZAorICBvbiBQT1NJWCBzeXN0ZW1zIHN1cHBvcnRpbmcgYW5vbnltb3VzIG1lbW9yeSBtYXBwaW5ncy4gIFBhdGNoIGJ5CisgIENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KKworLSBJc3N1ZSAjMTM0NTI6IFB5VW5pY29kZV9FbmNvZGVEZWNpbWFsKCkgZG9lc24ndCBzdXBwb3J0IGVycm9yIGhhbmRsZXJzCisgIGRpZmZlcmVudCB0aGFuICJzdHJpY3QiIGFueW1vcmUuIFRoZSBjYWxsZXIgd2FzIHVuYWJsZSB0byBjb21wdXRlIHRoZQorICBzaXplIG9mIHRoZSBvdXRwdXQgYnVmZmVyOiBpdCBkZXBlbmRzIG9uIHRoZSBlcnJvciBoYW5kbGVyLgorCistIFBFUCAzMTU1IC8gaXNzdWUgIzEzNDQ4OiBRdWFsaWZpZWQgbmFtZSBmb3IgY2xhc3NlcyBhbmQgZnVuY3Rpb25zLgorCistIElzc3VlICMxMzQzNjogRml4IGEgYm9ndXMgZXJyb3IgbWVzc2FnZSB3aGVuIGFuIEFTVCBvYmplY3Qgd2FzIHBhc3NlZAorICBhbiBpbnZhbGlkIGludGVnZXIgdmFsdWUuCisKKy0gSXNzdWUgIzEzNDExOiBtZW1vcnl2aWV3IG9iamVjdHMgYXJlIG5vdyBoYXNoYWJsZSB3aGVuIHRoZSB1bmRlcmx5aW5nCisgIG9iamVjdCBpcyBoYXNoYWJsZS4KKworLSBJc3N1ZSAjMTMzMzg6IEhhbmRsZSBhbGwgZW51bWVyYXRpb25zIGluIF9QeV9BTk5PVEFURV9NRU1PUllfT1JERVIKKyAgdG8gYWxsb3cgY29tcGlsaW5nIGV4dGVuc2lvbiBtb2R1bGVzIHdpdGggLVdzd2l0Y2gtZW51bSBvbiBnY2MuCisgIEluaXRpYWwgcGF0Y2ggYnkgRmxvcmlzIEJydXlub29naGUuCisKKy0gSXNzdWUgIzEwMjI3OiBBZGQgYW4gYWxsb2NhdGlvbiBjYWNoZSBmb3IgYSBzaW5nbGUgc2xpY2Ugb2JqZWN0LiAgUGF0Y2ggYnkKKyAgU3RlZmFuIEJlaG5lbC4KKworLSBJc3N1ZSAjMTMzOTM6IEJ1ZmZlcmVkUmVhZGVyLnJlYWQxKCkgbm93IGFza3MgdGhlIGZ1bGwgcmVxdWVzdGVkIHNpemUgdG8KKyAgdGhlIHJhdyBzdHJlYW0gaW5zdGVhZCBvZiBsaW1pdGluZyBpdHNlbGYgdG8gdGhlIGJ1ZmZlciBzaXplLgorCistIElzc3VlICMxMzM5MjogV3JpdGluZyBhIHB5YyBmaWxlIHNob3VsZCBub3cgYmUgYXRvbWljIHVuZGVyIFdpbmRvd3MgYXMgd2VsbC4KKworLSBJc3N1ZSAjMTMzMzM6IFRoZSBVVEYtNyBkZWNvZGVyIG5vdyBhY2NlcHRzIGxvbmUgc3Vycm9nYXRlcyAodGhlIGVuY29kZXIKKyAgYWxyZWFkeSBhY2NlcHRzIHRoZW0pLgorCistIElzc3VlICMxMzM4OTogRnVsbCBnYXJiYWdlIGNvbGxlY3Rpb24gcGFzc2VzIG5vdyBjbGVhciB0aGUgZnJlZWxpc3RzIGZvcgorICBsaXN0IGFuZCBkaWN0IG9iamVjdHMuICBUaGV5IGFscmVhZHkgY2xlYXJlZCBvdGhlciBmcmVlbGlzdHMgaW4gdGhlCisgIGludGVycHJldGVyLgorCistIElzc3VlICMxMzMyNzogUmVtb3ZlIHRoZSBuZWVkIGZvciBhbiBleHBsaWNpdCBOb25lIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQKKyAgdG8gb3MudXRpbWUsIG9zLmx1dGltZXMsIG9zLmZ1dGltZXMsIG9zLmZ1dGltZW5zLCBvcy5mdXRpbWVzYXQsIGluCisgIG9yZGVyIHRvIHVwZGF0ZSB0byB0aGUgY3VycmVudCB0aW1lLiBBbHNvIGFkZGVkIGtleXdvcmQgYXJndW1lbnQKKyAgaGFuZGxpbmcgdG8gb3MudXRpbWVuc2F0IGluIG9yZGVyIHRvIHJlbW92ZSB0aGUgbmVlZCBmb3IgZXhwbGljaXQgTm9uZS4KKworLSBJc3N1ZSAjMTMzNTA6IFNpbXBsaWZ5IHNvbWUgQyBjb2RlIGJ5IHJlcGxhY2luZyBtb3N0IHVzYWdlcyBvZgorICBQeVVuaWNvZGVfRm9ybWF0IGJ5IFB5VW5pY29kZV9Gcm9tRm9ybWF0LgorCistIElzc3VlICMxMzM0MjogaW5wdXQoKSB1c2VkIHRvIGlnbm9yZSBzeXMuc3RkaW4ncyBhbmQgc3lzLnN0ZG91dCdzIHVuaWNvZGUKKyAgZXJyb3IgaGFuZGxlciBpbiBpbnRlcmFjdGl2ZSBtb2RlICh3aGVuIGNhbGxpbmcgaW50byBQeU9TX1JlYWRsaW5lKCkpLgorCistIElzc3VlICM5ODk2OiBBZGQgc3RhcnQsIHN0b3AsIGFuZCBzdGVwIGF0dHJpYnV0ZXMgdG8gcmFuZ2Ugb2JqZWN0cy4KKworLSBJc3N1ZSAjMTMzNDM6IEZpeCBhIFN5c3RlbUVycm9yIHdoZW4gYSBsYW1iZGEgZXhwcmVzc2lvbiB1c2VzIGEgZ2xvYmFsCisgIHZhcmlhYmxlIGluIHRoZSBkZWZhdWx0IHZhbHVlIG9mIGEga2V5d29yZC1vbmx5IGFyZ3VtZW50OiBgYGxhbWJkYSAqLAorICBhcmc9R0xPQkFMX05BTUU6IE5vbmVgYAorCistIElzc3VlICMxMjc5NzogQWRkZWQgY3VzdG9tIG9wZW5lciBwYXJhbWV0ZXIgdG8gYnVpbHRpbiBvcGVuKCkgYW5kCisgIEZpbGVJTy5vcGVuKCkuCisKKy0gSXNzdWUgIzEwNTE5OiBBdm9pZCB1bm5lY2Vzc2FyeSByZWN1cnNpdmUgZnVuY3Rpb24gY2FsbHMgaW4KKyAgc2V0b2JqZWN0LmMuCisKKy0gSXNzdWUgIzEwMzYzOiBEZWFsbG9jYXRlIGdsb2JhbCBsb2NrcyBpbiBQeV9GaW5hbGl6ZSgpLgorCistIElzc3VlICMxMzAxODogRml4IHJlZmVyZW5jZSBsZWFrcyBpbiBlcnJvciBwYXRocyBpbiBkaWN0b2JqZWN0LmMuCisgIFBhdGNoIGJ5IFN1bWFuIFNhaGEuCisKKy0gSXNzdWUgIzEzMjAxOiBEZWZpbmUgJz09JyBhbmQgJyE9JyB0byBjb21wYXJlIHJhbmdlIG9iamVjdHMgYmFzZWQgb24KKyAgdGhlIHNlcXVlbmNlIG9mIHZhbHVlcyB0aGV5IGRlZmluZSAoaW5zdGVhZCBvZiBjb21wYXJpbmcgYmFzZWQgb24KKyAgb2JqZWN0IGlkZW50aXR5KS4KKworLSBJc3N1ZSAjMTI5NDIzMjogSW4gYSBmZXcgY2FzZXMgaW52b2x2aW5nIG1ldGFjbGFzcyBpbmhlcml0YW5jZSwgdGhlCisgIGludGVycHJldGVyIHdvdWxkIHNvbWV0aW1lcyBpbnZva2UgdGhlIHdyb25nIG1ldGFjbGFzcyB3aGVuIGJ1aWxkaW5nIGEgbmV3CisgIGNsYXNzIG9iamVjdC4gVGhlc2UgY2FzZXMgbm93IGJlaGF2ZSBjb3JyZWN0bHkuIFBhdGNoIGJ5IERhbmllbCBVcmJhbi4KKworLSBJc3N1ZSAjMTI3NTM6IEFkZCBzdXBwb3J0IGZvciBVbmljb2RlIG5hbWUgYWxpYXNlcyBhbmQgbmFtZWQgc2VxdWVuY2VzLgorICBCb3RoIGBgdW5pY29kZWRhdGEubG9va3VwKClgYCBhbmQgJ1xOey4uLn0nIG5vdyByZXNvbHZlIGFsaWFzZXMsCisgIGFuZCBgYHVuaWNvZGVkYXRhLmxvb2t1cCgpYGAgcmVzb2x2ZXMgbmFtZWQgc2VxdWVuY2VzIHRvby4KKworLSBJc3N1ZSAjMTIxNzA6IFRoZSBjb3VudCgpLCBmaW5kKCksIHJmaW5kKCksIGluZGV4KCkgYW5kIHJpbmRleCgpIG1ldGhvZHMKKyAgb2YgYnl0ZXMgYW5kIGJ5dGVhcnJheSBvYmplY3RzIG5vdyBhY2NlcHQgYW4gaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDI1NQorICBhcyB0aGVpciBmaXJzdCBhcmd1bWVudC4gIFBhdGNoIGJ5IFBldHJpIExlaHRpbmVuLgorCistIElzc3VlICMxMjYwNDogVlRSQUNFIG1hY3JvIGV4cGFuZGVkIHRvIG5vLW9wIGluIF9zcmUuYyB0byBhdm9pZCBjb21waWxlcgorICB3YXJuaW5ncy4gUGF0Y2ggYnkgSm9zaCBUcmlwbGV0dCBhbmQgUGV0cmkgTGVodGluZW4uCisKKy0gSXNzdWUgIzEyMjgxOiBSZXdyaXRlIHRoZSBNQkNTIGNvZGVjIHRvIGhhbmRsZSBjb3JyZWN0bHkgcmVwbGFjZSBhbmQgaWdub3JlCisgIGVycm9yIGhhbmRsZXJzIG9uIGFsbCBXaW5kb3dzIHZlcnNpb25zLiBUaGUgTUJDUyBjb2RlYyBpcyBub3cgc3VwcG9ydGluZyBhbGwKKyAgZXJyb3IgaGFuZGxlcnMsIGluc3RlYWQgb2Ygb25seSByZXBsYWNlIHRvIGVuY29kZSBhbmQgaWdub3JlIHRvIGRlY29kZS4KKworLSBJc3N1ZSAjMTMxODg6IFdoZW4gY2FsbGVkIHdpdGhvdXQgYW4gZXhwbGljaXQgdHJhY2ViYWNrIGFyZ3VtZW50LAorICBnZW5lcmF0b3IudGhyb3coKSBub3cgZ2V0cyB0aGUgdHJhY2ViYWNrIGZyb20gdGhlIHBhc3NlZCBleGNlcHRpb24ncworICBgYF9fdHJhY2ViYWNrX19gYCBhdHRyaWJ1dGUuICBQYXRjaCBieSBQZXRyaSBMZWh0aW5lbi4KKworLSBJc3N1ZSAjMTMxNDY6IFdyaXRpbmcgYSBweWMgZmlsZSBpcyBub3cgYXRvbWljIHVuZGVyIFBPU0lYLgorCistIElzc3VlICM3ODMzOiBFeHRlbnNpb24gbW9kdWxlcyBidWlsdCB1c2luZyBkaXN0dXRpbHMgb24gV2luZG93cyB3aWxsIG5vCisgIGxvbmdlciBpbmNsdWRlIGEgIm1hbmlmZXN0IiB0byBwcmV2ZW50IHRoZW0gZmFpbGluZyBhdCBpbXBvcnQgdGltZSBpbiBzb21lCisgIGVtYmVkZGVkIHNpdHVhdGlvbnMuCisKKy0gUEVQIDMxNTEgLyBpc3N1ZSAjMTI1NTU6IHJld29ya2luZyB0aGUgT1MgYW5kIElPIGV4Y2VwdGlvbiBoaWVyYXJjaHkuCisKKy0gSXNzdWUgIzEzNTYwOiBBZGQgUHlVbmljb2RlX0RlY29kZUxvY2FsZSgpLCBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlQW5kU2l6ZSgpCisgIGFuZCBQeVVuaWNvZGVfRW5jb2RlTG9jYWxlKCkgZnVuY3Rpb25zIHRvIHRoZSBDIEFQSSB0byBkZWNvZGUvZW5jb2RlIGZyb20vdG8KKyAgdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nLgorCistIEFkZCBpbnRlcm5hbCBBUEkgZm9yIHN0YXRpYyBzdHJpbmdzIChfUHlfaWRlbnRpZmllciBldCBhbC4pLgorCistIElzc3VlICMxMzA2MzogdGhlIFdpbmRvd3MgZXJyb3IgRVJST1JfTk9fREFUQSAobnVtYmVyZWQgMjMyIGFuZCBkZXNjcmliZWQKKyAgYXMgIlRoZSBwaXBlIGlzIGJlaW5nIGNsb3NlZCIpIGlzIG5vdyBtYXBwZWQgdG8gUE9TSVggZXJybm8gRVBJUEUKKyAgKHByZXZpb3VzbHkgRUlOVkFMKS4KKworLSBJc3N1ZSAjMTI5MTE6IEZpeCBtZW1vcnkgY29uc3VtcHRpb24gd2hlbiBjYWxjdWxhdGluZyB0aGUgcmVwcigpIG9mIGh1Z2UKKyAgdHVwbGVzIG9yIGxpc3RzLgorCistIFBFUCAzOTM6IGZsZXhpYmxlIHN0cmluZyByZXByZXNlbnRhdGlvbi4gVGhhbmtzIHRvIFRvcnN0ZW4gQmVja2VyIGZvciB0aGUKKyAgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiwgYW5kIFZpY3RvciBTdGlubmVyIGZvciB2YXJpb3VzIGJ1ZyBmaXhlcy4KKworLSBJc3N1ZSAjMTQwODE6IFRoZSAnc2VwJyBhbmQgJ21heHNwbGl0JyBwYXJhbWV0ZXIgdG8gc3RyLnNwbGl0LCBieXRlcy5zcGxpdCwKKyAgYW5kIGJ5dGVhcnJheS5zcGxpdCBtYXkgbm93IGJlIHBhc3NlZCBhcyBrZXl3b3JkIGFyZ3VtZW50cy4KKworLSBJc3N1ZSAjMTMwMTI6IFRoZSAna2VlcGVuZHMnIHBhcmFtZXRlciB0byBzdHIuc3BsaXRsaW5lcyBtYXkgbm93IGJlIHBhc3NlZAorICBhcyBhIGtleXdvcmQgYXJndW1lbnQ6ICAibXlfc3RyaW5nLnNwbGl0bGluZXMoa2VlcGVuZHM9VHJ1ZSkiLiAgVGhlIHNhbWUKKyAgY2hhbmdlIGFsc28gYXBwbGllcyB0byBieXRlcy5zcGxpdGxpbmVzIGFuZCBieXRlYXJyYXkuc3BsaXRsaW5lcy4KKworLSBJc3N1ZSAjNzczMjogRG9uJ3Qgb3BlbiBhIGRpcmVjdG9yeSBhcyBhIGZpbGUgYW55bW9yZSB3aGlsZSBpbXBvcnRpbmcgYQorICBtb2R1bGUuIElnbm9yZSB0aGUgZGlyZWNvdHJ5IGlmIGl0cyBuYW1lIG1hdGNocyB0aGUgbW9kdWxlIG5hbWUgKGUuZy4KKyAgIl9faW5pdF9fLnB5IikgYW5kIHJhaXNlIGEgSW1wb3J0RXJyb3IgaW5zdGVhZC4KKworLSBJc3N1ZSAjMTMwMjE6IE1pc3NpbmcgZGVjcmVmIG9uIGFuIGVycm9yIHBhdGguICBUaGFua3MgdG8gU3VtYW4gU2FoYSBmb3IKKyAgZmluZGluZyB0aGUgYnVnIGFuZCBwcm92aWRpbmcgYSBwYXRjaC4KKworLSBJc3N1ZSAjMTI5NzM6IEZpeCBvdmVyZmxvdyBjaGVja3MgdGhhdCByZWxpZWQgb24gdW5kZWZpbmVkIGJlaGF2aW91ciBpbgorICBsaXN0X3JlcGVhdCAobGlzdG9iamVjdC5jKSBhbmQgaXNsaWNlX25leHQgKGl0ZXJ0b29sc21vZHVsZS5jKS4gIFRoZXNlIGJ1Z3MKKyAgY2F1c2VkIHRlc3QgZmFpbHVyZXMgd2l0aCByZWNlbnQgdmVyc2lvbnMgb2YgQ2xhbmcuCisKKy0gSXNzdWUgIzEyOTA0OiBvcy51dGltZSwgb3MuZnV0aW1lcywgb3MubHV0aW1lcywgYW5kIG9zLmZ1dGltZXNhdCBub3cgd3JpdGUKKyAgYXRpbWUgYW5kIG10aW1lIHdpdGggbmFub3NlY29uZCBwcmVjaXNpb24gb24gbW9kZXJuIFBPU0lYIHBsYXRmb3Jtcy4KKworLSBJc3N1ZSAjMTI4MDI6IHRoZSBXaW5kb3dzIGVycm9yIEVSUk9SX0RJUkVDVE9SWSAobnVtYmVyZWQgMjY3KSBpcyBub3cKKyAgbWFwcGVkIHRvIFBPU0lYIGVycm5vIEVOT1RESVIgKHByZXZpb3VzbHkgRUlOVkFMKS4KKworLSBJc3N1ZSAjOTIwMDogVGhlIHN0ci5pcyogbWV0aG9kcyBub3cgd29yayB3aXRoIHN0cmluZ3MgdGhhdCBjb250YWluIG5vbi1CTVAKKyAgY2hhcmFjdGVycyBldmVuIGluIG5hcnJvdyBVbmljb2RlIGJ1aWxkcy4KKworLSBJc3N1ZSAjMTI3OTE6IEJyZWFrIHJlZmVyZW5jZSBjeWNsZXMgZWFybHkgd2hlbiBhIGdlbmVyYXRvciBleGl0cyB3aXRoCisgIGFuIGV4Y2VwdGlvbi4KKworLSBJc3N1ZSAjMTI3NzM6IE1ha2UgX19kb2NfXyBtdXRhYmxlIG9uIHVzZXItZGVmaW5lZCBjbGFzc2VzLgorCistIElzc3VlICMxMjc2NjogUmFpc2UgYSBWYWx1ZUVycm9yIHdoZW4gY3JlYXRpbmcgYSBjbGFzcyB3aXRoIGEgY2xhc3MgdmFyaWFibGUKKyAgdGhhdCBjb25mbGljdHMgd2l0aCBhIG5hbWUgaW4gX19zbG90c19fLgorCistIElzc3VlICMxMjI2NjogRml4IHN0ci5jYXBpdGFsaXplKCkgdG8gY29ycmVjdGx5IHVwcGVyY2FzZS9sb3dlcmNhc2UKKyAgdGl0bGVjYXNlZCBhbmQgY2FzZWQgbm9uLWxldHRlciBjaGFyYWN0ZXJzLgorCistIElzc3VlICMxMjczMjogSW4gbmFycm93IHVuaWNvZGUgYnVpbGRzLCBhbGxvdyBVbmljb2RlIGlkZW50aWZpZXJzIHdoaWNoIGZhbGwKKyAgb3V0c2lkZSB0aGUgQk1QLgorCistIElzc3VlICMxMjU3NTogVmFsaWRhdGUgdXNlci1nZW5lcmF0ZWQgQVNUIGJlZm9yZSBpdCBpcyBjb21waWxlZC4KKworLSBNYWtlIHR5cGUoTm9uZSksIHR5cGUoRWxsaXBzaXMpLCBhbmQgdHlwZShOb3RJbXBsZW1lbnRlZCkgY2FsbGFibGUuIFRoZXkKKyAgcmV0dXJuIHRoZSByZXNwZWN0aXZlIHNpbmdsZXRvbiBpbnN0YW5jZXMuCisKKy0gRm9yYmlkIHN1bW1pbmcgYnl0ZXMgd2l0aCBzdW0oKS4KKworLSBWZXJpZnkgdGhlIHR5cGVzIG9mIEFTVCBzdHJpbmdzIGFuZCBpZGVudGlmaWVycyBwcm92aWRlZCBieSB0aGUgdXNlciBiZWZvcmUKKyAgY29tcGlsaW5nIHRoZW0uCisKKy0gSXNzdWUgIzEyNjQ3OiBUaGUgTm9uZSBvYmplY3Qgbm93IGhhcyBhIF9fYm9vbF9fKCkgbWV0aG9kIHRoYXQgcmV0dXJucyBGYWxzZS4KKyAgRm9ybWVybHksIGJvb2woTm9uZSkgcmV0dXJuZWQgRmFsc2Ugb25seSBiZWNhdXNlIG9mIHNwZWNpYWwgY2FzZSBsb2dpYworICBpbiBQeU9iamVjdF9Jc1RydWUoKS4KKworLSBJc3N1ZSAjMTI1Nzk6IHN0ci5mb3JtYXRfbWFwKCkgbm93IHJhaXNlcyBhIFZhbHVlRXJyb3IgaWYgdXNlZCBvbiBhCisgIGZvcm1hdCBzdHJpbmcgdGhhdCBjb250YWlucyBwb3NpdGlvbmFsIGZpZWxkcy4gSW5pdGlhbCBwYXRjaCBieQorICBKdWxpYW4gQmVybWFuLgorCistIElzc3VlICMxMDI3MTogQWxsb3cgd2FybmluZ3Muc2hvd3dhcm5pbmcoKSBiZSBhbnkgY2FsbGFibGUuCisKKy0gSXNzdWUgIzExNjI3OiBGaXggc2VnZmF1bHQgd2hlbiBfX25ld19fIG9uIGEgZXhjZXB0aW9uIHJldHVybnMgYQorICBub24tZXhjZXB0aW9uIGNsYXNzLgorCistIElzc3VlICMxMjE0OTogVXBkYXRlIHRoZSBtZXRob2QgY2FjaGUgYWZ0ZXIgYSB0eXBlJ3MgZGljdGlvbmFyeSBnZXRzCisgIGNsZWFyZWQgYnkgdGhlIGdhcmJhZ2UgY29sbGVjdG9yLiAgVGhpcyBmaXhlcyBhIHNlZ2ZhdWx0IHdoZW4gYW4gaW5zdGFuY2UKKyAgYW5kIGl0cyB0eXBlIGdldCBjYXVnaHQgaW4gYSByZWZlcmVuY2UgY3ljbGUsIGFuZCB0aGUgaW5zdGFuY2UncworICBkZWFsbG9jYXRvciBjYWxscyBvbmUgb2YgdGhlIG1ldGhvZHMgb24gdGhlIHR5cGUgKGUuZy4gd2hlbiBzdWJjbGFzc2luZworICBJT0Jhc2UpLiAgRGlhZ25vc2lzIGFuZCBwYXRjaCBieSBEYXZpZGUgUml6em8uCisKKy0gSXNzdWUgIzk2MTEsICM5MDE1OiBGaWxlSU8ucmVhZCgpIGNsYW1wcyB0aGUgbGVuZ3RoIHRvIElOVF9NQVggb24gV2luZG93cy4KKworLSBJc3N1ZSAjOTY0MjogVW5pZm9ybWl6ZSB0aGUgdGVzdHMgb24gdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgbWJjcyBjb2RlYywgYWRkCisgIGEgbmV3IEhBVkVfTUJDUyBkZWZpbmUuCisKKy0gSXNzdWUgIzk2NDI6IEZpeCBmaWxlc3lzdGVtIGVuY29kaW5nIGluaXRpYWxpemF0aW9uOiB1c2UgdGhlIEFOU0kgY29kZSBwYWdlCisgIG9uIFdpbmRvd3MgaWYgdGhlIG1iY3MgY29kZWMgaXMgbm90IGF2YWlsYWJsZSwgYW5kIGZhaWwgd2l0aCBhIGZhdGFsIGVycm9yIGlmCisgIHdlIGNhbm5vdCBnZXQgdGhlIGxvY2FsZSBlbmNvZGluZyAoaWYgbmxfbGFuZ2luZm8oQ09ERVNFVCkgaXMgbm90IGF2YWlsYWJsZSkKKyAgaW5zdGVhZCBvZiB1c2luZyBVVEYtOC4KKworLSBXaGVuIGEgZ2VuZXJhdG9yIHlpZWxkcywgZG8gbm90IHJldGFpbiB0aGUgY2FsbGVyJ3MgZXhjZXB0aW9uIHN0YXRlIG9uIHRoZQorICBnZW5lcmF0b3IuCisKKy0gSXNzdWUgIzEyNDc1OiBQcmV2ZW50IGdlbmVyYXRvcnMgZnJvbSBsZWFraW5nIHRoZWlyIGV4Y2VwdGlvbiBzdGF0ZSBpbnRvIHRoZQorICBjYWxsZXIncyBmcmFtZSBhcyB0aGV5IHJldHVybiBmb3IgdGhlIGxhc3QgdGltZS4KKworLSBJc3N1ZSAjMTIyOTE6IFlvdSBjYW4gbm93IGxvYWQgbXVsdGlwbGUgbWFyc2hhbGxlZCBvYmplY3RzIGZyb20gYSBzdHJlYW0sCisgIHdpdGggb3RoZXIgZGF0YSBpbnRlcmxlYXZlZCBiZXR3ZWVuIG1hcnNoYWxsZWQgb2JqZWN0cy4KKworLSBJc3N1ZSAjMTIzNTY6IFdoZW4gcmVxdWlyZWQgcG9zaXRpb25hbCBvciBrZXl3b3JkLW9ubHkgYXJndW1lbnRzIGFyZSBub3QKKyAgZ2l2ZW4sIHByb2R1Y2UgYSBpbmZvcm1hdGl2ZSBlcnJvciBtZXNzYWdlIHdoaWNoIGluY2x1ZGVzIHRoZSBuYW1lKHMpIG9mIHRoZQorICBtaXNzaW5nIGFyZ3VtZW50cy4KKworLSBJc3N1ZSAjMTIzNzA6IEZpeCBzdXBlciB3aXRoIG5vIGFyZ3VtZW50cyB3aGVuIF9fY2xhc3NfXyBpcyBvdmVycmlkZW4gaW4gdGhlCisgIGNsYXNzIGJvZHkuCisKKy0gSXNzdWUgIzEyMDg0OiBvcy5zdGF0IG9uIFdpbmRvd3Mgbm93IHdvcmtzIHByb3Blcmx5IHdpdGggcmVsYXRpdmUgc3ltYm9saWMKKyAgbGlua3Mgd2hlbiBjYWxsZWQgZnJvbSBhbnkgZGlyZWN0b3J5LgorCistIExvb3NlbiB0eXBlIHJlc3RyaWN0aW9ucyBvbiB0aGUgX19kaXJfXyBtZXRob2QuIF9fZGlyX18gY2FuIG5vdyByZXR1cm4gYW55CisgIHNlcXVlbmNlLCB3aGljaCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIGxpc3QgYW5kIHNvcnRlZCBieSBkaXIoKS4KKworLSBJc3N1ZSAjMTIyNjU6IE1ha2UgZXJyb3IgbWVzc2FnZXMgcHJvZHVjZWQgYnkgcGFzc2luZyBhbiBpbnZhbGlkIHNldCBvZgorICBhcmd1bWVudHMgdG8gYSBmdW5jdGlvbiBtb3JlIGluZm9ybWF0aXZlLgorCistIElzc3VlICMxMjIyNTogU3RpbGwgYWxsb3cgUHl0aG9uIHRvIGJ1aWxkIGlmIFB5dGhvbiBpcyBub3QgaW4gaXRzIGhnIHJlcG8gb3IKKyAgbWVyY3VyaWFsIGlzIG5vdCBpbnN0YWxsZWQuCisKKy0gSXNzdWUgIzExOTU6IG15X2ZnZXRzKCkgbm93IGFsd2F5cyBjbGVhcnMgZXJyb3JzIGJlZm9yZSBjYWxsaW5nIGZnZXRzKCkuIEZpeAorICB0aGUgZm9sbG93aW5nIGNhc2U6IHN5cy5zdGRpbi5yZWFkKCkgc3RvcHBlZCB3aXRoIENUUkwrZCAoZW5kIG9mIGZpbGUpLAorICByYXdfaW5wdXQoKSBpbnRlcnJ1cHRlZCBieSBDVFJMK2MuCisKKy0gSXNzdWUgIzEyMjE2OiBBbGxvdyB1bmV4cGVjdGVkIEVPRiBlcnJvcnMgdG8gaGFwcGVuIG9uIGFueSBsaW5lIG9mIHRoZSBmaWxlLgorCistIElzc3VlICMxMjE5OTogVGhlIFRyeUV4Y2VwdCBhbmQgVHJ5RmluYWxseSBhbmQgQVNUIG5vZGVzIGhhdmUgYmVlbiB1bmlmaWVkCisgIGludG8gYSBUcnkgbm9kZS4KKworLSBJc3N1ZSAjOTY3MDogSW5jcmVhc2UgdGhlIGRlZmF1bHQgc3RhY2sgc2l6ZSBmb3Igc2Vjb25kYXJ5IHRocmVhZHMgb24KKyAgTWFjIE9TIFggYW5kIEZyZWVCU0QgdG8gcmVkdWNlIHRoZSBjaGFuY2VzIG9mIGEgY3Jhc2ggaW5zdGVhZCBvZiBhCisgICJtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aCIgUnVudGltZUVycm9yIGV4Y2VwdGlvbi4KKyAgKHBhdGNoIGJ5IFJvbmFsZCBPdXNzb3JlbikKKworLSBJc3N1ZSAjMTIxMDY6IFRoZSB1c2Ugb2YgdGhlIG11bHRpcGxlLXdpdGggc2hvcnRoYW5kIHN5bnRheCBpcyBub3cgcmVmbGVjdGVkCisgIGluIHRoZSBBU1QuCisKKy0gSXNzdWUgIzEyMTkwOiBUcnkgdG8gdXNlIHRoZSBzYW1lIGZpbGVuYW1lIG9iamVjdCB3aGVuIGNvbXBpbGluZyB1bm1hcnNoYWxsaW5nCisgIGEgY29kZSBvYmplY3RzIGluIHRoZSBzYW1lIGZpbGUuCisKKy0gSXNzdWUgIzEyMTY2OiBNb3ZlIGltcGxlbWVudGF0aW9ucyBvZiBkaXIoKSBzcGVjaWFsaXplZCBmb3IgdmFyaW91cyB0eXBlcyBpbnRvCisgIHRoZSBfX2Rpcl9fKCkgbWV0aG9kcyBvZiB0aG9zZSB0eXBlcy4KKworLSBJc3N1ZSAjNTcxNTogSW4gc29ja2V0c2VydmVyLCBjbG9zZSB0aGUgc2VydmVyIHNvY2tldCBpbiB0aGUgY2hpbGQgcHJvY2Vzcy4KKworLSBDb3JyZWN0IGxvb2t1cCBvZiBfX2Rpcl9fIG9uIG9iamVjdHMuIEFtb25nIG90aGVyIHRoaW5ncywgdGhpcyBjYXVzZXMgZXJyb3JzCisgIGJlc2lkZXMgQXR0cmlidXRlRXJyb3IgZm91bmQgb24gbG9va3VwIHRvIGJlIHByb3BhZ2F0ZWQuCisKKy0gSXNzdWUgIzEyMDYwOiBVc2Ugc2lnX2F0b21pY190IHR5cGUgYW5kIHZvbGF0aWxlIGtleXdvcmQgaW4gdGhlIHNpZ25hbAorICBtb2R1bGUuIFBhdGNoIHdyaXR0ZW4gYnkgQ2hhcmxlcy1GcmFuw6dvaXMgTmF0YWxpLgorCistIElzc3VlICMxNzQ2NjU2OiBBZGRlZCB0aGUgaWZfbmFtZWluZGV4LCBpZl9pbmRleHRvbmFtZSwgaWZfbmFtZXRvaW5kZXgKKyAgbWV0aG9kcyB0byB0aGUgc29ja2V0IG1vZHVsZS4KKworLSBJc3N1ZSAjMTIwNDQ6IEZpeGVkIHN1YnByb2Nlc3MuUG9wZW4gd2hlbiB1c2VkIGFzIGEgY29udGV4dCBtYW5hZ2VyIHRvCisgIHdhaXQgZm9yIHRoZSBwcm9jZXNzIHRvIGVuZCB3aGVuIGV4aXRpbmcgdGhlIGNvbnRleHQgdG8gYXZvaWQgdW5pbnRlbnRpb25hbGx5CisgIGxlYXZpbmcgem9tYmllIHByb2Nlc3NlcyBhcm91bmQuCisKKy0gSXNzdWUgIzExOTU6IEZpeCBpbnB1dCgpIGlmIGl0IGlzIGludGVycnVwdGVkIGJ5IENUUkwrZCBhbmQgdGhlbiBDVFJMK2MsCisgIGNsZWFyIHRoZSBlbmQtb2YtZmlsZSBpbmRpY2F0b3IgYWZ0ZXIgQ1RSTCtkLgorCistIElzc3VlICMxODU2OiBBdm9pZCBjcmFzaGVzIGFuZCBsb2NrdXBzIHdoZW4gZGFlbW9uIHRocmVhZHMgcnVuIHdoaWxlIHRoZQorICBpbnRlcnByZXRlciBpcyBzaHV0dGluZyBkb3duOyBpbnN0ZWFkLCB0aGVzZSB0aHJlYWRzIGFyZSBub3cga2lsbGVkIHdoZW4KKyAgdGhleSB0cnkgdG8gdGFrZSB0aGUgR0lMLgorCistIElzc3VlICM5NzU2OiBXaGVuIGNhbGxpbmcgYSBtZXRob2QgZGVzY3JpcHRvciBvciBhIHNsb3Qgd3JhcHBlciBkZXNjcmlwdG9yLAorICB0aGUgY2hlY2sgb2YgdGhlIG9iamVjdCB0eXBlIGRvZXNuJ3QgcmVhZCB0aGUgX19jbGFzc19fIGF0dHJpYnV0ZSBhbnltb3JlLgorICBGaXggYSBjcmFzaCBpZiBhIGNsYXNzIG92ZXJyaWRlIGl0cyBfX2NsYXNzX18gYXR0cmlidXRlIChlLmcuIGEgcHJveHkgb2YgdGhlCisgIHN0ciB0eXBlKS4gUGF0Y2ggd3JpdHRlbiBieSBBbmRyZWFzIFN0w7xocmsuCisKKy0gSXNzdWUgIzEwNTE3OiBBZnRlciBmb3JrKCksIHJlaW5pdGlhbGl6ZSB0aGUgVExTIHVzZWQgYnkgdGhlIFB5R0lMU3RhdGVfKgorICBBUElzLCB0byBhdm9pZCBhIGNyYXNoIHdpdGggdGhlIHB0aHJlYWQgaW1wbGVtZW50YXRpb24gaW4gUkhFTCA1LiAgUGF0Y2gKKyAgYnkgQ2hhcmxlcy1GcmFuw6dvaXMgTmF0YWxpLgorCistIElzc3VlICMxMDkxNDogSW5pdGlhbGl6ZSBjb3JyZWN0bHkgdGhlIGZpbGVzeXN0ZW0gY29kZWMgd2hlbiBjcmVhdGluZyBhIG5ldworICBzdWJpbnRlcnByZXRlciB0byBmaXggYSBib290c3RyYXAgaXNzdWUgd2l0aCBjb2RlY3MgaW1wbGVtZW50ZWQgaW4gUHl0aG9uLCBhcworICB0aGUgSVNPLTg4NTktMTUgY29kZWMuCisKKy0gSXNzdWUgIzExOTE4OiBPUy8yIGFuZCBWTVMgYXJlIG5vIG1vcmUgc3VwcG9ydGVkIGJlY2F1c2Ugb2YgdGhlIGxhY2sgb2YKKyAgbWFpbnRhaW5lci4KKworLSBJc3N1ZSAjNjc4MDogZml4IHN0YXJ0cy9lbmRzd2l0aCBlcnJvciBtZXNzYWdlIHRvIG1lbnRpb24gdGhhdCB0dXBsZXMgYXJlCisgIGFjY2VwdGVkIHRvby4KKworLSBJc3N1ZSAjNTA1NzogZml4IGEgYnVnIGluIHRoZSBwZWVwaG9sZXIgdGhhdCBsZWQgdG8gbm9uLXBvcnRhYmxlIHB5YyBmaWxlcworICBiZXR3ZWVuIG5hcnJvdyBhbmQgd2lkZSBidWlsZHMgd2hpbGUgb3B0aW1pemluZyBCSU5BUllfU1VCU0NSIG9uIG5vbi1CTVAKKyAgY2hhcnMgKGUuZy4gIlxVMDAwMTIzNDUiWzBdKS4KKworLSBJc3N1ZSAjMTE4NDU6IEZpeCB0eXBvIGluIHJhbmdlb2JqZWN0LmMgdGhhdCBjYXVzZWQgYSBjcmFzaCBpbgorICBjb21wdXRlX3NsaWNlX2luZGljZXMuICBQYXRjaCBieSBEYW5pZWwgVXJiYW4uCisKKy0gSXNzdWUgIzU2NzM6IEFkZGVkIGEgYHRpbWVvdXRgIGtleXdvcmQgYXJndW1lbnQgdG8gc3VicHJvY2Vzcy5Qb3Blbi53YWl0LAorICBzdWJwcm9jZXNzLlBvcGVuLmNvbW11bmljYXRlZCwgc3VicHJvY2Vzcy5jYWxsLCBzdWJwcm9jZXNzLmNoZWNrX2NhbGwsIGFuZAorICBzdWJwcm9jZXNzLmNoZWNrX291dHB1dC4gIElmIHRoZSBibG9ja2luZyBvcGVyYXRpb24gdGFrZXMgbW9yZSB0aGFuIGB0aW1lb3V0YAorICBzZWNvbmRzLCB0aGUgYHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWRgIGV4Y2VwdGlvbiBpcyByYWlzZWQuCisKKy0gSXNzdWUgIzExNjUwOiBQeU9TX1N0ZGlvUmVhZGxpbmUoKSByZXRyaWVzIGZnZXRzKCkgaWYgaXQgd2FzIGludGVycnVwdGVkCisgIChFSU5UUiksIGZvciBleGFtcGxlIGlmIHRoZSBwcm9ncmFtIGlzIHN0b3BwZWQgd2l0aCBDVFJMK3ogb24gTWFjIE9TIFguIFBhdGNoCisgIHdyaXR0ZW4gYnkgQ2hhcmxlcy1GcmFuY29pcyBOYXRhbGkuCisKKy0gSXNzdWUgIzkzMTk6IEluY2x1ZGUgdGhlIGZpbGVuYW1lIGluICJOb24tVVRGOCBjb2RlIC4uLiIgc3ludGF4IGVycm9yLgorCistIElzc3VlICMxMDc4NTogU3RvcmUgdGhlIGZpbGVuYW1lIGFzIFVuaWNvZGUgaW4gdGhlIFB5dGhvbiBwYXJzZXIuCisKKy0gSXNzdWUgIzExNjE5OiBfUHlJbXBvcnRfTG9hZER5bmFtaWNNb2R1bGUoKSBkb2Vzbid0IGVuY29kZSB0aGUgcGF0aCB0byBieXRlcworICBvbiBXaW5kb3dzLgorCistIElzc3VlICMxMDk5ODogUmVtb3ZlIG1lbnRpb25zIG9mIC1RLCBzeXMuZmxhZ3MuZGl2aXNpb25fd2FybmluZyBhbmQKKyAgUHlfRGl2aXNpb25XYXJuaW5nRmxhZyBsZWZ0IG92ZXIgZnJvbSBQeXRob24gMi4KKworLSBJc3N1ZSAjMTEyNDQ6IFJlbW92ZSBhbiB1bm5lY2Vzc2FyeSBwZWVwaG9sZXIgY2hlY2sgdGhhdCB3YXMgcHJldmVudGluZworICBuZWdhdGl2ZSB6ZXJvcyBmcm9tIGJlaW5nIGNvbnN0YW50LWZvbGRlZCBwcm9wZXJseS4KKworLSBJc3N1ZSAjMTEzOTU6IGlvLkZpbGVJTygpLndyaXRlKCkgY2xhbXBzIHRoZSBkYXRhIGxlbmd0aCB0byAzMiw3NjcgYnl0ZXMgb24KKyAgV2luZG93cyBpZiB0aGUgZmlsZSBpcyBhIFRUWSB0byB3b3JrYXJvdW5kIGEgV2luZG93cyBidWcuIFRoZSBXaW5kb3dzIGNvbnNvbGUKKyAgcmV0dXJucyBhbiBlcnJvciAoMTI6IG5vdCBlbm91Z2ggc3BhY2UgZXJyb3IpIG9uIHdyaXRpbmcgaW50byBzdGRvdXQgaWYKKyAgc3Rkb3V0IG1vZGUgaXMgYmluYXJ5IGFuZCB0aGUgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiA2NiwwMDAgYnl0ZXMgKG9yIGxlc3MsCisgIGRlcGVuZGluZyBvbiBoZWFwIHVzYWdlKS4KKworLSBJc3N1ZSAjMTEzMjA6IGZpeCBib2d1cyBtZW1vcnkgbWFuYWdlbWVudCBpbiBNb2R1bGVzL2dldHBhdGguYywgbGVhZGluZyB0bworICBhIHBvc3NpYmxlIGNyYXNoIHdoZW4gY2FsbGluZyBQeV9TZXRQYXRoKCkuCisKKy0gSXNzdWUgIzExNDMyOiBBIGJ1ZyB3YXMgaW50cm9kdWNlZCBpbiBzdWJwcm9jZXNzLlBvcGVuIG9uIHBvc2l4IHN5c3RlbXMgd2l0aAorICAzLjIuMCB3aGVyZSB0aGUgc3Rkb3V0IG9yIHN0ZGVyciBmaWxlIGRlc2NyaXB0b3IgYmVpbmcgdGhlIHNhbWUgYXMgdGhlIHN0ZGluCisgIGZpbGUgZGVzY3JpcHRvciB3b3VsZCByYWlzZSBhbiBleGNlcHRpb24uIHdlYmJyb3dzZXIub3BlbiB3b3VsZCBmYWlsLiBmaXhlZC4KKworLSBJc3N1ZSAjOTg1NjogQ2hhbmdlIG9iamVjdC5fX2Zvcm1hdF9fIHdpdGggYSBub24tZW1wdHkgZm9ybWF0IHN0cmluZworICB0byBiZSBhIERlcHJlY2F0aW9uV2FybmluZy4gSW4gMy4yIGl0IHdhcyBhIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcuCisgIEluIDMuNCBpdCB3aWxsIGJlIGEgVHlwZUVycm9yLgorCistIElzc3VlICMxMTI0NDogVGhlIHBlZXBob2xlIG9wdGltaXplciBpcyBub3cgYWJsZSB0byBjb25zdGFudC1mb2xkCisgIGFyYml0cmFyaWx5IGNvbXBsZXggZXhwcmVzc2lvbnMuICBUaGlzIGFsc28gZml4ZXMgYSAzLjIgcmVncmVzc2lvbiB3aGVyZQorICBvcGVyYXRpb25zIGludm9sdmluZyBuZWdhdGl2ZSBudW1iZXJzIHdlcmUgbm90IGNvbnN0YW50LWZvbGRlZC4KKworLSBJc3N1ZSAjMTE0NTA6IERvbid0IHRydW5jYXRlIGhnIHZlcnNpb24gaW5mbyBpbiBQeV9HZXRCdWlsZEluZm8oKSB3aGVuCisgIHRoZXJlIGFyZSBtYW55IHRhZ3MgKGUuZy4gd2hlbiB1c2luZyBtcSkuICBQYXRjaCBieSBOYWRlZW0gVmF3ZGEuCisKKy0gSXNzdWUgIzExMzM1OiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIGxpc3Quc29ydCB3aGVuIHRoZSBrZXkgZnVuY3Rpb24KKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbi4KKworLSBJc3N1ZSAjODkyMzogV2hlbiBhIHN0cmluZyBpcyBlbmNvZGVkIHRvIFVURi04IGluIHN0cmljdCBtb2RlLCB0aGUgcmVzdWx0IGlzCisgIGNhY2hlZCBpbnRvIHRoZSBvYmplY3QuIEV4YW1wbGVzOiBzdHIuZW5jb2RlKCksIHN0ci5lbmNvZGUoJ3V0Zi04JyksCisgIFB5VW5pY29kZV9Bc1VURjhTdHJpbmcoKSBhbmQgUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZyh1bmljb2RlLCAidXRmLTgiLAorICBOVUxMKS4KKworLSBJc3N1ZSAjMTA4MzE6IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCkgc3VwcG9ydHMgJWxpLCAlbGxpIGFuZCAlemkgZm9ybWF0cy4KKworLSBJc3N1ZSAjMTA4Mjk6IFJlZmFjdG9yIFB5VW5pY29kZV9Gcm9tRm9ybWF0KCksIHVzZSB0aGUgc2FtZSBmdW5jdGlvbiB0byBwYXJzZQorICB0aGUgZm9ybWF0IHN0cmluZyBpbiB0aGUgMyBzdGVwcywgZml4IGNyYXNocyBvbiBpbnZhbGlkIGZvcm1hdCBzdHJpbmdzLgorCistIElzc3VlICMxMzAwNzogd2hpY2hkYiBzaG91bGQgcmVjb2duaXplIGdkYm0gMS45IG1hZ2ljIG51bWJlcnMuCisKKy0gSXNzdWUgIzExMjQ2OiBGaXggUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVWIikgdG8gZGVjb2RlIHRoZSBieXRlIHN0cmluZyBmcm9tCisgIFVURi04ICh3aXRoIHJlcGxhY2UgZXJyb3IgaGFuZGxlcikgaW5zdGVhZCBvZiBJU08tODg1OS0xIChpbiBzdHJpY3QgbW9kZSkuCisgIFBhdGNoIHdyaXR0ZW4gYnkgUmF5IEFsbGVuLgorCistIElzc3VlICMxMTI4NjogUmFpc2UgYSBWYWx1ZUVycm9yIGZyb20gY2FsbGluZyBQeU1lbW9yeVZpZXdfRnJvbUJ1ZmZlciB3aXRoCisgIGEgYnVmZmVyIHN0cnVjdCBoYXZpbmcgYSBOVUxMIGRhdGEgcG9pbnRlci4KKworLSBJc3N1ZSAjMTEyNzI6IE9uIFdpbmRvd3MsIGlucHV0KCkgc3RyaXBzICdccicgKGFuZCBub3Qgb25seSAnXG4nKSwgYW5kCisgIHN5cy5zdGRpbiB1c2VzIHVuaXZlcnNhbCBuZXdsaW5lIChyZXBsYWNlICdcclxuJyBieSAnXG4nKS4KKworLSBJc3N1ZSAjMTE4Mjg6IHN0YXJ0c3dpdGggYW5kIGVuZHN3aXRoIG5vdyBhY2NlcHQgTm9uZSBhcyBzbGljZSBpbmRleC4KKyAgUGF0Y2ggYnkgVG9yc3RlbiBCZWNrZXIuCisKKy0gSXNzdWUgIzEwODMwOiBGaXggUHlVbmljb2RlX0Zyb21Gb3JtYXRWKCIlYyIpIGZvciBub24tQk1QIGNoYXJhY3RlcnMgb24KKyAgbmFycm93IGJ1aWxkLgorCistIElzc3VlICMxMTE2ODogUmVtb3ZlIGZpbGVuYW1lIGRlYnVnIHZhcmlhYmxlIGZyb20gUHlFdmFsX0V2YWxGcmFtZUV4KCkuCisgIEl0IGVuY29kZWQgdGhlIFVuaWNvZGUgZmlsZW5hbWUgdG8gVVRGLTgsIGJ1dCB0aGUgZW5jb2RpbmcgZmFpbHMgb24KKyAgdW5kZWNvZGFibGUgZmlsZW5hbWUgKG9uIHN1cnJvZ2F0ZSBjaGFyYWN0ZXJzKSB3aGljaCByYWlzZXMgYW4gdW5leHBlY3RlZAorICBVbmljb2RlRW5jb2RlRXJyb3Igb24gcmVjdXJzaW9uIGxpbWl0LgorCistIElzc3VlICMxMTE4NzogUmVtb3ZlIGJvb3RzdHJhcCBjb2RlICh1c2UgQVNDSUkpIG9mCisgIFB5VW5pY29kZV9Bc0VuY29kZWRTdHJpbmcoKSwgaXQgd2FzIHJlcGxhY2VkIGJ5IGEgYmV0dGVyIGZhbGxiYWNrICh1c2UgdGhlCisgIGxvY2FsZSBlbmNvZGluZykgaW4gUHlVbmljb2RlX0VuY29kZUZTRGVmYXVsdCgpLgorCistIENoZWNrIGZvciBOVUxMIHJlc3VsdCBpbiBQeVR5cGVfRnJvbVNwZWMuCisKKy0gSXNzdWUgIzEwNTE2OiBOZXcgY29weSgpIGFuZCBjbGVhcigpIG1ldGhvZHMgZm9yIGxpc3RzIGFuZCBieXRlYXJyYXlzLgorCistIElzc3VlICMxMTM4NjogYnl0ZWFycmF5LnBvcCgpIG5vdyB0aHJvd3MgSW5kZXhFcnJvciB3aGVuIHRoZSBieXRlYXJyYXkgaXMKKyAgZW1wdHksIGluc3RlYWQgb2YgT3ZlcmZsb3dFcnJvci4KKworLSBJc3N1ZSAjMTIzODA6IFRoZSByanVzdCwgbGp1c3QgYW5kIGNlbnRlciBtZXRob2RzIG9mIGJ5dGVzIGFuZCBieXRlYXJyYXkKKyAgbm93IGFjY2VwdCBhIGJ5dGVhcnJheSBhcmd1bWVudC4KKworTGlicmFyeQorLS0tLS0tLQorCistIElzc3VlICMxNDE5NTogQW4gaXNzdWUgdGhhdCBjYXVzZWQgd2Vha3JlZi5XZWFrU2V0IGluc3RhbmNlcyB0byBpbmNvcnJlY3RseQorICByZXR1cm4gVHJ1ZSBmb3IgYSBXZWFrU2V0IGluc3RhbmNlICdhJyBpbiBib3RoICdhIDwgYScgYW5kICdhID4gYScgaGFzIGJlZW4KKyAgZml4ZWQuCisKKy0gSXNzdWUgIzE0MTY2OiBQaWNrbGVyIG9iamVjdHMgbm93IGhhdmUgYW4gb3B0aW9uYWwgYGBkaXNwYXRjaF90YWJsZWBgCisgIGF0dHJpYnV0ZSB3aGljaCBhbGxvd3MgdG8gc2V0IGN1c3RvbSBwZXItcGlja2xlciByZWR1Y3Rpb24gZnVuY3Rpb25zLgorICBQYXRjaCBieSBzYnQuCisKKy0gSXNzdWUgIzE0MTc3OiBtYXJzaGFsLmxvYWRzKCkgbm93IHJhaXNlcyBUeXBlRXJyb3Igd2hlbiBnaXZlbiBhbiB1bmljb2RlCisgIHN0cmluZy4gIFBhdGNoIGJ5IEd1aWxoZXJtZSBHb27Dp2FsdmVzLgorCistIElzc3VlICMxMzU1MDogUmVtb3ZlIHRoZSBkZWJ1ZyBtYWNoaW5lcnkgZnJvbSB0aGUgdGhyZWFkaW5nIG1vZHVsZTogcmVtb3ZlCisgIHZlcmJvc2UgYXJndW1lbnRzIGZyb20gYWxsIHRocmVhZGluZyBjbGFzc2VzIGFuZCBmdW5jdGlvbnMuCisKKy0gSXNzdWUgIzE0MTU5OiBGaXggdGhlIGxlbigpIG9mIHdlYWsgY29udGFpbmVycyAoV2Vha1NldCwgV2Vha0tleURpY3Rpb25hcnksCisgIFdlYWtWYWx1ZURpY3Rpb25hcnkpIHRvIHJldHVybiBhIGJldHRlciBhcHByb3hpbWF0aW9uIHdoZW4gc29tZSBvYmplY3RzCisgIGFyZSBkZWFkIG9yIGR5aW5nLiAgTW9yZW92ZXIsIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBub3cgTygxKSByYXRoZXIgdGhhbgorICBPKG4pLgorCistIElzc3VlICMxMzEyNTogU2lsZW5jZSBzcHVyaW91cyB0ZXN0X2xpYjJ0bzMgb3V0cHV0IHdoZW4gaW4gbm9uLXZlcmJvc2UgbW9kZS4KKyAgUGF0Y2ggYnkgTWlraGFpbCBOb3Zpa292LgorCistIElzc3VlICMxMTg0MTogRml4IGNvbXBhcmlzb24gYnVnIHdpdGggJ3JjJyB2ZXJzaW9ucyBpbiBwYWNrYWdpbmcudmVyc2lvbi4KKyAgUGF0Y2ggYnkgRmlsaXAgR3J1c3pjennFhHNraS4KKworLSBJc3N1ZSAjMTM0NDc6IEFkZCBhIHRlc3QgZmlsZSB0byBob3N0IHJlZ3Jlc3Npb24gdGVzdHMgZm9yIGJ1Z3MgaW4gdGhlCisgIHNjcmlwdHMgZm91bmQgaW4gdGhlIFRvb2xzIGRpcmVjdG9yeS4KKworLSBJc3N1ZSAjNjg4NDogRml4IGxvbmctc3RhbmRpbmcgYnVncyB3aXRoIE1BTklGRVNULmluIHBhcnNpbmcgaW4gZGlzdHV0aWxzCisgIG9uIFdpbmRvd3MuICBBbHNvIGZpeGVkIGluIHBhY2thZ2luZy4KKworLSBJc3N1ZSAjODAzMzogc3FsaXRlMzogRml4IDY0LWJpdCBpbnRlZ2VyIGhhbmRsaW5nIGluIHVzZXIgZnVuY3Rpb25zCisgIG9uIDMyLWJpdCBhcmNoaXRlY3R1cmVzLiBJbml0aWFsIHBhdGNoIGJ5IFBoaWxpcHBlIERldmFsa2VuZWVyLgorCistIEhUTUxQYXJzZXIgaXMgbm93IGFibGUgdG8gaGFuZGxlIHNsYXNoZXMgaW4gdGhlIHN0YXJ0IHRhZy4KKworLSBJc3N1ZSAjMTM2NDE6IERlY29kaW5nIGZ1bmN0aW9ucyBpbiB0aGUgYmFzZTY0IG1vZHVsZSBub3cgYWNjZXB0IEFTQ0lJLW9ubHkKKyAgdW5pY29kZSBzdHJpbmdzLiAgUGF0Y2ggYnkgQ2F0YWxpbiBJYWNvYi4KKworLSBJc3N1ZSAjMTQwNDM6IFNwZWVkIHVwIGltcG9ydGxpYidzIF9GaWxlRmluZGVyIGJ5IGF0IGxlYXN0IDh4LCBhbmQgYWRkIGEKKyAgbmV3IGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpIGZ1bmN0aW9uLgorCistIElzc3VlICMxNDAwMTogQ1ZFLTIwMTItMDg0NTogeG1scnBjOiBGaXggYW4gZW5kbGVzcyBsb29wIGluCisgIFNpbXBsZVhNTFJQQ1NlcnZlciB1cG9uIG1hbGZvcm1lZCBQT1NUIHJlcXVlc3QuCisKKy0gSXNzdWUgIzEzOTYxOiBNb3ZlIGltcG9ydGxpYiBvdmVyIHRvIHVzaW5nIG9zLnJlcGxhY2UoKSBmb3IgYXRvbWljIHJlbmFtaW5nLgorCistIERvIGF3YXkgd2l0aCBhbWJpZ3VvdXMgbGV2ZWwgdmFsdWVzIChhcyBzdWdnZXN0ZWQgYnkgUEVQIDMyOCkgaW4KKyAgaW1wb3J0bGliLl9faW1wb3J0X18oKSBieSByYWlzaW5nIFZhbHVlRXJyb3Igd2hlbiBsZXZlbCA8IDAuCisKKy0gSXNzdWUgIzI0ODk6IHB0eS5zcGF3biBjb3VsZCBjb25zdW1lIDEwMCUgY3B1IHdoZW4gaXQgZW5jb3VudGVyZWQgYW4gRU9GLgorCistIElzc3VlICMxMzAxNDogRml4IGEgcG9zc2libGUgcmVmZXJlbmNlIGxlYWsgaW4gU1NMU29ja2V0LmdldHBlZXJjZXJ0KCkuCisKKy0gSXNzdWUgIzEzNzc3OiBBZGQgUEZfU1lTVEVNIHNvY2tldHMgb24gT1MgWC4KKyAgUGF0Y2ggYnkgTWljaGFlbCBHb2RlcmJhdWVyLgorCistIElzc3VlICMxMzAxNTogRml4IGEgcG9zc2libGUgcmVmZXJlbmNlIGxlYWsgaW4gZGVmYXVsdGRpY3QuX19yZXByX18uCisgIFBhdGNoIGJ5IFN1bWFuIFNhaGEuCisKKy0gSXNzdWUgIzEzMjYxMTM6IGRpc3R1dGlscycgYW5kIHBhY2thZ2luZydzIGJ1aWxkX2V4dCBjb21tYW5kcyBvcHRpb24gbm93CisgIGNvcnJlY3RseSBwYXJzZXMgbXVsdGlwbGUgdmFsdWVzIChzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZSBvciBjb21tYXMpIGdpdmVuCisgIHRvIHRoZWlyIC0tbGlicmFyaWVzIG9wdGlvbi4KKworLSBJc3N1ZSAjMTAyODc6IG5udHBsaWIgbm93IHF1ZXJpZXMgdGhlIHNlcnZlcidzIENBUEFCSUxJVElFUyBmaXJzdCBiZWZvcmUKKyAgc2VuZGluZyBNT0RFIFJFQURFUiwgYW5kIG9ubHkgc2VuZHMgaXQgaWYgbm90IGFscmVhZHkgaW4gUkVBREVSIG1vZGUuCisgIFBhdGNoIGJ5IEh5bmVrIFNjaGxhd2Fjay4KKworLSBJc3N1ZSAjMTM5OTM6IEhUTUxQYXJzZXIgaXMgbm93IGFibGUgdG8gaGFuZGxlIGJyb2tlbiBlbmQgdGFncyB3aGVuCisgIHN0cmljdD1GYWxzZS4KKworLSBJc3N1ZSAjMTM5MzA6IGxpYjJ0bzMgbm93IHN1cHBvcnRzIHdyaXRpbmcgY29udmVydGVkIG91dHB1dCBmaWxlcyB0byBhbm90aGVyCisgIGRpcmVjdG9yeSB0cmVlIGFzIHdlbGwgYXMgY29weWluZyB1bmNoYW5nZWQgZmlsZXMgYW5kIGFsdGVyaW5nIHRoZSBmaWxlCisgIHN1ZmZpeC4KKworLSBJc3N1ZSAjOTc1MDogRml4IHNxbGl0ZTMuQ29ubmVjdGlvbi5pdGVyZHVtcCBvbiB0YWJsZXMgYW5kIGZpZWxkcworICB3aXRoIGEgbmFtZSB0aGF0IGlzIGEga2V5d29yZCBvciBjb250YWlucyBxdW90ZXMuIFBhdGNoIGJ5IE1hcmtvCisgIEtvaHRhbGEuCisKKy0gSXNzdWUgIzEwMjg3OiBubnRwbGliIG5vdyBxdWVyaWVzIHRoZSBzZXJ2ZXIncyBDQVBBQklMSVRJRVMgYWdhaW4gYWZ0ZXIKKyAgYXV0aGVudGljYXRpbmcgKHNpbmNlIHRoZSByZXN1bHQgbWF5IGNoYW5nZSwgYWNjb3JkaW5nIHRvIFJGQyA0NjQzKS4KKyAgUGF0Y2ggYnkgSHluZWsgU2NobGF3YWNrLgorCistIElzc3VlICMxMzk4OTogRG9jdW1lbnQgdGhhdCBHemlwRmlsZSBkb2VzIG5vdCBzdXBwb3J0IHRleHQgbW9kZSwgYW5kIGdpdmUgYQorICBtb3JlIGhlbHBmdWwgZXJyb3IgbWVzc2FnZSB3aGVuIG9wZW5lZCB3aXRoIGFuIGludmFsaWQgbW9kZSBzdHJpbmcuCisKKy0gSXNzdWUgIzEzNTkwOiBPbiBPUyBYIDEwLjcgYW5kIDEwLjYgd2l0aCBYY29kZSA0LjIsIGJ1aWxkaW5nCisgIERpc3R1dGlscy1iYXNlZCBwYWNrYWdlcyB3aXRoIEMgZXh0ZW5zaW9uIG1vZHVsZXMgbWF5IGZhaWwgYmVjYXVzZQorICBBcHBsZSBoYXMgcmVtb3ZlZCBnY2MtNC4yLCB0aGUgdmVyc2lvbiB1c2VkIHRvIGJ1aWxkIHB5dGhvbi5vcmcKKyAgNjQtYml0LzMyLWJpdCBQeXRob25zLiAgSWYgdGhlIHVzZXIgZG9lcyBub3QgZXhwbGljaXRseSBvdmVycmlkZQorICB0aGUgZGVmYXVsdCBDIGNvbXBpbGVyIGJ5IHNldHRpbmcgdGhlIENDIGVudmlyb25tZW50IHZhcmlhYmxlLAorICBEaXN0dXRpbHMgd2lsbCBub3cgYXR0ZW1wdCB0byBjb21waWxlIGV4dGVuc2lvbiBtb2R1bGVzIHdpdGggY2xhbmcKKyAgaWYgZ2NjLTQuMiBpcyByZXF1aXJlZCBidXQgbm90IGZvdW5kLiBBbHNvIGFzIGEgY29udmVuaWVuY2UsIGlmCisgIHRoZSB1c2VyIGRvZXMgZXhwbGljaXRseSBzZXQgQ0MsIHN1YnN0aXR1dGUgaXRzIHZhbHVlIGFzIHRoZSBkZWZhdWx0CisgIGNvbXBpbGVyIGluIHRoZSBEaXN0dXRpbHMgTERTSEFSRUQgY29uZmlndXJhdGlvbiB2YXJpYWJsZSBmb3IgT1MgWC4KKyAgKE5vdGUsIHRoZSBweXRob24ub3JnIDMyLWJpdC1vbmx5IFB5dGhvbnMgdXNlIGdjYy00LjAgYW5kIHRoZSAxMC40dQorICBTREssIG5laXRoZXIgb2Ygd2hpY2ggYXJlIGF2YWlsYWJsZSBpbiBYY29kZSA0LiAgVGhpcyBjaGFuZ2UgZG9lcyBub3QKKyAgYXR0ZW1wdCB0byBvdmVycmlkZSBzZXR0aW5ncyB0byBzdXBwb3J0IHRoZWlyIHVzZSB3aXRoIFhjb2RlIDQuKQorCistIElzc3VlICMxMzk2MDogSFRNTFBhcnNlciBpcyBub3cgYWJsZSB0byBoYW5kbGUgYnJva2VuIGNvbW1lbnRzIHdoZW4KKyAgc3RyaWN0PUZhbHNlLgorCistIElzc3VlICMxMzkyMTogVW5kb2N1bWVudCBhbmQgY2xlYW4gdXAgc3FsaXRlMy5PcHRpbWl6ZWRVbmljb2RlLAorICB3aGljaCBpcyBvYnNvbGV0ZSBpbiBQeXRob24gMy54LiBJdCdzIG5vdyBhbGlhc2VkIHRvIHN0ciBmb3IKKyAgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCisKKy0gV2hlbiAnJyBpcyBhIHBhdGggKGUuZy4gaW4gc3lzLnBhdGgpLCBtYWtlIHN1cmUgX19maWxlX18gdXNlcyB0aGUgY3VycmVudAorICB3b3JraW5nIGRpcmVjdG9yeSBpbnN0ZWFkIG9mICcnIGluIGltcG9ydGxpYi4KKworLSBJc3N1ZSAjMTM2MDk6IEFkZCB0d28gZnVuY3Rpb25zIHRvIHF1ZXJ5IHRoZSB0ZXJtaW5hbCBzaXplOgorICBvcy5nZXRfdGVybWluYWxfc2l6ZSAobG93IGxldmVsKSBhbmQgc2h1dGlsLmdldF90ZXJtaW5hbF9zaXplIChoaWdoIGxldmVsKS4KKyAgUGF0Y2ggYnkgWmJpZ25pZXcgSsSZZHJ6ZWpld3NraS1Tem1lay4KKworLSBJc3N1ZSAjMTM4NDU6IE9uIFdpbmRvd3MsIHRpbWUudGltZSgpIG5vdyB1c2VzIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCkKKyAgaW5zdGVhZCBvZiBmdGltZSgpIHRvIGhhdmUgYSByZXNvbHV0aW9uIG9mIDEwMCBucyBpbnN0ZWFkIG9mIDEgbXMgKHRoZSBjbG9jaworICBhY2N1cmFjeSBpcyBiZXR3ZWVuIDAuNSBtcyBhbmQgMTUgbXMpLgorCistIElzc3VlICMxMzg0NjogQWRkIHRpbWUubW9ub3RvbmljKCksIG1vbm90b25pYyBjbG9jay4KKworLSBJc3N1ZSAjODE4NDogbXVsdGlwcm9jZXNzaW5nOiBPbiBXaW5kb3dzLCBkb24ndCBzZXQgU09fUkVVU0VBRERSIG9uCisgIENvbm5lY3Rpb24gc29ja2V0cywgYW5kIHNldCBGSUxFX0ZMQUdfRklSU1RfUElQRV9JTlNUQU5DRSBvbiBuYW1lZCBwaXBlcywgdG8KKyAgbWFrZSBzdXJlIHR3byBsaXN0ZW5lcnMgY2FuJ3QgYmluZCB0byB0aGUgc2FtZSBzb2NrZXQvcGlwZSAob3IgYW55IGV4aXN0aW5nCisgIHNvY2tldC9waXBlKS4KKworLSBJc3N1ZSAjMTA4MTE6IEZpeCByZWN1cnNpdmUgdXNhZ2Ugb2YgY3Vyc29ycy4gSW5zdGVhZCBvZiBjcmFzaGluZywKKyAgcmFpc2UgYSBQcm9ncmFtbWluZ0Vycm9yIG5vdy4KKworLSBJc3N1ZSAjMTA4ODE6IEZpeCB0ZXN0X3NpdGUgZmFpbHVyZSB3aXRoIE9TIFggZnJhbWV3b3JrIGJ1aWxkcy4KKworLSBJc3N1ZSAjOTY0NDM3OiBNYWtlIElETEUgaGVscCB3aW5kb3cgbm9uLW1vZGFsLgorICBQYXRjaCBieSBHdWlsaGVybWUgUG9sbyBhbmQgUm9nZXIgU2Vyd3kuCisKKy0gSXNzdWUgIzEzNzM0OiBBZGQgb3MuZndhbGsoKSwgYSBkaXJlY3Rvcnkgd2Fsa2luZyBmdW5jdGlvbiB5aWVsZGluZyBmaWxlCisgIGRlc2NyaXB0b3JzLgorCistIElzc3VlICMyOTQ1OiBNYWtlIHRoZSBkaXN0dXRpbHMgdXBsb2FkIGNvbW1hbmQgYXdhcmUgb2YgYmRpc3RfcnBtIHByb2R1Y3RzLgorCistIElzc3VlICMxMzcxMjogcHlzZXR1cCBjcmVhdGUgc2hvdWxkIG5vdCBjb252ZXJ0IHBhY2thZ2VfZGF0YSB0byBleHRyYV9maWxlcy4KKworLSBJc3N1ZSAjMTE4MDU6IHBhY2thZ2VfZGF0YSBpbiBzZXR1cC5jZmcgc2hvdWxkIGFsbG93IG1vcmUgdGhhbiBvbmUgdmFsdWUuCisKKy0gSXNzdWUgIzEzOTMzOiBJRExFIGF1dG8tY29tcGxldGUgZGlkIG5vdCB3b3JrIHdpdGggc29tZSBpbXBvcnRlZAorICBtb2R1bGUsIGxpa2UgaGFzaGxpYi4gIChQYXRjaCBieSBSb2dlciBTZXJ3eSkKKworLSBJc3N1ZSAjMTM5MDE6IFByZXZlbnQgdGVzdF9kaXN0dXRpbHMgZmFpbHVyZXMgb24gT1MgWCB3aXRoIC0tZW5hYmxlLXNoYXJlZC4KKworLSBJc3N1ZSAjMTM2NzY6IEhhbmRsZSBzdHJpbmdzIHdpdGggZW1iZWRkZWQgemVyb3MgY29ycmVjdGx5IGluIHNxbGl0ZTMuCisKKy0gSXNzdWUgIzEzNTA2OiBBZGQgJycgdG8gcGF0aCBmb3IgSURMRSBTaGVsbCB3aGVuIHN0YXJ0ZWQgYW5kIHJlc3RhcnRlZCB3aXRoIFJlc3RhcnQgU2hlbGwuCisgIE9yaWdpbmFsIHBhdGNoZXMgYnkgTWFyY28gU2NhdGFnbGluaSBhbmQgUm9nZXIgU2Vyd3kuCisKKy0gSXNzdWUgIzg4Mjg6IEFkZCBuZXcgZnVuY3Rpb24gb3MucmVwbGFjZSgpLCBmb3IgY3Jvc3MtcGxhdGZvcm0gcmVuYW1pbmcKKyAgd2l0aCBvdmVyd3JpdGluZy4KKworLSBJc3N1ZSAjMTM4NDg6IG9wZW4oKSBhbmQgdGhlIEZpbGVJTyBjb25zdHJ1Y3RvciBub3cgY2hlY2sgZm9yIE5VTAorICBjaGFyYWN0ZXJzIGluIHRoZSBmaWxlIG5hbWUuICBQYXRjaCBieSBIeW5layBTY2hsYXdhY2suCisKKy0gSXNzdWUgIzEzODA2OiBUaGUgc2l6ZSBjaGVjayBpbiBhdWRpb29wIGRlY29tcHJlc3Npb24gZnVuY3Rpb25zIHdhcyB0b28KKyAgc3RyaWN0IGFuZCBjb3VsZCByZWplY3QgdmFsaWQgY29tcHJlc3NlZCBkYXRhLiAgUGF0Y2ggYnkgT2xlZyBQbGFraG90bnl1ay4KKworLSBJc3N1ZSAjMTM4MTI6IFdoZW4gYSBtdWx0aXByb2Nlc3NpbmcgUHJvY2VzcyBjaGlsZCByYWlzZXMgYW4gZXhjZXB0aW9uLAorICBmbHVzaCBzdGRlcnIgYWZ0ZXIgcHJpbnRpbmcgdGhlIGV4Y2VwdGlvbiB0cmFjZWJhY2suCisKKy0gSXNzdWUgIzEzODg1OiBDVkUtMjAxMS0zMzg5OiB0aGUgX3NzbCBtb2R1bGUgd291bGQgYWx3YXlzIGRpc2FibGUgdGhlIENCQworICBJViBhdHRhY2sgY291bnRlcm1lYXN1cmUuCisKKy0gSXNzdWUgIzEzODQ3OiB0aW1lLmxvY2FsdGltZSgpIGFuZCB0aW1lLmdtdGltZSgpIG5vdyByYWlzZSBhbiBPU0Vycm9yIGluc3RlYWQKKyAgb2YgVmFsdWVFcnJvciBvbiBmYWlsdXJlLiB0aW1lLmN0aW1lKCkgYW5kIHRpbWUuYXNjdGltZSgpIG5vdyByYWlzZXMgYW4KKyAgT1NFcnJvciBpZiBsb2NhbHRpbWUoKSBmYWlsZWQuIHRpbWUuY2xvY2soKSBub3cgcmFpc2VzIGEgUnVudGltZUVycm9yIGlmIHRoZQorICBwcm9jZXNzb3IgdGltZSB1c2VkIGlzIG5vdCBhdmFpbGFibGUgb3IgaXRzIHZhbHVlIGNhbm5vdCBiZSByZXByZXNlbnRlZAorCistIElzc3VlICMxMzg2MjogRml4IHNwdXJpb3VzIGZhaWx1cmUgaW4gdGVzdF96bGliIGR1ZSB0byBydW50aW1lL2NvbXBpbGUgdGltZQorICBtaW5vciB2ZXJzaW9ucyBub3QgbWF0Y2hpbmcuCisKKy0gSXNzdWUgIzEyODA0OiBGaXggdGVzdF9zb2NrZXQgYW5kIHRlc3RfdXJsbGliMm5ldCBmYWlsdXJlcyB3aGVuIHJ1bm5pbmcgdGVzdHMKKyAgb24gYSBzeXN0ZW0gd2l0aG91dCBpbnRlcm5ldCBhY2Nlc3MuCisKKy0gSXNzdWUgIzEzNzcyOiBJbiBvcy5zeW1saW5rKCkgdW5kZXIgV2luZG93cywgZG8gbm90IHRyeSB0byBndWVzcyB0aGUgbGluaworICB0YXJnZXQncyB0eXBlIChmaWxlIG9yIGRpcmVjdG9yeSkuICBUaGUgZGV0ZWN0aW9uIHdhcyBidWdneSBhbmQgbWFkZSB0aGUKKyAgY2FsbCBub24tYXRvbWljICh0aGVyZWZvcmUgcHJvbmUgdG8gcmFjZSBjb25kaXRpb25zKS4KKworLSBJc3N1ZSAjNjYzMTogRGlzYWxsb3cgcmVsYXRpdmUgZmlsZSBwYXRocyBpbiB1cmxsaWIgdXJsb3BlbiBtZXRob2RzLgorCistIElzc3VlICMxMzcyMjogQXZvaWQgc2lsZW5jaW5nIEltcG9ydEVycm9ycyB3aGVuIGluaXRpYWxpemluZyB0aGUgY29kZWNzCisgIHJlZ2lzdHJ5LgorCistIElzc3VlICMxMzc4MTogRml4IEd6aXBGaWxlIGJ1ZyB0aGF0IGNhdXNlZCBhbiBleGNlcHRpb24gdG8gYmUgcmFpc2VkIHdoZW4KKyAgb3BlbmluZyBmb3Igd3JpdGluZyB1c2luZyBhIGZpbGVvYmogcmV0dXJuZWQgYnkgb3MuZmRvcGVuKCkuCisKKy0gSXNzdWUgIzEzODAzOiBVbmRlciBTb2xhcmlzLCBkaXN0dXRpbHMgZG9lc24ndCBpbmNsdWRlIGJpdG5lc3MKKyAgaW4gdGhlIGRpcmVjdG9yeSBuYW1lLgorCistIElzc3VlICMxMDI3ODogQWRkIHRpbWUud2FsbGNsb2NrKCkgZnVuY3Rpb24sIG1vbm90b25pYyBjbG9jay4KKworLSBJc3N1ZSAjMTM4MDk6IEZpeCByZWdyZXNzaW9uIHdoZXJlIGJ6MiBtb2R1bGUgd291bGRuJ3Qgd29yayB3aGVuIHRocmVhZHMgYXJlCisgIGRpc2FibGVkLiBPcmlnaW5hbCBwYXRjaCBieSBBbWF1cnkgRm9yZ2VvdCBkJ0FyYy4KKworLSBJc3N1ZSAjMTM1ODk6IEZpeCBzb21lIHNlcmlhbGl6YXRpb24gcHJpbWl0aXZlcyBpbiB0aGUgYWlmYyBtb2R1bGUuCisgIFBhdGNoIGJ5IE9sZWcgUGxha2hvdG55dWsuCisKKy0gSXNzdWUgIzEzNjQyOiBVbnF1b3RlIGJlZm9yZSBiNjRlbmNvZGluZyB1c2VyOnBhc3N3b3JkIGR1cmluZyBCYXNpYworICBBdXRoZW50aWNhdGlvbi4gUGF0Y2ggY29udHJpYnV0ZWQgYnkgSm9vbmFzIEt1b3JpbGVodG8uCisKKy0gSXNzdWUgIzEzNzI2OiBGaXggdGhlIGFtYmlndW91cyAtUyBmbGFnIGluIHJlZ3J0ZXN0LiBJdCBpcyAtby8tLXNsb3cgZm9yIHNsb3cKKyAgdGVzdHMuCisKKy0gSXNzdWUgIzEyMzY0OiBGaXggYSBoYW5nIGluIGNvbmN1cnJlbnQuZnV0dXJlcy5Qcm9jZXNzUG9vbEV4ZWN1dG9yLgorICBUaGUgaGFuZyB3b3VsZCBvY2N1ciB3aGVuIHJldHJpZXZpbmcgdGhlIHJlc3VsdCBvZiBhIHNjaGVkdWxlZCBmdXR1cmUgYWZ0ZXIKKyAgdGhlIGV4ZWN1dG9yIGhhZCBiZWVuIHNodXQgZG93bi4KKworLSBJc3N1ZSAjMTM1MDI6IHRocmVhZGluZzogRml4IGEgcmFjZSBjb25kaXRpb24gaW4gRXZlbnQud2FpdCgpIHRoYXQgbWFkZSBpdAorICByZXR1cm4gRmFsc2Ugd2hlbiB0aGUgZXZlbnQgd2FzIHNldCBhbmQgY2xlYXJlZCByaWdodCBhZnRlci4KKworLSBJc3N1ZSAjOTk5MzogV2hlbiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBhcmUgb24gZGlmZmVyZW50IGZpbGVzeXN0ZW1zLAorICBhbmQgdGhlIHNvdXJjZSBpcyBhIHN5bWxpbmssIHNodXRpbC5tb3ZlKCkgbm93IHJlY3JlYXRlcyBhIHN5bWxpbmsgb24gdGhlCisgIGRlc3RpbmF0aW9uIGluc3RlYWQgb2YgY29weWluZyB0aGUgZmlsZSBjb250ZW50cy4gIFBhdGNoIGJ5IEpvbmF0aGFuIE5pZWhvZgorICBhbmQgSHluZWsgU2NobGF3YWNrLgorCistIElzc3VlICMxMjkyNjogRml4IGEgYnVnIGluIHRhcmZpbGUncyBsaW5rIGV4dHJhY3Rpb24uCisKKy0gSXNzdWUgIzEzNjk2OiBGaXggdGhlIDMwMiBSZWxhdGl2ZSBVUkwgUmVkaXJlY3Rpb24gcHJvYmxlbS4KKworLSBJc3N1ZSAjMTM2MzY6IFdlYWsgY2lwaGVycyBhcmUgbm93IGRpc2FibGVkIGJ5IGRlZmF1bHQgaW4gdGhlIHNzbCBtb2R1bGUKKyAgKGV4Y2VwdCB3aGVuIFNTTHYyIGlzIGV4cGxpY2l0bHkgYXNrZWQgZm9yKS4KKworLSBJc3N1ZSAjMTI3MTU6IEFkZCBhbiBvcHRpb25hbCBzeW1saW5rcyBhcmd1bWVudCB0byBzaHV0aWwgZnVuY3Rpb25zCisgIChjb3B5ZmlsZSwgY29weW1vZGUsIGNvcHlzdGF0LCBjb3B5LCBjb3B5MikuICBXaGVuIHRoYXQgcGFyYW1ldGVyIGlzCisgIHRydWUsIHN5bWxpbmtzIGFyZW4ndCBkZXJlZmVyZW5jZWQgYW5kIHRoZSBvcGVyYXRpb24gaW5zdGVhZCBhY3RzIG9uIHRoZQorICBzeW1saW5rIGl0c2VsZiAob3IgY3JlYXRlcyBvbmUsIGlmIHJlbGV2YW50KS4gIFBhdGNoIGJ5IEh5bmVrIFNjaGxhd2Fjay4KKworLSBBZGQgYSBmbGFncyBwYXJhbWV0ZXIgdG8gc2VsZWN0LmVwb2xsLgorCistIElzc3VlICMxMzYyNjogQWRkIHN1cHBvcnQgZm9yIFNTTCBEaWZmaWUtSGVsbG1hbiBrZXkgZXhjaGFuZ2UsIHRocm91Z2ggdGhlCisgIFNTTENvbnRleHQubG9hZF9kaF9wYXJhbXMoKSBtZXRob2QgYW5kIHRoZSBzc2wuT1BfU0lOR0xFX0RIX1VTRSBvcHRpb24uCisKKy0gSXNzdWUgIzExMDA2OiBEb24ndCBpc3N1ZSBsb3cgbGV2ZWwgd2FybmluZyBpbiBzdWJwcm9jZXNzIHdoZW4gcGlwZTIoKSBmYWlscy4KKworLSBJc3N1ZSAjMTM2MjA6IFN1cHBvcnQgZm9yIENocm9tZSBicm93c2VyIGluIHdlYmJyb3dzZXIuICBQYXRjaCBjb250cmlidXRlZAorICBieSBBcm5hdWQgQ2FsbWV0dGVzLgorCistIElzc3VlICMxMTgyOTogRml4IGNvZGUgZXhlY3V0aW9uIGhvbGVzIGluIGluc3BlY3QuZ2V0YXR0cl9zdGF0aWMgZm9yCisgIG1ldGFjbGFzc2VzIHdpdGggbWV0YWNsYXNzZXMuIFBhdGNoIGJ5IEFuZHJlYXMgU3TDvGhyay4KKworLSBJc3N1ZSAjMTI3MDg6IEFkZCBzdGFybWFwKCkgYW5kIHN0YXJtYXBfYXN5bmMoKSBtZXRob2RzIChzaW1pbGFyIHRvCisgIGl0ZXJ0b29scy5zdGFybWFwKCkpIHRvIG11bHRpcHJvY2Vzc2luZy5Qb29sLiAgUGF0Y2ggYnkgSHluZWsgU2NobGF3YWNrLgorCistIElzc3VlICMxNzg1OiBGaXggaW5zcGVjdCBhbmQgcHlkb2Mgd2l0aCBtaXNiZWhhdmluZyBkZXNjcmlwdG9ycy4KKworLSBJc3N1ZSAjMTM2Mzc6ICJhMmIiIGZ1bmN0aW9ucyBpbiB0aGUgYmluYXNjaWkgbW9kdWxlIG5vdyBhY2NlcHQgQVNDSUktb25seQorICB1bmljb2RlIHN0cmluZ3MuCisKKy0gSXNzdWUgIzEzNjM0OiBBZGQgc3VwcG9ydCBmb3IgcXVlcnlpbmcgYW5kIGRpc2FibGluZyBTU0wgY29tcHJlc3Npb24uCisKKy0gSXNzdWUgIzEzNjI3OiBBZGQgc3VwcG9ydCBmb3IgU1NMIEVsbGlwdGljIEN1cnZlLWJhc2VkIERpZmZpZS1IZWxsbWFuCisgIGtleSBleGNoYW5nZSwgdGhyb3VnaCB0aGUgU1NMQ29udGV4dC5zZXRfZWNkaF9jdXJ2ZSgpIG1ldGhvZCBhbmQgdGhlCisgIHNzbC5PUF9TSU5HTEVfRUNESF9VU0Ugb3B0aW9uLgorCistIElzc3VlICMxMzYzNTogQWRkIHNzbC5PUF9DSVBIRVJfU0VSVkVSX1BSRUZFUkVOQ0UsIHNvIHRoYXQgU1NMIHNlcnZlcnMKKyAgY2hvb3NlIHRoZSBjaXBoZXIgYmFzZWQgb24gdGhlaXIgb3duIHByZWZlcmVuY2VzLCByYXRoZXIgdGhhbiBvbiB0aGUKKyAgY2xpZW50J3MuCisKKy0gSXNzdWUgIzExODEzOiBGaXggaW5zcGVjdC5nZXRhdHRyX3N0YXRpYyBmb3IgbW9kdWxlcy4gUGF0Y2ggYnkgQW5kcmVhcworICBTdMO8aHJrLgorCistIElzc3VlICM3NTAyOiBGaXggZXF1YWxpdHkgY29tcGFyaXNvbiBmb3IgRG9jVGVzdENhc2UgaW5zdGFuY2VzLiAgUGF0Y2ggYnkKKyAgQ8OpZHJpYyBLcmllci4KKworLSBJc3N1ZSAjMTE4NzA6IHRocmVhZGluZzogUHJvcGVybHkgcmVpbml0aWFsaXplIHRocmVhZHMgaW50ZXJuYWwgbG9ja3MgYW5kCisgIGNvbmRpdGlvbiB2YXJpYWJsZXMgdG8gYXZvaWQgZGVhZGxvY2tzIGluIGNoaWxkIHByb2Nlc3Nlcy4KKworLSBJc3N1ZSAjODAzNTogdXJsbGliOiBGaXggYSBidWcgd2hlcmUgdGhlIGNsaWVudCBjb3VsZCByZW1haW4gc3R1Y2sgYWZ0ZXIgYQorICByZWRpcmVjdGlvbiBvciBhbiBlcnJvci4KKworLSBJc3N1ZSAjMTM1NjA6IG9zLnN0cmVycm9yKCkgbm93IHVzZXMgdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nIGluc3RlYWQgb2YKKyAgVVRGLTguCisKKy0gSXNzdWUgIzgzNzM6IFRoZSBmaWxlc3lzdGVtIHBhdGggb2YgQUZfVU5JWCBzb2NrZXRzIG5vdyB1c2VzIHRoZSBmaWxlc3lzdGVtCisgIGVuY29kaW5nIGFuZCB0aGUgc3Vycm9nYXRlZXNjYXBlIGVycm9yIGhhbmRsZXIsIHJhdGhlciB0aGFuIFVURi04LiAgUGF0Y2gKKyAgYnkgRGF2aWQgV2F0c29uLgorCistIElzc3VlICMxMDM1MDogUmVhZCBhbmQgc2F2ZSBlcnJubyBiZWZvcmUgY2FsbGluZyBhIGZ1bmN0aW9uIHdoaWNoIG1pZ2h0CisgIG92ZXJ3cml0ZSBpdC4gIE9yaWdpbmFsIHBhdGNoIGJ5IEhhbGx2YXJkIEIgRnVydXNldGguCisKKy0gSXNzdWUgIzExNjEwOiBJbnRyb2R1Y2UgYSBtb3JlIGdlbmVyYWwgd2F5IHRvIGRlY2xhcmUgYWJzdHJhY3QgcHJvcGVydGllcy4KKworLSBJc3N1ZSAjMTM1OTE6IEEgYnVnIGluIGltcG9ydGxpYiBoYXMgYmVlbiBmaXhlZCB0aGF0IGNhdXNlZCBpbXBvcnRfbW9kdWxlCisgIHRvIGxvYWQgYSBtb2R1bGUgdHdpY2UuCisKKy0gSXNzdWUgIzQ2MjU6IElmIElETEUgY2Fubm90IHdyaXRlIHRvIGl0cyByZWNlbnQgZmlsZSBvciBicmVha3BvaW50IGZpbGVzLAorICBkaXNwbGF5IGEgbWVzc2FnZSBwb3B1cCBhbmQgY29udGludWUgcmF0aGVyIHRoYW4gY3Jhc2guICBPcmlnaW5hbCBwYXRjaCBieQorICBSb2dlciBTZXJ3eS4KKworLSBJc3N1ZSAjMTM0NDkgc2NoZWQuc2NoZWR1bGVyLnJ1bigpIG1ldGhvZCBoYXMgYSBuZXcgImJsb2NraW5nIiBwYXJhbWV0ZXIgd2hpY2gKKyAgd2hlbiBzZXQgdG8gRmFsc2UgbWFrZXMgcnVuKCkgZXhlY3V0ZSB0aGUgc2NoZWR1bGVkIGV2ZW50cyBkdWUgdG8gZXhwaXJlCisgIHNvb25lc3QgKGlmIGFueSkgYW5kIHRoZW4gcmV0dXJuLiAgUGF0Y2ggYnkgR2lhbXBhb2xvIFJvZG9sw6AuCisKKy0gSXNzdWUgIzg2ODQgc2NoZWQuc2NoZWR1bGVyIGNsYXNzIGNhbiBiZSBzYWZlbHkgdXNlZCBpbiBtdWx0aS10aHJlYWRlZAorICBlbnZpcm9ubWVudHMuICBQYXRjaCBieSBKb3NpYWggQ2FybHNvbiBhbmQgR2lhbXBhb2xvIFJvZG9sw6AuCisKKy0gQWxpYXMgcmVzb3VyY2UuZXJyb3IgdG8gT1NFcnJvciBhbGEgUEVQIDMxNTEuCisKKy0gSXNzdWUgIzU2ODk6IEFkZCBzdXBwb3J0IGZvciBsem1hIGNvbXByZXNzaW9uIHRvIHRoZSB0YXJmaWxlIG1vZHVsZS4KKworLSBJc3N1ZSAjMTMyNDg6IFR1cm4gMy4yJ3MgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZyBpbnRvIDMuMydzCisgIERlcHJlY2F0aW9uV2FybmluZy4gIEl0IGNvdmVycyAnY2dpLmVzY2FwZScsICdpbXBvcnRsaWIuYWJjLlB5TG9hZGVyJywKKyAgJ2ltcG9ydGxpYi5hYmMuUHlQeWNMb2FkZXInLCAnbm50cGxpYi5OTlRQLnhndGl0bGUnLCAnbm50cGxpYi5OTlRQLnhwYXRoJywKKyAgYW5kIHByaXZhdGUgYXR0cmlidXRlcyBvZiAnc210cGQuU01UUENoYW5uZWwnLgorCistIElzc3VlICM1OTA1LCAjMTM1NjA6IHRpbWUuc3RyZnRpbWUoKSBpcyBub3cgdXNpbmcgdGhlIGN1cnJlbnQgbG9jYWxlCisgIGVuY29kaW5nLCBpbnN0ZWFkIG9mIFVURi04LCBpZiB0aGUgd2NzZnRpbWUoKSBmdW5jdGlvbiBpcyBub3QgYXZhaWxhYmxlLgorCistIElzc3VlICM4NjQxOiBVcGRhdGUgSURMRSAzIHN5bnRheCBjb2xvcmluZyB0byByZWNvZ25pemUgYiIuLiIgYW5kIG5vdCB1Ii4uIi4KKyAgUGF0Y2ggYnkgVGFsIEVpbmF0LgorCistIElzc3VlICMxMzQ2NDogQWRkIGEgcmVhZGludG8oKSBtZXRob2QgdG8gaHR0cC5jbGllbnQuSFRUUFJlc3BvbnNlLiAgUGF0Y2gKKyAgYnkgSm9uIEt1aG4uCisKKy0gdGFyZmlsZS5weTogQ29ycmVjdGx5IGRldGVjdCBiemlwMiBjb21wcmVzc2VkIHN0cmVhbXMgd2l0aCBibG9ja3NpemVzCisgIG90aGVyIHRoYW4gOTAway4KKworLSBJc3N1ZSAjMTM0Mzk6IEZpeCBtYW55IGVycm9ycyBpbiB0dXJ0bGUgZG9jc3RyaW5ncy4KKworLSBJc3N1ZSAjNjcxNTogQWRkIGEgbW9kdWxlICdsem1hJyBmb3IgY29tcHJlc3Npb24gdXNpbmcgdGhlIExaTUEgYWxnb3JpdGhtLgorICBUaGFua3MgdG8gUGVyIMOYeXZpbmQgS2FybHNlbiBmb3IgdGhlIGluaXRpYWwgaW1wbGVtZW50YXRpb24uCisKKy0gSXNzdWUgIzEzNDg3OiBNYWtlIGluc3BlY3QuZ2V0bW9kdWxlIHJvYnVzdCBhZ2FpbnN0IGNoYW5nZXMgZG9uZSB0bworICBzeXMubW9kdWxlcyB3aGlsZSBpdCBpcyBpdGVyYXRpbmcgb3ZlciBpdC4KKworLSBJc3N1ZSAjMTI2MTg6IEZpeCBhIGJ1ZyB0aGF0IHByZXZlbnRlZCBweV9jb21waWxlIGZyb20gY3JlYXRpbmcgYnl0ZQorICBjb21waWxlZCBmaWxlcyBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBJbml0aWFsIHBhdGNoIGJ5IFNqb2VyZCBkZSBWcmllcy4KKworLSBJc3N1ZSAjMTM0NDQ6IFdoZW4gc3Rkb3V0IGhhcyBiZWVuIGNsb3NlZCBleHBsaWNpdGx5LCB3ZSBzaG91bGQgbm90IGF0dGVtcHQKKyAgdG8gZmx1c2ggaXQgYXQgc2h1dGRvd24gYW5kIHByaW50IGFuIGVycm9yLgorCistIElzc3VlICMxMjU2NzogVGhlIGN1cnNlcyBtb2R1bGUgdXNlcyBVbmljb2RlIGZ1bmN0aW9ucyBmb3IgVW5pY29kZSBhcmd1bWVudHMKKyAgd2hlbiBpdCBpcyBsaW5rZWQgdG8gdGhlIG5jdXJzZXMgbGlicmFyeS4gSXQgZW5jb2RlcyBhbHNvIFVuaWNvZGUgc3RyaW5ncyB0bworICB0aGUgbG9jYWxlIGVuY29kaW5nIGluc3RlYWQgb2YgVVRGLTguCisKKy0gSXNzdWUgIzEyODU2OiBFbnN1cmUgY2hpbGQgcHJvY2Vzc2VzIGRvIG5vdCBpbmhlcml0IHRoZSBwYXJlbnQncyByYW5kb20KKyAgc2VlZCBmb3IgZmlsZW5hbWUgZ2VuZXJhdGlvbiBpbiB0aGUgdGVtcGZpbGUgbW9kdWxlLiAgUGF0Y2ggYnkgQnJpYW4KKyAgSGFycmluZy4KKworLSBJc3N1ZSAjOTk1NzogU3Bvb2xlZFRlbXBvcmFyeUZpbGUudHJ1bmNhdGUoKSBub3cgYWNjZXB0cyBhbiBvcHRpb25hbCBzaXplCisgIHBhcmFtZXRlciwgYXMgb3RoZXIgZmlsZS1saWtlIG9iamVjdHMuICBQYXRjaCBieSBSeWFuIEtlbGx5LgorCistIElzc3VlICMxMzQ1ODogRml4IGEgbWVtb3J5IGxlYWsgaW4gdGhlIHNzbCBtb2R1bGUgd2hlbiBkZWNvZGluZyBhCisgIGNlcnRpZmljYXRlIHdpdGggYSBzdWJqZWN0QWx0TmFtZS4gIFBhdGNoIGJ5IFJvYmVydCBYaWFvLgorCistIElzc3VlICMxMzQxNTogb3MudW5zZXRlbnYoKSBkb2Vzbid0IGlnbm9yZSBlcnJvcnMgYW55bW9yZS4KKworLSBJc3N1ZSAjMTMyNDU6IHNjaGVkLnNjaGVkdWxlciBjbGFzcyBjb25zdHJ1Y3RvcidzIHRpbWVmdW5jIGFuZAorICBkZWxheWZ1bmN0IHBhcmFtZXRlcnMgYXJlIG5vdyBvcHRpb25hbC4KKyAgc2NoZWR1bGVyLmVudGVyIGFuZCBzY2hlZHVsZXIuZW50ZXJhYnMgbWV0aG9kcyBnYWluZWQgYSBuZXcga3dhcmdzIHBhcmFtZXRlci4KKyAgUGF0Y2ggY29udHJpYnV0ZWQgYnkgQ2hyaXMgQ2xhcmsuCisKKy0gSXNzdWUgIzEyMzI4OiBVbmRlciBXaW5kb3dzLCByZWZhY3RvciBoYW5kbGluZyBvZiBDdHJsLUMgZXZlbnRzIGFuZAorICBtYWtlIF9tdWx0aXByb2Nlc3Npbmcud2luMzIuV2FpdEZvck11bHRpcGxlT2JqZWN0cyBpbnRlcnJ1cHRpYmxlIHdoZW4KKyAgdGhlIHdhaXRfZmxhZyBwYXJhbWV0ZXIgaXMgZmFsc2UuICBQYXRjaCBieSBzYnQuCisKKy0gSXNzdWUgIzEzMzIyOiBGaXggQnVmZmVyZWRXcml0ZXIud3JpdGUoKSB0byBlbnN1cmUgdGhhdCBCbG9ja2luZ0lPRXJyb3IgaXMKKyAgcmFpc2VkIHdoZW4gdGhlIHdyYXBwZWQgcmF3IGZpbGUgaXMgbm9uLWJsb2NraW5nIGFuZCB0aGUgd3JpdGUgd291bGQgYmxvY2suCisgIFByZXZpb3VzIGNvZGUgYXNzdW1lZCB0aGF0IHRoZSByYXcgd3JpdGUoKSB3b3VsZCByYWlzZSBCbG9ja2luZ0lPRXJyb3IsIGJ1dAorICBSYXdJT0Jhc2Uud3JpdGUoKSBpcyBkZWZpbmVkIHRvIHJldHVybmVkIE5vbmUgd2hlbiB0aGUgY2FsbCB3b3VsZCBibG9jay4KKyAgUGF0Y2ggYnkgc2J0LgorCistIElzc3VlICMxMzM1ODogSFRNTFBhcnNlciBub3cgY2FsbHMgaGFuZGxlX2RhdGEgb25seSBvbmNlIGZvciBlYWNoIENEQVRBLgorCistIElzc3VlICM0MTQ3OiBtaW5pZG9tJ3MgdG9wcmV0dHl4bWwgbm8gbG9uZ2VyIGFkZHMgd2hpdGVzcGFjZSBhcm91bmQgYSB0ZXh0CisgIG5vZGUgd2hlbiBpdCBpcyB0aGUgb25seSBjaGlsZCBvZiBhbiBlbGVtZW50LiAgSW5pdGlhbCBwYXRjaCBieSBEYW4KKyAgS2VuaWdzYmVyZy4KKworLSBJc3N1ZSAjMTMzNzQ6IFRoZSBXaW5kb3dzIGJ5dGVzIEFQSSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIHRoZSBvcyBtb2R1bGUuIFVzZQorICBVbmljb2RlIGZpbGVuYW1lcyBpbnN0ZWFkIG9mIGJ5dGVzIGZpbGVuYW1lcyB0byBub3QgZGVwZW5kIG9uIHRoZSBBTlNJIGNvZGUKKyAgcGFnZSBhbnltb3JlIGFuZCB0byBzdXBwb3J0IGFueSBmaWxlbmFtZS4KKworLSBJc3N1ZSAjMTMyOTc6IFVzZSBieXRlcyB0eXBlIHRvIHNlbmQgYW5kIHJlY2VpdmUgYmluYXJ5IGRhdGEgdGhyb3VnaCBYTUxSUEMuCisKKy0gSXNzdWUgIzYzOTc6IFN1cHBvcnQgIi9kZXYvcG9sbCIgcG9sbGluZyBvYmplY3RzIGluIHNlbGVjdCBtb2R1bGUsCisgIHVuZGVyIFNvbGFyaXMgJiBkZXJpdmF0aXZlcy4KKworLSBJc3N1ZXMgIzE3NDU3NjEsICM3NTU2NzAsICMxMzM1NywgIzEyNjI5LCAjMTIwMDMxMzogSFRNTFBhcnNlciBub3cgY29ycmVjdGx5CisgIGhhbmRsZXMgbm9uLXZhbGlkIGF0dHJpYnV0ZXMsIGluY2x1ZGluZyBhZGphY2VudCBhbmQgdW5xdW90ZWQgYXR0cmlidXRlcy4KKworLSBJc3N1ZSAjMTMxOTM6IEZpeCBkaXN0dXRpbHMuZmlsZWxpc3QuRmlsZUxpc3QgYW5kIHBhY2thZ2luZy5tYW5pZmVzdC5NYW5pZmVzdAorICB1bmRlciBXaW5kb3dzLgorCistIElzc3VlICMxMzM4NDogUmVtb3ZlIHVubmVjZXNzYXJ5IF9fZnV0dXJlX18gaW1wb3J0IGluIExpYi9yYW5kb20ucHkKKworLSBJc3N1ZSAjMTMxNDk6IFNwZWVkIHVwIGFwcGVuZC1vbmx5IFN0cmluZ0lPIG9iamVjdHMuCisKKy0gSXNzdWUgIzEzMzczOiBtdWx0aXByb2Nlc3NpbmcuUXVldWUuZ2V0KCkgY291bGQgc29tZXRpbWVzIGJsb2NrIGluZGVmaW5pdGVseQorICB3aGVuIGNhbGxlZCB3aXRoIGEgdGltZW91dC4gIFBhdGNoIGJ5IEFybmF1ZCBZc21hbC4KKworLSBJc3N1ZSAjMTMyNTQ6IEZpeCBNYWlsZGlyIGluaXRpYWxpemF0aW9uIHNvIHRoYXQgbWFpbGRpciBjb250ZW50cworICBhcmUgcmVhZCBjb3JyZWN0bHkuCisKKy0gSXNzdWUgIzMwNjc6IGxvY2FsZS5zZXRsb2NhbGUoKSBub3cgcmFpc2VzIFR5cGVFcnJvciBpZiB0aGUgc2Vjb25kCisgIGFyZ3VtZW50IGlzIGFuIGludmFsaWQgaXRlcmFibGUuIEl0cyBkb2N1bWVudGF0aW9uIGFuZCBkb2NzdHJpbmcKKyAgd2VyZSBhbHNvIHVwZGF0ZWQuIEluaXRpYWwgcGF0Y2ggYnkgSnlya2kgUHVsbGlhaW5lbi4KKworLSBJc3N1ZSAjMTMxNDA6IEZpeCB0aGUgZGFlbW9uX3RocmVhZHMgYXR0cmlidXRlIG9mIFRocmVhZGluZ01peEluLgorCistIElzc3VlICMxMzMzOTogRml4IGNvbXBpbGUgZXJyb3IgaW4gcG9zaXhtb2R1bGUuYyBkdWUgdG8gbWlzc2luZyBzZW1pY29sb24uCisgIFRoYW5rcyB0byBSb2JlcnQgWGlhby4KKworLSBCeXRlIGNvbXBpbGF0aW9uIGluIHBhY2thZ2luZyBpcyBub3cgaXNvbGF0ZWQgZnJvbSB0aGUgY2FsbGluZyBQeXRob24gLUIgb3IKKyAgLU8gb3B0aW9ucywgaW5zdGVhZCBvZiBiZWluZyBkaXNhbGxvd2VkIHVuZGVyIC1CIG9yIGJ1Z2d5IHVuZGVyIC1PLgorCistIElzc3VlICMxMDU3MDogY3Vyc2VzLnB1dHAoKSBhbmQgY3Vyc2VzLnRwYXJtKCkgYXJlIG5vdyBleHBlY3RpbmcgYSBieXRlCisgIHN0cmluZywgaW5zdGVhZCBvZiBhIFVuaWNvZGUgc3RyaW5nLgorCistIElzc3VlICMxMzI5NTogaHR0cC5zZXJ2ZXIgbm93IHByb2R1Y2VzIHZhbGlkIEhUTUwgNC4wMSBzdHJpY3QuCisKKy0gSXNzdWUgIzI4OTI6IHByZXNlcnZlIGl0ZXJwYXJzZSBldmVudHMgaW4gY2FzZSBvZiBTeW50YXhFcnJvci4KKworLSBJc3N1ZSAjMTMyODc6IHVybGxpYi5yZXF1ZXN0IGFuZCB1cmxsaWIuZXJyb3Igbm93IGNvbnRhaW5zIGFuIF9fYWxsX18KKyAgYXR0cmlidXRlIHRvIGV4cG9zZSBvbmx5IHJlbGV2YW50IGNsYXNzZXMgYW5kIGZ1bmN0aW9ucy4gIFBhdGNoIGJ5IEZsb3JlbnQKKyAgWGljbHVuYS4KKworLSBJc3N1ZSAjNjcwNjY0OiBGaXggSFRNTFBhcnNlciB0byBjb3JyZWN0bHkgaGFuZGxlIHRoZSBjb250ZW50IG9mCisgIGBgPHNjcmlwdD4uLi48L3NjcmlwdD5gYCBhbmQgYGA8c3R5bGU+Li4uPC9zdHlsZT5gYC4KKworLSBJc3N1ZSAjMTA4MTc6IEZpeCB1cmxyZXRyaWV2ZSBmdW5jdGlvbiB0byByYWlzZSBDb250ZW50VG9vU2hvcnRFcnJvciBldmVuCisgIHdoZW4gcmVwb3J0aG9vayBpcyBOb25lLiBQYXRjaCBieSBKeXJraSBQdWxsaWFpbmVuLgorCistIElzc3VlICMxMzI5NjogRml4IElETEUgdG8gY2xlYXIgY29tcGlsZSBfX2Z1dHVyZV9fIGZsYWdzIG9uIHNoZWxsIHJlc3RhcnQuCisgIChQYXRjaCBieSBSb2dlciBTZXJ3eSkKKworLSBGaXggdGhlIHhtbHJwYy5jbGllbnQgdXNlciBhZ2VudCB0byByZXR1cm4gc29tZXRoaW5nIHNpbWlsYXIgdG8KKyAgdXJsbGliLnJlcXVlc3QgdXNlciBhZ2VudDogIlB5dGhvbi14bWxycGMvMy4zIi4KKworLSBJc3N1ZSAjMTMyOTM6IEJldHRlciBlcnJvciBtZXNzYWdlIHdoZW4gdHJ5aW5nIHRvIG1hcnNoYWwgYnl0ZXMgdXNpbmcKKyAgeG1scnBjLmNsaWVudC4KKworLSBJc3N1ZSAjMTMyOTE6IE5hbWVFcnJvciBpbiB4bWxycGMgcGFja2FnZS4KKworLSBJc3N1ZSAjMTMyNTg6IFVzZSBjYWxsYWJsZSgpIGJ1aWx0LWluIGluIHRoZSBzdGFuZGFyZCBsaWJyYXJ5LgorCistIElzc3VlICMxMzI3MzogZml4IGEgYnVnIHRoYXQgcHJldmVudGVkIEhUTUxQYXJzZXIgdG8gcHJvcGVybHkgZGV0ZWN0IHNvbWUKKyAgdGFncyB3aGVuIHN0cmljdD1GYWxzZS4KKworLSBJc3N1ZSAjMTExODM6IEFkZCBmaW5lci1ncmFpbmVkIGV4Y2VwdGlvbnMgdG8gdGhlIHNzbCBtb2R1bGUsIHNvIHRoYXQKKyAgeW91IGRvbid0IGhhdmUgdG8gaW5zcGVjdCB0aGUgZXhjZXB0aW9uJ3MgYXR0cmlidXRlcyBpbiB0aGUgY29tbW9uIGNhc2UuCisKKy0gSXNzdWUgIzEzMjE2OiBBZGQgY3A2NTAwMSBjb2RlYywgdGhlIFdpbmRvd3MgVVRGLTggKENQX1VURjgpLgorCistIElzc3VlICMxMzIyNjogQWRkIFJUTERfeHh4IGNvbnN0YW50cyB0byB0aGUgb3MgbW9kdWxlLiBUaGVzZSBjb25zdGFudHMgY2FuIGJlCisgIHVzZWQgd2l0aCBzeXMuc2V0ZGxvcGVuZmxhZ3MoKS4KKworLSBJc3N1ZSAjMTAyNzg6IEFkZCBjbG9ja19nZXRyZXMoKSwgY2xvY2tfZ2V0dGltZSgpIGFuZCBDTE9DS194eHggY29uc3RhbnRzIHRvCisgIHRoZSB0aW1lIG1vZHVsZS4gdGltZS5jbG9ja19nZXR0aW1lKHRpbWUuQ0xPQ0tfTU9OT1RPTklDKSBwcm92aWRlcyBhCisgIG1vbm90b25pYyBjbG9jaworCistIElzc3VlICMxMDMzMjogbXVsdGlwcm9jZXNzaW5nOiBmaXggYSByYWNlIGNvbmRpdGlvbiB3aGVuIGEgUG9vbCBpcyBjbG9zZWQKKyAgYmVmb3JlIGFsbCB0YXNrcyBoYXZlIGNvbXBsZXRlZC4KKworLSBJc3N1ZSAjMTMyNTU6IHdyb25nIGRvY3N0cmluZ3MgaW4gYXJyYXkgbW9kdWxlLgorCistIElzc3VlICM4NTQwOiBSZW1vdmUgZGVwcmVjYXRlZCBDb250ZXh0Ll9jbGFtcCBhdHRyaWJ1dGUgaW4gRGVjaW1hbCBtb2R1bGUuCisKKy0gSXNzdWUgIzEzMjM1OiBBZGRlZCBEZXByZWNhdGlvbldhcm5pbmcgdG8gbG9nZ2luZy53YXJuKCkgbWV0aG9kIGFuZCBmdW5jdGlvbi4KKworLSBJc3N1ZSAjOTE2ODogbm93IHNtdHBkIGlzIGFibGUgdG8gYmluZCBwcml2aWxlZ2VkIHBvcnQuCisKKy0gSXNzdWUgIzEyNTI5OiBmaXggY2dpLnBhcnNlX2hlYWRlciBpc3N1ZSBvbiBzdHJpbmdzIHdpdGggZG91YmxlLXF1b3RlcyBhbmQKKyAgc2VtaWNvbG9ucyB0b2dldGhlci4gUGF0Y2ggYnkgQmVuIERhcm5lbGwgYW5kIFBldHJpIExlaHRpbmVuLgorCistIElzc3VlICMxMzIyNzogZnVuY3Rvb2xzLmxydV9jYWNoZSgpIG5vdyBoYXMgYSBvcHRpb24gdG8gZGlzdGluZ3Vpc2gKKyAgY2FsbHMgd2l0aCBkaWZmZXJlbnQgYXJndW1lbnQgdHlwZXMuCisKKy0gSXNzdWUgIzYwOTA6IHppcGZpbGUgcmFpc2VzIGEgVmFsdWVFcnJvciB3aGVuIGEgZG9jdW1lbnQgd2l0aCBhIHRpbWVzdGFtcAorICBlYXJsaWVyIHRoYW4gMTk4MCBpcyBwcm92aWRlZC4gUGF0Y2ggY29udHJpYnV0ZWQgYnkgUGV0cmkgTGVodGluZW4uCisKKy0gSXNzdWUgIzEzMTUwOiBzeXNjb25maWcgbm8gbG9uZ2VyIHBhcnNlcyB0aGUgTWFrZWZpbGUgYW5kIGNvbmZpZy5oIGZpbGVzCisgIHdoZW4gaW1wb3J0ZWQsIGluc3RlYWQgZG9pbmcgaXQgYXQgYnVpbGQgdGltZS4gIFRoaXMgbWFrZXMgaW1wb3J0aW5nCisgIHN5c2NvbmZpZyBmYXN0ZXIgYW5kIHJlZHVjZXMgUHl0aG9uIHN0YXJ0dXAgdGltZSBieSAyMCUuCisKKy0gSXNzdWUgIzEyNDQ4OiBzbXRwbGliIG5vdyBmbHVzaGVzIHN0ZG91dCB3aGlsZSBydW5uaW5nIGBgcHl0aG9uIC1tIHNtdHBsaWJgYAorICBpbiBvcmRlciB0byBkaXNwbGF5IHRoZSBwcm9tcHQgY29ycmVjdGx5LgorCistIElzc3VlICMxMjQ1NDogVGhlIG1haWxib3ggbW9kdWxlIGlzIG5vdyB1c2luZyBBU0NJSSwgaW5zdGVhZCBvZiB0aGUgbG9jYWxlCisgIGVuY29kaW5nLCB0byByZWFkIGFuZCB3cml0ZSAubWhfc2VxdWVuY2VzIGZpbGVzLgorCistIElzc3VlICMxMzE5NDogemxpYi5jb21wcmVzc29iaigpLmNvcHkoKSBhbmQgemxpYi5kZWNvbXByZXNzb2JqKCkuY29weSgpIGFyZQorICBub3cgYXZhaWxhYmxlIG9uIFdpbmRvd3MuCisKKy0gSXNzdWUgIzE2NzMwMDc6IHVybGxpYi5yZXF1ZXN0IG5vdyBzdXBwb3J0cyBIRUFEIHJlcXVlc3QgdmlhIG5ldyBtZXRob2QgYXJndW1lbnQuCisgIFBhdGNoIGNvbnRyaWJ1dGlvbnMgYnkgRGF2aWQgU3RhbmVrLCBQYXRyaWNrIFdlc3RlcmhvZmYgYW5kIEV6aW8gTWVsb3R0aS4KKworLSBJc3N1ZSAjMTIzODY6IHBhY2thZ2luZyBkb2VzIG5vdCBmYWlsIGFueW1vcmUgd2hlbiB3cml0aW5nIHRoZSBSRVNPVVJDRVMKKyAgZmlsZS4KKworLSBJc3N1ZSAjMTMxNTg6IEZpeCBkZWNvZGluZyBhbmQgZW5jb2Rpbmcgb2YgR05VIHRhciBzcGVjaWZpYyBiYXNlLTI1NiBudW1iZXIKKyAgZmllbGRzIGluIHRhcmZpbGUuCisKKy0gSXNzdWUgIzEzMDI1OiBtaW1ldHlwZXMgaXMgbm93IHJlYWRpbmcgTUlNRSB0eXBlcyB1c2luZyB0aGUgVVRGLTggZW5jb2RpbmcsCisgIGluc3RlYWQgb2YgdGhlIGxvY2FsZSBlbmNvZGluZy4KKworLSBJc3N1ZSAjMTA2NTM6IE9uIFdpbmRvd3MsIHVzZSBzdHJmdGltZSgpIGluc3RlYWQgb2Ygd2NzZnRpbWUoKSBiZWNhdXNlCisgIHdjc2Z0aW1lKCkgZG9lc24ndCBmb3JtYXQgdGltZSB6b25lIGNvcnJlY3RseS4KKworLSBJc3N1ZSAjMTMxNTA6IFRoZSB0b2tlbml6ZSBtb2R1bGUgZG9lc24ndCBjb21waWxlIGxhcmdlIHJlZ3VsYXIgZXhwcmVzc2lvbnMKKyAgYXQgc3RhcnR1cCBhbnltb3JlLgorCistIElzc3VlICMxMTE3MTogRml4IGRpc3R1dGlscy5zeXNjb25maWcuZ2V0X21ha2VmaWxlX2ZpbGVuYW1lIHdoZW4gUHl0aG9uIHdhcworICBjb25maWd1cmVkIHdpdGggZGlmZmVyZW50IHByZWZpeCBhbmQgZXhlYy1wcmVmaXguCisKKy0gSXNzdWUgIzExMjU0OiBUZWFjaCBkaXN0dXRpbHMgYW5kIHBhY2thZ2luZyB0byBjb21waWxlIC5weWMgYW5kIC5weW8gZmlsZXMgaW4KKyAgUEVQIDMxNDctY29tcGxpYW50IF9fcHljYWNoZV9fIGRpcmVjdG9yaWVzLgorCistIElzc3VlICM3MzY3OiBGaXggcGtndXRpbC53YWxrX3BhdGhzIHRvIHNraXAgZGlyZWN0b3JpZXMgd2hvc2UKKyAgY29udGVudHMgY2Fubm90IGJlIHJlYWQuCisKKy0gSXNzdWUgIzMxNjM6IFRoZSBzdHJ1Y3QgbW9kdWxlIGdldHMgbmV3IGZvcm1hdCBjaGFyYWN0ZXJzICduJyBhbmQgJ04nCisgIHN1cHBvcnRpbmcgQyBpbnRlZ2VyIHR5cGVzIGBgc3NpemVfdGBgIGFuZCBgYHNpemVfdGBgLCByZXNwZWN0aXZlbHkuCisKKy0gSXNzdWUgIzEzMDk5OiBGaXggc3FsaXRlMy5DdXJzb3IubGFzdHJvd2lkIHVuZGVyIGEgVHVya2lzaCBsb2NhbGUuCisgIFJlcG9ydGVkIGFuZCBkaWFnbm9zZWQgYnkgVGhvbWFzIEtsdXl2ZXIuCisKKy0gSXNzdWUgIzEzMDg3OiBCdWZmZXJlZFJlYWRlci5zZWVrKCkgbm93IGFsd2F5cyByYWlzZXMgVW5zdXBwb3J0ZWRPcGVyYXRpb24KKyAgaWYgdGhlIHVuZGVybHlpbmcgcmF3IHN0cmVhbSBpcyB1bnNlZWthYmxlLCBldmVuIGlmIHRoZSBzZWVrIGNvdWxkIGJlCisgIHNhdGlzZmllZCB1c2luZyB0aGUgaW50ZXJuYWwgYnVmZmVyLiAgUGF0Y2ggYnkgSm9obiBPJ0Nvbm5vci4KKworLSBJc3N1ZSAjNzY4OTogQWxsb3cgcGlja2xpbmcgb2YgZHluYW1pY2FsbHkgY3JlYXRlZCBjbGFzc2VzIHdoZW4gdGhlaXIKKyAgbWV0YWNsYXNzIGlzIHJlZ2lzdGVyZWQgd2l0aCBjb3B5cmVnLiAgUGF0Y2ggYnkgTmljb2xhcyBNLiBUaGnDqXJ5IGFuZCBDcmFpZworICBDaXRyby4KKworLSBJc3N1ZSAjMTMwMzQ6IFdoZW4gZGVjb2Rpbmcgc29tZSBTU0wgY2VydGlmaWNhdGVzLCB0aGUgc3ViamVjdEFsdE5hbWUKKyAgZXh0ZW5zaW9uIGNvdWxkIGJlIHVucmVwb3J0ZWQuCisKKy0gSXNzdWUgIzk4NzE6IFByZXZlbnQgSURMRSAzIGNyYXNoIHdoZW4gZ2l2ZW4gYnl0ZSBzdGluZ3MKKyAgd2l0aCBpbnZhbGlkIGhleCBlc2NhcGUgc2VxdWVuY2VzLCBsaWtlIGInXHgwJy4KKyAgKE9yaWdpbmFsIHBhdGNoIGJ5IENsYXVkaXUgUG9wYS4pCisKKy0gSXNzdWUgIzEyMzA2OiBFeHBvc2UgdGhlIHJ1bnRpbWUgdmVyc2lvbiBvZiB0aGUgemxpYiBDIGxpYnJhcnkgYXMgYSBjb25zdGFudCwKKyAgWkxJQl9SVU5USU1FX1ZFUlNJT04sIGluIHRoZSB6bGliIG1vZHVsZS4gUGF0Y2ggYnkgVG9yc3RlbiBMYW5kc2Nob2ZmLgorCistIElzc3VlICMxMjk1OTogQWRkIGNvbGxlY3Rpb25zLkNoYWluTWFwIHRvIGNvbGxlY3Rpb25zLl9fYWxsX18uCisKKy0gSXNzdWUgIzg5MzM6IGRpc3R1dGlscycgUEtHLUlORk8gZmlsZXMgYW5kIHBhY2thZ2luZydzIE1FVEFEQVRBIGZpbGVzIHdpbGwKKyAgbm93IGNvcnJlY3RseSByZXBvcnQgTWV0YWRhdGEtVmVyc2lvbjogMS4xIGluc3RlYWQgb2YgMS4wIGlmIGEgQ2xhc3NpZmllciBvcgorICBEb3dubG9hZC1VUkwgZmllbGQgaXMgcHJlc2VudC4KKworLSBJc3N1ZSAjMTI1Njc6IEFkZCBjdXJzZXMudW5nZXRfd2NoKCkgZnVuY3Rpb24uIFB1c2ggYSBjaGFyYWN0ZXIgc28gdGhlIG5leHQKKyAgZ2V0X3djaCgpIHdpbGwgcmV0dXJuIGl0LgorCistIElzc3VlICM5NTYxOiBkaXN0dXRpbHMgYW5kIHBhY2thZ2luZyBub3cgd3JpdGVzIGVnZy1pbmZvIGZpbGVzIHVzaW5nIFVURi04LAorICBpbnN0ZWFkIG9mIHRoZSBsb2NhbGUgZW5jb2RpbmcuCisKKy0gSXNzdWUgIzgyODY6IFRoZSBkaXN0dXRpbHMgY29tbWFuZCBzZGlzdCB3aWxsIHByaW50IGEgd2FybmluZyBtZXNzYWdlIGluc3RlYWQKKyAgb2YgY3Jhc2hpbmcgd2hlbiBhbiBpbnZhbGlkIHBhdGggaXMgZ2l2ZW4gaW4gdGhlIG1hbmlmZXN0IHRlbXBsYXRlLgorCistIElzc3VlICMxMjg0MTogdGFyZmlsZSB1bm5lY2Vzc2FyaWx5IGNoZWNrZWQgdGhlIGV4aXN0ZW5jZSBvZiBudW1lcmljYWwgdXNlcgorICBhbmQgZ3JvdXAgaWRzIG9uIGV4dHJhY3Rpb24uIElmIG9uZSBvZiB0aGVtIGRpZCBub3QgZXhpc3QgdGhlIHJlc3BlY3RpdmUgaWQKKyAgb2YgdGhlIGN1cnJlbnQgdXNlciAoaS5lLiByb290KSB3YXMgdXNlZCBmb3IgdGhlIGZpbGUgYW5kIG93bmVyc2hpcAorICBpbmZvcm1hdGlvbiB3YXMgbG9zdC4KKworLSBJc3N1ZSAjMTI4ODg6IEZpeCBhIGJ1ZyBpbiBIVE1MUGFyc2VyLnVuZXNjYXBlIHRoYXQgcHJldmVudGVkIGl0IHRvIGVzY2FwZQorICBtb3JlIHRoYW4gMTI4IGVudGl0aWVzLiAgUGF0Y2ggYnkgUGV0ZXIgT3R0ZW4uCisKKy0gSXNzdWUgIzEyODc4OiBFeHBvc2UgYSBfX2RpY3RfXyBhdHRyaWJ1dGUgb24gaW8uSU9CYXNlIGFuZCBpdHMgc3ViY2xhc3Nlcy4KKworLSBJc3N1ZSAjMTI2MzY6IElETEUgcmVhZHMgdGhlIGNvZGluZyBjb29raWUgd2hlbiBleGVjdXRpbmcgYSBQeXRob24gc2NyaXB0LgorCistIElzc3VlICMxMjQ5NDogT24gZXJyb3IsIGNhbGwoKSwgY2hlY2tfY2FsbCgpLCBjaGVja19vdXRwdXQoKSBhbmQKKyAgZ2V0c3RhdHVzb3V0cHV0KCkgZnVuY3Rpb25zIG9mIHRoZSBzdWJwcm9jZXNzIG1vZHVsZSBub3cga2lsbCB0aGUgcHJvY2VzcywKKyAgcmVhZCBpdHMgc3RhdHVzICh0byBhdm9pZCB6b21iaXMpIGFuZCBjbG9zZSBwaXBlcy4KKworLSBJc3N1ZSAjMTI3MjA6IEV4cG9zZSBsb3ctbGV2ZWwgTGludXggZXh0ZW5kZWQgZmlsZSBhdHRyaWJ1dGUgZnVuY3Rpb25zIGluIG9zLgorCistIElzc3VlICMxMDk0NjogVGhlIGRpc3R1dGlscyBjb21tYW5kcyBiZGlzdF9kdW1iLCBiZGlzdF93aW5pbnN0IGFuZCBiZGlzdF9tc2kKKyAgbm93IHJlc3BlY3QgYSAtLXNraXAtYnVpbGQgb3B0aW9uIGdpdmVuIHRvIGJkaXN0LiAgVGhlIHBhY2thZ2luZyBjb21tYW5kcworICB3ZXJlIGZpeGVkIHRvby4KKworLSBJc3N1ZSAjMTI4NDc6IEZpeCBhIGNyYXNoIHdpdGggbmVnYXRpdmUgUFVUIGFuZCBMT05HX0JJTlBVVCBhcmd1bWVudHMgaW4KKyAgdGhlIEMgcGlja2xlIGltcGxlbWVudGF0aW9uLgorCistIElzc3VlICMxMTU2NDogQXZvaWQgY3Jhc2hlcyB3aGVuIHRyeWluZyB0byBwaWNrbGUgaHVnZSBvYmplY3RzIG9yIGNvbnRhaW5lcnMKKyAgKG1vcmUgdGhhbiAyKiozMSBpdGVtcykuICBJbnN0ZWFkLCBpbiBtb3N0IGNhc2VzLCBhbiBPdmVyZmxvd0Vycm9yIGlzIHJhaXNlZC4KKworLSBJc3N1ZSAjMTIyODc6IEZpeCBhIHN0YWNrIGNvcnJ1cHRpb24gaW4gb3NzYXVkaW9kZXYgbW9kdWxlIHdoZW4gdGhlIEZEIGlzCisgIGdyZWF0ZXIgdGhhbiBGRF9TRVRTSVpFLgorCistIElzc3VlICMxMjgzOTogRml4IGNyYXNoIGluIHpsaWIgbW9kdWxlIGR1ZSB0byB2ZXJzaW9uIG1pc21hdGNoLgorICBGaXggYnkgUmljaGFyZCBNLiBUZXcuCisKKy0gSXNzdWUgIzk5MjM6IFRoZSBtYWlsY2FwIG1vZHVsZSBub3cgY29ycmVjdGx5IHVzZXMgdGhlIHBsYXRmb3JtIHBhdGgKKyAgc2VwYXJhdG9yIGZvciB0aGUgTUFJTENBUCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvbiBub24tUE9TSVggcGxhdGZvcm1zLgorCistIElzc3VlICMxMjgzNTogRm9sbG93IHVwIHRvICM2NTYwIHRoYXQgdW5jb25kaXRpb25hbGx5IHByZXZlbnRzIHVzZSBvZiB0aGUKKyAgdW5lbmNyeXB0ZWQgc2VuZG1zZy9yZWN2bXNnIEFQSXMgb24gU1NMIHdyYXBwZWQgc29ja2V0cy4gUGF0Y2ggYnkgRGF2aWQKKyAgV2F0c29uLgorCistIElzc3VlICMxMjgwMzogU1NMQ29udGV4dC5sb2FkX2NlcnRfY2hhaW4oKSBub3cgYWNjZXB0cyBhIHBhc3N3b3JkIGFyZ3VtZW50CisgIHRvIGJlIHVzZWQgaWYgdGhlIHByaXZhdGUga2V5IGlzIGVuY3J5cHRlZC4gIFBhdGNoIGJ5IEFkYW0gU2ltcGtpbnMuCisKKy0gSXNzdWUgIzExNjU3OiBGaXggc2VuZGluZyBmaWxlIGRlc2NyaXB0b3JzIG92ZXIgMjU1IG92ZXIgYSBtdWx0aXByb2Nlc3NpbmcKKyAgUGlwZS4KKworLSBJc3N1ZSAjMTI4MTE6IHRhYm5hbm55LmNoZWNrKCkgbm93IHByb21wdGx5IGNsb3NlcyBjaGVja2VkIGZpbGVzLiBQYXRjaCBieQorICBBbnRob255IEJyaWdncy4KKworLSBJc3N1ZSAjNjU2MDogVGhlIHNlbmRtc2cvcmVjdm1zZyBBUEkgaXMgbm93IGV4cG9zZWQgYnkgdGhlIHNvY2tldCBtb2R1bGUKKyAgd2hlbiBwcm92aWRlZCBieSB0aGUgdW5kZXJseWluZyBwbGF0Zm9ybSwgc3VwcG9ydGluZyBwcm9jZXNzaW5nIG9mCisgIGFuY2lsbGFyeSBkYXRhIGluIHB1cmUgUHl0aG9uIGNvZGUuIFBhdGNoIGJ5IERhdmlkIFdhdHNvbiBhbmQgSGVpa28gV3VuZHJhbS4KKworLSBJc3N1ZSAjMTIzMjY6IE9uIExpbnV4LCBzeXMucGxhdGZvcm0gZG9lc24ndCBjb250YWluIHRoZSBtYWpvciB2ZXJzaW9uCisgIGFueW1vcmUuIEl0IGlzIG5vdyBhbHdheXMgJ2xpbnV4JywgaW5zdGVhZCBvZiAnbGludXgyJyBvciAnbGludXgzJyBkZXBlbmRpbmcKKyAgb24gdGhlIExpbnV4IHZlcnNpb24gdXNlZCB0byBidWlsZCBQeXRob24uCisKKy0gSXNzdWUgIzEyMjEzOiBGaXggYSBidWZmZXJpbmcgYnVnIHdpdGggaW50ZXJsZWF2ZWQgcmVhZHMgYW5kIHdyaXRlcyB0aGF0CisgIGNvdWxkIGFwcGVhciBvbiBCdWZmZXJlZFJhbmRvbSBzdHJlYW1zLgorCistIElzc3VlICMxMjc3ODogUmVkdWNlIG1lbW9yeSBjb25zdW1wdGlvbiB3aGVuIEpTT04tZW5jb2RpbmcgYSBsYXJnZQorICBjb250YWluZXIgb2YgbWFueSBzbWFsbCBvYmplY3RzLgorCistIElzc3VlICMxMjY1MDogRml4IGEgcmFjZSBjb25kaXRpb24gd2hlcmUgYSBzdWJwcm9jZXNzLlBvcGVuIGNvdWxkIGxlYWsKKyAgcmVzb3VyY2VzIChGRC96b21iaWUpIHdoZW4ga2lsbGVkIGF0IHRoZSB3cm9uZyB0aW1lLgorCistIElzc3VlICMxMjc0NDogRml4IGluZWZmaWNpZW50IHJlcHJlc2VudGF0aW9uIG9mIGludGVnZXJzIGJldHdlZW4gMioqMzEgYW5kCisgIDIqKjYzIG9uIHN5c3RlbXMgd2l0aCBhIDY0LWJpdCBDICJsb25nIi4KKworLSBJc3N1ZSAjMTI2NDY6IEFkZCBhbiAnZW9mJyBhdHRyaWJ1dGUgdG8gemxpYi5EZWNvbXByZXNzLCB0byBtYWtlIGl0IGVhc2llciB0bworICBkZXRlY3QgdHJ1bmNhdGVkIGlucHV0IHN0cmVhbXMuCisKKy0gSXNzdWUgIzExNTEzOiBGaXggZXhjZXB0aW9uIGhhbmRsaW5nIGBgdGFyZmlsZS5UYXJGaWxlLmd6b3BlbigpYGAgd2hlbgorICB0aGUgZmlsZSBjYW5ub3QgYmUgb3BlbmVkLgorCistIElzc3VlICMxMjY4NzogRml4IGEgcG9zc2libGUgYnVmZmVyaW5nIGJ1ZyB3aGVuIHVucGlja2xpbmcgdGV4dCBtb2RlCisgIChwcm90b2NvbCAwLCBtb3N0bHkpIHBpY2tsZXMuCisKKy0gSXNzdWUgIzEwMDg3OiBGaXggdGhlIGh0bWwgb3V0cHV0IGZvcm1hdCBvZiB0aGUgY2FsZW5kYXIgbW9kdWxlLgorCistIElzc3VlICMxMjU0MDogUHJldmVudCB6b21iaWUgSURMRSBwcm9jZXNzZXMgb24gV2luZG93cyBkdWUgdG8gY2hhbmdlcworICBpbiBvcy5raWxsKCkuCisKKy0gSXNzdWUgIzEzMTIxOiBhZGQgc3VwcG9ydCBmb3IgaW5wbGFjZSBtYXRoIG9wZXJhdG9ycyB0byBjb2xsZWN0aW9ucy5Db3VudGVyLgorCistIEFkZCBzdXBwb3J0IGZvciB1bmFyeSBwbHVzIGFuZCB1bmFyeSBtaW51cyB0byBjb2xsZWN0aW9ucy5Db3VudGVyLgorCistIElzc3VlICMxMjY4MzogdXJscGFyc2UgdXBkYXRlZCB0byBpbmNsdWRlIHN2biBhcyBzY2hlbWVzIHRoYXQgdXNlcyByZWxhdGl2ZQorICBwYXRocy4gKHN2biBmcm9tIDEuNSBvbndhcmRzIHN1cHBvcnQgcmVsYXRpdmUgcGF0aCkuCisKKy0gSXNzdWUgIzEyNjU1OiBFeHBvc2UgZnVuY3Rpb25zIGZyb20gc2NoZWQuaCBpbiB0aGUgb3MgbW9kdWxlOiBzY2hlZF95aWVsZCgpLAorICBzY2hlZF9zZXRzY2hlZHVsZXIoKSwgc2NoZWRfZ2V0c2NoZWR1bGVyKCksIHNjaGVkX3NldHBhcmFtKCksCisgIHNjaGVkX2dldF9taW5fcHJpb3JpdHkoKSwgc2NoZWRfZ2V0X21heF9wcmlvcml0eSgpLCBzY2hlZF9ycl9nZXRfaW50ZXJ2YWwoKSwKKyAgc2NoZWRfZ2V0YWZmaW5pdHkoKSwgc2NoZWRfc2V0YWZmaW5pdHkoKS4KKworLSBBZGQgVGhyZWFkRXJyb3IgdG8gdGhyZWFkaW5nLl9fYWxsX18uCisKKy0gSXNzdWVzICMxMTEwNCwgIzg2ODg6IEZpeCB0aGUgYmVoYXZpb3Igb2YgZGlzdHV0aWxzJyBzZGlzdCBjb21tYW5kIHdpdGgKKyAgbWFudWFsbHktbWFpbnRhaW5lZCBNQU5JRkVTVCBmaWxlcy4KKworLSBJc3N1ZSAjMTEyODE6IHNtdHBsaWIuU1RNUCBnZXRzIHNvdXJjZV9hZGRyZXNzIHBhcmFtZXRlciwgd2hpY2ggYWRkcyB0aGUKKyAgYWJpbGl0eSB0byBiaW5kIHRvIHNwZWNpZmljIHNvdXJjZSBhZGRyZXNzIG9uIGEgbWFjaGluZSB3aXRoIG11bHRpcGxlCisgIGludGVyZmFjZXMuIFBhdGNoIGJ5IFBhdWxvIFNjYXJkaW5lLgorCistIElzc3VlICMxMjQ2NDogdGVtcGZpbGUuVGVtcG9yYXJ5RGlyZWN0b3J5LmNsZWFudXAoKSBzaG91bGQgbm90IGZvbGxvdworICBzeW1saW5rczogZml4IGl0LiBQYXRjaCBieSBQZXRyaSBMZWh0aW5lbi4KKworLSBJc3N1ZSAjODg4NzogInB5ZG9jIHNvbWVidWlsdGluLnNvbWVtZXRob2QiIChvciBoZWxwKCdzb21lYnVpbHRpbi5zb21lbWV0aG9kJykKKyAgaW4gUHl0aG9uIGNvZGUpIG5vdyBmaW5kcyB0aGUgZG9jIG9mIHRoZSBtZXRob2QuCisKKy0gSXNzdWUgIzEwOTY4OiBSZW1vdmUgaW5kaXJlY3Rpb24gaW4gdGhyZWFkaW5nLiAgVGhlIHB1YmxpYyBuYW1lcyAoRXZlbnQsCisgIENvbmRpdGlvbiwgZXRjLikgdXNlZCB0byBiZSBmYWN0b3J5IGZ1bmN0aW9ucyByZXR1cm5pbmcgaW5zdGFuY2VzIG9mIGhpZGRlbgorICBjbGFzc2VzIChfRXZlbnQsIF9Db25kaXRpb24sIGV0Yy4pLCBiZWNhdXNlIChpZiBHdWlkbyByZWNhbGxzIGNvcnJlY3RseSkgdGhpcworICBjb2RlIHByZS1kYXRlcyB0aGUgYWJpbGl0eSB0byBzdWJjbGFzcyBleHRlbnNpb24gdHlwZXMuICBJdCBpcyBub3cgcG9zc2libGUKKyAgdG8gaW5oZXJpdCBmcm9tIHRoZXNlIGNsYXNzZXMgd2l0aG91dCBoYXZpbmcgdG8gaW1wb3J0IHRoZSBwcml2YXRlCisgIHVuZGVyc2NvcmVkIG5hbWVzIGxpa2UgbXVsdGlwcm9jZXNzaW5nIGRpZC4KKworLSBJc3N1ZSAjOTcyMzogQWRkIHNobGV4LnF1b3RlIGZ1bmN0aW9ucywgdG8gZXNjYXBlIGZpbGVuYW1lcyBhbmQgY29tbWFuZAorICBsaW5lcy4KKworLSBJc3N1ZSAjMTI2MDM6IEZpeCBweWRvYy5zeW5vcHNpcygpIG9uIGZpbGVzIHdpdGggbm9uLW5lZ2F0aXZlIHN0X210aW1lLgorCistIElzc3VlICMxMjUxNDogVXNlIHRyeS9maW5hbGx5IHRvIGFzc3VyZSB0aGUgdGltZWl0IG1vZHVsZSByZXN0b3JlcyBnYXJiYWdlCisgIGNvbGxlY3Rpb25zIHdoZW4gaXQgaXMgZG9uZS4KKworLSBJc3N1ZSAjMTI2MDc6IEluIHN1YnByb2Nlc3MsIGZpeCBpc3N1ZSB3aGVyZSBpZiBzdGRpbiwgc3Rkb3V0IG9yIHN0ZGVyciBpcworICBnaXZlbiBhcyBhIGxvdyBmZCwgaXQgZ2V0cyBvdmVyd3JpdHRlbi4KKworLSBJc3N1ZSAjMTI1OTA6IElETEUgZWRpdG9yIHdpbmRvdyBub3cgYWx3YXlzIGRpc3BsYXlzIHRoZSBmaXJzdCBsaW5lCisgIHdoZW4gb3BlbmluZyBhIGxvbmcgZmlsZS4gIFdpdGggVGsgOC41LCB0aGUgZmlyc3QgbGluZSB3YXMgaGlkZGVuLgorCistIElzc3VlICMxMjU3NjogRml4IHVybG9wZW4gYmVoYXZpb3Igb24gc2l0ZXMgd2hpY2ggZG8gbm90IHNlbmQgKG9yIG9iZnVzY2F0ZXMpCisgIENvbm5lY3Rpb246Y2xvc2UgaGVhZGVyLgorCistIElzc3VlICMxMjEwMjogRG9jdW1lbnQgdGhhdCBidWZmZXJlZCBmaWxlcyBtdXN0IGJlIGZsdXNoZWQgYmVmb3JlIGJlaW5nIHVzZWQKKyAgd2l0aCBtbWFwLiBQYXRjaCBieSBTdGVmZmVuIERhb2RlIE51cnBtZXNvLgorCistIElzc3VlICMxMjU2MDogQnVpbGQgbGlicHl0aG9uLnNvIG9uIE9wZW5CU0QuIFBhdGNoIGJ5IFN0ZWZhbiBTcGVybGluZy4KKworLSBJc3N1ZSAjMTgxMzogRml4IGNvZGVjIGxvb2t1cCB1bmRlciBUdXJraXNoIGxvY2FsZXMuCisKKy0gSXNzdWUgIzEyNTkxOiBJbXByb3ZlIHN1cHBvcnQgb2YgInVuaXZlcnNhbCBuZXdsaW5lcyIgaW4gdGhlIHN1YnByb2Nlc3MKKyAgbW9kdWxlOiB0aGUgcGlwZWQgc3RyZWFtcyBjYW4gbm93IGJlIHByb3Blcmx5IHJlYWQgZnJvbSBvciB3cml0dGVuIHRvLgorCistIElzc3VlICMxMjU5MTogQWxsb3cgaW8uVGV4dElPV3JhcHBlciB0byB3b3JrIHdpdGggcmF3IElPIG9iamVjdHMgKHdpdGhvdXQKKyAgYSByZWFkMSgpIG1ldGhvZCksIGFuZCBhZGQgYSAqd3JpdGVfdGhyb3VnaCogcGFyYW1ldGVyIHRvIG1hbmRhdGUKKyAgdW5idWZmZXJlZCB3cml0ZXMuCisKKy0gSXNzdWUgIzEwODgzOiBGaXggc29ja2V0IGxlYWtzIGluIHVybGxpYi5yZXF1ZXN0IHdoZW4gdXNpbmcgRlRQLgorCistIElzc3VlICMxMjU5MjogTWFrZSBQeXRob24gYnVpbGQgb24gT3BlbkJTRCA1IChhbmQgZnV0dXJlIG1ham9yIHJlbGVhc2VzKS4KKworLSBJc3N1ZSAjMTIzNzI6IFBPU0lYIHNlbWFwaG9yZXMgYXJlIGJyb2tlbiBvbiBBSVg6IGRvbid0IHVzZSB0aGVtLgorCistIElzc3VlICMxMjU1MTogUHJvdmlkZSBhIGdldF9jaGFubmVsX2JpbmRpbmcoKSBtZXRob2Qgb24gU1NMIHNvY2tldHMgc28gYXMKKyAgdG8gZ2V0IGNoYW5uZWwgYmluZGluZyBkYXRhIGZvciB0aGUgY3VycmVudCBTU0wgc2Vzc2lvbiAob25seSB0aGUKKyAgInRscy11bmlxdWUiIGNoYW5uZWwgYmluZGluZyBpcyBpbXBsZW1lbnRlZCkuICBUaGlzIGFsbG93cyB0aGUgaW1wbGVtZW50YXRpb24KKyAgb2YgY2VydGFpbiBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zIHN1Y2ggYXMgU0NSQU0tU0hBLTEtUExVUy4gIFBhdGNoIGJ5CisgIEphY2VrIEtvbmllY3pueS4KKworLSBJc3N1ZSAjNjY1MTk0OiBlbWFpbC51dGlscyBub3cgaGFzIGZvcm1hdF9kYXRldGltZSBhbmQgcGFyc2VkYXRlX3RvX2RhdGV0aW1lCisgIGZ1bmN0aW9ucywgYWxsb3dpbmcgZm9yIHJvdW5kIHRyaXBwaW5nIG9mIFJGQzI4MjIgZm9ybWF0IGRhdGVzLgorCistIElzc3VlICMxMjU3MTogQWRkIGEgcGxhdC1saW51eDMgZGlyZWN0b3J5IG1pcnJvcmluZyB0aGUgcGxhdC1saW51eDIKKyAgZGlyZWN0b3J5LCBzbyB0aGF0ICJpbXBvcnQgRExGQ04iIGFuZCBvdGhlciBzaW1pbGFyIGltcG9ydHMgd29yayBvbgorICBMaW51eCAzLjAuCisKKy0gSXNzdWUgIzc0ODQ6IHNtdHBsaWIgbm8gbG9uZ2VyIHB1dHMgPD4gYXJvdW5kIGFkZHJlc3NlcyBpbiBWUkZZIGFuZCBFWFBOCisgIGNvbW1hbmRzOyB0aGV5IGFyZW4ndCByZXF1aXJlZCBhbmQgaW4gZmFjdCBwb3N0Zml4IGRvZXNuJ3Qgc3VwcG9ydCB0aGF0IGZvcm0uCisKKy0gSXNzdWUgIzEyMjczOiBSZW1vdmUgYXN0Ll9fdmVyc2lvbl9fLiBBU1QgY2hhbmdlcyBjYW4gYmUgYWNjb3VudGVkIGZvciBieQorICBjaGVja2luZyBzeXMudmVyc2lvbl9pbmZvIG9yIHN5cy5fbWVyY3VyaWFsLgorCistIFNpbGVuY2Ugc3B1cmlvdXMgImJyb2tlbiBwaXBlIiB0cmFjZWJhY2tzIHdoZW4gc2h1dHRpbmcgZG93biBhCisgIFByb2Nlc3NQb29sRXhlY3V0b3IuCisKKy0gRml4IHBvdGVudGlhbCByZXNvdXJjZSBsZWFrcyBpbiBjb25jdXJyZW50LmZ1dHVyZXMuUHJvY2Vzc1Bvb2xFeGVjdXRvcgorICBieSBqb2luaW5nIGFsbCBxdWV1ZXMgYW5kIHByb2Nlc3NlcyB3aGVuIHNodXRkb3duKCkgaXMgY2FsbGVkLgorCistIElzc3VlICMxMTYwMzogRml4IGEgY3Jhc2ggd2hlbiBfX3N0cl9fIGlzIHJlYm91bmQgYXMgX19yZXByX18uICBQYXRjaCBieQorICBBbmRyZWFzIFN0w7xocmsuCisKKy0gSXNzdWUgIzExMzIxOiBGaXggYSBjcmFzaCB3aXRoIG11bHRpcGxlIGltcG9ydHMgb2YgdGhlIF9waWNrbGUgbW9kdWxlIHdoZW4KKyAgZW1iZWRkaW5nIFB5dGhvbi4gIFBhdGNoIGJ5IEFuZHJlYXMgU3TDvGhyay4KKworLSBJc3N1ZSAjNjc1NTogQWRkIGdldF93Y2goKSBtZXRob2QgdG8gY3Vyc2VzLndpbmRvdyBjbGFzcy4gUGF0Y2ggYnkgScOxaWdvCisgIFNlcm5hLgorCistIEFkZCBjZ2kuY2xvc2Vsb2coKSBmdW5jdGlvbiB0byBjbG9zZSB0aGUgbG9nIGZpbGUuCisKKy0gSXNzdWUgIzEyNTAyOiBhc3luY29yZTogZml4IHBvbGxpbmcgbG9vcCB3aXRoIEFGX1VOSVggc29ja2V0cy4KKworLSBJc3N1ZSAjNDM3NjogY3R5cGVzIG5vdyBzdXBwb3J0cyBuZXN0ZWQgc3RydWN0dXJlcyBpbiBhIGVuZGlhbiBkaWZmZXJlbnQgdGhhbgorICB0aGUgcGFyZW50IHN0cnVjdHVyZS4gUGF0Y2ggYnkgVmxhZCBSaXNjdXRpYS4KKworLSBSYWlzZSBWYWx1ZUVycm9yIHdoZW4gYXR0ZW1wdGluZyB0byBzZXQgdGhlIF9DSFVOS19TSVpFIGF0dHJpYnV0ZSBvZiBhCisgIFRleHRJT1dyYXBwZXIgdG8gYSBodWdlIHZhbHVlLCBub3QgVHlwZUVycm9yLgorCistIElzc3VlICMxMjUwNDogQ2xvc2UgZmlsZSBoYW5kbGVzIGluIGEgdGltZWx5IG1hbm5lciBpbiBwYWNrYWdpbmcuZGF0YWJhc2UuCisgIFRoaXMgZml4ZXMgYSBidWcgd2l0aCB0aGUgcmVtb3ZlICh1bmluc3RhbGwpIGZlYXR1cmUgb24gV2luZG93cy4KKworLSBJc3N1ZXMgIzEyMTY5IGFuZCAjMTA1MTA6IEZhY3RvciBvdXQgY29kZSB1c2VkIGJ5IHZhcmlvdXMgcGFja2FnaW5nIGNvbW1hbmRzCisgIHRvIG1ha2UgSFRUUCBQT1NUIHJlcXVlc3RzLCBhbmQgbWFrZSBzdXJlIGl0IHVzZXMgQ1JMRi4KKworLSBJc3N1ZSAjMTIwMTY6IE11bHRpYnl0ZSBDSksgZGVjb2RlcnMgbm93IHJlc3luY2hyb25pemUgZmFzdGVyLiBUaGV5IG9ubHkKKyAgaWdub3JlIHRoZSBmaXJzdCBieXRlIG9mIGFuIGludmFsaWQgYnl0ZSBzZXF1ZW5jZS4gRm9yIGV4YW1wbGUsCisgIGInXHhmZlxuJy5kZWNvZGUoJ2diMjMxMicsICdyZXBsYWNlJykgZ2l2ZXMgJ1x1ZmZmZFxuJyBpbnN0ZWFkIG9mICdcdWZmZmQnLgorCistIElzc3VlICMxMjQ1OTogdGltZS5zbGVlcCgpIG5vdyByYWlzZXMgYSBWYWx1ZUVycm9yIGlmIHRoZSBzbGVlcCBsZW5ndGggaXMKKyAgbmVnYXRpdmUsIGluc3RlYWQgb2YgYW4gaW5maW5pdGUgc2xlZXAgb24gV2luZG93cyBvciByYWlzaW5nIGFuIElPRXJyb3Igb24KKyAgTGludXggZm9yIGV4YW1wbGUsIHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3VyIG9uIGFsbCBwbGF0Zm9ybXMuCisKKy0gSXNzdWUgIzEyNDUxOiBweWRvYzogaHRtbF9nZXRmaWxlKCkgbm93IHVzZXMgdG9rZW5pemUub3BlbigpIHRvIHN1cHBvcnQKKyAgUHl0aG9uIHNjcmlwdHMgdXNpbmcgYSBlbmNvZGluZyBkaWZmZXJlbnQgdGhhbiBVVEYtOCAocmVhZCB0aGUgY29kaW5nIGNvb2tpZQorICBvZiB0aGUgc2NyaXB0KS4KKworLSBJc3N1ZSAjMTI0OTM6IHN1YnByb2Nlc3M6IFBvcGVuLmNvbW11bmljYXRlKCkgbm93IGFsc28gaGFuZGxlcyBFSU5UUiBlcnJvcnMKKyAgaWYgdGhlIHByb2Nlc3MgaGFzIG9ubHkgb25lIHBpcGUuCisKKy0gSXNzdWUgIzEyNDY3OiB3YXJuaW5nczogZml4IGEgcmFjZSBjb25kaXRpb24gaWYgYSB3YXJuaW5nIGlzIGVtaXR0ZWQgYXQKKyAgc2h1dGRvd24sIGlmIGdsb2JhbHMoKVsnX19maWxlX18nXSBpcyBOb25lLgorCistIElzc3VlICMxMjQ1MTogcHlkb2M6IGltcG9ydGZpbGUoKSBub3cgb3BlbnMgdGhlIFB5dGhvbiBzY3JpcHQgaW4gYmluYXJ5IG1vZGUsCisgIGluc3RlYWQgb2YgdGV4dCBtb2RlIHVzaW5nIHRoZSBsb2NhbGUgZW5jb2RpbmcsIHRvIGF2b2lkIGVuY29kaW5nIGlzc3Vlcy4KKworLSBJc3N1ZSAjMTI0NTE6IHJ1bnB5OiBydW5fcGF0aCgpIG5vdyBvcGVucyB0aGUgUHl0aG9uIHNjcmlwdCBpbiBiaW5hcnkgbW9kZSwKKyAgaW5zdGVhZCBvZiB0ZXh0IG1vZGUgdXNpbmcgdGhlIGxvY2FsZSBlbmNvZGluZywgdG8gc3VwcG9ydCBvdGhlciBlbmNvZGluZ3MKKyAgdGhhbiBVVEYtOCAoc2NyaXB0cyB1c2luZyB0aGUgY29kaW5nIGNvb2tpZSkuCisKKy0gSXNzdWUgIzEyNDUxOiB4bWwuZG9tLnB1bGxkb206IHBhcnNlKCkgbm93IG9wZW5zIGZpbGVzIGluIGJpbmFyeSBtb2RlIGluc3RlYWQKKyAgb2YgdGhlIHRleHQgbW9kZSAodXNpbmcgdGhlIGxvY2FsZSBlbmNvZGluZykgdG8gYXZvaWQgZW5jb2RpbmcgaXNzdWVzLgorCistIElzc3VlICMxMjE0NzogQWRqdXN0IHRoZSBuZXctaW4tMy4yIHNtdHBsaWIuc2VuZF9tZXNzYWdlIG1ldGhvZCBmb3IgYmV0dGVyCisgIGNvbmZvcm1hbmNlIHRvIHRoZSBSRkNzOiAgY29ycmVjdGx5IGhhbmRsZSBTZW5kZXIgYW5kIFJlc2VudC0gaGVhZGVycy4KKworLSBJc3N1ZSAjMTIzNTI6IEZpeCBhIGRlYWRsb2NrIGluIG11bHRpcHJvY2Vzc2luZy5IZWFwIHdoZW4gYSBibG9jayBpcyBmcmVlZCBieQorICB0aGUgZ2FyYmFnZSBjb2xsZWN0b3Igd2hpbGUgdGhlIEhlYXAgbG9jayBpcyBoZWxkLgorCistIElzc3VlICMxMjQ2MjogdGltZS5zbGVlcCgpIG5vdyBpbW1lZGlhdGVseSBjYWxscyB0aGUgKFB5dGhvbikgc2lnbmFsIGhhbmRsZXIKKyAgaWYgaXQgaXMgaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwsIGluc3RlYWQgb2YgaGF2aW5nIHRvIHdhaXQgdW50aWwgdGhlIG5leHQKKyAgaW5zdHJ1Y3Rpb24uCisKKy0gSXNzdWUgIzEyNDQyOiBuZXcgc2h1dGlsLmRpc2tfdXNhZ2UgZnVuY3Rpb24sIHByb3ZpZGluZyB0b3RhbCwgdXNlZCBhbmQgZnJlZQorICBkaXNrIHNwYWNlIHN0YXRpc3RpY3MuCisKKy0gSXNzdWUgIzEyNDUxOiBUaGUgWEluY2x1ZGUgZGVmYXVsdCBsb2FkZXIgb2YgeG1sLmV0cmVlIG5vdyBkZWNvZGVzIGZpbGVzIGZyb20KKyAgVVRGLTggaW5zdGVhZCBvZiB0aGUgbG9jYWxlIGVuY29kaW5nIGlmIHRoZSBlbmNvZGluZyBpcyBub3Qgc3BlY2lmaWVkLiBJdCBub3cKKyAgYWxzbyBvcGVucyBYTUwgZmlsZXMgZm9yIHRoZSBwYXJzZXIgaW4gYmluYXJ5IG1vZGUgaW5zdGVhZCBvZiB0aGUgdGV4dCBtb2RlCisgIHRvIGF2b2lkIGVuY29kaW5nIGlzc3Vlcy4KKworLSBJc3N1ZSAjMTI0NTE6IGRvY3Rlc3QuZGVidWdfc2NyaXB0KCkgZG9lc24ndCBjcmVhdGUgYSB0ZW1wb3JhcnkgZmlsZQorICBhbnltb3JlIHRvIGF2b2lkIGVuY29kaW5nIGlzc3Vlcy4KKworLSBJc3N1ZSAjMTI0NTE6IHB5ZG9jLnN5bm9wc2lzKCkgbm93IHJlYWRzIHRoZSBlbmNvZGluZyBjb29raWUgaWYgYXZhaWxhYmxlLAorICB0byByZWFkIHRoZSBQeXRob24gc2NyaXB0IGZyb20gdGhlIHJpZ2h0IGVuY29kaW5nLgorCistIElzc3VlICMxMjQ1MTogZGlzdHV0aWxzIG5vdyBvcGVucyB0aGUgc2V0dXAgc2NyaXB0IGluIGJpbmFyeSBtb2RlIHRvIHJlYWQgdGhlCisgIGVuY29kaW5nIGNvb2tpZSwgaW5zdGVhZCBvZiBvcGVuaW5nIGl0IGluIFVURi04LgorCistIElzc3VlICM5NTE2OiBPbiBNYWMgT1MgWCwgY2hhbmdlIERpc3R1dGlscyB0byBubyBsb25nZXIgZ2xvYmFsbHkgYXR0ZW1wdCB0bworICBjaGVjayBvciBzZXQgdGhlIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCBlbnZpcm9ubWVudCB2YXJpYWJsZSBmb3IgdGhlCisgIGludGVycHJldGVyIHByb2Nlc3MuICBUaGlzIGNvdWxkIGNhdXNlIGZhaWx1cmVzIGluIG5vbi1EaXN0dXRpbHMgc3VicHJvY2Vzc2VzCisgIGFuZCB3YXMgdW5yZWxpYWJsZSBzaW5jZSB0ZXN0cyBvciB1c2VyIHByb2dyYW1zIGNvdWxkIG1vZGlmeSB0aGUgaW50ZXJwcmV0ZXIKKyAgZW52aXJvbm1lbnQgYWZ0ZXIgRGlzdHV0aWxzIHNldCBpdC4gIEluc3RlYWQsIGhhdmUgRGlzdHV0aWxzIHNldCB0aGUKKyAgZGVwbG95bWVudCB0YXJnZXQgb25seSBpbiB0aGUgZW52aXJvbm1lbnQgb2YgZWFjaCBidWlsZCBzdWJwcm9jZXNzLiAgSXQgaXMKKyAgc3RpbGwgcG9zc2libGUgdG8gZ2xvYmFsbHkgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYnkgc2V0dGluZworICBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgYmVmb3JlIGxhdW5jaGluZyB0aGUgaW50ZXJwcmV0ZXI7IGl0cyB2YWx1ZSBtdXN0IGJlCisgIGdyZWF0ZXIgb3IgZXF1YWwgdG8gdGhlIGRlZmF1bHQgdmFsdWUsIHRoZSB2YWx1ZSB3aXRoIHdoaWNoIHRoZSBpbnRlcnByZXRlcgorICB3YXMgYnVpbHQuICBBbHNvLCBpbXBsZW1lbnQgdGhlIHNhbWUgaGFuZGxpbmcgaW4gcGFja2FnaW5nLgorCistIElzc3VlICMxMjQyMjogSW4gdGhlIGNvcHkgbW9kdWxlLCBkb24ndCBzdG9yZSBvYmplY3RzIHRoYXQgYXJlIHRoZWlyIG93biBjb3B5CisgIGluIHRoZSBtZW1vIGRpY3QuCisKKy0gSXNzdWUgIzEyMzAzOiBBZGQgc2lnd2FpdGluZm8oKSBhbmQgc2lndGltZWR3YWl0KCkgdG8gdGhlIHNpZ25hbCBtb2R1bGUuCisKKy0gSXNzdWUgIzEyNDA0OiBSZW1vdmUgQzg5IGluY29tcGF0aWJsZSBjb2RlIGZyb20gbW1hcCBtb2R1bGUuIFBhdGNoIGJ5IEFraXJhCisgIEtpdGFkYS4KKworLSBJc3N1ZSAjMTg3NDogZW1haWwgbm93IGRldGVjdHMgYW5kIHJlcG9ydHMgYXMgYSBkZWZlY3QgdGhlIHByZXNlbmNlIG9mCisgIGFueSBDVEUgb3RoZXIgdGhhbiA3Yml0LCA4Yml0LCBvciBiaW5hcnkgb24gYSBtdWx0aXBhcnQuCisKKy0gSXNzdWUgIzEyMzgzOiBGaXggc3VicHJvY2VzcyBtb2R1bGUgd2l0aCBlbnY9e306IGRvbid0IGNvcHkgdGhlIGVudmlyb25tZW50CisgIHZhcmlhYmxlcywgc3RhcnQgd2l0aCBhbiBlbXB0eSBlbnZpcm9ubWVudC4KKworLSBJc3N1ZSAjMTE2Mzc6IEZpeCBzdXBwb3J0IGZvciBpbXBvcnRpbmcgcGFja2FnaW5nIHNldHVwIGhvb2tzIGZyb20gdGhlCisgIHByb2plY3QgZGlyZWN0b3J5LgorCistIElzc3VlICM2NzcxOiBNb3ZlZCB0aGUgY3Vyc2VzLndyYXBwZXIgZnVuY3Rpb24gZnJvbSB0aGUgc2luZ2xlLWZ1bmN0aW9uCisgIHdyYXBwZXIgbW9kdWxlIGludG8gX19pbml0X18sIGVsaW1pbmF0aW5nIHRoZSBtb2R1bGUuICBTaW5jZSBfX2luaXRfXyB3YXMKKyAgYWxyZWFkeSBpbXBvcnRpbmcgdGhlIGZ1bmN0aW9uIHRvIGN1cnNlcy53cmFwcGVyLCB0aGVyZSBpcyBubyBBUEkgY2hhbmdlLgorCistIElzc3VlICMxMTU4NDogZW1haWwuaGVhZGVyLmRlY29kZV9oZWFkZXIgbm8gbG9uZ2VyIGZhaWxzIGlmIHRoZSBoZWFkZXIKKyAgcGFzc2VkIHRvIGl0IGlzIGEgSGVhZGVyIG9iamVjdCwgYW5kIEhlYWRlci9tYWtlX2hlYWRlciBubyBsb25nZXIgZmFpbAorICBpZiBnaXZlbiBiaW5hcnkgdW5rbm93bi04Yml0IGlucHV0LgorCistIElzc3VlICMxMTcwMDogbWFpbGJveCBwcm94eSBvYmplY3QgY2xvc2UgbWV0aG9kcyBjYW4gbm93IGJlIGNhbGxlZCBtdWx0aXBsZQorICB0aW1lcyB3aXRob3V0IGVycm9yLgorCistIElzc3VlICMxMTc2NzogQ29ycmVjdCBmaWxlIGRlc2NyaXB0b3IgbGVhayBpbiBtYWlsYm94J3MgX19nZXRpdGVtX18gbWV0aG9kLgorCistIElzc3VlICMxMjEzMzogQWJzdHJhY3RIVFRQSGFuZGxlci5kb19vcGVuKCkgb2YgdXJsbGliLnJlcXVlc3QgY2xvc2VzIHRoZSBIVFRQCisgIGNvbm5lY3Rpb24gaWYgaXRzIGdldHJlc3BvbnNlKCkgbWV0aG9kIGZhaWxzIHdpdGggYSBzb2NrZXQgZXJyb3IuIFBhdGNoCisgIHdyaXR0ZW4gYnkgRXppbyBNZWxvdHRpLgorCistIElzc3VlICMxMjI0MDogQWxsb3cgbXVsdGlwbGUgc2V0dXAgaG9va3MgaW4gcGFja2FnaW5nJ3Mgc2V0dXAuY2ZnIGZpbGVzLgorICBPcmlnaW5hbCBwYXRjaCBieSBFcmlrIEJyYXkuCisKKy0gSXNzdWUgIzkyODQ6IEFsbG93IGluc3BlY3QuZmluZHNvdXJjZSgpIHRvIGZpbmQgdGhlIHNvdXJjZSBvZiBkb2N0ZXN0CisgIGZ1bmN0aW9ucy4KKworLSBJc3N1ZSAjMTE1OTU6IEZpeCBhc3NvcnRlZCBidWdzIGluIHBhY2thZ2luZy51dGlsLmNmZ190b19hcmdzLCBhCisgIGNvbXBhdGliaWxpdHkgaGVscGVyIGZvciB0aGUgZGlzdHV0aWxzLXBhY2thZ2luZyB0cmFuc2l0aW9uLiAgT3JpZ2luYWwgcGF0Y2gKKyAgYnkgRXJpayBCcmF5LgorCistIElzc3VlICMxMjI4NzogSW4gb3NzYXVkaW9kZXYsIGNoZWNrIHRoYXQgdGhlIGRldmljZSBpc24ndCBjbG9zZWQgaW4gc2V2ZXJhbAorICBtZXRob2RzLgorCistIElzc3VlICMxMjAwOTogRml4ZWQgcmVncmVzc2lvbiBpbiBuZXRyYyBmaWxlIGNvbW1lbnQgaGFuZGxpbmcuCisKKy0gSXNzdWUgIzEyMjQ2OiBXYXJuIGFuZCBmYWlsIHdoZW4gdHJ5aW5nIHRvIGluc3RhbGwgYSB0aGlyZC1wYXJ0eSBwcm9qZWN0IGZyb20KKyAgYW4gdW5pbnN0YWxsZWQgUHl0aG9uIChidWlsdCBpbiBhIHNvdXJjZSBjaGVja291dCkuICBPcmlnaW5hbCBwYXRjaCBieQorICBUc2hlcGFuZyBMZWtob25raG9iZS4KKworLSBJc3N1ZSAjMTA2OTQ6IHppcGZpbGUgbm93IGlnbm9yZXMgZ2FyYmFnZSBhdCB0aGUgZW5kIG9mIGEgemlwZmlsZS4KKworLSBJc3N1ZSAjMTIyODM6IEZpeGVkIHJlZ3Jlc3Npb24gaW4gc210cGxpYiBxdW90aW5nIG9mIGxlYWRpbmcgZG90cyBpbiBEQVRBLgorCistIElzc3VlICMxMDQyNDogQXJncGFyc2Ugbm93IGluY2x1ZGVzIHRoZSBuYW1lcyBvZiB0aGUgbWlzc2luZyByZXF1aXJlZAorICBhcmd1bWVudHMgaW4gdGhlIG1pc3NpbmcgYXJndW1lbnRzIGVycm9yIG1lc3NhZ2UuCisKKy0gSXNzdWUgIzEyMTY4OiBTeXNMb2dIYW5kbGVyIG5vdyBhbGxvd3MgTlVMIHRlcm1pbmF0aW9uIHRvIGJlIGNvbnRyb2xsZWQgdXNpbmcKKyAgYSBuZXcgJ2FwcGVuZF9udWwnIGF0dHJpYnV0ZSBvbiB0aGUgaGFuZGxlci4KKworLSBJc3N1ZSAjMTE1ODM6IFNwZWVkIHVwIG9zLnBhdGguaXNkaXIgb24gV2luZG93cyBieSB1c2luZyBHZXRGaWxlQXR0cmlidXRlcworICBpbnN0ZWFkIG9mIG9zLnN0YXQuCisKKy0gSXNzdWUgIzEyMDIxOiBNYWtlIG1tYXAncyByZWFkKCkgbWV0aG9kIGFyZ3VtZW50IG9wdGlvbmFsLiBQYXRjaCBieSBQZXRyaQorICBMZWh0aW5lbi4KKworLSBJc3N1ZSAjOTIwNTogY29uY3VycmVudC5mdXR1cmVzLlByb2Nlc3NQb29sRXhlY3V0b3Igbm93IGRldGVjdHMga2lsbGVkCisgIGNoaWxkcmVuIGFuZCByYWlzZXMgQnJva2VuUHJvY2Vzc1Bvb2wgaW4gc3VjaCBhIHNpdHVhdGlvbi4gIFByZXZpb3VzbHkgaXQKKyAgd291bGQgcmVsaWFibHkgZnJlZXplL2RlYWRsb2NrLgorCistIElzc3VlICMxMjA0MDogRXhwb3NlIGEgbmV3IGF0dHJpYnV0ZSBgYHNlbnRpbmVsYGAgb24gaW5zdGFuY2VzIG9mCisgIGBgbXVsdGlwcm9jZXNzaW5nLlByb2Nlc3NgYC4gIEFsc28sIGZpeCBQcm9jZXNzLmpvaW4oKSB0byBub3QgdXNlIHBvbGxpbmcKKyAgYW55bW9yZSwgd2hlbiBnaXZlbiBhIHRpbWVvdXQuCisKKy0gSXNzdWUgIzExODkzOiBSZW1vdmUgb2Jzb2xldGUgaW50ZXJuYWwgd3JhcHBlciBjbGFzcyBgYFNTTEZha2VGaWxlYGAgaW4gdGhlCisgIHNtdHBsaWIgbW9kdWxlLiAgUGF0Y2ggYnkgQ2F0YWxpbiBJYWNvYi4KKworLSBJc3N1ZSAjMTIwODA6IEZpeCBhIERlY2ltYWwucG93ZXIoKSBjYXNlIHRoYXQgdG9vayBhbiB1bnJlYXNvbmFibHkgbG9uZyB0aW1lCisgIHRvIGNvbXB1dGUuCisKKy0gSXNzdWUgIzEyMjIxOiBSZW1vdmUgX192ZXJzaW9uX18gYXR0cmlidXRlcyBmcm9tIHB5ZXhwYXQsIHBpY2tsZSwgdGFyZmlsZSwKKyAgcHlkb2MsIHRraW50ZXIsIGFuZCB4bWwucGFyc2Vycy5leHBhdC4gVGhpcyB3ZXJlIHVzZWxlc3MgdmVyc2lvbiBjb25zdGFudHMKKyAgbGVmdCBvdmVyIGZyb20gdGhlIE1lcmN1cmlhbCB0cmFuc2l0aW9uCisKKy0gTmFtZWQgdHVwbGVzIG5vdyB3b3JrIGNvcnJlY3RseSB3aXRoIHZhcnMoKS4KKworLSBJc3N1ZSAjMTIwODU6IEZpeCBhbiBhdHRyaWJ1dGUgZXJyb3IgaW4gc3VicHJvY2Vzcy5Qb3BlbiBkZXN0cnVjdG9yIGlmIHRoZQorICBjb25zdHJ1Y3RvciBoYXMgZmFpbGVkLCBlLmcuIGJlY2F1c2Ugb2YgYW4gdW5kZWNsYXJlZCBrZXl3b3JkIGFyZ3VtZW50LiBQYXRjaAorICB3cml0dGVuIGJ5IE9sZWcgT3NobXlhbi4KKworLSBJc3N1ZSAjMTIwMjg6IE1ha2UgdGhyZWFkaW5nLl9nZXRfaWRlbnQoKSBwdWJsaWMsIHJlbmFtZSBpdCB0bworICB0aHJlYWRpbmcuZ2V0X2lkZW50KCkgYW5kIGRvY3VtZW50IGl0LiBUaGlzIGZ1bmN0aW9uIHdhcyBhbHJlYWR5IHVzZWQgdXNpbmcKKyAgX3RocmVhZC5nZXRfaWRlbnQoKS4KKworLSBJc3N1ZSAjMTIxNzE6IEluY3JlbWVudGFsRW5jb2Rlci5yZXNldCgpIG9mIENKSyBjb2RlY3MgKG11bHRpYnl0ZWNvZGVjKSBjYWxscworICBlbmNyZXNldCgpIGluc3RlYWQgb2YgZGVjcmVzZXQoKS4KKworLSBJc3N1ZSAjMTIyMTg6IFJlbW92ZWQgd3NnaXJlZi5lZ2ctaW5mby4KKworLSBJc3N1ZSAjMTIxOTY6IEFkZCBwaXBlMigpIHRvIHRoZSBvcyBtb2R1bGUuCisKKy0gSXNzdWUgIzk4NTA2NDogTWFrZSBwbGlzdGxpYiBtb3JlIHJlc2lsaWVudCB0byBmYXVsdHkgaW5wdXQgcGxpc3RzLgorICBQYXRjaCBieSBNaGVyIE1vdnNpc3lhbi4KKworLSBJc3N1ZSAjMTYyNTogQloyRmlsZSBhbmQgYnoyLmRlY29tcHJlc3MoKSBub3cgc3VwcG9ydCBtdWx0aS1zdHJlYW0gZmlsZXMuCisgIEluaXRpYWwgcGF0Y2ggYnkgTmlyIEFpZGVzLgorCistIElzc3VlICMxMjE3NTogQnVmZmVyZWRSZWFkZXIucmVhZCgtMSkgbm93IGNhbGxzIHJhdy5yZWFkYWxsKCkgaWYgYXZhaWxhYmxlLgorCistIElzc3VlICMxMjE3NTogRmlsZUlPLnJlYWRhbGwoKSBub3cgb25seSByZWFkcyB0aGUgZmlsZSBwb3NpdGlvbiBhbmQgc2l6ZQorICBvbmNlLgorCistIElzc3VlICMxMjE3NTogUmF3SU9CYXNlLnJlYWRhbGwoKSBub3cgcmV0dXJucyBOb25lIGlmIHJlYWQoKSByZXR1cm5zIE5vbmUuCisKKy0gSXNzdWUgIzEyMTc1OiBGaWxlSU8ucmVhZGFsbCgpIG5vdyByYWlzZXMgYSBWYWx1ZUVycm9yIGluc3RlYWQgb2YgYW4gSU9FcnJvcgorICBpZiB0aGUgZmlsZSBpcyBjbG9zZWQuCisKKy0gSXNzdWUgIzExMTA5OiBOZXcgc2VydmljZV9hY3Rpb24gbWV0aG9kIGZvciBCYXNlU2VydmVyLCB1c2VkIGJ5IEZvcmtpbmdNaXhJbgorICBjbGFzcyBmb3IgY2xlYW51cC4gSW5pdGlhbCBQYXRjaCBieSBKdXN0aW4gV2Fya2VudGluLgorCistIElzc3VlICMxMjA0NTogQXZvaWQgZHVwbGljYXRlIGV4ZWN1dGlvbiBvZiBjb21tYW5kIGluCisgIGN0eXBlcy51dGlsLl9nZXRfc29uYW1lKCkuICBQYXRjaCBieSBTaWppbiBKb3NlcGguCisKKy0gSXNzdWUgIzEwODE4OiBSZW1vdmUgdGhlIFRrIEdVSSBhbmQgdGhlIHNlcnZlKCkgZnVuY3Rpb24gb2YgdGhlIHB5ZG9jIG1vZHVsZSwKKyAgcHlkb2MgLWcgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBQeXRob24gMy4yIGFuZCBpdCBoYXMgYSBuZXcgZW5oYW5jZWQgd2ViCisgIHNlcnZlci4KKworLSBJc3N1ZSAjMTQ0MTUzMDogSW4gaW1hcGxpYiwgcmVhZCB0aGUgZGF0YSBpbiBvbmUgY2h1bmsgdG8gc3BlZWQgdXAgbGFyZ2UKKyAgcmVhZHMgYW5kIHNpbXBsaWZ5IGNvZGUuCisKKy0gSXNzdWUgIzEyMDcwOiBGaXggdGhlIE1ha2VmaWxlIHBhcnNlciBvZiB0aGUgc3lzY29uZmlnIG1vZHVsZSB0byBoYW5kbGUKKyAgY29ycmVjdGx5IHJlZmVyZW5jZXMgdG8gImJvZ3VzIHZhcmlhYmxlIiAoZS5nLiAicHJlZml4PSQvb3B0L3B5dGhvbiIpLgorCistIElzc3VlICMxMjEwMDogRG9uJ3QgcmVzZXQgaW5jcmVtZW50YWwgZW5jb2RlcnMgb2YgQ0pLIGNvZGVjcyBhdCBlYWNoIGNhbGwgdG8KKyAgdGhlaXIgZW5jb2RlKCkgbWV0aG9kIGFueW1vcmUsIGJ1dCBjb250aW51ZSB0byBjYWxsIHRoZSByZXNldCgpIG1ldGhvZCBpZiB0aGUKKyAgZmluYWwgYXJndW1lbnQgaXMgVHJ1ZS4KKworLSBJc3N1ZSAjMTIwNDk6IEFkZCBSQU5EX2J5dGVzKCkgYW5kIFJBTkRfcHNldWRvX2J5dGVzKCkgZnVuY3Rpb25zIHRvIHRoZSBzc2wKKyAgbW9kdWxlLgorCistIElzc3VlICM2NTAxOiBvcy5kZXZpY2VfZW5jb2RpbmcoKSByZXR1cm5zIE5vbmUgb24gV2luZG93cyBpZiB0aGUgYXBwbGljYXRpb24KKyAgaGFzIG5vIGNvbnNvbGUuCisKKy0gSXNzdWUgIzEyMTA1OiBBZGQgT19DTE9FWEVDIHRvIHRoZSBvcyBtb2R1bGUuCisKKy0gSXNzdWUgIzEyMDc5OiBEZWNpbWFsKCdJbmZpbml0eScpLmZtYShEZWNpbWFsKCcwJyksICgzLjkxMjI0MzE4MTI2Nzg2ZSsxOSswaikpCisgIG5vdyByYWlzZXMgVHlwZUVycm9yIChyZWZsZWN0aW5nIHRoZSBpbnZhbGlkIHR5cGUgb2YgdGhlIDNyZCBhcmd1bWVudCkgcmF0aGVyCisgIHRoYW4gRGVjaW1hbC5JbnZhbGlkT3BlcmF0aW9uLgorCistIElzc3VlICMxMjEyNDogemlwaW1wb3J0IGRvZXNuJ3Qga2VlcCBhIHJlZmVyZW5jZSB0byB6bGliLmRlY29tcHJlc3MoKSBhbnltb3JlCisgIHRvIGJlIGFibGUgdG8gdW5sb2FkIHRoZSBtb2R1bGUuCisKKy0gQWRkIHRoZSBwYWNrYWdpbmcgbW9kdWxlLCBhbiBpbXByb3ZlZCBmb3JrIG9mIGRpc3R1dGlscyAoYWxzbyBrbm93biBhcworICBkaXN0dXRpbHMyKS4KKworLSBJc3N1ZSAjMTIwNjU6IGNvbm5lY3RfZXgoKSBvbiBhbiBTU0wgc29ja2V0IG5vdyByZXR1cm5zIHRoZSBvcmlnaW5hbCBlcnJubworICB3aGVuIHRoZSBzb2NrZXQncyB0aW1lb3V0IGV4cGlyZXMgKGl0IHVzZWQgdG8gcmV0dXJuIE5vbmUpLgorCistIElzc3VlICM4ODA5OiBUaGUgU01UUF9TU0wgY29uc3RydWN0b3IgYW5kIFNNVFAuc3RhcnR0bHMoKSBub3cgc3VwcG9ydAorICBwYXNzaW5nIGEgYGBjb250ZXh0YGAgYXJndW1lbnQgcG9pbnRpbmcgdG8gYW4gc3NsLlNTTENvbnRleHQgaW5zdGFuY2UuCisgIFBhdGNoIGJ5IEthc3VuIEhlcmF0aC4KKworLSBJc3N1ZSAjMTEwODg6IGRvbid0IGNyYXNoIHdoZW4gdXNpbmcgRjUgdG8gcnVuIGEgc2NyaXB0IGluIElETEUgb24gTWFjT1NYCisgIHdpdGggVGsgOC41LgorCistIElzc3VlICM5NTE2OiBJc3N1ZSAjOTUxNjogYXZvaWQgZXJyb3JzIGluIHN5c2NvbmZpZyB3aGVuIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVAorICBpcyBzZXQgaW4gc2hlbGwuCisKKy0gSXNzdWUgIzg2NTA6IE1ha2UgemxpYiBtb2R1bGUgNjQtYml0IGNsZWFuLiBjb21wcmVzcygpLCBkZWNvbXByZXNzKCkgYW5kCisgIHRoZWlyIGluY3JlbWVudGFsIGNvdW50ZXJwYXJ0cyBub3cgcmFpc2UgT3ZlcmZsb3dFcnJvciBpZiBnaXZlbiBhbiBpbnB1dAorICBsYXJnZXIgdGhhbiA0R0IsIGluc3RlYWQgb2Ygc2lsZW50bHkgdHJ1bmNhdGluZyB0aGUgaW5wdXQgYW5kIHJldHVybmluZworICBhbiBpbmNvcnJlY3QgcmVzdWx0LgorCistIElzc3VlICMxMjA1MDogemxpYi5kZWNvbXByZXNzb2JqKCkuZGVjb21wcmVzcygpIG5vdyBjbGVhcnMgdGhlIHVuY29uc3VtZWRfdGFpbAorICBhdHRyaWJ1dGUgd2hlbiBjYWxsZWQgd2l0aG91dCBhIG1heF9sZW5ndGggYXJndW1lbnQuCisKKy0gSXNzdWUgIzEyMDYyOiBGaXggYSBmbHVzaGluZyBidWcgd2hlbiBkb2luZyBhIGNlcnRhaW4gdHlwZSBvZiBJL08gc2VxdWVuY2UKKyAgb24gYSBmaWxlIG9wZW5lZCBpbiByZWFkK3dyaXRlIG1vZGUgKG5hbWVseTogcmVhZGluZywgc2Vla2luZyBhIGJpdCBmb3J3YXJkLAorICB3cml0aW5nLCB0aGVuIHNlZWtpbmcgYmVmb3JlIHRoZSBwcmV2aW91cyB3cml0ZSBidXQgc3RpbGwgd2l0aGluIGJ1ZmZlcmVkCisgIGRhdGEsIGFuZCB3cml0aW5nIGFnYWluKS4KKworLSBJc3N1ZSAjOTk3MTogV3JpdGUgYW4gb3B0aW1pemVkIGltcGxlbWVudGF0aW9uIG9mIEJ1ZmZlcmVkUmVhZGVyLnJlYWRpbnRvKCkuCisgIFBhdGNoIGJ5IEpvaG4gTydDb25ub3IuCisKKy0gSXNzdWUgIzEwMjg6IFRrIHJldHVybnMgaW52YWxpZCBVbmljb2RlIG51bGwgaW4gJUE6IFVuaWNvZGVEZWNvZGVFcnJvci4KKyAgV2l0aCBUayA8IDguNSBfdGtpbnRlci5jOlB5dGhvbkNtZCgpIHJhaXNlZCBVbmljb2RlRGVjb2RlRXJyb3IsIGNhdXNlZAorICBJRExFIHRvIGV4aXQuICBDb252ZXJ0ZWQgdG8gdmFsaWQgVW5pY29kZSBudWxsIGluIFB5dGhvbkNtZCgpLgorCistIElzc3VlICMxMTc5OTogdXJsbGliLnJlcXVlc3QgQXV0aGVudGljYXRpb24gSGFuZGxlcnMgd2lsbCByYWlzZSBhIFZhbHVlRXJyb3IKKyAgd2hlbiBwcmVzZW50ZWQgd2l0aCBhbiB1bnN1cHBvcnRlZCBBdXRoZW50aWNhdGlvbiBTY2hlbWUuIFBhdGNoIGNvbnRyaWJ1dGVkCisgIGJ5IFl1dmFsIEdyZWVuZmllbGQuCisKKy0gSXNzdWUgIzEwNDE5LCAjNjAxMTogYnVpbGRfc2NyaXB0cyBjb21tYW5kIG9mIGRpc3R1dGlscyBoYW5kbGVzIGNvcnJlY3RseQorICBub24tQVNDSUkgcGF0aCAocGF0aCB0byB0aGUgUHl0aG9uIGV4ZWN1dGFibGUpLiBPcGVuIGFuZCB3cml0ZSB0aGUgc2NyaXB0IGluCisgIGJpbmFyeSBtb2RlLCBidXQgZW5zdXJlIHRoYXQgdGhlIHNoZWJhbmcgaXMgZGVjb2RhYmxlIGZyb20gVVRGLTggYW5kIGZyb20gdGhlCisgIGVuY29kaW5nIG9mIHRoZSBzY3JpcHQuCisKKy0gSXNzdWUgIzg0OTg6IEluIHNvY2tldC5hY2NlcHQoKSwgYWxsb3cgdG8gc3BlY2lmeSAwIGFzIGEgYmFja2xvZyB2YWx1ZSBpbgorICBvcmRlciB0byBhY2NlcHQgZXhhY3RseSBvbmUgY29ubmVjdGlvbi4gIFBhdGNoIGJ5IERhbmllbCBFdmVycy4KKworLSBJc3N1ZSAjMTIwMTE6IHNpZ25hbC5zaWduYWwoKSBhbmQgc2lnbmFsLnNpZ2ludGVycnVwdCgpIHJhaXNlIGFuIE9TRXJyb3IsCisgIGluc3RlYWQgb2YgYSBSdW50aW1lRXJyb3I6IE9TRXJyb3IgaGFzIGFuIGVycm5vIGF0dHJpYnV0ZS4KKworLSBJc3N1ZSAjMzcwOTogYWRkIGEgZmx1c2hfaGVhZGVycyBtZXRob2QgdG8gQmFzZUhUVFBSZXF1ZXN0SGFuZGxlciwgd2hpY2gKKyAgbWFuYWdlcyB0aGUgc2VuZGluZyBvZiBoZWFkZXJzIHRvIG91dHB1dCBzdHJlYW0gYW5kIGZsdXNoaW5nIHRoZSBpbnRlcm5hbAorICBoZWFkZXJzIGJ1ZmZlci4gUGF0Y2ggY29udHJpYnV0aW9uIGJ5IEFuZHJldyBTY2hhYWYKKworLSBJc3N1ZSAjMTE3NDM6IFJld3JpdGUgbXVsdGlwcm9jZXNzaW5nIGNvbm5lY3Rpb24gY2xhc3NlcyBpbiBwdXJlIFB5dGhvbi4KKworLSBJc3N1ZSAjMTExNjQ6IFN0b3AgdHJ5aW5nIHRvIHVzZSBfeG1scGx1cyBpbiB0aGUgeG1sIG1vZHVsZS4KKworLSBJc3N1ZSAjMTE4ODg6IEFkZCBsb2cyIGZ1bmN0aW9uIHRvIG1hdGggbW9kdWxlLiBQYXRjaCB3cml0dGVuIGJ5IE1hcmsKKyAgRGlja2luc29uLgorCistIElzc3VlICMxMjAxMjogc3NsLlBST1RPQ09MX1NTTHYyIGJlY29tZXMgb3B0aW9uYWwuCisKKy0gSXNzdWUgIzg0MDc6IFRoZSBzaWduYWwgaGFuZGxlciB3cml0ZXMgdGhlIHNpZ25hbCBudW1iZXIgYXMgYSBzaW5nbGUgYnl0ZQorICBpbnN0ZWFkIG9mIGEgbnVsIGJ5dGUgaW50byB0aGUgd2FrZXVwIGZpbGUgZGVzY3JpcHRvci4gU28gaXQgaXMgcG9zc2libGUgdG8KKyAgd2FpdCBtb3JlIHRoYW4gb25lIHNpZ25hbCBhbmQga25vdyB3aGljaCBzaWduYWxzIHdlcmUgcmFpc2VkLgorCistIElzc3VlICM4NDA3OiBBZGQgcHRocmVhZF9raWxsKCksIHNpZ3BlbmRpbmcoKSBhbmQgc2lnd2FpdCgpIGZ1bmN0aW9ucyB0byB0aGUKKyAgc2lnbmFsIG1vZHVsZS4KKworLSBJc3N1ZSAjMTE5Mjc6IFNNVFBfU1NMIG5vdyB1c2VzIHBvcnQgNDY1IGJ5IGRlZmF1bHQgYXMgZG9jdW1lbnRlZC4gIFBhdGNoCisgIGJ5IEthc3VuIEhlcmF0aC4KKworLSBJc3N1ZSAjMTIwMDI6IGZ0cGxpYidzIGFib3J0KCkgbWV0aG9kIHJhaXNlcyBUeXBlRXJyb3IuCisKKy0gSXNzdWUgIzExOTE2OiBBZGQgYSBudW1iZXIgb2YgTWFjT1NYIHNwZWNpZmljIGRlZmluaXRpb25zIHRvIHRoZSBlcnJubyBtb2R1bGUuCisgIFBhdGNoIGJ5IFBpZXJyZSBDYXJyaWVyLgorCistIElzc3VlICMxMTk5OTogZml4ZWQgc3BvcmFkaWMgc3luYyBmYWlsdXJlIG1haWxib3guTWFpbGRpciBkdWUgdG8gaXRzIHRyeWluZyB0bworICBkZXRlY3QgbXRpbWUgY2hhbmdlcyBieSBjb21wYXJpbmcgdG8gdGhlIHN5c3RlbSBjbG9jayBpbnN0ZWFkIG9mIHRvIHRoZQorICBwcmV2aW91cyB2YWx1ZSBvZiB0aGUgbXRpbWUuCisKKy0gSXNzdWUgIzExMDcyOiBhZGRlZCBNTFNEIGNvbW1hbmQgKFJGQy0zNjU5KSBzdXBwb3J0IHRvIGZ0cGxpYi4KKworLSBJc3N1ZSAjODgwODogVGhlIElNQVA0X1NTTCBjb25zdHJ1Y3RvciBub3cgYWxsb3dzIHBhc3NpbmcgYW4gU1NMQ29udGV4dAorICBwYXJhbWV0ZXIgdG8gY29udHJvbCBwYXJhbWV0ZXJzIG9mIHRoZSBzZWN1cmUgY2hhbm5lbC4gIFBhdGNoIGJ5IFNpamluCisgIEpvc2VwaC4KKworLSBudHBhdGguc2FtZWZpbGUgZmFpbGVkIHRvIG5vdGljZSB0aGF0ICJhLnR4dCIgYW5kICJBLlRYVCIgcmVmZXIgdG8gdGhlIHNhbWUKKyAgZmlsZSBvbiBXaW5kb3dzIFhQLiBBcyBub3RpY2VkIGluIGlzc3VlICMxMDY4NC4KKworLSBJc3N1ZSAjMTIwMDA6IFdoZW4gYSBTU0wgY2VydGlmaWNhdGUgaGFzIGEgc3ViamVjdEFsdE5hbWUgd2l0aG91dCBhbnkKKyAgZE5TTmFtZSBlbnRyeSwgc3NsLm1hdGNoX2hvc3RuYW1lKCkgc2hvdWxkIHVzZSB0aGUgc3ViamVjdCdzIGNvbW1vbk5hbWUuCisgIFBhdGNoIGJ5IE5pY29sYXMgQmFyZWlsLgorCistIElzc3VlICMxMDc3NTogYXNzZXJ0UmFpc2VzLCBhc3NlcnRSYWlzZXNSZWdleCwgYXNzZXJ0V2FybnMsIGFuZAorICBhc3NlcnRXYXJuc1JlZ2V4IG5vdyBhY2NlcHQgYSBrZXl3b3JkIGFyZ3VtZW50ICdtc2cnIHdoZW4gdXNlZCBhcyBjb250ZXh0CisgIG1hbmFnZXJzLiAgSW5pdGlhbCBwYXRjaCBieSBXaW5zdG9uIEV3ZXJ0LgorCistIElzc3VlICMxMDY4NDogc2h1dGlsLm1vdmUgdXNlZCB0byBkZWxldGUgYSBmb2xkZXIgb24gY2FzZSBpbnNlbnNpdGl2ZQorICBmaWxlc3lzdGVtcyB3aGVuIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIG5hbWUgd2hlcmUgdGhlIHNhbWUgZXhjZXB0CisgIGZvciB0aGUgY2FzZS4KKworLSBJc3N1ZSAjMTE2NDc6IG9iamVjdHMgY3JlYXRlZCB1c2luZyBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyIG5vdyBzdXBwb3J0CisgIG1vcmUgdGhhbiBvbmUgY2FsbCB0byB0aGUgZnVuY3Rpb24gd2hlbiB1c2VkIGFzIGEgZGVjb3JhdG9yLiBJbml0aWFsIHBhdGNoCisgIGJ5IFlzaiBSYXkuCisKKy0gSXNzdWUgIzExOTMwOiBSZW1vdmVkIGRlcHJlY2F0ZWQgdGltZS5hY2NlcHQyZHllYXIgdmFyaWFibGUuCisgIFJlbW92ZWQgeWVhciA+PSAxMDAwIHJlc3RyaWN0aW9uIGZyb20gZGF0ZXRpbWUuc3RyZnRpbWUuCisKKy0gbG9nZ2luZzogZG9uJ3QgZGVmaW5lIFF1ZXVlTGlzdGVuZXIgaWYgUHl0aG9uIGhhcyBubyB0aHJlYWQgc3VwcG9ydC4KKworLSBmdW5jdG9vbHMuY21wX3RvX2tleSgpIG5vdyB3b3JrcyB3aXRoIGNvbGxlY3Rpb25zLkhhc2hhYmxlKCkuCisKKy0gSXNzdWUgIzExMjc3OiBtbWFwLm1tYXAoKSBjYWxscyBmY250bChmZCwgRl9GVUxMRlNZTkMpIG9uIE1hYyBPUyBYIHRvIGdldAorICBhcm91bmQgYSBtbWFwIGJ1ZyB3aXRoIHNwYXJzZSBmaWxlcy4gUGF0Y2ggd3JpdHRlbiBieSBTdGVmZmVuIERhb2RlIE51cnBtZXNvLgorCistIElzc3VlICM4NDA3OiBBZGQgc2lnbmFsLnB0aHJlYWRfc2lnbWFzaygpIGZ1bmN0aW9uIHRvIGZldGNoIGFuZC9vciBjaGFuZ2UgdGhlCisgIHNpZ25hbCBtYXNrIG9mIHRoZSBjYWxsaW5nIHRocmVhZC4KKworLSBJc3N1ZSAjMTE4NTg6IGNvbmZpZ3BhcnNlci5FeHRlbmRlZEludGVycG9sYXRpb24gZXhwZWN0ZWQgbG93ZXItY2FzZSBzZWN0aW9uCisgIG5hbWVzLgorCistIElzc3VlICMxMTMyNDogQ29uZmlnUGFyc2VyKGludGVycG9sYXRpb249Tm9uZSkgbm93IHdvcmtzIGNvcnJlY3RseS4KKworLSBJc3N1ZSAjMTE4MTE6IHNzbC5nZXRfc2VydmVyX2NlcnRpZmljYXRlKCkgaXMgbm93IElQdjYtY29tcGF0aWJsZS4gIFBhdGNoCisgIGJ5IENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KKworLSBJc3N1ZSAjMTE3NjM6IGRvbid0IHVzZSBkaWZmbGliIGluIFRlc3RDYXNlLmFzc2VydE11bHRpTGluZUVxdWFsIGlmIHRoZQorICBzdHJpbmdzIGFyZSB0b28gbG9uZy4KKworLSBJc3N1ZSAjMTEyMzY6IGdldHBhc3MuZ2V0cGFzcyByZXNwb25kcyB0byBjdHJsLWMgb3IgY3RybC16IG9uIHRlcm1pbmFsLgorCistIElzc3VlICMxMTg1NjogU3BlZWQgdXAgcGFyc2luZyBvZiBKU09OIG51bWJlcnMuCisKKy0gSXNzdWUgIzExMDA1OiB0aHJlYWRpbmcuUkxvY2soKS5fcmVsZWFzZV9zYXZlKCkgcmFpc2VzIGEgUnVudGltZUVycm9yIGlmIHRoZQorICBsb2NrIHdhcyBub3QgYWNxdWlyZWQuCisKKy0gSXNzdWUgIzExMjU4OiBTcGVlZCB1cCBjdHlwZXMudXRpbC5maW5kX2xpYnJhcnkoKSB1bmRlciBMaW51eCBieSBhIGZhY3RvcgorICBvZiA1IHRvIDEwLiAgSW5pdGlhbCBwYXRjaCBieSBKb25hcyBILgorCistIElzc3VlICMxMTM4MjogVHJpdmlhbCBzeXN0ZW0gY2FsbHMsIHN1Y2ggYXMgZHVwKCkgb3IgcGlwZSgpLCBuZWVkbid0CisgIHJlbGVhc2UgdGhlIEdJTC4gIFBhdGNoIGJ5IENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KKworLSBJc3N1ZSAjMTEyMjM6IEFkZCB0aHJlYWRpbmcuX2luZm8oKSBmdW5jdGlvbiBwcm92aWRpbmcgaW5mb3JtYXRpb25zIGFib3V0CisgIHRoZSB0aHJlYWQgaW1wbGVtZW50YXRpb24uCisKKy0gSXNzdWUgIzExNzMxOiBzaW1wbGlmeS9lbmhhbmNlIGVtYWlsIHBhcnNlci9nZW5lcmF0b3IgQVBJIGJ5IGludHJvZHVjaW5nCisgIHBvbGljeSBvYmplY3RzLgorCistIElzc3VlICMxMTc2ODogVGhlIHNpZ25hbCBoYW5kbGVyIG9mIHRoZSBzaWduYWwgbW9kdWxlIG9ubHkgY2FsbHMKKyAgUHlfQWRkUGVuZGluZ0NhbGwoKSBmb3IgdGhlIGZpcnN0IHNpZ25hbCB0byBmaXggYSBkZWFkbG9jayBvbiByZWVudHJhbnQgb3IKKyAgcGFyYWxsZWwgY2FsbHMuIFB5RXJyX1NldEludGVycnVwdCgpIHdyaXRlcyBhbHNvIGludG8gdGhlIHdha2UgdXAgZmlsZS4KKworLSBJc3N1ZSAjMTE0OTI6IGZpeCBzZXZlcmFsIGlzc3VlcyB3aXRoIGhlYWRlciBmb2xkaW5nIGluIHRoZSBlbWFpbCBwYWNrYWdlLgorCistIElzc3VlICMxMTg1MjogQWRkIG1pc3NpbmcgaW1wb3J0cyBhbmQgdXBkYXRlIHRlc3RzLgorCistIElzc3VlICMxMTg3NTogY29sbGVjdGlvbnMuT3JkZXJlZERpY3QncyBfX3JlZHVjZV9fIHdhcyB0ZW1wb3JhcmlseQorICBtdXRhdGluZyB0aGUgb2JqZWN0IGluc3RlYWQgb2YganVzdCB3b3JraW5nIG9uIGEgY29weS4KKworLSBJc3N1ZSAjMTE0Njc6IEZpeCB1cmxwYXJzZSBiZWhhdmlvciB3aGVuIGhhbmRsaW5nIHVybHMgd2hpY2ggY29udGFpbnMgc2NoZW1lCisgIHNwZWNpZmljIHBhcnQgb25seSBkaWdpdHMuIFBhdGNoIGJ5IFNhbnRvc28gV2lqYXlhLgorCistIGNvbGxlY3Rpb25zLkNvdW50ZXIoKS5jb3B5KCkgbm93IHdvcmtzIGNvcnJlY3RseSBmb3Igc3ViY2xhc3Nlcy4KKworLSBJc3N1ZSAjMTE0NzQ6IEZpeCB0aGUgYnVnIHdpdGggdXJsMnBhdGhuYW1lKCkgaGFuZGxpbmcgb2YgJy9DfC8nIG9uIFdpbmRvd3MuCisgIFBhdGNoIGJ5IFNhbnRvc28gV2lqYXlhLgorCistIElzc3VlICMxMTY4NDogY29tcGxldGUgZW1haWwucGFyc2VyIGJ5dGVzIEFQSSBieSBhZGRpbmcgQnl0ZXNIZWFkZXJQYXJzZXIuCisKKy0gVGhlIGJ6MiBtb2R1bGUgbm93IGhhbmRsZXMgNEdpQisgaW5wdXQgYnVmZmVycyBjb3JyZWN0bHkuCisKKy0gSXNzdWUgIzkyMzM6IEZpeCBqc29uLmxvYWRzKCd7fScpIHRvIHJldHVybiBhIGRpY3QgKGluc3RlYWQgb2YgYSBsaXN0KSwgd2hlbgorICBfanNvbiBpcyBub3QgYXZhaWxhYmxlLgorCistIElzc3VlICMxMTgzMDogUmVtb3ZlIHVubmVjZXNzYXJ5IGludHJvc3BlY3Rpb24gY29kZSBpbiB0aGUgZGVjaW1hbCBtb2R1bGUuCisKKy0gSXNzdWUgIzExNzAzOiB1cmxsaWIyLmdldHVybCgpIGRvZXMgbm90IHJldHVybiBjb3JyZWN0IHVybCB3aGVuIHRoZSBvcmlnaW5hbAorICB1cmwgY29udGFpbnMgI2ZyYWdtZW50LgorCistIElzc3VlICMxMDAxOTogRml4ZWQgcmVncmVzc2lvbiBpbiBqc29uIG1vZHVsZSB3aGVyZSBhbiBpbmRlbnQgb2YgMCBzdG9wcGVkCisgIGFkZGluZyBuZXdsaW5lcyBhbmQgYWN0ZWQgaW5zdGVhZCBsaWtlICdOb25lJy4KKworLSBJc3N1ZSAjMTExODY6IHB5ZG9jIGlnbm9yZXMgYSBtb2R1bGUgaWYgaXRzIG5hbWUgY29udGFpbnMgYSBzdXJyb2dhdGUKKyAgY2hhcmFjdGVyIGluIHRoZSBpbmRleCBvZiBtb2R1bGVzLgorCistIElzc3VlICMxMTgxNTogVXNlIGEgbGlnaHQtd2VpZ2h0IFNpbXBsZVF1ZXVlIGZvciB0aGUgcmVzdWx0IHF1ZXVlIGluCisgIGNvbmN1cnJlbnQuZnV0dXJlcy5Qcm9jZXNzUG9vbEV4ZWN1dG9yLgorCistIElzc3VlICM1MTYyOiBUcmVhdCBzZXJ2aWNlcyBsaWtlIGZyb3plbiBleGVjdXRhYmxlcyB0byBhbGxvdyBjaGlsZCBzcGF3bmluZworICBmcm9tIG11bHRpcHJvY2Vzc2luZy5mb3JraW5nIG9uIFdpbmRvd3MuCisKKy0gbG9nZ2luZy5iYXNpY0NvbmZpZyBub3cgc3VwcG9ydHMgYW4gb3B0aW9uYWwgJ2hhbmRsZXJzJyBhcmd1bWVudCB0YWtpbmcgYW4KKyAgaXRlcmFibGUgb2YgaGFuZGxlcnMgdG8gYmUgYWRkZWQgdG8gdGhlIHJvb3QgbG9nZ2VyLiBBZGRpdGlvbmFsIHBhcmFtZXRlcgorICBjaGVja3Mgd2VyZSBhbHNvIGFkZGVkIHRvIGJhc2ljQ29uZmlnLgorCistIElzc3VlICMxMTgxNDogRml4IGxpa2VseSB0eXBvIGluIG11bHRpcHJvY2Vzc2luZy5Qb29sLl90ZXJtaW5hdGUoKS4KKworLSBJc3N1ZSAjMTE3NDc6IEZpeCByYW5nZSBmb3JtYXR0aW5nIGluIGRpZmZsaWIuY29udGV4dF9kaWZmKCkgYW5kCisgIGRpZmZsaWIudW5pZmllZF9kaWZmKCkuCisKKy0gSXNzdWUgIzg0Mjg6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIG11bHRpcHJvY2Vzc2luZy5Qb29sIHdoZW4gdGVybWluYXRpbmcKKyAgd29ya2VyIHByb2Nlc3NlczogbmV3IHByb2Nlc3NlcyB3b3VsZCBiZSBzcGF3bmVkIHdoaWxlIHRoZSBwb29sIGlzIGJlaW5nCisgIHNodXQgZG93bi4gIFBhdGNoIGJ5IENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KKworLSBJc3N1ZSAjMjY1MDogcmUuZXNjYXBlKCkgbm8gbG9uZ2VyIGVzY2FwZXMgdGhlICdfJy4KKworLSBJc3N1ZSAjMTE3NTc6IHNlbGVjdC5zZWxlY3QoKSBub3cgcmFpc2VzIFZhbHVlRXJyb3Igd2hlbiBhIG5lZ2F0aXZlIHRpbWVvdXQKKyAgaXMgcGFzc2VkIChwcmV2aW91c2x5LCBhIHNlbGVjdC5lcnJvciB3aXRoIEVJTlZBTCB3b3VsZCBiZSByYWlzZWQpLiAgUGF0Y2gKKyAgYnkgQ2hhcmxlcy1GcmFuw6dvaXMgTmF0YWxpLgorCistIElzc3VlICM3MzExOiBmaXggaHRtbC5wYXJzZXIgdG8gYWNjZXB0IG5vbi1BU0NJSSBhdHRyaWJ1dGUgdmFsdWVzLgorCistIElzc3VlICMxMTYwNTogZW1haWwucGFyc2VyLkJ5dGVzRmVlZFBhcnNlciB3YXMgaW5jb3JyZWN0bHkgY29udmVydGluZworICBtdWx0aXBhcnQgc3VicGFydHMgd2l0aCBhbiA4LWJpdCBDVEUgaW50byB1bmljb2RlIGluc3RlYWQgb2YgcHJlc2VydmluZyB0aGUKKyAgYnl0ZXMuCisKKy0gSXNzdWUgIzE2OTA2MDg6IGVtYWlsLnV0aWwuZm9ybWF0YWRkciBpcyBub3cgUkZDIDIwNDcgYXdhcmU6ICBpdCBub3cgaGFzIGEKKyAgY2hhcnNldCBwYXJhbWV0ZXIgdGhhdCBkZWZhdWx0cyB0byB1dGYtOCBhbmQgaXMgdXNlZCBhcyB0aGUgY2hhcnNldCBmb3IgUkZDCisgIDIwNDcgZW5jb2Rpbmcgd2hlbiB0aGUgcmVhbG5hbWUgY29udGFpbnMgbm9uLUFTQ0lJIGNoYXJhY3RlcnMuCisKKy0gSXNzdWUgIzEwOTYzOiBFbnN1cmUgdGhhdCBzdWJwcm9jZXNzLmNvbW11bmljYXRlKCkgbmV2ZXIgcmFpc2VzIEVQSVBFLgorCistIElzc3VlICMxMDc5MTogSW1wbGVtZW50IG1pc3NpbmcgbWV0aG9kIEd6aXBGaWxlLnJlYWQxKCksIGFsbG93aW5nIEd6aXBGaWxlCisgIHRvIGJlIHdyYXBwZWQgaW4gYSBUZXh0SU9XcmFwcGVyLiAgUGF0Y2ggYnkgTmFkZWVtIFZhd2RhLgorCistIElzc3VlICMxMTcwNzogQWRkZWQgYSBmYXN0IEMgdmVyc2lvbiBvZiBmdW5jdG9vbHMuY21wX3RvX2tleSgpLgorICBQYXRjaCBieSBGaWxpcCBHcnVzemN6ecWEc2tpLgorCistIElzc3VlICMxMTY4ODogQWRkIHNxbGl0ZTMuQ29ubmVjdGlvbi5zZXRfdHJhY2VfY2FsbGJhY2soKS4gIFBhdGNoIGJ5CisgIFRvcnN0ZW4gTGFuZHNjaG9mZi4KKworLSBJc3N1ZSAjMTE3NDY6IEZpeCBTU0xDb250ZXh0LmxvYWRfY2VydF9jaGFpbigpIHRvIGFjY2VwdCBlbGxpcHRpYyBjdXJ2ZQorICBwcml2YXRlIGtleXMuCisKKy0gSXNzdWUgIzU4NjM6IFJld3JpdGUgQloyRmlsZSBpbiBwdXJlIFB5dGhvbiwgYW5kIGFsbG93IGl0IHRvIGFjY2VwdAorICBmaWxlLWxpa2Ugb2JqZWN0cyB1c2luZyBhIG5ldyBgYGZpbGVvYmpgYCBjb25zdHJ1Y3RvciBhcmd1bWVudC4gIFBhdGNoIGJ5CisgIE5hZGVlbSBWYXdkYS4KKworLSB1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRTYW1lRWxlbWVudHMgaGFzIGJlZW4gcmVtb3ZlZC4KKworLSBzeXMuZ2V0ZmlsZXN5c3RlbWVuY29kaW5nKCkgcmFpc2VzIGEgUnVudGltZUVycm9yIGlmIGluaXRmc2VuY29kaW5nKCkgd2FzIG5vdAorICBjYWxsZWQgeWV0OiBkZXRlY3QgYm9vdHN0cmFwIChzdGFydHVwKSBpc3N1ZXMgZWFybGllci4KKworLSBJc3N1ZSAjMTEzOTM6IEFkZCB0aGUgbmV3IGZhdWx0aGFuZGxlciBtb2R1bGUuCisKKy0gSXNzdWUgIzExNjE4OiBGaXggdGhlIHRpbWVvdXQgbG9naWMgaW4gdGhyZWFkaW5nLkxvY2suYWNxdWlyZSgpIHVuZGVyIFdpbmRvd3MuCisKKy0gUmVtb3ZlZCB0aGUgJ3N0cmljdCcgYXJndW1lbnQgdG8gZW1haWwucGFyc2VyLlBhcnNlciwgd2hpY2ggaGFzIGJlZW4KKyAgZGVwcmVjYXRlZCBzaW5jZSBQeXRob24gMi40LgorCistIElzc3VlICMxMTI1NjogRml4IGluc3BlY3QuZ2V0Y2FsbGFyZ3Mgb24gZnVuY3Rpb25zIHRoYXQgdGFrZSBvbmx5IGtleXdvcmQKKyAgYXJndW1lbnRzLgorCistIElzc3VlICMxMTY5NjogRml4IElEIGdlbmVyYXRpb24gaW4gbXNpbGliLgorCistIGl0ZXJ0b29scy5hY2N1bXVsYXRlIG5vdyBzdXBwb3J0cyBhbiBvcHRpb25hbCAqZnVuYyogYXJndW1lbnQgZm9yCisgIGEgdXNlci1zdXBwbGllZCBiaW5hcnkgZnVuY3Rpb24uCisKKy0gSXNzdWUgIzExNjkyOiBSZW1vdmUgdW5uZWNlc3NhcnkgZGVtbyBmdW5jdGlvbnMgaW4gc3VicHJvY2VzcyBtb2R1bGUuCisKKy0gSXNzdWUgIzk2OTY6IEZpeCBleGNlcHRpb24gaW5jb3JyZWN0bHkgcmFpc2VkIGJ5IHhkcmxpYi5QYWNrZXIucGFja19pbnQgd2hlbgorICB0cnlpbmcgdG8gcGFjayBhIG5lZ2F0aXZlIChpbi1yYW5nZSkgaW50ZWdlci4KKworLSBJc3N1ZSAjMTE2NzU6IG11bHRpcHJvY2Vzc2luZy5bUmF3XUFycmF5IG9iamVjdHMgY3JlYXRlZCBmcm9tIGFuIGludGVnZXIgc2l6ZQorICBhcmUgbm93IHplcm9lZCBvbiBjcmVhdGlvbi4gIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3VyIHNwZWNpZmllZCBieSB0aGUKKyAgZG9jdW1lbnRhdGlvbi4KKworLSBJc3N1ZSAjNzYzOTogRml4IHNob3J0IGZpbGUgbmFtZSBnZW5lcmF0aW9uIGluIGJkaXN0X21zaQorCistIElzc3VlICMxMTY1OTogRml4IFJlc291cmNlV2FybmluZyBpbiB0ZXN0X3N1YnByb2Nlc3MgaW50cm9kdWNlZCBieSAjMTE0NTkuCisgIFBhdGNoIGJ5IEJlbiBIYXlkZW4uCisKKy0gSXNzdWUgIzExNjM1OiBEb24ndCB1c2UgcG9sbGluZyBpbiB3b3JrZXIgdGhyZWFkcyBhbmQgcHJvY2Vzc2VzIGxhdW5jaGVkIGJ5CisgIGNvbmN1cnJlbnQuZnV0dXJlcy4KKworLSBJc3N1ZSAjNjgxMTogQWxsb3cgaW1wb3J0bGliIHRvIGNoYW5nZSBhIGNvZGUgb2JqZWN0J3MgY29fZmlsZW5hbWUgYXR0cmlidXRlCisgIHRvIG1hdGNoIHRoZSBwYXRoIHRvIHdoZXJlIHRoZSBzb3VyY2UgY29kZSBjdXJyZW50bHkgaXMsIG5vdCB3aGVyZSB0aGUgY29kZQorICBvYmplY3Qgb3JpZ2luYWxseSBjYW1lIGZyb20uCisKKy0gSXNzdWUgIzg3NTQ6IEhhdmUgaW1wb3J0bGliIHVzZSB0aGUgcmVwciBvZiBhIG1vZHVsZSBuYW1lIGluIGVycm9yIG1lc3NhZ2VzLgorCistIElzc3VlICMxMTU5MTogUHJldmVudCAiaW1wb3J0IHNpdGUiIGZyb20gbW9kaWZ5aW5nIHN5cy5wYXRoIHdoZW4gcHl0aG9uCisgIHdhcyBzdGFydGVkIHdpdGggLVMuCisKKy0gY29sbGVjdGlvbnMubmFtZWR0dXBsZSgpIG5vdyBhZGRzIGEgX3NvdXJjZSBhdHRyaWJ1dGUgdG8gdGhlIGdlbmVyYXRlZAorICBjbGFzcy4gIFRoaXMgbWFrZSB0aGUgc291cmNlIG1vcmUgYWNjZXNzaWJsZSB0aGFuIHRoZSBvdXRkYXRlZAorICAidmVyYm9zZSIgb3B0aW9uIHdoaWNoIHByaW50cyB0byBzdGRvdXQgYnV0IGRvZXNuJ3QgbWFrZSB0aGUgc291cmNlCisgIHN0cmluZyBhdmFpbGFibGUuCisKKy0gSXNzdWUgIzExMzcxOiBNYXJrIGdldG9wdCBlcnJvciBtZXNzYWdlcyBhcyBsb2NhbGl6YWJsZS4gIFBhdGNoIGJ5IEZpbGlwCisgIEdydXN6Y3p5xYRza2kuCisKKy0gSXNzdWUgIzExMzMzOiBBZGQgX19zbG90c19fIHRvIGNvbGxlY3Rpb25zIEFCQ3MuCisKKy0gSXNzdWUgIzExNjI4OiBjbXBfdG9fa2V5IGdlbmVyYXRlZCBjbGFzcyBzaG91bGQgdXNlIF9fc2xvdHNfXy4KKworLSBJc3N1ZSAjMTE2NjY6IGxldCBoZWxwKCkgZGlzcGxheSBuYW1lZCB0dXBsZSBhdHRyaWJ1dGVzIGFuZCBtZXRob2RzCisgIHRoYXQgc3RhcnQgd2l0aCBhIGxlYWRpbmcgdW5kZXJzY29yZS4KKworLSBJc3N1ZSAjMTE2NjI6IE1ha2UgdXJsbGliIGFuZCB1cmxsaWIyIGlnbm9yZSByZWRpcmVjdGlvbnMgaWYgdGhlCisgIHNjaGVtZSBpcyBub3QgSFRUUCwgSFRUUFMgb3IgRlRQIChDVkUtMjAxMS0xNTIxKS4KKworLSBJc3N1ZSAjNTUzNzogRml4IHRpbWUyaXNveigpIGFuZCB0aW1lMm5ldHNjYXBlKCkgZnVuY3Rpb25zIG9mCisgIGh0dHBsaWIuY29va2llamFyIGZvciBleHBpcmF0aW9uIHllYXIgZ3JlYXRlciB0aGFuIDIwMzggb24gMzItYml0IHN5c3RlbXMuCisKKy0gSXNzdWUgIzQzOTE6IFVzZSBwcm9wZXIgZ2V0dGV4dCBwbHVyYWwgZm9ybXMgaW4gb3B0cGFyc2UuCisKKy0gSXNzdWUgIzExMTI3OiBSYWlzZSBhIFR5cGVFcnJvciB3aGVuIHRyeWluZyB0byBwaWNrbGUgYSBzb2NrZXQgb2JqZWN0LgorCistIElzc3VlICMxMTU2MzogQ29ubmVjdGlvbjpjbG9zZSBoZWFkZXIgaXMgc2VudCBieSByZXF1ZXN0cyB1c2luZyBVUkxPcGVuZXIKKyAgY2xhc3Mgd2hpY2ggaGVscHMgaW4gY2xvc2luZyBvZiBzb2NrZXRzIGFmdGVyIGNvbm5lY3Rpb24gaXMgb3Zlci4gUGF0Y2gKKyAgY29udHJpYnV0aW9ucyBieSBKZWZmIE1jTmVpbCBhbmQgTmFkZWVtIFZhd2RhLgorCistIElzc3VlICMxMTQ1OTogQSBgYGJ1ZnNpemVgYCB2YWx1ZSBvZiAwIGluIHN1YnByb2Nlc3MuUG9wZW4oKSByZWFsbHkgY3JlYXRlcworICB1bmJ1ZmZlcmVkIHBpcGVzLCBzdWNoIHRoYXQgc2VsZWN0KCkgd29ya3MgcHJvcGVybHkgb24gdGhlbS4KKworLSBJc3N1ZSAjNTQyMTogRml4IG1pc2xlYWRpbmcgZXJyb3IgbWVzc2FnZSB3aGVuIG9uZSBvZiBzb2NrZXQuc2VuZHRvKCkncworICBhcmd1bWVudHMgaGFzIHRoZSB3cm9uZyB0eXBlLiAgUGF0Y2ggYnkgTmlraXRhIFZldG9zaGtpbi4KKworLSBJc3N1ZSAjMTA4MTI6IEFkZCBzb21lIGV4dHJhIHBvc2l4IGZ1bmN0aW9ucyB0byB0aGUgb3MgbW9kdWxlLgorCistIElzc3VlICMxMDk3OTogdW5pdHRlc3Qgc3Rkb3V0IGJ1ZmZlcmluZyBub3cgd29ya3Mgd2l0aCBjbGFzcyBhbmQgbW9kdWxlCisgIHNldHVwIGFuZCB0ZWFyZG93bi4KKworLSBJc3N1ZSAjMTE1Nzc6IGZpeCBSZXNvdXJjZVdhcm5pbmcgdHJpZ2dlcmVkIGJ5IGltcHJvdmVkIGJpbmhleCB0ZXN0IGNvdmVyYWdlCisKKy0gSXNzdWUgIzExMjQzOiBmaXggdGhlIHBhcmFtZXRlciBxdWVyeWluZyBtZXRob2RzIG9mIE1lc3NhZ2UgdG8gd29yayBpZgorICB0aGUgaGVhZGVycyBjb250YWluIHVuLWVuY29kZWQgbm9uLUFTQ0lJIGRhdGEuCisKKy0gSXNzdWUgIzExNDAxOiBmaXggaGFuZGxpbmcgb2YgaGVhZGVycyB3aXRoIG5vIHZhbHVlOyB0aGlzIGZpeGVzIGEgcmVncmVzc2lvbgorICByZWxhdGl2ZSB0byBQeXRob24yIGFuZCB0aGUgcmVzdWx0IGlzIG5vdyB0aGUgc2FtZSBhcyBpdCB3YXMgaW4gUHl0aG9uMi4KKworLSBJc3N1ZSAjOTI5ODogYmFzZTY0IGJvZGllcyB3ZXJlbid0IGJlaW5nIGZvbGRlZCB0byBsaW5lIGxlbmd0aHMgbGVzcyB0aGFuIDc4LAorICB3aGljaCB3YXMgYSByZWdyZXNzaW9uIHJlbGF0aXZlIHRvIFB5dGhvbjIuICBVbmxpa2UgUHl0aG9uMiwgdGhlIGxhc3QgbGluZQorICBvZiB0aGUgZm9sZGVkIGJvZHkgbm93IGVuZHMgd2l0aCBhIGNhcnJpYWdlIHJldHVybi4KKworLSBJc3N1ZSAjMTE1NjA6IHNodXRpbC51bnBhY2tfYXJjaGl2ZSBub3cgY29ycmVjdGx5IGhhbmRsZXMgdGhlIGZvcm1hdAorICBwYXJhbWV0ZXIuIFBhdGNoIGJ5IEV2YW4gRGFuZHJlYS4KKworLSBJc3N1ZSAjNTg3MDogQWRkIGBzdWJwcm9jZXNzLkRFVk5VTExgIGNvbnN0YW50LgorCistIElzc3VlICMxMTEzMzogZml4IHR3byBjYXNlcyB3aGVyZSBpbnNwZWN0LmdldGF0dHJfc3RhdGljIGNhbiB0cmlnZ2VyIGNvZGUKKyAgZXhlY3V0aW9uLiBQYXRjaCBieSBBbmRyZWFzIFN0w7xocmsuCisKKy0gSXNzdWUgIzExNTY5OiB1c2UgYWJzb2x1dGUgcGF0aCB0byB0aGUgc3lzY3RsIGNvbW1hbmQgaW4gbXVsdGlwcm9jZXNzaW5nIHRvCisgIGVuc3VyZSB0aGF0IGl0IHdpbGwgYmUgZm91bmQgcmVnYXJkbGVzcyBvZiB0aGUgc2hlbGwgUEFUSC4gVGhpcyBlbnN1cmVzCisgIHRoYXQgbXVsdGlwcm9jZXNzaW5nLmNwdV9jb3VudCB3b3JrcyBvbiBkZWZhdWx0IGluc3RhbGxzIG9mIE1hY09TWC4KKworLSBJc3N1ZSAjMTE1MDE6IGRpc3V0aWxzLmFyY2hpdmVfdXRpbHMubWFrZV96aXBmaWxlIG5vIGxvbmdlciBmYWlscyBpZiB6bGliIGlzCisgIG5vdCBpbnN0YWxsZWQuIEluc3RlYWQsIHRoZSB6aXBmaWxlLlpJUF9TVE9SRUQgY29tcHJlc3Npb24gaXMgdXNlZCB0byBjcmVhdGUKKyAgdGhlIFppcEZpbGUuIFBhdGNoIGJ5IE5hdGFsaWEgQi4gQmlkYXJ0LgorCistIElzc3VlICMxMTI4OTogYHNtdHAuU01UUGAgY2xhc3MgaXMgbm93IGEgY29udGV4dCBtYW5hZ2VyIHNvIGl0IGNhbiBiZSB1c2VkCisgIGluIGEgYHdpdGhgIHN0YXRlbWVudC4gIENvbnRyaWJ1dGVkIGJ5IEdpYW1wYW9sbyBSb2RvbGEuCisKKy0gSXNzdWUgIzExNTU0OiBGaXhlZCBzdXBwb3J0IGZvciBKYXBhbmVzZSBjb2RlY3M7IHByZXZpb3VzbHkgdGhlIGJvZHkgb3V0cHV0CisgIGVuY29kaW5nIHdhcyBub3QgZG9uZSBpZiBldWMtanAgb3Igc2hpZnQtamlzIHdhcyBzcGVjaWZpZWQgYXMgdGhlIGNoYXJzZXQuCisKKy0gSXNzdWUgIzExNTA5OiBTaWduaWZpY2FudGx5IGluY3JlYXNlIHRlc3QgY292ZXJhZ2Ugb2YgZmlsZWlucHV0LgorICBQYXRjaCBieSBEZW52ZXIgQ29uZXliZWFyZSBhdCBQeUNvbiAyMDExIFNwcmludHMuCisKKy0gSXNzdWUgIzExNDA3OiBgVGVzdENhc2UucnVuYCByZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0IHVzZWQgb3IgY3JlYXRlZC4KKyAgQ29udHJpYnV0ZWQgYnkgSmFuYXRoYW4gSGFydGxleS4KKworLSBJc3N1ZSAjMTE1MDA6IEZpeGVkIGEgYnVnIGluIHRoZSBPUyBYIHByb3h5IGJ5cGFzcyBjb2RlIGZvciBmdWxseSBxdWFsaWZpZWQKKyAgSVAgYWRkcmVzc2VzIGluIHRoZSBwcm94eSBleGNlcHRpb24gbGlzdC4KKworLSBJc3N1ZSAjMTE0OTE6IGRibS5lcnJvciBpcyBubyBsb25nZXIgcmFpc2VkIHdoZW4gZGJtLm9wZW4gaXMgY2FsbGVkIHdpdGgKKyAgdGhlICJuIiBhcyB0aGUgZmxhZyBhcmd1bWVudCBhbmQgdGhlIGZpbGUgZXhpc3RzLiBUaGUgYmVoYXZpb3IgbWF0Y2hlcworICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgZ2VuZXJhbCBsb2dpYy4KKworLSBJc3N1ZSAjMTE2MjQ3NzogUG9zdGVsIFByaW5jaXBsZSBhZGp1c3RtZW50IHRvIGVtYWlsIGRhdGUgcGFyc2luZzogaGFuZGxlIHRoZQorICBmYWN0IHRoYXQgc29tZSBub24tY29tcGxpYW50IE1VQXMgdXNlICcuJyBpbnN0ZWFkIG9mICc6JyBpbiB0aW1lIHNwZWNzLgorCistIElzc3VlICMxMTEzMTogRml4IHNpZ24gb2YgemVybyBpbiBkZWNpbWFsLkRlY2ltYWwgcGx1cyBhbmQgbWludXMKKyAgb3BlcmF0aW9ucyB3aGVuIHRoZSByb3VuZGluZyBtb2RlIGlzIFJPVU5EX0ZMT09SLgorCistIElzc3VlICM5OTM1OiBTcGVlZCB1cCBwaWNrbGluZyBvZiBpbnN0YW5jZXMgb2YgdXNlci1kZWZpbmVkIGNsYXNzZXMuCisKKy0gSXNzdWUgIzU2MjI6IEZpeCBjdXJzZXMud3JhcHBlciB0byByYWlzZSBjb3JyZWN0IGV4Y2VwdGlvbiBpZiBjdXJzZXMKKyAgaW5pdGlhbGl6YXRpb24gZmFpbHMuCisKKy0gSXNzdWUgIzExNDA4OiBJbiB0aHJlYWRpbmcuTG9jay5hY3F1aXJlKCksIG9ubHkgY2FsbCBnZXR0aW1lb2ZkYXkoKSB3aGVuCisgIHJlYWxseSBuZWNlc3NhcnkuICBQYXRjaCBieSBDaGFybGVzLUZyYW7Dp29pcyBOYXRhbGkuCisKKy0gSXNzdWUgIzExMzkxOiBXcml0aW5nIHRvIGEgbW1hcCBvYmplY3QgY3JlYXRlZCB3aXRoCisgIGBgbW1hcC5QUk9UX1JFQUR8bW1hcC5QUk9UX0VYRUNgYCB3b3VsZCBzZWdmYXVsdCBpbnN0ZWFkIG9mIHJhaXNpbmcgYQorICBUeXBlRXJyb3IuICBQYXRjaCBieSBDaGFybGVzLUZyYW7Dp29pcyBOYXRhbGkuCisKKy0gSXNzdWUgIzk3OTU6IGFkZCBjb250ZXh0IG1hbmFnZXIgcHJvdG9jb2wgc3VwcG9ydCBmb3Igbm50cGxpYi5OTlRQIGNsYXNzLgorCistIElzc3VlICMxMTMwNjogbWFpbGJveCBpbiBjZXJ0YWluIGNhc2VzIGFkYXB0cyB0byBhbiBpbmFiaWxpdHkgdG8gb3BlbgorICBjZXJ0YWluIGZpbGVzIGluIHJlYWQtd3JpdGUgbW9kZS4gIFByZXZpb3VzbHkgaXQgZGV0ZWN0ZWQgdGhpcyBieQorICBjaGVja2luZyBmb3IgRUFDQ0VTLCBub3cgaXQgYWxzbyBjaGVja3MgZm9yIEVST0ZTLgorCistIElzc3VlICMxMTI2NTogYXN5bmNvcmUgbm93IGNvcnJlY3RseSBoYW5kbGVzIEVQSVBFLCBFQkFERiBhbmQgRUFHQUlOIGVycm9ycworICBvbiBhY2NlcHQoKSwgc2VuZCgpIGFuZCByZWN2KCkuCisKKy0gSXNzdWUgIzExMzc3OiBEZXByZWNhdGUgcGxhdGZvcm0ucG9wZW4oKSBhbmQgcmVpbXBsZW1lbnQgaXQgd2l0aCBvcy5wb3BlbigpLgorCistIElzc3VlICM4NTEzOiBPbiBVTklYLCBzdWJwcm9jZXNzIHN1cHBvcnRzIGJ5dGVzIGNvbW1hbmQgc3RyaW5nLgorCistIElzc3VlICMxMDg2NjogQWRkIHNvY2tldC5zZXRob3N0bmFtZSgpLiAgSW5pdGlhbCBwYXRjaCBieSBSb3NzIExhZ2Vyd2FsbC4KKworLSBJc3N1ZSAjMTExNDA6IExvY2sucmVsZWFzZSgpIG5vdyByYWlzZXMgYSBSdW50aW1lRXJyb3Igd2hlbiBhdHRlbXB0aW5nCisgIHRvIHJlbGVhc2UgYW4gdW5hY3F1aXJlZCBsb2NrLCBhcyBjbGFpbWVkIGluIHRoZSB0aHJlYWRpbmcgZG9jdW1lbnRhdGlvbi4KKyAgVGhlIF90aHJlYWQuZXJyb3IgZXhjZXB0aW9uIGlzIG5vdyBhbiBhbGlhcyBvZiBSdW50aW1lRXJyb3IuICBQYXRjaCBieQorICBGaWxpcCBHcnVzemN6ecWEc2tpLiAgUGF0Y2ggZm9yIF9kdW1teV90aHJlYWQgYnkgQXltZXJpYyBBdWd1c3Rpbi4KKworLSBJc3N1ZSAjODU5NDogZnRwbGliIG5vdyBwcm92aWRlcyBhIHNvdXJjZV9hZGRyZXNzIHBhcmFtZXRlciB0byBzcGVjaWZ5IHdoaWNoCisgIChhZGRyZXNzLCBwb3J0KSB0byBiaW5kIHRvIGJlZm9yZSBjb25uZWN0aW5nLgorCistIElzc3VlICMxMTMyNjogQWRkIHRoZSBtaXNzaW5nIGNvbm5lY3RfZXgoKSBpbXBsZW1lbnRhdGlvbiBmb3IgU1NMIHNvY2tldHMsCisgIGFuZCBtYWtlIGl0IHdvcmsgZm9yIG5vbi1ibG9ja2luZyBjb25uZWN0cy4KKworLSBJc3N1ZSAjMTEyOTc6IEFkZCBjb2xsZWN0aW9ucy5DaGFpbk1hcCgpLgorCistIElzc3VlICMxMDc1NTogQWRkIHRoZSBwb3NpeC5mbGlzdGRpcigpIGZ1bmN0aW9uLiAgUGF0Y2ggYnkgUm9zcyBMYWdlcndhbGwuCisKKy0gSXNzdWUgIzQ3NjE6IEFkZCB0aGUgYGAqYXQoKWBgIGZhbWlseSBvZiBmdW5jdGlvbnMgKG9wZW5hdCgpLCBldGMuKSB0byB0aGUKKyAgcG9zaXggbW9kdWxlLiAgUGF0Y2ggYnkgUm9zcyBMYWdlcndhbGwuCisKKy0gSXNzdWUgIzczMjI6IFRyeWluZyB0byByZWFkIGZyb20gYSBzb2NrZXQncyBmaWxlLWxpa2Ugb2JqZWN0IGFmdGVyIGEgdGltZW91dAorICBvY2N1cnJlZCBub3cgcmFpc2VzIGFuIGVycm9yIGluc3RlYWQgb2Ygc2lsZW50bHkgbG9zaW5nIGRhdGEuCisKKy0gSXNzdWUgIzExMjkxOiBwb3BsaWIuUE9QIG5vIGxvbmdlciBzdXBwcmVzc2VzIGVycm9ycyBvbiBxdWl0KCkuCisKKy0gSXNzdWUgIzExMTc3OiBhc3luY29yZSdzIGNyZWF0ZV9zb2NrZXQoKSBhcmd1bWVudHMgY2FuIG5vdyBiZSBvbWl0dGVkLgorCistIElzc3VlICM2MDY0OiBBZGQgYSBgYGRhZW1vbmBgIGtleXdvcmQgYXJndW1lbnQgdG8gdGhlIHRocmVhZGluZy5UaHJlYWQKKyAgYW5kIG11bHRpcHJvY2Vzc2luZy5Qcm9jZXNzIGNvbnN0cnVjdG9ycyBpbiBvcmRlciB0byBvdmVycmlkZSB0aGUKKyAgZGVmYXVsdCBiZWhhdmlvdXIgb2YgaW5oZXJpdGluZyB0aGUgZGFlbW9uaWMgcHJvcGVydHkgZnJvbSB0aGUgY3VycmVudAorICB0aHJlYWQvcHJvY2Vzcy4KKworLSBJc3N1ZSAjMTA5NTY6IEJ1ZmZlcmVkIEkvTyBjbGFzc2VzIHJldHJ5IHJlYWRpbmcgb3Igd3JpdGluZyBhZnRlciBhIHNpZ25hbAorICBoYXMgYXJyaXZlZCBhbmQgdGhlIGhhbmRsZXIgcmV0dXJuZWQgc3VjY2Vzc2Z1bGx5LgorCistIElzc3VlICMxMDc4NDogTmV3IG9zLmdldHByaW9yaXR5KCkgYW5kIG9zLnNldHByaW9yaXR5KCkgZnVuY3Rpb25zLgorCistIElzc3VlICMxMTExNDogRml4IGNhdGFzdHJvcGhpYyBwZXJmb3JtYW5jZSBvZiB0ZWxsKCkgb24gdGV4dCBmaWxlcyAodXAKKyAgdG8gMTAwMHggZmFzdGVyIGluIHNvbWUgY2FzZXMpLiAgSXQgaXMgc3RpbGwgb25lIHRvIHR3byBvcmRlciBvZiBtYWduaXR1ZGVzCisgIHNsb3dlciB0aGFuIGJpbmFyeSB0ZWxsKCkuCisKKy0gSXNzdWUgIzEwODgyOiBBZGQgb3Muc2VuZGZpbGUgZnVuY3Rpb24uCisKKy0gSXNzdWUgIzEwODY4OiBBbGxvdyB1c2FnZSBvZiB0aGUgcmVnaXN0ZXIgbWV0aG9kIG9mIGFuIEFCQyBhcyBhIGNsYXNzCisgIGRlY29yYXRvci4KKworLSBJc3N1ZSAjMTEyMjQ6IEZpeGVkIGEgcmVncmVzc2lvbiBpbiB0YXJmaWxlIHRoYXQgYWZmZWN0ZWQgdGhlIGZpbGUtbGlrZQorICBvYmplY3RzIHJldHVybmVkIGJ5IFRhckZpbGUuZXh0cmFjdGZpbGUoKSByZWdhcmRpbmcgcGVyZm9ybWFuY2UsIG1lbW9yeQorICBjb25zdW1wdGlvbiBhbmQgZmFpbHVyZXMgd2l0aCB0aGUgc3RyZWFtIGludGVyZmFjZS4KKworLSBJc3N1ZSAjMTA5MjQ6IEFkZGluZyBzYWx0IGFuZCBNb2R1bGFyIENyeXB0IEZvcm1hdCB0byBjcnlwdCBsaWJyYXJ5LgorICBNb3ZlZCBvbGQgQyB3cmFwcGVyIHRvIF9jcnlwdCwgYW5kIGFkZGVkIGEgUHl0aG9uIHdyYXBwZXIgd2l0aAorICBlbmhhbmNlZCBzYWx0IGdlbmVyYXRpb24gYW5kIHNpbXBsZXIgQVBJIGZvciBwYXNzd29yZCBnZW5lcmF0aW9uLgorCistIElzc3VlICMxMTA3NDogTWFrZSAndG9rZW5pemUnIHNvIGl0IGNhbiBiZSByZWxvYWRlZC4KKworLSBJc3N1ZSAjMTEwODU6IE1vdmVkIGNvbGxlY3Rpb25zIGFic3RyYWN0IGJhc2UgY2xhc3NlcyBpbnRvIGEgc2VwYXJhdGUKKyAgbW9kdWxlIGNhbGxlZCBjb2xsZWN0aW9ucy5hYmMsIGZvbGxvd2luZyB0aGUgcGF0dGVybiB1c2VkIGJ5IGltcG9ydGxpYi5hYmMuCisgIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgdGhlIG5hbWVzIGFyZSBpbXBvcnRlZCBpbnRvIHRoZSBjb2xsZWN0aW9ucworICBtb2R1bGUuCisKKy0gSXNzdWUgIzQ2ODE6IEFsbG93IG1tYXAoKSB0byB3b3JrIG9uIGZpbGUgc2l6ZXMgYW5kIG9mZnNldHMgbGFyZ2VyIHRoYW4KKyAgNEdCLCBldmVuIG9uIDMyLWJpdCBidWlsZHMuICBJbml0aWFsIHBhdGNoIGJ5IFJvc3MgTGFnZXJ3YWxsLCBhZGFwdGVkIGZvcgorICAzMi1iaXQgV2luZG93cy4KKworLSBJc3N1ZSAjMTExNjk6IGNvbXBpbGVhbGwgbW9kdWxlIHVzZXMgcmVwcigpIHRvIGZvcm1hdCBmaWxlbmFtZXMgYW5kIHBhdGhzIHRvCisgIGVzY2FwZSBzdXJyb2dhdGUgY2hhcmFjdGVycyBhbmQgc2hvdyBzcGFjZXMuCisKKy0gSXNzdWUgIzExMDg5OiBGaXggcGVyZm9ybWFuY2UgaXNzdWUgbGltaXRpbmcgdGhlIHVzZSBvZiBDb25maWdQYXJzZXIoKQorICB3aXRoIGxhcmdlIGNvbmZpZyBmaWxlcy4KKworLSBJc3N1ZSAjMTAyNzY6IEZpeCB0aGUgcmVzdWx0cyBvZiB6bGliLmNyYzMyKCkgYW5kIHpsaWIuYWRsZXIzMigpIG9uIGJ1ZmZlcnMKKyAgbGFyZ2VyIHRoYW4gNEdCLiAgUGF0Y2ggYnkgTmFkZWVtIFZhd2RhLgorCistIElzc3VlICMxMTM4ODogQWRkZWQgYSBjbGVhcigpIG1ldGhvZCB0byBNdXRhYmxlU2VxdWVuY2UKKworLSBJc3N1ZSAjMTExNzQ6IEFkZCBhcmdwYXJzZS5NZXRhdmFyVHlwZUhlbHBGb3JtYXR0ZXIsIHdoaWNoIHVzZXMgdHlwZSBuYW1lcworICBmb3IgdGhlIG5hbWVzIG9mIG9wdGlvbmFsIGFuZCBwb3NpdGlvbmFsIGFyZ3VtZW50cyBpbiBoZWxwIG1lc3NhZ2VzLgorCistIElzc3VlICM5MzQ4OiBSYWlzZSBhbiBlYXJseSBlcnJvciBpZiBhcmdwYXJzZSBuYXJncyBhbmQgbWV0YXZhciBkb24ndCBtYXRjaC4KKworLSBJc3N1ZSAjODk4MjogSW1wcm92ZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGFyZ3BhcnNlIE5hbWVzcGFjZSBvYmplY3QuCisKKy0gSXNzdWUgIzkzNDM6IERvY3VtZW50IHRoYXQgYXJncGFyc2UgcGFyZW50IHBhcnNlcnMgbXVzdCBiZSBjb25maWd1cmVkIGJlZm9yZQorICB0aGVpciBjaGlsZHJlbi4KKworLSBJc3N1ZSAjOTAyNjogRml4IG9yZGVyIG9mIGFyZ3BhcnNlIHN1Yi1jb21tYW5kcyBpbiBoZWxwIG1lc3NhZ2VzLgorCistIElzc3VlICM5MzQ3OiBGaXggZm9ybWF0dGluZyBmb3IgdHVwbGVzIGluIGFyZ3BhcnNlIHR5cGU9IGVycm9yIG1lc3NhZ2VzLgorCistIElzc3VlICMxMjE5MTogQWRkZWQgc2h1dGlsLmNob3duKCkgdG8gY2hhbmdlIHVzZXIgYW5kL29yIGdyb3VwIG93bmVyIG9mIGEKKyAgZ2l2ZW4gcGF0aCBhbHNvIHNwZWNpZnlpbmcgdGhlaXIgbmFtZXMuCisKKy0gSXNzdWUgIzEzOTg4OiBUaGUgX2VsZW1lbnR0cmVlIGFjY2VsZXJhdG9yIGlzIHVzZWQgd2hlbmV2ZXIgYXZhaWxhYmxlLgorICBOb3cgeG1sLmV0cmVlLmNFbGVtZW50VHJlZSBiZWNvbWVzIGEgZGVwcmVjYXRlZCBhbGlhcyB0byBFbGVtZW50VHJlZS4KKworQnVpbGQKKy0tLS0tCisKKy0gSXNzdWUgIzY4MDc6IFJ1biBtc2lzdXBwb3J0Lm1hayBlYXJsaWVyLgorCistIElzc3VlICMxMDU4MDogTWlub3IgZ3JhbW1hciBjaGFuZ2UgaW4gV2luZG93cyBpbnN0YWxsZXIuCisKKy0gSXNzdWUgIzEzMzI2OiBDbGVhbiBfX3B5Y2FjaGVfXyBkaXJlY3RvcmllcyBjb3JyZWN0bHkgb24gT3BlbkJTRC4KKworLSBQRVAgMzkzOiB0aGUgY29uZmlndXJlIG9wdGlvbiAtLXdpdGgtd2lkZS11bmljb2RlIGlzIHJlbW92ZWQuCisKKy0gSXNzdWUgIzEyODUyOiBTZXQgX1hPUEVOX1NPVVJDRSB0byA3MDAsIGluc3RlYWQgb2YgNjAwLCB0byBnZXQgUE9TSVggMjAwOAorICBmdW5jdGlvbnMgb24gT3BlbkJTRCAoZS5nLiBmZG9wZW5kaXIpLgorCistIElzc3VlICMxMTg2MzogUmVtb3ZlIHN1cHBvcnQgZm9yIGxlZ2FjeSBzeXN0ZW1zIGRlcHJlY2F0ZWQgaW4gUHl0aG9uIDMuMgorICAoZm9sbG93aW5nIFBFUCAxMSkuICBUaGVzZSBzeXN0ZW1zIGFyZSBzeXN0ZW1zIHVzaW5nIE1hY2ggQyBUaHJlYWRzLAorICBTdW5PUyBsaWdodHdlaWdodCBwcm9jZXNzZXMsIEdOVSBwdGggdGhyZWFkcyBhbmQgSVJJWCB0aHJlYWRzLgorCistIElzc3VlICM4NzQ2OiBDb3JyZWN0IGZhdWx0eSBjb25maWd1cmUgY2hlY2tzIHNvIHRoYXQgb3MuY2hmbGFncygpIGFuZAorICBvcy5sY2hmbGFncygpIGFyZSBvbmNlIGFnYWluIGJ1aWx0IG9uIHN5c3RlbXMgdGhhdCBzdXBwb3J0IHRoZXNlCisgIGZ1bmN0aW9ucyAoQlNEIGFuZCBPUyBYKS4gIEFsc28gYWRkIG5ldyBzdGF0IGZpbGUgZmxhZ3MgZm9yIE9TIFgKKyAgKFVGX0hJRERFTiBhbmQgVUZfQ09NUFJFU1NFRCkuCisKKy0gSXNzdWUgIzEwNjQ1OiBJbnN0YWxsaW5nIFB5dGhvbiBubyBsb25nZXIgY3JlYXRlcyBhCisgIFB5dGhvbi1YLlkuWi1weVguWS5lZ2ctaW5mbyBmaWxlIGluIHRoZSBsaWItZHlubG9hZCBkaXJlY3RvcnkuCisKKy0gRG8gbm90IGFjY2lkZW50YWxseSBpbmNsdWRlIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBzcWxpdGUuaCB0d2ljZSB3aGVuCisgIGJ1aWxkaW5nIHNxbGl0ZTMuCisKKy0gSXNzdWUgIzExMjE3OiBGb3IgNjQtYml0LzMyLWJpdCBNYWMgT1MgWCB1bml2ZXJzYWwgZnJhbWV3b3JrIGJ1aWxkcywKKyAgZW5zdXJlICJtYWtlIGluc3RhbGwiIGNyZWF0ZXMgc3ltbGlua3MgaW4gLS1wcmVmaXggYmluIGZvciB0aGUgIi0zMiIKKyAgZmlsZXMgaW4gdGhlIGZyYW1ld29yayBiaW4gZGlyZWN0b3J5IGxpa2UgdGhlIGluc3RhbGxlciBkb2VzLgorCistIElzc3VlICMxMTM0NzogVXNlIC0tbm8tYXMtbmVlZGVkIHdoZW4gbGlua2luZyBsaWJweXRob24zLnNvLgorCistIElzc3VlICMxMTQxMTogRml4ICdtYWtlIERFU1RESVI9JyB3aXRoIGEgcmVsYXRpdmUgZGVzdGluYXRpb24uCisKKy0gSXNzdWUgIzExMjY4OiBQcmV2ZW50IE1hYyBPUyBYIEluc3RhbGxlciBmYWlsdXJlIGlmIERvY3VtZW50YXRpb24KKyAgcGFja2FnZSBoYWQgcHJldmlvdXNseSBiZWVuIGluc3RhbGxlZC4KKworLSBJc3N1ZSAjMTE0OTU6IE9TRiBzdXBwb3J0IGlzIGVsaW1pbmF0ZWQuIEl0IHdhcyBkZXByZWNhdGVkIGluIFB5dGhvbiAzLjIuCisKKworSURMRQorLS0tLQorCistIElzc3VlICMxMTcxODogSURMRSdzIG9wZW4gbW9kdWxlIGRpYWxvZyBjb3VsZG4ndCBmaW5kIHRoZSBfX2luaXRfXy5weQorICBmaWxlIGluIGEgcGFja2FnZS4KKworVG9vbHMvRGVtb3MKKy0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzE0MDUzOiBwYXRjaGNoZWNrLnB5ICgibWFrZSBwYXRjaGNoZWNrIikgbm93IHdvcmtzIHdpdGggTVEgcGF0Y2hlcy4KKyAgUGF0Y2ggYnkgRnJhbmNpc2NvIE1hcnTDrW4gQnJ1Z3XDqS4KKworLSBJc3N1ZSAjMTM5MzA6IDJ0bzMgaXMgbm93IGFibGUgdG8gd3JpdGUgaXRzIGNvbnZlcnRlZCBvdXRwdXQgZmlsZXMgdG8gYW5vdGhlcgorICBkaXJlY3RvcnkgdHJlZSBhcyB3ZWxsIGFzIGNvcHlpbmcgdW5jaGFuZ2VkIGZpbGVzIGFuZCBhbHRlcmluZyB0aGUgZmlsZQorICBzdWZmaXguICBTZWUgaXRzIG5ldyAtbywgLVcgYW5kIC0tYWRkLXN1ZmZpeCBvcHRpb25zLiAgVGhpcyBtYWtlcyBpdCBtb3JlCisgIHVzZWZ1bCBpbiBtYW55IGF1dG9tYXRlZCBjb2RlIHRyYW5zbGF0aW9uIHdvcmtmbG93cy4KKworLSBJc3N1ZSAjMTM2Mjg6IHB5dGhvbi1nZGIucHkgaXMgbm93IGFibGUgdG8gcmV0cmlldmUgbW9yZSBmcmFtZXMgaW4gdGhlIFB5dGhvbgorICB0cmFjZWJhY2sgaWYgUHl0aG9uIGlzIG9wdGltaXplZC4KKworLSBJc3N1ZSAjMTE5OTY6IGxpYnB5dGhvbiAoZ2RiKSwgcmVwbGFjZSAicHktYnQiIGNvbW1hbmQgYnkgInB5LWJ0LWZ1bGwiIGFuZAorICBhZGQgYSBzbWFydGVyICJweS1idCIgY29tbWFuZCBwcmludGluZyBhIGNsYXNzaWMgUHl0aG9uIHRyYWNlYmFjay4KKworLSBJc3N1ZSAjMTExNzk6IE1ha2UgY2NiZW5jaCB3b3JrIHVuZGVyIFB5dGhvbiAzLjEgYW5kIDIuNyBhZ2Fpbi4KKworLSBJc3N1ZSAjMTA2Mzk6IHJlaW5kZW50LnB5IG5vIGxvbmdlciBjb252ZXJ0cyBuZXdsaW5lcyBhbmQgd2lsbCByYWlzZQorICBhbiBlcnJvciBpZiBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgYSBmaWxlIHdpdGggbWl4ZWQgbmV3bGluZXMuCisgICItLW5ld2xpbmUiIG9wdGlvbiBhZGRlZCB0byBzcGVjaWZ5IG5ldyBsaW5lIGNoYXJhY3Rlci4KKworRXh0ZW5zaW9uIE1vZHVsZXMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzEzODQwOiBUaGUgZXJyb3IgbWVzc2FnZSBwcm9kdWNlZCBieSBjdHlwZXMuY3JlYXRlX3N0cmluZ19idWZmZXIKKyAgd2hlbiBnaXZlbiBhIFVuaWNvZGUgc3RyaW5nIGhhcyBiZWVuIGZpeGVkLgorCistIElzc3VlICM5OTc1OiBzb2NrZXQ6IEZpeCBpbmNvcnJlY3QgdXNlIG9mIGZsb3dpbmZvIGFuZCBzY29wZV9pZC4gUGF0Y2ggYnkKKyAgVmlsbW9zIE5lYmVoYWouCisKKy0gSXNzdWUgIzc3Nzc6IHNvY2tldDogQWRkIFJlbGlhYmxlIERhdGFncmFtIFNvY2tldHMgKFBGX1JEUykgc3VwcG9ydC4KKworLSBJc3N1ZSAjMTMxNTk6IEZpbGVJTyBhbmQgQloyQ29tcHJlc3Nvci9CWjJEZWNvbXByZXNzb3Igbm93IHVzZSBhIGxpbmVhci10aW1lCisgIGJ1ZmZlciBncm93dGggc3RyYXRlZ3kgaW5zdGVhZCBvZiBhIHF1YWRyYXRpYy10aW1lIG9uZS4KKworLSBJc3N1ZSAjMTAxNDE6IHNvY2tldDogQWRkIFNvY2tldENBTiAoUEZfQ0FOKSBzdXBwb3J0LiBJbml0aWFsIHBhdGNoIGJ5CisgIE1hdHRoaWFzIEZ1Y2hzLCB1cGRhdGVkIGJ5IFRpYWdvIEdvbsOnYWx2ZXMuCisKKy0gSXNzdWUgIzEzMDcwOiBGaXggYSBjcmFzaCB3aGVuIGEgVGV4dElPV3JhcHBlciBjYXVnaHQgaW4gYSByZWZlcmVuY2UgY3ljbGUKKyAgd291bGQgYmUgZmluYWxpemVkIGFmdGVyIHRoZSByZWZlcmVuY2UgdG8gaXRzIHVuZGVybHlpbmcgQnVmZmVyZWRSV1BhaXIncworICB3cml0ZXIgZ290IGNsZWFyZWQgYnkgdGhlIEdDLgorCistIElzc3VlICMxMjg4MTogY3R5cGVzOiBGaXggc2VnZmF1bHQgd2l0aCBsYXJnZSBzdHJ1Y3R1cmUgZmllbGQgbmFtZXMuCisKKy0gSXNzdWUgIzEzMDU4OiBvc3NhdWRpb2RldjogZml4IGEgZmlsZSBkZXNjcmlwdG9yIGxlYWsgb24gZXJyb3IuIFBhdGNoIGJ5CisgIFRob21hcyBKYXJvc2NoLgorCistIElzc3VlICMxMzAxMzogY3R5cGVzOiBGaXggYSByZWZlcmVuY2UgbGVhayBpbiBQeUNBcnJheVR5cGVfZnJvbV9jdHlwZS4KKyAgVGhhbmtzIHRvIFN1bWFuIFNhaGEgZm9yIGZpbmRpbmcgdGhlIGJ1ZyBhbmQgcHJvdmlkaW5nIGEgcGF0Y2guCisKKy0gSXNzdWUgIzEzMDIyOiBGaXg6IF9tdWx0aXByb2Nlc3NpbmcucmVjdmZkKCkgZG9lc24ndCBjaGVjayB0aGF0CisgIGZpbGUgZGVzY3JpcHRvciB3YXMgYWN0dWFsbHkgcmVjZWl2ZWQuCisKKy0gSXNzdWUgIzExNzI3MTE6IEFkZCAnbG9uZyBsb25nJyBzdXBwb3J0IHRvIHRoZSBhcnJheSBtb2R1bGUuCisgIEluaXRpYWwgcGF0Y2ggYnkgT3JlbiBUaXJvc2ggYW5kIEhpcm9rYXp1IFlhbWFtb3RvLgorCistIElzc3VlICMxMjQ4MzogY3R5cGVzOiBGaXggYSBjcmFzaCB3aGVuIHRoZSBkZXN0cnVjdGlvbiBvZiBhIGNhbGxiYWNrCisgIG9iamVjdCB0cmlnZ2VycyB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IuCisKKy0gSXNzdWUgIzEyOTUwOiBGaXggcGFzc2luZyBmaWxlIGRlc2NyaXB0b3JzIGluIG11bHRpcHJvY2Vzc2luZywgdW5kZXIKKyAgT3BlbkluZGlhbmEvSWxsdW1vcy4KKworLSBJc3N1ZSAjMTI3NjQ6IEZpeCBhIGNyYXNoIGluIGN0eXBlcyB3aGVuIHRoZSBuYW1lIG9mIGEgU3RydWN0dXJlIGZpZWxkIGlzIG5vdAorICBhIHN0cmluZy4KKworLSBJc3N1ZSAjMTEyNDE6IHN1YmNsYXNzZXMgb2YgY3R5cGVzLkFycmF5IGNhbiBub3cgYmUgc3ViY2xhc3NlZC4KKworLSBJc3N1ZSAjOTY1MTogRml4IGEgY3Jhc2ggd2hlbiBjdHlwZXMuY3JlYXRlX3N0cmluZ19idWZmZXIoMCkgd2FzIHBhc3NlZCB0bworICBzb21lIGZ1bmN0aW9ucyBsaWtlIGZpbGUud3JpdGUoKS4KKworLSBJc3N1ZSAjMTAzMDk6IERlZmluZSBfR05VX1NPVVJDRSBzbyB0aGF0IG1yZW1hcCgpIGdldHMgdGhlIHByb3BlcgorICBzaWduYXR1cmUuICBXaXRob3V0IHRoaXMsIGFyY2hpdGVjdHVyZXMgd2hlcmUgc2l6ZW9mIHZvaWQqICE9IHNpemVvZiBpbnQgYXJlCisgIGJyb2tlbi4gIFBhdGNoIGdpdmVuIGJ5IEhhbGx2YXJkIEIgRnVydXNldGguCisKKy0gSXNzdWUgIzEyMDUxOiBGaXggc2VnZmF1bHQgaW4ganNvbi5kdW1wcygpIHdoaWxlIGVuY29kaW5nIGhpZ2hseS1uZXN0ZWQKKyAgb2JqZWN0cyB1c2luZyB0aGUgQyBhY2NlbGVyYXRpb25zLgorCistIElzc3VlICMxMjAxNzogRml4IHNlZ2ZhdWx0IGluIGpzb24ubG9hZHMoKSB3aGlsZSBkZWNvZGluZyBoaWdobHktbmVzdGVkCisgIG9iamVjdHMgdXNpbmcgdGhlIEMgYWNjZWxlcmF0aW9ucy4KKworLSBJc3N1ZSAjMTgzODogUHJldmVudCBzZWdmYXVsdCBpbiBjdHlwZXMsIHdoZW4gX2FzX3BhcmFtZXRlcl8gb24gYSBjbGFzcyBpcyBzZXQKKyAgdG8gYW4gaW5zdGFuY2Ugb2YgdGhlIGNsYXNzLgorCitUZXN0cworLS0tLS0KKworLSBJc3N1ZSAjMTE2ODk6IEZpeCBhIHZhcmlhYmxlIHNjb3BpbmcgZXJyb3IgaW4gYW4gc3FsaXRlMyB0ZXN0CisKKy0gSXNzdWUgIzEzNzg2OiBSZW1vdmUgdW5pbXBsZW1lbnRlZCAndHJhY2UnIGxvbmcgb3B0aW9uIGZyb20gcmVncnRlc3QucHkuCisKKy0gSXNzdWUgIzEzNzI1OiBGaXggcmVncnRlc3QgdG8gcmVjb2duaXplIHRoZSBkb2N1bWVudGVkIC1kIGZsYWcuCisgIFBhdGNoIGJ5IEVybm8gVHVraWEuCisKKy0gSXNzdWUgIzEzMzA0OiBTa2lwIHRlc3QgY2FzZSBpZiB1c2VyIHNpdGUtcGFja2FnZXMgZGlzYWJsZWQgKC1zIG9yCisgIFBZVEhPTk5PVVNFUlNJVEUpLiAgKFBhdGNoIGJ5IENhcmwgTWV5ZXIpCisKKy0gSXNzdWUgIzU2NjE6IEFkZCBhIHRlc3QgZm9yIEVDT05OUkVTRVQvRVBJUEUgaGFuZGxpbmcgdG8gdGVzdF9hc3luY29yZS4gUGF0Y2gKKyAgYnkgWGF2aWVyIGRlIEdheWUuCisKKy0gSXNzdWUgIzEzMjE4OiBGaXggdGVzdF9zc2wgZmFpbHVyZXMgb24gRGViaWFuL1VidW50dS4KKworLSBSZS1lbmFibGUgbGliMnRvMydzIHRlc3RfcGFyc2VyLnB5IHRlc3RzLCB0aG91Z2ggd2l0aCBhbiBleHBlY3RlZCBmYWlsdXJlCisgIChzZWUgaXNzdWUgMTMxMjUpLgorCistIElzc3VlICMxMjY1NjogQWRkIHRlc3RzIGZvciBJUHY2IGFuZCBVbml4IHNvY2tldHMgdG8gdGVzdF9hc3luY29yZS4KKworLSBJc3N1ZSAjNjQ4NDogQWRkIHVuaXQgdGVzdHMgZm9yIG1haWxjYXAgbW9kdWxlIChwYXRjaCBieSBHcmVnb3J5IE5vZmkpCisKKy0gSXNzdWUgIzExNjUxOiBJbXByb3ZlIHRoZSBNYWtlZmlsZSB0ZXN0IHRhcmdldHMgdG8gcnVuIG1vcmUgb2YgdGhlIHRlc3Qgc3VpdGUKKyAgbW9yZSBxdWlja2x5LiBUaGUgLS1tdWx0aXByb2Nlc3Mgb3B0aW9uIGlzIG5vdyBlbmFibGVkIGJ5IGRlZmF1bHQsIHJlZHVjaW5nCisgIHRoZSBhbW91bnQgb2YgdGltZSBuZWVkZWQgdG8gcnVuIHRoZSB0ZXN0cy4gIm1ha2UgdGVzdCIgYW5kICJtYWtlIHF1aWNrdGVzdCIKKyAgbm93IGluY2x1ZGUgc29tZSByZXNvdXJjZS1pbnRlbnNpdmUgdGVzdHMsIGJ1dCBubyBsb25nZXIgcnVuIHRoZSB0ZXN0IHN1aXRlCisgIHR3aWNlIHRvIGNoZWNrIGZvciBidWdzIGluIC5weWMgZ2VuZXJhdGlvbi4gVG9vbHMvc2NyaXB0cy9ydW5fdGVzdC5weSBwcm92aWRlcworICBhbiBlYXN5IHBsYXRmb3JtLWluZGVwZW5kZW50IHdheSB0byBydW4gdGVzdCBzdWl0ZSB3aXRoIHNlbnNpYmxlIGRlZmF1bHRzLgorCistIElzc3VlICMxMjMzMTogVGhlIHRlc3Qgc3VpdGUgZm9yIHRoZSBwYWNrYWdpbmcgbW9kdWxlIGNhbiBub3cgcnVuIGZyb20gYW4KKyAgaW5zdGFsbGVkIFB5dGhvbi4KKworLSBJc3N1ZSAjMTIzMzE6IFRoZSB0ZXN0IHN1aXRlIGZvciBsaWIydG8zIGNhbiBub3cgcnVuIGZyb20gYW4gaW5zdGFsbGVkCisgIFB5dGhvbi4KKworLSBJc3N1ZSAjMTI2MjY6IEluIHJlZ3J0ZXN0LCBhbGxvdyB0byBmaWx0ZXIgdGVzdHMgdXNpbmcgYSBnbG9iIGZpbHRlcgorICB3aXRoIHRoZSBgYC1tYGAgKG9yIGBgLS1tYXRjaGBgKSBvcHRpb24uICBUaGlzIHdvcmtzIHdpdGggYWxsIHRlc3QgY2FzZXMKKyAgdXNpbmcgdGhlIHVuaXR0ZXN0IG1vZHVsZS4gIFRoaXMgaXMgdXNlZnVsIHdpdGggbG9uZyB0ZXN0IHN1aXRlcworICBzdWNoIGFzIHRlc3RfaW8gb3IgdGVzdF9zdWJwcm9jZXNzLgorCistIElzc3VlICMxMjYyNDogSXQgaXMgbm93IHBvc3NpYmxlIHRvIGZhaWwgYWZ0ZXIgdGhlIGZpcnN0IGZhaWx1cmUgd2hlbgorICBydW5uaW5nIGluIHZlcmJvc2UgbW9kZSAoYGAtdmBgIG9yIGBgLVdgYCksIGJ5IHVzaW5nIHRoZSBgYC0tZmFpbGZhc3RgYAorICAob3IgYGAtR2BgKSBvcHRpb24gdG8gcmVncnRlc3QuICBUaGlzIGlzIHVzZWZ1bCB3aXRoIGxvbmcgdGVzdCBzdWl0ZXMKKyAgc3VjaCBhcyB0ZXN0X2lvIG9yIHRlc3Rfc3VicHJvY2Vzcy4KKworLSBJc3N1ZSAjMTI1ODc6IENvcnJlY3QgZmF1bHR5IHRlc3QgZmlsZSBhbmQgcmVmZXJlbmNlIGluIHRlc3RfdG9rZW5pemUuCisgIChQYXRjaCBieSBSb2JlcnQgWGlhbykKKworLSBJc3N1ZSAjMTI1NzM6IEFkZCByZXNvdXJjZSBjaGVja3MgZm9yIGRhbmdsaW5nIFRocmVhZCBhbmQgUHJvY2VzcyBvYmplY3RzLgorCistIElzc3VlICMxMjU0OTogQ29ycmVjdCB0ZXN0X3BsYXRmb3JtIHRvIG5vdCBmYWlsIHdoZW4gT1MgWCByZXR1cm5zICd4ODZfNjQnCisgIGFzIHRoZSBwcm9jZXNzb3IgdHlwZSBvbiBzb21lIE1hYyBzeXN0ZW1zLgorCistIFNraXAgbmV0d29yayB0ZXN0cyB3aGVuIGdldGFkZHJpbmZvKCkgcmV0dXJucyBFQUlfQUdBSU4sIG1lYW5pbmcgYSB0ZW1wb3JhcnkKKyAgZmFpbHVyZSBpbiBuYW1lIHJlc29sdXRpb24uCisKKy0gSXNzdWUgIzExODEyOiBTb2x2ZSB0cmFuc2llbnQgc29ja2V0IGZhaWx1cmUgdG8gY29ubmVjdCB0byAnbG9jYWxob3N0JworICBpbiB0ZXN0X3RlbG5ldGxpYi5weS4KKworLSBTb2x2ZWQgYSBwb3RlbnRpYWwgZGVhZGxvY2sgaW4gdGVzdF90ZWxuZXRsaWIucHkuIFJlbGF0ZWQgdG8gaXNzdWUgIzExODEyLgorCistIEF2b2lkIGZhaWxpbmcgaW4gdGVzdF9yb2JvdHBhcnNlciB3aGVuIG11ZWJsZXNtb3JhbGVkYS5jb20gaXMgZmxha3kgYW5kCisgIGFuIG92ZXJ6ZWFsb3VzIEROUyBzZXJ2aWNlIChlLmcuIE9wZW5ETlMpIHJlZGlyZWN0cyB0byBhIHBsYWNlaG9sZGVyCisgIFdlYiBzaXRlLgorCistIEF2b2lkIGZhaWxpbmcgaW4gdGVzdF91cmxsaWJuZXQudGVzdF9iYWRfYWRkcmVzcyB3aGVuIHNvbWUgb3ZlcnplYWxvdXMKKyAgRE5TIHNlcnZpY2UgKGUuZy4gT3BlbkROUykgcmVzb2x2ZXMgYSBub24tZXhpc3RlbnQgZG9tYWluIG5hbWUuICBUaGUgdGVzdAorICBpcyBub3cgc2tpcHBlZCBpbnN0ZWFkLgorCistIElzc3VlICMxMjQ0MDogV2hlbiB0ZXN0aW5nIHdoZXRoZXIgc29tZSBiaXRzIGluIFNTTENvbnRleHQub3B0aW9ucyBjYW4gYmUKKyAgcmVzZXQsIGNoZWNrIHRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuU1NMIGhlYWRlcnMgUHl0aG9uIHdhcyBjb21waWxlZCBhZ2FpbnN0LAorICByYXRoZXIgdGhhbiB0aGUgcnVudGltZSB2ZXJzaW9uIG9mIHRoZSBPcGVuU1NMIGxpYnJhcnkuCisKKy0gSXNzdWUgIzExNTEyOiBBZGQgYSB0ZXN0IHN1aXRlIGZvciB0aGUgY2dpdGIgbW9kdWxlLiBQYXRjaCBieSBSb2JiaWUgQ2xlbW9ucy4KKworLSBJc3N1ZSAjMTI0OTc6IEluc3RhbGwgdGVzdC9kYXRhIHRvIHByZXZlbnQgZmFpbHVyZXMgb2YgdGhlIHZhcmlvdXMgY29kZWNtYXBzCisgIHRlc3RzLgorCistIElzc3VlICMxMjQ5NjogSW5zdGFsbCB0ZXN0L2NhcGF0aCBkaXJlY3RvcnkgdG8gcHJldmVudCB0ZXN0X2Nvbm5lY3RfY2FwYXRoCisgIHRlc3RjYXNlIGZhaWx1cmUgaW4gdGVzdF9zc2wuCisKKy0gSXNzdWUgIzEyNDY5OiBSdW4gd2FrZXVwIGFuZCBwZW5kaW5nIHNpZ25hbCB0ZXN0cyBpbiBhIHN1YnByb2Nlc3MgdG8gcnVuIHRoZQorICB0ZXN0IGluIGEgZnJlc2ggcHJvY2VzcyB3aXRoIG9ubHkgb25lIHRocmVhZCBhbmQgdG8gbm90IGNoYW5nZSBzaWduYWwKKyAgaGFuZGxpbmcgb2YgdGhlIHBhcmVudCBwcm9jZXNzLgorCistIElzc3VlICM4NzE2OiBBdm9pZCBjcmFzaGVzIGNhdXNlZCBieSBBcXVhIFRrIG9uIE9TWCB3aGVuIGF0dGVtcHRpbmcgdG8gcnVuCisgIHRlc3RfdGsgb3IgdGVzdF90dGtfZ3Vpb25seSB1bmRlciBhIHVzZXJuYW1lIHRoYXQgaXMgbm90IGN1cnJlbnRseSBsb2dnZWQKKyAgaW4gdG8gdGhlIGNvbnNvbGUgd2luZG93c2VydmVyIChhcyBtYXkgYmUgdGhlIGNhc2UgdW5kZXIgYnVpbGRib3Qgb3Igc3NoKS4KKworLSBJc3N1ZSAjMTI0MDc6IEV4cGxpY2l0bHkgc2tpcCB0ZXN0X2NhcGkuRW1iZWRkaW5nVGVzdCB1bmRlciBXaW5kb3dzLgorCistIElzc3VlICMxMjQwMDogcmVncnRlc3QgLVcgZG9lc24ndCByZXJ1biB0aGUgdGVzdHMgdHdpY2UgYW55bW9yZSwgYnV0IGNhcHR1cmVzCisgIHRoZSBvdXRwdXQgYW5kIGRpc3BsYXlzIGl0IG9uIGZhaWx1cmUgaW5zdGVhZC4gcmVncnRlc3QgLXYgZG9lc24ndCBwcmludCB0aGUKKyAgZXJyb3IgdHdpY2UgYW55bW9yZSBpZiB0aGVyZSBpcyBvbmx5IG9uZSBlcnJvci4KKworLSBJc3N1ZSAjMTIxNDE6IEluc3RhbGwgY29waWVzIG9mIHRlbXBsYXRlIEMgbW9kdWxlIGZpbGUgc28gdGhhdAorICB0ZXN0X2J1aWxkX2V4dCBvZiB0ZXN0X2Rpc3R1dGlscyBhbmQgdGVzdF9jb21tYW5kX2J1aWxkX2V4dCBvZgorICB0ZXN0X3BhY2thZ2luZyBhcmUgbm8gbG9uZ2VyIHNpbGVudGx5IHNraXBwZWQgd2hlbgorICBydW4gb3V0c2lkZSBvZiBhIGJ1aWxkIGRpcmVjdG9yeS4KKworLSBJc3N1ZSAjODc0NjogQWRkIGFkZGl0aW9uYWwgdGVzdHMgZm9yIG9zLmNoZmxhZ3MoKSBhbmQgb3MubGNoZmxhZ3MoKS4KKyAgUGF0Y2ggYnkgR2FycmV0dCBDb29wZXIuCisKKy0gSXNzdWUgIzEwNzM2OiBGaXggdGVzdF90dGsgdGVzdF93aWRnZXRzIGZhaWx1cmVzIHdpdGggQ29jb2EgVGsgOC41LjkKKyAgMi44ICsgIG9uIE1hYyBPUyBYLiAgKFBhdGNoIGJ5IFJvbmFsZCBPdXNzb3JlbikKKworLSBJc3N1ZSAjMTIwNTc6IEFkZCB0ZXN0cyBmb3IgSVNPIDIwMjIgY29kZWNzIChpc28yMDIyX2pwLCBpc28yMDIyX2pwXzIsCisgIGlzbzIwMjJfa3IpLgorCistIElzc3VlICMxMjA5NjogRml4IGEgcmFjZSBjb25kaXRpb24gaW4gdGVzdF90aHJlYWRpbmcudGVzdF93YWl0Zm9yKCkuIFBhdGNoCisgIHdyaXR0ZW4gYnkgQ2hhcmxlcy1GcmFuw6dvaXMgTmF0YWxpLgorCistIElzc3VlICMxMTYxNDogaW1wb3J0IF9faGVsbG9fXyBwcmludHMgIkhlbGxvIFdvcmxkISIuIFBhdGNoIHdyaXR0ZW4gYnkKKyAgQW5kcmVhcyBTdMO8aHJrLgorCistIElzc3VlICM1NzIzOiBJbXByb3ZlIGpzb24gdGVzdHMgdG8gYmUgZXhlY3V0ZWQgd2l0aCBhbmQgd2l0aG91dCBhY2NlbGVyYXRpb25zLgorCistIElzc3VlICMxMjA0MTogTWFrZSB0ZXN0X3dhaXQzIG1vcmUgcm9idXN0LgorCistIElzc3VlICMxMTg3MzogQ2hhbmdlIHJlZ2V4IGluIHRlc3RfY29tcGlsZWFsbCB0byBmaXggb2NjYXNpb25hbCBmYWlsdXJlcyB3aGVuCisgIHdoZW4gdGhlIHJhbmRvbWx5IGdlbmVyYXRlZCB0ZW1wb3JhcnkgcGF0aCBoYXBwZW5lZCB0byBtYXRjaCB0aGUgcmVnZXguCisKKy0gSXNzdWUgIzExOTU4OiBGaXggRlRQIHRlc3RzIGZvciBJUHY2LCBiaW5kIHRvICI6OjEiIGluc3RlYWQgb2YgImxvY2FsaG9zdCIuCisgIFBhdGNoIHdyaXR0ZW4gYnkgQ2hhcmxlcy1GcmFuY29pcyBOYXRhbGkuCisKKy0gSXNzdWUgIzg0MDcsICMxMTg1OTogRml4IHRlc3RzIG9mIHRlc3RfaW8gdXNpbmcgdGhyZWFkcyBhbmQgYW4gYWxhcm06IHVzZQorICBwdGhyZWFkX3NpZ21hc2soKSB0byBlbnN1cmUgdGhhdCB0aGUgU0lHQUxSTSBzaWduYWwgaXMgcmVjZWl2ZWQgYnkgdGhlIG1haW4KKyAgdGhyZWFkLgorCistIElzc3VlICMxMTgxMTogRmFjdG9yIG91dCBkZXRlY3Rpb24gb2YgSVB2NiBzdXBwb3J0IG9uIHRoZSBjdXJyZW50IGhvc3QKKyAgYW5kIG1ha2UgaXQgYXZhaWxhYmxlIGFzIGBgdGVzdC5zdXBwb3J0LklQVjZfRU5BQkxFRGBgLiAgUGF0Y2ggYnkKKyAgQ2hhcmxlcy1GcmFuw6dvaXMgTmF0YWxpLgorCistIElzc3VlICMxMDkxNDogQWRkIGEgbWluaW1hbCBlbWJlZGRpbmcgdGVzdCB0byB0ZXN0X2NhcGkuCisKKy0gSXNzdWUgIzExMjIzOiBTa2lwIHRlc3RfbG9ja19hY3F1aXJlX2ludGVycnVwdGlvbigpIGFuZAorICB0ZXN0X3Jsb2NrX2FjcXVpcmVfaW50ZXJydXB0aW9uKCkgb2YgdGVzdF90aHJlYWRzaWduYWxzIGlmIGEgdGhyZWFkIGxvY2sgaXMKKyAgaW1wbGVtZW50ZWQgdXNpbmcgYSBQT1NJWCBtdXRleCBhbmQgYSBQT1NJWCBjb25kaXRpb24gdmFyaWFibGUuIEEgUE9TSVgKKyAgY29uZGl0aW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBpbnRlcnJ1cHRlZCBieSBhIHNpZ25hbCAoZS5nLiBvbiBMaW51eCwgdGhlCisgIGZ1dGV4IHN5c3RlbSBjYWxsIGlzIHJlc3RhcnRlZCkuCisKKy0gSXNzdWUgIzExNzkwOiBGaXggc3BvcmFkaWMgZmFpbHVyZXMgaW4gdGVzdF9tdWx0aXByb2Nlc3NpbmcuV2l0aFByb2Nlc3Nlc1Rlc3RDb25kaXRpb24uCisKKy0gRml4IHBvc3NpYmxlICJmaWxlIGFscmVhZHkgZXhpc3RzIiBlcnJvciB3aGVuIHJ1bm5pbmcgdGhlIHRlc3RzIGluIHBhcmFsbGVsLgorCistIElzc3VlICMxMTcxOTogRml4IG1lc3NhZ2UgYWJvdXQgdW5leHBlY3RlZCB0ZXN0X21zaWxpYiBza2lwIG9uIG5vbi1XaW5kb3dzCisgIHBsYXRmb3Jtcy4gUGF0Y2ggYnkgTmFkZWVtIFZhd2RhLgorCistIElzc3VlICMxMTcyNzogQWRkIGEgLS10aW1lb3V0IG9wdGlvbiB0byByZWdydGVzdDogaWYgYSB0ZXN0IHRha2VzIG1vcmUgdGhhbgorICBUSU1FT1VUIHNlY29uZHMsIGR1bXBzIHRoZSB0cmFjZWJhY2sgb2YgYWxsIHRocmVhZHMgYW5kIGV4aXRzLgorCistIElzc3VlICMxMTY1MzogZml4IC1XIHdpdGggLWogaW4gcmVncnRlc3QuCisKKy0gVGhlIGVtYWlsIHRlc3Qgc3VpdGUgbm93IGxpdmVzIGluIHRoZSBMaWIvdGVzdC90ZXN0X2VtYWlsIHBhY2thZ2UuICBUaGUgdGVzdAorICBoYXJuZXNzIGNvZGUgaGFzIGFsc28gYmVlbiBtb2Rlcm5pemVkIHRvIGFsbG93IHVzZSBvZiBuZXcgdW5pdHRlc3QgZmVhdHVyZXMuCisKKy0gcmVncnRlc3Qgbm93IGRpc2NvdmVycyB0ZXN0IHBhY2thZ2VzIGFzIHdlbGwgYXMgdGVzdCBtb2R1bGVzLgorCistIElzc3VlICMxMTU3NzogaW1wcm92ZSB0ZXN0IGNvdmVyYWdlIG9mIGJpbmhleC5weS4gUGF0Y2ggYnkgQXJrYWR5IEtvcGx5YXJvdi4KKworLSBOZXcgdGVzdF9jcmFzaGVycyBhZGRlZCB0byBleGVyY2lzZSB0aGUgc2NyaXB0cyBpbiB0aGUgTGliL3Rlc3QvY3Jhc2hlcnMKKyAgZGlyZWN0b3J5IGFuZCBjb25maXJtIHRoZXkgZmFpbCBhcyBleHBlY3RlZAorCistIElzc3VlICMxMTU3ODogYWRkZWQgdGVzdCBmb3IgdGhlIHRpbWVpdCBtb2R1bGUuICBQYXRjaCBieSBNaWNoYWVsIEhlbnJ5LgorCistIElzc3VlICMxMTUwMzogaW1wcm92ZSB0ZXN0IGNvdmVyYWdlIG9mIHBvc2l4cGF0aC5weS4gUGF0Y2ggYnkgRXZhbiBEYW5kcmVhLgorCistIElzc3VlICMxMTUwNTogaW1wcm92ZXMgdGVzdCBjb3ZlcmFnZSBvZiBzdHJpbmcucHksIGluY3JlYXNlcyBncmFudWxhcml0eSBvZgorICBzdHJpbmcuRm9ybWF0dGVyIHRlc3RzLiBJbml0aWFsIHBhdGNoIGJ5IEFsaWNpYSBBcmxlbi4KKworLSBJc3N1ZSAjMTE1NDg6IEltcHJvdmUgdGVzdCBjb3ZlcmFnZSBvZiB0aGUgc2h1dGlsIG1vZHVsZS4gUGF0Y2ggYnkKKyAgRXZhbiBEYW5kcmVhLgorCistIElzc3VlICMxMTU1NDogUmVhY3RpdmF0ZWQgdGVzdF9lbWFpbF9jb2RlY3MuCisKKy0gSXNzdWUgIzExNTA1OiBpbXByb3ZlcyB0ZXN0IGNvdmVyYWdlIG9mIHN0cmluZy5weS4gUGF0Y2ggYnkgQWxpY2lhCisgIEFybGVuCisKKy0gSXNzdWUgIzExNDkwOiB0ZXN0X3N1YnByb2Nlc3M6dGVzdF9sZWFraW5nX2Zkc19vbl9lcnJvciBubyBsb25nZXIgZ2l2ZXMgYQorICBmYWxzZSBwb3NpdGl2ZSBpZiB0aGUgbGFzdCBkaXJlY3RvcnkgaW4gdGhlIHBhdGggaXMgaW5hY2Nlc3NpYmxlLgorCistIElzc3VlICMxMTIyMzogRml4IHRlc3RfdGhyZWFkc2lnbmFscyB0byBmYWlsLCBub3QgaGFuZywgd2hlbiB0aGUKKyAgbm9uLXNlbWFwaG9yZSBpbXBsZW1lbnRhdGlvbiBvZiBsb2NrcyBpcyB1c2VkIHVuZGVyIFBPU0lYLgorCistIElzc3VlICMxMDkxMTogQWRkIHRlc3RzIG9uIENHSSB3aXRoIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLiBQYXRjaCB3cml0dGVuIGJ5CisgIFBpZXJyZSBRdWVudGVsLgorCistIElzc3VlICM5OTMxOiBGaXggaGFuZ3MgaW4gR1VJIHRlc3RzIHVuZGVyIFdpbmRvd3MgaW4gY2VydGFpbiBjb25kaXRpb25zLgorICBQYXRjaCBieSBIaXJva2F6dSBZYW1hbW90by4KKworLSBJc3N1ZSAjMTA1MTI6IFByb3Blcmx5IGNsb3NlIHNvY2tldHMgdW5kZXIgdGVzdC50ZXN0X2NnaS4KKworLSBJc3N1ZSAjMTA5OTI6IE1ha2UgdGVzdHMgcGFzcyB1bmRlciBjb3ZlcmFnZS4KKworLSBJc3N1ZSAjMTA4MjY6IFByZXZlbnQgc3BvcmFkaWMgZmFpbHVyZSBpbiB0ZXN0X3N1YnByb2Nlc3Mgb24gU29sYXJpcyBkdWUKKyAgdG8gb3BlbiBkb29yIGZpbGVzLgorCistIElzc3VlICMxMDk5MDogUHJldmVudCB0ZXN0cyBmcm9tIGNsb2JiZXJpbmcgYSBzZXQgdHJhY2UgZnVuY3Rpb24uCisKK0MtQVBJCistLS0tLQorCistIEFkZCBQeU9iamVjdF9HZW5lcmljR2V0RGljdCBhbmQgUHlPYmplY3RfR2VuZXJpU2V0RGljdC4gVGhleSBhcmUgZ2VuZXJpYworICBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoZSBnZXR0ZXIgYW5kIHNldHRlciBvZiBhIGBgX19kaWN0X19gYCBkZXNjcmlwdG9yIG9mIEMKKyAgdHlwZXMuCisKKy0gSXNzdWUgIzEzNzI3OiBBZGQgMyBtYWNyb3MgdG8gYWNjZXNzIFB5RGF0ZVRpbWVfRGVsdGEgbWVtYmVyczoKKyAgUHlEYXRlVGltZV9ERUxUQV9HRVRfREFZUywgUHlEYXRlVGltZV9ERUxUQV9HRVRfU0VDT05EUywKKyAgUHlEYXRlVGltZV9ERUxUQV9HRVRfTUlDUk9TRUNPTkRTLgorCistIElzc3VlICMxMDU0MjogQWRkIDQgbWFjcm9zIHRvIHdvcmsgd2l0aCBzdXJyb2dhdGVzOiBQeV9VTklDT0RFX0lTX1NVUlJPR0FURSwKKyAgUHlfVU5JQ09ERV9JU19ISUdIX1NVUlJPR0FURSwgUHlfVU5JQ09ERV9JU19MT1dfU1VSUk9HQVRFLAorICBQeV9VTklDT0RFX0pPSU5fU1VSUk9HQVRFUy4KKworLSBJc3N1ZSAjMTI3MjQ6IEFkZCBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQgbWFjcm8gZm9yIHJldHVybmluZyBOb3RJbXBsZW1lbnRlZC4KKworLSBQWV9QQVRDSExFVkVMX1JFVklTSU9OIGhhcyBiZWVuIHJlbW92ZWQsIHNpbmNlIGl0J3MgbWVhbmluZ2xlc3Mgd2l0aAorICBNZXJjdXJpYWwuCisKKy0gSXNzdWUgIzEyMTczOiBUaGUgZmlyc3QgYXJndW1lbnQgb2YgUHlJbXBvcnRfSW1wb3J0TW9kdWxlTGV2ZWwgaXMgbm93IGBjb25zdAorICBjaGFyICpgIGluc3RlYWQgb2YgYGNoYXIgKmAuCisKKy0gSXNzdWUgIzEyMzgwOiBQeUFyZ19QYXJzZVR1cGxlIG5vdyBhY2NlcHRzIGEgYnl0ZWFycmF5IGZvciB0aGUgJ2MnIGZvcm1hdC4KKworRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLQorCistIElzc3VlcyAjMTM0OTEgYW5kICMxMzk5NTogRml4IG1hbnkgZXJyb3JzIGluIHNxbGl0ZTMgZG9jdW1lbnRhdGlvbi4KKyAgSW5pdGlhbCBwYXRjaCBmb3IgIzEzNDkxIGJ5IEpvaGFubmVzIFZvZ2VsLgorCistIElzc3VlICMxMzQwMjogRG9jdW1lbnQgYWJzb2x1dGVuZXNzIG9mIHN5cy5leGVjdXRhYmxlLgorCistIElzc3VlICMxMzg4MzogUFlUSE9OQ0FTRU9LIGFsc28gd29ya3Mgb24gT1MgWC4KKworLSBJc3N1ZSAjOTAyMTogQWRkIGFuIGludHJvZHVjdGlvbiB0byB0aGUgY29weSBtb2R1bGUgZG9jdW1lbnRhdGlvbi4KKworLSBJc3N1ZSAjNjAwNTogRXhhbXBsZXMgaW4gdGhlIHNvY2tldCBsaWJyYXJ5IGRvY3VtZW50YXRpb24gdXNlIHNlbmRhbGwsIHdoZXJlCisgIHJlbGV2YW50LCBpbnN0ZWFkIHNlbmQgbWV0aG9kLgorCistIElzc3VlICMxMjc5ODogVXBkYXRlZCB0aGUgbWltZXR5cGVzIGRvY3VtZW50YXRpb24uCisKKy0gSXNzdWUgIzEyOTQ5OiBEb2N1bWVudCB0aGUga3dvbmx5YXJnY291bnQgYXJndW1lbnQgZm9yIHRoZSBQeUNvZGVfTmV3CisgIEMgQVBJIGZ1bmN0aW9uLgorCistIElzc3VlICMxMzUxMzogRml4IGlvLklPQmFzZSBkb2N1bWVudGF0aW9uIHRvIGNvcnJlY3RseSBsaW5rIHRvIHRoZQorICBpby5JT0Jhc2UucmVhZGxpbmUgbWV0aG9kIGluc3RlYWQgb2YgdGhlIHJlYWRsaW5lIG1vZHVsZS4KKworLSBJc3N1ZSAjMTMyMzc6IFJlb3JnYW5pc2Ugc3VicHJvY2VzcyBkb2N1bWVudGF0aW9uIHRvIGVtcGhhc2lzZSBjb252ZW5pZW5jZQorICBmdW5jdGlvbnMgYW5kIHRoZSBtb3N0IGNvbW1vbmx5IG5lZWRlZCBhcmd1bWVudHMgdG8gUG9wZW4uCisKKy0gSXNzdWUgIzEzMTQxOiBEZW1vbnN0cmF0ZSByZWNvbW1lbmRlZCBzdHlsZSBmb3Igc29ja2V0c2VydmVyIGV4YW1wbGVzLgorCistIElzc3VlICMxMTgxODogRml4IHRlbXBmaWxlIGV4YW1wbGVzIGZvciBQeXRob24gMy4KKworCiBXaGF0J3MgTmV3IGluIFB5dGhvbiAzLjI/CiA9PT09PT09PT09PT09PT09PT09PT09PT09CiAKZGlmZiAtLWdpdCBhL01pc2MvTkVXUyBiL01pc2MvTkVXUwppbmRleCBjYjFkMTI2Li5lMGJkMjA5IDEwMDY0NAotLS0gYS9NaXNjL05FV1MKKysrIGIvTWlzYy9ORVdTCkBAIC0yLDExOSArMiw2OCBAQAogUHl0aG9uIE5ld3MKICsrKysrKysrKysrCiAKLVdoYXQncyBOZXcgaW4gUHl0aG9uIDMuMy4zIHJlbGVhc2UgY2FuZGlkYXRlIDE/Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorV2hhdCdzIE5ldyBpbiBQeXRob24gMy40LjAgQWxwaGEgMT8KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLSpOb3QgeWV0IHJlbGVhc2VkLCBzZWUgc2VjdGlvbnMgYmVsb3cgZm9yIGNoYW5nZXMgcmVsZWFzZWQgaW4gMy4zLjIqCi0KLS4uICpSZWxlYXNlIGRhdGU6IFRCRCoKKypSZWxhc2UgZGF0ZTogMjAxNC1YWC1YWCoKIAogQ29yZSBhbmQgQnVpbHRpbnMKIC0tLS0tLS0tLS0tLS0tLS0tCiAKKy0gSXNzdWUgIzE3OTMxOiBSZXNvbHZlIGNvbmZ1c2lvbiBvbiBXaW5kb3dzIGJldHdlZW4gcGlkcyBhbmQgcHJvY2VzcworICBoYW5kbGVzLgorCistIFR3ZWFrIHRoZSBleGNlcHRpb24gbWVzc2FnZSB3aGVuIHRoZSBtYWdpYyBudW1iZXIgb3Igc2l6ZSB2YWx1ZSBpbiBhIGJ5dGVjb2RlCisgIGZpbGUgaXMgdHJ1bmNhdGVkLgorCistIElzc3VlICMxNzkzMjogRml4IGFuIGludGVnZXIgb3ZlcmZsb3cgaXNzdWUgb24gV2luZG93cyA2NC1iaXQgaW4gaXRlcmF0b3JzOgorICBjaGFuZ2UgdGhlIEMgdHlwZSBvZiBzZXFpdGVyb2JqZWN0Lml0X2luZGV4IGZyb20gbG9uZyB0byBQeV9zc2l6ZV90LgorCistIElzc3VlICMxODA2NTogRG9uJ3Qgc2V0IF9fcGF0aF9fIHRvIHRoZSBwYWNrYWdlIG5hbWUgZm9yIGZyb3plbiBwYWNrYWdlcy4KKworLSBJc3N1ZSAjMTgwODg6IFdoZW4gcmVsb2FkaW5nIGEgbW9kdWxlLCB1bmNvbmRpdGlvbmFsbHkgcmVzZXQgYWxsIHJlbGV2YW50CisgIGF0dHJpYnV0ZXMgb24gdGhlIG1vZHVsZSAoZS5nLiBfX25hbWVfXywgX19sb2FkZXJfXywgX19wYWNrYWdlX18sIF9fZmlsZV9fLAorICBfX2NhY2hlZF9fKS4KKworLSBJc3N1ZSAjMTc5Mzc6IFRyeSBoYXJkZXIgdG8gY29sbGVjdCBjeWNsaWMgZ2FyYmFnZSBhdCBzaHV0ZG93bi4KKworLSBJc3N1ZSAjMTIzNzA6IFByZXZlbnQgY2xhc3MgYm9kaWVzIGZyb20gaW50ZXJmZXJpbmcgd2l0aCB0aGUgX19jbGFzc19fCisgIGNsb3N1cmUuCisKIC0gSXNzdWUgIzE3NjQ0OiBGaXggYSBjcmFzaCBpbiBzdHIuZm9ybWF0IHdoZW4gY3VybHkgYnJhY2VzIGFyZSB1c2VkIGluIHNxdWFyZQogICBicmFja2V0cy4KIAotLSBJc3N1ZSAjMTc5ODM6IFJhaXNlIGEgU3ludGF4RXJyb3IgZm9yIGEgYGBnbG9iYWwgX19jbGFzc19fYGAgc3RhdGVtZW50IGluIGEKLSAgY2xhc3MgYm9keS4KLQotLSBJc3N1ZSAjMTc5Mjc6IEZyYW1lIG9iamVjdHMga2VwdCBhcmd1bWVudHMgYWxpdmUgaWYgdGhleSBoYWQgYmVlbiBjb3BpZWQgaW50bwotICBhIGNlbGwsIGV2ZW4gaWYgdGhlIGNlbGwgd2FzIGNsZWFyZWQuCi0KLUxpYnJhcnkKLS0tLS0tLS0KLQotLSBJc3N1ZSAjMTgxMDk6IG9zLnVuYW1lKCkgbm93IGRlY29kZXMgZmllbGRzIGZyb20gdGhlIGxvY2FsZSBlbmNvZGluZywgYW5kCi0gIHNvY2tldC5nZXRob3N0bmFtZSgpIG5vdyBkZWNvZGVzIHRoZSBob3N0bmFtZSBmcm9tIHRoZSBsb2NhbGUgZW5jb2RpbmcsCi0gIGluc3RlYWQgb2YgdXNpbmcgdGhlIFVURi04IGVuY29kaW5nIGluIHN0cmljdCBtb2RlLgotCi0tIElzc3VlICMxNzQwMzogdXJsbGliLnBhcnNlLnJvYm90cGFyc2VyIG5vcm1hbGl6ZXMgdGhlIHVybHMgYmVmb3JlIGFkZGluZyB0bwotICBydWxlbGluZS4gVGhpcyBoZWxwcyBpbiBoYW5kbGluZyBjZXJ0YWluIHR5cGVzIGludmFsaWQgdXJscyBpbiBhIGNvbnNlcnZhdGl2ZQotICBtYW5uZXIuCi0KLS0gSXNzdWUgIzE4MDI1OiBGaXhlZCBhIHNlZ2ZhdWx0IGluIGlvLkJ1ZmZlcmVkSU9CYXNlLnJlYWRpbnRvKCkgd2hlbiByYXcKLSAgc3RyZWFtJ3MgcmVhZCgpIHJldHVybnMgbW9yZSBieXRlcyB0aGFuIHJlcXVlc3RlZC4KLQotLSBJc3N1ZSAjMTgwMTE6IGJhc2U2NC5iMzJkZWNvZGUoKSBub3cgcmFpc2VzIGEgYmluYXNjaWkuRXJyb3IgaWYgdGhlcmUgYXJlCi0gIG5vbi1hbHBoYWJldCBjaGFyYWN0ZXJzIHByZXNlbnQgaW4gdGhlIGlucHV0IHN0cmluZyB0byBjb25mb3JtIGEgZG9jc3RyaW5nLgotICBVcGRhdGVkIHRoZSBtb2R1bGUgZG9jdW1lbnRhdGlvbi4KLQotLSBJc3N1ZSAjMTM3NzI6IFJlc3RvcmVkIGRpcmVjdG9yeSBkZXRlY3Rpb24gb2YgdGFyZ2V0cyBpbiBgYG9zLnN5bWxpbmtgYCBvbgotICBXaW5kb3dzLCB3aGljaCB3YXMgdGVtcG9yYXJpbHkgcmVtb3ZlZCBpbiBQeXRob24gMy4yLjMgZHVlIHRvIGFuIGluY29tcGxldGUKLSAgaW1wbGVtZW50YXRpb24uIFRoZSBpbXBsZW1lbnRhdGlvbiBub3cgd29ya3MgZXZlbiBpZiB0aGUgc3ltbGluayBpcyBjcmVhdGVkCi0gIGluIGEgbG9jYXRpb24gb3RoZXIgdGhhbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuCi0KLS0gSXNzdWUgIzE2OTg2OiBFbGVtZW50VHJlZSBub3cgY29ycmVjdGx5IHBhcnNlcyBhIHN0cmluZyBpbnB1dCBub3Qgb25seSB3aGVuCi0gIGFuIGludGVybmFsIFhNTCBlbmNvZGluZyBpcyBVVEYtOCBvciBVUy1BU0NJSS4KLQotLSBJc3N1ZSAjMTc4MTI6IEZpeGVkIHF1YWRyYXRpYyBjb21wbGV4aXR5IG9mIGJhc2U2NC5iMzJlbmNvZGUoKS4KLQotLSBJc3N1ZSAjMTc5ODA6IEZpeCBwb3NzaWJsZSBhYnVzZSBvZiBzc2wubWF0Y2hfaG9zdG5hbWUoKSBmb3IgZGVuaWFsIG9mCi0gIHNlcnZpY2UgdXNpbmcgY2VydGlmaWNhdGVzIHdpdGggbWFueSB3aWxkY2FyZHMgKENWRS0yMDEzLTIwOTkpLgotCi0tIElzc3VlICMxNzk4MTogQ2xvc2VkIHNvY2tldCBvbiBlcnJvciBpbiBTeXNMb2dIYW5kbGVyLgotCi0tIEZpeCB0eXBvcyBpbiB0aGUgbXVsdGlwcm9jZXNzaW5nIG1vZHVsZS4KLQotLSBJc3N1ZSAjMTc3NTQ6IE1ha2UgY3R5cGVzLnV0aWwuZmluZF9saWJyYXJ5KCkgaW5kZXBlbmRlbnQgb2YgdGhlIGxvY2FsZS4KLQotLSBJc3N1ZSAjMTc5Njg6IEZpeCBtZW1vcnkgbGVhayBpbiBvcy5saXN0eGF0dHIoKS4KLQotLSBJc3N1ZSAjMTcyNjk6IFdvcmthcm91bmQgZm9yIHNvY2tldC5nZXRhZGRyaW5mbyBjcmFzaCBvbiBNYWNPUyBYCi0gIHdpdGggcG9ydCBOb25lIG9yICIwIiBhbmQgZmxhZ3MgQUlfTlVNRVJJQ1NFUlYuCi0KLS0gSXNzdWUgIzE4MDgwOiBXaGVuIGJ1aWxkaW5nIGEgQyBleHRlbnNpb24gbW9kdWxlIG9uIE9TIFgsIGlmIHRoZSBjb21waWxlcgotICBpcyBvdmVycmlkZW4gd2l0aCB0aGUgQ0MgZW52aXJvbm1lbnQgdmFyaWFibGUsIHVzZSB0aGUgbmV3IGNvbXBpbGVyIGFzCi0gIHRoZSBkZWZhdWx0IGZvciBsaW5raW5nIGlmIExEU0hBUkVEIGlzIG5vdCBhbHNvIG92ZXJyaWRlbi4gIFRoaXMgcmVzdG9yZXMKLSAgRGlzdHV0aWxzIGJlaGF2aW9yIGludHJvZHVjZWQgaW4gMy4yLjMgYW5kIGluYWR2ZXJ0ZW50bHkgZHJvcHBlZCBpbiAzLjMuMC4KLQotSURMRQotLS0tLQotCi0tIElzc3VlICMxODA1NTogTW92ZSBJRExFIG9mZiBvZiBpbXAgYW5kIG9uIHRvIGltcG9ydGxpYi4KLQotLSBJc3N1ZSAjMTUzOTI6IENyZWF0ZSBhIHVuaXR0ZXN0IGZyYW1ld29yayBmb3IgSURMRS4KLSAgSW5pdGlhbCBwYXRjaCBieSBSYWphZ29wYWxhc2FybWEgSmF5YWtyaXNobmFuLgotCi0tIElzc3VlICMxNDE0NjogSGlnaGxpZ2h0IHNvdXJjZSBsaW5lIHdoaWxlIGRlYnVnZ2luZyBvbiBXaW5kb3dzLgotCi0tIElzc3VlICMxNzUzMjogQWx3YXlzIGluY2x1ZGUgT3B0aW9ucyBtZW51IGZvciBJRExFIG9uIE9TIFguCi0gIFBhdGNoIGJ5IEd1aWxoZXJtZSBTaW3DtWVzLgotCi1UZXN0cwotLS0tLS0KLQotLSBJc3N1ZSAjMTgwOTQ6IHRlc3RfdXVpZCBubyBtb3JlIHJlcG9ydHMgc2tpcHBlZCB0ZXN0cyBhcyBwYXNzZWQuCi0KLS0gSXNzdWUgIzExOTk1OiB0ZXN0X3B5ZG9jIGRvZXNuJ3QgaW1wb3J0IGFsbCBzeXMucGF0aCBtb2R1bGVzIGFueW1vcmUuCi0KLURvY3VtZW50YXRpb24KLS0tLS0tLS0tLS0tLS0KLQotLSBJc3N1ZSAjMTc5NTM6IE1lbnRpb24gdGhhdCB5b3Ugc2hvdWxkbid0IHJlcGxhY2Ugc3lzLm1vZHVsZXMgYW5kIGRlbGV0aW5nIGtleQotICBpdGVtcyB3aWxsIGNhdXNlIFB5dGhvbiB0byBub3QgYmUgaGFwcHkuCi0KLS0gSXNzdWUgIzE3ODQ0OiBBZGQgbGlua3MgdG8gZW5jb2RlcnMgYW5kIGRlY29kZXJzIGZvciBieXRlcy10by1ieXRlcyBjb2RlY3MuCi0KLS0gSXNzdWUgIzE0MDk3OiBpbXByb3ZlIHRoZSAiaW50cm9kdWN0aW9uIiBwYWdlIG9mIHRoZSB0dXRvcmlhbC4KLQotLSBJc3N1ZSAjMTc5Nzc6IFRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgY2FkZWZhdWx0IGFyZ3VtZW50J3MgZGVmYXVsdCB2YWx1ZQotICBpbiB1cmxsaWIucmVxdWVzdC51cmxvcGVuKCkgaXMgZml4ZWQgdG8gbWF0Y2ggdGhlIGNvZGUuCi0KLQotV2hhdCdzIE5ldyBpbiBQeXRob24gMy4zLjI/Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotKlJlbGVhc2UgZGF0ZTogMTMtTWF5LTIwMTMqCi0KLUNvcmUgYW5kIEJ1aWx0aW5zCi0tLS0tLS0tLS0tLS0tLS0tLQotCiAtIElzc3VlICMxNzIzNzogRml4IGNyYXNoIGluIHRoZSBBU0NJSSBkZWNvZGVyIG9uIG02OGsuCiAKKy0gSXNzdWUgIzE3OTI3OiBGcmFtZSBvYmplY3RzIGtlcHQgYXJndW1lbnRzIGFsaXZlIGlmIHRoZXkgaGFkIGJlZW4KKyAgY29waWVkIGludG8gYSBjZWxsLCBldmVuIGlmIHRoZSBjZWxsIHdhcyBjbGVhcmVkLgorCistIElzc3VlICMxNTQ1NDYzOiBBdCBzaHV0ZG93biwgZGVmZXIgZmluYWxpemF0aW9uIG9mIGNvZGVjIG1vZHVsZXMgc28KKyAgdGhhdCBzdGRlcnIgcmVtYWlucyB1c2FibGUuCisKKy0gSXNzdWUgIzczMzA6IEltcGxlbWVudCB3aWR0aCBhbmQgcHJlY2lzaW9uIChleDogIiU1LjNzIikgZm9yIHRoZSBmb3JtYXQKKyAgc3RyaW5nIG9mIFB5VW5pY29kZV9Gcm9tRm9ybWF0KCkgZnVuY3Rpb24sIG9yaWdpbmFsIHBhdGNoIHdyaXR0ZW4gYnkgWXNqIFJheS4KKworLSBJc3N1ZSAjMTU0NTQ2MzogR2xvYmFsIHZhcmlhYmxlcyBjYXVnaHQgaW4gcmVmZXJlbmNlIGN5Y2xlcyBhcmUgbm93CisgIGdhcmJhZ2UtY29sbGVjdGVkIGF0IHNodXRkb3duLgorCistIElzc3VlICMxNzA5NDogQ2xlYXIgc3RhbGUgdGhyZWFkIHN0YXRlcyBhZnRlciBmb3JrKCkuICBOb3RlIHRoYXQgdGhpcworICBpcyBhIHBvdGVudGlhbGx5IGRpc3J1cHRpdmUgY2hhbmdlIHNpbmNlIGl0IG1heSByZWxlYXNlIHNvbWUgc3lzdGVtCisgIHJlc291cmNlcyB3aGljaCB3b3VsZCBvdGhlcndpc2UgcmVtYWluIHBlcnBldHVhbGx5IGFsaXZlIChlLmcuIGRhdGFiYXNlCisgIGNvbm5lY3Rpb25zIGtlcHQgaW4gdGhyZWFkLWxvY2FsIHN0b3JhZ2UpLgorCiAtIElzc3VlICMxNzQwODogQXZvaWQgdXNpbmcgYW4gb2Jzb2xldGUgaW5zdGFuY2Ugb2YgdGhlIGNvcHlyZWcgbW9kdWxlIHdoZW4KICAgdGhlIGludGVycHJldGVyIGlzIHNodXRkb3duIGFuZCB0aGVuIHN0YXJ0ZWQgYWdhaW4uCiAKKy0gSXNzdWUgIzU4NDU6IEVuYWJsZSB0YWItY29tcGxldGlvbiBpbiB0aGUgaW50ZXJhY3RpdmUgaW50ZXJwcmV0ZXIgYnkKKyAgZGVmYXVsdCwgdGhhbmtzIHRvIGEgbmV3IHN5cy5fX2ludGVyYWN0aXZlaG9va19fLgorCistIElzc3VlICMxNzExNSwxNzExNjogTW9kdWxlIGluaXRpYWxpemF0aW9uIG5vdyBpbmNsdWRlcyBzZXR0aW5nIF9fcGFja2FnZV9fIGFuZAorICBfX2xvYWRlcl9fIGF0dHJpYnV0ZXMgdG8gTm9uZS4KKworLSBJc3N1ZSAjMTc4NTM6IEVuc3VyZSBsb2NhbHMgb2YgYSBjbGFzcyB0aGF0IHNoYWRvdyBmcmVlIHZhcmlhYmxlcyBhbHdheXMgd2luCisgIG92ZXIgdGhlIGNsb3N1cmVzLgorCiAtIElzc3VlICMxNzg2MzogSW4gdGhlIGludGVyYWN0aXZlIGNvbnNvbGUsIGRvbid0IGxvb3AgZm9yZXZlciBpZiB0aGUgZW5jb2RpbmcKICAgY2FuJ3QgYmUgZmV0Y2hlZCBmcm9tIHN0ZGluLgogCkBAIC0xMzAsMjMgKzc5LDExMiBAQAogLSBJc3N1ZSAjMTc3ODI6IEZpeCB1bmRlZmluZWQgYmVoYXZpb3VyIG9uIHBsYXRmb3JtcyB3aGVyZQogICBgYHN0cnVjdCB0aW1lc3BlY2BgJ3MgInR2X25zZWMiIG1lbWJlciBpcyBub3QgYSBDIGxvbmcuCiAKKy0gSXNzdWUgIzE3NzIyOiBXaGVuIGxvb2tpbmcgdXAgX19yb3VuZF9fLCByZXNvbHZlIGRlc2NyaXB0b3JzLgorCistIElzc3VlICMxNjA2MTogU3BlZWQgdXAgc3RyLnJlcGxhY2UoKSBmb3IgcmVwbGFjaW5nIDEtY2hhcmFjdGVyIHN0cmluZ3MuCisKIC0gSXNzdWUgIzE3NzE1OiBGaXggc2VnbWVudGF0aW9uIGZhdWx0IGZyb20gcmFpc2luZyBhbiBleGNlcHRpb24gaW4gYSBfX3RydW5jX18KICAgbWV0aG9kLgogCistIElzc3VlICMxNzY0MzogQWRkIF9fY2FsbGJhY2tfXyBhdHRyaWJ1dGUgdG8gd2Vha3JlZi5yZWYuCisKIC0gSXNzdWUgIzE2NDQ3OiBGaXhlZCBwb3RlbnRpYWwgc2VnbWVudGF0aW9uIGZhdWx0IHdoZW4gc2V0dGluZyBfX25hbWVfXyBvbiBhCiAgIGNsYXNzLgogCiAtIElzc3VlICMxNzY2OTogRml4IGNyYXNoIGludm9sdmluZyBmaW5hbGl6YXRpb24gb2YgZ2VuZXJhdG9ycyB1c2luZyB5aWVsZCBmcm9tLgogCistIElzc3VlICMxNDQzOTogUHl0aG9uIG5vdyBwcmludHMgdGhlIHRyYWNlYmFjayBvbiBydW5weSBmYWlsdXJlIGF0IHN0YXJ0dXAuCisKKworLSBJc3N1ZSAjMTc0Njk6IEZpeCBfUHlfR2V0QWxsb2NhdGVkQmxvY2tzKCkgYW5kIHN5cy5nZXRhbGxvY2F0ZWRibG9ja3MoKQorICB3aGVuIHJ1bm5pbmcgb24gdmFsZ3JpbmQuCisKIC0gSXNzdWUgIzE3NjE5OiBNYWtlIGlucHV0KCkgY2hlY2sgZm9yIEN0cmwtQyBjb3JyZWN0bHkgb24gV2luZG93cy4KIAorLSBJc3N1ZSAjMTczNTc6IEFkZCBtaXNzaW5nIHZlcmJvc2l0eSBtZXNzYWdlcyBmb3IgLXYvLXZ2IHRoYXQgd2VyZSBsb3N0IGR1cmluZworICB0aGUgaW1wb3J0bGliIHRyYW5zaXRpb24uCisKIC0gSXNzdWUgIzE3NjEwOiBEb24ndCByZWx5IG9uIG5vbi1zdGFuZGFyZCBiZWhhdmlvciBvZiB0aGUgQyBxc29ydCgpIGZ1bmN0aW9uLgogCi0tIElzc3VlICMxNzM1NzogQWRkIG1pc3NpbmcgdmVyYm9zaXR5IG91dHB1dCB3aGVuIHVzaW5nIC12Ly12di4KKy0gSXNzdWUgIzE3MzIzOiBUaGUgIltYIHJlZnMsIFkgYmxvY2tzXSIgcHJpbnRlZCBieSBkZWJ1ZyBidWlsZHMgaGFzIGJlZW4KKyAgZGlzYWJsZWQgYnkgZGVmYXVsdC4gIEl0IGNhbiBiZSByZS1lbmFibGVkIHdpdGggdGhlIGAtWCBzaG93cmVmY291bnRgIG9wdGlvbi4KIAogTGlicmFyeQogLS0tLS0tLQogCistIElzc3VlICMxNzMxNDogTW92ZSBtdWx0aXByb2Nlc3NpbmcuZm9ya2luZyBvdmVyIHRvIGltcG9ydGxpYi4KKworLSBJc3N1ZSAjMTE5NTk6IFNNVFBTZXJ2ZXIgYW5kIFNNVFBDaGFubmVsIG5vdyB0YWtlIGFuIG9wdGlvbmFsIG1hcCwgdXNlIG9mCisgIHdoaWNoIGF2b2lkcyBhZmZlY3RpbmcgZ2xvYmFsIHN0YXRlLgorCistIElzc3VlICMxODEwOTogb3MudW5hbWUoKSBub3cgZGVjb2RlcyBmaWVsZHMgZnJvbSB0aGUgbG9jYWxlIGVuY29kaW5nLCBhbmQKKyAgc29ja2V0LmdldGhvc3RuYW1lKCkgbm93IGRlY29kZXMgdGhlIGhvc3RuYW1lIGZyb20gdGhlIGxvY2FsZSBlbmNvZGluZywKKyAgaW5zdGVhZCBvZiB1c2luZyB0aGUgVVRGLTggZW5jb2RpbmcgaW4gc3RyaWN0IG1vZGUuCisKKy0gSXNzdWUgIzE4MDg5OiBJbXBsZW1lbnQgaW1wb3J0bGliLmFiYy5JbnNwZWN0TG9hZGVyLmxvYWRfbW9kdWxlLgorCistIElzc3VlICMxODA4ODogSW50cm9kdWNlIGltcG9ydGxpYi5hYmMuTG9hZGVyLmluaXRfbW9kdWxlX2F0dHJzIGZvciBzZXR0aW5nCisgIG1vZHVsZSBhdHRyaWJ1dGVzLiBMZWFkcyB0byB0aGUgcGVuZGluZyBkZXByZWNhdGlvbiBvZgorICBpbXBvcnRsaWIudXRpbC5tb2R1bGVfZm9yX2xvYWRlci4KKworLSBJc3N1ZSAjMTc0MDM6IHVybGxpYi5wYXJzZS5yb2JvdHBhcnNlciBub3JtYWxpemVzIHRoZSB1cmxzIGJlZm9yZSBhZGRpbmcgdG8KKyAgcnVsZWxpbmUuIFRoaXMgaGVscHMgaW4gaGFuZGxpbmcgY2VydGFpbiB0eXBlcyBpbnZhbGlkIHVybHMgaW4gYSBjb25zZXJ2YXRpdmUKKyAgbWFubmVyLiBQYXRjaCBjb250cmlidXRlZCBieSBNaGVyIE1vdnNpc3lhbi4KKworLSBJc3N1ZSAjMTgwNzA6IEhhdmUgaW1wb3J0bGliLnV0aWwubW9kdWxlX2Zvcl9sb2FkZXIoKSBzZXQgYXR0cmlidXRlcworICB1bmNvbmRpdGlvbmFsbHkgaW4gb3JkZXIgdG8gcHJvcGVybHkgc3VwcG9ydCByZWxvYWRpbmcuCisKKy0gQWRkZWQgaW1wb3J0bGliLnV0aWwubW9kdWxlX3RvX2xvYWQgdG8gcmV0dXJuIGEgY29udGV4dCBtYW5hZ2VyIHRvIHByb3ZpZGUgdGhlCisgIHByb3BlciBtb2R1bGUgb2JqZWN0IHRvIGxvYWQuCisKKy0gSXNzdWUgIzE4MDI1OiBGaXhlZCBhIHNlZ2ZhdWx0IGluIGlvLkJ1ZmZlcmVkSU9CYXNlLnJlYWRpbnRvKCkgd2hlbiByYXcKKyAgc3RyZWFtJ3MgcmVhZCgpIHJldHVybnMgbW9yZSBieXRlcyB0aGFuIHJlcXVlc3RlZC4KKworLSBJc3N1ZSAjMTgwMTE6IGJhc2U2NC5iMzJkZWNvZGUoKSBub3cgcmFpc2VzIGEgYmluYXNjaWkuRXJyb3IgaWYgdGhlcmUgYXJlCisgIG5vbi1hbHBoYWJldCBjaGFyYWN0ZXJzIHByZXNlbnQgaW4gdGhlIGlucHV0IHN0cmluZyB0byBjb25mb3JtIGEgZG9jc3RyaW5nLgorICBVcGRhdGVkIHRoZSBtb2R1bGUgZG9jdW1lbnRhdGlvbi4KKworLSBJc3N1ZSAjMTgwNzI6IEltcGxlbWVudCBpbXBvcnRsaWIuYWJjLkluc3BlY3RMb2FkZXIuZ2V0X2NvZGUoKSBhbmQKKyAgaW1wb3J0bGliLmFiYy5FeGVjdXRpb25Mb2FkZXIuZ2V0X2NvZGUoKS4KKworLSBJc3N1ZSAjODI0MDogU2V0IHRoZSBTU0xfTU9ERV9BQ0NFUFRfTU9WSU5HX1dSSVRFX0JVRkZFUiBmbGFnIG9uIFNTTAorICBzb2NrZXRzLgorCistIElzc3VlICMxNzI2OTogV29ya2Fyb3VuZCBmb3Igc29ja2V0LmdldGFkZHJpbmZvIGNyYXNoIG9uIE1hY09TIFgKKyAgd2l0aCBwb3J0IE5vbmUgb3IgIjAiIGFuZCBmbGFncyBBSV9OVU1FUklDU0VSVi4KKworLSBJc3N1ZSAjMTY5ODY6IEVsZW1lbnRUcmVlIG5vdyBjb3JyZWN0bHkgcGFyc2VzIGEgc3RyaW5nIGlucHV0IG5vdCBvbmx5IHdoZW4KKyAgYW4gaW50ZXJuYWwgWE1MIGVuY29kaW5nIGlzIFVURi04IG9yIFVTLUFTQ0lJLgorCistIElzc3VlICMxNzk5Njogc29ja2V0IG1vZHVsZSBub3cgZXhwb3NlcyBBRl9MSU5LIGNvbnN0YW50IG9uIEJTRCBhbmQgT1NYLgorCistIElzc3VlICMxNzkwMDogQWxsb3dlZCBwaWNrbGluZyBvZiByZWN1cnNpdmUgT3JkZXJlZERpY3RzLiAgRGVjcmVhc2VkIHBpY2tsZWQKKyAgc2l6ZSBhbmQgcGlja2xpbmcgdGltZS4KKworLSBJc3N1ZSAjMTc5MTQ6IEFkZCBvcy5jcHVfY291bnQoKS4gUGF0Y2ggYnkgWW9nZXNoIENoYXVkaGFyaSwgYmFzZWQgb24gYW4KKyAgaW5pdGlhbCBwYXRjaCBieSBUcmVudCBOZWxzb24uCisKKy0gSXNzdWUgIzE3ODEyOiBGaXhlZCBxdWFkcmF0aWMgY29tcGxleGl0eSBvZiBiYXNlNjQuYjMyZW5jb2RlKCkuCisgIE9wdGltaXplIGJhc2U2NC5iMzJlbmNvZGUoKSBhbmQgYmFzZTY0LmIzMmRlY29kZSgpIChzcGVlZCB1cCB0byAzeCkuCisKKy0gSXNzdWUgIzE3OTgwOiBGaXggcG9zc2libGUgYWJ1c2Ugb2Ygc3NsLm1hdGNoX2hvc3RuYW1lKCkgZm9yIGRlbmlhbCBvZgorICBzZXJ2aWNlIHVzaW5nIGNlcnRpZmljYXRlcyB3aXRoIG1hbnkgd2lsZGNhcmRzIChDVkUtMjAxMy0yMDk5KS4KKworLSBJc3N1ZSAjMTU3NTg6IEZpeCBGaWxlSU8ucmVhZGFsbCgpIHNvIGl0IG5vIGxvbmdlciBoYXMgTyhuKioyKSBjb21wbGV4aXR5LgorCistIElzc3VlICMxNDU5NjogVGhlIHN0cnVjdC5TdHJ1Y3QoKSBvYmplY3RzIG5vdyB1c2UgbW9yZSBjb21wYWN0IGltcGxlbWVudGF0aW9uLgorCistIElzc3VlICMxNzk4MTogQ2xvc2VkIHNvY2tldCBvbiBlcnJvciBpbiBTeXNMb2dIYW5kbGVyLgorCistIElzc3VlICMxNzk2NDogRml4IG9zLnN5c2NvbmYoKTogdGhlIHJldHVybiB0eXBlIG9mIHRoZSBDIHN5c2NvbmYoKSBmdW5jdGlvbgorICBpcyBsb25nLCBub3QgaW50LgorCistIEZpeCB0eXBvcyBpbiB0aGUgbXVsdGlwcm9jZXNzaW5nIG1vZHVsZS4KKworLSBJc3N1ZSAjMTc3NTQ6IE1ha2UgY3R5cGVzLnV0aWwuZmluZF9saWJyYXJ5KCkgaW5kZXBlbmRlbnQgb2YgdGhlIGxvY2FsZS4KKworLSBJc3N1ZSAjMTc5Njg6IEZpeCBtZW1vcnkgbGVhayBpbiBvcy5saXN0eGF0dHIoKS4KKwogLSBJc3N1ZSAjMTc2MDY6IEZpeGVkIHN1cHBvcnQgb2YgZW5jb2RlZCBieXRlIHN0cmluZ3MgaW4gdGhlIFhNTEdlbmVyYXRvcgogICBjaGFyYWN0ZXJzKCkgYW5kIGlnbm9yYWJsZVdoaXRlc3BhY2UoKSBtZXRob2RzLiAgT3JpZ2luYWwgcGF0Y2ggYnkgU2ViYXN0aWFuCiAgIE9ydGl6IFZhc3F1ZXouCkBAIC0xNTQsOSArMTkyLDYgQEAKIC0gSXNzdWUgIzE3NzMyOiBJZ25vcmUgZGlzdHV0aWxzLmNmZyBvcHRpb25zIHBlcnRhaW5pbmcgdG8gaW5zdGFsbCBwYXRocyBpZiBhCiAgIHZpcnR1YWwgZW52aXJvbm1lbnQgaXMgYWN0aXZlLgogCi0tIElzc3VlICMxMTU5MDUxOiBCYWNrIG91dCBhIGZpeCBmb3IgaGFuZGxpbmcgY29ycnVwdGVkIGd6aXAgZmlsZXMgdGhhdAotICBicm9rZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KLQogLSBJc3N1ZSAjMTc5MTU6IEZpeCBpbnRlcm9wZXJhYmlsaXR5IG9mIHhtbC5zYXggd2l0aCBmaWxlIG9iamVjdHMgcmV0dXJuZWQgYnkKICAgY29kZWNzLm9wZW4oKS4KIApAQCAtMTcwLDM1ICsyMDUsNjQgQEAKIC0gSXNzdWUgIzEyMTgxOiBzZWxlY3QgbW9kdWxlOiBGaXggc3RydWN0IGtldmVudCBkZWZpbml0aW9uIG9uIE9wZW5CU0QgNjQtYml0CiAgIHBsYXRmb3Jtcy4gUGF0Y2ggYnkgRmVkZXJpY28gU2Nod2luZHQuCiAKKy0gSXNzdWUgIzExODE2OiBtdWx0aXBsZSBpbXByb3ZlbWVudHMgdG8gdGhlIGRpcyBtb2R1bGU6IGdldF9pbnN0cnVjdGlvbnMKKyAgZ2VuZXJhdG9yLCBhYmlsaXR5IHRvIHJlZGlyZWN0IG91dHB1dCB0byBhIGZpbGUsIEJ5dGVjb2RlIGFuZCBJbnN0cnVjdGlvbgorICBhYnN0cmFjdGlvbnMuIFBhdGNoIGJ5IE5pY2sgQ29naGxhbiwgUnlhbiBLZWxseSBhbmQgVGhvbWFzIEtsdXl2ZXIuCisKKy0gSXNzdWUgIzEzODMxOiBFbWJlZCBzdHJpbmdpZmljYXRpb24gb2YgcmVtb3RlIHRyYWNlYmFjayBpbiBsb2NhbAorICB0cmFjZWJhY2sgcmFpc2VkIHdoZW4gcG9vbCB0YXNrIHJhaXNlcyBhbiBleGNlcHRpb24uCisKKy0gSXNzdWUgIzE1NTI4OiBBZGQgd2Vha3JlZi5maW5hbGl6ZSB0byBzdXBwb3J0IGZpbmFsaXphdGlvbiB1c2luZworICB3ZWFrcmVmIGNhbGxiYWNrcy4KKwogLSBJc3N1ZSAjMTQxNzM6IEF2b2lkIGNyYXNoaW5nIHdoZW4gcmVhZGluZyBhIHNpZ25hbCBoYW5kbGVyIGR1cmluZwogICBpbnRlcnByZXRlciBzaHV0ZG93bi4KIAotLSBJc3N1ZSAjMTYzMTY6IG1pbWV0eXBlcyBub3cgcmVjb2duaXplcyB0aGUgLnh6IGFuZCAudHh6ICgudGFyLnh6KSBleHRlbnNpb25zLgotCiAtIElzc3VlICMxNTkwMjogRml4IGltcC5sb2FkX21vZHVsZSgpIGFjY2VwdGluZyBOb25lIGFzIGEgZmlsZSB3aGVuIGxvYWRpbmcgYW4KICAgZXh0ZW5zaW9uIG1vZHVsZS4KIAorLSBJc3N1ZSAjMTM3MjE6IFNTTFNvY2tldC5nZXRwZWVyY2VydCgpIGFuZCBTU0xTb2NrZXQuZG9faGFuZHNoYWtlKCkgbm93CisgIHJhaXNlIGFuIE9TRXJyb3Igd2l0aCBFTk9UQ09OTiwgaW5zdGVhZCBvZiBhbiBBdHRyaWJ1dGVFcnJvciwgd2hlbiB0aGUKKyAgU1NMU29ja2V0IGlzIG5vdCBjb25uZWN0ZWQuCisKKy0gSXNzdWUgIzE0Njc5OiBhZGQgYW4gX19hbGxfXyAodGhhdCBjb250YWlucyBvbmx5IEhUTUxQYXJzZXIpIHRvIGh0bWwucGFyc2VyLgorCiAtIElzc3VlICMxNzgwMjogRml4IGFuIFVuYm91bmRMb2NhbEVycm9yIGluIGh0bWwucGFyc2VyLiAgSW5pdGlhbCB0ZXN0cyBieQogICBUaG9tYXMgQmFybG93LgogCi0tIElzc3VlICMxNTUzNTogRml4IG5hbWVkdHVwbGUgcGlja2xlcyB3aGljaCB3ZXJlIHBpY2tpbmcgdXAgdGhlIE9yZGVyZWREaWN0Ci0gIGluc3RlYWQgb2YganVzdCB0aGUgdW5kZXJseWluZyB0dXBsZS4KLQotLSBJc3N1ZSAjMTcxOTI6IFJlc3RvcmUgdGhlIHBhdGNoIGZvciBJc3N1ZSAjMTE3Mjkgd2hpY2ggd2FzIG9tbWl0dGVkIGluCi0gIDMuMy4xIHdoZW4gdXBkYXRpbmcgdGhlIGJ1bmRsZWQgdmVyc2lvbiBvZiBsaWJmZmkgdXNlZCBieSBjdHlwZXMuICBVcGRhdGUKLSAgbWFueSBsaWJmZmkgZmlsZXMgdGhhdCB3ZXJlIG1pc3NlZCBpbiAzLjMuMSdzIHVwZGF0ZSB0byBsaWJmZmktMy4wLjEzLgotCiAtIElzc3VlICMxNzM1ODogTW9kdWxlcyBsb2FkZWQgYnkgaW1wLmxvYWRfc291cmNlKCkgYW5kIGxvYWRfY29tcGlsZWQoKSAoYW5kIGJ5CiAgIGV4dGVudGlvbiBsb2FkX21vZHVsZSgpKSBub3cgaGF2ZSBhIGJldHRlciBjaGFuY2Ugb2Ygd29ya2luZyB3aGVuIHJlbG9hZGVkLgogCistIElzc3VlICMxNzgwNDogTmV3IGZ1bmN0aW9uIGBgc3RydWN0Lml0ZXJfdW5wYWNrYGAgYWxsb3dzIGZvciBzdHJlYW1pbmcKKyAgc3RydWN0IHVucGFja2luZy4KKworLSBJc3N1ZSAjMTc4MzA6IFdoZW4ga2V5d29yZC5weSBpcyB1c2VkIHRvIHVwZGF0ZSBhIGtleXdvcmQgZmlsZSwgaXQgbm93CisgIHByZXNlcnZlcyB0aGUgbGluZSBlbmRpbmdzIG9mIHRoZSBvcmlnaW5hbCBmaWxlLgorCistIElzc3VlICMxNzI3MjogTWFraW5nIHRoZSB1cmxsaWIucmVxdWVzdCdzIFJlcXVlc3QuZnVsbF91cmwgYSBkZXNjcmlwdG9yLgorICBGaXhlcyBidWdzIHdpdGggYXNzaWdubWVudCB0byBmdWxsX3VybC4gUGF0Y2ggYnkgRGVtaWFuIEJyZWNodC4KKwogLSBJc3N1ZSAjMTczNTM6IFBsaXN0bGliIGVtaXR0ZWQgZW1wdHkgZGF0YSB0YWdzIHdpdGggZGVlcGx5IG5lc3RlZCBkYXRhc3RydWN0dXJlcwogCiAtIElzc3VlICMxMTcxNDogVXNlICd3aXRoJyBzdGF0ZW1lbnRzIHRvIGFzc3VyZSBhIFNlbWFwaG9yZSByZWxlYXNlcyBhCiAgIGNvbmRpdGlvbiB2YXJpYWJsZS4gIE9yaWdpbmFsIHBhdGNoIGJ5IFRob21hcyBSYWNoZWwuCiAKKy0gSXNzdWUgIzE2NjI0OiBgc3VicHJvY2Vzcy5jaGVja19vdXRwdXRgIG5vdyBhY2NlcHRzIGFuIGBpbnB1dGAgYXJndW1lbnQsCisgIGFsbG93aW5nIHRoZSBzdWJwcm9jZXNzJ3Mgc3RkaW4gdG8gYmUgcHJvdmlkZWQgYXMgYSAoYnl0ZSkgc3RyaW5nLgorICBQYXRjaCBieSBaYWNrIFdlaW5iZXJnLgorCiAtIElzc3VlICMxNzc5NTogUmV2ZXJ0ZWQgYmFja3dhcmRzLWluY29tcGF0aWJsZSBjaGFuZ2UgaW4gU3lzTG9nSGFuZGxlciB3aXRoCiAgIFVuaXggZG9tYWluIHNvY2tldHMuCiAKKy0gSXNzdWUgIzE2Njk0OiBBZGQgYSBwdXJlIFB5dGhvbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgb3BlcmF0b3IgbW9kdWxlLgorICBQYXRjaCBieSBaYWNoYXJ5IFdhcmUuCisKKy0gSXNzdWUgIzExMTgyOiByZW1vdmUgdGhlIHVudXNlZCBhbmQgdW5kb2N1bWVudGVkIHB5ZG9jLlNjYW5uZXIgY2xhc3MuCisgIFBhdGNoIGJ5IE1hcnRpbiBNb3JyaXNvbi4KKworLSBJc3N1ZSAjMTc3NDE6IEFkZCBFbGVtZW50VHJlZS5JbmNyZW1lbnRhbFBhcnNlciwgYW4gZXZlbnQtZHJpdmVuIHBhcnNlcgorICBmb3Igbm9uLWJsb2NraW5nIGFwcGxpY2F0aW9ucy4KKwogLSBJc3N1ZSAjMTc1NTU6IEZpeCBGb3JrQXdhcmVUaHJlYWRMb2NrIHNvIHRoYXQgc2l6ZSBvZiBhZnRlciBmb3JrCiAgIHJlZ2lzdHJ5IGRvZXMgbm90IGdyb3cgZXhwb25lbnRpYWxseSB3aXRoIGdlbmVyYXRpb24gb2YgcHJvY2Vzcy4KIApAQCAtMjI2LDc5ICsyOTAsODQgQEAKIC0gSXNzdWUgIzE2ODA0OiBGaXggYSBidWcgaW4gdGhlICdzaXRlJyBtb2R1bGUgdGhhdCBjYXVzZWQgcnVubmluZwogICAncHl0aG9uIC1TIC1tIHNpdGUnIHRvIGluY29ycmVjdGx5IHRocm93IGFuIGV4Y2VwdGlvbi4KIAorLSBJc3N1ZSAjMTU0ODA6IFJlbW92ZSB0aGUgZGVwcmVjYXRlZCBhbmQgdW51c2VkIFRZUEVfSU5UNjQgY29kZSBmcm9tIG1hcnNoYWwuCisgIEluaXRpYWwgcGF0Y2ggYnkgRGFuaWVsIFJpdGkuCisKKy0gSXNzdWUgIzIxMTg6IFNNVFBFeGNlcHRpb24gaXMgbm93IGEgc3ViY2xhc3Mgb2YgSU9FcnJvci4KKwogLSBJc3N1ZSAjMTcwMTY6IEdldCByaWQgb2YgcG9zc2libGUgcG9pbnRlciB3cmFwYXJvdW5kcyBhbmQgaW50ZWdlciBvdmVyZmxvd3MKICAgaW4gdGhlIHJlIG1vZHVsZS4gIFBhdGNoIGJ5IE5pY2tvbGFpIFplbGRvdmljaC4KIAogLSBJc3N1ZSAjMTY2NTg6IGFkZCBtaXNzaW5nIHJldHVybiB0byBIVFRQQ29ubmVjdGlvbi5zZW5kKCkKICAgUGF0Y2ggYnkgSmVmZiBLbnVwcC4KIAorLSBJc3N1ZSAjOTU1NjogQWxsb3dlZCBzcGVjaWZ5aW5nIGEgdGltZS1vZi1kYXkgZm9yIGEgVGltZWRSb3RhdGluZ0ZpbGVIYW5kbGVyCisgIHRvIHJvdGF0ZS4KKwogLSBJc3N1ZSAjMTQ5NzE6IHVuaXR0ZXN0IHRlc3QgZGlzY292ZXJ5IG5vIGxvbmdlciBnZXRzIGNvbmZ1c2VkIHdoZW4gYSBmdW5jdGlvbgogICBoYXMgYSBkaWZmZXJlbnQgX19uYW1lX18gdGhhbiBpdHMgbmFtZSBpbiB0aGUgVGVzdENhc2UgY2xhc3MgZGljdGlvbmFyeS4KIAotLSBJc3N1ZSAjMTc2Nzg6IEZpeCBEZXByZWNhdGlvbldhcm5pbmcgaW4gdGhlIGh0dHAvY29va2llamFyLnB5IGJ5IGNoYW5naW5nIHRoZQotICB1c2FnZSBvZiBnZXRfb3JpZ2luX3JlcV9ob3N0KCkgdG8gb3JpZ2luX3JlcV9ob3N0LgorLSBJc3N1ZSAjMTc0ODc6IFRoZSB3YXZlIGdldHBhcmFtcyBtZXRob2Qgbm93IHJldHVybnMgYSBuYW1lZHR1cGxlIHJhdGhlciB0aGFuCisgIGEgcGxhaW4gdHVwbGUuCisKKy0gSXNzdWUgIzE3Njc1OiBzb2NrZXQgcmVwcigpIHByb3ZpZGVzIGxvY2FsIGFuZCByZW1vdGUgYWRkcmVzc2VzIChpZiBhbnkpLgorICBQYXRjaCBieSBHaWFtcGFvbG8gUm9kb2xhJworCistIElzc3VlICMxNzA5MzogTWFrZSB0aGUgQUJDcyBpbiBpbXBvcnRsaWIuYWJjIHByb3ZpZGUgZGVmYXVsdCB2YWx1ZXMgb3IgcmFpc2UKKyAgcmVhc29uYWJsZSBleGNlcHRpb25zIGZvciB0aGVpciBtZXRob2RzIHRvIG1ha2UgdGhlbSBtb3JlIGFtZW5hYmxlIHRvIHN1cGVyKCkKKyAgY2FsbHMuCisKKy0gSXNzdWUgIzE3NTY2OiBNYWtlIGltcG9ydGxpYi5hYmMuTG9hZGVyLm1vZHVsZV9yZXByKCkgb3B0aW9uYWwgaW5zdGVhZCBvZiBhbgorICBhYnN0cmFjdG1ldGhvZCBhbmQgcmFpc2luZyBOb3RJbXBsZW1lbnRlZEVycm9yIHNvIGFzIHRvIGJlIGlnbm9yZWQgYnkgZGVmYXVsdC4KKworLSBJc3N1ZSAjMTc2Nzg6IFJlbW92ZSB0aGUgdXNlIG9mIGRlcHJlY2F0ZWQgbWV0aG9kIGluIGh0dHAvY29va2llamFyLnB5LgorICBDaGFuZ2luZyB0aGUgdXNhZ2Ugb2YgZ2V0X29yaWdpbl9yZXFfaG9zdCgpIHRvIG9yaWdpbl9yZXFfaG9zdC4KIAogLSBJc3N1ZSAjMTc2NjY6IEZpeCByZWFkaW5nIGd6aXAgZmlsZXMgd2l0aCBhbiBleHRyYSBmaWVsZC4KIAorLSBJc3N1ZSAjMTY0NzU6IFN1cHBvcnQgb2JqZWN0IGluc3RhbmNpbmcsIHJlY3Vyc2lvbiBhbmQgaW50ZXJuZWQgc3RyaW5ncworICBpbiBtYXJzaGFsCisKIC0gSXNzdWUgIzE3NTAyOiBQcm9jZXNzIERFRkFVTFQgdmFsdWVzIGluIG1vY2sgc2lkZV9lZmZlY3QgdGhhdCByZXR1cm5zIGl0ZXJhdG9yLgotICBQYXRjaCBieSBNaWNoYWVsIEZvb3JkLgogCi0tIElzc3VlICMxNzU3MjogQXZvaWQgY2hhaW5lZCBleGNlcHRpb25zIHdoaWxlIHBhc3NpbmcgYmFkIGRpcmVjdGl2ZXMgdG8KLSAgdGltZS5zdHJwdGltZSgpLiAgSW5pdGlhbCBwYXRjaCBieSBDbGF1ZGl1IFBvcGEuCistIElzc3VlICMxNjc5NTogT24gdGhlIGFzdC5hcmd1bWVudHMgb2JqZWN0LCB1bmlmeSB2YXJhcmcgd2l0aCB2YXJhcmdhbm5vdGF0aW9uCisgIGFuZCBrd2FyZyBhbmQga3dhcmdhbm5vdGF0aW9uLiBDaGFuZ2UgdGhlIGNvbHVtbiBvZmZzZXQgb2YgYXN0LkF0dHJpYnV0ZSB0byBiZQorICBhdCB0aGUgYXR0cmlidXRlIG5hbWUuCiAKLS0gSXNzdWUgIzE3NDM1OiB0aHJlYWRpbmcuVGltZXIncyBfX2luaXRfXyBtZXRob2Qgbm8gbG9uZ2VyIHVzZXMgbXV0YWJsZQotICBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIGFyZ3MgYW5kIGt3YXJncyBwYXJhbWV0ZXJzLgorLSBJc3N1ZSAjMTc0MzQ6IFByb3Blcmx5IHJhaXNlIGEgU3ludGF4RXJyb3Igd2hlbiBhIHN0cmluZyBvY2N1cnMgYmV0d2VlbiBmdXR1cmUKKyAgaW1wb3J0cy4KIAotLSBJc3N1ZSAjMTc1MjY6IGZpeCBhbiBJbmRleEVycm9yIHJhaXNlZCB3aGlsZSBwYXNzaW5nIGNvZGUgd2l0aG91dCBmaWxlbmFtZSB0bwotICBpbnNwZWN0LmZpbmRzb3VyY2UoKS4gIEluaXRpYWwgcGF0Y2ggYnkgVHlsZXIgRG95bGUuCistIElzc3VlICMxNzExNzogSW1wb3J0IGFuZCBAaW1wb3J0bGliLnV0aWwuc2V0X2xvYWRlciBub3cgc2V0IF9fbG9hZGVyX18gd2hlbgorICBpdCBoYXMgYSB2YWx1ZSBvZiBOb25lIG9yIHRoZSBhdHRyaWJ1dGUgZG9lc24ndCBleGlzdC4KIAotLSBJc3N1ZSAjMTY1NTA6IFVwZGF0ZSB0aGUgb3Bjb2RlIGRlc2NyaXB0aW9ucyBvZiBwaWNrbGV0b29scyB0byB1c2UgdW5zaWduZWQKLSAgaW50ZWdlcnMgd2hlcmUgYXBwcm9wcmlhdGUuICBJbml0aWFsIHBhdGNoIGJ5IFNlcmhpeSBTdG9yY2hha2EuCistIElzc3VlICMxNzAzMjogVGhlICJnbG9iYWwiIGluIHRoZSAiTmFtZUVycm9yOiBnbG9iYWwgbmFtZSAneCcgaXMgbm90IGRlZmluZWQiCisgIGVycm9yIG1lc3NhZ2UgaGFzIGJlZW4gcmVtb3ZlZC4gIFBhdGNoIGJ5IFJhbSBSYWNodW0uCiAKLUlETEUKLS0tLS0KKy0gSXNzdWUgIzE4MDgwOiBXaGVuIGJ1aWxkaW5nIGEgQyBleHRlbnNpb24gbW9kdWxlIG9uIE9TIFgsIGlmIHRoZSBjb21waWxlcgorICBpcyBvdmVycmlkZW4gd2l0aCB0aGUgQ0MgZW52aXJvbm1lbnQgdmFyaWFibGUsIHVzZSB0aGUgbmV3IGNvbXBpbGVyIGFzCisgIHRoZSBkZWZhdWx0IGZvciBsaW5raW5nIGlmIExEU0hBUkVEIGlzIG5vdCBhbHNvIG92ZXJyaWRlbi4gIFRoaXMgcmVzdG9yZXMKKyAgRGlzdHV0aWxzIGJlaGF2aW9yIGludHJvZHVjZWQgaW4gMy4yLjMgYW5kIGluYWR2ZXJ0ZW50bHkgZHJvcHBlZCBpbiAzLjMuMC4KIAotLSBJc3N1ZSAjMTc4Mzg6IEFsbG93IHN5cy5zdGRpbiB0byBiZSByZWFzc2lnbmVkLgorLSBJbXBsZW1lbnQgUEVQIDQ0MyAiU2luZ2xlLWRpc3BhdGNoIGdlbmVyaWMgZnVuY3Rpb25zIi4KIAotLSBJc3N1ZSAjMTM0OTU6IEF2b2lkIGxvYWRpbmcgdGhlIGNvbG9yIGRlbGVnYXRvciB0d2ljZSBpbiBJRExFLgotCi0tIElzc3VlICMxNzc5ODogQWxsb3cgSURMRSB0byBlZGl0IG5ldyBmaWxlcyB3aGVuIHNwZWNpZmllZCBvbiBjb21tYW5kIGxpbmUuCi0KLS0gSXNzdWUgIzE0NzM1OiBVcGRhdGUgSURMRSBkb2NzIHRvIG9taXQgIkNvbnRyb2wteiBvbiBXaW5kb3dzIi4KLQotLSBJc3N1ZSAjMTc1ODU6IEZpeGVkIElETEUgcmVncmVzc2lvbi4gTm93IGNsb3NlcyB3aGVuIHVzaW5nIGV4aXQoKSBvciBxdWl0KCkuCi0KLS0gSXNzdWUgIzE3NjU3OiBTaG93IGZ1bGwgVGsgdmVyc2lvbiBpbiBJRExFJ3MgYWJvdXQgZGlhbG9nLgotICBQYXRjaCBieSBUb2RkIFJvdml0by4KLQotLSBJc3N1ZSAjMTc2MTM6IFByZXZlbnQgdHJhY2ViYWNrIHdoZW4gcmVtb3Zpbmcgc3ludGF4IGNvbG9yaXplciBpbiBJRExFLgotCi0tIElzc3VlICMxMjA3NTg5OiBCYWNrd2FyZHMtY29tcGF0aWJpbGl0eSBwYXRjaCBmb3IgcmlnaHQtY2xpY2sgbWVudSBpbiBJRExFLgotCi0tIElzc3VlICMxNjg4NzogSURMRSBub3cgYWNjZXB0cyBDYW5jZWwgaW4gdGFiaWZ5L3VudGFiaWZ5IGRpYWxvZyBib3guCi0KLS0gSXNzdWUgIzE3NjI1OiBJbiBJRExFLCBjbG9zZSB0aGUgcmVwbGFjZSBkaWFsb2cgYWZ0ZXIgaXQgaXMgdXNlZC4KLQotLSBJc3N1ZSAjMTQyNTQ6IElETEUgbm93IGhhbmRsZXMgcmVhZGxpbmUgY29ycmVjdGx5IGFjcm9zcyBzaGVsbCByZXN0YXJ0cy4KLQotLSBJc3N1ZSAjMTc2MTQ6IElETEUgbm8gbG9uZ2VyIHJhaXNlcyBleGNlcHRpb24gd2hlbiBxdWlja2x5IGNsb3NpbmcgYSBmaWxlLgotCi0tIElzc3VlICM2Njk4OiBJRExFIG5vdyBvcGVucyBqdXN0IGFuIGVkaXRvciB3aW5kb3cgd2hlbiBjb25maWd1cmVkIHRvIGRvIHNvLgotCi0tIElzc3VlICM4OTAwOiBVc2luZyBrZXlib2FyZCBzaG9ydGN1dHMgaW4gSURMRSB0byBvcGVuIGEgZmlsZSBubyBsb25nZXIKLSAgcmFpc2VzIGFuIGV4Y2VwdGlvbi4KLQotLSBJc3N1ZSAjNjY0OTogRml4ZWQgbWlzc2luZyBleGl0IHN0YXR1cyBpbiBJRExFLiBQYXRjaCBieSBHdWlsaGVybWUgUG9sby4KIAogVGVzdHMKIC0tLS0tCiAKKy0gSXNzdWUgIzE4MDk0OiB0ZXN0X3V1aWQgbm8gbW9yZSByZXBvcnRzIHNraXBwZWQgdGVzdHMgYXMgcGFzc2VkLgorCistIElzc3VlICMxNzk5MjogQWRkIHRpbWVvdXRzIHRvIGFzeW5jb3JlIGFuZCBhc3luY2hhdCB0ZXN0cyBzbyB0aGF0IHRoZXkgd29uJ3QKKyAgYWNjaWRlbnRhbGx5IGhhbmcuCisKIC0gSXNzdWUgIzE3ODMzOiBGaXggdGVzdF9nZGIgZmFpbHVyZXMgc2VlbiBvbiBtYWNoaW5lcyB3aGVyZSBkZWJ1ZyBzeW1ib2xzCiAgIGZvciBnbGliYyBhcmUgYXZhaWxhYmxlIChzZWVuIG9uIFBQQzY0IExpbnV4KS4KIAogLSBJc3N1ZSAjNzg1NTogQWRkIHRlc3RzIGZvciBjdHlwZXMvd2lucmVnIGZvciBpc3N1ZXMgZm91bmQgaW4gSXJvblB5dGhvbi4KICAgSW5pdGlhbCBwYXRjaCBieSBEaW5vIFZpZWhsYW5kLgogCistIElzc3VlICMxMTA3ODogdGVzdF9fX2FsbF9fIG5vdyBjaGVja3MgZm9yIGR1cGxpY2F0ZXMgaW4gX19hbGxfXy4KKyAgSW5pdGlhbCBwYXRjaCBieSBSLiBEYXZpZCBNdXJyYXkuCisKIC0gSXNzdWUgIzE3NzEyOiBGaXggdGVzdF9nZGIgZmFpbHVyZXMgb24gVWJ1bnR1IDEzLjA0LgogCiAtIElzc3VlICMxNzgzNTogRml4IHRlc3RfaW8gd2hlbiB0aGUgZGVmYXVsdCBPUyBwaXBlIGJ1ZmZlciBzaXplIGlzIGxhcmdlcgpAQCAtMzI4LDE5ICszOTcsNjEgQEAKIC0gSXNzdWUgIzE3NjkyOiB0ZXN0X3NxbGl0ZSBub3cgd29ya3Mgd2l0aCB1bml0dGVzdCB0ZXN0IGRpc2NvdmVyeS4KICAgUGF0Y2ggYnkgWmFjaGFyeSBXYXJlLgogCi0tIElzc3VlICMxNzg0MzogUmVtb3ZlZCBiejIgdGVzdCBkYXRhIGZpbGUgdGhhdCB3YXMgdHJpZ2dlcmluZyBmYWxzZS1wb3NpdGl2ZQotICB2aXJ1cyB3YXJuaW5ncyB3aXRoIGNlcnRhaW4gYW50aXZpcnVzIHNvZnR3YXJlLgotCiBEb2N1bWVudGF0aW9uCiAtLS0tLS0tLS0tLS0tCiAKKy0gSXNzdWUgIzE3ODQ0OiBBZGQgbGlua3MgdG8gZW5jb2RlcnMgYW5kIGRlY29kZXJzIGZvciBieXRlcy10by1ieXRlcyBjb2RlY3MuCisKKy0gSXNzdWUgIzE0MDk3OiBpbXByb3ZlIHRoZSAiaW50cm9kdWN0aW9uIiBwYWdlIG9mIHRoZSB0dXRvcmlhbC4KKworLSBJc3N1ZSAjMTc5Nzc6IFRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgY2FkZWZhdWx0IGFyZ3VtZW50J3MgZGVmYXVsdCB2YWx1ZQorICBpbiB1cmxsaWIucmVxdWVzdC51cmxvcGVuKCkgaXMgZml4ZWQgdG8gbWF0Y2ggdGhlIGNvZGUuCisKIC0gSXNzdWUgIzE1OTQwOiBTcGVjaWZ5IGVmZmVjdCBvZiBsb2NhbGUgb24gdGltZSBmdW5jdGlvbnMuCiAKIC0gSXNzdWUgIzY2OTY6IGFkZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgUHJvZmlsZSBvYmplY3RzLCBhbmQgaW1wcm92ZQogICBwcm9maWxlL2NQcm9maWxlIGRvY3MuICBQYXRjaCBieSBUb20gUGluY2tuZXkuCiAKLS0gSXNzdWUgIzE3OTE1OiBGaXggaW50ZXJvcGVyYWJpbGl0eSBvZiB4bWwuc2F4IHdpdGggZmlsZSBvYmplY3RzIHJldHVybmVkIGJ5Ci0gIGNvZGVjcy5vcGVuKCkuCitUZXN0cworLS0tLS0KKworLSBJc3N1ZSAjMTE5OTU6IHRlc3RfcHlkb2MgZG9lc24ndCBpbXBvcnQgYWxsIHN5cy5wYXRoIG1vZHVsZXMgYW55bW9yZS4KKworQy1BUEkKKy0tLS0tCisKKy0gSXNzdWUgIzkzNjk6IFRoZSB0eXBlcyBvZiBgY2hhcipgIGFyZ3VtZW50cyBvZiBQeU9iamVjdF9DYWxsRnVuY3Rpb24oKSBhbmQKKyAgUHlPYmplY3RfQ2FsbE1ldGhvZCgpIG5vdyBjaGFuZ2VkIHRvIGBjb25zdCBjaGFyKmAuICBCYXNlZCBvbiBwYXRjaGVzIGJ5CisgIErDtnJnIE3DvGxsZXIgYW5kIExhcnMgQnVpdGluY2suCisKKy0gSXNzdWUgIzE3MjA2OiBQeV9DTEVBUigpLCBQeV9ERUNSRUYoKSwgUHlfWElOQ1JFRigpIGFuZCBQeV9YREVDUkVGKCkgbm93CisgIGV4cGFuZCB0aGVpciBhcmd1bWVudHMgb25jZSBpbnN0ZWFkIG9mIG11bHRpcGxlIHRpbWVzLiAgUGF0Y2ggd3JpdHRlbiBieSBJbGxpYQorICBQb2xvc3VraGluLgorCistIElzc3VlICMxNzUyMjogQWRkIHRoZSBQeUdJTFN0YXRlX0NoZWNrKCkgQVBJLgorCistIElzc3VlICMxNzMyNzogQWRkIFB5RGljdF9TZXREZWZhdWx0LgorCitJRExFCistLS0tCisKKy0gSXNzdWUgIzE4MDU1OiBNb3ZlIElETEUgb2ZmIG9mIGltcCBhbmQgb24gdG8gaW1wb3J0bGliLgorCistIElzc3VlICMxNTM5MjogQ3JlYXRlIGEgdW5pdHRlc3QgZnJhbWV3b3JrIGZvciBJRExFLgorICBJbml0aWFsIHBhdGNoIGJ5IFJhamFnb3BhbGFzYXJtYSBKYXlha3Jpc2huYW4uCisKKy0gSXNzdWUgIzE0MTQ2OiBIaWdobGlnaHQgc291cmNlIGxpbmUgd2hpbGUgZGVidWdnaW5nIG9uIFdpbmRvd3MuCisKKy0gSXNzdWUgIzE3ODM4OiBBbGxvdyBzeXMuc3RkaW4gdG8gYmUgcmVhc3NpZ25lZC4KKworLSBJc3N1ZSAjMTM0OTU6IEF2b2lkIGxvYWRpbmcgdGhlIGNvbG9yIGRlbGVnYXRvciB0d2ljZSBpbiBJRExFLgorCistIElzc3VlICMxNzc5ODogQWxsb3cgSURMRSB0byBlZGl0IG5ldyBmaWxlcyB3aGVuIHNwZWNpZmllZCBvbiBjb21tYW5kIGxpbmUuCisKKy0gSXNzdWUgIzE0NzM1OiBVcGRhdGUgSURMRSBkb2NzIHRvIG9taXQgIkNvbnRyb2wteiBvbiBXaW5kb3dzIi4KKworLSBJc3N1ZSAjMTc1MzI6IEFsd2F5cyBpbmNsdWRlIE9wdGlvbnMgbWVudSBmb3IgSURMRSBvbiBPUyBYLgorICBQYXRjaCBieSBHdWlsaGVybWUgU2ltw7Vlcy4KIAogQnVpbGQKIC0tLS0tCkBAIC0zNDgsMjQgKzQ1OSw2IEBACiAtIElzc3VlICMxNzU0NzogSW4gY29uZmlndXJlLCBleHBsaWNpdGx5IHBhc3MgLVdmb3JtYXQgZm9yIHRoZSBiZW5lZml0IGZvciBHQ0MKICAgNC44LgogCi0tIElzc3VlICMxNzk2MjogQnVpbGQgd2l0aCBPcGVuU1NMIDEuMC4xZSBvbiBXaW5kb3dzLgotCi0KLVdoYXQncyBOZXcgaW4gUHl0aG9uIDMuMy4xPwotPT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLSpSZWxlYXNlIGRhdGU6IDA3LUFwci0yMDEzKgotCi1CdWlsZAotLS0tLS0KLQotLSBJc3N1ZSAjMTc1NTA6IEZpeCB0aGUgLS1lbmFibGUtcHJvZmlsaW5nIGNvbmZpZ3VyZSBzd2l0Y2guCi0KLUlETEUKLS0tLS0tLS0KLQotLSBJc3N1ZSAjMTc2MjU6IEluIElETEUsIGNsb3NlIHRoZSByZXBsYWNlIGRpYWxvZyBhZnRlciBpdCBpcyB1c2VkLgotCiAKIFdoYXQncyBOZXcgaW4gUHl0aG9uIDMuMy4xIHJlbGVhc2UgY2FuZGlkYXRlIDE/CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMzc3LDI0ICs0NzAsMjMgQEAKIAogLSBJc3N1ZSAjMTczMjg6IEZpeCBwb3NzaWJsZSByZWZsZWFrIGluIGRpY3Quc2V0ZGVmYXVsdC4KIAotLSBJc3N1ZSAjMTcyMjM6IEZpeCBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoKSBmb3Igc3RyaW5nIG9mIDEgY2hhcmFjdGVyIG91dHNpZGUKLSAgdGhlIHJhbmdlIFUrMDAwMC1VKzEwZmZmZi4KLQotLSBJc3N1ZSAjMTY5MjMzNTogTW92ZSBpbml0aWFsIGFyZ3MgYXNzaWdubWVudCB0bwotICBCYXNlRXhjZXB0aW9uLl9fbmV3X18gdG8gaGVscCBwaWNrbGluZyBvZiBuYWl2ZSBzdWJjbGFzc2VzLgotCiAtIElzc3VlICMxNzI3NTogQ29ycmVjdGVkIGNsYXNzIG5hbWUgaW4gaW5pdCBlcnJvciBtZXNzYWdlcyBvZiB0aGUgQyB2ZXJzaW9uIG9mCiAgIEJ1ZmZlcmVkV3JpdGVyIGFuZCBCdWZmZXJlZFJhbmRvbS4KIAogLSBJc3N1ZSAjNzk2MzogRml4ZWQgbWlzbGVhZGluZyBlcnJvciBtZXNzYWdlIHRoYXQgaXNzdWVkIHdoZW4gb2JqZWN0IGlzCiAgIGNhbGxlZCB3aXRob3V0IGFyZ3VtZW50cy4KIAorLSBJc3N1ZSAjODc0NTogU21hbGwgc3BlZWQgdXAgemlwaW1wb3J0IG9uIFdpbmRvd3MuIFBhdGNoIGJ5IENhdGFsaW4gSWFjb2IuCisKIC0gSXNzdWUgIzUzMDg6IFJhaXNlIFZhbHVlRXJyb3Igd2hlbiBtYXJzaGFsbGluZyB0b28gbGFyZ2Ugb2JqZWN0IChhIHNlcXVlbmNlCiAgIHdpdGggc2l6ZSA+PSAyKiozMSksIGluc3RlYWQgb2YgcHJvZHVjaW5nIGlsbGVnYWwgbWFyc2hhbCBkYXRhLgogCiAtIElzc3VlICMxMjk4MzogQnl0ZXMgbGl0ZXJhbHMgd2l0aCBpbnZhbGlkIFx4IGVzY2FwZSBub3cgcmFpc2UgYSBTeW50YXhFcnJvcgogICBhbmQgYSBmdWxsIHRyYWNlYmFjayBpbmNsdWRpbmcgbGluZSBudW1iZXIuCiAKKy0gSXNzdWUgIzE2OTY3OiBJbiBmdW5jdGlvbiBkZWZpbml0aW9uLCBldmFsdWF0ZSBwb3NpdGlvbmFsIGRlZmF1bHRzIGJlZm9yZQorICBrZXl3b3JkLW9ubHkgZGVmYXVsdHMuCisKIC0gSXNzdWUgIzE3MTczOiBSZW1vdmUgdXNlcyBvZiBsb2NhbGUtZGVwZW5kZW50IEMgZnVuY3Rpb25zIChpc2FscGhhKCkgZXRjLikKICAgaW4gdGhlIGludGVycHJldGVyLgogCkBAIC00MDksNiArNTAxLDEwIEBACiAKIC0gSXNzdWUgIzE2OTc5OiBGaXggZXJyb3IgaGFuZGxpbmcgYnVncyBpbiB0aGUgdW5pY29kZS1lc2NhcGUtZGVjb2RlIGRlY29kZXIuCiAKKy0gSXNzdWUgIzE2NzcyOiBUaGUgYmFzZSBhcmd1bWVudCB0byB0aGUgaW50IGNvbnN0cnVjdG9yIG5vIGxvbmdlciBhY2NlcHRzCisgIGZsb2F0cywgb3Igb3RoZXIgbm9uLWludGVnZXIgb2JqZWN0cyB3aXRoIGFuIF9faW50X18gbWV0aG9kLiAgT2JqZWN0cworICB3aXRoIGFuIF9faW5kZXhfXyBtZXRob2QgYXJlIG5vdyBhY2NlcHRlZC4KKwogLSBJc3N1ZSAjMTAxNTY6IEluIHRoZSBpbnRlcnByZXRlcidzIGluaXRpYWxpemF0aW9uIHBoYXNlLCB1bmljb2RlIGdsb2JhbHMKICAgYXJlIG5vdyBpbml0aWFsaXplZCBkeW5hbWljYWxseSBhcyBuZWVkZWQuCiAKQEAgLTQzNiwxMiArNTMyLDYgQEAKIAogLSBJc3N1ZSAjMTYzNjc6IEZpeCBGaWxlSU8ucmVhZGFsbCgpIG9uIFdpbmRvd3MgZm9yIGZpbGVzIGxhcmdlciB0aGFuIDIgR0IuCiAKLS0gSXNzdWUgIzE2NDU1OiBPbiBGcmVlQlNEIGFuZCBTb2xhcmlzLCBpZiB0aGUgbG9jYWxlIGlzIEMsIHRoZQotICBBU0NJSS9zdXJyb2dhdGVlc2NhcGUgY29kZWMgaXMgbm93IHVzZWQsIGluc3RlYWQgb2YgdGhlIGxvY2FsZSBlbmNvZGluZywgdG8KLSAgZGVjb2RlIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzLiBUaGlzIGNoYW5nZSBmaXhlcyBpbmNvbnNpc3RlbmNpZXMgd2l0aAotICBvcy5mc2VuY29kZSgpIGFuZCBvcy5mc2RlY29kZSgpIGJlY2F1c2UgdGhlc2Ugb3BlcmF0aW5nIHN5c3RlbXMgYW5ub3VuY2VzIGFuCi0gIEFTQ0lJIGxvY2FsZSBlbmNvZGluZywgd2hlcmVhcyB0aGUgSVNPLTg4NTktMSBlbmNvZGluZyBpcyB1c2VkIGluIHByYWN0aWNlLgotCiAtIElzc3VlICMxNjc2MTogQ2FsbGluZyBpbnQoKSB3aXRoIGJhc2UgYXJndW1lbnQgb25seSBub3cgcmFpc2VzIFR5cGVFcnJvci4KIAogLSBJc3N1ZSAjMTY3NTk6IFN1cHBvcnQgdGhlIGZ1bGwgRFdPUkQgKHVuc2lnbmVkIGxvbmcpIHJhbmdlIGluIFJlZzJQeQpAQCAtNDUxLDI0ICs1NDEsNTEgQEAKIC0gSXNzdWUgIzE0NDIwOiBTdXBwb3J0IHRoZSBmdWxsIERXT1JEICh1bnNpZ25lZCBsb25nKSByYW5nZSBpbiBQeTJSZWcKICAgd2hlbiBwYXNzZWQgYSBSRUdfRFdPUkQgdmFsdWUuIEZpeGVzIE92ZXJmbG93RXJyb3IgaW4gd2lucmVnLlNldFZhbHVlRXguCiAKKy0gSXNzdWUgIzExOTM5OiBTZXQgdGhlIHN0X2RldiBhdHRyaWJ1dGUgb2Ygc3RhdF9yZXN1bHQgdG8gYWxsb3cgV2luZG93cyB0bworICB0YWtlIGFkdmFudGFnZSBvZiB0aGUgb3MucGF0aC5zYW1lZmlsZS9zYW1lb3BlbmZpbGUvc2FtZXN0YXQgaW1wbGVtZW50YXRpb25zCisgIHVzZWQgYnkgb3RoZXIgcGxhdGZvcm1zLgorCistIElzc3VlICMxNjc3MjogVGhlIGludCgpIGNvbnN0cnVjdG9yJ3Mgc2Vjb25kIGFyZ3VtZW50IChiYXNlKSBubyBsb25nZXIKKyAgYWNjZXB0cyBub24gaW50ZWdlciB2YWx1ZXMuICBDb25zaXN0ZW50IHdpdGggdGhlIGJlaGF2aW9yIGluIFB5dGhvbiAyLgorCistIElzc3VlICMxNDQ3MDogUmVtb3ZlIHc5eHBvcGVuIHN1cHBvcnQgcGVyIFBFUCAxMS4KKworLSBJc3N1ZSAjOTg1NjogUmVwbGFjZSBkZXByZWNhdGlvbiB3YXJuaW5nIHdpdGggcmFpc2luZyBUeXBlRXJyb3IKKyAgaW4gb2JqZWN0Ll9fZm9ybWF0X18uIFBhdGNoIGJ5IEZsb3JlbnQgWGljbHVuYS4KKwogLSBJc3N1ZSAjMTY1OTc6IEluIGJ1ZmZlcmVkIGFuZCB0ZXh0IElPLCBjYWxsIGNsb3NlKCkgb24gdGhlIHVuZGVybHlpbmcgc3RyZWFtCiAgIGlmIGludm9raW5nIGZsdXNoKCkgZmFpbHMuCiAKIC0gSXNzdWUgIzE2NzIyOiBJbiB0aGUgYnl0ZXMoKSBjb25zdHJ1Y3RvciwgdHJ5IHRvIGNhbGwgX19ieXRlc19fIG9uIHRoZQogICBhcmd1bWVudCBiZWZvcmUgX19pbmRleF9fLgogCistIElzc3VlICMxNjQyMTogbG9hZGluZyBtdWx0aXBsZSBtb2R1bGVzIGZyb20gb25lIHNoYXJlZCBvYmplY3QgaXMgbm93CisgIGhhbmRsZWQgY29ycmVjdGx5IChwcmV2aW91c2x5LCB0aGUgZmlyc3QgbW9kdWxlIGxvYWRlZCBmcm9tIHRoYXQgZmlsZQorICB3YXMgc2lsZW50bHkgcmV0dXJuZWQpLiBQYXRjaCBieSBWw6FjbGF2IMWgbWlsYXVlci4KKwogLSBJc3N1ZSAjMTY2MDI6IFdoZW4gYSB3ZWFrcmVmJ3MgdGFyZ2V0IHdhcyBwYXJ0IG9mIGEgbG9uZyBkZWFsbG9jYXRpb24KICAgY2hhaW4sIHRoZSBvYmplY3QgY291bGQgcmVtYWluIHJlYWNoYWJsZSB0aHJvdWdoIGl0cyB3ZWFrcmVmIGV2ZW4gdGhvdWdoCiAgIGl0cyByZWZjb3VudCBoYWQgZHJvcHBlZCB0byB6ZXJvLgogCi0tIElzc3VlICMxNjQxNjogT24gTWFjIE9TIFgsIG9wZXJhdGluZyBzeXN0ZW0gZGF0YSBhcmUgbm93IGFsd2F5cwotICBlbmNvZGVkL2RlY29kZWQgdG8vZnJvbSBVVEYtOC9zdXJyb2dhdGVlc2NhcGUsIGluc3RlYWQgb2YgdGhlIGxvY2FsZSBlbmNvZGluZwotICAod2hpY2ggbWF5IGJlIEFTQ0lJIGlmIG5vIGxvY2FsZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQpLCB0byBhdm9pZAotICBpbmNvbnNpc3RlbmNpZXMgd2l0aCBvcy5mc2VuY29kZSgpIGFuZCBvcy5mc2RlY29kZSgpIGZ1bmN0aW9ucyB3aGljaCBhcmUKLSAgYWxyZWFkeSB1c2luZyBVVEYtOC9zdXJyb2dhdGVlc2NhcGUuCistIElzc3VlICMxNjQ5NTogUmVtb3ZlIGV4dHJhbmVvdXMgTlVMTCBlbmNvZGluZyBjaGVjayBmcm9tIGJ5dGVzX2RlY29kZSgpLgorCistIElzc3VlICMxNjYxOTogQ3JlYXRlIE5hbWVDb25zdGFudCBBU1QgY2xhc3MgdG8gcmVwcmVzZW50IE5vbmUsIFRydWUsIGFuZCBGYWxzZQorICBsaXRlcmFscy4gQXMgYSByZXN1bHQsIHRoZXNlIGNvbnN0YW50cyBhcmUgbmV2ZXIgbG9hZGVkIGF0IHJ1bnRpbWUgZnJvbQorICBidWlsdGlucy4KKworLSBJc3N1ZSAjMTY0NTU6IE9uIEZyZWVCU0QgYW5kIFNvbGFyaXMsIGlmIHRoZSBsb2NhbGUgaXMgQywgdGhlCisgIEFTQ0lJL3N1cnJvZ2F0ZWVzY2FwZSBjb2RlYyBpcyBub3cgdXNlZCwgaW5zdGVhZCBvZiB0aGUgbG9jYWxlIGVuY29kaW5nLCB0bworICBkZWNvZGUgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuIFRoaXMgY2hhbmdlIGZpeGVzIGluY29uc2lzdGVuY2llcyB3aXRoCisgIG9zLmZzZW5jb2RlKCkgYW5kIG9zLmZzZGVjb2RlKCkgYmVjYXVzZSB0aGVzZSBvcGVyYXRpbmcgc3lzdGVtcyBhbm5vdW5jZXMgYW4KKyAgQVNDSUkgbG9jYWxlIGVuY29kaW5nLCB3aGVyZWFzIHRoZSBJU08tODg1OS0xIGVuY29kaW5nIGlzIHVzZWQgaW4gcHJhY3RpY2UuCisKKy0gSXNzdWUgIzE2NTYyOiBPcHRpbWl6ZSBkaWN0IGVxdWFsaXR5IHRlc3RpbmcuICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgogCiAtIElzc3VlICMxNjU4ODogU2lsZW5jZSB1bnVzZWQtYnV0LXNldCB3YXJuaW5ncyBpbiBQeXRob24vdGhyZWFkX3B0aHJlYWQKIAorLSBJc3N1ZSAjMTY1OTI6IHN0cmluZ2xpYl9ieXRlc19qb2luIGRvZXNuJ3QgcmFpc2UgTWVtb3J5RXJyb3Igb24gYWxsb2NhdGlvbgorICBmYWlsdXJlLgorCiAtIElzc3VlICMxNjU0NjogRml4OiBhc3QuWWllbGRGcm9tIGFyZ3VtZW50IGlzIG5vdyBtYW5kYXRvcnkuCiAKIC0gSXNzdWUgIzE2NTE0OiBGaXggcmVncmVzc2lvbiBjYXVzaW5nIGEgdHJhY2ViYWNrIHdoZW4gc3lzLnBhdGhbMF0gaXMgTm9uZQpAQCAtNDgwLDExICs1OTcsMjMgQEAKIC0gSXNzdWUgIzE2MjE1OiBGaXggcG90ZW50aWFsIGRvdWJsZSBtZW1vcnkgZnJlZSBpbiBzdHIucmVwbGFjZSgpLiAgUGF0Y2gKICAgYnkgU2VyaGl5IFN0b3JjaGFrYS4KIAorLSBJc3N1ZSAjMTYyOTA6IEEgZmxvYXQgcmV0dXJuIHZhbHVlIGZyb20gdGhlIF9fY29tcGxleF9fIHNwZWNpYWwgbWV0aG9kIGlzIG5vCisgIGxvbmdlciBhY2NlcHRlZCBpbiB0aGUgY29tcGxleCgpIGNvbnN0cnVjdG9yLgorCistIElzc3VlICMxNjQxNjogT24gTWFjIE9TIFgsIG9wZXJhdGluZyBzeXN0ZW0gZGF0YSBhcmUgbm93IGFsd2F5cworICBlbmNvZGVkL2RlY29kZWQgdG8vZnJvbSBVVEYtOC9zdXJyb2dhdGVlc2NhcGUsIGluc3RlYWQgb2YgdGhlIGxvY2FsZSBlbmNvZGluZworICAod2hpY2ggbWF5IGJlIEFTQ0lJIGlmIG5vIGxvY2FsZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQpLCB0byBhdm9pZAorICBpbmNvbnNpc3RlbmNpZXMgd2l0aCBvcy5mc2VuY29kZSgpIGFuZCBvcy5mc2RlY29kZSgpIGZ1bmN0aW9ucyB3aGljaCBhcmUKKyAgYWxyZWFkeSB1c2luZyBVVEYtOC9zdXJyb2dhdGVlc2NhcGUuCisKIC0gSXNzdWUgIzE2NDUzOiBGaXggZXF1YWxpdHkgdGVzdGluZyBvZiBkZWFkIHdlYWtyZWYgb2JqZWN0cy4KIAogLSBJc3N1ZSAjOTUzNTogRml4IHBlbmRpbmcgc2lnbmFscyB0aGF0IGhhdmUgYmVlbiByZWNlaXZlZCBidXQgbm90IHlldAogICBoYW5kbGVkIGJ5IFB5dGhvbiB0byBub3QgcGVyc2lzdCBhZnRlciBvcy5mb3JrKCkgaW4gdGhlIGNoaWxkIHByb2Nlc3MuCiAKKy0gSXNzdWUgIzE0Nzk0OiBGaXggc2xpY2UuaW5kaWNlcyB0byByZXR1cm4gY29ycmVjdCByZXN1bHRzIGZvciBodWdlIHZhbHVlcywKKyAgcmF0aGVyIHRoYW4gcmFpc2luZyBPdmVyZmxvd0Vycm9yLgorCiAtIElzc3VlICMxNTAwMTogZml4IHNlZ2ZhdWx0IG9uICJkZWwgc3lzLm1vZHVsZXNbJ19fbWFpbl9fJ10iLiBQYXRjaCBieSBWaWN0b3IKICAgU3Rpbm5lci4KIApAQCAtNTA0LDIzICs2MzMsNDMgQEAKIC0gSXNzdWUgIzg0MDE6IGFzc2lnbmluZyBhbiBpbnQgdG8gYSBieXRlYXJyYXkgc2xpY2UgKGUuZy4gYlszOjRdID0gNSkgbm93CiAgIHJhaXNlcyBhbiBlcnJvci4KIAorLSBJc3N1ZSAjNzMxNzogRGlzcGxheSBmdWxsIHRyYWNlYmFja3Mgd2hlbiBhbiBlcnJvciBvY2N1cnMgYXN5bmNocm9ub3VzbHkuCisgIFBhdGNoIGJ5IEFsb24gSG9yZXYgd2l0aCB1cGRhdGUgYnkgQWxleGV5IEthY2hheWV2LgorCistIElzc3VlICMxNjMwOTogTWFrZSBQWVRIT05QQVRIPSIiIGJlaGF2aW9yIHRoZSBzYW1lIGFzIGlmIFBZVEhPTlBBVEgKKyAgbm90IHNldCBhdCBhbGwuCisKKy0gSXNzdWUgIzEwMTg5OiBJbXByb3ZlIHRoZSBlcnJvciByZXBvcnRpbmcgb2YgU3ludGF4RXJyb3JzIHJlbGF0ZWQgdG8gZ2xvYmFsCisgIGFuZCBub25sb2NhbCBzdGF0ZW1lbnRzLgorCiAtIEZpeCBzZWdmYXVsdHMgb24gc2V0dGluZyBfX3F1YWxuYW1lX18gb24gYnVpbHRpbiB0eXBlcyBhbmQgYXR0ZW1wdGluZyB0bwogICBkZWxldGUgaXQgb24gYW55IHR5cGUuCiAKKy0gSXNzdWUgIzE0NjI1OiBSZXdyaXRlIHRoZSBVVEYtMzIgZGVjb2Rlci4gSXQgaXMgbm93IDN4IHRvIDR4IGZhc3Rlci4gUGF0Y2gKKyAgd3JpdHRlbiBieSBTZXJoaXkgU3RvcmNoYWthLgorCiAtIElzc3VlICMxNjM0NTogRml4IGFuIGluZmluaXRlIGxvb3Agd2hlbiBgYGZyb21rZXlzYGAgb24gYSBkaWN0IHN1YmNsYXNzCiAgIHJlY2VpdmVkIGEgbm9uZW1wdHkgZGljdCBmcm9tIHRoZSBjb25zdHJ1Y3Rvci4KIAogLSBJc3N1ZSAjMTYyNzE6IEZpeCBzdHJhbmdlIGJ1Z3MgdGhhdCByZXN1bHRlZCBmcm9tIF9fcXVhbG5hbWVfXyBhcHBlYXJpbmcgaW4gYQogICBjbGFzcydzIF9fZGljdF9fIGFuZCBvbiB0eXBlLgogCistIElzc3VlICMxMjgwNTogTWFrZSBieXRlcy5qb2luIGFuZCBieXRlYXJyYXkuam9pbiBmYXN0ZXIgd2hlbiB0aGUgc2VwYXJhdG9yCisgIGlzIGVtcHR5LiAgUGF0Y2ggYnkgU2VyaGl5IFN0b3JjaGFrYS4KKwogLSBJc3N1ZSAjNjA3NDogRW5zdXJlIGNhY2hlZCBieXRlY29kZSBmaWxlcyBjYW4gYWx3YXlzIGJlIHVwZGF0ZWQgYnkgdGhlCiAgIHVzZXIgdGhhdCBjcmVhdGVkIHRoZW0sIGV2ZW4gd2hlbiB0aGUgc291cmNlIGZpbGUgaXMgcmVhZC1vbmx5LgogCistIElzc3VlICMxNTk1ODogYnl0ZXMuam9pbiBhbmQgYnl0ZWFycmF5LmpvaW4gbm93IGFjY2VwdCBhcmJpdHJhcnkgYnVmZmVyCisgIG9iamVjdHMuCisKIC0gSXNzdWUgIzE0NzgzOiBJbXByb3ZlIGludCgpIGRvY3N0cmluZyBhbmQgc3dpdGNoIGRvY3N0cmluZ3MgZm9yIHN0cigpLAogICByYW5nZSgpLCBhbmQgc2xpY2UoKSB0byB1c2UgbXVsdGktbGluZSBzaWduYXR1cmVzLgogCiAtIElzc3VlICMxNjE2MDogU3ViY2xhc3Mgc3VwcG9ydCBub3cgd29ya3MgZm9yIHR5cGVzLlNpbXBsZU5hbWVzcGFjZS4KIAorLSBVcGdyYWRlIFVuaWNvZGUgZGF0YSAoVUNEKSB0byB2ZXJzaW9uIDYuMi4KKwogLSBJc3N1ZSAjMTUzNzk6IEZpeCBwYXNzaW5nIG9mIG5vbi1CTVAgY2hhcmFjdGVycyBhcyBpbnRlZ2VycyBmb3IgdGhlIGNoYXJtYXAKICAgZGVjb2RlciAoYWxyZWFkeSB3b3JraW5nIGFzIHVuaWNvZGUgc3RyaW5ncykuICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgogCkBAIC01MzMsMjUgKzY4Miw1MCBAQAogCiAtIElzc3VlICMxNTgzOTogQ29udmVydCBTeXN0ZW1FcnJvcnMgaW4gYHN1cGVyKClgIHRvIFJ1bnRpbWVFcnJvcnMuCiAKKy0gSXNzdWUgIzE1NDQ4OiBCdWZmZXJlZCBJTyBub3cgZnJlZXMgdGhlIGJ1ZmZlciB3aGVuIGNsb3NlZCwgaW5zdGVhZAorICBvZiB3aGVuIGRlYWxsb2NhdGluZy4KKwogLSBJc3N1ZSAjMTU4NDY6IEZpeCBTeXN0ZW1FcnJvciB3aGljaCBoYXBwZW5lZCB3aGVuIHVzaW5nIGBhc3QucGFyc2UoKWAgaW4gYW4KICAgZXhjZXB0aW9uIGhhbmRsZXIgb24gY29kZSB3aXRoIHN5bnRheCBlcnJvcnMuCiAKKy0gSXNzdWUgIzE1ODk3OiB6aXBpbXBvcnQuYyBkb2Vzbid0IGNoZWNrIHJldHVybiB2YWx1ZSBvZiBmc2VlaygpLgorICBQYXRjaCBieSBGZWxpcGUgQ3J1ei4KKwogLSBJc3N1ZSAjMTU4MDE6IE1ha2Ugc3VyZSBtYXBwaW5ncyBwYXNzZWQgdG8gJyUnIGZvcm1hdHRpbmcgYXJlIGFjdHVhbGx5CiAgIHN1YnNjcmlwdGFibGUuCiAKLS0gSXNzdWUgIzE1MTExOiBfX2ltcG9ydF9fIHNob3VsZCBsZXQgSW1wb3J0RXJyb3IgcHJvcGFnYXRlIHdoZW4gYSBtb2R1bGUgdGhhdAotICBpcyBpbXBvcnRlZCBhcyBhIHNpZGUtZWZmZWN0IG9mIHVzaW5nIGZyb21saXN0IHRyaWVzIHRvIGltcG9ydCBhIG1vZHVsZQotICB0aGF0IGNhbm5vdCBiZSBmb3VuZC4KKy0gSXNzdWUgIzE1MTExOiBfX2ltcG9ydF9fIHNob3VsZCBwcm9wYWdhdGUgSW1wb3J0RXJyb3Igd2hlbiByYWlzZWQgYXMgYQorICBzaWRlLWVmZmVjdCBvZiBhIG1vZHVsZSB0cmlnZ2VyZWQgZnJvbSB1c2luZyBmcm9tbGlzdC4KIAorLSBJc3N1ZSAjMTUwMjI6IEFkZCBwaWNrbGUgYW5kIGNvbXBhcmlzb24gc3VwcG9ydCB0byB0eXBlcy5TaW1wbGVOYW1lc3BhY2UuCiAKIExpYnJhcnkKIC0tLS0tLS0KIAorLSBJc3N1ZSAjMTU1OTY6IEZhc3RlciBwaWNrbGluZyBvZiB1bmljb2RlIHN0cmluZ3MuCisKKy0gSXNzdWUgIzE3NTcyOiBBdm9pZCBjaGFpbmVkIGV4Y2VwdGlvbnMgd2hpbGUgcGFzc2luZyBiYWQgZGlyZWN0aXZlcyB0bworICB0aW1lLnN0cnB0aW1lKCkuICBJbml0aWFsIHBhdGNoIGJ5IENsYXVkaXUgUG9wYS4KKworLSBJc3N1ZSAjMTc0MzU6IHRocmVhZGluZy5UaW1lcidzIF9faW5pdF9fIG1ldGhvZCBubyBsb25nZXIgdXNlcyBtdXRhYmxlCisgIGRlZmF1bHQgdmFsdWVzIGZvciB0aGUgYXJncyBhbmQga3dhcmdzIHBhcmFtZXRlcnMuCisKKy0gSXNzdWUgIzE3NTI2OiBmaXggYW4gSW5kZXhFcnJvciByYWlzZWQgd2hpbGUgcGFzc2luZyBjb2RlIHdpdGhvdXQgZmlsZW5hbWUgdG8KKyAgaW5zcGVjdC5maW5kc291cmNlKCkuICBJbml0aWFsIHBhdGNoIGJ5IFR5bGVyIERveWxlLgorCiAtIElzc3VlICMxNzU0MDogQWRkZWQgc3R5bGUgdG8gZm9ybWF0dGVyIGNvbmZpZ3VyYXRpb24gYnkgZGljdC4KIAorLSBJc3N1ZSAjMTY2OTI6IFRoZSBzc2wgbW9kdWxlIG5vdyBzdXBwb3J0cyBUTFMgMS4xIGFuZCBUTFMgMS4yLiAgSW5pdGlhbAorICBwYXRjaCBieSBNaWNoZWxlIE9ycsO5LgorCistIElzc3VlICMxNzAyNTogbXVsdGlwcm9jZXNzaW5nOiBSZWR1Y2UgUXVldWUgYW5kIFNpbXBsZVF1ZXVlIGNvbnRlbnRpb24uCisKIC0gSXNzdWUgIzE3NTM2OiBBZGQgdG8gd2ViYnJvd3NlcidzIGJyb3dzZXIgbGlzdDogd3d3LWJyb3dzZXIsIHgtd3d3LWJyb3dzZXIsCiAgIGljZXdlYXNlbCwgaWNlYXBlLgogCistIElzc3VlICMxNzE1MDogcHByaW50IG5vdyB1c2VzIGxpbmUgY29udGludWF0aW9ucyB0byB3cmFwIGxvbmcgc3RyaW5nCisgIGxpdGVyYWxzLgorCiAtIElzc3VlICMxNzQ4ODogQ2hhbmdlIHRoZSBzdWJwcm9jZXNzLlBvcGVuIGJ1ZnNpemUgcGFyYW1ldGVyIGRlZmF1bHQgdmFsdWUKICAgZnJvbSB1bmJ1ZmZlcmVkICgwKSB0byBidWZmZXJpbmcgKC0xKSB0byBtYXRjaCB0aGUgYmVoYXZpb3IgZXhpc3RpbmcgY29kZQogICBleHBlY3RzIGFuZCBtYXRjaCB0aGUgYmVoYXZpb3Igb2YgdGhlIHN1YnByb2Nlc3MgbW9kdWxlIGluIFB5dGhvbiAyIHRvIGF2b2lkCkBAIC01NzAsNiArNzQ0LDE4IEBACiAgIHNlbmRpbmcgbWFpbCBieSBjbG9zaW5nIHRoZSBzb2NrZXQgYW5kIHJlcG9ydGluZyB0aGUgNDIxIGVycm9yIGNvZGUgdmlhIHRoZQogICBleGNlcHRpb24gYXBwcm9wcmlhdGUgdG8gdGhlIGNvbW1hbmQgdGhhdCByZWNlaXZlZCB0aGUgZXJyb3IgcmVzcG9uc2UuCiAKKy0gSXNzdWUgIzE2OTk3OiB1bml0dGVzdC5UZXN0Q2FzZSBub3cgcHJvdmlkZXMgYSBzdWJUZXN0KCkgY29udGV4dCBtYW5hZ2VyCisgIHRvIHByb2NlZHVyYWxseSBnZW5lcmF0ZSwgaW4gYW4gZWFzeSB3YXksIHNtYWxsIHRlc3QgaW5zdGFuY2VzLgorCistIElzc3VlICMxNzQ4NTogQWxzbyBkZWxldGUgdGhlIFJlcXVlc3QgQ29udGVudC1MZW5ndGggaGVhZGVyIGlmIHRoZSBkYXRhCisgIGF0dHJpYnV0ZSBpcyBkZWxldGVkLiAgKEZvbGxvdyBvbiB0byBpc3N1ZSAxNjQ2NCkuCisKKy0gSXNzdWUgIzE1OTI3OiBDVlMgbm93IGNvcnJlY3RseSBwYXJzZXMgZXNjYXBlZCBuZXdsaW5lcyBhbmQgY2FycmlhZ2UKKyAgd2hlbiBwYXJzaW5nIHdpdGggcXVvdGluZyB0dXJuZWQgb2ZmLgorCistIElzc3VlICMxNzQ2NzogYWRkIHJlYWRsaW5lIGFuZCByZWFkbGluZXMgc3VwcG9ydCB0byBtb2NrX29wZW4gaW4KKyAgdW5pdHRlc3QubW9jay4KKwogLSBJc3N1ZSAjMTcxOTI6IFVwZGF0ZSB0aGUgY3R5cGVzIG1vZHVsZSdzIGxpYmZmaSB0byB2My4wLjEzLiAgVGhpcwogICBzcGVjaWZpY2FsbHkgYWRkcmVzc2VzIGEgc3RhY2sgbWlzYWxpZ25tZW50IGlzc3VlIG9uIHg4NiBhbmQgaXNzdWVzIG9uCiAgIHNvbWUgbW9yZSByZWNlbnQgcGxhdGZvcm1zLgpAQCAtNTgzLDIwICs3NjksNTEgQEAKIC0gSXNzdWUgIzE3NDc2OiBGaXhlZCByZWdyZXNzaW9uIHJlbGF0aXZlIHRvIFB5dGhvbjIgaW4gdW5kb2N1bWVudGVkIHB5ZG9jCiAgICdhbGxtZXRob2RzJzsgaXQgd2FzIG1pc3NpbmcgdW5ib3VuZCBtZXRob2RzIG9uIHRoZSBjbGFzcy4KIAorLSBJc3N1ZSAjMTc0NzQ6IFJlbW92ZSB0aGUgZGVwcmVjYXRlZCBtZXRob2RzIG9mIFJlcXVlc3QgY2xhc3MuCisKKy0gSXNzdWUgIzE2NzA5OiB1bml0dGVzdCBkaXNjb3ZlciBvcmRlciBpcyBuby1sb25nZXIgZmlsZXN5c3RlbSBzcGVjaWZpYy4gUGF0Y2gKKyAgYnkgSmVmZiBSYW1uYW5pLgorCistIFVzZSB0aGUgSFRUUFMgUHlQSSB1cmwgZm9yIHVwbG9hZCwgb3ZlcnJpZGluZyBhbnkgcGxhaW4gSFRUUCBVUkwgaW4gcHlwaXJjLgorCistIElzc3VlICM1MDI0OiBzbmRoZHIud2hpY2hoZHIgbm93IHJldHVybnMgdGhlIGZyYW1lIGNvdW50IGZvciBXQVYgZmlsZXMKKyAgcmF0aGVyIHRoYW4gLTEuCisKKy0gSXNzdWUgIzE3NDYwOiBSZW1vdmUgdGhlIHN0cmljdCBhcmd1bWVudCBvZiBIVFRQQ29ubmVjdGlvbiBhbmQgcmVtb3ZpbmcgdGhlCisgIERlcHJlY2F0aW9uV2FybmluZyBiZWluZyBpc3N1ZWQgZnJvbSAzLjIgb253YXJkcy4KKwogLSBJc3N1ZSAjMTY4ODA6IERvIG5vdCBhc3N1bWUgX2ltcC5sb2FkX2R5bmFtaWMoKSBpcyBkZWZpbmVkIGluIHRoZSBpbXAgbW9kdWxlLgogCiAtIElzc3VlICMxNjM4OTogRml4ZWQgYSBwZXJmb3JtYW5jZSByZWdyZXNzaW9uIHJlbGF0aXZlIHRvIFB5dGhvbiAzLjEgaW4gdGhlCiAgIGNhY2hpbmcgb2YgY29tcGlsZWQgcmVndWxhciBleHByZXNzaW9ucy4KIAorLSBBZGRlZCBtaXNzaW5nIEZlZWRQYXJzZXIgYW5kIEJ5dGVzRmVlZFBhcnNlciB0byBlbWFpbC5wYXJzZXIuX19hbGxfXy4KKwogLSBJc3N1ZSAjMTc0MzE6IEZpeCBtaXNzaW5nIGltcG9ydCBvZiBCeXRlc0ZlZWRQYXJzZXIgaW4gZW1haWwucGFyc2VyLgogCistIElzc3VlICMxMjkyMTogaHR0cC5zZXJ2ZXIncyBzZW5kX2Vycm9yIHRha2VzIGFuIGV4cGxhaW4gYXJndW1lbnQgdG8gc2VuZCBtb3JlCisgIGluZm9ybWF0aW9uIGluIHJlc3BvbnNlLiBQYXRjaCBjb250cmlidXRlZCBieSBLYXJsLgorCistIElzc3VlICMxNzQxNDogQWRkIHRpbWVpdCwgcmVwZWF0LCBhbmQgZGVmYXVsdF90aW1lciB0byB0aW1laXQuX19hbGxfXy4KKwogLSBJc3N1ZSAjMTI4NTA4NjogR2V0IHJpZCBvZiB0aGUgcmVmY291bnRpbmcgaGFjayBhbmQgc3BlZWQgdXAKICAgdXJsbGliLnBhcnNlLnVucXVvdGUoKSBhbmQgdXJsbGliLnBhcnNlLnVucXVvdGVfdG9fYnl0ZXMoKS4KIAorLSBJc3N1ZSAjMTcwOTk6IEhhdmUgaW1wb3J0bGliLmZpbmRfbG9hZGVyKCkgcmFpc2UgVmFsdWVFcnJvciB3aGVuIF9fbG9hZGVyX18KKyAgaXMgbm90IHNldCwgaGFybW9uaXppbmcgd2l0aCB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgYXR0cmlidXRlIGlzIHNldCB0byBOb25lLgorCistIEV4cG9zZSB0aGUgT19QQVRIIGNvbnN0YW50IGluIHRoZSBvcyBtb2R1bGUgaWYgaXQgaXMgYXZhaWxhYmxlLgorCiAtIElzc3VlICMxNzM2ODogRml4IGFuIG9mZi1ieS1vbmUgZXJyb3IgaW4gdGhlIFB5dGhvbiBKU09OIGRlY29kZXIgdGhhdCBjYXVzZWQKICAgYSBmYWlsdXJlIHdoaWxlIGRlY29kaW5nIGVtcHR5IG9iamVjdCBsaXRlcmFscyB3aGVuIG9iamVjdF9wYWlyc19ob29rIHdhcwogICBzcGVjaWZpZWQuCiAKKy0gSXNzdWUgIzE3Mzg1OiBGaXggcXVhZHJhdGljIGJlaGF2aW9yIGluIHRocmVhZGluZy5Db25kaXRpb24uICBUaGUgRklGTworICBxdWV1ZSBub3cgdXNlcyBhIGRlcXVlIGluc3RlYWQgb2YgYSBsaXN0LgorCistIElzc3VlICMxNTgwNjogQWRkIGNvbnRleHRsaWIuaWdub3JlZCgpLiAgVGhpcyBjcmVhdGVzIGEgY29udGV4dCBtYW5hZ2VyCisgIHRvIGlnbm9yZSBzcGVjaWZpZWQgZXhjZXB0aW9ucywgcmVwbGFjaW5nIHRoZSAiZXhjZXB0IEV4YzogcGFzcyIgaWRpb20uCisKIC0gSXNzdWUgIzE0NjQ1OiBUaGUgZW1haWwgZ2VuZXJhdG9yIGNsYXNzZXMgbm93IHByb2R1Y2Ugb3V0cHV0IHVzaW5nIHRoZQogICBzcGVjaWZpZWQgbGluZXNlcCB0aHJvdWdob3V0LiAgUHJldmlvdXNseSBpZiB0aGUgcHJvbG9nLCBlcGlsb2csIG9yCiAgIGJvZHkgd2VyZSBzdG9yZWQgd2l0aCBhIGRpZmZlcmVudCBsaW5lc2VwLCB0aGF0IGxpbmVzZXAgd2FzIHVzZWQuICBUaGlzCkBAIC02MDgsMTggKzgyNSwzMCBAQAogLSBJc3N1ZSAjMTY5NjI6IFVzZSBnZXRkZW50czY0IGluc3RlYWQgb2YgdGhlIG9ic29sZXRlIGdldGRlbnRzIHN5c2NhbGwKICAgaW4gdGhlIHN1YnByb2Nlc3MgbW9kdWxlIG9uIExpbnV4LgogCistIElzc3VlICMxNjkzNTogdW5pdHRlc3Qgbm93IGNvdW50cyB0aGUgbW9kdWxlIGFzIHNraXBwZWQgaWYgaXQgcmFpc2VzIFNraXBUZXN0LAorICBpbnN0ZWFkIG9mIGNvdW50aW5nIGl0IGFzIGFuIGVycm9yLiAgUGF0Y2ggYnkgWmFjaGFyeSBXYXJlLgorCiAtIElzc3VlICMxNzAxODogTWFrZSBQcm9jZXNzLmpvaW4oKSByZXRyeSBpZiBvcy53YWl0cGlkKCkgZmFpbHMgd2l0aCBFSU5UUi4KIAogLSBJc3N1ZSAjMTcyMjM6IGFycmF5IG1vZHVsZTogRml4IGEgY3Jhc2hlciB3aGVuIGNvbnZlcnRpbmcgYW4gYXJyYXkgY29udGFpbmluZwogICBpbnZhbGlkIGNoYXJhY3RlcnMgKG91dHNpZGUgcmFuZ2UgW1UrMDAwMDsgVSsxMGZmZmZdKSB0byBVbmljb2RlOgogICByZXByKGFycmF5KSwgc3RyKGFycmF5KSBhbmQgYXJyYXkudG91bmljb2RlKCkuIFBhdGNoIHdyaXR0ZW4gYnkgTWFudWVsIEphY29iLgogCistIElzc3VlICMxNzE5NzogcHJvZmlsZS9jUHJvZmlsZSBtb2R1bGVzIHJlZmFjdG9yZWQgc28gdGhhdCBjb2RlIG9mIHJ1bigpIGFuZAorICBydW5jdHgoKSB1dGlsaXR5IGZ1bmN0aW9ucyBpcyBub3QgZHVwbGljYXRlZCBpbiBib3RoIG1vZHVsZXMuCisKIC0gSXNzdWUgIzE0NzIwOiBzcWxpdGUzOiBDb252ZXJ0IGRhdGV0aW1lIG1pY3Jvc2Vjb25kcyBjb3JyZWN0bHkuCiAgIFBhdGNoIGJ5IExvd2UgVGhpZGVybWFuLgogCistIElzc3VlICMxNTEzMjogQWxsb3cgYSBsaXN0IGZvciB0aGUgZGVmYXVsdFRlc3QgYXJndW1lbnQgb2YKKyAgdW5pdHRlc3QuVGVzdFByb2dyYW0uIFBhdGNoIGJ5IEp5cmtpIFB1bGxpYWluZW4uCisKIC0gSXNzdWUgIzE3MjI1OiBKU09OIGRlY29kZXIgbm93IGNvdW50cyBjb2x1bW5zIGluIHRoZSBmaXJzdCBsaW5lIHN0YXJ0aW5nCiAgIHdpdGggMSwgYXMgaW4gb3RoZXIgbGluZXMuCiAKKy0gSXNzdWUgIzY2MjM6IEFkZGVkIGV4cGxpY2l0IERlcHJlY2F0aW9uV2FybmluZyBmb3IgZnRwbGliLm5ldHJjLCB3aGljaCBoYXMKKyAgYmVlbiBkZXByZWNhdGVkIGFuZCB1bmRvY3VtZW50ZWQgZm9yIGEgbG9uZyB0aW1lLgorCiAtIElzc3VlICMxMzcwMDogRml4IGJ5dGUvc3RyaW5nIGhhbmRsaW5nIGluIGltYXBsaWIgYXV0aGVudGljYXRpb24gd2hlbiBhbgogICBhdXRob2JqZWN0IGlzIHNwZWNpZmllZC4KIApAQCAtNjM2LDExICs4NjUsMTkgQEAKIC0gSXNzdWUgIzE3MTQzOiBGaXggYSBtaXNzaW5nIGltcG9ydCBpbiB0aGUgdHJhY2UgbW9kdWxlLiAgSW5pdGlhbCBwYXRjaCBieQogICBCZXJrZXIgUGVrc2FnLgogCistIElzc3VlICMxNTIyMDogZW1haWwuZmVlZHBhcnNlcidzIGxpbmUgc3BsaXR0aW5nIGFsZ29yaXRobSBpcyBub3cgc2ltcGxlciBhbmQKKyAgZmFzdGVyLgorCiAtIElzc3VlICMxNjc0MzogRml4IG1tYXAgb3ZlcmZsb3cgY2hlY2sgb24gMzIgYml0IFdpbmRvd3MuCiAKKy0gSXNzdWUgIzE2OTk2OiB3ZWJicm93c2VyIG1vZHVsZSBub3cgdXNlcyBzaHV0aWwud2hpY2goKSB0byBmaW5kIGEKKyAgd2ViLWJyb3dzZXIgb24gdGhlIGV4ZWN1dGFibGUgc2VhcmNoIHBhdGguCisKIC0gSXNzdWUgIzE2ODAwOiB0ZW1wZmlsZS5nZXR0ZW1wZGlyKCkgbm8gbG9uZ2VyIGxlZnQgdGVtcG9yYXJ5IGZpbGVzIHdoZW4KICAgdGhlIGRpc2sgaXMgZnVsbC4gIE9yaWdpbmFsIHBhdGNoIGJ5IEFtaXIgU3pla2VseS4KIAorLSBJc3N1ZSAjMTcxOTI6IEltcG9ydCBsaWJmZmktMy4wLjEyLgorCiAtIElzc3VlICMxNjU2NDogRml4ZWQgcmVncmVzc2lvbiByZWxhdGl2ZSB0byBQeXRob24yIGluIHRoZSBvcGVyYXRpb24gb2YKICAgZW1haWwuZW5jb2RlcnMuZW5jb2RlXzdvcjhiaXQgd2hlbiB1c2VkIHdpdGggYmluYXJ5IGRhdGEuCiAKQEAgLTY1OCw2ICs4OTUsOSBAQAogLSBJc3N1ZSAjNjk3NTogb3MucGF0aC5yZWFscGF0aCgpIG5vdyBjb3JyZWN0bHkgcmVzb2x2ZXMgbXVsdGlwbGUgbmVzdGVkCiAgIHN5bWxpbmtzIG9uIFBPU0lYIHBsYXRmb3Jtcy4KIAorLSBJc3N1ZSAjMTM3NzM6IHNxbGl0ZTMuY29ubmVjdCgpIGdldHMgYSBuZXcgYHVyaWAgcGFyYW1ldGVyIHRvIHBhc3MgdGhlCisgIGZpbGVuYW1lIGFzIGEgVVJJLCBhbGxvd2luZyB0byBwYXNzIGN1c3RvbSBvcHRpb25zLgorCiAtIElzc3VlICMxNjU2NDogRml4ZWQgcmVncmVzc2lvbiByZWxhdGl2ZSB0byBQeXRob24yIGluIHRoZSBvcGVyYXRpb24gb2YKICAgZW1haWwuZW5jb2RlcnMuZW5jb2RlX25vb3Agd2hlbiB1c2VkIHdpdGggYmluYXJ5IGRhdGEuCiAKQEAgLTY3Niw2ICs5MTYsOSBAQAogLSBJc3N1ZSAjMTY3MjM6IGh0dHBsaWIuSFRUUFJlc3BvbnNlIG5vIGxvbmdlciBtYXJrZWQgY2xvc2VkIHdoZW4gdGhlIGNvbm5lY3Rpb24KICAgaXMgYXV0b21hdGljYWxseSBjbG9zZWQuCiAKKy0gSXNzdWUgIzE1MzU5OiBBZGQgQ0FOX0JDTSBwcm90b2NvbCBzdXBwb3J0IHRvIHRoZSBzb2NrZXQgbW9kdWxlLiBQYXRjaCBieQorICBCcmlhbiBUaG9ybmUuCisKIC0gSXNzdWUgIzE2OTQ4OiBGaXggcXVvdGVkIHByaW50YWJsZSBib2R5IGVuY29kaW5nIGZvciBub24tbGF0aW4xIGNoYXJhY3RlcgogICBzZXRzIGluIHRoZSBlbWFpbCBwYWNrYWdlLgogCkBAIC03MDAsNiArOTQzLDEwIEBACiAgIHN0cmVhbSBvciBhIGRlY29kZXIgcHJvZHVjZXMgZGF0YSBvZiBhbiB1bmV4cGVjdGVkIHR5cGUgKGkuZS4gd2hlbgogICBpby5UZXh0SU9XcmFwcGVyIGluaXRpYWxpemVkIHdpdGggdGV4dCBzdHJlYW0gb3IgdXNlIGJ5dGVzLXRvLWJ5dGVzIGNvZGVjKS4KIAorLSBJc3N1ZSAjMTcwMTU6IFdoZW4gaXQgaGFzIGEgc3BlYywgYSBNb2NrIG9iamVjdCBub3cgaW5zcGVjdHMgaXRzIHNpZ25hdHVyZQorICB3aGVuIG1hdGNoaW5nIGNhbGxzLCBzbyB0aGF0IGFyZ3VtZW50cyBjYW4gYmUgbWF0Y2hlZCBwb3NpdGlvbmFsbHkgb3IKKyAgYnkgbmFtZS4KKwogLSBJc3N1ZSAjMTU2MzM6IGh0dHBsaWIuSFRUUFJlc3BvbnNlIGlzIG5vdyBtYXJrIGNsb3NlZCB3aGVuIHRoZSBzZXJ2ZXIKICAgc2VuZHMgbGVzcyB0aGFuIHRoZSBhZHZlcnRpc2VkIENvbnRlbnQtTGVuZ3RoLgogCkBAIC03MTksNiArOTY2LDExIEBACiAtIElzc3VlICMxMjAwNDogRml4IGFuIGludGVybmFsIGVycm9yIGluIFB5WmlwRmlsZSB3aGVuIHdyaXRpbmcgYW4gaW52YWxpZAogICBQeXRob24gZmlsZS4gIFBhdGNoIGJ5IEJlbiBNb3JnYW4uCiAKKy0gSGF2ZSBweV9jb21waWxlIHVzZSBpbXBvcnRsaWIgYXMgbXVjaCBhcyBwb3NzaWJsZSB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLgorCistIElzc3VlICMxODAwMjI6IEhhdmUgc2l0ZS5hZGRwYWNrYWdlKCkgY29uc2lkZXIgYWxyZWFkeSBrbm93biBwYXRocyBldmVuIHdoZW4KKyAgbm9uZSBhcmUgZXhwbGljaXRseSBwYXNzZWQgaW4uIEJ1ZyByZXBvcnQgYW5kIGZpeCBieSBLaXJpbGwuCisKIC0gSXNzdWUgIzE2MDIxMzM6IG9uIE1hYyBPUyBYIGEgc2hhcmVkIGxpYnJhcnkgYnVpbGQgKGBgLS1lbmFibGUtc2hhcmVkYGApCiAgIG5vdyBmaWxscyB0aGUgYGBvcy5lbnZpcm9uYGAgdmFyaWFibGUgY29ycmVjdGx5LgogCkBAIC03MzUsNiArOTg3LDkgQEAKICAgY3VycmVudCBkaXJlY3Rvcnkgb24gVW5peCBhbmQgbm8gbG9uZ2VyIHNlYXJjaGVzIGEgcmVsYXRpdmUgZmlsZSBwYXRoIHdpdGgKICAgYSBkaXJlY3RvcnkgcGFydCBpbiBQQVRIIGRpcmVjdG9yaWVzLiAgUGF0Y2ggYnkgVGhvbWFzIEtsdXl2ZXIuCiAKKy0gSXNzdWUgIzExNTkwNTE6IEd6aXBGaWxlIG5vdyByYWlzZXMgRU9GRXJyb3Igd2hlbiByZWFkaW5nIGEgY29ycnVwdGVkIGZpbGUKKyAgd2l0aCB0cnVuY2F0ZWQgaGVhZGVyIG9yIGZvb3Rlci4KKwogLSBJc3N1ZSAjMTY5OTM6IHNodXRpbC53aGljaCgpIG5vdyBwcmVzZXJ2ZXMgdGhlIGNhc2Ugb2YgdGhlIHBhdGggYW5kIGV4dGVuc2lvbgogICBvbiBXaW5kb3dzLgogCkBAIC03NDcsOCArMTAwMiw2IEBACiAtIElzc3VlICMxNTg2MTogdGtpbnRlciBub3cgY29ycmVjdGx5IHdvcmtzIHdpdGggbGlzdHMgYW5kIHR1cGxlcyBjb250YWluaW5nCiAgIHN0cmluZ3Mgd2l0aCB3aGl0ZXNwYWNlcywgYmFja3NsYXNoZXMgb3IgdW5iYWxhbmNlZCBicmFjZXMuCiAKLS0gSXNzdWUgIzEwNTI3OiBVc2UgcG9sbCgpIGluc3RlYWQgb2Ygc2VsZWN0KCkgZm9yIG11bHRpcHJvY2Vzc2luZyBwaXBlcy4KLQogLSBJc3N1ZSAjOTcyMDogemlwZmlsZSBub3cgd3JpdGVzIGNvcnJlY3QgbG9jYWwgaGVhZGVycyBmb3IgZmlsZXMgbGFyZ2VyIHRoYW4KICAgNCBHaUIuCiAKQEAgLTc1Nyw2ICsxMDEwLDEzIEBACiAKIC0gU1NMQ29udGV4dC5sb2FkX2RoX3BhcmFtcygpIG5vdyBwcm9wZXJseSBjbG9zZXMgdGhlIGlucHV0IGZpbGUuCiAKKy0gSXNzdWUgIzE1MDMxOiBSZWZhY3RvciBzb21lIC5weWMgbWFuYWdlbWVudCBjb2RlIHRvIGN1dCBkb3duIG9uIGNvZGUKKyAgZHVwbGljYXRpb24uIFRoYW5rcyB0byBSb25hbiBMYW15IGZvciB0aGUgcmVwb3J0IGFuZCB0YWtpbmcgYW4gaW5pdGlhbCBzdGFiCisgIGF0IHRoZSBwcm9ibGVtLgorCistIElzc3VlICMxNjM5ODogT3B0aW1pemUgZGVxdWUucm90YXRlKCkgc28gdGhhdCBpdCBvbmx5IG1vdmVzIHBvaW50ZXJzCisgIGFuZCBkb2Vzbid0IHRvdWNoIHRoZSB1bmRlcmx5aW5nIGRhdGEgd2l0aCBpbmNyZWZzIGFuZCBkZWNyZWZzLgorCiAtIElzc3VlICMxNjkwMDogSXNzdWUgYSBSZXNvdXJjZVdhcm5pbmcgd2hlbiBhbiBzc2wgc29ja2V0IGlzIGxlZnQgdW5jbG9zZWQuCiAKIC0gSXNzdWUgIzEzODk5OiBcQSwgXFosIGFuZCBcQiBub3cgY29ycmVjdGx5IG1hdGNoIHRoZSBBLCBaLCBhbmQgQiBsaXRlcmFscwpAQCAtNzY2LDEyICsxMDI2LDI5IEBACiAgIGZhaWxpbmcgaWYgdGhlIGNvbm5lY3Rpb24gdXNlZCBhIHJvdyBmYWN0b3J5IChzdWNoIGFzIHNxbGl0ZTMuUm93KSB0aGF0CiAgIHByb2R1Y2VkIHVuc29ydGFibGUgb2JqZWN0cy4gKFJlZ3Jlc3Npb24gd2FzIGludHJvZHVjZWQgYnkgZml4IGZvciA5NzUwKS4KIAorLSBmY250bDogYWRkIEZfRFVQRkRfQ0xPRVhFQyBjb25zdGFudCwgYXZhaWxhYmxlIG9uIExpbnV4IDIuNi4yNCsuCisKIC0gSXNzdWUgIzE1OTcyOiBGaXggZXJyb3IgbWVzc2FnZXMgd2hlbiBvcyBmdW5jdGlvbnMgZXhwZWN0aW5nIGEgZmlsZSBuYW1lIG9yCiAgIGZpbGUgZGVzY3JpcHRvciByZWNlaXZlIHRoZSBpbmNvcnJlY3QgdHlwZS4KIAorLSBJc3N1ZSAjODEwOTogVGhlIHNzbCBtb2R1bGUgbm93IGhhcyBzdXBwb3J0IGZvciBzZXJ2ZXItc2lkZSBTTkksIHRoYW5rcworICB0byBhIDptZXRoOmBTU0xDb250ZXh0LnNldF9zZXJ2ZXJuYW1lX2NhbGxiYWNrYCBtZXRob2QuICBQYXRjaCBieSBEYW5pZWwKKyAgQmxhY2suCisKKy0gSXNzdWUgIzE2ODYwOiBJbiB0ZW1wZmlsZSwgdXNlIE9fQ0xPRVhFQyB3aGVuIGF2YWlsYWJsZSB0byBzZXQgdGhlCisgIGNsb3NlLW9uLWV4ZWMgZmxhZyBhdG9taWNhbGx5LgorCistIElzc3VlICMxNjY3NDogcmFuZG9tLmdldHJhbmRiaXRzKCkgaXMgbm93IDIwLTQwJSBmYXN0ZXIgZm9yIHNtYWxsIGludGVnZXJzLgorCistIElzc3VlICMxNjAwOTogSlNPTiBlcnJvciBtZXNzYWdlcyBub3cgcHJvdmlkZSBtb3JlIGluZm9ybWF0aW9uLgorCiAtIElzc3VlICMxNjgyODogRml4IGVycm9yIGluY29ycmVjdGx5IHJhaXNlZCBieSBiejIuY29tcHJlc3MoYicnKSBhbmQKICAgYnoyLkJaMkNvbXByZXNzb3IuY29tcHJlc3MoYicnKS4gSW5pdGlhbCBwYXRjaCBieSBNYXJ0aW4gUGFja21hbi4KIAorLSBJc3N1ZSAjMTY4MzM6IEluIGh0dHAuY2xpZW50LkhUVFBDb25uZWN0aW9uLCBkbyBub3QgY29uY2F0ZW5hdGUgdGhlIHJlcXVlc3QKKyAgaGVhZGVycyBhbmQgYm9keSB3aGVuIHRoZSBwYXlsb2FkIGV4Y2VlZHMgMTYgS0IsIHNpbmNlIGl0IGNhbiBjb25zdW1lIG1vcmUKKyAgbWVtb3J5IGZvciBubyBiZW5lZml0LiAgUGF0Y2ggYnkgQmVubm8gTGVzbGllLgorCiAtIElzc3VlICMxNjU0MTogdGtfc2V0UGFsZXR0ZSgpIG5vdyB3b3JrcyB3aXRoIGtleXdvcmQgYXJndW1lbnRzLgogCiAtIElzc3VlICMxNjgyMDogSW4gY29uZmlncGFyc2VyLCBgcGFyc2VyLnBvcGl0ZW0oKWAgbm8gbG9uZ2VyIHJhaXNlcyBWYWx1ZUVycm9yLgpAQCAtNzg3LDE0ICsxMDY0LDIxIEBACiAKIC0gSXNzdWUgIzk1ODY6IFJlZGVmaW5lIFNFTV9GQUlMRUQgb24gTWFjT1NYIHRvIGtlZXAgY29tcGlsZXIgaGFwcHkuCiAKKy0gSXNzdWUgIzE2Nzg3OiBJbmNyZWFzZSBhc3luY29yZSBhbmQgYXN5bmNoYXQgZGVmYXVsdCBvdXRwdXQgYnVmZmVycyBzaXplLCB0bworICBkZWNyZWFzZSBDUFUgdXNhZ2UgYW5kIGluY3JlYXNlIHRocm91Z2hwdXQuCisKIC0gSXNzdWUgIzEwNTI3OiBtYWtlIG11bHRpcHJvY2Vzc2luZyB1c2UgcG9sbCgpIGluc3RlYWQgb2Ygc2VsZWN0KCkgaWYgYXZhaWxhYmxlLgogCiAtIElzc3VlICMxNjY4ODogTm93IHJlZ2V4ZXMgY29udGFpbmVkIGJhY2tyZWZlcmVuY2VzIGNvcnJlY3RseSB3b3JrIHdpdGgKICAgbm9uLUFTQ0lJIHN0cmluZ3MuICBQYXRjaCBieSBNYXR0aGV3IEJhcm5ldHQuCiAKKy0gSXNzdWUgIzE2NDg2OiBNYWtlIGFpZmMgZmlsZXMgYWN0IGFzIGNvbnRleHQgbWFuYWdlcnMuCisKIC0gSXNzdWUgIzE2NDg1OiBOb3cgZmlsZSBkZXNjcmlwdG9ycyBhcmUgY2xvc2VkIGlmIGZpbGUgaGVhZGVyIHBhdGNoaW5nIGZhaWxlZAogICBvbiBjbG9zaW5nIGFuIGFpZmMgZmlsZS4KIAorLSBJc3N1ZSAjMTY2NDA6IFJ1biBsZXNzIGNvZGUgdW5kZXIgYSBsb2NrIGluIHNjaGVkIG1vZHVsZS4KKwogLSBJc3N1ZSAjMTYxNjU6IHNjaGVkLnNjaGVkdWxlci5ydW4oKSBubyBsb25nZXIgYmxvY2tzIGEgc2NoZWR1bGVyIGZvciBvdGhlcgogICB0aHJlYWRzLgogCkBAIC04MDQsNiArMTA4OCw4IEBACiAtIElzc3VlICMxNjYxODogTWFrZSBnbG9iLmdsb2IgbWF0Y2ggY29uc2lzdGVudGx5IGFjcm9zcyBzdHJpbmdzIGFuZCBieXRlcwogICByZWdhcmRpbmcgbGVhZGluZyBkb3RzLiAgUGF0Y2ggYnkgU2VyaGl5IFN0b3JjaGFrYS4KIAorLSBJc3N1ZSAjMTY3ODg6IEFkZCBzYW1lc3RhdCB0byBMaWIvbnRwYXRoLnB5CisKIC0gSXNzdWUgIzE2NzEzOiBQYXJzaW5nIG9mICd0ZWwnIHVybHMgdXNpbmcgdXJscGFyc2Ugc2VwYXJhdGVzIHBhcmFtcyBmcm9tCiAgIHBhdGguCiAKQEAgLTgyNSwxMCArMTExMSwyNSBAQAogICBzdXBwb3J0cyBhbGwgTm9uZSBkZWZhdWx0IHZhbHVlcyBwcmVzZW50IGluIGRlY2ltYWwucHkuIFRoZXNlIHZhbHVlcyB3ZXJlCiAgIGxhcmdlbHkgdW5kb2N1bWVudGVkLgogCistIElzc3VlICMxMTE3NTogYXJncGFyc2UuRmlsZVR5cGUgbm93IGFjY2VwdHMgZW5jb2RpbmcgYW5kIGVycm9ycworICBhcmd1bWVudHMuIFBhdGNoIGJ5IEx1Y2FzIE1heXN0cmUuCisKKy0gSXNzdWUgIzE2NDg4OiBlcG9sbCgpIG9iamVjdHMgbm93IHN1cHBvcnQgdGhlIGB3aXRoYCBzdGF0ZW1lbnQuICBQYXRjaAorICBieSBTZXJoaXkgU3RvcmNoYWthLgorCiAtIElzc3VlICMxNjI5ODogSW4gSFRUUFJlc3BvbnNlLnJlYWQoKSwgY2xvc2UgdGhlIHNvY2tldCB3aGVuIHRoZXJlIGlzIG5vCiAgIENvbnRlbnQtTGVuZ3RoIGFuZCB0aGUgaW5jb21pbmcgc3RyZWFtIGlzIGZpbmlzaGVkLiAgUGF0Y2ggYnkgRXJhbgogICBSdW5kc3RlaW4uCiAKKy0gQWRkIGFiYy5BQkMgY2xhc3MgdG8gdXNlIGluaGVyaXRhbmNlIHJhdGhlciB0aGFuIGEgZGlyZWN0IGludm9jYXRpb24gb2YKKyAgQUJDTWV0YSBtZXRhY2xhc3MuIFBhdGNoIGJ5IEJydW5vIER1cHVpcy4KKworLSBFeHBvc2UgdGhlIFRDUF9GQVNUT1BFTiBhbmQgTVNHX0ZBU1RPUEVOIGZsYWdzIGluIHNvY2tldCB3aGVuIHRoZXkncmUKKyAgYXZhaWxhYmxlLgorCistIElzc3VlICMxNTcwMTogQWRkIGEgLmhlYWRlcnMgYXR0cmlidXRlIHRvIHVybGxpYi5lcnJvci5IVFRQRXJyb3IuIFBhdGNoCisgIGNvbnRyaWJ1dGVkIGJ5IEJlcmtlciBQZWtzYWcuCisKIC0gSXNzdWUgIzE1ODcyOiBGaXggMy4zIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieSB0aGUgbmV3IGZkLWJhc2VkIHNodXRpbC5ybXRyZWUKICAgdGhhdCBjYXVzZWQgaXQgdG8gbm90IGlnbm9yZSBjZXJ0YWluIGVycm9ycyB3aGVuIGlnbm9yZV9lcnJvcnMgd2FzIHNldC4KICAgUGF0Y2ggYnkgQWxlc3NhbmRybyBNb3VyYSBhbmQgU2VyaGl5IFN0b3JjaGFrYS4KQEAgLTgzNiw2ICsxMTM3LDkgQEAKIC0gSXNzdWUgIzE2MjQ4OiBEaXNhYmxlIGNvZGUgZXhlY3V0aW9uIGZyb20gdGhlIHVzZXIncyBob21lIGRpcmVjdG9yeSBieQogICB0a2ludGVyIHdoZW4gdGhlIC1FIGZsYWcgaXMgcGFzc2VkIHRvIFB5dGhvbi4gIFBhdGNoIGJ5IFphY2hhcnkgV2FyZS4KIAorLSBJc3N1ZSAjMTMzOTA6IE5ldyBmdW5jdGlvbiA6ZnVuYzpgc3lzLmdldGFsbG9jYXRlZGJsb2NrcygpYCByZXR1cm5zIHRoZQorICBudW1iZXIgb2YgbWVtb3J5IGJsb2NrcyBjdXJyZW50bHkgYWxsb2NhdGVkLgorCiAtIElzc3VlICMxNjYyODogRml4IGEgbWVtb3J5IGxlYWsgaW4gY3R5cGVzLnJlc2l6ZSgpLgogCiAtIElzc3VlICMxMzYxNDogRml4IHNldHVwLnB5IHJlZ2lzdGVyIGZhaWx1cmUgd2l0aCBpbnZhbGlkIHJzdCBpbiBkZXNjcmlwdGlvbi4KQEAgLTg1Niw2ICsxMTYwLDkgQEAKIC0gSXNzdWUgIzEwMTgyOiBUaGUgcmUgbW9kdWxlIGRvZXNuJ3QgdHJ1bmNhdGUgaW5kaWNlcyB0byAzMiBiaXRzIGFueW1vcmUuCiAgIFBhdGNoIGJ5IFNlcmhpeSBTdG9yY2hha2EuCiAKKy0gSXNzdWUgIzE2MzMzOiB1c2UgKCIsIiwgIjogIikgYXMgZGVmYXVsdCBzZXBhcmF0b3Igd2hlbiBpbmRlbnQgaXMgc3BlY2lmaWVkCisgIHRvIGF2b2lkIHRyYWlsaW5nIHdoaXRlc3BhY2UuICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgorCiAtIElzc3VlICMxNjU3MzogSW4gMnRvMywgdHJlYXQgZW51bWVyYXRlKCkgbGlrZSBhIGNvbnN1bWluZyBjYWxsLCBzbyBzdXBlcmZsdW91cwogICBsaXN0KCkgY2FsbHMgYXJlbid0IGFkZGVkIHRvIGZpbHRlcigpLCBtYXAoKSwgYW5kIHppcCgpIHdoaWNoIGFyZSBkaXJlY3RseQogICBwYXNzZWQgZW51bWVyYXRlKCkuCkBAIC04NjQsMTcgKzExNzEsNDYgQEAKICAgbGVuZ3RocyBhcyB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlcnMsIGxpa2UgdGhlIEMgaW1wbGVtZW50YXRpb24gZG9lcy4KICAgUGF0Y2ggYnkgU2VyaGl5IFN0b3JjaGFrYS4KIAorLSBJc3N1ZSAjMTY0MjM6IHVybGxpYi5yZXF1ZXN0IG5vdyBoYXMgc3VwcG9ydCBmb3IgYGBkYXRhOmBgIFVSTHMuICBQYXRjaCBieQorICBNYXRoaWFzIFBhbnplbmLDtmNrLgorCistIElzc3VlICM0NDczOiBBZGQgYSBQT1AzLnN0bHMoKSB0byBzd2l0Y2ggYSBjbGVhci10ZXh0IFBPUDMgc2Vzc2lvbiBpbnRvCisgIGFuIGVuY3J5cHRlZCBQT1AzIHNlc3Npb24sIG9uIHN1cHBvcnRlZCBzZXJ2ZXJzLiAgUGF0Y2ggYnkgTG9yZW56byBDYXR1Y2NpLgorCistIElzc3VlICM0NDczOiBBZGQgYSBQT1AzLmNhcGEoKSBtZXRob2QgdG8gcXVlcnkgdGhlIGNhcGFiaWxpdGllcyBhZHZlcnRpc2VkCisgIGJ5IHRoZSBQT1AzIHNlcnZlci4gIFBhdGNoIGJ5IExvcmVuem8gQ2F0dWNjaS4KKworLSBJc3N1ZSAjNDQ3MzogRW5zdXJlIHRoZSBzb2NrZXQgaXMgc2h1dGRvd24gY2xlYW5seSBpbiBQT1AzLmNsb3NlKCkuCisgIFBhdGNoIGJ5IExvcmVuem8gQ2F0dWNjaS4KKworLSBJc3N1ZSAjMTY1MjI6IGFkZGVkIEZBSUxfRkFTVCBmbGFnIHRvIGRvY3Rlc3QuCisKKy0gSXNzdWUgIzE1NjI3OiBBZGQgdGhlIGltcG9ydGxpYi5hYmMuSW5zcGVjdExvYWRlci5zb3VyY2VfdG9fY29kZSgpIG1ldGhvZC4KKwogLSBJc3N1ZSAjMTY0MDg6IEZpeCBmaWxlIGRlc2NyaXB0b3JzIG5vdCBiZWluZyBjbG9zZWQgaW4gZXJyb3IgY29uZGl0aW9ucwogICBpbiB0aGUgemlwZmlsZSBtb2R1bGUuICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgogCistIElzc3VlICMxNDYzMTogQWRkIGEgbmV3IDpjbGFzczpgd2Vha3JlZi5XZWFrTWV0aG9kYCB0byBzaW11bGF0ZSB3ZWFrCisgIHJlZmVyZW5jZXMgdG8gYm91bmQgbWV0aG9kcy4KKworLSBJc3N1ZSAjMTY0Njk6IEZpeCBleGNlcHRpb25zIGZyb20gZmxvYXQgLT4gRnJhY3Rpb24gYW5kIERlY2ltYWwgLT4gRnJhY3Rpb24KKyAgY29udmVyc2lvbnMgZm9yIHNwZWNpYWwgdmFsdWVzIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aG9zZSBmb3IgZmxvYXQgLT4gaW50CisgIGFuZCBEZWNpbWFsIC0+IGludC4gIFBhdGNoIGJ5IEFsZXhleSBLYWNoYXlldi4KKwogLSBJc3N1ZSAjMTY0ODE6IG11bHRpcHJvY2Vzc2luZyBubyBsb25nZXIgbGVha3MgcHJvY2VzcyBoYW5kbGVzIG9uIFdpbmRvd3MuCiAKKy0gSXNzdWUgIzEyNDI4OiBBZGQgYSBwdXJlIFB5dGhvbiBpbXBsZW1lbnRhdGlvbiBvZiBmdW5jdG9vbHMucGFydGlhbCgpLgorICBQYXRjaCBieSBCcmlhbiBUaG9ybmUuCisKIC0gSXNzdWUgIzE2MTQwOiBUaGUgc3VicHJvY2VzcyBtb2R1bGUgbm8gbG9uZ2VyIGRvdWJsZSBjbG9zZXMgaXRzIGNoaWxkCiAgIHN1YnByb2Nlc3MuUElQRSBwYXJlbnQgZmlsZSBkZXNjcmlwdG9ycyBvbiBjaGlsZCBlcnJvciBwcmlvciB0byBleGVjKCkuCiAKIC0gUmVtb3ZlIGEgYmFyZSBwcmludCB0byBzdGRvdXQgZnJvbSB0aGUgc3VicHJvY2VzcyBtb2R1bGUgdGhhdCBjb3VsZCBoYXZlCiAgIGhhcHBlbmVkIGlmIHRoZSBjaGlsZCBwcm9jZXNzIHdyb3RlIGdhcmJhZ2UgdG8gaXRzIHByZS1leGVjIGVycm9yIHBpcGUuCiAKKy0gVGhlIHN1YnByb2Nlc3MgbW9kdWxlIG5vdyByYWlzZXMgaXRzIG93biBTdWJwcm9jZXNzRXJyb3IgaW5zdGVhZCBvZiBhCisgIFJ1bnRpbWVFcnJvciBpbiB2YXJpb3VzIGVycm9yIHNpdHVhdGlvbnMgd2hpY2ggc2hvdWxkIG5vdCBub3JtYWxseSBoYXBwZW4uCisKIC0gSXNzdWUgIzE2MzI3OiBUaGUgc3VicHJvY2VzcyBtb2R1bGUgbm8gbG9uZ2VyIGxlYWtzIGZpbGUgZGVzY3JpcHRvcnMKICAgdXNlZCBmb3Igc3RkaW4vc3Rkb3V0L3N0ZGVyciBwaXBlcyB0byB0aGUgY2hpbGQgd2hlbiBmb3JrKCkgZmFpbHMuCiAKQEAgLTg5NSw2ICsxMjMxLDkgQEAKIC0gSXNzdWUgIzE2NDMxOiBVc2UgdGhlIHR5cGUgaW5mb3JtYXRpb24gd2hlbiBjb25zdHJ1Y3RpbmcgYSBEZWNpbWFsIHN1YnR5cGUKICAgZnJvbSBhIERlY2ltYWwgYXJndW1lbnQuCiAKKy0gSXNzdWUgIzE1NjQxOiBDbGVhbiB1cCBkZXByZWNhdGVkIGNsYXNzZXMgZnJvbSBpbXBvcnRsaWIKKyAgUGF0Y2ggYnkgVGFyYXMgTHlhcHVuLgorCiAtIElzc3VlICMxNjM1MDogemxpYi5kZWNvbXByZXNzb2JqKCkuZGVjb21wcmVzcygpIG5vdyBhY2N1bXVsYXRlcyBkYXRhIGZyb20KICAgc3VjY2Vzc2l2ZSBjYWxscyBhZnRlciBFT0YgaW4gdW51c2VkX2RhdGEsIGluc3RlYWQgb2Ygb25seSBzYXZpbmcgdGhlIGFyZ3VtZW50CiAgIHRvIHRoZSBsYXN0IGNhbGwuIGRlY29tcHJlc3NvYmooKS5mbHVzaCgpIG5vdyBjb3JyZWN0bHkgc2V0cyB1bnVzZWRfZGF0YSBhbmQKQEAgLTkwNywzMCArMTI0Niw1NyBAQAogLSBJc3N1ZSAjMTYxNTI6IGZpeCB0b2tlbml6ZSB0byBpZ25vcmUgd2hpdGVzcGFjZSBhdCB0aGUgZW5kIG9mIHRoZSBjb2RlIHdoZW4KICAgbm8gbmV3bGluZSBpcyBmb3VuZC4gIFBhdGNoIGJ5IE5lZCBCYXRjaGVsZGVyLgogCistIElzc3VlICMxNjI4NDogUHJldmVudCBrZWVwaW5nIHVubmVjZXNzYXJ5IHJlZmVyZW5jZXMgdG8gd29ya2VyIGZ1bmN0aW9ucworICBpbiBjb25jdXJyZW50LmZ1dHVyZXMgVGhyZWFkUG9vbEV4ZWN1dG9yLgorCiAtIElzc3VlICMxNjIzMDogRml4IGEgY3Jhc2ggaW4gc2VsZWN0LnNlbGVjdCgpIHdoZW4gb25lIHRoZSBsaXN0cyBjaGFuZ2VzCiAgIHNpemUgd2hpbGUgaXRlcmF0ZWQgb24uICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgogCiAtIElzc3VlICMxNjIyODogRml4IGEgY3Jhc2ggaW4gdGhlIGpzb24gbW9kdWxlIHdoZXJlIGEgbGlzdCBjaGFuZ2VzIHNpemUKICAgd2hpbGUgaXQgaXMgYmVpbmcgZW5jb2RlZC4gIFBhdGNoIGJ5IFNlcmhpeSBTdG9yY2hha2EuCiAKKy0gSXNzdWUgIzE2MzUxOiBOZXcgZnVuY3Rpb24gZ2MuZ2V0X3N0YXRzKCkgcmV0dXJucyBwZXItZ2VuZXJhdGlvbiBjb2xsZWN0aW9uCisgIHN0YXRpc3RpY3MuCisKIC0gSXNzdWUgIzE0ODk3OiBFbmhhbmNlIGVycm9yIG1lc3NhZ2VzIG9mIHN0cnVjdC5wYWNrIGFuZAogICBzdHJ1Y3QucGFja19pbnRvLiBQYXRjaCBieSBNYXR0aSBNw6RraS4KIAorLSBJc3N1ZSAjMTYzMTY6IG1pbWV0eXBlcyBub3cgcmVjb2duaXplcyB0aGUgLnh6IGFuZCAudHh6ICgudGFyLnh6KSBleHRlbnNpb25zLgorICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgorCiAtIElzc3VlICMxMjg5MDogY2dpdGIgbm8gbG9uZ2VyIHByaW50cyBzcHVyaW91cyA8cD4gdGFncyBpbiB0ZXh0CiAgIG1vZGUgd2hlbiB0aGUgbG9nZGlyIG9wdGlvbiBpcyBzcGVjaWZpZWQuCiAKIC0gSXNzdWUgIzE2MzA3OiBGaXggbXVsdGlwcm9jZXNzaW5nLlBvb2wubWFwX2FzeW5jIG5vdCBjYWxsaW5nIGl0cyBjYWxsYmFja3MuCiAgIFBhdGNoIGJ5IEphbm5lIEthcmlsYS4KIAotLSBJc3N1ZSAjMTYyNTA6IEZpeCBVUkxFcnJvciBpbnZvY2F0aW9uIHdpdGggcHJvcGVyIGFyZ3MuCistIElzc3VlICMxNjMwNTogRml4IGEgc2VnbWVudGF0aW9uIGZhdWx0IG9jY3VycmluZyB3aGVuIGludGVycnVwdGluZworICBtYXRoLmZhY3RvcmlhbC4KIAogLSBJc3N1ZSAjMTYxMTY6IEZpeCBpbmNsdWRlIGFuZCBsaWJyYXJ5IHBhdGhzIHRvIGJlIGNvcnJlY3Qgd2hlbiBidWlsZGluZyBDCiAgIGV4dGVuc2lvbnMgaW4gdmVudnMuCiAKIC0gSXNzdWUgIzE2MjQ1OiBGaXggdGhlIHZhbHVlIG9mIGEgZmV3IGVudGl0aWVzIGluIGh0bWwuZW50aXRpZXMuaHRtbDUuCiAKKy0gSXNzdWUgIzE2MzAxOiBGaXggdGhlIGxvY2FsaG9zdCB2ZXJpZmljYXRpb24gaW4gdXJsbGliL3JlcXVlc3QucHkgZm9yIGZpbGU6Ly8KKyAgdXJscy4KKworLSBJc3N1ZSAjMTYyNTA6IEZpeCB0aGUgaW52b2NhdGlvbnMgb2YgVVJMRXJyb3Igd2hpY2ggaGFkIG1pc3BsYWNlZCBmaWxlbmFtZQorICBhdHRyaWJ1dGUgZm9yIGV4Y2VwdGlvbi4KKworLSBJc3N1ZSAjMTA4MzY6IEZpeCBleGNlcHRpb24gcmFpc2VkIHdoZW4gZmlsZSBub3QgZm91bmQgaW4gdXJscmV0cmlldmUKKyAgSW5pdGlhbCBwYXRjaCBieSBFemlvIE1lbG90dGkuCisKIC0gSXNzdWUgIzE0Mzk4OiBGaXggc2l6ZSB0cnVuY2F0aW9uIGFuZCBvdmVyZmxvdyBidWdzIGluIHRoZSBiejIgbW9kdWxlLgogCistIElzc3VlICMxMjY5MjogRml4IHJlc291cmNlIGxlYWsgaW4gdXJsbGliLnJlcXVlc3Qgd2hlbiB0YWxraW5nIHRvIGFuIEhUVFAKKyAgc2VydmVyIHRoYXQgZG9lcyBub3QgaW5jbHVkZSBhICJDb25uZWN0aW9uOiBjbG9zZSIgaGVhZGVyIGluIGl0cyByZXNwb25zZXMuCisKKy0gSXNzdWUgIzEyMDM0OiBGaXggYm9ndXMgY2FjaGluZyBvZiByZXN1bHQgaW4gY2hlY2tfR2V0RmluYWxQYXRoTmFtZUJ5SGFuZGxlLgorICBQYXRjaCBieSBBdHN1byBJc2hpbW90by4KKworLSBJbXByb3ZlIHBlcmZvcm1hbmNlIG9mIGBsem1hLkxaTUFGaWxlYC4KKwogLSBJc3N1ZSAjMTYyMjA6IHdzZ2lyZWYgbm93IGFsd2F5cyBjYWxscyBjbG9zZSgpIG9uIGFuIGl0ZXJhYmxlIHJlc3BvbnNlLgogICBQYXRjaCBieSBCcmVudCBUdWJicy4KIApAQCAtOTQyLDI3ICsxMzA4LDM3IEBACiAKIC0gSXNzdWUgIzE2MTc2OiBQcm9wZXJseSBpZGVudGlmeSBXaW5kb3dzIDggdmlhIHBsYXRmb3JtLnBsYXRmb3JtKCkKIAorLSBJc3N1ZSAjMTYwODg6IEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIncyBzZW5kX2Vycm9yIG1ldGhvZCBpbmNsdWRlcyBhCisgIENvbnRlbnQtTGVuZ3RoIGhlYWRlciBpbiBpdCdzIHJlc3BvbnNlIG5vdy4gUGF0Y2ggYnkgQW50b2luZSBQaXRyb3UuCisKIC0gSXNzdWUgIzE2MTE0OiBUaGUgc3VicHJvY2VzcyBtb2R1bGUgbm8gbG9uZ2VyIHByb3ZpZGVzIGEgbWlzbGVhZGluZyBlcnJvcgogICBtZXNzYWdlIHN0YXRpbmcgdGhhdCBhcmdzWzBdIGRpZCBub3QgZXhpc3Qgd2hlbiBlaXRoZXIgdGhlIGN3ZCBvciBleGVjdXRhYmxlCiAgIGtleXdvcmQgYXJndW1lbnRzIHNwZWNpZmllZCBhIHBhdGggdGhhdCBkaWQgbm90IGV4aXN0LgogCiAtIElzc3VlICMxNjE2OTogRml4IGN0eXBlcy5XaW5FcnJvcigpJ3MgY29uZnVzaW9uIGJldHdlZW4gZXJybm8gYW5kIHdpbmVycm9yLgogCi0tIElzc3VlICMxNjA3NjogTWFkZSBfZWxlbWVudHRyZWUuRWxlbWVudCBwaWNrbGVhYmxlIGluIGEgd2F5IHRoYXQgaXMgY29tcGF0aWJsZQotICB3aXRoIHRoZSBQeXRob24gRWxlbWVudC4gUGlja2xpbmcvdW5waWNrbGluZyBvZiB4bWwuZXRyZWUuRWxlbWVudFRyZWUuRWxlbWVudAotICB3b3JrcyBhZ2FpbiAtIHRoaXMgd2FzIGEgdGVtcG9yYXJ5IHJlZ3Jlc3Npb24gZnJvbSAzLjIgd2hlcmUgdGhlIGJ5LWRlZmF1bHQKLSAgaW1wb3J0ZWQgX2VsZW1lbnR0cmVlIGhhZCBubyBwaWNrbGluZyBjYXBhYmlsaXR5LgorLSBJc3N1ZSAjMTQ5MjcwNDogc2h1dGlsLmNvcHlmaWxlKCkgcmFpc2VzIGEgZGlzdGluY3QgU2FtZUZpbGVFcnJvciBub3cgaWYKKyAgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBhcmUgdGhlIHNhbWUgZmlsZS4gUGF0Y2ggYnkgQXRzdW8gSXNoaW1vdG8uCisKKy0gSXNzdWUgIzEzODk2OiBNYWtlIHNoZWxmIGluc3RhbmNlcyB3b3JrIHdpdGggJ3dpdGgnIGFzIGNvbnRleHQgbWFuYWdlcnMuCisgIE9yaWdpbmFsIHBhdGNoIGJ5IEZpbGlwIEdydXN6Y3p5xYRza2kuCisKKy0gSXNzdWUgIzE1NDE3OiBBZGQgc3VwcG9ydCBmb3IgY3NoIGFuZCBmaXNoIGluIHZlbnYgYWN0aXZhdGlvbiBzY3JpcHRzLgorCistIElzc3VlICMxNDM3NzogRWxlbWVudFRyZWUud3JpdGUgYW5kIHNvbWUgb2YgdGhlIG1vZHVsZS1sZXZlbCBmdW5jdGlvbnMgaGF2ZQorICBhIG5ldyBwYXJhbWV0ZXIgLSAqc2hvcnRfZW1wdHlfZWxlbWVudHMqLiBJdCBjb250cm9scyBob3cgZWxlbWVudHMgd2l0aCBubworICBjb250ZW50cyBhcmUgZW1pdHRlZC4KIAogLSBJc3N1ZSAjMTYwODk6IEFsbG93IEVsZW1lbnRUcmVlLlRyZWVCdWlsZGVyIHRvIHdvcmsgYWdhaW4gd2l0aCBhIG5vbi1FbGVtZW50CiAgIGVsZW1lbnRfZmFjdG9yeSAoZml4ZXMgYSByZWdyZXNzaW9uIGluIFNpbXBsZVRBTCkuCiAKLS0gSXNzdWUgIzE2OTEzOiBGaXggRWxlbWVudC5pdGVydGV4dCgpJ3MgaGFuZGxpbmcgb2YgdGV4dCB3aXRoIFhNTCBlbnRpdGllcy4sCistIElzc3VlICM5NjUwOiBMaXN0IGNvbW1vbmx5IHVzZWQgZm9ybWF0IGNvZGVzIGluIHRpbWUuc3RyZnRpbWUgYW5kCisgIHRpbWUuc3RycHRpbWUgZG9jc3R0aW5ncy4gIE9yaWdpbmFsIHBhdGNoIGJ5IE1pa2UgSG95LgogCiAtIElzc3VlICMxNjAzNDogRml4IHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb25zIGluIHRoZSBuZXcgYGJ6Mi5CWjJGaWxlYAogICBpbXBsZW1lbnRhdGlvbi4gIEluaXRpYWwgcGF0Y2ggYnkgU2VyaGl5IFN0b3JjaGFrYS4KIAotLSBJc3N1ZSAjMTYxMTI6IHBsYXRmb3JtLmFyY2hpdGVjdHVyZSBkb2VzIG5vdCBjb3JyZWN0bHkgZXNjYXBlIGFyZ3VtZW50IHRvCi0gIC91c3IvYmluL2ZpbGUuICBQYXRjaCBieSBEYXZpZCBCZW5qYW1pbi4KKy0gYHB0eS5zcGF3bigpYCBub3cgcmV0dXJucyB0aGUgY2hpbGQgcHJvY2VzcyBzdGF0dXMgcmV0dXJuZWQgYnkgYG9zLndhaXRwaWQoKWAuCiAKIC0gSXNzdWUgIzE1NzU2OiBgc3VicHJvY2Vzcy5wb2xsKClgIG5vdyBwcm9wZXJseSBoYW5kbGVzIGBlcnJuby5FQ0hJTERgIHRvCiAgIHJldHVybiBhIHJldHVybmNvZGUgb2YgMCB3aGVuIHRoZSBjaGlsZCBoYXMgYWxyZWFkeSBleGl0ZWQgb3IgY2Fubm90IGJlIHdhaXRlZApAQCAtOTgyLDYgKzEzNTgsOSBAQAogLSBJc3N1ZSAjMTU0MjE6IEZpeCBhbiBPdmVyZmxvd0Vycm9yIGluIGBDYWxlbmRhci5pdGVybW9udGhkYXRlcygpYCBhZnRlcgogICBgZGF0ZXRpbWUuTUFYWUVBUmAuICBQYXRjaCBieSBDw6lkcmljIEtyaWVyLgogCistIElzc3VlICMxNjExMjogcGxhdGZvcm0uYXJjaGl0ZWN0dXJlIGRvZXMgbm90IGNvcnJlY3RseSBlc2NhcGUgYXJndW1lbnQgdG8KKyAgL3Vzci9iaW4vZmlsZS4gIFBhdGNoIGJ5IERhdmlkIEJlbmphbWluLgorCiAtIElzc3VlICMxNTk3MDogYHhtbC5ldHJlZS5FbGVtZW50VHJlZWAgbm93IHNlcmlhbGl6ZXMgY29ycmVjdGx5IHRoZSBlbXB0eSBIVE1MCiAgIGVsZW1lbnRzICdtZXRhJyBhbmQgJ3BhcmFtJy4KIApAQCAtMTAwNCwyMiArMTM4Myw2MSBAQAogICBQb3BlbiB3aGVuIGBgJWFjdGlvbmBgIHN1YnN0aXR1dGlvbnMgcHJvZHVjZSBlbXB0eSBzdHJpbmdzLgogCiAtIElzc3VlICMxMjc3NiwgaXNzdWUgIzExODM5OiBDYWxsIGBhcmdwYXJzZWAgdHlwZSBmdW5jdGlvbiAoc3BlY2lmaWVkIGJ5Ci0gIGFkZF9hcmd1bWVudCkgb25seSBvbmNlLiAgQmVmb3JlLCB0aGUgdHlwZSBmdW5jdGlvbiB3YXMgY2FsbGVkIHR3aWNlIGluIHRoZQorICBhZGRfYXJndW1lbnQpIG9ubHkgb25jZS4gQmVmb3JlLCB0aGUgdHlwZSBmdW5jdGlvbiB3YXMgY2FsbGVkIHR3aWNlIGluIHRoZQogICBjYXNlIHdoZXJlIHRoZSBkZWZhdWx0IHdhcyBzcGVjaWZpZWQgYW5kIHRoZSBhcmd1bWVudCB3YXMgZ2l2ZW4gYXMgd2VsbC4gIFRoaXMKICAgd2FzIGVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgZm9yIHRoZSBGaWxlVHlwZSB0eXBlLCBhcyBhIGRlZmF1bHQgZmlsZSB3b3VsZAogICBhbHdheXMgYmUgb3BlbmVkLCBldmVuIGlmIGEgZmlsZSBhcmd1bWVudCB3YXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCiAKLS0gSXNzdWUgIzE1OTA2OiBGaXggYSByZWdyZXNzaW9uIGluIGBhcmdwYXJzZWAgY2F1c2VkIGJ5IHRoZSBwcmVjZWRpbmcgY2hhbmdlLAorLSBJc3N1ZSAjMTU5MDY6IEZpeCBhIHJlZ3Jlc3Npb24gaW4gYXJncGFyc2UgY2F1c2VkIGJ5IHRoZSBwcmVjZWRpbmcgY2hhbmdlLAogICB3aGVuIGBgYWN0aW9uPSdhcHBlbmQnYGAsIGBgdHlwZT0nc3RyJ2BgIGFuZCBgYGRlZmF1bHQ9W11gYC4KIAorLSBJc3N1ZSAjMTYxMTM6IEFkZGVkIHNoYTMgbW9kdWxlIGJhc2VkIG9uIHRoZSBLZWNjYWsgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uCisgIDMuMi4gVGhlIGBoYXNobGliYCBtb2R1bGUgaGFzIGZvdXIgYWRkaXRpb25hbCBoYXNoIGFsZ29yaXRobXM6IGBzaGEzXzIyNGAsCisgIGBzaGEzXzI1NmAsIGBzaGEzXzM4NGAgYW5kIGBzaGEzXzUxMmAuIEFzIHBhcnQgb2YgdGhlIHBhdGNoIHNvbWUgY29tbW9uCisgIGNvZGUgd2FzIG1vdmVkIGZyb20gX2hhc2hvcGVuc3NsLmMgdG8gaGFzaGxpYi5oLgorCistIGN0eXBlcy5jYWxsX2NvbW1ldGhvZCB3YXMgcmVtb3ZlZCwgc2luY2UgaXRzIG9ubHkgdXNhZ2Ugd2FzIGluIHRoZSBkZWZ1bmN0CisgIHNhbXBsZXMgZGlyZWN0b3J5LgorCistIElzc3VlICMxNjY5MjogQWRkZWQgVExTdjEuMSBhbmQgVExTdjEuMiBzdXBwb3J0IGZvciB0aGUgc3NsIG1vZHVsZXMuCisKKy0gSXNzdWUgIzE2ODMyOiBhZGQgYWJjLmdldF9jYWNoZV90b2tlbigpIHRvIGV4cG9zZSBjYWNoZSB2YWxpZGl0eSBjaGVja2luZworICBzdXBwb3J0IGluIEFCQ01ldGEuCisKIElETEUKIC0tLS0KIAorLSBJc3N1ZSAjMTc1ODU6IEZpeGVkIElETEUgcmVncmVzc2lvbi4gTm93IGNsb3NlcyB3aGVuIHVzaW5nIGV4aXQoKSBvciBxdWl0KCkuCisKKy0gSXNzdWUgIzE3NjU3OiBTaG93IGZ1bGwgVGsgdmVyc2lvbiBpbiBJRExFJ3MgYWJvdXQgZGlhbG9nLgorICBQYXRjaCBieSBUb2RkIFJvdml0by4KKworLSBJc3N1ZSAjMTc2MTM6IFByZXZlbnQgdHJhY2ViYWNrIHdoZW4gcmVtb3Zpbmcgc3ludGF4IGNvbG9yaXplciBpbiBJRExFLgorCistIElzc3VlICMxMjA3NTg5OiBCYWNrd2FyZHMtY29tcGF0aWJpbGl0eSBwYXRjaCBmb3IgcmlnaHQtY2xpY2sgbWVudSBpbiBJRExFLgorCistIElzc3VlICMxNjg4NzogSURMRSBub3cgYWNjZXB0cyBDYW5jZWwgaW4gdGFiaWZ5L3VudGFiaWZ5IGRpYWxvZyBib3guCisKKy0gSXNzdWUgIzE3NjI1OiBJbiBJRExFLCBjbG9zZSB0aGUgcmVwbGFjZSBkaWFsb2cgYWZ0ZXIgaXQgaXMgdXNlZC4KKworLSBJc3N1ZSAjMTQyNTQ6IElETEUgbm93IGhhbmRsZXMgcmVhZGxpbmUgY29ycmVjdGx5IGFjcm9zcyBzaGVsbCByZXN0YXJ0cy4KKworLSBJc3N1ZSAjMTc2MTQ6IElETEUgbm8gbG9uZ2VyIHJhaXNlcyBleGNlcHRpb24gd2hlbiBxdWlja2x5IGNsb3NpbmcgYSBmaWxlLgorCistIElzc3VlICM2Njk4OiBJRExFIG5vdyBvcGVucyBqdXN0IGFuIGVkaXRvciB3aW5kb3cgd2hlbiBjb25maWd1cmVkIHRvIGRvIHNvLgorCistIElzc3VlICM4OTAwOiBVc2luZyBrZXlib2FyZCBzaG9ydGN1dHMgaW4gSURMRSB0byBvcGVuIGEgZmlsZSBubyBsb25nZXIKKyAgcmFpc2VzIGFuIGV4Y2VwdGlvbi4KKworLSBJc3N1ZSAjNjY0OTogRml4ZWQgbWlzc2luZyBleGl0IHN0YXR1cyBpbiBJRExFLiBQYXRjaCBieSBHdWlsaGVybWUgUG9sby4KKwogLSBJc3N1ZSAjMTcxMTQ6IElETEUgbm93IHVzZXMgbm9uLXN0cmljdCBjb25maWcgcGFyc2VyLgogCiAtIElzc3VlICM5MjkwOiBJbiBJRExFIHRoZSBzeXMuc3RkKiBzdHJlYW1zIG5vdyBpbXBsZW1lbnQgaW8uVGV4dElPQmFzZQogICBpbnRlcmZhY2UgYW5kIHN1cHBvcnQgYWxsIG1hbmRhdG9yeSBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzLgogCistIElzc3VlICM1MDY2OiBVcGRhdGUgSURMRSBkb2NzLiBQYXRjaCBieSBUb2RkIFJvdml0by4KKwogLSBJc3N1ZSAjMTY4Mjk6IElETEUgcHJpbnRpbmcgbm8gbG9uZ2VyIGZhaWxzIGlmIHRoZXJlIGFyZSBzcGFjZXMgb3Igb3RoZXIKICAgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIHRoZSBmaWxlIHBhdGguCiAKQEAgLTEwMzYsNiArMTQ1NCw5IEBACiAtIElzc3VlICMxMjA3NTg5OiBBZGQgQ3V0L0NvcHkvUGFzdGUgaXRlbXMgdG8gSURMRSByaWdodCBjbGljayBDb250ZXh0IE1lbnUKICAgUGF0Y2ggYnkgVG9kZCBSb3ZpdG8uCiAKKy0gSXNzdWUgIzE2MTIzOiBJRExFIC0gZGVwcmVjYXRlIHJ1bm5pbmcgd2l0aG91dCBhIHN1YnByb2Nlc3MuCisgIFBhdGNoIGJ5IFJvZ2VyIFNlcnd5LgorCiBUZXN0cwogLS0tLS0KIApAQCAtMTA1Niw4ICsxNDc3LDE1IEBACiAKIC0gSXNzdWUgIzEzODk4OiB0ZXN0X3NzbCBubyBsb25nZXIgcHJpbnRzIGEgc3B1cmlvdXMgc3RhY2sgdHJhY2Ugb24gVWJ1bnR1LgogCistIElzc3VlICMxNzI4MzogU2hhcmUgY29kZSBiZXR3ZWVuIGBfX21haW5fXy5weWAgYW5kIGByZWdydGVzdC5weWAgaW4KKyAgYExpYi90ZXN0YC4KKwogLSBJc3N1ZSAjMTcyNDk6IGNvbnZlcnQgYSB0ZXN0IGluIHRlc3RfY2FwaSB0byB1c2UgdW5pdHRlc3QgYW5kIHJlYXAgdGhyZWFkcy4KIAorLSBJc3N1ZSAjMTcxMDc6IFRlc3QgY2xpZW50LXNpZGUgU05JIHN1cHBvcnQgaW4gdXJsbGliLnJlcXVlc3QgdGhhbmtzIHRvCisgIHRoZSBuZXcgc2VydmVyLXNpZGUgU05JIHN1cHBvcnQgaW4gdGhlIHNzbCBtb2R1bGUuICBJbml0aWFsIHBhdGNoIGJ5CisgIERhbmllbCBCbGFjay4KKwogLSBJc3N1ZSAjMTcwNDE6IEZpeCB0ZXN0aW5nIHdoZW4gUHl0aG9uIGlzIGNvbmZpZ3VyZWQgd2l0aCB0aGUKICAgLS13aXRob3V0LWRvYy1zdHJpbmdzLgogCkBAIC0xMDY1LDYgKzE0OTMsOCBAQAogCiAtIElzc3VlICMxNTUzOTogQWRkZWQgcmVncmVzc2lvbiB0ZXN0cyBmb3IgVG9vbHMvc2NyaXB0cy9waW5kZW50LnB5LgogCistIElzc3VlICMxNjgzNjogRW5hYmxlIElQdjYgc3VwcG9ydCBldmVuIGlmIElQdjYgaXMgZGlzYWJsZWQgb24gdGhlIGJ1aWxkIGhvc3QuCisKIC0gSXNzdWUgIzE3NDc5OiB0ZXN0X2lvIG5vdyB3b3JrcyB3aXRoIHVuaXR0ZXN0IHRlc3QgZGlzY292ZXJ5LgogICBQYXRjaCBieSBaYWNoYXJ5IFdhcmUuCiAKQEAgLTExMjQsNiArMTU1NCwxMSBAQAogCiAtIElzc3VlICMxNjc0ODogdGVzdF9oZWFwcSBub3cgd29ya3Mgd2l0aCB1bml0dGVzdCB0ZXN0IGRpc2NvdmVyeS4KIAorLSBJc3N1ZSAjMTA2NDY6IFRlc3RzIHJlYXJyYW5nZWQgZm9yIG9zLnNhbWVmaWxlL3NhbWVzdGF0IHRvIGNoZWNrIGZvciBub3QKKyAganVzdCBzeW1saW5rcyBidXQgYWxzbyBoYXJkIGxpbmtzLgorCistIElzc3VlICMxNTMwMjogU3dpdGNoIHJlZ3J0ZXN0IGZyb20gdXNpbmcgZ2V0b3B0IHRvIHVzaW5nIGFyZ3BhcnNlLgorCiAtIElzc3VlICMxNTMyNDogRml4IHJlZ3J0ZXN0IHBhcnNpbmcgb2YgLS1mcm9tZmlsZSwgLS1tYXRjaCwgYW5kIC0tcmFuZG9taXplCiAgIG9wdGlvbnMuCiAKQEAgLTExMzMsNiArMTU2OCw5IEBACiAtIElzc3VlICMxNjY2NDogQWRkIHJlZ3Jlc3Npb24gdGVzdHMgZm9yIGdsb2IncyBiZWhhdmlvdXIgY29uY2VybmluZyBlbnRyaWVzCiAgIHN0YXJ0aW5nIHdpdGggYSAiLiIuICBQYXRjaCBieSBTZWJhc3RpYW4gS3JlZnQuCiAKKy0gSXNzdWUgIzEzMzkwOiBUaGUgYGAtUmBgIG9wdGlvbiB0byByZWdydGVzdCBub3cgYWxzbyBjaGVja3MgZm9yIG1lbW9yeQorICBhbGxvY2F0aW9uIGxlYWtzLCB1c2luZyA6ZnVuYzpgc3lzLmdldGFsbG9jYXRlZGJsb2NrcygpYC4KKwogLSBJc3N1ZSAjMTY1NTk6IEFkZCBtb3JlIHRlc3RzIGZvciB0aGUganNvbiBtb2R1bGUsIGluY2x1ZGluZyBzb21lIGZyb20gdGhlCiAgIG9mZmljaWFsIHRlc3Qgc3VpdGUgYXQganNvbi5vcmcuICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgogCkBAIC0xMTUxLDcgKzE1ODksNyBAQAogLSBJc3N1ZSAjMTU4MDI6IEZpeCB0ZXN0IGxvZ2ljIGluIGBUZXN0TWFpbGRpci50ZXN0X2NyZWF0ZV90bXAoKWAuIFBhdGNoIGJ5CiAgIFNlcmhpeSBTdG9yY2hha2EuCiAKLS0gSXNzdWUgIzE1NTU3OiBBZGQgYSB0ZXN0IHN1aXRlIGZvciB0aGUgYHdlYmJyb3dzZXJgIG1vZHVsZSwgdGhhbmtzIHRvIEFudG9uCistIElzc3VlICMxNTU1NzogQWRkZWQgYSB0ZXN0IHN1aXRlIGZvciB0aGUgd2ViYnJvd3NlciBtb2R1bGUsIHRoYW5rcyB0byBBbnRvbgogICBCYXJrb3Zza3kuCiAKIC0gSXNzdWUgIzE2Njk4OiBTa2lwIHBvc2l4IHRlc3RfZ2V0Z3JvdXBzIHdoZW4gYnVpbHQgd2l0aCBPUyBYCkBAIC0xMTYwLDYgKzE1OTgsOSBAQAogQnVpbGQKIC0tLS0tCiAKKy0gSXNzdWUgIzE3NTkxOiBVc2UgbG93ZXJjYXNlIGZpbGVuYW1lcyB3aGVuIGluY2x1ZGluZyBXaW5kb3dzIGhlYWRlciBmaWxlcy4KKyAgUGF0Y2ggYnkgUm91bWVuIFBldHJvdi4KKwogLSBJc3N1ZSAjMTc1NTA6IEZpeCB0aGUgLS1lbmFibGUtcHJvZmlsaW5nIGNvbmZpZ3VyZSBzd2l0Y2guCiAKIC0gSXNzdWUgIzE3NDI1OiBCdWlsZCB3aXRoIG9wZW5zc2wgMS4wLjFkIG9uIFdpbmRvd3MuCkBAIC0xMTc1LDYgKzE2MTYsMTAgQEAKIAogLSBJc3N1ZSAjMzcxODogVXNlIEFDX0FSR19WQVIgdG8gc2V0IE1BQ0hERVAgaW4gY29uZmlndXJlLmFjLgogCistIElzc3VlICMxNjIzNTogSW1wbGVtZW50IHB5dGhvbi1jb25maWcgYXMgYSBzaGVsbCBzY3JpcHQuCisKKy0gSXNzdWUgIzE2NzY5OiBSZW1vdmUgb3V0ZGF0ZWQgVmlzdWFsIFN0dWRpbyBwcm9qZWN0cy4KKwogLSBJc3N1ZSAjMTcwMzE6IEZpeCBydW5uaW5nIHJlZ2VuIGluIGNyb3NzIGJ1aWxkcy4KIAogLSBJc3N1ZSAjMzc1NDogZml4IHR5cG8gaW4gcHRocmVhZCBBQ19DQUNIRV9WQUwuCkBAIC0xMTgyLDEyICsxNjI3LDE0IEBACiAtIElzc3VlICMxNTQ4NDogRml4IF9QWVRIT05fUFJPSkVDVF9CQVNFIGZvciBzcmNkaXIgIT0gYnVpbGRkaXIgYnVpbGRzOwogICB1c2UgX1BZVEhPTl9QUk9KRUNUX0JBU0UgaW4gZGlzdHV0aWxzL3N5c2NvbmZpZy5weS4KIAorLSBEcm9wIHN1cHBvcnQgZm9yIFdpbmRvd3MgMjAwMC4KKwogLSBJc3N1ZSAjMTcwMjk6IExldCBoMnB5IHNlYXJjaCB0aGUgbXVsdGlhcmNoIHN5c3RlbSBpbmNsdWRlIGRpcmVjdG9yeS4KIAogLSBJc3N1ZSAjMTY5NTM6IEZpeCBzb2NrZXQgbW9kdWxlIGNvbXBpbGF0aW9uIG9uIHBsYXRmb3JtcyB3aXRoCiAgIEhBVkVfQlJPS0VOX1BPTEwuIFBhdGNoIGJ5IEplZmZyZXkgQXJtc3Ryb25nLgogCi0tIElzc3VlICMxNjgzNjogRW5hYmxlIElQdjYgc3VwcG9ydCBldmVuIGlmIElQdjYgaXMgZGlzYWJsZWQgb24gdGhlIGJ1aWxkIGhvc3QuCistIElzc3VlICMxNjMyMDogUmVtb3ZlIHJlZHVuZGFudCBNYWtlZmlsZSBkZXBlbmRlbmNpZXMgZm9yIHN0cmluZ3MgYW5kIGJ5dGVzLgogCiAtIENyb3NzIGNvbXBpbGluZyBuZWVkcyBob3N0IGFuZCBidWlsZCBzZXR0aW5ncy4gY29uZmlndXJlIG5vIGxvbmdlcgogICBjcmVhdGVzIGEgYnJva2VuIFBZVEhPTl9GT1JfQlVJTEQgdmFyaWFibGUgd2hlbiAtLWJ1aWxkIGlzIG1pc3NpbmcuCkBAIC0xMjA5LDYgKzE2NTYsOCBAQAogLSBJc3N1ZSAjMTU5MjM6IEZpeCBhIG1pc3Rha2UgaW4gYGBhc2RsX2MucHlgYCB0aGF0IHJlc3VsdGVkIGluIGEgVHlwZUVycm9yCiAgIGFmdGVyIDI4MDFiZjg3NWEyNCAoc2VlICMxNTgwMSkuCiAKKy0gSXNzdWUgIzE2MTM1OiBSZW1vdmUgT1MvMiBzdXBwb3J0LgorCiAtIElzc3VlICMxNTgxOTogTWFrZSBzdXJlIHdlIGNhbiBidWlsZCBQeXRob24gb3V0LW9mLXRyZWUgZnJvbSBhIHJlYWQtb25seQogICBzb3VyY2UgZGlyZWN0b3J5LiAgKFNvbWV3aGF0IHJlbGF0ZWQgdG8gaXNzdWUgIzk4NjAuKQogCkBAIC0xMjIzLDkgKzE2NzIsMjQgQEAKIAogLSBJc3N1ZSAjMTY4ODE6IEZpeCBQeV9BUlJBWV9MRU5HVEggbWFjcm8gZm9yIEdDQyA8IDMuMS4KIAorLSBJc3N1ZSAjMTU0MjI6IEdldCByaWQgb2YgUHlDRnVuY3Rpb25fTmV3IG1hY3JvLiBVc2UgUHlDRnVuY3Rpb25fTmV3RXgKKyAgZnVuY3Rpb24gKFB5Q0Z1bmN0aW9uX05ldyBmdW5jIGlzIHN0aWxsIHByZXNlbnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpLgorCistIElzc3VlICMxNjUwNTogUmVtb3ZlIHVudXNlZCBQeV9UUEZMQUdTX0lOVF9TVUJDTEFTUy4KKworLSBJc3N1ZSAjMTYwODY6IFB5VHlwZU9iamVjdC50cF9mbGFncyBhbmQgUHlUeXBlX1NwZWMuZmxhZ3MgYXJlIG5vdyB1bnNpZ25lZAorICAodW5zaWduZWQgbG9uZyBhbmQgdW5zaWduZWQgaW50KSB0byBhdm9pZCBhbiB1bmRlZmluZWQgYmVoYXZpb3VyIHdpdGgKKyAgUHlfVFBGTEFHU19UWVBFX1NVQkNMQVNTICgoMSA8PCAzMSkuIFB5VHlwZV9HZXRGbGFncygpIHJlc3VsdCB0eXBlIGlzCisgIG5vdyB1bnNpZ25lZCB0b28gKHVuc2lnbmVkIGxvbmcsIGluc3RlYWQgb2YgbG9uZykuCisKKy0gSXNzdWUgIzE2MTY2OiBBZGQgUFlfTElUVExFX0VORElBTiBhbmQgUFlfQklHX0VORElBTiBtYWNyb3MgYW5kIHVuaWZpZWQKKyAgZW5kaWFubmVzcyBkZXRlY3Rpb24gYW5kIGhhbmRsaW5nLgorCiBEb2N1bWVudGF0aW9uCiAtLS0tLS0tLS0tLS0tCiAKKy0gSXNzdWUgIzE1OTQwOiBTcGVjaWZ5IGVmZmVjdCBvZiBsb2NhbGUgb24gdGltZSBmdW5jdGlvbnMuCisKIC0gSXNzdWUgMTc1Mzg6IERvY3VtZW50IFhNTCB2dWxuZXJhYmlsdGllcwogCiAtIElzc3VlICMxNjY0Mjogc2NoZWQuc2NoZWR1bGVyIHRpbWVmdW5jIGluaXRpYWwgZGVmYXVsdCBpcyB0aW1lLm1vbm90b25pYy4KQEAgLTEyNzAsOCArMTczNCw4IEBACiAKIC0gSXNzdWUgIzEzNTM4OiBJbXByb3ZlIHN0cigpIGFuZCBvYmplY3QuX19zdHJfXygpIGRvY3VtZW50YXRpb24uCiAKLS0gSXNzdWUgIzE2NDg5OiBNYWtlIGl0IGNsZWFyZXIgdGhhdCBpbXBvcnRsaWIuZmluZF9sb2FkZXIoKSByZXF1aXJlcyBhbnkgYW5kCi0gIGFsbCBwYWNrYWdlcyB0byBiZSBzZXBhcmF0ZWx5IGltcG9ydGVkLgorLSBJc3N1ZSAjMTY0ODk6IE1ha2UgaXQgY2xlYXJlciB0aGF0IGltcG9ydGxpYi5maW5kX2xvYWRlcigpIG5lZWRzIHBhcmVudAorICBwYWNrYWdlcyB0byBiZSBleHBsaWNpdGx5IGltcG9ydGVkLgogCiAtIElzc3VlICMxNjQwMDogVXBkYXRlIHRoZSBkZXNjcmlwdGlvbiBvZiB3aGljaCB2ZXJzaW9ucyBvZiBhIGdpdmVuIHBhY2thZ2UKICAgUHlQSSBkaXNwbGF5cy4KQEAgLTEyOTQsNiArMTc1OCw5IEBACiAtIElzc3VlICMxNjExNTogSW1wcm92ZSBzdWJwcm9jZXNzLlBvcGVuKCkgZG9jdW1lbnRhdGlvbiBhcm91bmQgYXJncywgc2hlbGwsCiAgIGFuZCBleGVjdXRhYmxlIGFyZ3VtZW50cy4KIAorLSBJc3N1ZSAjMTM0OTg6IENsYXJpZnkgZG9jcyBvZiBvcy5tYWtlZGlycygpJ3MgZXhpc3Rfb2sgYXJndW1lbnQuICBEb25lIHdpdGgKKyAgZ3JlYXQgbmF0aXZlLXNwZWFrZXIgaGVscCBmcm9tIFIuIERhdmlkIE11cnJheS4KKwogLSBJc3N1ZSAjMTU1MzM6IENsYXJpZnkgZG9jcyBhbmQgYWRkIHRlc3RzIGZvciBgc3VicHJvY2Vzcy5Qb3BlbigpYCdzIGN3ZAogICBhcmd1bWVudC4KIApAQCAtMTMxNCw2ICsxNzgxLDkgQEAKIFRvb2xzL0RlbW9zCiAtLS0tLS0tLS0tLQogCistIElzc3VlICMxNzAyODogQWxsb3dlZCBQeXRob24gYXJndW1lbnRzIHRvIGJlIHN1cHBsaWVkIHRvIHRoZSBXaW5kb3dzCisgIGxhdW5jaGVyLgorCiAtIElzc3VlICMxNzE1NjogcHlnZXR0ZXh0LnB5IG5vdyB1c2VzIGFuIGVuY29kaW5nIG9mIHNvdXJjZSBmaWxlIGFuZCBjb3JyZWN0bHkKICAgd3JpdGVzIGFuZCBlc2NhcGVzIG5vbi1hc2NpaSBjaGFyYWN0ZXJzLgogCkBAIC0xMzIyLDkgKzE3OTIsMTggQEAKICAgaW1wcm9wZXIgaW5kZW50YXRpb24uICBwaW5kZW50LnB5IG5vdyB3b3JrcyB3aXRoIGNvbnRpbnVlZCBsaW5lcyBicm9rZW4gYWZ0ZXIKICAgImNsYXNzIiBvciAiZGVmIiBrZXl3b3JkcyBhbmQgd2l0aCBjb250aW51YXRpb25zIGF0IHRoZSBzdGFydCBvZiBsaW5lLgogCi0tIElzc3VlICMxNTM3ODogRml4IFRvb2xzL3VuaWNvZGUvY29tcGFyZWNvZGVjcy5weS4gIFBhdGNoIGJ5IFNlcmhpeSBTdG9yY2hha2EuCistIElzc3VlICMxMTc5NzogQWRkIGEgMnRvMyBmaXhlciB0aGF0IG1hcHMgcmVsb2FkKCkgdG8gaW1wLnJlbG9hZCgpLgogCi0tIElzc3VlICMxNjQ3NjogRml4IGpzb24udG9vbCB0byBhdm9pZCBpbmNsdWRpbmcgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKy0gSXNzdWUgIzEwOTY2OiBSZW1vdmUgdGhlIGNvbmNlcHQgb2YgdW5leHBlY3RlZCBza2lwcGVkIHRlc3RzLgorCistIElzc3VlICM5ODkzOiBSZW1vdmVkIHRoZSBNaXNjL1ZpbSBkaXJlY3RvcnkuCisKKy0gUmVtb3ZlZCB0aGUgTWlzYy9UZXh0TWF0ZSBkaXJlY3RvcnkuCisKKy0gSXNzdWUgIzE2MjQ1OiBBZGQgdGhlIFRvb2xzL3NjcmlwdHMvcGFyc2VfaHRtbDVfZW50aXRpZXMucHkgc2NyaXB0IHRvIHBhcnNlCisgIHRoZSBsaXN0IG9mIEhUTUw1IGVudGl0aWVzIGFuZCB1cGRhdGUgdGhlIGh0bWwuZW50aXRpZXMuaHRtbDUgZGljdGlvbmFyeS4KKworLSBJc3N1ZSAjMTUzNzg6IEZpeCBUb29scy91bmljb2RlL2NvbXBhcmVjb2RlY3MucHkuICBQYXRjaCBieSBTZXJoaXkgU3RvcmNoYWthLgogCiAtIElzc3VlICMxNjU0OTogTWFrZSBqc29uLnRvb2wgd29yayBhZ2FpbiBvbiBQeXRob24gMyBhbmQgYWRkIHRlc3RzLgogICBJbml0aWFsIHBhdGNoIGJ5IEJlcmtlciBQZWtzYWcgYW5kIFNlcmhpeSBTdG9yY2hha2EuCkBAIC0xNDE5LDYgKzE4OTgsOSBAQAogTGlicmFyeQogLS0tLS0tLQogCistIElzc3VlICMxNzE1ODogQWRkICdzeW1ib2xzJyB0byBoZWxwKCkgd2VsY29tZSBtZXNzYWdlOyBjbGFyaWZ5CisgICdtb2R1bGVzIHNwYW0nIG1lc3NhZ2VzLgorCiAtIElzc3VlICMxNTg0NzogRml4IGEgcmVncmVzc2lvbiBpbiBhcmdwYXJzZSwgd2hpY2ggZGlkIG5vdCBhY2NlcHQgdHVwbGVzIGFzCiAgIGFyZ3VtZW50IGxpc3RzIGFueW1vcmUuCiAKQEAgLTE0OTQsNiArMTk3Niw4IEBACiBMaWJyYXJ5CiAtLS0tLS0tCiAKKy0gSXNzdWUgIzEzMjQ4OiByZW1vdmVkIGRlcHJlY2F0ZWQgYW5kIHVuZG9jdW1lbnRlZCBkaWZmbGliLmlzYmp1bmssIGlzYnBvcHVsYXIuCisKIC0gSXNzdWUgIzEzMzcwOiBFbnN1cmUgdGhhdCBjdHlwZXMgd29ya3Mgb24gTWFjIE9TIFggd2hlbiBQeXRob24gaXMgY29tcGlsZWQKICAgdXNpbmcgdGhlIGNsYW5nIGNvbXBpbGVyLgogCkBAIC0xOTA5LDYgKzIzOTMsMTAgQEAKIC0gSXNzdWUgIzE1MjUwOiBEb2N1bWVudCB0aGF0IGBmaWxlY21wLmRpcmNtcCgpYCBjb21wYXJlcyBmaWxlcyBzaGFsbG93bHkuIFBhdGNoCiAgIGNvbnRyaWJ1dGVkIGJ5IENocmlzIEplcmRvbmVrLgogCistIElzc3VlICMxNTQ0MjogRXhwb3NlIHRoZSBkZWZhdWx0IGxpc3Qgb2YgZGlyZWN0b3JpZXMgaWdub3JlZCBieQorICBgZmlsZWNtcC5kaXJjbXAoKWAgYXMgYSBtb2R1bGUgYXR0cmlidXRlLCBhbmQgZXhwYW5kIHRoZSBsaXN0IHRvIG1vcmUgbW9kZXJuCisgIHZhbHVlcy4KKwogVGVzdHMKIC0tLS0tCiAKQEAgLTIwMjEsOSArMjUwOSw2IEBACiBMaWJyYXJ5CiAtLS0tLS0tCiAKLS0gSXNzdWUgIzE2MzA1OiBGaXggYSBzZWdtZW50YXRpb24gZmF1bHQgb2NjdXJyaW5nIHdoZW4gaW50ZXJydXB0aW5nCi0gIG1hdGguZmFjdG9yaWFsLgotCiAtIElzc3VlICMxMjI4ODogQ29uc2lkZXIgJzAnIGFuZCAnMC4wJyBhcyB2YWxpZCBpbml0aWFsdmFsdWUKICAgZm9yIHRraW50ZXIgU2ltcGxlRGlhbG9nLgogCkBAIC0zNzE4LDcgKzQyMDMsNyBAQAogLSBJc3N1ZSAjMTM1ODk6IEZpeCBzb21lIHNlcmlhbGl6YXRpb24gcHJpbWl0aXZlcyBpbiB0aGUgYWlmYyBtb2R1bGUuCiAgIFBhdGNoIGJ5IE9sZWcgUGxha2hvdG55dWsuCiAKLS0gSXNzdWUgIzEzNjQyOiBVbnF1b3RlIGJlZm9yZSBiNjRlbmNvZGluZyBgYHVzZXI6cGFzc3dvcmRgYCBkdXJpbmcgQmFzaWMKKy0gSXNzdWUgIzEzNjQyOiBVbnF1b3RlIGJlZm9yZSBiNjRlbmNvZGluZyB1c2VyOnBhc3N3b3JkIGR1cmluZyBCYXNpYwogICBBdXRoZW50aWNhdGlvbi4gUGF0Y2ggY29udHJpYnV0ZWQgYnkgSm9vbmFzIEt1b3JpbGVodG8uCiAKIC0gSXNzdWUgIzEyMzY0OiBGaXggYSBoYW5nIGluIGNvbmN1cnJlbnQuZnV0dXJlcy5Qcm9jZXNzUG9vbEV4ZWN1dG9yLgpAQCAtNDE3Nyw4ICs0NjYyLDggQEAKIC0gSXNzdWUgIzEyNjA3OiBJbiBzdWJwcm9jZXNzLCBmaXggaXNzdWUgd2hlcmUgaWYgc3RkaW4sIHN0ZG91dCBvciBzdGRlcnIgaXMKICAgZ2l2ZW4gYXMgYSBsb3cgZmQsIGl0IGdldHMgb3ZlcndyaXR0ZW4uCiAKLS0gSXNzdWUgIzEyNTc2OiBGaXggdXJsb3BlbiBiZWhhdmlvciBvbiBzaXRlcyB3aGljaCBkbyBub3Qgc2VuZCAob3Igb2JmdXNjYXRlKQotICBhIGBgQ29ubmVjdGlvbjogY2xvc2VgYCBoZWFkZXIuCistIElzc3VlICMxMjU3NjogRml4IHVybG9wZW4gYmVoYXZpb3Igb24gc2l0ZXMgd2hpY2ggZG8gbm90IHNlbmQgKG9yIG9iZnVzY2F0ZXMpCisgIENvbm5lY3Rpb246Y2xvc2UgaGVhZGVyLgogCiAtIElzc3VlICMxMjU2MDogQnVpbGQgbGlicHl0aG9uLnNvIG9uIE9wZW5CU0QuIFBhdGNoIGJ5IFN0ZWZhbiBTcGVybGluZy4KIApAQCAtNDczNiw2ICs1MjIxLDkgQEAKIC0gSXNzdWUgIzExNjM1OiBEb24ndCB1c2UgcG9sbGluZyBpbiB3b3JrZXIgdGhyZWFkcyBhbmQgcHJvY2Vzc2VzIGxhdW5jaGVkIGJ5CiAgIGNvbmN1cnJlbnQuZnV0dXJlcy4KIAorLSBJc3N1ZSAjNTg0NTogQXV0b21hdGljYWxseSByZWFkIHJlYWRsaW5lIGNvbmZpZ3VyYXRpb24gdG8gZW5hYmxlIGNvbXBsZXRpb24KKyAgaW4gaW50ZXJhY3RpdmUgbW9kZS4KKwogLSBJc3N1ZSAjNjgxMTogQWxsb3cgaW1wb3J0bGliIHRvIGNoYW5nZSBhIGNvZGUgb2JqZWN0J3MgY29fZmlsZW5hbWUgYXR0cmlidXRlCiAgIHRvIG1hdGNoIHRoZSBwYXRoIHRvIHdoZXJlIHRoZSBzb3VyY2UgY29kZSBjdXJyZW50bHkgaXMsIG5vdCB3aGVyZSB0aGUgY29kZQogICBvYmplY3Qgb3JpZ2luYWxseSBjYW1lIGZyb20uCkBAIC00NzcwLDcgKzUyNTgsNyBAQAogCiAtIElzc3VlICMxMTEyNzogUmFpc2UgYSBUeXBlRXJyb3Igd2hlbiB0cnlpbmcgdG8gcGlja2xlIGEgc29ja2V0IG9iamVjdC4KIAotLSBJc3N1ZSAjMTE1NjM6IGBgQ29ubmVjdGlvbjogY2xvc2VgYCBoZWFkZXIgaXMgc2VudCBieSByZXF1ZXN0cyB1c2luZyBVUkxPcGVuZXIKKy0gSXNzdWUgIzExNTYzOiBDb25uZWN0aW9uOmNsb3NlIGhlYWRlciBpcyBzZW50IGJ5IHJlcXVlc3RzIHVzaW5nIFVSTE9wZW5lcgogICBjbGFzcyB3aGljaCBoZWxwcyBpbiBjbG9zaW5nIG9mIHNvY2tldHMgYWZ0ZXIgY29ubmVjdGlvbiBpcyBvdmVyLiBQYXRjaAogICBjb250cmlidXRpb25zIGJ5IEplZmYgTWNOZWlsIGFuZCBOYWRlZW0gVmF3ZGEuCiAKQEAgLTUzNDYsNyArNTgzNCw3IEBACiAtIElzc3VlICMxMTUwNTogaW1wcm92ZXMgdGVzdCBjb3ZlcmFnZSBvZiBzdHJpbmcucHkuIFBhdGNoIGJ5IEFsaWNpYQogICBBcmxlbgogCi0tIElzc3VlICMxMTQ5MDogdGVzdF9zdWJwcm9jZXNzLnRlc3RfbGVha2luZ19mZHNfb25fZXJyb3Igbm8gbG9uZ2VyIGdpdmVzIGEKKy0gSXNzdWUgIzExNDkwOiB0ZXN0X3N1YnByb2Nlc3M6dGVzdF9sZWFraW5nX2Zkc19vbl9lcnJvciBubyBsb25nZXIgZ2l2ZXMgYQogICBmYWxzZSBwb3NpdGl2ZSBpZiB0aGUgbGFzdCBkaXJlY3RvcnkgaW4gdGhlIHBhdGggaXMgaW5hY2Nlc3NpYmxlLgogCiAtIElzc3VlICMxMTIyMzogRml4IHRlc3RfdGhyZWFkc2lnbmFscyB0byBmYWlsLCBub3QgaGFuZywgd2hlbiB0aGUKZGlmZiAtLWdpdCBhL01pc2MvUlBNL3B5dGhvbi0zLjMuc3BlYyBiL01pc2MvUlBNL3B5dGhvbi0zLjQuc3BlYwpzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBNaXNjL1JQTS9weXRob24tMy4zLnNwZWMKcmVuYW1lIHRvIE1pc2MvUlBNL3B5dGhvbi0zLjQuc3BlYwppbmRleCBhOWI0ODliLi5iMWFmNTVjIDEwMDY0NAotLS0gYS9NaXNjL1JQTS9weXRob24tMy4zLnNwZWMKKysrIGIvTWlzYy9SUE0vcHl0aG9uLTMuNC5zcGVjCkBAIC0zOSw4ICszOSw4IEBACiAKICVkZWZpbmUgbmFtZSBweXRob24KICMtLXN0YXJ0IGNvbnN0YW50cy0tCi0lZGVmaW5lIHZlcnNpb24gMy4zLjIKLSVkZWZpbmUgbGlidmVycyAzLjMKKyVkZWZpbmUgdmVyc2lvbiAzLjQuMGEwCislZGVmaW5lIGxpYnZlcnMgMy40CiAjLS1lbmQgY29uc3RhbnRzLS0KICVkZWZpbmUgcmVsZWFzZSAxcHlkb3RvcmcKICVkZWZpbmUgX19wcmVmaXggL3VzcgpAQCAtODMsOCArODMsNyBAQAogbGlicmFyaWVzLCBhcyB3ZWxsIGFzIHRvIHZhcmlvdXMgd2luZG93IHN5c3RlbXMsIGFuZCBpcyBleHRlbnNpYmxlIGluIEMgb3IKIEMrKy4gSXQgaXMgYWxzbyB1c2FibGUgYXMgYW4gZXh0ZW5zaW9uIGxhbmd1YWdlIGZvciBhcHBsaWNhdGlvbnMgdGhhdCBuZWVkCiBhIHByb2dyYW1tYWJsZSBpbnRlcmZhY2UuICBGaW5hbGx5LCBQeXRob24gaXMgcG9ydGFibGU6IGl0IHJ1bnMgb24gbWFueQotYnJhbmRzIG9mIFVOSVgsIG9uIFBDcyB1bmRlciBXaW5kb3dzLCBNUy1ET1MsIGFuZCBPUy8yLCBhbmQgb24gdGhlCi1NYWMuCiticmFuZHMgb2YgVU5JWCwgb24gUENzIHVuZGVyIFdpbmRvd3MsIE1TLURPUywgYW5kIG9uIHRoZSBNYWMuCiAKICVwYWNrYWdlIGRldmVsCiBTdW1tYXJ5OiBUaGUgbGlicmFyaWVzIGFuZCBoZWFkZXIgZmlsZXMgbmVlZGVkIGZvciBQeXRob24gZXh0ZW5zaW9uIGRldmVsb3BtZW50LgpkaWZmIC0tZ2l0IGEvTWlzYy9UZXh0TWF0ZS9QeXRob24tRGV2LnRtYnVuZGxlL0NvbW1hbmRzLzIgdG8gMyAtIE1vZHVsZSBEZWxldGlvbi50bUNvbW1hbmQgYi9NaXNjL1RleHRNYXRlL1B5dGhvbi1EZXYudG1idW5kbGUvQ29tbWFuZHMvMiB0byAzIC0gTW9kdWxlIERlbGV0aW9uLnRtQ29tbWFuZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NmYWRhOC4uMDAwMDAwMAotLS0gYS9NaXNjL1RleHRNYXRlL1B5dGhvbi1EZXYudG1idW5kbGUvQ29tbWFuZHMvMiB0byAzIC0gTW9kdWxlIERlbGV0aW9uLnRtQ29tbWFuZAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgotPGRpY3Q+Ci0JPGtleT5iZWZvcmVSdW5uaW5nQ29tbWFuZDwva2V5PgotCTxzdHJpbmc+bm9wPC9zdHJpbmc+Ci0JPGtleT5jb21tYW5kPC9rZXk+Ci0JPHN0cmluZz4jIS91c3IvYmluL3B5dGhvbgotIiIiR2VuZXJhdGUgY29kZSB0byB3YXJuIGFib3V0IGEgbW9kdWxlJ3MgcmVtb3ZhbCBpbiBQeXRob24gMy4wLgotCi1YWFggTm90IHN1cHBvcnRlZDoKLS0gTW9kdWxlJ3MgaW4gYSBwYWNrYWdlIGRvIG5vdCBoYXZlIHRoZWlyIGZ1bGwgbmFtZSBnZW5lcmF0ZWQuCi0tIFBhY2thZ2UncyBfX2luaXRfXyBtb2R1bGU7IHNob3VsZCBkZXRlY3QgYW5kIHVzZSB0aGUgcGFja2FnZSdzIG5hbWUgaW5zdGVhZC4KLQotIiIiCi1weV90ZW1wbGF0ZSA9ICIiImZyb20gd2FybmluZ3MgaW1wb3J0IHdhcm5weTNrCi13YXJucHkzaygidGhlICR7MTolc30gbW9kdWxlIGhhcyBiZWVuIHJlbW92ZWQgaW4gUHl0aG9uIDMuMCIsIHN0YWNrbGV2ZWw9MikKLWRlbCB3YXJucHkzayQwIiIiCi0KLWNfdGVtcGxhdGUgPSAiIiIKLWlmIChQeUVycl9XYXJuUHkzaygidGhlICR7MTolc30gbW9kdWxlIGhhcyBiZWVuIHJlbW92ZWQgaW4gIgotICAgICAgICAgICAgICAgICAgICJQeXRob24gMy4wIiwgMikgJmx0OyAwKQotICAgIHJldHVybjskMCIiIgotCi0KLWltcG9ydCBpbXAKLWltcG9ydCBvcwotCi1maWxlX25hbWUgPSBvcy5wYXRoLnNwbGl0KG9zLmVudmlyb25bJ1RNX0ZJTEVQQVRIJ10pWzFdCi0KLXB5X3N1ZmZpeGVzID0gcmV2ZXJzZWQoc29ydGVkKChzdWZmaXhbMF0gZm9yIHN1ZmZpeCBpbiBpbXAuZ2V0X3N1ZmZpeGVzKCkgaWYgc3VmZml4WzJdID09IGltcC5QWV9TT1VSQ0UpLCBrZXk9bGVuKSkKLWNfc3VmZml4ZXMgPSByZXZlcnNlZChzb3J0ZWQoKG9zLnBhdGguc3BsaXRleHQoc3VmZml4WzBdKVswXSArICcuYycKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHN1ZmZpeCBpbiBpbXAuZ2V0X3N1ZmZpeGVzKCkgaWYgc3VmZml4WzJdID09IGltcC5DX0VYVEVOU0lPTiksIGtleT1sZW4pKQotCi1wYWlyaW5ncyA9ICgocHlfc3VmZml4ZXMsIHB5X3RlbXBsYXRlKSwgKGNfc3VmZml4ZXMsIGNfdGVtcGxhdGUpKQotCi1kZWYgY3JlYXRlX3RlbXBsYXRlKHN1ZmZpeGVzLCB0ZW1wbGF0ZSk6Ci0gICAgZm9yIHN1ZmZpeCBpbiBzdWZmaXhlczoKLSAgICAgICAgaWYgbm90IGZpbGVfbmFtZS5lbmRzd2l0aChzdWZmaXgpOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgbW9kdWxlX25hbWUgPSBmaWxlX25hbWVbOi1sZW4oc3VmZml4KV0KLSAgICAgICAgcmV0dXJuIHRlbXBsYXRlICUgbW9kdWxlX25hbWUKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gTm9uZQotCi1mb3IgdGVtcGxhdGUgaW4gKGNyZWF0ZV90ZW1wbGF0ZSgqcGFpcikgZm9yIHBhaXIgaW4gcGFpcmluZ3MpOgotICAgIGlmIG5vdCB0ZW1wbGF0ZToKLSAgICAgICAgY29udGludWUKLSAgICBwcmludCB0ZW1wbGF0ZSwKLSAgICBicmVhawotZWxzZToKLSAgICBwcmludCAnWFhYIENvdWxkIG5vdCBnZW5lcmF0ZSBjb2RlLic8L3N0cmluZz4KLQk8a2V5PmlucHV0PC9rZXk+Ci0JPHN0cmluZz5ub25lPC9zdHJpbmc+Ci0JPGtleT5uYW1lPC9rZXk+Ci0JPHN0cmluZz4yIHRvIDMgLSBNb2R1bGUgRGVsZXRpb248L3N0cmluZz4KLQk8a2V5Pm91dHB1dDwva2V5PgotCTxzdHJpbmc+aW5zZXJ0QXNTbmlwcGV0PC9zdHJpbmc+Ci0JPGtleT50YWJUcmlnZ2VyPC9rZXk+Ci0JPHN0cmluZz4ydG8zbW9kZGVsPC9zdHJpbmc+Ci0JPGtleT51dWlkPC9rZXk+Ci0JPHN0cmluZz45NTE5QzIyQi02QUI4LTQxQTEtOTRGNi0wNzlFMEI0NUMxNDc8L3N0cmluZz4KLTwvZGljdD4KLTwvcGxpc3Q+CmRpZmYgLS1naXQgYS9NaXNjL1RleHRNYXRlL1B5dGhvbi1EZXYudG1idW5kbGUvQ29tbWFuZHMvQnVpbGQgRG9jcy50bUNvbW1hbmQgYi9NaXNjL1RleHRNYXRlL1B5dGhvbi1EZXYudG1idW5kbGUvQ29tbWFuZHMvQnVpbGQgRG9jcy50bUNvbW1hbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlNGQ1M2IuLjAwMDAwMDAKLS0tIGEvTWlzYy9UZXh0TWF0ZS9QeXRob24tRGV2LnRtYnVuZGxlL0NvbW1hbmRzL0J1aWxkIERvY3MudG1Db21tYW5kCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGljdD4KLQk8a2V5PmJlZm9yZVJ1bm5pbmdDb21tYW5kPC9rZXk+Ci0JPHN0cmluZz5ub3A8L3N0cmluZz4KLQk8a2V5PmNvbW1hbmQ8L2tleT4KLQk8c3RyaW5nPiMgWFhYIExlb3BhcmQtc3BlY2lmaWMgdW5sZXNzIGhhdmUgZWFzeSB3YXkgdG8gc3BlY2lmaWMgYWx0ZXJuYXRpdmUgUHl0aG9uIGV4ZWN1dGFibGUuCi0KLWNkICRUTV9QUk9KRUNUX0RJUkVDVE9SWS9Eb2MKLW1ha2UgaHRtbCAyJmd0OyZhbXA7MSB8IHByZQotCi1yZXNjYW5fcHJvamVjdDwvc3RyaW5nPgotCTxrZXk+aW5wdXQ8L2tleT4KLQk8c3RyaW5nPm5vbmU8L3N0cmluZz4KLQk8a2V5Pm5hbWU8L2tleT4KLQk8c3RyaW5nPkJ1aWxkIERvY3M8L3N0cmluZz4KLQk8a2V5Pm91dHB1dDwva2V5PgotCTxzdHJpbmc+c2hvd0FzSFRNTDwvc3RyaW5nPgotCTxrZXk+dXVpZDwva2V5PgotCTxzdHJpbmc+NkVGMTUxRTUtNzE0OS00RjgyLTg3OTYtMENDNDBGRTU4OUZBPC9zdHJpbmc+Ci08L2RpY3Q+Ci08L3BsaXN0PgpkaWZmIC0tZ2l0IGEvTWlzYy9UZXh0TWF0ZS9QeXRob24tRGV2LnRtYnVuZGxlL0NvbW1hbmRzL0J1aWxkLnRtQ29tbWFuZCBiL01pc2MvVGV4dE1hdGUvUHl0aG9uLURldi50bWJ1bmRsZS9Db21tYW5kcy9CdWlsZC50bUNvbW1hbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmZmRhNWMuLjAwMDAwMDAKLS0tIGEvTWlzYy9UZXh0TWF0ZS9QeXRob24tRGV2LnRtYnVuZGxlL0NvbW1hbmRzL0J1aWxkLnRtQ29tbWFuZAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgotPGRpY3Q+Ci0JPGtleT5iZWZvcmVSdW5uaW5nQ29tbWFuZDwva2V5PgotCTxzdHJpbmc+bm9wPC9zdHJpbmc+Ci0JPGtleT5jb21tYW5kPC9rZXk+Ci0JPHN0cmluZz4jIFhYWCBUT0RPCi0jIC0gSGlnaGxpZ2h0IGFueSBjb21waWxlciB3YXJuaW5ncyBmb3IgUHl0aG9uIGNvZGUuCi0jIC0gUG9pbnQgb3V0IGlmIGNvbXBpbGUgZmFpbGVkLgotCi1jZCAkVE1fUFJPSkVDVF9ESVJFQ1RPUlkKLW1ha2UgLXMgLWoyIDImZ3Q7JmFtcDsxIHwgcHJlCi0KLXJlc2Nhbl9wcm9qZWN0PC9zdHJpbmc+Ci0JPGtleT5pbnB1dDwva2V5PgotCTxzdHJpbmc+bm9uZTwvc3RyaW5nPgotCTxrZXk+bmFtZTwva2V5PgotCTxzdHJpbmc+QnVpbGQgUHl0aG9uPC9zdHJpbmc+Ci0JPGtleT5vdXRwdXQ8L2tleT4KLQk8c3RyaW5nPnNob3dBc0hUTUw8L3N0cmluZz4KLQk8a2V5PnV1aWQ8L2tleT4KLQk8c3RyaW5nPkI1NDVCQjFCLUE4RTEtNDI2Qy1CNTBBLTQyNkU3OEI5NkQzODwvc3RyaW5nPgotPC9kaWN0PgotPC9wbGlzdD4KZGlmZiAtLWdpdCBhL01pc2MvVGV4dE1hdGUvUHl0aG9uLURldi50bWJ1bmRsZS9Db21tYW5kcy9HbyB0byBJc3N1ZS50bUNvbW1hbmQgYi9NaXNjL1RleHRNYXRlL1B5dGhvbi1EZXYudG1idW5kbGUvQ29tbWFuZHMvR28gdG8gSXNzdWUudG1Db21tYW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NWQzMGJjLi4wMDAwMDAwCi0tLSBhL01pc2MvVGV4dE1hdGUvUHl0aG9uLURldi50bWJ1bmRsZS9Db21tYW5kcy9HbyB0byBJc3N1ZS50bUNvbW1hbmQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4KLTxkaWN0PgotCTxrZXk+YmVmb3JlUnVubmluZ0NvbW1hbmQ8L2tleT4KLQk8c3RyaW5nPm5vcDwvc3RyaW5nPgotCTxrZXk+Y29tbWFuZDwva2V5PgotCTxzdHJpbmc+b3BlbiAiaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZSQoY2F0KSI8L3N0cmluZz4KLQk8a2V5PmZhbGxiYWNrSW5wdXQ8L2tleT4KLQk8c3RyaW5nPndvcmQ8L3N0cmluZz4KLQk8a2V5PmlucHV0PC9rZXk+Ci0JPHN0cmluZz5zZWxlY3Rpb248L3N0cmluZz4KLQk8a2V5Pm5hbWU8L2tleT4KLQk8c3RyaW5nPkdvIHRvIElzc3VlPC9zdHJpbmc+Ci0JPGtleT5vdXRwdXQ8L2tleT4KLQk8c3RyaW5nPmRpc2NhcmQ8L3N0cmluZz4KLQk8a2V5PnV1aWQ8L2tleT4KLQk8c3RyaW5nPkZEMjVBOERDLTIyREMtNEVENC1CMjIyLUI5NDNDOEE5MTE3RDwvc3RyaW5nPgotPC9kaWN0PgotPC9wbGlzdD4KZGlmZiAtLWdpdCBhL01pc2MvVGV4dE1hdGUvUHl0aG9uLURldi50bWJ1bmRsZS9Db21tYW5kcy9PcGVuIERvY3MudG1Db21tYW5kIGIvTWlzYy9UZXh0TWF0ZS9QeXRob24tRGV2LnRtYnVuZGxlL0NvbW1hbmRzL09wZW4gRG9jcy50bUNvbW1hbmQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwMWJlNDMuLjAwMDAwMDAKLS0tIGEvTWlzYy9UZXh0TWF0ZS9QeXRob24tRGV2LnRtYnVuZGxlL0NvbW1hbmRzL09wZW4gRG9jcy50bUNvbW1hbmQKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4KLTxkaWN0PgotCTxrZXk+YmVmb3JlUnVubmluZ0NvbW1hbmQ8L2tleT4KLQk8c3RyaW5nPm5vcDwvc3RyaW5nPgotCTxrZXk+Y29tbWFuZDwva2V5PgotCTxzdHJpbmc+IyBTZWFyY2ggb3JkZXI6Ci0jICAtIEN1cnJlbnQgcHJvamVjdC4KLSMgIC0gVE1fUFlUSE9OREVWX0RPQ1MuCi0jICAtIE9ubGluZSBkb2NzIGluIGRldmVsb3BtZW50LgotCi1odG1sX2luZGV4PSRUTV9QUk9KRUNUX0RJUkVDVE9SWS9Eb2MvYnVpbGQvaHRtbC9pbmRleC5odG1sCi1pZiBbWyAtZiAkaHRtbF9pbmRleCBdXTsgdGhlbgotCW9wZW4gJGh0bWxfaW5kZXgKLWVsaWYgW1sgJFRNX1BZVEhPTkRFVl9ET0NTIF1dOyB0aGVuCi0Jb3BlbiAkVE1fUFlUSE9OREVWX0RPQ1MKLWVsc2UKLQlvcGVuIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvZGV2LwotZmk8L3N0cmluZz4KLQk8a2V5PmlucHV0PC9rZXk+Ci0JPHN0cmluZz5ub25lPC9zdHJpbmc+Ci0JPGtleT5rZXlFcXVpdmFsZW50PC9rZXk+Ci0JPHN0cmluZz5ASDwvc3RyaW5nPgotCTxrZXk+bmFtZTwva2V5PgotCTxzdHJpbmc+T3BlbiBEb2NzPC9zdHJpbmc+Ci0JPGtleT5vdXRwdXQ8L2tleT4KLQk8c3RyaW5nPmRpc2NhcmQ8L3N0cmluZz4KLQk8a2V5PnV1aWQ8L2tleT4KLQk8c3RyaW5nPkJGMzM2RkZGLUUxNEQtNEJGMS1BMTU2LTcxQ0Y3NjhBQzAzNDwvc3RyaW5nPgotPC9kaWN0PgotPC9wbGlzdD4KZGlmZiAtLWdpdCBhL01pc2MvVGV4dE1hdGUvUHl0aG9uLURldi50bWJ1bmRsZS9Db21tYW5kcy9PcGVuIFBFUC50bUNvbW1hbmQgYi9NaXNjL1RleHRNYXRlL1B5dGhvbi1EZXYudG1idW5kbGUvQ29tbWFuZHMvT3BlbiBQRVAudG1Db21tYW5kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZjU1MzNhLi4wMDAwMDAwCi0tLSBhL01pc2MvVGV4dE1hdGUvUHl0aG9uLURldi50bWJ1bmRsZS9Db21tYW5kcy9PcGVuIFBFUC50bUNvbW1hbmQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4KLTxkaWN0PgotCTxrZXk+YmVmb3JlUnVubmluZ0NvbW1hbmQ8L2tleT4KLQk8c3RyaW5nPm5vcDwvc3RyaW5nPgotCTxrZXk+Y29tbWFuZDwva2V5PgotCTxzdHJpbmc+IyBYWFggV29ydGggc3VwcG9ydGluZyB1c2luZyBhIGxvY2FsIGNvcHk/Ci0KLSMgRHVtYiBsdWNrIHRoYXQgYW4gdW5yZWNvZ25pemVkIG51bWJlciBsZWFkcyB0byBhIDAgYmVpbmcgdXNlZC4KLW9wZW4gYHByaW50ZiAiaHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0lMDRkIiAkKGNhdClgPC9zdHJpbmc+Ci0JPGtleT5mYWxsYmFja0lucHV0PC9rZXk+Ci0JPHN0cmluZz53b3JkPC9zdHJpbmc+Ci0JPGtleT5pbnB1dDwva2V5PgotCTxzdHJpbmc+c2VsZWN0aW9uPC9zdHJpbmc+Ci0JPGtleT5uYW1lPC9rZXk+Ci0JPHN0cmluZz5PcGVuIFBFUDwvc3RyaW5nPgotCTxrZXk+b3V0cHV0PC9rZXk+Ci0JPHN0cmluZz5kaXNjYXJkPC9zdHJpbmc+Ci0JPGtleT51dWlkPC9rZXk+Ci0JPHN0cmluZz5FREJCMDM3Ri1BQUUzLTQ1MTItODYzRi1EOUFBODJDOUU1MUU8L3N0cmluZz4KLTwvZGljdD4KLTwvcGxpc3Q+CmRpZmYgLS1naXQgImEvTWlzYy9UZXh0TWF0ZS9QeXRob24tRGV2LnRtYnVuZGxlL1NuaXBwZXRzLzIgdG8gMyAtIE1vZHVsZSBEZWxldGlvbiBcMDUwZG9jc1wwNTEudG1TbmlwcGV0IiAiYi9NaXNjL1RleHRNYXRlL1B5dGhvbi1EZXYudG1idW5kbGUvU25pcHBldHMvMiB0byAzIC0gTW9kdWxlIERlbGV0aW9uIFwwNTBkb2NzXDA1MS50bVNuaXBwZXQiCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZGU4YmFlLi4wMDAwMDAwCi0tLSAiYS9NaXNjL1RleHRNYXRlL1B5dGhvbi1EZXYudG1idW5kbGUvU25pcHBldHMvMiB0byAzIC0gTW9kdWxlIERlbGV0aW9uIFwwNTBkb2NzXDA1MS50bVNuaXBwZXQiCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGljdD4KLQk8a2V5PmNvbnRlbnQ8L2tleT4KLQk8c3RyaW5nPi4uIGRlcHJlY2F0ZWQ6OiAyLjYKLSAgIFRoZSA6bW9kOlxgJHsxfVxgIG1vZHVsZSBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciByZW1vdmFsIGluIFB5dGhvbiAzLjAuCi0kezB9PC9zdHJpbmc+Ci0JPGtleT5uYW1lPC9rZXk+Ci0JPHN0cmluZz4yIHRvIDMgLSBNb2R1bGUgRGVsZXRpb24gKGRvY3MpPC9zdHJpbmc+Ci0JPGtleT50YWJUcmlnZ2VyPC9rZXk+Ci0JPHN0cmluZz4ydG8zZG9jZGVsPC9zdHJpbmc+Ci0JPGtleT51dWlkPC9rZXk+Ci0JPHN0cmluZz4wNTY4NDEwRC1FQUYxLTRBRjMtQjZERS04QUYxMzNBOTE4MjE8L3N0cmluZz4KLTwvZGljdD4KLTwvcGxpc3Q+CmRpZmYgLS1naXQgYS9NaXNjL1RleHRNYXRlL1B5dGhvbi1EZXYudG1idW5kbGUvaW5mby5wbGlzdCBiL01pc2MvVGV4dE1hdGUvUHl0aG9uLURldi50bWJ1bmRsZS9pbmZvLnBsaXN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTEwZDVkLi4wMDAwMDAwCi0tLSBhL01pc2MvVGV4dE1hdGUvUHl0aG9uLURldi50bWJ1bmRsZS9pbmZvLnBsaXN0CisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGljdD4KLQk8a2V5Pm1haW5NZW51PC9rZXk+Ci0JPGRpY3Q+Ci0JCTxrZXk+aXRlbXM8L2tleT4KLQkJPGFycmF5PgotCQkJPHN0cmluZz45NTE5QzIyQi02QUI4LTQxQTEtOTRGNi0wNzlFMEI0NUMxNDc8L3N0cmluZz4KLQkJCTxzdHJpbmc+MDU2ODQxMEQtRUFGMS00QUYzLUI2REUtOEFGMTMzQTkxODIxPC9zdHJpbmc+Ci0JCQk8c3RyaW5nPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvc3RyaW5nPgotCQkJPHN0cmluZz5CNTQ1QkIxQi1BOEUxLTQyNkMtQjUwQS00MjZFNzhCOTZEMzg8L3N0cmluZz4KLQkJCTxzdHJpbmc+NkVGMTUxRTUtNzE0OS00RjgyLTg3OTYtMENDNDBGRTU4OUZBPC9zdHJpbmc+Ci0JCQk8c3RyaW5nPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvc3RyaW5nPgotCQkJPHN0cmluZz5CRjMzNkZGRi1FMTRELTRCRjEtQTE1Ni03MUNGNzY4QUMwMzQ8L3N0cmluZz4KLQkJCTxzdHJpbmc+RkQyNUE4REMtMjJEQy00RUQ0LUIyMjItQjk0M0M4QTkxMTdEPC9zdHJpbmc+Ci0JCQk8c3RyaW5nPkVEQkIwMzdGLUFBRTMtNDUxMi04NjNGLUQ5QUE4MkM5RTUxRTwvc3RyaW5nPgotCQk8L2FycmF5PgotCQk8a2V5PnN1Ym1lbnVzPC9rZXk+Ci0JCTxkaWN0Lz4KLQk8L2RpY3Q+Ci0JPGtleT5uYW1lPC9rZXk+Ci0JPHN0cmluZz5QeXRob24tRGV2PC9zdHJpbmc+Ci0JPGtleT5vcmRlcmluZzwva2V5PgotCTxhcnJheT4KLQkJPHN0cmluZz45NTE5QzIyQi02QUI4LTQxQTEtOTRGNi0wNzlFMEI0NUMxNDc8L3N0cmluZz4KLQkJPHN0cmluZz4wNTY4NDEwRC1FQUYxLTRBRjMtQjZERS04QUYxMzNBOTE4MjE8L3N0cmluZz4KLQkJPHN0cmluZz5CNTQ1QkIxQi1BOEUxLTQyNkMtQjUwQS00MjZFNzhCOTZEMzg8L3N0cmluZz4KLQkJPHN0cmluZz42RUYxNTFFNS03MTQ5LTRGODItODc5Ni0wQ0M0MEZFNTg5RkE8L3N0cmluZz4KLQkJPHN0cmluZz5GRDI1QThEQy0yMkRDLTRFRDQtQjIyMi1COTQzQzhBOTExN0Q8L3N0cmluZz4KLQkJPHN0cmluZz5CRjMzNkZGRi1FMTRELTRCRjEtQTE1Ni03MUNGNzY4QUMwMzQ8L3N0cmluZz4KLQkJPHN0cmluZz5FREJCMDM3Ri1BQUUzLTQ1MTItODYzRi1EOUFBODJDOUU1MUU8L3N0cmluZz4KLQk8L2FycmF5PgotCTxrZXk+dXVpZDwva2V5PgotCTxzdHJpbmc+QTkzMkVDRDEtRDQzQS00RjU3LUI3RkItQTFDRUMzQjY1RDIwPC9zdHJpbmc+Ci08L2RpY3Q+Ci08L3BsaXN0PgpkaWZmIC0tZ2l0IGEvTWlzYy9WaW0vcHl0aG9uLnZpbSBiL01pc2MvVmltL3B5dGhvbi52aW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExZWU3ZWIuLjAwMDAwMDAKLS0tIGEvTWlzYy9WaW0vcHl0aG9uLnZpbQorKysgL2Rldi9udWxsCkBAIC0xLDE0OCArMCwwIEBACi0iIEF1dG8tZ2VuZXJhdGVkIFZpbSBzeW50YXggZmlsZSBmb3IgUHl0aG9uICh0cnVuazogcjYwMzc2TSkuCi0iCi0iIFRvIHVzZTogY29weSBvciBzeW1saW5rIHRvIH4vLnZpbS9zeW50YXgvcHl0aG9uLnZpbQotCi0KLWlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCi0gIGZpbmlzaAotZW5kaWYKLQotaWYgZXhpc3RzKCJweXRob25faGlnaGxpZ2h0X2FsbCIpCi0gIGxldCBweXRob25faGlnaGxpZ2h0X251bWJlcnMgPSAxCi0gIGxldCBweXRob25faGlnaGxpZ2h0X2J1aWx0aW5zID0gMQotICBsZXQgcHl0aG9uX2hpZ2hsaWdodF9leGNlcHRpb25zID0gMQotICBsZXQgcHl0aG9uX2hpZ2hsaWdodF9zcGFjZV9lcnJvcnMgPSAxCi1lbmRpZgotCi1zeW4ga2V5d29yZCBweXRob25TdGF0ZW1lbnQgICAgYXMgYXNzZXJ0IGJyZWFrIGNvbnRpbnVlIGRlbCBleGNlcHQgZXhlYyBmaW5hbGx5Ci1zeW4ga2V5d29yZCBweXRob25TdGF0ZW1lbnQgICAgZ2xvYmFsIGxhbWJkYSBwYXNzIHByaW50IHJhaXNlIHJldHVybiB0cnkgd2l0aAotc3luIGtleXdvcmQgcHl0aG9uU3RhdGVtZW50ICAgIHlpZWxkCi0KLXN5biBrZXl3b3JkIHB5dGhvblN0YXRlbWVudCAgICBkZWYgY2xhc3MgbmV4dGdyb3VwPXB5dGhvbkZ1bmN0aW9uIHNraXB3aGl0ZQotCi1zeW4gbWF0Y2ggcHl0aG9uRnVuY3Rpb24gICAgIlthLXpBLVpfXVthLXpBLVowLTlfXSoiIGNvbnRhaW5lZAotCi1zeW4ga2V5d29yZCBweXRob25SZXBlYXQgICAgZm9yIHdoaWxlCi0KLXN5biBrZXl3b3JkIHB5dGhvbkNvbmRpdGlvbmFsICAgIGlmIGVsaWYgZWxzZQotCi1zeW4ga2V5d29yZCBweXRob25PcGVyYXRvciAgICBhbmQgaW4gaXMgbm90IG9yCi0KLXN5biBrZXl3b3JkIHB5dGhvblByZUNvbmRpdCAgICBpbXBvcnQgZnJvbQotCi1zeW4gbWF0Y2ggcHl0aG9uQ29tbWVudCAgICAiIy4qJCIgY29udGFpbnM9cHl0aG9uVG9kbwotCi1zeW4ga2V5d29yZCBweXRob25Ub2RvICAgIFRPRE8gRklYTUUgWFhYIGNvbnRhaW5lZAotCi1zeW4gcmVnaW9uIHB5dGhvblN0cmluZyAgICBtYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rW3VVXVw9JysgZW5kPSsnKyBza2lwPStcXFxcXHxcXCcrIGNvbnRhaW5zPXB5dGhvbkVzY2FwZQotc3luIHJlZ2lvbiBweXRob25TdHJpbmcgICAgbWF0Y2hncm91cD1Ob3JtYWwgc3RhcnQ9K1t1VV1cPSIrIGVuZD0rIisgc2tpcD0rXFxcXFx8XFwiKyBjb250YWlucz1weXRob25Fc2NhcGUKLXN5biByZWdpb24gcHl0aG9uU3RyaW5nICAgIG1hdGNoZ3JvdXA9Tm9ybWFsIHN0YXJ0PStbdVVdXD0iIiIrIGVuZD0rIiIiKyAgY29udGFpbnM9cHl0aG9uRXNjYXBlCi1zeW4gcmVnaW9uIHB5dGhvblN0cmluZyAgICBtYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rW3VVXVw9JycnKyBlbmQ9KycnJysgIGNvbnRhaW5zPXB5dGhvbkVzY2FwZQotc3luIHJlZ2lvbiBweXRob25TdHJpbmcgICAgbWF0Y2hncm91cD1Ob3JtYWwgc3RhcnQ9K1t1VV1cPVtyUl0nKyBlbmQ9KycrIHNraXA9K1xcXFxcfFxcJysgCi1zeW4gcmVnaW9uIHB5dGhvblN0cmluZyAgICBtYXRjaGdyb3VwPU5vcm1hbCBzdGFydD0rW3VVXVw9W3JSXSIrIGVuZD0rIisgc2tpcD0rXFxcXFx8XFwiKyAKLXN5biByZWdpb24gcHl0aG9uU3RyaW5nICAgIG1hdGNoZ3JvdXA9Tm9ybWFsIHN0YXJ0PStbdVVdXD1bclJdIiIiKyBlbmQ9KyIiIisgIAotc3luIHJlZ2lvbiBweXRob25TdHJpbmcgICAgbWF0Y2hncm91cD1Ob3JtYWwgc3RhcnQ9K1t1VV1cPVtyUl0nJycrIGVuZD0rJycnKyAgCi0KLXN5biBtYXRjaCBweXRob25Fc2NhcGUgICAgK1xcW2FiZm5ydHZcJyJcXF0rIGNvbnRhaW5lZAotc3luIG1hdGNoIHB5dGhvbkVzY2FwZSAgICAiXFxcb1x7MSwzfSIgY29udGFpbmVkCi1zeW4gbWF0Y2ggcHl0aG9uRXNjYXBlICAgICJcXHhceFx7Mn0iIGNvbnRhaW5lZAotc3luIG1hdGNoIHB5dGhvbkVzY2FwZSAgICAiXChcXHVceFx7NH1cfFxcVVx4XHs4fVwpIiBjb250YWluZWQKLQotc3luIG1hdGNoIHB5dGhvbkVzY2FwZSAgICAiXFwkIgotCi0KLWlmIGV4aXN0cygicHl0aG9uX2hpZ2hsaWdodF9udW1iZXJzIikKLSAgc3luIG1hdGNoIHB5dGhvbk51bWJlciAgICAiXDwweFx4XCtbTGxdXD1cPiIKLSAgc3luIG1hdGNoIHB5dGhvbk51bWJlciAgICAiXDxcZFwrW0xsakpdXD1cPiIKLSAgc3luIG1hdGNoIHB5dGhvbk51bWJlciAgICAiXC5cZFwrXChbZUVdWystXVw9XGRcK1wpXD1bakpdXD1cPiIKLSAgc3luIG1hdGNoIHB5dGhvbk51bWJlciAgICAiXDxcZFwrXC5cKFtlRV1bKy1dXD1cZFwrXClcPVtqSl1cPVw+IgotICBzeW4gbWF0Y2ggcHl0aG9uTnVtYmVyICAgICJcPFxkXCtcLlxkXCtcKFtlRV1bKy1dXD1cZFwrXClcPVtqSl1cPVw+IgotCi1lbmRpZgotCi0KLWlmIGV4aXN0cygicHl0aG9uX2hpZ2hsaWdodF9idWlsdGlucyIpCi0gIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4gICAgRWxsaXBzaXMgRmFsc2UgTm9uZSBOb3RJbXBsZW1lbnRlZCBUcnVlIF9fZGVidWdfXwotICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluICAgIF9faW1wb3J0X18gYWJzIGFsbCBhbnkgYm9vbAotICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluICAgIGJ1ZmZlciBjYWxsYWJsZSBjaHIgY2xhc3NtZXRob2QgY21wCi0gIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4gICAgY29tcGxleCBjb3B5cmlnaHQgY3JlZGl0cyBkZWxhdHRyIGRpY3QKLSAgc3luIGtleXdvcmQgcHl0aG9uQnVpbHRpbiAgICBkaXIgZGl2bW9kIGVudW1lcmF0ZSBldmFsIGV4ZWMgZXhpdAotICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluICAgIGZpbHRlciBmbG9hdCBmcm96ZW5zZXQgZ2V0YXR0ciBnbG9iYWxzIGhhc2F0dHIKLSAgc3luIGtleXdvcmQgcHl0aG9uQnVpbHRpbiAgICBoYXNoIGhlbHAgaGV4IGlkIGludCBpc2luc3RhbmNlCi0gIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4gICAgaXNzdWJjbGFzcyBpdGVyIGxlbiBsaWNlbnNlIGxpc3QgbG9jYWxzIG1hcAotICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluICAgIG1heCBtaW4gb2JqZWN0IG9jdCBvcGVuIG9yZCBwb3cgcHJvcGVydHkgcXVpdAotICBzeW4ga2V5d29yZCBweXRob25CdWlsdGluICAgIHJhbmdlIHJlbG9hZCByZXByIHJldmVyc2VkIHJvdW5kCi0gIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4gICAgc2V0IHNldGF0dHIgc2xpY2Ugc29ydGVkIHN0YXRpY21ldGhvZCBzdHIgc3VtCi0gIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4gICAgc3VwZXIgdHJ1bmMgdHVwbGUgdHlwZSB1bmljb2RlIHZhcnMgCi0gIHN5biBrZXl3b3JkIHB5dGhvbkJ1aWx0aW4gICAgemlwCi0KLWVuZGlmCi0KLQotaWYgZXhpc3RzKCJweXRob25faGlnaGxpZ2h0X2V4Y2VwdGlvbnMiKQotICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb24gICAgQXJpdGhtZXRpY0Vycm9yIEFzc2VydGlvbkVycm9yIEF0dHJpYnV0ZUVycm9yCi0gIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbiAgICBCYXNlRXhjZXB0aW9uIERlcHJlY2F0aW9uV2FybmluZyBFT0ZFcnJvcgotICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb24gICAgRW52aXJvbm1lbnRFcnJvciBFeGNlcHRpb24gRmxvYXRpbmdQb2ludEVycm9yCi0gIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbiAgICBGdXR1cmVXYXJuaW5nIEdlbmVyYXRvckV4aXQgSU9FcnJvciBJbXBvcnRFcnJvcgotICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb24gICAgSW1wb3J0V2FybmluZyBJbmRlbnRhdGlvbkVycm9yIEluZGV4RXJyb3IKLSAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9uICAgIEtleUVycm9yIEtleWJvYXJkSW50ZXJydXB0IExvb2t1cEVycm9yCi0gIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbiAgICBNZW1vcnlFcnJvciBOYW1lRXJyb3IgTm90SW1wbGVtZW50ZWRFcnJvcgotICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb24gICAgT1NFcnJvciBPdmVyZmxvd0Vycm9yIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcKLSAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9uICAgIFJlZmVyZW5jZUVycm9yIFJ1bnRpbWVFcnJvciBSdW50aW1lV2FybmluZwotICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb24gICAgU3RvcEl0ZXJhdGlvbiBTeW50YXhFcnJvcgotICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb24gICAgU3ludGF4V2FybmluZyBTeXN0ZW1FcnJvciBTeXN0ZW1FeGl0IFRhYkVycm9yCi0gIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbiAgICBUeXBlRXJyb3IgVW5ib3VuZExvY2FsRXJyb3IgVW5pY29kZURlY29kZUVycm9yCi0gIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbiAgICBVbmljb2RlRW5jb2RlRXJyb3IgVW5pY29kZUVycm9yCi0gIHN5biBrZXl3b3JkIHB5dGhvbkV4Y2VwdGlvbiAgICBVbmljb2RlVHJhbnNsYXRlRXJyb3IgVW5pY29kZVdhcm5pbmcKLSAgc3luIGtleXdvcmQgcHl0aG9uRXhjZXB0aW9uICAgIFVzZXJXYXJuaW5nIFZhbHVlRXJyb3IgV2FybmluZwotICBzeW4ga2V5d29yZCBweXRob25FeGNlcHRpb24gICAgWmVyb0RpdmlzaW9uRXJyb3IKLQotZW5kaWYKLQotCi1pZiBleGlzdHMoInB5dGhvbl9oaWdobGlnaHRfc3BhY2VfZXJyb3JzIikKLSAgc3luIG1hdGNoIHB5dGhvblNwYWNlRXJyb3IgICAgZGlzcGxheSBleGNsdWRlbmwgIlxTXHNcKyQibXM9cysxCi0gIHN5biBtYXRjaCBweXRob25TcGFjZUVycm9yICAgIGRpc3BsYXkgIiBcK1x0IgotICBzeW4gbWF0Y2ggcHl0aG9uU3BhY2VFcnJvciAgICBkaXNwbGF5ICJcdFwrICIKLQotZW5kaWYKLQotCi0gIGhpIGRlZiBsaW5rIHB5dGhvblN0YXRlbWVudCBTdGF0ZW1lbnQKLSAgaGkgZGVmIGxpbmsgcHl0aG9uU3RhdGVtZW50IFN0YXRlbWVudAotICBoaSBkZWYgbGluayBweXRob25GdW5jdGlvbiBGdW5jdGlvbgotICBoaSBkZWYgbGluayBweXRob25SZXBlYXQgUmVwZWF0Ci0gIGhpIGRlZiBsaW5rIHB5dGhvbkNvbmRpdGlvbmFsIENvbmRpdGlvbmFsCi0gIGhpIGRlZiBsaW5rIHB5dGhvbk9wZXJhdG9yIE9wZXJhdG9yCi0gIGhpIGRlZiBsaW5rIHB5dGhvblByZUNvbmRpdCBQcmVDb25kaXQKLSAgaGkgZGVmIGxpbmsgcHl0aG9uQ29tbWVudCBDb21tZW50Ci0gIGhpIGRlZiBsaW5rIHB5dGhvblRvZG8gVG9kbwotICBoaSBkZWYgbGluayBweXRob25TdHJpbmcgU3RyaW5nCi0gIGhpIGRlZiBsaW5rIHB5dGhvbkVzY2FwZSBTcGVjaWFsCi0gIGhpIGRlZiBsaW5rIHB5dGhvbkVzY2FwZSBTcGVjaWFsCi0KLSAgaWYgZXhpc3RzKCJweXRob25faGlnaGxpZ2h0X251bWJlcnMiKQotICAgIGhpIGRlZiBsaW5rIHB5dGhvbk51bWJlciBOdW1iZXIKLSAgZW5kaWYKLQotICBpZiBleGlzdHMoInB5dGhvbl9oaWdobGlnaHRfYnVpbHRpbnMiKQotICAgIGhpIGRlZiBsaW5rIHB5dGhvbkJ1aWx0aW4gRnVuY3Rpb24KLSAgZW5kaWYKLQotICBpZiBleGlzdHMoInB5dGhvbl9oaWdobGlnaHRfZXhjZXB0aW9ucyIpCi0gICAgaGkgZGVmIGxpbmsgcHl0aG9uRXhjZXB0aW9uIEV4Y2VwdGlvbgotICBlbmRpZgotCi0gIGlmIGV4aXN0cygicHl0aG9uX2hpZ2hsaWdodF9zcGFjZV9lcnJvcnMiKQotICAgIGhpIGRlZiBsaW5rIHB5dGhvblNwYWNlRXJyb3IgRXJyb3IKLSAgZW5kaWYKLQotCi0iIFVuY29tbWVudCB0aGUgJ21pbmxpbmVzJyBzdGF0ZW1lbnQgbGluZSBhbmQgY29tbWVudCBvdXQgdGhlICdtYXhsaW5lcycKLSIgc3RhdGVtZW50IGxpbmU7IGNoYW5nZXMgYmVoYXZpb3VyIHRvIGxvb2sgYXQgbGVhc3QgMjAwMCBsaW5lcyBwcmV2aW91c2x5IGZvcgotIiBzeW50YXggbWF0Y2hlcyBpbnN0ZWFkIG9mIGF0IG1vc3QgMjAwIGxpbmVzCi1zeW4gc3luYyBtYXRjaCBweXRob25TeW5jIGdyb3VwaGVyZSBOT05FICIpOiQiCi1zeW4gc3luYyBtYXhsaW5lcz0yMDAKLSJzeW4gc3luYyBtaW5saW5lcz0yMDAwCi0KLWxldCBiOmN1cnJlbnRfc3ludGF4ID0gInB5dGhvbiIKZGlmZiAtLWdpdCBhL01pc2MvVmltL3N5bnRheF90ZXN0LnB5IGIvTWlzYy9WaW0vc3ludGF4X3Rlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkMjA4NjYuLjAwMDAwMDAKLS0tIGEvTWlzYy9WaW0vc3ludGF4X3Rlc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0iIiJUZXN0IGZpbGUgZm9yIHN5bnRheCBoaWdobGlnaHRpbmcgb2YgZWRpdG9ycy4KLQotTWVhbnQgdG8gY292ZXIgYSB3aWRlIHJhbmdlIG9mIGRpZmZlcmVudCB0eXBlcyBvZiBzdGF0ZW1lbnRzIGFuZCBleHByZXNzaW9ucy4KLU5vdCBuZWNlc3NhcmlseSBzZW5zaWNhbCBvciBjb21wcmVoZW5zaXZlIChhc3N1bWUgdGhhdCBpZiBvbmUgZXhjZXB0aW9uIGlzCi1oaWdobGlnaHRlZCB0aGF0IGFsbCBhcmUsIGZvciBpbnN0YW5jZSkuCi0KLUV4dHJhbmVvdXMgdHJhaWxpbmcgd2hpdGVzcGFjZSBjYW4ndCBiZSB0ZXN0ZWQgYmVjYXVzZSBvZiBzdm4gcHJlLWNvbW1pdCBob29rCi1jaGVja3MgZm9yIHN1Y2ggdGhpbmdzLgotCi0iIiIKLSMgQ29tbWVudAotIyBPUFRJT05BTDogWFhYIGNhdGNoIHlvdXIgYXR0ZW50aW9uCi0KLSMgU3RhdGVtZW50cwotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudCAgIyBJbXBvcnQKLWZyb20gc3lzIGltcG9ydCBwYXRoIGFzIHRoaW5nCi1hc3NlcnQgVHJ1ZSAjIGtleXdvcmQKLWRlZiBmb28oKTogICMgZnVuY3Rpb24gZGVmaW5pdGlvbgotICAgIHJldHVybiBbXQotY2xhc3MgQmFyKG9iamVjdCk6ICAjIENsYXNzIGRlZmluaXRpb24KLSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICBwYXNzCi0gICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzKToKLSAgICAgICAgcGFzcwotZm9vKCkgICMgVU5DT0xPVVJFRDogZnVuY3Rpb24gY2FsbAotd2hpbGUgRmFsc2U6ICAjICd3aGlsZScKLSAgICBjb250aW51ZQotZm9yIHggaW4gZm9vKCk6ICAjICdmb3InCi0gICAgYnJlYWsKLXdpdGggQmFyKCkgYXMgc3R1ZmY6Ci0gICAgcGFzcwotaWYgRmFsc2U6IHBhc3MgICMgJ2lmJwotZWxpZiBGYWxzZTogcGFzcwotZWxzZTogcGFzcwotCi0jIENvbnN0YW50cwotJ3NpbmdsZS1xdW90ZScsIHUndW5pY29kZScgIyBTdHJpbmdzIG9mIGFsbCBraW5kczsgcHJlZml4ZXMgbm90IGhpZ2hsaWdodGVkCi0iZG91YmxlLXF1b3RlIgotIiIidHJpcGxlIGRvdWJsZS1xdW90ZSIiIgotJycndHJpcGxlIHNpbmdsZS1xdW90ZScnJwotcidyYXcnCi11cid1bmljb2RlIHJhdycKLSdlc2NhcGVcbicKLSdcMDQnICAjIG9jdGFsCi0nXHhGRicgIyBoZXgKLSdcdTExMTEnICMgdW5pY29kZSBjaGFyYWN0ZXIKLTEgICMgSW50ZWdyYWwKLTFMCi0xLjAgICMgRmxvYXQKLS4xCi0xKzJqICAjIENvbXBsZXgKLQotIyBFeHByZXNzaW9ucwotMSBhbmQgMiBvciAzICAjIEJvb2xlYW4gb3BlcmF0b3JzCi0yIDwgMyAgIyBVTkNPTE9VUkVEOiBjb21wYXJpc29uIG9wZXJhdG9ycwotc3BhbSA9IDQyICAjIFVOQ09MT1VSRUQ6IGFzc2lnbm1lbnQKLTIgKyAzICAjIFVOQ09MT1VSRUQ6IG51bWJlciBvcGVyYXRvcnMKLVtdICAjIFVOQ09MT1VSRUQ6IGxpc3QKLXt9ICAjIFVOQ09MT1VSRUQ6IGRpY3QKLSgxLCkgICMgVU5DT0xPVVJFRDogdHVwbGUKLWFsbCAgIyBCdWlsdC1pbiBmdW5jdGlvbnMKLUdlbmVyYXRvckV4aXQgICMgRXhjZXB0aW9ucwpkaWZmIC0tZ2l0IGEvTWlzYy9WaW0vdmltX3N5bnRheC5weSBiL01pc2MvVmltL3ZpbV9zeW50YXgucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3MmIzNTAuLjAwMDAwMDAKLS0tIGEvTWlzYy9WaW0vdmltX3N5bnRheC5weQorKysgL2Rldi9udWxsCkBAIC0xLDIyOSArMCwwIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50Ci0jIFhYWChubm9yd2l0eik6IHdoYXQgdmVyc2lvbnMgb2YgcHl0aG9uIGlzIHRoaXMgZmlsZSBzdXBwb3NlZCB0byB3b3JrIHdpdGg/Ci0jIEl0IHVzZXMgdGhlIG9sZCBwcmludCBzdGF0ZW1lbnQgbm90IGluIHB5M2suCi0KLWltcG9ydCBrZXl3b3JkCi1pbXBvcnQgZXhjZXB0aW9ucwotaW1wb3J0IGJ1aWx0aW5zCi1mcm9tIHN0cmluZyBpbXBvcnQgVGVtcGxhdGUKLWZyb20gc3lzIGltcG9ydCBzdWJ2ZXJzaW9uCi0KLWNvbW1lbnRfaGVhZGVyID0gJycnIiBBdXRvLWdlbmVyYXRlZCBWaW0gc3ludGF4IGZpbGUgZm9yIFB5dGhvbiAoJXM6IHIlcykuCi0iCi0iIFRvIHVzZTogY29weSBvciBzeW1saW5rIHRvIH4vLnZpbS9zeW50YXgvcHl0aG9uLnZpbScnJwotCi1zdGF0ZW1lbnRfaGVhZGVyID0gIiIiCi1pZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQotICBmaW5pc2gKLWVuZGlmIiIiCi0KLXN0YXRlbWVudF9mb290ZXIgPSAnJycKLSIgVW5jb21tZW50IHRoZSAnbWlubGluZXMnIHN0YXRlbWVudCBsaW5lIGFuZCBjb21tZW50IG91dCB0aGUgJ21heGxpbmVzJwotIiBzdGF0ZW1lbnQgbGluZTsgY2hhbmdlcyBiZWhhdmlvdXIgdG8gbG9vayBhdCBsZWFzdCAyMDAwIGxpbmVzIHByZXZpb3VzbHkgZm9yCi0iIHN5bnRheCBtYXRjaGVzIGluc3RlYWQgb2YgYXQgbW9zdCAyMDAgbGluZXMKLXN5biBzeW5jIG1hdGNoIHB5dGhvblN5bmMgZ3JvdXBoZXJlIE5PTkUgIik6JCIKLXN5biBzeW5jIG1heGxpbmVzPTIwMAotInN5biBzeW5jIG1pbmxpbmVzPTIwMDAKLQotbGV0IGI6Y3VycmVudF9zeW50YXggPSAicHl0aG9uIicnJwotCi1sb29waW5nID0gKCdmb3InLCAnd2hpbGUnKQotY29uZGl0aW9uYWxzID0gKCdpZicsICdlbGlmJywgJ2Vsc2UnKQotYm9vbGVhbl9vcHMgPSAoJ2FuZCcsICdpbicsICdpcycsICdub3QnLCAnb3InKQotaW1wb3J0X3N0bXRzID0gKCdpbXBvcnQnLCAnZnJvbScpCi1vYmplY3RfZGVmcyA9ICgnZGVmJywgJ2NsYXNzJykKLQotZXhjZXB0aW9uX25hbWVzID0gc29ydGVkKGV4YyBmb3IgZXhjIGluIGRpcihleGNlcHRpb25zKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgZXhjLnN0YXJ0c3dpdGgoJ19fJykpCi0KLSMgTmVlZCB0byBpbmNsdWRlIGZ1bmN0aW9ucyB0aGF0IHN0YXJ0IHdpdGggJ19fJyAoZS5nLiwgX19pbXBvcnRfXyksIGJ1dAotIyBub3RoaW5nIHRoYXQgY29tZXMgd2l0aCBtb2R1bGVzIChlLmcuLCBfX25hbWVfXyksIHNvIGp1c3QgZXhjbHVkZSBhbnl0aGluZyBpbgotIyB0aGUgJ2V4Y2VwdGlvbnMnIG1vZHVsZSBzaW5jZSB3ZSB3YW50IHRvIGlnbm9yZSBleGNlcHRpb25zICphbmQqIHdoYXQgYW55Ci0jIG1vZHVsZSB3b3VsZCBoYXZlCi1idWlsdGluX25hbWVzID0gc29ydGVkKGJ1aWx0aW4gZm9yIGJ1aWx0aW4gaW4gZGlyKGJ1aWx0aW5zKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGJ1aWx0aW4gbm90IGluIGRpcihleGNlcHRpb25zKSkKLQotZXNjYXBlcyA9IChyJytcXFthYmZucnR2XCciXFxdKycsIHInIlxcXG9cezEsM30iJywgciciXFx4XHhcezJ9IicsCi0gICAgICAgICAgICByJyJcKFxcdVx4XHs0fVx8XFxVXHhcezh9XCkiJywgciciXFwkIicpCi0KLXRvZG9zID0gKCJUT0RPIiwgIkZJWE1FIiwgIlhYWCIpCi0KLSMgWFhYIGNvZGlmeT8KLW51bWJlcnMgPSAociciXDwweFx4XCtbTGxdXD1cPiInLCByJyJcPFxkXCtbTGxqSl1cPVw+IicsCi0gICAgICAgICAgICAnIlwuXGRcK1woW2VFXVsrLV1cPVxkXCtcKVw9W2pKXVw9XD4iJywKLSAgICAgICAgICAgICciXDxcZFwrXC5cKFtlRV1bKy1dXD1cZFwrXClcPVtqSl1cPVw+IicsCi0gICAgICAgICAgICAnIlw8XGRcK1wuXGRcK1woW2VFXVsrLV1cPVxkXCtcKVw9W2pKXVw9XD4iJykKLQotY29udGFpbmVkID0gbGFtYmRhIHg6ICIlcyBjb250YWluZWQiICUgeAotCi1kZWYgc3RyX3JlZ2V4ZXMoKToKLSAgICAiIiJHZW5lcmF0b3IgdG8geWllbGQgdmFyaW91cyBjb21iaW5hdGlvbnMgb2Ygc3RyaW5ncyByZWdleGVzIiIiCi0gICAgcmVnZXhfdGVtcGxhdGUgPSBUZW1wbGF0ZSgnbWF0Y2hncm91cD1Ob3JtYWwgJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGFydD0rW3VVXVw9JHtyYXd9JHtzZXB9KyAnICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VuZD0rJHtzZXB9KyAnICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyR7c2tpcH0gJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcke2NvbnRhaW5zfScpCi0gICAgc2tpcF9yZWdleCA9IFRlbXBsYXRlKHInc2tpcD0rXFxcXFx8XFwke3NlcH0rJykKLSAgICBmb3IgcmF3IGluICgnJywgJ1tyUl0nKToKLSAgICAgICAgZm9yIHNlcGFyYXRvciBpbiAoIiciLCAnIicsICciIiInLCAiJycnIik6Ci0gICAgICAgICAgICBpZiBsZW4oc2VwYXJhdG9yKSA9PSAxOgotICAgICAgICAgICAgICAgIHNraXAgPSBza2lwX3JlZ2V4LnN1YnN0aXR1dGUoc2VwPXNlcGFyYXRvcikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2tpcCA9ICcnCi0gICAgICAgICAgICBjb250YWlucyA9ICdjb250YWlucz1weXRob25Fc2NhcGUnIGlmIG5vdCByYXcgZWxzZSAnJwotICAgICAgICAgICAgeWllbGQgcmVnZXhfdGVtcGxhdGUuc3Vic3RpdHV0ZShyYXc9cmF3LCBzZXA9c2VwYXJhdG9yLCBza2lwPXNraXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zID0gY29udGFpbnMpCi0KLXNwYWNlX2Vycm9ycyA9IChyJ2V4Y2x1ZGVubCAiXFNcc1wrJCJtcz1zKzEnLCByJyIgXCtcdCInLCByJyJcdFwrICInKQotCi1zdGF0ZW1lbnRzID0gKAotICAgICAgICAgICAgICAgICgnJywKLSAgICAgICAgICAgICAgICAgICAgIyBYWFggTWlnaHQgbmVlZCB0byBjaGFuZ2UgcHl0aG9uU3RhdGVtZW50IHNpbmNlIGhhdmUKLSAgICAgICAgICAgICAgICAgICAgIyBzcGVjaWZpYyBSZXBlYXQsIENvbmRpdGlvbmFsLCBPcGVyYXRvciwgZXRjLiBmb3IgJ3doaWxlJywKLSAgICAgICAgICAgICAgICAgICAgIyBldGMuCi0gICAgICAgICAgICAgICAgICAgIFsoIlN0YXRlbWVudCIsICJweXRob25TdGF0ZW1lbnQiLCAia2V5d29yZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAoa3cgZm9yIGt3IGluIGtleXdvcmQua3dsaXN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYga3cgbm90IGluIChsb29waW5nICsgY29uZGl0aW9uYWxzICsgYm9vbGVhbl9vcHMgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydF9zdG10cyArIG9iamVjdF9kZWZzKSkKLSAgICAgICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICAgICAgKCJTdGF0ZW1lbnQiLCAicHl0aG9uU3RhdGVtZW50IiwgImtleXdvcmQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICgnICcuam9pbihvYmplY3RfZGVmcykgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIG5leHRncm91cD1weXRob25GdW5jdGlvbiBza2lwd2hpdGUnKSksCi0gICAgICAgICAgICAgICAgICAgICAoIkZ1bmN0aW9uIiwicHl0aG9uRnVuY3Rpb24iLCAibWF0Y2giLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lZCgnIlthLXpBLVpfXVthLXpBLVowLTlfXSoiJykpLAotICAgICAgICAgICAgICAgICAgICAgKCJSZXBlYXQiLCAicHl0aG9uUmVwZWF0IiwgImtleXdvcmQiLCBsb29waW5nKSwKLSAgICAgICAgICAgICAgICAgICAgICgiQ29uZGl0aW9uYWwiLCAicHl0aG9uQ29uZGl0aW9uYWwiLCAia2V5d29yZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxzKSwKLSAgICAgICAgICAgICAgICAgICAgICgiT3BlcmF0b3IiLCAicHl0aG9uT3BlcmF0b3IiLCAia2V5d29yZCIsIGJvb2xlYW5fb3BzKSwKLSAgICAgICAgICAgICAgICAgICAgICgiUHJlQ29uZGl0IiwgInB5dGhvblByZUNvbmRpdCIsICJrZXl3b3JkIiwgaW1wb3J0X3N0bXRzKSwKLSAgICAgICAgICAgICAgICAgICAgICgiQ29tbWVudCIsICJweXRob25Db21tZW50IiwgIm1hdGNoIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAnIiMuKiQiIGNvbnRhaW5zPXB5dGhvblRvZG8nKSwKLSAgICAgICAgICAgICAgICAgICAgICgiVG9kbyIsICJweXRob25Ub2RvIiwgImtleXdvcmQiLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lZCgnICcuam9pbih0b2RvcykpKSwKLSAgICAgICAgICAgICAgICAgICAgICgiU3RyaW5nIiwgInB5dGhvblN0cmluZyIsICJyZWdpb24iLCBzdHJfcmVnZXhlcygpKSwKLSAgICAgICAgICAgICAgICAgICAgICgiU3BlY2lhbCIsICJweXRob25Fc2NhcGUiLCAibWF0Y2giLAotICAgICAgICAgICAgICAgICAgICAgICAgIChjb250YWluZWQoZXNjKSBmb3IgZXNjIGluIGVzY2FwZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90ICckJyBpbiBlc2MpKSwKLSAgICAgICAgICAgICAgICAgICAgICgiU3BlY2lhbCIsICJweXRob25Fc2NhcGUiLCAibWF0Y2giLCByJyJcXCQiJyksCi0gICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgICgicHl0aG9uX2hpZ2hsaWdodF9udW1iZXJzIiwKLSAgICAgICAgICAgICAgICAgICAgWygiTnVtYmVyIiwgInB5dGhvbk51bWJlciIsICJtYXRjaCIsIG51bWJlcnMpXQotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgKCJweXRob25faGlnaGxpZ2h0X2J1aWx0aW5zIiwKLSAgICAgICAgICAgICAgICAgICAgWygiRnVuY3Rpb24iLCAicHl0aG9uQnVpbHRpbiIsICJrZXl3b3JkIiwgYnVpbHRpbl9uYW1lcyldCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICAoInB5dGhvbl9oaWdobGlnaHRfZXhjZXB0aW9ucyIsCi0gICAgICAgICAgICAgICAgICAgIFsoIkV4Y2VwdGlvbiIsICJweXRob25FeGNlcHRpb24iLCAia2V5d29yZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25fbmFtZXMpXQotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgKCJweXRob25faGlnaGxpZ2h0X3NwYWNlX2Vycm9ycyIsCi0gICAgICAgICAgICAgICAgICAgIFsoIkVycm9yIiwgInB5dGhvblNwYWNlRXJyb3IiLCAibWF0Y2giLAotICAgICAgICAgICAgICAgICAgICAgICAgKCJkaXNwbGF5ICIgKyBlcnIgZm9yIGVyciBpbiBzcGFjZV9lcnJvcnMpKV0KLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgKQotCi1kZWYgc3luX3ByZWZpeCh0eXBlXywga2luZCk6Ci0gICAgcmV0dXJuICdzeW4gJXMgJXMgICAgJyAlICh0eXBlXywga2luZCkKLQotZGVmIGZpbGxfc3RtdChpdGVyYWJsZSwgZmlsbF9sZW4pOgotICAgICIiIllpZWxkIGEgc3RyaW5nIHRoYXQgZmlsbHMgYXQgbW9zdCBmaWxsX2xlbiBjaGFyYWN0ZXJzIHdpdGggc3RyaW5ncwotICAgIHJldHVybmVkIGJ5ICdpdGVyYWJsZScgYW5kIHNlcGFyYXRlZCBieSBhIHNwYWNlIiIiCi0gICAgIyBEZWFsIHdpdGggdHJhaWxpbmcgY2hhciB0byBoYW5kbGUgJyAnLmpvaW4oKSBjYWxjdWxhdGlvbgotICAgIGZpbGxfbGVuICs9IDEKLSAgICBvdmVyZmxvdyA9IE5vbmUKLSAgICBpdCA9IGl0ZXIoaXRlcmFibGUpCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgYnVmZmVyXyA9IFtdCi0gICAgICAgIHRvdGFsX2xlbiA9IDAKLSAgICAgICAgaWYgb3ZlcmZsb3c6Ci0gICAgICAgICAgICBidWZmZXJfLmFwcGVuZChvdmVyZmxvdykKLSAgICAgICAgICAgIHRvdGFsX2xlbiArPSBsZW4ob3ZlcmZsb3cpICsgMQotICAgICAgICAgICAgb3ZlcmZsb3cgPSBOb25lCi0gICAgICAgIHdoaWxlIHRvdGFsX2xlbiA8IGZpbGxfbGVuOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG5ld19pdGVtID0gbmV4dChpdCkKLSAgICAgICAgICAgICAgICBidWZmZXJfLmFwcGVuZChuZXdfaXRlbSkKLSAgICAgICAgICAgICAgICB0b3RhbF9sZW4gKz0gbGVuKG5ld19pdGVtKSArIDEKLSAgICAgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgotICAgICAgICAgICAgICAgIGlmIGJ1ZmZlcl86Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgaWYgb3ZlcmZsb3c6Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxkIG92ZXJmbG93Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGlmIHRvdGFsX2xlbiA+IGZpbGxfbGVuOgotICAgICAgICAgICAgb3ZlcmZsb3cgPSBidWZmZXJfLnBvcCgpCi0gICAgICAgICAgICB0b3RhbF9sZW4gLT0gbGVuKG92ZXJmbG93KSAtIDEKLSAgICAgICAgcmV0ID0gJyAnLmpvaW4oYnVmZmVyXykKLSAgICAgICAgYXNzZXJ0IGxlbihyZXQpIDw9IGZpbGxfbGVuCi0gICAgICAgIHlpZWxkIHJldAotCi1GSUxMID0gODAKLQotZGVmIG1haW4oZmlsZV9wYXRoKToKLSAgICB3aXRoIG9wZW4oZmlsZV9wYXRoLCAndycpIGFzIEZJTEU6Ci0gICAgICAgICMgQ29tbWVudCBmb3IgZmlsZQotICAgICAgICBwcmludD4+RklMRSwgY29tbWVudF9oZWFkZXIgJSBzdWJ2ZXJzaW9uWzE6XQotICAgICAgICBwcmludD4+RklMRSwgJycKLSAgICAgICAgIyBTdGF0ZW1lbnRzIGF0IHN0YXJ0IG9mIGZpbGUKLSAgICAgICAgcHJpbnQ+PkZJTEUsIHN0YXRlbWVudF9oZWFkZXIKLSAgICAgICAgcHJpbnQ+PkZJTEUsICcnCi0gICAgICAgICMgR2VuZXJhdGUgY2FzZSBmb3IgcHl0aG9uX2hpZ2hsaWdodF9hbGwKLSAgICAgICAgcHJpbnQ+PkZJTEUsICdpZiBleGlzdHMoInB5dGhvbl9oaWdobGlnaHRfYWxsIiknCi0gICAgICAgIGZvciBzdGF0ZW1lbnRfdmFyLCBzdGF0ZW1lbnRfcGFydHMgaW4gc3RhdGVtZW50czoKLSAgICAgICAgICAgIGlmIHN0YXRlbWVudF92YXI6Ci0gICAgICAgICAgICAgICAgcHJpbnQ+PkZJTEUsICcgIGxldCAlcyA9IDEnICUgc3RhdGVtZW50X3ZhcgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcHJpbnQ+PkZJTEUsICdlbmRpZicKLSAgICAgICAgICAgIHByaW50Pj5GSUxFLCAnJwotICAgICAgICAjIEdlbmVyYXRlIFB5dGhvbiBncm91cHMKLSAgICAgICAgZm9yIHN0YXRlbWVudF92YXIsIHN0YXRlbWVudF9wYXJ0cyBpbiBzdGF0ZW1lbnRzOgotICAgICAgICAgICAgaWYgc3RhdGVtZW50X3ZhcjoKLSAgICAgICAgICAgICAgICBwcmludD4+RklMRSwgJ2lmIGV4aXN0cygiJXMiKScgJSBzdGF0ZW1lbnRfdmFyCi0gICAgICAgICAgICAgICAgaW5kZW50ID0gJyAgJwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpbmRlbnQgPSAnJwotICAgICAgICAgICAgZm9yIGNvbG91cl9ncm91cCwgZ3JvdXAsIHR5cGVfLCBhcmd1bWVudHMgaW4gc3RhdGVtZW50X3BhcnRzOgotICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3VtZW50cywgYmFzZXN0cmluZyk6Ci0gICAgICAgICAgICAgICAgICAgIHByZWZpeCA9IHN5bl9wcmVmaXgodHlwZV8sIGdyb3VwKQotICAgICAgICAgICAgICAgICAgICBpZiB0eXBlXyA9PSAna2V5d29yZCc6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdG10X2l0ZXIgPSBmaWxsX3N0bXQoYXJndW1lbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSUxMIC0gbGVuKHByZWZpeCkgLSBsZW4oaW5kZW50KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludD4+RklMRSwgaW5kZW50ICsgcHJlZml4ICsgbmV4dChzdG10X2l0ZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludD4+RklMRSwgJycKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBhcmd1bWVudCBpbiBhcmd1bWVudHM6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQ+PkZJTEUsIGluZGVudCArIHByZWZpeCArIGFyZ3VtZW50Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50Pj5GSUxFLCAnJwotCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQ+PkZJTEUsIGluZGVudCArIHN5bl9wcmVmaXgodHlwZV8sIGdyb3VwKSArIGFyZ3VtZW50cwotICAgICAgICAgICAgICAgICAgICBwcmludD4+RklMRSwgJycKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgc3RhdGVtZW50X3ZhcjoKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQ+PkZJTEUsICdlbmRpZicKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQ+PkZJTEUsICcnCi0gICAgICAgICAgICBwcmludD4+RklMRSwgJycKLSAgICAgICAgIyBBc3NvY2lhdGluZyBQeXRob24gZ3JvdXAgd2l0aCBWaW0gY29sb3VyIGdyb3VwCi0gICAgICAgIGZvciBzdGF0ZW1lbnRfdmFyLCBzdGF0ZW1lbnRfcGFydHMgaW4gc3RhdGVtZW50czoKLSAgICAgICAgICAgIGlmIHN0YXRlbWVudF92YXI6Ci0gICAgICAgICAgICAgICAgcHJpbnQ+PkZJTEUsICcgIGlmIGV4aXN0cygiJXMiKScgJSBzdGF0ZW1lbnRfdmFyCi0gICAgICAgICAgICAgICAgaW5kZW50ID0gJyAgICAnCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGluZGVudCA9ICcgICcKLSAgICAgICAgICAgIGZvciBjb2xvdXJfZ3JvdXAsIGdyb3VwLCB0eXBlXywgYXJndW1lbnRzIGluIHN0YXRlbWVudF9wYXJ0czoKLSAgICAgICAgICAgICAgICBwcmludD4+RklMRSwgKGluZGVudCArICJoaSBkZWYgbGluayAlcyAlcyIgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3JvdXAsIGNvbG91cl9ncm91cCkpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIHN0YXRlbWVudF92YXI6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50Pj5GSUxFLCAnICBlbmRpZicKLSAgICAgICAgICAgICAgICBwcmludD4+RklMRSwgJycKLSAgICAgICAgIyBTdGF0ZW1lbnRzIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUKLSAgICAgICAgcHJpbnQ+PkZJTEUsIHN0YXRlbWVudF9mb290ZXIKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBtYWluKCJweXRob24udmltIikKZGlmZiAtLWdpdCBhL01pc2MvVmltL3ZpbXJjIGIvTWlzYy9WaW0vdmltcmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzOThjY2EuLjAwMDAwMDAKLS0tIGEvTWlzYy9WaW0vdmltcmMKKysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi0iIHZpbXJjIGZpbGUgZm9yIGZvbGxvd2luZyB0aGUgY29kaW5nIHN0YW5kYXJkcyBzcGVjaWZpZWQgaW4gUEVQIDcgJiA4LgotIgotIiBUbyB1c2UgdGhpcyBmaWxlLCBzb3VyY2UgaXQgaW4geW91ciBvd24gcGVyc29uYWwgLnZpbXJjIGZpbGUgKGBgc291cmNlCi0iIDxmaWxlbmFtZT5gYCkgb3IsIGlmIHlvdSBkb24ndCBoYXZlIGEgLnZpbXJjIGZpbGUsIHlvdSBjYW4ganVzdCBzeW1saW5rIHRvIGl0Ci0iIChgYGxuIC1zIDx0aGlzIGZpbGU+IH4vLnZpbXJjYGApLiAgQWxsIG9wdGlvbnMgYXJlIHByb3RlY3RlZCBieSBhdXRvY21kcwotIiAocmVhZCBiZWxvdyBmb3IgYW4gZXhwbGFuYXRpb24gb2YgdGhlIGNvbW1hbmQpIHNvIGJsaW5kIHNvdXJjaW5nIG9mIHRoaXMgZmlsZQotIiBpcyBzYWZlIGFuZCB3aWxsIG5vdCBhZmZlY3QgeW91ciBzZXR0aW5ncyBmb3Igbm9uLVB5dGhvbiBvciBub24tQyBmaWxlcy4KLSIKLSIKLSIgQWxsIHNldHRpbmcgYXJlIHByb3RlY3RlZCBieSAnYXUnICgnYXV0b2NtZCcpIHN0YXRlbWVudHMuICBPbmx5IGZpbGVzIGVuZGluZwotIiBpbiAucHkgb3IgLnB5dyB3aWxsIHRyaWdnZXIgdGhlIFB5dGhvbiBzZXR0aW5ncyB3aGlsZSBmaWxlcyBlbmRpbmcgaW4gKi5jIG9yCi0iICouaCB3aWxsIHRyaWdnZXIgdGhlIEMgc2V0dGluZ3MuICBUaGlzIG1ha2VzIHRoZSBmaWxlICJzYWZlIiBpbiB0ZXJtcyBvZiBvbmx5Ci0iIGFkanVzdGluZyBzZXR0aW5ncyBmb3IgUHl0aG9uIGFuZCBDIGZpbGVzLgotIgotIiBPbmx5IGJhc2ljIHNldHRpbmdzIG5lZWRlZCB0byBlbmZvcmNlIHRoZSBzdHlsZSBndWlkZWxpbmVzIGFyZSBzZXQuCi0iIFNvbWUgc3VnZ2VzdGVkIG9wdGlvbnMgYXJlIGxpc3RlZCBidXQgY29tbWVudGVkIG91dCBhdCB0aGUgZW5kIG9mIHRoaXMgZmlsZS4KLQotIiBOdW1iZXIgb2Ygc3BhY2VzIHRoYXQgYSBwcmUtZXhpc3RpbmcgdGFiIGlzIGVxdWFsIHRvLgotIiBGb3IgdGhlIGFtb3VudCBvZiBzcGFjZSB1c2VkIGZvciBhIG5ldyB0YWIgdXNlIHNoaWZ0d2lkdGguCi1hdSBCdWZSZWFkLEJ1Zk5ld0ZpbGUgKnB5LCpweXcsKi5jLCouaCBzZXQgdGFic3RvcD04Ci0KLSIgV2hhdCB0byB1c2UgZm9yIGFuIGluZGVudC4KLSIgVGhpcyB3aWxsIGFmZmVjdCBDdHJsLVQgYW5kICdhdXRvaW5kZW50Jy4KLSIgUHl0aG9uOiA0IHNwYWNlcwotIiBDOiB0YWJzIChwcmUtZXhpc3RpbmcgZmlsZXMpIG9yIDQgc3BhY2VzIChuZXcgZmlsZXMpCi1hdSBCdWZSZWFkLEJ1Zk5ld0ZpbGUgKi5weSwqcHl3IHNldCBzaGlmdHdpZHRoPTQKLWF1IEJ1ZlJlYWQsQnVmTmV3RmlsZSAqLnB5LCoucHl3IHNldCBleHBhbmR0YWIKLWZ1IFNlbGVjdF9jX3N0eWxlKCkKLSAgICBpZiBzZWFyY2goJ15cdCcsICduJywgMTUwKQotICAgICAgICBzZXQgc2hpZnR3aWR0aD04Ci0gICAgICAgIHNldCBub2V4cGFuZHRhYgotICAgIGVsIAotICAgICAgICBzZXQgc2hpZnR3aWR0aD00Ci0gICAgICAgIHNldCBleHBhbmR0YWIKLSAgICBlbgotZW5kZgotYXUgQnVmUmVhZCxCdWZOZXdGaWxlICouYywqLmggY2FsbCBTZWxlY3RfY19zdHlsZSgpCi1hdSBCdWZSZWFkLEJ1Zk5ld0ZpbGUgTWFrZWZpbGUqIHNldCBub2V4cGFuZHRhYgotCi0iIFVzZSB0aGUgYmVsb3cgaGlnaGxpZ2h0IGdyb3VwIHdoZW4gZGlzcGxheWluZyBiYWQgd2hpdGVzcGFjZSBpcyBkZXNpcmVkLgotaGlnaGxpZ2h0IEJhZFdoaXRlc3BhY2UgY3Rlcm1iZz1yZWQgZ3VpYmc9cmVkCi0KLSIgRGlzcGxheSB0YWJzIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lIGluIFB5dGhvbiBtb2RlIGFzIGJhZC4KLWF1IEJ1ZlJlYWQsQnVmTmV3RmlsZSAqLnB5LCoucHl3IG1hdGNoIEJhZFdoaXRlc3BhY2UgL15cdFwrLwotIiBNYWtlIHRyYWlsaW5nIHdoaXRlc3BhY2UgYmUgZmxhZ2dlZCBhcyBiYWQuCi1hdSBCdWZSZWFkLEJ1Zk5ld0ZpbGUgKi5weSwqLnB5dywqLmMsKi5oLCoucnN0IG1hdGNoIEJhZFdoaXRlc3BhY2UgL1xzXCskLwotCi0iIFdyYXAgdGV4dCBhZnRlciBhIGNlcnRhaW4gbnVtYmVyIG9mIGNoYXJhY3RlcnMKLSIgUHl0aG9uOiA3OSAKLSIgQzogNzkKLWF1IEJ1ZlJlYWQsQnVmTmV3RmlsZSAqLnB5LCoucHl3LCouYywqLmggc2V0IHRleHR3aWR0aD03OQotCi0iIFR1cm4gb2ZmIHNldHRpbmdzIGluICdmb3JtYXRvcHRpb25zJyByZWxhdGluZyB0byBjb21tZW50IGZvcm1hdHRpbmcuCi0iIC0gYyA6IGRvIG5vdCBhdXRvbWF0aWNhbGx5IGluc2VydCB0aGUgY29tbWVudCBsZWFkZXIgd2hlbiB3cmFwcGluZyBiYXNlZCBvbgotIiAgICAndGV4dHdpZHRoJwotIiAtIG8gOiBkbyBub3QgaW5zZXJ0IHRoZSBjb21tZW50IGxlYWRlciB3aGVuIHVzaW5nICdvJyBvciAnTycgZnJvbSBjb21tYW5kIG1vZGUKLSIgLSByIDogZG8gbm90IGluc2VydCB0aGUgY29tbWVudCBsZWFkZXIgd2hlbiBoaXR0aW5nIDxFbnRlcj4gaW4gaW5zZXJ0IG1vZGUKLSIgUHl0aG9uOiBub3QgbmVlZGVkCi0iIEM6IHByZXZlbnRzIGluc2VydGlvbiBvZiAnKicgYXQgdGhlIGJlZ2lubmluZyBvZiBldmVyeSBsaW5lIGluIGEgY29tbWVudAotYXUgQnVmUmVhZCxCdWZOZXdGaWxlICouYywqLmggc2V0IGZvcm1hdG9wdGlvbnMtPWMgZm9ybWF0b3B0aW9ucy09byBmb3JtYXRvcHRpb25zLT1yCi0KLSIgVXNlIFVOSVggKFxuKSBsaW5lIGVuZGluZ3MuCi0iIE9ubHkgdXNlZCBmb3IgbmV3IGZpbGVzIHNvIGFzIHRvIG5vdCBmb3JjZSBleGlzdGluZyBmaWxlcyB0byBjaGFuZ2UgdGhlaXIKLSIgbGluZSBlbmRpbmdzLgotIiBQeXRob246IHllcwotIiBDOiB5ZXMKLWF1IEJ1Zk5ld0ZpbGUgKi5weSwqLnB5dywqLmMsKi5oIHNldCBmaWxlZm9ybWF0PXVuaXgKLQotCi0iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgVGhlIGZvbGxvd2luZyBzZWN0aW9uIGNvbnRhaW5zIHN1Z2dlc3RlZCBzZXR0aW5ncy4gIFdoaWxlIGluIG5vIHdheSByZXF1aXJlZAotIiB0byBtZWV0IGNvZGluZyBzdGFuZGFyZHMsIHRoZXkgYXJlIGhlbHBmdWwuCi0KLSIgU2V0IHRoZSBkZWZhdWx0IGZpbGUgZW5jb2RpbmcgdG8gVVRGLTg6IGBgc2V0IGVuY29kaW5nPXV0Zi04YGAKLQotIiBQdXRzIGEgbWFya2VyIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIFVURiBhbmQKLSIgVUNTIGVuY29kaW5nIChXQVJOSU5HOiBjYW4gdHJpY2sgc2hlbGxzIGludG8gdGhpbmtpbmcgYSB0ZXh0IGZpbGUgaXMgYWN0dWFsbHkKLSIgYSBiaW5hcnkgZmlsZSB3aGVuIGV4ZWN1dGluZyB0aGUgdGV4dCBmaWxlKTogYGBzZXQgYm9tYmBgCi0KLSIgRm9yIGZ1bGwgc3ludGF4IGhpZ2hsaWdodGluZzoKLSJgYGxldCBweXRob25faGlnaGxpZ2h0X2FsbD0xYGAKLSJgYHN5bnRheCBvbmBgCi0KLSIgQXV0b21hdGljYWxseSBpbmRlbnQgYmFzZWQgb24gZmlsZSB0eXBlOiBgYGZpbGV0eXBlIGluZGVudCBvbmBgCi0iIEtlZXAgaW5kZW50YXRpb24gbGV2ZWwgZnJvbSBwcmV2aW91cyBsaW5lOiBgYHNldCBhdXRvaW5kZW50YGAKLQotIiBGb2xkaW5nIGJhc2VkIG9uIGluZGVudGF0aW9uOiBgYHNldCBmb2xkbWV0aG9kPWluZGVudGBgCmRpZmYgLS1naXQgYS9NaXNjL3B5dGhvbi1jb25maWcuc2guaW4gYi9NaXNjL3B5dGhvbi1jb25maWcuc2guaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc5MGJmNgotLS0gL2Rldi9udWxsCisrKyBiL01pc2MvcHl0aG9uLWNvbmZpZy5zaC5pbgpAQCAtMCwwICsxLDEwNiBAQAorIyEvYmluL3NoCisKK2V4aXRfd2l0aF91c2FnZSAoKQoreworICAgIGVjaG8gIlVzYWdlOiAkMCAtLXByZWZpeHwtLWV4ZWMtcHJlZml4fC0taW5jbHVkZXN8LS1saWJzfC0tY2ZsYWdzfC0tbGRmbGFnc3wtLWV4dGVuc2lvbi1zdWZmaXh8LS1oZWxwfC0tYWJpZmxhZ3N8LS1jb25maWdkaXIiCisgICAgZXhpdCAkMQorfQorCitpZiBbICIkMSIgPSAiIiBdIDsgdGhlbgorICAgIGV4aXRfd2l0aF91c2FnZSAxCitmaQorCisjIFJldHVybnMgdGhlIGFjdHVhbCBwcmVmaXggd2hlcmUgdGhpcyBzY3JpcHQgd2FzIGluc3RhbGxlZCB0by4KK2luc3RhbGxlZF9wcmVmaXggKCkKK3sKKyAgICBSRVNVTFQ9JChkaXJuYW1lICQoY2QgJChkaXJuYW1lICIkMSIpICYmIHB3ZCAtUCkpCisgICAgaWYgd2hpY2ggcmVhZGxpbmsgPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgorICAgICAgICBSRVNVTFQ9JChyZWFkbGluayAtZiAiJFJFU1VMVCIpCisgICAgZmkKKyAgICBlY2hvICRSRVNVTFQKK30KKworcHJlZml4X2J1aWxkPSJAcHJlZml4QCIKK3ByZWZpeF9yZWFsPSQoaW5zdGFsbGVkX3ByZWZpeCAiJDAiKQorCisjIFVzZSBzZWQgdG8gZml4IHBhdGhzIGZyb20gdGhlaXIgYnVpbHQgdG8gbG9jYXRpb25zIHRvIHRoZWlyIGluc3RhbGxlZCB0byBsb2NhdGlvbnMuCitwcmVmaXg9JChlY2hvICIkcHJlZml4X2J1aWxkIiB8IHNlZCAicyMkcHJlZml4X2J1aWxkIyRwcmVmaXhfcmVhbCMiKQorZXhlY19wcmVmaXhfYnVpbGQ9IkBleGVjX3ByZWZpeEAiCitleGVjX3ByZWZpeD0kKGVjaG8gIiRleGVjX3ByZWZpeF9idWlsZCIgfCBzZWQgInMjJGV4ZWNfcHJlZml4X2J1aWxkIyRwcmVmaXhfcmVhbCMiKQoraW5jbHVkZWRpcj0kKGVjaG8gIkBpbmNsdWRlZGlyQCIgfCBzZWQgInMjJHByZWZpeF9idWlsZCMkcHJlZml4X3JlYWwjIikKK2xpYmRpcj0kKGVjaG8gIkBsaWJkaXJAIiB8IHNlZCAicyMkcHJlZml4X2J1aWxkIyRwcmVmaXhfcmVhbCMiKQorQ0ZMQUdTPSQoZWNobyAiQENGTEFHU0AiIHwgc2VkICJzIyRwcmVmaXhfYnVpbGQjJHByZWZpeF9yZWFsIyIpCitWRVJTSU9OPSJAVkVSU0lPTkAiCitMSUJNPSJATElCTUAiCitMSUJDPSJATElCQ0AiCitTWVNMSUJTPSIkTElCTSAkTElCQyIKK0FCSUZMQUdTPSJAQUJJRkxBR1NAIgorTElCUz0iQExJQlNAICRTWVNMSUJTIC1scHl0aG9uJHtWRVJTSU9OfSR7QUJJRkxBR1N9IgorQkFTRUNGTEFHUz0iQEJBU0VDRkxBR1NAIgorTERMSUJSQVJZPSJATERMSUJSQVJZQCIKK0xJTktGT1JTSEFSRUQ9IkBMSU5LRk9SU0hBUkVEQCIKK09QVD0iQE9QVEAiCitQWV9FTkFCTEVfU0hBUkVEPSJAUFlfRU5BQkxFX1NIQVJFREAiCitMRFZFUlNJT049IkBMRFZFUlNJT05AIgorTElCREVTVD0ke3ByZWZpeH0vbGliL3B5dGhvbiR7VkVSU0lPTn0KK0xJQlBMPSQoZWNobyAiQExJQlBMQCIgfCBzZWQgInMjJHByZWZpeF9idWlsZCMkcHJlZml4X3JlYWwjIikKK1NPPSJAU09AIgorUFlUSE9ORlJBTUVXT1JLPSJAUFlUSE9ORlJBTUVXT1JLQCIKK0lOQ0RJUj0iLUkkaW5jbHVkZWRpci9weXRob24ke1ZFUlNJT059JHtBQklGTEFHU30iCitQTEFUSU5DRElSPSItSSRpbmNsdWRlZGlyL3B5dGhvbiR7VkVSU0lPTn0ke0FCSUZMQUdTfSIKKworIyBTY2FuIGZvciAtLWhlbHAgb3IgdW5rbm93biBhcmd1bWVudC4KK2ZvciBBUkcgaW4gJCoKK2RvCisgICAgY2FzZSAkQVJHIGluCisgICAgICAgIC0taGVscCkKKyAgICAgICAgICAgIGV4aXRfd2l0aF91c2FnZSAwCisgICAgICAgIDs7CisgICAgICAgIC0tcHJlZml4fC0tZXhlYy1wcmVmaXh8LS1pbmNsdWRlc3wtLWxpYnN8LS1jZmxhZ3N8LS1sZGZsYWdzfC0tZXh0ZW5zaW9uLXN1ZmZpeHwtLWFiaWZsYWdzfC0tY29uZmlnZGlyKQorICAgICAgICA7OworICAgICAgICAqKQorICAgICAgICAgICAgZXhpdF93aXRoX3VzYWdlIDEKKyAgICAgICAgOzsKKyAgICBlc2FjCitkb25lCisKK2ZvciBBUkcgaW4gIiRAIgorZG8KKyAgICBjYXNlICIkQVJHIiBpbgorICAgICAgICAtLXByZWZpeCkKKyAgICAgICAgICAgIGVjaG8gIiRwcmVmaXgiCisgICAgICAgIDs7CisgICAgICAgIC0tZXhlYy1wcmVmaXgpCisgICAgICAgICAgICBlY2hvICIkZXhlY19wcmVmaXgiCisgICAgICAgIDs7CisgICAgICAgIC0taW5jbHVkZXMpCisgICAgICAgICAgICBlY2hvICIkSU5DRElSICRQTEFUSU5DRElSIgorICAgICAgICA7OworICAgICAgICAtLWNmbGFncykKKyAgICAgICAgICAgIGVjaG8gIiRJTkNESVIgJFBMQVRJTkNESVIgJEJBU0VDRkxBR1MgJENGTEFHUyAkT1BUIgorICAgICAgICA7OworICAgICAgICAtLWxpYnMpCisgICAgICAgICAgICBlY2hvICIkTElCUyIKKyAgICAgICAgOzsKKyAgICAgICAgLS1sZGZsYWdzKQorICAgICAgICAgICAgTElOS0ZPUlNIQVJFRFVTRUQ9CisgICAgICAgICAgICBpZiBbIC16ICIkUFlUSE9ORlJBTUVXT1JLIiBdIDsgdGhlbgorICAgICAgICAgICAgICAgIExJTktGT1JTSEFSRURVU0VEPSRMSU5LRk9SU0hBUkVECisgICAgICAgICAgICBmaQorICAgICAgICAgICAgTElCUExVU0VEPQorICAgICAgICAgICAgaWYgWyAiJFBZX0VOQUJMRV9TSEFSRUQiID0gIjAiIF0gOyB0aGVuCisgICAgICAgICAgICAgICAgTElCUExVU0VEPSItTCRMSUJQTCIKKyAgICAgICAgICAgIGZpCisgICAgICAgICAgICBlY2hvICIkTElCUExVU0VEIC1MJGxpYmRpciAkTElCUyAkTElOS0ZPUlNIQVJFRFVTRUQiCisgICAgICAgIDs7CisgICAgICAgIC0tZXh0ZW5zaW9uLXN1ZmZpeCkKKyAgICAgICAgICAgIGVjaG8gIiRTTyIKKyAgICAgICAgOzsKKyAgICAgICAgLS1hYmlmbGFncykKKyAgICAgICAgICAgIGVjaG8gIiRBQklGTEFHUyIKKyAgICAgICAgOzsKKyAgICAgICAgLS1jb25maWdkaXIpCisgICAgICAgICAgICBlY2hvICIkTElCUEwiCisgICAgICAgIDs7Citlc2FjCitkb25lCmRpZmYgLS1naXQgYS9Nb2R1bGVzL1NldHVwLmRpc3QgYi9Nb2R1bGVzL1NldHVwLmRpc3QKaW5kZXggZjQ1ZGU1Yy4uZDRlMWZlMSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9TZXR1cC5kaXN0CisrKyBiL01vZHVsZXMvU2V0dXAuZGlzdApAQCAtMTEzLDkgKzExMywxMCBAQAogX2NvZGVjcyBfY29kZWNzbW9kdWxlLmMJCSMgYWNjZXNzIHRvIHRoZSBidWlsdGluIGNvZGVjcyBhbmQgY29kZWMgcmVnaXN0cnkKIF93ZWFrcmVmIF93ZWFrcmVmLmMJCSMgd2VhayByZWZlcmVuY2VzCiBfZnVuY3Rvb2xzIF9mdW5jdG9vbHNtb2R1bGUuYyAgICMgVG9vbHMgZm9yIHdvcmtpbmcgd2l0aCBmdW5jdGlvbnMgYW5kIGNhbGxhYmxlIG9iamVjdHMKLW9wZXJhdG9yIG9wZXJhdG9yLmMJICAgICAgICAjIG9wZXJhdG9yLmFkZCgpIGFuZCBzaW1pbGFyIGdvb2RpZXMKK19vcGVyYXRvciBfb3BlcmF0b3IuYwkgICAgICAgICMgb3BlcmF0b3IuYWRkKCkgYW5kIHNpbWlsYXIgZ29vZGllcwogX2NvbGxlY3Rpb25zIF9jb2xsZWN0aW9uc21vZHVsZS5jICMgQ29udGFpbmVyIHR5cGVzCiBpdGVydG9vbHMgaXRlcnRvb2xzbW9kdWxlLmMgICAgIyBGdW5jdGlvbnMgY3JlYXRpbmcgaXRlcmF0b3JzIGZvciBlZmZpY2llbnQgbG9vcGluZyAKK2F0ZXhpdCBhdGV4aXRtb2R1bGUuYyAgICAgICMgUmVnaXN0ZXIgZnVuY3Rpb25zIHRvIGJlIHJ1biBhdCBpbnRlcnByZXRlci1zaHV0ZG93bgogCiAjIGFjY2VzcyB0byBJU08gQyBsb2NhbGUgc3VwcG9ydAogX2xvY2FsZSBfbG9jYWxlbW9kdWxlLmMgICMgLWxpbnRsCkBAIC0xNzAsNyArMTcxLDYgQEAKICNfd2Vha3JlZiBfd2Vha3JlZi5jCSMgYmFzaWMgd2VhayByZWZlcmVuY2Ugc3VwcG9ydAogI190ZXN0Y2FwaSBfdGVzdGNhcGltb2R1bGUuYyAgICAjIFB5dGhvbiBDIEFQSSB0ZXN0IG1vZHVsZQogI19yYW5kb20gX3JhbmRvbW1vZHVsZS5jCSMgUmFuZG9tIG51bWJlciBnZW5lcmF0b3IKLSNhdGV4aXQgYXRleGl0bW9kdWxlLmMgICAgICAjIFJlZ2lzdGVyIGZ1bmN0aW9ucyB0byBiZSBydW4gYXQgaW50ZXJwcmV0ZXItc2h1dGRvd24KICNfZWxlbWVudHRyZWUgLUkkKHNyY2RpcikvTW9kdWxlcy9leHBhdCAtREhBVkVfRVhQQVRfQ09ORklHX0ggLURVU0VfUFlFWFBBVF9DQVBJIF9lbGVtZW50dHJlZS5jCSMgZWxlbWVudHRyZWUgYWNjZWxlcmF0b3IKICNfcGlja2xlIF9waWNrbGUuYwkjIHBpY2tsZSBhY2NlbGVyYXRvcgogI19kYXRldGltZSBfZGF0ZXRpbWVtb2R1bGUuYwkjIGRhdGV0aW1lIGFjY2VsZXJhdG9yCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19iejJtb2R1bGUuYyBiL01vZHVsZXMvX2J6Mm1vZHVsZS5jCmluZGV4IDRlZWU1YTIuLjQ2ZGE1YWIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2J6Mm1vZHVsZS5jCisrKyBiL01vZHVsZXMvX2J6Mm1vZHVsZS5jCkBAIC0zNiw4ICszNiw2IEBACiAjZGVmaW5lIFJFTEVBU0VfTE9DSyhvYmopCiAjZW5kaWYKIAotI2RlZmluZSBNSU4oWCwgWSkgKCgoWCkgPCAoWSkpID8gKFgpIDogKFkpKQotCiAKIHR5cGVkZWYgc3RydWN0IHsKICAgICBQeU9iamVjdF9IRUFECkBAIC0xNDksNyArMTQ3LDcgQEAKICAgICBjLT5ienMubmV4dF9pbiA9IGRhdGE7CiAgICAgYy0+YnpzLmF2YWlsX2luID0gMDsKICAgICBjLT5ienMubmV4dF9vdXQgPSBQeUJ5dGVzX0FTX1NUUklORyhyZXN1bHQpOwotICAgIGMtPmJ6cy5hdmFpbF9vdXQgPSBQeUJ5dGVzX0dFVF9TSVpFKHJlc3VsdCk7CisgICAgYy0+YnpzLmF2YWlsX291dCA9IFNNQUxMQ0hVTks7CiAgICAgZm9yICg7OykgewogICAgICAgICBjaGFyICp0aGlzX291dDsKICAgICAgICAgaW50IGJ6ZXJyb3I7CkBAIC0xNTcsNyArMTU1LDcgQEAKICAgICAgICAgLyogT24gYSA2NC1iaXQgc3lzdGVtLCBsZW4gbWlnaHQgbm90IGZpdCBpbiBhdmFpbF9pbiAoYW4gdW5zaWduZWQgaW50KS4KICAgICAgICAgICAgRG8gY29tcHJlc3Npb24gaW4gY2h1bmtzIG9mIG5vIG1vcmUgdGhhbiBVSU5UX01BWCBieXRlcyBlYWNoLiAqLwogICAgICAgICBpZiAoYy0+YnpzLmF2YWlsX2luID09IDAgJiYgbGVuID4gMCkgewotICAgICAgICAgICAgYy0+YnpzLmF2YWlsX2luID0gTUlOKGxlbiwgVUlOVF9NQVgpOworICAgICAgICAgICAgYy0+YnpzLmF2YWlsX2luID0gKHVuc2lnbmVkIGludClQeV9NSU4obGVuLCBVSU5UX01BWCk7CiAgICAgICAgICAgICBsZW4gLT0gYy0+YnpzLmF2YWlsX2luOwogICAgICAgICB9CiAKQEAgLTE3Myw3ICsxNzEsNyBAQAogICAgICAgICAgICAgICAgIGMtPmJ6cy5uZXh0X291dCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHJlc3VsdCkgKyBkYXRhX3NpemU7CiAgICAgICAgICAgICAgICAgYnVmZmVyX2xlZnQgPSBQeUJ5dGVzX0dFVF9TSVpFKHJlc3VsdCkgLSBkYXRhX3NpemU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBjLT5ienMuYXZhaWxfb3V0ID0gTUlOKGJ1ZmZlcl9sZWZ0LCBVSU5UX01BWCk7CisgICAgICAgICAgICBjLT5ienMuYXZhaWxfb3V0ID0gKHVuc2lnbmVkIGludClQeV9NSU4oYnVmZmVyX2xlZnQsIFVJTlRfTUFYKTsKICAgICAgICAgfQogCiAgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKQEAgLTM3MCwxMCArMzY4LDEwIEBACiAgICAgZC0+YnpzLm5leHRfaW4gPSBkYXRhOwogICAgIC8qIE9uIGEgNjQtYml0IHN5c3RlbSwgbGVuIG1pZ2h0IG5vdCBmaXQgaW4gYXZhaWxfaW4gKGFuIHVuc2lnbmVkIGludCkuCiAgICAgICAgRG8gZGVjb21wcmVzc2lvbiBpbiBjaHVua3Mgb2Ygbm8gbW9yZSB0aGFuIFVJTlRfTUFYIGJ5dGVzIGVhY2guICovCi0gICAgZC0+YnpzLmF2YWlsX2luID0gTUlOKGxlbiwgVUlOVF9NQVgpOworICAgIGQtPmJ6cy5hdmFpbF9pbiA9ICh1bnNpZ25lZCBpbnQpUHlfTUlOKGxlbiwgVUlOVF9NQVgpOwogICAgIGxlbiAtPSBkLT5ienMuYXZhaWxfaW47CiAgICAgZC0+YnpzLm5leHRfb3V0ID0gUHlCeXRlc19BU19TVFJJTkcocmVzdWx0KTsKLSAgICBkLT5ienMuYXZhaWxfb3V0ID0gUHlCeXRlc19HRVRfU0laRShyZXN1bHQpOworICAgIGQtPmJ6cy5hdmFpbF9vdXQgPSBTTUFMTENIVU5LOwogICAgIGZvciAoOzspIHsKICAgICAgICAgY2hhciAqdGhpc19vdXQ7CiAgICAgICAgIGludCBiemVycm9yOwpAQCAtMzk5LDcgKzM5Nyw3IEBACiAgICAgICAgIGlmIChkLT5ienMuYXZhaWxfaW4gPT0gMCkgewogICAgICAgICAgICAgaWYgKGxlbiA9PSAwKQogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZC0+YnpzLmF2YWlsX2luID0gTUlOKGxlbiwgVUlOVF9NQVgpOworICAgICAgICAgICAgZC0+YnpzLmF2YWlsX2luID0gKHVuc2lnbmVkIGludClQeV9NSU4obGVuLCBVSU5UX01BWCk7CiAgICAgICAgICAgICBsZW4gLT0gZC0+YnpzLmF2YWlsX2luOwogICAgICAgICB9CiAgICAgICAgIGlmIChkLT5ienMuYXZhaWxfb3V0ID09IDApIHsKQEAgLTQxMCw3ICs0MDgsNyBAQAogICAgICAgICAgICAgICAgIGQtPmJ6cy5uZXh0X291dCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHJlc3VsdCkgKyBkYXRhX3NpemU7CiAgICAgICAgICAgICAgICAgYnVmZmVyX2xlZnQgPSBQeUJ5dGVzX0dFVF9TSVpFKHJlc3VsdCkgLSBkYXRhX3NpemU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBkLT5ienMuYXZhaWxfb3V0ID0gTUlOKGJ1ZmZlcl9sZWZ0LCBVSU5UX01BWCk7CisgICAgICAgICAgICBkLT5ienMuYXZhaWxfb3V0ID0gKHVuc2lnbmVkIGludClQeV9NSU4oYnVmZmVyX2xlZnQsIFVJTlRfTUFYKTsKICAgICAgICAgfQogICAgIH0KICAgICBpZiAoZGF0YV9zaXplICE9IFB5Qnl0ZXNfR0VUX1NJWkUocmVzdWx0KSkKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2NvbGxlY3Rpb25zbW9kdWxlLmMgYi9Nb2R1bGVzL19jb2xsZWN0aW9uc21vZHVsZS5jCmluZGV4IDM0YTFhOTAuLmEyM2Y3MTQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2NvbGxlY3Rpb25zbW9kdWxlLmMKKysrIGIvTW9kdWxlcy9fY29sbGVjdGlvbnNtb2R1bGUuYwpAQCAtMywxMyArMywxMyBAQAogCiAvKiBjb2xsZWN0aW9ucyBtb2R1bGUgaW1wbGVtZW50YXRpb24gb2YgYSBkZXF1ZSgpIGRhdGF0eXBlCiAgICBXcml0dGVuIGFuZCBtYWludGFpbmVkIGJ5IFJheW1vbmQgRC4gSGV0dGluZ2VyIDxweXRob25AcmNuLmNvbT4KLSAgIENvcHlyaWdodCAoYykgMjAwNCBQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbi4KKyAgIENvcHlyaWdodCAoYykgMjAwNC0yMDEzIFB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICovCiAKIC8qIFRoZSBibG9jayBsZW5ndGggbWF5IGJlIHNldCB0byBhbnkgbnVtYmVyIG92ZXIgMS4gIExhcmdlciBudW1iZXJzCiAgKiByZWR1Y2UgdGhlIG51bWJlciBvZiBjYWxscyB0byB0aGUgbWVtb3J5IGFsbG9jYXRvciBidXQgdGFrZSBtb3JlCi0gKiBtZW1vcnkuICBJZGVhbGx5LCBCTE9DS0xFTiBzaG91bGQgYmUgc2V0IHdpdGggYW4gZXllIHRvIHRoZQorICogbWVtb3J5LiAgSWRlYWxseSwgKEJMT0NLTEVOKzIpIHNob3VsZCBiZSBzZXQgdG8gYSBtdWx0aXBsZSBvZiB0aGUKICAqIGxlbmd0aCBvZiBhIGNhY2hlIGxpbmUuCiAgKi8KIApAQCAtNzEsNyArNzEsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgaWYgKG51bWZyZWVibG9ja3MpIHsKLSAgICAgICAgbnVtZnJlZWJsb2NrcyAtPSAxOworICAgICAgICBudW1mcmVlYmxvY2tzLS07CiAgICAgICAgIGIgPSBmcmVlYmxvY2tzW251bWZyZWVibG9ja3NdOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGIgPSBQeU1lbV9NYWxsb2Moc2l6ZW9mKGJsb2NrKSk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jc3YuYyBiL01vZHVsZXMvX2Nzdi5jCmluZGV4IDQ4YTVjZjguLjIyYWMyNjYgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2Nzdi5jCisrKyBiL01vZHVsZXMvX2Nzdi5jCkBAIC01MSw3ICs1MSw3IEBACiB0eXBlZGVmIGVudW0gewogICAgIFNUQVJUX1JFQ09SRCwgU1RBUlRfRklFTEQsIEVTQ0FQRURfQ0hBUiwgSU5fRklFTEQsCiAgICAgSU5fUVVPVEVEX0ZJRUxELCBFU0NBUEVfSU5fUVVPVEVEX0ZJRUxELCBRVU9URV9JTl9RVU9URURfRklFTEQsCi0gICAgRUFUX0NSTkwKKyAgICBFQVRfQ1JOTCxBRlRFUl9FU0NBUEVEX0NSTkwKIH0gUGFyc2VyU3RhdGU7CiAKIHR5cGVkZWYgZW51bSB7CkBAIC02NDQsNiArNjQ0LDEyIEBACiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBFU0NBUEVEX0NIQVI6CisgICAgICAgIGlmIChjID09ICdcbicgfHwgYz09J1xyJykgeworICAgICAgICAgICAgaWYgKHBhcnNlX2FkZF9jaGFyKHNlbGYsIGMpIDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBzZWxmLT5zdGF0ZSA9IEFGVEVSX0VTQ0FQRURfQ1JOTDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGlmIChjID09ICdcMCcpCiAgICAgICAgICAgICBjID0gJ1xuJzsKICAgICAgICAgaWYgKHBhcnNlX2FkZF9jaGFyKHNlbGYsIGMpIDwgMCkKQEAgLTY1MSw2ICs2NTcsMTEgQEAKICAgICAgICAgc2VsZi0+c3RhdGUgPSBJTl9GSUVMRDsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIEFGVEVSX0VTQ0FQRURfQ1JOTDoKKyAgICAgICAgaWYgKGMgPT0gJ1wwJykKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAvKmZhbGx0aHJ1Ki8KKwogICAgIGNhc2UgSU5fRklFTEQ6CiAgICAgICAgIC8qIGluIHVucXVvdGVkIGZpZWxkICovCiAgICAgICAgIGlmIChjID09ICdcbicgfHwgYyA9PSAnXHInIHx8IGMgPT0gJ1wwJykgewpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2NhbGxwcm9jLmMgYi9Nb2R1bGVzL19jdHlwZXMvY2FsbHByb2MuYwppbmRleCBmNWQ4ZjUyLi5kOTg1NzgzIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvY2FsbHByb2MuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvY2FsbHByb2MuYwpAQCAtMjU3LDE4ICsyNTcsMTggQEAKICAgICAgICAgICAgdG8gYSB2aXJ0dWFsIGFkZHJlc3MgZm9yIHdoaWNoIGl0IGRvZXMgbm90CiAgICAgICAgICAgIGhhdmUgdGhlIGFwcHJvcHJpYXRlIGFjY2Vzcy4gKi8KICAgICAgICAgaWYgKHByLT5FeGNlcHRpb25JbmZvcm1hdGlvblswXSA9PSAwKQotICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1dpbmRvd3NFcnJvciwKKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19PU0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICJleGNlcHRpb246IGFjY2VzcyB2aW9sYXRpb24gcmVhZGluZyAlcCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHItPkV4Y2VwdGlvbkluZm9ybWF0aW9uWzFdKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1dpbmRvd3NFcnJvciwKKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19PU0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICJleGNlcHRpb246IGFjY2VzcyB2aW9sYXRpb24gd3JpdGluZyAlcCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHItPkV4Y2VwdGlvbkluZm9ybWF0aW9uWzFdKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEVYQ0VQVElPTl9CUkVBS1BPSU5UOgogICAgICAgICAvKiBBIGJyZWFrcG9pbnQgd2FzIGVuY291bnRlcmVkLiAqLwotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfV2luZG93c0Vycm9yLAorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJleGNlcHRpb246IGJyZWFrcG9pbnQgZW5jb3VudGVyZWQiKTsKICAgICAgICAgYnJlYWs7CiAKQEAgLTI3OCwxNCArMjc4LDE0IEBACiAgICAgICAgICAgIGFsaWdubWVudC4gRm9yIGV4YW1wbGUsIDE2LWJpdCB2YWx1ZXMgbXVzdCBiZQogICAgICAgICAgICBhbGlnbmVkIG9uIDItYnl0ZSBib3VuZGFyaWVzLCAzMi1iaXQgdmFsdWVzIG9uCiAgICAgICAgICAgIDQtYnl0ZSBib3VuZGFyaWVzLCBhbmQgc28gb24uICovCi0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19XaW5kb3dzRXJyb3IsCisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PU0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgImV4Y2VwdGlvbjogZGF0YXR5cGUgbWlzYWxpZ25tZW50Iik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBFWENFUFRJT05fU0lOR0xFX1NURVA6CiAgICAgICAgIC8qIEEgdHJhY2UgdHJhcCBvciBvdGhlciBzaW5nbGUtaW5zdHJ1Y3Rpb24gbWVjaGFuaXNtCiAgICAgICAgICAgIHNpZ25hbGVkIHRoYXQgb25lIGluc3RydWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLiAqLwotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfV2luZG93c0Vycm9yLAorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJleGNlcHRpb246IHNpbmdsZSBzdGVwIik7CiAgICAgICAgIGJyZWFrOwogCkBAIC0yOTMsNyArMjkzLDcgQEAKICAgICAgICAgLyogVGhlIHRocmVhZCBhdHRlbXB0ZWQgdG8gYWNjZXNzIGFuIGFycmF5IGVsZW1lbnQKICAgICAgICAgICAgdGhhdCBpcyBvdXQgb2YgYm91bmRzLCBhbmQgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUKICAgICAgICAgICAgc3VwcG9ydHMgYm91bmRzIGNoZWNraW5nLiAqLwotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfV2luZG93c0Vycm9yLAorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJleGNlcHRpb246IGFycmF5IGJvdW5kcyBleGNlZWRlZCIpOwogICAgICAgICBicmVhazsKIApAQCAtMzAyLDI4ICszMDIsMjggQEAKICAgICAgICAgICAgaXMgZGVub3JtYWwuIEEgZGVub3JtYWwgdmFsdWUgaXMgb25lIHRoYXQgaXMgdG9vCiAgICAgICAgICAgIHNtYWxsIHRvIHJlcHJlc2VudCBhcyBhIHN0YW5kYXJkIGZsb2F0aW5nLXBvaW50CiAgICAgICAgICAgIHZhbHVlLiAqLwotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfV2luZG93c0Vycm9yLAorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJleGNlcHRpb246IGZsb2F0aW5nLXBvaW50IG9wZXJhbmQgZGVub3JtYWwiKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEVYQ0VQVElPTl9GTFRfRElWSURFX0JZX1pFUk86CiAgICAgICAgIC8qIFRoZSB0aHJlYWQgYXR0ZW1wdGVkIHRvIGRpdmlkZSBhIGZsb2F0aW5nLXBvaW50CiAgICAgICAgICAgIHZhbHVlIGJ5IGEgZmxvYXRpbmctcG9pbnQgZGl2aXNvciBvZiB6ZXJvLiAqLwotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfV2luZG93c0Vycm9yLAorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJleGNlcHRpb246IGZsb2F0IGRpdmlkZSBieSB6ZXJvIik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBFWENFUFRJT05fRkxUX0lORVhBQ1RfUkVTVUxUOgogICAgICAgICAvKiBUaGUgcmVzdWx0IG9mIGEgZmxvYXRpbmctcG9pbnQgb3BlcmF0aW9uIGNhbm5vdCBiZQogICAgICAgICAgICByZXByZXNlbnRlZCBleGFjdGx5IGFzIGEgZGVjaW1hbCBmcmFjdGlvbi4gKi8KLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1dpbmRvd3NFcnJvciwKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjZXB0aW9uOiBmbG9hdCBpbmV4YWN0Iik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBFWENFUFRJT05fRkxUX0lOVkFMSURfT1BFUkFUSU9OOgogICAgICAgICAvKiBUaGlzIGV4Y2VwdGlvbiByZXByZXNlbnRzIGFueSBmbG9hdGluZy1wb2ludAogICAgICAgICAgICBleGNlcHRpb24gbm90IGluY2x1ZGVkIGluIHRoaXMgbGlzdC4gKi8KLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1dpbmRvd3NFcnJvciwKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjZXB0aW9uOiBmbG9hdCBpbnZhbGlkIG9wZXJhdGlvbiIpOwogICAgICAgICBicmVhazsKIApAQCAtMzMxLDIxICszMzEsMjEgQEAKICAgICAgICAgLyogVGhlIGV4cG9uZW50IG9mIGEgZmxvYXRpbmctcG9pbnQgb3BlcmF0aW9uIGlzCiAgICAgICAgICAgIGdyZWF0ZXIgdGhhbiB0aGUgbWFnbml0dWRlIGFsbG93ZWQgYnkgdGhlCiAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgdHlwZS4gKi8KLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1dpbmRvd3NFcnJvciwKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjZXB0aW9uOiBmbG9hdCBvdmVyZmxvdyIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgRVhDRVBUSU9OX0ZMVF9TVEFDS19DSEVDSzoKICAgICAgICAgLyogVGhlIHN0YWNrIG92ZXJmbG93ZWQgb3IgdW5kZXJmbG93ZWQgYXMgdGhlIHJlc3VsdAogICAgICAgICAgICBvZiBhIGZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbi4gKi8KLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1dpbmRvd3NFcnJvciwKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjZXB0aW9uOiBzdGFjayBvdmVyL3VuZGVyZmxvdyIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgRVhDRVBUSU9OX1NUQUNLX09WRVJGTE9XOgogICAgICAgICAvKiBUaGUgc3RhY2sgb3ZlcmZsb3dlZCBvciB1bmRlcmZsb3dlZCBhcyB0aGUgcmVzdWx0CiAgICAgICAgICAgIG9mIGEgZmxvYXRpbmctcG9pbnQgb3BlcmF0aW9uLiAqLwotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfV2luZG93c0Vycm9yLAorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJleGNlcHRpb246IHN0YWNrIG92ZXJmbG93Iik7CiAgICAgICAgIGJyZWFrOwogCkBAIC0zNTMsMjEgKzM1MywyMSBAQAogICAgICAgICAvKiBUaGUgZXhwb25lbnQgb2YgYSBmbG9hdGluZy1wb2ludCBvcGVyYXRpb24gaXMgbGVzcwogICAgICAgICAgICB0aGFuIHRoZSBtYWduaXR1ZGUgYWxsb3dlZCBieSB0aGUgY29ycmVzcG9uZGluZwogICAgICAgICAgICB0eXBlLiAqLwotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfV2luZG93c0Vycm9yLAorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJleGNlcHRpb246IGZsb2F0IHVuZGVyZmxvdyIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgRVhDRVBUSU9OX0lOVF9ESVZJREVfQllfWkVSTzoKICAgICAgICAgLyogVGhlIHRocmVhZCBhdHRlbXB0ZWQgdG8gZGl2aWRlIGFuIGludGVnZXIgdmFsdWUgYnkKICAgICAgICAgICAgYW4gaW50ZWdlciBkaXZpc29yIG9mIHplcm8uICovCi0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19XaW5kb3dzRXJyb3IsCisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PU0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgImV4Y2VwdGlvbjogaW50ZWdlciBkaXZpZGUgYnkgemVybyIpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgRVhDRVBUSU9OX0lOVF9PVkVSRkxPVzoKICAgICAgICAgLyogVGhlIHJlc3VsdCBvZiBhbiBpbnRlZ2VyIG9wZXJhdGlvbiBjYXVzZWQgYSBjYXJyeQogICAgICAgICAgICBvdXQgb2YgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIHRoZSByZXN1bHQuICovCi0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19XaW5kb3dzRXJyb3IsCisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PU0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgImV4Y2VwdGlvbjogaW50ZWdlciBvdmVyZmxvdyIpOwogICAgICAgICBicmVhazsKIApAQCAtMzc1LDE0ICszNzUsMTQgQEAKICAgICAgICAgLyogVGhlIHRocmVhZCBhdHRlbXB0ZWQgdG8gZXhlY3V0ZSBhbiBpbnN0cnVjdGlvbgogICAgICAgICAgICB3aG9zZSBvcGVyYXRpb24gaXMgbm90IGFsbG93ZWQgaW4gdGhlIGN1cnJlbnQKICAgICAgICAgICAgbWFjaGluZSBtb2RlLiAqLwotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfV2luZG93c0Vycm9yLAorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJleGNlcHRpb246IHByaXZpbGVkZ2VkIGluc3RydWN0aW9uIik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBFWENFUFRJT05fTk9OQ09OVElOVUFCTEVfRVhDRVBUSU9OOgogICAgICAgICAvKiBUaGUgdGhyZWFkIGF0dGVtcHRlZCB0byBjb250aW51ZSBleGVjdXRpb24gYWZ0ZXIgYQogICAgICAgICAgICBub25jb250aW51YWJsZSBleGNlcHRpb24gb2NjdXJyZWQuICovCi0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19XaW5kb3dzRXJyb3IsCisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PU0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgImV4Y2VwdGlvbjogbm9jb250aW51YWJsZSIpOwogICAgICAgICBicmVhazsKIApAQCAtMTEwMSw5ICsxMTAxLDcgQEAKICAgICAgICAgaWYgKGFyZ3R5cGVzICYmIGFyZ3R5cGVfY291bnQgPiBpKSB7CiAgICAgICAgICAgICBQeU9iamVjdCAqdjsKICAgICAgICAgICAgIGNvbnZlcnRlciA9IFB5VHVwbGVfR0VUX0lURU0oYXJndHlwZXMsIGkpOwotICAgICAgICAgICAgdiA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoY29udmVydGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgdiA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoY29udmVydGVyLCBhcmcsIE5VTEwpOwogICAgICAgICAgICAgaWYgKHYgPT0gTlVMTCkgewogICAgICAgICAgICAgICAgIF9jdHlwZXNfZXh0ZW5kX2Vycm9yKFB5RXhjX0FyZ0Vycm9yLCAiYXJndW1lbnQgJWQ6ICIsIGkrMSk7CiAgICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOwpAQCAtMTI2OCw2MiArMTI2Niw2IEBACiAgICAgcmV0dXJuIFB5X05vbmU7CiB9CiAKLS8qIG9ic29sZXRlLCBzaG91bGQgYmUgcmVtb3ZlZCAqLwotLyogT25seSB1c2VkIGJ5IHNhbXBsZSBjb2RlIChpbiBzYW1wbGVzXFdpbmRvd3NcQ09NLnB5KSAqLwotc3RhdGljIFB5T2JqZWN0ICoKLWNhbGxfY29tbWV0aG9kKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBJVW5rbm93biAqcEl1bms7Ci0gICAgaW50IGluZGV4OwotICAgIFB5T2JqZWN0ICphcmd1bWVudHM7Ci0gICAgUFBST0MgKmxwVnRibDsKLSAgICBQeU9iamVjdCAqcmVzdWx0OwotICAgIENEYXRhT2JqZWN0ICpwY29tOwotICAgIFB5T2JqZWN0ICphcmd0eXBlcyA9IE5VTEw7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIk9pTyF8TyEiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmcGNvbSwgJmluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAmUHlUdXBsZV9UeXBlLCAmYXJndW1lbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmUHlUdXBsZV9UeXBlLCAmYXJndHlwZXMpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmIChhcmd0eXBlcyAmJiAoUHlUdXBsZV9HRVRfU0laRShhcmd1bWVudHMpICE9IFB5VHVwbGVfR0VUX1NJWkUoYXJndHlwZXMpKSkgewotICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgIk1ldGhvZCB0YWtlcyAlZCBhcmd1bWVudHMgKCVkIGdpdmVuKSIsCi0gICAgICAgICAgICAgICAgICAgICBQeVR1cGxlX0dFVF9TSVpFKGFyZ3R5cGVzKSwgUHlUdXBsZV9HRVRfU0laRShhcmd1bWVudHMpKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgaWYgKCFDRGF0YU9iamVjdF9DaGVjayhwY29tKSB8fCAocGNvbS0+Yl9zaXplICE9IHNpemVvZih2b2lkICopKSkgewotICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgIkNPTSBQb2ludGVyIGV4cGVjdGVkIGluc3RlYWQgb2YgJXMgaW5zdGFuY2UiLAotICAgICAgICAgICAgICAgICAgICAgUHlfVFlQRShwY29tKS0+dHBfbmFtZSk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIGlmICgoKih2b2lkICoqKShwY29tLT5iX3B0cikpID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiVGhlIENPTSAndGhpcycgcG9pbnRlciBpcyBOVUxMIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIHBJdW5rID0gKElVbmtub3duICopKCoodm9pZCAqKikocGNvbS0+Yl9wdHIpKTsKLSAgICBscFZ0YmwgPSAoUFBST0MgKikocEl1bmstPmxwVnRibCk7Ci0KLSAgICByZXN1bHQgPSAgX2N0eXBlc19jYWxscHJvYyhscFZ0YmxbaW5kZXhdLAotICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzLAotI2lmZGVmIE1TX1dJTjMyCi0gICAgICAgICAgICAgICAgICAgICAgICBwSXVuaywKLSAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgIEZVTkNGTEFHX0hSRVNVTFQsIC8qIGZsYWdzICovCi0gICAgICAgICAgICAgICAgYXJndHlwZXMsIC8qIHNlbGYtPmFyZ3R5cGVzICovCi0gICAgICAgICAgICAgICAgTlVMTCwgLyogc2VsZi0+cmVzdHlwZSAqLwotICAgICAgICAgICAgICAgIE5VTEwpOyAvKiBjaGVja2VyICovCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQogc3RhdGljIGNoYXIgY29weV9jb21fcG9pbnRlcl9kb2NbXSA9CiAiQ29weUNvbVBvaW50ZXIoc3JjLCBkc3QpIC0+IEhSRVNVTFQgdmFsdWVcbiI7CiAKQEAgLTE0ODUsOSArMTQyNyw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAogI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgICAgICBGVU5DRkxBR19DREVDTCwgLyogZmxhZ3MgKi8KLSAgICAgICAgICAgICAgICBOVUxMLCAvKiBzZWxmLT5hcmd0eXBlcyAqLwotICAgICAgICAgICAgICAgIE5VTEwsIC8qIHNlbGYtPnJlc3R5cGUgKi8KLSAgICAgICAgICAgICAgICBOVUxMKTsgLyogY2hlY2tlciAqLworICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgLyogc2VsZi0+YXJndHlwZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIC8qIHNlbGYtPnJlc3R5cGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOyAvKiBjaGVja2VyICovCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTgxOCw3ICsxNzYwLDYgQEAKICAgICB7IkZvcm1hdEVycm9yIiwgZm9ybWF0X2Vycm9yLCBNRVRIX1ZBUkFSR1MsIGZvcm1hdF9lcnJvcl9kb2N9LAogICAgIHsiTG9hZExpYnJhcnkiLCBsb2FkX2xpYnJhcnksIE1FVEhfVkFSQVJHUywgbG9hZF9saWJyYXJ5X2RvY30sCiAgICAgeyJGcmVlTGlicmFyeSIsIGZyZWVfbGlicmFyeSwgTUVUSF9WQVJBUkdTLCBmcmVlX2xpYnJhcnlfZG9jfSwKLSAgICB7ImNhbGxfY29tbWV0aG9kIiwgY2FsbF9jb21tZXRob2QsIE1FVEhfVkFSQVJHUyB9LAogICAgIHsiX2NoZWNrX0hSRVNVTFQiLCBjaGVja19ocmVzdWx0LCBNRVRIX1ZBUkFSR1N9LAogI2Vsc2UKICAgICB7ImRsb3BlbiIsIHB5X2RsX29wZW4sIE1FVEhfVkFSQVJHUywKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N1cnNlc21vZHVsZS5jIGIvTW9kdWxlcy9fY3Vyc2VzbW9kdWxlLmMKaW5kZXggMTMyNjcwZC4uZGZmMWExNyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3Vyc2VzbW9kdWxlLmMKKysrIGIvTW9kdWxlcy9fY3Vyc2VzbW9kdWxlLmMKQEAgLTE2OCwxMCArMTY4LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICJtdXN0IGNhbGwgc3RhcnRfY29sb3IoKSBmaXJzdCIpOyAgICAgICBcCiAgICAgICAgIHJldHVybiAwOyB9CiAKLSNpZm5kZWYgTUlOCi0jZGVmaW5lIE1JTih4LHkpICgoeCkgPCAoeSkgPyAoeCkgOiAoeSkpCi0jZW5kaWYKLQogLyogVXRpbGl0eSBGdW5jdGlvbnMgKi8KIAogLyoKQEAgLTEyMTIsNyArMTIwOCw3IEBACiAgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJpO24iLCAmbikpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICBydG4yID0gd2dldG5zdHIoc2VsZi0+d2luLHJ0bixNSU4obiwgMTAyMykpOworICAgICAgICBydG4yID0gd2dldG5zdHIoc2VsZi0+d2luLCBydG4sIFB5X01JTihuLCAxMDIzKSk7CiAgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMjoKQEAgLTEyMzIsMTEgKzEyMjgsMTEgQEAKICNpZmRlZiBTVFJJQ1RfU1lTVl9DVVJTRVMKICAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwogICAgICAgICBydG4yID0gd21vdmUoc2VsZi0+d2luLHkseCk9PUVSUiA/IEVSUiA6Ci0gICAgICAgIHdnZXRuc3RyKHNlbGYtPndpbiwgcnRuLCBNSU4obiwgMTAyMykpOworICAgICAgICB3Z2V0bnN0cihzZWxmLT53aW4sIHJ0biwgUHlfTUlOKG4sIDEwMjMpKTsKICAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKICNlbHNlCiAgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgcnRuMiA9IG12d2dldG5zdHIoc2VsZi0+d2luLCB5LCB4LCBydG4sIE1JTihuLCAxMDIzKSk7CisgICAgICAgIHJ0bjIgPSBtdndnZXRuc3RyKHNlbGYtPndpbiwgeSwgeCwgcnRuLCBQeV9NSU4obiwgMTAyMykpOwogICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwpAQCAtMTM3NCw3ICsxMzcwLDcgQEAKICAgICBjYXNlIDE6CiAgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJpO24iLCAmbikpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgcnRuMiA9IHdpbm5zdHIoc2VsZi0+d2luLHJ0bixNSU4obiwxMDIzKSk7CisgICAgICAgIHJ0bjIgPSB3aW5uc3RyKHNlbGYtPndpbiwgcnRuLCBQeV9NSU4obiwgMTAyMykpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDI6CiAgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJpaTt5LHgiLCZ5LCZ4KSkKQEAgLTEzODQsNyArMTM4MCw3IEBACiAgICAgY2FzZSAzOgogICAgICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImlpaTt5LHgsbiIsICZ5LCAmeCwgJm4pKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIHJ0bjIgPSBtdndpbm5zdHIoc2VsZi0+d2luLCB5LCB4LCBydG4sIE1JTihuLDEwMjMpKTsKKyAgICAgICAgcnRuMiA9IG12d2lubnN0cihzZWxmLT53aW4sIHksIHgsIHJ0biwgUHlfTUlOKG4sMTAyMykpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiaW5zdHIgcmVxdWlyZXMgMCBvciAzIGFyZ3VtZW50cyIpOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGF0ZXRpbWVtb2R1bGUuYyBiL01vZHVsZXMvX2RhdGV0aW1lbW9kdWxlLmMKaW5kZXggN2M3MTcwZC4uOGY2MDk3MiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fZGF0ZXRpbWVtb2R1bGUuYworKysgYi9Nb2R1bGVzL19kYXRldGltZW1vZHVsZS5jCkBAIC01Mjk5LDggKzUyOTksOCBAQAogICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKiBtb2R1bGUgaW5pdGlhbGl6YXRpb24gKi8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTUlOWUVBUiIsIE1JTllFQVIpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNQVhZRUFSIiwgTUFYWUVBUik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTUlOWUVBUik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTUFYWUVBUik7CiAKICAgICBQeV9JTkNSRUYoJlB5RGF0ZVRpbWVfRGF0ZVR5cGUpOwogICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiZGF0ZSIsIChQeU9iamVjdCAqKSAmUHlEYXRlVGltZV9EYXRlVHlwZSk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kYm1tb2R1bGUuYyBiL01vZHVsZXMvX2RibW1vZHVsZS5jCmluZGV4IDMyN2I4NzMuLjFjZTg1ZjUgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2RibW1vZHVsZS5jCisrKyBiL01vZHVsZXMvX2RibW1vZHVsZS5jCkBAIC0xNCwxMSArMTQsNyBAQAogICovCiAjaWYgZGVmaW5lZChIQVZFX05EQk1fSCkKICNpbmNsdWRlIDxuZGJtLmg+Ci0jaWYgZGVmaW5lZChQWU9TX09TMikgJiYgIWRlZmluZWQoUFlDQ19HQ0MpCi1zdGF0aWMgY2hhciAqd2hpY2hfZGJtID0gIm5kYm0iOwotI2Vsc2UKIHN0YXRpYyBjaGFyICp3aGljaF9kYm0gPSAiR05VIGdkYm0iOyAgLyogRU1YIHBvcnQgb2YgR0RCTSAqLwotI2VuZGlmCiAjZWxpZiBkZWZpbmVkKEhBVkVfR0RCTV9OREJNX0gpCiAjaW5jbHVkZSA8Z2RibS9uZGJtLmg+CiBzdGF0aWMgY2hhciAqd2hpY2hfZGJtID0gIkdOVSBnZGJtIjsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2VsZW1lbnR0cmVlLmMgYi9Nb2R1bGVzL19lbGVtZW50dHJlZS5jCmluZGV4IGQzNzg0ZTguLjM3N2U4OGUgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2VsZW1lbnR0cmVlLmMKKysrIGIvTW9kdWxlcy9fZWxlbWVudHRyZWUuYwpAQCAtMSw2MyArMSwyMiBAQAotLyoKLSAqIEVsZW1lbnRUcmVlCi0gKiAkSWQ6IF9lbGVtZW50dHJlZS5jIDM0NzMgMjAwOS0wMS0xMSAyMjo1Mzo1NVogZnJlZHJpayAkCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBDb250cmlidXRvciBBZ3JlZW1lbnQuCisgKiBTZWUgaHR0cDovL3d3dy5weXRob24ub3JnL3BzZi9saWNlbnNlIGZvciBsaWNlbnNpbmcgZGV0YWlscy4KICAqCi0gKiBlbGVtZW50dHJlZSBhY2NlbGVyYXRvcgotICoKLSAqIEhpc3Rvcnk6Ci0gKiAxOTk5LTA2LTIwIGZsICBjcmVhdGVkIChhcyBwYXJ0IG9mIHNnbWxvcCkKLSAqIDIwMDEtMDUtMjkgZmwgIGVmZmRvbSBlZGl0aW9uCi0gKiAyMDAzLTAyLTI3IGZsICBlbGVtZW50dHJlZSBlZGl0aW9uIChhbHBoYSkKLSAqIDIwMDQtMDYtMDMgZmwgIHVwZGF0ZXMgZm9yIGVsZW1lbnR0cmVlIDEuMgotICogMjAwNS0wMS0wNSBmbCAgbWFqb3Igb3B0aW1pemF0aW9uIGVmZm9ydAotICogMjAwNS0wMS0xMSBmbCAgZmlyc3QgcHVibGljIHJlbGVhc2UgKGNFbGVtZW50VHJlZSAwLjgpCi0gKiAyMDA1LTAxLTEyIGZsICBzcGxpdCBlbGVtZW50IG9iamVjdCBpbnRvIGJhc2UgYW5kIGV4dHJhcwotICogMjAwNS0wMS0xMyBmbCAgdXNlIHRhZ2dlZCBwb2ludGVycyBmb3IgdGFpbC90ZXh0IChjRWxlbWVudFRyZWUgMC45KQotICogMjAwNS0wMS0xNyBmbCAgYWRkZWQgdHJlZWJ1aWxkZXIgY2xvc2UgbWV0aG9kCi0gKiAyMDA1LTAxLTE3IGZsICBmaXhlZCBjcmFzaCBpbiBnZXRjaGlsZHJlbgotICogMjAwNS0wMS0xOCBmbCAgcmVtb3ZlZCBvYnNlcnZlciBhcGksIGFkZGVkIGl0ZXJwYXJzZSAoY0VsZW1lbnRUcmVlIDAuOS4zKQotICogMjAwNS0wMS0yMyBmbCAgcmV2aXNlZCBpdGVycGFyc2UgYXBpOyBhZGRlZCBuYW1lc3BhY2UgZXZlbnQgc3VwcG9ydCAoMC45LjgpCi0gKiAyMDA1LTAxLTI2IGZsICBhZGRlZCBWRVJTSU9OIG1vZHVsZSBwcm9wZXJ0eSAoY0VsZW1lbnRUcmVlIDEuMCkKLSAqIDIwMDUtMDEtMjggZmwgIGFkZGVkIHJlbW92ZSBtZXRob2QgKDEuMC4xKQotICogMjAwNS0wMy0wMSBmbCAgYWRkZWQgaXNlbGVtZW50IGZ1bmN0aW9uOyBmaXhlZCBtYWtlZWxlbWVudCBhbGlhc2luZyAoMS4wLjIpCi0gKiAyMDA1LTAzLTEzIGZsICBleHBvcnQgQ29tbWVudCBhbmQgUHJvY2Vzc2luZ0luc3RydWN0aW9uL1BJIGhlbHBlcnMKLSAqIDIwMDUtMDMtMjYgZmwgIGFkZGVkIENvbW1lbnQgYW5kIFBJIHN1cHBvcnQgdG8gWE1MUGFyc2VyCi0gKiAyMDA1LTAzLTI3IGZsICBldmVudCBvcHRpbWl6YXRpb25zOyBjb21wbGFpbiBhYm91dCBib2d1cyBldmVudHMKLSAqIDIwMDUtMDgtMDggZmwgIGZpeGVkIHJlYWQgZXJyb3IgaGFuZGxpbmcgaW4gcGFyc2UKLSAqIDIwMDUtMDgtMTEgZmwgIGFkZGVkIHJ1bnRpbWUgdGVzdCBmb3IgY29weSB3b3JrYXJvdW5kICgxLjAuMykKLSAqIDIwMDUtMTItMTMgZmwgIGFkZGVkIGV4cGF0X2NhcGkgc3VwcG9ydCAoZm9yIHhtbC5ldHJlZSkgKDEuMC40KQotICogMjAwNS0xMi0xNiBmbCAgYWRkZWQgc3VwcG9ydCBmb3Igbm9uLXN0YW5kYXJkIGVuY29kaW5ncwotICogMjAwNi0wMy0wOCBmbCAgZml4ZWQgYSBjb3VwbGUgb2YgcG90ZW50aWFsIG51bGwtcmVmcyBhbmQgbGVha3MKLSAqIDIwMDYtMDMtMTIgZmwgIG1lcmdlIGluIDIuNSBzc2l6ZV90IGNoYW5nZXMKLSAqIDIwMDctMDgtMjUgZmwgIGNhbGwgY3VzdG9tIGJ1aWxkZXIncyBjbG9zZSBtZXRob2QgZnJvbSBYTUxQYXJzZXIKLSAqIDIwMDctMDgtMzEgZmwgIGFkZGVkIGl0ZXIsIGV4dGVuZCBmcm9tIEVUIDEuMwotICogMjAwNy0wOS0wMSBmbCAgZml4ZWQgUGFyc2VFcnJvciBleGNlcHRpb24sIHNldHNsaWNlIHNvdXJjZSB0eXBlLCBldGMKLSAqIDIwMDctMDktMDMgZmwgIGZpeGVkIGhhbmRsaW5nIG9mIG5lZ2F0aXZlIGluc2VydCBpbmRleGVzCi0gKiAyMDA3LTA5LTA0IGZsICBhZGRlZCBpdGVydGV4dCBmcm9tIEVUIDEuMwotICogMjAwNy0wOS0wNiBmbCAgYWRkZWQgcG9zaXRpb24gYXR0cmlidXRlIHRvIFBhcnNlRXJyb3IgZXhjZXB0aW9uCi0gKiAyMDA4LTA2LTA2IGZsICBkZWxheSBlcnJvciByZXBvcnRpbmcgaW4gaXRlcnBhcnNlIChmcm9tIEhydm9qZSBOaWtzaWMpCi0gKgorICogX2VsZW1lbnR0cmVlIC0gQyBhY2NlbGVyYXRvciBmb3IgeG1sLmV0cmVlLkVsZW1lbnRUcmVlCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTktMjAwOSBieSBTZWNyZXQgTGFicyBBQi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTktMjAwOSBieSBGcmVkcmlrIEx1bmRoLgogICoKICAqIGluZm9AcHl0aG9ud2FyZS5jb20KICAqIGh0dHA6Ly93d3cucHl0aG9ud2FyZS5jb20KKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCi0vKiBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBDb250cmlidXRvciBBZ3JlZW1lbnQuICovCi0vKiBTZWUgaHR0cDovL3d3dy5weXRob24ub3JnL3BzZi9saWNlbnNlIGZvciBsaWNlbnNpbmcgZGV0YWlscy4gKi8KLQogI2luY2x1ZGUgIlB5dGhvbi5oIgogI2luY2x1ZGUgInN0cnVjdG1lbWJlci5oIgogCi0jZGVmaW5lIFZFUlNJT04gIjEuMC42IgotCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogLyogY29uZmlndXJhdGlvbiAqLwogCi0vKiBMZWF2ZSBkZWZpbmVkIHRvIGluY2x1ZGUgdGhlIGV4cGF0LWJhc2VkIFhNTFBhcnNlciB0eXBlICovCi0jZGVmaW5lIFVTRV9FWFBBVAotCiAvKiBBbiBlbGVtZW50IGNhbiBob2xkIHRoaXMgbWFueSBjaGlsZHJlbiB3aXRob3V0IGV4dHJhIG1lbW9yeQogICAgYWxsb2NhdGlvbnMuICovCiAjZGVmaW5lIFNUQVRJQ19DSElMRFJFTiA0CkBAIC0zNDAsNiArMjk5LDcgQEAKIAogICAgIFB5X0RFQ1JFRihhdHRyaWJfc3RyKTsKIAorICAgIC8qIGF0dHJpYiBjYW4gYmUgTlVMTCBpZiBQeURpY3RfTmV3IGZhaWxlZCAqLwogICAgIGlmIChhdHRyaWIpCiAgICAgICAgIFB5RGljdF9VcGRhdGUoYXR0cmliLCBrd2RzKTsKICAgICByZXR1cm4gYXR0cmliOwpAQCAtMjY4NSw4ICsyNjQ1LDYgQEAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAvKiB0aGUgZXhwYXQgaW50ZXJmYWNlICovCiAKLSNpZiBkZWZpbmVkKFVTRV9FWFBBVCkKLQogI2luY2x1ZGUgImV4cGF0LmgiCiAjaW5jbHVkZSAicHlleHBhdC5oIgogc3RhdGljIHN0cnVjdCBQeUV4cGF0X0NBUEkgKmV4cGF0X2NhcGk7CkBAIC0zMzY5LDEwICszMzI3LDkgQEAKIH0KIAogc3RhdGljIFB5T2JqZWN0KgoteG1scGFyc2VyX3BhcnNlKFhNTFBhcnNlck9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCit4bWxwYXJzZXJfcGFyc2Vfd2hvbGUoWE1MUGFyc2VyT2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncykKIHsKLSAgICAvKiAoaW50ZXJuYWwpIHBhcnNlIHVudGlsIGVuZCBvZiBpbnB1dCBzdHJlYW0gKi8KLQorICAgIC8qIChpbnRlcm5hbCkgcGFyc2UgdGhlIHdob2xlIGlucHV0LCB1bnRpbCBlbmQgb2Ygc3RyZWFtICovCiAgICAgUHlPYmplY3QqIHJlYWRlcjsKICAgICBQeU9iamVjdCogYnVmZmVyOwogICAgIFB5T2JqZWN0KiB0ZW1wOwpAQCAtMzQ1MywxNCArMzQxMCwxNCBAQAogeG1scGFyc2VyX3NldGV2ZW50cyhYTUxQYXJzZXJPYmplY3QgKnNlbGYsIFB5T2JqZWN0KiBhcmdzKQogewogICAgIC8qIGFjdGl2YXRlIGVsZW1lbnQgZXZlbnQgcmVwb3J0aW5nICovCisgICAgUHlfc3NpemVfdCBpLCBzZXFsZW47CisgICAgVHJlZUJ1aWxkZXJPYmplY3QgKnRhcmdldDsKIAotICAgIFB5X3NzaXplX3QgaTsKLSAgICBUcmVlQnVpbGRlck9iamVjdCogdGFyZ2V0OwotCi0gICAgUHlPYmplY3QqIGV2ZW50czsgLyogZXZlbnQgY29sbGVjdG9yICovCi0gICAgUHlPYmplY3QqIGV2ZW50X3NldCA9IFB5X05vbmU7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPIXxPOl9zZXRldmVudHMiLCAgJlB5TGlzdF9UeXBlLCAmZXZlbnRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmZXZlbnRfc2V0KSkKKyAgICBQeU9iamVjdCAqZXZlbnRzX3F1ZXVlOworICAgIFB5T2JqZWN0ICpldmVudHNfdG9fcmVwb3J0ID0gUHlfTm9uZTsKKyAgICBQeU9iamVjdCAqZXZlbnRzX3NlcTsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8hfE86X3NldGV2ZW50cyIsICAmUHlMaXN0X1R5cGUsICZldmVudHNfcXVldWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZldmVudHNfdG9fcmVwb3J0KSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBpZiAoIVRyZWVCdWlsZGVyX0NoZWNrRXhhY3Qoc2VsZi0+dGFyZ2V0KSkgewpAQCAtMzQ3NCw5ICszNDMxLDkgQEAKIAogICAgIHRhcmdldCA9IChUcmVlQnVpbGRlck9iamVjdCopIHNlbGYtPnRhcmdldDsKIAotICAgIFB5X0lOQ1JFRihldmVudHMpOworICAgIFB5X0lOQ1JFRihldmVudHNfcXVldWUpOwogICAgIFB5X1hERUNSRUYodGFyZ2V0LT5ldmVudHMpOwotICAgIHRhcmdldC0+ZXZlbnRzID0gZXZlbnRzOworICAgIHRhcmdldC0+ZXZlbnRzID0gZXZlbnRzX3F1ZXVlOwogCiAgICAgLyogY2xlYXIgb3V0IGV4aXN0aW5nIGV2ZW50cyAqLwogICAgIFB5X0NMRUFSKHRhcmdldC0+c3RhcnRfZXZlbnRfb2JqKTsKQEAgLTM0ODQsNzUgKzM0NDEsNzEgQEAKICAgICBQeV9DTEVBUih0YXJnZXQtPnN0YXJ0X25zX2V2ZW50X29iaik7CiAgICAgUHlfQ0xFQVIodGFyZ2V0LT5lbmRfbnNfZXZlbnRfb2JqKTsKIAotICAgIGlmIChldmVudF9zZXQgPT0gUHlfTm9uZSkgeworICAgIGlmIChldmVudHNfdG9fcmVwb3J0ID09IFB5X05vbmUpIHsKICAgICAgICAgLyogZGVmYXVsdCBpcyAiZW5kIiBvbmx5ICovCiAgICAgICAgIHRhcmdldC0+ZW5kX2V2ZW50X29iaiA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCJlbmQiKTsKICAgICAgICAgUHlfUkVUVVJOX05PTkU7CiAgICAgfQogCi0gICAgaWYgKCFQeVR1cGxlX0NoZWNrKGV2ZW50X3NldCkpIC8qIEZJWE1FOiBoYW5kbGUgYXJiaXRyYXJ5IHNlcXVlbmNlcyAqLwotICAgICAgICBnb3RvIGVycm9yOworICAgIGlmICghKGV2ZW50c19zZXEgPSBQeVNlcXVlbmNlX0Zhc3QoZXZlbnRzX3RvX3JlcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJldmVudHMgbXVzdCBiZSBhIHNlcXVlbmNlIikpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KIAotICAgIGZvciAoaSA9IDA7IGkgPCBQeVR1cGxlX0dFVF9TSVpFKGV2ZW50X3NldCk7IGkrKykgewotICAgICAgICBQeU9iamVjdCogaXRlbSA9IFB5VHVwbGVfR0VUX0lURU0oZXZlbnRfc2V0LCBpKTsKLSAgICAgICAgY2hhciogZXZlbnQ7Ci0gICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2soaXRlbSkpIHsKLSAgICAgICAgICAgIGV2ZW50ID0gX1B5VW5pY29kZV9Bc1N0cmluZyhpdGVtKTsKLSAgICAgICAgICAgIGlmIChldmVudCA9PSBOVUxMKQotICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgIH0gZWxzZSBpZiAoUHlCeXRlc19DaGVjayhpdGVtKSkKLSAgICAgICAgICAgIGV2ZW50ID0gUHlCeXRlc19BU19TVFJJTkcoaXRlbSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICBzZXFsZW4gPSBQeVNlcXVlbmNlX1NpemUoZXZlbnRzX3NlcSk7CisgICAgZm9yIChpID0gMDsgaSA8IHNlcWxlbjsgKytpKSB7CisgICAgICAgIFB5T2JqZWN0ICpldmVudF9uYW1lX29iaiA9IFB5U2VxdWVuY2VfRmFzdF9HRVRfSVRFTShldmVudHNfc2VxLCBpKTsKKyAgICAgICAgY2hhciAqZXZlbnRfbmFtZSA9IE5VTEw7CisgICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2soZXZlbnRfbmFtZV9vYmopKSB7CisgICAgICAgICAgICBldmVudF9uYW1lID0gX1B5VW5pY29kZV9Bc1N0cmluZyhldmVudF9uYW1lX29iaik7CisgICAgICAgIH0gZWxzZSBpZiAoUHlCeXRlc19DaGVjayhldmVudF9uYW1lX29iaikpIHsKKyAgICAgICAgICAgIGV2ZW50X25hbWUgPSBQeUJ5dGVzX0FTX1NUUklORyhldmVudF9uYW1lX29iaik7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHN0cmNtcChldmVudCwgInN0YXJ0IikgPT0gMCkgewotICAgICAgICAgICAgUHlfSU5DUkVGKGl0ZW0pOwotICAgICAgICAgICAgdGFyZ2V0LT5zdGFydF9ldmVudF9vYmogPSBpdGVtOwotICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChldmVudCwgImVuZCIpID09IDApIHsKLSAgICAgICAgICAgIFB5X0lOQ1JFRihpdGVtKTsKKworICAgICAgICBpZiAoZXZlbnRfbmFtZSA9PSBOVUxMKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYoZXZlbnRzX3NlcSk7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwgImludmFsaWQgZXZlbnRzIHNlcXVlbmNlIik7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAoZXZlbnRfbmFtZSwgInN0YXJ0IikgPT0gMCkgeworICAgICAgICAgICAgUHlfSU5DUkVGKGV2ZW50X25hbWVfb2JqKTsKKyAgICAgICAgICAgIHRhcmdldC0+c3RhcnRfZXZlbnRfb2JqID0gZXZlbnRfbmFtZV9vYmo7CisgICAgICAgIH0gZWxzZSBpZiAoc3RyY21wKGV2ZW50X25hbWUsICJlbmQiKSA9PSAwKSB7CisgICAgICAgICAgICBQeV9JTkNSRUYoZXZlbnRfbmFtZV9vYmopOwogICAgICAgICAgICAgUHlfWERFQ1JFRih0YXJnZXQtPmVuZF9ldmVudF9vYmopOwotICAgICAgICAgICAgdGFyZ2V0LT5lbmRfZXZlbnRfb2JqID0gaXRlbTsKLSAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAoZXZlbnQsICJzdGFydC1ucyIpID09IDApIHsKLSAgICAgICAgICAgIFB5X0lOQ1JFRihpdGVtKTsKKyAgICAgICAgICAgIHRhcmdldC0+ZW5kX2V2ZW50X29iaiA9IGV2ZW50X25hbWVfb2JqOworICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChldmVudF9uYW1lLCAic3RhcnQtbnMiKSA9PSAwKSB7CisgICAgICAgICAgICBQeV9JTkNSRUYoZXZlbnRfbmFtZV9vYmopOwogICAgICAgICAgICAgUHlfWERFQ1JFRih0YXJnZXQtPnN0YXJ0X25zX2V2ZW50X29iaik7Ci0gICAgICAgICAgICB0YXJnZXQtPnN0YXJ0X25zX2V2ZW50X29iaiA9IGl0ZW07CisgICAgICAgICAgICB0YXJnZXQtPnN0YXJ0X25zX2V2ZW50X29iaiA9IGV2ZW50X25hbWVfb2JqOwogICAgICAgICAgICAgRVhQQVQoU2V0TmFtZXNwYWNlRGVjbEhhbmRsZXIpKAogICAgICAgICAgICAgICAgIHNlbGYtPnBhcnNlciwKICAgICAgICAgICAgICAgICAoWE1MX1N0YXJ0TmFtZXNwYWNlRGVjbEhhbmRsZXIpIGV4cGF0X3N0YXJ0X25zX2hhbmRsZXIsCiAgICAgICAgICAgICAgICAgKFhNTF9FbmROYW1lc3BhY2VEZWNsSGFuZGxlcikgZXhwYXRfZW5kX25zX2hhbmRsZXIKICAgICAgICAgICAgICAgICApOwotICAgICAgICB9IGVsc2UgaWYgKHN0cmNtcChldmVudCwgImVuZC1ucyIpID09IDApIHsKLSAgICAgICAgICAgIFB5X0lOQ1JFRihpdGVtKTsKKyAgICAgICAgfSBlbHNlIGlmIChzdHJjbXAoZXZlbnRfbmFtZSwgImVuZC1ucyIpID09IDApIHsKKyAgICAgICAgICAgIFB5X0lOQ1JFRihldmVudF9uYW1lX29iaik7CiAgICAgICAgICAgICBQeV9YREVDUkVGKHRhcmdldC0+ZW5kX25zX2V2ZW50X29iaik7Ci0gICAgICAgICAgICB0YXJnZXQtPmVuZF9uc19ldmVudF9vYmogPSBpdGVtOworICAgICAgICAgICAgdGFyZ2V0LT5lbmRfbnNfZXZlbnRfb2JqID0gZXZlbnRfbmFtZV9vYmo7CiAgICAgICAgICAgICBFWFBBVChTZXROYW1lc3BhY2VEZWNsSGFuZGxlcikoCiAgICAgICAgICAgICAgICAgc2VsZi0+cGFyc2VyLAogICAgICAgICAgICAgICAgIChYTUxfU3RhcnROYW1lc3BhY2VEZWNsSGFuZGxlcikgZXhwYXRfc3RhcnRfbnNfaGFuZGxlciwKICAgICAgICAgICAgICAgICAoWE1MX0VuZE5hbWVzcGFjZURlY2xIYW5kbGVyKSBleHBhdF9lbmRfbnNfaGFuZGxlcgogICAgICAgICAgICAgICAgICk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBQeUVycl9Gb3JtYXQoCi0gICAgICAgICAgICAgICAgUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAidW5rbm93biBldmVudCAnJXMnIiwgZXZlbnQKLSAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgUHlfREVDUkVGKGV2ZW50c19zZXEpOworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsICJ1bmtub3duIGV2ZW50ICclcyciLCBldmVudF9uYW1lKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAgICAgfQogCisgICAgUHlfREVDUkVGKGV2ZW50c19zZXEpOwogICAgIFB5X1JFVFVSTl9OT05FOwotCi0gIGVycm9yOgotICAgIFB5RXJyX1NldFN0cmluZygKLSAgICAgICAgUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAiaW52YWxpZCBldmVudCB0dXBsZSIKLSAgICAgICAgKTsKLSAgICByZXR1cm4gTlVMTDsKIH0KIAogc3RhdGljIFB5TWV0aG9kRGVmIHhtbHBhcnNlcl9tZXRob2RzW10gPSB7CiAgICAgeyJmZWVkIiwgKFB5Q0Z1bmN0aW9uKSB4bWxwYXJzZXJfZmVlZCwgTUVUSF9PfSwKICAgICB7ImNsb3NlIiwgKFB5Q0Z1bmN0aW9uKSB4bWxwYXJzZXJfY2xvc2UsIE1FVEhfVkFSQVJHU30sCi0gICAgeyJfcGFyc2UiLCAoUHlDRnVuY3Rpb24pIHhtbHBhcnNlcl9wYXJzZSwgTUVUSF9WQVJBUkdTfSwKKyAgICB7Il9wYXJzZV93aG9sZSIsIChQeUNGdW5jdGlvbikgeG1scGFyc2VyX3BhcnNlX3dob2xlLCBNRVRIX1ZBUkFSR1N9LAogICAgIHsiX3NldGV2ZW50cyIsIChQeUNGdW5jdGlvbikgeG1scGFyc2VyX3NldGV2ZW50cywgTUVUSF9WQVJBUkdTfSwKICAgICB7ImRvY3R5cGUiLCAoUHlDRnVuY3Rpb24pIHhtbHBhcnNlcl9kb2N0eXBlLCBNRVRIX1ZBUkFSR1N9LAogICAgIHtOVUxMLCBOVUxMfQpAQCAtMzYyNCw4ICszNTc3LDYgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9mcmVlICovCiB9OwogCi0jZW5kaWYKLQogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIC8qIHB5dGhvbiBtb2R1bGUgaW50ZXJmYWNlICovCiAKQEAgLTM2NTcsMTAgKzM2MDgsOCBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAoUHlUeXBlX1JlYWR5KCZFbGVtZW50X1R5cGUpIDwgMCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0jaWYgZGVmaW5lZChVU0VfRVhQQVQpCiAgICAgaWYgKFB5VHlwZV9SZWFkeSgmWE1MUGFyc2VyX1R5cGUpIDwgMCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0jZW5kaWYKIAogICAgIG0gPSBQeU1vZHVsZV9DcmVhdGUoJl9lbGVtZW50dHJlZW1vZHVsZSk7CiAgICAgaWYgKCFtKQpAQCAtMzcwMywxMCArMzY1Miw4IEBACiAgICAgUHlfSU5DUkVGKChQeU9iamVjdCAqKSZUcmVlQnVpbGRlcl9UeXBlKTsKICAgICBQeU1vZHVsZV9BZGRPYmplY3QobSwgIlRyZWVCdWlsZGVyIiwgKFB5T2JqZWN0ICopJlRyZWVCdWlsZGVyX1R5cGUpOwogCi0jaWYgZGVmaW5lZChVU0VfRVhQQVQpCiAgICAgUHlfSU5DUkVGKChQeU9iamVjdCAqKSZYTUxQYXJzZXJfVHlwZSk7CiAgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJYTUxQYXJzZXIiLCAoUHlPYmplY3QgKikmWE1MUGFyc2VyX1R5cGUpOwotI2VuZGlmCiAKICAgICByZXR1cm4gbTsKIH0KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2ZyZWV6ZV9pbXBvcnRsaWIuYyBiL01vZHVsZXMvX2ZyZWV6ZV9pbXBvcnRsaWIuYwppbmRleCA2NWIyOWUxLi4wNDM1YThhIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19mcmVlemVfaW1wb3J0bGliLmMKKysrIGIvTW9kdWxlcy9fZnJlZXplX2ltcG9ydGxpYi5jCkBAIC0xNyw3ICsxNyw3IEBACiAgICBvZiBmcm96ZW4gbW9kdWxlcyBpbnN0ZWFkLCBsZWZ0IGRlbGliZXJhdGVseSBibGFuayBzbyBhcyB0byBhdm9pZAogICAgdW5pbnRlbnRpb25hbCBpbXBvcnQgb2YgYSBzdGFsZSB2ZXJzaW9uIG9mIF9mcm96ZW5faW1wb3J0bGliLiAqLwogCi1zdGF0aWMgc3RydWN0IF9mcm96ZW4gX1B5SW1wb3J0X0Zyb3plbk1vZHVsZXNbXSA9IHsKK2NvbnN0IHN0YXRpYyBzdHJ1Y3QgX2Zyb3plbiBfUHlJbXBvcnRfRnJvemVuTW9kdWxlc1tdID0gewogICAgIHswLCAwLCAwfSAvKiBzZW50aW5lbCAqLwogfTsKIApAQCAtMjUsNyArMjUsNyBAQAogLyogT24gV2luZG93cywgdGhpcyBsaW5rcyB3aXRoIHRoZSByZWd1bGFyIHB5dGhvblhZLmRsbCwgc28gdGhpcyB2YXJpYWJsZSBjb21lcwogICAgZnJvbSBmcm96ZW4ub2JqLiBJbiB0aGUgTWFrZWZpbGUsIGZyb3plbi5vIGlzIG5vdCBsaW5rZWQgaW50byB0aGlzIGV4ZWN1dGFibGUsCiAgICBzbyB3ZSBkZWZpbmUgdGhlIHZhcmlhYmxlIGhlcmUuICovCi1zdHJ1Y3QgX2Zyb3plbiAqUHlJbXBvcnRfRnJvemVuTW9kdWxlczsKK2NvbnN0IHN0cnVjdCBfZnJvemVuICpQeUltcG9ydF9Gcm96ZW5Nb2R1bGVzOwogI2VuZGlmCiAKIGNvbnN0IGNoYXIgaGVhZGVyW10gPSAiLyogQXV0by1nZW5lcmF0ZWQgYnkgTW9kdWxlcy9fZnJlZXplX2ltcG9ydGxpYi5jICovIjsKQEAgLTEwNSw3ICsxMDUsNyBAQAogICAgICAgICByZXR1cm4gMTsKICAgICB9CiAgICAgZnByaW50ZihvdXRmaWxlLCAiJXNcbiIsIGhlYWRlcik7Ci0gICAgZnByaW50ZihvdXRmaWxlLCAidW5zaWduZWQgY2hhciBfUHlfTV9faW1wb3J0bGliW10gPSB7XG4iKTsKKyAgICBmcHJpbnRmKG91dGZpbGUsICJjb25zdCB1bnNpZ25lZCBjaGFyIF9QeV9NX19pbXBvcnRsaWJbXSA9IHtcbiIpOwogICAgIGZvciAobiA9IDA7IG4gPCBkYXRhX3NpemU7IG4gKz0gMTYpIHsKICAgICAgICAgc2l6ZV90IGksIGVuZCA9IFB5X01JTihuICsgMTYsIGRhdGFfc2l6ZSk7CiAgICAgICAgIGZwcmludGYob3V0ZmlsZSwgIiAgICAiKTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2hhc2hvcGVuc3NsLmMgYi9Nb2R1bGVzL19oYXNob3BlbnNzbC5jCmluZGV4IDNhYjFjMGMuLmM4ZGI1ZWQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2hhc2hvcGVuc3NsLmMKKysrIGIvTW9kdWxlcy9faGFzaG9wZW5zc2wuYwpAQCAtMTcsMjQgKzE3LDYgQEAKICNpbmNsdWRlICJzdHJ1Y3RtZW1iZXIuaCIKICNpbmNsdWRlICJoYXNobGliLmgiCiAKLSNpZmRlZiBXSVRIX1RIUkVBRAotI2luY2x1ZGUgInB5dGhyZWFkLmgiCi0gICAgI2RlZmluZSBFTlRFUl9IQVNITElCKG9iaikgXAotICAgICAgICBpZiAoKG9iaiktPmxvY2spIHsgXAotICAgICAgICAgICAgaWYgKCFQeVRocmVhZF9hY3F1aXJlX2xvY2soKG9iaiktPmxvY2ssIDApKSB7IFwKLSAgICAgICAgICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTIFwKLSAgICAgICAgICAgICAgICBQeVRocmVhZF9hY3F1aXJlX2xvY2soKG9iaiktPmxvY2ssIDEpOyBcCi0gICAgICAgICAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMgXAotICAgICAgICAgICAgfSBcCi0gICAgICAgIH0KLSAgICAjZGVmaW5lIExFQVZFX0hBU0hMSUIob2JqKSBcCi0gICAgICAgIGlmICgob2JqKS0+bG9jaykgeyBcCi0gICAgICAgICAgICBQeVRocmVhZF9yZWxlYXNlX2xvY2soKG9iaiktPmxvY2spOyBcCi0gICAgICAgIH0KLSNlbHNlCi0gICAgI2RlZmluZSBFTlRFUl9IQVNITElCKG9iaikKLSAgICAjZGVmaW5lIExFQVZFX0hBU0hMSUIob2JqKQotI2VuZGlmCiAKIC8qIEVWUCBpcyB0aGUgcHJlZmVycmVkIGludGVyZmFjZSB0byBoYXNoaW5nIGluIE9wZW5TU0wgKi8KICNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgpAQCAtNDMsMTAgKzI1LDYgQEAKIAogI2RlZmluZSBNVU5DSF9TSVpFIElOVF9NQVgKIAotLyogVE9ETyhncHMpOiBXZSBzaG91bGQgcHJvYmFibHkgbWFrZSB0aGlzIGEgbW9kdWxlIG9yIEVWUG9iamVjdCBhdHRyaWJ1dGUKLSAqIHRvIGFsbG93IHRoZSB1c2VyIHRvIG9wdGltaXplIGJhc2VkIG9uIHRoZSBwbGF0Zm9ybSB0aGV5J3JlIHVzaW5nLiAqLwotI2RlZmluZSBIQVNITElCX0dJTF9NSU5TSVpFIDIwNDgKLQogI2lmbmRlZiBIQVNIX09CSl9DT05TVFJVQ1RPUgogI2RlZmluZSBIQVNIX09CSl9DT05TVFJVQ1RPUiAwCiAjZW5kaWYKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2lvL2J1ZmZlcmVkaW8uYyBiL01vZHVsZXMvX2lvL2J1ZmZlcmVkaW8uYwppbmRleCA3ZjE4MGE0Li5iMGJiYzYyIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19pby9idWZmZXJlZGlvLmMKKysrIGIvTW9kdWxlcy9faW8vYnVmZmVyZWRpby5jCkBAIC01MjcsNiArNTI3LDExIEBACiAKICAgICByZXMgPSBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncyhzZWxmLT5yYXcsIF9QeUlPX3N0cl9jbG9zZSwgTlVMTCk7CiAKKyAgICBpZiAoc2VsZi0+YnVmZmVyKSB7CisgICAgICAgIFB5TWVtX0ZyZWUoc2VsZi0+YnVmZmVyKTsKKyAgICAgICAgc2VsZi0+YnVmZmVyID0gTlVMTDsKKyAgICB9CisKICAgICBpZiAoZXhjICE9IE5VTEwpIHsKICAgICAgICAgaWYgKHJlcyAhPSBOVUxMKSB7CiAgICAgICAgICAgICBQeV9DTEVBUihyZXMpOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9faW8vZmlsZWlvLmMgYi9Nb2R1bGVzL19pby9maWxlaW8uYwppbmRleCA4YzFmYWJlLi5mZjdkMTRkIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19pby9maWxlaW8uYworKysgYi9Nb2R1bGVzL19pby9maWxlaW8uYwpAQCAtMzkxLDEyICszOTEsNyBAQAogCiAgICAgICAgIGZkX2lzX293biA9IDE7CiAgICAgICAgIGlmIChzZWxmLT5mZCA8IDApIHsKLSNpZmRlZiBNU19XSU5ET1dTCi0gICAgICAgICAgICBpZiAod2lkZW5hbWUgIT0gTlVMTCkKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWVPYmplY3QoUHlFeGNfSU9FcnJvciwgbmFtZW9iaik7Ci0gICAgICAgICAgICBlbHNlCi0jZW5kaWYKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWUoUHlFeGNfSU9FcnJvciwgbmFtZSk7CisgICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWVPYmplY3QoUHlFeGNfT1NFcnJvciwgbmFtZW9iaik7CiAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICB9CiAgICAgfQpAQCAtNTYxLDMzICs1NTYsMjcgQEAKICAgICByZXR1cm4gUHlMb25nX0Zyb21Tc2l6ZV90KG4pOwogfQogCisjaWZuZGVmIEhBVkVfRlNUQVQKKworc3RhdGljIFB5T2JqZWN0ICoKK2ZpbGVpb19yZWFkYWxsKGZpbGVpbyAqc2VsZikKK3sKKyAgICBfUHlfSURFTlRJRklFUihyZWFkYWxsKTsKKyAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCgoUHlPYmplY3QqKSZQeVJhd0lPQmFzZV9UeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQeUlkX3JlYWRhbGwsICJPIiwgc2VsZik7Cit9CisKKyNlbHNlCisKIHN0YXRpYyBzaXplX3QKLW5ld19idWZmZXJzaXplKGZpbGVpbyAqc2VsZiwgc2l6ZV90IGN1cnJlbnRzaXplCi0jaWZkZWYgSEFWRV9GU1RBVAotICAgICAgICAgICAgICAgLCBQeV9vZmZfdCBwb3MsIFB5X29mZl90IGVuZAotI2VuZGlmCi0gICAgICAgICAgICAgICApCituZXdfYnVmZmVyc2l6ZShmaWxlaW8gKnNlbGYsIHNpemVfdCBjdXJyZW50c2l6ZSkKIHsKICAgICBzaXplX3QgYWRkZW5kOwotI2lmZGVmIEhBVkVfRlNUQVQKLSAgICBpZiAoZW5kICE9IChQeV9vZmZfdCktMSkgewotICAgICAgICAvKiBGaWxlcyBjbGFpbWluZyBhIHNpemUgc21hbGxlciB0aGFuIFNNQUxMQ0hVTksgbWF5Ci0gICAgICAgICAgIGFjdHVhbGx5IGJlIHN0cmVhbWluZyBwc2V1ZG8tZmlsZXMuIEluIHRoaXMgY2FzZSwgd2UKLSAgICAgICAgICAgYXBwbHkgdGhlIG1vcmUgYWdncmVzc2l2ZSBhbGdvcml0aG0gYmVsb3cuCi0gICAgICAgICovCi0gICAgICAgIGlmIChlbmQgPj0gU01BTExDSFVOSyAmJiBlbmQgPj0gcG9zICYmIHBvcyA+PSAwKSB7Ci0gICAgICAgICAgICAvKiBBZGQgMSBzbyBpZiB0aGUgZmlsZSB3ZXJlIHRvIGdyb3cgd2UnZCBub3RpY2UuICovCi0gICAgICAgICAgICBQeV9vZmZfdCBidWZzaXplID0gY3VycmVudHNpemUgKyBlbmQgLSBwb3MgKyAxOwotICAgICAgICAgICAgaWYgKGJ1ZnNpemUgPCBQWV9TU0laRV9UX01BWCkKLSAgICAgICAgICAgICAgICByZXR1cm4gKHNpemVfdClidWZzaXplOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJldHVybiBQWV9TU0laRV9UX01BWDsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgorCiAgICAgLyogRXhwYW5kIHRoZSBidWZmZXIgYnkgYW4gYW1vdW50IHByb3BvcnRpb25hbCB0byB0aGUgY3VycmVudCBzaXplLAogICAgICAgIGdpdmluZyB1cyBhbW9ydGl6ZWQgbGluZWFyLXRpbWUgYmVoYXZpb3IuICBGb3IgYmlnZ2VyIHNpemVzLCB1c2UgYQogICAgICAgIGxlc3MtdGhhbi1kb3VibGUgZ3Jvd3RoIGZhY3RvciB0byBhdm9pZCBleGNlc3NpdmUgYWxsb2NhdGlvbi4gKi8KKyAgICBhc3NlcnQoY3VycmVudHNpemUgPD0gUFlfU1NJWkVfVF9NQVgpOwogICAgIGlmIChjdXJyZW50c2l6ZSA+IDY1NTM2KQogICAgICAgICBhZGRlbmQgPSBjdXJyZW50c2l6ZSA+PiAzOwogICAgIGVsc2UKQEAgLTYwMSwyNSArNTkwLDE4IEBACiBzdGF0aWMgUHlPYmplY3QgKgogZmlsZWlvX3JlYWRhbGwoZmlsZWlvICpzZWxmKQogewotI2lmZGVmIEhBVkVfRlNUQVQKICAgICBzdHJ1Y3Qgc3RhdCBzdDsKICAgICBQeV9vZmZfdCBwb3MsIGVuZDsKLSNlbmRpZgogICAgIFB5T2JqZWN0ICpyZXN1bHQ7Ci0gICAgUHlfc3NpemVfdCB0b3RhbCA9IDA7CisgICAgUHlfc3NpemVfdCBieXRlc19yZWFkID0gMDsKICAgICBQeV9zc2l6ZV90IG47Ci0gICAgc2l6ZV90IG5ld3NpemU7CisgICAgc2l6ZV90IGJ1ZnNpemU7CiAKICAgICBpZiAoc2VsZi0+ZmQgPCAwKQogICAgICAgICByZXR1cm4gZXJyX2Nsb3NlZCgpOwogICAgIGlmICghX1B5VmVyaWZ5X2ZkKHNlbGYtPmZkKSkKICAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19JT0Vycm9yKTsKIAotICAgIHJlc3VsdCA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgU01BTExDSFVOSyk7Ci0gICAgaWYgKHJlc3VsdCA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotI2lmZGVmIEhBVkVfRlNUQVQKICNpZiBkZWZpbmVkKE1TX1dJTjY0KSB8fCBkZWZpbmVkKE1TX1dJTkRPV1MpCiAgICAgcG9zID0gX2xzZWVraTY0KHNlbGYtPmZkLCAwTCwgU0VFS19DVVIpOwogI2Vsc2UKQEAgLTYyOSw0NCArNjExLDQ2IEBACiAgICAgICAgIGVuZCA9IHN0LnN0X3NpemU7CiAgICAgZWxzZQogICAgICAgICBlbmQgPSAoUHlfb2ZmX3QpLTE7Ci0jZW5kaWYKLSAgICB3aGlsZSAoMSkgewotI2lmZGVmIEhBVkVfRlNUQVQKLSAgICAgICAgbmV3c2l6ZSA9IG5ld19idWZmZXJzaXplKHNlbGYsIHRvdGFsLCBwb3MsIGVuZCk7Ci0jZWxzZQotICAgICAgICBuZXdzaXplID0gbmV3X2J1ZmZlcnNpemUoc2VsZiwgdG90YWwpOwotI2VuZGlmCi0gICAgICAgIGlmIChuZXdzaXplID4gUFlfU1NJWkVfVF9NQVggfHwgbmV3c2l6ZSA8PSAwKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKLSAgICAgICAgICAgICAgICAidW5ib3VuZGVkIHJlYWQgcmV0dXJuZWQgbW9yZSBieXRlcyAiCi0gICAgICAgICAgICAgICAgInRoYW4gYSBQeXRob24gc3RyaW5nIGNhbiBob2xkICIpOwotICAgICAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQogCi0gICAgICAgIGlmIChQeUJ5dGVzX0dFVF9TSVpFKHJlc3VsdCkgPCAoUHlfc3NpemVfdCluZXdzaXplKSB7Ci0gICAgICAgICAgICBpZiAoX1B5Qnl0ZXNfUmVzaXplKCZyZXN1bHQsIG5ld3NpemUpIDwgMCkgewotICAgICAgICAgICAgICAgIGlmICh0b3RhbCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgIGlmIChlbmQgPiAwICYmIGVuZCA+PSBwb3MgJiYgcG9zID49IDAgJiYgZW5kIC0gcG9zIDwgUFlfU1NJWkVfVF9NQVgpIHsKKyAgICAgICAgLyogVGhpcyBpcyBwcm9iYWJseSBhIHJlYWwgZmlsZSwgc28gd2UgdHJ5IHRvIGFsbG9jYXRlIGEKKyAgICAgICAgICAgYnVmZmVyIG9uZSBieXRlIGxhcmdlciB0aGFuIHRoZSByZXN0IG9mIHRoZSBmaWxlLiAgSWYgdGhlCisgICAgICAgICAgIGNhbGN1bGF0aW9uIGlzIHJpZ2h0IHRoZW4gd2Ugc2hvdWxkIGdldCBFT0Ygd2l0aG91dCBoYXZpbmcKKyAgICAgICAgICAgdG8gZW5sYXJnZSB0aGUgYnVmZmVyLiAqLworICAgICAgICBidWZzaXplID0gKHNpemVfdCkoZW5kIC0gcG9zICsgMSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYnVmc2l6ZSA9IFNNQUxMQ0hVTks7CisgICAgfQorCisgICAgcmVzdWx0ID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBidWZzaXplKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYgKGJ5dGVzX3JlYWQgPj0gKFB5X3NzaXplX3QpYnVmc2l6ZSkgeworICAgICAgICAgICAgYnVmc2l6ZSA9IG5ld19idWZmZXJzaXplKHNlbGYsIGJ5dGVzX3JlYWQpOworICAgICAgICAgICAgaWYgKGJ1ZnNpemUgPiBQWV9TU0laRV9UX01BWCB8fCBidWZzaXplIDw9IDApIHsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuYm91bmRlZCByZWFkIHJldHVybmVkIG1vcmUgYnl0ZXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhhbiBhIFB5dGhvbiBzdHJpbmcgY2FuIGhvbGQiKTsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKFB5Qnl0ZXNfR0VUX1NJWkUocmVzdWx0KSA8IChQeV9zc2l6ZV90KWJ1ZnNpemUpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5Qnl0ZXNfUmVzaXplKCZyZXN1bHQsIGJ1ZnNpemUpIDwgMCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwogICAgICAgICBlcnJubyA9IDA7Ci0gICAgICAgIG4gPSBuZXdzaXplIC0gdG90YWw7CisgICAgICAgIG4gPSBidWZzaXplIC0gYnl0ZXNfcmVhZDsKICNpZiBkZWZpbmVkKE1TX1dJTjY0KSB8fCBkZWZpbmVkKE1TX1dJTkRPV1MpCiAgICAgICAgIGlmIChuID4gSU5UX01BWCkKICAgICAgICAgICAgIG4gPSBJTlRfTUFYOwotICAgICAgICBuID0gcmVhZChzZWxmLT5mZCwKLSAgICAgICAgICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcocmVzdWx0KSArIHRvdGFsLAotICAgICAgICAgICAgICAgICAoaW50KW4pOworICAgICAgICBuID0gcmVhZChzZWxmLT5mZCwgUHlCeXRlc19BU19TVFJJTkcocmVzdWx0KSArIGJ5dGVzX3JlYWQsIChpbnQpbik7CiAjZWxzZQotICAgICAgICBuID0gcmVhZChzZWxmLT5mZCwKLSAgICAgICAgICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcocmVzdWx0KSArIHRvdGFsLAotICAgICAgICAgICAgICAgICBuKTsKKyAgICAgICAgbiA9IHJlYWQoc2VsZi0+ZmQsIFB5Qnl0ZXNfQVNfU1RSSU5HKHJlc3VsdCkgKyBieXRlc19yZWFkLCBuKTsKICNlbmRpZgogICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogICAgICAgICBpZiAobiA9PSAwKQpAQCAtNjc5LDcgKzY2Myw3IEBACiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHRvdGFsID4gMCkKKyAgICAgICAgICAgIGlmIChieXRlc19yZWFkID4gMCkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGlmIChlcnJubyA9PSBFQUdBSU4pIHsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKQEAgLTY4OSwyMiArNjczLDE5IEBACiAgICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfSU9FcnJvcik7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQotICAgICAgICB0b3RhbCArPSBuOwotI2lmZGVmIEhBVkVfRlNUQVQKKyAgICAgICAgYnl0ZXNfcmVhZCArPSBuOwogICAgICAgICBwb3MgKz0gbjsKLSNlbmRpZgogICAgIH0KIAotICAgIGlmIChQeUJ5dGVzX0dFVF9TSVpFKHJlc3VsdCkgPiB0b3RhbCkgewotICAgICAgICBpZiAoX1B5Qnl0ZXNfUmVzaXplKCZyZXN1bHQsIHRvdGFsKSA8IDApIHsKLSAgICAgICAgICAgIC8qIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiwgYnV0IGp1c3QgaW4gY2FzZSAqLwotICAgICAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CisgICAgaWYgKFB5Qnl0ZXNfR0VUX1NJWkUocmVzdWx0KSA+IGJ5dGVzX3JlYWQpIHsKKyAgICAgICAgaWYgKF9QeUJ5dGVzX1Jlc2l6ZSgmcmVzdWx0LCBieXRlc19yZWFkKSA8IDApCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCisjZW5kaWYgLyogSEFWRV9GU1RBVCAqLworCiBzdGF0aWMgUHlPYmplY3QgKgogZmlsZWlvX3JlYWQoZmlsZWlvICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2lvL3RleHRpby5jIGIvTW9kdWxlcy9faW8vdGV4dGlvLmMKaW5kZXggY2ZmOWM2ZS4uOGJkOWJhMSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9faW8vdGV4dGlvLmMKKysrIGIvTW9kdWxlcy9faW8vdGV4dGlvLmMKQEAgLTc1Nyw3ICs3NTcsNyBAQAogewogICAgIGlmICghc2VsZi0+ZW5jb2Rpbmdfc3RhcnRfb2Zfc3RyZWFtKSB7CiAgICAgICAgIC8qIFNraXAgdGhlIEJPTSBhbmQgdXNlIG5hdGl2ZSBieXRlIG9yZGVyaW5nICovCi0jaWYgZGVmaW5lZChXT1JEU19CSUdFTkRJQU4pCisjaWYgUFlfQklHX0VORElBTgogICAgICAgICByZXR1cm4gdXRmMTZiZV9lbmNvZGUoc2VsZiwgdGV4dCk7CiAjZWxzZQogICAgICAgICByZXR1cm4gdXRmMTZsZV9lbmNvZGUoc2VsZiwgdGV4dCk7CkBAIC03ODYsNyArNzg2LDcgQEAKIHsKICAgICBpZiAoIXNlbGYtPmVuY29kaW5nX3N0YXJ0X29mX3N0cmVhbSkgewogICAgICAgICAvKiBTa2lwIHRoZSBCT00gYW5kIHVzZSBuYXRpdmUgYnl0ZSBvcmRlcmluZyAqLwotI2lmIGRlZmluZWQoV09SRFNfQklHRU5ESUFOKQorI2lmIFBZX0JJR19FTkRJQU4KICAgICAgICAgcmV0dXJuIHV0ZjMyYmVfZW5jb2RlKHNlbGYsIHRleHQpOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIHV0ZjMybGVfZW5jb2RlKHNlbGYsIHRleHQpOwpAQCAtMTkzNiwxMCArMTkzNiw3IEBACiAKICNkZWZpbmUgQ09PS0lFX0JVRl9MRU4gICAgICAoc2l6ZW9mKFB5X29mZl90KSArIDMgKiBzaXplb2YoaW50KSArIHNpemVvZihjaGFyKSkKIAotI2lmIGRlZmluZWQoV09SRFNfQklHRU5ESUFOKQotCi0jIGRlZmluZSBJU19MSVRUTEVfRU5ESUFOICAgMAotCisjaWYgUFlfQklHX0VORElBTgogLyogV2Ugd2FudCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYnl0ZSBvZiBzdGFydF9wb3MgdG8gYWxzbyBiZSB0aGUgbGVhc3QKICAgIHNpZ25pZmljYW50IGJ5dGUgb2YgdGhlIGNvb2tpZSwgd2hpY2ggbWVhbnMgdGhhdCBpbiBiaWctZW5kaWFuIG1vZGUgd2UKICAgIG11c3QgY29weSB0aGUgZmllbGRzIGluIHJldmVyc2Ugb3JkZXIuICovCkBAIC0xOTUxLDkgKzE5NDgsNiBAQAogIyBkZWZpbmUgT0ZGX05FRURfRU9GICAgICAgIDAKIAogI2Vsc2UKLQotIyBkZWZpbmUgSVNfTElUVExFX0VORElBTiAgIDEKLQogLyogTGl0dGxlLWVuZGlhbiBtb2RlOiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYnl0ZSBvZiBzdGFydF9wb3Mgd2lsbAogICAgbmF0dXJhbGx5IGVuZCB1cCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYnl0ZSBvZiB0aGUgY29va2llLiAqLwogCkBAIC0xOTc0LDcgKzE5NjgsNyBAQAogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpZiAoX1B5TG9uZ19Bc0J5dGVBcnJheShjb29raWVMb25nLCBidWZmZXIsIHNpemVvZihidWZmZXIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTX0xJVFRMRV9FTkRJQU4sIDApIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBZX0xJVFRMRV9FTkRJQU4sIDApIDwgMCkgewogICAgICAgICBQeV9ERUNSRUYoY29va2llTG9uZyk7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CkBAIC0yMDAwLDkgKzE5OTQsOSBAQAogICAgIG1lbWNweShidWZmZXIgKyBPRkZfQ0hBUlNfVE9fU0tJUCwgJmNvb2tpZS0+Y2hhcnNfdG9fc2tpcCwgc2l6ZW9mKGNvb2tpZS0+Y2hhcnNfdG9fc2tpcCkpOwogICAgIG1lbWNweShidWZmZXIgKyBPRkZfTkVFRF9FT0YsICZjb29raWUtPm5lZWRfZW9mLCBzaXplb2YoY29va2llLT5uZWVkX2VvZikpOwogCi0gICAgcmV0dXJuIF9QeUxvbmdfRnJvbUJ5dGVBcnJheShidWZmZXIsIHNpemVvZihidWZmZXIpLCBJU19MSVRUTEVfRU5ESUFOLCAwKTsKKyAgICByZXR1cm4gX1B5TG9uZ19Gcm9tQnl0ZUFycmF5KGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQWV9MSVRUTEVfRU5ESUFOLCAwKTsKIH0KLSN1bmRlZiBJU19MSVRUTEVfRU5ESUFOCiAKIHN0YXRpYyBpbnQKIF90ZXh0aW93cmFwcGVyX2RlY29kZXJfc2V0c3RhdGUodGV4dGlvICpzZWxmLCBjb29raWVfdHlwZSAqY29va2llKQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fanNvbi5jIGIvTW9kdWxlcy9fanNvbi5jCmluZGV4IGRiNDVjMjguLjJlMTY1OWUgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2pzb24uYworKysgYi9Nb2R1bGVzL19qc29uLmMKQEAgLTIsMjAgKzIsNiBAQAogI2luY2x1ZGUgInN0cnVjdG1lbWJlci5oIgogI2luY2x1ZGUgImFjY3UuaCIKIAotI2lmIFBZX1ZFUlNJT05fSEVYIDwgMHgwMjA2MDAwMCAmJiAhZGVmaW5lZChQeV9UWVBFKQotI2RlZmluZSBQeV9UWVBFKG9iKSAgICAgKCgoUHlPYmplY3QqKShvYikpLT5vYl90eXBlKQotI2VuZGlmCi0jaWYgUFlfVkVSU0lPTl9IRVggPCAweDAyMDUwMDAwICYmICFkZWZpbmVkKFBZX1NTSVpFX1RfTUlOKQotdHlwZWRlZiBpbnQgUHlfc3NpemVfdDsKLSNkZWZpbmUgUFlfU1NJWkVfVF9NQVggSU5UX01BWAotI2RlZmluZSBQWV9TU0laRV9UX01JTiBJTlRfTUlOCi0jZGVmaW5lIFB5SW50X0Zyb21Tc2l6ZV90IFB5SW50X0Zyb21Mb25nCi0jZGVmaW5lIFB5SW50X0FzU3NpemVfdCBQeUludF9Bc0xvbmcKLSNlbmRpZgotI2lmbmRlZiBQeV9JU19GSU5JVEUKLSNkZWZpbmUgUHlfSVNfRklOSVRFKFgpICghUHlfSVNfSU5GSU5JVFkoWCkgJiYgIVB5X0lTX05BTihYKSkKLSNlbmRpZgotCiAjaWZkZWYgX19HTlVDX18KICNkZWZpbmUgVU5VU0VEIF9fYXR0cmlidXRlX18oKF9fdW51c2VkX18pKQogI2Vsc2UKQEAgLTEyOSwzMyArMTE1LDEyIEBACiByYWlzZV9lcnJtc2coY2hhciAqbXNnLCBQeU9iamVjdCAqcywgUHlfc3NpemVfdCBlbmQpOwogc3RhdGljIFB5T2JqZWN0ICoKIGVuY29kZXJfZW5jb2RlX3N0cmluZyhQeUVuY29kZXJPYmplY3QgKnMsIFB5T2JqZWN0ICpvYmopOwotc3RhdGljIGludAotX2NvbnZlcnRQeUludF9Bc1NzaXplX3QoUHlPYmplY3QgKm8sIFB5X3NzaXplX3QgKnNpemVfcHRyKTsKLXN0YXRpYyBQeU9iamVjdCAqCi1fY29udmVydFB5SW50X0Zyb21Tc2l6ZV90KFB5X3NzaXplX3QgKnNpemVfcHRyKTsKIHN0YXRpYyBQeU9iamVjdCAqCiBlbmNvZGVyX2VuY29kZV9mbG9hdChQeUVuY29kZXJPYmplY3QgKnMsIFB5T2JqZWN0ICpvYmopOwogCiAjZGVmaW5lIFNfQ0hBUihjKSAoYyA+PSAnICcgJiYgYyA8PSAnficgJiYgYyAhPSAnXFwnICYmIGMgIT0gJyInKQogI2RlZmluZSBJU19XSElURVNQQUNFKGMpICgoKGMpID09ICcgJykgfHwgKChjKSA9PSAnXHQnKSB8fCAoKGMpID09ICdcbicpIHx8ICgoYykgPT0gJ1xyJykpCiAKLXN0YXRpYyBpbnQKLV9jb252ZXJ0UHlJbnRfQXNTc2l6ZV90KFB5T2JqZWN0ICpvLCBQeV9zc2l6ZV90ICpzaXplX3B0cikKLXsKLSAgICAvKiBQeU9iamVjdCB0byBQeV9zc2l6ZV90IGNvbnZlcnRlciAqLwotICAgICpzaXplX3B0ciA9IFB5TG9uZ19Bc1NzaXplX3Qobyk7Ci0gICAgaWYgKCpzaXplX3B0ciA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gMTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLV9jb252ZXJ0UHlJbnRfRnJvbVNzaXplX3QoUHlfc3NpemVfdCAqc2l6ZV9wdHIpCi17Ci0gICAgLyogUHlfc3NpemVfdCB0byBQeU9iamVjdCBjb252ZXJ0ZXIgKi8KLSAgICByZXR1cm4gUHlMb25nX0Zyb21Tc2l6ZV90KCpzaXplX3B0cik7Ci19Ci0KIHN0YXRpYyBQeV9zc2l6ZV90CiBhc2NpaV9lc2NhcGVfdW5pY2hhcihQeV9VQ1M0IGMsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgUHlfc3NpemVfdCBjaGFycykKIHsKQEAgLTE3NCwxNCArMTM5LDEzIEBACiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBpZiAoYyA+PSAweDEwMDAwKSB7CiAgICAgICAgICAgICAgICAgLyogVVRGLTE2IHN1cnJvZ2F0ZSBwYWlyICovCi0gICAgICAgICAgICAgICAgUHlfVUNTNCB2ID0gYyAtIDB4MTAwMDA7Ci0gICAgICAgICAgICAgICAgYyA9IDB4ZDgwMCB8ICgodiA+PiAxMCkgJiAweDNmZik7CisgICAgICAgICAgICAgICAgUHlfVUNTNCB2ID0gUHlfVU5JQ09ERV9ISUdIX1NVUlJPR0FURShjKTsKICAgICAgICAgICAgICAgICBvdXRwdXRbY2hhcnMrK10gPSAndSc7Ci0gICAgICAgICAgICAgICAgb3V0cHV0W2NoYXJzKytdID0gUHlfaGV4ZGlnaXRzWyhjID4+IDEyKSAmIDB4Zl07Ci0gICAgICAgICAgICAgICAgb3V0cHV0W2NoYXJzKytdID0gUHlfaGV4ZGlnaXRzWyhjID4+ICA4KSAmIDB4Zl07Ci0gICAgICAgICAgICAgICAgb3V0cHV0W2NoYXJzKytdID0gUHlfaGV4ZGlnaXRzWyhjID4+ICA0KSAmIDB4Zl07Ci0gICAgICAgICAgICAgICAgb3V0cHV0W2NoYXJzKytdID0gUHlfaGV4ZGlnaXRzWyhjICAgICAgKSAmIDB4Zl07Ci0gICAgICAgICAgICAgICAgYyA9IDB4ZGMwMCB8ICh2ICYgMHgzZmYpOworICAgICAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9IFB5X2hleGRpZ2l0c1sodiA+PiAxMikgJiAweGZdOworICAgICAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9IFB5X2hleGRpZ2l0c1sodiA+PiAgOCkgJiAweGZdOworICAgICAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9IFB5X2hleGRpZ2l0c1sodiA+PiAgNCkgJiAweGZdOworICAgICAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9IFB5X2hleGRpZ2l0c1sodiAgICAgICkgJiAweGZdOworICAgICAgICAgICAgICAgIGMgPSBQeV9VTklDT0RFX0xPV19TVVJST0dBVEUoYyk7CiAgICAgICAgICAgICAgICAgb3V0cHV0W2NoYXJzKytdID0gJ1xcJzsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9ICd1JzsKQEAgLTI2OCwxMyArMjMyLDIzIEBACiAgICAgICAgIGlmIChlcnJtc2dfZm4gPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgcHltc2cgPSBQeU9iamVjdF9DYWxsRnVuY3Rpb24oZXJybXNnX2ZuLCAiKHpPTyYpIiwgbXNnLCBzLCBfY29udmVydFB5SW50X0Zyb21Tc2l6ZV90LCAmZW5kKTsKKyAgICBweW1zZyA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbihlcnJtc2dfZm4sICIoek9uKSIsIG1zZywgcywgZW5kKTsKICAgICBpZiAocHltc2cpIHsKICAgICAgICAgUHlFcnJfU2V0T2JqZWN0KFB5RXhjX1ZhbHVlRXJyb3IsIHB5bXNnKTsKICAgICAgICAgUHlfREVDUkVGKHB5bXNnKTsKICAgICB9CiB9CiAKK3N0YXRpYyB2b2lkCityYWlzZV9zdG9wX2l0ZXJhdGlvbihQeV9zc2l6ZV90IGlkeCkKK3sKKyAgICBQeU9iamVjdCAqdmFsdWUgPSBQeUxvbmdfRnJvbVNzaXplX3QoaWR4KTsKKyAgICBpZiAodmFsdWUgIT0gTlVMTCkgeworICAgICAgICBQeUVycl9TZXRPYmplY3QoUHlFeGNfU3RvcEl0ZXJhdGlvbiwgdmFsdWUpOworICAgICAgICBQeV9ERUNSRUYodmFsdWUpOworICAgIH0KK30KKwogc3RhdGljIFB5T2JqZWN0ICoKIF9idWlsZF9ydmFsX2luZGV4X3R1cGxlKFB5T2JqZWN0ICpydmFsLCBQeV9zc2l6ZV90IGlkeCkgewogICAgIC8qIHJldHVybiAocnZhbCwgaWR4KSB0dXBsZSwgc3RlYWxpbmcgcmVmZXJlbmNlIHRvIHJ2YWwgKi8KQEAgLTM0NCw3ICszMTgsNyBAQAogICAgIGJ1ZiA9IFB5VW5pY29kZV9EQVRBKHB5c3RyKTsKICAgICBraW5kID0gUHlVbmljb2RlX0tJTkQocHlzdHIpOwogCi0gICAgaWYgKGVuZCA8IDAgfHwgbGVuIDw9IGVuZCkgeworICAgIGlmIChlbmQgPCAwIHx8IGxlbiA8IGVuZCkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgImVuZCBpcyBvdXQgb2YgYm91bmRzIik7CiAgICAgICAgIGdvdG8gYmFpbDsKICAgICB9CkBAIC00MzMsNyArNDA3LDcgQEAKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvKiBTdXJyb2dhdGUgcGFpciAqLwotICAgICAgICAgICAgaWYgKChjICYgMHhmYzAwKSA9PSAweGQ4MDApIHsKKyAgICAgICAgICAgIGlmIChQeV9VTklDT0RFX0lTX0hJR0hfU1VSUk9HQVRFKGMpKSB7CiAgICAgICAgICAgICAgICAgUHlfVUNTNCBjMiA9IDA7CiAgICAgICAgICAgICAgICAgaWYgKGVuZCArIDYgPj0gbGVuKSB7CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlX2Vycm1zZygiVW5wYWlyZWQgaGlnaCBzdXJyb2dhdGUiLCBweXN0ciwgZW5kIC0gNSk7CkBAIC00NjQsMTMgKzQzOCwxMyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoKGMyICYgMHhmYzAwKSAhPSAweGRjMDApIHsKKyAgICAgICAgICAgICAgICBpZiAoIVB5X1VOSUNPREVfSVNfTE9XX1NVUlJPR0FURShjMikpIHsKICAgICAgICAgICAgICAgICAgICAgcmFpc2VfZXJybXNnKCJVbnBhaXJlZCBoaWdoIHN1cnJvZ2F0ZSIsIHB5c3RyLCBlbmQgLSA1KTsKICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjID0gMHgxMDAwMCArICgoKGMgLSAweGQ4MDApIDw8IDEwKSB8IChjMiAtIDB4ZGMwMCkpOworICAgICAgICAgICAgICAgIGMgPSBQeV9VTklDT0RFX0pPSU5fU1VSUk9HQVRFUyhjLCBjMik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmICgoYyAmIDB4ZmMwMCkgPT0gMHhkYzAwKSB7CisgICAgICAgICAgICBlbHNlIGlmIChQeV9VTklDT0RFX0lTX0xPV19TVVJST0dBVEUoYykpIHsKICAgICAgICAgICAgICAgICByYWlzZV9lcnJtc2coIlVucGFpcmVkIGxvdyBzdXJyb2dhdGUiLCBweXN0ciwgZW5kIC0gNSk7CiAgICAgICAgICAgICAgICAgZ290byBiYWlsOwogICAgICAgICAgICAgfQpAQCAtNTI3LDcgKzUwMSw3IEBACiAgICAgUHlfc3NpemVfdCBlbmQ7CiAgICAgUHlfc3NpemVfdCBuZXh0X2VuZCA9IC0xOwogICAgIGludCBzdHJpY3QgPSAxOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT08mfGk6c2NhbnN0cmluZyIsICZweXN0ciwgX2NvbnZlcnRQeUludF9Bc1NzaXplX3QsICZlbmQsICZzdHJpY3QpKSB7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPbnxpOnNjYW5zdHJpbmciLCAmcHlzdHIsICZlbmQsICZzdHJpY3QpKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBpZiAoUHlVbmljb2RlX0NoZWNrKHB5c3RyKSkgewpAQCAtNjQyLDEyICs2MTYsMTIgQEAKICAgICB3aGlsZSAoaWR4IDw9IGVuZF9pZHggJiYgSVNfV0hJVEVTUEFDRShQeVVuaWNvZGVfUkVBRChraW5kLHN0ciwgaWR4KSkpIGlkeCsrOwogCiAgICAgLyogb25seSBsb29wIGlmIHRoZSBvYmplY3QgaXMgbm9uLWVtcHR5ICovCi0gICAgaWYgKGlkeCA8PSBlbmRfaWR4ICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSAhPSAnfScpIHsKLSAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4KSB7CisgICAgaWYgKGlkeCA+IGVuZF9pZHggfHwgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpICE9ICd9JykgeworICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAgICAgUHlPYmplY3QgKm1lbW9rZXk7CiAKICAgICAgICAgICAgIC8qIHJlYWQga2V5ICovCi0gICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpICE9ICciJykgeworICAgICAgICAgICAgaWYgKGlkeCA+IGVuZF9pZHggfHwgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpICE9ICciJykgewogICAgICAgICAgICAgICAgIHJhaXNlX2Vycm1zZygiRXhwZWN0aW5nIHByb3BlcnR5IG5hbWUgZW5jbG9zZWQgaW4gZG91YmxlIHF1b3RlcyIsIHB5c3RyLCBpZHgpOwogICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKICAgICAgICAgICAgIH0KQEAgLTcwNCwxMSArNjc4LDkgQEAKICAgICAgICAgICAgIHdoaWxlIChpZHggPD0gZW5kX2lkeCAmJiBJU19XSElURVNQQUNFKFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSkpIGlkeCsrOwogCiAgICAgICAgICAgICAvKiBiYWlsIGlmIHRoZSBvYmplY3QgaXMgY2xvc2VkIG9yIHdlIGRpZG4ndCBnZXQgdGhlICwgZGVsaW1pdGVyICovCi0gICAgICAgICAgICBpZiAoaWR4ID4gZW5kX2lkeCkgYnJlYWs7Ci0gICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpID09ICd9JykgeworICAgICAgICAgICAgaWYgKGlkeCA8PSBlbmRfaWR4ICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSA9PSAnfScpCiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgIT0gJywnKSB7CisgICAgICAgICAgICBpZiAoaWR4ID4gZW5kX2lkeCB8fCBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgIT0gJywnKSB7CiAgICAgICAgICAgICAgICAgcmFpc2VfZXJybXNnKCJFeHBlY3RpbmcgJywnIGRlbGltaXRlciIsIHB5c3RyLCBpZHgpOwogICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKICAgICAgICAgICAgIH0KQEAgLTcxOSwxMiArNjkxLDYgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIC8qIHZlcmlmeSB0aGF0IGlkeCA8IGVuZF9pZHgsIHN0cltpZHhdIHNob3VsZCBiZSAnfScgKi8KLSAgICBpZiAoaWR4ID4gZW5kX2lkeCB8fCBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgIT0gJ30nKSB7Ci0gICAgICAgIHJhaXNlX2Vycm1zZygiRXhwZWN0aW5nIG9iamVjdCIsIHB5c3RyLCBlbmRfaWR4KTsKLSAgICAgICAgZ290byBiYWlsOwotICAgIH0KLQogICAgICpuZXh0X2lkeF9wdHIgPSBpZHggKyAxOwogCiAgICAgaWYgKGhhc19wYWlyc19ob29rKSB7CkBAIC03NzYsOCArNzQyLDggQEAKICAgICB3aGlsZSAoaWR4IDw9IGVuZF9pZHggJiYgSVNfV0hJVEVTUEFDRShQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkpKSBpZHgrKzsKIAogICAgIC8qIG9ubHkgbG9vcCBpZiB0aGUgYXJyYXkgaXMgbm9uLWVtcHR5ICovCi0gICAgaWYgKGlkeCA8PSBlbmRfaWR4ICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSAhPSAnXScpIHsKLSAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4KSB7CisgICAgaWYgKGlkeCA+IGVuZF9pZHggfHwgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpICE9ICddJykgeworICAgICAgICB3aGlsZSAoMSkgewogCiAgICAgICAgICAgICAvKiByZWFkIGFueSBKU09OIHRlcm0gICovCiAgICAgICAgICAgICB2YWwgPSBzY2FuX29uY2VfdW5pY29kZShzLCBweXN0ciwgaWR4LCAmbmV4dF9pZHgpOwpAQCAtNzk0LDExICs3NjAsOSBAQAogICAgICAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4ICYmIElTX1dISVRFU1BBQ0UoUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpKSkgaWR4Kys7CiAKICAgICAgICAgICAgIC8qIGJhaWwgaWYgdGhlIGFycmF5IGlzIGNsb3NlZCBvciB3ZSBkaWRuJ3QgZ2V0IHRoZSAsIGRlbGltaXRlciAqLwotICAgICAgICAgICAgaWYgKGlkeCA+IGVuZF9pZHgpIGJyZWFrOwotICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSA9PSAnXScpIHsKKyAgICAgICAgICAgIGlmIChpZHggPD0gZW5kX2lkeCAmJiBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgPT0gJ10nKQogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSBpZiAoUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpICE9ICcsJykgeworICAgICAgICAgICAgaWYgKGlkeCA+IGVuZF9pZHggfHwgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpICE9ICcsJykgewogICAgICAgICAgICAgICAgIHJhaXNlX2Vycm1zZygiRXhwZWN0aW5nICcsJyBkZWxpbWl0ZXIiLCBweXN0ciwgaWR4KTsKICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7CiAgICAgICAgICAgICB9CkBAIC04MTEsNyArNzc1LDcgQEAKIAogICAgIC8qIHZlcmlmeSB0aGF0IGlkeCA8IGVuZF9pZHgsIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSBzaG91bGQgYmUgJ10nICovCiAgICAgaWYgKGlkeCA+IGVuZF9pZHggfHwgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpICE9ICddJykgewotICAgICAgICByYWlzZV9lcnJtc2coIkV4cGVjdGluZyBvYmplY3QiLCBweXN0ciwgZW5kX2lkeCk7CisgICAgICAgIHJhaXNlX2Vycm1zZygiRXhwZWN0aW5nIHZhbHVlIiwgcHlzdHIsIGVuZF9pZHgpOwogICAgICAgICBnb3RvIGJhaWw7CiAgICAgfQogICAgICpuZXh0X2lkeF9wdHIgPSBpZHggKyAxOwpAQCAtODc5LDcgKzg0Myw3IEBACiAgICAgaWYgKFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSA9PSAnLScpIHsKICAgICAgICAgaWR4Kys7CiAgICAgICAgIGlmIChpZHggPiBlbmRfaWR4KSB7Ci0gICAgICAgICAgICBQeUVycl9TZXROb25lKFB5RXhjX1N0b3BJdGVyYXRpb24pOworICAgICAgICAgICAgcmFpc2Vfc3RvcF9pdGVyYXRpb24oc3RhcnQpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KICAgICB9CkBAIC04OTUsNyArODU5LDcgQEAKICAgICB9CiAgICAgLyogbm8gaW50ZWdlciBkaWdpdHMsIGVycm9yICovCiAgICAgZWxzZSB7Ci0gICAgICAgIFB5RXJyX1NldE5vbmUoUHlFeGNfU3RvcEl0ZXJhdGlvbik7CisgICAgICAgIHJhaXNlX3N0b3BfaXRlcmF0aW9uKHN0YXJ0KTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCkBAIC05ODgsNyArOTUyLDcgQEAKICAgICBsZW5ndGggPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChweXN0cik7CiAKICAgICBpZiAoaWR4ID49IGxlbmd0aCkgewotICAgICAgICBQeUVycl9TZXROb25lKFB5RXhjX1N0b3BJdGVyYXRpb24pOworICAgICAgICByYWlzZV9zdG9wX2l0ZXJhdGlvbihpZHgpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKQEAgLTEwOTAsNyArMTA1NCw3IEBACiAgICAgUHlTY2FubmVyT2JqZWN0ICpzOwogICAgIGFzc2VydChQeVNjYW5uZXJfQ2hlY2soc2VsZikpOwogICAgIHMgPSAoUHlTY2FubmVyT2JqZWN0ICopc2VsZjsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAiT08mOnNjYW5fb25jZSIsIGt3bGlzdCwgJnB5c3RyLCBfY29udmVydFB5SW50X0FzU3NpemVfdCwgJmlkeCkpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk9uOnNjYW5fb25jZSIsIGt3bGlzdCwgJnB5c3RyLCAmaWR4KSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBpZiAoUHlVbmljb2RlX0NoZWNrKHB5c3RyKSkgewpAQCAtMTI5MSw4ICsxMjU1LDggQEAKIAogICAgIGFzc2VydChQeUVuY29kZXJfQ2hlY2soc2VsZikpOwogICAgIHMgPSAoUHlFbmNvZGVyT2JqZWN0ICopc2VsZjsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAiT08mOl9pdGVyZW5jb2RlIiwga3dsaXN0LAotICAgICAgICAmb2JqLCBfY29udmVydFB5SW50X0FzU3NpemVfdCwgJmluZGVudF9sZXZlbCkpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk9uOl9pdGVyZW5jb2RlIiwga3dsaXN0LAorICAgICAgICAmb2JqLCAmaW5kZW50X2xldmVsKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgaWYgKF9QeUFjY3VfSW5pdCgmYWNjKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19sc3Byb2YuYyBiL01vZHVsZXMvX2xzcHJvZi5jCmluZGV4IGIwYTIyNmIuLjU2NTdmMmYgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2xzcHJvZi5jCisrKyBiL01vZHVsZXMvX2xzcHJvZi5jCkBAIC0zNiwxMiArMzYsOCBAQAogI2Vycm9yICJUaGlzIG1vZHVsZSByZXF1aXJlcyBnZXR0aW1lb2ZkYXkoKSBvbiBub24tV2luZG93cyBwbGF0Zm9ybXMhIgogI2VuZGlmCiAKLSNpZiAoZGVmaW5lZChQWU9TX09TMikgJiYgZGVmaW5lZChQWUNDX0dDQykpCi0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSNlbHNlCiAjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWVzLmg+Ci0jZW5kaWYKIAogc3RhdGljIFBZX0xPTkdfTE9ORwogaHBUaW1lcih2b2lkKQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL211bHRpcHJvY2Vzc2luZy5jIGIvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL211bHRpcHJvY2Vzc2luZy5jCmluZGV4IDk0NjBjODkuLmE0YzRiMmQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX211bHRpcHJvY2Vzc2luZy9tdWx0aXByb2Nlc3NpbmcuYworKysgYi9Nb2R1bGVzL19tdWx0aXByb2Nlc3NpbmcvbXVsdGlwcm9jZXNzaW5nLmMKQEAgLTEwLDI1ICsxMCwyMyBAQAogI2luY2x1ZGUgIm11bHRpcHJvY2Vzc2luZy5oIgogCiAKLVB5T2JqZWN0ICpQcm9jZXNzRXJyb3IsICpCdWZmZXJUb29TaG9ydDsKLQogLyoKICAqIEZ1bmN0aW9uIHdoaWNoIHJhaXNlcyBleGNlcHRpb25zIGJhc2VkIG9uIGVycm9yIGNvZGVzCiAgKi8KIAogUHlPYmplY3QgKgotbXBfU2V0RXJyb3IoUHlPYmplY3QgKlR5cGUsIGludCBudW0pCitfUHlNcF9TZXRFcnJvcihQeU9iamVjdCAqVHlwZSwgaW50IG51bSkKIHsKICAgICBzd2l0Y2ggKG51bSkgewogI2lmZGVmIE1TX1dJTkRPV1MKICAgICBjYXNlIE1QX1NUQU5EQVJEX0VSUk9SOgogICAgICAgICBpZiAoVHlwZSA9PSBOVUxMKQotICAgICAgICAgICAgVHlwZSA9IFB5RXhjX1dpbmRvd3NFcnJvcjsKKyAgICAgICAgICAgIFR5cGUgPSBQeUV4Y19PU0Vycm9yOwogICAgICAgICBQeUVycl9TZXRFeGNGcm9tV2luZG93c0VycihUeXBlLCAwKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNUF9TT0NLRVRfRVJST1I6CiAgICAgICAgIGlmIChUeXBlID09IE5VTEwpCi0gICAgICAgICAgICBUeXBlID0gUHlFeGNfV2luZG93c0Vycm9yOworICAgICAgICAgICAgVHlwZSA9IFB5RXhjX09TRXJyb3I7CiAgICAgICAgIFB5RXJyX1NldEV4Y0Zyb21XaW5kb3dzRXJyKFR5cGUsIFdTQUdldExhc3RFcnJvcigpKTsKICAgICAgICAgYnJlYWs7CiAjZWxzZSAvKiAhTVNfV0lORE9XUyAqLwpAQCAtMTU5LDE5ICsxNTcsMTIgQEAKICAgICBpZiAoIW1vZHVsZSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICAvKiBHZXQgY29weSBvZiBCdWZmZXJUb29TaG9ydCAqLwotICAgIHRlbXAgPSBQeUltcG9ydF9JbXBvcnRNb2R1bGUoIm11bHRpcHJvY2Vzc2luZyIpOwotICAgIGlmICghdGVtcCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgQnVmZmVyVG9vU2hvcnQgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHRlbXAsICJCdWZmZXJUb29TaG9ydCIpOwotICAgIFB5X1hERUNSRUYodGVtcCk7Ci0KICNpZiBkZWZpbmVkKE1TX1dJTkRPV1MpIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgKGRlZmluZWQoSEFWRV9TRU1fT1BFTikgJiYgIWRlZmluZWQoUE9TSVhfU0VNQVBIT1JFU19OT1RfRU5BQkxFRCkpCi0gICAgLyogQWRkIFNlbUxvY2sgdHlwZSB0byBtb2R1bGUgKi8KLSAgICBpZiAoUHlUeXBlX1JlYWR5KCZTZW1Mb2NrVHlwZSkgPCAwKQorICAgIC8qIEFkZCBfUHlNcF9TZW1Mb2NrIHR5cGUgdG8gbW9kdWxlICovCisgICAgaWYgKFB5VHlwZV9SZWFkeSgmX1B5TXBfU2VtTG9ja1R5cGUpIDwgMCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgUHlfSU5DUkVGKCZTZW1Mb2NrVHlwZSk7CisgICAgUHlfSU5DUkVGKCZfUHlNcF9TZW1Mb2NrVHlwZSk7CiAgICAgewogICAgICAgICBQeU9iamVjdCAqcHlfc2VtX3ZhbHVlX21heDsKICAgICAgICAgLyogU29tZSBzeXN0ZW1zIGRlZmluZSBTRU1fVkFMVUVfTUFYIGFzIGFuIHVuc2lnbmVkIHZhbHVlIHRoYXQKQEAgLTE4MiwxMCArMTczLDEwIEBACiAgICAgICAgICAgICBweV9zZW1fdmFsdWVfbWF4ID0gUHlMb25nX0Zyb21Mb25nKFNFTV9WQUxVRV9NQVgpOwogICAgICAgICBpZiAocHlfc2VtX3ZhbHVlX21heCA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIFB5RGljdF9TZXRJdGVtU3RyaW5nKFNlbUxvY2tUeXBlLnRwX2RpY3QsICJTRU1fVkFMVUVfTUFYIiwKKyAgICAgICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcoX1B5TXBfU2VtTG9ja1R5cGUudHBfZGljdCwgIlNFTV9WQUxVRV9NQVgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweV9zZW1fdmFsdWVfbWF4KTsKICAgICB9Ci0gICAgUHlNb2R1bGVfQWRkT2JqZWN0KG1vZHVsZSwgIlNlbUxvY2siLCAoUHlPYmplY3QqKSZTZW1Mb2NrVHlwZSk7CisgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG1vZHVsZSwgIlNlbUxvY2siLCAoUHlPYmplY3QqKSZfUHlNcF9TZW1Mb2NrVHlwZSk7CiAjZW5kaWYKIAogICAgIC8qIEFkZCBjb25maWd1cmF0aW9uIG1hY3JvcyAqLwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL211bHRpcHJvY2Vzc2luZy5oIGIvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL211bHRpcHJvY2Vzc2luZy5oCmluZGV4IGUzZGU5YmEuLjY4YTU5ODQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX211bHRpcHJvY2Vzc2luZy9tdWx0aXByb2Nlc3NpbmcuaAorKysgYi9Nb2R1bGVzL19tdWx0aXByb2Nlc3NpbmcvbXVsdGlwcm9jZXNzaW5nLmgKQEAgLTkxLDIzICs5MSwxMiBAQAogI2RlZmluZSBNUF9TT0NLRVRfRVJST1IgKC0xMDAyKQogI2RlZmluZSBNUF9FWENFUFRJT05fSEFTX0JFRU5fU0VUICgtMTAwMykKIAotUHlPYmplY3QgKm1wX1NldEVycm9yKFB5T2JqZWN0ICpUeXBlLCBpbnQgbnVtKTsKK1B5T2JqZWN0ICpfUHlNcF9TZXRFcnJvcihQeU9iamVjdCAqVHlwZSwgaW50IG51bSk7CiAKIC8qCiAgKiBFeHRlcm5zIC0gbm90IGFsbCB3aWxsIHJlYWxseSBleGlzdCBvbiBhbGwgcGxhdGZvcm1zCiAgKi8KIAotZXh0ZXJuIFB5T2JqZWN0ICpCdWZmZXJUb29TaG9ydDsKLWV4dGVybiBQeVR5cGVPYmplY3QgU2VtTG9ja1R5cGU7Ci1leHRlcm4gUHlUeXBlT2JqZWN0IFBpcGVDb25uZWN0aW9uVHlwZTsKLQotLyoKLSAqIE1pc2NlbGxhbmVvdXMKLSAqLwotCi0jaWZuZGVmIE1JTgotIyAgZGVmaW5lIE1JTih4LCB5KSAoKHgpIDwgKHkpID8geCA6IHkpCi0jICBkZWZpbmUgTUFYKHgsIHkpICgoeCkgPiAoeSkgPyB4IDogeSkKLSNlbmRpZgorZXh0ZXJuIFB5VHlwZU9iamVjdCBfUHlNcF9TZW1Mb2NrVHlwZTsKIAogI2VuZGlmIC8qIE1VTFRJUFJPQ0VTU0lOR19IICovCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19tdWx0aXByb2Nlc3Npbmcvc2VtYXBob3JlLmMgYi9Nb2R1bGVzL19tdWx0aXByb2Nlc3Npbmcvc2VtYXBob3JlLmMKaW5kZXggMmMyYjAyMC4uZGNmM2I0MiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL3NlbWFwaG9yZS5jCisrKyBiL01vZHVsZXMvX211bHRpcHJvY2Vzc2luZy9zZW1hcGhvcmUuYwpAQCAtNDMsNyArNDMsNyBAQAogewogICAgIGxvbmcgcHJldmlvdXM7CiAKLSAgICBzd2l0Y2ggKFdhaXRGb3JTaW5nbGVPYmplY3QoaGFuZGxlLCAwKSkgeworICAgIHN3aXRjaCAoV2FpdEZvclNpbmdsZU9iamVjdEV4KGhhbmRsZSwgMCwgRkFMU0UpKSB7CiAgICAgY2FzZSBXQUlUX09CSkVDVF8wOgogICAgICAgICBpZiAoIVJlbGVhc2VTZW1hcGhvcmUoaGFuZGxlLCAxLCAmcHJldmlvdXMpKQogICAgICAgICAgICAgcmV0dXJuIE1QX1NUQU5EQVJEX0VSUk9SOwpAQCAtOTksNyArOTksNyBAQAogICAgIH0KIAogICAgIC8qIGNoZWNrIHdoZXRoZXIgd2UgY2FuIGFjcXVpcmUgd2l0aG91dCByZWxlYXNpbmcgdGhlIEdJTCBhbmQgYmxvY2tpbmcgKi8KLSAgICBpZiAoV2FpdEZvclNpbmdsZU9iamVjdChzZWxmLT5oYW5kbGUsIDApID09IFdBSVRfT0JKRUNUXzApIHsKKyAgICBpZiAoV2FpdEZvclNpbmdsZU9iamVjdEV4KHNlbGYtPmhhbmRsZSwgMCwgRkFMU0UpID09IFdBSVRfT0JKRUNUXzApIHsKICAgICAgICAgc2VsZi0+bGFzdF90aWQgPSBHZXRDdXJyZW50VGhyZWFkSWQoKTsKICAgICAgICAgKytzZWxmLT5jb3VudDsKICAgICAgICAgUHlfUkVUVVJOX1RSVUU7CkBAIC0xMTgsNyArMTE4LDcgQEAKICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCiAgICAgaWYgKHNpZ2ludF9ldmVudCAhPSBOVUxMKQogICAgICAgICBSZXNldEV2ZW50KHNpZ2ludF9ldmVudCk7Ci0gICAgcmVzID0gV2FpdEZvck11bHRpcGxlT2JqZWN0cyhuaGFuZGxlcywgaGFuZGxlcywgRkFMU0UsIGZ1bGxfbXNlY3MpOworICAgIHJlcyA9IFdhaXRGb3JNdWx0aXBsZU9iamVjdHNFeChuaGFuZGxlcywgaGFuZGxlcywgRkFMU0UsIGZ1bGxfbXNlY3MsIEZBTFNFKTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogCiAgICAgLyogaGFuZGxlIHJlc3VsdCAqLwpAQCAtMjAwLDcgKzIwMCw3IEBACiAjaWZuZGVmIEhBVkVfU0VNX1RJTUVEV0FJVAogIyAgZGVmaW5lIHNlbV90aW1lZHdhaXQoc2VtLGRlYWRsaW5lKSBzZW1fdGltZWR3YWl0X3NhdmUoc2VtLGRlYWRsaW5lLF9zYXZlKQogCi1pbnQKK3N0YXRpYyBpbnQKIHNlbV90aW1lZHdhaXRfc2F2ZShzZW1fdCAqc2VtLCBzdHJ1Y3QgdGltZXNwZWMgKmRlYWRsaW5lLCBQeVRocmVhZFN0YXRlICpfc2F2ZSkKIHsKICAgICBpbnQgcmVzOwpAQCAtNDUxLDcgKzQ1MSw3IEBACiAgIGZhaWx1cmU6CiAgICAgaWYgKGhhbmRsZSAhPSBTRU1fRkFJTEVEKQogICAgICAgICBTRU1fQ0xPU0UoaGFuZGxlKTsKLSAgICBtcF9TZXRFcnJvcihOVUxMLCBNUF9TVEFOREFSRF9FUlJPUik7CisgICAgX1B5TXBfU2V0RXJyb3IoTlVMTCwgTVBfU1RBTkRBUkRfRVJST1IpOwogICAgIHJldHVybiBOVUxMOwogfQogCkBAIC00OTgsNyArNDk4LDcgQEAKICNlbHNlCiAgICAgaW50IHN2YWw7CiAgICAgaWYgKFNFTV9HRVRWQUxVRShzZWxmLT5oYW5kbGUsICZzdmFsKSA8IDApCi0gICAgICAgIHJldHVybiBtcF9TZXRFcnJvcihOVUxMLCBNUF9TVEFOREFSRF9FUlJPUik7CisgICAgICAgIHJldHVybiBfUHlNcF9TZXRFcnJvcihOVUxMLCBNUF9TVEFOREFSRF9FUlJPUik7CiAgICAgLyogc29tZSBwb3NpeCBpbXBsZW1lbnRhdGlvbnMgdXNlIG5lZ2F0aXZlIG51bWJlcnMgdG8gaW5kaWNhdGUKICAgICAgICB0aGUgbnVtYmVyIG9mIHdhaXRpbmcgdGhyZWFkcyAqLwogICAgIGlmIChzdmFsIDwgMCkKQEAgLTUxNCwxNiArNTE0LDE2IEBACiAgICAgaWYgKHNlbV90cnl3YWl0KHNlbGYtPmhhbmRsZSkgPCAwKSB7CiAgICAgICAgIGlmIChlcnJubyA9PSBFQUdBSU4pCiAgICAgICAgICAgICBQeV9SRVRVUk5fVFJVRTsKLSAgICAgICAgcmV0dXJuIG1wX1NldEVycm9yKE5VTEwsIE1QX1NUQU5EQVJEX0VSUk9SKTsKKyAgICAgICAgcmV0dXJuIF9QeU1wX1NldEVycm9yKE5VTEwsIE1QX1NUQU5EQVJEX0VSUk9SKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoc2VtX3Bvc3Qoc2VsZi0+aGFuZGxlKSA8IDApCi0gICAgICAgICAgICByZXR1cm4gbXBfU2V0RXJyb3IoTlVMTCwgTVBfU1RBTkRBUkRfRVJST1IpOworICAgICAgICAgICAgcmV0dXJuIF9QeU1wX1NldEVycm9yKE5VTEwsIE1QX1NUQU5EQVJEX0VSUk9SKTsKICAgICAgICAgUHlfUkVUVVJOX0ZBTFNFOwogICAgIH0KICNlbHNlCiAgICAgaW50IHN2YWw7CiAgICAgaWYgKFNFTV9HRVRWQUxVRShzZWxmLT5oYW5kbGUsICZzdmFsKSA8IDApCi0gICAgICAgIHJldHVybiBtcF9TZXRFcnJvcihOVUxMLCBNUF9TVEFOREFSRF9FUlJPUik7CisgICAgICAgIHJldHVybiBfUHlNcF9TZXRFcnJvcihOVUxMLCBNUF9TVEFOREFSRF9FUlJPUik7CiAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygobG9uZylzdmFsID09IDApOwogI2VuZGlmCiB9CkBAIC01ODEsNyArNTgxLDcgQEAKICAqIFNlbWFwaG9yZSB0eXBlCiAgKi8KIAotUHlUeXBlT2JqZWN0IFNlbUxvY2tUeXBlID0geworUHlUeXBlT2JqZWN0IF9QeU1wX1NlbUxvY2tUeXBlID0gewogICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVChOVUxMLCAwKQogICAgIC8qIHRwX25hbWUgICAgICAgICAgICovICJfbXVsdGlwcm9jZXNzaW5nLlNlbUxvY2siLAogICAgIC8qIHRwX2Jhc2ljc2l6ZSAgICAgICovIHNpemVvZihTZW1Mb2NrT2JqZWN0KSwKZGlmZiAtLWdpdCBhL01vZHVsZXMvb3BlcmF0b3IuYyBiL01vZHVsZXMvX29wZXJhdG9yLmMKc2ltaWxhcml0eSBpbmRleCA5MSUKcmVuYW1lIGZyb20gTW9kdWxlcy9vcGVyYXRvci5jCnJlbmFtZSB0byBNb2R1bGVzL19vcGVyYXRvci5jCmluZGV4IDUxNTZiNmIuLmU4YmVmMDQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvb3BlcmF0b3IuYworKysgYi9Nb2R1bGVzL19vcGVyYXRvci5jCkBAIC0yMDgsNiArMjA4LDMxIEBACiAgICAgcmV0dXJuIChyZXN1bHQgPT0gMCk7CiB9CiAKK1B5RG9jX1NUUlZBUihsZW5ndGhfaGludF9fZG9jX18sCisibGVuZ3RoX2hpbnQob2JqLCBkZWZhdWx0PTApIC0+IGludFxuIgorIlJldHVybiBhbiBlc3RpbWF0ZSBvZiB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluIG9iai5cbiIKKyJUaGlzIGlzIHVzZWZ1bCBmb3IgcHJlc2l6aW5nIGNvbnRhaW5lcnMgd2hlbiBidWlsZGluZyBmcm9tIGFuXG4iCisiaXRlcmFibGUuXG4iCisiXG4iCisiSWYgdGhlIG9iamVjdCBzdXBwb3J0cyBsZW4oKSwgdGhlIHJlc3VsdCB3aWxsIGJlXG4iCisiZXhhY3QuIE90aGVyd2lzZSwgaXQgbWF5IG92ZXItIG9yIHVuZGVyLWVzdGltYXRlIGJ5IGFuXG4iCisiYXJiaXRyYXJ5IGFtb3VudC4gVGhlIHJlc3VsdCB3aWxsIGJlIGFuIGludGVnZXIgPj0gMC4iKTsKKworc3RhdGljIFB5T2JqZWN0ICpsZW5ndGhfaGludChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlPYmplY3QgKm9iajsKKyAgICBQeV9zc2l6ZV90IGRlZmF1bHR2YWx1ZSA9IDAsIHJlczsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk98bjpsZW5ndGhfaGludCIsICZvYmosICZkZWZhdWx0dmFsdWUpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICByZXMgPSBQeU9iamVjdF9MZW5ndGhIaW50KG9iaiwgZGVmYXVsdHZhbHVlKTsKKyAgICBpZiAocmVzID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3QocmVzKTsKK30KKworCiBQeURvY19TVFJWQVIoY29tcGFyZV9kaWdlc3RfX2RvY19fLAogImNvbXBhcmVfZGlnZXN0KGEsIGIpIC0+IGJvb2xcbiIKICJcbiIKQEAgLTI5NywxNyArMzIyLDE1IEBACiAvKiBvcGVyYXRvciBtZXRob2RzICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICNkZWZpbmUgc3BhbTEoT1AsRE9DKSB7I09QLCBPUCwgTUVUSF9WQVJBUkdTLCBQeURvY19TVFIoRE9DKX0sCi0jZGVmaW5lIHNwYW0yKE9QLEFMVE9QLERPQykgeyNPUCwgb3BfIyNPUCwgTUVUSF9WQVJBUkdTLCBQeURvY19TVFIoRE9DKX0sIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHsjQUxUT1AsIG9wXyMjT1AsIE1FVEhfVkFSQVJHUywgUHlEb2NfU1RSKERPQyl9LAorI2RlZmluZSBzcGFtMihPUCxET0MpIHsjT1AsIG9wXyMjT1AsIE1FVEhfVkFSQVJHUywgUHlEb2NfU1RSKERPQyl9LAogI2RlZmluZSBzcGFtMW8oT1AsRE9DKSB7I09QLCBPUCwgTUVUSF9PLCBQeURvY19TVFIoRE9DKX0sCi0jZGVmaW5lIHNwYW0ybyhPUCxBTFRPUCxET0MpIHsjT1AsIG9wXyMjT1AsIE1FVEhfTywgUHlEb2NfU1RSKERPQyl9LCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB7I0FMVE9QLCBvcF8jI09QLCBNRVRIX08sIFB5RG9jX1NUUihET0MpfSwKKyNkZWZpbmUgc3BhbTJvKE9QLERPQykgeyNPUCwgb3BfIyNPUCwgTUVUSF9PLCBQeURvY19TVFIoRE9DKX0sCiAKIHN0YXRpYyBzdHJ1Y3QgUHlNZXRob2REZWYgb3BlcmF0b3JfbWV0aG9kc1tdID0gewogCiBzcGFtMW8odHJ1dGgsCiAgInRydXRoKGEpIC0tIFJldHVybiBUcnVlIGlmIGEgaXMgdHJ1ZSwgRmFsc2Ugb3RoZXJ3aXNlLiIpCi1zcGFtMihjb250YWlucyxfX2NvbnRhaW5zX18sCitzcGFtMihjb250YWlucywKICAiY29udGFpbnMoYSwgYikgLS0gU2FtZSBhcyBiIGluIGEgKG5vdGUgcmV2ZXJzZWQgb3BlcmFuZHMpLiIpCiBzcGFtMShpbmRleE9mLAogICJpbmRleE9mKGEsIGIpIC0tIFJldHVybiB0aGUgZmlyc3QgaW5kZXggb2YgYiBpbiBhLiIpCkBAIC0zMTYsNTYgKzMzOSw1OCBAQAogCiBzcGFtMShpc18sICJpc18oYSwgYikgLS0gU2FtZSBhcyBhIGlzIGIuIikKIHNwYW0xKGlzX25vdCwgImlzX25vdChhLCBiKSAtLSBTYW1lIGFzIGEgaXMgbm90IGIuIikKLXNwYW0ybyhpbmRleCwgX19pbmRleF9fLCAiaW5kZXgoYSkgLS0gU2FtZSBhcyBhLl9faW5kZXhfXygpIikKLXNwYW0yKGFkZCxfX2FkZF9fLCAiYWRkKGEsIGIpIC0tIFNhbWUgYXMgYSArIGIuIikKLXNwYW0yKHN1YixfX3N1Yl9fLCAic3ViKGEsIGIpIC0tIFNhbWUgYXMgYSAtIGIuIikKLXNwYW0yKG11bCxfX211bF9fLCAibXVsKGEsIGIpIC0tIFNhbWUgYXMgYSAqIGIuIikKLXNwYW0yKGZsb29yZGl2LF9fZmxvb3JkaXZfXywgImZsb29yZGl2KGEsIGIpIC0tIFNhbWUgYXMgYSAvLyBiLiIpCi1zcGFtMih0cnVlZGl2LF9fdHJ1ZWRpdl9fLCAidHJ1ZWRpdihhLCBiKSAtLSBTYW1lIGFzIGEgLyBiLiIpCi1zcGFtMihtb2QsX19tb2RfXywgIm1vZChhLCBiKSAtLSBTYW1lIGFzIGEgJSBiLiIpCi1zcGFtMm8obmVnLF9fbmVnX18sICJuZWcoYSkgLS0gU2FtZSBhcyAtYS4iKQotc3BhbTJvKHBvcyxfX3Bvc19fLCAicG9zKGEpIC0tIFNhbWUgYXMgK2EuIikKLXNwYW0ybyhhYnMsX19hYnNfXywgImFicyhhKSAtLSBTYW1lIGFzIGFicyhhKS4iKQotc3BhbTJvKGludixfX2ludl9fLCAiaW52KGEpIC0tIFNhbWUgYXMgfmEuIikKLXNwYW0ybyhpbnZlcnQsX19pbnZlcnRfXywgImludmVydChhKSAtLSBTYW1lIGFzIH5hLiIpCi1zcGFtMihsc2hpZnQsX19sc2hpZnRfXywgImxzaGlmdChhLCBiKSAtLSBTYW1lIGFzIGEgPDwgYi4iKQotc3BhbTIocnNoaWZ0LF9fcnNoaWZ0X18sICJyc2hpZnQoYSwgYikgLS0gU2FtZSBhcyBhID4+IGIuIikKLXNwYW0ybyhub3RfLF9fbm90X18sICJub3RfKGEpIC0tIFNhbWUgYXMgbm90IGEuIikKLXNwYW0yKGFuZF8sX19hbmRfXywgImFuZF8oYSwgYikgLS0gU2FtZSBhcyBhICYgYi4iKQotc3BhbTIoeG9yLF9feG9yX18sICJ4b3IoYSwgYikgLS0gU2FtZSBhcyBhIF4gYi4iKQotc3BhbTIob3JfLF9fb3JfXywgIm9yXyhhLCBiKSAtLSBTYW1lIGFzIGEgfCBiLiIpCi1zcGFtMihpYWRkLF9faWFkZF9fLCAiYSA9IGlhZGQoYSwgYikgLS0gU2FtZSBhcyBhICs9IGIuIikKLXNwYW0yKGlzdWIsX19pc3ViX18sICJhID0gaXN1YihhLCBiKSAtLSBTYW1lIGFzIGEgLT0gYi4iKQotc3BhbTIoaW11bCxfX2ltdWxfXywgImEgPSBpbXVsKGEsIGIpIC0tIFNhbWUgYXMgYSAqPSBiLiIpCi1zcGFtMihpZmxvb3JkaXYsX19pZmxvb3JkaXZfXywgImEgPSBpZmxvb3JkaXYoYSwgYikgLS0gU2FtZSBhcyBhIC8vPSBiLiIpCi1zcGFtMihpdHJ1ZWRpdixfX2l0cnVlZGl2X18sICJhID0gaXRydWVkaXYoYSwgYikgLS0gU2FtZSBhcyBhIC89IGIiKQotc3BhbTIoaW1vZCxfX2ltb2RfXywgImEgPSBpbW9kKGEsIGIpIC0tIFNhbWUgYXMgYSAlPSBiLiIpCi1zcGFtMihpbHNoaWZ0LF9faWxzaGlmdF9fLCAiYSA9IGlsc2hpZnQoYSwgYikgLS0gU2FtZSBhcyBhIDw8PSBiLiIpCi1zcGFtMihpcnNoaWZ0LF9faXJzaGlmdF9fLCAiYSA9IGlyc2hpZnQoYSwgYikgLS0gU2FtZSBhcyBhID4+PSBiLiIpCi1zcGFtMihpYW5kLF9faWFuZF9fLCAiYSA9IGlhbmQoYSwgYikgLS0gU2FtZSBhcyBhICY9IGIuIikKLXNwYW0yKGl4b3IsX19peG9yX18sICJhID0gaXhvcihhLCBiKSAtLSBTYW1lIGFzIGEgXj0gYi4iKQotc3BhbTIoaW9yLF9faW9yX18sICJhID0gaW9yKGEsIGIpIC0tIFNhbWUgYXMgYSB8PSBiLiIpCi1zcGFtMihjb25jYXQsX19jb25jYXRfXywKK3NwYW0ybyhpbmRleCwgImluZGV4KGEpIC0tIFNhbWUgYXMgYS5fX2luZGV4X18oKSIpCitzcGFtMihhZGQsICJhZGQoYSwgYikgLS0gU2FtZSBhcyBhICsgYi4iKQorc3BhbTIoc3ViLCAic3ViKGEsIGIpIC0tIFNhbWUgYXMgYSAtIGIuIikKK3NwYW0yKG11bCwgIm11bChhLCBiKSAtLSBTYW1lIGFzIGEgKiBiLiIpCitzcGFtMihmbG9vcmRpdiwgImZsb29yZGl2KGEsIGIpIC0tIFNhbWUgYXMgYSAvLyBiLiIpCitzcGFtMih0cnVlZGl2LCAidHJ1ZWRpdihhLCBiKSAtLSBTYW1lIGFzIGEgLyBiLiIpCitzcGFtMihtb2QsICJtb2QoYSwgYikgLS0gU2FtZSBhcyBhICUgYi4iKQorc3BhbTJvKG5lZywgIm5lZyhhKSAtLSBTYW1lIGFzIC1hLiIpCitzcGFtMm8ocG9zLCAicG9zKGEpIC0tIFNhbWUgYXMgK2EuIikKK3NwYW0ybyhhYnMsICJhYnMoYSkgLS0gU2FtZSBhcyBhYnMoYSkuIikKK3NwYW0ybyhpbnYsICJpbnYoYSkgLS0gU2FtZSBhcyB+YS4iKQorc3BhbTJvKGludmVydCwgImludmVydChhKSAtLSBTYW1lIGFzIH5hLiIpCitzcGFtMihsc2hpZnQsICJsc2hpZnQoYSwgYikgLS0gU2FtZSBhcyBhIDw8IGIuIikKK3NwYW0yKHJzaGlmdCwgInJzaGlmdChhLCBiKSAtLSBTYW1lIGFzIGEgPj4gYi4iKQorc3BhbTJvKG5vdF8sICJub3RfKGEpIC0tIFNhbWUgYXMgbm90IGEuIikKK3NwYW0yKGFuZF8sICJhbmRfKGEsIGIpIC0tIFNhbWUgYXMgYSAmIGIuIikKK3NwYW0yKHhvciwgInhvcihhLCBiKSAtLSBTYW1lIGFzIGEgXiBiLiIpCitzcGFtMihvcl8sICJvcl8oYSwgYikgLS0gU2FtZSBhcyBhIHwgYi4iKQorc3BhbTIoaWFkZCwgImEgPSBpYWRkKGEsIGIpIC0tIFNhbWUgYXMgYSArPSBiLiIpCitzcGFtMihpc3ViLCAiYSA9IGlzdWIoYSwgYikgLS0gU2FtZSBhcyBhIC09IGIuIikKK3NwYW0yKGltdWwsICJhID0gaW11bChhLCBiKSAtLSBTYW1lIGFzIGEgKj0gYi4iKQorc3BhbTIoaWZsb29yZGl2LCAiYSA9IGlmbG9vcmRpdihhLCBiKSAtLSBTYW1lIGFzIGEgLy89IGIuIikKK3NwYW0yKGl0cnVlZGl2LCAiYSA9IGl0cnVlZGl2KGEsIGIpIC0tIFNhbWUgYXMgYSAvPSBiIikKK3NwYW0yKGltb2QsICJhID0gaW1vZChhLCBiKSAtLSBTYW1lIGFzIGEgJT0gYi4iKQorc3BhbTIoaWxzaGlmdCwgImEgPSBpbHNoaWZ0KGEsIGIpIC0tIFNhbWUgYXMgYSA8PD0gYi4iKQorc3BhbTIoaXJzaGlmdCwgImEgPSBpcnNoaWZ0KGEsIGIpIC0tIFNhbWUgYXMgYSA+Pj0gYi4iKQorc3BhbTIoaWFuZCwgImEgPSBpYW5kKGEsIGIpIC0tIFNhbWUgYXMgYSAmPSBiLiIpCitzcGFtMihpeG9yLCAiYSA9IGl4b3IoYSwgYikgLS0gU2FtZSBhcyBhIF49IGIuIikKK3NwYW0yKGlvciwgImEgPSBpb3IoYSwgYikgLS0gU2FtZSBhcyBhIHw9IGIuIikKK3NwYW0yKGNvbmNhdCwKICAiY29uY2F0KGEsIGIpIC0tIFNhbWUgYXMgYSArIGIsIGZvciBhIGFuZCBiIHNlcXVlbmNlcy4iKQotc3BhbTIoaWNvbmNhdCxfX2ljb25jYXRfXywKK3NwYW0yKGljb25jYXQsCiAgImEgPSBpY29uY2F0KGEsIGIpIC0tIFNhbWUgYXMgYSArPSBiLCBmb3IgYSBhbmQgYiBzZXF1ZW5jZXMuIikKLXNwYW0yKGdldGl0ZW0sX19nZXRpdGVtX18sCitzcGFtMihnZXRpdGVtLAogICJnZXRpdGVtKGEsIGIpIC0tIFNhbWUgYXMgYVtiXS4iKQotc3BhbTIoc2V0aXRlbSxfX3NldGl0ZW1fXywKK3NwYW0yKHNldGl0ZW0sCiAgInNldGl0ZW0oYSwgYiwgYykgLS0gU2FtZSBhcyBhW2JdID0gYy4iKQotc3BhbTIoZGVsaXRlbSxfX2RlbGl0ZW1fXywKK3NwYW0yKGRlbGl0ZW0sCiAgImRlbGl0ZW0oYSwgYikgLS0gU2FtZSBhcyBkZWwgYVtiXS4iKQotc3BhbTIocG93LF9fcG93X18sICJwb3coYSwgYikgLS0gU2FtZSBhcyBhICoqIGIuIikKLXNwYW0yKGlwb3csX19pcG93X18sICJhID0gaXBvdyhhLCBiKSAtLSBTYW1lIGFzIGEgKio9IGIuIikKLXNwYW0yKGx0LF9fbHRfXywgImx0KGEsIGIpIC0tIFNhbWUgYXMgYTxiLiIpCi1zcGFtMihsZSxfX2xlX18sICJsZShhLCBiKSAtLSBTYW1lIGFzIGE8PWIuIikKLXNwYW0yKGVxLF9fZXFfXywgImVxKGEsIGIpIC0tIFNhbWUgYXMgYT09Yi4iKQotc3BhbTIobmUsX19uZV9fLCAibmUoYSwgYikgLS0gU2FtZSBhcyBhIT1iLiIpCi1zcGFtMihndCxfX2d0X18sICJndChhLCBiKSAtLSBTYW1lIGFzIGE+Yi4iKQotc3BhbTIoZ2UsX19nZV9fLCAiZ2UoYSwgYikgLS0gU2FtZSBhcyBhPj1iLiIpCitzcGFtMihwb3csICJwb3coYSwgYikgLS0gU2FtZSBhcyBhICoqIGIuIikKK3NwYW0yKGlwb3csICJhID0gaXBvdyhhLCBiKSAtLSBTYW1lIGFzIGEgKio9IGIuIikKK3NwYW0yKGx0LCAibHQoYSwgYikgLS0gU2FtZSBhcyBhPGIuIikKK3NwYW0yKGxlLCAibGUoYSwgYikgLS0gU2FtZSBhcyBhPD1iLiIpCitzcGFtMihlcSwgImVxKGEsIGIpIC0tIFNhbWUgYXMgYT09Yi4iKQorc3BhbTIobmUsICJuZShhLCBiKSAtLSBTYW1lIGFzIGEhPWIuIikKK3NwYW0yKGd0LCAiZ3QoYSwgYikgLS0gU2FtZSBhcyBhPmIuIikKK3NwYW0yKGdlLCAiZ2UoYSwgYikgLS0gU2FtZSBhcyBhPj1iLiIpCiAKICAgICB7Il9jb21wYXJlX2RpZ2VzdCIsIChQeUNGdW5jdGlvbiljb21wYXJlX2RpZ2VzdCwgTUVUSF9WQVJBUkdTLAogICAgICBjb21wYXJlX2RpZ2VzdF9fZG9jX199LAorICAgICB7Imxlbmd0aF9oaW50IiwgKFB5Q0Z1bmN0aW9uKWxlbmd0aF9oaW50LCBNRVRIX1ZBUkFSR1MsCisgICAgIGxlbmd0aF9oaW50X19kb2NfX30sCiAgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgICAgICAgICAgLyogc2VudGluZWwgKi8KIAogfTsKQEAgLTg5MiwxMiArOTE3LDEyIEBACiB9OwogCiAKLS8qIEluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgbW9kdWxlICgqbXVzdCogYmUgY2FsbGVkIFB5SW5pdF9vcGVyYXRvcikgKi8KKy8qIEluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgbW9kdWxlICgqbXVzdCogYmUgY2FsbGVkIFB5SW5pdF9fb3BlcmF0b3IpICovCiAKIAogc3RhdGljIHN0cnVjdCBQeU1vZHVsZURlZiBvcGVyYXRvcm1vZHVsZSA9IHsKICAgICBQeU1vZHVsZURlZl9IRUFEX0lOSVQsCi0gICAgIm9wZXJhdG9yIiwKKyAgICAiX29wZXJhdG9yIiwKICAgICBvcGVyYXRvcl9kb2MsCiAgICAgLTEsCiAgICAgb3BlcmF0b3JfbWV0aG9kcywKQEAgLTkwOCw3ICs5MzMsNyBAQAogfTsKIAogUHlNT0RJTklUX0ZVTkMKLVB5SW5pdF9vcGVyYXRvcih2b2lkKQorUHlJbml0X19vcGVyYXRvcih2b2lkKQogewogICAgIFB5T2JqZWN0ICptOwogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19waWNrbGUuYyBiL01vZHVsZXMvX3BpY2tsZS5jCmluZGV4IGE4ZDY2ODQuLjQ0M2ZiZTIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3BpY2tsZS5jCisrKyBiL01vZHVsZXMvX3BpY2tsZS5jCkBAIC0xODczLDYzICsxODczLDk3IEBACiB9CiAKIHN0YXRpYyBpbnQKK3dyaXRlX3V0ZjgoUGlja2xlck9iamVjdCAqc2VsZiwgY2hhciAqZGF0YSwgUHlfc3NpemVfdCBzaXplKQoreworICAgIGNoYXIgcGRhdGFbNV07CisKKyNpZiBTSVpFT0ZfU0laRV9UID4gNAorICAgIGlmIChzaXplID4gMHhmZmZmZmZmZlVMKSB7CisgICAgICAgIC8qIHN0cmluZyB0b28gbGFyZ2UgKi8KKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiY2Fubm90IHNlcmlhbGl6ZSBhIHN0cmluZyBsYXJnZXIgdGhhbiA0R2lCIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisjZW5kaWYKKworICAgIHBkYXRhWzBdID0gQklOVU5JQ09ERTsKKyAgICBwZGF0YVsxXSA9ICh1bnNpZ25lZCBjaGFyKShzaXplICYgMHhmZik7CisgICAgcGRhdGFbMl0gPSAodW5zaWduZWQgY2hhcikoKHNpemUgPj4gOCkgJiAweGZmKTsKKyAgICBwZGF0YVszXSA9ICh1bnNpZ25lZCBjaGFyKSgoc2l6ZSA+PiAxNikgJiAweGZmKTsKKyAgICBwZGF0YVs0XSA9ICh1bnNpZ25lZCBjaGFyKSgoc2l6ZSA+PiAyNCkgJiAweGZmKTsKKworICAgIGlmIChfUGlja2xlcl9Xcml0ZShzZWxmLCBwZGF0YSwgc2l6ZW9mKHBkYXRhKSkgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBpZiAoX1BpY2tsZXJfV3JpdGUoc2VsZiwgZGF0YSwgc2l6ZSkgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAord3JpdGVfdW5pY29kZV9iaW5hcnkoUGlja2xlck9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm9iaikKK3sKKyAgICBQeU9iamVjdCAqZW5jb2RlZCA9IE5VTEw7CisgICAgUHlfc3NpemVfdCBzaXplOworICAgIGNoYXIgKmRhdGE7CisgICAgaW50IHI7CisKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKG9iaikpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGRhdGEgPSBQeVVuaWNvZGVfQXNVVEY4QW5kU2l6ZShvYmosICZzaXplKTsKKyAgICBpZiAoZGF0YSAhPSBOVUxMKQorICAgICAgICByZXR1cm4gd3JpdGVfdXRmOChzZWxmLCBkYXRhLCBzaXplKTsKKworICAgIC8qIElzc3VlICM4MzgzOiBmb3Igc3RyaW5ncyB3aXRoIGxvbmUgc3Vycm9nYXRlcywgZmFsbGJhY2sgb24gdGhlCisgICAgICAgInN1cnJvZ2F0ZXBhc3MiIGVycm9yIGhhbmRsZXIuICovCisgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICBlbmNvZGVkID0gUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZyhvYmosICJ1dGYtOCIsICJzdXJyb2dhdGVwYXNzIik7CisgICAgaWYgKGVuY29kZWQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgciA9IHdyaXRlX3V0Zjgoc2VsZiwgUHlCeXRlc19BU19TVFJJTkcoZW5jb2RlZCksCisgICAgICAgICAgICAgICAgICAgUHlCeXRlc19HRVRfU0laRShlbmNvZGVkKSk7CisgICAgUHlfREVDUkVGKGVuY29kZWQpOworICAgIHJldHVybiByOworfQorCitzdGF0aWMgaW50CiBzYXZlX3VuaWNvZGUoUGlja2xlck9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm9iaikKIHsKLSAgICBQeV9zc2l6ZV90IHNpemU7Ci0gICAgUHlPYmplY3QgKmVuY29kZWQgPSBOVUxMOwotCiAgICAgaWYgKHNlbGYtPmJpbikgewotICAgICAgICBjaGFyIHBkYXRhWzVdOwotCi0gICAgICAgIGVuY29kZWQgPSBQeVVuaWNvZGVfQXNFbmNvZGVkU3RyaW5nKG9iaiwgInV0Zi04IiwgInN1cnJvZ2F0ZXBhc3MiKTsKLSAgICAgICAgaWYgKGVuY29kZWQgPT0gTlVMTCkKLSAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0KLSAgICAgICAgc2l6ZSA9IFB5Qnl0ZXNfR0VUX1NJWkUoZW5jb2RlZCk7Ci0gICAgICAgIGlmIChzaXplID4gMHhmZmZmZmZmZkwpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYW5ub3Qgc2VyaWFsaXplIGEgc3RyaW5nIGxhcmdlciB0aGFuIDQgR2lCIik7Ci0gICAgICAgICAgICBnb3RvIGVycm9yOyAgICAgICAgICAvKiBzdHJpbmcgdG9vIGxhcmdlICovCi0gICAgICAgIH0KLQotICAgICAgICBwZGF0YVswXSA9IEJJTlVOSUNPREU7Ci0gICAgICAgIHBkYXRhWzFdID0gKHVuc2lnbmVkIGNoYXIpKHNpemUgJiAweGZmKTsKLSAgICAgICAgcGRhdGFbMl0gPSAodW5zaWduZWQgY2hhcikoKHNpemUgPj4gOCkgJiAweGZmKTsKLSAgICAgICAgcGRhdGFbM10gPSAodW5zaWduZWQgY2hhcikoKHNpemUgPj4gMTYpICYgMHhmZik7Ci0gICAgICAgIHBkYXRhWzRdID0gKHVuc2lnbmVkIGNoYXIpKChzaXplID4+IDI0KSAmIDB4ZmYpOwotCi0gICAgICAgIGlmIChfUGlja2xlcl9Xcml0ZShzZWxmLCBwZGF0YSwgNSkgPCAwKQotICAgICAgICAgICAgZ290byBlcnJvcjsKLQotICAgICAgICBpZiAoX1BpY2tsZXJfV3JpdGUoc2VsZiwgUHlCeXRlc19BU19TVFJJTkcoZW5jb2RlZCksIHNpemUpIDwgMCkKLSAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIGlmICh3cml0ZV91bmljb2RlX2JpbmFyeShzZWxmLCBvYmopIDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAgICAgZWxzZSB7CisgICAgICAgIFB5T2JqZWN0ICplbmNvZGVkOworICAgICAgICBQeV9zc2l6ZV90IHNpemU7CiAgICAgICAgIGNvbnN0IGNoYXIgdW5pY29kZV9vcCA9IFVOSUNPREU7CiAKICAgICAgICAgZW5jb2RlZCA9IHJhd191bmljb2RlX2VzY2FwZShvYmopOwogICAgICAgICBpZiAoZW5jb2RlZCA9PSBOVUxMKQotICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIHJldHVybiAtMTsKIAotICAgICAgICBpZiAoX1BpY2tsZXJfV3JpdGUoc2VsZiwgJnVuaWNvZGVfb3AsIDEpIDwgMCkKLSAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIGlmIChfUGlja2xlcl9Xcml0ZShzZWxmLCAmdW5pY29kZV9vcCwgMSkgPCAwKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYoZW5jb2RlZCk7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KIAogICAgICAgICBzaXplID0gUHlCeXRlc19HRVRfU0laRShlbmNvZGVkKTsKLSAgICAgICAgaWYgKF9QaWNrbGVyX1dyaXRlKHNlbGYsIFB5Qnl0ZXNfQVNfU1RSSU5HKGVuY29kZWQpLCBzaXplKSA8IDApCi0gICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICBpZiAoX1BpY2tsZXJfV3JpdGUoc2VsZiwgUHlCeXRlc19BU19TVFJJTkcoZW5jb2RlZCksIHNpemUpIDwgMCkgeworICAgICAgICAgICAgUHlfREVDUkVGKGVuY29kZWQpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIFB5X0RFQ1JFRihlbmNvZGVkKTsKIAogICAgICAgICBpZiAoX1BpY2tsZXJfV3JpdGUoc2VsZiwgIlxuIiwgMSkgPCAwKQotICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAgICAgaWYgKG1lbW9fcHV0KHNlbGYsIG9iaikgPCAwKQotICAgICAgICBnb3RvIGVycm9yOworICAgICAgICByZXR1cm4gLTE7CiAKLSAgICBQeV9ERUNSRUYoZW5jb2RlZCk7CiAgICAgcmV0dXJuIDA7Ci0KLSAgZXJyb3I6Ci0gICAgUHlfWERFQ1JFRihlbmNvZGVkKTsKLSAgICByZXR1cm4gLTE7CiB9CiAKIC8qIEEgaGVscGVyIGZvciBzYXZlX3R1cGxlLiAgUHVzaCB0aGUgbGVuIGVsZW1lbnRzIGluIHR1cGxlIHQgb24gdGhlIHN0YWNrLiAqLwpAQCAtNDE3MSwzNiArNDIwNSwyMyBAQAogCiAgICAgaWYgKChsZW4gPSBfVW5waWNrbGVyX1JlYWRsaW5lKHNlbGYsICZzKSkgPCAwKQogICAgICAgICByZXR1cm4gLTE7Ci0gICAgaWYgKGxlbiA8IDIpCi0gICAgICAgIHJldHVybiBiYWRfcmVhZGxpbmUoKTsKLSAgICBpZiAoKHMgPSBzdHJkdXAocykpID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQorICAgIC8qIFN0cmlwIHRoZSBuZXdsaW5lICovCisgICAgbGVuLS07CiAgICAgLyogU3RyaXAgb3V0ZXJtb3N0IHF1b3RlcyAqLwotICAgIHdoaWxlIChsZW4gPiAwICYmIHNbbGVuIC0gMV0gPD0gJyAnKQotICAgICAgICBsZW4tLTsKLSAgICBpZiAobGVuID4gMSAmJiBzWzBdID09ICciJyAmJiBzW2xlbiAtIDFdID09ICciJykgewotICAgICAgICBzW2xlbiAtIDFdID0gJ1wwJzsKLSAgICAgICAgcCA9IHMgKyAxOwotICAgICAgICBsZW4gLT0gMjsKLSAgICB9Ci0gICAgZWxzZSBpZiAobGVuID4gMSAmJiBzWzBdID09ICdcJycgJiYgc1tsZW4gLSAxXSA9PSAnXCcnKSB7Ci0gICAgICAgIHNbbGVuIC0gMV0gPSAnXDAnOworICAgIGlmIChsZW4gPj0gMiAmJiBzWzBdID09IHNbbGVuIC0gMV0gJiYgKHNbMF0gPT0gJ1wnJyB8fCBzWzBdID09ICciJykpIHsKICAgICAgICAgcCA9IHMgKyAxOwogICAgICAgICBsZW4gLT0gMjsKICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIGZyZWUocyk7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiaW5zZWN1cmUgc3RyaW5nIHBpY2tsZSIpOworICAgICAgICBQeUVycl9TZXRTdHJpbmcoVW5waWNrbGluZ0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgInRoZSBTVFJJTkcgb3Bjb2RlIGFyZ3VtZW50IG11c3QgYmUgcXVvdGVkIik7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CisgICAgYXNzZXJ0KGxlbiA+PSAwKTsKIAogICAgIC8qIFVzZSB0aGUgUHlCeXRlcyBBUEkgdG8gZGVjb2RlIHRoZSBzdHJpbmcsIHNpbmNlIHRoYXQgaXMgd2hhdCBpcyB1c2VkCiAgICAgICAgdG8gZW5jb2RlLCBhbmQgdGhlbiBjb2VyY2UgdGhlIHJlc3VsdCB0byBVbmljb2RlLiAqLwogICAgIGJ5dGVzID0gUHlCeXRlc19EZWNvZGVFc2NhcGUocCwgbGVuLCBOVUxMLCAwLCBOVUxMKTsKLSAgICBmcmVlKHMpOwogICAgIGlmIChieXRlcyA9PSBOVUxMKQogICAgICAgICByZXR1cm4gLTE7CiAgICAgc3RyID0gUHlVbmljb2RlX0Zyb21FbmNvZGVkT2JqZWN0KGJ5dGVzLCBzZWxmLT5lbmNvZGluZywgc2VsZi0+ZXJyb3JzKTsKQEAgLTQyMjYsOCArNDI0Nyw3IEBACiAgICAgaWYgKHggPCAwKSB7CiAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19PdmVyZmxvd0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgIkJJTkJZVEVTIGV4Y2VlZHMgc3lzdGVtJ3MgbWF4aW11bSBzaXplIG9mICV6ZCBieXRlcyIsCi0gICAgICAgICAgICAgICAgICAgICBQWV9TU0laRV9UX01BWAotICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgUFlfU1NJWkVfVF9NQVgpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCkBAIC00MzUxLDggKzQzNzEsNyBAQAogICAgIGlmIChzaXplIDwgMCkgewogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfT3ZlcmZsb3dFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICJCSU5VTklDT0RFIGV4Y2VlZHMgc3lzdGVtJ3MgbWF4aW11bSBzaXplIG9mICV6ZCBieXRlcyIsCi0gICAgICAgICAgICAgICAgICAgICBQWV9TU0laRV9UX01BWAotICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgICAgICAgICAgUFlfU1NJWkVfVF9NQVgpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19wb3NpeHN1YnByb2Nlc3MuYyBiL01vZHVsZXMvX3Bvc2l4c3VicHJvY2Vzcy5jCmluZGV4IDA3ZDcwOTYuLmM0YTZiN2IgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3Bvc2l4c3VicHJvY2Vzcy5jCisrKyBiL01vZHVsZXMvX3Bvc2l4c3VicHJvY2Vzcy5jCkBAIC00OTEsNyArNDkxLDcgQEAKICAgICAgICAgLyogV2UgY2FuJ3QgY2FsbCBzdHJlcnJvcihzYXZlZF9lcnJubykuICBJdCBpcyBub3QgYXN5bmMgc2lnbmFsIHNhZmUuCiAgICAgICAgICAqIFRoZSBwYXJlbnQgcHJvY2VzcyB3aWxsIGxvb2sgdGhlIGVycm9yIG1lc3NhZ2UgdXAuICovCiAgICAgfSBlbHNlIHsKLSAgICAgICAgdW51c2VkID0gd3JpdGUoZXJycGlwZV93cml0ZSwgIlJ1bnRpbWVFcnJvcjowOiIsIDE1KTsKKyAgICAgICAgdW51c2VkID0gd3JpdGUoZXJycGlwZV93cml0ZSwgIlN1YnByb2Nlc3NFcnJvcjowOiIsIDE4KTsKICAgICAgICAgdW51c2VkID0gd3JpdGUoZXJycGlwZV93cml0ZSwgZXJyX21zZywgc3RybGVuKGVycl9tc2cpKTsKICAgICB9CiAgICAgaWYgKHVudXNlZCkgcmV0dXJuOyAgLyogc2lsbHk/IHllcyEgYXZvaWRzIGdjYyBjb21waWxlciB3YXJuaW5nLiAqLwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fcmFuZG9tbW9kdWxlLmMgYi9Nb2R1bGVzL19yYW5kb21tb2R1bGUuYwppbmRleCA2NTQwYWI5Li5hNzI5ODE3IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19yYW5kb21tb2R1bGUuYworKysgYi9Nb2R1bGVzL19yYW5kb21tb2R1bGUuYwpAQCAtMTY4LDkgKzE2OCw5IEBACiAvKiBpbml0X2tleSBpcyB0aGUgYXJyYXkgZm9yIGluaXRpYWxpemluZyBrZXlzICovCiAvKiBrZXlfbGVuZ3RoIGlzIGl0cyBsZW5ndGggKi8KIHN0YXRpYyBQeU9iamVjdCAqCi1pbml0X2J5X2FycmF5KFJhbmRvbU9iamVjdCAqc2VsZiwgdW5zaWduZWQgbG9uZyBpbml0X2tleVtdLCB1bnNpZ25lZCBsb25nIGtleV9sZW5ndGgpCitpbml0X2J5X2FycmF5KFJhbmRvbU9iamVjdCAqc2VsZiwgdW5zaWduZWQgbG9uZyBpbml0X2tleVtdLCBzaXplX3Qga2V5X2xlbmd0aCkKIHsKLSAgICB1bnNpZ25lZCBpbnQgaSwgaiwgazsgICAgICAgLyogd2FzIHNpZ25lZCBpbiB0aGUgb3JpZ2luYWwgY29kZS4gUkRIIDEyLzE2LzIwMDIgKi8KKyAgICBzaXplX3QgaSwgaiwgazsgICAgICAgLyogd2FzIHNpZ25lZCBpbiB0aGUgb3JpZ2luYWwgY29kZS4gUkRIIDEyLzE2LzIwMDIgKi8KICAgICB1bnNpZ25lZCBsb25nICptdDsKIAogICAgIG10ID0gc2VsZi0+c3RhdGU7CkBAIC0yMDcsMTQgKzIwNywxMSBAQAogcmFuZG9tX3NlZWQoUmFuZG9tT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKICAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsgICAgICAgICAgICAvKiBndWlsdHkgdW50aWwgcHJvdmVkIGlubm9jZW50ICovCi0gICAgUHlPYmplY3QgKm1hc2tsb3dlciA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKnRoaXJ0eXR3byA9IE5VTEw7CiAgICAgUHlPYmplY3QgKm4gPSBOVUxMOwotICAgIHVuc2lnbmVkIGxvbmcgKm5ld19rZXksICprZXkgPSBOVUxMOwotICAgIHVuc2lnbmVkIGxvbmcga2V5bWF4OyAgICAgICAgICAgICAgIC8qICMgb2YgYWxsb2NhdGVkIHNsb3RzIGluIGtleSAqLwotICAgIHVuc2lnbmVkIGxvbmcga2V5dXNlZDsgICAgICAgICAgICAgIC8qICMgb2YgdXNlZCBzbG90cyBpbiBrZXkgKi8KLSAgICBpbnQgZXJyOwotCisgICAgdW5zaWduZWQgbG9uZyAqa2V5ID0gTlVMTDsKKyAgICB1bnNpZ25lZCBjaGFyICprZXlfYXNfYnl0ZXMgPSBOVUxMOworICAgIHNpemVfdCBiaXRzLCBrZXl1c2VkLCBpOworICAgIGludCByZXM7CiAgICAgUHlPYmplY3QgKmFyZyA9IE5VTEw7CiAKICAgICBpZiAoIVB5QXJnX1VucGFja1R1cGxlKGFyZ3MsICJzZWVkIiwgMCwgMSwgJmFyZykpCkBAIC0yNDMsNjkgKzI0MCw0MyBAQAogICAgIGlmIChuID09IE5VTEwpCiAgICAgICAgIGdvdG8gRG9uZTsKIAotICAgIC8qIE5vdyBzcGxpdCBuIGludG8gMzItYml0IGNodW5rcywgZnJvbSB0aGUgcmlnaHQuICBFYWNoIHBpZWNlIGlzCi0gICAgICogc3RvcmVkIGludG8ga2V5LCB3aGljaCBoYXMgYSBjYXBhY2l0eSBvZiBrZXltYXggY2h1bmtzLCBvZiB3aGljaAotICAgICAqIGtleXVzZWQgYXJlIGZpbGxlZC4gIEFsYXMsIHRoZSByZXBlYXRlZCBzaGlmdGluZyBtYWtlcyB0aGlzIGEKLSAgICAgKiBxdWFkcmF0aWMtdGltZSBhbGdvcml0aG07IHdlJ2QgcmVhbGx5IGxpa2UgdG8gdXNlCi0gICAgICogX1B5TG9uZ19Bc0J5dGVBcnJheSBoZXJlLCBidXQgdGhlbiB3ZSdkIGhhdmUgdG8gYnJlYWsgaW50byB0aGUKLSAgICAgKiBsb25nIHJlcHJlc2VudGF0aW9uIHRvIGZpZ3VyZSBvdXQgaG93IGJpZyBhbiBhcnJheSB3YXMgbmVlZGVkCi0gICAgICogaW4gYWR2YW5jZS4KLSAgICAgKi8KLSAgICBrZXltYXggPSA4OyAgICAgICAgIC8qIGFyYml0cmFyeTsgZ3Jvd3MgbGF0ZXIgaWYgbmVlZGVkICovCi0gICAga2V5dXNlZCA9IDA7Ci0gICAga2V5ID0gKHVuc2lnbmVkIGxvbmcgKilQeU1lbV9NYWxsb2Moa2V5bWF4ICogc2l6ZW9mKCprZXkpKTsKLSAgICBpZiAoa2V5ID09IE5VTEwpCisgICAgLyogTm93IHNwbGl0IG4gaW50byAzMi1iaXQgY2h1bmtzLCBmcm9tIHRoZSByaWdodC4gKi8KKyAgICBiaXRzID0gX1B5TG9uZ19OdW1CaXRzKG4pOworICAgIGlmIChiaXRzID09IChzaXplX3QpLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKICAgICAgICAgZ290byBEb25lOwogCi0gICAgbWFza2xvd2VyID0gUHlMb25nX0Zyb21VbnNpZ25lZExvbmcoMHhmZmZmZmZmZlUpOwotICAgIGlmIChtYXNrbG93ZXIgPT0gTlVMTCkKLSAgICAgICAgZ290byBEb25lOwotICAgIHRoaXJ0eXR3byA9IFB5TG9uZ19Gcm9tTG9uZygzMkwpOwotICAgIGlmICh0aGlydHl0d28gPT0gTlVMTCkKLSAgICAgICAgZ290byBEb25lOwotICAgIHdoaWxlICgoZXJyPVB5T2JqZWN0X0lzVHJ1ZShuKSkpIHsKLSAgICAgICAgUHlPYmplY3QgKm5ld247Ci0gICAgICAgIFB5T2JqZWN0ICpweWNodW5rOwotICAgICAgICB1bnNpZ25lZCBsb25nIGNodW5rOworICAgIC8qIEZpZ3VyZSBvdXQgaG93IG1hbnkgMzItYml0IGNodW5rcyB0aGlzIGdpdmVzIHVzLiAqLworICAgIGtleXVzZWQgPSBiaXRzID09IDAgPyAxIDogKGJpdHMgLSAxKSAvIDMyICsgMTsKIAotICAgICAgICBpZiAoZXJyID09IC0xKQotICAgICAgICAgICAgZ290byBEb25lOwotICAgICAgICBweWNodW5rID0gUHlOdW1iZXJfQW5kKG4sIG1hc2tsb3dlcik7Ci0gICAgICAgIGlmIChweWNodW5rID09IE5VTEwpCi0gICAgICAgICAgICBnb3RvIERvbmU7Ci0gICAgICAgIGNodW5rID0gUHlMb25nX0FzVW5zaWduZWRMb25nKHB5Y2h1bmspOwotICAgICAgICBQeV9ERUNSRUYocHljaHVuayk7Ci0gICAgICAgIGlmIChjaHVuayA9PSAodW5zaWduZWQgbG9uZyktMSAmJiBQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICAgICAgZ290byBEb25lOwotICAgICAgICBuZXduID0gUHlOdW1iZXJfUnNoaWZ0KG4sIHRoaXJ0eXR3byk7Ci0gICAgICAgIGlmIChuZXduID09IE5VTEwpCi0gICAgICAgICAgICBnb3RvIERvbmU7Ci0gICAgICAgIFB5X0RFQ1JFRihuKTsKLSAgICAgICAgbiA9IG5ld247Ci0gICAgICAgIGlmIChrZXl1c2VkID49IGtleW1heCkgewotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBiaWdnZXIgPSBrZXltYXggPDwgMTsKLSAgICAgICAgICAgIGlmICgoYmlnZ2VyID4+IDEpICE9IGtleW1heCB8fAotICAgICAgICAgICAgICAgIGJpZ2dlciA+IFBZX1NTSVpFX1RfTUFYIC8gc2l6ZW9mKCprZXkpKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKLSAgICAgICAgICAgICAgICBnb3RvIERvbmU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBuZXdfa2V5ID0gKHVuc2lnbmVkIGxvbmcgKilQeU1lbV9SZWFsbG9jKGtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpZ2dlciAqIHNpemVvZigqa2V5KSk7Ci0gICAgICAgICAgICBpZiAobmV3X2tleSA9PSBOVUxMKQotICAgICAgICAgICAgICAgIGdvdG8gRG9uZTsKLSAgICAgICAgICAgIGtleSA9IG5ld19rZXk7Ci0gICAgICAgICAgICBrZXltYXggPSBiaWdnZXI7Ci0gICAgICAgIH0KLSAgICAgICAgYXNzZXJ0KGtleXVzZWQgPCBrZXltYXgpOwotICAgICAgICBrZXlba2V5dXNlZCsrXSA9IGNodW5rOworICAgIC8qIENvbnZlcnQgc2VlZCB0byBieXRlIHNlcXVlbmNlLiAqLworICAgIGtleV9hc19ieXRlcyA9ICh1bnNpZ25lZCBjaGFyICopUHlNZW1fTWFsbG9jKChzaXplX3QpNCAqIGtleXVzZWQpOworICAgIGlmIChrZXlfYXNfYnl0ZXMgPT0gTlVMTCkKKyAgICAgICAgZ290byBEb25lOworICAgIHJlcyA9IF9QeUxvbmdfQXNCeXRlQXJyYXkoKFB5TG9uZ09iamVjdCAqKW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfYXNfYnl0ZXMsIGtleXVzZWQgKiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgIC8qIGxpdHRsZS1lbmRpYW4gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOyAvKiB1bnNpZ25lZCAqLworICAgIGlmIChyZXMgPT0gLTEpIHsKKyAgICAgICAgUHlNZW1fRnJlZShrZXlfYXNfYnl0ZXMpOworICAgICAgICBnb3RvIERvbmU7CiAgICAgfQogCi0gICAgaWYgKGtleXVzZWQgPT0gMCkKLSAgICAgICAga2V5W2tleXVzZWQrK10gPSAwVUw7CisgICAgLyogRmlsbCBhcnJheSBvZiB1bnNpZ25lZCBsb25ncyBmcm9tIGJ5dGUgc2VxdWVuY2UuICovCisgICAga2V5ID0gKHVuc2lnbmVkIGxvbmcgKilQeU1lbV9NYWxsb2Moc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICoga2V5dXNlZCk7CisgICAgaWYgKGtleSA9PSBOVUxMKSB7CisgICAgICAgIFB5TWVtX0ZyZWUoa2V5X2FzX2J5dGVzKTsKKyAgICAgICAgZ290byBEb25lOworICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwga2V5dXNlZDsgaSsrKSB7CisgICAgICAgIGtleVtpXSA9CisgICAgICAgICAgICAoKHVuc2lnbmVkIGxvbmcpa2V5X2FzX2J5dGVzWzQqaSArIDBdIDw8IDApICsKKyAgICAgICAgICAgICgodW5zaWduZWQgbG9uZylrZXlfYXNfYnl0ZXNbNCppICsgMV0gPDwgOCkgKworICAgICAgICAgICAgKCh1bnNpZ25lZCBsb25nKWtleV9hc19ieXRlc1s0KmkgKyAyXSA8PCAxNikgKworICAgICAgICAgICAgKCh1bnNpZ25lZCBsb25nKWtleV9hc19ieXRlc1s0KmkgKyAzXSA8PCAyNCk7CisgICAgfQorICAgIFB5TWVtX0ZyZWUoa2V5X2FzX2J5dGVzKTsKICAgICByZXN1bHQgPSBpbml0X2J5X2FycmF5KHNlbGYsIGtleSwga2V5dXNlZCk7CiBEb25lOgotICAgIFB5X1hERUNSRUYobWFza2xvd2VyKTsKLSAgICBQeV9YREVDUkVGKHRoaXJ0eXR3byk7CiAgICAgUHlfWERFQ1JFRihuKTsKICAgICBQeU1lbV9GcmVlKGtleSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTM4OSw2ICszNjAsOSBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKKyAgICBpZiAoayA8PSAzMikgIC8qIEZhc3QgcGF0aCAqLworICAgICAgICByZXR1cm4gUHlMb25nX0Zyb21VbnNpZ25lZExvbmcoZ2VucmFuZF9pbnQzMihzZWxmKSA+PiAoMzIgLSBrKSk7CisKICAgICBieXRlcyA9ICgoayAtIDEpIC8gMzIgKyAxKSAqIDQ7CiAgICAgYnl0ZWFycmF5ID0gKHVuc2lnbmVkIGNoYXIgKilQeU1lbV9NYWxsb2MoYnl0ZXMpOwogICAgIGlmIChieXRlYXJyYXkgPT0gTlVMTCkgewpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc2hhMy9jbGVhbnVwLnB5IGIvTW9kdWxlcy9fc2hhMy9jbGVhbnVwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFhYmNiMDQKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19zaGEzL2NsZWFudXAucHkKQEAgLTAsMCArMSw0OSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHlyaWdodCAoQykgMjAxMiAgIENocmlzdGlhbiBIZWltZXMgKGNocmlzdGlhbkBweXRob24ub3JnKQorIyBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBDb250cmlidXRvciBBZ3JlZW1lbnQuCisjCisjIGNsZWFudXAgS2VjY2FrIHNvdXJjZXMKKworaW1wb3J0IG9zCitpbXBvcnQgcmUKKworQ1BQMSA9IHJlLmNvbXBpbGUoIl4vLyguKikiKQorQ1BQMiA9IHJlLmNvbXBpbGUoIlwgLy8oLiopIikKKworU1RBVElDUyA9ICgidm9pZCAiLCAiaW50ICIsICJIYXNoUmV0dXJuICIsICJjb25zdCBVSU5UNjQgIiwgIlVJTlQxNiAiKQorCitIRVJFID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpCitLRUNDQUsgPSBvcy5wYXRoLmpvaW4oSEVSRSwgImtlY2NhayIpCisKK2RlZiBnZXRmaWxlcygpOgorICAgIGZvciBuYW1lIGluIG9zLmxpc3RkaXIoS0VDQ0FLKToKKyAgICAgICAgbmFtZSA9IG9zLnBhdGguam9pbihLRUNDQUssIG5hbWUpCisgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKG5hbWUpOgorICAgICAgICAgICAgeWllbGQgbmFtZQorCitkZWYgY2xlYW51cChmKToKKyAgICBidWYgPSBbXQorICAgIGZvciBsaW5lIGluIGY6CisgICAgICAgICMgbWFyayBhbGwgZnVuY3Rpb25zIGFuZCBnbG9iYWwgZGF0YSBhcyBzdGF0aWMKKyAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKFNUQVRJQ1MpOgorICAgICAgICAgICAgYnVmLmFwcGVuZCgic3RhdGljICIgKyBsaW5lKQorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgIyByZW1vdmUgVUlOVDY0IHR5cGVkZWYsIHdlIGhhdmUgb3VyIG93bgorICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoInR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCIpOgorICAgICAgICAgICAgYnVmLmFwcGVuZCgiLyogJXMgKi9cbiIgJSBsaW5lLnN0cmlwKCkpCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAjIHJlbW92ZSAjaW5jbHVkZSAiYnJnX2VuZGlhbi5oIgorICAgICAgICBpZiAiYnJnX2VuZGlhbi5oIiBpbiBsaW5lOgorICAgICAgICAgICAgYnVmLmFwcGVuZCgiLyogJXMgKi9cbiIgJSBsaW5lLnN0cmlwKCkpCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAjIHRyYW5zZm9ybSBDKysgY29tbWVudHMgaW50byBBTlNJIEMgY29tbWVudHMKKyAgICAgICAgbGluZSA9IENQUDEuc3ViKHIiLyogXDEgKi8iLCBsaW5lKQorICAgICAgICBsaW5lID0gQ1BQMi5zdWIociIgLyogXDEgKi8iLCBsaW5lKQorICAgICAgICBidWYuYXBwZW5kKGxpbmUpCisgICAgcmV0dXJuICIiLmpvaW4oYnVmKQorCitmb3IgbmFtZSBpbiBnZXRmaWxlcygpOgorICAgIHdpdGggb3BlbihuYW1lKSBhcyBmOgorICAgICAgICByZXMgPSBjbGVhbnVwKGYpCisgICAgd2l0aCBvcGVuKG5hbWUsICJ3IikgYXMgZjoKKyAgICAgICAgZi53cml0ZShyZXMpCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtMzItcnZrLm1hY3JvcyBiL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC0zMi1ydmsubWFjcm9zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwYzkwMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtMzItcnZrLm1hY3JvcwpAQCAtMCwwICsxLDU1NSBAQAorLyoKK1RoZSBLZWNjYWsgc3BvbmdlIGZ1bmN0aW9uLCBkZXNpZ25lZCBieSBHdWlkbyBCZXJ0b25pLCBKb2FuIERhZW1lbiwKK01pY2hhw6tsIFBlZXRlcnMgYW5kIEdpbGxlcyBWYW4gQXNzY2hlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgZmVlZGJhY2sgb3IKK3F1ZXN0aW9ucywgcGxlYXNlIHJlZmVyIHRvIG91ciB3ZWJzaXRlOiBodHRwOi8va2VjY2FrLm5vZWtlb24ub3JnLworCitJbXBsZW1lbnRhdGlvbiBieSBSb25ueSBWYW4gS2VlciwKK2hlcmVieSBkZW5vdGVkIGFzICJ0aGUgaW1wbGVtZW50ZXIiLgorCitUbyB0aGUgZXh0ZW50IHBvc3NpYmxlIHVuZGVyIGxhdywgdGhlIGltcGxlbWVudGVyIGhhcyB3YWl2ZWQgYWxsIGNvcHlyaWdodAorYW5kIHJlbGF0ZWQgb3IgbmVpZ2hib3JpbmcgcmlnaHRzIHRvIHRoZSBzb3VyY2UgY29kZSBpbiB0aGlzIGZpbGUuCitodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisqLworCitzdGF0aWMgY29uc3QgVUlOVDMyIEtlY2Nha0YxNjAwUm91bmRDb25zdGFudHNfaW50MlsyKjI0XSA9Cit7CisgICAgMHgwMDAwMDAwMVVMLCAgICAweDAwMDAwMDAwVUwsCisgICAgMHgwMDAwMDAwMFVMLCAgICAweDAwMDAwMDg5VUwsCisgICAgMHgwMDAwMDAwMFVMLCAgICAweDgwMDAwMDhiVUwsCisgICAgMHgwMDAwMDAwMFVMLCAgICAweDgwMDA4MDgwVUwsCisgICAgMHgwMDAwMDAwMVVMLCAgICAweDAwMDAwMDhiVUwsCisgICAgMHgwMDAwMDAwMVVMLCAgICAweDAwMDA4MDAwVUwsCisgICAgMHgwMDAwMDAwMVVMLCAgICAweDgwMDA4MDg4VUwsCisgICAgMHgwMDAwMDAwMVVMLCAgICAweDgwMDAwMDgyVUwsCisgICAgMHgwMDAwMDAwMFVMLCAgICAweDAwMDAwMDBiVUwsCisgICAgMHgwMDAwMDAwMFVMLCAgICAweDAwMDAwMDBhVUwsCisgICAgMHgwMDAwMDAwMVVMLCAgICAweDAwMDA4MDgyVUwsCisgICAgMHgwMDAwMDAwMFVMLCAgICAweDAwMDA4MDAzVUwsCisgICAgMHgwMDAwMDAwMVVMLCAgICAweDAwMDA4MDhiVUwsCisgICAgMHgwMDAwMDAwMVVMLCAgICAweDgwMDAwMDBiVUwsCisgICAgMHgwMDAwMDAwMVVMLCAgICAweDgwMDAwMDhhVUwsCisgICAgMHgwMDAwMDAwMVVMLCAgICAweDgwMDAwMDgxVUwsCisgICAgMHgwMDAwMDAwMFVMLCAgICAweDgwMDAwMDgxVUwsCisgICAgMHgwMDAwMDAwMFVMLCAgICAweDgwMDAwMDA4VUwsCisgICAgMHgwMDAwMDAwMFVMLCAgICAweDAwMDAwMDgzVUwsCisgICAgMHgwMDAwMDAwMFVMLCAgICAweDgwMDA4MDAzVUwsCisgICAgMHgwMDAwMDAwMVVMLCAgICAweDgwMDA4MDg4VUwsCisgICAgMHgwMDAwMDAwMFVMLCAgICAweDgwMDAwMDg4VUwsCisgICAgMHgwMDAwMDAwMVVMLCAgICAweDAwMDA4MDAwVUwsCisgICAgMHgwMDAwMDAwMFVMLCAgICAweDgwMDA4MDgyVUwKK307CisKKyN1bmRlZiByb3VuZHMKKworI2RlZmluZSByb3VuZHMgXAoreyBcCisgICAgVUlOVDMyIERhMCwgRGUwLCBEaTAsIERvMCwgRHUwOyBcCisgICAgVUlOVDMyIERhMSwgRGUxLCBEaTEsIERvMSwgRHUxOyBcCisgICAgVUlOVDMyIEJhLCBCZSwgQmksIEJvLCBCdTsgXAorICAgIFVJTlQzMiBBYmEwLCBBYmUwLCBBYmkwLCBBYm8wLCBBYnUwOyBcCisgICAgVUlOVDMyIEFiYTEsIEFiZTEsIEFiaTEsIEFibzEsIEFidTE7IFwKKyAgICBVSU5UMzIgQWdhMCwgQWdlMCwgQWdpMCwgQWdvMCwgQWd1MDsgXAorICAgIFVJTlQzMiBBZ2ExLCBBZ2UxLCBBZ2kxLCBBZ28xLCBBZ3UxOyBcCisgICAgVUlOVDMyIEFrYTAsIEFrZTAsIEFraTAsIEFrbzAsIEFrdTA7IFwKKyAgICBVSU5UMzIgQWthMSwgQWtlMSwgQWtpMSwgQWtvMSwgQWt1MTsgXAorICAgIFVJTlQzMiBBbWEwLCBBbWUwLCBBbWkwLCBBbW8wLCBBbXUwOyBcCisgICAgVUlOVDMyIEFtYTEsIEFtZTEsIEFtaTEsIEFtbzEsIEFtdTE7IFwKKyAgICBVSU5UMzIgQXNhMCwgQXNlMCwgQXNpMCwgQXNvMCwgQXN1MDsgXAorICAgIFVJTlQzMiBBc2ExLCBBc2UxLCBBc2kxLCBBc28xLCBBc3UxOyBcCisgICAgVUlOVDMyIEN3LCBDeCwgQ3ksIEN6OyBcCisgICAgVUlOVDMyIEViYTAsIEViZTAsIEViaTAsIEVibzAsIEVidTA7IFwKKyAgICBVSU5UMzIgRWJhMSwgRWJlMSwgRWJpMSwgRWJvMSwgRWJ1MTsgXAorICAgIFVJTlQzMiBFZ2EwLCBFZ2UwLCBFZ2kwLCBFZ28wLCBFZ3UwOyBcCisgICAgVUlOVDMyIEVnYTEsIEVnZTEsIEVnaTEsIEVnbzEsIEVndTE7IFwKKyAgICBVSU5UMzIgRWthMCwgRWtlMCwgRWtpMCwgRWtvMCwgRWt1MDsgXAorICAgIFVJTlQzMiBFa2ExLCBFa2UxLCBFa2kxLCBFa28xLCBFa3UxOyBcCisgICAgVUlOVDMyIEVtYTAsIEVtZTAsIEVtaTAsIEVtbzAsIEVtdTA7IFwKKyAgICBVSU5UMzIgRW1hMSwgRW1lMSwgRW1pMSwgRW1vMSwgRW11MTsgXAorICAgIFVJTlQzMiBFc2EwLCBFc2UwLCBFc2kwLCBFc28wLCBFc3UwOyBcCisgICAgVUlOVDMyIEVzYTEsIEVzZTEsIEVzaTEsIEVzbzEsIEVzdTE7IFwKKwljb25zdCBVSU5UMzIgKiBwUm91bmRDb25zdGFudHMgPSBLZWNjYWtGMTYwMFJvdW5kQ29uc3RhbnRzX2ludDI7IFwKKyAgICBVSU5UMzIgaTsgXAorXAorICAgIGNvcHlGcm9tU3RhdGUoQSwgc3RhdGUpIFwKK1wKKyAgICBmb3IoIGkgPSAxMjsgaSAhPSAwOyAtLWkgKSB7IFwKKwkgICAgQ3ggPSBBYnUwXkFndTBeQWt1MF5BbXUwXkFzdTA7IFwKKwkgICAgRHUxID0gQWJlMV5BZ2UxXkFrZTFeQW1lMV5Bc2UxOyBcCisJICAgIERhMCA9IEN4XlJPTDMyKER1MSwgMSk7IFwKKwkgICAgQ3ogPSBBYnUxXkFndTFeQWt1MV5BbXUxXkFzdTE7IFwKKwkgICAgRHUwID0gQWJlMF5BZ2UwXkFrZTBeQW1lMF5Bc2UwOyBcCisJICAgIERhMSA9IEN6XkR1MDsgXAorXAorCSAgICBDdyA9IEFiaTBeQWdpMF5Ba2kwXkFtaTBeQXNpMDsgXAorCSAgICBEbzAgPSBDd15ST0wzMihDeiwgMSk7IFwKKwkgICAgQ3kgPSBBYmkxXkFnaTFeQWtpMV5BbWkxXkFzaTE7IFwKKwkgICAgRG8xID0gQ3leQ3g7IFwKK1wKKwkgICAgQ3ggPSBBYmEwXkFnYTBeQWthMF5BbWEwXkFzYTA7IFwKKwkgICAgRGUwID0gQ3heUk9MMzIoQ3ksIDEpOyBcCisJICAgIEN6ID0gQWJhMV5BZ2ExXkFrYTFeQW1hMV5Bc2ExOyBcCisJICAgIERlMSA9IEN6XkN3OyBcCitcCisJICAgIEN5ID0gQWJvMV5BZ28xXkFrbzFeQW1vMV5Bc28xOyBcCisJICAgIERpMCA9IER1MF5ST0wzMihDeSwgMSk7IFwKKwkgICAgQ3cgPSBBYm8wXkFnbzBeQWtvMF5BbW8wXkFzbzA7IFwKKwkgICAgRGkxID0gRHUxXkN3OyBcCitcCisJICAgIER1MCA9IEN3XlJPTDMyKEN6LCAxKTsgXAorCSAgICBEdTEgPSBDeV5DeDsgXAorXAorCSAgICBBYmEwIF49IERhMDsgXAorCSAgICBCYSA9IEFiYTA7IFwKKwkgICAgQWdlMCBePSBEZTA7IFwKKwkgICAgQmUgPSBST0wzMihBZ2UwLCAyMik7IFwKKwkgICAgQWtpMSBePSBEaTE7IFwKKwkgICAgQmkgPSBST0wzMihBa2kxLCAyMik7IFwKKwkgICAgQW1vMSBePSBEbzE7IFwKKwkgICAgQm8gPSBST0wzMihBbW8xLCAxMSk7IFwKKwkgICAgQXN1MCBePSBEdTA7IFwKKwkgICAgQnUgPSBST0wzMihBc3UwLCA3KTsgXAorCSAgICBFYmEwID0gICBCYSBeKCh+QmUpJiAgQmkgKSBeICoocFJvdW5kQ29uc3RhbnRzKyspOyBcCisJICAgIEViZTAgPSAgIEJlIF4oKH5CaSkmICBCbyApOyBcCisJICAgIEViaTAgPSAgIEJpIF4oKH5CbykmICBCdSApOyBcCisJICAgIEVibzAgPSAgIEJvIF4oKH5CdSkmICBCYSApOyBcCisJICAgIEVidTAgPSAgIEJ1IF4oKH5CYSkmICBCZSApOyBcCitcCisJICAgIEFibzAgXj0gRG8wOyBcCisJICAgIEJhID0gUk9MMzIoQWJvMCwgMTQpOyBcCisJICAgIEFndTAgXj0gRHUwOyBcCisJICAgIEJlID0gUk9MMzIoQWd1MCwgMTApOyBcCisJICAgIEFrYTEgXj0gRGExOyBcCisJICAgIEJpID0gUk9MMzIoQWthMSwgMik7IFwKKwkgICAgQW1lMSBePSBEZTE7IFwKKwkgICAgQm8gPSBST0wzMihBbWUxLCAyMyk7IFwKKwkgICAgQXNpMSBePSBEaTE7IFwKKwkgICAgQnUgPSBST0wzMihBc2kxLCAzMSk7IFwKKwkgICAgRWdhMCA9ICAgQmEgXigofkJlKSYgIEJpICk7IFwKKwkgICAgRWdlMCA9ICAgQmUgXigofkJpKSYgIEJvICk7IFwKKwkgICAgRWdpMCA9ICAgQmkgXigofkJvKSYgIEJ1ICk7IFwKKwkgICAgRWdvMCA9ICAgQm8gXigofkJ1KSYgIEJhICk7IFwKKwkgICAgRWd1MCA9ICAgQnUgXigofkJhKSYgIEJlICk7IFwKK1wKKwkgICAgQWJlMSBePSBEZTE7IFwKKwkgICAgQmEgPSBST0wzMihBYmUxLCAxKTsgXAorCSAgICBBZ2kwIF49IERpMDsgXAorCSAgICBCZSA9IFJPTDMyKEFnaTAsIDMpOyBcCisJICAgIEFrbzEgXj0gRG8xOyBcCisJICAgIEJpID0gUk9MMzIoQWtvMSwgMTMpOyBcCisJICAgIEFtdTAgXj0gRHUwOyBcCisJICAgIEJvID0gUk9MMzIoQW11MCwgNCk7IFwKKwkgICAgQXNhMCBePSBEYTA7IFwKKwkgICAgQnUgPSBST0wzMihBc2EwLCA5KTsgXAorCSAgICBFa2EwID0gICBCYSBeKCh+QmUpJiAgQmkgKTsgXAorCSAgICBFa2UwID0gICBCZSBeKCh+QmkpJiAgQm8gKTsgXAorCSAgICBFa2kwID0gICBCaSBeKCh+Qm8pJiAgQnUgKTsgXAorCSAgICBFa28wID0gICBCbyBeKCh+QnUpJiAgQmEgKTsgXAorCSAgICBFa3UwID0gICBCdSBeKCh+QmEpJiAgQmUgKTsgXAorXAorCSAgICBBYnUxIF49IER1MTsgXAorCSAgICBCYSA9IFJPTDMyKEFidTEsIDE0KTsgXAorCSAgICBBZ2EwIF49IERhMDsgXAorCSAgICBCZSA9IFJPTDMyKEFnYTAsIDE4KTsgXAorCSAgICBBa2UwIF49IERlMDsgXAorCSAgICBCaSA9IFJPTDMyKEFrZTAsIDUpOyBcCisJICAgIEFtaTEgXj0gRGkxOyBcCisJICAgIEJvID0gUk9MMzIoQW1pMSwgOCk7IFwKKwkgICAgQXNvMCBePSBEbzA7IFwKKwkgICAgQnUgPSBST0wzMihBc28wLCAyOCk7IFwKKwkgICAgRW1hMCA9ICAgQmEgXigofkJlKSYgIEJpICk7IFwKKwkgICAgRW1lMCA9ICAgQmUgXigofkJpKSYgIEJvICk7IFwKKwkgICAgRW1pMCA9ICAgQmkgXigofkJvKSYgIEJ1ICk7IFwKKwkgICAgRW1vMCA9ICAgQm8gXigofkJ1KSYgIEJhICk7IFwKKwkgICAgRW11MCA9ICAgQnUgXigofkJhKSYgIEJlICk7IFwKK1wKKwkgICAgQWJpMCBePSBEaTA7IFwKKwkgICAgQmEgPSBST0wzMihBYmkwLCAzMSk7IFwKKwkgICAgQWdvMSBePSBEbzE7IFwKKwkgICAgQmUgPSBST0wzMihBZ28xLCAyOCk7IFwKKwkgICAgQWt1MSBePSBEdTE7IFwKKwkgICAgQmkgPSBST0wzMihBa3UxLCAyMCk7IFwKKwkgICAgQW1hMSBePSBEYTE7IFwKKwkgICAgQm8gPSBST0wzMihBbWExLCAyMSk7IFwKKwkgICAgQXNlMCBePSBEZTA7IFwKKwkgICAgQnUgPSBST0wzMihBc2UwLCAxKTsgXAorCSAgICBFc2EwID0gICBCYSBeKCh+QmUpJiAgQmkgKTsgXAorCSAgICBFc2UwID0gICBCZSBeKCh+QmkpJiAgQm8gKTsgXAorCSAgICBFc2kwID0gICBCaSBeKCh+Qm8pJiAgQnUgKTsgXAorCSAgICBFc28wID0gICBCbyBeKCh+QnUpJiAgQmEgKTsgXAorCSAgICBFc3UwID0gICBCdSBeKCh+QmEpJiAgQmUgKTsgXAorXAorCSAgICBBYmExIF49IERhMTsgXAorCSAgICBCYSA9IEFiYTE7IFwKKwkgICAgQWdlMSBePSBEZTE7IFwKKwkgICAgQmUgPSBST0wzMihBZ2UxLCAyMik7IFwKKwkgICAgQWtpMCBePSBEaTA7IFwKKwkgICAgQmkgPSBST0wzMihBa2kwLCAyMSk7IFwKKwkgICAgQW1vMCBePSBEbzA7IFwKKwkgICAgQm8gPSBST0wzMihBbW8wLCAxMCk7IFwKKwkgICAgQXN1MSBePSBEdTE7IFwKKwkgICAgQnUgPSBST0wzMihBc3UxLCA3KTsgXAorCSAgICBFYmExID0gICBCYSBeKCh+QmUpJiAgQmkgKTsgXAorCSAgICBFYmExIF49ICoocFJvdW5kQ29uc3RhbnRzKyspOyBcCisJICAgIEViZTEgPSAgIEJlIF4oKH5CaSkmICBCbyApOyBcCisJICAgIEViaTEgPSAgIEJpIF4oKH5CbykmICBCdSApOyBcCisJICAgIEVibzEgPSAgIEJvIF4oKH5CdSkmICBCYSApOyBcCisJICAgIEVidTEgPSAgIEJ1IF4oKH5CYSkmICBCZSApOyBcCitcCisJICAgIEFibzEgXj0gRG8xOyBcCisJICAgIEJhID0gUk9MMzIoQWJvMSwgMTQpOyBcCisJICAgIEFndTEgXj0gRHUxOyBcCisJICAgIEJlID0gUk9MMzIoQWd1MSwgMTApOyBcCisJICAgIEFrYTAgXj0gRGEwOyBcCisJICAgIEJpID0gUk9MMzIoQWthMCwgMSk7IFwKKwkgICAgQW1lMCBePSBEZTA7IFwKKwkgICAgQm8gPSBST0wzMihBbWUwLCAyMik7IFwKKwkgICAgQXNpMCBePSBEaTA7IFwKKwkgICAgQnUgPSBST0wzMihBc2kwLCAzMCk7IFwKKwkgICAgRWdhMSA9ICAgQmEgXigofkJlKSYgIEJpICk7IFwKKwkgICAgRWdlMSA9ICAgQmUgXigofkJpKSYgIEJvICk7IFwKKwkgICAgRWdpMSA9ICAgQmkgXigofkJvKSYgIEJ1ICk7IFwKKwkgICAgRWdvMSA9ICAgQm8gXigofkJ1KSYgIEJhICk7IFwKKwkgICAgRWd1MSA9ICAgQnUgXigofkJhKSYgIEJlICk7IFwKK1wKKwkgICAgQWJlMCBePSBEZTA7IFwKKwkgICAgQmEgPSBBYmUwOyBcCisJICAgIEFnaTEgXj0gRGkxOyBcCisJICAgIEJlID0gUk9MMzIoQWdpMSwgMyk7IFwKKwkgICAgQWtvMCBePSBEbzA7IFwKKwkgICAgQmkgPSBST0wzMihBa28wLCAxMik7IFwKKwkgICAgQW11MSBePSBEdTE7IFwKKwkgICAgQm8gPSBST0wzMihBbXUxLCA0KTsgXAorCSAgICBBc2ExIF49IERhMTsgXAorCSAgICBCdSA9IFJPTDMyKEFzYTEsIDkpOyBcCisJICAgIEVrYTEgPSAgIEJhIF4oKH5CZSkmICBCaSApOyBcCisJICAgIEVrZTEgPSAgIEJlIF4oKH5CaSkmICBCbyApOyBcCisJICAgIEVraTEgPSAgIEJpIF4oKH5CbykmICBCdSApOyBcCisJICAgIEVrbzEgPSAgIEJvIF4oKH5CdSkmICBCYSApOyBcCisJICAgIEVrdTEgPSAgIEJ1IF4oKH5CYSkmICBCZSApOyBcCitcCisJICAgIEFidTAgXj0gRHUwOyBcCisJICAgIEJhID0gUk9MMzIoQWJ1MCwgMTMpOyBcCisJICAgIEFnYTEgXj0gRGExOyBcCisJICAgIEJlID0gUk9MMzIoQWdhMSwgMTgpOyBcCisJICAgIEFrZTEgXj0gRGUxOyBcCisJICAgIEJpID0gUk9MMzIoQWtlMSwgNSk7IFwKKwkgICAgQW1pMCBePSBEaTA7IFwKKwkgICAgQm8gPSBST0wzMihBbWkwLCA3KTsgXAorCSAgICBBc28xIF49IERvMTsgXAorCSAgICBCdSA9IFJPTDMyKEFzbzEsIDI4KTsgXAorCSAgICBFbWExID0gICBCYSBeKCh+QmUpJiAgQmkgKTsgXAorCSAgICBFbWUxID0gICBCZSBeKCh+QmkpJiAgQm8gKTsgXAorCSAgICBFbWkxID0gICBCaSBeKCh+Qm8pJiAgQnUgKTsgXAorCSAgICBFbW8xID0gICBCbyBeKCh+QnUpJiAgQmEgKTsgXAorCSAgICBFbXUxID0gICBCdSBeKCh+QmEpJiAgQmUgKTsgXAorXAorCSAgICBBYmkxIF49IERpMTsgXAorCSAgICBCYSA9IFJPTDMyKEFiaTEsIDMxKTsgXAorCSAgICBBZ28wIF49IERvMDsgXAorCSAgICBCZSA9IFJPTDMyKEFnbzAsIDI3KTsgXAorCSAgICBBa3UwIF49IER1MDsgXAorCSAgICBCaSA9IFJPTDMyKEFrdTAsIDE5KTsgXAorCSAgICBBbWEwIF49IERhMDsgXAorCSAgICBCbyA9IFJPTDMyKEFtYTAsIDIwKTsgXAorCSAgICBBc2UxIF49IERlMTsgXAorCSAgICBCdSA9IFJPTDMyKEFzZTEsIDEpOyBcCisJICAgIEVzYTEgPSAgIEJhIF4oKH5CZSkmICBCaSApOyBcCisJICAgIEVzZTEgPSAgIEJlIF4oKH5CaSkmICBCbyApOyBcCisJICAgIEVzaTEgPSAgIEJpIF4oKH5CbykmICBCdSApOyBcCisJICAgIEVzbzEgPSAgIEJvIF4oKH5CdSkmICBCYSApOyBcCisJICAgIEVzdTEgPSAgIEJ1IF4oKH5CYSkmICBCZSApOyBcCitcCisJICAgIEN4ID0gRWJ1MF5FZ3UwXkVrdTBeRW11MF5Fc3UwOyBcCisJICAgIER1MSA9IEViZTFeRWdlMV5Fa2UxXkVtZTFeRXNlMTsgXAorCSAgICBEYTAgPSBDeF5ST0wzMihEdTEsIDEpOyBcCisJICAgIEN6ID0gRWJ1MV5FZ3UxXkVrdTFeRW11MV5Fc3UxOyBcCisJICAgIER1MCA9IEViZTBeRWdlMF5Fa2UwXkVtZTBeRXNlMDsgXAorCSAgICBEYTEgPSBDel5EdTA7IFwKK1wKKwkgICAgQ3cgPSBFYmkwXkVnaTBeRWtpMF5FbWkwXkVzaTA7IFwKKwkgICAgRG8wID0gQ3deUk9MMzIoQ3osIDEpOyBcCisJICAgIEN5ID0gRWJpMV5FZ2kxXkVraTFeRW1pMV5Fc2kxOyBcCisJICAgIERvMSA9IEN5XkN4OyBcCitcCisJICAgIEN4ID0gRWJhMF5FZ2EwXkVrYTBeRW1hMF5Fc2EwOyBcCisJICAgIERlMCA9IEN4XlJPTDMyKEN5LCAxKTsgXAorCSAgICBDeiA9IEViYTFeRWdhMV5Fa2ExXkVtYTFeRXNhMTsgXAorCSAgICBEZTEgPSBDel5DdzsgXAorXAorCSAgICBDeSA9IEVibzFeRWdvMV5Fa28xXkVtbzFeRXNvMTsgXAorCSAgICBEaTAgPSBEdTBeUk9MMzIoQ3ksIDEpOyBcCisJICAgIEN3ID0gRWJvMF5FZ28wXkVrbzBeRW1vMF5Fc28wOyBcCisJICAgIERpMSA9IER1MV5DdzsgXAorXAorCSAgICBEdTAgPSBDd15ST0wzMihDeiwgMSk7IFwKKwkgICAgRHUxID0gQ3leQ3g7IFwKK1wKKwkgICAgRWJhMCBePSBEYTA7IFwKKwkgICAgQmEgPSBFYmEwOyBcCisJICAgIEVnZTAgXj0gRGUwOyBcCisJICAgIEJlID0gUk9MMzIoRWdlMCwgMjIpOyBcCisJICAgIEVraTEgXj0gRGkxOyBcCisJICAgIEJpID0gUk9MMzIoRWtpMSwgMjIpOyBcCisJICAgIEVtbzEgXj0gRG8xOyBcCisJICAgIEJvID0gUk9MMzIoRW1vMSwgMTEpOyBcCisJICAgIEVzdTAgXj0gRHUwOyBcCisJICAgIEJ1ID0gUk9MMzIoRXN1MCwgNyk7IFwKKwkgICAgQWJhMCA9ICAgQmEgXigofkJlKSYgIEJpICk7IFwKKwkgICAgQWJhMCBePSAqKHBSb3VuZENvbnN0YW50cysrKTsgXAorCSAgICBBYmUwID0gICBCZSBeKCh+QmkpJiAgQm8gKTsgXAorCSAgICBBYmkwID0gICBCaSBeKCh+Qm8pJiAgQnUgKTsgXAorCSAgICBBYm8wID0gICBCbyBeKCh+QnUpJiAgQmEgKTsgXAorCSAgICBBYnUwID0gICBCdSBeKCh+QmEpJiAgQmUgKTsgXAorXAorCSAgICBFYm8wIF49IERvMDsgXAorCSAgICBCYSA9IFJPTDMyKEVibzAsIDE0KTsgXAorCSAgICBFZ3UwIF49IER1MDsgXAorCSAgICBCZSA9IFJPTDMyKEVndTAsIDEwKTsgXAorCSAgICBFa2ExIF49IERhMTsgXAorCSAgICBCaSA9IFJPTDMyKEVrYTEsIDIpOyBcCisJICAgIEVtZTEgXj0gRGUxOyBcCisJICAgIEJvID0gUk9MMzIoRW1lMSwgMjMpOyBcCisJICAgIEVzaTEgXj0gRGkxOyBcCisJICAgIEJ1ID0gUk9MMzIoRXNpMSwgMzEpOyBcCisJICAgIEFnYTAgPSAgIEJhIF4oKH5CZSkmICBCaSApOyBcCisJICAgIEFnZTAgPSAgIEJlIF4oKH5CaSkmICBCbyApOyBcCisJICAgIEFnaTAgPSAgIEJpIF4oKH5CbykmICBCdSApOyBcCisJICAgIEFnbzAgPSAgIEJvIF4oKH5CdSkmICBCYSApOyBcCisJICAgIEFndTAgPSAgIEJ1IF4oKH5CYSkmICBCZSApOyBcCitcCisJICAgIEViZTEgXj0gRGUxOyBcCisJICAgIEJhID0gUk9MMzIoRWJlMSwgMSk7IFwKKwkgICAgRWdpMCBePSBEaTA7IFwKKwkgICAgQmUgPSBST0wzMihFZ2kwLCAzKTsgXAorCSAgICBFa28xIF49IERvMTsgXAorCSAgICBCaSA9IFJPTDMyKEVrbzEsIDEzKTsgXAorCSAgICBFbXUwIF49IER1MDsgXAorCSAgICBCbyA9IFJPTDMyKEVtdTAsIDQpOyBcCisJICAgIEVzYTAgXj0gRGEwOyBcCisJICAgIEJ1ID0gUk9MMzIoRXNhMCwgOSk7IFwKKwkgICAgQWthMCA9ICAgQmEgXigofkJlKSYgIEJpICk7IFwKKwkgICAgQWtlMCA9ICAgQmUgXigofkJpKSYgIEJvICk7IFwKKwkgICAgQWtpMCA9ICAgQmkgXigofkJvKSYgIEJ1ICk7IFwKKwkgICAgQWtvMCA9ICAgQm8gXigofkJ1KSYgIEJhICk7IFwKKwkgICAgQWt1MCA9ICAgQnUgXigofkJhKSYgIEJlICk7IFwKK1wKKwkgICAgRWJ1MSBePSBEdTE7IFwKKwkgICAgQmEgPSBST0wzMihFYnUxLCAxNCk7IFwKKwkgICAgRWdhMCBePSBEYTA7IFwKKwkgICAgQmUgPSBST0wzMihFZ2EwLCAxOCk7IFwKKwkgICAgRWtlMCBePSBEZTA7IFwKKwkgICAgQmkgPSBST0wzMihFa2UwLCA1KTsgXAorCSAgICBFbWkxIF49IERpMTsgXAorCSAgICBCbyA9IFJPTDMyKEVtaTEsIDgpOyBcCisJICAgIEVzbzAgXj0gRG8wOyBcCisJICAgIEJ1ID0gUk9MMzIoRXNvMCwgMjgpOyBcCisJICAgIEFtYTAgPSAgIEJhIF4oKH5CZSkmICBCaSApOyBcCisJICAgIEFtZTAgPSAgIEJlIF4oKH5CaSkmICBCbyApOyBcCisJICAgIEFtaTAgPSAgIEJpIF4oKH5CbykmICBCdSApOyBcCisJICAgIEFtbzAgPSAgIEJvIF4oKH5CdSkmICBCYSApOyBcCisJICAgIEFtdTAgPSAgIEJ1IF4oKH5CYSkmICBCZSApOyBcCitcCisJICAgIEViaTAgXj0gRGkwOyBcCisJICAgIEJhID0gUk9MMzIoRWJpMCwgMzEpOyBcCisJICAgIEVnbzEgXj0gRG8xOyBcCisJICAgIEJlID0gUk9MMzIoRWdvMSwgMjgpOyBcCisJICAgIEVrdTEgXj0gRHUxOyBcCisJICAgIEJpID0gUk9MMzIoRWt1MSwgMjApOyBcCisJICAgIEVtYTEgXj0gRGExOyBcCisJICAgIEJvID0gUk9MMzIoRW1hMSwgMjEpOyBcCisJICAgIEVzZTAgXj0gRGUwOyBcCisJICAgIEJ1ID0gUk9MMzIoRXNlMCwgMSk7IFwKKwkgICAgQXNhMCA9ICAgQmEgXigofkJlKSYgIEJpICk7IFwKKwkgICAgQXNlMCA9ICAgQmUgXigofkJpKSYgIEJvICk7IFwKKwkgICAgQXNpMCA9ICAgQmkgXigofkJvKSYgIEJ1ICk7IFwKKwkgICAgQXNvMCA9ICAgQm8gXigofkJ1KSYgIEJhICk7IFwKKwkgICAgQXN1MCA9ICAgQnUgXigofkJhKSYgIEJlICk7IFwKK1wKKwkgICAgRWJhMSBePSBEYTE7IFwKKwkgICAgQmEgPSBFYmExOyBcCisJICAgIEVnZTEgXj0gRGUxOyBcCisJICAgIEJlID0gUk9MMzIoRWdlMSwgMjIpOyBcCisJICAgIEVraTAgXj0gRGkwOyBcCisJICAgIEJpID0gUk9MMzIoRWtpMCwgMjEpOyBcCisJICAgIEVtbzAgXj0gRG8wOyBcCisJICAgIEJvID0gUk9MMzIoRW1vMCwgMTApOyBcCisJICAgIEVzdTEgXj0gRHUxOyBcCisJICAgIEJ1ID0gUk9MMzIoRXN1MSwgNyk7IFwKKwkgICAgQWJhMSA9ICAgQmEgXigofkJlKSYgIEJpICk7IFwKKwkgICAgQWJhMSBePSAqKHBSb3VuZENvbnN0YW50cysrKTsgXAorCSAgICBBYmUxID0gICBCZSBeKCh+QmkpJiAgQm8gKTsgXAorCSAgICBBYmkxID0gICBCaSBeKCh+Qm8pJiAgQnUgKTsgXAorCSAgICBBYm8xID0gICBCbyBeKCh+QnUpJiAgQmEgKTsgXAorCSAgICBBYnUxID0gICBCdSBeKCh+QmEpJiAgQmUgKTsgXAorXAorCSAgICBFYm8xIF49IERvMTsgXAorCSAgICBCYSA9IFJPTDMyKEVibzEsIDE0KTsgXAorCSAgICBFZ3UxIF49IER1MTsgXAorCSAgICBCZSA9IFJPTDMyKEVndTEsIDEwKTsgXAorCSAgICBFa2EwIF49IERhMDsgXAorCSAgICBCaSA9IFJPTDMyKEVrYTAsIDEpOyBcCisJICAgIEVtZTAgXj0gRGUwOyBcCisJICAgIEJvID0gUk9MMzIoRW1lMCwgMjIpOyBcCisJICAgIEVzaTAgXj0gRGkwOyBcCisJICAgIEJ1ID0gUk9MMzIoRXNpMCwgMzApOyBcCisJICAgIEFnYTEgPSAgIEJhIF4oKH5CZSkmICBCaSApOyBcCisJICAgIEFnZTEgPSAgIEJlIF4oKH5CaSkmICBCbyApOyBcCisJICAgIEFnaTEgPSAgIEJpIF4oKH5CbykmICBCdSApOyBcCisJICAgIEFnbzEgPSAgIEJvIF4oKH5CdSkmICBCYSApOyBcCisJICAgIEFndTEgPSAgIEJ1IF4oKH5CYSkmICBCZSApOyBcCitcCisJICAgIEViZTAgXj0gRGUwOyBcCisJICAgIEJhID0gRWJlMDsgXAorCSAgICBFZ2kxIF49IERpMTsgXAorCSAgICBCZSA9IFJPTDMyKEVnaTEsIDMpOyBcCisJICAgIEVrbzAgXj0gRG8wOyBcCisJICAgIEJpID0gUk9MMzIoRWtvMCwgMTIpOyBcCisJICAgIEVtdTEgXj0gRHUxOyBcCisJICAgIEJvID0gUk9MMzIoRW11MSwgNCk7IFwKKwkgICAgRXNhMSBePSBEYTE7IFwKKwkgICAgQnUgPSBST0wzMihFc2ExLCA5KTsgXAorCSAgICBBa2ExID0gICBCYSBeKCh+QmUpJiAgQmkgKTsgXAorCSAgICBBa2UxID0gICBCZSBeKCh+QmkpJiAgQm8gKTsgXAorCSAgICBBa2kxID0gICBCaSBeKCh+Qm8pJiAgQnUgKTsgXAorCSAgICBBa28xID0gICBCbyBeKCh+QnUpJiAgQmEgKTsgXAorCSAgICBBa3UxID0gICBCdSBeKCh+QmEpJiAgQmUgKTsgXAorXAorCSAgICBFYnUwIF49IER1MDsgXAorCSAgICBCYSA9IFJPTDMyKEVidTAsIDEzKTsgXAorCSAgICBFZ2ExIF49IERhMTsgXAorCSAgICBCZSA9IFJPTDMyKEVnYTEsIDE4KTsgXAorCSAgICBFa2UxIF49IERlMTsgXAorCSAgICBCaSA9IFJPTDMyKEVrZTEsIDUpOyBcCisJICAgIEVtaTAgXj0gRGkwOyBcCisJICAgIEJvID0gUk9MMzIoRW1pMCwgNyk7IFwKKwkgICAgRXNvMSBePSBEbzE7IFwKKwkgICAgQnUgPSBST0wzMihFc28xLCAyOCk7IFwKKwkgICAgQW1hMSA9ICAgQmEgXigofkJlKSYgIEJpICk7IFwKKwkgICAgQW1lMSA9ICAgQmUgXigofkJpKSYgIEJvICk7IFwKKwkgICAgQW1pMSA9ICAgQmkgXigofkJvKSYgIEJ1ICk7IFwKKwkgICAgQW1vMSA9ICAgQm8gXigofkJ1KSYgIEJhICk7IFwKKwkgICAgQW11MSA9ICAgQnUgXigofkJhKSYgIEJlICk7IFwKK1wKKwkgICAgRWJpMSBePSBEaTE7IFwKKwkgICAgQmEgPSBST0wzMihFYmkxLCAzMSk7IFwKKwkgICAgRWdvMCBePSBEbzA7IFwKKwkgICAgQmUgPSBST0wzMihFZ28wLCAyNyk7IFwKKwkgICAgRWt1MCBePSBEdTA7IFwKKwkgICAgQmkgPSBST0wzMihFa3UwLCAxOSk7IFwKKwkgICAgRW1hMCBePSBEYTA7IFwKKwkgICAgQm8gPSBST0wzMihFbWEwLCAyMCk7IFwKKwkgICAgRXNlMSBePSBEZTE7IFwKKwkgICAgQnUgPSBST0wzMihFc2UxLCAxKTsgXAorCSAgICBBc2ExID0gICBCYSBeKCh+QmUpJiAgQmkgKTsgXAorCSAgICBBc2UxID0gICBCZSBeKCh+QmkpJiAgQm8gKTsgXAorCSAgICBBc2kxID0gICBCaSBeKCh+Qm8pJiAgQnUgKTsgXAorCSAgICBBc28xID0gICBCbyBeKCh+QnUpJiAgQmEgKTsgXAorCSAgICBBc3UxID0gICBCdSBeKCh+QmEpJiAgQmUgKTsgXAorICAgIH0gXAorICAgIGNvcHlUb1N0YXRlKHN0YXRlLCBBKSBcCit9CisKKyNkZWZpbmUgY29weUZyb21TdGF0ZShYLCBzdGF0ZSkgXAorICAgIFgjI2JhMCA9IHN0YXRlWyAwXTsgXAorICAgIFgjI2JhMSA9IHN0YXRlWyAxXTsgXAorICAgIFgjI2JlMCA9IHN0YXRlWyAyXTsgXAorICAgIFgjI2JlMSA9IHN0YXRlWyAzXTsgXAorICAgIFgjI2JpMCA9IHN0YXRlWyA0XTsgXAorICAgIFgjI2JpMSA9IHN0YXRlWyA1XTsgXAorICAgIFgjI2JvMCA9IHN0YXRlWyA2XTsgXAorICAgIFgjI2JvMSA9IHN0YXRlWyA3XTsgXAorICAgIFgjI2J1MCA9IHN0YXRlWyA4XTsgXAorICAgIFgjI2J1MSA9IHN0YXRlWyA5XTsgXAorICAgIFgjI2dhMCA9IHN0YXRlWzEwXTsgXAorICAgIFgjI2dhMSA9IHN0YXRlWzExXTsgXAorICAgIFgjI2dlMCA9IHN0YXRlWzEyXTsgXAorICAgIFgjI2dlMSA9IHN0YXRlWzEzXTsgXAorICAgIFgjI2dpMCA9IHN0YXRlWzE0XTsgXAorICAgIFgjI2dpMSA9IHN0YXRlWzE1XTsgXAorICAgIFgjI2dvMCA9IHN0YXRlWzE2XTsgXAorICAgIFgjI2dvMSA9IHN0YXRlWzE3XTsgXAorICAgIFgjI2d1MCA9IHN0YXRlWzE4XTsgXAorICAgIFgjI2d1MSA9IHN0YXRlWzE5XTsgXAorICAgIFgjI2thMCA9IHN0YXRlWzIwXTsgXAorICAgIFgjI2thMSA9IHN0YXRlWzIxXTsgXAorICAgIFgjI2tlMCA9IHN0YXRlWzIyXTsgXAorICAgIFgjI2tlMSA9IHN0YXRlWzIzXTsgXAorICAgIFgjI2tpMCA9IHN0YXRlWzI0XTsgXAorICAgIFgjI2tpMSA9IHN0YXRlWzI1XTsgXAorICAgIFgjI2tvMCA9IHN0YXRlWzI2XTsgXAorICAgIFgjI2tvMSA9IHN0YXRlWzI3XTsgXAorICAgIFgjI2t1MCA9IHN0YXRlWzI4XTsgXAorICAgIFgjI2t1MSA9IHN0YXRlWzI5XTsgXAorICAgIFgjI21hMCA9IHN0YXRlWzMwXTsgXAorICAgIFgjI21hMSA9IHN0YXRlWzMxXTsgXAorICAgIFgjI21lMCA9IHN0YXRlWzMyXTsgXAorICAgIFgjI21lMSA9IHN0YXRlWzMzXTsgXAorICAgIFgjI21pMCA9IHN0YXRlWzM0XTsgXAorICAgIFgjI21pMSA9IHN0YXRlWzM1XTsgXAorICAgIFgjI21vMCA9IHN0YXRlWzM2XTsgXAorICAgIFgjI21vMSA9IHN0YXRlWzM3XTsgXAorICAgIFgjI211MCA9IHN0YXRlWzM4XTsgXAorICAgIFgjI211MSA9IHN0YXRlWzM5XTsgXAorICAgIFgjI3NhMCA9IHN0YXRlWzQwXTsgXAorICAgIFgjI3NhMSA9IHN0YXRlWzQxXTsgXAorICAgIFgjI3NlMCA9IHN0YXRlWzQyXTsgXAorICAgIFgjI3NlMSA9IHN0YXRlWzQzXTsgXAorICAgIFgjI3NpMCA9IHN0YXRlWzQ0XTsgXAorICAgIFgjI3NpMSA9IHN0YXRlWzQ1XTsgXAorICAgIFgjI3NvMCA9IHN0YXRlWzQ2XTsgXAorICAgIFgjI3NvMSA9IHN0YXRlWzQ3XTsgXAorICAgIFgjI3N1MCA9IHN0YXRlWzQ4XTsgXAorICAgIFgjI3N1MSA9IHN0YXRlWzQ5XTsgXAorCisjZGVmaW5lIGNvcHlUb1N0YXRlKHN0YXRlLCBYKSBcCisgICAgc3RhdGVbIDBdID0gWCMjYmEwOyBcCisgICAgc3RhdGVbIDFdID0gWCMjYmExOyBcCisgICAgc3RhdGVbIDJdID0gWCMjYmUwOyBcCisgICAgc3RhdGVbIDNdID0gWCMjYmUxOyBcCisgICAgc3RhdGVbIDRdID0gWCMjYmkwOyBcCisgICAgc3RhdGVbIDVdID0gWCMjYmkxOyBcCisgICAgc3RhdGVbIDZdID0gWCMjYm8wOyBcCisgICAgc3RhdGVbIDddID0gWCMjYm8xOyBcCisgICAgc3RhdGVbIDhdID0gWCMjYnUwOyBcCisgICAgc3RhdGVbIDldID0gWCMjYnUxOyBcCisgICAgc3RhdGVbMTBdID0gWCMjZ2EwOyBcCisgICAgc3RhdGVbMTFdID0gWCMjZ2ExOyBcCisgICAgc3RhdGVbMTJdID0gWCMjZ2UwOyBcCisgICAgc3RhdGVbMTNdID0gWCMjZ2UxOyBcCisgICAgc3RhdGVbMTRdID0gWCMjZ2kwOyBcCisgICAgc3RhdGVbMTVdID0gWCMjZ2kxOyBcCisgICAgc3RhdGVbMTZdID0gWCMjZ28wOyBcCisgICAgc3RhdGVbMTddID0gWCMjZ28xOyBcCisgICAgc3RhdGVbMThdID0gWCMjZ3UwOyBcCisgICAgc3RhdGVbMTldID0gWCMjZ3UxOyBcCisgICAgc3RhdGVbMjBdID0gWCMja2EwOyBcCisgICAgc3RhdGVbMjFdID0gWCMja2ExOyBcCisgICAgc3RhdGVbMjJdID0gWCMja2UwOyBcCisgICAgc3RhdGVbMjNdID0gWCMja2UxOyBcCisgICAgc3RhdGVbMjRdID0gWCMja2kwOyBcCisgICAgc3RhdGVbMjVdID0gWCMja2kxOyBcCisgICAgc3RhdGVbMjZdID0gWCMja28wOyBcCisgICAgc3RhdGVbMjddID0gWCMja28xOyBcCisgICAgc3RhdGVbMjhdID0gWCMja3UwOyBcCisgICAgc3RhdGVbMjldID0gWCMja3UxOyBcCisgICAgc3RhdGVbMzBdID0gWCMjbWEwOyBcCisgICAgc3RhdGVbMzFdID0gWCMjbWExOyBcCisgICAgc3RhdGVbMzJdID0gWCMjbWUwOyBcCisgICAgc3RhdGVbMzNdID0gWCMjbWUxOyBcCisgICAgc3RhdGVbMzRdID0gWCMjbWkwOyBcCisgICAgc3RhdGVbMzVdID0gWCMjbWkxOyBcCisgICAgc3RhdGVbMzZdID0gWCMjbW8wOyBcCisgICAgc3RhdGVbMzddID0gWCMjbW8xOyBcCisgICAgc3RhdGVbMzhdID0gWCMjbXUwOyBcCisgICAgc3RhdGVbMzldID0gWCMjbXUxOyBcCisgICAgc3RhdGVbNDBdID0gWCMjc2EwOyBcCisgICAgc3RhdGVbNDFdID0gWCMjc2ExOyBcCisgICAgc3RhdGVbNDJdID0gWCMjc2UwOyBcCisgICAgc3RhdGVbNDNdID0gWCMjc2UxOyBcCisgICAgc3RhdGVbNDRdID0gWCMjc2kwOyBcCisgICAgc3RhdGVbNDVdID0gWCMjc2kxOyBcCisgICAgc3RhdGVbNDZdID0gWCMjc28wOyBcCisgICAgc3RhdGVbNDddID0gWCMjc28xOyBcCisgICAgc3RhdGVbNDhdID0gWCMjc3UwOyBcCisgICAgc3RhdGVbNDldID0gWCMjc3UxOyBcCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC0zMi1zMS5tYWNyb3MgYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtMzItczEubWFjcm9zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3M2Q2MWQKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtMzItczEubWFjcm9zCkBAIC0wLDAgKzEsMTE4NyBAQAorLyoKK0NvZGUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgS2VjY2FrVG9vbHMhCisKK1RoZSBLZWNjYWsgc3BvbmdlIGZ1bmN0aW9uLCBkZXNpZ25lZCBieSBHdWlkbyBCZXJ0b25pLCBKb2FuIERhZW1lbiwKK01pY2hhw6tsIFBlZXRlcnMgYW5kIEdpbGxlcyBWYW4gQXNzY2hlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgZmVlZGJhY2sgb3IKK3F1ZXN0aW9ucywgcGxlYXNlIHJlZmVyIHRvIG91ciB3ZWJzaXRlOiBodHRwOi8va2VjY2FrLm5vZWtlb24ub3JnLworCitJbXBsZW1lbnRhdGlvbiBieSB0aGUgZGVzaWduZXJzLAoraGVyZWJ5IGRlbm90ZWQgYXMgInRoZSBpbXBsZW1lbnRlciIuCisKK1RvIHRoZSBleHRlbnQgcG9zc2libGUgdW5kZXIgbGF3LCB0aGUgaW1wbGVtZW50ZXIgaGFzIHdhaXZlZCBhbGwgY29weXJpZ2h0CithbmQgcmVsYXRlZCBvciBuZWlnaGJvcmluZyByaWdodHMgdG8gdGhlIHNvdXJjZSBjb2RlIGluIHRoaXMgZmlsZS4KK2h0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKyovCisKKyNkZWZpbmUgZGVjbGFyZUFCQ0RFIFwKKyAgICBVSU5UMzIgQWJhMCwgQWJlMCwgQWJpMCwgQWJvMCwgQWJ1MDsgXAorICAgIFVJTlQzMiBBYmExLCBBYmUxLCBBYmkxLCBBYm8xLCBBYnUxOyBcCisgICAgVUlOVDMyIEFnYTAsIEFnZTAsIEFnaTAsIEFnbzAsIEFndTA7IFwKKyAgICBVSU5UMzIgQWdhMSwgQWdlMSwgQWdpMSwgQWdvMSwgQWd1MTsgXAorICAgIFVJTlQzMiBBa2EwLCBBa2UwLCBBa2kwLCBBa28wLCBBa3UwOyBcCisgICAgVUlOVDMyIEFrYTEsIEFrZTEsIEFraTEsIEFrbzEsIEFrdTE7IFwKKyAgICBVSU5UMzIgQW1hMCwgQW1lMCwgQW1pMCwgQW1vMCwgQW11MDsgXAorICAgIFVJTlQzMiBBbWExLCBBbWUxLCBBbWkxLCBBbW8xLCBBbXUxOyBcCisgICAgVUlOVDMyIEFzYTAsIEFzZTAsIEFzaTAsIEFzbzAsIEFzdTA7IFwKKyAgICBVSU5UMzIgQXNhMSwgQXNlMSwgQXNpMSwgQXNvMSwgQXN1MTsgXAorICAgIFVJTlQzMiBCYmEwLCBCYmUwLCBCYmkwLCBCYm8wLCBCYnUwOyBcCisgICAgVUlOVDMyIEJiYTEsIEJiZTEsIEJiaTEsIEJibzEsIEJidTE7IFwKKyAgICBVSU5UMzIgQmdhMCwgQmdlMCwgQmdpMCwgQmdvMCwgQmd1MDsgXAorICAgIFVJTlQzMiBCZ2ExLCBCZ2UxLCBCZ2kxLCBCZ28xLCBCZ3UxOyBcCisgICAgVUlOVDMyIEJrYTAsIEJrZTAsIEJraTAsIEJrbzAsIEJrdTA7IFwKKyAgICBVSU5UMzIgQmthMSwgQmtlMSwgQmtpMSwgQmtvMSwgQmt1MTsgXAorICAgIFVJTlQzMiBCbWEwLCBCbWUwLCBCbWkwLCBCbW8wLCBCbXUwOyBcCisgICAgVUlOVDMyIEJtYTEsIEJtZTEsIEJtaTEsIEJtbzEsIEJtdTE7IFwKKyAgICBVSU5UMzIgQnNhMCwgQnNlMCwgQnNpMCwgQnNvMCwgQnN1MDsgXAorICAgIFVJTlQzMiBCc2ExLCBCc2UxLCBCc2kxLCBCc28xLCBCc3UxOyBcCisgICAgVUlOVDMyIENhMCwgQ2UwLCBDaTAsIENvMCwgQ3UwOyBcCisgICAgVUlOVDMyIENhMSwgQ2UxLCBDaTEsIENvMSwgQ3UxOyBcCisgICAgVUlOVDMyIERhMCwgRGUwLCBEaTAsIERvMCwgRHUwOyBcCisgICAgVUlOVDMyIERhMSwgRGUxLCBEaTEsIERvMSwgRHUxOyBcCisgICAgVUlOVDMyIEViYTAsIEViZTAsIEViaTAsIEVibzAsIEVidTA7IFwKKyAgICBVSU5UMzIgRWJhMSwgRWJlMSwgRWJpMSwgRWJvMSwgRWJ1MTsgXAorICAgIFVJTlQzMiBFZ2EwLCBFZ2UwLCBFZ2kwLCBFZ28wLCBFZ3UwOyBcCisgICAgVUlOVDMyIEVnYTEsIEVnZTEsIEVnaTEsIEVnbzEsIEVndTE7IFwKKyAgICBVSU5UMzIgRWthMCwgRWtlMCwgRWtpMCwgRWtvMCwgRWt1MDsgXAorICAgIFVJTlQzMiBFa2ExLCBFa2UxLCBFa2kxLCBFa28xLCBFa3UxOyBcCisgICAgVUlOVDMyIEVtYTAsIEVtZTAsIEVtaTAsIEVtbzAsIEVtdTA7IFwKKyAgICBVSU5UMzIgRW1hMSwgRW1lMSwgRW1pMSwgRW1vMSwgRW11MTsgXAorICAgIFVJTlQzMiBFc2EwLCBFc2UwLCBFc2kwLCBFc28wLCBFc3UwOyBcCisgICAgVUlOVDMyIEVzYTEsIEVzZTEsIEVzaTEsIEVzbzEsIEVzdTE7IFwKKworI2RlZmluZSBwcmVwYXJlVGhldGEgXAorICAgIENhMCA9IEFiYTBeQWdhMF5Ba2EwXkFtYTBeQXNhMDsgXAorICAgIENhMSA9IEFiYTFeQWdhMV5Ba2ExXkFtYTFeQXNhMTsgXAorICAgIENlMCA9IEFiZTBeQWdlMF5Ba2UwXkFtZTBeQXNlMDsgXAorICAgIENlMSA9IEFiZTFeQWdlMV5Ba2UxXkFtZTFeQXNlMTsgXAorICAgIENpMCA9IEFiaTBeQWdpMF5Ba2kwXkFtaTBeQXNpMDsgXAorICAgIENpMSA9IEFiaTFeQWdpMV5Ba2kxXkFtaTFeQXNpMTsgXAorICAgIENvMCA9IEFibzBeQWdvMF5Ba28wXkFtbzBeQXNvMDsgXAorICAgIENvMSA9IEFibzFeQWdvMV5Ba28xXkFtbzFeQXNvMTsgXAorICAgIEN1MCA9IEFidTBeQWd1MF5Ba3UwXkFtdTBeQXN1MDsgXAorICAgIEN1MSA9IEFidTFeQWd1MV5Ba3UxXkFtdTFeQXN1MTsgXAorCisjaWZkZWYgVXNlQmViaWdva2ltaXNhCisvKiAgLS0tIENvZGUgZm9yIHJvdW5kLCB3aXRoIHByZXBhcmUtdGhldGEgKGxhbmUgY29tcGxlbWVudGluZyBwYXR0ZXJuICdiZWJpZ29raW1pc2EnKSAqLworLyogIC0tLSB1c2luZyBmYWN0b3IgMiBpbnRlcmxlYXZpbmcsIDY0LWJpdCBsYW5lcyBtYXBwZWQgdG8gMzItYml0IHdvcmRzICovCisjZGVmaW5lIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGksIEEsIEUpIFwKKyAgICBEYTAgPSBDdTBeUk9MMzIoQ2UxLCAxKTsgXAorICAgIERhMSA9IEN1MV5DZTA7IFwKKyAgICBEZTAgPSBDYTBeUk9MMzIoQ2kxLCAxKTsgXAorICAgIERlMSA9IENhMV5DaTA7IFwKKyAgICBEaTAgPSBDZTBeUk9MMzIoQ28xLCAxKTsgXAorICAgIERpMSA9IENlMV5DbzA7IFwKKyAgICBEbzAgPSBDaTBeUk9MMzIoQ3UxLCAxKTsgXAorICAgIERvMSA9IENpMV5DdTA7IFwKKyAgICBEdTAgPSBDbzBeUk9MMzIoQ2ExLCAxKTsgXAorICAgIER1MSA9IENvMV5DYTA7IFwKK1wKKyAgICBBIyNiYTAgXj0gRGEwOyBcCisgICAgQmJhMCA9IEEjI2JhMDsgXAorICAgIEEjI2dlMCBePSBEZTA7IFwKKyAgICBCYmUwID0gUk9MMzIoQSMjZ2UwLCAyMik7IFwKKyAgICBBIyNraTEgXj0gRGkxOyBcCisgICAgQmJpMCA9IFJPTDMyKEEjI2tpMSwgMjIpOyBcCisgICAgQSMjbW8xIF49IERvMTsgXAorICAgIEJibzAgPSBST0wzMihBIyNtbzEsIDExKTsgXAorICAgIEEjI3N1MCBePSBEdTA7IFwKKyAgICBCYnUwID0gUk9MMzIoQSMjc3UwLCA3KTsgXAorICAgIEUjI2JhMCA9ICAgQmJhMCBeKCAgQmJlMCB8ICBCYmkwICk7IFwKKyAgICBFIyNiYTAgXj0gS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c19pbnQyXzBbaV07IFwKKyAgICBDYTAgPSBFIyNiYTA7IFwKKyAgICBFIyNiZTAgPSAgIEJiZTAgXigofkJiaTApfCAgQmJvMCApOyBcCisgICAgQ2UwID0gRSMjYmUwOyBcCisgICAgRSMjYmkwID0gICBCYmkwIF4oICBCYm8wICYgIEJidTAgKTsgXAorICAgIENpMCA9IEUjI2JpMDsgXAorICAgIEUjI2JvMCA9ICAgQmJvMCBeKCAgQmJ1MCB8ICBCYmEwICk7IFwKKyAgICBDbzAgPSBFIyNibzA7IFwKKyAgICBFIyNidTAgPSAgIEJidTAgXiggIEJiYTAgJiAgQmJlMCApOyBcCisgICAgQ3UwID0gRSMjYnUwOyBcCitcCisgICAgQSMjYmExIF49IERhMTsgXAorICAgIEJiYTEgPSBBIyNiYTE7IFwKKyAgICBBIyNnZTEgXj0gRGUxOyBcCisgICAgQmJlMSA9IFJPTDMyKEEjI2dlMSwgMjIpOyBcCisgICAgQSMja2kwIF49IERpMDsgXAorICAgIEJiaTEgPSBST0wzMihBIyNraTAsIDIxKTsgXAorICAgIEEjI21vMCBePSBEbzA7IFwKKyAgICBCYm8xID0gUk9MMzIoQSMjbW8wLCAxMCk7IFwKKyAgICBBIyNzdTEgXj0gRHUxOyBcCisgICAgQmJ1MSA9IFJPTDMyKEEjI3N1MSwgNyk7IFwKKyAgICBFIyNiYTEgPSAgIEJiYTEgXiggIEJiZTEgfCAgQmJpMSApOyBcCisgICAgRSMjYmExIF49IEtlY2Nha0YxNjAwUm91bmRDb25zdGFudHNfaW50Ml8xW2ldOyBcCisgICAgQ2ExID0gRSMjYmExOyBcCisgICAgRSMjYmUxID0gICBCYmUxIF4oKH5CYmkxKXwgIEJibzEgKTsgXAorICAgIENlMSA9IEUjI2JlMTsgXAorICAgIEUjI2JpMSA9ICAgQmJpMSBeKCAgQmJvMSAmICBCYnUxICk7IFwKKyAgICBDaTEgPSBFIyNiaTE7IFwKKyAgICBFIyNibzEgPSAgIEJibzEgXiggIEJidTEgfCAgQmJhMSApOyBcCisgICAgQ28xID0gRSMjYm8xOyBcCisgICAgRSMjYnUxID0gICBCYnUxIF4oICBCYmExICYgIEJiZTEgKTsgXAorICAgIEN1MSA9IEUjI2J1MTsgXAorXAorICAgIEEjI2JvMCBePSBEbzA7IFwKKyAgICBCZ2EwID0gUk9MMzIoQSMjYm8wLCAxNCk7IFwKKyAgICBBIyNndTAgXj0gRHUwOyBcCisgICAgQmdlMCA9IFJPTDMyKEEjI2d1MCwgMTApOyBcCisgICAgQSMja2ExIF49IERhMTsgXAorICAgIEJnaTAgPSBST0wzMihBIyNrYTEsIDIpOyBcCisgICAgQSMjbWUxIF49IERlMTsgXAorICAgIEJnbzAgPSBST0wzMihBIyNtZTEsIDIzKTsgXAorICAgIEEjI3NpMSBePSBEaTE7IFwKKyAgICBCZ3UwID0gUk9MMzIoQSMjc2kxLCAzMSk7IFwKKyAgICBFIyNnYTAgPSAgIEJnYTAgXiggIEJnZTAgfCAgQmdpMCApOyBcCisgICAgQ2EwIF49IEUjI2dhMDsgXAorICAgIEUjI2dlMCA9ICAgQmdlMCBeKCAgQmdpMCAmICBCZ28wICk7IFwKKyAgICBDZTAgXj0gRSMjZ2UwOyBcCisgICAgRSMjZ2kwID0gICBCZ2kwIF4oICBCZ28wIHwofkJndTApKTsgXAorICAgIENpMCBePSBFIyNnaTA7IFwKKyAgICBFIyNnbzAgPSAgIEJnbzAgXiggIEJndTAgfCAgQmdhMCApOyBcCisgICAgQ28wIF49IEUjI2dvMDsgXAorICAgIEUjI2d1MCA9ICAgQmd1MCBeKCAgQmdhMCAmICBCZ2UwICk7IFwKKyAgICBDdTAgXj0gRSMjZ3UwOyBcCitcCisgICAgQSMjYm8xIF49IERvMTsgXAorICAgIEJnYTEgPSBST0wzMihBIyNibzEsIDE0KTsgXAorICAgIEEjI2d1MSBePSBEdTE7IFwKKyAgICBCZ2UxID0gUk9MMzIoQSMjZ3UxLCAxMCk7IFwKKyAgICBBIyNrYTAgXj0gRGEwOyBcCisgICAgQmdpMSA9IFJPTDMyKEEjI2thMCwgMSk7IFwKKyAgICBBIyNtZTAgXj0gRGUwOyBcCisgICAgQmdvMSA9IFJPTDMyKEEjI21lMCwgMjIpOyBcCisgICAgQSMjc2kwIF49IERpMDsgXAorICAgIEJndTEgPSBST0wzMihBIyNzaTAsIDMwKTsgXAorICAgIEUjI2dhMSA9ICAgQmdhMSBeKCAgQmdlMSB8ICBCZ2kxICk7IFwKKyAgICBDYTEgXj0gRSMjZ2ExOyBcCisgICAgRSMjZ2UxID0gICBCZ2UxIF4oICBCZ2kxICYgIEJnbzEgKTsgXAorICAgIENlMSBePSBFIyNnZTE7IFwKKyAgICBFIyNnaTEgPSAgIEJnaTEgXiggIEJnbzEgfCh+Qmd1MSkpOyBcCisgICAgQ2kxIF49IEUjI2dpMTsgXAorICAgIEUjI2dvMSA9ICAgQmdvMSBeKCAgQmd1MSB8ICBCZ2ExICk7IFwKKyAgICBDbzEgXj0gRSMjZ28xOyBcCisgICAgRSMjZ3UxID0gICBCZ3UxIF4oICBCZ2ExICYgIEJnZTEgKTsgXAorICAgIEN1MSBePSBFIyNndTE7IFwKK1wKKyAgICBBIyNiZTEgXj0gRGUxOyBcCisgICAgQmthMCA9IFJPTDMyKEEjI2JlMSwgMSk7IFwKKyAgICBBIyNnaTAgXj0gRGkwOyBcCisgICAgQmtlMCA9IFJPTDMyKEEjI2dpMCwgMyk7IFwKKyAgICBBIyNrbzEgXj0gRG8xOyBcCisgICAgQmtpMCA9IFJPTDMyKEEjI2tvMSwgMTMpOyBcCisgICAgQSMjbXUwIF49IER1MDsgXAorICAgIEJrbzAgPSBST0wzMihBIyNtdTAsIDQpOyBcCisgICAgQSMjc2EwIF49IERhMDsgXAorICAgIEJrdTAgPSBST0wzMihBIyNzYTAsIDkpOyBcCisgICAgRSMja2EwID0gICBCa2EwIF4oICBCa2UwIHwgIEJraTAgKTsgXAorICAgIENhMCBePSBFIyNrYTA7IFwKKyAgICBFIyNrZTAgPSAgIEJrZTAgXiggIEJraTAgJiAgQmtvMCApOyBcCisgICAgQ2UwIF49IEUjI2tlMDsgXAorICAgIEUjI2tpMCA9ICAgQmtpMCBeKCh+QmtvMCkmICBCa3UwICk7IFwKKyAgICBDaTAgXj0gRSMja2kwOyBcCisgICAgRSMja28wID0gKH5Ca28wKV4oICBCa3UwIHwgIEJrYTAgKTsgXAorICAgIENvMCBePSBFIyNrbzA7IFwKKyAgICBFIyNrdTAgPSAgIEJrdTAgXiggIEJrYTAgJiAgQmtlMCApOyBcCisgICAgQ3UwIF49IEUjI2t1MDsgXAorXAorICAgIEEjI2JlMCBePSBEZTA7IFwKKyAgICBCa2ExID0gQSMjYmUwOyBcCisgICAgQSMjZ2kxIF49IERpMTsgXAorICAgIEJrZTEgPSBST0wzMihBIyNnaTEsIDMpOyBcCisgICAgQSMja28wIF49IERvMDsgXAorICAgIEJraTEgPSBST0wzMihBIyNrbzAsIDEyKTsgXAorICAgIEEjI211MSBePSBEdTE7IFwKKyAgICBCa28xID0gUk9MMzIoQSMjbXUxLCA0KTsgXAorICAgIEEjI3NhMSBePSBEYTE7IFwKKyAgICBCa3UxID0gUk9MMzIoQSMjc2ExLCA5KTsgXAorICAgIEUjI2thMSA9ICAgQmthMSBeKCAgQmtlMSB8ICBCa2kxICk7IFwKKyAgICBDYTEgXj0gRSMja2ExOyBcCisgICAgRSMja2UxID0gICBCa2UxIF4oICBCa2kxICYgIEJrbzEgKTsgXAorICAgIENlMSBePSBFIyNrZTE7IFwKKyAgICBFIyNraTEgPSAgIEJraTEgXigofkJrbzEpJiAgQmt1MSApOyBcCisgICAgQ2kxIF49IEUjI2tpMTsgXAorICAgIEUjI2tvMSA9ICh+QmtvMSleKCAgQmt1MSB8ICBCa2ExICk7IFwKKyAgICBDbzEgXj0gRSMja28xOyBcCisgICAgRSMja3UxID0gICBCa3UxIF4oICBCa2ExICYgIEJrZTEgKTsgXAorICAgIEN1MSBePSBFIyNrdTE7IFwKK1wKKyAgICBBIyNidTEgXj0gRHUxOyBcCisgICAgQm1hMCA9IFJPTDMyKEEjI2J1MSwgMTQpOyBcCisgICAgQSMjZ2EwIF49IERhMDsgXAorICAgIEJtZTAgPSBST0wzMihBIyNnYTAsIDE4KTsgXAorICAgIEEjI2tlMCBePSBEZTA7IFwKKyAgICBCbWkwID0gUk9MMzIoQSMja2UwLCA1KTsgXAorICAgIEEjI21pMSBePSBEaTE7IFwKKyAgICBCbW8wID0gUk9MMzIoQSMjbWkxLCA4KTsgXAorICAgIEEjI3NvMCBePSBEbzA7IFwKKyAgICBCbXUwID0gUk9MMzIoQSMjc28wLCAyOCk7IFwKKyAgICBFIyNtYTAgPSAgIEJtYTAgXiggIEJtZTAgJiAgQm1pMCApOyBcCisgICAgQ2EwIF49IEUjI21hMDsgXAorICAgIEUjI21lMCA9ICAgQm1lMCBeKCAgQm1pMCB8ICBCbW8wICk7IFwKKyAgICBDZTAgXj0gRSMjbWUwOyBcCisgICAgRSMjbWkwID0gICBCbWkwIF4oKH5CbW8wKXwgIEJtdTAgKTsgXAorICAgIENpMCBePSBFIyNtaTA7IFwKKyAgICBFIyNtbzAgPSAofkJtbzApXiggIEJtdTAgJiAgQm1hMCApOyBcCisgICAgQ28wIF49IEUjI21vMDsgXAorICAgIEUjI211MCA9ICAgQm11MCBeKCAgQm1hMCB8ICBCbWUwICk7IFwKKyAgICBDdTAgXj0gRSMjbXUwOyBcCitcCisgICAgQSMjYnUwIF49IER1MDsgXAorICAgIEJtYTEgPSBST0wzMihBIyNidTAsIDEzKTsgXAorICAgIEEjI2dhMSBePSBEYTE7IFwKKyAgICBCbWUxID0gUk9MMzIoQSMjZ2ExLCAxOCk7IFwKKyAgICBBIyNrZTEgXj0gRGUxOyBcCisgICAgQm1pMSA9IFJPTDMyKEEjI2tlMSwgNSk7IFwKKyAgICBBIyNtaTAgXj0gRGkwOyBcCisgICAgQm1vMSA9IFJPTDMyKEEjI21pMCwgNyk7IFwKKyAgICBBIyNzbzEgXj0gRG8xOyBcCisgICAgQm11MSA9IFJPTDMyKEEjI3NvMSwgMjgpOyBcCisgICAgRSMjbWExID0gICBCbWExIF4oICBCbWUxICYgIEJtaTEgKTsgXAorICAgIENhMSBePSBFIyNtYTE7IFwKKyAgICBFIyNtZTEgPSAgIEJtZTEgXiggIEJtaTEgfCAgQm1vMSApOyBcCisgICAgQ2UxIF49IEUjI21lMTsgXAorICAgIEUjI21pMSA9ICAgQm1pMSBeKCh+Qm1vMSl8ICBCbXUxICk7IFwKKyAgICBDaTEgXj0gRSMjbWkxOyBcCisgICAgRSMjbW8xID0gKH5CbW8xKV4oICBCbXUxICYgIEJtYTEgKTsgXAorICAgIENvMSBePSBFIyNtbzE7IFwKKyAgICBFIyNtdTEgPSAgIEJtdTEgXiggIEJtYTEgfCAgQm1lMSApOyBcCisgICAgQ3UxIF49IEUjI211MTsgXAorXAorICAgIEEjI2JpMCBePSBEaTA7IFwKKyAgICBCc2EwID0gUk9MMzIoQSMjYmkwLCAzMSk7IFwKKyAgICBBIyNnbzEgXj0gRG8xOyBcCisgICAgQnNlMCA9IFJPTDMyKEEjI2dvMSwgMjgpOyBcCisgICAgQSMja3UxIF49IER1MTsgXAorICAgIEJzaTAgPSBST0wzMihBIyNrdTEsIDIwKTsgXAorICAgIEEjI21hMSBePSBEYTE7IFwKKyAgICBCc28wID0gUk9MMzIoQSMjbWExLCAyMSk7IFwKKyAgICBBIyNzZTAgXj0gRGUwOyBcCisgICAgQnN1MCA9IFJPTDMyKEEjI3NlMCwgMSk7IFwKKyAgICBFIyNzYTAgPSAgIEJzYTAgXigofkJzZTApJiAgQnNpMCApOyBcCisgICAgQ2EwIF49IEUjI3NhMDsgXAorICAgIEUjI3NlMCA9ICh+QnNlMCleKCAgQnNpMCB8ICBCc28wICk7IFwKKyAgICBDZTAgXj0gRSMjc2UwOyBcCisgICAgRSMjc2kwID0gICBCc2kwIF4oICBCc28wICYgIEJzdTAgKTsgXAorICAgIENpMCBePSBFIyNzaTA7IFwKKyAgICBFIyNzbzAgPSAgIEJzbzAgXiggIEJzdTAgfCAgQnNhMCApOyBcCisgICAgQ28wIF49IEUjI3NvMDsgXAorICAgIEUjI3N1MCA9ICAgQnN1MCBeKCAgQnNhMCAmICBCc2UwICk7IFwKKyAgICBDdTAgXj0gRSMjc3UwOyBcCitcCisgICAgQSMjYmkxIF49IERpMTsgXAorICAgIEJzYTEgPSBST0wzMihBIyNiaTEsIDMxKTsgXAorICAgIEEjI2dvMCBePSBEbzA7IFwKKyAgICBCc2UxID0gUk9MMzIoQSMjZ28wLCAyNyk7IFwKKyAgICBBIyNrdTAgXj0gRHUwOyBcCisgICAgQnNpMSA9IFJPTDMyKEEjI2t1MCwgMTkpOyBcCisgICAgQSMjbWEwIF49IERhMDsgXAorICAgIEJzbzEgPSBST0wzMihBIyNtYTAsIDIwKTsgXAorICAgIEEjI3NlMSBePSBEZTE7IFwKKyAgICBCc3UxID0gUk9MMzIoQSMjc2UxLCAxKTsgXAorICAgIEUjI3NhMSA9ICAgQnNhMSBeKCh+QnNlMSkmICBCc2kxICk7IFwKKyAgICBDYTEgXj0gRSMjc2ExOyBcCisgICAgRSMjc2UxID0gKH5Cc2UxKV4oICBCc2kxIHwgIEJzbzEgKTsgXAorICAgIENlMSBePSBFIyNzZTE7IFwKKyAgICBFIyNzaTEgPSAgIEJzaTEgXiggIEJzbzEgJiAgQnN1MSApOyBcCisgICAgQ2kxIF49IEUjI3NpMTsgXAorICAgIEUjI3NvMSA9ICAgQnNvMSBeKCAgQnN1MSB8ICBCc2ExICk7IFwKKyAgICBDbzEgXj0gRSMjc28xOyBcCisgICAgRSMjc3UxID0gICBCc3UxIF4oICBCc2ExICYgIEJzZTEgKTsgXAorICAgIEN1MSBePSBFIyNzdTE7IFwKK1wKKworLyogIC0tLSBDb2RlIGZvciByb3VuZCAobGFuZSBjb21wbGVtZW50aW5nIHBhdHRlcm4gJ2JlYmlnb2tpbWlzYScpICovCisvKiAgLS0tIHVzaW5nIGZhY3RvciAyIGludGVybGVhdmluZywgNjQtYml0IGxhbmVzIG1hcHBlZCB0byAzMi1iaXQgd29yZHMgKi8KKyNkZWZpbmUgdGhldGFSaG9QaUNoaUlvdGEoaSwgQSwgRSkgXAorICAgIERhMCA9IEN1MF5ST0wzMihDZTEsIDEpOyBcCisgICAgRGExID0gQ3UxXkNlMDsgXAorICAgIERlMCA9IENhMF5ST0wzMihDaTEsIDEpOyBcCisgICAgRGUxID0gQ2ExXkNpMDsgXAorICAgIERpMCA9IENlMF5ST0wzMihDbzEsIDEpOyBcCisgICAgRGkxID0gQ2UxXkNvMDsgXAorICAgIERvMCA9IENpMF5ST0wzMihDdTEsIDEpOyBcCisgICAgRG8xID0gQ2kxXkN1MDsgXAorICAgIER1MCA9IENvMF5ST0wzMihDYTEsIDEpOyBcCisgICAgRHUxID0gQ28xXkNhMDsgXAorXAorICAgIEEjI2JhMCBePSBEYTA7IFwKKyAgICBCYmEwID0gQSMjYmEwOyBcCisgICAgQSMjZ2UwIF49IERlMDsgXAorICAgIEJiZTAgPSBST0wzMihBIyNnZTAsIDIyKTsgXAorICAgIEEjI2tpMSBePSBEaTE7IFwKKyAgICBCYmkwID0gUk9MMzIoQSMja2kxLCAyMik7IFwKKyAgICBBIyNtbzEgXj0gRG8xOyBcCisgICAgQmJvMCA9IFJPTDMyKEEjI21vMSwgMTEpOyBcCisgICAgQSMjc3UwIF49IER1MDsgXAorICAgIEJidTAgPSBST0wzMihBIyNzdTAsIDcpOyBcCisgICAgRSMjYmEwID0gICBCYmEwIF4oICBCYmUwIHwgIEJiaTAgKTsgXAorICAgIEUjI2JhMCBePSBLZWNjYWtGMTYwMFJvdW5kQ29uc3RhbnRzX2ludDJfMFtpXTsgXAorICAgIEUjI2JlMCA9ICAgQmJlMCBeKCh+QmJpMCl8ICBCYm8wICk7IFwKKyAgICBFIyNiaTAgPSAgIEJiaTAgXiggIEJibzAgJiAgQmJ1MCApOyBcCisgICAgRSMjYm8wID0gICBCYm8wIF4oICBCYnUwIHwgIEJiYTAgKTsgXAorICAgIEUjI2J1MCA9ICAgQmJ1MCBeKCAgQmJhMCAmICBCYmUwICk7IFwKK1wKKyAgICBBIyNiYTEgXj0gRGExOyBcCisgICAgQmJhMSA9IEEjI2JhMTsgXAorICAgIEEjI2dlMSBePSBEZTE7IFwKKyAgICBCYmUxID0gUk9MMzIoQSMjZ2UxLCAyMik7IFwKKyAgICBBIyNraTAgXj0gRGkwOyBcCisgICAgQmJpMSA9IFJPTDMyKEEjI2tpMCwgMjEpOyBcCisgICAgQSMjbW8wIF49IERvMDsgXAorICAgIEJibzEgPSBST0wzMihBIyNtbzAsIDEwKTsgXAorICAgIEEjI3N1MSBePSBEdTE7IFwKKyAgICBCYnUxID0gUk9MMzIoQSMjc3UxLCA3KTsgXAorICAgIEUjI2JhMSA9ICAgQmJhMSBeKCAgQmJlMSB8ICBCYmkxICk7IFwKKyAgICBFIyNiYTEgXj0gS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c19pbnQyXzFbaV07IFwKKyAgICBFIyNiZTEgPSAgIEJiZTEgXigofkJiaTEpfCAgQmJvMSApOyBcCisgICAgRSMjYmkxID0gICBCYmkxIF4oICBCYm8xICYgIEJidTEgKTsgXAorICAgIEUjI2JvMSA9ICAgQmJvMSBeKCAgQmJ1MSB8ICBCYmExICk7IFwKKyAgICBFIyNidTEgPSAgIEJidTEgXiggIEJiYTEgJiAgQmJlMSApOyBcCitcCisgICAgQSMjYm8wIF49IERvMDsgXAorICAgIEJnYTAgPSBST0wzMihBIyNibzAsIDE0KTsgXAorICAgIEEjI2d1MCBePSBEdTA7IFwKKyAgICBCZ2UwID0gUk9MMzIoQSMjZ3UwLCAxMCk7IFwKKyAgICBBIyNrYTEgXj0gRGExOyBcCisgICAgQmdpMCA9IFJPTDMyKEEjI2thMSwgMik7IFwKKyAgICBBIyNtZTEgXj0gRGUxOyBcCisgICAgQmdvMCA9IFJPTDMyKEEjI21lMSwgMjMpOyBcCisgICAgQSMjc2kxIF49IERpMTsgXAorICAgIEJndTAgPSBST0wzMihBIyNzaTEsIDMxKTsgXAorICAgIEUjI2dhMCA9ICAgQmdhMCBeKCAgQmdlMCB8ICBCZ2kwICk7IFwKKyAgICBFIyNnZTAgPSAgIEJnZTAgXiggIEJnaTAgJiAgQmdvMCApOyBcCisgICAgRSMjZ2kwID0gICBCZ2kwIF4oICBCZ28wIHwofkJndTApKTsgXAorICAgIEUjI2dvMCA9ICAgQmdvMCBeKCAgQmd1MCB8ICBCZ2EwICk7IFwKKyAgICBFIyNndTAgPSAgIEJndTAgXiggIEJnYTAgJiAgQmdlMCApOyBcCitcCisgICAgQSMjYm8xIF49IERvMTsgXAorICAgIEJnYTEgPSBST0wzMihBIyNibzEsIDE0KTsgXAorICAgIEEjI2d1MSBePSBEdTE7IFwKKyAgICBCZ2UxID0gUk9MMzIoQSMjZ3UxLCAxMCk7IFwKKyAgICBBIyNrYTAgXj0gRGEwOyBcCisgICAgQmdpMSA9IFJPTDMyKEEjI2thMCwgMSk7IFwKKyAgICBBIyNtZTAgXj0gRGUwOyBcCisgICAgQmdvMSA9IFJPTDMyKEEjI21lMCwgMjIpOyBcCisgICAgQSMjc2kwIF49IERpMDsgXAorICAgIEJndTEgPSBST0wzMihBIyNzaTAsIDMwKTsgXAorICAgIEUjI2dhMSA9ICAgQmdhMSBeKCAgQmdlMSB8ICBCZ2kxICk7IFwKKyAgICBFIyNnZTEgPSAgIEJnZTEgXiggIEJnaTEgJiAgQmdvMSApOyBcCisgICAgRSMjZ2kxID0gICBCZ2kxIF4oICBCZ28xIHwofkJndTEpKTsgXAorICAgIEUjI2dvMSA9ICAgQmdvMSBeKCAgQmd1MSB8ICBCZ2ExICk7IFwKKyAgICBFIyNndTEgPSAgIEJndTEgXiggIEJnYTEgJiAgQmdlMSApOyBcCitcCisgICAgQSMjYmUxIF49IERlMTsgXAorICAgIEJrYTAgPSBST0wzMihBIyNiZTEsIDEpOyBcCisgICAgQSMjZ2kwIF49IERpMDsgXAorICAgIEJrZTAgPSBST0wzMihBIyNnaTAsIDMpOyBcCisgICAgQSMja28xIF49IERvMTsgXAorICAgIEJraTAgPSBST0wzMihBIyNrbzEsIDEzKTsgXAorICAgIEEjI211MCBePSBEdTA7IFwKKyAgICBCa28wID0gUk9MMzIoQSMjbXUwLCA0KTsgXAorICAgIEEjI3NhMCBePSBEYTA7IFwKKyAgICBCa3UwID0gUk9MMzIoQSMjc2EwLCA5KTsgXAorICAgIEUjI2thMCA9ICAgQmthMCBeKCAgQmtlMCB8ICBCa2kwICk7IFwKKyAgICBFIyNrZTAgPSAgIEJrZTAgXiggIEJraTAgJiAgQmtvMCApOyBcCisgICAgRSMja2kwID0gICBCa2kwIF4oKH5Ca28wKSYgIEJrdTAgKTsgXAorICAgIEUjI2tvMCA9ICh+QmtvMCleKCAgQmt1MCB8ICBCa2EwICk7IFwKKyAgICBFIyNrdTAgPSAgIEJrdTAgXiggIEJrYTAgJiAgQmtlMCApOyBcCitcCisgICAgQSMjYmUwIF49IERlMDsgXAorICAgIEJrYTEgPSBBIyNiZTA7IFwKKyAgICBBIyNnaTEgXj0gRGkxOyBcCisgICAgQmtlMSA9IFJPTDMyKEEjI2dpMSwgMyk7IFwKKyAgICBBIyNrbzAgXj0gRG8wOyBcCisgICAgQmtpMSA9IFJPTDMyKEEjI2tvMCwgMTIpOyBcCisgICAgQSMjbXUxIF49IER1MTsgXAorICAgIEJrbzEgPSBST0wzMihBIyNtdTEsIDQpOyBcCisgICAgQSMjc2ExIF49IERhMTsgXAorICAgIEJrdTEgPSBST0wzMihBIyNzYTEsIDkpOyBcCisgICAgRSMja2ExID0gICBCa2ExIF4oICBCa2UxIHwgIEJraTEgKTsgXAorICAgIEUjI2tlMSA9ICAgQmtlMSBeKCAgQmtpMSAmICBCa28xICk7IFwKKyAgICBFIyNraTEgPSAgIEJraTEgXigofkJrbzEpJiAgQmt1MSApOyBcCisgICAgRSMja28xID0gKH5Ca28xKV4oICBCa3UxIHwgIEJrYTEgKTsgXAorICAgIEUjI2t1MSA9ICAgQmt1MSBeKCAgQmthMSAmICBCa2UxICk7IFwKK1wKKyAgICBBIyNidTEgXj0gRHUxOyBcCisgICAgQm1hMCA9IFJPTDMyKEEjI2J1MSwgMTQpOyBcCisgICAgQSMjZ2EwIF49IERhMDsgXAorICAgIEJtZTAgPSBST0wzMihBIyNnYTAsIDE4KTsgXAorICAgIEEjI2tlMCBePSBEZTA7IFwKKyAgICBCbWkwID0gUk9MMzIoQSMja2UwLCA1KTsgXAorICAgIEEjI21pMSBePSBEaTE7IFwKKyAgICBCbW8wID0gUk9MMzIoQSMjbWkxLCA4KTsgXAorICAgIEEjI3NvMCBePSBEbzA7IFwKKyAgICBCbXUwID0gUk9MMzIoQSMjc28wLCAyOCk7IFwKKyAgICBFIyNtYTAgPSAgIEJtYTAgXiggIEJtZTAgJiAgQm1pMCApOyBcCisgICAgRSMjbWUwID0gICBCbWUwIF4oICBCbWkwIHwgIEJtbzAgKTsgXAorICAgIEUjI21pMCA9ICAgQm1pMCBeKCh+Qm1vMCl8ICBCbXUwICk7IFwKKyAgICBFIyNtbzAgPSAofkJtbzApXiggIEJtdTAgJiAgQm1hMCApOyBcCisgICAgRSMjbXUwID0gICBCbXUwIF4oICBCbWEwIHwgIEJtZTAgKTsgXAorXAorICAgIEEjI2J1MCBePSBEdTA7IFwKKyAgICBCbWExID0gUk9MMzIoQSMjYnUwLCAxMyk7IFwKKyAgICBBIyNnYTEgXj0gRGExOyBcCisgICAgQm1lMSA9IFJPTDMyKEEjI2dhMSwgMTgpOyBcCisgICAgQSMja2UxIF49IERlMTsgXAorICAgIEJtaTEgPSBST0wzMihBIyNrZTEsIDUpOyBcCisgICAgQSMjbWkwIF49IERpMDsgXAorICAgIEJtbzEgPSBST0wzMihBIyNtaTAsIDcpOyBcCisgICAgQSMjc28xIF49IERvMTsgXAorICAgIEJtdTEgPSBST0wzMihBIyNzbzEsIDI4KTsgXAorICAgIEUjI21hMSA9ICAgQm1hMSBeKCAgQm1lMSAmICBCbWkxICk7IFwKKyAgICBFIyNtZTEgPSAgIEJtZTEgXiggIEJtaTEgfCAgQm1vMSApOyBcCisgICAgRSMjbWkxID0gICBCbWkxIF4oKH5CbW8xKXwgIEJtdTEgKTsgXAorICAgIEUjI21vMSA9ICh+Qm1vMSleKCAgQm11MSAmICBCbWExICk7IFwKKyAgICBFIyNtdTEgPSAgIEJtdTEgXiggIEJtYTEgfCAgQm1lMSApOyBcCitcCisgICAgQSMjYmkwIF49IERpMDsgXAorICAgIEJzYTAgPSBST0wzMihBIyNiaTAsIDMxKTsgXAorICAgIEEjI2dvMSBePSBEbzE7IFwKKyAgICBCc2UwID0gUk9MMzIoQSMjZ28xLCAyOCk7IFwKKyAgICBBIyNrdTEgXj0gRHUxOyBcCisgICAgQnNpMCA9IFJPTDMyKEEjI2t1MSwgMjApOyBcCisgICAgQSMjbWExIF49IERhMTsgXAorICAgIEJzbzAgPSBST0wzMihBIyNtYTEsIDIxKTsgXAorICAgIEEjI3NlMCBePSBEZTA7IFwKKyAgICBCc3UwID0gUk9MMzIoQSMjc2UwLCAxKTsgXAorICAgIEUjI3NhMCA9ICAgQnNhMCBeKCh+QnNlMCkmICBCc2kwICk7IFwKKyAgICBFIyNzZTAgPSAofkJzZTApXiggIEJzaTAgfCAgQnNvMCApOyBcCisgICAgRSMjc2kwID0gICBCc2kwIF4oICBCc28wICYgIEJzdTAgKTsgXAorICAgIEUjI3NvMCA9ICAgQnNvMCBeKCAgQnN1MCB8ICBCc2EwICk7IFwKKyAgICBFIyNzdTAgPSAgIEJzdTAgXiggIEJzYTAgJiAgQnNlMCApOyBcCitcCisgICAgQSMjYmkxIF49IERpMTsgXAorICAgIEJzYTEgPSBST0wzMihBIyNiaTEsIDMxKTsgXAorICAgIEEjI2dvMCBePSBEbzA7IFwKKyAgICBCc2UxID0gUk9MMzIoQSMjZ28wLCAyNyk7IFwKKyAgICBBIyNrdTAgXj0gRHUwOyBcCisgICAgQnNpMSA9IFJPTDMyKEEjI2t1MCwgMTkpOyBcCisgICAgQSMjbWEwIF49IERhMDsgXAorICAgIEJzbzEgPSBST0wzMihBIyNtYTAsIDIwKTsgXAorICAgIEEjI3NlMSBePSBEZTE7IFwKKyAgICBCc3UxID0gUk9MMzIoQSMjc2UxLCAxKTsgXAorICAgIEUjI3NhMSA9ICAgQnNhMSBeKCh+QnNlMSkmICBCc2kxICk7IFwKKyAgICBFIyNzZTEgPSAofkJzZTEpXiggIEJzaTEgfCAgQnNvMSApOyBcCisgICAgRSMjc2kxID0gICBCc2kxIF4oICBCc28xICYgIEJzdTEgKTsgXAorICAgIEUjI3NvMSA9ICAgQnNvMSBeKCAgQnN1MSB8ICBCc2ExICk7IFwKKyAgICBFIyNzdTEgPSAgIEJzdTEgXiggIEJzYTEgJiAgQnNlMSApOyBcCitcCisKKyNlbHNlIC8qICBVc2VCZWJpZ29raW1pc2EgKi8KKy8qICAtLS0gQ29kZSBmb3Igcm91bmQsIHdpdGggcHJlcGFyZS10aGV0YSAqLworLyogIC0tLSB1c2luZyBmYWN0b3IgMiBpbnRlcmxlYXZpbmcsIDY0LWJpdCBsYW5lcyBtYXBwZWQgdG8gMzItYml0IHdvcmRzICovCisjZGVmaW5lIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGksIEEsIEUpIFwKKyAgICBEYTAgPSBDdTBeUk9MMzIoQ2UxLCAxKTsgXAorICAgIERhMSA9IEN1MV5DZTA7IFwKKyAgICBEZTAgPSBDYTBeUk9MMzIoQ2kxLCAxKTsgXAorICAgIERlMSA9IENhMV5DaTA7IFwKKyAgICBEaTAgPSBDZTBeUk9MMzIoQ28xLCAxKTsgXAorICAgIERpMSA9IENlMV5DbzA7IFwKKyAgICBEbzAgPSBDaTBeUk9MMzIoQ3UxLCAxKTsgXAorICAgIERvMSA9IENpMV5DdTA7IFwKKyAgICBEdTAgPSBDbzBeUk9MMzIoQ2ExLCAxKTsgXAorICAgIER1MSA9IENvMV5DYTA7IFwKK1wKKyAgICBBIyNiYTAgXj0gRGEwOyBcCisgICAgQmJhMCA9IEEjI2JhMDsgXAorICAgIEEjI2dlMCBePSBEZTA7IFwKKyAgICBCYmUwID0gUk9MMzIoQSMjZ2UwLCAyMik7IFwKKyAgICBBIyNraTEgXj0gRGkxOyBcCisgICAgQmJpMCA9IFJPTDMyKEEjI2tpMSwgMjIpOyBcCisgICAgQSMjbW8xIF49IERvMTsgXAorICAgIEJibzAgPSBST0wzMihBIyNtbzEsIDExKTsgXAorICAgIEEjI3N1MCBePSBEdTA7IFwKKyAgICBCYnUwID0gUk9MMzIoQSMjc3UwLCA3KTsgXAorICAgIEUjI2JhMCA9ICAgQmJhMCBeKCh+QmJlMCkmICBCYmkwICk7IFwKKyAgICBFIyNiYTAgXj0gS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c19pbnQyXzBbaV07IFwKKyAgICBDYTAgPSBFIyNiYTA7IFwKKyAgICBFIyNiZTAgPSAgIEJiZTAgXigofkJiaTApJiAgQmJvMCApOyBcCisgICAgQ2UwID0gRSMjYmUwOyBcCisgICAgRSMjYmkwID0gICBCYmkwIF4oKH5CYm8wKSYgIEJidTAgKTsgXAorICAgIENpMCA9IEUjI2JpMDsgXAorICAgIEUjI2JvMCA9ICAgQmJvMCBeKCh+QmJ1MCkmICBCYmEwICk7IFwKKyAgICBDbzAgPSBFIyNibzA7IFwKKyAgICBFIyNidTAgPSAgIEJidTAgXigofkJiYTApJiAgQmJlMCApOyBcCisgICAgQ3UwID0gRSMjYnUwOyBcCitcCisgICAgQSMjYmExIF49IERhMTsgXAorICAgIEJiYTEgPSBBIyNiYTE7IFwKKyAgICBBIyNnZTEgXj0gRGUxOyBcCisgICAgQmJlMSA9IFJPTDMyKEEjI2dlMSwgMjIpOyBcCisgICAgQSMja2kwIF49IERpMDsgXAorICAgIEJiaTEgPSBST0wzMihBIyNraTAsIDIxKTsgXAorICAgIEEjI21vMCBePSBEbzA7IFwKKyAgICBCYm8xID0gUk9MMzIoQSMjbW8wLCAxMCk7IFwKKyAgICBBIyNzdTEgXj0gRHUxOyBcCisgICAgQmJ1MSA9IFJPTDMyKEEjI3N1MSwgNyk7IFwKKyAgICBFIyNiYTEgPSAgIEJiYTEgXigofkJiZTEpJiAgQmJpMSApOyBcCisgICAgRSMjYmExIF49IEtlY2Nha0YxNjAwUm91bmRDb25zdGFudHNfaW50Ml8xW2ldOyBcCisgICAgQ2ExID0gRSMjYmExOyBcCisgICAgRSMjYmUxID0gICBCYmUxIF4oKH5CYmkxKSYgIEJibzEgKTsgXAorICAgIENlMSA9IEUjI2JlMTsgXAorICAgIEUjI2JpMSA9ICAgQmJpMSBeKCh+QmJvMSkmICBCYnUxICk7IFwKKyAgICBDaTEgPSBFIyNiaTE7IFwKKyAgICBFIyNibzEgPSAgIEJibzEgXigofkJidTEpJiAgQmJhMSApOyBcCisgICAgQ28xID0gRSMjYm8xOyBcCisgICAgRSMjYnUxID0gICBCYnUxIF4oKH5CYmExKSYgIEJiZTEgKTsgXAorICAgIEN1MSA9IEUjI2J1MTsgXAorXAorICAgIEEjI2JvMCBePSBEbzA7IFwKKyAgICBCZ2EwID0gUk9MMzIoQSMjYm8wLCAxNCk7IFwKKyAgICBBIyNndTAgXj0gRHUwOyBcCisgICAgQmdlMCA9IFJPTDMyKEEjI2d1MCwgMTApOyBcCisgICAgQSMja2ExIF49IERhMTsgXAorICAgIEJnaTAgPSBST0wzMihBIyNrYTEsIDIpOyBcCisgICAgQSMjbWUxIF49IERlMTsgXAorICAgIEJnbzAgPSBST0wzMihBIyNtZTEsIDIzKTsgXAorICAgIEEjI3NpMSBePSBEaTE7IFwKKyAgICBCZ3UwID0gUk9MMzIoQSMjc2kxLCAzMSk7IFwKKyAgICBFIyNnYTAgPSAgIEJnYTAgXigofkJnZTApJiAgQmdpMCApOyBcCisgICAgQ2EwIF49IEUjI2dhMDsgXAorICAgIEUjI2dlMCA9ICAgQmdlMCBeKCh+QmdpMCkmICBCZ28wICk7IFwKKyAgICBDZTAgXj0gRSMjZ2UwOyBcCisgICAgRSMjZ2kwID0gICBCZ2kwIF4oKH5CZ28wKSYgIEJndTAgKTsgXAorICAgIENpMCBePSBFIyNnaTA7IFwKKyAgICBFIyNnbzAgPSAgIEJnbzAgXigofkJndTApJiAgQmdhMCApOyBcCisgICAgQ28wIF49IEUjI2dvMDsgXAorICAgIEUjI2d1MCA9ICAgQmd1MCBeKCh+QmdhMCkmICBCZ2UwICk7IFwKKyAgICBDdTAgXj0gRSMjZ3UwOyBcCitcCisgICAgQSMjYm8xIF49IERvMTsgXAorICAgIEJnYTEgPSBST0wzMihBIyNibzEsIDE0KTsgXAorICAgIEEjI2d1MSBePSBEdTE7IFwKKyAgICBCZ2UxID0gUk9MMzIoQSMjZ3UxLCAxMCk7IFwKKyAgICBBIyNrYTAgXj0gRGEwOyBcCisgICAgQmdpMSA9IFJPTDMyKEEjI2thMCwgMSk7IFwKKyAgICBBIyNtZTAgXj0gRGUwOyBcCisgICAgQmdvMSA9IFJPTDMyKEEjI21lMCwgMjIpOyBcCisgICAgQSMjc2kwIF49IERpMDsgXAorICAgIEJndTEgPSBST0wzMihBIyNzaTAsIDMwKTsgXAorICAgIEUjI2dhMSA9ICAgQmdhMSBeKCh+QmdlMSkmICBCZ2kxICk7IFwKKyAgICBDYTEgXj0gRSMjZ2ExOyBcCisgICAgRSMjZ2UxID0gICBCZ2UxIF4oKH5CZ2kxKSYgIEJnbzEgKTsgXAorICAgIENlMSBePSBFIyNnZTE7IFwKKyAgICBFIyNnaTEgPSAgIEJnaTEgXigofkJnbzEpJiAgQmd1MSApOyBcCisgICAgQ2kxIF49IEUjI2dpMTsgXAorICAgIEUjI2dvMSA9ICAgQmdvMSBeKCh+Qmd1MSkmICBCZ2ExICk7IFwKKyAgICBDbzEgXj0gRSMjZ28xOyBcCisgICAgRSMjZ3UxID0gICBCZ3UxIF4oKH5CZ2ExKSYgIEJnZTEgKTsgXAorICAgIEN1MSBePSBFIyNndTE7IFwKK1wKKyAgICBBIyNiZTEgXj0gRGUxOyBcCisgICAgQmthMCA9IFJPTDMyKEEjI2JlMSwgMSk7IFwKKyAgICBBIyNnaTAgXj0gRGkwOyBcCisgICAgQmtlMCA9IFJPTDMyKEEjI2dpMCwgMyk7IFwKKyAgICBBIyNrbzEgXj0gRG8xOyBcCisgICAgQmtpMCA9IFJPTDMyKEEjI2tvMSwgMTMpOyBcCisgICAgQSMjbXUwIF49IER1MDsgXAorICAgIEJrbzAgPSBST0wzMihBIyNtdTAsIDQpOyBcCisgICAgQSMjc2EwIF49IERhMDsgXAorICAgIEJrdTAgPSBST0wzMihBIyNzYTAsIDkpOyBcCisgICAgRSMja2EwID0gICBCa2EwIF4oKH5Ca2UwKSYgIEJraTAgKTsgXAorICAgIENhMCBePSBFIyNrYTA7IFwKKyAgICBFIyNrZTAgPSAgIEJrZTAgXigofkJraTApJiAgQmtvMCApOyBcCisgICAgQ2UwIF49IEUjI2tlMDsgXAorICAgIEUjI2tpMCA9ICAgQmtpMCBeKCh+QmtvMCkmICBCa3UwICk7IFwKKyAgICBDaTAgXj0gRSMja2kwOyBcCisgICAgRSMja28wID0gICBCa28wIF4oKH5Ca3UwKSYgIEJrYTAgKTsgXAorICAgIENvMCBePSBFIyNrbzA7IFwKKyAgICBFIyNrdTAgPSAgIEJrdTAgXigofkJrYTApJiAgQmtlMCApOyBcCisgICAgQ3UwIF49IEUjI2t1MDsgXAorXAorICAgIEEjI2JlMCBePSBEZTA7IFwKKyAgICBCa2ExID0gQSMjYmUwOyBcCisgICAgQSMjZ2kxIF49IERpMTsgXAorICAgIEJrZTEgPSBST0wzMihBIyNnaTEsIDMpOyBcCisgICAgQSMja28wIF49IERvMDsgXAorICAgIEJraTEgPSBST0wzMihBIyNrbzAsIDEyKTsgXAorICAgIEEjI211MSBePSBEdTE7IFwKKyAgICBCa28xID0gUk9MMzIoQSMjbXUxLCA0KTsgXAorICAgIEEjI3NhMSBePSBEYTE7IFwKKyAgICBCa3UxID0gUk9MMzIoQSMjc2ExLCA5KTsgXAorICAgIEUjI2thMSA9ICAgQmthMSBeKCh+QmtlMSkmICBCa2kxICk7IFwKKyAgICBDYTEgXj0gRSMja2ExOyBcCisgICAgRSMja2UxID0gICBCa2UxIF4oKH5Ca2kxKSYgIEJrbzEgKTsgXAorICAgIENlMSBePSBFIyNrZTE7IFwKKyAgICBFIyNraTEgPSAgIEJraTEgXigofkJrbzEpJiAgQmt1MSApOyBcCisgICAgQ2kxIF49IEUjI2tpMTsgXAorICAgIEUjI2tvMSA9ICAgQmtvMSBeKCh+Qmt1MSkmICBCa2ExICk7IFwKKyAgICBDbzEgXj0gRSMja28xOyBcCisgICAgRSMja3UxID0gICBCa3UxIF4oKH5Ca2ExKSYgIEJrZTEgKTsgXAorICAgIEN1MSBePSBFIyNrdTE7IFwKK1wKKyAgICBBIyNidTEgXj0gRHUxOyBcCisgICAgQm1hMCA9IFJPTDMyKEEjI2J1MSwgMTQpOyBcCisgICAgQSMjZ2EwIF49IERhMDsgXAorICAgIEJtZTAgPSBST0wzMihBIyNnYTAsIDE4KTsgXAorICAgIEEjI2tlMCBePSBEZTA7IFwKKyAgICBCbWkwID0gUk9MMzIoQSMja2UwLCA1KTsgXAorICAgIEEjI21pMSBePSBEaTE7IFwKKyAgICBCbW8wID0gUk9MMzIoQSMjbWkxLCA4KTsgXAorICAgIEEjI3NvMCBePSBEbzA7IFwKKyAgICBCbXUwID0gUk9MMzIoQSMjc28wLCAyOCk7IFwKKyAgICBFIyNtYTAgPSAgIEJtYTAgXigofkJtZTApJiAgQm1pMCApOyBcCisgICAgQ2EwIF49IEUjI21hMDsgXAorICAgIEUjI21lMCA9ICAgQm1lMCBeKCh+Qm1pMCkmICBCbW8wICk7IFwKKyAgICBDZTAgXj0gRSMjbWUwOyBcCisgICAgRSMjbWkwID0gICBCbWkwIF4oKH5CbW8wKSYgIEJtdTAgKTsgXAorICAgIENpMCBePSBFIyNtaTA7IFwKKyAgICBFIyNtbzAgPSAgIEJtbzAgXigofkJtdTApJiAgQm1hMCApOyBcCisgICAgQ28wIF49IEUjI21vMDsgXAorICAgIEUjI211MCA9ICAgQm11MCBeKCh+Qm1hMCkmICBCbWUwICk7IFwKKyAgICBDdTAgXj0gRSMjbXUwOyBcCitcCisgICAgQSMjYnUwIF49IER1MDsgXAorICAgIEJtYTEgPSBST0wzMihBIyNidTAsIDEzKTsgXAorICAgIEEjI2dhMSBePSBEYTE7IFwKKyAgICBCbWUxID0gUk9MMzIoQSMjZ2ExLCAxOCk7IFwKKyAgICBBIyNrZTEgXj0gRGUxOyBcCisgICAgQm1pMSA9IFJPTDMyKEEjI2tlMSwgNSk7IFwKKyAgICBBIyNtaTAgXj0gRGkwOyBcCisgICAgQm1vMSA9IFJPTDMyKEEjI21pMCwgNyk7IFwKKyAgICBBIyNzbzEgXj0gRG8xOyBcCisgICAgQm11MSA9IFJPTDMyKEEjI3NvMSwgMjgpOyBcCisgICAgRSMjbWExID0gICBCbWExIF4oKH5CbWUxKSYgIEJtaTEgKTsgXAorICAgIENhMSBePSBFIyNtYTE7IFwKKyAgICBFIyNtZTEgPSAgIEJtZTEgXigofkJtaTEpJiAgQm1vMSApOyBcCisgICAgQ2UxIF49IEUjI21lMTsgXAorICAgIEUjI21pMSA9ICAgQm1pMSBeKCh+Qm1vMSkmICBCbXUxICk7IFwKKyAgICBDaTEgXj0gRSMjbWkxOyBcCisgICAgRSMjbW8xID0gICBCbW8xIF4oKH5CbXUxKSYgIEJtYTEgKTsgXAorICAgIENvMSBePSBFIyNtbzE7IFwKKyAgICBFIyNtdTEgPSAgIEJtdTEgXigofkJtYTEpJiAgQm1lMSApOyBcCisgICAgQ3UxIF49IEUjI211MTsgXAorXAorICAgIEEjI2JpMCBePSBEaTA7IFwKKyAgICBCc2EwID0gUk9MMzIoQSMjYmkwLCAzMSk7IFwKKyAgICBBIyNnbzEgXj0gRG8xOyBcCisgICAgQnNlMCA9IFJPTDMyKEEjI2dvMSwgMjgpOyBcCisgICAgQSMja3UxIF49IER1MTsgXAorICAgIEJzaTAgPSBST0wzMihBIyNrdTEsIDIwKTsgXAorICAgIEEjI21hMSBePSBEYTE7IFwKKyAgICBCc28wID0gUk9MMzIoQSMjbWExLCAyMSk7IFwKKyAgICBBIyNzZTAgXj0gRGUwOyBcCisgICAgQnN1MCA9IFJPTDMyKEEjI3NlMCwgMSk7IFwKKyAgICBFIyNzYTAgPSAgIEJzYTAgXigofkJzZTApJiAgQnNpMCApOyBcCisgICAgQ2EwIF49IEUjI3NhMDsgXAorICAgIEUjI3NlMCA9ICAgQnNlMCBeKCh+QnNpMCkmICBCc28wICk7IFwKKyAgICBDZTAgXj0gRSMjc2UwOyBcCisgICAgRSMjc2kwID0gICBCc2kwIF4oKH5Cc28wKSYgIEJzdTAgKTsgXAorICAgIENpMCBePSBFIyNzaTA7IFwKKyAgICBFIyNzbzAgPSAgIEJzbzAgXigofkJzdTApJiAgQnNhMCApOyBcCisgICAgQ28wIF49IEUjI3NvMDsgXAorICAgIEUjI3N1MCA9ICAgQnN1MCBeKCh+QnNhMCkmICBCc2UwICk7IFwKKyAgICBDdTAgXj0gRSMjc3UwOyBcCitcCisgICAgQSMjYmkxIF49IERpMTsgXAorICAgIEJzYTEgPSBST0wzMihBIyNiaTEsIDMxKTsgXAorICAgIEEjI2dvMCBePSBEbzA7IFwKKyAgICBCc2UxID0gUk9MMzIoQSMjZ28wLCAyNyk7IFwKKyAgICBBIyNrdTAgXj0gRHUwOyBcCisgICAgQnNpMSA9IFJPTDMyKEEjI2t1MCwgMTkpOyBcCisgICAgQSMjbWEwIF49IERhMDsgXAorICAgIEJzbzEgPSBST0wzMihBIyNtYTAsIDIwKTsgXAorICAgIEEjI3NlMSBePSBEZTE7IFwKKyAgICBCc3UxID0gUk9MMzIoQSMjc2UxLCAxKTsgXAorICAgIEUjI3NhMSA9ICAgQnNhMSBeKCh+QnNlMSkmICBCc2kxICk7IFwKKyAgICBDYTEgXj0gRSMjc2ExOyBcCisgICAgRSMjc2UxID0gICBCc2UxIF4oKH5Cc2kxKSYgIEJzbzEgKTsgXAorICAgIENlMSBePSBFIyNzZTE7IFwKKyAgICBFIyNzaTEgPSAgIEJzaTEgXigofkJzbzEpJiAgQnN1MSApOyBcCisgICAgQ2kxIF49IEUjI3NpMTsgXAorICAgIEUjI3NvMSA9ICAgQnNvMSBeKCh+QnN1MSkmICBCc2ExICk7IFwKKyAgICBDbzEgXj0gRSMjc28xOyBcCisgICAgRSMjc3UxID0gICBCc3UxIF4oKH5Cc2ExKSYgIEJzZTEgKTsgXAorICAgIEN1MSBePSBFIyNzdTE7IFwKK1wKKworLyogIC0tLSBDb2RlIGZvciByb3VuZCAqLworLyogIC0tLSB1c2luZyBmYWN0b3IgMiBpbnRlcmxlYXZpbmcsIDY0LWJpdCBsYW5lcyBtYXBwZWQgdG8gMzItYml0IHdvcmRzICovCisjZGVmaW5lIHRoZXRhUmhvUGlDaGlJb3RhKGksIEEsIEUpIFwKKyAgICBEYTAgPSBDdTBeUk9MMzIoQ2UxLCAxKTsgXAorICAgIERhMSA9IEN1MV5DZTA7IFwKKyAgICBEZTAgPSBDYTBeUk9MMzIoQ2kxLCAxKTsgXAorICAgIERlMSA9IENhMV5DaTA7IFwKKyAgICBEaTAgPSBDZTBeUk9MMzIoQ28xLCAxKTsgXAorICAgIERpMSA9IENlMV5DbzA7IFwKKyAgICBEbzAgPSBDaTBeUk9MMzIoQ3UxLCAxKTsgXAorICAgIERvMSA9IENpMV5DdTA7IFwKKyAgICBEdTAgPSBDbzBeUk9MMzIoQ2ExLCAxKTsgXAorICAgIER1MSA9IENvMV5DYTA7IFwKK1wKKyAgICBBIyNiYTAgXj0gRGEwOyBcCisgICAgQmJhMCA9IEEjI2JhMDsgXAorICAgIEEjI2dlMCBePSBEZTA7IFwKKyAgICBCYmUwID0gUk9MMzIoQSMjZ2UwLCAyMik7IFwKKyAgICBBIyNraTEgXj0gRGkxOyBcCisgICAgQmJpMCA9IFJPTDMyKEEjI2tpMSwgMjIpOyBcCisgICAgQSMjbW8xIF49IERvMTsgXAorICAgIEJibzAgPSBST0wzMihBIyNtbzEsIDExKTsgXAorICAgIEEjI3N1MCBePSBEdTA7IFwKKyAgICBCYnUwID0gUk9MMzIoQSMjc3UwLCA3KTsgXAorICAgIEUjI2JhMCA9ICAgQmJhMCBeKCh+QmJlMCkmICBCYmkwICk7IFwKKyAgICBFIyNiYTAgXj0gS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c19pbnQyXzBbaV07IFwKKyAgICBFIyNiZTAgPSAgIEJiZTAgXigofkJiaTApJiAgQmJvMCApOyBcCisgICAgRSMjYmkwID0gICBCYmkwIF4oKH5CYm8wKSYgIEJidTAgKTsgXAorICAgIEUjI2JvMCA9ICAgQmJvMCBeKCh+QmJ1MCkmICBCYmEwICk7IFwKKyAgICBFIyNidTAgPSAgIEJidTAgXigofkJiYTApJiAgQmJlMCApOyBcCitcCisgICAgQSMjYmExIF49IERhMTsgXAorICAgIEJiYTEgPSBBIyNiYTE7IFwKKyAgICBBIyNnZTEgXj0gRGUxOyBcCisgICAgQmJlMSA9IFJPTDMyKEEjI2dlMSwgMjIpOyBcCisgICAgQSMja2kwIF49IERpMDsgXAorICAgIEJiaTEgPSBST0wzMihBIyNraTAsIDIxKTsgXAorICAgIEEjI21vMCBePSBEbzA7IFwKKyAgICBCYm8xID0gUk9MMzIoQSMjbW8wLCAxMCk7IFwKKyAgICBBIyNzdTEgXj0gRHUxOyBcCisgICAgQmJ1MSA9IFJPTDMyKEEjI3N1MSwgNyk7IFwKKyAgICBFIyNiYTEgPSAgIEJiYTEgXigofkJiZTEpJiAgQmJpMSApOyBcCisgICAgRSMjYmExIF49IEtlY2Nha0YxNjAwUm91bmRDb25zdGFudHNfaW50Ml8xW2ldOyBcCisgICAgRSMjYmUxID0gICBCYmUxIF4oKH5CYmkxKSYgIEJibzEgKTsgXAorICAgIEUjI2JpMSA9ICAgQmJpMSBeKCh+QmJvMSkmICBCYnUxICk7IFwKKyAgICBFIyNibzEgPSAgIEJibzEgXigofkJidTEpJiAgQmJhMSApOyBcCisgICAgRSMjYnUxID0gICBCYnUxIF4oKH5CYmExKSYgIEJiZTEgKTsgXAorXAorICAgIEEjI2JvMCBePSBEbzA7IFwKKyAgICBCZ2EwID0gUk9MMzIoQSMjYm8wLCAxNCk7IFwKKyAgICBBIyNndTAgXj0gRHUwOyBcCisgICAgQmdlMCA9IFJPTDMyKEEjI2d1MCwgMTApOyBcCisgICAgQSMja2ExIF49IERhMTsgXAorICAgIEJnaTAgPSBST0wzMihBIyNrYTEsIDIpOyBcCisgICAgQSMjbWUxIF49IERlMTsgXAorICAgIEJnbzAgPSBST0wzMihBIyNtZTEsIDIzKTsgXAorICAgIEEjI3NpMSBePSBEaTE7IFwKKyAgICBCZ3UwID0gUk9MMzIoQSMjc2kxLCAzMSk7IFwKKyAgICBFIyNnYTAgPSAgIEJnYTAgXigofkJnZTApJiAgQmdpMCApOyBcCisgICAgRSMjZ2UwID0gICBCZ2UwIF4oKH5CZ2kwKSYgIEJnbzAgKTsgXAorICAgIEUjI2dpMCA9ICAgQmdpMCBeKCh+QmdvMCkmICBCZ3UwICk7IFwKKyAgICBFIyNnbzAgPSAgIEJnbzAgXigofkJndTApJiAgQmdhMCApOyBcCisgICAgRSMjZ3UwID0gICBCZ3UwIF4oKH5CZ2EwKSYgIEJnZTAgKTsgXAorXAorICAgIEEjI2JvMSBePSBEbzE7IFwKKyAgICBCZ2ExID0gUk9MMzIoQSMjYm8xLCAxNCk7IFwKKyAgICBBIyNndTEgXj0gRHUxOyBcCisgICAgQmdlMSA9IFJPTDMyKEEjI2d1MSwgMTApOyBcCisgICAgQSMja2EwIF49IERhMDsgXAorICAgIEJnaTEgPSBST0wzMihBIyNrYTAsIDEpOyBcCisgICAgQSMjbWUwIF49IERlMDsgXAorICAgIEJnbzEgPSBST0wzMihBIyNtZTAsIDIyKTsgXAorICAgIEEjI3NpMCBePSBEaTA7IFwKKyAgICBCZ3UxID0gUk9MMzIoQSMjc2kwLCAzMCk7IFwKKyAgICBFIyNnYTEgPSAgIEJnYTEgXigofkJnZTEpJiAgQmdpMSApOyBcCisgICAgRSMjZ2UxID0gICBCZ2UxIF4oKH5CZ2kxKSYgIEJnbzEgKTsgXAorICAgIEUjI2dpMSA9ICAgQmdpMSBeKCh+QmdvMSkmICBCZ3UxICk7IFwKKyAgICBFIyNnbzEgPSAgIEJnbzEgXigofkJndTEpJiAgQmdhMSApOyBcCisgICAgRSMjZ3UxID0gICBCZ3UxIF4oKH5CZ2ExKSYgIEJnZTEgKTsgXAorXAorICAgIEEjI2JlMSBePSBEZTE7IFwKKyAgICBCa2EwID0gUk9MMzIoQSMjYmUxLCAxKTsgXAorICAgIEEjI2dpMCBePSBEaTA7IFwKKyAgICBCa2UwID0gUk9MMzIoQSMjZ2kwLCAzKTsgXAorICAgIEEjI2tvMSBePSBEbzE7IFwKKyAgICBCa2kwID0gUk9MMzIoQSMja28xLCAxMyk7IFwKKyAgICBBIyNtdTAgXj0gRHUwOyBcCisgICAgQmtvMCA9IFJPTDMyKEEjI211MCwgNCk7IFwKKyAgICBBIyNzYTAgXj0gRGEwOyBcCisgICAgQmt1MCA9IFJPTDMyKEEjI3NhMCwgOSk7IFwKKyAgICBFIyNrYTAgPSAgIEJrYTAgXigofkJrZTApJiAgQmtpMCApOyBcCisgICAgRSMja2UwID0gICBCa2UwIF4oKH5Ca2kwKSYgIEJrbzAgKTsgXAorICAgIEUjI2tpMCA9ICAgQmtpMCBeKCh+QmtvMCkmICBCa3UwICk7IFwKKyAgICBFIyNrbzAgPSAgIEJrbzAgXigofkJrdTApJiAgQmthMCApOyBcCisgICAgRSMja3UwID0gICBCa3UwIF4oKH5Ca2EwKSYgIEJrZTAgKTsgXAorXAorICAgIEEjI2JlMCBePSBEZTA7IFwKKyAgICBCa2ExID0gQSMjYmUwOyBcCisgICAgQSMjZ2kxIF49IERpMTsgXAorICAgIEJrZTEgPSBST0wzMihBIyNnaTEsIDMpOyBcCisgICAgQSMja28wIF49IERvMDsgXAorICAgIEJraTEgPSBST0wzMihBIyNrbzAsIDEyKTsgXAorICAgIEEjI211MSBePSBEdTE7IFwKKyAgICBCa28xID0gUk9MMzIoQSMjbXUxLCA0KTsgXAorICAgIEEjI3NhMSBePSBEYTE7IFwKKyAgICBCa3UxID0gUk9MMzIoQSMjc2ExLCA5KTsgXAorICAgIEUjI2thMSA9ICAgQmthMSBeKCh+QmtlMSkmICBCa2kxICk7IFwKKyAgICBFIyNrZTEgPSAgIEJrZTEgXigofkJraTEpJiAgQmtvMSApOyBcCisgICAgRSMja2kxID0gICBCa2kxIF4oKH5Ca28xKSYgIEJrdTEgKTsgXAorICAgIEUjI2tvMSA9ICAgQmtvMSBeKCh+Qmt1MSkmICBCa2ExICk7IFwKKyAgICBFIyNrdTEgPSAgIEJrdTEgXigofkJrYTEpJiAgQmtlMSApOyBcCitcCisgICAgQSMjYnUxIF49IER1MTsgXAorICAgIEJtYTAgPSBST0wzMihBIyNidTEsIDE0KTsgXAorICAgIEEjI2dhMCBePSBEYTA7IFwKKyAgICBCbWUwID0gUk9MMzIoQSMjZ2EwLCAxOCk7IFwKKyAgICBBIyNrZTAgXj0gRGUwOyBcCisgICAgQm1pMCA9IFJPTDMyKEEjI2tlMCwgNSk7IFwKKyAgICBBIyNtaTEgXj0gRGkxOyBcCisgICAgQm1vMCA9IFJPTDMyKEEjI21pMSwgOCk7IFwKKyAgICBBIyNzbzAgXj0gRG8wOyBcCisgICAgQm11MCA9IFJPTDMyKEEjI3NvMCwgMjgpOyBcCisgICAgRSMjbWEwID0gICBCbWEwIF4oKH5CbWUwKSYgIEJtaTAgKTsgXAorICAgIEUjI21lMCA9ICAgQm1lMCBeKCh+Qm1pMCkmICBCbW8wICk7IFwKKyAgICBFIyNtaTAgPSAgIEJtaTAgXigofkJtbzApJiAgQm11MCApOyBcCisgICAgRSMjbW8wID0gICBCbW8wIF4oKH5CbXUwKSYgIEJtYTAgKTsgXAorICAgIEUjI211MCA9ICAgQm11MCBeKCh+Qm1hMCkmICBCbWUwICk7IFwKK1wKKyAgICBBIyNidTAgXj0gRHUwOyBcCisgICAgQm1hMSA9IFJPTDMyKEEjI2J1MCwgMTMpOyBcCisgICAgQSMjZ2ExIF49IERhMTsgXAorICAgIEJtZTEgPSBST0wzMihBIyNnYTEsIDE4KTsgXAorICAgIEEjI2tlMSBePSBEZTE7IFwKKyAgICBCbWkxID0gUk9MMzIoQSMja2UxLCA1KTsgXAorICAgIEEjI21pMCBePSBEaTA7IFwKKyAgICBCbW8xID0gUk9MMzIoQSMjbWkwLCA3KTsgXAorICAgIEEjI3NvMSBePSBEbzE7IFwKKyAgICBCbXUxID0gUk9MMzIoQSMjc28xLCAyOCk7IFwKKyAgICBFIyNtYTEgPSAgIEJtYTEgXigofkJtZTEpJiAgQm1pMSApOyBcCisgICAgRSMjbWUxID0gICBCbWUxIF4oKH5CbWkxKSYgIEJtbzEgKTsgXAorICAgIEUjI21pMSA9ICAgQm1pMSBeKCh+Qm1vMSkmICBCbXUxICk7IFwKKyAgICBFIyNtbzEgPSAgIEJtbzEgXigofkJtdTEpJiAgQm1hMSApOyBcCisgICAgRSMjbXUxID0gICBCbXUxIF4oKH5CbWExKSYgIEJtZTEgKTsgXAorXAorICAgIEEjI2JpMCBePSBEaTA7IFwKKyAgICBCc2EwID0gUk9MMzIoQSMjYmkwLCAzMSk7IFwKKyAgICBBIyNnbzEgXj0gRG8xOyBcCisgICAgQnNlMCA9IFJPTDMyKEEjI2dvMSwgMjgpOyBcCisgICAgQSMja3UxIF49IER1MTsgXAorICAgIEJzaTAgPSBST0wzMihBIyNrdTEsIDIwKTsgXAorICAgIEEjI21hMSBePSBEYTE7IFwKKyAgICBCc28wID0gUk9MMzIoQSMjbWExLCAyMSk7IFwKKyAgICBBIyNzZTAgXj0gRGUwOyBcCisgICAgQnN1MCA9IFJPTDMyKEEjI3NlMCwgMSk7IFwKKyAgICBFIyNzYTAgPSAgIEJzYTAgXigofkJzZTApJiAgQnNpMCApOyBcCisgICAgRSMjc2UwID0gICBCc2UwIF4oKH5Cc2kwKSYgIEJzbzAgKTsgXAorICAgIEUjI3NpMCA9ICAgQnNpMCBeKCh+QnNvMCkmICBCc3UwICk7IFwKKyAgICBFIyNzbzAgPSAgIEJzbzAgXigofkJzdTApJiAgQnNhMCApOyBcCisgICAgRSMjc3UwID0gICBCc3UwIF4oKH5Cc2EwKSYgIEJzZTAgKTsgXAorXAorICAgIEEjI2JpMSBePSBEaTE7IFwKKyAgICBCc2ExID0gUk9MMzIoQSMjYmkxLCAzMSk7IFwKKyAgICBBIyNnbzAgXj0gRG8wOyBcCisgICAgQnNlMSA9IFJPTDMyKEEjI2dvMCwgMjcpOyBcCisgICAgQSMja3UwIF49IER1MDsgXAorICAgIEJzaTEgPSBST0wzMihBIyNrdTAsIDE5KTsgXAorICAgIEEjI21hMCBePSBEYTA7IFwKKyAgICBCc28xID0gUk9MMzIoQSMjbWEwLCAyMCk7IFwKKyAgICBBIyNzZTEgXj0gRGUxOyBcCisgICAgQnN1MSA9IFJPTDMyKEEjI3NlMSwgMSk7IFwKKyAgICBFIyNzYTEgPSAgIEJzYTEgXigofkJzZTEpJiAgQnNpMSApOyBcCisgICAgRSMjc2UxID0gICBCc2UxIF4oKH5Cc2kxKSYgIEJzbzEgKTsgXAorICAgIEUjI3NpMSA9ICAgQnNpMSBeKCh+QnNvMSkmICBCc3UxICk7IFwKKyAgICBFIyNzbzEgPSAgIEJzbzEgXigofkJzdTEpJiAgQnNhMSApOyBcCisgICAgRSMjc3UxID0gICBCc3UxIF4oKH5Cc2ExKSYgIEJzZTEgKTsgXAorXAorCisjZW5kaWYgLyogIFVzZUJlYmlnb2tpbWlzYSAqLworCitjb25zdCBVSU5UMzIgS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c19pbnQyXzBbMjRdID0geworICAgIDB4MDAwMDAwMDFVTCwKKyAgICAweDAwMDAwMDAwVUwsCisgICAgMHgwMDAwMDAwMFVMLAorICAgIDB4MDAwMDAwMDBVTCwKKyAgICAweDAwMDAwMDAxVUwsCisgICAgMHgwMDAwMDAwMVVMLAorICAgIDB4MDAwMDAwMDFVTCwKKyAgICAweDAwMDAwMDAxVUwsCisgICAgMHgwMDAwMDAwMFVMLAorICAgIDB4MDAwMDAwMDBVTCwKKyAgICAweDAwMDAwMDAxVUwsCisgICAgMHgwMDAwMDAwMFVMLAorICAgIDB4MDAwMDAwMDFVTCwKKyAgICAweDAwMDAwMDAxVUwsCisgICAgMHgwMDAwMDAwMVVMLAorICAgIDB4MDAwMDAwMDFVTCwKKyAgICAweDAwMDAwMDAwVUwsCisgICAgMHgwMDAwMDAwMFVMLAorICAgIDB4MDAwMDAwMDBVTCwKKyAgICAweDAwMDAwMDAwVUwsCisgICAgMHgwMDAwMDAwMVVMLAorICAgIDB4MDAwMDAwMDBVTCwKKyAgICAweDAwMDAwMDAxVUwsCisgICAgMHgwMDAwMDAwMFVMIH07CisKK2NvbnN0IFVJTlQzMiBLZWNjYWtGMTYwMFJvdW5kQ29uc3RhbnRzX2ludDJfMVsyNF0gPSB7CisgICAgMHgwMDAwMDAwMFVMLAorICAgIDB4MDAwMDAwODlVTCwKKyAgICAweDgwMDAwMDhiVUwsCisgICAgMHg4MDAwODA4MFVMLAorICAgIDB4MDAwMDAwOGJVTCwKKyAgICAweDAwMDA4MDAwVUwsCisgICAgMHg4MDAwODA4OFVMLAorICAgIDB4ODAwMDAwODJVTCwKKyAgICAweDAwMDAwMDBiVUwsCisgICAgMHgwMDAwMDAwYVVMLAorICAgIDB4MDAwMDgwODJVTCwKKyAgICAweDAwMDA4MDAzVUwsCisgICAgMHgwMDAwODA4YlVMLAorICAgIDB4ODAwMDAwMGJVTCwKKyAgICAweDgwMDAwMDhhVUwsCisgICAgMHg4MDAwMDA4MVVMLAorICAgIDB4ODAwMDAwODFVTCwKKyAgICAweDgwMDAwMDA4VUwsCisgICAgMHgwMDAwMDA4M1VMLAorICAgIDB4ODAwMDgwMDNVTCwKKyAgICAweDgwMDA4MDg4VUwsCisgICAgMHg4MDAwMDA4OFVMLAorICAgIDB4MDAwMDgwMDBVTCwKKyAgICAweDgwMDA4MDgyVUwgfTsKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlQW5kWG9yMTAyNGJpdHMoWCwgc3RhdGUsIGlucHV0KSBcCisgICAgWCMjYmEwID0gc3RhdGVbIDBdXmlucHV0WyAwXTsgXAorICAgIFgjI2JhMSA9IHN0YXRlWyAxXV5pbnB1dFsgMV07IFwKKyAgICBYIyNiZTAgPSBzdGF0ZVsgMl1eaW5wdXRbIDJdOyBcCisgICAgWCMjYmUxID0gc3RhdGVbIDNdXmlucHV0WyAzXTsgXAorICAgIFgjI2JpMCA9IHN0YXRlWyA0XV5pbnB1dFsgNF07IFwKKyAgICBYIyNiaTEgPSBzdGF0ZVsgNV1eaW5wdXRbIDVdOyBcCisgICAgWCMjYm8wID0gc3RhdGVbIDZdXmlucHV0WyA2XTsgXAorICAgIFgjI2JvMSA9IHN0YXRlWyA3XV5pbnB1dFsgN107IFwKKyAgICBYIyNidTAgPSBzdGF0ZVsgOF1eaW5wdXRbIDhdOyBcCisgICAgWCMjYnUxID0gc3RhdGVbIDldXmlucHV0WyA5XTsgXAorICAgIFgjI2dhMCA9IHN0YXRlWzEwXV5pbnB1dFsxMF07IFwKKyAgICBYIyNnYTEgPSBzdGF0ZVsxMV1eaW5wdXRbMTFdOyBcCisgICAgWCMjZ2UwID0gc3RhdGVbMTJdXmlucHV0WzEyXTsgXAorICAgIFgjI2dlMSA9IHN0YXRlWzEzXV5pbnB1dFsxM107IFwKKyAgICBYIyNnaTAgPSBzdGF0ZVsxNF1eaW5wdXRbMTRdOyBcCisgICAgWCMjZ2kxID0gc3RhdGVbMTVdXmlucHV0WzE1XTsgXAorICAgIFgjI2dvMCA9IHN0YXRlWzE2XV5pbnB1dFsxNl07IFwKKyAgICBYIyNnbzEgPSBzdGF0ZVsxN11eaW5wdXRbMTddOyBcCisgICAgWCMjZ3UwID0gc3RhdGVbMThdXmlucHV0WzE4XTsgXAorICAgIFgjI2d1MSA9IHN0YXRlWzE5XV5pbnB1dFsxOV07IFwKKyAgICBYIyNrYTAgPSBzdGF0ZVsyMF1eaW5wdXRbMjBdOyBcCisgICAgWCMja2ExID0gc3RhdGVbMjFdXmlucHV0WzIxXTsgXAorICAgIFgjI2tlMCA9IHN0YXRlWzIyXV5pbnB1dFsyMl07IFwKKyAgICBYIyNrZTEgPSBzdGF0ZVsyM11eaW5wdXRbMjNdOyBcCisgICAgWCMja2kwID0gc3RhdGVbMjRdXmlucHV0WzI0XTsgXAorICAgIFgjI2tpMSA9IHN0YXRlWzI1XV5pbnB1dFsyNV07IFwKKyAgICBYIyNrbzAgPSBzdGF0ZVsyNl1eaW5wdXRbMjZdOyBcCisgICAgWCMja28xID0gc3RhdGVbMjddXmlucHV0WzI3XTsgXAorICAgIFgjI2t1MCA9IHN0YXRlWzI4XV5pbnB1dFsyOF07IFwKKyAgICBYIyNrdTEgPSBzdGF0ZVsyOV1eaW5wdXRbMjldOyBcCisgICAgWCMjbWEwID0gc3RhdGVbMzBdXmlucHV0WzMwXTsgXAorICAgIFgjI21hMSA9IHN0YXRlWzMxXV5pbnB1dFszMV07IFwKKyAgICBYIyNtZTAgPSBzdGF0ZVszMl07IFwKKyAgICBYIyNtZTEgPSBzdGF0ZVszM107IFwKKyAgICBYIyNtaTAgPSBzdGF0ZVszNF07IFwKKyAgICBYIyNtaTEgPSBzdGF0ZVszNV07IFwKKyAgICBYIyNtbzAgPSBzdGF0ZVszNl07IFwKKyAgICBYIyNtbzEgPSBzdGF0ZVszN107IFwKKyAgICBYIyNtdTAgPSBzdGF0ZVszOF07IFwKKyAgICBYIyNtdTEgPSBzdGF0ZVszOV07IFwKKyAgICBYIyNzYTAgPSBzdGF0ZVs0MF07IFwKKyAgICBYIyNzYTEgPSBzdGF0ZVs0MV07IFwKKyAgICBYIyNzZTAgPSBzdGF0ZVs0Ml07IFwKKyAgICBYIyNzZTEgPSBzdGF0ZVs0M107IFwKKyAgICBYIyNzaTAgPSBzdGF0ZVs0NF07IFwKKyAgICBYIyNzaTEgPSBzdGF0ZVs0NV07IFwKKyAgICBYIyNzbzAgPSBzdGF0ZVs0Nl07IFwKKyAgICBYIyNzbzEgPSBzdGF0ZVs0N107IFwKKyAgICBYIyNzdTAgPSBzdGF0ZVs0OF07IFwKKyAgICBYIyNzdTEgPSBzdGF0ZVs0OV07IFwKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlQW5kWG9yMTA4OGJpdHMoWCwgc3RhdGUsIGlucHV0KSBcCisgICAgWCMjYmEwID0gc3RhdGVbIDBdXmlucHV0WyAwXTsgXAorICAgIFgjI2JhMSA9IHN0YXRlWyAxXV5pbnB1dFsgMV07IFwKKyAgICBYIyNiZTAgPSBzdGF0ZVsgMl1eaW5wdXRbIDJdOyBcCisgICAgWCMjYmUxID0gc3RhdGVbIDNdXmlucHV0WyAzXTsgXAorICAgIFgjI2JpMCA9IHN0YXRlWyA0XV5pbnB1dFsgNF07IFwKKyAgICBYIyNiaTEgPSBzdGF0ZVsgNV1eaW5wdXRbIDVdOyBcCisgICAgWCMjYm8wID0gc3RhdGVbIDZdXmlucHV0WyA2XTsgXAorICAgIFgjI2JvMSA9IHN0YXRlWyA3XV5pbnB1dFsgN107IFwKKyAgICBYIyNidTAgPSBzdGF0ZVsgOF1eaW5wdXRbIDhdOyBcCisgICAgWCMjYnUxID0gc3RhdGVbIDldXmlucHV0WyA5XTsgXAorICAgIFgjI2dhMCA9IHN0YXRlWzEwXV5pbnB1dFsxMF07IFwKKyAgICBYIyNnYTEgPSBzdGF0ZVsxMV1eaW5wdXRbMTFdOyBcCisgICAgWCMjZ2UwID0gc3RhdGVbMTJdXmlucHV0WzEyXTsgXAorICAgIFgjI2dlMSA9IHN0YXRlWzEzXV5pbnB1dFsxM107IFwKKyAgICBYIyNnaTAgPSBzdGF0ZVsxNF1eaW5wdXRbMTRdOyBcCisgICAgWCMjZ2kxID0gc3RhdGVbMTVdXmlucHV0WzE1XTsgXAorICAgIFgjI2dvMCA9IHN0YXRlWzE2XV5pbnB1dFsxNl07IFwKKyAgICBYIyNnbzEgPSBzdGF0ZVsxN11eaW5wdXRbMTddOyBcCisgICAgWCMjZ3UwID0gc3RhdGVbMThdXmlucHV0WzE4XTsgXAorICAgIFgjI2d1MSA9IHN0YXRlWzE5XV5pbnB1dFsxOV07IFwKKyAgICBYIyNrYTAgPSBzdGF0ZVsyMF1eaW5wdXRbMjBdOyBcCisgICAgWCMja2ExID0gc3RhdGVbMjFdXmlucHV0WzIxXTsgXAorICAgIFgjI2tlMCA9IHN0YXRlWzIyXV5pbnB1dFsyMl07IFwKKyAgICBYIyNrZTEgPSBzdGF0ZVsyM11eaW5wdXRbMjNdOyBcCisgICAgWCMja2kwID0gc3RhdGVbMjRdXmlucHV0WzI0XTsgXAorICAgIFgjI2tpMSA9IHN0YXRlWzI1XV5pbnB1dFsyNV07IFwKKyAgICBYIyNrbzAgPSBzdGF0ZVsyNl1eaW5wdXRbMjZdOyBcCisgICAgWCMja28xID0gc3RhdGVbMjddXmlucHV0WzI3XTsgXAorICAgIFgjI2t1MCA9IHN0YXRlWzI4XV5pbnB1dFsyOF07IFwKKyAgICBYIyNrdTEgPSBzdGF0ZVsyOV1eaW5wdXRbMjldOyBcCisgICAgWCMjbWEwID0gc3RhdGVbMzBdXmlucHV0WzMwXTsgXAorICAgIFgjI21hMSA9IHN0YXRlWzMxXV5pbnB1dFszMV07IFwKKyAgICBYIyNtZTAgPSBzdGF0ZVszMl1eaW5wdXRbMzJdOyBcCisgICAgWCMjbWUxID0gc3RhdGVbMzNdXmlucHV0WzMzXTsgXAorICAgIFgjI21pMCA9IHN0YXRlWzM0XTsgXAorICAgIFgjI21pMSA9IHN0YXRlWzM1XTsgXAorICAgIFgjI21vMCA9IHN0YXRlWzM2XTsgXAorICAgIFgjI21vMSA9IHN0YXRlWzM3XTsgXAorICAgIFgjI211MCA9IHN0YXRlWzM4XTsgXAorICAgIFgjI211MSA9IHN0YXRlWzM5XTsgXAorICAgIFgjI3NhMCA9IHN0YXRlWzQwXTsgXAorICAgIFgjI3NhMSA9IHN0YXRlWzQxXTsgXAorICAgIFgjI3NlMCA9IHN0YXRlWzQyXTsgXAorICAgIFgjI3NlMSA9IHN0YXRlWzQzXTsgXAorICAgIFgjI3NpMCA9IHN0YXRlWzQ0XTsgXAorICAgIFgjI3NpMSA9IHN0YXRlWzQ1XTsgXAorICAgIFgjI3NvMCA9IHN0YXRlWzQ2XTsgXAorICAgIFgjI3NvMSA9IHN0YXRlWzQ3XTsgXAorICAgIFgjI3N1MCA9IHN0YXRlWzQ4XTsgXAorICAgIFgjI3N1MSA9IHN0YXRlWzQ5XTsgXAorCisjZGVmaW5lIGNvcHlGcm9tU3RhdGUoWCwgc3RhdGUpIFwKKyAgICBYIyNiYTAgPSBzdGF0ZVsgMF07IFwKKyAgICBYIyNiYTEgPSBzdGF0ZVsgMV07IFwKKyAgICBYIyNiZTAgPSBzdGF0ZVsgMl07IFwKKyAgICBYIyNiZTEgPSBzdGF0ZVsgM107IFwKKyAgICBYIyNiaTAgPSBzdGF0ZVsgNF07IFwKKyAgICBYIyNiaTEgPSBzdGF0ZVsgNV07IFwKKyAgICBYIyNibzAgPSBzdGF0ZVsgNl07IFwKKyAgICBYIyNibzEgPSBzdGF0ZVsgN107IFwKKyAgICBYIyNidTAgPSBzdGF0ZVsgOF07IFwKKyAgICBYIyNidTEgPSBzdGF0ZVsgOV07IFwKKyAgICBYIyNnYTAgPSBzdGF0ZVsxMF07IFwKKyAgICBYIyNnYTEgPSBzdGF0ZVsxMV07IFwKKyAgICBYIyNnZTAgPSBzdGF0ZVsxMl07IFwKKyAgICBYIyNnZTEgPSBzdGF0ZVsxM107IFwKKyAgICBYIyNnaTAgPSBzdGF0ZVsxNF07IFwKKyAgICBYIyNnaTEgPSBzdGF0ZVsxNV07IFwKKyAgICBYIyNnbzAgPSBzdGF0ZVsxNl07IFwKKyAgICBYIyNnbzEgPSBzdGF0ZVsxN107IFwKKyAgICBYIyNndTAgPSBzdGF0ZVsxOF07IFwKKyAgICBYIyNndTEgPSBzdGF0ZVsxOV07IFwKKyAgICBYIyNrYTAgPSBzdGF0ZVsyMF07IFwKKyAgICBYIyNrYTEgPSBzdGF0ZVsyMV07IFwKKyAgICBYIyNrZTAgPSBzdGF0ZVsyMl07IFwKKyAgICBYIyNrZTEgPSBzdGF0ZVsyM107IFwKKyAgICBYIyNraTAgPSBzdGF0ZVsyNF07IFwKKyAgICBYIyNraTEgPSBzdGF0ZVsyNV07IFwKKyAgICBYIyNrbzAgPSBzdGF0ZVsyNl07IFwKKyAgICBYIyNrbzEgPSBzdGF0ZVsyN107IFwKKyAgICBYIyNrdTAgPSBzdGF0ZVsyOF07IFwKKyAgICBYIyNrdTEgPSBzdGF0ZVsyOV07IFwKKyAgICBYIyNtYTAgPSBzdGF0ZVszMF07IFwKKyAgICBYIyNtYTEgPSBzdGF0ZVszMV07IFwKKyAgICBYIyNtZTAgPSBzdGF0ZVszMl07IFwKKyAgICBYIyNtZTEgPSBzdGF0ZVszM107IFwKKyAgICBYIyNtaTAgPSBzdGF0ZVszNF07IFwKKyAgICBYIyNtaTEgPSBzdGF0ZVszNV07IFwKKyAgICBYIyNtbzAgPSBzdGF0ZVszNl07IFwKKyAgICBYIyNtbzEgPSBzdGF0ZVszN107IFwKKyAgICBYIyNtdTAgPSBzdGF0ZVszOF07IFwKKyAgICBYIyNtdTEgPSBzdGF0ZVszOV07IFwKKyAgICBYIyNzYTAgPSBzdGF0ZVs0MF07IFwKKyAgICBYIyNzYTEgPSBzdGF0ZVs0MV07IFwKKyAgICBYIyNzZTAgPSBzdGF0ZVs0Ml07IFwKKyAgICBYIyNzZTEgPSBzdGF0ZVs0M107IFwKKyAgICBYIyNzaTAgPSBzdGF0ZVs0NF07IFwKKyAgICBYIyNzaTEgPSBzdGF0ZVs0NV07IFwKKyAgICBYIyNzbzAgPSBzdGF0ZVs0Nl07IFwKKyAgICBYIyNzbzEgPSBzdGF0ZVs0N107IFwKKyAgICBYIyNzdTAgPSBzdGF0ZVs0OF07IFwKKyAgICBYIyNzdTEgPSBzdGF0ZVs0OV07IFwKKworI2RlZmluZSBjb3B5VG9TdGF0ZShzdGF0ZSwgWCkgXAorICAgIHN0YXRlWyAwXSA9IFgjI2JhMDsgXAorICAgIHN0YXRlWyAxXSA9IFgjI2JhMTsgXAorICAgIHN0YXRlWyAyXSA9IFgjI2JlMDsgXAorICAgIHN0YXRlWyAzXSA9IFgjI2JlMTsgXAorICAgIHN0YXRlWyA0XSA9IFgjI2JpMDsgXAorICAgIHN0YXRlWyA1XSA9IFgjI2JpMTsgXAorICAgIHN0YXRlWyA2XSA9IFgjI2JvMDsgXAorICAgIHN0YXRlWyA3XSA9IFgjI2JvMTsgXAorICAgIHN0YXRlWyA4XSA9IFgjI2J1MDsgXAorICAgIHN0YXRlWyA5XSA9IFgjI2J1MTsgXAorICAgIHN0YXRlWzEwXSA9IFgjI2dhMDsgXAorICAgIHN0YXRlWzExXSA9IFgjI2dhMTsgXAorICAgIHN0YXRlWzEyXSA9IFgjI2dlMDsgXAorICAgIHN0YXRlWzEzXSA9IFgjI2dlMTsgXAorICAgIHN0YXRlWzE0XSA9IFgjI2dpMDsgXAorICAgIHN0YXRlWzE1XSA9IFgjI2dpMTsgXAorICAgIHN0YXRlWzE2XSA9IFgjI2dvMDsgXAorICAgIHN0YXRlWzE3XSA9IFgjI2dvMTsgXAorICAgIHN0YXRlWzE4XSA9IFgjI2d1MDsgXAorICAgIHN0YXRlWzE5XSA9IFgjI2d1MTsgXAorICAgIHN0YXRlWzIwXSA9IFgjI2thMDsgXAorICAgIHN0YXRlWzIxXSA9IFgjI2thMTsgXAorICAgIHN0YXRlWzIyXSA9IFgjI2tlMDsgXAorICAgIHN0YXRlWzIzXSA9IFgjI2tlMTsgXAorICAgIHN0YXRlWzI0XSA9IFgjI2tpMDsgXAorICAgIHN0YXRlWzI1XSA9IFgjI2tpMTsgXAorICAgIHN0YXRlWzI2XSA9IFgjI2tvMDsgXAorICAgIHN0YXRlWzI3XSA9IFgjI2tvMTsgXAorICAgIHN0YXRlWzI4XSA9IFgjI2t1MDsgXAorICAgIHN0YXRlWzI5XSA9IFgjI2t1MTsgXAorICAgIHN0YXRlWzMwXSA9IFgjI21hMDsgXAorICAgIHN0YXRlWzMxXSA9IFgjI21hMTsgXAorICAgIHN0YXRlWzMyXSA9IFgjI21lMDsgXAorICAgIHN0YXRlWzMzXSA9IFgjI21lMTsgXAorICAgIHN0YXRlWzM0XSA9IFgjI21pMDsgXAorICAgIHN0YXRlWzM1XSA9IFgjI21pMTsgXAorICAgIHN0YXRlWzM2XSA9IFgjI21vMDsgXAorICAgIHN0YXRlWzM3XSA9IFgjI21vMTsgXAorICAgIHN0YXRlWzM4XSA9IFgjI211MDsgXAorICAgIHN0YXRlWzM5XSA9IFgjI211MTsgXAorICAgIHN0YXRlWzQwXSA9IFgjI3NhMDsgXAorICAgIHN0YXRlWzQxXSA9IFgjI3NhMTsgXAorICAgIHN0YXRlWzQyXSA9IFgjI3NlMDsgXAorICAgIHN0YXRlWzQzXSA9IFgjI3NlMTsgXAorICAgIHN0YXRlWzQ0XSA9IFgjI3NpMDsgXAorICAgIHN0YXRlWzQ1XSA9IFgjI3NpMTsgXAorICAgIHN0YXRlWzQ2XSA9IFgjI3NvMDsgXAorICAgIHN0YXRlWzQ3XSA9IFgjI3NvMTsgXAorICAgIHN0YXRlWzQ4XSA9IFgjI3N1MDsgXAorICAgIHN0YXRlWzQ5XSA9IFgjI3N1MTsgXAorCisjZGVmaW5lIGNvcHlTdGF0ZVZhcmlhYmxlcyhYLCBZKSBcCisgICAgWCMjYmEwID0gWSMjYmEwOyBcCisgICAgWCMjYmExID0gWSMjYmExOyBcCisgICAgWCMjYmUwID0gWSMjYmUwOyBcCisgICAgWCMjYmUxID0gWSMjYmUxOyBcCisgICAgWCMjYmkwID0gWSMjYmkwOyBcCisgICAgWCMjYmkxID0gWSMjYmkxOyBcCisgICAgWCMjYm8wID0gWSMjYm8wOyBcCisgICAgWCMjYm8xID0gWSMjYm8xOyBcCisgICAgWCMjYnUwID0gWSMjYnUwOyBcCisgICAgWCMjYnUxID0gWSMjYnUxOyBcCisgICAgWCMjZ2EwID0gWSMjZ2EwOyBcCisgICAgWCMjZ2ExID0gWSMjZ2ExOyBcCisgICAgWCMjZ2UwID0gWSMjZ2UwOyBcCisgICAgWCMjZ2UxID0gWSMjZ2UxOyBcCisgICAgWCMjZ2kwID0gWSMjZ2kwOyBcCisgICAgWCMjZ2kxID0gWSMjZ2kxOyBcCisgICAgWCMjZ28wID0gWSMjZ28wOyBcCisgICAgWCMjZ28xID0gWSMjZ28xOyBcCisgICAgWCMjZ3UwID0gWSMjZ3UwOyBcCisgICAgWCMjZ3UxID0gWSMjZ3UxOyBcCisgICAgWCMja2EwID0gWSMja2EwOyBcCisgICAgWCMja2ExID0gWSMja2ExOyBcCisgICAgWCMja2UwID0gWSMja2UwOyBcCisgICAgWCMja2UxID0gWSMja2UxOyBcCisgICAgWCMja2kwID0gWSMja2kwOyBcCisgICAgWCMja2kxID0gWSMja2kxOyBcCisgICAgWCMja28wID0gWSMja28wOyBcCisgICAgWCMja28xID0gWSMja28xOyBcCisgICAgWCMja3UwID0gWSMja3UwOyBcCisgICAgWCMja3UxID0gWSMja3UxOyBcCisgICAgWCMjbWEwID0gWSMjbWEwOyBcCisgICAgWCMjbWExID0gWSMjbWExOyBcCisgICAgWCMjbWUwID0gWSMjbWUwOyBcCisgICAgWCMjbWUxID0gWSMjbWUxOyBcCisgICAgWCMjbWkwID0gWSMjbWkwOyBcCisgICAgWCMjbWkxID0gWSMjbWkxOyBcCisgICAgWCMjbW8wID0gWSMjbW8wOyBcCisgICAgWCMjbW8xID0gWSMjbW8xOyBcCisgICAgWCMjbXUwID0gWSMjbXUwOyBcCisgICAgWCMjbXUxID0gWSMjbXUxOyBcCisgICAgWCMjc2EwID0gWSMjc2EwOyBcCisgICAgWCMjc2ExID0gWSMjc2ExOyBcCisgICAgWCMjc2UwID0gWSMjc2UwOyBcCisgICAgWCMjc2UxID0gWSMjc2UxOyBcCisgICAgWCMjc2kwID0gWSMjc2kwOyBcCisgICAgWCMjc2kxID0gWSMjc2kxOyBcCisgICAgWCMjc28wID0gWSMjc28wOyBcCisgICAgWCMjc28xID0gWSMjc28xOyBcCisgICAgWCMjc3UwID0gWSMjc3UwOyBcCisgICAgWCMjc3UxID0gWSMjc3UxOyBcCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC0zMi1zMi5tYWNyb3MgYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtMzItczIubWFjcm9zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhMTE3NjIKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtMzItczIubWFjcm9zCkBAIC0wLDAgKzEsMTE4NyBAQAorLyoKK0NvZGUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgS2VjY2FrVG9vbHMhCisKK1RoZSBLZWNjYWsgc3BvbmdlIGZ1bmN0aW9uLCBkZXNpZ25lZCBieSBHdWlkbyBCZXJ0b25pLCBKb2FuIERhZW1lbiwKK01pY2hhw6tsIFBlZXRlcnMgYW5kIEdpbGxlcyBWYW4gQXNzY2hlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgZmVlZGJhY2sgb3IKK3F1ZXN0aW9ucywgcGxlYXNlIHJlZmVyIHRvIG91ciB3ZWJzaXRlOiBodHRwOi8va2VjY2FrLm5vZWtlb24ub3JnLworCitJbXBsZW1lbnRhdGlvbiBieSB0aGUgZGVzaWduZXJzLAoraGVyZWJ5IGRlbm90ZWQgYXMgInRoZSBpbXBsZW1lbnRlciIuCisKK1RvIHRoZSBleHRlbnQgcG9zc2libGUgdW5kZXIgbGF3LCB0aGUgaW1wbGVtZW50ZXIgaGFzIHdhaXZlZCBhbGwgY29weXJpZ2h0CithbmQgcmVsYXRlZCBvciBuZWlnaGJvcmluZyByaWdodHMgdG8gdGhlIHNvdXJjZSBjb2RlIGluIHRoaXMgZmlsZS4KK2h0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKyovCisKKyNkZWZpbmUgZGVjbGFyZUFCQ0RFIFwKKyAgICBVSU5UMzIgQWJhMCwgQWJlMCwgQWJpMCwgQWJvMCwgQWJ1MDsgXAorICAgIFVJTlQzMiBBYmExLCBBYmUxLCBBYmkxLCBBYm8xLCBBYnUxOyBcCisgICAgVUlOVDMyIEFnYTAsIEFnZTAsIEFnaTAsIEFnbzAsIEFndTA7IFwKKyAgICBVSU5UMzIgQWdhMSwgQWdlMSwgQWdpMSwgQWdvMSwgQWd1MTsgXAorICAgIFVJTlQzMiBBa2EwLCBBa2UwLCBBa2kwLCBBa28wLCBBa3UwOyBcCisgICAgVUlOVDMyIEFrYTEsIEFrZTEsIEFraTEsIEFrbzEsIEFrdTE7IFwKKyAgICBVSU5UMzIgQW1hMCwgQW1lMCwgQW1pMCwgQW1vMCwgQW11MDsgXAorICAgIFVJTlQzMiBBbWExLCBBbWUxLCBBbWkxLCBBbW8xLCBBbXUxOyBcCisgICAgVUlOVDMyIEFzYTAsIEFzZTAsIEFzaTAsIEFzbzAsIEFzdTA7IFwKKyAgICBVSU5UMzIgQXNhMSwgQXNlMSwgQXNpMSwgQXNvMSwgQXN1MTsgXAorICAgIFVJTlQzMiBCYmEwLCBCYmUwLCBCYmkwLCBCYm8wLCBCYnUwOyBcCisgICAgVUlOVDMyIEJiYTEsIEJiZTEsIEJiaTEsIEJibzEsIEJidTE7IFwKKyAgICBVSU5UMzIgQmdhMCwgQmdlMCwgQmdpMCwgQmdvMCwgQmd1MDsgXAorICAgIFVJTlQzMiBCZ2ExLCBCZ2UxLCBCZ2kxLCBCZ28xLCBCZ3UxOyBcCisgICAgVUlOVDMyIEJrYTAsIEJrZTAsIEJraTAsIEJrbzAsIEJrdTA7IFwKKyAgICBVSU5UMzIgQmthMSwgQmtlMSwgQmtpMSwgQmtvMSwgQmt1MTsgXAorICAgIFVJTlQzMiBCbWEwLCBCbWUwLCBCbWkwLCBCbW8wLCBCbXUwOyBcCisgICAgVUlOVDMyIEJtYTEsIEJtZTEsIEJtaTEsIEJtbzEsIEJtdTE7IFwKKyAgICBVSU5UMzIgQnNhMCwgQnNlMCwgQnNpMCwgQnNvMCwgQnN1MDsgXAorICAgIFVJTlQzMiBCc2ExLCBCc2UxLCBCc2kxLCBCc28xLCBCc3UxOyBcCisgICAgVUlOVDMyIENhMCwgQ2UwLCBDaTAsIENvMCwgQ3UwOyBcCisgICAgVUlOVDMyIENhMSwgQ2UxLCBDaTEsIENvMSwgQ3UxOyBcCisgICAgVUlOVDMyIERhMCwgRGUwLCBEaTAsIERvMCwgRHUwOyBcCisgICAgVUlOVDMyIERhMSwgRGUxLCBEaTEsIERvMSwgRHUxOyBcCisgICAgVUlOVDMyIEViYTAsIEViZTAsIEViaTAsIEVibzAsIEVidTA7IFwKKyAgICBVSU5UMzIgRWJhMSwgRWJlMSwgRWJpMSwgRWJvMSwgRWJ1MTsgXAorICAgIFVJTlQzMiBFZ2EwLCBFZ2UwLCBFZ2kwLCBFZ28wLCBFZ3UwOyBcCisgICAgVUlOVDMyIEVnYTEsIEVnZTEsIEVnaTEsIEVnbzEsIEVndTE7IFwKKyAgICBVSU5UMzIgRWthMCwgRWtlMCwgRWtpMCwgRWtvMCwgRWt1MDsgXAorICAgIFVJTlQzMiBFa2ExLCBFa2UxLCBFa2kxLCBFa28xLCBFa3UxOyBcCisgICAgVUlOVDMyIEVtYTAsIEVtZTAsIEVtaTAsIEVtbzAsIEVtdTA7IFwKKyAgICBVSU5UMzIgRW1hMSwgRW1lMSwgRW1pMSwgRW1vMSwgRW11MTsgXAorICAgIFVJTlQzMiBFc2EwLCBFc2UwLCBFc2kwLCBFc28wLCBFc3UwOyBcCisgICAgVUlOVDMyIEVzYTEsIEVzZTEsIEVzaTEsIEVzbzEsIEVzdTE7IFwKKworI2RlZmluZSBwcmVwYXJlVGhldGEgXAorICAgIENhMCA9IEFiYTBeQWdhMF5Ba2EwXkFtYTBeQXNhMDsgXAorICAgIENhMSA9IEFiYTFeQWdhMV5Ba2ExXkFtYTFeQXNhMTsgXAorICAgIENlMCA9IEFiZTBeQWdlMF5Ba2UwXkFtZTBeQXNlMDsgXAorICAgIENlMSA9IEFiZTFeQWdlMV5Ba2UxXkFtZTFeQXNlMTsgXAorICAgIENpMCA9IEFiaTBeQWdpMF5Ba2kwXkFtaTBeQXNpMDsgXAorICAgIENpMSA9IEFiaTFeQWdpMV5Ba2kxXkFtaTFeQXNpMTsgXAorICAgIENvMCA9IEFibzBeQWdvMF5Ba28wXkFtbzBeQXNvMDsgXAorICAgIENvMSA9IEFibzFeQWdvMV5Ba28xXkFtbzFeQXNvMTsgXAorICAgIEN1MCA9IEFidTBeQWd1MF5Ba3UwXkFtdTBeQXN1MDsgXAorICAgIEN1MSA9IEFidTFeQWd1MV5Ba3UxXkFtdTFeQXN1MTsgXAorCisjaWZkZWYgVXNlQmViaWdva2ltaXNhCisvKiAgLS0tIENvZGUgZm9yIHJvdW5kLCB3aXRoIHByZXBhcmUtdGhldGEgKGxhbmUgY29tcGxlbWVudGluZyBwYXR0ZXJuICdiZWJpZ29raW1pc2EnKSAqLworLyogIC0tLSB1c2luZyBmYWN0b3IgMiBpbnRlcmxlYXZpbmcsIDY0LWJpdCBsYW5lcyBtYXBwZWQgdG8gMzItYml0IHdvcmRzICovCisjZGVmaW5lIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGksIEEsIEUpIFwKKyAgICBEYTAgPSBDdTBeUk9MMzIoQ2UxLCAxKTsgXAorICAgIERhMSA9IEN1MV5DZTA7IFwKKyAgICBEZTAgPSBDYTBeUk9MMzIoQ2kxLCAxKTsgXAorICAgIERlMSA9IENhMV5DaTA7IFwKKyAgICBEaTAgPSBDZTBeUk9MMzIoQ28xLCAxKTsgXAorICAgIERpMSA9IENlMV5DbzA7IFwKKyAgICBEbzAgPSBDaTBeUk9MMzIoQ3UxLCAxKTsgXAorICAgIERvMSA9IENpMV5DdTA7IFwKKyAgICBEdTAgPSBDbzBeUk9MMzIoQ2ExLCAxKTsgXAorICAgIER1MSA9IENvMV5DYTA7IFwKK1wKKyAgICBBIyNiYTAgXj0gRGEwOyBcCisgICAgQmJhMCA9IEEjI2JhMDsgXAorICAgIEEjI2dlMCBePSBEZTA7IFwKKyAgICBCYmUwID0gUk9MMzIoQSMjZ2UwLCAyMik7IFwKKyAgICBBIyNraTEgXj0gRGkxOyBcCisgICAgQmJpMCA9IFJPTDMyKEEjI2tpMSwgMjIpOyBcCisgICAgRSMjYmEwID0gICBCYmEwIF4oICBCYmUwIHwgIEJiaTAgKTsgXAorICAgIEUjI2JhMCBePSBLZWNjYWtGMTYwMFJvdW5kQ29uc3RhbnRzX2ludDJfMFtpXTsgXAorICAgIENhMCA9IEUjI2JhMDsgXAorICAgIEEjI21vMSBePSBEbzE7IFwKKyAgICBCYm8wID0gUk9MMzIoQSMjbW8xLCAxMSk7IFwKKyAgICBFIyNiZTAgPSAgIEJiZTAgXigofkJiaTApfCAgQmJvMCApOyBcCisgICAgQ2UwID0gRSMjYmUwOyBcCisgICAgQSMjc3UwIF49IER1MDsgXAorICAgIEJidTAgPSBST0wzMihBIyNzdTAsIDcpOyBcCisgICAgRSMjYmkwID0gICBCYmkwIF4oICBCYm8wICYgIEJidTAgKTsgXAorICAgIENpMCA9IEUjI2JpMDsgXAorICAgIEUjI2JvMCA9ICAgQmJvMCBeKCAgQmJ1MCB8ICBCYmEwICk7IFwKKyAgICBDbzAgPSBFIyNibzA7IFwKKyAgICBFIyNidTAgPSAgIEJidTAgXiggIEJiYTAgJiAgQmJlMCApOyBcCisgICAgQ3UwID0gRSMjYnUwOyBcCitcCisgICAgQSMjYmExIF49IERhMTsgXAorICAgIEJiYTEgPSBBIyNiYTE7IFwKKyAgICBBIyNnZTEgXj0gRGUxOyBcCisgICAgQmJlMSA9IFJPTDMyKEEjI2dlMSwgMjIpOyBcCisgICAgQSMja2kwIF49IERpMDsgXAorICAgIEJiaTEgPSBST0wzMihBIyNraTAsIDIxKTsgXAorICAgIEUjI2JhMSA9ICAgQmJhMSBeKCAgQmJlMSB8ICBCYmkxICk7IFwKKyAgICBFIyNiYTEgXj0gS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c19pbnQyXzFbaV07IFwKKyAgICBDYTEgPSBFIyNiYTE7IFwKKyAgICBBIyNtbzAgXj0gRG8wOyBcCisgICAgQmJvMSA9IFJPTDMyKEEjI21vMCwgMTApOyBcCisgICAgRSMjYmUxID0gICBCYmUxIF4oKH5CYmkxKXwgIEJibzEgKTsgXAorICAgIENlMSA9IEUjI2JlMTsgXAorICAgIEEjI3N1MSBePSBEdTE7IFwKKyAgICBCYnUxID0gUk9MMzIoQSMjc3UxLCA3KTsgXAorICAgIEUjI2JpMSA9ICAgQmJpMSBeKCAgQmJvMSAmICBCYnUxICk7IFwKKyAgICBDaTEgPSBFIyNiaTE7IFwKKyAgICBFIyNibzEgPSAgIEJibzEgXiggIEJidTEgfCAgQmJhMSApOyBcCisgICAgQ28xID0gRSMjYm8xOyBcCisgICAgRSMjYnUxID0gICBCYnUxIF4oICBCYmExICYgIEJiZTEgKTsgXAorICAgIEN1MSA9IEUjI2J1MTsgXAorXAorICAgIEEjI2JvMCBePSBEbzA7IFwKKyAgICBCZ2EwID0gUk9MMzIoQSMjYm8wLCAxNCk7IFwKKyAgICBBIyNndTAgXj0gRHUwOyBcCisgICAgQmdlMCA9IFJPTDMyKEEjI2d1MCwgMTApOyBcCisgICAgQSMja2ExIF49IERhMTsgXAorICAgIEJnaTAgPSBST0wzMihBIyNrYTEsIDIpOyBcCisgICAgRSMjZ2EwID0gICBCZ2EwIF4oICBCZ2UwIHwgIEJnaTAgKTsgXAorICAgIENhMCBePSBFIyNnYTA7IFwKKyAgICBBIyNtZTEgXj0gRGUxOyBcCisgICAgQmdvMCA9IFJPTDMyKEEjI21lMSwgMjMpOyBcCisgICAgRSMjZ2UwID0gICBCZ2UwIF4oICBCZ2kwICYgIEJnbzAgKTsgXAorICAgIENlMCBePSBFIyNnZTA7IFwKKyAgICBBIyNzaTEgXj0gRGkxOyBcCisgICAgQmd1MCA9IFJPTDMyKEEjI3NpMSwgMzEpOyBcCisgICAgRSMjZ2kwID0gICBCZ2kwIF4oICBCZ28wIHwofkJndTApKTsgXAorICAgIENpMCBePSBFIyNnaTA7IFwKKyAgICBFIyNnbzAgPSAgIEJnbzAgXiggIEJndTAgfCAgQmdhMCApOyBcCisgICAgQ28wIF49IEUjI2dvMDsgXAorICAgIEUjI2d1MCA9ICAgQmd1MCBeKCAgQmdhMCAmICBCZ2UwICk7IFwKKyAgICBDdTAgXj0gRSMjZ3UwOyBcCitcCisgICAgQSMjYm8xIF49IERvMTsgXAorICAgIEJnYTEgPSBST0wzMihBIyNibzEsIDE0KTsgXAorICAgIEEjI2d1MSBePSBEdTE7IFwKKyAgICBCZ2UxID0gUk9MMzIoQSMjZ3UxLCAxMCk7IFwKKyAgICBBIyNrYTAgXj0gRGEwOyBcCisgICAgQmdpMSA9IFJPTDMyKEEjI2thMCwgMSk7IFwKKyAgICBFIyNnYTEgPSAgIEJnYTEgXiggIEJnZTEgfCAgQmdpMSApOyBcCisgICAgQ2ExIF49IEUjI2dhMTsgXAorICAgIEEjI21lMCBePSBEZTA7IFwKKyAgICBCZ28xID0gUk9MMzIoQSMjbWUwLCAyMik7IFwKKyAgICBFIyNnZTEgPSAgIEJnZTEgXiggIEJnaTEgJiAgQmdvMSApOyBcCisgICAgQ2UxIF49IEUjI2dlMTsgXAorICAgIEEjI3NpMCBePSBEaTA7IFwKKyAgICBCZ3UxID0gUk9MMzIoQSMjc2kwLCAzMCk7IFwKKyAgICBFIyNnaTEgPSAgIEJnaTEgXiggIEJnbzEgfCh+Qmd1MSkpOyBcCisgICAgQ2kxIF49IEUjI2dpMTsgXAorICAgIEUjI2dvMSA9ICAgQmdvMSBeKCAgQmd1MSB8ICBCZ2ExICk7IFwKKyAgICBDbzEgXj0gRSMjZ28xOyBcCisgICAgRSMjZ3UxID0gICBCZ3UxIF4oICBCZ2ExICYgIEJnZTEgKTsgXAorICAgIEN1MSBePSBFIyNndTE7IFwKK1wKKyAgICBBIyNiZTEgXj0gRGUxOyBcCisgICAgQmthMCA9IFJPTDMyKEEjI2JlMSwgMSk7IFwKKyAgICBBIyNnaTAgXj0gRGkwOyBcCisgICAgQmtlMCA9IFJPTDMyKEEjI2dpMCwgMyk7IFwKKyAgICBBIyNrbzEgXj0gRG8xOyBcCisgICAgQmtpMCA9IFJPTDMyKEEjI2tvMSwgMTMpOyBcCisgICAgRSMja2EwID0gICBCa2EwIF4oICBCa2UwIHwgIEJraTAgKTsgXAorICAgIENhMCBePSBFIyNrYTA7IFwKKyAgICBBIyNtdTAgXj0gRHUwOyBcCisgICAgQmtvMCA9IFJPTDMyKEEjI211MCwgNCk7IFwKKyAgICBFIyNrZTAgPSAgIEJrZTAgXiggIEJraTAgJiAgQmtvMCApOyBcCisgICAgQ2UwIF49IEUjI2tlMDsgXAorICAgIEEjI3NhMCBePSBEYTA7IFwKKyAgICBCa3UwID0gUk9MMzIoQSMjc2EwLCA5KTsgXAorICAgIEUjI2tpMCA9ICAgQmtpMCBeKCh+QmtvMCkmICBCa3UwICk7IFwKKyAgICBDaTAgXj0gRSMja2kwOyBcCisgICAgRSMja28wID0gKH5Ca28wKV4oICBCa3UwIHwgIEJrYTAgKTsgXAorICAgIENvMCBePSBFIyNrbzA7IFwKKyAgICBFIyNrdTAgPSAgIEJrdTAgXiggIEJrYTAgJiAgQmtlMCApOyBcCisgICAgQ3UwIF49IEUjI2t1MDsgXAorXAorICAgIEEjI2JlMCBePSBEZTA7IFwKKyAgICBCa2ExID0gQSMjYmUwOyBcCisgICAgQSMjZ2kxIF49IERpMTsgXAorICAgIEJrZTEgPSBST0wzMihBIyNnaTEsIDMpOyBcCisgICAgQSMja28wIF49IERvMDsgXAorICAgIEJraTEgPSBST0wzMihBIyNrbzAsIDEyKTsgXAorICAgIEUjI2thMSA9ICAgQmthMSBeKCAgQmtlMSB8ICBCa2kxICk7IFwKKyAgICBDYTEgXj0gRSMja2ExOyBcCisgICAgQSMjbXUxIF49IER1MTsgXAorICAgIEJrbzEgPSBST0wzMihBIyNtdTEsIDQpOyBcCisgICAgRSMja2UxID0gICBCa2UxIF4oICBCa2kxICYgIEJrbzEgKTsgXAorICAgIENlMSBePSBFIyNrZTE7IFwKKyAgICBBIyNzYTEgXj0gRGExOyBcCisgICAgQmt1MSA9IFJPTDMyKEEjI3NhMSwgOSk7IFwKKyAgICBFIyNraTEgPSAgIEJraTEgXigofkJrbzEpJiAgQmt1MSApOyBcCisgICAgQ2kxIF49IEUjI2tpMTsgXAorICAgIEUjI2tvMSA9ICh+QmtvMSleKCAgQmt1MSB8ICBCa2ExICk7IFwKKyAgICBDbzEgXj0gRSMja28xOyBcCisgICAgRSMja3UxID0gICBCa3UxIF4oICBCa2ExICYgIEJrZTEgKTsgXAorICAgIEN1MSBePSBFIyNrdTE7IFwKK1wKKyAgICBBIyNidTEgXj0gRHUxOyBcCisgICAgQm1hMCA9IFJPTDMyKEEjI2J1MSwgMTQpOyBcCisgICAgQSMjZ2EwIF49IERhMDsgXAorICAgIEJtZTAgPSBST0wzMihBIyNnYTAsIDE4KTsgXAorICAgIEEjI2tlMCBePSBEZTA7IFwKKyAgICBCbWkwID0gUk9MMzIoQSMja2UwLCA1KTsgXAorICAgIEUjI21hMCA9ICAgQm1hMCBeKCAgQm1lMCAmICBCbWkwICk7IFwKKyAgICBDYTAgXj0gRSMjbWEwOyBcCisgICAgQSMjbWkxIF49IERpMTsgXAorICAgIEJtbzAgPSBST0wzMihBIyNtaTEsIDgpOyBcCisgICAgRSMjbWUwID0gICBCbWUwIF4oICBCbWkwIHwgIEJtbzAgKTsgXAorICAgIENlMCBePSBFIyNtZTA7IFwKKyAgICBBIyNzbzAgXj0gRG8wOyBcCisgICAgQm11MCA9IFJPTDMyKEEjI3NvMCwgMjgpOyBcCisgICAgRSMjbWkwID0gICBCbWkwIF4oKH5CbW8wKXwgIEJtdTAgKTsgXAorICAgIENpMCBePSBFIyNtaTA7IFwKKyAgICBFIyNtbzAgPSAofkJtbzApXiggIEJtdTAgJiAgQm1hMCApOyBcCisgICAgQ28wIF49IEUjI21vMDsgXAorICAgIEUjI211MCA9ICAgQm11MCBeKCAgQm1hMCB8ICBCbWUwICk7IFwKKyAgICBDdTAgXj0gRSMjbXUwOyBcCitcCisgICAgQSMjYnUwIF49IER1MDsgXAorICAgIEJtYTEgPSBST0wzMihBIyNidTAsIDEzKTsgXAorICAgIEEjI2dhMSBePSBEYTE7IFwKKyAgICBCbWUxID0gUk9MMzIoQSMjZ2ExLCAxOCk7IFwKKyAgICBBIyNrZTEgXj0gRGUxOyBcCisgICAgQm1pMSA9IFJPTDMyKEEjI2tlMSwgNSk7IFwKKyAgICBFIyNtYTEgPSAgIEJtYTEgXiggIEJtZTEgJiAgQm1pMSApOyBcCisgICAgQ2ExIF49IEUjI21hMTsgXAorICAgIEEjI21pMCBePSBEaTA7IFwKKyAgICBCbW8xID0gUk9MMzIoQSMjbWkwLCA3KTsgXAorICAgIEUjI21lMSA9ICAgQm1lMSBeKCAgQm1pMSB8ICBCbW8xICk7IFwKKyAgICBDZTEgXj0gRSMjbWUxOyBcCisgICAgQSMjc28xIF49IERvMTsgXAorICAgIEJtdTEgPSBST0wzMihBIyNzbzEsIDI4KTsgXAorICAgIEUjI21pMSA9ICAgQm1pMSBeKCh+Qm1vMSl8ICBCbXUxICk7IFwKKyAgICBDaTEgXj0gRSMjbWkxOyBcCisgICAgRSMjbW8xID0gKH5CbW8xKV4oICBCbXUxICYgIEJtYTEgKTsgXAorICAgIENvMSBePSBFIyNtbzE7IFwKKyAgICBFIyNtdTEgPSAgIEJtdTEgXiggIEJtYTEgfCAgQm1lMSApOyBcCisgICAgQ3UxIF49IEUjI211MTsgXAorXAorICAgIEEjI2JpMCBePSBEaTA7IFwKKyAgICBCc2EwID0gUk9MMzIoQSMjYmkwLCAzMSk7IFwKKyAgICBBIyNnbzEgXj0gRG8xOyBcCisgICAgQnNlMCA9IFJPTDMyKEEjI2dvMSwgMjgpOyBcCisgICAgQSMja3UxIF49IER1MTsgXAorICAgIEJzaTAgPSBST0wzMihBIyNrdTEsIDIwKTsgXAorICAgIEUjI3NhMCA9ICAgQnNhMCBeKCh+QnNlMCkmICBCc2kwICk7IFwKKyAgICBDYTAgXj0gRSMjc2EwOyBcCisgICAgQSMjbWExIF49IERhMTsgXAorICAgIEJzbzAgPSBST0wzMihBIyNtYTEsIDIxKTsgXAorICAgIEUjI3NlMCA9ICh+QnNlMCleKCAgQnNpMCB8ICBCc28wICk7IFwKKyAgICBDZTAgXj0gRSMjc2UwOyBcCisgICAgQSMjc2UwIF49IERlMDsgXAorICAgIEJzdTAgPSBST0wzMihBIyNzZTAsIDEpOyBcCisgICAgRSMjc2kwID0gICBCc2kwIF4oICBCc28wICYgIEJzdTAgKTsgXAorICAgIENpMCBePSBFIyNzaTA7IFwKKyAgICBFIyNzbzAgPSAgIEJzbzAgXiggIEJzdTAgfCAgQnNhMCApOyBcCisgICAgQ28wIF49IEUjI3NvMDsgXAorICAgIEUjI3N1MCA9ICAgQnN1MCBeKCAgQnNhMCAmICBCc2UwICk7IFwKKyAgICBDdTAgXj0gRSMjc3UwOyBcCitcCisgICAgQSMjYmkxIF49IERpMTsgXAorICAgIEJzYTEgPSBST0wzMihBIyNiaTEsIDMxKTsgXAorICAgIEEjI2dvMCBePSBEbzA7IFwKKyAgICBCc2UxID0gUk9MMzIoQSMjZ28wLCAyNyk7IFwKKyAgICBBIyNrdTAgXj0gRHUwOyBcCisgICAgQnNpMSA9IFJPTDMyKEEjI2t1MCwgMTkpOyBcCisgICAgRSMjc2ExID0gICBCc2ExIF4oKH5Cc2UxKSYgIEJzaTEgKTsgXAorICAgIENhMSBePSBFIyNzYTE7IFwKKyAgICBBIyNtYTAgXj0gRGEwOyBcCisgICAgQnNvMSA9IFJPTDMyKEEjI21hMCwgMjApOyBcCisgICAgRSMjc2UxID0gKH5Cc2UxKV4oICBCc2kxIHwgIEJzbzEgKTsgXAorICAgIENlMSBePSBFIyNzZTE7IFwKKyAgICBBIyNzZTEgXj0gRGUxOyBcCisgICAgQnN1MSA9IFJPTDMyKEEjI3NlMSwgMSk7IFwKKyAgICBFIyNzaTEgPSAgIEJzaTEgXiggIEJzbzEgJiAgQnN1MSApOyBcCisgICAgQ2kxIF49IEUjI3NpMTsgXAorICAgIEUjI3NvMSA9ICAgQnNvMSBeKCAgQnN1MSB8ICBCc2ExICk7IFwKKyAgICBDbzEgXj0gRSMjc28xOyBcCisgICAgRSMjc3UxID0gICBCc3UxIF4oICBCc2ExICYgIEJzZTEgKTsgXAorICAgIEN1MSBePSBFIyNzdTE7IFwKK1wKKworLyogIC0tLSBDb2RlIGZvciByb3VuZCAobGFuZSBjb21wbGVtZW50aW5nIHBhdHRlcm4gJ2JlYmlnb2tpbWlzYScpICovCisvKiAgLS0tIHVzaW5nIGZhY3RvciAyIGludGVybGVhdmluZywgNjQtYml0IGxhbmVzIG1hcHBlZCB0byAzMi1iaXQgd29yZHMgKi8KKyNkZWZpbmUgdGhldGFSaG9QaUNoaUlvdGEoaSwgQSwgRSkgXAorICAgIERhMCA9IEN1MF5ST0wzMihDZTEsIDEpOyBcCisgICAgRGExID0gQ3UxXkNlMDsgXAorICAgIERlMCA9IENhMF5ST0wzMihDaTEsIDEpOyBcCisgICAgRGUxID0gQ2ExXkNpMDsgXAorICAgIERpMCA9IENlMF5ST0wzMihDbzEsIDEpOyBcCisgICAgRGkxID0gQ2UxXkNvMDsgXAorICAgIERvMCA9IENpMF5ST0wzMihDdTEsIDEpOyBcCisgICAgRG8xID0gQ2kxXkN1MDsgXAorICAgIER1MCA9IENvMF5ST0wzMihDYTEsIDEpOyBcCisgICAgRHUxID0gQ28xXkNhMDsgXAorXAorICAgIEEjI2JhMCBePSBEYTA7IFwKKyAgICBCYmEwID0gQSMjYmEwOyBcCisgICAgQSMjZ2UwIF49IERlMDsgXAorICAgIEJiZTAgPSBST0wzMihBIyNnZTAsIDIyKTsgXAorICAgIEEjI2tpMSBePSBEaTE7IFwKKyAgICBCYmkwID0gUk9MMzIoQSMja2kxLCAyMik7IFwKKyAgICBFIyNiYTAgPSAgIEJiYTAgXiggIEJiZTAgfCAgQmJpMCApOyBcCisgICAgRSMjYmEwIF49IEtlY2Nha0YxNjAwUm91bmRDb25zdGFudHNfaW50Ml8wW2ldOyBcCisgICAgQSMjbW8xIF49IERvMTsgXAorICAgIEJibzAgPSBST0wzMihBIyNtbzEsIDExKTsgXAorICAgIEUjI2JlMCA9ICAgQmJlMCBeKCh+QmJpMCl8ICBCYm8wICk7IFwKKyAgICBBIyNzdTAgXj0gRHUwOyBcCisgICAgQmJ1MCA9IFJPTDMyKEEjI3N1MCwgNyk7IFwKKyAgICBFIyNiaTAgPSAgIEJiaTAgXiggIEJibzAgJiAgQmJ1MCApOyBcCisgICAgRSMjYm8wID0gICBCYm8wIF4oICBCYnUwIHwgIEJiYTAgKTsgXAorICAgIEUjI2J1MCA9ICAgQmJ1MCBeKCAgQmJhMCAmICBCYmUwICk7IFwKK1wKKyAgICBBIyNiYTEgXj0gRGExOyBcCisgICAgQmJhMSA9IEEjI2JhMTsgXAorICAgIEEjI2dlMSBePSBEZTE7IFwKKyAgICBCYmUxID0gUk9MMzIoQSMjZ2UxLCAyMik7IFwKKyAgICBBIyNraTAgXj0gRGkwOyBcCisgICAgQmJpMSA9IFJPTDMyKEEjI2tpMCwgMjEpOyBcCisgICAgRSMjYmExID0gICBCYmExIF4oICBCYmUxIHwgIEJiaTEgKTsgXAorICAgIEUjI2JhMSBePSBLZWNjYWtGMTYwMFJvdW5kQ29uc3RhbnRzX2ludDJfMVtpXTsgXAorICAgIEEjI21vMCBePSBEbzA7IFwKKyAgICBCYm8xID0gUk9MMzIoQSMjbW8wLCAxMCk7IFwKKyAgICBFIyNiZTEgPSAgIEJiZTEgXigofkJiaTEpfCAgQmJvMSApOyBcCisgICAgQSMjc3UxIF49IER1MTsgXAorICAgIEJidTEgPSBST0wzMihBIyNzdTEsIDcpOyBcCisgICAgRSMjYmkxID0gICBCYmkxIF4oICBCYm8xICYgIEJidTEgKTsgXAorICAgIEUjI2JvMSA9ICAgQmJvMSBeKCAgQmJ1MSB8ICBCYmExICk7IFwKKyAgICBFIyNidTEgPSAgIEJidTEgXiggIEJiYTEgJiAgQmJlMSApOyBcCitcCisgICAgQSMjYm8wIF49IERvMDsgXAorICAgIEJnYTAgPSBST0wzMihBIyNibzAsIDE0KTsgXAorICAgIEEjI2d1MCBePSBEdTA7IFwKKyAgICBCZ2UwID0gUk9MMzIoQSMjZ3UwLCAxMCk7IFwKKyAgICBBIyNrYTEgXj0gRGExOyBcCisgICAgQmdpMCA9IFJPTDMyKEEjI2thMSwgMik7IFwKKyAgICBFIyNnYTAgPSAgIEJnYTAgXiggIEJnZTAgfCAgQmdpMCApOyBcCisgICAgQSMjbWUxIF49IERlMTsgXAorICAgIEJnbzAgPSBST0wzMihBIyNtZTEsIDIzKTsgXAorICAgIEUjI2dlMCA9ICAgQmdlMCBeKCAgQmdpMCAmICBCZ28wICk7IFwKKyAgICBBIyNzaTEgXj0gRGkxOyBcCisgICAgQmd1MCA9IFJPTDMyKEEjI3NpMSwgMzEpOyBcCisgICAgRSMjZ2kwID0gICBCZ2kwIF4oICBCZ28wIHwofkJndTApKTsgXAorICAgIEUjI2dvMCA9ICAgQmdvMCBeKCAgQmd1MCB8ICBCZ2EwICk7IFwKKyAgICBFIyNndTAgPSAgIEJndTAgXiggIEJnYTAgJiAgQmdlMCApOyBcCitcCisgICAgQSMjYm8xIF49IERvMTsgXAorICAgIEJnYTEgPSBST0wzMihBIyNibzEsIDE0KTsgXAorICAgIEEjI2d1MSBePSBEdTE7IFwKKyAgICBCZ2UxID0gUk9MMzIoQSMjZ3UxLCAxMCk7IFwKKyAgICBBIyNrYTAgXj0gRGEwOyBcCisgICAgQmdpMSA9IFJPTDMyKEEjI2thMCwgMSk7IFwKKyAgICBFIyNnYTEgPSAgIEJnYTEgXiggIEJnZTEgfCAgQmdpMSApOyBcCisgICAgQSMjbWUwIF49IERlMDsgXAorICAgIEJnbzEgPSBST0wzMihBIyNtZTAsIDIyKTsgXAorICAgIEUjI2dlMSA9ICAgQmdlMSBeKCAgQmdpMSAmICBCZ28xICk7IFwKKyAgICBBIyNzaTAgXj0gRGkwOyBcCisgICAgQmd1MSA9IFJPTDMyKEEjI3NpMCwgMzApOyBcCisgICAgRSMjZ2kxID0gICBCZ2kxIF4oICBCZ28xIHwofkJndTEpKTsgXAorICAgIEUjI2dvMSA9ICAgQmdvMSBeKCAgQmd1MSB8ICBCZ2ExICk7IFwKKyAgICBFIyNndTEgPSAgIEJndTEgXiggIEJnYTEgJiAgQmdlMSApOyBcCitcCisgICAgQSMjYmUxIF49IERlMTsgXAorICAgIEJrYTAgPSBST0wzMihBIyNiZTEsIDEpOyBcCisgICAgQSMjZ2kwIF49IERpMDsgXAorICAgIEJrZTAgPSBST0wzMihBIyNnaTAsIDMpOyBcCisgICAgQSMja28xIF49IERvMTsgXAorICAgIEJraTAgPSBST0wzMihBIyNrbzEsIDEzKTsgXAorICAgIEUjI2thMCA9ICAgQmthMCBeKCAgQmtlMCB8ICBCa2kwICk7IFwKKyAgICBBIyNtdTAgXj0gRHUwOyBcCisgICAgQmtvMCA9IFJPTDMyKEEjI211MCwgNCk7IFwKKyAgICBFIyNrZTAgPSAgIEJrZTAgXiggIEJraTAgJiAgQmtvMCApOyBcCisgICAgQSMjc2EwIF49IERhMDsgXAorICAgIEJrdTAgPSBST0wzMihBIyNzYTAsIDkpOyBcCisgICAgRSMja2kwID0gICBCa2kwIF4oKH5Ca28wKSYgIEJrdTAgKTsgXAorICAgIEUjI2tvMCA9ICh+QmtvMCleKCAgQmt1MCB8ICBCa2EwICk7IFwKKyAgICBFIyNrdTAgPSAgIEJrdTAgXiggIEJrYTAgJiAgQmtlMCApOyBcCitcCisgICAgQSMjYmUwIF49IERlMDsgXAorICAgIEJrYTEgPSBBIyNiZTA7IFwKKyAgICBBIyNnaTEgXj0gRGkxOyBcCisgICAgQmtlMSA9IFJPTDMyKEEjI2dpMSwgMyk7IFwKKyAgICBBIyNrbzAgXj0gRG8wOyBcCisgICAgQmtpMSA9IFJPTDMyKEEjI2tvMCwgMTIpOyBcCisgICAgRSMja2ExID0gICBCa2ExIF4oICBCa2UxIHwgIEJraTEgKTsgXAorICAgIEEjI211MSBePSBEdTE7IFwKKyAgICBCa28xID0gUk9MMzIoQSMjbXUxLCA0KTsgXAorICAgIEUjI2tlMSA9ICAgQmtlMSBeKCAgQmtpMSAmICBCa28xICk7IFwKKyAgICBBIyNzYTEgXj0gRGExOyBcCisgICAgQmt1MSA9IFJPTDMyKEEjI3NhMSwgOSk7IFwKKyAgICBFIyNraTEgPSAgIEJraTEgXigofkJrbzEpJiAgQmt1MSApOyBcCisgICAgRSMja28xID0gKH5Ca28xKV4oICBCa3UxIHwgIEJrYTEgKTsgXAorICAgIEUjI2t1MSA9ICAgQmt1MSBeKCAgQmthMSAmICBCa2UxICk7IFwKK1wKKyAgICBBIyNidTEgXj0gRHUxOyBcCisgICAgQm1hMCA9IFJPTDMyKEEjI2J1MSwgMTQpOyBcCisgICAgQSMjZ2EwIF49IERhMDsgXAorICAgIEJtZTAgPSBST0wzMihBIyNnYTAsIDE4KTsgXAorICAgIEEjI2tlMCBePSBEZTA7IFwKKyAgICBCbWkwID0gUk9MMzIoQSMja2UwLCA1KTsgXAorICAgIEUjI21hMCA9ICAgQm1hMCBeKCAgQm1lMCAmICBCbWkwICk7IFwKKyAgICBBIyNtaTEgXj0gRGkxOyBcCisgICAgQm1vMCA9IFJPTDMyKEEjI21pMSwgOCk7IFwKKyAgICBFIyNtZTAgPSAgIEJtZTAgXiggIEJtaTAgfCAgQm1vMCApOyBcCisgICAgQSMjc28wIF49IERvMDsgXAorICAgIEJtdTAgPSBST0wzMihBIyNzbzAsIDI4KTsgXAorICAgIEUjI21pMCA9ICAgQm1pMCBeKCh+Qm1vMCl8ICBCbXUwICk7IFwKKyAgICBFIyNtbzAgPSAofkJtbzApXiggIEJtdTAgJiAgQm1hMCApOyBcCisgICAgRSMjbXUwID0gICBCbXUwIF4oICBCbWEwIHwgIEJtZTAgKTsgXAorXAorICAgIEEjI2J1MCBePSBEdTA7IFwKKyAgICBCbWExID0gUk9MMzIoQSMjYnUwLCAxMyk7IFwKKyAgICBBIyNnYTEgXj0gRGExOyBcCisgICAgQm1lMSA9IFJPTDMyKEEjI2dhMSwgMTgpOyBcCisgICAgQSMja2UxIF49IERlMTsgXAorICAgIEJtaTEgPSBST0wzMihBIyNrZTEsIDUpOyBcCisgICAgRSMjbWExID0gICBCbWExIF4oICBCbWUxICYgIEJtaTEgKTsgXAorICAgIEEjI21pMCBePSBEaTA7IFwKKyAgICBCbW8xID0gUk9MMzIoQSMjbWkwLCA3KTsgXAorICAgIEUjI21lMSA9ICAgQm1lMSBeKCAgQm1pMSB8ICBCbW8xICk7IFwKKyAgICBBIyNzbzEgXj0gRG8xOyBcCisgICAgQm11MSA9IFJPTDMyKEEjI3NvMSwgMjgpOyBcCisgICAgRSMjbWkxID0gICBCbWkxIF4oKH5CbW8xKXwgIEJtdTEgKTsgXAorICAgIEUjI21vMSA9ICh+Qm1vMSleKCAgQm11MSAmICBCbWExICk7IFwKKyAgICBFIyNtdTEgPSAgIEJtdTEgXiggIEJtYTEgfCAgQm1lMSApOyBcCitcCisgICAgQSMjYmkwIF49IERpMDsgXAorICAgIEJzYTAgPSBST0wzMihBIyNiaTAsIDMxKTsgXAorICAgIEEjI2dvMSBePSBEbzE7IFwKKyAgICBCc2UwID0gUk9MMzIoQSMjZ28xLCAyOCk7IFwKKyAgICBBIyNrdTEgXj0gRHUxOyBcCisgICAgQnNpMCA9IFJPTDMyKEEjI2t1MSwgMjApOyBcCisgICAgRSMjc2EwID0gICBCc2EwIF4oKH5Cc2UwKSYgIEJzaTAgKTsgXAorICAgIEEjI21hMSBePSBEYTE7IFwKKyAgICBCc28wID0gUk9MMzIoQSMjbWExLCAyMSk7IFwKKyAgICBFIyNzZTAgPSAofkJzZTApXiggIEJzaTAgfCAgQnNvMCApOyBcCisgICAgQSMjc2UwIF49IERlMDsgXAorICAgIEJzdTAgPSBST0wzMihBIyNzZTAsIDEpOyBcCisgICAgRSMjc2kwID0gICBCc2kwIF4oICBCc28wICYgIEJzdTAgKTsgXAorICAgIEUjI3NvMCA9ICAgQnNvMCBeKCAgQnN1MCB8ICBCc2EwICk7IFwKKyAgICBFIyNzdTAgPSAgIEJzdTAgXiggIEJzYTAgJiAgQnNlMCApOyBcCitcCisgICAgQSMjYmkxIF49IERpMTsgXAorICAgIEJzYTEgPSBST0wzMihBIyNiaTEsIDMxKTsgXAorICAgIEEjI2dvMCBePSBEbzA7IFwKKyAgICBCc2UxID0gUk9MMzIoQSMjZ28wLCAyNyk7IFwKKyAgICBBIyNrdTAgXj0gRHUwOyBcCisgICAgQnNpMSA9IFJPTDMyKEEjI2t1MCwgMTkpOyBcCisgICAgRSMjc2ExID0gICBCc2ExIF4oKH5Cc2UxKSYgIEJzaTEgKTsgXAorICAgIEEjI21hMCBePSBEYTA7IFwKKyAgICBCc28xID0gUk9MMzIoQSMjbWEwLCAyMCk7IFwKKyAgICBFIyNzZTEgPSAofkJzZTEpXiggIEJzaTEgfCAgQnNvMSApOyBcCisgICAgQSMjc2UxIF49IERlMTsgXAorICAgIEJzdTEgPSBST0wzMihBIyNzZTEsIDEpOyBcCisgICAgRSMjc2kxID0gICBCc2kxIF4oICBCc28xICYgIEJzdTEgKTsgXAorICAgIEUjI3NvMSA9ICAgQnNvMSBeKCAgQnN1MSB8ICBCc2ExICk7IFwKKyAgICBFIyNzdTEgPSAgIEJzdTEgXiggIEJzYTEgJiAgQnNlMSApOyBcCitcCisKKyNlbHNlIC8qICBVc2VCZWJpZ29raW1pc2EgKi8KKy8qICAtLS0gQ29kZSBmb3Igcm91bmQsIHdpdGggcHJlcGFyZS10aGV0YSAqLworLyogIC0tLSB1c2luZyBmYWN0b3IgMiBpbnRlcmxlYXZpbmcsIDY0LWJpdCBsYW5lcyBtYXBwZWQgdG8gMzItYml0IHdvcmRzICovCisjZGVmaW5lIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGksIEEsIEUpIFwKKyAgICBEYTAgPSBDdTBeUk9MMzIoQ2UxLCAxKTsgXAorICAgIERhMSA9IEN1MV5DZTA7IFwKKyAgICBEZTAgPSBDYTBeUk9MMzIoQ2kxLCAxKTsgXAorICAgIERlMSA9IENhMV5DaTA7IFwKKyAgICBEaTAgPSBDZTBeUk9MMzIoQ28xLCAxKTsgXAorICAgIERpMSA9IENlMV5DbzA7IFwKKyAgICBEbzAgPSBDaTBeUk9MMzIoQ3UxLCAxKTsgXAorICAgIERvMSA9IENpMV5DdTA7IFwKKyAgICBEdTAgPSBDbzBeUk9MMzIoQ2ExLCAxKTsgXAorICAgIER1MSA9IENvMV5DYTA7IFwKK1wKKyAgICBBIyNiYTAgXj0gRGEwOyBcCisgICAgQmJhMCA9IEEjI2JhMDsgXAorICAgIEEjI2dlMCBePSBEZTA7IFwKKyAgICBCYmUwID0gUk9MMzIoQSMjZ2UwLCAyMik7IFwKKyAgICBBIyNraTEgXj0gRGkxOyBcCisgICAgQmJpMCA9IFJPTDMyKEEjI2tpMSwgMjIpOyBcCisgICAgRSMjYmEwID0gICBCYmEwIF4oKH5CYmUwKSYgIEJiaTAgKTsgXAorICAgIEUjI2JhMCBePSBLZWNjYWtGMTYwMFJvdW5kQ29uc3RhbnRzX2ludDJfMFtpXTsgXAorICAgIENhMCA9IEUjI2JhMDsgXAorICAgIEEjI21vMSBePSBEbzE7IFwKKyAgICBCYm8wID0gUk9MMzIoQSMjbW8xLCAxMSk7IFwKKyAgICBFIyNiZTAgPSAgIEJiZTAgXigofkJiaTApJiAgQmJvMCApOyBcCisgICAgQ2UwID0gRSMjYmUwOyBcCisgICAgQSMjc3UwIF49IER1MDsgXAorICAgIEJidTAgPSBST0wzMihBIyNzdTAsIDcpOyBcCisgICAgRSMjYmkwID0gICBCYmkwIF4oKH5CYm8wKSYgIEJidTAgKTsgXAorICAgIENpMCA9IEUjI2JpMDsgXAorICAgIEUjI2JvMCA9ICAgQmJvMCBeKCh+QmJ1MCkmICBCYmEwICk7IFwKKyAgICBDbzAgPSBFIyNibzA7IFwKKyAgICBFIyNidTAgPSAgIEJidTAgXigofkJiYTApJiAgQmJlMCApOyBcCisgICAgQ3UwID0gRSMjYnUwOyBcCitcCisgICAgQSMjYmExIF49IERhMTsgXAorICAgIEJiYTEgPSBBIyNiYTE7IFwKKyAgICBBIyNnZTEgXj0gRGUxOyBcCisgICAgQmJlMSA9IFJPTDMyKEEjI2dlMSwgMjIpOyBcCisgICAgQSMja2kwIF49IERpMDsgXAorICAgIEJiaTEgPSBST0wzMihBIyNraTAsIDIxKTsgXAorICAgIEUjI2JhMSA9ICAgQmJhMSBeKCh+QmJlMSkmICBCYmkxICk7IFwKKyAgICBFIyNiYTEgXj0gS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c19pbnQyXzFbaV07IFwKKyAgICBDYTEgPSBFIyNiYTE7IFwKKyAgICBBIyNtbzAgXj0gRG8wOyBcCisgICAgQmJvMSA9IFJPTDMyKEEjI21vMCwgMTApOyBcCisgICAgRSMjYmUxID0gICBCYmUxIF4oKH5CYmkxKSYgIEJibzEgKTsgXAorICAgIENlMSA9IEUjI2JlMTsgXAorICAgIEEjI3N1MSBePSBEdTE7IFwKKyAgICBCYnUxID0gUk9MMzIoQSMjc3UxLCA3KTsgXAorICAgIEUjI2JpMSA9ICAgQmJpMSBeKCh+QmJvMSkmICBCYnUxICk7IFwKKyAgICBDaTEgPSBFIyNiaTE7IFwKKyAgICBFIyNibzEgPSAgIEJibzEgXigofkJidTEpJiAgQmJhMSApOyBcCisgICAgQ28xID0gRSMjYm8xOyBcCisgICAgRSMjYnUxID0gICBCYnUxIF4oKH5CYmExKSYgIEJiZTEgKTsgXAorICAgIEN1MSA9IEUjI2J1MTsgXAorXAorICAgIEEjI2JvMCBePSBEbzA7IFwKKyAgICBCZ2EwID0gUk9MMzIoQSMjYm8wLCAxNCk7IFwKKyAgICBBIyNndTAgXj0gRHUwOyBcCisgICAgQmdlMCA9IFJPTDMyKEEjI2d1MCwgMTApOyBcCisgICAgQSMja2ExIF49IERhMTsgXAorICAgIEJnaTAgPSBST0wzMihBIyNrYTEsIDIpOyBcCisgICAgRSMjZ2EwID0gICBCZ2EwIF4oKH5CZ2UwKSYgIEJnaTAgKTsgXAorICAgIENhMCBePSBFIyNnYTA7IFwKKyAgICBBIyNtZTEgXj0gRGUxOyBcCisgICAgQmdvMCA9IFJPTDMyKEEjI21lMSwgMjMpOyBcCisgICAgRSMjZ2UwID0gICBCZ2UwIF4oKH5CZ2kwKSYgIEJnbzAgKTsgXAorICAgIENlMCBePSBFIyNnZTA7IFwKKyAgICBBIyNzaTEgXj0gRGkxOyBcCisgICAgQmd1MCA9IFJPTDMyKEEjI3NpMSwgMzEpOyBcCisgICAgRSMjZ2kwID0gICBCZ2kwIF4oKH5CZ28wKSYgIEJndTAgKTsgXAorICAgIENpMCBePSBFIyNnaTA7IFwKKyAgICBFIyNnbzAgPSAgIEJnbzAgXigofkJndTApJiAgQmdhMCApOyBcCisgICAgQ28wIF49IEUjI2dvMDsgXAorICAgIEUjI2d1MCA9ICAgQmd1MCBeKCh+QmdhMCkmICBCZ2UwICk7IFwKKyAgICBDdTAgXj0gRSMjZ3UwOyBcCitcCisgICAgQSMjYm8xIF49IERvMTsgXAorICAgIEJnYTEgPSBST0wzMihBIyNibzEsIDE0KTsgXAorICAgIEEjI2d1MSBePSBEdTE7IFwKKyAgICBCZ2UxID0gUk9MMzIoQSMjZ3UxLCAxMCk7IFwKKyAgICBBIyNrYTAgXj0gRGEwOyBcCisgICAgQmdpMSA9IFJPTDMyKEEjI2thMCwgMSk7IFwKKyAgICBFIyNnYTEgPSAgIEJnYTEgXigofkJnZTEpJiAgQmdpMSApOyBcCisgICAgQ2ExIF49IEUjI2dhMTsgXAorICAgIEEjI21lMCBePSBEZTA7IFwKKyAgICBCZ28xID0gUk9MMzIoQSMjbWUwLCAyMik7IFwKKyAgICBFIyNnZTEgPSAgIEJnZTEgXigofkJnaTEpJiAgQmdvMSApOyBcCisgICAgQ2UxIF49IEUjI2dlMTsgXAorICAgIEEjI3NpMCBePSBEaTA7IFwKKyAgICBCZ3UxID0gUk9MMzIoQSMjc2kwLCAzMCk7IFwKKyAgICBFIyNnaTEgPSAgIEJnaTEgXigofkJnbzEpJiAgQmd1MSApOyBcCisgICAgQ2kxIF49IEUjI2dpMTsgXAorICAgIEUjI2dvMSA9ICAgQmdvMSBeKCh+Qmd1MSkmICBCZ2ExICk7IFwKKyAgICBDbzEgXj0gRSMjZ28xOyBcCisgICAgRSMjZ3UxID0gICBCZ3UxIF4oKH5CZ2ExKSYgIEJnZTEgKTsgXAorICAgIEN1MSBePSBFIyNndTE7IFwKK1wKKyAgICBBIyNiZTEgXj0gRGUxOyBcCisgICAgQmthMCA9IFJPTDMyKEEjI2JlMSwgMSk7IFwKKyAgICBBIyNnaTAgXj0gRGkwOyBcCisgICAgQmtlMCA9IFJPTDMyKEEjI2dpMCwgMyk7IFwKKyAgICBBIyNrbzEgXj0gRG8xOyBcCisgICAgQmtpMCA9IFJPTDMyKEEjI2tvMSwgMTMpOyBcCisgICAgRSMja2EwID0gICBCa2EwIF4oKH5Ca2UwKSYgIEJraTAgKTsgXAorICAgIENhMCBePSBFIyNrYTA7IFwKKyAgICBBIyNtdTAgXj0gRHUwOyBcCisgICAgQmtvMCA9IFJPTDMyKEEjI211MCwgNCk7IFwKKyAgICBFIyNrZTAgPSAgIEJrZTAgXigofkJraTApJiAgQmtvMCApOyBcCisgICAgQ2UwIF49IEUjI2tlMDsgXAorICAgIEEjI3NhMCBePSBEYTA7IFwKKyAgICBCa3UwID0gUk9MMzIoQSMjc2EwLCA5KTsgXAorICAgIEUjI2tpMCA9ICAgQmtpMCBeKCh+QmtvMCkmICBCa3UwICk7IFwKKyAgICBDaTAgXj0gRSMja2kwOyBcCisgICAgRSMja28wID0gICBCa28wIF4oKH5Ca3UwKSYgIEJrYTAgKTsgXAorICAgIENvMCBePSBFIyNrbzA7IFwKKyAgICBFIyNrdTAgPSAgIEJrdTAgXigofkJrYTApJiAgQmtlMCApOyBcCisgICAgQ3UwIF49IEUjI2t1MDsgXAorXAorICAgIEEjI2JlMCBePSBEZTA7IFwKKyAgICBCa2ExID0gQSMjYmUwOyBcCisgICAgQSMjZ2kxIF49IERpMTsgXAorICAgIEJrZTEgPSBST0wzMihBIyNnaTEsIDMpOyBcCisgICAgQSMja28wIF49IERvMDsgXAorICAgIEJraTEgPSBST0wzMihBIyNrbzAsIDEyKTsgXAorICAgIEUjI2thMSA9ICAgQmthMSBeKCh+QmtlMSkmICBCa2kxICk7IFwKKyAgICBDYTEgXj0gRSMja2ExOyBcCisgICAgQSMjbXUxIF49IER1MTsgXAorICAgIEJrbzEgPSBST0wzMihBIyNtdTEsIDQpOyBcCisgICAgRSMja2UxID0gICBCa2UxIF4oKH5Ca2kxKSYgIEJrbzEgKTsgXAorICAgIENlMSBePSBFIyNrZTE7IFwKKyAgICBBIyNzYTEgXj0gRGExOyBcCisgICAgQmt1MSA9IFJPTDMyKEEjI3NhMSwgOSk7IFwKKyAgICBFIyNraTEgPSAgIEJraTEgXigofkJrbzEpJiAgQmt1MSApOyBcCisgICAgQ2kxIF49IEUjI2tpMTsgXAorICAgIEUjI2tvMSA9ICAgQmtvMSBeKCh+Qmt1MSkmICBCa2ExICk7IFwKKyAgICBDbzEgXj0gRSMja28xOyBcCisgICAgRSMja3UxID0gICBCa3UxIF4oKH5Ca2ExKSYgIEJrZTEgKTsgXAorICAgIEN1MSBePSBFIyNrdTE7IFwKK1wKKyAgICBBIyNidTEgXj0gRHUxOyBcCisgICAgQm1hMCA9IFJPTDMyKEEjI2J1MSwgMTQpOyBcCisgICAgQSMjZ2EwIF49IERhMDsgXAorICAgIEJtZTAgPSBST0wzMihBIyNnYTAsIDE4KTsgXAorICAgIEEjI2tlMCBePSBEZTA7IFwKKyAgICBCbWkwID0gUk9MMzIoQSMja2UwLCA1KTsgXAorICAgIEUjI21hMCA9ICAgQm1hMCBeKCh+Qm1lMCkmICBCbWkwICk7IFwKKyAgICBDYTAgXj0gRSMjbWEwOyBcCisgICAgQSMjbWkxIF49IERpMTsgXAorICAgIEJtbzAgPSBST0wzMihBIyNtaTEsIDgpOyBcCisgICAgRSMjbWUwID0gICBCbWUwIF4oKH5CbWkwKSYgIEJtbzAgKTsgXAorICAgIENlMCBePSBFIyNtZTA7IFwKKyAgICBBIyNzbzAgXj0gRG8wOyBcCisgICAgQm11MCA9IFJPTDMyKEEjI3NvMCwgMjgpOyBcCisgICAgRSMjbWkwID0gICBCbWkwIF4oKH5CbW8wKSYgIEJtdTAgKTsgXAorICAgIENpMCBePSBFIyNtaTA7IFwKKyAgICBFIyNtbzAgPSAgIEJtbzAgXigofkJtdTApJiAgQm1hMCApOyBcCisgICAgQ28wIF49IEUjI21vMDsgXAorICAgIEUjI211MCA9ICAgQm11MCBeKCh+Qm1hMCkmICBCbWUwICk7IFwKKyAgICBDdTAgXj0gRSMjbXUwOyBcCitcCisgICAgQSMjYnUwIF49IER1MDsgXAorICAgIEJtYTEgPSBST0wzMihBIyNidTAsIDEzKTsgXAorICAgIEEjI2dhMSBePSBEYTE7IFwKKyAgICBCbWUxID0gUk9MMzIoQSMjZ2ExLCAxOCk7IFwKKyAgICBBIyNrZTEgXj0gRGUxOyBcCisgICAgQm1pMSA9IFJPTDMyKEEjI2tlMSwgNSk7IFwKKyAgICBFIyNtYTEgPSAgIEJtYTEgXigofkJtZTEpJiAgQm1pMSApOyBcCisgICAgQ2ExIF49IEUjI21hMTsgXAorICAgIEEjI21pMCBePSBEaTA7IFwKKyAgICBCbW8xID0gUk9MMzIoQSMjbWkwLCA3KTsgXAorICAgIEUjI21lMSA9ICAgQm1lMSBeKCh+Qm1pMSkmICBCbW8xICk7IFwKKyAgICBDZTEgXj0gRSMjbWUxOyBcCisgICAgQSMjc28xIF49IERvMTsgXAorICAgIEJtdTEgPSBST0wzMihBIyNzbzEsIDI4KTsgXAorICAgIEUjI21pMSA9ICAgQm1pMSBeKCh+Qm1vMSkmICBCbXUxICk7IFwKKyAgICBDaTEgXj0gRSMjbWkxOyBcCisgICAgRSMjbW8xID0gICBCbW8xIF4oKH5CbXUxKSYgIEJtYTEgKTsgXAorICAgIENvMSBePSBFIyNtbzE7IFwKKyAgICBFIyNtdTEgPSAgIEJtdTEgXigofkJtYTEpJiAgQm1lMSApOyBcCisgICAgQ3UxIF49IEUjI211MTsgXAorXAorICAgIEEjI2JpMCBePSBEaTA7IFwKKyAgICBCc2EwID0gUk9MMzIoQSMjYmkwLCAzMSk7IFwKKyAgICBBIyNnbzEgXj0gRG8xOyBcCisgICAgQnNlMCA9IFJPTDMyKEEjI2dvMSwgMjgpOyBcCisgICAgQSMja3UxIF49IER1MTsgXAorICAgIEJzaTAgPSBST0wzMihBIyNrdTEsIDIwKTsgXAorICAgIEUjI3NhMCA9ICAgQnNhMCBeKCh+QnNlMCkmICBCc2kwICk7IFwKKyAgICBDYTAgXj0gRSMjc2EwOyBcCisgICAgQSMjbWExIF49IERhMTsgXAorICAgIEJzbzAgPSBST0wzMihBIyNtYTEsIDIxKTsgXAorICAgIEUjI3NlMCA9ICAgQnNlMCBeKCh+QnNpMCkmICBCc28wICk7IFwKKyAgICBDZTAgXj0gRSMjc2UwOyBcCisgICAgQSMjc2UwIF49IERlMDsgXAorICAgIEJzdTAgPSBST0wzMihBIyNzZTAsIDEpOyBcCisgICAgRSMjc2kwID0gICBCc2kwIF4oKH5Cc28wKSYgIEJzdTAgKTsgXAorICAgIENpMCBePSBFIyNzaTA7IFwKKyAgICBFIyNzbzAgPSAgIEJzbzAgXigofkJzdTApJiAgQnNhMCApOyBcCisgICAgQ28wIF49IEUjI3NvMDsgXAorICAgIEUjI3N1MCA9ICAgQnN1MCBeKCh+QnNhMCkmICBCc2UwICk7IFwKKyAgICBDdTAgXj0gRSMjc3UwOyBcCitcCisgICAgQSMjYmkxIF49IERpMTsgXAorICAgIEJzYTEgPSBST0wzMihBIyNiaTEsIDMxKTsgXAorICAgIEEjI2dvMCBePSBEbzA7IFwKKyAgICBCc2UxID0gUk9MMzIoQSMjZ28wLCAyNyk7IFwKKyAgICBBIyNrdTAgXj0gRHUwOyBcCisgICAgQnNpMSA9IFJPTDMyKEEjI2t1MCwgMTkpOyBcCisgICAgRSMjc2ExID0gICBCc2ExIF4oKH5Cc2UxKSYgIEJzaTEgKTsgXAorICAgIENhMSBePSBFIyNzYTE7IFwKKyAgICBBIyNtYTAgXj0gRGEwOyBcCisgICAgQnNvMSA9IFJPTDMyKEEjI21hMCwgMjApOyBcCisgICAgRSMjc2UxID0gICBCc2UxIF4oKH5Cc2kxKSYgIEJzbzEgKTsgXAorICAgIENlMSBePSBFIyNzZTE7IFwKKyAgICBBIyNzZTEgXj0gRGUxOyBcCisgICAgQnN1MSA9IFJPTDMyKEEjI3NlMSwgMSk7IFwKKyAgICBFIyNzaTEgPSAgIEJzaTEgXigofkJzbzEpJiAgQnN1MSApOyBcCisgICAgQ2kxIF49IEUjI3NpMTsgXAorICAgIEUjI3NvMSA9ICAgQnNvMSBeKCh+QnN1MSkmICBCc2ExICk7IFwKKyAgICBDbzEgXj0gRSMjc28xOyBcCisgICAgRSMjc3UxID0gICBCc3UxIF4oKH5Cc2ExKSYgIEJzZTEgKTsgXAorICAgIEN1MSBePSBFIyNzdTE7IFwKK1wKKworLyogIC0tLSBDb2RlIGZvciByb3VuZCAqLworLyogIC0tLSB1c2luZyBmYWN0b3IgMiBpbnRlcmxlYXZpbmcsIDY0LWJpdCBsYW5lcyBtYXBwZWQgdG8gMzItYml0IHdvcmRzICovCisjZGVmaW5lIHRoZXRhUmhvUGlDaGlJb3RhKGksIEEsIEUpIFwKKyAgICBEYTAgPSBDdTBeUk9MMzIoQ2UxLCAxKTsgXAorICAgIERhMSA9IEN1MV5DZTA7IFwKKyAgICBEZTAgPSBDYTBeUk9MMzIoQ2kxLCAxKTsgXAorICAgIERlMSA9IENhMV5DaTA7IFwKKyAgICBEaTAgPSBDZTBeUk9MMzIoQ28xLCAxKTsgXAorICAgIERpMSA9IENlMV5DbzA7IFwKKyAgICBEbzAgPSBDaTBeUk9MMzIoQ3UxLCAxKTsgXAorICAgIERvMSA9IENpMV5DdTA7IFwKKyAgICBEdTAgPSBDbzBeUk9MMzIoQ2ExLCAxKTsgXAorICAgIER1MSA9IENvMV5DYTA7IFwKK1wKKyAgICBBIyNiYTAgXj0gRGEwOyBcCisgICAgQmJhMCA9IEEjI2JhMDsgXAorICAgIEEjI2dlMCBePSBEZTA7IFwKKyAgICBCYmUwID0gUk9MMzIoQSMjZ2UwLCAyMik7IFwKKyAgICBBIyNraTEgXj0gRGkxOyBcCisgICAgQmJpMCA9IFJPTDMyKEEjI2tpMSwgMjIpOyBcCisgICAgRSMjYmEwID0gICBCYmEwIF4oKH5CYmUwKSYgIEJiaTAgKTsgXAorICAgIEUjI2JhMCBePSBLZWNjYWtGMTYwMFJvdW5kQ29uc3RhbnRzX2ludDJfMFtpXTsgXAorICAgIEEjI21vMSBePSBEbzE7IFwKKyAgICBCYm8wID0gUk9MMzIoQSMjbW8xLCAxMSk7IFwKKyAgICBFIyNiZTAgPSAgIEJiZTAgXigofkJiaTApJiAgQmJvMCApOyBcCisgICAgQSMjc3UwIF49IER1MDsgXAorICAgIEJidTAgPSBST0wzMihBIyNzdTAsIDcpOyBcCisgICAgRSMjYmkwID0gICBCYmkwIF4oKH5CYm8wKSYgIEJidTAgKTsgXAorICAgIEUjI2JvMCA9ICAgQmJvMCBeKCh+QmJ1MCkmICBCYmEwICk7IFwKKyAgICBFIyNidTAgPSAgIEJidTAgXigofkJiYTApJiAgQmJlMCApOyBcCitcCisgICAgQSMjYmExIF49IERhMTsgXAorICAgIEJiYTEgPSBBIyNiYTE7IFwKKyAgICBBIyNnZTEgXj0gRGUxOyBcCisgICAgQmJlMSA9IFJPTDMyKEEjI2dlMSwgMjIpOyBcCisgICAgQSMja2kwIF49IERpMDsgXAorICAgIEJiaTEgPSBST0wzMihBIyNraTAsIDIxKTsgXAorICAgIEUjI2JhMSA9ICAgQmJhMSBeKCh+QmJlMSkmICBCYmkxICk7IFwKKyAgICBFIyNiYTEgXj0gS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c19pbnQyXzFbaV07IFwKKyAgICBBIyNtbzAgXj0gRG8wOyBcCisgICAgQmJvMSA9IFJPTDMyKEEjI21vMCwgMTApOyBcCisgICAgRSMjYmUxID0gICBCYmUxIF4oKH5CYmkxKSYgIEJibzEgKTsgXAorICAgIEEjI3N1MSBePSBEdTE7IFwKKyAgICBCYnUxID0gUk9MMzIoQSMjc3UxLCA3KTsgXAorICAgIEUjI2JpMSA9ICAgQmJpMSBeKCh+QmJvMSkmICBCYnUxICk7IFwKKyAgICBFIyNibzEgPSAgIEJibzEgXigofkJidTEpJiAgQmJhMSApOyBcCisgICAgRSMjYnUxID0gICBCYnUxIF4oKH5CYmExKSYgIEJiZTEgKTsgXAorXAorICAgIEEjI2JvMCBePSBEbzA7IFwKKyAgICBCZ2EwID0gUk9MMzIoQSMjYm8wLCAxNCk7IFwKKyAgICBBIyNndTAgXj0gRHUwOyBcCisgICAgQmdlMCA9IFJPTDMyKEEjI2d1MCwgMTApOyBcCisgICAgQSMja2ExIF49IERhMTsgXAorICAgIEJnaTAgPSBST0wzMihBIyNrYTEsIDIpOyBcCisgICAgRSMjZ2EwID0gICBCZ2EwIF4oKH5CZ2UwKSYgIEJnaTAgKTsgXAorICAgIEEjI21lMSBePSBEZTE7IFwKKyAgICBCZ28wID0gUk9MMzIoQSMjbWUxLCAyMyk7IFwKKyAgICBFIyNnZTAgPSAgIEJnZTAgXigofkJnaTApJiAgQmdvMCApOyBcCisgICAgQSMjc2kxIF49IERpMTsgXAorICAgIEJndTAgPSBST0wzMihBIyNzaTEsIDMxKTsgXAorICAgIEUjI2dpMCA9ICAgQmdpMCBeKCh+QmdvMCkmICBCZ3UwICk7IFwKKyAgICBFIyNnbzAgPSAgIEJnbzAgXigofkJndTApJiAgQmdhMCApOyBcCisgICAgRSMjZ3UwID0gICBCZ3UwIF4oKH5CZ2EwKSYgIEJnZTAgKTsgXAorXAorICAgIEEjI2JvMSBePSBEbzE7IFwKKyAgICBCZ2ExID0gUk9MMzIoQSMjYm8xLCAxNCk7IFwKKyAgICBBIyNndTEgXj0gRHUxOyBcCisgICAgQmdlMSA9IFJPTDMyKEEjI2d1MSwgMTApOyBcCisgICAgQSMja2EwIF49IERhMDsgXAorICAgIEJnaTEgPSBST0wzMihBIyNrYTAsIDEpOyBcCisgICAgRSMjZ2ExID0gICBCZ2ExIF4oKH5CZ2UxKSYgIEJnaTEgKTsgXAorICAgIEEjI21lMCBePSBEZTA7IFwKKyAgICBCZ28xID0gUk9MMzIoQSMjbWUwLCAyMik7IFwKKyAgICBFIyNnZTEgPSAgIEJnZTEgXigofkJnaTEpJiAgQmdvMSApOyBcCisgICAgQSMjc2kwIF49IERpMDsgXAorICAgIEJndTEgPSBST0wzMihBIyNzaTAsIDMwKTsgXAorICAgIEUjI2dpMSA9ICAgQmdpMSBeKCh+QmdvMSkmICBCZ3UxICk7IFwKKyAgICBFIyNnbzEgPSAgIEJnbzEgXigofkJndTEpJiAgQmdhMSApOyBcCisgICAgRSMjZ3UxID0gICBCZ3UxIF4oKH5CZ2ExKSYgIEJnZTEgKTsgXAorXAorICAgIEEjI2JlMSBePSBEZTE7IFwKKyAgICBCa2EwID0gUk9MMzIoQSMjYmUxLCAxKTsgXAorICAgIEEjI2dpMCBePSBEaTA7IFwKKyAgICBCa2UwID0gUk9MMzIoQSMjZ2kwLCAzKTsgXAorICAgIEEjI2tvMSBePSBEbzE7IFwKKyAgICBCa2kwID0gUk9MMzIoQSMja28xLCAxMyk7IFwKKyAgICBFIyNrYTAgPSAgIEJrYTAgXigofkJrZTApJiAgQmtpMCApOyBcCisgICAgQSMjbXUwIF49IER1MDsgXAorICAgIEJrbzAgPSBST0wzMihBIyNtdTAsIDQpOyBcCisgICAgRSMja2UwID0gICBCa2UwIF4oKH5Ca2kwKSYgIEJrbzAgKTsgXAorICAgIEEjI3NhMCBePSBEYTA7IFwKKyAgICBCa3UwID0gUk9MMzIoQSMjc2EwLCA5KTsgXAorICAgIEUjI2tpMCA9ICAgQmtpMCBeKCh+QmtvMCkmICBCa3UwICk7IFwKKyAgICBFIyNrbzAgPSAgIEJrbzAgXigofkJrdTApJiAgQmthMCApOyBcCisgICAgRSMja3UwID0gICBCa3UwIF4oKH5Ca2EwKSYgIEJrZTAgKTsgXAorXAorICAgIEEjI2JlMCBePSBEZTA7IFwKKyAgICBCa2ExID0gQSMjYmUwOyBcCisgICAgQSMjZ2kxIF49IERpMTsgXAorICAgIEJrZTEgPSBST0wzMihBIyNnaTEsIDMpOyBcCisgICAgQSMja28wIF49IERvMDsgXAorICAgIEJraTEgPSBST0wzMihBIyNrbzAsIDEyKTsgXAorICAgIEUjI2thMSA9ICAgQmthMSBeKCh+QmtlMSkmICBCa2kxICk7IFwKKyAgICBBIyNtdTEgXj0gRHUxOyBcCisgICAgQmtvMSA9IFJPTDMyKEEjI211MSwgNCk7IFwKKyAgICBFIyNrZTEgPSAgIEJrZTEgXigofkJraTEpJiAgQmtvMSApOyBcCisgICAgQSMjc2ExIF49IERhMTsgXAorICAgIEJrdTEgPSBST0wzMihBIyNzYTEsIDkpOyBcCisgICAgRSMja2kxID0gICBCa2kxIF4oKH5Ca28xKSYgIEJrdTEgKTsgXAorICAgIEUjI2tvMSA9ICAgQmtvMSBeKCh+Qmt1MSkmICBCa2ExICk7IFwKKyAgICBFIyNrdTEgPSAgIEJrdTEgXigofkJrYTEpJiAgQmtlMSApOyBcCitcCisgICAgQSMjYnUxIF49IER1MTsgXAorICAgIEJtYTAgPSBST0wzMihBIyNidTEsIDE0KTsgXAorICAgIEEjI2dhMCBePSBEYTA7IFwKKyAgICBCbWUwID0gUk9MMzIoQSMjZ2EwLCAxOCk7IFwKKyAgICBBIyNrZTAgXj0gRGUwOyBcCisgICAgQm1pMCA9IFJPTDMyKEEjI2tlMCwgNSk7IFwKKyAgICBFIyNtYTAgPSAgIEJtYTAgXigofkJtZTApJiAgQm1pMCApOyBcCisgICAgQSMjbWkxIF49IERpMTsgXAorICAgIEJtbzAgPSBST0wzMihBIyNtaTEsIDgpOyBcCisgICAgRSMjbWUwID0gICBCbWUwIF4oKH5CbWkwKSYgIEJtbzAgKTsgXAorICAgIEEjI3NvMCBePSBEbzA7IFwKKyAgICBCbXUwID0gUk9MMzIoQSMjc28wLCAyOCk7IFwKKyAgICBFIyNtaTAgPSAgIEJtaTAgXigofkJtbzApJiAgQm11MCApOyBcCisgICAgRSMjbW8wID0gICBCbW8wIF4oKH5CbXUwKSYgIEJtYTAgKTsgXAorICAgIEUjI211MCA9ICAgQm11MCBeKCh+Qm1hMCkmICBCbWUwICk7IFwKK1wKKyAgICBBIyNidTAgXj0gRHUwOyBcCisgICAgQm1hMSA9IFJPTDMyKEEjI2J1MCwgMTMpOyBcCisgICAgQSMjZ2ExIF49IERhMTsgXAorICAgIEJtZTEgPSBST0wzMihBIyNnYTEsIDE4KTsgXAorICAgIEEjI2tlMSBePSBEZTE7IFwKKyAgICBCbWkxID0gUk9MMzIoQSMja2UxLCA1KTsgXAorICAgIEUjI21hMSA9ICAgQm1hMSBeKCh+Qm1lMSkmICBCbWkxICk7IFwKKyAgICBBIyNtaTAgXj0gRGkwOyBcCisgICAgQm1vMSA9IFJPTDMyKEEjI21pMCwgNyk7IFwKKyAgICBFIyNtZTEgPSAgIEJtZTEgXigofkJtaTEpJiAgQm1vMSApOyBcCisgICAgQSMjc28xIF49IERvMTsgXAorICAgIEJtdTEgPSBST0wzMihBIyNzbzEsIDI4KTsgXAorICAgIEUjI21pMSA9ICAgQm1pMSBeKCh+Qm1vMSkmICBCbXUxICk7IFwKKyAgICBFIyNtbzEgPSAgIEJtbzEgXigofkJtdTEpJiAgQm1hMSApOyBcCisgICAgRSMjbXUxID0gICBCbXUxIF4oKH5CbWExKSYgIEJtZTEgKTsgXAorXAorICAgIEEjI2JpMCBePSBEaTA7IFwKKyAgICBCc2EwID0gUk9MMzIoQSMjYmkwLCAzMSk7IFwKKyAgICBBIyNnbzEgXj0gRG8xOyBcCisgICAgQnNlMCA9IFJPTDMyKEEjI2dvMSwgMjgpOyBcCisgICAgQSMja3UxIF49IER1MTsgXAorICAgIEJzaTAgPSBST0wzMihBIyNrdTEsIDIwKTsgXAorICAgIEUjI3NhMCA9ICAgQnNhMCBeKCh+QnNlMCkmICBCc2kwICk7IFwKKyAgICBBIyNtYTEgXj0gRGExOyBcCisgICAgQnNvMCA9IFJPTDMyKEEjI21hMSwgMjEpOyBcCisgICAgRSMjc2UwID0gICBCc2UwIF4oKH5Cc2kwKSYgIEJzbzAgKTsgXAorICAgIEEjI3NlMCBePSBEZTA7IFwKKyAgICBCc3UwID0gUk9MMzIoQSMjc2UwLCAxKTsgXAorICAgIEUjI3NpMCA9ICAgQnNpMCBeKCh+QnNvMCkmICBCc3UwICk7IFwKKyAgICBFIyNzbzAgPSAgIEJzbzAgXigofkJzdTApJiAgQnNhMCApOyBcCisgICAgRSMjc3UwID0gICBCc3UwIF4oKH5Cc2EwKSYgIEJzZTAgKTsgXAorXAorICAgIEEjI2JpMSBePSBEaTE7IFwKKyAgICBCc2ExID0gUk9MMzIoQSMjYmkxLCAzMSk7IFwKKyAgICBBIyNnbzAgXj0gRG8wOyBcCisgICAgQnNlMSA9IFJPTDMyKEEjI2dvMCwgMjcpOyBcCisgICAgQSMja3UwIF49IER1MDsgXAorICAgIEJzaTEgPSBST0wzMihBIyNrdTAsIDE5KTsgXAorICAgIEUjI3NhMSA9ICAgQnNhMSBeKCh+QnNlMSkmICBCc2kxICk7IFwKKyAgICBBIyNtYTAgXj0gRGEwOyBcCisgICAgQnNvMSA9IFJPTDMyKEEjI21hMCwgMjApOyBcCisgICAgRSMjc2UxID0gICBCc2UxIF4oKH5Cc2kxKSYgIEJzbzEgKTsgXAorICAgIEEjI3NlMSBePSBEZTE7IFwKKyAgICBCc3UxID0gUk9MMzIoQSMjc2UxLCAxKTsgXAorICAgIEUjI3NpMSA9ICAgQnNpMSBeKCh+QnNvMSkmICBCc3UxICk7IFwKKyAgICBFIyNzbzEgPSAgIEJzbzEgXigofkJzdTEpJiAgQnNhMSApOyBcCisgICAgRSMjc3UxID0gICBCc3UxIF4oKH5Cc2ExKSYgIEJzZTEgKTsgXAorXAorCisjZW5kaWYgLyogIFVzZUJlYmlnb2tpbWlzYSAqLworCitjb25zdCBVSU5UMzIgS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c19pbnQyXzBbMjRdID0geworICAgIDB4MDAwMDAwMDFVTCwKKyAgICAweDAwMDAwMDAwVUwsCisgICAgMHgwMDAwMDAwMFVMLAorICAgIDB4MDAwMDAwMDBVTCwKKyAgICAweDAwMDAwMDAxVUwsCisgICAgMHgwMDAwMDAwMVVMLAorICAgIDB4MDAwMDAwMDFVTCwKKyAgICAweDAwMDAwMDAxVUwsCisgICAgMHgwMDAwMDAwMFVMLAorICAgIDB4MDAwMDAwMDBVTCwKKyAgICAweDAwMDAwMDAxVUwsCisgICAgMHgwMDAwMDAwMFVMLAorICAgIDB4MDAwMDAwMDFVTCwKKyAgICAweDAwMDAwMDAxVUwsCisgICAgMHgwMDAwMDAwMVVMLAorICAgIDB4MDAwMDAwMDFVTCwKKyAgICAweDAwMDAwMDAwVUwsCisgICAgMHgwMDAwMDAwMFVMLAorICAgIDB4MDAwMDAwMDBVTCwKKyAgICAweDAwMDAwMDAwVUwsCisgICAgMHgwMDAwMDAwMVVMLAorICAgIDB4MDAwMDAwMDBVTCwKKyAgICAweDAwMDAwMDAxVUwsCisgICAgMHgwMDAwMDAwMFVMIH07CisKK2NvbnN0IFVJTlQzMiBLZWNjYWtGMTYwMFJvdW5kQ29uc3RhbnRzX2ludDJfMVsyNF0gPSB7CisgICAgMHgwMDAwMDAwMFVMLAorICAgIDB4MDAwMDAwODlVTCwKKyAgICAweDgwMDAwMDhiVUwsCisgICAgMHg4MDAwODA4MFVMLAorICAgIDB4MDAwMDAwOGJVTCwKKyAgICAweDAwMDA4MDAwVUwsCisgICAgMHg4MDAwODA4OFVMLAorICAgIDB4ODAwMDAwODJVTCwKKyAgICAweDAwMDAwMDBiVUwsCisgICAgMHgwMDAwMDAwYVVMLAorICAgIDB4MDAwMDgwODJVTCwKKyAgICAweDAwMDA4MDAzVUwsCisgICAgMHgwMDAwODA4YlVMLAorICAgIDB4ODAwMDAwMGJVTCwKKyAgICAweDgwMDAwMDhhVUwsCisgICAgMHg4MDAwMDA4MVVMLAorICAgIDB4ODAwMDAwODFVTCwKKyAgICAweDgwMDAwMDA4VUwsCisgICAgMHgwMDAwMDA4M1VMLAorICAgIDB4ODAwMDgwMDNVTCwKKyAgICAweDgwMDA4MDg4VUwsCisgICAgMHg4MDAwMDA4OFVMLAorICAgIDB4MDAwMDgwMDBVTCwKKyAgICAweDgwMDA4MDgyVUwgfTsKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlQW5kWG9yMTAyNGJpdHMoWCwgc3RhdGUsIGlucHV0KSBcCisgICAgWCMjYmEwID0gc3RhdGVbIDBdXmlucHV0WyAwXTsgXAorICAgIFgjI2JhMSA9IHN0YXRlWyAxXV5pbnB1dFsgMV07IFwKKyAgICBYIyNiZTAgPSBzdGF0ZVsgMl1eaW5wdXRbIDJdOyBcCisgICAgWCMjYmUxID0gc3RhdGVbIDNdXmlucHV0WyAzXTsgXAorICAgIFgjI2JpMCA9IHN0YXRlWyA0XV5pbnB1dFsgNF07IFwKKyAgICBYIyNiaTEgPSBzdGF0ZVsgNV1eaW5wdXRbIDVdOyBcCisgICAgWCMjYm8wID0gc3RhdGVbIDZdXmlucHV0WyA2XTsgXAorICAgIFgjI2JvMSA9IHN0YXRlWyA3XV5pbnB1dFsgN107IFwKKyAgICBYIyNidTAgPSBzdGF0ZVsgOF1eaW5wdXRbIDhdOyBcCisgICAgWCMjYnUxID0gc3RhdGVbIDldXmlucHV0WyA5XTsgXAorICAgIFgjI2dhMCA9IHN0YXRlWzEwXV5pbnB1dFsxMF07IFwKKyAgICBYIyNnYTEgPSBzdGF0ZVsxMV1eaW5wdXRbMTFdOyBcCisgICAgWCMjZ2UwID0gc3RhdGVbMTJdXmlucHV0WzEyXTsgXAorICAgIFgjI2dlMSA9IHN0YXRlWzEzXV5pbnB1dFsxM107IFwKKyAgICBYIyNnaTAgPSBzdGF0ZVsxNF1eaW5wdXRbMTRdOyBcCisgICAgWCMjZ2kxID0gc3RhdGVbMTVdXmlucHV0WzE1XTsgXAorICAgIFgjI2dvMCA9IHN0YXRlWzE2XV5pbnB1dFsxNl07IFwKKyAgICBYIyNnbzEgPSBzdGF0ZVsxN11eaW5wdXRbMTddOyBcCisgICAgWCMjZ3UwID0gc3RhdGVbMThdXmlucHV0WzE4XTsgXAorICAgIFgjI2d1MSA9IHN0YXRlWzE5XV5pbnB1dFsxOV07IFwKKyAgICBYIyNrYTAgPSBzdGF0ZVsyMF1eaW5wdXRbMjBdOyBcCisgICAgWCMja2ExID0gc3RhdGVbMjFdXmlucHV0WzIxXTsgXAorICAgIFgjI2tlMCA9IHN0YXRlWzIyXV5pbnB1dFsyMl07IFwKKyAgICBYIyNrZTEgPSBzdGF0ZVsyM11eaW5wdXRbMjNdOyBcCisgICAgWCMja2kwID0gc3RhdGVbMjRdXmlucHV0WzI0XTsgXAorICAgIFgjI2tpMSA9IHN0YXRlWzI1XV5pbnB1dFsyNV07IFwKKyAgICBYIyNrbzAgPSBzdGF0ZVsyNl1eaW5wdXRbMjZdOyBcCisgICAgWCMja28xID0gc3RhdGVbMjddXmlucHV0WzI3XTsgXAorICAgIFgjI2t1MCA9IHN0YXRlWzI4XV5pbnB1dFsyOF07IFwKKyAgICBYIyNrdTEgPSBzdGF0ZVsyOV1eaW5wdXRbMjldOyBcCisgICAgWCMjbWEwID0gc3RhdGVbMzBdXmlucHV0WzMwXTsgXAorICAgIFgjI21hMSA9IHN0YXRlWzMxXV5pbnB1dFszMV07IFwKKyAgICBYIyNtZTAgPSBzdGF0ZVszMl07IFwKKyAgICBYIyNtZTEgPSBzdGF0ZVszM107IFwKKyAgICBYIyNtaTAgPSBzdGF0ZVszNF07IFwKKyAgICBYIyNtaTEgPSBzdGF0ZVszNV07IFwKKyAgICBYIyNtbzAgPSBzdGF0ZVszNl07IFwKKyAgICBYIyNtbzEgPSBzdGF0ZVszN107IFwKKyAgICBYIyNtdTAgPSBzdGF0ZVszOF07IFwKKyAgICBYIyNtdTEgPSBzdGF0ZVszOV07IFwKKyAgICBYIyNzYTAgPSBzdGF0ZVs0MF07IFwKKyAgICBYIyNzYTEgPSBzdGF0ZVs0MV07IFwKKyAgICBYIyNzZTAgPSBzdGF0ZVs0Ml07IFwKKyAgICBYIyNzZTEgPSBzdGF0ZVs0M107IFwKKyAgICBYIyNzaTAgPSBzdGF0ZVs0NF07IFwKKyAgICBYIyNzaTEgPSBzdGF0ZVs0NV07IFwKKyAgICBYIyNzbzAgPSBzdGF0ZVs0Nl07IFwKKyAgICBYIyNzbzEgPSBzdGF0ZVs0N107IFwKKyAgICBYIyNzdTAgPSBzdGF0ZVs0OF07IFwKKyAgICBYIyNzdTEgPSBzdGF0ZVs0OV07IFwKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlQW5kWG9yMTA4OGJpdHMoWCwgc3RhdGUsIGlucHV0KSBcCisgICAgWCMjYmEwID0gc3RhdGVbIDBdXmlucHV0WyAwXTsgXAorICAgIFgjI2JhMSA9IHN0YXRlWyAxXV5pbnB1dFsgMV07IFwKKyAgICBYIyNiZTAgPSBzdGF0ZVsgMl1eaW5wdXRbIDJdOyBcCisgICAgWCMjYmUxID0gc3RhdGVbIDNdXmlucHV0WyAzXTsgXAorICAgIFgjI2JpMCA9IHN0YXRlWyA0XV5pbnB1dFsgNF07IFwKKyAgICBYIyNiaTEgPSBzdGF0ZVsgNV1eaW5wdXRbIDVdOyBcCisgICAgWCMjYm8wID0gc3RhdGVbIDZdXmlucHV0WyA2XTsgXAorICAgIFgjI2JvMSA9IHN0YXRlWyA3XV5pbnB1dFsgN107IFwKKyAgICBYIyNidTAgPSBzdGF0ZVsgOF1eaW5wdXRbIDhdOyBcCisgICAgWCMjYnUxID0gc3RhdGVbIDldXmlucHV0WyA5XTsgXAorICAgIFgjI2dhMCA9IHN0YXRlWzEwXV5pbnB1dFsxMF07IFwKKyAgICBYIyNnYTEgPSBzdGF0ZVsxMV1eaW5wdXRbMTFdOyBcCisgICAgWCMjZ2UwID0gc3RhdGVbMTJdXmlucHV0WzEyXTsgXAorICAgIFgjI2dlMSA9IHN0YXRlWzEzXV5pbnB1dFsxM107IFwKKyAgICBYIyNnaTAgPSBzdGF0ZVsxNF1eaW5wdXRbMTRdOyBcCisgICAgWCMjZ2kxID0gc3RhdGVbMTVdXmlucHV0WzE1XTsgXAorICAgIFgjI2dvMCA9IHN0YXRlWzE2XV5pbnB1dFsxNl07IFwKKyAgICBYIyNnbzEgPSBzdGF0ZVsxN11eaW5wdXRbMTddOyBcCisgICAgWCMjZ3UwID0gc3RhdGVbMThdXmlucHV0WzE4XTsgXAorICAgIFgjI2d1MSA9IHN0YXRlWzE5XV5pbnB1dFsxOV07IFwKKyAgICBYIyNrYTAgPSBzdGF0ZVsyMF1eaW5wdXRbMjBdOyBcCisgICAgWCMja2ExID0gc3RhdGVbMjFdXmlucHV0WzIxXTsgXAorICAgIFgjI2tlMCA9IHN0YXRlWzIyXV5pbnB1dFsyMl07IFwKKyAgICBYIyNrZTEgPSBzdGF0ZVsyM11eaW5wdXRbMjNdOyBcCisgICAgWCMja2kwID0gc3RhdGVbMjRdXmlucHV0WzI0XTsgXAorICAgIFgjI2tpMSA9IHN0YXRlWzI1XV5pbnB1dFsyNV07IFwKKyAgICBYIyNrbzAgPSBzdGF0ZVsyNl1eaW5wdXRbMjZdOyBcCisgICAgWCMja28xID0gc3RhdGVbMjddXmlucHV0WzI3XTsgXAorICAgIFgjI2t1MCA9IHN0YXRlWzI4XV5pbnB1dFsyOF07IFwKKyAgICBYIyNrdTEgPSBzdGF0ZVsyOV1eaW5wdXRbMjldOyBcCisgICAgWCMjbWEwID0gc3RhdGVbMzBdXmlucHV0WzMwXTsgXAorICAgIFgjI21hMSA9IHN0YXRlWzMxXV5pbnB1dFszMV07IFwKKyAgICBYIyNtZTAgPSBzdGF0ZVszMl1eaW5wdXRbMzJdOyBcCisgICAgWCMjbWUxID0gc3RhdGVbMzNdXmlucHV0WzMzXTsgXAorICAgIFgjI21pMCA9IHN0YXRlWzM0XTsgXAorICAgIFgjI21pMSA9IHN0YXRlWzM1XTsgXAorICAgIFgjI21vMCA9IHN0YXRlWzM2XTsgXAorICAgIFgjI21vMSA9IHN0YXRlWzM3XTsgXAorICAgIFgjI211MCA9IHN0YXRlWzM4XTsgXAorICAgIFgjI211MSA9IHN0YXRlWzM5XTsgXAorICAgIFgjI3NhMCA9IHN0YXRlWzQwXTsgXAorICAgIFgjI3NhMSA9IHN0YXRlWzQxXTsgXAorICAgIFgjI3NlMCA9IHN0YXRlWzQyXTsgXAorICAgIFgjI3NlMSA9IHN0YXRlWzQzXTsgXAorICAgIFgjI3NpMCA9IHN0YXRlWzQ0XTsgXAorICAgIFgjI3NpMSA9IHN0YXRlWzQ1XTsgXAorICAgIFgjI3NvMCA9IHN0YXRlWzQ2XTsgXAorICAgIFgjI3NvMSA9IHN0YXRlWzQ3XTsgXAorICAgIFgjI3N1MCA9IHN0YXRlWzQ4XTsgXAorICAgIFgjI3N1MSA9IHN0YXRlWzQ5XTsgXAorCisjZGVmaW5lIGNvcHlGcm9tU3RhdGUoWCwgc3RhdGUpIFwKKyAgICBYIyNiYTAgPSBzdGF0ZVsgMF07IFwKKyAgICBYIyNiYTEgPSBzdGF0ZVsgMV07IFwKKyAgICBYIyNiZTAgPSBzdGF0ZVsgMl07IFwKKyAgICBYIyNiZTEgPSBzdGF0ZVsgM107IFwKKyAgICBYIyNiaTAgPSBzdGF0ZVsgNF07IFwKKyAgICBYIyNiaTEgPSBzdGF0ZVsgNV07IFwKKyAgICBYIyNibzAgPSBzdGF0ZVsgNl07IFwKKyAgICBYIyNibzEgPSBzdGF0ZVsgN107IFwKKyAgICBYIyNidTAgPSBzdGF0ZVsgOF07IFwKKyAgICBYIyNidTEgPSBzdGF0ZVsgOV07IFwKKyAgICBYIyNnYTAgPSBzdGF0ZVsxMF07IFwKKyAgICBYIyNnYTEgPSBzdGF0ZVsxMV07IFwKKyAgICBYIyNnZTAgPSBzdGF0ZVsxMl07IFwKKyAgICBYIyNnZTEgPSBzdGF0ZVsxM107IFwKKyAgICBYIyNnaTAgPSBzdGF0ZVsxNF07IFwKKyAgICBYIyNnaTEgPSBzdGF0ZVsxNV07IFwKKyAgICBYIyNnbzAgPSBzdGF0ZVsxNl07IFwKKyAgICBYIyNnbzEgPSBzdGF0ZVsxN107IFwKKyAgICBYIyNndTAgPSBzdGF0ZVsxOF07IFwKKyAgICBYIyNndTEgPSBzdGF0ZVsxOV07IFwKKyAgICBYIyNrYTAgPSBzdGF0ZVsyMF07IFwKKyAgICBYIyNrYTEgPSBzdGF0ZVsyMV07IFwKKyAgICBYIyNrZTAgPSBzdGF0ZVsyMl07IFwKKyAgICBYIyNrZTEgPSBzdGF0ZVsyM107IFwKKyAgICBYIyNraTAgPSBzdGF0ZVsyNF07IFwKKyAgICBYIyNraTEgPSBzdGF0ZVsyNV07IFwKKyAgICBYIyNrbzAgPSBzdGF0ZVsyNl07IFwKKyAgICBYIyNrbzEgPSBzdGF0ZVsyN107IFwKKyAgICBYIyNrdTAgPSBzdGF0ZVsyOF07IFwKKyAgICBYIyNrdTEgPSBzdGF0ZVsyOV07IFwKKyAgICBYIyNtYTAgPSBzdGF0ZVszMF07IFwKKyAgICBYIyNtYTEgPSBzdGF0ZVszMV07IFwKKyAgICBYIyNtZTAgPSBzdGF0ZVszMl07IFwKKyAgICBYIyNtZTEgPSBzdGF0ZVszM107IFwKKyAgICBYIyNtaTAgPSBzdGF0ZVszNF07IFwKKyAgICBYIyNtaTEgPSBzdGF0ZVszNV07IFwKKyAgICBYIyNtbzAgPSBzdGF0ZVszNl07IFwKKyAgICBYIyNtbzEgPSBzdGF0ZVszN107IFwKKyAgICBYIyNtdTAgPSBzdGF0ZVszOF07IFwKKyAgICBYIyNtdTEgPSBzdGF0ZVszOV07IFwKKyAgICBYIyNzYTAgPSBzdGF0ZVs0MF07IFwKKyAgICBYIyNzYTEgPSBzdGF0ZVs0MV07IFwKKyAgICBYIyNzZTAgPSBzdGF0ZVs0Ml07IFwKKyAgICBYIyNzZTEgPSBzdGF0ZVs0M107IFwKKyAgICBYIyNzaTAgPSBzdGF0ZVs0NF07IFwKKyAgICBYIyNzaTEgPSBzdGF0ZVs0NV07IFwKKyAgICBYIyNzbzAgPSBzdGF0ZVs0Nl07IFwKKyAgICBYIyNzbzEgPSBzdGF0ZVs0N107IFwKKyAgICBYIyNzdTAgPSBzdGF0ZVs0OF07IFwKKyAgICBYIyNzdTEgPSBzdGF0ZVs0OV07IFwKKworI2RlZmluZSBjb3B5VG9TdGF0ZShzdGF0ZSwgWCkgXAorICAgIHN0YXRlWyAwXSA9IFgjI2JhMDsgXAorICAgIHN0YXRlWyAxXSA9IFgjI2JhMTsgXAorICAgIHN0YXRlWyAyXSA9IFgjI2JlMDsgXAorICAgIHN0YXRlWyAzXSA9IFgjI2JlMTsgXAorICAgIHN0YXRlWyA0XSA9IFgjI2JpMDsgXAorICAgIHN0YXRlWyA1XSA9IFgjI2JpMTsgXAorICAgIHN0YXRlWyA2XSA9IFgjI2JvMDsgXAorICAgIHN0YXRlWyA3XSA9IFgjI2JvMTsgXAorICAgIHN0YXRlWyA4XSA9IFgjI2J1MDsgXAorICAgIHN0YXRlWyA5XSA9IFgjI2J1MTsgXAorICAgIHN0YXRlWzEwXSA9IFgjI2dhMDsgXAorICAgIHN0YXRlWzExXSA9IFgjI2dhMTsgXAorICAgIHN0YXRlWzEyXSA9IFgjI2dlMDsgXAorICAgIHN0YXRlWzEzXSA9IFgjI2dlMTsgXAorICAgIHN0YXRlWzE0XSA9IFgjI2dpMDsgXAorICAgIHN0YXRlWzE1XSA9IFgjI2dpMTsgXAorICAgIHN0YXRlWzE2XSA9IFgjI2dvMDsgXAorICAgIHN0YXRlWzE3XSA9IFgjI2dvMTsgXAorICAgIHN0YXRlWzE4XSA9IFgjI2d1MDsgXAorICAgIHN0YXRlWzE5XSA9IFgjI2d1MTsgXAorICAgIHN0YXRlWzIwXSA9IFgjI2thMDsgXAorICAgIHN0YXRlWzIxXSA9IFgjI2thMTsgXAorICAgIHN0YXRlWzIyXSA9IFgjI2tlMDsgXAorICAgIHN0YXRlWzIzXSA9IFgjI2tlMTsgXAorICAgIHN0YXRlWzI0XSA9IFgjI2tpMDsgXAorICAgIHN0YXRlWzI1XSA9IFgjI2tpMTsgXAorICAgIHN0YXRlWzI2XSA9IFgjI2tvMDsgXAorICAgIHN0YXRlWzI3XSA9IFgjI2tvMTsgXAorICAgIHN0YXRlWzI4XSA9IFgjI2t1MDsgXAorICAgIHN0YXRlWzI5XSA9IFgjI2t1MTsgXAorICAgIHN0YXRlWzMwXSA9IFgjI21hMDsgXAorICAgIHN0YXRlWzMxXSA9IFgjI21hMTsgXAorICAgIHN0YXRlWzMyXSA9IFgjI21lMDsgXAorICAgIHN0YXRlWzMzXSA9IFgjI21lMTsgXAorICAgIHN0YXRlWzM0XSA9IFgjI21pMDsgXAorICAgIHN0YXRlWzM1XSA9IFgjI21pMTsgXAorICAgIHN0YXRlWzM2XSA9IFgjI21vMDsgXAorICAgIHN0YXRlWzM3XSA9IFgjI21vMTsgXAorICAgIHN0YXRlWzM4XSA9IFgjI211MDsgXAorICAgIHN0YXRlWzM5XSA9IFgjI211MTsgXAorICAgIHN0YXRlWzQwXSA9IFgjI3NhMDsgXAorICAgIHN0YXRlWzQxXSA9IFgjI3NhMTsgXAorICAgIHN0YXRlWzQyXSA9IFgjI3NlMDsgXAorICAgIHN0YXRlWzQzXSA9IFgjI3NlMTsgXAorICAgIHN0YXRlWzQ0XSA9IFgjI3NpMDsgXAorICAgIHN0YXRlWzQ1XSA9IFgjI3NpMTsgXAorICAgIHN0YXRlWzQ2XSA9IFgjI3NvMDsgXAorICAgIHN0YXRlWzQ3XSA9IFgjI3NvMTsgXAorICAgIHN0YXRlWzQ4XSA9IFgjI3N1MDsgXAorICAgIHN0YXRlWzQ5XSA9IFgjI3N1MTsgXAorCisjZGVmaW5lIGNvcHlTdGF0ZVZhcmlhYmxlcyhYLCBZKSBcCisgICAgWCMjYmEwID0gWSMjYmEwOyBcCisgICAgWCMjYmExID0gWSMjYmExOyBcCisgICAgWCMjYmUwID0gWSMjYmUwOyBcCisgICAgWCMjYmUxID0gWSMjYmUxOyBcCisgICAgWCMjYmkwID0gWSMjYmkwOyBcCisgICAgWCMjYmkxID0gWSMjYmkxOyBcCisgICAgWCMjYm8wID0gWSMjYm8wOyBcCisgICAgWCMjYm8xID0gWSMjYm8xOyBcCisgICAgWCMjYnUwID0gWSMjYnUwOyBcCisgICAgWCMjYnUxID0gWSMjYnUxOyBcCisgICAgWCMjZ2EwID0gWSMjZ2EwOyBcCisgICAgWCMjZ2ExID0gWSMjZ2ExOyBcCisgICAgWCMjZ2UwID0gWSMjZ2UwOyBcCisgICAgWCMjZ2UxID0gWSMjZ2UxOyBcCisgICAgWCMjZ2kwID0gWSMjZ2kwOyBcCisgICAgWCMjZ2kxID0gWSMjZ2kxOyBcCisgICAgWCMjZ28wID0gWSMjZ28wOyBcCisgICAgWCMjZ28xID0gWSMjZ28xOyBcCisgICAgWCMjZ3UwID0gWSMjZ3UwOyBcCisgICAgWCMjZ3UxID0gWSMjZ3UxOyBcCisgICAgWCMja2EwID0gWSMja2EwOyBcCisgICAgWCMja2ExID0gWSMja2ExOyBcCisgICAgWCMja2UwID0gWSMja2UwOyBcCisgICAgWCMja2UxID0gWSMja2UxOyBcCisgICAgWCMja2kwID0gWSMja2kwOyBcCisgICAgWCMja2kxID0gWSMja2kxOyBcCisgICAgWCMja28wID0gWSMja28wOyBcCisgICAgWCMja28xID0gWSMja28xOyBcCisgICAgWCMja3UwID0gWSMja3UwOyBcCisgICAgWCMja3UxID0gWSMja3UxOyBcCisgICAgWCMjbWEwID0gWSMjbWEwOyBcCisgICAgWCMjbWExID0gWSMjbWExOyBcCisgICAgWCMjbWUwID0gWSMjbWUwOyBcCisgICAgWCMjbWUxID0gWSMjbWUxOyBcCisgICAgWCMjbWkwID0gWSMjbWkwOyBcCisgICAgWCMjbWkxID0gWSMjbWkxOyBcCisgICAgWCMjbW8wID0gWSMjbW8wOyBcCisgICAgWCMjbW8xID0gWSMjbW8xOyBcCisgICAgWCMjbXUwID0gWSMjbXUwOyBcCisgICAgWCMjbXUxID0gWSMjbXUxOyBcCisgICAgWCMjc2EwID0gWSMjc2EwOyBcCisgICAgWCMjc2ExID0gWSMjc2ExOyBcCisgICAgWCMjc2UwID0gWSMjc2UwOyBcCisgICAgWCMjc2UxID0gWSMjc2UxOyBcCisgICAgWCMjc2kwID0gWSMjc2kwOyBcCisgICAgWCMjc2kxID0gWSMjc2kxOyBcCisgICAgWCMjc28wID0gWSMjc28wOyBcCisgICAgWCMjc28xID0gWSMjc28xOyBcCisgICAgWCMjc3UwID0gWSMjc3UwOyBcCisgICAgWCMjc3UxID0gWSMjc3UxOyBcCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC0zMi5tYWNyb3MgYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtMzIubWFjcm9zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhZGU2MDAKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtMzIubWFjcm9zCkBAIC0wLDAgKzEsMjYgQEAKKy8qCitUaGUgS2VjY2FrIHNwb25nZSBmdW5jdGlvbiwgZGVzaWduZWQgYnkgR3VpZG8gQmVydG9uaSwgSm9hbiBEYWVtZW4sCitNaWNoYcOrbCBQZWV0ZXJzIGFuZCBHaWxsZXMgVmFuIEFzc2NoZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIGZlZWRiYWNrIG9yCitxdWVzdGlvbnMsIHBsZWFzZSByZWZlciB0byBvdXIgd2Vic2l0ZTogaHR0cDovL2tlY2Nhay5ub2VrZW9uLm9yZy8KKworSW1wbGVtZW50YXRpb24gYnkgdGhlIGRlc2lnbmVycywKK2hlcmVieSBkZW5vdGVkIGFzICJ0aGUgaW1wbGVtZW50ZXIiLgorCitUbyB0aGUgZXh0ZW50IHBvc3NpYmxlIHVuZGVyIGxhdywgdGhlIGltcGxlbWVudGVyIGhhcyB3YWl2ZWQgYWxsIGNvcHlyaWdodAorYW5kIHJlbGF0ZWQgb3IgbmVpZ2hib3JpbmcgcmlnaHRzIHRvIHRoZSBzb3VyY2UgY29kZSBpbiB0aGlzIGZpbGUuCitodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisqLworCisjaWZkZWYgVXNlU2NoZWR1bGUKKyAgICAjaWYgKFVzZVNjaGVkdWxlID09IDEpCisgICAgICAgICNpbmNsdWRlICJLZWNjYWtGLTE2MDAtMzItczEubWFjcm9zIgorICAgICNlbGlmIChVc2VTY2hlZHVsZSA9PSAyKQorICAgICAgICAjaW5jbHVkZSAiS2VjY2FrRi0xNjAwLTMyLXMyLm1hY3JvcyIKKyAgICAjZWxpZiAoVXNlU2NoZWR1bGUgPT0gMykKKyAgICAgICAgI2luY2x1ZGUgIktlY2Nha0YtMTYwMC0zMi1ydmsubWFjcm9zIgorICAgICNlbHNlCisgICAgICAgICNlcnJvciAiVGhpcyBzY2hlZHVsZSBpcyBub3Qgc3VwcG9ydGVkLiIKKyAgICAjZW5kaWYKKyNlbHNlCisgICAgI2luY2x1ZGUgIktlY2Nha0YtMTYwMC0zMi1zMS5tYWNyb3MiCisjZW5kaWYKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC02NC5tYWNyb3MgYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtNjQubWFjcm9zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMGY3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtNjQubWFjcm9zCkBAIC0wLDAgKzEsNzI4IEBACisvKgorQ29kZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBLZWNjYWtUb29scyEKKworVGhlIEtlY2NhayBzcG9uZ2UgZnVuY3Rpb24sIGRlc2lnbmVkIGJ5IEd1aWRvIEJlcnRvbmksIEpvYW4gRGFlbWVuLAorTWljaGHDq2wgUGVldGVycyBhbmQgR2lsbGVzIFZhbiBBc3NjaGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBmZWVkYmFjayBvcgorcXVlc3Rpb25zLCBwbGVhc2UgcmVmZXIgdG8gb3VyIHdlYnNpdGU6IGh0dHA6Ly9rZWNjYWsubm9la2Vvbi5vcmcvCisKK0ltcGxlbWVudGF0aW9uIGJ5IHRoZSBkZXNpZ25lcnMsCitoZXJlYnkgZGVub3RlZCBhcyAidGhlIGltcGxlbWVudGVyIi4KKworVG8gdGhlIGV4dGVudCBwb3NzaWJsZSB1bmRlciBsYXcsIHRoZSBpbXBsZW1lbnRlciBoYXMgd2FpdmVkIGFsbCBjb3B5cmlnaHQKK2FuZCByZWxhdGVkIG9yIG5laWdoYm9yaW5nIHJpZ2h0cyB0byB0aGUgc291cmNlIGNvZGUgaW4gdGhpcyBmaWxlLgoraHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworKi8KKworI2RlZmluZSBkZWNsYXJlQUJDREUgXAorICAgIFVJTlQ2NCBBYmEsIEFiZSwgQWJpLCBBYm8sIEFidTsgXAorICAgIFVJTlQ2NCBBZ2EsIEFnZSwgQWdpLCBBZ28sIEFndTsgXAorICAgIFVJTlQ2NCBBa2EsIEFrZSwgQWtpLCBBa28sIEFrdTsgXAorICAgIFVJTlQ2NCBBbWEsIEFtZSwgQW1pLCBBbW8sIEFtdTsgXAorICAgIFVJTlQ2NCBBc2EsIEFzZSwgQXNpLCBBc28sIEFzdTsgXAorICAgIFVJTlQ2NCBCYmEsIEJiZSwgQmJpLCBCYm8sIEJidTsgXAorICAgIFVJTlQ2NCBCZ2EsIEJnZSwgQmdpLCBCZ28sIEJndTsgXAorICAgIFVJTlQ2NCBCa2EsIEJrZSwgQmtpLCBCa28sIEJrdTsgXAorICAgIFVJTlQ2NCBCbWEsIEJtZSwgQm1pLCBCbW8sIEJtdTsgXAorICAgIFVJTlQ2NCBCc2EsIEJzZSwgQnNpLCBCc28sIEJzdTsgXAorICAgIFVJTlQ2NCBDYSwgQ2UsIENpLCBDbywgQ3U7IFwKKyAgICBVSU5UNjQgRGEsIERlLCBEaSwgRG8sIER1OyBcCisgICAgVUlOVDY0IEViYSwgRWJlLCBFYmksIEVibywgRWJ1OyBcCisgICAgVUlOVDY0IEVnYSwgRWdlLCBFZ2ksIEVnbywgRWd1OyBcCisgICAgVUlOVDY0IEVrYSwgRWtlLCBFa2ksIEVrbywgRWt1OyBcCisgICAgVUlOVDY0IEVtYSwgRW1lLCBFbWksIEVtbywgRW11OyBcCisgICAgVUlOVDY0IEVzYSwgRXNlLCBFc2ksIEVzbywgRXN1OyBcCisKKyNkZWZpbmUgcHJlcGFyZVRoZXRhIFwKKyAgICBDYSA9IEFiYV5BZ2FeQWthXkFtYV5Bc2E7IFwKKyAgICBDZSA9IEFiZV5BZ2VeQWtlXkFtZV5Bc2U7IFwKKyAgICBDaSA9IEFiaV5BZ2leQWtpXkFtaV5Bc2k7IFwKKyAgICBDbyA9IEFib15BZ29eQWtvXkFtb15Bc287IFwKKyAgICBDdSA9IEFidV5BZ3VeQWt1XkFtdV5Bc3U7IFwKKworI2lmZGVmIFVzZUJlYmlnb2tpbWlzYQorLyogIC0tLSBDb2RlIGZvciByb3VuZCwgd2l0aCBwcmVwYXJlLXRoZXRhIChsYW5lIGNvbXBsZW1lbnRpbmcgcGF0dGVybiAnYmViaWdva2ltaXNhJykgKi8KKy8qICAtLS0gNjQtYml0IGxhbmVzIG1hcHBlZCB0byA2NC1iaXQgd29yZHMgKi8KKyNkZWZpbmUgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSwgQSwgRSkgXAorICAgIERhID0gQ3VeUk9MNjQoQ2UsIDEpOyBcCisgICAgRGUgPSBDYV5ST0w2NChDaSwgMSk7IFwKKyAgICBEaSA9IENlXlJPTDY0KENvLCAxKTsgXAorICAgIERvID0gQ2leUk9MNjQoQ3UsIDEpOyBcCisgICAgRHUgPSBDb15ST0w2NChDYSwgMSk7IFwKK1wKKyAgICBBIyNiYSBePSBEYTsgXAorICAgIEJiYSA9IEEjI2JhOyBcCisgICAgQSMjZ2UgXj0gRGU7IFwKKyAgICBCYmUgPSBST0w2NChBIyNnZSwgNDQpOyBcCisgICAgQSMja2kgXj0gRGk7IFwKKyAgICBCYmkgPSBST0w2NChBIyNraSwgNDMpOyBcCisgICAgQSMjbW8gXj0gRG87IFwKKyAgICBCYm8gPSBST0w2NChBIyNtbywgMjEpOyBcCisgICAgQSMjc3UgXj0gRHU7IFwKKyAgICBCYnUgPSBST0w2NChBIyNzdSwgMTQpOyBcCisgICAgRSMjYmEgPSAgIEJiYSBeKCAgQmJlIHwgIEJiaSApOyBcCisgICAgRSMjYmEgXj0gS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c1tpXTsgXAorICAgIENhID0gRSMjYmE7IFwKKyAgICBFIyNiZSA9ICAgQmJlIF4oKH5CYmkpfCAgQmJvICk7IFwKKyAgICBDZSA9IEUjI2JlOyBcCisgICAgRSMjYmkgPSAgIEJiaSBeKCAgQmJvICYgIEJidSApOyBcCisgICAgQ2kgPSBFIyNiaTsgXAorICAgIEUjI2JvID0gICBCYm8gXiggIEJidSB8ICBCYmEgKTsgXAorICAgIENvID0gRSMjYm87IFwKKyAgICBFIyNidSA9ICAgQmJ1IF4oICBCYmEgJiAgQmJlICk7IFwKKyAgICBDdSA9IEUjI2J1OyBcCitcCisgICAgQSMjYm8gXj0gRG87IFwKKyAgICBCZ2EgPSBST0w2NChBIyNibywgMjgpOyBcCisgICAgQSMjZ3UgXj0gRHU7IFwKKyAgICBCZ2UgPSBST0w2NChBIyNndSwgMjApOyBcCisgICAgQSMja2EgXj0gRGE7IFwKKyAgICBCZ2kgPSBST0w2NChBIyNrYSwgMyk7IFwKKyAgICBBIyNtZSBePSBEZTsgXAorICAgIEJnbyA9IFJPTDY0KEEjI21lLCA0NSk7IFwKKyAgICBBIyNzaSBePSBEaTsgXAorICAgIEJndSA9IFJPTDY0KEEjI3NpLCA2MSk7IFwKKyAgICBFIyNnYSA9ICAgQmdhIF4oICBCZ2UgfCAgQmdpICk7IFwKKyAgICBDYSBePSBFIyNnYTsgXAorICAgIEUjI2dlID0gICBCZ2UgXiggIEJnaSAmICBCZ28gKTsgXAorICAgIENlIF49IEUjI2dlOyBcCisgICAgRSMjZ2kgPSAgIEJnaSBeKCAgQmdvIHwofkJndSkpOyBcCisgICAgQ2kgXj0gRSMjZ2k7IFwKKyAgICBFIyNnbyA9ICAgQmdvIF4oICBCZ3UgfCAgQmdhICk7IFwKKyAgICBDbyBePSBFIyNnbzsgXAorICAgIEUjI2d1ID0gICBCZ3UgXiggIEJnYSAmICBCZ2UgKTsgXAorICAgIEN1IF49IEUjI2d1OyBcCitcCisgICAgQSMjYmUgXj0gRGU7IFwKKyAgICBCa2EgPSBST0w2NChBIyNiZSwgMSk7IFwKKyAgICBBIyNnaSBePSBEaTsgXAorICAgIEJrZSA9IFJPTDY0KEEjI2dpLCA2KTsgXAorICAgIEEjI2tvIF49IERvOyBcCisgICAgQmtpID0gUk9MNjQoQSMja28sIDI1KTsgXAorICAgIEEjI211IF49IER1OyBcCisgICAgQmtvID0gUk9MNjQoQSMjbXUsIDgpOyBcCisgICAgQSMjc2EgXj0gRGE7IFwKKyAgICBCa3UgPSBST0w2NChBIyNzYSwgMTgpOyBcCisgICAgRSMja2EgPSAgIEJrYSBeKCAgQmtlIHwgIEJraSApOyBcCisgICAgQ2EgXj0gRSMja2E7IFwKKyAgICBFIyNrZSA9ICAgQmtlIF4oICBCa2kgJiAgQmtvICk7IFwKKyAgICBDZSBePSBFIyNrZTsgXAorICAgIEUjI2tpID0gICBCa2kgXigofkJrbykmICBCa3UgKTsgXAorICAgIENpIF49IEUjI2tpOyBcCisgICAgRSMja28gPSAofkJrbyleKCAgQmt1IHwgIEJrYSApOyBcCisgICAgQ28gXj0gRSMja287IFwKKyAgICBFIyNrdSA9ICAgQmt1IF4oICBCa2EgJiAgQmtlICk7IFwKKyAgICBDdSBePSBFIyNrdTsgXAorXAorICAgIEEjI2J1IF49IER1OyBcCisgICAgQm1hID0gUk9MNjQoQSMjYnUsIDI3KTsgXAorICAgIEEjI2dhIF49IERhOyBcCisgICAgQm1lID0gUk9MNjQoQSMjZ2EsIDM2KTsgXAorICAgIEEjI2tlIF49IERlOyBcCisgICAgQm1pID0gUk9MNjQoQSMja2UsIDEwKTsgXAorICAgIEEjI21pIF49IERpOyBcCisgICAgQm1vID0gUk9MNjQoQSMjbWksIDE1KTsgXAorICAgIEEjI3NvIF49IERvOyBcCisgICAgQm11ID0gUk9MNjQoQSMjc28sIDU2KTsgXAorICAgIEUjI21hID0gICBCbWEgXiggIEJtZSAmICBCbWkgKTsgXAorICAgIENhIF49IEUjI21hOyBcCisgICAgRSMjbWUgPSAgIEJtZSBeKCAgQm1pIHwgIEJtbyApOyBcCisgICAgQ2UgXj0gRSMjbWU7IFwKKyAgICBFIyNtaSA9ICAgQm1pIF4oKH5CbW8pfCAgQm11ICk7IFwKKyAgICBDaSBePSBFIyNtaTsgXAorICAgIEUjI21vID0gKH5CbW8pXiggIEJtdSAmICBCbWEgKTsgXAorICAgIENvIF49IEUjI21vOyBcCisgICAgRSMjbXUgPSAgIEJtdSBeKCAgQm1hIHwgIEJtZSApOyBcCisgICAgQ3UgXj0gRSMjbXU7IFwKK1wKKyAgICBBIyNiaSBePSBEaTsgXAorICAgIEJzYSA9IFJPTDY0KEEjI2JpLCA2Mik7IFwKKyAgICBBIyNnbyBePSBEbzsgXAorICAgIEJzZSA9IFJPTDY0KEEjI2dvLCA1NSk7IFwKKyAgICBBIyNrdSBePSBEdTsgXAorICAgIEJzaSA9IFJPTDY0KEEjI2t1LCAzOSk7IFwKKyAgICBBIyNtYSBePSBEYTsgXAorICAgIEJzbyA9IFJPTDY0KEEjI21hLCA0MSk7IFwKKyAgICBBIyNzZSBePSBEZTsgXAorICAgIEJzdSA9IFJPTDY0KEEjI3NlLCAyKTsgXAorICAgIEUjI3NhID0gICBCc2EgXigofkJzZSkmICBCc2kgKTsgXAorICAgIENhIF49IEUjI3NhOyBcCisgICAgRSMjc2UgPSAofkJzZSleKCAgQnNpIHwgIEJzbyApOyBcCisgICAgQ2UgXj0gRSMjc2U7IFwKKyAgICBFIyNzaSA9ICAgQnNpIF4oICBCc28gJiAgQnN1ICk7IFwKKyAgICBDaSBePSBFIyNzaTsgXAorICAgIEUjI3NvID0gICBCc28gXiggIEJzdSB8ICBCc2EgKTsgXAorICAgIENvIF49IEUjI3NvOyBcCisgICAgRSMjc3UgPSAgIEJzdSBeKCAgQnNhICYgIEJzZSApOyBcCisgICAgQ3UgXj0gRSMjc3U7IFwKK1wKKworLyogIC0tLSBDb2RlIGZvciByb3VuZCAobGFuZSBjb21wbGVtZW50aW5nIHBhdHRlcm4gJ2JlYmlnb2tpbWlzYScpICovCisvKiAgLS0tIDY0LWJpdCBsYW5lcyBtYXBwZWQgdG8gNjQtYml0IHdvcmRzICovCisjZGVmaW5lIHRoZXRhUmhvUGlDaGlJb3RhKGksIEEsIEUpIFwKKyAgICBEYSA9IEN1XlJPTDY0KENlLCAxKTsgXAorICAgIERlID0gQ2FeUk9MNjQoQ2ksIDEpOyBcCisgICAgRGkgPSBDZV5ST0w2NChDbywgMSk7IFwKKyAgICBEbyA9IENpXlJPTDY0KEN1LCAxKTsgXAorICAgIER1ID0gQ29eUk9MNjQoQ2EsIDEpOyBcCitcCisgICAgQSMjYmEgXj0gRGE7IFwKKyAgICBCYmEgPSBBIyNiYTsgXAorICAgIEEjI2dlIF49IERlOyBcCisgICAgQmJlID0gUk9MNjQoQSMjZ2UsIDQ0KTsgXAorICAgIEEjI2tpIF49IERpOyBcCisgICAgQmJpID0gUk9MNjQoQSMja2ksIDQzKTsgXAorICAgIEEjI21vIF49IERvOyBcCisgICAgQmJvID0gUk9MNjQoQSMjbW8sIDIxKTsgXAorICAgIEEjI3N1IF49IER1OyBcCisgICAgQmJ1ID0gUk9MNjQoQSMjc3UsIDE0KTsgXAorICAgIEUjI2JhID0gICBCYmEgXiggIEJiZSB8ICBCYmkgKTsgXAorICAgIEUjI2JhIF49IEtlY2Nha0YxNjAwUm91bmRDb25zdGFudHNbaV07IFwKKyAgICBFIyNiZSA9ICAgQmJlIF4oKH5CYmkpfCAgQmJvICk7IFwKKyAgICBFIyNiaSA9ICAgQmJpIF4oICBCYm8gJiAgQmJ1ICk7IFwKKyAgICBFIyNibyA9ICAgQmJvIF4oICBCYnUgfCAgQmJhICk7IFwKKyAgICBFIyNidSA9ICAgQmJ1IF4oICBCYmEgJiAgQmJlICk7IFwKK1wKKyAgICBBIyNibyBePSBEbzsgXAorICAgIEJnYSA9IFJPTDY0KEEjI2JvLCAyOCk7IFwKKyAgICBBIyNndSBePSBEdTsgXAorICAgIEJnZSA9IFJPTDY0KEEjI2d1LCAyMCk7IFwKKyAgICBBIyNrYSBePSBEYTsgXAorICAgIEJnaSA9IFJPTDY0KEEjI2thLCAzKTsgXAorICAgIEEjI21lIF49IERlOyBcCisgICAgQmdvID0gUk9MNjQoQSMjbWUsIDQ1KTsgXAorICAgIEEjI3NpIF49IERpOyBcCisgICAgQmd1ID0gUk9MNjQoQSMjc2ksIDYxKTsgXAorICAgIEUjI2dhID0gICBCZ2EgXiggIEJnZSB8ICBCZ2kgKTsgXAorICAgIEUjI2dlID0gICBCZ2UgXiggIEJnaSAmICBCZ28gKTsgXAorICAgIEUjI2dpID0gICBCZ2kgXiggIEJnbyB8KH5CZ3UpKTsgXAorICAgIEUjI2dvID0gICBCZ28gXiggIEJndSB8ICBCZ2EgKTsgXAorICAgIEUjI2d1ID0gICBCZ3UgXiggIEJnYSAmICBCZ2UgKTsgXAorXAorICAgIEEjI2JlIF49IERlOyBcCisgICAgQmthID0gUk9MNjQoQSMjYmUsIDEpOyBcCisgICAgQSMjZ2kgXj0gRGk7IFwKKyAgICBCa2UgPSBST0w2NChBIyNnaSwgNik7IFwKKyAgICBBIyNrbyBePSBEbzsgXAorICAgIEJraSA9IFJPTDY0KEEjI2tvLCAyNSk7IFwKKyAgICBBIyNtdSBePSBEdTsgXAorICAgIEJrbyA9IFJPTDY0KEEjI211LCA4KTsgXAorICAgIEEjI3NhIF49IERhOyBcCisgICAgQmt1ID0gUk9MNjQoQSMjc2EsIDE4KTsgXAorICAgIEUjI2thID0gICBCa2EgXiggIEJrZSB8ICBCa2kgKTsgXAorICAgIEUjI2tlID0gICBCa2UgXiggIEJraSAmICBCa28gKTsgXAorICAgIEUjI2tpID0gICBCa2kgXigofkJrbykmICBCa3UgKTsgXAorICAgIEUjI2tvID0gKH5Ca28pXiggIEJrdSB8ICBCa2EgKTsgXAorICAgIEUjI2t1ID0gICBCa3UgXiggIEJrYSAmICBCa2UgKTsgXAorXAorICAgIEEjI2J1IF49IER1OyBcCisgICAgQm1hID0gUk9MNjQoQSMjYnUsIDI3KTsgXAorICAgIEEjI2dhIF49IERhOyBcCisgICAgQm1lID0gUk9MNjQoQSMjZ2EsIDM2KTsgXAorICAgIEEjI2tlIF49IERlOyBcCisgICAgQm1pID0gUk9MNjQoQSMja2UsIDEwKTsgXAorICAgIEEjI21pIF49IERpOyBcCisgICAgQm1vID0gUk9MNjQoQSMjbWksIDE1KTsgXAorICAgIEEjI3NvIF49IERvOyBcCisgICAgQm11ID0gUk9MNjQoQSMjc28sIDU2KTsgXAorICAgIEUjI21hID0gICBCbWEgXiggIEJtZSAmICBCbWkgKTsgXAorICAgIEUjI21lID0gICBCbWUgXiggIEJtaSB8ICBCbW8gKTsgXAorICAgIEUjI21pID0gICBCbWkgXigofkJtbyl8ICBCbXUgKTsgXAorICAgIEUjI21vID0gKH5CbW8pXiggIEJtdSAmICBCbWEgKTsgXAorICAgIEUjI211ID0gICBCbXUgXiggIEJtYSB8ICBCbWUgKTsgXAorXAorICAgIEEjI2JpIF49IERpOyBcCisgICAgQnNhID0gUk9MNjQoQSMjYmksIDYyKTsgXAorICAgIEEjI2dvIF49IERvOyBcCisgICAgQnNlID0gUk9MNjQoQSMjZ28sIDU1KTsgXAorICAgIEEjI2t1IF49IER1OyBcCisgICAgQnNpID0gUk9MNjQoQSMja3UsIDM5KTsgXAorICAgIEEjI21hIF49IERhOyBcCisgICAgQnNvID0gUk9MNjQoQSMjbWEsIDQxKTsgXAorICAgIEEjI3NlIF49IERlOyBcCisgICAgQnN1ID0gUk9MNjQoQSMjc2UsIDIpOyBcCisgICAgRSMjc2EgPSAgIEJzYSBeKCh+QnNlKSYgIEJzaSApOyBcCisgICAgRSMjc2UgPSAofkJzZSleKCAgQnNpIHwgIEJzbyApOyBcCisgICAgRSMjc2kgPSAgIEJzaSBeKCAgQnNvICYgIEJzdSApOyBcCisgICAgRSMjc28gPSAgIEJzbyBeKCAgQnN1IHwgIEJzYSApOyBcCisgICAgRSMjc3UgPSAgIEJzdSBeKCAgQnNhICYgIEJzZSApOyBcCitcCisKKyNlbHNlIC8qICBVc2VCZWJpZ29raW1pc2EgKi8KKy8qICAtLS0gQ29kZSBmb3Igcm91bmQsIHdpdGggcHJlcGFyZS10aGV0YSAqLworLyogIC0tLSA2NC1iaXQgbGFuZXMgbWFwcGVkIHRvIDY0LWJpdCB3b3JkcyAqLworI2RlZmluZSB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YShpLCBBLCBFKSBcCisgICAgRGEgPSBDdV5ST0w2NChDZSwgMSk7IFwKKyAgICBEZSA9IENhXlJPTDY0KENpLCAxKTsgXAorICAgIERpID0gQ2VeUk9MNjQoQ28sIDEpOyBcCisgICAgRG8gPSBDaV5ST0w2NChDdSwgMSk7IFwKKyAgICBEdSA9IENvXlJPTDY0KENhLCAxKTsgXAorXAorICAgIEEjI2JhIF49IERhOyBcCisgICAgQmJhID0gQSMjYmE7IFwKKyAgICBBIyNnZSBePSBEZTsgXAorICAgIEJiZSA9IFJPTDY0KEEjI2dlLCA0NCk7IFwKKyAgICBBIyNraSBePSBEaTsgXAorICAgIEJiaSA9IFJPTDY0KEEjI2tpLCA0Myk7IFwKKyAgICBBIyNtbyBePSBEbzsgXAorICAgIEJibyA9IFJPTDY0KEEjI21vLCAyMSk7IFwKKyAgICBBIyNzdSBePSBEdTsgXAorICAgIEJidSA9IFJPTDY0KEEjI3N1LCAxNCk7IFwKKyAgICBFIyNiYSA9ICAgQmJhIF4oKH5CYmUpJiAgQmJpICk7IFwKKyAgICBFIyNiYSBePSBLZWNjYWtGMTYwMFJvdW5kQ29uc3RhbnRzW2ldOyBcCisgICAgQ2EgPSBFIyNiYTsgXAorICAgIEUjI2JlID0gICBCYmUgXigofkJiaSkmICBCYm8gKTsgXAorICAgIENlID0gRSMjYmU7IFwKKyAgICBFIyNiaSA9ICAgQmJpIF4oKH5CYm8pJiAgQmJ1ICk7IFwKKyAgICBDaSA9IEUjI2JpOyBcCisgICAgRSMjYm8gPSAgIEJibyBeKCh+QmJ1KSYgIEJiYSApOyBcCisgICAgQ28gPSBFIyNibzsgXAorICAgIEUjI2J1ID0gICBCYnUgXigofkJiYSkmICBCYmUgKTsgXAorICAgIEN1ID0gRSMjYnU7IFwKK1wKKyAgICBBIyNibyBePSBEbzsgXAorICAgIEJnYSA9IFJPTDY0KEEjI2JvLCAyOCk7IFwKKyAgICBBIyNndSBePSBEdTsgXAorICAgIEJnZSA9IFJPTDY0KEEjI2d1LCAyMCk7IFwKKyAgICBBIyNrYSBePSBEYTsgXAorICAgIEJnaSA9IFJPTDY0KEEjI2thLCAzKTsgXAorICAgIEEjI21lIF49IERlOyBcCisgICAgQmdvID0gUk9MNjQoQSMjbWUsIDQ1KTsgXAorICAgIEEjI3NpIF49IERpOyBcCisgICAgQmd1ID0gUk9MNjQoQSMjc2ksIDYxKTsgXAorICAgIEUjI2dhID0gICBCZ2EgXigofkJnZSkmICBCZ2kgKTsgXAorICAgIENhIF49IEUjI2dhOyBcCisgICAgRSMjZ2UgPSAgIEJnZSBeKCh+QmdpKSYgIEJnbyApOyBcCisgICAgQ2UgXj0gRSMjZ2U7IFwKKyAgICBFIyNnaSA9ICAgQmdpIF4oKH5CZ28pJiAgQmd1ICk7IFwKKyAgICBDaSBePSBFIyNnaTsgXAorICAgIEUjI2dvID0gICBCZ28gXigofkJndSkmICBCZ2EgKTsgXAorICAgIENvIF49IEUjI2dvOyBcCisgICAgRSMjZ3UgPSAgIEJndSBeKCh+QmdhKSYgIEJnZSApOyBcCisgICAgQ3UgXj0gRSMjZ3U7IFwKK1wKKyAgICBBIyNiZSBePSBEZTsgXAorICAgIEJrYSA9IFJPTDY0KEEjI2JlLCAxKTsgXAorICAgIEEjI2dpIF49IERpOyBcCisgICAgQmtlID0gUk9MNjQoQSMjZ2ksIDYpOyBcCisgICAgQSMja28gXj0gRG87IFwKKyAgICBCa2kgPSBST0w2NChBIyNrbywgMjUpOyBcCisgICAgQSMjbXUgXj0gRHU7IFwKKyAgICBCa28gPSBST0w2NChBIyNtdSwgOCk7IFwKKyAgICBBIyNzYSBePSBEYTsgXAorICAgIEJrdSA9IFJPTDY0KEEjI3NhLCAxOCk7IFwKKyAgICBFIyNrYSA9ICAgQmthIF4oKH5Ca2UpJiAgQmtpICk7IFwKKyAgICBDYSBePSBFIyNrYTsgXAorICAgIEUjI2tlID0gICBCa2UgXigofkJraSkmICBCa28gKTsgXAorICAgIENlIF49IEUjI2tlOyBcCisgICAgRSMja2kgPSAgIEJraSBeKCh+QmtvKSYgIEJrdSApOyBcCisgICAgQ2kgXj0gRSMja2k7IFwKKyAgICBFIyNrbyA9ICAgQmtvIF4oKH5Ca3UpJiAgQmthICk7IFwKKyAgICBDbyBePSBFIyNrbzsgXAorICAgIEUjI2t1ID0gICBCa3UgXigofkJrYSkmICBCa2UgKTsgXAorICAgIEN1IF49IEUjI2t1OyBcCitcCisgICAgQSMjYnUgXj0gRHU7IFwKKyAgICBCbWEgPSBST0w2NChBIyNidSwgMjcpOyBcCisgICAgQSMjZ2EgXj0gRGE7IFwKKyAgICBCbWUgPSBST0w2NChBIyNnYSwgMzYpOyBcCisgICAgQSMja2UgXj0gRGU7IFwKKyAgICBCbWkgPSBST0w2NChBIyNrZSwgMTApOyBcCisgICAgQSMjbWkgXj0gRGk7IFwKKyAgICBCbW8gPSBST0w2NChBIyNtaSwgMTUpOyBcCisgICAgQSMjc28gXj0gRG87IFwKKyAgICBCbXUgPSBST0w2NChBIyNzbywgNTYpOyBcCisgICAgRSMjbWEgPSAgIEJtYSBeKCh+Qm1lKSYgIEJtaSApOyBcCisgICAgQ2EgXj0gRSMjbWE7IFwKKyAgICBFIyNtZSA9ICAgQm1lIF4oKH5CbWkpJiAgQm1vICk7IFwKKyAgICBDZSBePSBFIyNtZTsgXAorICAgIEUjI21pID0gICBCbWkgXigofkJtbykmICBCbXUgKTsgXAorICAgIENpIF49IEUjI21pOyBcCisgICAgRSMjbW8gPSAgIEJtbyBeKCh+Qm11KSYgIEJtYSApOyBcCisgICAgQ28gXj0gRSMjbW87IFwKKyAgICBFIyNtdSA9ICAgQm11IF4oKH5CbWEpJiAgQm1lICk7IFwKKyAgICBDdSBePSBFIyNtdTsgXAorXAorICAgIEEjI2JpIF49IERpOyBcCisgICAgQnNhID0gUk9MNjQoQSMjYmksIDYyKTsgXAorICAgIEEjI2dvIF49IERvOyBcCisgICAgQnNlID0gUk9MNjQoQSMjZ28sIDU1KTsgXAorICAgIEEjI2t1IF49IER1OyBcCisgICAgQnNpID0gUk9MNjQoQSMja3UsIDM5KTsgXAorICAgIEEjI21hIF49IERhOyBcCisgICAgQnNvID0gUk9MNjQoQSMjbWEsIDQxKTsgXAorICAgIEEjI3NlIF49IERlOyBcCisgICAgQnN1ID0gUk9MNjQoQSMjc2UsIDIpOyBcCisgICAgRSMjc2EgPSAgIEJzYSBeKCh+QnNlKSYgIEJzaSApOyBcCisgICAgQ2EgXj0gRSMjc2E7IFwKKyAgICBFIyNzZSA9ICAgQnNlIF4oKH5Cc2kpJiAgQnNvICk7IFwKKyAgICBDZSBePSBFIyNzZTsgXAorICAgIEUjI3NpID0gICBCc2kgXigofkJzbykmICBCc3UgKTsgXAorICAgIENpIF49IEUjI3NpOyBcCisgICAgRSMjc28gPSAgIEJzbyBeKCh+QnN1KSYgIEJzYSApOyBcCisgICAgQ28gXj0gRSMjc287IFwKKyAgICBFIyNzdSA9ICAgQnN1IF4oKH5Cc2EpJiAgQnNlICk7IFwKKyAgICBDdSBePSBFIyNzdTsgXAorXAorCisvKiAgLS0tIENvZGUgZm9yIHJvdW5kICovCisvKiAgLS0tIDY0LWJpdCBsYW5lcyBtYXBwZWQgdG8gNjQtYml0IHdvcmRzICovCisjZGVmaW5lIHRoZXRhUmhvUGlDaGlJb3RhKGksIEEsIEUpIFwKKyAgICBEYSA9IEN1XlJPTDY0KENlLCAxKTsgXAorICAgIERlID0gQ2FeUk9MNjQoQ2ksIDEpOyBcCisgICAgRGkgPSBDZV5ST0w2NChDbywgMSk7IFwKKyAgICBEbyA9IENpXlJPTDY0KEN1LCAxKTsgXAorICAgIER1ID0gQ29eUk9MNjQoQ2EsIDEpOyBcCitcCisgICAgQSMjYmEgXj0gRGE7IFwKKyAgICBCYmEgPSBBIyNiYTsgXAorICAgIEEjI2dlIF49IERlOyBcCisgICAgQmJlID0gUk9MNjQoQSMjZ2UsIDQ0KTsgXAorICAgIEEjI2tpIF49IERpOyBcCisgICAgQmJpID0gUk9MNjQoQSMja2ksIDQzKTsgXAorICAgIEEjI21vIF49IERvOyBcCisgICAgQmJvID0gUk9MNjQoQSMjbW8sIDIxKTsgXAorICAgIEEjI3N1IF49IER1OyBcCisgICAgQmJ1ID0gUk9MNjQoQSMjc3UsIDE0KTsgXAorICAgIEUjI2JhID0gICBCYmEgXigofkJiZSkmICBCYmkgKTsgXAorICAgIEUjI2JhIF49IEtlY2Nha0YxNjAwUm91bmRDb25zdGFudHNbaV07IFwKKyAgICBFIyNiZSA9ICAgQmJlIF4oKH5CYmkpJiAgQmJvICk7IFwKKyAgICBFIyNiaSA9ICAgQmJpIF4oKH5CYm8pJiAgQmJ1ICk7IFwKKyAgICBFIyNibyA9ICAgQmJvIF4oKH5CYnUpJiAgQmJhICk7IFwKKyAgICBFIyNidSA9ICAgQmJ1IF4oKH5CYmEpJiAgQmJlICk7IFwKK1wKKyAgICBBIyNibyBePSBEbzsgXAorICAgIEJnYSA9IFJPTDY0KEEjI2JvLCAyOCk7IFwKKyAgICBBIyNndSBePSBEdTsgXAorICAgIEJnZSA9IFJPTDY0KEEjI2d1LCAyMCk7IFwKKyAgICBBIyNrYSBePSBEYTsgXAorICAgIEJnaSA9IFJPTDY0KEEjI2thLCAzKTsgXAorICAgIEEjI21lIF49IERlOyBcCisgICAgQmdvID0gUk9MNjQoQSMjbWUsIDQ1KTsgXAorICAgIEEjI3NpIF49IERpOyBcCisgICAgQmd1ID0gUk9MNjQoQSMjc2ksIDYxKTsgXAorICAgIEUjI2dhID0gICBCZ2EgXigofkJnZSkmICBCZ2kgKTsgXAorICAgIEUjI2dlID0gICBCZ2UgXigofkJnaSkmICBCZ28gKTsgXAorICAgIEUjI2dpID0gICBCZ2kgXigofkJnbykmICBCZ3UgKTsgXAorICAgIEUjI2dvID0gICBCZ28gXigofkJndSkmICBCZ2EgKTsgXAorICAgIEUjI2d1ID0gICBCZ3UgXigofkJnYSkmICBCZ2UgKTsgXAorXAorICAgIEEjI2JlIF49IERlOyBcCisgICAgQmthID0gUk9MNjQoQSMjYmUsIDEpOyBcCisgICAgQSMjZ2kgXj0gRGk7IFwKKyAgICBCa2UgPSBST0w2NChBIyNnaSwgNik7IFwKKyAgICBBIyNrbyBePSBEbzsgXAorICAgIEJraSA9IFJPTDY0KEEjI2tvLCAyNSk7IFwKKyAgICBBIyNtdSBePSBEdTsgXAorICAgIEJrbyA9IFJPTDY0KEEjI211LCA4KTsgXAorICAgIEEjI3NhIF49IERhOyBcCisgICAgQmt1ID0gUk9MNjQoQSMjc2EsIDE4KTsgXAorICAgIEUjI2thID0gICBCa2EgXigofkJrZSkmICBCa2kgKTsgXAorICAgIEUjI2tlID0gICBCa2UgXigofkJraSkmICBCa28gKTsgXAorICAgIEUjI2tpID0gICBCa2kgXigofkJrbykmICBCa3UgKTsgXAorICAgIEUjI2tvID0gICBCa28gXigofkJrdSkmICBCa2EgKTsgXAorICAgIEUjI2t1ID0gICBCa3UgXigofkJrYSkmICBCa2UgKTsgXAorXAorICAgIEEjI2J1IF49IER1OyBcCisgICAgQm1hID0gUk9MNjQoQSMjYnUsIDI3KTsgXAorICAgIEEjI2dhIF49IERhOyBcCisgICAgQm1lID0gUk9MNjQoQSMjZ2EsIDM2KTsgXAorICAgIEEjI2tlIF49IERlOyBcCisgICAgQm1pID0gUk9MNjQoQSMja2UsIDEwKTsgXAorICAgIEEjI21pIF49IERpOyBcCisgICAgQm1vID0gUk9MNjQoQSMjbWksIDE1KTsgXAorICAgIEEjI3NvIF49IERvOyBcCisgICAgQm11ID0gUk9MNjQoQSMjc28sIDU2KTsgXAorICAgIEUjI21hID0gICBCbWEgXigofkJtZSkmICBCbWkgKTsgXAorICAgIEUjI21lID0gICBCbWUgXigofkJtaSkmICBCbW8gKTsgXAorICAgIEUjI21pID0gICBCbWkgXigofkJtbykmICBCbXUgKTsgXAorICAgIEUjI21vID0gICBCbW8gXigofkJtdSkmICBCbWEgKTsgXAorICAgIEUjI211ID0gICBCbXUgXigofkJtYSkmICBCbWUgKTsgXAorXAorICAgIEEjI2JpIF49IERpOyBcCisgICAgQnNhID0gUk9MNjQoQSMjYmksIDYyKTsgXAorICAgIEEjI2dvIF49IERvOyBcCisgICAgQnNlID0gUk9MNjQoQSMjZ28sIDU1KTsgXAorICAgIEEjI2t1IF49IER1OyBcCisgICAgQnNpID0gUk9MNjQoQSMja3UsIDM5KTsgXAorICAgIEEjI21hIF49IERhOyBcCisgICAgQnNvID0gUk9MNjQoQSMjbWEsIDQxKTsgXAorICAgIEEjI3NlIF49IERlOyBcCisgICAgQnN1ID0gUk9MNjQoQSMjc2UsIDIpOyBcCisgICAgRSMjc2EgPSAgIEJzYSBeKCh+QnNlKSYgIEJzaSApOyBcCisgICAgRSMjc2UgPSAgIEJzZSBeKCh+QnNpKSYgIEJzbyApOyBcCisgICAgRSMjc2kgPSAgIEJzaSBeKCh+QnNvKSYgIEJzdSApOyBcCisgICAgRSMjc28gPSAgIEJzbyBeKCh+QnN1KSYgIEJzYSApOyBcCisgICAgRSMjc3UgPSAgIEJzdSBeKCh+QnNhKSYgIEJzZSApOyBcCitcCisKKyNlbmRpZiAvKiAgVXNlQmViaWdva2ltaXNhICovCisKK3N0YXRpYyBjb25zdCBVSU5UNjQgS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c1syNF0gPSB7CisgICAgMHgwMDAwMDAwMDAwMDAwMDAxVUxMLAorICAgIDB4MDAwMDAwMDAwMDAwODA4MlVMTCwKKyAgICAweDgwMDAwMDAwMDAwMDgwOGFVTEwsCisgICAgMHg4MDAwMDAwMDgwMDA4MDAwVUxMLAorICAgIDB4MDAwMDAwMDAwMDAwODA4YlVMTCwKKyAgICAweDAwMDAwMDAwODAwMDAwMDFVTEwsCisgICAgMHg4MDAwMDAwMDgwMDA4MDgxVUxMLAorICAgIDB4ODAwMDAwMDAwMDAwODAwOVVMTCwKKyAgICAweDAwMDAwMDAwMDAwMDAwOGFVTEwsCisgICAgMHgwMDAwMDAwMDAwMDAwMDg4VUxMLAorICAgIDB4MDAwMDAwMDA4MDAwODAwOVVMTCwKKyAgICAweDAwMDAwMDAwODAwMDAwMGFVTEwsCisgICAgMHgwMDAwMDAwMDgwMDA4MDhiVUxMLAorICAgIDB4ODAwMDAwMDAwMDAwMDA4YlVMTCwKKyAgICAweDgwMDAwMDAwMDAwMDgwODlVTEwsCisgICAgMHg4MDAwMDAwMDAwMDA4MDAzVUxMLAorICAgIDB4ODAwMDAwMDAwMDAwODAwMlVMTCwKKyAgICAweDgwMDAwMDAwMDAwMDAwODBVTEwsCisgICAgMHgwMDAwMDAwMDAwMDA4MDBhVUxMLAorICAgIDB4ODAwMDAwMDA4MDAwMDAwYVVMTCwKKyAgICAweDgwMDAwMDAwODAwMDgwODFVTEwsCisgICAgMHg4MDAwMDAwMDAwMDA4MDgwVUxMLAorICAgIDB4MDAwMDAwMDA4MDAwMDAwMVVMTCwKKyAgICAweDgwMDAwMDAwODAwMDgwMDhVTEwgfTsKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlQW5kWG9yNTc2Yml0cyhYLCBzdGF0ZSwgaW5wdXQpIFwKKyAgICBYIyNiYSA9IHN0YXRlWyAwXV5pbnB1dFsgMF07IFwKKyAgICBYIyNiZSA9IHN0YXRlWyAxXV5pbnB1dFsgMV07IFwKKyAgICBYIyNiaSA9IHN0YXRlWyAyXV5pbnB1dFsgMl07IFwKKyAgICBYIyNibyA9IHN0YXRlWyAzXV5pbnB1dFsgM107IFwKKyAgICBYIyNidSA9IHN0YXRlWyA0XV5pbnB1dFsgNF07IFwKKyAgICBYIyNnYSA9IHN0YXRlWyA1XV5pbnB1dFsgNV07IFwKKyAgICBYIyNnZSA9IHN0YXRlWyA2XV5pbnB1dFsgNl07IFwKKyAgICBYIyNnaSA9IHN0YXRlWyA3XV5pbnB1dFsgN107IFwKKyAgICBYIyNnbyA9IHN0YXRlWyA4XV5pbnB1dFsgOF07IFwKKyAgICBYIyNndSA9IHN0YXRlWyA5XTsgXAorICAgIFgjI2thID0gc3RhdGVbMTBdOyBcCisgICAgWCMja2UgPSBzdGF0ZVsxMV07IFwKKyAgICBYIyNraSA9IHN0YXRlWzEyXTsgXAorICAgIFgjI2tvID0gc3RhdGVbMTNdOyBcCisgICAgWCMja3UgPSBzdGF0ZVsxNF07IFwKKyAgICBYIyNtYSA9IHN0YXRlWzE1XTsgXAorICAgIFgjI21lID0gc3RhdGVbMTZdOyBcCisgICAgWCMjbWkgPSBzdGF0ZVsxN107IFwKKyAgICBYIyNtbyA9IHN0YXRlWzE4XTsgXAorICAgIFgjI211ID0gc3RhdGVbMTldOyBcCisgICAgWCMjc2EgPSBzdGF0ZVsyMF07IFwKKyAgICBYIyNzZSA9IHN0YXRlWzIxXTsgXAorICAgIFgjI3NpID0gc3RhdGVbMjJdOyBcCisgICAgWCMjc28gPSBzdGF0ZVsyM107IFwKKyAgICBYIyNzdSA9IHN0YXRlWzI0XTsgXAorCisjZGVmaW5lIGNvcHlGcm9tU3RhdGVBbmRYb3I4MzJiaXRzKFgsIHN0YXRlLCBpbnB1dCkgXAorICAgIFgjI2JhID0gc3RhdGVbIDBdXmlucHV0WyAwXTsgXAorICAgIFgjI2JlID0gc3RhdGVbIDFdXmlucHV0WyAxXTsgXAorICAgIFgjI2JpID0gc3RhdGVbIDJdXmlucHV0WyAyXTsgXAorICAgIFgjI2JvID0gc3RhdGVbIDNdXmlucHV0WyAzXTsgXAorICAgIFgjI2J1ID0gc3RhdGVbIDRdXmlucHV0WyA0XTsgXAorICAgIFgjI2dhID0gc3RhdGVbIDVdXmlucHV0WyA1XTsgXAorICAgIFgjI2dlID0gc3RhdGVbIDZdXmlucHV0WyA2XTsgXAorICAgIFgjI2dpID0gc3RhdGVbIDddXmlucHV0WyA3XTsgXAorICAgIFgjI2dvID0gc3RhdGVbIDhdXmlucHV0WyA4XTsgXAorICAgIFgjI2d1ID0gc3RhdGVbIDldXmlucHV0WyA5XTsgXAorICAgIFgjI2thID0gc3RhdGVbMTBdXmlucHV0WzEwXTsgXAorICAgIFgjI2tlID0gc3RhdGVbMTFdXmlucHV0WzExXTsgXAorICAgIFgjI2tpID0gc3RhdGVbMTJdXmlucHV0WzEyXTsgXAorICAgIFgjI2tvID0gc3RhdGVbMTNdOyBcCisgICAgWCMja3UgPSBzdGF0ZVsxNF07IFwKKyAgICBYIyNtYSA9IHN0YXRlWzE1XTsgXAorICAgIFgjI21lID0gc3RhdGVbMTZdOyBcCisgICAgWCMjbWkgPSBzdGF0ZVsxN107IFwKKyAgICBYIyNtbyA9IHN0YXRlWzE4XTsgXAorICAgIFgjI211ID0gc3RhdGVbMTldOyBcCisgICAgWCMjc2EgPSBzdGF0ZVsyMF07IFwKKyAgICBYIyNzZSA9IHN0YXRlWzIxXTsgXAorICAgIFgjI3NpID0gc3RhdGVbMjJdOyBcCisgICAgWCMjc28gPSBzdGF0ZVsyM107IFwKKyAgICBYIyNzdSA9IHN0YXRlWzI0XTsgXAorCisjZGVmaW5lIGNvcHlGcm9tU3RhdGVBbmRYb3IxMDI0Yml0cyhYLCBzdGF0ZSwgaW5wdXQpIFwKKyAgICBYIyNiYSA9IHN0YXRlWyAwXV5pbnB1dFsgMF07IFwKKyAgICBYIyNiZSA9IHN0YXRlWyAxXV5pbnB1dFsgMV07IFwKKyAgICBYIyNiaSA9IHN0YXRlWyAyXV5pbnB1dFsgMl07IFwKKyAgICBYIyNibyA9IHN0YXRlWyAzXV5pbnB1dFsgM107IFwKKyAgICBYIyNidSA9IHN0YXRlWyA0XV5pbnB1dFsgNF07IFwKKyAgICBYIyNnYSA9IHN0YXRlWyA1XV5pbnB1dFsgNV07IFwKKyAgICBYIyNnZSA9IHN0YXRlWyA2XV5pbnB1dFsgNl07IFwKKyAgICBYIyNnaSA9IHN0YXRlWyA3XV5pbnB1dFsgN107IFwKKyAgICBYIyNnbyA9IHN0YXRlWyA4XV5pbnB1dFsgOF07IFwKKyAgICBYIyNndSA9IHN0YXRlWyA5XV5pbnB1dFsgOV07IFwKKyAgICBYIyNrYSA9IHN0YXRlWzEwXV5pbnB1dFsxMF07IFwKKyAgICBYIyNrZSA9IHN0YXRlWzExXV5pbnB1dFsxMV07IFwKKyAgICBYIyNraSA9IHN0YXRlWzEyXV5pbnB1dFsxMl07IFwKKyAgICBYIyNrbyA9IHN0YXRlWzEzXV5pbnB1dFsxM107IFwKKyAgICBYIyNrdSA9IHN0YXRlWzE0XV5pbnB1dFsxNF07IFwKKyAgICBYIyNtYSA9IHN0YXRlWzE1XV5pbnB1dFsxNV07IFwKKyAgICBYIyNtZSA9IHN0YXRlWzE2XTsgXAorICAgIFgjI21pID0gc3RhdGVbMTddOyBcCisgICAgWCMjbW8gPSBzdGF0ZVsxOF07IFwKKyAgICBYIyNtdSA9IHN0YXRlWzE5XTsgXAorICAgIFgjI3NhID0gc3RhdGVbMjBdOyBcCisgICAgWCMjc2UgPSBzdGF0ZVsyMV07IFwKKyAgICBYIyNzaSA9IHN0YXRlWzIyXTsgXAorICAgIFgjI3NvID0gc3RhdGVbMjNdOyBcCisgICAgWCMjc3UgPSBzdGF0ZVsyNF07IFwKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlQW5kWG9yMTA4OGJpdHMoWCwgc3RhdGUsIGlucHV0KSBcCisgICAgWCMjYmEgPSBzdGF0ZVsgMF1eaW5wdXRbIDBdOyBcCisgICAgWCMjYmUgPSBzdGF0ZVsgMV1eaW5wdXRbIDFdOyBcCisgICAgWCMjYmkgPSBzdGF0ZVsgMl1eaW5wdXRbIDJdOyBcCisgICAgWCMjYm8gPSBzdGF0ZVsgM11eaW5wdXRbIDNdOyBcCisgICAgWCMjYnUgPSBzdGF0ZVsgNF1eaW5wdXRbIDRdOyBcCisgICAgWCMjZ2EgPSBzdGF0ZVsgNV1eaW5wdXRbIDVdOyBcCisgICAgWCMjZ2UgPSBzdGF0ZVsgNl1eaW5wdXRbIDZdOyBcCisgICAgWCMjZ2kgPSBzdGF0ZVsgN11eaW5wdXRbIDddOyBcCisgICAgWCMjZ28gPSBzdGF0ZVsgOF1eaW5wdXRbIDhdOyBcCisgICAgWCMjZ3UgPSBzdGF0ZVsgOV1eaW5wdXRbIDldOyBcCisgICAgWCMja2EgPSBzdGF0ZVsxMF1eaW5wdXRbMTBdOyBcCisgICAgWCMja2UgPSBzdGF0ZVsxMV1eaW5wdXRbMTFdOyBcCisgICAgWCMja2kgPSBzdGF0ZVsxMl1eaW5wdXRbMTJdOyBcCisgICAgWCMja28gPSBzdGF0ZVsxM11eaW5wdXRbMTNdOyBcCisgICAgWCMja3UgPSBzdGF0ZVsxNF1eaW5wdXRbMTRdOyBcCisgICAgWCMjbWEgPSBzdGF0ZVsxNV1eaW5wdXRbMTVdOyBcCisgICAgWCMjbWUgPSBzdGF0ZVsxNl1eaW5wdXRbMTZdOyBcCisgICAgWCMjbWkgPSBzdGF0ZVsxN107IFwKKyAgICBYIyNtbyA9IHN0YXRlWzE4XTsgXAorICAgIFgjI211ID0gc3RhdGVbMTldOyBcCisgICAgWCMjc2EgPSBzdGF0ZVsyMF07IFwKKyAgICBYIyNzZSA9IHN0YXRlWzIxXTsgXAorICAgIFgjI3NpID0gc3RhdGVbMjJdOyBcCisgICAgWCMjc28gPSBzdGF0ZVsyM107IFwKKyAgICBYIyNzdSA9IHN0YXRlWzI0XTsgXAorCisjZGVmaW5lIGNvcHlGcm9tU3RhdGVBbmRYb3IxMTUyYml0cyhYLCBzdGF0ZSwgaW5wdXQpIFwKKyAgICBYIyNiYSA9IHN0YXRlWyAwXV5pbnB1dFsgMF07IFwKKyAgICBYIyNiZSA9IHN0YXRlWyAxXV5pbnB1dFsgMV07IFwKKyAgICBYIyNiaSA9IHN0YXRlWyAyXV5pbnB1dFsgMl07IFwKKyAgICBYIyNibyA9IHN0YXRlWyAzXV5pbnB1dFsgM107IFwKKyAgICBYIyNidSA9IHN0YXRlWyA0XV5pbnB1dFsgNF07IFwKKyAgICBYIyNnYSA9IHN0YXRlWyA1XV5pbnB1dFsgNV07IFwKKyAgICBYIyNnZSA9IHN0YXRlWyA2XV5pbnB1dFsgNl07IFwKKyAgICBYIyNnaSA9IHN0YXRlWyA3XV5pbnB1dFsgN107IFwKKyAgICBYIyNnbyA9IHN0YXRlWyA4XV5pbnB1dFsgOF07IFwKKyAgICBYIyNndSA9IHN0YXRlWyA5XV5pbnB1dFsgOV07IFwKKyAgICBYIyNrYSA9IHN0YXRlWzEwXV5pbnB1dFsxMF07IFwKKyAgICBYIyNrZSA9IHN0YXRlWzExXV5pbnB1dFsxMV07IFwKKyAgICBYIyNraSA9IHN0YXRlWzEyXV5pbnB1dFsxMl07IFwKKyAgICBYIyNrbyA9IHN0YXRlWzEzXV5pbnB1dFsxM107IFwKKyAgICBYIyNrdSA9IHN0YXRlWzE0XV5pbnB1dFsxNF07IFwKKyAgICBYIyNtYSA9IHN0YXRlWzE1XV5pbnB1dFsxNV07IFwKKyAgICBYIyNtZSA9IHN0YXRlWzE2XV5pbnB1dFsxNl07IFwKKyAgICBYIyNtaSA9IHN0YXRlWzE3XV5pbnB1dFsxN107IFwKKyAgICBYIyNtbyA9IHN0YXRlWzE4XTsgXAorICAgIFgjI211ID0gc3RhdGVbMTldOyBcCisgICAgWCMjc2EgPSBzdGF0ZVsyMF07IFwKKyAgICBYIyNzZSA9IHN0YXRlWzIxXTsgXAorICAgIFgjI3NpID0gc3RhdGVbMjJdOyBcCisgICAgWCMjc28gPSBzdGF0ZVsyM107IFwKKyAgICBYIyNzdSA9IHN0YXRlWzI0XTsgXAorCisjZGVmaW5lIGNvcHlGcm9tU3RhdGVBbmRYb3IxMzQ0Yml0cyhYLCBzdGF0ZSwgaW5wdXQpIFwKKyAgICBYIyNiYSA9IHN0YXRlWyAwXV5pbnB1dFsgMF07IFwKKyAgICBYIyNiZSA9IHN0YXRlWyAxXV5pbnB1dFsgMV07IFwKKyAgICBYIyNiaSA9IHN0YXRlWyAyXV5pbnB1dFsgMl07IFwKKyAgICBYIyNibyA9IHN0YXRlWyAzXV5pbnB1dFsgM107IFwKKyAgICBYIyNidSA9IHN0YXRlWyA0XV5pbnB1dFsgNF07IFwKKyAgICBYIyNnYSA9IHN0YXRlWyA1XV5pbnB1dFsgNV07IFwKKyAgICBYIyNnZSA9IHN0YXRlWyA2XV5pbnB1dFsgNl07IFwKKyAgICBYIyNnaSA9IHN0YXRlWyA3XV5pbnB1dFsgN107IFwKKyAgICBYIyNnbyA9IHN0YXRlWyA4XV5pbnB1dFsgOF07IFwKKyAgICBYIyNndSA9IHN0YXRlWyA5XV5pbnB1dFsgOV07IFwKKyAgICBYIyNrYSA9IHN0YXRlWzEwXV5pbnB1dFsxMF07IFwKKyAgICBYIyNrZSA9IHN0YXRlWzExXV5pbnB1dFsxMV07IFwKKyAgICBYIyNraSA9IHN0YXRlWzEyXV5pbnB1dFsxMl07IFwKKyAgICBYIyNrbyA9IHN0YXRlWzEzXV5pbnB1dFsxM107IFwKKyAgICBYIyNrdSA9IHN0YXRlWzE0XV5pbnB1dFsxNF07IFwKKyAgICBYIyNtYSA9IHN0YXRlWzE1XV5pbnB1dFsxNV07IFwKKyAgICBYIyNtZSA9IHN0YXRlWzE2XV5pbnB1dFsxNl07IFwKKyAgICBYIyNtaSA9IHN0YXRlWzE3XV5pbnB1dFsxN107IFwKKyAgICBYIyNtbyA9IHN0YXRlWzE4XV5pbnB1dFsxOF07IFwKKyAgICBYIyNtdSA9IHN0YXRlWzE5XV5pbnB1dFsxOV07IFwKKyAgICBYIyNzYSA9IHN0YXRlWzIwXV5pbnB1dFsyMF07IFwKKyAgICBYIyNzZSA9IHN0YXRlWzIxXTsgXAorICAgIFgjI3NpID0gc3RhdGVbMjJdOyBcCisgICAgWCMjc28gPSBzdGF0ZVsyM107IFwKKyAgICBYIyNzdSA9IHN0YXRlWzI0XTsgXAorCisjZGVmaW5lIGNvcHlGcm9tU3RhdGUoWCwgc3RhdGUpIFwKKyAgICBYIyNiYSA9IHN0YXRlWyAwXTsgXAorICAgIFgjI2JlID0gc3RhdGVbIDFdOyBcCisgICAgWCMjYmkgPSBzdGF0ZVsgMl07IFwKKyAgICBYIyNibyA9IHN0YXRlWyAzXTsgXAorICAgIFgjI2J1ID0gc3RhdGVbIDRdOyBcCisgICAgWCMjZ2EgPSBzdGF0ZVsgNV07IFwKKyAgICBYIyNnZSA9IHN0YXRlWyA2XTsgXAorICAgIFgjI2dpID0gc3RhdGVbIDddOyBcCisgICAgWCMjZ28gPSBzdGF0ZVsgOF07IFwKKyAgICBYIyNndSA9IHN0YXRlWyA5XTsgXAorICAgIFgjI2thID0gc3RhdGVbMTBdOyBcCisgICAgWCMja2UgPSBzdGF0ZVsxMV07IFwKKyAgICBYIyNraSA9IHN0YXRlWzEyXTsgXAorICAgIFgjI2tvID0gc3RhdGVbMTNdOyBcCisgICAgWCMja3UgPSBzdGF0ZVsxNF07IFwKKyAgICBYIyNtYSA9IHN0YXRlWzE1XTsgXAorICAgIFgjI21lID0gc3RhdGVbMTZdOyBcCisgICAgWCMjbWkgPSBzdGF0ZVsxN107IFwKKyAgICBYIyNtbyA9IHN0YXRlWzE4XTsgXAorICAgIFgjI211ID0gc3RhdGVbMTldOyBcCisgICAgWCMjc2EgPSBzdGF0ZVsyMF07IFwKKyAgICBYIyNzZSA9IHN0YXRlWzIxXTsgXAorICAgIFgjI3NpID0gc3RhdGVbMjJdOyBcCisgICAgWCMjc28gPSBzdGF0ZVsyM107IFwKKyAgICBYIyNzdSA9IHN0YXRlWzI0XTsgXAorCisjZGVmaW5lIGNvcHlUb1N0YXRlKHN0YXRlLCBYKSBcCisgICAgc3RhdGVbIDBdID0gWCMjYmE7IFwKKyAgICBzdGF0ZVsgMV0gPSBYIyNiZTsgXAorICAgIHN0YXRlWyAyXSA9IFgjI2JpOyBcCisgICAgc3RhdGVbIDNdID0gWCMjYm87IFwKKyAgICBzdGF0ZVsgNF0gPSBYIyNidTsgXAorICAgIHN0YXRlWyA1XSA9IFgjI2dhOyBcCisgICAgc3RhdGVbIDZdID0gWCMjZ2U7IFwKKyAgICBzdGF0ZVsgN10gPSBYIyNnaTsgXAorICAgIHN0YXRlWyA4XSA9IFgjI2dvOyBcCisgICAgc3RhdGVbIDldID0gWCMjZ3U7IFwKKyAgICBzdGF0ZVsxMF0gPSBYIyNrYTsgXAorICAgIHN0YXRlWzExXSA9IFgjI2tlOyBcCisgICAgc3RhdGVbMTJdID0gWCMja2k7IFwKKyAgICBzdGF0ZVsxM10gPSBYIyNrbzsgXAorICAgIHN0YXRlWzE0XSA9IFgjI2t1OyBcCisgICAgc3RhdGVbMTVdID0gWCMjbWE7IFwKKyAgICBzdGF0ZVsxNl0gPSBYIyNtZTsgXAorICAgIHN0YXRlWzE3XSA9IFgjI21pOyBcCisgICAgc3RhdGVbMThdID0gWCMjbW87IFwKKyAgICBzdGF0ZVsxOV0gPSBYIyNtdTsgXAorICAgIHN0YXRlWzIwXSA9IFgjI3NhOyBcCisgICAgc3RhdGVbMjFdID0gWCMjc2U7IFwKKyAgICBzdGF0ZVsyMl0gPSBYIyNzaTsgXAorICAgIHN0YXRlWzIzXSA9IFgjI3NvOyBcCisgICAgc3RhdGVbMjRdID0gWCMjc3U7IFwKKworI2RlZmluZSBjb3B5U3RhdGVWYXJpYWJsZXMoWCwgWSkgXAorICAgIFgjI2JhID0gWSMjYmE7IFwKKyAgICBYIyNiZSA9IFkjI2JlOyBcCisgICAgWCMjYmkgPSBZIyNiaTsgXAorICAgIFgjI2JvID0gWSMjYm87IFwKKyAgICBYIyNidSA9IFkjI2J1OyBcCisgICAgWCMjZ2EgPSBZIyNnYTsgXAorICAgIFgjI2dlID0gWSMjZ2U7IFwKKyAgICBYIyNnaSA9IFkjI2dpOyBcCisgICAgWCMjZ28gPSBZIyNnbzsgXAorICAgIFgjI2d1ID0gWSMjZ3U7IFwKKyAgICBYIyNrYSA9IFkjI2thOyBcCisgICAgWCMja2UgPSBZIyNrZTsgXAorICAgIFgjI2tpID0gWSMja2k7IFwKKyAgICBYIyNrbyA9IFkjI2tvOyBcCisgICAgWCMja3UgPSBZIyNrdTsgXAorICAgIFgjI21hID0gWSMjbWE7IFwKKyAgICBYIyNtZSA9IFkjI21lOyBcCisgICAgWCMjbWkgPSBZIyNtaTsgXAorICAgIFgjI21vID0gWSMjbW87IFwKKyAgICBYIyNtdSA9IFkjI211OyBcCisgICAgWCMjc2EgPSBZIyNzYTsgXAorICAgIFgjI3NlID0gWSMjc2U7IFwKKyAgICBYIyNzaSA9IFkjI3NpOyBcCisgICAgWCMjc28gPSBZIyNzbzsgXAorICAgIFgjI3N1ID0gWSMjc3U7IFwKKwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrRi0xNjAwLWludC1zZXQuaCBiL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC1pbnQtc2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVkMWQ4MAotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC1pbnQtc2V0LmgKQEAgLTAsMCArMSw2IEBACisjZGVmaW5lIFByb3ZpZGVGYXN0NTc2CisjZGVmaW5lIFByb3ZpZGVGYXN0ODMyCisjZGVmaW5lIFByb3ZpZGVGYXN0MTAyNAorI2RlZmluZSBQcm92aWRlRmFzdDEwODgKKyNkZWZpbmUgUHJvdmlkZUZhc3QxMTUyCisjZGVmaW5lIFByb3ZpZGVGYXN0MTM0NApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrRi0xNjAwLWludGVyZmFjZS5oIGIvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrRi0xNjAwLWludGVyZmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlMjcxMGUKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtaW50ZXJmYWNlLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKK1RoZSBLZWNjYWsgc3BvbmdlIGZ1bmN0aW9uLCBkZXNpZ25lZCBieSBHdWlkbyBCZXJ0b25pLCBKb2FuIERhZW1lbiwKK01pY2hhw6tsIFBlZXRlcnMgYW5kIEdpbGxlcyBWYW4gQXNzY2hlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgZmVlZGJhY2sgb3IKK3F1ZXN0aW9ucywgcGxlYXNlIHJlZmVyIHRvIG91ciB3ZWJzaXRlOiBodHRwOi8va2VjY2FrLm5vZWtlb24ub3JnLworCitJbXBsZW1lbnRhdGlvbiBieSB0aGUgZGVzaWduZXJzLAoraGVyZWJ5IGRlbm90ZWQgYXMgInRoZSBpbXBsZW1lbnRlciIuCisKK1RvIHRoZSBleHRlbnQgcG9zc2libGUgdW5kZXIgbGF3LCB0aGUgaW1wbGVtZW50ZXIgaGFzIHdhaXZlZCBhbGwgY29weXJpZ2h0CithbmQgcmVsYXRlZCBvciBuZWlnaGJvcmluZyByaWdodHMgdG8gdGhlIHNvdXJjZSBjb2RlIGluIHRoaXMgZmlsZS4KK2h0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKyovCisKKyNpZm5kZWYgX0tlY2Nha1Blcm11dGF0aW9uSW50ZXJmYWNlX2hfCisjZGVmaW5lIF9LZWNjYWtQZXJtdXRhdGlvbkludGVyZmFjZV9oXworCisjaW5jbHVkZSAiS2VjY2FrRi0xNjAwLWludC1zZXQuaCIKKworc3RhdGljIHZvaWQgS2VjY2FrSW5pdGlhbGl6ZSggdm9pZCApOworc3RhdGljIHZvaWQgS2VjY2FrSW5pdGlhbGl6ZVN0YXRlKHVuc2lnbmVkIGNoYXIgKnN0YXRlKTsKK3N0YXRpYyB2b2lkIEtlY2Nha1Blcm11dGF0aW9uKHVuc2lnbmVkIGNoYXIgKnN0YXRlKTsKKyNpZmRlZiBQcm92aWRlRmFzdDU3Ngorc3RhdGljIHZvaWQgS2VjY2FrQWJzb3JiNTc2Yml0cyh1bnNpZ25lZCBjaGFyICpzdGF0ZSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSk7CisjZW5kaWYKKyNpZmRlZiBQcm92aWRlRmFzdDgzMgorc3RhdGljIHZvaWQgS2VjY2FrQWJzb3JiODMyYml0cyh1bnNpZ25lZCBjaGFyICpzdGF0ZSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSk7CisjZW5kaWYKKyNpZmRlZiBQcm92aWRlRmFzdDEwMjQKK3N0YXRpYyB2b2lkIEtlY2Nha0Fic29yYjEwMjRiaXRzKHVuc2lnbmVkIGNoYXIgKnN0YXRlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKTsKKyNlbmRpZgorI2lmZGVmIFByb3ZpZGVGYXN0MTA4OAorc3RhdGljIHZvaWQgS2VjY2FrQWJzb3JiMTA4OGJpdHModW5zaWduZWQgY2hhciAqc3RhdGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEpOworI2VuZGlmCisjaWZkZWYgUHJvdmlkZUZhc3QxMTUyCitzdGF0aWMgdm9pZCBLZWNjYWtBYnNvcmIxMTUyYml0cyh1bnNpZ25lZCBjaGFyICpzdGF0ZSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSk7CisjZW5kaWYKKyNpZmRlZiBQcm92aWRlRmFzdDEzNDQKK3N0YXRpYyB2b2lkIEtlY2Nha0Fic29yYjEzNDRiaXRzKHVuc2lnbmVkIGNoYXIgKnN0YXRlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKTsKKyNlbmRpZgorc3RhdGljIHZvaWQgS2VjY2FrQWJzb3JiKHVuc2lnbmVkIGNoYXIgKnN0YXRlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCB1bnNpZ25lZCBpbnQgbGFuZUNvdW50KTsKKyNpZmRlZiBQcm92aWRlRmFzdDEwMjQKK3N0YXRpYyB2b2lkIEtlY2Nha0V4dHJhY3QxMDI0Yml0cyhjb25zdCB1bnNpZ25lZCBjaGFyICpzdGF0ZSwgdW5zaWduZWQgY2hhciAqZGF0YSk7CisjZW5kaWYKK3N0YXRpYyB2b2lkIEtlY2Nha0V4dHJhY3QoY29uc3QgdW5zaWduZWQgY2hhciAqc3RhdGUsIHVuc2lnbmVkIGNoYXIgKmRhdGEsIHVuc2lnbmVkIGludCBsYW5lQ291bnQpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC1vcHQzMi1zZXR0aW5ncy5oIGIvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrRi0xNjAwLW9wdDMyLXNldHRpbmdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE1Yzc4MgotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC1vcHQzMi1zZXR0aW5ncy5oCkBAIC0wLDAgKzEsNiBAQAorLyoKKyNkZWZpbmUgVW5yb2xsaW5nIDIKKyNkZWZpbmUgVXNlQmViaWdva2ltaXNhCisjZGVmaW5lIFVzZUludGVybGVhdmVUYWJsZXMKKyNkZWZpbmUgVXNlU2NoZWR1bGUgMworKi8KZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC1vcHQzMi5jIGIvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrRi0xNjAwLW9wdDMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGJhNmQ1OQotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC1vcHQzMi5jCkBAIC0wLDAgKzEsNTI0IEBACisvKgorVGhlIEtlY2NhayBzcG9uZ2UgZnVuY3Rpb24sIGRlc2lnbmVkIGJ5IEd1aWRvIEJlcnRvbmksIEpvYW4gRGFlbWVuLAorTWljaGHDq2wgUGVldGVycyBhbmQgR2lsbGVzIFZhbiBBc3NjaGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBmZWVkYmFjayBvcgorcXVlc3Rpb25zLCBwbGVhc2UgcmVmZXIgdG8gb3VyIHdlYnNpdGU6IGh0dHA6Ly9rZWNjYWsubm9la2Vvbi5vcmcvCisKK0ltcGxlbWVudGF0aW9uIGJ5IHRoZSBkZXNpZ25lcnMsCitoZXJlYnkgZGVub3RlZCBhcyAidGhlIGltcGxlbWVudGVyIi4KKworVG8gdGhlIGV4dGVudCBwb3NzaWJsZSB1bmRlciBsYXcsIHRoZSBpbXBsZW1lbnRlciBoYXMgd2FpdmVkIGFsbCBjb3B5cmlnaHQKK2FuZCByZWxhdGVkIG9yIG5laWdoYm9yaW5nIHJpZ2h0cyB0byB0aGUgc291cmNlIGNvZGUgaW4gdGhpcyBmaWxlLgoraHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworKi8KKworI2luY2x1ZGUgPHN0cmluZy5oPgorLyogI2luY2x1ZGUgImJyZ19lbmRpYW4uaCIgKi8KKyNpbmNsdWRlICJLZWNjYWtGLTE2MDAtb3B0MzItc2V0dGluZ3MuaCIKKyNpbmNsdWRlICJLZWNjYWtGLTE2MDAtaW50ZXJmYWNlLmgiCisKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBVSU5UODsKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgVUlOVDE2OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgVUlOVDMyOworLyogdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IFVJTlQ2NDsgKi8KKworI2lmZGVmIFVzZUludGVybGVhdmVUYWJsZXMKK3N0YXRpYyBpbnQgaW50ZXJsZWF2ZVRhYmxlc0J1aWx0ID0gMDsKK3N0YXRpYyBVSU5UMTYgaW50ZXJsZWF2ZVRhYmxlWzY1NTM2XTsKK3N0YXRpYyBVSU5UMTYgZGVpbnRlcmxlYXZlVGFibGVbNjU1MzZdOworCitzdGF0aWMgdm9pZCBidWlsZEludGVybGVhdmVUYWJsZXMoKQoreworICAgIFVJTlQzMiBpLCBqOworICAgIFVJTlQxNiB4OworCisgICAgaWYgKCFpbnRlcmxlYXZlVGFibGVzQnVpbHQpIHsKKyAgICAgICAgZm9yKGk9MDsgaTw2NTUzNjsgaSsrKSB7CisgICAgICAgICAgICB4ID0gMDsKKyAgICAgICAgICAgIGZvcihqPTA7IGo8MTY7IGorKykgeworICAgICAgICAgICAgICAgIGlmIChpICYgKDEgPDwgaikpCisgICAgICAgICAgICAgICAgICAgIHggfD0gKDEgPDwgKGovMiArIDgqKGolMikpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludGVybGVhdmVUYWJsZVtpXSA9IHg7CisgICAgICAgICAgICBkZWludGVybGVhdmVUYWJsZVt4XSA9IChVSU5UMTYpaTsKKyAgICAgICAgfQorICAgICAgICBpbnRlcmxlYXZlVGFibGVzQnVpbHQgPSAxOworICAgIH0KK30KKworI2lmIChQTEFURk9STV9CWVRFX09SREVSID09IElTX0xJVFRMRV9FTkRJQU4pCisKKyNkZWZpbmUgeG9yMmJ5dGVzSW50b0ludGVybGVhdmVkV29yZHMoZXZlbiwgb2RkLCBzb3VyY2UsIGopIFwKKyAgICBpIyNqID0gaW50ZXJsZWF2ZVRhYmxlWygoY29uc3QgVUlOVDE2Kilzb3VyY2UpW2pdXTsgXAorICAgICgoVUlOVDgqKWV2ZW4pW2pdIF49IGkjI2ogJiAweEZGOyBcCisgICAgKChVSU5UOCopb2RkKVtqXSBePSBpIyNqID4+IDg7CisKKyNkZWZpbmUgc2V0SW50ZXJsZWF2ZWRXb3Jkc0ludG8yYnl0ZXMoZGVzdCwgZXZlbiwgb2RkLCBqKSBcCisgICAgZCMjaiA9IGRlaW50ZXJsZWF2ZVRhYmxlWygoZXZlbiA+PiAoaio4KSkgJiAweEZGKSBeICgoKG9kZCA+PiAoaio4KSkgJiAweEZGKSA8PCA4KV07IFwKKyAgICAoKFVJTlQxNiopZGVzdClbal0gPSBkIyNqOworCisjZWxzZSAvKiAgKFBMQVRGT1JNX0JZVEVfT1JERVIgPT0gSVNfQklHX0VORElBTikgKi8KKworI2RlZmluZSB4b3IyYnl0ZXNJbnRvSW50ZXJsZWF2ZWRXb3JkcyhldmVuLCBvZGQsIHNvdXJjZSwgaikgXAorICAgIGkjI2ogPSBpbnRlcmxlYXZlVGFibGVbc291cmNlWzIqal0gXiAoKFVJTlQxNilzb3VyY2VbMipqKzFdIDw8IDgpXTsgXAorICAgICpldmVuIF49IChpIyNqICYgMHhGRikgPDwgKGoqOCk7IFwKKyAgICAqb2RkIF49ICgoaSMjaiA+PiA4KSAmIDB4RkYpIDw8IChqKjgpOworCisjZGVmaW5lIHNldEludGVybGVhdmVkV29yZHNJbnRvMmJ5dGVzKGRlc3QsIGV2ZW4sIG9kZCwgaikgXAorICAgIGQjI2ogPSBkZWludGVybGVhdmVUYWJsZVsoKGV2ZW4gPj4gKGoqOCkpICYgMHhGRikgXiAoKChvZGQgPj4gKGoqOCkpICYgMHhGRikgPDwgOCldOyBcCisgICAgZGVzdFsyKmpdID0gZCMjaiAmIDB4RkY7IFwKKyAgICBkZXN0WzIqaisxXSA9IGQjI2ogPj4gODsKKworI2VuZGlmIC8qICBFbmRpYW5uZXNzICovCisKK3N0YXRpYyB2b2lkIHhvcjhieXRlc0ludG9JbnRlcmxlYXZlZFdvcmRzKFVJTlQzMiAqZXZlbiwgVUlOVDMyICpvZGQsIGNvbnN0IFVJTlQ4KiBzb3VyY2UpCit7CisgICAgVUlOVDE2IGkwLCBpMSwgaTIsIGkzOworCisgICAgeG9yMmJ5dGVzSW50b0ludGVybGVhdmVkV29yZHMoZXZlbiwgb2RkLCBzb3VyY2UsIDApCisgICAgeG9yMmJ5dGVzSW50b0ludGVybGVhdmVkV29yZHMoZXZlbiwgb2RkLCBzb3VyY2UsIDEpCisgICAgeG9yMmJ5dGVzSW50b0ludGVybGVhdmVkV29yZHMoZXZlbiwgb2RkLCBzb3VyY2UsIDIpCisgICAgeG9yMmJ5dGVzSW50b0ludGVybGVhdmVkV29yZHMoZXZlbiwgb2RkLCBzb3VyY2UsIDMpCit9CisKKyNkZWZpbmUgeG9yTGFuZXNJbnRvU3RhdGUobGFuZUNvdW50LCBzdGF0ZSwgaW5wdXQpIFwKKyAgICB7IFwKKyAgICAgICAgaW50IGk7IFwKKyAgICAgICAgZm9yKGk9MDsgaTwobGFuZUNvdW50KTsgaSsrKSBcCisgICAgICAgICAgICB4b3I4Ynl0ZXNJbnRvSW50ZXJsZWF2ZWRXb3JkcyhzdGF0ZStpKjIsIHN0YXRlK2kqMisxLCBpbnB1dCtpKjgpOyBcCisgICAgfQorCitzdGF0aWMgdm9pZCBzZXRJbnRlcmxlYXZlZFdvcmRzSW50bzhieXRlcyhVSU5UOCogZGVzdCwgVUlOVDMyIGV2ZW4sIFVJTlQzMiBvZGQpCit7CisgICAgVUlOVDE2IGQwLCBkMSwgZDIsIGQzOworCisgICAgc2V0SW50ZXJsZWF2ZWRXb3Jkc0ludG8yYnl0ZXMoZGVzdCwgZXZlbiwgb2RkLCAwKQorICAgIHNldEludGVybGVhdmVkV29yZHNJbnRvMmJ5dGVzKGRlc3QsIGV2ZW4sIG9kZCwgMSkKKyAgICBzZXRJbnRlcmxlYXZlZFdvcmRzSW50bzJieXRlcyhkZXN0LCBldmVuLCBvZGQsIDIpCisgICAgc2V0SW50ZXJsZWF2ZWRXb3Jkc0ludG8yYnl0ZXMoZGVzdCwgZXZlbiwgb2RkLCAzKQorfQorCisjZGVmaW5lIGV4dHJhY3RMYW5lcyhsYW5lQ291bnQsIHN0YXRlLCBkYXRhKSBcCisgICAgeyBcCisgICAgICAgIGludCBpOyBcCisgICAgICAgIGZvcihpPTA7IGk8KGxhbmVDb3VudCk7IGkrKykgXAorICAgICAgICAgICAgc2V0SW50ZXJsZWF2ZWRXb3Jkc0ludG84Ynl0ZXMoZGF0YStpKjgsICgoVUlOVDMyKilzdGF0ZSlbaSoyXSwgKChVSU5UMzIqKXN0YXRlKVtpKjIrMV0pOyBcCisgICAgfQorCisjZWxzZSAvKiAgTm8gaW50ZXJsZWF2aW5nIHRhYmxlcyAqLworCisjaWYgKFBMQVRGT1JNX0JZVEVfT1JERVIgPT0gSVNfTElUVExFX0VORElBTikKKworLyogIENyZWRpdDogSGVucnkgUy4gV2FycmVuLCBIYWNrZXIncyBEZWxpZ2h0LCBBZGRpc29uLVdlc2xleSwgMjAwMiAqLworI2RlZmluZSB4b3JJbnRlcmxlYXZlZExFKHJhdGVJbkxhbmVzLCBzdGF0ZSwgaW5wdXQpIFwKKwl7IFwKKwkJY29uc3QgVUlOVDMyICogcEkgPSAoY29uc3QgVUlOVDMyICopaW5wdXQ7IFwKKwkJVUlOVDMyICogcFMgPSBzdGF0ZTsgXAorCQlVSU5UMzIgdCwgeDAsIHgxOyBcCisJICAgIGludCBpOyBcCisJICAgIGZvciAoaSA9IChyYXRlSW5MYW5lcyktMTsgaSA+PSAwOyAtLWkpIFwKKwkJeyBcCisJCQl4MCA9ICoocEkrKyk7IFwKKwkJCXQgPSAoeDAgXiAoeDAgPj4gIDEpKSAmIDB4MjIyMjIyMjJVTDsgIHgwID0geDAgXiB0IF4gKHQgPDwgIDEpOyBcCisJCQl0ID0gKHgwIF4gKHgwID4+ICAyKSkgJiAweDBDMEMwQzBDVUw7ICB4MCA9IHgwIF4gdCBeICh0IDw8ICAyKTsgXAorCQkJdCA9ICh4MCBeICh4MCA+PiAgNCkpICYgMHgwMEYwMDBGMFVMOyAgeDAgPSB4MCBeIHQgXiAodCA8PCAgNCk7IFwKKwkJCXQgPSAoeDAgXiAoeDAgPj4gIDgpKSAmIDB4MDAwMEZGMDBVTDsgIHgwID0geDAgXiB0IF4gKHQgPDwgIDgpOyBcCisgCQkJeDEgPSAqKHBJKyspOyBcCisJCQl0ID0gKHgxIF4gKHgxID4+ICAxKSkgJiAweDIyMjIyMjIyVUw7ICB4MSA9IHgxIF4gdCBeICh0IDw8ICAxKTsgXAorCQkJdCA9ICh4MSBeICh4MSA+PiAgMikpICYgMHgwQzBDMEMwQ1VMOyAgeDEgPSB4MSBeIHQgXiAodCA8PCAgMik7IFwKKwkJCXQgPSAoeDEgXiAoeDEgPj4gIDQpKSAmIDB4MDBGMDAwRjBVTDsgIHgxID0geDEgXiB0IF4gKHQgPDwgIDQpOyBcCisJCQl0ID0gKHgxIF4gKHgxID4+ICA4KSkgJiAweDAwMDBGRjAwVUw7ICB4MSA9IHgxIF4gdCBeICh0IDw8ICA4KTsgXAorCQkJKihwUysrKSBePSAoVUlOVDE2KXgwIHwgKHgxIDw8IDE2KTsgXAorCQkJKihwUysrKSBePSAoeDAgPj4gMTYpIHwgKHgxICYgMHhGRkZGMDAwMCk7IFwKKwkJfSBcCisJfQorCisjZGVmaW5lIHhvckxhbmVzSW50b1N0YXRlKGxhbmVDb3VudCwgc3RhdGUsIGlucHV0KSBcCisgICAgeG9ySW50ZXJsZWF2ZWRMRShsYW5lQ291bnQsIHN0YXRlLCBpbnB1dCkKKworI2Vsc2UgLyogIChQTEFURk9STV9CWVRFX09SREVSID09IElTX0JJR19FTkRJQU4pICovCisKKy8qICBDcmVkaXQ6IEhlbnJ5IFMuIFdhcnJlbiwgSGFja2VyJ3MgRGVsaWdodCwgQWRkaXNvbi1XZXNsZXksIDIwMDIgKi8KK1VJTlQ2NCB0b0ludGVybGVhdmluZyhVSU5UNjQgeCkgCit7CisgICBVSU5UNjQgdDsKKworICAgdCA9ICh4IF4gKHggPj4gIDEpKSAmIDB4MjIyMjIyMjIyMjIyMjIyMlVMTDsgIHggPSB4IF4gdCBeICh0IDw8ICAxKTsKKyAgIHQgPSAoeCBeICh4ID4+ICAyKSkgJiAweDBDMEMwQzBDMEMwQzBDMENVTEw7ICB4ID0geCBeIHQgXiAodCA8PCAgMik7CisgICB0ID0gKHggXiAoeCA+PiAgNCkpICYgMHgwMEYwMDBGMDAwRjAwMEYwVUxMOyAgeCA9IHggXiB0IF4gKHQgPDwgIDQpOworICAgdCA9ICh4IF4gKHggPj4gIDgpKSAmIDB4MDAwMEZGMDAwMDAwRkYwMFVMTDsgIHggPSB4IF4gdCBeICh0IDw8ICA4KTsKKyAgIHQgPSAoeCBeICh4ID4+IDE2KSkgJiAweDAwMDAwMDAwRkZGRjAwMDBVTEw7ICB4ID0geCBeIHQgXiAodCA8PCAxNik7CisKKyAgIHJldHVybiB4OworfQorCitzdGF0aWMgdm9pZCB4b3I4Ynl0ZXNJbnRvSW50ZXJsZWF2ZWRXb3JkcyhVSU5UMzIqIGV2ZW5BbmRPZGQsIGNvbnN0IFVJTlQ4KiBzb3VyY2UpCit7CisgICAgLyogIFRoaXMgY2FuIGJlIG9wdGltaXplZCAqLworICAgIFVJTlQ2NCBzb3VyY2VXb3JkID0KKyAgICAgICAgKFVJTlQ2NClzb3VyY2VbMF0KKyAgICAgICAgXiAoKChVSU5UNjQpc291cmNlWzFdKSA8PCAgOCkKKyAgICAgICAgXiAoKChVSU5UNjQpc291cmNlWzJdKSA8PCAxNikKKyAgICAgICAgXiAoKChVSU5UNjQpc291cmNlWzNdKSA8PCAyNCkKKyAgICAgICAgXiAoKChVSU5UNjQpc291cmNlWzRdKSA8PCAzMikKKyAgICAgICAgXiAoKChVSU5UNjQpc291cmNlWzVdKSA8PCA0MCkKKyAgICAgICAgXiAoKChVSU5UNjQpc291cmNlWzZdKSA8PCA0OCkKKyAgICAgICAgXiAoKChVSU5UNjQpc291cmNlWzddKSA8PCA1Nik7CisgICAgVUlOVDY0IGV2ZW5BbmRPZGRXb3JkID0gdG9JbnRlcmxlYXZpbmcoc291cmNlV29yZCk7CisgICAgZXZlbkFuZE9kZFswXSBePSAoVUlOVDMyKWV2ZW5BbmRPZGRXb3JkOworICAgIGV2ZW5BbmRPZGRbMV0gXj0gKFVJTlQzMikoZXZlbkFuZE9kZFdvcmQgPj4gMzIpOworfQorCisjZGVmaW5lIHhvckxhbmVzSW50b1N0YXRlKGxhbmVDb3VudCwgc3RhdGUsIGlucHV0KSBcCisgICAgeyBcCisgICAgICAgIGludCBpOyBcCisgICAgICAgIGZvcihpPTA7IGk8KGxhbmVDb3VudCk7IGkrKykgXAorICAgICAgICAgICAgeG9yOGJ5dGVzSW50b0ludGVybGVhdmVkV29yZHMoc3RhdGUraSoyLCBpbnB1dCtpKjgpOyBcCisgICAgfQorCisjZW5kaWYgLyogIEVuZGlhbm5lc3MgKi8KKworLyogIENyZWRpdDogSGVucnkgUy4gV2FycmVuLCBIYWNrZXIncyBEZWxpZ2h0LCBBZGRpc29uLVdlc2xleSwgMjAwMiAqLworVUlOVDY0IGZyb21JbnRlcmxlYXZpbmcoVUlOVDY0IHgpCit7CisgICBVSU5UNjQgdDsKKworICAgdCA9ICh4IF4gKHggPj4gMTYpKSAmIDB4MDAwMDAwMDBGRkZGMDAwMFVMTDsgIHggPSB4IF4gdCBeICh0IDw8IDE2KTsKKyAgIHQgPSAoeCBeICh4ID4+ICA4KSkgJiAweDAwMDBGRjAwMDAwMEZGMDBVTEw7ICB4ID0geCBeIHQgXiAodCA8PCAgOCk7CisgICB0ID0gKHggXiAoeCA+PiAgNCkpICYgMHgwMEYwMDBGMDAwRjAwMEYwVUxMOyAgeCA9IHggXiB0IF4gKHQgPDwgIDQpOworICAgdCA9ICh4IF4gKHggPj4gIDIpKSAmIDB4MEMwQzBDMEMwQzBDMEMwQ1VMTDsgIHggPSB4IF4gdCBeICh0IDw8ICAyKTsKKyAgIHQgPSAoeCBeICh4ID4+ICAxKSkgJiAweDIyMjIyMjIyMjIyMjIyMjJVTEw7ICB4ID0geCBeIHQgXiAodCA8PCAgMSk7CisKKyAgIHJldHVybiB4OworfQorCitzdGF0aWMgdm9pZCBzZXRJbnRlcmxlYXZlZFdvcmRzSW50bzhieXRlcyhVSU5UOCogZGVzdCwgVUlOVDMyKiBldmVuQW5kT2RkKQoreworI2lmIChQTEFURk9STV9CWVRFX09SREVSID09IElTX0xJVFRMRV9FTkRJQU4pCisgICAgKChVSU5UNjQqKWRlc3QpWzBdID0gZnJvbUludGVybGVhdmluZygqKFVJTlQ2NCopZXZlbkFuZE9kZCk7CisjZWxzZSAvKiAgKFBMQVRGT1JNX0JZVEVfT1JERVIgPT0gSVNfQklHX0VORElBTikgKi8KKyAgICAvKiAgVGhpcyBjYW4gYmUgb3B0aW1pemVkICovCisgICAgVUlOVDY0IGV2ZW5BbmRPZGRXb3JkID0gKFVJTlQ2NClldmVuQW5kT2RkWzBdIF4gKChVSU5UNjQpZXZlbkFuZE9kZFsxXSA8PCAzMik7CisgICAgVUlOVDY0IGRlc3RXb3JkID0gZnJvbUludGVybGVhdmluZyhldmVuQW5kT2RkV29yZCk7CisgICAgZGVzdFswXSA9IGRlc3RXb3JkICYgMHhGRjsKKyAgICBkZXN0WzFdID0gKGRlc3RXb3JkID4+IDgpICYgMHhGRjsKKyAgICBkZXN0WzJdID0gKGRlc3RXb3JkID4+IDE2KSAmIDB4RkY7CisgICAgZGVzdFszXSA9IChkZXN0V29yZCA+PiAyNCkgJiAweEZGOworICAgIGRlc3RbNF0gPSAoZGVzdFdvcmQgPj4gMzIpICYgMHhGRjsKKyAgICBkZXN0WzVdID0gKGRlc3RXb3JkID4+IDQwKSAmIDB4RkY7CisgICAgZGVzdFs2XSA9IChkZXN0V29yZCA+PiA0OCkgJiAweEZGOworICAgIGRlc3RbN10gPSAoZGVzdFdvcmQgPj4gNTYpICYgMHhGRjsKKyNlbmRpZiAvKiAgRW5kaWFubmVzcyAqLworfQorCisjZGVmaW5lIGV4dHJhY3RMYW5lcyhsYW5lQ291bnQsIHN0YXRlLCBkYXRhKSBcCisgICAgeyBcCisgICAgICAgIGludCBpOyBcCisgICAgICAgIGZvcihpPTA7IGk8KGxhbmVDb3VudCk7IGkrKykgXAorICAgICAgICAgICAgc2V0SW50ZXJsZWF2ZWRXb3Jkc0ludG84Ynl0ZXMoZGF0YStpKjgsIChVSU5UMzIqKXN0YXRlK2kqMik7IFwKKyAgICB9CisKKyNlbmRpZiAvKiAgV2l0aCBvciB3aXRob3V0IGludGVybGVhdmluZyB0YWJsZXMgKi8KKworI2lmIGRlZmluZWQoX01TQ19WRVIpCisjZGVmaW5lIFJPTDMyKGEsIG9mZnNldCkgX3JvdGwoYSwgb2Zmc2V0KQorI2VsaWYgKGRlZmluZWQgKF9fYXJtX18pICYmIGRlZmluZWQoX19BUk1DQ19WRVJTSU9OKSkKKyNkZWZpbmUgUk9MMzIoYSwgb2Zmc2V0KSBfX3JvcihhLCAzMi0ob2Zmc2V0KSkKKyNlbHNlCisjZGVmaW5lIFJPTDMyKGEsIG9mZnNldCkgKCgoKFVJTlQzMilhKSA8PCAob2Zmc2V0KSkgXiAoKChVSU5UMzIpYSkgPj4gKDMyLShvZmZzZXQpKSkpCisjZW5kaWYKKworI2luY2x1ZGUgIktlY2Nha0YtMTYwMC11bnJvbGxpbmcubWFjcm9zIgorI2luY2x1ZGUgIktlY2Nha0YtMTYwMC0zMi5tYWNyb3MiCisKKyNpZiAoVXNlU2NoZWR1bGUgPT0gMykKKworI2lmZGVmIFVzZUJlYmlnb2tpbWlzYQorI2Vycm9yICJObyBsYW5lIGNvbXBsZW1lbnRpbmcgd2l0aCBzY2hlZHVsZSAzLiIKKyNlbmRpZgorCisjaWYgKFVucm9sbGluZyAhPSAyKQorI2Vycm9yICJPbmx5IHVucm9sbGluZyAyIGlzIHN1cHBvcnRlZCBieSBzY2hlZHVsZSAzLiIKKyNlbmRpZgorCitzdGF0aWMgdm9pZCBLZWNjYWtQZXJtdXRhdGlvbk9uV29yZHMoVUlOVDMyICpzdGF0ZSkKK3sKKyAgICByb3VuZHMKK30KKworc3RhdGljIHZvaWQgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcoVUlOVDMyICpzdGF0ZSwgY29uc3QgVUlOVDggKmlucHV0LCB1bnNpZ25lZCBpbnQgbGFuZUNvdW50KQoreworICAgIHhvckxhbmVzSW50b1N0YXRlKGxhbmVDb3VudCwgc3RhdGUsIGlucHV0KQorICAgIHJvdW5kcworfQorCisjaWZkZWYgUHJvdmlkZUZhc3Q1NzYKK3N0YXRpYyB2b2lkIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nNTc2Yml0cyhVSU5UMzIgKnN0YXRlLCBjb25zdCBVSU5UOCAqaW5wdXQpCit7CisgICAgeG9yTGFuZXNJbnRvU3RhdGUoOSwgc3RhdGUsIGlucHV0KQorICAgIHJvdW5kcworfQorI2VuZGlmCisKKyNpZmRlZiBQcm92aWRlRmFzdDgzMgorc3RhdGljIHZvaWQgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3Jpbmc4MzJiaXRzKFVJTlQzMiAqc3RhdGUsIGNvbnN0IFVJTlQ4ICppbnB1dCkKK3sKKyAgICB4b3JMYW5lc0ludG9TdGF0ZSgxMywgc3RhdGUsIGlucHV0KQorICAgIHJvdW5kcworfQorI2VuZGlmCisKKyNpZmRlZiBQcm92aWRlRmFzdDEwMjQKK3N0YXRpYyB2b2lkIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nMTAyNGJpdHMoVUlOVDMyICpzdGF0ZSwgY29uc3QgVUlOVDggKmlucHV0KQoreworICAgIHhvckxhbmVzSW50b1N0YXRlKDE2LCBzdGF0ZSwgaW5wdXQpCisgICAgcm91bmRzCit9CisjZW5kaWYKKworI2lmZGVmIFByb3ZpZGVGYXN0MTA4OAorc3RhdGljIHZvaWQgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcxMDg4Yml0cyhVSU5UMzIgKnN0YXRlLCBjb25zdCBVSU5UOCAqaW5wdXQpCit7CisgICAgeG9yTGFuZXNJbnRvU3RhdGUoMTcsIHN0YXRlLCBpbnB1dCkKKyAgICByb3VuZHMKK30KKyNlbmRpZgorCisjaWZkZWYgUHJvdmlkZUZhc3QxMTUyCitzdGF0aWMgdm9pZCBLZWNjYWtQZXJtdXRhdGlvbk9uV29yZHNBZnRlclhvcmluZzExNTJiaXRzKFVJTlQzMiAqc3RhdGUsIGNvbnN0IFVJTlQ4ICppbnB1dCkKK3sKKyAgICB4b3JMYW5lc0ludG9TdGF0ZSgxOCwgc3RhdGUsIGlucHV0KQorICAgIHJvdW5kcworfQorI2VuZGlmCisKKyNpZmRlZiBQcm92aWRlRmFzdDEzNDQKK3N0YXRpYyB2b2lkIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nMTM0NGJpdHMoVUlOVDMyICpzdGF0ZSwgY29uc3QgVUlOVDggKmlucHV0KQoreworICAgIHhvckxhbmVzSW50b1N0YXRlKDIxLCBzdGF0ZSwgaW5wdXQpCisgICAgcm91bmRzCit9CisjZW5kaWYKKworI2Vsc2UgLyogIChTY2hlZHVsZSAhPSAzKSAqLworCitzdGF0aWMgdm9pZCBLZWNjYWtQZXJtdXRhdGlvbk9uV29yZHMoVUlOVDMyICpzdGF0ZSkKK3sKKyAgICBkZWNsYXJlQUJDREUKKyNpZiAoVW5yb2xsaW5nICE9IDI0KQorICAgIHVuc2lnbmVkIGludCBpOworI2VuZGlmCisKKyAgICBjb3B5RnJvbVN0YXRlKEEsIHN0YXRlKQorICAgIHJvdW5kcworfQorCitzdGF0aWMgdm9pZCBLZWNjYWtQZXJtdXRhdGlvbk9uV29yZHNBZnRlclhvcmluZyhVSU5UMzIgKnN0YXRlLCBjb25zdCBVSU5UOCAqaW5wdXQsIHVuc2lnbmVkIGludCBsYW5lQ291bnQpCit7CisgICAgZGVjbGFyZUFCQ0RFCisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICB4b3JMYW5lc0ludG9TdGF0ZShsYW5lQ291bnQsIHN0YXRlLCBpbnB1dCkKKyAgICBjb3B5RnJvbVN0YXRlKEEsIHN0YXRlKQorICAgIHJvdW5kcworfQorCisjaWZkZWYgUHJvdmlkZUZhc3Q1NzYKK3N0YXRpYyB2b2lkIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nNTc2Yml0cyhVSU5UMzIgKnN0YXRlLCBjb25zdCBVSU5UOCAqaW5wdXQpCit7CisgICAgZGVjbGFyZUFCQ0RFCisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICB4b3JMYW5lc0ludG9TdGF0ZSg5LCBzdGF0ZSwgaW5wdXQpCisgICAgY29weUZyb21TdGF0ZShBLCBzdGF0ZSkKKyAgICByb3VuZHMKK30KKyNlbmRpZgorCisjaWZkZWYgUHJvdmlkZUZhc3Q4MzIKK3N0YXRpYyB2b2lkIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nODMyYml0cyhVSU5UMzIgKnN0YXRlLCBjb25zdCBVSU5UOCAqaW5wdXQpCit7CisgICAgZGVjbGFyZUFCQ0RFCisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICB4b3JMYW5lc0ludG9TdGF0ZSgxMywgc3RhdGUsIGlucHV0KQorICAgIGNvcHlGcm9tU3RhdGUoQSwgc3RhdGUpCisgICAgcm91bmRzCit9CisjZW5kaWYKKworI2lmZGVmIFByb3ZpZGVGYXN0MTAyNAorc3RhdGljIHZvaWQgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcxMDI0Yml0cyhVSU5UMzIgKnN0YXRlLCBjb25zdCBVSU5UOCAqaW5wdXQpCit7CisgICAgZGVjbGFyZUFCQ0RFCisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICB4b3JMYW5lc0ludG9TdGF0ZSgxNiwgc3RhdGUsIGlucHV0KQorICAgIGNvcHlGcm9tU3RhdGUoQSwgc3RhdGUpCisgICAgcm91bmRzCit9CisjZW5kaWYKKworI2lmZGVmIFByb3ZpZGVGYXN0MTA4OAorc3RhdGljIHZvaWQgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcxMDg4Yml0cyhVSU5UMzIgKnN0YXRlLCBjb25zdCBVSU5UOCAqaW5wdXQpCit7CisgICAgZGVjbGFyZUFCQ0RFCisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICB4b3JMYW5lc0ludG9TdGF0ZSgxNywgc3RhdGUsIGlucHV0KQorICAgIGNvcHlGcm9tU3RhdGUoQSwgc3RhdGUpCisgICAgcm91bmRzCit9CisjZW5kaWYKKworI2lmZGVmIFByb3ZpZGVGYXN0MTE1Mgorc3RhdGljIHZvaWQgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcxMTUyYml0cyhVSU5UMzIgKnN0YXRlLCBjb25zdCBVSU5UOCAqaW5wdXQpCit7CisgICAgZGVjbGFyZUFCQ0RFCisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICB4b3JMYW5lc0ludG9TdGF0ZSgxOCwgc3RhdGUsIGlucHV0KQorICAgIGNvcHlGcm9tU3RhdGUoQSwgc3RhdGUpCisgICAgcm91bmRzCit9CisjZW5kaWYKKworI2lmZGVmIFByb3ZpZGVGYXN0MTM0NAorc3RhdGljIHZvaWQgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcxMzQ0Yml0cyhVSU5UMzIgKnN0YXRlLCBjb25zdCBVSU5UOCAqaW5wdXQpCit7CisgICAgZGVjbGFyZUFCQ0RFCisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICB4b3JMYW5lc0ludG9TdGF0ZSgyMSwgc3RhdGUsIGlucHV0KQorICAgIGNvcHlGcm9tU3RhdGUoQSwgc3RhdGUpCisgICAgcm91bmRzCit9CisjZW5kaWYKKworI2VuZGlmCisKK3N0YXRpYyB2b2lkIEtlY2Nha0luaXRpYWxpemUoKQoreworI2lmZGVmIFVzZUludGVybGVhdmVUYWJsZXMKKyAgICBidWlsZEludGVybGVhdmVUYWJsZXMoKTsKKyNlbmRpZgorfQorCitzdGF0aWMgdm9pZCBLZWNjYWtJbml0aWFsaXplU3RhdGUodW5zaWduZWQgY2hhciAqc3RhdGUpCit7CisgICAgbWVtc2V0KHN0YXRlLCAwLCAyMDApOworI2lmZGVmIFVzZUJlYmlnb2tpbWlzYQorICAgICgoVUlOVDMyKilzdGF0ZSlbIDJdID0gfihVSU5UMzIpMDsKKyAgICAoKFVJTlQzMiopc3RhdGUpWyAzXSA9IH4oVUlOVDMyKTA7CisgICAgKChVSU5UMzIqKXN0YXRlKVsgNF0gPSB+KFVJTlQzMikwOworICAgICgoVUlOVDMyKilzdGF0ZSlbIDVdID0gfihVSU5UMzIpMDsKKyAgICAoKFVJTlQzMiopc3RhdGUpWzE2XSA9IH4oVUlOVDMyKTA7CisgICAgKChVSU5UMzIqKXN0YXRlKVsxN10gPSB+KFVJTlQzMikwOworICAgICgoVUlOVDMyKilzdGF0ZSlbMjRdID0gfihVSU5UMzIpMDsKKyAgICAoKFVJTlQzMiopc3RhdGUpWzI1XSA9IH4oVUlOVDMyKTA7CisgICAgKChVSU5UMzIqKXN0YXRlKVszNF0gPSB+KFVJTlQzMikwOworICAgICgoVUlOVDMyKilzdGF0ZSlbMzVdID0gfihVSU5UMzIpMDsKKyAgICAoKFVJTlQzMiopc3RhdGUpWzQwXSA9IH4oVUlOVDMyKTA7CisgICAgKChVSU5UMzIqKXN0YXRlKVs0MV0gPSB+KFVJTlQzMikwOworI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkIEtlY2Nha1Blcm11dGF0aW9uKHVuc2lnbmVkIGNoYXIgKnN0YXRlKQoreworICAgIC8qICBXZSBhc3N1bWUgdGhlIHN0YXRlIGlzIGFsd2F5cyBzdG9yZWQgYXMgaW50ZXJsZWF2ZWQgMzItYml0IHdvcmRzICovCisgICAgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzKChVSU5UMzIqKXN0YXRlKTsKK30KKworI2lmZGVmIFByb3ZpZGVGYXN0NTc2CitzdGF0aWMgdm9pZCBLZWNjYWtBYnNvcmI1NzZiaXRzKHVuc2lnbmVkIGNoYXIgKnN0YXRlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKQoreworICAgIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nNTc2Yml0cygoVUlOVDMyKilzdGF0ZSwgZGF0YSk7Cit9CisjZW5kaWYKKworI2lmZGVmIFByb3ZpZGVGYXN0ODMyCitzdGF0aWMgdm9pZCBLZWNjYWtBYnNvcmI4MzJiaXRzKHVuc2lnbmVkIGNoYXIgKnN0YXRlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKQoreworICAgIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nODMyYml0cygoVUlOVDMyKilzdGF0ZSwgZGF0YSk7Cit9CisjZW5kaWYKKworI2lmZGVmIFByb3ZpZGVGYXN0MTAyNAorc3RhdGljIHZvaWQgS2VjY2FrQWJzb3JiMTAyNGJpdHModW5zaWduZWQgY2hhciAqc3RhdGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEpCit7CisgICAgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcxMDI0Yml0cygoVUlOVDMyKilzdGF0ZSwgZGF0YSk7Cit9CisjZW5kaWYKKworI2lmZGVmIFByb3ZpZGVGYXN0MTA4OAorc3RhdGljIHZvaWQgS2VjY2FrQWJzb3JiMTA4OGJpdHModW5zaWduZWQgY2hhciAqc3RhdGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEpCit7CisgICAgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcxMDg4Yml0cygoVUlOVDMyKilzdGF0ZSwgZGF0YSk7Cit9CisjZW5kaWYKKworI2lmZGVmIFByb3ZpZGVGYXN0MTE1Mgorc3RhdGljIHZvaWQgS2VjY2FrQWJzb3JiMTE1MmJpdHModW5zaWduZWQgY2hhciAqc3RhdGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEpCit7CisgICAgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcxMTUyYml0cygoVUlOVDMyKilzdGF0ZSwgZGF0YSk7Cit9CisjZW5kaWYKKworI2lmZGVmIFByb3ZpZGVGYXN0MTM0NAorc3RhdGljIHZvaWQgS2VjY2FrQWJzb3JiMTM0NGJpdHModW5zaWduZWQgY2hhciAqc3RhdGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEpCit7CisgICAgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcxMzQ0Yml0cygoVUlOVDMyKilzdGF0ZSwgZGF0YSk7Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQgS2VjY2FrQWJzb3JiKHVuc2lnbmVkIGNoYXIgKnN0YXRlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCB1bnNpZ25lZCBpbnQgbGFuZUNvdW50KQoreworICAgIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nKChVSU5UMzIqKXN0YXRlLCBkYXRhLCBsYW5lQ291bnQpOworfQorCisjaWZkZWYgUHJvdmlkZUZhc3QxMDI0CitzdGF0aWMgdm9pZCBLZWNjYWtFeHRyYWN0MTAyNGJpdHMoY29uc3QgdW5zaWduZWQgY2hhciAqc3RhdGUsIHVuc2lnbmVkIGNoYXIgKmRhdGEpCit7CisgICAgZXh0cmFjdExhbmVzKDE2LCBzdGF0ZSwgZGF0YSkKKyNpZmRlZiBVc2VCZWJpZ29raW1pc2EKKyAgICAoKFVJTlQzMiopZGF0YSlbIDJdID0gfigoVUlOVDMyKilkYXRhKVsgMl07CisgICAgKChVSU5UMzIqKWRhdGEpWyAzXSA9IH4oKFVJTlQzMiopZGF0YSlbIDNdOworICAgICgoVUlOVDMyKilkYXRhKVsgNF0gPSB+KChVSU5UMzIqKWRhdGEpWyA0XTsKKyAgICAoKFVJTlQzMiopZGF0YSlbIDVdID0gfigoVUlOVDMyKilkYXRhKVsgNV07CisgICAgKChVSU5UMzIqKWRhdGEpWzE2XSA9IH4oKFVJTlQzMiopZGF0YSlbMTZdOworICAgICgoVUlOVDMyKilkYXRhKVsxN10gPSB+KChVSU5UMzIqKWRhdGEpWzE3XTsKKyAgICAoKFVJTlQzMiopZGF0YSlbMjRdID0gfigoVUlOVDMyKilkYXRhKVsyNF07CisgICAgKChVSU5UMzIqKWRhdGEpWzI1XSA9IH4oKFVJTlQzMiopZGF0YSlbMjVdOworI2VuZGlmCit9CisjZW5kaWYKKworc3RhdGljIHZvaWQgS2VjY2FrRXh0cmFjdChjb25zdCB1bnNpZ25lZCBjaGFyICpzdGF0ZSwgdW5zaWduZWQgY2hhciAqZGF0YSwgdW5zaWduZWQgaW50IGxhbmVDb3VudCkKK3sKKyAgICBleHRyYWN0TGFuZXMobGFuZUNvdW50LCBzdGF0ZSwgZGF0YSkKKyNpZmRlZiBVc2VCZWJpZ29raW1pc2EKKyAgICBpZiAobGFuZUNvdW50ID4gMSkgeworICAgICAgICAoKFVJTlQzMiopZGF0YSlbIDJdID0gfigoVUlOVDMyKilkYXRhKVsgMl07CisgICAgICAgICgoVUlOVDMyKilkYXRhKVsgM10gPSB+KChVSU5UMzIqKWRhdGEpWyAzXTsKKyAgICAgICAgaWYgKGxhbmVDb3VudCA+IDIpIHsKKyAgICAgICAgICAgICgoVUlOVDMyKilkYXRhKVsgNF0gPSB+KChVSU5UMzIqKWRhdGEpWyA0XTsKKyAgICAgICAgICAgICgoVUlOVDMyKilkYXRhKVsgNV0gPSB+KChVSU5UMzIqKWRhdGEpWyA1XTsKKyAgICAgICAgICAgIGlmIChsYW5lQ291bnQgPiA4KSB7CisgICAgICAgICAgICAgICAgKChVSU5UMzIqKWRhdGEpWzE2XSA9IH4oKFVJTlQzMiopZGF0YSlbMTZdOworICAgICAgICAgICAgICAgICgoVUlOVDMyKilkYXRhKVsxN10gPSB+KChVSU5UMzIqKWRhdGEpWzE3XTsKKyAgICAgICAgICAgICAgICBpZiAobGFuZUNvdW50ID4gMTIpIHsKKyAgICAgICAgICAgICAgICAgICAgKChVSU5UMzIqKWRhdGEpWzI0XSA9IH4oKFVJTlQzMiopZGF0YSlbMjRdOworICAgICAgICAgICAgICAgICAgICAoKFVJTlQzMiopZGF0YSlbMjVdID0gfigoVUlOVDMyKilkYXRhKVsyNV07CisgICAgICAgICAgICAgICAgICAgIGlmIChsYW5lQ291bnQgPiAxNykgeworICAgICAgICAgICAgICAgICAgICAgICAgKChVSU5UMzIqKWRhdGEpWzM0XSA9IH4oKFVJTlQzMiopZGF0YSlbMzRdOworICAgICAgICAgICAgICAgICAgICAgICAgKChVSU5UMzIqKWRhdGEpWzM1XSA9IH4oKFVJTlQzMiopZGF0YSlbMzVdOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhbmVDb3VudCA+IDIwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChVSU5UMzIqKWRhdGEpWzQwXSA9IH4oKFVJTlQzMiopZGF0YSlbNDBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoVUlOVDMyKilkYXRhKVs0MV0gPSB+KChVSU5UMzIqKWRhdGEpWzQxXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrRi0xNjAwLW9wdDY0LXNldHRpbmdzLmggYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtb3B0NjQtc2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjgzZTYzCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrRi0xNjAwLW9wdDY0LXNldHRpbmdzLmgKQEAgLTAsMCArMSw5IEBACisvKgorI2RlZmluZSBVbnJvbGxpbmcgMjQKKyNkZWZpbmUgVXNlQmViaWdva2ltaXNhCisjZGVmaW5lIFVzZVNTRQorI2RlZmluZSBVc2VPbmx5U0lNRDY0CisjZGVmaW5lIFVzZU1NWAorI2RlZmluZSBVc2VTSExECisjZGVmaW5lIFVzZVhPUAorKi8KZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC1vcHQ2NC5jIGIvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrRi0xNjAwLW9wdDY0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjE5YjE4YgotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC1vcHQ2NC5jCkBAIC0wLDAgKzEsNTEwIEBACisvKgorVGhlIEtlY2NhayBzcG9uZ2UgZnVuY3Rpb24sIGRlc2lnbmVkIGJ5IEd1aWRvIEJlcnRvbmksIEpvYW4gRGFlbWVuLAorTWljaGHDq2wgUGVldGVycyBhbmQgR2lsbGVzIFZhbiBBc3NjaGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBmZWVkYmFjayBvcgorcXVlc3Rpb25zLCBwbGVhc2UgcmVmZXIgdG8gb3VyIHdlYnNpdGU6IGh0dHA6Ly9rZWNjYWsubm9la2Vvbi5vcmcvCisKK0ltcGxlbWVudGF0aW9uIGJ5IHRoZSBkZXNpZ25lcnMsCitoZXJlYnkgZGVub3RlZCBhcyAidGhlIGltcGxlbWVudGVyIi4KKworVG8gdGhlIGV4dGVudCBwb3NzaWJsZSB1bmRlciBsYXcsIHRoZSBpbXBsZW1lbnRlciBoYXMgd2FpdmVkIGFsbCBjb3B5cmlnaHQKK2FuZCByZWxhdGVkIG9yIG5laWdoYm9yaW5nIHJpZ2h0cyB0byB0aGUgc291cmNlIGNvZGUgaW4gdGhpcyBmaWxlLgoraHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworKi8KKworI2luY2x1ZGUgPHN0cmluZy5oPgorLyogI2luY2x1ZGUgImJyZ19lbmRpYW4uaCIgKi8KKyNpbmNsdWRlICJLZWNjYWtGLTE2MDAtb3B0NjQtc2V0dGluZ3MuaCIKKyNpbmNsdWRlICJLZWNjYWtGLTE2MDAtaW50ZXJmYWNlLmgiCisKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBVSU5UODsKKy8qIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCBVSU5UNjQ7ICovCisKKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorI2RlZmluZSBBTElHTiBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCgzMikpKQorI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKKyNkZWZpbmUgQUxJR04gX19kZWNsc3BlYyhhbGlnbigzMikpCisjZWxzZQorI2RlZmluZSBBTElHTgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFVzZVNTRSkKKyAgICAjaW5jbHVkZSA8eDg2aW50cmluLmg+CisgICAgdHlwZWRlZiBfX20xMjhpIFY2NDsKKyAgICB0eXBlZGVmIF9fbTEyOGkgVjEyODsKKyAgICB0eXBlZGVmIHVuaW9uIHsKKyAgICAgICAgVjEyOCB2MTI4OworICAgICAgICBVSU5UNjQgdjY0WzJdOworICAgIH0gVjY0NjQ7CisKKyAgICAjZGVmaW5lIEFORG51NjQoYSwgYikgICAgICAgX21tX2FuZG5vdF9zaTEyOChhLCBiKQorICAgICNkZWZpbmUgTE9BRDY0KGEpICAgICAgICAgICBfbW1fbG9hZGxfZXBpNjQoKGNvbnN0IFY2NCAqKSYoYSkpCisgICAgI2RlZmluZSBDT05TVDY0KGEpICAgICAgICAgIF9tbV9sb2FkbF9lcGk2NCgoY29uc3QgVjY0ICopJihhKSkKKyAgICAjZGVmaW5lIFJPTDY0KGEsIG8pICAgICAgICAgX21tX29yX3NpMTI4KF9tbV9zbGxpX2VwaTY0KGEsIG8pLCBfbW1fc3JsaV9lcGk2NChhLCA2NC0obykpKQorICAgICNkZWZpbmUgU1RPUkU2NChhLCBiKSAgICAgICBfbW1fc3RvcmVsX2VwaTY0KChWNjQgKikmKGEpLCBiKQorICAgICNkZWZpbmUgWE9SNjQoYSwgYikgICAgICAgICBfbW1feG9yX3NpMTI4KGEsIGIpCisgICAgI2RlZmluZSBYT1JlcTY0KGEsIGIpICAgICAgIGEgPSBfbW1feG9yX3NpMTI4KGEsIGIpCisgICAgI2RlZmluZSBTSFVGRkxFQllURVMxMjgoYSwgYikgICBfbW1fc2h1ZmZsZV9lcGk4KGEsIGIpCisKKyAgICAjZGVmaW5lIEFORG51MTI4KGEsIGIpICAgICAgX21tX2FuZG5vdF9zaTEyOChhLCBiKQorICAgICNkZWZpbmUgTE9BRDY0NjQoYSwgYikgICAgICBfbW1fc2V0X2VwaTY0KChfX202NCkoYSksIChfX202NCkoYikpCisgICAgI2RlZmluZSBDT05TVDEyOChhKSAgICAgICAgIF9tbV9sb2FkX3NpMTI4KChjb25zdCBWMTI4ICopJihhKSkKKyAgICAjZGVmaW5lIExPQUQxMjgoYSkgICAgICAgICAgX21tX2xvYWRfc2kxMjgoKGNvbnN0IFYxMjggKikmKGEpKQorICAgICNkZWZpbmUgTE9BRDEyOHUoYSkgICAgICAgICBfbW1fbG9hZHVfc2kxMjgoKGNvbnN0IFYxMjggKikmKGEpKQorICAgICNkZWZpbmUgUk9MNjRpbjEyOChhLCBvKSAgICBfbW1fb3Jfc2kxMjgoX21tX3NsbGlfZXBpNjQoYSwgbyksIF9tbV9zcmxpX2VwaTY0KGEsIDY0LShvKSkpCisgICAgI2RlZmluZSBTVE9SRTEyOChhLCBiKSAgICAgIF9tbV9zdG9yZV9zaTEyOCgoVjEyOCAqKSYoYSksIGIpCisgICAgI2RlZmluZSBYT1IxMjgoYSwgYikgICAgICAgIF9tbV94b3Jfc2kxMjgoYSwgYikKKyAgICAjZGVmaW5lIFhPUmVxMTI4KGEsIGIpICAgICAgYSA9IF9tbV94b3Jfc2kxMjgoYSwgYikKKyAgICAjZGVmaW5lIEdFVDY0TE9MTyhhLCBiKSAgICAgX21tX3VucGFja2xvX2VwaTY0KGEsIGIpCisgICAgI2RlZmluZSBHRVQ2NEhJSEkoYSwgYikgICAgIF9tbV91bnBhY2toaV9lcGk2NChhLCBiKQorICAgICNkZWZpbmUgQ09QWTY0SEkyTE8oYSkgICAgICBfbW1fc2h1ZmZsZV9lcGkzMihhLCAweEVFKQorICAgICNkZWZpbmUgQ09QWTY0TE8ySEkoYSkgICAgICBfbW1fc2h1ZmZsZV9lcGkzMihhLCAweDQ0KQorICAgICNkZWZpbmUgWkVSTzEyOCgpICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCgpCisKKyAgICAjaWZkZWYgVXNlT25seVNJTUQ2NAorICAgICNpbmNsdWRlICJLZWNjYWtGLTE2MDAtc2ltZDY0Lm1hY3JvcyIKKyAgICAjZWxzZQorQUxJR04gY29uc3QgVUlOVDY0IHJobzhfNTZbMl0gPSB7MHgwNjA1MDQwMzAyMDEwMDA3LCAweDA4MEYwRTBEMEMwQjBBMDl9OworICAgICNpbmNsdWRlICJLZWNjYWtGLTE2MDAtc2ltZDEyOC5tYWNyb3MiCisgICAgI2VuZGlmCisKKyAgICAjaWZkZWYgVXNlQmViaWdva2ltaXNhCisgICAgI2Vycm9yICJVc2VCZWJpZ29raW1pc2EgY2Fubm90IGJlIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBVc2VTU0UiCisgICAgI2VuZGlmCisjZWxpZiBkZWZpbmVkKFVzZVhPUCkKKyAgICAjaW5jbHVkZSA8eDg2aW50cmluLmg+CisgICAgdHlwZWRlZiBfX20xMjhpIFY2NDsKKyAgICB0eXBlZGVmIF9fbTEyOGkgVjEyODsKKyAgIAorICAgICNkZWZpbmUgTE9BRDY0KGEpICAgICAgICAgICBfbW1fbG9hZGxfZXBpNjQoKGNvbnN0IFY2NCAqKSYoYSkpCisgICAgI2RlZmluZSBDT05TVDY0KGEpICAgICAgICAgIF9tbV9sb2FkbF9lcGk2NCgoY29uc3QgVjY0ICopJihhKSkKKyAgICAjZGVmaW5lIFNUT1JFNjQoYSwgYikgICAgICAgX21tX3N0b3JlbF9lcGk2NCgoVjY0ICopJihhKSwgYikKKyAgICAjZGVmaW5lIFhPUjY0KGEsIGIpICAgICAgICAgX21tX3hvcl9zaTEyOChhLCBiKQorICAgICNkZWZpbmUgWE9SZXE2NChhLCBiKSAgICAgICBhID0gX21tX3hvcl9zaTEyOChhLCBiKQorCisgICAgI2RlZmluZSBBTkRudTEyOChhLCBiKSAgICAgIF9tbV9hbmRub3Rfc2kxMjgoYSwgYikKKyAgICAjZGVmaW5lIExPQUQ2NDY0KGEsIGIpICAgICAgX21tX3NldF9lcGk2NCgoX19tNjQpKGEpLCAoX19tNjQpKGIpKQorICAgICNkZWZpbmUgQ09OU1QxMjgoYSkgICAgICAgICBfbW1fbG9hZF9zaTEyOCgoY29uc3QgVjEyOCAqKSYoYSkpCisgICAgI2RlZmluZSBMT0FEMTI4KGEpICAgICAgICAgIF9tbV9sb2FkX3NpMTI4KChjb25zdCBWMTI4ICopJihhKSkKKyAgICAjZGVmaW5lIExPQUQxMjh1KGEpICAgICAgICAgX21tX2xvYWR1X3NpMTI4KChjb25zdCBWMTI4ICopJihhKSkKKyAgICAjZGVmaW5lIFNUT1JFMTI4KGEsIGIpICAgICAgX21tX3N0b3JlX3NpMTI4KChWMTI4ICopJihhKSwgYikKKyAgICAjZGVmaW5lIFhPUjEyOChhLCBiKSAgICAgICAgX21tX3hvcl9zaTEyOChhLCBiKQorICAgICNkZWZpbmUgWE9SZXExMjgoYSwgYikgICAgICBhID0gX21tX3hvcl9zaTEyOChhLCBiKQorICAgICNkZWZpbmUgWkVSTzEyOCgpICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCgpCisKKyAgICAjZGVmaW5lIFNXQVA2NChhKSAgICAgICAgICAgX21tX3NodWZmbGVfZXBpMzIoYSwgMHg0RSkKKyAgICAjZGVmaW5lIEdFVDY0TE9MTyhhLCBiKSAgICAgX21tX3VucGFja2xvX2VwaTY0KGEsIGIpCisgICAgI2RlZmluZSBHRVQ2NEhJSEkoYSwgYikgICAgIF9tbV91bnBhY2toaV9lcGk2NChhLCBiKQorICAgICNkZWZpbmUgR0VUNjRMT0hJKGEsIGIpICAgICAoKF9fbTEyOGkpX21tX2JsZW5kX3BkKChfX20xMjhkKWEsIChfX20xMjhkKWIsIDIpKQorICAgICNkZWZpbmUgR0VUNjRISUxPKGEsIGIpICAgICBTV0FQNjQoR0VUNjRMT0hJKGIsIGEpKQorICAgICNkZWZpbmUgQ09QWTY0SEkyTE8oYSkgICAgICBfbW1fc2h1ZmZsZV9lcGkzMihhLCAweEVFKQorICAgICNkZWZpbmUgQ09QWTY0TE8ySEkoYSkgICAgICBfbW1fc2h1ZmZsZV9lcGkzMihhLCAweDQ0KQorIAorICAgICNkZWZpbmUgUk9MNjQ2NHNhbWUoYSwgbykgICBfbW1fcm90aV9lcGk2NChhLCBvKQorICAgICNkZWZpbmUgUk9MNjQ2NChhLCByMSwgcjIpICBfbW1fcm90X2VwaTY0KGEsIENPTlNUMTI4KCByb3RfIyNyMSMjXyMjcjIgKSkKK0FMSUdOIGNvbnN0IFVJTlQ2NCByb3RfMF8yMFsyXSAgPSB7IDAsIDIwfTsKK0FMSUdOIGNvbnN0IFVJTlQ2NCByb3RfNDRfM1syXSAgPSB7NDQsICAzfTsKK0FMSUdOIGNvbnN0IFVJTlQ2NCByb3RfNDNfNDVbMl0gPSB7NDMsIDQ1fTsKK0FMSUdOIGNvbnN0IFVJTlQ2NCByb3RfMjFfNjFbMl0gPSB7MjEsIDYxfTsKK0FMSUdOIGNvbnN0IFVJTlQ2NCByb3RfMTRfMjhbMl0gPSB7MTQsIDI4fTsKK0FMSUdOIGNvbnN0IFVJTlQ2NCByb3RfMV8zNlsyXSAgPSB7IDEsIDM2fTsKK0FMSUdOIGNvbnN0IFVJTlQ2NCByb3RfNl8xMFsyXSAgPSB7IDYsIDEwfTsKK0FMSUdOIGNvbnN0IFVJTlQ2NCByb3RfMjVfMTVbMl0gPSB7MjUsIDE1fTsKK0FMSUdOIGNvbnN0IFVJTlQ2NCByb3RfOF81NlsyXSAgPSB7IDgsIDU2fTsKK0FMSUdOIGNvbnN0IFVJTlQ2NCByb3RfMThfMjdbMl0gPSB7MTgsIDI3fTsKK0FMSUdOIGNvbnN0IFVJTlQ2NCByb3RfNjJfNTVbMl0gPSB7NjIsIDU1fTsKK0FMSUdOIGNvbnN0IFVJTlQ2NCByb3RfMzlfNDFbMl0gPSB7MzksIDQxfTsKKworI2lmIGRlZmluZWQoVXNlU2ltdWxhdGVkWE9QKQorICAgIC8qICBGb3IgZGVidWdnaW5nIHB1cnBvc2VzLCB3aGVuIFhPUCBpcyBub3QgYXZhaWxhYmxlICovCisgICAgI3VuZGVmIFJPTDY0NjQKKyAgICAjdW5kZWYgUk9MNjQ2NHNhbWUKKyAgICAjZGVmaW5lIFJPTDY0NjRzYW1lKGEsIG8pICAgX21tX29yX3NpMTI4KF9tbV9zbGxpX2VwaTY0KGEsIG8pLCBfbW1fc3JsaV9lcGk2NChhLCA2NC0obykpKQorICAgIFYxMjggUk9MNjQ2NChWMTI4IGEsIGludCByMCwgaW50IHIxKQorICAgIHsKKyAgICAgICAgVjEyOCBhMCA9IFJPTDY0KGEsIHIwKTsKKyAgICAgICAgVjEyOCBhMSA9IENPUFk2NEhJMkxPKFJPTDY0KGEsIHIxKSk7CisgICAgICAgIHJldHVybiBHRVQ2NExPTE8oYTAsIGExKTsKKyAgICB9CisjZW5kaWYKKyAgICAKKyAgICAjaW5jbHVkZSAiS2VjY2FrRi0xNjAwLXhvcC5tYWNyb3MiCisKKyAgICAjaWZkZWYgVXNlQmViaWdva2ltaXNhCisgICAgI2Vycm9yICJVc2VCZWJpZ29raW1pc2EgY2Fubm90IGJlIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBVc2VYT1AiCisgICAgI2VuZGlmCisjZWxpZiBkZWZpbmVkKFVzZU1NWCkKKyAgICAjaW5jbHVkZSA8bW1pbnRyaW4uaD4KKyAgICB0eXBlZGVmIF9fbTY0IFY2NDsKKyAgICAjZGVmaW5lIEFORG51NjQoYSwgYikgICAgICAgX21tX2FuZG5vdF9zaTY0KGEsIGIpCisKKyAgICAjaWYgKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQgKF9fSU5URUxfQ09NUElMRVIpKQorICAgICAgICAjZGVmaW5lIExPQUQ2NChhKSAgICAgICAqKFY2NCopJihhKQorICAgICAgICAjZGVmaW5lIENPTlNUNjQoYSkgICAgICAqKFY2NCopJihhKQorICAgICAgICAjZGVmaW5lIFNUT1JFNjQoYSwgYikgICAqKFY2NCopJihhKSA9IGIKKyAgICAjZWxzZQorICAgICAgICAjZGVmaW5lIExPQUQ2NChhKSAgICAgICAoVjY0KWEKKyAgICAgICAgI2RlZmluZSBDT05TVDY0KGEpICAgICAgKFY2NClhCisgICAgICAgICNkZWZpbmUgU1RPUkU2NChhLCBiKSAgIGEgPSAoVUlOVDY0KWIKKyAgICAjZW5kaWYKKyAgICAjZGVmaW5lIFJPTDY0KGEsIG8pICAgICAgICAgX21tX29yX3NpNjQoX21tX3NsbGlfc2k2NChhLCBvKSwgX21tX3NybGlfc2k2NChhLCA2NC0obykpKQorICAgICNkZWZpbmUgWE9SNjQoYSwgYikgICAgICAgICBfbW1feG9yX3NpNjQoYSwgYikKKyAgICAjZGVmaW5lIFhPUmVxNjQoYSwgYikgICAgICAgYSA9IF9tbV94b3Jfc2k2NChhLCBiKQorCisgICAgI2luY2x1ZGUgIktlY2Nha0YtMTYwMC1zaW1kNjQubWFjcm9zIgorCisgICAgI2lmZGVmIFVzZUJlYmlnb2tpbWlzYQorICAgICNlcnJvciAiVXNlQmViaWdva2ltaXNhIGNhbm5vdCBiZSB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggVXNlTU1YIgorICAgICNlbmRpZgorI2Vsc2UKKyAgICAjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyAgICAjZGVmaW5lIFJPTDY0KGEsIG9mZnNldCkgX3JvdGw2NChhLCBvZmZzZXQpCisgICAgI2VsaWYgZGVmaW5lZChVc2VTSExEKQorICAgICAgI2RlZmluZSBST0w2NCh4LE4pICh7IFwKKyAgICAgICAgcmVnaXN0ZXIgVUlOVDY0IF9fb3V0OyBcCisgICAgICAgIHJlZ2lzdGVyIFVJTlQ2NCBfX2luID0geDsgXAorICAgICAgICBfX2FzbV9fICgic2hsZCAlMiwlMCwlMCIgOiAiPXIiKF9fb3V0KSA6ICIwIihfX2luKSwgImkiKE4pKTsgXAorICAgICAgICBfX291dDsgXAorICAgICAgfSkKKyAgICAjZWxzZQorICAgICNkZWZpbmUgUk9MNjQoYSwgb2Zmc2V0KSAoKCgoVUlOVDY0KWEpIDw8IG9mZnNldCkgXiAoKChVSU5UNjQpYSkgPj4gKDY0LW9mZnNldCkpKQorICAgICNlbmRpZgorCisgICAgI2luY2x1ZGUgIktlY2Nha0YtMTYwMC02NC5tYWNyb3MiCisjZW5kaWYKKworI2luY2x1ZGUgIktlY2Nha0YtMTYwMC11bnJvbGxpbmcubWFjcm9zIgorCitzdGF0aWMgdm9pZCBLZWNjYWtQZXJtdXRhdGlvbk9uV29yZHMoVUlOVDY0ICpzdGF0ZSkKK3sKKyAgICBkZWNsYXJlQUJDREUKKyNpZiAoVW5yb2xsaW5nICE9IDI0KQorICAgIHVuc2lnbmVkIGludCBpOworI2VuZGlmCisKKyAgICBjb3B5RnJvbVN0YXRlKEEsIHN0YXRlKQorICAgIHJvdW5kcworI2lmIGRlZmluZWQoVXNlTU1YKQorICAgIF9tbV9lbXB0eSgpOworI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nKFVJTlQ2NCAqc3RhdGUsIGNvbnN0IFVJTlQ2NCAqaW5wdXQsIHVuc2lnbmVkIGludCBsYW5lQ291bnQpCit7CisgICAgZGVjbGFyZUFCQ0RFCisjaWYgKFVucm9sbGluZyAhPSAyNCkKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyNlbmRpZgorCXVuc2lnbmVkIGludCBqOworCisgICAgZm9yKGo9MDsgajxsYW5lQ291bnQ7IGorKykKKyAgICAgICAgc3RhdGVbal0gXj0gaW5wdXRbal07CQorICAgIGNvcHlGcm9tU3RhdGUoQSwgc3RhdGUpCisgICAgcm91bmRzCisjaWYgZGVmaW5lZChVc2VNTVgpCisgICAgX21tX2VtcHR5KCk7CisjZW5kaWYKK30KKworI2lmZGVmIFByb3ZpZGVGYXN0NTc2CitzdGF0aWMgdm9pZCBLZWNjYWtQZXJtdXRhdGlvbk9uV29yZHNBZnRlclhvcmluZzU3NmJpdHMoVUlOVDY0ICpzdGF0ZSwgY29uc3QgVUlOVDY0ICppbnB1dCkKK3sKKyAgICBkZWNsYXJlQUJDREUKKyNpZiAoVW5yb2xsaW5nICE9IDI0KQorICAgIHVuc2lnbmVkIGludCBpOworI2VuZGlmCisKKyAgICBjb3B5RnJvbVN0YXRlQW5kWG9yNTc2Yml0cyhBLCBzdGF0ZSwgaW5wdXQpCisgICAgcm91bmRzCisjaWYgZGVmaW5lZChVc2VNTVgpCisgICAgX21tX2VtcHR5KCk7CisjZW5kaWYKK30KKyNlbmRpZgorCisjaWZkZWYgUHJvdmlkZUZhc3Q4MzIKK3N0YXRpYyB2b2lkIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nODMyYml0cyhVSU5UNjQgKnN0YXRlLCBjb25zdCBVSU5UNjQgKmlucHV0KQoreworICAgIGRlY2xhcmVBQkNERQorI2lmIChVbnJvbGxpbmcgIT0gMjQpCisgICAgdW5zaWduZWQgaW50IGk7CisjZW5kaWYKKworICAgIGNvcHlGcm9tU3RhdGVBbmRYb3I4MzJiaXRzKEEsIHN0YXRlLCBpbnB1dCkKKyAgICByb3VuZHMKKyNpZiBkZWZpbmVkKFVzZU1NWCkKKyAgICBfbW1fZW1wdHkoKTsKKyNlbmRpZgorfQorI2VuZGlmCisKKyNpZmRlZiBQcm92aWRlRmFzdDEwMjQKK3N0YXRpYyB2b2lkIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nMTAyNGJpdHMoVUlOVDY0ICpzdGF0ZSwgY29uc3QgVUlOVDY0ICppbnB1dCkKK3sKKyAgICBkZWNsYXJlQUJDREUKKyNpZiAoVW5yb2xsaW5nICE9IDI0KQorICAgIHVuc2lnbmVkIGludCBpOworI2VuZGlmCisKKyAgICBjb3B5RnJvbVN0YXRlQW5kWG9yMTAyNGJpdHMoQSwgc3RhdGUsIGlucHV0KQorICAgIHJvdW5kcworI2lmIGRlZmluZWQoVXNlTU1YKQorICAgIF9tbV9lbXB0eSgpOworI2VuZGlmCit9CisjZW5kaWYKKworI2lmZGVmIFByb3ZpZGVGYXN0MTA4OAorc3RhdGljIHZvaWQgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcxMDg4Yml0cyhVSU5UNjQgKnN0YXRlLCBjb25zdCBVSU5UNjQgKmlucHV0KQoreworICAgIGRlY2xhcmVBQkNERQorI2lmIChVbnJvbGxpbmcgIT0gMjQpCisgICAgdW5zaWduZWQgaW50IGk7CisjZW5kaWYKKworICAgIGNvcHlGcm9tU3RhdGVBbmRYb3IxMDg4Yml0cyhBLCBzdGF0ZSwgaW5wdXQpCisgICAgcm91bmRzCisjaWYgZGVmaW5lZChVc2VNTVgpCisgICAgX21tX2VtcHR5KCk7CisjZW5kaWYKK30KKyNlbmRpZgorCisjaWZkZWYgUHJvdmlkZUZhc3QxMTUyCitzdGF0aWMgdm9pZCBLZWNjYWtQZXJtdXRhdGlvbk9uV29yZHNBZnRlclhvcmluZzExNTJiaXRzKFVJTlQ2NCAqc3RhdGUsIGNvbnN0IFVJTlQ2NCAqaW5wdXQpCit7CisgICAgZGVjbGFyZUFCQ0RFCisjaWYgKFVucm9sbGluZyAhPSAyNCkKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyNlbmRpZgorCisgICAgY29weUZyb21TdGF0ZUFuZFhvcjExNTJiaXRzKEEsIHN0YXRlLCBpbnB1dCkKKyAgICByb3VuZHMKKyNpZiBkZWZpbmVkKFVzZU1NWCkKKyAgICBfbW1fZW1wdHkoKTsKKyNlbmRpZgorfQorI2VuZGlmCisKKyNpZmRlZiBQcm92aWRlRmFzdDEzNDQKK3N0YXRpYyB2b2lkIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nMTM0NGJpdHMoVUlOVDY0ICpzdGF0ZSwgY29uc3QgVUlOVDY0ICppbnB1dCkKK3sKKyAgICBkZWNsYXJlQUJDREUKKyNpZiAoVW5yb2xsaW5nICE9IDI0KQorICAgIHVuc2lnbmVkIGludCBpOworI2VuZGlmCisKKyAgICBjb3B5RnJvbVN0YXRlQW5kWG9yMTM0NGJpdHMoQSwgc3RhdGUsIGlucHV0KQorICAgIHJvdW5kcworI2lmIGRlZmluZWQoVXNlTU1YKQorICAgIF9tbV9lbXB0eSgpOworI2VuZGlmCit9CisjZW5kaWYKKworc3RhdGljIHZvaWQgS2VjY2FrSW5pdGlhbGl6ZSgpCit7Cit9CisKK3N0YXRpYyB2b2lkIEtlY2Nha0luaXRpYWxpemVTdGF0ZSh1bnNpZ25lZCBjaGFyICpzdGF0ZSkKK3sKKyAgICBtZW1zZXQoc3RhdGUsIDAsIDIwMCk7CisjaWZkZWYgVXNlQmViaWdva2ltaXNhCisgICAgKChVSU5UNjQqKXN0YXRlKVsgMV0gPSB+KFVJTlQ2NCkwOworICAgICgoVUlOVDY0KilzdGF0ZSlbIDJdID0gfihVSU5UNjQpMDsKKyAgICAoKFVJTlQ2NCopc3RhdGUpWyA4XSA9IH4oVUlOVDY0KTA7CisgICAgKChVSU5UNjQqKXN0YXRlKVsxMl0gPSB+KFVJTlQ2NCkwOworICAgICgoVUlOVDY0KilzdGF0ZSlbMTddID0gfihVSU5UNjQpMDsKKyAgICAoKFVJTlQ2NCopc3RhdGUpWzIwXSA9IH4oVUlOVDY0KTA7CisjZW5kaWYKK30KKworc3RhdGljIHZvaWQgS2VjY2FrUGVybXV0YXRpb24odW5zaWduZWQgY2hhciAqc3RhdGUpCit7CisgICAgLyogIFdlIGFzc3VtZSB0aGUgc3RhdGUgaXMgYWx3YXlzIHN0b3JlZCBhcyB3b3JkcyAqLworICAgIEtlY2Nha1Blcm11dGF0aW9uT25Xb3JkcygoVUlOVDY0KilzdGF0ZSk7Cit9CisKKyNpZiAoUExBVEZPUk1fQllURV9PUkRFUiA9PSBJU19CSUdfRU5ESUFOKQorc3RhdGljIHZvaWQgZnJvbUJ5dGVzVG9Xb3JkKFVJTlQ2NCAqd29yZCwgY29uc3QgVUlOVDggKmJ5dGVzKQoreworICAgIHVuc2lnbmVkIGludCBpOworCisgICAgKndvcmQgPSAwOworICAgIGZvcihpPTA7IGk8KDY0LzgpOyBpKyspCisgICAgICAgICp3b3JkIHw9IChVSU5UNjQpKGJ5dGVzW2ldKSA8PCAoOCppKTsKK30KKyNlbmRpZgorCisKKyNpZmRlZiBQcm92aWRlRmFzdDU3Ngorc3RhdGljIHZvaWQgS2VjY2FrQWJzb3JiNTc2Yml0cyh1bnNpZ25lZCBjaGFyICpzdGF0ZSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSkKK3sKKyNpZiAoUExBVEZPUk1fQllURV9PUkRFUiA9PSBJU19MSVRUTEVfRU5ESUFOKQorICAgIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nNTc2Yml0cygoVUlOVDY0KilzdGF0ZSwgKGNvbnN0IFVJTlQ2NCopZGF0YSk7CisjZWxzZQorICAgIFVJTlQ2NCBkYXRhQXNXb3Jkc1s5XTsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgIGZvcihpPTA7IGk8OTsgaSsrKQorICAgICAgICBmcm9tQnl0ZXNUb1dvcmQoZGF0YUFzV29yZHMraSwgZGF0YSsoaSo4KSk7CisgICAgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3Jpbmc1NzZiaXRzKChVSU5UNjQqKXN0YXRlLCBkYXRhQXNXb3Jkcyk7CisjZW5kaWYKK30KKyNlbmRpZgorCisjaWZkZWYgUHJvdmlkZUZhc3Q4MzIKK3N0YXRpYyB2b2lkIEtlY2Nha0Fic29yYjgzMmJpdHModW5zaWduZWQgY2hhciAqc3RhdGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEpCit7CisjaWYgKFBMQVRGT1JNX0JZVEVfT1JERVIgPT0gSVNfTElUVExFX0VORElBTikKKyAgICBLZWNjYWtQZXJtdXRhdGlvbk9uV29yZHNBZnRlclhvcmluZzgzMmJpdHMoKFVJTlQ2NCopc3RhdGUsIChjb25zdCBVSU5UNjQqKWRhdGEpOworI2Vsc2UKKyAgICBVSU5UNjQgZGF0YUFzV29yZHNbMTNdOworICAgIHVuc2lnbmVkIGludCBpOworCisgICAgZm9yKGk9MDsgaTwxMzsgaSsrKQorICAgICAgICBmcm9tQnl0ZXNUb1dvcmQoZGF0YUFzV29yZHMraSwgZGF0YSsoaSo4KSk7CisgICAgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3Jpbmc4MzJiaXRzKChVSU5UNjQqKXN0YXRlLCBkYXRhQXNXb3Jkcyk7CisjZW5kaWYKK30KKyNlbmRpZgorCisjaWZkZWYgUHJvdmlkZUZhc3QxMDI0CitzdGF0aWMgdm9pZCBLZWNjYWtBYnNvcmIxMDI0Yml0cyh1bnNpZ25lZCBjaGFyICpzdGF0ZSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSkKK3sKKyNpZiAoUExBVEZPUk1fQllURV9PUkRFUiA9PSBJU19MSVRUTEVfRU5ESUFOKQorICAgIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nMTAyNGJpdHMoKFVJTlQ2NCopc3RhdGUsIChjb25zdCBVSU5UNjQqKWRhdGEpOworI2Vsc2UKKyAgICBVSU5UNjQgZGF0YUFzV29yZHNbMTZdOworICAgIHVuc2lnbmVkIGludCBpOworCisgICAgZm9yKGk9MDsgaTwxNjsgaSsrKQorICAgICAgICBmcm9tQnl0ZXNUb1dvcmQoZGF0YUFzV29yZHMraSwgZGF0YSsoaSo4KSk7CisgICAgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcxMDI0Yml0cygoVUlOVDY0KilzdGF0ZSwgZGF0YUFzV29yZHMpOworI2VuZGlmCit9CisjZW5kaWYKKworI2lmZGVmIFByb3ZpZGVGYXN0MTA4OAorc3RhdGljIHZvaWQgS2VjY2FrQWJzb3JiMTA4OGJpdHModW5zaWduZWQgY2hhciAqc3RhdGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEpCit7CisjaWYgKFBMQVRGT1JNX0JZVEVfT1JERVIgPT0gSVNfTElUVExFX0VORElBTikKKyAgICBLZWNjYWtQZXJtdXRhdGlvbk9uV29yZHNBZnRlclhvcmluZzEwODhiaXRzKChVSU5UNjQqKXN0YXRlLCAoY29uc3QgVUlOVDY0KilkYXRhKTsKKyNlbHNlCisgICAgVUlOVDY0IGRhdGFBc1dvcmRzWzE3XTsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgIGZvcihpPTA7IGk8MTc7IGkrKykKKyAgICAgICAgZnJvbUJ5dGVzVG9Xb3JkKGRhdGFBc1dvcmRzK2ksIGRhdGErKGkqOCkpOworICAgIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nMTA4OGJpdHMoKFVJTlQ2NCopc3RhdGUsIGRhdGFBc1dvcmRzKTsKKyNlbmRpZgorfQorI2VuZGlmCisKKyNpZmRlZiBQcm92aWRlRmFzdDExNTIKK3N0YXRpYyB2b2lkIEtlY2Nha0Fic29yYjExNTJiaXRzKHVuc2lnbmVkIGNoYXIgKnN0YXRlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKQoreworI2lmIChQTEFURk9STV9CWVRFX09SREVSID09IElTX0xJVFRMRV9FTkRJQU4pCisgICAgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcxMTUyYml0cygoVUlOVDY0KilzdGF0ZSwgKGNvbnN0IFVJTlQ2NCopZGF0YSk7CisjZWxzZQorICAgIFVJTlQ2NCBkYXRhQXNXb3Jkc1sxOF07CisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICBmb3IoaT0wOyBpPDE4OyBpKyspCisgICAgICAgIGZyb21CeXRlc1RvV29yZChkYXRhQXNXb3JkcytpLCBkYXRhKyhpKjgpKTsKKyAgICBLZWNjYWtQZXJtdXRhdGlvbk9uV29yZHNBZnRlclhvcmluZzExNTJiaXRzKChVSU5UNjQqKXN0YXRlLCBkYXRhQXNXb3Jkcyk7CisjZW5kaWYKK30KKyNlbmRpZgorCisjaWZkZWYgUHJvdmlkZUZhc3QxMzQ0CitzdGF0aWMgdm9pZCBLZWNjYWtBYnNvcmIxMzQ0Yml0cyh1bnNpZ25lZCBjaGFyICpzdGF0ZSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSkKK3sKKyNpZiAoUExBVEZPUk1fQllURV9PUkRFUiA9PSBJU19MSVRUTEVfRU5ESUFOKQorICAgIEtlY2Nha1Blcm11dGF0aW9uT25Xb3Jkc0FmdGVyWG9yaW5nMTM0NGJpdHMoKFVJTlQ2NCopc3RhdGUsIChjb25zdCBVSU5UNjQqKWRhdGEpOworI2Vsc2UKKyAgICBVSU5UNjQgZGF0YUFzV29yZHNbMjFdOworICAgIHVuc2lnbmVkIGludCBpOworCisgICAgZm9yKGk9MDsgaTwyMTsgaSsrKQorICAgICAgICBmcm9tQnl0ZXNUb1dvcmQoZGF0YUFzV29yZHMraSwgZGF0YSsoaSo4KSk7CisgICAgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcxMzQ0Yml0cygoVUlOVDY0KilzdGF0ZSwgZGF0YUFzV29yZHMpOworI2VuZGlmCit9CisjZW5kaWYKKworc3RhdGljIHZvaWQgS2VjY2FrQWJzb3JiKHVuc2lnbmVkIGNoYXIgKnN0YXRlLCBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCB1bnNpZ25lZCBpbnQgbGFuZUNvdW50KQoreworI2lmIChQTEFURk9STV9CWVRFX09SREVSID09IElTX0xJVFRMRV9FTkRJQU4pCisgICAgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcoKFVJTlQ2NCopc3RhdGUsIChjb25zdCBVSU5UNjQqKWRhdGEsIGxhbmVDb3VudCk7CisjZWxzZQorICAgIFVJTlQ2NCBkYXRhQXNXb3Jkc1syNV07CisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICBmb3IoaT0wOyBpPGxhbmVDb3VudDsgaSsrKQorICAgICAgICBmcm9tQnl0ZXNUb1dvcmQoZGF0YUFzV29yZHMraSwgZGF0YSsoaSo4KSk7CisgICAgS2VjY2FrUGVybXV0YXRpb25PbldvcmRzQWZ0ZXJYb3JpbmcoKFVJTlQ2NCopc3RhdGUsIGRhdGFBc1dvcmRzLCBsYW5lQ291bnQpOworI2VuZGlmCit9CisKKyNpZiAoUExBVEZPUk1fQllURV9PUkRFUiA9PSBJU19CSUdfRU5ESUFOKQorc3RhdGljIHZvaWQgZnJvbVdvcmRUb0J5dGVzKFVJTlQ4ICpieXRlcywgY29uc3QgVUlOVDY0IHdvcmQpCit7CisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICBmb3IoaT0wOyBpPCg2NC84KTsgaSsrKQorICAgICAgICBieXRlc1tpXSA9ICh3b3JkID4+ICg4KmkpKSAmIDB4RkY7Cit9CisjZW5kaWYKKworCisjaWZkZWYgUHJvdmlkZUZhc3QxMDI0CitzdGF0aWMgdm9pZCBLZWNjYWtFeHRyYWN0MTAyNGJpdHMoY29uc3QgdW5zaWduZWQgY2hhciAqc3RhdGUsIHVuc2lnbmVkIGNoYXIgKmRhdGEpCit7CisjaWYgKFBMQVRGT1JNX0JZVEVfT1JERVIgPT0gSVNfTElUVExFX0VORElBTikKKyAgICBtZW1jcHkoZGF0YSwgc3RhdGUsIDEyOCk7CisjZWxzZQorICAgIHVuc2lnbmVkIGludCBpOworCisgICAgZm9yKGk9MDsgaTwxNjsgaSsrKQorICAgICAgICBmcm9tV29yZFRvQnl0ZXMoZGF0YSsoaSo4KSwgKChjb25zdCBVSU5UNjQqKXN0YXRlKVtpXSk7CisjZW5kaWYKKyNpZmRlZiBVc2VCZWJpZ29raW1pc2EKKyAgICAoKFVJTlQ2NCopZGF0YSlbIDFdID0gfigoVUlOVDY0KilkYXRhKVsgMV07CisgICAgKChVSU5UNjQqKWRhdGEpWyAyXSA9IH4oKFVJTlQ2NCopZGF0YSlbIDJdOworICAgICgoVUlOVDY0KilkYXRhKVsgOF0gPSB+KChVSU5UNjQqKWRhdGEpWyA4XTsKKyAgICAoKFVJTlQ2NCopZGF0YSlbMTJdID0gfigoVUlOVDY0KilkYXRhKVsxMl07CisjZW5kaWYKK30KKyNlbmRpZgorCitzdGF0aWMgdm9pZCBLZWNjYWtFeHRyYWN0KGNvbnN0IHVuc2lnbmVkIGNoYXIgKnN0YXRlLCB1bnNpZ25lZCBjaGFyICpkYXRhLCB1bnNpZ25lZCBpbnQgbGFuZUNvdW50KQoreworI2lmIChQTEFURk9STV9CWVRFX09SREVSID09IElTX0xJVFRMRV9FTkRJQU4pCisgICAgbWVtY3B5KGRhdGEsIHN0YXRlLCBsYW5lQ291bnQqOCk7CisjZWxzZQorICAgIHVuc2lnbmVkIGludCBpOworCisgICAgZm9yKGk9MDsgaTxsYW5lQ291bnQ7IGkrKykKKyAgICAgICAgZnJvbVdvcmRUb0J5dGVzKGRhdGErKGkqOCksICgoY29uc3QgVUlOVDY0KilzdGF0ZSlbaV0pOworI2VuZGlmCisjaWZkZWYgVXNlQmViaWdva2ltaXNhCisgICAgaWYgKGxhbmVDb3VudCA+IDEpIHsKKyAgICAgICAgKChVSU5UNjQqKWRhdGEpWyAxXSA9IH4oKFVJTlQ2NCopZGF0YSlbIDFdOworICAgICAgICBpZiAobGFuZUNvdW50ID4gMikgeworICAgICAgICAgICAgKChVSU5UNjQqKWRhdGEpWyAyXSA9IH4oKFVJTlQ2NCopZGF0YSlbIDJdOworICAgICAgICAgICAgaWYgKGxhbmVDb3VudCA+IDgpIHsKKyAgICAgICAgICAgICAgICAoKFVJTlQ2NCopZGF0YSlbIDhdID0gfigoVUlOVDY0KilkYXRhKVsgOF07CisgICAgICAgICAgICAgICAgaWYgKGxhbmVDb3VudCA+IDEyKSB7CisgICAgICAgICAgICAgICAgICAgICgoVUlOVDY0KilkYXRhKVsxMl0gPSB+KChVSU5UNjQqKWRhdGEpWzEyXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxhbmVDb3VudCA+IDE3KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAoKFVJTlQ2NCopZGF0YSlbMTddID0gfigoVUlOVDY0KilkYXRhKVsxN107CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGFuZUNvdW50ID4gMjApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKFVJTlQ2NCopZGF0YSlbMjBdID0gfigoVUlOVDY0KilkYXRhKVsyMF07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC1zaW1kMTI4Lm1hY3JvcyBiL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC1zaW1kMTI4Lm1hY3JvcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGU0N2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrRi0xNjAwLXNpbWQxMjgubWFjcm9zCkBAIC0wLDAgKzEsNjUxIEBACisvKgorVGhlIEtlY2NhayBzcG9uZ2UgZnVuY3Rpb24sIGRlc2lnbmVkIGJ5IEd1aWRvIEJlcnRvbmksIEpvYW4gRGFlbWVuLAorTWljaGHDq2wgUGVldGVycyBhbmQgR2lsbGVzIFZhbiBBc3NjaGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBmZWVkYmFjayBvcgorcXVlc3Rpb25zLCBwbGVhc2UgcmVmZXIgdG8gb3VyIHdlYnNpdGU6IGh0dHA6Ly9rZWNjYWsubm9la2Vvbi5vcmcvCisKK0ltcGxlbWVudGF0aW9uIGJ5IHRoZSBkZXNpZ25lcnMsCitoZXJlYnkgZGVub3RlZCBhcyAidGhlIGltcGxlbWVudGVyIi4KKworVG8gdGhlIGV4dGVudCBwb3NzaWJsZSB1bmRlciBsYXcsIHRoZSBpbXBsZW1lbnRlciBoYXMgd2FpdmVkIGFsbCBjb3B5cmlnaHQKK2FuZCByZWxhdGVkIG9yIG5laWdoYm9yaW5nIHJpZ2h0cyB0byB0aGUgc291cmNlIGNvZGUgaW4gdGhpcyBmaWxlLgoraHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworKi8KKworI2RlZmluZSBkZWNsYXJlQUJDREUgXAorICAgIFY2NDY0IEFiYWdlLCBBYmVnaSwgQWJpZ28sIEFib2d1LCBBYnVnYTsgXAorICAgIFY2NDY0IEFrYW1lLCBBa2VtaSwgQWtpbW8sIEFrb211LCBBa3VtYTsgXAorICAgIFY2NDY0IEFiYWUsIEFiaW8sIEFnYWUsIEFnaW8sIEFrYWUsIEFraW8sIEFtYWUsIEFtaW8sIEFzYWUsIEFzaW87IFwKKyAgICBWNjQgQWJhLCBBYmUsIEFiaSwgQWJvLCBBYnU7IFwKKyAgICBWNjQgQWdhLCBBZ2UsIEFnaSwgQWdvLCBBZ3U7IFwKKyAgICBWNjQgQWthLCBBa2UsIEFraSwgQWtvLCBBa3U7IFwKKyAgICBWNjQgQW1hLCBBbWUsIEFtaSwgQW1vLCBBbXU7IFwKKyAgICBWNjQgQXNhLCBBc2UsIEFzaSwgQXNvLCBBc3U7IFwKKyAgICBWMTI4IEJiYWdlLCBCYmVnaSwgQmJpZ28sIEJib2d1LCBCYnVnYTsgXAorICAgIFYxMjggQmthbWUsIEJrZW1pLCBCa2ltbywgQmtvbXUsIEJrdW1hOyBcCisgICAgVjY0IEJiYSwgQmJlLCBCYmksIEJibywgQmJ1OyBcCisgICAgVjY0IEJnYSwgQmdlLCBCZ2ksIEJnbywgQmd1OyBcCisgICAgVjY0IEJrYSwgQmtlLCBCa2ksIEJrbywgQmt1OyBcCisgICAgVjY0IEJtYSwgQm1lLCBCbWksIEJtbywgQm11OyBcCisgICAgVjY0IEJzYSwgQnNlLCBCc2ksIEJzbywgQnN1OyBcCisgICAgVjEyOCBDYWUsIENlaSwgQ2lvLCBDb3UsIEN1YSwgRGVpLCBEb3U7IFwKKyAgICBWNjQgQ2EsIENlLCBDaSwgQ28sIEN1OyBcCisgICAgVjY0IERhLCBEZSwgRGksIERvLCBEdTsgXAorICAgIFY2NDY0IEViYWdlLCBFYmVnaSwgRWJpZ28sIEVib2d1LCBFYnVnYTsgXAorICAgIFY2NDY0IEVrYW1lLCBFa2VtaSwgRWtpbW8sIEVrb211LCBFa3VtYTsgXAorICAgIFY2NCBFYmEsIEViZSwgRWJpLCBFYm8sIEVidTsgXAorICAgIFY2NCBFZ2EsIEVnZSwgRWdpLCBFZ28sIEVndTsgXAorICAgIFY2NCBFa2EsIEVrZSwgRWtpLCBFa28sIEVrdTsgXAorICAgIFY2NCBFbWEsIEVtZSwgRW1pLCBFbW8sIEVtdTsgXAorICAgIFY2NCBFc2EsIEVzZSwgRXNpLCBFc28sIEVzdTsgXAorICAgIFYxMjggWmVybzsKKworI2RlZmluZSBwcmVwYXJlVGhldGEKKworI2RlZmluZSBjb21wdXRlRCBcCisgICAgQ3VhID0gR0VUNjRMT0xPKEN1LCBDYWUpOyBcCisgICAgRGVpID0gWE9SMTI4KENhZSwgUk9MNjRpbjEyOChDaW8sIDEpKTsgXAorICAgIERvdSA9IFhPUjEyOChDaW8sIFJPTDY0aW4xMjgoQ3VhLCAxKSk7IFwKKyAgICBEYSA9IFhPUjY0KEN1LCBST0w2NGluMTI4KENPUFk2NEhJMkxPKENhZSksIDEpKTsgXAorICAgIERlID0gRGVpOyBcCisgICAgRGkgPSBDT1BZNjRISTJMTyhEZWkpOyBcCisgICAgRG8gPSBEb3U7IFwKKyAgICBEdSA9IENPUFk2NEhJMkxPKERvdSk7CisKKy8qICAtLS0gVGhldGEgUmhvIFBpIENoaSBJb3RhIFByZXBhcmUtdGhldGEgKi8KKy8qICAtLS0gNjQtYml0IGxhbmVzIG1hcHBlZCB0byA2NC1iaXQgYW5kIDEyOC1iaXQgd29yZHMgKi8KKyNkZWZpbmUgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSwgQSwgRSkgXAorICAgIGNvbXB1dGVEIFwKKyAgICBcCisgICAgQSMjYmEgPSBMT0FENjQoQSMjYmFnZS52NjRbMF0pOyBcCisgICAgWE9SZXE2NChBIyNiYSwgRGEpOyBcCisgICAgQmJhID0gQSMjYmE7IFwKKyAgICBYT1JlcTY0KEEjI2d1LCBEdSk7IFwKKyAgICBCZ2UgPSBST0w2NChBIyNndSwgMjApOyBcCisgICAgQmJhZ2UgPSBHRVQ2NExPTE8oQmJhLCBCZ2UpOyBcCisgICAgQSMjZ2UgPSBMT0FENjQoQSMjYmFnZS52NjRbMV0pOyBcCisgICAgWE9SZXE2NChBIyNnZSwgRGUpOyBcCisgICAgQmJlID0gUk9MNjQoQSMjZ2UsIDQ0KTsgXAorICAgIEEjI2thID0gTE9BRDY0KEEjI2thbWUudjY0WzBdKTsgXAorICAgIFhPUmVxNjQoQSMja2EsIERhKTsgXAorICAgIEJnaSA9IFJPTDY0KEEjI2thLCAzKTsgXAorICAgIEJiZWdpID0gR0VUNjRMT0xPKEJiZSwgQmdpKTsgXAorICAgIFhPUmVxNjQoQSMja2ksIERpKTsgXAorICAgIEJiaSA9IFJPTDY0KEEjI2tpLCA0Myk7IFwKKyAgICBBIyNtZSA9IExPQUQ2NChBIyNrYW1lLnY2NFsxXSk7IFwKKyAgICBYT1JlcTY0KEEjI21lLCBEZSk7IFwKKyAgICBCZ28gPSBST0w2NChBIyNtZSwgNDUpOyBcCisgICAgQmJpZ28gPSBHRVQ2NExPTE8oQmJpLCBCZ28pOyBcCisgICAgRSMjYmFnZS52MTI4ID0gWE9SMTI4KEJiYWdlLCBBTkRudTEyOChCYmVnaSwgQmJpZ28pKTsgXAorICAgIFhPUmVxMTI4KEUjI2JhZ2UudjEyOCwgQ09OU1Q2NChLZWNjYWtGMTYwMFJvdW5kQ29uc3RhbnRzW2ldKSk7IFwKKyAgICBDYWUgPSBFIyNiYWdlLnYxMjg7IFwKKyAgICBYT1JlcTY0KEEjI21vLCBEbyk7IFwKKyAgICBCYm8gPSBST0w2NChBIyNtbywgMjEpOyBcCisgICAgWE9SZXE2NChBIyNzaSwgRGkpOyBcCisgICAgQmd1ID0gUk9MNjQoQSMjc2ksIDYxKTsgXAorICAgIEJib2d1ID0gR0VUNjRMT0xPKEJibywgQmd1KTsgXAorICAgIEUjI2JlZ2kudjEyOCA9IFhPUjEyOChCYmVnaSwgQU5EbnUxMjgoQmJpZ28sIEJib2d1KSk7IFwKKyAgICBDZWkgPSBFIyNiZWdpLnYxMjg7IFwKKyAgICBYT1JlcTY0KEEjI3N1LCBEdSk7IFwKKyAgICBCYnUgPSBST0w2NChBIyNzdSwgMTQpOyBcCisgICAgWE9SZXE2NChBIyNibywgRG8pOyBcCisgICAgQmdhID0gUk9MNjQoQSMjYm8sIDI4KTsgXAorICAgIEJidWdhID0gR0VUNjRMT0xPKEJidSwgQmdhKTsgXAorICAgIEUjI2JpZ28udjEyOCA9IFhPUjEyOChCYmlnbywgQU5EbnUxMjgoQmJvZ3UsIEJidWdhKSk7IFwKKyAgICBFIyNiaSA9IEUjI2JpZ28udjEyODsgXAorICAgIEUjI2dvID0gR0VUNjRISUhJKEUjI2JpZ28udjEyOCwgRSMjYmlnby52MTI4KTsgXAorICAgIENpbyA9IEUjI2JpZ28udjEyODsgXAorICAgIEUjI2JvZ3UudjEyOCA9IFhPUjEyOChCYm9ndSwgQU5EbnUxMjgoQmJ1Z2EsIEJiYWdlKSk7IFwKKyAgICBFIyNibyA9IEUjI2JvZ3UudjEyODsgXAorICAgIEUjI2d1ID0gR0VUNjRISUhJKEUjI2JvZ3UudjEyOCwgRSMjYm9ndS52MTI4KTsgXAorICAgIENvdSA9IEUjI2JvZ3UudjEyODsgXAorICAgIEUjI2J1Z2EudjEyOCA9IFhPUjEyOChCYnVnYSwgQU5EbnUxMjgoQmJhZ2UsIEJiZWdpKSk7IFwKKyAgICBFIyNidSA9IEUjI2J1Z2EudjEyODsgXAorICAgIEUjI2dhID0gR0VUNjRISUhJKEUjI2J1Z2EudjEyOCwgRSMjYnVnYS52MTI4KTsgXAorICAgIEN1YSA9IEUjI2J1Z2EudjEyODsgXAorXAorICAgIEEjI2JlID0gTE9BRDY0KEEjI2JlZ2kudjY0WzBdKTsgXAorICAgIFhPUmVxNjQoQSMjYmUsIERlKTsgXAorICAgIEJrYSA9IFJPTDY0KEEjI2JlLCAxKTsgXAorICAgIFhPUmVxNjQoQSMjZ2EsIERhKTsgXAorICAgIEJtZSA9IFJPTDY0KEEjI2dhLCAzNik7IFwKKyAgICBCa2FtZSA9IEdFVDY0TE9MTyhCa2EsIEJtZSk7IFwKKyAgICBBIyNnaSA9IExPQUQ2NChBIyNiZWdpLnY2NFsxXSk7IFwKKyAgICBYT1JlcTY0KEEjI2dpLCBEaSk7IFwKKyAgICBCa2UgPSBST0w2NChBIyNnaSwgNik7IFwKKyAgICBBIyNrZSA9IExPQUQ2NChBIyNrZW1pLnY2NFswXSk7IFwKKyAgICBYT1JlcTY0KEEjI2tlLCBEZSk7IFwKKyAgICBCbWkgPSBST0w2NChBIyNrZSwgMTApOyBcCisgICAgQmtlbWkgPSBHRVQ2NExPTE8oQmtlLCBCbWkpOyBcCisgICAgWE9SZXE2NChBIyNrbywgRG8pOyBcCisgICAgQmtpID0gUk9MNjQoQSMja28sIDI1KTsgXAorICAgIEEjI21pID0gTE9BRDY0KEEjI2tlbWkudjY0WzFdKTsgXAorICAgIFhPUmVxNjQoQSMjbWksIERpKTsgXAorICAgIEJtbyA9IFJPTDY0KEEjI21pLCAxNSk7IFwKKyAgICBCa2ltbyA9IEdFVDY0TE9MTyhCa2ksIEJtbyk7IFwKKyAgICBFIyNrYW1lLnYxMjggPSBYT1IxMjgoQmthbWUsIEFORG51MTI4KEJrZW1pLCBCa2ltbykpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBFIyNrYW1lLnYxMjgpOyBcCisgICAgQmtvbXUgPSBHRVQ2NExPTE8oWE9SNjQoQSMjbXUsIER1KSwgWE9SNjQoQSMjc28sIERvKSk7IFwKKyAgICBCa29tdSA9IFNIVUZGTEVCWVRFUzEyOChCa29tdSwgQ09OU1QxMjgocmhvOF81NikpOyBcCisgICAgRSMja2VtaS52MTI4ID0gWE9SMTI4KEJrZW1pLCBBTkRudTEyOChCa2ltbywgQmtvbXUpKTsgXAorICAgIFhPUmVxMTI4KENlaSwgRSMja2VtaS52MTI4KTsgXAorICAgIFhPUmVxNjQoQSMjc2EsIERhKTsgXAorICAgIEJrdSA9IFJPTDY0KEEjI3NhLCAxOCk7IFwKKyAgICBYT1JlcTY0KEEjI2J1LCBEdSk7IFwKKyAgICBCbWEgPSBST0w2NChBIyNidSwgMjcpOyBcCisgICAgQmt1bWEgPSBHRVQ2NExPTE8oQmt1LCBCbWEpOyBcCisgICAgRSMja2ltby52MTI4ID0gWE9SMTI4KEJraW1vLCBBTkRudTEyOChCa29tdSwgQmt1bWEpKTsgXAorICAgIEUjI2tpID0gRSMja2ltby52MTI4OyBcCisgICAgRSMjbW8gPSBHRVQ2NEhJSEkoRSMja2ltby52MTI4LCBFIyNraW1vLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2lvLCBFIyNraW1vLnYxMjgpOyBcCisgICAgRSMja29tdS52MTI4ID0gWE9SMTI4KEJrb211LCBBTkRudTEyOChCa3VtYSwgQmthbWUpKTsgXAorICAgIEUjI2tvID0gRSMja29tdS52MTI4OyBcCisgICAgRSMjbXUgPSBHRVQ2NEhJSEkoRSMja29tdS52MTI4LCBFIyNrb211LnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ291LCBFIyNrb211LnYxMjgpOyBcCisgICAgRSMja3VtYS52MTI4ID0gWE9SMTI4KEJrdW1hLCBBTkRudTEyOChCa2FtZSwgQmtlbWkpKTsgXAorICAgIEUjI2t1ID0gRSMja3VtYS52MTI4OyBcCisgICAgRSMjbWEgPSBHRVQ2NEhJSEkoRSMja3VtYS52MTI4LCBFIyNrdW1hLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ3VhLCBFIyNrdW1hLnYxMjgpOyBcCitcCisgICAgWE9SZXE2NChBIyNiaSwgRGkpOyBcCisgICAgQnNhID0gUk9MNjQoQSMjYmksIDYyKTsgXAorICAgIFhPUmVxNjQoQSMjZ28sIERvKTsgXAorICAgIEJzZSA9IFJPTDY0KEEjI2dvLCA1NSk7IFwKKyAgICBYT1JlcTY0KEEjI2t1LCBEdSk7IFwKKyAgICBCc2kgPSBST0w2NChBIyNrdSwgMzkpOyBcCisgICAgRSMjc2EgPSBYT1I2NChCc2EsIEFORG51NjQoQnNlLCBCc2kpKTsgXAorICAgIENhID0gRSMjc2E7IFwKKyAgICBYT1JlcTY0KEEjI21hLCBEYSk7IFwKKyAgICBCc28gPSBST0w2NChBIyNtYSwgNDEpOyBcCisgICAgRSMjc2UgPSBYT1I2NChCc2UsIEFORG51NjQoQnNpLCBCc28pKTsgXAorICAgIENlID0gRSMjc2U7IFwKKyAgICBYT1JlcTEyOChDYWUsIEdFVDY0TE9MTyhDYSwgQ2UpKTsgXAorICAgIFhPUmVxNjQoQSMjc2UsIERlKTsgXAorICAgIEJzdSA9IFJPTDY0KEEjI3NlLCAyKTsgXAorICAgIEUjI3NpID0gWE9SNjQoQnNpLCBBTkRudTY0KEJzbywgQnN1KSk7IFwKKyAgICBDaSA9IEUjI3NpOyBcCisgICAgRSMjc28gPSBYT1I2NChCc28sIEFORG51NjQoQnN1LCBCc2EpKTsgXAorICAgIENvID0gRSMjc287IFwKKyAgICBYT1JlcTEyOChDaW8sIEdFVDY0TE9MTyhDaSwgQ28pKTsgXAorICAgIEUjI3N1ID0gWE9SNjQoQnN1LCBBTkRudTY0KEJzYSwgQnNlKSk7IFwKKyAgICBDdSA9IEUjI3N1OyBcCitcCisgICAgWmVybyA9IFpFUk8xMjgoKTsgXAorICAgIFhPUmVxMTI4KENhZSwgR0VUNjRISUhJKEN1YSwgWmVybykpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBHRVQ2NExPTE8oWmVybywgQ2VpKSk7IFwKKyAgICBYT1JlcTEyOChDaW8sIEdFVDY0SElISShDZWksIFplcm8pKTsgXAorICAgIFhPUmVxMTI4KENpbywgR0VUNjRMT0xPKFplcm8sIENvdSkpOyBcCisgICAgWE9SZXExMjgoQ3VhLCBHRVQ2NEhJSEkoQ291LCBaZXJvKSk7IFwKKyAgICBYT1JlcTY0KEN1LCBDdWEpOyBcCisKKy8qICAtLS0gVGhldGEgUmhvIFBpIENoaSBJb3RhICovCisvKiAgLS0tIDY0LWJpdCBsYW5lcyBtYXBwZWQgdG8gNjQtYml0IGFuZCAxMjgtYml0IHdvcmRzICovCisjZGVmaW5lIHRoZXRhUmhvUGlDaGlJb3RhKGksIEEsIEUpIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGksIEEsIEUpCisKK3N0YXRpYyBjb25zdCBVSU5UNjQgS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c1syNF0gPSB7CisgICAgMHgwMDAwMDAwMDAwMDAwMDAxVUxMLAorICAgIDB4MDAwMDAwMDAwMDAwODA4MlVMTCwKKyAgICAweDgwMDAwMDAwMDAwMDgwOGFVTEwsCisgICAgMHg4MDAwMDAwMDgwMDA4MDAwVUxMLAorICAgIDB4MDAwMDAwMDAwMDAwODA4YlVMTCwKKyAgICAweDAwMDAwMDAwODAwMDAwMDFVTEwsCisgICAgMHg4MDAwMDAwMDgwMDA4MDgxVUxMLAorICAgIDB4ODAwMDAwMDAwMDAwODAwOVVMTCwKKyAgICAweDAwMDAwMDAwMDAwMDAwOGFVTEwsCisgICAgMHgwMDAwMDAwMDAwMDAwMDg4VUxMLAorICAgIDB4MDAwMDAwMDA4MDAwODAwOVVMTCwKKyAgICAweDAwMDAwMDAwODAwMDAwMGFVTEwsCisgICAgMHgwMDAwMDAwMDgwMDA4MDhiVUxMLAorICAgIDB4ODAwMDAwMDAwMDAwMDA4YlVMTCwKKyAgICAweDgwMDAwMDAwMDAwMDgwODlVTEwsCisgICAgMHg4MDAwMDAwMDAwMDA4MDAzVUxMLAorICAgIDB4ODAwMDAwMDAwMDAwODAwMlVMTCwKKyAgICAweDgwMDAwMDAwMDAwMDAwODBVTEwsCisgICAgMHgwMDAwMDAwMDAwMDA4MDBhVUxMLAorICAgIDB4ODAwMDAwMDA4MDAwMDAwYVVMTCwKKyAgICAweDgwMDAwMDAwODAwMDgwODFVTEwsCisgICAgMHg4MDAwMDAwMDAwMDA4MDgwVUxMLAorICAgIDB4MDAwMDAwMDA4MDAwMDAwMVVMTCwKKyAgICAweDgwMDAwMDAwODAwMDgwMDhVTEwgfTsKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlQW5kWG9yNTc2Yml0cyhYLCBzdGF0ZSwgaW5wdXQpIFwKKyAgICBYIyNiYWUudjEyOCA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWyAwXSksIExPQUQxMjh1KGlucHV0WyAwXSkpOyBcCisgICAgWCMjYmEgPSBYIyNiYWUudjEyODsgXAorICAgIFgjI2JlID0gR0VUNjRISUhJKFgjI2JhZS52MTI4LCBYIyNiYWUudjEyOCk7IFwKKyAgICBDYWUgPSBYIyNiYWUudjEyODsgXAorICAgIFgjI2Jpby52MTI4ID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbIDJdKSwgTE9BRDEyOHUoaW5wdXRbIDJdKSk7IFwKKyAgICBYIyNiaSA9IFgjI2Jpby52MTI4OyBcCisgICAgWCMjYm8gPSBHRVQ2NEhJSEkoWCMjYmlvLnYxMjgsIFgjI2Jpby52MTI4KTsgXAorICAgIENpbyA9IFgjI2Jpby52MTI4OyBcCisgICAgWCMjYnUgPSBYT1I2NChMT0FENjQoc3RhdGVbIDRdKSwgTE9BRDY0KGlucHV0WyA0XSkpOyBcCisgICAgQ3UgPSBYIyNidTsgXAorICAgIFgjI2dhZS52MTI4ID0gWE9SMTI4KExPQUQxMjh1KHN0YXRlWyA1XSksIExPQUQxMjh1KGlucHV0WyA1XSkpOyBcCisgICAgWCMjZ2EgPSBYIyNnYWUudjEyODsgXAorICAgIFgjI2dlID0gR0VUNjRISUhJKFgjI2dhZS52MTI4LCBYIyNnYWUudjEyOCk7IFwKKyAgICBYIyNiYWdlLnYxMjggPSBHRVQ2NExPTE8oWCMjYmEsIFgjI2dlKTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMjZ2FlLnYxMjgpOyBcCisgICAgWCMjZ2lvLnYxMjggPSBYT1IxMjgoTE9BRDEyOHUoc3RhdGVbIDddKSwgTE9BRDEyOHUoaW5wdXRbIDddKSk7IFwKKyAgICBYIyNnaSA9IFgjI2dpby52MTI4OyBcCisgICAgWCMjYmVnaS52MTI4ID0gR0VUNjRMT0xPKFgjI2JlLCBYIyNnaSk7IFwKKyAgICBYIyNnbyA9IEdFVDY0SElISShYIyNnaW8udjEyOCwgWCMjZ2lvLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNnaW8udjEyOCk7IFwKKyAgICBYIyNndSA9IExPQUQ2NChzdGF0ZVsgOV0pOyBcCisgICAgWE9SZXE2NChDdSwgWCMjZ3UpOyBcCisgICAgWCMja2FlLnYxMjggPSBMT0FEMTI4KHN0YXRlWzEwXSk7IFwKKyAgICBYIyNrYSA9IFgjI2thZS52MTI4OyBcCisgICAgWCMja2UgPSBHRVQ2NEhJSEkoWCMja2FlLnYxMjgsIFgjI2thZS52MTI4KTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMja2FlLnYxMjgpOyBcCisgICAgWCMja2lvLnYxMjggPSBMT0FEMTI4KHN0YXRlWzEyXSk7IFwKKyAgICBYIyNraSA9IFgjI2tpby52MTI4OyBcCisgICAgWCMja28gPSBHRVQ2NEhJSEkoWCMja2lvLnYxMjgsIFgjI2tpby52MTI4KTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMja2lvLnYxMjgpOyBcCisgICAgWCMja3UgPSBMT0FENjQoc3RhdGVbMTRdKTsgXAorICAgIFhPUmVxNjQoQ3UsIFgjI2t1KTsgXAorICAgIFgjI21hZS52MTI4ID0gTE9BRDEyOHUoc3RhdGVbMTVdKTsgXAorICAgIFgjI21hID0gWCMjbWFlLnYxMjg7IFwKKyAgICBYIyNtZSA9IEdFVDY0SElISShYIyNtYWUudjEyOCwgWCMjbWFlLnYxMjgpOyBcCisgICAgWCMja2FtZS52MTI4ID0gR0VUNjRMT0xPKFgjI2thLCBYIyNtZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI21hZS52MTI4KTsgXAorICAgIFgjI21pby52MTI4ID0gTE9BRDEyOHUoc3RhdGVbMTddKTsgXAorICAgIFgjI21pID0gWCMjbWlvLnYxMjg7IFwKKyAgICBYIyNrZW1pLnYxMjggPSBHRVQ2NExPTE8oWCMja2UsIFgjI21pKTsgXAorICAgIFgjI21vID0gR0VUNjRISUhJKFgjI21pby52MTI4LCBYIyNtaW8udjEyOCk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI21pby52MTI4KTsgXAorICAgIFgjI211ID0gTE9BRDY0KHN0YXRlWzE5XSk7IFwKKyAgICBYT1JlcTY0KEN1LCBYIyNtdSk7IFwKKyAgICBYIyNzYWUudjEyOCA9IExPQUQxMjgoc3RhdGVbMjBdKTsgXAorICAgIFgjI3NhID0gWCMjc2FlLnYxMjg7IFwKKyAgICBYIyNzZSA9IEdFVDY0SElISShYIyNzYWUudjEyOCwgWCMjc2FlLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNzYWUudjEyOCk7IFwKKyAgICBYIyNzaW8udjEyOCA9IExPQUQxMjgoc3RhdGVbMjJdKTsgXAorICAgIFgjI3NpID0gWCMjc2lvLnYxMjg7IFwKKyAgICBYIyNzbyA9IEdFVDY0SElISShYIyNzaW8udjEyOCwgWCMjc2lvLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNzaW8udjEyOCk7IFwKKyAgICBYIyNzdSA9IExPQUQ2NChzdGF0ZVsyNF0pOyBcCisgICAgWE9SZXE2NChDdSwgWCMjc3UpOyBcCisKKyNkZWZpbmUgY29weUZyb21TdGF0ZUFuZFhvcjgzMmJpdHMoWCwgc3RhdGUsIGlucHV0KSBcCisgICAgWCMjYmFlLnYxMjggPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsgMF0pLCBMT0FEMTI4dShpbnB1dFsgMF0pKTsgXAorICAgIFgjI2JhID0gWCMjYmFlLnYxMjg7IFwKKyAgICBYIyNiZSA9IEdFVDY0SElISShYIyNiYWUudjEyOCwgWCMjYmFlLnYxMjgpOyBcCisgICAgQ2FlID0gWCMjYmFlLnYxMjg7IFwKKyAgICBYIyNiaW8udjEyOCA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWyAyXSksIExPQUQxMjh1KGlucHV0WyAyXSkpOyBcCisgICAgWCMjYmkgPSBYIyNiaW8udjEyODsgXAorICAgIFgjI2JvID0gR0VUNjRISUhJKFgjI2Jpby52MTI4LCBYIyNiaW8udjEyOCk7IFwKKyAgICBDaW8gPSBYIyNiaW8udjEyODsgXAorICAgIFgjI2J1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA0XSksIExPQUQ2NChpbnB1dFsgNF0pKTsgXAorICAgIEN1ID0gWCMjYnU7IFwKKyAgICBYIyNnYWUudjEyOCA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsgNV0pLCBMT0FEMTI4dShpbnB1dFsgNV0pKTsgXAorICAgIFgjI2dhID0gWCMjZ2FlLnYxMjg7IFwKKyAgICBYIyNnZSA9IEdFVDY0SElISShYIyNnYWUudjEyOCwgWCMjZ2FlLnYxMjgpOyBcCisgICAgWCMjYmFnZS52MTI4ID0gR0VUNjRMT0xPKFgjI2JhLCBYIyNnZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI2dhZS52MTI4KTsgXAorICAgIFgjI2dpby52MTI4ID0gWE9SMTI4KExPQUQxMjh1KHN0YXRlWyA3XSksIExPQUQxMjh1KGlucHV0WyA3XSkpOyBcCisgICAgWCMjZ2kgPSBYIyNnaW8udjEyODsgXAorICAgIFgjI2JlZ2kudjEyOCA9IEdFVDY0TE9MTyhYIyNiZSwgWCMjZ2kpOyBcCisgICAgWCMjZ28gPSBHRVQ2NEhJSEkoWCMjZ2lvLnYxMjgsIFgjI2dpby52MTI4KTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMjZ2lvLnYxMjgpOyBcCisgICAgWCMjZ3UgPSBYT1I2NChMT0FENjQoc3RhdGVbIDldKSwgTE9BRDY0KGlucHV0WyA5XSkpOyBcCisgICAgWE9SZXE2NChDdSwgWCMjZ3UpOyBcCisgICAgWCMja2FlLnYxMjggPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsxMF0pLCBMT0FEMTI4dShpbnB1dFsxMF0pKTsgXAorICAgIFgjI2thID0gWCMja2FlLnYxMjg7IFwKKyAgICBYIyNrZSA9IEdFVDY0SElISShYIyNrYWUudjEyOCwgWCMja2FlLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNrYWUudjEyOCk7IFwKKyAgICBYIyNraW8udjEyOCA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWzEyXSksIExPQUQ2NChpbnB1dFsxMl0pKTsgXAorICAgIFgjI2tpID0gWCMja2lvLnYxMjg7IFwKKyAgICBYIyNrbyA9IEdFVDY0SElISShYIyNraW8udjEyOCwgWCMja2lvLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNraW8udjEyOCk7IFwKKyAgICBYIyNrdSA9IExPQUQ2NChzdGF0ZVsxNF0pOyBcCisgICAgWE9SZXE2NChDdSwgWCMja3UpOyBcCisgICAgWCMjbWFlLnYxMjggPSBMT0FEMTI4dShzdGF0ZVsxNV0pOyBcCisgICAgWCMjbWEgPSBYIyNtYWUudjEyODsgXAorICAgIFgjI21lID0gR0VUNjRISUhJKFgjI21hZS52MTI4LCBYIyNtYWUudjEyOCk7IFwKKyAgICBYIyNrYW1lLnYxMjggPSBHRVQ2NExPTE8oWCMja2EsIFgjI21lKTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMjbWFlLnYxMjgpOyBcCisgICAgWCMjbWlvLnYxMjggPSBMT0FEMTI4dShzdGF0ZVsxN10pOyBcCisgICAgWCMjbWkgPSBYIyNtaW8udjEyODsgXAorICAgIFgjI2tlbWkudjEyOCA9IEdFVDY0TE9MTyhYIyNrZSwgWCMjbWkpOyBcCisgICAgWCMjbW8gPSBHRVQ2NEhJSEkoWCMjbWlvLnYxMjgsIFgjI21pby52MTI4KTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMjbWlvLnYxMjgpOyBcCisgICAgWCMjbXUgPSBMT0FENjQoc3RhdGVbMTldKTsgXAorICAgIFhPUmVxNjQoQ3UsIFgjI211KTsgXAorICAgIFgjI3NhZS52MTI4ID0gTE9BRDEyOChzdGF0ZVsyMF0pOyBcCisgICAgWCMjc2EgPSBYIyNzYWUudjEyODsgXAorICAgIFgjI3NlID0gR0VUNjRISUhJKFgjI3NhZS52MTI4LCBYIyNzYWUudjEyOCk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI3NhZS52MTI4KTsgXAorICAgIFgjI3Npby52MTI4ID0gTE9BRDEyOChzdGF0ZVsyMl0pOyBcCisgICAgWCMjc2kgPSBYIyNzaW8udjEyODsgXAorICAgIFgjI3NvID0gR0VUNjRISUhJKFgjI3Npby52MTI4LCBYIyNzaW8udjEyOCk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI3Npby52MTI4KTsgXAorICAgIFgjI3N1ID0gTE9BRDY0KHN0YXRlWzI0XSk7IFwKKyAgICBYT1JlcTY0KEN1LCBYIyNzdSk7IFwKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlQW5kWG9yMTAyNGJpdHMoWCwgc3RhdGUsIGlucHV0KSBcCisgICAgWCMjYmFlLnYxMjggPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsgMF0pLCBMT0FEMTI4dShpbnB1dFsgMF0pKTsgXAorICAgIFgjI2JhID0gWCMjYmFlLnYxMjg7IFwKKyAgICBYIyNiZSA9IEdFVDY0SElISShYIyNiYWUudjEyOCwgWCMjYmFlLnYxMjgpOyBcCisgICAgQ2FlID0gWCMjYmFlLnYxMjg7IFwKKyAgICBYIyNiaW8udjEyOCA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWyAyXSksIExPQUQxMjh1KGlucHV0WyAyXSkpOyBcCisgICAgWCMjYmkgPSBYIyNiaW8udjEyODsgXAorICAgIFgjI2JvID0gR0VUNjRISUhJKFgjI2Jpby52MTI4LCBYIyNiaW8udjEyOCk7IFwKKyAgICBDaW8gPSBYIyNiaW8udjEyODsgXAorICAgIFgjI2J1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA0XSksIExPQUQ2NChpbnB1dFsgNF0pKTsgXAorICAgIEN1ID0gWCMjYnU7IFwKKyAgICBYIyNnYWUudjEyOCA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsgNV0pLCBMT0FEMTI4dShpbnB1dFsgNV0pKTsgXAorICAgIFgjI2dhID0gWCMjZ2FlLnYxMjg7IFwKKyAgICBYIyNnZSA9IEdFVDY0SElISShYIyNnYWUudjEyOCwgWCMjZ2FlLnYxMjgpOyBcCisgICAgWCMjYmFnZS52MTI4ID0gR0VUNjRMT0xPKFgjI2JhLCBYIyNnZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI2dhZS52MTI4KTsgXAorICAgIFgjI2dpby52MTI4ID0gWE9SMTI4KExPQUQxMjh1KHN0YXRlWyA3XSksIExPQUQxMjh1KGlucHV0WyA3XSkpOyBcCisgICAgWCMjZ2kgPSBYIyNnaW8udjEyODsgXAorICAgIFgjI2JlZ2kudjEyOCA9IEdFVDY0TE9MTyhYIyNiZSwgWCMjZ2kpOyBcCisgICAgWCMjZ28gPSBHRVQ2NEhJSEkoWCMjZ2lvLnYxMjgsIFgjI2dpby52MTI4KTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMjZ2lvLnYxMjgpOyBcCisgICAgWCMjZ3UgPSBYT1I2NChMT0FENjQoc3RhdGVbIDldKSwgTE9BRDY0KGlucHV0WyA5XSkpOyBcCisgICAgWE9SZXE2NChDdSwgWCMjZ3UpOyBcCisgICAgWCMja2FlLnYxMjggPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsxMF0pLCBMT0FEMTI4dShpbnB1dFsxMF0pKTsgXAorICAgIFgjI2thID0gWCMja2FlLnYxMjg7IFwKKyAgICBYIyNrZSA9IEdFVDY0SElISShYIyNrYWUudjEyOCwgWCMja2FlLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNrYWUudjEyOCk7IFwKKyAgICBYIyNraW8udjEyOCA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWzEyXSksIExPQUQxMjh1KGlucHV0WzEyXSkpOyBcCisgICAgWCMja2kgPSBYIyNraW8udjEyODsgXAorICAgIFgjI2tvID0gR0VUNjRISUhJKFgjI2tpby52MTI4LCBYIyNraW8udjEyOCk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI2tpby52MTI4KTsgXAorICAgIFgjI2t1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWzE0XSksIExPQUQ2NChpbnB1dFsxNF0pKTsgXAorICAgIFhPUmVxNjQoQ3UsIFgjI2t1KTsgXAorICAgIFgjI21hZS52MTI4ID0gWE9SMTI4KExPQUQxMjh1KHN0YXRlWzE1XSksIExPQUQ2NChpbnB1dFsxNV0pKTsgXAorICAgIFgjI21hID0gWCMjbWFlLnYxMjg7IFwKKyAgICBYIyNtZSA9IEdFVDY0SElISShYIyNtYWUudjEyOCwgWCMjbWFlLnYxMjgpOyBcCisgICAgWCMja2FtZS52MTI4ID0gR0VUNjRMT0xPKFgjI2thLCBYIyNtZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI21hZS52MTI4KTsgXAorICAgIFgjI21pby52MTI4ID0gTE9BRDEyOHUoc3RhdGVbMTddKTsgXAorICAgIFgjI21pID0gWCMjbWlvLnYxMjg7IFwKKyAgICBYIyNrZW1pLnYxMjggPSBHRVQ2NExPTE8oWCMja2UsIFgjI21pKTsgXAorICAgIFgjI21vID0gR0VUNjRISUhJKFgjI21pby52MTI4LCBYIyNtaW8udjEyOCk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI21pby52MTI4KTsgXAorICAgIFgjI211ID0gTE9BRDY0KHN0YXRlWzE5XSk7IFwKKyAgICBYT1JlcTY0KEN1LCBYIyNtdSk7IFwKKyAgICBYIyNzYWUudjEyOCA9IExPQUQxMjgoc3RhdGVbMjBdKTsgXAorICAgIFgjI3NhID0gWCMjc2FlLnYxMjg7IFwKKyAgICBYIyNzZSA9IEdFVDY0SElISShYIyNzYWUudjEyOCwgWCMjc2FlLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNzYWUudjEyOCk7IFwKKyAgICBYIyNzaW8udjEyOCA9IExPQUQxMjgoc3RhdGVbMjJdKTsgXAorICAgIFgjI3NpID0gWCMjc2lvLnYxMjg7IFwKKyAgICBYIyNzbyA9IEdFVDY0SElISShYIyNzaW8udjEyOCwgWCMjc2lvLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNzaW8udjEyOCk7IFwKKyAgICBYIyNzdSA9IExPQUQ2NChzdGF0ZVsyNF0pOyBcCisgICAgWE9SZXE2NChDdSwgWCMjc3UpOyBcCisKKyNkZWZpbmUgY29weUZyb21TdGF0ZUFuZFhvcjEwODhiaXRzKFgsIHN0YXRlLCBpbnB1dCkgXAorICAgIFgjI2JhZS52MTI4ID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbIDBdKSwgTE9BRDEyOHUoaW5wdXRbIDBdKSk7IFwKKyAgICBYIyNiYSA9IFgjI2JhZS52MTI4OyBcCisgICAgWCMjYmUgPSBHRVQ2NEhJSEkoWCMjYmFlLnYxMjgsIFgjI2JhZS52MTI4KTsgXAorICAgIENhZSA9IFgjI2JhZS52MTI4OyBcCisgICAgWCMjYmlvLnYxMjggPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsgMl0pLCBMT0FEMTI4dShpbnB1dFsgMl0pKTsgXAorICAgIFgjI2JpID0gWCMjYmlvLnYxMjg7IFwKKyAgICBYIyNibyA9IEdFVDY0SElISShYIyNiaW8udjEyOCwgWCMjYmlvLnYxMjgpOyBcCisgICAgQ2lvID0gWCMjYmlvLnYxMjg7IFwKKyAgICBYIyNidSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgNF0pLCBMT0FENjQoaW5wdXRbIDRdKSk7IFwKKyAgICBDdSA9IFgjI2J1OyBcCisgICAgWCMjZ2FlLnYxMjggPSBYT1IxMjgoTE9BRDEyOHUoc3RhdGVbIDVdKSwgTE9BRDEyOHUoaW5wdXRbIDVdKSk7IFwKKyAgICBYIyNnYSA9IFgjI2dhZS52MTI4OyBcCisgICAgWCMjZ2UgPSBHRVQ2NEhJSEkoWCMjZ2FlLnYxMjgsIFgjI2dhZS52MTI4KTsgXAorICAgIFgjI2JhZ2UudjEyOCA9IEdFVDY0TE9MTyhYIyNiYSwgWCMjZ2UpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNnYWUudjEyOCk7IFwKKyAgICBYIyNnaW8udjEyOCA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsgN10pLCBMT0FEMTI4dShpbnB1dFsgN10pKTsgXAorICAgIFgjI2dpID0gWCMjZ2lvLnYxMjg7IFwKKyAgICBYIyNiZWdpLnYxMjggPSBHRVQ2NExPTE8oWCMjYmUsIFgjI2dpKTsgXAorICAgIFgjI2dvID0gR0VUNjRISUhJKFgjI2dpby52MTI4LCBYIyNnaW8udjEyOCk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI2dpby52MTI4KTsgXAorICAgIFgjI2d1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA5XSksIExPQUQ2NChpbnB1dFsgOV0pKTsgXAorICAgIFhPUmVxNjQoQ3UsIFgjI2d1KTsgXAorICAgIFgjI2thZS52MTI4ID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbMTBdKSwgTE9BRDEyOHUoaW5wdXRbMTBdKSk7IFwKKyAgICBYIyNrYSA9IFgjI2thZS52MTI4OyBcCisgICAgWCMja2UgPSBHRVQ2NEhJSEkoWCMja2FlLnYxMjgsIFgjI2thZS52MTI4KTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMja2FlLnYxMjgpOyBcCisgICAgWCMja2lvLnYxMjggPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsxMl0pLCBMT0FEMTI4dShpbnB1dFsxMl0pKTsgXAorICAgIFgjI2tpID0gWCMja2lvLnYxMjg7IFwKKyAgICBYIyNrbyA9IEdFVDY0SElISShYIyNraW8udjEyOCwgWCMja2lvLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNraW8udjEyOCk7IFwKKyAgICBYIyNrdSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsxNF0pLCBMT0FENjQoaW5wdXRbMTRdKSk7IFwKKyAgICBYT1JlcTY0KEN1LCBYIyNrdSk7IFwKKyAgICBYIyNtYWUudjEyOCA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsxNV0pLCBMT0FEMTI4dShpbnB1dFsxNV0pKTsgXAorICAgIFgjI21hID0gWCMjbWFlLnYxMjg7IFwKKyAgICBYIyNtZSA9IEdFVDY0SElISShYIyNtYWUudjEyOCwgWCMjbWFlLnYxMjgpOyBcCisgICAgWCMja2FtZS52MTI4ID0gR0VUNjRMT0xPKFgjI2thLCBYIyNtZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI21hZS52MTI4KTsgXAorICAgIFgjI21pby52MTI4ID0gTE9BRDEyOHUoc3RhdGVbMTddKTsgXAorICAgIFgjI21pID0gWCMjbWlvLnYxMjg7IFwKKyAgICBYIyNrZW1pLnYxMjggPSBHRVQ2NExPTE8oWCMja2UsIFgjI21pKTsgXAorICAgIFgjI21vID0gR0VUNjRISUhJKFgjI21pby52MTI4LCBYIyNtaW8udjEyOCk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI21pby52MTI4KTsgXAorICAgIFgjI211ID0gTE9BRDY0KHN0YXRlWzE5XSk7IFwKKyAgICBYT1JlcTY0KEN1LCBYIyNtdSk7IFwKKyAgICBYIyNzYWUudjEyOCA9IExPQUQxMjgoc3RhdGVbMjBdKTsgXAorICAgIFgjI3NhID0gWCMjc2FlLnYxMjg7IFwKKyAgICBYIyNzZSA9IEdFVDY0SElISShYIyNzYWUudjEyOCwgWCMjc2FlLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNzYWUudjEyOCk7IFwKKyAgICBYIyNzaW8udjEyOCA9IExPQUQxMjgoc3RhdGVbMjJdKTsgXAorICAgIFgjI3NpID0gWCMjc2lvLnYxMjg7IFwKKyAgICBYIyNzbyA9IEdFVDY0SElISShYIyNzaW8udjEyOCwgWCMjc2lvLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNzaW8udjEyOCk7IFwKKyAgICBYIyNzdSA9IExPQUQ2NChzdGF0ZVsyNF0pOyBcCisgICAgWE9SZXE2NChDdSwgWCMjc3UpOyBcCisKKyNkZWZpbmUgY29weUZyb21TdGF0ZUFuZFhvcjExNTJiaXRzKFgsIHN0YXRlLCBpbnB1dCkgXAorICAgIFgjI2JhZS52MTI4ID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbIDBdKSwgTE9BRDEyOHUoaW5wdXRbIDBdKSk7IFwKKyAgICBYIyNiYSA9IFgjI2JhZS52MTI4OyBcCisgICAgWCMjYmUgPSBHRVQ2NEhJSEkoWCMjYmFlLnYxMjgsIFgjI2JhZS52MTI4KTsgXAorICAgIENhZSA9IFgjI2JhZS52MTI4OyBcCisgICAgWCMjYmlvLnYxMjggPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsgMl0pLCBMT0FEMTI4dShpbnB1dFsgMl0pKTsgXAorICAgIFgjI2JpID0gWCMjYmlvLnYxMjg7IFwKKyAgICBYIyNibyA9IEdFVDY0SElISShYIyNiaW8udjEyOCwgWCMjYmlvLnYxMjgpOyBcCisgICAgQ2lvID0gWCMjYmlvLnYxMjg7IFwKKyAgICBYIyNidSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgNF0pLCBMT0FENjQoaW5wdXRbIDRdKSk7IFwKKyAgICBDdSA9IFgjI2J1OyBcCisgICAgWCMjZ2FlLnYxMjggPSBYT1IxMjgoTE9BRDEyOHUoc3RhdGVbIDVdKSwgTE9BRDEyOHUoaW5wdXRbIDVdKSk7IFwKKyAgICBYIyNnYSA9IFgjI2dhZS52MTI4OyBcCisgICAgWCMjZ2UgPSBHRVQ2NEhJSEkoWCMjZ2FlLnYxMjgsIFgjI2dhZS52MTI4KTsgXAorICAgIFgjI2JhZ2UudjEyOCA9IEdFVDY0TE9MTyhYIyNiYSwgWCMjZ2UpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNnYWUudjEyOCk7IFwKKyAgICBYIyNnaW8udjEyOCA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsgN10pLCBMT0FEMTI4dShpbnB1dFsgN10pKTsgXAorICAgIFgjI2dpID0gWCMjZ2lvLnYxMjg7IFwKKyAgICBYIyNiZWdpLnYxMjggPSBHRVQ2NExPTE8oWCMjYmUsIFgjI2dpKTsgXAorICAgIFgjI2dvID0gR0VUNjRISUhJKFgjI2dpby52MTI4LCBYIyNnaW8udjEyOCk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI2dpby52MTI4KTsgXAorICAgIFgjI2d1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA5XSksIExPQUQ2NChpbnB1dFsgOV0pKTsgXAorICAgIFhPUmVxNjQoQ3UsIFgjI2d1KTsgXAorICAgIFgjI2thZS52MTI4ID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbMTBdKSwgTE9BRDEyOHUoaW5wdXRbMTBdKSk7IFwKKyAgICBYIyNrYSA9IFgjI2thZS52MTI4OyBcCisgICAgWCMja2UgPSBHRVQ2NEhJSEkoWCMja2FlLnYxMjgsIFgjI2thZS52MTI4KTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMja2FlLnYxMjgpOyBcCisgICAgWCMja2lvLnYxMjggPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsxMl0pLCBMT0FEMTI4dShpbnB1dFsxMl0pKTsgXAorICAgIFgjI2tpID0gWCMja2lvLnYxMjg7IFwKKyAgICBYIyNrbyA9IEdFVDY0SElISShYIyNraW8udjEyOCwgWCMja2lvLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNraW8udjEyOCk7IFwKKyAgICBYIyNrdSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsxNF0pLCBMT0FENjQoaW5wdXRbMTRdKSk7IFwKKyAgICBYT1JlcTY0KEN1LCBYIyNrdSk7IFwKKyAgICBYIyNtYWUudjEyOCA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsxNV0pLCBMT0FEMTI4dShpbnB1dFsxNV0pKTsgXAorICAgIFgjI21hID0gWCMjbWFlLnYxMjg7IFwKKyAgICBYIyNtZSA9IEdFVDY0SElISShYIyNtYWUudjEyOCwgWCMjbWFlLnYxMjgpOyBcCisgICAgWCMja2FtZS52MTI4ID0gR0VUNjRMT0xPKFgjI2thLCBYIyNtZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI21hZS52MTI4KTsgXAorICAgIFgjI21pby52MTI4ID0gWE9SMTI4KExPQUQxMjh1KHN0YXRlWzE3XSksIExPQUQ2NChpbnB1dFsxN10pKTsgXAorICAgIFgjI21pID0gWCMjbWlvLnYxMjg7IFwKKyAgICBYIyNrZW1pLnYxMjggPSBHRVQ2NExPTE8oWCMja2UsIFgjI21pKTsgXAorICAgIFgjI21vID0gR0VUNjRISUhJKFgjI21pby52MTI4LCBYIyNtaW8udjEyOCk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI21pby52MTI4KTsgXAorICAgIFgjI211ID0gTE9BRDY0KHN0YXRlWzE5XSk7IFwKKyAgICBYT1JlcTY0KEN1LCBYIyNtdSk7IFwKKyAgICBYIyNzYWUudjEyOCA9IExPQUQxMjgoc3RhdGVbMjBdKTsgXAorICAgIFgjI3NhID0gWCMjc2FlLnYxMjg7IFwKKyAgICBYIyNzZSA9IEdFVDY0SElISShYIyNzYWUudjEyOCwgWCMjc2FlLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNzYWUudjEyOCk7IFwKKyAgICBYIyNzaW8udjEyOCA9IExPQUQxMjgoc3RhdGVbMjJdKTsgXAorICAgIFgjI3NpID0gWCMjc2lvLnYxMjg7IFwKKyAgICBYIyNzbyA9IEdFVDY0SElISShYIyNzaW8udjEyOCwgWCMjc2lvLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNzaW8udjEyOCk7IFwKKyAgICBYIyNzdSA9IExPQUQ2NChzdGF0ZVsyNF0pOyBcCisgICAgWE9SZXE2NChDdSwgWCMjc3UpOyBcCisKKyNkZWZpbmUgY29weUZyb21TdGF0ZUFuZFhvcjEzNDRiaXRzKFgsIHN0YXRlLCBpbnB1dCkgXAorICAgIFgjI2JhZS52MTI4ID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbIDBdKSwgTE9BRDEyOHUoaW5wdXRbIDBdKSk7IFwKKyAgICBYIyNiYSA9IFgjI2JhZS52MTI4OyBcCisgICAgWCMjYmUgPSBHRVQ2NEhJSEkoWCMjYmFlLnYxMjgsIFgjI2JhZS52MTI4KTsgXAorICAgIENhZSA9IFgjI2JhZS52MTI4OyBcCisgICAgWCMjYmlvLnYxMjggPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsgMl0pLCBMT0FEMTI4dShpbnB1dFsgMl0pKTsgXAorICAgIFgjI2JpID0gWCMjYmlvLnYxMjg7IFwKKyAgICBYIyNibyA9IEdFVDY0SElISShYIyNiaW8udjEyOCwgWCMjYmlvLnYxMjgpOyBcCisgICAgQ2lvID0gWCMjYmlvLnYxMjg7IFwKKyAgICBYIyNidSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgNF0pLCBMT0FENjQoaW5wdXRbIDRdKSk7IFwKKyAgICBDdSA9IFgjI2J1OyBcCisgICAgWCMjZ2FlLnYxMjggPSBYT1IxMjgoTE9BRDEyOHUoc3RhdGVbIDVdKSwgTE9BRDEyOHUoaW5wdXRbIDVdKSk7IFwKKyAgICBYIyNnYSA9IFgjI2dhZS52MTI4OyBcCisgICAgWCMjZ2UgPSBHRVQ2NEhJSEkoWCMjZ2FlLnYxMjgsIFgjI2dhZS52MTI4KTsgXAorICAgIFgjI2JhZ2UudjEyOCA9IEdFVDY0TE9MTyhYIyNiYSwgWCMjZ2UpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNnYWUudjEyOCk7IFwKKyAgICBYIyNnaW8udjEyOCA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsgN10pLCBMT0FEMTI4dShpbnB1dFsgN10pKTsgXAorICAgIFgjI2dpID0gWCMjZ2lvLnYxMjg7IFwKKyAgICBYIyNiZWdpLnYxMjggPSBHRVQ2NExPTE8oWCMjYmUsIFgjI2dpKTsgXAorICAgIFgjI2dvID0gR0VUNjRISUhJKFgjI2dpby52MTI4LCBYIyNnaW8udjEyOCk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI2dpby52MTI4KTsgXAorICAgIFgjI2d1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA5XSksIExPQUQ2NChpbnB1dFsgOV0pKTsgXAorICAgIFhPUmVxNjQoQ3UsIFgjI2d1KTsgXAorICAgIFgjI2thZS52MTI4ID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbMTBdKSwgTE9BRDEyOHUoaW5wdXRbMTBdKSk7IFwKKyAgICBYIyNrYSA9IFgjI2thZS52MTI4OyBcCisgICAgWCMja2UgPSBHRVQ2NEhJSEkoWCMja2FlLnYxMjgsIFgjI2thZS52MTI4KTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMja2FlLnYxMjgpOyBcCisgICAgWCMja2lvLnYxMjggPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsxMl0pLCBMT0FEMTI4dShpbnB1dFsxMl0pKTsgXAorICAgIFgjI2tpID0gWCMja2lvLnYxMjg7IFwKKyAgICBYIyNrbyA9IEdFVDY0SElISShYIyNraW8udjEyOCwgWCMja2lvLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNraW8udjEyOCk7IFwKKyAgICBYIyNrdSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsxNF0pLCBMT0FENjQoaW5wdXRbMTRdKSk7IFwKKyAgICBYT1JlcTY0KEN1LCBYIyNrdSk7IFwKKyAgICBYIyNtYWUudjEyOCA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsxNV0pLCBMT0FEMTI4dShpbnB1dFsxNV0pKTsgXAorICAgIFgjI21hID0gWCMjbWFlLnYxMjg7IFwKKyAgICBYIyNtZSA9IEdFVDY0SElISShYIyNtYWUudjEyOCwgWCMjbWFlLnYxMjgpOyBcCisgICAgWCMja2FtZS52MTI4ID0gR0VUNjRMT0xPKFgjI2thLCBYIyNtZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI21hZS52MTI4KTsgXAorICAgIFgjI21pby52MTI4ID0gWE9SMTI4KExPQUQxMjh1KHN0YXRlWzE3XSksIExPQUQxMjh1KGlucHV0WzE3XSkpOyBcCisgICAgWCMjbWkgPSBYIyNtaW8udjEyODsgXAorICAgIFgjI2tlbWkudjEyOCA9IEdFVDY0TE9MTyhYIyNrZSwgWCMjbWkpOyBcCisgICAgWCMjbW8gPSBHRVQ2NEhJSEkoWCMjbWlvLnYxMjgsIFgjI21pby52MTI4KTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMjbWlvLnYxMjgpOyBcCisgICAgWCMjbXUgPSBYT1I2NChMT0FENjQoc3RhdGVbMTldKSwgTE9BRDY0KGlucHV0WzE5XSkpOyBcCisgICAgWE9SZXE2NChDdSwgWCMjbXUpOyBcCisgICAgWCMjc2FlLnYxMjggPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsyMF0pLCBMT0FENjQoaW5wdXRbMjBdKSk7IFwKKyAgICBYIyNzYSA9IFgjI3NhZS52MTI4OyBcCisgICAgWCMjc2UgPSBHRVQ2NEhJSEkoWCMjc2FlLnYxMjgsIFgjI3NhZS52MTI4KTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMjc2FlLnYxMjgpOyBcCisgICAgWCMjc2lvLnYxMjggPSBMT0FEMTI4KHN0YXRlWzIyXSk7IFwKKyAgICBYIyNzaSA9IFgjI3Npby52MTI4OyBcCisgICAgWCMjc28gPSBHRVQ2NEhJSEkoWCMjc2lvLnYxMjgsIFgjI3Npby52MTI4KTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMjc2lvLnYxMjgpOyBcCisgICAgWCMjc3UgPSBMT0FENjQoc3RhdGVbMjRdKTsgXAorICAgIFhPUmVxNjQoQ3UsIFgjI3N1KTsgXAorCisjZGVmaW5lIGNvcHlGcm9tU3RhdGUoWCwgc3RhdGUpIFwKKyAgICBYIyNiYWUudjEyOCA9IExPQUQxMjgoc3RhdGVbIDBdKTsgXAorICAgIFgjI2JhID0gWCMjYmFlLnYxMjg7IFwKKyAgICBYIyNiZSA9IEdFVDY0SElISShYIyNiYWUudjEyOCwgWCMjYmFlLnYxMjgpOyBcCisgICAgQ2FlID0gWCMjYmFlLnYxMjg7IFwKKyAgICBYIyNiaW8udjEyOCA9IExPQUQxMjgoc3RhdGVbIDJdKTsgXAorICAgIFgjI2JpID0gWCMjYmlvLnYxMjg7IFwKKyAgICBYIyNibyA9IEdFVDY0SElISShYIyNiaW8udjEyOCwgWCMjYmlvLnYxMjgpOyBcCisgICAgQ2lvID0gWCMjYmlvLnYxMjg7IFwKKyAgICBYIyNidSA9IExPQUQ2NChzdGF0ZVsgNF0pOyBcCisgICAgQ3UgPSBYIyNidTsgXAorICAgIFgjI2dhZS52MTI4ID0gTE9BRDEyOHUoc3RhdGVbIDVdKTsgXAorICAgIFgjI2dhID0gWCMjZ2FlLnYxMjg7IFwKKyAgICBYIyNnZSA9IEdFVDY0SElISShYIyNnYWUudjEyOCwgWCMjZ2FlLnYxMjgpOyBcCisgICAgWCMjYmFnZS52MTI4ID0gR0VUNjRMT0xPKFgjI2JhLCBYIyNnZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI2dhZS52MTI4KTsgXAorICAgIFgjI2dpby52MTI4ID0gTE9BRDEyOHUoc3RhdGVbIDddKTsgXAorICAgIFgjI2dpID0gWCMjZ2lvLnYxMjg7IFwKKyAgICBYIyNiZWdpLnYxMjggPSBHRVQ2NExPTE8oWCMjYmUsIFgjI2dpKTsgXAorICAgIFgjI2dvID0gR0VUNjRISUhJKFgjI2dpby52MTI4LCBYIyNnaW8udjEyOCk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI2dpby52MTI4KTsgXAorICAgIFgjI2d1ID0gTE9BRDY0KHN0YXRlWyA5XSk7IFwKKyAgICBYT1JlcTY0KEN1LCBYIyNndSk7IFwKKyAgICBYIyNrYWUudjEyOCA9IExPQUQxMjgoc3RhdGVbMTBdKTsgXAorICAgIFgjI2thID0gWCMja2FlLnYxMjg7IFwKKyAgICBYIyNrZSA9IEdFVDY0SElISShYIyNrYWUudjEyOCwgWCMja2FlLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNrYWUudjEyOCk7IFwKKyAgICBYIyNraW8udjEyOCA9IExPQUQxMjgoc3RhdGVbMTJdKTsgXAorICAgIFgjI2tpID0gWCMja2lvLnYxMjg7IFwKKyAgICBYIyNrbyA9IEdFVDY0SElISShYIyNraW8udjEyOCwgWCMja2lvLnYxMjgpOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNraW8udjEyOCk7IFwKKyAgICBYIyNrdSA9IExPQUQ2NChzdGF0ZVsxNF0pOyBcCisgICAgWE9SZXE2NChDdSwgWCMja3UpOyBcCisgICAgWCMjbWFlLnYxMjggPSBMT0FEMTI4dShzdGF0ZVsxNV0pOyBcCisgICAgWCMjbWEgPSBYIyNtYWUudjEyODsgXAorICAgIFgjI21lID0gR0VUNjRISUhJKFgjI21hZS52MTI4LCBYIyNtYWUudjEyOCk7IFwKKyAgICBYIyNrYW1lLnYxMjggPSBHRVQ2NExPTE8oWCMja2EsIFgjI21lKTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMjbWFlLnYxMjgpOyBcCisgICAgWCMjbWlvLnYxMjggPSBMT0FEMTI4dShzdGF0ZVsxN10pOyBcCisgICAgWCMjbWkgPSBYIyNtaW8udjEyODsgXAorICAgIFgjI2tlbWkudjEyOCA9IEdFVDY0TE9MTyhYIyNrZSwgWCMjbWkpOyBcCisgICAgWCMjbW8gPSBHRVQ2NEhJSEkoWCMjbWlvLnYxMjgsIFgjI21pby52MTI4KTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMjbWlvLnYxMjgpOyBcCisgICAgWCMjbXUgPSBMT0FENjQoc3RhdGVbMTldKTsgXAorICAgIFhPUmVxNjQoQ3UsIFgjI211KTsgXAorICAgIFgjI3NhZS52MTI4ID0gTE9BRDEyOChzdGF0ZVsyMF0pOyBcCisgICAgWCMjc2EgPSBYIyNzYWUudjEyODsgXAorICAgIFgjI3NlID0gR0VUNjRISUhJKFgjI3NhZS52MTI4LCBYIyNzYWUudjEyOCk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI3NhZS52MTI4KTsgXAorICAgIFgjI3Npby52MTI4ID0gTE9BRDEyOChzdGF0ZVsyMl0pOyBcCisgICAgWCMjc2kgPSBYIyNzaW8udjEyODsgXAorICAgIFgjI3NvID0gR0VUNjRISUhJKFgjI3Npby52MTI4LCBYIyNzaW8udjEyOCk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI3Npby52MTI4KTsgXAorICAgIFgjI3N1ID0gTE9BRDY0KHN0YXRlWzI0XSk7IFwKKyAgICBYT1JlcTY0KEN1LCBYIyNzdSk7IFwKKworI2RlZmluZSBjb3B5VG9TdGF0ZShzdGF0ZSwgWCkgXAorICAgIHN0YXRlWyAwXSA9IEEjI2JhZ2UudjY0WzBdOyBcCisgICAgc3RhdGVbIDFdID0gQSMjYmVnaS52NjRbMF07IFwKKyAgICBTVE9SRTY0KHN0YXRlWyAyXSwgWCMjYmkpOyBcCisgICAgU1RPUkU2NChzdGF0ZVsgM10sIFgjI2JvKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbIDRdLCBYIyNidSk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWyA1XSwgWCMjZ2EpOyBcCisgICAgc3RhdGVbIDZdID0gQSMjYmFnZS52NjRbMV07IFwKKyAgICBzdGF0ZVsgN10gPSBBIyNiZWdpLnY2NFsxXTsgXAorICAgIFNUT1JFNjQoc3RhdGVbIDhdLCBYIyNnbyk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWyA5XSwgWCMjZ3UpOyBcCisgICAgc3RhdGVbMTBdID0gWCMja2FtZS52NjRbMF07IFwKKyAgICBzdGF0ZVsxMV0gPSBYIyNrZW1pLnY2NFswXTsgXAorICAgIFNUT1JFNjQoc3RhdGVbMTJdLCBYIyNraSk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWzEzXSwgWCMja28pOyBcCisgICAgU1RPUkU2NChzdGF0ZVsxNF0sIFgjI2t1KTsgXAorICAgIFNUT1JFNjQoc3RhdGVbMTVdLCBYIyNtYSk7IFwKKyAgICBzdGF0ZVsxNl0gPSBYIyNrYW1lLnY2NFsxXTsgXAorICAgIHN0YXRlWzE3XSA9IFgjI2tlbWkudjY0WzFdOyBcCisgICAgU1RPUkU2NChzdGF0ZVsxOF0sIFgjI21vKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbMTldLCBYIyNtdSk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWzIwXSwgWCMjc2EpOyBcCisgICAgU1RPUkU2NChzdGF0ZVsyMV0sIFgjI3NlKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbMjJdLCBYIyNzaSk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWzIzXSwgWCMjc28pOyBcCisgICAgU1RPUkU2NChzdGF0ZVsyNF0sIFgjI3N1KTsgXAorCisjZGVmaW5lIGNvcHlTdGF0ZVZhcmlhYmxlcyhYLCBZKSBcCisgICAgWCMjYmFnZSA9IFkjI2JhZ2U7IFwKKyAgICBYIyNiZWdpID0gWSMjYmVnaTsgXAorICAgIFgjI2JpID0gWSMjYmk7IFwKKyAgICBYIyNibyA9IFkjI2JvOyBcCisgICAgWCMjYnUgPSBZIyNidTsgXAorICAgIFgjI2dhID0gWSMjZ2E7IFwKKyAgICBYIyNnbyA9IFkjI2dvOyBcCisgICAgWCMjZ3UgPSBZIyNndTsgXAorICAgIFgjI2thbWUgPSBZIyNrYW1lOyBcCisgICAgWCMja2VtaSA9IFkjI2tlbWk7IFwKKyAgICBYIyNraSA9IFkjI2tpOyBcCisgICAgWCMja28gPSBZIyNrbzsgXAorICAgIFgjI2t1ID0gWSMja3U7IFwKKyAgICBYIyNtYSA9IFkjI21hOyBcCisgICAgWCMjbW8gPSBZIyNtbzsgXAorICAgIFgjI211ID0gWSMjbXU7IFwKKyAgICBYIyNzYSA9IFkjI3NhOyBcCisgICAgWCMjc2UgPSBZIyNzZTsgXAorICAgIFgjI3NpID0gWSMjc2k7IFwKKyAgICBYIyNzbyA9IFkjI3NvOyBcCisgICAgWCMjc3UgPSBZIyNzdTsgXAorCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtc2ltZDY0Lm1hY3JvcyBiL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC1zaW1kNjQubWFjcm9zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2YTMwZTIKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtGLTE2MDAtc2ltZDY0Lm1hY3JvcwpAQCAtMCwwICsxLDUxNyBAQAorLyoKK0NvZGUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgS2VjY2FrVG9vbHMhCisKK1RoZSBLZWNjYWsgc3BvbmdlIGZ1bmN0aW9uLCBkZXNpZ25lZCBieSBHdWlkbyBCZXJ0b25pLCBKb2FuIERhZW1lbiwKK01pY2hhw6tsIFBlZXRlcnMgYW5kIEdpbGxlcyBWYW4gQXNzY2hlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgZmVlZGJhY2sgb3IKK3F1ZXN0aW9ucywgcGxlYXNlIHJlZmVyIHRvIG91ciB3ZWJzaXRlOiBodHRwOi8va2VjY2FrLm5vZWtlb24ub3JnLworCitJbXBsZW1lbnRhdGlvbiBieSB0aGUgZGVzaWduZXJzLAoraGVyZWJ5IGRlbm90ZWQgYXMgInRoZSBpbXBsZW1lbnRlciIuCisKK1RvIHRoZSBleHRlbnQgcG9zc2libGUgdW5kZXIgbGF3LCB0aGUgaW1wbGVtZW50ZXIgaGFzIHdhaXZlZCBhbGwgY29weXJpZ2h0CithbmQgcmVsYXRlZCBvciBuZWlnaGJvcmluZyByaWdodHMgdG8gdGhlIHNvdXJjZSBjb2RlIGluIHRoaXMgZmlsZS4KK2h0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKyovCisKKyNkZWZpbmUgZGVjbGFyZUFCQ0RFIFwKKyAgICBWNjQgQWJhLCBBYmUsIEFiaSwgQWJvLCBBYnU7IFwKKyAgICBWNjQgQWdhLCBBZ2UsIEFnaSwgQWdvLCBBZ3U7IFwKKyAgICBWNjQgQWthLCBBa2UsIEFraSwgQWtvLCBBa3U7IFwKKyAgICBWNjQgQW1hLCBBbWUsIEFtaSwgQW1vLCBBbXU7IFwKKyAgICBWNjQgQXNhLCBBc2UsIEFzaSwgQXNvLCBBc3U7IFwKKyAgICBWNjQgQmJhLCBCYmUsIEJiaSwgQmJvLCBCYnU7IFwKKyAgICBWNjQgQmdhLCBCZ2UsIEJnaSwgQmdvLCBCZ3U7IFwKKyAgICBWNjQgQmthLCBCa2UsIEJraSwgQmtvLCBCa3U7IFwKKyAgICBWNjQgQm1hLCBCbWUsIEJtaSwgQm1vLCBCbXU7IFwKKyAgICBWNjQgQnNhLCBCc2UsIEJzaSwgQnNvLCBCc3U7IFwKKyAgICBWNjQgQ2EsIENlLCBDaSwgQ28sIEN1OyBcCisgICAgVjY0IERhLCBEZSwgRGksIERvLCBEdTsgXAorICAgIFY2NCBFYmEsIEViZSwgRWJpLCBFYm8sIEVidTsgXAorICAgIFY2NCBFZ2EsIEVnZSwgRWdpLCBFZ28sIEVndTsgXAorICAgIFY2NCBFa2EsIEVrZSwgRWtpLCBFa28sIEVrdTsgXAorICAgIFY2NCBFbWEsIEVtZSwgRW1pLCBFbW8sIEVtdTsgXAorICAgIFY2NCBFc2EsIEVzZSwgRXNpLCBFc28sIEVzdTsgXAorCisjZGVmaW5lIHByZXBhcmVUaGV0YSBcCisgICAgQ2EgPSBYT1I2NChBYmEsIFhPUjY0KEFnYSwgWE9SNjQoQWthLCBYT1I2NChBbWEsIEFzYSkpKSk7IFwKKyAgICBDZSA9IFhPUjY0KEFiZSwgWE9SNjQoQWdlLCBYT1I2NChBa2UsIFhPUjY0KEFtZSwgQXNlKSkpKTsgXAorICAgIENpID0gWE9SNjQoQWJpLCBYT1I2NChBZ2ksIFhPUjY0KEFraSwgWE9SNjQoQW1pLCBBc2kpKSkpOyBcCisgICAgQ28gPSBYT1I2NChBYm8sIFhPUjY0KEFnbywgWE9SNjQoQWtvLCBYT1I2NChBbW8sIEFzbykpKSk7IFwKKyAgICBDdSA9IFhPUjY0KEFidSwgWE9SNjQoQWd1LCBYT1I2NChBa3UsIFhPUjY0KEFtdSwgQXN1KSkpKTsgXAorCisvKiAgLS0tIENvZGUgZm9yIHJvdW5kLCB3aXRoIHByZXBhcmUtdGhldGEgKi8KKy8qICAtLS0gNjQtYml0IGxhbmVzIG1hcHBlZCB0byA2NC1iaXQgd29yZHMgKi8KKyNkZWZpbmUgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSwgQSwgRSkgXAorICAgIERhID0gWE9SNjQoQ3UsIFJPTDY0KENlLCAxKSk7IFwKKyAgICBEZSA9IFhPUjY0KENhLCBST0w2NChDaSwgMSkpOyBcCisgICAgRGkgPSBYT1I2NChDZSwgUk9MNjQoQ28sIDEpKTsgXAorICAgIERvID0gWE9SNjQoQ2ksIFJPTDY0KEN1LCAxKSk7IFwKKyAgICBEdSA9IFhPUjY0KENvLCBST0w2NChDYSwgMSkpOyBcCitcCisgICAgWE9SZXE2NChBIyNiYSwgRGEpOyBcCisgICAgQmJhID0gQSMjYmE7IFwKKyAgICBYT1JlcTY0KEEjI2dlLCBEZSk7IFwKKyAgICBCYmUgPSBST0w2NChBIyNnZSwgNDQpOyBcCisgICAgWE9SZXE2NChBIyNraSwgRGkpOyBcCisgICAgQmJpID0gUk9MNjQoQSMja2ksIDQzKTsgXAorICAgIEUjI2JhID0gWE9SNjQoQmJhLCBBTkRudTY0KEJiZSwgQmJpKSk7IFwKKyAgICBYT1JlcTY0KEUjI2JhLCBDT05TVDY0KEtlY2Nha0YxNjAwUm91bmRDb25zdGFudHNbaV0pKTsgXAorICAgIENhID0gRSMjYmE7IFwKKyAgICBYT1JlcTY0KEEjI21vLCBEbyk7IFwKKyAgICBCYm8gPSBST0w2NChBIyNtbywgMjEpOyBcCisgICAgRSMjYmUgPSBYT1I2NChCYmUsIEFORG51NjQoQmJpLCBCYm8pKTsgXAorICAgIENlID0gRSMjYmU7IFwKKyAgICBYT1JlcTY0KEEjI3N1LCBEdSk7IFwKKyAgICBCYnUgPSBST0w2NChBIyNzdSwgMTQpOyBcCisgICAgRSMjYmkgPSBYT1I2NChCYmksIEFORG51NjQoQmJvLCBCYnUpKTsgXAorICAgIENpID0gRSMjYmk7IFwKKyAgICBFIyNibyA9IFhPUjY0KEJibywgQU5EbnU2NChCYnUsIEJiYSkpOyBcCisgICAgQ28gPSBFIyNibzsgXAorICAgIEUjI2J1ID0gWE9SNjQoQmJ1LCBBTkRudTY0KEJiYSwgQmJlKSk7IFwKKyAgICBDdSA9IEUjI2J1OyBcCitcCisgICAgWE9SZXE2NChBIyNibywgRG8pOyBcCisgICAgQmdhID0gUk9MNjQoQSMjYm8sIDI4KTsgXAorICAgIFhPUmVxNjQoQSMjZ3UsIER1KTsgXAorICAgIEJnZSA9IFJPTDY0KEEjI2d1LCAyMCk7IFwKKyAgICBYT1JlcTY0KEEjI2thLCBEYSk7IFwKKyAgICBCZ2kgPSBST0w2NChBIyNrYSwgMyk7IFwKKyAgICBFIyNnYSA9IFhPUjY0KEJnYSwgQU5EbnU2NChCZ2UsIEJnaSkpOyBcCisgICAgWE9SZXE2NChDYSwgRSMjZ2EpOyBcCisgICAgWE9SZXE2NChBIyNtZSwgRGUpOyBcCisgICAgQmdvID0gUk9MNjQoQSMjbWUsIDQ1KTsgXAorICAgIEUjI2dlID0gWE9SNjQoQmdlLCBBTkRudTY0KEJnaSwgQmdvKSk7IFwKKyAgICBYT1JlcTY0KENlLCBFIyNnZSk7IFwKKyAgICBYT1JlcTY0KEEjI3NpLCBEaSk7IFwKKyAgICBCZ3UgPSBST0w2NChBIyNzaSwgNjEpOyBcCisgICAgRSMjZ2kgPSBYT1I2NChCZ2ksIEFORG51NjQoQmdvLCBCZ3UpKTsgXAorICAgIFhPUmVxNjQoQ2ksIEUjI2dpKTsgXAorICAgIEUjI2dvID0gWE9SNjQoQmdvLCBBTkRudTY0KEJndSwgQmdhKSk7IFwKKyAgICBYT1JlcTY0KENvLCBFIyNnbyk7IFwKKyAgICBFIyNndSA9IFhPUjY0KEJndSwgQU5EbnU2NChCZ2EsIEJnZSkpOyBcCisgICAgWE9SZXE2NChDdSwgRSMjZ3UpOyBcCitcCisgICAgWE9SZXE2NChBIyNiZSwgRGUpOyBcCisgICAgQmthID0gUk9MNjQoQSMjYmUsIDEpOyBcCisgICAgWE9SZXE2NChBIyNnaSwgRGkpOyBcCisgICAgQmtlID0gUk9MNjQoQSMjZ2ksIDYpOyBcCisgICAgWE9SZXE2NChBIyNrbywgRG8pOyBcCisgICAgQmtpID0gUk9MNjQoQSMja28sIDI1KTsgXAorICAgIEUjI2thID0gWE9SNjQoQmthLCBBTkRudTY0KEJrZSwgQmtpKSk7IFwKKyAgICBYT1JlcTY0KENhLCBFIyNrYSk7IFwKKyAgICBYT1JlcTY0KEEjI211LCBEdSk7IFwKKyAgICBCa28gPSBST0w2NChBIyNtdSwgOCk7IFwKKyAgICBFIyNrZSA9IFhPUjY0KEJrZSwgQU5EbnU2NChCa2ksIEJrbykpOyBcCisgICAgWE9SZXE2NChDZSwgRSMja2UpOyBcCisgICAgWE9SZXE2NChBIyNzYSwgRGEpOyBcCisgICAgQmt1ID0gUk9MNjQoQSMjc2EsIDE4KTsgXAorICAgIEUjI2tpID0gWE9SNjQoQmtpLCBBTkRudTY0KEJrbywgQmt1KSk7IFwKKyAgICBYT1JlcTY0KENpLCBFIyNraSk7IFwKKyAgICBFIyNrbyA9IFhPUjY0KEJrbywgQU5EbnU2NChCa3UsIEJrYSkpOyBcCisgICAgWE9SZXE2NChDbywgRSMja28pOyBcCisgICAgRSMja3UgPSBYT1I2NChCa3UsIEFORG51NjQoQmthLCBCa2UpKTsgXAorICAgIFhPUmVxNjQoQ3UsIEUjI2t1KTsgXAorXAorICAgIFhPUmVxNjQoQSMjYnUsIER1KTsgXAorICAgIEJtYSA9IFJPTDY0KEEjI2J1LCAyNyk7IFwKKyAgICBYT1JlcTY0KEEjI2dhLCBEYSk7IFwKKyAgICBCbWUgPSBST0w2NChBIyNnYSwgMzYpOyBcCisgICAgWE9SZXE2NChBIyNrZSwgRGUpOyBcCisgICAgQm1pID0gUk9MNjQoQSMja2UsIDEwKTsgXAorICAgIEUjI21hID0gWE9SNjQoQm1hLCBBTkRudTY0KEJtZSwgQm1pKSk7IFwKKyAgICBYT1JlcTY0KENhLCBFIyNtYSk7IFwKKyAgICBYT1JlcTY0KEEjI21pLCBEaSk7IFwKKyAgICBCbW8gPSBST0w2NChBIyNtaSwgMTUpOyBcCisgICAgRSMjbWUgPSBYT1I2NChCbWUsIEFORG51NjQoQm1pLCBCbW8pKTsgXAorICAgIFhPUmVxNjQoQ2UsIEUjI21lKTsgXAorICAgIFhPUmVxNjQoQSMjc28sIERvKTsgXAorICAgIEJtdSA9IFJPTDY0KEEjI3NvLCA1Nik7IFwKKyAgICBFIyNtaSA9IFhPUjY0KEJtaSwgQU5EbnU2NChCbW8sIEJtdSkpOyBcCisgICAgWE9SZXE2NChDaSwgRSMjbWkpOyBcCisgICAgRSMjbW8gPSBYT1I2NChCbW8sIEFORG51NjQoQm11LCBCbWEpKTsgXAorICAgIFhPUmVxNjQoQ28sIEUjI21vKTsgXAorICAgIEUjI211ID0gWE9SNjQoQm11LCBBTkRudTY0KEJtYSwgQm1lKSk7IFwKKyAgICBYT1JlcTY0KEN1LCBFIyNtdSk7IFwKK1wKKyAgICBYT1JlcTY0KEEjI2JpLCBEaSk7IFwKKyAgICBCc2EgPSBST0w2NChBIyNiaSwgNjIpOyBcCisgICAgWE9SZXE2NChBIyNnbywgRG8pOyBcCisgICAgQnNlID0gUk9MNjQoQSMjZ28sIDU1KTsgXAorICAgIFhPUmVxNjQoQSMja3UsIER1KTsgXAorICAgIEJzaSA9IFJPTDY0KEEjI2t1LCAzOSk7IFwKKyAgICBFIyNzYSA9IFhPUjY0KEJzYSwgQU5EbnU2NChCc2UsIEJzaSkpOyBcCisgICAgWE9SZXE2NChDYSwgRSMjc2EpOyBcCisgICAgWE9SZXE2NChBIyNtYSwgRGEpOyBcCisgICAgQnNvID0gUk9MNjQoQSMjbWEsIDQxKTsgXAorICAgIEUjI3NlID0gWE9SNjQoQnNlLCBBTkRudTY0KEJzaSwgQnNvKSk7IFwKKyAgICBYT1JlcTY0KENlLCBFIyNzZSk7IFwKKyAgICBYT1JlcTY0KEEjI3NlLCBEZSk7IFwKKyAgICBCc3UgPSBST0w2NChBIyNzZSwgMik7IFwKKyAgICBFIyNzaSA9IFhPUjY0KEJzaSwgQU5EbnU2NChCc28sIEJzdSkpOyBcCisgICAgWE9SZXE2NChDaSwgRSMjc2kpOyBcCisgICAgRSMjc28gPSBYT1I2NChCc28sIEFORG51NjQoQnN1LCBCc2EpKTsgXAorICAgIFhPUmVxNjQoQ28sIEUjI3NvKTsgXAorICAgIEUjI3N1ID0gWE9SNjQoQnN1LCBBTkRudTY0KEJzYSwgQnNlKSk7IFwKKyAgICBYT1JlcTY0KEN1LCBFIyNzdSk7IFwKK1wKKworLyogIC0tLSBDb2RlIGZvciByb3VuZCAqLworLyogIC0tLSA2NC1iaXQgbGFuZXMgbWFwcGVkIHRvIDY0LWJpdCB3b3JkcyAqLworI2RlZmluZSB0aGV0YVJob1BpQ2hpSW90YShpLCBBLCBFKSBcCisgICAgRGEgPSBYT1I2NChDdSwgUk9MNjQoQ2UsIDEpKTsgXAorICAgIERlID0gWE9SNjQoQ2EsIFJPTDY0KENpLCAxKSk7IFwKKyAgICBEaSA9IFhPUjY0KENlLCBST0w2NChDbywgMSkpOyBcCisgICAgRG8gPSBYT1I2NChDaSwgUk9MNjQoQ3UsIDEpKTsgXAorICAgIER1ID0gWE9SNjQoQ28sIFJPTDY0KENhLCAxKSk7IFwKK1wKKyAgICBYT1JlcTY0KEEjI2JhLCBEYSk7IFwKKyAgICBCYmEgPSBBIyNiYTsgXAorICAgIFhPUmVxNjQoQSMjZ2UsIERlKTsgXAorICAgIEJiZSA9IFJPTDY0KEEjI2dlLCA0NCk7IFwKKyAgICBYT1JlcTY0KEEjI2tpLCBEaSk7IFwKKyAgICBCYmkgPSBST0w2NChBIyNraSwgNDMpOyBcCisgICAgRSMjYmEgPSBYT1I2NChCYmEsIEFORG51NjQoQmJlLCBCYmkpKTsgXAorICAgIFhPUmVxNjQoRSMjYmEsIENPTlNUNjQoS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c1tpXSkpOyBcCisgICAgWE9SZXE2NChBIyNtbywgRG8pOyBcCisgICAgQmJvID0gUk9MNjQoQSMjbW8sIDIxKTsgXAorICAgIEUjI2JlID0gWE9SNjQoQmJlLCBBTkRudTY0KEJiaSwgQmJvKSk7IFwKKyAgICBYT1JlcTY0KEEjI3N1LCBEdSk7IFwKKyAgICBCYnUgPSBST0w2NChBIyNzdSwgMTQpOyBcCisgICAgRSMjYmkgPSBYT1I2NChCYmksIEFORG51NjQoQmJvLCBCYnUpKTsgXAorICAgIEUjI2JvID0gWE9SNjQoQmJvLCBBTkRudTY0KEJidSwgQmJhKSk7IFwKKyAgICBFIyNidSA9IFhPUjY0KEJidSwgQU5EbnU2NChCYmEsIEJiZSkpOyBcCitcCisgICAgWE9SZXE2NChBIyNibywgRG8pOyBcCisgICAgQmdhID0gUk9MNjQoQSMjYm8sIDI4KTsgXAorICAgIFhPUmVxNjQoQSMjZ3UsIER1KTsgXAorICAgIEJnZSA9IFJPTDY0KEEjI2d1LCAyMCk7IFwKKyAgICBYT1JlcTY0KEEjI2thLCBEYSk7IFwKKyAgICBCZ2kgPSBST0w2NChBIyNrYSwgMyk7IFwKKyAgICBFIyNnYSA9IFhPUjY0KEJnYSwgQU5EbnU2NChCZ2UsIEJnaSkpOyBcCisgICAgWE9SZXE2NChBIyNtZSwgRGUpOyBcCisgICAgQmdvID0gUk9MNjQoQSMjbWUsIDQ1KTsgXAorICAgIEUjI2dlID0gWE9SNjQoQmdlLCBBTkRudTY0KEJnaSwgQmdvKSk7IFwKKyAgICBYT1JlcTY0KEEjI3NpLCBEaSk7IFwKKyAgICBCZ3UgPSBST0w2NChBIyNzaSwgNjEpOyBcCisgICAgRSMjZ2kgPSBYT1I2NChCZ2ksIEFORG51NjQoQmdvLCBCZ3UpKTsgXAorICAgIEUjI2dvID0gWE9SNjQoQmdvLCBBTkRudTY0KEJndSwgQmdhKSk7IFwKKyAgICBFIyNndSA9IFhPUjY0KEJndSwgQU5EbnU2NChCZ2EsIEJnZSkpOyBcCitcCisgICAgWE9SZXE2NChBIyNiZSwgRGUpOyBcCisgICAgQmthID0gUk9MNjQoQSMjYmUsIDEpOyBcCisgICAgWE9SZXE2NChBIyNnaSwgRGkpOyBcCisgICAgQmtlID0gUk9MNjQoQSMjZ2ksIDYpOyBcCisgICAgWE9SZXE2NChBIyNrbywgRG8pOyBcCisgICAgQmtpID0gUk9MNjQoQSMja28sIDI1KTsgXAorICAgIEUjI2thID0gWE9SNjQoQmthLCBBTkRudTY0KEJrZSwgQmtpKSk7IFwKKyAgICBYT1JlcTY0KEEjI211LCBEdSk7IFwKKyAgICBCa28gPSBST0w2NChBIyNtdSwgOCk7IFwKKyAgICBFIyNrZSA9IFhPUjY0KEJrZSwgQU5EbnU2NChCa2ksIEJrbykpOyBcCisgICAgWE9SZXE2NChBIyNzYSwgRGEpOyBcCisgICAgQmt1ID0gUk9MNjQoQSMjc2EsIDE4KTsgXAorICAgIEUjI2tpID0gWE9SNjQoQmtpLCBBTkRudTY0KEJrbywgQmt1KSk7IFwKKyAgICBFIyNrbyA9IFhPUjY0KEJrbywgQU5EbnU2NChCa3UsIEJrYSkpOyBcCisgICAgRSMja3UgPSBYT1I2NChCa3UsIEFORG51NjQoQmthLCBCa2UpKTsgXAorXAorICAgIFhPUmVxNjQoQSMjYnUsIER1KTsgXAorICAgIEJtYSA9IFJPTDY0KEEjI2J1LCAyNyk7IFwKKyAgICBYT1JlcTY0KEEjI2dhLCBEYSk7IFwKKyAgICBCbWUgPSBST0w2NChBIyNnYSwgMzYpOyBcCisgICAgWE9SZXE2NChBIyNrZSwgRGUpOyBcCisgICAgQm1pID0gUk9MNjQoQSMja2UsIDEwKTsgXAorICAgIEUjI21hID0gWE9SNjQoQm1hLCBBTkRudTY0KEJtZSwgQm1pKSk7IFwKKyAgICBYT1JlcTY0KEEjI21pLCBEaSk7IFwKKyAgICBCbW8gPSBST0w2NChBIyNtaSwgMTUpOyBcCisgICAgRSMjbWUgPSBYT1I2NChCbWUsIEFORG51NjQoQm1pLCBCbW8pKTsgXAorICAgIFhPUmVxNjQoQSMjc28sIERvKTsgXAorICAgIEJtdSA9IFJPTDY0KEEjI3NvLCA1Nik7IFwKKyAgICBFIyNtaSA9IFhPUjY0KEJtaSwgQU5EbnU2NChCbW8sIEJtdSkpOyBcCisgICAgRSMjbW8gPSBYT1I2NChCbW8sIEFORG51NjQoQm11LCBCbWEpKTsgXAorICAgIEUjI211ID0gWE9SNjQoQm11LCBBTkRudTY0KEJtYSwgQm1lKSk7IFwKK1wKKyAgICBYT1JlcTY0KEEjI2JpLCBEaSk7IFwKKyAgICBCc2EgPSBST0w2NChBIyNiaSwgNjIpOyBcCisgICAgWE9SZXE2NChBIyNnbywgRG8pOyBcCisgICAgQnNlID0gUk9MNjQoQSMjZ28sIDU1KTsgXAorICAgIFhPUmVxNjQoQSMja3UsIER1KTsgXAorICAgIEJzaSA9IFJPTDY0KEEjI2t1LCAzOSk7IFwKKyAgICBFIyNzYSA9IFhPUjY0KEJzYSwgQU5EbnU2NChCc2UsIEJzaSkpOyBcCisgICAgWE9SZXE2NChBIyNtYSwgRGEpOyBcCisgICAgQnNvID0gUk9MNjQoQSMjbWEsIDQxKTsgXAorICAgIEUjI3NlID0gWE9SNjQoQnNlLCBBTkRudTY0KEJzaSwgQnNvKSk7IFwKKyAgICBYT1JlcTY0KEEjI3NlLCBEZSk7IFwKKyAgICBCc3UgPSBST0w2NChBIyNzZSwgMik7IFwKKyAgICBFIyNzaSA9IFhPUjY0KEJzaSwgQU5EbnU2NChCc28sIEJzdSkpOyBcCisgICAgRSMjc28gPSBYT1I2NChCc28sIEFORG51NjQoQnN1LCBCc2EpKTsgXAorICAgIEUjI3N1ID0gWE9SNjQoQnN1LCBBTkRudTY0KEJzYSwgQnNlKSk7IFwKK1wKKworc3RhdGljIGNvbnN0IFVJTlQ2NCBLZWNjYWtGMTYwMFJvdW5kQ29uc3RhbnRzWzI0XSA9IHsKKyAgICAweDAwMDAwMDAwMDAwMDAwMDFVTEwsCisgICAgMHgwMDAwMDAwMDAwMDA4MDgyVUxMLAorICAgIDB4ODAwMDAwMDAwMDAwODA4YVVMTCwKKyAgICAweDgwMDAwMDAwODAwMDgwMDBVTEwsCisgICAgMHgwMDAwMDAwMDAwMDA4MDhiVUxMLAorICAgIDB4MDAwMDAwMDA4MDAwMDAwMVVMTCwKKyAgICAweDgwMDAwMDAwODAwMDgwODFVTEwsCisgICAgMHg4MDAwMDAwMDAwMDA4MDA5VUxMLAorICAgIDB4MDAwMDAwMDAwMDAwMDA4YVVMTCwKKyAgICAweDAwMDAwMDAwMDAwMDAwODhVTEwsCisgICAgMHgwMDAwMDAwMDgwMDA4MDA5VUxMLAorICAgIDB4MDAwMDAwMDA4MDAwMDAwYVVMTCwKKyAgICAweDAwMDAwMDAwODAwMDgwOGJVTEwsCisgICAgMHg4MDAwMDAwMDAwMDAwMDhiVUxMLAorICAgIDB4ODAwMDAwMDAwMDAwODA4OVVMTCwKKyAgICAweDgwMDAwMDAwMDAwMDgwMDNVTEwsCisgICAgMHg4MDAwMDAwMDAwMDA4MDAyVUxMLAorICAgIDB4ODAwMDAwMDAwMDAwMDA4MFVMTCwKKyAgICAweDAwMDAwMDAwMDAwMDgwMGFVTEwsCisgICAgMHg4MDAwMDAwMDgwMDAwMDBhVUxMLAorICAgIDB4ODAwMDAwMDA4MDAwODA4MVVMTCwKKyAgICAweDgwMDAwMDAwMDAwMDgwODBVTEwsCisgICAgMHgwMDAwMDAwMDgwMDAwMDAxVUxMLAorICAgIDB4ODAwMDAwMDA4MDAwODAwOFVMTCB9OworCisjZGVmaW5lIGNvcHlGcm9tU3RhdGVBbmRYb3I1NzZiaXRzKFgsIHN0YXRlLCBpbnB1dCkgXAorICAgIFgjI2JhID0gWE9SNjQoTE9BRDY0KHN0YXRlWyAwXSksIExPQUQ2NChpbnB1dFsgMF0pKTsgXAorICAgIFgjI2JlID0gWE9SNjQoTE9BRDY0KHN0YXRlWyAxXSksIExPQUQ2NChpbnB1dFsgMV0pKTsgXAorICAgIFgjI2JpID0gWE9SNjQoTE9BRDY0KHN0YXRlWyAyXSksIExPQUQ2NChpbnB1dFsgMl0pKTsgXAorICAgIFgjI2JvID0gWE9SNjQoTE9BRDY0KHN0YXRlWyAzXSksIExPQUQ2NChpbnB1dFsgM10pKTsgXAorICAgIFgjI2J1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA0XSksIExPQUQ2NChpbnB1dFsgNF0pKTsgXAorICAgIFgjI2dhID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA1XSksIExPQUQ2NChpbnB1dFsgNV0pKTsgXAorICAgIFgjI2dlID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA2XSksIExPQUQ2NChpbnB1dFsgNl0pKTsgXAorICAgIFgjI2dpID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA3XSksIExPQUQ2NChpbnB1dFsgN10pKTsgXAorICAgIFgjI2dvID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA4XSksIExPQUQ2NChpbnB1dFsgOF0pKTsgXAorICAgIFgjI2d1ID0gTE9BRDY0KHN0YXRlWyA5XSk7IFwKKyAgICBYIyNrYSA9IExPQUQ2NChzdGF0ZVsxMF0pOyBcCisgICAgWCMja2UgPSBMT0FENjQoc3RhdGVbMTFdKTsgXAorICAgIFgjI2tpID0gTE9BRDY0KHN0YXRlWzEyXSk7IFwKKyAgICBYIyNrbyA9IExPQUQ2NChzdGF0ZVsxM10pOyBcCisgICAgWCMja3UgPSBMT0FENjQoc3RhdGVbMTRdKTsgXAorICAgIFgjI21hID0gTE9BRDY0KHN0YXRlWzE1XSk7IFwKKyAgICBYIyNtZSA9IExPQUQ2NChzdGF0ZVsxNl0pOyBcCisgICAgWCMjbWkgPSBMT0FENjQoc3RhdGVbMTddKTsgXAorICAgIFgjI21vID0gTE9BRDY0KHN0YXRlWzE4XSk7IFwKKyAgICBYIyNtdSA9IExPQUQ2NChzdGF0ZVsxOV0pOyBcCisgICAgWCMjc2EgPSBMT0FENjQoc3RhdGVbMjBdKTsgXAorICAgIFgjI3NlID0gTE9BRDY0KHN0YXRlWzIxXSk7IFwKKyAgICBYIyNzaSA9IExPQUQ2NChzdGF0ZVsyMl0pOyBcCisgICAgWCMjc28gPSBMT0FENjQoc3RhdGVbMjNdKTsgXAorICAgIFgjI3N1ID0gTE9BRDY0KHN0YXRlWzI0XSk7IFwKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlQW5kWG9yODMyYml0cyhYLCBzdGF0ZSwgaW5wdXQpIFwKKyAgICBYIyNiYSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgMF0pLCBMT0FENjQoaW5wdXRbIDBdKSk7IFwKKyAgICBYIyNiZSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgMV0pLCBMT0FENjQoaW5wdXRbIDFdKSk7IFwKKyAgICBYIyNiaSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgMl0pLCBMT0FENjQoaW5wdXRbIDJdKSk7IFwKKyAgICBYIyNibyA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgM10pLCBMT0FENjQoaW5wdXRbIDNdKSk7IFwKKyAgICBYIyNidSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgNF0pLCBMT0FENjQoaW5wdXRbIDRdKSk7IFwKKyAgICBYIyNnYSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgNV0pLCBMT0FENjQoaW5wdXRbIDVdKSk7IFwKKyAgICBYIyNnZSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgNl0pLCBMT0FENjQoaW5wdXRbIDZdKSk7IFwKKyAgICBYIyNnaSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgN10pLCBMT0FENjQoaW5wdXRbIDddKSk7IFwKKyAgICBYIyNnbyA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgOF0pLCBMT0FENjQoaW5wdXRbIDhdKSk7IFwKKyAgICBYIyNndSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgOV0pLCBMT0FENjQoaW5wdXRbIDldKSk7IFwKKyAgICBYIyNrYSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsxMF0pLCBMT0FENjQoaW5wdXRbMTBdKSk7IFwKKyAgICBYIyNrZSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsxMV0pLCBMT0FENjQoaW5wdXRbMTFdKSk7IFwKKyAgICBYIyNraSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsxMl0pLCBMT0FENjQoaW5wdXRbMTJdKSk7IFwKKyAgICBYIyNrbyA9IExPQUQ2NChzdGF0ZVsxM10pOyBcCisgICAgWCMja3UgPSBMT0FENjQoc3RhdGVbMTRdKTsgXAorICAgIFgjI21hID0gTE9BRDY0KHN0YXRlWzE1XSk7IFwKKyAgICBYIyNtZSA9IExPQUQ2NChzdGF0ZVsxNl0pOyBcCisgICAgWCMjbWkgPSBMT0FENjQoc3RhdGVbMTddKTsgXAorICAgIFgjI21vID0gTE9BRDY0KHN0YXRlWzE4XSk7IFwKKyAgICBYIyNtdSA9IExPQUQ2NChzdGF0ZVsxOV0pOyBcCisgICAgWCMjc2EgPSBMT0FENjQoc3RhdGVbMjBdKTsgXAorICAgIFgjI3NlID0gTE9BRDY0KHN0YXRlWzIxXSk7IFwKKyAgICBYIyNzaSA9IExPQUQ2NChzdGF0ZVsyMl0pOyBcCisgICAgWCMjc28gPSBMT0FENjQoc3RhdGVbMjNdKTsgXAorICAgIFgjI3N1ID0gTE9BRDY0KHN0YXRlWzI0XSk7IFwKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlQW5kWG9yMTAyNGJpdHMoWCwgc3RhdGUsIGlucHV0KSBcCisgICAgWCMjYmEgPSBYT1I2NChMT0FENjQoc3RhdGVbIDBdKSwgTE9BRDY0KGlucHV0WyAwXSkpOyBcCisgICAgWCMjYmUgPSBYT1I2NChMT0FENjQoc3RhdGVbIDFdKSwgTE9BRDY0KGlucHV0WyAxXSkpOyBcCisgICAgWCMjYmkgPSBYT1I2NChMT0FENjQoc3RhdGVbIDJdKSwgTE9BRDY0KGlucHV0WyAyXSkpOyBcCisgICAgWCMjYm8gPSBYT1I2NChMT0FENjQoc3RhdGVbIDNdKSwgTE9BRDY0KGlucHV0WyAzXSkpOyBcCisgICAgWCMjYnUgPSBYT1I2NChMT0FENjQoc3RhdGVbIDRdKSwgTE9BRDY0KGlucHV0WyA0XSkpOyBcCisgICAgWCMjZ2EgPSBYT1I2NChMT0FENjQoc3RhdGVbIDVdKSwgTE9BRDY0KGlucHV0WyA1XSkpOyBcCisgICAgWCMjZ2UgPSBYT1I2NChMT0FENjQoc3RhdGVbIDZdKSwgTE9BRDY0KGlucHV0WyA2XSkpOyBcCisgICAgWCMjZ2kgPSBYT1I2NChMT0FENjQoc3RhdGVbIDddKSwgTE9BRDY0KGlucHV0WyA3XSkpOyBcCisgICAgWCMjZ28gPSBYT1I2NChMT0FENjQoc3RhdGVbIDhdKSwgTE9BRDY0KGlucHV0WyA4XSkpOyBcCisgICAgWCMjZ3UgPSBYT1I2NChMT0FENjQoc3RhdGVbIDldKSwgTE9BRDY0KGlucHV0WyA5XSkpOyBcCisgICAgWCMja2EgPSBYT1I2NChMT0FENjQoc3RhdGVbMTBdKSwgTE9BRDY0KGlucHV0WzEwXSkpOyBcCisgICAgWCMja2UgPSBYT1I2NChMT0FENjQoc3RhdGVbMTFdKSwgTE9BRDY0KGlucHV0WzExXSkpOyBcCisgICAgWCMja2kgPSBYT1I2NChMT0FENjQoc3RhdGVbMTJdKSwgTE9BRDY0KGlucHV0WzEyXSkpOyBcCisgICAgWCMja28gPSBYT1I2NChMT0FENjQoc3RhdGVbMTNdKSwgTE9BRDY0KGlucHV0WzEzXSkpOyBcCisgICAgWCMja3UgPSBYT1I2NChMT0FENjQoc3RhdGVbMTRdKSwgTE9BRDY0KGlucHV0WzE0XSkpOyBcCisgICAgWCMjbWEgPSBYT1I2NChMT0FENjQoc3RhdGVbMTVdKSwgTE9BRDY0KGlucHV0WzE1XSkpOyBcCisgICAgWCMjbWUgPSBMT0FENjQoc3RhdGVbMTZdKTsgXAorICAgIFgjI21pID0gTE9BRDY0KHN0YXRlWzE3XSk7IFwKKyAgICBYIyNtbyA9IExPQUQ2NChzdGF0ZVsxOF0pOyBcCisgICAgWCMjbXUgPSBMT0FENjQoc3RhdGVbMTldKTsgXAorICAgIFgjI3NhID0gTE9BRDY0KHN0YXRlWzIwXSk7IFwKKyAgICBYIyNzZSA9IExPQUQ2NChzdGF0ZVsyMV0pOyBcCisgICAgWCMjc2kgPSBMT0FENjQoc3RhdGVbMjJdKTsgXAorICAgIFgjI3NvID0gTE9BRDY0KHN0YXRlWzIzXSk7IFwKKyAgICBYIyNzdSA9IExPQUQ2NChzdGF0ZVsyNF0pOyBcCisKKyNkZWZpbmUgY29weUZyb21TdGF0ZUFuZFhvcjEwODhiaXRzKFgsIHN0YXRlLCBpbnB1dCkgXAorICAgIFgjI2JhID0gWE9SNjQoTE9BRDY0KHN0YXRlWyAwXSksIExPQUQ2NChpbnB1dFsgMF0pKTsgXAorICAgIFgjI2JlID0gWE9SNjQoTE9BRDY0KHN0YXRlWyAxXSksIExPQUQ2NChpbnB1dFsgMV0pKTsgXAorICAgIFgjI2JpID0gWE9SNjQoTE9BRDY0KHN0YXRlWyAyXSksIExPQUQ2NChpbnB1dFsgMl0pKTsgXAorICAgIFgjI2JvID0gWE9SNjQoTE9BRDY0KHN0YXRlWyAzXSksIExPQUQ2NChpbnB1dFsgM10pKTsgXAorICAgIFgjI2J1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA0XSksIExPQUQ2NChpbnB1dFsgNF0pKTsgXAorICAgIFgjI2dhID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA1XSksIExPQUQ2NChpbnB1dFsgNV0pKTsgXAorICAgIFgjI2dlID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA2XSksIExPQUQ2NChpbnB1dFsgNl0pKTsgXAorICAgIFgjI2dpID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA3XSksIExPQUQ2NChpbnB1dFsgN10pKTsgXAorICAgIFgjI2dvID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA4XSksIExPQUQ2NChpbnB1dFsgOF0pKTsgXAorICAgIFgjI2d1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA5XSksIExPQUQ2NChpbnB1dFsgOV0pKTsgXAorICAgIFgjI2thID0gWE9SNjQoTE9BRDY0KHN0YXRlWzEwXSksIExPQUQ2NChpbnB1dFsxMF0pKTsgXAorICAgIFgjI2tlID0gWE9SNjQoTE9BRDY0KHN0YXRlWzExXSksIExPQUQ2NChpbnB1dFsxMV0pKTsgXAorICAgIFgjI2tpID0gWE9SNjQoTE9BRDY0KHN0YXRlWzEyXSksIExPQUQ2NChpbnB1dFsxMl0pKTsgXAorICAgIFgjI2tvID0gWE9SNjQoTE9BRDY0KHN0YXRlWzEzXSksIExPQUQ2NChpbnB1dFsxM10pKTsgXAorICAgIFgjI2t1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWzE0XSksIExPQUQ2NChpbnB1dFsxNF0pKTsgXAorICAgIFgjI21hID0gWE9SNjQoTE9BRDY0KHN0YXRlWzE1XSksIExPQUQ2NChpbnB1dFsxNV0pKTsgXAorICAgIFgjI21lID0gWE9SNjQoTE9BRDY0KHN0YXRlWzE2XSksIExPQUQ2NChpbnB1dFsxNl0pKTsgXAorICAgIFgjI21pID0gTE9BRDY0KHN0YXRlWzE3XSk7IFwKKyAgICBYIyNtbyA9IExPQUQ2NChzdGF0ZVsxOF0pOyBcCisgICAgWCMjbXUgPSBMT0FENjQoc3RhdGVbMTldKTsgXAorICAgIFgjI3NhID0gTE9BRDY0KHN0YXRlWzIwXSk7IFwKKyAgICBYIyNzZSA9IExPQUQ2NChzdGF0ZVsyMV0pOyBcCisgICAgWCMjc2kgPSBMT0FENjQoc3RhdGVbMjJdKTsgXAorICAgIFgjI3NvID0gTE9BRDY0KHN0YXRlWzIzXSk7IFwKKyAgICBYIyNzdSA9IExPQUQ2NChzdGF0ZVsyNF0pOyBcCisKKyNkZWZpbmUgY29weUZyb21TdGF0ZUFuZFhvcjExNTJiaXRzKFgsIHN0YXRlLCBpbnB1dCkgXAorICAgIFgjI2JhID0gWE9SNjQoTE9BRDY0KHN0YXRlWyAwXSksIExPQUQ2NChpbnB1dFsgMF0pKTsgXAorICAgIFgjI2JlID0gWE9SNjQoTE9BRDY0KHN0YXRlWyAxXSksIExPQUQ2NChpbnB1dFsgMV0pKTsgXAorICAgIFgjI2JpID0gWE9SNjQoTE9BRDY0KHN0YXRlWyAyXSksIExPQUQ2NChpbnB1dFsgMl0pKTsgXAorICAgIFgjI2JvID0gWE9SNjQoTE9BRDY0KHN0YXRlWyAzXSksIExPQUQ2NChpbnB1dFsgM10pKTsgXAorICAgIFgjI2J1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA0XSksIExPQUQ2NChpbnB1dFsgNF0pKTsgXAorICAgIFgjI2dhID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA1XSksIExPQUQ2NChpbnB1dFsgNV0pKTsgXAorICAgIFgjI2dlID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA2XSksIExPQUQ2NChpbnB1dFsgNl0pKTsgXAorICAgIFgjI2dpID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA3XSksIExPQUQ2NChpbnB1dFsgN10pKTsgXAorICAgIFgjI2dvID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA4XSksIExPQUQ2NChpbnB1dFsgOF0pKTsgXAorICAgIFgjI2d1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA5XSksIExPQUQ2NChpbnB1dFsgOV0pKTsgXAorICAgIFgjI2thID0gWE9SNjQoTE9BRDY0KHN0YXRlWzEwXSksIExPQUQ2NChpbnB1dFsxMF0pKTsgXAorICAgIFgjI2tlID0gWE9SNjQoTE9BRDY0KHN0YXRlWzExXSksIExPQUQ2NChpbnB1dFsxMV0pKTsgXAorICAgIFgjI2tpID0gWE9SNjQoTE9BRDY0KHN0YXRlWzEyXSksIExPQUQ2NChpbnB1dFsxMl0pKTsgXAorICAgIFgjI2tvID0gWE9SNjQoTE9BRDY0KHN0YXRlWzEzXSksIExPQUQ2NChpbnB1dFsxM10pKTsgXAorICAgIFgjI2t1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWzE0XSksIExPQUQ2NChpbnB1dFsxNF0pKTsgXAorICAgIFgjI21hID0gWE9SNjQoTE9BRDY0KHN0YXRlWzE1XSksIExPQUQ2NChpbnB1dFsxNV0pKTsgXAorICAgIFgjI21lID0gWE9SNjQoTE9BRDY0KHN0YXRlWzE2XSksIExPQUQ2NChpbnB1dFsxNl0pKTsgXAorICAgIFgjI21pID0gWE9SNjQoTE9BRDY0KHN0YXRlWzE3XSksIExPQUQ2NChpbnB1dFsxN10pKTsgXAorICAgIFgjI21vID0gTE9BRDY0KHN0YXRlWzE4XSk7IFwKKyAgICBYIyNtdSA9IExPQUQ2NChzdGF0ZVsxOV0pOyBcCisgICAgWCMjc2EgPSBMT0FENjQoc3RhdGVbMjBdKTsgXAorICAgIFgjI3NlID0gTE9BRDY0KHN0YXRlWzIxXSk7IFwKKyAgICBYIyNzaSA9IExPQUQ2NChzdGF0ZVsyMl0pOyBcCisgICAgWCMjc28gPSBMT0FENjQoc3RhdGVbMjNdKTsgXAorICAgIFgjI3N1ID0gTE9BRDY0KHN0YXRlWzI0XSk7IFwKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlQW5kWG9yMTM0NGJpdHMoWCwgc3RhdGUsIGlucHV0KSBcCisgICAgWCMjYmEgPSBYT1I2NChMT0FENjQoc3RhdGVbIDBdKSwgTE9BRDY0KGlucHV0WyAwXSkpOyBcCisgICAgWCMjYmUgPSBYT1I2NChMT0FENjQoc3RhdGVbIDFdKSwgTE9BRDY0KGlucHV0WyAxXSkpOyBcCisgICAgWCMjYmkgPSBYT1I2NChMT0FENjQoc3RhdGVbIDJdKSwgTE9BRDY0KGlucHV0WyAyXSkpOyBcCisgICAgWCMjYm8gPSBYT1I2NChMT0FENjQoc3RhdGVbIDNdKSwgTE9BRDY0KGlucHV0WyAzXSkpOyBcCisgICAgWCMjYnUgPSBYT1I2NChMT0FENjQoc3RhdGVbIDRdKSwgTE9BRDY0KGlucHV0WyA0XSkpOyBcCisgICAgWCMjZ2EgPSBYT1I2NChMT0FENjQoc3RhdGVbIDVdKSwgTE9BRDY0KGlucHV0WyA1XSkpOyBcCisgICAgWCMjZ2UgPSBYT1I2NChMT0FENjQoc3RhdGVbIDZdKSwgTE9BRDY0KGlucHV0WyA2XSkpOyBcCisgICAgWCMjZ2kgPSBYT1I2NChMT0FENjQoc3RhdGVbIDddKSwgTE9BRDY0KGlucHV0WyA3XSkpOyBcCisgICAgWCMjZ28gPSBYT1I2NChMT0FENjQoc3RhdGVbIDhdKSwgTE9BRDY0KGlucHV0WyA4XSkpOyBcCisgICAgWCMjZ3UgPSBYT1I2NChMT0FENjQoc3RhdGVbIDldKSwgTE9BRDY0KGlucHV0WyA5XSkpOyBcCisgICAgWCMja2EgPSBYT1I2NChMT0FENjQoc3RhdGVbMTBdKSwgTE9BRDY0KGlucHV0WzEwXSkpOyBcCisgICAgWCMja2UgPSBYT1I2NChMT0FENjQoc3RhdGVbMTFdKSwgTE9BRDY0KGlucHV0WzExXSkpOyBcCisgICAgWCMja2kgPSBYT1I2NChMT0FENjQoc3RhdGVbMTJdKSwgTE9BRDY0KGlucHV0WzEyXSkpOyBcCisgICAgWCMja28gPSBYT1I2NChMT0FENjQoc3RhdGVbMTNdKSwgTE9BRDY0KGlucHV0WzEzXSkpOyBcCisgICAgWCMja3UgPSBYT1I2NChMT0FENjQoc3RhdGVbMTRdKSwgTE9BRDY0KGlucHV0WzE0XSkpOyBcCisgICAgWCMjbWEgPSBYT1I2NChMT0FENjQoc3RhdGVbMTVdKSwgTE9BRDY0KGlucHV0WzE1XSkpOyBcCisgICAgWCMjbWUgPSBYT1I2NChMT0FENjQoc3RhdGVbMTZdKSwgTE9BRDY0KGlucHV0WzE2XSkpOyBcCisgICAgWCMjbWkgPSBYT1I2NChMT0FENjQoc3RhdGVbMTddKSwgTE9BRDY0KGlucHV0WzE3XSkpOyBcCisgICAgWCMjbW8gPSBYT1I2NChMT0FENjQoc3RhdGVbMThdKSwgTE9BRDY0KGlucHV0WzE4XSkpOyBcCisgICAgWCMjbXUgPSBYT1I2NChMT0FENjQoc3RhdGVbMTldKSwgTE9BRDY0KGlucHV0WzE5XSkpOyBcCisgICAgWCMjc2EgPSBYT1I2NChMT0FENjQoc3RhdGVbMjBdKSwgTE9BRDY0KGlucHV0WzIwXSkpOyBcCisgICAgWCMjc2UgPSBMT0FENjQoc3RhdGVbMjFdKTsgXAorICAgIFgjI3NpID0gTE9BRDY0KHN0YXRlWzIyXSk7IFwKKyAgICBYIyNzbyA9IExPQUQ2NChzdGF0ZVsyM10pOyBcCisgICAgWCMjc3UgPSBMT0FENjQoc3RhdGVbMjRdKTsgXAorCisjZGVmaW5lIGNvcHlGcm9tU3RhdGUoWCwgc3RhdGUpIFwKKyAgICBYIyNiYSA9IExPQUQ2NChzdGF0ZVsgMF0pOyBcCisgICAgWCMjYmUgPSBMT0FENjQoc3RhdGVbIDFdKTsgXAorICAgIFgjI2JpID0gTE9BRDY0KHN0YXRlWyAyXSk7IFwKKyAgICBYIyNibyA9IExPQUQ2NChzdGF0ZVsgM10pOyBcCisgICAgWCMjYnUgPSBMT0FENjQoc3RhdGVbIDRdKTsgXAorICAgIFgjI2dhID0gTE9BRDY0KHN0YXRlWyA1XSk7IFwKKyAgICBYIyNnZSA9IExPQUQ2NChzdGF0ZVsgNl0pOyBcCisgICAgWCMjZ2kgPSBMT0FENjQoc3RhdGVbIDddKTsgXAorICAgIFgjI2dvID0gTE9BRDY0KHN0YXRlWyA4XSk7IFwKKyAgICBYIyNndSA9IExPQUQ2NChzdGF0ZVsgOV0pOyBcCisgICAgWCMja2EgPSBMT0FENjQoc3RhdGVbMTBdKTsgXAorICAgIFgjI2tlID0gTE9BRDY0KHN0YXRlWzExXSk7IFwKKyAgICBYIyNraSA9IExPQUQ2NChzdGF0ZVsxMl0pOyBcCisgICAgWCMja28gPSBMT0FENjQoc3RhdGVbMTNdKTsgXAorICAgIFgjI2t1ID0gTE9BRDY0KHN0YXRlWzE0XSk7IFwKKyAgICBYIyNtYSA9IExPQUQ2NChzdGF0ZVsxNV0pOyBcCisgICAgWCMjbWUgPSBMT0FENjQoc3RhdGVbMTZdKTsgXAorICAgIFgjI21pID0gTE9BRDY0KHN0YXRlWzE3XSk7IFwKKyAgICBYIyNtbyA9IExPQUQ2NChzdGF0ZVsxOF0pOyBcCisgICAgWCMjbXUgPSBMT0FENjQoc3RhdGVbMTldKTsgXAorICAgIFgjI3NhID0gTE9BRDY0KHN0YXRlWzIwXSk7IFwKKyAgICBYIyNzZSA9IExPQUQ2NChzdGF0ZVsyMV0pOyBcCisgICAgWCMjc2kgPSBMT0FENjQoc3RhdGVbMjJdKTsgXAorICAgIFgjI3NvID0gTE9BRDY0KHN0YXRlWzIzXSk7IFwKKyAgICBYIyNzdSA9IExPQUQ2NChzdGF0ZVsyNF0pOyBcCisKKyNkZWZpbmUgY29weVRvU3RhdGUoc3RhdGUsIFgpIFwKKyAgICBTVE9SRTY0KHN0YXRlWyAwXSwgWCMjYmEpOyBcCisgICAgU1RPUkU2NChzdGF0ZVsgMV0sIFgjI2JlKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbIDJdLCBYIyNiaSk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWyAzXSwgWCMjYm8pOyBcCisgICAgU1RPUkU2NChzdGF0ZVsgNF0sIFgjI2J1KTsgXAorICAgIFNUT1JFNjQoc3RhdGVbIDVdLCBYIyNnYSk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWyA2XSwgWCMjZ2UpOyBcCisgICAgU1RPUkU2NChzdGF0ZVsgN10sIFgjI2dpKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbIDhdLCBYIyNnbyk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWyA5XSwgWCMjZ3UpOyBcCisgICAgU1RPUkU2NChzdGF0ZVsxMF0sIFgjI2thKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbMTFdLCBYIyNrZSk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWzEyXSwgWCMja2kpOyBcCisgICAgU1RPUkU2NChzdGF0ZVsxM10sIFgjI2tvKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbMTRdLCBYIyNrdSk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWzE1XSwgWCMjbWEpOyBcCisgICAgU1RPUkU2NChzdGF0ZVsxNl0sIFgjI21lKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbMTddLCBYIyNtaSk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWzE4XSwgWCMjbW8pOyBcCisgICAgU1RPUkU2NChzdGF0ZVsxOV0sIFgjI211KTsgXAorICAgIFNUT1JFNjQoc3RhdGVbMjBdLCBYIyNzYSk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWzIxXSwgWCMjc2UpOyBcCisgICAgU1RPUkU2NChzdGF0ZVsyMl0sIFgjI3NpKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbMjNdLCBYIyNzbyk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWzI0XSwgWCMjc3UpOyBcCisKKyNkZWZpbmUgY29weVN0YXRlVmFyaWFibGVzKFgsIFkpIFwKKyAgICBYIyNiYSA9IFkjI2JhOyBcCisgICAgWCMjYmUgPSBZIyNiZTsgXAorICAgIFgjI2JpID0gWSMjYmk7IFwKKyAgICBYIyNibyA9IFkjI2JvOyBcCisgICAgWCMjYnUgPSBZIyNidTsgXAorICAgIFgjI2dhID0gWSMjZ2E7IFwKKyAgICBYIyNnZSA9IFkjI2dlOyBcCisgICAgWCMjZ2kgPSBZIyNnaTsgXAorICAgIFgjI2dvID0gWSMjZ287IFwKKyAgICBYIyNndSA9IFkjI2d1OyBcCisgICAgWCMja2EgPSBZIyNrYTsgXAorICAgIFgjI2tlID0gWSMja2U7IFwKKyAgICBYIyNraSA9IFkjI2tpOyBcCisgICAgWCMja28gPSBZIyNrbzsgXAorICAgIFgjI2t1ID0gWSMja3U7IFwKKyAgICBYIyNtYSA9IFkjI21hOyBcCisgICAgWCMjbWUgPSBZIyNtZTsgXAorICAgIFgjI21pID0gWSMjbWk7IFwKKyAgICBYIyNtbyA9IFkjI21vOyBcCisgICAgWCMjbXUgPSBZIyNtdTsgXAorICAgIFgjI3NhID0gWSMjc2E7IFwKKyAgICBYIyNzZSA9IFkjI3NlOyBcCisgICAgWCMjc2kgPSBZIyNzaTsgXAorICAgIFgjI3NvID0gWSMjc287IFwKKyAgICBYIyNzdSA9IFkjI3N1OyBcCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC11bnJvbGxpbmcubWFjcm9zIGIvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrRi0xNjAwLXVucm9sbGluZy5tYWNyb3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNjNjk0YwotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC11bnJvbGxpbmcubWFjcm9zCkBAIC0wLDAgKzEsMTI0IEBACisvKgorVGhlIEtlY2NhayBzcG9uZ2UgZnVuY3Rpb24sIGRlc2lnbmVkIGJ5IEd1aWRvIEJlcnRvbmksIEpvYW4gRGFlbWVuLAorTWljaGHDq2wgUGVldGVycyBhbmQgR2lsbGVzIFZhbiBBc3NjaGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBmZWVkYmFjayBvcgorcXVlc3Rpb25zLCBwbGVhc2UgcmVmZXIgdG8gb3VyIHdlYnNpdGU6IGh0dHA6Ly9rZWNjYWsubm9la2Vvbi5vcmcvCisKK0ltcGxlbWVudGF0aW9uIGJ5IHRoZSBkZXNpZ25lcnMsCitoZXJlYnkgZGVub3RlZCBhcyAidGhlIGltcGxlbWVudGVyIi4KKworVG8gdGhlIGV4dGVudCBwb3NzaWJsZSB1bmRlciBsYXcsIHRoZSBpbXBsZW1lbnRlciBoYXMgd2FpdmVkIGFsbCBjb3B5cmlnaHQKK2FuZCByZWxhdGVkIG9yIG5laWdoYm9yaW5nIHJpZ2h0cyB0byB0aGUgc291cmNlIGNvZGUgaW4gdGhpcyBmaWxlLgoraHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworKi8KKworI2lmIChVbnJvbGxpbmcgPT0gMjQpCisjZGVmaW5lIHJvdW5kcyBcCisgICAgcHJlcGFyZVRoZXRhIFwKKyAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YSggMCwgQSwgRSkgXAorICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKCAxLCBFLCBBKSBcCisgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoIDIsIEEsIEUpIFwKKyAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YSggMywgRSwgQSkgXAorICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKCA0LCBBLCBFKSBcCisgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoIDUsIEUsIEEpIFwKKyAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YSggNiwgQSwgRSkgXAorICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKCA3LCBFLCBBKSBcCisgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoIDgsIEEsIEUpIFwKKyAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YSggOSwgRSwgQSkgXAorICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKDEwLCBBLCBFKSBcCisgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoMTEsIEUsIEEpIFwKKyAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YSgxMiwgQSwgRSkgXAorICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKDEzLCBFLCBBKSBcCisgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoMTQsIEEsIEUpIFwKKyAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YSgxNSwgRSwgQSkgXAorICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKDE2LCBBLCBFKSBcCisgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoMTcsIEUsIEEpIFwKKyAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YSgxOCwgQSwgRSkgXAorICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKDE5LCBFLCBBKSBcCisgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoMjAsIEEsIEUpIFwKKyAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YSgyMSwgRSwgQSkgXAorICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKDIyLCBBLCBFKSBcCisgICAgdGhldGFSaG9QaUNoaUlvdGEoMjMsIEUsIEEpIFwKKyAgICBjb3B5VG9TdGF0ZShzdGF0ZSwgQSkKKyNlbGlmIChVbnJvbGxpbmcgPT0gMTIpCisjZGVmaW5lIHJvdW5kcyBcCisgICAgcHJlcGFyZVRoZXRhIFwKKyAgICBmb3IoaT0wOyBpPDI0OyBpKz0xMikgeyBcCisgICAgICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGkgICAsIEEsIEUpIFwKKyAgICAgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSsgMSwgRSwgQSkgXAorICAgICAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YShpKyAyLCBBLCBFKSBcCisgICAgICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGkrIDMsIEUsIEEpIFwKKyAgICAgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSsgNCwgQSwgRSkgXAorICAgICAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YShpKyA1LCBFLCBBKSBcCisgICAgICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGkrIDYsIEEsIEUpIFwKKyAgICAgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSsgNywgRSwgQSkgXAorICAgICAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YShpKyA4LCBBLCBFKSBcCisgICAgICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGkrIDksIEUsIEEpIFwKKyAgICAgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSsxMCwgQSwgRSkgXAorICAgICAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YShpKzExLCBFLCBBKSBcCisgICAgfSBcCisgICAgY29weVRvU3RhdGUoc3RhdGUsIEEpCisjZWxpZiAoVW5yb2xsaW5nID09IDgpCisjZGVmaW5lIHJvdW5kcyBcCisgICAgcHJlcGFyZVRoZXRhIFwKKyAgICBmb3IoaT0wOyBpPDI0OyBpKz04KSB7IFwKKyAgICAgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSAgLCBBLCBFKSBcCisgICAgICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGkrMSwgRSwgQSkgXAorICAgICAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YShpKzIsIEEsIEUpIFwKKyAgICAgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSszLCBFLCBBKSBcCisgICAgICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGkrNCwgQSwgRSkgXAorICAgICAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YShpKzUsIEUsIEEpIFwKKyAgICAgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSs2LCBBLCBFKSBcCisgICAgICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGkrNywgRSwgQSkgXAorICAgIH0gXAorICAgIGNvcHlUb1N0YXRlKHN0YXRlLCBBKQorI2VsaWYgKFVucm9sbGluZyA9PSA2KQorI2RlZmluZSByb3VuZHMgXAorICAgIHByZXBhcmVUaGV0YSBcCisgICAgZm9yKGk9MDsgaTwyNDsgaSs9NikgeyBcCisgICAgICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGkgICwgQSwgRSkgXAorICAgICAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YShpKzEsIEUsIEEpIFwKKyAgICAgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSsyLCBBLCBFKSBcCisgICAgICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGkrMywgRSwgQSkgXAorICAgICAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YShpKzQsIEEsIEUpIFwKKyAgICAgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSs1LCBFLCBBKSBcCisgICAgfSBcCisgICAgY29weVRvU3RhdGUoc3RhdGUsIEEpCisjZWxpZiAoVW5yb2xsaW5nID09IDQpCisjZGVmaW5lIHJvdW5kcyBcCisgICAgcHJlcGFyZVRoZXRhIFwKKyAgICBmb3IoaT0wOyBpPDI0OyBpKz00KSB7IFwKKyAgICAgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSAgLCBBLCBFKSBcCisgICAgICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGkrMSwgRSwgQSkgXAorICAgICAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YShpKzIsIEEsIEUpIFwKKyAgICAgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSszLCBFLCBBKSBcCisgICAgfSBcCisgICAgY29weVRvU3RhdGUoc3RhdGUsIEEpCisjZWxpZiAoVW5yb2xsaW5nID09IDMpCisjZGVmaW5lIHJvdW5kcyBcCisgICAgcHJlcGFyZVRoZXRhIFwKKyAgICBmb3IoaT0wOyBpPDI0OyBpKz0zKSB7IFwKKyAgICAgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSAgLCBBLCBFKSBcCisgICAgICAgIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGkrMSwgRSwgQSkgXAorICAgICAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YShpKzIsIEEsIEUpIFwKKyAgICAgICAgY29weVN0YXRlVmFyaWFibGVzKEEsIEUpIFwKKyAgICB9IFwKKyAgICBjb3B5VG9TdGF0ZShzdGF0ZSwgQSkKKyNlbGlmIChVbnJvbGxpbmcgPT0gMikKKyNkZWZpbmUgcm91bmRzIFwKKyAgICBwcmVwYXJlVGhldGEgXAorICAgIGZvcihpPTA7IGk8MjQ7IGkrPTIpIHsgXAorICAgICAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YShpICAsIEEsIEUpIFwKKyAgICAgICAgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSsxLCBFLCBBKSBcCisgICAgfSBcCisgICAgY29weVRvU3RhdGUoc3RhdGUsIEEpCisjZWxpZiAoVW5yb2xsaW5nID09IDEpCisjZGVmaW5lIHJvdW5kcyBcCisgICAgcHJlcGFyZVRoZXRhIFwKKyAgICBmb3IoaT0wOyBpPDI0OyBpKyspIHsgXAorICAgICAgICB0aGV0YVJob1BpQ2hpSW90YVByZXBhcmVUaGV0YShpICAsIEEsIEUpIFwKKyAgICAgICAgY29weVN0YXRlVmFyaWFibGVzKEEsIEUpIFwKKyAgICB9IFwKKyAgICBjb3B5VG9TdGF0ZShzdGF0ZSwgQSkKKyNlbHNlCisjZXJyb3IgIlVucm9sbGluZyBpcyBub3QgY29ycmVjdGx5IHNwZWNpZmllZCEiCisjZW5kaWYKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC14b3AubWFjcm9zIGIvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrRi0xNjAwLXhvcC5tYWNyb3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIzYzk0NgotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha0YtMTYwMC14b3AubWFjcm9zCkBAIC0wLDAgKzEsNTczIEBACisvKgorVGhlIEtlY2NhayBzcG9uZ2UgZnVuY3Rpb24sIGRlc2lnbmVkIGJ5IEd1aWRvIEJlcnRvbmksIEpvYW4gRGFlbWVuLAorTWljaGHDq2wgUGVldGVycyBhbmQgR2lsbGVzIFZhbiBBc3NjaGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBmZWVkYmFjayBvcgorcXVlc3Rpb25zLCBwbGVhc2UgcmVmZXIgdG8gb3VyIHdlYnNpdGU6IGh0dHA6Ly9rZWNjYWsubm9la2Vvbi5vcmcvCisKK0ltcGxlbWVudGF0aW9uIGJ5IHRoZSBkZXNpZ25lcnMsCitoZXJlYnkgZGVub3RlZCBhcyAidGhlIGltcGxlbWVudGVyIi4KKworVG8gdGhlIGV4dGVudCBwb3NzaWJsZSB1bmRlciBsYXcsIHRoZSBpbXBsZW1lbnRlciBoYXMgd2FpdmVkIGFsbCBjb3B5cmlnaHQKK2FuZCByZWxhdGVkIG9yIG5laWdoYm9yaW5nIHJpZ2h0cyB0byB0aGUgc291cmNlIGNvZGUgaW4gdGhpcyBmaWxlLgoraHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworKi8KKworI2RlZmluZSBkZWNsYXJlQUJDREUgXAorICAgIFYxMjggQWJhZ2UsIEFiZWdpLCBBYmlnbywgQWJvZ3UsIEFidWdhOyBcCisgICAgVjEyOCBBa2FtZSwgQWtlbWksIEFraW1vLCBBa29tdSwgQWt1bWE7IFwKKyAgICBWMTI4IEFiYWUsIEFiaW8sIEFnYWUsIEFnaW8sIEFrYWUsIEFraW8sIEFtYWUsIEFtaW87IFwKKyAgICBWNjQgQWJhLCBBYmUsIEFiaSwgQWJvLCBBYnU7IFwKKyAgICBWNjQgQWdhLCBBZ2UsIEFnaSwgQWdvLCBBZ3U7IFwKKyAgICBWNjQgQWthLCBBa2UsIEFraSwgQWtvLCBBa3U7IFwKKyAgICBWNjQgQW1hLCBBbWUsIEFtaSwgQW1vLCBBbXU7IFwKKyAgICBWMTI4IEFzYXNlLCBBc2lzbzsgXAorICAgIFY2NCBBc3U7IFwKKyAgICBWMTI4IEJiYWdlLCBCYmVnaSwgQmJpZ28sIEJib2d1LCBCYnVnYTsgXAorICAgIFYxMjggQmthbWUsIEJrZW1pLCBCa2ltbywgQmtvbXUsIEJrdW1hOyBcCisgICAgVjEyOCBCc2FzZSwgQnNlc2ksIEJzaXNvLCBCc29zdSwgQnN1c2E7IFwKKyAgICBWMTI4IENhZSwgQ2VpLCBDaW8sIENvdSwgQ3VhOyBcCisgICAgVjEyOCBEYXUsIERlYSwgRGllLCBEb2ksIER1bzsgXAorICAgIFYxMjggRHVhLCBEYWUsIERlaSwgRGlvLCBEb3U7IFwKKyAgICBWMTI4IEViYWdlLCBFYmVnaSwgRWJpZ28sIEVib2d1LCBFYnVnYTsgXAorICAgIFYxMjggRWthbWUsIEVrZW1pLCBFa2ltbywgRWtvbXUsIEVrdW1hOyBcCisgICAgVjEyOCBFc2FzZSwgRXNpc287IFwKKyAgICBWNjQgRXN1OyBcCisgICAgVjEyOCBaZXJvOworCisjZGVmaW5lIHByZXBhcmVUaGV0YQorCisjZGVmaW5lIGNvbXB1dGVEIFwKKyAgICBDdWEgPSBHRVQ2NExPTE8oQ3VhLCBDYWUpOyBcCisgICAgRGVpID0gWE9SMTI4KENhZSwgUk9MNjQ2NHNhbWUoQ2lvLCAxKSk7IFwKKyAgICBEb3UgPSBYT1IxMjgoQ2lvLCBST0w2NDY0c2FtZShDdWEsIDEpKTsgXAorICAgIENlaSA9IEdFVDY0SElMTyhDYWUsIENpbyk7IFwKKyAgICBEYWUgPSBYT1IxMjgoQ3VhLCBST0w2NDY0c2FtZShDZWksIDEpKTsgXAorICAgIERhdSA9IEdFVDY0TE9ISShEYWUsIERvdSk7IFwKKyAgICBEZWEgPSBTV0FQNjQoRGFlKTsgXAorICAgIERpZSA9IFNXQVA2NChEZWkpOyBcCisgICAgRG9pID0gR0VUNjRMT0xPKERvdSwgRGllKTsgXAorICAgIER1byA9IFNXQVA2NChEb3UpOworCisvKiAgLS0tIFRoZXRhIFJobyBQaSBDaGkgSW90YSBQcmVwYXJlLXRoZXRhICovCisvKiAgLS0tIDY0LWJpdCBsYW5lcyBtYXBwZWQgdG8gNjQtYml0IGFuZCAxMjgtYml0IHdvcmRzICovCisjZGVmaW5lIHRoZXRhUmhvUGlDaGlJb3RhUHJlcGFyZVRoZXRhKGksIEEsIEUpIFwKKyAgICBjb21wdXRlRCBcCisgICAgXAorICAgIEJiYWdlID0gWE9SMTI4KEdFVDY0TE9ISShBIyNiYWdlLCBBIyNib2d1KSwgRGF1KTsgXAorICAgIEJiYWdlID0gUk9MNjQ2NChCYmFnZSwgMCwgMjApOyBcCisgICAgQmJlZ2kgPSBYT1IxMjgoR0VUNjRISUxPKEEjI2JhZ2UsIEEjI2thbWUpLCBEZWEpOyBcCisgICAgQmJlZ2kgPSBST0w2NDY0KEJiZWdpLCA0NCwgMyk7IFwKKyAgICBCYmlnbyA9IFhPUjEyOChHRVQ2NExPSEkoQSMja2ltbywgQSMja2FtZSksIERpZSk7IFwKKyAgICBCYmlnbyA9IFJPTDY0NjQoQmJpZ28sIDQzLCA0NSk7IFwKKyAgICBFIyNiYWdlID0gWE9SMTI4KEJiYWdlLCBBTkRudTEyOChCYmVnaSwgQmJpZ28pKTsgXAorICAgIFhPUmVxMTI4KEUjI2JhZ2UsIENPTlNUNjQoS2VjY2FrRjE2MDBSb3VuZENvbnN0YW50c1tpXSkpOyBcCisgICAgQ2FlID0gRSMjYmFnZTsgXAorICAgIEJib2d1ID0gWE9SMTI4KEdFVDY0SElMTyhBIyNraW1vLCBBIyNzaXNvKSwgRG9pKTsgXAorICAgIEJib2d1ID0gUk9MNjQ2NChCYm9ndSwgMjEsIDYxKTsgXAorICAgIEUjI2JlZ2kgPSBYT1IxMjgoQmJlZ2ksIEFORG51MTI4KEJiaWdvLCBCYm9ndSkpOyBcCisgICAgQ2VpID0gRSMjYmVnaTsgXAorICAgIEJidWdhID0gWE9SMTI4KEdFVDY0TE9MTyhBIyNzdSwgQSMjYm9ndSksIER1byk7IFwKKyAgICBCYnVnYSA9IFJPTDY0NjQoQmJ1Z2EsIDE0LCAyOCk7IFwKKyAgICBFIyNiaWdvID0gWE9SMTI4KEJiaWdvLCBBTkRudTEyOChCYm9ndSwgQmJ1Z2EpKTsgXAorICAgIENpbyA9IEUjI2JpZ287IFwKKyAgICBFIyNib2d1ID0gWE9SMTI4KEJib2d1LCBBTkRudTEyOChCYnVnYSwgQmJhZ2UpKTsgXAorICAgIENvdSA9IEUjI2JvZ3U7IFwKKyAgICBFIyNidWdhID0gWE9SMTI4KEJidWdhLCBBTkRudTEyOChCYmFnZSwgQmJlZ2kpKTsgXAorICAgIEN1YSA9IEUjI2J1Z2E7IFwKK1wKKyAgICBCa2FtZSA9IFhPUjEyOChHRVQ2NExPSEkoQSMjYmVnaSwgQSMjYnVnYSksIERlYSk7IFwKKyAgICBCa2FtZSA9IFJPTDY0NjQoQmthbWUsIDEsIDM2KTsgXAorICAgIEJrZW1pID0gWE9SMTI4KEdFVDY0SElMTyhBIyNiZWdpLCBBIyNrZW1pKSwgRGllKTsgXAorICAgIEJrZW1pID0gUk9MNjQ2NChCa2VtaSwgNiwgMTApOyBcCisgICAgQmtpbW8gPSBYT1IxMjgoR0VUNjRMT0hJKEEjI2tvbXUsIEEjI2tlbWkpLCBEb2kpOyBcCisgICAgQmtpbW8gPSBST0w2NDY0KEJraW1vLCAyNSwgMTUpOyBcCisgICAgRSMja2FtZSA9IFhPUjEyOChCa2FtZSwgQU5EbnUxMjgoQmtlbWksIEJraW1vKSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIEUjI2thbWUpOyBcCisgICAgQmtvbXUgPSBYT1IxMjgoR0VUNjRISUhJKEEjI2tvbXUsIEEjI3Npc28pLCBEdW8pOyBcCisgICAgQmtvbXUgPSBST0w2NDY0KEJrb211LCA4LCA1Nik7IFwKKyAgICBFIyNrZW1pID0gWE9SMTI4KEJrZW1pLCBBTkRudTEyOChCa2ltbywgQmtvbXUpKTsgXAorICAgIFhPUmVxMTI4KENlaSwgRSMja2VtaSk7IFwKKyAgICBCa3VtYSA9IFhPUjEyOChHRVQ2NExPTE8oQSMjc2FzZSwgQSMjYnVnYSksIERhdSk7IFwKKyAgICBCa3VtYSA9IFJPTDY0NjQoQmt1bWEsIDE4LCAyNyk7IFwKKyAgICBFIyNraW1vID0gWE9SMTI4KEJraW1vLCBBTkRudTEyOChCa29tdSwgQmt1bWEpKTsgXAorICAgIFhPUmVxMTI4KENpbywgRSMja2ltbyk7IFwKKyAgICBFIyNrb211ID0gWE9SMTI4KEJrb211LCBBTkRudTEyOChCa3VtYSwgQmthbWUpKTsgXAorICAgIFhPUmVxMTI4KENvdSwgRSMja29tdSk7IFwKKyAgICBFIyNrdW1hID0gWE9SMTI4KEJrdW1hLCBBTkRudTEyOChCa2FtZSwgQmtlbWkpKTsgXAorICAgIFhPUmVxMTI4KEN1YSwgRSMja3VtYSk7IFwKK1wKKyAgICBCc2FzZSA9IFhPUjEyOChBIyNiaWdvLCBTV0FQNjQoRG9pKSk7IFwKKyAgICBCc2FzZSA9IFJPTDY0NjQoQnNhc2UsIDYyLCA1NSk7IFwKKyAgICBCc2lzbyA9IFhPUjEyOChBIyNrdW1hLCBTV0FQNjQoRGF1KSk7IFwKKyAgICBCc2lzbyA9IFJPTDY0NjQoQnNpc28sIDM5LCA0MSk7IFwKKyAgICBCc3VzYSA9IFhPUjY0KENPUFk2NEhJMkxPKEEjI3Nhc2UpLCBEZWkpOyBcCisgICAgQnN1c2EgPSBST0w2NDY0c2FtZShCc3VzYSwgMik7IFwKKyAgICBCc3VzYSA9IEdFVDY0TE9MTyhCc3VzYSwgQnNhc2UpOyBcCisgICAgQnNlc2kgPSBHRVQ2NEhJTE8oQnNhc2UsIEJzaXNvKTsgXAorICAgIEJzb3N1ID0gR0VUNjRISUxPKEJzaXNvLCBCc3VzYSk7IFwKKyAgICBFIyNzYXNlID0gWE9SMTI4KEJzYXNlLCBBTkRudTEyOChCc2VzaSwgQnNpc28pKTsgXAorICAgIFhPUmVxMTI4KENhZSwgRSMjc2FzZSk7IFwKKyAgICBFIyNzaXNvID0gWE9SMTI4KEJzaXNvLCBBTkRudTEyOChCc29zdSwgQnN1c2EpKTsgXAorICAgIFhPUmVxMTI4KENpbywgRSMjc2lzbyk7IFwKKyAgICBFIyNzdSA9IEdFVDY0TE9MTyhYT1IxMjgoQnN1c2EsIEFORG51MTI4KEJzYXNlLCBCc2VzaSkpLCBaZXJvKTsgXAorICAgIFhPUmVxMTI4KEN1YSwgRSMjc3UpOyBcCitcCisgICAgWmVybyA9IFpFUk8xMjgoKTsgXAorICAgIFhPUmVxMTI4KENhZSwgR0VUNjRISUhJKEN1YSwgWmVybykpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBHRVQ2NExPTE8oWmVybywgQ2VpKSk7IFwKKyAgICBYT1JlcTEyOChDaW8sIEdFVDY0SElISShDZWksIFplcm8pKTsgXAorICAgIFhPUmVxMTI4KENpbywgR0VUNjRMT0xPKFplcm8sIENvdSkpOyBcCisgICAgWE9SZXExMjgoQ3VhLCBHRVQ2NEhJSEkoQ291LCBaZXJvKSk7IFwKKworLyogIC0tLSBUaGV0YSBSaG8gUGkgQ2hpIElvdGEgKi8KKy8qICAtLS0gNjQtYml0IGxhbmVzIG1hcHBlZCB0byA2NC1iaXQgYW5kIDEyOC1iaXQgd29yZHMgKi8KKyNkZWZpbmUgdGhldGFSaG9QaUNoaUlvdGEoaSwgQSwgRSkgdGhldGFSaG9QaUNoaUlvdGFQcmVwYXJlVGhldGEoaSwgQSwgRSkKKworc3RhdGljIGNvbnN0IFVJTlQ2NCBLZWNjYWtGMTYwMFJvdW5kQ29uc3RhbnRzWzI0XSA9IHsKKyAgICAweDAwMDAwMDAwMDAwMDAwMDFVTEwsCisgICAgMHgwMDAwMDAwMDAwMDA4MDgyVUxMLAorICAgIDB4ODAwMDAwMDAwMDAwODA4YVVMTCwKKyAgICAweDgwMDAwMDAwODAwMDgwMDBVTEwsCisgICAgMHgwMDAwMDAwMDAwMDA4MDhiVUxMLAorICAgIDB4MDAwMDAwMDA4MDAwMDAwMVVMTCwKKyAgICAweDgwMDAwMDAwODAwMDgwODFVTEwsCisgICAgMHg4MDAwMDAwMDAwMDA4MDA5VUxMLAorICAgIDB4MDAwMDAwMDAwMDAwMDA4YVVMTCwKKyAgICAweDAwMDAwMDAwMDAwMDAwODhVTEwsCisgICAgMHgwMDAwMDAwMDgwMDA4MDA5VUxMLAorICAgIDB4MDAwMDAwMDA4MDAwMDAwYVVMTCwKKyAgICAweDAwMDAwMDAwODAwMDgwOGJVTEwsCisgICAgMHg4MDAwMDAwMDAwMDAwMDhiVUxMLAorICAgIDB4ODAwMDAwMDAwMDAwODA4OVVMTCwKKyAgICAweDgwMDAwMDAwMDAwMDgwMDNVTEwsCisgICAgMHg4MDAwMDAwMDAwMDA4MDAyVUxMLAorICAgIDB4ODAwMDAwMDAwMDAwMDA4MFVMTCwKKyAgICAweDAwMDAwMDAwMDAwMDgwMGFVTEwsCisgICAgMHg4MDAwMDAwMDgwMDAwMDBhVUxMLAorICAgIDB4ODAwMDAwMDA4MDAwODA4MVVMTCwKKyAgICAweDgwMDAwMDAwMDAwMDgwODBVTEwsCisgICAgMHgwMDAwMDAwMDgwMDAwMDAxVUxMLAorICAgIDB4ODAwMDAwMDA4MDAwODAwOFVMTCB9OworCisjZGVmaW5lIGNvcHlGcm9tU3RhdGVBbmRYb3I1NzZiaXRzKFgsIHN0YXRlLCBpbnB1dCkgXAorICAgIFgjI2JhZSA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWyAwXSksIExPQUQxMjh1KGlucHV0WyAwXSkpOyBcCisgICAgWCMjYmEgPSBYIyNiYWU7IFwKKyAgICBYIyNiZSA9IEdFVDY0SElISShYIyNiYWUsIFgjI2JhZSk7IFwKKyAgICBDYWUgPSBYIyNiYWU7IFwKKyAgICBYIyNiaW8gPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsgMl0pLCBMT0FEMTI4dShpbnB1dFsgMl0pKTsgXAorICAgIFgjI2JpID0gWCMjYmlvOyBcCisgICAgWCMjYm8gPSBHRVQ2NEhJSEkoWCMjYmlvLCBYIyNiaW8pOyBcCisgICAgQ2lvID0gWCMjYmlvOyBcCisgICAgWCMjYnUgPSBYT1I2NChMT0FENjQoc3RhdGVbIDRdKSwgTE9BRDY0KGlucHV0WyA0XSkpOyBcCisgICAgQ3VhID0gWCMjYnU7IFwKKyAgICBYIyNnYWUgPSBYT1IxMjgoTE9BRDEyOHUoc3RhdGVbIDVdKSwgTE9BRDEyOHUoaW5wdXRbIDVdKSk7IFwKKyAgICBYIyNnYSA9IFgjI2dhZTsgXAorICAgIFgjI2J1Z2EgPSBHRVQ2NExPTE8oWCMjYnUsIFgjI2dhKTsgXAorICAgIFgjI2dlID0gR0VUNjRISUhJKFgjI2dhZSwgWCMjZ2FlKTsgXAorICAgIFgjI2JhZ2UgPSBHRVQ2NExPTE8oWCMjYmEsIFgjI2dlKTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMjZ2FlKTsgXAorICAgIFgjI2dpbyA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsgN10pLCBMT0FEMTI4dShpbnB1dFsgN10pKTsgXAorICAgIFgjI2dpID0gWCMjZ2lvOyBcCisgICAgWCMjYmVnaSA9IEdFVDY0TE9MTyhYIyNiZSwgWCMjZ2kpOyBcCisgICAgWCMjZ28gPSBHRVQ2NEhJSEkoWCMjZ2lvLCBYIyNnaW8pOyBcCisgICAgWCMjYmlnbyA9IEdFVDY0TE9MTyhYIyNiaSwgWCMjZ28pOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNnaW8pOyBcCisgICAgWCMjZ3UgPSBMT0FENjQoc3RhdGVbIDldKTsgXAorICAgIFgjI2JvZ3UgPSBHRVQ2NExPTE8oWCMjYm8sIFgjI2d1KTsgXAorICAgIFhPUmVxNjQoQ3VhLCBYIyNndSk7IFwKKyAgICBYIyNrYWUgPSBMT0FEMTI4KHN0YXRlWzEwXSk7IFwKKyAgICBYIyNrYSA9IFgjI2thZTsgXAorICAgIFgjI2tlID0gR0VUNjRISUhJKFgjI2thZSwgWCMja2FlKTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMja2FlKTsgXAorICAgIFgjI2tpbyA9IExPQUQxMjgoc3RhdGVbMTJdKTsgXAorICAgIFgjI2tpID0gWCMja2lvOyBcCisgICAgWCMja28gPSBHRVQ2NEhJSEkoWCMja2lvLCBYIyNraW8pOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNraW8pOyBcCisgICAgWCMja3VtYSA9IExPQUQxMjgoc3RhdGVbMTRdKTsgXAorICAgIFhPUmVxNjQoQ3VhLCBYIyNrdW1hKTsgXAorICAgIFgjI21lID0gTE9BRDY0KHN0YXRlWzE2XSk7IFwKKyAgICBYIyNrYW1lID0gR0VUNjRMT0xPKFgjI2thLCBYIyNtZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIEdFVDY0SElISShYIyNrdW1hLCBYIyNrYW1lKSk7IFwKKyAgICBYIyNtaW8gPSBMT0FEMTI4dShzdGF0ZVsxN10pOyBcCisgICAgWCMjbWkgPSBYIyNtaW87IFwKKyAgICBYIyNrZW1pID0gR0VUNjRMT0xPKFgjI2tlLCBYIyNtaSk7IFwKKyAgICBYIyNtbyA9IEdFVDY0SElISShYIyNtaW8sIFgjI21pbyk7IFwKKyAgICBYIyNraW1vID0gR0VUNjRMT0xPKFgjI2tpLCBYIyNtbyk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI21pbyk7IFwKKyAgICBYIyNtdSA9IExPQUQ2NChzdGF0ZVsxOV0pOyBcCisgICAgWCMja29tdSA9IEdFVDY0TE9MTyhYIyNrbywgWCMjbXUpOyBcCisgICAgWE9SZXE2NChDdWEsIFgjI211KTsgXAorICAgIFgjI3Nhc2UgPSBMT0FEMTI4KHN0YXRlWzIwXSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI3Nhc2UpOyBcCisgICAgWCMjc2lzbyA9IExPQUQxMjgoc3RhdGVbMjJdKTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMjc2lzbyk7IFwKKyAgICBYIyNzdSA9IExPQUQ2NChzdGF0ZVsyNF0pOyBcCisgICAgWE9SZXE2NChDdWEsIFgjI3N1KTsgXAorCisjZGVmaW5lIGNvcHlGcm9tU3RhdGVBbmRYb3I4MzJiaXRzKFgsIHN0YXRlLCBpbnB1dCkgXAorICAgIFgjI2JhZSA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWyAwXSksIExPQUQxMjh1KGlucHV0WyAwXSkpOyBcCisgICAgWCMjYmEgPSBYIyNiYWU7IFwKKyAgICBYIyNiZSA9IEdFVDY0SElISShYIyNiYWUsIFgjI2JhZSk7IFwKKyAgICBDYWUgPSBYIyNiYWU7IFwKKyAgICBYIyNiaW8gPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsgMl0pLCBMT0FEMTI4dShpbnB1dFsgMl0pKTsgXAorICAgIFgjI2JpID0gWCMjYmlvOyBcCisgICAgWCMjYm8gPSBHRVQ2NEhJSEkoWCMjYmlvLCBYIyNiaW8pOyBcCisgICAgQ2lvID0gWCMjYmlvOyBcCisgICAgWCMjYnUgPSBYT1I2NChMT0FENjQoc3RhdGVbIDRdKSwgTE9BRDY0KGlucHV0WyA0XSkpOyBcCisgICAgQ3VhID0gWCMjYnU7IFwKKyAgICBYIyNnYWUgPSBYT1IxMjgoTE9BRDEyOHUoc3RhdGVbIDVdKSwgTE9BRDEyOHUoaW5wdXRbIDVdKSk7IFwKKyAgICBYIyNnYSA9IFgjI2dhZTsgXAorICAgIFgjI2J1Z2EgPSBHRVQ2NExPTE8oWCMjYnUsIFgjI2dhKTsgXAorICAgIFgjI2dlID0gR0VUNjRISUhJKFgjI2dhZSwgWCMjZ2FlKTsgXAorICAgIFgjI2JhZ2UgPSBHRVQ2NExPTE8oWCMjYmEsIFgjI2dlKTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMjZ2FlKTsgXAorICAgIFgjI2dpbyA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsgN10pLCBMT0FEMTI4dShpbnB1dFsgN10pKTsgXAorICAgIFgjI2dpID0gWCMjZ2lvOyBcCisgICAgWCMjYmVnaSA9IEdFVDY0TE9MTyhYIyNiZSwgWCMjZ2kpOyBcCisgICAgWCMjZ28gPSBHRVQ2NEhJSEkoWCMjZ2lvLCBYIyNnaW8pOyBcCisgICAgWCMjYmlnbyA9IEdFVDY0TE9MTyhYIyNiaSwgWCMjZ28pOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNnaW8pOyBcCisgICAgWCMjZ3UgPSBYT1I2NChMT0FENjQoc3RhdGVbIDldKSwgTE9BRDY0KGlucHV0WyA5XSkpOyBcCisgICAgWCMjYm9ndSA9IEdFVDY0TE9MTyhYIyNibywgWCMjZ3UpOyBcCisgICAgWE9SZXE2NChDdWEsIFgjI2d1KTsgXAorICAgIFgjI2thZSA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWzEwXSksIExPQUQxMjh1KGlucHV0WzEwXSkpOyBcCisgICAgWCMja2EgPSBYIyNrYWU7IFwKKyAgICBYIyNrZSA9IEdFVDY0SElISShYIyNrYWUsIFgjI2thZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI2thZSk7IFwKKyAgICBYIyNraW8gPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsxMl0pLCBMT0FENjQoaW5wdXRbMTJdKSk7IFwKKyAgICBYIyNraSA9IFgjI2tpbzsgXAorICAgIFgjI2tvID0gR0VUNjRISUhJKFgjI2tpbywgWCMja2lvKTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMja2lvKTsgXAorICAgIFgjI2t1bWEgPSBMT0FEMTI4KHN0YXRlWzE0XSk7IFwKKyAgICBYT1JlcTY0KEN1YSwgWCMja3VtYSk7IFwKKyAgICBYIyNtZSA9IExPQUQ2NChzdGF0ZVsxNl0pOyBcCisgICAgWCMja2FtZSA9IEdFVDY0TE9MTyhYIyNrYSwgWCMjbWUpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBHRVQ2NEhJSEkoWCMja3VtYSwgWCMja2FtZSkpOyBcCisgICAgWCMjbWlvID0gTE9BRDEyOHUoc3RhdGVbMTddKTsgXAorICAgIFgjI21pID0gWCMjbWlvOyBcCisgICAgWCMja2VtaSA9IEdFVDY0TE9MTyhYIyNrZSwgWCMjbWkpOyBcCisgICAgWCMjbW8gPSBHRVQ2NEhJSEkoWCMjbWlvLCBYIyNtaW8pOyBcCisgICAgWCMja2ltbyA9IEdFVDY0TE9MTyhYIyNraSwgWCMjbW8pOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNtaW8pOyBcCisgICAgWCMjbXUgPSBMT0FENjQoc3RhdGVbMTldKTsgXAorICAgIFgjI2tvbXUgPSBHRVQ2NExPTE8oWCMja28sIFgjI211KTsgXAorICAgIFhPUmVxNjQoQ3VhLCBYIyNtdSk7IFwKKyAgICBYIyNzYXNlID0gTE9BRDEyOChzdGF0ZVsyMF0pOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNzYXNlKTsgXAorICAgIFgjI3Npc28gPSBMT0FEMTI4KHN0YXRlWzIyXSk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI3Npc28pOyBcCisgICAgWCMjc3UgPSBMT0FENjQoc3RhdGVbMjRdKTsgXAorICAgIFhPUmVxNjQoQ3VhLCBYIyNzdSk7IFwKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlQW5kWG9yMTAyNGJpdHMoWCwgc3RhdGUsIGlucHV0KSBcCisgICAgWCMjYmFlID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbIDBdKSwgTE9BRDEyOHUoaW5wdXRbIDBdKSk7IFwKKyAgICBYIyNiYSA9IFgjI2JhZTsgXAorICAgIFgjI2JlID0gR0VUNjRISUhJKFgjI2JhZSwgWCMjYmFlKTsgXAorICAgIENhZSA9IFgjI2JhZTsgXAorICAgIFgjI2JpbyA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWyAyXSksIExPQUQxMjh1KGlucHV0WyAyXSkpOyBcCisgICAgWCMjYmkgPSBYIyNiaW87IFwKKyAgICBYIyNibyA9IEdFVDY0SElISShYIyNiaW8sIFgjI2Jpbyk7IFwKKyAgICBDaW8gPSBYIyNiaW87IFwKKyAgICBYIyNidSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgNF0pLCBMT0FENjQoaW5wdXRbIDRdKSk7IFwKKyAgICBDdWEgPSBYIyNidTsgXAorICAgIFgjI2dhZSA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsgNV0pLCBMT0FEMTI4dShpbnB1dFsgNV0pKTsgXAorICAgIFgjI2dhID0gWCMjZ2FlOyBcCisgICAgWCMjYnVnYSA9IEdFVDY0TE9MTyhYIyNidSwgWCMjZ2EpOyBcCisgICAgWCMjZ2UgPSBHRVQ2NEhJSEkoWCMjZ2FlLCBYIyNnYWUpOyBcCisgICAgWCMjYmFnZSA9IEdFVDY0TE9MTyhYIyNiYSwgWCMjZ2UpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNnYWUpOyBcCisgICAgWCMjZ2lvID0gWE9SMTI4KExPQUQxMjh1KHN0YXRlWyA3XSksIExPQUQxMjh1KGlucHV0WyA3XSkpOyBcCisgICAgWCMjZ2kgPSBYIyNnaW87IFwKKyAgICBYIyNiZWdpID0gR0VUNjRMT0xPKFgjI2JlLCBYIyNnaSk7IFwKKyAgICBYIyNnbyA9IEdFVDY0SElISShYIyNnaW8sIFgjI2dpbyk7IFwKKyAgICBYIyNiaWdvID0gR0VUNjRMT0xPKFgjI2JpLCBYIyNnbyk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI2dpbyk7IFwKKyAgICBYIyNndSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgOV0pLCBMT0FENjQoaW5wdXRbIDldKSk7IFwKKyAgICBYIyNib2d1ID0gR0VUNjRMT0xPKFgjI2JvLCBYIyNndSk7IFwKKyAgICBYT1JlcTY0KEN1YSwgWCMjZ3UpOyBcCisgICAgWCMja2FlID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbMTBdKSwgTE9BRDEyOHUoaW5wdXRbMTBdKSk7IFwKKyAgICBYIyNrYSA9IFgjI2thZTsgXAorICAgIFgjI2tlID0gR0VUNjRISUhJKFgjI2thZSwgWCMja2FlKTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMja2FlKTsgXAorICAgIFgjI2tpbyA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWzEyXSksIExPQUQxMjh1KGlucHV0WzEyXSkpOyBcCisgICAgWCMja2kgPSBYIyNraW87IFwKKyAgICBYIyNrbyA9IEdFVDY0SElISShYIyNraW8sIFgjI2tpbyk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI2tpbyk7IFwKKyAgICBYIyNrdW1hID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbMTRdKSwgTE9BRDEyOChpbnB1dFsxNF0pKTsgXAorICAgIFhPUmVxNjQoQ3VhLCBYIyNrdW1hKTsgXAorICAgIFgjI21lID0gTE9BRDY0KHN0YXRlWzE2XSk7IFwKKyAgICBYIyNrYW1lID0gR0VUNjRMT0xPKFgjI2thLCBYIyNtZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIEdFVDY0SElISShYIyNrdW1hLCBYIyNrYW1lKSk7IFwKKyAgICBYIyNtaW8gPSBMT0FEMTI4dShzdGF0ZVsxN10pOyBcCisgICAgWCMjbWkgPSBYIyNtaW87IFwKKyAgICBYIyNrZW1pID0gR0VUNjRMT0xPKFgjI2tlLCBYIyNtaSk7IFwKKyAgICBYIyNtbyA9IEdFVDY0SElISShYIyNtaW8sIFgjI21pbyk7IFwKKyAgICBYIyNraW1vID0gR0VUNjRMT0xPKFgjI2tpLCBYIyNtbyk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI21pbyk7IFwKKyAgICBYIyNtdSA9IExPQUQ2NChzdGF0ZVsxOV0pOyBcCisgICAgWCMja29tdSA9IEdFVDY0TE9MTyhYIyNrbywgWCMjbXUpOyBcCisgICAgWE9SZXE2NChDdWEsIFgjI211KTsgXAorICAgIFgjI3Nhc2UgPSBMT0FEMTI4KHN0YXRlWzIwXSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI3Nhc2UpOyBcCisgICAgWCMjc2lzbyA9IExPQUQxMjgoc3RhdGVbMjJdKTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMjc2lzbyk7IFwKKyAgICBYIyNzdSA9IExPQUQ2NChzdGF0ZVsyNF0pOyBcCisgICAgWE9SZXE2NChDdWEsIFgjI3N1KTsgXAorCisjZGVmaW5lIGNvcHlGcm9tU3RhdGVBbmRYb3IxMDg4Yml0cyhYLCBzdGF0ZSwgaW5wdXQpIFwKKyAgICBYIyNiYWUgPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsgMF0pLCBMT0FEMTI4dShpbnB1dFsgMF0pKTsgXAorICAgIFgjI2JhID0gWCMjYmFlOyBcCisgICAgWCMjYmUgPSBHRVQ2NEhJSEkoWCMjYmFlLCBYIyNiYWUpOyBcCisgICAgQ2FlID0gWCMjYmFlOyBcCisgICAgWCMjYmlvID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbIDJdKSwgTE9BRDEyOHUoaW5wdXRbIDJdKSk7IFwKKyAgICBYIyNiaSA9IFgjI2JpbzsgXAorICAgIFgjI2JvID0gR0VUNjRISUhJKFgjI2JpbywgWCMjYmlvKTsgXAorICAgIENpbyA9IFgjI2JpbzsgXAorICAgIFgjI2J1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA0XSksIExPQUQ2NChpbnB1dFsgNF0pKTsgXAorICAgIEN1YSA9IFgjI2J1OyBcCisgICAgWCMjZ2FlID0gWE9SMTI4KExPQUQxMjh1KHN0YXRlWyA1XSksIExPQUQxMjh1KGlucHV0WyA1XSkpOyBcCisgICAgWCMjZ2EgPSBYIyNnYWU7IFwKKyAgICBYIyNidWdhID0gR0VUNjRMT0xPKFgjI2J1LCBYIyNnYSk7IFwKKyAgICBYIyNnZSA9IEdFVDY0SElISShYIyNnYWUsIFgjI2dhZSk7IFwKKyAgICBYIyNiYWdlID0gR0VUNjRMT0xPKFgjI2JhLCBYIyNnZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI2dhZSk7IFwKKyAgICBYIyNnaW8gPSBYT1IxMjgoTE9BRDEyOHUoc3RhdGVbIDddKSwgTE9BRDEyOHUoaW5wdXRbIDddKSk7IFwKKyAgICBYIyNnaSA9IFgjI2dpbzsgXAorICAgIFgjI2JlZ2kgPSBHRVQ2NExPTE8oWCMjYmUsIFgjI2dpKTsgXAorICAgIFgjI2dvID0gR0VUNjRISUhJKFgjI2dpbywgWCMjZ2lvKTsgXAorICAgIFgjI2JpZ28gPSBHRVQ2NExPTE8oWCMjYmksIFgjI2dvKTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMjZ2lvKTsgXAorICAgIFgjI2d1ID0gWE9SNjQoTE9BRDY0KHN0YXRlWyA5XSksIExPQUQ2NChpbnB1dFsgOV0pKTsgXAorICAgIFgjI2JvZ3UgPSBHRVQ2NExPTE8oWCMjYm8sIFgjI2d1KTsgXAorICAgIFhPUmVxNjQoQ3VhLCBYIyNndSk7IFwKKyAgICBYIyNrYWUgPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsxMF0pLCBMT0FEMTI4dShpbnB1dFsxMF0pKTsgXAorICAgIFgjI2thID0gWCMja2FlOyBcCisgICAgWCMja2UgPSBHRVQ2NEhJSEkoWCMja2FlLCBYIyNrYWUpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNrYWUpOyBcCisgICAgWCMja2lvID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbMTJdKSwgTE9BRDEyOHUoaW5wdXRbMTJdKSk7IFwKKyAgICBYIyNraSA9IFgjI2tpbzsgXAorICAgIFgjI2tvID0gR0VUNjRISUhJKFgjI2tpbywgWCMja2lvKTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMja2lvKTsgXAorICAgIFgjI2t1bWEgPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsxNF0pLCBMT0FEMTI4KGlucHV0WzE0XSkpOyBcCisgICAgWE9SZXE2NChDdWEsIFgjI2t1bWEpOyBcCisgICAgWCMjbWUgPSBYT1I2NChMT0FENjQoc3RhdGVbMTZdKSwgTE9BRDY0KGlucHV0WzE2XSkpOyBcCisgICAgWCMja2FtZSA9IEdFVDY0TE9MTyhYIyNrYSwgWCMjbWUpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBHRVQ2NEhJSEkoWCMja3VtYSwgWCMja2FtZSkpOyBcCisgICAgWCMjbWlvID0gTE9BRDEyOHUoc3RhdGVbMTddKTsgXAorICAgIFgjI21pID0gWCMjbWlvOyBcCisgICAgWCMja2VtaSA9IEdFVDY0TE9MTyhYIyNrZSwgWCMjbWkpOyBcCisgICAgWCMjbW8gPSBHRVQ2NEhJSEkoWCMjbWlvLCBYIyNtaW8pOyBcCisgICAgWCMja2ltbyA9IEdFVDY0TE9MTyhYIyNraSwgWCMjbW8pOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNtaW8pOyBcCisgICAgWCMjbXUgPSBMT0FENjQoc3RhdGVbMTldKTsgXAorICAgIFgjI2tvbXUgPSBHRVQ2NExPTE8oWCMja28sIFgjI211KTsgXAorICAgIFhPUmVxNjQoQ3VhLCBYIyNtdSk7IFwKKyAgICBYIyNzYXNlID0gTE9BRDEyOChzdGF0ZVsyMF0pOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNzYXNlKTsgXAorICAgIFgjI3Npc28gPSBMT0FEMTI4KHN0YXRlWzIyXSk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI3Npc28pOyBcCisgICAgWCMjc3UgPSBMT0FENjQoc3RhdGVbMjRdKTsgXAorICAgIFhPUmVxNjQoQ3VhLCBYIyNzdSk7IFwKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlQW5kWG9yMTE1MmJpdHMoWCwgc3RhdGUsIGlucHV0KSBcCisgICAgWCMjYmFlID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbIDBdKSwgTE9BRDEyOHUoaW5wdXRbIDBdKSk7IFwKKyAgICBYIyNiYSA9IFgjI2JhZTsgXAorICAgIFgjI2JlID0gR0VUNjRISUhJKFgjI2JhZSwgWCMjYmFlKTsgXAorICAgIENhZSA9IFgjI2JhZTsgXAorICAgIFgjI2JpbyA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWyAyXSksIExPQUQxMjh1KGlucHV0WyAyXSkpOyBcCisgICAgWCMjYmkgPSBYIyNiaW87IFwKKyAgICBYIyNibyA9IEdFVDY0SElISShYIyNiaW8sIFgjI2Jpbyk7IFwKKyAgICBDaW8gPSBYIyNiaW87IFwKKyAgICBYIyNidSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgNF0pLCBMT0FENjQoaW5wdXRbIDRdKSk7IFwKKyAgICBDdWEgPSBYIyNidTsgXAorICAgIFgjI2dhZSA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsgNV0pLCBMT0FEMTI4dShpbnB1dFsgNV0pKTsgXAorICAgIFgjI2dhID0gWCMjZ2FlOyBcCisgICAgWCMjYnVnYSA9IEdFVDY0TE9MTyhYIyNidSwgWCMjZ2EpOyBcCisgICAgWCMjZ2UgPSBHRVQ2NEhJSEkoWCMjZ2FlLCBYIyNnYWUpOyBcCisgICAgWCMjYmFnZSA9IEdFVDY0TE9MTyhYIyNiYSwgWCMjZ2UpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNnYWUpOyBcCisgICAgWCMjZ2lvID0gWE9SMTI4KExPQUQxMjh1KHN0YXRlWyA3XSksIExPQUQxMjh1KGlucHV0WyA3XSkpOyBcCisgICAgWCMjZ2kgPSBYIyNnaW87IFwKKyAgICBYIyNiZWdpID0gR0VUNjRMT0xPKFgjI2JlLCBYIyNnaSk7IFwKKyAgICBYIyNnbyA9IEdFVDY0SElISShYIyNnaW8sIFgjI2dpbyk7IFwKKyAgICBYIyNiaWdvID0gR0VUNjRMT0xPKFgjI2JpLCBYIyNnbyk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI2dpbyk7IFwKKyAgICBYIyNndSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsgOV0pLCBMT0FENjQoaW5wdXRbIDldKSk7IFwKKyAgICBYIyNib2d1ID0gR0VUNjRMT0xPKFgjI2JvLCBYIyNndSk7IFwKKyAgICBYT1JlcTY0KEN1YSwgWCMjZ3UpOyBcCisgICAgWCMja2FlID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbMTBdKSwgTE9BRDEyOHUoaW5wdXRbMTBdKSk7IFwKKyAgICBYIyNrYSA9IFgjI2thZTsgXAorICAgIFgjI2tlID0gR0VUNjRISUhJKFgjI2thZSwgWCMja2FlKTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMja2FlKTsgXAorICAgIFgjI2tpbyA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWzEyXSksIExPQUQxMjh1KGlucHV0WzEyXSkpOyBcCisgICAgWCMja2kgPSBYIyNraW87IFwKKyAgICBYIyNrbyA9IEdFVDY0SElISShYIyNraW8sIFgjI2tpbyk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI2tpbyk7IFwKKyAgICBYIyNrdW1hID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbMTRdKSwgTE9BRDEyOChpbnB1dFsxNF0pKTsgXAorICAgIFhPUmVxNjQoQ3VhLCBYIyNrdW1hKTsgXAorICAgIFgjI21lID0gWE9SNjQoTE9BRDY0KHN0YXRlWzE2XSksIExPQUQ2NChpbnB1dFsxNl0pKTsgXAorICAgIFgjI2thbWUgPSBHRVQ2NExPTE8oWCMja2EsIFgjI21lKTsgXAorICAgIFhPUmVxMTI4KENhZSwgR0VUNjRISUhJKFgjI2t1bWEsIFgjI2thbWUpKTsgXAorICAgIFgjI21pbyA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsxN10pLCBMT0FENjQoaW5wdXRbMTddKSk7IFwKKyAgICBYIyNtaSA9IFgjI21pbzsgXAorICAgIFgjI2tlbWkgPSBHRVQ2NExPTE8oWCMja2UsIFgjI21pKTsgXAorICAgIFgjI21vID0gR0VUNjRISUhJKFgjI21pbywgWCMjbWlvKTsgXAorICAgIFgjI2tpbW8gPSBHRVQ2NExPTE8oWCMja2ksIFgjI21vKTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMjbWlvKTsgXAorICAgIFgjI211ID0gTE9BRDY0KHN0YXRlWzE5XSk7IFwKKyAgICBYIyNrb211ID0gR0VUNjRMT0xPKFgjI2tvLCBYIyNtdSk7IFwKKyAgICBYT1JlcTY0KEN1YSwgWCMjbXUpOyBcCisgICAgWCMjc2FzZSA9IExPQUQxMjgoc3RhdGVbMjBdKTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMjc2FzZSk7IFwKKyAgICBYIyNzaXNvID0gTE9BRDEyOChzdGF0ZVsyMl0pOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNzaXNvKTsgXAorICAgIFgjI3N1ID0gTE9BRDY0KHN0YXRlWzI0XSk7IFwKKyAgICBYT1JlcTY0KEN1YSwgWCMjc3UpOyBcCisKKyNkZWZpbmUgY29weUZyb21TdGF0ZUFuZFhvcjEzNDRiaXRzKFgsIHN0YXRlLCBpbnB1dCkgXAorICAgIFgjI2JhZSA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWyAwXSksIExPQUQxMjh1KGlucHV0WyAwXSkpOyBcCisgICAgWCMjYmEgPSBYIyNiYWU7IFwKKyAgICBYIyNiZSA9IEdFVDY0SElISShYIyNiYWUsIFgjI2JhZSk7IFwKKyAgICBDYWUgPSBYIyNiYWU7IFwKKyAgICBYIyNiaW8gPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsgMl0pLCBMT0FEMTI4dShpbnB1dFsgMl0pKTsgXAorICAgIFgjI2JpID0gWCMjYmlvOyBcCisgICAgWCMjYm8gPSBHRVQ2NEhJSEkoWCMjYmlvLCBYIyNiaW8pOyBcCisgICAgQ2lvID0gWCMjYmlvOyBcCisgICAgWCMjYnUgPSBYT1I2NChMT0FENjQoc3RhdGVbIDRdKSwgTE9BRDY0KGlucHV0WyA0XSkpOyBcCisgICAgQ3VhID0gWCMjYnU7IFwKKyAgICBYIyNnYWUgPSBYT1IxMjgoTE9BRDEyOHUoc3RhdGVbIDVdKSwgTE9BRDEyOHUoaW5wdXRbIDVdKSk7IFwKKyAgICBYIyNnYSA9IFgjI2dhZTsgXAorICAgIFgjI2J1Z2EgPSBHRVQ2NExPTE8oWCMjYnUsIFgjI2dhKTsgXAorICAgIFgjI2dlID0gR0VUNjRISUhJKFgjI2dhZSwgWCMjZ2FlKTsgXAorICAgIFgjI2JhZ2UgPSBHRVQ2NExPTE8oWCMjYmEsIFgjI2dlKTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMjZ2FlKTsgXAorICAgIFgjI2dpbyA9IFhPUjEyOChMT0FEMTI4dShzdGF0ZVsgN10pLCBMT0FEMTI4dShpbnB1dFsgN10pKTsgXAorICAgIFgjI2dpID0gWCMjZ2lvOyBcCisgICAgWCMjYmVnaSA9IEdFVDY0TE9MTyhYIyNiZSwgWCMjZ2kpOyBcCisgICAgWCMjZ28gPSBHRVQ2NEhJSEkoWCMjZ2lvLCBYIyNnaW8pOyBcCisgICAgWCMjYmlnbyA9IEdFVDY0TE9MTyhYIyNiaSwgWCMjZ28pOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNnaW8pOyBcCisgICAgWCMjZ3UgPSBYT1I2NChMT0FENjQoc3RhdGVbIDldKSwgTE9BRDY0KGlucHV0WyA5XSkpOyBcCisgICAgWCMjYm9ndSA9IEdFVDY0TE9MTyhYIyNibywgWCMjZ3UpOyBcCisgICAgWE9SZXE2NChDdWEsIFgjI2d1KTsgXAorICAgIFgjI2thZSA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWzEwXSksIExPQUQxMjh1KGlucHV0WzEwXSkpOyBcCisgICAgWCMja2EgPSBYIyNrYWU7IFwKKyAgICBYIyNrZSA9IEdFVDY0SElISShYIyNrYWUsIFgjI2thZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI2thZSk7IFwKKyAgICBYIyNraW8gPSBYT1IxMjgoTE9BRDEyOChzdGF0ZVsxMl0pLCBMT0FEMTI4dShpbnB1dFsxMl0pKTsgXAorICAgIFgjI2tpID0gWCMja2lvOyBcCisgICAgWCMja28gPSBHRVQ2NEhJSEkoWCMja2lvLCBYIyNraW8pOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNraW8pOyBcCisgICAgWCMja3VtYSA9IFhPUjEyOChMT0FEMTI4KHN0YXRlWzE0XSksIExPQUQxMjgoaW5wdXRbMTRdKSk7IFwKKyAgICBYT1JlcTY0KEN1YSwgWCMja3VtYSk7IFwKKyAgICBYIyNtZSA9IFhPUjY0KExPQUQ2NChzdGF0ZVsxNl0pLCBMT0FENjQoaW5wdXRbMTZdKSk7IFwKKyAgICBYIyNrYW1lID0gR0VUNjRMT0xPKFgjI2thLCBYIyNtZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIEdFVDY0SElISShYIyNrdW1hLCBYIyNrYW1lKSk7IFwKKyAgICBYIyNtaW8gPSBYT1IxMjgoTE9BRDEyOHUoc3RhdGVbMTddKSwgTE9BRDEyOHUoaW5wdXRbMTddKSk7IFwKKyAgICBYIyNtaSA9IFgjI21pbzsgXAorICAgIFgjI2tlbWkgPSBHRVQ2NExPTE8oWCMja2UsIFgjI21pKTsgXAorICAgIFgjI21vID0gR0VUNjRISUhJKFgjI21pbywgWCMjbWlvKTsgXAorICAgIFgjI2tpbW8gPSBHRVQ2NExPTE8oWCMja2ksIFgjI21vKTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMjbWlvKTsgXAorICAgIFgjI211ID0gWE9SNjQoTE9BRDY0KHN0YXRlWzE5XSksIExPQUQ2NChpbnB1dFsxOV0pKTsgXAorICAgIFgjI2tvbXUgPSBHRVQ2NExPTE8oWCMja28sIFgjI211KTsgXAorICAgIFhPUmVxNjQoQ3VhLCBYIyNtdSk7IFwKKyAgICBYIyNzYXNlID0gWE9SMTI4KExPQUQxMjgoc3RhdGVbMjBdKSwgTE9BRDY0KGlucHV0WzIwXSkpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNzYXNlKTsgXAorICAgIFgjI3Npc28gPSBMT0FEMTI4KHN0YXRlWzIyXSk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI3Npc28pOyBcCisgICAgWCMjc3UgPSBMT0FENjQoc3RhdGVbMjRdKTsgXAorICAgIFhPUmVxNjQoQ3VhLCBYIyNzdSk7IFwKKworI2RlZmluZSBjb3B5RnJvbVN0YXRlKFgsIHN0YXRlKSBcCisgICAgWCMjYmFlID0gTE9BRDEyOChzdGF0ZVsgMF0pOyBcCisgICAgWCMjYmEgPSBYIyNiYWU7IFwKKyAgICBYIyNiZSA9IEdFVDY0SElISShYIyNiYWUsIFgjI2JhZSk7IFwKKyAgICBDYWUgPSBYIyNiYWU7IFwKKyAgICBYIyNiaW8gPSBMT0FEMTI4KHN0YXRlWyAyXSk7IFwKKyAgICBYIyNiaSA9IFgjI2JpbzsgXAorICAgIFgjI2JvID0gR0VUNjRISUhJKFgjI2JpbywgWCMjYmlvKTsgXAorICAgIENpbyA9IFgjI2JpbzsgXAorICAgIFgjI2J1ID0gTE9BRDY0KHN0YXRlWyA0XSk7IFwKKyAgICBDdWEgPSBYIyNidTsgXAorICAgIFgjI2dhZSA9IExPQUQxMjh1KHN0YXRlWyA1XSk7IFwKKyAgICBYIyNnYSA9IFgjI2dhZTsgXAorICAgIFgjI2J1Z2EgPSBHRVQ2NExPTE8oWCMjYnUsIFgjI2dhKTsgXAorICAgIFgjI2dlID0gR0VUNjRISUhJKFgjI2dhZSwgWCMjZ2FlKTsgXAorICAgIFgjI2JhZ2UgPSBHRVQ2NExPTE8oWCMjYmEsIFgjI2dlKTsgXAorICAgIFhPUmVxMTI4KENhZSwgWCMjZ2FlKTsgXAorICAgIFgjI2dpbyA9IExPQUQxMjh1KHN0YXRlWyA3XSk7IFwKKyAgICBYIyNnaSA9IFgjI2dpbzsgXAorICAgIFgjI2JlZ2kgPSBHRVQ2NExPTE8oWCMjYmUsIFgjI2dpKTsgXAorICAgIFgjI2dvID0gR0VUNjRISUhJKFgjI2dpbywgWCMjZ2lvKTsgXAorICAgIFgjI2JpZ28gPSBHRVQ2NExPTE8oWCMjYmksIFgjI2dvKTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMjZ2lvKTsgXAorICAgIFgjI2d1ID0gTE9BRDY0KHN0YXRlWyA5XSk7IFwKKyAgICBYIyNib2d1ID0gR0VUNjRMT0xPKFgjI2JvLCBYIyNndSk7IFwKKyAgICBYT1JlcTY0KEN1YSwgWCMjZ3UpOyBcCisgICAgWCMja2FlID0gTE9BRDEyOChzdGF0ZVsxMF0pOyBcCisgICAgWCMja2EgPSBYIyNrYWU7IFwKKyAgICBYIyNrZSA9IEdFVDY0SElISShYIyNrYWUsIFgjI2thZSk7IFwKKyAgICBYT1JlcTEyOChDYWUsIFgjI2thZSk7IFwKKyAgICBYIyNraW8gPSBMT0FEMTI4KHN0YXRlWzEyXSk7IFwKKyAgICBYIyNraSA9IFgjI2tpbzsgXAorICAgIFgjI2tvID0gR0VUNjRISUhJKFgjI2tpbywgWCMja2lvKTsgXAorICAgIFhPUmVxMTI4KENpbywgWCMja2lvKTsgXAorICAgIFgjI2t1bWEgPSBMT0FEMTI4KHN0YXRlWzE0XSk7IFwKKyAgICBYT1JlcTY0KEN1YSwgWCMja3VtYSk7IFwKKyAgICBYIyNtZSA9IExPQUQ2NChzdGF0ZVsxNl0pOyBcCisgICAgWCMja2FtZSA9IEdFVDY0TE9MTyhYIyNrYSwgWCMjbWUpOyBcCisgICAgWE9SZXExMjgoQ2FlLCBHRVQ2NEhJSEkoWCMja3VtYSwgWCMja2FtZSkpOyBcCisgICAgWCMjbWlvID0gTE9BRDEyOHUoc3RhdGVbMTddKTsgXAorICAgIFgjI21pID0gWCMjbWlvOyBcCisgICAgWCMja2VtaSA9IEdFVDY0TE9MTyhYIyNrZSwgWCMjbWkpOyBcCisgICAgWCMjbW8gPSBHRVQ2NEhJSEkoWCMjbWlvLCBYIyNtaW8pOyBcCisgICAgWCMja2ltbyA9IEdFVDY0TE9MTyhYIyNraSwgWCMjbW8pOyBcCisgICAgWE9SZXExMjgoQ2lvLCBYIyNtaW8pOyBcCisgICAgWCMjbXUgPSBMT0FENjQoc3RhdGVbMTldKTsgXAorICAgIFgjI2tvbXUgPSBHRVQ2NExPTE8oWCMja28sIFgjI211KTsgXAorICAgIFhPUmVxNjQoQ3VhLCBYIyNtdSk7IFwKKyAgICBYIyNzYXNlID0gTE9BRDEyOChzdGF0ZVsyMF0pOyBcCisgICAgWE9SZXExMjgoQ2FlLCBYIyNzYXNlKTsgXAorICAgIFgjI3Npc28gPSBMT0FEMTI4KHN0YXRlWzIyXSk7IFwKKyAgICBYT1JlcTEyOChDaW8sIFgjI3Npc28pOyBcCisgICAgWCMjc3UgPSBMT0FENjQoc3RhdGVbMjRdKTsgXAorICAgIFhPUmVxNjQoQ3VhLCBYIyNzdSk7IFwKKworI2RlZmluZSBjb3B5VG9TdGF0ZShzdGF0ZSwgWCkgXAorICAgIFNUT1JFNjQoc3RhdGVbIDBdLCBYIyNiYWdlKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbIDFdLCBYIyNiZWdpKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbIDJdLCBYIyNiaWdvKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbIDNdLCBYIyNib2d1KTsgXAorICAgIFNUT1JFMTI4KHN0YXRlWyA0XSwgWCMjYnVnYSk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWyA2XSwgQ09QWTY0SEkyTE8oWCMjYmFnZSkpOyBcCisgICAgU1RPUkU2NChzdGF0ZVsgN10sIENPUFk2NEhJMkxPKFgjI2JlZ2kpKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbIDhdLCBDT1BZNjRISTJMTyhYIyNiaWdvKSk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWyA5XSwgQ09QWTY0SEkyTE8oWCMjYm9ndSkpOyBcCisgICAgU1RPUkU2NChzdGF0ZVsxMF0sIFgjI2thbWUpOyBcCisgICAgU1RPUkU2NChzdGF0ZVsxMV0sIFgjI2tlbWkpOyBcCisgICAgU1RPUkU2NChzdGF0ZVsxMl0sIFgjI2tpbW8pOyBcCisgICAgU1RPUkU2NChzdGF0ZVsxM10sIFgjI2tvbXUpOyBcCisgICAgU1RPUkUxMjgoc3RhdGVbMTRdLCBYIyNrdW1hKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbMTZdLCBDT1BZNjRISTJMTyhYIyNrYW1lKSk7IFwKKyAgICBTVE9SRTY0KHN0YXRlWzE3XSwgQ09QWTY0SEkyTE8oWCMja2VtaSkpOyBcCisgICAgU1RPUkU2NChzdGF0ZVsxOF0sIENPUFk2NEhJMkxPKFgjI2tpbW8pKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbMTldLCBDT1BZNjRISTJMTyhYIyNrb211KSk7IFwKKyAgICBTVE9SRTEyOChzdGF0ZVsyMF0sIFgjI3Nhc2UpOyBcCisgICAgU1RPUkUxMjgoc3RhdGVbMjJdLCBYIyNzaXNvKTsgXAorICAgIFNUT1JFNjQoc3RhdGVbMjRdLCBYIyNzdSk7IFwKKworI2RlZmluZSBjb3B5U3RhdGVWYXJpYWJsZXMoWCwgWSkgXAorICAgIFgjI2JhZ2UgPSBZIyNiYWdlOyBcCisgICAgWCMjYmVnaSA9IFkjI2JlZ2k7IFwKKyAgICBYIyNiaWdvID0gWSMjYmlnbzsgXAorICAgIFgjI2JvZ3UgPSBZIyNib2d1OyBcCisgICAgWCMjYnVnYSA9IFkjI2J1Z2E7IFwKKyAgICBYIyNrYW1lID0gWSMja2FtZTsgXAorICAgIFgjI2tlbWkgPSBZIyNrZW1pOyBcCisgICAgWCMja2ltbyA9IFkjI2tpbW87IFwKKyAgICBYIyNrb211ID0gWSMja29tdTsgXAorICAgIFgjI2t1bWEgPSBZIyNrdW1hOyBcCisgICAgWCMjc2FzZSA9IFkjI3Nhc2U7IFwKKyAgICBYIyNzaXNvID0gWSMjc2lzbzsgXAorICAgIFgjI3N1ID0gWSMjc3U7IFwKKwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrTklTVEludGVyZmFjZS5jIGIvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrTklTVEludGVyZmFjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5NDA4MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtOSVNUSW50ZXJmYWNlLmMKQEAgLTAsMCArMSw4MyBAQAorLyoKK1RoZSBLZWNjYWsgc3BvbmdlIGZ1bmN0aW9uLCBkZXNpZ25lZCBieSBHdWlkbyBCZXJ0b25pLCBKb2FuIERhZW1lbiwKK01pY2hhw6tsIFBlZXRlcnMgYW5kIEdpbGxlcyBWYW4gQXNzY2hlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgZmVlZGJhY2sgb3IKK3F1ZXN0aW9ucywgcGxlYXNlIHJlZmVyIHRvIG91ciB3ZWJzaXRlOiBodHRwOi8va2VjY2FrLm5vZWtlb24ub3JnLworCitJbXBsZW1lbnRhdGlvbiBieSB0aGUgZGVzaWduZXJzLAoraGVyZWJ5IGRlbm90ZWQgYXMgInRoZSBpbXBsZW1lbnRlciIuCisKK1RvIHRoZSBleHRlbnQgcG9zc2libGUgdW5kZXIgbGF3LCB0aGUgaW1wbGVtZW50ZXIgaGFzIHdhaXZlZCBhbGwgY29weXJpZ2h0CithbmQgcmVsYXRlZCBvciBuZWlnaGJvcmluZyByaWdodHMgdG8gdGhlIHNvdXJjZSBjb2RlIGluIHRoaXMgZmlsZS4KK2h0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKyovCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlICJLZWNjYWtOSVNUSW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiS2VjY2FrRi0xNjAwLWludGVyZmFjZS5oIgorCitzdGF0aWMgSGFzaFJldHVybiBJbml0KGhhc2hTdGF0ZSAqc3RhdGUsIGludCBoYXNoYml0bGVuKQoreworICAgIHN3aXRjaChoYXNoYml0bGVuKSB7CisgICAgICAgIGNhc2UgMDogLyogIERlZmF1bHQgcGFyYW1ldGVycywgYXJiaXRyYXJ5IGxlbmd0aCBvdXRwdXQgKi8KKyAgICAgICAgICAgIEluaXRTcG9uZ2UoKHNwb25nZVN0YXRlKilzdGF0ZSwgMTAyNCwgNTc2KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIyNDoKKyAgICAgICAgICAgIEluaXRTcG9uZ2UoKHNwb25nZVN0YXRlKilzdGF0ZSwgMTE1MiwgNDQ4KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI1NjoKKyAgICAgICAgICAgIEluaXRTcG9uZ2UoKHNwb25nZVN0YXRlKilzdGF0ZSwgMTA4OCwgNTEyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM4NDoKKyAgICAgICAgICAgIEluaXRTcG9uZ2UoKHNwb25nZVN0YXRlKilzdGF0ZSwgODMyLCA3NjgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTEyOgorICAgICAgICAgICAgSW5pdFNwb25nZSgoc3BvbmdlU3RhdGUqKXN0YXRlLCA1NzYsIDEwMjQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gQkFEX0hBU0hMRU47CisgICAgfQorICAgIHN0YXRlLT5maXhlZE91dHB1dExlbmd0aCA9IGhhc2hiaXRsZW47CisgICAgcmV0dXJuIFNVQ0NFU1M7Cit9CisKK3N0YXRpYyBIYXNoUmV0dXJuIFVwZGF0ZShoYXNoU3RhdGUgKnN0YXRlLCBjb25zdCBCaXRTZXF1ZW5jZSAqZGF0YSwgRGF0YUxlbmd0aCBkYXRhYml0bGVuKQoreworICAgIGlmICgoZGF0YWJpdGxlbiAlIDgpID09IDApCisgICAgICAgIHJldHVybiBBYnNvcmIoKHNwb25nZVN0YXRlKilzdGF0ZSwgZGF0YSwgZGF0YWJpdGxlbik7CisgICAgZWxzZSB7CisgICAgICAgIEhhc2hSZXR1cm4gcmV0ID0gQWJzb3JiKChzcG9uZ2VTdGF0ZSopc3RhdGUsIGRhdGEsIGRhdGFiaXRsZW4gLSAoZGF0YWJpdGxlbiAlIDgpKTsKKyAgICAgICAgaWYgKHJldCA9PSBTVUNDRVNTKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGxhc3RCeXRlOyAKKyAgICAgICAgICAgIC8qICBBbGlnbiB0aGUgbGFzdCBwYXJ0aWFsIGJ5dGUgdG8gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgKi8KKyAgICAgICAgICAgIGxhc3RCeXRlID0gZGF0YVtkYXRhYml0bGVuLzhdID4+ICg4IC0gKGRhdGFiaXRsZW4gJSA4KSk7CisgICAgICAgICAgICByZXR1cm4gQWJzb3JiKChzcG9uZ2VTdGF0ZSopc3RhdGUsICZsYXN0Qnl0ZSwgZGF0YWJpdGxlbiAlIDgpOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorfQorCitzdGF0aWMgSGFzaFJldHVybiBGaW5hbChoYXNoU3RhdGUgKnN0YXRlLCBCaXRTZXF1ZW5jZSAqaGFzaHZhbCkKK3sKKyAgICByZXR1cm4gU3F1ZWV6ZShzdGF0ZSwgaGFzaHZhbCwgc3RhdGUtPmZpeGVkT3V0cHV0TGVuZ3RoKTsKK30KKworLyoKK3N0YXRpYyBIYXNoUmV0dXJuIEhhc2goaW50IGhhc2hiaXRsZW4sIGNvbnN0IEJpdFNlcXVlbmNlICpkYXRhLCBEYXRhTGVuZ3RoIGRhdGFiaXRsZW4sIEJpdFNlcXVlbmNlICpoYXNodmFsKQoreworICAgIGhhc2hTdGF0ZSBzdGF0ZTsKKyAgICBIYXNoUmV0dXJuIHJlc3VsdDsKKworICAgIGlmICgoaGFzaGJpdGxlbiAhPSAyMjQpICYmIChoYXNoYml0bGVuICE9IDI1NikgJiYgKGhhc2hiaXRsZW4gIT0gMzg0KSAmJiAoaGFzaGJpdGxlbiAhPSA1MTIpKQorICAgICAgICByZXR1cm4gQkFEX0hBU0hMRU47ICogIE9ubHkgdGhlIGZvdXIgZml4ZWQgb3V0cHV0IGxlbmd0aHMgYXZhaWxhYmxlIHRocm91Z2ggdGhpcyBBUEkgKgorICAgIHJlc3VsdCA9IEluaXQoJnN0YXRlLCBoYXNoYml0bGVuKTsKKyAgICBpZiAocmVzdWx0ICE9IFNVQ0NFU1MpCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgcmVzdWx0ID0gVXBkYXRlKCZzdGF0ZSwgZGF0YSwgZGF0YWJpdGxlbik7CisgICAgaWYgKHJlc3VsdCAhPSBTVUNDRVNTKQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIHJlc3VsdCA9IEZpbmFsKCZzdGF0ZSwgaGFzaHZhbCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKyovCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha05JU1RJbnRlcmZhY2UuaCBiL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha05JU1RJbnRlcmZhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDQ0MzFiCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrTklTVEludGVyZmFjZS5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCitUaGUgS2VjY2FrIHNwb25nZSBmdW5jdGlvbiwgZGVzaWduZWQgYnkgR3VpZG8gQmVydG9uaSwgSm9hbiBEYWVtZW4sCitNaWNoYcOrbCBQZWV0ZXJzIGFuZCBHaWxsZXMgVmFuIEFzc2NoZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIGZlZWRiYWNrIG9yCitxdWVzdGlvbnMsIHBsZWFzZSByZWZlciB0byBvdXIgd2Vic2l0ZTogaHR0cDovL2tlY2Nhay5ub2VrZW9uLm9yZy8KKworSW1wbGVtZW50YXRpb24gYnkgdGhlIGRlc2lnbmVycywKK2hlcmVieSBkZW5vdGVkIGFzICJ0aGUgaW1wbGVtZW50ZXIiLgorCitUbyB0aGUgZXh0ZW50IHBvc3NpYmxlIHVuZGVyIGxhdywgdGhlIGltcGxlbWVudGVyIGhhcyB3YWl2ZWQgYWxsIGNvcHlyaWdodAorYW5kIHJlbGF0ZWQgb3IgbmVpZ2hib3JpbmcgcmlnaHRzIHRvIHRoZSBzb3VyY2UgY29kZSBpbiB0aGlzIGZpbGUuCitodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisqLworCisjaWZuZGVmIF9LZWNjYWtOSVNUSW50ZXJmYWNlX2hfCisjZGVmaW5lIF9LZWNjYWtOSVNUSW50ZXJmYWNlX2hfCisKKyNpbmNsdWRlICJLZWNjYWtTcG9uZ2UuaCIKKwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIEJpdFNlcXVlbmNlOwordHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgRGF0YUxlbmd0aDsKK3R5cGVkZWYgZW51bSB7IFNVQ0NFU1MgPSAwLCBGQUlMID0gMSwgQkFEX0hBU0hMRU4gPSAyIH0gSGFzaFJldHVybjsKKwordHlwZWRlZiBzcG9uZ2VTdGF0ZSBoYXNoU3RhdGU7CisKKy8qKgorICAqIEZ1bmN0aW9uIHRvIGluaXRpYWxpemUgdGhlIHN0YXRlIG9mIHRoZSBLZWNjYWtbciwgY10gc3BvbmdlIGZ1bmN0aW9uLgorICAqIFRoZSByYXRlIHIgYW5kIGNhcGFjaXR5IGMgdmFsdWVzIGFyZSBkZXRlcm1pbmVkIGZyb20gQGEgaGFzaGJpdGxlbi4KKyAgKiBAcGFyYW0gIHN0YXRlICAgICAgIFBvaW50ZXIgdG8gdGhlIHN0YXRlIG9mIHRoZSBzcG9uZ2UgZnVuY3Rpb24gdG8gYmUgaW5pdGlhbGl6ZWQuCisgICogQHBhcmFtICBoYXNoYml0bGVuICBUaGUgZGVzaXJlZCBudW1iZXIgb2Ygb3V0cHV0IGJpdHMsIAorICAqICAgICAgICAgICAgICAgICAgICAgb3IgMCBmb3IgS2VjY2FrW10gd2l0aCBkZWZhdWx0IHBhcmFtZXRlcnMKKyAgKiAgICAgICAgICAgICAgICAgICAgIGFuZCBhcmJpdHJhcmlseS1sb25nIG91dHB1dC4KKyAgKiBAcHJlICAgIFRoZSB2YWx1ZSBvZiBoYXNoYml0bGVuIG11c3QgYmUgb25lIG9mIDAsIDIyNCwgMjU2LCAzODQgYW5kIDUxMi4KKyAgKiBAcmV0dXJuIFNVQ0NFU1MgaWYgc3VjY2Vzc2Z1bCwgQkFEX0hBU0hMRU4gaWYgdGhlIHZhbHVlIG9mIGhhc2hiaXRsZW4gaXMgaW5jb3JyZWN0LgorICAqLworc3RhdGljIEhhc2hSZXR1cm4gSW5pdChoYXNoU3RhdGUgKnN0YXRlLCBpbnQgaGFzaGJpdGxlbik7CisvKioKKyAgKiBGdW5jdGlvbiB0byBnaXZlIGlucHV0IGRhdGEgZm9yIHRoZSBzcG9uZ2UgZnVuY3Rpb24gdG8gYWJzb3JiLgorICAqIEBwYXJhbSAgc3RhdGUgICAgICAgUG9pbnRlciB0byB0aGUgc3RhdGUgb2YgdGhlIHNwb25nZSBmdW5jdGlvbiBpbml0aWFsaXplZCBieSBJbml0KCkuCisgICogQHBhcmFtICBkYXRhICAgICAgICBQb2ludGVyIHRvIHRoZSBpbnB1dCBkYXRhLiAKKyAgKiAgICAgICAgICAgICAgICAgICAgIFdoZW4gQGEgZGF0YWJpdExlbiBpcyBub3QgYSBtdWx0aXBsZSBvZiA4LCB0aGUgbGFzdCBiaXRzIG9mIGRhdGEgbXVzdCBiZQorICAqICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiB0aGUgbGFzdCBieXRlLgorICAqIEBwYXJhbSAgZGF0YWJpdExlbiAgVGhlIG51bWJlciBvZiBpbnB1dCBiaXRzIHByb3ZpZGVkIGluIHRoZSBpbnB1dCBkYXRhLgorICAqIEBwcmUgICAgSW4gdGhlIHByZXZpb3VzIGNhbGwgdG8gQWJzb3JiKCksIGRhdGFiaXRMZW4gd2FzIGEgbXVsdGlwbGUgb2YgOC4KKyAgKiBAcmV0dXJuIFNVQ0NFU1MgaWYgc3VjY2Vzc2Z1bCwgRkFJTCBvdGhlcndpc2UuCisgICovCitzdGF0aWMgSGFzaFJldHVybiBVcGRhdGUoaGFzaFN0YXRlICpzdGF0ZSwgY29uc3QgQml0U2VxdWVuY2UgKmRhdGEsIERhdGFMZW5ndGggZGF0YWJpdGxlbik7CisvKioKKyAgKiBGdW5jdGlvbiB0byBzcXVlZXplIG91dHB1dCBkYXRhIGZyb20gdGhlIHNwb25nZSBmdW5jdGlvbi4KKyAgKiBJZiBAYSBoYXNoYml0bGVuIHdhcyBub3QgMCBpbiB0aGUgY2FsbCB0byBJbml0KCksIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGJpdHMgaXMgZXF1YWwgdG8gQGEgaGFzaGJpdGxlbi4KKyAgKiBJZiBAYSBoYXNoYml0bGVuIHdhcyAwIGluIHRoZSBjYWxsIHRvIEluaXQoKSwgdGhlIG91dHB1dCBiaXRzIG11c3QgYmUgZXh0cmFjdGVkIHVzaW5nIHRoZSBTcXVlZXplKCkgZnVuY3Rpb24uCisgICogQHBhcmFtICBzdGF0ZSAgICAgICBQb2ludGVyIHRvIHRoZSBzdGF0ZSBvZiB0aGUgc3BvbmdlIGZ1bmN0aW9uIGluaXRpYWxpemVkIGJ5IEluaXQoKS4KKyAgKiBAcGFyYW0gIGhhc2h2YWwgICAgIFBvaW50ZXIgdG8gdGhlIGJ1ZmZlciB3aGVyZSB0byBzdG9yZSB0aGUgb3V0cHV0IGRhdGEuCisgICogQHJldHVybiBTVUNDRVNTIGlmIHN1Y2Nlc3NmdWwsIEZBSUwgb3RoZXJ3aXNlLgorICAqLworc3RhdGljIEhhc2hSZXR1cm4gRmluYWwoaGFzaFN0YXRlICpzdGF0ZSwgQml0U2VxdWVuY2UgKmhhc2h2YWwpOworLyoqCisgICogRnVuY3Rpb24gdG8gY29tcHV0ZSBhIGhhc2ggdXNpbmcgdGhlIEtlY2Nha1tyLCBjXSBzcG9uZ2UgZnVuY3Rpb24uCisgICogVGhlIHJhdGUgciBhbmQgY2FwYWNpdHkgYyB2YWx1ZXMgYXJlIGRldGVybWluZWQgZnJvbSBAYSBoYXNoYml0bGVuLgorICAqIEBwYXJhbSAgaGFzaGJpdGxlbiAgVGhlIGRlc2lyZWQgbnVtYmVyIG9mIG91dHB1dCBiaXRzLgorICAqIEBwYXJhbSAgZGF0YSAgICAgICAgUG9pbnRlciB0byB0aGUgaW5wdXQgZGF0YS4gCisgICogICAgICAgICAgICAgICAgICAgICBXaGVuIEBhIGRhdGFiaXRMZW4gaXMgbm90IGEgbXVsdGlwbGUgb2YgOCwgdGhlIGxhc3QgYml0cyBvZiBkYXRhIG11c3QgYmUKKyAgKiAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdHMgb2YgdGhlIGxhc3QgYnl0ZS4KKyAgKiBAcGFyYW0gIGRhdGFiaXRMZW4gIFRoZSBudW1iZXIgb2YgaW5wdXQgYml0cyBwcm92aWRlZCBpbiB0aGUgaW5wdXQgZGF0YS4KKyAgKiBAcGFyYW0gIGhhc2h2YWwgICAgIFBvaW50ZXIgdG8gdGhlIGJ1ZmZlciB3aGVyZSB0byBzdG9yZSB0aGUgb3V0cHV0IGRhdGEuCisgICogQHByZSAgICBUaGUgdmFsdWUgb2YgaGFzaGJpdGxlbiBtdXN0IGJlIG9uZSBvZiAyMjQsIDI1NiwgMzg0IGFuZCA1MTIuCisgICogQHJldHVybiBTVUNDRVNTIGlmIHN1Y2Nlc3NmdWwsIEJBRF9IQVNITEVOIGlmIHRoZSB2YWx1ZSBvZiBoYXNoYml0bGVuIGlzIGluY29ycmVjdC4KKyAgKi8KKy8qCitzdGF0aWMgSGFzaFJldHVybiBIYXNoKGludCBoYXNoYml0bGVuLCBjb25zdCBCaXRTZXF1ZW5jZSAqZGF0YSwgRGF0YUxlbmd0aCBkYXRhYml0bGVuLCBCaXRTZXF1ZW5jZSAqaGFzaHZhbCk7CisqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha1Nwb25nZS5jIGIvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrU3BvbmdlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWNhNmJmMAotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX3NoYTMva2VjY2FrL0tlY2Nha1Nwb25nZS5jCkBAIC0wLDAgKzEsMjY2IEBACisvKgorVGhlIEtlY2NhayBzcG9uZ2UgZnVuY3Rpb24sIGRlc2lnbmVkIGJ5IEd1aWRvIEJlcnRvbmksIEpvYW4gRGFlbWVuLAorTWljaGHDq2wgUGVldGVycyBhbmQgR2lsbGVzIFZhbiBBc3NjaGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBmZWVkYmFjayBvcgorcXVlc3Rpb25zLCBwbGVhc2UgcmVmZXIgdG8gb3VyIHdlYnNpdGU6IGh0dHA6Ly9rZWNjYWsubm9la2Vvbi5vcmcvCisKK0ltcGxlbWVudGF0aW9uIGJ5IHRoZSBkZXNpZ25lcnMsCitoZXJlYnkgZGVub3RlZCBhcyAidGhlIGltcGxlbWVudGVyIi4KKworVG8gdGhlIGV4dGVudCBwb3NzaWJsZSB1bmRlciBsYXcsIHRoZSBpbXBsZW1lbnRlciBoYXMgd2FpdmVkIGFsbCBjb3B5cmlnaHQKK2FuZCByZWxhdGVkIG9yIG5laWdoYm9yaW5nIHJpZ2h0cyB0byB0aGUgc291cmNlIGNvZGUgaW4gdGhpcyBmaWxlLgoraHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworKi8KKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgIktlY2Nha1Nwb25nZS5oIgorI2luY2x1ZGUgIktlY2Nha0YtMTYwMC1pbnRlcmZhY2UuaCIKKyNpZmRlZiBLZWNjYWtSZWZlcmVuY2UKKyNpbmNsdWRlICJkaXNwbGF5SW50ZXJtZWRpYXRlVmFsdWVzLmgiCisjZW5kaWYKKworc3RhdGljIGludCBJbml0U3BvbmdlKHNwb25nZVN0YXRlICpzdGF0ZSwgdW5zaWduZWQgaW50IHJhdGUsIHVuc2lnbmVkIGludCBjYXBhY2l0eSkKK3sKKyAgICBpZiAocmF0ZStjYXBhY2l0eSAhPSAxNjAwKQorICAgICAgICByZXR1cm4gMTsKKyAgICBpZiAoKHJhdGUgPD0gMCkgfHwgKHJhdGUgPj0gMTYwMCkgfHwgKChyYXRlICUgNjQpICE9IDApKQorICAgICAgICByZXR1cm4gMTsKKyAgICBLZWNjYWtJbml0aWFsaXplKCk7CisgICAgc3RhdGUtPnJhdGUgPSByYXRlOworICAgIHN0YXRlLT5jYXBhY2l0eSA9IGNhcGFjaXR5OworICAgIHN0YXRlLT5maXhlZE91dHB1dExlbmd0aCA9IDA7CisgICAgS2VjY2FrSW5pdGlhbGl6ZVN0YXRlKHN0YXRlLT5zdGF0ZSk7CisgICAgbWVtc2V0KHN0YXRlLT5kYXRhUXVldWUsIDAsIEtlY2Nha01heGltdW1SYXRlSW5CeXRlcyk7CisgICAgc3RhdGUtPmJpdHNJblF1ZXVlID0gMDsKKyAgICBzdGF0ZS0+c3F1ZWV6aW5nID0gMDsKKyAgICBzdGF0ZS0+Yml0c0F2YWlsYWJsZUZvclNxdWVlemluZyA9IDA7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgQWJzb3JiUXVldWUoc3BvbmdlU3RhdGUgKnN0YXRlKQoreworICAgIC8qICBzdGF0ZS0+Yml0c0luUXVldWUgaXMgYXNzdW1lZCB0byBiZSBlcXVhbCB0byBzdGF0ZS0+cmF0ZSAqLworICAgICNpZmRlZiBLZWNjYWtSZWZlcmVuY2UKKyAgICBkaXNwbGF5Qnl0ZXMoMSwgIkJsb2NrIHRvIGJlIGFic29yYmVkIiwgc3RhdGUtPmRhdGFRdWV1ZSwgc3RhdGUtPnJhdGUvOCk7CisgICAgI2VuZGlmCisjaWZkZWYgUHJvdmlkZUZhc3Q1NzYKKyAgICBpZiAoc3RhdGUtPnJhdGUgPT0gNTc2KQorICAgICAgICBLZWNjYWtBYnNvcmI1NzZiaXRzKHN0YXRlLT5zdGF0ZSwgc3RhdGUtPmRhdGFRdWV1ZSk7CisgICAgZWxzZSAKKyNlbmRpZgorI2lmZGVmIFByb3ZpZGVGYXN0ODMyCisgICAgaWYgKHN0YXRlLT5yYXRlID09IDgzMikKKyAgICAgICAgS2VjY2FrQWJzb3JiODMyYml0cyhzdGF0ZS0+c3RhdGUsIHN0YXRlLT5kYXRhUXVldWUpOworICAgIGVsc2UgCisjZW5kaWYKKyNpZmRlZiBQcm92aWRlRmFzdDEwMjQKKyAgICBpZiAoc3RhdGUtPnJhdGUgPT0gMTAyNCkKKyAgICAgICAgS2VjY2FrQWJzb3JiMTAyNGJpdHMoc3RhdGUtPnN0YXRlLCBzdGF0ZS0+ZGF0YVF1ZXVlKTsKKyAgICBlbHNlIAorI2VuZGlmCisjaWZkZWYgUHJvdmlkZUZhc3QxMDg4CisgICAgaWYgKHN0YXRlLT5yYXRlID09IDEwODgpCisgICAgICAgIEtlY2Nha0Fic29yYjEwODhiaXRzKHN0YXRlLT5zdGF0ZSwgc3RhdGUtPmRhdGFRdWV1ZSk7CisgICAgZWxzZQorI2VuZGlmCisjaWZkZWYgUHJvdmlkZUZhc3QxMTUyCisgICAgaWYgKHN0YXRlLT5yYXRlID09IDExNTIpCisgICAgICAgIEtlY2Nha0Fic29yYjExNTJiaXRzKHN0YXRlLT5zdGF0ZSwgc3RhdGUtPmRhdGFRdWV1ZSk7CisgICAgZWxzZSAKKyNlbmRpZgorI2lmZGVmIFByb3ZpZGVGYXN0MTM0NAorICAgIGlmIChzdGF0ZS0+cmF0ZSA9PSAxMzQ0KQorICAgICAgICBLZWNjYWtBYnNvcmIxMzQ0Yml0cyhzdGF0ZS0+c3RhdGUsIHN0YXRlLT5kYXRhUXVldWUpOworICAgIGVsc2UgCisjZW5kaWYKKyAgICAgICAgS2VjY2FrQWJzb3JiKHN0YXRlLT5zdGF0ZSwgc3RhdGUtPmRhdGFRdWV1ZSwgc3RhdGUtPnJhdGUvNjQpOworICAgIHN0YXRlLT5iaXRzSW5RdWV1ZSA9IDA7Cit9CisKK3N0YXRpYyBpbnQgQWJzb3JiKHNwb25nZVN0YXRlICpzdGF0ZSwgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSwgdW5zaWduZWQgbG9uZyBsb25nIGRhdGFiaXRsZW4pCit7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGksIGosIHdob2xlQmxvY2tzOworICAgIHVuc2lnbmVkIGludCBwYXJ0aWFsQmxvY2ssIHBhcnRpYWxCeXRlOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmN1ckRhdGE7CisKKyAgICBpZiAoKHN0YXRlLT5iaXRzSW5RdWV1ZSAlIDgpICE9IDApCisgICAgICAgIHJldHVybiAxOyAvKiAgT25seSB0aGUgbGFzdCBjYWxsIG1heSBjb250YWluIGEgcGFydGlhbCBieXRlICovCisgICAgaWYgKHN0YXRlLT5zcXVlZXppbmcpCisgICAgICAgIHJldHVybiAxOyAvKiAgVG9vIGxhdGUgZm9yIGFkZGl0aW9uYWwgaW5wdXQgKi8KKworICAgIGkgPSAwOworICAgIHdoaWxlKGkgPCBkYXRhYml0bGVuKSB7CisgICAgICAgIGlmICgoc3RhdGUtPmJpdHNJblF1ZXVlID09IDApICYmIChkYXRhYml0bGVuID49IHN0YXRlLT5yYXRlKSAmJiAoaSA8PSAoZGF0YWJpdGxlbi1zdGF0ZS0+cmF0ZSkpKSB7CisgICAgICAgICAgICB3aG9sZUJsb2NrcyA9IChkYXRhYml0bGVuLWkpL3N0YXRlLT5yYXRlOworICAgICAgICAgICAgY3VyRGF0YSA9IGRhdGEraS84OworI2lmZGVmIFByb3ZpZGVGYXN0NTc2CisgICAgICAgICAgICBpZiAoc3RhdGUtPnJhdGUgPT0gNTc2KSB7CisgICAgICAgICAgICAgICAgZm9yKGo9MDsgajx3aG9sZUJsb2NrczsgaisrLCBjdXJEYXRhKz01NzYvOCkgeworICAgICAgICAgICAgICAgICAgICAjaWZkZWYgS2VjY2FrUmVmZXJlbmNlCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlCeXRlcygxLCAiQmxvY2sgdG8gYmUgYWJzb3JiZWQiLCBjdXJEYXRhLCBzdGF0ZS0+cmF0ZS84KTsKKyAgICAgICAgICAgICAgICAgICAgI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIEtlY2Nha0Fic29yYjU3NmJpdHMoc3RhdGUtPnN0YXRlLCBjdXJEYXRhKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisjZW5kaWYKKyNpZmRlZiBQcm92aWRlRmFzdDgzMgorICAgICAgICAgICAgaWYgKHN0YXRlLT5yYXRlID09IDgzMikgeworICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8d2hvbGVCbG9ja3M7IGorKywgY3VyRGF0YSs9ODMyLzgpIHsKKyAgICAgICAgICAgICAgICAgICAgI2lmZGVmIEtlY2Nha1JlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Qnl0ZXMoMSwgIkJsb2NrIHRvIGJlIGFic29yYmVkIiwgY3VyRGF0YSwgc3RhdGUtPnJhdGUvOCk7CisgICAgICAgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgICAgICAgICBLZWNjYWtBYnNvcmI4MzJiaXRzKHN0YXRlLT5zdGF0ZSwgY3VyRGF0YSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorI2VuZGlmCisjaWZkZWYgUHJvdmlkZUZhc3QxMDI0CisgICAgICAgICAgICBpZiAoc3RhdGUtPnJhdGUgPT0gMTAyNCkgeworICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8d2hvbGVCbG9ja3M7IGorKywgY3VyRGF0YSs9MTAyNC84KSB7CisgICAgICAgICAgICAgICAgICAgICNpZmRlZiBLZWNjYWtSZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxheUJ5dGVzKDEsICJCbG9jayB0byBiZSBhYnNvcmJlZCIsIGN1ckRhdGEsIHN0YXRlLT5yYXRlLzgpOworICAgICAgICAgICAgICAgICAgICAjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgS2VjY2FrQWJzb3JiMTAyNGJpdHMoc3RhdGUtPnN0YXRlLCBjdXJEYXRhKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisjZW5kaWYKKyNpZmRlZiBQcm92aWRlRmFzdDEwODgKKyAgICAgICAgICAgIGlmIChzdGF0ZS0+cmF0ZSA9PSAxMDg4KSB7CisgICAgICAgICAgICAgICAgZm9yKGo9MDsgajx3aG9sZUJsb2NrczsgaisrLCBjdXJEYXRhKz0xMDg4LzgpIHsKKyAgICAgICAgICAgICAgICAgICAgI2lmZGVmIEtlY2Nha1JlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Qnl0ZXMoMSwgIkJsb2NrIHRvIGJlIGFic29yYmVkIiwgY3VyRGF0YSwgc3RhdGUtPnJhdGUvOCk7CisgICAgICAgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgICAgICAgICBLZWNjYWtBYnNvcmIxMDg4Yml0cyhzdGF0ZS0+c3RhdGUsIGN1ckRhdGEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyNlbmRpZgorI2lmZGVmIFByb3ZpZGVGYXN0MTE1MgorICAgICAgICAgICAgaWYgKHN0YXRlLT5yYXRlID09IDExNTIpIHsKKyAgICAgICAgICAgICAgICBmb3Ioaj0wOyBqPHdob2xlQmxvY2tzOyBqKyssIGN1ckRhdGErPTExNTIvOCkgeworICAgICAgICAgICAgICAgICAgICAjaWZkZWYgS2VjY2FrUmVmZXJlbmNlCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlCeXRlcygxLCAiQmxvY2sgdG8gYmUgYWJzb3JiZWQiLCBjdXJEYXRhLCBzdGF0ZS0+cmF0ZS84KTsKKyAgICAgICAgICAgICAgICAgICAgI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIEtlY2Nha0Fic29yYjExNTJiaXRzKHN0YXRlLT5zdGF0ZSwgY3VyRGF0YSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorI2VuZGlmCisjaWZkZWYgUHJvdmlkZUZhc3QxMzQ0CisgICAgICAgICAgICBpZiAoc3RhdGUtPnJhdGUgPT0gMTM0NCkgeworICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8d2hvbGVCbG9ja3M7IGorKywgY3VyRGF0YSs9MTM0NC84KSB7CisgICAgICAgICAgICAgICAgICAgICNpZmRlZiBLZWNjYWtSZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAgICAgZGlzcGxheUJ5dGVzKDEsICJCbG9jayB0byBiZSBhYnNvcmJlZCIsIGN1ckRhdGEsIHN0YXRlLT5yYXRlLzgpOworICAgICAgICAgICAgICAgICAgICAjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgS2VjY2FrQWJzb3JiMTM0NGJpdHMoc3RhdGUtPnN0YXRlLCBjdXJEYXRhKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisjZW5kaWYKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmb3Ioaj0wOyBqPHdob2xlQmxvY2tzOyBqKyssIGN1ckRhdGErPXN0YXRlLT5yYXRlLzgpIHsKKyAgICAgICAgICAgICAgICAgICAgI2lmZGVmIEtlY2Nha1JlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Qnl0ZXMoMSwgIkJsb2NrIHRvIGJlIGFic29yYmVkIiwgY3VyRGF0YSwgc3RhdGUtPnJhdGUvOCk7CisgICAgICAgICAgICAgICAgICAgICNlbmRpZgorICAgICAgICAgICAgICAgICAgICBLZWNjYWtBYnNvcmIoc3RhdGUtPnN0YXRlLCBjdXJEYXRhLCBzdGF0ZS0+cmF0ZS82NCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaSArPSB3aG9sZUJsb2NrcypzdGF0ZS0+cmF0ZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHBhcnRpYWxCbG9jayA9ICh1bnNpZ25lZCBpbnQpKGRhdGFiaXRsZW4gLSBpKTsKKyAgICAgICAgICAgIGlmIChwYXJ0aWFsQmxvY2src3RhdGUtPmJpdHNJblF1ZXVlID4gc3RhdGUtPnJhdGUpCisgICAgICAgICAgICAgICAgcGFydGlhbEJsb2NrID0gc3RhdGUtPnJhdGUtc3RhdGUtPmJpdHNJblF1ZXVlOworICAgICAgICAgICAgcGFydGlhbEJ5dGUgPSBwYXJ0aWFsQmxvY2sgJSA4OworICAgICAgICAgICAgcGFydGlhbEJsb2NrIC09IHBhcnRpYWxCeXRlOworICAgICAgICAgICAgbWVtY3B5KHN0YXRlLT5kYXRhUXVldWUrc3RhdGUtPmJpdHNJblF1ZXVlLzgsIGRhdGEraS84LCBwYXJ0aWFsQmxvY2svOCk7CisgICAgICAgICAgICBzdGF0ZS0+Yml0c0luUXVldWUgKz0gcGFydGlhbEJsb2NrOworICAgICAgICAgICAgaSArPSBwYXJ0aWFsQmxvY2s7CisgICAgICAgICAgICBpZiAoc3RhdGUtPmJpdHNJblF1ZXVlID09IHN0YXRlLT5yYXRlKQorICAgICAgICAgICAgICAgIEFic29yYlF1ZXVlKHN0YXRlKTsKKyAgICAgICAgICAgIGlmIChwYXJ0aWFsQnl0ZSA+IDApIHsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG1hc2sgPSAoMSA8PCBwYXJ0aWFsQnl0ZSktMTsKKyAgICAgICAgICAgICAgICBzdGF0ZS0+ZGF0YVF1ZXVlW3N0YXRlLT5iaXRzSW5RdWV1ZS84XSA9IGRhdGFbaS84XSAmIG1hc2s7CisgICAgICAgICAgICAgICAgc3RhdGUtPmJpdHNJblF1ZXVlICs9IHBhcnRpYWxCeXRlOworICAgICAgICAgICAgICAgIGkgKz0gcGFydGlhbEJ5dGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIFBhZEFuZFN3aXRjaFRvU3F1ZWV6aW5nUGhhc2Uoc3BvbmdlU3RhdGUgKnN0YXRlKQoreworICAgIC8qICBOb3RlOiB0aGUgYml0cyBhcmUgbnVtYmVyZWQgZnJvbSAwPUxTQiB0byA3PU1TQiAqLworICAgIGlmIChzdGF0ZS0+Yml0c0luUXVldWUgKyAxID09IHN0YXRlLT5yYXRlKSB7CisgICAgICAgIHN0YXRlLT5kYXRhUXVldWVbc3RhdGUtPmJpdHNJblF1ZXVlLzggXSB8PSAxIDw8IChzdGF0ZS0+Yml0c0luUXVldWUgJSA4KTsKKyAgICAgICAgQWJzb3JiUXVldWUoc3RhdGUpOworICAgICAgICBtZW1zZXQoc3RhdGUtPmRhdGFRdWV1ZSwgMCwgc3RhdGUtPnJhdGUvOCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBtZW1zZXQoc3RhdGUtPmRhdGFRdWV1ZSArIChzdGF0ZS0+Yml0c0luUXVldWUrNykvOCwgMCwgc3RhdGUtPnJhdGUvOCAtIChzdGF0ZS0+Yml0c0luUXVldWUrNykvOCk7CisgICAgICAgIHN0YXRlLT5kYXRhUXVldWVbc3RhdGUtPmJpdHNJblF1ZXVlLzggXSB8PSAxIDw8IChzdGF0ZS0+Yml0c0luUXVldWUgJSA4KTsKKyAgICB9CisgICAgc3RhdGUtPmRhdGFRdWV1ZVsoc3RhdGUtPnJhdGUtMSkvOF0gfD0gMSA8PCAoKHN0YXRlLT5yYXRlLTEpICUgOCk7CisgICAgQWJzb3JiUXVldWUoc3RhdGUpOworCisgICAgI2lmZGVmIEtlY2Nha1JlZmVyZW5jZQorICAgIGRpc3BsYXlUZXh0KDEsICItLS0gU3dpdGNoaW5nIHRvIHNxdWVlemluZyBwaGFzZSAtLS0iKTsKKyAgICAjZW5kaWYKKyNpZmRlZiBQcm92aWRlRmFzdDEwMjQKKyAgICBpZiAoc3RhdGUtPnJhdGUgPT0gMTAyNCkgeworICAgICAgICBLZWNjYWtFeHRyYWN0MTAyNGJpdHMoc3RhdGUtPnN0YXRlLCBzdGF0ZS0+ZGF0YVF1ZXVlKTsKKyAgICAgICAgc3RhdGUtPmJpdHNBdmFpbGFibGVGb3JTcXVlZXppbmcgPSAxMDI0OworICAgIH0KKyAgICBlbHNlCisjZW5kaWYKKyAgICB7CisgICAgICAgIEtlY2Nha0V4dHJhY3Qoc3RhdGUtPnN0YXRlLCBzdGF0ZS0+ZGF0YVF1ZXVlLCBzdGF0ZS0+cmF0ZS82NCk7CisgICAgICAgIHN0YXRlLT5iaXRzQXZhaWxhYmxlRm9yU3F1ZWV6aW5nID0gc3RhdGUtPnJhdGU7CisgICAgfQorICAgICNpZmRlZiBLZWNjYWtSZWZlcmVuY2UKKyAgICBkaXNwbGF5Qnl0ZXMoMSwgIkJsb2NrIGF2YWlsYWJsZSBmb3Igc3F1ZWV6aW5nIiwgc3RhdGUtPmRhdGFRdWV1ZSwgc3RhdGUtPmJpdHNBdmFpbGFibGVGb3JTcXVlZXppbmcvOCk7CisgICAgI2VuZGlmCisgICAgc3RhdGUtPnNxdWVlemluZyA9IDE7Cit9CisKK3N0YXRpYyBpbnQgU3F1ZWV6ZShzcG9uZ2VTdGF0ZSAqc3RhdGUsIHVuc2lnbmVkIGNoYXIgKm91dHB1dCwgdW5zaWduZWQgbG9uZyBsb25nIG91dHB1dExlbmd0aCkKK3sKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgaTsKKyAgICB1bnNpZ25lZCBpbnQgcGFydGlhbEJsb2NrOworCisgICAgaWYgKCFzdGF0ZS0+c3F1ZWV6aW5nKQorICAgICAgICBQYWRBbmRTd2l0Y2hUb1NxdWVlemluZ1BoYXNlKHN0YXRlKTsKKyAgICBpZiAoKG91dHB1dExlbmd0aCAlIDgpICE9IDApCisgICAgICAgIHJldHVybiAxOyAvKiAgT25seSBtdWx0aXBsZSBvZiA4IGJpdHMgYXJlIGFsbG93ZWQsIHRydW5jYXRpb24gY2FuIGJlIGRvbmUgYXQgdXNlciBsZXZlbCAqLworCisgICAgaSA9IDA7CisgICAgd2hpbGUoaSA8IG91dHB1dExlbmd0aCkgeworICAgICAgICBpZiAoc3RhdGUtPmJpdHNBdmFpbGFibGVGb3JTcXVlZXppbmcgPT0gMCkgeworICAgICAgICAgICAgS2VjY2FrUGVybXV0YXRpb24oc3RhdGUtPnN0YXRlKTsKKyNpZmRlZiBQcm92aWRlRmFzdDEwMjQKKyAgICAgICAgICAgIGlmIChzdGF0ZS0+cmF0ZSA9PSAxMDI0KSB7CisgICAgICAgICAgICAgICAgS2VjY2FrRXh0cmFjdDEwMjRiaXRzKHN0YXRlLT5zdGF0ZSwgc3RhdGUtPmRhdGFRdWV1ZSk7CisgICAgICAgICAgICAgICAgc3RhdGUtPmJpdHNBdmFpbGFibGVGb3JTcXVlZXppbmcgPSAxMDI0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorI2VuZGlmCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgS2VjY2FrRXh0cmFjdChzdGF0ZS0+c3RhdGUsIHN0YXRlLT5kYXRhUXVldWUsIHN0YXRlLT5yYXRlLzY0KTsKKyAgICAgICAgICAgICAgICBzdGF0ZS0+Yml0c0F2YWlsYWJsZUZvclNxdWVlemluZyA9IHN0YXRlLT5yYXRlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgI2lmZGVmIEtlY2Nha1JlZmVyZW5jZQorICAgICAgICAgICAgZGlzcGxheUJ5dGVzKDEsICJCbG9jayBhdmFpbGFibGUgZm9yIHNxdWVlemluZyIsIHN0YXRlLT5kYXRhUXVldWUsIHN0YXRlLT5iaXRzQXZhaWxhYmxlRm9yU3F1ZWV6aW5nLzgpOworICAgICAgICAgICAgI2VuZGlmCisgICAgICAgIH0KKyAgICAgICAgcGFydGlhbEJsb2NrID0gc3RhdGUtPmJpdHNBdmFpbGFibGVGb3JTcXVlZXppbmc7CisgICAgICAgIGlmICgodW5zaWduZWQgbG9uZyBsb25nKXBhcnRpYWxCbG9jayA+IG91dHB1dExlbmd0aCAtIGkpCisgICAgICAgICAgICBwYXJ0aWFsQmxvY2sgPSAodW5zaWduZWQgaW50KShvdXRwdXRMZW5ndGggLSBpKTsKKyAgICAgICAgbWVtY3B5KG91dHB1dCtpLzgsIHN0YXRlLT5kYXRhUXVldWUrKHN0YXRlLT5yYXRlLXN0YXRlLT5iaXRzQXZhaWxhYmxlRm9yU3F1ZWV6aW5nKS84LCBwYXJ0aWFsQmxvY2svOCk7CisgICAgICAgIHN0YXRlLT5iaXRzQXZhaWxhYmxlRm9yU3F1ZWV6aW5nIC09IHBhcnRpYWxCbG9jazsKKyAgICAgICAgaSArPSBwYXJ0aWFsQmxvY2s7CisgICAgfQorICAgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrU3BvbmdlLmggYi9Nb2R1bGVzL19zaGEzL2tlY2Nhay9LZWNjYWtTcG9uZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTQ1Y2FjCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fc2hhMy9rZWNjYWsvS2VjY2FrU3BvbmdlLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKK1RoZSBLZWNjYWsgc3BvbmdlIGZ1bmN0aW9uLCBkZXNpZ25lZCBieSBHdWlkbyBCZXJ0b25pLCBKb2FuIERhZW1lbiwKK01pY2hhw6tsIFBlZXRlcnMgYW5kIEdpbGxlcyBWYW4gQXNzY2hlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgZmVlZGJhY2sgb3IKK3F1ZXN0aW9ucywgcGxlYXNlIHJlZmVyIHRvIG91ciB3ZWJzaXRlOiBodHRwOi8va2VjY2FrLm5vZWtlb24ub3JnLworCitJbXBsZW1lbnRhdGlvbiBieSB0aGUgZGVzaWduZXJzLAoraGVyZWJ5IGRlbm90ZWQgYXMgInRoZSBpbXBsZW1lbnRlciIuCisKK1RvIHRoZSBleHRlbnQgcG9zc2libGUgdW5kZXIgbGF3LCB0aGUgaW1wbGVtZW50ZXIgaGFzIHdhaXZlZCBhbGwgY29weXJpZ2h0CithbmQgcmVsYXRlZCBvciBuZWlnaGJvcmluZyByaWdodHMgdG8gdGhlIHNvdXJjZSBjb2RlIGluIHRoaXMgZmlsZS4KK2h0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJvLzEuMC8KKyovCisKKyNpZm5kZWYgX0tlY2Nha1Nwb25nZV9oXworI2RlZmluZSBfS2VjY2FrU3BvbmdlX2hfCisKKyNkZWZpbmUgS2VjY2FrUGVybXV0YXRpb25TaXplIDE2MDAKKyNkZWZpbmUgS2VjY2FrUGVybXV0YXRpb25TaXplSW5CeXRlcyAoS2VjY2FrUGVybXV0YXRpb25TaXplLzgpCisjZGVmaW5lIEtlY2Nha01heGltdW1SYXRlIDE1MzYKKyNkZWZpbmUgS2VjY2FrTWF4aW11bVJhdGVJbkJ5dGVzIChLZWNjYWtNYXhpbXVtUmF0ZS84KQorCisjaWYgZGVmaW5lZChfX0dOVUNfXykKKyNkZWZpbmUgQUxJR04gX19hdHRyaWJ1dGVfXyAoKGFsaWduZWQoMzIpKSkKKyNlbGlmIGRlZmluZWQoX01TQ19WRVIpCisjZGVmaW5lIEFMSUdOIF9fZGVjbHNwZWMoYWxpZ24oMzIpKQorI2Vsc2UKKyNkZWZpbmUgQUxJR04KKyNlbmRpZgorCitBTElHTiB0eXBlZGVmIHN0cnVjdCBzcG9uZ2VTdGF0ZVN0cnVjdCB7CisgICAgQUxJR04gdW5zaWduZWQgY2hhciBzdGF0ZVtLZWNjYWtQZXJtdXRhdGlvblNpemVJbkJ5dGVzXTsKKyAgICBBTElHTiB1bnNpZ25lZCBjaGFyIGRhdGFRdWV1ZVtLZWNjYWtNYXhpbXVtUmF0ZUluQnl0ZXNdOworICAgIHVuc2lnbmVkIGludCByYXRlOworICAgIHVuc2lnbmVkIGludCBjYXBhY2l0eTsKKyAgICB1bnNpZ25lZCBpbnQgYml0c0luUXVldWU7CisgICAgdW5zaWduZWQgaW50IGZpeGVkT3V0cHV0TGVuZ3RoOworICAgIGludCBzcXVlZXppbmc7CisgICAgdW5zaWduZWQgaW50IGJpdHNBdmFpbGFibGVGb3JTcXVlZXppbmc7Cit9IHNwb25nZVN0YXRlOworCisvKioKKyAgKiBGdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSBzdGF0ZSBvZiB0aGUgS2VjY2FrW3IsIGNdIHNwb25nZSBmdW5jdGlvbi4KKyAgKiBUaGUgc3BvbmdlIGZ1bmN0aW9uIGlzIHNldCB0byB0aGUgYWJzb3JiaW5nIHBoYXNlLgorICAqIEBwYXJhbSAgc3RhdGUgICAgICAgUG9pbnRlciB0byB0aGUgc3RhdGUgb2YgdGhlIHNwb25nZSBmdW5jdGlvbiB0byBiZSBpbml0aWFsaXplZC4KKyAgKiBAcGFyYW0gIHJhdGUgICAgICAgIFRoZSB2YWx1ZSBvZiB0aGUgcmF0ZSByLgorICAqIEBwYXJhbSAgY2FwYWNpdHkgICAgVGhlIHZhbHVlIG9mIHRoZSBjYXBhY2l0eSBjLgorICAqIEBwcmUgICAgT25lIG11c3QgaGF2ZSByK2M9MTYwMCBhbmQgdGhlIHJhdGUgYSBtdWx0aXBsZSBvZiA2NCBiaXRzIGluIHRoaXMgaW1wbGVtZW50YXRpb24uCisgICogQHJldHVybiBaZXJvIGlmIHN1Y2Nlc3NmdWwsIDEgb3RoZXJ3aXNlLgorICAqLworc3RhdGljIGludCBJbml0U3BvbmdlKHNwb25nZVN0YXRlICpzdGF0ZSwgdW5zaWduZWQgaW50IHJhdGUsIHVuc2lnbmVkIGludCBjYXBhY2l0eSk7CisvKioKKyAgKiBGdW5jdGlvbiB0byBnaXZlIGlucHV0IGRhdGEgZm9yIHRoZSBzcG9uZ2UgZnVuY3Rpb24gdG8gYWJzb3JiLgorICAqIEBwYXJhbSAgc3RhdGUgICAgICAgUG9pbnRlciB0byB0aGUgc3RhdGUgb2YgdGhlIHNwb25nZSBmdW5jdGlvbiBpbml0aWFsaXplZCBieSBJbml0U3BvbmdlKCkuCisgICogQHBhcmFtICBkYXRhICAgICAgICBQb2ludGVyIHRvIHRoZSBpbnB1dCBkYXRhLiAKKyAgKiAgICAgICAgICAgICAgICAgICAgIFdoZW4gQGEgZGF0YWJpdExlbiBpcyBub3QgYSBtdWx0aXBsZSBvZiA4LCB0aGUgbGFzdCBiaXRzIG9mIGRhdGEgbXVzdCBiZQorICAqICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2YgdGhlIGxhc3QgYnl0ZS4KKyAgKiBAcGFyYW0gIGRhdGFiaXRMZW4gIFRoZSBudW1iZXIgb2YgaW5wdXQgYml0cyBwcm92aWRlZCBpbiB0aGUgaW5wdXQgZGF0YS4KKyAgKiBAcHJlICAgIEluIHRoZSBwcmV2aW91cyBjYWxsIHRvIEFic29yYigpLCBkYXRhYml0TGVuIHdhcyBhIG11bHRpcGxlIG9mIDguCisgICogQHByZSAgICBUaGUgc3BvbmdlIGZ1bmN0aW9uIG11c3QgYmUgaW4gdGhlIGFic29yYmluZyBwaGFzZSwKKyAgKiAgICAgICAgIGkuZS4sIFNxdWVlemUoKSBtdXN0IG5vdCBoYXZlIGJlZW4gY2FsbGVkIGJlZm9yZS4KKyAgKiBAcmV0dXJuIFplcm8gaWYgc3VjY2Vzc2Z1bCwgMSBvdGhlcndpc2UuCisgICovCitzdGF0aWMgaW50IEFic29yYihzcG9uZ2VTdGF0ZSAqc3RhdGUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBkYXRhYml0bGVuKTsKKy8qKgorICAqIEZ1bmN0aW9uIHRvIHNxdWVlemUgb3V0cHV0IGRhdGEgZnJvbSB0aGUgc3BvbmdlIGZ1bmN0aW9uLgorICAqIElmIHRoZSBzcG9uZ2UgZnVuY3Rpb24gd2FzIGluIHRoZSBhYnNvcmJpbmcgcGhhc2UsIHRoaXMgZnVuY3Rpb24gCisgICogc3dpdGNoZXMgaXQgdG8gdGhlIHNxdWVlemluZyBwaGFzZS4KKyAgKiBAcGFyYW0gIHN0YXRlICAgICAgIFBvaW50ZXIgdG8gdGhlIHN0YXRlIG9mIHRoZSBzcG9uZ2UgZnVuY3Rpb24gaW5pdGlhbGl6ZWQgYnkgSW5pdFNwb25nZSgpLgorICAqIEBwYXJhbSAgb3V0cHV0ICAgICAgUG9pbnRlciB0byB0aGUgYnVmZmVyIHdoZXJlIHRvIHN0b3JlIHRoZSBvdXRwdXQgZGF0YS4KKyAgKiBAcGFyYW0gIG91dHB1dExlbmd0aCAgICBUaGUgbnVtYmVyIG9mIG91dHB1dCBiaXRzIGRlc2lyZWQuCisgICogICAgICAgICAgICAgICAgICAgICBJdCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgOC4KKyAgKiBAcmV0dXJuIFplcm8gaWYgc3VjY2Vzc2Z1bCwgMSBvdGhlcndpc2UuCisgICovCitzdGF0aWMgaW50IFNxdWVlemUoc3BvbmdlU3RhdGUgKnN0YXRlLCB1bnNpZ25lZCBjaGFyICpvdXRwdXQsIHVuc2lnbmVkIGxvbmcgbG9uZyBvdXRwdXRMZW5ndGgpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NoYTMva2VjY2FrL2JyZ19lbmRpYW4uaCBiL01vZHVsZXMvX3NoYTMva2VjY2FrL2JyZ19lbmRpYW4uaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MjI2ZWIzCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fc2hhMy9rZWNjYWsvYnJnX2VuZGlhbi5oCkBAIC0wLDAgKzEsMTQyIEBACisvKgorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENvcHlyaWdodCAoYykgMTk5OC0yMDA4LCBCcmlhbiBHbGFkbWFuLCBXb3JjZXN0ZXIsIFVLLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorCisgTElDRU5TRSBURVJNUworCisgVGhlIHJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ugb2YgdGhpcyBzb2Z0d2FyZSAod2l0aCBvciB3aXRob3V0IGNoYW5nZXMpCisgaXMgYWxsb3dlZCB3aXRob3V0IHRoZSBwYXltZW50IG9mIGZlZXMgb3Igcm95YWx0aWVzIHByb3ZpZGVkIHRoYXQ6CisKKyAgMS4gc291cmNlIGNvZGUgZGlzdHJpYnV0aW9ucyBpbmNsdWRlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCisgICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyOworCisgIDIuIGJpbmFyeSBkaXN0cmlidXRpb25zIGluY2x1ZGUgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdAorICAgICBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlaXIgZG9jdW1lbnRhdGlvbjsKKworICAzLiB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBpcyBub3QgdXNlZCB0byBlbmRvcnNlIHByb2R1Y3RzCisgICAgIGJ1aWx0IHVzaW5nIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyB3cml0dGVuIHBlcm1pc3Npb24uCisKKyBESVNDTEFJTUVSCisKKyBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcyBpcycgd2l0aCBubyBleHBsaWNpdCBvciBpbXBsaWVkIHdhcnJhbnRpZXMKKyBpbiByZXNwZWN0IG9mIGl0cyBwcm9wZXJ0aWVzLCBpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bywgY29ycmVjdG5lc3MKKyBhbmQvb3IgZml0bmVzcyBmb3IgcHVycG9zZS4KKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBJc3N1ZSBEYXRlOiAyMC8xMi8yMDA3CisgQ2hhbmdlcyBmb3IgQVJNIDkvOS8yMDEwCisqLworCisjaWZuZGVmIF9CUkdfRU5ESUFOX0gKKyNkZWZpbmUgX0JSR19FTkRJQU5fSAorCisjZGVmaW5lIElTX0JJR19FTkRJQU4gICAgICA0MzIxIC8qIGJ5dGUgMCBpcyBtb3N0IHNpZ25pZmljYW50IChtYzY4aykgKi8KKyNkZWZpbmUgSVNfTElUVExFX0VORElBTiAgIDEyMzQgLyogYnl0ZSAwIGlzIGxlYXN0IHNpZ25pZmljYW50IChpMzg2KSAqLworCisjaWYgMAorLyogSW5jbHVkZSBmaWxlcyB3aGVyZSBlbmRpYW4gZGVmaW5lcyBhbmQgYnl0ZXN3YXAgZnVuY3Rpb25zIG1heSByZXNpZGUgKi8KKyNpZiBkZWZpbmVkKCBfX3N1biApCisjICBpbmNsdWRlIDxzeXMvaXNhX2RlZnMuaD4KKyNlbGlmIGRlZmluZWQoIF9fRnJlZUJTRF9fICkgfHwgZGVmaW5lZCggX19PcGVuQlNEX18gKSB8fCBkZWZpbmVkKCBfX05ldEJTRF9fICkKKyMgIGluY2x1ZGUgPHN5cy9lbmRpYW4uaD4KKyNlbGlmIGRlZmluZWQoIEJTRCApICYmICggQlNEID49IDE5OTEwMyApIHx8IGRlZmluZWQoIF9fQVBQTEVfXyApIHx8IFwKKyAgICAgIGRlZmluZWQoIF9fQ1lHV0lOMzJfXyApIHx8IGRlZmluZWQoIF9fREpHUFBfXyApIHx8IGRlZmluZWQoIF9fb3NmX18gKQorIyAgaW5jbHVkZSA8bWFjaGluZS9lbmRpYW4uaD4KKyNlbGlmIGRlZmluZWQoIF9fbGludXhfXyApIHx8IGRlZmluZWQoIF9fR05VQ19fICkgfHwgZGVmaW5lZCggX19HTlVfTElCUkFSWV9fICkKKyMgIGlmICFkZWZpbmVkKCBfX01JTkdXMzJfXyApICYmICFkZWZpbmVkKCBfQUlYICkKKyMgICAgaW5jbHVkZSA8ZW5kaWFuLmg+CisjICAgIGlmICFkZWZpbmVkKCBfX0JFT1NfXyApCisjICAgICAgaW5jbHVkZSA8Ynl0ZXN3YXAuaD4KKyMgICAgZW5kaWYKKyMgIGVuZGlmCisjZW5kaWYKKyNlbmRpZgorCisvKiBOb3cgYXR0ZW1wdCB0byBzZXQgdGhlIGRlZmluZSBmb3IgcGxhdGZvcm0gYnl0ZSBvcmRlciB1c2luZyBhbnkgICovCisvKiBvZiB0aGUgZm91ciBmb3JtcyBTWU1CT0wsIF9TWU1CT0wsIF9fU1lNQk9MICYgX19TWU1CT0xfXywgd2hpY2ggICovCisvKiBzZWVtIHRvIGVuY29tcGFzcyBtb3N0IGVuZGlhbiBzeW1ib2wgZGVmaW5pdGlvbnMgICAgICAgICAgICAgICAgICovCisKKyNpZiBkZWZpbmVkKCBCSUdfRU5ESUFOICkgJiYgZGVmaW5lZCggTElUVExFX0VORElBTiApCisjICBpZiBkZWZpbmVkKCBCWVRFX09SREVSICkgJiYgQllURV9PUkRFUiA9PSBCSUdfRU5ESUFOCisjICAgIGRlZmluZSBQTEFURk9STV9CWVRFX09SREVSIElTX0JJR19FTkRJQU4KKyMgIGVsaWYgZGVmaW5lZCggQllURV9PUkRFUiApICYmIEJZVEVfT1JERVIgPT0gTElUVExFX0VORElBTgorIyAgICBkZWZpbmUgUExBVEZPUk1fQllURV9PUkRFUiBJU19MSVRUTEVfRU5ESUFOCisjICBlbmRpZgorI2VsaWYgZGVmaW5lZCggQklHX0VORElBTiApCisjICBkZWZpbmUgUExBVEZPUk1fQllURV9PUkRFUiBJU19CSUdfRU5ESUFOCisjZWxpZiBkZWZpbmVkKCBMSVRUTEVfRU5ESUFOICkKKyMgIGRlZmluZSBQTEFURk9STV9CWVRFX09SREVSIElTX0xJVFRMRV9FTkRJQU4KKyNlbmRpZgorCisjaWYgZGVmaW5lZCggX0JJR19FTkRJQU4gKSAmJiBkZWZpbmVkKCBfTElUVExFX0VORElBTiApCisjICBpZiBkZWZpbmVkKCBfQllURV9PUkRFUiApICYmIF9CWVRFX09SREVSID09IF9CSUdfRU5ESUFOCisjICAgIGRlZmluZSBQTEFURk9STV9CWVRFX09SREVSIElTX0JJR19FTkRJQU4KKyMgIGVsaWYgZGVmaW5lZCggX0JZVEVfT1JERVIgKSAmJiBfQllURV9PUkRFUiA9PSBfTElUVExFX0VORElBTgorIyAgICBkZWZpbmUgUExBVEZPUk1fQllURV9PUkRFUiBJU19MSVRUTEVfRU5ESUFOCisjICBlbmRpZgorI2VsaWYgZGVmaW5lZCggX0JJR19FTkRJQU4gKQorIyAgZGVmaW5lIFBMQVRGT1JNX0JZVEVfT1JERVIgSVNfQklHX0VORElBTgorI2VsaWYgZGVmaW5lZCggX0xJVFRMRV9FTkRJQU4gKQorIyAgZGVmaW5lIFBMQVRGT1JNX0JZVEVfT1JERVIgSVNfTElUVExFX0VORElBTgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBfX0JJR19FTkRJQU4gKSAmJiBkZWZpbmVkKCBfX0xJVFRMRV9FTkRJQU4gKQorIyAgaWYgZGVmaW5lZCggX19CWVRFX09SREVSICkgJiYgX19CWVRFX09SREVSID09IF9fQklHX0VORElBTgorIyAgICBkZWZpbmUgUExBVEZPUk1fQllURV9PUkRFUiBJU19CSUdfRU5ESUFOCisjICBlbGlmIGRlZmluZWQoIF9fQllURV9PUkRFUiApICYmIF9fQllURV9PUkRFUiA9PSBfX0xJVFRMRV9FTkRJQU4KKyMgICAgZGVmaW5lIFBMQVRGT1JNX0JZVEVfT1JERVIgSVNfTElUVExFX0VORElBTgorIyAgZW5kaWYKKyNlbGlmIGRlZmluZWQoIF9fQklHX0VORElBTiApCisjICBkZWZpbmUgUExBVEZPUk1fQllURV9PUkRFUiBJU19CSUdfRU5ESUFOCisjZWxpZiBkZWZpbmVkKCBfX0xJVFRMRV9FTkRJQU4gKQorIyAgZGVmaW5lIFBMQVRGT1JNX0JZVEVfT1JERVIgSVNfTElUVExFX0VORElBTgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKCBfX0JJR19FTkRJQU5fXyApICYmIGRlZmluZWQoIF9fTElUVExFX0VORElBTl9fICkKKyMgIGlmIGRlZmluZWQoIF9fQllURV9PUkRFUl9fICkgJiYgX19CWVRFX09SREVSX18gPT0gX19CSUdfRU5ESUFOX18KKyMgICAgZGVmaW5lIFBMQVRGT1JNX0JZVEVfT1JERVIgSVNfQklHX0VORElBTgorIyAgZWxpZiBkZWZpbmVkKCBfX0JZVEVfT1JERVJfXyApICYmIF9fQllURV9PUkRFUl9fID09IF9fTElUVExFX0VORElBTl9fCisjICAgIGRlZmluZSBQTEFURk9STV9CWVRFX09SREVSIElTX0xJVFRMRV9FTkRJQU4KKyMgIGVuZGlmCisjZWxpZiBkZWZpbmVkKCBfX0JJR19FTkRJQU5fXyApCisjICBkZWZpbmUgUExBVEZPUk1fQllURV9PUkRFUiBJU19CSUdfRU5ESUFOCisjZWxpZiBkZWZpbmVkKCBfX0xJVFRMRV9FTkRJQU5fXyApCisjICBkZWZpbmUgUExBVEZPUk1fQllURV9PUkRFUiBJU19MSVRUTEVfRU5ESUFOCisjZW5kaWYKKworLyogIGlmIHRoZSBwbGF0Zm9ybSBieXRlIG9yZGVyIGNvdWxkIG5vdCBiZSBkZXRlcm1pbmVkLCB0aGVuIHRyeSB0byAqLworLyogIHNldCB0aGlzIGRlZmluZSB1c2luZyBjb21tb24gbWFjaGluZSBkZWZpbmVzICAgICAgICAgICAgICAgICAgICAqLworI2lmICFkZWZpbmVkKFBMQVRGT1JNX0JZVEVfT1JERVIpCisKKyNpZiAgIGRlZmluZWQoIF9fYWxwaGFfXyApIHx8IGRlZmluZWQoIF9fYWxwaGEgKSB8fCBkZWZpbmVkKCBpMzg2ICkgICAgICAgfHwgXAorICAgICAgZGVmaW5lZCggX19pMzg2X18gKSAgfHwgZGVmaW5lZCggX01fSTg2ICkgIHx8IGRlZmluZWQoIF9NX0lYODYgKSAgICB8fCBcCisgICAgICBkZWZpbmVkKCBfX09TMl9fICkgICB8fCBkZWZpbmVkKCBzdW4zODYgKSAgfHwgZGVmaW5lZCggX19UVVJCT0NfXyApIHx8IFwKKyAgICAgIGRlZmluZWQoIHZheCApICAgICAgIHx8IGRlZmluZWQoIHZtcyApICAgICB8fCBkZWZpbmVkKCBWTVMgKSAgICAgICAgfHwgXAorICAgICAgZGVmaW5lZCggX19WTVMgKSAgICAgfHwgZGVmaW5lZCggX01fWDY0ICkKKyMgIGRlZmluZSBQTEFURk9STV9CWVRFX09SREVSIElTX0xJVFRMRV9FTkRJQU4KKworI2VsaWYgZGVmaW5lZCggQU1JR0EgKSAgIHx8IGRlZmluZWQoIGFwcGxlYyApICAgIHx8IGRlZmluZWQoIF9fQVM0MDBfXyApICB8fCBcCisgICAgICBkZWZpbmVkKCBfQ1JBWSApICAgfHwgZGVmaW5lZCggX19ocHBhICkgICAgfHwgZGVmaW5lZCggX19ocDkwMDAgKSAgIHx8IFwKKyAgICAgIGRlZmluZWQoIGlibTM3MCApICB8fCBkZWZpbmVkKCBtYzY4MDAwICkgICB8fCBkZWZpbmVkKCBtNjhrICkgICAgICAgfHwgXAorICAgICAgZGVmaW5lZCggX19NUkNfXyApIHx8IGRlZmluZWQoIF9fTVZTX18gKSAgIHx8IGRlZmluZWQoIF9fTVdFUktTX18gKSB8fCBcCisgICAgICBkZWZpbmVkKCBzcGFyYyApICAgfHwgZGVmaW5lZCggX19zcGFyYykgICAgfHwgZGVmaW5lZCggU1lNQU5URUNfQyApIHx8IFwKKyAgICAgIGRlZmluZWQoIF9fVk9TX18gKSB8fCBkZWZpbmVkKCBfX1RJR0NDX18gKSB8fCBkZWZpbmVkKCBfX1RBTkRFTSApICAgfHwgXAorICAgICAgZGVmaW5lZCggVEhJTktfQyApIHx8IGRlZmluZWQoIF9fVk1DTVNfXyApIHx8IGRlZmluZWQoIF9BSVggKQorIyAgZGVmaW5lIFBMQVRGT1JNX0JZVEVfT1JERVIgSVNfQklHX0VORElBTgorCisjZWxpZiBkZWZpbmVkKF9fYXJtX18pCisjIGlmZGVmIF9fQklHX0VORElBTgorIyAgZGVmaW5lIFBMQVRGT1JNX0JZVEVfT1JERVIgSVNfQklHX0VORElBTgorIyBlbHNlCisjICBkZWZpbmUgUExBVEZPUk1fQllURV9PUkRFUiBJU19MSVRUTEVfRU5ESUFOCisjIGVuZGlmCisjZWxpZiAxICAgICAvKiAqKioqIEVESVQgSEVSRSBJRiBORUNFU1NBUlkgKioqKiAqLworIyAgZGVmaW5lIFBMQVRGT1JNX0JZVEVfT1JERVIgSVNfTElUVExFX0VORElBTgorI2VsaWYgMCAgICAgLyogKioqKiBFRElUIEhFUkUgSUYgTkVDRVNTQVJZICoqKiogKi8KKyMgIGRlZmluZSBQTEFURk9STV9CWVRFX09SREVSIElTX0JJR19FTkRJQU4KKyNlbHNlCisjICBlcnJvciBQbGVhc2UgZWRpdCBsaW5lcyAxMzIgb3IgMTM0IGluIGJyZ19lbmRpYW4uaCB0byBzZXQgdGhlIHBsYXRmb3JtIGJ5dGUgb3JkZXIKKyNlbmRpZgorCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9hLm91dCBiL01vZHVsZXMvX3NoYTMva2VjY2FrL2NyeXB0b19oYXNoLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIE1vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Eub3V0CnJlbmFtZSB0byBNb2R1bGVzL19zaGEzL2tlY2Nhay9jcnlwdG9faGFzaC5oCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19zaGEzL3NoYTNtb2R1bGUuYyBiL01vZHVsZXMvX3NoYTMvc2hhM21vZHVsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyY2Q4NWEKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19zaGEzL3NoYTNtb2R1bGUuYwpAQCAtMCwwICsxLDU4NSBAQAorLyogU0hBMyBtb2R1bGUKKyAqCisgKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBhbiBpbnRlcmZhY2UgdG8gdGhlIFNIQTMgYWxnb3JpdGhtCisgKgorICogU2VlIGJlbG93IGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3JpZ2luYWwgY29kZSB0aGlzIG1vZHVsZSB3YXMKKyAqIGJhc2VkIHVwb24uIEFkZGl0aW9uYWwgd29yayBwZXJmb3JtZWQgYnk6CisgKgorICogIEFuZHJldyBLdWNobGluZyAoYW1rQGFtay5jYSkKKyAqICBHcmVnIFN0ZWluIChnc3RlaW5AbHlyYS5vcmcpCisgKiAgVHJldm9yIFBlcnJpbiAodHJldnBAdHJldnAubmV0KQorICogIEdyZWdvcnkgUC4gU21pdGggKGdyZWdAa3J5cHRvLm9yZykKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyICAgQ2hyaXN0aWFuIEhlaW1lcyAoY2hyaXN0aWFuQHB5dGhvbi5vcmcpCisgKiAgTGljZW5zZWQgdG8gUFNGIHVuZGVyIGEgQ29udHJpYnV0b3IgQWdyZWVtZW50LgorICoKKyAqLworCisjaW5jbHVkZSAiUHl0aG9uLmgiCisjaW5jbHVkZSAiLi4vaGFzaGxpYi5oIgorCisvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNIQS0zIChLZWNjYWspCisgKgorICogVGhlIGNvZGUgaXMgYmFzZWQgb24gS2VjY2FrUmVmZXJlbmNlQW5kT3B0aW1pemVkLTMuMi56aXAgZnJvbSAyOSBNYXkgMjAxMi4KKyAqCisgKiBUaGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGlzIGFsdGVyZWQgaW4gdGhpcyBwb2ludHM6CisgKiAgLSBDKysgY29tbWVudHMgYXJlIGNvbnZlcnRlZCB0byBBTlNJIEMgY29tbWVudHMuCisgKiAgLSBBbGwgZnVuY3Rpb25zIGFuZCBnbG9iYWxzIGFyZSBkZWNsYXJlZCBzdGF0aWMuCisgKiAgLSBUaGUgdHlwZWRlZiBmb3IgVUlOVDY0IGlzIGNvbW1lbnRlZCBvdXQuCisgKiAgLSBLZWNjYWtGLTE2MDAtb3B0WzMyfDY0XS1zZXR0aW5ncy5oIGFyZSBjb21tZW50ZWQgb3V0CisgKiAgLSBTb21lIHVudXNlZCBmdW5jdGlvbnMgYXJlIGNvbW1lbnRlZCBvdXQgdG8gc2lsZW5jZSBjb21waWxlciB3YXJuaW5ncy4KKyAqCisgKiBJbiBvcmRlciB0byBhdm9pZCBuYW1lIGNsYXNoZXMgd2l0aCBvdGhlciBzb2Z0d2FyZSBJIGhhdmUgdG8gZGVjbGFyZSBhbGwKKyAqIEtlY2NhayBmdW5jdGlvbnMgYW5kIGdsb2JhbCBkYXRhIGFzIHN0YXRpYy4gVGhlIEMgY29kZSBpcyBkaXJlY3RseQorICogaW5jbHVkZWQgaW50byB0aGlzIGZpbGUgaW4gb3JkZXIgdG8gYWNjZXNzIHRoZSBzdGF0aWMgZnVuY3Rpb25zLgorICoKKyAqIEtlY2NhayBjYW4gYmUgdHVuZWQgd2l0aCBzZXZlcmFsIHBhcmFtZW50ZXJzLiBJIHRyeSB0byBleHBsYWluIGFsbCBvcHRpb25zCisgKiBhcyBmYXIgYXMgSSB1bmRlcnN0YW5kIHRoZW0uIFRoZSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gYWxzbyBjb250YWlucworICogYXNzZW1ibGVyIGNvZGUgZm9yIEFSTSBwbGF0Zm9ybXMgKE5FT04gaW5zdHJ1Y3Rpb25zKS4KKyAqCisgKiBDb21tb24KKyAqID09PT09PQorICoKKyAqIE9wdGlvbnM6CisgKiAgIFVzZUJlYmlnb2tpbWlzYSwgVW5yb2xsaW5nCisgKgorICogLSBVbnJvbGxpbmc6IGxvb3AgdW5yb2xsaW5nICgyNCwgMTIsIDgsIDYsIDQsIDMsIDIsIDEpCisgKiAtIFVzZUJlYmlnb2tpbWlzYTogbGFuZSBjb21wbGVtZW50aW5nCisgKgorICogNjRiaXQgcGxhdGZvcm1zCisgKiA9PT09PT09PT09PT09PT0KKyAqCisgKiBBZGRpdGlvbmFsIG9wdGlvbnM6CisgKiAgIFVzZVNTRSwgVXNlT25seVNJTUQ2NCwgVXNlTU1YLCBVc2VYT1AsIFVzZVNITEQKKyAqCisgKiBPcHRpbWl6ZWQgaW5zdHJ1Y3Rpb25zIChkaXNhYmxlZCBieSBkZWZhdWx0KToKKyAqICAgLSBVc2VTU0U6IHVzZSBTdHJlYW0gU0lNRCBleHRlbnNpb25zCisgKiAgICAgbyBVc2VPbmx5U0lNRDY0OiBsaW1pdCB0byA2NGJpdCBpbnN0cnVjdGlvbnMsIG90aGVyd2lzZSAxMjhiaXQKKyAqICAgICBvIHcvbyBVc2VPbmx5U0lNRDY0OiByZXF1aXJlcyBjb21waWxlciBhZ3VtZW50IC1tc3NzZTMgb3IgLW10dW5lCisgKiAgIC0gVXNlTU1YOiB1c2UgNjRiaXQgTU1YIGluc3RydWN0aW9ucworICogICAtIFVzZVhPUDogdXNlIEFNRCdzIGVYdGVuZGVkIE9wZXJhdGlvbnMgKDEyOGJpdCBTU0UgZXh0ZW5zaW9uKQorICoKKyAqIE90aGVyOgorICogICAtIFVucm9sbGluZzogZGVmYXVsdCAyNAorICogICAtIFVzZUJlYmlnb2tpbWlzYTogZGVmYXVsdCAxCisgKgorICogV2hlbiBuZWl0aGVyIFVzZVNTRSwgVXNlTU1YIG5vciBVc2VYT1AgaXMgY29uZmlndXJlZCwgUk9MNjQgKHJvdGF0ZSBsZWZ0CisgKiA2NCkgaXMgaW1wbGVtZW50ZWQgYXM6CisgKiAgIC0gV2luZG93czogX3JvdGw2NCgpCisgKiAgIC0gVXNlU0hMRDogdXNlIHNobGQgKHNoaWZ0IGxlZnQpIGFzbSBvcHRpbWl6YXRpb24KKyAqICAgLSBvdGhlcndpc2U6IHNoaWZ0IGFuZCB4b3IKKyAqCisgKiBVc2VCZWJpZ29raW1pc2EgY2FuJ3QgYmUgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIFVzZVNTRSwgVXNlTU1YIG9yCisgKiBVc2VYT1AuIFVzZU9ubHlTSU1ENjQgaGFzIG5vIGVmZmVjdCB1bmxlc3MgVXNlU1NFIGlzIHNwZWNpZmllZC4KKyAqCisgKiBUZXN0cyBoYXZlIHNob3duIHRoYXQgVXNlU1NFICsgVXNlT25seVNJTUQ2NCBpcyBhYm91dCB0aHJlZSB0byBmb3VyCisgKiB0aW1lcyBTTE9XRVIgdGhhbiBVc2VCZWJpZ29raW1pc2EuIFVzZVNTRSBhbmQgVXNlTU1YIGFyZSBhYm91dCB0d28gdGltZXMKKyAqIHNsb3dlci4gKHRlc3RlZCBieSBDSCBhbmQgQVApCisgKgorICogMzJiaXQgcGxhdGZvcm1zCisgKiA9PT09PT09PT09PT09PT0KKyAqCisgKiBBZGRpdGlvbmFsIG9wdGlvbnM6CisgKiAgIFVzZUludGVybGVhdmVUYWJsZXMsIFVzZVNjaGVkdWxlCisgKgorICogICAtIFVucm9sbGluZzogZGVmYXVsdCAyCisgKiAgIC0gVXNlQmViaWdva2ltaXNhOiBkZWZhdWx0IG4vYQorICogICAtIFVzZVNjaGVkdWxlOiA/Pz8sICgxLCAyLCAzOyBkZWZhdWx0IDMpCisgKiAgIC0gVXNlSW50ZXJsZWF2ZVRhYmxlczogdXNlIHR3byA2NGsgbG9va3VwIHRhYmxlcyBmb3IgKGRlKWludGVybGVhdmluZworICogICAgIGRlZmF1bHQ6IG4vYQorICoKKyAqIHNjaGVkdWxlczoKKyAqICAgLSAzOiBubyBVc2VCZWJpZ29raW1pc2EsIFVucm9sbGluZyBtdXN0IGJlIDIKKyAqICAgLSAyICsgMTogPz8/CisgKgorICogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIF9fc3BhcmMKKyAgLyogb3B0NjQgdXNlcyB1bi1hbGlnbmVkIG1lbW9yeSBhY2Nlc3MgdGhhdCBjYXVzZXMgYSBCVVMgZXJyb3Igd2l0aCBtc2cKKyAgICogJ2ludmFsaWQgYWRkcmVzcyBhbGlnbm1lbnQnIG9uIFNQQVJDLiAqLworICAjZGVmaW5lIEtlY2Nha09wdCAzMgorI2VsaWYgU0laRU9GX1ZPSURfUCA9PSA4ICYmIGRlZmluZWQoUFlfVUlOVDY0X1QpCisgIC8qIG9wdDY0IHdvcmtzIG9ubHkgZm9yIDY0Yml0IHBsYXRmb3JtcyB3aXRoIHVuc2lnbmVkIGludDY0ICovCisgICNkZWZpbmUgS2VjY2FrT3B0IDY0CisjZWxzZQorICAvKiBvcHQzMiBpcyB1c2VkIGZvciB0aGUgcmVtYWluaW5nIDMyIGFuZCA2NGJpdCBwbGF0Zm9ybXMgKi8KKyAgI2RlZmluZSBLZWNjYWtPcHQgMzIKKyNlbmRpZgorCisjaWYgS2VjY2FrT3B0ID09IDY0ICYmIGRlZmluZWQoUFlfVUlOVDY0X1QpCisgIC8qIDY0Yml0IHBsYXRmb3JtcyB3aXRoIHVuc2lnbmVkIGludDY0ICovCisgICNkZWZpbmUgVW5yb2xsaW5nIDI0CisgICNkZWZpbmUgVXNlQmViaWdva2ltaXNhCisgIHR5cGVkZWYgUFlfVUlOVDY0X1QgVUlOVDY0OworI2VsaWYgS2VjY2FrT3B0ID09IDMyICYmIGRlZmluZWQoUFlfVUlOVDY0X1QpCisgIC8qIDMyYml0IHBsYXRmb3JtcyB3aXRoIHVuc2lnbmVkIGludDY0ICovCisgICNkZWZpbmUgVW5yb2xsaW5nIDIKKyAgI2RlZmluZSBVc2VTY2hlZHVsZSAzCisgIHR5cGVkZWYgUFlfVUlOVDY0X1QgVUlOVDY0OworI2Vsc2UKKyAgLyogMzIgb3IgNjRiaXQgcGxhdGZvcm1zIHdpdGhvdXQgdW5zaWduZWQgaW50NjQgKi8KKyAgI2RlZmluZSBVbnJvbGxpbmcgMgorICAjZGVmaW5lIFVzZVNjaGVkdWxlIDMKKyAgI2RlZmluZSBVc2VJbnRlcmxlYXZlVGFibGVzCisjZW5kaWYKKworLyogcmVwbGFjZW1lbnQgZm9yIGJyZ19lbmRpYW4uaCAqLworI2RlZmluZSBJU19CSUdfRU5ESUFOIDQzMjEKKyNkZWZpbmUgSVNfTElUVExFX0VORElBTiAxMjM0CisjaWYgUFlfQklHX0VORElBTgorIyAgZGVmaW5lIFBMQVRGT1JNX0JZVEVfT1JERVIgSVNfQklHX0VORElBTgorI2Vsc2UKKyMgIGRlZmluZSBQTEFURk9STV9CWVRFX09SREVSIElTX0xJVFRMRV9FTkRJQU4KKyNlbmRpZgorCisvKiBpbmxpbmUgYWxsIEtlY2NhayBkZXBlbmRlbmNpZXMgKi8KKyNpbmNsdWRlICJrZWNjYWsvS2VjY2FrTklTVEludGVyZmFjZS5oIgorI2luY2x1ZGUgImtlY2Nhay9LZWNjYWtOSVNUSW50ZXJmYWNlLmMiCisjaW5jbHVkZSAia2VjY2FrL0tlY2Nha1Nwb25nZS5jIgorI2lmIEtlY2Nha09wdCA9PSA2NAorICAjaW5jbHVkZSAia2VjY2FrL0tlY2Nha0YtMTYwMC1vcHQ2NC5jIgorI2VsaWYgS2VjY2FrT3B0ID09IDMyCisgICNpbmNsdWRlICJrZWNjYWsvS2VjY2FrRi0xNjAwLW9wdDMyLmMiCisjZW5kaWYKKworLyogI2RlZmluZSBTSEEzX0JMT0NLU0laRSAyMDAgLy8gMTYwMCBiaXRzICAqLworI2RlZmluZSBTSEEzX01BWF9ESUdFU1RTSVpFIDY0IC8qIDUxMiBiaXRzICovCisjZGVmaW5lIFNIQTNfc3RhdGUgaGFzaFN0YXRlCisjZGVmaW5lIFNIQTNfaW5pdCBJbml0CisjZGVmaW5lIFNIQTNfcHJvY2VzcyBVcGRhdGUKKyNkZWZpbmUgU0hBM19kb25lIEZpbmFsCisjZGVmaW5lIFNIQTNfY29weXN0YXRlKGRlc3QsIHNyYykgbWVtY3B5KCYoZGVzdCksICYoc3JjKSwgc2l6ZW9mKFNIQTNfc3RhdGUpKQorI2RlZmluZSBTSEEzX2NsZWFyc3RhdGUoc3RhdGUpIG1lbXNldCgmKHN0YXRlKSwgMCwgc2l6ZW9mKFNIQTNfc3RhdGUpKQorCisvKiBUaGUgc3RydWN0dXJlIGZvciBzdG9yaW5nIFNIQTMgaW5mbyAqLworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3RfSEVBRAorICAgIGludCBoYXNoYml0bGVuOworICAgIFNIQTNfc3RhdGUgaGFzaF9zdGF0ZTsKKyNpZmRlZiBXSVRIX1RIUkVBRAorICAgIFB5VGhyZWFkX3R5cGVfbG9jayBsb2NrOworI2VuZGlmCisKK30gU0hBM29iamVjdDsKKworc3RhdGljIFB5VHlwZU9iamVjdCBTSEEzdHlwZTsKKworCitzdGF0aWMgU0hBM29iamVjdCAqCituZXdTSEEzb2JqZWN0KGludCBoYXNoYml0bGVuKQoreworICAgIFNIQTNvYmplY3QgKm5ld29iajsKKworICAgIC8qIGNoZWNrIGhhc2hiaXRsZW4gKi8KKyAgICBzd2l0Y2goaGFzaGJpdGxlbikgeworICAgICAgICAvKiBzdXBwb3J0ZWQgaGFzaCBsZW5ndGggKi8KKyAgICAgICAgY2FzZSAyMjQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNTY6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzODQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MTI6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgLyogIGFyYml0cmFyaWx5LWxvbmcgb3V0cHV0IGlzbid0IHN1cHBvcnRlZCBieSB0aGlzIG1vZHVsZSAqLworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgLyogZXZlcnl0aGluZyBlbHNlIGlzIGFuIGVycm9yICovCisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgImhhc2hiaXRsZW4gbXVzdCBiZSBvbmUgb2YgMjI0LCAyNTYsIDM4NCBvciA1MTIuIik7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgbmV3b2JqID0gKFNIQTNvYmplY3QgKilQeU9iamVjdF9OZXcoU0hBM29iamVjdCwgJlNIQTN0eXBlKTsKKyAgICBpZiAobmV3b2JqID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIG5ld29iai0+aGFzaGJpdGxlbiA9IGhhc2hiaXRsZW47CisjaWZkZWYgV0lUSF9USFJFQUQKKyAgICBuZXdvYmotPmxvY2sgPSBOVUxMOworI2VuZGlmCisgICAgcmV0dXJuIG5ld29iajsKK30KKworCisvKiBJbnRlcm5hbCBtZXRob2RzIGZvciBhIGhhc2ggb2JqZWN0ICovCisKK3N0YXRpYyB2b2lkCitTSEEzX2RlYWxsb2MoU0hBM29iamVjdCAqc2VsZikKK3sKKyAgICBTSEEzX2NsZWFyc3RhdGUoc2VsZi0+aGFzaF9zdGF0ZSk7CisjaWZkZWYgV0lUSF9USFJFQUQKKyAgICBpZiAoc2VsZi0+bG9jaykgeworICAgICAgICBQeVRocmVhZF9mcmVlX2xvY2soc2VsZi0+bG9jayk7CisgICAgfQorI2VuZGlmCisgICAgUHlPYmplY3RfRGVsKHNlbGYpOworfQorCisKKy8qIEV4dGVybmFsIG1ldGhvZHMgZm9yIGEgaGFzaCBvYmplY3QgKi8KKworUHlEb2NfU1RSVkFSKFNIQTNfY29weV9fZG9jX18sICJSZXR1cm4gYSBjb3B5IG9mIHRoZSBoYXNoIG9iamVjdC4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK1NIQTNfY29weShTSEEzb2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdW51c2VkKQoreworICAgIFNIQTNvYmplY3QgKm5ld29iajsKKworICAgIGlmICgobmV3b2JqID0gbmV3U0hBM29iamVjdChzZWxmLT5oYXNoYml0bGVuKSkgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgRU5URVJfSEFTSExJQihzZWxmKTsKKyAgICBTSEEzX2NvcHlzdGF0ZShuZXdvYmotPmhhc2hfc3RhdGUsIHNlbGYtPmhhc2hfc3RhdGUpOworICAgIExFQVZFX0hBU0hMSUIoc2VsZik7CisgICAgcmV0dXJuIChQeU9iamVjdCAqKW5ld29iajsKK30KKworCitQeURvY19TVFJWQVIoU0hBM19kaWdlc3RfX2RvY19fLAorIlJldHVybiB0aGUgZGlnZXN0IHZhbHVlIGFzIGEgc3RyaW5nIG9mIGJpbmFyeSBkYXRhLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorU0hBM19kaWdlc3QoU0hBM29iamVjdCAqc2VsZiwgUHlPYmplY3QgKnVudXNlZCkKK3sKKyAgICB1bnNpZ25lZCBjaGFyIGRpZ2VzdFtTSEEzX01BWF9ESUdFU1RTSVpFXTsKKyAgICBTSEEzX3N0YXRlIHRlbXA7CisgICAgSGFzaFJldHVybiByZXM7CisKKyAgICBFTlRFUl9IQVNITElCKHNlbGYpOworICAgIFNIQTNfY29weXN0YXRlKHRlbXAsIHNlbGYtPmhhc2hfc3RhdGUpOworICAgIExFQVZFX0hBU0hMSUIoc2VsZik7CisgICAgcmVzID0gU0hBM19kb25lKCZ0ZW1wLCBkaWdlc3QpOworICAgIFNIQTNfY2xlYXJzdGF0ZSh0ZW1wKTsKKyAgICBpZiAocmVzICE9IFNVQ0NFU1MpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwgImludGVybmFsIGVycm9yIGluIFNIQTMgRmluYWwoKSIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoKGNvbnN0IGNoYXIgKilkaWdlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPmhhc2hiaXRsZW4gLyA4KTsKK30KKworCitQeURvY19TVFJWQVIoU0hBM19oZXhkaWdlc3RfX2RvY19fLAorIlJldHVybiB0aGUgZGlnZXN0IHZhbHVlIGFzIGEgc3RyaW5nIG9mIGhleGFkZWNpbWFsIGRpZ2l0cy4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK1NIQTNfaGV4ZGlnZXN0KFNIQTNvYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp1bnVzZWQpCit7CisgICAgdW5zaWduZWQgY2hhciBkaWdlc3RbU0hBM19NQVhfRElHRVNUU0laRV07CisgICAgU0hBM19zdGF0ZSB0ZW1wOworICAgIEhhc2hSZXR1cm4gcmVzOworICAgIFB5T2JqZWN0ICpyZXR2YWw7CisgICAgUHlfVUNTMSAqaGV4X2RpZ2VzdDsKKyAgICBpbnQgZGlnZXN0bGVuLCBpLCBqOworCisgICAgLyogR2V0IHRoZSByYXcgKGJpbmFyeSkgZGlnZXN0IHZhbHVlICovCisgICAgRU5URVJfSEFTSExJQihzZWxmKTsKKyAgICBTSEEzX2NvcHlzdGF0ZSh0ZW1wLCBzZWxmLT5oYXNoX3N0YXRlKTsKKyAgICBMRUFWRV9IQVNITElCKHNlbGYpOworICAgIHJlcyA9IFNIQTNfZG9uZSgmdGVtcCwgZGlnZXN0KTsKKyAgICBTSEEzX2NsZWFyc3RhdGUodGVtcCk7CisgICAgaWYgKHJlcyAhPSBTVUNDRVNTKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsICJpbnRlcm5hbCBlcnJvciBpbiBTSEEzIEZpbmFsKCkiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLyogQ3JlYXRlIGEgbmV3IHN0cmluZyAqLworICAgIGRpZ2VzdGxlbiA9IHNlbGYtPmhhc2hiaXRsZW4gLyA4OworICAgIHJldHZhbCA9IFB5VW5pY29kZV9OZXcoZGlnZXN0bGVuICogMiwgMTI3KTsKKyAgICBpZiAoIXJldHZhbCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgIGhleF9kaWdlc3QgPSBQeVVuaWNvZGVfMUJZVEVfREFUQShyZXR2YWwpOworCisgICAgLyogTWFrZSBoZXggdmVyc2lvbiBvZiB0aGUgZGlnZXN0ICovCisgICAgZm9yKGk9aj0wOyBpIDwgZGlnZXN0bGVuOyBpKyspIHsKKyAgICAgICAgdW5zaWduZWQgY2hhciBjOworICAgICAgICBjID0gKGRpZ2VzdFtpXSA+PiA0KSAmIDB4ZjsKKyAgICAgICAgaGV4X2RpZ2VzdFtqKytdID0gUHlfaGV4ZGlnaXRzW2NdOworICAgICAgICBjID0gKGRpZ2VzdFtpXSAmIDB4Zik7CisgICAgICAgIGhleF9kaWdlc3RbaisrXSA9IFB5X2hleGRpZ2l0c1tjXTsKKyAgICB9CisjaWZkZWYgUHlfREVCVUcKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHJldHZhbCwgMSkpOworI2VuZGlmCisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUHlEb2NfU1RSVkFSKFNIQTNfdXBkYXRlX19kb2NfXywKKyJVcGRhdGUgdGhpcyBoYXNoIG9iamVjdCdzIHN0YXRlIHdpdGggdGhlIHByb3ZpZGVkIHN0cmluZy4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK1NIQTNfdXBkYXRlKFNIQTNvYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5T2JqZWN0ICpvYmo7CisgICAgUHlfYnVmZmVyIGJ1ZjsKKyAgICBIYXNoUmV0dXJuIHJlczsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTzp1cGRhdGUiLCAmb2JqKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBHRVRfQlVGRkVSX1ZJRVdfT1JfRVJST1VUKG9iaiwgJmJ1Zik7CisKKyAgICAvKiBhZGQgbmV3IGRhdGEsIHRoZSBmdW5jdGlvbiB0YWtlcyB0aGUgbGVuZ3RoIGluIGJpdHMgbm90IGJ5dGVzICovCisjaWZkZWYgV0lUSF9USFJFQURTCisgICAgaWYgKHNlbGYtPmxvY2sgPT0gTlVMTCAmJiBidWYubGVuID49IEhBU0hMSUJfR0lMX01JTlNJWkUpIHsKKyAgICAgICAgc2VsZi0+bG9jayA9IFB5VGhyZWFkX2FsbG9jYXRlX2xvY2soKTsKKyAgICB9CisgICAgLyogT25jZSBhIGxvY2sgZXhpc3RzIGFsbCBjb2RlIHBhdGhzIG11c3QgYmUgc3luY2hyb25pemVkLiBXZSBoYXZlIHRvCisgICAgICogcmVsZWFzZSB0aGUgR0lMIGV2ZW4gZm9yIHNtYWxsIGJ1ZmZlcnMgYXMgYWNxdWlyaW5nIHRoZSBsb2NrIG1heSB0YWtlCisgICAgICogYW4gdW5saW1pdGVkIGFtb3VudCBvZiB0aW1lIHdoZW4gYW5vdGhlciB0aHJlYWQgdXBkYXRlcyB0aGlzIG9iamVjdAorICAgICAqIHdpdGggbG90cyBvZiBkYXRhLiAqLworICAgIGlmIChzZWxmLT5sb2NrKSB7CisgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgUHlUaHJlYWRfYWNxdWlyZV9sb2NrKHNlbGYtPmxvY2ssIDEpOworICAgICAgICByZXMgPSBTSEEzX3Byb2Nlc3MoJnNlbGYtPmhhc2hfc3RhdGUsIGJ1Zi5idWYsIGJ1Zi5sZW4gKiA4KTsKKyAgICAgICAgUHlUaHJlYWRfcmVsZWFzZV9sb2NrKHNlbGYtPmxvY2spOworICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmVzID0gU0hBM19wcm9jZXNzKCZzZWxmLT5oYXNoX3N0YXRlLCBidWYuYnVmLCBidWYubGVuICogOCk7CisgICAgfQorI2Vsc2UKKyAgICByZXMgPSBTSEEzX3Byb2Nlc3MoJnNlbGYtPmhhc2hfc3RhdGUsIGJ1Zi5idWYsIGJ1Zi5sZW4gKiA4KTsKKyNlbmRpZgorICAgIExFQVZFX0hBU0hMSUIoc2VsZik7CisKKyAgICBpZiAocmVzICE9IFNVQ0NFU1MpIHsKKyAgICAgICAgUHlCdWZmZXJfUmVsZWFzZSgmYnVmKTsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlcm5hbCBlcnJvciBpbiBTSEEzIFVwZGF0ZSgpIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIFB5QnVmZmVyX1JlbGVhc2UoJmJ1Zik7CisgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgIHJldHVybiBQeV9Ob25lOworfQorCitzdGF0aWMgUHlNZXRob2REZWYgU0hBM19tZXRob2RzW10gPSB7CisgICAgeyJjb3B5IiwgICAgICAoUHlDRnVuY3Rpb24pU0hBM19jb3B5LCAgICAgIE1FVEhfTk9BUkdTLAorICAgICAgICAgU0hBM19jb3B5X19kb2NfX30sCisgICAgeyJkaWdlc3QiLCAgICAoUHlDRnVuY3Rpb24pU0hBM19kaWdlc3QsICAgIE1FVEhfTk9BUkdTLAorICAgICAgICAgU0hBM19kaWdlc3RfX2RvY19ffSwKKyAgICB7ImhleGRpZ2VzdCIsIChQeUNGdW5jdGlvbilTSEEzX2hleGRpZ2VzdCwgTUVUSF9OT0FSR1MsCisgICAgICAgICBTSEEzX2hleGRpZ2VzdF9fZG9jX199LAorICAgIHsidXBkYXRlIiwgICAgKFB5Q0Z1bmN0aW9uKVNIQTNfdXBkYXRlLCAgICBNRVRIX1ZBUkFSR1MsCisgICAgICAgICBTSEEzX3VwZGF0ZV9fZG9jX199LAorICAgIHtOVUxMLCAgICAgICAgTlVMTH0gICAgICAgICAvKiBzZW50aW5lbCAqLworfTsKKworc3RhdGljIFB5T2JqZWN0ICoKK1NIQTNfZ2V0X2Jsb2NrX3NpemUoU0hBM29iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSkKK3sKKyAgICAvKiBITUFDLVNIQTMgaGFzbid0IGJlZW4gc3BlY2lmaWVkIHlldCBhbmQgbm8gb2ZmaWNpYWwgdGVzdCB2ZWN0b3JzIGFyZQorICAgICAqIGF2YWlsYWJsZS4gVGh1cyBibG9ja19zaXplIHJldHVybnMgTm90SW1wbGVtZW50ZWQgdG8gcHJldmVudCBwZW9wbGUKKyAgICAgKiBmcm9tIHVzaW5nIFNIQTMgd2l0aCB0aGUgaG1hYyBtb2R1bGUuCisgICAgICovCisgICAgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorU0hBM19nZXRfbmFtZShTSEEzb2JqZWN0ICpzZWxmLCB2b2lkICpjbG9zdXJlKQoreworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgic2hhM18laSIsIHNlbGYtPmhhc2hiaXRsZW4pOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorU0hBM19nZXRfZGlnZXN0X3NpemUoU0hBM29iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSkKK3sKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKHNlbGYtPmhhc2hiaXRsZW4gLyA4KTsKK30KKworCitzdGF0aWMgUHlHZXRTZXREZWYgU0hBM19nZXRzZXRlcnNbXSA9IHsKKyAgICB7ImJsb2NrX3NpemUiLCAoZ2V0dGVyKVNIQTNfZ2V0X2Jsb2NrX3NpemUsIE5VTEwsIE5VTEwsIE5VTEx9LAorICAgIHsibmFtZSIsIChnZXR0ZXIpU0hBM19nZXRfbmFtZSwgTlVMTCwgTlVMTCwgTlVMTH0sCisgICAgeyJkaWdlc3Rfc2l6ZSIsIChnZXR0ZXIpU0hBM19nZXRfZGlnZXN0X3NpemUsIE5VTEwsIE5VTEwsIE5VTEx9LAorICAgIHtOVUxMfSAgLyogU2VudGluZWwgKi8KK307CisKK3N0YXRpYyBQeVR5cGVPYmplY3QgU0hBM3R5cGUgPSB7CisgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCisgICAgIl9zaGEzLlNIQTMiLCAgICAgICAvKiB0cF9uYW1lICovCisgICAgc2l6ZW9mKFNIQTNvYmplY3QpLCAvKiB0cF9zaXplICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLworICAgIC8qICBtZXRob2RzICAqLworICAgIChkZXN0cnVjdG9yKVNIQTNfZGVhbGxvYywgLyogdHBfZGVhbGxvYyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyogdHBfcHJpbnQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qIHRwX3Jlc2VydmVkICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKiB0cF9yZXByICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKiB0cF9hc19udW1iZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX3NlcXVlbmNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKiB0cF9hc19tYXBwaW5nICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKiB0cF9oYXNoICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKiB0cF9jYWxsICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKiB0cF9zdHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHJvICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyogdHBfYXNfYnVmZmVyICovCisgICAgUHlfVFBGTEFHU19ERUZBVUxULCAvKiB0cF9mbGFncyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKiB0cF90cmF2ZXJzZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KKyAgICBTSEEzX21ldGhvZHMsICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KKyAgICBTSEEzX2dldHNldGVycywgICAgIC8qIHRwX2dldHNldCAqLworfTsKKworCisvKiBjb25zdHJ1Y3RvciBoZWxwZXIgKi8KK3N0YXRpYyBQeU9iamVjdCAqCitTSEEzX2ZhY3RvcnkoUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RpY3QsIGNvbnN0IGNoYXIgKmZtdCwKKyAgICAgICAgICAgICBpbnQgaGFzaGJpdGxlbikKK3sKKyAgICBTSEEzb2JqZWN0ICpuZXdvYmogPSBOVUxMOworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsic3RyaW5nIiwgTlVMTH07CisgICAgUHlPYmplY3QgKmRhdGFfb2JqID0gTlVMTDsKKyAgICBQeV9idWZmZXIgYnVmOworICAgIEhhc2hSZXR1cm4gcmVzOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkaWN0LCBmbXQsIGt3bGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YV9vYmopKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmIChkYXRhX29iaikKKyAgICAgICAgR0VUX0JVRkZFUl9WSUVXX09SX0VSUk9VVChkYXRhX29iaiwgJmJ1Zik7CisKKyAgICBpZiAoKG5ld29iaiA9IG5ld1NIQTNvYmplY3QoaGFzaGJpdGxlbikpID09IE5VTEwpIHsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisKKyAgICBpZiAoU0hBM19pbml0KCZuZXdvYmotPmhhc2hfc3RhdGUsIGhhc2hiaXRsZW4pICE9IFNVQ0NFU1MpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlcm5hbCBlcnJvciBpbiBTSEEzIFVwZGF0ZSgpIik7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorCisgICAgaWYgKGRhdGFfb2JqKSB7CisjaWZkZWYgV0lUSF9USFJFQURTCisgICAgICAgIGlmIChidWYubGVuID49IEhBU0hMSUJfR0lMX01JTlNJWkUpIHsKKyAgICAgICAgICAgIC8qIGludmFyaWFudDogTmV3IG9iamVjdHMgY2FuJ3QgYmUgYWNjZXNzZWQgYnkgb3RoZXIgY29kZSB5ZXQsCisgICAgICAgICAgICAgKiB0aHVzIGl0J3Mgc2FmZSB0byByZWxlYXNlIHRoZSBHSUwgd2l0aG91dCBsb2NraW5nIHRoZSBvYmplY3QuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgICAgIHJlcyA9IFNIQTNfcHJvY2VzcygmbmV3b2JqLT5oYXNoX3N0YXRlLCBidWYuYnVmLCBidWYubGVuICogOCk7CisgICAgICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmVzID0gU0hBM19wcm9jZXNzKCZuZXdvYmotPmhhc2hfc3RhdGUsIGJ1Zi5idWYsIGJ1Zi5sZW4gKiA4KTsKKyAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgcmVzID0gU0hBM19wcm9jZXNzKCZuZXdvYmotPmhhc2hfc3RhdGUsIGJ1Zi5idWYsIGJ1Zi5sZW4gKiA4KTsKKyNlbmRpZgorICAgICAgICBpZiAocmVzICE9IFNVQ0NFU1MpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVybmFsIGVycm9yIGluIFNIQTMgVXBkYXRlKCkiKTsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgUHlCdWZmZXJfUmVsZWFzZSgmYnVmKTsKKyAgICB9CisKKyAgICByZXR1cm4gKFB5T2JqZWN0ICopbmV3b2JqOworCisgIGVycm9yOgorICAgIGlmIChuZXdvYmopIHsKKyAgICAgICAgU0hBM19kZWFsbG9jKG5ld29iaik7CisgICAgfQorICAgIGlmIChkYXRhX29iaikgeworICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZidWYpOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKKworfQorCitQeURvY19TVFJWQVIoc2hhM18yMjRfX2RvY19fLAorInNoYTNfMjI0KFtzdHJpbmddKSAtPiBTSEEzIG9iamVjdFxuXAorXG5cCitSZXR1cm4gYSBuZXcgU0hBMyBoYXNoIG9iamVjdCB3aXRoIGEgaGFzaGJpdCBsZW5ndGggb2YgMjggYnl0ZXMuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitzaGEzXzIyNChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RpY3QpCit7CisgICAgcmV0dXJuIFNIQTNfZmFjdG9yeShhcmdzLCBrd2RpY3QsICJ8TzpzaGEzXzIyNCIsIDIyNCk7Cit9CisKKworUHlEb2NfU1RSVkFSKHNoYTNfMjU2X19kb2NfXywKKyJzaGEzXzI1Nihbc3RyaW5nXSkgLT4gU0hBMyBvYmplY3RcblwKK1xuXAorUmV0dXJuIGEgbmV3IFNIQTMgaGFzaCBvYmplY3Qgd2l0aCBhIGhhc2hiaXQgbGVuZ3RoIG9mIDMyIGJ5dGVzLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorc2hhM18yNTYoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkaWN0KQoreworICAgIHJldHVybiBTSEEzX2ZhY3RvcnkoYXJncywga3dkaWN0LCAifE86c2hhM18yNTYiLCAyNTYpOworfQorCitQeURvY19TVFJWQVIoc2hhM18zODRfX2RvY19fLAorInNoYTNfMzg0KFtzdHJpbmddKSAtPiBTSEEzIG9iamVjdFxuXAorXG5cCitSZXR1cm4gYSBuZXcgU0hBMyBoYXNoIG9iamVjdCB3aXRoIGEgaGFzaGJpdCBsZW5ndGggb2YgNDggYnl0ZXMuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitzaGEzXzM4NChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RpY3QpCit7CisgICAgcmV0dXJuIFNIQTNfZmFjdG9yeShhcmdzLCBrd2RpY3QsICJ8TzpzaGEzXzM4NCIsIDM4NCk7Cit9CisKK1B5RG9jX1NUUlZBUihzaGEzXzUxMl9fZG9jX18sCisic2hhM181MTIoW3N0cmluZ10pIC0+IFNIQTMgb2JqZWN0XG5cCitcblwKK1JldHVybiBhIG5ldyBTSEEzIGhhc2ggb2JqZWN0IHdpdGggYSBoYXNoYml0IGxlbmd0aCBvZiA2NCBieXRlcy4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3NoYTNfNTEyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZGljdCkKK3sKKyAgICByZXR1cm4gU0hBM19mYWN0b3J5KGFyZ3MsIGt3ZGljdCwgInxPOnNoYTNfNTEyIiwgNTEyKTsKK30KKworCisvKiBMaXN0IG9mIGZ1bmN0aW9ucyBleHBvcnRlZCBieSB0aGlzIG1vZHVsZSAqLworc3RhdGljIHN0cnVjdCBQeU1ldGhvZERlZiBTSEEzX2Z1bmN0aW9uc1tdID0geworICAgIHsic2hhM18yMjQiLCAoUHlDRnVuY3Rpb24pc2hhM18yMjQsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLAorICAgICAgICAgc2hhM18yMjRfX2RvY19ffSwKKyAgICB7InNoYTNfMjU2IiwgKFB5Q0Z1bmN0aW9uKXNoYTNfMjU2LCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywKKyAgICAgICAgIHNoYTNfMjU2X19kb2NfX30sCisgICAgeyJzaGEzXzM4NCIsIChQeUNGdW5jdGlvbilzaGEzXzM4NCwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsCisgICAgICAgICBzaGEzXzM4NF9fZG9jX199LAorICAgIHsic2hhM181MTIiLCAoUHlDRnVuY3Rpb24pc2hhM181MTIsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLAorICAgICAgICAgc2hhM181MTJfX2RvY19ffSwKKyAgICB7TlVMTCwgICAgICBOVUxMfSAgICAgICAgICAgIC8qIFNlbnRpbmVsICovCit9OworCisKKy8qIEluaXRpYWxpemUgdGhpcyBtb2R1bGUuICovCitzdGF0aWMgc3RydWN0IFB5TW9kdWxlRGVmIF9TSEEzbW9kdWxlID0geworICAgICAgICBQeU1vZHVsZURlZl9IRUFEX0lOSVQsCisgICAgICAgICJfc2hhMyIsCisgICAgICAgIE5VTEwsCisgICAgICAgIC0xLAorICAgICAgICBTSEEzX2Z1bmN0aW9ucywKKyAgICAgICAgTlVMTCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgTlVMTAorfTsKKworUHlNT0RJTklUX0ZVTkMKK1B5SW5pdF9fc2hhMyh2b2lkKQoreworICAgIFB5X1RZUEUoJlNIQTN0eXBlKSA9ICZQeVR5cGVfVHlwZTsKKyAgICBpZiAoUHlUeXBlX1JlYWR5KCZTSEEzdHlwZSkgPCAwKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBQeU1vZHVsZV9DcmVhdGUoJl9TSEEzbW9kdWxlKTsKK30KZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NxbGl0ZS9jb25uZWN0aW9uLmMgYi9Nb2R1bGVzL19zcWxpdGUvY29ubmVjdGlvbi5jCmluZGV4IDI4YmQ2NDcuLjA0YmNkZjIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3NxbGl0ZS9jb25uZWN0aW9uLmMKKysrIGIvTW9kdWxlcy9fc3FsaXRlL2Nvbm5lY3Rpb24uYwpAQCAtNjAsNyArNjAsMTEgQEAKIAogaW50IHB5c3FsaXRlX2Nvbm5lY3Rpb25faW5pdChweXNxbGl0ZV9Db25uZWN0aW9uKiBzZWxmLCBQeU9iamVjdCogYXJncywgUHlPYmplY3QqIGt3YXJncykKIHsKLSAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7ImRhdGFiYXNlIiwgInRpbWVvdXQiLCAiZGV0ZWN0X3R5cGVzIiwgImlzb2xhdGlvbl9sZXZlbCIsICJjaGVja19zYW1lX3RocmVhZCIsICJmYWN0b3J5IiwgImNhY2hlZF9zdGF0ZW1lbnRzIiwgTlVMTCwgTlVMTH07CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geworICAgICAgICAiZGF0YWJhc2UiLCAidGltZW91dCIsICJkZXRlY3RfdHlwZXMiLCAiaXNvbGF0aW9uX2xldmVsIiwKKyAgICAgICAgImNoZWNrX3NhbWVfdGhyZWFkIiwgImZhY3RvcnkiLCAiY2FjaGVkX3N0YXRlbWVudHMiLCAidXJpIiwKKyAgICAgICAgTlVMTAorICAgIH07CiAKICAgICBjaGFyKiBkYXRhYmFzZTsKICAgICBpbnQgZGV0ZWN0X3R5cGVzID0gMDsKQEAgLTY4LDExICs3MiwxNCBAQAogICAgIFB5T2JqZWN0KiBmYWN0b3J5ID0gTlVMTDsKICAgICBpbnQgY2hlY2tfc2FtZV90aHJlYWQgPSAxOwogICAgIGludCBjYWNoZWRfc3RhdGVtZW50cyA9IDEwMDsKKyAgICBpbnQgdXJpID0gMDsKICAgICBkb3VibGUgdGltZW91dCA9IDUuMDsKICAgICBpbnQgcmM7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJzfGRpT2lPaSIsIGt3bGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YWJhc2UsICZ0aW1lb3V0LCAmZGV0ZWN0X3R5cGVzLCAmaXNvbGF0aW9uX2xldmVsLCAmY2hlY2tfc2FtZV90aHJlYWQsICZmYWN0b3J5LCAmY2FjaGVkX3N0YXRlbWVudHMpKQorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgInN8ZGlPaU9pcCIsIGt3bGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YWJhc2UsICZ0aW1lb3V0LCAmZGV0ZWN0X3R5cGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpc29sYXRpb25fbGV2ZWwsICZjaGVja19zYW1lX3RocmVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmFjdG9yeSwgJmNhY2hlZF9zdGF0ZW1lbnRzLCAmdXJpKSkKICAgICB7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CkBAIC05MSw4ICs5OCwxOSBAQAogICAgIFB5X0lOQ1JFRigmUHlVbmljb2RlX1R5cGUpOwogICAgIHNlbGYtPnRleHRfZmFjdG9yeSA9IChQeU9iamVjdCopJlB5VW5pY29kZV9UeXBlOwogCisjaWZkZWYgU1FMSVRFX09QRU5fVVJJCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIHJjID0gc3FsaXRlM19vcGVuX3YyKGRhdGFiYXNlLCAmc2VsZi0+ZGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgU1FMSVRFX09QRU5fUkVBRFdSSVRFIHwgU1FMSVRFX09QRU5fQ1JFQVRFIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAodXJpID8gU1FMSVRFX09QRU5fVVJJIDogMCksIE5VTEwpOworI2Vsc2UKKyAgICBpZiAodXJpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhweXNxbGl0ZV9Ob3RTdXBwb3J0ZWRFcnJvciwgIlVSSXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQogICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKICAgICByYyA9IHNxbGl0ZTNfb3BlbihkYXRhYmFzZSwgJnNlbGYtPmRiKTsKKyNlbmRpZgogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKICAgICBpZiAocmMgIT0gU1FMSVRFX09LKSB7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19zcWxpdGUvbW9kdWxlLmMgYi9Nb2R1bGVzL19zcWxpdGUvbW9kdWxlLmMKaW5kZXggYmVhNmQ2YS4uN2E3ZTg2MCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fc3FsaXRlL21vZHVsZS5jCisrKyBiL01vZHVsZXMvX3NxbGl0ZS9tb2R1bGUuYwpAQCAtNTAsMTkgKzUwLDI2IEBACiAgICAgICogQy1sZXZlbCwgc28gdGhpcyBjb2RlIGlzIHJlZHVuZGFudCB3aXRoIHRoZSBvbmUgaW4gY29ubmVjdGlvbl9pbml0IGluCiAgICAgICogY29ubmVjdGlvbi5jIGFuZCBtdXN0IGFsd2F5cyBiZSBjb3BpZWQgZnJvbSB0aGVyZSAuLi4gKi8KIAotICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsiZGF0YWJhc2UiLCAidGltZW91dCIsICJkZXRlY3RfdHlwZXMiLCAiaXNvbGF0aW9uX2xldmVsIiwgImNoZWNrX3NhbWVfdGhyZWFkIiwgImZhY3RvcnkiLCAiY2FjaGVkX3N0YXRlbWVudHMiLCBOVUxMLCBOVUxMfTsKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7CisgICAgICAgICJkYXRhYmFzZSIsICJ0aW1lb3V0IiwgImRldGVjdF90eXBlcyIsICJpc29sYXRpb25fbGV2ZWwiLAorICAgICAgICAiY2hlY2tfc2FtZV90aHJlYWQiLCAiZmFjdG9yeSIsICJjYWNoZWRfc3RhdGVtZW50cyIsICJ1cmkiLAorICAgICAgICBOVUxMCisgICAgfTsKICAgICBjaGFyKiBkYXRhYmFzZTsKICAgICBpbnQgZGV0ZWN0X3R5cGVzID0gMDsKICAgICBQeU9iamVjdCogaXNvbGF0aW9uX2xldmVsOwogICAgIFB5T2JqZWN0KiBmYWN0b3J5ID0gTlVMTDsKICAgICBpbnQgY2hlY2tfc2FtZV90aHJlYWQgPSAxOwogICAgIGludCBjYWNoZWRfc3RhdGVtZW50czsKKyAgICBpbnQgdXJpID0gMDsKICAgICBkb3VibGUgdGltZW91dCA9IDUuMDsKIAogICAgIFB5T2JqZWN0KiByZXN1bHQ7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJzfGRpT2lPaSIsIGt3bGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YWJhc2UsICZ0aW1lb3V0LCAmZGV0ZWN0X3R5cGVzLCAmaXNvbGF0aW9uX2xldmVsLCAmY2hlY2tfc2FtZV90aHJlYWQsICZmYWN0b3J5LCAmY2FjaGVkX3N0YXRlbWVudHMpKQorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgInN8ZGlPaU9pcCIsIGt3bGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YWJhc2UsICZ0aW1lb3V0LCAmZGV0ZWN0X3R5cGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpc29sYXRpb25fbGV2ZWwsICZjaGVja19zYW1lX3RocmVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmFjdG9yeSwgJmNhY2hlZF9zdGF0ZW1lbnRzLCAmdXJpKSkKICAgICB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTc3LDcgKzg0LDggQEAKIH0KIAogUHlEb2NfU1RSVkFSKG1vZHVsZV9jb25uZWN0X2RvYywKLSJjb25uZWN0KGRhdGFiYXNlWywgdGltZW91dCwgaXNvbGF0aW9uX2xldmVsLCBkZXRlY3RfdHlwZXMsIGZhY3RvcnldKVxuXAorImNvbm5lY3QoZGF0YWJhc2VbLCB0aW1lb3V0LCBkZXRlY3RfdHlwZXMsIGlzb2xhdGlvbl9sZXZlbCxcblwKKyAgICAgICAgY2hlY2tfc2FtZV90aHJlYWQsIGZhY3RvcnksIGNhY2hlZF9zdGF0ZW1lbnRzLCB1cmldKVxuXAogXG5cCiBPcGVucyBhIGNvbm5lY3Rpb24gdG8gdGhlIFNRTGl0ZSBkYXRhYmFzZSBmaWxlICpkYXRhYmFzZSouIFlvdSBjYW4gdXNlXG5cCiBcIjptZW1vcnk6XCIgdG8gb3BlbiBhIGRhdGFiYXNlIGNvbm5lY3Rpb24gdG8gYSBkYXRhYmFzZSB0aGF0IHJlc2lkZXMgaW5cblwKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NxbGl0ZS91dGlsLmMgYi9Nb2R1bGVzL19zcWxpdGUvdXRpbC5jCmluZGV4IGQ4OGJjM2YuLjMxMmZlM2IgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3NxbGl0ZS91dGlsLmMKKysrIGIvTW9kdWxlcy9fc3FsaXRlL3V0aWwuYwpAQCAtMTMyLDcgKzEzMiw3IEBACiAgICAgfQogIyBlbmRpZgogI2VuZGlmCi0gICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZyh2YWx1ZSk7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZyhQeV9TQUZFX0RPV05DQVNUKHZhbHVlLCBzcWxpdGVfaW50NjQsIGxvbmcpKTsKIH0KIAogc3FsaXRlX2ludDY0CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19zcmUuYyBiL01vZHVsZXMvX3NyZS5jCmluZGV4IDE5NTcxZmIuLjliNDk5NTEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3NyZS5jCisrKyBiL01vZHVsZXMvX3NyZS5jCkBAIC0xODcxLDcgKzE4NzEsNyBAQAogcGF0dGVybl9tYXRjaChQYXR0ZXJuT2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncywgUHlPYmplY3QqIGt3KQogewogICAgIFNSRV9TVEFURSBzdGF0ZTsKLSAgICBpbnQgc3RhdHVzOworICAgIFB5X3NzaXplX3Qgc3RhdHVzOwogCiAgICAgUHlPYmplY3QqIHN0cmluZzsKICAgICBQeV9zc2l6ZV90IHN0YXJ0ID0gMDsKQEAgLTIwNDAsNyArMjA0MCw3IEBACiB7CiAgICAgU1JFX1NUQVRFIHN0YXRlOwogICAgIFB5T2JqZWN0KiBsaXN0OwotICAgIGludCBzdGF0dXM7CisgICAgUHlfc3NpemVfdCBzdGF0dXM7CiAgICAgUHlfc3NpemVfdCBpLCBiLCBlOwogCiAgICAgUHlPYmplY3QqIHN0cmluZzsKQEAgLTIxNjYsNyArMjE2Niw3IEBACiAgICAgU1JFX1NUQVRFIHN0YXRlOwogICAgIFB5T2JqZWN0KiBsaXN0OwogICAgIFB5T2JqZWN0KiBpdGVtOwotICAgIGludCBzdGF0dXM7CisgICAgUHlfc3NpemVfdCBzdGF0dXM7CiAgICAgUHlfc3NpemVfdCBuOwogICAgIFB5X3NzaXplX3QgaTsKICAgICB2b2lkKiBsYXN0OwpAQCAtMjI4Miw3ICsyMjgyLDcgQEAKICAgICBQeU9iamVjdCogYXJnczsKICAgICBQeU9iamVjdCogbWF0Y2g7CiAgICAgdm9pZCogcHRyOwotICAgIGludCBzdGF0dXM7CisgICAgUHlfc3NpemVfdCBzdGF0dXM7CiAgICAgUHlfc3NpemVfdCBuOwogICAgIFB5X3NzaXplX3QgaSwgYiwgZTsKICAgICBpbnQgbG9naWNhbF9jaGFyc2l6ZSwgY2hhcnNpemU7CkBAIC0yMzAxLDcgKzIzMDEsNyBAQAogICAgICAgICBwdHIgPSBnZXRzdHJpbmcocHRlbXBsYXRlLCAmbiwgJmxvZ2ljYWxfY2hhcnNpemUsICZjaGFyc2l6ZSwgJnZpZXcpOwogICAgICAgICBiID0gY2hhcnNpemU7CiAgICAgICAgIGlmIChwdHIpIHsKLSAgICAgICAgICAgIGxpdGVyYWwgPSBzcmVfbGl0ZXJhbF90ZW1wbGF0ZShiLCBwdHIsIG4pOworICAgICAgICAgICAgbGl0ZXJhbCA9IHNyZV9saXRlcmFsX3RlbXBsYXRlKGNoYXJzaXplLCBwdHIsIG4pOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICAgICAgICAgIGxpdGVyYWwgPSAwOwpAQCAtMzc2Nyw3ICszNzY3LDcgQEAKIHsKICAgICBTUkVfU1RBVEUqIHN0YXRlID0gJnNlbGYtPnN0YXRlOwogICAgIFB5T2JqZWN0KiBtYXRjaDsKLSAgICBpbnQgc3RhdHVzOworICAgIFB5X3NzaXplX3Qgc3RhdHVzOwogCiAgICAgc3RhdGVfcmVzZXQoc3RhdGUpOwogCkBAIC0zNzk4LDcgKzM3OTgsNyBAQAogewogICAgIFNSRV9TVEFURSogc3RhdGUgPSAmc2VsZi0+c3RhdGU7CiAgICAgUHlPYmplY3QqIG1hdGNoOwotICAgIGludCBzdGF0dXM7CisgICAgUHlfc3NpemVfdCBzdGF0dXM7CiAKICAgICBzdGF0ZV9yZXNldChzdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NzbC5jIGIvTW9kdWxlcy9fc3NsLmMKaW5kZXggYWJiNDhiOS4uYzY0ZDIwOSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fc3NsLmMKKysrIGIvTW9kdWxlcy9fc3NsLmMKQEAgLTQwLDYgKzQwLDcwIEBACiAKICNlbmRpZgogCisvKiBJbmNsdWRlIHN5bWJvbHMgZnJvbSBfc29ja2V0IG1vZHVsZSAqLworI2luY2x1ZGUgInNvY2tldG1vZHVsZS5oIgorCitzdGF0aWMgUHlTb2NrZXRNb2R1bGVfQVBJT2JqZWN0IFB5U29ja2V0TW9kdWxlOworCisjaWYgZGVmaW5lZChIQVZFX1BPTExfSCkKKyNpbmNsdWRlIDxwb2xsLmg+CisjZWxpZiBkZWZpbmVkKEhBVkVfU1lTX1BPTExfSCkKKyNpbmNsdWRlIDxzeXMvcG9sbC5oPgorI2VuZGlmCisKKy8qIEluY2x1ZGUgT3BlblNTTCBoZWFkZXIgZmlsZXMgKi8KKyNpbmNsdWRlICJvcGVuc3NsL3JzYS5oIgorI2luY2x1ZGUgIm9wZW5zc2wvY3J5cHRvLmgiCisjaW5jbHVkZSAib3BlbnNzbC94NTA5LmgiCisjaW5jbHVkZSAib3BlbnNzbC94NTA5djMuaCIKKyNpbmNsdWRlICJvcGVuc3NsL3BlbS5oIgorI2luY2x1ZGUgIm9wZW5zc2wvc3NsLmgiCisjaW5jbHVkZSAib3BlbnNzbC9lcnIuaCIKKyNpbmNsdWRlICJvcGVuc3NsL3JhbmQuaCIKKworLyogU1NMIGVycm9yIG9iamVjdCAqLworc3RhdGljIFB5T2JqZWN0ICpQeVNTTEVycm9yT2JqZWN0Oworc3RhdGljIFB5T2JqZWN0ICpQeVNTTFplcm9SZXR1cm5FcnJvck9iamVjdDsKK3N0YXRpYyBQeU9iamVjdCAqUHlTU0xXYW50UmVhZEVycm9yT2JqZWN0Oworc3RhdGljIFB5T2JqZWN0ICpQeVNTTFdhbnRXcml0ZUVycm9yT2JqZWN0Oworc3RhdGljIFB5T2JqZWN0ICpQeVNTTFN5c2NhbGxFcnJvck9iamVjdDsKK3N0YXRpYyBQeU9iamVjdCAqUHlTU0xFT0ZFcnJvck9iamVjdDsKKworLyogRXJyb3IgbWFwcGluZ3MgKi8KK3N0YXRpYyBQeU9iamVjdCAqZXJyX2NvZGVzX3RvX25hbWVzOworc3RhdGljIFB5T2JqZWN0ICplcnJfbmFtZXNfdG9fY29kZXM7CitzdGF0aWMgUHlPYmplY3QgKmxpYl9jb2Rlc190b19uYW1lczsKKworc3RydWN0IHB5X3NzbF9lcnJvcl9jb2RlIHsKKyAgICBjb25zdCBjaGFyICptbmVtb25pYzsKKyAgICBpbnQgbGlicmFyeSwgcmVhc29uOworfTsKK3N0cnVjdCBweV9zc2xfbGlicmFyeV9jb2RlIHsKKyAgICBjb25zdCBjaGFyICpsaWJyYXJ5OworICAgIGludCBjb2RlOworfTsKKworLyogSW5jbHVkZSBnZW5lcmF0ZWQgZGF0YSAoZXJyb3IgY29kZXMpICovCisjaW5jbHVkZSAiX3NzbF9kYXRhLmgiCisKKy8qIE9wZW5zc2wgY29tZXMgd2l0aCBUTFN2MS4xIGFuZCBUTFN2MS4yIGJldHdlZW4gMS4wLjBoIGFuZCAxLjAuMQorICAgIGh0dHA6Ly93d3cub3BlbnNzbC5vcmcvbmV3cy9jaGFuZ2Vsb2cuaHRtbAorICovCisjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA+PSAweDEwMDAxMDAwTAorIyBkZWZpbmUgSEFWRV9UTFN2MV8yIDEKKyNlbHNlCisjIGRlZmluZSBIQVZFX1RMU3YxXzIgMAorI2VuZGlmCisKKy8qIFNOSSBzdXBwb3J0IChjbGllbnQtIGFuZCBzZXJ2ZXItc2lkZSkgYXBwZWFyZWQgaW4gT3BlblNTTCAxLjAuMC4KKyAqIFRoaXMgaW5jbHVkZXMgdGhlIFNTTF9zZXRfU1NMX0NUWCgpIGZ1bmN0aW9uLgorICovCisjaWZkZWYgU1NMX0NUUkxfU0VUX1RMU0VYVF9IT1NUTkFNRQorIyBkZWZpbmUgSEFWRV9TTkkgMQorI2Vsc2UKKyMgZGVmaW5lIEhBVkVfU05JIDAKKyNlbmRpZgorCiBlbnVtIHB5X3NzbF9lcnJvciB7CiAgICAgLyogdGhlc2UgbWlycm9yIHNzbC5oICovCiAgICAgUFlfU1NMX0VSUk9SX05PTkUsCkBAIC03Myw1NSArMTM3LDE0IEBACiAjZW5kaWYKICAgICBQWV9TU0xfVkVSU0lPTl9TU0wzPTEsCiAgICAgUFlfU1NMX1ZFUlNJT05fU1NMMjMsCisjaWYgSEFWRV9UTFN2MV8yCisgICAgUFlfU1NMX1ZFUlNJT05fVExTMSwKKyAgICBQWV9TU0xfVkVSU0lPTl9UTFMxXzEsCisgICAgUFlfU1NMX1ZFUlNJT05fVExTMV8yCisjZWxzZQogICAgIFBZX1NTTF9WRVJTSU9OX1RMUzEKLX07Ci0KLXN0cnVjdCBweV9zc2xfZXJyb3JfY29kZSB7Ci0gICAgY29uc3QgY2hhciAqbW5lbW9uaWM7Ci0gICAgaW50IGxpYnJhcnksIHJlYXNvbjsKLX07Ci0KLXN0cnVjdCBweV9zc2xfbGlicmFyeV9jb2RlIHsKLSAgICBjb25zdCBjaGFyICpsaWJyYXJ5OwotICAgIGludCBjb2RlOwotfTsKLQotLyogSW5jbHVkZSBzeW1ib2xzIGZyb20gX3NvY2tldCBtb2R1bGUgKi8KLSNpbmNsdWRlICJzb2NrZXRtb2R1bGUuaCIKLQotc3RhdGljIFB5U29ja2V0TW9kdWxlX0FQSU9iamVjdCBQeVNvY2tldE1vZHVsZTsKLQotI2lmIGRlZmluZWQoSEFWRV9QT0xMX0gpCi0jaW5jbHVkZSA8cG9sbC5oPgotI2VsaWYgZGVmaW5lZChIQVZFX1NZU19QT0xMX0gpCi0jaW5jbHVkZSA8c3lzL3BvbGwuaD4KICNlbmRpZgotCi0vKiBJbmNsdWRlIE9wZW5TU0wgaGVhZGVyIGZpbGVzICovCi0jaW5jbHVkZSAib3BlbnNzbC9yc2EuaCIKLSNpbmNsdWRlICJvcGVuc3NsL2NyeXB0by5oIgotI2luY2x1ZGUgIm9wZW5zc2wveDUwOS5oIgotI2luY2x1ZGUgIm9wZW5zc2wveDUwOXYzLmgiCi0jaW5jbHVkZSAib3BlbnNzbC9wZW0uaCIKLSNpbmNsdWRlICJvcGVuc3NsL3NzbC5oIgotI2luY2x1ZGUgIm9wZW5zc2wvZXJyLmgiCi0jaW5jbHVkZSAib3BlbnNzbC9yYW5kLmgiCi0KLS8qIEluY2x1ZGUgZ2VuZXJhdGVkIGRhdGEgKGVycm9yIGNvZGVzKSAqLwotI2luY2x1ZGUgIl9zc2xfZGF0YS5oIgotCi0vKiBTU0wgZXJyb3Igb2JqZWN0ICovCi1zdGF0aWMgUHlPYmplY3QgKlB5U1NMRXJyb3JPYmplY3Q7Ci1zdGF0aWMgUHlPYmplY3QgKlB5U1NMWmVyb1JldHVybkVycm9yT2JqZWN0Owotc3RhdGljIFB5T2JqZWN0ICpQeVNTTFdhbnRSZWFkRXJyb3JPYmplY3Q7Ci1zdGF0aWMgUHlPYmplY3QgKlB5U1NMV2FudFdyaXRlRXJyb3JPYmplY3Q7Ci1zdGF0aWMgUHlPYmplY3QgKlB5U1NMU3lzY2FsbEVycm9yT2JqZWN0Owotc3RhdGljIFB5T2JqZWN0ICpQeVNTTEVPRkVycm9yT2JqZWN0OwotCi0vKiBFcnJvciBtYXBwaW5ncyAqLwotc3RhdGljIFB5T2JqZWN0ICplcnJfY29kZXNfdG9fbmFtZXM7Ci1zdGF0aWMgUHlPYmplY3QgKmVycl9uYW1lc190b19jb2RlczsKLXN0YXRpYyBQeU9iamVjdCAqbGliX2NvZGVzX3RvX25hbWVzOworfTsKIAogI2lmZGVmIFdJVEhfVEhSRUFECiAKQEAgLTE4MSwxMiArMjA0LDE2IEBACiAgICAgY2hhciAqbnBuX3Byb3RvY29sczsKICAgICBpbnQgbnBuX3Byb3RvY29sc19sZW47CiAjZW5kaWYKKyNpZm5kZWYgT1BFTlNTTF9OT19UTFNFWFQKKyAgICBQeU9iamVjdCAqc2V0X2hvc3RuYW1lOyAKKyNlbmRpZgogfSBQeVNTTENvbnRleHQ7CiAKIHR5cGVkZWYgc3RydWN0IHsKICAgICBQeU9iamVjdF9IRUFECiAgICAgUHlPYmplY3QgKlNvY2tldDsgLyogd2Vha3JlZiB0byBzb2NrZXQgb24gd2hpY2ggd2UncmUgbGF5ZXJlZCAqLwogICAgIFNTTCAqc3NsOworICAgIFB5U1NMQ29udGV4dCAqY3R4OyAvKiB3ZWFrcmVmIHRvIFNTTCBjb250ZXh0ICovCiAgICAgWDUwOSAqcGVlcl9jZXJ0OwogICAgIGludCBzaHV0ZG93bl9zZWVuX3plcm87CiAgICAgZW51bSBweV9zc2xfc2VydmVyX29yX2NsaWVudCBzb2NrZXRfdHlwZTsKQEAgLTQzNywxMSArNDY0LDEzIEBACiAgKi8KIAogc3RhdGljIFB5U1NMU29ja2V0ICoKLW5ld1B5U1NMU29ja2V0KFNTTF9DVFggKmN0eCwgUHlTb2NrZXRTb2NrT2JqZWN0ICpzb2NrLAorbmV3UHlTU0xTb2NrZXQoUHlTU0xDb250ZXh0ICpzc2xjdHgsIFB5U29ja2V0U29ja09iamVjdCAqc29jaywKICAgICAgICAgICAgICAgIGVudW0gcHlfc3NsX3NlcnZlcl9vcl9jbGllbnQgc29ja2V0X3R5cGUsCiAgICAgICAgICAgICAgICBjaGFyICpzZXJ2ZXJfaG9zdG5hbWUpCiB7CiAgICAgUHlTU0xTb2NrZXQgKnNlbGY7CisgICAgU1NMX0NUWCAqY3R4ID0gc3NsY3R4LT5jdHg7CisgICAgbG9uZyBtb2RlOwogCiAgICAgc2VsZiA9IFB5T2JqZWN0X05ldyhQeVNTTFNvY2tldCwgJlB5U1NMU29ja2V0X1R5cGUpOwogICAgIGlmIChzZWxmID09IE5VTEwpCkBAIC00NTAsNiArNDc5LDggQEAKICAgICBzZWxmLT5wZWVyX2NlcnQgPSBOVUxMOwogICAgIHNlbGYtPnNzbCA9IE5VTEw7CiAgICAgc2VsZi0+U29ja2V0ID0gTlVMTDsKKyAgICBzZWxmLT5jdHggPSBzc2xjdHg7CisgICAgUHlfSU5DUkVGKHNzbGN0eCk7CiAKICAgICAvKiBNYWtlIHN1cmUgdGhlIFNTTCBlcnJvciBzdGF0ZSBpcyBpbml0aWFsaXplZCAqLwogICAgICh2b2lkKSBFUlJfZ2V0X3N0YXRlKCk7CkBAIC00NTgsMTIgKzQ4OSwxNSBAQAogICAgIFB5U1NMX0JFR0lOX0FMTE9XX1RIUkVBRFMKICAgICBzZWxmLT5zc2wgPSBTU0xfbmV3KGN0eCk7CiAgICAgUHlTU0xfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICBTU0xfc2V0X2FwcF9kYXRhKHNlbGYtPnNzbCxzZWxmKTsKICAgICBTU0xfc2V0X2ZkKHNlbGYtPnNzbCwgc29jay0+c29ja19mZCk7CisgICAgbW9kZSA9IFNTTF9NT0RFX0FDQ0VQVF9NT1ZJTkdfV1JJVEVfQlVGRkVSOwogI2lmZGVmIFNTTF9NT0RFX0FVVE9fUkVUUlkKLSAgICBTU0xfc2V0X21vZGUoc2VsZi0+c3NsLCBTU0xfTU9ERV9BVVRPX1JFVFJZKTsKKyAgICBtb2RlIHw9IFNTTF9NT0RFX0FVVE9fUkVUUlk7CiAjZW5kaWYKKyAgICBTU0xfc2V0X21vZGUoc2VsZi0+c3NsLCBtb2RlKTsKIAotI2lmZGVmIFNTTF9DVFJMX1NFVF9UTFNFWFRfSE9TVE5BTUUKKyNpZiBIQVZFX1NOSQogICAgIGlmIChzZXJ2ZXJfaG9zdG5hbWUgIT0gTlVMTCkKICAgICAgICAgU1NMX3NldF90bHNleHRfaG9zdF9uYW1lKHNlbGYtPnNzbCwgc2VydmVyX2hvc3RuYW1lKTsKICNlbmRpZgpAQCAtMTE2NCw2ICsxMTk4LDQzIEBACiAjZW5kaWYKIH0KIAorc3RhdGljIFB5U1NMQ29udGV4dCAqUHlTU0xfZ2V0X2NvbnRleHQoUHlTU0xTb2NrZXQgKnNlbGYsIHZvaWQgKmNsb3N1cmUpIHsKKyAgICBQeV9JTkNSRUYoc2VsZi0+Y3R4KTsKKyAgICByZXR1cm4gc2VsZi0+Y3R4OworfQorCitzdGF0aWMgaW50IFB5U1NMX3NldF9jb250ZXh0KFB5U1NMU29ja2V0ICpzZWxmLCBQeU9iamVjdCAqdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmNsb3N1cmUpIHsKKworICAgIGlmIChQeU9iamVjdF9UeXBlQ2hlY2sodmFsdWUsICZQeVNTTENvbnRleHRfVHlwZSkpIHsKKyNpZiAhSEFWRV9TTkkKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX05vdEltcGxlbWVudGVkRXJyb3IsICJzZXR0aW5nIGEgc29ja2V0J3MgIgorICAgICAgICAgICAgICAgICAgICAgICAgImNvbnRleHQgaXMgbm90IHN1cHBvcnRlZCBieSB5b3VyIE9wZW5TU0wgbGlicmFyeSIpOworICAgICAgICByZXR1cm4gLTE7CisjZWxzZQorICAgICAgICBQeV9JTkNSRUYodmFsdWUpOworICAgICAgICBQeV9ERUNSRUYoc2VsZi0+Y3R4KTsKKyAgICAgICAgc2VsZi0+Y3R4ID0gKFB5U1NMQ29udGV4dCAqKSB2YWx1ZTsKKyAgICAgICAgU1NMX3NldF9TU0xfQ1RYKHNlbGYtPnNzbCwgc2VsZi0+Y3R4LT5jdHgpOworI2VuZGlmCisgICAgfSBlbHNlIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgIlRoZSB2YWx1ZSBtdXN0IGJlIGEgU1NMQ29udGV4dCIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK1B5RG9jX1NUUlZBUihQeVNTTF9zZXRfY29udGV4dF9kb2MsCisiX3NldHRlcl9jb250ZXh0KGN0eClcblwKK1wKK1RoaXMgY2hhbmdlcyB0aGUgY29udGV4dCBhc3NvY2lhdGVkIHdpdGggdGhlIFNTTFNvY2tldC4gVGhpcyBpcyB0eXBpY2FsbHlcblwKK3VzZWQgZnJvbSB3aXRoaW4gYSBjYWxsYmFjayBmdW5jdGlvbiBzZXQgYnkgdGhlIHNldF9zZXJ2ZXJuYW1lX2NhbGxiYWNrXG5cCitvbiB0aGUgU1NMQ29udGV4dCB0byBjaGFuZ2UgdGhlIGNlcnRpZmljYXRlIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGVcblwKK1NTTFNvY2tldCBiZWZvcmUgdGhlIGNyeXB0b2dyYXBoaWMgZXhjaGFuZ2UgaGFuZHNoYWtlIG1lc3NhZ2VzXG4iKTsKKworCisKIHN0YXRpYyB2b2lkIFB5U1NMX2RlYWxsb2MoUHlTU0xTb2NrZXQgKnNlbGYpCiB7CiAgICAgaWYgKHNlbGYtPnBlZXJfY2VydCkgICAgICAgIC8qIFBvc3NpYmxlIG5vdCB0byBoYXZlIG9uZT8gKi8KQEAgLTExNzEsNiArMTI0Miw3IEBACiAgICAgaWYgKHNlbGYtPnNzbCkKICAgICAgICAgU1NMX2ZyZWUoc2VsZi0+c3NsKTsKICAgICBQeV9YREVDUkVGKHNlbGYtPlNvY2tldCk7CisgICAgUHlfWERFQ1JFRihzZWxmLT5jdHgpOwogICAgIFB5T2JqZWN0X0RlbChzZWxmKTsKIH0KIApAQCAtMTYwNiw2ICsxNjc4LDEyIEBACiAKICNlbmRpZiAvKiBIQVZFX09QRU5TU0xfRklOSVNIRUQgKi8KIAorc3RhdGljIFB5R2V0U2V0RGVmIHNzbF9nZXRzZXRsaXN0W10gPSB7CisgICAgeyJjb250ZXh0IiwgKGdldHRlcikgUHlTU0xfZ2V0X2NvbnRleHQsCisgICAgICAgICAgICAgICAgKHNldHRlcikgUHlTU0xfc2V0X2NvbnRleHQsIFB5U1NMX3NldF9jb250ZXh0X2RvY30sCisgICAge05VTEx9LCAgICAgICAgICAgIC8qIHNlbnRpbmVsICovCit9OworCiBzdGF0aWMgUHlNZXRob2REZWYgUHlTU0xNZXRob2RzW10gPSB7CiAgICAgeyJkb19oYW5kc2hha2UiLCAoUHlDRnVuY3Rpb24pUHlTU0xfU1NMZG9faGFuZHNoYWtlLCBNRVRIX05PQVJHU30sCiAgICAgeyJ3cml0ZSIsIChQeUNGdW5jdGlvbilQeVNTTF9TU0x3cml0ZSwgTUVUSF9WQVJBUkdTLApAQCAtMTY2MCw2ICsxNzM4LDggQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2l0ZXIqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaXRlcm5leHQqLwogICAgIFB5U1NMTWV0aG9kcywgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfbWV0aG9kcyovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9tZW1iZXJzKi8KKyAgICBzc2xfZ2V0c2V0bGlzdCwgICAgICAgICAgICAgICAgICAgICAvKnRwX2dldHNldCovCiB9OwogCiAKQEAgLTE2ODMsNiArMTc2MywxMiBAQAogICAgIFB5U1NMX0JFR0lOX0FMTE9XX1RIUkVBRFMKICAgICBpZiAocHJvdG9fdmVyc2lvbiA9PSBQWV9TU0xfVkVSU0lPTl9UTFMxKQogICAgICAgICBjdHggPSBTU0xfQ1RYX25ldyhUTFN2MV9tZXRob2QoKSk7CisjaWYgSEFWRV9UTFN2MV8yCisgICAgZWxzZSBpZiAocHJvdG9fdmVyc2lvbiA9PSBQWV9TU0xfVkVSU0lPTl9UTFMxXzEpCisgICAgICAgIGN0eCA9IFNTTF9DVFhfbmV3KFRMU3YxXzFfbWV0aG9kKCkpOworICAgIGVsc2UgaWYgKHByb3RvX3ZlcnNpb24gPT0gUFlfU1NMX1ZFUlNJT05fVExTMV8yKQorICAgICAgICBjdHggPSBTU0xfQ1RYX25ldyhUTFN2MV8yX21ldGhvZCgpKTsKKyNlbmRpZgogICAgIGVsc2UgaWYgKHByb3RvX3ZlcnNpb24gPT0gUFlfU1NMX1ZFUlNJT05fU1NMMykKICAgICAgICAgY3R4ID0gU1NMX0NUWF9uZXcoU1NMdjNfbWV0aG9kKCkpOwogI2lmbmRlZiBPUEVOU1NMX05PX1NTTDIKQEAgLTE3MTYsNiArMTgwMiw5IEBACiAjaWZkZWYgT1BFTlNTTF9OUE5fTkVHT1RJQVRFRAogICAgIHNlbGYtPm5wbl9wcm90b2NvbHMgPSBOVUxMOwogI2VuZGlmCisjaWZuZGVmIE9QRU5TU0xfTk9fVExTRVhUCisgICAgc2VsZi0+c2V0X2hvc3RuYW1lID0gTlVMTDsgCisjZW5kaWYKICAgICAvKiBEZWZhdWx0cyAqLwogICAgIFNTTF9DVFhfc2V0X3ZlcmlmeShzZWxmLT5jdHgsIFNTTF9WRVJJRllfTk9ORSwgTlVMTCk7CiAgICAgU1NMX0NUWF9zZXRfb3B0aW9ucyhzZWxmLT5jdHgsCkBAIC0xNzI5LDkgKzE4MTgsMjggQEAKICAgICByZXR1cm4gKFB5T2JqZWN0ICopc2VsZjsKIH0KIAorc3RhdGljIGludAorY29udGV4dF90cmF2ZXJzZShQeVNTTENvbnRleHQgKnNlbGYsIHZpc2l0cHJvYyB2aXNpdCwgdm9pZCAqYXJnKQoreworI2lmbmRlZiBPUEVOU1NMX05PX1RMU0VYVAorICAgIFB5X1ZJU0lUKHNlbGYtPnNldF9ob3N0bmFtZSk7CisjZW5kaWYKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorY29udGV4dF9jbGVhcihQeVNTTENvbnRleHQgKnNlbGYpCit7CisjaWZuZGVmIE9QRU5TU0xfTk9fVExTRVhUCisgICAgUHlfQ0xFQVIoc2VsZi0+c2V0X2hvc3RuYW1lKTsKKyNlbmRpZgorICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgdm9pZAogY29udGV4dF9kZWFsbG9jKFB5U1NMQ29udGV4dCAqc2VsZikKIHsKKyAgICBjb250ZXh0X2NsZWFyKHNlbGYpOwogICAgIFNTTF9DVFhfZnJlZShzZWxmLT5jdHgpOwogI2lmZGVmIE9QRU5TU0xfTlBOX05FR09USUFURUQKICAgICBQeU1lbV9GcmVlKHNlbGYtPm5wbl9wcm90b2NvbHMpOwpAQCAtMjIxNiw3ICsyMzI0LDcgQEAKICAgICAgICAgICAgICZzb2NrLCAmc2VydmVyX3NpZGUsCiAgICAgICAgICAgICAiaWRuYSIsICZob3N0bmFtZSkpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSNpZm5kZWYgU1NMX0NUUkxfU0VUX1RMU0VYVF9IT1NUTkFNRQorI2lmICFIQVZFX1NOSQogICAgICAgICBQeU1lbV9GcmVlKGhvc3RuYW1lKTsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJzZXJ2ZXJfaG9zdG5hbWUgaXMgbm90IHN1cHBvcnRlZCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAiYnkgeW91ciBPcGVuU1NMIGxpYnJhcnkiKTsKQEAgLTIyMjQsNyArMjMzMiw3IEBACiAjZW5kaWYKICAgICB9CiAKLSAgICByZXMgPSAoUHlPYmplY3QgKikgbmV3UHlTU0xTb2NrZXQoc2VsZi0+Y3R4LCBzb2NrLCBzZXJ2ZXJfc2lkZSwKKyAgICByZXMgPSAoUHlPYmplY3QgKikgbmV3UHlTU0xTb2NrZXQoc2VsZiwgc29jaywgc2VydmVyX3NpZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3RuYW1lKTsKICAgICBpZiAoaG9zdG5hbWUgIT0gTlVMTCkKICAgICAgICAgUHlNZW1fRnJlZShob3N0bmFtZSk7CkBAIC0yMzA5LDYgKzI0MTcsMTQ0IEBACiB9CiAjZW5kaWYKIAorI2lmIEhBVkVfU05JICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fVExTRVhUKQorc3RhdGljIGludAorX3NlcnZlcm5hbWVfY2FsbGJhY2soU1NMICpzLCBpbnQgKmFsLCB2b2lkICphcmdzKQoreworICAgIGludCByZXQ7CisgICAgUHlTU0xDb250ZXh0ICpzc2xfY3R4ID0gKFB5U1NMQ29udGV4dCAqKSBhcmdzOworICAgIFB5U1NMU29ja2V0ICpzc2w7CisgICAgUHlPYmplY3QgKnNlcnZlcm5hbWVfbzsKKyAgICBQeU9iamVjdCAqc2VydmVybmFtZV9pZG5hOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgLyogVGhlIGhpZ2gtbGV2ZWwgc3NsLlNTTFNvY2tldCBvYmplY3QgKi8KKyAgICBQeU9iamVjdCAqc3NsX3NvY2tldDsKKyAgICBjb25zdCBjaGFyICpzZXJ2ZXJuYW1lID0gU1NMX2dldF9zZXJ2ZXJuYW1lKHMsIFRMU0VYVF9OQU1FVFlQRV9ob3N0X25hbWUpOworI2lmZGVmIFdJVEhfVEhSRUFECisgICAgUHlHSUxTdGF0ZV9TVEFURSBnc3RhdGUgPSBQeUdJTFN0YXRlX0Vuc3VyZSgpOworI2VuZGlmCisKKyAgICBpZiAoc3NsX2N0eC0+c2V0X2hvc3RuYW1lID09IE5VTEwpIHsKKyAgICAgICAgLyogcmVtb3ZlIHJhY2UgY29uZGl0aW9uIGluIHRoaXMgdGhlIGNhbGwgYmFjayB3aGlsZSBpZiByZW1vdmluZyB0aGUKKyAgICAgICAgICogY2FsbGJhY2sgaXMgaW4gcHJvZ3Jlc3MgKi8KKyNpZmRlZiBXSVRIX1RIUkVBRAorICAgICAgICBQeUdJTFN0YXRlX1JlbGVhc2UoZ3N0YXRlKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gU1NMX1RMU0VYVF9FUlJfT0s7CisgICAgfQorCisgICAgc3NsID0gU1NMX2dldF9hcHBfZGF0YShzKTsKKyAgICBhc3NlcnQoUHlTU0xTb2NrZXRfQ2hlY2soc3NsKSk7CisgICAgc3NsX3NvY2tldCA9IFB5V2Vha3JlZl9HZXRPYmplY3Qoc3NsLT5Tb2NrZXQpOworICAgIFB5X0lOQ1JFRihzc2xfc29ja2V0KTsKKyAgICBpZiAoc3NsX3NvY2tldCA9PSBQeV9Ob25lKSB7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorIAorICAgIGlmIChzZXJ2ZXJuYW1lID09IE5VTEwpIHsKKyAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhzc2xfY3R4LT5zZXRfaG9zdG5hbWUsIHNzbF9zb2NrZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfTm9uZSwgc3NsX2N0eCwgTlVMTCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBzZXJ2ZXJuYW1lX28gPSBQeUJ5dGVzX0Zyb21TdHJpbmcoc2VydmVybmFtZSk7CisgICAgICAgIGlmIChzZXJ2ZXJuYW1lX28gPT0gTlVMTCkgeworICAgICAgICAgICAgUHlFcnJfV3JpdGVVbnJhaXNhYmxlKChQeU9iamVjdCAqKSBzc2xfY3R4KTsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgc2VydmVybmFtZV9pZG5hID0gUHlVbmljb2RlX0Zyb21FbmNvZGVkT2JqZWN0KHNlcnZlcm5hbWVfbywgImlkbmEiLCBOVUxMKTsKKyAgICAgICAgaWYgKHNlcnZlcm5hbWVfaWRuYSA9PSBOVUxMKSB7CisgICAgICAgICAgICBQeUVycl9Xcml0ZVVucmFpc2FibGUoc2VydmVybmFtZV9vKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihzZXJ2ZXJuYW1lX28pOworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgICAgICBQeV9ERUNSRUYoc2VydmVybmFtZV9vKTsKKyAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhzc2xfY3R4LT5zZXRfaG9zdG5hbWUsIHNzbF9zb2NrZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVybmFtZV9pZG5hLCBzc2xfY3R4LCBOVUxMKTsKKyAgICAgICAgUHlfREVDUkVGKHNlcnZlcm5hbWVfaWRuYSk7CisgICAgfQorICAgIFB5X0RFQ1JFRihzc2xfc29ja2V0KTsKKworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9Xcml0ZVVucmFpc2FibGUoc3NsX2N0eC0+c2V0X2hvc3RuYW1lKTsKKyAgICAgICAgKmFsID0gU1NMX0FEX0hBTkRTSEFLRV9GQUlMVVJFOworICAgICAgICByZXQgPSBTU0xfVExTRVhUX0VSUl9BTEVSVF9GQVRBTDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGlmIChyZXN1bHQgIT0gUHlfTm9uZSkgeworICAgICAgICAgICAgKmFsID0gKGludCkgUHlMb25nX0FzTG9uZyhyZXN1bHQpOworICAgICAgICAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9Xcml0ZVVucmFpc2FibGUocmVzdWx0KTsKKyAgICAgICAgICAgICAgICAqYWwgPSBTU0xfQURfSU5URVJOQUxfRVJST1I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXQgPSBTU0xfVExTRVhUX0VSUl9BTEVSVF9GQVRBTDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHJldCA9IFNTTF9UTFNFWFRfRVJSX09LOworICAgICAgICB9CisgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgIH0KKworI2lmZGVmIFdJVEhfVEhSRUFECisgICAgUHlHSUxTdGF0ZV9SZWxlYXNlKGdzdGF0ZSk7CisjZW5kaWYKKyAgICByZXR1cm4gcmV0OworCitlcnJvcjoKKyAgICBQeV9ERUNSRUYoc3NsX3NvY2tldCk7CisgICAgKmFsID0gU1NMX0FEX0lOVEVSTkFMX0VSUk9SOworICAgIHJldCA9IFNTTF9UTFNFWFRfRVJSX0FMRVJUX0ZBVEFMOworI2lmZGVmIFdJVEhfVEhSRUFECisgICAgUHlHSUxTdGF0ZV9SZWxlYXNlKGdzdGF0ZSk7CisjZW5kaWYKKyAgICByZXR1cm4gcmV0OworfQorI2VuZGlmCisKK1B5RG9jX1NUUlZBUihQeVNTTF9zZXRfc2VydmVybmFtZV9jYWxsYmFja19kb2MsCisic2V0X3NlcnZlcm5hbWVfY2FsbGJhY2sobWV0aG9kKVxuXAorXG5cCitUaGlzIHNldHMgYSBjYWxsYmFjayB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gYSBzZXJ2ZXIgbmFtZSBpcyBwcm92aWRlZCBieVxuXAordGhlIFNTTC9UTFMgY2xpZW50IGluIHRoZSBTTkkgZXh0ZW5zaW9uLlxuXAorXG5cCitJZiB0aGUgYXJndW1lbnQgaXMgTm9uZSB0aGVuIHRoZSBjYWxsYmFjayBpcyBkaXNhYmxlZC4gVGhlIG1ldGhvZCBpcyBjYWxsZWRcblwKK3dpdGggdGhlIFNTTFNvY2tldCwgdGhlIHNlcnZlciBuYW1lIGFzIGEgc3RyaW5nLCBhbmQgdGhlIFNTTENvbnRleHQgb2JqZWN0LlxuXAorU2VlIFJGQyA2MDY2IGZvciBkZXRhaWxzIG9mIHRoZSBTTkkgZXh0ZW5zaW9uLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorc2V0X3NlcnZlcm5hbWVfY2FsbGJhY2soUHlTU0xDb250ZXh0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyNpZiBIQVZFX1NOSSAmJiAhZGVmaW5lZChPUEVOU1NMX05PX1RMU0VYVCkKKyAgICBQeU9iamVjdCAqY2I7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8iLCAmY2IpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIFB5X0NMRUFSKHNlbGYtPnNldF9ob3N0bmFtZSk7CisgICAgaWYgKGNiID09IFB5X05vbmUpIHsKKyAgICAgICAgU1NMX0NUWF9zZXRfdGxzZXh0X3NlcnZlcm5hbWVfY2FsbGJhY2soc2VsZi0+Y3R4LCBOVUxMKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGlmICghUHlDYWxsYWJsZV9DaGVjayhjYikpIHsKKyAgICAgICAgICAgIFNTTF9DVFhfc2V0X3Rsc2V4dF9zZXJ2ZXJuYW1lX2NhbGxiYWNrKHNlbGYtPmN0eCwgTlVMTCk7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub3QgYSBjYWxsYWJsZSBvYmplY3QiKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIFB5X0lOQ1JFRihjYik7CisgICAgICAgIHNlbGYtPnNldF9ob3N0bmFtZSA9IGNiOworICAgICAgICBTU0xfQ1RYX3NldF90bHNleHRfc2VydmVybmFtZV9jYWxsYmFjayhzZWxmLT5jdHgsIF9zZXJ2ZXJuYW1lX2NhbGxiYWNrKTsKKyAgICAgICAgU1NMX0NUWF9zZXRfdGxzZXh0X3NlcnZlcm5hbWVfYXJnKHNlbGYtPmN0eCwgc2VsZik7CisgICAgfQorICAgIFB5X1JFVFVSTl9OT05FOworI2Vsc2UKKyAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfTm90SW1wbGVtZW50ZWRFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgIlRoZSBUTFMgZXh0ZW5zaW9uIHNlcnZlcm5hbWUgY2FsbGJhY2ssICIKKyAgICAgICAgICAgICAgICAgICAgIlNTTF9DVFhfc2V0X3Rsc2V4dF9zZXJ2ZXJuYW1lX2NhbGxiYWNrLCAiCisgICAgICAgICAgICAgICAgICAgICJpcyBub3QgaW4gdGhlIGN1cnJlbnQgT3BlblNTTCBsaWJyYXJ5LiIpOworICAgIHJldHVybiBOVUxMOworI2VuZGlmCit9CisKIHN0YXRpYyBQeUdldFNldERlZiBjb250ZXh0X2dldHNldGxpc3RbXSA9IHsKICAgICB7Im9wdGlvbnMiLCAoZ2V0dGVyKSBnZXRfb3B0aW9ucywKICAgICAgICAgICAgICAgICAoc2V0dGVyKSBzZXRfb3B0aW9ucywgTlVMTH0sCkBAIC0yMzM4LDYgKzI1ODQsOCBAQAogICAgIHsic2V0X2VjZGhfY3VydmUiLCAoUHlDRnVuY3Rpb24pIHNldF9lY2RoX2N1cnZlLAogICAgICAgICAgICAgICAgICAgICAgICBNRVRIX08sIE5VTEx9LAogI2VuZGlmCisgICAgeyJzZXRfc2VydmVybmFtZV9jYWxsYmFjayIsIChQeUNGdW5jdGlvbikgc2V0X3NlcnZlcm5hbWVfY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUywgUHlTU0xfc2V0X3NlcnZlcm5hbWVfY2FsbGJhY2tfZG9jfSwKICAgICB7TlVMTCwgTlVMTH0gICAgICAgIC8qIHNlbnRpbmVsICovCiB9OwogCkBAIC0yMzYxLDEwICsyNjA5LDEwIEBACiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZ2V0YXR0cm8qLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3NldGF0dHJvKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9hc19idWZmZXIqLwotICAgIFB5X1RQRkxBR1NfREVGQVVMVCB8IFB5X1RQRkxBR1NfQkFTRVRZUEUsICAvKnRwX2ZsYWdzKi8KKyAgICBQeV9UUEZMQUdTX0RFRkFVTFQgfCBQeV9UUEZMQUdTX0JBU0VUWVBFIHwgUHlfVFBGTEFHU19IQVZFX0dDLCAvKnRwX2ZsYWdzKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9kb2MqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3RyYXZlcnNlKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9jbGVhciovCisgICAgKHRyYXZlcnNlcHJvYykgY29udGV4dF90cmF2ZXJzZSwgICAgICAgICAgIC8qdHBfdHJhdmVyc2UqLworICAgIChpbnF1aXJ5KSBjb250ZXh0X2NsZWFyLCAgICAgICAgICAgICAgICAgICAvKnRwX2NsZWFyKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9yaWNoY29tcGFyZSovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfd2Vha2xpc3RvZmZzZXQqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2l0ZXIqLwpAQCAtMjc0NCw2ICsyOTkyLDU3IEBACiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNFUlRfUkVRVUlSRUQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBZX1NTTF9DRVJUX1JFUVVJUkVEKTsKIAorICAgIC8qIEFsZXJ0IERlc2NyaXB0aW9ucyBmcm9tIHNzbC5oICovCisgICAgLyogbm90ZSBSRVNFUlZFRCBjb25zdGFudHMgbm8gbG9uZ2VyIGludGVuZGVkIGZvciB1c2UgaGF2ZSBiZWVuIHJlbW92ZWQgKi8KKyAgICAvKiBodHRwOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL3Rscy1wYXJhbWV0ZXJzL3Rscy1wYXJhbWV0ZXJzLnhtbCN0bHMtcGFyYW1ldGVycy02ICovCisKKyNkZWZpbmUgQUREX0FEX0NPTlNUQU5UKHMpIFwKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQUxFUlRfREVTQ1JJUFRJT05fIiNzLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1NMX0FEXyMjcykKKworICAgIEFERF9BRF9DT05TVEFOVChDTE9TRV9OT1RJRlkpOworICAgIEFERF9BRF9DT05TVEFOVChVTkVYUEVDVEVEX01FU1NBR0UpOworICAgIEFERF9BRF9DT05TVEFOVChCQURfUkVDT1JEX01BQyk7CisgICAgQUREX0FEX0NPTlNUQU5UKFJFQ09SRF9PVkVSRkxPVyk7CisgICAgQUREX0FEX0NPTlNUQU5UKERFQ09NUFJFU1NJT05fRkFJTFVSRSk7CisgICAgQUREX0FEX0NPTlNUQU5UKEhBTkRTSEFLRV9GQUlMVVJFKTsKKyAgICBBRERfQURfQ09OU1RBTlQoQkFEX0NFUlRJRklDQVRFKTsKKyAgICBBRERfQURfQ09OU1RBTlQoVU5TVVBQT1JURURfQ0VSVElGSUNBVEUpOworICAgIEFERF9BRF9DT05TVEFOVChDRVJUSUZJQ0FURV9SRVZPS0VEKTsKKyAgICBBRERfQURfQ09OU1RBTlQoQ0VSVElGSUNBVEVfRVhQSVJFRCk7CisgICAgQUREX0FEX0NPTlNUQU5UKENFUlRJRklDQVRFX1VOS05PV04pOworICAgIEFERF9BRF9DT05TVEFOVChJTExFR0FMX1BBUkFNRVRFUik7CisgICAgQUREX0FEX0NPTlNUQU5UKFVOS05PV05fQ0EpOworICAgIEFERF9BRF9DT05TVEFOVChBQ0NFU1NfREVOSUVEKTsKKyAgICBBRERfQURfQ09OU1RBTlQoREVDT0RFX0VSUk9SKTsKKyAgICBBRERfQURfQ09OU1RBTlQoREVDUllQVF9FUlJPUik7CisgICAgQUREX0FEX0NPTlNUQU5UKFBST1RPQ09MX1ZFUlNJT04pOworICAgIEFERF9BRF9DT05TVEFOVChJTlNVRkZJQ0lFTlRfU0VDVVJJVFkpOworICAgIEFERF9BRF9DT05TVEFOVChJTlRFUk5BTF9FUlJPUik7CisgICAgQUREX0FEX0NPTlNUQU5UKFVTRVJfQ0FOQ0VMTEVEKTsKKyAgICBBRERfQURfQ09OU1RBTlQoTk9fUkVORUdPVElBVElPTik7CisgICAgLyogTm90IGFsbCBjb25zdGFudHMgYXJlIGluIG9sZCBPcGVuU1NMIHZlcnNpb25zICovCisjaWZkZWYgU1NMX0FEX1VOU1VQUE9SVEVEX0VYVEVOU0lPTgorICAgIEFERF9BRF9DT05TVEFOVChVTlNVUFBPUlRFRF9FWFRFTlNJT04pOworI2VuZGlmCisjaWZkZWYgU1NMX0FEX0NFUlRJRklDQVRFX1VOT0JUQUlOQUJMRQorICAgIEFERF9BRF9DT05TVEFOVChDRVJUSUZJQ0FURV9VTk9CVEFJTkFCTEUpOworI2VuZGlmCisjaWZkZWYgU1NMX0FEX1VOUkVDT0dOSVpFRF9OQU1FCisgICAgQUREX0FEX0NPTlNUQU5UKFVOUkVDT0dOSVpFRF9OQU1FKTsKKyNlbmRpZgorI2lmZGVmIFNTTF9BRF9CQURfQ0VSVElGSUNBVEVfU1RBVFVTX1JFU1BPTlNFCisgICAgQUREX0FEX0NPTlNUQU5UKEJBRF9DRVJUSUZJQ0FURV9TVEFUVVNfUkVTUE9OU0UpOworI2VuZGlmCisjaWZkZWYgU1NMX0FEX0JBRF9DRVJUSUZJQ0FURV9IQVNIX1ZBTFVFCisgICAgQUREX0FEX0NPTlNUQU5UKEJBRF9DRVJUSUZJQ0FURV9IQVNIX1ZBTFVFKTsKKyNlbmRpZgorI2lmZGVmIFNTTF9BRF9VTktOT1dOX1BTS19JREVOVElUWQorICAgIEFERF9BRF9DT05TVEFOVChVTktOT1dOX1BTS19JREVOVElUWSk7CisjZW5kaWYKKworI3VuZGVmIEFERF9BRF9DT05TVEFOVAorCiAgICAgLyogcHJvdG9jb2wgdmVyc2lvbnMgKi8KICNpZm5kZWYgT1BFTlNTTF9OT19TU0wyCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlBST1RPQ09MX1NTTHYyIiwKQEAgLTI3NTUsNiArMzA1NCwxMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBZX1NTTF9WRVJTSU9OX1NTTDIzKTsKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUFJPVE9DT0xfVExTdjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBZX1NTTF9WRVJTSU9OX1RMUzEpOworI2lmIEhBVkVfVExTdjFfMgorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQUk9UT0NPTF9UTFN2MV8xIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQWV9TU0xfVkVSU0lPTl9UTFMxXzEpOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQUk9UT0NPTF9UTFN2MV8yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQWV9TU0xfVkVSU0lPTl9UTFMxXzIpOworI2VuZGlmCiAKICAgICAvKiBwcm90b2NvbCBvcHRpb25zICovCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk9QX0FMTCIsCkBAIC0yNzYyLDYgKzMwNjcsMTAgQEAKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiT1BfTk9fU1NMdjIiLCBTU0xfT1BfTk9fU1NMdjIpOwogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJPUF9OT19TU0x2MyIsIFNTTF9PUF9OT19TU0x2Myk7CiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk9QX05PX1RMU3YxIiwgU1NMX09QX05PX1RMU3YxKTsKKyNpZiBIQVZFX1RMU3YxXzIKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiT1BfTk9fVExTdjFfMSIsIFNTTF9PUF9OT19UTFN2MV8xKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiT1BfTk9fVExTdjFfMiIsIFNTTF9PUF9OT19UTFN2MV8yKTsKKyNlbmRpZgogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJPUF9DSVBIRVJfU0VSVkVSX1BSRUZFUkVOQ0UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNTTF9PUF9DSVBIRVJfU0VSVkVSX1BSRUZFUkVOQ0UpOwogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJPUF9TSU5HTEVfREhfVVNFIiwgU1NMX09QX1NJTkdMRV9ESF9VU0UpOwpAQCAtMjc3Myw3ICszMDgyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0xfT1BfTk9fQ09NUFJFU1NJT04pOwogI2VuZGlmCiAKLSNpZmRlZiBTU0xfQ1RSTF9TRVRfVExTRVhUX0hPU1ROQU1FCisjaWYgSEFWRV9TTkkKICAgICByID0gUHlfVHJ1ZTsKICNlbHNlCiAgICAgciA9IFB5X0ZhbHNlOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc3RydWN0LmMgYi9Nb2R1bGVzL19zdHJ1Y3QuYwppbmRleCAyODQ4NjE0Li41ODQ4YjE5IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19zdHJ1Y3QuYworKysgYi9Nb2R1bGVzL19zdHJ1Y3QuYwpAQCAtMjYsNiArMjYsNyBAQAogICAgIGNvbnN0IHN0cnVjdCBfZm9ybWF0ZGVmICpmbXRkZWY7CiAgICAgUHlfc3NpemVfdCBvZmZzZXQ7CiAgICAgUHlfc3NpemVfdCBzaXplOworICAgIFB5X3NzaXplX3QgcmVwZWF0OwogfSBmb3JtYXRjb2RlOwogCiAvKiBTdHJ1Y3Qgb2JqZWN0IGludGVyZmFjZSAqLwpAQCAtMTE5OSwxMiArMTIwMCwxMSBAQAogICAgIGNhc2UgJyEnOiAvKiBOZXR3b3JrIGJ5dGUgb3JkZXIgaXMgYmlnLWVuZGlhbiAqLwogICAgICAgICByZXR1cm4gYmlnZW5kaWFuX3RhYmxlOwogICAgIGNhc2UgJz0nOiB7IC8qIEhvc3QgYnl0ZSBvcmRlciAtLSBkaWZmZXJlbnQgZnJvbSBuYXRpdmUgaW4gYWxpZ25tZW50ISAqLwotICAgICAgICBpbnQgbiA9IDE7Ci0gICAgICAgIGNoYXIgKnAgPSAoY2hhciAqKSAmbjsKLSAgICAgICAgaWYgKCpwID09IDEpCi0gICAgICAgICAgICByZXR1cm4gbGlsZW5kaWFuX3RhYmxlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gYmlnZW5kaWFuX3RhYmxlOworI2lmIFBZX0xJVFRMRV9FTkRJQU4KKyAgICAgICAgcmV0dXJuIGxpbGVuZGlhbl90YWJsZTsKKyNlbHNlCisgICAgICAgIHJldHVybiBiaWdlbmRpYW5fdGFibGU7CisjZW5kaWYKICAgICB9CiAgICAgZGVmYXVsdDoKICAgICAgICAgLS0qcGZtdDsgLyogQmFjayBvdXQgb2YgcG9pbnRlciBpbmNyZW1lbnQgKi8KQEAgLTEyNDgsNiArMTI0OCw5IEBACiAgICAgcmV0dXJuIHNpemU7CiB9CiAKKy8qCisgKiBTdHJ1Y3Qgb2JqZWN0IGltcGxlbWVudGF0aW9uLgorICovCiAKIC8qIGNhbGN1bGF0ZSB0aGUgc2l6ZSBvZiBhIGZvcm1hdCBzdHJpbmcgKi8KIApAQCAtMTI2MSw3ICsxMjY0LDcgQEAKICAgICBjb25zdCBjaGFyICpzOwogICAgIGNvbnN0IGNoYXIgKmZtdDsKICAgICBjaGFyIGM7Ci0gICAgUHlfc3NpemVfdCBzaXplLCBsZW4sIG51bSwgaXRlbXNpemU7CisgICAgUHlfc3NpemVfdCBzaXplLCBsZW4sIG5jb2RlcywgbnVtLCBpdGVtc2l6ZTsKIAogICAgIGZtdCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHNlbGYtPnNfZm9ybWF0KTsKIApAQCAtMTI3MCw2ICsxMjczLDcgQEAKICAgICBzID0gZm10OwogICAgIHNpemUgPSAwOwogICAgIGxlbiA9IDA7CisgICAgbmNvZGVzID0gMDsKICAgICB3aGlsZSAoKGMgPSAqcysrKSAhPSAnXDAnKSB7CiAgICAgICAgIGlmIChQeV9JU1NQQUNFKFB5X0NIQVJNQVNLKGMpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTI5OSw5ICsxMzAzLDkgQEAKIAogICAgICAgICBzd2l0Y2ggKGMpIHsKICAgICAgICAgICAgIGNhc2UgJ3MnOiAvKiBmYWxsIHRocm91Z2ggKi8KLSAgICAgICAgICAgIGNhc2UgJ3AnOiBsZW4rKzsgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdwJzogbGVuKys7IG5jb2RlcysrOyBicmVhazsKICAgICAgICAgICAgIGNhc2UgJ3gnOiBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6IGxlbiArPSBudW07IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogbGVuICs9IG51bTsgaWYgKG51bSkgbmNvZGVzKys7IGJyZWFrOwogICAgICAgICB9CiAKICAgICAgICAgaXRlbXNpemUgPSBlLT5zaXplOwpAQCAtMTMxNiwxNCArMTMyMCwxNCBAQAogICAgIH0KIAogICAgIC8qIGNoZWNrIGZvciBvdmVyZmxvdyAqLwotICAgIGlmICgobGVuICsgMSkgPiAoUFlfU1NJWkVfVF9NQVggLyBzaXplb2YoZm9ybWF0Y29kZSkpKSB7CisgICAgaWYgKChuY29kZXMgKyAxKSA+IChQWV9TU0laRV9UX01BWCAvIHNpemVvZihmb3JtYXRjb2RlKSkpIHsKICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAogICAgIHNlbGYtPnNfc2l6ZSA9IHNpemU7CiAgICAgc2VsZi0+c19sZW4gPSBsZW47Ci0gICAgY29kZXMgPSBQeU1lbV9NQUxMT0MoKGxlbiArIDEpICogc2l6ZW9mKGZvcm1hdGNvZGUpKTsKKyAgICBjb2RlcyA9IFB5TWVtX01BTExPQygobmNvZGVzICsgMSkgKiBzaXplb2YoZm9ybWF0Y29kZSkpOwogICAgIGlmIChjb2RlcyA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgIHJldHVybiAtMTsKQEAgLTEzNTUsMjMgKzEzNTksMjQgQEAKICAgICAgICAgICAgIGNvZGVzLT5vZmZzZXQgPSBzaXplOwogICAgICAgICAgICAgY29kZXMtPnNpemUgPSBudW07CiAgICAgICAgICAgICBjb2Rlcy0+Zm10ZGVmID0gZTsKKyAgICAgICAgICAgIGNvZGVzLT5yZXBlYXQgPSAxOwogICAgICAgICAgICAgY29kZXMrKzsKICAgICAgICAgICAgIHNpemUgKz0gbnVtOwogICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJ3gnKSB7CiAgICAgICAgICAgICBzaXplICs9IG51bTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHdoaWxlICgtLW51bSA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgY29kZXMtPm9mZnNldCA9IHNpemU7Ci0gICAgICAgICAgICAgICAgY29kZXMtPnNpemUgPSBlLT5zaXplOwotICAgICAgICAgICAgICAgIGNvZGVzLT5mbXRkZWYgPSBlOwotICAgICAgICAgICAgICAgIGNvZGVzKys7Ci0gICAgICAgICAgICAgICAgc2l6ZSArPSBlLT5zaXplOwotICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKG51bSkgeworICAgICAgICAgICAgY29kZXMtPm9mZnNldCA9IHNpemU7CisgICAgICAgICAgICBjb2Rlcy0+c2l6ZSA9IGUtPnNpemU7CisgICAgICAgICAgICBjb2Rlcy0+Zm10ZGVmID0gZTsKKyAgICAgICAgICAgIGNvZGVzLT5yZXBlYXQgPSBudW07CisgICAgICAgICAgICBjb2RlcysrOworICAgICAgICAgICAgc2l6ZSArPSBlLT5zaXplICogbnVtOwogICAgICAgICB9CiAgICAgfQogICAgIGNvZGVzLT5mbXRkZWYgPSBOVUxMOwogICAgIGNvZGVzLT5vZmZzZXQgPSBzaXplOwogICAgIGNvZGVzLT5zaXplID0gMDsKKyAgICBjb2Rlcy0+cmVwZWF0ID0gMDsKIAogICAgIHJldHVybiAwOwogCkBAIC0xNDYwLDIyICsxNDY1LDI2IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgZm9yIChjb2RlID0gc29zZWxmLT5zX2NvZGVzOyBjb2RlLT5mbXRkZWYgIT0gTlVMTDsgY29kZSsrKSB7Ci0gICAgICAgIFB5T2JqZWN0ICp2OwogICAgICAgICBjb25zdCBmb3JtYXRkZWYgKmUgPSBjb2RlLT5mbXRkZWY7CiAgICAgICAgIGNvbnN0IGNoYXIgKnJlcyA9IHN0YXJ0ZnJvbSArIGNvZGUtPm9mZnNldDsKLSAgICAgICAgaWYgKGUtPmZvcm1hdCA9PSAncycpIHsKLSAgICAgICAgICAgIHYgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKHJlcywgY29kZS0+c2l6ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoZS0+Zm9ybWF0ID09ICdwJykgewotICAgICAgICAgICAgUHlfc3NpemVfdCBuID0gKih1bnNpZ25lZCBjaGFyKilyZXM7Ci0gICAgICAgICAgICBpZiAobiA+PSBjb2RlLT5zaXplKQotICAgICAgICAgICAgICAgIG4gPSBjb2RlLT5zaXplIC0gMTsKLSAgICAgICAgICAgIHYgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKHJlcyArIDEsIG4pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdiA9IGUtPnVucGFjayhyZXMsIGUpOworICAgICAgICBQeV9zc2l6ZV90IGogPSBjb2RlLT5yZXBlYXQ7CisgICAgICAgIHdoaWxlIChqLS0pIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICp2OworICAgICAgICAgICAgaWYgKGUtPmZvcm1hdCA9PSAncycpIHsKKyAgICAgICAgICAgICAgICB2ID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShyZXMsIGNvZGUtPnNpemUpOworICAgICAgICAgICAgfSBlbHNlIGlmIChlLT5mb3JtYXQgPT0gJ3AnKSB7CisgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBuID0gKih1bnNpZ25lZCBjaGFyKilyZXM7CisgICAgICAgICAgICAgICAgaWYgKG4gPj0gY29kZS0+c2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgbiA9IGNvZGUtPnNpemUgLSAxOworICAgICAgICAgICAgICAgIHYgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKHJlcyArIDEsIG4pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2ID0gZS0+dW5wYWNrKHJlcywgZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodiA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgICAgIFB5VHVwbGVfU0VUX0lURU0ocmVzdWx0LCBpKyssIHYpOworICAgICAgICAgICAgcmVzICs9IGNvZGUtPnNpemU7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHYgPT0gTlVMTCkKLSAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgUHlUdXBsZV9TRVRfSVRFTShyZXN1bHQsIGkrKywgdik7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTE1NTcsNiArMTU2NiwxNDIgQEAKIH0KIAogCisvKiBVbnBhY2sgaXRlcmF0b3IgdHlwZSAqLworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3RfSEVBRAorICAgIFB5U3RydWN0T2JqZWN0ICpzbzsKKyAgICBQeV9idWZmZXIgYnVmOworICAgIFB5X3NzaXplX3QgaW5kZXg7Cit9IHVucGFja2l0ZXJvYmplY3Q7CisKK3N0YXRpYyB2b2lkCit1bnBhY2tpdGVyX2RlYWxsb2ModW5wYWNraXRlcm9iamVjdCAqc2VsZikKK3sKKyAgICBQeV9YREVDUkVGKHNlbGYtPnNvKTsKKyAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZzZWxmLT5idWYpOworICAgIFB5T2JqZWN0X0dDX0RlbChzZWxmKTsKK30KKworc3RhdGljIGludAordW5wYWNraXRlcl90cmF2ZXJzZSh1bnBhY2tpdGVyb2JqZWN0ICpzZWxmLCB2aXNpdHByb2MgdmlzaXQsIHZvaWQgKmFyZykKK3sKKyAgICBQeV9WSVNJVChzZWxmLT5zbyk7CisgICAgUHlfVklTSVQoc2VsZi0+YnVmLm9iaik7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCit1bnBhY2tpdGVyX2xlbih1bnBhY2tpdGVyb2JqZWN0ICpzZWxmKQoreworICAgIFB5X3NzaXplX3QgbGVuOworICAgIGlmIChzZWxmLT5zbyA9PSBOVUxMKQorICAgICAgICBsZW4gPSAwOworICAgIGVsc2UKKyAgICAgICAgbGVuID0gKHNlbGYtPmJ1Zi5sZW4gLSBzZWxmLT5pbmRleCkgLyBzZWxmLT5zby0+c19zaXplOworICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3QobGVuKTsKK30KKworc3RhdGljIFB5TWV0aG9kRGVmIHVucGFja2l0ZXJfbWV0aG9kc1tdID0geworICAgIHsiX19sZW5ndGhfaGludF9fIiwgKFB5Q0Z1bmN0aW9uKSB1bnBhY2tpdGVyX2xlbiwgTUVUSF9OT0FSR1MsIE5VTEx9LAorICAgIHtOVUxMLCAgICAgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCit9OworCitzdGF0aWMgUHlPYmplY3QgKgordW5wYWNraXRlcl9pdGVybmV4dCh1bnBhY2tpdGVyb2JqZWN0ICpzZWxmKQoreworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgaWYgKHNlbGYtPnNvID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChzZWxmLT5pbmRleCA+PSBzZWxmLT5idWYubGVuKSB7CisgICAgICAgIC8qIEl0ZXJhdG9yIGV4aGF1c3RlZCAqLworICAgICAgICBQeV9DTEVBUihzZWxmLT5zbyk7CisgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnNlbGYtPmJ1Zik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBhc3NlcnQoc2VsZi0+aW5kZXggKyBzZWxmLT5zby0+c19zaXplIDw9IHNlbGYtPmJ1Zi5sZW4pOworICAgIHJlc3VsdCA9IHNfdW5wYWNrX2ludGVybmFsKHNlbGYtPnNvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKikgc2VsZi0+YnVmLmJ1ZiArIHNlbGYtPmluZGV4KTsKKyAgICBzZWxmLT5pbmRleCArPSBzZWxmLT5zby0+c19zaXplOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK1B5VHlwZU9iamVjdCB1bnBhY2tpdGVyX3R5cGUgPSB7CisgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKCZQeVR5cGVfVHlwZSwgMCkKKyAgICAidW5wYWNrX2l0ZXJhdG9yIiwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KKyAgICBzaXplb2YodW5wYWNraXRlcm9iamVjdCksICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlbXNpemUgKi8KKyAgICAoZGVzdHJ1Y3Rvcil1bnBhY2tpdGVyX2RlYWxsb2MsICAgICAgICAgICAgIC8qIHRwX2RlYWxsb2MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3ByaW50ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXNlcnZlZCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVwciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbnVtYmVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19zZXF1ZW5jZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbWFwcGluZyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCisgICAgUHlPYmplY3RfR2VuZXJpY0dldEF0dHIsICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLworICAgIFB5X1RQRkxBR1NfREVGQVVMVCB8IFB5X1RQRkxBR1NfSEFWRV9HQywgICAgLyogdHBfZmxhZ3MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RvYyAqLworICAgICh0cmF2ZXJzZXByb2MpdW5wYWNraXRlcl90cmF2ZXJzZSwgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yaWNoY29tcGFyZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KKyAgICBQeU9iamVjdF9TZWxmSXRlciwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KKyAgICAoaXRlcm5leHRmdW5jKXVucGFja2l0ZXJfaXRlcm5leHQsICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCisgICAgdW5wYWNraXRlcl9tZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCit9OworCitQeURvY19TVFJWQVIoc19pdGVyX3VucGFja19fZG9jX18sCisiUy5pdGVyX3VucGFjayhidWZmZXIpIC0+IGl0ZXJhdG9yKHYxLCB2MiwgLi4uKVxuXAorXG5cCitSZXR1cm4gYW4gaXRlcmF0b3IgeWllbGRpbmcgdHVwbGVzIHVucGFja2VkIGZyb20gdGhlIGdpdmVuIGJ5dGVzXG5cCitzb3VyY2UsIGxpa2UgYSByZXBlYXRlZCBpbnZvY2F0aW9uIG9mIHVucGFja19mcm9tKCkuICBSZXF1aXJlc1xuXAordGhhdCB0aGUgYnl0ZXMgbGVuZ3RoIGJlIGEgbXVsdGlwbGUgb2YgdGhlIHN0cnVjdCBzaXplLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorc19pdGVyX3VucGFjayhQeU9iamVjdCAqX3NvLCBQeU9iamVjdCAqaW5wdXQpCit7CisgICAgUHlTdHJ1Y3RPYmplY3QgKnNvID0gKFB5U3RydWN0T2JqZWN0ICopIF9zbzsKKyAgICB1bnBhY2tpdGVyb2JqZWN0ICpzZWxmOworCisgICAgYXNzZXJ0KFB5U3RydWN0X0NoZWNrKF9zbykpOworICAgIGFzc2VydChzby0+c19jb2RlcyAhPSBOVUxMKTsKKworICAgIGlmIChzby0+c19zaXplID09IDApIHsKKyAgICAgICAgUHlFcnJfRm9ybWF0KFN0cnVjdEVycm9yLAorICAgICAgICAgICAgICAgICAgICAgImNhbm5vdCBpdGVyYXRpdmVseSB1bnBhY2sgd2l0aCBhIHN0cnVjdCBvZiBsZW5ndGggMCIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBzZWxmID0gKHVucGFja2l0ZXJvYmplY3QgKikgUHlUeXBlX0dlbmVyaWNBbGxvYygmdW5wYWNraXRlcl90eXBlLCAwKTsKKyAgICBpZiAoc2VsZiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmIChQeU9iamVjdF9HZXRCdWZmZXIoaW5wdXQsICZzZWxmLT5idWYsIFB5QlVGX1NJTVBMRSkgPCAwKSB7CisgICAgICAgIFB5X0RFQ1JFRihzZWxmKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmIChzZWxmLT5idWYubGVuICUgc28tPnNfc2l6ZSAhPSAwKSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChTdHJ1Y3RFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICJpdGVyYXRpdmUgdW5wYWNraW5nIHJlcXVpcmVzIGEgYnl0ZXMgbGVuZ3RoICIKKyAgICAgICAgICAgICAgICAgICAgICJtdWx0aXBsZSBvZiAlemQiLAorICAgICAgICAgICAgICAgICAgICAgc28tPnNfc2l6ZSk7CisgICAgICAgIFB5X0RFQ1JFRihzZWxmKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIFB5X0lOQ1JFRihzbyk7CisgICAgc2VsZi0+c28gPSBzbzsKKyAgICBzZWxmLT5pbmRleCA9IDA7CisgICAgcmV0dXJuIChQeU9iamVjdCAqKSBzZWxmOworfQorCisKIC8qCiAgKiBHdXRzIG9mIHRoZSBwYWNrIGZ1bmN0aW9uLgogICoKQEAgLTE1NzgsNjIgKzE3MjMsNjcgQEAKICAgICBtZW1zZXQoYnVmLCAnXDAnLCBzb3NlbGYtPnNfc2l6ZSk7CiAgICAgaSA9IG9mZnNldDsKICAgICBmb3IgKGNvZGUgPSBzb3NlbGYtPnNfY29kZXM7IGNvZGUtPmZtdGRlZiAhPSBOVUxMOyBjb2RlKyspIHsKLSAgICAgICAgUHlfc3NpemVfdCBuOwotICAgICAgICBQeU9iamVjdCAqdiA9IFB5VHVwbGVfR0VUX0lURU0oYXJncywgaSsrKTsKICAgICAgICAgY29uc3QgZm9ybWF0ZGVmICplID0gY29kZS0+Zm10ZGVmOwogICAgICAgICBjaGFyICpyZXMgPSBidWYgKyBjb2RlLT5vZmZzZXQ7Ci0gICAgICAgIGlmIChlLT5mb3JtYXQgPT0gJ3MnKSB7Ci0gICAgICAgICAgICBpbnQgaXNzdHJpbmc7Ci0gICAgICAgICAgICB2b2lkICpwOwotICAgICAgICAgICAgaXNzdHJpbmcgPSBQeUJ5dGVzX0NoZWNrKHYpOwotICAgICAgICAgICAgaWYgKCFpc3N0cmluZyAmJiAhUHlCeXRlQXJyYXlfQ2hlY2sodikpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoU3RydWN0RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudCBmb3IgJ3MnIG11c3QgYmUgYSBieXRlcyBvYmplY3QiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaXNzdHJpbmcpIHsKLSAgICAgICAgICAgICAgICBuID0gUHlCeXRlc19HRVRfU0laRSh2KTsKLSAgICAgICAgICAgICAgICBwID0gUHlCeXRlc19BU19TVFJJTkcodik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBuID0gUHlCeXRlQXJyYXlfR0VUX1NJWkUodik7Ci0gICAgICAgICAgICAgICAgcCA9IFB5Qnl0ZUFycmF5X0FTX1NUUklORyh2KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChuID4gY29kZS0+c2l6ZSkKLSAgICAgICAgICAgICAgICBuID0gY29kZS0+c2l6ZTsKLSAgICAgICAgICAgIGlmIChuID4gMCkKLSAgICAgICAgICAgICAgICBtZW1jcHkocmVzLCBwLCBuKTsKLSAgICAgICAgfSBlbHNlIGlmIChlLT5mb3JtYXQgPT0gJ3AnKSB7Ci0gICAgICAgICAgICBpbnQgaXNzdHJpbmc7Ci0gICAgICAgICAgICB2b2lkICpwOwotICAgICAgICAgICAgaXNzdHJpbmcgPSBQeUJ5dGVzX0NoZWNrKHYpOwotICAgICAgICAgICAgaWYgKCFpc3N0cmluZyAmJiAhUHlCeXRlQXJyYXlfQ2hlY2sodikpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoU3RydWN0RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudCBmb3IgJ3AnIG11c3QgYmUgYSBieXRlcyBvYmplY3QiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaXNzdHJpbmcpIHsKLSAgICAgICAgICAgICAgICBuID0gUHlCeXRlc19HRVRfU0laRSh2KTsKLSAgICAgICAgICAgICAgICBwID0gUHlCeXRlc19BU19TVFJJTkcodik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBuID0gUHlCeXRlQXJyYXlfR0VUX1NJWkUodik7Ci0gICAgICAgICAgICAgICAgcCA9IFB5Qnl0ZUFycmF5X0FTX1NUUklORyh2KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChuID4gKGNvZGUtPnNpemUgLSAxKSkKLSAgICAgICAgICAgICAgICBuID0gY29kZS0+c2l6ZSAtIDE7Ci0gICAgICAgICAgICBpZiAobiA+IDApCi0gICAgICAgICAgICAgICAgbWVtY3B5KHJlcyArIDEsIHAsIG4pOwotICAgICAgICAgICAgaWYgKG4gPiAyNTUpCi0gICAgICAgICAgICAgICAgbiA9IDI1NTsKLSAgICAgICAgICAgICpyZXMgPSBQeV9TQUZFX0RPV05DQVNUKG4sIFB5X3NzaXplX3QsIHVuc2lnbmVkIGNoYXIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKGUtPnBhY2socmVzLCB2LCBlKSA8IDApIHsKLSAgICAgICAgICAgICAgICBpZiAoUHlMb25nX0NoZWNrKHYpICYmIFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfT3ZlcmZsb3dFcnJvcikpCisgICAgICAgIFB5X3NzaXplX3QgaiA9IGNvZGUtPnJlcGVhdDsKKyAgICAgICAgd2hpbGUgKGotLSkgeworICAgICAgICAgICAgUHlPYmplY3QgKnYgPSBQeVR1cGxlX0dFVF9JVEVNKGFyZ3MsIGkrKyk7CisgICAgICAgICAgICBpZiAoZS0+Zm9ybWF0ID09ICdzJykgeworICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbjsKKyAgICAgICAgICAgICAgICBpbnQgaXNzdHJpbmc7CisgICAgICAgICAgICAgICAgdm9pZCAqcDsKKyAgICAgICAgICAgICAgICBpc3N0cmluZyA9IFB5Qnl0ZXNfQ2hlY2sodik7CisgICAgICAgICAgICAgICAgaWYgKCFpc3N0cmluZyAmJiAhUHlCeXRlQXJyYXlfQ2hlY2sodikpIHsKICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFN0cnVjdEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvbmcgdG9vIGxhcmdlIHRvIGNvbnZlcnQgdG8gaW50Iik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50IGZvciAncycgbXVzdCBiZSBhIGJ5dGVzIG9iamVjdCIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpc3N0cmluZykgeworICAgICAgICAgICAgICAgICAgICBuID0gUHlCeXRlc19HRVRfU0laRSh2KTsKKyAgICAgICAgICAgICAgICAgICAgcCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHYpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbiA9IFB5Qnl0ZUFycmF5X0dFVF9TSVpFKHYpOworICAgICAgICAgICAgICAgICAgICBwID0gUHlCeXRlQXJyYXlfQVNfU1RSSU5HKHYpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobiA+IGNvZGUtPnNpemUpCisgICAgICAgICAgICAgICAgICAgIG4gPSBjb2RlLT5zaXplOworICAgICAgICAgICAgICAgIGlmIChuID4gMCkKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KHJlcywgcCwgbik7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGUtPmZvcm1hdCA9PSAncCcpIHsKKyAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG47CisgICAgICAgICAgICAgICAgaW50IGlzc3RyaW5nOworICAgICAgICAgICAgICAgIHZvaWQgKnA7CisgICAgICAgICAgICAgICAgaXNzdHJpbmcgPSBQeUJ5dGVzX0NoZWNrKHYpOworICAgICAgICAgICAgICAgIGlmICghaXNzdHJpbmcgJiYgIVB5Qnl0ZUFycmF5X0NoZWNrKHYpKSB7CisgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhTdHJ1Y3RFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudCBmb3IgJ3AnIG11c3QgYmUgYSBieXRlcyBvYmplY3QiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoaXNzdHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgbiA9IFB5Qnl0ZXNfR0VUX1NJWkUodik7CisgICAgICAgICAgICAgICAgICAgIHAgPSBQeUJ5dGVzX0FTX1NUUklORyh2KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG4gPSBQeUJ5dGVBcnJheV9HRVRfU0laRSh2KTsKKyAgICAgICAgICAgICAgICAgICAgcCA9IFB5Qnl0ZUFycmF5X0FTX1NUUklORyh2KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG4gPiAoY29kZS0+c2l6ZSAtIDEpKQorICAgICAgICAgICAgICAgICAgICBuID0gY29kZS0+c2l6ZSAtIDE7CisgICAgICAgICAgICAgICAgaWYgKG4gPiAwKQorICAgICAgICAgICAgICAgICAgICBtZW1jcHkocmVzICsgMSwgcCwgbik7CisgICAgICAgICAgICAgICAgaWYgKG4gPiAyNTUpCisgICAgICAgICAgICAgICAgICAgIG4gPSAyNTU7CisgICAgICAgICAgICAgICAgKnJlcyA9IFB5X1NBRkVfRE9XTkNBU1QobiwgUHlfc3NpemVfdCwgdW5zaWduZWQgY2hhcik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChlLT5wYWNrKHJlcywgdiwgZSkgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChQeUxvbmdfQ2hlY2sodikgJiYgUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19PdmVyZmxvd0Vycm9yKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhTdHJ1Y3RFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9uZyB0b28gbGFyZ2UgdG8gY29udmVydCB0byBpbnQiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlcyArPSBjb2RlLT5zaXplOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xNzY5LDE0ICsxOTE5LDE4IEBACiBzX3NpemVvZihQeVN0cnVjdE9iamVjdCAqc2VsZiwgdm9pZCAqdW51c2VkKQogewogICAgIFB5X3NzaXplX3Qgc2l6ZTsKKyAgICBmb3JtYXRjb2RlICpjb2RlOwogCi0gICAgc2l6ZSA9IHNpemVvZihQeVN0cnVjdE9iamVjdCkgKyBzaXplb2YoZm9ybWF0Y29kZSkgKiAoc2VsZi0+c19sZW4gKyAxKTsKKyAgICBzaXplID0gc2l6ZW9mKFB5U3RydWN0T2JqZWN0KSArIHNpemVvZihmb3JtYXRjb2RlKTsKKyAgICBmb3IgKGNvZGUgPSBzZWxmLT5zX2NvZGVzOyBjb2RlLT5mbXRkZWYgIT0gTlVMTDsgY29kZSsrKQorICAgICAgICBzaXplICs9IHNpemVvZihmb3JtYXRjb2RlKTsKICAgICByZXR1cm4gUHlMb25nX0Zyb21Tc2l6ZV90KHNpemUpOwogfQogCiAvKiBMaXN0IG9mIGZ1bmN0aW9ucyAqLwogCiBzdGF0aWMgc3RydWN0IFB5TWV0aG9kRGVmIHNfbWV0aG9kc1tdID0geworICAgIHsiaXRlcl91bnBhY2siLCAgICAgc19pdGVyX3VucGFjaywgIE1FVEhfTywgc19pdGVyX3VucGFja19fZG9jX199LAogICAgIHsicGFjayIsICAgICAgICAgICAgc19wYWNrLCAgICAgICAgIE1FVEhfVkFSQVJHUywgc19wYWNrX19kb2NfX30sCiAgICAgeyJwYWNrX2ludG8iLCAgICAgICBzX3BhY2tfaW50bywgICAgTUVUSF9WQVJBUkdTLCBzX3BhY2tfaW50b19fZG9jX199LAogICAgIHsidW5wYWNrIiwgICAgICAgICAgc191bnBhY2ssICAgICAgIE1FVEhfTywgc191bnBhY2tfX2RvY19ffSwKQEAgLTIwMjYsOSArMjE4MCwzNCBAQAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK1B5RG9jX1NUUlZBUihpdGVyX3VucGFja19kb2MsCisiaXRlcl91bnBhY2soZm10LCBidWZmZXIpIC0+IGl0ZXJhdG9yKHYxLCB2MiwgLi4uKVxuXAorXG5cCitSZXR1cm4gYW4gaXRlcmF0b3IgeWllbGRpbmcgdHVwbGVzIHVucGFja2VkIGZyb20gdGhlIGdpdmVuIGJ5dGVzXG5cCitzb3VyY2UgYWNjb3JkaW5nIHRvIHRoZSBmb3JtYXQgc3RyaW5nLCBsaWtlIGEgcmVwZWF0ZWQgaW52b2NhdGlvbiBvZlxuXAordW5wYWNrX2Zyb20oKS4gIFJlcXVpcmVzIHRoYXQgdGhlIGJ5dGVzIGxlbmd0aCBiZSBhIG11bHRpcGxlIG9mIHRoZVxuXAorZm9ybWF0IHN0cnVjdCBzaXplLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgoraXRlcl91bnBhY2soUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5T2JqZWN0ICpzX29iamVjdCwgKmZtdCwgKmlucHV0LCAqcmVzdWx0OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPTzppdGVyX3VucGFjayIsICZmbXQsICZpbnB1dCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgc19vYmplY3QgPSBjYWNoZV9zdHJ1Y3QoZm10KTsKKyAgICBpZiAoc19vYmplY3QgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmVzdWx0ID0gc19pdGVyX3VucGFjayhzX29iamVjdCwgaW5wdXQpOworICAgIFB5X0RFQ1JFRihzX29iamVjdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIHN0cnVjdCBQeU1ldGhvZERlZiBtb2R1bGVfZnVuY3Rpb25zW10gPSB7CiAgICAgeyJfY2xlYXJjYWNoZSIsICAgICAoUHlDRnVuY3Rpb24pY2xlYXJjYWNoZSwgICAgICAgIE1FVEhfTk9BUkdTLCAgICBjbGVhcmNhY2hlX2RvY30sCiAgICAgeyJjYWxjc2l6ZSIsICAgICAgICBjYWxjc2l6ZSwgICAgICAgTUVUSF9PLCBjYWxjc2l6ZV9kb2N9LAorICAgIHsiaXRlcl91bnBhY2siLCAgICAgaXRlcl91bnBhY2ssICAgIE1FVEhfVkFSQVJHUywgICBpdGVyX3VucGFja19kb2N9LAogICAgIHsicGFjayIsICAgICAgICAgICAgcGFjaywgICAgICAgICAgIE1FVEhfVkFSQVJHUywgICBwYWNrX2RvY30sCiAgICAgeyJwYWNrX2ludG8iLCAgICAgICBwYWNrX2ludG8sICAgICAgTUVUSF9WQVJBUkdTLCAgIHBhY2tfaW50b19kb2N9LAogICAgIHsidW5wYWNrIiwgICAgICAgICAgdW5wYWNrLCBNRVRIX1ZBUkFSR1MsICAgdW5wYWNrX2RvY30sCkBAIC0yMDk4LDEzICsyMjc3LDEzIEBACiAKICAgICAvKiBDaGVjayBlbmRpYW4gYW5kIHN3YXAgaW4gZmFzdGVyIGZ1bmN0aW9ucyAqLwogICAgIHsKLSAgICAgICAgaW50IG9uZSA9IDE7CiAgICAgICAgIGZvcm1hdGRlZiAqbmF0aXZlID0gbmF0aXZlX3RhYmxlOwogICAgICAgICBmb3JtYXRkZWYgKm90aGVyLCAqcHRyOwotICAgICAgICBpZiAoKGludCkqKHVuc2lnbmVkIGNoYXIqKSZvbmUpCi0gICAgICAgICAgICBvdGhlciA9IGxpbGVuZGlhbl90YWJsZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgb3RoZXIgPSBiaWdlbmRpYW5fdGFibGU7CisjaWYgUFlfTElUVExFX0VORElBTgorICAgICAgICBvdGhlciA9IGxpbGVuZGlhbl90YWJsZTsKKyNlbHNlCisgICAgICAgIG90aGVyID0gYmlnZW5kaWFuX3RhYmxlOworI2VuZGlmCiAgICAgICAgIC8qIFNjYW4gdGhyb3VnaCB0aGUgbmF0aXZlIHRhYmxlLCBmaW5kIGEgbWF0Y2hpbmcKICAgICAgICAgICAgZW50cnkgaW4gdGhlIGVuZGlhbiB0YWJsZSBhbmQgc3dhcCBpbiB0aGUKICAgICAgICAgICAgbmF0aXZlIGltcGxlbWVudGF0aW9ucyB3aGVuZXZlciBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fdGVzdGJ1ZmZlci5jIGIvTW9kdWxlcy9fdGVzdGJ1ZmZlci5jCmluZGV4IDMxNjY2NmUuLmE0ZTE2NDMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3Rlc3RidWZmZXIuYworKysgYi9Nb2R1bGVzL190ZXN0YnVmZmVyLmMKQEAgLTI4MzcsMzYgKzI4MzcsMzYgQEAKICAgICBpZiAoc2ltcGxlX2Zvcm1hdCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJORF9NQVhfTkRJTSIsIE5EX01BWF9ORElNKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkRfVkFSRVhQT1JUIiwgTkRfVkFSRVhQT1JUKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkRfV1JJVEFCTEUiLCBORF9XUklUQUJMRSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk5EX0ZPUlRSQU4iLCBORF9GT1JUUkFOKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkRfU0NBTEFSIiwgTkRfU0NBTEFSKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkRfUElMIiwgTkRfUElMKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkRfR0VUQlVGX0ZBSUwiLCBORF9HRVRCVUZfRkFJTCk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk5EX0dFVEJVRl9VTkRFRklORUQiLCBORF9HRVRCVUZfVU5ERUZJTkVEKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkRfUkVESVJFQ1QiLCBORF9SRURJUkVDVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTkRfTUFYX05ESU0pOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE5EX1ZBUkVYUE9SVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTkRfV1JJVEFCTEUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE5EX0ZPUlRSQU4pOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE5EX1NDQUxBUik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTkRfUElMKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBORF9HRVRCVUZfRkFJTCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTkRfR0VUQlVGX1VOREVGSU5FRCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTkRfUkVESVJFQ1QpOwogCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlB5QlVGX1NJTVBMRSIsIFB5QlVGX1NJTVBMRSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlB5QlVGX1dSSVRBQkxFIiwgUHlCVUZfV1JJVEFCTEUpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUJVRl9GT1JNQVQiLCBQeUJVRl9GT1JNQVQpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUJVRl9ORCIsIFB5QlVGX05EKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlCVUZfU1RSSURFUyIsIFB5QlVGX1NUUklERVMpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUJVRl9JTkRJUkVDVCIsIFB5QlVGX0lORElSRUNUKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlCVUZfQ19DT05USUdVT1VTIiwgUHlCVUZfQ19DT05USUdVT1VTKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlCVUZfRl9DT05USUdVT1VTIiwgUHlCVUZfRl9DT05USUdVT1VTKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlCVUZfQU5ZX0NPTlRJR1VPVVMiLCBQeUJVRl9BTllfQ09OVElHVU9VUyk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlB5QlVGX0ZVTEwiLCBQeUJVRl9GVUxMKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlCVUZfRlVMTF9STyIsIFB5QlVGX0ZVTExfUk8pOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUJVRl9SRUNPUkRTIiwgUHlCVUZfUkVDT1JEUyk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlB5QlVGX1JFQ09SRFNfUk8iLCBQeUJVRl9SRUNPUkRTX1JPKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlCVUZfU1RSSURFRCIsIFB5QlVGX1NUUklERUQpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUJVRl9TVFJJREVEX1JPIiwgUHlCVUZfU1RSSURFRF9STyk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlB5QlVGX0NPTlRJRyIsIFB5QlVGX0NPTlRJRyk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlB5QlVGX0NPTlRJR19STyIsIFB5QlVGX0NPTlRJR19STyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfU0lNUExFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQeUJVRl9XUklUQUJMRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfRk9STUFUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQeUJVRl9ORCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfU1RSSURFUyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfSU5ESVJFQ1QpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFB5QlVGX0NfQ09OVElHVU9VUyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfRl9DT05USUdVT1VTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQeUJVRl9BTllfQ09OVElHVU9VUyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfRlVMTCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfRlVMTF9STyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfUkVDT1JEUyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfUkVDT1JEU19STyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfU1RSSURFRCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfU1RSSURFRF9STyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfQ09OVElHKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQeUJVRl9DT05USUdfUk8pOwogCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlB5QlVGX1JFQUQiLCBQeUJVRl9SRUFEKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlCVUZfV1JJVEUiLCBQeUJVRl9XUklURSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfUkVBRCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlCVUZfV1JJVEUpOwogCiAgICAgcmV0dXJuIG07CiB9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL190ZXN0Y2FwaW1vZHVsZS5jIGIvTW9kdWxlcy9fdGVzdGNhcGltb2R1bGUuYwppbmRleCAyZjQzODEzLi5iM2VkMDQ3IDEwMDY0NAotLS0gYS9Nb2R1bGVzL190ZXN0Y2FwaW1vZHVsZS5jCisrKyBiL01vZHVsZXMvX3Rlc3RjYXBpbW9kdWxlLmMKQEAgLTE0MTgsNiArMTQxOCwyMCBAQAogICAgIGVsc2UKICAgICAgICAgcmV0dXJuIHJhaXNlVGVzdEVycm9yKCJ0ZXN0X3dpZGVjaGFyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTFwiXFxVMDAxMTAwMDBcIiwgMSkgZGlkbid0IGZhaWwiKTsKKworICAgIHdpZGUgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgMSk7CisgICAgaWYgKHdpZGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgUHlVbmljb2RlX0FTX1VOSUNPREUod2lkZSlbMF0gPSBpbnZhbGlkWzBdOworICAgIGlmIChfUHlVbmljb2RlX1JlYWR5KHdpZGUpIDwgMCkgeworICAgICAgICBQeV9ERUNSRUYod2lkZSk7CisgICAgICAgIFB5RXJyX0NsZWFyKCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBQeV9ERUNSRUYod2lkZSk7CisgICAgICAgIHJldHVybiByYWlzZVRlc3RFcnJvcigidGVzdF93aWRlY2hhciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHlVbmljb2RlX1JlYWR5KCkgZGlkbid0IGZhaWwiKTsKKyAgICB9CiAjZW5kaWYKIAogICAgIFB5X1JFVFVSTl9OT05FOwpAQCAtMjQ1NCw2ICsyNDY4LDQ4IEBACiAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk5sIiwgX1B5TG9uZ19Gcm9tVGltZV90KHNlYyksIG5zZWMpOwogfQogCitzdGF0aWMgUHlPYmplY3QgKgorX3Rlc3RfaW5jcmVmKFB5T2JqZWN0ICpvYikKK3sKKyAgICBQeV9JTkNSRUYob2IpOworICAgIHJldHVybiBvYjsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK3Rlc3RfeGluY3JlZl9kb2VzbnRfbGVhayhQeU9iamVjdCAqb2IpCit7CisgICAgUHlPYmplY3QgKm9iaiA9IFB5TG9uZ19Gcm9tTG9uZygwKTsKKyAgICBQeV9YSU5DUkVGKF90ZXN0X2luY3JlZihvYmopKTsKKyAgICBQeV9ERUNSRUYob2JqKTsKKyAgICBQeV9ERUNSRUYob2JqKTsKKyAgICBQeV9ERUNSRUYob2JqKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK3Rlc3RfaW5jcmVmX2RvZXNudF9sZWFrKFB5T2JqZWN0ICpvYikKK3sKKyAgICBQeU9iamVjdCAqb2JqID0gUHlMb25nX0Zyb21Mb25nKDApOworICAgIFB5X0lOQ1JFRihfdGVzdF9pbmNyZWYob2JqKSk7CisgICAgUHlfREVDUkVGKG9iaik7CisgICAgUHlfREVDUkVGKG9iaik7CisgICAgUHlfREVDUkVGKG9iaik7CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCit0ZXN0X3hkZWNyZWZfZG9lc250X2xlYWsoUHlPYmplY3QgKm9iKQoreworICAgIFB5X1hERUNSRUYoUHlMb25nX0Zyb21Mb25nKDApKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK3Rlc3RfZGVjcmVmX2RvZXNudF9sZWFrKFB5T2JqZWN0ICpvYikKK3sKKyAgICBQeV9ERUNSRUYoUHlMb25nX0Zyb21Mb25nKDApKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KIAogc3RhdGljIFB5TWV0aG9kRGVmIFRlc3RNZXRob2RzW10gPSB7CiAgICAgeyJyYWlzZV9leGNlcHRpb24iLCAgICAgICAgIHJhaXNlX2V4Y2VwdGlvbiwgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCkBAIC0yNDY0LDYgKzI1MjAsMTAgQEAKICAgICB7InRlc3RfZGljdF9pdGVyYXRpb24iLCAgICAgKFB5Q0Z1bmN0aW9uKXRlc3RfZGljdF9pdGVyYXRpb24sTUVUSF9OT0FSR1N9LAogICAgIHsidGVzdF9sYXp5X2hhc2hfaW5oZXJpdGFuY2UiLCAgICAgIChQeUNGdW5jdGlvbil0ZXN0X2xhenlfaGFzaF9pbmhlcml0YW5jZSxNRVRIX05PQVJHU30sCiAgICAgeyJ0ZXN0X2xvbmdfYXBpIiwgICAgICAgICAgIChQeUNGdW5jdGlvbil0ZXN0X2xvbmdfYXBpLCAgICAgIE1FVEhfTk9BUkdTfSwKKyAgICB7InRlc3RfeGluY3JlZl9kb2VzbnRfbGVhayIsKFB5Q0Z1bmN0aW9uKXRlc3RfeGluY3JlZl9kb2VzbnRfbGVhaywgICAgICBNRVRIX05PQVJHU30sCisgICAgeyJ0ZXN0X2luY3JlZl9kb2VzbnRfbGVhayIsIChQeUNGdW5jdGlvbil0ZXN0X2luY3JlZl9kb2VzbnRfbGVhaywgICAgICBNRVRIX05PQVJHU30sCisgICAgeyJ0ZXN0X3hkZWNyZWZfZG9lc250X2xlYWsiLChQeUNGdW5jdGlvbil0ZXN0X3hkZWNyZWZfZG9lc250X2xlYWssICAgICAgTUVUSF9OT0FSR1N9LAorICAgIHsidGVzdF9kZWNyZWZfZG9lc250X2xlYWsiLCAoUHlDRnVuY3Rpb24pdGVzdF9kZWNyZWZfZG9lc250X2xlYWssICAgICAgTUVUSF9OT0FSR1N9LAogICAgIHsidGVzdF9sb25nX2FuZF9vdmVyZmxvdyIsIChQeUNGdW5jdGlvbil0ZXN0X2xvbmdfYW5kX292ZXJmbG93LAogICAgICBNRVRIX05PQVJHU30sCiAgICAgeyJ0ZXN0X2xvbmdfYXNfZG91YmxlIiwgICAgIChQeUNGdW5jdGlvbil0ZXN0X2xvbmdfYXNfZG91YmxlLE1FVEhfTk9BUkdTfSwKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3Rlc3RpbXBvcnRtdWx0aXBsZS5jIGIvTW9kdWxlcy9fdGVzdGltcG9ydG11bHRpcGxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWNhZWI2NgotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX3Rlc3RpbXBvcnRtdWx0aXBsZS5jCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDIGV4dGVuc2lvbnMgbW9kdWxlIHRvIHRlc3QgaW1wb3J0aW5nIG11bHRpcGxlIG1vZHVsZXMgZnJvbSBvbmUgY29tcGlsZWQKKyAqIGZpbGUgKGlzc3VlMTY0MjEpLiBUaGlzIGZpbGUgZGVmaW5lcyAzIG1vZHVsZXMgKF90ZXN0aW1wb3J0bW9kdWxlLAorICogZm9vLCBiYXIpLCBvbmx5IHRoZSBmaXJzdCBvbmUgaXMgY2FsbGVkIHRoZSBzYW1lIGFzIHRoZSBjb21waWxlZCBmaWxlLgorICovCisjaW5jbHVkZTxQeXRob24uaD4KKworc3RhdGljIHN0cnVjdCBQeU1vZHVsZURlZiBfdGVzdGltcG9ydG11bHRpcGxlID0geworICAgIFB5TW9kdWxlRGVmX0hFQURfSU5JVCwKKyAgICAiX3Rlc3RpbXBvcnRtdWx0aXBsZSIsCisgICAgIl90ZXN0aW1wb3J0bXVsdGlwbGUgZG9jIiwKKyAgICAtMSwKKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwKK307CisKK1B5TU9ESU5JVF9GVU5DIFB5SW5pdF9fdGVzdGltcG9ydG11bHRpcGxlKHZvaWQpCit7CisgICAgcmV0dXJuIFB5TW9kdWxlX0NyZWF0ZSgmX3Rlc3RpbXBvcnRtdWx0aXBsZSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgUHlNb2R1bGVEZWYgX2Zvb21vZHVsZSA9IHsKKyAgICBQeU1vZHVsZURlZl9IRUFEX0lOSVQsCisgICAgIl90ZXN0aW1wb3J0bXVsdGlwbGVfZm9vIiwKKyAgICAiX3Rlc3RpbXBvcnRtdWx0aXBsZV9mb28gZG9jIiwKKyAgICAtMSwKKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwKK307CisKK1B5TU9ESU5JVF9GVU5DIFB5SW5pdF9fdGVzdGltcG9ydG11bHRpcGxlX2Zvbyh2b2lkKQoreworICAgIHJldHVybiBQeU1vZHVsZV9DcmVhdGUoJl9mb29tb2R1bGUpOworfQorCitzdGF0aWMgc3RydWN0IFB5TW9kdWxlRGVmIF9iYXJtb2R1bGUgPSB7CisgICAgUHlNb2R1bGVEZWZfSEVBRF9JTklULAorICAgICJfdGVzdGltcG9ydG11bHRpcGxlX2JhciIsCisgICAgIl90ZXN0aW1wb3J0bXVsdGlwbGVfYmFyIGRvYyIsCisgICAgLTEsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMCit9OworCitQeU1PRElOSVRfRlVOQyBQeUluaXRfX3Rlc3RpbXBvcnRtdWx0aXBsZV9iYXIodm9pZCl7CisgICAgcmV0dXJuIFB5TW9kdWxlX0NyZWF0ZSgmX2Jhcm1vZHVsZSk7Cit9CisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3RocmVhZG1vZHVsZS5jIGIvTW9kdWxlcy9fdGhyZWFkbW9kdWxlLmMKaW5kZXggZDFkYzYxZC4uY2JiMjkwMSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fdGhyZWFkbW9kdWxlLmMKKysrIGIvTW9kdWxlcy9fdGhyZWFkbW9kdWxlLmMKQEAgLTc0MSw3ICs3NDEsNyBAQAogICAgIHdyID0gUHlXZWFrcmVmX05ld1JlZigoUHlPYmplY3QgKikgc2VsZiwgTlVMTCk7CiAgICAgaWYgKHdyID09IE5VTEwpCiAgICAgICAgIGdvdG8gZXJyOwotICAgIHNlbGYtPndyX2NhbGxiYWNrID0gUHlDRnVuY3Rpb25fTmV3KCZ3cl9jYWxsYmFja19kZWYsIHdyKTsKKyAgICBzZWxmLT53cl9jYWxsYmFjayA9IFB5Q0Z1bmN0aW9uX05ld0V4KCZ3cl9jYWxsYmFja19kZWYsIHdyLCBOVUxMKTsKICAgICBQeV9ERUNSRUYod3IpOwogICAgIGlmIChzZWxmLT53cl9jYWxsYmFjayA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycjsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3RraW50ZXIuYyBiL01vZHVsZXMvX3RraW50ZXIuYwppbmRleCBkMThjN2YwLi5lYjE0ODI3IDEwMDY0NAotLS0gYS9Nb2R1bGVzL190a2ludGVyLmMKKysrIGIvTW9kdWxlcy9fdGtpbnRlci5jCkBAIC0xMjUsNTIgKzEyNSw2MCBAQAogCiAvKiBUaGUgdGhyZWFkaW5nIHNpdHVhdGlvbiBpcyBjb21wbGljYXRlZC4gIFRjbCBpcyBub3QgdGhyZWFkLXNhZmUsIGV4Y2VwdAogICAgd2hlbiBjb25maWd1cmVkIHdpdGggLS1lbmFibGUtdGhyZWFkcy4KLSAgIFNvIHdlIG5lZWQgdG8gdXNlIGEgbG9jayBhcm91bmQgYWxsIHVzZXMgb2YgVGNsLiAgUHJldmlvdXNseSwgdGhlIFB5dGhvbgotICAgaW50ZXJwcmV0ZXIgbG9jayB3YXMgdXNlZCBmb3IgdGhpcy4gIEhvd2V2ZXIsIHRoaXMgY2F1c2VzIHByb2JsZW1zIHdoZW4KLSAgIG90aGVyIFB5dGhvbiB0aHJlYWRzIG5lZWQgdG8gcnVuIHdoaWxlIFRjbCBpcyBibG9ja2VkIHdhaXRpbmcgZm9yIGV2ZW50cy4KIAotICAgVG8gc29sdmUgdGhpcyBwcm9ibGVtLCBhIHNlcGFyYXRlIGxvY2sgZm9yIFRjbCBpcyBpbnRyb2R1Y2VkLiAgSG9sZGluZyBpdAotICAgaXMgaW5jb21wYXRpYmxlIHdpdGggaG9sZGluZyBQeXRob24ncyBpbnRlcnByZXRlciBsb2NrLiAgVGhlIGZvbGxvd2luZyBmb3VyCi0gICBtYWNyb3MgbWFuaXB1bGF0ZSBib3RoIGxvY2tzIHRvZ2V0aGVyLgorICAgU28gd2UgbmVlZCB0byB1c2UgYSBsb2NrIGFyb3VuZCBhbGwgdXNlcyBvZiBUY2wuICBQcmV2aW91c2x5LCB0aGUKKyAgIFB5dGhvbiBpbnRlcnByZXRlciBsb2NrIHdhcyB1c2VkIGZvciB0aGlzLiAgSG93ZXZlciwgdGhpcyBjYXVzZXMKKyAgIHByb2JsZW1zIHdoZW4gb3RoZXIgUHl0aG9uIHRocmVhZHMgbmVlZCB0byBydW4gd2hpbGUgVGNsIGlzIGJsb2NrZWQKKyAgIHdhaXRpbmcgZm9yIGV2ZW50cy4KIAotICAgRU5URVJfVENMIGFuZCBMRUFWRV9UQ0wgYXJlIGJyYWNrZXRzLCBqdXN0IGxpa2UgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUyBhbmQKLSAgIFB5X0VORF9BTExPV19USFJFQURTLiAgVGhleSBzaG91bGQgYmUgdXNlZCB3aGVuZXZlciBhIGNhbGwgaW50byBUY2wgaXMgbWFkZQotICAgdGhhdCBjb3VsZCBjYWxsIGFuIGV2ZW50IGhhbmRsZXIsIG9yIG90aGVyd2lzZSBhZmZlY3QgdGhlIHN0YXRlIG9mIGEgVGNsCi0gICBpbnRlcnByZXRlci4gIFRoZXNlIGFzc3VtZSB0aGF0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGhhcyB0aGUgUHl0aG9uCi0gICBpbnRlcnByZXRlciBsb2NrOyBpbnNpZGUgdGhlIGJyYWNrZXRzLCB0aGUgUHl0aG9uIGludGVycHJldGVyIGxvY2sgaGFzIGJlZW4KLSAgIHJlbGVhc2VkIGFuZCB0aGUgbG9jayBmb3IgVGNsIGhhcyBiZWVuIGFjcXVpcmVkLgorICAgVG8gc29sdmUgdGhpcyBwcm9ibGVtLCBhIHNlcGFyYXRlIGxvY2sgZm9yIFRjbCBpcyBpbnRyb2R1Y2VkLgorICAgSG9sZGluZyBpdCBpcyBpbmNvbXBhdGlibGUgd2l0aCBob2xkaW5nIFB5dGhvbidzIGludGVycHJldGVyIGxvY2suCisgICBUaGUgZm9sbG93aW5nIGZvdXIgbWFjcm9zIG1hbmlwdWxhdGUgYm90aCBsb2NrcyB0b2dldGhlci4KIAotICAgU29tZXRpbWVzLCBpdCBpcyBuZWNlc3NhcnkgdG8gaGF2ZSBib3RoIHRoZSBQeXRob24gbG9jayBhbmQgdGhlIFRjbCBsb2NrLgotICAgKEZvciBleGFtcGxlLCB3aGVuIHRyYW5zZmVycmluZyBkYXRhIGZyb20gdGhlIFRjbCBpbnRlcnByZXRlciByZXN1bHQgdG8gYQotICAgUHl0aG9uIHN0cmluZyBvYmplY3QuKSAgVGhpcyBjYW4gYmUgZG9uZSBieSB1c2luZyBkaWZmZXJlbnQgbWFjcm9zIHRvIGNsb3NlCi0gICB0aGUgRU5URVJfVENMIGJsb2NrOiBFTlRFUl9PVkVSTEFQIHJlYWNxdWlyZXMgdGhlIFB5dGhvbiBsb2NrIChhbmQgcmVzdG9yZXMKLSAgIHRoZSB0aHJlYWQgc3RhdGUpIGJ1dCBkb2Vzbid0IHJlbGVhc2UgdGhlIFRjbCBsb2NrOyBMRUFWRV9PVkVSTEFQX1RDTAotICAgcmVsZWFzZXMgdGhlIFRjbCBsb2NrLgorICAgRU5URVJfVENMIGFuZCBMRUFWRV9UQ0wgYXJlIGJyYWNrZXRzLCBqdXN0IGxpa2UKKyAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMgYW5kIFB5X0VORF9BTExPV19USFJFQURTLiAgVGhleSBzaG91bGQgYmUKKyAgIHVzZWQgd2hlbmV2ZXIgYSBjYWxsIGludG8gVGNsIGlzIG1hZGUgdGhhdCBjb3VsZCBjYWxsIGFuIGV2ZW50CisgICBoYW5kbGVyLCBvciBvdGhlcndpc2UgYWZmZWN0IHRoZSBzdGF0ZSBvZiBhIFRjbCBpbnRlcnByZXRlci4gIFRoZXNlCisgICBhc3N1bWUgdGhhdCB0aGUgc3Vycm91bmRpbmcgY29kZSBoYXMgdGhlIFB5dGhvbiBpbnRlcnByZXRlciBsb2NrOworICAgaW5zaWRlIHRoZSBicmFja2V0cywgdGhlIFB5dGhvbiBpbnRlcnByZXRlciBsb2NrIGhhcyBiZWVuIHJlbGVhc2VkCisgICBhbmQgdGhlIGxvY2sgZm9yIFRjbCBoYXMgYmVlbiBhY3F1aXJlZC4KKworICAgU29tZXRpbWVzLCBpdCBpcyBuZWNlc3NhcnkgdG8gaGF2ZSBib3RoIHRoZSBQeXRob24gbG9jayBhbmQgdGhlIFRjbAorICAgbG9jay4gIChGb3IgZXhhbXBsZSwgd2hlbiB0cmFuc2ZlcnJpbmcgZGF0YSBmcm9tIHRoZSBUY2wKKyAgIGludGVycHJldGVyIHJlc3VsdCB0byBhIFB5dGhvbiBzdHJpbmcgb2JqZWN0LikgIFRoaXMgY2FuIGJlIGRvbmUgYnkKKyAgIHVzaW5nIGRpZmZlcmVudCBtYWNyb3MgdG8gY2xvc2UgdGhlIEVOVEVSX1RDTCBibG9jazogRU5URVJfT1ZFUkxBUAorICAgcmVhY3F1aXJlcyB0aGUgUHl0aG9uIGxvY2sgKGFuZCByZXN0b3JlcyB0aGUgdGhyZWFkIHN0YXRlKSBidXQKKyAgIGRvZXNuJ3QgcmVsZWFzZSB0aGUgVGNsIGxvY2s7IExFQVZFX09WRVJMQVBfVENMIHJlbGVhc2VzIHRoZSBUY2wKKyAgIGxvY2suCiAKICAgIEJ5IGNvbnRyYXN0LCBFTlRFUl9QWVRIT04gYW5kIExFQVZFX1BZVEhPTiBhcmUgdXNlZCBpbiBUY2wgZXZlbnQKLSAgIGhhbmRsZXJzIHdoZW4gdGhlIGhhbmRsZXIgbmVlZHMgdG8gdXNlIFB5dGhvbi4gIFN1Y2ggZXZlbnQgaGFuZGxlcnMgYXJlCi0gICBlbnRlcmVkIHdoaWxlIHRoZSBsb2NrIGZvciBUY2wgaXMgaGVsZDsgdGhlIGV2ZW50IGhhbmRsZXIgcHJlc3VtYWJseSBuZWVkcwotICAgdG8gdXNlIFB5dGhvbi4gIEVOVEVSX1BZVEhPTiByZWxlYXNlcyB0aGUgbG9jayBmb3IgVGNsIGFuZCBhY3F1aXJlcwotICAgdGhlIFB5dGhvbiBpbnRlcnByZXRlciBsb2NrLCByZXN0b3JpbmcgdGhlIGFwcHJvcHJpYXRlIHRocmVhZCBzdGF0ZSwgYW5kCi0gICBMRUFWRV9QWVRIT04gcmVsZWFzZXMgdGhlIFB5dGhvbiBpbnRlcnByZXRlciBsb2NrIGFuZCByZS1hY3F1aXJlcyB0aGUgbG9jawotICAgZm9yIFRjbC4gIEl0IGlzIG9rYXkgZm9yIEVOVEVSX1RDTC9MRUFWRV9UQ0wgcGFpcnMgdG8gYmUgY29udGFpbmVkIGluc2lkZQotICAgdGhlIGNvZGUgYmV0d2VlbiBFTlRFUl9QWVRIT04gYW5kIExFQVZFX1BZVEhPTi4KKyAgIGhhbmRsZXJzIHdoZW4gdGhlIGhhbmRsZXIgbmVlZHMgdG8gdXNlIFB5dGhvbi4gIFN1Y2ggZXZlbnQgaGFuZGxlcnMKKyAgIGFyZSBlbnRlcmVkIHdoaWxlIHRoZSBsb2NrIGZvciBUY2wgaXMgaGVsZDsgdGhlIGV2ZW50IGhhbmRsZXIKKyAgIHByZXN1bWFibHkgbmVlZHMgdG8gdXNlIFB5dGhvbi4gIEVOVEVSX1BZVEhPTiByZWxlYXNlcyB0aGUgbG9jayBmb3IKKyAgIFRjbCBhbmQgYWNxdWlyZXMgdGhlIFB5dGhvbiBpbnRlcnByZXRlciBsb2NrLCByZXN0b3JpbmcgdGhlCisgICBhcHByb3ByaWF0ZSB0aHJlYWQgc3RhdGUsIGFuZCBMRUFWRV9QWVRIT04gcmVsZWFzZXMgdGhlIFB5dGhvbgorICAgaW50ZXJwcmV0ZXIgbG9jayBhbmQgcmUtYWNxdWlyZXMgdGhlIGxvY2sgZm9yIFRjbC4gIEl0IGlzIG9rYXkgZm9yCisgICBFTlRFUl9UQ0wvTEVBVkVfVENMIHBhaXJzIHRvIGJlIGNvbnRhaW5lZCBpbnNpZGUgdGhlIGNvZGUgYmV0d2VlbgorICAgRU5URVJfUFlUSE9OIGFuZCBMRUFWRV9QWVRIT04uCiAKLSAgIFRoZXNlIGxvY2tzIGV4cGFuZCB0byBzZXZlcmFsIHN0YXRlbWVudHMgYW5kIGJyYWNrZXRzOyB0aGV5IHNob3VsZCBub3QgYmUKLSAgIHVzZWQgaW4gYnJhbmNoZXMgb2YgaWYgc3RhdGVtZW50cyBhbmQgdGhlIGxpa2UuCisgICBUaGVzZSBsb2NrcyBleHBhbmQgdG8gc2V2ZXJhbCBzdGF0ZW1lbnRzIGFuZCBicmFja2V0czsgdGhleSBzaG91bGQKKyAgIG5vdCBiZSB1c2VkIGluIGJyYW5jaGVzIG9mIGlmIHN0YXRlbWVudHMgYW5kIHRoZSBsaWtlLgogCi0gICBJZiBUY2wgaXMgdGhyZWFkZWQsIHRoaXMgYXBwcm9hY2ggd29uJ3Qgd29yayBhbnltb3JlLiBUaGUgVGNsIGludGVycHJldGVyIGlzCi0gICBvbmx5IHZhbGlkIGluIHRoZSB0aHJlYWQgdGhhdCBjcmVhdGVkIGl0LCBhbmQgYWxsIFRrIGFjdGl2aXR5IG11c3QgaGFwcGVuIGluIHRoaXMKLSAgIHRocmVhZCwgYWxzby4gVGhhdCBtZWFucyB0aGF0IHRoZSBtYWlubG9vcCBtdXN0IGJlIGludm9rZWQgaW4gdGhlIHRocmVhZCB0aGF0Ci0gICBjcmVhdGVkIHRoZSBpbnRlcnByZXRlci4gSW52b2tpbmcgY29tbWFuZHMgZnJvbSBvdGhlciB0aHJlYWRzIGlzIHBvc3NpYmxlOwotICAgX3RraW50ZXIgd2lsbCBxdWV1ZSBhbiBldmVudCBmb3IgdGhlIGludGVycHJldGVyIHRocmVhZCwgd2hpY2ggd2lsbCB0aGVuCi0gICBleGVjdXRlIHRoZSBjb21tYW5kIGFuZCBwYXNzIGJhY2sgdGhlIHJlc3VsdC4gSWYgdGhlIG1haW4gdGhyZWFkIGlzIG5vdCBpbiB0aGUKLSAgIG1haW5sb29wLCBhbmQgaW52b2tpbmcgY29tbWFuZHMgY2F1c2VzIGFuIGV4Y2VwdGlvbjsgaWYgdGhlIG1haW4gbG9vcCBpcyBydW5uaW5nCi0gICBidXQgbm90IHByb2Nlc3NpbmcgZXZlbnRzLCB0aGUgY29tbWFuZCBpbnZvY2F0aW9uIHdpbGwgYmxvY2suCisgICBJZiBUY2wgaXMgdGhyZWFkZWQsIHRoaXMgYXBwcm9hY2ggd29uJ3Qgd29yayBhbnltb3JlLiBUaGUgVGNsCisgICBpbnRlcnByZXRlciBpcyBvbmx5IHZhbGlkIGluIHRoZSB0aHJlYWQgdGhhdCBjcmVhdGVkIGl0LCBhbmQgYWxsIFRrCisgICBhY3Rpdml0eSBtdXN0IGhhcHBlbiBpbiB0aGlzIHRocmVhZCwgYWxzby4gVGhhdCBtZWFucyB0aGF0IHRoZQorICAgbWFpbmxvb3AgbXVzdCBiZSBpbnZva2VkIGluIHRoZSB0aHJlYWQgdGhhdCBjcmVhdGVkIHRoZQorICAgaW50ZXJwcmV0ZXIuIEludm9raW5nIGNvbW1hbmRzIGZyb20gb3RoZXIgdGhyZWFkcyBpcyBwb3NzaWJsZTsKKyAgIF90a2ludGVyIHdpbGwgcXVldWUgYW4gZXZlbnQgZm9yIHRoZSBpbnRlcnByZXRlciB0aHJlYWQsIHdoaWNoIHdpbGwKKyAgIHRoZW4gZXhlY3V0ZSB0aGUgY29tbWFuZCBhbmQgcGFzcyBiYWNrIHRoZSByZXN1bHQuIElmIHRoZSBtYWluCisgICB0aHJlYWQgaXMgbm90IGluIHRoZSBtYWlubG9vcCwgYW5kIGludm9raW5nIGNvbW1hbmRzIGNhdXNlcyBhbgorICAgZXhjZXB0aW9uOyBpZiB0aGUgbWFpbiBsb29wIGlzIHJ1bm5pbmcgYnV0IG5vdCBwcm9jZXNzaW5nIGV2ZW50cywKKyAgIHRoZSBjb21tYW5kIGludm9jYXRpb24gd2lsbCBibG9jay4KIAotICAgSW4gYWRkaXRpb24sIGZvciBhIHRocmVhZGVkIFRjbCwgYSBzaW5nbGUgZ2xvYmFsIHRjbF90c3RhdGUgd29uJ3QgYmUgc3VmZmljaWVudAotICAgYW55bW9yZSwgc2luY2UgbXVsdGlwbGUgVGNsIGludGVycHJldGVycyBtYXkgc2ltdWx0YW5lb3VzbHkgZGlzcGF0Y2ggaW4gZGlmZmVyZW50Ci0gICB0aHJlYWRzLiBTbyB3ZSB1c2UgdGhlIFRjbCBUTFMgQVBJLgorICAgSW4gYWRkaXRpb24sIGZvciBhIHRocmVhZGVkIFRjbCwgYSBzaW5nbGUgZ2xvYmFsIHRjbF90c3RhdGUgd29uJ3QKKyAgIGJlIHN1ZmZpY2llbnQgYW55bW9yZSwgc2luY2UgbXVsdGlwbGUgVGNsIGludGVycHJldGVycyBtYXkKKyAgIHNpbXVsdGFuZW91c2x5IGRpc3BhdGNoIGluIGRpZmZlcmVudCB0aHJlYWRzLiBTbyB3ZSB1c2UgdGhlIFRjbCBUTFMKKyAgIEFQSS4KIAogKi8KIApAQCAtMTc5LDcgKzE4Nyw4IEBACiAjaWZkZWYgVENMX1RIUkVBRFMKIHN0YXRpYyBUY2xfVGhyZWFkRGF0YUtleSBzdGF0ZV9rZXk7CiB0eXBlZGVmIFB5VGhyZWFkU3RhdGUgKlRocmVhZFNwZWNpZmljRGF0YTsKLSNkZWZpbmUgdGNsX3RzdGF0ZSAoKihQeVRocmVhZFN0YXRlKiopVGNsX0dldFRocmVhZERhdGEoJnN0YXRlX2tleSwgc2l6ZW9mKFB5VGhyZWFkU3RhdGUqKSkpCisjZGVmaW5lIHRjbF90c3RhdGUgXAorICAgICgqKFB5VGhyZWFkU3RhdGUqKilUY2xfR2V0VGhyZWFkRGF0YSgmc3RhdGVfa2V5LCBzaXplb2YoUHlUaHJlYWRTdGF0ZSopKSkKICNlbHNlCiBzdGF0aWMgUHlUaHJlYWRTdGF0ZSAqdGNsX3RzdGF0ZSA9IE5VTEw7CiAjZW5kaWYKQEAgLTE4OSw3ICsxOTgsOCBAQAogICAgICAgICBpZih0Y2xfbG9jaylQeVRocmVhZF9hY3F1aXJlX2xvY2sodGNsX2xvY2ssIDEpOyB0Y2xfdHN0YXRlID0gdHN0YXRlOwogCiAjZGVmaW5lIExFQVZFX1RDTCBcCi0gICAgdGNsX3RzdGF0ZSA9IE5VTEw7IGlmKHRjbF9sb2NrKVB5VGhyZWFkX3JlbGVhc2VfbG9jayh0Y2xfbG9jayk7IFB5X0VORF9BTExPV19USFJFQURTfQorICAgIHRjbF90c3RhdGUgPSBOVUxMOyBcCisgICAgaWYodGNsX2xvY2spUHlUaHJlYWRfcmVsZWFzZV9sb2NrKHRjbF9sb2NrKTsgUHlfRU5EX0FMTE9XX1RIUkVBRFN9CiAKICNkZWZpbmUgRU5URVJfT1ZFUkxBUCBcCiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKQEAgLTE5OSw3ICsyMDksOCBAQAogCiAjZGVmaW5lIEVOVEVSX1BZVEhPTiBcCiAgICAgeyBQeVRocmVhZFN0YXRlICp0c3RhdGUgPSB0Y2xfdHN0YXRlOyB0Y2xfdHN0YXRlID0gTlVMTDsgXAotICAgICAgICBpZih0Y2xfbG9jaylQeVRocmVhZF9yZWxlYXNlX2xvY2sodGNsX2xvY2spOyBQeUV2YWxfUmVzdG9yZVRocmVhZCgodHN0YXRlKSk7IH0KKyAgICAgICAgaWYodGNsX2xvY2spIFwKKyAgICAgICAgICBQeVRocmVhZF9yZWxlYXNlX2xvY2sodGNsX2xvY2spOyBQeUV2YWxfUmVzdG9yZVRocmVhZCgodHN0YXRlKSk7IH0KIAogI2RlZmluZSBMRUFWRV9QWVRIT04gXAogICAgIHsgUHlUaHJlYWRTdGF0ZSAqdHN0YXRlID0gUHlFdmFsX1NhdmVUaHJlYWQoKTsgXApAQCAtMjA4LDcgKzIxOSw4IEBACiAjZGVmaW5lIENIRUNLX1RDTF9BUFBBUlRNRU5UIFwKICAgICBpZiAoKChUa2FwcE9iamVjdCAqKXNlbGYpLT50aHJlYWRlZCAmJiBcCiAgICAgICAgICgoVGthcHBPYmplY3QgKilzZWxmKS0+dGhyZWFkX2lkICE9IFRjbF9HZXRDdXJyZW50VGhyZWFkKCkpIHsgXAotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLCAiQ2FsbGluZyBUY2wgZnJvbSBkaWZmZXJlbnQgYXBwYXJ0bWVudCIpOyBcCisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICJDYWxsaW5nIFRjbCBmcm9tIGRpZmZlcmVudCBhcHBhcnRtZW50Iik7IFwKICAgICAgICAgcmV0dXJuIDA7IFwKICAgICB9CiAKQEAgLTIzMCw3ICsyNDIsNyBAQAogCiAvKioqKiBUa2FwcCBPYmplY3QgRGVjbGFyYXRpb24gKioqKi8KIAotc3RhdGljIFB5VHlwZU9iamVjdCBUa2FwcF9UeXBlOworc3RhdGljIFB5T2JqZWN0ICpUa2FwcF9UeXBlOwogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgUHlPYmplY3RfSEVBRApAQCAtMjUwLDcgKzI2Miw2IEBACiAgICAgVGNsX09ialR5cGUgKlN0cmluZ1R5cGU7CiB9IFRrYXBwT2JqZWN0OwogCi0jZGVmaW5lIFRrYXBwX0NoZWNrKHYpIChQeV9UWVBFKHYpID09ICZUa2FwcF9UeXBlKQogI2RlZmluZSBUa2FwcF9JbnRlcnAodikgKCgoVGthcHBPYmplY3QgKikgKHYpKS0+aW50ZXJwKQogI2RlZmluZSBUa2FwcF9SZXN1bHQodikgVGNsX0dldFN0cmluZ1Jlc3VsdChUa2FwcF9JbnRlcnAodikpCiAKQEAgLTMyMywxMTUgKzMzNCw5IEBACiAjZW5kaWYgLyogV0lUSF9USFJFQUQgKi8KIAogCi1zdGF0aWMgY2hhciAqCi1Bc1N0cmluZyhQeU9iamVjdCAqdmFsdWUsIFB5T2JqZWN0ICp0bXApCi17Ci0gICAgaWYgKFB5Qnl0ZXNfQ2hlY2sodmFsdWUpKQotICAgICAgICByZXR1cm4gUHlCeXRlc19Bc1N0cmluZyh2YWx1ZSk7Ci0gICAgZWxzZSBpZiAoUHlVbmljb2RlX0NoZWNrKHZhbHVlKSkgewotICAgICAgICBQeU9iamVjdCAqdiA9IFB5VW5pY29kZV9Bc1VURjhTdHJpbmcodmFsdWUpOwotICAgICAgICBpZiAodiA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIGlmIChQeUxpc3RfQXBwZW5kKHRtcCwgdikgIT0gMCkgewotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICByZXR1cm4gUHlCeXRlc19Bc1N0cmluZyh2KTsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIFB5T2JqZWN0ICp2ID0gUHlPYmplY3RfU3RyKHZhbHVlKTsKLSAgICAgICAgaWYgKHYgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBpZiAoUHlMaXN0X0FwcGVuZCh0bXAsIHYpICE9IDApIHsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgcmV0dXJuIFB5Qnl0ZXNfQXNTdHJpbmcodik7Ci0gICAgfQotfQotCi0KIAogI2RlZmluZSBBUkdTWiA2NAogCi1zdGF0aWMgY2hhciAqCi1NZXJnZShQeU9iamVjdCAqYXJncykKLXsKLSAgICBQeU9iamVjdCAqdG1wID0gTlVMTDsKLSAgICBjaGFyICphcmd2U3RvcmVbQVJHU1pdOwotICAgIGNoYXIgKiphcmd2ID0gTlVMTDsKLSAgICBpbnQgZnZTdG9yZVtBUkdTWl07Ci0gICAgaW50ICpmdiA9IE5VTEw7Ci0gICAgaW50IGFyZ2MgPSAwLCBmdmMgPSAwLCBpOwotICAgIGNoYXIgKnJlcyA9IE5VTEw7Ci0KLSAgICBpZiAoISh0bXAgPSBQeUxpc3RfTmV3KDApKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBhcmd2ID0gYXJndlN0b3JlOwotICAgIGZ2ID0gZnZTdG9yZTsKLQotICAgIGlmIChhcmdzID09IE5VTEwpCi0gICAgICAgIGFyZ2MgPSAwOwotCi0gICAgZWxzZSBpZiAoIVB5VHVwbGVfQ2hlY2soYXJncykpIHsKLSAgICAgICAgYXJnYyA9IDE7Ci0gICAgICAgIGZ2WzBdID0gMDsKLSAgICAgICAgaWYgKCEoYXJndlswXSA9IEFzU3RyaW5nKGFyZ3MsIHRtcCkpKQotICAgICAgICAgICAgZ290byBmaW5hbGx5OwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgYXJnYyA9IFB5VHVwbGVfU2l6ZShhcmdzKTsKLQotICAgICAgICBpZiAoYXJnYyA+IEFSR1NaKSB7Ci0gICAgICAgICAgICBhcmd2ID0gKGNoYXIgKiopY2thbGxvYyhhcmdjICogc2l6ZW9mKGNoYXIgKikpOwotICAgICAgICAgICAgZnYgPSAoaW50ICopY2thbGxvYyhhcmdjICogc2l6ZW9mKGludCkpOwotICAgICAgICAgICAgaWYgKGFyZ3YgPT0gTlVMTCB8fCBmdiA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKLSAgICAgICAgICAgICAgICBnb3RvIGZpbmFsbHk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgaSsrKSB7Ci0gICAgICAgICAgICBQeU9iamVjdCAqdiA9IFB5VHVwbGVfR2V0SXRlbShhcmdzLCBpKTsKLSAgICAgICAgICAgIGlmIChQeVR1cGxlX0NoZWNrKHYpKSB7Ci0gICAgICAgICAgICAgICAgZnZbaV0gPSAxOwotICAgICAgICAgICAgICAgIGlmICghKGFyZ3ZbaV0gPSBNZXJnZSh2KSkpCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gZmluYWxseTsKLSAgICAgICAgICAgICAgICBmdmMrKzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKHYgPT0gUHlfTm9uZSkgewotICAgICAgICAgICAgICAgIGFyZ2MgPSBpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgZnZbaV0gPSAwOwotICAgICAgICAgICAgICAgIGlmICghKGFyZ3ZbaV0gPSBBc1N0cmluZyh2LCB0bXApKSkKLSAgICAgICAgICAgICAgICAgICAgZ290byBmaW5hbGx5OwotICAgICAgICAgICAgICAgIGZ2YysrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIHJlcyA9IFRjbF9NZXJnZShhcmdjLCBhcmd2KTsKLSAgICBpZiAocmVzID09IE5VTEwpCi0gICAgICAgIFB5RXJyX1NldFN0cmluZyhUa2ludGVyX1RjbEVycm9yLCAibWVyZ2UgZmFpbGVkIik7Ci0KLSAgZmluYWxseToKLSAgICBmb3IgKGkgPSAwOyBpIDwgZnZjOyBpKyspCi0gICAgICAgIGlmIChmdltpXSkgewotICAgICAgICAgICAgY2tmcmVlKGFyZ3ZbaV0pOwotICAgICAgICB9Ci0gICAgaWYgKGFyZ3YgIT0gYXJndlN0b3JlKQotICAgICAgICBja2ZyZWUoRlJFRUNBU1QgYXJndik7Ci0gICAgaWYgKGZ2ICE9IGZ2U3RvcmUpCi0gICAgICAgIGNrZnJlZShGUkVFQ0FTVCBmdik7Ci0KLSAgICBQeV9ERUNSRUYodG1wKTsKLSAgICByZXR1cm4gcmVzOwotfQotCiAKIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTQ0Miw4ICszNDcsNyBAQAogICAgIFB5T2JqZWN0ICp2OwogCiAgICAgaWYgKGxpc3QgPT0gTlVMTCkgewotICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgICAgIHJldHVybiBQeV9Ob25lOworICAgICAgICBQeV9SRVRVUk5fTk9ORTsKICAgICB9CiAKICAgICBpZiAoVGNsX1NwbGl0TGlzdCgoVGNsX0ludGVycCAqKU5VTEwsIGxpc3QsICZhcmdjLCAmYXJndikgIT0gVENMX09LKSB7CkBAIC00NzUsOSArMzc5LDkgQEAKICAgICByZXR1cm4gdjsKIH0KIAotLyogSW4gc29tZSBjYXNlcywgVGNsIHdpbGwgc3RpbGwgcmV0dXJuIHN0cmluZ3MgdGhhdCBhcmUgc3VwcG9zZWQgdG8gYmUKLSAgIGxpc3RzLiBTcGxpdE9iaiB3YWxrcyB0aHJvdWdoIGEgbmVzdGVkIHR1cGxlLCBmaW5kaW5nIHN0cmluZyBvYmplY3RzIHRoYXQKLSAgIG5lZWQgdG8gYmUgc3BsaXQuICovCisvKiBJbiBzb21lIGNhc2VzLCBUY2wgd2lsbCBzdGlsbCByZXR1cm4gc3RyaW5ncyB0aGF0IGFyZSBzdXBwb3NlZCB0bworICAgYmUgbGlzdHMuIFNwbGl0T2JqIHdhbGtzIHRocm91Z2ggYSBuZXN0ZWQgdHVwbGUsIGZpbmRpbmcgc3RyaW5nCisgICBvYmplY3RzIHRoYXQgbmVlZCB0byBiZSBzcGxpdC4gKi8KIAogc3RhdGljIFB5T2JqZWN0ICoKIFNwbGl0T2JqKFB5T2JqZWN0ICphcmcpCkBAIC01OTQsNyArNDk4LDcgQEAKICAgICBUa2FwcE9iamVjdCAqdjsKICAgICBjaGFyICphcmd2MDsKIAotICAgIHYgPSBQeU9iamVjdF9OZXcoVGthcHBPYmplY3QsICZUa2FwcF9UeXBlKTsKKyAgICB2ID0gUHlPYmplY3RfTmV3KFRrYXBwT2JqZWN0LCAoUHlUeXBlT2JqZWN0ICopIFRrYXBwX1R5cGUpOwogICAgIGlmICh2ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwogCkBAIC02MDcsNyArNTExLDggQEAKIAogI2lmbmRlZiBUQ0xfVEhSRUFEUwogICAgIGlmICh2LT50aHJlYWRlZCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLCAiVGNsIGlzIHRocmVhZGVkIGJ1dCBfdGtpbnRlciBpcyBub3QiKTsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJUY2wgaXMgdGhyZWFkZWQgYnV0IF90a2ludGVyIGlzIG5vdCIpOwogICAgICAgICBQeV9ERUNSRUYodik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTc0NCwxNCArNjQ5LDE0IEBACiAgICAgUHlPYmplY3QgKnN0cmluZzsgLyogVGhpcyBjYW5ub3QgY2F1c2UgY3ljbGVzLiAqLwogfSBQeVRjbE9iamVjdDsKIAotc3RhdGljIFB5VHlwZU9iamVjdCBQeVRjbE9iamVjdF9UeXBlOwotI2RlZmluZSBQeVRjbE9iamVjdF9DaGVjayh2KSAgICAoKHYpLT5vYl90eXBlID09ICZQeVRjbE9iamVjdF9UeXBlKQorc3RhdGljIFB5T2JqZWN0ICpQeVRjbE9iamVjdF9UeXBlOworI2RlZmluZSBQeVRjbE9iamVjdF9DaGVjayh2KSAoKHYpLT5vYl90eXBlID09IChQeVR5cGVPYmplY3QgKikgUHlUY2xPYmplY3RfVHlwZSkKIAogc3RhdGljIFB5T2JqZWN0ICoKIG5ld1B5VGNsT2JqZWN0KFRjbF9PYmogKmFyZykKIHsKICAgICBQeVRjbE9iamVjdCAqc2VsZjsKLSAgICBzZWxmID0gUHlPYmplY3RfTmV3KFB5VGNsT2JqZWN0LCAmUHlUY2xPYmplY3RfVHlwZSk7CisgICAgc2VsZiA9IFB5T2JqZWN0X05ldyhQeVRjbE9iamVjdCwgKFB5VHlwZU9iamVjdCAqKSBQeVRjbE9iamVjdF9UeXBlKTsKICAgICBpZiAoc2VsZiA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBUY2xfSW5jclJlZkNvdW50KGFyZyk7CkBAIC04ODUsNTAgKzc5MCwyNSBAQAogICAgIHswfSwKIH07CiAKLXN0YXRpYyBQeVR5cGVPYmplY3QgUHlUY2xPYmplY3RfVHlwZSA9IHsKLSAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoTlVMTCwgMCkKLSAgICAiX3RraW50ZXIuVGNsX09iaiIsICAgICAgICAgICAgICAgICAvKnRwX25hbWUqLwotICAgIHNpemVvZihQeVRjbE9iamVjdCksICAgICAgICAgICAgICAgIC8qdHBfYmFzaWNzaXplKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2l0ZW1zaXplKi8KLSAgICAvKiBtZXRob2RzICovCi0gICAgKGRlc3RydWN0b3IpUHlUY2xPYmplY3RfZGVhbGxvYywvKnRwX2RlYWxsb2MqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfcHJpbnQqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZ2V0YXR0ciovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9zZXRhdHRyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3Jlc2VydmVkKi8KLSAgICAocmVwcmZ1bmMpUHlUY2xPYmplY3RfcmVwciwgICAgICAgICAvKnRwX3JlcHIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfbnVtYmVyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX3NlcXVlbmNlKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX21hcHBpbmcqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaGFzaCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9jYWxsKi8KLSAgICAocmVwcmZ1bmMpUHlUY2xPYmplY3Rfc3RyLCAgICAgICAgICAvKnRwX3N0ciovCi0gICAgUHlPYmplY3RfR2VuZXJpY0dldEF0dHIsICAgICAgICAgICAgLyp0cF9nZXRhdHRybyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9zZXRhdHRybyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9hc19idWZmZXIqLwotICAgIFB5X1RQRkxBR1NfREVGQVVMVCwgICAgICAgICAgICAgICAgIC8qdHBfZmxhZ3MqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZG9jKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3RyYXZlcnNlKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2NsZWFyKi8KLSAgICBQeVRjbE9iamVjdF9yaWNoY29tcGFyZSwgICAgICAgICAgICAvKnRwX3JpY2hjb21wYXJlKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3dlYWtsaXN0b2Zmc2V0Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2l0ZXIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaXRlcm5leHQqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfbWV0aG9kcyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9tZW1iZXJzKi8KLSAgICBQeVRjbE9iamVjdF9nZXRzZXRsaXN0LCAgICAgICAgICAgICAvKnRwX2dldHNldCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9iYXNlKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2RpY3QqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZGVzY3JfZ2V0Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2Rlc2NyX3NldCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9kaWN0b2Zmc2V0Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2luaXQqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYWxsb2MqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfbmV3Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2ZyZWUqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaXNfZ2MqLworc3RhdGljIFB5VHlwZV9TbG90IFB5VGNsT2JqZWN0X1R5cGVfc2xvdHNbXSA9IHsKKyAgICB7UHlfdHBfZGVhbGxvYywgKGRlc3RydWN0b3IpUHlUY2xPYmplY3RfZGVhbGxvY30sCisgICAge1B5X3RwX3JlcHIsIChyZXByZnVuYylQeVRjbE9iamVjdF9yZXByfSwKKyAgICB7UHlfdHBfc3RyLCAocmVwcmZ1bmMpUHlUY2xPYmplY3Rfc3RyfSwKKyAgICB7UHlfdHBfZ2V0YXR0cm8sIFB5T2JqZWN0X0dlbmVyaWNHZXRBdHRyfSwKKyAgICB7UHlfdHBfcmljaGNvbXBhcmUsIFB5VGNsT2JqZWN0X3JpY2hjb21wYXJlfSwKKyAgICB7UHlfdHBfZ2V0c2V0LCBQeVRjbE9iamVjdF9nZXRzZXRsaXN0fSwKKyAgICB7MCwgMH0KIH07CiAKK3N0YXRpYyBQeVR5cGVfU3BlYyBQeVRjbE9iamVjdF9UeXBlX3NwZWMgPSB7CisgICAgIl90a2ludGVyLlRjbF9PYmoiLAorICAgIHNpemVvZihQeVRjbE9iamVjdCksCisgICAgMCwKKyAgICBQeV9UUEZMQUdTX0RFRkFVTFQsCisgICAgUHlUY2xPYmplY3RfVHlwZV9zbG90cywKK307CisKKwogc3RhdGljIFRjbF9PYmoqCiBBc09iaihQeU9iamVjdCAqdmFsdWUpCiB7CkBAIC0xMzMyLDQyICsxMjEyLDYgQEAKIAogCiBzdGF0aWMgUHlPYmplY3QgKgotVGthcHBfR2xvYmFsQ2FsbChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgLyogQ291bGQgZG8gdGhlIHNhbWUgaGVyZSBhcyBmb3IgVGthcHBfQ2FsbCgpLCBidXQgdGhpcyBpcyBub3QgdXNlZAotICAgICAgIG11Y2gsIHNvIEkgY2FuJ3QgYmUgYm90aGVyZWQuICBVbmZvcnR1bmF0ZWx5IFRjbCBkb2Vzbid0IGV4cG9ydCBhCi0gICAgICAgd2F5IGZvciB0aGUgdXNlciB0byBkbyB3aGF0IGFsbCBpdHMgR2xvYmFsKiB2YXJpYW50cyBkbyAoc2F2ZSBhbmQKLSAgICAgICByZXNldCB0aGUgc2NvcGUgcG9pbnRlciwgY2FsbCB0aGUgbG9jYWwgdmVyc2lvbiwgcmVzdG9yZSB0aGUgc2F2ZWQKLSAgICAgICBzY29wZSBwb2ludGVyKS4gKi8KLQotICAgIGNoYXIgKmNtZDsKLSAgICBQeU9iamVjdCAqcmVzID0gTlVMTDsKLQotICAgIGlmIChQeUVycl9XYXJuRXgoUHlFeGNfRGVwcmVjYXRpb25XYXJuaW5nLAotICAgICAgICAgICAgICAgICAgICAgImdsb2JhbGNhbGwgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDMuNCIsCi0gICAgICAgICAgICAgICAgICAgICAxKSA8IDApCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgQ0hFQ0tfVENMX0FQUEFSVE1FTlQ7Ci0KLSAgICBjbWQgID0gTWVyZ2UoYXJncyk7Ci0gICAgaWYgKGNtZCkgewotICAgICAgICBpbnQgZXJyOwotICAgICAgICBFTlRFUl9UQ0wKLSAgICAgICAgZXJyID0gVGNsX0dsb2JhbEV2YWwoVGthcHBfSW50ZXJwKHNlbGYpLCBjbWQpOwotICAgICAgICBFTlRFUl9PVkVSTEFQCi0gICAgICAgIGlmIChlcnIgPT0gVENMX0VSUk9SKQotICAgICAgICAgICAgcmVzID0gVGtpbnRlcl9FcnJvcihzZWxmKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoVGthcHBfUmVzdWx0KHNlbGYpKTsKLSAgICAgICAgTEVBVkVfT1ZFUkxBUF9UQ0wKLSAgICAgICAgY2tmcmVlKGNtZCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJlczsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKIFRrYXBwX0V2YWwoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewogICAgIGNoYXIgKnNjcmlwdDsKQEAgLTEzOTEsMzQgKzEyMzUsNiBAQAogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotVGthcHBfR2xvYmFsRXZhbChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgY2hhciAqc2NyaXB0OwotICAgIFB5T2JqZWN0ICpyZXMgPSBOVUxMOwotICAgIGludCBlcnI7Ci0KLSAgICBpZiAoUHlFcnJfV2FybkV4KFB5RXhjX0RlcHJlY2F0aW9uV2FybmluZywKLSAgICAgICAgICAgICAgICAgICAgICJnbG9iYWxldmFsIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiAzLjQiLAotICAgICAgICAgICAgICAgICAgICAgMSkgPCAwKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiczpnbG9iYWxldmFsIiwgJnNjcmlwdCkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgQ0hFQ0tfVENMX0FQUEFSVE1FTlQ7Ci0KLSAgICBFTlRFUl9UQ0wKLSAgICBlcnIgPSBUY2xfR2xvYmFsRXZhbChUa2FwcF9JbnRlcnAoc2VsZiksIHNjcmlwdCk7Ci0gICAgRU5URVJfT1ZFUkxBUAotICAgIGlmIChlcnIgPT0gVENMX0VSUk9SKQotICAgICAgICByZXMgPSBUa2ludGVyX0Vycm9yKHNlbGYpOwotICAgIGVsc2UKLSAgICAgICAgcmVzID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoVGthcHBfUmVzdWx0KHNlbGYpKTsKLSAgICBMRUFWRV9PVkVSTEFQX1RDTAotICAgIHJldHVybiByZXM7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCiBUa2FwcF9FdmFsRmlsZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgY2hhciAqZmlsZU5hbWU7CkBAIC0xNDc4LDggKzEyOTQsNyBAQAogICAgIFRjbF9BZGRFcnJvckluZm8oVGthcHBfSW50ZXJwKHNlbGYpLCBtc2cpOwogICAgIExFQVZFX1RDTAogCi0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJldHVybiBQeV9Ob25lOworICAgIFB5X1JFVFVSTl9OT05FOwogfQogCiAKQEAgLTE2NzcsNyArMTQ5Miw4IEBACiAgICAgdHJlcyA9IFRjbF9HZXRWYXIyRXgoVGthcHBfSW50ZXJwKHNlbGYpLCBuYW1lMSwgbmFtZTIsIGZsYWdzKTsKICAgICBFTlRFUl9PVkVSTEFQCiAgICAgaWYgKHRyZXMgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoVGtpbnRlcl9UY2xFcnJvciwgVGNsX0dldFN0cmluZ1Jlc3VsdChUa2FwcF9JbnRlcnAoc2VsZikpKTsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFRraW50ZXJfVGNsRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICBUY2xfR2V0U3RyaW5nUmVzdWx0KFRrYXBwX0ludGVycChzZWxmKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICgoKFRrYXBwT2JqZWN0KilzZWxmKS0+d2FudG9iamVjdHMpIHsKICAgICAgICAgICAgIHJlcyA9IEZyb21PYmooc2VsZiwgdHJlcyk7CkBAIC0xNzM2LDcgKzE1NTIsOCBAQAogc3RhdGljIFB5T2JqZWN0ICoKIFRrYXBwX0dsb2JhbFVuc2V0VmFyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICByZXR1cm4gdmFyX2ludm9rZShVbnNldFZhciwgc2VsZiwgYXJncywgVENMX0xFQVZFX0VSUl9NU0cgfCBUQ0xfR0xPQkFMX09OTFkpOworICAgIHJldHVybiB2YXJfaW52b2tlKFVuc2V0VmFyLCBzZWxmLCBhcmdzLAorICAgICAgICAgICAgICAgICAgICAgIFRDTF9MRUFWRV9FUlJfTVNHIHwgVENMX0dMT0JBTF9PTkxZKTsKIH0KIAogCkBAIC0xOTYxLDI3ICsxNzc4LDYgQEAKICAgICByZXR1cm4gdjsKIH0KIAotc3RhdGljIFB5T2JqZWN0ICoKLVRrYXBwX01lcmdlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBjaGFyICpzOwotICAgIFB5T2JqZWN0ICpyZXMgPSBOVUxMOwotCi0gICAgaWYgKFB5RXJyX1dhcm5FeChQeUV4Y19EZXByZWNhdGlvbldhcm5pbmcsCi0gICAgICAgICAgICAgICAgICAgICAibWVyZ2UgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDMuNCIsCi0gICAgICAgICAgICAgICAgICAgICAxKSA8IDApCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcyA9IE1lcmdlKGFyZ3MpOwotCi0gICAgaWYgKHMpIHsKLSAgICAgICAgcmVzID0gUHlVbmljb2RlX0Zyb21TdHJpbmcocyk7Ci0gICAgICAgIGNrZnJlZShzKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmVzOwotfQotCiAKIAogLyoqIFRjbCBDb21tYW5kICoqLwpAQCAtMjE2Nyw4ICsxOTYzLDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJldHVybiBQeV9Ob25lOworICAgIFB5X1JFVFVSTl9OT05FOwogfQogCiAKQEAgLTIyMDksOCArMjAwNCw3IEBACiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhUa2ludGVyX1RjbEVycm9yLCAiY2FuJ3QgZGVsZXRlIFRjbCBjb21tYW5kIik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgcmV0dXJuIFB5X05vbmU7CisgICAgUHlfUkVUVVJOX05PTkU7CiB9CiAKIApAQCAtMjMxNCw4ICsyMTA4LDcgQEAKICAgICBFTlRFUl9UQ0wKICAgICBUY2xfQ3JlYXRlRmlsZUhhbmRsZXIodGZpbGUsIG1hc2ssIEZpbGVIYW5kbGVyLCAoQ2xpZW50RGF0YSkgZGF0YSk7CiAgICAgTEVBVkVfVENMCi0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJldHVybiBQeV9Ob25lOworICAgIFB5X1JFVFVSTl9OT05FOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMjMzOSwxNSArMjEzMiwxNCBAQAogICAgIEVOVEVSX1RDTAogICAgIFRjbF9EZWxldGVGaWxlSGFuZGxlcih0ZmlsZSk7CiAgICAgTEVBVkVfVENMCi0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJldHVybiBQeV9Ob25lOworICAgIFB5X1JFVFVSTl9OT05FOwogfQogI2VuZGlmIC8qIEhBVkVfQ1JFQVRFRklMRUhBTkRMRVIgKi8KIAogCiAvKioqKiBUa3R0IE9iamVjdCAodGltZXIgdG9rZW4pICoqKiovCiAKLXN0YXRpYyBQeVR5cGVPYmplY3QgVGt0dF9UeXBlOworc3RhdGljIFB5T2JqZWN0ICpUa3R0X1R5cGU7CiAKIHR5cGVkZWYgc3RydWN0IHsKICAgICBQeU9iamVjdF9IRUFECkBAIC0yMzcyLDggKzIxNjQsNyBAQAogICAgICAgICBQeV9ERUNSRUYoZnVuYyk7CiAgICAgICAgIFB5X0RFQ1JFRih2KTsgLyogU2VlIFRrdHRfTmV3KCkgKi8KICAgICB9Ci0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJldHVybiBQeV9Ob25lOworICAgIFB5X1JFVFVSTl9OT05FOwogfQogCiBzdGF0aWMgUHlNZXRob2REZWYgVGt0dF9tZXRob2RzW10gPQpAQCAtMjM4Nyw3ICsyMTc4LDcgQEAKIHsKICAgICBUa3R0T2JqZWN0ICp2OwogCi0gICAgdiA9IFB5T2JqZWN0X05ldyhUa3R0T2JqZWN0LCAmVGt0dF9UeXBlKTsKKyAgICB2ID0gUHlPYmplY3RfTmV3KFRrdHRPYmplY3QsIChQeVR5cGVPYmplY3QgKikgVGt0dF9UeXBlKTsKICAgICBpZiAodiA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKIApAQCAtMjQyMCwzOCArMjIxMSwyMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LT5mdW5jID09IE5VTEwgPyAiLCBoYW5kbGVyIGRlbGV0ZWQiIDogIiIpOwogfQogCi1zdGF0aWMgUHlUeXBlT2JqZWN0IFRrdHRfVHlwZSA9Ci17Ci0gICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCi0gICAgInRrdGltZXJ0b2tlbiIsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX25hbWUgKi8KLSAgICBzaXplb2YoVGt0dE9iamVjdCksICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYmFzaWNzaXplICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2l0ZW1zaXplICovCi0gICAgVGt0dF9EZWFsbG9jLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2RlYWxsb2MgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfcHJpbnQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZ2V0YXR0ciAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9zZXRhdHRyICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3Jlc2VydmVkICovCi0gICAgVGt0dF9SZXByLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3JlcHIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfbnVtYmVyICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX3NlcXVlbmNlICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX21hcHBpbmcgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaGFzaCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9jYWxsKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfc3RyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZ2V0YXR0cm8qLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9zZXRhdHRybyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX2J1ZmZlciovCi0gICAgUHlfVFBGTEFHU19ERUZBVUxULCAgICAgICAgICAgICAgICAgICAgICAvKnRwX2ZsYWdzKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZG9jKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfdHJhdmVyc2UqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9jbGVhciovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3JpY2hjb21wYXJlKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfd2Vha2xpc3RvZmZzZXQqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9pdGVyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaXRlcm5leHQqLwotICAgIFRrdHRfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9tZXRob2RzKi8KK3N0YXRpYyBQeVR5cGVfU2xvdCBUa3R0X1R5cGVfc2xvdHNbXSA9IHsKKyAgICB7UHlfdHBfZGVhbGxvYywgVGt0dF9EZWFsbG9jfSwKKyAgICB7UHlfdHBfcmVwciwgVGt0dF9SZXByfSwKKyAgICB7UHlfdHBfbWV0aG9kcywgVGt0dF9tZXRob2RzfSwKKyAgICB7MCwgMH0KIH07CiAKK3N0YXRpYyBQeVR5cGVfU3BlYyBUa3R0X1R5cGVfc3BlYyA9IHsKKyAgICAidGt0aW1lcnRva2VuIiwKKyAgICBzaXplb2YoVGt0dE9iamVjdCksCisgICAgMCwKKyAgICBQeV9UUEZMQUdTX0RFRkFVTFQsCisgICAgVGt0dF9UeXBlX3Nsb3RzLAorfTsKIAogCiAvKiogVGltZXIgSGFuZGxlciAqKi8KQEAgLTI1NzMsOCArMjM0Niw3IEBACiAgICAgICAgIGV4Y0luQ21kID0gdmFsSW5DbWQgPSB0cmJJbkNtZCA9IE5VTEw7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgcmV0dXJuIFB5X05vbmU7CisgICAgUHlfUkVUVVJOX05PTkU7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0yNjAwLDggKzIzNzIsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIHF1aXRNYWluTG9vcCA9IDE7Ci0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJldHVybiBQeV9Ob25lOworICAgIFB5X1JFVFVSTl9OT05FOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMjY1MSwxNSArMjQyMiwxNSBAQAogICAgIH0KICAgICBpZiAoX3RrX2V4aXN0cyA9PSBOVUxMIHx8IHN0cmNtcChfdGtfZXhpc3RzLCAiMSIpICE9IDApICAgICB7CiAgICAgICAgIGlmIChUa19Jbml0KGludGVycCkgICAgICAgICAgICAgPT0gVENMX0VSUk9SKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoVGtpbnRlcl9UY2xFcnJvciwgVGNsX0dldFN0cmluZ1Jlc3VsdChUa2FwcF9JbnRlcnAoc2VsZikpKTsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhUa2ludGVyX1RjbEVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRjbF9HZXRTdHJpbmdSZXN1bHQoVGthcHBfSW50ZXJwKHNlbGYpKSk7CiAjaWZkZWYgVEtJTlRFUl9QUk9URUNUX0xPQURUSwogICAgICAgICAgICAgdGtfbG9hZF9mYWlsZWQgPSAxOwogI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQogICAgIH0KLSAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgcmV0dXJuIFB5X05vbmU7CisgICAgUHlfUkVUVVJOX05PTkU7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0yNjczLDggKzI0NDQsNyBAQAogICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKCgoVGthcHBPYmplY3QqKXNlbGYpLT53YW50b2JqZWN0cyk7CiAgICAgKChUa2FwcE9iamVjdCopc2VsZiktPndhbnRvYmplY3RzID0gd2FudG9iamVjdHM7CiAKLSAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgcmV0dXJuIFB5X05vbmU7CisgICAgUHlfUkVUVVJOX05PTkU7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0yNjgzLDggKzI0NTMsNyBAQAogCiAgICAgKChUa2FwcE9iamVjdCopc2VsZiktPmRpc3BhdGNoaW5nID0gMTsKIAotICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICByZXR1cm4gUHlfTm9uZTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKIH0KIAogCkBAIC0yNjk1LDkgKzI0NjQsNyBAQAogICAgIHsid2lsbGRpc3BhdGNoIiwgICAgICAgVGthcHBfV2lsbERpc3BhdGNoLCBNRVRIX05PQVJHU30sCiAgICAgeyJ3YW50b2JqZWN0cyIsICAgICAgICAgICAgVGthcHBfV2FudE9iamVjdHMsIE1FVEhfVkFSQVJHU30sCiAgICAgeyJjYWxsIiwgICAgICAgICAgICAgICAgICAgVGthcHBfQ2FsbCwgTUVUSF9WQVJBUkdTfSwKLSAgICB7Imdsb2JhbGNhbGwiLCAgICAgICAgICAgICBUa2FwcF9HbG9iYWxDYWxsLCBNRVRIX1ZBUkFSR1N9LAogICAgIHsiZXZhbCIsICAgICAgICAgICAgICAgICAgIFRrYXBwX0V2YWwsIE1FVEhfVkFSQVJHU30sCi0gICAgeyJnbG9iYWxldmFsIiwgICAgICAgICAgICAgVGthcHBfR2xvYmFsRXZhbCwgTUVUSF9WQVJBUkdTfSwKICAgICB7ImV2YWxmaWxlIiwgICAgICAgICAgICAgICBUa2FwcF9FdmFsRmlsZSwgTUVUSF9WQVJBUkdTfSwKICAgICB7InJlY29yZCIsICAgICAgICAgICAgICAgICBUa2FwcF9SZWNvcmQsIE1FVEhfVkFSQVJHU30sCiAgICAgeyJhZGRlcnJvcmluZm8iLCAgICAgICBUa2FwcF9BZGRFcnJvckluZm8sIE1FVEhfVkFSQVJHU30sCkBAIC0yNzE2LDcgKzI0ODMsNiBAQAogICAgIHsiZXhwcmJvb2xlYW4iLCAgICAgICAgVGthcHBfRXhwckJvb2xlYW4sIE1FVEhfVkFSQVJHU30sCiAgICAgeyJzcGxpdGxpc3QiLCAgICAgICAgICAgICAgVGthcHBfU3BsaXRMaXN0LCBNRVRIX1ZBUkFSR1N9LAogICAgIHsic3BsaXQiLCAgICAgICAgICAgICAgICAgIFRrYXBwX1NwbGl0LCBNRVRIX1ZBUkFSR1N9LAotICAgIHsibWVyZ2UiLCAgICAgICAgICAgICAgICAgIFRrYXBwX01lcmdlLCBNRVRIX1ZBUkFSR1N9LAogICAgIHsiY3JlYXRlY29tbWFuZCIsICAgICAgVGthcHBfQ3JlYXRlQ29tbWFuZCwgTUVUSF9WQVJBUkdTfSwKICAgICB7ImRlbGV0ZWNvbW1hbmQiLCAgICAgIFRrYXBwX0RlbGV0ZUNvbW1hbmQsIE1FVEhfVkFSQVJHU30sCiAjaWZkZWYgSEFWRV9DUkVBVEVGSUxFSEFORExFUgpAQCAtMjc0NywzNiArMjUxMywxOSBAQAogICAgIERpc2FibGVFdmVudEhvb2soKTsKIH0KIAotc3RhdGljIFB5VHlwZU9iamVjdCBUa2FwcF9UeXBlID0KLXsKLSAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoTlVMTCwgMCkKLSAgICAidGthcHAiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfbmFtZSAqLwotICAgIHNpemVvZihUa2FwcE9iamVjdCksICAgICAgICAgICAgICAgICAgICAgLyp0cF9iYXNpY3NpemUgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaXRlbXNpemUgKi8KLSAgICBUa2FwcF9EZWFsbG9jLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZGVhbGxvYyAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9wcmludCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9nZXRhdHRyICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3NldGF0dHIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfcmVzZXJ2ZWQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfcmVwciAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9hc19udW1iZXIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfc2VxdWVuY2UgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfbWFwcGluZyAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9oYXNoICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2NhbGwqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9zdHIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9nZXRhdHRybyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3NldGF0dHJvKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfYnVmZmVyKi8KLSAgICBQeV9UUEZMQUdTX0RFRkFVTFQsICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZmxhZ3MqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9kb2MqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF90cmF2ZXJzZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2NsZWFyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfcmljaGNvbXBhcmUqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF93ZWFrbGlzdG9mZnNldCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2l0ZXIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9pdGVybmV4dCovCi0gICAgVGthcHBfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX21ldGhvZHMqLworc3RhdGljIFB5VHlwZV9TbG90IFRrYXBwX1R5cGVfc2xvdHNbXSA9IHsKKyAgICB7UHlfdHBfZGVhbGxvYywgVGthcHBfRGVhbGxvY30sCisgICAge1B5X3RwX21ldGhvZHMsIFRrYXBwX21ldGhvZHN9LAorICAgIHswLCAwfQorfTsKKworCitzdGF0aWMgUHlUeXBlX1NwZWMgVGthcHBfVHlwZV9zcGVjID0geworICAgICJ0a2FwcCIsCisgICAgc2l6ZW9mKFRrYXBwT2JqZWN0KSwKKyAgICAwLAorICAgIFB5X1RQRkxBR1NfREVGQVVMVCwKKyAgICBUa2FwcF9UeXBlX3Nsb3RzLAogfTsKIAogCkBAIC0yOTE2LDcgKzI2NjUsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIHJldHVybiAoUHlPYmplY3QgKikgVGthcHBfTmV3KHNjcmVlbk5hbWUsIGNsYXNzTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmFjdGl2ZSwgd2FudG9iamVjdHMsICAgICB3YW50VGssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJhY3RpdmUsIHdhbnRvYmplY3RzLCB3YW50VGssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luYywgdXNlKTsKIH0KIApAQCAtMjkzMiw4ICsyNjgxLDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAgIFRraW50ZXJfYnVzeXdhaXRpbnRlcnZhbCA9IG5ld192YWw7Ci0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJldHVybiBQeV9Ob25lOworICAgIFB5X1JFVFVSTl9OT05FOwogfQogCiBzdGF0aWMgY2hhciBzZXRidXN5d2FpdGludGVydmFsX2RvY1tdID0KQEAgLTMwNjYsMjcgKzI4MTQsNiBAQAogfQogCiAKLS8qIGFsbCBlcnJvcnMgd2lsbCBiZSBjaGVja2VkIGluIG9uZSBmZWxsIHN3b29wIGluIGluaXRfdGtpbnRlcigpICovCi1zdGF0aWMgdm9pZAotaW5zX2xvbmcoUHlPYmplY3QgKmQsIGNoYXIgKm5hbWUsIGxvbmcgdmFsKQotewotICAgIFB5T2JqZWN0ICp2ID0gUHlMb25nX0Zyb21Mb25nKHZhbCk7Ci0gICAgaWYgKHYpIHsKLSAgICAgICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgbmFtZSwgdik7Ci0gICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICB9Ci19Ci1zdGF0aWMgdm9pZAotaW5zX3N0cmluZyhQeU9iamVjdCAqZCwgY2hhciAqbmFtZSwgY2hhciAqdmFsKQotewotICAgIFB5T2JqZWN0ICp2ID0gUHlVbmljb2RlX0Zyb21TdHJpbmcodmFsKTsKLSAgICBpZiAodikgewotICAgICAgICBQeURpY3RfU2V0SXRlbVN0cmluZyhkLCBuYW1lLCB2KTsKLSAgICAgICAgUHlfREVDUkVGKHYpOwotICAgIH0KLX0KLQotCiBzdGF0aWMgc3RydWN0IFB5TW9kdWxlRGVmIF90a2ludGVybW9kdWxlID0gewogICAgIFB5TW9kdWxlRGVmX0hFQURfSU5JVCwKICAgICAiX3RraW50ZXIiLApAQCAtMzEwMiw0NSArMjgyOSwxMTEgQEAKIFB5TU9ESU5JVF9GVU5DCiBQeUluaXRfX3RraW50ZXIodm9pZCkKIHsKLSAgICBQeU9iamVjdCAqbSwgKmQsICp1ZXhlLCAqY2V4ZTsKLQotICAgIGlmIChQeVR5cGVfUmVhZHkoJlRrYXBwX1R5cGUpIDwgMCkKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgIFB5T2JqZWN0ICptLCAqdWV4ZSwgKmNleGUsICpvOwogCiAjaWZkZWYgV0lUSF9USFJFQUQKICAgICB0Y2xfbG9jayA9IFB5VGhyZWFkX2FsbG9jYXRlX2xvY2soKTsKKyAgICBpZiAodGNsX2xvY2sgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAjZW5kaWYKIAogICAgIG0gPSBQeU1vZHVsZV9DcmVhdGUoJl90a2ludGVybW9kdWxlKTsKICAgICBpZiAobSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGQgPSBQeU1vZHVsZV9HZXREaWN0KG0pOwotICAgIFRraW50ZXJfVGNsRXJyb3IgPSBQeUVycl9OZXdFeGNlcHRpb24oIl90a2ludGVyLlRjbEVycm9yIiwgTlVMTCwgTlVMTCk7Ci0gICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIlRjbEVycm9yIiwgVGtpbnRlcl9UY2xFcnJvcik7Ci0KLSAgICBpbnNfbG9uZyhkLCAiUkVBREFCTEUiLCBUQ0xfUkVBREFCTEUpOwotICAgIGluc19sb25nKGQsICJXUklUQUJMRSIsIFRDTF9XUklUQUJMRSk7Ci0gICAgaW5zX2xvbmcoZCwgIkVYQ0VQVElPTiIsIFRDTF9FWENFUFRJT04pOwotICAgIGluc19sb25nKGQsICJXSU5ET1dfRVZFTlRTIiwgVENMX1dJTkRPV19FVkVOVFMpOwotICAgIGluc19sb25nKGQsICJGSUxFX0VWRU5UUyIsIFRDTF9GSUxFX0VWRU5UUyk7Ci0gICAgaW5zX2xvbmcoZCwgIlRJTUVSX0VWRU5UUyIsIFRDTF9USU1FUl9FVkVOVFMpOwotICAgIGluc19sb25nKGQsICJJRExFX0VWRU5UUyIsIFRDTF9JRExFX0VWRU5UUyk7Ci0gICAgaW5zX2xvbmcoZCwgIkFMTF9FVkVOVFMiLCBUQ0xfQUxMX0VWRU5UUyk7Ci0gICAgaW5zX2xvbmcoZCwgIkRPTlRfV0FJVCIsIFRDTF9ET05UX1dBSVQpOwotICAgIGluc19zdHJpbmcoZCwgIlRLX1ZFUlNJT04iLCBUS19WRVJTSU9OKTsKLSAgICBpbnNfc3RyaW5nKGQsICJUQ0xfVkVSU0lPTiIsIFRDTF9WRVJTSU9OKTsKLQotICAgIFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJUa2FwcFR5cGUiLCAoUHlPYmplY3QgKikmVGthcHBfVHlwZSk7Ci0KLSAgICBpZiAoUHlUeXBlX1JlYWR5KCZUa3R0X1R5cGUpIDwgMCkgeworICAgIG8gPSBQeUVycl9OZXdFeGNlcHRpb24oIl90a2ludGVyLlRjbEVycm9yIiwgTlVMTCwgTlVMTCk7CisgICAgaWYgKG8gPT0gTlVMTCkgewogICAgICAgICBQeV9ERUNSRUYobSk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiVGt0dFR5cGUiLCAoUHlPYmplY3QgKikmVGt0dF9UeXBlKTsKKyAgICBQeV9JTkNSRUYobyk7CisgICAgaWYgKFB5TW9kdWxlX0FkZE9iamVjdChtLCAiVGNsRXJyb3IiLCBvKSkgeworICAgICAgICBQeV9ERUNSRUYobyk7CisgICAgICAgIFB5X0RFQ1JFRihtKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIFRraW50ZXJfVGNsRXJyb3IgPSBvOwogCi0gICAgUHlfVFlQRSgmUHlUY2xPYmplY3RfVHlwZSkgPSAmUHlUeXBlX1R5cGU7Ci0gICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIlRjbF9PYmoiLCAoUHlPYmplY3QgKikmUHlUY2xPYmplY3RfVHlwZSk7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSRUFEQUJMRSIsIFRDTF9SRUFEQUJMRSkpIHsKKyAgICAgICAgUHlfREVDUkVGKG0pOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJXUklUQUJMRSIsIFRDTF9XUklUQUJMRSkpIHsKKyAgICAgICAgUHlfREVDUkVGKG0pOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJFWENFUFRJT04iLCBUQ0xfRVhDRVBUSU9OKSkgeworICAgICAgICBQeV9ERUNSRUYobSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIldJTkRPV19FVkVOVFMiLCBUQ0xfV0lORE9XX0VWRU5UUykpIHsKKyAgICAgICAgUHlfREVDUkVGKG0pOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJGSUxFX0VWRU5UUyIsIFRDTF9GSUxFX0VWRU5UUykpIHsKKyAgICAgICAgUHlfREVDUkVGKG0pOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUSU1FUl9FVkVOVFMiLCBUQ0xfVElNRVJfRVZFTlRTKSkgeworICAgICAgICBQeV9ERUNSRUYobSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklETEVfRVZFTlRTIiwgVENMX0lETEVfRVZFTlRTKSkgeworICAgICAgICBQeV9ERUNSRUYobSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFMTF9FVkVOVFMiLCBUQ0xfQUxMX0VWRU5UUykpIHsKKyAgICAgICAgUHlfREVDUkVGKG0pOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJET05UX1dBSVQiLCBUQ0xfRE9OVF9XQUlUKSkgeworICAgICAgICBQeV9ERUNSRUYobSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZiAoUHlNb2R1bGVfQWRkU3RyaW5nQ29uc3RhbnQobSwgIlRLX1ZFUlNJT04iLCBUS19WRVJTSU9OKSkgeworICAgICAgICBQeV9ERUNSRUYobSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZiAoUHlNb2R1bGVfQWRkU3RyaW5nQ29uc3RhbnQobSwgIlRDTF9WRVJTSU9OIiwgVENMX1ZFUlNJT04pKSB7CisgICAgICAgIFB5X0RFQ1JFRihtKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgbyA9IFB5VHlwZV9Gcm9tU3BlYygmVGthcHBfVHlwZV9zcGVjKTsKKyAgICBpZiAobyA9PSBOVUxMKSB7CisgICAgICAgIFB5X0RFQ1JFRihtKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmIChQeU1vZHVsZV9BZGRPYmplY3QobSwgIlRrYXBwVHlwZSIsIG8pKSB7CisgICAgICAgIFB5X0RFQ1JFRihvKTsKKyAgICAgICAgUHlfREVDUkVGKG0pOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgVGthcHBfVHlwZSA9IG87CisKKyAgICBvID0gUHlUeXBlX0Zyb21TcGVjKCZUa3R0X1R5cGVfc3BlYyk7CisgICAgaWYgKG8gPT0gTlVMTCkgeworICAgICAgICBQeV9ERUNSRUYobSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZiAoUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJUa3R0VHlwZSIsIG8pKSB7CisgICAgICAgIFB5X0RFQ1JFRihvKTsKKyAgICAgICAgUHlfREVDUkVGKG0pOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgVGt0dF9UeXBlID0gbzsKKworICAgIG8gPSBQeVR5cGVfRnJvbVNwZWMoJlB5VGNsT2JqZWN0X1R5cGVfc3BlYyk7CisgICAgaWYgKG8gPT0gTlVMTCkgeworICAgICAgICBQeV9ERUNSRUYobSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZiAoUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJUY2xfT2JqIiwgbykpIHsKKyAgICAgICAgUHlfREVDUkVGKG8pOworICAgICAgICBQeV9ERUNSRUYobSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBQeVRjbE9iamVjdF9UeXBlID0gbzsKIAogI2lmZGVmIFRLX0FRVUEKICAgICAvKiBUa19NYWNPU1hTZXR1cFRrTm90aWZpZXIgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIFRjbCdzIHN1YnN5c3RlbXMKZGlmZiAtLWdpdCBhL01vZHVsZXMvYXJyYXltb2R1bGUuYyBiL01vZHVsZXMvYXJyYXltb2R1bGUuYwppbmRleCA5NmM5ZTViLi4xYzc1OTg5IDEwMDY0NAotLS0gYS9Nb2R1bGVzL2FycmF5bW9kdWxlLmMKKysrIGIvTW9kdWxlcy9hcnJheW1vZHVsZS5jCkBAIC0xNjY0LDExICsxNjY0LDggQEAKIHN0YXRpYyBlbnVtIG1hY2hpbmVfZm9ybWF0X2NvZGUKIHR5cGVjb2RlX3RvX21mb3JtYXRfY29kZShjaGFyIHR5cGVjb2RlKQogewotI2lmZGVmIFdPUkRTX0JJR0VORElBTgotICAgIGNvbnN0IGludCBpc19iaWdfZW5kaWFuID0gMTsKLSNlbHNlCi0gICAgY29uc3QgaW50IGlzX2JpZ19lbmRpYW4gPSAwOwotI2VuZGlmCisgICAgY29uc3QgaW50IGlzX2JpZ19lbmRpYW4gPSBQWV9CSUdfRU5ESUFOOworCiAgICAgc2l6ZV90IGludHNpemU7CiAgICAgaW50IGlzX3NpZ25lZDsKIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9hdWRpb29wLmMgYi9Nb2R1bGVzL2F1ZGlvb3AuYwppbmRleCA3ZTQwYmJkLi40ZjJiMjVmIDEwMDY0NAotLS0gYS9Nb2R1bGVzL2F1ZGlvb3AuYworKysgYi9Nb2R1bGVzL2F1ZGlvb3AuYwpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICB2YWwgPSBtYXh2YWw7CiAgICAgZWxzZSBpZiAodmFsIDwgbWludmFsICsgMSkKICAgICAgICAgdmFsID0gbWludmFsOwotICAgIHJldHVybiB2YWw7CisgICAgcmV0dXJuIChpbnQpdmFsOwogfQogCiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3NfY24uYyBiL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3NfY24uYwppbmRleCA5ZTllOTZjLi4yODVkYTFlIDEwMDY0NAotLS0gYS9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX2NuLmMKKysrIGIvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19jbi5jCkBAIC0yMywxMiArMjMsMTIgQEAKICAqIEE4NDQgICAgICAgICB1bmRlZmluZWQgICAgICAgICAgICAgICAgICAgICAgIFUrMjAxNSBIT1JJWk9OVEFMIEJBUgogICovCiAKLSNkZWZpbmUgR0JLX0RFQ09ERShkYzEsIGRjMiwgYXNzaSkgXAotICAgIGlmICgoZGMxKSA9PSAweGExICYmIChkYzIpID09IDB4YWEpIChhc3NpKSA9IDB4MjAxNDsgXAotICAgIGVsc2UgaWYgKChkYzEpID09IDB4YTggJiYgKGRjMikgPT0gMHg0NCkgKGFzc2kpID0gMHgyMDE1OyBcCi0gICAgZWxzZSBpZiAoKGRjMSkgPT0gMHhhMSAmJiAoZGMyKSA9PSAweGE0KSAoYXNzaSkgPSAweDAwYjc7IFwKLSAgICBlbHNlIFRSWU1BUF9ERUMoZ2IyMzEyLCBhc3NpLCBkYzEgXiAweDgwLCBkYzIgXiAweDgwKTsgXAotICAgIGVsc2UgVFJZTUFQX0RFQyhnYmtleHQsIGFzc2ksIGRjMSwgZGMyKTsKKyNkZWZpbmUgR0JLX0RFQ09ERShkYzEsIGRjMiwgd3JpdGVyKSBcCisgICAgaWYgKChkYzEpID09IDB4YTEgJiYgKGRjMikgPT0gMHhhYSkgT1VUQ0hBUigweDIwMTQpOyBcCisgICAgZWxzZSBpZiAoKGRjMSkgPT0gMHhhOCAmJiAoZGMyKSA9PSAweDQ0KSBPVVRDSEFSKDB4MjAxNSk7IFwKKyAgICBlbHNlIGlmICgoZGMxKSA9PSAweGExICYmIChkYzIpID09IDB4YTQpIE9VVENIQVIoMHgwMGI3KTsgXAorICAgIGVsc2UgVFJZTUFQX0RFQyhnYjIzMTIsIHdyaXRlciwgZGMxIF4gMHg4MCwgZGMyIF4gMHg4MCk7IFwKKyAgICBlbHNlIFRSWU1BUF9ERUMoZ2JrZXh0LCB3cml0ZXIsIGRjMSwgZGMyKTsKIAogI2RlZmluZSBHQktfRU5DT0RFKGNvZGUsIGFzc2kpIFwKICAgICBpZiAoKGNvZGUpID09IDB4MjAxNCkgKGFzc2kpID0gMHhhMWFhOyBcCkBAIC00MiwxNiArNDIsMTggQEAKIAogRU5DT0RFUihnYjIzMTIpCiB7Ci0gICAgd2hpbGUgKGlubGVmdCA+IDApIHsKLSAgICAgICAgUHlfVU5JQ09ERSBjID0gSU4xOworICAgIHdoaWxlICgqaW5wb3MgPCBpbmxlbikgeworICAgICAgICBQeV9VQ1M0IGMgPSBJTkNIQVIxOwogICAgICAgICBEQkNIQVIgY29kZTsKIAogICAgICAgICBpZiAoYyA8IDB4ODApIHsKLSAgICAgICAgICAgIFdSSVRFMSgodW5zaWduZWQgY2hhciljKQotICAgICAgICAgICAgTkVYVCgxLCAxKQorICAgICAgICAgICAgV1JJVEVCWVRFMSgodW5zaWduZWQgY2hhciljKQorICAgICAgICAgICAgTkVYVCgxLCAxKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIFVDUzRJTlZBTElEKGMpCisKKyAgICAgICAgaWYgKGMgPiAweEZGRkYpCisgICAgICAgICAgICByZXR1cm4gMTsKIAogICAgICAgICBSRVFVSVJFX09VVEJVRigyKQogICAgICAgICBUUllNQVBfRU5DKGdiY29tbW9uLCBjb2RlLCBjKTsKQEAgLTYwLDkgKzYyLDkgQEAKICAgICAgICAgaWYgKGNvZGUgJiAweDgwMDApIC8qIE1TQiBzZXQ6IEdCSyAqLwogICAgICAgICAgICAgcmV0dXJuIDE7CiAKLSAgICAgICAgT1VUMSgoY29kZSA+PiA4KSB8IDB4ODApCi0gICAgICAgIE9VVDIoKGNvZGUgJiAweEZGKSB8IDB4ODApCi0gICAgICAgIE5FWFQoMSwgMikKKyAgICAgICAgT1VUQllURTEoKGNvZGUgPj4gOCkgfCAweDgwKQorICAgICAgICBPVVRCWVRFMigoY29kZSAmIDB4RkYpIHwgMHg4MCkKKyAgICAgICAgTkVYVCgxLCAyKTsKICAgICB9CiAKICAgICByZXR1cm4gMDsKQEAgLTczLDE3ICs3NSwxNSBAQAogICAgIHdoaWxlIChpbmxlZnQgPiAwKSB7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9ICoqaW5idWY7CiAKLSAgICAgICAgUkVRVUlSRV9PVVRCVUYoMSkKLQogICAgICAgICBpZiAoYyA8IDB4ODApIHsKLSAgICAgICAgICAgIE9VVDEoYykKLSAgICAgICAgICAgIE5FWFQoMSwgMSkKKyAgICAgICAgICAgIE9VVENIQVIoYyk7CisgICAgICAgICAgICBORVhUX0lOKDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBSRVFVSVJFX0lOQlVGKDIpCi0gICAgICAgIFRSWU1BUF9ERUMoZ2IyMzEyLCAqKm91dGJ1ZiwgYyBeIDB4ODAsIElOMiBeIDB4ODApIHsKLSAgICAgICAgICAgIE5FWFQoMiwgMSkKKyAgICAgICAgVFJZTUFQX0RFQyhnYjIzMTIsIHdyaXRlciwgYyBeIDB4ODAsIElOQllURTIgXiAweDgwKSB7CisgICAgICAgICAgICBORVhUX0lOKDIpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgcmV0dXJuIDE7CiAgICAgfQpAQCAtOTgsMjggKzk4LDMwIEBACiAKIEVOQ09ERVIoZ2JrKQogewotICAgIHdoaWxlIChpbmxlZnQgPiAwKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgYyA9IElOMTsKKyAgICB3aGlsZSAoKmlucG9zIDwgaW5sZW4pIHsKKyAgICAgICAgUHlfVUNTNCBjID0gSU5DSEFSMTsKICAgICAgICAgREJDSEFSIGNvZGU7CiAKICAgICAgICAgaWYgKGMgPCAweDgwKSB7Ci0gICAgICAgICAgICBXUklURTEoKHVuc2lnbmVkIGNoYXIpYykKLSAgICAgICAgICAgIE5FWFQoMSwgMSkKKyAgICAgICAgICAgIFdSSVRFQllURTEoKHVuc2lnbmVkIGNoYXIpYykKKyAgICAgICAgICAgIE5FWFQoMSwgMSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICBVQ1M0SU5WQUxJRChjKQorCisgICAgICAgIGlmIChjID4gMHhGRkZGKQorICAgICAgICAgICAgcmV0dXJuIDE7CiAKICAgICAgICAgUkVRVUlSRV9PVVRCVUYoMikKIAogICAgICAgICBHQktfRU5DT0RFKGMsIGNvZGUpCiAgICAgICAgIGVsc2UgcmV0dXJuIDE7CiAKLSAgICAgICAgT1VUMSgoY29kZSA+PiA4KSB8IDB4ODApCisgICAgICAgIE9VVEJZVEUxKChjb2RlID4+IDgpIHwgMHg4MCkKICAgICAgICAgaWYgKGNvZGUgJiAweDgwMDApCi0gICAgICAgICAgICBPVVQyKChjb2RlICYgMHhGRikpIC8qIE1TQiBzZXQ6IEdCSyAqLworICAgICAgICAgICAgT1VUQllURTIoKGNvZGUgJiAweEZGKSkgLyogTVNCIHNldDogR0JLICovCiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIE9VVDIoKGNvZGUgJiAweEZGKSB8IDB4ODApIC8qIE1TQiB1bnNldDogR0IyMzEyICovCi0gICAgICAgIE5FWFQoMSwgMikKKyAgICAgICAgICAgIE9VVEJZVEUyKChjb2RlICYgMHhGRikgfCAweDgwKSAvKiBNU0IgdW5zZXQ6IEdCMjMxMiAqLworICAgICAgICBORVhUKDEsIDIpOwogICAgIH0KIAogICAgIHJldHVybiAwOwpAQCAtMTI4LDIyICsxMzAsMjAgQEAKIERFQ09ERVIoZ2JrKQogewogICAgIHdoaWxlIChpbmxlZnQgPiAwKSB7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9IElOMTsKLQotICAgICAgICBSRVFVSVJFX09VVEJVRigxKQorICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSBJTkJZVEUxOwogCiAgICAgICAgIGlmIChjIDwgMHg4MCkgewotICAgICAgICAgICAgT1VUMShjKQotICAgICAgICAgICAgTkVYVCgxLCAxKQorICAgICAgICAgICAgT1VUQ0hBUihjKTsKKyAgICAgICAgICAgIE5FWFRfSU4oMSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIFJFUVVJUkVfSU5CVUYoMikKIAotICAgICAgICBHQktfREVDT0RFKGMsIElOMiwgKipvdXRidWYpCisgICAgICAgIEdCS19ERUNPREUoYywgSU5CWVRFMiwgd3JpdGVyKQogICAgICAgICBlbHNlIHJldHVybiAxOwogCi0gICAgICAgIE5FWFQoMiwgMSkKKyAgICAgICAgTkVYVF9JTigyKTsKICAgICB9CiAKICAgICByZXR1cm4gMDsKQEAgLTE1Niw0MSArMTU2LDMxIEBACiAKIEVOQ09ERVIoZ2IxODAzMCkKIHsKLSAgICB3aGlsZSAoaW5sZWZ0ID4gMCkgewotICAgICAgICB1Y3M0X3QgYyA9IElOMTsKKyAgICB3aGlsZSAoKmlucG9zIDwgaW5sZW4pIHsKKyAgICAgICAgUHlfVUNTNCBjID0gSU5DSEFSMTsKICAgICAgICAgREJDSEFSIGNvZGU7CiAKICAgICAgICAgaWYgKGMgPCAweDgwKSB7Ci0gICAgICAgICAgICBXUklURTEoYykKLSAgICAgICAgICAgIE5FWFQoMSwgMSkKKyAgICAgICAgICAgIFdSSVRFQllURTEoYykKKyAgICAgICAgICAgIE5FWFQoMSwgMSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIERFQ09ERV9TVVJST0dBVEUoYykKLSAgICAgICAgaWYgKGMgPiAweDEwRkZGRikKLSNpZiBQeV9VTklDT0RFX1NJWkUgPT0gMgotICAgICAgICAgICAgcmV0dXJuIDI7IC8qIHN1cnJvZ2F0ZXMgcGFpciAqLwotI2Vsc2UKLSAgICAgICAgICAgIHJldHVybiAxOwotI2VuZGlmCi0gICAgICAgIGVsc2UgaWYgKGMgPj0gMHgxMDAwMCkgewotICAgICAgICAgICAgdWNzNF90IHRjID0gYyAtIDB4MTAwMDA7CisgICAgICAgIGlmIChjID49IDB4MTAwMDApIHsKKyAgICAgICAgICAgIFB5X1VDUzQgdGMgPSBjIC0gMHgxMDAwMDsKKyAgICAgICAgICAgIGFzc2VydCAoYyA8PSAweDEwRkZGRik7CiAKICAgICAgICAgICAgIFJFUVVJUkVfT1VUQlVGKDQpCiAKLSAgICAgICAgICAgIE9VVDQoKHVuc2lnbmVkIGNoYXIpKHRjICUgMTApICsgMHgzMCkKKyAgICAgICAgICAgIE9VVEJZVEU0KCh1bnNpZ25lZCBjaGFyKSh0YyAlIDEwKSArIDB4MzApCiAgICAgICAgICAgICB0YyAvPSAxMDsKLSAgICAgICAgICAgIE9VVDMoKHVuc2lnbmVkIGNoYXIpKHRjICUgMTI2KSArIDB4ODEpCisgICAgICAgICAgICBPVVRCWVRFMygodW5zaWduZWQgY2hhcikodGMgJSAxMjYpICsgMHg4MSkKICAgICAgICAgICAgIHRjIC89IDEyNjsKLSAgICAgICAgICAgIE9VVDIoKHVuc2lnbmVkIGNoYXIpKHRjICUgMTApICsgMHgzMCkKKyAgICAgICAgICAgIE9VVEJZVEUyKCh1bnNpZ25lZCBjaGFyKSh0YyAlIDEwKSArIDB4MzApCiAgICAgICAgICAgICB0YyAvPSAxMDsKLSAgICAgICAgICAgIE9VVDEoKHVuc2lnbmVkIGNoYXIpKHRjICsgMHg5MCkpCisgICAgICAgICAgICBPVVRCWVRFMSgodW5zaWduZWQgY2hhcikodGMgKyAweDkwKSkKIAotI2lmIFB5X1VOSUNPREVfU0laRSA9PSAyCi0gICAgICAgICAgICBORVhUKDIsIDQpIC8qIHN1cnJvZ2F0ZXMgcGFpciAqLwotI2Vsc2UKLSAgICAgICAgICAgIE5FWFQoMSwgNCkKLSNlbmRpZgorICAgICAgICAgICAgTkVYVCgxLCA0KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTIwOCwyMCArMTk4LDIwIEBACiAgICAgICAgICAgICAgICAgIHV0cnJhbmdlKyspCiAgICAgICAgICAgICAgICAgaWYgKHV0cnJhbmdlLT5maXJzdCA8PSBjICYmCiAgICAgICAgICAgICAgICAgICAgIGMgPD0gdXRycmFuZ2UtPmxhc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgUHlfVU5JQ09ERSB0YzsKKyAgICAgICAgICAgICAgICAgICAgUHlfVUNTNCB0YzsKIAogICAgICAgICAgICAgICAgICAgICB0YyA9IGMgLSB1dHJyYW5nZS0+Zmlyc3QgKwogICAgICAgICAgICAgICAgICAgICAgICAgIHV0cnJhbmdlLT5iYXNlOwogCi0gICAgICAgICAgICAgICAgICAgIE9VVDQoKHVuc2lnbmVkIGNoYXIpKHRjICUgMTApICsgMHgzMCkKKyAgICAgICAgICAgICAgICAgICAgT1VUQllURTQoKHVuc2lnbmVkIGNoYXIpKHRjICUgMTApICsgMHgzMCkKICAgICAgICAgICAgICAgICAgICAgdGMgLz0gMTA7Ci0gICAgICAgICAgICAgICAgICAgIE9VVDMoKHVuc2lnbmVkIGNoYXIpKHRjICUgMTI2KSArIDB4ODEpCisgICAgICAgICAgICAgICAgICAgIE9VVEJZVEUzKCh1bnNpZ25lZCBjaGFyKSh0YyAlIDEyNikgKyAweDgxKQogICAgICAgICAgICAgICAgICAgICB0YyAvPSAxMjY7Ci0gICAgICAgICAgICAgICAgICAgIE9VVDIoKHVuc2lnbmVkIGNoYXIpKHRjICUgMTApICsgMHgzMCkKKyAgICAgICAgICAgICAgICAgICAgT1VUQllURTIoKHVuc2lnbmVkIGNoYXIpKHRjICUgMTApICsgMHgzMCkKICAgICAgICAgICAgICAgICAgICAgdGMgLz0gMTA7Ci0gICAgICAgICAgICAgICAgICAgIE9VVDEoKHVuc2lnbmVkIGNoYXIpdGMgKyAweDgxKQorICAgICAgICAgICAgICAgICAgICBPVVRCWVRFMSgodW5zaWduZWQgY2hhcil0YyArIDB4ODEpCiAKLSAgICAgICAgICAgICAgICAgICAgTkVYVCgxLCA0KQorICAgICAgICAgICAgICAgICAgICBORVhUKDEsIDQpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAKQEAgLTIzMCwxMyArMjIwLDEzIEBACiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIE9VVDEoKGNvZGUgPj4gOCkgfCAweDgwKQorICAgICAgICBPVVRCWVRFMSgoY29kZSA+PiA4KSB8IDB4ODApCiAgICAgICAgIGlmIChjb2RlICYgMHg4MDAwKQotICAgICAgICAgICAgT1VUMigoY29kZSAmIDB4RkYpKSAvKiBNU0Igc2V0OiBHQksgb3IgR0IxODAzMGV4dCAqLworICAgICAgICAgICAgT1VUQllURTIoKGNvZGUgJiAweEZGKSkgLyogTVNCIHNldDogR0JLIG9yIEdCMTgwMzBleHQgKi8KICAgICAgICAgZWxzZQotICAgICAgICAgICAgT1VUMigoY29kZSAmIDB4RkYpIHwgMHg4MCkgLyogTVNCIHVuc2V0OiBHQjIzMTIgKi8KKyAgICAgICAgICAgIE9VVEJZVEUyKChjb2RlICYgMHhGRikgfCAweDgwKSAvKiBNU0IgdW5zZXQ6IEdCMjMxMiAqLwogCi0gICAgICAgIE5FWFQoMSwgMikKKyAgICAgICAgTkVYVCgxLCAyKTsKICAgICB9CiAKICAgICByZXR1cm4gMDsKQEAgLTI0NSw2MSArMjM1LDU5IEBACiBERUNPREVSKGdiMTgwMzApCiB7CiAgICAgd2hpbGUgKGlubGVmdCA+IDApIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBjID0gSU4xLCBjMjsKLQotICAgICAgICBSRVFVSVJFX09VVEJVRigxKQorICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSBJTkJZVEUxLCBjMjsKIAogICAgICAgICBpZiAoYyA8IDB4ODApIHsKLSAgICAgICAgICAgIE9VVDEoYykKLSAgICAgICAgICAgIE5FWFQoMSwgMSkKKyAgICAgICAgICAgIE9VVENIQVIoYyk7CisgICAgICAgICAgICBORVhUX0lOKDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBSRVFVSVJFX0lOQlVGKDIpCiAKLSAgICAgICAgYzIgPSBJTjI7CisgICAgICAgIGMyID0gSU5CWVRFMjsKICAgICAgICAgaWYgKGMyID49IDB4MzAgJiYgYzIgPD0gMHgzOSkgeyAvKiA0IGJ5dGVzIHNlcSAqLwogICAgICAgICAgICAgY29uc3Qgc3RydWN0IF9nYjE4MDMwX3RvX3VuaWJtcF9yYW5nZXMgKnV0cjsKICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzMsIGM0OwotICAgICAgICAgICAgdWNzNF90IGxzZXE7CisgICAgICAgICAgICBQeV9VQ1M0IGxzZXE7CiAKICAgICAgICAgICAgIFJFUVVJUkVfSU5CVUYoNCkKLSAgICAgICAgICAgIGMzID0gSU4zOwotICAgICAgICAgICAgYzQgPSBJTjQ7CisgICAgICAgICAgICBjMyA9IElOQllURTM7CisgICAgICAgICAgICBjNCA9IElOQllURTQ7CiAgICAgICAgICAgICBpZiAoYyA8IDB4ODEgfHwgYzMgPCAweDgxIHx8IGM0IDwgMHgzMCB8fCBjNCA+IDB4MzkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICBjIC09IDB4ODE7ICBjMiAtPSAweDMwOwogICAgICAgICAgICAgYzMgLT0gMHg4MTsgYzQgLT0gMHgzMDsKIAogICAgICAgICAgICAgaWYgKGMgPCA0KSB7IC8qIFUrMDA4MCAtIFUrRkZGRiAqLwotICAgICAgICAgICAgICAgIGxzZXEgPSAoKHVjczRfdCljICogMTAgKyBjMikgKiAxMjYwICsKLSAgICAgICAgICAgICAgICAgICAgKHVjczRfdCljMyAqIDEwICsgYzQ7CisgICAgICAgICAgICAgICAgbHNlcSA9ICgoUHlfVUNTNCljICogMTAgKyBjMikgKiAxMjYwICsKKyAgICAgICAgICAgICAgICAgICAgKFB5X1VDUzQpYzMgKiAxMCArIGM0OwogICAgICAgICAgICAgICAgIGlmIChsc2VxIDwgMzk0MjApIHsKICAgICAgICAgICAgICAgICAgICAgZm9yICh1dHIgPSBnYjE4MDMwX3RvX3VuaWJtcF9yYW5nZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgbHNlcSA+PSAodXRyICsgMSktPmJhc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdXRyKyspIDsKLSAgICAgICAgICAgICAgICAgICAgT1VUMSh1dHItPmZpcnN0IC0gdXRyLT5iYXNlICsgbHNlcSkKLSAgICAgICAgICAgICAgICAgICAgTkVYVCg0LCAxKQorICAgICAgICAgICAgICAgICAgICBPVVRDSEFSKHV0ci0+Zmlyc3QgLSB1dHItPmJhc2UgKyBsc2VxKTsKKyAgICAgICAgICAgICAgICAgICAgTkVYVF9JTig0KTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSBpZiAoYyA+PSAxNSkgeyAvKiBVKzEwMDAwIC0gVSsxMEZGRkYgKi8KLSAgICAgICAgICAgICAgICBsc2VxID0gMHgxMDAwMCArICgoKHVjczRfdCljLTE1KSAqIDEwICsgYzIpCi0gICAgICAgICAgICAgICAgICAgICogMTI2MCArICh1Y3M0X3QpYzMgKiAxMCArIGM0OworICAgICAgICAgICAgICAgIGxzZXEgPSAweDEwMDAwICsgKCgoUHlfVUNTNCljLTE1KSAqIDEwICsgYzIpCisgICAgICAgICAgICAgICAgICAgICogMTI2MCArIChQeV9VQ1M0KWMzICogMTAgKyBjNDsKICAgICAgICAgICAgICAgICBpZiAobHNlcSA8PSAweDEwRkZGRikgewotICAgICAgICAgICAgICAgICAgICBXUklURVVDUzQobHNlcSk7Ci0gICAgICAgICAgICAgICAgICAgIE5FWFRfSU4oNCkKKyAgICAgICAgICAgICAgICAgICAgT1VUQ0hBUihsc2VxKTsKKyAgICAgICAgICAgICAgICAgICAgTkVYVF9JTig0KTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KIAotICAgICAgICBHQktfREVDT0RFKGMsIGMyLCAqKm91dGJ1ZikKLSAgICAgICAgZWxzZSBUUllNQVBfREVDKGdiMTgwMzBleHQsICoqb3V0YnVmLCBjLCBjMik7CisgICAgICAgIEdCS19ERUNPREUoYywgYzIsIHdyaXRlcikKKyAgICAgICAgZWxzZSBUUllNQVBfREVDKGdiMTgwMzBleHQsIHdyaXRlciwgYywgYzIpOwogICAgICAgICBlbHNlIHJldHVybiAxOwogCi0gICAgICAgIE5FWFQoMiwgMSkKKyAgICAgICAgTkVYVF9JTigyKTsKICAgICB9CiAKICAgICByZXR1cm4gMDsKQEAgLTMxOSwzMyArMzA3LDM0IEBACiBFTkNPREVSX1JFU0VUKGh6KQogewogICAgIGlmIChzdGF0ZS0+aSAhPSAwKSB7Ci0gICAgICAgIFdSSVRFMignficsICd9JykKKyAgICAgICAgV1JJVEVCWVRFMignficsICd9JykKICAgICAgICAgc3RhdGUtPmkgPSAwOwotICAgICAgICBORVhUX09VVCgyKQorICAgICAgICBORVhUX09VVCgyKTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CiAKIEVOQ09ERVIoaHopCiB7Ci0gICAgd2hpbGUgKGlubGVmdCA+IDApIHsKLSAgICAgICAgUHlfVU5JQ09ERSBjID0gSU4xOworICAgIHdoaWxlICgqaW5wb3MgPCBpbmxlbikgeworICAgICAgICBQeV9VQ1M0IGMgPSBJTkNIQVIxOwogICAgICAgICBEQkNIQVIgY29kZTsKIAogICAgICAgICBpZiAoYyA8IDB4ODApIHsKICAgICAgICAgICAgIGlmIChzdGF0ZS0+aSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgV1JJVEUxKCh1bnNpZ25lZCBjaGFyKWMpCi0gICAgICAgICAgICAgICAgTkVYVCgxLCAxKQorICAgICAgICAgICAgICAgIFdSSVRFQllURTEoKHVuc2lnbmVkIGNoYXIpYykKKyAgICAgICAgICAgICAgICBORVhUKDEsIDEpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgV1JJVEUzKCd+JywgJ30nLCAodW5zaWduZWQgY2hhciljKQotICAgICAgICAgICAgICAgIE5FWFQoMSwgMykKKyAgICAgICAgICAgICAgICBXUklURUJZVEUzKCd+JywgJ30nLCAodW5zaWduZWQgY2hhciljKQorICAgICAgICAgICAgICAgIE5FWFQoMSwgMyk7CiAgICAgICAgICAgICAgICAgc3RhdGUtPmkgPSAwOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBVQ1M0SU5WQUxJRChjKQorICAgICAgICBpZiAoYyA+IDB4RkZGRikKKyAgICAgICAgICAgIHJldHVybiAxOwogCiAgICAgICAgIFRSWU1BUF9FTkMoZ2Jjb21tb24sIGNvZGUsIGMpOwogICAgICAgICBlbHNlIHJldHVybiAxOwpAQCAtMzU0LDEzICszNDMsMTMgQEAKICAgICAgICAgICAgIHJldHVybiAxOwogCiAgICAgICAgIGlmIChzdGF0ZS0+aSA9PSAwKSB7Ci0gICAgICAgICAgICBXUklURTQoJ34nLCAneycsIGNvZGUgPj4gOCwgY29kZSAmIDB4ZmYpCi0gICAgICAgICAgICBORVhUKDEsIDQpCisgICAgICAgICAgICBXUklURUJZVEU0KCd+JywgJ3snLCBjb2RlID4+IDgsIGNvZGUgJiAweGZmKQorICAgICAgICAgICAgTkVYVCgxLCA0KTsKICAgICAgICAgICAgIHN0YXRlLT5pID0gMTsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFdSSVRFMihjb2RlID4+IDgsIGNvZGUgJiAweGZmKQotICAgICAgICAgICAgTkVYVCgxLCAyKQorICAgICAgICAgICAgV1JJVEVCWVRFMihjb2RlID4+IDgsIGNvZGUgJiAweGZmKQorICAgICAgICAgICAgTkVYVCgxLCAyKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMzgyLDE1ICszNzEsMTUgQEAKIERFQ09ERVIoaHopCiB7CiAgICAgd2hpbGUgKGlubGVmdCA+IDApIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBjID0gSU4xOworICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSBJTkJZVEUxOwogCiAgICAgICAgIGlmIChjID09ICd+JykgewotICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjMiA9IElOMjsKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzIgPSBJTkJZVEUyOwogCiAgICAgICAgICAgICBSRVFVSVJFX0lOQlVGKDIpCiAgICAgICAgICAgICBpZiAoYzIgPT0gJ34nKSB7Ci0gICAgICAgICAgICAgICAgV1JJVEUxKCd+JykKLSAgICAgICAgICAgICAgICBORVhUKDIsIDEpCisgICAgICAgICAgICAgICAgT1VUQ0hBUignficpOworICAgICAgICAgICAgICAgIE5FWFRfSU4oMik7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIGlmIChjMiA9PSAneycgJiYgc3RhdGUtPmkgPT0gMCkKQEAgLTQwMSw3ICszOTAsNyBAQAogICAgICAgICAgICAgICAgIDsgLyogbGluZS1jb250aW51YXRpb24gKi8KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgIE5FWFQoMiwgMCk7CisgICAgICAgICAgICBORVhUX0lOKDIpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtNDA5LDE0ICszOTgsMTMgQEAKICAgICAgICAgICAgIHJldHVybiAxOwogCiAgICAgICAgIGlmIChzdGF0ZS0+aSA9PSAwKSB7IC8qIEFTQ0lJIG1vZGUgKi8KLSAgICAgICAgICAgIFdSSVRFMShjKQotICAgICAgICAgICAgTkVYVCgxLCAxKQorICAgICAgICAgICAgT1VUQ0hBUihjKTsKKyAgICAgICAgICAgIE5FWFRfSU4oMSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7IC8qIEdCIG1vZGUgKi8KICAgICAgICAgICAgIFJFUVVJUkVfSU5CVUYoMikKLSAgICAgICAgICAgIFJFUVVJUkVfT1VUQlVGKDEpCi0gICAgICAgICAgICBUUllNQVBfREVDKGdiMjMxMiwgKipvdXRidWYsIGMsIElOMikgewotICAgICAgICAgICAgICAgIE5FWFQoMiwgMSkKKyAgICAgICAgICAgIFRSWU1BUF9ERUMoZ2IyMzEyLCB3cml0ZXIsIGMsIElOQllURTIpIHsKKyAgICAgICAgICAgICAgICBORVhUX0lOKDIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJldHVybiAxOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19oay5jIGIvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19oay5jCmluZGV4IGQzYWQwNGIuLmZlNWY1OTcgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3NfaGsuYworKysgYi9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX2hrLmMKQEAgLTM4LDM1ICszOCwzOSBAQAogCiBFTkNPREVSKGJpZzVoa3NjcykKIHsKLSAgICB3aGlsZSAoaW5sZWZ0ID4gMCkgewotICAgICAgICB1Y3M0X3QgYyA9ICoqaW5idWY7CisgICAgd2hpbGUgKCppbnBvcyA8IGlubGVuKSB7CisgICAgICAgIFB5X1VDUzQgYyA9IElOQ0hBUjE7CiAgICAgICAgIERCQ0hBUiBjb2RlOwogICAgICAgICBQeV9zc2l6ZV90IGluc2l6ZTsKIAogICAgICAgICBpZiAoYyA8IDB4ODApIHsKICAgICAgICAgICAgIFJFUVVJUkVfT1VUQlVGKDEpCiAgICAgICAgICAgICAqKm91dGJ1ZiA9ICh1bnNpZ25lZCBjaGFyKWM7Ci0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBORVhUKDEsIDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBERUNPREVfU1VSUk9HQVRFKGMpCi0gICAgICAgIGluc2l6ZSA9IEdFVF9JTlNJWkUoYyk7Ci0KKyAgICAgICAgaW5zaXplID0gMTsKICAgICAgICAgUkVRVUlSRV9PVVRCVUYoMikKIAogICAgICAgICBpZiAoYyA8IDB4MTAwMDApIHsKICAgICAgICAgICAgIFRSWU1BUF9FTkMoYmlnNWhrc2NzX2JtcCwgY29kZSwgYykgewogICAgICAgICAgICAgICAgIGlmIChjb2RlID09IE1VTFRJQykgewotICAgICAgICAgICAgICAgICAgICBpZiAoaW5sZWZ0ID49IDIgJiYKKyAgICAgICAgICAgICAgICAgICAgUHlfVUNTNCBjMjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGlubGVuIC0gKmlucG9zID49IDIpCisgICAgICAgICAgICAgICAgICAgICAgICBjMiA9IElOQ0hBUjI7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGMyID0gMDsKKworICAgICAgICAgICAgICAgICAgICBpZiAoaW5sZW4gLSAqaW5wb3MgPj0gMiAmJgogICAgICAgICAgICAgICAgICAgICAgICAgKChjICYgMHhmZmRmKSA9PSAweDAwY2EpICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAoKCgqaW5idWYpWzFdICYgMHhmZmY3KSA9PSAweDAzMDQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAoKGMyICYgMHhmZmY3KSA9PSAweDAzMDQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlID0gYmlnNWhrc2NzX3BhaXJlbmNfdGFibGVbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjID4+IDQpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgqaW5idWYpWzFdID4+IDMpKSAmIDNdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYzIgPj4gMykpICYgM107CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnNpemUgPSAyOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGlubGVmdCA8IDIgJiYKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaW5sZW4gLSAqaW5wb3MgPCAyICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICEoZmxhZ3MgJiBNQkVOQ19GTFVTSCkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTUJFUlJfVE9PRkVXOwogICAgICAgICAgICAgICAgICAgICBlbHNlIHsKQEAgLTg5LDkgKzkzLDkgQEAKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIGluc2l6ZTsKIAotICAgICAgICBPVVQxKGNvZGUgPj4gOCkKLSAgICAgICAgT1VUMihjb2RlICYgMHhGRikKLSAgICAgICAgTkVYVChpbnNpemUsIDIpCisgICAgICAgIE9VVEJZVEUxKGNvZGUgPj4gOCkKKyAgICAgICAgT1VUQllURTIoY29kZSAmIDB4RkYpCisgICAgICAgIE5FWFQoaW5zaXplLCAyKTsKICAgICB9CiAKICAgICByZXR1cm4gMDsKQEAgLTEwMiwzMyArMTA2LDMxIEBACiBERUNPREVSKGJpZzVoa3NjcykKIHsKICAgICB3aGlsZSAoaW5sZWZ0ID4gMCkgewotICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSBJTjE7Ci0gICAgICAgIHVjczRfdCBkZWNvZGVkOwotCi0gICAgICAgIFJFUVVJUkVfT1VUQlVGKDEpCisgICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9IElOQllURTE7CisgICAgICAgIFB5X1VDUzQgZGVjb2RlZDsKIAogICAgICAgICBpZiAoYyA8IDB4ODApIHsKLSAgICAgICAgICAgIE9VVDEoYykKLSAgICAgICAgICAgIE5FWFQoMSwgMSkKKyAgICAgICAgICAgIE9VVENIQVIoYyk7CisgICAgICAgICAgICBORVhUX0lOKDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBSRVFVSVJFX0lOQlVGKDIpCiAKLSAgICAgICAgaWYgKDB4YzYgPiBjIHx8IGMgPiAweGM4IHx8IChjIDwgMHhjNyAmJiBJTjIgPCAweGExKSkgewotICAgICAgICAgICAgVFJZTUFQX0RFQyhiaWc1LCAqKm91dGJ1ZiwgYywgSU4yKSB7Ci0gICAgICAgICAgICAgICAgTkVYVCgyLCAxKQorICAgICAgICBpZiAoMHhjNiA+IGMgfHwgYyA+IDB4YzggfHwgKGMgPCAweGM3ICYmIElOQllURTIgPCAweGExKSkgeworICAgICAgICAgICAgVFJZTUFQX0RFQyhiaWc1LCB3cml0ZXIsIGMsIElOQllURTIpIHsKKyAgICAgICAgICAgICAgICBORVhUX0lOKDIpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgVFJZTUFQX0RFQyhiaWc1aGtzY3MsIGRlY29kZWQsIGMsIElOMikKKyAgICAgICAgVFJZTUFQX0RFQ19DSEFSKGJpZzVoa3NjcywgZGVjb2RlZCwgYywgSU5CWVRFMikKICAgICAgICAgewotICAgICAgICAgICAgaW50IHMgPSBCSDJTKGMsIElOMik7CisgICAgICAgICAgICBpbnQgcyA9IEJIMlMoYywgSU5CWVRFMik7CiAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpoaW50YmFzZTsKIAogICAgICAgICAgICAgYXNzZXJ0KDB4ODcgPD0gYyAmJiBjIDw9IDB4ZmUpOwotICAgICAgICAgICAgYXNzZXJ0KDB4NDAgPD0gSU4yICYmIElOMiA8PSAweGZlKTsKKyAgICAgICAgICAgIGFzc2VydCgweDQwIDw9IElOQllURTIgJiYgSU5CWVRFMiA8PSAweGZlKTsKIAogICAgICAgICAgICAgaWYgKEJIMlMoMHg4NywgMHg0MCkgPD0gcyAmJiBzIDw9IEJIMlMoMHhhMCwgMHhmZSkpIHsKICAgICAgICAgICAgICAgICAgICAgaGludGJhc2UgPSBiaWc1aGtzY3NfcGhpbnRfMDsKQEAgLTE0NiwyNSArMTQ4LDI1IEBACiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBNQkVSUl9JTlRFUk5BTDsKIAogICAgICAgICAgICAgaWYgKGhpbnRiYXNlW3MgPj4gM10gJiAoMSA8PCAocyAmIDcpKSkgewotICAgICAgICAgICAgICAgICAgICBXUklURVVDUzQoZGVjb2RlZCB8IDB4MjAwMDApCi0gICAgICAgICAgICAgICAgICAgIE5FWFRfSU4oMikKKyAgICAgICAgICAgICAgICAgICAgT1VUQ0hBUihkZWNvZGVkIHwgMHgyMDAwMCk7CisgICAgICAgICAgICAgICAgICAgIE5FWFRfSU4oMik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgT1VUMShkZWNvZGVkKQotICAgICAgICAgICAgICAgICAgICBORVhUKDIsIDEpCisgICAgICAgICAgICAgICAgICAgIE9VVENIQVIoZGVjb2RlZCk7CisgICAgICAgICAgICAgICAgICAgIE5FWFRfSU4oMik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIHN3aXRjaCAoKGMgPDwgOCkgfCBJTjIpIHsKLSAgICAgICAgY2FzZSAweDg4NjI6IFdSSVRFMigweDAwY2EsIDB4MDMwNCk7IGJyZWFrOwotICAgICAgICBjYXNlIDB4ODg2NDogV1JJVEUyKDB4MDBjYSwgMHgwMzBjKTsgYnJlYWs7Ci0gICAgICAgIGNhc2UgMHg4OGEzOiBXUklURTIoMHgwMGVhLCAweDAzMDQpOyBicmVhazsKLSAgICAgICAgY2FzZSAweDg4YTU6IFdSSVRFMigweDAwZWEsIDB4MDMwYyk7IGJyZWFrOworICAgICAgICBzd2l0Y2ggKChjIDw8IDgpIHwgSU5CWVRFMikgeworICAgICAgICBjYXNlIDB4ODg2MjogT1VUQ0hBUjIoMHgwMGNhLCAweDAzMDQpOyBicmVhazsKKyAgICAgICAgY2FzZSAweDg4NjQ6IE9VVENIQVIyKDB4MDBjYSwgMHgwMzBjKTsgYnJlYWs7CisgICAgICAgIGNhc2UgMHg4OGEzOiBPVVRDSEFSMigweDAwZWEsIDB4MDMwNCk7IGJyZWFrOworICAgICAgICBjYXNlIDB4ODhhNTogT1VUQ0hBUjIoMHgwMGVhLCAweDAzMGMpOyBicmVhazsKICAgICAgICAgZGVmYXVsdDogcmV0dXJuIDE7CiAgICAgICAgIH0KIAotICAgICAgICBORVhUKDIsIDIpIC8qIGFsbCBkZWNvZGVkIGNvZGVwb2ludHMgYXJlIHBhaXJzLCBhYm92ZS4gKi8KKyAgICAgICAgTkVYVF9JTigyKTsgLyogYWxsIGRlY29kZWQgY29kZXBvaW50cyBhcmUgcGFpcnMsIGFib3ZlLiAqLwogICAgIH0KIAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19pc28yMDIyLmMgYi9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX2lzbzIwMjIuYwppbmRleCBjYmMxNTQyLi5iYjYzODM1IDEwMDY0NAotLS0gYS9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX2lzbzIwMjIuYworKysgYi9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX2lzbzIwMjIuYwpAQCAtMTAyLDggKzEwMiw4IEBACiAvKi0qLSBpbnRlcm5hbCBkYXRhIHN0cnVjdHVyZXMgLSotKi8KIAogdHlwZWRlZiBpbnQgKCppc28yMDIyX2luaXRfZnVuYykodm9pZCk7Ci10eXBlZGVmIHVjczRfdCAoKmlzbzIwMjJfZGVjb2RlX2Z1bmMpKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEpOwotdHlwZWRlZiBEQkNIQVIgKCppc28yMDIyX2VuY29kZV9mdW5jKShjb25zdCB1Y3M0X3QgKmRhdGEsIFB5X3NzaXplX3QgKmxlbmd0aCk7Cit0eXBlZGVmIFB5X1VDUzQgKCppc28yMDIyX2RlY29kZV9mdW5jKShjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKTsKK3R5cGVkZWYgREJDSEFSICgqaXNvMjAyMl9lbmNvZGVfZnVuYykoY29uc3QgUHlfVUNTNCAqZGF0YSwgUHlfc3NpemVfdCAqbGVuZ3RoKTsKIAogc3RydWN0IGlzbzIwMjJfZGVzaWduYXRpb24gewogICAgIHVuc2lnbmVkIGNoYXIgbWFyazsKQEAgLTE0MSwxMyArMTQxLDEzIEBACiBFTkNPREVSX1JFU0VUKGlzbzIwMjIpCiB7CiAgICAgaWYgKFNUQVRFX0dFVEZMQUcoRl9TSElGVEVEKSkgewotICAgICAgICBXUklURTEoU0kpCi0gICAgICAgIE5FWFRfT1VUKDEpCisgICAgICAgIFdSSVRFQllURTEoU0kpCisgICAgICAgIE5FWFRfT1VUKDEpOwogICAgICAgICBTVEFURV9DTEVBUkZMQUcoRl9TSElGVEVEKQogICAgIH0KICAgICBpZiAoU1RBVEVfRzAgIT0gQ0hBUlNFVF9BU0NJSSkgewotICAgICAgICBXUklURTMoRVNDLCAnKCcsICdCJykKLSAgICAgICAgTkVYVF9PVVQoMykKKyAgICAgICAgV1JJVEVCWVRFMyhFU0MsICcoJywgJ0InKQorICAgICAgICBORVhUX09VVCgzKTsKICAgICAgICAgU1RBVEVfU0VURzAoQ0hBUlNFVF9BU0NJSSkKICAgICB9CiAgICAgcmV0dXJuIDA7CkBAIC0xNTUsMzAgKzE1NSwyOSBAQAogCiBFTkNPREVSKGlzbzIwMjIpCiB7Ci0gICAgd2hpbGUgKGlubGVmdCA+IDApIHsKKyAgICB3aGlsZSAoKmlucG9zIDwgaW5sZW4pIHsKICAgICAgICAgY29uc3Qgc3RydWN0IGlzbzIwMjJfZGVzaWduYXRpb24gKmRzZzsKICAgICAgICAgREJDSEFSIGVuY29kZWQ7Ci0gICAgICAgIHVjczRfdCBjID0gKippbmJ1ZjsKKyAgICAgICAgUHlfVUNTNCBjID0gSU5DSEFSMTsKICAgICAgICAgUHlfc3NpemVfdCBpbnNpemU7CiAKICAgICAgICAgaWYgKGMgPCAweDgwKSB7CiAgICAgICAgICAgICBpZiAoU1RBVEVfRzAgIT0gQ0hBUlNFVF9BU0NJSSkgewotICAgICAgICAgICAgICAgIFdSSVRFMyhFU0MsICcoJywgJ0InKQorICAgICAgICAgICAgICAgIFdSSVRFQllURTMoRVNDLCAnKCcsICdCJykKICAgICAgICAgICAgICAgICBTVEFURV9TRVRHMChDSEFSU0VUX0FTQ0lJKQotICAgICAgICAgICAgICAgIE5FWFRfT1VUKDMpCisgICAgICAgICAgICAgICAgTkVYVF9PVVQoMyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoU1RBVEVfR0VURkxBRyhGX1NISUZURUQpKSB7Ci0gICAgICAgICAgICAgICAgV1JJVEUxKFNJKQorICAgICAgICAgICAgICAgIFdSSVRFQllURTEoU0kpCiAgICAgICAgICAgICAgICAgU1RBVEVfQ0xFQVJGTEFHKEZfU0hJRlRFRCkKLSAgICAgICAgICAgICAgICBORVhUX09VVCgxKQorICAgICAgICAgICAgICAgIE5FWFRfT1VUKDEpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgV1JJVEUxKCh1bnNpZ25lZCBjaGFyKWMpCi0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBXUklURUJZVEUxKCh1bnNpZ25lZCBjaGFyKWMpCisgICAgICAgICAgICBORVhUKDEsIDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBERUNPREVfU1VSUk9HQVRFKGMpCi0gICAgICAgIGluc2l6ZSA9IEdFVF9JTlNJWkUoYyk7CisgICAgICAgIGluc2l6ZSA9IDE7CiAKICAgICAgICAgZW5jb2RlZCA9IE1BUF9VTk1BUFBBQkxFOwogICAgICAgICBmb3IgKGRzZyA9IENPTkZJR19ERVNJR05BVElPTlM7IGRzZy0+bWFyazsgZHNnKyspIHsKQEAgLTE4NywyNCArMTg2LDE0IEBACiAgICAgICAgICAgICBpZiAoZW5jb2RlZCA9PSBNQVBfTVVMVElQTEVfQVZBSUwpIHsKICAgICAgICAgICAgICAgICAvKiB0aGlzIGltcGxlbWVudGF0aW9uIHdvbid0IHdvcmsgZm9yIHBhaXIKICAgICAgICAgICAgICAgICAgKiBvZiBub24tYm1wIGNoYXJhY3RlcnMuICovCi0gICAgICAgICAgICAgICAgaWYgKGlubGVmdCA8IDIpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5sZW4gLSAqaW5wb3MgPCAyKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghKGZsYWdzICYgTUJFTkNfRkxVU0gpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1CRVJSX1RPT0ZFVzsKICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gLTE7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gMjsKLSNpZiBQeV9VTklDT0RFX1NJWkUgPT0gMgotICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gMikgewotICAgICAgICAgICAgICAgICAgICB1Y3M0X3QgdTRpblsyXTsKLSAgICAgICAgICAgICAgICAgICAgdTRpblswXSA9ICh1Y3M0X3QpSU4xOwotICAgICAgICAgICAgICAgICAgICB1NGluWzFdID0gKHVjczRfdClJTjI7Ci0gICAgICAgICAgICAgICAgICAgIGVuY29kZWQgPSBkc2ctPmVuY29kZXIodTRpbiwgJmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGVuY29kZWQgPSBkc2ctPmVuY29kZXIoJmMsICZsZW5ndGgpOwotI2Vsc2UKICAgICAgICAgICAgICAgICBlbmNvZGVkID0gZHNnLT5lbmNvZGVyKCZjLCAmbGVuZ3RoKTsKLSNlbmRpZgogICAgICAgICAgICAgICAgIGlmIChlbmNvZGVkICE9IE1BUF9VTk1BUFBBQkxFKSB7CiAgICAgICAgICAgICAgICAgICAgIGluc2l6ZSA9IGxlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yMjEsNDcgKzIxMCw0NyBAQAogICAgICAgICBzd2l0Y2ggKGRzZy0+cGxhbmUpIHsKICAgICAgICAgY2FzZSAwOiAvKiBHMCAqLwogICAgICAgICAgICAgaWYgKFNUQVRFX0dFVEZMQUcoRl9TSElGVEVEKSkgewotICAgICAgICAgICAgICAgIFdSSVRFMShTSSkKKyAgICAgICAgICAgICAgICBXUklURUJZVEUxKFNJKQogICAgICAgICAgICAgICAgIFNUQVRFX0NMRUFSRkxBRyhGX1NISUZURUQpCi0gICAgICAgICAgICAgICAgTkVYVF9PVVQoMSkKKyAgICAgICAgICAgICAgICBORVhUX09VVCgxKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChTVEFURV9HMCAhPSBkc2ctPm1hcmspIHsKICAgICAgICAgICAgICAgICBpZiAoZHNnLT53aWR0aCA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgICAgIFdSSVRFMyhFU0MsICcoJywgRVNDTUFSSyhkc2ctPm1hcmspKQorICAgICAgICAgICAgICAgICAgICBXUklURUJZVEUzKEVTQywgJygnLCBFU0NNQVJLKGRzZy0+bWFyaykpCiAgICAgICAgICAgICAgICAgICAgIFNUQVRFX1NFVEcwKGRzZy0+bWFyaykKLSAgICAgICAgICAgICAgICAgICAgTkVYVF9PVVQoMykKKyAgICAgICAgICAgICAgICAgICAgTkVYVF9PVVQoMyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRzZy0+bWFyayA9PSBDSEFSU0VUX0pJU1gwMjA4KSB7Ci0gICAgICAgICAgICAgICAgICAgIFdSSVRFMyhFU0MsICckJywgRVNDTUFSSyhkc2ctPm1hcmspKQorICAgICAgICAgICAgICAgICAgICBXUklURUJZVEUzKEVTQywgJyQnLCBFU0NNQVJLKGRzZy0+bWFyaykpCiAgICAgICAgICAgICAgICAgICAgIFNUQVRFX1NFVEcwKGRzZy0+bWFyaykKLSAgICAgICAgICAgICAgICAgICAgTkVYVF9PVVQoMykKKyAgICAgICAgICAgICAgICAgICAgTkVYVF9PVVQoMyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBXUklURTQoRVNDLCAnJCcsICcoJywKKyAgICAgICAgICAgICAgICAgICAgV1JJVEVCWVRFNChFU0MsICckJywgJygnLAogICAgICAgICAgICAgICAgICAgICAgICAgRVNDTUFSSyhkc2ctPm1hcmspKQogICAgICAgICAgICAgICAgICAgICBTVEFURV9TRVRHMChkc2ctPm1hcmspCi0gICAgICAgICAgICAgICAgICAgIE5FWFRfT1VUKDQpCisgICAgICAgICAgICAgICAgICAgIE5FWFRfT1VUKDQpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIDE6IC8qIEcxICovCiAgICAgICAgICAgICBpZiAoU1RBVEVfRzEgIT0gZHNnLT5tYXJrKSB7CiAgICAgICAgICAgICAgICAgaWYgKGRzZy0+d2lkdGggPT0gMSkgewotICAgICAgICAgICAgICAgICAgICBXUklURTMoRVNDLCAnKScsIEVTQ01BUksoZHNnLT5tYXJrKSkKKyAgICAgICAgICAgICAgICAgICAgV1JJVEVCWVRFMyhFU0MsICcpJywgRVNDTUFSSyhkc2ctPm1hcmspKQogICAgICAgICAgICAgICAgICAgICBTVEFURV9TRVRHMShkc2ctPm1hcmspCi0gICAgICAgICAgICAgICAgICAgIE5FWFRfT1VUKDMpCisgICAgICAgICAgICAgICAgICAgIE5FWFRfT1VUKDMpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgV1JJVEU0KEVTQywgJyQnLCAnKScsCisgICAgICAgICAgICAgICAgICAgIFdSSVRFQllURTQoRVNDLCAnJCcsICcpJywKICAgICAgICAgICAgICAgICAgICAgICAgIEVTQ01BUksoZHNnLT5tYXJrKSkKICAgICAgICAgICAgICAgICAgICAgU1RBVEVfU0VURzEoZHNnLT5tYXJrKQotICAgICAgICAgICAgICAgICAgICBORVhUX09VVCg0KQorICAgICAgICAgICAgICAgICAgICBORVhUX09VVCg0KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIVNUQVRFX0dFVEZMQUcoRl9TSElGVEVEKSkgewotICAgICAgICAgICAgICAgIFdSSVRFMShTTykKKyAgICAgICAgICAgICAgICBXUklURUJZVEUxKFNPKQogICAgICAgICAgICAgICAgIFNUQVRFX1NFVEZMQUcoRl9TSElGVEVEKQotICAgICAgICAgICAgICAgIE5FWFRfT1VUKDEpCisgICAgICAgICAgICAgICAgTkVYVF9PVVQoMSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDogLyogRzIgYW5kIEczIGlzIG5vdCBzdXBwb3J0ZWQ6IG5vIGVuY29kaW5nIGluCkBAIC0yNzAsMTQgKzI1OSwxNCBAQAogICAgICAgICB9CiAKICAgICAgICAgaWYgKGRzZy0+d2lkdGggPT0gMSkgewotICAgICAgICAgICAgV1JJVEUxKCh1bnNpZ25lZCBjaGFyKWVuY29kZWQpCi0gICAgICAgICAgICBORVhUX09VVCgxKQorICAgICAgICAgICAgV1JJVEVCWVRFMSgodW5zaWduZWQgY2hhcillbmNvZGVkKQorICAgICAgICAgICAgTkVYVF9PVVQoMSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBXUklURTIoZW5jb2RlZCA+PiA4LCBlbmNvZGVkICYgMHhmZikKLSAgICAgICAgICAgIE5FWFRfT1VUKDIpCisgICAgICAgICAgICBXUklURUJZVEUyKGVuY29kZWQgPj4gOCwgZW5jb2RlZCAmIDB4ZmYpCisgICAgICAgICAgICBORVhUX09VVCgyKTsKICAgICAgICAgfQotICAgICAgICBORVhUX0lOKGluc2l6ZSkKKyAgICAgICAgTkVYVF9JTkNIQVIoaW5zaXplKTsKICAgICB9CiAKICAgICByZXR1cm4gMDsKQEAgLTMyMywyNiArMzEyLDI2IEBACiAKICAgICBzd2l0Y2ggKGVzY2xlbikgewogICAgIGNhc2UgMzoKLSAgICAgICAgaWYgKElOMiA9PSAnJCcpIHsKLSAgICAgICAgICAgIGNoYXJzZXQgPSBJTjMgfCBDSEFSU0VUX0RCQ1M7CisgICAgICAgIGlmIChJTkJZVEUyID09ICckJykgeworICAgICAgICAgICAgY2hhcnNldCA9IElOQllURTMgfCBDSEFSU0VUX0RCQ1M7CiAgICAgICAgICAgICBkZXNpZ25hdGlvbiA9IDA7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBjaGFyc2V0ID0gSU4zOwotICAgICAgICAgICAgaWYgKElOMiA9PSAnKCcpIGRlc2lnbmF0aW9uID0gMDsKLSAgICAgICAgICAgIGVsc2UgaWYgKElOMiA9PSAnKScpIGRlc2lnbmF0aW9uID0gMTsKLSAgICAgICAgICAgIGVsc2UgaWYgKENPTkZJR19JU1NFVChVU0VfRzIpICYmIElOMiA9PSAnLicpCisgICAgICAgICAgICBjaGFyc2V0ID0gSU5CWVRFMzsKKyAgICAgICAgICAgIGlmIChJTkJZVEUyID09ICcoJykgZGVzaWduYXRpb24gPSAwOworICAgICAgICAgICAgZWxzZSBpZiAoSU5CWVRFMiA9PSAnKScpIGRlc2lnbmF0aW9uID0gMTsKKyAgICAgICAgICAgIGVsc2UgaWYgKENPTkZJR19JU1NFVChVU0VfRzIpICYmIElOQllURTIgPT0gJy4nKQogICAgICAgICAgICAgICAgIGRlc2lnbmF0aW9uID0gMjsKICAgICAgICAgICAgIGVsc2UgcmV0dXJuIDM7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSA0OgotICAgICAgICBpZiAoSU4yICE9ICckJykKKyAgICAgICAgaWYgKElOQllURTIgIT0gJyQnKQogICAgICAgICAgICAgcmV0dXJuIDQ7CiAKLSAgICAgICAgY2hhcnNldCA9IElONCB8IENIQVJTRVRfREJDUzsKLSAgICAgICAgaWYgKElOMyA9PSAnKCcpIGRlc2lnbmF0aW9uID0gMDsKLSAgICAgICAgZWxzZSBpZiAoSU4zID09ICcpJykgZGVzaWduYXRpb24gPSAxOworICAgICAgICBjaGFyc2V0ID0gSU5CWVRFNCB8IENIQVJTRVRfREJDUzsKKyAgICAgICAgaWYgKElOQllURTMgPT0gJygnKSBkZXNpZ25hdGlvbiA9IDA7CisgICAgICAgIGVsc2UgaWYgKElOQllURTMgPT0gJyknKSBkZXNpZ25hdGlvbiA9IDE7CiAgICAgICAgIGVsc2UgcmV0dXJuIDQ7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgNjogLyogZGVzaWduYXRpb24gd2l0aCBwcmVmaXggKi8KQEAgLTM3Niw0NSArMzY1LDQzIEBACiAgICAgcmV0dXJuIDA7CiB9CiAKLSNkZWZpbmUgSVNPODg1OV83X0RFQ09ERShjLCBhc3NpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBpZiAoKGMpIDwgMHhhMCkgKGFzc2kpID0gKGMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBlbHNlIGlmICgoYykgPCAweGMwICYmICgweDI4OGYzYmM5TCAmICgxTCA8PCAoKGMpLTB4YTApKSkpICAgICAgICAgIFwKLSAgICAgICAgKGFzc2kpID0gKGMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBlbHNlIGlmICgoYykgPj0gMHhiNCAmJiAoYykgPD0gMHhmZSAmJiAoKGMpID49IDB4ZDQgfHwgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAoMHhiZmZmZmQ3N0wgJiAoMUwgPDwgKChjKS0weGI0KSkpKSkgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgKGFzc2kpID0gMHgwMmQwICsgKGMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBlbHNlIGlmICgoYykgPT0gMHhhMSkgKGFzc2kpID0gMHgyMDE4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBlbHNlIGlmICgoYykgPT0gMHhhMikgKGFzc2kpID0gMHgyMDE5OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBlbHNlIGlmICgoYykgPT0gMHhhZikgKGFzc2kpID0gMHgyMDE1OworI2RlZmluZSBJU084ODU5XzdfREVDT0RFKGMsIHdyaXRlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICgoYykgPCAweGEwKSBPVVRDSEFSKGMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBlbHNlIGlmICgoYykgPCAweGMwICYmICgweDI4OGYzYmM5TCAmICgxTCA8PCAoKGMpLTB4YTApKSkpICAgIFwKKyAgICAgICAgT1VUQ0hBUihjKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZWxzZSBpZiAoKGMpID49IDB4YjQgJiYgKGMpIDw9IDB4ZmUgJiYgKChjKSA+PSAweGQ0IHx8ICAgICAgICBcCisgICAgICAgICAgICAgKDB4YmZmZmZkNzdMICYgKDFMIDw8ICgoYyktMHhiNCkpKSkpICAgICAgICAgICAgICAgICBcCisgICAgICAgIE9VVENIQVIoMHgwMmQwICsgKGMpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGVsc2UgaWYgKChjKSA9PSAweGExKSBPVVRDSEFSKDB4MjAxOCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBlbHNlIGlmICgoYykgPT0gMHhhMikgT1VUQ0hBUigweDIwMTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZWxzZSBpZiAoKGMpID09IDB4YWYpIE9VVENIQVIoMHgyMDE1KTsKIAogc3RhdGljIFB5X3NzaXplX3QKIGlzbzIwMjJwcm9jZXNzZzIoY29uc3Qgdm9pZCAqY29uZmlnLCBNdWx0aWJ5dGVDb2RlY19TdGF0ZSAqc3RhdGUsCiAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKippbmJ1ZiwgUHlfc3NpemVfdCAqaW5sZWZ0LAotICAgICAgICAgICAgICAgICBQeV9VTklDT0RFICoqb3V0YnVmLCBQeV9zc2l6ZV90ICpvdXRsZWZ0KQorICAgICAgICAgICAgICAgICBfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIpCiB7CiAgICAgLyogbm90IHdyaXR0ZW4gdG8gdXNlIGVuY29kZXIsIGRlY29kZXIgZnVuY3Rpb25zIGJlY2F1c2Ugb25seSBmZXcKICAgICAgKiBlbmNvZGluZ3MgdXNlIEcyIGRlc2lnbmF0aW9ucyBpbiBDSktDb2RlY3MgKi8KICAgICBpZiAoU1RBVEVfRzIgPT0gQ0hBUlNFVF9JU084ODU5XzEpIHsKLSAgICAgICAgaWYgKElOMyA8IDB4ODApCi0gICAgICAgICAgICBPVVQxKElOMyArIDB4ODApCisgICAgICAgIGlmIChJTkJZVEUzIDwgMHg4MCkKKyAgICAgICAgICAgIE9VVENIQVIoSU5CWVRFMyArIDB4ODApOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gMzsKICAgICB9CiAgICAgZWxzZSBpZiAoU1RBVEVfRzIgPT0gQ0hBUlNFVF9JU084ODU5XzcpIHsKLSAgICAgICAgSVNPODg1OV83X0RFQ09ERShJTjMgXiAweDgwLCAqKm91dGJ1ZikKKyAgICAgICAgSVNPODg1OV83X0RFQ09ERShJTkJZVEUzIF4gMHg4MCwgd3JpdGVyKQogICAgICAgICBlbHNlIHJldHVybiAzOwogICAgIH0KICAgICBlbHNlIGlmIChTVEFURV9HMiA9PSBDSEFSU0VUX0FTQ0lJKSB7Ci0gICAgICAgIGlmIChJTjMgJiAweDgwKSByZXR1cm4gMzsKLSAgICAgICAgZWxzZSAqKm91dGJ1ZiA9IElOMzsKKyAgICAgICAgaWYgKElOQllURTMgJiAweDgwKSByZXR1cm4gMzsKKyAgICAgICAgZWxzZSBPVVRDSEFSKElOQllURTMpOwogICAgIH0KICAgICBlbHNlCiAgICAgICAgIHJldHVybiBNQkVSUl9JTlRFUk5BTDsKIAogICAgICgqaW5idWYpICs9IDM7CiAgICAgKmlubGVmdCAtPSAzOwotICAgICgqb3V0YnVmKSArPSAxOwotICAgICpvdXRsZWZ0IC09IDE7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTQyMywxNCArNDEwLDE0IEBACiAgICAgY29uc3Qgc3RydWN0IGlzbzIwMjJfZGVzaWduYXRpb24gKmRzZ2NhY2hlID0gTlVMTDsKIAogICAgIHdoaWxlIChpbmxlZnQgPiAwKSB7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9IElOMTsKKyAgICAgICAgdW5zaWduZWQgY2hhciBjID0gSU5CWVRFMTsKICAgICAgICAgUHlfc3NpemVfdCBlcnI7CiAKICAgICAgICAgaWYgKFNUQVRFX0dFVEZMQUcoRl9FU0NUSFJPVUdIT1VUKSkgewogICAgICAgICAgICAgLyogRVNDIHRocm91Z2hvdXQgbW9kZToKICAgICAgICAgICAgICAqIGZvciBub24taXNvMjAyMiBlc2NhcGUgc2VxdWVuY2VzICovCi0gICAgICAgICAgICBXUklURTEoYykgLyogYXNzdW1lIGFzIElTTy04ODU5LTEgKi8KLSAgICAgICAgICAgIE5FWFQoMSwgMSkKKyAgICAgICAgICAgIE9VVENIQVIoYyk7IC8qIGFzc3VtZSBhcyBJU08tODg1OS0xICovCisgICAgICAgICAgICBORVhUX0lOKDEpOwogICAgICAgICAgICAgaWYgKElTX0VTQ0VORChjKSkgewogICAgICAgICAgICAgICAgIFNUQVRFX0NMRUFSRkxBRyhGX0VTQ1RIUk9VR0hPVVQpCiAgICAgICAgICAgICB9CkBAIC00NDAsNDEgKzQyNyw0MSBAQAogICAgICAgICBzd2l0Y2ggKGMpIHsKICAgICAgICAgY2FzZSBFU0M6CiAgICAgICAgICAgICBSRVFVSVJFX0lOQlVGKDIpCi0gICAgICAgICAgICBpZiAoSVNfSVNPMjAyMkVTQyhJTjIpKSB7CisgICAgICAgICAgICBpZiAoSVNfSVNPMjAyMkVTQyhJTkJZVEUyKSkgewogICAgICAgICAgICAgICAgIGVyciA9IGlzbzIwMjJwcm9jZXNzZXNjKGNvbmZpZywgc3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5idWYsICZpbmxlZnQpOwogICAgICAgICAgICAgICAgIGlmIChlcnIgIT0gMCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKENPTkZJR19JU1NFVChVU0VfRzIpICYmIElOMiA9PSAnTicpIHsvKiBTUzIgKi8KKyAgICAgICAgICAgIGVsc2UgaWYgKENPTkZJR19JU1NFVChVU0VfRzIpICYmIElOQllURTIgPT0gJ04nKSB7LyogU1MyICovCiAgICAgICAgICAgICAgICAgUkVRVUlSRV9JTkJVRigzKQogICAgICAgICAgICAgICAgIGVyciA9IGlzbzIwMjJwcm9jZXNzZzIoY29uZmlnLCBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgaW5idWYsICZpbmxlZnQsIG91dGJ1ZiwgJm91dGxlZnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5idWYsICZpbmxlZnQsIHdyaXRlcik7CiAgICAgICAgICAgICAgICAgaWYgKGVyciAhPSAwKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgV1JJVEUxKEVTQykKKyAgICAgICAgICAgICAgICBPVVRDSEFSKEVTQyk7CiAgICAgICAgICAgICAgICAgU1RBVEVfU0VURkxBRyhGX0VTQ1RIUk9VR0hPVVQpCi0gICAgICAgICAgICAgICAgTkVYVCgxLCAxKQorICAgICAgICAgICAgICAgIE5FWFRfSU4oMSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTSToKICAgICAgICAgICAgIGlmIChDT05GSUdfSVNTRVQoTk9fU0hJRlQpKQogICAgICAgICAgICAgICAgIGdvdG8gYnlwYXNzOwogICAgICAgICAgICAgU1RBVEVfQ0xFQVJGTEFHKEZfU0hJRlRFRCkKLSAgICAgICAgICAgIE5FWFRfSU4oMSkKKyAgICAgICAgICAgIE5FWFRfSU4oMSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTTzoKICAgICAgICAgICAgIGlmIChDT05GSUdfSVNTRVQoTk9fU0hJRlQpKQogICAgICAgICAgICAgICAgIGdvdG8gYnlwYXNzOwogICAgICAgICAgICAgU1RBVEVfU0VURkxBRyhGX1NISUZURUQpCi0gICAgICAgICAgICBORVhUX0lOKDEpCisgICAgICAgICAgICBORVhUX0lOKDEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTEY6CiAgICAgICAgICAgICBTVEFURV9DTEVBUkZMQUcoRl9TSElGVEVEKQotICAgICAgICAgICAgV1JJVEUxKExGKQotICAgICAgICAgICAgTkVYVCgxLCAxKQorICAgICAgICAgICAgT1VUQ0hBUihMRik7CisgICAgICAgICAgICBORVhUX0lOKDEpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBpZiAoYyA8IDB4MjApIC8qIEMwICovCkBAIC00ODQsNyArNDcxLDcgQEAKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBpc28yMDIyX2Rlc2lnbmF0aW9uICpkc2c7CiAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjaGFyc2V0OwotICAgICAgICAgICAgICAgIHVjczRfdCBkZWNvZGVkOworICAgICAgICAgICAgICAgIFB5X1VDUzQgZGVjb2RlZDsKIAogICAgICAgICAgICAgICAgIGlmIChTVEFURV9HRVRGTEFHKEZfU0hJRlRFRCkpCiAgICAgICAgICAgICAgICAgICAgIGNoYXJzZXQgPSBTVEFURV9HMTsKQEAgLTQ5Miw4ICs0NzksOCBAQAogICAgICAgICAgICAgICAgICAgICBjaGFyc2V0ID0gU1RBVEVfRzA7CiAKICAgICAgICAgICAgICAgICBpZiAoY2hhcnNldCA9PSBDSEFSU0VUX0FTQ0lJKSB7Ci1ieXBhc3M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1JJVEUxKGMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVCgxLCAxKQorYnlwYXNzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9VVENIQVIoYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkVYVF9JTigxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogCkBAIC01MTgsMTcgKzUwNSwxNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkc2ctPndpZHRoOwogCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZWNvZGVkIDwgMHgxMDAwMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdSSVRFMShkZWNvZGVkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5FWFRfT1VUKDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1VUQ0hBUihkZWNvZGVkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChkZWNvZGVkIDwgMHgzMDAwMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdSSVRFVUNTNChkZWNvZGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9VVENIQVIoZGVjb2RlZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7IC8qIEpJUyBYIDAyMTMgcGFpcnMgKi8KLSAgICAgICAgICAgICAgICAgICAgV1JJVEUyKGRlY29kZWQgPj4gMTYsIGRlY29kZWQgJiAweGZmZmYpCi0gICAgICAgICAgICAgICAgICAgIE5FWFRfT1VUKDIpCisgICAgICAgICAgICAgICAgICAgIE9VVENIQVIyKGRlY29kZWQgPj4gMTYsIGRlY29kZWQgJiAweGZmZmYpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBORVhUX0lOKGRzZy0+d2lkdGgpCisgICAgICAgICAgICAgICAgTkVYVF9JTihkc2ctPndpZHRoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC01NzcsMTggKzU2MiwxOCBAQAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgdWNzNF90CitzdGF0aWMgUHlfVUNTNAoga3N4MTAwMV9kZWNvZGVyKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEpCiB7Ci0gICAgdWNzNF90IHU7Ci0gICAgVFJZTUFQX0RFQyhrc3gxMDAxLCB1LCBkYXRhWzBdLCBkYXRhWzFdKQorICAgIFB5X1VDUzQgdTsKKyAgICBUUllNQVBfREVDX0NIQVIoa3N4MTAwMSwgdSwgZGF0YVswXSwgZGF0YVsxXSkKICAgICAgICAgcmV0dXJuIHU7CiAgICAgZWxzZQogICAgICAgICByZXR1cm4gTUFQX1VOTUFQUEFCTEU7CiB9CiAKIHN0YXRpYyBEQkNIQVIKLWtzeDEwMDFfZW5jb2Rlcihjb25zdCB1Y3M0X3QgKmRhdGEsIFB5X3NzaXplX3QgKmxlbmd0aCkKK2tzeDEwMDFfZW5jb2Rlcihjb25zdCBQeV9VQ1M0ICpkYXRhLCBQeV9zc2l6ZV90ICpsZW5ndGgpCiB7CiAgICAgREJDSEFSIGNvZGVkOwogICAgIGFzc2VydCgqbGVuZ3RoID09IDEpOwpAQCAtNjEzLDIwICs1OTgsMjAgQEAKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIHVjczRfdAorc3RhdGljIFB5X1VDUzQKIGppc3gwMjA4X2RlY29kZXIoY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSkKIHsKLSAgICB1Y3M0X3QgdTsKKyAgICBQeV9VQ1M0IHU7CiAgICAgaWYgKGRhdGFbMF0gPT0gMHgyMSAmJiBkYXRhWzFdID09IDB4NDApIC8qIEYvVyBSRVZFUlNFIFNPTElEVVMgKi8KICAgICAgICAgcmV0dXJuIDB4ZmYzYzsKLSAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMDgsIHUsIGRhdGFbMF0sIGRhdGFbMV0pCisgICAgZWxzZSBUUllNQVBfREVDX0NIQVIoamlzeDAyMDgsIHUsIGRhdGFbMF0sIGRhdGFbMV0pCiAgICAgICAgIHJldHVybiB1OwogICAgIGVsc2UKICAgICAgICAgcmV0dXJuIE1BUF9VTk1BUFBBQkxFOwogfQogCiBzdGF0aWMgREJDSEFSCi1qaXN4MDIwOF9lbmNvZGVyKGNvbnN0IHVjczRfdCAqZGF0YSwgUHlfc3NpemVfdCAqbGVuZ3RoKQoramlzeDAyMDhfZW5jb2Rlcihjb25zdCBQeV9VQ1M0ICpkYXRhLCBQeV9zc2l6ZV90ICpsZW5ndGgpCiB7CiAgICAgREJDSEFSIGNvZGVkOwogICAgIGFzc2VydCgqbGVuZ3RoID09IDEpOwpAQCAtNjU0LDE4ICs2MzksMTggQEAKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIHVjczRfdAorc3RhdGljIFB5X1VDUzQKIGppc3gwMjEyX2RlY29kZXIoY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSkKIHsKLSAgICB1Y3M0X3QgdTsKLSAgICBUUllNQVBfREVDKGppc3gwMjEyLCB1LCBkYXRhWzBdLCBkYXRhWzFdKQorICAgIFB5X1VDUzQgdTsKKyAgICBUUllNQVBfREVDX0NIQVIoamlzeDAyMTIsIHUsIGRhdGFbMF0sIGRhdGFbMV0pCiAgICAgICAgIHJldHVybiB1OwogICAgIGVsc2UKICAgICAgICAgcmV0dXJuIE1BUF9VTk1BUFBBQkxFOwogfQogCiBzdGF0aWMgREJDSEFSCi1qaXN4MDIxMl9lbmNvZGVyKGNvbnN0IHVjczRfdCAqZGF0YSwgUHlfc3NpemVfdCAqbGVuZ3RoKQoramlzeDAyMTJfZW5jb2Rlcihjb25zdCBQeV9VQ1M0ICpkYXRhLCBQeV9zc2l6ZV90ICpsZW5ndGgpCiB7CiAgICAgREJDSEFSIGNvZGVkOwogICAgIGFzc2VydCgqbGVuZ3RoID09IDEpOwpAQCAtNzA1LDMwICs2OTAsMzAgQEAKIH0KIAogI2RlZmluZSBjb25maWcgKCh2b2lkICopMjAwMCkKLXN0YXRpYyB1Y3M0X3QKK3N0YXRpYyBQeV9VQ1M0CiBqaXN4MDIxM18yMDAwXzFfZGVjb2Rlcihjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKQogewotICAgIHVjczRfdCB1OworICAgIFB5X1VDUzQgdTsKICAgICBFTVVMQVRFX0pJU1gwMjEzXzIwMDBfREVDT0RFX1BMQU5FMSh1LCBkYXRhWzBdLCBkYXRhWzFdKQogICAgIGVsc2UgaWYgKGRhdGFbMF0gPT0gMHgyMSAmJiBkYXRhWzFdID09IDB4NDApIC8qIEYvVyBSRVZFUlNFIFNPTElEVVMgKi8KICAgICAgICAgcmV0dXJuIDB4ZmYzYzsKLSAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMDgsIHUsIGRhdGFbMF0sIGRhdGFbMV0pOwotICAgIGVsc2UgVFJZTUFQX0RFQyhqaXN4MDIxM18xX2JtcCwgdSwgZGF0YVswXSwgZGF0YVsxXSk7Ci0gICAgZWxzZSBUUllNQVBfREVDKGppc3gwMjEzXzFfZW1wLCB1LCBkYXRhWzBdLCBkYXRhWzFdKQorICAgIGVsc2UgVFJZTUFQX0RFQ19DSEFSKGppc3gwMjA4LCB1LCBkYXRhWzBdLCBkYXRhWzFdKTsKKyAgICBlbHNlIFRSWU1BUF9ERUNfQ0hBUihqaXN4MDIxM18xX2JtcCwgdSwgZGF0YVswXSwgZGF0YVsxXSk7CisgICAgZWxzZSBUUllNQVBfREVDX0NIQVIoamlzeDAyMTNfMV9lbXAsIHUsIGRhdGFbMF0sIGRhdGFbMV0pCiAgICAgICAgIHUgfD0gMHgyMDAwMDsKLSAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMTNfcGFpciwgdSwgZGF0YVswXSwgZGF0YVsxXSk7CisgICAgZWxzZSBUUllNQVBfREVDX0NIQVIoamlzeDAyMTNfcGFpciwgdSwgZGF0YVswXSwgZGF0YVsxXSk7CiAgICAgZWxzZQogICAgICAgICByZXR1cm4gTUFQX1VOTUFQUEFCTEU7CiAgICAgcmV0dXJuIHU7CiB9CiAKLXN0YXRpYyB1Y3M0X3QKK3N0YXRpYyBQeV9VQ1M0CiBqaXN4MDIxM18yMDAwXzJfZGVjb2Rlcihjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKQogewotICAgIHVjczRfdCB1OwotICAgIEVNVUxBVEVfSklTWDAyMTNfMjAwMF9ERUNPREVfUExBTkUyKHUsIGRhdGFbMF0sIGRhdGFbMV0pCi0gICAgVFJZTUFQX0RFQyhqaXN4MDIxM18yX2JtcCwgdSwgZGF0YVswXSwgZGF0YVsxXSk7Ci0gICAgZWxzZSBUUllNQVBfREVDKGppc3gwMjEzXzJfZW1wLCB1LCBkYXRhWzBdLCBkYXRhWzFdKQorICAgIFB5X1VDUzQgdTsKKyAgICBFTVVMQVRFX0pJU1gwMjEzXzIwMDBfREVDT0RFX1BMQU5FMl9DSEFSKHUsIGRhdGFbMF0sIGRhdGFbMV0pCisgICAgVFJZTUFQX0RFQ19DSEFSKGppc3gwMjEzXzJfYm1wLCB1LCBkYXRhWzBdLCBkYXRhWzFdKTsKKyAgICBlbHNlIFRSWU1BUF9ERUNfQ0hBUihqaXN4MDIxM18yX2VtcCwgdSwgZGF0YVswXSwgZGF0YVsxXSkKICAgICAgICAgdSB8PSAweDIwMDAwOwogICAgIGVsc2UKICAgICAgICAgcmV0dXJuIE1BUF9VTk1BUFBBQkxFOwpAQCAtNzM2LDI4ICs3MjEsMjggQEAKIH0KICN1bmRlZiBjb25maWcKIAotc3RhdGljIHVjczRfdAorc3RhdGljIFB5X1VDUzQKIGppc3gwMjEzXzIwMDRfMV9kZWNvZGVyKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEpCiB7Ci0gICAgdWNzNF90IHU7CisgICAgUHlfVUNTNCB1OwogICAgIGlmIChkYXRhWzBdID09IDB4MjEgJiYgZGF0YVsxXSA9PSAweDQwKSAvKiBGL1cgUkVWRVJTRSBTT0xJRFVTICovCiAgICAgICAgIHJldHVybiAweGZmM2M7Ci0gICAgZWxzZSBUUllNQVBfREVDKGppc3gwMjA4LCB1LCBkYXRhWzBdLCBkYXRhWzFdKTsKLSAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMTNfMV9ibXAsIHUsIGRhdGFbMF0sIGRhdGFbMV0pOwotICAgIGVsc2UgVFJZTUFQX0RFQyhqaXN4MDIxM18xX2VtcCwgdSwgZGF0YVswXSwgZGF0YVsxXSkKKyAgICBlbHNlIFRSWU1BUF9ERUNfQ0hBUihqaXN4MDIwOCwgdSwgZGF0YVswXSwgZGF0YVsxXSk7CisgICAgZWxzZSBUUllNQVBfREVDX0NIQVIoamlzeDAyMTNfMV9ibXAsIHUsIGRhdGFbMF0sIGRhdGFbMV0pOworICAgIGVsc2UgVFJZTUFQX0RFQ19DSEFSKGppc3gwMjEzXzFfZW1wLCB1LCBkYXRhWzBdLCBkYXRhWzFdKQogICAgICAgICB1IHw9IDB4MjAwMDA7Ci0gICAgZWxzZSBUUllNQVBfREVDKGppc3gwMjEzX3BhaXIsIHUsIGRhdGFbMF0sIGRhdGFbMV0pOworICAgIGVsc2UgVFJZTUFQX0RFQ19DSEFSKGppc3gwMjEzX3BhaXIsIHUsIGRhdGFbMF0sIGRhdGFbMV0pOwogICAgIGVsc2UKICAgICAgICAgcmV0dXJuIE1BUF9VTk1BUFBBQkxFOwogICAgIHJldHVybiB1OwogfQogCi1zdGF0aWMgdWNzNF90CitzdGF0aWMgUHlfVUNTNAogamlzeDAyMTNfMjAwNF8yX2RlY29kZXIoY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSkKIHsKLSAgICB1Y3M0X3QgdTsKLSAgICBUUllNQVBfREVDKGppc3gwMjEzXzJfYm1wLCB1LCBkYXRhWzBdLCBkYXRhWzFdKTsKLSAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMTNfMl9lbXAsIHUsIGRhdGFbMF0sIGRhdGFbMV0pCisgICAgUHlfVUNTNCB1OworICAgIFRSWU1BUF9ERUNfQ0hBUihqaXN4MDIxM18yX2JtcCwgdSwgZGF0YVswXSwgZGF0YVsxXSk7CisgICAgZWxzZSBUUllNQVBfREVDX0NIQVIoamlzeDAyMTNfMl9lbXAsIHUsIGRhdGFbMF0sIGRhdGFbMV0pCiAgICAgICAgIHUgfD0gMHgyMDAwMDsKICAgICBlbHNlCiAgICAgICAgIHJldHVybiBNQVBfVU5NQVBQQUJMRTsKQEAgLTc2NSw3ICs3NTAsNyBAQAogfQogCiBzdGF0aWMgREJDSEFSCi1qaXN4MDIxM19lbmNvZGVyKGNvbnN0IHVjczRfdCAqZGF0YSwgUHlfc3NpemVfdCAqbGVuZ3RoLCB2b2lkICpjb25maWcpCitqaXN4MDIxM19lbmNvZGVyKGNvbnN0IFB5X1VDUzQgKmRhdGEsIFB5X3NzaXplX3QgKmxlbmd0aCwgdm9pZCAqY29uZmlnKQogewogICAgIERCQ0hBUiBjb2RlZDsKIApAQCAtODE5LDcgKzgwNCw3IEBACiB9CiAKIHN0YXRpYyBEQkNIQVIKLWppc3gwMjEzXzIwMDBfMV9lbmNvZGVyKGNvbnN0IHVjczRfdCAqZGF0YSwgUHlfc3NpemVfdCAqbGVuZ3RoKQoramlzeDAyMTNfMjAwMF8xX2VuY29kZXIoY29uc3QgUHlfVUNTNCAqZGF0YSwgUHlfc3NpemVfdCAqbGVuZ3RoKQogewogICAgIERCQ0hBUiBjb2RlZCA9IGppc3gwMjEzX2VuY29kZXIoZGF0YSwgbGVuZ3RoLCAodm9pZCAqKTIwMDApOwogICAgIGlmIChjb2RlZCA9PSBNQVBfVU5NQVBQQUJMRSB8fCBjb2RlZCA9PSBNQVBfTVVMVElQTEVfQVZBSUwpCkBAIC04MzEsNyArODE2LDcgQEAKIH0KIAogc3RhdGljIERCQ0hBUgotamlzeDAyMTNfMjAwMF8xX2VuY29kZXJfcGFpcm9ubHkoY29uc3QgdWNzNF90ICpkYXRhLCBQeV9zc2l6ZV90ICpsZW5ndGgpCitqaXN4MDIxM18yMDAwXzFfZW5jb2Rlcl9wYWlyb25seShjb25zdCBQeV9VQ1M0ICpkYXRhLCBQeV9zc2l6ZV90ICpsZW5ndGgpCiB7CiAgICAgREJDSEFSIGNvZGVkOwogICAgIFB5X3NzaXplX3QgaWxlbmd0aCA9ICpsZW5ndGg7CkBAIC04NTQsNyArODM5LDcgQEAKIH0KIAogc3RhdGljIERCQ0hBUgotamlzeDAyMTNfMjAwMF8yX2VuY29kZXIoY29uc3QgdWNzNF90ICpkYXRhLCBQeV9zc2l6ZV90ICpsZW5ndGgpCitqaXN4MDIxM18yMDAwXzJfZW5jb2Rlcihjb25zdCBQeV9VQ1M0ICpkYXRhLCBQeV9zc2l6ZV90ICpsZW5ndGgpCiB7CiAgICAgREJDSEFSIGNvZGVkID0gamlzeDAyMTNfZW5jb2RlcihkYXRhLCBsZW5ndGgsICh2b2lkICopMjAwMCk7CiAgICAgaWYgKGNvZGVkID09IE1BUF9VTk1BUFBBQkxFIHx8IGNvZGVkID09IE1BUF9NVUxUSVBMRV9BVkFJTCkKQEAgLTg2Niw3ICs4NTEsNyBAQAogfQogCiBzdGF0aWMgREJDSEFSCi1qaXN4MDIxM18yMDA0XzFfZW5jb2Rlcihjb25zdCB1Y3M0X3QgKmRhdGEsIFB5X3NzaXplX3QgKmxlbmd0aCkKK2ppc3gwMjEzXzIwMDRfMV9lbmNvZGVyKGNvbnN0IFB5X1VDUzQgKmRhdGEsIFB5X3NzaXplX3QgKmxlbmd0aCkKIHsKICAgICBEQkNIQVIgY29kZWQgPSBqaXN4MDIxM19lbmNvZGVyKGRhdGEsIGxlbmd0aCwgTlVMTCk7CiAgICAgaWYgKGNvZGVkID09IE1BUF9VTk1BUFBBQkxFIHx8IGNvZGVkID09IE1BUF9NVUxUSVBMRV9BVkFJTCkKQEAgLTg3OCw3ICs4NjMsNyBAQAogfQogCiBzdGF0aWMgREJDSEFSCi1qaXN4MDIxM18yMDA0XzFfZW5jb2Rlcl9wYWlyb25seShjb25zdCB1Y3M0X3QgKmRhdGEsIFB5X3NzaXplX3QgKmxlbmd0aCkKK2ppc3gwMjEzXzIwMDRfMV9lbmNvZGVyX3BhaXJvbmx5KGNvbnN0IFB5X1VDUzQgKmRhdGEsIFB5X3NzaXplX3QgKmxlbmd0aCkKIHsKICAgICBEQkNIQVIgY29kZWQ7CiAgICAgUHlfc3NpemVfdCBpbGVuZ3RoID0gKmxlbmd0aDsKQEAgLTkwMSw3ICs4ODYsNyBAQAogfQogCiBzdGF0aWMgREJDSEFSCi1qaXN4MDIxM18yMDA0XzJfZW5jb2Rlcihjb25zdCB1Y3M0X3QgKmRhdGEsIFB5X3NzaXplX3QgKmxlbmd0aCkKK2ppc3gwMjEzXzIwMDRfMl9lbmNvZGVyKGNvbnN0IFB5X1VDUzQgKmRhdGEsIFB5X3NzaXplX3QgKmxlbmd0aCkKIHsKICAgICBEQkNIQVIgY29kZWQgPSBqaXN4MDIxM19lbmNvZGVyKGRhdGEsIGxlbmd0aCwgTlVMTCk7CiAgICAgaWYgKGNvZGVkID09IE1BUF9VTk1BUFBBQkxFIHx8IGNvZGVkID09IE1BUF9NVUxUSVBMRV9BVkFJTCkKQEAgLTkxMiwxNyArODk3LDE3IEBACiAgICAgICAgIHJldHVybiBNQVBfVU5NQVBQQUJMRTsKIH0KIAotc3RhdGljIHVjczRfdAorc3RhdGljIFB5X1VDUzQKIGppc3gwMjAxX3JfZGVjb2Rlcihjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKQogewotICAgIHVjczRfdCB1OwotICAgIEpJU1gwMjAxX1JfREVDT0RFKCpkYXRhLCB1KQorICAgIFB5X1VDUzQgdTsKKyAgICBKSVNYMDIwMV9SX0RFQ09ERV9DSEFSKCpkYXRhLCB1KQogICAgIGVsc2UgcmV0dXJuIE1BUF9VTk1BUFBBQkxFOwogICAgIHJldHVybiB1OwogfQogCiBzdGF0aWMgREJDSEFSCi1qaXN4MDIwMV9yX2VuY29kZXIoY29uc3QgdWNzNF90ICpkYXRhLCBQeV9zc2l6ZV90ICpsZW5ndGgpCitqaXN4MDIwMV9yX2VuY29kZXIoY29uc3QgUHlfVUNTNCAqZGF0YSwgUHlfc3NpemVfdCAqbGVuZ3RoKQogewogICAgIERCQ0hBUiBjb2RlZDsKICAgICBKSVNYMDIwMV9SX0VOQ09ERSgqZGF0YSwgY29kZWQpCkBAIC05MzAsMTcgKzkxNSwxNyBAQAogICAgIHJldHVybiBjb2RlZDsKIH0KIAotc3RhdGljIHVjczRfdAorc3RhdGljIFB5X1VDUzQKIGppc3gwMjAxX2tfZGVjb2Rlcihjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKQogewotICAgIHVjczRfdCB1OwotICAgIEpJU1gwMjAxX0tfREVDT0RFKCpkYXRhIF4gMHg4MCwgdSkKKyAgICBQeV9VQ1M0IHU7CisgICAgSklTWDAyMDFfS19ERUNPREVfQ0hBUigqZGF0YSBeIDB4ODAsIHUpCiAgICAgZWxzZSByZXR1cm4gTUFQX1VOTUFQUEFCTEU7CiAgICAgcmV0dXJuIHU7CiB9CiAKIHN0YXRpYyBEQkNIQVIKLWppc3gwMjAxX2tfZW5jb2Rlcihjb25zdCB1Y3M0X3QgKmRhdGEsIFB5X3NzaXplX3QgKmxlbmd0aCkKK2ppc3gwMjAxX2tfZW5jb2Rlcihjb25zdCBQeV9VQ1M0ICpkYXRhLCBQeV9zc2l6ZV90ICpsZW5ndGgpCiB7CiAgICAgREJDSEFSIGNvZGVkOwogICAgIEpJU1gwMjAxX0tfRU5DT0RFKCpkYXRhLCBjb2RlZCkKQEAgLTk2MSwxOCArOTQ2LDE4IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB1Y3M0X3QKK3N0YXRpYyBQeV9VQ1M0CiBnYjIzMTJfZGVjb2Rlcihjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKQogewotICAgIHVjczRfdCB1OwotICAgIFRSWU1BUF9ERUMoZ2IyMzEyLCB1LCBkYXRhWzBdLCBkYXRhWzFdKQorICAgIFB5X1VDUzQgdTsKKyAgICBUUllNQVBfREVDX0NIQVIoZ2IyMzEyLCB1LCBkYXRhWzBdLCBkYXRhWzFdKQogICAgICAgICByZXR1cm4gdTsKICAgICBlbHNlCiAgICAgICAgIHJldHVybiBNQVBfVU5NQVBQQUJMRTsKIH0KIAogc3RhdGljIERCQ0hBUgotZ2IyMzEyX2VuY29kZXIoY29uc3QgdWNzNF90ICpkYXRhLCBQeV9zc2l6ZV90ICpsZW5ndGgpCitnYjIzMTJfZW5jb2Rlcihjb25zdCBQeV9VQ1M0ICpkYXRhLCBQeV9zc2l6ZV90ICpsZW5ndGgpCiB7CiAgICAgREJDSEFSIGNvZGVkOwogICAgIGFzc2VydCgqbGVuZ3RoID09IDEpOwpAQCAtOTg2LDE0ICs5NzEsMTQgQEAKIH0KIAogCi1zdGF0aWMgdWNzNF90CitzdGF0aWMgUHlfVUNTNAogZHVtbXlfZGVjb2Rlcihjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhKQogewogICAgIHJldHVybiBNQVBfVU5NQVBQQUJMRTsKIH0KIAogc3RhdGljIERCQ0hBUgotZHVtbXlfZW5jb2Rlcihjb25zdCB1Y3M0X3QgKmRhdGEsIFB5X3NzaXplX3QgKmxlbmd0aCkKK2R1bW15X2VuY29kZXIoY29uc3QgUHlfVUNTNCAqZGF0YSwgUHlfc3NpemVfdCAqbGVuZ3RoKQogewogICAgIHJldHVybiBNQVBfVU5NQVBQQUJMRTsKIH0KZGlmZiAtLWdpdCBhL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3NfanAuYyBiL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3NfanAuYwppbmRleCBhNTAwNjk2Li43YWIzMThiIDEwMDY0NAotLS0gYS9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX2pwLmMKKysrIGIvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19qcC5jCkBAIC0xOSwzOCArMTksMzkgQEAKIAogRU5DT0RFUihjcDkzMikKIHsKLSAgICB3aGlsZSAoaW5sZWZ0ID4gMCkgewotICAgICAgICBQeV9VTklDT0RFIGMgPSBJTjE7CisgICAgd2hpbGUgKCppbnBvcyA8IGlubGVuKSB7CisgICAgICAgIFB5X1VDUzQgYyA9IElOQ0hBUjE7CiAgICAgICAgIERCQ0hBUiBjb2RlOwogICAgICAgICB1bnNpZ25lZCBjaGFyIGMxLCBjMjsKIAogICAgICAgICBpZiAoYyA8PSAweDgwKSB7Ci0gICAgICAgICAgICBXUklURTEoKHVuc2lnbmVkIGNoYXIpYykKLSAgICAgICAgICAgIE5FWFQoMSwgMSkKKyAgICAgICAgICAgIFdSSVRFQllURTEoKHVuc2lnbmVkIGNoYXIpYykKKyAgICAgICAgICAgIE5FWFQoMSwgMSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChjID49IDB4ZmY2MSAmJiBjIDw9IDB4ZmY5ZikgewotICAgICAgICAgICAgV1JJVEUxKGMgLSAweGZlYzApCi0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBXUklURUJZVEUxKGMgLSAweGZlYzApCisgICAgICAgICAgICBORVhUKDEsIDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoYyA+PSAweGY4ZjAgJiYgYyA8PSAweGY4ZjMpIHsKICAgICAgICAgICAgIC8qIFdpbmRvd3MgY29tcGF0aWJpbGl0eSAqLwogICAgICAgICAgICAgUkVRVUlSRV9PVVRCVUYoMSkKICAgICAgICAgICAgIGlmIChjID09IDB4ZjhmMCkKLSAgICAgICAgICAgICAgICBPVVQxKDB4YTApCisgICAgICAgICAgICAgICAgT1VUQllURTEoMHhhMCkKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBPVVQxKGMgLSAweGZlZjEgKyAweGZkKQotICAgICAgICAgICAgTkVYVCgxLCAxKQorICAgICAgICAgICAgICAgIE9VVEJZVEUxKGMgLSAweGZlZjEgKyAweGZkKQorICAgICAgICAgICAgTkVYVCgxLCAxKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgVUNTNElOVkFMSUQoYykKKyAgICAgICAgaWYgKGMgPiAweEZGRkYpCisgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgUkVRVUlSRV9PVVRCVUYoMikKIAogICAgICAgICBUUllNQVBfRU5DKGNwOTMyZXh0LCBjb2RlLCBjKSB7Ci0gICAgICAgICAgICBPVVQxKGNvZGUgPj4gOCkKLSAgICAgICAgICAgIE9VVDIoY29kZSAmIDB4ZmYpCisgICAgICAgICAgICBPVVRCWVRFMShjb2RlID4+IDgpCisgICAgICAgICAgICBPVVRCWVRFMihjb2RlICYgMHhmZikKICAgICAgICAgfQogICAgICAgICBlbHNlIFRSWU1BUF9FTkMoamlzeGNvbW1vbiwgY29kZSwgYykgewogICAgICAgICAgICAgaWYgKGNvZGUgJiAweDgwMDApIC8qIE1TQiBzZXQ6IEpJUyBYIDAyMTIgKi8KQEAgLTYxLDIwICs2MiwyMCBAQAogICAgICAgICAgICAgYzIgPSBjb2RlICYgMHhmZjsKICAgICAgICAgICAgIGMyID0gKCgoYzEgLSAweDIxKSAmIDEpID8gMHg1ZSA6IDApICsgKGMyIC0gMHgyMSk7CiAgICAgICAgICAgICBjMSA9IChjMSAtIDB4MjEpID4+IDE7Ci0gICAgICAgICAgICBPVVQxKGMxIDwgMHgxZiA/IGMxICsgMHg4MSA6IGMxICsgMHhjMSkKLSAgICAgICAgICAgIE9VVDIoYzIgPCAweDNmID8gYzIgKyAweDQwIDogYzIgKyAweDQxKQorICAgICAgICAgICAgT1VUQllURTEoYzEgPCAweDFmID8gYzEgKyAweDgxIDogYzEgKyAweGMxKQorICAgICAgICAgICAgT1VUQllURTIoYzIgPCAweDNmID8gYzIgKyAweDQwIDogYzIgKyAweDQxKQogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKGMgPj0gMHhlMDAwICYmIGMgPCAweGU3NTgpIHsKICAgICAgICAgICAgIC8qIFVzZXItZGVmaW5lZCBhcmVhICovCi0gICAgICAgICAgICBjMSA9IChQeV9VTklDT0RFKShjIC0gMHhlMDAwKSAvIDE4ODsKLSAgICAgICAgICAgIGMyID0gKFB5X1VOSUNPREUpKGMgLSAweGUwMDApICUgMTg4OwotICAgICAgICAgICAgT1VUMShjMSArIDB4ZjApCi0gICAgICAgICAgICBPVVQyKGMyIDwgMHgzZiA/IGMyICsgMHg0MCA6IGMyICsgMHg0MSkKKyAgICAgICAgICAgIGMxID0gKFB5X1VDUzQpKGMgLSAweGUwMDApIC8gMTg4OworICAgICAgICAgICAgYzIgPSAoUHlfVUNTNCkoYyAtIDB4ZTAwMCkgJSAxODg7CisgICAgICAgICAgICBPVVRCWVRFMShjMSArIDB4ZjApCisgICAgICAgICAgICBPVVRCWVRFMihjMiA8IDB4M2YgPyBjMiArIDB4NDAgOiBjMiArIDB4NDEpCiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIDE7CiAKLSAgICAgICAgTkVYVCgxLCAyKQorICAgICAgICBORVhUKDEsIDIpOwogICAgIH0KIAogICAgIHJldHVybiAwOwpAQCAtODMsMzMgKzg0LDMyIEBACiBERUNPREVSKGNwOTMyKQogewogICAgIHdoaWxlIChpbmxlZnQgPiAwKSB7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9IElOMSwgYzI7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9IElOQllURTEsIGMyOwogCi0gICAgICAgIFJFUVVJUkVfT1VUQlVGKDEpCiAgICAgICAgIGlmIChjIDw9IDB4ODApIHsKLSAgICAgICAgICAgIE9VVDEoYykKLSAgICAgICAgICAgIE5FWFQoMSwgMSkKKyAgICAgICAgICAgIE9VVENIQVIoYyk7CisgICAgICAgICAgICBORVhUX0lOKDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoYyA+PSAweGEwICYmIGMgPD0gMHhkZikgewogICAgICAgICAgICAgaWYgKGMgPT0gMHhhMCkKLSAgICAgICAgICAgICAgICBPVVQxKDB4ZjhmMCkgLyogaGFsZi13aWR0aCBrYXRha2FuYSAqLworICAgICAgICAgICAgICAgIE9VVENIQVIoMHhmOGYwKTsgLyogaGFsZi13aWR0aCBrYXRha2FuYSAqLwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIE9VVDEoMHhmZWMwICsgYykKLSAgICAgICAgICAgIE5FWFQoMSwgMSkKKyAgICAgICAgICAgICAgICBPVVRDSEFSKDB4ZmVjMCArIGMpOworICAgICAgICAgICAgTkVYVF9JTigxKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKGMgPj0gMHhmZC8qICYmIGMgPD0gMHhmZiovKSB7CiAgICAgICAgICAgICAvKiBXaW5kb3dzIGNvbXBhdGliaWxpdHkgKi8KLSAgICAgICAgICAgIE9VVDEoMHhmOGYxIC0gMHhmZCArIGMpCi0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBPVVRDSEFSKDB4ZjhmMSAtIDB4ZmQgKyBjKTsKKyAgICAgICAgICAgIE5FWFRfSU4oMSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIFJFUVVJUkVfSU5CVUYoMikKLSAgICAgICAgYzIgPSBJTjI7CisgICAgICAgIGMyID0gSU5CWVRFMjsKIAotICAgICAgICBUUllNQVBfREVDKGNwOTMyZXh0LCAqKm91dGJ1ZiwgYywgYzIpOworICAgICAgICBUUllNQVBfREVDKGNwOTMyZXh0LCB3cml0ZXIsIGMsIGMyKTsKICAgICAgICAgZWxzZSBpZiAoKGMgPj0gMHg4MSAmJiBjIDw9IDB4OWYpIHx8IChjID49IDB4ZTAgJiYgYyA8PSAweGVhKSl7CiAgICAgICAgICAgICBpZiAoYzIgPCAweDQwIHx8IChjMiA+IDB4N2UgJiYgYzIgPCAweDgwKSB8fCBjMiA+IDB4ZmMpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CkBAIC0xMTksMjEgKzExOSwyMSBAQAogICAgICAgICAgICAgYyA9ICgyICogYyArIChjMiA8IDB4NWUgPyAwIDogMSkgKyAweDIxKTsKICAgICAgICAgICAgIGMyID0gKGMyIDwgMHg1ZSA/IGMyIDogYzIgLSAweDVlKSArIDB4MjE7CiAKLSAgICAgICAgICAgIFRSWU1BUF9ERUMoamlzeDAyMDgsICoqb3V0YnVmLCBjLCBjMik7CisgICAgICAgICAgICBUUllNQVBfREVDKGppc3gwMjA4LCB3cml0ZXIsIGMsIGMyKTsKICAgICAgICAgICAgIGVsc2UgcmV0dXJuIDE7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoYyA+PSAweGYwICYmIGMgPD0gMHhmOSkgewogICAgICAgICAgICAgaWYgKChjMiA+PSAweDQwICYmIGMyIDw9IDB4N2UpIHx8CiAgICAgICAgICAgICAgICAgKGMyID49IDB4ODAgJiYgYzIgPD0gMHhmYykpCi0gICAgICAgICAgICAgICAgT1VUMSgweGUwMDAgKyAxODggKiAoYyAtIDB4ZjApICsKLSAgICAgICAgICAgICAgICAgICAgIChjMiA8IDB4ODAgPyBjMiAtIDB4NDAgOiBjMiAtIDB4NDEpKQorICAgICAgICAgICAgICAgIE9VVENIQVIoMHhlMDAwICsgMTg4ICogKGMgLSAweGYwKSArCisgICAgICAgICAgICAgICAgICAgIChjMiA8IDB4ODAgPyBjMiAtIDB4NDAgOiBjMiAtIDB4NDEpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gMTsKIAotICAgICAgICBORVhUKDIsIDEpCisgICAgICAgIE5FWFRfSU4oMik7CiAgICAgfQogCiAgICAgcmV0dXJuIDA7CkBAIC0xNDYsMjUgKzE0NiwyNCBAQAogCiBFTkNPREVSKGV1Y19qaXNfMjAwNCkKIHsKLSAgICB3aGlsZSAoaW5sZWZ0ID4gMCkgewotICAgICAgICB1Y3M0X3QgYyA9IElOMTsKKyAgICB3aGlsZSAoKmlucG9zIDwgaW5sZW4pIHsKKyAgICAgICAgUHlfVUNTNCBjID0gSU5DSEFSMTsKICAgICAgICAgREJDSEFSIGNvZGU7CiAgICAgICAgIFB5X3NzaXplX3QgaW5zaXplOwogCiAgICAgICAgIGlmIChjIDwgMHg4MCkgewotICAgICAgICAgICAgV1JJVEUxKGMpCi0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBXUklURUJZVEUxKGMpCisgICAgICAgICAgICBORVhUKDEsIDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBERUNPREVfU1VSUk9HQVRFKGMpCi0gICAgICAgIGluc2l6ZSA9IEdFVF9JTlNJWkUoYyk7CisgICAgICAgIGluc2l6ZSA9IDE7CiAKICAgICAgICAgaWYgKGMgPD0gMHhGRkZGKSB7CiAgICAgICAgICAgICBFTVVMQVRFX0pJU1gwMjEzXzIwMDBfRU5DT0RFX0JNUChjb2RlLCBjKQogICAgICAgICAgICAgZWxzZSBUUllNQVBfRU5DKGppc3gwMjEzX2JtcCwgY29kZSwgYykgewogICAgICAgICAgICAgICAgIGlmIChjb2RlID09IE1VTFRJQykgewotICAgICAgICAgICAgICAgICAgICBpZiAoaW5sZWZ0IDwgMikgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5sZW4gLSAqaW5wb3MgPCAyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZ3MgJiBNQkVOQ19GTFVTSCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgPSBmaW5kX3BhaXJlbmNtYXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1Y3MyX3QpYywgMCwKQEAgLTE3Nyw4ICsxNzYsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBNQkVSUl9UT09GRVc7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBQeV9VQ1M0IGMyID0gSU5DSEFSMjsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgPSBmaW5kX3BhaXJlbmNtYXAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVjczJfdCljLCAoKmluYnVmKVsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWNzMl90KWMsIGMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppc3gwMjEzX3BhaXJfZW5jbWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpJU1gwMjEzX0VOQ1BBSVJTKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2RlID09IERCQ0lOVikgewpAQCAtMTk2LDggKzE5Niw4IEBACiAgICAgICAgICAgICBlbHNlIFRSWU1BUF9FTkMoamlzeGNvbW1vbiwgY29kZSwgYyk7CiAgICAgICAgICAgICBlbHNlIGlmIChjID49IDB4ZmY2MSAmJiBjIDw9IDB4ZmY5ZikgewogICAgICAgICAgICAgICAgIC8qIEpJUyBYIDAyMDEgaGFsZi13aWR0aCBrYXRha2FuYSAqLwotICAgICAgICAgICAgICAgIFdSSVRFMigweDhlLCBjIC0gMHhmZWMwKQotICAgICAgICAgICAgICAgIE5FWFQoMSwgMikKKyAgICAgICAgICAgICAgICBXUklURUJZVEUyKDB4OGUsIGMgLSAweGZlYzApCisgICAgICAgICAgICAgICAgTkVYVCgxLCAyKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gMHhmZjNjKQpAQCAtMjE5LDEyICsyMTksMTIgQEAKIAogICAgICAgICBpZiAoY29kZSAmIDB4ODAwMCkgewogICAgICAgICAgICAgLyogQ29kZXNldCAyICovCi0gICAgICAgICAgICBXUklURTMoMHg4ZiwgY29kZSA+PiA4LCAoY29kZSAmIDB4RkYpIHwgMHg4MCkKLSAgICAgICAgICAgIE5FWFQoaW5zaXplLCAzKQorICAgICAgICAgICAgV1JJVEVCWVRFMygweDhmLCBjb2RlID4+IDgsIChjb2RlICYgMHhGRikgfCAweDgwKQorICAgICAgICAgICAgTkVYVChpbnNpemUsIDMpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLyogQ29kZXNldCAxICovCi0gICAgICAgICAgICBXUklURTIoKGNvZGUgPj4gOCkgfCAweDgwLCAoY29kZSAmIDB4RkYpIHwgMHg4MCkKLSAgICAgICAgICAgIE5FWFQoaW5zaXplLCAyKQorICAgICAgICAgICAgV1JJVEVCWVRFMigoY29kZSA+PiA4KSB8IDB4ODAsIChjb2RlICYgMHhGRikgfCAweDgwKQorICAgICAgICAgICAgTkVYVChpbnNpemUsIDIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yMzQsMTQgKzIzNCwxMiBAQAogREVDT0RFUihldWNfamlzXzIwMDQpCiB7CiAgICAgd2hpbGUgKGlubGVmdCA+IDApIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBjID0gSU4xOwotICAgICAgICB1Y3M0X3QgY29kZTsKLQotICAgICAgICBSRVFVSVJFX09VVEJVRigxKQorICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSBJTkJZVEUxOworICAgICAgICBQeV9VQ1M0IGNvZGU7CiAKICAgICAgICAgaWYgKGMgPCAweDgwKSB7Ci0gICAgICAgICAgICBPVVQxKGMpCi0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBPVVRDSEFSKGMpOworICAgICAgICAgICAgTkVYVF9JTigxKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTI1MCwxMCArMjQ4LDEwIEBACiAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGMyOwogCiAgICAgICAgICAgICBSRVFVSVJFX0lOQlVGKDIpCi0gICAgICAgICAgICBjMiA9IElOMjsKKyAgICAgICAgICAgIGMyID0gSU5CWVRFMjsKICAgICAgICAgICAgIGlmIChjMiA+PSAweGExICYmIGMyIDw9IDB4ZGYpIHsKLSAgICAgICAgICAgICAgICBPVVQxKDB4ZmVjMCArIGMyKQotICAgICAgICAgICAgICAgIE5FWFQoMiwgMSkKKyAgICAgICAgICAgICAgICBPVVRDSEFSKDB4ZmVjMCArIGMyKTsKKyAgICAgICAgICAgICAgICBORVhUX0lOKDIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJldHVybiAxOwpAQCAtMjYyLDQ2ICsyNjAsNDYgQEAKICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzIsIGMzOwogCiAgICAgICAgICAgICBSRVFVSVJFX0lOQlVGKDMpCi0gICAgICAgICAgICBjMiA9IElOMiBeIDB4ODA7Ci0gICAgICAgICAgICBjMyA9IElOMyBeIDB4ODA7CisgICAgICAgICAgICBjMiA9IElOQllURTIgXiAweDgwOworICAgICAgICAgICAgYzMgPSBJTkJZVEUzIF4gMHg4MDsKIAogICAgICAgICAgICAgLyogSklTIFggMDIxMyBQbGFuZSAyIG9yIEpJUyBYIDAyMTIgKHNlZSBOT1RFUykgKi8KLSAgICAgICAgICAgIEVNVUxBVEVfSklTWDAyMTNfMjAwMF9ERUNPREVfUExBTkUyKCoqb3V0YnVmLCBjMiwgYzMpCi0gICAgICAgICAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMTNfMl9ibXAsICoqb3V0YnVmLCBjMiwgYzMpIDsKLSAgICAgICAgICAgIGVsc2UgVFJZTUFQX0RFQyhqaXN4MDIxM18yX2VtcCwgY29kZSwgYzIsIGMzKSB7Ci0gICAgICAgICAgICAgICAgV1JJVEVVQ1M0KEVNUEJBU0UgfCBjb2RlKQotICAgICAgICAgICAgICAgIE5FWFRfSU4oMykKKyAgICAgICAgICAgIEVNVUxBVEVfSklTWDAyMTNfMjAwMF9ERUNPREVfUExBTkUyKHdyaXRlciwgYzIsIGMzKQorICAgICAgICAgICAgZWxzZSBUUllNQVBfREVDKGppc3gwMjEzXzJfYm1wLCB3cml0ZXIsIGMyLCBjMykgOworICAgICAgICAgICAgZWxzZSBUUllNQVBfREVDX0NIQVIoamlzeDAyMTNfMl9lbXAsIGNvZGUsIGMyLCBjMykgeworICAgICAgICAgICAgICAgIE9VVENIQVIoRU1QQkFTRSB8IGNvZGUpOworICAgICAgICAgICAgICAgIE5FWFRfSU4oMyk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMTIsICoqb3V0YnVmLCBjMiwgYzMpIDsKKyAgICAgICAgICAgIGVsc2UgVFJZTUFQX0RFQyhqaXN4MDIxMiwgd3JpdGVyLCBjMiwgYzMpIDsKICAgICAgICAgICAgIGVsc2UgcmV0dXJuIDE7Ci0gICAgICAgICAgICBORVhUKDMsIDEpCisgICAgICAgICAgICBORVhUX0lOKDMpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjMjsKIAogICAgICAgICAgICAgUkVRVUlSRV9JTkJVRigyKQogICAgICAgICAgICAgYyBePSAweDgwOwotICAgICAgICAgICAgYzIgPSBJTjIgXiAweDgwOworICAgICAgICAgICAgYzIgPSBJTkJZVEUyIF4gMHg4MDsKIAogICAgICAgICAgICAgLyogSklTIFggMDIxMyBQbGFuZSAxICovCi0gICAgICAgICAgICBFTVVMQVRFX0pJU1gwMjEzXzIwMDBfREVDT0RFX1BMQU5FMSgqKm91dGJ1ZiwgYywgYzIpCi0gICAgICAgICAgICBlbHNlIGlmIChjID09IDB4MjEgJiYgYzIgPT0gMHg0MCkgKipvdXRidWYgPSAweGZmM2M7Ci0gICAgICAgICAgICBlbHNlIGlmIChjID09IDB4MjIgJiYgYzIgPT0gMHgzMikgKipvdXRidWYgPSAweGZmNWU7Ci0gICAgICAgICAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMDgsICoqb3V0YnVmLCBjLCBjMik7Ci0gICAgICAgICAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMTNfMV9ibXAsICoqb3V0YnVmLCBjLCBjMik7Ci0gICAgICAgICAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMTNfMV9lbXAsIGNvZGUsIGMsIGMyKSB7Ci0gICAgICAgICAgICAgICAgV1JJVEVVQ1M0KEVNUEJBU0UgfCBjb2RlKQotICAgICAgICAgICAgICAgIE5FWFRfSU4oMikKKyAgICAgICAgICAgIEVNVUxBVEVfSklTWDAyMTNfMjAwMF9ERUNPREVfUExBTkUxKHdyaXRlciwgYywgYzIpCisgICAgICAgICAgICBlbHNlIGlmIChjID09IDB4MjEgJiYgYzIgPT0gMHg0MCkgT1VUQ0hBUigweGZmM2MpOworICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAweDIyICYmIGMyID09IDB4MzIpIE9VVENIQVIoMHhmZjVlKTsKKyAgICAgICAgICAgIGVsc2UgVFJZTUFQX0RFQyhqaXN4MDIwOCwgd3JpdGVyLCBjLCBjMik7CisgICAgICAgICAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMTNfMV9ibXAsIHdyaXRlciwgYywgYzIpOworICAgICAgICAgICAgZWxzZSBUUllNQVBfREVDX0NIQVIoamlzeDAyMTNfMV9lbXAsIGNvZGUsIGMsIGMyKSB7CisgICAgICAgICAgICAgICAgT1VUQ0hBUihFTVBCQVNFIHwgY29kZSk7CisgICAgICAgICAgICAgICAgTkVYVF9JTigyKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgVFJZTUFQX0RFQyhqaXN4MDIxM19wYWlyLCBjb2RlLCBjLCBjMikgewotICAgICAgICAgICAgICAgIFdSSVRFMihjb2RlID4+IDE2LCBjb2RlICYgMHhmZmZmKQotICAgICAgICAgICAgICAgIE5FWFQoMiwgMikKKyAgICAgICAgICAgIGVsc2UgVFJZTUFQX0RFQ19DSEFSKGppc3gwMjEzX3BhaXIsIGNvZGUsIGMsIGMyKSB7CisgICAgICAgICAgICAgICAgT1VUQ0hBUjIoY29kZSA+PiAxNiwgY29kZSAmIDB4ZmZmZik7CisgICAgICAgICAgICAgICAgTkVYVF9JTigyKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgcmV0dXJuIDE7Ci0gICAgICAgICAgICBORVhUKDIsIDEpCisgICAgICAgICAgICBORVhUX0lOKDIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0zMTUsMzUgKzMxMywzNiBAQAogCiBFTkNPREVSKGV1Y19qcCkKIHsKLSAgICB3aGlsZSAoaW5sZWZ0ID4gMCkgewotICAgICAgICBQeV9VTklDT0RFIGMgPSBJTjE7CisgICAgd2hpbGUgKCppbnBvcyA8IGlubGVuKSB7CisgICAgICAgIFB5X1VDUzQgYyA9IElOQ0hBUjE7CiAgICAgICAgIERCQ0hBUiBjb2RlOwogCiAgICAgICAgIGlmIChjIDwgMHg4MCkgewotICAgICAgICAgICAgV1JJVEUxKCh1bnNpZ25lZCBjaGFyKWMpCi0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBXUklURUJZVEUxKCh1bnNpZ25lZCBjaGFyKWMpCisgICAgICAgICAgICBORVhUKDEsIDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBVQ1M0SU5WQUxJRChjKQorICAgICAgICBpZiAoYyA+IDB4RkZGRikKKyAgICAgICAgICAgIHJldHVybiAxOwogCiAgICAgICAgIFRSWU1BUF9FTkMoamlzeGNvbW1vbiwgY29kZSwgYyk7CiAgICAgICAgIGVsc2UgaWYgKGMgPj0gMHhmZjYxICYmIGMgPD0gMHhmZjlmKSB7CiAgICAgICAgICAgICAvKiBKSVMgWCAwMjAxIGhhbGYtd2lkdGgga2F0YWthbmEgKi8KLSAgICAgICAgICAgIFdSSVRFMigweDhlLCBjIC0gMHhmZWMwKQotICAgICAgICAgICAgTkVYVCgxLCAyKQorICAgICAgICAgICAgV1JJVEVCWVRFMigweDhlLCBjIC0gMHhmZWMwKQorICAgICAgICAgICAgTkVYVCgxLCAyKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjaWZuZGVmIFNUUklDVF9CVUlMRAogICAgICAgICBlbHNlIGlmIChjID09IDB4ZmYzYykgLyogRlVMTC1XSURUSCBSRVZFUlNFIFNPTElEVVMgKi8KICAgICAgICAgICAgIGNvZGUgPSAweDIxNDA7CiAgICAgICAgIGVsc2UgaWYgKGMgPT0gMHhhNSkgeyAvKiBZRU4gU0lHTiAqLwotICAgICAgICAgICAgV1JJVEUxKDB4NWMpOwotICAgICAgICAgICAgTkVYVCgxLCAxKQorICAgICAgICAgICAgV1JJVEVCWVRFMSgweDVjKTsKKyAgICAgICAgICAgIE5FWFQoMSwgMSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfSBlbHNlIGlmIChjID09IDB4MjAzZSkgeyAvKiBPVkVSTElORSAqLwotICAgICAgICAgICAgV1JJVEUxKDB4N2UpOwotICAgICAgICAgICAgTkVYVCgxLCAxKQorICAgICAgICAgICAgV1JJVEVCWVRFMSgweDdlKTsKKyAgICAgICAgICAgIE5FWFQoMSwgMSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogI2VuZGlmCkBAIC0zNTIsMTIgKzM1MSwxMiBAQAogCiAgICAgICAgIGlmIChjb2RlICYgMHg4MDAwKSB7CiAgICAgICAgICAgICAvKiBKSVMgWCAwMjEyICovCi0gICAgICAgICAgICBXUklURTMoMHg4ZiwgY29kZSA+PiA4LCAoY29kZSAmIDB4RkYpIHwgMHg4MCkKLSAgICAgICAgICAgIE5FWFQoMSwgMykKKyAgICAgICAgICAgIFdSSVRFQllURTMoMHg4ZiwgY29kZSA+PiA4LCAoY29kZSAmIDB4RkYpIHwgMHg4MCkKKyAgICAgICAgICAgIE5FWFQoMSwgMyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvKiBKSVMgWCAwMjA4ICovCi0gICAgICAgICAgICBXUklURTIoKGNvZGUgPj4gOCkgfCAweDgwLCAoY29kZSAmIDB4RkYpIHwgMHg4MCkKLSAgICAgICAgICAgIE5FWFQoMSwgMikKKyAgICAgICAgICAgIFdSSVRFQllURTIoKGNvZGUgPj4gOCkgfCAweDgwLCAoY29kZSAmIDB4RkYpIHwgMHg4MCkKKyAgICAgICAgICAgIE5FWFQoMSwgMik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM2NywxMyArMzY2LDExIEBACiBERUNPREVSKGV1Y19qcCkKIHsKICAgICB3aGlsZSAoaW5sZWZ0ID4gMCkgewotICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSBJTjE7Ci0KLSAgICAgICAgUkVRVUlSRV9PVVRCVUYoMSkKKyAgICAgICAgdW5zaWduZWQgY2hhciBjID0gSU5CWVRFMTsKIAogICAgICAgICBpZiAoYyA8IDB4ODApIHsKLSAgICAgICAgICAgIE9VVDEoYykKLSAgICAgICAgICAgIE5FWFQoMSwgMSkKKyAgICAgICAgICAgIE9VVENIQVIoYyk7CisgICAgICAgICAgICBORVhUX0lOKDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtMzgyLDEwICszNzksMTAgQEAKICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzI7CiAKICAgICAgICAgICAgIFJFUVVJUkVfSU5CVUYoMikKLSAgICAgICAgICAgIGMyID0gSU4yOworICAgICAgICAgICAgYzIgPSBJTkJZVEUyOwogICAgICAgICAgICAgaWYgKGMyID49IDB4YTEgJiYgYzIgPD0gMHhkZikgewotICAgICAgICAgICAgICAgIE9VVDEoMHhmZWMwICsgYzIpCi0gICAgICAgICAgICAgICAgTkVYVCgyLCAxKQorICAgICAgICAgICAgICAgIE9VVENIQVIoMHhmZWMwICsgYzIpOworICAgICAgICAgICAgICAgIE5FWFRfSU4oMik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CkBAIC0zOTQsMTEgKzM5MSwxMSBAQAogICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjMiwgYzM7CiAKICAgICAgICAgICAgIFJFUVVJUkVfSU5CVUYoMykKLSAgICAgICAgICAgIGMyID0gSU4yOwotICAgICAgICAgICAgYzMgPSBJTjM7CisgICAgICAgICAgICBjMiA9IElOQllURTI7CisgICAgICAgICAgICBjMyA9IElOQllURTM7CiAgICAgICAgICAgICAvKiBKSVMgWCAwMjEyICovCi0gICAgICAgICAgICBUUllNQVBfREVDKGppc3gwMjEyLCAqKm91dGJ1ZiwgYzIgXiAweDgwLCBjMyBeIDB4ODApIHsKLSAgICAgICAgICAgICAgICBORVhUKDMsIDEpCisgICAgICAgICAgICBUUllNQVBfREVDKGppc3gwMjEyLCB3cml0ZXIsIGMyIF4gMHg4MCwgYzMgXiAweDgwKSB7CisgICAgICAgICAgICAgICAgTkVYVF9JTigzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKQEAgLTQwNywxOCArNDA0LDE4IEBACiAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGMyOwogCiAgICAgICAgICAgICBSRVFVSVJFX0lOQlVGKDIpCi0gICAgICAgICAgICBjMiA9IElOMjsKKyAgICAgICAgICAgIGMyID0gSU5CWVRFMjsKICAgICAgICAgICAgIC8qIEpJUyBYIDAyMDggKi8KICNpZm5kZWYgU1RSSUNUX0JVSUxECiAgICAgICAgICAgICBpZiAoYyA9PSAweGExICYmIGMyID09IDB4YzApCiAgICAgICAgICAgICAgICAgLyogRlVMTC1XSURUSCBSRVZFUlNFIFNPTElEVVMgKi8KLSAgICAgICAgICAgICAgICAqKm91dGJ1ZiA9IDB4ZmYzYzsKKyAgICAgICAgICAgICAgICBPVVRDSEFSKDB4ZmYzYyk7CiAgICAgICAgICAgICBlbHNlCiAjZW5kaWYKLSAgICAgICAgICAgICAgICBUUllNQVBfREVDKGppc3gwMjA4LCAqKm91dGJ1ZiwKKyAgICAgICAgICAgICAgICBUUllNQVBfREVDKGppc3gwMjA4LCB3cml0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjIF4gMHg4MCwgYzIgXiAweDgwKSA7CiAgICAgICAgICAgICBlbHNlIHJldHVybiAxOwotICAgICAgICAgICAgTkVYVCgyLCAxKQorICAgICAgICAgICAgTkVYVF9JTigyKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDMyLDggKzQyOSw4IEBACiAKIEVOQ09ERVIoc2hpZnRfamlzKQogewotICAgIHdoaWxlIChpbmxlZnQgPiAwKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgYyA9IElOMTsKKyAgICB3aGlsZSAoKmlucG9zIDwgaW5sZW4pIHsKKyAgICAgICAgUHlfVUNTNCBjID0gSU5DSEFSMTsKICAgICAgICAgREJDSEFSIGNvZGU7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzEsIGMyOwogCkBAIC00NDUsMTQgKzQ0MiwxNiBAQAogICAgICAgICBlbHNlIGlmIChjID09IDB4MjAzZSkgY29kZSA9IDB4N2U7IC8qIE9WRVJMSU5FICovCiAjZW5kaWYKICAgICAgICAgZWxzZSBKSVNYMDIwMV9LX0VOQ09ERShjLCBjb2RlKQotICAgICAgICBlbHNlIFVDUzRJTlZBTElEKGMpCi0gICAgICAgIGVsc2UgY29kZSA9IE5PQ0hBUjsKKyAgICAgICAgZWxzZSBpZiAoYyA+IDB4RkZGRikKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb2RlID0gTk9DSEFSOwogCiAgICAgICAgIGlmIChjb2RlIDwgMHg4MCB8fCAoY29kZSA+PSAweGExICYmIGNvZGUgPD0gMHhkZikpIHsKICAgICAgICAgICAgIFJFUVVJUkVfT1VUQlVGKDEpCiAKLSAgICAgICAgICAgIE9VVDEoKHVuc2lnbmVkIGNoYXIpY29kZSkKLSAgICAgICAgICAgIE5FWFQoMSwgMSkKKyAgICAgICAgICAgIE9VVEJZVEUxKCh1bnNpZ25lZCBjaGFyKWNvZGUpCisgICAgICAgICAgICBORVhUKDEsIDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtNDc1LDkgKzQ3NCw5IEBACiAgICAgICAgIGMyID0gY29kZSAmIDB4ZmY7CiAgICAgICAgIGMyID0gKCgoYzEgLSAweDIxKSAmIDEpID8gMHg1ZSA6IDApICsgKGMyIC0gMHgyMSk7CiAgICAgICAgIGMxID0gKGMxIC0gMHgyMSkgPj4gMTsKLSAgICAgICAgT1VUMShjMSA8IDB4MWYgPyBjMSArIDB4ODEgOiBjMSArIDB4YzEpCi0gICAgICAgIE9VVDIoYzIgPCAweDNmID8gYzIgKyAweDQwIDogYzIgKyAweDQxKQotICAgICAgICBORVhUKDEsIDIpCisgICAgICAgIE9VVEJZVEUxKGMxIDwgMHgxZiA/IGMxICsgMHg4MSA6IGMxICsgMHhjMSkKKyAgICAgICAgT1VUQllURTIoYzIgPCAweDNmID8gYzIgKyAweDQwIDogYzIgKyAweDQxKQorICAgICAgICBORVhUKDEsIDIpOwogICAgIH0KIAogICAgIHJldHVybiAwOwpAQCAtNDg2LDIxICs0ODUsMTkgQEAKIERFQ09ERVIoc2hpZnRfamlzKQogewogICAgIHdoaWxlIChpbmxlZnQgPiAwKSB7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9IElOMTsKLQotICAgICAgICBSRVFVSVJFX09VVEJVRigxKQorICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSBJTkJZVEUxOwogCiAjaWZkZWYgU1RSSUNUX0JVSUxECi0gICAgICAgIEpJU1gwMjAxX1JfREVDT0RFKGMsICoqb3V0YnVmKQorICAgICAgICBKSVNYMDIwMV9SX0RFQ09ERShjLCB3cml0ZXIpCiAjZWxzZQotICAgICAgICBpZiAoYyA8IDB4ODApICoqb3V0YnVmID0gYzsKKyAgICAgICAgaWYgKGMgPCAweDgwKSBPVVRDSEFSKGMpOwogI2VuZGlmCi0gICAgICAgIGVsc2UgSklTWDAyMDFfS19ERUNPREUoYywgKipvdXRidWYpCisgICAgICAgIGVsc2UgSklTWDAyMDFfS19ERUNPREUoYywgd3JpdGVyKQogICAgICAgICBlbHNlIGlmICgoYyA+PSAweDgxICYmIGMgPD0gMHg5ZikgfHwgKGMgPj0gMHhlMCAmJiBjIDw9IDB4ZWEpKXsKICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzEsIGMyOwogCiAgICAgICAgICAgICBSRVFVSVJFX0lOQlVGKDIpCi0gICAgICAgICAgICBjMiA9IElOMjsKKyAgICAgICAgICAgIGMyID0gSU5CWVRFMjsKICAgICAgICAgICAgIGlmIChjMiA8IDB4NDAgfHwgKGMyID4gMHg3ZSAmJiBjMiA8IDB4ODApIHx8IGMyID4gMHhmYykKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKIApAQCAtNTEyLDEzICs1MDksMTMgQEAKICNpZm5kZWYgU1RSSUNUX0JVSUxECiAgICAgICAgICAgICBpZiAoYzEgPT0gMHgyMSAmJiBjMiA9PSAweDQwKSB7CiAgICAgICAgICAgICAgICAgLyogRlVMTC1XSURUSCBSRVZFUlNFIFNPTElEVVMgKi8KLSAgICAgICAgICAgICAgICBPVVQxKDB4ZmYzYykKLSAgICAgICAgICAgICAgICBORVhUKDIsIDEpCisgICAgICAgICAgICAgICAgT1VUQ0hBUigweGZmM2MpOworICAgICAgICAgICAgICAgIE5FWFRfSU4oMik7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAgICAgIFRSWU1BUF9ERUMoamlzeDAyMDgsICoqb3V0YnVmLCBjMSwgYzIpIHsKLSAgICAgICAgICAgICAgICBORVhUKDIsIDEpCisgICAgICAgICAgICBUUllNQVBfREVDKGppc3gwMjA4LCB3cml0ZXIsIGMxLCBjMikgeworICAgICAgICAgICAgICAgIE5FWFRfSU4oMik7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCkBAIC01MjcsNyArNTI0LDcgQEAKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIDE7CiAKLSAgICAgICAgTkVYVCgxLCAxKSAvKiBKSVMgWCAwMjAxICovCisgICAgICAgIE5FWFRfSU4oMSk7IC8qIEpJUyBYIDAyMDEgKi8KICAgICB9CiAKICAgICByZXR1cm4gMDsKQEAgLTU0MCwzMCArNTM3LDI5IEBACiAKIEVOQ09ERVIoc2hpZnRfamlzXzIwMDQpCiB7Ci0gICAgd2hpbGUgKGlubGVmdCA+IDApIHsKLSAgICAgICAgdWNzNF90IGMgPSBJTjE7CisgICAgd2hpbGUgKCppbnBvcyA8IGlubGVuKSB7CisgICAgICAgIFB5X1VDUzQgYyA9IElOQ0hBUjE7CiAgICAgICAgIERCQ0hBUiBjb2RlID0gTk9DSEFSOwogICAgICAgICBpbnQgYzEsIGMyOwogICAgICAgICBQeV9zc2l6ZV90IGluc2l6ZTsKIAogICAgICAgICBKSVNYMDIwMV9FTkNPREUoYywgY29kZSkKLSAgICAgICAgZWxzZSBERUNPREVfU1VSUk9HQVRFKGMpCiAKICAgICAgICAgaWYgKGNvZGUgPCAweDgwIHx8IChjb2RlID49IDB4YTEgJiYgY29kZSA8PSAweGRmKSkgewotICAgICAgICAgICAgV1JJVEUxKCh1bnNpZ25lZCBjaGFyKWNvZGUpCi0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBXUklURUJZVEUxKCh1bnNpZ25lZCBjaGFyKWNvZGUpCisgICAgICAgICAgICBORVhUKDEsIDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBSRVFVSVJFX09VVEJVRigyKQotICAgICAgICBpbnNpemUgPSBHRVRfSU5TSVpFKGMpOworICAgICAgICBpbnNpemUgPSAxOwogCiAgICAgICAgIGlmIChjb2RlID09IE5PQ0hBUikgewogICAgICAgICAgICAgaWYgKGMgPD0gMHhmZmZmKSB7CiAgICAgICAgICAgICAgICAgRU1VTEFURV9KSVNYMDIxM18yMDAwX0VOQ09ERV9CTVAoY29kZSwgYykKICAgICAgICAgICAgICAgICBlbHNlIFRSWU1BUF9FTkMoamlzeDAyMTNfYm1wLCBjb2RlLCBjKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjb2RlID09IE1VTFRJQykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlubGVmdCA8IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmxlbiAtICppbnBvcyA8IDIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZ3MgJiBNQkVOQ19GTFVTSCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgPSBmaW5kX3BhaXJlbmNtYXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh1Y3MyX3QpYywgMCwKQEAgLTU3Niw4ICs1NzIsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTUJFUlJfVE9PRkVXOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfVUNTNCBjaDIgPSBJTkNIQVIyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgPSBmaW5kX3BhaXJlbmNtYXAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1Y3MyX3QpYywgSU4yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWNzMl90KWMsIGNoMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppc3gwMjEzX3BhaXJfZW5jbWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKSVNYMDIxM19FTkNQQUlSUyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGUgPT0gREJDSU5WKSB7CkBAIC02MjIsMTAgKzYxOSwxMCBAQAogCiAgICAgICAgIGlmIChjMSAmIDEpIGMyICs9IDB4NWU7CiAgICAgICAgIGMxID4+PSAxOwotICAgICAgICBPVVQxKGMxICsgKGMxIDwgMHgxZiA/IDB4ODEgOiAweGMxKSkKLSAgICAgICAgT1VUMihjMiArIChjMiA8IDB4M2YgPyAweDQwIDogMHg0MSkpCisgICAgICAgIE9VVEJZVEUxKGMxICsgKGMxIDwgMHgxZiA/IDB4ODEgOiAweGMxKSkKKyAgICAgICAgT1VUQllURTIoYzIgKyAoYzIgPCAweDNmID8gMHg0MCA6IDB4NDEpKQogCi0gICAgICAgIE5FWFQoaW5zaXplLCAyKQorICAgICAgICBORVhUKGluc2l6ZSwgMik7CiAgICAgfQogCiAgICAgcmV0dXJuIDA7CkBAIC02MzQsMTYgKzYzMSwxNSBAQAogREVDT0RFUihzaGlmdF9qaXNfMjAwNCkKIHsKICAgICB3aGlsZSAoaW5sZWZ0ID4gMCkgewotICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSBJTjE7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9IElOQllURTE7CiAKLSAgICAgICAgUkVRVUlSRV9PVVRCVUYoMSkKLSAgICAgICAgSklTWDAyMDFfREVDT0RFKGMsICoqb3V0YnVmKQorICAgICAgICBKSVNYMDIwMV9ERUNPREUoYywgd3JpdGVyKQogICAgICAgICBlbHNlIGlmICgoYyA+PSAweDgxICYmIGMgPD0gMHg5ZikgfHwgKGMgPj0gMHhlMCAmJiBjIDw9IDB4ZmMpKXsKICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzEsIGMyOwotICAgICAgICAgICAgdWNzNF90IGNvZGU7CisgICAgICAgICAgICBQeV9VQ1M0IGNvZGU7CiAKICAgICAgICAgICAgIFJFUVVJUkVfSU5CVUYoMikKLSAgICAgICAgICAgIGMyID0gSU4yOworICAgICAgICAgICAgYzIgPSBJTkJZVEUyOwogICAgICAgICAgICAgaWYgKGMyIDwgMHg0MCB8fCAoYzIgPiAweDdlICYmIGMyIDwgMHg4MCkgfHwgYzIgPiAweGZjKQogICAgICAgICAgICAgICAgIHJldHVybiAxOwogCkBAIC02NTQsNTAgKzY1MCw0NyBAQAogCiAgICAgICAgICAgICBpZiAoYzEgPCAweDVlKSB7IC8qIFBsYW5lIDEgKi8KICAgICAgICAgICAgICAgICBjMSArPSAweDIxOwotICAgICAgICAgICAgICAgIEVNVUxBVEVfSklTWDAyMTNfMjAwMF9ERUNPREVfUExBTkUxKCoqb3V0YnVmLAorICAgICAgICAgICAgICAgIEVNVUxBVEVfSklTWDAyMTNfMjAwMF9ERUNPREVfUExBTkUxKHdyaXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzEsIGMyKQotICAgICAgICAgICAgICAgIGVsc2UgVFJZTUFQX0RFQyhqaXN4MDIwOCwgKipvdXRidWYsIGMxLCBjMikgewotICAgICAgICAgICAgICAgICAgICBORVhUX09VVCgxKQorICAgICAgICAgICAgICAgIGVsc2UgVFJZTUFQX0RFQyhqaXN4MDIwOCwgd3JpdGVyLCBjMSwgYzIpIHsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZSBUUllNQVBfREVDKGppc3gwMjEzXzFfYm1wLCAqKm91dGJ1ZiwKKyAgICAgICAgICAgICAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMTNfMV9ibXAsIHdyaXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzEsIGMyKSB7Ci0gICAgICAgICAgICAgICAgICAgIE5FWFRfT1VUKDEpCiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UgVFJZTUFQX0RFQyhqaXN4MDIxM18xX2VtcCwgY29kZSwgYzEsIGMyKSB7Ci0gICAgICAgICAgICAgICAgICAgIFdSSVRFVUNTNChFTVBCQVNFIHwgY29kZSkKKyAgICAgICAgICAgICAgICBlbHNlIFRSWU1BUF9ERUNfQ0hBUihqaXN4MDIxM18xX2VtcCwgY29kZSwgYzEsIGMyKSB7CisgICAgICAgICAgICAgICAgICAgIE9VVENIQVIoRU1QQkFTRSB8IGNvZGUpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMTNfcGFpciwgY29kZSwgYzEsIGMyKSB7Ci0gICAgICAgICAgICAgICAgICAgIFdSSVRFMihjb2RlID4+IDE2LCBjb2RlICYgMHhmZmZmKQotICAgICAgICAgICAgICAgICAgICBORVhUX09VVCgyKQorICAgICAgICAgICAgICAgIGVsc2UgVFJZTUFQX0RFQ19DSEFSKGppc3gwMjEzX3BhaXIsIGNvZGUsIGMxLCBjMikgeworICAgICAgICAgICAgICAgICAgICBPVVRDSEFSMihjb2RlID4+IDE2LCBjb2RlICYgMHhmZmZmKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgICAgICBORVhUX0lOKDIpCisgICAgICAgICAgICAgICAgTkVYVF9JTigyKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgeyAvKiBQbGFuZSAyICovCiAgICAgICAgICAgICAgICAgaWYgKGMxID49IDB4NjcpIGMxICs9IDB4MDc7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYzEgPj0gMHg2MyB8fCBjMSA9PSAweDVmKSBjMSAtPSAweDM3OwogICAgICAgICAgICAgICAgIGVsc2UgYzEgLT0gMHgzZDsKIAotICAgICAgICAgICAgICAgIEVNVUxBVEVfSklTWDAyMTNfMjAwMF9ERUNPREVfUExBTkUyKCoqb3V0YnVmLAorICAgICAgICAgICAgICAgIEVNVUxBVEVfSklTWDAyMTNfMjAwMF9ERUNPREVfUExBTkUyKHdyaXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzEsIGMyKQotICAgICAgICAgICAgICAgIGVsc2UgVFJZTUFQX0RFQyhqaXN4MDIxM18yX2JtcCwgKipvdXRidWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMxLCBjMikgOwotICAgICAgICAgICAgICAgIGVsc2UgVFJZTUFQX0RFQyhqaXN4MDIxM18yX2VtcCwgY29kZSwgYzEsIGMyKSB7Ci0gICAgICAgICAgICAgICAgICAgIFdSSVRFVUNTNChFTVBCQVNFIHwgY29kZSkKLSAgICAgICAgICAgICAgICAgICAgTkVYVF9JTigyKQorICAgICAgICAgICAgICAgIGVsc2UgVFJZTUFQX0RFQyhqaXN4MDIxM18yX2JtcCwgd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMSwgYzIpIHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgVFJZTUFQX0RFQ19DSEFSKGppc3gwMjEzXzJfZW1wLCBjb2RlLCBjMSwgYzIpIHsKKyAgICAgICAgICAgICAgICAgICAgT1VUQ0hBUihFTVBCQVNFIHwgY29kZSk7CisgICAgICAgICAgICAgICAgICAgIE5FWFRfSU4oMik7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICAgICAgICAgIE5FWFQoMiwgMSkKKyAgICAgICAgICAgICAgICBORVhUX0lOKDIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIDE7CiAKLSAgICAgICAgTkVYVCgxLCAxKSAvKiBKSVMgWCAwMjAxICovCisgICAgICAgIE5FWFRfSU4oMSk7IC8qIEpJUyBYIDAyMDEgKi8KICAgICB9CiAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3Nfa3IuYyBiL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3Nfa3IuYwppbmRleCBmNTY5N2RkLi4wYzIzMDlkIDEwMDY0NAotLS0gYS9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX2tyLmMKKysrIGIvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19rci5jCkBAIC0zMywxNiArMzMsMTggQEAKIAogRU5DT0RFUihldWNfa3IpCiB7Ci0gICAgd2hpbGUgKGlubGVmdCA+IDApIHsKLSAgICAgICAgUHlfVU5JQ09ERSBjID0gSU4xOworICAgIHdoaWxlICgqaW5wb3MgPCBpbmxlbikgeworICAgICAgICBQeV9VQ1M0IGMgPSBJTkNIQVIxOwogICAgICAgICBEQkNIQVIgY29kZTsKIAogICAgICAgICBpZiAoYyA8IDB4ODApIHsKLSAgICAgICAgICAgIFdSSVRFMSgodW5zaWduZWQgY2hhciljKQotICAgICAgICAgICAgTkVYVCgxLCAxKQorICAgICAgICAgICAgV1JJVEVCWVRFMSgodW5zaWduZWQgY2hhciljKQorICAgICAgICAgICAgTkVYVCgxLCAxKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIFVDUzRJTlZBTElEKGMpCisKKyAgICAgICAgaWYgKGMgPiAweEZGRkYpCisgICAgICAgICAgICByZXR1cm4gMTsKIAogICAgICAgICBSRVFVSVJFX09VVEJVRigyKQogICAgICAgICBUUllNQVBfRU5DKGNwOTQ5LCBjb2RlLCBjKTsKQEAgLTUwLDkgKzUyLDkgQEAKIAogICAgICAgICBpZiAoKGNvZGUgJiAweDgwMDApID09IDApIHsKICAgICAgICAgICAgIC8qIEtTIFggMTAwMSBjb2RlZCBjaGFyYWN0ZXIgKi8KLSAgICAgICAgICAgIE9VVDEoKGNvZGUgPj4gOCkgfCAweDgwKQotICAgICAgICAgICAgT1VUMigoY29kZSAmIDB4RkYpIHwgMHg4MCkKLSAgICAgICAgICAgIE5FWFQoMSwgMikKKyAgICAgICAgICAgIE9VVEJZVEUxKChjb2RlID4+IDgpIHwgMHg4MCkKKyAgICAgICAgICAgIE9VVEJZVEUyKChjb2RlICYgMHhGRikgfCAweDgwKQorICAgICAgICAgICAgTkVYVCgxLCAyKTsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsgICAgICAgICAgLyogTWFwcGluZyBpcyBmb3VuZCBpbiBDUDk0OSBleHRlbnNpb24sCiAgICAgICAgICAgICAgICAgICogYnV0IHdlIGVuY29kZSBpdCBpbiBLUyBYIDEwMDE6MTk5OCBBbm5leCAzLApAQCAtNjEsMjMgKzYzLDIzIEBACiAgICAgICAgICAgICBSRVFVSVJFX09VVEJVRig4KQogCiAgICAgICAgICAgICAvKiBzeWxsYWJsZSBjb21wb3NpdGlvbiBwcmVjZWRlbmNlICovCi0gICAgICAgICAgICBPVVQxKEVVQ0tSX0pBTU9fRklSU1RCWVRFKQotICAgICAgICAgICAgT1VUMihFVUNLUl9KQU1PX0ZJTExFUikKKyAgICAgICAgICAgIE9VVEJZVEUxKEVVQ0tSX0pBTU9fRklSU1RCWVRFKQorICAgICAgICAgICAgT1VUQllURTIoRVVDS1JfSkFNT19GSUxMRVIpCiAKICAgICAgICAgICAgIC8qIEFsbCBjb2RlcG9pbnRzIGluIENQOTQ5IGV4dGVuc2lvbiBhcmUgaW4gdW5pY29kZQogICAgICAgICAgICAgICogSGFuZ3VsIFN5bGxhYmxlIGFyZWEuICovCiAgICAgICAgICAgICBhc3NlcnQoMHhhYzAwIDw9IGMgJiYgYyA8PSAweGQ3YTMpOwogICAgICAgICAgICAgYyAtPSAweGFjMDA7CiAKLSAgICAgICAgICAgIE9VVDMoRVVDS1JfSkFNT19GSVJTVEJZVEUpCi0gICAgICAgICAgICBPVVQ0KHUyY2drX2Nob3Nlb25nW2MgLyA1ODhdKQotICAgICAgICAgICAgTkVYVF9PVVQoNCkKKyAgICAgICAgICAgIE9VVEJZVEUzKEVVQ0tSX0pBTU9fRklSU1RCWVRFKQorICAgICAgICAgICAgT1VUQllURTQodTJjZ2tfY2hvc2VvbmdbYyAvIDU4OF0pCisgICAgICAgICAgICBORVhUX09VVCg0KTsKIAotICAgICAgICAgICAgT1VUMShFVUNLUl9KQU1PX0ZJUlNUQllURSkKLSAgICAgICAgICAgIE9VVDIodTJjZ2tfanVuZ3Nlb25nWyhjIC8gMjgpICUgMjFdKQotICAgICAgICAgICAgT1VUMyhFVUNLUl9KQU1PX0ZJUlNUQllURSkKLSAgICAgICAgICAgIE9VVDQodTJjZ2tfam9uZ3Nlb25nW2MgJSAyOF0pCi0gICAgICAgICAgICBORVhUKDEsIDQpCisgICAgICAgICAgICBPVVRCWVRFMShFVUNLUl9KQU1PX0ZJUlNUQllURSkKKyAgICAgICAgICAgIE9VVEJZVEUyKHUyY2drX2p1bmdzZW9uZ1soYyAvIDI4KSAlIDIxXSkKKyAgICAgICAgICAgIE9VVEJZVEUzKEVVQ0tSX0pBTU9fRklSU1RCWVRFKQorICAgICAgICAgICAgT1VUQllURTQodTJjZ2tfam9uZ3Nlb25nW2MgJSAyOF0pCisgICAgICAgICAgICBORVhUKDEsIDQpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMDIsMjAgKzEwNCwxOCBAQAogREVDT0RFUihldWNfa3IpCiB7CiAgICAgd2hpbGUgKGlubGVmdCA+IDApIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBjID0gSU4xOwotCi0gICAgICAgIFJFUVVJUkVfT1VUQlVGKDEpCisgICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9IElOQllURTE7CiAKICAgICAgICAgaWYgKGMgPCAweDgwKSB7Ci0gICAgICAgICAgICBPVVQxKGMpCi0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBPVVRDSEFSKGMpOworICAgICAgICAgICAgTkVYVF9JTigxKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgUkVRVUlSRV9JTkJVRigyKQogCiAgICAgICAgIGlmIChjID09IEVVQ0tSX0pBTU9fRklSU1RCWVRFICYmCi0gICAgICAgICAgICBJTjIgPT0gRVVDS1JfSkFNT19GSUxMRVIpIHsKKyAgICAgICAgICAgIElOQllURTIgPT0gRVVDS1JfSkFNT19GSUxMRVIpIHsKICAgICAgICAgICAgIC8qIEtTIFggMTAwMToxOTk4IEFubmV4IDMgbWFrZS11cCBzZXF1ZW5jZSAqLwogICAgICAgICAgICAgREJDSEFSIGNobywganVuZywgam9uZzsKIApAQCAtMTQ1LDExICsxNDUsMTEgQEAKICAgICAgICAgICAgIGlmIChjaG8gPT0gTk9ORSB8fCBqdW5nID09IE5PTkUgfHwgam9uZyA9PSBOT05FKQogICAgICAgICAgICAgICAgIHJldHVybiAxOwogCi0gICAgICAgICAgICBPVVQxKDB4YWMwMCArIGNobyo1ODggKyBqdW5nKjI4ICsgam9uZyk7Ci0gICAgICAgICAgICBORVhUKDgsIDEpCisgICAgICAgICAgICBPVVRDSEFSKDB4YWMwMCArIGNobyo1ODggKyBqdW5nKjI4ICsgam9uZyk7CisgICAgICAgICAgICBORVhUX0lOKDgpOwogICAgICAgICB9Ci0gICAgICAgIGVsc2UgVFJZTUFQX0RFQyhrc3gxMDAxLCAqKm91dGJ1ZiwgYyBeIDB4ODAsIElOMiBeIDB4ODApIHsKLSAgICAgICAgICAgIE5FWFQoMiwgMSkKKyAgICAgICAgZWxzZSBUUllNQVBfREVDKGtzeDEwMDEsIHdyaXRlciwgYyBeIDB4ODAsIElOQllURTIgXiAweDgwKSB7CisgICAgICAgICAgICBORVhUX0lOKDIpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldHVybiAxOwpAQCAtMTY2LDI3ICsxNjYsMjkgQEAKIAogRU5DT0RFUihjcDk0OSkKIHsKLSAgICB3aGlsZSAoaW5sZWZ0ID4gMCkgewotICAgICAgICBQeV9VTklDT0RFIGMgPSBJTjE7CisgICAgd2hpbGUgKCppbnBvcyA8IGlubGVuKSB7CisgICAgICAgIFB5X1VDUzQgYyA9IElOQ0hBUjE7CiAgICAgICAgIERCQ0hBUiBjb2RlOwogCiAgICAgICAgIGlmIChjIDwgMHg4MCkgewotICAgICAgICAgICAgV1JJVEUxKCh1bnNpZ25lZCBjaGFyKWMpCi0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBXUklURUJZVEUxKCh1bnNpZ25lZCBjaGFyKWMpCisgICAgICAgICAgICBORVhUKDEsIDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAgVUNTNElOVkFMSUQoYykKKworICAgICAgICBpZiAoYyA+IDB4RkZGRikKKyAgICAgICAgICAgIHJldHVybiAxOwogCiAgICAgICAgIFJFUVVJUkVfT1VUQlVGKDIpCiAgICAgICAgIFRSWU1BUF9FTkMoY3A5NDksIGNvZGUsIGMpOwogICAgICAgICBlbHNlIHJldHVybiAxOwogCi0gICAgICAgIE9VVDEoKGNvZGUgPj4gOCkgfCAweDgwKQorICAgICAgICBPVVRCWVRFMSgoY29kZSA+PiA4KSB8IDB4ODApCiAgICAgICAgIGlmIChjb2RlICYgMHg4MDAwKQotICAgICAgICAgICAgT1VUMihjb2RlICYgMHhGRikgLyogTVNCIHNldDogQ1A5NDkgKi8KKyAgICAgICAgICAgIE9VVEJZVEUyKGNvZGUgJiAweEZGKSAvKiBNU0Igc2V0OiBDUDk0OSAqLwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBPVVQyKChjb2RlICYgMHhGRikgfCAweDgwKSAvKiBNU0IgdW5zZXQ6IGtzIHggMTAwMSAqLwotICAgICAgICBORVhUKDEsIDIpCisgICAgICAgICAgICBPVVRCWVRFMigoY29kZSAmIDB4RkYpIHwgMHg4MCkgLyogTVNCIHVuc2V0OiBrcyB4IDEwMDEgKi8KKyAgICAgICAgTkVYVCgxLCAyKTsKICAgICB9CiAKICAgICByZXR1cm4gMDsKQEAgLTE5NSwyMiArMTk3LDIwIEBACiBERUNPREVSKGNwOTQ5KQogewogICAgIHdoaWxlIChpbmxlZnQgPiAwKSB7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9IElOMTsKLQotICAgICAgICBSRVFVSVJFX09VVEJVRigxKQorICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSBJTkJZVEUxOwogCiAgICAgICAgIGlmIChjIDwgMHg4MCkgewotICAgICAgICAgICAgT1VUMShjKQotICAgICAgICAgICAgTkVYVCgxLCAxKQorICAgICAgICAgICAgT1VUQ0hBUihjKTsKKyAgICAgICAgICAgIE5FWFRfSU4oMSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIFJFUVVJUkVfSU5CVUYoMikKLSAgICAgICAgVFJZTUFQX0RFQyhrc3gxMDAxLCAqKm91dGJ1ZiwgYyBeIDB4ODAsIElOMiBeIDB4ODApOwotICAgICAgICBlbHNlIFRSWU1BUF9ERUMoY3A5NDlleHQsICoqb3V0YnVmLCBjLCBJTjIpOworICAgICAgICBUUllNQVBfREVDKGtzeDEwMDEsIHdyaXRlciwgYyBeIDB4ODAsIElOQllURTIgXiAweDgwKTsKKyAgICAgICAgZWxzZSBUUllNQVBfREVDKGNwOTQ5ZXh0LCB3cml0ZXIsIGMsIElOQllURTIpOwogICAgICAgICBlbHNlIHJldHVybiAxOwogCi0gICAgICAgIE5FWFQoMiwgMSkKKyAgICAgICAgTkVYVF9JTigyKTsKICAgICB9CiAKICAgICByZXR1cm4gMDsKQEAgLTI1MCwxNiArMjUwLDE4IEBACiAKIEVOQ09ERVIoam9oYWIpCiB7Ci0gICAgd2hpbGUgKGlubGVmdCA+IDApIHsKLSAgICAgICAgUHlfVU5JQ09ERSBjID0gSU4xOworICAgIHdoaWxlICgqaW5wb3MgPCBpbmxlbikgeworICAgICAgICBQeV9VQ1M0IGMgPSBJTkNIQVIxOwogICAgICAgICBEQkNIQVIgY29kZTsKIAogICAgICAgICBpZiAoYyA8IDB4ODApIHsKLSAgICAgICAgICAgIFdSSVRFMSgodW5zaWduZWQgY2hhciljKQotICAgICAgICAgICAgTkVYVCgxLCAxKQorICAgICAgICAgICAgV1JJVEVCWVRFMSgodW5zaWduZWQgY2hhciljKQorICAgICAgICAgICAgTkVYVCgxLCAxKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIFVDUzRJTlZBTElEKGMpCisKKyAgICAgICAgaWYgKGMgPiAweEZGRkYpCisgICAgICAgICAgICByZXR1cm4gMTsKIAogICAgICAgICBSRVFVSVJFX09VVEJVRigyKQogCkBAIC0yODUsOSArMjg3LDkgQEAKICAgICAgICAgICAgICAgICB0MSA9IChjMSA8IDB4NGEgPyAoYzEgLSAweDIxICsgMHgxYjIpIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGMxIC0gMHgyMSArIDB4MTk3KSk7CiAgICAgICAgICAgICAgICAgdDIgPSAoKHQxICYgMSkgPyAweDVlIDogMCkgKyAoYzIgLSAweDIxKTsKLSAgICAgICAgICAgICAgICBPVVQxKHQxID4+IDEpCi0gICAgICAgICAgICAgICAgT1VUMih0MiA8IDB4NGUgPyB0MiArIDB4MzEgOiB0MiArIDB4NDMpCi0gICAgICAgICAgICAgICAgTkVYVCgxLCAyKQorICAgICAgICAgICAgICAgIE9VVEJZVEUxKHQxID4+IDEpCisgICAgICAgICAgICAgICAgT1VUQllURTIodDIgPCAweDRlID8gdDIgKyAweDMxIDogdDIgKyAweDQzKQorICAgICAgICAgICAgICAgIE5FWFQoMSwgMik7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCkBAIC0yOTYsOSArMjk4LDkgQEAKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIDE7CiAKLSAgICAgICAgT1VUMShjb2RlID4+IDgpCi0gICAgICAgIE9VVDIoY29kZSAmIDB4ZmYpCi0gICAgICAgIE5FWFQoMSwgMikKKyAgICAgICAgT1VUQllURTEoY29kZSA+PiA4KQorICAgICAgICBPVVRCWVRFMihjb2RlICYgMHhmZikKKyAgICAgICAgTkVYVCgxLCAyKTsKICAgICB9CiAKICAgICByZXR1cm4gMDsKQEAgLTM0OCwxOCArMzUwLDE2IEBACiBERUNPREVSKGpvaGFiKQogewogICAgIHdoaWxlIChpbmxlZnQgPiAwKSB7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgICAgYyA9IElOMSwgYzI7Ci0KLSAgICAgICAgUkVRVUlSRV9PVVRCVUYoMSkKKyAgICAgICAgdW5zaWduZWQgY2hhciAgICBjID0gSU5CWVRFMSwgYzI7CiAKICAgICAgICAgaWYgKGMgPCAweDgwKSB7Ci0gICAgICAgICAgICBPVVQxKGMpCi0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBPVVRDSEFSKGMpOworICAgICAgICAgICAgTkVYVF9JTigxKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgUkVRVUlSRV9JTkJVRigyKQotICAgICAgICBjMiA9IElOMjsKKyAgICAgICAgYzIgPSBJTkJZVEUyOwogCiAgICAgICAgIGlmIChjIDwgMHhkOCkgewogICAgICAgICAgICAgLyogam9oYWIgaGFuZ3VsICovCkBAIC0zODEsMzMgKzM4MSwzMyBAQAogICAgICAgICAgICAgaWYgKGlfY2hvID09IEZJTEwpIHsKICAgICAgICAgICAgICAgICBpZiAoaV9qdW5nID09IEZJTEwpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGlfam9uZyA9PSBGSUxMKQotICAgICAgICAgICAgICAgICAgICAgICAgT1VUMSgweDMwMDApCisgICAgICAgICAgICAgICAgICAgICAgICBPVVRDSEFSKDB4MzAwMCk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIE9VVDEoMHgzMTAwIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgam9oYWJqYW1vX2pvbmdzZW9uZ1tjX2pvbmddKQorICAgICAgICAgICAgICAgICAgICAgICAgT1VUQ0hBUigweDMxMDAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpvaGFiamFtb19qb25nc2VvbmdbY19qb25nXSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBpZiAoaV9qb25nID09IEZJTEwpCi0gICAgICAgICAgICAgICAgICAgICAgICBPVVQxKDB4MzEwMCB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGpvaGFiamFtb19qdW5nc2VvbmdbY19qdW5nXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIE9VVENIQVIoMHgzMTAwIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqb2hhYmphbW9fanVuZ3Nlb25nW2NfanVuZ10pOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmIChpX2p1bmcgPT0gRklMTCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoaV9qb25nID09IEZJTEwpCi0gICAgICAgICAgICAgICAgICAgICAgICBPVVQxKDB4MzEwMCB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGpvaGFiamFtb19jaG9zZW9uZ1tjX2Nob10pCisgICAgICAgICAgICAgICAgICAgICAgICBPVVRDSEFSKDB4MzEwMCB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgam9oYWJqYW1vX2Nob3Nlb25nW2NfY2hvXSk7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIE9VVDEoMHhhYzAwICsKLSAgICAgICAgICAgICAgICAgICAgICAgICBpX2NobyAqIDU4OCArCi0gICAgICAgICAgICAgICAgICAgICAgICAgaV9qdW5nICogMjggKwotICAgICAgICAgICAgICAgICAgICAgICAgIChpX2pvbmcgPT0gRklMTCA/IDAgOiBpX2pvbmcpKQorICAgICAgICAgICAgICAgICAgICBPVVRDSEFSKDB4YWMwMCArCisgICAgICAgICAgICAgICAgICAgICAgICBpX2NobyAqIDU4OCArCisgICAgICAgICAgICAgICAgICAgICAgICBpX2p1bmcgKiAyOCArCisgICAgICAgICAgICAgICAgICAgICAgICAoaV9qb25nID09IEZJTEwgPyAwIDogaV9qb25nKSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBORVhUKDIsIDEpCisgICAgICAgICAgICBORVhUX0lOKDIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLyogS1MgWCAxMDAxIGV4Y2VwdCBoYW5ndWwgamFtb3MgYW5kIHN5bGxhYmxlcyAqLwogICAgICAgICAgICAgaWYgKGMgPT0gMHhkZiB8fCBjID4gMHhmOSB8fApAQCAtNDI0LDkgKzQyNCw5IEBACiAgICAgICAgICAgICAgICAgdDEgPSB0MSArICh0MiA8IDB4NWUgPyAwIDogMSkgKyAweDIxOwogICAgICAgICAgICAgICAgIHQyID0gKHQyIDwgMHg1ZSA/IHQyIDogdDIgLSAweDVlKSArIDB4MjE7CiAKLSAgICAgICAgICAgICAgICBUUllNQVBfREVDKGtzeDEwMDEsICoqb3V0YnVmLCB0MSwgdDIpOworICAgICAgICAgICAgICAgIFRSWU1BUF9ERUMoa3N4MTAwMSwgd3JpdGVyLCB0MSwgdDIpOwogICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIDE7Ci0gICAgICAgICAgICAgICAgTkVYVCgyLCAxKQorICAgICAgICAgICAgICAgIE5FWFRfSU4oMik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX3R3LmMgYi9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX3R3LmMKaW5kZXggOTE2Mjk4ZC4uODBlMGI4MSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc190dy5jCisrKyBiL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3NfdHcuYwpAQCAtMTMsMjYgKzEzLDI4IEBACiAKIEVOQ09ERVIoYmlnNSkKIHsKLSAgICB3aGlsZSAoaW5sZWZ0ID4gMCkgewotICAgICAgICBQeV9VTklDT0RFIGMgPSAqKmluYnVmOworICAgIHdoaWxlICgqaW5wb3MgPCBpbmxlbikgeworICAgICAgICBQeV9VQ1M0IGMgPSBJTkNIQVIxOwogICAgICAgICBEQkNIQVIgY29kZTsKIAogICAgICAgICBpZiAoYyA8IDB4ODApIHsKICAgICAgICAgICAgIFJFUVVJUkVfT1VUQlVGKDEpCiAgICAgICAgICAgICAqKm91dGJ1ZiA9ICh1bnNpZ25lZCBjaGFyKWM7Ci0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBORVhUKDEsIDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAgVUNTNElOVkFMSUQoYykKKworICAgICAgICBpZiAoYyA+IDB4RkZGRikKKyAgICAgICAgICAgIHJldHVybiAxOwogCiAgICAgICAgIFJFUVVJUkVfT1VUQlVGKDIpCiAKICAgICAgICAgVFJZTUFQX0VOQyhiaWc1LCBjb2RlLCBjKTsKICAgICAgICAgZWxzZSByZXR1cm4gMTsKIAotICAgICAgICBPVVQxKGNvZGUgPj4gOCkKLSAgICAgICAgT1VUMihjb2RlICYgMHhGRikKLSAgICAgICAgTkVYVCgxLCAyKQorICAgICAgICBPVVRCWVRFMShjb2RlID4+IDgpCisgICAgICAgIE9VVEJZVEUyKGNvZGUgJiAweEZGKQorICAgICAgICBORVhUKDEsIDIpOwogICAgIH0KIAogICAgIHJldHVybiAwOwpAQCAtNDEsMTkgKzQzLDE3IEBACiBERUNPREVSKGJpZzUpCiB7CiAgICAgd2hpbGUgKGlubGVmdCA+IDApIHsKLSAgICAgICAgdW5zaWduZWQgY2hhciBjID0gSU4xOwotCi0gICAgICAgIFJFUVVJUkVfT1VUQlVGKDEpCisgICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9IElOQllURTE7CiAKICAgICAgICAgaWYgKGMgPCAweDgwKSB7Ci0gICAgICAgICAgICBPVVQxKGMpCi0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBPVVRDSEFSKGMpOworICAgICAgICAgICAgTkVYVF9JTigxKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgUkVRVUlSRV9JTkJVRigyKQotICAgICAgICBUUllNQVBfREVDKGJpZzUsICoqb3V0YnVmLCBjLCBJTjIpIHsKLSAgICAgICAgICAgIE5FWFQoMiwgMSkKKyAgICAgICAgVFJZTUFQX0RFQyhiaWc1LCB3cml0ZXIsIGMsIElOQllURTIpIHsKKyAgICAgICAgICAgIE5FWFRfSU4oMik7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSByZXR1cm4gMTsKICAgICB9CkBAIC02OCwyNSArNjgsMjcgQEAKIAogRU5DT0RFUihjcDk1MCkKIHsKLSAgICB3aGlsZSAoaW5sZWZ0ID4gMCkgewotICAgICAgICBQeV9VTklDT0RFIGMgPSBJTjE7CisgICAgd2hpbGUgKCppbnBvcyA8IGlubGVuKSB7CisgICAgICAgIFB5X1VDUzQgYyA9IElOQ0hBUjE7CiAgICAgICAgIERCQ0hBUiBjb2RlOwogCiAgICAgICAgIGlmIChjIDwgMHg4MCkgewotICAgICAgICAgICAgV1JJVEUxKCh1bnNpZ25lZCBjaGFyKWMpCi0gICAgICAgICAgICBORVhUKDEsIDEpCisgICAgICAgICAgICBXUklURUJZVEUxKCh1bnNpZ25lZCBjaGFyKWMpCisgICAgICAgICAgICBORVhUKDEsIDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAgVUNTNElOVkFMSUQoYykKKworICAgICAgICBpZiAoYyA+IDB4RkZGRikKKyAgICAgICAgICAgIHJldHVybiAxOwogCiAgICAgICAgIFJFUVVJUkVfT1VUQlVGKDIpCiAgICAgICAgIFRSWU1BUF9FTkMoY3A5NTBleHQsIGNvZGUsIGMpOwogICAgICAgICBlbHNlIFRSWU1BUF9FTkMoYmlnNSwgY29kZSwgYyk7CiAgICAgICAgIGVsc2UgcmV0dXJuIDE7CiAKLSAgICAgICAgT1VUMShjb2RlID4+IDgpCi0gICAgICAgIE9VVDIoY29kZSAmIDB4RkYpCi0gICAgICAgIE5FWFQoMSwgMikKKyAgICAgICAgT1VUQllURTEoY29kZSA+PiA4KQorICAgICAgICBPVVRCWVRFMihjb2RlICYgMHhGRikKKyAgICAgICAgTkVYVCgxLCAyKTsKICAgICB9CiAKICAgICByZXR1cm4gMDsKQEAgLTk1LDIzICs5NywyMSBAQAogREVDT0RFUihjcDk1MCkKIHsKICAgICB3aGlsZSAoaW5sZWZ0ID4gMCkgewotICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSBJTjE7Ci0KLSAgICAgICAgUkVRVUlSRV9PVVRCVUYoMSkKKyAgICAgICAgdW5zaWduZWQgY2hhciBjID0gSU5CWVRFMTsKIAogICAgICAgICBpZiAoYyA8IDB4ODApIHsKLSAgICAgICAgICAgIE9VVDEoYykKLSAgICAgICAgICAgIE5FWFQoMSwgMSkKKyAgICAgICAgICAgIE9VVENIQVIoYyk7CisgICAgICAgICAgICBORVhUX0lOKDEpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBSRVFVSVJFX0lOQlVGKDIpCiAKLSAgICAgICAgVFJZTUFQX0RFQyhjcDk1MGV4dCwgKipvdXRidWYsIGMsIElOMik7Ci0gICAgICAgIGVsc2UgVFJZTUFQX0RFQyhiaWc1LCAqKm91dGJ1ZiwgYywgSU4yKTsKKyAgICAgICAgVFJZTUFQX0RFQyhjcDk1MGV4dCwgd3JpdGVyLCBjLCBJTkJZVEUyKTsKKyAgICAgICAgZWxzZSBUUllNQVBfREVDKGJpZzUsIHdyaXRlciwgYywgSU5CWVRFMik7CiAgICAgICAgIGVsc2UgcmV0dXJuIDE7CiAKLSAgICAgICAgTkVYVCgyLCAxKQorICAgICAgICBORVhUX0lOKDIpOwogICAgIH0KIAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9jamtjb2RlY3MvYWxnX2ppc3gwMjAxLmggYi9Nb2R1bGVzL2Nqa2NvZGVjcy9hbGdfamlzeDAyMDEuaAppbmRleCAwYmM3ZGI1Li45OGM2M2U2IDEwMDY0NAotLS0gYS9Nb2R1bGVzL2Nqa2NvZGVjcy9hbGdfamlzeDAyMDEuaAorKysgYi9Nb2R1bGVzL2Nqa2NvZGVjcy9hbGdfamlzeDAyMDEuaApAQCAtMTAsMTUgKzEwLDI0IEBACiAgICAgSklTWDAyMDFfUl9FTkNPREUoYywgYXNzaSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBlbHNlIEpJU1gwMjAxX0tfRU5DT0RFKGMsIGFzc2kpCiAKLSNkZWZpbmUgSklTWDAyMDFfUl9ERUNPREUoYywgYXNzaSkgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBKSVNYMDIwMV9SX0RFQ09ERV9DSEFSKGMsIGFzc2kpICAgICAgICAgICAgICAgICBcCiAgICAgaWYgKChjKSA8IDB4NWMpIChhc3NpKSA9IChjKTsgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBlbHNlIGlmICgoYykgPT0gMHg1YykgKGFzc2kpID0gMHgwMGE1OyAgICAgICAgICAgICAgXAogICAgIGVsc2UgaWYgKChjKSA8IDB4N2UpIChhc3NpKSA9IChjKTsgICAgICAgICAgICAgICAgICBcCiAgICAgZWxzZSBpZiAoKGMpID09IDB4N2UpIChhc3NpKSA9IDB4MjAzZTsgICAgICAgICAgICAgIFwKICAgICBlbHNlIGlmICgoYykgPT0gMHg3ZikgKGFzc2kpID0gMHg3ZjsKLSNkZWZpbmUgSklTWDAyMDFfS19ERUNPREUoYywgYXNzaSkgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBKSVNYMDIwMV9SX0RFQ09ERShjLCB3cml0ZXIpICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKChjKSA8IDB4NWMpIE9VVENIQVIoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZWxzZSBpZiAoKGMpID09IDB4NWMpIE9VVENIQVIoMHgwMGE1KTsgICAgICAgICAgICAgICAgICBcCisgICAgZWxzZSBpZiAoKGMpIDwgMHg3ZSkgT1VUQ0hBUihjKTsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZWxzZSBpZiAoKGMpID09IDB4N2UpIE9VVENIQVIoMHgyMDNlKTsgICAgICAgICAgICAgICAgICBcCisgICAgZWxzZSBpZiAoKGMpID09IDB4N2YpIE9VVENIQVIoMHg3Zik7CisjZGVmaW5lIEpJU1gwMjAxX0tfREVDT0RFKGMsIHdyaXRlcikgICAgICAgICAgICAgICAgICAgIFwKICAgICBpZiAoKGMpID49IDB4YTEgJiYgKGMpIDw9IDB4ZGYpICAgICAgICAgICAgICAgICAgICAgXAotICAgIChhc3NpKSA9IDB4ZmVjMCArIChjKTsKLSNkZWZpbmUgSklTWDAyMDFfREVDT0RFKGMsIGFzc2kpICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEpJU1gwMjAxX1JfREVDT0RFKGMsIGFzc2kpICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZWxzZSBKSVNYMDIwMV9LX0RFQ09ERShjLCBhc3NpKQorICAgICAgICBPVVRDSEFSKDB4ZmVjMCArIChjKSk7CisjZGVmaW5lIEpJU1gwMjAxX0tfREVDT0RFX0NIQVIoYywgYXNzaSkgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoKGMpID49IDB4YTEgJiYgKGMpIDw9IDB4ZGYpICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoYXNzaSkgPSAweGZlYzAgKyAoYyk7CisjZGVmaW5lIEpJU1gwMjAxX0RFQ09ERShjLCB3cml0ZXIpICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBKSVNYMDIwMV9SX0RFQ09ERShjLCB3cml0ZXIpICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGVsc2UgSklTWDAyMDFfS19ERUNPREUoYywgd3JpdGVyKQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9jamtjb2RlY3MvY2prY29kZWNzLmggYi9Nb2R1bGVzL2Nqa2NvZGVjcy9jamtjb2RlY3MuaAppbmRleCBhYjA2ODJhLi4xOGNjMDJmIDEwMDY0NAotLS0gYS9Nb2R1bGVzL2Nqa2NvZGVjcy9jamtjb2RlY3MuaAorKysgYi9Nb2R1bGVzL2Nqa2NvZGVjcy9jamtjb2RlY3MuaApAQCAtMzMsNyArMzMsNyBAQAogdHlwZWRlZiBzdHJ1Y3QgZGJjc19pbmRleCBkZWNvZGVfbWFwOwogCiBzdHJ1Y3Qgd2lkZWRiY3NfaW5kZXggewotICAgIGNvbnN0IHVjczRfdCAqbWFwOworICAgIGNvbnN0IFB5X1VDUzQgKm1hcDsKICAgICB1bnNpZ25lZCBjaGFyIGJvdHRvbSwgdG9wOwogfTsKIHR5cGVkZWYgc3RydWN0IHdpZGVkYmNzX2luZGV4IHdpZGVkZWNvZGVfbWFwOwpAQCAtNTYsNyArNTYsNyBAQAogfTsKIAogc3RydWN0IHBhaXJfZW5jb2RlbWFwIHsKLSAgICB1Y3M0X3QgdW5pc2VxOworICAgIFB5X1VDUzQgdW5pc2VxOwogICAgIERCQ0hBUiBjb2RlOwogfTsKIApAQCAtNzIsNyArNzIsOCBAQAogI2RlZmluZSBFTkNPREVSKGVuY29kaW5nKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHN0YXRpYyBQeV9zc2l6ZV90IGVuY29kaW5nIyNfZW5jb2RlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBNdWx0aWJ5dGVDb2RlY19TdGF0ZSAqc3RhdGUsIGNvbnN0IHZvaWQgKmNvbmZpZywgICAgICAgICAgICAgICAgXAotICAgICAgICBjb25zdCBQeV9VTklDT0RFICoqaW5idWYsIFB5X3NzaXplX3QgaW5sZWZ0LCAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpbnQga2luZCwgdm9pZCAqZGF0YSwgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgUHlfc3NpemVfdCAqaW5wb3MsIFB5X3NzaXplX3QgaW5sZW4sICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgdW5zaWduZWQgY2hhciAqKm91dGJ1ZiwgUHlfc3NpemVfdCBvdXRsZWZ0LCBpbnQgZmxhZ3MpCiAjZGVmaW5lIEVOQ09ERVJfUkVTRVQoZW5jb2RpbmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgc3RhdGljIFB5X3NzaXplX3QgZW5jb2RpbmcjI19lbmNvZGVfcmVzZXQoICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC04NiwyOCArODcsMzAgQEAKICAgICBzdGF0aWMgUHlfc3NpemVfdCBlbmNvZGluZyMjX2RlY29kZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgTXVsdGlieXRlQ29kZWNfU3RhdGUgKnN0YXRlLCBjb25zdCB2b2lkICpjb25maWcsICAgICAgICAgICAgICAgIFwKICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqKmluYnVmLCBQeV9zc2l6ZV90IGlubGVmdCwgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgUHlfVU5JQ09ERSAqKm91dGJ1ZiwgUHlfc3NpemVfdCBvdXRsZWZ0KQorICAgICAgICBfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIpCiAjZGVmaW5lIERFQ09ERVJfUkVTRVQoZW5jb2RpbmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgc3RhdGljIFB5X3NzaXplX3QgZW5jb2RpbmcjI19kZWNvZGVfcmVzZXQoICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIE11bHRpYnl0ZUNvZGVjX1N0YXRlICpzdGF0ZSwgY29uc3Qgdm9pZCAqY29uZmlnKQogCi0jaWYgUHlfVU5JQ09ERV9TSVpFID09IDQKLSNkZWZpbmUgVUNTNElOVkFMSUQoY29kZSkgICAgICAgXAotICAgIGlmICgoY29kZSkgPiAweEZGRkYpICAgICAgICBcCi0gICAgcmV0dXJuIDE7Ci0jZWxzZQotI2RlZmluZSBVQ1M0SU5WQUxJRChjb2RlKSAgICAgICBcCi0gICAgaWYgKDApIDsKLSNlbmRpZgotCiAjZGVmaW5lIE5FWFRfSU4oaSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgKCppbmJ1ZikgKz0gKGkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgKGlubGVmdCkgLT0gKGkpOworICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoKmluYnVmKSArPSAoaSk7ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoaW5sZWZ0KSAtPSAoaSk7ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIE5FWFRfSU5DSEFSKGkpICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICgqaW5wb3MpICs9IChpKTsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoMCkKICNkZWZpbmUgTkVYVF9PVVQobykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAoKm91dGJ1ZikgKz0gKG8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAob3V0bGVmdCkgLT0gKG8pOworICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAoKm91dGJ1ZikgKz0gKG8pOyAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAob3V0bGVmdCkgLT0gKG8pOyAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKDApCiAjZGVmaW5lIE5FWFQoaSwgbykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgTkVYVF9JTihpKSBORVhUX09VVChvKQorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBORVhUX0lOQ0hBUihpKTsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIE5FWFRfT1VUKG8pOyAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlICgwKQogCiAjZGVmaW5lIFJFUVVJUkVfSU5CVUYobikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgaWYgKGlubGVmdCA8IChuKSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0xMTYsNDggKzExOSw1NSBAQAogICAgIGlmIChvdXRsZWZ0IDwgKG4pKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICByZXR1cm4gTUJFUlJfVE9PU01BTEw7CiAKLSNkZWZpbmUgSU4xICgoKmluYnVmKVswXSkKLSNkZWZpbmUgSU4yICgoKmluYnVmKVsxXSkKLSNkZWZpbmUgSU4zICgoKmluYnVmKVsyXSkKLSNkZWZpbmUgSU40ICgoKmluYnVmKVszXSkKKyNkZWZpbmUgSU5CWVRFMSAoKCppbmJ1ZilbMF0pCisjZGVmaW5lIElOQllURTIgKCgqaW5idWYpWzFdKQorI2RlZmluZSBJTkJZVEUzICgoKmluYnVmKVsyXSkKKyNkZWZpbmUgSU5CWVRFNCAoKCppbmJ1ZilbM10pCiAKLSNkZWZpbmUgT1VUMShjKSAoKCpvdXRidWYpWzBdKSA9IChjKTsKLSNkZWZpbmUgT1VUMihjKSAoKCpvdXRidWYpWzFdKSA9IChjKTsKLSNkZWZpbmUgT1VUMyhjKSAoKCpvdXRidWYpWzJdKSA9IChjKTsKLSNkZWZpbmUgT1VUNChjKSAoKCpvdXRidWYpWzNdKSA9IChjKTsKKyNkZWZpbmUgSU5DSEFSMSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCAqaW5wb3MpCisjZGVmaW5lIElOQ0hBUjIgUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgKmlucG9zICsgMSkKIAotI2RlZmluZSBXUklURTEoYzEpICAgICAgICAgICAgICBcCisjZGVmaW5lIE9VVENIQVIoYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1dyaXRlQ2hhcih3cml0ZXIsIChjKSkgPCAwKSAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICByZXR1cm4gTUJFUlJfVE9PU01BTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoMCkKKworI2RlZmluZSBPVVRDSEFSMihjMSwgYzIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9VQ1M0IF9jMSA9IChjMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9VQ1M0IF9jMiA9IChjMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKHdyaXRlciwgMiwgUHlfTUFYKF9jMSwgYzIpKSA8IDApICAgICAgXAorICAgICAgICAgICAgcmV0dXJuIE1CRVJSX1RPT1NNQUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeVVuaWNvZGVfV1JJVEUod3JpdGVyLT5raW5kLCB3cml0ZXItPmRhdGEsIHdyaXRlci0+cG9zLCBfYzEpOyAgICAgXAorICAgICAgICBQeVVuaWNvZGVfV1JJVEUod3JpdGVyLT5raW5kLCB3cml0ZXItPmRhdGEsIHdyaXRlci0+cG9zICsgMSwgX2MyKTsgXAorICAgICAgICB3cml0ZXItPnBvcyArPSAyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKDApCisKKyNkZWZpbmUgT1VUQllURTEoYykgKCgqb3V0YnVmKVswXSkgPSAoYyk7CisjZGVmaW5lIE9VVEJZVEUyKGMpICgoKm91dGJ1ZilbMV0pID0gKGMpOworI2RlZmluZSBPVVRCWVRFMyhjKSAoKCpvdXRidWYpWzJdKSA9IChjKTsKKyNkZWZpbmUgT1VUQllURTQoYykgKCgqb3V0YnVmKVszXSkgPSAoYyk7CisKKyNkZWZpbmUgV1JJVEVCWVRFMShjMSkgICAgICAgICAgICAgIFwKICAgICBSRVFVSVJFX09VVEJVRigxKSAgICAgICAgICAgXAogICAgICgqb3V0YnVmKVswXSA9IChjMSk7Ci0jZGVmaW5lIFdSSVRFMihjMSwgYzIpICAgICAgICAgIFwKKyNkZWZpbmUgV1JJVEVCWVRFMihjMSwgYzIpICAgICAgICAgIFwKICAgICBSRVFVSVJFX09VVEJVRigyKSAgICAgICAgICAgXAogICAgICgqb3V0YnVmKVswXSA9IChjMSk7ICAgICAgICBcCiAgICAgKCpvdXRidWYpWzFdID0gKGMyKTsKLSNkZWZpbmUgV1JJVEUzKGMxLCBjMiwgYzMpICAgICAgXAorI2RlZmluZSBXUklURUJZVEUzKGMxLCBjMiwgYzMpICAgICAgXAogICAgIFJFUVVJUkVfT1VUQlVGKDMpICAgICAgICAgICBcCiAgICAgKCpvdXRidWYpWzBdID0gKGMxKTsgICAgICAgIFwKICAgICAoKm91dGJ1ZilbMV0gPSAoYzIpOyAgICAgICAgXAogICAgICgqb3V0YnVmKVsyXSA9IChjMyk7Ci0jZGVmaW5lIFdSSVRFNChjMSwgYzIsIGMzLCBjNCkgIFwKKyNkZWZpbmUgV1JJVEVCWVRFNChjMSwgYzIsIGMzLCBjNCkgIFwKICAgICBSRVFVSVJFX09VVEJVRig0KSAgICAgICAgICAgXAogICAgICgqb3V0YnVmKVswXSA9IChjMSk7ICAgICAgICBcCiAgICAgKCpvdXRidWYpWzFdID0gKGMyKTsgICAgICAgIFwKICAgICAoKm91dGJ1ZilbMl0gPSAoYzMpOyAgICAgICAgXAogICAgICgqb3V0YnVmKVszXSA9IChjNCk7CiAKLSNpZiBQeV9VTklDT0RFX1NJWkUgPT0gMgotIyBkZWZpbmUgV1JJVEVVQ1M0KGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBSRVFVSVJFX09VVEJVRigyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgKCpvdXRidWYpWzBdID0gMHhkODAwICsgKCgoYykgLSAweDEwMDAwKSA+PiAxMCk7ICAgICAgICAgICAgXAotICAgICgqb3V0YnVmKVsxXSA9IDB4ZGMwMCArICgoKGMpIC0gMHgxMDAwMCkgJiAweDNmZik7ICAgICAgICAgIFwKLSAgICBORVhUX09VVCgyKQotI2Vsc2UKLSMgZGVmaW5lIFdSSVRFVUNTNChjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgUkVRVUlSRV9PVVRCVUYoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICoqb3V0YnVmID0gKFB5X1VOSUNPREUpKGMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBORVhUX09VVCgxKQotI2VuZGlmCi0KICNkZWZpbmUgX1RSWU1BUF9FTkMobSwgYXNzaSwgdmFsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgKChtKS0+bWFwICE9IE5VTEwgJiYgKHZhbCkgPj0gKG0pLT5ib3R0b20gJiYgICAgICAgICAgICAgICAgXAogICAgICAgICAodmFsKTw9IChtKS0+dG9wICYmICgoYXNzaSkgPSAobSktPm1hcFsodmFsKSAtICAgICAgICAgIFwKQEAgLTE2NywzOSArMTc3LDQxIEBACiAjZGVmaW5lIFRSWU1BUF9FTkMoY2hhcnNldCwgYXNzaSwgdW5pKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIGlmIFRSWU1BUF9FTkNfQ09ORChjaGFyc2V0LCBhc3NpLCB1bmkpCiAKLSNkZWZpbmUgX1RSWU1BUF9ERUMobSwgYXNzaSwgdmFsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgKChtKS0+bWFwICE9IE5VTEwgJiYgKHZhbCkgPj0gKG0pLT5ib3R0b20gJiYgICAgICAgICAgICAgICAgXAotICAgICAgICAodmFsKTw9IChtKS0+dG9wICYmICgoYXNzaSkgPSAobSktPm1hcFsodmFsKSAtICAgICAgICAgIFwKLSAgICAgICAgKG0pLT5ib3R0b21dKSAhPSBVTklJTlYpCi0jZGVmaW5lIFRSWU1BUF9ERUMoY2hhcnNldCwgYXNzaSwgYzEsIGMyKSAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGlmIF9UUllNQVBfREVDKCZjaGFyc2V0IyNfZGVjbWFwW2MxXSwgYXNzaSwgYzIpCitQeV9MT0NBTF9JTkxJTkUoaW50KQorX1RSWU1BUF9ERUNfV1JJVEUoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyLCBQeV9VQ1M0IGMpCit7CisgICAgaWYgKGMgPT0gVU5JSU5WIHx8IF9QeVVuaWNvZGVXcml0ZXJfV3JpdGVDaGFyKHdyaXRlciwgYykgPCAwKQorICAgICAgICByZXR1cm4gVU5JSU5WOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIGM7Cit9CiAKLSNkZWZpbmUgX1RSWU1BUF9FTkNfTVBMQU5FKG0sIGFzc3BsYW5lLCBhc3NoaSwgYXNzbG8sIHZhbCkgICAgICBcCi0gICAgKChtKS0+bWFwICE9IE5VTEwgJiYgKHZhbCkgPj0gKG0pLT5ib3R0b20gJiYgICAgICAgICAgICAgICAgXAotICAgICAgICAodmFsKTw9IChtKS0+dG9wICYmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgKChhc3NwbGFuZSkgPSAobSktPm1hcFsoKHZhbCkgLSAobSktPmJvdHRvbSkqM10pICE9IDAgJiYgXAorI2RlZmluZSBfVFJZTUFQX0RFQyhtLCB3cml0ZXIsIHZhbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoKG0pLT5tYXAgIT0gTlVMTCAmJiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICh2YWwpID49IChtKS0+Ym90dG9tICYmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAodmFsKTw9IChtKS0+dG9wICYmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgX1RSWU1BUF9ERUNfV1JJVEUod3JpdGVyLCAobSktPm1hcFsodmFsKSAtIChtKS0+Ym90dG9tXSkgIT0gVU5JSU5WKQorI2RlZmluZSBfVFJZTUFQX0RFQ19DSEFSKG0sIGFzc2ksIHZhbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoKG0pLT5tYXAgIT0gTlVMTCAmJiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICh2YWwpID49IChtKS0+Ym90dG9tICYmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAodmFsKTw9IChtKS0+dG9wICYmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgKChhc3NpKSA9IChtKS0+bWFwWyh2YWwpIC0gKG0pLT5ib3R0b21dKSAhPSBVTklJTlYpCisjZGVmaW5lIFRSWU1BUF9ERUMoY2hhcnNldCwgd3JpdGVyLCBjMSwgYzIpICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmIF9UUllNQVBfREVDKCZjaGFyc2V0IyNfZGVjbWFwW2MxXSwgd3JpdGVyLCBjMikKKyNkZWZpbmUgVFJZTUFQX0RFQ19DSEFSKGNoYXJzZXQsIGFzc2ksIGMxLCBjMikgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgX1RSWU1BUF9ERUNfQ0hBUigmY2hhcnNldCMjX2RlY21hcFtjMV0sIGFzc2ksIGMyKQorCisjZGVmaW5lIF9UUllNQVBfRU5DX01QTEFORShtLCBhc3NwbGFuZSwgYXNzaGksIGFzc2xvLCB2YWwpICAgICAgICBcCisgICAgKChtKS0+bWFwICE9IE5VTEwgJiYgKHZhbCkgPj0gKG0pLT5ib3R0b20gJiYgICAgICAgICAgICAgICAgICBcCisgICAgICAgICh2YWwpPD0gKG0pLT50b3AgJiYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICgoYXNzcGxhbmUpID0gKG0pLT5tYXBbKCh2YWwpIC0gKG0pLT5ib3R0b20pKjNdKSAhPSAwICYmICBcCiAgICAgICAgICgoKGFzc2hpKSA9IChtKS0+bWFwWygodmFsKSAtIChtKS0+Ym90dG9tKSozICsgMV0pLCAxKSAmJiBcCiAgICAgICAgICgoKGFzc2xvKSA9IChtKS0+bWFwWygodmFsKSAtIChtKS0+Ym90dG9tKSozICsgMl0pLCAxKSkKICNkZWZpbmUgVFJZTUFQX0VOQ19NUExBTkUoY2hhcnNldCwgYXNzcGxhbmUsIGFzc2hpLCBhc3NsbywgdW5pKSBcCiAgICAgaWYgX1RSWU1BUF9FTkNfTVBMQU5FKCZjaGFyc2V0IyNfZW5jbWFwWyh1bmkpID4+IDhdLCBcCiAgICAgICAgICAgICAgICAgICAgICAgIGFzc3BsYW5lLCBhc3NoaSwgYXNzbG8sICh1bmkpICYgMHhmZikKLSNkZWZpbmUgVFJZTUFQX0RFQ19NUExBTkUoY2hhcnNldCwgYXNzaSwgcGxhbmUsIGMxLCBjMikgICAgICAgICBcCi0gICAgaWYgX1RSWU1BUF9ERUMoJmNoYXJzZXQjI19kZWNtYXBbcGxhbmVdW2MxXSwgYXNzaSwgYzIpCi0KLSNpZiBQeV9VTklDT0RFX1NJWkUgPT0gMgotI2RlZmluZSBERUNPREVfU1VSUk9HQVRFKGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBpZiAoYyA+PiAxMCA9PSAweGQ4MDAgPj4gMTApIHsgLyogaGlnaCBzdXJyb2dhdGUgKi8gICAgICAgICBcCi0gICAgICAgIFJFUVVJUkVfSU5CVUYoMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBpZiAoSU4yID4+IDEwID09IDB4ZGMwMCA+PiAxMCkgeyAvKiBsb3cgc3Vycm9nYXRlICovIFwKLSAgICAgICAgICAgIGMgPSAweDEwMDAwICsgKCh1Y3M0X3QpKGMgLSAweGQ4MDApIDw8IDEwKSArIFwKLSAgICAgICAgICAgICgodWNzNF90KShJTjIpIC0gMHhkYzAwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0KLSNkZWZpbmUgR0VUX0lOU0laRShjKSAgICgoYykgPiAweGZmZmYgPyAyIDogMSkKLSNlbHNlCi0jZGVmaW5lIERFQ09ERV9TVVJST0dBVEUoYykgezt9Ci0jZGVmaW5lIEdFVF9JTlNJWkUoYykgICAxCi0jZW5kaWYKKyNkZWZpbmUgVFJZTUFQX0RFQ19NUExBTkUoY2hhcnNldCwgd3JpdGVyLCBwbGFuZSwgYzEsIGMyKSAgICAgICAgIFwKKyAgICBpZiBfVFJZTUFQX0RFQygmY2hhcnNldCMjX2RlY21hcFtwbGFuZV1bYzFdLCB3cml0ZXIsIGMyKQogCiAjZGVmaW5lIEJFR0lOX01BUFBJTkdTX0xJU1Qgc3RhdGljIGNvbnN0IHN0cnVjdCBkYmNzX21hcCBfbWFwcGluZ19saXN0W10gPSB7CiAjZGVmaW5lIE1BUFBJTkdfRU5DT05MWShlbmMpIHsjZW5jLCAodm9pZCopZW5jIyNfZW5jbWFwLCBOVUxMfSwKQEAgLTMyNCw3ICszMzYsNyBAQAogICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBwYWlyX2VuY29kZW1hcCAqaGF5c3RhY2ssIGludCBoYXlzdGFja3NpemUpCiB7CiAgICAgaW50IHBvcywgbWluLCBtYXg7Ci0gICAgdWNzNF90IHZhbHVlID0gYm9keSA8PCAxNiB8IG1vZGlmaWVyOworICAgIFB5X1VDUzQgdmFsdWUgPSBib2R5IDw8IDE2IHwgbW9kaWZpZXI7CiAKICAgICBtaW4gPSAwOwogICAgIG1heCA9IGhheXN0YWNrc2l6ZTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvY2prY29kZWNzL2VtdV9qaXN4MDIxM18yMDAwLmggYi9Nb2R1bGVzL2Nqa2NvZGVjcy9lbXVfamlzeDAyMTNfMjAwMC5oCmluZGV4IDQyMjdmYjIuLjg3NzMzN2UgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvY2prY29kZWNzL2VtdV9qaXN4MDIxM18yMDAwLmgKKysrIGIvTW9kdWxlcy9jamtjb2RlY3MvZW11X2ppc3gwMjEzXzIwMDAuaApAQCAtMzgsNiArMzgsOSBAQAogICAgICAgICAgICAgICAgICAgICAgKChjMSkgPT0gMHg3RSAmJiAoYzIpID09IDB4N0UpKSkgICAgICAgICAgICAgICAgICAgXAogICAgICAgICByZXR1cm4gRU1VTEFURV9KSVNYMDIxM18yMDAwX0RFQ09ERV9JTlZBTElEOwogCi0jZGVmaW5lIEVNVUxBVEVfSklTWDAyMTNfMjAwMF9ERUNPREVfUExBTkUyKGFzc2ksIGMxLCBjMikgICAgICAgICAgICAgICBcCisjZGVmaW5lIEVNVUxBVEVfSklTWDAyMTNfMjAwMF9ERUNPREVfUExBTkUyKHdyaXRlciwgYzEsIGMyKSAgICAgICAgICAgICAgIFwKKyAgICBpZiAoY29uZmlnID09ICh2b2lkICopMjAwMCAmJiAoYzEpID09IDB4N0QgJiYgKGMyKSA9PSAweDNCKSAgICAgICAgIFwKKyAgICAgICAgT1VUQ0hBUigweDlCMUQpOworI2RlZmluZSBFTVVMQVRFX0pJU1gwMjEzXzIwMDBfREVDT0RFX1BMQU5FMl9DSEFSKGFzc2ksIGMxLCBjMikgICAgICAgICAgICAgICBcCiAgICAgaWYgKGNvbmZpZyA9PSAodm9pZCAqKTIwMDAgJiYgKGMxKSA9PSAweDdEICYmIChjMikgPT0gMHgzQikgICAgICAgICBcCiAgICAgICAgIChhc3NpKSA9IDB4OUIxRDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvY2prY29kZWNzL21hcHBpbmdzX2NuLmggYi9Nb2R1bGVzL2Nqa2NvZGVjcy9tYXBwaW5nc19jbi5oCmluZGV4IGE2ZGNlYmYuLjFmOGMyOTkgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvY2prY29kZWNzL21hcHBpbmdzX2NuLmgKKysrIGIvTW9kdWxlcy9jamtjb2RlY3MvbWFwcGluZ3NfY24uaApAQCAtNDA0OSw3ICs0MDQ5LDcgQEAKIAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IF9nYjE4MDMwX3RvX3VuaWJtcF9yYW5nZXMgewotICAgIFB5X1VOSUNPREUgICBmaXJzdCwgbGFzdDsKKyAgICBQeV9VQ1M0ICAgZmlyc3QsIGxhc3Q7CiAgICAgREJDSEFSICAgICAgIGJhc2U7CiB9IGdiMTgwMzBfdG9fdW5pYm1wX3Jhbmdlc1tdID0gewogezEyOCwxNjMsMH0sezE2NSwxNjYsMzZ9LHsxNjksMTc1LDM4fSx7MTc4LDE4Miw0NX0sezE4NCwyMTQsNTB9LHsyMTYsMjIzLDgxfSx7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL2Nqa2NvZGVjcy9tYXBwaW5nc19qaXN4MDIxM19wYWlyLmggYi9Nb2R1bGVzL2Nqa2NvZGVjcy9tYXBwaW5nc19qaXN4MDIxM19wYWlyLmgKaW5kZXggZWRhOGU5ZS4uNzI5ZTRiYyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9jamtjb2RlY3MvbWFwcGluZ3NfamlzeDAyMTNfcGFpci5oCisrKyBiL01vZHVsZXMvY2prY29kZWNzL21hcHBpbmdzX2ppc3gwMjEzX3BhaXIuaApAQCAtMyw3ICszLDcgQEAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2lkZWRiY3NfaW5kZXggKmppc3gwMjEzX3BhaXJfZGVjbWFwOwogc3RhdGljIGNvbnN0IHN0cnVjdCBwYWlyX2VuY29kZW1hcCAqamlzeDAyMTNfcGFpcl9lbmNtYXA7CiAjZWxzZQotc3RhdGljIGNvbnN0IHVjczRfdCBfX2ppc3gwMjEzX3BhaXJfZGVjbWFwWzQ5XSA9IHsKK3N0YXRpYyBjb25zdCBQeV9VQ1M0IF9famlzeDAyMTNfcGFpcl9kZWNtYXBbNDldID0gewogODEwMjM0MDEwLDgxMDM2NTA4Miw4MTA0OTYxNTQsODEwNjI3MjI2LDgxMDc1ODI5OCw4MTY1MjU0NjYsODE2NjU2NTM4LAogODE2Nzg3NjEwLDgxNjkxODY4Miw4MTcwNDk3NTQsODE3NTc0MDQyLDgxODE2Mzg2Niw4MTg0MjYwMTAsODM4MjgzNDE4LAogMTUwNzQwNDgsVSxVLFUsMzkwNjAyMjQsMzkwNjAyMjUsNDI3MzAyNDAsNDI3MzAyNDEsMzkzODc5MDQsMzkzODc5MDUsMzk0NTM0NDAsCmRpZmYgLS1naXQgYS9Nb2R1bGVzL2Nqa2NvZGVjcy9tdWx0aWJ5dGVjb2RlYy5jIGIvTW9kdWxlcy9jamtjb2RlY3MvbXVsdGlieXRlY29kZWMuYwppbmRleCBjMDMyY2RiLi4zM2JkNzc5IDEwMDY0NAotLS0gYS9Nb2R1bGVzL2Nqa2NvZGVjcy9tdWx0aWJ5dGVjb2RlYy5jCisrKyBiL01vZHVsZXMvY2prY29kZWNzL211bHRpYnl0ZWNvZGVjLmMKQEAgLTEwLDE1ICsxMCwxNiBAQAogI2luY2x1ZGUgIm11bHRpYnl0ZWNvZGVjLmgiCiAKIHR5cGVkZWYgc3RydWN0IHsKLSAgICBjb25zdCBQeV9VTklDT0RFICAgICppbmJ1ZiwgKmluYnVmX3RvcCwgKmluYnVmX2VuZDsKKyAgICBQeU9iamVjdCAgICAgICAgICAgICppbm9iajsKKyAgICBQeV9zc2l6ZV90ICAgICAgICAgIGlucG9zLCBpbmxlbjsKICAgICB1bnNpZ25lZCBjaGFyICAgICAgICpvdXRidWYsICpvdXRidWZfZW5kOwogICAgIFB5T2JqZWN0ICAgICAgICAgICAgKmV4Y29iaiwgKm91dG9iajsKIH0gTXVsdGlieXRlRW5jb2RlQnVmZmVyOwogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5idWYsICppbmJ1Zl90b3AsICppbmJ1Zl9lbmQ7Ci0gICAgUHlfVU5JQ09ERSAgICAgICAgICAqb3V0YnVmLCAqb3V0YnVmX2VuZDsKLSAgICBQeU9iamVjdCAgICAgICAgICAgICpleGNvYmosICpvdXRvYmo7CisgICAgUHlPYmplY3QgICAgICAgICAgICAqZXhjb2JqOworICAgIF9QeVVuaWNvZGVXcml0ZXIgICAgd3JpdGVyOwogfSBNdWx0aWJ5dGVEZWNvZGVCdWZmZXI7CiAKIFB5RG9jX1NUUlZBUihNdWx0aWJ5dGVDb2RlY19FbmNvZGVfX2RvY19fLApAQCAtNDUsNyArNDYsNyBAQAogc3RhdGljIGNoYXIgKnN0cmVhbWt3YXJnbGlzdFtdID0geyJzdHJlYW0iLCAiZXJyb3JzIiwgTlVMTH07CiAKIHN0YXRpYyBQeU9iamVjdCAqbXVsdGlieXRlY29kZWNfZW5jb2RlKE11bHRpYnl0ZUNvZGVjICosCi0gICAgICAgICAgICAgICAgTXVsdGlieXRlQ29kZWNfU3RhdGUgKiwgY29uc3QgUHlfVU5JQ09ERSAqKiwgUHlfc3NpemVfdCwKKyAgICAgICAgICAgICAgICBNdWx0aWJ5dGVDb2RlY19TdGF0ZSAqLCBQeU9iamVjdCAqLCBQeV9zc2l6ZV90ICosCiAgICAgICAgICAgICAgICAgUHlPYmplY3QgKiwgaW50KTsKIAogI2RlZmluZSBNQkVOQ19SRVNFVCAgICAgTUJFTkNfTUFYPDwxIC8qIHJlc2V0IGFmdGVyIGFuIGVuY29kaW5nIHNlc3Npb24gKi8KQEAgLTE5NywyOSArMTk4LDYgQEAKICAgICAgICAgICAgIGdvdG8gZXJyb3JleGl0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIH0KIAotc3RhdGljIGludAotZXhwYW5kX2RlY29kZWJ1ZmZlcihNdWx0aWJ5dGVEZWNvZGVCdWZmZXIgKmJ1ZiwgUHlfc3NpemVfdCBlc2l6ZSkKLXsKLSAgICBQeV9zc2l6ZV90IG9yZ3Bvcywgb3Jnc2l6ZTsKLQotICAgIG9yZ3BvcyA9IChQeV9zc2l6ZV90KShidWYtPm91dGJ1ZiAtIFB5VW5pY29kZV9BU19VTklDT0RFKGJ1Zi0+b3V0b2JqKSk7Ci0gICAgb3Jnc2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRShidWYtPm91dG9iaik7Ci0gICAgaWYgKFB5VW5pY29kZV9SZXNpemUoJmJ1Zi0+b3V0b2JqLCBvcmdzaXplICsgKAotICAgICAgICBlc2l6ZSA8IChvcmdzaXplID4+IDEpID8gKG9yZ3NpemUgPj4gMSkgfCAxIDogZXNpemUpKSA9PSAtMSkKLSAgICAgICAgcmV0dXJuIC0xOwotCi0gICAgYnVmLT5vdXRidWYgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShidWYtPm91dG9iaikgKyBvcmdwb3M7Ci0gICAgYnVmLT5vdXRidWZfZW5kID0gUHlVbmljb2RlX0FTX1VOSUNPREUoYnVmLT5vdXRvYmopCi0gICAgICAgICAgICAgICAgICAgICAgKyBQeVVuaWNvZGVfR0VUX1NJWkUoYnVmLT5vdXRvYmopOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0jZGVmaW5lIFJFUVVJUkVfREVDT0RFQlVGRkVSKGJ1ZiwgcykgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgaWYgKChzKSA8IDEgfHwgKGJ1ZiktPm91dGJ1ZiArIChzKSA+IChidWYpLT5vdXRidWZfZW5kKSAgICAgICAgICAgICBcCi0gICAgICAgIGlmIChleHBhbmRfZGVjb2RlYnVmZmVyKGJ1ZiwgcykgPT0gLTEpICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBnb3RvIGVycm9yZXhpdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi19Ci0KIAogLyoqCiAgKiBNdWx0aWJ5dGVDb2RlYyBvYmplY3QKQEAgLTI0Nyw3ICsyMjUsNyBAQAogICAgICAgICAgICAgcmV0dXJuIDA7IC8qIHJldHJ5IGl0ICovCiAgICAgICAgIGNhc2UgTUJFUlJfVE9PRkVXOgogICAgICAgICAgICAgcmVhc29uID0gImluY29tcGxldGUgbXVsdGlieXRlIHNlcXVlbmNlIjsKLSAgICAgICAgICAgIGVzaXplID0gKFB5X3NzaXplX3QpKGJ1Zi0+aW5idWZfZW5kIC0gYnVmLT5pbmJ1Zik7CisgICAgICAgICAgICBlc2l6ZSA9IChQeV9zc2l6ZV90KWJ1Zi0+aW5wb3M7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBNQkVSUl9JTlRFUk5BTDoKICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsCkBAIC0yNjEsMTQgKzIzOSwyNCBAQAogICAgIH0KIAogICAgIGlmIChlcnJvcnMgPT0gRVJST1JfUkVQTEFDRSkgewotICAgICAgICBjb25zdCBQeV9VTklDT0RFIHJlcGxjaGFyID0gJz8nLCAqaW5idWYgPSAmcmVwbGNoYXI7CisgICAgICAgIFB5T2JqZWN0ICpyZXBsY2hhcjsKICAgICAgICAgUHlfc3NpemVfdCByOworICAgICAgICBQeV9zc2l6ZV90IGlucG9zOworICAgICAgICBpbnQga2luZDsKKyAgICAgICAgdm9pZCAqZGF0YTsKIAorICAgICAgICByZXBsY2hhciA9IFB5VW5pY29kZV9Gcm9tT3JkaW5hbCgnPycpOworICAgICAgICBpZiAocmVwbGNoYXIgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gZXJyb3JleGl0OworICAgICAgICBraW5kID0gUHlVbmljb2RlX0tJTkQocmVwbGNoYXIpOworICAgICAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEocmVwbGNoYXIpOworCisgICAgICAgIGlucG9zID0gMDsKICAgICAgICAgZm9yICg7OykgewotICAgICAgICAgICAgUHlfc3NpemVfdCBvdXRsZWZ0OworICAgICAgICAgICAgUHlfc3NpemVfdCBvdXRsZWZ0ID0gKFB5X3NzaXplX3QpKGJ1Zi0+b3V0YnVmX2VuZCAtIGJ1Zi0+b3V0YnVmKTsKIAotICAgICAgICAgICAgb3V0bGVmdCA9IChQeV9zc2l6ZV90KShidWYtPm91dGJ1Zl9lbmQgLSBidWYtPm91dGJ1Zik7Ci0gICAgICAgICAgICByID0gY29kZWMtPmVuY29kZShzdGF0ZSwgY29kZWMtPmNvbmZpZywgJmluYnVmLCAxLAorICAgICAgICAgICAgciA9IGNvZGVjLT5lbmNvZGUoc3RhdGUsIGNvZGVjLT5jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kLCBkYXRhLCAmaW5wb3MsIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYnVmLT5vdXRidWYsIG91dGxlZnQsIDApOwogICAgICAgICAgICAgaWYgKHIgPT0gTUJFUlJfVE9PU01BTEwpIHsKICAgICAgICAgICAgICAgICBSRVFVSVJFX0VOQ09ERUJVRkZFUihidWYsIC0xKTsKQEAgLTI3OCwyNSArMjY2LDI3IEBACiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAgICAgICBQeV9ERUNSRUYocmVwbGNoYXIpOworCiAgICAgICAgIGlmIChyICE9IDApIHsKICAgICAgICAgICAgIFJFUVVJUkVfRU5DT0RFQlVGRkVSKGJ1ZiwgMSk7CiAgICAgICAgICAgICAqYnVmLT5vdXRidWYrKyA9ICc/JzsKICAgICAgICAgfQogICAgIH0KICAgICBpZiAoZXJyb3JzID09IEVSUk9SX0lHTk9SRSB8fCBlcnJvcnMgPT0gRVJST1JfUkVQTEFDRSkgewotICAgICAgICBidWYtPmluYnVmICs9IGVzaXplOworICAgICAgICBidWYtPmlucG9zICs9IGVzaXplOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBzdGFydCA9IChQeV9zc2l6ZV90KShidWYtPmluYnVmIC0gYnVmLT5pbmJ1Zl90b3ApOworICAgIHN0YXJ0ID0gKFB5X3NzaXplX3QpYnVmLT5pbnBvczsKICAgICBlbmQgPSBzdGFydCArIGVzaXplOwogCiAgICAgLyogdXNlIGNhY2hlZCBleGNlcHRpb24gb2JqZWN0IGlmIGF2YWlsYWJsZSAqLwogICAgIGlmIChidWYtPmV4Y29iaiA9PSBOVUxMKSB7Ci0gICAgICAgIGJ1Zi0+ZXhjb2JqID0gUHlVbmljb2RlRW5jb2RlRXJyb3JfQ3JlYXRlKGNvZGVjLT5lbmNvZGluZywKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi0+aW5idWZfdG9wLAotICAgICAgICAgICAgICAgICAgICAgICAgYnVmLT5pbmJ1Zl9lbmQgLSBidWYtPmluYnVmX3RvcCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBlbmQsIHJlYXNvbik7CisgICAgICAgIGJ1Zi0+ZXhjb2JqID0gIFB5T2JqZWN0X0NhbGxGdW5jdGlvbihQeUV4Y19Vbmljb2RlRW5jb2RlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic09ubnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZWMtPmVuY29kaW5nLCBidWYtPmlub2JqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQsIGVuZCwgcmVhc29uKTsKICAgICAgICAgaWYgKGJ1Zi0+ZXhjb2JqID09IE5VTEwpCiAgICAgICAgICAgICBnb3RvIGVycm9yZXhpdDsKICAgICB9CkBAIC0zMjUsMTAgKzMxNSwxMCBAQAogICAgIH0KIAogICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sodG9iaikpIHsKLSAgICAgICAgY29uc3QgUHlfVU5JQ09ERSAqdXJhdyA9IFB5VW5pY29kZV9BU19VTklDT0RFKHRvYmopOworICAgICAgICBQeV9zc2l6ZV90IGlucG9zOwogCi0gICAgICAgIHJldHN0ciA9IG11bHRpYnl0ZWNvZGVjX2VuY29kZShjb2RlYywgc3RhdGUsICZ1cmF3LAotICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHRvYmopLCBFUlJPUl9TVFJJQ1QsCisgICAgICAgIHJldHN0ciA9IG11bHRpYnl0ZWNvZGVjX2VuY29kZShjb2RlYywgc3RhdGUsIHRvYmosCisgICAgICAgICAgICAgICAgICAgICAgICAmaW5wb3MsIEVSUk9SX1NUUklDVCwKICAgICAgICAgICAgICAgICAgICAgICAgIE1CRU5DX0ZMVVNIKTsKICAgICAgICAgaWYgKHJldHN0ciA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBlcnJvcmV4aXQ7CkBAIC0zNDcsMTUgKzMzNywxNSBAQAogCiAgICAgbmV3cG9zID0gUHlMb25nX0FzU3NpemVfdChQeVR1cGxlX0dFVF9JVEVNKHJldG9iaiwgMSkpOwogICAgIGlmIChuZXdwb3MgPCAwICYmICFQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICBuZXdwb3MgKz0gKFB5X3NzaXplX3QpKGJ1Zi0+aW5idWZfZW5kIC0gYnVmLT5pbmJ1Zl90b3ApOwotICAgIGlmIChuZXdwb3MgPCAwIHx8IGJ1Zi0+aW5idWZfdG9wICsgbmV3cG9zID4gYnVmLT5pbmJ1Zl9lbmQpIHsKKyAgICAgICAgbmV3cG9zICs9IChQeV9zc2l6ZV90KWJ1Zi0+aW5sZW47CisgICAgaWYgKG5ld3BvcyA8IDAgfHwgbmV3cG9zID4gYnVmLT5pbmxlbikgewogICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfSW5kZXhFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICJwb3NpdGlvbiAlemQgZnJvbSBlcnJvciBoYW5kbGVyIG91dCBvZiBib3VuZHMiLAogICAgICAgICAgICAgICAgICAgICAgbmV3cG9zKTsKICAgICAgICAgZ290byBlcnJvcmV4aXQ7CiAgICAgfQotICAgIGJ1Zi0+aW5idWYgPSBidWYtPmluYnVmX3RvcCArIG5ld3BvczsKKyAgICBidWYtPmlucG9zID0gbmV3cG9zOwogCiAgICAgUHlfREVDUkVGKHJldG9iaik7CiAgICAgUHlfREVDUkVGKHJldHN0cik7CkBAIC0zNzQsNyArMzY0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICplcnJvcnMsIFB5X3NzaXplX3QgZSkKIHsKICAgICBQeU9iamVjdCAqcmV0b2JqID0gTlVMTCwgKnJldHVuaSA9IE5VTEw7Ci0gICAgUHlfc3NpemVfdCByZXR1bmlzaXplLCBuZXdwb3M7CisgICAgUHlfc3NpemVfdCBuZXdwb3M7CiAgICAgY29uc3QgY2hhciAqcmVhc29uOwogICAgIFB5X3NzaXplX3QgZXNpemUsIHN0YXJ0LCBlbmQ7CiAKQEAgLTM4NSw3ICszNzUsNiBAQAogICAgIGVsc2UgewogICAgICAgICBzd2l0Y2ggKGUpIHsKICAgICAgICAgY2FzZSBNQkVSUl9UT09TTUFMTDoKLSAgICAgICAgICAgIFJFUVVJUkVfREVDT0RFQlVGRkVSKGJ1ZiwgLTEpOwogICAgICAgICAgICAgcmV0dXJuIDA7IC8qIHJldHJ5IGl0ICovCiAgICAgICAgIGNhc2UgTUJFUlJfVE9PRkVXOgogICAgICAgICAgICAgcmVhc29uID0gImluY29tcGxldGUgbXVsdGlieXRlIHNlcXVlbmNlIjsKQEAgLTQwMyw4ICszOTIsOSBAQAogICAgIH0KIAogICAgIGlmIChlcnJvcnMgPT0gRVJST1JfUkVQTEFDRSkgewotICAgICAgICBSRVFVSVJFX0RFQ09ERUJVRkZFUihidWYsIDEpOwotICAgICAgICAqYnVmLT5vdXRidWYrKyA9IFB5X1VOSUNPREVfUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOworICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9Xcml0ZUNoYXIoJmJ1Zi0+d3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfVU5JQ09ERV9SRVBMQUNFTUVOVF9DSEFSQUNURVIpIDwgMCkKKyAgICAgICAgICAgIGdvdG8gZXJyb3JleGl0OwogICAgIH0KICAgICBpZiAoZXJyb3JzID09IEVSUk9SX0lHTk9SRSB8fCBlcnJvcnMgPT0gRVJST1JfUkVQTEFDRSkgewogICAgICAgICBidWYtPmluYnVmICs9IGVzaXplOwpAQCAtNDQ3LDE1ICs0MzcsOCBAQAogICAgICAgICBnb3RvIGVycm9yZXhpdDsKICAgICB9CiAKLSAgICBpZiAoUHlVbmljb2RlX0FzVW5pY29kZShyZXR1bmkpID09IE5VTEwpCisgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfV3JpdGVTdHIoJmJ1Zi0+d3JpdGVyLCByZXR1bmkpIDwgMCkKICAgICAgICAgZ290byBlcnJvcmV4aXQ7Ci0gICAgcmV0dW5pc2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRShyZXR1bmkpOwotICAgIGlmIChyZXR1bmlzaXplID4gMCkgewotICAgICAgICBSRVFVSVJFX0RFQ09ERUJVRkZFUihidWYsIHJldHVuaXNpemUpOwotICAgICAgICBtZW1jcHkoKGNoYXIgKilidWYtPm91dGJ1ZiwgUHlVbmljb2RlX0FTX1VOSUNPREUocmV0dW5pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVuaXNpemUgKiBQeV9VTklDT0RFX1NJWkUpOwotICAgICAgICBidWYtPm91dGJ1ZiArPSByZXR1bmlzaXplOwotICAgIH0KIAogICAgIG5ld3BvcyA9IFB5TG9uZ19Bc1NzaXplX3QoUHlUdXBsZV9HRVRfSVRFTShyZXRvYmosIDEpKTsKICAgICBpZiAobmV3cG9zIDwgMCAmJiAhUHlFcnJfT2NjdXJyZWQoKSkKQEAgLTQ3OSwxOSArNDYyLDI5IEBACiBzdGF0aWMgUHlPYmplY3QgKgogbXVsdGlieXRlY29kZWNfZW5jb2RlKE11bHRpYnl0ZUNvZGVjICpjb2RlYywKICAgICAgICAgICAgICAgICAgICAgICBNdWx0aWJ5dGVDb2RlY19TdGF0ZSAqc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgUHlfVU5JQ09ERSAqKmRhdGEsIFB5X3NzaXplX3QgZGF0YWxlbiwKKyAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqdGV4dCwgUHlfc3NpemVfdCAqaW5wb3NfdCwKICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqZXJyb3JzLCBpbnQgZmxhZ3MpCiB7CiAgICAgTXVsdGlieXRlRW5jb2RlQnVmZmVyIGJ1ZjsKICAgICBQeV9zc2l6ZV90IGZpbmFsc2l6ZSwgciA9IDA7CisgICAgUHlfc3NpemVfdCBkYXRhbGVuOworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CisKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHRleHQpIDwgMCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgZGF0YWxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHRleHQpOwogCiAgICAgaWYgKGRhdGFsZW4gPT0gMCAmJiAhKGZsYWdzICYgTUJFTkNfUkVTRVQpKQogICAgICAgICByZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCAwKTsKIAogICAgIGJ1Zi5leGNvYmogPSBOVUxMOwogICAgIGJ1Zi5vdXRvYmogPSBOVUxMOwotICAgIGJ1Zi5pbmJ1ZiA9IGJ1Zi5pbmJ1Zl90b3AgPSAqZGF0YTsKLSAgICBidWYuaW5idWZfZW5kID0gYnVmLmluYnVmX3RvcCArIGRhdGFsZW47CisgICAgYnVmLmlub2JqID0gdGV4dDsgICAvKiBib3Jyb3dlZCByZWZlcmVuY2UgKi8KKyAgICBidWYuaW5wb3MgPSAwOworICAgIGJ1Zi5pbmxlbiA9IGRhdGFsZW47CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKGJ1Zi5pbm9iaik7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKGJ1Zi5pbm9iaik7CiAKICAgICBpZiAoZGF0YWxlbiA+IChQWV9TU0laRV9UX01BWCAtIDE2KSAvIDIpIHsKICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKQEAgLTUwNCwxNCArNDk3LDE0IEBACiAgICAgYnVmLm91dGJ1ZiA9ICh1bnNpZ25lZCBjaGFyICopUHlCeXRlc19BU19TVFJJTkcoYnVmLm91dG9iaik7CiAgICAgYnVmLm91dGJ1Zl9lbmQgPSBidWYub3V0YnVmICsgUHlCeXRlc19HRVRfU0laRShidWYub3V0b2JqKTsKIAotICAgIHdoaWxlIChidWYuaW5idWYgPCBidWYuaW5idWZfZW5kKSB7Ci0gICAgICAgIFB5X3NzaXplX3QgaW5sZWZ0LCBvdXRsZWZ0OwotCisgICAgd2hpbGUgKGJ1Zi5pbnBvcyA8IGJ1Zi5pbmxlbikgewogICAgICAgICAvKiB3ZSBkb24ndCByZXVzZSBpbmxlZnQgYW5kIG91dGxlZnQgaGVyZS4KICAgICAgICAgICogZXJyb3IgY2FsbGJhY2tzIGNhbiByZWxvY2F0ZSB0aGUgY3Vyc29yIGFueXdoZXJlIG9uIGJ1ZmZlciovCi0gICAgICAgIGlubGVmdCA9IChQeV9zc2l6ZV90KShidWYuaW5idWZfZW5kIC0gYnVmLmluYnVmKTsKLSAgICAgICAgb3V0bGVmdCA9IChQeV9zc2l6ZV90KShidWYub3V0YnVmX2VuZCAtIGJ1Zi5vdXRidWYpOwotICAgICAgICByID0gY29kZWMtPmVuY29kZShzdGF0ZSwgY29kZWMtPmNvbmZpZywgJmJ1Zi5pbmJ1ZiwgaW5sZWZ0LAorICAgICAgICBQeV9zc2l6ZV90IG91dGxlZnQgPSAoUHlfc3NpemVfdCkoYnVmLm91dGJ1Zl9lbmQgLSBidWYub3V0YnVmKTsKKworICAgICAgICByID0gY29kZWMtPmVuY29kZShzdGF0ZSwgY29kZWMtPmNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAga2luZCwgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJmJ1Zi5pbnBvcywgYnVmLmlubGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmYnVmLm91dGJ1Ziwgb3V0bGVmdCwgZmxhZ3MpOwogICAgICAgICBpZiAoKHIgPT0gMCkgfHwgKHIgPT0gTUJFUlJfVE9PRkVXICYmICEoZmxhZ3MgJiBNQkVOQ19GTFVTSCkpKQogICAgICAgICAgICAgYnJlYWs7CkBAIC01NDIsNyArNTM1LDggQEAKICAgICAgICAgaWYgKF9QeUJ5dGVzX1Jlc2l6ZSgmYnVmLm91dG9iaiwgZmluYWxzaXplKSA9PSAtMSkKICAgICAgICAgICAgIGdvdG8gZXJyb3JleGl0OwogCi0gICAgKmRhdGEgPSBidWYuaW5idWY7CisgICAgaWYgKGlucG9zX3QpCisgICAgICAgICppbnBvc190ID0gYnVmLmlucG9zOwogICAgIFB5X1hERUNSRUYoYnVmLmV4Y29iaik7CiAgICAgcmV0dXJuIGJ1Zi5vdXRvYmo7CiAKQEAgLTU1Nyw3ICs1NTEsNiBAQAogICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQogewogICAgIE11bHRpYnl0ZUNvZGVjX1N0YXRlIHN0YXRlOwotICAgIFB5X1VOSUNPREUgKmRhdGE7CiAgICAgUHlPYmplY3QgKmVycm9yY2IsICpyLCAqYXJnLCAqdWN2dDsKICAgICBjb25zdCBjaGFyICplcnJvcnMgPSBOVUxMOwogICAgIFB5X3NzaXplX3QgZGF0YWxlbjsKQEAgLTU4MCwxMSArNTczLDExIEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBkYXRhID0gUHlVbmljb2RlX0FzVW5pY29kZUFuZFNpemUoYXJnLCAmZGF0YWxlbik7Ci0gICAgaWYgKGRhdGEgPT0gTlVMTCkgeworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoYXJnKSA8IDApIHsKICAgICAgICAgUHlfWERFQ1JFRih1Y3Z0KTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQorICAgIGRhdGFsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChhcmcpOwogCiAgICAgZXJyb3JjYiA9IGludGVybmFsX2Vycm9yX2NhbGxiYWNrKGVycm9ycyk7CiAgICAgaWYgKGVycm9yY2IgPT0gTlVMTCkgewpAQCAtNTk2LDcgKzU4OSw3IEBACiAgICAgICAgIHNlbGYtPmNvZGVjLT5lbmNpbml0KCZzdGF0ZSwgc2VsZi0+Y29kZWMtPmNvbmZpZykgIT0gMCkKICAgICAgICAgZ290byBlcnJvcmV4aXQ7CiAgICAgciA9IG11bHRpYnl0ZWNvZGVjX2VuY29kZShzZWxmLT5jb2RlYywgJnN0YXRlLAotICAgICAgICAgICAgICAgICAgICAoY29uc3QgUHlfVU5JQ09ERSAqKikmZGF0YSwgZGF0YWxlbiwgZXJyb3JjYiwKKyAgICAgICAgICAgICAgICAgICAgYXJnLCBOVUxMLCBlcnJvcmNiLAogICAgICAgICAgICAgICAgICAgICBNQkVOQ19GTFVTSCB8IE1CRU5DX1JFU0VUKTsKICAgICBpZiAociA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycm9yZXhpdDsKQEAgLTYxNywxMCArNjEwLDEwIEBACiB7CiAgICAgTXVsdGlieXRlQ29kZWNfU3RhdGUgc3RhdGU7CiAgICAgTXVsdGlieXRlRGVjb2RlQnVmZmVyIGJ1ZjsKLSAgICBQeU9iamVjdCAqZXJyb3JjYjsKKyAgICBQeU9iamVjdCAqZXJyb3JjYiwgKnJlczsKICAgICBQeV9idWZmZXIgcGRhdGE7CiAgICAgY29uc3QgY2hhciAqZGF0YSwgKmVycm9ycyA9IE5VTEw7Ci0gICAgUHlfc3NpemVfdCBkYXRhbGVuLCBmaW5hbHNpemU7CisgICAgUHlfc3NpemVfdCBkYXRhbGVuOwogCiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAieSp8ejpkZWNvZGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVja3dhcmdsaXN0LCAmcGRhdGEsICZlcnJvcnMpKQpAQCAtNjQwLDI5ICs2MzMsMjMgQEAKICAgICAgICAgcmV0dXJuIG1ha2VfdHVwbGUoUHlVbmljb2RlX05ldygwLCAwKSwgMCk7CiAgICAgfQogCisgICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZidWYud3JpdGVyKTsKKyAgICBidWYud3JpdGVyLm1pbl9sZW5ndGggPSBkYXRhbGVuOwogICAgIGJ1Zi5leGNvYmogPSBOVUxMOwogICAgIGJ1Zi5pbmJ1ZiA9IGJ1Zi5pbmJ1Zl90b3AgPSAodW5zaWduZWQgY2hhciAqKWRhdGE7CiAgICAgYnVmLmluYnVmX2VuZCA9IGJ1Zi5pbmJ1Zl90b3AgKyBkYXRhbGVuOwotICAgIGJ1Zi5vdXRvYmogPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgZGF0YWxlbik7Ci0gICAgaWYgKGJ1Zi5vdXRvYmogPT0gTlVMTCkKLSAgICAgICAgZ290byBlcnJvcmV4aXQ7Ci0gICAgYnVmLm91dGJ1ZiA9IFB5VW5pY29kZV9BU19VTklDT0RFKGJ1Zi5vdXRvYmopOwotICAgIGlmIChidWYub3V0YnVmID09IE5VTEwpCi0gICAgICAgIGdvdG8gZXJyb3JleGl0OwotICAgIGJ1Zi5vdXRidWZfZW5kID0gYnVmLm91dGJ1ZiArIFB5VW5pY29kZV9HRVRfU0laRShidWYub3V0b2JqKTsKIAogICAgIGlmIChzZWxmLT5jb2RlYy0+ZGVjaW5pdCAhPSBOVUxMICYmCiAgICAgICAgIHNlbGYtPmNvZGVjLT5kZWNpbml0KCZzdGF0ZSwgc2VsZi0+Y29kZWMtPmNvbmZpZykgIT0gMCkKICAgICAgICAgZ290byBlcnJvcmV4aXQ7CiAKICAgICB3aGlsZSAoYnVmLmluYnVmIDwgYnVmLmluYnVmX2VuZCkgewotICAgICAgICBQeV9zc2l6ZV90IGlubGVmdCwgb3V0bGVmdCwgcjsKKyAgICAgICAgUHlfc3NpemVfdCBpbmxlZnQsIHI7CiAKICAgICAgICAgaW5sZWZ0ID0gKFB5X3NzaXplX3QpKGJ1Zi5pbmJ1Zl9lbmQgLSBidWYuaW5idWYpOwotICAgICAgICBvdXRsZWZ0ID0gKFB5X3NzaXplX3QpKGJ1Zi5vdXRidWZfZW5kIC0gYnVmLm91dGJ1Zik7CiAKICAgICAgICAgciA9IHNlbGYtPmNvZGVjLT5kZWNvZGUoJnN0YXRlLCBzZWxmLT5jb2RlYy0+Y29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgJmJ1Zi5pbmJ1ZiwgaW5sZWZ0LCAmYnVmLm91dGJ1Ziwgb3V0bGVmdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAmYnVmLmluYnVmLCBpbmxlZnQsICZidWYud3JpdGVyKTsKICAgICAgICAgaWYgKHIgPT0gMCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBlbHNlIGlmIChtdWx0aWJ5dGVjb2RlY19kZWNlcnJvcihzZWxmLT5jb2RlYywgJnN0YXRlLApAQCAtNjcwLDIzICs2NTcsMjAgQEAKICAgICAgICAgICAgIGdvdG8gZXJyb3JleGl0OwogICAgIH0KIAotICAgIGZpbmFsc2l6ZSA9IChQeV9zc2l6ZV90KShidWYub3V0YnVmIC0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUoYnVmLm91dG9iaikpOwotCi0gICAgaWYgKGZpbmFsc2l6ZSAhPSBQeVVuaWNvZGVfR0VUX1NJWkUoYnVmLm91dG9iaikpCi0gICAgICAgIGlmIChQeVVuaWNvZGVfUmVzaXplKCZidWYub3V0b2JqLCBmaW5hbHNpemUpID09IC0xKQotICAgICAgICAgICAgZ290byBlcnJvcmV4aXQ7CisgICAgcmVzID0gX1B5VW5pY29kZVdyaXRlcl9GaW5pc2goJmJ1Zi53cml0ZXIpOworICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcmV4aXQ7CiAKICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZwZGF0YSk7CiAgICAgUHlfWERFQ1JFRihidWYuZXhjb2JqKTsKICAgICBFUlJPUl9ERUNSRUYoZXJyb3JjYik7Ci0gICAgcmV0dXJuIG1ha2VfdHVwbGUoYnVmLm91dG9iaiwgZGF0YWxlbik7CisgICAgcmV0dXJuIG1ha2VfdHVwbGUocmVzLCBkYXRhbGVuKTsKIAogZXJyb3JleGl0OgogICAgIFB5QnVmZmVyX1JlbGVhc2UoJnBkYXRhKTsKICAgICBFUlJPUl9ERUNSRUYoZXJyb3JjYik7CiAgICAgUHlfWERFQ1JFRihidWYuZXhjb2JqKTsKLSAgICBQeV9YREVDUkVGKGJ1Zi5vdXRvYmopOworICAgIF9QeVVuaWNvZGVXcml0ZXJfRGVhbGxvYygmYnVmLndyaXRlcik7CiAKICAgICByZXR1cm4gTlVMTDsKIH0KQEAgLTc1Miw5ICs3MzYsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnVuaXN0ciwgaW50IGZpbmFsKQogewogICAgIFB5T2JqZWN0ICp1Y3Z0LCAqciA9IE5VTEw7Ci0gICAgUHlfVU5JQ09ERSAqaW5idWYsICppbmJ1Zl9lbmQsICppbmJ1Zl90bXAgPSBOVUxMOwotICAgIFB5X3NzaXplX3QgZGF0YWxlbiwgb3JpZ3BlbmRpbmc7Ci0gICAgd2NoYXJfdCAqZGF0YTsKKyAgICBQeU9iamVjdCAqaW5idWYgPSBOVUxMOworICAgIFB5X3NzaXplX3QgaW5wb3MsIGRhdGFsZW47CisgICAgUHlPYmplY3QgKm9yaWdwZW5kaW5nID0gTlVMTDsKIAogICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sodW5pc3RyKSkKICAgICAgICAgdWN2dCA9IE5VTEw7CkBAIC03NzAsNjkgKzc1NCw2NiBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgZGF0YSA9IFB5VW5pY29kZV9Bc1VuaWNvZGVBbmRTaXplKHVuaXN0ciwgJmRhdGFsZW4pOwotICAgIGlmIChkYXRhID09IE5VTEwpCi0gICAgICAgIGdvdG8gZXJyb3JleGl0OwotICAgIG9yaWdwZW5kaW5nID0gY3R4LT5wZW5kaW5nc2l6ZTsKKyAgICBpZiAoY3R4LT5wZW5kaW5nKSB7CisgICAgICAgIFB5T2JqZWN0ICppbmJ1Zl90bXA7CiAKLSAgICBpZiAob3JpZ3BlbmRpbmcgPiAwKSB7Ci0gICAgICAgIGlmIChkYXRhbGVuID4gUFlfU1NJWkVfVF9NQVggLSBjdHgtPnBlbmRpbmdzaXplKSB7Ci0gICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICAgICAgLyogaW5idWZfdG1wID09IE5VTEwgKi8KLSAgICAgICAgICAgIGdvdG8gZXJyb3JleGl0OwotICAgICAgICB9Ci0gICAgICAgIGluYnVmX3RtcCA9IFB5TWVtX05ldyhQeV9VTklDT0RFLCBkYXRhbGVuICsgY3R4LT5wZW5kaW5nc2l6ZSk7CisgICAgICAgIFB5X0lOQ1JFRihjdHgtPnBlbmRpbmcpOworICAgICAgICBvcmlncGVuZGluZyA9IGN0eC0+cGVuZGluZzsKKworICAgICAgICBQeV9JTkNSRUYoY3R4LT5wZW5kaW5nKTsKKyAgICAgICAgaW5idWZfdG1wID0gY3R4LT5wZW5kaW5nOworICAgICAgICBQeVVuaWNvZGVfQXBwZW5kKCZpbmJ1Zl90bXAsIHVuaXN0cik7CiAgICAgICAgIGlmIChpbmJ1Zl90bXAgPT0gTlVMTCkKICAgICAgICAgICAgIGdvdG8gZXJyb3JleGl0OwotICAgICAgICBtZW1jcHkoaW5idWZfdG1wLCBjdHgtPnBlbmRpbmcsCi0gICAgICAgICAgICBQeV9VTklDT0RFX1NJWkUgKiBjdHgtPnBlbmRpbmdzaXplKTsKLSAgICAgICAgbWVtY3B5KGluYnVmX3RtcCArIGN0eC0+cGVuZGluZ3NpemUsCi0gICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmlzdHIpLAotICAgICAgICAgICAgUHlfVU5JQ09ERV9TSVpFICogZGF0YWxlbik7Ci0gICAgICAgIGRhdGFsZW4gKz0gY3R4LT5wZW5kaW5nc2l6ZTsKLSAgICAgICAgY3R4LT5wZW5kaW5nc2l6ZSA9IDA7CisgICAgICAgIFB5X0NMRUFSKGN0eC0+cGVuZGluZyk7CiAgICAgICAgIGluYnVmID0gaW5idWZfdG1wOwogICAgIH0KLSAgICBlbHNlCi0gICAgICAgIGluYnVmID0gKFB5X1VOSUNPREUgKilQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmlzdHIpOworICAgIGVsc2UgeworICAgICAgICBvcmlncGVuZGluZyA9IE5VTEw7CiAKLSAgICBpbmJ1Zl9lbmQgPSBpbmJ1ZiArIGRhdGFsZW47CisgICAgICAgIFB5X0lOQ1JFRih1bmlzdHIpOworICAgICAgICBpbmJ1ZiA9IHVuaXN0cjsKKyAgICB9CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShpbmJ1ZikgPCAwKQorICAgICAgICBnb3RvIGVycm9yZXhpdDsKKyAgICBpbnBvcyA9IDA7CisgICAgZGF0YWxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGluYnVmKTsKIAogICAgIHIgPSBtdWx0aWJ5dGVjb2RlY19lbmNvZGUoY3R4LT5jb2RlYywgJmN0eC0+c3RhdGUsCi0gICAgICAgICAgICAgICAgICAgIChjb25zdCBQeV9VTklDT0RFICoqKSZpbmJ1ZiwgZGF0YWxlbiwKLSAgICAgICAgICAgICAgICAgICAgY3R4LT5lcnJvcnMsIGZpbmFsID8gTUJFTkNfRkxVU0ggfCBNQkVOQ19SRVNFVCA6IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5idWYsICZpbnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+ZXJyb3JzLCBmaW5hbCA/IE1CRU5DX0ZMVVNIIHwgTUJFTkNfUkVTRVQgOiAwKTsKICAgICBpZiAociA9PSBOVUxMKSB7CiAgICAgICAgIC8qIHJlY292ZXIgdGhlIG9yaWdpbmFsIHBlbmRpbmcgYnVmZmVyICovCi0gICAgICAgIGlmIChvcmlncGVuZGluZyA+IDApCi0gICAgICAgICAgICBtZW1jcHkoY3R4LT5wZW5kaW5nLCBpbmJ1Zl90bXAsCi0gICAgICAgICAgICAgICAgUHlfVU5JQ09ERV9TSVpFICogb3JpZ3BlbmRpbmcpOwotICAgICAgICBjdHgtPnBlbmRpbmdzaXplID0gb3JpZ3BlbmRpbmc7CisgICAgICAgIFB5X0NMRUFSKGN0eC0+cGVuZGluZyk7CisgICAgICAgIGN0eC0+cGVuZGluZyA9IG9yaWdwZW5kaW5nOworICAgICAgICBvcmlncGVuZGluZyA9IE5VTEw7CiAgICAgICAgIGdvdG8gZXJyb3JleGl0OwogICAgIH0KKyAgICBQeV9YREVDUkVGKG9yaWdwZW5kaW5nKTsKIAotICAgIGlmIChpbmJ1ZiA8IGluYnVmX2VuZCkgewotICAgICAgICBjdHgtPnBlbmRpbmdzaXplID0gKFB5X3NzaXplX3QpKGluYnVmX2VuZCAtIGluYnVmKTsKLSAgICAgICAgaWYgKGN0eC0+cGVuZGluZ3NpemUgPiBNQVhFTkNQRU5ESU5HKSB7CisgICAgaWYgKGlucG9zIDwgZGF0YWxlbikgeworICAgICAgICBpZiAoZGF0YWxlbiAtIGlucG9zID4gTUFYRU5DUEVORElORykgewogICAgICAgICAgICAgLyogbm9ybWFsIGNvZGVjcyBjYW4ndCByZWFjaCBoZXJlICovCi0gICAgICAgICAgICBjdHgtPnBlbmRpbmdzaXplID0gMDsKICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19Vbmljb2RlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBlbmRpbmcgYnVmZmVyIG92ZXJmbG93Iik7CiAgICAgICAgICAgICBnb3RvIGVycm9yZXhpdDsKICAgICAgICAgfQotICAgICAgICBtZW1jcHkoY3R4LT5wZW5kaW5nLCBpbmJ1ZiwKLSAgICAgICAgICAgIGN0eC0+cGVuZGluZ3NpemUgKiBQeV9VTklDT0RFX1NJWkUpOworICAgICAgICBjdHgtPnBlbmRpbmcgPSBQeVVuaWNvZGVfU3Vic3RyaW5nKGluYnVmLCBpbnBvcywgZGF0YWxlbik7CisgICAgICAgIGlmIChjdHgtPnBlbmRpbmcgPT0gTlVMTCkgeworICAgICAgICAgICAgLyogbm9ybWFsIGNvZGVjcyBjYW4ndCByZWFjaCBoZXJlICovCisgICAgICAgICAgICBnb3RvIGVycm9yZXhpdDsKKyAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChpbmJ1Zl90bXAgIT0gTlVMTCkKLSAgICAgICAgUHlNZW1fRGVsKGluYnVmX3RtcCk7CisgICAgUHlfREVDUkVGKGluYnVmKTsKICAgICBQeV9YREVDUkVGKHVjdnQpOwogICAgIHJldHVybiByOwogCiBlcnJvcmV4aXQ6Ci0gICAgaWYgKGluYnVmX3RtcCAhPSBOVUxMKQotICAgICAgICBQeU1lbV9EZWwoaW5idWZfdG1wKTsKICAgICBQeV9YREVDUkVGKHIpOwogICAgIFB5X1hERUNSRUYodWN2dCk7CisgICAgUHlfWERFQ1JFRihvcmlncGVuZGluZyk7CisgICAgUHlfWERFQ1JFRihpbmJ1Zik7CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTg1OSwxNyArODQwLDcgQEAKIHsKICAgICBidWYtPmluYnVmID0gYnVmLT5pbmJ1Zl90b3AgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKWRhdGE7CiAgICAgYnVmLT5pbmJ1Zl9lbmQgPSBidWYtPmluYnVmX3RvcCArIHNpemU7Ci0gICAgaWYgKGJ1Zi0+b3V0b2JqID09IE5VTEwpIHsgLyogb25seSBpZiBvdXRvYmogaXMgbm90IGFsbG9jYXRlZCB5ZXQgKi8KLSAgICAgICAgYnVmLT5vdXRvYmogPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgc2l6ZSk7Ci0gICAgICAgIGlmIChidWYtPm91dG9iaiA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICBidWYtPm91dGJ1ZiA9IFB5VW5pY29kZV9Bc1VuaWNvZGUoYnVmLT5vdXRvYmopOwotICAgICAgICBpZiAoYnVmLT5vdXRidWYgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgYnVmLT5vdXRidWZfZW5kID0gYnVmLT5vdXRidWYgKwotICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUoYnVmLT5vdXRvYmopOwotICAgIH0KLQorICAgIGJ1Zi0+d3JpdGVyLm1pbl9sZW5ndGggKz0gc2l6ZTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtODc4LDE0ICs4NDksMTMgQEAKICAgICAgICAgICAgICAgICAgICAgTXVsdGlieXRlRGVjb2RlQnVmZmVyICpidWYpCiB7CiAgICAgd2hpbGUgKGJ1Zi0+aW5idWYgPCBidWYtPmluYnVmX2VuZCkgewotICAgICAgICBQeV9zc2l6ZV90IGlubGVmdCwgb3V0bGVmdDsKKyAgICAgICAgUHlfc3NpemVfdCBpbmxlZnQ7CiAgICAgICAgIFB5X3NzaXplX3QgcjsKIAogICAgICAgICBpbmxlZnQgPSAoUHlfc3NpemVfdCkoYnVmLT5pbmJ1Zl9lbmQgLSBidWYtPmluYnVmKTsKLSAgICAgICAgb3V0bGVmdCA9IChQeV9zc2l6ZV90KShidWYtPm91dGJ1Zl9lbmQgLSBidWYtPm91dGJ1Zik7CiAKICAgICAgICAgciA9IGN0eC0+Y29kZWMtPmRlY29kZSgmY3R4LT5zdGF0ZSwgY3R4LT5jb2RlYy0+Y29uZmlnLAotICAgICAgICAgICAgJmJ1Zi0+aW5idWYsIGlubGVmdCwgJmJ1Zi0+b3V0YnVmLCBvdXRsZWZ0KTsKKyAgICAgICAgICAgICZidWYtPmluYnVmLCBpbmxlZnQsICZidWYtPndyaXRlcik7CiAgICAgICAgIGlmIChyID09IDAgfHwgciA9PSBNQkVSUl9UT09GRVcpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZWxzZSBpZiAobXVsdGlieXRlY29kZWNfZGVjZXJyb3IoY3R4LT5jb2RlYywgJmN0eC0+c3RhdGUsCkBAIC05MjcsNyArODk3LDcgQEAKICAgICAgICAgaWYgKHIgIT0gMCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBzZWxmLT5wZW5kaW5nc2l6ZSA9IDA7CisgICAgUHlfQ0xFQVIoc2VsZi0+cGVuZGluZyk7CiAgICAgUHlfUkVUVVJOX05PTkU7CiB9CiAKQEAgLTk2Myw3ICs5MzMsNyBAQAogICAgIH0KIAogICAgIHNlbGYtPmNvZGVjID0gKChNdWx0aWJ5dGVDb2RlY09iamVjdCAqKWNvZGVjKS0+Y29kZWM7Ci0gICAgc2VsZi0+cGVuZGluZ3NpemUgPSAwOworICAgIHNlbGYtPnBlbmRpbmcgPSBOVUxMOwogICAgIHNlbGYtPmVycm9ycyA9IGludGVybmFsX2Vycm9yX2NhbGxiYWNrKGVycm9ycyk7CiAgICAgaWYgKHNlbGYtPmVycm9ycyA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycm9yZXhpdDsKQEAgLTEwNTgsOCArMTAyOCw5IEBACiAgICAgTXVsdGlieXRlRGVjb2RlQnVmZmVyIGJ1ZjsKICAgICBjaGFyICpkYXRhLCAqd2RhdGEgPSBOVUxMOwogICAgIFB5X2J1ZmZlciBwZGF0YTsKLSAgICBQeV9zc2l6ZV90IHdzaXplLCBmaW5hbHNpemUgPSAwLCBzaXplLCBvcmlncGVuZGluZzsKKyAgICBQeV9zc2l6ZV90IHdzaXplLCBzaXplLCBvcmlncGVuZGluZzsKICAgICBpbnQgZmluYWwgPSAwOworICAgIFB5T2JqZWN0ICpyZXM7CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJ5KnxpOmRlY29kZSIsCiAgICAgICAgICAgICAgICAgICAgIGluY3JlbWVudGFsa3dhcmdsaXN0LCAmcGRhdGEsICZmaW5hbCkpCkBAIC0xMDY3LDcgKzEwMzgsOCBAQAogICAgIGRhdGEgPSBwZGF0YS5idWY7CiAgICAgc2l6ZSA9IHBkYXRhLmxlbjsKIAotICAgIGJ1Zi5vdXRvYmogPSBidWYuZXhjb2JqID0gTlVMTDsKKyAgICBfUHlVbmljb2RlV3JpdGVyX0luaXQoJmJ1Zi53cml0ZXIpOworICAgIGJ1Zi5leGNvYmogPSBOVUxMOwogICAgIG9yaWdwZW5kaW5nID0gc2VsZi0+cGVuZGluZ3NpemU7CiAKICAgICBpZiAoc2VsZi0+cGVuZGluZ3NpemUgPT0gMCkgewpAQCAtMTEwOSwyMyArMTA4MSwyMiBAQAogICAgICAgICAgICAgZ290byBlcnJvcmV4aXQ7CiAgICAgfQogCi0gICAgZmluYWxzaXplID0gKFB5X3NzaXplX3QpKGJ1Zi5vdXRidWYgLSBQeVVuaWNvZGVfQVNfVU5JQ09ERShidWYub3V0b2JqKSk7Ci0gICAgaWYgKGZpbmFsc2l6ZSAhPSBQeVVuaWNvZGVfR0VUX1NJWkUoYnVmLm91dG9iaikpCi0gICAgICAgIGlmIChQeVVuaWNvZGVfUmVzaXplKCZidWYub3V0b2JqLCBmaW5hbHNpemUpID09IC0xKQotICAgICAgICAgICAgZ290byBlcnJvcmV4aXQ7CisgICAgcmVzID0gX1B5VW5pY29kZVdyaXRlcl9GaW5pc2goJmJ1Zi53cml0ZXIpOworICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcmV4aXQ7CiAKICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZwZGF0YSk7CiAgICAgaWYgKHdkYXRhICE9IGRhdGEpCiAgICAgICAgIFB5TWVtX0RlbCh3ZGF0YSk7CiAgICAgUHlfWERFQ1JFRihidWYuZXhjb2JqKTsKLSAgICByZXR1cm4gYnVmLm91dG9iajsKKyAgICByZXR1cm4gcmVzOwogCiBlcnJvcmV4aXQ6CiAgICAgUHlCdWZmZXJfUmVsZWFzZSgmcGRhdGEpOwogICAgIGlmICh3ZGF0YSAhPSBOVUxMICYmIHdkYXRhICE9IGRhdGEpCiAgICAgICAgIFB5TWVtX0RlbCh3ZGF0YSk7CiAgICAgUHlfWERFQ1JFRihidWYuZXhjb2JqKTsKLSAgICBQeV9YREVDUkVGKGJ1Zi5vdXRvYmopOworICAgIF9QeVVuaWNvZGVXcml0ZXJfRGVhbGxvYygmYnVmLndyaXRlcik7CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTEyNjUsMTMgKzEyMzYsMTQgQEAKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1ldGhvZCwgUHlfc3NpemVfdCBzaXplaGludCkKIHsKICAgICBNdWx0aWJ5dGVEZWNvZGVCdWZmZXIgYnVmOwotICAgIFB5T2JqZWN0ICpjcmVzOwotICAgIFB5X3NzaXplX3QgcnNpemUsIGZpbmFsc2l6ZSA9IDA7CisgICAgUHlPYmplY3QgKmNyZXMsICpyZXM7CisgICAgUHlfc3NpemVfdCByc2l6ZTsKIAogICAgIGlmIChzaXplaGludCA9PSAwKQogICAgICAgICByZXR1cm4gUHlVbmljb2RlX05ldygwLCAwKTsKIAotICAgIGJ1Zi5vdXRvYmogPSBidWYuZXhjb2JqID0gTlVMTDsKKyAgICBfUHlVbmljb2RlV3JpdGVyX0luaXQoJmJ1Zi53cml0ZXIpOworICAgIGJ1Zi5leGNvYmogPSBOVUxMOwogICAgIGNyZXMgPSBOVUxMOwogCiAgICAgZm9yICg7OykgewpAQCAtMTM0MCwyOSArMTMxMiwyNyBAQAogICAgICAgICAgICAgICAgIGdvdG8gZXJyb3JleGl0OwogICAgICAgICB9CiAKLSAgICAgICAgZmluYWxzaXplID0gKFB5X3NzaXplX3QpKGJ1Zi5vdXRidWYgLQotICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUoYnVmLm91dG9iaikpOwogICAgICAgICBQeV9ERUNSRUYoY3Jlcyk7CiAgICAgICAgIGNyZXMgPSBOVUxMOwogCi0gICAgICAgIGlmIChzaXplaGludCA8IDAgfHwgZmluYWxzaXplICE9IDAgfHwgcnNpemUgPT0gMCkKKyAgICAgICAgaWYgKHNpemVoaW50IDwgMCB8fCBidWYud3JpdGVyLnBvcyAhPSAwIHx8IHJzaXplID09IDApCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBzaXplaGludCA9IDE7IC8qIHJlYWQgMSBtb3JlIGJ5dGUgYW5kIHJldHJ5ICovCiAgICAgfQogCi0gICAgaWYgKGZpbmFsc2l6ZSAhPSBQeVVuaWNvZGVfR0VUX1NJWkUoYnVmLm91dG9iaikpCi0gICAgICAgIGlmIChQeVVuaWNvZGVfUmVzaXplKCZidWYub3V0b2JqLCBmaW5hbHNpemUpID09IC0xKQotICAgICAgICAgICAgZ290byBlcnJvcmV4aXQ7CisgICAgcmVzID0gX1B5VW5pY29kZVdyaXRlcl9GaW5pc2goJmJ1Zi53cml0ZXIpOworICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcmV4aXQ7CiAKICAgICBQeV9YREVDUkVGKGNyZXMpOwogICAgIFB5X1hERUNSRUYoYnVmLmV4Y29iaik7Ci0gICAgcmV0dXJuIGJ1Zi5vdXRvYmo7CisgICAgcmV0dXJuIHJlczsKIAogZXJyb3JleGl0OgogICAgIFB5X1hERUNSRUYoY3Jlcyk7CiAgICAgUHlfWERFQ1JFRihidWYuZXhjb2JqKTsKLSAgICBQeV9YREVDUkVGKGJ1Zi5vdXRvYmopOworICAgIF9QeVVuaWNvZGVXcml0ZXJfRGVhbGxvYygmYnVmLndyaXRlcik7CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTE2NDksMTggKzE2MTksMTYgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBtYnN0cmVhbXdyaXRlcl9yZXNldChNdWx0aWJ5dGVTdHJlYW1Xcml0ZXJPYmplY3QgKnNlbGYpCiB7Ci0gICAgY29uc3QgUHlfVU5JQ09ERSAqcGVuZGluZzsKICAgICBQeU9iamVjdCAqcHdydDsKIAotICAgIHBlbmRpbmcgPSBzZWxmLT5wZW5kaW5nOwogICAgIHB3cnQgPSBtdWx0aWJ5dGVjb2RlY19lbmNvZGUoc2VsZi0+Y29kZWMsICZzZWxmLT5zdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgJnBlbmRpbmcsIHNlbGYtPnBlbmRpbmdzaXplLCBzZWxmLT5lcnJvcnMsCisgICAgICAgICAgICAgICAgICAgIHNlbGYtPnBlbmRpbmcsIE5VTEwsIHNlbGYtPmVycm9ycywKICAgICAgICAgICAgICAgICAgICAgTUJFTkNfRkxVU0ggfCBNQkVOQ19SRVNFVCk7CiAgICAgLyogc29tZSBwZW5kaW5nIGJ1ZmZlciBjYW4gYmUgdHJ1bmNhdGVkIHdoZW4gVW5pY29kZUVuY29kZUVycm9yIGlzCiAgICAgICogcmFpc2VkIG9uICdzdHJpY3QnIG1vZGUuIGJ1dCwgJ3Jlc2V0JyBtZXRob2QgaXMgZGVzaWduZWQgdG8KICAgICAgKiByZXNldCB0aGUgcGVuZGluZyBidWZmZXIgb3Igc3RhdGVzIHNvIGZhaWxlZCBzdHJpbmcgc2VxdWVuY2UKICAgICAgKiBvdWdodCB0byBiZSBtaXNzZWQgKi8KLSAgICBzZWxmLT5wZW5kaW5nc2l6ZSA9IDA7CisgICAgUHlfQ0xFQVIoc2VsZi0+cGVuZGluZyk7CiAgICAgaWYgKHB3cnQgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTE3MDYsNyArMTY3NCw3IEBACiAgICAgc2VsZi0+Y29kZWMgPSAoKE11bHRpYnl0ZUNvZGVjT2JqZWN0ICopY29kZWMpLT5jb2RlYzsKICAgICBzZWxmLT5zdHJlYW0gPSBzdHJlYW07CiAgICAgUHlfSU5DUkVGKHN0cmVhbSk7Ci0gICAgc2VsZi0+cGVuZGluZ3NpemUgPSAwOworICAgIHNlbGYtPnBlbmRpbmcgPSBOVUxMOwogICAgIHNlbGYtPmVycm9ycyA9IGludGVybmFsX2Vycm9yX2NhbGxiYWNrKGVycm9ycyk7CiAgICAgaWYgKHNlbGYtPmVycm9ycyA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycm9yZXhpdDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvY2prY29kZWNzL211bHRpYnl0ZWNvZGVjLmggYi9Nb2R1bGVzL2Nqa2NvZGVjcy9tdWx0aWJ5dGVjb2RlYy5oCmluZGV4IDFiNmVmNTUuLjMwNTBhZWIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvY2prY29kZWNzL211bHRpYnl0ZWNvZGVjLmgKKysrIGIvTW9kdWxlcy9jamtjb2RlY3MvbXVsdGlieXRlY29kZWMuaApAQCAtMTAsMTIgKzEwLDYgQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKLSNpZmRlZiB1aW50MzJfdAotdHlwZWRlZiB1aW50MzJfdCB1Y3M0X3Q7Ci0jZWxzZQotdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWNzNF90OwotI2VuZGlmCi0KICNpZmRlZiB1aW50MTZfdAogdHlwZWRlZiB1aW50MTZfdCB1Y3MyX3QsIERCQ0hBUjsKICNlbHNlCkBAIC0yNywxMyArMjEsMTQgQEAKICAgICBpbnQgaTsKICAgICB1bnNpZ25lZCBjaGFyIGNbOF07CiAgICAgdWNzMl90IHUyWzRdOwotICAgIHVjczRfdCB1NFsyXTsKKyAgICBQeV9VQ1M0IHU0WzJdOwogfSBNdWx0aWJ5dGVDb2RlY19TdGF0ZTsKIAogdHlwZWRlZiBpbnQgKCptYmNvZGVjX2luaXQpKGNvbnN0IHZvaWQgKmNvbmZpZyk7CiB0eXBlZGVmIFB5X3NzaXplX3QgKCptYmVuY29kZV9mdW5jKShNdWx0aWJ5dGVDb2RlY19TdGF0ZSAqc3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpjb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQeV9VTklDT0RFICoqaW5idWYsIFB5X3NzaXplX3QgaW5sZWZ0LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGtpbmQsIHZvaWQgKmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90ICppbnBvcywgUHlfc3NpemVfdCBpbmxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKipvdXRidWYsIFB5X3NzaXplX3Qgb3V0bGVmdCwKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmbGFncyk7CiB0eXBlZGVmIGludCAoKm1iZW5jb2RlaW5pdF9mdW5jKShNdWx0aWJ5dGVDb2RlY19TdGF0ZSAqc3RhdGUsCkBAIC00NCw3ICszOSw3IEBACiB0eXBlZGVmIFB5X3NzaXplX3QgKCptYmRlY29kZV9mdW5jKShNdWx0aWJ5dGVDb2RlY19TdGF0ZSAqc3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpjb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICoqaW5idWYsIFB5X3NzaXplX3QgaW5sZWZ0LAotICAgICAgICAgICAgICAgICAgICAgICAgUHlfVU5JQ09ERSAqKm91dGJ1ZiwgUHlfc3NpemVfdCBvdXRsZWZ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlcik7CiB0eXBlZGVmIGludCAoKm1iZGVjb2RlaW5pdF9mdW5jKShNdWx0aWJ5dGVDb2RlY19TdGF0ZSAqc3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpjb25maWcpOwogdHlwZWRlZiBQeV9zc2l6ZV90ICgqbWJkZWNvZGVyZXNldF9mdW5jKShNdWx0aWJ5dGVDb2RlY19TdGF0ZSAqc3RhdGUsCkBAIC04MSw4ICs3Niw3IEBACiAjZGVmaW5lIE1BWEVOQ1BFTkRJTkcgICAyCiAjZGVmaW5lIF9NdWx0aWJ5dGVTdGF0ZWZ1bEVuY29kZXJfSEVBRCAgICAgICAgICBcCiAgICAgX011bHRpYnl0ZVN0YXRlZnVsQ29kZWNfSEVBRCAgICAgICAgICAgICAgICBcCi0gICAgUHlfVU5JQ09ERSBwZW5kaW5nW01BWEVOQ1BFTkRJTkddOyAgICAgICAgICBcCi0gICAgUHlfc3NpemVfdCBwZW5kaW5nc2l6ZTsKKyAgICBQeU9iamVjdCAqcGVuZGluZzsKIHR5cGVkZWYgc3RydWN0IHsKICAgICBfTXVsdGlieXRlU3RhdGVmdWxFbmNvZGVyX0hFQUQKIH0gTXVsdGlieXRlU3RhdGVmdWxFbmNvZGVyQ29udGV4dDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvZmF1bHRoYW5kbGVyLmMgYi9Nb2R1bGVzL2ZhdWx0aGFuZGxlci5jCmluZGV4IDdlMzYzZjAuLmY0OTk5M2QgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvZmF1bHRoYW5kbGVyLmMKKysrIGIvTW9kdWxlcy9mYXVsdGhhbmRsZXIuYwpAQCAtMjIsNyArMjIsOSBAQAogIyAgZGVmaW5lIEZBVUxUSEFORExFUl9VU0VSCiAjZW5kaWYKIAotI2RlZmluZSBQVVRTKGZkLCBzdHIpIHdyaXRlKGZkLCBzdHIsIHN0cmxlbihzdHIpKQorLyogY2FzdCBzaXplX3QgdG8gaW50IGJlY2F1c2Ugd3JpdGUoKSB0YWtlcyBhbiBpbnQgb24gV2luZG93cworICAgKGFueXdheSwgdGhlIGxlbmd0aCBpcyBzbWFsbGVyIHRoYW4gMzAgY2hhcmFjdGVycykgKi8KKyNkZWZpbmUgUFVUUyhmZCwgc3RyKSB3cml0ZShmZCwgc3RyLCAoaW50KXN0cmxlbihzdHIpKQogCiAjaWZkZWYgSEFWRV9TSUdBQ1RJT04KIHR5cGVkZWYgc3RydWN0IHNpZ2FjdGlvbiBfUHlfc2lnaGFuZGxlcl90OwpAQCAtNzksOSArODEsNiBAQAogc3RhdGljIHVzZXJfc2lnbmFsX3QgKnVzZXJfc2lnbmFsczsKIAogLyogdGhlIGZvbGxvd2luZyBtYWNyb3MgY29tZSBmcm9tIFB5dGhvbjogTW9kdWxlcy9zaWduYWxtb2R1bGUuYyAqLwotI2lmIGRlZmluZWQoUFlPU19PUzIpICYmICFkZWZpbmVkKFBZQ0NfR0NDKQotI2RlZmluZSBOU0lHIDEyCi0jZW5kaWYKICNpZm5kZWYgTlNJRwogIyBpZiBkZWZpbmVkKF9OU0lHKQogIyAgZGVmaW5lIE5TSUcgX05TSUcgICAgICAgICAgICAvKiBGb3IgQlNEL1N5c1YgKi8KQEAgLTQ0OCw3ICs0NDcsNyBAQAogICAgICAgICAvKiBnZXQgdGhlIHRocmVhZCBob2xkaW5nIHRoZSBHSUwsIE5VTEwgaWYgbm8gdGhyZWFkIGhvbGQgdGhlIEdJTCAqLwogICAgICAgICBjdXJyZW50ID0gX1B5X2F0b21pY19sb2FkX3JlbGF4ZWQoJl9QeVRocmVhZFN0YXRlX0N1cnJlbnQpOwogCi0gICAgICAgIHdyaXRlKHRocmVhZC5mZCwgdGhyZWFkLmhlYWRlciwgdGhyZWFkLmhlYWRlcl9sZW4pOworICAgICAgICB3cml0ZSh0aHJlYWQuZmQsIHRocmVhZC5oZWFkZXIsIChpbnQpdGhyZWFkLmhlYWRlcl9sZW4pOwogCiAgICAgICAgIGVycm1zZyA9IF9QeV9EdW1wVHJhY2ViYWNrVGhyZWFkcyh0aHJlYWQuZmQsIHRocmVhZC5pbnRlcnAsIGN1cnJlbnQpOwogICAgICAgICBvayA9IChlcnJtc2cgPT0gTlVMTCk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL2ZjbnRsbW9kdWxlLmMgYi9Nb2R1bGVzL2ZjbnRsbW9kdWxlLmMKaW5kZXggNmI3ZTNmYy4uMzhlZjU1ZiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9mY250bG1vZHVsZS5jCisrKyBiL01vZHVsZXMvZmNudGxtb2R1bGUuYwpAQCAtMzI1LDExICszMjUsNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAmbGVub2JqLCAmc3RhcnRvYmosICZ3aGVuY2UpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotI2lmIGRlZmluZWQoUFlPU19PUzIpICYmIGRlZmluZWQoUFlDQ19HQ0MpCi0gICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX05vdEltcGxlbWVudGVkRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICJsb2NrZiBub3Qgc3VwcG9ydGVkIG9uIE9TLzIgKEVNWCkiKTsKLSAgICByZXR1cm4gTlVMTDsKLSNlbHNlCiAjaWZuZGVmIExPQ0tfU0gKICNkZWZpbmUgTE9DS19TSCAgICAgICAgIDEgICAgICAgLyogc2hhcmVkIGxvY2sgKi8KICNkZWZpbmUgTE9DS19FWCAgICAgICAgIDIgICAgICAgLyogZXhjbHVzaXZlIGxvY2sgKi8KQEAgLTM4Myw3ICszNzgsNiBAQAogICAgIH0KICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CiAgICAgcmV0dXJuIFB5X05vbmU7Ci0jZW5kaWYgIC8qIGRlZmluZWQoUFlPU19PUzIpICYmIGRlZmluZWQoUFlDQ19HQ0MpICovCiB9CiAKIFB5RG9jX1NUUlZBUihsb2NrZl9kb2MsCkBAIC00MzAsMTg4ICs0MjQsMTc5IEBACiAKIC8qIE1vZHVsZSBpbml0aWFsaXNhdGlvbiAqLwogCi1zdGF0aWMgaW50Ci1pbnMoUHlPYmplY3QqIGQsIGNoYXIqIHN5bWJvbCwgbG9uZyB2YWx1ZSkKLXsKLSAgICBQeU9iamVjdCogdiA9IFB5TG9uZ19Gcm9tTG9uZyh2YWx1ZSk7Ci0gICAgaWYgKCF2IHx8IFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsIHN5bWJvbCwgdikgPCAwKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICBQeV9ERUNSRUYodik7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNkZWZpbmUgSU5TKHgpIGlmIChpbnMoZCwgI3gsIChsb25nKXgpKSByZXR1cm4gLTEKIAogc3RhdGljIGludAotYWxsX2lucyhQeU9iamVjdCogZCkKK2FsbF9pbnMoUHlPYmplY3QqIG0pCiB7Ci0gICAgaWYgKGlucyhkLCAiTE9DS19TSCIsIChsb25nKUxPQ0tfU0gpKSByZXR1cm4gLTE7Ci0gICAgaWYgKGlucyhkLCAiTE9DS19FWCIsIChsb25nKUxPQ0tfRVgpKSByZXR1cm4gLTE7Ci0gICAgaWYgKGlucyhkLCAiTE9DS19OQiIsIChsb25nKUxPQ0tfTkIpKSByZXR1cm4gLTE7Ci0gICAgaWYgKGlucyhkLCAiTE9DS19VTiIsIChsb25nKUxPQ0tfVU4pKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPQ0tfU0gpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPQ0tfRVgpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPQ0tfTkIpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPQ0tfVU4pKSByZXR1cm4gLTE7CiAvKiBHTlUgZXh0ZW5zaW9ucywgYXMgb2YgZ2xpYmMgMi4yLjQgKi8KICNpZmRlZiBMT0NLX01BTkQKLSAgICBpZiAoaW5zKGQsICJMT0NLX01BTkQiLCAobG9uZylMT0NLX01BTkQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPQ0tfTUFORCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIExPQ0tfUkVBRAotICAgIGlmIChpbnMoZCwgIkxPQ0tfUkVBRCIsIChsb25nKUxPQ0tfUkVBRCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTE9DS19SRUFEKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgTE9DS19XUklURQotICAgIGlmIChpbnMoZCwgIkxPQ0tfV1JJVEUiLCAobG9uZylMT0NLX1dSSVRFKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBMT0NLX1dSSVRFKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgTE9DS19SVwotICAgIGlmIChpbnMoZCwgIkxPQ0tfUlciLCAobG9uZylMT0NLX1JXKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBMT0NLX1JXKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAKICNpZmRlZiBGX0RVUEZECi0gICAgaWYgKGlucyhkLCAiRl9EVVBGRCIsIChsb25nKUZfRFVQRkQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEZfRFVQRkQpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBGX0RVUEZEX0NMT0VYRUMKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRl9EVVBGRF9DTE9FWEVDKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgRl9HRVRGRAotICAgIGlmIChpbnMoZCwgIkZfR0VURkQiLCAobG9uZylGX0dFVEZEKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGX0dFVEZEKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgRl9TRVRGRAotICAgIGlmIChpbnMoZCwgIkZfU0VURkQiLCAobG9uZylGX1NFVEZEKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGX1NFVEZEKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgRl9HRVRGTAotICAgIGlmIChpbnMoZCwgIkZfR0VURkwiLCAobG9uZylGX0dFVEZMKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGX0dFVEZMKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgRl9TRVRGTAotICAgIGlmIChpbnMoZCwgIkZfU0VURkwiLCAobG9uZylGX1NFVEZMKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGX1NFVEZMKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgRl9HRVRMSwotICAgIGlmIChpbnMoZCwgIkZfR0VUTEsiLCAobG9uZylGX0dFVExLKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGX0dFVExLKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgRl9TRVRMSwotICAgIGlmIChpbnMoZCwgIkZfU0VUTEsiLCAobG9uZylGX1NFVExLKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGX1NFVExLKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgRl9TRVRMS1cKLSAgICBpZiAoaW5zKGQsICJGX1NFVExLVyIsIChsb25nKUZfU0VUTEtXKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGX1NFVExLVykpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIEZfR0VUT1dOCi0gICAgaWYgKGlucyhkLCAiRl9HRVRPV04iLCAobG9uZylGX0dFVE9XTikpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRl9HRVRPV04pKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBGX1NFVE9XTgotICAgIGlmIChpbnMoZCwgIkZfU0VUT1dOIiwgKGxvbmcpRl9TRVRPV04pKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEZfU0VUT1dOKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgRl9HRVRTSUcKLSAgICBpZiAoaW5zKGQsICJGX0dFVFNJRyIsIChsb25nKUZfR0VUU0lHKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGX0dFVFNJRykpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIEZfU0VUU0lHCi0gICAgaWYgKGlucyhkLCAiRl9TRVRTSUciLCAobG9uZylGX1NFVFNJRykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRl9TRVRTSUcpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBGX1JETENLCi0gICAgaWYgKGlucyhkLCAiRl9SRExDSyIsIChsb25nKUZfUkRMQ0spKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEZfUkRMQ0spKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBGX1dSTENLCi0gICAgaWYgKGlucyhkLCAiRl9XUkxDSyIsIChsb25nKUZfV1JMQ0spKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEZfV1JMQ0spKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBGX1VOTENLCi0gICAgaWYgKGlucyhkLCAiRl9VTkxDSyIsIChsb25nKUZfVU5MQ0spKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEZfVU5MQ0spKSByZXR1cm4gLTE7CiAjZW5kaWYKIC8qIExGUyBjb25zdGFudHMgKi8KICNpZmRlZiBGX0dFVExLNjQKLSAgICBpZiAoaW5zKGQsICJGX0dFVExLNjQiLCAobG9uZylGX0dFVExLNjQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEZfR0VUTEs2NCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIEZfU0VUTEs2NAotICAgIGlmIChpbnMoZCwgIkZfU0VUTEs2NCIsIChsb25nKUZfU0VUTEs2NCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRl9TRVRMSzY0KSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgRl9TRVRMS1c2NAotICAgIGlmIChpbnMoZCwgIkZfU0VUTEtXNjQiLCAobG9uZylGX1NFVExLVzY0KSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGX1NFVExLVzY0KSkgcmV0dXJuIC0xOwogI2VuZGlmCiAvKiBHTlUgZXh0ZW5zaW9ucywgYXMgb2YgZ2xpYmMgMi4yLjQuICovCiAjaWZkZWYgRkFTWU5DCi0gICAgaWYgKGlucyhkLCAiRkFTWU5DIiwgKGxvbmcpRkFTWU5DKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGQVNZTkMpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBGX1NFVExFQVNFCi0gICAgaWYgKGlucyhkLCAiRl9TRVRMRUFTRSIsIChsb25nKUZfU0VUTEVBU0UpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEZfU0VUTEVBU0UpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBGX0dFVExFQVNFCi0gICAgaWYgKGlucyhkLCAiRl9HRVRMRUFTRSIsIChsb25nKUZfR0VUTEVBU0UpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEZfR0VUTEVBU0UpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBGX05PVElGWQotICAgIGlmIChpbnMoZCwgIkZfTk9USUZZIiwgKGxvbmcpRl9OT1RJRlkpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEZfTk9USUZZKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAvKiBPbGQgQlNEIGZsb2NrKCkuICovCiAjaWZkZWYgRl9FWExDSwotICAgIGlmIChpbnMoZCwgIkZfRVhMQ0siLCAobG9uZylGX0VYTENLKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGX0VYTENLKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgRl9TSExDSwotICAgIGlmIChpbnMoZCwgIkZfU0hMQ0siLCAobG9uZylGX1NITENLKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGX1NITENLKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAKIC8qIE9TIFggc3BlY2lmaWNzICovCiAjaWZkZWYgRl9GVUxMRlNZTkMKLSAgICBpZiAoaW5zKGQsICJGX0ZVTExGU1lOQyIsIChsb25nKUZfRlVMTEZTWU5DKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGX0ZVTExGU1lOQykpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIEZfTk9DQUNIRQotICAgIGlmIChpbnMoZCwgIkZfTk9DQUNIRSIsIChsb25nKUZfTk9DQUNIRSkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRl9OT0NBQ0hFKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAKIC8qIEZvciBGX3tHRVR8U0VUfUZMICovCiAjaWZkZWYgRkRfQ0xPRVhFQwotICAgIGlmIChpbnMoZCwgIkZEX0NMT0VYRUMiLCAobG9uZylGRF9DTE9FWEVDKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGRF9DTE9FWEVDKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAKIC8qIEZvciBGX05PVElGWSAqLwogI2lmZGVmIEROX0FDQ0VTUwotICAgIGlmIChpbnMoZCwgIkROX0FDQ0VTUyIsIChsb25nKUROX0FDQ0VTUykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRE5fQUNDRVNTKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgRE5fTU9ESUZZCi0gICAgaWYgKGlucyhkLCAiRE5fTU9ESUZZIiwgKGxvbmcpRE5fTU9ESUZZKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBETl9NT0RJRlkpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBETl9DUkVBVEUKLSAgICBpZiAoaW5zKGQsICJETl9DUkVBVEUiLCAobG9uZylETl9DUkVBVEUpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEROX0NSRUFURSkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIEROX0RFTEVURQotICAgIGlmIChpbnMoZCwgIkROX0RFTEVURSIsIChsb25nKUROX0RFTEVURSkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRE5fREVMRVRFKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgRE5fUkVOQU1FCi0gICAgaWYgKGlucyhkLCAiRE5fUkVOQU1FIiwgKGxvbmcpRE5fUkVOQU1FKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBETl9SRU5BTUUpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBETl9BVFRSSUIKLSAgICBpZiAoaW5zKGQsICJETl9BVFRSSUIiLCAobG9uZylETl9BVFRSSUIpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEROX0FUVFJJQikpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIEROX01VTFRJU0hPVAotICAgIGlmIChpbnMoZCwgIkROX01VTFRJU0hPVCIsIChsb25nKUROX01VTFRJU0hPVCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRE5fTVVMVElTSE9UKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAKICNpZmRlZiBIQVZFX1NUUk9QVFNfSAogICAgIC8qIFVuaXggOTggZ3VhcmFudGVlcyB0aGF0IHRoZXNlIGFyZSBpbiBzdHJvcHRzLmguICovCi0gICAgSU5TKElfUFVTSCk7Ci0gICAgSU5TKElfUE9QKTsKLSAgICBJTlMoSV9MT09LKTsKLSAgICBJTlMoSV9GTFVTSCk7Ci0gICAgSU5TKElfRkxVU0hCQU5EKTsKLSAgICBJTlMoSV9TRVRTSUcpOwotICAgIElOUyhJX0dFVFNJRyk7Ci0gICAgSU5TKElfRklORCk7Ci0gICAgSU5TKElfUEVFSyk7Ci0gICAgSU5TKElfU1JET1BUKTsKLSAgICBJTlMoSV9HUkRPUFQpOwotICAgIElOUyhJX05SRUFEKTsKLSAgICBJTlMoSV9GRElOU0VSVCk7Ci0gICAgSU5TKElfU1RSKTsKLSAgICBJTlMoSV9TV1JPUFQpOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJX1BVU0gpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfUE9QKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJX0xPT0spKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfRkxVU0gpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfRkxVU0hCQU5EKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJX1NFVFNJRykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSV9HRVRTSUcpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfRklORCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSV9QRUVLKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJX1NSRE9QVCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSV9HUkRPUFQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfTlJFQUQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfRkRJTlNFUlQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfU1RSKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJX1NXUk9QVCkpIHJldHVybiAtMTsKICNpZmRlZiBJX0dXUk9QVAogICAgIC8qIGRlc3BpdGUgdGhlIGNvbW1lbnQgYWJvdmUsIG9sZC1pc2ggZ2xpYmNzIG1pc3MgYSBjb3VwbGUuLi4gKi8KLSAgICBJTlMoSV9HV1JPUFQpOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJX0dXUk9QVCkpIHJldHVybiAtMTsKICNlbmRpZgotICAgIElOUyhJX1NFTkRGRCk7Ci0gICAgSU5TKElfUkVDVkZEKTsKLSAgICBJTlMoSV9MSVNUKTsKLSAgICBJTlMoSV9BVE1BUkspOwotICAgIElOUyhJX0NLQkFORCk7Ci0gICAgSU5TKElfR0VUQkFORCk7Ci0gICAgSU5TKElfQ0FOUFVUKTsKLSAgICBJTlMoSV9TRVRDTFRJTUUpOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJX1NFTkRGRCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSV9SRUNWRkQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfTElTVCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSV9BVE1BUkspKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfQ0tCQU5EKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJX0dFVEJBTkQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfQ0FOUFVUKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJX1NFVENMVElNRSkpIHJldHVybiAtMTsKICNpZmRlZiBJX0dFVENMVElNRQotICAgIElOUyhJX0dFVENMVElNRSk7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfR0VUQ0xUSU1FKSkgcmV0dXJuIC0xOwogI2VuZGlmCi0gICAgSU5TKElfTElOSyk7Ci0gICAgSU5TKElfVU5MSU5LKTsKLSAgICBJTlMoSV9QTElOSyk7Ci0gICAgSU5TKElfUFVOTElOSyk7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfTElOSykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSV9VTkxJTkspKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfUExJTkspKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElfUFVOTElOSykpIHJldHVybiAtMTsKICNlbmRpZgogCiAgICAgcmV0dXJuIDA7CkBAIC02MzMsNyArNjE4LDcgQEAKIFB5TU9ESU5JVF9GVU5DCiBQeUluaXRfZmNudGwodm9pZCkKIHsKLSAgICBQeU9iamVjdCAqbSwgKmQ7CisgICAgUHlPYmplY3QgKm07CiAKICAgICAvKiBDcmVhdGUgdGhlIG1vZHVsZSBhbmQgYWRkIHRoZSBmdW5jdGlvbnMgYW5kIGRvY3VtZW50YXRpb24gKi8KICAgICBtID0gUHlNb2R1bGVfQ3JlYXRlKCZmY250bG1vZHVsZSk7CkBAIC02NDEsNyArNjI2LDYgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKiBBZGQgc29tZSBzeW1ib2xpYyBjb25zdGFudHMgdG8gdGhlIG1vZHVsZSAqLwotICAgIGQgPSBQeU1vZHVsZV9HZXREaWN0KG0pOwotICAgIGFsbF9pbnMoZCk7CisgICAgYWxsX2lucyhtKTsKICAgICByZXR1cm4gbTsKIH0KZGlmZiAtLWdpdCBhL01vZHVsZXMvZ2Ntb2R1bGUuYyBiL01vZHVsZXMvZ2Ntb2R1bGUuYwppbmRleCBmNzgyZGQwLi4yODQxN2MyIDEwMDY0NAotLS0gYS9Nb2R1bGVzL2djbW9kdWxlLmMKKysrIGIvTW9kdWxlcy9nY21vZHVsZS5jCkBAIC0xNjgsNiArMTY4LDE4IEBACiBzdGF0aWMgaW50IGRlYnVnOwogc3RhdGljIFB5T2JqZWN0ICp0bW9kID0gTlVMTDsKIAorLyogUnVubmluZyBzdGF0cyBwZXIgZ2VuZXJhdGlvbiAqLworc3RydWN0IGdjX2dlbmVyYXRpb25fc3RhdHMgeworICAgIC8qIHRvdGFsIG51bWJlciBvZiBjb2xsZWN0aW9ucyAqLworICAgIFB5X3NzaXplX3QgY29sbGVjdGlvbnM7CisgICAgLyogdG90YWwgbnVtYmVyIG9mIGNvbGxlY3RlZCBvYmplY3RzICovCisgICAgUHlfc3NpemVfdCBjb2xsZWN0ZWQ7CisgICAgLyogdG90YWwgbnVtYmVyIG9mIHVuY29sbGVjdGFibGUgb2JqZWN0cyAocHV0IGludG8gZ2MuZ2FyYmFnZSkgKi8KKyAgICBQeV9zc2l6ZV90IHVuY29sbGVjdGFibGU7Cit9OworCitzdGF0aWMgc3RydWN0IGdjX2dlbmVyYXRpb25fc3RhdHMgZ2VuZXJhdGlvbl9zdGF0c1tOVU1fR0VORVJBVElPTlNdOworCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBnY19yZWZzIHZhbHVlcy4KIApAQCAtODQxLDcgKzg1Myw4IEBACiAvKiBUaGlzIGlzIHRoZSBtYWluIGZ1bmN0aW9uLiAgUmVhZCB0aGlzIHRvIHVuZGVyc3RhbmQgaG93IHRoZQogICogY29sbGVjdGlvbiBwcm9jZXNzIHdvcmtzLiAqLwogc3RhdGljIFB5X3NzaXplX3QKLWNvbGxlY3QoaW50IGdlbmVyYXRpb24sIFB5X3NzaXplX3QgKm5fY29sbGVjdGVkLCBQeV9zc2l6ZV90ICpuX3VuY29sbGVjdGFibGUpCitjb2xsZWN0KGludCBnZW5lcmF0aW9uLCBQeV9zc2l6ZV90ICpuX2NvbGxlY3RlZCwgUHlfc3NpemVfdCAqbl91bmNvbGxlY3RhYmxlLAorICAgICAgICBpbnQgbm9mYWlsKQogewogICAgIGludCBpOwogICAgIFB5X3NzaXplX3QgbSA9IDA7IC8qICMgb2JqZWN0cyBjb2xsZWN0ZWQgKi8KQEAgLTg1Miw2ICs4NjUsNyBAQAogICAgIFB5R0NfSGVhZCBmaW5hbGl6ZXJzOyAgLyogb2JqZWN0cyB3aXRoLCAmIHJlYWNoYWJsZSBmcm9tLCBfX2RlbF9fICovCiAgICAgUHlHQ19IZWFkICpnYzsKICAgICBkb3VibGUgdDEgPSAwLjA7CisgICAgc3RydWN0IGdjX2dlbmVyYXRpb25fc3RhdHMgKnN0YXRzID0gJmdlbmVyYXRpb25fc3RhdHNbZ2VuZXJhdGlvbl07CiAKICAgICBpZiAoZGVidWcgJiBERUJVR19TVEFUUykgewogICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycigiZ2M6IGNvbGxlY3RpbmcgZ2VuZXJhdGlvbiAlZC4uLlxuIiwKQEAgLTk4NywxNiArMTAwMSwyNSBAQAogICAgIH0KIAogICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKSB7Ci0gICAgICAgIGlmIChnY19zdHIgPT0gTlVMTCkKLSAgICAgICAgICAgIGdjX3N0ciA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCJnYXJiYWdlIGNvbGxlY3Rpb24iKTsKLSAgICAgICAgUHlFcnJfV3JpdGVVbnJhaXNhYmxlKGdjX3N0cik7Ci0gICAgICAgIFB5X0ZhdGFsRXJyb3IoInVuZXhwZWN0ZWQgZXhjZXB0aW9uIGR1cmluZyBnYXJiYWdlIGNvbGxlY3Rpb24iKTsKKyAgICAgICAgaWYgKG5vZmFpbCkgeworICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChnY19zdHIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnY19zdHIgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiZ2FyYmFnZSBjb2xsZWN0aW9uIik7CisgICAgICAgICAgICBQeUVycl9Xcml0ZVVucmFpc2FibGUoZ2Nfc3RyKTsKKyAgICAgICAgICAgIFB5X0ZhdGFsRXJyb3IoInVuZXhwZWN0ZWQgZXhjZXB0aW9uIGR1cmluZyBnYXJiYWdlIGNvbGxlY3Rpb24iKTsKKyAgICAgICAgfQogICAgIH0KIAorICAgIC8qIFVwZGF0ZSBzdGF0cyAqLwogICAgIGlmIChuX2NvbGxlY3RlZCkKICAgICAgICAgKm5fY29sbGVjdGVkID0gbTsKICAgICBpZiAobl91bmNvbGxlY3RhYmxlKQogICAgICAgICAqbl91bmNvbGxlY3RhYmxlID0gbjsKKyAgICBzdGF0cy0+Y29sbGVjdGlvbnMrKzsKKyAgICBzdGF0cy0+Y29sbGVjdGVkICs9IG07CisgICAgc3RhdHMtPnVuY29sbGVjdGFibGUgKz0gbjsKICAgICByZXR1cm4gbittOwogfQogCkBAIC0xMDQ1LDcgKzEwNjgsNyBAQAogewogICAgIFB5X3NzaXplX3QgcmVzdWx0LCBjb2xsZWN0ZWQsIHVuY29sbGVjdGFibGU7CiAgICAgaW52b2tlX2djX2NhbGxiYWNrKCJzdGFydCIsIGdlbmVyYXRpb24sIDAsIDApOwotICAgIHJlc3VsdCA9IGNvbGxlY3QoZ2VuZXJhdGlvbiwgJmNvbGxlY3RlZCwgJnVuY29sbGVjdGFibGUpOworICAgIHJlc3VsdCA9IGNvbGxlY3QoZ2VuZXJhdGlvbiwgJmNvbGxlY3RlZCwgJnVuY29sbGVjdGFibGUsIDApOwogICAgIGludm9rZV9nY19jYWxsYmFjaygic3RvcCIsIGdlbmVyYXRpb24sIGNvbGxlY3RlZCwgdW5jb2xsZWN0YWJsZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTEzNDMsNiArMTM2Niw1MiBAQAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK1B5RG9jX1NUUlZBUihnY19nZXRfc3RhdHNfX2RvY19fLAorImdldF9zdGF0cygpIC0+IFsuLi5dXG4iCisiXG4iCisiUmV0dXJuIGEgbGlzdCBvZiBkaWN0aW9uYXJpZXMgY29udGFpbmluZyBwZXItZ2VuZXJhdGlvbiBzdGF0aXN0aWNzLlxuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitnY19nZXRfc3RhdHMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpub2FyZ3MpCit7CisgICAgaW50IGk7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICBzdHJ1Y3QgZ2NfZ2VuZXJhdGlvbl9zdGF0cyBzdGF0c1tOVU1fR0VORVJBVElPTlNdLCAqc3Q7CisKKyAgICAvKiBUbyBnZXQgY29uc2lzdGVudCB2YWx1ZXMgZGVzcGl0ZSBhbGxvY2F0aW9ucyB3aGlsZSBjb25zdHJ1Y3RpbmcKKyAgICAgICB0aGUgcmVzdWx0IGxpc3QsIHdlIHVzZSBhIHNuYXBzaG90IG9mIHRoZSBydW5uaW5nIHN0YXRzLiAqLworICAgIGZvciAoaSA9IDA7IGkgPCBOVU1fR0VORVJBVElPTlM7IGkrKykgeworICAgICAgICBzdGF0c1tpXSA9IGdlbmVyYXRpb25fc3RhdHNbaV07CisgICAgfQorCisgICAgcmVzdWx0ID0gUHlMaXN0X05ldygwKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZm9yIChpID0gMDsgaSA8IE5VTV9HRU5FUkFUSU9OUzsgaSsrKSB7CisgICAgICAgIFB5T2JqZWN0ICpkaWN0OworICAgICAgICBzdCA9ICZzdGF0c1tpXTsKKyAgICAgICAgZGljdCA9IFB5X0J1aWxkVmFsdWUoIntzbnNuc259IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbGxlY3Rpb25zIiwgc3QtPmNvbGxlY3Rpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29sbGVjdGVkIiwgc3QtPmNvbGxlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuY29sbGVjdGFibGUiLCBzdC0+dW5jb2xsZWN0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIGlmIChkaWN0ID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICBpZiAoUHlMaXN0X0FwcGVuZChyZXN1bHQsIGRpY3QpKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYoZGljdCk7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgICAgIFB5X0RFQ1JFRihkaWN0KTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKKworZXJyb3I6CisgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIHJldHVybiBOVUxMOworfQorCisKIFB5RG9jX1NUUlZBUihnY19pc190cmFja2VkX19kb2NfXywKICJpc190cmFja2VkKG9iaikgLT4gYm9vbFxuIgogIlxuIgpAQCAtMTM5Myw2ICsxNDYyLDcgQEAKICAgICB7ImNvbGxlY3QiLCAgICAgICAgICAgIChQeUNGdW5jdGlvbilnY19jb2xsZWN0LAogICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLCAgICAgICAgICAgZ2NfY29sbGVjdF9fZG9jX199LAogICAgIHsiZ2V0X29iamVjdHMiLCAgICBnY19nZXRfb2JqZWN0cyxNRVRIX05PQVJHUywgIGdjX2dldF9vYmplY3RzX19kb2NfX30sCisgICAgeyJnZXRfc3RhdHMiLCAgICAgIGdjX2dldF9zdGF0cywgTUVUSF9OT0FSR1MsIGdjX2dldF9zdGF0c19fZG9jX199LAogICAgIHsiaXNfdHJhY2tlZCIsICAgICBnY19pc190cmFja2VkLCBNRVRIX08sICAgICAgIGdjX2lzX3RyYWNrZWRfX2RvY19ffSwKICAgICB7ImdldF9yZWZlcnJlcnMiLCAgZ2NfZ2V0X3JlZmVycmVycywgTUVUSF9WQVJBUkdTLAogICAgICAgICBnY19nZXRfcmVmZXJyZXJzX19kb2NfX30sCkBAIC0xNDgwLDggKzE1NTAsMjIgQEAKICAgICByZXR1cm4gbjsKIH0KIAorUHlfc3NpemVfdAorX1B5R0NfQ29sbGVjdE5vRmFpbCh2b2lkKQoreworICAgIFB5X3NzaXplX3QgbjsKKworICAgIC8qIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIGludGVycHJldGVyIHNodXRkb3duLCBhbmQKKyAgICAgICB0aGVyZWZvcmUgbm90IHJlY3Vyc2l2ZWx5LiAqLworICAgIGFzc2VydCghY29sbGVjdGluZyk7CisgICAgY29sbGVjdGluZyA9IDE7CisgICAgbiA9IGNvbGxlY3QoTlVNX0dFTkVSQVRJT05TIC0gMSwgTlVMTCwgTlVMTCwgMSk7CisgICAgY29sbGVjdGluZyA9IDA7CisgICAgcmV0dXJuIG47Cit9CisKIHZvaWQKLV9QeUdDX0Zpbmkodm9pZCkKK19QeUdDX0R1bXBTaHV0ZG93blN0YXRzKHZvaWQpCiB7CiAgICAgaWYgKCEoZGVidWcgJiBERUJVR19TQVZFQUxMKQogICAgICAgICAmJiBnYXJiYWdlICE9IE5VTEwgJiYgUHlMaXN0X0dFVF9TSVpFKGdhcmJhZ2UpID4gMCkgewpAQCAtMTQ5Miw4ICsxNTc2LDEyIEBACiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1lc3NhZ2UgPSAiZ2M6ICV6ZCB1bmNvbGxlY3RhYmxlIG9iamVjdHMgYXQgIiBcCiAgICAgICAgICAgICAgICAgInNodXRkb3duOyB1c2UgZ2Muc2V0X2RlYnVnKGdjLkRFQlVHX1VOQ09MTEVDVEFCTEUpIHRvIGxpc3QgdGhlbSI7Ci0gICAgICAgIGlmIChQeUVycl9XYXJuRm9ybWF0KFB5RXhjX1Jlc291cmNlV2FybmluZywgMCwgbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlMaXN0X0dFVF9TSVpFKGdhcmJhZ2UpKSA8IDApCisgICAgICAgIC8qIFB5RXJyX1dhcm5Gb3JtYXQgZG9lcyB0b28gbWFueSB0aGluZ3MgYW5kIHdlIGFyZSBhdCBzaHV0ZG93biwKKyAgICAgICAgICAgdGhlIHdhcm5pbmdzIG1vZHVsZSdzIGRlcGVuZGVuY2llcyAoZS5nLiBsaW5lY2FjaGUpIG1heSBiZSBnb25lCisgICAgICAgICAgIGFscmVhZHkuICovCisgICAgICAgIGlmIChQeUVycl9XYXJuRXhwbGljaXRGb3JtYXQoUHlFeGNfUmVzb3VyY2VXYXJuaW5nLCAiZ2MiLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnYyIsIE5VTEwsIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlMaXN0X0dFVF9TSVpFKGdhcmJhZ2UpKSkKICAgICAgICAgICAgIFB5RXJyX1dyaXRlVW5yYWlzYWJsZShOVUxMKTsKICAgICAgICAgaWYgKGRlYnVnICYgREVCVUdfVU5DT0xMRUNUQUJMRSkgewogICAgICAgICAgICAgUHlPYmplY3QgKnJlcHIgPSBOVUxMLCAqYnl0ZXMgPSBOVUxMOwpAQCAtMTUwMiw3ICsxNTkwLDcgQEAKICAgICAgICAgICAgICAgICBQeUVycl9Xcml0ZVVucmFpc2FibGUoZ2FyYmFnZSk7CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycigKLSAgICAgICAgICAgICAgICAgICAgIiAgICAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgIiAgICAgICVzXG4iLAogICAgICAgICAgICAgICAgICAgICBQeUJ5dGVzX0FTX1NUUklORyhieXRlcykKICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgIH0KQEAgLTE1MTAsNiArMTU5OCwxMSBAQAogICAgICAgICAgICAgUHlfWERFQ1JFRihieXRlcyk7CiAgICAgICAgIH0KICAgICB9Cit9CisKK3ZvaWQKK19QeUdDX0Zpbmkodm9pZCkKK3sKICAgICBQeV9DTEVBUihjYWxsYmFja3MpOwogfQogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL2dldHBhdGguYyBiL01vZHVsZXMvZ2V0cGF0aC5jCmluZGV4IGI5OGM1MjAuLmJlMTY0ZGYgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvZ2V0cGF0aC5jCisrKyBiL01vZHVsZXMvZ2V0cGF0aC5jCkBAIC02OTksMTMgKzY5OSwxMSBAQAogICAgICAqLwogICAgIGJ1ZnN6ID0gMDsKIAotICAgIGlmIChfcnRweXBhdGgpIHsKKyAgICBpZiAoX3J0cHlwYXRoICYmIF9ydHB5cGF0aFswXSAhPSAnXDAnKSB7CiAgICAgICAgIHNpemVfdCBydHB5cGF0aF9sZW47CiAgICAgICAgIHJ0cHlwYXRoID0gX1B5X2NoYXIyd2NoYXIoX3J0cHlwYXRoLCAmcnRweXBhdGhfbGVuKTsKICAgICAgICAgaWYgKHJ0cHlwYXRoICE9IE5VTEwpCiAgICAgICAgICAgICBidWZzeiArPSBydHB5cGF0aF9sZW4gKyAxOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBfcnRweXBhdGggPSBOVUxMOwogICAgIH0KIAogICAgIGRlZnBhdGggPSBfcHl0aG9ucGF0aDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvaGFzaGxpYi5oIGIvTW9kdWxlcy9oYXNobGliLmgKaW5kZXggZGIzOWNlYS4uN2NiNmVlNSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9oYXNobGliLmgKKysrIGIvTW9kdWxlcy9oYXNobGliLmgKQEAgLTI2LDMgKzI2LDM2IEBACiAgICAgICAgICAgICByZXR1cm4gTlVMTDsgXAogICAgICAgICB9IFwKICAgICB9IHdoaWxlKDApOworCisvKgorICogSGVscGVyIGNvZGUgdG8gc3luY2hyb25pemUgYWNjZXNzIHRvIHRoZSBoYXNoIG9iamVjdCB3aGVuIHRoZSBHSUwgaXMKKyAqIHJlbGVhc2VkIGFyb3VuZCBhIENQVSBjb25zdW1pbmcgaGFzaGxpYiBvcGVyYXRpb24uIEFsbCBjb2RlIHBhdGhzIHRoYXQKKyAqIGFjY2VzcyBhIG11dGFibGUgcGFydCBvZiBvYmogbXVzdCBiZSBlbmNsb3NlZCBpbiBhIEVOVEVSX0hBU0hMSUIgLworICogTEVBVkVfSEFTSExJQiBibG9jayBvciBleHBsaWNpdGx5IGFjcXVpcmUgYW5kIHJlbGVhc2UgdGhlIGxvY2sgaW5zaWRlCisgKiBhIFBZX0JFR0lOIC8gRU5EX0FMTE9XX1RIUkVBRFMgYmxvY2sgaWYgdGhleSB3aXNoIHRvIHJlbGVhc2UgdGhlIEdJTCBmb3IKKyAqIGFuIG9wZXJhdGlvbi4KKyAqLworCisjaWZkZWYgV0lUSF9USFJFQUQKKyNpbmNsdWRlICJweXRocmVhZC5oIgorICAgICNkZWZpbmUgRU5URVJfSEFTSExJQihvYmopIFwKKyAgICAgICAgaWYgKChvYmopLT5sb2NrKSB7IFwKKyAgICAgICAgICAgIGlmICghUHlUaHJlYWRfYWNxdWlyZV9sb2NrKChvYmopLT5sb2NrLCAwKSkgeyBcCisgICAgICAgICAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUyBcCisgICAgICAgICAgICAgICAgUHlUaHJlYWRfYWNxdWlyZV9sb2NrKChvYmopLT5sb2NrLCAxKTsgXAorICAgICAgICAgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTIFwKKyAgICAgICAgICAgIH0gXAorICAgICAgICB9CisgICAgI2RlZmluZSBMRUFWRV9IQVNITElCKG9iaikgXAorICAgICAgICBpZiAoKG9iaiktPmxvY2spIHsgXAorICAgICAgICAgICAgUHlUaHJlYWRfcmVsZWFzZV9sb2NrKChvYmopLT5sb2NrKTsgXAorICAgICAgICB9CisjZWxzZQorICAgICNkZWZpbmUgRU5URVJfSEFTSExJQihvYmopCisgICAgI2RlZmluZSBMRUFWRV9IQVNITElCKG9iaikKKyNlbmRpZgorCisvKiBUT0RPKGdwcyk6IFdlIHNob3VsZCBwcm9iYWJseSBtYWtlIHRoaXMgYSBtb2R1bGUgb3IgRVZQb2JqZWN0IGF0dHJpYnV0ZQorICogdG8gYWxsb3cgdGhlIHVzZXIgdG8gb3B0aW1pemUgYmFzZWQgb24gdGhlIHBsYXRmb3JtIHRoZXkncmUgdXNpbmcuICovCisjZGVmaW5lIEhBU0hMSUJfR0lMX01JTlNJWkUgMjA0OAorCmRpZmYgLS1naXQgYS9Nb2R1bGVzL21haW4uYyBiL01vZHVsZXMvbWFpbi5jCmluZGV4IDRkMmUwM2EuLjJkYWVmYjggMTAwNjQ0Ci0tLSBhL01vZHVsZXMvbWFpbi5jCisrKyBiL01vZHVsZXMvbWFpbi5jCkBAIC0yMiwxNSArMjIsMTEgQEAKICNpbmNsdWRlIDxjcnRkYmcuaD4KICNlbmRpZgogCi0jaWYgKGRlZmluZWQoUFlPU19PUzIpICYmICFkZWZpbmVkKFBZQ0NfR0NDKSkgfHwgZGVmaW5lZChNU19XSU5ET1dTKQorI2lmIGRlZmluZWQoTVNfV0lORE9XUykKICNkZWZpbmUgUFlUSE9OSE9NRUhFTFAgIjxwcmVmaXg+XFxsaWIiCiAjZWxzZQotI2lmIGRlZmluZWQoUFlPU19PUzIpICYmIGRlZmluZWQoUFlDQ19HQ0MpCi0jZGVmaW5lIFBZVEhPTkhPTUVIRUxQICI8cHJlZml4Pi9MaWIiCi0jZWxzZQogI2RlZmluZSBQWVRIT05IT01FSEVMUCAiPHByZWZpeD4vcHl0aG9uWC5YIgogI2VuZGlmCi0jZW5kaWYKIAogI2luY2x1ZGUgInB5Z2V0b3B0LmgiCiAKQEAgLTE2NCw2ICsxNjAsMzIgQEAKICAgICB9CiB9CiAKK3N0YXRpYyB2b2lkIFJ1bkludGVyYWN0aXZlSG9vayh2b2lkKQoreworICAgIFB5T2JqZWN0ICpzeXMsICpob29rLCAqcmVzdWx0OworICAgIHN5cyA9IFB5SW1wb3J0X0ltcG9ydE1vZHVsZSgic3lzIik7CisgICAgaWYgKHN5cyA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yOworICAgIGhvb2sgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHN5cywgIl9faW50ZXJhY3RpdmVob29rX18iKTsKKyAgICBQeV9ERUNSRUYoc3lzKTsKKyAgICBpZiAoaG9vayA9PSBOVUxMKQorICAgICAgICBQeUVycl9DbGVhcigpOworICAgIGVsc2UgeworICAgICAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsT2JqZWN0KGhvb2ssIE5VTEwpOworICAgICAgICBQeV9ERUNSRUYoaG9vayk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgIH0KKyAgICByZXR1cm47CisKK2Vycm9yOgorICAgIFB5U3lzX1dyaXRlU3RkZXJyKCJGYWlsZWQgY2FsbGluZyBzeXMuX19pbnRlcmFjdGl2ZWhvb2tfX1xuIik7CisgICAgUHlFcnJfUHJpbnQoKTsKKyAgICBQeUVycl9DbGVhcigpOworfQorCiAKIHN0YXRpYyBpbnQgUnVuTW9kdWxlKHdjaGFyX3QgKm1vZG5hbWUsIGludCBzZXRfYXJndjApCiB7CkBAIC0xNzEsMTcgKzE5MywyMCBAQAogICAgIHJ1bnB5ID0gUHlJbXBvcnRfSW1wb3J0TW9kdWxlKCJydW5weSIpOwogICAgIGlmIChydW5weSA9PSBOVUxMKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IGltcG9ydCBydW5weSBtb2R1bGVcbiIpOworICAgICAgICBQeUVycl9QcmludCgpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogICAgIHJ1bm1vZHVsZSA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcocnVucHksICJfcnVuX21vZHVsZV9hc19tYWluIik7CiAgICAgaWYgKHJ1bm1vZHVsZSA9PSBOVUxMKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IGFjY2VzcyBydW5weS5fcnVuX21vZHVsZV9hc19tYWluXG4iKTsKKyAgICAgICAgUHlFcnJfUHJpbnQoKTsKICAgICAgICAgUHlfREVDUkVGKHJ1bnB5KTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KICAgICBtb2R1bGUgPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKG1vZG5hbWUsIHdjc2xlbihtb2RuYW1lKSk7CiAgICAgaWYgKG1vZHVsZSA9PSBOVUxMKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IGNvbnZlcnQgbW9kdWxlIG5hbWUgdG8gdW5pY29kZVxuIik7CisgICAgICAgIFB5RXJyX1ByaW50KCk7CiAgICAgICAgIFB5X0RFQ1JFRihydW5weSk7CiAgICAgICAgIFB5X0RFQ1JFRihydW5tb2R1bGUpOwogICAgICAgICByZXR1cm4gLTE7CkBAIC0xOTAsNiArMjE1LDcgQEAKICAgICBpZiAocnVuYXJncyA9PSBOVUxMKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLAogICAgICAgICAgICAgIkNvdWxkIG5vdCBjcmVhdGUgYXJndW1lbnRzIGZvciBydW5weS5fcnVuX21vZHVsZV9hc19tYWluXG4iKTsKKyAgICAgICAgUHlFcnJfUHJpbnQoKTsKICAgICAgICAgUHlfREVDUkVGKHJ1bnB5KTsKICAgICAgICAgUHlfREVDUkVGKHJ1bm1vZHVsZSk7CiAgICAgICAgIFB5X0RFQ1JFRihtb2R1bGUpOwpAQCAtNjkwLDYgKzcxNiw3IEBACiAgICAgICAgIGlmIChmaWxlbmFtZSA9PSBOVUxMICYmIHN0ZGluX2lzX2ludGVyYWN0aXZlKSB7CiAgICAgICAgICAgICBQeV9JbnNwZWN0RmxhZyA9IDA7IC8qIGRvIGV4aXQgb24gU3lzdGVtRXhpdCAqLwogICAgICAgICAgICAgUnVuU3RhcnR1cEZpbGUoJmNmKTsKKyAgICAgICAgICAgIFJ1bkludGVyYWN0aXZlSG9vaygpOwogICAgICAgICB9CiAgICAgICAgIC8qIFhYWCAqLwogCkBAIC03NTUsNiArNzgyLDcgQEAKICAgICBpZiAoUHlfSW5zcGVjdEZsYWcgJiYgc3RkaW5faXNfaW50ZXJhY3RpdmUgJiYKICAgICAgICAgKGZpbGVuYW1lICE9IE5VTEwgfHwgY29tbWFuZCAhPSBOVUxMIHx8IG1vZHVsZSAhPSBOVUxMKSkgewogICAgICAgICBQeV9JbnNwZWN0RmxhZyA9IDA7CisgICAgICAgIFJ1bkludGVyYWN0aXZlSG9vaygpOwogICAgICAgICAvKiBYWFggKi8KICAgICAgICAgc3RzID0gUHlSdW5fQW55RmlsZUZsYWdzKHN0ZGluLCAiPHN0ZGluPiIsICZjZikgIT0gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL21kNW1vZHVsZS5jIGIvTW9kdWxlcy9tZDVtb2R1bGUuYwppbmRleCAxMmUxODdjLi43ZGMzOGVhIDEwMDY0NAotLS0gYS9Nb2R1bGVzL21kNW1vZHVsZS5jCisrKyBiL01vZHVsZXMvbWQ1bW9kdWxlLmMKQEAgLTkxLDEwICs5MSw2IEBACiAgICAgICAgKHkpWzNdID0gKHVuc2lnbmVkIGNoYXIpKCgoeCk+PjI0KSYyNTUpOyAoeSlbMl0gPSAodW5zaWduZWQgY2hhcikoKCh4KT4+MTYpJjI1NSk7ICAgXAogICAgICAgICh5KVsxXSA9ICh1bnNpZ25lZCBjaGFyKSgoKHgpPj44KSYyNTUpOyAoeSlbMF0gPSAodW5zaWduZWQgY2hhcikoKHgpJjI1NSk7IH0KIAotI2lmbmRlZiBNSU4KLSAgICNkZWZpbmUgTUlOKHgsIHkpICggKCh4KTwoeSkpPyh4KTooeSkgKQotI2VuZGlmCi0KIAogLyogTUQ1IG1hY3JvcyAqLwogCkBAIC0yNDQsOSArMjQwLDkgQEAKICAgICAgICAgICAgaW4gICAgICAgICAgICAgKz0gTUQ1X0JMT0NLU0laRTsKICAgICAgICAgICAgaW5sZW4gICAgICAgICAgLT0gTUQ1X0JMT0NLU0laRTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgbiA9IE1JTihpbmxlbiwgKFB5X3NzaXplX3QpKE1ENV9CTE9DS1NJWkUgLSBtZDUtPmN1cmxlbikpOworICAgICAgICAgICBuID0gUHlfTUlOKGlubGVuLCAoUHlfc3NpemVfdCkoTUQ1X0JMT0NLU0laRSAtIG1kNS0+Y3VybGVuKSk7CiAgICAgICAgICAgIG1lbWNweShtZDUtPmJ1ZiArIG1kNS0+Y3VybGVuLCBpbiwgKHNpemVfdCluKTsKLSAgICAgICAgICAgbWQ1LT5jdXJsZW4gICAgKz0gbjsKKyAgICAgICAgICAgbWQ1LT5jdXJsZW4gICAgKz0gKE1ENV9JTlQzMiluOwogICAgICAgICAgICBpbiAgICAgICAgICAgICArPSBuOwogICAgICAgICAgICBpbmxlbiAgICAgICAgICAtPSBuOwogICAgICAgICAgICBpZiAobWQ1LT5jdXJsZW4gPT0gTUQ1X0JMT0NLU0laRSkgewpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9wb3NpeG1vZHVsZS5jIGIvTW9kdWxlcy9wb3NpeG1vZHVsZS5jCmluZGV4IDNiNGI1NzAuLjczOGJmMGEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvcG9zaXhtb2R1bGUuYworKysgYi9Nb2R1bGVzL3Bvc2l4bW9kdWxlLmMKQEAgLTEsMTUgKzEsMTIgQEAKIAogLyogUE9TSVggbW9kdWxlIGltcGxlbWVudGF0aW9uICovCiAKLS8qIFRoaXMgZmlsZSBpcyBhbHNvIHVzZWQgZm9yIFdpbmRvd3MgTlQvTVMtV2luIGFuZCBPUy8yLiAgSW4gdGhhdCBjYXNlIHRoZQotICAgbW9kdWxlIGFjdHVhbGx5IGNhbGxzIGl0c2VsZiAnbnQnIG9yICdvczInLCBub3QgJ3Bvc2l4JywgYW5kIGEgZmV3CisvKiBUaGlzIGZpbGUgaXMgYWxzbyB1c2VkIGZvciBXaW5kb3dzIE5UL01TLVdpbi4gIEluIHRoYXQgY2FzZSB0aGUKKyAgIG1vZHVsZSBhY3R1YWxseSBjYWxscyBpdHNlbGYgJ250Jywgbm90ICdwb3NpeCcsIGFuZCBhIGZldwogICAgZnVuY3Rpb25zIGFyZSBlaXRoZXIgdW5pbXBsZW1lbnRlZCBvciBpbXBsZW1lbnRlZCBkaWZmZXJlbnRseS4gIFRoZSBzb3VyY2UKICAgIGFzc3VtZXMgdGhhdCBmb3IgV2luZG93cyBOVCwgdGhlIG1hY3JvICdNU19XSU5ET1dTJyBpcyBkZWZpbmVkIGluZGVwZW5kZW50CiAgICBvZiB0aGUgY29tcGlsZXIgdXNlZC4gIERpZmZlcmVudCBjb21waWxlcnMgZGVmaW5lIHRoZWlyIG93biBmZWF0dXJlCi0gICB0ZXN0IG1hY3JvLCBlLmcuICdfX0JPUkxBTkRDX18nIG9yICdfTVNDX1ZFUicuICBGb3IgT1MvMiwgdGhlIGNvbXBpbGVyCi0gICBpbmRlcGVuZGVudCBtYWNybyBQWU9TX09TMiBzaG91bGQgYmUgZGVmaW5lZC4gIE9uIE9TLzIgdGhlIGRlZmF1bHQKLSAgIGNvbXBpbGVyIGlzIGFzc3VtZWQgdG8gYmUgSUJNJ3MgVmlzdWFsQWdlIEMrKyAoVkFDUFApLiAgUFlDQ19HQ0MgaXMgdXNlZAotICAgYXMgdGhlIGNvbXBpbGVyIHNwZWNpZmljIG1hY3JvIGZvciB0aGUgRU1YIHBvcnQgb2YgZ2NjIHRvIE9TLzIuICovCisgICB0ZXN0IG1hY3JvLCBlLmcuICdfX0JPUkxBTkRDX18nIG9yICdfTVNDX1ZFUicuICovCiAKICNpZmRlZiBfX0FQUExFX18KICAgIC8qCkBAIC00NiwyMiArNDMsNiBAQAogY29ycmVzcG9uZGluZyBVbml4IG1hbnVhbCBlbnRyaWVzIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGNhbGxzLiIpOwogCiAKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKQotI2Vycm9yICJQRVAgMTE6IE9TLzIgaXMgbm93IHVuc3VwcG9ydGVkLCBjb2RlIHdpbGwgYmUgcmVtb3ZlZCBpbiBQeXRob24gMy40IgotI2RlZmluZSAgSU5DTF9ET1MKLSNkZWZpbmUgIElOQ0xfRE9TRVJST1JTCi0jZGVmaW5lICBJTkNMX0RPU1BST0NFU1MKLSNkZWZpbmUgIElOQ0xfTk9QTUFQSQotI2luY2x1ZGUgPG9zMi5oPgotI2lmIGRlZmluZWQoUFlDQ19HQ0MpCi0jaW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNsdWRlIDxpby5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8cHJvY2Vzcy5oPgotI2VuZGlmCi0jaW5jbHVkZSAib3NkZWZzLmgiCi0jZW5kaWYKLQogI2lmZGVmIEhBVkVfU1lTX1VJT19ICiAjaW5jbHVkZSA8c3lzL3Vpby5oPgogI2VuZGlmCkBAIC0xMzIsNiArMTEzLDE4IEBACiAjaW5jbHVkZSA8ZGxmY24uaD4KICNlbmRpZgogCisjaWZkZWYgX19ocHV4CisjaW5jbHVkZSA8c3lzL21wY3RsLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoX19EcmFnb25GbHlfXykgfHwgXAorICAgIGRlZmluZWQoX19PcGVuQlNEX18pICAgfHwgXAorICAgIGRlZmluZWQoX19GcmVlQlNEX18pICAgfHwgXAorICAgIGRlZmluZWQoX19OZXRCU0RfXykgICAgfHwgXAorICAgIGRlZmluZWQoX19BUFBMRV9fKQorI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyNlbmRpZgorCiAjaWYgZGVmaW5lZChNU19XSU5ET1dTKQogIyAgZGVmaW5lIFRFUk1TSVpFX1VTRV9DT05JTwogI2VsaWYgZGVmaW5lZChIQVZFX1NZU19JT0NUTF9IKQpAQCAtMTQ2LDE3ICsxMzksMTAgQEAKIAogLyogVmFyaW91cyBjb21waWxlcnMgaGF2ZSBvbmx5IGNlcnRhaW4gcG9zaXggZnVuY3Rpb25zICovCiAvKiBYWFggR29zaCBJIHdpc2ggdGhlc2Ugd2VyZSBhbGwgbW92ZWQgaW50byBweWNvbmZpZy5oICovCi0jaWYgZGVmaW5lZChQWUNDX1ZBQ1BQKSAmJiBkZWZpbmVkKFBZT1NfT1MyKQotI2luY2x1ZGUgPHByb2Nlc3MuaD4KLSNlbHNlCiAjaWYgZGVmaW5lZChfX1dBVENPTUNfXykgJiYgIWRlZmluZWQoX19RTlhfXykgICAgICAgICAgIC8qIFdhdGNvbSBjb21waWxlciAqLwogI2RlZmluZSBIQVZFX0dFVENXRCAgICAgMQogI2RlZmluZSBIQVZFX09QRU5ESVIgICAgMQogI2RlZmluZSBIQVZFX1NZU1RFTSAgICAgMQotI2lmIGRlZmluZWQoX19PUzJfXykKLSNkZWZpbmUgSEFWRV9FWEVDViAgICAgIDEKLSNkZWZpbmUgSEFWRV9XQUlUICAgICAgIDEKLSNlbmRpZgogI2luY2x1ZGUgPHByb2Nlc3MuaD4KICNlbHNlCiAjaWZkZWYgX19CT1JMQU5EQ19fICAgICAgICAgICAgIC8qIEJvcmxhbmQgY29tcGlsZXIgKi8KQEAgLTE3OSw4ICsxNjUsOCBAQAogI2RlZmluZSBIQVZFX0ZTWU5DICAgICAgMQogI2RlZmluZSBmc3luYyBfY29tbWl0CiAjZWxzZQotI2lmIGRlZmluZWQoUFlPU19PUzIpICYmIGRlZmluZWQoUFlDQ19HQ0MpIHx8IGRlZmluZWQoX19WTVMpCi0vKiBFdmVyeXRoaW5nIG5lZWRlZCBpcyBkZWZpbmVkIGluIFBDL29zMmVteC9weWNvbmZpZy5oIG9yIHZtcy9weWNvbmZpZy5oICovCisjaWYgZGVmaW5lZChfX1ZNUykKKy8qIEV2ZXJ5dGhpbmcgbmVlZGVkIGlzIGRlZmluZWQgaW4gdm1zL3B5Y29uZmlnLmggKi8KICNlbHNlICAgICAgICAgICAgICAgICAgIC8qIGFsbCBvdGhlciBjb21waWxlcnMgKi8KIC8qIFVuaXggZnVuY3Rpb25zIHRoYXQgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZG9lc24ndCBjaGVjayBmb3IgKi8KICNkZWZpbmUgSEFWRV9FWEVDViAgICAgIDEKQEAgLTIwMCwxMSArMTg2LDEwIEBACiAjZGVmaW5lIEhBVkVfU1lTVEVNICAgICAxCiAjZGVmaW5lIEhBVkVfV0FJVCAgICAgICAxCiAjZGVmaW5lIEhBVkVfVFRZTkFNRSAgICAxCi0jZW5kaWYgIC8qIFBZT1NfT1MyICYmIFBZQ0NfR0NDICYmIF9fVk1TICovCisjZW5kaWYgIC8qIF9fVk1TICovCiAjZW5kaWYgIC8qIF9NU0NfVkVSICovCiAjZW5kaWYgIC8qIF9fQk9STEFORENfXyAqLwogI2VuZGlmICAvKiAhIF9fV0FUQ09NQ19fIHx8IF9fUU5YX18gKi8KLSNlbmRpZiAvKiAhIF9fSUJNQ19fICovCiAKIAogCkBAIC0zMzUsMTAgKzMyMCw2IEBACiAjZW5kaWYKICNlbmRpZiAvKiBfTVNDX1ZFUiAqLwogCi0jaWYgZGVmaW5lZChQWUNDX1ZBQ1BQKSAmJiBkZWZpbmVkKFBZT1NfT1MyKQotI2luY2x1ZGUgPGlvLmg+Ci0jZW5kaWYgLyogT1MyICovCi0KICNpZm5kZWYgTUFYUEFUSExFTgogI2lmIGRlZmluZWQoUEFUSF9NQVgpICYmIFBBVEhfTUFYID4gMTAyNAogI2RlZmluZSBNQVhQQVRITEVOIFBBVEhfTUFYCkBAIC02NzgsOCArNjU5LDggQEAKICAqIHBhdGhfY2xlYW51cCgpLiAgSG93ZXZlciBpdCBpcyBzYWZlIHRvIGRvIHNvLikKICAqLwogdHlwZWRlZiBzdHJ1Y3QgewotICAgIGNoYXIgKmZ1bmN0aW9uX25hbWU7Ci0gICAgY2hhciAqYXJndW1lbnRfbmFtZTsKKyAgICBjb25zdCBjaGFyICpmdW5jdGlvbl9uYW1lOworICAgIGNvbnN0IGNoYXIgKmFyZ3VtZW50X25hbWU7CiAgICAgaW50IG51bGxhYmxlOwogICAgIGludCBhbGxvd19mZDsKICAgICB3Y2hhcl90ICp3aWRlOwpAQCAtMTEwNSwxMCArMTA4Niw2IEBACiAjZWxzZQogICAgIGNoYXIgKiplOwogI2VuZGlmCi0jaWYgZGVmaW5lZChQWU9TX09TMikKLSAgICBBUElSRVQgcmM7Ci0gICAgY2hhciAgIGJ1ZmZlclsxMDI0XTsgLyogT1MvMiBQcm92aWRlcyBhIERvY3VtZW50ZWQgTWF4IG9mIDEwMjQgQ2hhcnMgKi8KLSNlbmRpZgogCiAgICAgZCA9IFB5RGljdF9OZXcoKTsKICAgICBpZiAoZCA9PSBOVUxMKQpAQCAtMTE3NywyMCArMTE1NCw2IEBACiAgICAgICAgIFB5X0RFQ1JFRih2KTsKICAgICB9CiAjZW5kaWYKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKQotICAgIHJjID0gRG9zUXVlcnlFeHRMSUJQQVRIKGJ1ZmZlciwgQkVHSU5fTElCUEFUSCk7Ci0gICAgaWYgKHJjID09IE5PX0VSUk9SKSB7IC8qIChub3QgYSB0eXBlLCBlbnZuYW1lIGlzIE5PVCAnQkVHSU5fTElCUEFUSCcpICovCi0gICAgICAgIFB5T2JqZWN0ICp2ID0gUHlCeXRlc19Gcm9tU3RyaW5nKGJ1ZmZlcik7Ci0gICAgICAgIFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJCRUdJTkxJQlBBVEgiLCB2KTsKLSAgICAgICAgUHlfREVDUkVGKHYpOwotICAgIH0KLSAgICByYyA9IERvc1F1ZXJ5RXh0TElCUEFUSChidWZmZXIsIEVORF9MSUJQQVRIKTsKLSAgICBpZiAocmMgPT0gTk9fRVJST1IpIHsgLyogKG5vdCBhIHR5cG8sIGVudm5hbWUgaXMgTk9UICdFTkRfTElCUEFUSCcpICovCi0gICAgICAgIFB5T2JqZWN0ICp2ID0gUHlCeXRlc19Gcm9tU3RyaW5nKGJ1ZmZlcik7Ci0gICAgICAgIFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJFTkRMSUJQQVRIIiwgdik7Ci0gICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICB9Ci0jZW5kaWYKICAgICByZXR1cm4gZDsKIH0KIApAQCAtMTIwMSwyNSArMTE2NCw2IEBACiB7CiAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKIH0KLXN0YXRpYyBQeU9iamVjdCAqCi1wb3NpeF9lcnJvcl93aXRoX2ZpbGVuYW1lKGNoYXIqIG5hbWUpCi17Ci0gICAgcmV0dXJuIFB5RXJyX1NldEZyb21FcnJub1dpdGhGaWxlbmFtZShQeUV4Y19PU0Vycm9yLCBuYW1lKTsKLX0KLQotCi1zdGF0aWMgUHlPYmplY3QgKgotcG9zaXhfZXJyb3Jfd2l0aF9hbGxvY2F0ZWRfZmlsZW5hbWUoUHlPYmplY3QqIG5hbWUpCi17Ci0gICAgUHlPYmplY3QgKm5hbWVfc3RyLCAqcmM7Ci0gICAgbmFtZV9zdHIgPSBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0QW5kU2l6ZShQeUJ5dGVzX0FzU3RyaW5nKG5hbWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlCeXRlc19HRVRfU0laRShuYW1lKSk7Ci0gICAgUHlfREVDUkVGKG5hbWUpOwotICAgIHJjID0gUHlFcnJfU2V0RnJvbUVycm5vV2l0aEZpbGVuYW1lT2JqZWN0KFB5RXhjX09TRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9zdHIpOwotICAgIFB5X1hERUNSRUYobmFtZV9zdHIpOwotICAgIHJldHVybiByYzsKLX0KIAogI2lmZGVmIE1TX1dJTkRPV1MKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0xMjM4LDI0ICsxMTgyLDEzIEBACiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCi13aW4zMl9lcnJvcl91bmljb2RlKGNoYXIqIGZ1bmN0aW9uLCB3Y2hhcl90KiBmaWxlbmFtZSkKLXsKLSAgICAvKiBYWFggLSBzZWUgd2luMzJfZXJyb3IgZm9yIGNvbW1lbnRzIG9uICdmdW5jdGlvbicgKi8KLSAgICBlcnJubyA9IEdldExhc3RFcnJvcigpOwotICAgIGlmIChmaWxlbmFtZSkKLSAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyV2l0aFVuaWNvZGVGaWxlbmFtZShlcnJubywgZmlsZW5hbWUpOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKGVycm5vKTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKIHdpbjMyX2Vycm9yX29iamVjdChjaGFyKiBmdW5jdGlvbiwgUHlPYmplY3QqIGZpbGVuYW1lKQogewogICAgIC8qIFhYWCAtIHNlZSB3aW4zMl9lcnJvciBmb3IgY29tbWVudHMgb24gJ2Z1bmN0aW9uJyAqLwogICAgIGVycm5vID0gR2V0TGFzdEVycm9yKCk7CiAgICAgaWYgKGZpbGVuYW1lKQogICAgICAgICByZXR1cm4gUHlFcnJfU2V0RXhjRnJvbVdpbmRvd3NFcnJXaXRoRmlsZW5hbWVPYmplY3QoCi0gICAgICAgICAgICAgICAgICAgIFB5RXhjX1dpbmRvd3NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgZXJybm8sCiAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lKTsKICAgICBlbHNlCkBAIC0xMjY0LDEwOSArMTE5NywxNyBAQAogCiAjZW5kaWYgLyogTVNfV0lORE9XUyAqLwogCi0vKgotICogU29tZSBmdW5jdGlvbnMgcmV0dXJuIFdpbjMyIGVycm9ycywgb3RoZXJzIG9ubHkgZXZlciB1c2UgcG9zaXhfZXJyb3IKLSAqICh0aGlzIGlzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIGV4Y2VwdGlvbnMpCi0gKi8KIHN0YXRpYyBQeU9iamVjdCAqCi1wYXRoX3Bvc2l4X2Vycm9yKGNoYXIgKmZ1bmN0aW9uX25hbWUsIHBhdGhfdCAqcGF0aCkKLXsKLSAgICBpZiAocGF0aC0+bmFycm93KQotICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3Jfd2l0aF9maWxlbmFtZShwYXRoLT5uYXJyb3cpOwotICAgIHJldHVybiBwb3NpeF9lcnJvcigpOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotcGF0aF9lcnJvcihjaGFyICpmdW5jdGlvbl9uYW1lLCBwYXRoX3QgKnBhdGgpCitwYXRoX2Vycm9yKHBhdGhfdCAqcGF0aCkKIHsKICNpZmRlZiBNU19XSU5ET1dTCi0gICAgaWYgKHBhdGgtPm5hcnJvdykKLSAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yKGZ1bmN0aW9uX25hbWUsIHBhdGgtPm5hcnJvdyk7Ci0gICAgaWYgKHBhdGgtPndpZGUpCi0gICAgICAgIHJldHVybiB3aW4zMl9lcnJvcl91bmljb2RlKGZ1bmN0aW9uX25hbWUsIHBhdGgtPndpZGUpOwotICAgIHJldHVybiB3aW4zMl9lcnJvcihmdW5jdGlvbl9uYW1lLCBOVUxMKTsKKyAgICByZXR1cm4gUHlFcnJfU2V0RXhjRnJvbVdpbmRvd3NFcnJXaXRoRmlsZW5hbWVPYmplY3QoUHlFeGNfT1NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgcGF0aC0+b2JqZWN0KTsKICNlbHNlCi0gICAgcmV0dXJuIHBhdGhfcG9zaXhfZXJyb3IoZnVuY3Rpb25fbmFtZSwgcGF0aCk7CisgICAgcmV0dXJuIFB5RXJyX1NldEZyb21FcnJub1dpdGhGaWxlbmFtZU9iamVjdChQeUV4Y19PU0Vycm9yLCBwYXRoLT5vYmplY3QpOwogI2VuZGlmCiB9CiAKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqICAgICAgICAgSGVscGVyIEZ1bmN0aW9uIHRvIFRyaW0gYW5kIEZvcm1hdCBPUy8yIE1lc3NhZ2VzCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyB2b2lkCi1vczJfZm9ybWF0bXNnKGNoYXIgKm1zZ2J1ZiwgaW50IG1zZ2xlbiwgY2hhciAqcmVhc29uKQotewotICAgIG1zZ2J1Zlttc2dsZW5dID0gJ1wwJzsgLyogT1MvMiBEb2Vzbid0IEd1YXJhbnRlZSBhIFRlcm1pbmF0b3IgKi8KLQotICAgIGlmIChzdHJsZW4obXNnYnVmKSA+IDApIHsgLyogSWYgTm9uLUVtcHR5IE1zZywgVHJpbSBDUkxGICovCi0gICAgICAgIGNoYXIgKmxhc3RjID0gJm1zZ2J1Zlsgc3RybGVuKG1zZ2J1ZiktMSBdOwotCi0gICAgICAgIHdoaWxlIChsYXN0YyA+IG1zZ2J1ZiAmJiBQeV9JU1NQQUNFKFB5X0NIQVJNQVNLKCpsYXN0YykpKQotICAgICAgICAgICAgKmxhc3RjLS0gPSAnXDAnOyAvKiBUcmltIFRyYWlsaW5nIFdoaXRlc3BhY2UgKENSTEYpICovCi0gICAgfQotCi0gICAgLyogQWRkIE9wdGlvbmFsIFJlYXNvbiBUZXh0ICovCi0gICAgaWYgKHJlYXNvbikgewotICAgICAgICBzdHJjYXQobXNnYnVmLCAiIDogIik7Ci0gICAgICAgIHN0cmNhdChtc2didWYsIHJlYXNvbik7Ci0gICAgfQotfQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogICAgICAgICAgICAgRGVjb2RlIGFuIE9TLzIgT3BlcmF0aW5nIFN5c3RlbSBFcnJvciBDb2RlCi0gKgotICogQSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0byBsb29rdXAgYW4gT1MvMiBlcnJvciBjb2RlIGFuZCByZXR1cm4gYQotICogdGV4dCBtZXNzYWdlIHdlIGNhbiB1c2UgdG8gcmFpc2UgYSBQeXRob24gZXhjZXB0aW9uLgotICoKLSAqIE5vdGVzOgotICogICBUaGUgbWVzc2FnZXMgZm9yIGVycm9ycyByZXR1cm5lZCBmcm9tIHRoZSBPUy8yIGtlcm5lbCByZXNpZGUgaW4KLSAqICAgdGhlIGZpbGUgT1NPMDAxLk1TRyBpbiB0aGUgXE9TMiBkaXJlY3RvcnkgaGllcmFyY2h5LgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIGNoYXIgKgotb3MyX3N0cmVycm9yKGNoYXIgKm1zZ2J1ZiwgaW50IG1zZ2J1ZmxlbiwgaW50IGVycm9yY29kZSwgY2hhciAqcmVhc29uKQotewotICAgIEFQSVJFVCByYzsKLSAgICBVTE9ORyAgbXNnbGVuOwotCi0gICAgLyogUmV0cmlldmUgS2VybmVsLVJlbGF0ZWQgRXJyb3IgTWVzc2FnZSBmcm9tIE9TTzAwMS5NU0cgRmlsZSAqLwotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByYyA9IERvc0dldE1lc3NhZ2UoTlVMTCwgMCwgbXNnYnVmLCBtc2didWZsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgIGVycm9yY29kZSwgIm9zbzAwMS5tc2ciLCAmbXNnbGVuKTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotCi0gICAgaWYgKHJjID09IE5PX0VSUk9SKQotICAgICAgICBvczJfZm9ybWF0bXNnKG1zZ2J1ZiwgbXNnbGVuLCByZWFzb24pOwotICAgIGVsc2UKLSAgICAgICAgUHlPU19zbnByaW50Zihtc2didWYsIG1zZ2J1ZmxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAidW5rbm93biBPUyBlcnJvciAjJWQiLCBlcnJvcmNvZGUpOwotCi0gICAgcmV0dXJuIG1zZ2J1ZjsKLX0KLQotLyogU2V0IGFuIE9TLzItc3BlY2lmaWMgZXJyb3IgYW5kIHJldHVybiBOVUxMLiAgT1MvMiBrZXJuZWwKLSAgIGVycm9ycyBhcmUgbm90IGluIGEgZ2xvYmFsIHZhcmlhYmxlIGUuZy4gJ2Vycm5vJyBub3IgYXJlCi0gICB0aGV5IGNvbmdydWVudCB3aXRoIHBvc2l4IGVycm9yIG51bWJlcnMuICovCi0KLXN0YXRpYyBQeU9iamVjdCAqCi1vczJfZXJyb3IoaW50IGNvZGUpCi17Ci0gICAgY2hhciB0ZXh0WzEwMjRdOwotICAgIFB5T2JqZWN0ICp2OwotCi0gICAgb3MyX3N0cmVycm9yKHRleHQsIHNpemVvZih0ZXh0KSwgY29kZSwgIiIpOwotCi0gICAgdiA9IFB5X0J1aWxkVmFsdWUoIihpcykiLCBjb2RlLCB0ZXh0KTsKLSAgICBpZiAodiAhPSBOVUxMKSB7Ci0gICAgICAgIFB5RXJyX1NldE9iamVjdChQeUV4Y19PU0Vycm9yLCB2KTsKLSAgICAgICAgUHlfREVDUkVGKHYpOwotICAgIH0KLSAgICByZXR1cm4gTlVMTDsgLyogU2lnbmFsIHRvIFB5dGhvbiB0aGF0IGFuIEV4Y2VwdGlvbiBpcyBQZW5kaW5nICovCi19Ci0KLSNlbmRpZiAvKiBPUzIgKi8KLQogLyogUE9TSVggZ2VuZXJpYyBtZXRob2RzICovCiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0xMzg5LDY1ICsxMjMwLDMxIEBACiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCi1wb3NpeF8xc3RyKFB5T2JqZWN0ICphcmdzLCBjaGFyICpmb3JtYXQsIGludCAoKmZ1bmMpKGNvbnN0IGNoYXIqKSkKK3Bvc2l4XzFzdHIoY29uc3QgY2hhciAqZnVuY19uYW1lLCBQeU9iamVjdCAqYXJncywgY2hhciAqZm9ybWF0LAorICAgICAgICAgICBpbnQgKCpmdW5jKShjb25zdCBjaGFyKikpCiB7Ci0gICAgUHlPYmplY3QgKm9wYXRoMSA9IE5VTEw7Ci0gICAgY2hhciAqcGF0aDE7CisgICAgcGF0aF90IHBhdGg7CiAgICAgaW50IHJlczsKKyAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgcGF0aC5mdW5jdGlvbl9uYW1lID0gZnVuY19uYW1lOwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJm9wYXRoMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCkpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHBhdGgxID0gUHlCeXRlc19Bc1N0cmluZyhvcGF0aDEpOwogICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXMgPSAoKmZ1bmMpKHBhdGgxKTsKKyAgICByZXMgPSAoKmZ1bmMpKHBhdGgubmFycm93KTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgIGlmIChyZXMgPCAwKQotICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3Jfd2l0aF9hbGxvY2F0ZWRfZmlsZW5hbWUob3BhdGgxKTsKLSAgICBQeV9ERUNSRUYob3BhdGgxKTsKKyAgICBpZiAocmVzIDwgMCkgeworICAgICAgICBwYXRoX2Vycm9yKCZwYXRoKTsKKyAgICAgICAgcGF0aF9jbGVhbnVwKCZwYXRoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHBhdGhfY2xlYW51cCgmcGF0aCk7CiAgICAgUHlfSU5DUkVGKFB5X05vbmUpOwogICAgIHJldHVybiBQeV9Ob25lOwogfQogCiAKICNpZmRlZiBNU19XSU5ET1dTCi1zdGF0aWMgUHlPYmplY3QqCi13aW4zMl8xc3RyKFB5T2JqZWN0KiBhcmdzLCBjaGFyKiBmdW5jLAotICAgICAgICAgICBjaGFyKiBmb3JtYXQsIEJPT0wgKF9fc3RkY2FsbCAqZnVuY0EpKExQQ1NUUiksCi0gICAgICAgICAgIGNoYXIqIHdmb3JtYXQsIEJPT0wgKF9fc3RkY2FsbCAqZnVuY1cpKExQV1NUUikpCi17Ci0gICAgUHlPYmplY3QgKnVuaTsKLSAgICBjb25zdCBjaGFyICphbnNpOwotICAgIEJPT0wgcmVzdWx0OwotCi0gICAgaWYgKFB5QXJnX1BhcnNlVHVwbGUoYXJncywgd2Zvcm1hdCwgJnVuaSkpCi0gICAgewotICAgICAgICB3Y2hhcl90ICp3c3RyID0gUHlVbmljb2RlX0FzVW5pY29kZSh1bmkpOwotICAgICAgICBpZiAod3N0ciA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgcmVzdWx0ID0gZnVuY1cod3N0cik7Ci0gICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yX29iamVjdChmdW5jLCB1bmkpOwotICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgICAgIHJldHVybiBQeV9Ob25lOwotICAgIH0KLSAgICBQeUVycl9DbGVhcigpOwotCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIGZvcm1hdCwgJmFuc2kpKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAod2luMzJfd2Fybl9ieXRlc19hcGkoKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHJlc3VsdCA9IGZ1bmNBKGFuc2kpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgaWYgKCFyZXN1bHQpCi0gICAgICAgIHJldHVybiB3aW4zMl9lcnJvcihmdW5jLCBhbnNpKTsKLSAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgcmV0dXJuIFB5X05vbmU7Ci0KLX0KLQogLyogVGhpcyBpcyBhIHJlaW1wbGVtZW50YXRpb24gb2YgdGhlIEMgbGlicmFyeSdzIGNoZGlyIGZ1bmN0aW9uLAogICAgYnV0IG9uZSB0aGF0IHByb2R1Y2VzIFdpbjMyIGVycm9ycyBpbnN0ZWFkIG9mIERPUyBlcnJvciBjb2Rlcy4KICAgIGNoZGlyIGlzIGVzc2VudGlhbGx5IGEgd3JhcHBlciBhcm91bmQgU2V0Q3VycmVudERpcmVjdG9yeTsgaG93ZXZlciwKQEAgLTE1MjQsMTMgKzEzMzEsMTMgQEAKICNkZWZpbmUgSEFWRV9TVEFUX05TRUMgMQogCiBzdHJ1Y3Qgd2luMzJfc3RhdHsKLSAgICBpbnQgc3RfZGV2OworICAgIHVuc2lnbmVkIGxvbmcgc3RfZGV2OwogICAgIF9faW50NjQgc3RfaW5vOwogICAgIHVuc2lnbmVkIHNob3J0IHN0X21vZGU7CiAgICAgaW50IHN0X25saW5rOwogICAgIGludCBzdF91aWQ7CiAgICAgaW50IHN0X2dpZDsKLSAgICBpbnQgc3RfcmRldjsKKyAgICB1bnNpZ25lZCBsb25nIHN0X3JkZXY7CiAgICAgX19pbnQ2NCBzdF9zaXplOwogICAgIHRpbWVfdCBzdF9hdGltZTsKICAgICBpbnQgc3RfYXRpbWVfbnNlYzsKQEAgLTE1ODksNiArMTM5Niw4IEBACiAgICAgbWVtc2V0KHJlc3VsdCwgMCwgc2l6ZW9mKCpyZXN1bHQpKTsKICAgICByZXN1bHQtPnN0X21vZGUgPSBhdHRyaWJ1dGVzX3RvX21vZGUoaW5mby0+ZHdGaWxlQXR0cmlidXRlcyk7CiAgICAgcmVzdWx0LT5zdF9zaXplID0gKCgoX19pbnQ2NClpbmZvLT5uRmlsZVNpemVIaWdoKTw8MzIpICsgaW5mby0+bkZpbGVTaXplTG93OworICAgIHJlc3VsdC0+c3RfZGV2ID0gaW5mby0+ZHdWb2x1bWVTZXJpYWxOdW1iZXI7CisgICAgcmVzdWx0LT5zdF9yZGV2ID0gcmVzdWx0LT5zdF9kZXY7CiAgICAgRklMRV9USU1FX3RvX3RpbWVfdF9uc2VjKCZpbmZvLT5mdENyZWF0aW9uVGltZSwgJnJlc3VsdC0+c3RfY3RpbWUsICZyZXN1bHQtPnN0X2N0aW1lX25zZWMpOwogICAgIEZJTEVfVElNRV90b190aW1lX3RfbnNlYygmaW5mby0+ZnRMYXN0V3JpdGVUaW1lLCAmcmVzdWx0LT5zdF9tdGltZSwgJnJlc3VsdC0+c3RfbXRpbWVfbnNlYyk7CiAgICAgRklMRV9USU1FX3RvX3RpbWVfdF9uc2VjKCZpbmZvLT5mdExhc3RBY2Nlc3NUaW1lLCAmcmVzdWx0LT5zdF9hdGltZSwgJnJlc3VsdC0+c3RfYXRpbWVfbnNlYyk7CkBAIC0xNjUxLDcgKzE0NjAsNyBAQAogfQogCiAvKiBHcmFiIEdldEZpbmFsUGF0aE5hbWVCeUhhbmRsZSBkeW5hbWljYWxseSBmcm9tIGtlcm5lbDMyICovCi1zdGF0aWMgaW50IGhhc19HZXRGaW5hbFBhdGhOYW1lQnlIYW5kbGUgPSAwOworc3RhdGljIGludCBoYXNfR2V0RmluYWxQYXRoTmFtZUJ5SGFuZGxlID0gLTE7CiBzdGF0aWMgRFdPUkQgKENBTExCQUNLICpQeV9HZXRGaW5hbFBhdGhOYW1lQnlIYW5kbGVXKShIQU5ETEUsIExQV1NUUiwgRFdPUkQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEV09SRCk7CiBzdGF0aWMgaW50CkBAIC0xNjYyLDcgKzE0NzEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFdPUkQpOwogCiAgICAgLyogb25seSByZWNoZWNrICovCi0gICAgaWYgKCFoYXNfR2V0RmluYWxQYXRoTmFtZUJ5SGFuZGxlKQorICAgIGlmICgtMSA9PSBoYXNfR2V0RmluYWxQYXRoTmFtZUJ5SGFuZGxlKQogICAgIHsKICAgICAgICAgaEtlcm5lbDMyID0gR2V0TW9kdWxlSGFuZGxlVyhMIktFUk5FTDMyIik7CiAgICAgICAgICooRkFSUFJPQyopJlB5X0dldEZpbmFsUGF0aE5hbWVCeUhhbmRsZUEgPSBHZXRQcm9jQWRkcmVzcyhoS2VybmVsMzIsCkBAIC0yMjg5LDcgKzIwOTgsOSBAQAogI2Vsc2UKICAgICBQeVN0cnVjdFNlcXVlbmNlX1NFVF9JVEVNKHYsIDEsIFB5TG9uZ19Gcm9tTG9uZygobG9uZylzdC0+c3RfaW5vKSk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKEhBVkVfTE9OR19MT05HKSAmJiAhZGVmaW5lZChNU19XSU5ET1dTKQorI2lmZGVmIE1TX1dJTkRPV1MKKyAgICBQeVN0cnVjdFNlcXVlbmNlX1NFVF9JVEVNKHYsIDIsIFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKHN0LT5zdF9kZXYpKTsKKyNlbGlmIGRlZmluZWQoSEFWRV9MT05HX0xPTkcpCiAgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9TRVRfSVRFTSh2LCAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlMb25nX0Zyb21Mb25nTG9uZygoUFlfTE9OR19MT05HKXN0LT5zdF9kZXYpKTsKICNlbHNlCkBAIC0yNDI0LDggKzIyMzUsOSBAQAogICAgICAgICByZXN1bHQgPSBTVEFUKHBhdGgtPm5hcnJvdywgJnN0KTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogCi0gICAgaWYgKHJlc3VsdCAhPSAwKQotICAgICAgICByZXR1cm4gcGF0aF9lcnJvcigic3RhdCIsIHBhdGgpOworICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICByZXR1cm4gcGF0aF9lcnJvcihwYXRoKTsKKyAgICB9CiAKICAgICByZXR1cm4gX3B5c3RhdF9mcm9tc3RydWN0c3RhdCgmc3QpOwogfQpAQCAtMjQ1Niw2ICsyMjY4LDcgQEAKICAgICBQeU9iamVjdCAqcmV0dXJuX3ZhbHVlOwogCiAgICAgbWVtc2V0KCZwYXRoLCAwLCBzaXplb2YocGF0aCkpOworICAgIHBhdGguZnVuY3Rpb25fbmFtZSA9ICJzdGF0IjsKICAgICBwYXRoLmFsbG93X2ZkID0gMTsKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPJnwkTyZwOnN0YXQiLCBrZXl3b3JkcywKICAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZwYXRoLApAQCAtMjQ4Niw2ICsyMjk5LDcgQEAKICAgICBQeU9iamVjdCAqcmV0dXJuX3ZhbHVlOwogCiAgICAgbWVtc2V0KCZwYXRoLCAwLCBzaXplb2YocGF0aCkpOworICAgIHBhdGguZnVuY3Rpb25fbmFtZSA9ICJsc3RhdCI7CiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiTyZ8JE8mOmxzdGF0Iiwga2V5d29yZHMsCiAgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwKICNpZmRlZiBIQVZFX0ZTVEFUQVQKQEAgLTI2OTQsNiArMjUwOCw3IEBACiAgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InBhdGgiLCBOVUxMfTsKIAogICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBwYXRoLmZ1bmN0aW9uX25hbWUgPSAiY2hkaXIiOwogI2lmZGVmIEhBVkVfRkNIRElSCiAgICAgcGF0aC5hbGxvd19mZCA9IDE7CiAjZW5kaWYKQEAgLTI3MDksOCArMjUyNCw2IEBACiAgICAgZWxzZQogICAgICAgICByZXN1bHQgPSB3aW4zMl9jaGRpcihwYXRoLm5hcnJvdyk7CiAgICAgcmVzdWx0ID0gIXJlc3VsdDsgLyogb24gdW5peCwgc3VjY2VzcyA9IDAsIG9uIHdpbmRvd3MsIHN1Y2Nlc3MgPSAhMCAqLwotI2VsaWYgZGVmaW5lZChQWU9TX09TMikgJiYgZGVmaW5lZChQWUNDX0dDQykKLSAgICByZXN1bHQgPSBfY2hkaXIyKHBhdGgubmFycm93KTsKICNlbHNlCiAjaWZkZWYgSEFWRV9GQ0hESVIKICAgICBpZiAocGF0aC5mZCAhPSAtMSkKQEAgLTI3MjIsNyArMjUzNSw3IEBACiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKIAogICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigiY2hkaXIiLCAmcGF0aCk7CisgICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfZXJyb3IoJnBhdGgpOwogICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQogCkBAIC0yNzg2LDYgKzI1OTksNyBAQAogI2VuZGlmCiAKICAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgcGF0aC5mdW5jdGlvbl9uYW1lID0gImNobW9kIjsKICNpZmRlZiBIQVZFX0ZDSE1PRAogICAgIHBhdGguYWxsb3dfZmQgPSAxOwogI2VuZGlmCkBAIC0yODI2LDcgKzI2NDAsNyBAQAogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKICAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICByZXR1cm5fdmFsdWUgPSB3aW4zMl9lcnJvcl9vYmplY3QoImNobW9kIiwgcGF0aC5vYmplY3QpOworICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCZwYXRoKTsKICAgICAgICAgZ290byBleGl0OwogICAgIH0KICNlbHNlIC8qIE1TX1dJTkRPV1MgKi8KQEAgLTI4ODAsNyArMjY5NCw3IEBACiAgICAgICAgIH0KICAgICAgICAgZWxzZQogI2VuZGlmCi0gICAgICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCJjaG1vZCIsICZwYXRoKTsKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfZXJyb3IoJnBhdGgpOwogICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQogI2VuZGlmCkBAIC0yOTI0LDIwICsyNzM4LDIzIEBACiBzdGF0aWMgUHlPYmplY3QgKgogcG9zaXhfbGNobW9kKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBQeU9iamVjdCAqb3BhdGg7Ci0gICAgY2hhciAqcGF0aDsKKyAgICBwYXRoX3QgcGF0aDsKICAgICBpbnQgaTsKICAgICBpbnQgcmVzOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyZpOmxjaG1vZCIsIFB5VW5pY29kZV9GU0NvbnZlcnRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wYXRoLCAmaSkpCisgICAgbWVtc2V0KCZwYXRoLCAwLCBzaXplb2YocGF0aCkpOworICAgIHBhdGguZnVuY3Rpb25fbmFtZSA9ICJsY2htb2QiOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyZpOmxjaG1vZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwgJmkpKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBwYXRoID0gUHlCeXRlc19Bc1N0cmluZyhvcGF0aCk7CiAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHJlcyA9IGxjaG1vZChwYXRoLCBpKTsKKyAgICByZXMgPSBsY2htb2QocGF0aC5uYXJyb3csIGkpOwogICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgaWYgKHJlcyA8IDApCi0gICAgICAgIHJldHVybiBwb3NpeF9lcnJvcl93aXRoX2FsbG9jYXRlZF9maWxlbmFtZShvcGF0aCk7Ci0gICAgUHlfREVDUkVGKG9wYXRoKTsKKyAgICBpZiAocmVzIDwgMCkgeworICAgICAgICBwYXRoX2Vycm9yKCZwYXRoKTsKKyAgICAgICAgcGF0aF9jbGVhbnVwKCZwYXRoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHBhdGhfY2xlYW51cCgmcGF0aCk7CiAgICAgUHlfUkVUVVJOX05PTkU7CiB9CiAjZW5kaWYgLyogSEFWRV9MQ0hNT0QgKi8KQEAgLTI5NjUsNiArMjc4Miw3IEBACiAgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InBhdGgiLCAiZmxhZ3MiLCAiZm9sbG93X3N5bWxpbmtzIiwgTlVMTH07CiAKICAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgcGF0aC5mdW5jdGlvbl9uYW1lID0gImNoZmxhZ3MiOwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgIk8ma3wkaTpjaGZsYWdzIiwga2V5d29yZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZsYWdzLCAmZm9sbG93X3N5bWxpbmtzKSkKQEAgLTI5ODUsNyArMjgwMyw3IEBACiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKIAogICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9wb3NpeF9lcnJvcigiY2hmbGFncyIsICZwYXRoKTsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigmcGF0aCk7CiAgICAgICAgIGdvdG8gZXhpdDsKICAgICB9CiAKQEAgLTMwMDgsMjIgKzI4MjYsMjQgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBwb3NpeF9sY2hmbGFncyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgUHlPYmplY3QgKm9wYXRoOwotICAgIGNoYXIgKnBhdGg7CisgICAgcGF0aF90IHBhdGg7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBpbnQgcmVzOworICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBwYXRoLmZ1bmN0aW9uX25hbWUgPSAibGNoZmxhZ3MiOwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyZrOmxjaGZsYWdzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmb3BhdGgsICZmbGFncykpCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwgJmZsYWdzKSkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcGF0aCA9IFB5Qnl0ZXNfQXNTdHJpbmcob3BhdGgpOwogICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXMgPSBsY2hmbGFncyhwYXRoLCBmbGFncyk7CisgICAgcmVzID0gbGNoZmxhZ3MocGF0aC5uYXJyb3csIGZsYWdzKTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgIGlmIChyZXMgPCAwKQotICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3Jfd2l0aF9hbGxvY2F0ZWRfZmlsZW5hbWUob3BhdGgpOwotICAgIFB5X0RFQ1JFRihvcGF0aCk7Ci0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJldHVybiBQeV9Ob25lOworICAgIGlmIChyZXMgPCAwKSB7CisgICAgICAgIHBhdGhfZXJyb3IoJnBhdGgpOworICAgICAgICBwYXRoX2NsZWFudXAoJnBhdGgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgcGF0aF9jbGVhbnVwKCZwYXRoKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKIH0KICNlbmRpZiAvKiBIQVZFX0xDSEZMQUdTICovCiAKQEAgLTMwMzUsNyArMjg1NSw3IEBACiBzdGF0aWMgUHlPYmplY3QgKgogcG9zaXhfY2hyb290KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICByZXR1cm4gcG9zaXhfMXN0cihhcmdzLCAiTyY6Y2hyb290IiwgY2hyb290KTsKKyAgICByZXR1cm4gcG9zaXhfMXN0cigiY2hyb290IiwgYXJncywgIk8mOmNocm9vdCIsIGNocm9vdCk7CiB9CiAjZW5kaWYKIApAQCAtMzExNyw2ICsyOTM3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9sbG93X3N5bWxpbmtzIiwgTlVMTH07CiAKICAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgcGF0aC5mdW5jdGlvbl9uYW1lID0gImNob3duIjsKICNpZmRlZiBIQVZFX0ZDSE9XTgogICAgIHBhdGguYWxsb3dfZmQgPSAxOwogI2VuZGlmCkBAIC0zMTc0LDcgKzI5OTUsNyBAQAogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfcG9zaXhfZXJyb3IoImNob3duIiwgJnBhdGgpOworICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCZwYXRoKTsKICAgICAgICAgZ290byBleGl0OwogICAgIH0KIApAQCAtMzIyMywyMyArMzA0NCwyNiBAQAogc3RhdGljIFB5T2JqZWN0ICoKIHBvc2l4X2xjaG93bihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgUHlPYmplY3QgKm9wYXRoOwotICAgIGNoYXIgKnBhdGg7CisgICAgcGF0aF90IHBhdGg7CiAgICAgdWlkX3QgdWlkOwogICAgIGdpZF90IGdpZDsKICAgICBpbnQgcmVzOworICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBwYXRoLmZ1bmN0aW9uX25hbWUgPSAibGNob3duIjsKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8mTyZPJjpsY2hvd24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRlNDb252ZXJ0ZXIsICZvcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICBfUHlfVWlkX0NvbnZlcnRlciwgJnVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX1B5X0dpZF9Db252ZXJ0ZXIsICZnaWQpKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBwYXRoID0gUHlCeXRlc19Bc1N0cmluZyhvcGF0aCk7CiAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHJlcyA9IGxjaG93bihwYXRoLCB1aWQsIGdpZCk7CisgICAgcmVzID0gbGNob3duKHBhdGgubmFycm93LCB1aWQsIGdpZCk7CiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICBpZiAocmVzIDwgMCkKLSAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yX3dpdGhfYWxsb2NhdGVkX2ZpbGVuYW1lKG9wYXRoKTsKLSAgICBQeV9ERUNSRUYob3BhdGgpOworICAgIGlmIChyZXMgPCAwKSB7CisgICAgICAgIHBhdGhfZXJyb3IoJnBhdGgpOworICAgICAgICBwYXRoX2NsZWFudXAoJnBhdGgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgcGF0aF9jbGVhbnVwKCZwYXRoKTsKICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CiAgICAgcmV0dXJuIFB5X05vbmU7CiB9CkBAIC0zMjc1LDExICszMDk5LDEzIEBACiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQogICAgICAgICBpZiAoIWxlbikgewotICAgICAgICAgICAgaWYgKHdidWYyICE9IHdidWYpIGZyZWUod2J1ZjIpOwotICAgICAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yKCJnZXRjd2R1IiwgTlVMTCk7CisgICAgICAgICAgICBpZiAod2J1ZjIgIT0gd2J1ZikKKyAgICAgICAgICAgICAgICBmcmVlKHdidWYyKTsKKyAgICAgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycigwKTsKICAgICAgICAgfQogICAgICAgICByZXNvYmogPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKHdidWYyLCBsZW4pOwotICAgICAgICBpZiAod2J1ZjIgIT0gd2J1ZikgZnJlZSh3YnVmMik7CisgICAgICAgIGlmICh3YnVmMiAhPSB3YnVmKQorICAgICAgICAgICAgZnJlZSh3YnVmMik7CiAgICAgICAgIHJldHVybiByZXNvYmo7CiAgICAgfQogCkBAIC0zMjg4LDExICszMTE0LDcgQEAKICNlbmRpZgogCiAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotI2lmIGRlZmluZWQoUFlPU19PUzIpICYmIGRlZmluZWQoUFlDQ19HQ0MpCi0gICAgcmVzID0gX2dldGN3ZDIoYnVmLCBzaXplb2YgYnVmKTsKLSNlbHNlCiAgICAgcmVzID0gZ2V0Y3dkKGJ1Ziwgc2l6ZW9mIGJ1Zik7Ci0jZW5kaWYKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CkBAIC0zMzU5LDYgKzMxODEsOCBAQAogCiAgICAgbWVtc2V0KCZzcmMsIDAsIHNpemVvZihzcmMpKTsKICAgICBtZW1zZXQoJmRzdCwgMCwgc2l6ZW9mKGRzdCkpOworICAgIHNyYy5mdW5jdGlvbl9uYW1lID0gImxpbmsiOworICAgIGRzdC5mdW5jdGlvbl9uYW1lID0gImxpbmsiOwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgIk8mTyZ8TyZPJnA6bGluayIsIGtleXdvcmRzLAogICAgICAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZzcmMsCiAgICAgICAgICAgICBwYXRoX2NvbnZlcnRlciwgJmRzdCwKQEAgLTMzODksNyArMzIxMyw3IEBACiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKIAogICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIHJldHVybl92YWx1ZSA9IHdpbjMyX2Vycm9yX29iamVjdCgibGluayIsIGRzdC5vYmplY3QpOworICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCZzcmMpOwogICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQogI2Vsc2UKQEAgLTM0MDcsNyArMzIzMSw3IEBACiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKIAogICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigibGluayIsICZkc3QpOworICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCZzcmMpOwogICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQogI2VuZGlmCkBAIC0zNDM3LDE1ICszMjYxLDExIEBACiAgIHRoZSBmaWxlIGRlc2NyaXB0b3IgbXVzdCByZWZlciB0byBhIGRpcmVjdG9yeS5cblwKICAgSWYgdGhpcyBmdW5jdGlvbmFsaXR5IGlzIHVuYXZhaWxhYmxlLCB1c2luZyBpdCByYWlzZXMgTm90SW1wbGVtZW50ZWRFcnJvci4iKTsKIAotc3RhdGljIFB5T2JqZWN0ICoKLXBvc2l4X2xpc3RkaXIoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQotewotICAgIHBhdGhfdCBwYXRoOwotICAgIFB5T2JqZWN0ICpsaXN0ID0gTlVMTDsKLSAgICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsicGF0aCIsIE5VTEx9OwotICAgIGludCBmZCA9IC0xOwotCiAjaWYgZGVmaW5lZChNU19XSU5ET1dTKSAmJiAhZGVmaW5lZChIQVZFX09QRU5ESVIpCitzdGF0aWMgUHlPYmplY3QgKgorX2xpc3RkaXJfd2luZG93c19ub19vcGVuZGlyKHBhdGhfdCAqcGF0aCwgUHlPYmplY3QgKmxpc3QpCit7CisgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InBhdGgiLCBOVUxMfTsKICAgICBQeU9iamVjdCAqdjsKICAgICBIQU5ETEUgaEZpbmRGaWxlID0gSU5WQUxJRF9IQU5ETEVfVkFMVUU7CiAgICAgQk9PTCByZXN1bHQ7CkBAIC0zNDU2LDQ4ICszMjc2LDE3IEBACiAgICAgUHlfc3NpemVfdCBsZW4gPSBzaXplb2YobmFtZWJ1ZiktNTsKICAgICBQeU9iamVjdCAqcG8gPSBOVUxMOwogICAgIHdjaGFyX3QgKnduYW1lYnVmID0gTlVMTDsKLSNlbGlmIGRlZmluZWQoUFlPU19PUzIpCi0jaWZuZGVmIE1BWF9QQVRICi0jZGVmaW5lIE1BWF9QQVRIICAgIENDSE1BWFBBVEgKLSNlbmRpZgotICAgIGNoYXIgKnB0OwotICAgIFB5T2JqZWN0ICp2OwotICAgIGNoYXIgbmFtZWJ1ZltNQVhfUEFUSCs1XTsKLSAgICBIRElSICBoZGlyID0gMTsKLSAgICBVTE9ORyBzcmNoY250ID0gMTsKLSAgICBGSUxFRklOREJVRjMgICBlcDsKLSAgICBBUElSRVQgcmM7Ci0jZWxzZQotICAgIFB5T2JqZWN0ICp2OwotICAgIERJUiAqZGlycCA9IE5VTEw7Ci0gICAgc3RydWN0IGRpcmVudCAqZXA7Ci0gICAgaW50IHJldHVybl9zdHI7IC8qIGlmIGZhbHNlLCByZXR1cm4gYnl0ZXMgKi8KLSNlbmRpZgogCi0gICAgbWVtc2V0KCZwYXRoLCAwLCBzaXplb2YocGF0aCkpOwotICAgIHBhdGgubnVsbGFibGUgPSAxOwotI2lmZGVmIEhBVkVfRkRPUEVORElSCi0gICAgcGF0aC5hbGxvd19mZCA9IDE7Ci0gICAgcGF0aC5mZCA9IC0xOwotI2VuZGlmCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAifE8mOmxpc3RkaXIiLCBrZXl3b3JkcywKLSAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZwYXRoCi0gICAgICAgICkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgLyogWFhYIFNob3VsZCByZWRvIHRoaXMgcHV0dGluZyB0aGUgKG5vdyBmb3VyKSB2ZXJzaW9ucyBvZiBvcGVuZGlyCi0gICAgICAgaW4gc2VwYXJhdGUgZmlsZXMgaW5zdGVhZCBvZiBoYXZpbmcgdGhlbSBhbGwgaGVyZS4uLiAqLwotI2lmIGRlZmluZWQoTVNfV0lORE9XUykgJiYgIWRlZmluZWQoSEFWRV9PUEVORElSKQotICAgIGlmICghcGF0aC5uYXJyb3cpIHsKKyAgICBpZiAoIXBhdGgtPm5hcnJvdykgewogICAgICAgICBXSU4zMl9GSU5EX0RBVEFXIHdGaWxlRGF0YTsKICAgICAgICAgd2NoYXJfdCAqcG9fd2NoYXJzOwogCi0gICAgICAgIGlmICghcGF0aC53aWRlKSB7IC8qIERlZmF1bHQgYXJnOiAiLiIgKi8KKyAgICAgICAgaWYgKCFwYXRoLT53aWRlKSB7IC8qIERlZmF1bHQgYXJnOiAiLiIgKi8KICAgICAgICAgICAgIHBvX3djaGFycyA9IEwiLiI7CiAgICAgICAgICAgICBsZW4gPSAxOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcG9fd2NoYXJzID0gcGF0aC53aWRlOwotICAgICAgICAgICAgbGVuID0gd2NzbGVuKHBhdGgud2lkZSk7CisgICAgICAgICAgICBwb193Y2hhcnMgPSBwYXRoLT53aWRlOworICAgICAgICAgICAgbGVuID0gd2NzbGVuKHBhdGgtPndpZGUpOwogICAgICAgICB9CiAgICAgICAgIC8qIFRoZSArNSBpcyBzbyB3ZSBjYW4gYXBwZW5kICJcXCouKlwwIiAqLwogICAgICAgICB3bmFtZWJ1ZiA9IG1hbGxvYygobGVuICsgNSkgKiBzaXplb2Yod2NoYXJfdCkpOwpAQCAtMzUyMyw4ICszMzEyLDcgQEAKICAgICAgICAgICAgIGlmIChlcnJvciA9PSBFUlJPUl9GSUxFX05PVF9GT1VORCkKICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CiAgICAgICAgICAgICBQeV9ERUNSRUYobGlzdCk7Ci0gICAgICAgICAgICBsaXN0ID0gTlVMTDsKLSAgICAgICAgICAgIHdpbjMyX2Vycm9yX3VuaWNvZGUoIkZpbmRGaXJzdEZpbGVXIiwgd25hbWVidWYpOworICAgICAgICAgICAgbGlzdCA9IHBhdGhfZXJyb3IocGF0aCk7CiAgICAgICAgICAgICBnb3RvIGV4aXQ7CiAgICAgICAgIH0KICAgICAgICAgZG8gewpAQCAtMzU1MywxNSArMzM0MSwxNSBAQAogICAgICAgICAgICAgICAgaXQgZ290IHRvIHRoZSBlbmQgb2YgdGhlIGRpcmVjdG9yeS4gKi8KICAgICAgICAgICAgIGlmICghcmVzdWx0ICYmIEdldExhc3RFcnJvcigpICE9IEVSUk9SX05PX01PUkVfRklMRVMpIHsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYobGlzdCk7Ci0gICAgICAgICAgICAgICAgbGlzdCA9IHdpbjMyX2Vycm9yX3VuaWNvZGUoIkZpbmROZXh0RmlsZVciLCB3bmFtZWJ1Zik7CisgICAgICAgICAgICAgICAgbGlzdCA9IHBhdGhfZXJyb3IocGF0aCk7CiAgICAgICAgICAgICAgICAgZ290byBleGl0OwogICAgICAgICAgICAgfQogICAgICAgICB9IHdoaWxlIChyZXN1bHQgPT0gVFJVRSk7CiAKICAgICAgICAgZ290byBleGl0OwogICAgIH0KLSAgICBzdHJjcHkobmFtZWJ1ZiwgcGF0aC5uYXJyb3cpOwotICAgIGxlbiA9IHBhdGgubGVuZ3RoOworICAgIHN0cmNweShuYW1lYnVmLCBwYXRoLT5uYXJyb3cpOworICAgIGxlbiA9IHBhdGgtPmxlbmd0aDsKICAgICBpZiAobGVuID4gMCkgewogICAgICAgICBjaGFyIGNoID0gbmFtZWJ1ZltsZW4tMV07CiAgICAgICAgIGlmIChjaCAhPSBTRVAgJiYgY2ggIT0gQUxUU0VQICYmIGNoICE9ICc6JykKQEAgLTM1ODAsNyArMzM2OCw3IEBACiAgICAgICAgIGlmIChlcnJvciA9PSBFUlJPUl9GSUxFX05PVF9GT1VORCkKICAgICAgICAgICAgIGdvdG8gZXhpdDsKICAgICAgICAgUHlfREVDUkVGKGxpc3QpOwotICAgICAgICBsaXN0ID0gd2luMzJfZXJyb3IoIkZpbmRGaXJzdEZpbGUiLCBuYW1lYnVmKTsKKyAgICAgICAgbGlzdCA9IHBhdGhfZXJyb3IocGF0aCk7CiAgICAgICAgIGdvdG8gZXhpdDsKICAgICB9CiAgICAgZG8gewpAQCAtMzYwOCw3ICszMzk2LDcgQEAKICAgICAgICAgICAgaXQgZ290IHRvIHRoZSBlbmQgb2YgdGhlIGRpcmVjdG9yeS4gKi8KICAgICAgICAgaWYgKCFyZXN1bHQgJiYgR2V0TGFzdEVycm9yKCkgIT0gRVJST1JfTk9fTU9SRV9GSUxFUykgewogICAgICAgICAgICAgUHlfREVDUkVGKGxpc3QpOwotICAgICAgICAgICAgbGlzdCA9IHdpbjMyX2Vycm9yKCJGaW5kTmV4dEZpbGUiLCBuYW1lYnVmKTsKKyAgICAgICAgICAgIGxpc3QgPSBwYXRoX2Vycm9yKHBhdGgpOwogICAgICAgICAgICAgZ290byBleGl0OwogICAgICAgICB9CiAgICAgfSB3aGlsZSAocmVzdWx0ID09IFRSVUUpOwpAQCAtMzYxOCw4NiArMzQwNiwzNCBAQAogICAgICAgICBpZiAoRmluZENsb3NlKGhGaW5kRmlsZSkgPT0gRkFMU0UpIHsKICAgICAgICAgICAgIGlmIChsaXN0ICE9IE5VTEwpIHsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYobGlzdCk7Ci0gICAgICAgICAgICAgICAgbGlzdCA9IHdpbjMyX2Vycm9yX29iamVjdCgiRmluZENsb3NlIiwgcGF0aC5vYmplY3QpOworICAgICAgICAgICAgICAgIGxpc3QgPSBwYXRoX2Vycm9yKHBhdGgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIGlmICh3bmFtZWJ1ZikKICAgICAgICAgZnJlZSh3bmFtZWJ1Zik7Ci0gICAgcGF0aF9jbGVhbnVwKCZwYXRoKTsKIAogICAgIHJldHVybiBsaXN0OworfSAgLyogZW5kIG9mIF9saXN0ZGlyX3dpbmRvd3Nfbm9fb3BlbmRpciAqLwogCi0jZWxpZiBkZWZpbmVkKFBZT1NfT1MyKQotICAgIGlmIChwYXRoLmxlbmd0aCA+PSBNQVhfUEFUSCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgInBhdGggdG9vIGxvbmciKTsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KLSAgICBzdHJjcHkobmFtZWJ1ZiwgcGF0aC5uYXJyb3cpOwotICAgIGZvciAocHQgPSBuYW1lYnVmOyAqcHQ7IHB0KyspCi0gICAgICAgIGlmICgqcHQgPT0gQUxUU0VQKQotICAgICAgICAgICAgKnB0ID0gU0VQOwotICAgIGlmIChuYW1lYnVmW2xlbi0xXSAhPSBTRVApCi0gICAgICAgIG5hbWVidWZbbGVuKytdID0gU0VQOwotICAgIHN0cmNweShuYW1lYnVmICsgbGVuLCAiKi4qIik7CisjZWxzZSAgLyogdGh1cyBQT1NJWCwgaWU6IG5vdCAoTVNfV0lORE9XUyBhbmQgbm90IEhBVkVfT1BFTkRJUikgKi8KIAotICAgIGlmICgobGlzdCA9IFB5TGlzdF9OZXcoMCkpID09IE5VTEwpIHsKLSAgICAgICAgZ290byBleGl0OwotICAgIH0KK3N0YXRpYyBQeU9iamVjdCAqCitfcG9zaXhfbGlzdGRpcihwYXRoX3QgKnBhdGgsIFB5T2JqZWN0ICpsaXN0KQoreworICAgIGludCBmZCA9IC0xOwogCi0gICAgcmMgPSBEb3NGaW5kRmlyc3QobmFtZWJ1ZiwgICAgICAgICAvKiBXaWxkY2FyZCBQYXR0ZXJuIHRvIE1hdGNoICovCi0gICAgICAgICAgICAgICAgICAgICAgJmhkaXIsICAgICAgICAgICAvKiBIYW5kbGUgdG8gVXNlIFdoaWxlIFNlYXJjaCBEaXJlY3RvcnkgKi8KLSAgICAgICAgICAgICAgICAgICAgICBGSUxFX1JFQURPTkxZIHwgRklMRV9ISURERU4gfCBGSUxFX1NZU1RFTSB8IEZJTEVfRElSRUNUT1JZLAotICAgICAgICAgICAgICAgICAgICAgICZlcCwgc2l6ZW9mKGVwKSwgLyogU3RydWN0dXJlIHRvIFJlY2VpdmUgRGlyZWN0b3J5IEVudHJ5ICovCi0gICAgICAgICAgICAgICAgICAgICAgJnNyY2hjbnQsICAgICAgICAvKiBNYXggYW5kIEFjdHVhbCBDb3VudCBvZiBFbnRyaWVzIFBlciBJdGVyYXRpb24gKi8KLSAgICAgICAgICAgICAgICAgICAgICBGSUxfU1RBTkRBUkQpOyAgIC8qIEZvcm1hdCBvZiBFbnRyeSAoRUFzIG9yIE5vdCkgKi8KLQotICAgIGlmIChyYyAhPSBOT19FUlJPUikgewotICAgICAgICBlcnJubyA9IEVOT0VOVDsKLSAgICAgICAgUHlfREVDUkVGKGxpc3QpOwotICAgICAgICBsaXN0ID0gcG9zaXhfZXJyb3Jfd2l0aF9maWxlbmFtZShwYXRoLm5hcnJvdyk7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAoc3JjaGNudCA+IDApIHsgLyogSWYgRGlyZWN0b3J5IGlzIE5PVCBUb3RhbGx5IEVtcHR5LCAqLwotICAgICAgICBkbyB7Ci0gICAgICAgICAgICBpZiAoZXAuYWNoTmFtZVswXSA9PSAnLicKLSAgICAgICAgICAgICYmIChlcC5hY2hOYW1lWzFdID09ICdcMCcgfHwgKGVwLmFjaE5hbWVbMV0gPT0gJy4nICYmIGVwLmFjaE5hbWVbMl0gPT0gJ1wwJykpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvKiBTa2lwIE92ZXIgIi4iIGFuZCAiLi4iIE5hbWVzICovCi0KLSAgICAgICAgICAgIHN0cmNweShuYW1lYnVmLCBlcC5hY2hOYW1lKTsKLQotICAgICAgICAgICAgLyogTGVhdmUgQ2FzZSBvZiBOYW1lIEFsb25lIC0tIEluIE5hdGl2ZSBGb3JtICovCi0gICAgICAgICAgICAvKiAoUmVtb3ZlZCBGb3JjZWQgTG93ZXJjYXNpbmcgQ29kZSkgKi8KLQotICAgICAgICAgICAgdiA9IFB5Qnl0ZXNfRnJvbVN0cmluZyhuYW1lYnVmKTsKLSAgICAgICAgICAgIGlmICh2ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYobGlzdCk7Ci0gICAgICAgICAgICAgICAgbGlzdCA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoUHlMaXN0X0FwcGVuZChsaXN0LCB2KSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihsaXN0KTsKLSAgICAgICAgICAgICAgICBsaXN0ID0gTlVMTDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgfSB3aGlsZSAoRG9zRmluZE5leHQoaGRpciwgJmVwLCBzaXplb2YoZXApLCAmc3JjaGNudCkgPT0gTk9fRVJST1IgJiYgc3JjaGNudCA+IDApOwotICAgIH0KLQotZXhpdDoKLSAgICBwYXRoX2NsZWFudXAoJnBhdGgpOwotCi0gICAgcmV0dXJuIGxpc3Q7Ci0jZWxzZQorICAgIFB5T2JqZWN0ICp2OworICAgIERJUiAqZGlycCA9IE5VTEw7CisgICAgc3RydWN0IGRpcmVudCAqZXA7CisgICAgaW50IHJldHVybl9zdHI7IC8qIGlmIGZhbHNlLCByZXR1cm4gYnl0ZXMgKi8KIAogICAgIGVycm5vID0gMDsKICNpZmRlZiBIQVZFX0ZET1BFTkRJUgotICAgIGlmIChwYXRoLmZkICE9IC0xKSB7CisgICAgaWYgKHBhdGgtPmZkICE9IC0xKSB7CiAgICAgICAgIC8qIGNsb3NlZGlyKCkgY2xvc2VzIHRoZSBGRCwgc28gd2UgZHVwbGljYXRlIGl0ICovCiAgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgZmQgPSBkdXAocGF0aC5mZCk7CisgICAgICAgIGZkID0gZHVwKHBhdGgtPmZkKTsKICAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKIAogICAgICAgICBpZiAoZmQgPT0gLTEpIHsKQEAgLTM3MTUsMTAgKzM0NTEsMTAgQEAKICNlbmRpZgogICAgIHsKICAgICAgICAgY2hhciAqbmFtZTsKLSAgICAgICAgaWYgKHBhdGgubmFycm93KSB7Ci0gICAgICAgICAgICBuYW1lID0gcGF0aC5uYXJyb3c7CisgICAgICAgIGlmIChwYXRoLT5uYXJyb3cpIHsKKyAgICAgICAgICAgIG5hbWUgPSBwYXRoLT5uYXJyb3c7CiAgICAgICAgICAgICAvKiBvbmx5IHJldHVybiBieXRlcyBpZiB0aGV5IHNwZWNpZmllZCBhIGJ5dGVzIG9iamVjdCAqLwotICAgICAgICAgICAgcmV0dXJuX3N0ciA9ICEoUHlCeXRlc19DaGVjayhwYXRoLm9iamVjdCkpOworICAgICAgICAgICAgcmV0dXJuX3N0ciA9ICEoUHlCeXRlc19DaGVjayhwYXRoLT5vYmplY3QpKTsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIG5hbWUgPSAiLiI7CkBAIC0zNzMxLDcgKzM0NjcsNyBAQAogICAgIH0KIAogICAgIGlmIChkaXJwID09IE5VTEwpIHsKLSAgICAgICAgbGlzdCA9IHBhdGhfZXJyb3IoImxpc3RkaXIiLCAmcGF0aCk7CisgICAgICAgIGxpc3QgPSBwYXRoX2Vycm9yKHBhdGgpOwogICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQogICAgIGlmICgobGlzdCA9IFB5TGlzdF9OZXcoMCkpID09IE5VTEwpIHsKQEAgLTM3NDcsNyArMzQ4Myw3IEBACiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihsaXN0KTsKLSAgICAgICAgICAgICAgICBsaXN0ID0gcGF0aF9lcnJvcigibGlzdGRpciIsICZwYXRoKTsKKyAgICAgICAgICAgICAgICBsaXN0ID0gcGF0aF9lcnJvcihwYXRoKTsKICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTM3ODAsMTIgKzM1MTYsMzkgQEAKICAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKICAgICB9CiAKLSAgICBwYXRoX2NsZWFudXAoJnBhdGgpOwotCiAgICAgcmV0dXJuIGxpc3Q7Cit9ICAvKiBlbmQgb2YgX3Bvc2l4X2xpc3RkaXIgKi8KKyNlbmRpZiAgLyogd2hpY2ggT1MgKi8KIAotI2VuZGlmIC8qIHdoaWNoIE9TICovCi19ICAvKiBlbmQgb2YgcG9zaXhfbGlzdGRpciAqLworc3RhdGljIFB5T2JqZWN0ICoKK3Bvc2l4X2xpc3RkaXIoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQoreworICAgIHBhdGhfdCBwYXRoOworICAgIFB5T2JqZWN0ICpsaXN0ID0gTlVMTDsKKyAgICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsicGF0aCIsIE5VTEx9OworICAgIFB5T2JqZWN0ICpyZXR1cm5fdmFsdWU7CisKKyAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgcGF0aC5mdW5jdGlvbl9uYW1lID0gImxpc3RkaXIiOworICAgIHBhdGgubnVsbGFibGUgPSAxOworI2lmZGVmIEhBVkVfRkRPUEVORElSCisgICAgcGF0aC5hbGxvd19mZCA9IDE7CisgICAgcGF0aC5mZCA9IC0xOworI2VuZGlmCisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJ8TyY6bGlzdGRpciIsIGtleXdvcmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisjaWYgZGVmaW5lZChNU19XSU5ET1dTKSAmJiAhZGVmaW5lZChIQVZFX09QRU5ESVIpCisgICAgcmV0dXJuX3ZhbHVlID0gX2xpc3RkaXJfd2luZG93c19ub19vcGVuZGlyKCZwYXRoLCBsaXN0KTsKKyNlbHNlCisgICAgcmV0dXJuX3ZhbHVlID0gX3Bvc2l4X2xpc3RkaXIoJnBhdGgsIGxpc3QpOworI2VuZGlmCisgICAgcGF0aF9jbGVhbnVwKCZwYXRoKTsKKyAgICByZXR1cm4gcmV0dXJuX3ZhbHVlOworfQogCiAjaWZkZWYgTVNfV0lORE9XUwogLyogQSBoZWxwZXIgZnVuY3Rpb24gZm9yIGFic3BhdGggb24gd2luMzIgKi8KQEAgLTM5MTEsMzEgKzM2NzQsNiBAQAogCiB9IC8qIGVuZCBvZiBwb3NpeF9fZ2V0ZmluYWxwYXRobmFtZSAqLwogCi1zdGF0aWMgUHlPYmplY3QgKgotcG9zaXhfX2dldGZpbGVpbmZvcm1hdGlvbihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgSEFORExFIGhGaWxlOwotICAgIEJZX0hBTkRMRV9GSUxFX0lORk9STUFUSU9OIGluZm87Ci0gICAgaW50IGZkOwotCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJpOl9nZXRmaWxlaW5mb3JtYXRpb24iLCAmZmQpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmICghX1B5VmVyaWZ5X2ZkKGZkKSkKLSAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7Ci0KLSAgICBoRmlsZSA9IChIQU5ETEUpX2dldF9vc2ZoYW5kbGUoZmQpOwotICAgIGlmIChoRmlsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKLSAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7Ci0KLSAgICBpZiAoIUdldEZpbGVJbmZvcm1hdGlvbkJ5SGFuZGxlKGhGaWxlLCAmaW5mbykpCi0gICAgICAgIHJldHVybiB3aW4zMl9lcnJvcigiX2dldGZpbGVpbmZvcm1hdGlvbiIsIE5VTEwpOwotCi0gICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoImlpaSIsIGluZm8uZHdWb2x1bWVTZXJpYWxOdW1iZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8ubkZpbGVJbmRleEhpZ2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8ubkZpbGVJbmRleExvdyk7Ci19Ci0KIFB5RG9jX1NUUlZBUihwb3NpeF9faXNkaXJfX2RvY19fLAogIlJldHVybiB0cnVlIGlmIHRoZSBwYXRobmFtZSByZWZlcnMgdG8gYW4gZXhpc3RpbmcgZGlyZWN0b3J5LiIpOwogCkBAIC0zOTk4LDYgKzM3MzYsNyBAQAogICAgIGludCByZXN1bHQ7CiAKICAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgcGF0aC5mdW5jdGlvbl9uYW1lID0gIm1rZGlyIjsKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPJnxpJE8mOm1rZGlyIiwga2V5d29yZHMsCiAgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwgJm1vZGUsCiAjaWZkZWYgSEFWRV9NS0RJUkFUCkBAIC00MDE3LDcgKzM3NTYsNyBAQAogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKICAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICByZXR1cm5fdmFsdWUgPSB3aW4zMl9lcnJvcl9vYmplY3QoIm1rZGlyIiwgcGF0aC5vYmplY3QpOworICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCZwYXRoKTsKICAgICAgICAgZ290byBleGl0OwogICAgIH0KICNlbHNlCkBAIC00MDM0LDcgKzM3NzMsNyBAQAogI2VuZGlmCiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKICAgICBpZiAocmVzdWx0IDwgMCkgewotICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCJta2RpciIsICZwYXRoKTsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigmcGF0aCk7CiAgICAgICAgIGdvdG8gZXhpdDsKICAgICB9CiAjZW5kaWYKQEAgLTQxNTIsNiArMzg5MSw4IEBACiAKICAgICBtZW1zZXQoJnNyYywgMCwgc2l6ZW9mKHNyYykpOwogICAgIG1lbXNldCgmZHN0LCAwLCBzaXplb2YoZHN0KSk7CisgICAgc3JjLmZ1bmN0aW9uX25hbWUgPSBmdW5jdGlvbl9uYW1lOworICAgIGRzdC5mdW5jdGlvbl9uYW1lID0gZnVuY3Rpb25fbmFtZTsKICAgICBzdHJjcHkoZm9ybWF0LCAiTyZPJnwkTyZPJjoiKTsKICAgICBzdHJjYXQoZm9ybWF0LCBmdW5jdGlvbl9uYW1lKTsKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsIGZvcm1hdCwga2V5d29yZHMsCkBAIC00MTg1LDcgKzM5MjYsNyBAQAogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKICAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICByZXR1cm5fdmFsdWUgPSB3aW4zMl9lcnJvcl9vYmplY3QoZnVuY3Rpb25fbmFtZSwgZHN0Lm9iamVjdCk7CisgICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfZXJyb3IoJnNyYyk7CiAgICAgICAgIGdvdG8gZXhpdDsKICAgICB9CiAKQEAgLTQyMDAsNyArMzk0MSw3IEBACiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKIAogICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcihmdW5jdGlvbl9uYW1lLCAmZHN0KTsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigmc3JjKTsKICAgICAgICAgZ290byBleGl0OwogICAgIH0KICNlbmRpZgpAQCAtNDI2NCw2ICs0MDA1LDcgQEAKICAgICBQeU9iamVjdCAqcmV0dXJuX3ZhbHVlID0gTlVMTDsKIAogICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBwYXRoLmZ1bmN0aW9uX25hbWUgPSAicm1kaXIiOwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgIk8mfCRPJjpybWRpciIsIGtleXdvcmRzLAogICAgICAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZwYXRoLAogI2lmZGVmIEhBVkVfVU5MSU5LQVQKQEAgLTQyOTIsNyArNDAzNCw3IEBACiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKIAogICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigicm1kaXIiLCAmcGF0aCk7CisgICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfZXJyb3IoJnBhdGgpOwogICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQogCkBAIC00NDIwLDYgKzQxNjIsNyBAQAogICAgIFB5T2JqZWN0ICpyZXR1cm5fdmFsdWUgPSBOVUxMOwogCiAgICAgbWVtc2V0KCZwYXRoLCAwLCBzaXplb2YocGF0aCkpOworICAgIHBhdGguZnVuY3Rpb25fbmFtZSA9ICJ1bmxpbmsiOwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgIk8mfCRPJjp1bmxpbmsiLCBrZXl3b3JkcywKICAgICAgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwKICNpZmRlZiBIQVZFX1VOTElOS0FUCkBAIC00NDQ4LDcgKzQxOTEsNyBAQAogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfZXJyb3IoInVubGluayIsICZwYXRoKTsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigmcGF0aCk7CiAgICAgICAgIGdvdG8gZXhpdDsKICAgICB9CiAKQEAgLTQ3NTEsNiArNDQ5NCw3IEBACiAgICAgUHlPYmplY3QgKnJldHVybl92YWx1ZSA9IE5VTEw7CiAKICAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgcGF0aC5mdW5jdGlvbl9uYW1lID0gInV0aW1lIjsKICNpZiBVVElNRV9IQVZFX0ZECiAgICAgcGF0aC5hbGxvd19mZCA9IDE7CiAjZW5kaWYKQEAgLTQ4NDUsNyArNDU4OSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMRV9GTEFHX0JBQ0tVUF9TRU1BTlRJQ1MsIE5VTEwpOwogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAgICAgaWYgKGhGaWxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKSB7Ci0gICAgICAgIHdpbjMyX2Vycm9yX29iamVjdCgidXRpbWUiLCBwYXRoLm9iamVjdCk7CisgICAgICAgIHBhdGhfZXJyb3IoJnBhdGgpOwogICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQogCkBAIC00ODU0LDcgKzQ1OTgsNyBAQAogICAgICAgICBHZXRTeXN0ZW1UaW1lKCZub3cpOwogICAgICAgICBpZiAoIVN5c3RlbVRpbWVUb0ZpbGVUaW1lKCZub3csICZtdGltZSkgfHwKICAgICAgICAgICAgICFTeXN0ZW1UaW1lVG9GaWxlVGltZSgmbm93LCAmYXRpbWUpKSB7Ci0gICAgICAgICAgICB3aW4zMl9lcnJvcigidXRpbWUiLCBOVUxMKTsKKyAgICAgICAgICAgIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKDApOwogICAgICAgICAgICAgZ290byBleGl0OwogICAgICAgICB9CiAgICAgfQpAQCAtNDg2Nyw3ICs0NjExLDcgQEAKICAgICAgICAgICAgYXMgdGhhdCBtYXkgY29uZnVzZSB0aGUgdXNlciBpbnRvIGJlbGlldmluZyB0aGF0CiAgICAgICAgICAgIHNvbWV0aGluZyBpcyB3cm9uZyB3aXRoIHRoZSBmaWxlLCB3aGVuIGl0IGFsc28KICAgICAgICAgICAgY291bGQgYmUgdGhlIHRpbWUgc3RhbXAgdGhhdCBnaXZlcyBhIHByb2JsZW0uICovCi0gICAgICAgIHdpbjMyX2Vycm9yKCJ1dGltZSIsIE5VTEwpOworICAgICAgICBQeUVycl9TZXRGcm9tV2luZG93c0VycigwKTsKICAgICAgICAgZ290byBleGl0OwogICAgIH0KICNlbHNlIC8qIE1TX1dJTkRPV1MgKi8KQEAgLTUwMDEsMTAgKzQ3NDUsNiBAQAogICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgfQogCi0jaWYgZGVmaW5lZChQWU9TX09TMikKLSAgICAgICAgLyogT21pdCBQc2V1ZG8tRW52IFZhcnMgdGhhdCBXb3VsZCBDb25mdXNlIFByb2dyYW1zIGlmIFBhc3NlZCBPbiAqLwotICAgICAgICBpZiAoc3RyaWNtcChrLCAiQkVHSU5MSUJQQVRIIikgIT0gMCAmJiBzdHJpY21wKGssICJFTkRMSUJQQVRIIikgIT0gMCkgewotI2VuZGlmCiAgICAgICAgIGsgPSBQeUJ5dGVzX0FzU3RyaW5nKGtleTIpOwogICAgICAgICB2ID0gUHlCeXRlc19Bc1N0cmluZyh2YWwyKTsKICAgICAgICAgbGVuID0gUHlCeXRlc19HRVRfU0laRShrZXkyKSArIFB5Qnl0ZXNfR0VUX1NJWkUodmFsMikgKyAyOwpAQCAtNTAyMCw5ICs0NzYwLDYgQEAKICAgICAgICAgZW52bGlzdFtlbnZjKytdID0gcDsKICAgICAgICAgUHlfREVDUkVGKGtleTIpOwogICAgICAgICBQeV9ERUNSRUYodmFsMik7Ci0jaWYgZGVmaW5lZChQWU9TX09TMikKLSAgICAgICAgfQotI2VuZGlmCiAgICAgfQogICAgIFB5X0RFQ1JFRih2YWxzKTsKICAgICBQeV9ERUNSRUYoa2V5cyk7CkBAIC01MTQ4LDYgKzQ4ODUsNyBAQAogICAgICAgIGxpa2UgcG9zaXguZW52aXJvbi4gKi8KIAogICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBwYXRoLmZ1bmN0aW9uX25hbWUgPSAiZXhlY3ZlIjsKICNpZmRlZiBIQVZFX0ZFWEVDVkUKICAgICBwYXRoLmFsbG93X2ZkID0gMTsKICNlbmRpZgpAQCAtNTE4Nyw3ICs0OTI1LDcgQEAKIAogICAgIC8qIElmIHdlIGdldCBoZXJlIGl0J3MgZGVmaW5pdGVseSBhbiBlcnJvciAqLwogCi0gICAgcGF0aF9wb3NpeF9lcnJvcigiZXhlY3ZlIiwgJnBhdGgpOworICAgIHBhdGhfZXJyb3IoJnBhdGgpOwogCiAgICAgd2hpbGUgKC0tZW52YyA+PSAwKQogICAgICAgICBQeU1lbV9ERUwoZW52bGlzdFtlbnZjXSk7CkBAIC01MjYzLDE4ICs1MDAxLDEyIEBACiAgICAgfQogICAgIGFyZ3ZsaXN0W2FyZ2NdID0gTlVMTDsKIAotI2lmIGRlZmluZWQoUFlPU19PUzIpICYmIGRlZmluZWQoUFlDQ19HQ0MpCi0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHNwYXdudmFsID0gc3Bhd252KG1vZGUsIHBhdGgsIGFyZ3ZsaXN0KTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotI2Vsc2UKICAgICBpZiAobW9kZSA9PSBfT0xEX1BfT1ZFUkxBWSkKICAgICAgICAgbW9kZSA9IF9QX09WRVJMQVk7CiAKICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCiAgICAgc3Bhd252YWwgPSBfc3Bhd252KG1vZGUsIHBhdGgsIGFyZ3ZsaXN0KTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotI2VuZGlmCiAKICAgICBmcmVlX3N0cmluZ19hcnJheShhcmd2bGlzdCwgYXJnYyk7CiAgICAgUHlfREVDUkVGKG9wYXRoKTsKQEAgLTUyODIsMTEgKzUwMTQsNyBAQAogICAgIGlmIChzcGF3bnZhbCA9PSAtMSkKICAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CiAgICAgZWxzZQotI2lmIFNJWkVPRl9MT05HID09IFNJWkVPRl9WT0lEX1AKLSAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoImwiLCAobG9uZykgc3Bhd252YWwpOwotI2Vsc2UKLSAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIkwiLCAoUFlfTE9OR19MT05HKSBzcGF3bnZhbCk7Ci0jZW5kaWYKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoX1B5X1BBUlNFX0lOVFBUUiwgc3Bhd252YWwpOwogfQogCiAKQEAgLTUzNjIsMjcgKzUwOTAsMTcgQEAKICAgICBpZiAoZW52bGlzdCA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWxfMTsKIAotI2lmIGRlZmluZWQoUFlPU19PUzIpICYmIGRlZmluZWQoUFlDQ19HQ0MpCi0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHNwYXdudmFsID0gc3Bhd252ZShtb2RlLCBwYXRoLCBhcmd2bGlzdCwgZW52bGlzdCk7Ci0gICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSNlbHNlCiAgICAgaWYgKG1vZGUgPT0gX09MRF9QX09WRVJMQVkpCiAgICAgICAgIG1vZGUgPSBfUF9PVkVSTEFZOwogCiAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwogICAgIHNwYXdudmFsID0gX3NwYXdudmUobW9kZSwgcGF0aCwgYXJndmxpc3QsIGVudmxpc3QpOwogICAgIFB5X0VORF9BTExPV19USFJFQURTCi0jZW5kaWYKIAogICAgIGlmIChzcGF3bnZhbCA9PSAtMSkKICAgICAgICAgKHZvaWQpIHBvc2l4X2Vycm9yKCk7CiAgICAgZWxzZQotI2lmIFNJWkVPRl9MT05HID09IFNJWkVPRl9WT0lEX1AKLSAgICAgICAgcmVzID0gUHlfQnVpbGRWYWx1ZSgibCIsIChsb25nKSBzcGF3bnZhbCk7Ci0jZWxzZQotICAgICAgICByZXMgPSBQeV9CdWlsZFZhbHVlKCJMIiwgKFBZX0xPTkdfTE9ORykgc3Bhd252YWwpOwotI2VuZGlmCisgICAgICAgIHJlcyA9IFB5X0J1aWxkVmFsdWUoX1B5X1BBUlNFX0lOVFBUUiwgc3Bhd252YWwpOwogCiAgICAgd2hpbGUgKC0tZW52YyA+PSAwKQogICAgICAgICBQeU1lbV9ERUwoZW52bGlzdFtlbnZjXSk7CkBAIC01Mzk0LDE4MyArNTExMiw2IEBACiAgICAgcmV0dXJuIHJlczsKIH0KIAotLyogT1MvMiBzdXBwb3J0cyBzcGF3bnZwICYgc3Bhd252cGUgbmF0aXZlbHkgKi8KLSNpZiBkZWZpbmVkKFBZT1NfT1MyKQotUHlEb2NfU1RSVkFSKHBvc2l4X3NwYXdudnBfX2RvY19fLAotInNwYXdudnAobW9kZSwgZmlsZSwgYXJncylcblxuXAotRXhlY3V0ZSB0aGUgcHJvZ3JhbSAnZmlsZScgaW4gYSBuZXcgcHJvY2VzcywgdXNpbmcgdGhlIGVudmlyb25tZW50XG5cCi1zZWFyY2ggcGF0aCB0byBmaW5kIHRoZSBmaWxlLlxuXAotXG5cCi0gICAgbW9kZTogbW9kZSBvZiBwcm9jZXNzIGNyZWF0aW9uXG5cCi0gICAgZmlsZTogZXhlY3V0YWJsZSBmaWxlIG5hbWVcblwKLSAgICBhcmdzOiB0dXBsZSBvciBsaXN0IG9mIHN0cmluZ3MiKTsKLQotc3RhdGljIFB5T2JqZWN0ICoKLXBvc2l4X3NwYXdudnAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQotewotICAgIFB5T2JqZWN0ICpvcGF0aDsKLSAgICBjaGFyICpwYXRoOwotICAgIFB5T2JqZWN0ICphcmd2OwotICAgIGNoYXIgKiphcmd2bGlzdDsKLSAgICBpbnQgbW9kZSwgaSwgYXJnYzsKLSAgICBQeV9pbnRwdHJfdCBzcGF3bnZhbDsKLSAgICBQeU9iamVjdCAqKCpnZXRpdGVtKShQeU9iamVjdCAqLCBQeV9zc2l6ZV90KTsKLQotICAgIC8qIHNwYXdudnAgaGFzIHRocmVlIGFyZ3VtZW50czogKG1vZGUsIHBhdGgsIGFyZ3YpLCB3aGVyZQotICAgICAgIGFyZ3YgaXMgYSBsaXN0IG9yIHR1cGxlIG9mIHN0cmluZ3MuICovCi0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImlPJk86c3Bhd252cCIsICZtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRlNDb252ZXJ0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZvcGF0aCwgJmFyZ3YpKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBwYXRoID0gUHlCeXRlc19Bc1N0cmluZyhvcGF0aCk7Ci0gICAgaWYgKFB5TGlzdF9DaGVjayhhcmd2KSkgewotICAgICAgICBhcmdjID0gUHlMaXN0X1NpemUoYXJndik7Ci0gICAgICAgIGdldGl0ZW0gPSBQeUxpc3RfR2V0SXRlbTsKLSAgICB9Ci0gICAgZWxzZSBpZiAoUHlUdXBsZV9DaGVjayhhcmd2KSkgewotICAgICAgICBhcmdjID0gUHlUdXBsZV9TaXplKGFyZ3YpOwotICAgICAgICBnZXRpdGVtID0gUHlUdXBsZV9HZXRJdGVtOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJzcGF3bnZwKCkgYXJnIDIgbXVzdCBiZSBhIHR1cGxlIG9yIGxpc3QiKTsKLSAgICAgICAgUHlfREVDUkVGKG9wYXRoKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgYXJndmxpc3QgPSBQeU1lbV9ORVcoY2hhciAqLCBhcmdjKzEpOwotICAgIGlmIChhcmd2bGlzdCA9PSBOVUxMKSB7Ci0gICAgICAgIFB5X0RFQ1JFRihvcGF0aCk7Ci0gICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOwotICAgIH0KLSAgICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgaSsrKSB7Ci0gICAgICAgIGlmICghZnNjb252ZXJ0X3N0cmR1cCgoKmdldGl0ZW0pKGFyZ3YsIGkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFyZ3ZsaXN0W2ldKSkgewotICAgICAgICAgICAgZnJlZV9zdHJpbmdfYXJyYXkoYXJndmxpc3QsIGkpOwotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKAotICAgICAgICAgICAgICAgIFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAic3Bhd252cCgpIGFyZyAyIG11c3QgY29udGFpbiBvbmx5IHN0cmluZ3MiKTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihvcGF0aCk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgIH0KLSAgICBhcmd2bGlzdFthcmdjXSA9IE5VTEw7Ci0KLSAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0jaWYgZGVmaW5lZChQWUNDX0dDQykKLSAgICBzcGF3bnZhbCA9IHNwYXdudnAobW9kZSwgcGF0aCwgYXJndmxpc3QpOwotI2Vsc2UKLSAgICBzcGF3bnZhbCA9IF9zcGF3bnZwKG1vZGUsIHBhdGgsIGFyZ3ZsaXN0KTsKLSNlbmRpZgotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0KLSAgICBmcmVlX3N0cmluZ19hcnJheShhcmd2bGlzdCwgYXJnYyk7Ci0gICAgUHlfREVDUkVGKG9wYXRoKTsKLQotICAgIGlmIChzcGF3bnZhbCA9PSAtMSkKLSAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgibCIsIChsb25nKSBzcGF3bnZhbCk7Ci19Ci0KLQotUHlEb2NfU1RSVkFSKHBvc2l4X3NwYXdudnBlX19kb2NfXywKLSJzcGF3bnZwZShtb2RlLCBmaWxlLCBhcmdzLCBlbnYpXG5cblwKLUV4ZWN1dGUgdGhlIHByb2dyYW0gJ2ZpbGUnIGluIGEgbmV3IHByb2Nlc3MsIHVzaW5nIHRoZSBlbnZpcm9ubWVudFxuXAotc2VhcmNoIHBhdGggdG8gZmluZCB0aGUgZmlsZS5cblwKLVxuXAotICAgIG1vZGU6IG1vZGUgb2YgcHJvY2VzcyBjcmVhdGlvblxuXAotICAgIGZpbGU6IGV4ZWN1dGFibGUgZmlsZSBuYW1lXG5cCi0gICAgYXJnczogdHVwbGUgb3IgbGlzdCBvZiBhcmd1bWVudHNcblwKLSAgICBlbnY6IGRpY3Rpb25hcnkgb2Ygc3RyaW5ncyBtYXBwaW5nIHRvIHN0cmluZ3MiKTsKLQotc3RhdGljIFB5T2JqZWN0ICoKLXBvc2l4X3NwYXdudnBlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBQeU9iamVjdCAqb3BhdGg7Ci0gICAgY2hhciAqcGF0aDsKLSAgICBQeU9iamVjdCAqYXJndiwgKmVudjsKLSAgICBjaGFyICoqYXJndmxpc3Q7Ci0gICAgY2hhciAqKmVudmxpc3Q7Ci0gICAgUHlPYmplY3QgKnJlcz1OVUxMOwotICAgIGludCBtb2RlOwotICAgIFB5X3NzaXplX3QgYXJnYywgaSwgZW52YzsKLSAgICBQeV9pbnRwdHJfdCBzcGF3bnZhbDsKLSAgICBQeU9iamVjdCAqKCpnZXRpdGVtKShQeU9iamVjdCAqLCBQeV9zc2l6ZV90KTsKLSAgICBpbnQgbGFzdGFyZyA9IDA7Ci0KLSAgICAvKiBzcGF3bnZwZSBoYXMgZm91ciBhcmd1bWVudHM6IChtb2RlLCBwYXRoLCBhcmd2LCBlbnYpLCB3aGVyZQotICAgICAgIGFyZ3YgaXMgYSBsaXN0IG9yIHR1cGxlIG9mIHN0cmluZ3MgYW5kIGVudiBpcyBhIGRpY3Rpb25hcnkKLSAgICAgICBsaWtlIHBvc2l4LmVudmlyb24uICovCi0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImlldE9POnNwYXdudnBlIiwgJm1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wYXRoLCAmYXJndiwgJmVudikpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIHBhdGggPSBQeUJ5dGVzX0FzU3RyaW5nKG9wYXRoKTsKLSAgICBpZiAoUHlMaXN0X0NoZWNrKGFyZ3YpKSB7Ci0gICAgICAgIGFyZ2MgPSBQeUxpc3RfU2l6ZShhcmd2KTsKLSAgICAgICAgZ2V0aXRlbSA9IFB5TGlzdF9HZXRJdGVtOwotICAgIH0KLSAgICBlbHNlIGlmIChQeVR1cGxlX0NoZWNrKGFyZ3YpKSB7Ci0gICAgICAgIGFyZ2MgPSBQeVR1cGxlX1NpemUoYXJndik7Ci0gICAgICAgIGdldGl0ZW0gPSBQeVR1cGxlX0dldEl0ZW07Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgInNwYXdudnBlKCkgYXJnIDIgbXVzdCBiZSBhIHR1cGxlIG9yIGxpc3QiKTsKLSAgICAgICAgZ290byBmYWlsXzA7Ci0gICAgfQotICAgIGlmICghUHlNYXBwaW5nX0NoZWNrKGVudikpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJzcGF3bnZwZSgpIGFyZyAzIG11c3QgYmUgYSBtYXBwaW5nIG9iamVjdCIpOwotICAgICAgICBnb3RvIGZhaWxfMDsKLSAgICB9Ci0KLSAgICBhcmd2bGlzdCA9IFB5TWVtX05FVyhjaGFyICosIGFyZ2MrMSk7Ci0gICAgaWYgKGFyZ3ZsaXN0ID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKLSAgICAgICAgZ290byBmYWlsXzA7Ci0gICAgfQotICAgIGZvciAoaSA9IDA7IGkgPCBhcmdjOyBpKyspIHsKLSAgICAgICAgaWYgKCFmc2NvbnZlcnRfc3RyZHVwKCgqZ2V0aXRlbSkoYXJndiwgaSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXJndmxpc3RbaV0pKQotICAgICAgICB7Ci0gICAgICAgICAgICBsYXN0YXJnID0gaTsKLSAgICAgICAgICAgIGdvdG8gZmFpbF8xOwotICAgICAgICB9Ci0gICAgfQotICAgIGxhc3RhcmcgPSBhcmdjOwotICAgIGFyZ3ZsaXN0W2FyZ2NdID0gTlVMTDsKLQotICAgIGVudmxpc3QgPSBwYXJzZV9lbnZsaXN0KGVudiwgJmVudmMpOwotICAgIGlmIChlbnZsaXN0ID09IE5VTEwpCi0gICAgICAgIGdvdG8gZmFpbF8xOwotCi0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotI2lmIGRlZmluZWQoUFlDQ19HQ0MpCi0gICAgc3Bhd252YWwgPSBzcGF3bnZwZShtb2RlLCBwYXRoLCBhcmd2bGlzdCwgZW52bGlzdCk7Ci0jZWxzZQotICAgIHNwYXdudmFsID0gX3NwYXdudnBlKG1vZGUsIHBhdGgsIGFyZ3ZsaXN0LCBlbnZsaXN0KTsKLSNlbmRpZgotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0KLSAgICBpZiAoc3Bhd252YWwgPT0gLTEpCi0gICAgICAgICh2b2lkKSBwb3NpeF9lcnJvcigpOwotICAgIGVsc2UKLSAgICAgICAgcmVzID0gUHlfQnVpbGRWYWx1ZSgibCIsIChsb25nKSBzcGF3bnZhbCk7Ci0KLSAgICB3aGlsZSAoLS1lbnZjID49IDApCi0gICAgICAgIFB5TWVtX0RFTChlbnZsaXN0W2VudmNdKTsKLSAgICBQeU1lbV9ERUwoZW52bGlzdCk7Ci0gIGZhaWxfMToKLSAgICBmcmVlX3N0cmluZ19hcnJheShhcmd2bGlzdCwgbGFzdGFyZyk7Ci0gIGZhaWxfMDoKLSAgICBQeV9ERUNSRUYob3BhdGgpOwotICAgIHJldHVybiByZXM7Ci19Ci0jZW5kaWYgLyogUFlPU19PUzIgKi8KICNlbmRpZiAvKiBIQVZFX1NQQVdOViAqLwogCiAKQEAgLTY1OTAsMjMgKzYxMzEsOCBAQAogICAgIGludCBzaWc7CiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIF9QeV9QQVJTRV9QSUQgImk6a2lsbCIsICZwaWQsICZzaWcpKQogICAgICAgICByZXR1cm4gTlVMTDsKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiAhZGVmaW5lZChQWUNDX0dDQykKLSAgICBpZiAoc2lnID09IFhDUFRfU0lHTkFMX0lOVFIgfHwgc2lnID09IFhDUFRfU0lHTkFMX0JSRUFLKSB7Ci0gICAgICAgIEFQSVJFVCByYzsKLSAgICAgICAgaWYgKChyYyA9IERvc1NlbmRTaWduYWxFeGNlcHRpb24ocGlkLCBzaWcpKSAhPSBOT19FUlJPUikKLSAgICAgICAgICAgIHJldHVybiBvczJfZXJyb3IocmMpOwotCi0gICAgfSBlbHNlIGlmIChzaWcgPT0gWENQVF9TSUdOQUxfS0lMTFBST0MpIHsKLSAgICAgICAgQVBJUkVUIHJjOwotICAgICAgICBpZiAoKHJjID0gRG9zS2lsbFByb2Nlc3MoREtQX1BST0NFU1MsIHBpZCkpICE9IE5PX0VSUk9SKQotICAgICAgICAgICAgcmV0dXJuIG9zMl9lcnJvcihyYyk7Ci0KLSAgICB9IGVsc2UKLSAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFVucmVjb2duaXplZCBTaWduYWwgUmVxdWVzdGVkICovCi0jZWxzZQogICAgIGlmIChraWxsKHBpZCwgc2lnKSA9PSAtMSkKICAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7Ci0jZW5kaWYKICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CiAgICAgcmV0dXJuIFB5X05vbmU7CiB9CkBAIC02NjQ0LDE2ICs2MTcwLDE3IEBACiB3aW4zMl9raWxsKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKICAgICBQeU9iamVjdCAqcmVzdWx0OwotICAgIERXT1JEIHBpZCwgc2lnLCBlcnI7CisgICAgcGlkX3QgcGlkOworICAgIERXT1JEIHNpZywgZXJyOwogICAgIEhBTkRMRSBoYW5kbGU7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImtrOmtpbGwiLCAmcGlkLCAmc2lnKSkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgX1B5X1BBUlNFX1BJRCAiazpraWxsIiwgJnBpZCwgJnNpZykpCiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgLyogQ29uc29sZSBwcm9jZXNzZXMgd2hpY2ggc2hhcmUgYSBjb21tb24gY29uc29sZSBjYW4gYmUgc2VudCBDVFJMK0Mgb3IKICAgICAgICBDVFJMK0JSRUFLIGV2ZW50cywgcHJvdmlkZWQgdGhleSBoYW5kbGUgc2FpZCBldmVudHMuICovCiAgICAgaWYgKHNpZyA9PSBDVFJMX0NfRVZFTlQgfHwgc2lnID09IENUUkxfQlJFQUtfRVZFTlQpIHsKLSAgICAgICAgaWYgKEdlbmVyYXRlQ29uc29sZUN0cmxFdmVudChzaWcsIHBpZCkgPT0gMCkgeworICAgICAgICBpZiAoR2VuZXJhdGVDb25zb2xlQ3RybEV2ZW50KHNpZywgKERXT1JEKXBpZCkgPT0gMCkgewogICAgICAgICAgICAgZXJyID0gR2V0TGFzdEVycm9yKCk7CiAgICAgICAgICAgICBQeUVycl9TZXRGcm9tV2luZG93c0VycihlcnIpOwogICAgICAgICB9CkBAIC02NjYzLDcgKzYxOTAsNyBAQAogCiAgICAgLyogSWYgdGhlIHNpZ25hbCBpcyBvdXRzaWRlIG9mIHdoYXQgR2VuZXJhdGVDb25zb2xlQ3RybEV2ZW50IGNhbiB1c2UsCiAgICAgICAgYXR0ZW1wdCB0byBvcGVuIGFuZCB0ZXJtaW5hdGUgdGhlIHByb2Nlc3MuICovCi0gICAgaGFuZGxlID0gT3BlblByb2Nlc3MoUFJPQ0VTU19BTExfQUNDRVNTLCBGQUxTRSwgcGlkKTsKKyAgICBoYW5kbGUgPSBPcGVuUHJvY2VzcyhQUk9DRVNTX0FMTF9BQ0NFU1MsIEZBTFNFLCAoRFdPUkQpcGlkKTsKICAgICBpZiAoaGFuZGxlID09IE5VTEwpIHsKICAgICAgICAgZXJyID0gR2V0TGFzdEVycm9yKCk7CiAgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycihlcnIpOwpAQCAtNzA2OSw3ICs2NTk2LDcgQEAKICAgICBQeV9pbnRwdHJfdCBwaWQ7CiAgICAgaW50IHN0YXR1cywgb3B0aW9uczsKIAotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBfUHlfUEFSU0VfUElEICJpOndhaXRwaWQiLCAmcGlkLCAmb3B0aW9ucykpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIF9QeV9QQVJTRV9JTlRQVFIgImk6d2FpdHBpZCIsICZwaWQsICZvcHRpb25zKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwogICAgIHBpZCA9IF9jd2FpdCgmc3RhdHVzLCBwaWQsIG9wdGlvbnMpOwpAQCAtNzA3OCw3ICs2NjA1LDcgQEAKICAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CiAKICAgICAvKiBzaGlmdCB0aGUgc3RhdHVzIGxlZnQgYSBieXRlIHNvIHRoaXMgaXMgbW9yZSBsaWtlIHRoZSBQT1NJWCB3YWl0cGlkICovCi0gICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk5pIiwgUHlMb25nX0Zyb21QaWQocGlkKSwgc3RhdHVzIDw8IDgpOworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKF9QeV9QQVJTRV9JTlRQVFIgImkiLCBwaWQsIHN0YXR1cyA8PCA4KTsKIH0KICNlbmRpZiAvKiBIQVZFX1dBSVRQSUQgfHwgSEFWRV9DV0FJVCAqLwogCkBAIC03MTI5LDYgKzY2NTYsNyBAQAogICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJwYXRoIiwgImRpcl9mZCIsIE5VTEx9OwogCiAgICAgbWVtc2V0KCZwYXRoLCAwLCBzaXplb2YocGF0aCkpOworICAgIHBhdGguZnVuY3Rpb25fbmFtZSA9ICJyZWFkbGluayI7CiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiTyZ8JE8mOnJlYWRsaW5rIiwga2V5d29yZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwKICNpZmRlZiBIQVZFX1JFQURMSU5LQVQKQEAgLTcxNDksNyArNjY3Nyw3IEBACiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKIAogICAgIGlmIChsZW5ndGggPCAwKSB7Ci0gICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfcG9zaXhfZXJyb3IoInJlYWRsaW5rIiwgJnBhdGgpOworICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCZwYXRoKTsKICAgICAgICAgZ290byBleGl0OwogICAgIH0KIApAQCAtNzE4NSw4ICs2NzEzLDkgQEAKIC8qIEdyYWIgQ3JlYXRlU3ltYm9saWNMaW5rVyBkeW5hbWljYWxseSBmcm9tIGtlcm5lbDMyICovCiBzdGF0aWMgRFdPUkQgKENBTExCQUNLICpQeV9DcmVhdGVTeW1ib2xpY0xpbmtXKShMUFdTVFIsIExQV1NUUiwgRFdPUkQpID0gTlVMTDsKIHN0YXRpYyBEV09SRCAoQ0FMTEJBQ0sgKlB5X0NyZWF0ZVN5bWJvbGljTGlua0EpKExQU1RSLCBMUFNUUiwgRFdPUkQpID0gTlVMTDsKKwogc3RhdGljIGludAotY2hlY2tfQ3JlYXRlU3ltYm9saWNMaW5rKCkKK2NoZWNrX0NyZWF0ZVN5bWJvbGljTGluayh2b2lkKQogewogICAgIEhJTlNUQU5DRSBoS2VybmVsMzI7CiAgICAgLyogb25seSByZWNoZWNrICovCkBAIC03MjAwLDU1ICs2NzI5LDU3IEBACiAgICAgcmV0dXJuIChQeV9DcmVhdGVTeW1ib2xpY0xpbmtXICYmIFB5X0NyZWF0ZVN5bWJvbGljTGlua0EpOwogfQogCi12b2lkIF9kaXJuYW1lVyhXQ0hBUiAqcGF0aCkgewotICAgIC8qIFJlbW92ZSB0aGUgbGFzdCBwb3J0aW9uIG9mIHRoZSBwYXRoICovCi0KKy8qIFJlbW92ZSB0aGUgbGFzdCBwb3J0aW9uIG9mIHRoZSBwYXRoICovCitzdGF0aWMgdm9pZAorX2Rpcm5hbWVXKFdDSEFSICpwYXRoKQorewogICAgIFdDSEFSICpwdHI7CiAKICAgICAvKiB3YWxrIHRoZSBwYXRoIGZyb20gdGhlIGVuZCB1bnRpbCBhIGJhY2tzbGFzaCBpcyBlbmNvdW50ZXJlZCAqLwotICAgIGZvcihwdHIgPSBwYXRoICsgd2NzbGVuKHBhdGgpOyBwdHIgIT0gcGF0aDsgcHRyLS0pCi0gICAgewotICAgICAgICBpZigqcHRyID09ICpMIlxcIiB8fCAqcHRyID09ICpMIi8iKSB7CisgICAgZm9yKHB0ciA9IHBhdGggKyB3Y3NsZW4ocGF0aCk7IHB0ciAhPSBwYXRoOyBwdHItLSkgeworICAgICAgICBpZiAoKnB0ciA9PSBMJ1xcJyB8fCAqcHRyID09IEwnLycpCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgIH0KICAgICAqcHRyID0gMDsKIH0KIAotdm9pZCBfZGlybmFtZUEoY2hhciAqcGF0aCkgewotICAgIC8qIFJlbW92ZSB0aGUgbGFzdCBwb3J0aW9uIG9mIHRoZSBwYXRoICovCi0KKy8qIFJlbW92ZSB0aGUgbGFzdCBwb3J0aW9uIG9mIHRoZSBwYXRoICovCitzdGF0aWMgdm9pZAorX2Rpcm5hbWVBKGNoYXIgKnBhdGgpCit7CiAgICAgY2hhciAqcHRyOwogCiAgICAgLyogd2FsayB0aGUgcGF0aCBmcm9tIHRoZSBlbmQgdW50aWwgYSBiYWNrc2xhc2ggaXMgZW5jb3VudGVyZWQgKi8KLSAgICBmb3IocHRyID0gcGF0aCArIHN0cmxlbihwYXRoKTsgcHRyICE9IHBhdGg7IHB0ci0tKQotICAgIHsKLSAgICAgICAgaWYoKnB0ciA9PSAnXFwnIHx8ICpwdHIgPT0gJy8nKSB7CisgICAgZm9yKHB0ciA9IHBhdGggKyBzdHJsZW4ocGF0aCk7IHB0ciAhPSBwYXRoOyBwdHItLSkgeworICAgICAgICBpZiAoKnB0ciA9PSAnXFwnIHx8ICpwdHIgPT0gJy8nKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KICAgICB9CiAgICAgKnB0ciA9IDA7CiB9CiAKLWludCBfaXNfYWJzVyhXQ0hBUiAqcGF0aCkgewotICAgIC8qIElzIHRoaXMgcGF0aCBhYnNvbHV0ZT8gKi8KLQorLyogSXMgdGhpcyBwYXRoIGFic29sdXRlPyAqLworc3RhdGljIGludAorX2lzX2Fic1coY29uc3QgV0NIQVIgKnBhdGgpCit7CiAgICAgcmV0dXJuIHBhdGhbMF0gPT0gTCdcXCcgfHwgcGF0aFswXSA9PSBMJy8nIHx8IHBhdGhbMV0gPT0gTCc6JzsKIAogfQogCi1pbnQgX2lzX2Fic0EoY2hhciAqcGF0aCkgewotICAgIC8qIElzIHRoaXMgcGF0aCBhYnNvbHV0ZT8gKi8KLQorLyogSXMgdGhpcyBwYXRoIGFic29sdXRlPyAqLworc3RhdGljIGludAorX2lzX2Fic0EoY29uc3QgY2hhciAqcGF0aCkKK3sKICAgICByZXR1cm4gcGF0aFswXSA9PSAnXFwnIHx8IHBhdGhbMF0gPT0gJy8nIHx8IHBhdGhbMV0gPT0gJzonOwogCiB9CiAKLXZvaWQgX2pvaW5XKFdDSEFSICpkZXN0X3BhdGgsIGNvbnN0IFdDSEFSICpyb290LCBjb25zdCBXQ0hBUiAqcmVzdCkgewotICAgIC8qIGpvaW4gcm9vdCBhbmQgcmVzdCB3aXRoIGEgYmFja3NsYXNoICovCi0gICAgaW50IHJvb3RfbGVuOworLyogam9pbiByb290IGFuZCByZXN0IHdpdGggYSBiYWNrc2xhc2ggKi8KK3N0YXRpYyB2b2lkCitfam9pblcoV0NIQVIgKmRlc3RfcGF0aCwgY29uc3QgV0NIQVIgKnJvb3QsIGNvbnN0IFdDSEFSICpyZXN0KQoreworICAgIHNpemVfdCByb290X2xlbjsKIAotICAgIGlmKF9pc19hYnNXKHJlc3QpKSB7CisgICAgaWYgKF9pc19hYnNXKHJlc3QpKSB7CiAgICAgICAgIHdjc2NweShkZXN0X3BhdGgsIHJlc3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNzI1NywxNyArNjc4OCwxOSBAQAogCiAgICAgd2NzY3B5KGRlc3RfcGF0aCwgcm9vdCk7CiAgICAgaWYocm9vdF9sZW4pIHsKLSAgICAgICAgZGVzdF9wYXRoW3Jvb3RfbGVuXSA9ICpMIlxcIjsKLSAgICAgICAgcm9vdF9sZW4gKz0gMTsKKyAgICAgICAgZGVzdF9wYXRoW3Jvb3RfbGVuXSA9IEwnXFwnOworICAgICAgICByb290X2xlbisrOwogICAgIH0KICAgICB3Y3NjcHkoZGVzdF9wYXRoK3Jvb3RfbGVuLCByZXN0KTsKIH0KIAotdm9pZCBfam9pbkEoY2hhciAqZGVzdF9wYXRoLCBjb25zdCBjaGFyICpyb290LCBjb25zdCBjaGFyICpyZXN0KSB7Ci0gICAgLyogam9pbiByb290IGFuZCByZXN0IHdpdGggYSBiYWNrc2xhc2ggKi8KLSAgICBpbnQgcm9vdF9sZW47CisvKiBqb2luIHJvb3QgYW5kIHJlc3Qgd2l0aCBhIGJhY2tzbGFzaCAqLworc3RhdGljIHZvaWQKK19qb2luQShjaGFyICpkZXN0X3BhdGgsIGNvbnN0IGNoYXIgKnJvb3QsIGNvbnN0IGNoYXIgKnJlc3QpCit7CisgICAgc2l6ZV90IHJvb3RfbGVuOwogCi0gICAgaWYoX2lzX2Fic0EocmVzdCkpIHsKKyAgICBpZiAoX2lzX2Fic0EocmVzdCkpIHsKICAgICAgICAgc3RyY3B5KGRlc3RfcGF0aCwgcmVzdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC03Mjc3LDE0ICs2ODEwLDE1IEBACiAgICAgc3RyY3B5KGRlc3RfcGF0aCwgcm9vdCk7CiAgICAgaWYocm9vdF9sZW4pIHsKICAgICAgICAgZGVzdF9wYXRoW3Jvb3RfbGVuXSA9ICdcXCc7Ci0gICAgICAgIHJvb3RfbGVuICs9IDE7CisgICAgICAgIHJvb3RfbGVuKys7CiAgICAgfQogICAgIHN0cmNweShkZXN0X3BhdGgrcm9vdF9sZW4sIHJlc3QpOwogfQogCi1pbnQgX2NoZWNrX2RpclcoV0NIQVIgKnNyYywgV0NIQVIgKmRlc3QpCisvKiBSZXR1cm4gVHJ1ZSBpZiB0aGUgcGF0aCBhdCBzcmMgcmVsYXRpdmUgdG8gZGVzdCBpcyBhIGRpcmVjdG9yeSAqLworc3RhdGljIGludAorX2NoZWNrX2RpclcoV0NIQVIgKnNyYywgV0NIQVIgKmRlc3QpCiB7Ci0gICAgLyogUmV0dXJuIFRydWUgaWYgdGhlIHBhdGggYXQgc3JjIHJlbGF0aXZlIHRvIGRlc3QgaXMgYSBkaXJlY3RvcnkgKi8KICAgICBXSU4zMl9GSUxFX0FUVFJJQlVURV9EQVRBIHNyY19pbmZvOwogICAgIFdDSEFSIGRlc3RfcGFyZW50W01BWF9QQVRIXTsKICAgICBXQ0hBUiBzcmNfcmVzb2x2ZWRbTUFYX1BBVEhdID0gTCIiOwpAQCAtNzMwMCwxOCArNjgzNCwxOSBAQAogICAgICk7CiB9CiAKLWludCBfY2hlY2tfZGlyQShjaGFyICpzcmMsIGNoYXIgKmRlc3QpCisvKiBSZXR1cm4gVHJ1ZSBpZiB0aGUgcGF0aCBhdCBzcmMgcmVsYXRpdmUgdG8gZGVzdCBpcyBhIGRpcmVjdG9yeSAqLworc3RhdGljIGludAorX2NoZWNrX2RpckEoY2hhciAqc3JjLCBjaGFyICpkZXN0KQogewotICAgIC8qIFJldHVybiBUcnVlIGlmIHRoZSBwYXRoIGF0IHNyYyByZWxhdGl2ZSB0byBkZXN0IGlzIGEgZGlyZWN0b3J5ICovCiAgICAgV0lOMzJfRklMRV9BVFRSSUJVVEVfREFUQSBzcmNfaW5mbzsKICAgICBjaGFyIGRlc3RfcGFyZW50W01BWF9QQVRIXTsKICAgICBjaGFyIHNyY19yZXNvbHZlZFtNQVhfUEFUSF0gPSAiIjsKIAogICAgIC8qIGRlc3RfcGFyZW50ID0gb3MucGF0aC5kaXJuYW1lKGRlc3QpICovCiAgICAgc3RyY3B5KGRlc3RfcGFyZW50LCBkZXN0KTsKLSAgICBfZGlybmFtZVcoZGVzdF9wYXJlbnQpOworICAgIF9kaXJuYW1lQShkZXN0X3BhcmVudCk7CiAgICAgLyogc3JjX3Jlc29sdmVkID0gb3MucGF0aC5qb2luKGRlc3RfcGFyZW50LCBzcmMpICovCi0gICAgX2pvaW5XKHNyY19yZXNvbHZlZCwgZGVzdF9wYXJlbnQsIHNyYyk7CisgICAgX2pvaW5BKHNyY19yZXNvbHZlZCwgZGVzdF9wYXJlbnQsIHNyYyk7CiAgICAgcmV0dXJuICgKICAgICAgICAgR2V0RmlsZUF0dHJpYnV0ZXNFeEEoc3JjX3Jlc29sdmVkLCBHZXRGaWxlRXhJbmZvU3RhbmRhcmQsICZzcmNfaW5mbykKICAgICAgICAgJiYgc3JjX2luZm8uZHdGaWxlQXR0cmlidXRlcyAmIEZJTEVfQVRUUklCVVRFX0RJUkVDVE9SWQpAQCAtNzMzNyw4ICs2ODcyLDEwIEBACiAjZW5kaWYKIAogICAgIG1lbXNldCgmc3JjLCAwLCBzaXplb2Yoc3JjKSk7CisgICAgc3JjLmZ1bmN0aW9uX25hbWUgPSAic3ltbGluayI7CiAgICAgc3JjLmFyZ3VtZW50X25hbWUgPSAic3JjIjsKICAgICBtZW1zZXQoJmRzdCwgMCwgc2l6ZW9mKGRzdCkpOworICAgIGRzdC5mdW5jdGlvbl9uYW1lID0gInN5bWxpbmsiOwogICAgIGRzdC5hcmd1bWVudF9uYW1lID0gImRzdCI7CiAKICNpZmRlZiBNU19XSU5ET1dTCkBAIC03MzkxLDcgKzY5MjgsNyBAQAogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKICAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICByZXR1cm5fdmFsdWUgPSB3aW4zMl9lcnJvcl9vYmplY3QoInN5bWxpbmsiLCBzcmMub2JqZWN0KTsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigmc3JjKTsKICAgICAgICAgZ290byBleGl0OwogICAgIH0KIApAQCAtNzQwNyw3ICs2OTQ0LDcgQEAKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogCiAgICAgaWYgKHJlc3VsdCkgewotICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCJzeW1saW5rIiwgJmRzdCk7CisgICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfZXJyb3IoJnNyYyk7CiAgICAgICAgIGdvdG8gZXhpdDsKICAgICB9CiAjZW5kaWYKQEAgLTc1NjksMzEgKzcxMDYsNyBAQAogdGltZXMuICBUaGUgb2JqZWN0IGJlaGF2ZXMgbGlrZSBhIG5hbWVkIHR1cGxlIHdpdGggdGhlc2UgZmllbGRzOlxuXAogICAodXRpbWUsIHN0aW1lLCBjdXRpbWUsIGNzdGltZSwgZWxhcHNlZF90aW1lKSIpOwogCi0jaWYgZGVmaW5lZChQWUNDX1ZBQ1BQKSAmJiBkZWZpbmVkKFBZT1NfT1MyKQotc3RhdGljIGxvbmcKLXN5c3RlbV91cHRpbWUodm9pZCkKLXsKLSAgICBVTE9ORyAgICAgdmFsdWUgPSAwOwotCi0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIERvc1F1ZXJ5U3lzSW5mbyhRU1ZfTVNfQ09VTlQsIFFTVl9NU19DT1VOVCwgJnZhbHVlLCBzaXplb2YodmFsdWUpKTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotCi0gICAgcmV0dXJuIHZhbHVlOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotcG9zaXhfdGltZXMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpub2FyZ3MpCi17Ci0gICAgLyogQ3VycmVudGx5IE9ubHkgVXB0aW1lIGlzIFByb3ZpZGVkIC0tIE90aGVycyBMYXRlciAqLwotICAgIHJldHVybiBidWlsZF90aW1lc19yZXN1bHQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgKGRvdWJsZSkwIC8qIHQudG1zX3V0aW1lIC8gSFogKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgKGRvdWJsZSkwIC8qIHQudG1zX3N0aW1lIC8gSFogKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgKGRvdWJsZSkwIC8qIHQudG1zX2N1dGltZSAvIEhaICovLAotICAgICAgICAgICAgICAgICAgICAgICAgIChkb3VibGUpMCAvKiB0LnRtc19jc3RpbWUgLyBIWiAqLywKLSAgICAgICAgICAgICAgICAgICAgICAgICAoZG91YmxlKXN5c3RlbV91cHRpbWUoKSAvIDEwMDApOwotfQotI2VsaWYgZGVmaW5lZChNU19XSU5ET1dTKQorI2lmIGRlZmluZWQoTVNfV0lORE9XUykKIHN0YXRpYyBQeU9iamVjdCAqCiBwb3NpeF90aW1lcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm5vYXJncykKIHsKQEAgLTc2MTUsNyArNzEyOCw3IEBACiAgICAgICAgIChkb3VibGUpMCwKICAgICAgICAgKGRvdWJsZSkwKTsKIH0KLSNlbHNlIC8qIE5laXRoZXIgV2luZG93cyBub3IgT1MvMiAqLworI2Vsc2UgLyogTm90IFdpbmRvd3MgKi8KICNkZWZpbmUgTkVFRF9USUNLU19QRVJfU0VDT05ECiBzdGF0aWMgbG9uZyB0aWNrc19wZXJfc2Vjb25kID0gLTE7CiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtNzc1Niw2ICs3MjY5LDcgQEAKICAgICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsicGF0aCIsICJmbGFncyIsICJtb2RlIiwgImRpcl9mZCIsIE5VTEx9OwogCiAgICAgbWVtc2V0KCZwYXRoLCAwLCBzaXplb2YocGF0aCkpOworICAgIHBhdGguZnVuY3Rpb25fbmFtZSA9ICJvcGVuIjsKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPJml8aSRPJjpvcGVuIiwga2V5d29yZHMsCiAgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwKICAgICAgICAgJmZsYWdzLCAmbW9kZSwKQEAgLTc3ODIsMTMgKzcyOTYsNyBAQAogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKICAgICBpZiAoZmQgPT0gLTEpIHsKLSNpZmRlZiBNU19XSU5ET1dTCi0gICAgICAgIC8qIGZvcmNlIHVzZSBvZiBwb3NpeF9lcnJvciBoZXJlIGZvciBleGFjdCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAqLwotICAgICAgICBpZiAocGF0aC53aWRlKQotICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gcG9zaXhfZXJyb3IoKTsKLSAgICAgICAgZWxzZQotI2VuZGlmCi0gICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfZXJyb3IoIm9wZW4iLCAmcGF0aCk7CisgICAgICAgIFB5RXJyX1NldEZyb21FcnJub1dpdGhGaWxlbmFtZU9iamVjdChQeUV4Y19PU0Vycm9yLCBwYXRoLm9iamVjdCk7CiAgICAgICAgIGdvdG8gZXhpdDsKICAgICB9CiAKQEAgLTgzMjYsNyArNzgzNCw3IEBACiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKICAgICBpZiAocmVzICE9IDApIHsKICNpZmRlZiBNU19XSU5ET1dTCi0gICAgICAgIHJldHVybiB3aW4zMl9lcnJvcigiZnN0YXQiLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKDApOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CiAjZW5kaWYKQEAgLTgzNTksMTYgKzc4NjcsNiBAQAogc3RhdGljIFB5T2JqZWN0ICoKIHBvc2l4X3BpcGUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpub2FyZ3MpCiB7Ci0jaWYgZGVmaW5lZChQWU9TX09TMikKLSAgICBIRklMRSByZWFkLCB3cml0ZTsKLSAgICBBUElSRVQgcmM7Ci0KLSAgICByYyA9IERvc0NyZWF0ZVBpcGUoICZyZWFkLCAmd3JpdGUsIDQwOTYpOwotICAgIGlmIChyYyAhPSBOT19FUlJPUikKLSAgICAgICAgcmV0dXJuIG9zMl9lcnJvcihyYyk7Ci0KLSAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiKGlpKSIsIHJlYWQsIHdyaXRlKTsKLSNlbHNlCiAjaWYgIWRlZmluZWQoTVNfV0lORE9XUykKICAgICBpbnQgZmRzWzJdOwogICAgIGludCByZXM7CkBAIC04MzgyLDEyICs3ODgwLDExIEBACiAgICAgQk9PTCBvazsKICAgICBvayA9IENyZWF0ZVBpcGUoJnJlYWQsICZ3cml0ZSwgTlVMTCwgMCk7CiAgICAgaWYgKCFvaykKLSAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yKCJDcmVhdGVQaXBlIiwgTlVMTCk7CisgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycigwKTsKICAgICByZWFkX2ZkID0gX29wZW5fb3NmaGFuZGxlKChQeV9pbnRwdHJfdClyZWFkLCAwKTsKICAgICB3cml0ZV9mZCA9IF9vcGVuX29zZmhhbmRsZSgoUHlfaW50cHRyX3Qpd3JpdGUsIDEpOwogICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoaWkpIiwgcmVhZF9mZCwgd3JpdGVfZmQpOwogI2VuZGlmIC8qIE1TX1dJTkRPV1MgKi8KLSNlbmRpZgogfQogI2VuZGlmICAvKiBIQVZFX1BJUEUgKi8KIApAQCAtODY4Niw2ICs4MTgzLDcgQEAKICAgICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsicGF0aCIsICJsZW5ndGgiLCBOVUxMfTsKIAogICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBwYXRoLmZ1bmN0aW9uX25hbWUgPSAidHJ1bmNhdGUiOwogI2lmZGVmIEhBVkVfRlRSVU5DQVRFCiAgICAgcGF0aC5hbGxvd19mZCA9IDE7CiAjZW5kaWYKQEAgLTg3MDMsNyArODIwMSw3IEBACiAgICAgICAgIHJlcyA9IHRydW5jYXRlKHBhdGgubmFycm93LCBsZW5ndGgpOwogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAgICAgaWYgKHJlcyA8IDApCi0gICAgICAgIHJlc3VsdCA9IHBhdGhfcG9zaXhfZXJyb3IoInRydW5jYXRlIiwgJnBhdGgpOworICAgICAgICByZXN1bHQgPSBwYXRoX2Vycm9yKCZwYXRoKTsKICAgICBlbHNlIHsKICAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOwogICAgICAgICByZXN1bHQgPSBQeV9Ob25lOwpAQCAtOTE3NSw2ICs4NjczLDcgQEAKICAgICBzdHJ1Y3Qgc3RhdHZmcyBzdDsKIAogICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBwYXRoLmZ1bmN0aW9uX25hbWUgPSAic3RhdHZmcyI7CiAjaWZkZWYgSEFWRV9GU1RBVFZGUwogICAgIHBhdGguYWxsb3dfZmQgPSAxOwogI2VuZGlmCkBAIC05MjAxLDcgKzg3MDAsNyBAQAogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfcG9zaXhfZXJyb3IoInN0YXR2ZnMiLCAmcGF0aCk7CisgICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfZXJyb3IoJnBhdGgpOwogICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQogCkBAIC05NDM4LDYgKzg5MzcsNyBAQAogICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJwYXRoIiwgIm5hbWUiLCBOVUxMfTsKIAogICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBwYXRoLmZ1bmN0aW9uX25hbWUgPSAicGF0aGNvbmYiOwogI2lmZGVmIEhBVkVfRlBBVEhDT05GCiAgICAgcGF0aC5hbGxvd19mZCA9IDE7CiAjZW5kaWYKQEAgLTk0NTgsNyArODk1OCw3IEBACiAgICAgICAgICAgICAvKiBjb3VsZCBiZSBhIHBhdGggb3IgbmFtZSBwcm9ibGVtICovCiAgICAgICAgICAgICBwb3NpeF9lcnJvcigpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgPSBwYXRoX3Bvc2l4X2Vycm9yKCJwYXRoY29uZiIsICZwYXRoKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IHBhdGhfZXJyb3IoJnBhdGgpOwogICAgIH0KICAgICBlbHNlCiAgICAgICAgIHJlc3VsdCA9IFB5TG9uZ19Gcm9tTG9uZyhsaW1pdCk7CkBAIC0xMDE4Nyw3ICs5Njg3LDcgQEAKICAgICBpbnQgbmFtZTsKIAogICAgIGlmIChQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPJjpzeXNjb25mIiwgY29udl9zeXNjb25mX2NvbmZuYW1lLCAmbmFtZSkpIHsKLSAgICAgICAgaW50IHZhbHVlOworICAgICAgICBsb25nIHZhbHVlOwogCiAgICAgICAgIGVycm5vID0gMDsKICAgICAgICAgdmFsdWUgPSBzeXNjb25mKG5hbWUpOwpAQCAtMTA1MTcsNiArMTAwMTcsOCBAQAogCiAgICAgbWVtc2V0KCZwYXRoLCAwLCBzaXplb2YocGF0aCkpOwogICAgIG1lbXNldCgmYXR0cmlidXRlLCAwLCBzaXplb2YoYXR0cmlidXRlKSk7CisgICAgcGF0aC5mdW5jdGlvbl9uYW1lID0gImdldHhhdHRyIjsKKyAgICBhdHRyaWJ1dGUuZnVuY3Rpb25fbmFtZSA9ICJnZXR4YXR0ciI7CiAgICAgcGF0aC5hbGxvd19mZCA9IDE7CiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiTyZPJnwkcDpnZXR4YXR0ciIsIGtleXdvcmRzLAogICAgICAgICBwYXRoX2NvbnZlcnRlciwgJnBhdGgsCkBAIC0xMDUzMyw3ICsxMDAzNSw3IEBACiAgICAgICAgIHN0YXRpYyBQeV9zc2l6ZV90IGJ1ZmZlcl9zaXplc1tdID0gezEyOCwgWEFUVFJfU0laRV9NQVgsIDB9OwogICAgICAgICBQeV9zc2l6ZV90IGJ1ZmZlcl9zaXplID0gYnVmZmVyX3NpemVzW2ldOwogICAgICAgICBpZiAoIWJ1ZmZlcl9zaXplKSB7Ci0gICAgICAgICAgICBwYXRoX2Vycm9yKCJnZXR4YXR0ciIsICZwYXRoKTsKKyAgICAgICAgICAgIHBhdGhfZXJyb3IoJnBhdGgpOwogICAgICAgICAgICAgZ290byBleGl0OwogICAgICAgICB9CiAgICAgICAgIGJ1ZmZlciA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgYnVmZmVyX3NpemUpOwpAQCAtMTA1NTUsNyArMTAwNTcsNyBAQAogICAgICAgICAgICAgYnVmZmVyID0gTlVMTDsKICAgICAgICAgICAgIGlmIChlcnJubyA9PSBFUkFOR0UpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBwYXRoX2Vycm9yKCJnZXR4YXR0ciIsICZwYXRoKTsKKyAgICAgICAgICAgIHBhdGhfZXJyb3IoJnBhdGgpOwogICAgICAgICAgICAgZ290byBleGl0OwogICAgICAgICB9CiAKQEAgLTEwNTk0LDYgKzEwMDk2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmxhZ3MiLCAiZm9sbG93X3N5bWxpbmtzIiwgTlVMTH07CiAKICAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgcGF0aC5mdW5jdGlvbl9uYW1lID0gInNldHhhdHRyIjsKICAgICBwYXRoLmFsbG93X2ZkID0gMTsKICAgICBtZW1zZXQoJmF0dHJpYnV0ZSwgMCwgc2l6ZW9mKGF0dHJpYnV0ZSkpOwogICAgIG1lbXNldCgmdmFsdWUsIDAsIHNpemVvZih2YWx1ZSkpOwpAQCAtMTA2MjEsNyArMTAxMjQsNyBAQAogICAgIFB5X0VORF9BTExPV19USFJFQURTOwogCiAgICAgaWYgKHJlc3VsdCkgewotICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCJzZXR4YXR0ciIsICZwYXRoKTsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigmcGF0aCk7CiAgICAgICAgIGdvdG8gZXhpdDsKICAgICB9CiAKQEAgLTEwNjU1LDcgKzEwMTU4LDkgQEAKICAgICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsicGF0aCIsICJhdHRyaWJ1dGUiLCAiZm9sbG93X3N5bWxpbmtzIiwgTlVMTH07CiAKICAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgcGF0aC5mdW5jdGlvbl9uYW1lID0gInJlbW92ZXhhdHRyIjsKICAgICBtZW1zZXQoJmF0dHJpYnV0ZSwgMCwgc2l6ZW9mKGF0dHJpYnV0ZSkpOworICAgIGF0dHJpYnV0ZS5mdW5jdGlvbl9uYW1lID0gInJlbW92ZXhhdHRyIjsKICAgICBwYXRoLmFsbG93X2ZkID0gMTsKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPJk8mfCRwOnJlbW92ZXhhdHRyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3JkcywKQEAgLTEwNjc3LDcgKzEwMTgyLDcgQEAKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUzsKIAogICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigicmVtb3ZleGF0dHIiLCAmcGF0aCk7CisgICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfZXJyb3IoJnBhdGgpOwogICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQogCkBAIC0xMDcxMyw2ICsxMDIxOCw3IEBACiAgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InBhdGgiLCAiZm9sbG93X3N5bWxpbmtzIiwgTlVMTH07CiAKICAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgcGF0aC5mdW5jdGlvbl9uYW1lID0gImxpc3R4YXR0ciI7CiAgICAgcGF0aC5hbGxvd19mZCA9IDE7CiAgICAgcGF0aC5mZCA9IC0xOwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgInxPJiRwOmxpc3R4YXR0ciIsIGtleXdvcmRzLApAQCAtMTA3MzEsNyArMTAyMzcsNyBAQAogICAgICAgICBQeV9zc2l6ZV90IGJ1ZmZlcl9zaXplID0gYnVmZmVyX3NpemVzW2ldOwogICAgICAgICBpZiAoIWJ1ZmZlcl9zaXplKSB7CiAgICAgICAgICAgICAvKiBFUkFOR0UgKi8KLSAgICAgICAgICAgIHBhdGhfZXJyb3IoImxpc3R4YXR0ciIsICZwYXRoKTsKKyAgICAgICAgICAgIHBhdGhfZXJyb3IoJnBhdGgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgYnVmZmVyID0gUHlNZW1fTUFMTE9DKGJ1ZmZlcl9zaXplKTsKQEAgLTEwNzU1LDcgKzEwMjYxLDcgQEAKICAgICAgICAgICAgICAgICBidWZmZXIgPSBOVUxMOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcGF0aF9lcnJvcigibGlzdHhhdHRyIiwgJnBhdGgpOworICAgICAgICAgICAgcGF0aF9lcnJvcigmcGF0aCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0xMDkzMyw2ICsxMDQzOSw0MSBAQAogfQogI2VuZGlmIC8qIGRlZmluZWQoVEVSTVNJWkVfVVNFX0NPTklPKSB8fCBkZWZpbmVkKFRFUk1TSVpFX1VTRV9JT0NUTCkgKi8KIAorUHlEb2NfU1RSVkFSKHBvc2l4X2NwdV9jb3VudF9fZG9jX18sCisiY3B1X2NvdW50KCkgLT4gaW50ZWdlclxuXG5cCitSZXR1cm4gdGhlIG51bWJlciBvZiBDUFVzIGluIHRoZSBzeXN0ZW0sIG9yIE5vbmUgaWYgdGhpcyB2YWx1ZSBjYW5ub3QgYmVcblwKK2VzdGFibGlzaGVkLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfY3B1X2NvdW50KFB5T2JqZWN0ICpzZWxmKQoreworICAgIGludCBuY3B1ID0gMDsKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgU1lTVEVNX0lORk8gc3lzaW5mbzsKKyAgICBHZXRTeXN0ZW1JbmZvKCZzeXNpbmZvKTsKKyAgICBuY3B1ID0gc3lzaW5mby5kd051bWJlck9mUHJvY2Vzc29yczsKKyNlbGlmIGRlZmluZWQoX19ocHV4KQorICAgIG5jcHUgPSBtcGN0bChNUENfR0VUTlVNU1BVUywgTlVMTCwgTlVMTCk7CisjZWxpZiBkZWZpbmVkKEhBVkVfU1lTQ09ORikgJiYgZGVmaW5lZChfU0NfTlBST0NFU1NPUlNfT05MTikKKyAgICBuY3B1ID0gc3lzY29uZihfU0NfTlBST0NFU1NPUlNfT05MTik7CisjZWxpZiBkZWZpbmVkKF9fRHJhZ29uRmx5X18pIHx8IFwKKyAgICAgIGRlZmluZWQoX19PcGVuQlNEX18pICAgfHwgXAorICAgICAgZGVmaW5lZChfX0ZyZWVCU0RfXykgICB8fCBcCisgICAgICBkZWZpbmVkKF9fTmV0QlNEX18pICAgIHx8IFwKKyAgICAgIGRlZmluZWQoX19BUFBMRV9fKQorICAgIGludCBtaWJbMl07CisgICAgc2l6ZV90IGxlbiA9IHNpemVvZihuY3B1KTsKKyAgICBtaWJbMF0gPSBDVExfSFc7CisgICAgbWliWzFdID0gSFdfTkNQVTsKKyAgICBpZiAoc3lzY3RsKG1pYiwgMiwgJm5jcHUsICZsZW4sIE5VTEwsIDApICE9IDApCisgICAgICAgIG5jcHUgPSAwOworI2VuZGlmCisgICAgaWYgKG5jcHUgPj0gMSkKKyAgICAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZyhuY3B1KTsKKyAgICBlbHNlCisgICAgICAgIFB5X1JFVFVSTl9OT05FOworfQorCiAKIHN0YXRpYyBQeU1ldGhvZERlZiBwb3NpeF9tZXRob2RzW10gPSB7CiAgICAgeyJhY2Nlc3MiLCAgICAgICAgICAoUHlDRnVuY3Rpb24pcG9zaXhfYWNjZXNzLApAQCAtMTEwNjMsMTAgKzEwNjA0LDYgQEAKICNpZmRlZiBIQVZFX1NQQVdOVgogICAgIHsic3Bhd252IiwgICAgICAgICAgcG9zaXhfc3Bhd252LCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3NwYXdudl9fZG9jX199LAogICAgIHsic3Bhd252ZSIsICAgICAgICAgcG9zaXhfc3Bhd252ZSwgTUVUSF9WQVJBUkdTLCBwb3NpeF9zcGF3bnZlX19kb2NfX30sCi0jaWYgZGVmaW5lZChQWU9TX09TMikKLSAgICB7InNwYXdudnAiLCAgICAgICAgIHBvc2l4X3NwYXdudnAsIE1FVEhfVkFSQVJHUywgcG9zaXhfc3Bhd252cF9fZG9jX199LAotICAgIHsic3Bhd252cGUiLCAgICAgICAgcG9zaXhfc3Bhd252cGUsIE1FVEhfVkFSQVJHUywgcG9zaXhfc3Bhd252cGVfX2RvY19ffSwKLSNlbmRpZiAvKiBQWU9TX09TMiAqLwogI2VuZGlmIC8qIEhBVkVfU1BBV05WICovCiAjaWZkZWYgSEFWRV9GT1JLMQogICAgIHsiZm9yazEiLCAgICAgICBwb3NpeF9mb3JrMSwgTUVUSF9OT0FSR1MsIHBvc2l4X2ZvcmsxX19kb2NfX30sCkBAIC0xMTM0NSw3ICsxMDg4Miw2IEBACiAjaWZkZWYgTVNfV0lORE9XUwogICAgIHsiX2dldGZ1bGxwYXRobmFtZSIsICAgICAgICBwb3NpeF9fZ2V0ZnVsbHBhdGhuYW1lLCBNRVRIX1ZBUkFSR1MsIE5VTEx9LAogICAgIHsiX2dldGZpbmFscGF0aG5hbWUiLCAgICAgICBwb3NpeF9fZ2V0ZmluYWxwYXRobmFtZSwgTUVUSF9WQVJBUkdTLCBOVUxMfSwKLSAgICB7Il9nZXRmaWxlaW5mb3JtYXRpb24iLCAgICAgcG9zaXhfX2dldGZpbGVpbmZvcm1hdGlvbiwgTUVUSF9WQVJBUkdTLCBOVUxMfSwKICAgICB7Il9pc2RpciIsICAgICAgICAgICAgICAgICAgcG9zaXhfX2lzZGlyLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X19pc2Rpcl9fZG9jX199LAogICAgIHsiX2dldGRpc2t1c2FnZSIsICAgICAgICAgICB3aW4zMl9fZ2V0ZGlza3VzYWdlLCBNRVRIX1ZBUkFSR1MsIHdpbjMyX19nZXRkaXNrdXNhZ2VfX2RvY19ffSwKICNlbmRpZgpAQCAtMTEzODMsNjkgKzEwOTE5LDEyIEBACiAjaWYgZGVmaW5lZChURVJNU0laRV9VU0VfQ09OSU8pIHx8IGRlZmluZWQoVEVSTVNJWkVfVVNFX0lPQ1RMKQogICAgIHsiZ2V0X3Rlcm1pbmFsX3NpemUiLCBnZXRfdGVybWluYWxfc2l6ZSwgTUVUSF9WQVJBUkdTLCB0ZXJtc2l6ZV9fZG9jX199LAogI2VuZGlmCisgICAgeyJjcHVfY291bnQiLCAoUHlDRnVuY3Rpb24pcG9zaXhfY3B1X2NvdW50LAorICAgICAgICAgICAgICAgICAgTUVUSF9OT0FSR1MsIHBvc2l4X2NwdV9jb3VudF9fZG9jX199LAogICAgIHtOVUxMLCAgICAgICAgICAgICAgTlVMTH0gICAgICAgICAgICAvKiBTZW50aW5lbCAqLwogfTsKIAogCi1zdGF0aWMgaW50Ci1pbnMoUHlPYmplY3QgKm1vZHVsZSwgY2hhciAqc3ltYm9sLCBsb25nIHZhbHVlKQotewotICAgIHJldHVybiBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtb2R1bGUsIHN5bWJvbCwgdmFsdWUpOwotfQotCi0jaWYgZGVmaW5lZChQWU9TX09TMikKLS8qIEluc2VydCBQbGF0Zm9ybS1TcGVjaWZpYyBDb25zdGFudCBWYWx1ZXMgKFN0cmluZ3MgJiBOdW1iZXJzKSBvZiBDb21tb24gVXNlICovCi1zdGF0aWMgaW50IGluc2VydHZhbHVlcyhQeU9iamVjdCAqbW9kdWxlKQotewotICAgIEFQSVJFVCAgICByYzsKLSAgICBVTE9ORyAgICAgdmFsdWVzW1FTVl9NQVgrMV07Ci0gICAgUHlPYmplY3QgKnY7Ci0gICAgY2hhciAgICAgKnZlciwgdG1wWzUwXTsKLQotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByYyA9IERvc1F1ZXJ5U3lzSW5mbygxTCwgUVNWX01BWCwgJnZhbHVlc1sxXSwgc2l6ZW9mKFVMT05HKSAqIFFTVl9NQVgpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0KLSAgICBpZiAocmMgIT0gTk9fRVJST1IpIHsKLSAgICAgICAgb3MyX2Vycm9yKHJjKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIGlmIChpbnMobW9kdWxlLCAibWVtaW5zdGFsbGVkIiwgdmFsdWVzW1FTVl9UT1RQSFlTTUVNXSkpIHJldHVybiAtMTsKLSAgICBpZiAoaW5zKG1vZHVsZSwgIm1lbWtlcm5lbCIsICAgIHZhbHVlc1tRU1ZfVE9UUkVTTUVNXSkpIHJldHVybiAtMTsKLSAgICBpZiAoaW5zKG1vZHVsZSwgIm1lbXZpcnR1YWwiLCAgIHZhbHVlc1tRU1ZfVE9UQVZBSUxNRU1dKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMobW9kdWxlLCAibWF4cGF0aGxlbiIsICAgdmFsdWVzW1FTVl9NQVhfUEFUSF9MRU5HVEhdKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMobW9kdWxlLCAibWF4bmFtZWxlbiIsICAgdmFsdWVzW1FTVl9NQVhfQ09NUF9MRU5HVEhdKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMobW9kdWxlLCAicmV2aXNpb24iLCAgICAgdmFsdWVzW1FTVl9WRVJTSU9OX1JFVklTSU9OXSkpIHJldHVybiAtMTsKLSAgICBpZiAoaW5zKG1vZHVsZSwgInRpbWVzbGljZSIsICAgIHZhbHVlc1tRU1ZfTUlOX1NMSUNFXSkpIHJldHVybiAtMTsKLQotICAgIHN3aXRjaCAodmFsdWVzW1FTVl9WRVJTSU9OX01JTk9SXSkgewotICAgIGNhc2UgMDogIHZlciA9ICIyLjAwIjsgYnJlYWs7Ci0gICAgY2FzZSAxMDogdmVyID0gIjIuMTAiOyBicmVhazsKLSAgICBjYXNlIDExOiB2ZXIgPSAiMi4xMSI7IGJyZWFrOwotICAgIGNhc2UgMzA6IHZlciA9ICIzLjAwIjsgYnJlYWs7Ci0gICAgY2FzZSA0MDogdmVyID0gIjQuMDAiOyBicmVhazsKLSAgICBjYXNlIDUwOiB2ZXIgPSAiNS4wMCI7IGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFB5T1Nfc25wcmludGYodG1wLCBzaXplb2YodG1wKSwKLSAgICAgICAgICAgICAgICAgICAgICAiJWQtJWQiLCB2YWx1ZXNbUVNWX1ZFUlNJT05fTUFKT1JdLAotICAgICAgICAgICAgICAgICAgICAgIHZhbHVlc1tRU1ZfVkVSU0lPTl9NSU5PUl0pOwotICAgICAgICB2ZXIgPSAmdG1wWzBdOwotICAgIH0KLQotICAgIC8qIEFkZCBJbmRpY2F0b3Igb2YgdGhlIFZlcnNpb24gb2YgdGhlIE9wZXJhdGluZyBTeXN0ZW0gKi8KLSAgICBpZiAoUHlNb2R1bGVfQWRkU3RyaW5nQ29uc3RhbnQobW9kdWxlLCAidmVyc2lvbiIsIHRtcCkgPCAwKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICAvKiBBZGQgSW5kaWNhdG9yIG9mIFdoaWNoIERyaXZlIHdhcyBVc2VkIHRvIEJvb3QgdGhlIFN5c3RlbSAqLwotICAgIHRtcFswXSA9ICdBJyArIHZhbHVlc1tRU1ZfQk9PVF9EUklWRV0gLSAxOwotICAgIHRtcFsxXSA9ICc6JzsKLSAgICB0bXBbMl0gPSAnXDAnOwotCi0gICAgcmV0dXJuIFB5TW9kdWxlX0FkZFN0cmluZ0NvbnN0YW50KG1vZHVsZSwgImJvb3Rkcml2ZSIsIHRtcCk7Ci19Ci0jZW5kaWYKLQogI2lmIGRlZmluZWQoSEFWRV9TWU1MSU5LKSAmJiBkZWZpbmVkKE1TX1dJTkRPV1MpCiBzdGF0aWMgaW50CiBlbmFibGVfc3ltbGluaygpCkBAIC0xMTQ3Niw0MDEgKzEwOTU1LDM3OCBAQAogI2VuZGlmIC8qIGRlZmluZWQoSEFWRV9TWU1MSU5LKSAmJiBkZWZpbmVkKE1TX1dJTkRPV1MpICovCiAKIHN0YXRpYyBpbnQKLWFsbF9pbnMoUHlPYmplY3QgKmQpCithbGxfaW5zKFB5T2JqZWN0ICptKQogewogI2lmZGVmIEZfT0sKLSAgICBpZiAoaW5zKGQsICJGX09LIiwgKGxvbmcpRl9PSykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRl9PSykpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFJfT0sKLSAgICBpZiAoaW5zKGQsICJSX09LIiwgKGxvbmcpUl9PSykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUl9PSykpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFdfT0sKLSAgICBpZiAoaW5zKGQsICJXX09LIiwgKGxvbmcpV19PSykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgV19PSykpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFhfT0sKLSAgICBpZiAoaW5zKGQsICJYX09LIiwgKGxvbmcpWF9PSykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgWF9PSykpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIE5HUk9VUFNfTUFYCi0gICAgaWYgKGlucyhkLCAiTkdST1VQU19NQVgiLCAobG9uZylOR1JPVVBTX01BWCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTkdST1VQU19NQVgpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBUTVBfTUFYCi0gICAgaWYgKGlucyhkLCAiVE1QX01BWCIsIChsb25nKVRNUF9NQVgpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFRNUF9NQVgpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBXQ09OVElOVUVECi0gICAgaWYgKGlucyhkLCAiV0NPTlRJTlVFRCIsIChsb25nKVdDT05USU5VRUQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFdDT05USU5VRUQpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBXTk9IQU5HCi0gICAgaWYgKGlucyhkLCAiV05PSEFORyIsIChsb25nKVdOT0hBTkcpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFdOT0hBTkcpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBXVU5UUkFDRUQKLSAgICBpZiAoaW5zKGQsICJXVU5UUkFDRUQiLCAobG9uZylXVU5UUkFDRUQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFdVTlRSQUNFRCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIE9fUkRPTkxZCi0gICAgaWYgKGlucyhkLCAiT19SRE9OTFkiLCAobG9uZylPX1JET05MWSkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT19SRE9OTFkpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBPX1dST05MWQotICAgIGlmIChpbnMoZCwgIk9fV1JPTkxZIiwgKGxvbmcpT19XUk9OTFkpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE9fV1JPTkxZKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19SRFdSCi0gICAgaWYgKGlucyhkLCAiT19SRFdSIiwgKGxvbmcpT19SRFdSKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX1JEV1IpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBPX05ERUxBWQotICAgIGlmIChpbnMoZCwgIk9fTkRFTEFZIiwgKGxvbmcpT19OREVMQVkpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE9fTkRFTEFZKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19OT05CTE9DSwotICAgIGlmIChpbnMoZCwgIk9fTk9OQkxPQ0siLCAobG9uZylPX05PTkJMT0NLKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX05PTkJMT0NLKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19BUFBFTkQKLSAgICBpZiAoaW5zKGQsICJPX0FQUEVORCIsIChsb25nKU9fQVBQRU5EKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX0FQUEVORCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIE9fRFNZTkMKLSAgICBpZiAoaW5zKGQsICJPX0RTWU5DIiwgKGxvbmcpT19EU1lOQykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT19EU1lOQykpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIE9fUlNZTkMKLSAgICBpZiAoaW5zKGQsICJPX1JTWU5DIiwgKGxvbmcpT19SU1lOQykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT19SU1lOQykpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIE9fU1lOQwotICAgIGlmIChpbnMoZCwgIk9fU1lOQyIsIChsb25nKU9fU1lOQykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT19TWU5DKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19OT0NUVFkKLSAgICBpZiAoaW5zKGQsICJPX05PQ1RUWSIsIChsb25nKU9fTk9DVFRZKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX05PQ1RUWSkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIE9fQ1JFQVQKLSAgICBpZiAoaW5zKGQsICJPX0NSRUFUIiwgKGxvbmcpT19DUkVBVCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT19DUkVBVCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIE9fRVhDTAotICAgIGlmIChpbnMoZCwgIk9fRVhDTCIsIChsb25nKU9fRVhDTCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT19FWENMKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19UUlVOQwotICAgIGlmIChpbnMoZCwgIk9fVFJVTkMiLCAobG9uZylPX1RSVU5DKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX1RSVU5DKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19CSU5BUlkKLSAgICBpZiAoaW5zKGQsICJPX0JJTkFSWSIsIChsb25nKU9fQklOQVJZKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX0JJTkFSWSkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIE9fVEVYVAotICAgIGlmIChpbnMoZCwgIk9fVEVYVCIsIChsb25nKU9fVEVYVCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT19URVhUKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19YQVRUUgotICAgIGlmIChpbnMoZCwgIk9fWEFUVFIiLCAobG9uZylPX1hBVFRSKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX1hBVFRSKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19MQVJHRUZJTEUKLSAgICBpZiAoaW5zKGQsICJPX0xBUkdFRklMRSIsIChsb25nKU9fTEFSR0VGSUxFKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX0xBUkdFRklMRSkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIE9fU0hMT0NLCi0gICAgaWYgKGlucyhkLCAiT19TSExPQ0siLCAobG9uZylPX1NITE9DSykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT19TSExPQ0spKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBPX0VYTE9DSwotICAgIGlmIChpbnMoZCwgIk9fRVhMT0NLIiwgKGxvbmcpT19FWExPQ0spKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE9fRVhMT0NLKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19FWEVDCi0gICAgaWYgKGlucyhkLCAiT19FWEVDIiwgKGxvbmcpT19FWEVDKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX0VYRUMpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBPX1NFQVJDSAotICAgIGlmIChpbnMoZCwgIk9fU0VBUkNIIiwgKGxvbmcpT19TRUFSQ0gpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE9fU0VBUkNIKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgT19QQVRICisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE9fUEFUSCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIE9fVFRZX0lOSVQKLSAgICBpZiAoaW5zKGQsICJPX1RUWV9JTklUIiwgKGxvbmcpT19UVFlfSU5JVCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT19UVFlfSU5JVCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFBSSU9fUFJPQ0VTUwotICAgIGlmIChpbnMoZCwgIlBSSU9fUFJPQ0VTUyIsIChsb25nKVBSSU9fUFJPQ0VTUykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUFJJT19QUk9DRVNTKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgUFJJT19QR1JQCi0gICAgaWYgKGlucyhkLCAiUFJJT19QR1JQIiwgKGxvbmcpUFJJT19QR1JQKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQUklPX1BHUlApKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBQUklPX1VTRVIKLSAgICBpZiAoaW5zKGQsICJQUklPX1VTRVIiLCAobG9uZylQUklPX1VTRVIpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBSSU9fVVNFUikpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIE9fQ0xPRVhFQwotICAgIGlmIChpbnMoZCwgIk9fQ0xPRVhFQyIsIChsb25nKU9fQ0xPRVhFQykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT19DTE9FWEVDKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19BQ0NNT0RFCi0gICAgaWYgKGlucyhkLCAiT19BQ0NNT0RFIiwgKGxvbmcpT19BQ0NNT0RFKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX0FDQ01PREUpKSByZXR1cm4gLTE7CiAjZW5kaWYKIAogCiAjaWZkZWYgU0VFS19IT0xFCi0gICAgaWYgKGlucyhkLCAiU0VFS19IT0xFIiwgKGxvbmcpU0VFS19IT0xFKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTRUVLX0hPTEUpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBTRUVLX0RBVEEKLSAgICBpZiAoaW5zKGQsICJTRUVLX0RBVEEiLCAobG9uZylTRUVLX0RBVEEpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNFRUtfREFUQSkpIHJldHVybiAtMTsKICNlbmRpZgogCiAvKiBNUyBXaW5kb3dzICovCiAjaWZkZWYgT19OT0lOSEVSSVQKICAgICAvKiBEb24ndCBpbmhlcml0IGluIGNoaWxkIHByb2Nlc3Nlcy4gKi8KLSAgICBpZiAoaW5zKGQsICJPX05PSU5IRVJJVCIsIChsb25nKU9fTk9JTkhFUklUKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX05PSU5IRVJJVCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIF9PX1NIT1JUX0xJVkVECiAgICAgLyogT3B0aW1pemUgZm9yIHNob3J0IGxpZmUgKGtlZXAgaW4gbWVtb3J5KS4gKi8KICAgICAvKiBNUyBmb3Jnb3QgdG8gZGVmaW5lIHRoaXMgb25lIHdpdGggYSBub24tdW5kZXJzY29yZSBmb3JtIHRvby4gKi8KLSAgICBpZiAoaW5zKGQsICJPX1NIT1JUX0xJVkVEIiwgKGxvbmcpX09fU0hPUlRfTElWRUQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJPX1NIT1JUX0xJVkVEIiwgX09fU0hPUlRfTElWRUQpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBPX1RFTVBPUkFSWQogICAgIC8qIEF1dG9tYXRpY2FsbHkgZGVsZXRlIHdoZW4gbGFzdCBoYW5kbGUgaXMgY2xvc2VkLiAqLwotICAgIGlmIChpbnMoZCwgIk9fVEVNUE9SQVJZIiwgKGxvbmcpT19URU1QT1JBUlkpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE9fVEVNUE9SQVJZKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19SQU5ET00KICAgICAvKiBPcHRpbWl6ZSBmb3IgcmFuZG9tIGFjY2Vzcy4gKi8KLSAgICBpZiAoaW5zKGQsICJPX1JBTkRPTSIsIChsb25nKU9fUkFORE9NKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX1JBTkRPTSkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIE9fU0VRVUVOVElBTAogICAgIC8qIE9wdGltaXplIGZvciBzZXF1ZW50aWFsIGFjY2Vzcy4gKi8KLSAgICBpZiAoaW5zKGQsICJPX1NFUVVFTlRJQUwiLCAobG9uZylPX1NFUVVFTlRJQUwpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE9fU0VRVUVOVElBTCkpIHJldHVybiAtMTsKICNlbmRpZgogCiAvKiBHTlUgZXh0ZW5zaW9ucy4gKi8KICNpZmRlZiBPX0FTWU5DCiAgICAgLyogU2VuZCBhIFNJR0lPIHNpZ25hbCB3aGVuZXZlciBpbnB1dCBvciBvdXRwdXQKICAgICAgICBiZWNvbWVzIGF2YWlsYWJsZSBvbiBmaWxlIGRlc2NyaXB0b3IgKi8KLSAgICBpZiAoaW5zKGQsICJPX0FTWU5DIiwgKGxvbmcpT19BU1lOQykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT19BU1lOQykpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIE9fRElSRUNUCiAgICAgLyogRGlyZWN0IGRpc2sgYWNjZXNzLiAqLwotICAgIGlmIChpbnMoZCwgIk9fRElSRUNUIiwgKGxvbmcpT19ESVJFQ1QpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE9fRElSRUNUKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19ESVJFQ1RPUlkKICAgICAvKiBNdXN0IGJlIGEgZGlyZWN0b3J5LiAgICAgICovCi0gICAgaWYgKGlucyhkLCAiT19ESVJFQ1RPUlkiLCAobG9uZylPX0RJUkVDVE9SWSkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT19ESVJFQ1RPUlkpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBPX05PRk9MTE9XCiAgICAgLyogRG8gbm90IGZvbGxvdyBsaW5rcy4gICAgICAqLwotICAgIGlmIChpbnMoZCwgIk9fTk9GT0xMT1ciLCAobG9uZylPX05PRk9MTE9XKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX05PRk9MTE9XKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19OT0xJTktTCiAgICAgLyogRmFpbHMgaWYgbGluayBjb3VudCBvZiB0aGUgbmFtZWQgZmlsZSBpcyBncmVhdGVyIHRoYW4gMSAqLwotICAgIGlmIChpbnMoZCwgIk9fTk9MSU5LUyIsIChsb25nKU9fTk9MSU5LUykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT19OT0xJTktTKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgT19OT0FUSU1FCiAgICAgLyogRG8gbm90IHVwZGF0ZSB0aGUgYWNjZXNzIHRpbWUuICovCi0gICAgaWYgKGlucyhkLCAiT19OT0FUSU1FIiwgKGxvbmcpT19OT0FUSU1FKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBPX05PQVRJTUUpKSByZXR1cm4gLTE7CiAjZW5kaWYKIAogICAgIC8qIFRoZXNlIGNvbWUgZnJvbSBzeXNleGl0cy5oICovCiAjaWZkZWYgRVhfT0sKLSAgICBpZiAoaW5zKGQsICJFWF9PSyIsIChsb25nKUVYX09LKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFWF9PSykpIHJldHVybiAtMTsKICNlbmRpZiAvKiBFWF9PSyAqLwogI2lmZGVmIEVYX1VTQUdFCi0gICAgaWYgKGlucyhkLCAiRVhfVVNBR0UiLCAobG9uZylFWF9VU0FHRSkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRVhfVVNBR0UpKSByZXR1cm4gLTE7CiAjZW5kaWYgLyogRVhfVVNBR0UgKi8KICNpZmRlZiBFWF9EQVRBRVJSCi0gICAgaWYgKGlucyhkLCAiRVhfREFUQUVSUiIsIChsb25nKUVYX0RBVEFFUlIpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEVYX0RBVEFFUlIpKSByZXR1cm4gLTE7CiAjZW5kaWYgLyogRVhfREFUQUVSUiAqLwogI2lmZGVmIEVYX05PSU5QVVQKLSAgICBpZiAoaW5zKGQsICJFWF9OT0lOUFVUIiwgKGxvbmcpRVhfTk9JTlBVVCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRVhfTk9JTlBVVCkpIHJldHVybiAtMTsKICNlbmRpZiAvKiBFWF9OT0lOUFVUICovCiAjaWZkZWYgRVhfTk9VU0VSCi0gICAgaWYgKGlucyhkLCAiRVhfTk9VU0VSIiwgKGxvbmcpRVhfTk9VU0VSKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFWF9OT1VTRVIpKSByZXR1cm4gLTE7CiAjZW5kaWYgLyogRVhfTk9VU0VSICovCiAjaWZkZWYgRVhfTk9IT1NUCi0gICAgaWYgKGlucyhkLCAiRVhfTk9IT1NUIiwgKGxvbmcpRVhfTk9IT1NUKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFWF9OT0hPU1QpKSByZXR1cm4gLTE7CiAjZW5kaWYgLyogRVhfTk9IT1NUICovCiAjaWZkZWYgRVhfVU5BVkFJTEFCTEUKLSAgICBpZiAoaW5zKGQsICJFWF9VTkFWQUlMQUJMRSIsIChsb25nKUVYX1VOQVZBSUxBQkxFKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFWF9VTkFWQUlMQUJMRSkpIHJldHVybiAtMTsKICNlbmRpZiAvKiBFWF9VTkFWQUlMQUJMRSAqLwogI2lmZGVmIEVYX1NPRlRXQVJFCi0gICAgaWYgKGlucyhkLCAiRVhfU09GVFdBUkUiLCAobG9uZylFWF9TT0ZUV0FSRSkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRVhfU09GVFdBUkUpKSByZXR1cm4gLTE7CiAjZW5kaWYgLyogRVhfU09GVFdBUkUgKi8KICNpZmRlZiBFWF9PU0VSUgotICAgIGlmIChpbnMoZCwgIkVYX09TRVJSIiwgKGxvbmcpRVhfT1NFUlIpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEVYX09TRVJSKSkgcmV0dXJuIC0xOwogI2VuZGlmIC8qIEVYX09TRVJSICovCiAjaWZkZWYgRVhfT1NGSUxFCi0gICAgaWYgKGlucyhkLCAiRVhfT1NGSUxFIiwgKGxvbmcpRVhfT1NGSUxFKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFWF9PU0ZJTEUpKSByZXR1cm4gLTE7CiAjZW5kaWYgLyogRVhfT1NGSUxFICovCiAjaWZkZWYgRVhfQ0FOVENSRUFUCi0gICAgaWYgKGlucyhkLCAiRVhfQ0FOVENSRUFUIiwgKGxvbmcpRVhfQ0FOVENSRUFUKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFWF9DQU5UQ1JFQVQpKSByZXR1cm4gLTE7CiAjZW5kaWYgLyogRVhfQ0FOVENSRUFUICovCiAjaWZkZWYgRVhfSU9FUlIKLSAgICBpZiAoaW5zKGQsICJFWF9JT0VSUiIsIChsb25nKUVYX0lPRVJSKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFWF9JT0VSUikpIHJldHVybiAtMTsKICNlbmRpZiAvKiBFWF9JT0VSUiAqLwogI2lmZGVmIEVYX1RFTVBGQUlMCi0gICAgaWYgKGlucyhkLCAiRVhfVEVNUEZBSUwiLCAobG9uZylFWF9URU1QRkFJTCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRVhfVEVNUEZBSUwpKSByZXR1cm4gLTE7CiAjZW5kaWYgLyogRVhfVEVNUEZBSUwgKi8KICNpZmRlZiBFWF9QUk9UT0NPTAotICAgIGlmIChpbnMoZCwgIkVYX1BST1RPQ09MIiwgKGxvbmcpRVhfUFJPVE9DT0wpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEVYX1BST1RPQ09MKSkgcmV0dXJuIC0xOwogI2VuZGlmIC8qIEVYX1BST1RPQ09MICovCiAjaWZkZWYgRVhfTk9QRVJNCi0gICAgaWYgKGlucyhkLCAiRVhfTk9QRVJNIiwgKGxvbmcpRVhfTk9QRVJNKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFWF9OT1BFUk0pKSByZXR1cm4gLTE7CiAjZW5kaWYgLyogRVhfTk9QRVJNICovCiAjaWZkZWYgRVhfQ09ORklHCi0gICAgaWYgKGlucyhkLCAiRVhfQ09ORklHIiwgKGxvbmcpRVhfQ09ORklHKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFWF9DT05GSUcpKSByZXR1cm4gLTE7CiAjZW5kaWYgLyogRVhfQ09ORklHICovCiAjaWZkZWYgRVhfTk9URk9VTkQKLSAgICBpZiAoaW5zKGQsICJFWF9OT1RGT1VORCIsIChsb25nKUVYX05PVEZPVU5EKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFWF9OT1RGT1VORCkpIHJldHVybiAtMTsKICNlbmRpZiAvKiBFWF9OT1RGT1VORCAqLwogCiAgICAgLyogc3RhdHZmcyAqLwogI2lmZGVmIFNUX1JET05MWQotICAgIGlmIChpbnMoZCwgIlNUX1JET05MWSIsIChsb25nKVNUX1JET05MWSkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU1RfUkRPTkxZKSkgcmV0dXJuIC0xOwogI2VuZGlmIC8qIFNUX1JET05MWSAqLwogI2lmZGVmIFNUX05PU1VJRAotICAgIGlmIChpbnMoZCwgIlNUX05PU1VJRCIsIChsb25nKVNUX05PU1VJRCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU1RfTk9TVUlEKSkgcmV0dXJuIC0xOwogI2VuZGlmIC8qIFNUX05PU1VJRCAqLwogCiAgICAgLyogRnJlZUJTRCBzZW5kZmlsZSgpIGNvbnN0YW50cyAqLwogI2lmZGVmIFNGX05PRElTS0lPCi0gICAgaWYgKGlucyhkLCAiU0ZfTk9ESVNLSU8iLCAobG9uZylTRl9OT0RJU0tJTykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU0ZfTk9ESVNLSU8pKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBTRl9NTk9XQUlUCi0gICAgaWYgKGlucyhkLCAiU0ZfTU5PV0FJVCIsIChsb25nKVNGX01OT1dBSVQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNGX01OT1dBSVQpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBTRl9TWU5DCi0gICAgaWYgKGlucyhkLCAiU0ZfU1lOQyIsIChsb25nKVNGX1NZTkMpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNGX1NZTkMpKSByZXR1cm4gLTE7CiAjZW5kaWYKIAogICAgIC8qIGNvbnN0YW50cyBmb3IgcG9zaXhfZmFkdmlzZSAqLwogI2lmZGVmIFBPU0lYX0ZBRFZfTk9STUFMCi0gICAgaWYgKGlucyhkLCAiUE9TSVhfRkFEVl9OT1JNQUwiLCAobG9uZylQT1NJWF9GQURWX05PUk1BTCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUE9TSVhfRkFEVl9OT1JNQUwpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBQT1NJWF9GQURWX1NFUVVFTlRJQUwKLSAgICBpZiAoaW5zKGQsICJQT1NJWF9GQURWX1NFUVVFTlRJQUwiLCAobG9uZylQT1NJWF9GQURWX1NFUVVFTlRJQUwpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBPU0lYX0ZBRFZfU0VRVUVOVElBTCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFBPU0lYX0ZBRFZfUkFORE9NCi0gICAgaWYgKGlucyhkLCAiUE9TSVhfRkFEVl9SQU5ET00iLCAobG9uZylQT1NJWF9GQURWX1JBTkRPTSkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUE9TSVhfRkFEVl9SQU5ET00pKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBQT1NJWF9GQURWX05PUkVVU0UKLSAgICBpZiAoaW5zKGQsICJQT1NJWF9GQURWX05PUkVVU0UiLCAobG9uZylQT1NJWF9GQURWX05PUkVVU0UpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBPU0lYX0ZBRFZfTk9SRVVTRSkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFBPU0lYX0ZBRFZfV0lMTE5FRUQKLSAgICBpZiAoaW5zKGQsICJQT1NJWF9GQURWX1dJTExORUVEIiwgKGxvbmcpUE9TSVhfRkFEVl9XSUxMTkVFRCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUE9TSVhfRkFEVl9XSUxMTkVFRCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFBPU0lYX0ZBRFZfRE9OVE5FRUQKLSAgICBpZiAoaW5zKGQsICJQT1NJWF9GQURWX0RPTlRORUVEIiwgKGxvbmcpUE9TSVhfRkFEVl9ET05UTkVFRCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUE9TSVhfRkFEVl9ET05UTkVFRCkpIHJldHVybiAtMTsKICNlbmRpZgogCiAgICAgLyogY29uc3RhbnRzIGZvciB3YWl0aWQgKi8KICNpZiBkZWZpbmVkKEhBVkVfU1lTX1dBSVRfSCkgJiYgZGVmaW5lZChIQVZFX1dBSVRJRCkKLSAgICBpZiAoaW5zKGQsICJQX1BJRCIsIChsb25nKVBfUElEKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMoZCwgIlBfUEdJRCIsIChsb25nKVBfUEdJRCkpIHJldHVybiAtMTsKLSAgICBpZiAoaW5zKGQsICJQX0FMTCIsIChsb25nKVBfQUxMKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQX1BJRCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUF9QR0lEKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQX0FMTCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFdFWElURUQKLSAgICBpZiAoaW5zKGQsICJXRVhJVEVEIiwgKGxvbmcpV0VYSVRFRCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgV0VYSVRFRCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFdOT1dBSVQKLSAgICBpZiAoaW5zKGQsICJXTk9XQUlUIiwgKGxvbmcpV05PV0FJVCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgV05PV0FJVCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFdTVE9QUEVECi0gICAgaWYgKGlucyhkLCAiV1NUT1BQRUQiLCAobG9uZylXU1RPUFBFRCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgV1NUT1BQRUQpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBDTERfRVhJVEVECi0gICAgaWYgKGlucyhkLCAiQ0xEX0VYSVRFRCIsIChsb25nKUNMRF9FWElURUQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIENMRF9FWElURUQpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBDTERfRFVNUEVECi0gICAgaWYgKGlucyhkLCAiQ0xEX0RVTVBFRCIsIChsb25nKUNMRF9EVU1QRUQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIENMRF9EVU1QRUQpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBDTERfVFJBUFBFRAotICAgIGlmIChpbnMoZCwgIkNMRF9UUkFQUEVEIiwgKGxvbmcpQ0xEX1RSQVBQRUQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIENMRF9UUkFQUEVEKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAjaWZkZWYgQ0xEX0NPTlRJTlVFRAotICAgIGlmIChpbnMoZCwgIkNMRF9DT05USU5VRUQiLCAobG9uZylDTERfQ09OVElOVUVEKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBDTERfQ09OVElOVUVEKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAKICAgICAvKiBjb25zdGFudHMgZm9yIGxvY2tmICovCiAjaWZkZWYgRl9MT0NLCi0gICAgaWYgKGlucyhkLCAiRl9MT0NLIiwgKGxvbmcpRl9MT0NLKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGX0xPQ0spKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBGX1RMT0NLCi0gICAgaWYgKGlucyhkLCAiRl9UTE9DSyIsIChsb25nKUZfVExPQ0spKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEZfVExPQ0spKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBGX1VMT0NLCi0gICAgaWYgKGlucyhkLCAiRl9VTE9DSyIsIChsb25nKUZfVUxPQ0spKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEZfVUxPQ0spKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBGX1RFU1QKLSAgICBpZiAoaW5zKGQsICJGX1RFU1QiLCAobG9uZylGX1RFU1QpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEZfVEVTVCkpIHJldHVybiAtMTsKICNlbmRpZgogCiAjaWZkZWYgSEFWRV9TUEFXTlYKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiBkZWZpbmVkKFBZQ0NfR0NDKQotICAgIGlmIChpbnMoZCwgIlBfV0FJVCIsIChsb25nKVBfV0FJVCkpIHJldHVybiAtMTsKLSAgICBpZiAoaW5zKGQsICJQX05PV0FJVCIsIChsb25nKVBfTk9XQUlUKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMoZCwgIlBfT1ZFUkxBWSIsIChsb25nKVBfT1ZFUkxBWSkpIHJldHVybiAtMTsKLSAgICBpZiAoaW5zKGQsICJQX0RFQlVHIiwgKGxvbmcpUF9ERUJVRykpIHJldHVybiAtMTsKLSAgICBpZiAoaW5zKGQsICJQX1NFU1NJT04iLCAobG9uZylQX1NFU1NJT04pKSByZXR1cm4gLTE7Ci0gICAgaWYgKGlucyhkLCAiUF9ERVRBQ0giLCAobG9uZylQX0RFVEFDSCkpIHJldHVybiAtMTsKLSAgICBpZiAoaW5zKGQsICJQX1BNIiwgKGxvbmcpUF9QTSkpIHJldHVybiAtMTsKLSAgICBpZiAoaW5zKGQsICJQX0RFRkFVTFQiLCAobG9uZylQX0RFRkFVTFQpKSByZXR1cm4gLTE7Ci0gICAgaWYgKGlucyhkLCAiUF9NSU5JTUlaRSIsIChsb25nKVBfTUlOSU1JWkUpKSByZXR1cm4gLTE7Ci0gICAgaWYgKGlucyhkLCAiUF9NQVhJTUlaRSIsIChsb25nKVBfTUFYSU1JWkUpKSByZXR1cm4gLTE7Ci0gICAgaWYgKGlucyhkLCAiUF9GVUxMU0NSRUVOIiwgKGxvbmcpUF9GVUxMU0NSRUVOKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMoZCwgIlBfV0lORE9XRUQiLCAobG9uZylQX1dJTkRPV0VEKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMoZCwgIlBfRk9SRUdST1VORCIsIChsb25nKVBfRk9SRUdST1VORCkpIHJldHVybiAtMTsKLSAgICBpZiAoaW5zKGQsICJQX0JBQ0tHUk9VTkQiLCAobG9uZylQX0JBQ0tHUk9VTkQpKSByZXR1cm4gLTE7Ci0gICAgaWYgKGlucyhkLCAiUF9OT0NMT1NFIiwgKGxvbmcpUF9OT0NMT1NFKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMoZCwgIlBfTk9TRVNTSU9OIiwgKGxvbmcpUF9OT1NFU1NJT04pKSByZXR1cm4gLTE7Ci0gICAgaWYgKGlucyhkLCAiUF9RVU9URSIsIChsb25nKVBfUVVPVEUpKSByZXR1cm4gLTE7Ci0gICAgaWYgKGlucyhkLCAiUF9USUxERSIsIChsb25nKVBfVElMREUpKSByZXR1cm4gLTE7Ci0gICAgaWYgKGlucyhkLCAiUF9VTlJFTEFURUQiLCAobG9uZylQX1VOUkVMQVRFRCkpIHJldHVybiAtMTsKLSAgICBpZiAoaW5zKGQsICJQX0RFQlVHREVTQyIsIChsb25nKVBfREVCVUdERVNDKSkgcmV0dXJuIC0xOwotI2Vsc2UKLSAgICBpZiAoaW5zKGQsICJQX1dBSVQiLCAobG9uZylfUF9XQUlUKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMoZCwgIlBfTk9XQUlUIiwgKGxvbmcpX1BfTk9XQUlUKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMoZCwgIlBfT1ZFUkxBWSIsIChsb25nKV9PTERfUF9PVkVSTEFZKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMoZCwgIlBfTk9XQUlUTyIsIChsb25nKV9QX05PV0FJVE8pKSByZXR1cm4gLTE7Ci0gICAgaWYgKGlucyhkLCAiUF9ERVRBQ0giLCAobG9uZylfUF9ERVRBQ0gpKSByZXR1cm4gLTE7Ci0jZW5kaWYKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlBfV0FJVCIsIF9QX1dBSVQpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQX05PV0FJVCIsIF9QX05PV0FJVCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlBfT1ZFUkxBWSIsIF9PTERfUF9PVkVSTEFZKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUF9OT1dBSVRPIiwgX1BfTk9XQUlUTykpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlBfREVUQUNIIiwgX1BfREVUQUNIKSkgcmV0dXJuIC0xOwogI2VuZGlmCiAKICNpZmRlZiBIQVZFX1NDSEVEX0gKLSAgICBpZiAoaW5zKGQsICJTQ0hFRF9PVEhFUiIsIChsb25nKVNDSEVEX09USEVSKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMoZCwgIlNDSEVEX0ZJRk8iLCAobG9uZylTQ0hFRF9GSUZPKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMoZCwgIlNDSEVEX1JSIiwgKGxvbmcpU0NIRURfUlIpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNDSEVEX09USEVSKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTQ0hFRF9GSUZPKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTQ0hFRF9SUikpIHJldHVybiAtMTsKICNpZmRlZiBTQ0hFRF9TUE9SQURJQwotICAgIGlmIChpbnMoZCwgIlNDSEVEX1NQT1JBRElDIiwgKGxvbmcpU0NIRURfU1BPUkFESUMpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU0NIRURfU1BPUkFESUMpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFNDSEVEX0JBVENICi0gICAgaWYgKGlucyhkLCAiU0NIRURfQkFUQ0giLCAobG9uZylTQ0hFRF9CQVRDSCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU0NIRURfQkFUQ0gpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBTQ0hFRF9JRExFCi0gICAgaWYgKGlucyhkLCAiU0NIRURfSURMRSIsIChsb25nKVNDSEVEX0lETEUpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNDSEVEX0lETEUpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBTQ0hFRF9SRVNFVF9PTl9GT1JLCi0gICAgaWYgKGlucyhkLCAiU0NIRURfUkVTRVRfT05fRk9SSyIsIChsb25nKVNDSEVEX1JFU0VUX09OX0ZPUkspKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNDSEVEX1JFU0VUX09OX0ZPUkspKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBTQ0hFRF9TWVMKLSAgICBpZiAoaW5zKGQsICJTQ0hFRF9TWVMiLCAobG9uZylTQ0hFRF9TWVMpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNDSEVEX1NZUykpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFNDSEVEX0lBCi0gICAgaWYgKGlucyhkLCAiU0NIRURfSUEiLCAobG9uZylTQ0hFRF9JQSkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU0NIRURfSUEpKSByZXR1cm4gLTE7CiAjZW5kaWYKICNpZmRlZiBTQ0hFRF9GU1MKLSAgICBpZiAoaW5zKGQsICJTQ0hFRF9GU1MiLCAobG9uZylTQ0hFRF9GU1MpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNDSEVEX0ZTUykpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFNDSEVEX0ZYCi0gICAgaWYgKGlucyhkLCAiU0NIRURfRlgiLCAobG9uZylTQ0hFRF9GU1MpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTQ0hFRF9GWCIsIFNDSEVEX0ZTUykpIHJldHVybiAtMTsKICNlbmRpZgogI2VuZGlmCiAKICNpZmRlZiBVU0VfWEFUVFJTCi0gICAgaWYgKGlucyhkLCAiWEFUVFJfQ1JFQVRFIiwgKGxvbmcpWEFUVFJfQ1JFQVRFKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMoZCwgIlhBVFRSX1JFUExBQ0UiLCAobG9uZylYQVRUUl9SRVBMQUNFKSkgcmV0dXJuIC0xOwotICAgIGlmIChpbnMoZCwgIlhBVFRSX1NJWkVfTUFYIiwgKGxvbmcpWEFUVFJfU0laRV9NQVgpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFhBVFRSX0NSRUFURSkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgWEFUVFJfUkVQTEFDRSkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgWEFUVFJfU0laRV9NQVgpKSByZXR1cm4gLTE7CiAjZW5kaWYKIAogI2lmZGVmIFJUTERfTEFaWQotICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhkLCBSVExEX0xBWlkpKSByZXR1cm4gLTE7CisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFJUTERfTEFaWSkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFJUTERfTk9XCi0gICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKGQsIFJUTERfTk9XKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSVExEX05PVykpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFJUTERfR0xPQkFMCi0gICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKGQsIFJUTERfR0xPQkFMKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSVExEX0dMT0JBTCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFJUTERfTE9DQUwKLSAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8oZCwgUlRMRF9MT0NBTCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUlRMRF9MT0NBTCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFJUTERfTk9ERUxFVEUKLSAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8oZCwgUlRMRF9OT0RFTEVURSkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUlRMRF9OT0RFTEVURSkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFJUTERfTk9MT0FECi0gICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKGQsIFJUTERfTk9MT0FEKSkgcmV0dXJuIC0xOworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSVExEX05PTE9BRCkpIHJldHVybiAtMTsKICNlbmRpZgogI2lmZGVmIFJUTERfREVFUEJJTkQKLSAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8oZCwgUlRMRF9ERUVQQklORCkpIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUlRMRF9ERUVQQklORCkpIHJldHVybiAtMTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChQWU9TX09TMikKLSAgICBpZiAoaW5zZXJ0dmFsdWVzKGQpKSByZXR1cm4gLTE7Ci0jZW5kaWYKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMTE4NzksMTAgKzExMzM1LDYgQEAKICNkZWZpbmUgSU5JVEZVTkMgUHlJbml0X250CiAjZGVmaW5lIE1PRE5BTUUgIm50IgogCi0jZWxpZiBkZWZpbmVkKFBZT1NfT1MyKQotI2RlZmluZSBJTklURlVOQyBQeUluaXRfb3MyCi0jZGVmaW5lIE1PRE5BTUUgIm9zMiIKLQogI2Vsc2UKICNkZWZpbmUgSU5JVEZVTkMgUHlJbml0X3Bvc2l4CiAjZGVmaW5lIE1PRE5BTUUgInBvc2l4IgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9wd2Rtb2R1bGUuYyBiL01vZHVsZXMvcHdkbW9kdWxlLmMKaW5kZXggMjg1ZmQ5Yy4uZDRlZjczMyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9wd2Rtb2R1bGUuYworKysgYi9Nb2R1bGVzL3B3ZG1vZHVsZS5jCkBAIC0xNjgsMTIgKzE2OCw4IEBACiAgICAgc3RydWN0IHBhc3N3ZCAqcDsKICAgICBpZiAoKGQgPSBQeUxpc3RfTmV3KDApKSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiBkZWZpbmVkKFBZQ0NfR0NDKQotICAgIGlmICgocCA9IGdldHB3dWlkKDApKSAhPSBOVUxMKSB7Ci0jZWxzZQogICAgIHNldHB3ZW50KCk7CiAgICAgd2hpbGUgKChwID0gZ2V0cHdlbnQoKSkgIT0gTlVMTCkgewotI2VuZGlmCiAgICAgICAgIFB5T2JqZWN0ICp2ID0gbWtwd2VudChwKTsKICAgICAgICAgaWYgKHYgPT0gTlVMTCB8fCBQeUxpc3RfQXBwZW5kKGQsIHYpICE9IDApIHsKICAgICAgICAgICAgIFB5X1hERUNSRUYodik7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL3JlYWRsaW5lLmMgYi9Nb2R1bGVzL3JlYWRsaW5lLmMKaW5kZXggNzFjMjQyMy4uNWExNGI1OSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9yZWFkbGluZS5jCisrKyBiL01vZHVsZXMvcmVhZGxpbmUuYwpAQCAtOTEzLDEwICs5MTMsNiBAQAogICAgIHVzaW5nX2hpc3RvcnkoKTsKIAogICAgIHJsX3JlYWRsaW5lX25hbWUgPSAicHl0aG9uIjsKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiBkZWZpbmVkKFBZQ0NfR0NDKQotICAgIC8qIEFsbG93ICRpZiB0ZXJtPSBpbiAuaW5wdXRyYyB0byB3b3JrICovCi0gICAgcmxfdGVybWluYWxfbmFtZSA9IGdldGVudigiVEVSTSIpOwotI2VuZGlmCiAgICAgLyogRm9yY2UgcmViaW5kIG9mIFRBQiB0byBpbnNlcnQtdGFiICovCiAgICAgcmxfYmluZF9rZXkoJ1x0JywgcmxfaW5zZXJ0KTsKICAgICAvKiBCaW5kIGJvdGggRVNDLVRBQiBhbmQgRVNDLUVTQyB0byB0aGUgY29tcGxldGlvbiBmdW5jdGlvbiAqLwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9yZXNvdXJjZS5jIGIvTW9kdWxlcy9yZXNvdXJjZS5jCmluZGV4IGIyOTRhOGMuLjQ0MTEyMjUgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvcmVzb3VyY2UuYworKysgYi9Nb2R1bGVzL3Jlc291cmNlLmMKQEAgLTI3Miw3MSArMjcyLDcxIEBACiAKICAgICAvKiBpbnNlcnQgY29uc3RhbnRzICovCiAjaWZkZWYgUkxJTUlUX0NQVQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSTElNSVRfQ1BVIiwgUkxJTUlUX0NQVSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkxJTUlUX0NQVSk7CiAjZW5kaWYKIAogI2lmZGVmIFJMSU1JVF9GU0laRQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSTElNSVRfRlNJWkUiLCBSTElNSVRfRlNJWkUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFJMSU1JVF9GU0laRSk7CiAjZW5kaWYKIAogI2lmZGVmIFJMSU1JVF9EQVRBCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJMSU1JVF9EQVRBIiwgUkxJTUlUX0RBVEEpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFJMSU1JVF9EQVRBKTsKICNlbmRpZgogCiAjaWZkZWYgUkxJTUlUX1NUQUNLCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJMSU1JVF9TVEFDSyIsIFJMSU1JVF9TVEFDSyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkxJTUlUX1NUQUNLKTsKICNlbmRpZgogCiAjaWZkZWYgUkxJTUlUX0NPUkUKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkxJTUlUX0NPUkUiLCBSTElNSVRfQ09SRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkxJTUlUX0NPUkUpOwogI2VuZGlmCiAKICNpZmRlZiBSTElNSVRfTk9GSUxFCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJMSU1JVF9OT0ZJTEUiLCBSTElNSVRfTk9GSUxFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSTElNSVRfTk9GSUxFKTsKICNlbmRpZgogCiAjaWZkZWYgUkxJTUlUX09GSUxFCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJMSU1JVF9PRklMRSIsIFJMSU1JVF9PRklMRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkxJTUlUX09GSUxFKTsKICNlbmRpZgogCiAjaWZkZWYgUkxJTUlUX1ZNRU0KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkxJTUlUX1ZNRU0iLCBSTElNSVRfVk1FTSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkxJTUlUX1ZNRU0pOwogI2VuZGlmCiAKICNpZmRlZiBSTElNSVRfQVMKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkxJTUlUX0FTIiwgUkxJTUlUX0FTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSTElNSVRfQVMpOwogI2VuZGlmCiAKICNpZmRlZiBSTElNSVRfUlNTCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJMSU1JVF9SU1MiLCBSTElNSVRfUlNTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSTElNSVRfUlNTKTsKICNlbmRpZgogCiAjaWZkZWYgUkxJTUlUX05QUk9DCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJMSU1JVF9OUFJPQyIsIFJMSU1JVF9OUFJPQyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkxJTUlUX05QUk9DKTsKICNlbmRpZgogCiAjaWZkZWYgUkxJTUlUX01FTUxPQ0sKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkxJTUlUX01FTUxPQ0siLCBSTElNSVRfTUVNTE9DSyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkxJTUlUX01FTUxPQ0spOwogI2VuZGlmCiAKICNpZmRlZiBSTElNSVRfU0JTSVpFCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJMSU1JVF9TQlNJWkUiLCBSTElNSVRfU0JTSVpFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSTElNSVRfU0JTSVpFKTsKICNlbmRpZgogCiAjaWZkZWYgUlVTQUdFX1NFTEYKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUlVTQUdFX1NFTEYiLCBSVVNBR0VfU0VMRik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUlVTQUdFX1NFTEYpOwogI2VuZGlmCiAKICNpZmRlZiBSVVNBR0VfQ0hJTERSRU4KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUlVTQUdFX0NISUxEUkVOIiwgUlVTQUdFX0NISUxEUkVOKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSVVNBR0VfQ0hJTERSRU4pOwogI2VuZGlmCiAKICNpZmRlZiBSVVNBR0VfQk9USAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSVVNBR0VfQk9USCIsIFJVU0FHRV9CT1RIKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSVVNBR0VfQk9USCk7CiAjZW5kaWYKIAogI2lmZGVmIFJVU0FHRV9USFJFQUQKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUlVTQUdFX1RIUkVBRCIsIFJVU0FHRV9USFJFQUQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFJVU0FHRV9USFJFQUQpOwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEhBVkVfTE9OR19MT05HKQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9zZWxlY3Rtb2R1bGUuYyBiL01vZHVsZXMvc2VsZWN0bW9kdWxlLmMKaW5kZXggMmNhMmQ0MS4uYWM0NDk4NSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9zZWxlY3Rtb2R1bGUuYworKysgYi9Nb2R1bGVzL3NlbGVjdG1vZHVsZS5jCkBAIC00NywxMSArNDcsNiBAQAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiAhZGVmaW5lZChQWUNDX0dDQykKLSNpbmNsdWRlIDxzeXMvdGltZS5oPgotI2luY2x1ZGUgPHV0aWxzLmg+Ci0jZW5kaWYKLQogI2lmZGVmIE1TX1dJTkRPV1MKICMgIGRlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCiAjICBpbmNsdWRlIDx3aW5zb2NrLmg+CkBAIC0xNDAzLDYgKzEzOTgsMjQgQEAKIGluIHNlY29uZHMgKGFzIGZsb2F0KS4gLTEgbWFrZXMgcG9sbCB3YWl0IGluZGVmaW5pdGVseS5cblwKIFVwIHRvIG1heGV2ZW50cyBhcmUgcmV0dXJuZWQgdG8gdGhlIGNhbGxlci4iKTsKIAorc3RhdGljIFB5T2JqZWN0ICoKK3B5ZXBvbGxfZW50ZXIocHlFcG9sbF9PYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIGlmIChzZWxmLT5lcGZkIDwgMCkKKyAgICAgICAgcmV0dXJuIHB5ZXBvbGxfZXJyX2Nsb3NlZCgpOworCisgICAgUHlfSU5DUkVGKHNlbGYpOworICAgIHJldHVybiAoUHlPYmplY3QgKilzZWxmOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorcHllcG9sbF9leGl0KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBfUHlfSURFTlRJRklFUihjbG9zZSk7CisKKyAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLCAmUHlJZF9jbG9zZSwgTlVMTCk7Cit9CisKIHN0YXRpYyBQeU1ldGhvZERlZiBweWVwb2xsX21ldGhvZHNbXSA9IHsKICAgICB7ImZyb21mZCIsICAgICAgICAgIChQeUNGdW5jdGlvbilweWVwb2xsX2Zyb21mZCwKICAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9DTEFTUywgcHllcG9sbF9mcm9tZmRfZG9jfSwKQEAgLTE0MTgsNiArMTQzMSwxMCBAQAogICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLCAgICAgIHB5ZXBvbGxfdW5yZWdpc3Rlcl9kb2N9LAogICAgIHsicG9sbCIsICAgICAgICAgICAgKFB5Q0Z1bmN0aW9uKXB5ZXBvbGxfcG9sbCwKICAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgICAgICBweWVwb2xsX3BvbGxfZG9jfSwKKyAgICB7Il9fZW50ZXJfXyIsICAgICAgICAgICAoUHlDRnVuY3Rpb24pcHllcG9sbF9lbnRlciwgICAgIE1FVEhfTk9BUkdTLAorICAgICBOVUxMfSwKKyAgICB7Il9fZXhpdF9fIiwgICAgICAgICAgIChQeUNGdW5jdGlvbilweWVwb2xsX2V4aXQsICAgICBNRVRIX1ZBUkFSR1MsCisgICAgIE5VTEx9LAogICAgIHtOVUxMLCAgICAgIE5VTEx9LAogfTsKIApAQCAtMjE2Niw3ICsyMTgzLDcgQEAKICN1bmRlZiBQSVBFX0JVRgogI2RlZmluZSBQSVBFX0JVRiA1MTIKICNlbmRpZgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQSVBFX0JVRiIsIFBJUEVfQlVGKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQSVBFX0JVRik7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoSEFWRV9QT0xMKSAmJiAhZGVmaW5lZChIQVZFX0JST0tFTl9QT0xMKQpAQCAtMjE4MSwyNyArMjE5OCwyNyBAQAogI2VuZGlmCiAgICAgICAgIGlmIChQeVR5cGVfUmVhZHkoJnBvbGxfVHlwZSkgPCAwKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQT0xMSU4iLCBQT0xMSU4pOwotICAgICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUE9MTFBSSSIsIFBPTExQUkkpOwotICAgICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUE9MTE9VVCIsIFBPTExPVVQpOwotICAgICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUE9MTEVSUiIsIFBPTExFUlIpOwotICAgICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUE9MTEhVUCIsIFBPTExIVVApOwotICAgICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUE9MTE5WQUwiLCBQT0xMTlZBTCk7CisgICAgICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBPTExJTik7CisgICAgICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBPTExQUkkpOworICAgICAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQT0xMT1VUKTsKKyAgICAgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUE9MTEVSUik7CisgICAgICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBPTExIVVApOworICAgICAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQT0xMTlZBTCk7CiAKICNpZmRlZiBQT0xMUkROT1JNCi0gICAgICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQT0xMUkROT1JNIiwgUE9MTFJETk9STSk7CisgICAgICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBPTExSRE5PUk0pOwogI2VuZGlmCiAjaWZkZWYgUE9MTFJEQkFORAotICAgICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUE9MTFJEQkFORCIsIFBPTExSREJBTkQpOworICAgICAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQT0xMUkRCQU5EKTsKICNlbmRpZgogI2lmZGVmIFBPTExXUk5PUk0KLSAgICAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlBPTExXUk5PUk0iLCBQT0xMV1JOT1JNKTsKKyAgICAgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUE9MTFdSTk9STSk7CiAjZW5kaWYKICNpZmRlZiBQT0xMV1JCQU5ECi0gICAgICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQT0xMV1JCQU5EIiwgUE9MTFdSQkFORCk7CisgICAgICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBPTExXUkJBTkQpOwogI2VuZGlmCiAjaWZkZWYgUE9MTE1TRwotICAgICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUE9MTE1TRyIsIFBPTExNU0cpOworICAgICAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQT0xMTVNHKTsKICNlbmRpZgogICAgIH0KICNlbmRpZiAvKiBIQVZFX1BPTEwgKi8KQEAgLTIyMTksMjUgKzIyMzYsMjUgQEAKICAgICBQeV9JTkNSRUYoJnB5RXBvbGxfVHlwZSk7CiAgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJlcG9sbCIsIChQeU9iamVjdCAqKSAmcHlFcG9sbF9UeXBlKTsKIAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJFUE9MTElOIiwgRVBPTExJTik7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkVQT0xMT1VUIiwgRVBPTExPVVQpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJFUE9MTFBSSSIsIEVQT0xMUFJJKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiRVBPTExFUlIiLCBFUE9MTEVSUik7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkVQT0xMSFVQIiwgRVBPTExIVVApOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJFUE9MTEVUIiwgRVBPTExFVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRVBPTExJTik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRVBPTExPVVQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEVQT0xMUFJJKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFUE9MTEVSUik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRVBPTExIVVApOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEVQT0xMRVQpOwogI2lmZGVmIEVQT0xMT05FU0hPVAogICAgIC8qIEtlcm5lbCAyLjYuMisgKi8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiRVBPTExPTkVTSE9UIiwgRVBPTExPTkVTSE9UKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFUE9MTE9ORVNIT1QpOwogI2VuZGlmCiAgICAgLyogUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkVQT0xMX1JESFVQIiwgRVBPTExSREhVUCk7ICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkVQT0xMUkROT1JNIiwgRVBPTExSRE5PUk0pOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJFUE9MTFJEQkFORCIsIEVQT0xMUkRCQU5EKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiRVBPTExXUk5PUk0iLCBFUE9MTFdSTk9STSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkVQT0xMV1JCQU5EIiwgRVBPTExXUkJBTkQpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJFUE9MTE1TRyIsIEVQT0xMTVNHKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFUE9MTFJETk9STSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRVBPTExSREJBTkQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEVQT0xMV1JOT1JNKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFUE9MTFdSQkFORCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRVBPTExNU0cpOwogCiAjaWZkZWYgRVBPTExfQ0xPRVhFQwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJFUE9MTF9DTE9FWEVDIiwgRVBPTExfQ0xPRVhFQyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRVBPTExfQ0xPRVhFQyk7CiAjZW5kaWYKICNlbmRpZiAvKiBIQVZFX0VQT0xMICovCiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvc2hhMW1vZHVsZS5jIGIvTW9kdWxlcy9zaGExbW9kdWxlLmMKaW5kZXggZjgyNGJiMy4uODI0MDI0YyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9zaGExbW9kdWxlLmMKKysrIGIvTW9kdWxlcy9zaGExbW9kdWxlLmMKQEAgLTkyLDEwICs5Miw2IEBACiAgICAgICh5KVs0XSA9ICh1bnNpZ25lZCBjaGFyKSgoKHgpPj4yNCkmMjU1KTsgKHkpWzVdID0gKHVuc2lnbmVkIGNoYXIpKCgoeCk+PjE2KSYyNTUpOyAgICAgXAogICAgICAoeSlbNl0gPSAodW5zaWduZWQgY2hhcikoKCh4KT4+OCkmMjU1KTsgKHkpWzddID0gKHVuc2lnbmVkIGNoYXIpKCh4KSYyNTUpOyB9CiAKLSNpZm5kZWYgTUlOCi0gICAjZGVmaW5lIE1JTih4LCB5KSAoICgoeCk8KHkpKT8oeCk6KHkpICkKLSNlbmRpZgotCiAKIC8qIFNIQTEgbWFjcm9zICovCiAKQEAgLTIyMCw5ICsyMTYsOSBAQAogICAgICAgICAgICBpbiAgICAgICAgICAgICArPSBTSEExX0JMT0NLU0laRTsKICAgICAgICAgICAgaW5sZW4gICAgICAgICAgLT0gU0hBMV9CTE9DS1NJWkU7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIG4gPSBNSU4oaW5sZW4sIChQeV9zc2l6ZV90KShTSEExX0JMT0NLU0laRSAtIHNoYTEtPmN1cmxlbikpOworICAgICAgICAgICBuID0gUHlfTUlOKGlubGVuLCAoUHlfc3NpemVfdCkoU0hBMV9CTE9DS1NJWkUgLSBzaGExLT5jdXJsZW4pKTsKICAgICAgICAgICAgbWVtY3B5KHNoYTEtPmJ1ZiArIHNoYTEtPmN1cmxlbiwgaW4sIChzaXplX3Qpbik7Ci0gICAgICAgICAgIHNoYTEtPmN1cmxlbiAgICs9IG47CisgICAgICAgICAgIHNoYTEtPmN1cmxlbiAgICs9IChTSEExX0lOVDMyKW47CiAgICAgICAgICAgIGluICAgICAgICAgICAgICs9IG47CiAgICAgICAgICAgIGlubGVuICAgICAgICAgIC09IG47CiAgICAgICAgICAgIGlmIChzaGExLT5jdXJsZW4gPT0gU0hBMV9CTE9DS1NJWkUpIHsKZGlmZiAtLWdpdCBhL01vZHVsZXMvc2hhMjU2bW9kdWxlLmMgYi9Nb2R1bGVzL3NoYTI1Nm1vZHVsZS5jCmluZGV4IDlmNmI0MTYuLjc2N2JmYWMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvc2hhMjU2bW9kdWxlLmMKKysrIGIvTW9kdWxlcy9zaGEyNTZtb2R1bGUuYwpAQCAtMjEsMTMgKzIxLDYgQEAKICNpbmNsdWRlICJoYXNobGliLmgiCiAKIAotLyogRW5kaWFubmVzcyB0ZXN0aW5nIGFuZCBkZWZpbml0aW9ucyAqLwotI2RlZmluZSBUZXN0RW5kaWFubmVzcyh2YXJpYWJsZSkge2ludCBpPTE7IHZhcmlhYmxlPVBDVF9CSUdfRU5ESUFOO1wKLSAgICAgICAgaWYgKCooKGNoYXIqKSZpKT09MSkgdmFyaWFibGU9UENUX0xJVFRMRV9FTkRJQU47fQotCi0jZGVmaW5lIFBDVF9MSVRUTEVfRU5ESUFOIDEKLSNkZWZpbmUgUENUX0JJR19FTkRJQU4gMAotCiAvKiBTb21lIHVzZWZ1bCB0eXBlcyAqLwogCiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgU0hBX0JZVEU7CkBAIC01MCw3ICs0Myw2IEBACiAgICAgU0hBX0lOVDMyIGRpZ2VzdFs4XTsgICAgICAgICAgICAgICAgLyogTWVzc2FnZSBkaWdlc3QgKi8KICAgICBTSEFfSU5UMzIgY291bnRfbG8sIGNvdW50X2hpOyAgICAgICAvKiA2NC1iaXQgYml0IGNvdW50ICovCiAgICAgU0hBX0JZVEUgZGF0YVtTSEFfQkxPQ0tTSVpFXTsgICAgICAgLyogU0hBIGRhdGEgYnVmZmVyICovCi0gICAgaW50IEVuZGlhbm5lc3M7CiAgICAgaW50IGxvY2FsOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdW5wcm9jZXNzZWQgYW1vdW50IGluIGRhdGEgKi8KICAgICBpbnQgZGlnZXN0c2l6ZTsKIH0gU0hBb2JqZWN0OwpAQCAtNTgsMTMgKzUwLDExIEBACiAvKiBXaGVuIHJ1biBvbiBhIGxpdHRsZS1lbmRpYW4gQ1BVIHdlIG5lZWQgdG8gcGVyZm9ybSBieXRlIHJldmVyc2FsIG9uIGFuCiAgICBhcnJheSBvZiBsb25nd29yZHMuICovCiAKLXN0YXRpYyB2b2lkIGxvbmdSZXZlcnNlKFNIQV9JTlQzMiAqYnVmZmVyLCBpbnQgYnl0ZUNvdW50LCBpbnQgRW5kaWFubmVzcykKKyNpZiBQWV9MSVRUTEVfRU5ESUFOCitzdGF0aWMgdm9pZCBsb25nUmV2ZXJzZShTSEFfSU5UMzIgKmJ1ZmZlciwgaW50IGJ5dGVDb3VudCkKIHsKICAgICBTSEFfSU5UMzIgdmFsdWU7CiAKLSAgICBpZiAoIEVuZGlhbm5lc3MgPT0gUENUX0JJR19FTkRJQU4gKQotICAgICAgICByZXR1cm47Ci0KICAgICBieXRlQ291bnQgLz0gc2l6ZW9mKCpidWZmZXIpOwogICAgIHdoaWxlIChieXRlQ291bnQtLSkgewogICAgICAgICB2YWx1ZSA9ICpidWZmZXI7CkBAIC03MywxMCArNjMsMTAgQEAKICAgICAgICAgKmJ1ZmZlcisrID0gKCB2YWx1ZSA8PCAxNiApIHwgKCB2YWx1ZSA+PiAxNiApOwogICAgIH0KIH0KKyNlbmRpZgogCiBzdGF0aWMgdm9pZCBTSEFjb3B5KFNIQW9iamVjdCAqc3JjLCBTSEFvYmplY3QgKmRlc3QpCiB7Ci0gICAgZGVzdC0+RW5kaWFubmVzcyA9IHNyYy0+RW5kaWFubmVzczsKICAgICBkZXN0LT5sb2NhbCA9IHNyYy0+bG9jYWw7CiAgICAgZGVzdC0+ZGlnZXN0c2l6ZSA9IHNyYy0+ZGlnZXN0c2l6ZTsKICAgICBkZXN0LT5jb3VudF9sbyA9IHNyYy0+Y291bnRfbG87CkBAIC0xMzEsNyArMTIxLDkgQEAKICAgICAgICAgU0hBX0lOVDMyIFNbOF0sIFdbNjRdLCB0MCwgdDE7CiAKICAgICBtZW1jcHkoVywgc2hhX2luZm8tPmRhdGEsIHNpemVvZihzaGFfaW5mby0+ZGF0YSkpOwotICAgIGxvbmdSZXZlcnNlKFcsIChpbnQpc2l6ZW9mKHNoYV9pbmZvLT5kYXRhKSwgc2hhX2luZm8tPkVuZGlhbm5lc3MpOworI2lmIFBZX0xJVFRMRV9FTkRJQU4KKyAgICBsb25nUmV2ZXJzZShXLCAoaW50KXNpemVvZihzaGFfaW5mby0+ZGF0YSkpOworI2VuZGlmCiAKICAgICBmb3IgKGkgPSAxNjsgaSA8IDY0OyArK2kpIHsKICAgICAgICAgICAgICAgICBXW2ldID0gR2FtbWExKFdbaSAtIDJdKSArIFdbaSAtIDddICsgR2FtbWEwKFdbaSAtIDE1XSkgKyBXW2kgLSAxNl07CkBAIC0yMjgsNyArMjIwLDYgQEAKIHN0YXRpYyB2b2lkCiBzaGFfaW5pdChTSEFvYmplY3QgKnNoYV9pbmZvKQogewotICAgIFRlc3RFbmRpYW5uZXNzKHNoYV9pbmZvLT5FbmRpYW5uZXNzKQogICAgIHNoYV9pbmZvLT5kaWdlc3RbMF0gPSAweDZBMDlFNjY3TDsKICAgICBzaGFfaW5mby0+ZGlnZXN0WzFdID0gMHhCQjY3QUU4NUw7CiAgICAgc2hhX2luZm8tPmRpZ2VzdFsyXSA9IDB4M0M2RUYzNzJMOwpAQCAtMjQ2LDcgKzIzNyw2IEBACiBzdGF0aWMgdm9pZAogc2hhMjI0X2luaXQoU0hBb2JqZWN0ICpzaGFfaW5mbykKIHsKLSAgICBUZXN0RW5kaWFubmVzcyhzaGFfaW5mby0+RW5kaWFubmVzcykKICAgICBzaGFfaW5mby0+ZGlnZXN0WzBdID0gMHhjMTA1OWVkOEw7CiAgICAgc2hhX2luZm8tPmRpZ2VzdFsxXSA9IDB4MzY3Y2Q1MDdMOwogICAgIHNoYV9pbmZvLT5kaWdlc3RbMl0gPSAweDMwNzBkZDE3TDsKQEAgLTI4NCw3ICsyNzQsNyBAQAogICAgICAgICBtZW1jcHkoKChTSEFfQllURSAqKSBzaGFfaW5mby0+ZGF0YSkgKyBzaGFfaW5mby0+bG9jYWwsIGJ1ZmZlciwgaSk7CiAgICAgICAgIGNvdW50IC09IGk7CiAgICAgICAgIGJ1ZmZlciArPSBpOwotICAgICAgICBzaGFfaW5mby0+bG9jYWwgKz0gaTsKKyAgICAgICAgc2hhX2luZm8tPmxvY2FsICs9IChpbnQpaTsKICAgICAgICAgaWYgKHNoYV9pbmZvLT5sb2NhbCA9PSBTSEFfQkxPQ0tTSVpFKSB7CiAgICAgICAgICAgICBzaGFfdHJhbnNmb3JtKHNoYV9pbmZvKTsKICAgICAgICAgfQpAQCAtMjk5LDcgKzI4OSw3IEBACiAgICAgICAgIHNoYV90cmFuc2Zvcm0oc2hhX2luZm8pOwogICAgIH0KICAgICBtZW1jcHkoc2hhX2luZm8tPmRhdGEsIGJ1ZmZlciwgY291bnQpOwotICAgIHNoYV9pbmZvLT5sb2NhbCA9IGNvdW50OworICAgIHNoYV9pbmZvLT5sb2NhbCA9IChpbnQpY291bnQ7CiB9CiAKIC8qIGZpbmlzaCBjb21wdXRpbmcgdGhlIFNIQSBkaWdlc3QgKi8KZGlmZiAtLWdpdCBhL01vZHVsZXMvc2hhNTEybW9kdWxlLmMgYi9Nb2R1bGVzL3NoYTUxMm1vZHVsZS5jCmluZGV4IDU1MzZmZDUuLjY2YzJjNDkgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvc2hhNTEybW9kdWxlLmMKKysrIGIvTW9kdWxlcy9zaGE1MTJtb2R1bGUuYwpAQCAtMjIsMTMgKzIyLDYgQEAKIAogI2lmZGVmIFBZX0xPTkdfTE9ORyAvKiBJZiBubyBQWV9MT05HX0xPTkcsIGRvbid0IGNvbXBpbGUgYW55dGhpbmchICovCiAKLS8qIEVuZGlhbm5lc3MgdGVzdGluZyBhbmQgZGVmaW5pdGlvbnMgKi8KLSNkZWZpbmUgVGVzdEVuZGlhbm5lc3ModmFyaWFibGUpIHtpbnQgaT0xOyB2YXJpYWJsZT1QQ1RfQklHX0VORElBTjtcCi0gICAgICAgIGlmICgqKChjaGFyKikmaSk9PTEpIHZhcmlhYmxlPVBDVF9MSVRUTEVfRU5ESUFOO30KLQotI2RlZmluZSBQQ1RfTElUVExFX0VORElBTiAxCi0jZGVmaW5lIFBDVF9CSUdfRU5ESUFOIDAKLQogLyogU29tZSB1c2VmdWwgdHlwZXMgKi8KIAogdHlwZWRlZiB1bnNpZ25lZCBjaGFyIFNIQV9CWVRFOwpAQCAtNTIsNyArNDUsNiBAQAogICAgIFNIQV9JTlQ2NCBkaWdlc3RbOF07ICAgICAgICAgICAgICAgIC8qIE1lc3NhZ2UgZGlnZXN0ICovCiAgICAgU0hBX0lOVDMyIGNvdW50X2xvLCBjb3VudF9oaTsgICAgICAgLyogNjQtYml0IGJpdCBjb3VudCAqLwogICAgIFNIQV9CWVRFIGRhdGFbU0hBX0JMT0NLU0laRV07ICAgICAgIC8qIFNIQSBkYXRhIGJ1ZmZlciAqLwotICAgIGludCBFbmRpYW5uZXNzOwogICAgIGludCBsb2NhbDsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHVucHJvY2Vzc2VkIGFtb3VudCBpbiBkYXRhICovCiAgICAgaW50IGRpZ2VzdHNpemU7CiB9IFNIQW9iamVjdDsKQEAgLTYwLDEzICs1MiwxMSBAQAogLyogV2hlbiBydW4gb24gYSBsaXR0bGUtZW5kaWFuIENQVSB3ZSBuZWVkIHRvIHBlcmZvcm0gYnl0ZSByZXZlcnNhbCBvbiBhbgogICAgYXJyYXkgb2YgbG9uZ3dvcmRzLiAqLwogCi1zdGF0aWMgdm9pZCBsb25nUmV2ZXJzZShTSEFfSU5UNjQgKmJ1ZmZlciwgaW50IGJ5dGVDb3VudCwgaW50IEVuZGlhbm5lc3MpCisjaWYgUFlfTElUVExFX0VORElBTgorc3RhdGljIHZvaWQgbG9uZ1JldmVyc2UoU0hBX0lOVDY0ICpidWZmZXIsIGludCBieXRlQ291bnQpCiB7CiAgICAgU0hBX0lOVDY0IHZhbHVlOwogCi0gICAgaWYgKCBFbmRpYW5uZXNzID09IFBDVF9CSUdfRU5ESUFOICkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgYnl0ZUNvdW50IC89IHNpemVvZigqYnVmZmVyKTsKICAgICB3aGlsZSAoYnl0ZUNvdW50LS0pIHsKICAgICAgICAgdmFsdWUgPSAqYnVmZmVyOwpAQCAtODMsMTAgKzczLDEwIEBACiAgICAgICAgICAgICAgICAgYnVmZmVyKys7CiAgICAgfQogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIFNIQWNvcHkoU0hBb2JqZWN0ICpzcmMsIFNIQW9iamVjdCAqZGVzdCkKIHsKLSAgICBkZXN0LT5FbmRpYW5uZXNzID0gc3JjLT5FbmRpYW5uZXNzOwogICAgIGRlc3QtPmxvY2FsID0gc3JjLT5sb2NhbDsKICAgICBkZXN0LT5kaWdlc3RzaXplID0gc3JjLT5kaWdlc3RzaXplOwogICAgIGRlc3QtPmNvdW50X2xvID0gc3JjLT5jb3VudF9sbzsKQEAgLTE0MSw3ICsxMzEsOSBAQAogICAgIFNIQV9JTlQ2NCBTWzhdLCBXWzgwXSwgdDAsIHQxOwogCiAgICAgbWVtY3B5KFcsIHNoYV9pbmZvLT5kYXRhLCBzaXplb2Yoc2hhX2luZm8tPmRhdGEpKTsKLSAgICBsb25nUmV2ZXJzZShXLCAoaW50KXNpemVvZihzaGFfaW5mby0+ZGF0YSksIHNoYV9pbmZvLT5FbmRpYW5uZXNzKTsKKyNpZiBQWV9MSVRUTEVfRU5ESUFOCisgICAgbG9uZ1JldmVyc2UoVywgKGludClzaXplb2Yoc2hhX2luZm8tPmRhdGEpKTsKKyNlbmRpZgogCiAgICAgZm9yIChpID0gMTY7IGkgPCA4MDsgKytpKSB7CiAgICAgICAgICAgICAgICAgV1tpXSA9IEdhbW1hMShXW2kgLSAyXSkgKyBXW2kgLSA3XSArIEdhbW1hMChXW2kgLSAxNV0pICsgV1tpIC0gMTZdOwpAQCAtMjU0LDcgKzI0Niw2IEBACiBzdGF0aWMgdm9pZAogc2hhNTEyX2luaXQoU0hBb2JqZWN0ICpzaGFfaW5mbykKIHsKLSAgICBUZXN0RW5kaWFubmVzcyhzaGFfaW5mby0+RW5kaWFubmVzcykKICAgICBzaGFfaW5mby0+ZGlnZXN0WzBdID0gUHlfVUxMKDB4NmEwOWU2NjdmM2JjYzkwOCk7CiAgICAgc2hhX2luZm8tPmRpZ2VzdFsxXSA9IFB5X1VMTCgweGJiNjdhZTg1ODRjYWE3M2IpOwogICAgIHNoYV9pbmZvLT5kaWdlc3RbMl0gPSBQeV9VTEwoMHgzYzZlZjM3MmZlOTRmODJiKTsKQEAgLTI3Miw3ICsyNjMsNiBAQAogc3RhdGljIHZvaWQKIHNoYTM4NF9pbml0KFNIQW9iamVjdCAqc2hhX2luZm8pCiB7Ci0gICAgVGVzdEVuZGlhbm5lc3Moc2hhX2luZm8tPkVuZGlhbm5lc3MpCiAgICAgc2hhX2luZm8tPmRpZ2VzdFswXSA9IFB5X1VMTCgweGNiYmI5ZDVkYzEwNTllZDgpOwogICAgIHNoYV9pbmZvLT5kaWdlc3RbMV0gPSBQeV9VTEwoMHg2MjlhMjkyYTM2N2NkNTA3KTsKICAgICBzaGFfaW5mby0+ZGlnZXN0WzJdID0gUHlfVUxMKDB4OTE1OTAxNWEzMDcwZGQxNyk7CkBAIC0zMTAsNyArMzAwLDcgQEAKICAgICAgICAgbWVtY3B5KCgoU0hBX0JZVEUgKikgc2hhX2luZm8tPmRhdGEpICsgc2hhX2luZm8tPmxvY2FsLCBidWZmZXIsIGkpOwogICAgICAgICBjb3VudCAtPSBpOwogICAgICAgICBidWZmZXIgKz0gaTsKLSAgICAgICAgc2hhX2luZm8tPmxvY2FsICs9IGk7CisgICAgICAgIHNoYV9pbmZvLT5sb2NhbCArPSAoaW50KWk7CiAgICAgICAgIGlmIChzaGFfaW5mby0+bG9jYWwgPT0gU0hBX0JMT0NLU0laRSkgewogICAgICAgICAgICAgc2hhNTEyX3RyYW5zZm9ybShzaGFfaW5mbyk7CiAgICAgICAgIH0KQEAgLTMyNSw3ICszMTUsNyBAQAogICAgICAgICBzaGE1MTJfdHJhbnNmb3JtKHNoYV9pbmZvKTsKICAgICB9CiAgICAgbWVtY3B5KHNoYV9pbmZvLT5kYXRhLCBidWZmZXIsIGNvdW50KTsKLSAgICBzaGFfaW5mby0+bG9jYWwgPSBjb3VudDsKKyAgICBzaGFfaW5mby0+bG9jYWwgPSAoaW50KWNvdW50OwogfQogCiAvKiBmaW5pc2ggY29tcHV0aW5nIHRoZSBTSEEgZGlnZXN0ICovCmRpZmYgLS1naXQgYS9Nb2R1bGVzL3NpZ25hbG1vZHVsZS5jIGIvTW9kdWxlcy9zaWduYWxtb2R1bGUuYwppbmRleCBmYmUxYmI3Li4xMjI1MzBiIDEwMDY0NAotLS0gYS9Nb2R1bGVzL3NpZ25hbG1vZHVsZS5jCisrKyBiL01vZHVsZXMvc2lnbmFsbW9kdWxlLmMKQEAgLTksNyArOSw3IEBACiAjZW5kaWYKIAogI2lmZGVmIE1TX1dJTkRPV1MKLSNpbmNsdWRlIDxXaW5kb3dzLmg+CisjaW5jbHVkZSA8d2luZG93cy5oPgogI2lmZGVmIEhBVkVfUFJPQ0VTU19ICiAjaW5jbHVkZSA8cHJvY2Vzcy5oPgogI2VuZGlmCkBAIC0zNywxMSArMzcsNiBAQAogI2RlZmluZSBTSUdfRVJSICgoUHlPU19zaWdoYW5kbGVyX3QpKC0xKSkKICNlbmRpZgogCi0jaWYgZGVmaW5lZChQWU9TX09TMikgJiYgIWRlZmluZWQoUFlDQ19HQ0MpCi0jZGVmaW5lIE5TSUcgMTIKLSNpbmNsdWRlIDxwcm9jZXNzLmg+Ci0jZW5kaWYKLQogI2lmbmRlZiBOU0lHCiAjIGlmIGRlZmluZWQoX05TSUcpCiAjICBkZWZpbmUgTlNJRyBfTlNJRyAgICAgICAgICAgIC8qIEZvciBCU0QvU3lzViAqLwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9zb2NrZXRtb2R1bGUuYyBiL01vZHVsZXMvc29ja2V0bW9kdWxlLmMKaW5kZXggYjk1NzkyOC4uZjFlMzEwZCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9zb2NrZXRtb2R1bGUuYworKysgYi9Nb2R1bGVzL3NvY2tldG1vZHVsZS5jCkBAIC0xNSw3ICsxNSw3IEBACiAKIE1vZHVsZSBpbnRlcmZhY2U6CiAKLS0gc29ja2V0LmVycm9yOiBleGNlcHRpb24gcmFpc2VkIGZvciBzb2NrZXQgc3BlY2lmaWMgZXJyb3JzCistIHNvY2tldC5lcnJvcjogZXhjZXB0aW9uIHJhaXNlZCBmb3Igc29ja2V0IHNwZWNpZmljIGVycm9ycywgYWxpYXMgZm9yIE9TRXJyb3IKIC0gc29ja2V0LmdhaWVycm9yOiBleGNlcHRpb24gcmFpc2VkIGZvciBnZXRhZGRyaW5mby9nZXRuYW1laW5mbyBlcnJvcnMsCiAgICAgYSBzdWJjbGFzcyBvZiBzb2NrZXQuZXJyb3IKIC0gc29ja2V0LmhlcnJvcjogZXhjZXB0aW9uIHJhaXNlZCBmb3IgZ2V0aG9zdGJ5KiBlcnJvcnMsCkBAIC05NSw5ICs5NSw2IEBACiAjaW5jbHVkZSAiUHl0aG9uLmgiCiAjaW5jbHVkZSAic3RydWN0bWVtYmVyLmgiCiAKLSN1bmRlZiBNQVgKLSNkZWZpbmUgTUFYKHgsIHkpICgoeCkgPCAoeSkgPyAoeSkgOiAoeCkpCi0KIC8qIFNvY2tldCBvYmplY3QgZG9jdW1lbnRhdGlvbiAqLwogUHlEb2NfU1RSVkFSKHNvY2tfZG9jLAogInNvY2tldChbZmFtaWx5WywgdHlwZVssIHByb3RvXV1dKSAtPiBzb2NrZXQgb2JqZWN0XG5cCkBAIC0yMjMsMTMgKzIyMCw2IEBACiAjZW5kaWYKIAogCi0jaWYgZGVmaW5lZChQWU9TX09TMikKLSMgZGVmaW5lICBJTkNMX0RPUwotIyBkZWZpbmUgIElOQ0xfRE9TRVJST1JTCi0jIGRlZmluZSAgSU5DTF9OT1BNQVBJCi0jIGluY2x1ZGUgPG9zMi5oPgotI2VuZGlmCi0KICNpZiBkZWZpbmVkKF9fc2dpKSAmJiBfQ09NUElMRVJfVkVSU0lPTj43MDAgJiYgIV9TR0lBUEkKIC8qIG1ha2Ugc3VyZSB0aGF0IHRoZSByZWVudHJhbnQgKGdldGhvc3RieWFkZHJfciBldGMpCiAgICBmdW5jdGlvbnMgYXJlIGRlY2xhcmVkIGNvcnJlY3RseSBpZiBjb21waWxpbmcgd2l0aApAQCAtMjg2LDEyICsyNzYsNyBAQAogIyBpbmNsdWRlIDx1bmlzdGQuaD4KIAogLyogSGVhZGVycyBuZWVkZWQgZm9yIGluZXRfbnRvYSgpIGFuZCBpbmV0X2FkZHIoKSAqLwotIyBpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiBkZWZpbmVkKFBZQ0NfVkFDUFApCi0jICBpbmNsdWRlIDxuZXRkYi5oPgotdHlwZWRlZiBzaXplX3Qgc29ja2xlbl90OwotIyBlbHNlCiAjICAgaW5jbHVkZSA8YXJwYS9pbmV0Lmg+Ci0jIGVuZGlmCiAKICMgIGluY2x1ZGUgPGZjbnRsLmg+CiAKQEAgLTM5NSwxMSArMzgwLDYgQEAKICNkZWZpbmUgc25wcmludGYgX3NucHJpbnRmCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoUFlPU19PUzIpICYmICFkZWZpbmVkKFBZQ0NfR0NDKQotI2RlZmluZSBTT0NLRVRDTE9TRSBzb2Nsb3NlCi0jZGVmaW5lIE5PX0RVUCAvKiBTb2NrZXRzIGFyZSBOb3QgQWN0dWFsIEZpbGUgSGFuZGxlcyB1bmRlciBPUy8yICovCi0jZW5kaWYKLQogI2lmbmRlZiBTT0NLRVRDTE9TRQogI2RlZmluZSBTT0NLRVRDTE9TRSBjbG9zZQogI2VuZGlmCkBAIC01MzQsNDIgKzUxNCw2IEBACiAgICAgICAgIHJldHVybiBQeUVycl9TZXRFeGNGcm9tV2luZG93c0VycihQeUV4Y19PU0Vycm9yLCBlcnJfbm8pOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiAhZGVmaW5lZChQWUNDX0dDQykKLSAgICBpZiAoc29ja19lcnJubygpICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgIEFQSVJFVCByYzsKLSAgICAgICAgVUxPTkcgIG1zZ2xlbjsKLSAgICAgICAgY2hhciBvdXRidWZbMTAwXTsKLSAgICAgICAgaW50IG15ZXJyb3Jjb2RlID0gc29ja19lcnJubygpOwotCi0gICAgICAgIC8qIFJldHJpZXZlIHNvY2tldC1yZWxhdGVkIGVycm9yIG1lc3NhZ2UgZnJvbSBNUFROLk1TRyBmaWxlICovCi0gICAgICAgIHJjID0gRG9zR2V0TWVzc2FnZShOVUxMLCAwLCBvdXRidWYsIHNpemVvZihvdXRidWYpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgbXllcnJvcmNvZGUgLSBTT0NCQVNFRVJSICsgMjYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAibXB0bi5tc2ciLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1zZ2xlbik7Ci0gICAgICAgIGlmIChyYyA9PSBOT19FUlJPUikgewotICAgICAgICAgICAgUHlPYmplY3QgKnY7Ci0KLSAgICAgICAgICAgIC8qIE9TLzIgZG9lc24ndCBndWFyYW50ZWUgYSB0ZXJtaW5hdG9yICovCi0gICAgICAgICAgICBvdXRidWZbbXNnbGVuXSA9ICdcMCc7Ci0gICAgICAgICAgICBpZiAoc3RybGVuKG91dGJ1ZikgPiAwKSB7Ci0gICAgICAgICAgICAgICAgLyogSWYgbm9uLWVtcHR5IG1zZywgdHJpbSBDUkxGICovCi0gICAgICAgICAgICAgICAgY2hhciAqbGFzdGMgPSAmb3V0YnVmWyBzdHJsZW4ob3V0YnVmKS0xIF07Ci0gICAgICAgICAgICAgICAgd2hpbGUgKGxhc3RjID4gb3V0YnVmICYmCi0gICAgICAgICAgICAgICAgICAgICAgIFB5X0lTU1BBQ0UoUHlfQ0hBUk1BU0soKmxhc3RjKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgLyogVHJpbSB0cmFpbGluZyB3aGl0ZXNwYWNlIChDUkxGKSAqLwotICAgICAgICAgICAgICAgICAgICAqbGFzdGMtLSA9ICdcMCc7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgdiA9IFB5X0J1aWxkVmFsdWUoIihpcykiLCBteWVycm9yY29kZSwgb3V0YnVmKTsKLSAgICAgICAgICAgIGlmICh2ICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRPYmplY3QoUHlFeGNfT1NFcnJvciwgdik7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKLQogICAgIHJldHVybiBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiB9CiAKQEAgLTY1OCwyMCArNjAyLDE3IEBACiAKICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCiAjaWZuZGVmIE1TX1dJTkRPV1MKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiAhZGVmaW5lZChQWUNDX0dDQykKLSAgICBibG9jayA9ICFibG9jazsKLSAgICBpb2N0bChzLT5zb2NrX2ZkLCBGSU9OQklPLCAoY2FkZHJfdCkmYmxvY2ssIHNpemVvZihibG9jaykpOwotI2VsaWYgZGVmaW5lZChfX1ZNUykKKyNpZiBkZWZpbmVkKF9fVk1TKQogICAgIGJsb2NrID0gIWJsb2NrOwogICAgIGlvY3RsKHMtPnNvY2tfZmQsIEZJT05CSU8sICh1bnNpZ25lZCBpbnQgKikmYmxvY2spOwotI2Vsc2UgIC8qICFQWU9TX09TMiAmJiAhX19WTVMgKi8KKyNlbHNlICAvKiAhX19WTVMgKi8KICAgICBkZWxheV9mbGFnID0gZmNudGwocy0+c29ja19mZCwgRl9HRVRGTCwgMCk7CiAgICAgaWYgKGJsb2NrKQogICAgICAgICBkZWxheV9mbGFnICY9ICh+T19OT05CTE9DSyk7CiAgICAgZWxzZQogICAgICAgICBkZWxheV9mbGFnIHw9IE9fTk9OQkxPQ0s7CiAgICAgZmNudGwocy0+c29ja19mZCwgRl9TRVRGTCwgZGVsYXlfZmxhZyk7Ci0jZW5kaWYgLyogIVBZT1NfT1MyICovCisjZW5kaWYgLyogIV9fVk1TICovCiAjZWxzZSAvKiBNU19XSU5ET1dTICovCiAgICAgYmxvY2sgPSAhYmxvY2s7CiAgICAgaW9jdGxzb2NrZXQocy0+c29ja19mZCwgRklPTkJJTywgKHVfbG9uZyopJmJsb2NrKTsKQEAgLTEzMjksMTEgKzEyNzAsNyBAQAogICAgICAgICB9CiAgICAgICAgIGFkZHItPnN1bl9mYW1pbHkgPSBzLT5zb2NrX2ZhbWlseTsKICAgICAgICAgbWVtY3B5KGFkZHItPnN1bl9wYXRoLCBwYXRoLCBsZW4pOwotI2lmIGRlZmluZWQoUFlPU19PUzIpCi0gICAgICAgICpsZW5fcmV0ID0gc2l6ZW9mKCphZGRyKTsKLSNlbHNlCiAgICAgICAgICpsZW5fcmV0ID0gbGVuICsgb2Zmc2V0b2Yoc3RydWN0IHNvY2thZGRyX3VuLCBzdW5fcGF0aCk7Ci0jZW5kaWYKICAgICAgICAgcmV0dmFsID0gMTsKICAgICB1bml4X291dDoKICAgICAgICAgUHlfREVDUkVGKGFyZ3MpOwpAQCAtMTY1OCw2ICsxNTk1LDggQEAKICAgICBjYXNlIEFGX0NBTjoKICAgICAgICAgc3dpdGNoIChzLT5zb2NrX3Byb3RvKSB7CiAgICAgICAgIGNhc2UgQ0FOX1JBVzoKKyAgICAgICAgLyogZmFsbC10aHJvdWdoICovCisgICAgICAgIGNhc2UgQ0FOX0JDTToKICAgICAgICAgewogICAgICAgICAgICAgc3RydWN0IHNvY2thZGRyX2NhbiAqYWRkcjsKICAgICAgICAgICAgIFB5T2JqZWN0ICppbnRlcmZhY2VOYW1lOwpAQCAtMjgyMSwxMyArMjc2MCw4IEBACiAgICAgdGltZW91dCA9IGludGVybmFsX3NlbGVjdF9leChzLCAwLCBpbnRlcnZhbCk7CiAgICAgaWYgKCF0aW1lb3V0KSB7CiAjaWZuZGVmIE1TX1dJTkRPV1MKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiAhZGVmaW5lZChQWUNDX0dDQykKLSAgICAgICAgbiA9IHJlY3Zmcm9tKHMtPnNvY2tfZmQsIGNidWYsIGxlbiwgZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICBTQVMyU0EoJmFkZHJidWYpLCAmYWRkcmxlbik7Ci0jZWxzZQogICAgICAgICBuID0gcmVjdmZyb20ocy0+c29ja19mZCwgY2J1ZiwgbGVuLCBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopICZhZGRyYnVmLCAmYWRkcmxlbik7Ci0jZW5kaWYKICNlbHNlCiAgICAgICAgIG4gPSByZWN2ZnJvbShzLT5zb2NrX2ZkLCBjYnVmLCBsZW4sIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgU0FTMlNBKCZhZGRyYnVmKSwgJmFkZHJsZW4pOwpAQCAtNDg4Miw3ICs0ODE2LDcgQEAKICAgICBjaGFyKiBpcDsKICAgICBpbnQgcmV0dmFsOwogI2lmZGVmIEVOQUJMRV9JUFY2Ci0gICAgY2hhciBwYWNrZWRbTUFYKHNpemVvZihzdHJ1Y3QgaW5fYWRkciksIHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpKV07CisgICAgY2hhciBwYWNrZWRbUHlfTUFYKHNpemVvZihzdHJ1Y3QgaW5fYWRkciksIHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpKV07CiAjZWxzZQogICAgIGNoYXIgcGFja2VkW3NpemVvZihzdHJ1Y3QgaW5fYWRkcildOwogI2VuZGlmCkBAIC00OTMzLDcgKzQ4NjcsNyBAQAogICAgIGludCBsZW47CiAgICAgY29uc3QgY2hhciogcmV0dmFsOwogI2lmZGVmIEVOQUJMRV9JUFY2Ci0gICAgY2hhciBpcFtNQVgoSU5FVF9BRERSU1RSTEVOLCBJTkVUNl9BRERSU1RSTEVOKSArIDFdOworICAgIGNoYXIgaXBbUHlfTUFYKElORVRfQUREUlNUUkxFTiwgSU5FVDZfQUREUlNUUkxFTikgKyAxXTsKICNlbHNlCiAgICAgY2hhciBpcFtJTkVUX0FERFJTVFJMRU4gKyAxXTsKICNlbmRpZgpAQCAtNTUxOSwzMiArNTQ1Myw2IEBACiAjZW5kaWYgLyogTVNfV0lORE9XUyAqLwogCiAKLSNpZmRlZiBQWU9TX09TMgotI2RlZmluZSBPU19JTklUX0RFRklORUQKLQotLyogQWRkaXRpb25hbCBpbml0aWFsaXphdGlvbiBmb3IgT1MvMiAqLwotCi1zdGF0aWMgaW50Ci1vc19pbml0KHZvaWQpCi17Ci0jaWZuZGVmIFBZQ0NfR0NDCi0gICAgaW50IHJjID0gc29ja19pbml0KCk7Ci0KLSAgICBpZiAocmMgPT0gMCkgewotICAgICAgICByZXR1cm4gMTsgLyogU3VjY2VzcyAqLwotICAgIH0KLQotICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19JbXBvcnRFcnJvciwgIk9TLzIgVENQL0lQIEVycm9yIyAlZCIsIHNvY2tfZXJybm8oKSk7Ci0KLSAgICByZXR1cm4gMDsgIC8qIEZhaWx1cmUgKi8KLSNlbHNlCi0gICAgLyogTm8gbmVlZCB0byBpbml0aWFsaXplIHNvY2tldHMgd2l0aCBHQ0MvRU1YICovCi0gICAgcmV0dXJuIDE7IC8qIFN1Y2Nlc3MgKi8KLSNlbmRpZgotfQotCi0jZW5kaWYgLyogUFlPU19PUzIgKi8KLQogCiAjaWZuZGVmIE9TX0lOSVRfREVGSU5FRAogc3RhdGljIGludApAQCAtNTY1NCwxODQgKzU1NjIsMTg3IEBACiAKICAgICAvKiBBZGRyZXNzIGZhbWlsaWVzICh3ZSBvbmx5IHN1cHBvcnQgQUZfSU5FVCBhbmQgQUZfVU5JWCkgKi8KICNpZmRlZiBBRl9VTlNQRUMKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQUZfVU5TUEVDIiwgQUZfVU5TUEVDKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBRl9VTlNQRUMpOwogI2VuZGlmCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX0lORVQiLCBBRl9JTkVUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBRl9JTkVUKTsKICNpZmRlZiBBRl9JTkVUNgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJBRl9JTkVUNiIsIEFGX0lORVQ2KTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBRl9JTkVUNik7CiAjZW5kaWYgLyogQUZfSU5FVDYgKi8KICNpZiBkZWZpbmVkKEFGX1VOSVgpCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX1VOSVgiLCBBRl9VTklYKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBRl9VTklYKTsKICNlbmRpZiAvKiBBRl9VTklYICovCiAjaWZkZWYgQUZfQVgyNQogICAgIC8qIEFtYXRldXIgUmFkaW8gQVguMjUgKi8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQUZfQVgyNSIsIEFGX0FYMjUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFGX0FYMjUpOwogI2VuZGlmCiAjaWZkZWYgQUZfSVBYCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX0lQWCIsIEFGX0lQWCk7IC8qIE5vdmVsbCBJUFggKi8KKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBRl9JUFgpOyAvKiBOb3ZlbGwgSVBYICovCiAjZW5kaWYKICNpZmRlZiBBRl9BUFBMRVRBTEsKICAgICAvKiBBcHBsZXRhbGsgRERQICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX0FQUExFVEFMSyIsIEFGX0FQUExFVEFMSyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQUZfQVBQTEVUQUxLKTsKICNlbmRpZgogI2lmZGVmIEFGX05FVFJPTQogICAgIC8qIEFtYXRldXIgcmFkaW8gTmV0Uk9NICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX05FVFJPTSIsIEFGX05FVFJPTSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQUZfTkVUUk9NKTsKICNlbmRpZgogI2lmZGVmIEFGX0JSSURHRQogICAgIC8qIE11bHRpcHJvdG9jb2wgYnJpZGdlICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX0JSSURHRSIsIEFGX0JSSURHRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQUZfQlJJREdFKTsKICNlbmRpZgogI2lmZGVmIEFGX0FUTVBWQwogICAgIC8qIEFUTSBQVkNzICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX0FUTVBWQyIsIEFGX0FUTVBWQyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQUZfQVRNUFZDKTsKICNlbmRpZgogI2lmZGVmIEFGX0FBTDUKICAgICAvKiBSZXNlcnZlZCBmb3IgV2VybmVyJ3MgQVRNICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX0FBTDUiLCBBRl9BQUw1KTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBRl9BQUw1KTsKICNlbmRpZgogI2lmZGVmIEFGX1gyNQogICAgIC8qIFJlc2VydmVkIGZvciBYLjI1IHByb2plY3QgKi8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQUZfWDI1IiwgQUZfWDI1KTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBRl9YMjUpOwogI2VuZGlmCiAjaWZkZWYgQUZfSU5FVDYKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQUZfSU5FVDYiLCBBRl9JTkVUNik7IC8qIElQIHZlcnNpb24gNiAqLworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFGX0lORVQ2KTsgLyogSVAgdmVyc2lvbiA2ICovCiAjZW5kaWYKICNpZmRlZiBBRl9ST1NFCiAgICAgLyogQW1hdGV1ciBSYWRpbyBYLjI1IFBMUCAqLwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJBRl9ST1NFIiwgQUZfUk9TRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQUZfUk9TRSk7CiAjZW5kaWYKICNpZmRlZiBBRl9ERUNuZXQKICAgICAvKiBSZXNlcnZlZCBmb3IgREVDbmV0IHByb2plY3QgKi8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQUZfREVDbmV0IiwgQUZfREVDbmV0KTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBRl9ERUNuZXQpOwogI2VuZGlmCiAjaWZkZWYgQUZfTkVUQkVVSQogICAgIC8qIFJlc2VydmVkIGZvciA4MDIuMkxMQyBwcm9qZWN0ICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX05FVEJFVUkiLCBBRl9ORVRCRVVJKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBRl9ORVRCRVVJKTsKICNlbmRpZgogI2lmZGVmIEFGX1NFQ1VSSVRZCiAgICAgLyogU2VjdXJpdHkgY2FsbGJhY2sgcHNldWRvIEFGICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX1NFQ1VSSVRZIiwgQUZfU0VDVVJJVFkpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFGX1NFQ1VSSVRZKTsKICNlbmRpZgogI2lmZGVmIEFGX0tFWQogICAgIC8qIFBGX0tFWSBrZXkgbWFuYWdlbWVudCBBUEkgKi8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQUZfS0VZIiwgQUZfS0VZKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBRl9LRVkpOwogI2VuZGlmCiAjaWZkZWYgQUZfTkVUTElOSwogICAgIC8qICAqLwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJBRl9ORVRMSU5LIiwgQUZfTkVUTElOSyk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk5FVExJTktfUk9VVEUiLCBORVRMSU5LX1JPVVRFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBRl9ORVRMSU5LKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBORVRMSU5LX1JPVVRFKTsKICNpZmRlZiBORVRMSU5LX1NLSVAKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkVUTElOS19TS0lQIiwgTkVUTElOS19TS0lQKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBORVRMSU5LX1NLSVApOwogI2VuZGlmCiAjaWZkZWYgTkVUTElOS19XMQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJORVRMSU5LX1cxIiwgTkVUTElOS19XMSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTkVUTElOS19XMSk7CiAjZW5kaWYKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkVUTElOS19VU0VSU09DSyIsIE5FVExJTktfVVNFUlNPQ0spOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJORVRMSU5LX0ZJUkVXQUxMIiwgTkVUTElOS19GSVJFV0FMTCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTkVUTElOS19VU0VSU09DSyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTkVUTElOS19GSVJFV0FMTCk7CiAjaWZkZWYgTkVUTElOS19UQ1BESUFHCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk5FVExJTktfVENQRElBRyIsIE5FVExJTktfVENQRElBRyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTkVUTElOS19UQ1BESUFHKTsKICNlbmRpZgogI2lmZGVmIE5FVExJTktfTkZMT0cKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkVUTElOS19ORkxPRyIsIE5FVExJTktfTkZMT0cpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE5FVExJTktfTkZMT0cpOwogI2VuZGlmCiAjaWZkZWYgTkVUTElOS19YRlJNCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk5FVExJTktfWEZSTSIsIE5FVExJTktfWEZSTSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTkVUTElOS19YRlJNKTsKICNlbmRpZgogI2lmZGVmIE5FVExJTktfQVJQRAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJORVRMSU5LX0FSUEQiLCBORVRMSU5LX0FSUEQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE5FVExJTktfQVJQRCk7CiAjZW5kaWYKICNpZmRlZiBORVRMSU5LX1JPVVRFNgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJORVRMSU5LX1JPVVRFNiIsIE5FVExJTktfUk9VVEU2KTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBORVRMSU5LX1JPVVRFNik7CiAjZW5kaWYKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkVUTElOS19JUDZfRlciLCBORVRMSU5LX0lQNl9GVyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTkVUTElOS19JUDZfRlcpOwogI2lmZGVmIE5FVExJTktfRE5SVE1TRwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJORVRMSU5LX0ROUlRNU0ciLCBORVRMSU5LX0ROUlRNU0cpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE5FVExJTktfRE5SVE1TRyk7CiAjZW5kaWYKICNpZmRlZiBORVRMSU5LX1RBUEJBU0UKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkVUTElOS19UQVBCQVNFIiwgTkVUTElOS19UQVBCQVNFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBORVRMSU5LX1RBUEJBU0UpOwogI2VuZGlmCiAjZW5kaWYgLyogQUZfTkVUTElOSyAqLwogI2lmZGVmIEFGX1JPVVRFCiAgICAgLyogQWxpYXMgdG8gZW11bGF0ZSA0LjRCU0QgKi8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQUZfUk9VVEUiLCBBRl9ST1VURSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQUZfUk9VVEUpOworI2VuZGlmCisjaWZkZWYgQUZfTElOSworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFGX0xJTkspOwogI2VuZGlmCiAjaWZkZWYgQUZfQVNICiAgICAgLyogQXNoICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX0FTSCIsIEFGX0FTSCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQUZfQVNIKTsKICNlbmRpZgogI2lmZGVmIEFGX0VDT05FVAogICAgIC8qIEFjb3JuIEVjb25ldCAqLwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJBRl9FQ09ORVQiLCBBRl9FQ09ORVQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFGX0VDT05FVCk7CiAjZW5kaWYKICNpZmRlZiBBRl9BVE1TVkMKICAgICAvKiBBVE0gU1ZDcyAqLwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJBRl9BVE1TVkMiLCBBRl9BVE1TVkMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFGX0FUTVNWQyk7CiAjZW5kaWYKICNpZmRlZiBBRl9TTkEKICAgICAvKiBMaW51eCBTTkEgUHJvamVjdCAobnV0dGVycyEpICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX1NOQSIsIEFGX1NOQSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQUZfU05BKTsKICNlbmRpZgogI2lmZGVmIEFGX0lSREEKICAgICAvKiBJUkRBIHNvY2tldHMgKi8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQUZfSVJEQSIsIEFGX0lSREEpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFGX0lSREEpOwogI2VuZGlmCiAjaWZkZWYgQUZfUFBQT1gKICAgICAvKiBQUFBvWCBzb2NrZXRzICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX1BQUE9YIiwgQUZfUFBQT1gpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFGX1BQUE9YKTsKICNlbmRpZgogI2lmZGVmIEFGX1dBTlBJUEUKICAgICAvKiBXYW5waXBlIEFQSSBTb2NrZXRzICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX1dBTlBJUEUiLCBBRl9XQU5QSVBFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBRl9XQU5QSVBFKTsKICNlbmRpZgogI2lmZGVmIEFGX0xMQwogICAgIC8qIExpbnV4IExMQyAqLwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJBRl9MTEMiLCBBRl9MTEMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFGX0xMQyk7CiAjZW5kaWYKIAogI2lmZGVmIFVTRV9CTFVFVE9PVEgKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQUZfQkxVRVRPT1RIIiwgQUZfQkxVRVRPT1RIKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQlRQUk9UT19MMkNBUCIsIEJUUFJPVE9fTDJDQVApOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJCVFBST1RPX0hDSSIsIEJUUFJPVE9fSENJKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09MX0hDSSIsIFNPTF9IQ0kpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFGX0JMVUVUT09USCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQlRQUk9UT19MMkNBUCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQlRQUk9UT19IQ0kpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPTF9IQ0kpOwogI2lmICFkZWZpbmVkKF9fTmV0QlNEX18pICYmICFkZWZpbmVkKF9fRHJhZ29uRmx5X18pCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkhDSV9GSUxURVIiLCBIQ0lfRklMVEVSKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBIQ0lfRklMVEVSKTsKICNlbmRpZgogI2lmICFkZWZpbmVkKF9fRnJlZUJTRF9fKQogI2lmICFkZWZpbmVkKF9fTmV0QlNEX18pICYmICFkZWZpbmVkKF9fRHJhZ29uRmx5X18pCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkhDSV9USU1FX1NUQU1QIiwgSENJX1RJTUVfU1RBTVApOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEhDSV9USU1FX1NUQU1QKTsKICNlbmRpZgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJIQ0lfREFUQV9ESVIiLCBIQ0lfREFUQV9ESVIpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJCVFBST1RPX1NDTyIsIEJUUFJPVE9fU0NPKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBIQ0lfREFUQV9ESVIpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEJUUFJPVE9fU0NPKTsKICNlbmRpZgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJCVFBST1RPX1JGQ09NTSIsIEJUUFJPVE9fUkZDT01NKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBCVFBST1RPX1JGQ09NTSk7CiAgICAgUHlNb2R1bGVfQWRkU3RyaW5nQ29uc3RhbnQobSwgIkJEQUREUl9BTlkiLCAiMDA6MDA6MDA6MDA6MDA6MDAiKTsKICAgICBQeU1vZHVsZV9BZGRTdHJpbmdDb25zdGFudChtLCAiQkRBRERSX0xPQ0FMIiwgIjAwOjAwOjAwOkZGOkZGOkZGIik7CiAjZW5kaWYKIAogI2lmZGVmIEFGX0NBTgogICAgIC8qIENvbnRyb2xsZXIgQXJlYSBOZXR3b3JrICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX0NBTiIsIEFGX0NBTik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQUZfQ0FOKTsKICNlbmRpZgogI2lmZGVmIFBGX0NBTgogICAgIC8qIENvbnRyb2xsZXIgQXJlYSBOZXR3b3JrICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlBGX0NBTiIsIFBGX0NBTik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUEZfQ0FOKTsKICNlbmRpZgogCiAvKiBSZWxpYWJsZSBEYXRhZ3JhbSBTb2NrZXRzICovCiAjaWZkZWYgQUZfUkRTCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX1JEUyIsIEFGX1JEUyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQUZfUkRTKTsKICNlbmRpZgogI2lmZGVmIFBGX1JEUwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQRl9SRFMiLCBQRl9SRFMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBGX1JEUyk7CiAjZW5kaWYKIAogLyogS2VybmVsIGV2ZW50IG1lc3NhZ2VzICovCiAjaWZkZWYgUEZfU1lTVEVNCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlBGX1NZU1RFTSIsIFBGX1NZU1RFTSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUEZfU1lTVEVNKTsKICNlbmRpZgogI2lmZGVmIEFGX1NZU1RFTQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJBRl9TWVNURU0iLCBBRl9TWVNURU0pOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFGX1NZU1RFTSk7CiAjZW5kaWYKIAogI2lmZGVmIEFGX1BBQ0tFVApAQCAtNTg2MywxMzQgKzU3NzQsMTI5IEBACiAjZW5kaWYKIAogI2lmZGVmIEhBVkVfTElOVVhfVElQQ19ICi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX1RJUEMiLCBBRl9USVBDKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBRl9USVBDKTsKIAogICAgIC8qIGZvciBhZGRyZXNzZXMgKi8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVElQQ19BRERSX05BTUVTRVEiLCBUSVBDX0FERFJfTkFNRVNFUSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlRJUENfQUREUl9OQU1FIiwgVElQQ19BRERSX05BTUUpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUSVBDX0FERFJfSUQiLCBUSVBDX0FERFJfSUQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFRJUENfQUREUl9OQU1FU0VRKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBUSVBDX0FERFJfTkFNRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgVElQQ19BRERSX0lEKTsKIAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUSVBDX1pPTkVfU0NPUEUiLCBUSVBDX1pPTkVfU0NPUEUpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUSVBDX0NMVVNURVJfU0NPUEUiLCBUSVBDX0NMVVNURVJfU0NPUEUpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUSVBDX05PREVfU0NPUEUiLCBUSVBDX05PREVfU0NPUEUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFRJUENfWk9ORV9TQ09QRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgVElQQ19DTFVTVEVSX1NDT1BFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBUSVBDX05PREVfU0NPUEUpOwogCiAgICAgLyogZm9yIHNldHNvY2tvcHQoKSAqLwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTT0xfVElQQyIsIFNPTF9USVBDKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVElQQ19JTVBPUlRBTkNFIiwgVElQQ19JTVBPUlRBTkNFKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVElQQ19TUkNfRFJPUFBBQkxFIiwgVElQQ19TUkNfRFJPUFBBQkxFKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVElQQ19ERVNUX0RST1BQQUJMRSIsCi0gICAgICAgICAgICAgICAgICAgIFRJUENfREVTVF9EUk9QUEFCTEUpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUSVBDX0NPTk5fVElNRU9VVCIsIFRJUENfQ09OTl9USU1FT1VUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT0xfVElQQyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgVElQQ19JTVBPUlRBTkNFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBUSVBDX1NSQ19EUk9QUEFCTEUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFRJUENfREVTVF9EUk9QUEFCTEUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFRJUENfQ09OTl9USU1FT1VUKTsKIAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUSVBDX0xPV19JTVBPUlRBTkNFIiwKLSAgICAgICAgICAgICAgICAgICAgVElQQ19MT1dfSU1QT1JUQU5DRSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlRJUENfTUVESVVNX0lNUE9SVEFOQ0UiLAotICAgICAgICAgICAgICAgICAgICBUSVBDX01FRElVTV9JTVBPUlRBTkNFKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVElQQ19ISUdIX0lNUE9SVEFOQ0UiLAotICAgICAgICAgICAgICAgICAgICBUSVBDX0hJR0hfSU1QT1JUQU5DRSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlRJUENfQ1JJVElDQUxfSU1QT1JUQU5DRSIsCi0gICAgICAgICAgICAgICAgICAgIFRJUENfQ1JJVElDQUxfSU1QT1JUQU5DRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgVElQQ19MT1dfSU1QT1JUQU5DRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgVElQQ19NRURJVU1fSU1QT1JUQU5DRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgVElQQ19ISUdIX0lNUE9SVEFOQ0UpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFRJUENfQ1JJVElDQUxfSU1QT1JUQU5DRSk7CiAKICAgICAvKiBmb3Igc3Vic2NyaXB0aW9ucyAqLwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUSVBDX1NVQl9QT1JUUyIsIFRJUENfU1VCX1BPUlRTKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVElQQ19TVUJfU0VSVklDRSIsIFRJUENfU1VCX1NFUlZJQ0UpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFRJUENfU1VCX1BPUlRTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBUSVBDX1NVQl9TRVJWSUNFKTsKICNpZmRlZiBUSVBDX1NVQl9DQU5DRUwKICAgICAvKiBkb2Vzbid0IHNlZW0gdG8gYmUgYXZhaWxhYmxlIGV2ZXJ5d2hlcmUgKi8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVElQQ19TVUJfQ0FOQ0VMIiwgVElQQ19TVUJfQ0FOQ0VMKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBUSVBDX1NVQl9DQU5DRUwpOwogI2VuZGlmCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlRJUENfV0FJVF9GT1JFVkVSIiwgVElQQ19XQUlUX0ZPUkVWRVIpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUSVBDX1BVQkxJU0hFRCIsIFRJUENfUFVCTElTSEVEKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVElQQ19XSVRIRFJBV04iLCBUSVBDX1dJVEhEUkFXTik7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlRJUENfU1VCU0NSX1RJTUVPVVQiLCBUSVBDX1NVQlNDUl9USU1FT1VUKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVElQQ19DRkdfU1JWIiwgVElQQ19DRkdfU1JWKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVElQQ19UT1BfU1JWIiwgVElQQ19UT1BfU1JWKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBUSVBDX1dBSVRfRk9SRVZFUik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgVElQQ19QVUJMSVNIRUQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFRJUENfV0lUSERSQVdOKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBUSVBDX1NVQlNDUl9USU1FT1VUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBUSVBDX0NGR19TUlYpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFRJUENfVE9QX1NSVik7CiAjZW5kaWYKIAogICAgIC8qIFNvY2tldCB0eXBlcyAqLwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTT0NLX1NUUkVBTSIsIFNPQ0tfU1RSRUFNKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09DS19ER1JBTSIsIFNPQ0tfREdSQU0pOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPQ0tfU1RSRUFNKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT0NLX0RHUkFNKTsKIC8qIFdlIGhhdmUgaW5jb21wbGV0ZSBzb2NrZXQgc3VwcG9ydC4gKi8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09DS19SQVciLCBTT0NLX1JBVyk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPQ0tfU0VRUEFDS0VUIiwgU09DS19TRVFQQUNLRVQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPQ0tfUkFXKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT0NLX1NFUVBBQ0tFVCk7CiAjaWYgZGVmaW5lZChTT0NLX1JETSkKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09DS19SRE0iLCBTT0NLX1JETSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU09DS19SRE0pOwogI2VuZGlmCiAjaWZkZWYgU09DS19DTE9FWEVDCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPQ0tfQ0xPRVhFQyIsIFNPQ0tfQ0xPRVhFQyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU09DS19DTE9FWEVDKTsKICNlbmRpZgogI2lmZGVmIFNPQ0tfTk9OQkxPQ0sKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09DS19OT05CTE9DSyIsIFNPQ0tfTk9OQkxPQ0spOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPQ0tfTk9OQkxPQ0spOwogI2VuZGlmCiAKICNpZmRlZiAgU09fREVCVUcKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09fREVCVUciLCBTT19ERUJVRyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU09fREVCVUcpOwogI2VuZGlmCiAjaWZkZWYgIFNPX0FDQ0VQVENPTk4KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09fQUNDRVBUQ09OTiIsIFNPX0FDQ0VQVENPTk4pOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPX0FDQ0VQVENPTk4pOwogI2VuZGlmCiAjaWZkZWYgIFNPX1JFVVNFQUREUgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTT19SRVVTRUFERFIiLCBTT19SRVVTRUFERFIpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPX1JFVVNFQUREUik7CiAjZW5kaWYKICNpZmRlZiBTT19FWENMVVNJVkVBRERSVVNFCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPX0VYQ0xVU0lWRUFERFJVU0UiLCBTT19FWENMVVNJVkVBRERSVVNFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT19FWENMVVNJVkVBRERSVVNFKTsKICNlbmRpZgogCiAjaWZkZWYgIFNPX0tFRVBBTElWRQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTT19LRUVQQUxJVkUiLCBTT19LRUVQQUxJVkUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPX0tFRVBBTElWRSk7CiAjZW5kaWYKICNpZmRlZiAgU09fRE9OVFJPVVRFCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPX0RPTlRST1VURSIsIFNPX0RPTlRST1VURSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU09fRE9OVFJPVVRFKTsKICNlbmRpZgogI2lmZGVmICBTT19CUk9BRENBU1QKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09fQlJPQURDQVNUIiwgU09fQlJPQURDQVNUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT19CUk9BRENBU1QpOwogI2VuZGlmCiAjaWZkZWYgIFNPX1VTRUxPT1BCQUNLCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPX1VTRUxPT1BCQUNLIiwgU09fVVNFTE9PUEJBQ0spOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPX1VTRUxPT1BCQUNLKTsKICNlbmRpZgogI2lmZGVmICBTT19MSU5HRVIKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09fTElOR0VSIiwgU09fTElOR0VSKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT19MSU5HRVIpOwogI2VuZGlmCiAjaWZkZWYgIFNPX09PQklOTElORQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTT19PT0JJTkxJTkUiLCBTT19PT0JJTkxJTkUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPX09PQklOTElORSk7CiAjZW5kaWYKICNpZmRlZiAgU09fUkVVU0VQT1JUCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPX1JFVVNFUE9SVCIsIFNPX1JFVVNFUE9SVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU09fUkVVU0VQT1JUKTsKICNlbmRpZgogI2lmZGVmICBTT19TTkRCVUYKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09fU05EQlVGIiwgU09fU05EQlVGKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT19TTkRCVUYpOwogI2VuZGlmCiAjaWZkZWYgIFNPX1JDVkJVRgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTT19SQ1ZCVUYiLCBTT19SQ1ZCVUYpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPX1JDVkJVRik7CiAjZW5kaWYKICNpZmRlZiAgU09fU05ETE9XQVQKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09fU05ETE9XQVQiLCBTT19TTkRMT1dBVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU09fU05ETE9XQVQpOwogI2VuZGlmCiAjaWZkZWYgIFNPX1JDVkxPV0FUCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPX1JDVkxPV0FUIiwgU09fUkNWTE9XQVQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPX1JDVkxPV0FUKTsKICNlbmRpZgogI2lmZGVmICBTT19TTkRUSU1FTwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTT19TTkRUSU1FTyIsIFNPX1NORFRJTUVPKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT19TTkRUSU1FTyk7CiAjZW5kaWYKICNpZmRlZiAgU09fUkNWVElNRU8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09fUkNWVElNRU8iLCBTT19SQ1ZUSU1FTyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU09fUkNWVElNRU8pOwogI2VuZGlmCiAjaWZkZWYgIFNPX0VSUk9SCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPX0VSUk9SIiwgU09fRVJST1IpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPX0VSUk9SKTsKICNlbmRpZgogI2lmZGVmICBTT19UWVBFCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPX1RZUEUiLCBTT19UWVBFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT19UWVBFKTsKICNlbmRpZgogI2lmZGVmICBTT19TRVRGSUIKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09fU0VURklCIiwgU09fU0VURklCKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT19TRVRGSUIpOwogI2VuZGlmCiAjaWZkZWYgIFNPX1BBU1NDUkVECi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPX1BBU1NDUkVEIiwgU09fUEFTU0NSRUQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPX1BBU1NDUkVEKTsKICNlbmRpZgogI2lmZGVmICBTT19QRUVSQ1JFRAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTT19QRUVSQ1JFRCIsIFNPX1BFRVJDUkVEKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT19QRUVSQ1JFRCk7CiAjZW5kaWYKICNpZmRlZiAgTE9DQUxfUEVFUkNSRUQKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9DQUxfUEVFUkNSRUQiLCBMT0NBTF9QRUVSQ1JFRCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTE9DQUxfUEVFUkNSRUQpOwogI2VuZGlmCiAjaWZkZWYgIFNPX0JJTkRUT0RFVklDRQogICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPX0JJTkRUT0RFVklDRSk7CkBAIC01OTk4LDMxMiArNTkwNCwzMzAgQEAKIAogICAgIC8qIE1heGltdW0gbnVtYmVyIG9mIGNvbm5lY3Rpb25zIGZvciAibGlzdGVuIiAqLwogI2lmZGVmICBTT01BWENPTk4KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09NQVhDT05OIiwgU09NQVhDT05OKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT01BWENPTk4pOwogI2Vsc2UKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09NQVhDT05OIiwgNSk7IC8qIENvbW1vbiB2YWx1ZSAqLwogI2VuZGlmCiAKICAgICAvKiBBbmNpbGxpYXJ5IG1lc3NhZ2UgdHlwZXMgKi8KICNpZmRlZiAgU0NNX1JJR0hUUwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTQ01fUklHSFRTIiwgU0NNX1JJR0hUUyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU0NNX1JJR0hUUyk7CiAjZW5kaWYKICNpZmRlZiAgU0NNX0NSRURFTlRJQUxTCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNDTV9DUkVERU5USUFMUyIsIFNDTV9DUkVERU5USUFMUyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU0NNX0NSRURFTlRJQUxTKTsKICNlbmRpZgogI2lmZGVmICBTQ01fQ1JFRFMKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU0NNX0NSRURTIiwgU0NNX0NSRURTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTQ01fQ1JFRFMpOwogI2VuZGlmCiAKICAgICAvKiBGbGFncyBmb3Igc2VuZCwgcmVjdiAqLwogI2lmZGVmICBNU0dfT09CCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TR19PT0IiLCBNU0dfT09CKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBNU0dfT09CKTsKICNlbmRpZgogI2lmZGVmICBNU0dfUEVFSwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0dfUEVFSyIsIE1TR19QRUVLKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBNU0dfUEVFSyk7CiAjZW5kaWYKICNpZmRlZiAgTVNHX0RPTlRST1VURQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0dfRE9OVFJPVVRFIiwgTVNHX0RPTlRST1VURSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNHX0RPTlRST1VURSk7CiAjZW5kaWYKICNpZmRlZiAgTVNHX0RPTlRXQUlUCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TR19ET05UV0FJVCIsIE1TR19ET05UV0FJVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNHX0RPTlRXQUlUKTsKICNlbmRpZgogI2lmZGVmICBNU0dfRU9SCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TR19FT1IiLCBNU0dfRU9SKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBNU0dfRU9SKTsKICNlbmRpZgogI2lmZGVmICBNU0dfVFJVTkMKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNHX1RSVU5DIiwgTVNHX1RSVU5DKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBNU0dfVFJVTkMpOwogI2VuZGlmCiAjaWZkZWYgIE1TR19DVFJVTkMKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNHX0NUUlVOQyIsIE1TR19DVFJVTkMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE1TR19DVFJVTkMpOwogI2VuZGlmCiAjaWZkZWYgIE1TR19XQUlUQUxMCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TR19XQUlUQUxMIiwgTVNHX1dBSVRBTEwpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE1TR19XQUlUQUxMKTsKICNlbmRpZgogI2lmZGVmICBNU0dfQlRBRwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0dfQlRBRyIsIE1TR19CVEFHKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBNU0dfQlRBRyk7CiAjZW5kaWYKICNpZmRlZiAgTVNHX0VUQUcKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNHX0VUQUciLCBNU0dfRVRBRyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNHX0VUQUcpOwogI2VuZGlmCiAjaWZkZWYgIE1TR19OT1NJR05BTAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0dfTk9TSUdOQUwiLCBNU0dfTk9TSUdOQUwpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE1TR19OT1NJR05BTCk7CiAjZW5kaWYKICNpZmRlZiAgTVNHX05PVElGSUNBVElPTgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0dfTk9USUZJQ0FUSU9OIiwgTVNHX05PVElGSUNBVElPTik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNHX05PVElGSUNBVElPTik7CiAjZW5kaWYKICNpZmRlZiAgTVNHX0NNU0dfQ0xPRVhFQwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0dfQ01TR19DTE9FWEVDIiwgTVNHX0NNU0dfQ0xPRVhFQyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNHX0NNU0dfQ0xPRVhFQyk7CiAjZW5kaWYKICNpZmRlZiAgTVNHX0VSUlFVRVVFCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TR19FUlJRVUVVRSIsIE1TR19FUlJRVUVVRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNHX0VSUlFVRVVFKTsKICNlbmRpZgogI2lmZGVmICBNU0dfQ09ORklSTQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0dfQ09ORklSTSIsIE1TR19DT05GSVJNKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBNU0dfQ09ORklSTSk7CiAjZW5kaWYKICNpZmRlZiAgTVNHX01PUkUKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNHX01PUkUiLCBNU0dfTU9SRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNHX01PUkUpOwogI2VuZGlmCiAjaWZkZWYgIE1TR19FT0YKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNHX0VPRiIsIE1TR19FT0YpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE1TR19FT0YpOwogI2VuZGlmCiAjaWZkZWYgIE1TR19CQ0FTVAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0dfQkNBU1QiLCBNU0dfQkNBU1QpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE1TR19CQ0FTVCk7CiAjZW5kaWYKICNpZmRlZiAgTVNHX01DQVNUCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TR19NQ0FTVCIsIE1TR19NQ0FTVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNHX01DQVNUKTsKKyNlbmRpZgorI2lmZGVmIE1TR19GQVNUT1BFTgorICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE1TR19GQVNUT1BFTik7CiAjZW5kaWYKIAogICAgIC8qIFByb3RvY29sIGxldmVsIGFuZCBudW1iZXJzLCB1c2FibGUgZm9yIFtnc11ldHNvY2tvcHQgKi8KICNpZmRlZiAgU09MX1NPQ0tFVAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTT0xfU09DS0VUIiwgU09MX1NPQ0tFVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU09MX1NPQ0tFVCk7CiAjZW5kaWYKICNpZmRlZiAgU09MX0lQCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPTF9JUCIsIFNPTF9JUCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU09MX0lQKTsKICNlbHNlCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPTF9JUCIsIDApOwogI2VuZGlmCiAjaWZkZWYgIFNPTF9JUFgKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09MX0lQWCIsIFNPTF9JUFgpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPTF9JUFgpOwogI2VuZGlmCiAjaWZkZWYgIFNPTF9BWDI1Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPTF9BWDI1IiwgU09MX0FYMjUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPTF9BWDI1KTsKICNlbmRpZgogI2lmZGVmICBTT0xfQVRBTEsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09MX0FUQUxLIiwgU09MX0FUQUxLKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT0xfQVRBTEspOwogI2VuZGlmCiAjaWZkZWYgIFNPTF9ORVRST00KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09MX05FVFJPTSIsIFNPTF9ORVRST00pOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPTF9ORVRST00pOwogI2VuZGlmCiAjaWZkZWYgIFNPTF9ST1NFCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPTF9ST1NFIiwgU09MX1JPU0UpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPTF9ST1NFKTsKICNlbmRpZgogI2lmZGVmICBTT0xfVENQCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPTF9UQ1AiLCBTT0xfVENQKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT0xfVENQKTsKICNlbHNlCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPTF9UQ1AiLCA2KTsKICNlbmRpZgogI2lmZGVmICBTT0xfVURQCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPTF9VRFAiLCBTT0xfVURQKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT0xfVURQKTsKICNlbHNlCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNPTF9VRFAiLCAxNyk7CiAjZW5kaWYKICNpZmRlZiBTT0xfQ0FOX0JBU0UKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09MX0NBTl9CQVNFIiwgU09MX0NBTl9CQVNFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT0xfQ0FOX0JBU0UpOwogI2VuZGlmCiAjaWZkZWYgU09MX0NBTl9SQVcKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09MX0NBTl9SQVciLCBTT0xfQ0FOX1JBVyk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9SQVciLCBDQU5fUkFXKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT0xfQ0FOX1JBVyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQ0FOX1JBVyk7CiAjZW5kaWYKICNpZmRlZiBIQVZFX0xJTlVYX0NBTl9ICi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9FRkZfRkxBRyIsIENBTl9FRkZfRkxBRyk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9SVFJfRkxBRyIsIENBTl9SVFJfRkxBRyk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9FUlJfRkxBRyIsIENBTl9FUlJfRkxBRyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQ0FOX0VGRl9GTEFHKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBDQU5fUlRSX0ZMQUcpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIENBTl9FUlJfRkxBRyk7CiAKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQ0FOX1NGRl9NQVNLIiwgQ0FOX1NGRl9NQVNLKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQ0FOX0VGRl9NQVNLIiwgQ0FOX0VGRl9NQVNLKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQ0FOX0VSUl9NQVNLIiwgQ0FOX0VSUl9NQVNLKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBDQU5fU0ZGX01BU0spOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIENBTl9FRkZfTUFTSyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQ0FOX0VSUl9NQVNLKTsKICNlbmRpZgogI2lmZGVmIEhBVkVfTElOVVhfQ0FOX1JBV19ICi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9SQVdfRklMVEVSIiwgQ0FOX1JBV19GSUxURVIpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJDQU5fUkFXX0VSUl9GSUxURVIiLCBDQU5fUkFXX0VSUl9GSUxURVIpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJDQU5fUkFXX0xPT1BCQUNLIiwgQ0FOX1JBV19MT09QQkFDSyk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9SQVdfUkVDVl9PV05fTVNHUyIsIENBTl9SQVdfUkVDVl9PV05fTVNHUyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQ0FOX1JBV19GSUxURVIpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIENBTl9SQVdfRVJSX0ZJTFRFUik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQ0FOX1JBV19MT09QQkFDSyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQ0FOX1JBV19SRUNWX09XTl9NU0dTKTsKKyNlbmRpZgorI2lmZGVmIEhBVkVfTElOVVhfQ0FOX0JDTV9ICisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQ0FOX0JDTSk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9CQ01fVFhfU0VUVVAiLCBUWF9TRVRVUCk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9CQ01fVFhfREVMRVRFIiwgVFhfREVMRVRFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQ0FOX0JDTV9UWF9SRUFEIiwgVFhfUkVBRCk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9CQ01fVFhfU0VORCIsIFRYX1NFTkQpOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJDQU5fQkNNX1JYX1NFVFVQIiwgUlhfU0VUVVApOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJDQU5fQkNNX1JYX0RFTEVURSIsIFJYX0RFTEVURSk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9CQ01fUlhfUkVBRCIsIFJYX1JFQUQpOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJDQU5fQkNNX1RYX1NUQVRVUyIsIFRYX1NUQVRVUyk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9CQ01fVFhfRVhQSVJFRCIsIFRYX0VYUElSRUQpOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJDQU5fQkNNX1JYX1NUQVRVUyIsIFJYX1NUQVRVUyk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9CQ01fUlhfVElNRU9VVCIsIFJYX1RJTUVPVVQpOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJDQU5fQkNNX1JYX0NIQU5HRUQiLCBSWF9DSEFOR0VEKTsKICNlbmRpZgogI2lmZGVmIFNPTF9SRFMKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09MX1JEUyIsIFNPTF9SRFMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNPTF9SRFMpOwogI2VuZGlmCiAjaWZkZWYgUkRTX0NBTkNFTF9TRU5UX1RPCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJEU19DQU5DRUxfU0VOVF9UTyIsIFJEU19DQU5DRUxfU0VOVF9UTyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkRTX0NBTkNFTF9TRU5UX1RPKTsKICNlbmRpZgogI2lmZGVmIFJEU19HRVRfTVIKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkRTX0dFVF9NUiIsIFJEU19HRVRfTVIpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFJEU19HRVRfTVIpOwogI2VuZGlmCiAjaWZkZWYgUkRTX0ZSRUVfTVIKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkRTX0ZSRUVfTVIiLCBSRFNfRlJFRV9NUik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkRTX0ZSRUVfTVIpOwogI2VuZGlmCiAjaWZkZWYgUkRTX1JFQ1ZFUlIKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkRTX1JFQ1ZFUlIiLCBSRFNfUkVDVkVSUik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkRTX1JFQ1ZFUlIpOwogI2VuZGlmCiAjaWZkZWYgUkRTX0NPTkdfTU9OSVRPUgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSRFNfQ09OR19NT05JVE9SIiwgUkRTX0NPTkdfTU9OSVRPUik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkRTX0NPTkdfTU9OSVRPUik7CiAjZW5kaWYKICNpZmRlZiBSRFNfR0VUX01SX0ZPUl9ERVNUCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJEU19HRVRfTVJfRk9SX0RFU1QiLCBSRFNfR0VUX01SX0ZPUl9ERVNUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSRFNfR0VUX01SX0ZPUl9ERVNUKTsKICNlbmRpZgogI2lmZGVmICBJUFBST1RPX0lQCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUFJPVE9fSVAiLCBJUFBST1RPX0lQKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBST1RPX0lQKTsKICNlbHNlCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUFJPVE9fSVAiLCAwKTsKICNlbmRpZgogI2lmZGVmICBJUFBST1RPX0hPUE9QVFMKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19IT1BPUFRTIiwgSVBQUk9UT19IT1BPUFRTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBST1RPX0hPUE9QVFMpOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fSUNNUAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX0lDTVAiLCBJUFBST1RPX0lDTVApOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fSUNNUCk7CiAjZWxzZQogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX0lDTVAiLCAxKTsKICNlbmRpZgogI2lmZGVmICBJUFBST1RPX0lHTVAKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19JR01QIiwgSVBQUk9UT19JR01QKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBST1RPX0lHTVApOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fR0dQCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUFJPVE9fR0dQIiwgSVBQUk9UT19HR1ApOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fR0dQKTsKICNlbmRpZgogI2lmZGVmICBJUFBST1RPX0lQVjQKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19JUFY0IiwgSVBQUk9UT19JUFY0KTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBST1RPX0lQVjQpOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fSVBWNgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX0lQVjYiLCBJUFBST1RPX0lQVjYpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fSVBWNik7CiAjZW5kaWYKICNpZmRlZiAgSVBQUk9UT19JUElQCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUFJPVE9fSVBJUCIsIElQUFJPVE9fSVBJUCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBQUk9UT19JUElQKTsKICNlbmRpZgogI2lmZGVmICBJUFBST1RPX1RDUAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX1RDUCIsIElQUFJPVE9fVENQKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBST1RPX1RDUCk7CiAjZWxzZQogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX1RDUCIsIDYpOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fRUdQCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUFJPVE9fRUdQIiwgSVBQUk9UT19FR1ApOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fRUdQKTsKICNlbmRpZgogI2lmZGVmICBJUFBST1RPX1BVUAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX1BVUCIsIElQUFJPVE9fUFVQKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBST1RPX1BVUCk7CiAjZW5kaWYKICNpZmRlZiAgSVBQUk9UT19VRFAKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19VRFAiLCBJUFBST1RPX1VEUCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBQUk9UT19VRFApOwogI2Vsc2UKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19VRFAiLCAxNyk7CiAjZW5kaWYKICNpZmRlZiAgSVBQUk9UT19JRFAKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19JRFAiLCBJUFBST1RPX0lEUCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBQUk9UT19JRFApOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fSEVMTE8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19IRUxMTyIsIElQUFJPVE9fSEVMTE8pOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fSEVMTE8pOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fTkQKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19ORCIsIElQUFJPVE9fTkQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fTkQpOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fVFAKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19UUCIsIElQUFJPVE9fVFApOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fVFApOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fSVBWNgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX0lQVjYiLCBJUFBST1RPX0lQVjYpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fSVBWNik7CiAjZW5kaWYKICNpZmRlZiAgSVBQUk9UT19ST1VUSU5HCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUFJPVE9fUk9VVElORyIsIElQUFJPVE9fUk9VVElORyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBQUk9UT19ST1VUSU5HKTsKICNlbmRpZgogI2lmZGVmICBJUFBST1RPX0ZSQUdNRU5UCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUFJPVE9fRlJBR01FTlQiLCBJUFBST1RPX0ZSQUdNRU5UKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBST1RPX0ZSQUdNRU5UKTsKICNlbmRpZgogI2lmZGVmICBJUFBST1RPX1JTVlAKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19SU1ZQIiwgSVBQUk9UT19SU1ZQKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBST1RPX1JTVlApOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fR1JFCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUFJPVE9fR1JFIiwgSVBQUk9UT19HUkUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fR1JFKTsKICNlbmRpZgogI2lmZGVmICBJUFBST1RPX0VTUAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX0VTUCIsIElQUFJPVE9fRVNQKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBST1RPX0VTUCk7CiAjZW5kaWYKICNpZmRlZiAgSVBQUk9UT19BSAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX0FIIiwgSVBQUk9UT19BSCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBQUk9UT19BSCk7CiAjZW5kaWYKICNpZmRlZiAgSVBQUk9UT19NT0JJTEUKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19NT0JJTEUiLCBJUFBST1RPX01PQklMRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBQUk9UT19NT0JJTEUpOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fSUNNUFY2Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUFJPVE9fSUNNUFY2IiwgSVBQUk9UT19JQ01QVjYpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fSUNNUFY2KTsKICNlbmRpZgogI2lmZGVmICBJUFBST1RPX05PTkUKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19OT05FIiwgSVBQUk9UT19OT05FKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBST1RPX05PTkUpOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fRFNUT1BUUwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX0RTVE9QVFMiLCBJUFBST1RPX0RTVE9QVFMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fRFNUT1BUUyk7CiAjZW5kaWYKICNpZmRlZiAgSVBQUk9UT19YVFAKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19YVFAiLCBJUFBST1RPX1hUUCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBQUk9UT19YVFApOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fRU9OCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUFJPVE9fRU9OIiwgSVBQUk9UT19FT04pOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fRU9OKTsKICNlbmRpZgogI2lmZGVmICBJUFBST1RPX1BJTQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX1BJTSIsIElQUFJPVE9fUElNKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBST1RPX1BJTSk7CiAjZW5kaWYKICNpZmRlZiAgSVBQUk9UT19JUENPTVAKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19JUENPTVAiLCBJUFBST1RPX0lQQ09NUCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBQUk9UT19JUENPTVApOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fVlJSUAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX1ZSUlAiLCBJUFBST1RPX1ZSUlApOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fVlJSUCk7CiAjZW5kaWYKICNpZmRlZiAgSVBQUk9UT19TQ1RQCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUFJPVE9fU0NUUCIsIElQUFJPVE9fU0NUUCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBQUk9UT19TQ1RQKTsKICNlbmRpZgogI2lmZGVmICBJUFBST1RPX0JJUAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX0JJUCIsIElQUFJPVE9fQklQKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBST1RPX0JJUCk7CiAjZW5kaWYKIC8qKi8KICNpZmRlZiAgSVBQUk9UT19SQVcKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19SQVciLCBJUFBST1RPX1JBVyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBQUk9UT19SQVcpOwogI2Vsc2UKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19SQVciLCAyNTUpOwogI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fTUFYCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUFJPVE9fTUFYIiwgSVBQUk9UT19NQVgpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fTUFYKTsKICNlbmRpZgogCiAjaWZkZWYgIFNZU1BST1RPX0NPTlRST0wKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU1lTUFJPVE9fQ09OVFJPTCIsIFNZU1BST1RPX0NPTlRST0wpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNZU1BST1RPX0NPTlRST0wpOwogI2VuZGlmCiAKICAgICAvKiBTb21lIHBvcnQgY29uZmlndXJhdGlvbiAqLwogI2lmZGVmICBJUFBPUlRfUkVTRVJWRUQKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQT1JUX1JFU0VSVkVEIiwgSVBQT1JUX1JFU0VSVkVEKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBPUlRfUkVTRVJWRUQpOwogI2Vsc2UKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQT1JUX1JFU0VSVkVEIiwgMTAyNCk7CiAjZW5kaWYKICNpZmRlZiAgSVBQT1JUX1VTRVJSRVNFUlZFRAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBPUlRfVVNFUlJFU0VSVkVEIiwgSVBQT1JUX1VTRVJSRVNFUlZFRCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBQT1JUX1VTRVJSRVNFUlZFRCk7CiAjZWxzZQogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBPUlRfVVNFUlJFU0VSVkVEIiwgNTAwMCk7CiAjZW5kaWYKIAogICAgIC8qIFNvbWUgcmVzZXJ2ZWQgSVAgdi40IGFkZHJlc3NlcyAqLwogI2lmZGVmICBJTkFERFJfQU5ZCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklOQUREUl9BTlkiLCBJTkFERFJfQU5ZKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJTkFERFJfQU5ZKTsKICNlbHNlCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklOQUREUl9BTlkiLCAweDAwMDAwMDAwKTsKICNlbmRpZgogI2lmZGVmICBJTkFERFJfQlJPQURDQVNUCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklOQUREUl9CUk9BRENBU1QiLCBJTkFERFJfQlJPQURDQVNUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJTkFERFJfQlJPQURDQVNUKTsKICNlbHNlCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklOQUREUl9CUk9BRENBU1QiLCAweGZmZmZmZmZmKTsKICNlbmRpZgogI2lmZGVmICBJTkFERFJfTE9PUEJBQ0sKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSU5BRERSX0xPT1BCQUNLIiwgSU5BRERSX0xPT1BCQUNLKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJTkFERFJfTE9PUEJBQ0spOwogI2Vsc2UKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSU5BRERSX0xPT1BCQUNLIiwgMHg3RjAwMDAwMSk7CiAjZW5kaWYKICNpZmRlZiAgSU5BRERSX1VOU1BFQ19HUk9VUAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJTkFERFJfVU5TUEVDX0dST1VQIiwgSU5BRERSX1VOU1BFQ19HUk9VUCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSU5BRERSX1VOU1BFQ19HUk9VUCk7CiAjZWxzZQogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJTkFERFJfVU5TUEVDX0dST1VQIiwgMHhlMDAwMDAwMCk7CiAjZW5kaWYKQEAgLTYzMTQsMzU0ICs2MjM4LDM1MyBAQAogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJTkFERFJfQUxMSE9TVFNfR1JPVVAiLCAweGUwMDAwMDAxKTsKICNlbmRpZgogI2lmZGVmICBJTkFERFJfTUFYX0xPQ0FMX0dST1VQCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklOQUREUl9NQVhfTE9DQUxfR1JPVVAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOQUREUl9NQVhfTE9DQUxfR1JPVVApOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElOQUREUl9NQVhfTE9DQUxfR1JPVVApOwogI2Vsc2UKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSU5BRERSX01BWF9MT0NBTF9HUk9VUCIsIDB4ZTAwMDAwZmYpOwogI2VuZGlmCiAjaWZkZWYgIElOQUREUl9OT05FCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklOQUREUl9OT05FIiwgSU5BRERSX05PTkUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElOQUREUl9OT05FKTsKICNlbHNlCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklOQUREUl9OT05FIiwgMHhmZmZmZmZmZik7CiAjZW5kaWYKIAogICAgIC8qIElQdjQgW2dzXWV0c29ja29wdCBvcHRpb25zICovCiAjaWZkZWYgIElQX09QVElPTlMKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBfT1BUSU9OUyIsIElQX09QVElPTlMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQX09QVElPTlMpOwogI2VuZGlmCiAjaWZkZWYgIElQX0hEUklOQ0wKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBfSERSSU5DTCIsIElQX0hEUklOQ0wpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQX0hEUklOQ0wpOwogI2VuZGlmCiAjaWZkZWYgIElQX1RPUwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUF9UT1MiLCBJUF9UT1MpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQX1RPUyk7CiAjZW5kaWYKICNpZmRlZiAgSVBfVFRMCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQX1RUTCIsIElQX1RUTCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBfVFRMKTsKICNlbmRpZgogI2lmZGVmICBJUF9SRUNWT1BUUwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUF9SRUNWT1BUUyIsIElQX1JFQ1ZPUFRTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUF9SRUNWT1BUUyk7CiAjZW5kaWYKICNpZmRlZiAgSVBfUkVDVlJFVE9QVFMKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBfUkVDVlJFVE9QVFMiLCBJUF9SRUNWUkVUT1BUUyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBfUkVDVlJFVE9QVFMpOwogI2VuZGlmCiAjaWZkZWYgIElQX1JFQ1ZEU1RBRERSCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQX1JFQ1ZEU1RBRERSIiwgSVBfUkVDVkRTVEFERFIpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQX1JFQ1ZEU1RBRERSKTsKICNlbmRpZgogI2lmZGVmICBJUF9SRVRPUFRTCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQX1JFVE9QVFMiLCBJUF9SRVRPUFRTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUF9SRVRPUFRTKTsKICNlbmRpZgogI2lmZGVmICBJUF9NVUxUSUNBU1RfSUYKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBfTVVMVElDQVNUX0lGIiwgSVBfTVVMVElDQVNUX0lGKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUF9NVUxUSUNBU1RfSUYpOwogI2VuZGlmCiAjaWZkZWYgIElQX01VTFRJQ0FTVF9UVEwKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBfTVVMVElDQVNUX1RUTCIsIElQX01VTFRJQ0FTVF9UVEwpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQX01VTFRJQ0FTVF9UVEwpOwogI2VuZGlmCiAjaWZkZWYgIElQX01VTFRJQ0FTVF9MT09QCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQX01VTFRJQ0FTVF9MT09QIiwgSVBfTVVMVElDQVNUX0xPT1ApOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQX01VTFRJQ0FTVF9MT09QKTsKICNlbmRpZgogI2lmZGVmICBJUF9BRERfTUVNQkVSU0hJUAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUF9BRERfTUVNQkVSU0hJUCIsIElQX0FERF9NRU1CRVJTSElQKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUF9BRERfTUVNQkVSU0hJUCk7CiAjZW5kaWYKICNpZmRlZiAgSVBfRFJPUF9NRU1CRVJTSElQCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQX0RST1BfTUVNQkVSU0hJUCIsIElQX0RST1BfTUVNQkVSU0hJUCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBfRFJPUF9NRU1CRVJTSElQKTsKICNlbmRpZgogI2lmZGVmICBJUF9ERUZBVUxUX01VTFRJQ0FTVF9UVEwKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBfREVGQVVMVF9NVUxUSUNBU1RfVFRMIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUF9ERUZBVUxUX01VTFRJQ0FTVF9UVEwpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQX0RFRkFVTFRfTVVMVElDQVNUX1RUTCk7CiAjZW5kaWYKICNpZmRlZiAgSVBfREVGQVVMVF9NVUxUSUNBU1RfTE9PUAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUF9ERUZBVUxUX01VTFRJQ0FTVF9MT09QIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUF9ERUZBVUxUX01VTFRJQ0FTVF9MT09QKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUF9ERUZBVUxUX01VTFRJQ0FTVF9MT09QKTsKICNlbmRpZgogI2lmZGVmICBJUF9NQVhfTUVNQkVSU0hJUFMKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBfTUFYX01FTUJFUlNISVBTIiwgSVBfTUFYX01FTUJFUlNISVBTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUF9NQVhfTUVNQkVSU0hJUFMpOwogI2VuZGlmCiAjaWZkZWYgIElQX1RSQU5TUEFSRU5UCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQX1RSQU5TUEFSRU5UIiwgSVBfVFJBTlNQQVJFTlQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQX1RSQU5TUEFSRU5UKTsKICNlbmRpZgogCiAgICAgLyogSVB2NiBbZ3NdZXRzb2Nrb3B0IG9wdGlvbnMsIGRlZmluZWQgaW4gUkZDMjU1MyAqLwogI2lmZGVmICBJUFY2X0pPSU5fR1JPVVAKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBWNl9KT0lOX0dST1VQIiwgSVBWNl9KT0lOX0dST1VQKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFY2X0pPSU5fR1JPVVApOwogI2VuZGlmCiAjaWZkZWYgIElQVjZfTEVBVkVfR1JPVVAKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBWNl9MRUFWRV9HUk9VUCIsIElQVjZfTEVBVkVfR1JPVVApOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQVjZfTEVBVkVfR1JPVVApOwogI2VuZGlmCiAjaWZkZWYgIElQVjZfTVVMVElDQVNUX0hPUFMKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBWNl9NVUxUSUNBU1RfSE9QUyIsIElQVjZfTVVMVElDQVNUX0hPUFMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQVjZfTVVMVElDQVNUX0hPUFMpOwogI2VuZGlmCiAjaWZkZWYgIElQVjZfTVVMVElDQVNUX0lGCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQVjZfTVVMVElDQVNUX0lGIiwgSVBWNl9NVUxUSUNBU1RfSUYpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQVjZfTVVMVElDQVNUX0lGKTsKICNlbmRpZgogI2lmZGVmICBJUFY2X01VTFRJQ0FTVF9MT09QCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQVjZfTVVMVElDQVNUX0xPT1AiLCBJUFY2X01VTFRJQ0FTVF9MT09QKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFY2X01VTFRJQ0FTVF9MT09QKTsKICNlbmRpZgogI2lmZGVmICBJUFY2X1VOSUNBU1RfSE9QUwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFY2X1VOSUNBU1RfSE9QUyIsIElQVjZfVU5JQ0FTVF9IT1BTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFY2X1VOSUNBU1RfSE9QUyk7CiAjZW5kaWYKICAgICAvKiBBZGRpdGlvbmFsIElQVjYgc29ja2V0IG9wdGlvbnMsIGRlZmluZWQgaW4gUkZDIDM0OTMgKi8KICNpZmRlZiBJUFY2X1Y2T05MWQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFY2X1Y2T05MWSIsIElQVjZfVjZPTkxZKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFY2X1Y2T05MWSk7CiAjZW5kaWYKICAgICAvKiBBZHZhbmNlZCBJUFY2IHNvY2tldCBvcHRpb25zLCBmcm9tIFJGQyAzNTQyICovCiAjaWZkZWYgSVBWNl9DSEVDS1NVTQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFY2X0NIRUNLU1VNIiwgSVBWNl9DSEVDS1NVTSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBWNl9DSEVDS1NVTSk7CiAjZW5kaWYKICNpZmRlZiBJUFY2X0RPTlRGUkFHCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQVjZfRE9OVEZSQUciLCBJUFY2X0RPTlRGUkFHKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFY2X0RPTlRGUkFHKTsKICNlbmRpZgogI2lmZGVmIElQVjZfRFNUT1BUUwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFY2X0RTVE9QVFMiLCBJUFY2X0RTVE9QVFMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQVjZfRFNUT1BUUyk7CiAjZW5kaWYKICNpZmRlZiBJUFY2X0hPUExJTUlUCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQVjZfSE9QTElNSVQiLCBJUFY2X0hPUExJTUlUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFY2X0hPUExJTUlUKTsKICNlbmRpZgogI2lmZGVmIElQVjZfSE9QT1BUUwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFY2X0hPUE9QVFMiLCBJUFY2X0hPUE9QVFMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQVjZfSE9QT1BUUyk7CiAjZW5kaWYKICNpZmRlZiBJUFY2X05FWFRIT1AKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBWNl9ORVhUSE9QIiwgSVBWNl9ORVhUSE9QKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFY2X05FWFRIT1ApOwogI2VuZGlmCiAjaWZkZWYgSVBWNl9QQVRITVRVCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQVjZfUEFUSE1UVSIsIElQVjZfUEFUSE1UVSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBWNl9QQVRITVRVKTsKICNlbmRpZgogI2lmZGVmIElQVjZfUEtUSU5GTwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFY2X1BLVElORk8iLCBJUFY2X1BLVElORk8pOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQVjZfUEtUSU5GTyk7CiAjZW5kaWYKICNpZmRlZiBJUFY2X1JFQ1ZEU1RPUFRTCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQVjZfUkVDVkRTVE9QVFMiLCBJUFY2X1JFQ1ZEU1RPUFRTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFY2X1JFQ1ZEU1RPUFRTKTsKICNlbmRpZgogI2lmZGVmIElQVjZfUkVDVkhPUExJTUlUCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQVjZfUkVDVkhPUExJTUlUIiwgSVBWNl9SRUNWSE9QTElNSVQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQVjZfUkVDVkhPUExJTUlUKTsKICNlbmRpZgogI2lmZGVmIElQVjZfUkVDVkhPUE9QVFMKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBWNl9SRUNWSE9QT1BUUyIsIElQVjZfUkVDVkhPUE9QVFMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQVjZfUkVDVkhPUE9QVFMpOwogI2VuZGlmCiAjaWZkZWYgSVBWNl9SRUNWUEtUSU5GTwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFY2X1JFQ1ZQS1RJTkZPIiwgSVBWNl9SRUNWUEtUSU5GTyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBWNl9SRUNWUEtUSU5GTyk7CiAjZW5kaWYKICNpZmRlZiBJUFY2X1JFQ1ZSVEhEUgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFY2X1JFQ1ZSVEhEUiIsIElQVjZfUkVDVlJUSERSKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFY2X1JFQ1ZSVEhEUik7CiAjZW5kaWYKICNpZmRlZiBJUFY2X1JFQ1ZUQ0xBU1MKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBWNl9SRUNWVENMQVNTIiwgSVBWNl9SRUNWVENMQVNTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFY2X1JFQ1ZUQ0xBU1MpOwogI2VuZGlmCiAjaWZkZWYgSVBWNl9SVEhEUgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFY2X1JUSERSIiwgSVBWNl9SVEhEUik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgSVBWNl9SVEhEUik7CiAjZW5kaWYKICNpZmRlZiBJUFY2X1JUSERSRFNUT1BUUwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFY2X1JUSERSRFNUT1BUUyIsIElQVjZfUlRIRFJEU1RPUFRTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFY2X1JUSERSRFNUT1BUUyk7CiAjZW5kaWYKICNpZmRlZiBJUFY2X1JUSERSX1RZUEVfMAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFY2X1JUSERSX1RZUEVfMCIsIElQVjZfUlRIRFJfVFlQRV8wKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFY2X1JUSERSX1RZUEVfMCk7CiAjZW5kaWYKICNpZmRlZiBJUFY2X1JFQ1ZQQVRITVRVCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQVjZfUkVDVlBBVEhNVFUiLCBJUFY2X1JFQ1ZQQVRITVRVKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFY2X1JFQ1ZQQVRITVRVKTsKICNlbmRpZgogI2lmZGVmIElQVjZfVENMQVNTCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQVjZfVENMQVNTIiwgSVBWNl9UQ0xBU1MpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQVjZfVENMQVNTKTsKICNlbmRpZgogI2lmZGVmIElQVjZfVVNFX01JTl9NVFUKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBWNl9VU0VfTUlOX01UVSIsIElQVjZfVVNFX01JTl9NVFUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQVjZfVVNFX01JTl9NVFUpOwogI2VuZGlmCiAKICAgICAvKiBUQ1Agb3B0aW9ucyAqLwogI2lmZGVmICBUQ1BfTk9ERUxBWQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUQ1BfTk9ERUxBWSIsIFRDUF9OT0RFTEFZKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBUQ1BfTk9ERUxBWSk7CiAjZW5kaWYKICNpZmRlZiAgVENQX01BWFNFRwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUQ1BfTUFYU0VHIiwgVENQX01BWFNFRyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgVENQX01BWFNFRyk7CiAjZW5kaWYKICNpZmRlZiAgVENQX0NPUksKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVENQX0NPUksiLCBUQ1BfQ09SSyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgVENQX0NPUkspOwogI2VuZGlmCiAjaWZkZWYgIFRDUF9LRUVQSURMRQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUQ1BfS0VFUElETEUiLCBUQ1BfS0VFUElETEUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFRDUF9LRUVQSURMRSk7CiAjZW5kaWYKICNpZmRlZiAgVENQX0tFRVBJTlRWTAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUQ1BfS0VFUElOVFZMIiwgVENQX0tFRVBJTlRWTCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgVENQX0tFRVBJTlRWTCk7CiAjZW5kaWYKICNpZmRlZiAgVENQX0tFRVBDTlQKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVENQX0tFRVBDTlQiLCBUQ1BfS0VFUENOVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgVENQX0tFRVBDTlQpOwogI2VuZGlmCiAjaWZkZWYgIFRDUF9TWU5DTlQKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVENQX1NZTkNOVCIsIFRDUF9TWU5DTlQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFRDUF9TWU5DTlQpOwogI2VuZGlmCiAjaWZkZWYgIFRDUF9MSU5HRVIyCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlRDUF9MSU5HRVIyIiwgVENQX0xJTkdFUjIpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFRDUF9MSU5HRVIyKTsKICNlbmRpZgogI2lmZGVmICBUQ1BfREVGRVJfQUNDRVBUCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlRDUF9ERUZFUl9BQ0NFUFQiLCBUQ1BfREVGRVJfQUNDRVBUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBUQ1BfREVGRVJfQUNDRVBUKTsKICNlbmRpZgogI2lmZGVmICBUQ1BfV0lORE9XX0NMQU1QCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlRDUF9XSU5ET1dfQ0xBTVAiLCBUQ1BfV0lORE9XX0NMQU1QKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBUQ1BfV0lORE9XX0NMQU1QKTsKICNlbmRpZgogI2lmZGVmICBUQ1BfSU5GTwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUQ1BfSU5GTyIsIFRDUF9JTkZPKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBUQ1BfSU5GTyk7CiAjZW5kaWYKICNpZmRlZiAgVENQX1FVSUNLQUNLCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlRDUF9RVUlDS0FDSyIsIFRDUF9RVUlDS0FDSyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgVENQX1FVSUNLQUNLKTsKICNlbmRpZgotCisjaWZkZWYgIFRDUF9GQVNUT1BFTgorICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFRDUF9GQVNUT1BFTik7CisjZW5kaWYKIAogICAgIC8qIElQWCBvcHRpb25zICovCiAjaWZkZWYgIElQWF9UWVBFCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQWF9UWVBFIiwgSVBYX1RZUEUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQWF9UWVBFKTsKICNlbmRpZgogCiAvKiBSZWxpYWJsZSBEYXRhZ3JhbSBTb2NrZXRzICovCiAjaWZkZWYgUkRTX0NNU0dfUkRNQV9BUkdTCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJEU19DTVNHX1JETUFfQVJHUyIsIFJEU19DTVNHX1JETUFfQVJHUyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkRTX0NNU0dfUkRNQV9BUkdTKTsKICNlbmRpZgogI2lmZGVmIFJEU19DTVNHX1JETUFfREVTVAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSRFNfQ01TR19SRE1BX0RFU1QiLCBSRFNfQ01TR19SRE1BX0RFU1QpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFJEU19DTVNHX1JETUFfREVTVCk7CiAjZW5kaWYKICNpZmRlZiBSRFNfQ01TR19SRE1BX01BUAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSRFNfQ01TR19SRE1BX01BUCIsIFJEU19DTVNHX1JETUFfTUFQKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSRFNfQ01TR19SRE1BX01BUCk7CiAjZW5kaWYKICNpZmRlZiBSRFNfQ01TR19SRE1BX1NUQVRVUwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSRFNfQ01TR19SRE1BX1NUQVRVUyIsIFJEU19DTVNHX1JETUFfU1RBVFVTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSRFNfQ01TR19SRE1BX1NUQVRVUyk7CiAjZW5kaWYKICNpZmRlZiBSRFNfQ01TR19SRE1BX1VQREFURQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSRFNfQ01TR19SRE1BX1VQREFURSIsIFJEU19DTVNHX1JETUFfVVBEQVRFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSRFNfQ01TR19SRE1BX1VQREFURSk7CiAjZW5kaWYKICNpZmRlZiBSRFNfUkRNQV9SRUFEV1JJVEUKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkRTX1JETUFfUkVBRFdSSVRFIiwgUkRTX1JETUFfUkVBRFdSSVRFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSRFNfUkRNQV9SRUFEV1JJVEUpOwogI2VuZGlmCiAjaWZkZWYgUkRTX1JETUFfRkVOQ0UKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkRTX1JETUFfRkVOQ0UiLCBSRFNfUkRNQV9GRU5DRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkRTX1JETUFfRkVOQ0UpOwogI2VuZGlmCiAjaWZkZWYgUkRTX1JETUFfSU5WQUxJREFURQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSRFNfUkRNQV9JTlZBTElEQVRFIiwgUkRTX1JETUFfSU5WQUxJREFURSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkRTX1JETUFfSU5WQUxJREFURSk7CiAjZW5kaWYKICNpZmRlZiBSRFNfUkRNQV9VU0VfT05DRQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSRFNfUkRNQV9VU0VfT05DRSIsIFJEU19SRE1BX1VTRV9PTkNFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSRFNfUkRNQV9VU0VfT05DRSk7CiAjZW5kaWYKICNpZmRlZiBSRFNfUkRNQV9ET05UV0FJVAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSRFNfUkRNQV9ET05UV0FJVCIsIFJEU19SRE1BX0RPTlRXQUlUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSRFNfUkRNQV9ET05UV0FJVCk7CiAjZW5kaWYKICNpZmRlZiBSRFNfUkRNQV9OT1RJRllfTUUKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkRTX1JETUFfTk9USUZZX01FIiwgUkRTX1JETUFfTk9USUZZX01FKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSRFNfUkRNQV9OT1RJRllfTUUpOwogI2VuZGlmCiAjaWZkZWYgUkRTX1JETUFfU0lMRU5UCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJEU19SRE1BX1NJTEVOVCIsIFJEU19SRE1BX1NJTEVOVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkRTX1JETUFfU0lMRU5UKTsKICNlbmRpZgogCiAgICAgLyogZ2V0e2FkZHIsbmFtZX1pbmZvIHBhcmFtZXRlcnMgKi8KICNpZmRlZiBFQUlfQUREUkZBTUlMWQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJFQUlfQUREUkZBTUlMWSIsIEVBSV9BRERSRkFNSUxZKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFQUlfQUREUkZBTUlMWSk7CiAjZW5kaWYKICNpZmRlZiBFQUlfQUdBSU4KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiRUFJX0FHQUlOIiwgRUFJX0FHQUlOKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFQUlfQUdBSU4pOwogI2VuZGlmCiAjaWZkZWYgRUFJX0JBREZMQUdTCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkVBSV9CQURGTEFHUyIsIEVBSV9CQURGTEFHUyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRUFJX0JBREZMQUdTKTsKICNlbmRpZgogI2lmZGVmIEVBSV9GQUlMCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkVBSV9GQUlMIiwgRUFJX0ZBSUwpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEVBSV9GQUlMKTsKICNlbmRpZgogI2lmZGVmIEVBSV9GQU1JTFkKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiRUFJX0ZBTUlMWSIsIEVBSV9GQU1JTFkpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEVBSV9GQU1JTFkpOwogI2VuZGlmCiAjaWZkZWYgRUFJX01FTU9SWQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJFQUlfTUVNT1JZIiwgRUFJX01FTU9SWSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRUFJX01FTU9SWSk7CiAjZW5kaWYKICNpZmRlZiBFQUlfTk9EQVRBCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkVBSV9OT0RBVEEiLCBFQUlfTk9EQVRBKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFQUlfTk9EQVRBKTsKICNlbmRpZgogI2lmZGVmIEVBSV9OT05BTUUKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiRUFJX05PTkFNRSIsIEVBSV9OT05BTUUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEVBSV9OT05BTUUpOwogI2VuZGlmCiAjaWZkZWYgRUFJX09WRVJGTE9XCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkVBSV9PVkVSRkxPVyIsIEVBSV9PVkVSRkxPVyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRUFJX09WRVJGTE9XKTsKICNlbmRpZgogI2lmZGVmIEVBSV9TRVJWSUNFCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkVBSV9TRVJWSUNFIiwgRUFJX1NFUlZJQ0UpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEVBSV9TRVJWSUNFKTsKICNlbmRpZgogI2lmZGVmIEVBSV9TT0NLVFlQRQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJFQUlfU09DS1RZUEUiLCBFQUlfU09DS1RZUEUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEVBSV9TT0NLVFlQRSk7CiAjZW5kaWYKICNpZmRlZiBFQUlfU1lTVEVNCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkVBSV9TWVNURU0iLCBFQUlfU1lTVEVNKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFQUlfU1lTVEVNKTsKICNlbmRpZgogI2lmZGVmIEVBSV9CQURISU5UUwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJFQUlfQkFESElOVFMiLCBFQUlfQkFESElOVFMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEVBSV9CQURISU5UUyk7CiAjZW5kaWYKICNpZmRlZiBFQUlfUFJPVE9DT0wKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiRUFJX1BST1RPQ09MIiwgRUFJX1BST1RPQ09MKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBFQUlfUFJPVE9DT0wpOwogI2VuZGlmCiAjaWZkZWYgRUFJX01BWAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJFQUlfTUFYIiwgRUFJX01BWCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRUFJX01BWCk7CiAjZW5kaWYKICNpZmRlZiBBSV9QQVNTSVZFCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFJX1BBU1NJVkUiLCBBSV9QQVNTSVZFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBSV9QQVNTSVZFKTsKICNlbmRpZgogI2lmZGVmIEFJX0NBTk9OTkFNRQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJBSV9DQU5PTk5BTUUiLCBBSV9DQU5PTk5BTUUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFJX0NBTk9OTkFNRSk7CiAjZW5kaWYKICNpZmRlZiBBSV9OVU1FUklDSE9TVAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJBSV9OVU1FUklDSE9TVCIsIEFJX05VTUVSSUNIT1NUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBSV9OVU1FUklDSE9TVCk7CiAjZW5kaWYKICNpZmRlZiBBSV9OVU1FUklDU0VSVgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJBSV9OVU1FUklDU0VSViIsIEFJX05VTUVSSUNTRVJWKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBSV9OVU1FUklDU0VSVik7CiAjZW5kaWYKICNpZmRlZiBBSV9NQVNLCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFJX01BU0siLCBBSV9NQVNLKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBSV9NQVNLKTsKICNlbmRpZgogI2lmZGVmIEFJX0FMTAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJBSV9BTEwiLCBBSV9BTEwpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFJX0FMTCk7CiAjZW5kaWYKICNpZmRlZiBBSV9WNE1BUFBFRF9DRkcKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQUlfVjRNQVBQRURfQ0ZHIiwgQUlfVjRNQVBQRURfQ0ZHKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBSV9WNE1BUFBFRF9DRkcpOwogI2VuZGlmCiAjaWZkZWYgQUlfQUREUkNPTkZJRwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJBSV9BRERSQ09ORklHIiwgQUlfQUREUkNPTkZJRyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQUlfQUREUkNPTkZJRyk7CiAjZW5kaWYKICNpZmRlZiBBSV9WNE1BUFBFRAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJBSV9WNE1BUFBFRCIsIEFJX1Y0TUFQUEVEKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBSV9WNE1BUFBFRCk7CiAjZW5kaWYKICNpZmRlZiBBSV9ERUZBVUxUCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFJX0RFRkFVTFQiLCBBSV9ERUZBVUxUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBBSV9ERUZBVUxUKTsKICNlbmRpZgogI2lmZGVmIE5JX01BWEhPU1QKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTklfTUFYSE9TVCIsIE5JX01BWEhPU1QpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE5JX01BWEhPU1QpOwogI2VuZGlmCiAjaWZkZWYgTklfTUFYU0VSVgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJOSV9NQVhTRVJWIiwgTklfTUFYU0VSVik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTklfTUFYU0VSVik7CiAjZW5kaWYKICNpZmRlZiBOSV9OT0ZRRE4KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTklfTk9GUUROIiwgTklfTk9GUUROKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBOSV9OT0ZRRE4pOwogI2VuZGlmCiAjaWZkZWYgTklfTlVNRVJJQ0hPU1QKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTklfTlVNRVJJQ0hPU1QiLCBOSV9OVU1FUklDSE9TVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTklfTlVNRVJJQ0hPU1QpOwogI2VuZGlmCiAjaWZkZWYgTklfTkFNRVJFUUQKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTklfTkFNRVJFUUQiLCBOSV9OQU1FUkVRRCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTklfTkFNRVJFUUQpOwogI2VuZGlmCiAjaWZkZWYgTklfTlVNRVJJQ1NFUlYKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTklfTlVNRVJJQ1NFUlYiLCBOSV9OVU1FUklDU0VSVik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTklfTlVNRVJJQ1NFUlYpOwogI2VuZGlmCiAjaWZkZWYgTklfREdSQU0KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTklfREdSQU0iLCBOSV9ER1JBTSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTklfREdSQU0pOwogI2VuZGlmCiAKICAgICAvKiBzaHV0ZG93bigpIHBhcmFtZXRlcnMgKi8KICNpZmRlZiBTSFVUX1JECi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNIVVRfUkQiLCBTSFVUX1JEKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTSFVUX1JEKTsKICNlbGlmIGRlZmluZWQoU0RfUkVDRUlWRSkKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU0hVVF9SRCIsIFNEX1JFQ0VJVkUpOwogI2Vsc2UKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU0hVVF9SRCIsIDApOwogI2VuZGlmCiAjaWZkZWYgU0hVVF9XUgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTSFVUX1dSIiwgU0hVVF9XUik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU0hVVF9XUik7CiAjZWxpZiBkZWZpbmVkKFNEX1NFTkQpCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNIVVRfV1IiLCBTRF9TRU5EKTsKICNlbHNlCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNIVVRfV1IiLCAxKTsKICNlbmRpZgogI2lmZGVmIFNIVVRfUkRXUgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTSFVUX1JEV1IiLCBTSFVUX1JEV1IpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNIVVRfUkRXUik7CiAjZWxpZiBkZWZpbmVkKFNEX0JPVEgpCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNIVVRfUkRXUiIsIFNEX0JPVEgpOwogI2Vsc2UKQEAgLTY2ODEsMTQgKzY2MDQsMTQgQEAKICAgICAgICAgICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCBuYW1lc1tpXSwgdG1wKTsKICAgICAgICAgfQogICAgIH0KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkNWQUxMX09GRiIsIFJDVkFMTF9PRkYpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSQ1ZBTExfT04iLCBSQ1ZBTExfT04pOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSQ1ZBTExfU09DS0VUTEVWRUxPTkxZIiwgUkNWQUxMX1NPQ0tFVExFVkVMT05MWSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkNWQUxMX09GRik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUkNWQUxMX09OKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSQ1ZBTExfU09DS0VUTEVWRUxPTkxZKTsKICNpZmRlZiBSQ1ZBTExfSVBMRVZFTAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSQ1ZBTExfSVBMRVZFTCIsIFJDVkFMTF9JUExFVkVMKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSQ1ZBTExfSVBMRVZFTCk7CiAjZW5kaWYKICNpZmRlZiBSQ1ZBTExfTUFYCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJDVkFMTF9NQVgiLCBSQ1ZBTExfTUFYKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBSQ1ZBTExfTUFYKTsKICNlbmRpZgogI2VuZGlmIC8qIF9NU1RDUElQXyAqLwogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL3NvY2tldG1vZHVsZS5oIGIvTW9kdWxlcy9zb2NrZXRtb2R1bGUuaAppbmRleCAwNDM1ODc4Li5iODNmOWFmIDEwMDY0NAotLS0gYS9Nb2R1bGVzL3NvY2tldG1vZHVsZS5oCisrKyBiL01vZHVsZXMvc29ja2V0bW9kdWxlLmgKQEAgLTgsNyArOCw3IEBACiAjICAgaW5jbHVkZSA8c3lzL3NvY2tldC5oPgogIyBlbmRpZgogIyBpbmNsdWRlIDxuZXRpbmV0L2luLmg+Ci0jIGlmICEoZGVmaW5lZChfX0NZR1dJTl9fKSB8fCAoZGVmaW5lZChQWU9TX09TMikgJiYgZGVmaW5lZChQWUNDX1ZBQ1BQKSkpCisjIGlmICFkZWZpbmVkKF9fQ1lHV0lOX18pCiAjICBpbmNsdWRlIDxuZXRpbmV0L3RjcC5oPgogIyBlbmRpZgogCkBAIC04MCw2ICs4MCwxMCBAQAogI2luY2x1ZGUgPGxpbnV4L2Nhbi9yYXcuaD4KICNlbmRpZgogCisjaWZkZWYgSEFWRV9MSU5VWF9DQU5fQkNNX0gKKyNpbmNsdWRlIDxsaW51eC9jYW4vYmNtLmg+CisjZW5kaWYKKwogI2lmZGVmIEhBVkVfU1lTX1NZU19ET01BSU5fSAogI2luY2x1ZGUgPHN5cy9zeXNfZG9tYWluLmg+CiAjZW5kaWYKZGlmZiAtLWdpdCBhL01vZHVsZXMvc3ltdGFibGVtb2R1bGUuYyBiL01vZHVsZXMvc3ltdGFibGVtb2R1bGUuYwppbmRleCAwMmE4MWYxLi5mYmMxZmY2IDEwMDY0NAotLS0gYS9Nb2R1bGVzL3N5bXRhYmxlbW9kdWxlLmMKKysrIGIvTW9kdWxlcy9zeW10YWJsZW1vZHVsZS5jCkBAIC02OSwzMCArNjksMzAgQEAKICAgICBtID0gUHlNb2R1bGVfQ3JlYXRlKCZzeW10YWJsZW1vZHVsZSk7CiAgICAgaWYgKG0gPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlVTRSIsIFVTRSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkRFRl9HTE9CQUwiLCBERUZfR0xPQkFMKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiREVGX0xPQ0FMIiwgREVGX0xPQ0FMKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiREVGX1BBUkFNIiwgREVGX1BBUkFNKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiREVGX0ZSRUUiLCBERUZfRlJFRSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkRFRl9GUkVFX0NMQVNTIiwgREVGX0ZSRUVfQ0xBU1MpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJERUZfSU1QT1JUIiwgREVGX0lNUE9SVCk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkRFRl9CT1VORCIsIERFRl9CT1VORCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgVVNFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBERUZfR0xPQkFMKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBERUZfTE9DQUwpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIERFRl9QQVJBTSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgREVGX0ZSRUUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIERFRl9GUkVFX0NMQVNTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBERUZfSU1QT1JUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBERUZfQk9VTkQpOwogCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlRZUEVfRlVOQ1RJT04iLCBGdW5jdGlvbkJsb2NrKTsKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiVFlQRV9DTEFTUyIsIENsYXNzQmxvY2spOwogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJUWVBFX01PRFVMRSIsIE1vZHVsZUJsb2NrKTsKIAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJPUFRfSU1QT1JUX1NUQVIiLCBPUFRfSU1QT1JUX1NUQVIpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJPUFRfVE9QTEVWRUwiLCBPUFRfVE9QTEVWRUwpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE9QVF9JTVBPUlRfU1RBUik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgT1BUX1RPUExFVkVMKTsKIAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJMT0NBTCIsIExPQ0FMKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiR0xPQkFMX0VYUExJQ0lUIiwgR0xPQkFMX0VYUExJQ0lUKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiR0xPQkFMX0lNUExJQ0lUIiwgR0xPQkFMX0lNUExJQ0lUKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiRlJFRSIsIEZSRUUpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJDRUxMIiwgQ0VMTCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTE9DQUwpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEdMT0JBTF9FWFBMSUNJVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgR0xPQkFMX0lNUExJQ0lUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGUkVFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBDRUxMKTsKIAogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTQ09QRV9PRkYiLCBTQ09QRV9PRkZTRVQpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTQ09QRV9NQVNLIiwgU0NPUEVfTUFTSyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU0NPUEVfTUFTSyk7CiAKICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkgewogICAgICAgICBQeV9ERUNSRUYobSk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL3N5c2xvZ21vZHVsZS5jIGIvTW9kdWxlcy9zeXNsb2dtb2R1bGUuYwppbmRleCA4Yjg3N2NmLi45ZDc5ZWVjIDEwMDY0NAotLS0gYS9Nb2R1bGVzL3N5c2xvZ21vZHVsZS5jCisrKyBiL01vZHVsZXMvc3lzbG9nbW9kdWxlLmMKQEAgLTI3OCw0NCArMjc4LDQ0IEBACiAgICAgLyogQWRkIHNvbWUgc3ltYm9saWMgY29uc3RhbnRzIHRvIHRoZSBtb2R1bGUgKi8KIAogICAgIC8qIFByaW9yaXRpZXMgKi8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX0VNRVJHIiwgICAgICAgTE9HX0VNRVJHKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX0FMRVJUIiwgICAgICAgTE9HX0FMRVJUKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX0NSSVQiLCAgICAgICAgTE9HX0NSSVQpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJMT0dfRVJSIiwgICAgICAgICBMT0dfRVJSKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX1dBUk5JTkciLCBMT0dfV0FSTklORyk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19OT1RJQ0UiLCAgTE9HX05PVElDRSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19JTkZPIiwgICAgICAgIExPR19JTkZPKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX0RFQlVHIiwgICAgICAgTE9HX0RFQlVHKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBMT0dfRU1FUkcpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19BTEVSVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTE9HX0NSSVQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19FUlIpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19XQVJOSU5HKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBMT0dfTk9USUNFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBMT0dfSU5GTyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTE9HX0RFQlVHKTsKIAogICAgIC8qIG9wZW5sb2coKSBvcHRpb24gZmxhZ3MgKi8KLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX1BJRCIsICAgICAgICAgTE9HX1BJRCk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19DT05TIiwgICAgICAgIExPR19DT05TKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX05ERUxBWSIsICBMT0dfTkRFTEFZKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBMT0dfUElEKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBMT0dfQ09OUyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTE9HX05ERUxBWSk7CiAjaWZkZWYgTE9HX09ERUxBWQotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJMT0dfT0RFTEFZIiwgIExPR19PREVMQVkpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19PREVMQVkpOwogI2VuZGlmCiAjaWZkZWYgTE9HX05PV0FJVAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJMT0dfTk9XQUlUIiwgIExPR19OT1dBSVQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19OT1dBSVQpOwogI2VuZGlmCiAjaWZkZWYgTE9HX1BFUlJPUgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJMT0dfUEVSUk9SIiwgIExPR19QRVJST1IpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19QRVJST1IpOwogI2VuZGlmCiAKICAgICAvKiBGYWNpbGl0aWVzICovCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19LRVJOIiwgICAgICAgIExPR19LRVJOKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX1VTRVIiLCAgICAgICAgTE9HX1VTRVIpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJMT0dfTUFJTCIsICAgICAgICBMT0dfTUFJTCk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19EQUVNT04iLCAgTE9HX0RBRU1PTik7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19BVVRIIiwgICAgICAgIExPR19BVVRIKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX0xQUiIsICAgICAgICAgTE9HX0xQUik7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19MT0NBTDAiLCAgTE9HX0xPQ0FMMCk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19MT0NBTDEiLCAgTE9HX0xPQ0FMMSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19MT0NBTDIiLCAgTE9HX0xPQ0FMMik7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19MT0NBTDMiLCAgTE9HX0xPQ0FMMyk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19MT0NBTDQiLCAgTE9HX0xPQ0FMNCk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19MT0NBTDUiLCAgTE9HX0xPQ0FMNSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19MT0NBTDYiLCAgTE9HX0xPQ0FMNik7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19MT0NBTDciLCAgTE9HX0xPQ0FMNyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTE9HX0tFUk4pOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19VU0VSKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBMT0dfTUFJTCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTE9HX0RBRU1PTik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTE9HX0FVVEgpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19MUFIpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19MT0NBTDApOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19MT0NBTDEpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19MT0NBTDIpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19MT0NBTDMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19MT0NBTDQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19MT0NBTDUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19MT0NBTDYpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19MT0NBTDcpOwogCiAjaWZuZGVmIExPR19TWVNMT0cKICNkZWZpbmUgTE9HX1NZU0xPRyAgICAgICAgICAgICAgTE9HX0RBRU1PTgpAQCAtMzMwLDEzICszMzAsMTMgQEAKICNkZWZpbmUgTE9HX0NST04gICAgICAgICAgICAgICAgTE9HX0RBRU1PTgogI2VuZGlmCiAKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX1NZU0xPRyIsICBMT0dfU1lTTE9HKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX0NST04iLCAgICAgICAgTE9HX0NST04pOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJMT0dfVVVDUCIsICAgICAgICBMT0dfVVVDUCk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19ORVdTIiwgICAgICAgIExPR19ORVdTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBMT0dfU1lTTE9HKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBMT0dfQ1JPTik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTE9HX1VVQ1ApOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19ORVdTKTsKIAogI2lmZGVmIExPR19BVVRIUFJJVgotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJMT0dfQVVUSFBSSVYiLCAgICBMT0dfQVVUSFBSSVYpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIExPR19BVVRIUFJJVik7CiAjZW5kaWYKIAogICAgIHJldHVybiBtOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy90aW1lbW9kdWxlLmMgYi9Nb2R1bGVzL3RpbWVtb2R1bGUuYwppbmRleCA1YTBmMzc4Li40MjkyMTVmIDEwMDY0NAotLS0gYS9Nb2R1bGVzL3RpbWVtb2R1bGUuYworKysgYi9Nb2R1bGVzL3RpbWVtb2R1bGUuYwpAQCAtMzcsMTYgKzM3LDYgQEAKICNlbmRpZiAvKiBNU19XSU5ET1dTICovCiAjZW5kaWYgLyogIV9fV0FUQ09NQ19fIHx8IF9fUU5YX18gKi8KIAotI2lmIGRlZmluZWQoUFlPU19PUzIpCi0jZGVmaW5lIElOQ0xfRE9TCi0jZGVmaW5lIElOQ0xfRVJST1JTCi0jaW5jbHVkZSA8b3MyLmg+Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoUFlDQ19WQUNQUCkKLSNpbmNsdWRlIDxzeXMvdGltZS5oPgotI2VuZGlmCi0KICNpZiBkZWZpbmVkKF9fQVBQTEVfXykKICNpbmNsdWRlIDxtYWNoL21hY2hfdGltZS5oPgogI2VuZGlmCkBAIC01NDMsNiArNTMzLDI2IEBACiAgICAvKiB3Y3NmdGltZSgpIGRvZXNuJ3QgZm9ybWF0IGNvcnJlY3RseSB0aW1lIHpvbmVzLCBzZWUgaXNzdWUgIzEwNjUzICovCiAjICB1bmRlZiBIQVZFX1dDU0ZUSU1FCiAjZW5kaWYKKyNkZWZpbmUgU1RSRlRJTUVfRk9STUFUX0NPREVTIFwKKyJDb21tb25seSB1c2VkIGZvcm1hdCBjb2RlczpcblwKK1xuXAorJVkgIFllYXIgd2l0aCBjZW50dXJ5IGFzIGEgZGVjaW1hbCBudW1iZXIuXG5cCislbSAgTW9udGggYXMgYSBkZWNpbWFsIG51bWJlciBbMDEsMTJdLlxuXAorJWQgIERheSBvZiB0aGUgbW9udGggYXMgYSBkZWNpbWFsIG51bWJlciBbMDEsMzFdLlxuXAorJUggIEhvdXIgKDI0LWhvdXIgY2xvY2spIGFzIGEgZGVjaW1hbCBudW1iZXIgWzAwLDIzXS5cblwKKyVNICBNaW51dGUgYXMgYSBkZWNpbWFsIG51bWJlciBbMDAsNTldLlxuXAorJVMgIFNlY29uZCBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMCw2MV0uXG5cCisleiAgVGltZSB6b25lIG9mZnNldCBmcm9tIFVUQy5cblwKKyVhICBMb2NhbGUncyBhYmJyZXZpYXRlZCB3ZWVrZGF5IG5hbWUuXG5cCislQSAgTG9jYWxlJ3MgZnVsbCB3ZWVrZGF5IG5hbWUuXG5cCislYiAgTG9jYWxlJ3MgYWJicmV2aWF0ZWQgbW9udGggbmFtZS5cblwKKyVCICBMb2NhbGUncyBmdWxsIG1vbnRoIG5hbWUuXG5cCislYyAgTG9jYWxlJ3MgYXBwcm9wcmlhdGUgZGF0ZSBhbmQgdGltZSByZXByZXNlbnRhdGlvbi5cblwKKyVJICBIb3VyICgxMi1ob3VyIGNsb2NrKSBhcyBhIGRlY2ltYWwgbnVtYmVyIFswMSwxMl0uXG5cCislcCAgTG9jYWxlJ3MgZXF1aXZhbGVudCBvZiBlaXRoZXIgQU0gb3IgUE0uXG5cCitcblwKK090aGVyIGNvZGVzIG1heSBiZSBhdmFpbGFibGUgb24geW91ciBwbGF0Zm9ybS4gIFNlZSBkb2N1bWVudGF0aW9uIGZvclxuXAordGhlIEMgbGlicmFyeSBzdHJmdGltZSBmdW5jdGlvbi5cbiIKIAogI2lmZGVmIEhBVkVfU1RSRlRJTUUKICNpZmRlZiBIQVZFX1dDU0ZUSU1FCkBAIC02ODcsMTMgKzY5NywxMyBAQAogCiAjdW5kZWYgdGltZV9jaGFyCiAjdW5kZWYgZm9ybWF0X3RpbWUKLQogUHlEb2NfU1RSVkFSKHN0cmZ0aW1lX2RvYywKICJzdHJmdGltZShmb3JtYXRbLCB0dXBsZV0pIC0+IHN0cmluZ1xuXAogXG5cCiBDb252ZXJ0IGEgdGltZSB0dXBsZSB0byBhIHN0cmluZyBhY2NvcmRpbmcgdG8gYSBmb3JtYXQgc3BlY2lmaWNhdGlvbi5cblwKIFNlZSB0aGUgbGlicmFyeSByZWZlcmVuY2UgbWFudWFsIGZvciBmb3JtYXR0aW5nIGNvZGVzLiBXaGVuIHRoZSB0aW1lIHR1cGxlXG5cCi1pcyBub3QgcHJlc2VudCwgY3VycmVudCB0aW1lIGFzIHJldHVybmVkIGJ5IGxvY2FsdGltZSgpIGlzIHVzZWQuIik7CitpcyBub3QgcHJlc2VudCwgY3VycmVudCB0aW1lIGFzIHJldHVybmVkIGJ5IGxvY2FsdGltZSgpIGlzIHVzZWQuXG5cCitcbiIgU1RSRlRJTUVfRk9STUFUX0NPREVTKTsKICNlbmRpZiAvKiBIQVZFX1NUUkZUSU1FICovCiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC03MTYsNyArNzI2LDkgQEAKICJzdHJwdGltZShzdHJpbmcsIGZvcm1hdCkgLT4gc3RydWN0X3RpbWVcblwKIFxuXAogUGFyc2UgYSBzdHJpbmcgdG8gYSB0aW1lIHR1cGxlIGFjY29yZGluZyB0byBhIGZvcm1hdCBzcGVjaWZpY2F0aW9uLlxuXAotU2VlIHRoZSBsaWJyYXJ5IHJlZmVyZW5jZSBtYW51YWwgZm9yIGZvcm1hdHRpbmcgY29kZXMgKHNhbWUgYXMgc3RyZnRpbWUoKSkuIik7CitTZWUgdGhlIGxpYnJhcnkgcmVmZXJlbmNlIG1hbnVhbCBmb3IgZm9ybWF0dGluZyBjb2RlcyAoc2FtZSBhc1xuXAorc3RyZnRpbWUoKSkuXG5cCitcbiIgU1RSRlRJTUVfRk9STUFUX0NPREVTKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKIF9hc2N0aW1lKHN0cnVjdCB0bSAqdGltZXB0cikKQEAgLTEyNjYsMTkgKzEyNzgsMTEgQEAKICNpZiBkZWZpbmVkKEhBVkVfVFpOQU1FKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fQ1lHV0lOX18pCiAgICAgUHlPYmplY3QgKm90ejAsICpvdHoxOwogICAgIHR6c2V0KCk7Ci0jaWZkZWYgUFlPU19PUzIKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAidGltZXpvbmUiLCBfdGltZXpvbmUpOwotI2Vsc2UgLyogIVBZT1NfT1MyICovCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgInRpbWV6b25lIiwgdGltZXpvbmUpOwotI2VuZGlmIC8qIFBZT1NfT1MyICovCiAjaWZkZWYgSEFWRV9BTFRaT05FCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgImFsdHpvbmUiLCBhbHR6b25lKTsKICNlbHNlCi0jaWZkZWYgUFlPU19PUzIKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiYWx0em9uZSIsIF90aW1lem9uZS0zNjAwKTsKLSNlbHNlIC8qICFQWU9TX09TMiAqLwogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJhbHR6b25lIiwgdGltZXpvbmUtMzYwMCk7Ci0jZW5kaWYgLyogUFlPU19PUzIgKi8KICNlbmRpZgogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJkYXlsaWdodCIsIGRheWxpZ2h0KTsKICAgICBvdHowID0gUHlVbmljb2RlX0RlY29kZUxvY2FsZSh0em5hbWVbMF0sICJzdXJyb2dhdGVlc2NhcGUiKTsKQEAgLTE1NzQsNyArMTU3OCw3IEBACiAgICAgICAgICAgICBEV09SRCByYzsKICAgICAgICAgICAgIEhBTkRMRSBoSW50ZXJydXB0RXZlbnQgPSBfUHlPU19TaWdpbnRFdmVudCgpOwogICAgICAgICAgICAgUmVzZXRFdmVudChoSW50ZXJydXB0RXZlbnQpOwotICAgICAgICAgICAgcmMgPSBXYWl0Rm9yU2luZ2xlT2JqZWN0KGhJbnRlcnJ1cHRFdmVudCwgdWxfbWlsbGlzKTsKKyAgICAgICAgICAgIHJjID0gV2FpdEZvclNpbmdsZU9iamVjdEV4KGhJbnRlcnJ1cHRFdmVudCwgdWxfbWlsbGlzLCBGQUxTRSk7CiAgICAgICAgICAgICBpZiAocmMgPT0gV0FJVF9PQkpFQ1RfMCkgewogICAgICAgICAgICAgICAgIFB5X0JMT0NLX1RIUkVBRFMKICAgICAgICAgICAgICAgICBlcnJubyA9IEVJTlRSOwpAQCAtMTU4NCwxNSArMTU4OCw2IEBACiAgICAgICAgIH0KICAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKICAgICB9Ci0jZWxpZiBkZWZpbmVkKFBZT1NfT1MyKQotICAgIC8qIFRoaXMgU2xlZXAgKklTKiBJbnRlcnJ1cHRhYmxlIGJ5IEV4Y2VwdGlvbnMgKi8KLSAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgaWYgKERvc1NsZWVwKHNlY3MgKiAxMDAwKSAhPSBOT19FUlJPUikgewotICAgICAgICBQeV9CTE9DS19USFJFQURTCi0gICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19JT0Vycm9yKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogI2Vsc2UKICAgICAvKiBYWFggQ2FuJ3QgaW50ZXJydXB0IHRoaXMgc2xlZXAgKi8KICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCmRpZmYgLS1naXQgYS9Nb2R1bGVzL3VuaWNvZGVkYXRhX2RiLmggYi9Nb2R1bGVzL3VuaWNvZGVkYXRhX2RiLmgKaW5kZXggNWQ1ZGNhOC4uOTNhMDljZCAxMDA2NDQKLS0tIGEvTW9kdWxlcy91bmljb2RlZGF0YV9kYi5oCisrKyBiL01vZHVsZXMvdW5pY29kZWRhdGFfZGIuaApAQCAtMSw2ICsxLDYgQEAKIC8qIHRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IFRvb2xzL3VuaWNvZGUvbWFrZXVuaWNvZGVkYXRhLnB5IDMuMiAqLwogCi0jZGVmaW5lIFVOSURBVEFfVkVSU0lPTiAiNi4xLjAiCisjZGVmaW5lIFVOSURBVEFfVkVSU0lPTiAiNi4yLjAiCiAvKiBhIGxpc3Qgb2YgdW5pcXVlIGRhdGFiYXNlIHJlY29yZHMgKi8KIGNvbnN0IF9QeVVuaWNvZGVfRGF0YWJhc2VSZWNvcmQgX1B5VW5pY29kZV9EYXRhYmFzZV9SZWNvcmRzW10gPSB7CiAgICAgezAsIDAsIDAsIDAsIDAsIDB9LApAQCAtMTQ0NCw0MSArMTQ0NCw0MCBAQAogICAgIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCA0OCwgNDgsIDQ4LCA0OCwgCiAgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCiAgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAKICAgICAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgCi0gICAgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCAwLCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCiAgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCiAgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCA0OCwgMCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCiAgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCiAgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCAKLSAgICA4MSwgODEsIDgxLCA4MywgODMsIDgzLCA4MywgODMsIDgzLCA4MywgODMsIDgzLCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgCi0gICAgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIAotICAgIDE0OCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgODEsIDgxLCAKKyAgICA4MSwgODMsIDgzLCA4MywgODMsIDgzLCA4MywgODMsIDgzLCA4MywgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgCisgICAgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDAsIAorICAgIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgODQsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4NCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIApAQCAtMTQ5OCwxNSArMTQ5NywxNiBAQAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgODMsIDgzLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDE3MiwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxNjMsIDE2NCwgMCwgCi0gICAgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA4MywgODMsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgMTcyLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDE2MywgMTY0LCAwLCAwLCAwLCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgODMsIDgzLCA4MywgMTczLCAxNzMsIDE3MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA4MywgODMsIDgzLCAxNzMsIDE3MywgMTczLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDEzNSwgMTM1LCAxNDIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDEzNSwgMTM1LCAKICAgICAxNDIsIDgzLCA4MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKQEAgLTE2NDUsMTUgKzE2NDUsMTUgQEAKICAgICAyMTEsIDIxMSwgMjEyLCAyMTMsIDIxNCwgMjE1LCAyMTAsIDM0LCAzNCwgMzQsIDM0LCAyMTAsIDIxMCwgMjEwLCAyMTAsIAogICAgIDIxMCwgMjExLCAyMTEsIDIxMiwgMjEzLCAyMTQsIDAsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCAKICAgICA1MSwgNTEsIDUxLCAwLCAwLCAwLCA4NSwgODUsIDg1LCA4NSwgODUsIDg1LCA4NSwgODUsIDIxNiwgMjE3LCA4NSwgODUsIAotICAgIDIzLCA4NSwgODUsIDg1LCA4NSwgODUsIDg1LCA4NSwgODUsIDg1LCA4NSwgODUsIDg1LCA4NSwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODEsIDgxLCAxNzUsIDE3NSwgODEsIDgxLCAKLSAgICA4MSwgODEsIDE3NSwgMTc1LCAxNzUsIDgxLCA4MSwgODIsIDgyLCA4MiwgODIsIDgxLCA4MiwgODIsIDgyLCAxNzUsIDE3NSwgCi0gICAgODEsIDg2LCA4MSwgMTc1LCAxNzUsIDg2LCA4NiwgODYsIDg2LCA4MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMjE4LCAyMTgsIDQ5LCAyMTksIDI2LCAyMTksIDIxOCwgNDksIDI2LCAyMTksIDM1LCA0OSwgNDksIAotICAgIDQ5LCAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ2LCAyNiwgNDksIDIxOSwgMjYsIDc4LCA0OSwgNDksIDQ5LCA0OSwgNDksIDI2LCAKLSAgICAyNiwgMjE4LCAyMTksIDIxOSwgMjYsIDQ5LCAyNiwgMjIwLCAyNiwgNDksIDI2LCAxODMsIDIyMCwgNDksIDQ5LCAyMjEsIAotICAgIDM1LCA0OSwgNDksIDQ0LCA0OSwgMzUsIDE1NiwgMTU2LCAxNTYsIDE1NiwgMzUsIDI2LCAyMTgsIDM1LCAzNSwgNDksIDQ5LCAKLSAgICAyMjIsIDc4LCA3OCwgNzgsIDc4LCA0OSwgMzUsIDM1LCAzNSwgMzUsIDI2LCA3OCwgMjYsIDI2LCA0NywgODAsIDIyMywgCisgICAgMjMsIDg1LCA4NSwgODUsIDg1LCA4NSwgODUsIDg1LCA4NSwgODUsIDg1LCA4NSwgODUsIDg1LCA4NSwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODEsIDgxLCAxNzUsIDE3NSwgODEsIAorICAgIDgxLCA4MSwgODEsIDE3NSwgMTc1LCAxNzUsIDgxLCA4MSwgODIsIDgyLCA4MiwgODIsIDgxLCA4MiwgODIsIDgyLCAxNzUsIAorICAgIDE3NSwgODEsIDg2LCA4MSwgMTc1LCAxNzUsIDg2LCA4NiwgODYsIDg2LCA4MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMjE4LCAyMTgsIDQ5LCAyMTksIDI2LCAyMTksIDIxOCwgNDksIDI2LCAyMTksIDM1LCA0OSwgCisgICAgNDksIDQ5LCAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ2LCAyNiwgNDksIDIxOSwgMjYsIDc4LCA0OSwgNDksIDQ5LCA0OSwgNDksIAorICAgIDI2LCAyNiwgMjE4LCAyMTksIDIxOSwgMjYsIDQ5LCAyNiwgMjIwLCAyNiwgNDksIDI2LCAxODMsIDIyMCwgNDksIDQ5LCAKKyAgICAyMjEsIDM1LCA0OSwgNDksIDQ0LCA0OSwgMzUsIDE1NiwgMTU2LCAxNTYsIDE1NiwgMzUsIDI2LCAyMTgsIDM1LCAzNSwgNDksIAorICAgIDQ5LCAyMjIsIDc4LCA3OCwgNzgsIDc4LCA0OSwgMzUsIDM1LCAzNSwgMzUsIDI2LCA3OCwgMjYsIDI2LCA0NywgODAsIDIyMywgCiAgICAgMjIzLCAyMjMsIDM3LCAzNywgMjIzLCAyMjMsIDIyMywgMjIzLCAyMjMsIDIyMywgMzcsIDM3LCAzNywgMzcsIDIyMywgMjI0LCAKICAgICAyMjQsIDIyNCwgMjI0LCAyMjQsIDIyNCwgMjI0LCAyMjQsIDIyNCwgMjI0LCAyMjQsIDIyNCwgMjI1LCAyMjUsIDIyNSwgCiAgICAgMjI1LCAyMjQsIDIyNCwgMjI0LCAyMjQsIDIyNCwgMjI0LCAyMjQsIDIyNCwgMjI0LCAyMjQsIDIyNSwgMjI1LCAyMjUsIApAQCAtMjA3MiwxMiArMjA3MiwxMSBAQAogICAgIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAKICAgICAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgCiAgICAgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKLSAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAwLCAwLCAwLCAwLCAKLSAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCi0gICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAotICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKLSAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDAsIDAsIDAsIDAsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCAwLCAwLCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKICAgICAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgCiAgICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIAogICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKQEAgLTIwODYsNyArMjA4NSw3IEBACiAgICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIAogICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKICAgICAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgCi0gICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OSwgMjY5LCAyNjksIAorICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY5LCAyNjksIDI2OSwgMjY5LCAKICAgICAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgCiAgICAgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIAogICAgIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAKQEAgLTIwOTUsNyArMjA5NCw3IEBACiAgICAgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIAogICAgIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAKICAgICAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgCi0gICAgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNzAsIAorICAgIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI3MCwgMjcwLCAKICAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCiAgICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAogICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKQEAgLTIxMDYsMTMgKzIxMDUsMTMgQEAKICAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCiAgICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAogICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKLSAgICAyNzAsIDE3MCwgMTcwLCAyNzAsIDE3MCwgMjcwLCAxNzAsIDE3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCi0gICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAxNzAsIDI3MCwgMTcwLCAyNzAsIDE3MCwgMTcwLCAyNzAsIDI3MCwgMTcwLCAxNzAsIAotICAgIDE3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKKyAgICAxNzAsIDE3MCwgMjcwLCAxNzAsIDI3MCwgMTcwLCAxNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCisgICAgMjcwLCAyNzAsIDI3MCwgMTcwLCAyNzAsIDE3MCwgMjcwLCAxNzAsIDE3MCwgMjcwLCAyNzAsIDE3MCwgMTcwLCAxNzAsIAogICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKICAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCiAgICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAotICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMCwgMCwgCisgICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAorICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDAsIDAsIDI3MCwgCiAgICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAogICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKICAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCkBAIC0yMTIwLDIyICsyMTE5LDIyIEBACiAgICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAogICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKICAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCi0gICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMCwgMCwgMCwgMCwgMCwgMjcxLCAyNzIsIDI3MSwgMjczLCAyNzMsIDI3MywgMjczLCAKLSAgICAyNzMsIDI3MywgMjczLCAyNzMsIDI3MywgMjExLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MSwgCi0gICAgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDAsIDI3MSwgMjcxLCAyNzEsIDI3MSwgMjcxLCAwLCAyNzEsIDAsIDI3MSwgMjcxLCAKLSAgICAwLCAyNzEsIDI3MSwgMCwgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MSwgMjczLCAxMzAsIAorICAgIDAsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzNSwgCisgICAgMzUsIDM1LCAzNSwgMzUsIDAsIDAsIDAsIDAsIDAsIDI3MSwgMjcyLCAyNzEsIDI3MywgMjczLCAyNzMsIDI3MywgMjczLCAKKyAgICAyNzMsIDI3MywgMjczLCAyNzMsIDIxMSwgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MSwgCisgICAgMjcxLCAyNzEsIDI3MSwgMjcxLCAwLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MSwgMCwgMjcxLCAwLCAyNzEsIDI3MSwgMCwgCisgICAgMjcxLCAyNzEsIDAsIDI3MSwgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MywgMTMwLCAxMzAsIAogICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKICAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCiAgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAogICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKICAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCiAgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAotICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMjc0LCAKLSAgICAyNzQsIDI3NCwgMjc0LCAyNzQsIDI3NCwgMjc0LCAyNzQsIDI3NCwgMjc0LCAyNzQsIDI3NCwgMjc0LCAyNzQsIDI3NCwgCi0gICAgMjc0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAyNzQsIDI3NCwgCisgICAgMjc0LCAyNzQsIDI3NCwgMjc0LCAyNzQsIDI3NCwgMjc0LCAyNzQsIDI3NCwgMjc0LCAyNzQsIDI3NCwgMjc0LCAyNzQsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKICAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCiAgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAogICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKQEAgLTIxNTIsMjYgKzIxNTEsMjYgQEAKICAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCiAgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAogICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKLSAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTk1LCAyNzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDE5NSwgMjc1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDAsIDAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCi0gICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAotICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKLSAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCi0gICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMCwgMCwgMTMwLCAKLSAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCi0gICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAotICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKLSAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAotICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMjc2LCAyNiwgMCwgMCwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCi0gICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDI3NywgMjc3LCAyNzcsIDI3NywgMjc3LCAyNzcsIDI3NywgMjc4LCAyNzksIAotICAgIDI3NywgMCwgMCwgMCwgMCwgMCwgMCwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDI3NywgMjgwLCAyODAsIDI4MSwgMjgxLCAyNzgsIDI3OSwgMjc4LCAyNzksIDI3OCwgMjc5LCAyNzgsIDI3OSwgCi0gICAgMjc4LCAyNzksIDI3OCwgMjc5LCAyNzgsIDI3OSwgMjc4LCAyNzksIDI0MywgMjQzLCAyNzgsIDI3OSwgMjc3LCAyNzcsIAotICAgIDI3NywgMjc3LCAyODEsIDI4MSwgMjgxLCAyODIsIDI3NywgMjgyLCAwLCAyNzcsIDI4MiwgMjc3LCAyNzcsIDI4MCwgMjgzLCAKLSAgICAyODQsIDI4MywgMjg0LCAyODMsIDI4NCwgMjg1LCAyNzcsIDI3NywgMjg2LCAyODcsIDI4OCwgMjg4LCAyODksIDAsIDI3NywgCi0gICAgMjkwLCAyODUsIDI3NywgMCwgMCwgMCwgMCwgMTMwLCAxMzAsIDEzMCwgMTE3LCAxMzAsIDAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAyNzYsIDI2LCAwLCAwLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgMjc3LCAyNzcsIDI3NywgMjc3LCAyNzcsIDI3NywgMjc3LCAyNzgsIDI3OSwgMjc3LCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjc3LCAKKyAgICAyODAsIDI4MCwgMjgxLCAyODEsIDI3OCwgMjc5LCAyNzgsIDI3OSwgMjc4LCAyNzksIDI3OCwgMjc5LCAyNzgsIDI3OSwgCisgICAgMjc4LCAyNzksIDI3OCwgMjc5LCAyNzgsIDI3OSwgMjQzLCAyNDMsIDI3OCwgMjc5LCAyNzcsIDI3NywgMjc3LCAyNzcsIAorICAgIDI4MSwgMjgxLCAyODEsIDI4MiwgMjc3LCAyODIsIDAsIDI3NywgMjgyLCAyNzcsIDI3NywgMjgwLCAyODMsIDI4NCwgMjgzLCAKKyAgICAyODQsIDI4MywgMjg0LCAyODUsIDI3NywgMjc3LCAyODYsIDI4NywgMjg4LCAyODgsIDI4OSwgMCwgMjc3LCAyOTAsIDI4NSwgCisgICAgMjc3LCAwLCAwLCAwLCAwLCAxMzAsIDEzMCwgMTMwLCAxMTcsIDEzMCwgMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAogICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKICAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCiAgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIApAQCAtMjE4MSwyOTYgKzIxODAsMjg5IEBACiAgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAogICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKICAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCi0gICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMCwgMCwgMTg3LCAwLCAyOTEsIDI5MSwgMjkyLCAyOTMsIDI5MiwgMjkxLCAKLSAgICAyOTEsIDI5NCwgMjk1LCAyOTEsIDI5NiwgMjk3LCAyOTgsIDI5NywgMjk3LCAyOTksIDI5OSwgMjk5LCAyOTksIDI5OSwgCi0gICAgMjk5LCAyOTksIDI5OSwgMjk5LCAyOTksIDI5NywgMjkxLCAzMDAsIDMwMSwgMzAwLCAyOTEsIDI5MSwgMzAyLCAzMDIsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMCwgMCwgMTg3LCAwLCAyOTEsIDI5MSwgMjkyLCAyOTMsIDI5MiwgMjkxLCAyOTEsIDI5NCwgCisgICAgMjk1LCAyOTEsIDI5NiwgMjk3LCAyOTgsIDI5NywgMjk3LCAyOTksIDI5OSwgMjk5LCAyOTksIDI5OSwgMjk5LCAyOTksIAorICAgIDI5OSwgMjk5LCAyOTksIDI5NywgMjkxLCAzMDAsIDMwMSwgMzAwLCAyOTEsIDI5MSwgMzAyLCAzMDIsIDMwMiwgMzAyLCAKICAgICAzMDIsIDMwMiwgMzAyLCAzMDIsIDMwMiwgMzAyLCAzMDIsIDMwMiwgMzAyLCAzMDIsIDMwMiwgMzAyLCAzMDIsIDMwMiwgCi0gICAgMzAyLCAzMDIsIDMwMiwgMzAyLCAzMDIsIDMwMiwgMzAyLCAzMDIsIDMwMiwgMzAyLCAyOTQsIDI5MSwgMjk1LCAzMDMsIAotICAgIDMwNCwgMzAzLCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMzA1LCAKKyAgICAzMDIsIDMwMiwgMzAyLCAzMDIsIDMwMiwgMzAyLCAzMDIsIDMwMiwgMjk0LCAyOTEsIDI5NSwgMzAzLCAzMDQsIDMwMywgCiAgICAgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIAotICAgIDI5NCwgMzAxLCAyOTUsIDMwMSwgMjk0LCAyOTUsIDMwNiwgMzA3LCAzMDgsIDMwNiwgMzA2LCAzMDksIDMwOSwgMzA5LCAKLSAgICAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMxMCwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgCisgICAgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMjk0LCAzMDEsIAorICAgIDI5NSwgMzAxLCAyOTQsIDI5NSwgMzA2LCAzMDcsIDMwOCwgMzA2LCAzMDYsIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAKKyAgICAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzEwLCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgCiAgICAgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIAogICAgIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAKLSAgICAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzEwLCAzMTAsIDMwOSwgCisgICAgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzEwLCAzMTAsIDMwOSwgMzA5LCAzMDksIAogICAgIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAKLSAgICAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgCi0gICAgMzA5LCAzMDksIDAsIDAsIDAsIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDAsIDAsIDMwOSwgMzA5LCAzMDksIAotICAgIDMwOSwgMzA5LCAzMDksIDAsIDAsIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDAsIDAsIDMwOSwgMzA5LCAzMDksIAotICAgIDAsIDAsIDAsIDI5MywgMjkzLCAzMDEsIDMwMywgMzExLCAyOTMsIDI5MywgMCwgMzEyLCAzMTMsIDMxMywgMzEzLCAzMTMsIAotICAgIDMxMiwgMzEyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMTQsIDMxNCwgMzE0LCAyNiwgMzAsIDAsIDAsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAwLCAKKyAgICAwLCAwLCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAwLCAwLCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAKKyAgICAwLCAwLCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAwLCAwLCAzMDksIDMwOSwgMzA5LCAwLCAwLCAwLCAyOTMsIAorICAgIDI5MywgMzAxLCAzMDMsIDMxMSwgMjkzLCAyOTMsIDAsIDMxMiwgMzEzLCAzMTMsIDMxMywgMzEzLCAzMTIsIDMxMiwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzE0LCAzMTQsIDMxNCwgMjYsIDMwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCAwLCA0OCwgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMCwgODMsIDEzOCwgODMsIDAsIDAsIDAsIDAsIDE0OCwgMTQ4LCAKLSAgICAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgCi0gICAgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIAotICAgIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAKLSAgICAxNDgsIDAsIDAsIDAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDMxNSwgMzE1LCAzMTUsIDMxNSwgCi0gICAgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIAotICAgIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAKLSAgICAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgCi0gICAgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAxNTMsIDE1MywgMTUzLCAxNTMsIDI2LCAyNiwgMjYsIDI2LCAKLSAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMTUzLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCA0OCwgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODAsIDgwLCA4MCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgMCwgMCwgMCwgMCwgMCwgODMsIDEzOCwgODMsIDAsIDAsIDAsIDAsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIAorICAgIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAKKyAgICAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgCisgICAgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDAsIDAsIDAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIAorICAgIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAKKyAgICAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgCisgICAgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIAorICAgIDMxNSwgMzE1LCAxNTMsIDE1MywgMTUzLCAxNTMsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMTUzLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAogICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAotICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAotICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDg2LCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDg2LCAwLCAwLCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTczLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDE3MywgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgODMsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIAotICAgIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgODMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgCi0gICAgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgCi0gICAgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgCi0gICAgMTQ0LCAxNDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwNywgMTA3LCAxMDcsIDEwNywgCi0gICAgMTA3LCAxMDcsIDAsIDAsIDEwNywgMCwgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKLSAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCi0gICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAotICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDEwNywgMTA3LCAwLCAwLCAwLCAxMDcsIDAsIDAsIDEwNywgMTA3LCAKLSAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCi0gICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAwLCAxMDQsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIAotICAgIDMxNiwgMzE2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCi0gICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAotICAgIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIDAsIDAsIDAsIDEzOCwgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCi0gICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAotICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDAsIDAsIDAsIDAsIDEwNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKLSAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCi0gICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAotICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKLSAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDAsIDAsIDAsIDAsIDAsIDEwNywgMTA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDcsIDEzNSwgMTM1LCAxMzUsIDAsIDEzNSwgMTM1LCAwLCAwLCAwLCAwLCAwLCAKLSAgICAxMzUsIDg2LCAxMzUsIDgxLCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDEwNywgMTA3LCAxMDcsIDAsIDEwNywgMTA3LCAxMDcsIAotICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKLSAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDAsIDAsIDAsIDgxLCAxNzUsIAotICAgIDg2LCAwLCAwLCAwLCAwLCAxNDIsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAxMDQsIDEwNCwgMTA0LCAxMDQsIDEwNCwgMTA0LCAxMDQsIDEwNCwgMTA0LCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAotICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKLSAgICAxMDcsIDEwNywgMzE2LCAzMTYsIDEwNCwgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCi0gICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAotICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKLSAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCi0gICAgMTA3LCAxMDcsIDEwNywgMCwgMCwgMCwgMTM4LCAxMzgsIDEzOCwgMTM4LCAxMzgsIDEzOCwgMTM4LCAxMDcsIDEwNywgMTA3LCAKLSAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCi0gICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDAsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAKLSAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCi0gICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDAsIDAsIDAsIDAsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIAotICAgIDMxNiwgMzE2LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKLSAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCi0gICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAotICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKLSAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCi0gICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAKLSAgICAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgCi0gICAgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMCwgMTM5LCAxMzUsIAotICAgIDEzOSwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgCi0gICAgMTQyLCA4MywgODMsIDgzLCA4MywgODMsIDgzLCA4MywgMCwgMCwgMCwgMCwgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIAotICAgIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAKLSAgICAxNTMsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTM1LCAxMzUsIDEzOSwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxNDAsIDQ4LCAKLSAgICAxNDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTQwLCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgMTM5LCAxMzksIDEzOSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzksIDEzOSwgMTQyLCAxNDEsIDgzLCA4MywgCi0gICAgMTg4LCA4MywgODMsIDgzLCA4MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIAotICAgIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMCwgMCwgMCwgMCwgMCwgMCwgODEsIDgxLCA4MSwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTQ5LCAxMzUsIDEzNSwgMTM1LCAxMzUsIAotICAgIDEzOSwgMTM1LCAxNTAsIDE1MCwgMTM1LCAxMzUsIDEzNSwgMTQyLCAxNDIsIDAsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAKLSAgICAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgODMsIDgzLCA4MywgODMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDEzNSwgMTM1LCAxMzksIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDEzOSwgMTM5LCAKLSAgICAxMzksIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzOSwgMTc0LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgODMsIDgzLCA4MywgODMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIAotICAgIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDEzNSwgMTM5LCAxMzUsIDEzOSwgMTM5LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAKLSAgICAxNzQsIDE0NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIAotICAgIDE0NCwgMTQ0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCiAgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAKLSAgICAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgCi0gICAgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIAotICAgIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAKLSAgICAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgCi0gICAgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIAotICAgIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAKLSAgICAxNzMsIDE3MywgMTczLCAxNzMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDgzLCA4MywgODMsIAotICAgIDgzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDQ4LCA0OCwgMCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDE3MywgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxNzMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAogICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDgzLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDgzLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCAKKyAgICA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCAKKyAgICA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKKyAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKKyAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgMCwgMCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAwLCAwLCAxMDcsIDAsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAwLCAxMDcsIDEwNywgMCwgMCwgMCwgMTA3LCAwLCAwLCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMCwgMTA0LCAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgCisgICAgMzE2LCAwLCAwLCAwLCAxMzgsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAwLCAwLCAwLCAwLCAwLCAxMDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAxMDcsIDEwNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMTA3LCAxMzUsIDEzNSwgMTM1LCAwLCAxMzUsIDEzNSwgMCwgMCwgMCwgMCwgMCwgMTM1LCA4NiwgMTM1LCA4MSwgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAwLCAxMDcsIDEwNywgMTA3LCAwLCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAwLCAwLCAwLCAwLCA4MSwgMTc1LCA4NiwgMCwgMCwgMCwgMCwgMTQyLCAKKyAgICAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA0LCAxMDQsIAorICAgIDEwNCwgMTA0LCAxMDQsIDEwNCwgMTA0LCAxMDQsIDEwNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDMxNiwgMzE2LCAKKyAgICAxMDQsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDAsIDAsIAorICAgIDEzOCwgMTM4LCAxMzgsIDEzOCwgMTM4LCAxMzgsIDEzOCwgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAwLCAwLCAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAwLCAwLCAwLCAwLCAwLCAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIAorICAgIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAKKyAgICAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDAsIDEzOSwgMTM1LCAxMzksIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIAorICAgIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDE0MiwgODMsIDgzLCA4MywgODMsIDgzLCA4MywgCisgICAgODMsIDAsIDAsIDAsIDAsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAKKyAgICAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgCisgICAgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDEzNSwgMTM1LCAxMzksIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTQwLCA0OCwgMTQwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDE0MCwgNDgsIDQ4LCA0OCwgNDgsIDEzOSwgMTM5LCAxMzksIDEzNSwgCisgICAgMTM1LCAxMzUsIDEzNSwgMTM5LCAxMzksIDE0MiwgMTQxLCA4MywgODMsIDE4OCwgODMsIDgzLCA4MywgODMsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDgxLCA4MSwgODEsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDE0OSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzksIDEzNSwgMTUwLCAxNTAsIDEzNSwgMTM1LCAKKyAgICAxMzUsIDE0MiwgMTQyLCAwLCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDgzLCAKKyAgICA4MywgODMsIDgzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzUsIDEzNSwgMTM5LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxMzksIDEzOSwgMTM5LCAxMzUsIDEzNSwgMTM1LCAKKyAgICAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzksIDE3NCwgNDgsIDQ4LCA0OCwgNDgsIDgzLCA4MywgODMsIDgzLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxMzUsIAorICAgIDEzOSwgMTM1LCAxMzksIDEzOSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTc0LCAxNDUsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTczLCAKKyAgICAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgCisgICAgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIAorICAgIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAKKyAgICAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgCisgICAgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIAorICAgIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAKKyAgICAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODMsIDgzLCA4MywgODMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAKICAgICAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgCiAgICAgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIAotICAgIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAKLSAgICAxMzksIDEzOSwgMTM5LCAxMzksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzNSwgCi0gICAgMTM1LCAxMzUsIDEzNSwgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDAsIDAsIAorICAgIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTM1LCAxMzUsIDEzNSwgMTM1LCA1MywgNTMsIDUzLCAKKyAgICA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTcwLCAKLSAgICAxNzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE3MCwgMTcwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODAsIDgwLCAKICAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKICAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKICAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKICAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKICAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKLSAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAogICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAotICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAwLCAwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4MCwgODAsIDgwLCAKICAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKICAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKLSAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgMzE4LCAzMTgsIDMxOCwgMzE4LCAzMTgsIDMxOCwgMzE4LCAzMTksIDMxOSwgCi0gICAgMTc1LCAxNzUsIDE3NSwgODAsIDgwLCA4MCwgMzIwLCAzMTksIDMxOSwgMzE5LCAzMTksIDMxOSwgMTg3LCAxODcsIDE4NywgCi0gICAgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDg2LCA4NiwgODYsIDg2LCA4NiwgODYsIDg2LCA4NiwgODAsIDgwLCA4MSwgODEsIAotICAgIDgxLCA4MSwgODEsIDg2LCA4NiwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAotICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODEsIAotICAgIDgxLCA4MSwgODEsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAzMTgsIDMxOCwgCi0gICAgMzE4LCAzMTgsIDMxOCwgMzE4LCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCi0gICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAwLCAwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAorICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAorICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAorICAgIDMxOCwgMzE4LCAzMTgsIDMxOCwgMzE4LCAzMTgsIDMxOCwgMzE5LCAzMTksIDE3NSwgMTc1LCAxNzUsIDgwLCA4MCwgODAsIAorICAgIDMyMCwgMzE5LCAzMTksIDMxOSwgMzE5LCAzMTksIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCA4NiwgCisgICAgODYsIDg2LCA4NiwgODYsIDg2LCA4NiwgODYsIDgwLCA4MCwgODEsIDgxLCA4MSwgODEsIDgxLCA4NiwgODYsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgxLCA4MSwgODEsIDgxLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgMzE4LCAzMTgsIDMxOCwgMzE4LCAzMTgsIDMxOCwgODAsIDgwLCAKKyAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKKyAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgODEsIAotICAgIDgxLCA4MSwgMjYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCA4MSwgODEsIDgxLCAyNiwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKICAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKICAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKICAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKICAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKLSAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTQ4LCAxNDgsIDE0OCwgCi0gICAgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIAotICAgIDE0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCi0gICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCi0gICAgNDksIDQ5LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCi0gICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCi0gICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCi0gICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDAsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKLSAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMzUsIDM1LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAKKyAgICAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIAorICAgIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIAogICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIAotICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCAwLCA0OSwgNDksIDAsIDAsIDQ5LCAwLCAwLCA0OSwgNDksIDAsIDAsIDQ5LCAKLSAgICA0OSwgNDksIDQ5LCAwLCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDM1LCAzNSwgMzUsIDM1LCAwLCAzNSwgMCwgCi0gICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDAsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDAsIAorICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIAorICAgIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIAorICAgIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIAorICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCA0OSwgMCwgCisgICAgNDksIDQ5LCAwLCAwLCA0OSwgMCwgMCwgNDksIDQ5LCAwLCAwLCA0OSwgNDksIDQ5LCA0OSwgMCwgNDksIDQ5LCA0OSwgNDksIAorICAgIDQ5LCA0OSwgNDksIDQ5LCAzNSwgMzUsIDM1LCAzNSwgMCwgMzUsIDAsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAwLCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCA0OSwgNDksIDAsIDQ5LCA0OSwgNDksIDQ5LCAwLCAwLCA0OSwgCisgICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDAsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAwLCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgMCwgNDksIDQ5LCA0OSwgNDksIDAsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMCwgCisgICAgNDksIDAsIDAsIDAsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAwLCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCisgICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCiAgICAgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCiAgICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCiAgICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCA0OSwgCi0gICAgNDksIDAsIDQ5LCA0OSwgNDksIDQ5LCAwLCAwLCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDAsIDQ5LCA0OSwgCi0gICAgNDksIDQ5LCA0OSwgNDksIDQ5LCAwLCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgMCwgNDksIAotICAgIDQ5LCA0OSwgNDksIDAsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMCwgNDksIDAsIDAsIDAsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCi0gICAgNDksIDQ5LCAwLCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKICAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKICAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKICAgICA0OSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKICAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKICAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDM1LCAKICAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKLSAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKLSAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKLSAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKLSAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMCwgMCwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIAotICAgIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDMyMSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDIyMiwgCi0gICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCi0gICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDMyMSwgMzUsIDM1LCAzNSwgMzUsIAotICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIAotICAgIDM1LCAzNSwgMzUsIDIyMiwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAwLCAwLCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIAogICAgIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMzIxLCAKICAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKICAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMjIyLCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCA0OSwgNDksIDQ5LCA0OSwgCkBAIC0yNDgwLDc3ICsyNDcyLDg0IEBACiAgICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCiAgICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDMyMSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIAogICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDIyMiwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgNDksIDM1LCAwLCAwLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgCisgICAgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCisgICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAzMjEsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIAorICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIAorICAgIDM1LCAyMjIsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAzMjEsIDM1LCAzNSwgCisgICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCisgICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAyMjIsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCAzNSwgMCwgMCwgMzIyLCAzMjIsIAogICAgIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAKICAgICAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgCiAgICAgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIAotICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCiAgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAotICAgIDEzMCwgMTMwLCAxMzAsIDAsIDEzMCwgMTMwLCAwLCAxMzAsIDAsIDAsIDEzMCwgMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKLSAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDAsIDEzMCwgMCwgMTMwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAxMzAsIDAsIDAsIDAsIDAsIDEzMCwgMCwgMTMwLCAwLCAxMzAsIDAsIDEzMCwgMTMwLCAxMzAsIDAsIAotICAgIDEzMCwgMTMwLCAwLCAxMzAsIDAsIDAsIDEzMCwgMCwgMTMwLCAwLCAxMzAsIDAsIDEzMCwgMCwgMTMwLCAwLCAxMzAsIDEzMCwgCi0gICAgMCwgMTMwLCAwLCAwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCi0gICAgMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDAsIDEzMCwgMCwgMTMwLCAxMzAsIDEzMCwgCi0gICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAotICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMCwgMCwgMCwgMCwgMCwgMTMwLCAKLSAgICAxMzAsIDEzMCwgMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAotICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAwLCAxMzAsIDEzMCwgMCwgMTMwLCAwLCAwLCAKKyAgICAxMzAsIDAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAwLCAxMzAsIDAsIDEzMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTMwLCAwLCAwLCAwLCAwLCAxMzAsIDAsIDEzMCwgCisgICAgMCwgMTMwLCAwLCAxMzAsIDEzMCwgMTMwLCAwLCAxMzAsIDEzMCwgMCwgMTMwLCAwLCAwLCAxMzAsIDAsIDEzMCwgMCwgMTMwLCAKKyAgICAwLCAxMzAsIDAsIDEzMCwgMCwgMTMwLCAxMzAsIDAsIDEzMCwgMCwgMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAwLCAxMzAsIDAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDAsIDAsIDAsIDAsIDAsIDEzMCwgMTMwLCAxMzAsIDAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzgsIDc4LCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDAsIDAsIDAsIDAsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDAsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDI2LCAyNiwgCi0gICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMCwgMCwgMCwgMCwgMCwgMjM3LCAyMzcsIAotICAgIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAKLSAgICAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgCi0gICAgMzIzLCAwLCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIAotICAgIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAKLSAgICAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgCi0gICAgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIAotICAgIDMyNCwgMzI0LCAzMjQsIDIxOCwgMjE4LCAwLCAwLCAwLCAwLCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIAotICAgIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAKLSAgICAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMjM3LCAzMjQsIDMyNCwgCi0gICAgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAotICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAotICAgIDgwLCA4MCwgMjY0LCAyNjQsIDI2NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjY0LCAyNjQsIAotICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAKLSAgICAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgCi0gICAgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAyNjQsIDI2NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzgsIDc4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDAsIDAsIDAsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMjYsIDI2LCAKLSAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKLSAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKLSAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKICAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKICAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKLSAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDI2LCAwLCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDAsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAorICAgIDM0LCAzNCwgMCwgMCwgMCwgMCwgMCwgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAKKyAgICAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgCisgICAgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMzIzLCAwLCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIAorICAgIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAKKyAgICAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMzI0LCAzMjQsIDMyNCwgCisgICAgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIAorICAgIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDIxOCwgMjE4LCAwLCAwLCAwLCAwLCAzMjQsIAorICAgIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAKKyAgICAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgCisgICAgMzI0LCAzMjQsIDMyNCwgMjM3LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgMjY0LCAyNjQsIDI2NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAKKyAgICAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgCisgICAgMjY0LCAyNjQsIDI2NCwgMjY0LCAwLCAwLCAwLCAwLCAwLCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNjQsIDI2NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDAsIDAsIDAsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAwLCAyNiwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIApAQCAtMjU2MCw3NyArMjU1OSw3NiBAQAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDAsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDAsIDI2LCAyNiwgCi0gICAgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDAsIDAsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAogICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgCi0gICAgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKLSAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKLSAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKLSAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKLSAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAotICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNzAsIDE3MCwgCi0gICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAotICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKLSAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCi0gICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAotICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKLSAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCi0gICAgMTcwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAotICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKLSAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCi0gICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAotICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTcwLCAKLSAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCi0gICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAotICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKLSAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCi0gICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAotICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKLSAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAorICAgIDAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKICAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCi0gICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMCwgMCwgMCwgMCwgCisgICAgMjcwLCAyNzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE4NywgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDE4NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAKICAgICAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgCiAgICAgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIAogICAgIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAKICAgICAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgCiAgICAgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIAogICAgIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAKLSAgICAxODcsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAogICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAogICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAogICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIApAQCAtMjY0Myw4ICsyNjQxLDggQEAKICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKICAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKLSAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgCiAgICAgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIAogICAgIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAKICAgICAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgCkBAIC0yNjUyLDggKzI2NTAsOCBAQAogICAgIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAKICAgICAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgCiAgICAgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIAotICAgIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAwLCAKLSAgICAwLCAKKyAgICAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgCisgICAgMjY5LCAyNjksIDI2OSwgMjY5LCAwLCAwLCAKIH07CiAKIC8qIGRlY29tcG9zaXRpb24gZGF0YSAqLwpAQCAtNTg2Myw3ICs1ODYxLDcgQEAKICAgICAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzNiwgNCwgMCwgMCwgMzcsIDM4LCAzOSwgNDAsIAogICAgIDQxLCA0MiwgMSwgMSwgMCwgMCwgMCwgNCwgMzYsIDgsIDYsIDcsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDEsIDEsIDAsIAogICAgIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIAogICAgIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy91bmljb2RlbmFtZV9kYi5oIGIvTW9kdWxlcy91bmljb2RlbmFtZV9kYi5oCmluZGV4IDM4Mzg4ODIuLjA4NGYwMTEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvdW5pY29kZW5hbWVfZGIuaAorKysgYi9Nb2R1bGVzL3VuaWNvZGVuYW1lX2RiLmgKQEAgLTY1LDkgKzY1LDkgQEAKICAgICA3NiwgODUsIDE5NywgODMsIDcyLCA2NSwgODIsIDY1LCA2OCwgMTkzLCA4MywgNzMsIDc4LCA3MiwgNjUsIDc2LCAxOTMsIAogICAgIDc1LCA2NSwgMTI4LCA4MiwgODUsIDc4LCA3MywgMTk1LCA4MywgNjUsIDg1LCA4MiwgNjUsIDgzLCA3MiwgODQsIDgyLCAKICAgICAxOTMsIDg0LCA2OSwgODQsIDgyLCA2NSwgNzEsIDgyLCA2NSwgMjA1LCA2OCwgNjksIDgzLCA2OSwgODIsIDY5LCAyMTIsIAotICAgIDg0LCA3MywgNzYsIDY4LCA2OSwgMTI4LCA3MSwgODUsIDgyLCA3NywgODUsIDc1LCA3MiwgMjAxLCA3NywgNjUsIDEyOCwgCi0gICAgNzcsIDY1LCA4OSwgNjksIDIwMywgNzcsIDY5LCA2OSwgODQsIDY5LCAyMDEsIDc4LCA3OSwgODQsIDY1LCA4NCwgNzMsIDc5LCAKLSAgICAyMDYsIDgzLCA4OSwgODIsIDczLCA2NSwgMTk1LCA3MCwgNzMsIDg2LCA2OSwgMTI4LCA4MCwgNjUsIDEyOCwgODksIDY1LCAKKyAgICA4MywgODksIDgyLCA3MywgNjUsIDE5NSwgODQsIDczLCA3NiwgNjgsIDY5LCAxMjgsIDcxLCA4NSwgODIsIDc3LCA4NSwgNzUsIAorICAgIDcyLCAyMDEsIDc3LCA2NSwgMTI4LCA3NywgNjUsIDg5LCA2OSwgMjAzLCA3NywgNjksIDY5LCA4NCwgNjksIDIwMSwgNzgsIAorICAgIDc5LCA4NCwgNjUsIDg0LCA3MywgNzksIDIwNiwgNzAsIDczLCA4NiwgNjksIDEyOCwgODAsIDY1LCAxMjgsIDg5LCA2NSwgCiAgICAgMTI4LCA3NiwgNzMsIDcxLCA3MiwgMjEyLCA4MywgNzMsIDg4LCAxMjgsIDY5LCA3MywgNzEsIDcyLCA4NCwgMTI4LCA3NiwgCiAgICAgNjksIDgwLCA2NywgNzIsIDE5MywgNzgsIDY1LCAxMjgsIDgzLCA2OSwgODYsIDY5LCA3OCwgMTI4LCA3NiwgNzksIDc4LCAKICAgICAxOTksIDc4LCA3MywgNzgsIDY5LCAxMjgsIDg0LCA4NSwgODIsIDc1LCA3MywgMTk1LCA3MiwgNjUsIDc3LCA5MCwgMTkzLCAKQEAgLTUyNSw3OSArNTI1LDc5IEBACiAgICAgODQsIDg1LCA4NCwgODQsIDg5LCAxMjgsIDg0LCA4NSwgODQsIDY5LCA4OSwgNjUsIDgzLCA2NSwgODQsIDEyOCwgODQsIDg1LCAKICAgICA4NCwgMTI4LCA4NCwgODUsIDgyLCA4OCwgMTI4LCA4NCwgODUsIDgyLCA4NSwgMTI4LCA4NCwgODUsIDgyLCA4NCwgNzYsIAogICAgIDY5LCAxMjgsIDg0LCA4NSwgODIsIDc5LCA1MCwgMTI4LCA4NCwgODUsIDgyLCA3OCwgODMsIDg0LCA3MywgNzYsIDY5LCAKLSAgICAxMjgsIDg0LCA4NSwgODIsIDc4LCA2OSwgMTk2LCA4NCwgODUsIDgyLCAyMDYsIDg0LCA4NSwgODIsIDY2LCA2NSwgNzgsIAotICAgIDEyOCwgODQsIDg1LCA4MiwgMTI4LCA4NCwgODUsIDgwLCAxMjgsIDg0LCA4NSwgNzksIDg4LCAxMjgsIDg0LCA4NSwgNzksIAotICAgIDg0LCAxMjgsIDg0LCA4NSwgNzksIDgwLCAxMjgsIDg0LCA4NSwgNzksIDEyOCwgODQsIDg1LCA3OCwgNzgsIDg5LCAxMjgsIAotICAgIDg0LCA4NSwgNzcsIDY5LCA4NCwgNjksIDgzLCAxMjgsIDg0LCA4NSwgNzcsIDY1LCA2OSwgMTI4LCA4NCwgODUsIDc3LCAKLSAgICAxMjgsIDg0LCA4NSwgNzYsIDczLCA4MCwgMTI4LCA4NCwgODUsIDc1LCA4NywgNjksIDc4LCA4NCwgNzMsIDgzLCAxMjgsIAotICAgIDg0LCA4NSwgNzUsIDEyOCwgODQsIDg1LCA3MSwgODIsIDczLCAyMDMsIDg0LCA4NSwgNzEsIDUwLCAxMjgsIDg0LCA4NSwgCi0gICAgNzEsIDE3OCwgODQsIDg1LCA2NSwgODIsIDY5LCAxOTksIDg0LCA4NSwgNjUsIDY5LCA4MCwgMTI4LCA4NCwgODUsIDY1LCAKLSAgICA2OSwgMTI4LCA4NCwgMjEzLCA4NCwgODQsIDg1LCA4NSwgMTI4LCA4NCwgODQsIDg1LCA2OCwgNjgsIDY1LCA3MSwgMTI4LCAKLSAgICA4NCwgODQsIDg1LCA2OCwgNjgsIDY1LCA2NSwgNzEsIDEyOCwgODQsIDg0LCA4NSwgMTI4LCA4NCwgODQsIDg0LCA3MiwgNjUsIAotICAgIDEyOCwgODQsIDg0LCA4NCwgNjUsIDEyOCwgODQsIDg0LCA4MywgODUsIDEyOCwgODQsIDg0LCA4MywgNzksIDEyOCwgODQsIAotICAgIDg0LCA4MywgNzMsIDEyOCwgODQsIDg0LCA4MywgNjksIDY5LCAxMjgsIDg0LCA4NCwgODMsIDY5LCAxMjgsIDg0LCA4NCwgCi0gICAgODMsIDY1LCAxMjgsIDg0LCA4NCwgNzksIDc5LCAxMjgsIDg0LCA4NCwgNzMsIDczLCAxMjgsIDg0LCA4NCwgNzMsIDEyOCwgCi0gICAgODQsIDg0LCA3MiwgODcsIDY5LCAxMjgsIDg0LCA4NCwgNzIsIDg1LCAxMjgsIDg0LCA4NCwgNzIsIDc5LCA3OSwgMTI4LCAKLSAgICA4NCwgODQsIDcyLCA3OSwgMTI4LCA4NCwgODQsIDcyLCA3MywgMTI4LCA4NCwgODQsIDcyLCA2OSwgNjksIDEyOCwgODQsIAotICAgIDg0LCA3MiwgNjksIDEyOCwgODQsIDg0LCA3MiwgNjUsIDY1LCAxMjgsIDg0LCA4NCwgNzIsIDEyOCwgODQsIDg0LCA2OSwgCi0gICAgNzIsIDY5LCA3MiwgMTI4LCA4NCwgODQsIDY5LCA3MiwgNjksIDIwMCwgODQsIDg0LCA2OSwgNzIsIDEyOCwgODQsIDg0LCAKLSAgICA2OSwgMjAwLCA4NCwgODQsIDY5LCA2OSwgMTI4LCA4NCwgODQsIDY1LCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgODQsIAotICAgIDg0LCA2NSwgODUsIDEyOCwgODQsIDg0LCA2NSwgNzMsIDEyOCwgODQsIDg0LCA2NSwgNjUsIDEyOCwgODQsIDg0LCA1MCwgCi0gICAgMTI4LCA4NCwgODMsIDg3LCA2OSwgMTI4LCA4NCwgODMsIDg3LCA2NSwgMTI4LCA4NCwgODMsIDg2LCAxMjgsIDg0LCA4MywgCi0gICAgODMsIDY5LCAxMjgsIDg0LCA4MywgODMsIDY1LCAxMjgsIDg0LCA4MywgNzIsIDg1LCA3MSwgODMsIDEyOCwgODQsIDgzLCAKLSAgICA3MiwgNzksIDc5LCA3NSwgMTI4LCA4NCwgODMsIDcyLCA3OSwgNzksIDIwMywgODQsIDgzLCA3MiwgNjksIDgzLCAxMjgsIAotICAgIDg0LCA4MywgNzIsIDY5LCA3MSwgMTI4LCA4NCwgODMsIDcyLCA2OSwgMTk5LCA4NCwgODMsIDcyLCA2OSwgMTI4LCA4NCwgCi0gICAgODMsIDcyLCA2NSwgMTI4LCA4NCwgODMsIDY5LCA4MiwgNjksIDEyOCwgODQsIDgzLCA2NSwgNjgsIDczLCAxMjgsIDg0LCAKLSAgICA4MywgNjUsIDY4LCAyMDEsIDg0LCA4MywgNjUsIDY1LCA2OCwgNzMsIDg5LCAxMjgsIDg0LCA4MywgNjUsIDY1LCAxMjgsIAotICAgIDg0LCA4MywgMTkzLCA4NCwgODIsIDg5LCA2NiwgNzYsIDczLCA3OSwgMjA2LCA4NCwgODIsIDg1LCA4NCwgNzIsIDEyOCwgCi0gICAgODQsIDgyLCA4NSwgNzgsIDc1LCAxMjgsIDg0LCA4MiwgODUsIDc4LCA2NywgNjUsIDg0LCA2OSwgMTk2LCA4NCwgODIsIDg1LCAKLSAgICA3NywgODAsIDY5LCA4NCwgMTI4LCA4NCwgODIsIDg1LCA2OSwgMTI4LCA4NCwgODIsIDg1LCA2NywgNzUsIDEyOCwgODQsIAotICAgIDgyLCA3OSwgODAsIDczLCA2NywgNjUsIDIwNCwgODQsIDgyLCA3OSwgODAsIDcyLCA4OSwgMTI4LCA4NCwgODIsIDc5LCA3NywgCi0gICAgNzMsIDc1LCA3OSwgODMsIDg5LCA3OCwgNjUsIDcxLCA3NywgNjUsIDEyOCwgODQsIDgyLCA3OSwgNzcsIDczLCA3NSwgNzksIAotICAgIDgwLCA4MywgNzMsIDcwLCA3MywgODMsIDg0LCA3OSwgNzgsIDEyOCwgODQsIDgyLCA3OSwgNzcsIDczLCA3NSwgNzksIDgwLCAKLSAgICA2NSwgODIsIDY1LCA3NSwgNjUsIDc2LCA2OSwgODMsIDc3LCA2NSwgMTI4LCA4NCwgODIsIDc5LCA3NywgNzMsIDc1LCA3OSwgCi0gICAgNzgsIDEyOCwgODQsIDgyLCA3OSwgNzcsIDczLCA3NSwgNzksIDIwNiwgODQsIDgyLCA3OSwgNzcsIDczLCA3NSwgNzksIDc2LCAKLSAgICA4OSwgNzEsIDczLCA4MywgNzcsIDY1LCAxMjgsIDg0LCA4MiwgNzksIDc2LCA3NiwgNjksIDg5LCA2NiwgODUsIDgzLCAxMjgsIAotICAgIDg0LCA4MiwgNzksIDc1LCA4NSwgODQsIDY1LCA4MywgODQsIDIwMSwgODQsIDgyLCA3OSwgNjksIDkwLCA2OSwgNzgsIDczLCAKLSAgICA2NSwgMjA2LCA4NCwgODIsIDczLCA4NSwgNzcsIDgwLCA3MiwgMTI4LCA4NCwgODIsIDczLCA4NCwgNzksIDIxMSwgODQsIAotICAgIDgyLCA3MywgODQsIDczLCA3NywgNzksIDgyLCA3MywgNzksIDc4LCAxMjgsIDg0LCA4MiwgNzMsIDgzLCA3MywgNzcsIDc5LCAKLSAgICA4NSwgMTI4LCA4NCwgODIsIDczLCA4MywgNjksIDc3LCA2OSwgMTI4LCA4NCwgODIsIDczLCA4MCwgNzksIDY4LCAxMjgsIAotICAgIDg0LCA4MiwgNzMsIDgwLCA3NiwgNzMsIDEyOCwgODQsIDgyLCA3MywgODAsIDc2LCAxOTcsIDg0LCA4MiwgNzMsIDc5LCAKLSAgICAyMDYsIDg0LCA4MiwgNzMsIDczLCA4MywgNjUsIDgwLCAxMjgsIDg0LCA4MiwgNzMsIDcxLCA4MiwgNjUsIDc3LCA3NywgNzksIAotICAgIDIxMSwgODQsIDgyLCA3MywgNzEsIDgyLCA2NSwgMjA1LCA4NCwgODIsIDczLCA3MSwgNzksIDgyLCA3MSwgNzksIDc4LCAKLSAgICAxMjgsIDg0LCA4MiwgNzMsIDcwLCA3OSwgNzgsIDczLCA2NSwgODMsIDEyOCwgODQsIDgyLCA3MywgNzAsIDc5LCA3NiwgNzMsIAotICAgIDY1LCA4NCwgMTk3LCA4NCwgODIsIDczLCA2OCwgNjksIDc4LCA4NCwgMTI4LCA4NCwgODIsIDczLCA2OCwgNjksIDc4LCAKLSAgICAyMTIsIDg0LCA4MiwgNzMsIDY3LCA3OSwgNzYsIDc5LCA3OCwgMTI4LCA4NCwgODIsIDczLCA2NSwgNzgsIDcxLCA4NSwgNzYsIAotICAgIDY1LCAyMTAsIDg0LCA4MiwgNzMsIDY1LCA3OCwgNzEsIDc2LCA2OSwgNDUsIDgyLCA3OSwgODUsIDc4LCAxOTYsIDg0LCA4MiwgCi0gICAgNzMsIDY1LCA3OCwgNzEsIDc2LCA2OSwgNDUsIDcyLCA2OSwgNjUsIDY4LCA2OSwgMTk2LCA4NCwgODIsIDczLCA2NSwgNzgsIAotICAgIDcxLCA3NiwgNjksIDEyOCwgODQsIDgyLCA3MywgNjUsIDc4LCA3MSwgNzYsIDE5NywgODQsIDgyLCA3MywgNjUsIDEyOCwgCi0gICAgODQsIDgyLCA3MywgMTI4LCA4NCwgODIsIDY5LCA4MywgNzMsIDc2LCA3NiwgNzksIDEyOCwgODQsIDgyLCA2OSwgNzgsIDY4LCAKLSAgICAxMjgsIDg0LCA4MiwgNjksIDc4LCAxOTYsIDg0LCA4MiwgNjksIDc3LCA3OSwgNzYsIDc5LCA0NSwgNTEsIDEyOCwgODQsIAotICAgIDgyLCA2OSwgNzcsIDc5LCA3NiwgNzksIDQ1LCA1MCwgMTI4LCA4NCwgODIsIDY5LCA3NywgNzksIDc2LCA3OSwgNDUsIDQ5LCAKLSAgICAxMjgsIDg0LCA4MiwgNjksIDY5LCAxMjgsIDg0LCA4MiwgNjksIDE5NywgODQsIDgyLCA2OSwgNjUsIDY4LCA3MywgNzgsIAotICAgIDcxLCAxMjgsIDg0LCA4MiwgNjUsIDg5LCAxMjgsIDg0LCA4MiwgNjUsIDgwLCA2OSwgOTAsIDczLCA4NSwgNzcsIDEyOCwgCi0gICAgODQsIDgyLCA2NSwgNzgsIDgzLCA4NiwgNjksIDgyLCA4MywgNjUsIDIwNCwgODQsIDgyLCA2NSwgNzgsIDgzLCA4MCwgNzksIAotICAgIDgzLCA3MywgODQsIDczLCA3OSwgMjA2LCA4NCwgODIsIDY1LCA3OCwgODMsIDc3LCA3MywgMjEyLCA4NCwgODIsIDY1LCA3OCwgCi0gICAgODMsIDc3LCA3MywgODMsIDgzLCA3MywgNzksIDc4LCAxMjgsIDg0LCA4MiwgNjUsIDc4LCA4MywgNzcsIDczLCA4MywgODMsIAotICAgIDczLCA3OSwgMjA2LCA4NCwgODIsIDY1LCA3NywgODcsIDY1LCA4OSwgMTI4LCA4NCwgODIsIDY1LCA3NywgMTI4LCA4NCwgCi0gICAgODIsIDY1LCAyMDUsIDg0LCA4MiwgNjUsIDczLCA3OCwgMTI4LCA4NCwgODIsIDY1LCA3MywgMjA2LCA4NCwgODIsIDY1LCAKLSAgICA3MywgNzYsIDczLCA3OCwgMTk5LCA4NCwgODIsIDY1LCA3MCwgNzAsIDczLCA2NywgMTI4LCA4NCwgODIsIDY1LCA3MCwgNzAsIAotICAgIDczLCAxOTUsIDg0LCA4MiwgNjUsIDY4LCAxOTcsIDg0LCA4MiwgNjUsIDY3LCA4NCwgNzksIDgyLCAxMjgsIDg0LCA4MiwgCi0gICAgNjUsIDY3LCA3NSwgMTI4LCA4NCwgODIsIDEyOCwgODQsIDc5LCA4OCwgMTI4LCA4NCwgNzksIDg3LCA2OSwgODIsIDEyOCwgCi0gICAgODQsIDc5LCA4NSwgODIsIDc4LCA3OSwgNzMsIDIxMSwgODQsIDc5LCA4NCwgNjUsIDIwNCwgODQsIDc5LCA4NCwgMTI4LCAKLSAgICA4NCwgNzksIDgyLCA4NCwgNzksIDczLCA4MywgMTk3LCA4NCwgNzksIDgyLCA2NywgODUsIDc2LCA4NSwgODMsIDEyOCwgODQsIAotICAgIDc5LCA4MiwgNjcsIDg1LCA3NiwgODUsIDIxMSwgODQsIDc5LCA4MiwgNjcsIDcyLCAxMjgsIDg0LCA3OSwgODEsIDEyOCwgCi0gICAgODQsIDc5LCA4MCwgNjYsIDY1LCA4MiwgMTI4LCA4NCwgNzksIDgwLCA0NSwgNzYsIDczLCA3MSwgNzIsIDg0LCA2OSwgMTk2LCAKLSAgICA4NCwgNzksIDgwLCAxMjgsIDg0LCA3OSwgMjA4LCA4NCwgNzksIDc5LCA4NCwgNzIsIDEyOCwgODQsIDc5LCA3OSwgNzgsIAotICAgIDEyOCwgODQsIDc5LCA3OCwgNzksIDgzLCAxMjgsIDg0LCA3OSwgNzgsIDcxLCA4NSwgNjksIDEyOCwgODQsIDc5LCA3OCwgCi0gICAgNzEsIDg1LCAxOTcsIDg0LCA3OSwgNzgsIDcxLCAxMjgsIDg0LCA3OSwgNzgsIDY5LCA0NSwgNTYsIDEyOCwgODQsIDc5LCAKLSAgICA3OCwgNjksIDQ1LCA1NSwgMTI4LCA4NCwgNzksIDc4LCA2OSwgNDUsIDU0LCAxMjgsIDg0LCA3OSwgNzgsIDY5LCA0NSwgNTMsIAotICAgIDEyOCwgODQsIDc5LCA3OCwgNjksIDQ1LCA1MiwgMTI4LCA4NCwgNzksIDc4LCA2OSwgNDUsIDUxLCAxMjgsIDg0LCA3OSwgCi0gICAgNzgsIDY5LCA0NSwgNTAsIDEyOCwgODQsIDc5LCA3OCwgNjksIDQ1LCA0OSwgMTI4LCA4NCwgNzksIDc4LCA2OSwgMTI4LCAKLSAgICA4NCwgNzksIDc4LCA2NSwgMjA0LCA4NCwgNzksIDc3LCA4MCwgNzMsIDEyOCwgODQsIDc5LCA3NywgNjUsIDg0LCA3OSwgCi0gICAgMTI4LCA4NCwgNzksIDc2LCA3OSwgNzgsIDcxLCAxMjgsIDg0LCA3OSwgNzUsIDg5LCAyMDcsIDg0LCA3OSwgNzMsIDc2LCAKLSAgICA2OSwgODQsIDEyOCwgODQsIDc5LCA3MSwgNjksIDg0LCA3MiwgNjksIDgyLCAxMjgsIDg0LCA3OSwgNjgsIDIwNywgODQsIAotICAgIDc5LCA2NSwgNzgsIDY4LCA2NSwgNzUsIDcyLCA3MywgNjUsIDg0LCAxMjgsIDg0LCA3OSwgNjUsIDEyOCwgODQsIDc4LCAKKyAgICAxMjgsIDg0LCA4NSwgODIsIDc4LCA2OSwgMTk2LCA4NCwgODUsIDgyLCAyMDYsIDg0LCA4NSwgODIsIDc1LCA3MywgODMsIAorICAgIDIwMCwgODQsIDg1LCA4MiwgNjYsIDY1LCA3OCwgMTI4LCA4NCwgODUsIDgyLCAxMjgsIDg0LCA4NSwgODAsIDEyOCwgODQsIAorICAgIDg1LCA3OSwgODgsIDEyOCwgODQsIDg1LCA3OSwgODQsIDEyOCwgODQsIDg1LCA3OSwgODAsIDEyOCwgODQsIDg1LCA3OSwgCisgICAgMTI4LCA4NCwgODUsIDc4LCA3OCwgODksIDEyOCwgODQsIDg1LCA3NywgNjksIDg0LCA2OSwgODMsIDEyOCwgODQsIDg1LCAKKyAgICA3NywgNjUsIDY5LCAxMjgsIDg0LCA4NSwgNzcsIDEyOCwgODQsIDg1LCA3NiwgNzMsIDgwLCAxMjgsIDg0LCA4NSwgNzUsIAorICAgIDg3LCA2OSwgNzgsIDg0LCA3MywgODMsIDEyOCwgODQsIDg1LCA3NSwgMTI4LCA4NCwgODUsIDcxLCA4MiwgNzMsIDIwMywgCisgICAgODQsIDg1LCA3MSwgNTAsIDEyOCwgODQsIDg1LCA3MSwgMTc4LCA4NCwgODUsIDY1LCA4MiwgNjksIDE5OSwgODQsIDg1LCAKKyAgICA2NSwgNjksIDgwLCAxMjgsIDg0LCA4NSwgNjUsIDY5LCAxMjgsIDg0LCAyMTMsIDg0LCA4NCwgODUsIDg1LCAxMjgsIDg0LCAKKyAgICA4NCwgODUsIDY4LCA2OCwgNjUsIDcxLCAxMjgsIDg0LCA4NCwgODUsIDY4LCA2OCwgNjUsIDY1LCA3MSwgMTI4LCA4NCwgODQsIAorICAgIDg1LCAxMjgsIDg0LCA4NCwgODQsIDcyLCA2NSwgMTI4LCA4NCwgODQsIDg0LCA2NSwgMTI4LCA4NCwgODQsIDgzLCA4NSwgCisgICAgMTI4LCA4NCwgODQsIDgzLCA3OSwgMTI4LCA4NCwgODQsIDgzLCA3MywgMTI4LCA4NCwgODQsIDgzLCA2OSwgNjksIDEyOCwgCisgICAgODQsIDg0LCA4MywgNjksIDEyOCwgODQsIDg0LCA4MywgNjUsIDEyOCwgODQsIDg0LCA3OSwgNzksIDEyOCwgODQsIDg0LCAKKyAgICA3MywgNzMsIDEyOCwgODQsIDg0LCA3MywgMTI4LCA4NCwgODQsIDcyLCA4NywgNjksIDEyOCwgODQsIDg0LCA3MiwgODUsIAorICAgIDEyOCwgODQsIDg0LCA3MiwgNzksIDc5LCAxMjgsIDg0LCA4NCwgNzIsIDc5LCAxMjgsIDg0LCA4NCwgNzIsIDczLCAxMjgsIAorICAgIDg0LCA4NCwgNzIsIDY5LCA2OSwgMTI4LCA4NCwgODQsIDcyLCA2OSwgMTI4LCA4NCwgODQsIDcyLCA2NSwgNjUsIDEyOCwgCisgICAgODQsIDg0LCA3MiwgMTI4LCA4NCwgODQsIDY5LCA3MiwgNjksIDcyLCAxMjgsIDg0LCA4NCwgNjksIDcyLCA2OSwgMjAwLCAKKyAgICA4NCwgODQsIDY5LCA3MiwgMTI4LCA4NCwgODQsIDY5LCAyMDAsIDg0LCA4NCwgNjksIDY5LCAxMjgsIDg0LCA4NCwgNjUsIAorICAgIDg5LCA2NSwgNzgsIDc4LCA2NSwgMTI4LCA4NCwgODQsIDY1LCA4NSwgMTI4LCA4NCwgODQsIDY1LCA3MywgMTI4LCA4NCwgCisgICAgODQsIDY1LCA2NSwgMTI4LCA4NCwgODQsIDUwLCAxMjgsIDg0LCA4MywgODcsIDY5LCAxMjgsIDg0LCA4MywgODcsIDY1LCAKKyAgICAxMjgsIDg0LCA4MywgODYsIDEyOCwgODQsIDgzLCA4MywgNjksIDEyOCwgODQsIDgzLCA4MywgNjUsIDEyOCwgODQsIDgzLCAKKyAgICA3MiwgODUsIDcxLCA4MywgMTI4LCA4NCwgODMsIDcyLCA3OSwgNzksIDc1LCAxMjgsIDg0LCA4MywgNzIsIDc5LCA3OSwgCisgICAgMjAzLCA4NCwgODMsIDcyLCA2OSwgODMsIDEyOCwgODQsIDgzLCA3MiwgNjksIDcxLCAxMjgsIDg0LCA4MywgNzIsIDY5LCAKKyAgICAxOTksIDg0LCA4MywgNzIsIDY5LCAxMjgsIDg0LCA4MywgNzIsIDY1LCAxMjgsIDg0LCA4MywgNjksIDgyLCA2OSwgMTI4LCAKKyAgICA4NCwgODMsIDY1LCA2OCwgNzMsIDEyOCwgODQsIDgzLCA2NSwgNjgsIDIwMSwgODQsIDgzLCA2NSwgNjUsIDY4LCA3MywgODksIAorICAgIDEyOCwgODQsIDgzLCA2NSwgNjUsIDEyOCwgODQsIDgzLCAxOTMsIDg0LCA4MiwgODksIDY2LCA3NiwgNzMsIDc5LCAyMDYsIAorICAgIDg0LCA4MiwgODUsIDg0LCA3MiwgMTI4LCA4NCwgODIsIDg1LCA3OCwgNzUsIDEyOCwgODQsIDgyLCA4NSwgNzgsIDY3LCA2NSwgCisgICAgODQsIDY5LCAxOTYsIDg0LCA4MiwgODUsIDc3LCA4MCwgNjksIDg0LCAxMjgsIDg0LCA4MiwgODUsIDY5LCAxMjgsIDg0LCAKKyAgICA4MiwgODUsIDY3LCA3NSwgMTI4LCA4NCwgODIsIDc5LCA4MCwgNzMsIDY3LCA2NSwgMjA0LCA4NCwgODIsIDc5LCA4MCwgNzIsIAorICAgIDg5LCAxMjgsIDg0LCA4MiwgNzksIDc3LCA3MywgNzUsIDc5LCA4MywgODksIDc4LCA2NSwgNzEsIDc3LCA2NSwgMTI4LCA4NCwgCisgICAgODIsIDc5LCA3NywgNzMsIDc1LCA3OSwgODAsIDgzLCA3MywgNzAsIDczLCA4MywgODQsIDc5LCA3OCwgMTI4LCA4NCwgODIsIAorICAgIDc5LCA3NywgNzMsIDc1LCA3OSwgODAsIDY1LCA4MiwgNjUsIDc1LCA2NSwgNzYsIDY5LCA4MywgNzcsIDY1LCAxMjgsIDg0LCAKKyAgICA4MiwgNzksIDc3LCA3MywgNzUsIDc5LCA3OCwgMTI4LCA4NCwgODIsIDc5LCA3NywgNzMsIDc1LCA3OSwgMjA2LCA4NCwgODIsIAorICAgIDc5LCA3NywgNzMsIDc1LCA3OSwgNzYsIDg5LCA3MSwgNzMsIDgzLCA3NywgNjUsIDEyOCwgODQsIDgyLCA3OSwgNzYsIDc2LCAKKyAgICA2OSwgODksIDY2LCA4NSwgODMsIDEyOCwgODQsIDgyLCA3OSwgNzUsIDg1LCA4NCwgNjUsIDgzLCA4NCwgMjAxLCA4NCwgODIsIAorICAgIDc5LCA2OSwgOTAsIDY5LCA3OCwgNzMsIDY1LCAyMDYsIDg0LCA4MiwgNzMsIDg1LCA3NywgODAsIDcyLCAxMjgsIDg0LCA4MiwgCisgICAgNzMsIDg0LCA3OSwgMjExLCA4NCwgODIsIDczLCA4NCwgNzMsIDc3LCA3OSwgODIsIDczLCA3OSwgNzgsIDEyOCwgODQsIDgyLCAKKyAgICA3MywgODMsIDczLCA3NywgNzksIDg1LCAxMjgsIDg0LCA4MiwgNzMsIDgzLCA2OSwgNzcsIDY5LCAxMjgsIDg0LCA4MiwgNzMsIAorICAgIDgwLCA3OSwgNjgsIDEyOCwgODQsIDgyLCA3MywgODAsIDc2LCA3MywgMTI4LCA4NCwgODIsIDczLCA4MCwgNzYsIDE5NywgCisgICAgODQsIDgyLCA3MywgNzksIDIwNiwgODQsIDgyLCA3MywgNzMsIDgzLCA2NSwgODAsIDEyOCwgODQsIDgyLCA3MywgNzEsIDgyLCAKKyAgICA2NSwgNzcsIDc3LCA3OSwgMjExLCA4NCwgODIsIDczLCA3MSwgODIsIDY1LCAyMDUsIDg0LCA4MiwgNzMsIDcxLCA3OSwgODIsIAorICAgIDcxLCA3OSwgNzgsIDEyOCwgODQsIDgyLCA3MywgNzAsIDc5LCA3OCwgNzMsIDY1LCA4MywgMTI4LCA4NCwgODIsIDczLCA3MCwgCisgICAgNzksIDc2LCA3MywgNjUsIDg0LCAxOTcsIDg0LCA4MiwgNzMsIDY4LCA2OSwgNzgsIDg0LCAxMjgsIDg0LCA4MiwgNzMsIDY4LCAKKyAgICA2OSwgNzgsIDIxMiwgODQsIDgyLCA3MywgNjcsIDc5LCA3NiwgNzksIDc4LCAxMjgsIDg0LCA4MiwgNzMsIDY1LCA3OCwgNzEsIAorICAgIDg1LCA3NiwgNjUsIDIxMCwgODQsIDgyLCA3MywgNjUsIDc4LCA3MSwgNzYsIDY5LCA0NSwgODIsIDc5LCA4NSwgNzgsIDE5NiwgCisgICAgODQsIDgyLCA3MywgNjUsIDc4LCA3MSwgNzYsIDY5LCA0NSwgNzIsIDY5LCA2NSwgNjgsIDY5LCAxOTYsIDg0LCA4MiwgNzMsIAorICAgIDY1LCA3OCwgNzEsIDc2LCA2OSwgMTI4LCA4NCwgODIsIDczLCA2NSwgNzgsIDcxLCA3NiwgMTk3LCA4NCwgODIsIDczLCA2NSwgCisgICAgMTI4LCA4NCwgODIsIDczLCAxMjgsIDg0LCA4MiwgNjksIDgzLCA3MywgNzYsIDc2LCA3OSwgMTI4LCA4NCwgODIsIDY5LCAKKyAgICA3OCwgNjgsIDEyOCwgODQsIDgyLCA2OSwgNzgsIDE5NiwgODQsIDgyLCA2OSwgNzcsIDc5LCA3NiwgNzksIDQ1LCA1MSwgCisgICAgMTI4LCA4NCwgODIsIDY5LCA3NywgNzksIDc2LCA3OSwgNDUsIDUwLCAxMjgsIDg0LCA4MiwgNjksIDc3LCA3OSwgNzYsIDc5LCAKKyAgICA0NSwgNDksIDEyOCwgODQsIDgyLCA2OSwgNjksIDEyOCwgODQsIDgyLCA2OSwgMTk3LCA4NCwgODIsIDY5LCA2NSwgNjgsIAorICAgIDczLCA3OCwgNzEsIDEyOCwgODQsIDgyLCA2NSwgODksIDEyOCwgODQsIDgyLCA2NSwgODAsIDY5LCA5MCwgNzMsIDg1LCA3NywgCisgICAgMTI4LCA4NCwgODIsIDY1LCA3OCwgODMsIDg2LCA2OSwgODIsIDgzLCA2NSwgMjA0LCA4NCwgODIsIDY1LCA3OCwgODMsIDgwLCAKKyAgICA3OSwgODMsIDczLCA4NCwgNzMsIDc5LCAyMDYsIDg0LCA4MiwgNjUsIDc4LCA4MywgNzcsIDczLCAyMTIsIDg0LCA4MiwgNjUsIAorICAgIDc4LCA4MywgNzcsIDczLCA4MywgODMsIDczLCA3OSwgNzgsIDEyOCwgODQsIDgyLCA2NSwgNzgsIDgzLCA3NywgNzMsIDgzLCAKKyAgICA4MywgNzMsIDc5LCAyMDYsIDg0LCA4MiwgNjUsIDc3LCA4NywgNjUsIDg5LCAxMjgsIDg0LCA4MiwgNjUsIDc3LCAxMjgsIAorICAgIDg0LCA4MiwgNjUsIDIwNSwgODQsIDgyLCA2NSwgNzMsIDc4LCAxMjgsIDg0LCA4MiwgNjUsIDczLCAyMDYsIDg0LCA4MiwgCisgICAgNjUsIDczLCA3NiwgNzMsIDc4LCAxOTksIDg0LCA4MiwgNjUsIDcwLCA3MCwgNzMsIDY3LCAxMjgsIDg0LCA4MiwgNjUsIDcwLCAKKyAgICA3MCwgNzMsIDE5NSwgODQsIDgyLCA2NSwgNjgsIDE5NywgODQsIDgyLCA2NSwgNjcsIDg0LCA3OSwgODIsIDEyOCwgODQsIAorICAgIDgyLCA2NSwgNjcsIDc1LCAxMjgsIDg0LCA4MiwgMTI4LCA4NCwgNzksIDg4LCAxMjgsIDg0LCA3OSwgODcsIDY5LCA4MiwgCisgICAgMTI4LCA4NCwgNzksIDg1LCA4MiwgNzgsIDc5LCA3MywgMjExLCA4NCwgNzksIDg0LCA2NSwgMjA0LCA4NCwgNzksIDg0LCAKKyAgICAxMjgsIDg0LCA3OSwgODIsIDg0LCA3OSwgNzMsIDgzLCAxOTcsIDg0LCA3OSwgODIsIDY3LCA4NSwgNzYsIDg1LCA4MywgCisgICAgMTI4LCA4NCwgNzksIDgyLCA2NywgODUsIDc2LCA4NSwgMjExLCA4NCwgNzksIDgyLCA2NywgNzIsIDEyOCwgODQsIDc5LCAKKyAgICA4MSwgMTI4LCA4NCwgNzksIDgwLCA2NiwgNjUsIDgyLCAxMjgsIDg0LCA3OSwgODAsIDQ1LCA3NiwgNzMsIDcxLCA3MiwgODQsIAorICAgIDY5LCAxOTYsIDg0LCA3OSwgODAsIDEyOCwgODQsIDc5LCAyMDgsIDg0LCA3OSwgNzksIDg0LCA3MiwgMTI4LCA4NCwgNzksIAorICAgIDc5LCA3OCwgMTI4LCA4NCwgNzksIDc4LCA3OSwgODMsIDEyOCwgODQsIDc5LCA3OCwgNzEsIDg1LCA2OSwgMTI4LCA4NCwgCisgICAgNzksIDc4LCA3MSwgODUsIDE5NywgODQsIDc5LCA3OCwgNzEsIDEyOCwgODQsIDc5LCA3OCwgNjksIDQ1LCA1NiwgMTI4LCAKKyAgICA4NCwgNzksIDc4LCA2OSwgNDUsIDU1LCAxMjgsIDg0LCA3OSwgNzgsIDY5LCA0NSwgNTQsIDEyOCwgODQsIDc5LCA3OCwgNjksIAorICAgIDQ1LCA1MywgMTI4LCA4NCwgNzksIDc4LCA2OSwgNDUsIDUyLCAxMjgsIDg0LCA3OSwgNzgsIDY5LCA0NSwgNTEsIDEyOCwgCisgICAgODQsIDc5LCA3OCwgNjksIDQ1LCA1MCwgMTI4LCA4NCwgNzksIDc4LCA2OSwgNDUsIDQ5LCAxMjgsIDg0LCA3OSwgNzgsIDY5LCAKKyAgICAxMjgsIDg0LCA3OSwgNzgsIDY1LCAyMDQsIDg0LCA3OSwgNzcsIDgwLCA3MywgMTI4LCA4NCwgNzksIDc3LCA2NSwgODQsIAorICAgIDc5LCAxMjgsIDg0LCA3OSwgNzYsIDc5LCA3OCwgNzEsIDEyOCwgODQsIDc5LCA3NSwgODksIDIwNywgODQsIDc5LCA3MywgCisgICAgNzYsIDY5LCA4NCwgMTI4LCA4NCwgNzksIDcxLCA2OSwgODQsIDcyLCA2OSwgODIsIDEyOCwgODQsIDc5LCA2OCwgMjA3LCAKKyAgICA4NCwgNzksIDY1LCA3OCwgNjgsIDY1LCA3NSwgNzIsIDczLCA2NSwgODQsIDEyOCwgODQsIDc5LCA2NSwgMTI4LCA4NCwgNzgsIAogICAgIDEyOCwgODQsIDc2LCA4NiwgMTI4LCA4NCwgNzYsIDg1LCAxMjgsIDg0LCA3NiwgNzksIDEyOCwgODQsIDc2LCA3MywgMTI4LCAKICAgICA4NCwgNzYsIDcyLCA4OSwgNjUsIDEyOCwgODQsIDc2LCA3MiwgODcsIDY5LCAxMjgsIDg0LCA3NiwgNzIsIDg1LCAxMjgsIAogICAgIDg0LCA3NiwgNzIsIDc5LCA3OSwgMTI4LCA4NCwgNzYsIDcyLCA3OSwgMTI4LCA4NCwgNzYsIDcyLCA3MywgMTI4LCA4NCwgCkBAIC00NjM1LDcgKzQ2MzUsNyBAQAogICAgIDU1NywgODUwLCA4NjAsIDg2NywgODczLCA4NzksIDg4NiwgODk0LCA4OTgsIDc0OSwgOTA2LCA5MTUsIDUwMywgOTIzLCAKICAgICA5MjgsIDkzNCwgMTcsIDk0MywgOTQ4LCA5NTEsIDk1NSwgOTU5LCA5NjYsIDk2OSwgOTc2LCA5ODAsIDk4OCwgOTkyLCAKICAgICAxMDAwLCAxMDA0LCAxMDA3LCAxMDE0LCAxMDIxLCAxOTIsIDEwMjQsIDEwMjksIDEwMzksIDEwNDgsIDEwNTUsIDEwNjEsIAotICAgIDEwNjksIDEwNzIsIDEwNzcsIDEwODMsIDEwOTEsIDEwOTcsIDExMDIsIDExMDUsIDExMDgsIDExMSwgMTExMywgMTExNywgCisgICAgMTA2NywgMTA3NSwgMTA3OCwgMTA4MywgMTA4OSwgMTA5NywgMTEwMiwgMTEwNSwgMTEwOCwgMTExLCAxMTEzLCAxMTE3LCAKICAgICAxMTIzLCAxMTI5LCAxMTMyLCAxMTM4LCAxMTQyLCAxMTQ3LCAxMTUzLCAxMTU4LCAxMTY4LCAxMTcyLCAxMTc1LCAxMTc4LCAKICAgICAxMTg3LCAxMTkxLCAxMTk0LCAxMTk5LCAxMjA0LCAxMjEwLCAxMjE1LCAxMjIwLCAxMjI1LCAxMjI5LCAxMjM0LCAxMjQwLCAKICAgICAxMjQ1LCAxMjUwLCAxMjU0LCAxMjYwLCAxMjY1LCAxMjcwLCAxMjc1LCAxMjc5LCAxMjg0LCAxMjg5LCAxMjk0LCAxMzAwLCAKQEAgLTQ3NTUsNzM3MyArNDc1NSw3Mzc0IEBACiAgICAgODY0NSwgODY0OSwgODY1MywgODY1OCwgODY2NSwgODY3NiwgODY4NCwgODY5NCwgODcwMCwgODcwNywgODcxMiwgODcxNiwgCiAgICAgODcyNywgODc0MCwgODc1MSwgODc2NCwgODc3NSwgODc4NywgODc5OSwgODgxMSwgODgyNCwgODgzNywgODg0NCwgODg1MCwgCiAgICAgODg2NCwgODg3MSwgODg3NywgODg4MSwgODg4NiwgODg5MCwgODg5NywgODkwNSwgODkwOSwgODkxNSwgODkxOSwgODkyNSwgCi0gICAgODkzNSwgODkzOSwgODk0NCwgODk0OSwgODk1NiwgODk2MiwgODk3MiwgNzkwOSwgODk3OCwgODk4MiwgODk4OSwgNzY4LCAKLSAgICA4OTkzLCA4OTk3LCA5MDAyLCA5MDA3LCA5MDEyLCA5MDE2LCA5MDIyLCA5MDMwLCA5MDM2LCA5MDQwLCA5MDQ2LCA5MDU2LCAKLSAgICA5MDYwLCA5MDY2LCA5MDcxLCA5MDc1LCA5MDgxLCA5MDg3LCAyMTYxLCA5MDkyLCA5MDk0LCA5MDk5LCA5MTA3LCA5MTE2LCAKLSAgICA5MTIwLCA5MTI2LCA5MTMxLCA5MTM2LCA5MTQxLCA5MTQ2LCA5MTUyLCA5MTU3LCA5MTYyLCA0MDA2LCA5MTY3LCA5MTcyLCAKLSAgICA5MTc2LCA5MTgyLCA5MTg3LCA5MTkzLCA5MTk4LCA5MjAzLCA5MjA5LCA5MjE0LCA5MTIxLCA5MjIwLCA5MjI0LCA5MjMxLCAKLSAgICA5MjM3LCA5MjQyLCA5MjQ2LCA2MTgzLCA5MjUxLCA5MjYwLCA5MjY1LCA5MjcwLCA4MjE4LCA4MjI1LCA5Mjc1LCAyODUzLCAKLSAgICA5Mjc5LCA5Mjg0LCA5Mjg5LCA5MTMyLCA5MjkzLCA5Mjk4LCA5MTM3LCA5MTQyLCA5MzAzLCA5MzEwLCA5MzE3LCA5MzIzLCAKLSAgICA5MzI5LCA5MzM1LCA5MzQwLCA5MzQ1LCA5MzUwLCA5MTQ3LCA5MTUzLCA5MzU2LCA5MzYyLCA5MzY3LCA5Mzc1LCA5MTU4LCAKLSAgICA5MzgwLCA5OTAsIDkzODMsIDkzOTEsIDkzOTcsIDk0MDMsIDk0MTIsIDk0MjAsIDk0MjUsIDk0MzEsIDk0MzksIDk0NDYsIAotICAgIDk0NjEsIDk0NzgsIDk0OTcsIDk1MDYsIDk1MTQsIDk1MjksIDk1NDAsIDk1NTAsIDk1NjAsIDk1NjgsIDk1NzQsIDk1ODYsIAotICAgIDk1OTUsIDk2MDMsIDk2MTAsIDk2MTcsIDk2MjMsIDk2MjgsIDk2MzYsIDk2NDYsIDk2NTMsIDk2NjMsIDk2NzMsIDk2ODMsIAotICAgIDk2OTEsIDk2OTgsIDk3MDcsIDk3MTcsIDk3MzEsIDk3NDYsIDk3NTUsIDk3NjMsIDk3NjgsIDk3NzIsIDk3ODEsIDk3ODcsIAotICAgIDk3OTIsIDk4MDIsIDk4MTIsIDk4MjIsIDk4MjcsIDk4MzEsIDk4NDAsIDk4NDUsIDk4NTUsIDk4NjYsIDk4NzksIDk4ODcsIAotICAgIDk5MDAsIDk5MTIsIDk5MjAsIDk5MjUsIDk5MjksIDk5MzUsIDk5NDAsIDk5NDgsIDk5NTYsIDk5NjMsIDk5NjgsIDk5NzYsIAotICAgIDk5ODIsIDk5ODUsIDk5ODksIDk5OTUsIDEwMDAzLCAxMDAwOCwgMTAwMTIsIDEwMDIwLCAxMDAyOSwgMTAwMzcsIDEwMDQzLCAKLSAgICAxMDA0NywgMTAwNTQsIDEwMDY1LCAxMDA2OSwgMTAwNzIsIDEwMDc4LCA5MTYzLCAxMDA4MywgMTAwODksIDEwMDk2LCAKLSAgICAxMDEwMiwgMTAxMDcsIDEwMTE0LCAxMDEyMSwgMTAxMjgsIDEwMTM1LCAxMDE0MiwgMTAxNDksIDEwMTU2LCAxMDE2MywgCi0gICAgMTAxNjgsIDk0NzQsIDEwMTczLCAxMDE3OSwgMTAxODYsIDEwMTkzLCAxMDE5OCwgMTAyMDUsIDEwMjE0LCAxMDIxOCwgCi0gICAgMTAyMzAsIDgyNTYsIDEwMjM0LCAxMDIzNywgMTAyNDEsIDEwMjQ1LCAxMDI0OSwgMTAyNTMsIDEwMjU5LCAxMDI2NSwgCi0gICAgMTAyNzAsIDEwMjc2LCAxMDI4MSwgMTAyODYsIDEwMjkyLCAxMDI5NywgMTAzMDIsIDg5NTIsIDEwMzA3LCAxMDMxMSwgCi0gICAgMTAzMTUsIDEwMzE5LCAxMDMyNCwgMTAzMjksIDEwMzM3LCAxMDM0MywgMTAzNDcsIDEwMzUxLCAxMDM1OCwgMTAzNjMsIAotICAgIDEwMzcxLCAxMDM3NiwgMTAzODAsIDEwMzgzLCAxMDM4OSwgMTAzOTYsIDEwNDAwLCAxMDQwMywgMTA0MDgsIDEwNDEyLCAKLSAgICA0MDQ1LCAxMDQxOCwgMTA0MjcsIDM2LCAxMDQzNSwgMTA0NDEsIDEwNDQ2LCA4OTY3LCAxMDQ1MSwgMTA0NTYsIDEwNDYwLCAKLSAgICAxMDQ2MywgMTA0NzgsIDEwNDk3LCAxMDUwOSwgMTA1MjIsIDEwNTM1LCAxMDU0OCwgMTA1NjIsIDEwNTc1LCAxMDU5MCwgCi0gICAgMTA1OTcsIDkxNjgsIDEwNjAzLCAxMDYxNywgMTA2MjIsIDEwNjI4LCAxMDYzMywgMTA2NDEsIDEwNjQ2LCA4MDQwLCAKLSAgICAxMDY1MSwgMTA2NTQsIDEwNjYxLCAxMDY2NiwgMTA2NzAsIDI4NTgsIDk5OCwgMTA2NzYsIDEwNjgwLCAxMDY4NiwgMTA2OTIsIAotICAgIDEwNjk3LCAxMDcwMywgMTA3MDgsIDkxNzcsIDEwNzE0LCAxMDcyMCwgMTA3MjUsIDEwNzMwLCAxMDczOCwgMTA3NDQsIAotICAgIDEwNzU3LCAxMDc2NSwgMTA3NzIsIDkxODMsIDEwNzc4LCAxMDc4NiwgMTA3OTQsIDEwODAxLCAxMDgxNCwgMTA4MjYsIAotICAgIDEwODM2LCAxMDg0NCwgMTA4NTEsIDEwODU4LCAxMDg2NywgMTA4NzYsIDEwODg0LCAxMDg5MSwgMTA4OTYsIDEwOTAyLCAKLSAgICA5MTg4LCAxMDkwNywgMTA5MTMsIDkxOTQsIDEwOTE4LCAxMDkyMSwgMTA5MjgsIDEwOTM0LCAxMDk0NywgODY2OSwgMTA5NTgsIAotICAgIDEwOTY0LCAxMDk3MywgMTA5ODEsIDEwOTg4LCAxMDk5NCwgMTEwMDAsIDExMDA1LCAxMTAwOSwgMTEwMTQsIDEwNDcwLCAKLSAgICAxMTAyMCwgOTE5OSwgMTEwMjcsIDExMDMyLCAxMTAzOSwgMTEwNDUsIDExMDUxLCAxMTA1NiwgMTEwNjQsIDExMDcyLCAKLSAgICAxMTA3OSwgMTEwODMsIDExMDk3LCAxMTEwNywgMTExMTIsIDExMTE2LCAxMTEyNywgMTExMzMsIDExMTM4LCAxMTE0MywgCi0gICAgOTIwNCwgOTIxMCwgMTExNDcsIDExMTUwLCAxMTE1NSwgMTExNjcsIDExMTc0LCAxMTE3OSwgMTExODMsIDExMTg4LCAKLSAgICAxMTE5MiwgMTExOTksIDExMjA1LCA5MjE1LCA5MTIyLCAxMTIxMiwgMjg2MywgOCwgMTEyMTksIDExMjI0LCAxMTIyOCwgCi0gICAgMTEyMzQsIDExMjQyLCAxMTI1MiwgMTEyNTcsIDExMjYyLCAxMTI2OSwgMTEyNzYsIDExMjgwLCAxMTI5MSwgMTEzMDEsIAotICAgIDExMzEwLCAxMTMyMiwgMTEzMjcsIDExMzMxLCAxMTMzOSwgMTEzNTMsIDExMzU3LCAxMTM2MCwgMTEzNjgsIDExMzc1LCAKLSAgICAxMTM4MywgMTEzODcsIDExMzk4LCAxMTQwMiwgMTE0MDksIDExNDE0LCAxMTQxOCwgMTE0MjQsIDExNDI5LCAxMTQzMywgCi0gICAgMTE0MzksIDExNDQ0LCAxMTQ1NSwgMTE0NTksIDExNDYyLCAxMTQ2OCwgMTE0NzMsIDExNDc5LCAxMTQ4NSwgMTE0OTIsIAotICAgIDExNTAzLCAxMTUxMywgMTE1MjMsIDExNTMyLCAxMTUzOSwgMTE1NDgsIDkyMjUsIDkyMzIsIDkyMzgsIDkyNDMsIDExNTU0LCAKLSAgICAxMTU2MCwgOTI0NywgMTE1NjYsIDExNTY5LCAxMTU3NiwgMTE1ODEsIDExNTk2LCAxMTYxMiwgMTE2MjcsIDExNjM1LCAKLSAgICAxMTY0MSwgMTE2NDYsIDgzOCwgNDIwLCAxMTY1MSwgMTE2NTksIDExNjY2LCAxMTY3MiwgMTE2NzcsIDExNjgyLCA5MjUyLCAKLSAgICAxMTY4NCwgMTE2ODgsIDExNjkzLCAxMTY5NywgMTE3MDcsIDExNzEyLCAxMTcxNiwgMTE3MjUsIDExNzI5LCAxMTczMiwgCi0gICAgOTI2MSwgMTE3MzksIDExNzQyLCAxMTc1MCwgMTE3NTcsIDExNzY1LCAxMTc2OSwgMTE3NzYsIDExNzg1LCAxMTc4OCwgCi0gICAgMTE3OTIsIDExNzk2LCAxMTgwMiwgMTE4MDYsIDExODEwLCAxMTgxNCwgMTE4MjAsIDExODMwLCAxMTgzNCwgMTE4NDIsIAotICAgIDExODQ2LCAxMTg1MywgMTE4NTcsIDExODYyLCAxMTg2NiwgMTE4NzMsIDExODc5LCAxMTg4NywgMTE4OTMsIDExODk4LCAKLSAgICAxMTkwOCwgMTE5MTMsIDExOTE4LCAxMTkyMiwgMTE5MzAsIDM5MDUsIDExOTM4LCAxMTk0MywgOTI2NiwgMTE5NDcsIAotICAgIDExOTUxLCAxMTk1NCwgMTE5NjIsIDExOTY5LCAxMTk3MywgNTk5MSwgMTE5NzcsIDExOTgyLCAxMTk4NiwgMTE5OTcsIAotICAgIDEyMDA3LCAxMjAxMiwgMTIwMTgsIDEyMDIyLCAxMjAyNSwgMTIwMzMsIDEyMDM4LCAxMjA0MywgMTIwNTAsIDEyMDU1LCAKLSAgICA5MjcxLCAxMjA2MCwgMTIwNjQsIDEyMDcxLCAxNzIyLCA2MTQ1LCAxMjA3NiwgMTIwODEsIDEyMDg2LCAxMjA5MSwgMTIwOTcsIAotICAgIDEyMTAyLCAxMjEwOCwgMTIxMTMsIDEyMTE4LCAxMjEyMywgMTIxMjgsIDEyMTMzLCAxMjEzOCwgMTIxNDMsIDEyMTQ4LCAKLSAgICAxMjE1MywgMTIxNTgsIDEyMTYzLCAxMjE2OCwgMTIxNzMsIDEyMTc4LCAxMjE4MywgMTIxODgsIDEyMTk0LCAxMjE5OSwgCi0gICAgMTIyMDQsIDEyMjA5LCAxMjIxNCwgMTIyMTksIDEyMjI1LCAxMjIzMCwgMTIyMzUsIDEyMjQxLCAxMjI0NiwgMTIyNTIsIAotICAgIDEyMjU3LCAxMjI2MywgMTIyNjgsIDEyMjczLCAxMjI3OCwgMTIyODMsIDEyMjg5LCAxMjI5NCwgMTIyOTksIDEyMzA0LCAKLSAgICA3MzcsIDEzOSwgMTIzMTIsIDEyMzE2LCAxMjMyMSwgMTIzMjYsIDEyMzMwLCAxMjMzNCwgMTIzMzgsIDEyMzQzLCAxMjM0NywgCi0gICAgMTIzNTIsIDEyMzU2LCAxMjM1OSwgMTIzNjMsIDEyMzY3LCAxMjM3MywgMTIzNzgsIDEyMzg4LCAxMjM5NCwgMTI0MDIsIAotICAgIDEyNDA2LCAxMjQxMCwgMTI0MTcsIDEyNDI1LCAxMjQzNCwgMTI0NDUsIDEyNDUyLCAxMjQ1OSwgMTI0NjMsIDEyNDcyLCAKLSAgICAxMjQ4MSwgMTI0ODksIDEyNDk4LCAxMjUwNywgMTI1MTYsIDEyNTI1LCAxMjUzNSwgMTI1NDUsIDEyNTU1LCAxMjU2NSwgCi0gICAgMTI1NzUsIDEyNTg0LCAxMjU5NCwgMTI2MDQsIDEyNjE0LCAxMjYyNCwgMTI2MzQsIDEyNjQ0LCAxMjY1NCwgMTI2NjMsIAotICAgIDEyNjczLCAxMjY4MywgMTI2OTMsIDEyNzAzLCAxMjcxMywgMTI3MjMsIDEyNzMyLCAxMjc0MiwgMTI3NTIsIDEyNzYyLCAKLSAgICAxMjc3MiwgMTI3ODIsIDEyNzkyLCAxMjgwMiwgMTI4MTIsIDEyODIyLCAxMjgzMSwgMTI4NDEsIDEyODUxLCAxMjg2MSwgCi0gICAgMTI4NzEsIDEyODgxLCAxMjg5MSwgMTI5MDEsIDEyOTExLCAxMjkyMSwgMTI5MzEsIDEyOTQwLCAxMjU2LCAxMjk0NiwgCi0gICAgMTI5NDksIDEyOTUzLCAxMjk1OCwgMTI5NjUsIDEyOTcxLCAxMjk3NiwgMTI5ODAsIDEyOTg1LCAxMjk5NCwgMTMwMDIsIAotICAgIDEzMDA3LCAxMzAxMSwgMTMwMTUsIDEzMDIxLCAxMzAyNiwgMTMwMzIsIDkyODAsIDEzMDM3LCAxMzA0MiwgMTMwNTEsIAotICAgIDkyODUsIDEzMDU2LCAxMzA1OSwgMTMwNjUsIDEzMDczLCA5MjkwLCAxMzA4MCwgMTMwODQsIDEzMDg4LCAxMzA5MiwgCi0gICAgMTMxMDIsIDEzMTA4LCAxMzExNCwgMTMxMTksIDEzMTI4LCAxMzEzNiwgMTMxNDMsIDEzMTUwLCAxMzE1NSwgMTMxNjIsIAotICAgIDEzMTY3LCAxMzE3MSwgMTMxNzQsIDEzMTg1LCAxMzE5NSwgMTMyMDQsIDEzMjEyLCAxMzIyMywgMTMyMzUsIDEzMjQ1LCAKLSAgICAxMzI1MCwgMTMyNTQsIDEzMjU5LCAxMzI2NCwgMTMyNjgsIDEzMjc0LCAxMzI4MiwgMTMyODksIDEzMzAwLCAxMzMwNSwgCi0gICAgMTMzMTUsIDEzMzE5LCAxMzMyMiwgMTMzMjksIDEzMzM5LCAxMzM0OCwgMTMzNTUsIDEzMzU5LCAxMzM2NiwgMTMzNzIsIAotICAgIDEzMzc3LCAxMzM4MiwgMTMzODYsIDEzMzk1LCAxMzQwMCwgMTM0MDYsIDEzNDEwLCAxMzQxNSwgMTM0MTksIDEzNDI4LCAKLSAgICAxMzQzNiwgMTM0NDQsIDEzNDUxLCAxMzQ1OSwgMTM0NzEsIDEzNDgyLCAxMzQ5MiwgMTM0OTksIDEzNTA1LCAxMzUxNCwgCi0gICAgMTM1MjUsIDEzNTM0LCAxMzU0NiwgMTM1NTgsIDEzNTcwLCAxMzU4MCwgMTM1ODksIDEzNTk4LCAxMzYwNiwgMTM2MTMsIAotICAgIDEzNjIyLCAxMzYzMCwgMTM2MzQsIDEzNjQwLCAxMzY0NiwgMTM2NTEsIDc3NTMsIDEzNjU1LCAxMzY1NywgMTM2NjEsIAotICAgIDEzNjY2LCAxMzY3MiwgMTM2ODEsIDEzNjg1LCAxMzY5MywgMTM3MDAsIDEzNzA5LCAxMzcxOCwgMTM3MjcsIDEzNzM2LCAKLSAgICAxMzc0NSwgMTM3NTQsIDEzNzYzLCAxMzc3MiwgMTM3ODIsIDEzNzkyLCAxMzgwMSwgMTM4MDcsIDEzODE0LCAxMzgyMSwgCi0gICAgMTM4MjcsIDEzODQxLCAxMzg0OCwgMTM4NTYsIDEzODY1LCAxMzg3MSwgMTM4ODAsIDEzODg5LCAxMzkwMCwgMTM5MTAsIAotICAgIDEzOTE4LCAxMzkyNSwgMTM5MzMsIDEzOTQyLCAxMzk1NSwgMTM5NjMsIDEzOTcwLCAxMzk4MywgMTM5ODksIDEzOTk1LCAKLSAgICAxNDAwNSwgMTQwMTQsIDE0MDIzLCAxNDAyOCwgMTQwMzIsIDE0MDM4LCAxNDA0NCwgMTQwNTEsIDg5NjYsIDE0MDU2LCAKLSAgICAxNDA2MSwgMTQwNjgsIDE0MDczLCAxMjM2OSwgMTQwNzgsIDE0MDg2LCAxNDA5MiwgMTQwOTcsIDE0MTA1LCAxNDExMywgCi0gICAgMTQxMjAsIDE0MTI4LCAxNDEzNCwgMTQxNDIsIDE0MTUwLCAxNDE1NiwgMTQxNjEsIDE0MTY3LCAxNDE3NCwgMTQxODAsIAotICAgIDE0MTg1LCAxNDE4OSwgMTQyMDAsIDE0MjA4LCAxNDIxNCwgMTQyMTksIDE0MjI4LCAxNDIzNCwgMTQyMzksIDE0MjQ4LCAKLSAgICAxNDI2MiwgMzg1MywgMTQyNjYsIDE0MjcxLCAxNDI3NiwgMTQyODIsIDE0Mjg3LCAxNDI5MiwgMTQyOTYsIDE0MzAxLCAKLSAgICAxNDMwNiwgMTQzMTEsIDc3NTIsIDE0MzE2LCAxNDMyMSwgMTQzMjYsIDE0MzMxLCAxNDMzNiwgMTQzNDAsIDE0MzQ1LCAKLSAgICAxNDM1MCwgMTQzNTUsIDE0MzYwLCAxNDM2NiwgMTQzNzIsIDE0Mzc3LCAxNDM4MSwgMTQzODYsIDE0MzkxLCAxNDM5NiwgCi0gICAgOTI5NCwgMTQ0MDEsIDE0NDA2LCAxNDQxMSwgMTQ0MTYsIDE0NDIxLCAxNDQzOCwgMTQ0NTYsIDE0NDY4LCAxNDQ4MSwgCi0gICAgMTQ0OTgsIDE0NTE0LCAxNDUzMSwgMTQ1NDEsIDE0NTYwLCAxNDU3MSwgMTQ1ODIsIDE0NTkzLCAxNDYwNCwgMTQ2MTYsIAotICAgIDE0NjI3LCAxNDYzOCwgMTQ2NTUsIDE0NjY2LCAxNDY3NywgMTQ2ODIsIDkyOTksIDE0Njg3LCAxNDY5MSwgMjM4MSwgCi0gICAgMTQ2OTUsIDE0Njk4LCAxNDcwNCwgMTQ3MTIsIDE0NzIwLCAxNDcyNSwgMTQ3MzMsIDE0NzQxLCAxNDc0OCwgMTQ3NTMsIAotICAgIDE0NzU5LCAxNDc2NiwgMTQ3NzQsIDE0NzgxLCAxNDc5MywgMTQ4MDEsIDE0ODA2LCAxMTU5MCwgMTQ4MTIsIDE0ODIxLCAKLSAgICAxNDgzMCwgMTQ4MzgsIDE0ODQ1LCAxNDg1MSwgMTQ4NTksIDE0ODY2LCAxNDg3MiwgMTQ4NzksIDE0ODg1LCAxNDg5NCwgCi0gICAgMTQ5MDIsIDE0OTEyLCAxNDkxOSwgMTQ5MjUsIDE0OTMzLCAxNDkzOSwgMTQ5NDcsIDE0OTU0LCAxNDk2NywgMTQ5NzQsIAotICAgIDE0OTgzLCAxNDk5MiwgMTUwMDEsIDE1MDA5LCAxNTAxOSwgMTUwMjYsIDE1MDMxLCAzNTYwLCAxNTAzOCwgMTUwNDMsIAotICAgIDEzNzIsIDE1MDQ3LCAxNDMxNywgMTUwNTEsIDE1MDU3LCAxNTA2MSwgMTUwNjksIDE1MDgxLCAxNTA4NiwgMTUwOTMsIAotICAgIDE1MDk5LCAxNTEwNCwgMTUxMTEsIDE0MzIyLCAxNTExNSwgMTUxMTksIDE1MTIzLCAxNDMyNywgMTUxMjcsIDE0MzMyLCAKLSAgICAxNTEzMSwgMTUxMzgsIDE1MTQzLCAxNTE0NywgMTUxNTQsIDE1MTU4LCAxNTE2NiwgMTUxNzMsIDE1MTc3LCAxNTE4NCwgCi0gICAgMTUyMDEsIDE1MjEwLCAxNTIxNCwgMTUyMTcsIDE1MjI1LCAxNTIzMSwgMTUyMzYsIDM2MzgsIDE1MjQwLCAxNTI0MiwgCi0gICAgMTUyNTAsIDE1MjU3LCAxNTI2NywgMTUyNzksIDE1Mjg0LCAxNTI5MCwgMTUyOTUsIDE1Mjk5LCAxNTMwNSwgMTUzMTAsIAotICAgIDE1MzE2LCAxNTMxOSwgMTUzMjYsIDE1MzM0LCAxNTM0MSwgMTUzNDcsIDE1MzUzLCAxNTM1OCwgMTUzNjUsIDE1MzcxLCAKLSAgICAxNTM3NiwgMTUzODMsIDE1Mzg3LCAxNTM5MywgMTUzOTcsIDE1NDA0LCAxNTQxMCwgMTU0MTYsIDE1NDI0LCAxNTQzMCwgCi0gICAgMTU0MzUsIDE1NDQxLCAxNTQ0OSwgMTU0NTcsIDE1NDYzLCAxNTQ2OSwgMTU0NzQsIDE1NDgxLCAxNTQ4NiwgMTU0OTAsIAotICAgIDE1NDk2LCAxNTUwMSwgMTU1MDgsIDE1NTEzLCAxNTUxOSwgMTU1MjIsIDE1NTI4LCAxNTUzNCwgMTU1MzcsIDE1NTQxLCAKLSAgICAxNTU1MywgMTU1NTksIDE1NTY0LCAxNTU3MSwgMTU1NzcsIDE1NTgzLCAxNTU5NCwgMTU2MDQsIDE1NjEzLCAxNTYyMSwgCi0gICAgMTU2MjgsIDE1NjM5LCAxNTY0OSwgMTU2NTksIDE1NjY3LCAxNTY3MCwgMTQzNDYsIDE1Njc1LCAxNTY4MCwgMTQzNTEsIAotICAgIDE0NDg2LCAxNTY4OCwgMTU3MDEsIDE1NzE2LCAxNTcyNywgMTQ1MDMsIDE1NzQ1LCAxNTc1OCwgMTU3NzEsIDE1NzgyLCAKLSAgICAxMDQ4NSwgMTU3OTMsIDE1ODA2LCAxNTgyNSwgMTU4MzYsIDE1ODQ3LCAxNTg1OCwgMjY0OSwgMTU4NzEsIDE1ODc1LCAKLSAgICAxNTg4MywgMTU4OTgsIDE1OTEzLCAxNTkyNCwgMTU5MzEsIDE1OTM3LCAxNTk0NSwgMTU5NDksIDE1OTU1LCAxNTk1OCwgCi0gICAgMTU5NjgsIDE1OTc2LCAxNTk4MywgMTU5OTEsIDE2MDAxLCAxNjAwNiwgMTYwMTMsIDE2MDE4LCAxNjAyNSwgMTYwMzYsIAotICAgIDE2MDQ2LCAxNjA1MiwgMTYwNTcsIDE2MDYyLCAxNDM1NiwgMTYwNjYsIDE2MDcyLCAxNjA3OCwgMTYwODMsIDE2MDg4LCAKLSAgICAxNjA5MywgMTYwOTcsIDE0MzYxLCAxNDM2NywgMTYxMDEsIDE0MzczLCAxNjEwNiwgMTYxMTQsIDE2MTIzLCAxNjEzMCwgCi0gICAgOTE0MywgMTYxMzQsIDE2MTM2LCAxNjE0MSwgMTYxNDYsIDE2MTUyLCAxNjE1NywgMTYxNjIsIDE2MTY3LCAxNjE3MiwgCi0gICAgMTYxNzYsIDE2MTgyLCAxNjE4OCwgMTYxOTMsIDE2MTk5LCAxNjIwNCwgMTYyMDksIDE2MjE1LCAxNjIyMCwgMTYyMjUsIAotICAgIDE2MjMwLCAxNjIzNSwgMTYyNDEsIDE2MjQ2LCAxNjI1MSwgMTYyNTcsIDE2MjYzLCAxNjI2OCwgMTYyNzMsIDE2MjgwLCAKLSAgICAxNjI4NiwgMTYyOTcsIDE2MzA0LCAxNjMwOSwgMTYzMTMsIDE2MzE3LCAxNjMyMCwgMTYzMjgsIDE2MzMzLCAxNjM0MCwgCi0gICAgMTYzNDcsIDE2MzUzLCAxNjM1OCwgMTYzNjMsIDE2MzcwLCAxNjM4MCwgMTYzODUsIDE2MzkyLCAxNjM5OCwgMTY0MDgsIAotICAgIDE2NDE4LCAxNjQzMiwgMTY0NDYsIDE2NDYwLCAxNjQ3NCwgMTY0ODksIDE2NTA0LCAxNjUyMSwgMTY1MzksIDE2NTUyLCAKLSAgICAxNjU1OCwgMTY1NjMsIDE2NTY4LCAxNjU3MiwgMTY1NzcsIDE2NTg1LCAxNjU5MSwgMTY1OTYsIDE2NjAxLCAxNjYwNSwgCi0gICAgMTY2MTAsIDE2NjE0LCAxNjYxOSwgMTY2MjMsIDE2NjM0LCAxNjY0MCwgMTY2NDUsIDE2NjUwLCAxNjY1NywgMTY2NjIsIAotICAgIDE2NjY2LCAxNjY3MSwgMTY2NzYsIDE2NjgyLCAxNjY4OSwgMTY2OTUsIDE2NzAwLCAxNjcwNCwgMTY3MTAsIDE2NzE1LCAKLSAgICAxNjcyMCwgMTY3MjQsIDE2NzMwLCAxNjczNSwgMTY3NDAsIDE2NzQ3LCAxNjc1MiwgMTMxMDQsIDE2NzU2LCAxNjc2MSwgCi0gICAgMTY3NjUsIDE2NzcwLCAxNjc3NiwgMTY3ODIsIDE2Nzg5LCAxNjc5OSwgMTY4MDcsIDE2ODE0LCAxNjgxOSwgMTY4MjMsIAotICAgIDE2ODMyLCAxNjg0MCwgMTY4NDcsIDE2ODU0LCAxNjg2MCwgMTY4NjYsIDE2ODcxLCAxNjg3NiwgMTY4ODIsIDE2ODg3LCAKLSAgICAxNjg5MywgMTY4OTgsIDE2OTA0LCAxNjkxMCwgMTY5MTcsIDE2OTIzLCAxNjkyOCwgMTY5MzMsIDkzNDEsIDE2OTQyLCAKLSAgICAxNjk0NSwgMTY5NTEsIDE2OTU2LCAxNjk2MSwgMTY5NzEsIDE2OTc4LCAxNjk4NCwgMTY5ODksIDE2OTk0LCAxNzAwMCwgCi0gICAgMTcwMDUsIDE3MDExLCAxNzAxNiwgMTcwMjIsIDE3MDI4LCAxNzAzMywgMTcwNDEsIDE3MDQ4LCAxNzA1MywgMTcwNTgsIAotICAgIDE3MDY0LCAxNzA2OSwgMTcwNzMsIDE3MDgyLCAxNzA5MywgMTcxMDAsIDE3MTA1LCAxNzExMywgMTcxMTksIDE3MTI2LCAKLSAgICAxNzEzMiwgMTcxMzcsIDE3MTQxLCAxNzE0NywgMTcxNTIsIDE3MTU3LCAxNzE2MiwgMTQ0MCwgNzc3NywgMjg3NywgMTcxNjYsIAotICAgIDE3MTcwLCAxNzE3NCwgMTcxNzgsIDE3MTgyLCAxNzE4NiwgMTcxODksIDE3MTk2LCAxNzIwNCwgMTQzODcsIDE3MjExLCAKLSAgICAxNzIyMSwgMTcyMjksIDE3MjM2LCAxNzI0NCwgMTcyNTQsIDE3MjYzLCAxNzI3NiwgMTcyODEsIDE3Mjg2LCAxNzI5NCwgCi0gICAgMTczMDEsIDEzMjAwLCAxMzIwOSwgMTczMDgsIDE3MzE4LCAxNzMzMywgMTczMzksIDE3MzQ2LCAxNzM1MywgMTczNTksIAotICAgIDE3MzY3LCAxNzM3NywgMTczODcsIDE0MzkyLCAxNzM5NiwgMTc0MDIsIDE3NDA4LCAxNzQxNiwgMTc0MjQsIDE3NDI5LCAKLSAgICAxNzQzOCwgMTc0NDYsIDE3NDU4LCAxNzQ2OCwgMTc0NzgsIDE3NDg4LCAxNzQ5NywgMTc1MDksIDE3NTE5LCAxNzUyOSwgCi0gICAgMTc1NDAsIDE3NTQ1LCAxNzU1NywgMTc1NjksIDE3NTgxLCAxNzU5MywgMTc2MDUsIDE3NjE3LCAxNzYyOSwgMTc2NDEsIAotICAgIDE3NjUzLCAxNzY2NSwgMTc2NzYsIDE3Njg4LCAxNzcwMCwgMTc3MTIsIDE3NzI0LCAxNzczNiwgMTc3NDgsIDE3NzYwLCAKLSAgICAxNzc3MiwgMTc3ODQsIDE3Nzk2LCAxNzgwNywgMTc4MTksIDE3ODMxLCAxNzg0MywgMTc4NTUsIDE3ODY3LCAxNzg3OSwgCi0gICAgMTc4OTEsIDE3OTAzLCAxNzkxNSwgMTc5MjcsIDE3OTM4LCAxNzk1MCwgMTc5NjIsIDE3OTc0LCAxNzk4NiwgMTc5OTgsIAotICAgIDE4MDEwLCAxODAyMiwgMTgwMzQsIDE4MDQ2LCAxODA1OCwgMTgwNjksIDE4MDgxLCAxODA5MywgMTgxMDUsIDE4MTE3LCAKLSAgICAxODEyOSwgMTgxNDEsIDE4MTUzLCAxODE2NSwgMTgxNzcsIDE4MTg5LCAxODIwMCwgMTgyMTIsIDE4MjI0LCAxODIzNiwgCi0gICAgMTgyNDgsIDE4MjYwLCAxODI3MiwgMTgyODQsIDE4Mjk2LCAxODMwOCwgMTgzMjAsIDE4MzMxLCAxODM0MywgMTgzNTUsIAotICAgIDE4MzY3LCAxODM3OSwgMTgzOTEsIDE4NDAzLCAxODQxNSwgMTg0MjcsIDE4NDM5LCAxODQ1MSwgMTg0NjIsIDE4NDc0LCAKLSAgICAxODQ4NiwgMTg0OTgsIDE4NTEwLCAxODUyMywgMTg1MzYsIDE4NTQ5LCAxODU2MiwgMTg1NzUsIDE4NTg4LCAxODYwMSwgCi0gICAgMTg2MTMsIDE4NjI2LCAxODYzOSwgMTg2NTIsIDE4NjY1LCAxODY3OCwgMTg2OTEsIDE4NzA0LCAxODcxNywgMTg3MzAsIAotICAgIDE4NzQzLCAxODc1NSwgMTg3NjgsIDE4NzgxLCAxODc5NCwgMTg4MDcsIDE4ODIwLCAxODgzMywgMTg4NDYsIDE4ODU5LCAKLSAgICAxODg3MiwgMTg4ODUsIDE4ODk3LCAxODkxMCwgMTg5MjMsIDE4OTM2LCAxODk0OSwgMTg5NjIsIDE4OTc1LCAxODk4OCwgCi0gICAgMTkwMDEsIDE5MDE0LCAxOTAyNywgMTkwMzksIDE5MDUyLCAxOTA2NSwgMTkwNzgsIDE5MDkxLCAxOTEwNCwgMTkxMTcsIAotICAgIDE5MTMwLCAxOTE0MywgMTkxNTYsIDE5MTY5LCAxOTE4MSwgMTkxOTQsIDE5MjA3LCAxOTIyMCwgMTkyMzMsIDE5MjQ2LCAKLSAgICAxOTI1OSwgMTkyNzIsIDE5Mjg1LCAxOTI5OCwgMTkzMTEsIDE5MzIzLCAxOTMzNCwgMTkzNDcsIDE5MzYwLCAxOTM3MywgCi0gICAgMTkzODYsIDE5Mzk5LCAxOTQxMiwgMTk0MjUsIDE5NDM4LCAxOTQ1MSwgMTk0NjQsIDE5NDc2LCAxOTQ4OSwgMTk1MDIsIAotICAgIDE5NTE1LCAxOTUyOCwgMTk1NDEsIDE5NTU0LCAxOTU2NywgMTk1ODAsIDE5NTkzLCAxOTYwNiwgMTk2MTgsIDE5NjMxLCAKLSAgICAxOTY0NCwgMTk2NTcsIDE5NjcwLCAxOTY4MywgMTk2OTYsIDE5NzA5LCAxOTcyMiwgMTk3MzUsIDE5NzQ4LCAxOTc2MCwgCi0gICAgMTk3NzMsIDE5Nzg2LCAxOTc5OSwgMTk4MTIsIDE5ODI1LCAxOTgzOCwgMTk4NTEsIDE5ODY0LCAxOTg3NywgMTk4OTAsIAotICAgIDE5OTAyLCAxOTkxNSwgMTk5MjgsIDE5OTQxLCAxOTk1NCwgMTk5NjcsIDE5OTgwLCAxOTk5MywgMjAwMDYsIDIwMDE5LCAKLSAgICAyMDAzMiwgMjAwNDQsIDIwMDU3LCAyMDA3MCwgMjAwODMsIDIwMDk2LCAyMDEwOSwgMjAxMjIsIDIwMTM1LCAyMDE0OCwgCi0gICAgMjAxNjEsIDIwMTc0LCAyMDE4NiwgMjAxOTksIDIwMjEyLCAyMDIyNSwgMjAyMzgsIDIwMjUxLCAyMDI2NCwgMjAyNzcsIAotICAgIDIwMjkwLCAyMDMwMywgMjAzMTYsIDIwMzI4LCAyMDM0MSwgMjAzNTQsIDIwMzY3LCAyMDM4MCwgMjAzOTMsIDIwNDA2LCAKLSAgICAyMDQxOSwgMjA0MzIsIDIwNDQ1LCAyMDQ1OCwgMjA0NzAsIDIwNDgzLCAyMDQ5NiwgMjA1MDksIDIwNTIyLCAyMDUzNSwgCi0gICAgMjA1NDgsIDIwNTYxLCAyMDU3NCwgMjA1ODcsIDIwNjAwLCAyMDYxMiwgMjA2MjUsIDIwNjM4LCAyMDY1MSwgMjA2NjQsIAotICAgIDIwNjc3LCAyMDY5MCwgMjA3MDMsIDIwNzE2LCAyMDcyOSwgMjA3NDIsIDIwNzU0LCAyMDc2NSwgMjA3NzMsIDIwNzgxLCAKLSAgICAyMDc4OCwgMjA3OTQsIDIwNzk4LCAyMDgwNCwgMjA4MTAsIDIwODE4LCAyMDgyNCwgMjA4MjksIDIwODMzLCAyMDg0MiwgCi0gICAgOTE0OCwgMjA4NTMsIDIwODYwLCAyMDg2OCwgMjA4NzUsIDIwODgyLCAxMDk0MSwgMjA4ODksIDIwODk4LCAyMDkwMywgCi0gICAgMjA5MDgsIDc4MDUsIDIwOTE1LCAyMDkyMCwgMjA5MjMsIDIwOTI4LCAyMDkzNiwgMjA5NDMsIDIwOTUwLCAyMDk1NywgCi0gICAgMjA5NjMsIDIwOTcyLCAyMDk4MSwgMjA5ODcsIDIwOTk2LCAyMTAwMCwgMjEwMDYsIDIxMDExLCAyMTAyMSwgMjEwMjgsIAotICAgIDIxMDM0LCAyMTA0MiwgMjEwNDgsIDIxMDU1LCAyMTA2NSwgMjEwNzQsIDIxMDc4LCAyMTA4NSwgMjEwODksIDIxMDk0LCAKLSAgICAyMTEwMCwgMjExMDgsIDIxMTEyLCAyMTEyMiwgMTQ0MDIsIDIxMTMxLCAyMTEzNywgMjExNDEsIDIxMTUwLCAxNDQwNywgCi0gICAgMjExNTYsIDIxMTYzLCAyMTE3NCwgMjExODIsIDIxMTkxLCAyMTE5OSwgODkzMSwgMjEyMDcsIDIxMjEyLCAyMTIxOCwgCi0gICAgMjEyMjMsIDIxMjI3LCAyMTIzMSwgMjEyMzUsIDk2MzIsIDIxMjQwLCAyMTI0OCwgMjEyNTUsIDIxMjY0LCAyMTI3MSwgCi0gICAgMjEyNzgsIDEwODcxLCAyMTI4NSwgMjEyOTEsIDIxMjk1LCAyMTMwMSwgMjEzMDgsIDIxMzE0LCAyMTMyMiwgMjEzMjgsIAotICAgIDIxMzM1LCAyMTM0MSwgMjEzNDcsIDIxMzU2LCAyMTM2MCwgMjEzNjgsIDIxMzc3LCAyMTM4NCwgMjEzODksIDIxMzkzLCAKLSAgICAyMTQwNCwgMjE0MDksIDIxNDE0LCAyMTQxOSwgMjE0MzIsIDc5OTUsIDIxNDM2LCAyMTQ0MiwgMjE0NTAsIDIxNDU0LCAKLSAgICAyMTQ2MSwgMjE0NzAsIDIxNDc1LCAxNDY3OCwgMjE0ODMsIDIxNDg3LCAyMTQ5OSwgMjE1MDQsIDIxNTA4LCAyMTUxMSwgCi0gICAgMjE1MTcsIDIxNTIzLCAyMTUyOCwgMjE1MzIsIDIxNTM1LCAyMTU0NiwgMjE1NTEsIDkzNzYsIDIxNTU4LCAyMTU2MywgCi0gICAgOTM4MSwgMjE1NjgsIDIxNTczLCAyMTU3OCwgMjE1ODMsIDIxNTg4LCAyMTU5MywgMjE1OTgsIDIxNjAzLCAyMTYwOCwgCi0gICAgMjE2MTMsIDIxNjE4LCAyMTYyMywgMjE2MjksIDIxNjM0LCAyMTYzOSwgMjE2NDQsIDIxNjQ5LCAyMTY1NCwgMjE2NTksIAotICAgIDIxNjY0LCAyMTY2OSwgMjE2NzQsIDIxNjgwLCAyMTY4NiwgMjE2OTEsIDIxNjk2LCAyMTcwMSwgMjE3MDYsIDIxNzExLCAKLSAgICAyMTcxNiwgMjE3MjEsIDIxNzI2LCAyMTczMSwgMjE3MzcsIDIxNzQyLCAyMTc0NywgMjE3NTIsIDIxNzU4LCAyMTc2NCwgCi0gICAgMjE3NjksIDIxNzc0LCAyMTc3OSwgMjE3ODQsIDIxNzg5LCAyMTc5NCwgMjE3OTksIDIxODA0LCAyMTgxMCwgMjE4MTUsIAotICAgIDIxODIwLCAyMTgyNSwgMjE4MzAsIDIxODM2LCAyMTg0MSwgMjE4NDYsIDIxODUwLCAxMzY4LCAxMjksIDIxODU4LCAyMTg2MiwgCi0gICAgMjE4NjYsIDIxODcwLCAyMTg3NSwgMjE4NzksIDEzMTEwLCAxMjQ2OSwgMjE4ODMsIDIxODg4LCAyMTg5MiwgMjE4OTcsIAotICAgIDIxOTAxLCAyMTkwNiwgMjE5MTAsIDIxOTE2LCAyMTkyMSwgMjE5MjUsIDIxOTI5LCAyMTkzNywgMjE5NDEsIDIxOTQ1LCAKLSAgICAyMTk1MCwgMjE5NTUsIDIxOTU5LCAyMTk2NSwgMjE5NzAsIDIxOTc0LCAyMTk3OSwgMjE5ODQsIDIxOTg4LCAyMTk5NSwgCi0gICAgMjIwMDIsIDIyMDA5LCAyMjAxMywgMjIwMTcsIDIyMDIyLCAyMjAyNiwgMjIwMjksIDIyMDM1LCAyMjA0OCwgMjIwNTMsIAotICAgIDIyMDYyLCAyMjA2NywgOTQyMSwgMjIwNzIsIDIyMDc1LCAyNzEyLCAyNzE3LCAyMjA3OSwgMjIwODUsIDIyMDkxLCA3MjA5LCAKLSAgICAyMjA5NiwgMjIxMDEsIDIyMTA2LCAyMjExMiwgMjIxMTcsIDEzODk2LCAyMjEyMiwgMjIxMjcsIDIyMTMyLCAyMjEzNywgCi0gICAgMjIxNDMsIDIyMTQ4LCAyMjE1MywgMjIxNTksIDIyMTY0LCAyMjE2OCwgMjIxNzMsIDIyMTc4LCAyMjE4MywgMjIxODgsIAotICAgIDIyMTkyLCAyMjE5NywgMjIyMDEsIDIyMjA2LCAyMjIxMSwgMjIyMTYsIDIyMjIxLCAyMjIyNSwgMjIyMzAsIDIyMjM0LCAKLSAgICAyMjIzOSwgMjIyNDQsIDIyMjQ5LCAyMjI1NCwgMjg4NiwgMjIxNjksIDIyMjU4LCAyMjI2NiwgMjIyNzMsIDk3MjYsIAotICAgIDIyMjg1LCAyMjI5MywgMjIxNzQsIDIyMzAwLCAyMjMwNSwgMjIzMTMsIDIyMTc5LCAyMjMxOCwgMjIzMjMsIDIyMzMxLCAKLSAgICAyMjMzNiwgMjIxODQsIDIyMzQxLCAyMjM0NiwgMjIzNTAsIDIyMzU2LCAyMjM2NCwgMjIzNjcsIDIyMzc0LCAyMjM3OCwgCi0gICAgMjIzODIsIDIyMzg4LCAyMjM5NSwgMjI0MDAsIDg5NTgsIDE3MjcsIDE3MzIsIDIyNDA0LCAyMjQxMCwgMjI0MTYsIDIyNDIxLCAKLSAgICAyMjQyNSwgMjI0MjksIDIyNDMzLCAyMjQzNywgMjI0NDEsIDIyNDQ1LCAyMjQ0OSwgMjI0NTIsIDIyNDU4LCAyMjQ2NSwgCi0gICAgMjI0NzMsIDIyNDc5LCAyMjQ4NSwgMjI0OTAsIDIyNDk1LCAyMjQ5OSwgMTM4MTYsIDEzODIzLCAyMjUwNCwgMjI1MTYsIAotICAgIDIyNTE5LCAyMjUyNiwgMTYzNDksIDIyNTMzLCAyMjU0MSwgMjI1NTIsIDIyNTYxLCAyMjU3NCwgMjI1ODQsIDIyNTk4LCAKLSAgICAyMjYxMCwgMjI2MjQsIDIyNjM2LCAyMjY0NiwgMjI2NTgsIDIyNjY0LCAyMjY3OSwgMjI3MDMsIDIyNzIxLCAyMjc0MCwgCi0gICAgMjI3NTMsIDIyNzY3LCAyMjc4NSwgMjI4MDEsIDIyODE4LCAyMjgzNiwgMjI4NDcsIDIyODY2LCAyMjg4MywgMjI5MDMsIAotICAgIDIyOTIxLCAyMjkzMywgMjI5NDcsIDIyOTYxLCAyMjk3MywgMjI5OTAsIDIzMDA5LCAyMzAyNywgMjMwMzksIDIzMDU3LCAKLSAgICAyMzA3NiwgMTQ1NDYsIDIzMDg5LCAyMzEwOSwgMjMxMjEsIDEwNTE2LCAyMzEzMywgMjMxMzgsIDIzMTQzLCAyMzE0OCwgCi0gICAgMjMxNTQsIDIzMTU5LCAyMzE2MywgMjMxNzAsIDIzOTgsIDIzMTc0LCAyMzE4MCwgMjMxODQsIDIzMTg3LCAyMzE5MSwgCi0gICAgMjMxOTksIDIzMjA1LCAyMjIwMiwgMjMyMDksIDIzMjE4LCAyMzIyOSwgMjMyMzUsIDIzMjQxLCAyMzI1MCwgMjMyNTgsIAotICAgIDIzMjY1LCAyMzI3MCwgMjMyNzQsIDIzMjgxLCAyMzI4NywgMjMyOTYsIDIzMzA0LCAyMzMxMSwgMjMzMjEsIDIzMzMwLCAKLSAgICAyMzM0MCwgMjMzNDUsIDIzMzU0LCAyMzM2MywgMjMzNzQsIDIzMzg1LCAzOTYzLCAyMzM5NSwgMjMzOTksIDIzNDA5LCAKLSAgICAyMzQxNywgMjM0MjcsIDIzNDM4LCAyMzQ0MywgMjM0NTMsIDIzNDYxLCAyMzQ2OCwgMjM0NzQsIDIzNDgxLCAyMzQ4NiwgCi0gICAgMjIyMTIsIDIzNDkwLCAyMzQ5OSwgMjM1MDMsIDIzNTA2LCAyMzUxMSwgMjM1MTgsIDIzNTI3LCAyMzUzNSwgMjM1NDMsIAotICAgIDIzNTUzLCAyMzU2MiwgMjM1NjgsIDIzNTc0LCAyMjIxNywgMjIyMjIsIDIzNTc4LCAyMzU4OCwgMjM1OTgsIDIzNjA4LCAKLSAgICAyMzYxNiwgMjM2MjMsIDIzNjMzLCAyMzY0MSwgMjM2NDksIDIzNjU1LCAyMzY2MywgOTMwLCAyMzY3MiwgMTQ3MzcsIDU0MiwgCi0gICAgMjM2ODYsIDIzNjk1LCAyMzcwMywgMjM3MTQsIDIzNzI1LCAyMzczNSwgMjM3NDQsIDIzNzU2LCAyMzc2NSwgMjM3NzQsIAotICAgIDIzNzgwLCAyMzc4OSwgMjM3OTgsIDIzODA4LCAyMzgxNiwgMjM4MjQsIDkzNTMsIDIzODMwLCAyMzgzMywgMjM4MzcsIAotICAgIDIzODQyLCAyMzg0NywgOTg0MSwgMjIyMzUsIDIyMjQwLCAyMzg1NSwgMjM4NjEsIDIzODY3LCAyMzg3MiwgMjM4NzcsIAotICAgIDIzODgxLCAyMzg4OSwgMjM4OTUsIDIzOTAxLCAyMzkwNSwgMzUyNSwgMjM5MTMsIDIzOTE4LCAyMzkyMywgMjM5MjcsIAotICAgIDIzOTMxLCA5OTIxLCAyMzkzOCwgMjM5NDYsIDIzOTYwLCAyMzk2NywgMjM5NzMsIDk5MzAsIDk5MzYsIDIzOTgxLCAyMzk4OSwgCi0gICAgMjM5OTYsIDI0MDAxLCAyNDAwNiwgMjIyNDUsIDI0MDEyLCAyNDAyMywgMjQwMjcsIDI0MDMyLCAyNjAxLCAyNDAzNywgCi0gICAgMjQwNDgsIDI0MDU0LCAyNDA1OSwgMjQwNjMsIDI0MDY3LCAyNDA3MCwgMjQwNzcsIDI0MDg0LCAyNDA5MSwgMjQwOTcsIAotICAgIDI0MTAxLCAyMjI1MCwgMjQxMDYsIDI0MTEwLCAyNDExNCwgMTAzNywgMjQxMTksIDI0MTI0LCAyNDEyOSwgMjQxMzQsIAotICAgIDI0MTM5LCAyNDE0NCwgMjQxNDksIDI0MTU0LCAyNDE1OSwgMjQxNjQsIDI0MTY5LCAyNDE3NCwgMjQxNzksIDI0MTg0LCAKLSAgICAyNDE5MCwgMjQxOTUsIDI0MjAwLCAyNDIwNSwgMjQyMTAsIDI0MjE1LCAyNDIyMCwgMjQyMjYsIDI0MjMxLCAyNDIzNiwgCi0gICAgMjQyNDEsIDI0MjQ2LCAyNDI1MSwgMjQyNTYsIDI0MjYxLCAyNDI2NywgMjQyNzMsIDI0Mjc4LCAyNDI4NCwgMjQyODksIAotICAgIDI0Mjk0LCA1LCAyNDMwMCwgMjQzMDQsIDI0MzA4LCAyNDMxMiwgMjQzMTcsIDI0MzIxLCAyNDMyNSwgMjQzMjksIDI0MzMzLCAKLSAgICAyNDMzOCwgMjQzNDIsIDI0MzQ3LCAyNDM1MSwgMjQzNTQsIDI0MzU4LCAyNDM2MywgMjQzNjcsIDI0MzcyLCAyNDM3NiwgCi0gICAgMjQzODAsIDI0Mzg0LCAyNDM4OSwgMjQzOTMsIDI0Mzk3LCAyNDQwNywgMjQ0MTIsIDI0NDE2LCAyNDQyMCwgMjQ0MjUsIAotICAgIDI0NDMwLCAyNDQzOSwgMjQ0NDQsIDI0NDQ5LCAyNDQ1MywgMjQ0NTcsIDI0NDcwLCAyNDQ4MiwgMjQ0OTEsIDI0NTAwLCAKLSAgICAyNDUwNiwgMjQ1MTEsIDI0NTE1LCAyNDUxOSwgMjQ1MjksIDI0NTM4LCAyNDU0NiwgMjQ1NTIsIDI0NTU3LCAyNDU2MSwgCi0gICAgMjQ1NjgsIDI0NTc4LCAyNDU4NywgMjQ1OTUsIDI0NjAzLCAyNDYxMCwgMjQ2MTgsIDI0NjI3LCAyNDYzNiwgMjQ2NDQsIAotICAgIDI0NjQ5LCAyNDY1MywgMjQ2NTcsIDI0NjYwLCAyNDY2MiwgMjQ2NjYsIDI0NjcwLCAyNDY3NSwgMjQ2ODAsIDI0Njg0LCAKLSAgICAyNDY4OCwgMjQ2OTEsIDI0Njk1LCAyNDY5OCwgMjQ3MDIsIDI0NzA1LCAyNDcwOCwgMjQ3MTIsIDI0NzE4LCAyNDcyMiwgCi0gICAgMjQ3MjYsIDI0NzMwLCAyNDczNSwgMjQ3NDAsIDI0NzQ1LCAyNDc0OSwgMjQ3NTIsIDI0NzU3LCAyNDc2MywgMjQ3NjgsIAotICAgIDI0Nzc0LCAyNDc3OSwgMjQ3ODMsIDI0Nzg3LCAyNDc5MSwgMjQ3OTYsIDI0ODAwLCAyNDgwNSwgMjQ4MDksIDI0ODEzLCAKLSAgICAyNDgyMCwgMjQ4MjQsIDI0ODI3LCAyNDgzMSwgMjQ4MzcsIDI0ODQzLCAyNDg0NywgMjQ4NTEsIDI0ODU2LCAyNDg2MywgCi0gICAgMjQ4NjksIDI0ODczLCAyNDg4MiwgMjQ4ODYsIDI0ODkwLCAyNDg5MywgMjQ4OTksIDI0OTA0LCAyNDkxMCwgMTQ4OSwgCi0gICAgMTc5MSwgMjQ5MTUsIDI0OTIwLCAyNDkyNSwgMjQ5MzAsIDI0OTM1LCAyNDk0MCwgMjQ5NDUsIDIxNDgsIDIxOTQsIDI0OTUwLCAKLSAgICAyNDk1MywgMjQ5NTcsIDI0OTYxLCAyNDk2NiwgMjQ5NzAsIDI0OTc0LCAyNDk3NywgMjQ5ODIsIDI0OTg3LCAyNDk5MSwgCi0gICAgMjQ5OTQsIDI0OTk5LCAyNTAwMywgMjUwMDgsIDI1MDEyLCAxNDc0OSwgMjUwMTcsIDI1MDIwLCAyNTAyMywgMjUwMjcsIAotICAgIDI1MDMyLCAyNTAzNiwgMjUwNDksIDI1MDUzLCAyNTA1NiwgMjUwNjQsIDI1MDczLCAyNTA4MCwgMjUwODUsIDI1MDkxLCAKLSAgICAyNTA5NywgMjUxMDUsIDI1MTEyLCAyNTExOSwgMjUxMjMsIDI1MTI3LCAyNTEzMSwgMjUxMzYsIDI1MTQxLCAyNTE0NSwgCi0gICAgMjUxNTMsIDI1MTU4LCAyNTE3MCwgMjUxODEsIDI1MTg2LCAyNTE5MCwgMjUxOTQsIDI1MjAwLCAyNTIwNSwgMjUyMTAsIAotICAgIDI1MjE0LCAyNTIxOCwgMjUyMjEsIDI1MjI3LCA3OTE1LCAyMzE2LCAyNTIzMSwgMjUyMzYsIDI1MjUyLCA5NDY4LCAyNTI3MiwgCi0gICAgMjUyODEsIDI1Mjk3LCAyNTMwMSwgMjUzMDQsIDI1MzEwLCAyNTMyMCwgMjUzMjYsIDI1MzM1LCAyNTM1MCwgMjUzNjIsIAotICAgIDI1MzczLCAyNTM4MSwgMjUzOTAsIDI1Mzk2LCAyNTQwNSwgMjU0MTUsIDI1NDI2LCAyNTQzNywgMjU0NDYsIDI1NDUzLCAKLSAgICAyNTQ2MiwgMjU0NzAsIDI1NDc3LCAyNTQ4NSwgMjU0OTIsIDI1NDk5LCAyNTUxMiwgMjU1MTksIDI1NTI1LCAyNTUzMCwgCi0gICAgMjU1MzksIDI1NTQ1LCAyNTU1MCwgMjU1NTgsIDI1NTY1LCAyMzQxOSwgMjU1NzcsIDI1NTg5LCAyNTYwMywgMjU2MTEsIAotICAgIDI1NjE4LCAyNTYzMCwgMjU2MzksIDI1NjQ4LCAyNTY1NiwgMjU2NjQsIDI1NjcyLCAyNTY3OSwgMjU2ODgsIDI1Njk2LCAKLSAgICAyNTcwNiwgMjU3MTUsIDI1NzI1LCAyNTczNCwgMjU3NDMsIDI1NzUxLCAyNTc1NiwgMjU3NjAsIDI1NzYzLCAyNTc2NywgCi0gICAgMjU3NzEsIDI1Nzc1LCAyNTc3OSwgMjU3ODMsIDI1Nzg5LCAyNTc5NSwgMjU4MDMsIDE0Nzk0LCAyNTgxMCwgMjU4MTUsIAotICAgIDI1ODIyLCAyNTgyOCwgMjU4MzUsIDE0ODAyLCAyNTg0MiwgMjU4NDUsIDI1ODU3LCAyNTg2NSwgMjU4NzEsIDI1ODc2LCAKLSAgICAyNTg4MCwgOTg3MSwgMjU4OTEsIDI1OTAxLCAyNTkxMCwgMjU5MTcsIDI1OTIxLCAxNDgwNywgMjU5MjQsIDI1OTMxLCAKLSAgICAyNTkzNSwgMjU5NDEsIDI1OTQ0LCAyNTk1MSwgMjU5NTcsIDI1OTY0LCAyNTk3MCwgMjU5NzQsIDI1OTc5LCAyNTk4MywgCi0gICAgMjU5OTIsIDI1OTk5LCAyNjAwNSwgNzk1NiwgMjYwMTIsIDI2MDIwLCAyNjAyNywgMjYwMzMsIDI2MDM4LCAyNjA0NCwgCi0gICAgMjYwNTAsIDI2MDU4LCAyNjA2MiwgMjYwNjUsIDI2MDY3LCAyNTc2OCwgMjYwNzYsIDI2MDgyLCAyNjA5MiwgMjYwOTcsIAotICAgIDI2MTA0LCAyNjExMCwgMjYxMTUsIDI2MTIwLCAyNjEyNSwgMjYxMjksIDI2MTM0LCAyNjE0MSwgMjYxNTAsIDI2MTU0LCAKLSAgICAyNjE2MSwgMjYxNzAsIDI2MTc2LCAyNjE4MSwgMjYxODcsIDI2MTkyLCAyNjE5OSwgMjYyMTAsIDI2MjE1LCAyNjIxOSwgCi0gICAgMjYyMjksIDI2MjM1LCAyNjIzOSwgMjYyNDQsIDI2MjU0LCAyNjI2MywgMjYyNjcsIDI2Mjc0LCAyNjI4MiwgMjYyODksIAotICAgIDI2Mjk1LCAyNjMwMCwgMjYzMDgsIDI2MzE1LCAyNjMyNywgMjYzMzYsIDI2MzQwLCAxMzA0NiwgMjYzNDgsIDI2MzU4LCAKLSAgICAyNjM2MiwgMjUwNjAsIDI2MzczLCAyNjM3OCwgMjYzODIsIDI2Mzg5LCAyNjM5NiwgMjE5NjEsIDI1NjkzLCAyNjQwMSwgCi0gICAgMjY0MDUsIDI2NDA4LCAyMjg1MywgMjY0MTMsIDI2NDI3LCAyNjQ0MywgMjY0NjEsIDI2NDgwLCAyNjQ5NywgMjY1MTUsIAotICAgIDIyODcyLCAyNjUzMiwgMjY1NTIsIDIyODg5LCAyNjU2NCwgMjY1NzYsIDE1NzMyLCAyNjU4OCwgMjI5MDksIDI2NjAyLCAKLSAgICAyNjYxNCwgMTA1MjksIDI2NjI4LCAyNjYzMywgMjY2MzgsIDI2NjQzLCAyNjY0OSwgMjY2NTUsIDI2NjYxLCAyNjY2NSwgCi0gICAgMjY2NzIsIDI2Njc3LCAyNjY4NywgMjY2OTMsIDEwMTc2LCAyNjY5OSwgMjY3MDEsIDI2NzA2LCAyNjcxNCwgMjY3MTgsIAotICAgIDI2MTM3LCAyNjcyNCwgMjY3MzEsIDExNTE3LCAxMTUyNywgMjY3MzgsIDI2NzQ4LCAyNjc1MywgMjY3NTcsIDI2NzYwLCAKLSAgICAyNjc2NiwgMjY3NzQsIDI2Nzg2LCAyNjc5NiwgMjY4MTIsIDI2ODI1LCAyNjgzOSwgMTU3NTAsIDI2ODUzLCAyNjg2MCwgCi0gICAgMjY4NjQsIDI2ODY3LCAyNjg3MiwgMjY4NzYsIDI2ODgzLCAyNjg5MCwgMjY5MDAsIDI2OTA1LCAyNjkxMCwgMjY5MTUsIAotICAgIDI2OTIzLCAyNjkzMSwgMjY5NDAsIDI2OTQ1LCA5NTY1LCAyNjk0OSwgMjY5NTIsIDI2OTU1LCAyNjk2MCwgMjY5NjcsIAotICAgIDI2OTcyLCAyNjk4OCwgMjY5OTYsIDI3MDA0LCA5NDE2LCAyNzAxMiwgMjcwMTcsIDI3MDIxLCAyNzAyNywgMjcwMzMsIAotICAgIDI3MDM2LCAyNzA0MiwgMjcwNTQsIDI3MDYyLCAyNzA2OSwgMjcwNzUsIDI3MDgyLCAyNzA5MywgMjcxMDcsIDI3MTIwLCAKLSAgICAyNzEyOSwgMjcxMzgsIDI3MTUwLCAyNzE2MSwgMjcxNzEsIDI3MTgwLCAyNzE4OSwgMjcxOTcsIDI3MjA4LCA3OTM4LCAKLSAgICAyNzIxNSwgMjcyMjEsIDI3MjI2LCAyNzIzMiwgMjcyMzksIDI3MjQ5LCAyNzI1OSwgMjcyNjgsIDI3Mjc0LCAyNzI4MSwgCi0gICAgMjcyODYsIDI3MjkzLCAyNzMwMSwgMjczMDksIDI3MzIxLCA2MjQ2LCAyNzMyOCwgMjczMzcsIDI3MzQ1LCAyNzM1MSwgCi0gICAgMjczNTcsIDI3MzYyLCAyNzM2NiwgMjczNjksIDI3Mzc1LCAyNzM4MiwgMjczODcsIDI3MzkyLCAyNzM5NiwgMjc0MDgsIAotICAgIDI3NDE5LCAyNzQyOCwgMjc0MzYsIDE0OTM0LCAyNzQ0MSwgMjc0NDcsIDI3NDUzLCAxMTUxMCwgODYzNSwgMjc0NTgsIAotICAgIDI3NDYyLCAyNzQ2NSwgMjc0NjgsIDI3NDc0LCAyNzQ4MiwgMjc0OTAsIDI3NDk0LCAyNzQ5OCwgMjc1MDMsIDI3NTA2LCAKLSAgICAyNzUxNSwgMjc1MTksIDI3NTI3LCAyNzUzOCwgMjc1NDIsIDI3NTQ4LCAyNzU1NCwgMjc1NTgsIDI3NTY0LCAyNzU3MiwgCi0gICAgMjc1OTQsIDI3NjE4LCAyNzYyNSwgMjc2MzIsIDI3NjM4LCAyNzY0NiwgMjc2NTIsIDI3NjU3LCAyNzY2OCwgMjc2ODYsIAotICAgIDI3NjkzLCAyNzcwMSwgMjc3MDUsIDI3NzE0LCAyNzcyNywgMjc3MzUsIDI3NzQ3LCAyNzc1OCwgMjc3NjgsIDI3NzgyLCAKLSAgICAyNzc5MSwgMjc3OTksIDI3ODExLCA5NDg1LCAyNzgyMiwgMjc4MzMsIDI3ODQ1LCAyNzg1NSwgMjc4NjQsIDI3ODY5LCAKLSAgICAyNzg3MywgMjc4ODEsIDI3ODkxLCAyNzg5NiwgMjc5MDAsIDI3OTAzLCAyNzkwNiwgMjc5MTQsIDI3OTIyLCAyNzkzMSwgCi0gICAgMjc5NDEsIDI3OTUwLCAyNzk1NiwgMjc5NzAsIDI2NjMsIDI3OTkyLCAyODAwMywgMjgwMTIsIDI4MDIyLCAyODAzNCwgCi0gICAgMjgwNDMsIDI4MDUyLCAyODA2MiwgMjgwNzAsIDI4MDc4LCAyODA4NywgMjgwOTIsIDI4MTAzLCAyODEwOCwgMjgxMTksIAotICAgIDI4MTIzLCAyODEzMywgMjgxNDIsIDI4MTUwLCAyODE2MCwgMjgxNzAsIDI4MTc4LCAyODE4NywgMjgxOTQsIDI4MjAyLCAKLSAgICAyODIwOSwgMjgyMTgsIDI4MjIyLCAyODIzMCwgMjgyMzcsIDI4MjQ1LCAyODI1MiwgMjgyNjMsIDI4Mjc4LCAyODI4NSwgCi0gICAgMjgyOTEsIDI4MzAxLCAyODMxMCwgMjgzMTYsIDI4MzIwLCAyODMyNywgMjgzMzEsIDE0MDE4LCAyODMzNywgMjgzNDEsIAotICAgIDI4MzQ2LCAyODM1MywgMjgzNTcsIDI4MzYxLCAyODM2OSwgMjgzNzcsIDI4MzgzLCAyODM5MiwgMjgzOTksIDI4NDA0LCAKLSAgICAyODQwOSwgMjg0MTksIDIzNDg4LCAyODQyMywgMjg0MjYsIDI4NDMxLCAyODQzNiwgMjg0NDEsIDI4NDQ2LCAyODQ1MSwgCi0gICAgMjg0NTYsIDI4NDYxLCAyODQ2NiwgMjg0NzIsIDI4NDc3LCAyODQ4MiwgMjg0ODgsIDEyMTgsIDcwNCwgMjg0OTMsIDI4NTAyLCAKLSAgICAyMzY0LCAyODUwOSwgMjg1MTQsIDI4NTE4LCAyODUyNCwgMTI2NywgNTQ2LCAzMTgsIDI4NTI5LCAyODUzOCwgMjg1NDYsIAotICAgIDI4NTU1LCAyODU2MywgMjg1NzQsIDI4NTgzLCAyODU5MSwgMjg1OTUsIDI4NTk4LCAyODYwNiwgMjg2MTQsIDI4NjE5LCAKLSAgICAxNDc2MiwgMjg2MjUsIDI4NjMxLCAyODYzNywgNTg3MiwgMjg2NDIsIDI4NjQ2LCAyODY1MiwgMjg2NTYsIDI4NjYzLCAKLSAgICAxNDU1LCAyODY2OSwgMjg2NzYsIDk1NzIsIDI4NjgwLCAyODY5MCwgMjg2OTgsIDI4NzA0LCAyODcxMywgMjg3MjEsIAotICAgIDI4NzI3LCAyODczNSwgMjg3NDIsIDExMTAzLCAyODc0OCwgMjg3NTUsIDI4NzYwLCAyODc2NywgMTQ5NiwgMjE0NywgCi0gICAgMjg3NzMsIDI4Nzc5LCAyODc4NiwgMjg3OTcsIDI4ODA4LCAyODgxNiwgMjg4MjMsIDI4ODMzLCAyODg0MiwgMjg4NTAsIAotICAgIDI4ODU5LCAyODg2NiwgMjg4NzMsIDI4ODg2LCAyODg5NywgMTI3MiwgMjg5MTYsIDI4OTIxLCAyODkyOSwgMzU3NSwgCi0gICAgMjg5MzMsIDI4OTM4LCAyODk0MiwgMTQ1OSwgMjQ2ODksIDI4OTUyLCAyODk1NiwgMjg5NjEsIDI4OTY1LCAzNDkzLCAKLSAgICAyODk3MSwgMjg5NzksIDI4OTg2LCAyODk5NywgMjkwMDUsIDI5MDEzLCAzNTc2LCAyNzksIDI5MDE4LCAyOTAyNiwgMjkwMzQsIAotICAgIDI5MDQxLCAyOTA0NywgMjkwNTIsIDIyMTYsIDI5MDU5LCAyOTA2NSwgMjU5NzUsIDI2MjA1LCAyOTA3MSwgMTA2LCAyOTA3NSwgCi0gICAgMjkwNzksIDI5MDg1LCA2MTUsIDkzMjEsIDI5MDkwLCAyOTA5NywgMjkxMDMsIDIzMjcsIDI5MTA3LCAyOTExMSwgMTUxNzQsIAotICAgIDI5MTE0LCAyOTExOSwgMjkxMjYsIDI5MTMyLCAyOTEzNywgMjkxNDUsIDI5MTUyLCAyOTE1OCwgMjIzMzgsIDI5MTYyLCAKLSAgICAyOTE2NiwgMzY0NiwgMTY2MTIsIDI5MTcwLCAyOTE3NSwgMjkxNzgsIDI5MTg2LCAyOTE5NCwgMjkxOTksIDI5MjAyLCAKLSAgICAyOTIwOSwgMjkyMTksIDI5MjMxLCAyOTIzNiwgMjkyNDAsIDI5MjQ4LCAyOTI1NSwgMjkyNjEsIDI5MjY4LCAyOTI3NSwgCi0gICAgMjkyNzgsIDI5MjgyLCAyOTI4NiwgMTQ2MywgMjkyOTYsIDI5Mjk4LCAyOTMwMywgMjkzMDksIDI5MzE1LCAyOTMyMCwgCi0gICAgMjkzMjUsIDI5MzMwLCAyOTMzNSwgMjkzNDAsIDI5MzQ1LCAyOTM1MCwgMjkzNTUsIDI5MzYwLCAyOTM2NSwgMjkzNzAsIAotICAgIDI5Mzc1LCAyOTM4MCwgMjkzODUsIDI5MzkxLCAyOTM5NywgMjk0MDMsIDI5NDA5LCAyOTQxNCwgMjk0MTksIDI5NDI0LCAKLSAgICAyOTQzMCwgMjk0MzUsIDI5NDQwLCAyOTQ0NSwgMjk0NTEsIDI5NDU2LCAyOTQ2MiwgMjk0NjcsIDI5NDcyLCAyOTQ3NywgCi0gICAgMjk0ODIsIDI5NDg4LCAyOTQ5MywgMjk0OTksIDI5NTA0LCAyOTUwOSwgMjk1MTQsIDI5NTE5LCAyOTUyNSwgMjk1MzAsIAotICAgIDI5NTM2LCAyOTU0MSwgMjk1NDYsIDI5NTUxLCAyOTU1NiwgMjk1NjEsIDI5NTY2LCAyOTU3MSwgMjk1NzYsIDI5NTgxLCAKLSAgICAyOTU4NywgMjk1OTMsIDI5NTk5LCAyOTYwNCwgMjk2MDksIDI5NjE0LCAyOTYxOSwgMjk2MjUsIDI5NjMxLCAyOTYzNywgCi0gICAgMjk2NDMsIDI5NjQ5LCAyOTY1NSwgMjk2NjAsIDI5NjY2LCAyOTY3MSwgMjk2NzYsIDI5NjgxLCAyOTY4NiwgMjk2OTIsIAotICAgIDI0NDMsIDI5Njk3LCAyNDUwLCAyNDU3LCAyNzU0LCAyOTcwMiwgMjQ2MywgMjQ3MywgMjk3MDgsIDI5NzEyLCAyOTcxNywgCi0gICAgMjk3MjIsIDI5NzI4LCAyOTczMywgMjk3MzgsIDI5NzQyLCAyOTc0NywgMjk3NTMsIDI5NzU4LCAyOTc2MywgMjk3NjgsIAotICAgIDI5Nzc0LCAyOTc3OSwgMjk3ODMsIDI5Nzg3LCAyOTc5MiwgMjk3OTcsIDI5ODAyLCAyOTgwNywgMjk4MTIsIDI5ODE4LCAKLSAgICAyOTgyNCwgMjk4MjksIDI5ODMzLCAyOTgzOCwgMjk4NDQsIDI5ODQ4LCAyOTg1MywgMjk4NTgsIDI5ODYzLCAyOTg2OCwgCi0gICAgMjk4NzIsIDI5ODc1LCAyOTg4MCwgMjk4ODUsIDI5ODkwLCAyOTg5NSwgMjk5MDAsIDI5OTA2LCAyOTkxMiwgMjk5MTcsIAotICAgIDI5OTIyLCAyOTkyNiwgMjk5MzEsIDI5OTM2LCAyOTk0MSwgMjk5NDYsIDI5OTUxLCAyOTk1NSwgMjk5NjAsIDI5OTY1LCAKLSAgICAyOTk3MCwgMjk5NzQsIDI5OTc4LCAyOTk4MiwgMjk5ODcsIDI5OTk1LCAzMDAwMCwgMzAwMDYsIDMwMDEyLCAzMDAxOCwgCi0gICAgMzAwMjMsIDMwMDI3LCAzMDAzMCwgMzAwMzUsIDMwMDQwLCAzMDA0NCwgMzAwNDksIDMwMDUzLCAzMDA1OCwgMzAwNjIsIAotICAgIDMwMDY1LCAzMDA3MCwgMTcyODksIDMwMDc1LCAzMDA4MCwgMzAwODUsIDMwMDkzLCAyMTI2NywgMjg2NzMsIDkwMTksIAotICAgIDMwMDk4LCAzMDEwMywgMzAxMDcsIDMwMTEyLCAzMDExNiwgMzAxMjAsIDMwMTI1LCAzMDEyOSwgMzAxMzIsIDMwMTM1LCAKLSAgICAzMDEzOSwgMzAxNDQsIDMwMTQ4LCAzMDE1NiwgMzAxNjAsIDMwMTYzLCAzMDE2OCwgMzAxNzIsIDMwMTc2LCAzMDE4MSwgCi0gICAgMzAxODYsIDMwMTkwLCAzMDE5NiwgMzAyMDEsIDMwMjA2LCAzMDIxMywgMzAyMjAsIDMwMjI0LCAzMDIyNywgMzAyMzMsIAotICAgIDMwMjQyLCAzMDI0OSwgMzAyNTcsIDMwMjY0LCAzMDI2OCwgMzAyNzMsIDMwMjc3LCAzMDI4MSwgMzAyODcsIDMwMjkzLCAKLSAgICAzMDI5NywgMzAzMDMsIDMwMzA4LCAzMDMxMywgMzAzMjAsIDMwMzI2LCAzMDMzMiwgMzAzMzgsIDMwMzQ0LCAzMDM1MSwgCi0gICAgMzAzNTcsIDMwMzYzLCAzMDM2OSwgMzAzNzUsIDMwMzgxLCAzMDM4NywgMzAzOTMsIDMwNDAwLCAzMDQwNiwgMzA0MTMsIAotICAgIDMwNDE5LCAzMDQyNSwgMzA0MzEsIDMwNDM3LCAzMDQ0MywgMzA0NDksIDMwNDU1LCAzMDQ2MSwgMzA0NjcsIDExNDExLCAKLSAgICAzMDQ3MywgMzA0NzgsIDMwNDgzLCAzMDQ4NiwgMzA0OTQsIDMwNDk5LCAzMDUwOCwgMzA1MTQsIDMwNTE5LCAzMDUyNCwgCi0gICAgMzA1MjksIDMwNTMzLCAzMDUzOCwgMzA1NDMsIDMwNTQ4LCAzMDU1MywgMzA1NTgsIDMwNTY1LCAzMDU3MiwgMzA1NzgsIAotICAgIDMwNTg0LCAzMDU4OSwgMTYyOTAsIDMwNTk2LCAzMDYwMiwgMzA2MDksIDMwNjE1LCAzMDYyMSwgMzA2MjYsIDMwNjM0LCAKLSAgICAzMDYzOSwgMTYwNjksIDMwNjQzLCAzMDY0OCwgMzA2NTMsIDMwNjU5LCAzMDY2NCwgMzA2NjksIDMwNjczLCAzMDY3OCwgCi0gICAgMzA2ODMsIDMwNjg5LCAzMDY5NCwgMzA2OTksIDMwNzAzLCAzMDcwOCwgMzA3MTMsIDMwNzE3LCAzMDcyMiwgMzA3MjcsIAotICAgIDMwNzMyLCAzMDczNiwgMzA3NDEsIDMwNzQ2LCAzMDc1MSwgMzA3NTUsIDMwNzU5LCAxNTI4MCwgMzA3NjMsIDMwNzcyLCAKLSAgICAzMDc3OCwgMzA3ODQsIDMwNzkzLCAzMDgwMSwgMzA4MTAsIDMwODE4LCAzMDgyMywgMzA4MjcsIDMwODM0LCAzMDg0MCwgCi0gICAgMzA4NDQsIDMwODQ3LCAzMDg1MiwgMzA4NjEsIDMwODY5LCAzMDg3NCwgMTQ5NSwgMzA4ODAsIDMwODgzLCAzMDg4NywgCi0gICAgMjI0MTEsIDIyNDE3LCAzMDg5MywgMzA4OTcsIDMwOTA4LCAzMDkxOSwgMzA5MzAsIDMwOTQyLCAzMDk0OSwgMzA5NTYsIAotICAgIDMwOTYxLCAzMDk2NSwgNTkwOSwgNzU1LCAyMTI2NiwgMzA5NzMsIDMwOTc4LCAzMDk4MiwgMzA5ODcsIDMwOTkxLCAzMDk5NywgCi0gICAgMzEwMDIsIDMxMDA4LCAzMTAxMywgMzEwMTksIDMxMDI0LCAzMTAzMCwgMzEwMzUsIDMxMDQxLCAzMTA0NywgMzEwNTMsIAotICAgIDMxMDU4LCAzMTAxNCwgMzEwMjAsIDMxMDYyLCAzMTA2NywgMzEwNzMsIDMxMDc4LCAzMTA4NCwgMzEwODksIDMxMDk1LCAKLSAgICAzMTEwMCwgMzEwMjUsIDEwNDE0LCAzMTEwNCwgMzEwMzYsIDMxMDQyLCAzMTA0OCwgMjgzMSwgMzQyMywgMzExMTAsIAotICAgIDMxMTEzLCAzMTExOSwgMzExMjUsIDMxMTMxLCAzMTEzOCwgMzExNDQsIDMxMTUwLCAzMTE1NiwgMzExNjIsIDMxMTY4LCAKLSAgICAzMTE3NCwgMzExODAsIDMxMTg2LCAzMTE5MiwgMzExOTgsIDMxMjA0LCAzMTIxMCwgMzEyMTcsIDMxMjIzLCAzMTIyOSwgCi0gICAgMzEyMzUsIDMxMjQxLCAzMTI0NywgMzEyNTAsIDMxMjU1LCAzMTI1OCwgMzEyNjUsIDMxMjczLCAzMTI3OCwgMzEyODMsIAotICAgIDMxMjg5LCAzMTI5NCwgMzEyOTksIDMxMzAzLCAzMTMwOCwgMzEzMTQsIDMxMzE5LCAzMTMyNSwgMzEzMzAsIDMxMzM2LCAKLSAgICAzMTM0MSwgMzEzNDcsIDMxMzUzLCAzMTM1NywgMzEzNjIsIDMxMzY3LCAzMTM3MiwgMzEzNzcsIDMxMzgxLCAzMTM4NiwgCi0gICAgMzEzOTEsIDMxMzk2LCAzMTQwMiwgMzE0MDgsIDMxNDE0LCAzMTQyMCwgMzE0MjUsIDMxNDI5LCAzMTQzMiwgMzE0MzgsIAotICAgIDMxNDQ0LCAzMTQ1MywgMzE0NjEsIDMxNDY4LCAzMTQ3MywgMzE0NzcsIDMxNDgxLCAzMTQ4NiwgMTUxMzMsIDMxNDkxLCAKLSAgICAzMTQ5OSwgMzE1MDUsIDM2ODMsIDEzNzcsIDMxNTEwLCAzMTUxNCwgODAwNSwgMzE1MjAsIDMxNTI2LCAzMTUzMywgODAxNCwgCi0gICAgMzE1MzcsIDMxNTQzLCAzMTU1MCwgMzE1NTYsIDMxNTY1LCAzMTU3MywgMzE1ODUsIDMxNTg5LCAzMTU5NiwgMzE2MDIsIAotICAgIDMxNjA2LCAzMTYwOSwgMzE2MTgsIDMxNjI2LCAzMTAxNSwgMzE2MzEsIDMxNjQxLCAzMTY1MSwgMzE2NjEsIDMxNjY3LCAKLSAgICAzMTY3MiwgMzE2ODIsIDMxNjg3LCAzMTcwMCwgMzE3MTQsIDMxNzI1LCAzMTczNywgMzE3NDksIDMxNzYzLCAzMTc3NiwgCi0gICAgMzE3ODgsIDMxODAwLCAxNDU4NywgMzE4MTQsIDMxODE5LCAzMTgyNCwgMzE4MjgsIDMxODMyLCAzMTgzNiwgMTc4MCwgCi0gICAgMjcxNTksIDMxODQwLCAzMTg0NSwgMzEwNjMsIDMxODUwLCAzMTg1MywgMzE4NTgsIDMxODYzLCAzMTg2OCwgMzE4NzQsIAotICAgIDMxODgwLCAxMDA5MSwgMzE4ODUsIDMxODkyLCAxNTY4NCwgMzE4OTgsIDMxOTAzLCAzMTkwOCwgMzE5MTIsIDMxOTE3LCAKLSAgICAzMTkyMiwgMzEwNjgsIDMxOTI3LCAzMTkzMiwgMzE5MzcsIDMxOTQzLCAzMTA3NCwgMzE5NDgsIDMxOTUxLCAzMTk1OCwgCi0gICAgMzE5NjYsIDMxOTcyLCAzMTk3OCwgMzE5ODQsIDMxOTk1LCAzMjAwMCwgMzIwMDcsIDMyMDE0LCAzMjAyMSwgMzIwMjksIAotICAgIDMyMDM4LCAzMjA0NywgMzIwNTMsIDMyMDU5LCAzMjA2NywgMzEwNzksIDMyMDcyLCAzMjA3OCwgMzIwODQsIDMxMDg1LCAKLSAgICAzMjA4OSwgMzIwOTQsIDMyMTAyLCAzMjExMCwgMzIxMTYsIDMyMTIzLCAzMjEyOSwgMzIxMzYsIDMyMTQzLCAzMjE0OSwgCi0gICAgMzIxNTcsIDMyMTY3LCAzMjE3NCwgMzIxNzksIDMyMTg1LCAzMjE5MCwgMzIxOTUsIDMyMjAyLCAzMjIxMSwgMzIyMTksIAotICAgIDMyMjI0LCAzMjIzMCwgMzIyMzcsIDMyMjQ1LCAzMjI1MSwgMzIyNTYsIDMyMjYyLCAzMjI3MSwgMjc5MzYsIDMyMjc4LCAKLSAgICAzMjI4MiwgMzIyODcsIDMyMjk2LCAzMjMwMSwgMzIzMDYsIDMyMzExLCAxMjM5OCwgMzIzMTksIDMyMzI0LCAzMjMyOSwgCi0gICAgMzIzMzQsIDMyMzM4LCAzMjM0MywgMzIzNDgsIDMyMzU1LCAzMjM2MCwgMzIzNjUsIDMyMzcwLCAzMTA5MCwgMjEyMDMsIAotICAgIDMyMzc2LCAyNTE5LCAyNDQsIDMyMzc5LCAzMjM4MiwgMzIzODYsIDMyMzkwLCAzMjQwMCwgMzI0MDgsIDMyNDEyLCAzMjQxOSwgCi0gICAgMzI0MjYsIDMyNDMwLCAzMjQzMywgMzI0MzksIDMyNDQ3LCAzMjQ1NSwgMzI0NTksIDMyNDYzLCAzMjQ2NiwgMzI0NzMsIAotICAgIDMyNDc3LCAzMjQ4MSwgMzI0ODgsIDMyNDk2LCAzMTAyNiwgMzI1MDMsIDMyNTExLCAxMDE1MSwgNjYwLCAzMDgsIDMyNTIzLCAKLSAgICAzMjUyOCwgMzI1MzMsIDMyNTM5LCAzMjU0NCwgMzI1NDksIDM3MDQsIDMyNTU0LCAzMjU1NywgMzI1NjIsIDMyNTY3LCAKLSAgICAzMjU3MiwgMzI1NzcsIDMyNTgyLCAzMjU4OSwgMjI1MTIsIDMyNTk0LCAzMjU5OSwgMzI2MDQsIDMyNjA5LCAzMjYxNCwgCi0gICAgMzI2MjAsIDMyNjI1LCAzMjYzMSwgMzEyNjEsIDMyNjM3LCAzMjY0MiwgMzI2NDgsIDMyNjU0LCAzMjY2NCwgMzI2NjksIAotICAgIDMyNjc0LCAzMjY3OCwgMzI2ODMsIDMyNjg4LCAzMjY5MywgMzI2OTgsIDMyNzExLCAzMjcxNiwgMjIyODksIDE2NjkyLCAKLSAgICAzNzEwLCAzMjcyMCwgMzI3MjUsIDMyNzMwLCAzMjczNiwgMzI3NDEsIDMyNzQ2LCAzMjc1MCwgMzI3NTUsIDMyNzYwLCAKLSAgICAzMjc2NiwgMzI3NzEsIDMyNzc2LCAxMzgyLCAzMjc4MCwgMzI3ODUsIDMyNzkwLCAzMjc5NSwgMzI3OTksIDMyODA0LCAKLSAgICAzMjgwOSwgMzI4MTQsIDMyODIwLCAzMjgyNiwgMzI4MzEsIDMyODM1LCAzMjgzOSwgMzI4NDQsIDMyODQ5LCAzMjg1NCwgCi0gICAgMzI4NTgsIDMyODY2LCAzMjg3MCwgMzI4NzYsIDMyODgwLCAzMjg4NywgMTY0ODUsIDMxMDM3LCAzMjg5MywgMzI5MDAsIAotICAgIDMyOTA4LCAzMjkxNSwgMzI5MjEsIDMyOTM0LCAzMjk0NiwgMzI5NTIsIDMyOTU2LCAyNzczLCAzMjk2MCwgMzI5NjQsIAotICAgIDMyNDY4LCAzMjk3MywgMzI5ODQsIDMyOTg5LCAzMjk5NCwgMzI5OTksIDMzMDAzLCAzMzAwOCwgMjI0MjIsIDMzMDEyLCAKLSAgICAzMzAxNiwgMzMwMjEsIDMxMDQzLCAyMTI4NywgMzMwMjUsIDMzMDMwLCAzMzAzNiwgMzMwNDEsIDMzMDQ1LCAzMzA0OSwgCi0gICAgMzMwNTIsIDMzMDU2LCAzMzA2MiwgMzMwNzMsIDMzMDg1LCAzMTA0OSwgMzMwOTAsIDMzMDkzLCAzMzA5NywgMzQ3LCAKLSAgICAzMzEwMiwgMzMxMDcsIDMzMTEyLCAzMzExNywgMzMxMjIsIDMzMTI3LCAzMzEzMywgMzMxMzgsIDMzMTQzLCAzMzE0OSwgCi0gICAgMzMxNTQsIDMzMTYwLCAzMzE2NSwgMzMxNzEsIDMzMTc2LCAzMzE4MSwgMzMxODYsIDMzMTkxLCAzMzE5NiwgMzMyMDEsIAotICAgIDMzMjA2LCAzMzIxMSwgMzMyMTcsIDMzMjIyLCAzMzIyNywgMzMyMzIsIDMzMjM3LCAzMzI0MiwgMzMyNDcsIDMzMjUyLCAKLSAgICAzMzI1OCwgMzMyNjQsIDMzMjY5LCAzMzI3NCwgMzMyNzksIDMzMjg0LCAzMzI4OSwgMzMyOTQsIDMzMjk5LCAzMzMwNCwgCi0gICAgMzMzMDksIDMzMzE0LCAzMzMxOSwgMzMzMjQsIDMzMzI5LCAzMzMzNCwgMzMzMzksIDMzMzQ0LCAzMzM0OSwgMzMzNTQsIAotICAgIDMzMzYwLCAzMTMsIDI2LCAzMzM2NSwgMzMzNjksIDMzMzczLCAzMzM4MSwgMzMzODUsIDMzMzg5LCAzMzM5MiwgMzMzOTUsIAotICAgIDMzMzk3LCAzMzQwMiwgMzM0MDYsIDMzNDExLCAzMzQxNSwgMzM0MjAsIDMzNDI0LCAzMzQyOSwgMzM0MzMsIDMzNDM2LCAKLSAgICAzMzQzOCwgMzM0NDIsIDMzNDQ3LCAzMzQ1MSwgMzM0NjIsIDMzNDY1LCAzMzQ2NywgMzM0NzEsIDMzNDgzLCAzMzQ5MiwgCi0gICAgMzM0OTYsIDMzNTAwLCAzMzUwNiwgMzM1MTEsIDMzNTIwLCAzMzUyNiwgMzM1MzEsIDMzNTM2LCAzMzU0MCwgMzM1NDUsIAotICAgIDMzNTUyLCAzMzU1NywgMzM1NjMsIDMzNTY4LCAzMzU3MiwgMzM1NzksIDI1NzAxLCAyNTcxMSwgMzM1ODMsIDMzNTg4LCAKLSAgICAzMzU5MywgMzM1OTgsIDMzNjA1LCAzMzYwOSwgMzM2MTYsIDgxMTMsIDMzNjIyLCAzMzYzMSwgMzM2MzksIDMzNjU0LCAKLSAgICAzMzY2OCwgMzM2NzYsIDMzNjg3LCAzMzY5NiwgMzM3MDEsIDcyMjcsIDMzNzExLCAzMzcxNiwgMzM3MjEsIDMzNzI1LCAKLSAgICAzMzcyOCwgMzM3MzIsIDMzNzM3LCAzMzc0MSwgMzM3NDgsIDMzNzUzLCAzMzc1OCwgODkxMiwgMzM3NjgsIDMzNzcwLCAKLSAgICAzMzc3MywgMzM3NzcsIDMzNzgzLCAzMzc4NywgMzM3OTIsIDMzNzk3LCAzMzgwMywgMzM4MDgsIDMzODE0LCAzMzgxOSwgCi0gICAgMzM4MjksIDMzODM4LCAzMzg0NiwgMzM4NTEsIDMzODU3LCAzMzg2MiwgMzM4NjksIDMzODczLCAzMzg4MSwgMzM4ODgsIAotICAgIDMzOTAxLCAzMzkwOSwgMzM5MTMsIDMzOTIzLCAzMzkyOCwgMzM5MzIsIDMzOTQwLCAzMzk0OCwgMzM5NTIsIDMzOTYxLCAKLSAgICAzMzk2NywgMzM5NzIsIDMzOTgwLCAzMzk5MCwgMzM5OTksIDM0MDA4LCAzNDAxNywgMzQwMjgsIDM0MDM2LCAzNDA0NywgCi0gICAgMzQwNTYsIDM0MDYzLCAzNDA2OSwgMzQwNzQsIDM0MDg1LCAzNDA5MCwgMzQwOTQsIDM0MDk3LCAzNDEwMSwgMzQxMDksIAotICAgIDM0MTE1LCAzNDEyMywgMzQxMzAsIDM0MTM2LCAzNDE0MSwgMzQxNDcsIDI0MTgsIDM0MTUxLCAzNDE1MywgMzQxNTgsIAotICAgIDM0MTYzLCAzNDE2OCwgMzQxNzEsIDM0MTczLCAzNDE3NywgMzQxODAsIDM0MTg3LCAzNDE5MSwgOTg4NCwgMzQxOTUsIAotICAgIDM0MjAxLCAzNDIxMSwgMzQyMTYsIDM0MjIyLCAzNDIyNiwgMzQyMzEsIDM0MjQ0LCAyNjA4NywgMzQyNTAsIDM0MjU5LCAKLSAgICAxNzQ2MiwgMzQyNjYsIDM0Mjc1LCAzMTY0NywgMzQyODMsIDM0Mjg4LCAzNDI5MiwgMzQzMDAsIDM0MzA3LCAzNDMxMiwgCi0gICAgMzQzMTYsIDM0MzIxLCAzNDMyNSwgMzQzMzMsIDM0MzM5LCAzNDM0NSwgMzQzNTAsIDM0MzU0LCAzNDM1NywgMzQzNjIsIAotICAgIDM0Mzc1LCAzNDM5MSwgMjI5NzksIDM0NDA4LCAzNDQyMCwgMzQ0MzcsIDM0NDQ5LCAzNDQ2MywgMjI5OTYsIDIzMDE1LCAKLSAgICAzNDQ3NSwgMzQ0ODcsIDI2ODAsIDM0NTAxLCAzNDUwNiwgMzQ1MTEsIDM0NTE2LCAzNDUyMCwgMzQ1MjcsIDM0NTM5LCAKLSAgICAzNDU0NSwgMzQ1NDgsIDM0NTU5LCAzNDU3MCwgMzQ1NzUsIDMyMDY0LCA2OTUsIDM0NTc5LCAzNDU4MywgMzQ1ODcsIAotICAgIDM0NTkwLCAzNDU5NSwgMzQ2MDAsIDM0NjA2LCAzNDYxMSwgMzQ2MTYsIDM0NjIyLCAzNDYyOCwgMzQ2MzMsIDM0NjM3LCAKLSAgICAzNDY0MiwgMzQ2NDcsIDM0NjUyLCAzNDY1NiwgMzQ2NTksIDM0NjY1LCAzNDY3MCwgMzQ2NzUsIDM0NjgwLCAzNDY4NCwgCi0gICAgMzQ2ODksIDM0Njk1LCAzNDcwMywgMjYzMjAsIDM0NzA4LCAzNDcxMywgMzQ3MjAsIDM0NzI2LCAzNDczMiwgMzQ3MzcsIAotICAgIDM0NzQ1LCAyMjUyMSwgMzQ3NTIsIDM0NzU3LCAzNDc2MiwgMzQ3NjcsIDM0NzcxLCAzNDc3NCwgMzQ3NzksIDM0NzgzLCAKLSAgICAzNDc4NywgMzQ3OTQsIDM0ODAwLCAzNDgwNiwgMzQ4MTIsIDM0ODE5LCAzNDgyNCwgMzQ4MzAsIDMzOTQzLCAzNDgzNCwgCi0gICAgMzQ4MzgsIDM0ODQzLCAzNDg1NiwgMzQ4NjEsIDM0ODY3LCAzNDg3NSwgMzQ4ODIsIDM0ODkwLCAzNDkwMCwgMzQ5MDYsIAotICAgIDM0OTEyLCAzNDkxOCwgMzQ5MjIsIDM0OTMxLCAzNDkzOSwgMzQ5NDYsIDM0OTUxLCAzNDk1NiwgMTA0MzcsIDM0OTYxLCAKLSAgICAzNDk2OSwgMzQ5NzYsIDM0OTgyLCAzNDk5MiwgMzQ5OTcsIDM1MDAzLCAzNTAxMSwgMzYwOCwgMzUwMTgsIDM1MDI1LCAKLSAgICAzNjE0LCAzNTAyOSwgMzUwMzQsIDM1MDQ1LCAzNTA1MiwgMzUwNTgsIDM1MDY3LCAzNTA3MSwgNDAxNSwgMzUwNzQsIAotICAgIDM1MDgxLCAzNTA4NywgMzUwOTMsIDM1MTAxLCAzNTExMSwgMjkwNDIsIDM1MTE4LCAzNTEyNiwgMzUxMzEsIDM1MTM3LCAKLSAgICAzNTE0MiwgMjU5NDcsIDM1MTQ4LCAzNTE1NSwgMzUxNjEsIDM1MTcwLCAyMzY2MCwgMzUxNzcsIDM1MTgyLCAzNTE4NiwgCi0gICAgMzUxOTQsIDM1MjAyLCA5NjAwLCA1ODk1LCAzNTIwOSwgMzUyMTMsIDM1MjE1LCAzNTIxOSwgMzUyMjQsIDM1MjI2LCAKLSAgICAzNTIzMiwgMzUyMzcsIDM1MjQyLCAzNTI0OSwgMzI1ODUsIDM1MjU1LCAzNTI2MCwgMzUyNjQsIDM1MjY5LCAzNTI3MywgCi0gICAgMzUyODIsIDM1Mjg2LCAzNTI5MiwgMzUyOTksIDM1MzA1LCAzNTMxMiwgMzUzMTcsIDM1MzI2LCAzNTMzMSwgMzUzMzUsIAotICAgIDM1MzQwLCAzNTM0NywgMzUzNTUsIDM1MzYzLCAzNTM2OCwgMjEzNDMsIDM1MzcyLCAzNTM3NSwgMzUzNzksIDM1MzgzLCAKLSAgICAzNTM4NywgMzUzOTAsIDM1MzkyLCAzNTQwMCwgMzU0MDQsIDM1NDExLCAzNTQxNSwgMzU0MTksIDM1NDI3LCAzNTQzNCwgCi0gICAgMzU0NDQsIDM1NDQ4LCAzNTQ1MiwgMzU0NjAsIDM1NDY4LCAzNTQ3NCwgMzU0NzksIDM1NDg4LCAxMzM1MCwgMzU0OTQsIAotICAgIDM1NTAzLCAzNTUwOCwgMzU1MTUsIDM1NTIzLCAzNTUzMSwgMzU1MzksIDM1NTQ2LCAzNTU1MywgMzU1NjAsIDM1NTY3LCAKLSAgICAzNTU3NCwgMzU1NzksIDM1NTg1LCAzNTYwMiwgMzU2MTAsIDM1NjIwLCAzNTYyOCwgMzU2MzUsIDQwNywgMzU2MzksIAotICAgIDM1NjQ1LCAzNTY0OSwgMzU2NTQsIDMzNjkyLCAzNTY2MCwgMzU2NjMsIDM1NjY3LCAzNTY3NSwgMzYxOSwgMzU2ODMsIAotICAgIDM1Njg5LCAzNTY5NSwgMzU3MDQsIDM1NzE0LCAzNTcyMSwgMzU3MjcsIDM2MjUsIDM2MzEsIDM1NzM2LCAzNTc0MywgCi0gICAgMzU3NTEsIDM1NzU2LCAzNTc2MCwgMzU3NjcsIDM1Nzc1LCAzNTc4MiwgMzU3ODgsIDM1Nzk3LCAzNTgwNywgMzU4MTMsIAotICAgIDM1ODIxLCAzNTgzMCwgMzU4MzcsIDM1ODQ1LCAzNTg1MiwgMjIwMTksIDM1ODU2LCAzNTg2MywgMzU4NjksIDM1ODc5LCAKLSAgICAzNTg4OCwgMzU4OTksIDM1OTAzLCAzNTkxMywgMzU5MTksIDM1OTI2LCAzNTkzNCwgMzU5NDMsIDM1OTUyLCAzNTk2MiwgCi0gICAgMzU5NzMsIDM1OTgwLCAzNTk4NSwgMzU5OTIsIDMwMjksIDM2MDAwLCAzNjAwNiwgMzYwMTEsIDM2MDE3LCAzNjAyMywgCi0gICAgMzYwMjgsIDM2MDQxLCAzNjA1NCwgMzYwNjcsIDM2MDc0LCAzNjA4MCwgMzYwODgsIDM2MDk2LCAzNjEwMSwgMzYxMDUsIAotICAgIDE0NjksIDM2MTA5LCAzNjExNCwgMzYxMTksIDM2MTI0LCAzNjEyOSwgMzYxMzUsIDM2MTQwLCAzNjE0NSwgMzYxNTAsIAotICAgIDM2MTU1LCAzNjE2MCwgMzYxNjUsIDM2MTcwLCAzNjE3NiwgMzYxODIsIDM2MTg3LCAzNjE5MiwgMzYxOTgsIDM2MjAzLCAKLSAgICAzNjIwOCwgMzYyMTMsIDM2MjE5LCAzNjIyNCwgMzYyMjksIDM2MjM0LCAzNjIzOSwgMzYyNDUsIDM2MjUwLCAzNjI1NSwgCi0gICAgMzYyNjEsIDM2MjY2LCAzNjI3MSwgMzYyNzYsIDM2MjgxLCAzNjI4NiwgMzYyOTIsIDM2Mjk3LCAzNjMwMywgMzYzMDgsIAotICAgIDM2MzE0LCAzNjMxOSwgMzYzMjQsIDM2MzI5LCAzNjMzNSwgMzYzNDEsIDM2MzQ3LCAzNjM1MywgMzYzNTksIDM2MzY1LCAKLSAgICAzNjM3MSwgMzYzNzcsIDM2MzgyLCAzNjM4NywgMzYzOTMsIDM2Mzk4LCAzNjQwMywgMzY0MDgsIDM2NDEzLCAzNjQxOCwgCi0gICAgMzY0MjMsIDM2NDI4LCAzNjQzNCwgMzY0MzksIDM2NDQ0LCAzNjQ1MCwgMzY0NTYsIDEwMSwgMzY0NjEsIDM2NDYzLCAKLSAgICAzNjQ2NywgMzY0NzEsIDM2NDc1LCAzNjQ4MCwgMzY0ODQsIDk1MjEsIDM2NDg4LCAzNjQ5NCwgMTc0MSwgNjI4MCwgMzY1MDAsIAotICAgIDM2NTAzLCAzNjUwOCwgMzY1MTIsIDM2NTE3LCAzNjUyMSwgMzY1MjUsIDM2NTMwLCAxMDIzOCwgMzY1MzQsIDM2NTM4LCAKLSAgICAzNjU0MiwgMzY1NDYsIDE1MzcyLCAzNjU1MSwgMzY1NTUsIDM2NTYwLCAzNjU2NSwgMzY1NzAsIDM2NTc0LCAzNjU4MSwgCi0gICAgMjYxMTEsIDM2NTg3LCAzNjU5MCwgMzY1OTQsIDM2NTk5LCAzNjYwNSwgMzY2MDksIDM2NjE3LCAzNjYyMywgMzY2MjgsIAotICAgIDM2NjMyLCAzNjYzOCwgMzY2NDIsIDM2NjQ2LCAzNDYyLCAzNDY3LCAyOTIzNCwgMzY2NDksIDM2NjUzLCAzNjY1NywgCi0gICAgMzY2NjEsIDM2NjY5LCAzNjY3NiwgMzY2ODAsIDM2Njg3LCAzNjY5MiwgMzE3LCAzNjY5NywgMzY3MDEsIDM2NzA3LCAKLSAgICAzNjcxOSwgMzY3MjUsIDM2NzMxLCAzNjczNSwgMzY3NDEsIDM2NzUwLCAzNjc1NCwgMzY3NTgsIDM2NzYzLCAzNjc2OSwgCi0gICAgMzY3NzQsIDM2Nzc4LCAzNjc4MywgMzY3ODcsIDM2NzkxLCAzNjc5OCwgMzY4MDQsIDM2ODA5LCAzNjgyNCwgMzY4MzksIAotICAgIDM2ODU0LCAzNjg3MCwgMzY4ODgsIDEwMTg4LCAzNjkwMiwgMzY5MDksIDM2OTEzLCAzNjkxNiwgMzY5MjUsIDM2OTMwLCAKLSAgICAzNjkzNCwgMzY5NDIsIDMzODk0LCAzNjk1MCwgMzY5NTQsIDM2OTY0LCAzNjk3NSwgMjkyMDQsIDM2OTg4LCAzNjk5MiwgCi0gICAgMzcwMDEsIDM3MDA5LCA5Nzc4LCAxNDkwMCwgMzcwMTMsIDIyNDM0LCAzNzAxNiwgMzAxNTIsIDM3MDIxLCA5Nzc3LCAKLSAgICAzNzAyNiwgMzcwMzIsIDM3MDM3LCAzNzA0MywgMzcwNDgsIDM3MDU0LCAzNzA1OSwgMzcwNjUsIDM3MDcwLCAzNzA3NiwgCi0gICAgMzcwODIsIDM3MDg4LCAzNzA5MywgMzcwNDksIDM3MDU1LCAzNzA2MCwgMzcwNjYsIDM3MDcxLCAzNzA3NywgMzcwODMsIAotICAgIDgxMjYsIDM4NzQsIDM3MDk3LCAzNzEwNSwgMzcxMDksIDM3MTEyLCAzNzExNiwgMzcxMjEsIDM3MTI2LCAzNzEzMiwgCi0gICAgMzcxMzgsIDM3MTQzLCAzNzE0NywgMjU5NTksIDM3MTUxLCAzNzE1NSwgMzcxNjEsIDM3MTY1LCA5MDQyLCAzNzE3NCwgCi0gICAgMzcxODEsIDM3MTg1LCAxMTg2OCwgMzcxOTIsIDM3MTk4LCAzNzIwMywgMzcyMTAsIDM3MjE3LCAzNzIyNCwgMjg1NTAsIAotICAgIDgwNDksIDM3MjMxLCAzNzIzOCwgMzcyNDUsIDM3MjUxLCAzNzI1NiwgMzcyNjMsIDM3Mjc0LCAzNzI4MCwgMzcyODUsIAotICAgIDM3MjkwLCAzNzI5NSwgMzczMDIsIDM3MDUwLCAzNzMwNiwgMzczMTYsIDM3MzI3LCAzNzMzMywgMzczMzgsIDM3MzQzLCAKLSAgICAzNzM0OCwgMzczNTMsIDM3MzU4LCAzNzM2MiwgMzczNjYsIDM3MzcyLCAzNzM4MCwgMjMxOSwgODY1LCAxMDI1NCwgMTAyNjYsIAotICAgIDEwMjcxLCAxMDI3NywgMzczODksIDEwMjgyLCAxMDI4NywgMTAyOTMsIDM3Mzk0LCAzNzQwNCwgMzc0MDgsIDEwMjk4LCAKLSAgICAzNzQxMywgMTY4OTAsIDM3NDE2LCAzNzQyMSwgMzc0MjUsIDM3NDMwLCAzNzQzNSwgMzc0NDIsIDM3NDQ5LCAzNzQ1MywgCi0gICAgMzc0NTYsIDM3NDY0LCAxMDIwMSwgMzc0NzEsIDM3NDc0LCAzNzQ4MCwgMzc0OTAsIDU5MjksIDM3NDk5LCAzNzUwMywgCi0gICAgMzc1MTEsIDM3NTE1LCAzNzUyNSwgMzc1MzEsIDM3NTQyLCAzNzU0OCwgMzc1NTQsIDM3NTU5LCAzNzU2NSwgMzc1NzEsIAotICAgIDM3NTc3LCAzNzU4MiwgMzc1ODUsIDM3NTkyLCAzNzU5OCwgMzc2MDMsIDM3NjEwLCAzNzYxNywgMzc2MjEsIDM3NjMxLCAKLSAgICAzNzY0NCwgMzc2NTMsIDM3NjYyLCAzNzY3MywgMzc2ODYsIDM3Njk3LCAzNzcwNiwgMzc3MTcsIDM3NzIyLCAzNzczMSwgCi0gICAgMzc3MzYsIDEwMzAzLCAzNzc0MiwgMzc3NDksIDM3NzU3LCAzNzc2MiwgMzc3NjYsIDM3NzczLCAzNzc4MCwgMzgyOSwgMTYsIAotICAgIDM3Nzg0LCAzNzc4OSwgMTY3NDQsIDM3NzkzLCAzNzc5NiwgMzc3OTksIDI4MDU2LCAzNzgwMywgMjg1NTksIDM3ODExLCAKLSAgICAzNzgxNSwgMzc4MTksIDM3ODIyLCAzNzgyOCwgMzcwNzIsIDM3ODM0LCAzNzg0MiwgMzc4NDgsIDM3ODU1LCAyODAzOSwgCi0gICAgMzc4NTksIDI4MjMzLCAzNzg2MywgMzc4NzIsIDM3ODc4LCAzNzg4NCwgMzc4ODksIDM3ODkzLCAzNzg5OSwgMzc5MDMsIAotICAgIDM3OTExLCAzNzkxOSwgMjYxNzcsIDM3OTI1LCAzNzkzMiwgMzc5MzgsIDM3OTQzLCAzNzk0OCwgMzc5NTIsIDM3OTU4LCAKLSAgICAzNzk2MywgMzc5NjksIDQwNTYsIDc5MSwgMzc5NzYsIDM3OTgwLCAzNzk4MywgMTUyNjIsIDM3OTk1LCAzNTgyNiwgMzgwMDYsIAotICAgIDM4MDA5LCAzODAxNiwgMzgwMjAsIDM4MDI2LCAzODAzMCwgMzgwMzYsIDM4MDQxLCAzODA0NywgMzgwNTIsIDM4MDU3LCAKLSAgICAzODA2MSwgMzgwNjUsIDM4MDcwLCAzODA3NSwgMzgwODUsIDM4MDkxLCAzODEwNCwgMzgxMTAsIDM4MTE2LCAzODEyMywgCi0gICAgMzgxMjgsIDM4MTM0LCAzODEzOSwgMTY2MzAsIDE0NzIsIDEwMTksIDMxMTkzLCAzMTE5OSwgMzgxNDQsIDMxMjA1LCAKLSAgICAzMTIxOCwgMzEyMjQsIDMxMjMwLCAzODE1MCwgMzEyMzYsIDMxMjQyLCAzODE1NiwgMzgxNjIsIDIyLCAzODE3MCwgMzgxNzcsIAotICAgIDM4MTgxLCAzODE4NSwgMzgxOTMsIDMxOTUzLCAzODE5NywgMzgyMDEsIDM4MjA4LCAzODIxMywgMzgyMTcsIDM4MjIyLCAKLSAgICAzODIyOCwgMzgyMzMsIDM4MjM5LCAzODI0NCwgMzgyNDgsIDM4MjUyLCAzODI1NiwgMzgyNjEsIDM4MjY1LCAzODI3MCwgCi0gICAgMzgyNzQsIDM4MjgxLCAzODI4NiwgMzgyOTAsIDM4Mjk1LCAzODI5OSwgMzgzMDQsIDM4MzA4LCAzODMxMywgMzgzMTksIAotICAgIDE1NDgyLCAxNTQ4NywgMzgzMjQsIDM4MzI4LCAzODMzMSwgMzgzMzUsIDIxMTcwLCAzODM0MCwgMzgzNDQsIDM4MzUwLCAKLSAgICAzODM1NywgMzgzNjIsIDM4MzcyLCAzODM3NywgMzgzODUsIDM4Mzg5LCAzODM5MiwgMzE5NjgsIDM4Mzk2LCA0MTA5LCAKLSAgICAzODQwMSwgMzg0MDYsIDM4NDEwLCAzODQxNSwgMzg0MTksIDM4NDI0LCAxMzM2OCwgMzg0MzUsIDM4NDM5LCAzODQ0MiwgCi0gICAgMzg0NDcsIDM4NDUxLCAzODQ1NSwgMzg0NTgsIDM4NDYyLCA4MTQ1LCAxMzM4NCwgMzg0NjUsIDM4NDY4LCAzODQ3NCwgCi0gICAgMzg0NzksIDM4NDg1LCAzODQ5MCwgMzg0OTYsIDM4NTAxLCAzODUwNywgMzg1MTIsIDM4NTE4LCAzODUyNCwgMzg1MzAsIAotICAgIDM4NTM1LCAzODUzOSwgMzg1NDMsIDM4NTUyLCAzODU2OCwgMzg1ODQsIDM4NTk0LCAyNzk0NiwgMzg2MDEsIDM4NjA1LCAKLSAgICAzODYxMCwgMzg2MTUsIDM4NjE5LCAzODYyMywgMzU5NDcsIDM4NjI5LCAzODYzNCwgMzg2MzgsIDM4NjQ1LCAzODY1MCwgCi0gICAgMzg2NTQsIDM4NjU4LCAyNjk3OSwgMzg2NjQsIDIxNDM4LCAzODY2OSwgMzg2NzYsIDM4Njg0LCAzODY5MCwgMzg2OTcsIAotICAgIDM4NzA1LCAzODcxMSwgMzg3MTUsIDM4NzIxLCAzODcyOSwgMzg3MzMsIDM4NzQyLCA5NTAyLCAzODc1MCwgMzg3NTQsIAotICAgIDM4NzYyLCAzODc2OSwgMzg3NzQsIDM4Nzc5LCAzODc4MywgMzg3ODYsIDM4NzkwLCAzODc5MywgMzg3OTcsIDM4ODA0LCAKLSAgICAzODgwOSwgMzg4MTUsIDI2Mzk4LCAzMTI1NiwgMzg4MTksIDM4ODI2LCAzODgzMiwgMzg4MzgsIDM4ODQzLCAzODg0NiwgCi0gICAgMzg4NDgsIDM4ODU1LCAzODg2MiwgMzg4NjgsIDM4ODcyLCAzODg3NSwgMzg4NzksIDM4ODgzLCAzODg4NywgMzg4OTIsIAotICAgIDM4ODk2LCAzODkwMCwgMzg5MDMsIDM4OTA3LCAzODkyMSwgMjMwNDUsIDM4OTQwLCAzODk1MywgMzg5NjYsIDM4OTc5LCAKLSAgICAyMzA2MywgMzg5OTQsIDEwNDkwLCAzOTAwOSwgMzkwMTUsIDM5MDE5LCAzOTAyMywgMzkwMzAsIDM5MDM1LCAzOTAzOSwgCi0gICAgMzkwNDYsIDM5MDUyLCAzOTA1NywgMzkwNjMsIDM5MDczLCAzOTA4NSwgMzkwOTYsIDM5MTAxLCAzOTEwOCwgMzkxMTIsIAotICAgIDM5MTE2LCAzOTExOSwgMTU4NzgsIDM2NzcsIDM5MTI3LCAxNTUwOSwgMzkxNDAsIDM5MTQ3LCAzOTE1MSwgMzkxNTUsIAotICAgIDM5MTYwLCAzOTE2NSwgMzkxNzEsIDM5MTc1LCAzOTE3OSwgMzkxODIsIDc3NDIsIDE1NTIwLCAzOTE4NywgMzkxOTEsIAotICAgIDM5MTk3LCAzOTIwNiwgMzkyMTEsIDM5MjE4LCAzNTgwMywgMzkyMjQsIDM5MjI5LCAzOTIzMywgMzkyMzgsIDM5MjQ1LCAKLSAgICAzOTI0OSwgMzkyNTIsIDM5MjU2LCAzOTI2MSwgMTQ1NTIsIDM5MjY4LCAzOTI3NSwgMTA2NiwgMzkyNzksIDM5Mjg0LCAKLSAgICAzOTI4OSwgMzkyOTUsIDM5MzAwLCAzOTMwNSwgMzkzMDksIDM5MzE5LCAzOTMyNCwgMzkzMzAsIDM5MzM1LCAzOTM0MSwgCi0gICAgMzkzNDYsIDM5MzUyLCAzOTM2MiwgMzkzNjcsIDM5MzcyLCAzOTM3NiwgNzIyOSwgNzI0MSwgMzkzODEsIDM5Mzg0LCAKLSAgICAzOTM5MSwgMzkzOTcsIDM0MDU5LCAzNDA2NiwgMzk0MDYsIDM5NDEwLCAzMjAxNiwgMzk0MTgsIDM5NDI5LCAzOTQzNywgCi0gICAgMzU5OTUsIDM5NDQ0LCAzOTQ0OSwgMzk0NTQsIDM5NDY1LCAzOTQ3MiwgMzk0ODMsIDMyMDQwLCAyMTQ0NCwgMzk0OTEsIAotICAgIDczNSwgMzk0OTYsIDM5NTAyLCAyODAzMCwgMzk1MDgsIDM5NTEzLCAzOTUyMywgMzk1MzIsIDM5NTM5LCAzOTU0NSwgCi0gICAgMzk1NDksIDM5NTUyLCAzOTU1OSwgMzk1NjUsIDM5NTcyLCAzOTU3OCwgMzk1ODgsIDM5NTk2LCAzOTYwMiwgMzk2MDgsIAotICAgIDM5NjEzLCAzOTYxNywgMzk2MjQsIDM5NjMwLCAzOTYzNywgMzg4ODgsIDUzNSwgMTM4MDUsIDM5NjQzLCAzOTY0OCwgCi0gICAgMzk2NTEsIDM5NjU3LCAzOTY2NSwgMTM5NiwgMzk2NzAsIDM5Njc0LCAzOTY3OSwgMzk2ODYsIDM5NjkyLCAzOTY5NiwgCi0gICAgMzk3MDAsIDM5NzA1LCAzOTcxNCwgMzk3MjEsIDM5NzMxLCAzOTczNywgMjgwNzQsIDM5NzU0LCAzOTc2MywgMzk3NzEsIAotICAgIDM5Nzc3LCAzOTc4MiwgMzk3ODksIDM5Nzk1LCAzOTgwMywgMzk4MTIsIDM5ODIwLCAzOTgyNCwgMzk4MjksIDM5ODM3LCAKLSAgICAzMjA0OSwgMzk4NDMsIDM5ODYyLCAxNTgxMSwgMzk4NzYsIDM5ODkyLCAzOTkwNiwgMzk5MTIsIDM5OTE3LCAzOTkyMiwgCi0gICAgMzk5MjcsIDM5OTMzLCAzMjA1NSwgMzk5MzgsIDM5OTQ1LCAzOTk1MCwgMzk5NTQsIDM0NSwgMjkzNiwgMzk5NjEsIDM5OTY2LCAKLSAgICAzOTk3MSwgMjczMDUsIDM5NzkyLCAzOTk3NSwgMzk5ODAsIDM5OTg4LCAzOTk5MiwgMzk5OTUsIDQwMDAxLCA0MDAwNywgCi0gICAgNDAwMTEsIDI4MTI5LCA0MDAxNCwgNDAwMTksIDQwMDIzLCA0MDAyNiwgNDAwMzEsIDQwMDM1LCA0MDA0MCwgNDAwNDUsIAotICAgIDQwMDQ5LCA0MDA1NCwgNDAwNTgsIDQwMDYyLCAyMTE2NiwgMjExNzcsIDQwMDY2LCA0MDA3MSwgNDAwNzcsIDI2OTM2LCAKLSAgICA0MDA4MiwgNDAwODYsIDIxMjUzLCAxNjA1OSwgNDAwODksIDQwMDk0LCA0MDA5OSwgNDAxMDQsIDQwMTA5LCA0MDExNCwgCi0gICAgNDAxMTksIDQwMTI0LCA0NDcsIDQzLCAzMTI3NCwgMzEyNzksIDMxMjg0LCAzMTI5MCwgMzEyOTUsIDMxMzAwLCA0MDEyOSwgCi0gICAgMzEzMDQsIDQwMTMzLCA0MDEzNywgNDAxNDEsIDMxMzA5LCAzMTMxNSwgNDAxNTUsIDMxMzI2LCAzMTMzMSwgNDAxNjMsIAotICAgIDQwMTY4LCAzMTMzNywgNDAxNzMsIDQwMTc4LCA0MDE4MywgNDAxODgsIDQwMTk0LCA0MDIwMCwgNDAyMDYsIDMxMzU0LCAKLSAgICA0MDIxOSwgNDAyMjUsIDMxMzU4LCA0MDIyOSwgMzEzNjMsIDQwMjM0LCAzMTM2OCwgMzEzNzMsIDQwMjM3LCA0MDI0MiwgCi0gICAgNDAyNDYsIDMwOTIzLCA0MDI1MiwgMTM1OTIsIDQwMjU5LCA0MDI2NCwgMzEzNzgsIDQwMjY4LCA0MDI3MywgNDAyNzgsIAotICAgIDQwMjgzLCA0MDI4NywgNDAyOTIsIDQwMjk3LCA0MDMwMywgNDAzMDgsIDQwMzEzLCA0MDMxOSwgNDAzMjUsIDQwMzMwLCAKLSAgICA0MDMzNCwgNDAzMzksIDQwMzQ0LCA0MDM0OSwgNDAzNTMsIDQwMzU4LCA0MDM2MywgNDAzNjgsIDQwMzc0LCA0MDM4MCwgCi0gICAgNDAzODYsIDQwMzkxLCA0MDM5NSwgNDA0MDAsIDQwNDA0LCAzMTM4MiwgMzEzODcsIDMxMzkyLCA0MDQwOCwgNDA0MTIsIAotICAgIDQwNDE2LCAzMTM5NywgMzE0MDMsIDMxNDA5LCAzMTQyMSwgNDA0MjgsIDI1OTk2LCA0MDQzMiwgNDA0MzYsIDQwNDQxLCAKLSAgICA0MDQ0NiwgNDA0NTEsIDQwNDU2LCA0MDQ2MCwgNDA0NjQsIDQwNDc0LCA0MDQ3OSwgNDA0ODQsIDQwNDg4LCA0MDQ5MiwgCi0gICAgNDA0OTUsIDQwNTAzLCAzMTQ2OSwgNDA1MDgsIDE0NzksIDQwNTE0LCA0MDUyMiwgNDA1MzEsIDQwNTM1LCA0MDUzOSwgCi0gICAgNDA1NDcsIDQwNTUzLCA0MDU2MSwgNDA1NzcsIDQwNTgxLCA0MDU4NSwgNDA1OTAsIDQwNjA1LCAzMTUwNiwgMTc0OSwgCi0gICAgMTIwNDgsIDQwNjA5LCAxMzc4LCA0MDYyMSwgNDA2MjIsIDQwNjMwLCA0MDYzNywgNDA2NDIsIDQwNjQ5LCA0MDY1NCwgCi0gICAgOTM3MiwgMTExNCwgMTAzMjUsIDQwNjYxLCA0MDY2NiwgNDA2NjksIDQwNjcyLCA0MDY4MSwgMTI4NiwgNDA2ODYsIDM5MDM2LCAKLSAgICA0MDY5MywgNDA2OTgsIDIyNDg2LCAyNTU3LCA0MDcwMiwgMTA3MzQsIDQwNzEyLCA0MDcxOCwgMjMzNywgMjM0NywgNDA3MjcsIAotICAgIDQwNzM2LCA0MDc0NiwgNDA3NTcsIDMyOTMsIDM0MjEyLCAxMDM3NywgMzgwNywgMTY2NjgsIDEyOTEsIDQwNzYyLCA0MDc3MCwgCi0gICAgNDA3NzcsIDQwNzgyLCA0MDc4NiwgNDA3OTAsIDIzODU4LCAxMDQwNCwgNDA3OTgsIDQwODA3LCA0MDgxNiwgNDA4MjQsIAotICAgIDQwODMxLCA0MDg0MiwgNDA4NDcsIDQwODYwLCA0MDg3MywgNDA4ODUsIDQwODk3LCA0MDkwOSwgNDA5MjIsIDQwOTMzLCAKLSAgICA0MDk0NCwgNDA5NTQsIDQwOTYyLCA0MDk3MCwgNDA5ODIsIDQwOTk0LCA0MTAwNSwgNDEwMTQsIDQxMDIyLCA0MTAyOSwgCi0gICAgNDEwNDEsIDQxMDQ4LCA0MTA1NywgNDEwNjQsIDQxMDc3LCA0MTA4MiwgNDEwOTIsIDQxMDk3LCA0MTEwMywgNDExMDgsIAotICAgIDM3MTgyLCA0MTExMiwgNDExMTksIDQxMTIzLCA0MTEzMCwgNDExMzgsIDI1MTgsIDQxMTQ1LCA0MTE1NiwgNDExNjYsIAotICAgIDQxMTc1LCA0MTE4MywgNDExOTMsIDQxMjAxLCA0MTIxMSwgNDEyMjAsIDQxMjI1LCA0MTIzMSwgNDEyMzcsIDM3MDksIAotICAgIDQxMjQ4LCA0MTI1OCwgNDEyNjcsIDQxMjc2LCA0MTI4NiwgNDEyOTQsIDQxMzAzLCA0MTMwOCwgNDEzMTMsIDQxMzE4LCAKLSAgICAxNzA1LCAzNywgNDEzMjYsIDQxMzM0LCA0MTM0NSwgNDEzNTYsIDE2MzQzLCA0MTM2NiwgNDEzNzAsIDQxMzc3LCA0MTM4MywgCi0gICAgNDEzODgsIDQxMzkyLCA0MTQwMywgNDE0MTMsIDQxNDIyLCA0MTQzMywgMTY3MTcsIDE2NzIyLCA0MTQzOCwgNDE0NDcsIAotICAgIDQxNDUyLCA0MTQ2MiwgNDE0NjcsIDQxNDc1LCA0MTQ4MywgNDE0OTAsIDQxNDk2LCA3MDc4LCAyMjgsIDQxNTAwLCA0MTUwNiwgCi0gICAgNDE1MTEsIDQxNTE0LCAyMTE3LCAzOTE1MiwgNDE1MjIsIDQxNTI2LCA0MTUyOSwgMTUxMiwgNDE1MzUsIDEzOTY3LCAxMjk2LCAKLSAgICA0MTU0MCwgNDE1NTMsIDQxNTY3LCAyNjQzLCA0MTU4NSwgNDE1OTcsIDQxNjA5LCAyNjU3LCAyNjc0LCA0MTYyMywgNDE2MzYsIAotICAgIDI2ODksIDQxNjUwLCA0MTY2MiwgMjcwNCwgNDE2NzYsIDEzMDIsIDEzMDgsIDEzMTQsIDEwNjUyLCA0MTY4MSwgNDE2ODYsIAotICAgIDQxNjkxLCA0MTY5NSwgNDE3MTAsIDQxNzI1LCA0MTc0MCwgNDE3NTUsIDQxNzcwLCA0MTc4NSwgNDE4MDAsIDQxODE1LCAKLSAgICA0MTgzMCwgNDE4NDUsIDQxODYwLCA0MTg3NSwgNDE4OTAsIDQxOTA1LCA0MTkyMCwgNDE5MzUsIDQxOTUwLCA0MTk2NSwgCi0gICAgNDE5ODAsIDQxOTk1LCA0MjAxMCwgNDIwMjUsIDQyMDQwLCA0MjA1NSwgNDIwNzAsIDQyMDg1LCA0MjEwMCwgNDIxMTUsIAotICAgIDQyMTMwLCA0MjE0NSwgNDIxNjAsIDQyMTc1LCA0MjE5MCwgNDIyMDUsIDQyMjIwLCA0MjIzNSwgNDIyNTAsIDQyMjY1LCAKLSAgICA0MjI4MCwgNDIyOTUsIDQyMzEwLCA0MjMyNSwgNDIzNDAsIDQyMzU1LCA0MjM3MCwgNDIzODUsIDQyNDAwLCA0MjQxNSwgCi0gICAgNDI0MzAsIDQyNDQ1LCA0MjQ2MCwgNDI0NzUsIDQyNDkwLCA0MjUwNSwgNDI1MjAsIDQyNTM1LCA0MjU1MCwgNDI1NjUsIAotICAgIDQyNTgwLCA0MjU5NSwgNDI2MTAsIDQyNjI1LCA0MjY0MCwgNDI2NTUsIDQyNjcwLCA0MjY4NSwgNDI3MDAsIDQyNzE1LCAKLSAgICA0MjczMCwgNDI3NDUsIDQyNzYwLCA0Mjc3NSwgNDI3OTAsIDQyODA1LCA0MjgyMCwgNDI4MzUsIDQyODUwLCA0Mjg2NSwgCi0gICAgNDI4ODAsIDQyODk1LCA0MjkxMCwgNDI5MjUsIDQyOTQwLCA0Mjk1NSwgNDI5NzAsIDQyOTg1LCA0MzAwMCwgNDMwMTUsIAotICAgIDQzMDMwLCA0MzA0NSwgNDMwNjAsIDQzMDc1LCA0MzA5MCwgNDMxMDUsIDQzMTIwLCA0MzEzNSwgNDMxNTAsIDQzMTY1LCAKLSAgICA0MzE4MCwgNDMxOTUsIDQzMjEwLCA0MzIyNSwgNDMyNDAsIDQzMjU1LCA0MzI3MCwgNDMyODUsIDQzMzAwLCA0MzMxNSwgCi0gICAgNDMzMzAsIDQzMzQ1LCA0MzM2MCwgNDMzNzUsIDQzMzkwLCA0MzQwNSwgNDM0MjAsIDQzNDM1LCA0MzQ1MCwgNDM0NjUsIAotICAgIDQzNDgwLCA0MzQ5NSwgNDM1MTAsIDQzNTI1LCA0MzU0MCwgNDM1NTUsIDQzNTcwLCA0MzU4NSwgNDM2MDAsIDQzNjE1LCAKLSAgICA0MzYzMCwgNDM2NDUsIDQzNjYwLCA0MzY3NSwgNDM2OTAsIDQzNzA1LCA0MzcyMCwgNDM3MzUsIDQzNzUwLCA0Mzc2NSwgCi0gICAgNDM3ODAsIDQzNzk1LCA0MzgxMCwgNDM4MjUsIDQzODQwLCA0Mzg1NSwgNDM4NzAsIDQzODg1LCA0MzkwMCwgNDM5MTUsIAotICAgIDQzOTMwLCA0Mzk0NSwgNDM5NjAsIDQzOTc1LCA0Mzk5MCwgNDQwMDUsIDQ0MDIwLCA0NDAzNSwgNDQwNTAsIDQ0MDY1LCAKLSAgICA0NDA4MCwgNDQwOTUsIDQ0MTEwLCA0NDEyNSwgNDQxNDAsIDQ0MTU1LCA0NDE3MCwgNDQxODUsIDQ0MjAwLCA0NDIxNSwgCi0gICAgNDQyMzAsIDQ0MjQ1LCA0NDI2MCwgNDQyNzUsIDQ0MjkwLCA0NDMwNSwgNDQzMjAsIDQ0MzM1LCA0NDM1MCwgNDQzNjUsIAotICAgIDQ0MzgwLCA0NDM5NSwgNDQ0MTAsIDQ0NDI1LCA0NDQ0MCwgNDQ0NTUsIDQ0NDcwLCA0NDQ4NSwgNDQ1MDAsIDQ0NTE1LCAKLSAgICA0NDUzMCwgNDQ1NDUsIDQ0NTYwLCA0NDU3NSwgNDQ1OTAsIDQ0NjA1LCA0NDYyMCwgNDQ2MzUsIDQ0NjUwLCA0NDY2NSwgCi0gICAgNDQ2ODAsIDQ0Njk1LCA0NDcxMCwgNDQ3MjUsIDQ0NzQwLCA0NDc1NSwgNDQ3NzAsIDQ0Nzg1LCA0NDgwMCwgNDQ4MTUsIAotICAgIDQ0ODMwLCA0NDg0NSwgNDQ4NjAsIDQ0ODc1LCA0NDg5MCwgNDQ5MDUsIDQ0OTIwLCA0NDkzNSwgNDQ5NTAsIDQ0OTY1LCAKLSAgICA0NDk4MCwgNDQ5OTUsIDQ1MDEwLCA0NTAyNSwgNDUwNDAsIDQ1MDU1LCA0NTA3MCwgNDUwODUsIDQ1MTAwLCA0NTExNSwgCi0gICAgNDUxMzAsIDQ1MTQ1LCA0NTE2MCwgNDUxNzUsIDQ1MTkwLCA0NTIwNSwgNDUyMjAsIDQ1MjM1LCA0NTI1MCwgNDUyNjUsIAotICAgIDQ1MjgwLCA0NTI5NSwgNDUzMTAsIDQ1MzI1LCA0NTM0MCwgNDUzNTUsIDQ1MzcwLCA0NTM4NSwgNDU0MDAsIDQ1NDE1LCAKLSAgICA0NTQzMCwgNDU0NDUsIDQ1NDYwLCA0NTQ3NSwgNDU0OTAsIDQ1NTA1LCA0NTUyMCwgNDU1MzUsIDQ1NTUwLCA0NTU2NSwgCi0gICAgNDU1ODAsIDQ1NTk1LCA0NTYxMCwgNDU2MjUsIDQ1NjQwLCA0NTY1NSwgNDU2NzAsIDQ1Njg1LCA0NTcwMCwgNDU3MTUsIAotICAgIDQ1NzMwLCA0NTc0NSwgNDU3NjAsIDQ1Nzc1LCA0NTc5MCwgNDU4MDUsIDQ1ODIwLCA0NTgzNSwgNDU4NTAsIDQ1ODY1LCAKLSAgICA0NTg4MCwgNDU4OTUsIDQ1OTEwLCA0NTkyNSwgNDU5NDAsIDQ1OTU1LCA0NTk3MCwgNDU5ODUsIDQ2MDAwLCA0NjAxNSwgCi0gICAgNDYwMzAsIDQ2MDQ1LCA0NjA2MCwgNDYwNzUsIDQ2MDkwLCA0NjEwNSwgNDYxMjAsIDQ2MTM1LCA0NjE1MCwgNDYxNjUsIAotICAgIDQ2MTgwLCA0NjE5NSwgNDYyMTAsIDQ2MjI1LCA0NjI0MCwgNDYyNTUsIDQ2MjcwLCA0NjI4NSwgNDYzMDAsIDQ2MzE1LCAKLSAgICA0NjMzMCwgNDYzNDUsIDQ2MzYwLCA0NjM3NSwgNDYzOTAsIDQ2NDA1LCA0NjQyMCwgNDY0MzUsIDQ2NDUwLCA0NjQ2NSwgCi0gICAgNDY0ODAsIDQ2NDk1LCA0NjUxMCwgNDY1MjUsIDQ2NTQwLCA0NjU1NSwgNDY1NzAsIDQ2NTg1LCA0NjYwMCwgNDY2MTUsIAotICAgIDQ2NjMwLCA0NjY0NSwgNDY2NjAsIDQ2Njc1LCA0NjY5MCwgNDY3MDUsIDQ2NzIwLCA0NjczNSwgNDY3NTAsIDQ2NzY1LCAKLSAgICA0Njc4MCwgNDY3OTUsIDQ2ODEwLCA0NjgyNSwgNDY4NDAsIDQ2ODU1LCA0Njg3MCwgNDY4ODUsIDQ2OTAwLCA0NjkxNSwgCi0gICAgNDY5MzAsIDQ2OTQ1LCA0Njk2MCwgNDY5NzUsIDQ2OTkwLCA0NzAwNSwgNDcwMjAsIDQ3MDM1LCA0NzA1MCwgNDcwNjUsIAotICAgIDQ3MDgwLCA0NzA5NSwgNDcxMTAsIDQ3MTI1LCA0NzE0MCwgNDcxNTUsIDQ3MTcwLCA0NzE4NSwgNDcyMDAsIDQ3MjE1LCAKLSAgICA0NzIzMCwgNDcyNDUsIDQ3MjYwLCA0NzI3NSwgNDcyOTAsIDQ3MzA1LCA0NzMyMCwgNDczMzUsIDQ3MzUwLCA0NzM2NSwgCi0gICAgNDczODAsIDQ3Mzk1LCA0NzQxMCwgNDc0MjUsIDQ3NDQwLCA0NzQ1NSwgNDc0NzAsIDQ3NDg1LCA0NzUwMCwgNDc1MTUsIAotICAgIDQ3NTMwLCA0NzU0NSwgNDc1NjAsIDQ3NTc1LCA0NzU5MCwgNDc2MDUsIDQ3NjIwLCA0NzYzNSwgNDc2NTAsIDQ3NjY1LCAKLSAgICA0NzY4MCwgNDc2OTUsIDQ3NzEwLCA0NzcyNSwgNDc3NDAsIDQ3NzU1LCA0Nzc3MCwgNDc3ODUsIDQ3ODAwLCA0NzgxNSwgCi0gICAgNDc4MzAsIDQ3ODQ1LCA0Nzg2MCwgNDc4NzUsIDQ3ODkwLCA0NzkwNSwgNDc5MjAsIDQ3OTM1LCA0Nzk1MCwgNDc5NjUsIAotICAgIDQ3OTgwLCA0Nzk5NSwgNDgwMTAsIDQ4MDI1LCA0ODA0MCwgNDgwNTUsIDQ4MDcwLCA0ODA4NSwgNDgxMDAsIDQ4MTE1LCAKLSAgICA0ODEzMCwgNDgxNDUsIDQ4MTYwLCA0ODE3NSwgNDgxOTAsIDQ4MjA1LCA0ODIyMCwgNDgyMzUsIDQ4MjUwLCA0ODI2NSwgCi0gICAgNDgyODAsIDQ4Mjk1LCA0ODMxMCwgNDgzMjUsIDQ4MzQwLCA0ODM1NSwgNDgzNzAsIDQ4Mzg1LCA0ODQwMCwgNDg0MTUsIAotICAgIDQ4NDMwLCA0ODQ0NSwgNDg0NjAsIDQ4NDc1LCA0ODQ5MCwgNDg1MDUsIDQ4NTIwLCA0ODUzNSwgNDg1NTAsIDQ4NTY1LCAKLSAgICA0ODU4MCwgNDg1OTUsIDQ4NjEwLCA0ODYyNSwgNDg2NDAsIDQ4NjU1LCA0ODY3MCwgNDg2ODUsIDQ4NzAwLCA0ODcxNSwgCi0gICAgNDg3MzAsIDQ4NzQ1LCA0ODc2MCwgNDg3NzUsIDQ4NzkwLCA0ODgwNSwgNDg4MjAsIDQ4ODM1LCA0ODg1MCwgNDg4NjUsIAotICAgIDQ4ODgwLCA0ODg5NSwgNDg5MTAsIDQ4OTI1LCA0ODk0MCwgNDg5NTUsIDQ4OTcwLCA0ODk4NSwgNDkwMDAsIDQ5MDE1LCAKLSAgICA0OTAzMCwgNDkwNDUsIDQ5MDYwLCA0OTA3NSwgNDkwOTAsIDQ5MTA1LCA0OTEyMCwgNDkxMzUsIDQ5MTUwLCA0OTE2NSwgCi0gICAgNDkxODAsIDQ5MTk1LCA0OTIxMCwgNDkyMjUsIDQ5MjQwLCA0OTI1NSwgNDkyNzAsIDQ5Mjg1LCA0OTMwMCwgNDkzMTUsIAotICAgIDQ5MzMwLCA0OTM0NSwgNDkzNjAsIDQ5Mzc1LCA0OTM5MCwgNDk0MDUsIDQ5NDIwLCA0OTQzNSwgNDk0NTAsIDQ5NDY1LCAKLSAgICA0OTQ4MCwgNDk0OTUsIDQ5NTExLCA0OTUyNywgNDk1NDMsIDQ5NTU5LCA0OTU3NSwgNDk1OTEsIDQ5NjA3LCA0OTYyMywgCi0gICAgNDk2MzksIDQ5NjU1LCA0OTY3MSwgNDk2ODcsIDQ5NzAzLCA0OTcxOSwgNDk3MzUsIDQ5NzUxLCA0OTc2NywgNDk3ODMsIAotICAgIDQ5Nzk5LCA0OTgxNSwgNDk4MzEsIDQ5ODQ3LCA0OTg2MywgNDk4NzksIDQ5ODk1LCA0OTkxMSwgNDk5MjcsIDQ5OTQzLCAKLSAgICA0OTk1OSwgNDk5NzUsIDQ5OTkxLCA1MDAwNywgNTAwMjMsIDUwMDM5LCA1MDA1NSwgNTAwNzEsIDUwMDg3LCA1MDEwMywgCi0gICAgNTAxMTksIDUwMTM1LCA1MDE1MSwgNTAxNjcsIDUwMTgzLCA1MDE5OSwgNTAyMTUsIDUwMjMxLCA1MDI0NywgNTAyNjMsIAotICAgIDUwMjc5LCA1MDI5NSwgNTAzMTEsIDUwMzI3LCA1MDM0MywgNTAzNTksIDUwMzc1LCA1MDM5MSwgNTA0MDcsIDUwNDIzLCAKLSAgICA1MDQzOSwgNTA0NTUsIDUwNDcxLCA1MDQ4NywgNTA1MDMsIDUwNTE5LCA1MDUzNSwgNTA1NTEsIDUwNTY3LCA1MDU4MywgCi0gICAgNTA1OTksIDUwNjE1LCA1MDYzMSwgNTA2NDcsIDUwNjYzLCA1MDY3OSwgNTA2OTUsIDUwNzExLCA1MDcyNywgNTA3NDMsIAotICAgIDUwNzU5LCA1MDc3NSwgNTA3OTEsIDUwODA3LCA1MDgyMywgNTA4MzksIDUwODU1LCA1MDg3MSwgNTA4ODcsIDUwOTAzLCAKLSAgICA1MDkxOSwgNTA5MzUsIDUwOTUxLCA1MDk2NywgNTA5ODMsIDUwOTk5LCA1MTAxNSwgNTEwMzEsIDUxMDQ3LCA1MTA2MywgCi0gICAgNTEwNzksIDUxMDk1LCA1MTExMSwgNTExMjcsIDUxMTQzLCA1MTE1OSwgNTExNzUsIDUxMTkxLCA1MTIwNywgNTEyMjMsIAotICAgIDUxMjM5LCA1MTI1NSwgNTEyNzEsIDUxMjg3LCA1MTMwMywgNTEzMTksIDUxMzM1LCA1MTM1MSwgNTEzNjcsIDUxMzgzLCAKLSAgICA1MTM5OSwgNTE0MTUsIDUxNDMxLCA1MTQ0NywgNTE0NjMsIDUxNDc5LCA1MTQ5NSwgNTE1MTEsIDUxNTI3LCA1MTU0MywgCi0gICAgNTE1NTksIDUxNTc1LCA1MTU5MSwgNTE2MDcsIDUxNjIzLCA1MTYzOSwgNTE2NTUsIDUxNjcxLCA1MTY4NywgNTE3MDMsIAotICAgIDUxNzE5LCA1MTczNSwgNTE3NTEsIDUxNzY3LCA1MTc4MywgNTE3OTksIDUxODE1LCA1MTgzMSwgNTE4NDcsIDUxODYzLCAKLSAgICA1MTg3OSwgNTE4OTUsIDUxOTExLCA1MTkyNywgNTE5NDMsIDUxOTU5LCA1MTk3NSwgNTE5OTEsIDUyMDA3LCA1MjAyMywgCi0gICAgNTIwMzksIDUyMDU1LCA1MjA3MSwgNTIwODcsIDUyMTAzLCA1MjExOSwgNTIxMzUsIDUyMTUxLCA1MjE2NywgNTIxODMsIAotICAgIDUyMTk5LCA1MjIxNSwgNTIyMzEsIDUyMjQ3LCA1MjI2MywgNTIyNzksIDUyMjk1LCA1MjMxMSwgNTIzMjcsIDUyMzQzLCAKLSAgICA1MjM1OSwgNTIzNzUsIDUyMzkxLCA1MjQwNywgNTI0MjMsIDUyNDM5LCA1MjQ1NSwgNTI0NzEsIDUyNDg3LCA1MjUwMywgCi0gICAgNTI1MTksIDUyNTM1LCA1MjU1MSwgNTI1NjcsIDUyNTgzLCA1MjU5OSwgNTI2MTUsIDUyNjMxLCA1MjY0NywgNTI2NjMsIAotICAgIDUyNjc5LCA1MjY5NSwgNTI3MTEsIDUyNzI3LCA1Mjc0MywgNTI3NTksIDUyNzc1LCA1Mjc5MSwgNTI4MDcsIDUyODIzLCAKLSAgICA1MjgzOSwgNTI4NTUsIDUyODcxLCA1Mjg4NywgNTI5MDMsIDUyOTE5LCA1MjkzNSwgNTI5NTEsIDUyOTY3LCA1Mjk4MywgCi0gICAgNTI5OTksIDUzMDE1LCA1MzAzMSwgNTMwNDcsIDUzMDYzLCA1MzA3OSwgNTMwOTUsIDUzMTExLCA1MzEyNywgNTMxNDMsIAotICAgIDUzMTU5LCA1MzE3NSwgNTMxOTEsIDUzMjA3LCA1MzIyMywgNTMyMzksIDUzMjU1LCA1MzI3MSwgNTMyODcsIDUzMzAzLCAKLSAgICA1MzMxOSwgNTMzMzUsIDUzMzUxLCA1MzM2NywgNTMzODMsIDUzMzk5LCA1MzQxNSwgNTM0MzEsIDUzNDQ3LCA1MzQ2MywgCi0gICAgNTM0NzksIDUzNDk1LCA1MzUxMSwgNTM1MjcsIDUzNTQzLCA1MzU1OSwgNTM1NzUsIDUzNTkxLCA1MzYwNywgNTM2MjMsIAotICAgIDUzNjM5LCA1MzY1NSwgNTM2NzEsIDUzNjg3LCA1MzcwMywgNTM3MTksIDUzNzM1LCA1Mzc1MSwgNTM3NjcsIDUzNzgzLCAKLSAgICA1Mzc5OSwgNTM4MTUsIDUzODMxLCA1Mzg0NywgNTM4NjMsIDUzODc5LCA1Mzg5NSwgNTM5MTEsIDUzOTI3LCA1Mzk0MywgCi0gICAgNTM5NTksIDUzOTc1LCA1Mzk5MSwgNTQwMDcsIDU0MDIzLCA1NDAzOSwgNTQwNTUsIDU0MDcxLCA1NDA4NywgNTQxMDMsIAotICAgIDU0MTE5LCA1NDEzNSwgNTQxNTEsIDU0MTY3LCA1NDE4MywgNTQxOTksIDU0MjE1LCA1NDIzMSwgNTQyNDcsIDU0MjYzLCAKLSAgICA1NDI3OSwgNTQyOTUsIDU0MzExLCA1NDMyNywgNTQzNDMsIDU0MzU5LCA1NDM3NSwgNTQzOTEsIDU0NDA3LCA1NDQyMywgCi0gICAgNTQ0MzksIDU0NDU1LCA1NDQ3MSwgNTQ0ODcsIDU0NTAzLCA1NDUxOSwgNTQ1MzUsIDU0NTUxLCA1NDU2NywgNTQ1ODMsIAotICAgIDU0NTk5LCA1NDYxNSwgNTQ2MzEsIDU0NjQ3LCA1NDY2MywgNTQ2NzksIDU0Njk1LCA1NDcxMSwgNTQ3MjcsIDU0NzQzLCAKLSAgICA1NDc1OSwgNTQ3NzUsIDU0NzkxLCA1NDgwNywgNTQ4MjMsIDU0ODM5LCA1NDg1NSwgNTQ4NzEsIDU0ODg3LCA1NDkwMywgCi0gICAgNTQ5MTksIDU0OTM1LCA1NDk1MSwgNTQ5NjcsIDU0OTgzLCA1NDk5OSwgNTUwMTUsIDU1MDMxLCA1NTA0NywgNTUwNjMsIAotICAgIDU1MDc5LCA1NTA5NSwgNTUxMTEsIDU1MTI3LCA1NTE0MywgNTUxNTksIDU1MTc1LCA1NTE5MSwgNTUyMDcsIDU1MjIzLCAKLSAgICA1NTIzOSwgNTUyNTUsIDU1MjcxLCA1NTI4NywgNTUzMDMsIDU1MzE5LCA1NTMzNSwgNTUzNTEsIDU1MzY3LCA1NTM4MywgCi0gICAgNTUzOTksIDU1NDE1LCA1NTQzMSwgNTU0NDcsIDU1NDYzLCA1NTQ3OSwgNTU0OTUsIDU1NTExLCA1NTUyNywgNTU1NDMsIAotICAgIDU1NTU5LCA1NTU3NSwgNTU1OTEsIDU1NjA3LCA1NTYyMywgNTU2MzksIDU1NjU1LCA1NTY3MSwgNTU2ODcsIDU1NzAzLCAKLSAgICA1NTcxOSwgNTU3MzUsIDU1NzUxLCA1NTc2NywgNTU3ODMsIDU1Nzk5LCA1NTgxNSwgNTU4MzEsIDU1ODQ3LCA1NTg2MywgCi0gICAgNTU4NzksIDU1ODk1LCA1NTkxMSwgNTU5MjcsIDU1OTQzLCA1NTk1OSwgNTU5NzUsIDU1OTkxLCA1NjAwNywgNTYwMjMsIAotICAgIDU2MDM5LCA1NjA1NSwgNTYwNzEsIDU2MDg3LCA1NjEwMywgNTYxMTksIDU2MTM1LCA1NjE1MSwgNTYxNjcsIDU2MTgzLCAKLSAgICA1NjE5OSwgNTYyMTUsIDU2MjMxLCA1NjI0NywgNTYyNjMsIDU2Mjc5LCA1NjI5NSwgNTYzMTEsIDU2MzI3LCA1NjM0MywgCi0gICAgNTYzNTksIDU2Mzc1LCA1NjM5MSwgNTY0MDcsIDU2NDIzLCA1NjQzOSwgNTY0NTUsIDU2NDcxLCA1NjQ4NywgNTY1MDMsIAotICAgIDU2NTE5LCA1NjUzNSwgNTY1NTEsIDU2NTY3LCA1NjU4MywgNTY1OTksIDU2NjE1LCA1NjYzMSwgNTY2NDcsIDU2NjYzLCAKLSAgICA1NjY3OSwgNTY2OTUsIDU2NzExLCA1NjcyNywgNTY3NDMsIDU2NzU5LCA1Njc3NSwgNTY3OTEsIDU2ODA3LCA1NjgyMywgCi0gICAgNTY4MzksIDU2ODU1LCA1Njg3MSwgNTY4ODcsIDU2OTAzLCA1NjkxOSwgNTY5MzUsIDU2OTUxLCA1Njk2NywgNTY5ODMsIAotICAgIDU2OTk5LCA1NzAxNSwgNTcwMzEsIDU3MDQ3LCA1NzA2MywgNTcwNzksIDU3MDk1LCA1NzExMSwgNTcxMjcsIDU3MTQzLCAKLSAgICA1NzE1OSwgNTcxNzUsIDU3MTkxLCA1NzIwNywgNTcyMjMsIDU3MjM5LCA1NzI1NSwgNTcyNzEsIDU3Mjg3LCA1NzMwMywgCi0gICAgNTczMTksIDU3MzM1LCA1NzM1MSwgNTczNjcsIDU3MzgzLCA1NzM5OSwgNTc0MTUsIDU3NDMxLCA1NzQ0NywgNTc0NjMsIAotICAgIDU3NDc5LCA1NzQ5NSwgNTc1MTEsIDU3NTI3LCA1NzU0MywgNTc1NTksIDU3NTc1LCA1NzU5MSwgNTc2MDcsIDU3NjIzLCAKLSAgICA1NzYzOSwgNTc2NTUsIDU3NjcxLCA1NzY4NywgNTc3MDMsIDU3NzE5LCA1NzczNSwgNTc3NTEsIDU3NzY3LCA1Nzc4MywgCi0gICAgNTc3OTksIDU3ODE1LCA1NzgzMSwgNTc4NDcsIDU3ODYzLCA1Nzg3OSwgNTc4OTUsIDU3OTExLCA1NzkyNywgNTc5NDMsIAotICAgIDU3OTU5LCA1Nzk3NSwgNTc5OTEsIDU4MDA3LCA1ODAyMywgNTgwMzksIDU4MDU1LCA1ODA3MSwgNTgwODcsIDU4MTAzLCAKLSAgICA1ODExOSwgNTgxMzUsIDU4MTUxLCA1ODE2NywgNTgxODIsIDE2NzQ5LCA1ODE5MSwgNTgxOTcsIDU4MjAzLCA1ODIxMywgCi0gICAgNTgyMjEsIDE0ODgxLCAxNTQzMiwgOTk1MywgNTgyMzQsIDE1MjAsIDU4MjQyLCAzNzYxLCAyNzQxNSwgNzE4MywgNTgyNDgsIAotICAgIDU4MjUzLCA1ODI1OCwgNTgyNjMsIDU4MjY4LCA1ODI3NCwgNTgyNzksIDU4Mjg1LCA1ODI5MCwgNTgyOTYsIDU4MzAxLCAKLSAgICA1ODMwNiwgNTgzMTEsIDU4MzE2LCA1ODMyMiwgNTgzMjcsIDU4MzMyLCA1ODMzNywgNTgzNDIsIDU4MzQ3LCA1ODM1MiwgCi0gICAgNTgzNTcsIDU4MzYzLCA1ODM2OCwgNTgzNzQsIDU4MzgxLCAyNTYxLCA1ODM4NiwgNTgzOTIsIDg1MjYsIDU4Mzk2LCAKLSAgICA1ODQwMSwgNTg0MDgsIDU4NDE2LCA0MCwgNTg0MjAsIDU4NDI2LCA1ODQzMSwgNTg0MzYsIDU4NDQwLCA1ODQ0NSwgNTg0NDksIAotICAgIDU4NDUzLCAxMDY3NywgNTg0NTcsIDU4NDY3LCA1ODQ4MCwgNTg0OTEsIDU4NTA0LCA1ODUxMSwgNTg1MTcsIDU4NTIyLCAKLSAgICA1ODUyOCwgNTg1MzQsIDU4NTQwLCA1ODU0NSwgNTg1NTAsIDU4NTU1LCA1ODU2MCwgNTg1NjQsIDU4NTY5LCA1ODU3NCwgCi0gICAgNTg1NzksIDU4NTg1LCA1ODU5MSwgNTg1OTcsIDU4NjAyLCA1ODYwNiwgNTg2MTEsIDU4NjE2LCA1ODYyMCwgNTg2MjUsIAotICAgIDU4NjMwLCA1ODYzNSwgNTg2MzksIDEwNjkzLCAxMDcwNCwgMTA3MDksIDE1NjMsIDU4NjQzLCAxNTY4LCA1ODY0OSwgCi0gICAgMTYyMjYsIDU4NjUyLCA1ODY1OCwgMTU5OSwgNTg2NjQsIDE2MDUsIDE2MTEsIDEwNzM5LCA1ODY2OSwgNTg2NzcsIDU4Njg0LCAKLSAgICA1ODY4OCwgNTg2OTQsIDU4Njk5LCAzMDk1MiwgNTg3MDQsIDU4NzExLCA1ODcxNiwgNTg3MjAsIDU4NzI0LCAxNjE2LCAKLSAgICAxNjMxOCwgNTg3MzMsIDU4NzM3LCAxNjMyOSwgMTEyMCwgNTg3NDEsIDU4NzQ4LCA1ODc1MywgNTg3NTcsIDE2MzU0LCAKLSAgICAxNjIwLCAzNzMyMSwgNTg3NjAsIDU4NzY1LCA1ODc3NSwgNTg3ODQsIDU4Nzg5LCA1ODc5MywgNTg3OTksIDE2MjUsIAotICAgIDM5MjMwLCA1ODgwNCwgNTg4MTMsIDU4ODE5LCA1ODgyNCwgMTA4OTcsIDEwOTAzLCA1ODgzMCwgNTg4NDIsIDU4ODU5LCAKLSAgICA1ODg3NiwgNTg4OTMsIDU4OTEwLCA1ODkyNywgNTg5NDQsIDU4OTYxLCA1ODk3OCwgNTg5OTUsIDU5MDEyLCA1OTAyOSwgCi0gICAgNTkwNDYsIDU5MDYzLCA1OTA4MCwgNTkwOTcsIDU5MTE0LCA1OTEzMSwgNTkxNDgsIDU5MTY1LCA1OTE4MiwgNTkxOTksIAotICAgIDU5MjE2LCA1OTIzMywgNTkyNTAsIDU5MjY3LCA1OTI4NCwgNTkzMDEsIDU5MzE4LCA1OTMzNSwgNTkzNTIsIDU5MzY5LCAKLSAgICA1OTM4NiwgNTk0MDMsIDU5NDIwLCA1OTQzNywgNTk0NTQsIDU5NDcxLCA1OTQ4OCwgNTk1MDUsIDU5NTIyLCA1OTUzOSwgCi0gICAgNTk1NTYsIDU5NTczLCA1OTU5MCwgNTk2MDcsIDU5NjI0LCA1OTY0MSwgNTk2NTgsIDU5Njc1LCA1OTY4NiwgNTk2OTEsIAotICAgIDE2MzAsIDU5Njk1LCA1OTcwMSwgNTk3MDYsIDU5NzExLCA5MzE5LCAxNjM1LCA1OTcxNywgNTk3MjYsIDI3NzEwLCA1OTczMSwgCi0gICAgNTk3NDIsIDU5NzUyLCA1OTc1NywgNTk3NjQsIDU5NzcwLCA1OTc3NSwgNTk3ODAsIDE2NjA2LCA1OTc4NCwgMTA5MTQsIAotICAgIDE2NDAsIDEwOTE5LCA1OTc5MCwgNTk3OTUsIDU5ODAxLCA1OTgwNiwgNTk4MTEsIDU5ODE2LCA1OTgyMSwgNTk4MjYsIAotICAgIDU5ODMxLCA1OTgzNiwgNTk4NDIsIDU5ODQ4LCA1OTg1NCwgNTk4NTksIDU5ODYzLCA1OTg2OCwgNTk4NzMsIDU5ODc3LCAKLSAgICA1OTg4MiwgNTk4ODcsIDU5ODkyLCA1OTg5NiwgNTk5MDEsIDU5OTA3LCA1OTkxMiwgNTk5MTcsIDU5OTIxLCA1OTkyNiwgCi0gICAgNTk5MzEsIDU5OTM3LCA1OTk0MiwgNTk5NDcsIDU5OTUzLCA1OTk1OSwgNTk5NjQsIDU5OTY4LCA1OTk3MywgNTk5NzgsIAotICAgIDU5OTgzLCA1OTk4NywgNTk5OTIsIDU5OTk3LCA2MDAwMiwgNjAwMDgsIDYwMDE0LCA2MDAxOSwgNjAwMjMsIDYwMDI3LCAKLSAgICA2MDAzMiwgNjAwMzcsIDYwMDQyLCAyOTEwOCwgNjAwNDYsIDYwMDUxLCA2MDA1NiwgNjAwNjIsIDYwMDY3LCA2MDA3MiwgCi0gICAgNjAwNzYsIDYwMDgxLCA2MDA4NiwgNjAwOTIsIDYwMDk3LCA2MDEwMiwgNjAxMDgsIDYwMTE0LCA2MDExOSwgNjAxMjMsIAotICAgIDYwMTI4LCA2MDEzMywgNjAxMzcsIDYwMTQyLCA2MDE0NywgNjAxNTIsIDYwMTU4LCA2MDE2NCwgNjAxNjksIDYwMTczLCAKLSAgICA2MDE3OCwgNjAxODMsIDYwMTg3LCA2MDE5MiwgNjAxOTcsIDYwMjAyLCA2MDIwNiwgNjAyMDksIDMxNjE0LCA2MDIxNCwgCi0gICAgNjAyMjIsIDE2NjcyLCAzNjYzLCAxMTAxMCwgNjAyMjgsIDYwMjM4LCA2MDI1MywgMTEwMTUsIDYwMjY0LCA2MDI2OSwgCi0gICAgNjAyODAsIDYwMjkyLCA2MDMwNCwgNjAzMTYsIDI2OTUsIDYwMzI4LCA2MDMzMywgNjAzNDUsIDYwMzQ5LCA2MDM1NSwgCi0gICAgNjAzNjEsIDYwMzY2LCAxNjUyLCAxMDY3LCA2MDM3NSwgNjAzODAsIDM5MjgwLCA2MDM4NCwgNjAzODgsIDYwMzkzLCAKLSAgICA2MDM5NywgMTY3NTcsIDYwNDAyLCA2MDQwNSwgNjA0MTMsIDYwNDIxLCAxNjU2LCAxMTA0MCwgMTEwNDYsIDE2NjEsIAotICAgIDYwNDI5LCA2MDQzNiwgNjA0NDEsIDYwNDUwLCA2MDQ2MCwgNjA0NjcsIDYwNDcyLCA2MDQ3NywgMTY2NiwgNjA0ODQsIAotICAgIDYwNDg5LCAxNjg3MiwgNjA0OTMsIDYwNDk4LCA2MDUwNSwgNjA1MTEsIDYwNTE1LCA2MDUyNiwgNjA1MzYsIDE2ODk0LCAKLSAgICA5MjI3LCA5MjM0LCAxNjcxLCA2MDU0MywgNjA1NDksIDYwNTU3LCA2MDU2NCwgNjA1NzAsIDYwNTc3LCA2MDU4OSwgNjA1OTUsIAotICAgIDYwNjAwLCA2MDYxMiwgNjA2MjMsIDYwNjMyLCA2MDY0MiwgMzc0MCwgMzA3ODgsIDMwNzk3LCAxNjkzNCwgMTY3NiwgMTY4MCwgCi0gICAgNjA2NTAsIDYwNjYxLCA2MDY2NiwgMTY4MywgNjA2NzQsIDYwNjc5LCAxNjk4NSwgNjA2OTEsIDYwNjk3LCA2MDcwMiwgCi0gICAgNjA3MTAsIDE2ODgsIDYwNzE1LCA2MDcyMCwgNjA3MjgsIDYwNzM2LCA2MDc0MywgNjA3NTIsIDYwNzYwLCA2MDc2OSwgCi0gICAgMTY5MywgNjA3NzMsIDE2OTgsIDYwNzc4LCA2MDc4NSwgMTcwNTksIDYwNzkzLCA2MDc5OSwgNjA4MDQsIDYwODEyLCAKLSAgICA2MDgxOSwgNjA4MjcsIDIyNTU3LCA2MDgzMiwgMTExNzUsIDYwODQxLCA2MDg0NywgNjA4NTQsIDYwODYxLCA2MDg2NywgCi0gICAgNjA4NzcsIDYwODgzLCA2MDg4OCwgNjA4OTksIDYwOTA0LCA2MDkxMiwgMTExODQsIDExMTg5LCA2MDkyMCwgNjA5MjYsIAotICAgIDYwOTM0LCAzODA1LCAxNzEwMSwgMzkzNjgsIDYwOTM5LCA2MDk0NSwgNjA5NTAsIDYwOTU4LCA2MDk2NSwgMTIwMjksIAotICAgIDYwOTcwLCA2MDk3NiwgMTcwOSwgNjA5ODEsIDYwOTg0LCAxMTI3LCA2MDk5MCwgNjA5OTUsIDYxMDAwLCA2MTAwNiwgCi0gICAgNjEwMTEsIDYxMDE2LCA2MTAyMSwgNjEwMjYsIDYxMDMxLCA2MTAzNiwgMTcxOCwgOSwgNjEwNDIsIDYxMDQ2LCA2MTA1MSwgCi0gICAgNjEwNTUsIDYxMDU5LCA2MTA2MywgMzE4NTQsIDYxMDY4LCA2MTA3MywgNjEwNzgsIDYxMDgyLCA2MTA4NSwgNjEwODksIAotICAgIDYxMDkzLCA2MTA5OCwgNjExMDIsIDYxMTA3LCA2MTExMSwgMzQ1OTEsIDM0NTk2LCAzNDYwMSwgNjExMTQsIDYxMTIxLCAKLSAgICA2MTEyNywgMzkwODksIDYxMTM3LCAzNDYwNywgMzIxMTIsIDMxODY5LCAzMTg3NSwgMzQ2MjMsIDMxODgxLCA2MTE0MiwgCi0gICAgNjExNDcsIDMyMTQ1LCA2MTE1MSwgNjExNTQsIDYxMTU4LCA2MTE2NSwgNjExNjgsIDYxMTczLCA2MTE3NywgNjExODEsIAotICAgIDYxMTg0LCA2MTE5NCwgNjEyMDYsIDYxMjEzLCA2MTIxOSwgNjEyMjYsIDMzNTQ4LCA2MTIyOSwgODU0MywgODc3LCA2MTIzMiwgCi0gICAgNjEyMzYsIDYxMjQxLCAzNjkwLCA2MTI0NSwgNjEyNDgsIDEzNjI1LCA2MTI1NSwgNjEyNjIsIDYxMjc1LCA2MTI4MywgCi0gICAgNjEyOTIsIDYxMzAxLCA2MTMwNiwgNjEzMTYsIDYxMzI5LCA2MTM0MSwgNjEzNDgsIDYxMzUzLCA2MTM2MiwgNjEzNzUsIAotICAgIDM2MDM1LCA2MTM5MywgNjEzOTgsIDYxNDA1LCA2MTQxMSwgNjUyLCA2MTQxNiwgNjE0MjQsIDYxNDMxLCAyNzI1NCwgNjI3LCAKLSAgICA2MTQzNywgNjE0NDMsIDYxNDUzLCA2MTQ1OSwgNjE0NjQsIDMxODk5LCA2MDAzLCAzMTkxMywgNjE0NjgsIDYxNDc4LCAKLSAgICA2MTQ4MywgNjE0OTMsIDYxNTA4LCA2MTUxNCwgNjE1MjAsIDMxOTIzLCA2MTUyNSwgMzEwNjksIDYxNTI5LCA2MTUzNCwgCi0gICAgNjE1MzksIDYxNTQzLCA2MTU0OCwgMTY5MzcsIDYxNTU1LCA2MTU2MCwgNjE1NjQsIDYwNDQsIDMxOTQ5LCA2MTU2OCwgCi0gICAgNjE1NzQsIDMxMiwgNjE1ODQsIDYxNTkxLCA2MTU5OCwgNjE2MDMsIDYxNjEyLCA1ODc2OSwgNjE2MTgsIDYxNjI2LCAKLSAgICA2MTYzMCwgNjE2MzQsIDYxNjM4LCA2MTY0MiwgNjE2NDcsIDYxNjUxLCA2MTY1NywgNjE2NjUsIDYxNjcwLCA2MTY3NSwgCi0gICAgNjE2NzksIDYxNjg0LCA2MTY4OCwgNjE2OTIsIDYxNjk4LCA2MTcwNCwgNjE3MDksIDYxNzEzLCAzMjA3MywgNjE3MTgsIAotICAgIDMyMDc5LCAzMjA4NSwgNjE3MjMsIDYxNzI5LCA2MTczNiwgNjE3NDEsIDYxNzQ1LCAzMTA4NiwgMTY1OTksIDYxNzQ4LCAKLSAgICA2MTc1MiwgNjE3NTcsIDYxNzY0LCA2MTc3MCwgNjE3NzQsIDYxNzc5LCAzODc5OSwgNjE3ODUsIDYxNzg5LCA2MTc5MywgCi0gICAgNjE3OTgsIDYxODA0LCA2MTgxMCwgNjE4MjIsIDYxODMxLCA2MTg0MSwgNjE4NDcsIDYxODU0LCA2MTg1OSwgNjE4NjQsIAotICAgIDYxODY4LCA2MTg3MSwgNjE4NzcsIDYxODg0LCA2MTg4OSwgNjE4OTQsIDYxOTAxLCA2MTkwOCwgNjE5MTQsIDYxOTE5LCAKLSAgICA2MTkyNCwgNjE5MzIsIDMyMDkwLCAyNDIzLCA2MTkzNywgNjE5NDIsIDYxOTQ4LCA2MTk1MywgNjE5NTksIDYxOTY0LCAKLSAgICA2MTk2OSwgNjE5NzQsIDYxOTgwLCAzMjExMSwgNjE5ODUsIDYxOTkxLCA2MTk5NywgNjIwMDMsIDMyMTc1LCA2MjAwOCwgCi0gICAgNjIwMTMsIDYyMDE4LCAzMjE4NiwgNjIwMjMsIDYyMDI4LCA2MjAzMywgNjIwMzksIDYyMDQ1LCAzMjE5MSwgNjIwNTAsIAotICAgIDYyMDU1LCA2MjA2MCwgMzIyNDYsIDMyMjUyLCA2MjA2NSwgNjIwNzAsIDMyMjU3LCA2MjA3NSwgMjc5MzcsIDMyMjc5LCAKLSAgICAzMjI4MywgNjIwODAsIDYyMDU2LCA2MjA4NCwgNjIwOTIsIDYyMDk4LCA2MjEwNiwgNjIxMTMsIDYyMTE5LCA2MjEyOSwgCi0gICAgNjIxMzUsIDYyMTQyLCAxMDYyNCwgMzIyOTcsIDYyMTQ4LCA2MjE2MSwgNjIxNzAsIDYyMTc2LCA2MjE4NSwgNjIxOTEsIAotICAgIDIzNDk1LCA2MjE5OCwgNjIyMDUsIDYyMjE1LCAzMjI0NywgNjIyMTgsIDYyMjI1LCA2MjIzMCwgNjIyMzQsIDYyMjM4LCAKLSAgICA2MjI0MywgNjEyMCwgNjIyNDcsIDYyMjUyLCA2MjI1NywgMzQ2ODUsIDM0NjkwLCA2MjI2MSwgMzQ3MDQsIDYyMjY2LCAKLSAgICAzNDcwOSwgNjIyNzEsIDYyMjc3LCAzNDcyMSwgMzQ3MjcsIDM0NzMzLCA2MjI4MiwgNjIyODgsIDIyNTIyLCA2MjI5OSwgCi0gICAgNjIzMDIsIDYyMzE0LCA2MjMyMiwgMzIzMjAsIDYyMzI2LCA2MjMzNSwgNjIzNDUsIDYyMzU0LCAzMjMzMCwgNjIzNTksIAotICAgIDYyMzY2LCA2MjM3NSwgNjIzODEsIDYyMzg5LCA2MjM5NiwgNjA5NSwgNDM5NywgNjI0MDEsIDMyMjU4LCA2MjQwNywgCi0gICAgNjI0MTAsIDYyNDE2LCA2MjQyMywgNjI0MjgsIDYyNDMzLCAyMzQwNSwgNjI0MzcsIDYyNDQzLCA2MjQ0OSwgNjI0NTQsIAotICAgIDYyNDU5LCA2MjQ2MywgNjI0NjksIDYyNDc1LCAzMzQ1OCwgODYzLCAzNTY5OCwgMzY2MTksIDM2NjI1LCAzMjM2NiwgCi0gICAgNjI0ODAsIDYyNDg0LCA2MjQ4OCwgNjI0OTEsIDYyNTA0LCA2MjUxMCwgNjI1MTQsIDYyNTE3LCA2MjUyMiwgMzM3NjEsIAotICAgIDYyNTI2LCAzMTA5MSwgMjEyNzQsIDYyNTMyLCA2MDI0LCA2MDMyLCA5MDY4LCA2MjUzNSwgNjI1NDAsIDYyNTQ1LCA2MjU1MCwgCi0gICAgNjI1NTUsIDYyNTYwLCA2MjU2NSwgNjI1NzAsIDYyNTc1LCA2MjU4MCwgNjI1ODYsIDYyNTkxLCA2MjU5NiwgNjI2MDIsIAotICAgIDYyNjA3LCA2MjYxMiwgNjI2MTcsIDYyNjIyLCA2MjYyNywgNjI2MzIsIDYyNjM4LCA2MjY0MywgNjI2NDksIDYyNjU0LCAKLSAgICA2MjY1OSwgNjI2NjQsIDYyNjY5LCA2MjY3NCwgNjI2NzksIDYyNjg0LCA2MjY4OSwgNjI2OTQsIDYyNjk5LCA2MjcwNSwgCi0gICAgNjI3MTAsIDYyNzE1LCA2MjcyMCwgNjI3MjUsIDYyNzMwLCA2MjczNSwgNjI3NDEsIDYyNzQ2LCA2Mjc1MSwgNjI3NTYsIAotICAgIDYyNzYxLCA2Mjc2NiwgNjI3NzEsIDYyNzc2LCA2Mjc4MSwgNjI3ODYsIDYyNzkyLCA2Mjc5NywgNjI4MDIsIDYyODA3LCAKLSAgICA2MjgxMiwgNjI4MTgsIDYyODI0LCA2MjgyOSwgNjI4MzUsIDYyODQwLCA2Mjg0NSwgNjI4NTAsIDYyODU1LCA2Mjg2MCwgCi0gICAgMTUxMywgMjQ1LCA2Mjg2NSwgNjI4NjksIDYyODczLCA2Mjg3NywgMjUxMTYsIDYyODgxLCA2Mjg4NSwgNjI4OTAsIDYyODk0LCAKLSAgICA2Mjg5OSwgNjI5MDMsIDYyOTA4LCA2MjkxMywgNjI5MTgsIDYyOTIyLCA2MjkyNiwgNjI5MzEsIDYyOTM1LCAxMzM2MiwgCi0gICAgNjI5NDAsIDYyOTQ0LCA2Mjk1MSwgNjI5NjEsIDE1MTkzLCA2Mjk3MCwgNjI5NzksIDYyOTgzLCA2Mjk4OCwgNjI5OTMsIAotICAgIDYyOTk3LCAyNDkwNywgMzAxOSwgNjMwMDEsIDE3MzUwLCA2MzAwNywgNjMwMTYsIDYzMDI0LCA2MzAzMCwgNjMwNDIsIAotICAgIDYzMDU0LCA2MzA1OCwgNjMwNjMsIDYzMDY3LCA2MzA3MywgNjMwNzksIDYzMDg0LCA2MzA5NCwgNjMxMDQsIDYzMTEwLCAKLSAgICA2MzExNSwgNjMxMTksIDYzMTI0LCA2MzEzMCwgNjMxMzksIDYzMTQ4LCA2MzE1NiwgMTU1NDcsIDYzMTYwLCA2MzE2OSwgCi0gICAgNjMxNzcsIDYzMTg5LCA2MzIwMCwgNjMyMTEsIDYzMjIwLCA2MzIyNCwgNjMyMzMsIDYzMjQzLCA2MzI1MSwgNjMyNTcsIAotICAgIDYzMjYyLCA2MzI2OCwgNjMyNzMsIDk4LCAzMDkwMCwgNjMyODQsIDI2MjQ5LCAyNjI1OSwgNjMyOTAsIDYzMjk3LCA2MzMwMywgCi0gICAgNjMzMDcsIDYzMzE3LCA2MzMyOCwgNjMzMzYsIDYzMzQ1LCA2MzM1MCwgNjMzNTUsIDYzMzU5LCAxNzMwNCwgNjMzNjcsIAotICAgIDYzMzcxLCA2MzM3NywgNjMzODcsIDYzMzk0LCA2MzQwMCwgMzQ3ODQsIDYzNDA2LCA2MzQwOCwgNjM0MTEsIDYzNDE1LCAKLSAgICA2MzQyNSwgNjM0MzEsIDYzNDM4LCAxMzMwOCwgNjM0NDUsIDYzNDUxLCA2MzQ2MCwgNjM0NjksIDYzNDc1LCA2MzQ4MSwgCi0gICAgNjM0ODcsIDYzNDkyLCA2MzQ5OSwgNjM1MDYsIDYzNTEyLCA2MzUyNSwgNjM1MzQsIDYzNTQzLCA2MzU0OCwgNjM1NTIsIAotICAgIDYzNTU4LCA2MzU2NSwgNjM1NzIsIDYzNTc5LCA2MzU4NiwgNjM1OTMsIDYzNTk4LCA2MzYwMiwgNjM2MDYsIDYzNjA5LCAKLSAgICA2MzYxOSwgNjM2MjMsIDYzNjM1LCA2MzY0NCwgNjM2NDgsIDYzNjUzLCA2MzY1NywgNjM2NjMsIDYzNjY4LCA2MzY3NSwgCi0gICAgNjM2ODQsIDYzNjkyLCA2MzcwMCwgNjM3MDUsIDYzNzA5LCA2MzcxNCwgNjM3MTksIDYzNzI5LCA2MzczNywgNjM3NDIsIAotICAgIDYzNzQ2LCA2Mzc1MCwgNjM3NTYsIDYzNzY4LCA2Mzc3NiwgNjM3ODYsIDYzNzkzLCA2Mzc5OSwgNjM4MDQsIDYzODA4LCAKLSAgICA2MzgxMiwgNjM4MTYsIDYzODI1LCA2MzgzNCwgNjM4NDMsIDYzODQ5LCA2Mzg1NSwgNjM4NjEsIDYzODY2LCA2Mzg3MywgCi0gICAgNjM4NzksIDYzODg3LCA2Mzg5NCwgMTI0NTYsIDYzOTAwLCA2MzkwNiwgNjM5MTAsIDE0MjMxLCA2MzkxNCwgNjM5MTksIAotICAgIDYzOTI5LCA2MzkzOCwgNjM5NDQsIDYzOTUwLCA2Mzk1OCwgNjM5NjUsIDYzOTY5LCA2Mzk3MywgNjM5NzksIDYzOTg3LCAKLSAgICA2Mzk5NCwgNjQwMDAsIDY0MDExLCA2NDAxNSwgNjQwMTksIDY0MDIzLCA2NDAyNiwgNjQwMzIsIDY0MDM3LCA2NDA0MSwgCi0gICAgNjQwNDUsIDY0MDU0LCA2NDA2MiwgNjQwNjksIDY0MDc1LCA2NDA4MiwgMjQwMjksIDM4ODQxLCA2NDA4NywgNjQwOTUsIAotICAgIDY0MDk5LCA2NDEwMywgNjQxMDYsIDY0MTE0LCA2NDEyMSwgNjQxMjcsIDY0MTM2LCA2NDE0NCwgNjQxNTAsIDY0MTU1LCAKLSAgICA2NDE1OSwgNjQxNjQsIDY0MTY4LCA2NDE3MiwgNjQxNzcsIDY0MTg2LCA2NDE5MCwgNjQxOTcsIDY0MjA0LCA2NDIxMCwgCi0gICAgNjQyMTgsIDY0MjI0LCA2NDIzNSwgNjQyNDMsIDY0MjQ5LCAyMjY1MiwgNjQyNTgsIDY0MjY1LCA2NDI3MiwgNjQyNzksIAotICAgIDY0Mjg2LCA2NDI5MywgNDE4NzAsIDEzMTQ2LCA2NDMwMCwgNjQzMDcsIDY0MzEyLCAzNDgyMCwgNjIxNywgNjQzMTgsIAotICAgIDY0MzIzLCA2NDMyOCwgNjQzMzQsIDY0MzQwLCA2NDM0NiwgNjQzNTEsIDY0MzU2LCA2NDM2MSwgNjQzNjYsIDY0MzcyLCAKLSAgICA2NDM3NywgNjQzODMsIDY0Mzg4LCA2NDM5NCwgNjQzOTksIDY0NDA0LCA2NDQwOSwgNjQ0MTQsIDY0NDE5LCA2NDQyNCwgCi0gICAgNjQ0MjksIDY0NDM1LCA2NDQ0MCwgNjQ0NDYsIDY0NDUxLCA2NDQ1NiwgNjQ0NjEsIDY0NDY2LCA2NDQ3MSwgNjQ0NzYsIAotICAgIDY0NDgyLCA2NDQ4NywgNjQ0OTIsIDY0NDk3LCA2NDUwMiwgNjQ1MDcsIDY0NTEyLCA2NDUxNywgNjQ1MjIsIDY0NTI3LCAKLSAgICA2NDUzMiwgNjQ1MzgsIDY0NTQzLCA2NDU0OCwgNjQ1NTMsIDY0NTU4LCA2NDU2MywgNjQ1NjgsIDY0NTczLCA2NDU3OCwgCi0gICAgNjQ1ODQsIDY0NTg5LCA2NDU5NCwgNjQ1OTksIDY0NjA0LCA2NDYwOSwgNjQ2MTQsIDY0NjE5LCA2NDYyNCwgNjQ2MjksIAotICAgIDY0NjM0LCA2NDYzOSwgNjQ2NDQsIDY0NjUwLCAxODM0LCAyMjQsIDM3NDE3LCA2NDY1NSwgNjQ2NTgsIDY0NjYzLCA2NDY2NywgCi0gICAgNjQ2NzAsIDY0Njc1LCA2MzY5NiwgNjQ2ODYsIDY0Njk2LCA2NDcwMywgNjQ3MTksIDY0NzI4LCA2NDczOCwgNjQ3NDgsIAotICAgIDY0NzU2LCA2NDc3MCwgNjQ3NzgsIDY0NzgyLCA2NDc4NSwgNjQ3OTIsIDY0Nzk4LCA2NDgwOSwgNjQ4MjEsIDY0ODMyLCAKLSAgICA2NDg0MSwgNjQ4NDgsIDEyOTcsIDIzMjk0LCA2NDg1OCwgMjU5MCwgNjQ4NjIsIDY0ODcxLCAxMTMzLCAxNzI3NywgMzgwNTQsIAotICAgIDY0ODc5LCA2NDg4NywgNjQ5MDEsIDY0OTE0LCA2NDkxOCwgNjQ5MjMsIDY0OTI4LCA2NDkzMywgNjQ5MzksIDY0OTQ1LCAKLSAgICA2NDk1MCwgODUzNSwgNjQ5NTUsIDY0OTU5LCA2NDk2NywgMTEwNDEsIDY0OTcyLCA2NDk3OCwgNjQ5ODcsIDE3MjEsIAotICAgIDExMDUzLCA3MzYsIDY0OTkxLCA2NTAwMCwgNjUwMTAsIDI3MDEzLCA2NTAxOSwgNjUwMjUsIDE2ODQ5LCA2NTAzMSwgCi0gICAgNjUwMzUsIDM5NjQsIDExMzg0LCA2NTA0MSwgNjUwNDgsIDYwNjU2LCA2NTA1MiwgNjUwNTYsIDM5ODgsIDE4OSwgMTQxNDYsIAotICAgIDY1MDYyLCA2NTA3NCwgNjUwNzgsIDY1MDg0LCAyNzczMCwgNjUwODgsIDExMzcyLCAyNzMwLCA0LCA2NTA5MywgNjUxMDMsIAotICAgIDY1MTA5LCA2NTEyMCwgNjUxMjcsIDY1MTMzLCA2NTEzOSwgNjUxNDcsIDY1MTU0LCA2NTE2MCwgNjUxNzAsIDY1MTgwLCAKLSAgICA2NTE5MCwgMjM0ODIsIDEzMDksIDY1MTk5LCA2NTIwMywgNjUyMDcsIDY1MjEzLCA2NTIxNywgMjc1MywgMjc1OSwgODUzMiwgCi0gICAgMjI2NCwgNjUyMjEsIDY1MjI1LCA2NTIzNCwgNjUyNDIsIDY1MjUzLCA2NTI2MSwgNjUyNjksIDY1Mjc1LCA2NTI4MCwgCi0gICAgNjUyOTEsIDY1MzAyLCA2NTMxMCwgNjUzMTYsIDk2ODcsIDY1MzIxLCA2NTMyOSwgNjUzMzMsIDY1MzM3LCA2NTM0MSwgCi0gICAgNjUzNTMsIDI4MTE1LCA2NTM2MCwgNjUzNzAsIDY1Mzc2LCA2NTM4MiwgOTc4OSwgNjUzOTIsIDY1NDAzLCA2NTQxMywgCi0gICAgNjU0MjIsIDY1NDI2LCA2NTQzMywgMTEzNSwgMTE3MCwgNjU0NDMsIDY1NDQ4LCA2NTQ1NiwgNjU0NjQsIDY1NDc1LCAKLSAgICA2NTQ4MiwgNjU0OTYsIDE0MDc1LCAzOTMsIDY1NTA2LCA2NTUxMCwgNjU1MTgsIDY1NTI3LCA2NTUzNSwgNjU1NDEsIAotICAgIDY1NTU1LCA2NTU2MiwgNjU1NjgsIDY1NTc3LCA2NTU4NCwgNjU1OTQsIDY1NjAyLCAzODEyLCAxNTYsIDY1NjEwLCA2NTYyMSwgCi0gICAgNjU2MjUsIDY1NjM3LCAyNzkyOCwgMTYxLCA2NTY0MywgNjU2NDgsIDY1NjUyLCA2NTY1OSwgNjU2NjUsIDY1NjczLCAKLSAgICA2NTY4MCwgODgxOCwgNjU2ODcsIDY1Njk2LCA2NTcwNCwgMzg3OCwgNjU3MTcsIDgxOTksIDY1NzIxLCAyNzk4LCA0NTAsIAotICAgIDY1NzI2LCA2NTczOSwgNjU3NDQsIDE4MzMsIDY2OCwgNjU3NDgsIDM4OTUsIDY1NzU2LCA2NTc2MiwgNjU3NjYsIDkzMSwgCi0gICAgNjU3NzYsIDY1Nzg1LCA2NTc5MCwgMTQ5MTUsIDE0OTIyLCA0NTIzMiwgNjU3OTQsIDM4MjIsIDEzMDM0LCA2NTgwMiwgCi0gICAgNjU4MDksIDIzNTM4LCA2NTgxMywgNjU4MjAsIDY1ODI2LCA2NTgzMSwgNjU4MzYsIDE0OTM1LCAzNzIsIDY1ODQxLCAKLSAgICA2NTg1MywgNjU4NTksIDY1ODY3LCAyODEwLCAxNzUzLCA2NTg3NSwgNjU4NzcsIDY1ODgyLCA2NTg4NywgNjU4OTIsIAotICAgIDY1ODk4LCA2NTkwMywgNjU5MDgsIDY1OTEzLCA2NTkxOCwgNjU5MjMsIDY1OTI4LCA2NTkzNCwgNjU5MzksIDY1OTQ0LCAKLSAgICA2NTk0OSwgNjU5NTQsIDY1OTU5LCA2NTk2NCwgNjU5NjksIDY1OTc0LCA2NTk4MCwgNjU5ODUsIDY1OTkwLCA2NTk5NSwgCi0gICAgNjYwMDEsIDY2MDA2LCA2NjAxMiwgNjYwMTcsIDY2MDIyLCA2NjAyNywgNjYwMzIsIDY2MDM3LCA2NjA0MiwgNjYwNDcsIAotICAgIDY2MDUzLCA2NjA1OCwgNjYwNjQsIDY2MDY5LCA2NjA3NCwgNjYwNzksIDY2MDg0LCA2NjA4OSwgNjYwOTQsIDY2MDk5LCAKLSAgICA2NjEwNCwgNjYxMTAsIDY2MTE1LCA2NjEyMCwgNjYxMjUsIDY2MTI5LCA2NjEzMywgNjYxMzgsIDY2MTQyLCA2NjE0NywgCi0gICAgNjYxNTIsIDY2MTU4LCA2NjE2MywgNjYxNjcsIDY2MTcyLCA2NjE3NiwgNjYxNzksIDY2MTgxLCA2NjE4NSwgNjYxODgsIAotICAgIDY2MTkzLCA2NjE5NywgNjYyMDEsIDY2MjA1LCA2NjIwOSwgNjYyMTgsIDY2MjIyLCAzMjUyNCwgNjYyMjUsIDMyNTI5LCAKLSAgICA2NjIzMiwgNjYyMzcsIDMyNTM0LCA2NjI0NiwgNjYyNTUsIDMyNTQwLCA2NjI2MCwgMzI1NDUsIDY2MjY5LCA2NjI3NCwgCi0gICAgMTE1NzEsIDY2Mjc4LCA2NjI4MywgNjYyODgsIDMyNTUwLCA2NjI5MiwgNDAxOTYsIDY2Mjk2LCA2NjI5OSwgNjYzMDMsIAotICAgIDgyMTEsIDY2MzA5LCA2NjMxNCwgNjYzMTgsIDM3MDUsIDMyNTU1LCA2NjMyMSwgNjYzMjUsIDY2MzI4LCA2NjMzMywgCi0gICAgNjYzMzcsIDY2MzQzLCA2NjM1MSwgNjYzNjQsIDY2MzczLCA2NjM3OSwgNjYzODQsIDY2MzkwLCA2NjM5NCwgNjY0MDAsIAotICAgIDY2NDA4LCA2NjQxMywgNjY0MTcsIDY2NDI0LCA2NjQzMCwgNjY0MzgsIDY2NDQ3LCA2NjQ1NSwgMzI1NTgsIDY2NDYyLCAKLSAgICA2NjQ3MiwgNjY0ODEsIDY2NDk0LCA2NjQ5OSwgNjY1MDQsIDY2NTEzLCA2NjUxOSwgNjY1MjYsIDY2NTM3LCA2NjU0OSwgCi0gICAgNjY1NTYsIDY2NTY1LCA2NjU3NCwgNjY1ODMsIDY2NTkwLCA2NjU5NiwgNjY2MDMsIDY2NjExLCA2NjYxOCwgNjY2MjYsIAotICAgIDY2NjM1LCA2NjY0MywgNjY2NTAsIDY2NjU4LCA2NjY2NywgNjY2NzUsIDY2Njg0LCA2NjY5NCwgNjY3MDMsIDY2NzExLCAKLSAgICA2NjcxOCwgNjY3MjYsIDY2NzM1LCA2Njc0MywgNjY3NTIsIDY2NzYyLCA2Njc3MSwgNjY3NzksIDY2Nzg4LCA2Njc5OCwgCi0gICAgNjY4MDcsIDY2ODE3LCA2NjgyOCwgNjY4MzgsIDY2ODQ3LCA2Njg1NSwgNjY4NjIsIDY2ODcwLCA2Njg3OSwgNjY4ODcsIAotICAgIDY2ODk2LCA2NjkwNiwgNjY5MTUsIDY2OTIzLCA2NjkzMiwgNjY5NDIsIDY2OTUxLCA2Njk2MSwgNjY5NzIsIDY2OTgyLCAKLSAgICA2Njk5MSwgNjY5OTksIDY3MDA4LCA2NzAxOCwgNjcwMjcsIDY3MDM3LCA2NzA0OCwgNjcwNTgsIDY3MDY3LCA2NzA3NywgCi0gICAgNjcwODgsIDY3MDk4LCA2NzEwOSwgNjcxMjEsIDY3MTMyLCA2NzE0MiwgNjcxNTEsIDY3MTU5LCA2NzE2NiwgNjcxNzQsIAotICAgIDY3MTgzLCA2NzE5MSwgNjcyMDAsIDY3MjEwLCA2NzIxOSwgNjcyMjcsIDY3MjM2LCA2NzI0NiwgNjcyNTUsIDY3MjY1LCAKLSAgICA2NzI3NiwgNjcyODYsIDY3Mjk1LCA2NzMwMywgNjczMTIsIDY3MzIyLCA2NzMzMSwgNjczNDEsIDY3MzUyLCA2NzM2MiwgCi0gICAgNjczNzEsIDY3MzgxLCA2NzM5MiwgNjc0MDIsIDY3NDEzLCA2NzQyNSwgNjc0MzYsIDY3NDQ2LCA2NzQ1NSwgNjc0NjMsIAotICAgIDY3NDcyLCA2NzQ4MiwgNjc0OTEsIDY3NTAxLCA2NzUxMiwgNjc1MjIsIDY3NTMxLCA2NzU0MSwgNjc1NTIsIDY3NTYyLCAKLSAgICA2NzU3MywgNjc1ODUsIDY3NTk2LCA2NzYwNiwgNjc2MTUsIDY3NjI1LCA2NzYzNiwgNjc2NDYsIDY3NjU3LCA2NzY2OSwgCi0gICAgNjc2ODAsIDY3NjkwLCA2NzcwMSwgNjc3MTMsIDY3NzI0LCA2NzczNiwgNjc3NDksIDY3NzYxLCA2Nzc3MiwgNjc3ODIsIAotICAgIDY3NzkxLCA2Nzc5OSwgNjc4MDYsIDY3ODE0LCA2NzgyMywgNjc4MzEsIDY3ODQwLCA2Nzg1MCwgNjc4NTksIDY3ODY3LCAKLSAgICA2Nzg3NiwgNjc4ODYsIDY3ODk1LCA2NzkwNSwgNjc5MTYsIDY3OTI2LCA2NzkzNSwgNjc5NDMsIDY3OTUyLCA2Nzk2MiwgCi0gICAgNjc5NzEsIDY3OTgxLCA2Nzk5MiwgNjgwMDIsIDY4MDExLCA2ODAyMSwgNjgwMzIsIDY4MDQyLCA2ODA1MywgNjgwNjUsIAotICAgIDY4MDc2LCA2ODA4NiwgNjgwOTUsIDY4MTAzLCA2ODExMiwgNjgxMjIsIDY4MTMxLCA2ODE0MSwgNjgxNTIsIDY4MTYyLCAKLSAgICA2ODE3MSwgNjgxODEsIDY4MTkyLCA2ODIwMiwgNjgyMTMsIDY4MjI1LCA2ODIzNiwgNjgyNDYsIDY4MjU1LCA2ODI2NSwgCi0gICAgNjgyNzYsIDY4Mjg2LCA2ODI5NywgNjgzMDksIDY4MzIwLCA2ODMzMCwgNjgzNDEsIDY4MzUzLCA2ODM2NCwgNjgzNzYsIAotICAgIDY4Mzg5LCA2ODQwMSwgNjg0MTIsIDY4NDIyLCA2ODQzMSwgNjg0MzksIDY4NDQ4LCA2ODQ1OCwgNjg0NjcsIDY4NDc3LCAKLSAgICA2ODQ4OCwgNjg0OTgsIDY4NTA3LCA2ODUxNywgNjg1MjgsIDY4NTM4LCA2ODU0OSwgNjg1NjEsIDY4NTcyLCA2ODU4MiwgCi0gICAgNjg1OTEsIDY4NjAxLCA2ODYxMiwgNjg2MjIsIDY4NjMzLCA2ODY0NSwgNjg2NTYsIDY4NjY2LCA2ODY3NywgNjg2ODksIAotICAgIDY4NzAwLCA2ODcxMiwgNjg3MjUsIDY4NzM3LCA2ODc0OCwgNjg3NTgsIDY4NzY3LCA2ODc3NywgNjg3ODgsIDY4Nzk4LCAKLSAgICA2ODgwOSwgNjg4MjEsIDY4ODMyLCA2ODg0MiwgNjg4NTMsIDY4ODY1LCA2ODg3NiwgNjg4ODgsIDY4OTAxLCA2ODkxMywgCi0gICAgNjg5MjQsIDY4OTM0LCA2ODk0NSwgNjg5NTcsIDY4OTY4LCA2ODk4MCwgNjg5OTMsIDY5MDA1LCA2OTAxNiwgNjkwMjgsIAotICAgIDY5MDQxLCA2OTA1MywgNjkwNjYsIDY5MDgwLCA2OTA5MywgNjkxMDUsIDY5MTE2LCA2OTEyNiwgNjkxMzUsIDY5MTQzLCAKLSAgICA2OTE1MCwgNjkxNTUsIDgwNTgsIDY5MTYyLCAzMjU2OCwgNjkxNjcsIDY5MTcyLCAzMjU3MywgNjkxNzgsIDIwOTE2LCAKLSAgICAzMjU3OCwgNjkxODMsIDY5MTg5LCA2OTE5NywgNjkyMDMsIDY5MjA5LCA2OTIxNiwgNjkyMjMsIDY5MjI4LCA2OTIzMiwgCi0gICAgNjkyMzUsIDY5MjM5LCA2OTI0OCwgNjkyNTQsIDY5MjY2LCA2OTI3NywgNjkyODEsIDMwODEsIDgwMzMsIDY5Mjg2LCAKLSAgICA2OTI4OSwgNjkyOTEsIDY5Mjk1LCA2OTI5OSwgNjkzMDMsIDY5MzA5LCA2OTMxNCwgMjU5MjcsIDY5MzE5LCA2OTMyMywgCi0gICAgNjkzMjYsIDY5MzMxLCA2OTMzNSwgNjkzNDIsIDY5MzQ4LCA2OTM1MiwgNjE3MCwgNjkzNTYsIDMyNTk1LCA2OTM2MSwgCi0gICAgNjkzNjgsIDY5Mzc3LCA2OTM4NSwgNjkzOTYsIDY5NDA0LCA2OTQxMiwgNjk0MTksIDY5NDI2LCA2OTQzMiwgNjk0NDMsIAotICAgIDMyNjAwLCA2OTQ0OCwgNjk0NTksIDY5NDcxLCA2OTQ3OSwgNjk0OTAsIDY5NDk5LCA2OTUxMCwgNjk1MTUsIDY5NTIzLCAKLSAgICAyNTU2LCA2OTUyOCwgMzQyNzAsIDY5NTQxLCA2OTU0NSwgNjk1NTcsIDY5NTY1LCA2OTU3MCwgNjk1NzgsIDE3NDcyLCAKLSAgICA2OTU4OSwgNjk1OTUsIDY5NjAyLCA2OTYxMCwgNjk2MTYsIDMyNjEwLCA2OTYyMSwgMzkxNCwgNTgyMTcsIDY5NjI4LCAKLSAgICA2OTYzMSwgNjk2MzksIDY5NjUyLCA2OTY2NSwgNjk2NzgsIDY5NjkxLCA2OTY5OCwgNjk3MDksIDY5NzE4LCA0MTY4NywgCi0gICAgNDE2OTIsIDY5NzIzLCA2OTcyNywgNjk3MzUsIDY5NzQyLCA2OTc1MSwgNjk3NTksIDY5NzY1LCA2OTc3NCwgNjk3ODIsIAotICAgIDY5NzkwLCA2OTc5NCwgNjk4MDMsIDY5ODEyLCA2OTgyMiwgNjk4MzUsIDY5ODQ4LCA2OTg1OCwgMzI2MTUsIDY5ODY0LCAKLSAgICA2OTg3MSwgNjk4NzcsIDMyNjIxLCA2OTg4MiwgNjk4ODUsIDY5ODg5LCA2OTg5NywgNjk5MDYsIDQxNDI1LCA2OTkxNCwgCi0gICAgNjk5MjMsIDY5OTMxLCA2OTkzOCwgNjk5NDYsIDY5OTU2LCA2OTk2NSwgNjk5NzQsIDY5OTgzLCA2OTk5MSwgNzAwMDIsIAotICAgIDcwMDEyLCA5MzU5LCAyMTU1NCwgNzAwMjEsIDcwMDI2LCA3MDAzMSwgNzAwMzUsIDcwMDM5LCA3MDA0NCwgNzAwNTAsIAotICAgIDcwMDU1LCA3MDA2MCwgNzAwNjYsIDcwMDcxLCA3MDA3NiwgMjE1MTksIDcwMDgxLCA3MDA4OCwgNzAwOTYsIDcwMTA0LCAKLSAgICA3MDEwOSwgNzAxMTYsIDcwMTIzLCA3MDEyOCwgNzAxMzIsIDcwMTM2LCA3MDE0NCwgNzAxNTIsIDMyNjM4LCA3MDE1OCwgCi0gICAgNzAxNjQsIDcwMTc2LCA3MDE4MiwgNzAxODYsIDcwMTkzLCA3MDE5OCwgNzAyMDksIDcwMjE5LCA3MDIyOSwgNzAyNDEsIAotICAgIDcwMjQ3LCA3MDI1NywgNzAyNjcsIDMyNjY1LCA3MDI3NiwgNzAyODUsIDcwMjkxLCA3MDMwMywgNzAzMTQsIDcwMzIxLCAKLSAgICA3MDMyNiwgNzAzMzAsIDcwMzM4LCA3MDM0NCwgNzAzNDksIDcwMzU0LCA3MDM2MSwgNzAzNjksIDcwMzgxLCA3MDM5MSwgCi0gICAgNzA0MDAsIDcwNDA5LCA3MDQxNiwgMzQxMzIsIDIzODM0LCA3MDQyMiwgNzA0MjcsIDcwNDMxLCA3MDQzNSwgNzA0NDAsIAotICAgIDcwNDQ2LCA3MDQ1NywgNzA0NzAsIDcwNDc1LCA3MDQ4MiwgMzI2NzAsIDcwNDg3LCA3MDQ5OSwgNzA1MDgsIDcwNTE4LCAKLSAgICA3MDUyOSwgNzA1NDIsIDcwNTQ5LCA3MDU1OCwgNzA1NjcsIDcwNTc1LCA3MDU4MCwgNzA1ODYsIDEwNTgsIDcwNTkxLCAKLSAgICA3MDU5NiwgNzA2MDEsIDcwNjA2LCA3MDYxMiwgNzA2MTcsIDcwNjIyLCA3MDYyOCwgNzA2MzQsIDcwNjM5LCA3MDY0MywgCi0gICAgNzA2NDgsIDcwNjUzLCA3MDY1OCwgNTg3MjksIDcwNjYzLCA3MDY2OCwgNzA2NzMsIDcwNjc4LCA3MDY4NCwgNzA2OTAsIAotICAgIDcwNjk1LCA3MDY5OSwgNzA3MDQsIDcwNzA5LCA3MDcxNCwgNzA3MjAsIDcwNzI1LCA3MDczMSwgNzA3MzYsIDcwNzQxLCAKLSAgICA3MDc0NiwgNzA3NTEsIDcwNzU1LCA3MDc2MSwgNzA3NjYsIDcwNzc1LCA3MDc4MCwgNzA3ODUsIDcwNzkwLCA3MDc5NSwgCi0gICAgNzA3OTksIDcwODA2LCA3MDgxMiwgMTcxMjIsIDE3MTI5LCA3MDgxNywgNzA4MjEsIDcwODI1LCA3MDgyOSwgNzA4MzMsIAotICAgIDQ1NDg3LCA3MDgzNywgNzA3NjcsIDcwODM5LCA3MDg0OSwgMzI2NzksIDcwODUyLCA3MDg2MSwgNzA4NjcsIDYxNDMsIAotICAgIDMyNjg0LCA3MDg3MSwgNzA4NzcsIDcwODgyLCA3MDg4OCwgNzA4OTMsIDcwODk3LCA3MDkwNCwgNzA5MDksIDcwOTE5LCAKLSAgICA3MDkyOCwgNzA5MzIsIDcwOTM4LCA3MDk0NCwgNzA5NTAsIDcwOTU0LCA3MDk2MiwgNzA5NjksIDcwOTc3LCA3MDk4NSwgCi0gICAgMzI2ODksIDcwOTkyLCA3MDk5NSwgNzEwMDIsIDcxMDA4LCA3MTAxMywgNzEwMTcsIDcxMDIzLCA3MTAzMCwgNzEwMzUsIAotICAgIDcxMDM5LCA3MTA0OCwgNzEwNTYsIDcxMDYyLCA3MTA2NywgMzI2OTQsIDcxMDc0LCA3MTA4MSwgNzEwODcsIDcxMDkyLCAKLSAgICA3MTA5OCwgNzExMDUsIDcxMTExLCAyMTI4MSwgMjc0MzgsIDcxMTE3LCA3MTEyMiwgNzExMjgsIDcxMTQwLCA3MDgwMCwgCi0gICAgNzA4MDcsIDIxNDU3LCA3MTE1MCwgNzExNTUsIDcxMTYyLCA3MTE2OCwgNzExNzUsIDcxMTgxLCA3MTE5MiwgNzExOTcsIAotICAgIDkxMDMsIDcxMjA1LCA3MTIwOCwgNzEyMTQsIDcxMjE4LCA3MTIyMiwgNzEyMjUsIDcxMjMxLCAzMjQ0MywgNjE5NCwgOTY0LCAKLSAgICAxMzQxMiwgNzEyMzgsIDcxMjQ0LCA3MTI1MCwgNzEyNTYsIDcxMjYyLCA3MTI2OCwgNzEyNzQsIDcxMjgwLCA3MTI4NiwgCi0gICAgNzEyOTEsIDcxMjk2LCA3MTMwMSwgNzEzMDYsIDcxMzExLCA3MTMxNiwgNzEzMjEsIDcxMzI2LCA3MTMzMSwgNzEzMzYsIAotICAgIDcxMzQxLCA3MTM0NiwgNzEzNTEsIDcxMzU3LCA3MTM2MiwgNzEzNjcsIDcxMzczLCA3MTM3OCwgNzEzODMsIDcxMzg5LCAKLSAgICA3MTM5NSwgNzE0MDEsIDcxNDA3LCA3MTQxMywgNzE0MTksIDcxNDI1LCA3MTQzMSwgNzE0MzcsIDcxNDQyLCA3MTQ0NywgCi0gICAgNzE0NTMsIDcxNDU4LCA3MTQ2MywgNzE0NjksIDcxNDc0LCA3MTQ3OSwgNzE0ODQsIDcxNDg5LCA3MTQ5NCwgNzE0OTksIAotICAgIDcxNTA0LCA3MTUwOSwgNzE1MTQsIDcxNTE5LCA3MTUyNCwgNzE1MjksIDcxNTM1LCA3MTU0MCwgNzE1NDUsIDcxNTUwLCAKLSAgICA3MTU1NiwgNzE1NjEsIDcxNTY2LCA3MTU3MSwgNzE1NzYsIDcxNTgyLCA3MTU4NywgNzE1OTIsIDcxNTk3LCA3MTYwMiwgCi0gICAgNzE2MDcsIDcxNjEyLCA3MTYxNywgNzE2MjIsIDcxNjI3LCA3MTYzMiwgNzE2MzcsIDcxNjQyLCA3MTY0NywgNzE2NTIsIAotICAgIDcxNjU3LCA3MTY2MiwgNzE2NjcsIDcxNjcyLCA3MTY3NywgNzE2ODMsIDcxNjg4LCA3MTY5MywgNzE2OTgsIDcxNzAzLCAKLSAgICA3MTcwOCwgNzE3MTMsIDcxNzE4LCAxODY0LCAxNDIsIDcxNzIzLCA3MTcyNywgNzE3MzEsIDcxNzM2LCA3MTc0NCwgNzE3NDgsIAotICAgIDcxNzU1LCA3MTc2MywgNzE3NjcsIDcxNzgwLCA3MTc4OCwgNzE3OTIsIDcxNzk1LCA3MTgwMCwgNzE4MDQsIDcxODA5LCAKLSAgICA3MTgxMywgNzE4MjEsIDcxODI1LCAyMDkyNCwgNzE4MzAsIDcxODM0LCA2MDkzMCwgNzE4MzgsIDcxODQxLCA3MTg0OSwgCi0gICAgNzE4NTcsIDcxODY1LCA3MTg3MCwgNzE4NzcsIDcxODgzLCA3MTg4OSwgNzE4OTQsIDcxOTAxLCA3MTkwNiwgNzE5MTQsIAotICAgIDY0OTA2LCA3MTkyMSwgNzE5MjYsIDcxOTMxLCA3MTkzNSwgMTE2MzgsIDcxOTM5LCA3MTk0NCwgNzE5NDksIDcxOTUzLCAKLSAgICA3MTk1NiwgNzE5NjIsIDcxOTY2LCA3MTk3NiwgNzE5ODUsIDcxOTg4LCA3MTk5MiwgNzE5OTksIDcyMDEyLCA3MjAxOCwgCi0gICAgNzIwMjYsIDcyMDM3LCA3MjA0OCwgNzIwNTksIDcyMDcwLCA3MjA3OSwgNzIwODUsIDcyMDk0LCA3MjEwMiwgNzIxMTIsIAotICAgIDcyMTI1LCA3MjEzMiwgNzIxNDMsIDcyMTQ5LCA3MjE1NCwgNzIxNTksIDcyMTY1LCA3MjE3MSwgNzIxODEsIDcyMTkwLCAKLSAgICA3MDQ4OSwgNzIxOTgsIDcyMjA0LCA3MjIxMiwgNzIyMTgsIDcyMjI2LCA3MjIyOSwgNzIyMzMsIDcyMjM3LCA3MjI0MCwgCi0gICAgNzIyNDYsIDcyMjUyLCA3MjI2MCwgNzIyNzIsIDcyMjg0LCA3MjI5MSwgNzIyOTUsIDcyMzA2LCA3MjMxNCwgNzIzMjEsIAotICAgIDcyMzMzLCA3MjM0MSwgNzIzNDksIDcyMzU2LCA3MjM2MiwgNzIzNzIsIDcyMzgxLCA3MjM4NiwgNzIzOTYsIDcyNDA1LCAKLSAgICA0MDc1MSwgNzI0MTIsIDcyNDE2LCA3MjQyMSwgNzI0MjksIDcyNDM2LCA3MjQ0MiwgNzI0NDYsIDcyNDU2LCA3MjQ2NywgCi0gICAgNzI0NzUsIDcyNDgyLCA3MjQ5NCwgNzI1MDYsIDcyNTE1LCA2OTUzMSwgNzI1MjIsIDcyNTMzLCA3MjU0NywgNzI1NTUsIAotICAgIDcyNTY1LCA3MjU3MiwgNzI1ODAsIDcyNTkyLCA3MjYwMSwgNzI2MDksIDcyNjE5LCA3MjYzMCwgNzI2NDIsIDcyNjUxLCAKLSAgICA3MjY2MSwgNzI2NjgsIDcyNjc3LCA3MjY5MiwgNzI3MDAsIDcyNzEwLCA3MjcxOSwgNzI3MjcsIDcyNzQwLCA3Mjc1NSwgCi0gICAgNzI3NTksIDcyNzY4LCA3Mjc4MCwgNzI3OTEsIDcyODAyLCA3MjgxMywgNzI4MjMsIDcyODM0LCA3Mjg0MiwgNzI4NDgsIAotICAgIDcyODU4LCA3Mjg2NiwgNzI4NzIsIDI5MDA3LCA3Mjg3NywgNzI4ODMsIDcyODg4LCA3Mjg5NSwgOTcwMSwgMTc0OTIsIAotICAgIDcyOTAxLCA3MjkxMCwgNzI5MTUsIDcyOTE5LCA3MjkyNiwgNzI5MzIsIDcyOTM3LCA3Mjk0MiwgNzI5NTAsIDcyOTU4LCAKLSAgICA3Mjk2MiwgNzI5NjUsIDcyOTY4LCA3Mjk3MCwgNzI5NzcsIDcyOTgzLCA3Mjk5NCwgNzI5OTksIDczMDAzLCA3MzAxMCwgCi0gICAgNzMwMTYsIDczMDIxLCA3MzAyOSwgNjU0MDUsIDY1NDE1LCA3MzAzNSwgNzMwNDIsIDczMDUyLCAxMDYxMSwgNzMwNTksIAotICAgIDczMDY0LCAyOTIwMywgNzMwNzMsIDczMDc4LCA3MzA4NSwgNzMwOTUsIDczMTAzLCA3MzExMSwgNzMxMjAsIDczMTI2LCAKLSAgICA3MzEzMiwgNzMxMzksIDczMTQ2LCA3MzE1MSwgNzMxNTUsIDczMTYzLCA3MzE2OCwgNzMxNzMsIDczMTgxLCA3MzE4OCwgCi0gICAgNzMxOTMsIDczMTk5LCA3MzIwMiwgNzMyMDYsIDczMjE1LCA3MTc3NSwgNzMyMjQsIDczMjI4LCA3MzIzNCwgNzMyNDUsIAotICAgIDczMjU1LCAxNzUwMSwgNzMyNjYsIDczMjc0LCAxNzUxMywgNzMyODEsIDczMjg1LCA3MzI5NCwgMjczMjQsIDczMzAxLCAKLSAgICA3MzMwNSwgNzMzMTAsIDczMzI3LCA3MzMzOSwgMTA1NjksIDczMzUxLCA3MzM1NiwgNzMzNjEsIDczMzY2LCAyMDk5NywgCi0gICAgNzMzNzAsIDczMzc1LCA3MzM4MCwgNzMzODYsIDczMzkxLCA1ODQ2LCAyMTAwMSwgNzMzOTYsIDczNDAxLCA3MzQwNywgCi0gICAgNzM0MTQsIDczNDE5LCA3MzQyNCwgNzM0MzAsIDczNDM2LCA3MzQ0MiwgNzM0NDcsIDczNDUzLCA3MzQ1NywgNzM0NzEsIAotICAgIDczNDc5LCA3MzQ4NywgNzM0OTMsIDczNDk4LCA3MzUwNSwgNzM1MTUsIDczNTI0LCA3MzUyOSwgNzM1MzQsIDczNTQyLCAKLSAgICA3MzU0NywgNzM1NTMsIDczNTU4LCA3MzU2NywgNTk3ODYsIDczNTcyLCA3MzU3NSwgNzM1OTMsIDczNjEyLCA3MzYyNSwgCi0gICAgNzM2MzksIDczNjU1LCA3MzY2MiwgNzM2NjksIDczNjc1LCA3MzY4MiwgNzM2ODcsIDczNjkzLCA3MzY5OSwgNzM3MDcsIAotICAgIDczNzEzLCA3MzcxOCwgNzM3MjMsIDczNzM5LCAxMDU4MiwgNzM3NTMsIDczNzYwLCA3Mzc2OCwgNzM3NzQsIDczNzc4LCAKLSAgICA3Mzc4MSwgNzM3ODYsIDczNzkxLCA3Mzc5OCwgNzM4MDMsIDczODEyLCA3MzgxNywgNzM4MjMsIDczODMyLCA3Mzg0MSwgCi0gICAgNzM4NDYsIDczODUwLCA3Mzg1OCwgNzM4NjcsIDExNjY3LCA3Mzg3NiwgNzM4ODQsIDczODg5LCA3Mzg5NSwgMTE2NzgsIAotICAgIDczOTAwLCA3MzkwMywgNzM5MDgsIDczOTE4LCA3MzkyNywgNzM5MzIsIDczOTM4LCA3Mzk0MywgNzM5NTEsIDczOTU4LCAKLSAgICA3Mzk2OSwgNzM5NzksIDczOTg0LCA2NDgzNCwgNzM5ODksIDczOTk1LCA3NDAwMCwgNzQwMDcsIDc0MDE2LCA3NDAyNCwgCi0gICAgNzQwMzAsIDc0MDM2LCA3NDA0MywgNzQwNDksIDc0MDUzLCAxNjk0NywgMzA1NSwgNzQwNTgsIDc0MDYyLCA3NDA2NiwgCi0gICAgNzQwNzIsIDc0MDgxLCA3NDA4NywgNzQwOTQsIDc0MDk4LCA3NDExOSwgNzQxNDEsIDc0MTU3LCA3NDE3NCwgNzQxOTMsIAotICAgIDc0MjAyLCA3NDIxMiwgNzQyMTksIDc0MjI2LCAyNzIxMSwgNzQyMzIsIDc0MjM2LCA3NDI0NCwgNzQyNTYsIDc0MjYyLCAKLSAgICA3NDI3MCwgNzQyNzQsIDc0MjgyLCA3NDI4OSwgNzQyOTMsIDc0Mjk5LCA3NDMwNSwgNzQzMTAsIDM1NjMsIDQxODg3LCAKLSAgICA3NDMxNiwgNzQzMjAsIDc0MzI0LCA3NDMyOCwgNzQzMzMsIDc0MzM4LCA3NDM0MywgNzQzNDksIDc0MzU1LCA3NDM2MSwgCi0gICAgNzQzNjgsIDc0Mzc0LCA3NDM4MSwgNzQzODcsIDc0MzkzLCA3NDM5OCwgNzQ0MDQsIDc0NDA5LCA3NDQxMywgNzQ0MTgsIAotICAgIDc0NDIyLCA3NDQyNywgNDE5MDIsIDc0NDMxLCA3NDQzNiwgNzQ0NDQsIDc0NDQ4LCA3NDQ1MywgNzQ0NjAsIDc0NDY5LCAKLSAgICA3NDQ3NSwgNzQ0NzksIDc0NDg2LCA3NDQ5MCwgNzQ0OTMsIDc0NTAwLCA3NDUwOSwgNzQ1MTQsIDc0NTE4LCA3NDUyNiwgCi0gICAgNzQ1MzUsIDc0NTM5LCA3NDU0NywgNzQ1NTMsIDc0NTU4LCA3NDU2MywgNzQ1NjksIDc0NTc1LCA3NDU4MCwgNzQ1ODQsIAotICAgIDc0NTkwLCA3NDU5NSwgNzQ1OTksIDc0NjAzLCA3NDYwNiwgNzQ2MTEsIDc0NjE5LCA3NDYyOSwgNzQ2MzQsIDM5Mzg3LCAKLSAgICA3NDY0MiwgNzQ2NTQsIDc0NjU4LCA3NDY2NCwgNzQ2NzYsIDc0Njg3LCA3NDY5NCwgNzQ3MDAsIDc0NzA3LCA3NDcxOSwgCi0gICAgNzQ3MjYsIDc0NzMyLCAyMTA3NSwgNzQ3MzYsIDc0NzQyLCA3NDc0OSwgNzQ3NTUsIDc0NzYxLCA3NDc2NiwgNzQ3NzEsIAotICAgIDc0Nzc2LCA3NDc4NSwgNzAzMywgNzQ3OTAsIDE2NDEzLCA3NDc5NiwgNzQ4MDAsIDc0ODA0LCA3NDgwOCwgNzQ4MTYsIAotICAgIDc0ODI1LCA3NDgyOSwgNzQ4MzYsIDc0ODQ1LCA3NDg1OCwgNzQ4NjQsIDc0NDIzLCAzMDA2NywgNzQ4NjksIDc0ODcxLCAKLSAgICA3NDg3NiwgNzQ4ODEsIDc0ODg2LCA3NDg5MSwgNzQ4OTYsIDc0OTAxLCA3NDkwNiwgNzQ5MTEsIDc0OTE2LCA3NDkyMSwgCi0gICAgNzQ5MjYsIDc0OTMxLCA3NDkzNiwgNzQ5NDEsIDc0OTQ3LCA3NDk1MiwgNzQ5NTcsIDc0OTYyLCA3NDk2NywgNzQ5NzIsIAotICAgIDc0OTc3LCA3NDk4MiwgNzQ5ODcsIDc0OTkzLCA3NDk5OSwgNzUwMDUsIDc1MDEwLCA3NTAxNSwgNzUwMjcsIDc1MDMyLCAKLSAgICAxODcwLCA0OSwgNzUwMzcsIDc1MDQyLCAzMjcyMSwgNzUwNDYsIDMyNzI2LCAzMjczMSwgMzI3MzcsIDMyNzQyLCA3NTA1MCwgCi0gICAgMzI3NDcsIDIyMDcwLCA3NTA3MiwgNzUwNzYsIDc1MDgwLCA3NTA4NSwgNzUwODksIDMyNzUxLCA3NTA5MywgNzUxMDEsIAotICAgIDMyNzU2LCA3NTEwOCwgNzUxMTEsIDc1MTE2LCA3NTEyMCwgOTUzNiwgNzUxMjksIDMyNzYxLCAyMTkzMiwgNzUxMzIsIAotICAgIDc1MTM2LCAxNDI4LCA3NTE0MSwgMzI3NzIsIDc1MTQ0LCA3NTE0OSwgMjU3MjAsIDI1NzMwLCAzNTIzMywgNzUxNTQsIAotICAgIDc1MTU5LCA3NTE2NCwgNzUxNjksIDc1MTc1LCA3NTE4MCwgNzUxODksIDc1MTk0LCA3NTIwMSwgNzUyMDcsIDc1MjEyLCAKLSAgICA3NTIxNywgNzUyMjIsIDc1MjMyLCA3NTI0MSwgNzUyNDYsIDc1MjU0LCA3NTI1OCwgNzUyNjYsIDMyNTg2LCAzNzI4OCwgCi0gICAgNzUyNzMsIDc1Mjc5LCA3NTI4NCwgNzUyODksIDEyMDA5LCA3NTI5NCwgNzUzMDAsIDc1MzA1LCA3NTMxMiwgNzUzMTgsIAotICAgIDc1MzIzLCA3NTMzMSwgNzUzNDEsIDc1MzUxLCA3NTM1NywgNzUzNjIsIDc1MzY4LCAxNzUyMywgNzUzNzUsIDM2MDQ4LCAKLSAgICA3NTM4OCwgNzUzOTMsIDc1Mzk5LCAzMDk2OCwgNzU0MTIsIDc1NDE4LCA3NTQyMiwgNzU0MzEsIDc1NDM4LCA3NTQ0NCwgCi0gICAgNzU0NTIsIDc1NDYxLCA3NTQ2OCwgNzU0NzQsIDc1NDc3LCA3NTQ4MSwgMjU4NjEsIDc1NDg1LCA3NTQ5MiwgNzU0OTgsIAotICAgIDc1NTA2LCA3NTUxMSwgMjM5NzcsIDc1NTE3LCA3NTUyMCwgNzU1MjgsIDc1NTM2LCA3NTU1MCwgNzU1NTcsIDc1NTYzLCAKLSAgICA3NTU3MCwgNzU1NzYsIDMyNzg2LCA3NTU4MCwgNzU1ODcsIDc1NTk1LCA3NTYwMywgNzU2MDksIDMyNzkxLCA3NTYxNywgCi0gICAgNzU2MjMsIDc1NjI4LCA3NTYzOCwgNzU2NDQsIDc1NjUzLCAzMDgwNSwgMzQ2OTEsIDc1NjYxLCA3NTY2NiwgNzU2NzEsIAotICAgIDc1Njc1LCA3NTY4MCwgNzU2ODQsIDc1NjkyLCAxNDkwNywgMzk0MDAsIDc1Njk3LCA3NTcwMiwgMzI3OTYsIDYyMjMyLCAKLSAgICA3NTcwNiwgNzU3MTEsIDc1NzE1LCA3NTcyNCwgNzU3MzIsIDc1NzM4LCA3NTc0MywgNzU3NDksIDc1NzU2LCA3NTc2MiwgCi0gICAgNzU3NjcsIDc1NzcyLCA3NTc4MSwgNzU3OTMsIDc1ODA4LCAzMzA1OCwgNzU4MTQsIDE2NTMyLCAzMjgwMCwgNzU4MTgsIAotICAgIDc1ODI1LCAyNDA4NywgNzU4MzEsIDc1ODM4LCA3NTg0NywgNzU4NTQsIDc1ODYzLCA3NTg2OSwgNzU4NzQsIDc1ODgyLCAKLSAgICA3NTg4OCwgMzI4MTAsIDc1ODkzLCA3NTkwMiwgNzQ2ODIsIDc1OTExLCA3NTkxOCwgNzU5MjQsIDc1OTMwLCA3NTk0MCwgCi0gICAgNzU5NDgsIDc1OTU1LCA3NTk1OSwgMzI4MTUsIDc1OTYyLCAzMjgyMSwgMzI4MjcsIDc1OTY3LCA3NTk3NSwgNzU5ODMsIAotICAgIDc1OTkzLCA3NjAwMiwgNzYwMTAsIDc2MDE3LCA3NjAyNywgMzI4MzIsIDc2MDMxLCA3NjAzMywgNzYwMzcsIDc2MDQyLCAKLSAgICA3NjA0NiwgNzYwNTAsIDc2MDU2LCA3NjA2MSwgNzYwNjUsIDc2MDc2LCA3NjA4MSwgNzYwODYsIDMwNjAsIDc2MDkwLCAKLSAgICA3NjA5NywgNzYxMDEsIDc2MTEwLCA3NjExOCwgNzYxMjUsIDc2MTMwLCA3NjEzNSwgNjIyNzgsIDc2MTM5LCA3NjE0MiwgCi0gICAgNzYxNDgsIDc2MTU2LCA3NjE2MiwgNzYxNjYsIDc2MTcxLCA3NjE3OCwgNzYxODMsIDc2MTg5LCAzNDcyMiwgNzYxOTQsIAotICAgIDc2MTk3LCA3NjIwMiwgNzYyMDYsIDc2MjExLCA3NjIxNiwgNzYyMjAsIDc2MjI4LCA3NjIzMiwgMjU3MzksIDI1NzQ4LCAKLSAgICA3NjIzOCwgNzYyNDQsIDc2MjUwLCA3NjI1NSwgNzYyNTksIDc2MjYyLCA3NjI3MiwgNzYyODEsIDc2Mjg2LCA3NjI5MiwgCi0gICAgNzYyOTksIDc2MzA1LCA3NjMwOSwgNzYzMTcsIDc2MzIyLCAzNDcyOCwgNzYzMjYsIDc2MzM0LCA3NjM0MCwgNzYzNDcsIAotICAgIDc2MzUyLCA3NjM1NiwgNzYzNjEsIDU4NDAzLCAzNDczNCwgNzYzNjcsIDc2MzcyLCA3NjM3NiwgNzYzODEsIDc2Mzg2LCAKLSAgICA3NjM5MSwgNzYzOTUsIDc2NDAwLCA3NjQwNSwgNzY0MTEsIDc2NDE2LCA3NjQyMSwgNzY0MjcsIDc2NDMzLCA3NjQzOCwgCi0gICAgNzY0NDIsIDc2NDQ3LCA3NjQ1MiwgNzY0NTcsIDc2NDYxLCAyNDA4NiwgNzY0NjYsIDc2NDcxLCA3NjQ3NywgNzY0ODMsIAotICAgIDc2NDg5LCA3NjQ5NCwgNzY0OTgsIDc2NTAzLCA3NjUwOCwgNzY1MTMsIDc2NTE3LCA3NjUyMiwgNzY1MjcsIDc2NTMyLCAKLSAgICA3NjUzNywgNzY1NDEsIDMyODQwLCA3NjU0OSwgNzY1NTMsIDc2NTYxLCA3NjU2OSwgNzY1ODAsIDc2NTg1LCA3NjU4OSwgCi0gICAgMjIzODQsIDc2NTk0LCA3NjYwMCwgNzY2MTAsIDc2NjE3LCA3NjYyMiwgNzY2MzEsIDc2NjM2LCA3NjY0MCwgNzY2NDUsIAotICAgIDc2NjUzLCA3NjY2MSwgNzY2NjgsIDY1MDY4LCA3NjY3NCwgNzY2ODIsIDc2Njg5LCA3NjcwMCwgNzY3MDYsIDc2NzEwLCAKLSAgICA3NjcxNiwgMzI4NTAsIDc2NzE5LCA3NjcyNiwgNzY3MzQsIDc2NzM5LCAzOTU5MSwgNzY3NDMsIDc2NzQ4LCA3Njc1NSwgCi0gICAgNzY3NjAsIDg5ODUsIDc2NzY0LCA3Njc3MiwgNzY3NzksIDc2Nzg2LCA3Njc5MiwgNzY4MDYsIDYzMzQwLCA3NjgxNCwgCi0gICAgNzY4MjAsIDc2ODI0LCA3NjgyNywgNzY4MzUsIDc2ODQyLCA3Njg0NywgNzY4NjAsIDc2ODY3LCA3Njg3MSwgNzY4NzgsIAotICAgIDc2ODgzLCA2MDgyMywgNzY4ODgsIDc2ODkxLCA3Njg5OCwgNzY5MDQsIDc2OTA4LCA3NjkxNiwgNzY5MjUsIDc2OTM1LCAKLSAgICA3Njk0NSwgNzY5NTQsIDc2OTYyLCA3Njk3MywgNzY5NzgsIDc2OTgyLCA3Njk4NywgNzY5OTEsIDM1MzY0LCA3Njk5OSwgCi0gICAgMjEzNDQsIDM1MzczLCA3NzAwNCwgNzcwMDksIDc3MDE0LCA3NzAxOSwgNzcwMjQsIDc3MDI5LCA3NzAzNCwgNzcwMzgsIAotICAgIDc3MDQzLCA3NzA0OCwgNzcwNTMsIDc3MDU4LCA3NzA2MywgNzcwNjgsIDc3MDcyLCA3NzA3NywgNzcwODIsIDc3MDg2LCAKLSAgICA3NzA5MCwgNzcwOTQsIDc3MDk4LCA3NzEwMywgNzcxMDgsIDc3MTEyLCA3NzExNywgNzcxMjEsIDc3MTI1LCA3NzEzMCwgCi0gICAgNzcxMzUsIDc3MTQwLCA3NzE0NSwgNzcxNDksIDc3MTU0LCA3NzE1OSwgNzcxNjMsIDc3MTY4LCA3NzE3MywgNzcxNzgsIAotICAgIDc3MTgzLCA3NzE4OCwgNzcxOTMsIDc3MTk4LCA3NzIwMywgNzcyMDgsIDc3MjEzLCA3NzIxOCwgNzcyMjMsIDc3MjI4LCAKLSAgICA3NzIzMywgNzcyMzgsIDc3MjQzLCA3NzI0OCwgNzcyNTMsIDc3MjU4LCA3NzI2MywgNzcyNjcsIDc3MjcyLCA3NzI3NywgCi0gICAgNzcyODIsIDc3Mjg3LCA3NzI5MiwgNzcyOTcsIDc3MzAyLCA3NzMwNywgNzczMTIsIDc3MzE3LCA3NzMyMiwgNzczMjYsIAotICAgIDc3MzMxLCA3NzMzNSwgNzczNDAsIDc3MzQ1LCA3NzM1MCwgNzczNTUsIDc3MzYwLCA3NzM2NSwgNzczNzAsIDc3Mzc1LCAKLSAgICA3NzM4MCwgNzczODQsIDc3Mzg4LCA3NzM5MywgNzczOTgsIDc3NDAyLCA3NzQwNywgNzc0MTIsIDc3NDE2LCA3NzQyMSwgCi0gICAgNzc0MjYsIDc3NDMxLCA3NzQzNiwgNzc0NDAsIDc3NDQ1LCA3NzQ1MCwgNzc0NTQsIDc3NDU5LCA3NzQ2MywgNzc0NjcsIAotICAgIDc3NDcxLCA3NzQ3NSwgNzc0ODAsIDc3NDg0LCA3NzQ4OCwgNzc0OTIsIDc3NDk2LCA3NzUwMCwgNzc1MDQsIDc3NTA4LCAKLSAgICA3NzUxMiwgNzc1MTYsIDc3NTIxLCA3NzUyNiwgNzc1MzEsIDc3NTM2LCA3NzU0MSwgNzc1NDYsIDc3NTUxLCA3NzU1NiwgCi0gICAgNzc1NjEsIDc3NTY2LCA3NzU3MCwgNzc1NzQsIDc3NTc4LCA3NzU4MiwgNzc1ODYsIDc3NTkwLCA3NzU5NSwgNzc1OTksIAotICAgIDc3NjA0LCA3NzYwOCwgNzc2MTMsIDc3NjE4LCA3NzYyMiwgNzc2MjYsIDc3NjMxLCA3NzYzNSwgNzc2MzksIDc3NjQzLCAKLSAgICA3NzY0NywgNzc2NTEsIDc3NjU1LCA3NzY1OSwgNzc2NjMsIDc3NjY3LCA3NzY3MSwgNzc2NzUsIDc3Njc5LCA3NzY4MywgCi0gICAgNzc2ODcsIDc3NjkyLCA3NzY5NywgNzc3MDEsIDc3NzA1LCA3NzcwOSwgNzc3MTMsIDc3NzE3LCA3NzcyMSwgNzc3MjYsIAotICAgIDc3NzMwLCA3NzczNCwgNzc3MzgsIDc3NzQyLCA3Nzc0NiwgNzc3NTAsIDc3NzU1LCA3Nzc1OSwgNzc3NjQsIDc3NzY4LCAKLSAgICA3Nzc3MiwgNzc3NzYsIDc3NzgwLCA3Nzc4NCwgNzc3ODgsIDc3NzkyLCA3Nzc5NiwgNzc4MDAsIDc3ODA0LCA3NzgwOCwgCi0gICAgNzc4MTMsIDc3ODE3LCA3NzgyMSwgNzc4MjUsIDc3ODI5LCA3NzgzMywgNzc4MzcsIDc3ODQxLCA3Nzg0NSwgNzc4NDksIAotICAgIDc3ODUzLCA3Nzg1NywgNzc4NjIsIDc3ODY2LCA3Nzg3MCwgNzc4NzUsIDc3ODgwLCA3Nzg4NCwgNzc4ODgsIDc3ODkyLCAKLSAgICA3Nzg5NiwgNzc5MDAsIDc3OTA0LCA3NzkwOCwgNzc5MTIsIDc3OTE3LCA3NzkyMSwgNzc5MjYsIDc3OTMwLCA3NzkzNSwgCi0gICAgNzc5MzksIDc3OTQ0LCA3Nzk0OCwgNzc5NTQsIDc3OTU5LCA3Nzk2MywgNzc5NjgsIDc3OTcyLCA3Nzk3NywgNzc5ODEsIAotICAgIDc3OTg2LCA3Nzk5MCwgNzc5OTUsIDE1MjEsIDc3OTk5LCAyODI0LCAxNzU5LCAxNzY0LCA3ODAwMywgNzgwMDcsIDI4MjgsIAotICAgIDc4MDExLCAxMzk3LCA3ODAxNiwgMTM0MiwgNzgwMjAsIDI4NDAsIDc4MDI0LCA3ODAzMSwgNzgwMzgsIDc4MDUyLCAyODQ0LCAKLSAgICA3MTMxLCA3ODA2MSwgNzgwNjksIDc4MDc2LCA3ODA4NywgNzgwOTYsIDc4MTAzLCA3ODExNSwgNzgxMjgsIDc4MTQxLCAKLSAgICA3ODE1MiwgNzgxNTcsIDc4MTY0LCA3ODE3NiwgNzgxODAsIDI4NDgsIDExNzQwLCA3ODE5MCwgNzgxOTUsIDc4MjA0LCAKLSAgICA3ODIxNCwgMjg1MiwgNzgyMTksIDc4MjIzLCA3ODIyOCwgNzgyMzUsIDc4MjQxLCA3ODI0OSwgNzgyNjEsIDEzNDcsIAotICAgIDEzMDM1LCA3ODI3MSwgNzgyNzUsIDc4MjgxLCA3ODI5NSwgNzgzMDcsIDc4MzE5LCA3ODMyOSwgNzgzMzgsIDc4MzQ3LCAKLSAgICA3ODM1NiwgNzgzNjQsIDc4Mzc1LCA3ODM4MywgNDA1MSwgNzgzOTMsIDc4NDA0LCA3ODQxMywgNzg0MTksIDc4NDM0LCAKLSAgICA3ODQ0MSwgNzg0NDcsIDM1NDg5LCA3ODQ1MiwgMjg3NiwgMTMwMzksIDc4NDU2LCA3ODQ2MywgODkzMCwgNzg0NzIsIDI4ODEsIAotICAgIDMyMzM2LCA3ODQ3OCwgNjA1NzIsIDc4NDg1LCA3ODQ5MSwgNzg1MDIsIDc4NTA4LCA3ODUxNSwgNzg1MjEsIDc4NTI5LCAKLSAgICA3ODUzNiwgNzg1NDIsIDc4NTUyLCA3ODU2MSwgNzg1NzIsIDc4NTc5LCA3ODU4NSwgNzg1OTUsIDc4NjAzLCA3ODYwOSwgCi0gICAgNzg2MjQsIDc4NjMwLCA3ODYzNSwgNzg2NDIsIDc4NjQ1LCA3ODY1MSwgNzg2NTgsIDc4NjY0LCA3ODY3MiwgNzg2ODEsIAotICAgIDc4Njg5LCA3ODY5NSwgNzg3MDQsIDQxNDI3LCA3ODcxOCwgNzg3MjMsIDc4NzI5LCAxNDc0NCwgNzg3MzQsIDc4NzQ3LCAKLSAgICA3ODc1NiwgNzg3NjQsIDc4NzcxLCA3ODc3NSwgNzg3NzksIDc4NzgyLCA3ODc4OSwgNzg3OTYsIDc4ODA0LCA3ODgxMiwgCi0gICAgNzg4MjEsIDc4ODI5LCAxNDY3MSwgNzg4MzcsIDc4ODQyLCA3ODg0NiwgNzg4NTgsIDc4ODY1LCA3ODg3NCwgNzQ4LCAKLSAgICA3ODg4NCwgNzg4OTMsIDc4OTA0LCAyODk3LCA3ODkwOCwgNzg5MTIsIDc4OTE4LCA3ODkzMSwgNzg5NDMsIDc4OTUzLCAKLSAgICA3ODk2MiwgNzg5NzQsIDI2MzUyLCA3ODk4NSwgNzg5OTMsIDc5MDAyLCA3OTAxMywgNzkwMjQsIDc5MDM0LCA3OTA0NCwgCi0gICAgNzkwNTMsIDc5MDYxLCAxMTMwNSwgNzkwNjgsIDc5MDcyLCA3OTA3NSwgNzkwODAsIDc5MDg1LCA3OTA4OSwgNzkwOTUsIAotICAgIDEzNTIsIDExODExLCA3OTEwMiwgNzkxMTMsIDc5MTIyLCA3OTEzMCwgNzkxMzksIDc5MTQ3LCA3OTE2MywgNzkxNzQsIAotICAgIDc5MTgzLCA3OTE5MSwgNzkyMDMsIDc5MjE0LCA3OTIzMCwgNzkyNDAsIDc5MjYxLCA3OTI3NCwgNzkyODIsIDc5Mjg5LCAKLSAgICAxNDg1NSwgNzkzMDIsIDc5MzA3LCA3OTMxMywgNTkwOCwgNzkzMTksIDc5MzIyLCA3OTMyOSwgNzkzMzksIDgxNzYsIAotICAgIDc5MzQ2LCA3OTM1MSwgNzkzNTYsIDc5MzYxLCA3OTM2OSwgNzkzNzgsIDc5Mzg2LCA5NzQ5LCA5NzU4LCA3OTM5MSwgCi0gICAgNzk0MDIsIDc5NDA3LCA3OTQxMywgMjkxMywgMjkxOCwgNzk0MTksIDEwODcyLCA3OTQyNSwgNzk0MzIsIDc5NDM5LCAKLSAgICA3OTQ1MiwgMjI1MSwgNjgsIDc5NDU3LCA3OTQ2MiwgNzk0NzIsIDc5NDc4LCA3OTQ4NywgNzk0OTUsIDc5NTA1LCA3OTUwOSwgCi0gICAgNzk1MTQsIDc5NTE4LCA3OTUzMCwgMjk0MSwgNzk1MzgsIDc5NTQ2LCA3OTU1MSwgNzk1NjIsIDc5NTczLCA3OTU4MiwgCi0gICAgNzk1ODcsIDc5NTkzLCA3OTU5OCwgNzk2MDgsIDc5NjE4LCA3OTYyMywgNzk2MjksIDc5NjM0LCA3OTY0MywgMjEzOTcsIAotICAgIDc5NjQ3LCA0MTI4LCAyMCwgNzk2NTIsIDc5NjYxLCA3OTY2OCwgNzk2NzUsIDc5NjgxLCA3OTY4NywgODY0LCA3OTY5MiwgCi0gICAgNzk2OTcsIDYwOTAwLCA3OTcwMiwgNzk3MDcsIDc5NzEzLCA3OTcxOSwgNzk3MjcsIDc5NzMyLCA3OTczOSwgNzk3NDUsIAotICAgIDc5NzUwLCAzODAwMSwgNDEzMjEsIDc5NzU2LCAyOTQ1LCAzMiwgNzk3NjYsIDc5Nzc5LCA3OTc4NCwgNzk3OTIsIDc5Nzk3LCAKLSAgICA3OTgwMywgMjk2NywgMjgyODksIDc5ODA4LCA3OTgxNiwgNzk4MjMsIDc5ODI4LCA1ODY0NSwgNjE5MDMsIDc5ODM3LCAKLSAgICA3OTg0MSwgMTcwNCwgMTgxMywgNzk4NDYsIDc5ODUxLCA3OTg1OCwgMTgxNywgMjQ3LCA3OTg2NSwgNzk4NzEsIDI5ODksIAotICAgIDc5ODc2LCA3OTg4MSwgNzk4ODgsIDE4MjEsIDc5ODkzLCA3OTg5OSwgNzk5MDQsIDc5OTE2LCA2MTE5LCA3OTkyNiwgMTgyOCwgCi0gICAgNzk5MzIsIDc5OTM3LCA3OTk0NCwgNzk5NTEsIDc5OTY2LCA3OTk3MywgNzk5ODQsIDc5OTkyLCAyNjE4LCA3OTk5NiwgCi0gICAgODAwMDgsIDgwMDEzLCA4MDAxNywgODAwMjMsIDI4MTE0LCAyMjU2LCA4MDAyNywgODAwMzgsIDgwMDQyLCA4MDA0NiwgCi0gICAgODAwNTIsIDgwMDU2LCA4MDA2NSwgODAwNjksIDgwMDgwLCA4MDA4NCwgMjMwMiwgMzIxNjUsIDgwMDg4LCA4MDA5OCwgCi0gICAgMzA4MCwgOTM2NCwgODAxMDYsIDgwMTExLCA4MDExNSwgODAxMjQsIDgwMTMxLCA4MDEzNywgMzA1MCwgMTcxMzksIDgwMTQxLCAKLSAgICA4MDE1NCwgODAxNzIsIDgwMTc3LCA4MDE4NSwgODAxOTMsIDgwMjAzLCA5OTc4LCAxMzE0NywgODAyMTUsIDgwMjI4LCAKLSAgICA4MDIzNSwgODAyNDIsIDgwMjU4LCA4MDI2NSwgODAyNzEsIDEwOTUsIDgwMjc4LCA4MDI4NSwgODAyOTUsIDgwMzA0LCAKLSAgICA4MDMxNiwgNDIyOTEsIDgwMzI0LCAzMDY0LCAxMjAyMywgODAzMjcsIDgwMzM1LCA4MDMzOSwgNzgyMzEsIDMwNjgsIAotICAgIDgwMzQzLCAyMTE3OCwgMTIwMzksIDM3NTYsIDgwMzQ3LCAzMDc0LCA4MDM1MSwgODAzNjEsIDgwMzY3LCA4MDM3MywgCi0gICAgODAzNzksIDgwMzg1LCA4MDM5MSwgODAzOTcsIDgwNDAzLCA4MDQwOSwgODA0MTUsIDgwNDIxLCA4MDQyNywgODA0MzMsIAotICAgIDgwNDM5LCA4MDQ0NSwgODA0NTEsIDgwNDU3LCA4MDQ2MywgODA0NjksIDgwNDc1LCA4MDQ4MSwgODA0ODcsIDgwNDkzLCAKLSAgICA4MDQ5OSwgODA1MDUsIDgwNTExLCA4MDUxOCwgODA1MjUsIDgwNTMxLCA4MDUzNywgODA1NDMsIDgwNTQ5LCA4MDU1NSwgCi0gICAgODA1NjEsIDEzNTcsIDE2MDQ5LCAxMjA2MSwgODA1NjcsIDgwNTcyLCA4MDU3NywgODA1ODIsIDgwNTg3LCA4MDU5MiwgCi0gICAgODA1OTcsIDgwNjAyLCA4MDYwNywgODA2MTIsIDgwNjE3LCA4MDYyMiwgODA2MjcsIDgwNjMyLCA4MDYzNywgODA2NDIsIAotICAgIDgwNjQ3LCA4MDY1MiwgODA2NTcsIDgwNjYyLCA4MDY2NywgODA2NzIsIDgwNjc3LCA4MDY4MiwgODA2ODcsIDgwNjkyLCAKLSAgICA4MDY5OCwgODA3MDMsIDgwNzA4LCA4MDcxNCwgODA3MTksIDgwNzI1LCA4MDczMCwgODA3MzUsIDgwNzQxLCA4MDc0NiwgCi0gICAgODA3NTEsIDgwNzU2LCA4MDc2MSwgODA3NjYsIDgwNzcxLCA4MDc3NiwgODA3ODEsIDgwMzYyLCA4MDM2OCwgODAzNzQsIAotICAgIDgwMzgwLCA4MDM4NiwgODAzOTIsIDgwMzk4LCA4MDQwNCwgODA0MTAsIDgwNDE2LCA4MDQyMiwgODA0MjgsIDgwNDM0LCAKLSAgICA4MDQ0MCwgODA0NDYsIDgwNzg3LCA4MDQ1MiwgODA0NTgsIDgwNDY0LCA4MDc5MywgODA0NzAsIDgwNDc2LCA4MDQ4MiwgCi0gICAgODA0ODgsIDgwNDk0LCA4MDUwMCwgODA1MDYsIDgwNTI2LCA4MDc5OSwgODA4MDUsIDgwNTMyLCA4MDgxMSwgODA1MzgsIAotICAgIDgwNTQ0LCA4MDU1MCwgODA1NTYsIDgwNTYyLCAzMDkxLCAzMDk2LCA4MDgxNywgODA4MjIsIDgwODI1LCA4MDgzMSwgCi0gICAgODA4MzcsIDgwODQ0LCA4MDg0OSwgODA4NTQsIDIzMDcsIAorICAgIDg5MzUsIDg5MzksIDg5NDQsIDg5NDksIDg5NTYsIDg5NjIsIDg5NzIsIDc5MDksIDg5NzgsIDg5ODIsIDg5ODksIDg5OTYsIAorICAgIDc2OCwgOTAwMCwgOTAwNCwgOTAwOSwgOTAxNCwgOTAxOSwgOTAyMywgOTAyOSwgOTAzNywgOTA0MywgOTA0NywgOTA1MywgCisgICAgOTA2MywgOTA2NywgOTA3MywgOTA3OCwgOTA4MiwgOTA4OCwgOTA5NCwgMjE2MSwgOTA5OSwgOTEwMSwgOTEwNiwgOTExNCwgCisgICAgOTEyMywgOTEyNywgOTEzMywgOTEzOCwgOTE0MywgOTE0OCwgOTE1MywgOTE1OSwgOTE2NCwgOTE2OSwgNDAwNiwgOTE3NCwgCisgICAgOTE3OSwgOTE4MywgOTE4OSwgOTE5NCwgOTIwMCwgOTIwNSwgOTIxMCwgOTIxNiwgOTIyMSwgOTEyOCwgOTIyNywgOTIzMSwgCisgICAgOTIzOCwgOTI0NCwgOTI0OSwgOTI1MywgNjE4MywgOTI1OCwgOTI2NywgOTI3MiwgOTI3NywgODIxOCwgODIyNSwgOTI4MiwgCisgICAgMjg1MywgOTI4NiwgOTI5MSwgOTI5NiwgOTEzOSwgOTMwMCwgOTMwNSwgOTE0NCwgOTE0OSwgOTMxMCwgOTMxNywgOTMyNCwgCisgICAgOTMzMCwgOTMzNiwgOTM0MiwgOTM0NywgOTM1MiwgOTM1NywgOTE1NCwgOTE2MCwgOTM2MywgOTM2OSwgOTM3NCwgOTM4MiwgCisgICAgOTE2NSwgOTM4NywgOTkwLCA5MzkwLCA5Mzk4LCA5NDA0LCA5NDEwLCA5NDE5LCA5NDI3LCA5NDMyLCA5NDM4LCA5NDQ2LCAKKyAgICA5NDUzLCA5NDY4LCA5NDg1LCA5NTA0LCA5NTEzLCA5NTIxLCA5NTM2LCA5NTQ3LCA5NTU3LCA5NTY3LCA5NTc1LCA5NTgxLCAKKyAgICA5NTkzLCA5NjAyLCA5NjEwLCA5NjE3LCA5NjI0LCA5NjMwLCA5NjM1LCA5NjQzLCA5NjUzLCA5NjYwLCA5NjcwLCA5NjgwLCAKKyAgICA5NjkwLCA5Njk4LCA5NzA1LCA5NzE0LCA5NzI0LCA5NzM4LCA5NzUzLCA5NzYyLCA5NzcwLCA5Nzc1LCA5Nzc5LCA5Nzg4LCAKKyAgICA5Nzk0LCA5Nzk5LCA5ODA5LCA5ODE5LCA5ODI5LCA5ODM0LCA5ODM4LCA5ODQ3LCA5ODUyLCA5ODYyLCA5ODczLCA5ODg2LCAKKyAgICA5ODk0LCA5OTA3LCA5OTE5LCA5OTI3LCA5OTMyLCA5OTM2LCA5OTQyLCA5OTQ3LCA5OTU1LCA5OTYzLCA5OTcwLCA5OTc1LCAKKyAgICA5OTgzLCA5OTg5LCA5OTkyLCA5OTk2LCAxMDAwMiwgMTAwMTAsIDEwMDE1LCAxMDAxOSwgMTAwMjcsIDEwMDM2LCAxMDA0NCwgCisgICAgMTAwNTAsIDEwMDU0LCAxMDA2MSwgMTAwNzIsIDEwMDc2LCAxMDA3OSwgMTAwODUsIDkxNzAsIDEwMDkwLCAxMDA5NiwgCisgICAgMTAxMDMsIDEwMTA5LCAxMDExNCwgMTAxMjEsIDEwMTI4LCAxMDEzNSwgMTAxNDIsIDEwMTQ5LCAxMDE1NiwgMTAxNjMsIAorICAgIDEwMTcwLCAxMDE3NSwgOTQ4MSwgMTAxODAsIDEwMTg2LCAxMDE5MywgMTAyMDAsIDEwMjA1LCAxMDIxMiwgMTAyMjEsIAorICAgIDEwMjI1LCAxMDIzNywgODI1NiwgMTAyNDEsIDEwMjQ0LCAxMDI0OCwgMTAyNTIsIDEwMjU2LCAxMDI2MCwgMTAyNjYsIAorICAgIDEwMjcyLCAxMDI3NywgMTAyODMsIDEwMjg4LCAxMDI5MywgMTAyOTksIDEwMzA0LCAxMDMwOSwgODk1MiwgMTAzMTQsIAorICAgIDEwMzE4LCAxMDMyMiwgMTAzMjYsIDEwMzMxLCAxMDMzNiwgMTAzNDQsIDEwMzUwLCAxMDM1NCwgMTAzNTgsIDEwMzY1LCAKKyAgICAxMDM3MCwgMTAzNzgsIDEwMzgzLCAxMDM4NywgMTAzOTAsIDEwMzk2LCAxMDQwMywgMTA0MDcsIDEwNDEwLCAxMDQxNSwgCisgICAgMTA0MTksIDQwNDUsIDEwNDI1LCAxMDQzNCwgMzYsIDEwNDQyLCAxMDQ0OCwgMTA0NTMsIDg5NjcsIDEwNDU4LCAxMDQ2MywgCisgICAgMTA0NjcsIDEwNDcwLCAxMDQ4NSwgMTA1MDQsIDEwNTE2LCAxMDUyOSwgMTA1NDIsIDEwNTU1LCAxMDU2OSwgMTA1ODIsIAorICAgIDEwNTk3LCAxMDYwNCwgOTE3NSwgMTA2MTAsIDEwNjI0LCAxMDYyOSwgMTA2MzUsIDEwNjQwLCAxMDY0OCwgMTA2NTMsIAorICAgIDgwNDAsIDEwNjU4LCAxMDY2MSwgMTA2NjgsIDEwNjczLCAxMDY3NywgMjg1OCwgOTk4LCAxMDY4MywgMTA2ODcsIDEwNjkzLCAKKyAgICAxMDY5OSwgMTA3MDQsIDEwNzEwLCAxMDcxNSwgOTE4NCwgMTA3MjEsIDEwNzI3LCAxMDczMiwgMTA3MzcsIDEwNzQ1LCAKKyAgICAxMDc1MSwgMTA3NjQsIDEwNzcyLCAxMDc3OSwgOTE5MCwgMTA3ODUsIDEwNzkzLCAxMDgwMSwgMTA4MDgsIDEwODIxLCAKKyAgICAxMDgzMywgMTA4NDMsIDEwODUxLCAxMDg1OCwgMTA4NjUsIDEwODc0LCAxMDg4MywgMTA4OTEsIDEwODk4LCAxMDkwMywgCisgICAgMTA5MDksIDkxOTUsIDEwOTE0LCAxMDkyMCwgOTIwMSwgMTA5MjUsIDEwOTI4LCAxMDkzNSwgMTA5NDEsIDEwOTU0LCA4NjY5LCAKKyAgICAxMDk2NSwgMTA5NzEsIDEwOTgwLCAxMDk4OCwgMTA5OTUsIDExMDAxLCAxMTAwNywgMTEwMTIsIDExMDE2LCAxMTAyMSwgCisgICAgMTA0NzcsIDExMDI3LCA5MjA2LCAxMTAzNCwgMTEwMzksIDExMDQ2LCAxMTA1MiwgMTEwNTgsIDExMDYzLCAxMTA3MSwgCisgICAgMTEwNzksIDExMDg2LCAxMTA5MCwgMTExMDQsIDExMTE0LCAxMTExOSwgMTExMjMsIDExMTM0LCAxMTE0MCwgMTExNDUsIAorICAgIDExMTUwLCA5MjExLCA5MjE3LCAxMTE1NCwgMTExNTcsIDExMTYyLCAxMTE3NCwgMTExODEsIDExMTg2LCAxMTE5MCwgCisgICAgMTExOTUsIDExMTk5LCAxMTIwNiwgMTEyMTIsIDkyMjIsIDkxMjksIDExMjE5LCAyODYzLCA4LCAxMTIyNiwgMTEyMzEsIAorICAgIDExMjM1LCAxMTI0MSwgMTEyNDksIDExMjU5LCAxMTI2NCwgMTEyNjksIDExMjc2LCAxMTI4MywgMTEyODcsIDExMjk4LCAKKyAgICAxMTMwOCwgMTEzMTcsIDExMzI5LCAxMTMzNCwgMTEzMzgsIDExMzQ2LCAxMTM2MCwgMTEzNjQsIDExMzY3LCAxMTM3NSwgCisgICAgMTEzODIsIDExMzkwLCAxMTM5NCwgMTE0MDUsIDExNDA5LCAxMTQxNiwgMTE0MjEsIDExNDI1LCAxMTQzMSwgMTE0MzYsIAorICAgIDExNDQwLCAxMTQ0NiwgMTE0NTEsIDExNDYyLCAxMTQ2NiwgMTE0NjksIDExNDc1LCAxMTQ4MCwgMTE0ODYsIDExNDkyLCAKKyAgICAxMTQ5OSwgMTE1MTAsIDExNTIwLCAxMTUzMCwgMTE1MzksIDExNTQ2LCAxMTU1NSwgOTIzMiwgOTIzOSwgOTI0NSwgOTI1MCwgCisgICAgMTE1NjEsIDExNTY3LCA5MjU0LCAxMTU3MywgMTE1NzYsIDExNTgzLCAxMTU4OCwgMTE2MDMsIDExNjE5LCAxMTYzNCwgCisgICAgMTE2NDIsIDExNjQ4LCAxMTY1MywgODM4LCA0MjAsIDExNjU4LCAxMTY2NiwgMTE2NzMsIDExNjc5LCAxMTY4NCwgMTE2ODksIAorICAgIDkyNTksIDExNjkxLCAxMTY5NSwgMTE3MDAsIDExNzA0LCAxMTcxNCwgMTE3MTksIDExNzIzLCAxMTczMiwgMTE3MzYsIAorICAgIDExNzM5LCA5MjY4LCAxMTc0NiwgMTE3NDksIDExNzU3LCAxMTc2NCwgMTE3NzIsIDExNzc2LCAxMTc4MywgMTE3OTIsIAorICAgIDExNzk1LCAxMTc5OSwgMTE4MDMsIDExODA5LCAxMTgxMywgMTE4MTcsIDExODIxLCAxMTgyNywgMTE4MzcsIDExODQxLCAKKyAgICAxMTg0OSwgMTE4NTMsIDExODYwLCAxMTg2NCwgMTE4NjksIDExODczLCAxMTg4MCwgMTE4ODYsIDExODk0LCAxMTkwMCwgCisgICAgMTE5MDUsIDExOTE1LCAxMTkyMCwgMTE5MjUsIDExOTI5LCAxMTkzNywgMzkwNSwgMTE5NDUsIDExOTUwLCA5MjczLCAKKyAgICAxMTk1NCwgMTE5NTgsIDExOTYxLCAxMTk2OSwgMTE5NzYsIDExOTgwLCA1OTkxLCAxMTk4NCwgMTE5ODksIDExOTkzLCAKKyAgICAxMjAwNCwgMTIwMTQsIDEyMDE5LCAxMjAyNSwgMTIwMjksIDEyMDMyLCAxMjA0MCwgMTIwNDUsIDEyMDUwLCAxMjA1NywgCisgICAgMTIwNjIsIDkyNzgsIDEyMDY3LCAxMjA3MSwgMTIwNzgsIDE3MjIsIDYxNDUsIDEyMDgzLCAxMjA4OCwgMTIwOTMsIDEyMDk4LCAKKyAgICAxMjEwNCwgMTIxMDksIDEyMTE1LCAxMjEyMCwgMTIxMjUsIDEyMTMwLCAxMjEzNSwgMTIxNDAsIDEyMTQ1LCAxMjE1MCwgCisgICAgMTIxNTUsIDEyMTYwLCAxMjE2NSwgMTIxNzAsIDEyMTc1LCAxMjE4MCwgMTIxODUsIDEyMTkwLCAxMjE5NSwgMTIyMDEsIAorICAgIDEyMjA2LCAxMjIxMSwgMTIyMTYsIDEyMjIxLCAxMjIyNiwgMTIyMzIsIDEyMjM3LCAxMjI0MiwgMTIyNDgsIDEyMjUzLCAKKyAgICAxMjI1OSwgMTIyNjQsIDEyMjcwLCAxMjI3NSwgMTIyODAsIDEyMjg1LCAxMjI5MCwgMTIyOTYsIDEyMzAxLCAxMjMwNiwgCisgICAgMTIzMTEsIDczNywgMTM5LCAxMjMxOSwgMTIzMjMsIDEyMzI4LCAxMjMzMywgMTIzMzcsIDEyMzQxLCAxMjM0NSwgMTIzNTAsIAorICAgIDEyMzU0LCAxMjM1OSwgMTIzNjMsIDEyMzY2LCAxMjM3MCwgMTIzNzQsIDEyMzgwLCAxMjM4NSwgMTIzOTUsIDEyNDAxLCAKKyAgICAxMjQwOSwgMTI0MTMsIDEyNDE3LCAxMjQyNCwgMTI0MzIsIDEyNDQxLCAxMjQ1MiwgMTI0NTksIDEyNDY2LCAxMjQ3MCwgCisgICAgMTI0NzksIDEyNDg4LCAxMjQ5NiwgMTI1MDUsIDEyNTE0LCAxMjUyMywgMTI1MzIsIDEyNTQyLCAxMjU1MiwgMTI1NjIsIAorICAgIDEyNTcyLCAxMjU4MiwgMTI1OTEsIDEyNjAxLCAxMjYxMSwgMTI2MjEsIDEyNjMxLCAxMjY0MSwgMTI2NTEsIDEyNjYxLCAKKyAgICAxMjY3MCwgMTI2ODAsIDEyNjkwLCAxMjcwMCwgMTI3MTAsIDEyNzIwLCAxMjczMCwgMTI3MzksIDEyNzQ5LCAxMjc1OSwgCisgICAgMTI3NjksIDEyNzc5LCAxMjc4OSwgMTI3OTksIDEyODA5LCAxMjgxOSwgMTI4MjksIDEyODM4LCAxMjg0OCwgMTI4NTgsIAorICAgIDEyODY4LCAxMjg3OCwgMTI4ODgsIDEyODk4LCAxMjkwOCwgMTI5MTgsIDEyOTI4LCAxMjkzOCwgMTI5NDcsIDEyNTYsIAorICAgIDEyOTUzLCAxMjk1NiwgMTI5NjAsIDEyOTY1LCAxMjk3MiwgMTI5NzgsIDEyOTgzLCAxMjk4NywgMTI5OTIsIDEzMDAxLCAKKyAgICAxMzAwOSwgMTMwMTQsIDEzMDE4LCAxMzAyMiwgMTMwMjgsIDEzMDMzLCAxMzAzOSwgOTI4NywgMTMwNDQsIDEzMDQ5LCAKKyAgICAxMzA1OCwgOTI5MiwgMTMwNjMsIDEzMDY2LCAxMzA3MiwgMTMwODAsIDkyOTcsIDEzMDg3LCAxMzA5MSwgMTMwOTUsIAorICAgIDEzMDk5LCAxMzEwOSwgMTMxMTUsIDEzMTIxLCAxMzEyNiwgMTMxMzUsIDEzMTQzLCAxMzE1MCwgMTMxNTcsIDEzMTYyLCAKKyAgICAxMzE2OSwgMTMxNzQsIDEzMTc4LCAxMzE4MSwgMTMxOTIsIDEzMjAyLCAxMzIxMSwgMTMyMTksIDEzMjMwLCAxMzI0MiwgCisgICAgMTMyNTIsIDEzMjU3LCAxMzI2MSwgMTMyNjYsIDEzMjcxLCAxMzI3NSwgMTMyODEsIDEzMjg5LCAxMzI5NiwgMTMzMDcsIAorICAgIDEzMzEyLCAxMzMyMiwgMTMzMjYsIDEzMzI5LCAxMzMzNiwgMTMzNDYsIDEzMzU1LCAxMzM2MiwgMTMzNjYsIDEzMzczLCAKKyAgICAxMzM3OSwgMTMzODQsIDEzMzg5LCAxMzM5MywgMTM0MDIsIDEzNDA3LCAxMzQxMywgMTM0MTcsIDEzNDIyLCAxMzQyNiwgCisgICAgMTM0MzUsIDEzNDQzLCAxMzQ1MSwgMTM0NTgsIDEzNDY2LCAxMzQ3OCwgMTM0ODksIDEzNDk5LCAxMzUwNiwgMTM1MTIsIAorICAgIDEzNTIxLCAxMzUzMiwgMTM1NDEsIDEzNTUzLCAxMzU2NSwgMTM1NzcsIDEzNTg3LCAxMzU5NiwgMTM2MDUsIDEzNjEzLCAKKyAgICAxMzYyMCwgMTM2MjksIDEzNjM3LCAxMzY0MSwgMTM2NDcsIDEzNjUzLCAxMzY1OCwgNzc1MywgMTM2NjIsIDEzNjY0LCAKKyAgICAxMzY2OCwgMTM2NzMsIDEzNjc5LCAxMzY4OCwgMTM2OTIsIDEzNzAwLCAxMzcwNywgMTM3MTYsIDEzNzI1LCAxMzczNCwgCisgICAgMTM3NDMsIDEzNzUyLCAxMzc2MSwgMTM3NzAsIDEzNzc5LCAxMzc4OSwgMTM3OTksIDEzODA4LCAxMzgxNCwgMTM4MjEsIAorICAgIDEzODI4LCAxMzgzNCwgMTM4NDgsIDEzODU1LCAxMzg2MywgMTM4NzIsIDEzODc4LCAxMzg4NywgMTM4OTYsIDEzOTA3LCAKKyAgICAxMzkxNywgMTM5MjUsIDEzOTMyLCAxMzk0MCwgMTM5NDksIDEzOTYyLCAxMzk3MCwgMTM5NzcsIDEzOTkwLCAxMzk5NiwgCisgICAgMTQwMDIsIDE0MDEyLCAxNDAyMSwgMTQwMzAsIDE0MDM1LCAxNDAzOSwgMTQwNDUsIDE0MDUxLCAxNDA1OCwgODk2NiwgCisgICAgMTQwNjMsIDE0MDY4LCAxNDA3NSwgMTQwODAsIDEyMzc2LCAxNDA4NSwgMTQwOTMsIDE0MDk5LCAxNDEwNCwgMTQxMTIsIAorICAgIDE0MTIwLCAxNDEyNywgMTQxMzUsIDE0MTQxLCAxNDE0OSwgMTQxNTcsIDE0MTYzLCAxNDE2OCwgMTQxNzQsIDE0MTgxLCAKKyAgICAxNDE4NywgMTQxOTIsIDE0MTk2LCAxNDIwNywgMTQyMTUsIDE0MjIxLCAxNDIyNiwgMTQyMzUsIDE0MjQxLCAxNDI0NiwgCisgICAgMTQyNTUsIDE0MjY5LCAzODUzLCAxNDI3MywgMTQyNzgsIDE0MjgzLCAxNDI4OSwgMTQyOTQsIDE0Mjk5LCAxNDMwMywgCisgICAgMTQzMDgsIDE0MzEzLCAxNDMxOCwgNzc1MiwgMTQzMjMsIDE0MzI4LCAxNDMzMywgMTQzMzgsIDE0MzQzLCAxNDM0NywgCisgICAgMTQzNTIsIDE0MzU3LCAxNDM2MiwgMTQzNjcsIDE0MzczLCAxNDM3OSwgMTQzODQsIDE0Mzg4LCAxNDM5MywgMTQzOTgsIAorICAgIDE0NDAzLCA5MzAxLCAxNDQwOCwgMTQ0MTMsIDE0NDE4LCAxNDQyMywgMTQ0MjgsIDE0NDQ1LCAxNDQ2MywgMTQ0NzUsIAorICAgIDE0NDg4LCAxNDUwNSwgMTQ1MjEsIDE0NTM4LCAxNDU0OCwgMTQ1NjcsIDE0NTc4LCAxNDU4OSwgMTQ2MDAsIDE0NjExLCAKKyAgICAxNDYyMywgMTQ2MzQsIDE0NjQ1LCAxNDY2MiwgMTQ2NzMsIDE0Njg0LCAxNDY4OSwgOTMwNiwgMTQ2OTQsIDE0Njk4LCAKKyAgICAyMzgxLCAxNDcwMiwgMTQ3MDUsIDE0NzExLCAxNDcxOSwgMTQ3MjcsIDE0NzMyLCAxNDc0MCwgMTQ3NDgsIDE0NzU1LCAKKyAgICAxNDc2MCwgMTQ3NjYsIDE0NzczLCAxNDc4MSwgMTQ3ODgsIDE0ODAwLCAxNDgwOCwgMTQ4MTMsIDExNTk3LCAxNDgxOSwgCisgICAgMTQ4MjgsIDE0ODM3LCAxNDg0NSwgMTQ4NTIsIDE0ODU4LCAxNDg2NiwgMTQ4NzMsIDE0ODc5LCAxNDg4NiwgMTQ4OTIsIAorICAgIDE0OTAxLCAxNDkwOSwgMTQ5MTksIDE0OTI2LCAxNDkzMiwgMTQ5NDAsIDE0OTQ2LCAxNDk1NCwgMTQ5NjEsIDE0OTc0LCAKKyAgICAxNDk4MSwgMTQ5OTAsIDE0OTk5LCAxNTAwOCwgMTUwMTYsIDE1MDI2LCAxNTAzMywgMTUwMzgsIDM1NjAsIDE1MDQ1LCAKKyAgICAxNTA1MCwgMTM3MiwgMTUwNTQsIDE0MzI0LCAxNTA1OCwgMTUwNjQsIDE1MDY4LCAxNTA3NiwgMTUwODgsIDE1MDkzLCAKKyAgICAxNTEwMCwgMTUxMDYsIDE1MTExLCAxNTExOCwgMTQzMjksIDE1MTIyLCAxNTEyNiwgMTUxMzAsIDE0MzM0LCAxNTEzNCwgCisgICAgMTQzMzksIDE1MTM4LCAxNTE0NSwgMTUxNTAsIDE1MTU0LCAxNTE2MSwgMTUxNjUsIDE1MTczLCAxNTE4MCwgMTUxODQsIAorICAgIDE1MTkxLCAxNTIwOCwgMTUyMTcsIDE1MjIxLCAxNTIyNCwgMTUyMzIsIDE1MjM4LCAxNTI0MywgMzYzOCwgMTUyNDcsIAorICAgIDE1MjQ5LCAxNTI1NywgMTUyNjQsIDE1Mjc0LCAxNTI4NiwgMTUyOTEsIDE1Mjk3LCAxNTMwMiwgMTUzMDYsIDE1MzEyLCAKKyAgICAxNTMxNywgMTUzMjMsIDE1MzI2LCAxNTMzMywgMTUzNDEsIDE1MzQ4LCAxNTM1NCwgMTUzNjAsIDE1MzY1LCAxNTM3MiwgCisgICAgMTUzNzgsIDE1MzgzLCAxNTM5MCwgMTUzOTQsIDE1NDAwLCAxNTQwNCwgMTU0MTEsIDE1NDE3LCAxNTQyMywgMTU0MzEsIAorICAgIDE1NDM3LCAxNTQ0MiwgMTU0NDgsIDE1NDU2LCAxNTQ2NCwgMTU0NzAsIDE1NDc2LCAxNTQ4MSwgMTU0ODgsIDE1NDkzLCAKKyAgICAxNTQ5NywgMTU1MDMsIDE1NTA4LCAxNTUxNSwgMTU1MjAsIDE1NTI2LCAxNTUyOSwgMTU1MzUsIDE1NTQxLCAxNTU0NCwgCisgICAgMTU1NDgsIDE1NTYwLCAxNTU2NiwgMTU1NzEsIDE1NTc4LCAxNTU4NCwgMTU1OTAsIDE1NjAxLCAxNTYxMSwgMTU2MjAsIAorICAgIDE1NjI4LCAxNTYzNSwgMTU2NDYsIDE1NjU2LCAxNTY2NiwgMTU2NzQsIDE1Njc3LCAxNDM1MywgMTU2ODIsIDE1Njg3LCAKKyAgICAxNDM1OCwgMTQ0OTMsIDE1Njk1LCAxNTcwOCwgMTU3MjMsIDE1NzM0LCAxNDUxMCwgMTU3NTIsIDE1NzY1LCAxNTc3OCwgCisgICAgMTU3ODksIDEwNDkyLCAxNTgwMCwgMTU4MTMsIDE1ODMyLCAxNTg0MywgMTU4NTQsIDE1ODY1LCAyNjQ5LCAxNTg3OCwgCisgICAgMTU4ODIsIDE1ODkwLCAxNTkwNSwgMTU5MjAsIDE1OTMxLCAxNTkzOCwgMTU5NDQsIDE1OTUyLCAxNTk1NiwgMTU5NjIsIAorICAgIDE1OTY1LCAxNTk3NSwgMTU5ODMsIDE1OTkwLCAxNTk5OCwgMTYwMDgsIDE2MDEzLCAxNjAyMCwgMTYwMjUsIDE2MDMyLCAKKyAgICAxNjA0MywgMTYwNTMsIDE2MDU5LCAxNjA2NCwgMTYwNjksIDE0MzYzLCAxNjA3MywgMTYwNzksIDE2MDg1LCAxNjA5MCwgCisgICAgMTYwOTUsIDE2MTAwLCAxNjEwNCwgMTQzNjgsIDE0Mzc0LCAxNjEwOCwgMTQzODAsIDE2MTEzLCAxNjEyMSwgMTYxMzAsIAorICAgIDE2MTM3LCA5MTUwLCAxNjE0MSwgMTYxNDMsIDE2MTQ4LCAxNjE1MywgMTYxNTksIDE2MTY0LCAxNjE2OSwgMTYxNzQsIAorICAgIDE2MTc5LCAxNjE4MywgMTYxODksIDE2MTk1LCAxNjIwMCwgMTYyMDYsIDE2MjExLCAxNjIxNiwgMTYyMjIsIDE2MjI3LCAKKyAgICAxNjIzMiwgMTYyMzcsIDE2MjQyLCAxNjI0OCwgMTYyNTMsIDE2MjU4LCAxNjI2NCwgMTYyNzAsIDE2Mjc1LCAxNjI4MCwgCisgICAgMTYyODcsIDE2MjkzLCAxNjMwNCwgMTYzMTEsIDE2MzE2LCAxNjMyMCwgMTYzMjQsIDE2MzI3LCAxNjMzNSwgMTYzNDAsIAorICAgIDE2MzQ3LCAxNjM1NCwgMTYzNjAsIDE2MzY1LCAxNjM3MCwgMTYzNzcsIDE2Mzg3LCAxNjM5MiwgMTYzOTksIDE2NDA1LCAKKyAgICAxNjQxNSwgMTY0MjUsIDE2NDM5LCAxNjQ1MywgMTY0NjcsIDE2NDgxLCAxNjQ5NiwgMTY1MTEsIDE2NTI4LCAxNjU0NiwgCisgICAgMTY1NTksIDE2NTY1LCAxNjU3MCwgMTY1NzUsIDE2NTc5LCAxNjU4NCwgMTY1OTIsIDE2NTk4LCAxNjYwMywgMTY2MDgsIAorICAgIDE2NjEyLCAxNjYxNywgMTY2MjEsIDE2NjI2LCAxNjYzMCwgMTY2NDEsIDE2NjQ3LCAxNjY1MiwgMTY2NTcsIDE2NjY0LCAKKyAgICAxNjY2OSwgMTY2NzMsIDE2Njc4LCAxNjY4MywgMTY2ODksIDE2Njk2LCAxNjcwMiwgMTY3MDcsIDE2NzExLCAxNjcxNywgCisgICAgMTY3MjIsIDE2NzI3LCAxNjczMSwgMTY3MzcsIDE2NzQyLCAxNjc0NywgMTY3NTQsIDE2NzU5LCAxMzExMSwgMTY3NjMsIAorICAgIDE2NzY4LCAxNjc3MiwgMTY3NzcsIDE2NzgzLCAxNjc4OSwgMTY3OTYsIDE2ODA2LCAxNjgxNCwgMTY4MjEsIDE2ODI2LCAKKyAgICAxNjgzMCwgMTY4MzksIDE2ODQ3LCAxNjg1NCwgMTY4NjEsIDE2ODY3LCAxNjg3MywgMTY4NzgsIDE2ODgzLCAxNjg4OSwgCisgICAgMTY4OTQsIDE2OTAwLCAxNjkwNSwgMTY5MTEsIDE2OTE3LCAxNjkyNCwgMTY5MzAsIDE2OTM1LCAxNjk0MCwgOTM0OCwgCisgICAgMTY5NDksIDE2OTUyLCAxNjk1OCwgMTY5NjMsIDE2OTY4LCAxNjk3OCwgMTY5ODUsIDE2OTkxLCAxNjk5NiwgMTcwMDEsIAorICAgIDE3MDA3LCAxNzAxMiwgMTcwMTgsIDE3MDIzLCAxNzAyOSwgMTcwMzUsIDE3MDQwLCAxNzA0OCwgMTcwNTUsIDE3MDYwLCAKKyAgICAxNzA2NSwgMTcwNzEsIDE3MDc2LCAxNzA4MCwgMTcwODksIDE3MTAwLCAxNzEwNywgMTcxMTIsIDE3MTIwLCAxNzEyNiwgCisgICAgMTcxMzMsIDE3MTM5LCAxNzE0NCwgMTcxNDgsIDE3MTU0LCAxNzE1OSwgMTcxNjQsIDE3MTY5LCAxNDQwLCA3Nzc3LCAyODc3LCAKKyAgICAxNzE3MywgMTcxNzcsIDE3MTgxLCAxNzE4NSwgMTcxODksIDE3MTkzLCAxNzE5NiwgMTcyMDMsIDE3MjExLCAxNDM5NCwgCisgICAgMTcyMTgsIDE3MjI4LCAxNzIzNiwgMTcyNDMsIDE3MjUxLCAxNzI2MSwgMTcyNzAsIDE3MjgzLCAxNzI4OCwgMTcyOTMsIAorICAgIDE3MzAxLCAxNzMwOCwgMTMyMDcsIDEzMjE2LCAxNzMxNSwgMTczMjUsIDE3MzQwLCAxNzM0NiwgMTczNTMsIDE3MzYwLCAKKyAgICAxNzM2NiwgMTczNzQsIDE3Mzg0LCAxNzM5NCwgMTQzOTksIDE3NDAzLCAxNzQwOSwgMTc0MTUsIDE3NDIzLCAxNzQzMSwgCisgICAgMTc0MzYsIDE3NDQ1LCAxNzQ1MywgMTc0NjUsIDE3NDc1LCAxNzQ4NSwgMTc0OTUsIDE3NTA0LCAxNzUxNiwgMTc1MjYsIAorICAgIDE3NTM2LCAxNzU0NywgMTc1NTIsIDE3NTY0LCAxNzU3NiwgMTc1ODgsIDE3NjAwLCAxNzYxMiwgMTc2MjQsIDE3NjM2LCAKKyAgICAxNzY0OCwgMTc2NjAsIDE3NjcyLCAxNzY4MywgMTc2OTUsIDE3NzA3LCAxNzcxOSwgMTc3MzEsIDE3NzQzLCAxNzc1NSwgCisgICAgMTc3NjcsIDE3Nzc5LCAxNzc5MSwgMTc4MDMsIDE3ODE0LCAxNzgyNiwgMTc4MzgsIDE3ODUwLCAxNzg2MiwgMTc4NzQsIAorICAgIDE3ODg2LCAxNzg5OCwgMTc5MTAsIDE3OTIyLCAxNzkzNCwgMTc5NDUsIDE3OTU3LCAxNzk2OSwgMTc5ODEsIDE3OTkzLCAKKyAgICAxODAwNSwgMTgwMTcsIDE4MDI5LCAxODA0MSwgMTgwNTMsIDE4MDY1LCAxODA3NiwgMTgwODgsIDE4MTAwLCAxODExMiwgCisgICAgMTgxMjQsIDE4MTM2LCAxODE0OCwgMTgxNjAsIDE4MTcyLCAxODE4NCwgMTgxOTYsIDE4MjA3LCAxODIxOSwgMTgyMzEsIAorICAgIDE4MjQzLCAxODI1NSwgMTgyNjcsIDE4Mjc5LCAxODI5MSwgMTgzMDMsIDE4MzE1LCAxODMyNywgMTgzMzgsIDE4MzUwLCAKKyAgICAxODM2MiwgMTgzNzQsIDE4Mzg2LCAxODM5OCwgMTg0MTAsIDE4NDIyLCAxODQzNCwgMTg0NDYsIDE4NDU4LCAxODQ2OSwgCisgICAgMTg0ODEsIDE4NDkzLCAxODUwNSwgMTg1MTcsIDE4NTMwLCAxODU0MywgMTg1NTYsIDE4NTY5LCAxODU4MiwgMTg1OTUsIAorICAgIDE4NjA4LCAxODYyMCwgMTg2MzMsIDE4NjQ2LCAxODY1OSwgMTg2NzIsIDE4Njg1LCAxODY5OCwgMTg3MTEsIDE4NzI0LCAKKyAgICAxODczNywgMTg3NTAsIDE4NzYyLCAxODc3NSwgMTg3ODgsIDE4ODAxLCAxODgxNCwgMTg4MjcsIDE4ODQwLCAxODg1MywgCisgICAgMTg4NjYsIDE4ODc5LCAxODg5MiwgMTg5MDQsIDE4OTE3LCAxODkzMCwgMTg5NDMsIDE4OTU2LCAxODk2OSwgMTg5ODIsIAorICAgIDE4OTk1LCAxOTAwOCwgMTkwMjEsIDE5MDM0LCAxOTA0NiwgMTkwNTksIDE5MDcyLCAxOTA4NSwgMTkwOTgsIDE5MTExLCAKKyAgICAxOTEyNCwgMTkxMzcsIDE5MTUwLCAxOTE2MywgMTkxNzYsIDE5MTg4LCAxOTIwMSwgMTkyMTQsIDE5MjI3LCAxOTI0MCwgCisgICAgMTkyNTMsIDE5MjY2LCAxOTI3OSwgMTkyOTIsIDE5MzA1LCAxOTMxOCwgMTkzMzAsIDE5MzQxLCAxOTM1NCwgMTkzNjcsIAorICAgIDE5MzgwLCAxOTM5MywgMTk0MDYsIDE5NDE5LCAxOTQzMiwgMTk0NDUsIDE5NDU4LCAxOTQ3MSwgMTk0ODMsIDE5NDk2LCAKKyAgICAxOTUwOSwgMTk1MjIsIDE5NTM1LCAxOTU0OCwgMTk1NjEsIDE5NTc0LCAxOTU4NywgMTk2MDAsIDE5NjEzLCAxOTYyNSwgCisgICAgMTk2MzgsIDE5NjUxLCAxOTY2NCwgMTk2NzcsIDE5NjkwLCAxOTcwMywgMTk3MTYsIDE5NzI5LCAxOTc0MiwgMTk3NTUsIAorICAgIDE5NzY3LCAxOTc4MCwgMTk3OTMsIDE5ODA2LCAxOTgxOSwgMTk4MzIsIDE5ODQ1LCAxOTg1OCwgMTk4NzEsIDE5ODg0LCAKKyAgICAxOTg5NywgMTk5MDksIDE5OTIyLCAxOTkzNSwgMTk5NDgsIDE5OTYxLCAxOTk3NCwgMTk5ODcsIDIwMDAwLCAyMDAxMywgCisgICAgMjAwMjYsIDIwMDM5LCAyMDA1MSwgMjAwNjQsIDIwMDc3LCAyMDA5MCwgMjAxMDMsIDIwMTE2LCAyMDEyOSwgMjAxNDIsIAorICAgIDIwMTU1LCAyMDE2OCwgMjAxODEsIDIwMTkzLCAyMDIwNiwgMjAyMTksIDIwMjMyLCAyMDI0NSwgMjAyNTgsIDIwMjcxLCAKKyAgICAyMDI4NCwgMjAyOTcsIDIwMzEwLCAyMDMyMywgMjAzMzUsIDIwMzQ4LCAyMDM2MSwgMjAzNzQsIDIwMzg3LCAyMDQwMCwgCisgICAgMjA0MTMsIDIwNDI2LCAyMDQzOSwgMjA0NTIsIDIwNDY1LCAyMDQ3NywgMjA0OTAsIDIwNTAzLCAyMDUxNiwgMjA1MjksIAorICAgIDIwNTQyLCAyMDU1NSwgMjA1NjgsIDIwNTgxLCAyMDU5NCwgMjA2MDcsIDIwNjE5LCAyMDYzMiwgMjA2NDUsIDIwNjU4LCAKKyAgICAyMDY3MSwgMjA2ODQsIDIwNjk3LCAyMDcxMCwgMjA3MjMsIDIwNzM2LCAyMDc0OSwgMjA3NjEsIDIwNzcyLCAyMDc4MCwgCisgICAgMjA3ODgsIDIwNzk1LCAyMDgwMSwgMjA4MDUsIDIwODExLCAyMDgxNywgMjA4MjUsIDIwODMxLCAyMDgzNiwgMjA4NDAsIAorICAgIDIwODQ5LCA5MTU1LCAyMDg2MCwgMjA4NjcsIDIwODc1LCAyMDg4MiwgMjA4ODksIDEwOTQ4LCAyMDg5NiwgMjA5MDUsIAorICAgIDIwOTEwLCAyMDkxNSwgNzgwNSwgMjA5MjIsIDIwOTI3LCAyMDkzMCwgMjA5MzUsIDIwOTQzLCAyMDk1MCwgMjA5NTcsIAorICAgIDIwOTY0LCAyMDk3MCwgMjA5NzksIDIwOTg4LCAyMDk5NCwgMjEwMDMsIDIxMDA3LCAyMTAxMywgMjEwMTgsIDIxMDI4LCAKKyAgICAyMTAzNSwgMjEwNDEsIDIxMDQ5LCAyMTA1NSwgMjEwNjIsIDIxMDcyLCAyMTA4MSwgMjEwODUsIDIxMDkyLCAyMTA5NiwgCisgICAgMjExMDEsIDIxMTA3LCAyMTExNSwgMjExMTksIDIxMTI5LCAxNDQwOSwgMjExMzgsIDIxMTQ0LCAyMTE0OCwgMjExNTcsIAorICAgIDE0NDE0LCAyMTE2MywgMjExNzAsIDIxMTgxLCAyMTE4OSwgMjExOTgsIDIxMjA2LCA4OTMxLCAyMTIxNCwgMjEyMTksIAorICAgIDIxMjI1LCAyMTIzMCwgMjEyMzQsIDIxMjM4LCAyMTI0MiwgOTYzOSwgMjEyNDcsIDIxMjU1LCAyMTI2MiwgMjEyNzEsIAorICAgIDIxMjc4LCAyMTI4NSwgMTA4NzgsIDIxMjkyLCAyMTI5OCwgMjEzMDIsIDIxMzA4LCAyMTMxNSwgMjEzMjEsIDIxMzI5LCAKKyAgICAyMTMzNSwgMjEzNDIsIDIxMzQ4LCAyMTM1NCwgMjEzNjMsIDIxMzY3LCAyMTM3NSwgMjEzODQsIDIxMzkxLCAyMTM5NiwgCisgICAgMjE0MDAsIDIxNDExLCAyMTQxNiwgMjE0MjEsIDIxNDI2LCAyMTQzOSwgNzk5NSwgMjE0NDMsIDIxNDQ5LCAyMTQ1NywgCisgICAgMjE0NjEsIDIxNDY4LCAyMTQ3NywgMjE0ODIsIDE0Njg1LCAyMTQ5MCwgMjE0OTQsIDIxNTA2LCAyMTUxMSwgMjE1MTUsIAorICAgIDIxNTE4LCAyMTUyNCwgMjE1MzAsIDIxNTM1LCAyMTUzOSwgMjE1NDIsIDIxNTUzLCAyMTU1OCwgOTM4MywgMjE1NjUsIAorICAgIDIxNTcwLCA5Mzg4LCAyMTU3NSwgMjE1ODAsIDIxNTg1LCAyMTU5MCwgMjE1OTUsIDIxNjAwLCAyMTYwNSwgMjE2MTAsIAorICAgIDIxNjE1LCAyMTYyMCwgMjE2MjUsIDIxNjMwLCAyMTYzNiwgMjE2NDEsIDIxNjQ2LCAyMTY1MSwgMjE2NTYsIDIxNjYxLCAKKyAgICAyMTY2NiwgMjE2NzEsIDIxNjc2LCAyMTY4MSwgMjE2ODcsIDIxNjkzLCAyMTY5OCwgMjE3MDMsIDIxNzA4LCAyMTcxMywgCisgICAgMjE3MTgsIDIxNzIzLCAyMTcyOCwgMjE3MzMsIDIxNzM4LCAyMTc0NCwgMjE3NDksIDIxNzU0LCAyMTc1OSwgMjE3NjUsIAorICAgIDIxNzcxLCAyMTc3NiwgMjE3ODEsIDIxNzg2LCAyMTc5MSwgMjE3OTYsIDIxODAxLCAyMTgwNiwgMjE4MTEsIDIxODE3LCAKKyAgICAyMTgyMiwgMjE4MjcsIDIxODMyLCAyMTgzNywgMjE4NDMsIDIxODQ4LCAyMTg1MywgMjE4NTcsIDEzNjgsIDEyOSwgMjE4NjUsIAorICAgIDIxODY5LCAyMTg3MywgMjE4NzcsIDIxODgyLCAyMTg4NiwgMTMxMTcsIDEyNDc2LCAyMTg5MCwgMjE4OTUsIDIxODk5LCAKKyAgICAyMTkwNCwgMjE5MDgsIDIxOTEzLCAyMTkxNywgMjE5MjMsIDIxOTI4LCAyMTkzMiwgMjE5MzYsIDIxOTQ0LCAyMTk0OCwgCisgICAgMjE5NTIsIDIxOTU3LCAyMTk2MiwgMjE5NjYsIDIxOTcyLCAyMTk3NywgMjE5ODEsIDIxOTg2LCAyMTk5MSwgMjE5OTUsIAorICAgIDIyMDAyLCAyMjAwOSwgMjIwMTYsIDIyMDIwLCAyMjAyNCwgMjIwMjksIDIyMDMzLCAyMjAzNiwgMjIwNDIsIDIyMDU1LCAKKyAgICAyMjA2MCwgMjIwNjksIDIyMDc0LCA5NDI4LCAyMjA3OSwgMjIwODIsIDI3MTIsIDI3MTcsIDIyMDg2LCAyMjA5MiwgMjIwOTgsIAorICAgIDcyMDksIDIyMTAzLCAyMjEwOCwgMjIxMTMsIDIyMTE5LCAyMjEyNCwgMTM5MDMsIDIyMTI5LCAyMjEzNCwgMjIxMzksIAorICAgIDIyMTQ0LCAyMjE1MCwgMjIxNTUsIDIyMTYwLCAyMjE2NiwgMjIxNzEsIDIyMTc1LCAyMjE4MCwgMjIxODUsIDIyMTkwLCAKKyAgICAyMjE5NSwgMjIxOTksIDIyMjA0LCAyMjIwOCwgMjIyMTMsIDIyMjE4LCAyMjIyMywgMjIyMjgsIDIyMjMyLCAyMjIzNywgCisgICAgMjIyNDEsIDIyMjQ2LCAyMjI1MSwgMjIyNTYsIDIyMjYxLCAyODg2LCAyMjE3NiwgMjIyNjUsIDIyMjczLCAyMjI4MCwgCisgICAgOTczMywgMjIyOTIsIDIyMzAwLCAyMjE4MSwgMjIzMDcsIDIyMzEyLCAyMjMyMCwgMjIxODYsIDIyMzI1LCAyMjMzMCwgCisgICAgMjIzMzgsIDIyMzQzLCAyMjE5MSwgMjIzNDgsIDIyMzUzLCAyMjM1NywgMjIzNjMsIDIyMzcxLCAyMjM3NCwgMjIzODEsIAorICAgIDIyMzg1LCAyMjM4OSwgMjIzOTUsIDIyNDAyLCAyMjQwNywgODk1OCwgMTcyNywgMTczMiwgMjI0MTEsIDIyNDE3LCAyMjQyMywgCisgICAgMjI0MjgsIDIyNDMyLCAyMjQzNiwgMjI0NDAsIDIyNDQ0LCAyMjQ0OCwgMjI0NTIsIDIyNDU2LCAyMjQ1OSwgMjI0NjUsIAorICAgIDIyNDcyLCAyMjQ4MCwgMjI0ODYsIDIyNDkyLCAyMjQ5NywgMjI1MDIsIDIyNTA2LCAxMzgyMywgMTM4MzAsIDIyNTExLCAKKyAgICAyMjUyMywgMjI1MjYsIDIyNTMzLCAxNjM1NiwgMjI1NDAsIDIyNTQ4LCAyMjU1OSwgMjI1NjgsIDIyNTgxLCAyMjU5MSwgCisgICAgMjI2MDUsIDIyNjE3LCAyMjYzMSwgMjI2NDMsIDIyNjUzLCAyMjY2NSwgMjI2NzEsIDIyNjg2LCAyMjcxMCwgMjI3MjgsIAorICAgIDIyNzQ3LCAyMjc2MCwgMjI3NzQsIDIyNzkyLCAyMjgwOCwgMjI4MjUsIDIyODQzLCAyMjg1NCwgMjI4NzMsIDIyODkwLCAKKyAgICAyMjkxMCwgMjI5MjgsIDIyOTQwLCAyMjk1NCwgMjI5NjgsIDIyOTgwLCAyMjk5NywgMjMwMTYsIDIzMDM0LCAyMzA0NiwgCisgICAgMjMwNjQsIDIzMDgzLCAxNDU1MywgMjMwOTYsIDIzMTE2LCAyMzEyOCwgMTA1MjMsIDIzMTQwLCAyMzE0NSwgMjMxNTAsIAorICAgIDIzMTU1LCAyMzE2MSwgMjMxNjYsIDIzMTcwLCAyMzE3NywgMjM5OCwgMjMxODEsIDIzMTg3LCAyMzE5MSwgMjMxOTQsIAorICAgIDIzMTk4LCAyMzIwNiwgMjMyMTIsIDIyMjA5LCAyMzIxNiwgMjMyMjUsIDIzMjM2LCAyMzI0MiwgMjMyNDgsIDIzMjU3LCAKKyAgICAyMzI2NSwgMjMyNzIsIDIzMjc3LCAyMzI4MSwgMjMyODgsIDIzMjk0LCAyMzMwMywgMjMzMTEsIDIzMzE4LCAyMzMyOCwgCisgICAgMjMzMzcsIDIzMzQ3LCAyMzM1MiwgMjMzNjEsIDIzMzcwLCAyMzM4MSwgMjMzOTIsIDM5NjMsIDIzNDAyLCAyMzQwNiwgCisgICAgMjM0MTYsIDIzNDI0LCAyMzQzNCwgMjM0NDUsIDIzNDUwLCAyMzQ2MCwgMjM0NjgsIDIzNDc1LCAyMzQ4MSwgMjM0ODgsIAorICAgIDIzNDkzLCAyMjIxOSwgMjM0OTcsIDIzNTA2LCAyMzUxMCwgMjM1MTMsIDIzNTE4LCAyMzUyNSwgMjM1MzQsIDIzNTQyLCAKKyAgICAyMzU1MCwgMjM1NjAsIDIzNTY5LCAyMzU3NSwgMjM1ODEsIDIyMjI0LCAyMjIyOSwgMjM1ODUsIDIzNTk1LCAyMzYwNSwgCisgICAgMjM2MTUsIDIzNjIzLCAyMzYzMCwgMjM2NDAsIDIzNjQ4LCAyMzY1NiwgMjM2NjIsIDIzNjcwLCA5MzAsIDIzNjc5LCAKKyAgICAxNDc0NCwgNTQyLCAyMzY5MywgMjM3MDIsIDIzNzEwLCAyMzcyMSwgMjM3MzIsIDIzNzQyLCAyMzc1MSwgMjM3NjMsIAorICAgIDIzNzcyLCAyMzc4MSwgMjM3ODcsIDIzNzk2LCAyMzgwNSwgMjM4MTUsIDIzODIzLCAyMzgzMSwgOTM2MCwgMjM4MzcsIAorICAgIDIzODQwLCAyMzg0NCwgMjM4NDksIDIzODU0LCA5ODQ4LCAyMjI0MiwgMjIyNDcsIDIzODYyLCAyMzg2OCwgMjM4NzQsIAorICAgIDIzODc5LCAyMzg4NCwgMjM4ODgsIDIzODk2LCAyMzkwMiwgMjM5MDgsIDIzOTEyLCAzNTI1LCAyMzkyMCwgMjM5MjUsIAorICAgIDIzOTMwLCAyMzkzNCwgMjM5MzgsIDk5MjgsIDIzOTQ1LCAyMzk1MywgMjM5NjcsIDIzOTc0LCAyMzk4MCwgOTkzNywgOTk0MywgCisgICAgMjM5ODgsIDIzOTk2LCAyNDAwMywgMjQwMDgsIDI0MDEzLCAyMjI1MiwgMjQwMTksIDI0MDMwLCAyNDAzNCwgMjQwMzksIAorICAgIDI2MDEsIDI0MDQ0LCAyNDA1NSwgMjQwNjEsIDI0MDY2LCAyNDA3MCwgMjQwNzQsIDI0MDc3LCAyNDA4NCwgMjQwOTEsIAorICAgIDI0MDk4LCAyNDEwNCwgMjQxMDgsIDIyMjU3LCAyNDExMywgMjQxMTcsIDI0MTIxLCAxMDM3LCAyNDEyNiwgMjQxMzEsIAorICAgIDI0MTM2LCAyNDE0MSwgMjQxNDYsIDI0MTUxLCAyNDE1NiwgMjQxNjEsIDI0MTY2LCAyNDE3MSwgMjQxNzYsIDI0MTgxLCAKKyAgICAyNDE4NiwgMjQxOTEsIDI0MTk3LCAyNDIwMiwgMjQyMDcsIDI0MjEyLCAyNDIxNywgMjQyMjIsIDI0MjI3LCAyNDIzMywgCisgICAgMjQyMzgsIDI0MjQzLCAyNDI0OCwgMjQyNTMsIDI0MjU4LCAyNDI2MywgMjQyNjgsIDI0Mjc0LCAyNDI4MCwgMjQyODUsIAorICAgIDI0MjkxLCAyNDI5NiwgMjQzMDEsIDUsIDI0MzA3LCAyNDMxMSwgMjQzMTUsIDI0MzE5LCAyNDMyNCwgMjQzMjgsIDI0MzMyLCAKKyAgICAyNDMzNiwgMjQzNDAsIDI0MzQ1LCAyNDM0OSwgMjQzNTQsIDI0MzU4LCAyNDM2MSwgMjQzNjUsIDI0MzcwLCAyNDM3NCwgCisgICAgMjQzNzksIDI0MzgzLCAyNDM4NywgMjQzOTEsIDI0Mzk2LCAyNDQwMCwgMjQ0MDQsIDI0NDE0LCAyNDQxOSwgMjQ0MjMsIAorICAgIDI0NDI3LCAyNDQzMiwgMjQ0MzcsIDI0NDQ2LCAyNDQ1MSwgMjQ0NTYsIDI0NDYwLCAyNDQ2NCwgMjQ0NzcsIDI0NDg5LCAKKyAgICAyNDQ5OCwgMjQ1MDcsIDI0NTEzLCAyNDUxOCwgMjQ1MjIsIDI0NTI2LCAyNDUzNiwgMjQ1NDUsIDI0NTUzLCAyNDU1OSwgCisgICAgMjQ1NjQsIDI0NTY4LCAyNDU3NSwgMjQ1ODUsIDI0NTk0LCAyNDYwMiwgMjQ2MTAsIDI0NjE3LCAyNDYyNSwgMjQ2MzQsIAorICAgIDI0NjQzLCAyNDY1MSwgMjQ2NTYsIDI0NjYwLCAyNDY2NCwgMjQ2NjcsIDI0NjY5LCAyNDY3MywgMjQ2NzcsIDI0NjgyLCAKKyAgICAyNDY4NywgMjQ2OTEsIDI0Njk1LCAyNDY5OCwgMjQ3MDIsIDI0NzA1LCAyNDcwOSwgMjQ3MTIsIDI0NzE1LCAyNDcxOSwgCisgICAgMjQ3MjUsIDI0NzI5LCAyNDczMywgMjQ3MzcsIDI0NzQyLCAyNDc0NywgMjQ3NTIsIDI0NzU2LCAyNDc1OSwgMjQ3NjQsIAorICAgIDI0NzcwLCAyNDc3NSwgMjQ3ODEsIDI0Nzg2LCAyNDc5MCwgMjQ3OTQsIDI0Nzk4LCAyNDgwMywgMjQ4MDcsIDI0ODEyLCAKKyAgICAyNDgxNiwgMjQ4MjAsIDI0ODI3LCAyNDgzMSwgMjQ4MzQsIDI0ODM4LCAyNDg0NCwgMjQ4NTAsIDI0ODU0LCAyNDg1OCwgCisgICAgMjQ4NjMsIDI0ODcwLCAyNDg3NiwgMjQ4ODAsIDI0ODg5LCAyNDg5MywgMjQ4OTcsIDI0OTAwLCAyNDkwNiwgMjQ5MTEsIAorICAgIDI0OTE3LCAxNDg5LCAxNzkxLCAyNDkyMiwgMjQ5MjcsIDI0OTMyLCAyNDkzNywgMjQ5NDIsIDI0OTQ3LCAyNDk1MiwgMjE0OCwgCisgICAgMjE5NCwgMjQ5NTcsIDI0OTYwLCAyNDk2NCwgMjQ5NjgsIDI0OTczLCAyNDk3NywgMjQ5ODEsIDI0OTg0LCAyNDk4OSwgCisgICAgMjQ5OTQsIDI0OTk4LCAyNTAwMSwgMjUwMDYsIDI1MDEwLCAyNTAxNSwgMjUwMTksIDE0NzU2LCAyNTAyNCwgMjUwMjcsIAorICAgIDI1MDMwLCAyNTAzNCwgMjUwMzksIDI1MDQzLCAyNTA1NiwgMjUwNjAsIDI1MDYzLCAyNTA3MSwgMjUwODAsIDI1MDg3LCAKKyAgICAyNTA5MiwgMjUwOTgsIDI1MTA0LCAyNTExMiwgMjUxMTksIDI1MTI2LCAyNTEzMCwgMjUxMzQsIDI1MTM4LCAyNTE0MywgCisgICAgMjUxNDgsIDI1MTUyLCAyNTE2MCwgMjUxNjUsIDI1MTc3LCAyNTE4OCwgMjUxOTMsIDI1MTk3LCAyNTIwMSwgMjUyMDcsIAorICAgIDI1MjEyLCAyNTIxNywgMjUyMjEsIDI1MjI1LCAyNTIyOCwgMjUyMzQsIDc5MTUsIDIzMTYsIDI1MjM4LCAyNTI0MywgCisgICAgMjUyNTksIDk0NzUsIDI1Mjc5LCAyNTI4OCwgMjUzMDQsIDI1MzA4LCAyNTMxMSwgMjUzMTcsIDI1MzI3LCAyNTMzMywgCisgICAgMjUzNDIsIDI1MzU3LCAyNTM2OSwgMjUzODAsIDI1Mzg4LCAyNTM5NywgMjU0MDMsIDI1NDEyLCAyNTQyMiwgMjU0MzMsIAorICAgIDI1NDQ0LCAyNTQ1MywgMjU0NjAsIDI1NDY5LCAyNTQ3NywgMjU0ODQsIDI1NDkyLCAyNTQ5OSwgMjU1MDYsIDI1NTE5LCAKKyAgICAyNTUyNiwgMjU1MzIsIDI1NTM3LCAyNTU0NiwgMjU1NTIsIDI1NTU3LCAyNTU2NSwgMjU1NzIsIDIzNDI2LCAyNTU4NCwgCisgICAgMjU1OTYsIDI1NjEwLCAyNTYxOCwgMjU2MjUsIDI1NjM3LCAyNTY0NiwgMjU2NTUsIDI1NjYzLCAyNTY3MSwgMjU2NzksIAorICAgIDI1Njg2LCAyNTY5NSwgMjU3MDMsIDI1NzEzLCAyNTcyMiwgMjU3MzIsIDI1NzQxLCAyNTc1MCwgMjU3NTgsIDI1NzYzLCAKKyAgICAyNTc2NywgMjU3NzAsIDI1Nzc0LCAyNTc3OCwgMjU3ODIsIDI1Nzg2LCAyNTc5MCwgMjU3OTYsIDI1ODAyLCAyNTgxMCwgCisgICAgMTQ4MDEsIDI1ODE3LCAyNTgyMiwgMjU4MjksIDI1ODM1LCAyNTg0MiwgMTQ4MDksIDI1ODQ5LCAyNTg1MiwgMjU4NjQsIAorICAgIDI1ODcyLCAyNTg3OCwgMjU4ODMsIDI1ODg3LCA5ODc4LCAyNTg5OCwgMjU5MDgsIDI1OTE3LCAyNTkyNCwgMjU5MjgsIAorICAgIDE0ODE0LCAyNTkzMSwgMjU5MzgsIDI1OTQyLCAyNTk0OCwgMjU5NTEsIDI1OTU4LCAyNTk2NCwgMjU5NzEsIDI1OTc3LCAKKyAgICAyNTk4MSwgMjU5ODYsIDI1OTkwLCAyNTk5OSwgMjYwMDYsIDI2MDEyLCA3OTU2LCAyNjAxOSwgMjYwMjcsIDI2MDM0LCAKKyAgICAyNjA0MCwgMjYwNDUsIDI2MDUxLCAyNjA1NywgMjYwNjUsIDI2MDY5LCAyNjA3MiwgMjYwNzQsIDI1Nzc1LCAyNjA4MywgCisgICAgMjYwODksIDI2MDk5LCAyNjEwNCwgMjYxMTEsIDI2MTE3LCAyNjEyMiwgMjYxMjcsIDI2MTMyLCAyNjEzNiwgMjYxNDEsIAorICAgIDI2MTQ4LCAyNjE1NywgMjYxNjEsIDI2MTY4LCAyNjE3NywgMjYxODMsIDI2MTg4LCAyNjE5NCwgMjYxOTksIDI2MjA2LCAKKyAgICAyNjIxNywgMjYyMjIsIDI2MjI2LCAyNjIzNiwgMjYyNDIsIDI2MjQ2LCAyNjI1MSwgMjYyNjEsIDI2MjcwLCAyNjI3NCwgCisgICAgMjYyODEsIDI2Mjg5LCAyNjI5NiwgMjYzMDIsIDI2MzA3LCAyNjMxNSwgMjYzMjIsIDI2MzM0LCAyNjM0MywgMjYzNDcsIAorICAgIDEzMDUzLCAyNjM1NSwgMjYzNjUsIDI2MzY5LCAyNTA2NywgMjYzODAsIDI2Mzg1LCAyNjM4OSwgMjYzOTYsIDI2NDAzLCAKKyAgICAyMTk2OCwgMjU3MDAsIDI2NDA4LCAyNjQxMiwgMjY0MTUsIDIyODYwLCAyNjQyMCwgMjY0MzQsIDI2NDUwLCAyNjQ2OCwgCisgICAgMjY0ODcsIDI2NTA0LCAyNjUyMiwgMjI4NzksIDI2NTM5LCAyNjU1OSwgMjI4OTYsIDI2NTcxLCAyNjU4MywgMTU3MzksIAorICAgIDI2NTk1LCAyMjkxNiwgMjY2MDksIDI2NjIxLCAxMDUzNiwgMjY2MzUsIDI2NjQwLCAyNjY0NSwgMjY2NTAsIDI2NjU2LCAKKyAgICAyNjY2MiwgMjY2NjgsIDI2NjcyLCAyNjY3OSwgMjY2ODQsIDI2Njk0LCAyNjcwMCwgMTAxODMsIDI2NzA2LCAyNjcwOCwgCisgICAgMjY3MTMsIDI2NzIxLCAyNjcyNSwgMjYxNDQsIDI2NzMxLCAyNjczOCwgMTE1MjQsIDExNTM0LCAyNjc0NSwgMjY3NTUsIAorICAgIDI2NzYwLCAyNjc2NCwgMjY3NjcsIDI2NzczLCAyNjc4MSwgMjY3OTMsIDI2ODAzLCAyNjgxOSwgMjY4MzIsIDI2ODQ2LCAKKyAgICAxNTc1NywgMjY4NjAsIDI2ODY3LCAyNjg3MSwgMjY4NzQsIDI2ODc5LCAyNjg4MywgMjY4OTAsIDI2ODk3LCAyNjkwNywgCisgICAgMjY5MTIsIDI2OTE3LCAyNjkyMiwgMjY5MzAsIDI2OTM4LCAyNjk0NywgMjY5NTIsIDk1NzIsIDI2OTU2LCAyNjk1OSwgCisgICAgMjY5NjIsIDI2OTY3LCAyNjk3NCwgMjY5NzksIDI2OTk1LCAyNzAwMywgMjcwMTEsIDk0MjMsIDI3MDE5LCAyNzAyNCwgCisgICAgMjcwMjgsIDI3MDM0LCAyNzA0MCwgMjcwNDMsIDI3MDQ5LCAyNzA2MSwgMjcwNjksIDI3MDc2LCAyNzA4MiwgMjcwODksIAorICAgIDI3MTAwLCAyNzExNCwgMjcxMjcsIDI3MTM2LCAyNzE0NSwgMjcxNTcsIDI3MTY4LCAyNzE3OCwgMjcxODcsIDI3MTk2LCAKKyAgICAyNzIwNCwgMjcyMTUsIDc5MzgsIDI3MjIyLCAyNzIyOCwgMjcyMzMsIDI3MjM5LCAyNzI0NiwgMjcyNTYsIDI3MjY2LCAKKyAgICAyNzI3NSwgMjcyODEsIDI3Mjg4LCAyNzI5MywgMjczMDAsIDI3MzA4LCAyNzMxNiwgMjczMjgsIDYyNDYsIDI3MzM1LCAKKyAgICAyNzM0NCwgMjczNTIsIDI3MzU4LCAyNzM2NCwgMjczNjksIDI3MzczLCAyNzM3NiwgMjczODIsIDI3Mzg5LCAyNzM5NCwgCisgICAgMjczOTksIDI3NDAzLCAyNzQxNSwgMjc0MjYsIDI3NDM1LCAyNzQ0MywgMTQ5NDEsIDI3NDQ4LCAyNzQ1NCwgMjc0NjAsIAorICAgIDExNTE3LCA4NjM1LCAyNzQ2NSwgMjc0NjksIDI3NDcyLCAyNzQ3NSwgMjc0ODEsIDI3NDg5LCAyNzQ5NywgMjc1MDEsIAorICAgIDI3NTA1LCAyNzUxMCwgMjc1MTMsIDI3NTIyLCAyNzUyNiwgMjc1MzQsIDI3NTQ1LCAyNzU0OSwgMjc1NTUsIDI3NTYxLCAKKyAgICAyNzU2NSwgMjc1NzEsIDI3NTc5LCAyNzYwMSwgMjc2MjUsIDI3NjMyLCAyNzYzOSwgMjc2NDUsIDI3NjUzLCAyNzY1OSwgCisgICAgMjc2NjQsIDI3Njc1LCAyNzY5MywgMjc3MDAsIDI3NzA4LCAyNzcxMiwgMjc3MjEsIDI3NzM0LCAyNzc0MiwgMjc3NTQsIAorICAgIDI3NzY1LCAyNzc3NSwgMjc3ODksIDI3Nzk4LCAyNzgwNiwgMjc4MTgsIDk0OTIsIDI3ODI5LCAyNzg0MCwgMjc4NTIsIAorICAgIDI3ODYyLCAyNzg3MSwgMjc4NzYsIDI3ODgwLCAyNzg4OCwgMjc4OTgsIDI3OTAzLCAyNzkwNywgMjc5MTAsIDI3OTEzLCAKKyAgICAyNzkyMSwgMjc5MjksIDI3OTM4LCAyNzk0OCwgMjc5NTcsIDI3OTYzLCAyNzk3NywgMjY2MywgMjc5OTksIDI4MDEwLCAKKyAgICAyODAxOSwgMjgwMjksIDI4MDQxLCAyODA1MCwgMjgwNTksIDI4MDY5LCAyODA3NywgMjgwODUsIDI4MDk0LCAyODA5OSwgCisgICAgMjgxMTAsIDI4MTE1LCAyODEyNiwgMjgxMzAsIDI4MTQwLCAyODE0OSwgMjgxNTcsIDI4MTY3LCAyODE3NywgMjgxODUsIAorICAgIDI4MTk0LCAyODIwMSwgMjgyMDksIDI4MjE2LCAyODIyNSwgMjgyMjksIDI4MjM3LCAyODI0NCwgMjgyNTIsIDI4MjU5LCAKKyAgICAyODI3MCwgMjgyODUsIDI4MjkyLCAyODI5OCwgMjgzMDgsIDI4MzE3LCAyODMyMywgMjgzMjcsIDI4MzM0LCAyODMzOCwgCisgICAgMTQwMjUsIDI4MzQ0LCAyODM0OCwgMjgzNTMsIDI4MzYwLCAyODM2NCwgMjgzNjgsIDI4Mzc2LCAyODM4NCwgMjgzOTAsIAorICAgIDI4Mzk5LCAyODQwNiwgMjg0MTEsIDI4NDE2LCAyODQyNiwgMjM0OTUsIDI4NDMwLCAyODQzMywgMjg0MzgsIDI4NDQzLCAKKyAgICAyODQ0OCwgMjg0NTMsIDI4NDU4LCAyODQ2MywgMjg0NjgsIDI4NDczLCAyODQ3OSwgMjg0ODQsIDI4NDg5LCAyODQ5NSwgCisgICAgMTIxOCwgNzA0LCAyODUwMCwgMjg1MDksIDIzNjQsIDI4NTE2LCAyODUyMSwgMjg1MjUsIDI4NTMxLCAxMjY3LCA1NDYsIAorICAgIDMxOCwgMjg1MzYsIDI4NTQ1LCAyODU1MywgMjg1NjIsIDI4NTcwLCAyODU4MSwgMjg1OTAsIDI4NTk4LCAyODYwMiwgCisgICAgMjg2MDUsIDI4NjEzLCAyODYyMSwgMjg2MjYsIDE0NzY5LCAyODYzMiwgMjg2MzgsIDI4NjQ0LCA1ODcyLCAyODY0OSwgCisgICAgMjg2NTMsIDI4NjU5LCAyODY2MywgMjg2NzAsIDE0NTUsIDI4Njc2LCAyODY4MywgOTU3OSwgMjg2ODcsIDI4Njk3LCAKKyAgICAyODcwNSwgMjg3MTEsIDI4NzIwLCAyODcyOCwgMjg3MzQsIDI4NzQyLCAyODc0OSwgMTExMTAsIDI4NzU1LCAyODc2MiwgCisgICAgMjg3NjcsIDI4Nzc0LCAxNDk2LCAyMTQ3LCAyODc4MCwgMjg3ODYsIDI4NzkzLCAyODgwNCwgMjg4MTUsIDI4ODIzLCAKKyAgICAyODgzMCwgMjg4NDAsIDI4ODQ5LCAyODg1NywgMjg4NjYsIDI4ODczLCAyODg4MCwgMjg4OTMsIDI4OTA0LCAxMjcyLCAKKyAgICAyODkyMywgMjg5MjgsIDI4OTM2LCAzNTc1LCAyODk0MCwgMjg5NDUsIDI4OTQ5LCAxNDU5LCAyNDY5NiwgMjg5NTksIAorICAgIDI4OTYzLCAyODk2OCwgMjg5NzIsIDM0OTMsIDI4OTc4LCAyODk4NiwgMjg5OTMsIDI5MDA0LCAyOTAxMiwgMjkwMjAsIAorICAgIDM1NzYsIDI3OSwgMjkwMjUsIDI5MDMzLCAyOTA0MSwgMjkwNDgsIDI5MDU0LCAyOTA1OSwgMjIxNiwgMjkwNjYsIDI5MDcyLCAKKyAgICAyNTk4MiwgMjYyMTIsIDI5MDc4LCAxMDYsIDI5MDgyLCAyOTA4NiwgMjkwOTIsIDYxNSwgOTMyOCwgMjkwOTcsIDI5MTA0LCAKKyAgICAyOTExMCwgMjMyNywgMjkxMTQsIDI5MTE4LCAxNTE4MSwgMjkxMjEsIDI5MTI2LCAyOTEzMywgMjkxMzksIDI5MTQ0LCAKKyAgICAyOTE1MiwgMjkxNTksIDI5MTY1LCAyMjM0NSwgMjkxNjksIDI5MTczLCAzNjQ2LCAxNjYxOSwgMjkxNzcsIDI5MTgyLCAKKyAgICAyOTE4NSwgMjkxOTMsIDI5MjAxLCAyOTIwNiwgMjkyMDksIDI5MjE2LCAyOTIyNiwgMjkyMzgsIDI5MjQzLCAyOTI0NywgCisgICAgMjkyNTUsIDI5MjYyLCAyOTI2OCwgMjkyNzUsIDI5MjgyLCAyOTI4NSwgMjkyODksIDI5MjkzLCAxNDYzLCAyOTMwMywgCisgICAgMjkzMDUsIDI5MzEwLCAyOTMxNiwgMjkzMjIsIDI5MzI3LCAyOTMzMiwgMjkzMzcsIDI5MzQyLCAyOTM0NywgMjkzNTIsIAorICAgIDI5MzU3LCAyOTM2MiwgMjkzNjcsIDI5MzcyLCAyOTM3NywgMjkzODIsIDI5Mzg3LCAyOTM5MiwgMjkzOTgsIDI5NDA0LCAKKyAgICAyOTQxMCwgMjk0MTYsIDI5NDIxLCAyOTQyNiwgMjk0MzEsIDI5NDM3LCAyOTQ0MiwgMjk0NDcsIDI5NDUyLCAyOTQ1OCwgCisgICAgMjk0NjMsIDI5NDY5LCAyOTQ3NCwgMjk0NzksIDI5NDg0LCAyOTQ4OSwgMjk0OTUsIDI5NTAwLCAyOTUwNiwgMjk1MTEsIAorICAgIDI5NTE2LCAyOTUyMSwgMjk1MjYsIDI5NTMyLCAyOTUzNywgMjk1NDMsIDI5NTQ4LCAyOTU1MywgMjk1NTgsIDI5NTYzLCAKKyAgICAyOTU2OCwgMjk1NzMsIDI5NTc4LCAyOTU4MywgMjk1ODgsIDI5NTk0LCAyOTYwMCwgMjk2MDYsIDI5NjExLCAyOTYxNiwgCisgICAgMjk2MjEsIDI5NjI2LCAyOTYzMiwgMjk2MzgsIDI5NjQ0LCAyOTY1MCwgMjk2NTYsIDI5NjYyLCAyOTY2NywgMjk2NzMsIAorICAgIDI5Njc4LCAyOTY4MywgMjk2ODgsIDI5NjkzLCAyOTY5OSwgMjQ0MywgMjk3MDQsIDI0NTAsIDI0NTcsIDI3NTQsIDI5NzA5LCAKKyAgICAyNDYzLCAyNDczLCAyOTcxNSwgMjk3MTksIDI5NzI0LCAyOTcyOSwgMjk3MzUsIDI5NzQwLCAyOTc0NSwgMjk3NDksIAorICAgIDI5NzU0LCAyOTc2MCwgMjk3NjUsIDI5NzcwLCAyOTc3NSwgMjk3ODEsIDI5Nzg2LCAyOTc5MCwgMjk3OTQsIDI5Nzk5LCAKKyAgICAyOTgwNCwgMjk4MDksIDI5ODE0LCAyOTgxOSwgMjk4MjUsIDI5ODMxLCAyOTgzNiwgMjk4NDAsIDI5ODQ1LCAyOTg1MSwgCisgICAgMjk4NTUsIDI5ODYwLCAyOTg2NSwgMjk4NzAsIDI5ODc1LCAyOTg3OSwgMjk4ODIsIDI5ODg3LCAyOTg5MiwgMjk4OTcsIAorICAgIDI5OTAyLCAyOTkwNywgMjk5MTMsIDI5OTE5LCAyOTkyNCwgMjk5MjksIDI5OTMzLCAyOTkzOCwgMjk5NDMsIDI5OTQ4LCAKKyAgICAyOTk1MywgMjk5NTgsIDI5OTYyLCAyOTk2NywgMjk5NzIsIDI5OTc3LCAyOTk4MSwgMjk5ODUsIDI5OTg5LCAyOTk5NCwgCisgICAgMzAwMDIsIDMwMDA3LCAzMDAxMywgMzAwMTksIDMwMDI1LCAzMDAzMCwgMzAwMzQsIDMwMDM3LCAzMDA0MiwgMzAwNDcsIAorICAgIDMwMDUxLCAzMDA1NiwgMzAwNjAsIDMwMDY1LCAzMDA2OSwgMzAwNzIsIDMwMDc3LCAxNzI5NiwgMzAwODIsIDMwMDg3LCAKKyAgICAzMDA5MiwgMzAxMDAsIDIxMjc0LCAyODY4MCwgOTAyNiwgMzAxMDUsIDMwMTEwLCAzMDExNCwgMzAxMTksIDMwMTIzLCAKKyAgICAzMDEyNywgMzAxMzIsIDMwMTM2LCAzMDEzOSwgMzAxNDIsIDMwMTQ2LCAzMDE1MSwgMzAxNTUsIDMwMTYzLCAzMDE2NywgCisgICAgMzAxNzAsIDMwMTc1LCAzMDE3OSwgMzAxODMsIDMwMTg4LCAzMDE5MywgMzAxOTcsIDMwMjAzLCAzMDIwOCwgMzAyMTMsIAorICAgIDMwMjIwLCAzMDIyNywgMzAyMzEsIDMwMjM0LCAzMDI0MCwgMzAyNDksIDMwMjU2LCAzMDI2NCwgMzAyNzEsIDMwMjc1LCAKKyAgICAzMDI4MCwgMzAyODQsIDMwMjg4LCAzMDI5NCwgMzAzMDAsIDMwMzA0LCAzMDMxMCwgMzAzMTUsIDMwMzIwLCAzMDMyNywgCisgICAgMzAzMzMsIDMwMzM5LCAzMDM0NSwgMzAzNTEsIDMwMzU4LCAzMDM2NCwgMzAzNzAsIDMwMzc2LCAzMDM4MiwgMzAzODgsIAorICAgIDMwMzk0LCAzMDQwMCwgMzA0MDcsIDMwNDEzLCAzMDQyMCwgMzA0MjYsIDMwNDMyLCAzMDQzOCwgMzA0NDQsIDMwNDUwLCAKKyAgICAzMDQ1NiwgMzA0NjIsIDMwNDY4LCAzMDQ3NCwgMTE0MTgsIDMwNDgwLCAzMDQ4NSwgMzA0OTAsIDMwNDkzLCAzMDUwMSwgCisgICAgMzA1MDYsIDMwNTE1LCAzMDUyMSwgMzA1MjYsIDMwNTMxLCAzMDUzNiwgMzA1NDAsIDMwNTQ1LCAzMDU1MCwgMzA1NTUsIAorICAgIDMwNTYwLCAzMDU2NSwgMzA1NzIsIDMwNTc5LCAzMDU4NSwgMzA1OTEsIDMwNTk2LCAxNjI5NywgMzA2MDMsIDMwNjA5LCAKKyAgICAzMDYxNiwgMzA2MjIsIDMwNjI4LCAzMDYzMywgMzA2NDEsIDMwNjQ2LCAxNjA3NiwgMzA2NTAsIDMwNjU1LCAzMDY2MCwgCisgICAgMzA2NjYsIDMwNjcxLCAzMDY3NiwgMzA2ODAsIDMwNjg1LCAzMDY5MCwgMzA2OTYsIDMwNzAxLCAzMDcwNiwgMzA3MTAsIAorICAgIDMwNzE1LCAzMDcyMCwgMzA3MjQsIDMwNzI5LCAzMDczNCwgMzA3MzksIDMwNzQzLCAzMDc0OCwgMzA3NTMsIDMwNzU4LCAKKyAgICAzMDc2MiwgMzA3NjYsIDE1Mjg3LCAzMDc3MCwgMzA3NzksIDMwNzg1LCAzMDc5MSwgMzA4MDAsIDMwODA4LCAzMDgxNywgCisgICAgMzA4MjUsIDMwODMwLCAzMDgzNCwgMzA4NDEsIDMwODQ3LCAzMDg1MSwgMzA4NTQsIDMwODU5LCAzMDg2OCwgMzA4NzYsIAorICAgIDMwODgxLCAxNDk1LCAzMDg4NywgMzA4OTAsIDMwODk0LCAyMjQxOCwgMjI0MjQsIDMwOTAwLCAzMDkwNCwgMzA5MTUsIAorICAgIDMwOTI2LCAzMDkzNywgMzA5NDksIDMwOTU2LCAzMDk2MywgMzA5NjgsIDMwOTcyLCA1OTA5LCA3NTUsIDIxMjczLCAzMDk4MCwgCisgICAgMzA5ODUsIDMwOTg5LCAzMDk5NCwgMzA5OTgsIDMxMDA0LCAzMTAwOSwgMzEwMTUsIDMxMDIwLCAzMTAyNiwgMzEwMzEsIAorICAgIDMxMDM3LCAzMTA0MiwgMzEwNDgsIDMxMDU0LCAzMTA2MCwgMzEwNjUsIDMxMDIxLCAzMTAyNywgMzEwNjksIDMxMDc0LCAKKyAgICAzMTA4MCwgMzEwODUsIDMxMDkxLCAzMTA5NiwgMzExMDIsIDMxMTA3LCAzMTAzMiwgMTA0MjEsIDMxMTExLCAzMTA0MywgCisgICAgMzEwNDksIDMxMDU1LCAyODMxLCAzNDIzLCAzMTExNywgMzExMjAsIDMxMTI2LCAzMTEzMiwgMzExMzgsIDMxMTQ1LCAKKyAgICAzMTE1MSwgMzExNTcsIDMxMTYzLCAzMTE2OSwgMzExNzUsIDMxMTgxLCAzMTE4NywgMzExOTMsIDMxMTk5LCAzMTIwNSwgCisgICAgMzEyMTEsIDMxMjE3LCAzMTIyNCwgMzEyMzAsIDMxMjM2LCAzMTI0MiwgMzEyNDgsIDMxMjU0LCAzMTI1NywgMzEyNjIsIAorICAgIDMxMjY1LCAzMTI3MiwgMzEyODAsIDMxMjg1LCAzMTI5MCwgMzEyOTYsIDMxMzAxLCAzMTMwNiwgMzEzMTAsIDMxMzE1LCAKKyAgICAzMTMyMSwgMzEzMjYsIDMxMzMyLCAzMTMzNywgMzEzNDMsIDMxMzQ4LCAzMTM1NCwgMzEzNjAsIDMxMzY0LCAzMTM2OSwgCisgICAgMzEzNzQsIDMxMzc5LCAzMTM4NCwgMzEzODgsIDMxMzkzLCAzMTM5OCwgMzE0MDMsIDMxNDA5LCAzMTQxNSwgMzE0MjEsIAorICAgIDMxNDI3LCAzMTQzMiwgMzE0MzYsIDMxNDM5LCAzMTQ0NSwgMzE0NTEsIDMxNDYwLCAzMTQ2OCwgMzE0NzUsIDMxNDgwLCAKKyAgICAzMTQ4NCwgMzE0ODgsIDMxNDkzLCAxNTE0MCwgMzE0OTgsIDMxNTA2LCAzMTUxMiwgMzY4MywgMTM3NywgMzE1MTcsIAorICAgIDMxNTIxLCA4MDA1LCAzMTUyNywgMzE1MzMsIDMxNTQwLCA4MDE0LCAzMTU0NCwgMzE1NTAsIDMxNTU3LCAzMTU2MywgCisgICAgMzE1NzIsIDMxNTgwLCAzMTU5MiwgMzE1OTYsIDMxNjAzLCAzMTYwOSwgMzE2MTMsIDMxNjE2LCAzMTYyNSwgMzE2MzMsIAorICAgIDMxMDIyLCAzMTYzOCwgMzE2NDgsIDMxNjU4LCAzMTY2OCwgMzE2NzQsIDMxNjc5LCAzMTY4OSwgMzE2OTQsIDMxNzA3LCAKKyAgICAzMTcyMSwgMzE3MzIsIDMxNzQ0LCAzMTc1NiwgMzE3NzAsIDMxNzgzLCAzMTc5NSwgMzE4MDcsIDE0NTk0LCAzMTgyMSwgCisgICAgMzE4MjYsIDMxODMxLCAzMTgzNSwgMzE4MzksIDMxODQzLCAxNzgwLCAyNzE2NiwgMzE4NDcsIDMxODUyLCAzMTA3MCwgCisgICAgMzE4NTcsIDMxODYwLCAzMTg2NSwgMzE4NzAsIDMxODc1LCAzMTg4MSwgMzE4ODcsIDEwMDk4LCAzMTg5MiwgMzE4OTksIAorICAgIDE1NjkxLCAzMTkwNSwgMzE5MTAsIDMxOTE1LCAzMTkxOSwgMzE5MjQsIDMxOTI5LCAzMTA3NSwgMzE5MzQsIDMxOTM5LCAKKyAgICAzMTk0NCwgMzE5NTAsIDMxMDgxLCAzMTk1NSwgMzE5NTgsIDMxOTY1LCAzMTk3MywgMzE5NzksIDMxOTg1LCAzMTk5MSwgCisgICAgMzIwMDIsIDMyMDA3LCAzMjAxNCwgMzIwMjEsIDMyMDI4LCAzMjAzNiwgMzIwNDUsIDMyMDU0LCAzMjA2MCwgMzIwNjYsIAorICAgIDMyMDc0LCAzMTA4NiwgMzIwNzksIDMyMDg1LCAzMjA5MSwgMzEwOTIsIDMyMDk2LCAzMjEwMSwgMzIxMDksIDMyMTE3LCAKKyAgICAzMjEyMywgMzIxMzAsIDMyMTM2LCAzMjE0MywgMzIxNTAsIDMyMTU2LCAzMjE2NCwgMzIxNzQsIDMyMTgxLCAzMjE4NiwgCisgICAgMzIxOTIsIDMyMTk3LCAzMjIwMiwgMzIyMDksIDMyMjE4LCAzMjIyNiwgMzIyMzEsIDMyMjM3LCAzMjI0NCwgMzIyNTIsIAorICAgIDMyMjU4LCAzMjI2MywgMzIyNjksIDMyMjc4LCAyNzk0MywgMzIyODUsIDMyMjg5LCAzMjI5NCwgMzIzMDMsIDMyMzA4LCAKKyAgICAzMjMxMywgMzIzMTgsIDEyNDA1LCAzMjMyNiwgMzIzMzEsIDMyMzM2LCAzMjM0MSwgMzIzNDUsIDMyMzUwLCAzMjM1NSwgCisgICAgMzIzNjIsIDMyMzY3LCAzMjM3MiwgMzIzNzcsIDMxMDk3LCAyMTIxMCwgMzIzODMsIDI1MTksIDI0NCwgMzIzODYsIDMyMzg5LCAKKyAgICAzMjM5MywgMzIzOTcsIDMyNDA3LCAzMjQxNSwgMzI0MTksIDMyNDI2LCAzMjQzMywgMzI0MzcsIDMyNDQwLCAzMjQ0NiwgCisgICAgMzI0NTQsIDMyNDYyLCAzMjQ2NiwgMzI0NzAsIDMyNDczLCAzMjQ4MCwgMzI0ODQsIDMyNDg4LCAzMjQ5NSwgMzI1MDMsIAorICAgIDMxMDMzLCAzMjUxMCwgMzI1MTgsIDEwMTU4LCA2NjAsIDMwOCwgMzI1MzAsIDMyNTM1LCAzMjU0MCwgMzI1NDYsIDMyNTUxLCAKKyAgICAzMjU1NiwgMzcwNCwgMzI1NjEsIDMyNTY0LCAzMjU2OSwgMzI1NzQsIDMyNTc5LCAzMjU4NCwgMzI1ODksIDMyNTk2LCAKKyAgICAyMjUxOSwgMzI2MDEsIDMyNjA2LCAzMjYxMSwgMzI2MTYsIDMyNjIxLCAzMjYyNywgMzI2MzIsIDMyNjM4LCAzMTI2OCwgCisgICAgMzI2NDQsIDMyNjQ5LCAzMjY1NSwgMzI2NjEsIDMyNjcxLCAzMjY3NiwgMzI2ODEsIDMyNjg1LCAzMjY5MCwgMzI2OTUsIAorICAgIDMyNzAwLCAzMjcwNSwgMzI3MTgsIDMyNzIzLCAyMjI5NiwgMTY2OTksIDM3MTAsIDMyNzI3LCAzMjczMiwgMzI3MzcsIAorICAgIDMyNzQzLCAzMjc0OCwgMzI3NTMsIDMyNzU3LCAzMjc2MiwgMzI3NjcsIDMyNzczLCAzMjc3OCwgMzI3ODMsIDEzODIsIAorICAgIDMyNzg3LCAzMjc5MiwgMzI3OTcsIDMyODAyLCAzMjgwNiwgMzI4MTEsIDMyODE2LCAzMjgyMSwgMzI4MjcsIDMyODMzLCAKKyAgICAzMjgzOCwgMzI4NDIsIDMyODQ2LCAzMjg1MSwgMzI4NTYsIDMyODYxLCAzMjg2NSwgMzI4NzMsIDMyODc3LCAzMjg4MywgCisgICAgMzI4ODcsIDMyODk0LCAxNjQ5MiwgMzEwNDQsIDMyOTAwLCAzMjkwNywgMzI5MTUsIDMyOTIyLCAzMjkyOCwgMzI5NDEsIAorICAgIDMyOTUzLCAzMjk1OSwgMzI5NjMsIDI3NzMsIDMyOTY3LCAzMjk3MSwgMzI0NzUsIDMyOTgwLCAzMjk5MSwgMzI5OTYsIAorICAgIDMzMDAxLCAzMzAwNiwgMzMwMTAsIDMzMDE1LCAyMjQyOSwgMzMwMTksIDMzMDIzLCAzMzAyOCwgMzEwNTAsIDIxMjk0LCAKKyAgICAzMzAzMiwgMzMwMzcsIDMzMDQzLCAzMzA0OCwgMzMwNTIsIDMzMDU2LCAzMzA1OSwgMzMwNjMsIDMzMDY5LCAzMzA4MCwgCisgICAgMzMwOTIsIDMxMDU2LCAzMzA5NywgMzMxMDAsIDMzMTA0LCAzNDcsIDMzMTA5LCAzMzExNCwgMzMxMTksIDMzMTI0LCAKKyAgICAzMzEyOSwgMzMxMzQsIDMzMTQwLCAzMzE0NSwgMzMxNTAsIDMzMTU2LCAzMzE2MSwgMzMxNjcsIDMzMTcyLCAzMzE3OCwgCisgICAgMzMxODMsIDMzMTg4LCAzMzE5MywgMzMxOTgsIDMzMjAzLCAzMzIwOCwgMzMyMTMsIDMzMjE4LCAzMzIyNCwgMzMyMjksIAorICAgIDMzMjM0LCAzMzIzOSwgMzMyNDQsIDMzMjQ5LCAzMzI1NCwgMzMyNTksIDMzMjY1LCAzMzI3MSwgMzMyNzYsIDMzMjgxLCAKKyAgICAzMzI4NiwgMzMyOTEsIDMzMjk2LCAzMzMwMSwgMzMzMDYsIDMzMzExLCAzMzMxNiwgMzMzMjEsIDMzMzI2LCAzMzMzMSwgCisgICAgMzMzMzYsIDMzMzQxLCAzMzM0NiwgMzMzNTEsIDMzMzU2LCAzMzM2MSwgMzMzNjcsIDMxMywgMjYsIDMzMzcyLCAzMzM3NiwgCisgICAgMzMzODAsIDMzMzg4LCAzMzM5MiwgMzMzOTYsIDMzMzk5LCAzMzQwMiwgMzM0MDQsIDMzNDA5LCAzMzQxMywgMzM0MTgsIAorICAgIDMzNDIyLCAzMzQyNywgMzM0MzEsIDMzNDM2LCAzMzQ0MCwgMzM0NDMsIDMzNDQ1LCAzMzQ0OSwgMzM0NTQsIDMzNDU4LCAKKyAgICAzMzQ2OSwgMzM0NzIsIDMzNDc0LCAzMzQ3OCwgMzM0OTAsIDMzNDk5LCAzMzUwMywgMzM1MDcsIDMzNTEzLCAzMzUxOCwgCisgICAgMzM1MjcsIDMzNTMzLCAzMzUzOCwgMzM1NDMsIDMzNTQ3LCAzMzU1MiwgMzM1NTksIDMzNTY0LCAzMzU3MCwgMzM1NzUsIAorICAgIDMzNTc5LCAzMzU4NiwgMjU3MDgsIDI1NzE4LCAzMzU5MCwgMzM1OTUsIDMzNjAwLCAzMzYwNSwgMzM2MTIsIDMzNjE2LCAKKyAgICAzMzYyMywgODExMywgMzM2MjksIDMzNjM4LCAzMzY0NiwgMzM2NjEsIDMzNjc1LCAzMzY4MywgMzM2OTQsIDMzNzAzLCAKKyAgICAzMzcwOCwgNzIyNywgMzM3MTgsIDMzNzIzLCAzMzcyOCwgMzM3MzIsIDMzNzM1LCAzMzczOSwgMzM3NDQsIDMzNzQ4LCAKKyAgICAzMzc1NSwgMzM3NjAsIDMzNzY1LCA4OTEyLCAzMzc3NSwgMzM3NzcsIDMzNzgwLCAzMzc4NCwgMzM3OTAsIDMzNzk0LCAKKyAgICAzMzc5OSwgMzM4MDQsIDMzODEwLCAzMzgxNSwgMzM4MjEsIDMzODI2LCAzMzgzNiwgMzM4NDUsIDMzODUzLCAzMzg1OCwgCisgICAgMzM4NjQsIDMzODY5LCAzMzg3NiwgMzM4ODAsIDMzODg4LCAzMzg5NSwgMzM5MDgsIDMzOTE2LCAzMzkyMCwgMzM5MzAsIAorICAgIDMzOTM1LCAzMzkzOSwgMzM5NDcsIDMzOTU1LCAzMzk1OSwgMzM5NjgsIDMzOTc0LCAzMzk3OSwgMzM5ODcsIDMzOTk3LCAKKyAgICAzNDAwNiwgMzQwMTUsIDM0MDI0LCAzNDAzNSwgMzQwNDMsIDM0MDU0LCAzNDA2MywgMzQwNzAsIDM0MDc2LCAzNDA4MSwgCisgICAgMzQwOTIsIDM0MDk3LCAzNDEwMSwgMzQxMDQsIDM0MTA4LCAzNDExNiwgMzQxMjIsIDM0MTMwLCAzNDEzNywgMzQxNDMsIAorICAgIDM0MTQ4LCAzNDE1NCwgMjQxOCwgMzQxNTgsIDM0MTYwLCAzNDE2NSwgMzQxNzAsIDM0MTc1LCAzNDE3OCwgMzQxODAsIAorICAgIDM0MTg0LCAzNDE4NywgMzQxOTQsIDM0MTk4LCA5ODkxLCAzNDIwMiwgMzQyMDgsIDM0MjE4LCAzNDIyMywgMzQyMjksIAorICAgIDM0MjMzLCAzNDIzOCwgMzQyNTEsIDI2MDk0LCAzNDI1NywgMzQyNjYsIDE3NDY5LCAzNDI3MywgMzQyODIsIDMxNjU0LCAKKyAgICAzNDI5MCwgMzQyOTUsIDM0Mjk5LCAzNDMwNywgMzQzMTQsIDM0MzE5LCAzNDMyMywgMzQzMjgsIDM0MzMyLCAzNDM0MCwgCisgICAgMzQzNDYsIDM0MzUyLCAzNDM1NywgMzQzNjEsIDM0MzY0LCAzNDM2OSwgMzQzODIsIDM0Mzk4LCAyMjk4NiwgMzQ0MTUsIAorICAgIDM0NDI3LCAzNDQ0NCwgMzQ0NTYsIDM0NDcwLCAyMzAwMywgMjMwMjIsIDM0NDgyLCAzNDQ5NCwgMjY4MCwgMzQ1MDgsIAorICAgIDM0NTEzLCAzNDUxOCwgMzQ1MjMsIDM0NTI3LCAzNDUzNCwgMzQ1NDYsIDM0NTUyLCAzNDU1NSwgMzQ1NjYsIDM0NTc3LCAKKyAgICAzNDU4MiwgMzIwNzEsIDY5NSwgMzQ1ODYsIDM0NTkwLCAzNDU5NCwgMzQ1OTcsIDM0NjAyLCAzNDYwNywgMzQ2MTMsIAorICAgIDM0NjE4LCAzNDYyMywgMzQ2MjksIDM0NjM1LCAzNDY0MCwgMzQ2NDQsIDM0NjQ5LCAzNDY1NCwgMzQ2NTksIDM0NjYzLCAKKyAgICAzNDY2NiwgMzQ2NzIsIDM0Njc3LCAzNDY4MiwgMzQ2ODcsIDM0NjkxLCAzNDY5NiwgMzQ3MDIsIDM0NzEwLCAyNjMyNywgCisgICAgMzQ3MTUsIDM0NzIwLCAzNDcyNywgMzQ3MzMsIDM0NzM5LCAzNDc0NCwgMzQ3NTIsIDIyNTI4LCAzNDc1OSwgMzQ3NjQsIAorICAgIDM0NzY5LCAzNDc3NCwgMzQ3NzgsIDM0NzgxLCAzNDc4NiwgMzQ3OTAsIDM0Nzk0LCAzNDgwMSwgMzQ4MDcsIDM0ODEzLCAKKyAgICAzNDgxOSwgMzQ4MjYsIDM0ODMxLCAzNDgzNywgMzM5NTAsIDM0ODQxLCAzNDg0NSwgMzQ4NTAsIDM0ODYzLCAzNDg2OCwgCisgICAgMzQ4NzQsIDM0ODgyLCAzNDg4OSwgMzQ4OTcsIDM0OTA3LCAzNDkxMywgMzQ5MTksIDM0OTI1LCAzNDkyOSwgMzQ5MzgsIAorICAgIDM0OTQ2LCAzNDk1MywgMzQ5NTgsIDM0OTYzLCAxMDQ0NCwgMzQ5NjgsIDM0OTc2LCAzNDk4MywgMzQ5ODksIDM0OTk5LCAKKyAgICAzNTAwNCwgMzUwMTAsIDM1MDE4LCAzNjA4LCAzNTAyNSwgMzUwMzIsIDM2MTQsIDM1MDM2LCAzNTA0MSwgMzUwNTIsIAorICAgIDM1MDU5LCAzNTA2NSwgMzUwNzQsIDM1MDc4LCA0MDE1LCAzNTA4MSwgMzUwODgsIDM1MDk0LCAzNTEwMCwgMzUxMDgsIAorICAgIDM1MTE4LCAyOTA0OSwgMzUxMjUsIDM1MTMzLCAzNTEzOCwgMzUxNDQsIDM1MTQ5LCAyNTk1NCwgMzUxNTUsIDM1MTYyLCAKKyAgICAzNTE2OCwgMzUxNzcsIDIzNjY3LCAzNTE4NCwgMzUxODksIDM1MTkzLCAzNTIwMSwgMzUyMDksIDk2MDcsIDU4OTUsIAorICAgIDM1MjE2LCAzNTIyMCwgMzUyMjIsIDM1MjI2LCAzNTIzMSwgMzUyMzMsIDM1MjM5LCAzNTI0NCwgMzUyNDksIDM1MjU2LCAKKyAgICAzMjU5MiwgMzUyNjIsIDM1MjY3LCAzNTI3MSwgMzUyNzYsIDM1MjgwLCAzNTI4OSwgMzUyOTMsIDM1Mjk5LCAzNTMwNiwgCisgICAgMzUzMTIsIDM1MzE5LCAzNTMyNCwgMzUzMzMsIDM1MzM4LCAzNTM0MiwgMzUzNDcsIDM1MzU0LCAzNTM2MiwgMzUzNzAsIAorICAgIDM1Mzc1LCAyMTM1MCwgMzUzNzksIDM1MzgyLCAzNTM4NiwgMzUzOTAsIDM1Mzk0LCAzNTM5NywgMzUzOTksIDM1NDA3LCAKKyAgICAzNTQxMSwgMzU0MTgsIDM1NDIyLCAzNTQyNiwgMzU0MzQsIDM1NDQxLCAzNTQ1MSwgMzU0NTUsIDM1NDU5LCAzNTQ2NywgCisgICAgMzU0NzUsIDM1NDgxLCAzNTQ4NiwgMzU0OTUsIDEzMzU3LCAzNTUwMSwgMzU1MTAsIDM1NTE1LCAzNTUyMiwgMzU1MzAsIAorICAgIDM1NTM4LCAzNTU0NiwgMzU1NTMsIDM1NTYwLCAzNTU2NywgMzU1NzQsIDM1NTgxLCAzNTU4NiwgMzU1OTIsIDM1NjA5LCAKKyAgICAzNTYxNywgMzU2MjcsIDM1NjM1LCAzNTY0MiwgNDA3LCAzNTY0NiwgMzU2NTIsIDM1NjU2LCAzNTY2MSwgMzM2OTksIAorICAgIDM1NjY3LCAzNTY3MCwgMzU2NzQsIDM1NjgyLCAzNjE5LCAzNTY5MCwgMzU2OTYsIDM1NzAyLCAzNTcxMSwgMzU3MjEsIAorICAgIDM1NzI4LCAzNTczNCwgMzYyNSwgMzYzMSwgMzU3NDMsIDM1NzUwLCAzNTc1OCwgMzU3NjMsIDM1NzY3LCAzNTc3NCwgCisgICAgMzU3ODIsIDM1Nzg5LCAzNTc5NSwgMzU4MDQsIDM1ODE0LCAzNTgyMCwgMzU4MjgsIDM1ODM3LCAzNTg0NCwgMzU4NTIsIAorICAgIDM1ODU5LCAyMjAyNiwgMzU4NjMsIDM1ODcwLCAzNTg3NiwgMzU4ODYsIDM1ODk1LCAzNTkwNiwgMzU5MTAsIDM1OTIwLCAKKyAgICAzNTkyNiwgMzU5MzMsIDM1OTQxLCAzNTk1MCwgMzU5NTksIDM1OTY5LCAzNTk4MCwgMzU5ODcsIDM1OTkyLCAzNTk5OSwgCisgICAgMzAyOSwgMzYwMDcsIDM2MDEzLCAzNjAxOCwgMzYwMjQsIDM2MDMwLCAzNjAzNSwgMzYwNDgsIDM2MDYxLCAzNjA3NCwgCisgICAgMzYwODEsIDM2MDg3LCAzNjA5NSwgMzYxMDMsIDM2MTA4LCAzNjExMiwgMTQ2OSwgMzYxMTYsIDM2MTIxLCAzNjEyNiwgCisgICAgMzYxMzEsIDM2MTM2LCAzNjE0MiwgMzYxNDcsIDM2MTUyLCAzNjE1NywgMzYxNjIsIDM2MTY3LCAzNjE3MiwgMzYxNzcsIAorICAgIDM2MTgzLCAzNjE4OSwgMzYxOTQsIDM2MTk5LCAzNjIwNSwgMzYyMTAsIDM2MjE1LCAzNjIyMCwgMzYyMjYsIDM2MjMxLCAKKyAgICAzNjIzNiwgMzYyNDEsIDM2MjQ2LCAzNjI1MiwgMzYyNTcsIDM2MjYyLCAzNjI2OCwgMzYyNzMsIDM2Mjc4LCAzNjI4MywgCisgICAgMzYyODgsIDM2MjkzLCAzNjI5OSwgMzYzMDQsIDM2MzEwLCAzNjMxNSwgMzYzMjEsIDM2MzI2LCAzNjMzMSwgMzYzMzYsIAorICAgIDM2MzQyLCAzNjM0OCwgMzYzNTQsIDM2MzYwLCAzNjM2NiwgMzYzNzIsIDM2Mzc4LCAzNjM4NCwgMzYzODksIDM2Mzk0LCAKKyAgICAzNjQwMCwgMzY0MDUsIDM2NDEwLCAzNjQxNSwgMzY0MjAsIDM2NDI1LCAzNjQzMCwgMzY0MzUsIDM2NDQxLCAzNjQ0NiwgCisgICAgMzY0NTEsIDM2NDU3LCAzNjQ2MywgMTAxLCAzNjQ2OCwgMzY0NzAsIDM2NDc0LCAzNjQ3OCwgMzY0ODIsIDM2NDg3LCAKKyAgICAzNjQ5MSwgOTUyOCwgMzY0OTUsIDM2NTAxLCAxNzQxLCA2MjgwLCAzNjUwNywgMzY1MTAsIDM2NTE1LCAzNjUxOSwgMzY1MjQsIAorICAgIDM2NTI4LCAzNjUzMiwgMzY1MzcsIDEwMjQ1LCAzNjU0MSwgMzY1NDUsIDM2NTQ5LCAzNjU1MywgMTUzNzksIDM2NTU4LCAKKyAgICAzNjU2MiwgMzY1NjcsIDM2NTcyLCAzNjU3NywgMzY1ODEsIDM2NTg4LCAyNjExOCwgMzY1OTQsIDM2NTk3LCAzNjYwMSwgCisgICAgMzY2MDYsIDM2NjEyLCAzNjYxNiwgMzY2MjQsIDM2NjMwLCAzNjYzNSwgMzY2MzksIDM2NjQ1LCAzNjY0OSwgMzY2NTMsIAorICAgIDM0NjIsIDM0NjcsIDI5MjQxLCAzNjY1NiwgMzY2NjAsIDM2NjY0LCAzNjY2OCwgMzY2NzYsIDM2NjgzLCAzNjY4NywgCisgICAgMzY2OTQsIDM2Njk5LCAzMTcsIDM2NzA0LCAzNjcwOCwgMzY3MTQsIDM2NzI2LCAzNjczMiwgMzY3MzgsIDM2NzQyLCAKKyAgICAzNjc0OCwgMzY3NTcsIDM2NzYxLCAzNjc2NSwgMzY3NzAsIDM2Nzc2LCAzNjc4MSwgMzY3ODUsIDM2NzkwLCAzNjc5NCwgCisgICAgMzY3OTgsIDM2ODA1LCAzNjgxMSwgMzY4MTYsIDM2ODMxLCAzNjg0NiwgMzY4NjEsIDM2ODc3LCAzNjg5NSwgMTAxOTUsIAorICAgIDM2OTA5LCAzNjkxNiwgMzY5MjAsIDM2OTIzLCAzNjkzMiwgMzY5MzcsIDM2OTQxLCAzNjk0OSwgMzM5MDEsIDM2OTU3LCAKKyAgICAzNjk2MSwgMzY5NzEsIDM2OTgyLCAyOTIxMSwgMzY5OTUsIDM2OTk5LCAzNzAwOCwgMzcwMTYsIDk3ODUsIDE0OTA3LCAKKyAgICAzNzAyMCwgMjI0NDEsIDM3MDIzLCAzMDE1OSwgMzcwMjgsIDk3ODQsIDM3MDMzLCAzNzAzOSwgMzcwNDQsIDM3MDUwLCAKKyAgICAzNzA1NSwgMzcwNjEsIDM3MDY2LCAzNzA3MiwgMzcwNzcsIDM3MDgzLCAzNzA4OSwgMzcwOTUsIDM3MTAwLCAzNzA1NiwgCisgICAgMzcwNjIsIDM3MDY3LCAzNzA3MywgMzcwNzgsIDM3MDg0LCAzNzA5MCwgODEyNiwgMzg3NCwgMzcxMDQsIDM3MTEyLCAKKyAgICAzNzExNiwgMzcxMTksIDM3MTIzLCAzNzEyOCwgMzcxMzMsIDM3MTM5LCAzNzE0NSwgMzcxNTAsIDM3MTU0LCAyNTk2NiwgCisgICAgMzcxNTgsIDM3MTYyLCAzNzE2OCwgMzcxNzIsIDkwNDksIDM3MTgxLCAzNzE4OCwgMzcxOTIsIDExODc1LCAzNzE5OSwgCisgICAgMzcyMDUsIDM3MjEwLCAzNzIxNywgMzcyMjQsIDM3MjMxLCAyODU1NywgODA0OSwgMzcyMzgsIDM3MjQ1LCAzNzI1MiwgCisgICAgMzcyNTgsIDM3MjYzLCAzNzI3MCwgMzcyODEsIDM3Mjg3LCAzNzI5MiwgMzcyOTcsIDM3MzAyLCAzNzMwOSwgMzcwNTcsIAorICAgIDM3MzEzLCAzNzMyMywgMzczMzQsIDM3MzQwLCAzNzM0NSwgMzczNTAsIDM3MzU1LCAzNzM2MCwgMzczNjUsIDM3MzY5LCAKKyAgICAzNzM3MywgMzczNzksIDM3Mzg3LCAyMzE5LCA4NjUsIDEwMjYxLCAxMDI3MywgMTAyNzgsIDEwMjg0LCAzNzM5NiwgMTAyODksIAorICAgIDEwMjk0LCAxMDMwMCwgMzc0MDEsIDM3NDExLCAzNzQxNSwgMTAzMDUsIDM3NDIwLCAxNjg5NywgMzc0MjMsIDM3NDI4LCAKKyAgICAzNzQzMiwgMzc0MzcsIDM3NDQyLCAzNzQ0OSwgMzc0NTYsIDM3NDYwLCAzNzQ2MywgMzc0NzEsIDEwMjA4LCAzNzQ3OCwgCisgICAgMzc0ODEsIDM3NDg3LCAzNzQ5NywgNTkyOSwgMzc1MDYsIDM3NTEwLCAzNzUxOCwgMzc1MjIsIDM3NTMyLCAzNzUzOCwgCisgICAgMzc1NDksIDM3NTU1LCAzNzU2MSwgMzc1NjYsIDM3NTcyLCAzNzU3OCwgMzc1ODQsIDM3NTg5LCAzNzU5MiwgMzc1OTksIAorICAgIDM3NjA1LCAzNzYxMCwgMzc2MTcsIDM3NjI0LCAzNzYyOCwgMzc2MzgsIDM3NjUxLCAzNzY2MCwgMzc2NjksIDM3NjgwLCAKKyAgICAzNzY5MywgMzc3MDQsIDM3NzEzLCAzNzcyNCwgMzc3MjksIDM3NzM4LCAzNzc0MywgMTAzMTAsIDM3NzQ5LCAzNzc1NiwgCisgICAgMzc3NjQsIDM3NzY5LCAzNzc3MywgMzc3ODAsIDM3Nzg3LCAzODI5LCAxNiwgMzc3OTEsIDM3Nzk2LCAxNjc1MSwgMzc4MDAsIAorICAgIDM3ODAzLCAzNzgwNiwgMjgwNjMsIDM3ODEwLCAyODU2NiwgMzc4MTgsIDM3ODIyLCAzNzgyNiwgMzc4MjksIDM3ODM1LCAKKyAgICAzNzA3OSwgMzc4NDEsIDM3ODQ5LCAzNzg1NSwgMzc4NjIsIDI4MDQ2LCAzNzg2NiwgMjgyNDAsIDM3ODcwLCAzNzg3OSwgCisgICAgMzc4ODUsIDM3ODkxLCAzNzg5NiwgMzc5MDAsIDM3OTA2LCAzNzkxMCwgMzc5MTgsIDM3OTI2LCAyNjE4NCwgMzc5MzIsIAorICAgIDM3OTM5LCAzNzk0NSwgMzc5NTAsIDM3OTU1LCAzNzk1OSwgMzc5NjUsIDM3OTcwLCAzNzk3NiwgNDA1NiwgNzkxLCAzNzk4MywgCisgICAgMzc5ODcsIDM3OTkwLCAxNTI2OSwgMzgwMDIsIDM1ODMzLCAzODAxMywgMzgwMTYsIDM4MDIzLCAzODAyNywgMzgwMzMsIAorICAgIDM4MDM3LCAzODA0MywgMzgwNDgsIDM4MDU0LCAzODA1OSwgMzgwNjQsIDM4MDY4LCAzODA3MiwgMzgwNzcsIDM4MDgyLCAKKyAgICAzODA5MiwgMzgwOTgsIDM4MTExLCAzODExNywgMzgxMjMsIDM4MTMwLCAzODEzNSwgMzgxNDEsIDM4MTQ2LCAxNjYzNywgCisgICAgMTQ3MiwgMTAxOSwgMzEyMDAsIDMxMjA2LCAzODE1MSwgMzEyMTIsIDMxMjI1LCAzMTIzMSwgMzEyMzcsIDM4MTU3LCAKKyAgICAzMTI0MywgMzEyNDksIDM4MTYzLCAzODE2OSwgMjIsIDM4MTc3LCAzODE4NCwgMzgxODgsIDM4MTkyLCAzODIwMCwgMzE5NjAsIAorICAgIDM4MjA0LCAzODIwOCwgMzgyMTUsIDM4MjIwLCAzODIyNCwgMzgyMjksIDM4MjM1LCAzODI0MCwgMzgyNDYsIDM4MjUxLCAKKyAgICAzODI1NSwgMzgyNTksIDM4MjYzLCAzODI2OCwgMzgyNzIsIDM4Mjc3LCAzODI4MSwgMzgyODgsIDM4MjkzLCAzODI5NywgCisgICAgMzgzMDIsIDM4MzA2LCAzODMxMSwgMzgzMTUsIDM4MzIwLCAzODMyNiwgMTU0ODksIDE1NDk0LCAzODMzMSwgMzgzMzUsIAorICAgIDM4MzM4LCAzODM0MiwgMjExNzcsIDM4MzQ3LCAzODM1MSwgMzgzNTcsIDM4MzY0LCAzODM2OSwgMzgzNzksIDM4Mzg0LCAKKyAgICAzODM5MiwgMzgzOTYsIDM4Mzk5LCAzMTk3NSwgMzg0MDMsIDQxMDksIDM4NDA4LCAzODQxMywgMzg0MTcsIDM4NDIyLCAKKyAgICAzODQyNiwgMzg0MzEsIDEzMzc1LCAzODQ0MiwgMzg0NDYsIDM4NDQ5LCAzODQ1NCwgMzg0NTgsIDM4NDYyLCAzODQ2NSwgCisgICAgMzg0NjksIDgxNDUsIDEzMzkxLCAzODQ3MiwgMzg0NzUsIDM4NDgxLCAzODQ4NiwgMzg0OTIsIDM4NDk3LCAzODUwMywgCisgICAgMzg1MDgsIDM4NTE0LCAzODUxOSwgMzg1MjUsIDM4NTMxLCAzODUzNywgMzg1NDIsIDM4NTQ2LCAzODU1MCwgMzg1NTksIAorICAgIDM4NTc1LCAzODU5MSwgMzg2MDEsIDI3OTUzLCAzODYwOCwgMzg2MTIsIDM4NjE3LCAzODYyMiwgMzg2MjYsIDM4NjMwLCAKKyAgICAzNTk1NCwgMzg2MzYsIDM4NjQxLCAzODY0NSwgMzg2NTIsIDM4NjU3LCAzODY2MSwgMzg2NjUsIDI2OTg2LCAzODY3MSwgCisgICAgMjE0NDUsIDM4Njc2LCAzODY4MywgMzg2OTEsIDM4Njk3LCAzODcwNCwgMzg3MTIsIDM4NzE4LCAzODcyMiwgMzg3MjgsIAorICAgIDM4NzM2LCAzODc0MCwgMzg3NDksIDk1MDksIDM4NzU3LCAzODc2MSwgMzg3NjksIDM4Nzc2LCAzODc4MSwgMzg3ODYsIAorICAgIDM4NzkwLCAzODc5MywgMzg3OTcsIDM4ODAwLCAzODgwNCwgMzg4MTEsIDM4ODE2LCAzODgyMiwgMjY0MDUsIDMxMjYzLCAKKyAgICAzODgyNiwgMzg4MzMsIDM4ODM5LCAzODg0NSwgMzg4NTAsIDM4ODUzLCAzODg1NSwgMzg4NjIsIDM4ODY5LCAzODg3NSwgCisgICAgMzg4NzksIDM4ODgyLCAzODg4NiwgMzg4OTAsIDM4ODk0LCAzODg5OSwgMzg5MDMsIDM4OTA3LCAzODkxMCwgMzg5MTQsIAorICAgIDM4OTI4LCAyMzA1MiwgMzg5NDcsIDM4OTYwLCAzODk3MywgMzg5ODYsIDIzMDcwLCAzOTAwMSwgMTA0OTcsIDM5MDE2LCAKKyAgICAzOTAyMiwgMzkwMjYsIDM5MDMwLCAzOTAzNywgMzkwNDIsIDM5MDQ2LCAzOTA1MywgMzkwNTksIDM5MDY0LCAzOTA3MCwgCisgICAgMzkwODAsIDM5MDkyLCAzOTEwMywgMzkxMDgsIDM5MTE1LCAzOTExOSwgMzkxMjMsIDM5MTI2LCAxNTg4NSwgMzY3NywgCisgICAgMzkxMzQsIDE1NTE2LCAzOTE0NywgMzkxNTQsIDM5MTU4LCAzOTE2MiwgMzkxNjcsIDM5MTcyLCAzOTE3OCwgMzkxODIsIAorICAgIDM5MTg2LCAzOTE4OSwgNzc0MiwgMTU1MjcsIDM5MTk0LCAzOTE5OCwgMzkyMDQsIDM5MjEzLCAzOTIxOCwgMzkyMjUsIAorICAgIDM1ODEwLCAzOTIzMSwgMzkyMzYsIDM5MjQwLCAzOTI0NSwgMzkyNTIsIDM5MjU2LCAzOTI1OSwgMzkyNjMsIDM5MjY4LCAKKyAgICAxNDU1OSwgMzkyNzUsIDM5MjgyLCAxMDcyLCAzOTI4NiwgMzkyOTEsIDM5Mjk2LCAzOTMwMiwgMzkzMDcsIDM5MzEyLCAKKyAgICAzOTMxNiwgMzkzMjYsIDM5MzMxLCAzOTMzNywgMzkzNDIsIDM5MzQ4LCAzOTM1MywgMzkzNTksIDM5MzY5LCAzOTM3NCwgCisgICAgMzkzNzksIDM5MzgzLCA3MjI5LCA3MjQxLCAzOTM4OCwgMzkzOTEsIDM5Mzk4LCAzOTQwNCwgMzQwNjYsIDM0MDczLCAKKyAgICAzOTQxMywgMzk0MTcsIDMyMDIzLCAzOTQyNSwgMzk0MzYsIDM5NDQ0LCAzNjAwMiwgMzk0NTEsIDM5NDU2LCAzOTQ2MSwgCisgICAgMzk0NzIsIDM5NDc5LCAzOTQ5MCwgMzIwNDcsIDIxNDUxLCAzOTQ5OCwgNzM1LCAzOTUwMywgMzk1MDksIDI4MDM3LCAKKyAgICAzOTUxNSwgMzk1MjAsIDM5NTMwLCAzOTUzOSwgMzk1NDYsIDM5NTUyLCAzOTU1NiwgMzk1NTksIDM5NTY2LCAzOTU3MiwgCisgICAgMzk1NzksIDM5NTg1LCAzOTU5NSwgMzk2MDMsIDM5NjA5LCAzOTYxNSwgMzk2MjAsIDM5NjI0LCAzOTYzMSwgMzk2MzcsIAorICAgIDM5NjQ0LCAzODg5NSwgNTM1LCAxMzgxMiwgMzk2NTAsIDM5NjU1LCAzOTY1OCwgMzk2NjQsIDM5NjcyLCAxMzk2LCAzOTY3NywgCisgICAgMzk2ODEsIDM5Njg2LCAzOTY5MywgMzk2OTksIDM5NzAzLCAzOTcwNywgMzk3MTIsIDM5NzIxLCAzOTcyOCwgMzk3MzgsIAorICAgIDM5NzQ0LCAyODA4MSwgMzk3NjEsIDM5NzcwLCAzOTc3OCwgMzk3ODQsIDM5Nzg5LCAzOTc5NiwgMzk4MDIsIDM5ODEwLCAKKyAgICAzOTgxOSwgMzk4MjcsIDM5ODMxLCAzOTgzNiwgMzk4NDQsIDMyMDU2LCAzOTg1MCwgMzk4NjksIDE1ODE4LCAzOTg4MywgCisgICAgMzk4OTksIDM5OTEzLCAzOTkxOSwgMzk5MjQsIDM5OTI5LCAzOTkzNCwgMzk5NDAsIDMyMDYyLCAzOTk0NSwgMzk5NTIsIAorICAgIDM5OTU3LCAzOTk2MSwgMzQ1LCAyOTM2LCAzOTk2OCwgMzk5NzMsIDM5OTc4LCAyNzMxMiwgMzk3OTksIDM5OTgyLCAzOTk4NywgCisgICAgMzk5OTUsIDM5OTk5LCA0MDAwMiwgNDAwMDgsIDQwMDE0LCA0MDAxOCwgMjgxMzYsIDQwMDIxLCA0MDAyNiwgNDAwMzAsIAorICAgIDQwMDMzLCA0MDAzOCwgNDAwNDIsIDQwMDQ3LCA0MDA1MiwgNDAwNTYsIDQwMDYxLCA0MDA2NSwgNDAwNjksIDIxMTczLCAKKyAgICAyMTE4NCwgNDAwNzMsIDQwMDc4LCA0MDA4NCwgMjY5NDMsIDQwMDg5LCA0MDA5MywgMjEyNjAsIDE2MDY2LCA0MDA5NiwgCisgICAgNDAxMDEsIDQwMTA2LCA0MDExMSwgNDAxMTYsIDQwMTIxLCA0MDEyNiwgNDAxMzEsIDQ0NywgNDMsIDMxMjgxLCAzMTI4NiwgCisgICAgMzEyOTEsIDMxMjk3LCAzMTMwMiwgMzEzMDcsIDQwMTM2LCAzMTMxMSwgNDAxNDAsIDQwMTQ0LCA0MDE0OCwgMzEzMTYsIAorICAgIDMxMzIyLCA0MDE2MiwgMzEzMzMsIDMxMzM4LCA0MDE3MCwgNDAxNzUsIDMxMzQ0LCA0MDE4MCwgNDAxODUsIDQwMTkwLCAKKyAgICA0MDE5NSwgNDAyMDEsIDQwMjA3LCA0MDIxMywgMzEzNjEsIDQwMjI2LCA0MDIzMiwgMzEzNjUsIDQwMjM2LCAzMTM3MCwgCisgICAgNDAyNDEsIDMxMzc1LCAzMTM4MCwgNDAyNDQsIDQwMjQ5LCA0MDI1MywgMzA5MzAsIDQwMjU5LCAxMzU5OSwgNDAyNjYsIAorICAgIDQwMjcxLCAzMTM4NSwgNDAyNzUsIDQwMjgwLCA0MDI4NSwgNDAyOTAsIDQwMjk0LCA0MDI5OSwgNDAzMDQsIDQwMzEwLCAKKyAgICA0MDMxNSwgNDAzMjAsIDQwMzI2LCA0MDMzMiwgNDAzMzcsIDQwMzQxLCA0MDM0NiwgNDAzNTEsIDQwMzU2LCA0MDM2MCwgCisgICAgNDAzNjUsIDQwMzcwLCA0MDM3NSwgNDAzODEsIDQwMzg3LCA0MDM5MywgNDAzOTgsIDQwNDAyLCA0MDQwNywgNDA0MTEsIAorICAgIDMxMzg5LCAzMTM5NCwgMzEzOTksIDQwNDE1LCA0MDQxOSwgNDA0MjMsIDMxNDA0LCAzMTQxMCwgMzE0MTYsIDMxNDI4LCAKKyAgICA0MDQzNSwgMjYwMDMsIDQwNDM5LCA0MDQ0MywgNDA0NDgsIDQwNDUzLCA0MDQ1OCwgNDA0NjMsIDQwNDY3LCA0MDQ3MSwgCisgICAgNDA0ODEsIDQwNDg2LCA0MDQ5MSwgNDA0OTUsIDQwNDk5LCA0MDUwMiwgNDA1MTAsIDMxNDc2LCA0MDUxNSwgMTQ3OSwgCisgICAgNDA1MjEsIDQwNTI5LCA0MDUzOCwgNDA1NDIsIDQwNTQ2LCA0MDU1NCwgNDA1NjAsIDQwNTY4LCA0MDU4NCwgNDA1ODgsIAorICAgIDQwNTkyLCA0MDU5NywgNDA2MTIsIDMxNTEzLCAxNzQ5LCAxMjA1NSwgNDA2MTYsIDEzNzgsIDQwNjI4LCA0MDYyOSwgCisgICAgNDA2MzcsIDQwNjQ0LCA0MDY0OSwgNDA2NTYsIDQwNjYxLCA5Mzc5LCAxMTE0LCAxMDMzMiwgNDA2NjgsIDQwNjczLCAKKyAgICA0MDY3NiwgNDA2NzksIDQwNjg4LCAxMjg2LCA0MDY5MywgMzkwNDMsIDQwNzAwLCA0MDcwNSwgMjI0OTMsIDI1NTcsIAorICAgIDQwNzA5LCAxMDc0MSwgNDA3MTksIDQwNzI1LCAyMzM3LCAyMzQ3LCA0MDczNCwgNDA3NDMsIDQwNzUzLCA0MDc2NCwgMzI5MywgCisgICAgMzQyMTksIDEwMzg0LCAzODA3LCAxNjY3NSwgMTI5MSwgNDA3NjksIDQwNzc3LCA0MDc4NCwgNDA3ODksIDQwNzkzLCAKKyAgICA0MDc5NywgMjM4NjUsIDEwNDExLCA0MDgwNSwgNDA4MTQsIDQwODIzLCA0MDgzMSwgNDA4MzgsIDQwODQ5LCA0MDg1NCwgCisgICAgNDA4NjcsIDQwODgwLCA0MDg5MiwgNDA5MDQsIDQwOTE2LCA0MDkyOSwgNDA5NDAsIDQwOTUxLCA0MDk2MSwgNDA5NjksIAorICAgIDQwOTc3LCA0MDk4OSwgNDEwMDEsIDQxMDEyLCA0MTAyMSwgNDEwMjksIDQxMDM2LCA0MTA0OCwgNDEwNTUsIDQxMDY0LCAKKyAgICA0MTA3MSwgNDEwODQsIDQxMDg5LCA0MTA5OSwgNDExMDQsIDQxMTEwLCA0MTExNSwgMzcxODksIDQxMTE5LCA0MTEyNiwgCisgICAgNDExMzAsIDQxMTM3LCA0MTE0NSwgMjUxOCwgNDExNTIsIDQxMTYzLCA0MTE3MywgNDExODIsIDQxMTkwLCA0MTIwMCwgCisgICAgNDEyMDgsIDQxMjE4LCA0MTIyNywgNDEyMzIsIDQxMjM4LCA0MTI0NCwgMzcwOSwgNDEyNTUsIDQxMjY1LCA0MTI3NCwgCisgICAgNDEyODMsIDQxMjkzLCA0MTMwMSwgNDEzMTAsIDQxMzE1LCA0MTMyMCwgNDEzMjUsIDE3MDUsIDM3LCA0MTMzMywgNDEzNDEsIAorICAgIDQxMzUyLCA0MTM2MywgMTYzNTAsIDQxMzczLCA0MTM3NywgNDEzODQsIDQxMzkwLCA0MTM5NSwgNDEzOTksIDQxNDEwLCAKKyAgICA0MTQyMCwgNDE0MjksIDQxNDQwLCAxNjcyNCwgMTY3MjksIDQxNDQ1LCA0MTQ1NCwgNDE0NTksIDQxNDY5LCA0MTQ3NCwgCisgICAgNDE0ODIsIDQxNDkwLCA0MTQ5NywgNDE1MDMsIDcwNzgsIDIyOCwgNDE1MDcsIDQxNTEzLCA0MTUxOCwgNDE1MjEsIDIxMTcsIAorICAgIDM5MTU5LCA0MTUyOSwgNDE1MzMsIDQxNTM2LCAxNTEyLCA0MTU0MiwgMTM5NzQsIDEyOTYsIDQxNTQ3LCA0MTU2MCwgCisgICAgNDE1NzQsIDI2NDMsIDQxNTkyLCA0MTYwNCwgNDE2MTYsIDI2NTcsIDI2NzQsIDQxNjMwLCA0MTY0MywgMjY4OSwgNDE2NTcsIAorICAgIDQxNjY5LCAyNzA0LCA0MTY4MywgMTMwMiwgMTMwOCwgMTMxNCwgMTA2NTksIDQxNjg4LCA0MTY5MywgNDE2OTgsIDQxNzAyLCAKKyAgICA0MTcxNywgNDE3MzIsIDQxNzQ3LCA0MTc2MiwgNDE3NzcsIDQxNzkyLCA0MTgwNywgNDE4MjIsIDQxODM3LCA0MTg1MiwgCisgICAgNDE4NjcsIDQxODgyLCA0MTg5NywgNDE5MTIsIDQxOTI3LCA0MTk0MiwgNDE5NTcsIDQxOTcyLCA0MTk4NywgNDIwMDIsIAorICAgIDQyMDE3LCA0MjAzMiwgNDIwNDcsIDQyMDYyLCA0MjA3NywgNDIwOTIsIDQyMTA3LCA0MjEyMiwgNDIxMzcsIDQyMTUyLCAKKyAgICA0MjE2NywgNDIxODIsIDQyMTk3LCA0MjIxMiwgNDIyMjcsIDQyMjQyLCA0MjI1NywgNDIyNzIsIDQyMjg3LCA0MjMwMiwgCisgICAgNDIzMTcsIDQyMzMyLCA0MjM0NywgNDIzNjIsIDQyMzc3LCA0MjM5MiwgNDI0MDcsIDQyNDIyLCA0MjQzNywgNDI0NTIsIAorICAgIDQyNDY3LCA0MjQ4MiwgNDI0OTcsIDQyNTEyLCA0MjUyNywgNDI1NDIsIDQyNTU3LCA0MjU3MiwgNDI1ODcsIDQyNjAyLCAKKyAgICA0MjYxNywgNDI2MzIsIDQyNjQ3LCA0MjY2MiwgNDI2NzcsIDQyNjkyLCA0MjcwNywgNDI3MjIsIDQyNzM3LCA0Mjc1MiwgCisgICAgNDI3NjcsIDQyNzgyLCA0Mjc5NywgNDI4MTIsIDQyODI3LCA0Mjg0MiwgNDI4NTcsIDQyODcyLCA0Mjg4NywgNDI5MDIsIAorICAgIDQyOTE3LCA0MjkzMiwgNDI5NDcsIDQyOTYyLCA0Mjk3NywgNDI5OTIsIDQzMDA3LCA0MzAyMiwgNDMwMzcsIDQzMDUyLCAKKyAgICA0MzA2NywgNDMwODIsIDQzMDk3LCA0MzExMiwgNDMxMjcsIDQzMTQyLCA0MzE1NywgNDMxNzIsIDQzMTg3LCA0MzIwMiwgCisgICAgNDMyMTcsIDQzMjMyLCA0MzI0NywgNDMyNjIsIDQzMjc3LCA0MzI5MiwgNDMzMDcsIDQzMzIyLCA0MzMzNywgNDMzNTIsIAorICAgIDQzMzY3LCA0MzM4MiwgNDMzOTcsIDQzNDEyLCA0MzQyNywgNDM0NDIsIDQzNDU3LCA0MzQ3MiwgNDM0ODcsIDQzNTAyLCAKKyAgICA0MzUxNywgNDM1MzIsIDQzNTQ3LCA0MzU2MiwgNDM1NzcsIDQzNTkyLCA0MzYwNywgNDM2MjIsIDQzNjM3LCA0MzY1MiwgCisgICAgNDM2NjcsIDQzNjgyLCA0MzY5NywgNDM3MTIsIDQzNzI3LCA0Mzc0MiwgNDM3NTcsIDQzNzcyLCA0Mzc4NywgNDM4MDIsIAorICAgIDQzODE3LCA0MzgzMiwgNDM4NDcsIDQzODYyLCA0Mzg3NywgNDM4OTIsIDQzOTA3LCA0MzkyMiwgNDM5MzcsIDQzOTUyLCAKKyAgICA0Mzk2NywgNDM5ODIsIDQzOTk3LCA0NDAxMiwgNDQwMjcsIDQ0MDQyLCA0NDA1NywgNDQwNzIsIDQ0MDg3LCA0NDEwMiwgCisgICAgNDQxMTcsIDQ0MTMyLCA0NDE0NywgNDQxNjIsIDQ0MTc3LCA0NDE5MiwgNDQyMDcsIDQ0MjIyLCA0NDIzNywgNDQyNTIsIAorICAgIDQ0MjY3LCA0NDI4MiwgNDQyOTcsIDQ0MzEyLCA0NDMyNywgNDQzNDIsIDQ0MzU3LCA0NDM3MiwgNDQzODcsIDQ0NDAyLCAKKyAgICA0NDQxNywgNDQ0MzIsIDQ0NDQ3LCA0NDQ2MiwgNDQ0NzcsIDQ0NDkyLCA0NDUwNywgNDQ1MjIsIDQ0NTM3LCA0NDU1MiwgCisgICAgNDQ1NjcsIDQ0NTgyLCA0NDU5NywgNDQ2MTIsIDQ0NjI3LCA0NDY0MiwgNDQ2NTcsIDQ0NjcyLCA0NDY4NywgNDQ3MDIsIAorICAgIDQ0NzE3LCA0NDczMiwgNDQ3NDcsIDQ0NzYyLCA0NDc3NywgNDQ3OTIsIDQ0ODA3LCA0NDgyMiwgNDQ4MzcsIDQ0ODUyLCAKKyAgICA0NDg2NywgNDQ4ODIsIDQ0ODk3LCA0NDkxMiwgNDQ5MjcsIDQ0OTQyLCA0NDk1NywgNDQ5NzIsIDQ0OTg3LCA0NTAwMiwgCisgICAgNDUwMTcsIDQ1MDMyLCA0NTA0NywgNDUwNjIsIDQ1MDc3LCA0NTA5MiwgNDUxMDcsIDQ1MTIyLCA0NTEzNywgNDUxNTIsIAorICAgIDQ1MTY3LCA0NTE4MiwgNDUxOTcsIDQ1MjEyLCA0NTIyNywgNDUyNDIsIDQ1MjU3LCA0NTI3MiwgNDUyODcsIDQ1MzAyLCAKKyAgICA0NTMxNywgNDUzMzIsIDQ1MzQ3LCA0NTM2MiwgNDUzNzcsIDQ1MzkyLCA0NTQwNywgNDU0MjIsIDQ1NDM3LCA0NTQ1MiwgCisgICAgNDU0NjcsIDQ1NDgyLCA0NTQ5NywgNDU1MTIsIDQ1NTI3LCA0NTU0MiwgNDU1NTcsIDQ1NTcyLCA0NTU4NywgNDU2MDIsIAorICAgIDQ1NjE3LCA0NTYzMiwgNDU2NDcsIDQ1NjYyLCA0NTY3NywgNDU2OTIsIDQ1NzA3LCA0NTcyMiwgNDU3MzcsIDQ1NzUyLCAKKyAgICA0NTc2NywgNDU3ODIsIDQ1Nzk3LCA0NTgxMiwgNDU4MjcsIDQ1ODQyLCA0NTg1NywgNDU4NzIsIDQ1ODg3LCA0NTkwMiwgCisgICAgNDU5MTcsIDQ1OTMyLCA0NTk0NywgNDU5NjIsIDQ1OTc3LCA0NTk5MiwgNDYwMDcsIDQ2MDIyLCA0NjAzNywgNDYwNTIsIAorICAgIDQ2MDY3LCA0NjA4MiwgNDYwOTcsIDQ2MTEyLCA0NjEyNywgNDYxNDIsIDQ2MTU3LCA0NjE3MiwgNDYxODcsIDQ2MjAyLCAKKyAgICA0NjIxNywgNDYyMzIsIDQ2MjQ3LCA0NjI2MiwgNDYyNzcsIDQ2MjkyLCA0NjMwNywgNDYzMjIsIDQ2MzM3LCA0NjM1MiwgCisgICAgNDYzNjcsIDQ2MzgyLCA0NjM5NywgNDY0MTIsIDQ2NDI3LCA0NjQ0MiwgNDY0NTcsIDQ2NDcyLCA0NjQ4NywgNDY1MDIsIAorICAgIDQ2NTE3LCA0NjUzMiwgNDY1NDcsIDQ2NTYyLCA0NjU3NywgNDY1OTIsIDQ2NjA3LCA0NjYyMiwgNDY2MzcsIDQ2NjUyLCAKKyAgICA0NjY2NywgNDY2ODIsIDQ2Njk3LCA0NjcxMiwgNDY3MjcsIDQ2NzQyLCA0Njc1NywgNDY3NzIsIDQ2Nzg3LCA0NjgwMiwgCisgICAgNDY4MTcsIDQ2ODMyLCA0Njg0NywgNDY4NjIsIDQ2ODc3LCA0Njg5MiwgNDY5MDcsIDQ2OTIyLCA0NjkzNywgNDY5NTIsIAorICAgIDQ2OTY3LCA0Njk4MiwgNDY5OTcsIDQ3MDEyLCA0NzAyNywgNDcwNDIsIDQ3MDU3LCA0NzA3MiwgNDcwODcsIDQ3MTAyLCAKKyAgICA0NzExNywgNDcxMzIsIDQ3MTQ3LCA0NzE2MiwgNDcxNzcsIDQ3MTkyLCA0NzIwNywgNDcyMjIsIDQ3MjM3LCA0NzI1MiwgCisgICAgNDcyNjcsIDQ3MjgyLCA0NzI5NywgNDczMTIsIDQ3MzI3LCA0NzM0MiwgNDczNTcsIDQ3MzcyLCA0NzM4NywgNDc0MDIsIAorICAgIDQ3NDE3LCA0NzQzMiwgNDc0NDcsIDQ3NDYyLCA0NzQ3NywgNDc0OTIsIDQ3NTA3LCA0NzUyMiwgNDc1MzcsIDQ3NTUyLCAKKyAgICA0NzU2NywgNDc1ODIsIDQ3NTk3LCA0NzYxMiwgNDc2MjcsIDQ3NjQyLCA0NzY1NywgNDc2NzIsIDQ3Njg3LCA0NzcwMiwgCisgICAgNDc3MTcsIDQ3NzMyLCA0Nzc0NywgNDc3NjIsIDQ3Nzc3LCA0Nzc5MiwgNDc4MDcsIDQ3ODIyLCA0NzgzNywgNDc4NTIsIAorICAgIDQ3ODY3LCA0Nzg4MiwgNDc4OTcsIDQ3OTEyLCA0NzkyNywgNDc5NDIsIDQ3OTU3LCA0Nzk3MiwgNDc5ODcsIDQ4MDAyLCAKKyAgICA0ODAxNywgNDgwMzIsIDQ4MDQ3LCA0ODA2MiwgNDgwNzcsIDQ4MDkyLCA0ODEwNywgNDgxMjIsIDQ4MTM3LCA0ODE1MiwgCisgICAgNDgxNjcsIDQ4MTgyLCA0ODE5NywgNDgyMTIsIDQ4MjI3LCA0ODI0MiwgNDgyNTcsIDQ4MjcyLCA0ODI4NywgNDgzMDIsIAorICAgIDQ4MzE3LCA0ODMzMiwgNDgzNDcsIDQ4MzYyLCA0ODM3NywgNDgzOTIsIDQ4NDA3LCA0ODQyMiwgNDg0MzcsIDQ4NDUyLCAKKyAgICA0ODQ2NywgNDg0ODIsIDQ4NDk3LCA0ODUxMiwgNDg1MjcsIDQ4NTQyLCA0ODU1NywgNDg1NzIsIDQ4NTg3LCA0ODYwMiwgCisgICAgNDg2MTcsIDQ4NjMyLCA0ODY0NywgNDg2NjIsIDQ4Njc3LCA0ODY5MiwgNDg3MDcsIDQ4NzIyLCA0ODczNywgNDg3NTIsIAorICAgIDQ4NzY3LCA0ODc4MiwgNDg3OTcsIDQ4ODEyLCA0ODgyNywgNDg4NDIsIDQ4ODU3LCA0ODg3MiwgNDg4ODcsIDQ4OTAyLCAKKyAgICA0ODkxNywgNDg5MzIsIDQ4OTQ3LCA0ODk2MiwgNDg5NzcsIDQ4OTkyLCA0OTAwNywgNDkwMjIsIDQ5MDM3LCA0OTA1MiwgCisgICAgNDkwNjcsIDQ5MDgyLCA0OTA5NywgNDkxMTIsIDQ5MTI3LCA0OTE0MiwgNDkxNTcsIDQ5MTcyLCA0OTE4NywgNDkyMDIsIAorICAgIDQ5MjE3LCA0OTIzMiwgNDkyNDcsIDQ5MjYyLCA0OTI3NywgNDkyOTIsIDQ5MzA3LCA0OTMyMiwgNDkzMzcsIDQ5MzUyLCAKKyAgICA0OTM2NywgNDkzODIsIDQ5Mzk3LCA0OTQxMiwgNDk0MjcsIDQ5NDQyLCA0OTQ1NywgNDk0NzIsIDQ5NDg3LCA0OTUwMiwgCisgICAgNDk1MTgsIDQ5NTM0LCA0OTU1MCwgNDk1NjYsIDQ5NTgyLCA0OTU5OCwgNDk2MTQsIDQ5NjMwLCA0OTY0NiwgNDk2NjIsIAorICAgIDQ5Njc4LCA0OTY5NCwgNDk3MTAsIDQ5NzI2LCA0OTc0MiwgNDk3NTgsIDQ5Nzc0LCA0OTc5MCwgNDk4MDYsIDQ5ODIyLCAKKyAgICA0OTgzOCwgNDk4NTQsIDQ5ODcwLCA0OTg4NiwgNDk5MDIsIDQ5OTE4LCA0OTkzNCwgNDk5NTAsIDQ5OTY2LCA0OTk4MiwgCisgICAgNDk5OTgsIDUwMDE0LCA1MDAzMCwgNTAwNDYsIDUwMDYyLCA1MDA3OCwgNTAwOTQsIDUwMTEwLCA1MDEyNiwgNTAxNDIsIAorICAgIDUwMTU4LCA1MDE3NCwgNTAxOTAsIDUwMjA2LCA1MDIyMiwgNTAyMzgsIDUwMjU0LCA1MDI3MCwgNTAyODYsIDUwMzAyLCAKKyAgICA1MDMxOCwgNTAzMzQsIDUwMzUwLCA1MDM2NiwgNTAzODIsIDUwMzk4LCA1MDQxNCwgNTA0MzAsIDUwNDQ2LCA1MDQ2MiwgCisgICAgNTA0NzgsIDUwNDk0LCA1MDUxMCwgNTA1MjYsIDUwNTQyLCA1MDU1OCwgNTA1NzQsIDUwNTkwLCA1MDYwNiwgNTA2MjIsIAorICAgIDUwNjM4LCA1MDY1NCwgNTA2NzAsIDUwNjg2LCA1MDcwMiwgNTA3MTgsIDUwNzM0LCA1MDc1MCwgNTA3NjYsIDUwNzgyLCAKKyAgICA1MDc5OCwgNTA4MTQsIDUwODMwLCA1MDg0NiwgNTA4NjIsIDUwODc4LCA1MDg5NCwgNTA5MTAsIDUwOTI2LCA1MDk0MiwgCisgICAgNTA5NTgsIDUwOTc0LCA1MDk5MCwgNTEwMDYsIDUxMDIyLCA1MTAzOCwgNTEwNTQsIDUxMDcwLCA1MTA4NiwgNTExMDIsIAorICAgIDUxMTE4LCA1MTEzNCwgNTExNTAsIDUxMTY2LCA1MTE4MiwgNTExOTgsIDUxMjE0LCA1MTIzMCwgNTEyNDYsIDUxMjYyLCAKKyAgICA1MTI3OCwgNTEyOTQsIDUxMzEwLCA1MTMyNiwgNTEzNDIsIDUxMzU4LCA1MTM3NCwgNTEzOTAsIDUxNDA2LCA1MTQyMiwgCisgICAgNTE0MzgsIDUxNDU0LCA1MTQ3MCwgNTE0ODYsIDUxNTAyLCA1MTUxOCwgNTE1MzQsIDUxNTUwLCA1MTU2NiwgNTE1ODIsIAorICAgIDUxNTk4LCA1MTYxNCwgNTE2MzAsIDUxNjQ2LCA1MTY2MiwgNTE2NzgsIDUxNjk0LCA1MTcxMCwgNTE3MjYsIDUxNzQyLCAKKyAgICA1MTc1OCwgNTE3NzQsIDUxNzkwLCA1MTgwNiwgNTE4MjIsIDUxODM4LCA1MTg1NCwgNTE4NzAsIDUxODg2LCA1MTkwMiwgCisgICAgNTE5MTgsIDUxOTM0LCA1MTk1MCwgNTE5NjYsIDUxOTgyLCA1MTk5OCwgNTIwMTQsIDUyMDMwLCA1MjA0NiwgNTIwNjIsIAorICAgIDUyMDc4LCA1MjA5NCwgNTIxMTAsIDUyMTI2LCA1MjE0MiwgNTIxNTgsIDUyMTc0LCA1MjE5MCwgNTIyMDYsIDUyMjIyLCAKKyAgICA1MjIzOCwgNTIyNTQsIDUyMjcwLCA1MjI4NiwgNTIzMDIsIDUyMzE4LCA1MjMzNCwgNTIzNTAsIDUyMzY2LCA1MjM4MiwgCisgICAgNTIzOTgsIDUyNDE0LCA1MjQzMCwgNTI0NDYsIDUyNDYyLCA1MjQ3OCwgNTI0OTQsIDUyNTEwLCA1MjUyNiwgNTI1NDIsIAorICAgIDUyNTU4LCA1MjU3NCwgNTI1OTAsIDUyNjA2LCA1MjYyMiwgNTI2MzgsIDUyNjU0LCA1MjY3MCwgNTI2ODYsIDUyNzAyLCAKKyAgICA1MjcxOCwgNTI3MzQsIDUyNzUwLCA1Mjc2NiwgNTI3ODIsIDUyNzk4LCA1MjgxNCwgNTI4MzAsIDUyODQ2LCA1Mjg2MiwgCisgICAgNTI4NzgsIDUyODk0LCA1MjkxMCwgNTI5MjYsIDUyOTQyLCA1Mjk1OCwgNTI5NzQsIDUyOTkwLCA1MzAwNiwgNTMwMjIsIAorICAgIDUzMDM4LCA1MzA1NCwgNTMwNzAsIDUzMDg2LCA1MzEwMiwgNTMxMTgsIDUzMTM0LCA1MzE1MCwgNTMxNjYsIDUzMTgyLCAKKyAgICA1MzE5OCwgNTMyMTQsIDUzMjMwLCA1MzI0NiwgNTMyNjIsIDUzMjc4LCA1MzI5NCwgNTMzMTAsIDUzMzI2LCA1MzM0MiwgCisgICAgNTMzNTgsIDUzMzc0LCA1MzM5MCwgNTM0MDYsIDUzNDIyLCA1MzQzOCwgNTM0NTQsIDUzNDcwLCA1MzQ4NiwgNTM1MDIsIAorICAgIDUzNTE4LCA1MzUzNCwgNTM1NTAsIDUzNTY2LCA1MzU4MiwgNTM1OTgsIDUzNjE0LCA1MzYzMCwgNTM2NDYsIDUzNjYyLCAKKyAgICA1MzY3OCwgNTM2OTQsIDUzNzEwLCA1MzcyNiwgNTM3NDIsIDUzNzU4LCA1Mzc3NCwgNTM3OTAsIDUzODA2LCA1MzgyMiwgCisgICAgNTM4MzgsIDUzODU0LCA1Mzg3MCwgNTM4ODYsIDUzOTAyLCA1MzkxOCwgNTM5MzQsIDUzOTUwLCA1Mzk2NiwgNTM5ODIsIAorICAgIDUzOTk4LCA1NDAxNCwgNTQwMzAsIDU0MDQ2LCA1NDA2MiwgNTQwNzgsIDU0MDk0LCA1NDExMCwgNTQxMjYsIDU0MTQyLCAKKyAgICA1NDE1OCwgNTQxNzQsIDU0MTkwLCA1NDIwNiwgNTQyMjIsIDU0MjM4LCA1NDI1NCwgNTQyNzAsIDU0Mjg2LCA1NDMwMiwgCisgICAgNTQzMTgsIDU0MzM0LCA1NDM1MCwgNTQzNjYsIDU0MzgyLCA1NDM5OCwgNTQ0MTQsIDU0NDMwLCA1NDQ0NiwgNTQ0NjIsIAorICAgIDU0NDc4LCA1NDQ5NCwgNTQ1MTAsIDU0NTI2LCA1NDU0MiwgNTQ1NTgsIDU0NTc0LCA1NDU5MCwgNTQ2MDYsIDU0NjIyLCAKKyAgICA1NDYzOCwgNTQ2NTQsIDU0NjcwLCA1NDY4NiwgNTQ3MDIsIDU0NzE4LCA1NDczNCwgNTQ3NTAsIDU0NzY2LCA1NDc4MiwgCisgICAgNTQ3OTgsIDU0ODE0LCA1NDgzMCwgNTQ4NDYsIDU0ODYyLCA1NDg3OCwgNTQ4OTQsIDU0OTEwLCA1NDkyNiwgNTQ5NDIsIAorICAgIDU0OTU4LCA1NDk3NCwgNTQ5OTAsIDU1MDA2LCA1NTAyMiwgNTUwMzgsIDU1MDU0LCA1NTA3MCwgNTUwODYsIDU1MTAyLCAKKyAgICA1NTExOCwgNTUxMzQsIDU1MTUwLCA1NTE2NiwgNTUxODIsIDU1MTk4LCA1NTIxNCwgNTUyMzAsIDU1MjQ2LCA1NTI2MiwgCisgICAgNTUyNzgsIDU1Mjk0LCA1NTMxMCwgNTUzMjYsIDU1MzQyLCA1NTM1OCwgNTUzNzQsIDU1MzkwLCA1NTQwNiwgNTU0MjIsIAorICAgIDU1NDM4LCA1NTQ1NCwgNTU0NzAsIDU1NDg2LCA1NTUwMiwgNTU1MTgsIDU1NTM0LCA1NTU1MCwgNTU1NjYsIDU1NTgyLCAKKyAgICA1NTU5OCwgNTU2MTQsIDU1NjMwLCA1NTY0NiwgNTU2NjIsIDU1Njc4LCA1NTY5NCwgNTU3MTAsIDU1NzI2LCA1NTc0MiwgCisgICAgNTU3NTgsIDU1Nzc0LCA1NTc5MCwgNTU4MDYsIDU1ODIyLCA1NTgzOCwgNTU4NTQsIDU1ODcwLCA1NTg4NiwgNTU5MDIsIAorICAgIDU1OTE4LCA1NTkzNCwgNTU5NTAsIDU1OTY2LCA1NTk4MiwgNTU5OTgsIDU2MDE0LCA1NjAzMCwgNTYwNDYsIDU2MDYyLCAKKyAgICA1NjA3OCwgNTYwOTQsIDU2MTEwLCA1NjEyNiwgNTYxNDIsIDU2MTU4LCA1NjE3NCwgNTYxOTAsIDU2MjA2LCA1NjIyMiwgCisgICAgNTYyMzgsIDU2MjU0LCA1NjI3MCwgNTYyODYsIDU2MzAyLCA1NjMxOCwgNTYzMzQsIDU2MzUwLCA1NjM2NiwgNTYzODIsIAorICAgIDU2Mzk4LCA1NjQxNCwgNTY0MzAsIDU2NDQ2LCA1NjQ2MiwgNTY0NzgsIDU2NDk0LCA1NjUxMCwgNTY1MjYsIDU2NTQyLCAKKyAgICA1NjU1OCwgNTY1NzQsIDU2NTkwLCA1NjYwNiwgNTY2MjIsIDU2NjM4LCA1NjY1NCwgNTY2NzAsIDU2Njg2LCA1NjcwMiwgCisgICAgNTY3MTgsIDU2NzM0LCA1Njc1MCwgNTY3NjYsIDU2NzgyLCA1Njc5OCwgNTY4MTQsIDU2ODMwLCA1Njg0NiwgNTY4NjIsIAorICAgIDU2ODc4LCA1Njg5NCwgNTY5MTAsIDU2OTI2LCA1Njk0MiwgNTY5NTgsIDU2OTc0LCA1Njk5MCwgNTcwMDYsIDU3MDIyLCAKKyAgICA1NzAzOCwgNTcwNTQsIDU3MDcwLCA1NzA4NiwgNTcxMDIsIDU3MTE4LCA1NzEzNCwgNTcxNTAsIDU3MTY2LCA1NzE4MiwgCisgICAgNTcxOTgsIDU3MjE0LCA1NzIzMCwgNTcyNDYsIDU3MjYyLCA1NzI3OCwgNTcyOTQsIDU3MzEwLCA1NzMyNiwgNTczNDIsIAorICAgIDU3MzU4LCA1NzM3NCwgNTczOTAsIDU3NDA2LCA1NzQyMiwgNTc0MzgsIDU3NDU0LCA1NzQ3MCwgNTc0ODYsIDU3NTAyLCAKKyAgICA1NzUxOCwgNTc1MzQsIDU3NTUwLCA1NzU2NiwgNTc1ODIsIDU3NTk4LCA1NzYxNCwgNTc2MzAsIDU3NjQ2LCA1NzY2MiwgCisgICAgNTc2NzgsIDU3Njk0LCA1NzcxMCwgNTc3MjYsIDU3NzQyLCA1Nzc1OCwgNTc3NzQsIDU3NzkwLCA1NzgwNiwgNTc4MjIsIAorICAgIDU3ODM4LCA1Nzg1NCwgNTc4NzAsIDU3ODg2LCA1NzkwMiwgNTc5MTgsIDU3OTM0LCA1Nzk1MCwgNTc5NjYsIDU3OTgyLCAKKyAgICA1Nzk5OCwgNTgwMTQsIDU4MDMwLCA1ODA0NiwgNTgwNjIsIDU4MDc4LCA1ODA5NCwgNTgxMTAsIDU4MTI2LCA1ODE0MiwgCisgICAgNTgxNTgsIDU4MTc0LCA1ODE4OSwgMTY3NTYsIDU4MTk4LCA1ODIwNCwgNTgyMTAsIDU4MjIwLCA1ODIyOCwgMTQ4ODgsIAorICAgIDE1NDM5LCA5OTYwLCA1ODI0MSwgMTUyMCwgNTgyNDksIDM3NjEsIDI3NDIyLCA3MTgzLCA1ODI1NSwgNTgyNjAsIDU4MjY1LCAKKyAgICA1ODI3MCwgNTgyNzUsIDU4MjgxLCA1ODI4NiwgNTgyOTIsIDU4Mjk3LCA1ODMwMywgNTgzMDgsIDU4MzEzLCA1ODMxOCwgCisgICAgNTgzMjMsIDU4MzI5LCA1ODMzNCwgNTgzMzksIDU4MzQ0LCA1ODM0OSwgNTgzNTQsIDU4MzU5LCA1ODM2NCwgNTgzNzAsIAorICAgIDU4Mzc1LCA1ODM4MSwgNTgzODgsIDI1NjEsIDU4MzkzLCA1ODM5OSwgODUyNiwgNTg0MDMsIDU4NDA4LCA1ODQxNSwgCisgICAgNTg0MjMsIDQwLCA1ODQyNywgNTg0MzMsIDU4NDM4LCA1ODQ0MywgNTg0NDcsIDU4NDUyLCA1ODQ1NiwgNTg0NjAsIDEwNjg0LCAKKyAgICA1ODQ2NCwgNTg0NzQsIDU4NDg3LCA1ODQ5OCwgNTg1MTEsIDU4NTE4LCA1ODUyNCwgNTg1MjksIDU4NTM1LCA1ODU0MSwgCisgICAgNTg1NDcsIDU4NTUyLCA1ODU1NywgNTg1NjIsIDU4NTY3LCA1ODU3MSwgNTg1NzYsIDU4NTgxLCA1ODU4NiwgNTg1OTIsIAorICAgIDU4NTk4LCA1ODYwNCwgNTg2MDksIDU4NjEzLCA1ODYxOCwgNTg2MjMsIDU4NjI3LCA1ODYzMiwgNTg2MzcsIDU4NjQyLCAKKyAgICA1ODY0NiwgMTA3MDAsIDEwNzExLCAxMDcxNiwgMTU2MywgNTg2NTAsIDE1NjgsIDU4NjU2LCAxNjIzMywgNTg2NTksIAorICAgIDU4NjY1LCAxNTk5LCA1ODY3MSwgMTYwNSwgMTYxMSwgMTA3NDYsIDU4Njc2LCA1ODY4NCwgNTg2OTEsIDU4Njk1LCA1ODcwMSwgCisgICAgNTg3MDYsIDMwOTU5LCA1ODcxMSwgNTg3MTgsIDU4NzIzLCA1ODcyNywgNTg3MzEsIDE2MTYsIDE2MzI1LCA1ODc0MCwgCisgICAgNTg3NDQsIDE2MzM2LCAxMTIwLCA1ODc0OCwgNTg3NTUsIDU4NzYwLCA1ODc2NCwgMTYzNjEsIDE2MjAsIDM3MzI4LCAKKyAgICA1ODc2NywgNTg3NzIsIDU4NzgyLCA1ODc5MSwgNTg3OTYsIDU4ODAwLCA1ODgwNiwgMTYyNSwgMzkyMzcsIDU4ODExLCAKKyAgICA1ODgyMCwgNTg4MjYsIDU4ODMxLCAxMDkwNCwgMTA5MTAsIDU4ODM3LCA1ODg0OSwgNTg4NjYsIDU4ODgzLCA1ODkwMCwgCisgICAgNTg5MTcsIDU4OTM0LCA1ODk1MSwgNTg5NjgsIDU4OTg1LCA1OTAwMiwgNTkwMTksIDU5MDM2LCA1OTA1MywgNTkwNzAsIAorICAgIDU5MDg3LCA1OTEwNCwgNTkxMjEsIDU5MTM4LCA1OTE1NSwgNTkxNzIsIDU5MTg5LCA1OTIwNiwgNTkyMjMsIDU5MjQwLCAKKyAgICA1OTI1NywgNTkyNzQsIDU5MjkxLCA1OTMwOCwgNTkzMjUsIDU5MzQyLCA1OTM1OSwgNTkzNzYsIDU5MzkzLCA1OTQxMCwgCisgICAgNTk0MjcsIDU5NDQ0LCA1OTQ2MSwgNTk0NzgsIDU5NDk1LCA1OTUxMiwgNTk1MjksIDU5NTQ2LCA1OTU2MywgNTk1ODAsIAorICAgIDU5NTk3LCA1OTYxNCwgNTk2MzEsIDU5NjQ4LCA1OTY2NSwgNTk2ODIsIDU5NjkzLCA1OTY5OCwgMTYzMCwgNTk3MDIsIAorICAgIDU5NzA4LCA1OTcxMywgNTk3MTgsIDkzMjYsIDE2MzUsIDU5NzI0LCA1OTczMywgMjc3MTcsIDU5NzM4LCA1OTc0OSwgCisgICAgNTk3NTksIDU5NzY0LCA1OTc3MSwgNTk3NzcsIDU5NzgyLCA1OTc4NywgMTY2MTMsIDU5NzkxLCAxMDkyMSwgMTY0MCwgCisgICAgMTA5MjYsIDU5Nzk3LCA1OTgwMiwgNTk4MDgsIDU5ODEzLCA1OTgxOCwgNTk4MjMsIDU5ODI4LCA1OTgzMywgNTk4MzgsIAorICAgIDU5ODQzLCA1OTg0OSwgNTk4NTUsIDU5ODYxLCA1OTg2NiwgNTk4NzAsIDU5ODc1LCA1OTg4MCwgNTk4ODQsIDU5ODg5LCAKKyAgICA1OTg5NCwgNTk4OTksIDU5OTAzLCA1OTkwOCwgNTk5MTQsIDU5OTE5LCA1OTkyNCwgNTk5MjgsIDU5OTMzLCA1OTkzOCwgCisgICAgNTk5NDQsIDU5OTQ5LCA1OTk1NCwgNTk5NjAsIDU5OTY2LCA1OTk3MSwgNTk5NzUsIDU5OTgwLCA1OTk4NSwgNTk5OTAsIAorICAgIDU5OTk0LCA1OTk5OSwgNjAwMDQsIDYwMDA5LCA2MDAxNSwgNjAwMjEsIDYwMDI2LCA2MDAzMCwgNjAwMzQsIDYwMDM5LCAKKyAgICA2MDA0NCwgNjAwNDksIDI5MTE1LCA2MDA1MywgNjAwNTgsIDYwMDYzLCA2MDA2OSwgNjAwNzQsIDYwMDc5LCA2MDA4MywgCisgICAgNjAwODgsIDYwMDkzLCA2MDA5OSwgNjAxMDQsIDYwMTA5LCA2MDExNSwgNjAxMjEsIDYwMTI2LCA2MDEzMCwgNjAxMzUsIAorICAgIDYwMTQwLCA2MDE0NCwgNjAxNDksIDYwMTU0LCA2MDE1OSwgNjAxNjUsIDYwMTcxLCA2MDE3NiwgNjAxODAsIDYwMTg1LCAKKyAgICA2MDE5MCwgNjAxOTQsIDYwMTk5LCA2MDIwNCwgNjAyMDksIDYwMjEzLCA2MDIxNiwgMzE2MjEsIDYwMjIxLCA2MDIyOSwgCisgICAgMTY2NzksIDM2NjMsIDExMDE3LCA2MDIzNSwgNjAyNDUsIDYwMjYwLCAxMTAyMiwgNjAyNzEsIDYwMjc2LCA2MDI4NywgCisgICAgNjAyOTksIDYwMzExLCA2MDMyMywgMjY5NSwgNjAzMzUsIDYwMzQwLCA2MDM1MiwgNjAzNTYsIDYwMzYyLCA2MDM2OCwgCisgICAgNjAzNzMsIDE2NTIsIDEwNzMsIDYwMzgyLCA2MDM4NywgMzkyODcsIDYwMzkxLCA2MDM5NSwgNjA0MDAsIDYwNDA0LCAKKyAgICAxNjc2NCwgNjA0MDksIDYwNDEyLCA2MDQyMCwgNjA0MjgsIDE2NTYsIDExMDQ3LCAxMTA1MywgMTY2MSwgNjA0MzYsIAorICAgIDYwNDQzLCA2MDQ0OCwgNjA0NTcsIDYwNDY3LCA2MDQ3NCwgNjA0NzksIDYwNDg0LCAxNjY2LCA2MDQ5MSwgNjA0OTYsIAorICAgIDE2ODc5LCA2MDUwMCwgNjA1MDUsIDYwNTEyLCA2MDUxOCwgNjA1MjIsIDYwNTMzLCA2MDU0MywgMTY5MDEsIDkyMzQsIAorICAgIDkyNDEsIDE2NzEsIDYwNTUwLCA2MDU1NiwgNjA1NjQsIDYwNTcxLCA2MDU3NywgNjA1ODQsIDYwNTk2LCA2MDYwMiwgCisgICAgNjA2MDcsIDYwNjE5LCA2MDYzMCwgNjA2MzksIDYwNjQ5LCAzNzQwLCAzMDc5NSwgMzA4MDQsIDE2OTQxLCAxNjc2LCAxNjgwLCAKKyAgICA2MDY1NywgNjA2NjgsIDYwNjczLCAxNjgzLCA2MDY4MSwgNjA2ODYsIDE2OTkyLCA2MDY5OCwgNjA3MDQsIDYwNzA5LCAKKyAgICA2MDcxNywgMTY4OCwgNjA3MjIsIDYwNzI3LCA2MDczNSwgNjA3NDMsIDYwNzUwLCA2MDc1OSwgNjA3NjcsIDYwNzc2LCAKKyAgICAxNjkzLCA2MDc4MCwgMTY5OCwgNjA3ODUsIDYwNzkyLCAxNzA2NiwgNjA4MDAsIDYwODA2LCA2MDgxMSwgNjA4MTksIAorICAgIDYwODI2LCA2MDgzNCwgMjI1NjQsIDYwODM5LCAxMTE4MiwgNjA4NDgsIDYwODU0LCA2MDg2MSwgNjA4NjgsIDYwODc0LCAKKyAgICA2MDg4NCwgNjA4OTAsIDYwODk1LCA2MDkwNiwgNjA5MTEsIDYwOTE5LCAxMTE5MSwgMTExOTYsIDYwOTI3LCA2MDkzMywgCisgICAgNjA5NDEsIDM4MDUsIDE3MTA4LCAzOTM3NSwgNjA5NDYsIDYwOTUyLCA2MDk1NywgNjA5NjUsIDYwOTcyLCAxMjAzNiwgCisgICAgNjA5NzcsIDYwOTgzLCAxNzA5LCA2MDk4OCwgNjA5OTEsIDExMjcsIDYwOTk3LCA2MTAwMiwgNjEwMDcsIDYxMDEzLCAKKyAgICA2MTAxOCwgNjEwMjMsIDYxMDI4LCA2MTAzMywgNjEwMzgsIDYxMDQzLCAxNzE4LCA5LCA2MTA0OSwgNjEwNTMsIDYxMDU4LCAKKyAgICA2MTA2MiwgNjEwNjYsIDYxMDcwLCAzMTg2MSwgNjEwNzUsIDYxMDgwLCA2MTA4NSwgNjEwODksIDYxMDkyLCA2MTA5NiwgCisgICAgNjExMDAsIDYxMTA1LCA2MTEwOSwgNjExMTQsIDYxMTE4LCAzNDU5OCwgMzQ2MDMsIDM0NjA4LCA2MTEyMSwgNjExMjgsIAorICAgIDYxMTM0LCAzOTA5NiwgNjExNDQsIDM0NjE0LCAzMjExOSwgMzE4NzYsIDMxODgyLCAzNDYzMCwgMzE4ODgsIDYxMTQ5LCAKKyAgICA2MTE1NCwgMzIxNTIsIDYxMTU4LCA2MTE2MSwgNjExNjUsIDYxMTcyLCA2MTE3NSwgNjExODAsIDYxMTg0LCA2MTE4OCwgCisgICAgNjExOTEsIDYxMjAxLCA2MTIxMywgNjEyMjAsIDYxMjI2LCA2MTIzMywgMzM1NTUsIDYxMjM2LCA4NTQzLCA4NzcsIDYxMjM5LCAKKyAgICA2MTI0MywgNjEyNDgsIDM2OTAsIDYxMjUyLCA2MTI1NSwgMTM2MzIsIDYxMjYyLCA2MTI2OSwgNjEyODIsIDYxMjkwLCAKKyAgICA2MTI5OSwgNjEzMDgsIDYxMzEzLCA2MTMyMywgNjEzMzYsIDYxMzQ4LCA2MTM1NSwgNjEzNjAsIDYxMzY5LCA2MTM4MiwgCisgICAgMzYwNDIsIDYxNDAwLCA2MTQwNSwgNjE0MTIsIDYxNDE4LCA2NTIsIDYxNDIzLCA2MTQzMSwgNjE0MzgsIDI3MjYxLCA2MjcsIAorICAgIDYxNDQ0LCA2MTQ1MCwgNjE0NjAsIDYxNDY2LCA2MTQ3MSwgMzE5MDYsIDYwMDMsIDMxOTIwLCA2MTQ3NSwgNjE0ODUsIAorICAgIDYxNDkwLCA2MTUwMCwgNjE1MTUsIDYxNTIxLCA2MTUyNywgMzE5MzAsIDYxNTMyLCAzMTA3NiwgNjE1MzYsIDYxNTQxLCAKKyAgICA2MTU0NiwgNjE1NTAsIDYxNTU1LCAxNjk0NCwgNjE1NjIsIDYxNTY3LCA2MTU3MSwgNjA0NCwgMzE5NTYsIDYxNTc1LCAKKyAgICA2MTU4MSwgMzEyLCA2MTU5MSwgNjE1OTgsIDYxNjA1LCA2MTYxMCwgNjE2MTksIDU4Nzc2LCA2MTYyNSwgNjE2MzMsIAorICAgIDYxNjM3LCA2MTY0MSwgNjE2NDUsIDYxNjQ5LCA2MTY1NCwgNjE2NTgsIDYxNjY0LCA2MTY3MiwgNjE2NzcsIDYxNjgyLCAKKyAgICA2MTY4NiwgNjE2OTEsIDYxNjk1LCA2MTY5OSwgNjE3MDUsIDYxNzExLCA2MTcxNiwgNjE3MjAsIDMyMDgwLCA2MTcyNSwgCisgICAgMzIwODYsIDMyMDkyLCA2MTczMCwgNjE3MzYsIDYxNzQzLCA2MTc0OCwgNjE3NTIsIDMxMDkzLCAxNjYwNiwgNjE3NTUsIAorICAgIDYxNzU5LCA2MTc2NCwgNjE3NzEsIDYxNzc3LCA2MTc4MSwgNjE3ODYsIDM4ODA2LCA2MTc5MiwgNjE3OTYsIDYxODAwLCAKKyAgICA2MTgwNSwgNjE4MTEsIDYxODE3LCA2MTgyOSwgNjE4MzgsIDYxODQ4LCA2MTg1NCwgNjE4NjEsIDYxODY2LCA2MTg3MSwgCisgICAgNjE4NzUsIDYxODc4LCA2MTg4NCwgNjE4OTEsIDYxODk2LCA2MTkwMSwgNjE5MDgsIDYxOTE1LCA2MTkyMSwgNjE5MjYsIAorICAgIDYxOTMxLCA2MTkzOSwgMzIwOTcsIDI0MjMsIDYxOTQ0LCA2MTk0OSwgNjE5NTUsIDYxOTYwLCA2MTk2NiwgNjE5NzEsIAorICAgIDYxOTc2LCA2MTk4MSwgNjE5ODcsIDMyMTE4LCA2MTk5MiwgNjE5OTgsIDYyMDA0LCA2MjAxMCwgMzIxODIsIDYyMDE1LCAKKyAgICA2MjAyMCwgNjIwMjUsIDMyMTkzLCA2MjAzMCwgNjIwMzUsIDYyMDQwLCA2MjA0NiwgNjIwNTIsIDMyMTk4LCA2MjA1NywgCisgICAgNjIwNjIsIDYyMDY3LCAzMjI1MywgMzIyNTksIDYyMDcyLCA2MjA3NywgMzIyNjQsIDYyMDgyLCAyNzk0NCwgMzIyODYsIAorICAgIDMyMjkwLCA2MjA4NywgNjIwNjMsIDYyMDkxLCA2MjA5OSwgNjIxMDUsIDYyMTEzLCA2MjEyMCwgNjIxMjYsIDYyMTM2LCAKKyAgICA2MjE0MiwgNjIxNDksIDEwNjMxLCAzMjMwNCwgNjIxNTUsIDYyMTY4LCA2MjE3NywgNjIxODMsIDYyMTkyLCA2MjE5OCwgCisgICAgMjM1MDIsIDYyMjA1LCA2MjIxMiwgNjIyMjIsIDMyMjU0LCA2MjIyNSwgNjIyMzIsIDYyMjM3LCA2MjI0MSwgNjIyNDUsIAorICAgIDYyMjUwLCA2MTIwLCA2MjI1NCwgNjIyNTksIDYyMjY0LCAzNDY5MiwgMzQ2OTcsIDYyMjY4LCAzNDcxMSwgNjIyNzMsIAorICAgIDM0NzE2LCA2MjI3OCwgNjIyODQsIDM0NzI4LCAzNDczNCwgMzQ3NDAsIDYyMjg5LCA2MjI5NSwgMjI1MjksIDYyMzA2LCAKKyAgICA2MjMwOSwgNjIzMjEsIDYyMzI5LCAzMjMyNywgNjIzMzMsIDYyMzQyLCA2MjM1MiwgNjIzNjEsIDMyMzM3LCA2MjM2NiwgCisgICAgNjIzNzMsIDYyMzgyLCA2MjM4OCwgNjIzOTYsIDYyNDAzLCA2MDk1LCA0Mzk3LCA2MjQwOCwgMzIyNjUsIDYyNDE0LCAKKyAgICA2MjQxNywgNjI0MjMsIDYyNDMwLCA2MjQzNSwgNjI0NDAsIDIzNDEyLCA2MjQ0NCwgNjI0NTAsIDYyNDU2LCA2MjQ2MSwgCisgICAgNjI0NjYsIDYyNDcwLCA2MjQ3NiwgNjI0ODIsIDMzNDY1LCA4NjMsIDM1NzA1LCAzNjYyNiwgMzY2MzIsIDMyMzczLCAKKyAgICA2MjQ4NywgNjI0OTEsIDYyNDk1LCA2MjQ5OCwgNjI1MTEsIDYyNTE3LCA2MjUyMSwgNjI1MjQsIDYyNTI5LCAzMzc2OCwgCisgICAgNjI1MzMsIDMxMDk4LCAyMTI4MSwgNjI1MzksIDYwMjQsIDYwMzIsIDkwNzUsIDYyNTQyLCA2MjU0NywgNjI1NTIsIDYyNTU3LCAKKyAgICA2MjU2MiwgNjI1NjcsIDYyNTcyLCA2MjU3NywgNjI1ODIsIDYyNTg3LCA2MjU5MywgNjI1OTgsIDYyNjAzLCA2MjYwOSwgCisgICAgNjI2MTQsIDYyNjE5LCA2MjYyNCwgNjI2MjksIDYyNjM0LCA2MjYzOSwgNjI2NDUsIDYyNjUwLCA2MjY1NiwgNjI2NjEsIAorICAgIDYyNjY2LCA2MjY3MSwgNjI2NzYsIDYyNjgxLCA2MjY4NiwgNjI2OTEsIDYyNjk2LCA2MjcwMSwgNjI3MDYsIDYyNzEyLCAKKyAgICA2MjcxNywgNjI3MjIsIDYyNzI3LCA2MjczMiwgNjI3MzcsIDYyNzQyLCA2Mjc0OCwgNjI3NTMsIDYyNzU4LCA2Mjc2MywgCisgICAgNjI3NjgsIDYyNzczLCA2Mjc3OCwgNjI3ODMsIDYyNzg4LCA2Mjc5MywgNjI3OTksIDYyODA0LCA2MjgwOSwgNjI4MTQsIAorICAgIDYyODE5LCA2MjgyNSwgNjI4MzEsIDYyODM2LCA2Mjg0MiwgNjI4NDcsIDYyODUyLCA2Mjg1NywgNjI4NjIsIDYyODY3LCAKKyAgICAxNTEzLCAyNDUsIDYyODcyLCA2Mjg3NiwgNjI4ODAsIDYyODg0LCAyNTEyMywgNjI4ODgsIDYyODkyLCA2Mjg5NywgNjI5MDEsIAorICAgIDYyOTA2LCA2MjkxMCwgNjI5MTUsIDYyOTIwLCA2MjkyNSwgNjI5MjksIDYyOTMzLCA2MjkzOCwgNjI5NDIsIDEzMzY5LCAKKyAgICA2Mjk0NywgNjI5NTEsIDYyOTU4LCA2Mjk2OCwgMTUyMDAsIDYyOTc3LCA2Mjk4NiwgNjI5OTAsIDYyOTk1LCA2MzAwMCwgCisgICAgNjMwMDQsIDI0OTE0LCAzMDE5LCA2MzAwOCwgMTczNTcsIDYzMDE0LCA2MzAyMywgNjMwMzEsIDYzMDM3LCA2MzA0OSwgCisgICAgNjMwNjEsIDYzMDY1LCA2MzA3MCwgNjMwNzQsIDYzMDgwLCA2MzA4NiwgNjMwOTEsIDYzMTAxLCA2MzExMSwgNjMxMTcsIAorICAgIDYzMTIyLCA2MzEyNiwgNjMxMzEsIDYzMTM3LCA2MzE0NiwgNjMxNTUsIDYzMTYzLCAxNTU1NCwgNjMxNjcsIDYzMTc2LCAKKyAgICA2MzE4NCwgNjMxOTYsIDYzMjA3LCA2MzIxOCwgNjMyMjcsIDYzMjMxLCA2MzI0MCwgNjMyNTAsIDYzMjU4LCA2MzI2NCwgCisgICAgNjMyNjksIDYzMjc1LCA2MzI4MCwgOTgsIDMwOTA3LCA2MzI5MSwgMjYyNTYsIDI2MjY2LCA2MzI5NywgNjMzMDQsIDYzMzEwLCAKKyAgICA2MzMxNCwgNjMzMjQsIDYzMzM1LCA2MzM0MywgNjMzNTIsIDYzMzU3LCA2MzM2MiwgNjMzNjYsIDE3MzExLCA2MzM3NCwgCisgICAgNjMzNzgsIDYzMzg0LCA2MzM5NCwgNjM0MDEsIDYzNDA3LCAzNDc5MSwgNjM0MTMsIDYzNDE1LCA2MzQxOCwgNjM0MjIsIAorICAgIDYzNDMyLCA2MzQzOCwgNjM0NDUsIDEzMzE1LCA2MzQ1MiwgNjM0NTgsIDYzNDY3LCA2MzQ3NiwgNjM0ODIsIDYzNDg4LCAKKyAgICA2MzQ5NCwgNjM0OTksIDYzNTA2LCA2MzUxMywgNjM1MTksIDYzNTMyLCA2MzU0MSwgNjM1NTAsIDYzNTU1LCA2MzU1OSwgCisgICAgNjM1NjUsIDYzNTcyLCA2MzU3OSwgNjM1ODYsIDYzNTkzLCA2MzYwMCwgNjM2MDUsIDYzNjA5LCA2MzYxMywgNjM2MTYsIAorICAgIDYzNjI2LCA2MzYzMCwgNjM2NDIsIDYzNjUxLCA2MzY1NSwgNjM2NjAsIDYzNjY0LCA2MzY3MCwgNjM2NzUsIDYzNjgyLCAKKyAgICA2MzY5MSwgNjM2OTksIDYzNzA3LCA2MzcxMiwgNjM3MTYsIDYzNzIxLCA2MzcyNiwgNjM3MzYsIDYzNzQ0LCA2Mzc0OSwgCisgICAgNjM3NTMsIDYzNzU3LCA2Mzc2MywgNjM3NzUsIDYzNzgzLCA2Mzc5MywgNjM4MDAsIDYzODA2LCA2MzgxMSwgNjM4MTUsIAorICAgIDYzODE5LCA2MzgyMywgNjM4MzIsIDYzODQxLCA2Mzg1MCwgNjM4NTYsIDYzODYyLCA2Mzg2OCwgNjM4NzMsIDYzODgwLCAKKyAgICA2Mzg4NiwgNjM4OTQsIDYzOTAxLCAxMjQ2MywgNjM5MDcsIDYzOTEzLCA2MzkxNywgMTQyMzgsIDYzOTIxLCA2MzkyNiwgCisgICAgNjM5MzYsIDYzOTQ1LCA2Mzk1MSwgNjM5NTcsIDYzOTY1LCA2Mzk3MiwgNjM5NzYsIDYzOTgwLCA2Mzk4NiwgNjM5OTQsIAorICAgIDY0MDAxLCA2NDAwNywgNjQwMTgsIDY0MDIyLCA2NDAyNiwgNjQwMzAsIDY0MDMzLCA2NDAzOSwgNjQwNDQsIDY0MDQ4LCAKKyAgICA2NDA1MiwgNjQwNjEsIDY0MDY5LCA2NDA3NiwgNjQwODIsIDY0MDg5LCAyNDAzNiwgMzg4NDgsIDY0MDk0LCA2NDEwMiwgCisgICAgNjQxMDYsIDY0MTEwLCA2NDExMywgNjQxMjEsIDY0MTI4LCA2NDEzNCwgNjQxNDMsIDY0MTUxLCA2NDE1NywgNjQxNjIsIAorICAgIDY0MTY2LCA2NDE3MSwgNjQxNzUsIDY0MTc5LCA2NDE4NCwgNjQxOTMsIDY0MTk3LCA2NDIwNCwgNjQyMTEsIDY0MjE3LCAKKyAgICA2NDIyNSwgNjQyMzEsIDY0MjQyLCA2NDI1MCwgNjQyNTYsIDIyNjU5LCA2NDI2NSwgNjQyNzIsIDY0Mjc5LCA2NDI4NiwgCisgICAgNjQyOTMsIDY0MzAwLCA0MTg3NywgMTMxNTMsIDY0MzA3LCA2NDMxNCwgNjQzMTksIDM0ODI3LCA2MjE3LCA2NDMyNSwgCisgICAgNjQzMzAsIDY0MzM1LCA2NDM0MSwgNjQzNDcsIDY0MzUzLCA2NDM1OCwgNjQzNjMsIDY0MzY4LCA2NDM3MywgNjQzNzksIAorICAgIDY0Mzg0LCA2NDM5MCwgNjQzOTUsIDY0NDAxLCA2NDQwNiwgNjQ0MTEsIDY0NDE2LCA2NDQyMSwgNjQ0MjYsIDY0NDMxLCAKKyAgICA2NDQzNiwgNjQ0NDIsIDY0NDQ3LCA2NDQ1MywgNjQ0NTgsIDY0NDYzLCA2NDQ2OCwgNjQ0NzMsIDY0NDc4LCA2NDQ4MywgCisgICAgNjQ0ODksIDY0NDk0LCA2NDQ5OSwgNjQ1MDQsIDY0NTA5LCA2NDUxNCwgNjQ1MTksIDY0NTI0LCA2NDUyOSwgNjQ1MzQsIAorICAgIDY0NTM5LCA2NDU0NSwgNjQ1NTAsIDY0NTU1LCA2NDU2MCwgNjQ1NjUsIDY0NTcwLCA2NDU3NSwgNjQ1ODAsIDY0NTg1LCAKKyAgICA2NDU5MSwgNjQ1OTYsIDY0NjAxLCA2NDYwNiwgNjQ2MTEsIDY0NjE2LCA2NDYyMSwgNjQ2MjYsIDY0NjMxLCA2NDYzNiwgCisgICAgNjQ2NDEsIDY0NjQ2LCA2NDY1MSwgNjQ2NTcsIDE4MzQsIDIyNCwgMzc0MjQsIDY0NjYyLCA2NDY2NSwgNjQ2NzAsIDY0Njc0LCAKKyAgICA2NDY3NywgNjQ2ODIsIDYzNzAzLCA2NDY5MywgNjQ3MDMsIDY0NzEwLCA2NDcyNiwgNjQ3MzUsIDY0NzQ1LCA2NDc1NSwgCisgICAgNjQ3NjMsIDY0Nzc3LCA2NDc4NSwgNjQ3ODksIDY0NzkyLCA2NDc5OSwgNjQ4MDUsIDY0ODE2LCA2NDgyOCwgNjQ4MzksIAorICAgIDY0ODQ4LCA2NDg1NSwgMTI5NywgMjMzMDEsIDY0ODY1LCAyNTkwLCA2NDg2OSwgNjQ4NzgsIDExMzMsIDE3Mjg0LCAzODA2MSwgCisgICAgNjQ4ODYsIDY0ODk0LCA2NDkwOCwgNjQ5MjEsIDY0OTI1LCA2NDkzMCwgNjQ5MzUsIDY0OTQwLCA2NDk0NiwgNjQ5NTIsIAorICAgIDY0OTU3LCA4NTM1LCA2NDk2MiwgNjQ5NjYsIDY0OTc0LCAxMTA0OCwgNjQ5NzksIDY0OTg1LCA2NDk5NCwgMTcyMSwgCisgICAgMTEwNjAsIDczNiwgNjQ5OTgsIDY1MDA3LCA2NTAxNywgMjcwMjAsIDY1MDI2LCA2NTAzMiwgMTY4NTYsIDY1MDM4LCAKKyAgICA2NTA0MiwgMzk2NCwgMTEzOTEsIDY1MDQ4LCA2NTA1NSwgNjA2NjMsIDY1MDU5LCA2NTA2MywgMzk4OCwgMTg5LCAxNDE1MywgCisgICAgNjUwNjksIDY1MDgxLCA2NTA4NSwgNjUwOTEsIDI3NzM3LCA2NTA5NSwgMTEzNzksIDI3MzAsIDQsIDY1MTAwLCA2NTExMCwgCisgICAgNjUxMTYsIDY1MTI3LCA2NTEzNCwgNjUxNDAsIDY1MTQ2LCA2NTE1NCwgNjUxNjEsIDY1MTY3LCA2NTE3NywgNjUxODcsIAorICAgIDY1MTk3LCAyMzQ4OSwgMTMwOSwgNjUyMDYsIDY1MjEwLCA2NTIxNCwgNjUyMjAsIDY1MjI0LCAyNzUzLCAyNzU5LCA4NTMyLCAKKyAgICAyMjY0LCA2NTIyOCwgNjUyMzIsIDY1MjQxLCA2NTI0OSwgNjUyNjAsIDY1MjY4LCA2NTI3NiwgNjUyODIsIDY1Mjg3LCAKKyAgICA2NTI5OCwgNjUzMDksIDY1MzE3LCA2NTMyMywgOTY5NCwgNjUzMjgsIDY1MzM2LCA2NTM0MCwgNjUzNDQsIDY1MzQ4LCAKKyAgICA2NTM2MCwgMjgxMjIsIDY1MzY3LCA2NTM3NywgNjUzODMsIDY1Mzg5LCA5Nzk2LCA2NTM5OSwgNjU0MTAsIDY1NDIwLCAKKyAgICA2NTQyOSwgNjU0MzMsIDY1NDQwLCAxMTM1LCAxMTcwLCA2NTQ1MCwgNjU0NTUsIDY1NDYzLCA2NTQ3MSwgNjU0ODIsIAorICAgIDY1NDg5LCA2NTUwMywgMTQwODIsIDM5MywgNjU1MTMsIDY1NTE3LCA2NTUyNSwgNjU1MzQsIDY1NTQyLCA2NTU0OCwgCisgICAgNjU1NjIsIDY1NTY5LCA2NTU3NSwgNjU1ODQsIDY1NTkxLCA2NTYwMSwgNjU2MDksIDM4MTIsIDE1NiwgNjU2MTcsIDY1NjI4LCAKKyAgICA2NTYzMiwgNjU2NDQsIDI3OTM1LCAxNjEsIDY1NjUwLCA2NTY1NSwgNjU2NTksIDY1NjY2LCA2NTY3MiwgNjU2ODAsIAorICAgIDY1Njg3LCA4ODE4LCA2NTY5NCwgNjU3MDMsIDY1NzExLCAzODc4LCA2NTcyNCwgODE5OSwgNjU3MjgsIDI3OTgsIDQ1MCwgCisgICAgNjU3MzMsIDY1NzQ2LCA2NTc1MSwgMTgzMywgNjY4LCA2NTc1NSwgMzg5NSwgNjU3NjMsIDY1NzY5LCA2NTc3MywgOTMxLCAKKyAgICA2NTc4MywgNjU3OTIsIDY1Nzk3LCAxNDkyMiwgMTQ5MjksIDQ1MjM5LCA2NTgwMSwgMzgyMiwgMTMwNDEsIDY1ODA5LCAKKyAgICA2NTgxNiwgMjM1NDUsIDY1ODIwLCA2NTgyNywgNjU4MzMsIDY1ODM4LCA2NTg0MywgMTQ5NDIsIDM3MiwgNjU4NDgsIAorICAgIDY1ODYwLCA2NTg2NiwgNjU4NzQsIDI4MTAsIDE3NTMsIDY1ODgyLCA2NTg4NCwgNjU4ODksIDY1ODk0LCA2NTg5OSwgCisgICAgNjU5MDUsIDY1OTEwLCA2NTkxNSwgNjU5MjAsIDY1OTI1LCA2NTkzMCwgNjU5MzUsIDY1OTQxLCA2NTk0NiwgNjU5NTEsIAorICAgIDY1OTU2LCA2NTk2MSwgNjU5NjYsIDY1OTcxLCA2NTk3NiwgNjU5ODEsIDY1OTg3LCA2NTk5MiwgNjU5OTcsIDY2MDAyLCAKKyAgICA2NjAwOCwgNjYwMTMsIDY2MDE5LCA2NjAyNCwgNjYwMjksIDY2MDM0LCA2NjAzOSwgNjYwNDQsIDY2MDQ5LCA2NjA1NCwgCisgICAgNjYwNjAsIDY2MDY1LCA2NjA3MSwgNjYwNzYsIDY2MDgxLCA2NjA4NiwgNjYwOTEsIDY2MDk2LCA2NjEwMSwgNjYxMDYsIAorICAgIDY2MTExLCA2NjExNywgNjYxMjIsIDY2MTI3LCA2NjEzMiwgNjYxMzYsIDY2MTQwLCA2NjE0NSwgNjYxNDksIDY2MTU0LCAKKyAgICA2NjE1OSwgNjYxNjUsIDY2MTcwLCA2NjE3NCwgNjYxNzksIDY2MTgzLCA2NjE4NiwgNjYxODgsIDY2MTkyLCA2NjE5NSwgCisgICAgNjYyMDAsIDY2MjA0LCA2NjIwOCwgNjYyMTIsIDY2MjE2LCA2NjIyNSwgNjYyMjksIDMyNTMxLCA2NjIzMiwgMzI1MzYsIAorICAgIDY2MjM5LCA2NjI0NCwgMzI1NDEsIDY2MjUzLCA2NjI2MiwgMzI1NDcsIDY2MjY3LCAzMjU1MiwgNjYyNzYsIDY2MjgxLCAKKyAgICAxMTU3OCwgNjYyODUsIDY2MjkwLCA2NjI5NSwgMzI1NTcsIDY2Mjk5LCA0MDIwMywgNjYzMDMsIDY2MzA2LCA2NjMxMCwgCisgICAgODIxMSwgNjYzMTYsIDY2MzIxLCA2NjMyNSwgMzcwNSwgMzI1NjIsIDY2MzI4LCA2NjMzMiwgNjYzMzUsIDY2MzQwLCAKKyAgICA2NjM0NCwgNjYzNTAsIDY2MzU4LCA2NjM3MSwgNjYzODAsIDY2Mzg2LCA2NjM5MSwgNjYzOTcsIDY2NDAxLCA2NjQwNywgCisgICAgNjY0MTUsIDY2NDIwLCA2NjQyNCwgNjY0MzEsIDY2NDM3LCA2NjQ0NSwgNjY0NTQsIDY2NDYyLCAzMjU2NSwgNjY0NjksIAorICAgIDY2NDc5LCA2NjQ4OCwgNjY1MDEsIDY2NTA2LCA2NjUxMSwgNjY1MjAsIDY2NTI2LCA2NjUzMywgNjY1NDQsIDY2NTU2LCAKKyAgICA2NjU2MywgNjY1NzIsIDY2NTgxLCA2NjU5MCwgNjY1OTcsIDY2NjAzLCA2NjYxMCwgNjY2MTgsIDY2NjI1LCA2NjYzMywgCisgICAgNjY2NDIsIDY2NjUwLCA2NjY1NywgNjY2NjUsIDY2Njc0LCA2NjY4MiwgNjY2OTEsIDY2NzAxLCA2NjcxMCwgNjY3MTgsIAorICAgIDY2NzI1LCA2NjczMywgNjY3NDIsIDY2NzUwLCA2Njc1OSwgNjY3NjksIDY2Nzc4LCA2Njc4NiwgNjY3OTUsIDY2ODA1LCAKKyAgICA2NjgxNCwgNjY4MjQsIDY2ODM1LCA2Njg0NSwgNjY4NTQsIDY2ODYyLCA2Njg2OSwgNjY4NzcsIDY2ODg2LCA2Njg5NCwgCisgICAgNjY5MDMsIDY2OTEzLCA2NjkyMiwgNjY5MzAsIDY2OTM5LCA2Njk0OSwgNjY5NTgsIDY2OTY4LCA2Njk3OSwgNjY5ODksIAorICAgIDY2OTk4LCA2NzAwNiwgNjcwMTUsIDY3MDI1LCA2NzAzNCwgNjcwNDQsIDY3MDU1LCA2NzA2NSwgNjcwNzQsIDY3MDg0LCAKKyAgICA2NzA5NSwgNjcxMDUsIDY3MTE2LCA2NzEyOCwgNjcxMzksIDY3MTQ5LCA2NzE1OCwgNjcxNjYsIDY3MTczLCA2NzE4MSwgCisgICAgNjcxOTAsIDY3MTk4LCA2NzIwNywgNjcyMTcsIDY3MjI2LCA2NzIzNCwgNjcyNDMsIDY3MjUzLCA2NzI2MiwgNjcyNzIsIAorICAgIDY3MjgzLCA2NzI5MywgNjczMDIsIDY3MzEwLCA2NzMxOSwgNjczMjksIDY3MzM4LCA2NzM0OCwgNjczNTksIDY3MzY5LCAKKyAgICA2NzM3OCwgNjczODgsIDY3Mzk5LCA2NzQwOSwgNjc0MjAsIDY3NDMyLCA2NzQ0MywgNjc0NTMsIDY3NDYyLCA2NzQ3MCwgCisgICAgNjc0NzksIDY3NDg5LCA2NzQ5OCwgNjc1MDgsIDY3NTE5LCA2NzUyOSwgNjc1MzgsIDY3NTQ4LCA2NzU1OSwgNjc1NjksIAorICAgIDY3NTgwLCA2NzU5MiwgNjc2MDMsIDY3NjEzLCA2NzYyMiwgNjc2MzIsIDY3NjQzLCA2NzY1MywgNjc2NjQsIDY3Njc2LCAKKyAgICA2NzY4NywgNjc2OTcsIDY3NzA4LCA2NzcyMCwgNjc3MzEsIDY3NzQzLCA2Nzc1NiwgNjc3NjgsIDY3Nzc5LCA2Nzc4OSwgCisgICAgNjc3OTgsIDY3ODA2LCA2NzgxMywgNjc4MjEsIDY3ODMwLCA2NzgzOCwgNjc4NDcsIDY3ODU3LCA2Nzg2NiwgNjc4NzQsIAorICAgIDY3ODgzLCA2Nzg5MywgNjc5MDIsIDY3OTEyLCA2NzkyMywgNjc5MzMsIDY3OTQyLCA2Nzk1MCwgNjc5NTksIDY3OTY5LCAKKyAgICA2Nzk3OCwgNjc5ODgsIDY3OTk5LCA2ODAwOSwgNjgwMTgsIDY4MDI4LCA2ODAzOSwgNjgwNDksIDY4MDYwLCA2ODA3MiwgCisgICAgNjgwODMsIDY4MDkzLCA2ODEwMiwgNjgxMTAsIDY4MTE5LCA2ODEyOSwgNjgxMzgsIDY4MTQ4LCA2ODE1OSwgNjgxNjksIAorICAgIDY4MTc4LCA2ODE4OCwgNjgxOTksIDY4MjA5LCA2ODIyMCwgNjgyMzIsIDY4MjQzLCA2ODI1MywgNjgyNjIsIDY4MjcyLCAKKyAgICA2ODI4MywgNjgyOTMsIDY4MzA0LCA2ODMxNiwgNjgzMjcsIDY4MzM3LCA2ODM0OCwgNjgzNjAsIDY4MzcxLCA2ODM4MywgCisgICAgNjgzOTYsIDY4NDA4LCA2ODQxOSwgNjg0MjksIDY4NDM4LCA2ODQ0NiwgNjg0NTUsIDY4NDY1LCA2ODQ3NCwgNjg0ODQsIAorICAgIDY4NDk1LCA2ODUwNSwgNjg1MTQsIDY4NTI0LCA2ODUzNSwgNjg1NDUsIDY4NTU2LCA2ODU2OCwgNjg1NzksIDY4NTg5LCAKKyAgICA2ODU5OCwgNjg2MDgsIDY4NjE5LCA2ODYyOSwgNjg2NDAsIDY4NjUyLCA2ODY2MywgNjg2NzMsIDY4Njg0LCA2ODY5NiwgCisgICAgNjg3MDcsIDY4NzE5LCA2ODczMiwgNjg3NDQsIDY4NzU1LCA2ODc2NSwgNjg3NzQsIDY4Nzg0LCA2ODc5NSwgNjg4MDUsIAorICAgIDY4ODE2LCA2ODgyOCwgNjg4MzksIDY4ODQ5LCA2ODg2MCwgNjg4NzIsIDY4ODgzLCA2ODg5NSwgNjg5MDgsIDY4OTIwLCAKKyAgICA2ODkzMSwgNjg5NDEsIDY4OTUyLCA2ODk2NCwgNjg5NzUsIDY4OTg3LCA2OTAwMCwgNjkwMTIsIDY5MDIzLCA2OTAzNSwgCisgICAgNjkwNDgsIDY5MDYwLCA2OTA3MywgNjkwODcsIDY5MTAwLCA2OTExMiwgNjkxMjMsIDY5MTMzLCA2OTE0MiwgNjkxNTAsIAorICAgIDY5MTU3LCA2OTE2MiwgODA1OCwgNjkxNjksIDMyNTc1LCA2OTE3NCwgNjkxNzksIDMyNTgwLCA2OTE4NSwgMjA5MjMsIAorICAgIDMyNTg1LCA2OTE5MCwgNjkxOTYsIDY5MjA0LCA2OTIxMCwgNjkyMTYsIDY5MjIzLCA2OTIzMCwgNjkyMzUsIDY5MjM5LCAKKyAgICA2OTI0MiwgNjkyNDYsIDY5MjU1LCA2OTI2MSwgNjkyNzMsIDY5Mjg0LCA2OTI4OCwgMzA4MSwgODAzMywgNjkyOTMsIAorICAgIDY5Mjk2LCA2OTI5OCwgNjkzMDIsIDY5MzA2LCA2OTMxMCwgNjkzMTYsIDY5MzIxLCAyNTkzNCwgNjkzMjYsIDY5MzMwLCAKKyAgICA2OTMzMywgNjkzMzgsIDY5MzQyLCA2OTM0OSwgNjkzNTUsIDY5MzU5LCA2MTcwLCA2OTM2MywgMzI2MDIsIDY5MzY4LCAKKyAgICA2OTM3NSwgNjkzODQsIDY5MzkyLCA2OTQwMywgNjk0MTEsIDY5NDE5LCA2OTQyNiwgNjk0MzMsIDY5NDM5LCA2OTQ1MCwgCisgICAgMzI2MDcsIDY5NDU1LCA2OTQ2NiwgNjk0NzgsIDY5NDg2LCA2OTQ5NywgNjk1MDYsIDY5NTE3LCA2OTUyMiwgNjk1MzAsIAorICAgIDI1NTYsIDY5NTM1LCAzNDI3NywgNjk1NDgsIDY5NTUyLCA2OTU2NCwgNjk1NzIsIDY5NTc3LCA2OTU4NSwgMTc0NzksIAorICAgIDY5NTk2LCA2OTYwMiwgNjk2MDksIDY5NjE3LCA2OTYyMywgMzI2MTcsIDY5NjI4LCAzOTE0LCA1ODIyNCwgNjk2MzUsIAorICAgIDY5NjM4LCA2OTY0NiwgNjk2NTksIDY5NjcyLCA2OTY4NSwgNjk2OTgsIDY5NzA1LCA2OTcxNiwgNjk3MjUsIDQxNjk0LCAKKyAgICA0MTY5OSwgNjk3MzAsIDY5NzM0LCA2OTc0MiwgNjk3NDksIDY5NzU4LCA2OTc2NiwgNjk3NzIsIDY5NzgxLCA2OTc4OSwgCisgICAgNjk3OTcsIDY5ODAxLCA2OTgxMCwgNjk4MTksIDY5ODI5LCA2OTg0MiwgNjk4NTUsIDY5ODY1LCAzMjYyMiwgNjk4NzEsIAorICAgIDY5ODc4LCA2OTg4NCwgMzI2MjgsIDY5ODg5LCA2OTg5MiwgNjk4OTYsIDY5OTA0LCA2OTkxMywgNDE0MzIsIDY5OTIxLCAKKyAgICA2OTkzMCwgNjk5MzgsIDY5OTQ1LCA2OTk1MywgNjk5NjMsIDY5OTcyLCA2OTk4MSwgNjk5OTAsIDY5OTk4LCA3MDAwOSwgCisgICAgNzAwMTksIDkzNjYsIDIxNTYxLCA3MDAyOCwgNzAwMzMsIDcwMDM4LCA3MDA0MiwgNzAwNDYsIDcwMDUxLCA3MDA1NywgCisgICAgNzAwNjIsIDcwMDY3LCA3MDA3MywgNzAwNzgsIDcwMDgzLCAyMTUyNiwgNzAwODgsIDcwMDk1LCA3MDEwMywgNzAxMTEsIAorICAgIDcwMTE2LCA3MDEyMywgNzAxMzAsIDcwMTM1LCA3MDEzOSwgNzAxNDMsIDcwMTUxLCA3MDE1OSwgMzI2NDUsIDcwMTY1LCAKKyAgICA3MDE3MSwgNzAxODMsIDcwMTg5LCA3MDE5MywgNzAyMDAsIDcwMjA1LCA3MDIxNiwgNzAyMjYsIDcwMjM2LCA3MDI0OCwgCisgICAgNzAyNTQsIDcwMjY0LCA3MDI3NCwgMzI2NzIsIDcwMjgzLCA3MDI5MiwgNzAyOTgsIDcwMzEwLCA3MDMyMSwgNzAzMjgsIAorICAgIDcwMzMzLCA3MDMzNywgNzAzNDUsIDcwMzUxLCA3MDM1NiwgNzAzNjEsIDcwMzY4LCA3MDM3NiwgNzAzODgsIDcwMzk4LCAKKyAgICA3MDQwNywgNzA0MTYsIDcwNDIzLCAzNDEzOSwgMjM4NDEsIDcwNDI5LCA3MDQzNCwgNzA0MzgsIDcwNDQyLCA3MDQ0NywgCisgICAgNzA0NTMsIDcwNDY0LCA3MDQ3NywgNzA0ODIsIDcwNDg5LCAzMjY3NywgNzA0OTQsIDcwNTA2LCA3MDUxNSwgNzA1MjUsIAorICAgIDcwNTM2LCA3MDU0OSwgNzA1NTYsIDcwNTY1LCA3MDU3NCwgNzA1ODIsIDcwNTg3LCA3MDU5MywgMTA2NCwgNzA1OTgsIAorICAgIDcwNjAzLCA3MDYwOCwgNzA2MTMsIDcwNjE5LCA3MDYyNCwgNzA2MjksIDcwNjM1LCA3MDY0MSwgNzA2NDYsIDcwNjUwLCAKKyAgICA3MDY1NSwgNzA2NjAsIDcwNjY1LCA1ODczNiwgNzA2NzAsIDcwNjc1LCA3MDY4MCwgNzA2ODUsIDcwNjkxLCA3MDY5NywgCisgICAgNzA3MDIsIDcwNzA2LCA3MDcxMSwgNzA3MTYsIDcwNzIxLCA3MDcyNywgNzA3MzIsIDcwNzM4LCA3MDc0MywgNzA3NDgsIAorICAgIDcwNzUzLCA3MDc1OCwgNzA3NjIsIDcwNzY4LCA3MDc3MywgNzA3ODIsIDcwNzg3LCA3MDc5MiwgNzA3OTcsIDcwODAyLCAKKyAgICA3MDgwNiwgNzA4MTMsIDcwODE5LCAxNzEyOSwgMTcxMzYsIDcwODI0LCA3MDgyOCwgNzA4MzIsIDcwODM2LCA3MDg0MCwgCisgICAgNDU0OTQsIDcwODQ0LCA3MDc3NCwgNzA4NDYsIDcwODU2LCAzMjY4NiwgNzA4NTksIDcwODY4LCA3MDg3NCwgNjE0MywgCisgICAgMzI2OTEsIDcwODc4LCA3MDg4NCwgNzA4ODksIDcwODk1LCA3MDkwMCwgNzA5MDQsIDcwOTExLCA3MDkxNiwgNzA5MjYsIAorICAgIDcwOTM1LCA3MDkzOSwgNzA5NDUsIDcwOTUxLCA3MDk1NywgNzA5NjEsIDcwOTY5LCA3MDk3NiwgNzA5ODQsIDcwOTkyLCAKKyAgICAzMjY5NiwgNzA5OTksIDcxMDAyLCA3MTAwOSwgNzEwMTUsIDcxMDIwLCA3MTAyNCwgNzEwMzAsIDcxMDM3LCA3MTA0MiwgCisgICAgNzEwNDYsIDcxMDU1LCA3MTA2MywgNzEwNjksIDcxMDc0LCAzMjcwMSwgNzEwODEsIDcxMDg4LCA3MTA5NCwgNzEwOTksIAorICAgIDcxMTA1LCA3MTExMiwgNzExMTgsIDIxMjg4LCAyNzQ0NSwgNzExMjQsIDcxMTI5LCA3MTEzNSwgNzExNDcsIDcwODA3LCAKKyAgICA3MDgxNCwgMjE0NjQsIDcxMTU3LCA3MTE2MiwgNzExNjksIDcxMTc1LCA3MTE4MiwgNzExODgsIDcxMTk5LCA3MTIwNCwgCisgICAgOTExMCwgNzEyMTIsIDcxMjE1LCA3MTIyMSwgNzEyMjUsIDcxMjI5LCA3MTIzMiwgNzEyMzgsIDMyNDUwLCA2MTk0LCA5NjQsIAorICAgIDEzNDE5LCA3MTI0NSwgNzEyNTEsIDcxMjU3LCA3MTI2MywgNzEyNjksIDcxMjc1LCA3MTI4MSwgNzEyODcsIDcxMjkzLCAKKyAgICA3MTI5OCwgNzEzMDMsIDcxMzA4LCA3MTMxMywgNzEzMTgsIDcxMzIzLCA3MTMyOCwgNzEzMzMsIDcxMzM4LCA3MTM0MywgCisgICAgNzEzNDgsIDcxMzUzLCA3MTM1OCwgNzEzNjQsIDcxMzY5LCA3MTM3NCwgNzEzODAsIDcxMzg1LCA3MTM5MCwgNzEzOTYsIAorICAgIDcxNDAyLCA3MTQwOCwgNzE0MTQsIDcxNDIwLCA3MTQyNiwgNzE0MzIsIDcxNDM4LCA3MTQ0NCwgNzE0NDksIDcxNDU0LCAKKyAgICA3MTQ2MCwgNzE0NjUsIDcxNDcwLCA3MTQ3NiwgNzE0ODEsIDcxNDg2LCA3MTQ5MSwgNzE0OTYsIDcxNTAxLCA3MTUwNiwgCisgICAgNzE1MTEsIDcxNTE2LCA3MTUyMSwgNzE1MjYsIDcxNTMxLCA3MTUzNiwgNzE1NDIsIDcxNTQ3LCA3MTU1MiwgNzE1NTcsIAorICAgIDcxNTYzLCA3MTU2OCwgNzE1NzMsIDcxNTc4LCA3MTU4MywgNzE1ODksIDcxNTk0LCA3MTU5OSwgNzE2MDQsIDcxNjA5LCAKKyAgICA3MTYxNCwgNzE2MTksIDcxNjI0LCA3MTYyOSwgNzE2MzQsIDcxNjM5LCA3MTY0NCwgNzE2NDksIDcxNjU0LCA3MTY1OSwgCisgICAgNzE2NjQsIDcxNjY5LCA3MTY3NCwgNzE2NzksIDcxNjg0LCA3MTY5MCwgNzE2OTUsIDcxNzAwLCA3MTcwNSwgNzE3MTAsIAorICAgIDcxNzE1LCA3MTcyMCwgNzE3MjUsIDE4NjQsIDE0MiwgNzE3MzAsIDcxNzM0LCA3MTczOCwgNzE3NDMsIDcxNzUxLCA3MTc1NSwgCisgICAgNzE3NjIsIDcxNzcwLCA3MTc3NCwgNzE3ODcsIDcxNzk1LCA3MTc5OSwgNzE4MDIsIDcxODA3LCA3MTgxMSwgNzE4MTYsIAorICAgIDcxODIwLCA3MTgyOCwgNzE4MzIsIDIwOTMxLCA3MTgzNywgNzE4NDEsIDYwOTM3LCA3MTg0NSwgNzE4NDgsIDcxODU2LCAKKyAgICA3MTg2NCwgNzE4NzIsIDcxODc3LCA3MTg4NCwgNzE4OTAsIDcxODk2LCA3MTkwMSwgNzE5MDgsIDcxOTEzLCA3MTkyMSwgCisgICAgNjQ5MTMsIDcxOTI4LCA3MTkzMywgNzE5MzgsIDcxOTQyLCAxMTY0NSwgNzE5NDYsIDcxOTUxLCA3MTk1NiwgNzE5NjAsIAorICAgIDcxOTYzLCA3MTk2OSwgNzE5NzMsIDcxOTgzLCA3MTk5MiwgNzE5OTUsIDcxOTk5LCA3MjAwNiwgNzIwMTksIDcyMDI1LCAKKyAgICA3MjAzMywgNzIwNDQsIDcyMDU1LCA3MjA2NiwgNzIwNzcsIDcyMDg2LCA3MjA5MiwgNzIxMDEsIDcyMTA5LCA3MjExOSwgCisgICAgNzIxMzIsIDcyMTM5LCA3MjE1MCwgNzIxNTYsIDcyMTYxLCA3MjE2NiwgNzIxNzIsIDcyMTc4LCA3MjE4OCwgNzIxOTcsIAorICAgIDcwNDk2LCA3MjIwNSwgNzIyMTEsIDcyMjE5LCA3MjIyNSwgNzIyMzMsIDcyMjM2LCA3MjI0MCwgNzIyNDQsIDcyMjQ3LCAKKyAgICA3MjI1MywgNzIyNTksIDcyMjY3LCA3MjI3OSwgNzIyOTEsIDcyMjk4LCA3MjMwMiwgNzIzMTMsIDcyMzIxLCA3MjMyOCwgCisgICAgNzIzNDAsIDcyMzQ4LCA3MjM1NiwgNzIzNjMsIDcyMzY5LCA3MjM3OSwgNzIzODgsIDcyMzkzLCA3MjQwMywgNzI0MTIsIAorICAgIDQwNzU4LCA3MjQxOSwgNzI0MjMsIDcyNDI4LCA3MjQzNiwgNzI0NDMsIDcyNDQ5LCA3MjQ1MywgNzI0NjMsIDcyNDc0LCAKKyAgICA3MjQ4MiwgNzI0ODksIDcyNTAxLCA3MjUxMywgNzI1MjIsIDY5NTM4LCA3MjUyOSwgNzI1NDAsIDcyNTU0LCA3MjU2MiwgCisgICAgNzI1NzIsIDcyNTc5LCA3MjU4NywgNzI1OTksIDcyNjA4LCA3MjYxNiwgNzI2MjYsIDcyNjM3LCA3MjY0OSwgNzI2NTgsIAorICAgIDcyNjY4LCA3MjY3NSwgNzI2ODQsIDcyNjk5LCA3MjcwNywgNzI3MTcsIDcyNzI2LCA3MjczNCwgNzI3NDcsIDcyNzYyLCAKKyAgICA3Mjc2NiwgNzI3NzUsIDcyNzg3LCA3Mjc5OCwgNzI4MDksIDcyODIwLCA3MjgzMCwgNzI4NDEsIDcyODQ5LCA3Mjg1NSwgCisgICAgNzI4NjUsIDcyODczLCA3Mjg3OSwgMjkwMTQsIDcyODg0LCA3Mjg5MCwgNzI4OTUsIDcyOTAyLCA5NzA4LCAxNzQ5OSwgCisgICAgNzI5MDgsIDcyOTE3LCA3MjkyMiwgNzI5MjYsIDcyOTMzLCA3MjkzOSwgNzI5NDQsIDcyOTQ5LCA3Mjk1NywgNzI5NjUsIAorICAgIDcyOTY5LCA3Mjk3MiwgNzI5NzUsIDcyOTc3LCA3Mjk4NCwgNzI5OTAsIDczMDAxLCA3MzAwNiwgNzMwMTAsIDczMDE3LCAKKyAgICA3MzAyMywgNzMwMjgsIDczMDM2LCA2NTQxMiwgNjU0MjIsIDczMDQyLCA3MzA0OSwgNzMwNTksIDEwNjE4LCA3MzA2NiwgCisgICAgNzMwNzEsIDI5MjEwLCA3MzA4MCwgNzMwODUsIDczMDkyLCA3MzEwMiwgNzMxMTAsIDczMTE4LCA3MzEyNywgNzMxMzMsIAorICAgIDczMTM5LCA3MzE0NiwgNzMxNTMsIDczMTU4LCA3MzE2MiwgNzMxNzAsIDczMTc1LCA3MzE4MCwgNzMxODgsIDczMTk1LCAKKyAgICA3MzIwMCwgNzMyMDYsIDczMjA5LCA3MzIxMywgNzMyMjIsIDcxNzgyLCA3MzIzMSwgNzMyMzUsIDczMjQxLCA3MzI1MiwgCisgICAgNzMyNjIsIDE3NTA4LCA3MzI3MywgNzMyODEsIDE3NTIwLCA3MzI4OCwgNzMyOTIsIDczMzAxLCAyNzMzMSwgNzMzMDgsIAorICAgIDczMzEyLCA3MzMxNywgNzMzMzQsIDczMzQ2LCAxMDU3NiwgNzMzNTgsIDczMzYzLCA3MzM2OCwgNzMzNzMsIDIxMDA0LCAKKyAgICA3MzM3NywgNzMzODIsIDczMzg3LCA3MzM5MywgNzMzOTgsIDU4NDYsIDIxMDA4LCA3MzQwMywgNzM0MDgsIDczNDE0LCAKKyAgICA3MzQyMSwgNzM0MjYsIDczNDMxLCA3MzQzNywgNzM0NDMsIDczNDQ5LCA3MzQ1NCwgNzM0NjAsIDczNDY0LCA3MzQ3OCwgCisgICAgNzM0ODYsIDczNDk0LCA3MzUwMCwgNzM1MDUsIDczNTEyLCA3MzUyMiwgNzM1MzEsIDczNTM2LCA3MzU0MSwgNzM1NDksIAorICAgIDczNTU0LCA3MzU2MCwgNzM1NjUsIDczNTc0LCA1OTc5MywgNzM1NzksIDczNTgyLCA3MzYwMCwgNzM2MTksIDczNjMyLCAKKyAgICA3MzY0NiwgNzM2NjIsIDczNjY5LCA3MzY3NiwgNzM2ODIsIDczNjg5LCA3MzY5NCwgNzM3MDAsIDczNzA2LCA3MzcxNCwgCisgICAgNzM3MjAsIDczNzI1LCA3MzczMCwgNzM3NDYsIDEwNTg5LCA3Mzc2MCwgNzM3NjcsIDczNzc1LCA3Mzc4MSwgNzM3ODUsIAorICAgIDczNzg4LCA3Mzc5MywgNzM3OTgsIDczODA1LCA3MzgxMCwgNzM4MTksIDczODI0LCA3MzgzMCwgNzM4MzksIDczODQ4LCAKKyAgICA3Mzg1MywgNzM4NTcsIDczODY1LCA3Mzg3NCwgMTE2NzQsIDczODgzLCA3Mzg5MSwgNzM4OTYsIDczOTAyLCAxMTY4NSwgCisgICAgNzM5MDcsIDczOTEwLCA3MzkxNSwgNzM5MjUsIDczOTM0LCA3MzkzOSwgNzM5NDUsIDczOTUwLCA3Mzk1OCwgNzM5NjUsIAorICAgIDczOTc2LCA3Mzk4NiwgNzM5OTEsIDY0ODQxLCA3Mzk5NiwgNzQwMDIsIDc0MDA3LCA3NDAxNCwgNzQwMjMsIDc0MDMxLCAKKyAgICA3NDAzNywgNzQwNDMsIDc0MDUwLCA3NDA1NiwgNzQwNjAsIDE2OTU0LCAzMDU1LCA3NDA2NSwgNzQwNjksIDc0MDczLCAKKyAgICA3NDA3OSwgNzQwODgsIDc0MDk0LCA3NDEwMSwgNzQxMDUsIDc0MTI2LCA3NDE0OCwgNzQxNjQsIDc0MTgxLCA3NDIwMCwgCisgICAgNzQyMDksIDc0MjE5LCA3NDIyNiwgNzQyMzMsIDI3MjE4LCA3NDIzOSwgNzQyNDMsIDc0MjUxLCA3NDI2MywgNzQyNjksIAorICAgIDc0Mjc3LCA3NDI4MSwgNzQyODksIDc0Mjk2LCA3NDMwMCwgNzQzMDYsIDc0MzEyLCA3NDMxNywgMzU2MywgNDE4OTQsIAorICAgIDc0MzIzLCA3NDMyNywgNzQzMzEsIDc0MzM1LCA3NDM0MCwgNzQzNDUsIDc0MzUwLCA3NDM1NiwgNzQzNjIsIDc0MzY4LCAKKyAgICA3NDM3NSwgNzQzODEsIDc0Mzg4LCA3NDM5NCwgNzQ0MDAsIDc0NDA1LCA3NDQxMSwgNzQ0MTYsIDc0NDIwLCA3NDQyNSwgCisgICAgNzQ0MjksIDc0NDM0LCA0MTkwOSwgNzQ0MzgsIDc0NDQzLCA3NDQ1MSwgNzQ0NTUsIDc0NDYwLCA3NDQ2NywgNzQ0NzYsIAorICAgIDc0NDgyLCA3NDQ4NiwgNzQ0OTMsIDc0NDk3LCA3NDUwMCwgNzQ1MDcsIDc0NTE2LCA3NDUyMSwgNzQ1MjUsIDc0NTMzLCAKKyAgICA3NDU0MiwgNzQ1NDYsIDc0NTU0LCA3NDU2MCwgNzQ1NjUsIDc0NTcwLCA3NDU3NiwgNzQ1ODIsIDc0NTg3LCA3NDU5MSwgCisgICAgNzQ1OTcsIDc0NjAyLCA3NDYwNiwgNzQ2MTAsIDc0NjEzLCA3NDYxOCwgNzQ2MjYsIDc0NjM2LCA3NDY0MSwgMzkzOTQsIAorICAgIDc0NjQ5LCA3NDY2MSwgNzQ2NjUsIDc0NjcxLCA3NDY4MywgNzQ2OTQsIDc0NzAxLCA3NDcwNywgNzQ3MTQsIDc0NzI2LCAKKyAgICA3NDczMywgNzQ3MzksIDIxMDgyLCA3NDc0MywgNzQ3NDksIDc0NzU2LCA3NDc2MiwgNzQ3NjgsIDc0NzczLCA3NDc3OCwgCisgICAgNzQ3ODMsIDc0NzkyLCA3MDMzLCA3NDc5NywgMTY0MjAsIDc0ODAzLCA3NDgwNywgNzQ4MTEsIDc0ODE1LCA3NDgyMywgCisgICAgNzQ4MzIsIDc0ODM2LCA3NDg0MywgNzQ4NTIsIDc0ODY1LCA3NDg3MSwgNzQ0MzAsIDMwMDc0LCA3NDg3NiwgNzQ4NzgsIAorICAgIDc0ODgzLCA3NDg4OCwgNzQ4OTMsIDc0ODk4LCA3NDkwMywgNzQ5MDgsIDc0OTEzLCA3NDkxOCwgNzQ5MjMsIDc0OTI4LCAKKyAgICA3NDkzMywgNzQ5MzgsIDc0OTQzLCA3NDk0OCwgNzQ5NTQsIDc0OTU5LCA3NDk2NCwgNzQ5NjksIDc0OTc0LCA3NDk3OSwgCisgICAgNzQ5ODQsIDc0OTg5LCA3NDk5NCwgNzUwMDAsIDc1MDA2LCA3NTAxMiwgNzUwMTcsIDc1MDIyLCA3NTAzNCwgNzUwMzksIAorICAgIDE4NzAsIDQ5LCA3NTA0NCwgNzUwNDksIDMyNzI4LCA3NTA1MywgMzI3MzMsIDMyNzM4LCAzMjc0NCwgMzI3NDksIDc1MDU3LCAKKyAgICAzMjc1NCwgMjIwNzcsIDc1MDc5LCA3NTA4MywgNzUwODcsIDc1MDkyLCA3NTA5NiwgMzI3NTgsIDc1MTAwLCA3NTEwOCwgCisgICAgMzI3NjMsIDc1MTE1LCA3NTExOCwgNzUxMjMsIDc1MTI3LCA5NTQzLCA3NTEzNiwgMzI3NjgsIDIxOTM5LCA3NTEzOSwgCisgICAgNzUxNDMsIDE0MjgsIDc1MTQ4LCAzMjc3OSwgNzUxNTEsIDc1MTU2LCAyNTcyNywgMjU3MzcsIDM1MjQwLCA3NTE2MSwgCisgICAgNzUxNjYsIDc1MTcxLCA3NTE3NiwgNzUxODIsIDc1MTg3LCA3NTE5NiwgNzUyMDEsIDc1MjA4LCA3NTIxNCwgNzUyMTksIAorICAgIDc1MjI0LCA3NTIyOSwgNzUyMzksIDc1MjQ4LCA3NTI1MywgNzUyNjEsIDc1MjY1LCA3NTI3MywgMzI1OTMsIDM3Mjk1LCAKKyAgICA3NTI4MCwgNzUyODYsIDc1MjkxLCA3NTI5NiwgMTIwMTYsIDc1MzAxLCA3NTMwNywgNzUzMTIsIDc1MzE5LCA3NTMyNSwgCisgICAgNzUzMzAsIDc1MzM4LCA3NTM0OCwgNzUzNTgsIDc1MzY0LCA3NTM2OSwgNzUzNzUsIDE3NTMwLCA3NTM4MiwgMzYwNTUsIAorICAgIDc1Mzk1LCA3NTQwMCwgNzU0MDYsIDMwOTc1LCA3NTQxOSwgNzU0MjUsIDc1NDI5LCA3NTQzOCwgNzU0NDUsIDc1NDUxLCAKKyAgICA3NTQ1OSwgNzU0NjgsIDc1NDc1LCA3NTQ4MSwgNzU0ODQsIDc1NDg4LCAyNTg2OCwgNzU0OTIsIDc1NDk5LCA3NTUwNSwgCisgICAgNzU1MTMsIDc1NTE4LCAyMzk4NCwgNzU1MjQsIDc1NTI3LCA3NTUzNSwgNzU1NDMsIDc1NTU3LCA3NTU2NCwgNzU1NzAsIAorICAgIDc1NTc3LCA3NTU4MywgMzI3OTMsIDc1NTg3LCA3NTU5NCwgNzU2MDIsIDc1NjEwLCA3NTYxNiwgMzI3OTgsIDc1NjI0LCAKKyAgICA3NTYzMCwgNzU2MzUsIDc1NjQ1LCA3NTY1MSwgNzU2NjAsIDMwODEyLCAzNDY5OCwgNzU2NjgsIDc1NjczLCA3NTY3OCwgCisgICAgNzU2ODIsIDc1Njg3LCA3NTY5MSwgNzU2OTksIDE0OTE0LCAzOTQwNywgNzU3MDQsIDc1NzA5LCAzMjgwMywgNjIyMzksIAorICAgIDc1NzEzLCA3NTcxOCwgNzU3MjIsIDc1NzMxLCA3NTczOSwgNzU3NDUsIDc1NzUwLCA3NTc1NiwgNzU3NjMsIDc1NzY5LCAKKyAgICA3NTc3NCwgNzU3NzksIDc1Nzg4LCA3NTgwMCwgNzU4MTUsIDMzMDY1LCA3NTgyMSwgMTY1MzksIDMyODA3LCA3NTgyNSwgCisgICAgNzU4MzIsIDI0MDk0LCA3NTgzOCwgNzU4NDUsIDc1ODU0LCA3NTg2MSwgNzU4NzAsIDc1ODc2LCA3NTg4MSwgNzU4ODksIAorICAgIDc1ODk1LCAzMjgxNywgNzU5MDAsIDc1OTA5LCA3NDY4OSwgNzU5MTgsIDc1OTI1LCA3NTkzMSwgNzU5MzcsIDc1OTQ3LCAKKyAgICA3NTk1NSwgNzU5NjIsIDc1OTY2LCAzMjgyMiwgNzU5NjksIDMyODI4LCAzMjgzNCwgNzU5NzQsIDc1OTgyLCA3NTk5MCwgCisgICAgNzYwMDAsIDc2MDA5LCA3NjAxNywgNzYwMjQsIDc2MDM0LCAzMjgzOSwgNzYwMzgsIDc2MDQwLCA3NjA0NCwgNzYwNDksIAorICAgIDc2MDUzLCA3NjA1NywgNzYwNjMsIDc2MDY4LCA3NjA3MiwgNzYwODMsIDc2MDg4LCA3NjA5MywgMzA2MCwgNzYwOTcsIAorICAgIDc2MTA0LCA3NjEwOCwgNzYxMTcsIDc2MTI1LCA3NjEzMiwgNzYxMzcsIDc2MTQyLCA2MjI4NSwgNzYxNDYsIDc2MTQ5LCAKKyAgICA3NjE1NSwgNzYxNjMsIDc2MTY5LCA3NjE3MywgNzYxNzgsIDc2MTg1LCA3NjE5MCwgNzYxOTYsIDM0NzI5LCA3NjIwMSwgCisgICAgNzYyMDQsIDc2MjA5LCA3NjIxMywgNzYyMTgsIDc2MjIzLCA3NjIyNywgNzYyMzUsIDc2MjM5LCAyNTc0NiwgMjU3NTUsIAorICAgIDc2MjQ1LCA3NjI1MSwgNzYyNTcsIDc2MjYyLCA3NjI2NiwgNzYyNjksIDc2Mjc5LCA3NjI4OCwgNzYyOTMsIDc2Mjk5LCAKKyAgICA3NjMwNiwgNzYzMTIsIDc2MzE2LCA3NjMyNCwgNzYzMjksIDM0NzM1LCA3NjMzMywgNzYzNDEsIDc2MzQ3LCA3NjM1NCwgCisgICAgNzYzNTksIDc2MzYzLCA3NjM2OCwgNTg0MTAsIDM0NzQxLCA3NjM3NCwgNzYzNzksIDc2MzgzLCA3NjM4OCwgNzYzOTMsIAorICAgIDc2Mzk4LCA3NjQwMiwgNzY0MDcsIDc2NDEyLCA3NjQxOCwgNzY0MjMsIDc2NDI4LCA3NjQzNCwgNzY0NDAsIDc2NDQ1LCAKKyAgICA3NjQ0OSwgNzY0NTQsIDc2NDU5LCA3NjQ2NCwgNzY0NjgsIDI0MDkzLCA3NjQ3MywgNzY0NzgsIDc2NDg0LCA3NjQ5MCwgCisgICAgNzY0OTYsIDc2NTAxLCA3NjUwNSwgNzY1MTAsIDc2NTE1LCA3NjUyMCwgNzY1MjQsIDc2NTI5LCA3NjUzNCwgNzY1MzksIAorICAgIDc2NTQ0LCA3NjU0OCwgMzI4NDcsIDc2NTU2LCA3NjU2MCwgNzY1NjgsIDc2NTc2LCA3NjU4NywgNzY1OTIsIDc2NTk2LCAKKyAgICAyMjM5MSwgNzY2MDEsIDc2NjA3LCA3NjYxNywgNzY2MjQsIDc2NjI5LCA3NjYzOCwgNzY2NDMsIDc2NjQ3LCA3NjY1MiwgCisgICAgNzY2NjAsIDc2NjY4LCA3NjY3NSwgNjUwNzUsIDc2NjgxLCA3NjY4OSwgNzY2OTYsIDc2NzA3LCA3NjcxMywgNzY3MTcsIAorICAgIDc2NzIzLCAzMjg1NywgNzY3MjYsIDc2NzMzLCA3Njc0MSwgNzY3NDYsIDM5NTk4LCA3Njc1MCwgNzY3NTUsIDc2NzYyLCAKKyAgICA3Njc2NywgODk5MiwgNzY3NzEsIDc2Nzc5LCA3Njc4NiwgNzY3OTMsIDc2Nzk5LCA3NjgxMywgNjMzNDcsIDc2ODIxLCAKKyAgICA3NjgyNywgNzY4MzEsIDc2ODM0LCA3Njg0MiwgNzY4NDksIDc2ODU0LCA3Njg2NywgNzY4NzQsIDc2ODc4LCA3Njg4NSwgCisgICAgNzY4OTAsIDYwODMwLCA3Njg5NSwgNzY4OTgsIDc2OTA1LCA3NjkxMSwgNzY5MTUsIDc2OTIzLCA3NjkzMiwgNzY5NDIsIAorICAgIDc2OTUyLCA3Njk2MSwgNzY5NjksIDc2OTgwLCA3Njk4NSwgNzY5ODksIDc2OTk0LCA3Njk5OCwgMzUzNzEsIDc3MDA2LCAKKyAgICAyMTM1MSwgMzUzODAsIDc3MDExLCA3NzAxNiwgNzcwMjEsIDc3MDI2LCA3NzAzMSwgNzcwMzYsIDc3MDQxLCA3NzA0NSwgCisgICAgNzcwNTAsIDc3MDU1LCA3NzA2MCwgNzcwNjUsIDc3MDcwLCA3NzA3NSwgNzcwNzksIDc3MDg0LCA3NzA4OSwgNzcwOTMsIAorICAgIDc3MDk3LCA3NzEwMSwgNzcxMDUsIDc3MTEwLCA3NzExNSwgNzcxMTksIDc3MTI0LCA3NzEyOCwgNzcxMzIsIDc3MTM3LCAKKyAgICA3NzE0MiwgNzcxNDcsIDc3MTUyLCA3NzE1NiwgNzcxNjEsIDc3MTY2LCA3NzE3MCwgNzcxNzUsIDc3MTgwLCA3NzE4NSwgCisgICAgNzcxOTAsIDc3MTk1LCA3NzIwMCwgNzcyMDUsIDc3MjEwLCA3NzIxNSwgNzcyMjAsIDc3MjI1LCA3NzIzMCwgNzcyMzUsIAorICAgIDc3MjQwLCA3NzI0NSwgNzcyNTAsIDc3MjU1LCA3NzI2MCwgNzcyNjUsIDc3MjcwLCA3NzI3NCwgNzcyNzksIDc3Mjg0LCAKKyAgICA3NzI4OSwgNzcyOTQsIDc3Mjk5LCA3NzMwNCwgNzczMDksIDc3MzE0LCA3NzMxOSwgNzczMjQsIDc3MzI5LCA3NzMzMywgCisgICAgNzczMzgsIDc3MzQyLCA3NzM0NywgNzczNTIsIDc3MzU3LCA3NzM2MiwgNzczNjcsIDc3MzcyLCA3NzM3NywgNzczODIsIAorICAgIDc3Mzg3LCA3NzM5MSwgNzczOTUsIDc3NDAwLCA3NzQwNSwgNzc0MDksIDc3NDE0LCA3NzQxOSwgNzc0MjMsIDc3NDI4LCAKKyAgICA3NzQzMywgNzc0MzgsIDc3NDQzLCA3NzQ0NywgNzc0NTIsIDc3NDU3LCA3NzQ2MSwgNzc0NjYsIDc3NDcwLCA3NzQ3NCwgCisgICAgNzc0NzgsIDc3NDgyLCA3NzQ4NywgNzc0OTEsIDc3NDk1LCA3NzQ5OSwgNzc1MDMsIDc3NTA3LCA3NzUxMSwgNzc1MTUsIAorICAgIDc3NTE5LCA3NzUyMywgNzc1MjgsIDc3NTMzLCA3NzUzOCwgNzc1NDMsIDc3NTQ4LCA3NzU1MywgNzc1NTgsIDc3NTYzLCAKKyAgICA3NzU2OCwgNzc1NzMsIDc3NTc3LCA3NzU4MSwgNzc1ODUsIDc3NTg5LCA3NzU5MywgNzc1OTcsIDc3NjAyLCA3NzYwNiwgCisgICAgNzc2MTEsIDc3NjE1LCA3NzYyMCwgNzc2MjUsIDc3NjI5LCA3NzYzMywgNzc2MzgsIDc3NjQyLCA3NzY0NiwgNzc2NTAsIAorICAgIDc3NjU0LCA3NzY1OCwgNzc2NjIsIDc3NjY2LCA3NzY3MCwgNzc2NzQsIDc3Njc4LCA3NzY4MiwgNzc2ODYsIDc3NjkwLCAKKyAgICA3NzY5NCwgNzc2OTksIDc3NzA0LCA3NzcwOCwgNzc3MTIsIDc3NzE2LCA3NzcyMCwgNzc3MjQsIDc3NzI4LCA3NzczMywgCisgICAgNzc3MzcsIDc3NzQxLCA3Nzc0NSwgNzc3NDksIDc3NzUzLCA3Nzc1NywgNzc3NjIsIDc3NzY2LCA3Nzc3MSwgNzc3NzUsIAorICAgIDc3Nzc5LCA3Nzc4MywgNzc3ODcsIDc3NzkxLCA3Nzc5NSwgNzc3OTksIDc3ODAzLCA3NzgwNywgNzc4MTEsIDc3ODE1LCAKKyAgICA3NzgyMCwgNzc4MjQsIDc3ODI4LCA3NzgzMiwgNzc4MzYsIDc3ODQwLCA3Nzg0NCwgNzc4NDgsIDc3ODUyLCA3Nzg1NiwgCisgICAgNzc4NjAsIDc3ODY0LCA3Nzg2OSwgNzc4NzMsIDc3ODc3LCA3Nzg4MiwgNzc4ODcsIDc3ODkxLCA3Nzg5NSwgNzc4OTksIAorICAgIDc3OTAzLCA3NzkwNywgNzc5MTEsIDc3OTE1LCA3NzkxOSwgNzc5MjQsIDc3OTI4LCA3NzkzMywgNzc5MzcsIDc3OTQyLCAKKyAgICA3Nzk0NiwgNzc5NTEsIDc3OTU1LCA3Nzk2MSwgNzc5NjYsIDc3OTcwLCA3Nzk3NSwgNzc5NzksIDc3OTg0LCA3Nzk4OCwgCisgICAgNzc5OTMsIDc3OTk3LCA3ODAwMiwgMTUyMSwgNzgwMDYsIDI4MjQsIDE3NTksIDE3NjQsIDc4MDEwLCA3ODAxNCwgMjgyOCwgCisgICAgNzgwMTgsIDEzOTcsIDc4MDIzLCAxMzQyLCA3ODAyNywgMjg0MCwgNzgwMzEsIDc4MDM4LCA3ODA0NSwgNzgwNTksIDI4NDQsIAorICAgIDcxMzEsIDc4MDY4LCA3ODA3NiwgNzgwODMsIDc4MDk0LCA3ODEwMywgNzgxMTAsIDc4MTIyLCA3ODEzNSwgNzgxNDgsIAorICAgIDc4MTU5LCA3ODE2NCwgNzgxNzEsIDc4MTgzLCA3ODE4NywgMjg0OCwgMTE3NDcsIDc4MTk3LCA3ODIwMiwgNzgyMTEsIAorICAgIDc4MjIxLCAyODUyLCA3ODIyNiwgNzgyMzAsIDc4MjM1LCA3ODI0MiwgNzgyNDgsIDc4MjU2LCA3ODI2OCwgMTM0NywgCisgICAgMTMwNDIsIDc4Mjc4LCA3ODI4MiwgNzgyODgsIDc4MzAyLCA3ODMxNCwgNzgzMjYsIDc4MzM2LCA3ODM0NSwgNzgzNTQsIAorICAgIDc4MzYzLCA3ODM3MSwgNzgzODIsIDc4MzkwLCA0MDUxLCA3ODQwMCwgNzg0MTEsIDc4NDIwLCA3ODQyNiwgNzg0NDEsIAorICAgIDc4NDQ4LCA3ODQ1NCwgMzU0OTYsIDc4NDU5LCAyODc2LCAxMzA0NiwgNzg0NjMsIDc4NDcwLCA4OTMwLCA3ODQ3OSwgMjg4MSwgCisgICAgMzIzNDMsIDc4NDg1LCA2MDU3OSwgNzg0OTIsIDc4NDk4LCA3ODUwOSwgNzg1MTUsIDc4NTIyLCA3ODUyOCwgNzg1MzYsIAorICAgIDc4NTQzLCA3ODU0OSwgNzg1NTksIDc4NTY4LCA3ODU3OSwgNzg1ODYsIDc4NTkyLCA3ODYwMiwgNzg2MTAsIDc4NjE2LCAKKyAgICA3ODYzMSwgNzg2MzcsIDc4NjQyLCA3ODY0OSwgNzg2NTIsIDc4NjU4LCA3ODY2NSwgNzg2NzEsIDc4Njc5LCA3ODY4OCwgCisgICAgNzg2OTYsIDc4NzAyLCA3ODcxMSwgNDE0MzQsIDc4NzI1LCA3ODczMCwgNzg3MzYsIDE0NzUxLCA3ODc0MSwgNzg3NTQsIAorICAgIDc4NzYzLCA3ODc3MSwgNzg3NzgsIDc4NzgyLCA3ODc4NiwgNzg3ODksIDc4Nzk2LCA3ODgwMywgNzg4MTEsIDc4ODE5LCAKKyAgICA3ODgyOCwgNzg4MzYsIDE0Njc4LCA3ODg0NCwgNzg4NDksIDc4ODUzLCA3ODg2NSwgNzg4NzIsIDc4ODgxLCA3NDgsIAorICAgIDc4ODkxLCA3ODkwMCwgNzg5MTEsIDI4OTcsIDc4OTE1LCA3ODkxOSwgNzg5MjUsIDc4OTM4LCA3ODk1MCwgNzg5NjAsIAorICAgIDc4OTY5LCA3ODk4MSwgMjYzNTksIDc4OTkyLCA3OTAwMCwgNzkwMDksIDc5MDIwLCA3OTAzMSwgNzkwNDEsIDc5MDUxLCAKKyAgICA3OTA2MCwgNzkwNjgsIDExMzEyLCA3OTA3NSwgNzkwNzksIDc5MDgyLCA3OTA4NywgNzkwOTIsIDc5MDk2LCA3OTEwMiwgCisgICAgMTM1MiwgMTE4MTgsIDc5MTA5LCA3OTEyMCwgNzkxMjksIDc5MTM3LCA3OTE0NiwgNzkxNTQsIDc5MTcwLCA3OTE4MSwgCisgICAgNzkxOTAsIDc5MTk4LCA3OTIxMCwgNzkyMjEsIDc5MjM3LCA3OTI0NywgNzkyNjgsIDc5MjgxLCA3OTI4OSwgNzkyOTYsIAorICAgIDE0ODYyLCA3OTMwOSwgNzkzMTQsIDc5MzIwLCA1OTA4LCA3OTMyNiwgNzkzMjksIDc5MzM2LCA3OTM0NiwgODE3NiwgCisgICAgNzkzNTMsIDc5MzU4LCA3OTM2MywgNzkzNjgsIDc5Mzc2LCA3OTM4NSwgNzkzOTMsIDk3NTYsIDk3NjUsIDc5Mzk4LCAKKyAgICA3OTQwOSwgNzk0MTQsIDc5NDIwLCAyOTEzLCAyOTE4LCA3OTQyNiwgMTA4NzksIDc5NDMyLCA3OTQzOSwgNzk0NDYsIAorICAgIDc5NDU5LCAyMjUxLCA2OCwgNzk0NjQsIDc5NDY5LCA3OTQ3OSwgNzk0ODUsIDc5NDk0LCA3OTUwMiwgNzk1MTIsIDc5NTE2LCAKKyAgICA3OTUyMSwgNzk1MjUsIDc5NTM3LCAyOTQxLCA3OTU0NSwgNzk1NTMsIDc5NTU4LCA3OTU2OSwgNzk1ODAsIDc5NTg5LCAKKyAgICA3OTU5NCwgNzk2MDAsIDc5NjA1LCA3OTYxNSwgNzk2MjUsIDc5NjMwLCA3OTYzNiwgNzk2NDEsIDc5NjUwLCAyMTQwNCwgCisgICAgNzk2NTQsIDQxMjgsIDIwLCA3OTY1OSwgNzk2NjgsIDc5Njc1LCA3OTY4MiwgNzk2ODgsIDc5Njk0LCA4NjQsIDc5Njk5LCAKKyAgICA3OTcwNCwgNjA5MDcsIDc5NzA5LCA3OTcxNCwgNzk3MjAsIDc5NzI2LCA3OTczNCwgNzk3MzksIDc5NzQ2LCA3OTc1MiwgCisgICAgNzk3NTcsIDM4MDA4LCA0MTMyOCwgNzk3NjMsIDI5NDUsIDMyLCA3OTc3MywgNzk3ODYsIDc5NzkxLCA3OTc5OSwgNzk4MDQsIAorICAgIDc5ODEwLCAyOTY3LCAyODI5NiwgNzk4MTUsIDc5ODIzLCA3OTgzMCwgNzk4MzUsIDU4NjUyLCA2MTkxMCwgNzk4NDQsIAorICAgIDc5ODQ4LCAxNzA0LCAxODEzLCA3OTg1MywgNzk4NTgsIDc5ODY1LCAxODE3LCAyNDcsIDc5ODcyLCA3OTg3OCwgMjk4OSwgCisgICAgNzk4ODMsIDc5ODg4LCA3OTg5NSwgMTgyMSwgNzk5MDAsIDc5OTA2LCA3OTkxMSwgNzk5MjMsIDYxMTksIDc5OTMzLCAxODI4LCAKKyAgICA3OTkzOSwgNzk5NDQsIDc5OTUxLCA3OTk1OCwgNzk5NzMsIDc5OTgwLCA3OTk5MSwgNzk5OTksIDI2MTgsIDgwMDAzLCAKKyAgICA4MDAxNSwgODAwMjAsIDgwMDI0LCA4MDAzMCwgMjgxMjEsIDIyNTYsIDgwMDM0LCA4MDA0NSwgODAwNDksIDgwMDUzLCAKKyAgICA4MDA1OSwgODAwNjMsIDgwMDcyLCA4MDA3NiwgODAwODcsIDgwMDkxLCAyMzAyLCAzMjE3MiwgODAwOTUsIDgwMTA1LCAKKyAgICAzMDgwLCA5MzcxLCA4MDExMywgODAxMTgsIDgwMTIyLCA4MDEzMSwgODAxMzgsIDgwMTQ0LCAzMDUwLCAxNzE0NiwgODAxNDgsIAorICAgIDgwMTYxLCA4MDE3OSwgODAxODQsIDgwMTkyLCA4MDIwMCwgODAyMTAsIDk5ODUsIDEzMTU0LCA4MDIyMiwgODAyMzUsIAorICAgIDgwMjQyLCA4MDI0OSwgODAyNjUsIDgwMjcyLCA4MDI3OCwgMTA1OSwgODAyODUsIDgwMjkyLCA4MDMwMiwgODAzMTEsIAorICAgIDgwMzIzLCA0MjI5OCwgODAzMzEsIDMwNjQsIDEyMDMwLCA4MDMzNCwgODAzNDIsIDgwMzQ2LCA3ODIzOCwgMzA2OCwgCisgICAgODAzNTAsIDIxMTg1LCAxMjA0NiwgMzc1NiwgODAzNTQsIDMwNzQsIDgwMzU4LCA4MDM2OCwgODAzNzQsIDgwMzgwLCAKKyAgICA4MDM4NiwgODAzOTIsIDgwMzk4LCA4MDQwNCwgODA0MTAsIDgwNDE2LCA4MDQyMiwgODA0MjgsIDgwNDM0LCA4MDQ0MCwgCisgICAgODA0NDYsIDgwNDUyLCA4MDQ1OCwgODA0NjQsIDgwNDcwLCA4MDQ3NiwgODA0ODIsIDgwNDg4LCA4MDQ5NCwgODA1MDAsIAorICAgIDgwNTA2LCA4MDUxMiwgODA1MTgsIDgwNTI1LCA4MDUzMiwgODA1MzgsIDgwNTQ0LCA4MDU1MCwgODA1NTYsIDgwNTYyLCAKKyAgICA4MDU2OCwgMTM1NywgMTYwNTYsIDEyMDY4LCA4MDU3NCwgODA1NzksIDgwNTg0LCA4MDU4OSwgODA1OTQsIDgwNTk5LCAKKyAgICA4MDYwNCwgODA2MDksIDgwNjE0LCA4MDYxOSwgODA2MjQsIDgwNjI5LCA4MDYzNCwgODA2MzksIDgwNjQ0LCA4MDY0OSwgCisgICAgODA2NTQsIDgwNjU5LCA4MDY2NCwgODA2NjksIDgwNjc0LCA4MDY3OSwgODA2ODQsIDgwNjg5LCA4MDY5NCwgODA2OTksIAorICAgIDgwNzA1LCA4MDcxMCwgODA3MTUsIDgwNzIxLCA4MDcyNiwgODA3MzIsIDgwNzM3LCA4MDc0MiwgODA3NDgsIDgwNzUzLCAKKyAgICA4MDc1OCwgODA3NjMsIDgwNzY4LCA4MDc3MywgODA3NzgsIDgwNzgzLCA4MDc4OCwgODAzNjksIDgwMzc1LCA4MDM4MSwgCisgICAgODAzODcsIDgwMzkzLCA4MDM5OSwgODA0MDUsIDgwNDExLCA4MDQxNywgODA0MjMsIDgwNDI5LCA4MDQzNSwgODA0NDEsIAorICAgIDgwNDQ3LCA4MDQ1MywgODA3OTQsIDgwNDU5LCA4MDQ2NSwgODA0NzEsIDgwODAwLCA4MDQ3NywgODA0ODMsIDgwNDg5LCAKKyAgICA4MDQ5NSwgODA1MDEsIDgwNTA3LCA4MDUxMywgODA1MzMsIDgwODA2LCA4MDgxMiwgODA1MzksIDgwODE4LCA4MDU0NSwgCisgICAgODA1NTEsIDgwNTU3LCA4MDU2MywgODA1NjksIDMwOTEsIDMwOTYsIDgwODI0LCA4MDgyOSwgODA4MzIsIDgwODM4LCAKKyAgICA4MDg0NCwgODA4NTEsIDgwODU2LCA4MDg2MSwgMjMwNywgCiB9OwogCiAvKiBjb2RlLT5uYW1lIHBocmFzZWJvb2sgKi8KICNkZWZpbmUgcGhyYXNlYm9va19zaGlmdCA3CiAjZGVmaW5lIHBocmFzZWJvb2tfc2hvcnQgMjA5CiBzdGF0aWMgdW5zaWduZWQgY2hhciBwaHJhc2Vib29rW10gPSB7Ci0gICAgMCwgMjE5LCAxOCwgMjQ1LCAzMSwgNzgsIDIyMywgMjU0LCA3OCwgNTQsIDUwLCAyNDcsIDEzMiwgNTAsIDIyNSwgMTgyLCAKLSAgICA1MCwgMjU0LCAxMjYsIDI1NCwgNTcsIDQzLCAyMjYsIDMsIDQ0LCAyMjYsIDMsIDI1MywgMjE2LCA5NiwgNTAsIDI0OSwgCi0gICAgMjE5LCAyNDAsIDE2NywgMjQzLCAyMjksIDIxOCwgMTI5LCAyMTksIDQ2LCAyMSwgMjEwLCA4NiwgMjEsIDExMCwgMjEsIAorICAgIDAsIDIxOSwgMTksIDI0NSwgMzIsIDc4LCAyMjMsIDI1NSwgNzgsIDU0LCA1MCwgMjQ3LCAxMzMsIDUwLCAyMjUsIDE4MywgCisgICAgNTAsIDI1NCwgMTI3LCAyNTQsIDU4LCA0MywgMjI2LCA0LCA0NCwgMjI2LCA0LCAyNTMsIDIxNywgOTYsIDUwLCAyNDksIAorICAgIDIyMCwgMjQwLCAxNjgsIDI0MywgMjMwLCAyMTgsIDEzMCwgMjE5LCA0NywgMjEsIDIxMCwgODYsIDIxLCAxMTAsIDIxLCAKICAgICAxMDUsIDIxLCAxNTgsIDIxLCAxNjEsIDIxLCAxODksIDIxLCAxOTQsIDIxLCAxOTgsIDIxLCAxOTUsIDIxLCAyMDAsIDI0OSwgCi0gICAgMjI2LCAyMjAsIDE1MCwgMjMzLCAxNSwgNTAsIDI0NSwgOTgsIDUwLCAyNDIsIDEzMCwgNTAsIDIyNCwgMTMsIDc4LCAyNDksIAotICAgIDIxNywgMjUzLCAyMDYsIDcsIDYsIDEsIDYxLCA3LCA2LCAxLCAyNTMsIDE1OCwgNywgNiwgMSwgMjUxLCA2NiwgNywgNiwgMSwgCi0gICAgMjQ5LCA2MCwgNywgNiwgMSwgNzUsIDcsIDYsIDEsIDI0NSwgNiwgNywgNiwgMSwgMjQzLCAyMDIsIDcsIDYsIDEsIDI0MiwgCi0gICAgNjAsIDcsIDYsIDEsIDczLCA3LCA2LCAxLCAyMzUsIDE0NCwgNywgNiwgMSwgMjM1LCAyMywgNywgNiwgMSwgMTU2LCA3LCA2LCAKLSAgICAxLCAxOTMsIDcsIDYsIDEsIDIzMCwgMjUsIDcsIDYsIDEsIDc2LCA3LCA2LCAxLCAyMjYsIDEwNSwgNywgNiwgMSwgMjI0LCAKLSAgICA5NiwgNywgNiwgMSwgMTUzLCA3LCA2LCAxLCAyMjIsIDkxLCA3LCA2LCAxLCAyMTcsIDE1MiwgNywgNiwgMSwgNzAsIDcsIDYsIAorICAgIDIyNywgMjIwLCAxNTEsIDIzMywgMTYsIDUwLCAyNDUsIDk5LCA1MCwgMjQyLCAxMzEsIDUwLCAyMjQsIDE0LCA3OCwgMjQ5LCAKKyAgICAyMTgsIDI1MywgMjA3LCA3LCA2LCAxLCA2MSwgNywgNiwgMSwgMjUzLCAxNTksIDcsIDYsIDEsIDI1MSwgNjcsIDcsIDYsIDEsIAorICAgIDI0OSwgNjEsIDcsIDYsIDEsIDc1LCA3LCA2LCAxLCAyNDUsIDcsIDcsIDYsIDEsIDI0MywgMjAzLCA3LCA2LCAxLCAyNDIsIAorICAgIDYxLCA3LCA2LCAxLCA3MywgNywgNiwgMSwgMjM1LCAxNDUsIDcsIDYsIDEsIDIzNSwgMjQsIDcsIDYsIDEsIDE1NiwgNywgNiwgCisgICAgMSwgMTkzLCA3LCA2LCAxLCAyMzAsIDI2LCA3LCA2LCAxLCA3NiwgNywgNiwgMSwgMjI2LCAxMDYsIDcsIDYsIDEsIDIyNCwgCisgICAgOTcsIDcsIDYsIDEsIDE1MywgNywgNiwgMSwgMjIyLCA5MiwgNywgNiwgMSwgMjE3LCAxNTMsIDcsIDYsIDEsIDcwLCA3LCA2LCAKICAgICAxLCAyMTQsIDEwNSwgNywgNiwgMSwgMjEyLCA5OCwgNywgNiwgMSwgMjExLCAxNzgsIDcsIDYsIDEsIDIxMSwgMTE3LCA3LCAKLSAgICA2LCAxLCAyMTAsIDE1OSwgNDMsIDQyLCAxMjcsIDIyMywgNTAsIDIxOSwgNDYsIDQ0LCA0MiwgMTI3LCAyNTAsIDMxLCAyNTUsIAotICAgIDE0LCAxMjEsIDIzMiwgMjEzLCAyNDIsIDEzNywgMjU1LCAxNCwgNywgNCwgMSwgNjEsIDcsIDQsIDEsIDI1MywgMTU4LCA3LCAKLSAgICA0LCAxLCAyNTEsIDY2LCA3LCA0LCAxLCAyNDksIDYwLCA3LCA0LCAxLCA3NSwgNywgNCwgMSwgMjQ1LCA2LCA3LCA0LCAxLCAKLSAgICAyNDMsIDIwMiwgNywgNCwgMSwgMjQyLCA2MCwgNywgNCwgMSwgNzMsIDcsIDQsIDEsIDIzNSwgMTQ0LCA3LCA0LCAxLCAyMzUsIAotICAgIDIzLCA3LCA0LCAxLCAxNTYsIDcsIDQsIDEsIDE5MywgNywgNCwgMSwgMjMwLCAyNSwgNywgNCwgMSwgNzYsIDcsIDQsIDEsIAotICAgIDIyNiwgMTA1LCA3LCA0LCAxLCAyMjQsIDk2LCA3LCA0LCAxLCAxNTMsIDcsIDQsIDEsIDIyMiwgOTEsIDcsIDQsIDEsIDIxNywgCi0gICAgMTUyLCA3LCA0LCAxLCA3MCwgNywgNCwgMSwgMjE0LCAxMDUsIDcsIDQsIDEsIDIxMiwgOTgsIDcsIDQsIDEsIDIxMSwgMTc4LCAKLSAgICA3LCA0LCAxLCAyMTEsIDExNywgNywgNCwgMSwgMjEwLCAxNTksIDQzLCAyNDksIDk5LCAxMjcsIDY3LCAyMzIsIDIxMywgNDQsIAotICAgIDI0OSwgOTksIDEyNywgMTgyLCAyMjgsIDczLCAyMTksIDE4LCAyMzUsIDE5MywgMjQ1LCAzMSwgNzgsIDI1MCwgMTc2LCA1MCwgCi0gICAgMjI0LCAyMjgsIDUwLCAyNDksIDk4LCA1MCwgMjExLCA0MCwgNTAsIDI1MSwgMTM1LCAxMzAsIDIyMSwgMTczLCA1MCwgMjQ4LCAKLSAgICAxLCAyNDksIDE2MywgNTAsIDI0NCwgMTM2LCAyMjYsIDE1NCwgMjM1LCAyMzgsIDIzMywgNDIsIDUyLCAyNTQsIDExMCwgCi0gICAgMjIzLCAyNTQsIDc4LCAyMjgsIDUyLCA1MCwgMjE5LCA1MiwgMjQwLCAxNjgsIDIyMywgMTAyLCA1MCwgMjMxLCAyMzIsIAotICAgIDI0OCwgNzEsIDUwLCAyMjUsIDIxLCA1MCwgMjE4LCAyMywgMTA1LCAyMTgsIDIzLCAxNTgsIDI1NSwgMywgMjU1LCAxNCwgCi0gICAgMjMwLCAyMjgsIDUwLCAyMjUsIDY4LCA1MCwgMjMwLCAyMjQsIDI0NywgMTIwLCAyNTAsIDE4MywgMjE4LCAyMywgMTEwLCAKLSAgICAyMzEsIDE0OCwgMjI2LCAxNTQsIDIzNSwgMjM4LCAyMjIsIDI0NywgNTIsIDI1NCwgMTEwLCAyMjMsIDI1NCwgNzgsIDIxMiwgCi0gICAgMTE0LCAyNDQsIDIsIDEyMywgMjI0LCAyMSwgMjEyLCAxMTQsIDI0NCwgMiwgMTIzLCAyNDIsIDI3LCAyMTIsIDExNCwgMjQ0LCAKLSAgICAyLCAxMzQsIDIyNCwgMTksIDIzNSwgMTkzLCAyMjQsIDEzLCA3OCwgNywgNiwgMSwgMTE1LCAyLCAyNDIsIDEzNiwgNywgNiwgCi0gICAgMSwgMTE1LCAyLCAxNDIsIDcsIDYsIDEsIDExNSwgMiwgMjUwLCAzMCwgNywgNiwgMSwgMTE1LCAyLCAxODIsIDcsIDYsIDEsIAotICAgIDExNSwgMiwgMjQ4LCAxLCA3LCA2LCAxLCAxMTUsIDIsIDIyMiwgMjM0LCA0OCwgNywgNiwgMSwgMjU0LCAyNDMsIDcsIDYsIAotICAgIDEsIDI1MSwgNjcsIDIsIDI1MCwgMTgzLCA3LCA2LCAxLCAxNjAsIDIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxNjAsIDIsIDE0MiwgCi0gICAgNywgNiwgMSwgMTYwLCAyLCAyNTAsIDMwLCA3LCA2LCAxLCAxNjAsIDIsIDI0OCwgMSwgNywgNiwgMSwgMjQwLCAxNTQsIDIsIAotICAgIDI0MiwgMTM2LCA3LCA2LCAxLCAyNDAsIDE1NCwgMiwgMTQyLCA3LCA2LCAxLCAyNDAsIDE1NCwgMiwgMjUwLCAzMCwgNywgNiwgCi0gICAgMSwgMjQwLCAxNTQsIDIsIDI0OCwgMSwgNywgNiwgMSwgMjQ1LCA1OSwgNywgNiwgMSwgMjMwLCAyNiwgMiwgMTgyLCA3LCA2LCAKLSAgICAxLCAxNDQsIDIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxNDQsIDIsIDE0MiwgNywgNiwgMSwgMTQ0LCAyLCAyNTAsIDMwLCA3LCAKLSAgICA2LCAxLCAxNDQsIDIsIDE4MiwgNywgNiwgMSwgMTQ0LCAyLCAyNDgsIDEsIDIzMCwgODQsIDUwLCA3LCA2LCAxLCAxNDQsIDIsIAotICAgIDkxLCA3LCA2LCAxLCAxMDQsIDIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxMDQsIDIsIDE0MiwgNywgNiwgMSwgMTA0LCAyLCAKLSAgICAyNTAsIDMwLCA3LCA2LCAxLCAxMDQsIDIsIDI0OCwgMSwgNywgNiwgMSwgMjExLCAxMTgsIDIsIDE0MiwgNywgNiwgMSwgCi0gICAgMjE2LCAxNTEsIDcsIDQsIDEsIDIyMCwgNzYsIDIyMiwgOTEsIDcsIDQsIDEsIDExNSwgMiwgMjQyLCAxMzYsIDcsIDQsIDEsIAotICAgIDExNSwgMiwgMTQyLCA3LCA0LCAxLCAxMTUsIDIsIDI1MCwgMzAsIDcsIDQsIDEsIDExNSwgMiwgMTgyLCA3LCA0LCAxLCAKLSAgICAxMTUsIDIsIDI0OCwgMSwgNywgNCwgMSwgMTE1LCAyLCAyMjIsIDIzNCwgNDgsIDcsIDQsIDEsIDI1NCwgMjQzLCA3LCA0LCAKLSAgICAxLCAyNTEsIDY3LCAyLCAyNTAsIDE4MywgNywgNCwgMSwgMTYwLCAyLCAyNDIsIDEzNiwgNywgNCwgMSwgMTYwLCAyLCAxNDIsIAotICAgIDcsIDQsIDEsIDE2MCwgMiwgMjUwLCAzMCwgNywgNCwgMSwgMTYwLCAyLCAyNDgsIDEsIDcsIDQsIDEsIDI0MCwgMTU0LCAyLCAKLSAgICAyNDIsIDEzNiwgNywgNCwgMSwgMjQwLCAxNTQsIDIsIDE0MiwgNywgNCwgMSwgMjQwLCAxNTQsIDIsIDI1MCwgMzAsIDcsIDQsIAotICAgIDEsIDI0MCwgMTU0LCAyLCAyNDgsIDEsIDcsIDQsIDEsIDI0NSwgNTksIDcsIDQsIDEsIDIzMCwgMjYsIDIsIDE4MiwgNywgNCwgCi0gICAgMSwgMTQ0LCAyLCAyNDIsIDEzNiwgNywgNCwgMSwgMTQ0LCAyLCAxNDIsIDcsIDQsIDEsIDE0NCwgMiwgMjUwLCAzMCwgNywgCi0gICAgNCwgMSwgMTQ0LCAyLCAxODIsIDcsIDQsIDEsIDE0NCwgMiwgMjQ4LCAxLCAyNDcsIDE2OSwgNTAsIDcsIDQsIDEsIDE0NCwgCi0gICAgMiwgOTEsIDcsIDQsIDEsIDEwNCwgMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDEwNCwgMiwgMTQyLCA3LCA0LCAxLCAxMDQsIDIsIAotICAgIDI1MCwgMzAsIDcsIDQsIDEsIDEwNCwgMiwgMjQ4LCAxLCA3LCA0LCAxLCAyMTEsIDExOCwgMiwgMTQyLCA3LCA0LCAxLCAKLSAgICAyMTYsIDE1MSwgNywgNCwgMSwgMjExLCAxMTgsIDIsIDI0OCwgMSwgNywgNiwgMSwgMTE1LCAyLCAyMzEsIDIzMiwgNywgNCwgCi0gICAgMSwgMTE1LCAyLCAyMzEsIDIzMiwgNywgNiwgMSwgMTE1LCAyLCAyNTEsIDE0NiwgNywgNCwgMSwgMTE1LCAyLCAyNTEsIAotICAgIDE0NiwgNywgNiwgMSwgMTE1LCAyLCAyMjYsIDIyNCwgNywgNCwgMSwgMTE1LCAyLCAyMjYsIDIyNCwgNywgNiwgMSwgMjUxLCAKLSAgICA2NywgMiwgMTQyLCA3LCA0LCAxLCAyNTEsIDY3LCAyLCAxNDIsIDcsIDYsIDEsIDI1MSwgNjcsIDIsIDI1MCwgMzAsIDcsIDQsIAotICAgIDEsIDI1MSwgNjcsIDIsIDI1MCwgMzAsIDcsIDYsIDEsIDI1MSwgNjcsIDIsIDU5LCA0OCwgNywgNCwgMSwgMjUxLCA2NywgMiwgCi0gICAgNTksIDQ4LCA3LCA2LCAxLCAyNTEsIDY3LCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMjUxLCA2NywgMiwgMjUwLCAyMzQsIDcsIAotICAgIDYsIDEsIDI0OSwgNjEsIDIsIDI1MCwgMjM0LCA3LCA0LCAxLCAyNDksIDYxLCAyLCAyNTAsIDIzNCwgNywgNiwgMSwgMjQ5LCAKLSAgICA2MSwgMiwgOTEsIDcsIDQsIDEsIDI0OSwgNjEsIDIsIDkxLCA3LCA2LCAxLCAxNjAsIDIsIDIzMSwgMjMyLCA3LCA0LCAxLCAKLSAgICAxNjAsIDIsIDIzMSwgMjMyLCA3LCA2LCAxLCAxNjAsIDIsIDI1MSwgMTQ2LCA3LCA0LCAxLCAxNjAsIDIsIDI1MSwgMTQ2LCAKLSAgICA3LCA2LCAxLCAxNjAsIDIsIDU5LCA0OCwgNywgNCwgMSwgMTYwLCAyLCA1OSwgNDgsIDcsIDYsIDEsIDE2MCwgMiwgMjI2LCAKLSAgICAyMjQsIDcsIDQsIDEsIDE2MCwgMiwgMjI2LCAyMjQsIDcsIDYsIDEsIDE2MCwgMiwgMjUwLCAyMzQsIDcsIDQsIDEsIDE2MCwgCi0gICAgMiwgMjUwLCAyMzQsIDcsIDYsIDEsIDI0MywgMjAzLCAyLCAyNTAsIDMwLCA3LCA0LCAxLCAyNDMsIDIwMywgMiwgMjUwLCAKLSAgICAzMCwgNywgNiwgMSwgMjQzLCAyMDMsIDIsIDI1MSwgMTQ2LCA3LCA0LCAxLCAyNDMsIDIwMywgMiwgMjUxLCAxNDYsIDcsIDYsIAotICAgIDEsIDI0MywgMjAzLCAyLCA1OSwgNDgsIDcsIDQsIDEsIDI0MywgMjAzLCAyLCA1OSwgNDgsIDcsIDYsIDEsIDI0MywgMjAzLCAKLSAgICAyLCAyNTAsIDE4MywgNywgNCwgMSwgMjQzLCAyMDMsIDIsIDI1MCwgMTgzLCA3LCA2LCAxLCAyNDIsIDYxLCAyLCAyNTAsIAotICAgIDMwLCA3LCA0LCAxLCAyNDIsIDYxLCAyLCAyNTAsIDMwLCA3LCA2LCAxLCAyNDIsIDYxLCAyLCA5MSwgNywgNCwgMSwgMjQyLCAKLSAgICA2MSwgMiwgOTEsIDcsIDYsIDEsIDI0MCwgMTU0LCAyLCAxODIsIDcsIDQsIDEsIDI0MCwgMTU0LCAyLCAxODIsIDcsIDYsIDEsIAotICAgIDI0MCwgMTU0LCAyLCAyMzEsIDIzMiwgNywgNCwgMSwgMjQwLCAxNTQsIDIsIDIzMSwgMjMyLCA3LCA2LCAxLCAyNDAsIDE1NCwgCi0gICAgMiwgMjUxLCAxNDYsIDcsIDQsIDEsIDI0MCwgMTU0LCAyLCAyNTEsIDE0NiwgNywgNiwgMSwgMjQwLCAxNTQsIDIsIDIyNiwgCi0gICAgMjI0LCA3LCA0LCAxLCAyNDAsIDE1NCwgMiwgMjI2LCAyMjQsIDcsIDYsIDEsIDI0MCwgMTU0LCAyLCA1OSwgNDgsIDcsIDQsIAotICAgIDEsIDI0NywgMTE5LCA3MywgNywgNiwgMjcsIDIzNiwgMzEsIDcsIDQsIDI3LCAyMzYsIDMxLCA3LCA2LCAxLCAyMzUsIDE0NSwgCi0gICAgMiwgMjUwLCAzMCwgNywgNCwgMSwgMjM1LCAxNDUsIDIsIDI1MCwgMzAsIDcsIDYsIDEsIDIzNSwgMjQsIDIsIDI1MCwgMTgzLCAKLSAgICA3LCA0LCAxLCAyMzUsIDI0LCAyLCAyNTAsIDE4MywgNywgNCwgMSwgMjMzLCAyMzksIDcsIDYsIDEsIDIzMywgMTQ5LCAyLCAKLSAgICAxNDIsIDcsIDQsIDEsIDIzMywgMTQ5LCAyLCAxNDIsIDcsIDYsIDEsIDIzMywgMTQ5LCAyLCAyNTAsIDE4MywgNywgNCwgMSwgCi0gICAgMjMzLCAxNDksIDIsIDI1MCwgMTgzLCA3LCA2LCAxLCAyMzMsIDE0OSwgMiwgMjUwLCAyMzQsIDcsIDQsIDEsIDIzMywgMTQ5LCAKLSAgICAyLCAyNTAsIDIzNCwgNywgNiwgMSwgMjMzLCAxNDksIDIsIDIzMCwgMjI0LCAyNDcsIDEyMCwgNywgNCwgMSwgMjMzLCAxNDksIAotICAgIDIsIDIzMCwgMjI0LCAyNDcsIDEyMCwgNywgNiwgMSwgMjMzLCAxNDksIDIsIDkxLCA3LCA0LCAxLCAyMzMsIDE0OSwgMiwgCi0gICAgOTEsIDcsIDYsIDEsIDIzMCwgMjYsIDIsIDE0MiwgNywgNCwgMSwgMjMwLCAyNiwgMiwgMTQyLCA3LCA2LCAxLCAyMzAsIDI2LCAKLSAgICAyLCAyNTAsIDE4MywgNywgNCwgMSwgMjMwLCAyNiwgMiwgMjUwLCAxODMsIDcsIDYsIDEsIDIzMCwgMjYsIDIsIDI1MCwgCi0gICAgMjM0LCA3LCA0LCAxLCAyMzAsIDI2LCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMjMwLCAyNiwgMjI0LCAyMDQsIDI1MSwgNzgsIAotICAgIDI1NCwgNTcsIDcsIDYsIDEsIDI0NSwgMTM4LCA3LCA0LCAxLCAyNDUsIDEzOCwgNywgNiwgMSwgMTQ0LCAyLCAyMzEsIDIzMiwgCi0gICAgNywgNCwgMSwgMTQ0LCAyLCAyMzEsIDIzMiwgNywgNiwgMSwgMTQ0LCAyLCAyNTEsIDE0NiwgNywgNCwgMSwgMTQ0LCAyLCAKLSAgICAyNTEsIDE0NiwgNywgNiwgMSwgMTQ0LCAyLCA1MiwgMTQyLCA3LCA0LCAxLCAxNDQsIDIsIDUyLCAxNDIsIDcsIDYsIDI3LCAKLSAgICAyMjYsIDIzNCwgNywgNCwgMjcsIDIyNiwgMjM0LCA3LCA2LCAxLCAyMjMsIDIyNCwgMiwgMTQyLCA3LCA0LCAxLCAyMjMsIAotICAgIDIyNCwgMiwgMTQyLCA3LCA2LCAxLCAyMjMsIDIyNCwgMiwgMjUwLCAxODMsIDcsIDQsIDEsIDIyMywgMjI0LCAyLCAyNTAsIAotICAgIDE4MywgNywgNiwgMSwgMjIzLCAyMjQsIDIsIDI1MCwgMjM0LCA3LCA0LCAxLCAyMjMsIDIyNCwgMiwgMjUwLCAyMzQsIDcsIAotICAgIDYsIDEsIDIyMiwgOTIsIDIsIDE0MiwgNywgNCwgMSwgMjIyLCA5MiwgMiwgMTQyLCA3LCA2LCAxLCAyMjIsIDkyLCAyLCAKLSAgICAyNTAsIDMwLCA3LCA0LCAxLCAyMjIsIDkyLCAyLCAyNTAsIDMwLCA3LCA2LCAxLCAyMjIsIDkyLCAyLCAyNTAsIDE4MywgNywgCi0gICAgNCwgMSwgMjIyLCA5MiwgMiwgMjUwLCAxODMsIDcsIDYsIDEsIDIyMiwgOTIsIDIsIDI1MCwgMjM0LCA3LCA0LCAxLCAyMjIsIAotICAgIDkyLCAyLCAyNTAsIDIzNCwgNywgNiwgMSwgMjE3LCAxNTMsIDIsIDI1MCwgMTgzLCA3LCA0LCAxLCAyMTcsIDE1MywgMiwgCi0gICAgMjUwLCAxODMsIDcsIDYsIDEsIDIxNywgMTUzLCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMjE3LCAxNTMsIDIsIDI1MCwgMjM0LCAKLSAgICA3LCA2LCAxLCAyMTcsIDE1MywgMiwgOTEsIDcsIDQsIDEsIDIxNywgMTUzLCAyLCA5MSwgNywgNiwgMSwgMTA0LCAyLCAxODIsIAotICAgIDcsIDQsIDEsIDEwNCwgMiwgMTgyLCA3LCA2LCAxLCAxMDQsIDIsIDIzMSwgMjMyLCA3LCA0LCAxLCAxMDQsIDIsIDIzMSwgCi0gICAgMjMyLCA3LCA2LCAxLCAxMDQsIDIsIDI1MSwgMTQ2LCA3LCA0LCAxLCAxMDQsIDIsIDI1MSwgMTQ2LCA3LCA2LCAxLCAxMDQsIAotICAgIDIsIDIyMiwgMjM0LCA0OCwgNywgNCwgMSwgMTA0LCAyLCAyMjIsIDIzNCwgNDgsIDcsIDYsIDEsIDEwNCwgMiwgNTIsIDE0MiwgCi0gICAgNywgNCwgMSwgMTA0LCAyLCA1MiwgMTQyLCA3LCA2LCAxLCAxMDQsIDIsIDIyNiwgMjI0LCA3LCA0LCAxLCAxMDQsIDIsIAotICAgIDIyNiwgMjI0LCA3LCA2LCAxLCAyMTIsIDk5LCAyLCAyNTAsIDMwLCA3LCA0LCAxLCAyMTIsIDk5LCAyLCAyNTAsIDMwLCA3LCAKLSAgICA2LCAxLCAyMTEsIDExOCwgMiwgMjUwLCAzMCwgNywgNCwgMSwgMjExLCAxMTgsIDIsIDI1MCwgMzAsIDcsIDYsIDEsIDIxMSwgCi0gICAgMTE4LCAyLCAyNDgsIDEsIDcsIDYsIDEsIDIxMCwgMTYwLCAyLCAxNDIsIDcsIDQsIDEsIDIxMCwgMTYwLCAyLCAxNDIsIDcsIAotICAgIDYsIDEsIDIxMCwgMTYwLCAyLCA1OSwgNDgsIDcsIDQsIDEsIDIxMCwgMTYwLCAyLCA1OSwgNDgsIDcsIDYsIDEsIDIxMCwgCi0gICAgMTYwLCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMjEwLCAxNjAsIDIsIDI1MCwgMjM0LCA3LCA0LCAxLCAxOTksIDIyMiwgOTEsIAotICAgIDcsIDQsIDEsIDU3LCAyLCA5MSwgNywgNiwgMSwgNTcsIDIsIDEwMywgNywgNiwgMSwgNTcsIDIsIDIxNiwgMTEsIDcsIDQsIAotICAgIDEsIDU3LCAyLCAyMTYsIDExLCA3LCA2LCAxLCAxMzgsIDE5NCwgNywgNCwgMSwgMTM4LCAxOTQsIDcsIDYsIDEsIDIwNCwgCi0gICAgNzYsIDcsIDYsIDEsIDI1MSwgNjcsIDIsIDEwMywgNywgNCwgMSwgMjUxLCA2NywgMiwgMTAzLCA3LCA2LCAxLCAyNTQsIAotICAgIDIxOSwgMjQ5LCA2MCwgNywgNiwgMSwgMjQ5LCA2MSwgMiwgMTAzLCA3LCA2LCAxLCAyNDksIDYxLCAyLCAyMTYsIDExLCA3LCAKLSAgICA0LCAxLCAyNDksIDYxLCAyLCAyMTYsIDExLCA3LCA0LCAxLCAyMTUsIDk0LCAyNDgsIDU0LCA3LCA2LCAxLCAyMjMsIDQ5LCAKLSAgICA3NSwgNywgNiwgMSwgMjIxLCAxOTUsIDcsIDYsIDEsIDIwNCwgNzUsIDcsIDYsIDEsIDI0NSwgNywgMiwgMTAzLCA3LCA0LCAKLSAgICAxLCAyNDUsIDcsIDIsIDEwMywgNywgNiwgMSwgMjQzLCAyMDMsIDIsIDEwMywgNywgNiwgMSwgMjQzLCAxMDcsIDcsIDQsIDEsIAotICAgIDI0MCwgMjAxLCA3LCA2LCAxLCAyMzUsIDE4NSwgNywgNiwgMSwgMjQwLCAxNTQsIDIsIDkxLCA3LCA2LCAxLCAyMzUsIDI0LCAKLSAgICAyLCAxMDMsIDcsIDQsIDEsIDIzNSwgMjQsIDIsIDEwMywgNywgNCwgMSwgMjMzLCAxNDksIDIsIDEzMCwgNywgNCwgMSwgCi0gICAgMjMzLCAxMDAsIDIsIDkxLCA3LCA2LCAxLCAyMTUsIDk0LCAxOTMsIDcsIDYsIDEsIDIzMCwgMjYsIDIsIDQzLCAxMDMsIDcsIAotICAgIDQsIDEsIDIzMCwgMjYsIDIsIDE5OSwgNDQsIDIzMywgMzYsIDcsIDYsIDEsIDE0NCwgMiwgMjMwLCAyMjQsIDE4MiwgNywgNiwgCi0gICAgMSwgMTQ0LCAyLCAyNDAsIDI0OCwgNywgNCwgMSwgMTQ0LCAyLCAyNDAsIDI0OCwgNywgNiwgMSwgMjI2LCAyMTksIDcsIDQsIAotICAgIDEsIDIyNiwgMjE5LCA3LCA2LCAxLCAyMjYsIDEwNiwgMiwgMTAzLCA3LCA0LCAxLCAyMjYsIDEwNiwgMiwgMTAzLCA3LCAxLCAKLSAgICAyMTAsIDIxNCwgNywgNiwgMSwgMTM4LCAxMDUsIDcsIDQsIDEsIDEzOCwgMTA1LCA3LCA2LCAxLCAyNDUsIDc1LCA3LCAxLCAKLSAgICAyMjMsIDQ5LCAyNDUsIDc2LCAyMzIsIDEyMywgNywgNCwgMSwgMjE3LCAxNTMsIDIsIDIyNiwgNjYsIDEwMywgNywgNiwgMSwgCi0gICAgMjE3LCAxNTMsIDIsIDEwMywgNywgNCwgMSwgMjE3LCAxNTMsIDIsIDEwMywgNywgNiwgMSwgMjE3LCAxNTMsIDIsIDIyMywgCi0gICAgNTUsIDEwMywgNywgNiwgMSwgMTA0LCAyLCAyNDAsIDI0OCwgNywgNCwgMSwgMTA0LCAyLCAyNDAsIDI0OCwgNywgNiwgMSwgCi0gICAgMjE0LCAxNTcsIDcsIDYsIDEsIDIxNCwgMTA2LCAyLCAxMDMsIDcsIDYsIDEsIDIxMSwgMTE4LCAyLCAxMDMsIDcsIDQsIDEsIAotICAgIDIxMSwgMTE4LCAyLCAxMDMsIDcsIDYsIDEsIDIxMCwgMTYwLCAyLCA5MSwgNywgNCwgMSwgMjEwLCAxNjAsIDIsIDkxLCA3LCAKLSAgICA2LCAxLCAyNDUsIDgsIDcsIDYsIDEsIDI0NSwgOSwgMjIzLCA0OCwgNywgNCwgMSwgMjQ1LCA5LCAyMjMsIDQ4LCA3LCA0LCAKLSAgICAxLCAyNDUsIDksIDIsIDIxNywgNzcsIDcsIDEsIDExMywgMiwgOTEsIDcsIDYsIDEsIDEzOCwgMTg5LCA3LCA0LCAxLCAxMzgsIAotICAgIDE4OSwgNywgMSwgMjM1LCAxOTMsIDI0MiwgMTgwLCAyMTgsIDEzMCwgMiwgOTEsIDcsIDEsIDIxMSwgMTgxLCA3LCAxLCAKLSAgICAyNDgsIDQ3LCAyNTAsIDExLCA3LCAxLCAyMzMsIDc3LCAyNTAsIDExLCA3LCAxLCAyNTQsIDEzNywgMjUwLCAxMSwgNywgMSwgCi0gICAgMjIzLCA1NSwgMjUwLCAxMSwgNywgNiwgMSwgMjQ2LCA0MCwgMiwgMjUwLCAyMzQsIDcsIDYsIDEsIDI0OSwgNjEsIDIsIDQsIAotICAgIDEsIDIxMCwgMTYwLCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMjQ2LCA0MCwgMiwgMjUwLCAyMzQsIDcsIDYsIDEsIDIzMiwgCi0gICAgMTg4LCA3LCA2LCAxLCAyMzMsIDE0OSwgMiwgNCwgMSwgMjM1LCAxNDQsIDcsIDQsIDEsIDIzMiwgMTg4LCA3LCA2LCAxLCAKLSAgICAyMjgsIDE4NiwgNywgNiwgMSwgMjMwLCAyNiwgMiwgNCwgMSwgMjM1LCAxNDQsIDcsIDQsIDEsIDIyOCwgMTg2LCA3LCA2LCAKLSAgICAxLCAxMTUsIDIsIDI1MCwgMjM0LCA3LCA0LCAxLCAxMTUsIDIsIDI1MCwgMjM0LCA3LCA2LCAxLCAyNDAsIDE1NCwgMiwgCi0gICAgMjUwLCAyMzQsIDcsIDQsIDEsIDI0MCwgMTU0LCAyLCAyNTAsIDIzNCwgNywgNiwgMSwgMTQ0LCAyLCAyNTAsIDIzNCwgNywgCi0gICAgNCwgMSwgMTQ0LCAyLCAyNTAsIDIzNCwgNywgNiwgMSwgMTA0LCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMTA0LCAyLCAyNTAsIAotICAgIDIzNCwgNywgNiwgMSwgMTA0LCAyLCAyNDgsIDIsIDIyLCAyMzEsIDIzMiwgNywgNCwgMSwgMTA0LCAyLCAyNDgsIDIsIDIyLCAKLSAgICAyMzEsIDIzMiwgNywgNiwgMSwgMTA0LCAyLCAyNDgsIDIsIDIyLCAxNDIsIDcsIDQsIDEsIDEwNCwgMiwgMjQ4LCAyLCAyMiwgCi0gICAgMTQyLCA3LCA2LCAxLCAxMDQsIDIsIDI0OCwgMiwgMjIsIDI1MCwgMjM0LCA3LCA0LCAxLCAxMDQsIDIsIDI0OCwgMiwgMjIsIAotICAgIDI1MCwgMjM0LCA3LCA2LCAxLCAxMDQsIDIsIDI0OCwgMiwgMjIsIDI0MiwgMTM2LCA3LCA0LCAxLCAxMDQsIDIsIDI0OCwgMiwgCi0gICAgMjIsIDI0MiwgMTM2LCA3LCA0LCAxLCAyMTUsIDk0LCA3NSwgNywgNiwgMSwgMTE1LCAyLCAyNDgsIDIsIDIyLCAyMzEsIAotICAgIDIzMiwgNywgNCwgMSwgMTE1LCAyLCAyNDgsIDIsIDIyLCAyMzEsIDIzMiwgNywgNiwgMSwgMTE1LCAyLCA1OSwgNzcsIDIyLCAKLSAgICAyMzEsIDIzMiwgNywgNCwgMSwgMTE1LCAyLCA1OSwgNzcsIDIyLCAyMzEsIDIzMiwgNywgNiwgMSwgMjU0LCAyNDQsIDIsIAotICAgIDIzMSwgMjMyLCA3LCA0LCAxLCAyNTQsIDI0NCwgMiwgMjMxLCAyMzIsIDcsIDYsIDEsIDI0MywgMjAzLCAyLCA5MSwgNywgNCwgCi0gICAgMSwgMjQzLCAyMDMsIDIsIDkxLCA3LCA2LCAxLCAyNDMsIDIwMywgMiwgMjUwLCAyMzQsIDcsIDQsIDEsIDI0MywgMjAzLCAyLCAKLSAgICAyNTAsIDIzNCwgNywgNiwgMSwgMjM1LCAyNCwgMiwgMjUwLCAyMzQsIDcsIDQsIDEsIDIzNSwgMjQsIDIsIDI1MCwgMjM0LCAKLSAgICA3LCA2LCAxLCAxNDQsIDIsIDIyNiwgMjI0LCA3LCA0LCAxLCAxNDQsIDIsIDIyNiwgMjI0LCA3LCA2LCAxLCAxNDQsIDIsIAotICAgIDIyNiwgMjI1LCAyMiwgMjMxLCAyMzIsIDcsIDQsIDEsIDE0NCwgMiwgMjI2LCAyMjUsIDIyLCAyMzEsIDIzMiwgNywgNiwgMSwgCi0gICAgMjQ1LCA5LCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMjQ1LCA5LCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMjM1LCAxNDUsIDIsIAotICAgIDI1MCwgMjM0LCA3LCA2LCAxLCAyNDYsIDM5LCA3LCA2LCAxLCAyNDksIDYxLCAyLCA0LCAxLCAyMTAsIDE1OSwgNywgNCwgMSwgCi0gICAgMjQ2LCAzOSwgNywgNiwgMSwgMjQzLCAyMDMsIDIsIDE0MiwgNywgNCwgMSwgMjQzLCAyMDMsIDIsIDE0MiwgNywgNiwgMSwgCi0gICAgMjQwLCAxOTksIDcsIDYsIDEsIDIxMSwgMTgxLCA3LCA2LCAxLCAyMzAsIDI2LCAyLCAyNDIsIDEzNiwgNywgNCwgMSwgMjMwLCAKLSAgICAyNiwgMiwgMjQyLCAxMzYsIDcsIDYsIDEsIDExNSwgMiwgMjIyLCAyMzQsIDc3LCAyMiwgMTQyLCA3LCA0LCAxLCAxMTUsIDIsIAotICAgIDIyMiwgMjM0LCA3NywgMjIsIDE0MiwgNywgNiwgMSwgMjU0LCAyNDQsIDIsIDE0MiwgNywgNCwgMSwgMjU0LCAyNDQsIDIsIAotICAgIDE0MiwgNywgNiwgMSwgMTQ0LCAyLCAyMTgsIDEwMywgMjIsIDE0MiwgNywgNCwgMSwgMTQ0LCAyLCAyMTgsIDEwMywgMjIsIAotICAgIDE0MiwgNywgNiwgMSwgMTE1LCAyLCA1MiwgMjQyLCAxMzYsIDcsIDQsIDEsIDExNSwgMiwgNTIsIDI0MiwgMTM2LCA3LCA2LCAKLSAgICAxLCAxMTUsIDIsIDIzNSwgMTkzLCAyNTEsIDE0NiwgNywgNCwgMSwgMTE1LCAyLCAyMzUsIDE5MywgMjUxLCAxNDYsIDcsIDYsIAotICAgIDEsIDE2MCwgMiwgNTIsIDI0MiwgMTM2LCA3LCA0LCAxLCAxNjAsIDIsIDUyLCAyNDIsIDEzNiwgNywgNiwgMSwgMTYwLCAyLCAKLSAgICAyMzUsIDE5MywgMjUxLCAxNDYsIDcsIDQsIDEsIDE2MCwgMiwgMjM1LCAxOTMsIDI1MSwgMTQ2LCA3LCA2LCAxLCAyNDAsIAotICAgIDE1NCwgMiwgNTIsIDI0MiwgMTM2LCA3LCA0LCAxLCAyNDAsIDE1NCwgMiwgNTIsIDI0MiwgMTM2LCA3LCA2LCAxLCAyNDAsIAotICAgIDE1NCwgMiwgMjM1LCAxOTMsIDI1MSwgMTQ2LCA3LCA0LCAxLCAyNDAsIDE1NCwgMiwgMjM1LCAxOTMsIDI1MSwgMTQ2LCA3LCAKLSAgICA2LCAxLCAxNDQsIDIsIDUyLCAyNDIsIDEzNiwgNywgNCwgMSwgMTQ0LCAyLCA1MiwgMjQyLCAxMzYsIDcsIDYsIDEsIDE0NCwgCi0gICAgMiwgMjM1LCAxOTMsIDI1MSwgMTQ2LCA3LCA0LCAxLCAxNDQsIDIsIDIzNSwgMTkzLCAyNTEsIDE0NiwgNywgNiwgMSwgMjIzLCAKLSAgICAyMjQsIDIsIDUyLCAyNDIsIDEzNiwgNywgNCwgMSwgMjIzLCAyMjQsIDIsIDUyLCAyNDIsIDEzNiwgNywgNiwgMSwgMjIzLCAKLSAgICAyMjQsIDIsIDIzNSwgMTkzLCAyNTEsIDE0NiwgNywgNCwgMSwgMjIzLCAyMjQsIDIsIDIzNSwgMTkzLCAyNTEsIDE0NiwgNywgCi0gICAgNiwgMSwgMTA0LCAyLCA1MiwgMjQyLCAxMzYsIDcsIDQsIDEsIDEwNCwgMiwgNTIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxMDQsIAotICAgIDIsIDIzNSwgMTkzLCAyNTEsIDE0NiwgNywgNCwgMSwgMTA0LCAyLCAyMzUsIDE5MywgMjUxLCAxNDYsIDcsIDYsIDEsIDIyMiwgCi0gICAgOTIsIDIsIDI0OSwgMjIwLCA1MSwgNywgNCwgMSwgMjIyLCA5MiwgMiwgMjQ5LCAyMjAsIDUxLCA3LCA2LCAxLCAyMTcsIAotICAgIDE1MywgMiwgMjQ5LCAyMjAsIDUxLCA3LCA0LCAxLCAyMTcsIDE1MywgMiwgMjQ5LCAyMjAsIDUxLCA3LCA2LCAxLCAyMTAsIAotICAgIDIzMSwgNywgNCwgMSwgMjEwLCAyMzEsIDcsIDYsIDEsIDI0MiwgNjEsIDIsIDI1MCwgMjM0LCA3LCA0LCAxLCAyNDIsIDYxLCAKLSAgICAyLCAyNTAsIDIzNCwgNywgNiwgMSwgMjMwLCAyNiwgMiwgMTk5LCA0NCwgMjMzLCAzNiwgNywgNCwgMSwgMjQ5LCA2MSwgMiwgCi0gICAgMjQ5LCAxMDAsIDcsIDYsIDEsIDIyNiwgMTM0LCA3LCA0LCAxLCAyMjYsIDEzNCwgNywgNiwgMSwgMjEwLCAxNjAsIDIsIAotICAgIDEwMywgNywgNCwgMSwgMjEwLCAxNjAsIDIsIDEwMywgNywgNiwgMSwgMTE1LCAyLCA1OSwgNDgsIDcsIDQsIDEsIDExNSwgMiwgCi0gICAgNTksIDQ4LCA3LCA2LCAxLCAxNjAsIDIsIDI1MCwgMTgzLCA3LCA0LCAxLCAxNjAsIDIsIDI1MCwgMTgzLCA3LCA2LCAxLCAKLSAgICAxNDQsIDIsIDI0OCwgMiwgMjIsIDIzMSwgMjMyLCA3LCA0LCAxLCAxNDQsIDIsIDI0OCwgMiwgMjIsIDIzMSwgMjMyLCA3LCAKLSAgICA2LCAxLCAxNDQsIDIsIDIxNiwgODksIDIyLCAyMzEsIDIzMiwgNywgNCwgMSwgMTQ0LCAyLCAyMTYsIDg5LCAyMiwgMjMxLCAKLSAgICAyMzIsIDcsIDYsIDEsIDE0NCwgMiwgNTksIDQ4LCA3LCA0LCAxLCAxNDQsIDIsIDU5LCA0OCwgNywgNiwgMSwgMTQ0LCAyLCAKLSAgICA1OSwgNzcsIDIyLCAyMzEsIDIzMiwgNywgNCwgMSwgMTQ0LCAyLCA1OSwgNzcsIDIyLCAyMzEsIDIzMiwgNywgNiwgMSwgCi0gICAgMjExLCAxMTgsIDIsIDIzMSwgMjMyLCA3LCA0LCAxLCAyMTEsIDExOCwgMiwgMjMxLCAyMzIsIDcsIDQsIDEsIDIzMywgMTQ5LCAKLSAgICAyLCAyNDksIDEwMCwgNywgNCwgMSwgMjMwLCAyNiwgMiwgMjQ5LCAxMDAsIDcsIDQsIDEsIDIxNywgMTUzLCAyLCAyNDksIAotICAgIDEwMCwgNywgNCwgMSwgMjQ3LCAxMTksIDIzNSwgMTQ0LCA3LCA0LCAxLCAyNDgsIDE0MywgMjQ3LCAyMjAsIDcsIDQsIDEsIAotICAgIDIyNCwgMzEsIDI0NywgMjIwLCA3LCA2LCAxLCAxMTUsIDIsIDkxLCA3LCA2LCAxLCAyNTEsIDY3LCAyLCA5MSwgNywgNCwgMSwgCi0gICAgMjUxLCA2NywgMiwgOTEsIDcsIDYsIDEsIDIzMywgMTQ5LCAyLCAxMzAsIDcsIDYsIDEsIDIxNywgMTUzLCAyLCAyNDcsIAotICAgIDI1NSwgOTEsIDcsIDQsIDEsIDIyMiwgOTIsIDIsIDIxNywgMjUwLCAyMTcsIDc3LCA3LCA0LCAxLCAyMTAsIDE2MCwgMiwgCi0gICAgMjE3LCAyNTAsIDIxNywgNzcsIDcsIDYsIDEsIDI0MiwgMTgwLCAyMTgsIDEyOSwgNywgNCwgMSwgMjQyLCAxODAsIDIxOCwgCi0gICAgMTI5LCA3LCA2LCAxLCA1NywgMiwgOTEsIDcsIDYsIDEsIDEwNCwgMTMwLCA3LCA2LCAxLCAyMTUsIDk0LCAyMTQsIDEwNSwgCi0gICAgNywgNiwgMSwgMTYwLCAyLCA5MSwgNywgNCwgMSwgMTYwLCAyLCA5MSwgNywgNiwgMSwgMjM1LCAxNDUsIDIsIDkxLCA3LCA0LCAKLSAgICAxLCAyMzUsIDE0NSwgMiwgOTEsIDcsIDYsIDEsIDQsIDIyNCwgOTcsIDIsIDI0MSwgNTIsIDIxNywgNzcsIDcsIDQsIDEsIAotICAgIDIyNCwgOTcsIDIsIDI0MSwgNTIsIDIxNywgNzcsIDcsIDYsIDEsIDIyMywgMjI0LCAyLCA5MSwgNywgNCwgMSwgMjIzLCAKLSAgICAyMjQsIDIsIDkxLCA3LCA2LCAxLCAyMTEsIDExOCwgMiwgOTEsIDcsIDQsIDEsIDIxMSwgMTE4LCAyLCA5MSwgNywgNCwgMSwgCi0gICAgMjE1LCA5NCwgNjEsIDcsIDQsIDEsIDI1NCwgMTQzLCA3LCA0LCAxLCAyMTUsIDk0LCAyNTQsIDE0MywgNywgNCwgMSwgNTcsIAotICAgIDIsIDEwMywgNywgNCwgMSwgMjA0LCA3NiwgNywgNCwgMSwgMjUxLCA2NywgMiwgMjQ5LCAxMDAsIDcsIDQsIDEsIDI0OSwgCi0gICAgNjEsIDIsIDIxNywgNzcsIDcsIDQsIDEsIDI0OSwgNjEsIDIsIDEwMywgNywgNCwgMSwgMjIzLCA0OSwgNzUsIDcsIDQsIDEsIAotICAgIDIyMSwgMTk1LCA3LCA0LCAxLCAyMjEsIDE5NiwgMiwgMTAzLCA3LCA0LCAxLCAyMDQsIDc1LCA3LCA0LCAxLCAyMjMsIDQ5LCAKLSAgICAyMDQsIDc1LCA3LCA0LCAxLCAyMjMsIDQ5LCAyMDQsIDE2MCwgMiwgMTAzLCA3LCA0LCAxLCAyNTAsIDAsIDIyMywgNDksIAotICAgIDIwNCwgNzUsIDcsIDQsIDEsIDI0NywgMTE5LCAyMzUsIDE0NSwgMiwgOTEsIDcsIDQsIDEsIDI0MywgMjAzLCAyLCAxMDMsIAotICAgIDcsIDQsIDEsIDExOSwgMjQzLCAyMDIsIDcsIDEsIDQsIDYsIDI0MywgMjAyLCA3LCA0LCAxLCAyNDMsIDEwNywgNywgNCwgMSwgCi0gICAgMjIzLCAxNTEsIDI0MCwgMjQ4LCA3LCA0LCAxLCAyMTUsIDk0LCAyNDIsIDYwLCA3LCA0LCAxLCAyNDIsIDYxLCAyLCAxMDMsIAotICAgIDcsIDQsIDEsIDI0MSwgMjA4LCAyLCAxMDMsIDcsIDQsIDEsIDI0MCwgMTU0LCAyLCA5MSwgNywgNCwgMSwgMjM1LCAxODUsIAotICAgIDcsIDEsIDQsIDYsIDczLCA3LCA0LCAxLCAyMzMsIDE0OSwgMiwgMjMwLCAyMjQsIDE4MiwgNywgNCwgMSwgMjMzLCAxNDksIAotICAgIDIsIDI1MiwgNDEsIDcsIDQsIDEsIDIzMywgMTQ5LCAyLCAyMjMsIDU1LCAxMDMsIDcsIDQsIDEsIDIzMywgMSwgNywgNCwgMSwgCi0gICAgMjE1LCA5NCwgMTkzLCA3LCA0LCAxLCAyMTUsIDk0LCAyMzIsIDUwLCAyLCAxOTksIDIzMywgMzYsIDcsIDQsIDEsIDIzMiwgCi0gICAgNTAsIDIsIDEwMywgNywgNCwgMSwgMjMwLCAyNiwgMiwgNDMsIDEwMywgNywgNCwgMSwgMjMwLCAyNiwgMiwgMjIzLCA1NSwgCi0gICAgMTAzLCA3LCAxLCA0LCA2LCAyMzAsIDI1LCA3LCA0LCAxLCAyNTIsIDEzNCwgNzYsIDcsIDEsIDQsIDYsIDIyNiwgMjM0LCA3LCAKLSAgICA0LCAxLCAyNTAsIDAsIDIyNiwgMjAxLCA3LCA0LCAxLCAyMjUsIDEzMywgNywgNCwgMSwgMjE1LCA5NCwgMTUzLCA3LCA0LCAKLSAgICAxLCAyMTUsIDk0LCAyMjMsIDIyNCwgMiwgMTk5LCAyMzMsIDM2LCA3LCA0LCAxLCAyMTUsIDk0LCAyMjMsIDIyNCwgMiwgCi0gICAgMTAzLCA3LCA0LCAxLCAyMjMsIDIyNCwgMiwgMTk5LCAyMzMsIDM2LCA3LCA0LCAxLCAyMjMsIDIyNCwgMiwgMjE3LCA3NywgCi0gICAgNywgNCwgMSwgMjIzLCAyMjQsIDIsIDI0NCwgODcsIDcsIDQsIDEsIDIyMywgNDksIDIyMywgMjI0LCAyLCAyNDQsIDg3LCA3LCAKLSAgICAxLCA0LCA2LCAxNTMsIDcsIDEsIDQsIDYsIDIzNSwgMTkzLCAxNTMsIDcsIDQsIDEsIDIyMiwgOTIsIDIsIDEwMywgNywgNCwgCi0gICAgMSwgMjQ1LCA3NSwgNywgNCwgMSwgMjQ3LCAxMTksIDIzNSwgMTQ1LCAyLCAyMTgsIDEwMywgMjIsIDEwMywgNywgNCwgMSwgCi0gICAgMjE4LCAyMzEsIDIyMywgNDksIDI0NSwgNzUsIDcsIDQsIDEsIDI0NSwgNzYsIDIsIDI0OSwgMTAwLCA3LCA0LCAxLCAyMTUsIAotICAgIDk0LCAyMTcsIDE1MiwgNywgNCwgMSwgMjE3LCAxNTMsIDIsIDIyMywgNTUsIDEwMywgNywgNCwgMSwgMTA0LCAxMzAsIDcsIAotICAgIDQsIDEsIDIxNCwgMTU3LCA3LCA0LCAxLCAyMTQsIDEwNiwgMiwgMTAzLCA3LCA0LCAxLCAyMTUsIDk0LCAyMTQsIDEwNSwgNywgCi0gICAgNCwgMSwgMjE1LCA5NCwgMjEyLCA5OCwgNywgNCwgMSwgMjE1LCA5NCwgMjExLCAxMTcsIDcsIDEsIDQsIDYsIDIxMSwgMTE3LCAKLSAgICA3LCA0LCAxLCAyMTAsIDE2MCwgMiwgMjIzLCA1NSwgMTAzLCA3LCA0LCAxLCAyMTAsIDE2MCwgMiwgMjQ5LCAxMDAsIDcsIDQsIAotICAgIDEsIDI0NSwgOCwgNywgNCwgMSwgMjQ1LCA5LCAyLCAyNDksIDEwMCwgNywgMSwgMjQyLCAxODAsIDIxOCwgMTI5LCA3LCAxLCAKLSAgICAyMjUsIDEzOSwgMjEzLCAxMzUsIDI0MywgMjQ5LCA3LCAxLCAyMzUsIDE5MywgMjQyLCAxODAsIDIxOCwgMTI5LCA3LCAxLCAKLSAgICAyMTgsIDExMCwgMjUxLCA2NiwgNywgMSwgMjUxLCAyNDYsIDI1MCwgMTEsIDcsIDEsIDQsIDYsIDI1MywgMTU4LCA3LCA0LCAKLSAgICAxLCAyNTAsIDAsIDIwNCwgNzUsIDcsIDEsIDQsIDYsIDI0MywgMjAzLCAyLCAxMDMsIDcsIDEsIDQsIDYsIDI0MiwgNjAsIDcsIAotICAgIDQsIDEsIDIzNSwgMTQ1LCAyLCAyNDksIDEyNywgNywgNCwgMSwgMjE1LCA5NCwgMjM1LCAyMywgNywgMSwgNCwgNiwgMTU2LCAKLSAgICA3LCA0LCAxLCAyMjQsIDk3LCAyLCAxMDMsIDcsIDEsIDI0MiwgMTgwLCAyMTgsIDEzMCwgMiwgOTEsIDcsIDEsIDIyMywgNDksIAotICAgIDI0MiwgMTgwLCAyMTgsIDEzMCwgMiwgOTEsIDcsIDQsIDEsIDI0NiwgNDAsIDI0NywgMjIwLCA3LCA0LCAxLCAyNDgsIDI2LCAKLSAgICAyNDcsIDIyMCwgNywgNCwgMSwgMjQ2LCA0MCwgMjQ3LCAyMjEsIDIsIDI0OSwgMTAwLCA3LCA0LCAxLCAyMTUsIDE4NSwgCi0gICAgMjQ3LCAyMjAsIDcsIDQsIDEsIDIxNiwgMjM1LCAyNDcsIDIyMCwgNywgNCwgMSwgMjE3LCAyOSwgMjQ3LCAyMjEsIDIsIAotICAgIDI0OSwgMTAwLCA3LCA0LCAxLCAyNDQsIDEzNCwgMjQ3LCAyMjAsIDcsIDQsIDEsIDIzMiwgMTAwLCAyNDcsIDIyMCwgNywgNCwgCi0gICAgMSwgMjMyLCA1MSwgMjQ3LCAyMjAsIDcsIDEsIDI1MSwgMjQ2LCAyMjUsIDE4MSwgNywgMSwgMjUxLCAyNTQsIDIyNSwgMTgxLCAKLSAgICA3LCA0LCAxLCAyMTUsIDk0LCAyNDIsIDYxLCAyLCAyNDQsIDg3LCA3LCA0LCAxLCAyMTUsIDk0LCAyNDIsIDYxLCAyLCAyNDQsIAotICAgIDg4LCAyMiwgMjE3LCA3NywgNTgsIDEsIDQsIDI0MiwgNjAsIDU4LCAxLCA0LCAyNDIsIDYxLCAyLCAxMDMsIDU4LCAxLCA0LCAKLSAgICAyMzUsIDE0NCwgNTgsIDEsIDQsIDE1MywgNTgsIDEsIDQsIDIxNSwgOTQsIDE1MywgNTgsIDEsIDQsIDIxNSwgOTQsIDIyMywgCi0gICAgMjI0LCAyLCAxMDMsIDU4LCAxLCA0LCA2LCAyMzUsIDE5MywgMTUzLCA1OCwgMSwgNCwgMjEyLCA5OCwgNTgsIDEsIDQsIAotICAgIDIxMSwgMTE3LCA1OCwgMSwgMjI0LCAxOTAsIDU4LCAxLCA1MiwgMjI0LCAxOTAsIDU4LCAxLCAyMTUsIDk0LCAyNDksIDIxOSwgCi0gICAgNTgsIDEsIDI1NCwgNTcsIDU4LCAxLCAyMjMsIDQ5LCAyNDksIDIxOSwgNTgsIDEsIDQ0LCAxNjMsIDIyMiwgMjMzLCA1OCwgCi0gICAgMSwgNDMsIDE2MywgMjIyLCAyMzMsIDU4LCAxLCAyNDIsIDE4MCwgMjE4LCAxMjksIDU4LCAxLCAyMjMsIDQ5LCAyNDIsIAotICAgIDE4MCwgMjE4LCAxMjksIDU4LCAxLCA0MywgMjUzLCAyNDksIDU4LCAxLCA0NCwgMjUzLCAyNDksIDU4LCAxLCAxMjAsIDI1MywgCi0gICAgMjQ5LCA1OCwgMSwgMTI0LCAyNTMsIDI0OSwgNTgsIDEsIDI1MCwgMzEsIDI1NSwgMTQsIDI1MCwgMjM0LCA1OCwgMSwgNjcsIAotICAgIDIzMiwgMjEzLCA1OCwgMSwgMjMxLCAyMzIsIDU4LCAxLCAyNTUsIDMsIDI1NSwgMTQsIDU4LCAxLCAyNDIsIDEzNywgMjU1LCAKLSAgICAxNCwgNTgsIDEsIDEyMSwgNjcsIDIzMiwgMjEzLCA1OCwgMSwgMTIxLCAyMzEsIDIzMiwgNTgsIDEsIDEyMSwgMjQyLCAxMzcsIAotICAgIDI1NSwgMTQsIDU4LCAxLCAxMjEsIDI1NSwgMywgMjU1LCAxNCwgNTgsIDEsIDIxNSwgMjIyLCAyNDksIDIyNiwgNTgsIDEsIAotICAgIDE2MywgMjE1LCAyMjIsIDI0OSwgMjI2LCA1OCwgMSwgMjUwLCAxNzMsIDQ0LCAxNjMsIDIyMiwgMjMzLCA1OCwgMSwgMjUwLCAKLSAgICAxNzMsIDQzLCAxNjMsIDIyMiwgMjMzLCA1OCwgMSwgMTIwLCAyMTcsIDg3LCA1OCwgMSwgMTI0LCAyMTcsIDg3LCA1OCwgMSwgCi0gICAgOTYsIDUwLCA1OCwgMSwgMjMwLCAxODIsIDUwLCAyNTEsIDE0NiwgNTksIDQ4LCAyMjIsIDIzNCwgNDgsIDIyNiwgMjI0LCA0LCAKLSAgICAxODIsIDUyLCAyNTUsIDMsIDI1NSwgMTQsIDU4LCAxLCAyMjMsIDM2LCAxMDMsIDU4LCAxLCAyNDksIDEzMSwgMjU1LCAxNCwgCi0gICAgNTgsIDEsIDQsIDI0MywgMTA3LCA1OCwgMSwgNCwgMTU2LCA1OCwgMSwgNCwgMjIyLCA5MSwgNTgsIDEsIDQsIDIxMSwgMTc4LCAKLSAgICA1OCwgMSwgNCwgMjIzLCA0OSwgMjQyLCAxODAsIDIxOCwgMTI5LCA1OCwgMSwgMjQ1LCAyMCwgMTM4LCAxMzAsIDU4LCAxLCAKLSAgICAxMjUsIDEzOCwgMTMwLCA1OCwgMSwgMjMwLCAyMjUsIDEzOCwgMTMwLCA1OCwgMSwgMTIxLCAxMzgsIDEzMCwgNTgsIDEsIAotICAgIDI0NSwgMTksIDEzOCwgMTMwLCA1OCwgMSwgMjEwLCAyNTQsIDI0OCwgNDQsIDEzOCwgNzgsIDU4LCAxLCAyMTEsIDcwLCAKLSAgICAyNDgsIDQ0LCAxMzgsIDc4LCA1OCwgMSwgMjEzLCAxMzMsIDU4LCAxLCAyMTQsIDE4NiwgNTgsIDEsIDUyLCAyNTQsIDU3LCAKLSAgICA1OCwgMSwgMTIxLCAxMjQsIDI1MywgMjQ5LCA1OCwgMSwgMTIxLCAxMjAsIDI1MywgMjQ5LCA1OCwgMSwgMTIxLCA0MywgCi0gICAgMjUzLCAyNDksIDU4LCAxLCAxMjEsIDQ0LCAyNTMsIDI0OSwgNTgsIDEsIDEyMSwgMjIyLCAyMzMsIDU4LCAxLCAyMzAsIAotICAgIDIyNCwgMjQyLCAxMzcsIDI1NSwgMTQsIDU4LCAxLCAyMzAsIDIyNCwgNTIsIDI0MiwgMTM3LCAyNTUsIDE0LCA1OCwgMSwgCi0gICAgMjMwLCAyMjQsIDUyLCAyNTUsIDMsIDI1NSwgMTQsIDU4LCAxLCAxMjEsIDE4MiwgNTgsIDEsIDIyMywgMTU3LCAyNDksIAotICAgIDIyNiwgNTgsIDEsIDI1MiwgNTgsIDEyNSwgMjE2LCAzMCwgNTgsIDEsIDI0NSwgMTQzLCAxMjUsIDIxNiwgMzAsIDU4LCAxLCAKLSAgICAyNTIsIDU4LCAxMjEsIDIxNiwgMzAsIDU4LCAxLCAyNDUsIDE0MywgMTIxLCAyMTYsIDMwLCA1OCwgMSwgMjIwLCA1NCwgNTgsIAotICAgIDEsIDIwNCwgMjIwLCA1NCwgNTgsIDEsIDEyMSwgNDMsIDc0LCAzOCwgMjQyLCAxMzcsIDI1NSwgMTQsIDM4LCAyNTUsIDMsIAotICAgIDI1NSwgMTQsIDM4LCAyNTAsIDMxLCAyNTUsIDE0LCAzOCwgMTgyLCAzOCwgMjMxLCAyMzIsIDM4LCAyMjYsIDExOSwgMzgsIAotICAgIDI1MSwgMTQ2LCAzOCwgNTksIDQ4LCAzOCwgMjQ4LCAxLCAzOCwgMjQxLCA1MiwgNDgsIDM4LCAyMjIsIDIzNCwgNDgsIDM4LCAKLSAgICA1MiwgMjU1LCAzLCAyNTUsIDE0LCAzOCwgMjUwLCAyMzQsIDM4LCA2NywgMjMyLCAyMTQsIDQ4LCAzOCwgNTIsIDY3LCAyMzIsIAotICAgIDIxNCwgNDgsIDM4LCA1MiwgMjQyLCAxMzcsIDI1NSwgMTQsIDM4LCAyNTAsIDI1NSwgMzgsIDIzNSwgMTkzLCAyNTEsIDE0NiwgCi0gICAgMzgsIDIxNSwgOTQsIDI0OSwgMjIwLCA0OCwgMzgsIDI0OSwgMjIwLCA0OCwgMzgsIDIyMywgNDksIDI0OSwgMjIwLCA0OCwgCi0gICAgMzgsIDI0OSwgMjIwLCA3NywgMjIyLCAyNTEsIDM4LCAyNDIsIDEzNywgMjU1LCAxNSwgNTEsIDM4LCAyNTUsIDMsIDI1NSwgCi0gICAgMTUsIDUxLCAzOCwgNDMsIDIxNywgODgsIDUxLCAzOCwgNDQsIDIxNywgODgsIDUxLCAzOCwgNDMsIDI1NCwgMTEwLCA0OCwgCi0gICAgMzgsIDI0MCwgMjQ4LCAzOCwgNDMsIDE2MywgMjIyLCAyMzQsIDUxLCAzOCwgMTIwLCAyMTcsIDg4LCA1MSwgMzgsIDEyNCwgCi0gICAgMjE3LCA4OCwgNTEsIDM4LCA5NiwgNSwgNTEsIDM4LCAyMzAsIDE4MiwgNSwgNTEsIDM4LCAyMjYsIDY0LCAyNDEsIDUyLCAKLSAgICA1MSwgMzgsIDIyMywgNTUsIDI0MSwgNTIsIDUxLCAzOCwgNTksIDUxLCAzOCwgMjQ4LCAyLCA1MSwgMzgsIDIyMiwgMjM0LCAKLSAgICA1MSwgMzgsIDI0OSwgMjIwLCA1MSwgMzgsIDI1MCwgMTgzLCAzOCwgMjI2LCAyMjQsIDM4LCA2NywgMjMyLCAyMTQsIDUxLCAKLSAgICAzOCwgMjUxLCAxNDAsIDUxLCAzOCwgMjM1LCAxOTMsIDUyLCAyNTQsIDI0LCA1MSwgMzgsIDI1MCwgMjM1LCA1MSwgMzgsIAotICAgIDI1MCwgMzEsIDI1NSwgMTUsIDUxLCAzOCwgMjUxLCAxNDcsIDUxLCAzOCwgMjM1LCAxOTMsIDI1MSwgMTQ3LCA1MSwgMzgsIAotICAgIDIxNiwgODksIDUxLCAzOCwgMjMxLCAyMzMsIDUxLCAzOCwgMTIxLCAyMzIsIDIxMywgMzgsIDUyLCAxMjEsIDIzMiwgMjEzLCAKLSAgICAzOCwgMjE2LCA4OSwgMjI2LCAxMjAsIDM4LCAyMTksIDI1MSwgMjE4LCAxMDMsIDIyNiwgMTIwLCAzOCwgMTk5LCAyMTgsIAotICAgIDEwMywgMjI2LCAxMjAsIDM4LCAyMTksIDI1MSwgMjE5LCA0NywgMjI2LCAxMjAsIDM4LCAxOTksIDIxOSwgNDcsIDIyNiwgCi0gICAgMTIwLCAzOCwgNDQsIDE2MywgMjIyLCAyMzQsIDUxLCAzOCwgMjM1LCAxOTMsIDI1MSwgMTQwLCA1MSwgMzgsIDQyLCA1MSwgCi0gICAgMzgsIDIyMSwgMTgwLCA1MSwgMzgsIDIxMSwgMTc5LCA0OCwgMzgsIDY3LCAxODIsIDM4LCA1MiwgMjI2LCAxMTksIDM4LCAKLSAgICAyNDIsIDEzNywgMTM4LCA3OCwgMzgsIDI1NSwgMywgMTM4LCA3OCwgMzgsIDI2LCAyMjUsIDE3NSwgMzgsIDI2LCAyMzQsIDIsIAotICAgIDM4LCAyNiwgMjQ3LCAyNTIsIDIxNiwgMTgsIDM4LCAyNiwgMjEwLCAyMTksIDM4LCAyNTEsIDE0MCwgNDgsIDM4LCAyNDUsIAotICAgIDk4LCA1LCA1MSwgMzgsIDUyLCA2NywgMjMyLCAyMTQsIDUxLCAzOCwgNDMsIDI1NCwgMTEwLCA1MSwgMzgsIDIyOCwgNTIsIAotICAgIDIxNiwgODksIDQ4LCAzOCwgMjQxLCA1OCwgNDgsIDM4LCAyNTQsIDE0OCwgMTI4LCAyMTYsIDQyLCA0OCwgMzgsIDQzLCA0NCwgCi0gICAgODAsIDUxLCAzOCwgMjE0LCAxNTMsIDgwLCA1MSwgMzgsIDI0MiwgMTQyLCAyMzUsIDYzLCAzOCwgNDQsIDI1MywgMjUwLCAKLSAgICA0OCwgMzgsIDQzLCAxNjMsIDIyMiwgMjM0LCA0OCwgMzgsIDI0NCwgMTMxLCAzOCwgMjExLCAxNzksIDUxLCAzOCwgNDMsIAotICAgIDI1MywgMjUwLCA1MSwgMzgsIDQ0LCAyNTMsIDI1MCwgNTEsIDM4LCA0NCwgMjUzLCAyNTAsIDIyLCAxMjAsIDI1MywgMjUwLCAKLSAgICA1MSwgMzgsIDQ0LCAxNjMsIDIyMiwgMjM0LCA0OCwgMzgsIDU5LCA3NywgMjIyLCAyNTEsIDM4LCAyNTMsIDIxNywgNTEsIAotICAgIDM4LCA1MiwgMjIyLCAyMzQsIDUxLCAzOCwgMjEwLCAzNSwgNDgsIDM4LCA1MiwgMjUxLCAxNDcsIDUxLCAzOCwgNTIsIDI1MSwgCi0gICAgMTQ2LCAzOCwgNTIsIDIzMSwgMjMyLCAzOCwgNTIsIDIzMSwgMjMzLCA1MSwgMzgsIDUyLCAxODIsIDM4LCA1MiwgMjM1LCAKLSAgICAxOTMsIDI1MSwgMTQ2LCAzOCwgNTIsIDk3LCA4MCwgNTEsIDM4LCA3LCA0LCAxLCA2MSwgMzgsIDcsIDQsIDEsIDc1LCAzOCwgCi0gICAgNywgNCwgMSwgNzMsIDM4LCA3LCA0LCAxLCA3NiwgMzgsIDcsIDQsIDEsIDcwLCAzOCwgNywgNCwgMSwgMjUxLCA2NiwgMzgsIAotICAgIDcsIDQsIDEsIDI0OSwgNjAsIDM4LCA3LCA0LCAxLCAyNDIsIDYwLCAzOCwgNywgNCwgMSwgMTkzLCAzOCwgNywgNCwgMSwgCi0gICAgMTUzLCAzOCwgNywgNCwgMSwgMjE3LCAxNTIsIDM4LCA3LCA0LCAxLCAyMTQsIDEwNSwgMzgsIDcsIDQsIDEsIDIxMSwgMTc4LCAKLSAgICAyNiwgNiwgMSwgMjQxLCAxOTYsIDI2LCA0LCAxLCAyNDEsIDE5NiwgMjYsIDYsIDEsIDI1NCwgMjMsIDIyMSwgMjQ2LCAyNiwgCi0gICAgNCwgMSwgMjU0LCAyMywgMjIxLCAyNDYsIDI2LCAyMjcsIDE5OCwgNTAsIDI2LCAyMzIsIDEwOCwgMjI3LCAxOTgsIDUwLCAKLSAgICAyNiwgNiwgMSwgMjI2LCA1MSwgMjQ3LCAyMjcsIDI2LCA0LCAxLCAyMjYsIDUxLCAyNDcsIDIyNywgMjYsIDIxMCwgMjE5LCAKLSAgICAyNiwgNCwgMjIzLCA0OSwgMjMyLCA4MywgMjE5LCAxNzgsIDg3LCAyNiwgNCwgMjQ2LCAxMTgsIDIzMiwgODMsIDIxOSwgCi0gICAgMTc4LCA4NywgMjYsIDQsIDIyMywgNDksIDI0NiwgMTE4LCAyMzIsIDgzLCAyMTksIDE3OCwgODcsIDI2LCAyMjQsIDEzLCAKLSAgICA3OCwgMjYsIDIxNiwgMTgsIDI2LCAyNDcsIDI1MiwgMjE2LCAxOCwgMjYsIDYsIDEsIDI1NCwgMTQ0LCAyLCAyMTYsIDE4LCAKLSAgICAyNiwgMjU0LCA5NywgMjE3LCAyLCAyNiwgNiwgMSwgMjQ1LCAxMDEsIDIsIDIxNiwgMTgsIDI2LCA2LCAxLCAyNDUsIDY0LCAKLSAgICAyLCAyMTYsIDE4LCAyNiwgNiwgMSwgMjM1LCAxODYsIDIsIDIxNiwgMTgsIDI2LCA2LCAxLCAyMjYsIDIwMCwgMiwgMjE2LCAKLSAgICAxOCwgMjYsIDYsIDEsIDIxNCwgMTU4LCAyLCAyMTYsIDE4LCAyNiwgNiwgMSwgMjI2LCAyMDIsIDIsIDIxNiwgMTgsIDI2LCAKLSAgICA0LCAxLCAyMzUsIDE4NiwgMiwgMjQ3LCAyNTIsIDIyLCAyMTYsIDE4LCAyNiwgNiwgMSwgMjU0LCAxNDMsIDI2LCA2LCAxLCAKLSAgICAyNTIsIDI2LCAyNiwgNiwgMSwgMjQzLCAxMDcsIDI2LCA2LCAxLCAyNDgsIDU0LCAyNiwgNiwgMSwgMjQ1LCAxMDAsIDI2LCAKLSAgICA2LCAxLCAyMTAsIDg1LCAyNiwgNiwgMSwgMjQ1LCA2MywgMjYsIDYsIDEsIDIxNiwgMTc5LCAyNiwgNiwgMSwgMjM1LCAxODUsIAotICAgIDI2LCA2LCAxLCAyMzQsIDIyMiwgMjYsIDYsIDEsIDIzMywgOTgsIDI2LCA2LCAxLCAyMzAsIDEwMiwgMjYsIDYsIDEsIDIyNywgCi0gICAgMjM3LCAyNiwgNiwgMSwgMjExLCAxNTcsIDI2LCA2LCAxLCAyMjYsIDE5OSwgMjYsIDYsIDEsIDIyNSwgMTA4LCAyNiwgNiwgCi0gICAgMSwgMjIzLCAzNywgMjYsIDYsIDEsIDIxOSwgMTc3LCAyNiwgNiwgMSwgMjE3LCA0MSwgMjYsIDYsIDEsIDIxNCwgMTU3LCAKLSAgICAyNiwgNiwgMSwgMjI1LCAxMzMsIDI2LCA2LCAxLCAyNTAsIDExMCwgMjYsIDYsIDEsIDIyNCwgMTYxLCAyNiwgNiwgMSwgCi0gICAgMjI2LCAyMDEsIDI2LCA2LCAxLCAyMzUsIDE4NiwgMiwgMjQ3LCAyNTEsIDI2LCA2LCAxLCAyMTQsIDE1OCwgMiwgMjQ3LCAKLSAgICAyNTEsIDI2LCA0LCAxLCAyNTQsIDE0NCwgMiwgMjE2LCAxOCwgMjYsIDQsIDEsIDI0NSwgMTAxLCAyLCAyMTYsIDE4LCAyNiwgCi0gICAgNCwgMSwgMjQ1LCA2NCwgMiwgMjE2LCAxOCwgMjYsIDQsIDEsIDIzNSwgMTg2LCAyLCAyMTYsIDE4LCAyNiwgNCwgMSwgMjE0LCAKLSAgICAxNTgsIDIsIDI0NywgMjUyLCAyMiwgMjE2LCAxOCwgMjYsIDQsIDEsIDI1NCwgMTQzLCAyNiwgNCwgMSwgMjUyLCAyNiwgMjYsIAotICAgIDQsIDEsIDI0MywgMTA3LCAyNiwgNCwgMSwgMjQ4LCA1NCwgMjYsIDQsIDEsIDI0NSwgMTAwLCAyNiwgNCwgMSwgMjEwLCA4NSwgCi0gICAgMjYsIDQsIDEsIDI0NSwgNjMsIDI2LCA0LCAxLCAyMTYsIDE3OSwgMjYsIDQsIDEsIDIzNSwgMTg1LCAyNiwgNCwgMSwgMjM0LCAKLSAgICAyMjIsIDI2LCA0LCAxLCAyMzMsIDk4LCAyNiwgNCwgMSwgMjMwLCAxMDIsIDI2LCA0LCAxLCAyMjcsIDIzNywgMjYsIDQsIDEsIAotICAgIDIxMSwgMTU3LCAyNiwgNCwgMSwgMjI2LCAxOTksIDI2LCA0LCAxLCAyMjUsIDEwOCwgMjYsIDQsIDEsIDIyMywgMzcsIDI2LCAKLSAgICA0LCAxLCA0MCwgMjE5LCAxNzcsIDI2LCA0LCAxLCAyMTksIDE3NywgMjYsIDQsIDEsIDIxNywgNDEsIDI2LCA0LCAxLCAyMTQsIAotICAgIDE1NywgMjYsIDQsIDEsIDIyNSwgMTMzLCAyNiwgNCwgMSwgMjUwLCAxMTAsIDI2LCA0LCAxLCAyMjQsIDE2MSwgMjYsIDQsIAotICAgIDEsIDIyNiwgMjAxLCAyNiwgNCwgMSwgMjM1LCAxODYsIDIsIDI0NywgMjUxLCAyNiwgNCwgMSwgMjE0LCAxNTgsIDIsIDI0NywgCi0gICAgMjUxLCAyNiwgNCwgMSwgMjI2LCAyMDAsIDIsIDIxNiwgMTgsIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjE2LCAxOCwgMjYsIAotICAgIDQsIDEsIDIyNiwgMjAyLCAyLCAyMTYsIDE4LCAyNiwgNiwgMjM0LCAyNDcsIDg3LCAyNiwgMjUyLCAyNywgODcsIDI2LCAKLSAgICAyMTYsIDE4MCwgODcsIDI2LCAyMTQsIDE1OCwgMiwgMjQxLCA1MiwgODcsIDI2LCAyMTQsIDE1OCwgMiwgMjU1LCAzLCAyMiwgCi0gICAgMjQxLCA1MiwgODcsIDI2LCAyMTQsIDE1OCwgMiwgMjQ4LCAyLCAyMiwgMjQxLCA1MiwgODcsIDI2LCAyMjUsIDEzNCwgODcsIAotICAgIDI2LCAyMjUsIDEwOSwgODcsIDI2LCAyMzQsIDI0NywgODcsIDI2LCAxLCAyNTQsIDIzLCAyMzQsIDYsIDI2LCA0LCAxLCAKLSAgICAyNTQsIDIzLCAyMzQsIDYsIDI2LCAxLCAyMTgsIDEzNywgMjYsIDQsIDEsIDIxOCwgMTM3LCAyNiwgMSwgMjQ3LCAyMjcsIAotICAgIDI2LCA0LCAxLCAyNDcsIDIyNywgMjYsIDEsIDIzNCwgNiwgMjYsIDQsIDEsIDIzNCwgNiwgMjYsIDEsIDIyMSwgMjQ2LCAyNiwgCi0gICAgNCwgMSwgMjIxLCAyNDYsIDgxLCA2LCAxLCAyMjAsIDU1LCA4MSwgNCwgMSwgMjIwLCA1NSwgODEsIDYsIDEsIDI0NCwgMTQwLCAKLSAgICA4MSwgNCwgMSwgMjQ0LCAxNDAsIDgxLCA2LCAxLCAyMzQsIDExNywgODEsIDQsIDEsIDIzNCwgMTE3LCA4MSwgNiwgMSwgCi0gICAgMjQxLCA0NSwgODEsIDQsIDEsIDI0MSwgNDUsIDgxLCA2LCAxLCAyNDMsIDEwMiwgODEsIDQsIDEsIDI0MywgMTAyLCA4MSwgCi0gICAgNiwgMSwgMjIwLCAyMiwgODEsIDQsIDEsIDIyMCwgMjIsIDgxLCA2LCAxLCAyNDgsIDY5LCA4MSwgNCwgMSwgMjQ4LCA2OSwgCi0gICAgMjYsIDIzNCwgMjIzLCA4NywgMjYsIDIyMywgMzgsIDg3LCAyNiwgMjMyLCA4MywgMjE5LCAxNzgsIDg3LCAyNiwgMSwgMjEwLCAKLSAgICAyMjQsIDI2LCA2LCAyMTYsIDE4MCwgODcsIDI2LCAyMzIsIDgzLCAyNDUsIDEwMSwgODcsIDI2LCAyMjMsIDQ5LCAyMzIsIAotICAgIDgzLCAyNDUsIDEwMSwgODcsIDI2LCA2LCAxLCAyMjAsIDcsIDI2LCA0LCAxLCAyMjAsIDcsIDI2LCA2LCAyMzIsIDgzLCAKLSAgICAyMTksIDE3OCwgODcsIDI2LCA2LCAxLCAyMjEsIDI0MywgMjYsIDQsIDEsIDIyMSwgMjQzLCAyNiwgMjIzLCAzOCwgMiwgCi0gICAgMjE4LCAxMDMsIDg3LCAyNiwgNiwgMjIzLCA0OSwgMjMyLCA4MywgMjE5LCAxNzgsIDg3LCAyNiwgNiwgMjQ2LCAxMTgsIAotICAgIDIzMiwgODMsIDIxOSwgMTc4LCA4NywgMjYsIDYsIDIyMywgNDksIDI0NiwgMTE4LCAyMzIsIDgzLCAyMTksIDE3OCwgODcsIAotICAgIDMzLCA2LCAxLCAyMzYsIDYxLCAyLCAyNDIsIDEzNiwgMzMsIDYsIDEsIDIzNSwgMTg5LCAzMywgNiwgMSwgMjQ3LCAxNjIsIAotICAgIDMzLCA2LCAxLCAyNDIsIDE4NywgMzMsIDYsIDEsIDIxNCwgMjAyLCAyMzYsIDYwLCAzMywgNiwgMSwgMjQ2LCAzNiwgMzMsIAotICAgIDYsIDEsIDI1MSwgNzYsIDczLCAzMywgNiwgMSwgMjExLCA4LCAzMywgNiwgMSwgMjM1LCAxMjYsIDMzLCA2LCAxLCAyMzIsIAotICAgIDE4NywgMzMsIDYsIDEsIDIyOCwgMTc4LCAzMywgNiwgMSwgMjE1LCAxNzQsIDMzLCA2LCAxLCAyMzQsIDQ4LCAzMywgNiwgMSwgCi0gICAgMjQwLCAxNTQsIDIsIDI0MiwgMTM2LCAzMywgNiwgMSwgMjE5LCAyNTEsIDcwLCAzMywgNiwgMSwgMjQ2LCAzMiwgMzMsIDYsIAotICAgIDEsIDYxLCAzMywgNiwgMSwgMjUyLCA3NSwgMzMsIDYsIDEsIDIxMywgMjU1LCAzMywgNiwgMSwgMjQyLCAyMzYsIDMzLCA2LCAKLSAgICAxLCAyNDgsIDkwLCAzMywgNiwgMSwgMjM2LCA2MCwgMzMsIDYsIDEsIDIxMCwgNzQsIDMzLCA2LCAxLCAyMTAsIDk0LCAzMywgCi0gICAgNiwgMSwgNzMsIDMzLCA2LCAxLCAyMTksIDI1MSwgNzMsIDMzLCA2LCAxLCAxNzYsIDMzLCA2LCAxLCAyNDUsIDE3NCwgMzMsIAotICAgIDYsIDEsIDI0NSwgMTU5LCAzMywgNiwgMSwgMjQ1LCAxNTAsIDMzLCA2LCAxLCA3NiwgMzMsIDYsIDEsIDIyNSwgMjIxLCAzMywgCi0gICAgNiwgMSwgMjQ1LCA5MiwgMzMsIDYsIDEsIDI0NSwgODIsIDMzLCA2LCAxLCAyMTcsIDIyLCAzMywgNiwgMSwgNzAsIDMzLCA2LCAKLSAgICAxLCAyNDUsIDIwMiwgMzMsIDYsIDEsIDE2MiwgMzMsIDYsIDEsIDIxNSwgMTc4LCAzMywgNiwgMSwgMjUwLCAxMzEsIDMzLCAKLSAgICA2LCAxLCAyMjAsIDEwMiwgMzMsIDYsIDEsIDIyMCwgNjUsIDMzLCA2LCAxLCAyNDIsIDMsIDUwLCAzMywgNiwgMSwgMjExLCAKLSAgICAyNywgMzMsIDYsIDEsIDIxOSwgNTIsIDUwLCAzMywgNiwgMSwgNzUsIDMzLCA2LCAxLCAyMTAsIDIxMiwgMzMsIDYsIDEsIAotICAgIDE5MSwgMzMsIDQsIDEsIDYxLCAzMywgNCwgMSwgMjUyLCA3NSwgMzMsIDQsIDEsIDIxMywgMjU1LCAzMywgNCwgMSwgMjQyLCAKLSAgICAyMzYsIDMzLCA0LCAxLCAyNDgsIDkwLCAzMywgNCwgMSwgMjM2LCA2MCwgMzMsIDQsIDEsIDIxMCwgNzQsIDMzLCA0LCAxLCAKLSAgICAyMTAsIDk0LCAzMywgNCwgMSwgNzMsIDMzLCA0LCAxLCAyMTksIDI1MSwgNzMsIDMzLCA0LCAxLCAxNzYsIDMzLCA0LCAxLCAKLSAgICAyNDUsIDE3NCwgMzMsIDQsIDEsIDI0NSwgMTU5LCAzMywgNCwgMSwgMjQ1LCAxNTAsIDMzLCA0LCAxLCA3NiwgMzMsIDQsIDEsIAotICAgIDIyNSwgMjIxLCAzMywgNCwgMSwgMjQ1LCA5MiwgMzMsIDQsIDEsIDI0NSwgODIsIDMzLCA0LCAxLCAyMTcsIDIyLCAzMywgNCwgCi0gICAgMSwgNzAsIDMzLCA0LCAxLCAyNDUsIDIwMiwgMzMsIDQsIDEsIDE2MiwgMzMsIDQsIDEsIDIxNSwgMTc4LCAzMywgNCwgMSwgCi0gICAgMjUwLCAxMzEsIDMzLCA0LCAxLCAyMjAsIDEwMiwgMzMsIDQsIDEsIDIyMCwgNjUsIDMzLCA0LCAxLCAyNDIsIDMsIDUwLCAKLSAgICAzMywgNCwgMSwgMjExLCAyNywgMzMsIDQsIDEsIDIxOSwgNTIsIDUwLCAzMywgNCwgMSwgNzUsIDMzLCA0LCAxLCAyMTAsIAotICAgIDIxMiwgMzMsIDQsIDEsIDE5MSwgMzMsIDQsIDEsIDIzNiwgNjEsIDIsIDI0MiwgMTM2LCAzMywgNCwgMSwgMjM1LCAxODksIAotICAgIDMzLCA0LCAxLCAyNDcsIDE2MiwgMzMsIDQsIDEsIDI0MiwgMTg3LCAzMywgNCwgMSwgMjE0LCAyMDIsIDIzNiwgNjAsIDMzLCAKLSAgICA0LCAxLCAyNDYsIDM2LCAzMywgNCwgMSwgMjUxLCA3NiwgNzMsIDMzLCA0LCAxLCAyMTEsIDgsIDMzLCA0LCAxLCAyMzUsIAotICAgIDEyNiwgMzMsIDQsIDEsIDIzMiwgMTg3LCAzMywgNCwgMSwgMjI4LCAxNzgsIDMzLCA0LCAxLCAyMTUsIDE3NCwgMzMsIDQsIAotICAgIDEsIDIzNCwgNDgsIDMzLCA0LCAxLCAyNDAsIDE1NCwgMiwgMjQyLCAxMzYsIDMzLCA0LCAxLCAyMTksIDI1MSwgNzAsIDMzLCAKLSAgICA0LCAxLCAyNDYsIDMyLCAzMywgNiwgMSwgMjI2LCAyMDEsIDMzLCA0LCAxLCAyMjYsIDIwMSwgMzMsIDYsIDEsIDIxMSwgNTksIAotICAgIDMzLCA0LCAxLCAyMTEsIDU5LCAzMywgNiwgMSwgMjM1LCAxODMsIDc1LCAzMywgNCwgMSwgMjM1LCAxODMsIDc1LCAzMywgNiwgCi0gICAgMSwgMjMyLCAxOTIsIDIxMCwgMTgzLCAzMywgNCwgMSwgMjMyLCAxOTIsIDIxMCwgMTgzLCAzMywgNiwgMSwgMjM1LCAxODMsIAotICAgIDIzMiwgMTkyLCAyMTAsIDE4MywgMzMsIDQsIDEsIDIzNSwgMTgzLCAyMzIsIDE5MiwgMjEwLCAxODMsIDMzLCA2LCAxLCAKLSAgICAyNTEsIDI0OSwgMjEwLCAxODMsIDMzLCA0LCAxLCAyNTEsIDI0OSwgMjEwLCAxODMsIDMzLCA2LCAxLCAyMzUsIDE4MywgCi0gICAgMjUxLCAyNDksIDIxMCwgMTgzLCAzMywgNCwgMSwgMjM1LCAxODMsIDI1MSwgMjQ5LCAyMTAsIDE4MywgMzMsIDYsIDEsIAotICAgIDIzMywgMjMzLCAzMywgNCwgMSwgMjMzLCAyMzMsIDMzLCA2LCAxLCAyMjQsIDE2MSwgMzMsIDQsIDEsIDIyNCwgMTYxLCAzMywgCi0gICAgNiwgMSwgMjQ0LCA4MiwgMzMsIDQsIDEsIDI0NCwgODIsIDMzLCA2LCAxLCAyMzUsIDE0NiwgMzMsIDQsIDEsIDIzNSwgMTQ2LCAKLSAgICAzMywgNiwgMSwgMjM1LCAxNDcsIDIsIDUyLCAyNDIsIDEzNywgMjU1LCAxNCwgMzMsIDQsIDEsIDIzNSwgMTQ3LCAyLCA1MiwgCi0gICAgMjQyLCAxMzcsIDI1NSwgMTQsIDMzLCA2LCAxLCAyMTQsIDIwNSwgMzMsIDQsIDEsIDIxNCwgMjA1LCAzMywgNiwgMSwgMjIyLCAKLSAgICAxODUsIDIyNiwgMjAxLCAzMywgNCwgMSwgMjIyLCAxODUsIDIyNiwgMjAxLCAzMywgNiwgMSwgMjI2LCAyMDIsIDIsIDIxNiwgCi0gICAgNjUsIDMzLCA0LCAxLCAyMjYsIDIwMiwgMiwgMjE2LCA2NSwgMzMsIDYsIDEsIDIyNiwgMTQwLCAzMywgNCwgMSwgMjI2LCAKLSAgICAxNDAsIDMzLCA2LCAxLCAyMzQsIDYsIDMzLCA0LCAxLCAyMzQsIDYsIDMzLCAyMTYsIDE0NiwgNTAsIDM4LCAzMywgMjE2LCAKLSAgICA2NSwgMzgsIDMzLCAyMjYsIDY1LCAzOCwgMzMsIDI0OCwgMTU0LCAyMjUsIDE4LCAzOCwgMzMsIDIyNCwgMTU1LCAyMjUsIAotICAgIDE4LCAzOCwgMzMsIDIyNSwgMywgMzgsIDMzLCAyNDAsIDIxMSwgMjE2LCAxNDYsIDUwLCAzOCwgMzMsIDIzMCwgMTkxLCA1MCwgCi0gICAgMzMsIDYsIDEsIDIxOSwgMjUxLCAyNDAsIDE1NCwgMiwgMjE3LCA3NywgMzMsIDQsIDEsIDIxOSwgMjUxLCAyNDAsIDE1NCwgCi0gICAgMiwgMjE3LCA3NywgMzMsIDYsIDEsIDIyMCwgMTQ2LCA1MCwgMzMsIDQsIDEsIDIyMCwgMTQ2LCA1MCwgMzMsIDYsIDEsIAotICAgIDI0NSwgOTMsIDIsIDIxNiwgMTE0LCAzMywgNCwgMSwgMjQ1LCA5MywgMiwgMjE2LCAxMTQsIDMzLCA2LCAxLCAyNDIsIDIzNywgCi0gICAgMiwgMjE0LCAxNTYsIDMzLCA0LCAxLCAyNDIsIDIzNywgMiwgMjE0LCAxNTYsIDMzLCA2LCAxLCAyNDIsIDIzNywgMiwgOTEsIAotICAgIDMzLCA0LCAxLCAyNDIsIDIzNywgMiwgOTEsIDMzLCA2LCAxLCAyNDIsIDIzNywgMiwgMjMwLCAyMjQsIDEwMywgMzMsIDQsIAotICAgIDEsIDI0MiwgMjM3LCAyLCAyMzAsIDIyNCwgMTAzLCAzMywgNiwgMSwgMjEwLCA3NSwgMiwgMjQ4LCAzOSwgMzMsIDQsIDEsIAotICAgIDIxMCwgNzUsIDIsIDI0OCwgMzksIDMzLCA2LCAxLCAyMTAsIDk1LCAyLCAyNDgsIDM5LCAzMywgNCwgMSwgMjEwLCA5NSwgMiwgCi0gICAgMjQ4LCAzOSwgMzMsIDYsIDEsIDIzNSwgMTMsIDIsIDI0OCwgMzksIDMzLCA0LCAxLCAyMzUsIDEzLCAyLCAyNDgsIDM5LCAKLSAgICAzMywgNiwgMSwgMjM1LCAxMywgMiwgNjcsIDkxLCAzMywgNCwgMSwgMjM1LCAxMywgMiwgNjcsIDkxLCAzMywgNiwgMSwgCi0gICAgMjM1LCAxMywgMiwgOTEsIDMzLCA0LCAxLCAyMzUsIDEzLCAyLCA5MSwgMzMsIDYsIDEsIDI1MiwgMTI0LCAxNzYsIDMzLCA0LCAKLSAgICAxLCAyNTIsIDEyNCwgMTc2LCAzMywgNiwgMSwgMjQ1LCAxNTEsIDIsIDI0OCwgMzksIDMzLCA0LCAxLCAyNDUsIDE1MSwgMiwgCi0gICAgMjQ4LCAzOSwgMzMsIDYsIDI3LCAyNDUsIDE1MSwgMjQyLCAyMzYsIDMzLCA0LCAyNywgMjQ1LCAxNTEsIDI0MiwgMjM2LCAKLSAgICAzMywgNiwgMSwgMjI1LCAyMjIsIDIsIDIzMCwgMjI0LCAxMDMsIDMzLCA0LCAxLCAyMjUsIDIyMiwgMiwgMjMwLCAyMjQsIAotICAgIDEwMywgMzMsIDYsIDEsIDI1NSwgMjAsIDE2MiwgMzMsIDQsIDEsIDI1NSwgMjAsIDE2MiwgMzMsIDYsIDEsIDI0NSwgODMsIAotICAgIDIsIDI0OCwgMzksIDMzLCA0LCAxLCAyNDUsIDgzLCAyLCAyNDgsIDM5LCAzMywgNiwgMSwgMjE3LCAyMywgMiwgMjQ4LCAzOSwgCi0gICAgMzMsIDQsIDEsIDIxNywgMjMsIDIsIDI0OCwgMzksIDMzLCA2LCAxLCAyMTgsIDEyMSwgNzAsIDMzLCA0LCAxLCAyMTgsIAotICAgIDEyMSwgNzAsIDMzLCA2LCAxLCAyMTgsIDEyMSwgMTA0LCAyLCA5MSwgMzMsIDQsIDEsIDIxOCwgMTIxLCAxMDQsIDIsIDkxLCAKLSAgICAzMywgNiwgMSwgMjQyLCA0OSwgMiwgMjQ4LCAzOSwgMzMsIDQsIDEsIDI0MiwgNDksIDIsIDI0OCwgMzksIDMzLCA2LCAyNywgCi0gICAgMjE3LCAyMywgMjE1LCAxNzgsIDMzLCA0LCAyNywgMjE3LCAyMywgMjE1LCAxNzgsIDMzLCA2LCAxLCAyNTAsIDEzMiwgMiwgCi0gICAgMjQ4LCAzOSwgMzMsIDQsIDEsIDI1MCwgMTMyLCAyLCAyNDgsIDM5LCAzMywgNiwgMSwgMjUwLCAxMzIsIDIsIDY3LCA5MSwgCi0gICAgMzMsIDQsIDEsIDI1MCwgMTMyLCAyLCA2NywgOTEsIDMzLCA2LCAxLCAyMjAsIDMzLCAzMywgNCwgMSwgMjIwLCAzMywgMzMsIAotICAgIDYsIDEsIDI1NSwgMjAsIDI1MCwgMTMxLCAzMywgNCwgMSwgMjU1LCAyMCwgMjUwLCAxMzEsIDMzLCA2LCAxLCAyNTUsIDIwLCAKLSAgICAyNTAsIDEzMiwgMiwgMjQ4LCAzOSwgMzMsIDQsIDEsIDI1NSwgMjAsIDI1MCwgMTMyLCAyLCAyNDgsIDM5LCAzMywgMSwgCi0gICAgMjI2LCA1OCwgMzMsIDYsIDEsIDIxMCwgNzUsIDIsIDI1MSwgMTQ2LCAzMywgNCwgMSwgMjEwLCA3NSwgMiwgMjUxLCAxNDYsIAotICAgIDMzLCA2LCAxLCAyMzUsIDEzLCAyLCAxMDMsIDMzLCA0LCAxLCAyMzUsIDEzLCAyLCAxMDMsIDMzLCA2LCAxLCAyNDUsIDE3NSwgCi0gICAgMiwgMjE3LCA3NywgMzMsIDQsIDEsIDI0NSwgMTc1LCAyLCAyMTcsIDc3LCAzMywgNiwgMSwgMjQ1LCAxNTEsIDIsIDEwMywgCi0gICAgMzMsIDQsIDEsIDI0NSwgMTUxLCAyLCAxMDMsIDMzLCA2LCAxLCAyNDUsIDE1MSwgMiwgMjE3LCA3NywgMzMsIDQsIDEsIAotICAgIDI0NSwgMTUxLCAyLCAyMTcsIDc3LCAzMywgNiwgMSwgMjM0LCAxMjcsIDI1MCwgMTMxLCAzMywgNCwgMSwgMjM0LCAxMjcsIAotICAgIDI1MCwgMTMxLCAzMywgNiwgMSwgMjQ1LCAxNjAsIDIsIDIxNywgNzcsIDMzLCA0LCAxLCAyNDUsIDE2MCwgMiwgMjE3LCA3NywgCi0gICAgMzMsIDQsIDEsIDIyNiwgNTgsIDMzLCA2LCAxLCAxMTUsIDIsIDI1MSwgMTQ2LCAzMywgNCwgMSwgMTE1LCAyLCAyNTEsIAotICAgIDE0NiwgMzMsIDYsIDEsIDExNSwgMiwgMjQ4LCAxLCAzMywgNCwgMSwgMTE1LCAyLCAyNDgsIDEsIDMzLCA2LCAyNywgMTE1LCAKLSAgICAyMzYsIDYwLCAzMywgNCwgMjcsIDExNSwgMjM2LCA2MCwgMzMsIDYsIDEsIDIzNiwgNjEsIDIsIDI1MSwgMTQ2LCAzMywgNCwgCi0gICAgMSwgMjM2LCA2MSwgMiwgMjUxLCAxNDYsIDMzLCA2LCAxLCAyMjEsIDE5NSwgMzMsIDQsIDEsIDIyMSwgMTk1LCAzMywgNiwgCi0gICAgMSwgMjIxLCAxOTYsIDIsIDI0OCwgMSwgMzMsIDQsIDEsIDIyMSwgMTk2LCAyLCAyNDgsIDEsIDMzLCA2LCAxLCAyMTAsIDc1LCAKLSAgICAyLCAyNDgsIDEsIDMzLCA0LCAxLCAyMTAsIDc1LCAyLCAyNDgsIDEsIDMzLCA2LCAxLCAyMTAsIDk1LCAyLCAyNDgsIDEsIAotICAgIDMzLCA0LCAxLCAyMTAsIDk1LCAyLCAyNDgsIDEsIDMzLCA2LCAxLCAyNTUsIDIwLCAyNDYsIDM2LCAzMywgNCwgMSwgMjU1LCAKLSAgICAyMCwgMjQ2LCAzNiwgMzMsIDYsIDEsIDI0MCwgMTU0LCAyLCAyMzEsIDIzMiwgMzMsIDQsIDEsIDI0MCwgMTU0LCAyLCAyMzEsIAotICAgIDIzMiwgMzMsIDYsIDEsIDI0MCwgMTU0LCAyLCAyNDgsIDEsIDMzLCA0LCAxLCAyNDAsIDE1NCwgMiwgMjQ4LCAxLCAzMywgNiwgCi0gICAgMSwgMTQ0LCAyLCAyNDgsIDEsIDMzLCA0LCAxLCAxNDQsIDIsIDI0OCwgMSwgMzMsIDYsIDEsIDI1MiwgMTM0LCA3NiwgMzMsIAotICAgIDQsIDEsIDI1MiwgMTM0LCA3NiwgMzMsIDYsIDEsIDI1MiwgMTM0LCAxNDQsIDIsIDI0OCwgMSwgMzMsIDQsIDEsIDI1MiwgCi0gICAgMTM0LCAxNDQsIDIsIDI0OCwgMSwgMzMsIDYsIDEsIDE2MCwgMiwgMjQ4LCAxLCAzMywgNCwgMSwgMTYwLCAyLCAyNDgsIDEsIAotICAgIDMzLCA2LCAxLCAxMDQsIDIsIDIzMSwgMjMyLCAzMywgNCwgMSwgMTA0LCAyLCAyMzEsIDIzMiwgMzMsIDYsIDEsIDEwNCwgMiwgCi0gICAgMjQ4LCAxLCAzMywgNCwgMSwgMTA0LCAyLCAyNDgsIDEsIDMzLCA2LCAxLCAxMDQsIDIsIDUyLCAxNDIsIDMzLCA0LCAxLCAKLSAgICAxMDQsIDIsIDUyLCAxNDIsIDMzLCA2LCAxLCAyNTAsIDEzMiwgMiwgMjQ4LCAxLCAzMywgNCwgMSwgMjUwLCAxMzIsIDIsIAotICAgIDI0OCwgMSwgMzMsIDYsIDEsIDI0MiwgMjM3LCAyLCAyNDgsIDM5LCAzMywgNCwgMSwgMjQyLCAyMzcsIDIsIDI0OCwgMzksIAotICAgIDMzLCA2LCAxLCAyMTEsIDI4LCAyLCAyNDgsIDEsIDMzLCA0LCAxLCAyMTEsIDI4LCAyLCAyNDgsIDEsIDMzLCA2LCAxLCAKLSAgICAyNDIsIDIzNywgMiwgMjE4LCAxMDMsIDIyLCAxMDMsIDMzLCA0LCAxLCAyNDIsIDIzNywgMiwgMjE4LCAxMDMsIDIyLCAxMDMsIAotICAgIDMzLCA2LCAxLCAyNDIsIDQ5LCAyLCAxMDMsIDMzLCA0LCAxLCAyNDIsIDQ5LCAyLCAxMDMsIDMzLCA2LCAxLCAyNDIsIDQ5LCAKLSAgICAyLCA5MSwgMzMsIDQsIDEsIDI0MiwgNDksIDIsIDkxLCAzMywgNiwgMSwgMjM0LCAxNCwgMjQ4LCA5MCwgMzMsIDQsIDEsIAotICAgIDIzNCwgMTQsIDI0OCwgOTAsIDMzLCA2LCAxLCAyMzQsIDE0LCAyNDcsIDE2MiwgMzMsIDQsIDEsIDIzNCwgMTQsIDI0NywgCi0gICAgMTYyLCAzMywgNiwgMSwgMjM0LCAxNCwgMjEwLCAyNywgMzMsIDQsIDEsIDIzNCwgMTQsIDIxMCwgMjcsIDMzLCA2LCAxLCAKLSAgICAyMzQsIDE0LCAyNDYsIDMwLCAzMywgNCwgMSwgMjM0LCAxNCwgMjQ2LCAzMCwgMzMsIDYsIDEsIDIzNCwgMTQsIDIzMiwgCi0gICAgMTg3LCAzMywgNCwgMSwgMjM0LCAxNCwgMjMyLCAxODcsIDMzLCA2LCAxLCAyMzQsIDE0LCAyMjgsIDE3OCwgMzMsIDQsIDEsIAotICAgIDIzNCwgMTQsIDIyOCwgMTc4LCAzMywgNiwgMSwgMjM0LCAxNCwgMjE5LCAxMDksIDMzLCA0LCAxLCAyMzQsIDE0LCAyMTksIAotICAgIDEwOSwgMzMsIDYsIDEsIDIzNCwgMTQsIDIxNiwgNjAsIDMzLCA0LCAxLCAyMzQsIDE0LCAyMTYsIDYwLCAzMywgNiwgMSwgCi0gICAgMjIzLCA0OSwgMjEwLCA5NCwgMzMsIDQsIDEsIDIyMywgNDksIDIxMCwgOTQsIDMzLCA2LCAxLCAyNDUsIDE3NSwgMiwgMTAzLCAKLSAgICAzMywgNCwgMSwgMjQ1LCAxNzUsIDIsIDEwMywgMzMsIDYsIDEsIDIzMiwgMjU0LCAzMywgNCwgMSwgMjMyLCAyNTQsIDMzLCAKLSAgICA2LCAxLCAyMjMsIDM5LCAzMywgNCwgMSwgMjIzLCAzOSwgMzMsIDYsIDEsIDIxMSwgOTIsIDMzLCA0LCAxLCAyMTEsIDkyLCAKLSAgICAzMywgNiwgMSwgMjI0LCA4OCwgMzMsIDQsIDEsIDIyNCwgODgsIDMzLCA2LCAxLCAyMTIsIDIyLCAzMywgNCwgMSwgMjEyLCAKLSAgICAyMiwgMzMsIDYsIDEsIDI1NCwgMTY2LCAxNzYsIDMzLCA0LCAxLCAyNTQsIDE2NiwgMTc2LCAzMywgNiwgMSwgMjQ1LCAxNzUsIAotICAgIDIsIDIzMCwgMjI0LCAxMDMsIDMzLCA0LCAxLCAyNDUsIDE3NSwgMiwgMjMwLCAyMjQsIDEwMywgMzMsIDYsIDEsIDI0NSwgCi0gICAgMTUxLCAyLCAyMzAsIDIyNCwgMTAzLCAzMywgNCwgMSwgMjQ1LCAxNTEsIDIsIDIzMCwgMjI0LCAxMDMsIDMzLCA2LCAxLCAKLSAgICAyMjUsIDIyMiwgMiwgMjQ4LCAzOSwgMzMsIDQsIDEsIDIyNSwgMjIyLCAyLCAyNDgsIDM5LCAzMywgNiwgMSwgMjIwLCAzNCwgCi0gICAgMiwgMjQ4LCAzOSwgMzMsIDQsIDEsIDIyMCwgMzQsIDIsIDI0OCwgMzksIDE1MCwgNiwgMSwgMjUzLCAxNjQsIDE1MCwgNiwgCi0gICAgMSwgMjUyLCAzOSwgMTUwLCA2LCAxLCAyNDIsIDIwMywgMTUwLCA2LCAxLCAyNDgsIDIyMSwgMTUwLCA2LCAxLCAyNDUsIAotICAgIDIxMywgMTUwLCA2LCAxLCAyMTAsIDExNiwgMTUwLCA2LCAxLCAyNDUsIDE5NywgMTUwLCA2LCAxLCAyNDUsIDY1LCAxNTAsIAotICAgIDYsIDEsIDExMSwgMTUwLCA2LCAxLCAyMTAsIDc0LCAxNTAsIDYsIDEsIDIzNSwgMjI3LCAxNTAsIDYsIDEsIDIzMiwgMTkwLCAKLSAgICAxNTAsIDYsIDEsIDIxMSwgMTYwLCAxNTAsIDYsIDEsIDI1MSwgMzMsIDE1MCwgNiwgMSwgMjM0LCAxNjUsIDE1MCwgNiwgMSwgCi0gICAgMjQxLCA2OCwgMTUwLCA2LCAxLCAyMzUsIDE0MSwgMTUwLCA2LCAxLCAyNDIsIDI0NiwgMTUwLCA2LCAxLCAyNTAsIDEyNiwgCi0gICAgMTUwLCA2LCAxLCAyMzEsIDU4LCAxNTAsIDYsIDEsIDIxMSwgOCwgMTUwLCA2LCAxLCAyMjgsIDM5LCAxNTAsIDYsIDEsIAotICAgIDIyMCwgMTAyLCAxNTAsIDYsIDEsIDIxMywgMTM4LCAxNTAsIDYsIDEsIDI1MCwgMTU3LCAxNTAsIDYsIDEsIDIyNSwgMjA1LCAKLSAgICAxNTAsIDYsIDEsIDIzNSwgMTEwLCAxNTAsIDYsIDEsIDIwNSwgMTUwLCA2LCAxLCAyMjEsIDE2MSwgMTUwLCA2LCAxLCAyMTMsIAotICAgIDE3OSwgMTUwLCA2LCAxLCAyMTYsIDYyLCAxNTAsIDYsIDEsIDIyMywgOTUsIDE1MCwgNiwgMSwgMjQ5LCAyMzgsIDE1MCwgNiwgCi0gICAgMSwgMjEwLCAyNDksIDE1MCwgNiwgMSwgMjI1LCA0NiwgMTUwLCA2LCAxLCAyMzQsIDE3NiwgMTUwLCA2LCAxLCAyMjYsIAotICAgIDIyMiwgMTUwLCA2LCAxLCAyNDQsIDE0MiwgMTUwLCA1OCwgMSwgNDMsIDE2MywgMjIyLCAyMzMsIDE1MCwgMjU0LCA1NywgCi0gICAgMTUwLCAyNDUsIDE1NCwgNzgsIDE1MCwgMjQ1LCAzMSwgNzgsIDE1MCwgMjQ5LCAyMTksIDE1MCwgMjI0LCAxMywgNzgsIAotICAgIDE1MCwgMjU1LCAyMSwgNzgsIDE1MCwgNCwgMSwgMjUzLCAxNjQsIDE1MCwgNCwgMSwgMjUyLCAzOSwgMTUwLCA0LCAxLCAKLSAgICAyNDIsIDIwMywgMTUwLCA0LCAxLCAyNDgsIDIyMSwgMTUwLCA0LCAxLCAyNDUsIDIxMywgMTUwLCA0LCAxLCAyMTAsIDExNiwgCi0gICAgMTUwLCA0LCAxLCAyNDUsIDE5NywgMTUwLCA0LCAxLCAyNDUsIDY1LCAxNTAsIDQsIDEsIDExMSwgMTUwLCA0LCAxLCAyMTAsIAotICAgIDc0LCAxNTAsIDQsIDEsIDIzNSwgMjI3LCAxNTAsIDQsIDEsIDIzMiwgMTkwLCAxNTAsIDQsIDEsIDIxMSwgMTYwLCAxNTAsIAotICAgIDQsIDEsIDI1MSwgMzMsIDE1MCwgNCwgMSwgMjM0LCAxNjUsIDE1MCwgNCwgMSwgMjQxLCA2OCwgMTUwLCA0LCAxLCAyMzUsIAotICAgIDE0MSwgMTUwLCA0LCAxLCAyNDIsIDI0NiwgMTUwLCA0LCAxLCAyNTAsIDEyNiwgMTUwLCA0LCAxLCAyMzEsIDU4LCAxNTAsIAotICAgIDQsIDEsIDIxMSwgOCwgMTUwLCA0LCAxLCAyMjgsIDM5LCAxNTAsIDQsIDEsIDIyMCwgMTAyLCAxNTAsIDQsIDEsIDIxMywgCi0gICAgMTM4LCAxNTAsIDQsIDEsIDI1MCwgMTU3LCAxNTAsIDQsIDEsIDIyNSwgMjA1LCAxNTAsIDQsIDEsIDIzNSwgMTEwLCAxNTAsIAotICAgIDQsIDEsIDIwNSwgMTUwLCA0LCAxLCAyMjEsIDE2MSwgMTUwLCA0LCAxLCAyMTMsIDE3OSwgMTUwLCA0LCAxLCAyMTYsIDYyLCAKLSAgICAxNTAsIDQsIDEsIDIyMywgOTUsIDE1MCwgNCwgMSwgMjQ5LCAyMzgsIDE1MCwgNCwgMSwgMjEwLCAyNDksIDE1MCwgNCwgMSwgCi0gICAgMjI1LCA0NiwgMTUwLCA0LCAxLCAyMzQsIDE3NiwgMTUwLCA0LCAxLCAyMjYsIDIyMiwgMTUwLCA0LCAxLCAyNDQsIDE0MiwgCi0gICAgMTUwLCA0LCAyNywgMjQ1LCAyMTQsIDIxMCwgMjQ5LCAxNTAsIDI0MywgMjI5LCAyMTgsIDEyOSwgMTUwLCAyNDAsIDE2OCwgCi0gICAgMTUwLCAyNDYsIDk1LCA1MCwgOTQsIDI1NSwgMTUsIDI0NSwgNTcsIDk0LCAyNTUsIDE1LCAyMjEsIDE2MiwgOTQsIDI1NSwgCi0gICAgMTUsIDIyMCwgODgsIDk0LCAyNTUsIDE1LCAyMTAsIDEwNCwgMjI0LCA3MSwgOTQsIDI1NSwgMTUsIDIxMCwgMTA0LCAyNDMsIAotICAgIDEyNSwgOTQsIDI1NSwgMTUsIDIxNiwgNzUsIDk0LCAyNTUsIDE1LCAyMjMsIDQ3LCA5NCwgMjU1LCAxNSwgMjEwLCAxMDMsIAotICAgIDk0LCAyNTUsIDE1LCAyMjUsIDI0NSwgOTQsIDI1NSwgMTUsIDIxMSwgMjAsIDk0LCAyNTUsIDE1LCAyMTYsIDIxNCwgOTQsIAotICAgIDI1NSwgMTUsIDI0MywgNDEsIDk0LCAyNTUsIDE1LCAyNDMsIDQyLCAyMzAsIDY5LCA5NCwgMjU1LCAxNSwgMjQzLCAzOSwgCi0gICAgOTQsIDI1NSwgMTUsIDIyNCwgNzIsIDIyNiwgMTYsIDk0LCAyNTUsIDE1LCAyMTYsIDI1MywgMjQzLCA1NiwgOTQsIDI1NSwgCi0gICAgMTUsIDIyNSwgMjI2LCA5NCwgMjU1LCAxNSwgMjUzLCAyMDAsIDI0MiwgNDEsIDk0LCAyNTUsIDE1LCAyMzAsIDc5LCA5NCwgCi0gICAgMjU1LCAxNSwgMjMxLCAyMDgsIDk0LCAyNTUsIDE1LCAyMzEsIDQ5LCA5NCwgMjU1LCAxNSwgMjMxLCA1MCwgMjM0LCAxNzcsIAotICAgIDk0LCAyNTUsIDE1LCAyNDgsIDE2MywgOTQsIDI1NSwgMTUsIDIyNCwgODMsIDk0LCAyNTUsIDE1LCAyMTYsIDI1MywgMjI0LCAKLSAgICA2NywgOTQsIDI1NSwgMTUsIDIxMSwgMzAsIDI1MiwgNDAsIDIxMCwgMjMwLCA5NCwgMjU1LCAxNSwgMjI2LCAyMDcsIDk0LCAKLSAgICAyNTUsIDE1LCAyMzYsIDE5LCA5NCwgMjU1LCAxNSwgMjQ4LCA3MCwgOTQsIDI1NSwgMTUsIDIxMCwgMzMsIDk0LCAxNjQsIAotICAgIDIzMSwgMTQzLCAyNTAsIDM1LCA5NCwgMjI1LCAxMSwgMjIwLCAzNiwgOTQsIDIyNSwgMTEsIDI0MSwgMjUwLCAyMjEsIDE2MiwgCi0gICAgOTQsIDIyNSwgMTEsIDI0MSwgMjUwLCAyMjUsIDIzOSwgOTQsIDIyNSwgMTEsIDI0MSwgMjUwLCAyMjQsIDc2LCA5NCwgMjI1LCAKLSAgICAxMSwgMjQxLCAxNTgsIDk0LCAyMjUsIDExLCAyMTUsIDE3NiwgOTQsIDIyNSwgMTEsIDIyMSwgMTYyLCA5NCwgMjI1LCAxMSwgCi0gICAgMjI1LCAyMzksIDk0LCAyMjUsIDExLCAyMjQsIDc2LCA5NCwgMjI1LCAxMSwgMjQxLCA2MSwgOTQsIDIyNSwgMTEsIDI0MSwgCi0gICAgNjIsIDI0MSwgMjUyLCAzMSwgMjE0LCAzLCA5NCwgMjI1LCAxMSwgMjI0LCAxNywgOTQsIDIyNSwgMTEsIDI0OCwgMjA4LCAKLSAgICAxNzcsIDIzMSwgMTcxLCA5NCwgMjI1LCAxMSwgMjMxLCAzOCwgOTQsIDIyNCwgMTQxLCAyMzEsIDE2OCwgOTQsIDIyNSwgMTEsIAotICAgIDIyMywgMTY5LCA5NCwgMjI0LCAxNDEsIDIyNSwgMjQ3LCA5NCwgMjI1LCAxMSwgMjIwLCAyMSwgMjQ3LCAxMjAsIDk0LCAKLSAgICAyMjUsIDExLCAyMTksIDE1OSwgMjQ3LCAxMjAsIDk0LCAyMjQsIDE0MSwgMjE5LCA1MywgMjI1LCAyNDEsIDk0LCAxNjQsIAotICAgIDIxNCwgMTYwLCAyNDcsIDEyMCwgOTQsIDE2NCwgMjMyLCAxMDgsIDI0NywgMTIwLCA5NCwgMjI0LCAxNDEsIDIyNywgMTk1LCAKLSAgICAyNDIsIDQwLCA5NCwgMjI1LCAxMSwgMjI0LCA3NywgMjI0LCA3MSwgOTQsIDEsIDI1NCwgMTcwLCA5NCwgMSwgMjUyLCAyOCwgCi0gICAgOTQsIDEsIDI0MiwgMjAxLCA5NCwgMSwgMjQ4LCAxODksIDk0LCAxLCAyNDEsIDIzOCwgOTQsIDEsIDIxNCwgMywgOTQsIDEsIAotICAgIDIxMCwgOTcsIDk0LCAxLCAyNDEsIDE5NywgOTQsIDEsIDIxNiwgMjMwLCA5NCwgMSwgMjEwLCAyMzMsIDk0LCAxLCA0MCwgCi0gICAgMjM0LCAyNTAsIDk0LCAxLCAyMzQsIDI1MCwgOTQsIDEsIDIzMywgOTQsIDk0LCAxLCA0MCwgMjMxLCA2NSwgOTQsIDEsIAotICAgIDIzMSwgNjUsIDk0LCAxLCA0MCwgMjI3LCAxOTQsIDk0LCAxLCAyMjcsIDE5NCwgOTQsIDEsIDIyMSwgMjQ5LCA5NCwgMSwgCi0gICAgMjUzLCAxNjIsIDk0LCAxLCA0MCwgMjI1LCAyMjEsIDk0LCAxLCAyMjUsIDIyMSwgOTQsIDEsIDQwLCAyMTUsIDE3OSwgOTQsIAotICAgIDEsIDIxNSwgMTc5LCA5NCwgMSwgMjI0LCAzOSwgOTQsIDEsIDIyMywgNjcsIDk0LCAxLCAyMjAsIDIwLCA5NCwgMSwgMjE3LCAKLSAgICAzOCwgOTQsIDI3LCAyMTEsIDYsIDUyLCAyMTQsIDMsIDk0LCAyNywgMjExLCA2LCAyMTQsIDQsIDIxMCwgMjMzLCA5NCwgMjcsIAotICAgIDIxMSwgNiwgNTIsIDIxMCwgMjMzLCA5NCwgMjI0LCAxNDEsIDI0MywgNDEsIDk0LCAyMjQsIDE0MSwgMjQzLCAzOSwgMTAsIAotICAgIDU0LCA1MCwgMTAsIDUsIDIyMSwgMjQyLCAxMCwgMjQ0LCAzMCwgMjMxLCAxNTQsIDEwLCA1LCAyMjIsIDIzLCAxMCwgNSwgCi0gICAgMjIxLCAyNDUsIDI1NCwgMzcsIDI0OSwgMTA5LCAyMjIsIDE5MywgMjU0LCAzNywgMjQ0LCA0LCAyMjIsIDE5MywgMTAsIAotICAgIDIyMywgMTM0LCAyNTQsIDM3LCAyMjUsIDE4MywgMjMwLCAxOTMsIDUwLCAyNTQsIDM3LCAyMjUsIDE4MywgMjE2LCAyNDgsIAotICAgIDIxNiwgMTQ4LCA1MCwgMjU0LCAyMjEsIDUwLCAxMCwgMjQ5LCAyMTksIDEwLCAyNDgsIDE1MCwgMjIwLCAxMzcsIDEwLCAKLSAgICAyMjUsIDEzLCAyMTMsIDI0MSwgNTAsIDEwLCA1LCAyMzAsIDE3NCwgMTAsIDUsIDIyMiwgMywgMjU0LCAxNzIsIDIxMiwgNDUsIAotICAgIDEwLCA1LCAyNTQsIDE3MiwgMjUzLCAyMjEsIDEwLCA1LCAyMjMsIDE2NywgMjU0LCAxNzEsIDEwLCA1LCAyMjMsIDE3NSwgCi0gICAgMjU0LCAxNTIsIDI1NCwgMTA0LCAxMCwgNSwgMjE3LCA3MCwgMTAsIDQsIDEyNSwgMjE3LCA4MCwgMTAsIDQsIDEyNSwgMjcsIAotICAgIDExMiwgMiwgMjMzLCAxMDMsIDIsIDIxMSwgNDMsIDEwLCA0LCAxMjUsIDIxMCwgMTA4LCAxMCwgNCwgMjQ0LCAxNjUsIDEwLCAKLSAgICA0LCAyNDgsIDE4NCwgMTAsIDQsIDIzNCwgMjA1LCAxMCwgMjIwLCAxNTAsIDEwLCAyMTUsIDIxMSwgNTksIDIyNCwgMTQxLCAKLSAgICA3OCwgMTAsIDIyNCwgMTMsIDc4LCAxMCwgMSwgMjM0LCAyMDksIDIxMSwgNDMsIDEwLCAxLCAyNDIsIDE5LCAxMCwgMSwgCi0gICAgMTEyLCAyLCAyMzEsIDIyOCwgNDgsIDEwLCAxLCAxMTIsIDIsIDIwMiwgNDgsIDEwLCAxLCAyMTIsIDMxLCAyLCAyMDIsIDQ4LCAKLSAgICAxMCwgMSwgMTEyLCAyLCAyMDIsIDUxLCAxMCwgMSwgNzksIDIsIDIwMiwgNDgsIDEwLCAxLCAyNTQsIDE3MCwgMTAsIDEsIAotICAgIDI1MiwgNTQsIDEwLCAxLCAyMTcsIDgsIDIzMSwgMTY0LCAxMCwgMSwgMjE3LCA3LCAxMCwgMSwgMjE2LCAxOTIsIDEwLCAxLCAKLSAgICAyMzUsIDEyMywgMTAsIDEsIDI0MiwgMzcsIDEwLCAxLCAyMzQsIDEyOSwgMTAsIDEsIDI0OCwgMTk1LCAxMCwgMSwgMjE2LCAKLSAgICAyMDIsIDEwLCAxLCAyMjMsIDk1LCAxMCwgMSwgMjEwLCAxMDgsIDEwLCAxLCAyMjEsIDE2NiwgMTAsIDEsIDIyMCwgNTksIAotICAgIDEwLCAxLCAyMjIsIDI2LCAxMCwgMSwgMjQ4LCAyMTYsIDEwLCAxLCAyMTcsIDgwLCAxMCwgMSwgMjEwLCAxMTEsIDEwLCAxLCAKLSAgICAyNTQsIDE5NiwgMTAsIDEsIDI0MiwgMjQ0LCAxMCwgMSwgMjM0LCAxNzUsIDIsIDExMywgMTcwLCA0OCwgMTAsIDEsIDIzNCwgCi0gICAgMTc1LCAyLCAxMzQsIDE3MCwgNTEsIDEwLCAxLCAyNDQsIDE2OCwgNzksIDIsIDIzNSwgMTkzLCAyMTQsIDEwNSwgMTAsIDEsIAotICAgIDI0NCwgMTY4LCA3OSwgMiwgMTEzLCAxNzAsIDQ4LCAxMCwgMSwgMjQ0LCAxNjgsIDc5LCAyLCAxMzQsIDE3MCwgNDgsIDEwLCAKLSAgICAyMTcsIDQzLCAxMCwgMSwgMjQ0LCAxNDIsIDEwLCAxLCAyMjQsIDgxLCAxMCwgMSwgMjM0LCAyNTAsIDEwLCAxLCAyMzMsIAotICAgIDEwMiwgMTAsIDEsIDIzMSwgNzgsIDEwLCAxLCAyMjgsIDYyLCAxMCwgMSwgMjQxLCAyMTgsIDEwLCAxLCAyMTIsIDMwLCAxMCwgCi0gICAgMSwgMTEyLCAyMzEsIDE5MiwgMTAsIDEsIDIxMSwgNDMsIDEwLCAyNDQsIDE2MywgMTAsIDI0OCwgMTgyLCAxMCwgMjM0LCAKLSAgICAyMDMsIDEwLCAyNDQsIDE2NSwgMTAsIDI0OCwgMTg0LCAxMCwgMjM0LCAyMDUsIDEwLCAyMjAsIDkzLCAxMCwgMjE4LCA0NSwgCi0gICAgMTAsIDIzMSwgMjI2LCA0OCwgMTAsIDIwMiwgNDgsIDEwLCAyMDIsIDUxLCAxMCwgMjE4LCA2NSwgMjU0LCAxNzAsIDEwLCAKLSAgICAyMzUsIDE5MywgMjQ4LCAxODQsIDEwLCAxNjQsIDIyOCwgNjMsIDI0MiwgMjE4LCAxMCwgMjA5LCAyNTUsIDEwLCAyNSwgNSwgCi0gICAgNCwgMjE0LCAxMDYsIDQ4LCAxMCwgMjUsIDUsIDIzNSwgMTkzLCA0LCAyMTQsIDEwNiwgNDgsIDEwLCAyNSwgNSwgNTksIDUxLCAKLSAgICAxMCwgMjIzLCA0OSwgMjQ4LCAxODQsIDEwLCAyNDQsIDE2NiwgMiwgMTEzLCAyNDcsIDExOCwgMTAsIDIxMiwgMzIsIDIwMiwgCi0gICAgNTEsIDI1NCwgMzcsIDIxLCAyMTAsIDg2LCAyNTQsIDM3LCAyMSwgMTEwLCAyNTQsIDM3LCAyMSwgMTA1LCAyNTQsIDM3LCAKLSAgICAyMSwgMTU4LCAyNTQsIDM3LCAyMSwgMTYxLCAyNTQsIDM3LCAyMSwgMTg5LCAyNTQsIDM3LCAyMSwgMTk0LCAyNTQsIDM3LCAKLSAgICAyMSwgMTk4LCAyNTQsIDM3LCAyMSwgMTk1LCAyNTQsIDM3LCAyMSwgMjAwLCAxMCwgMjI1LCAxODIsIDUwLCAxMCwgMjQ4LCAKLSAgICA4MywgMjIwLCAxMzcsIDEwLCAyMTYsIDE0NiwgMjIwLCAxMzcsIDEwLCAyNDQsIDgxLCAyMjUsIDksIDIxOCwgMTU2LCAxMCwgCi0gICAgMSwgMjQ3LCAxMTksIDI1MiwgNTQsIDEwLCAxLCAyNDcsIDExOSwgMjI0LCA4MSwgMTAsIDEsIDIxOCwgMjMsIDI1NCwgMTcwLCAKLSAgICAxMCwgMSwgMTEyLCAyMTIsIDQ2LCAxMCwgMSwgMTEyLCAyLCAyMTIsIDMyLCAyMDIsIDQ4LCAxMCwgMSwgMTEyLCAyLCAyMTIsIAotICAgIDMyLCAyMDIsIDUxLCAxMCwgMSwgMTI1LCAyNDIsIDE5LCAxMCwgMSwgMTI1LCAyMDIsIDI1NCwgMTcwLCAxMCwgMSwgMTI1LCAKLSAgICAyMDIsIDIxMiwgMzAsIDEwLCAxLCAxMDQsIDIsIDIwMiwgNDgsIDEwLCAxLCAxMjUsIDIwMiwgMjExLCA0MywgMTAsIDEsIAotICAgIDIxNSwgMTQ4LCAxMCwgMSwgMjE1LCAxNDYsIDEwLCAxLCAyNTIsIDY0LCAxMCwgMSwgMjE3LCA4LCAyLCAyMjIsIDIzMywgCi0gICAgMTAsIDEsIDIxNywgOCwgMiwgMTM0LCAxNzAsIDc3LCAyNDYsIDEwMywgMTAsIDEsIDIyNSwgMjA1LCAxMCwgMSwgMjE3LCA1LCAKLSAgICAxMCwgMSwgMjUyLCA1MiwgMTAsIDEsIDEyMiwgMiwgMjAyLCA0OCwgMTAsIDEsIDEyMiwgMiwgMTEzLCAxNzAsIDY3LCA0OCwgCi0gICAgMTAsIDEsIDIyNywgMTUzLCAxMCwgMSwgMjQ2LCA0MywgMTAsIDEsIDEyMiwgMiwgMTM0LCAxNzAsIDQ4LCAxMCwgMSwgMjE3LCAKLSAgICAyNiwgMTAsIDEsIDIxNywgMjQsIDEwLCAxLCAyNDgsIDEzMCwgMTAsIDEsIDI0OCwgMTk2LCAyLCAyMjIsIDIzMywgMTAsIDEsIAotICAgIDI0OCwgMTk2LCAyLCA1OSwgNTEsIDEwLCAxLCAyNDgsIDE5NiwgMiwgNTksIDI1MiwgNDMsIDIyLCA0LCAyMTcsIDgwLCAxMCwgCi0gICAgMSwgMjQ4LCAyMDEsIDEwLCAxLCAyNDgsIDEzMiwgMTAsIDEsIDI0NiwgNzAsIDEwLCAxLCAyNDgsIDE5NiwgMiwgMTM0LCAKLSAgICAxNzAsIDc3LCAyNDYsIDEwMywgMTAsIDEsIDI0OCwgMTk2LCAyLCAyNDQsIDExLCAxNzAsIDQ4LCAxMCwgMSwgMjIyLCAxNzEsIAotICAgIDEwLCAxLCAyMjMsIDk2LCAyLCA0LCAyMTQsIDEwNSwgMTAsIDEsIDIyMywgOTYsIDIsIDIyMiwgMjMzLCAxMCwgMSwgMjIzLCAKLSAgICA5NiwgMiwgNTksIDUxLCAxMCwgMSwgMjIzLCA5NiwgMiwgNCwgMjE0LCAxMDYsIDUxLCAxMCwgMSwgMjIzLCA5NiwgMiwgNTksIAotICAgIDI1MiwgNDMsIDIyLCA1OSwgNDgsIDEwLCAxLCAyMjMsIDk2LCAyLCAxMTMsIDE3MCwgNDgsIDEwLCAxLCAyMzUsIDEyMCwgCi0gICAgMTAsIDEsIDIyMywgOTYsIDIsIDI0NCwgMTEsIDE3MCwgNDgsIDEwLCAxLCAyMjEsIDE2NywgMiwgNTksIDI1MiwgNDMsIDIyLCAKLSAgICA1OSwgNDgsIDEwLCAxLCAyMjEsIDE2NywgMiwgMTM0LCAxNzAsIDUxLCAxMCwgMSwgMjIxLCAxNjcsIDIsIDEzNCwgMTcwLCAKLSAgICAyNTIsIDQzLCAyMiwgMTM0LCAxNzAsIDQ4LCAxMCwgMSwgMjIyLCAyNywgMiwgMTEzLCAxNzAsIDUxLCAxMCwgMSwgMjIyLCAKLSAgICAyNywgMiwgMTM0LCAxNzAsIDQ4LCAxMCwgMSwgMjE3LCA4MSwgMiwgMTM0LCAxNzAsIDQ4LCAxMCwgMSwgMjU0LCAxOTcsIDIsIAotICAgIDEzNCwgMTcwLCA0OCwgMTAsIDEsIDI0NywgMTE5LCAyNDQsIDE0MiwgMTAsIDEsIDI0NCwgMTQzLCAyLCA1OSwgMjMwLCAKLSAgICAxMDksIDUxLCAxMCwgMSwgMjQ0LCAxNDMsIDIsIDU5LCA1MSwgMTAsIDEsIDIxMywgMjQ4LCAxMCwgMSwgMjQ0LCAxNDMsIDIsIAotICAgIDEzNCwgMTcwLCA1MSwgMTAsIDEsIDIyNSwgMjAzLCAxMCwgMSwgMjI0LCA4MiwgMiwgNTksIDQ4LCAxMCwgMSwgMjI0LCA4MiwgCi0gICAgMiwgMTM0LCAxNzAsIDQ4LCAxMCwgMSwgMjM0LCAxNzQsIDEwLCAxLCAyMTcsIDI1MCwgMjM0LCAyNTAsIDEwLCAxLCAyMzQsIAotICAgIDI1MSwgMiwgMjIyLCAyMzMsIDEwLCAxLCAyMzQsIDI1MSwgMiwgNTksIDQ4LCAxMCwgMSwgMjI5LCA3OSwgMTAsIDEsIDIzNCwgCi0gICAgMjUxLCAyLCAxMzQsIDE3MCwgNTEsIDEwLCAxLCAyNDMsIDEyMiwgMTAsIDEsIDI0MywgMTIzLCAyLCAyMjIsIDIzMywgMTAsIAotICAgIDEsIDIyOSwgMiwgMTAsIDEsIDI0MywgMTIzLCAyLCAxMTMsIDE3MCwgNTEsIDEwLCAxLCAyNDIsIDEwMSwgMTAsIDEsIDI0MywgCi0gICAgMTIzLCAyLCAxMzQsIDE3MCwgNDgsIDEwLCAxLCAyMzMsIDEwMywgMiwgNCwgMjE0LCAxMDUsIDEwLCAxLCAyMzMsIDEwMywgCi0gICAgMiwgNTksIDQ4LCAxMCwgMSwgMjMzLCAxMDMsIDIsIDEzNCwgMTcwLCA0OCwgMTAsIDEsIDIzMywgMTAzLCAyLCAxMzQsIAotICAgIDE3MCwgNTEsIDEwLCAxLCAyMjgsIDYzLCAyLCA1OSwgNTEsIDEwLCAxLCAyMjgsIDYzLCAyNDIsIDIxOCwgMTAsIDEsIDIyMiwgCi0gICAgMjE0LCAxMCwgMSwgMjI4LCA2MywgMiwgMjIyLCAyMzMsIDEwLCAxLCAyMjgsIDYzLCAyLCAxMzQsIDE3MCwgNDgsIDEwLCAxLCAKLSAgICAyNDEsIDIxOSwgMjQ3LCAxNDEsIDEwLCAxLCAyMTcsIDI3LCAyLCA1OSwgNDgsIDEwLCAxLCAyNDEsIDIxOSwgMiwgNzksIAotICAgIDQ4LCAxMCwgMSwgMjQxLCAyMTksIDI0MiwgMTcxLCAxMCwgMSwgMjQxLCAyMTksIDI0MiwgMTcyLCAyLCAyMDIsIDQ4LCAxMCwgCi0gICAgMSwgMjE3LCA4LCAyMzEsIDE2NSwgMjQyLCAxNzEsIDEwLCAxLCAyMTIsIDMxLCAyLCAyMjIsIDIzMywgMTAsIDEsIDIzNCwgCi0gICAgNzMsIDIyNiwgMjM0LCAxMCwgMSwgMjI2LCAyMzQsIDEwLCAxLCA3MCwgMTAsIDEsIDIxMCwgMjEyLCAxMCwgMSwgMjM0LCAKLSAgICA3MywgMjEwLCAyMTIsIDEwLCAxLCAyMTIsIDMxLCAyLCAxMTMsIDE3MCwgNDgsIDEwLCAxLCAyMTMsIDI1NSwgMTAsIDEsIAotICAgIDI0NCwgMTY4LCAyMTEsIDQzLCAxMCwgMSwgNzksIDIsIDIxNywgNzcsIDEwLCAxLCA3OSwgMiwgNCwgMjE0LCAxMDUsIDEwLCAKLSAgICAxLCAyMTIsIDMxLCAyLCA1OSwgNDgsIDEwLCAxLCA3NSwgMTAsIDEsIDc5LCAyLCAxMzQsIDE3MCwgNTEsIDEwLCAxLCA3OSwgCi0gICAgMjUyLCAxMzIsIDEwLCAxLCA3OSwgMjUyLCAxMzMsIDIsIDIwMiwgNDgsIDEwLCAyNDMsIDIyOSwgMjE4LCAxMjksIDEwLCAxLCAKLSAgICAyNTQsIDI0MywgMTAsIDQsIDEyNSwgMjcsIDIyMiwgMjcsIDIsIDIzMywgMTAzLCAyLCAxMTIsIDIzMSwgMTkyLCAxMCwgNCwgCi0gICAgMTI1LCAyNywgMjI0LCA4MiwgMiwgMjMzLCAxMDMsIDIsIDExMiwgMjMxLCAxOTIsIDEwLCA0LCAxMjUsIDY2LCA2NSwgMTcsIAotICAgIDEwLCA0LCAxMjUsIDIzMywgMTAzLCAyNTQsIDE3MCwgMTAsIDQsIDEyNSwgMjM1LCAxMjMsIDEwLCA0LCAxMjUsIDEzNCwgCi0gICAgMjQ3LCAxMTgsIDEwLCA0LCAxMjUsIDIyMSwgMTY2LCAxMCwgMjQ1LCAxNDMsIDY0LCAyNTMsIDE2NiwgMTAsIDIxOCwgMTUyLCAKLSAgICA2NCwgMjIyLCAxMzgsIDI0NSwgMTc1LCAyNDEsIDE1NSwgMTAsIDQsIDEyNSwgMjIyLCAxODMsIDIxMCwgODYsIDEwLCA0LCAKLSAgICAxMjUsIDIxNCwgMTU5LCAyMjMsIDExNSwgMjEwLCA4NiwgMTAsIDQsIDEyNSwgMjQ3LCAxMTksIDI0MSwgMjM2LCA2NCwgCi0gICAgMjM0LCAxMjksIDEwLCA0LCAxMjUsIDY2LCA1MywgMTcsIDEwLCA0LCAxMjEsIDIyMSwgMTY2LCAxMCwgNCwgMTI1LCAyMzEsIAotICAgIDIyNywgMTAsIDQsIDIxMiwgMzAsIDEwLCA0LCAyMTEsIDQzLCAxMCwgNCwgMTI1LCAyMTEsIDQzLCAxMCwgNCwgMTI1LCAKLSAgICAyMjgsIDYyLCAxMCwgMjI1LCA0MSwgNjQsIDIyMiwgMTMsIDEwLCAyNDUsIDE1MiwgMjUwLCAxNzUsIDEyMSwgMjE4LCAxMjksIAotICAgIDEwLCAyNDUsIDE1MiwgMjUwLCAxNzUsIDEyNSwgMjE4LCAxMjksIDEwLCAyMjIsIDE4MywgMTI1LCAyMTgsIDEzMCwgMiwgCi0gICAgMjQ0LCAxMDQsIDI1MCwgMTc0LCAxMCwgNCwgMTIxLCAyMzEsIDc4LCAxMCwgMSwgMjQ4LCAxOTYsIDIsIDIzNSwgMTkzLCAKLSAgICAyMTQsIDEwNSwgMTAsIDEsIDIyMywgOTYsIDIsIDIzNSwgMTkzLCAyMTQsIDEwNSwgMjQ1LCAyMiwgMjU0LCAzNywgMjEsIAotICAgIDIxMCwgODYsIDI0NSwgMjIsIDI1NCwgMzcsIDIxLCAxMTAsIDI0NSwgMjIsIDI1NCwgMzcsIDIxLCAxMDUsIDI0NSwgMjIsIAotICAgIDI1NCwgMzcsIDIxLCAxNTgsIDI0NSwgMjIsIDI1NCwgMzcsIDIxLCAxNjEsIDI0NSwgMjIsIDI1NCwgMzcsIDIxLCAxODksIAotICAgIDI0NSwgMjIsIDI1NCwgMzcsIDIxLCAxOTQsIDI0NSwgMjIsIDI1NCwgMzcsIDIxLCAxOTgsIDI0NSwgMjIsIDI1NCwgMzcsIAotICAgIDIxLCAxOTUsIDI0NSwgMjIsIDI1NCwgMzcsIDIxLCAyMDAsIDEwLCAxLCAyMjAsIDYwLCAyLCA1OSwgNTEsIDEwLCAxLCAKLSAgICAyNDgsIDIxNywgMiwgNTksIDUxLCAxMCwgMSwgMjQyLCAyNDUsIDIsIDU5LCA1MSwgMTAsIDUsIDIxOSwgMTU4LCAyNTQsIAotICAgIDEyNiwgMTAsIDUsIDIxOSwgMTU4LCAyMjQsIDIzNSwgMjMxLCA1OCwgMTAsIDEsIDI0MSwgMjE5LCAyLCAyMzUsIDE5MywgCi0gICAgMjE0LCAxMDUsIDE4OCwgMjQ1LCAxNDMsIDY0LCAyMjYsIDE0LCAxODgsIDIxOCwgMTksIDI0MywgMjI5LCAyMTgsIDEyOSwgCi0gICAgMTg4LCAyMTgsIDY3LCAyNDMsIDIyOSwgMjE4LCAxMjksIDE4OCwgMjE4LCAxOSwgMjQ5LCAyMjYsIDE4OCwgMjE4LCA2NywgCi0gICAgMjQ5LCAyMjYsIDE4OCwgMjAzLCAyNDksIDIyNiwgMTg4LCAyNDksIDIyNywgMjE5LCAxMDYsIDIzMywgNDYsIDE4OCwgMjQ5LCAKLSAgICAyMjcsIDIxOSwgMTA2LCAyMjIsIDI1MSwgMTg4LCAyMTgsIDE5LCAyNDksIDIyNywgMjE5LCAxMDYsIDIzMywgNDYsIDE4OCwgCi0gICAgMjE4LCA2NywgMjQ5LCAyMjcsIDIxOSwgMTA2LCAyMjIsIDI1MSwgMTg4LCAyNDksIDE4MCwgMTg4LCAyNDIsIDEsIDIyNiwgCi0gICAgMjUwLCAxODgsIDI0MiwgMSwgMjMxLCAzNiwgMTg4LCAyNDIsIDEsIDI1MywgMjE4LCAxODgsIDI1NSwgMjEsIDc4LCAxODgsIAotICAgIDEsIDI1NCwgMTc0LCAxODgsIDEsIDIxOCwgMjMsIDI1NCwgMTc0LCAxODgsIDEsIDI1MiwgMjUsIDE4OCwgMSwgMjQzLCAKLSAgICAxMTMsIDE4OCwgMSwgMjQzLCAxMTQsIDI0MywgOTEsIDE4OCwgMSwgMjQ4LCAxOTIsIDE4OCwgMSwgMjQ3LCAxMTksIDI0OCwgCi0gICAgMTkzLCAyMjIsIDIyOSwgMTg4LCAxLCAyNDEsIDIzOCwgMTg4LCAxLCAyMTIsIDMwLCAxODgsIDEsIDIxMCwgMTA4LCAxODgsIAotICAgIDEsIDI0MSwgMTk1LCAxODgsIDEsIDIxNiwgMjI2LCAxODgsIDEsIDIxNiwgMjI3LCAyNDMsIDkxLCAxODgsIDEsIDIxMCwgCi0gICAgMTk5LCAxODgsIDEsIDIxMCwgMjAwLCAyNDEsIDIzOCwgMTg4LCAxLCAyMzQsIDIyNSwgMTg4LCAxLCAyMzMsIDEwMSwgMTg4LCAKLSAgICAxLCAyMzAsIDE5MCwgMTg4LCAxLCAyMjcsIDE5NCwgMTg4LCAxLCAyMjAsIDE0MywgMTg4LCAxLCA0MCwgMjIwLCAxNDMsIAotICAgIDE4OCwgMSwgNzUsIDE4OCwgMSwgMjI1LCAyMjEsIDE4OCwgMSwgMjIzLCA0OSwgMjI1LCAyMjEsIDE4OCwgMSwgMjIyLCAyNCwgCi0gICAgMTg4LCAxLCAyMjQsIDc1LCAxODgsIDEsIDIyMiwgMjI5LCAxODgsIDEsIDIyMCwgMjAsIDE4OCwgMSwgMjE3LCAzNiwgMTg4LCAKLSAgICAxLCAyMjUsIDE2OSwgMjUyLCAxMiwgMTg4LCAxLCAyMjUsIDE2OSwgMjQyLCAyNDIsIDE4OCwgMSwgMjI1LCAxNjksIDI0OCwgCi0gICAgMjAsIDE4OCwgMjI0LCAxNTEsIDQ4LCAxODgsIDIyNCwgMTUxLCA1MSwgMTg4LCAyMjQsIDE1MSwgMjQ2LCAxMTcsIDE4OCwgCi0gICAgMjEwLCAxNywgNDgsIDE4OCwgMjEwLCAxNywgNTEsIDE4OCwgMjEwLCAxNywgMjQ2LCAxMTcsIDE4OCwgMjIzLCAxMzEsIDQ4LCAKLSAgICAxODgsIDIyMywgMTMxLCA1MSwgMTg4LCAyNDYsIDExOCwgMjEwLCAyNCwgMjQxLCA0NCwgMTg4LCAyNDYsIDExOCwgMjEwLCAKLSAgICAyNCwgMjU0LCAxMDUsIDE4OCwgMjQxLCAyNDEsIDQ4LCAxODgsIDI0MSwgMjQxLCA1MSwgMTg4LCAyNDEsIDI0MCwgMjQ2LCAKLSAgICAxMTcsIDE4OCwgMjQ1LCA3OSwgNDgsIDE4OCwgMjQ1LCA3OSwgNTEsIDE4OCwgMjIyLCAxMDcsIDE4OCwgMjQ0LCAxMzYsIAotICAgIDI0NywgMTIwLCAxODgsIDIyMywgMjQ4LCAxODgsIDIyMiwgMTM0LCAxODgsIDExMywgNjcsIDE3MCwgNDgsIDE4OCwgMTEzLCAKLSAgICA2NywgMTcwLCA1MSwgMTg4LCAxMzQsIDE3MCwgNDgsIDE4OCwgMTM0LCAxNzAsIDUxLCAxODgsIDIyNiwgMjQ4LCAyMzIsIAotICAgIDIxNCwgNDgsIDE4OCwgMjI2LCAyNDgsIDIzMiwgMjE0LCA1MSwgMTg4LCAyMzAsIDU2LCAxODgsIDI1MiwgMTMxLCAxODgsIAotICAgIDEsIDIxOSwgNDksIDIxMCwgODAsIDE4OCwgMSwgMjE5LCA0OSwgMjM0LCAxMjIsIDE4OCwgMSwgMjE5LCA0OSwgMjQ0LCAKLSAgICAxNTQsIDEwLCAxLCAyNTIsIDU1LCAyLCAxMzQsIDE3MCwgMjQwLCAyNTAsIDUxLCAxMCwgMSwgMjUyLCA1NSwgMiwgNTksIAotICAgIDI1MiwgNDMsIDIyLCAxMzQsIDE3MCwgNDgsIDEwLCAxLCAyNTIsIDU1LCAyLCAxMzQsIDE3MCwgMjI1LCA3LCAyMTQsIDE1MywgCi0gICAgNTEsIDEwLCAxLCAyNTIsIDU1LCAyLCAxMzQsIDE3MCwgMjI1LCA3LCAyMTQsIDE1MywgMjUyLCA0MywgMjIsIDExMywgMTcwLCAKLSAgICA0OCwgMTAsIDEsIDI1MiwgNTUsIDIsIDExMywgMTcwLCAyNTIsIDQzLCAyMiwgNTksIDQ4LCAxMCwgMSwgMjUyLCA1NSwgMiwgCi0gICAgMjM1LCAxOTMsIDQsIDIxNCwgMTA2LCA1MSwgMTAsIDEsIDI1MiwgNTUsIDIsIDQsIDIxNCwgMTA1LCAxMCwgMSwgMTIyLCAyLCAKLSAgICAxMTMsIDE3MCwgNDgsIDEwLCAxLCAxMjIsIDIsIDEzNCwgMTcwLCAyMjUsIDcsIDIxNCwgMTUzLCA1MSwgMTAsIDEsIDI0OCwgCi0gICAgMTk2LCAyLCAxMTMsIDE3MCwgMjEzLCAxODksIDI1MiwgNDMsIDIyLCA0LCAyMTcsIDgwLCAxMCwgMSwgMjQ4LCAxOTYsIDIsIAotICAgIDIzNSwgMTkzLCA0LCAyMTQsIDEwNiwgNTEsIDEwLCAxLCAyMjMsIDk2LCAyLCA5MSwgMTAsIDEsIDIyMSwgMTY3LCAyLCAKLSAgICAyNDQsIDExLCAxNzAsIDQ4LCAxMCwgMSwgMjU0LCAxOTcsIDIsIDExMywgMTcwLCA0OCwgMTAsIDEsIDI1NCwgMTk3LCAyLCAKLSAgICAxMzQsIDE3MCwgMjI1LCA3LCAyNDYsIDEwNCwgNDgsIDEwLCAxLCAyNTQsIDE5NywgMiwgMTEzLCAxNzAsIDIxMywgMTg5LCAKLSAgICA0OCwgMTAsIDEsIDI0NCwgMTQzLCAyLCAxMTMsIDE3MCwgNTEsIDEwLCAxLCAyNDQsIDE0MywgMiwgMTM0LCAxNzAsIDIyNSwgCi0gICAgNywgMjE0LCAxNTMsIDUxLCAxMCwgMSwgMjM0LCAxNzUsIDIsIDU5LCA0OCwgMTAsIDEsIDIzNCwgMTc1LCAyLCAxMzQsIAotICAgIDE3MCwgNDgsIDEwLCAxLCAyMzQsIDE3NSwgMiwgMTM0LCAxNzAsIDIyNSwgNywgMjE0LCAxNTMsIDUxLCAxMCwgMSwgNjYsIAotICAgIDIsIDU5LCA0OCwgMTAsIDEsIDY2LCAyLCA1OSwgNTEsIDEwLCAxLCAyMjgsIDYzLCAyLCAxMTMsIDE3MCwgNTEsIDEwLCAxLCAKLSAgICAyMjgsIDYzLCAyLCA0LCAyMTcsIDgwLCAxMCwgMSwgMjI4LCA2MywgMiwgNCwgMjE0LCAxMDUsIDEwLCAxLCAyMzMsIDEwMywgCi0gICAgMiwgMTMwLCAxMCwgMSwgMjIzLCA5NiwgMiwgMTEzLCAxNzAsIDIxMywgMTg5LCA0OCwgMTAsIDEsIDIyMywgOTYsIDIsIAotICAgIDIwMiwgNDgsIDEwLCAxLCAyMjEsIDE2NywgMiwgMTEzLCAxNzAsIDIxMywgMTg5LCA0OCwgMTAsIDEsIDEyMiwgMiwgNCwgCi0gICAgMTAsIDEsIDIxNywgODEsIDUxLCAxMCwgMSwgMTIyLCAyLCA0LCAxMCwgMSwgMjE3LCA4MSwgMjIsIDExMywgMjQ3LCAxMTgsIAotICAgIDEwLCAxLCAyMjEsIDE2NywgMiwgNCwgMTAsIDEsIDIxNywgODEsIDIyLCAxMTMsIDI0NywgMTE4LCAxMCwgMSwgMjIzLCA5NiwgCi0gICAgMiwgNCwgMTAsIDEsIDIxNywgODEsIDIyLCAxMTMsIDI0NywgMTE4LCAxMCwgMSwgMTIyLCAyLCA0LCAxMCwgMSwgMjE3LCAKLSAgICA4MSwgNDgsIDEwLCAxLCAxMTIsIDIsIDI0NSwgMjIsIDI1NCwgMzcsIDIxLCAxMTMsIDQ4LCAxMCwgMSwgMTEyLCAyLCAyNDUsIAotICAgIDIyLCAyNTQsIDM3LCAyMSwgMTM0LCA0OCwgMTAsIDEsIDI0NCwgMTY4LCA3OSwgMiwgMjQ1LCAyMiwgMjU0LCAzNywgMjEsIAotICAgIDExMywgNDgsIDEwLCAxLCAyNDQsIDE2OCwgNzksIDIsIDI0NSwgMjIsIDI1NCwgMzcsIDIxLCAxMzQsIDQ4LCAxMCwgMSwgCi0gICAgMjQ0LCAxNjgsIDc5LCAyLCAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgMjQ0LCAxMSwgNTEsIDEwLCAxLCAyMTIsIDMxLCAyLCAKLSAgICAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgMTEzLCA0OCwgMTAsIDEsIDIxMiwgMzEsIDIsIDI0NSwgMjIsIDI1NCwgMzcsIDIxLCAKLSAgICAxMzQsIDQ4LCAxMCwgMSwgNzksIDI1MiwgMTMzLCAyLCAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgMTEzLCA0OCwgMTAsIDEsIAotICAgIDc5LCAyNTIsIDEzMywgMiwgMjQ1LCAyMiwgMjU0LCAzNywgMjEsIDEzNCwgNDgsIDEwLCAxLCAxMjIsIDIsIDI0NSwgMjIsIAotICAgIDI1NCwgMzcsIDIxLCAyNDQsIDExLCA1MSwgMTAsIDEsIDIyMSwgMTY3LCAyLCAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgMjQ0LCAKLSAgICAxMSwgNDgsIDEwLCAxLCAyMjEsIDE2NywgMiwgMjM1LCAxOTMsIDIxNCwgMTA1LCAxMCwgMSwgMjM0LCAyNTEsIDIsIDExMywgCi0gICAgMTcwLCA0OCwgMjE2LCAyMDUsIDEsIDI0MiwgNDYsIDIxNiwgMjA1LCAxLCAyMjAsIDY4LCAyMTYsIDIwNSwgMSwgMjI4LCAKLSAgICA2MSwgMjE2LCAyMDUsIDEsIDIyMywgMTg0LCAyMTYsIDIwNSwgMSwgMjUyLCAxODksIDIxNiwgMjA1LCAxLCAyMzIsIDI1MSwgCi0gICAgMjE2LCAyMDUsIDEsIDIzNSwgOCwgMjE2LCAyMDUsIDEsIDI1NCwgMTU5LCAyMTYsIDIwNSwgMSwgMjE0LCAyNSwgMjE2LCAKLSAgICAyMDUsIDEsIDIzMSwgNzcsIDIxNiwgMjA1LCAxLCAyNDQsIDE5NCwgMjE2LCAyMDUsIDEsIDI0OCwgMjMsIDIxNiwgMjA1LCAKLSAgICAxLCAyMTYsIDIwNywgMjE2LCAyMDUsIDEsIDIzMywgMTMxLCAyMTYsIDIwNSwgMSwgMjQzLCAxMzEsIDIxNiwgMjA1LCAxLCAKLSAgICAyNDIsIDE3NywgMjE2LCAyMDUsIDEsIDIyMSwgMTY1LCAyMTYsIDIwNSwgMSwgMjQ4LCAxNDgsIDIxNiwgMjA1LCAxLCAyMTAsIAotICAgIDEwMCwgMjE2LCAyMDUsIDEsIDIxNywgMzcsIDIxNiwgMjA1LCAxLCAyMTEsIDEwMywgMjE2LCAyMDUsIDEsIDIyNSwgMjMzLCAKLSAgICAyMTYsIDIwNSwgMSwgMjM1LCAxMjgsIDIxNiwgMjA1LCAxLCAyNTAsIDEzNCwgMjE2LCAyMDUsIDEsIDIxNSwgMTU1LCAyMTYsIAotICAgIDIwNSwgMSwgMjQxLCAxODgsIDIxNiwgMjA1LCAxLCAyMzQsIDEzMSwgMjE2LCAyMDUsIDEsIDIxNiwgMjA2LCAyMTYsIDIwNSwgCi0gICAgMSwgMjEwLCAxMTUsIDIxNiwgMjA1LCAxLCAyMjAsIDU4LCAyMTYsIDIwNSwgMSwgMjIyLCAzMCwgMjE2LCAyMDUsIDEsIAotICAgIDI0OCwgMjE5LCAyMTYsIDIwNSwgMSwgMTExLCAyMTYsIDIwNSwgMSwgMjEwLCAyMywgMjE2LCAyMDUsIDEsIDI1NCwgMTkzLCAKLSAgICAyMTYsIDIwNSwgMSwgMjQyLCAyNDMsIDIxNiwgMjA1LCAxLCAyMjQsIDg1LCAyMTYsIDIwNSwgMSwgMjEyLCA2MywgMjE2LCAKLSAgICAyMDUsIDI1NSwgMjIsIDIxNiwgMjA1LCAyNTUsIDM4LCAyMTYsIDIwNSwgMjQwLCAxMTQsIDIxNiwgMjA1LCAyNDUsIDIwOCwgCi0gICAgMjE2LCAyMDUsIDIxNCwgMjIyLCAyMTYsIDIwNSwgMjI2LCAxODIsIDIxNiwgMjA1LCAyNDUsIDIxNiwgMjE2LCAyMDUsIAotICAgIDI0NSwgMTYsIDIxNiwgMjA1LCAyMjYsIDI0NywgMjE2LCAyMDUsIDIyNiwgMjU1LCAyMTYsIDIwNSwgMjE4LCA0NSwgMjE2LCAKLSAgICAyMDUsIDEsIDIyOSwgMjI1LCAyMjgsIDEzNywgMjEsIDIxMCwgODYsIDIyOCwgMTM3LCAyMSwgMTEwLCAyMjgsIDEzNywgMjEsIAotICAgIDEwNSwgMjI4LCAxMzcsIDIxLCAxNTgsIDIyOCwgMTM3LCAyMSwgMTYxLCAyMjgsIDEzNywgMjEsIDE4OSwgMjI4LCAxMzcsIAotICAgIDIxLCAxOTQsIDIyOCwgMTM3LCAyMSwgMTk4LCAyMjgsIDEzNywgMjEsIDE5NSwgMjI4LCAxMzcsIDIxLCAyMDAsIDIyOCwgCi0gICAgMTM3LCAxLCA2MSwgMjI4LCAxMzcsIDEsIDI0NSwgMjA5LCAyMjgsIDEzNywgMSwgNzMsIDIyOCwgMTM3LCAxLCA3NSwgMjI4LCAKLSAgICAxMzcsIDEsIDcwLCAyMjgsIDEzNywgMSwgMjI2LCAxODMsIDIyOCwgMTM3LCAxLCA3NiwgMjI4LCAxMzcsIDEsIDI0OCwgCi0gICAgMjA5LCAyMjgsIDEzNywgMSwgMjMwLCAyNSwgMjI4LCAxMzcsIDEsIDI1MiwgMTkxLCAyMjgsIDEzNywgMSwgMTkwLCAyMjgsIAotICAgIDEzNywgMSwgMjE3LCAxMDUsIDIyOCwgMTM3LCAxLCAyMzUsIDE0MSwgMjI4LCAxMzcsIDEsIDI1MCwgMTU3LCAyMjgsIDEzNywgCi0gICAgMSwgMjQ4LCAyMjEsIDIyOCwgMTM3LCAxLCAyMDUsIDIyOCwgMTM3LCAxLCAyMjIsIDE3OSwgMjI4LCAxMzcsIDEsIDIwNiwgCi0gICAgMjI4LCAxMzcsIDEsIDI0MywgNzksIDIyOCwgMTM3LCAxLCAyNDQsIDE5NiwgMjI4LCAxMzcsIDEsIDE3NiwgMjI4LCAxMzcsIAotICAgIDEsIDIzMywgMTM1LCAyMjgsIDEzNywgMSwgMjI5LCAyMjksIDIxMSwgMjIzLCAyMjgsIDEzNywgMSwgMTg0LCAyMjgsIDEzNywgCi0gICAgMSwgMjI3LCAxNjUsIDIyOCwgMTM3LCAxLCAxOTcsIDIyOCwgMTM3LCAxLCAxNjIsIDIyOCwgMTM3LCAxLCAyMTIsIDY1LCAKLSAgICAyMjgsIDEzNywgMSwgMTkxLCAyMjgsIDEzNywgMSwgMjI3LCAxNjYsIDIxMSwgMjIzLCAyMjgsIDEzNywgMSwgMjM1LCA2MSwgCi0gICAgMjM1LCAxNDEsIDIyOCwgMTM3LCAxLCAyMzUsIDYxLCAyNTAsIDE1NywgMjI4LCAxMzcsIDEsIDIzNSwgNjEsIDIwNSwgMjI4LCAKLSAgICAxMzcsIDM4LCAyMTksIDI1MSwgMTI1LCAyMTYsIDMwLCAyMjgsIDEzNywgMzgsIDIxOSwgMjUxLCAxMjEsIDIxNiwgMzAsIAotICAgIDIyOCwgMTM3LCAzOCwgMjE5LCAyNTEsIDIyMiwgMjI4LCAyMTYsIDMwLCAyMjgsIDEzNywgMzgsIDE5OSwgMjQ4LCAzOCwgCi0gICAgMjE2LCAzMCwgMjI4LCAxMzcsIDM4LCAxOTksIDEyNSwgMjE2LCAzMCwgMjI4LCAxMzcsIDM4LCAxOTksIDEyMSwgMjE2LCAKLSAgICAzMCwgMjI4LCAxMzcsIDM4LCAxOTksIDIyMiwgMjI4LCAyMTYsIDMwLCAyMjgsIDEzNywgMzgsIDIyOSwgMTkzLCA3OCwgCi0gICAgMjI4LCAxMzcsIDM4LCA1MiwgNTksIDQ4LCAyMjgsIDEzNywgMTI1LCAxMzgsIDI1NCwgNTcsIDIyOCwgMTM3LCAxMjEsIAotICAgIDEzOCwgMjU0LCA1NywgMjI4LCAxMzcsIDE2LCAyMjYsIDE4NCwgMjQ4LCA1MCwgMjI4LCAxMzcsIDE2LCAyNDMsIDc4LCAKLSAgICAyMjgsIDEzNywgMjQ5LCAyMTksIDIyOCwgMTM3LCAyNDUsIDMxLCA3OCwgMjI4LCAxMzcsIDIzMywgMTA4LCAyMjEsIDI1MiwgCi0gICAgMSwgMjU0LCAxNzYsIDIyMSwgMjUyLCAxLCAyNTEsIDIyOCwgMjIxLCAyNTIsIDEsIDI0MywgMTEyLCAyMjEsIDI1MiwgMSwgCi0gICAgMjQ4LCAxOTQsIDIyMSwgMjUyLCAxLCAyMzUsIDE1MiwgMjIxLCAyNTIsIDEsIDI1MiwgMTg5LCAyMjEsIDI1MiwgMSwgMjEwLCAKLSAgICA4OSwgMjIxLCAyNTIsIDEsIDIzNSwgMTYwLCAyMjEsIDI1MiwgMSwgMjE2LCA2NywgMjIxLCAyNTIsIDEsIDIxMCwgMTgyLCAKLSAgICAyMjEsIDI1MiwgMSwgMjM1LCA5LCAyMjEsIDI1MiwgMSwgMjMzLCAxMjgsIDIyMSwgMjUyLCAxLCAyMzAsIDE5MCwgMjIxLCAKLSAgICAyNTIsIDEsIDIyNywgMTk0LCAyMjEsIDI1MiwgMSwgMjE5LCAxNTYsIDIyMSwgMjUyLCAxLCAyMzUsIDI1NSwgMjIxLCAyNTIsIAotICAgIDEsIDI0NCwgMTIxLCAyMjEsIDI1MiwgMSwgMjE1LCAxODEsIDIyMSwgMjUyLCAxLCAyMjQsIDEwLCAyMjEsIDI1MiwgMSwgCi0gICAgMjIyLCAyMjksIDIyMSwgMjUyLCAxLCAyMjAsIDg1LCAyMjEsIDI1MiwgMSwgMjE3LCAxMDAsIDIyMSwgMjUyLCAxNjQsIAotICAgIDIzNSwgMjU1LCAyMjEsIDI1MiwgMTY0LCAyMzUsIDI1NCwgMjIxLCAyNTIsIDE2NCwgMjI2LCAyNDMsIDIyMSwgMjUyLCAKLSAgICAxNjQsIDI0OCwgMjA3LCAyMjEsIDI1MiwgNTgsIDEsIDI0NSwgMTA1LCAyMTAsIDE4MiwgMjIxLCAyNTIsIDE2NCwgMjQ1LCAKLSAgICAxMDUsIDIxMCwgMTgyLCAyMjEsIDI1MiwgMjUsIDUsIDE5OSwgNzUsIDIyMSwgMjUyLCAyNSwgNSwgNzUsIDIyMSwgMjUyLCAKLSAgICAyNSwgNSwgMjI2LCAxMTgsIDI1NSwgNzMsIDIyMSwgMjUyLCAyNSwgNSwgMTk5LCAyNTUsIDczLCAyMjEsIDI1MiwgMjUsIDUsIAotICAgIDI1NSwgNzMsIDIyMSwgMjUyLCAyNSwgNSwgMjI2LCAxMTgsIDYxLCAyMjEsIDI1MiwgMjUsIDUsIDE5OSwgNjEsIDIyMSwgCi0gICAgMjUyLCAyNSwgNSwgNjEsIDIyMSwgMjUyLCA1OCwgMSwgMjE5LCAyNTEsIDYxLCAyMjEsIDI1MiwgMjUsIDUsIDIxOSwgMjUxLCAKLSAgICA2MSwgMjIxLCAyNTIsIDI1LCA1LCAxOTksIDcwLCAyMjEsIDI1MiwgMjUsIDUsIDcwLCAyMjEsIDI1MiwgNTgsIDEsIDczLCAKLSAgICAyMjEsIDI1MiwgMjUsIDUsIDE5OSwgNzMsIDIyMSwgMjUyLCAyNSwgNSwgNzMsIDIyMSwgMjUyLCAyNSwgNSwgNzYsIDIyMSwgCi0gICAgMjUyLCAyNSwgNSwgMjE4LCA0NSwgMjIxLCAyNTIsIDE2NCwgMjI5LCA5MiwgMjIxLCAyNTIsIDIyNCwgMTQxLCAyMjksIDkyLCAKLSAgICAyMjEsIDI1MiwgMjI0LCAxNDEsIDI1NCwgMjE4LCAyMjEsIDI1MiwgMjI0LCAxNDEsIDI1NCwgMTE0LCAyMjEsIDI1MiwgCi0gICAgMjI0LCAxNDEsIDI1MiwgMTE0LCAyMjEsIDI1MiwgMjI0LCAxNDEsIDI1MywgMjAxLCAyMjEsIDI1MiwgMjI0LCAxNDEsIAotICAgIDIyMCwgOCwgMjIxLCAyNTIsIDI1NSwgMjEsIDc4LCAyMjEsIDI1MiwgMjI0LCAxNDEsIDIzMSwgNjgsIDIyNCwgNDUsIDIyMSwgCi0gICAgMjUyLCAyMjQsIDE0MSwgMjEwLCAzMSwgMjIxLCAyNTIsIDIyNCwgMTQxLCAyMjQsIDQ1LCAyMjEsIDI1MiwgMjI0LCAxNDEsIAotICAgIDIxMCwgMTE0LCAyMjEsIDI1MiwgMjI0LCAxNDEsIDIxNSwgOTAsIDIyMSwgMjUyLCAyMjQsIDE0MSwgMjU0LCA5LCAyMjEsIAotICAgIDI1MiwgMjI0LCAxNDEsIDIxOSwgNTMsIDIzMSwgMTQ1LCAyMjEsIDI1MiwgMjI0LCAxNDEsIDI1NCwgMTAwLCAyMzEsIDE4MiwgCi0gICAgMSwgMjQyLCAyNCwgMjMxLCAxODIsIDEsIDI1NSwgMjUsIDIzMSwgMTgyLCAxLCAyNTQsIDIxNiwgMjMxLCAxODIsIDEsIAotICAgIDI1NCwgMjU1LCAyMzEsIDE4MiwgMSwgMjU0LCAyMDksIDIzMSwgMTgyLCAxLCAyMTQsIDEyNCwgMjMxLCAxODIsIDEsIDI1MywgCi0gICAgMTYwLCAyMzEsIDE4MiwgMSwgMjM1LCAxNjAsIDIzMSwgMTgyLCAxLCAyNTMsIDE5OCwgMjMxLCAxODIsIDEsIDI1NCwgMTgxLCAKLSAgICAyMzEsIDE4MiwgMSwgMjU0LCAxODYsIDIzMSwgMTgyLCAxLCAyNTQsIDE3OCwgMjMxLCAxODIsIDEsIDI1NCwgMTM2LCAyMzEsIAotICAgIDE4MiwgMSwgMjU0LCAxMjMsIDIzMSwgMTgyLCAxLCAyNTMsIDIzNywgMjMxLCAxODIsIDEsIDIzNSwgMjU1LCAyMzEsIDE4MiwgCi0gICAgMSwgMjU0LCA3MiwgMjMxLCAxODIsIDEsIDI1MywgMjA4LCAyMzEsIDE4MiwgMSwgMjU0LCA0NSwgMjMxLCAxODIsIDEsIAotICAgIDI1NCwgNDEsIDIzMSwgMTgyLCAxLCAyNTMsIDIzMSwgMjMxLCAxODIsIDEsIDI1MywgMjA2LCAyMzEsIDE4MiwgMSwgMjQ2LCAKLSAgICA1NSwgMjMxLCAxODIsIDEsIDIzNSwgMiwgMjMxLCAxODIsIDEsIDI1NCwgMTk2LCAyMzEsIDE4MiwgMjU0LCAyMjIsIDc4LCAKLSAgICAyMzEsIDE4MiwgMjEzLCAxMzYsIDc4LCAyMzEsIDE4MiwgMjQzLCA1MywgNzgsIDIzMSwgMTgyLCAyMjQsIDE0MCwgMTAsIDEsIAotICAgIDI1MiwgNTUsIDIsIDQsIDIxNCwgMTA2LCA1MSwgMTAsIDEsIDE1MSwgMiwgMTEzLCAxNzAsIDQ4LCAxMCwgMSwgMjE3LCA4MSwgCi0gICAgMiwgMTEzLCAxNzAsIDQ4LCAxMCwgMSwgMjQ0LCAxNDMsIDIsIDU5LCAyNTIsIDQzLCAyMiwgMTM0LCAxNzAsIDQ4LCAxMCwgCi0gICAgMSwgMjI0LCA4MiwgMiwgNTksIDUxLCAxMCwgMSwgMjMzLCAxMDMsIDIsIDUyLCAxMzAsIDEwLCAxLCA2NiwgMiwgMTM0LCAKLSAgICAxNzAsIDQ4LCAxMCwgMSwgNzksIDIsIDExMywgMTcwLCAyNTIsIDQzLCAyMiwgMjAyLCA0OCwgMTAsIDEsIDc5LCAyLCAxMTMsIAotICAgIDE3MCwgMjUyLCA0MywgMjIsIDU5LCA0OCwgMTAsIDEsIDIyMywgOTYsIDIsIDIzMiwgMTIzLCAxMCwgMSwgMjEyLCAzMSwgMiwgCi0gICAgNTksIDIxMSwgMjMxLCAxMCwgMSwgMjIyLCAyMDEsIDIxMSwgNDMsIDEwLCAyNDksIDk5LCAyNDQsIDE2NSwgMTAsIDI0OSwgCi0gICAgOTksIDI0OCwgMTg0LCAxMCwgMjQ5LCA5OSwgMjM0LCAyMDUsIDEwLCAyNDksIDk5LCAyNDQsIDE2MywgMTAsIDI0OSwgOTksIAotICAgIDI0OCwgMTgyLCAxMCwgMjQ5LCA5OSwgMjM0LCAyMDMsIDEwLCAxMzgsIDEyMywgNTksIDQ4LCAxMCwgMTM4LCAxMTMsIDE3MCwgCi0gICAgNDgsIDEwLCAxMzgsIDIzMiwgMTI0LCA0OCwgMTAsIDEzOCwgMTIzLCA1OSwgNTEsIDEwLCAxMzgsIDExMywgMTcwLCA1MSwgCi0gICAgMTAsIDEzOCwgMjMyLCAxMjQsIDUxLCAxMCwgMjA0LCAyNDQsIDE2MywgMTAsIDIwNCwgMjQ4LCAxODIsIDEwLCAyMDQsIAotICAgIDIzNCwgMjAzLCAxMCwgNCwgMTI1LCAyMTIsIDMwLCAxMCwgMjQ0LCAxNjYsIDIsIDIyMiwgMjMzLCAxMCwgMjQ0LCAxNjYsIAotICAgIDIsIDU5LCA0OCwgMTAsIDIzNCwgMjA2LCAyLCA1OSwgNTEsIDEwLCA0MywgMjUzLCAyNTAsIDQ4LCAxMCwgNDQsIDI1MywgCi0gICAgMjUwLCA0OCwgMTAsIDQzLCAyNTMsIDI1MCwgNTEsIDEwLCA0NCwgMjUzLCAyNTAsIDUxLCAxMCwgNTIsIDQ0LCAyNTMsIAotICAgIDI1MCwgNDgsIDEwLCA1MiwgNDQsIDI1MywgMjUwLCA3NywgMiwgMjQ3LCAxMjAsIDEwLCA0NCwgMjUzLCAyNTAsIDc3LCAyLCAKLSAgICAyNDcsIDEyMCwgMTAsIDI0OCwgMTg1LCAyLCAyNDcsIDEyMCwgODQsIDUsIDIzNSwgMTkzLCAyNTAsIDI1NSwgODQsIDUsIAotICAgIDI1MCwgMjU1LCA4NCwgNSwgMjU0LCA3NSwgODQsIDUsIDIxMywgMTQ3LCA4NCwgMSwgMjE5LCAyNTEsIDYxLCA4NCwgMSwgCi0gICAgNjEsIDg0LCAxLCAyNTUsIDczLCA4NCwgMSwgNzMsIDg0LCAxLCAyMzYsIDMzLCA4NCwgMSwgNzAsIDg0LCAxLCAyMTQsIAotICAgIDExOCwgODQsIDEsIDE0OSwgMTUzLCA4NCwgMSwgMTQ5LCAxNTYsIDg0LCAxLCAyNTEsIDIsIDc1LCA4NCwgMSwgMjE5LCAKLSAgICAyNTEsIDc1LCA4NCwgMSwgNzUsIDg0LCAxLCAyNTQsIDIwMSwgODQsIDEsIDI1MSwgMiwgNzYsIDg0LCAxLCAyMTksIDI1MSwgCi0gICAgNzYsIDg0LCAxLCA3NiwgODQsIDEsIDI1MywgMTkyLCA4NCwgMSwgMTc2LCA4NCwgMSwgMjM0LCAxMzIsIDg0LCAxLCAyNDMsIAotICAgIDEzNSwgODQsIDEsIDI0MiwgMjQ5LCA4NCwgMSwgMjI5LCA3NywgODQsIDEsIDI1MSwgMzMsIDg0LCAxLCAyNTAsIDE1NywgCi0gICAgODQsIDEsIDIzNSwgMTQxLCA4NCwgMSwgMjM1LCAxMTQsIDg0LCAxLCAyMjcsIDE2NSwgODQsIDEsIDIxNSwgMTU2LCA4NCwgCi0gICAgMSwgMjE1LCAxNDQsIDg0LCAxLCAyNDgsIDEzNSwgODQsIDEsIDI0OCwgMTE5LCA4NCwgMSwgMjI4LCAxMTAsIDg0LCAxLCAKLSAgICAyMTcsIDEwNSwgODQsIDEsIDIxNiwgMjA4LCA4NCwgMSwgMjQ4LCAyMjEsIDg0LCAxLCAyNDgsIDI1LCA4NCwgMSwgMTk3LCAKLSAgICA4NCwgMSwgMjI4LCA5MiwgODQsIDEsIDE5MCwgODQsIDEsIDIyNSwgMTQ3LCA4NCwgMSwgMjUyLCAxOTEsIDg0LCAxLCAyNTIsIAotICAgIDE4LCA4NCwgMSwgMTg0LCA4NCwgMSwgMTkxLCA4NCwgMSwgMjA1LCA4NCwgMSwgMjIyLCAxNzksIDg0LCAxLCAyMzMsIDEzNSwgCi0gICAgODQsIDEsIDIzMiwgMTg0LCA4NCwgMSwgMjMyLCAxNzUsIDg0LCAxLCAyMTQsIDI3LCA4NCwgMSwgMjIwLCAxMDIsIDg0LCAxLCAKLSAgICAyMTgsIDIyMywgODQsIDEsIDIwNiwgODQsIDEsIDE2MiwgODQsIDI1LCA1LCAyMjYsIDIzNCwgODQsIDI1LCA1LCAyMjYsIAotICAgIDE4MSwgODQsIDUsIDIyNywgMjA1LCA4NCwgNSwgMjUzLCAxNzUsIDg0LCAyNSwgNSwgMjU1LCA3MywgODQsIDI1LCA1LCA3MywgCi0gICAgODQsIDI1LCA1LCAyMzYsIDMzLCA4NCwgMjUsIDUsIDcwLCA4NCwgMjUsIDUsIDIxNCwgMTE4LCA4NCwgMjUsIDUsIDE0OSwgCi0gICAgMTUzLCA4NCwgMjUsIDUsIDE0OSwgMjIyLCAxODAsIDg0LCAyNSwgNSwgMjUxLCAyLCA3NSwgODQsIDI1LCA1LCAyMTksIAotICAgIDI1MSwgNzUsIDg0LCAyNSwgNSwgNzUsIDg0LCAyNSwgNSwgMjU0LCAyMDEsIDg0LCAyNSwgNSwgMjUxLCAyLCA3NiwgODQsIAotICAgIDI1LCA1LCAyMTksIDI1MSwgNzYsIDg0LCAyNSwgNSwgNzYsIDg0LCAyNSwgNSwgMjUzLCAxOTIsIDg0LCA1LCAyMTMsIDE1MiwgCi0gICAgODQsIDI1LCA1LCAyMjQsIDE4NSwgNzUsIDg0LCAyNSwgNSwgMjUzLCAxNzEsIDg0LCAyMjYsIDIwNCwgODQsIDIxOCwgMTExLCAKLSAgICA1LCAyMTQsIDIxNiwgODQsIDIxOCwgMTExLCA1LCAyNTQsIDc3LCA4NCwgMjQyLCAxMzcsIDI1NSwgMTQsIDg0LCAyNTUsIDMsIAotICAgIDI1NSwgMTQsIDg0LCAyNSwgNSwgMjUxLCAyLCAxOTksIDc1LCA4NCwgMjUsIDUsIDIxNCwgMjE0LCA4NCwgMjUsIDUsIDIxNCwgCi0gICAgMTE3LCA4NCwgMSwgMjI0LCA4OCwgODQsIDEsIDIzNCwgMTE1LCA4NCwgMSwgMjQyLCAyMjYsIDg0LCAxLCAyMTAsIDExNiwgCi0gICAgODQsIDEsIDI0OCwgMTI0LCA4NCwgMSwgMjIzLCAzOSwgODQsIDEsIDI0NCwgMTk2LCA4NCwgMSwgMjEwLCAxNjgsIDg0LCAxLCAKLSAgICAxNDksIDIyMiwgMTgwLCA4NCwgMSwgMTQ5LCAyMzIsIDE4NSwgODQsIDI1LCA1LCAxNDksIDE1NiwgODQsIDI1LCA1LCAxNDksIAotICAgIDIzMiwgMTg1LCA4NCwgMjQ4LCAxNzgsIDg0LCA1MiwgMjQ4LCAxNzgsIDg0LCAyMSwgMjEwLCA4NiwgODQsIDIxLCAxMTAsIAotICAgIDg0LCAyMSwgMTA1LCA4NCwgMjEsIDE1OCwgODQsIDIxLCAxNjEsIDg0LCAyMSwgMTg5LCA4NCwgMjEsIDE5NCwgODQsIDIxLCAKLSAgICAxOTgsIDg0LCAyMSwgMTk1LCA4NCwgMjEsIDIwMCwgODQsIDI1NSwgMjEsIDUwLCA4NCwgNSwgMTI1LCAyMTksIDE3LCAyNDcsIAotICAgIDEyMCwgODQsIDEsIDI1MSwgMiwgNjEsIDg0LCAxLCAyMjYsIDIzNCwgODQsIDEsIDIyNiwgMTgxLCA4NCwgMSwgMjUzLCAKLSAgICAxNzEsIDg0LCAxLCAyMTQsIDIxNCwgODQsIDEsIDIxNCwgMTE3LCA4NCwgMSwgMjEwLCA4MiwgODQsIDEsIDExNCwgMTkxLCAKLSAgICA4NCwgMSwgMjQzLCAyOSwgODQsIDEsIDIzNSwgOTYsIDg0LCAxLCAyNDIsIDE4MCwgMjE4LCAxMjksIDg0LCAxLCAyNDgsIAotICAgIDEyNSwgODQsIDEsIDI1MiwgMTExLCAxNDYsIDUsIDI1MCwgMjU1LCAxNDYsIDUsIDI1NCwgNzUsIDE0NiwgNSwgMjEzLCAKLSAgICAxNDcsIDE0NiwgMSwgNjEsIDE0NiwgMSwgMjU1LCA3MywgMTQ2LCAxLCA3MywgMTQ2LCAxLCAyMzYsIDMzLCAxNDYsIDEsIAotICAgIDcwLCAxNDYsIDEsIDIxNCwgMTE4LCAxNDYsIDEsIDE0OSwgMTUzLCAxNDYsIDEsIDE0OSwgMTU2LCAxNDYsIDEsIDc1LCAKLSAgICAxNDYsIDEsIDI1NCwgMjAxLCAxNDYsIDEsIDc2LCAxNDYsIDEsIDI1MywgMTkyLCAxNDYsIDEsIDE3NiwgMTQ2LCAxLCAyMzQsIAotICAgIDEzMiwgMTQ2LCAxLCAyNDMsIDEzNSwgMTQ2LCAxLCAyNDIsIDI0OSwgMTQ2LCAxLCAyMjksIDc3LCAxNDYsIDEsIDI1MSwgCi0gICAgMzMsIDE0NiwgMSwgMjUwLCAxNTcsIDE0NiwgMSwgMjM1LCAxNDEsIDE0NiwgMSwgMjM1LCAxMTQsIDE0NiwgMSwgMjI3LCAKLSAgICAxNjUsIDE0NiwgMSwgMjE1LCAxNTYsIDE0NiwgMSwgMjE1LCAxNDQsIDE0NiwgMSwgMjQ4LCAxMzUsIDE0NiwgMSwgMjQ4LCAKLSAgICAxMTksIDE0NiwgMSwgMjI4LCAxMTAsIDE0NiwgMSwgMjE3LCAxMDUsIDE0NiwgMSwgMjE2LCAyMDgsIDE0NiwgMSwgMjQ4LCAKLSAgICAyMjEsIDE0NiwgMSwgMjQ4LCAyNSwgMTQ2LCAxLCAxOTcsIDE0NiwgMSwgMTkwLCAxNDYsIDEsIDIyNSwgMTQ3LCAxNDYsIDEsIAotICAgIDI1MiwgMTkxLCAxNDYsIDEsIDI1MiwgMTgsIDE0NiwgMSwgMTg0LCAxNDYsIDEsIDE5MSwgMTQ2LCAxLCAyMDUsIDE0NiwgMSwgCi0gICAgMjMzLCAxMzUsIDE0NiwgMSwgMjIwLCAxMDIsIDE0NiwgMSwgMjE4LCAyMjMsIDE0NiwgMSwgMjA2LCAxNDYsIDEsIDE2MiwgCi0gICAgMTQ2LCA1LCAyMjcsIDIwNSwgMTQ2LCA1LCAyNTMsIDE3NSwgMTQ2LCAyNSwgNSwgMjU1LCA3MywgMTQ2LCAyNSwgNSwgNzMsIAotICAgIDE0NiwgMjUsIDUsIDIzNiwgMzMsIDE0NiwgMjUsIDUsIDcwLCAxNDYsIDI1LCA1LCAyMTQsIDExOCwgMTQ2LCAyNSwgNSwgCi0gICAgMTQ5LCAxNTMsIDE0NiwgMjUsIDUsIDE0OSwgMjIyLCAxODAsIDE0NiwgMjUsIDUsIDc1LCAxNDYsIDI1LCA1LCAyNTQsIAotICAgIDIwMSwgMTQ2LCAyNSwgNSwgNzYsIDE0NiwgMjUsIDUsIDI1MywgMTkyLCAxNDYsIDUsIDIxMywgMTUyLCAxNDYsIDEsIDIzNCwgCi0gICAgMTI0LCAyMTcsIDEwNSwgMTQ2LCAyNTMsIDE5MywgMjMzLCAyMywgNzgsIDE0NiwgMSwgMjIyLCAxNzksIDE0NiwgMSwgMjIzLCAKLSAgICAzOSwgMTQ2LCAxLCAyMTAsIDE2OCwgMTQ2LCAxLCAxNDksIDIyMiwgMTgwLCAxNDYsIDEsIDE0OSwgMjMyLCAxODUsIDE0NiwgCi0gICAgMjUsIDUsIDE0OSwgMTU2LCAxNDYsIDI1LCA1LCAxNDksIDIzMiwgMTg1LCAxNDYsIDIxLCAyMTAsIDg2LCAxNDYsIDIxLCAKLSAgICAxMTAsIDE0NiwgMjEsIDEwNSwgMTQ2LCAyMSwgMTU4LCAxNDYsIDIxLCAxNjEsIDE0NiwgMjEsIDE4OSwgMTQ2LCAyMSwgCi0gICAgMTk0LCAxNDYsIDIxLCAxOTgsIDE0NiwgMjEsIDE5NSwgMTQ2LCAyMSwgMjAwLCAxNDYsIDEsIDIyMywgMTg4LCAyLCAyMzAsIAotICAgIDIyNCwgMjQ3LCAyNTQsIDE0NiwgMSwgMjIzLCAxODgsIDIsIDIzMiwgMTA4LCAyNDcsIDI1NCwgMTQ2LCAyMjIsIDExOCwgCi0gICAgNzgsIDE0NiwgMjIyLCAxMTgsIDUwLCAxNDYsIDI0OSwgOTgsIDIyNywgMTk3LCAxMTAsIDE0NiwgMjQ5LCA5OCwgMjI3LCAKLSAgICAxOTcsIDEwNSwgMTQ2LCAyNDksIDk4LCAyMjcsIDE5NywgMTU4LCAxNDYsIDI0OSwgOTgsIDIyNywgMTk3LCAxNjEsIDE0NiwgCi0gICAgMjQ5LCA5OCwgMjI3LCAxOTcsIDEyMywgMjMzLCAxNiwgMjE2LCAyMDEsIDIxNiwgMTk2LCAyNDgsIDQ4LCAxNDYsIDI0OSwgCi0gICAgOTgsIDI0OCwgNDksIDIxOSwgMTE5LCAxNDYsIDIzNSwgMTYxLCAxNDYsIDI0MywgMTAzLCA3OCwgMTgzLCA1LCAyNTQsIAotICAgIDI1NCwgMjUxLCAyNDMsIDE4MywgNSwgMjUxLCAyNDMsIDE4MywgNSwgMjEzLCAxNDcsIDE4MywgMSwgNjEsIDE4MywgMSwgCi0gICAgMjU1LCA3MywgMTgzLCAxLCA3MywgMTgzLCAxLCAyMzYsIDMzLCAxODMsIDEsIDcwLCAxODMsIDEsIDIxNCwgMTE4LCAxODMsIAotICAgIDEsIDI0NSwgMjA5LCAxODMsIDEsIDI1NCwgMjAxLCAxODMsIDEsIDIyNiwgMTgzLCAxODMsIDEsIDI1MywgMTkyLCAxODMsIAotICAgIDEsIDE3NiwgMTgzLCAxLCAyMzQsIDEzMiwgMTgzLCAxLCAyNDMsIDEzNSwgMTgzLCAxLCAyNDIsIDI0OSwgMTgzLCAxLCAKLSAgICAyMjksIDc3LCAxODMsIDEsIDI1MSwgMzMsIDE4MywgMSwgMjUwLCAxNTcsIDE4MywgMSwgMjM1LCAxNDEsIDE4MywgMSwgCi0gICAgMjM1LCAxMTQsIDE4MywgMSwgMjI3LCAxNjUsIDE4MywgMSwgMjE1LCAxNTYsIDE4MywgMSwgMjE1LCAxNDQsIDE4MywgMSwgCi0gICAgMjQ4LCAxMzUsIDE4MywgMSwgMjQ4LCAxMTksIDE4MywgMSwgMjI4LCAxMTAsIDE4MywgMSwgMjE3LCAxMDUsIDE4MywgMSwgCi0gICAgMjE2LCAyMDgsIDE4MywgMSwgMjQ4LCAyMjEsIDE4MywgMSwgMjQ4LCAyNSwgMTgzLCAxLCAxOTcsIDE4MywgMSwgMTkwLCAKLSAgICAxODMsIDEsIDIyNSwgMTQ3LCAxODMsIDEsIDI1MiwgMTkxLCAxODMsIDEsIDI1MiwgMTgsIDE4MywgMSwgMTg0LCAxODMsIDEsIAotICAgIDE5MSwgMTgzLCAxLCAyMDUsIDE4MywgMSwgMjMzLCAxMzUsIDE4MywgMSwgMjMyLCAxODQsIDE4MywgMSwgMjE0LCAyNywgCi0gICAgMTgzLCAxLCAyMjAsIDEwMiwgMTgzLCAxLCAyMDYsIDE4MywgMSwgMTYyLCAxODMsIDUsIDIyNywgMjA1LCAxODMsIDI1LCA1LCAKLSAgICAyNTUsIDczLCAxODMsIDI1LCA1LCA3MywgMTgzLCAyNSwgNSwgMjM2LCAzMywgMTgzLCAyNSwgNSwgNzAsIDE4MywgMjUsIDUsIAotICAgIDIxNCwgMTE4LCAxODMsIDI1LCA1LCAyNDUsIDIwOSwgMTgzLCAyNSwgNSwgMjU0LCAyMDEsIDE4MywgMjUsIDUsIDIyNiwgCi0gICAgMTgzLCAxODMsIDI1LCA1LCAyNTMsIDE5MiwgMTgzLCA1LCAyMTMsIDE1MiwgMTgzLCA1LCAyMTQsIDIxOCwgMTgzLCAxLCAKLSAgICAyMzQsIDExNSwgMTgzLCAxLCAyNDIsIDIyNiwgMTgzLCAxLCAyMTAsIDExNiwgMTgzLCAxLCAyMjIsIDE3OSwgMTgzLCAxLCAKLSAgICAyNDQsIDE5NiwgMTgzLCAyMSwgMjEwLCA4NiwgMTgzLCAyMSwgMTEwLCAxODMsIDIxLCAxMDUsIDE4MywgMjEsIDE1OCwgCi0gICAgMTgzLCAyMSwgMTYxLCAxODMsIDIxLCAxODksIDE4MywgMjEsIDE5NCwgMTgzLCAyMSwgMTk4LCAxODMsIDIxLCAxOTUsIAotICAgIDE4MywgMjEsIDIwMCwgMTgzLCAyMTYsIDc0LCAxODMsIDI1NCwgMjUzLCAxODMsIDIzNSwgMTc4LCAxODMsIDIxNCwgMTQ2LCAKLSAgICAxODMsIDI0NSwgMTgxLCAyMjYsIDE4OCwgMTgzLCA1LCAyMTEsIDc4LCAxNzEsIDUsIDI1MCwgMjU1LCAxNzEsIDUsIDI1NCwgCi0gICAgNzUsIDE3MSwgNSwgMjEzLCAxNDcsIDE3MSwgMSwgNjEsIDE3MSwgMSwgMjU1LCA3MywgMTcxLCAxLCA3MywgMTcxLCAxLCAKLSAgICAyMzYsIDMzLCAxNzEsIDEsIDcwLCAxNzEsIDEsIDIxNCwgMTE4LCAxNzEsIDEsIDE0OSwgMTUzLCAxNzEsIDEsIDE0OSwgCi0gICAgMTU2LCAxNzEsIDI1LCAyNTEsIDIsIDc1LCAxNzEsIDEsIDc1LCAxNzEsIDEsIDI1NCwgMjAxLCAxNzEsIDI1LCAyNTEsIDIsIAotICAgIDc2LCAxNzEsIDEsIDc2LCAxNzEsIDEsIDI1MywgMTkyLCAxNzEsIDEsIDE3NiwgMTcxLCAxLCAyMzQsIDEzMiwgMTcxLCAxLCAKLSAgICAyNDMsIDEzNSwgMTcxLCAxLCAyNDIsIDI0OSwgMTcxLCAxLCAyMjksIDc3LCAxNzEsIDEsIDI1MSwgMzMsIDE3MSwgMSwgCi0gICAgMjUwLCAxNTcsIDE3MSwgMSwgMjM1LCAxNDEsIDE3MSwgMSwgMjM1LCAxMTQsIDE3MSwgMSwgMjI3LCAxNjUsIDE3MSwgMSwgCi0gICAgMjE1LCAxNTYsIDE3MSwgMSwgMjE1LCAxNDQsIDE3MSwgMSwgMjQ4LCAxMzUsIDE3MSwgMSwgMjQ4LCAxMTksIDE3MSwgMSwgCi0gICAgMjI4LCAxMTAsIDE3MSwgMSwgMjE3LCAxMDUsIDE3MSwgMSwgMjE2LCAyMDgsIDE3MSwgMSwgMjQ4LCAyMjEsIDE3MSwgMSwgCi0gICAgMjQ4LCAyNSwgMTcxLCAxLCAxOTcsIDE3MSwgMSwgMTkwLCAxNzEsIDEsIDIyNSwgMTQ3LCAxNzEsIDEsIDI1MiwgMTkxLCAKLSAgICAxNzEsIDEsIDI1MiwgMTgsIDE3MSwgMSwgMTg0LCAxNzEsIDEsIDE5MSwgMTcxLCAxLCAyMDUsIDE3MSwgMSwgMjMzLCAxMzUsIAotICAgIDE3MSwgMSwgMjMyLCAxODQsIDE3MSwgMSwgMjE0LCAyNywgMTcxLCAxLCAyMjAsIDEwMiwgMTcxLCAxLCAyMTgsIDIyMywgCi0gICAgMTcxLCAxLCAyMDYsIDE3MSwgMSwgMTYyLCAxNzEsIDUsIDIyNywgMjA1LCAxNzEsIDUsIDI1MywgMTc1LCAxNzEsIDI1LCA1LCAKLSAgICAyNTUsIDczLCAxNzEsIDI1LCA1LCA3MywgMTcxLCAyNSwgNSwgMjM2LCAzMywgMTcxLCAyNSwgNSwgNzAsIDE3MSwgMjUsIDUsIAotICAgIDIxNCwgMTE4LCAxNzEsIDI1LCA1LCAxNDksIDE1MywgMTcxLCAyNSwgNSwgMTQ5LCAyMjIsIDE4MCwgMTcxLCAyNSwgNSwgCi0gICAgMjUxLCAyLCA3NSwgMTcxLCAyNSwgNSwgNzUsIDE3MSwgMjUsIDUsIDI1NCwgMjAxLCAxNzEsIDI1LCA1LCAyNTEsIDIsIDc2LCAKLSAgICAxNzEsIDI1LCA1LCA3NiwgMTcxLCAyNSwgNSwgMjUzLCAxOTIsIDE3MSwgNSwgMjEzLCAxNTIsIDE3MSwgMjI2LCAyMDQsIAotICAgIDE3MSwgMSwgMTQ5LCAyMjIsIDE4MCwgMTcxLCAxLCAxNDksIDIzMiwgMTg1LCAxNzEsIDI1LCA1LCAxNDksIDE1NiwgMTcxLCAKLSAgICAyNSwgNSwgMTQ5LCAyMzIsIDE4NSwgMTcxLCAyMSwgMjEwLCA4NiwgMTcxLCAyMSwgMTEwLCAxNzEsIDIxLCAxMDUsIDE3MSwgCisgICAgNiwgMSwgMjEwLCAxNTksIDQzLCA0MiwgMTI3LCAyMjMsIDUxLCAyMTksIDQ3LCA0NCwgNDIsIDEyNywgMjUwLCAzMiwgMjU1LCAKKyAgICAxNSwgMTIxLCAyMzIsIDIxNCwgMjQyLCAxMzgsIDI1NSwgMTUsIDcsIDQsIDEsIDYxLCA3LCA0LCAxLCAyNTMsIDE1OSwgNywgCisgICAgNCwgMSwgMjUxLCA2NywgNywgNCwgMSwgMjQ5LCA2MSwgNywgNCwgMSwgNzUsIDcsIDQsIDEsIDI0NSwgNywgNywgNCwgMSwgCisgICAgMjQzLCAyMDMsIDcsIDQsIDEsIDI0MiwgNjEsIDcsIDQsIDEsIDczLCA3LCA0LCAxLCAyMzUsIDE0NSwgNywgNCwgMSwgMjM1LCAKKyAgICAyNCwgNywgNCwgMSwgMTU2LCA3LCA0LCAxLCAxOTMsIDcsIDQsIDEsIDIzMCwgMjYsIDcsIDQsIDEsIDc2LCA3LCA0LCAxLCAKKyAgICAyMjYsIDEwNiwgNywgNCwgMSwgMjI0LCA5NywgNywgNCwgMSwgMTUzLCA3LCA0LCAxLCAyMjIsIDkyLCA3LCA0LCAxLCAyMTcsIAorICAgIDE1MywgNywgNCwgMSwgNzAsIDcsIDQsIDEsIDIxNCwgMTA1LCA3LCA0LCAxLCAyMTIsIDk4LCA3LCA0LCAxLCAyMTEsIDE3OCwgCisgICAgNywgNCwgMSwgMjExLCAxMTcsIDcsIDQsIDEsIDIxMCwgMTU5LCA0MywgMjQ5LCAxMDAsIDEyNywgNjcsIDIzMiwgMjE0LCAKKyAgICA0NCwgMjQ5LCAxMDAsIDEyNywgMTgzLCAyMjgsIDc0LCAyMTksIDE5LCAyMzUsIDE5NCwgMjQ1LCAzMiwgNzgsIDI1MCwgCisgICAgMTc3LCA1MCwgMjI0LCAyMjksIDUwLCAyNDksIDk5LCA1MCwgMjExLCA0MCwgNTAsIDI1MSwgMTM2LCAxMzAsIDIyMSwgMTc0LCAKKyAgICA1MCwgMjQ4LCAyLCAyNDksIDE2NCwgNTAsIDI0NCwgMTM3LCAyMjYsIDE1NSwgMjM1LCAyMzksIDIzMywgNDMsIDUyLCAyNTQsIAorICAgIDExMSwgMjIzLCAyNTUsIDc4LCAyMjgsIDUzLCA1MCwgMjE5LCA1MywgMjQwLCAxNjksIDIyMywgMTAzLCA1MCwgMjMxLCAKKyAgICAyMzMsIDI0OCwgNzIsIDUwLCAyMjUsIDIyLCA1MCwgMjE4LCAyNCwgMTA1LCAyMTgsIDI0LCAxNTgsIDI1NSwgNCwgMjU1LCAKKyAgICAxNSwgMjMwLCAyMjksIDUwLCAyMjUsIDY5LCA1MCwgMjMwLCAyMjUsIDI0NywgMTIxLCAyNTAsIDE4NCwgMjE4LCAyNCwgCisgICAgMTEwLCAyMzEsIDE0OSwgMjI2LCAxNTUsIDIzNSwgMjM5LCAyMjIsIDI0OCwgNTIsIDI1NCwgMTExLCAyMjMsIDI1NSwgNzgsIAorICAgIDIxMiwgMTE0LCAyNDQsIDMsIDEyMywgMjI0LCAyMiwgMjEyLCAxMTQsIDI0NCwgMywgMTIzLCAyNDIsIDI4LCAyMTIsIDExNCwgCisgICAgMjQ0LCAzLCAxMzQsIDIyNCwgMjAsIDIzNSwgMTk0LCAyMjQsIDE0LCA3OCwgNywgNiwgMSwgMTE1LCAyLCAyNDIsIDEzNywgCisgICAgNywgNiwgMSwgMTE1LCAyLCAxNDIsIDcsIDYsIDEsIDExNSwgMiwgMjUwLCAzMSwgNywgNiwgMSwgMTE1LCAyLCAxODMsIDcsIAorICAgIDYsIDEsIDExNSwgMiwgMjQ4LCAyLCA3LCA2LCAxLCAxMTUsIDIsIDIyMiwgMjM1LCA0OCwgNywgNiwgMSwgMjU0LCAyNDQsIAorICAgIDcsIDYsIDEsIDI1MSwgNjgsIDIsIDI1MCwgMTg0LCA3LCA2LCAxLCAxNjAsIDIsIDI0MiwgMTM3LCA3LCA2LCAxLCAxNjAsIAorICAgIDIsIDE0MiwgNywgNiwgMSwgMTYwLCAyLCAyNTAsIDMxLCA3LCA2LCAxLCAxNjAsIDIsIDI0OCwgMiwgNywgNiwgMSwgMjQwLCAKKyAgICAxNTUsIDIsIDI0MiwgMTM3LCA3LCA2LCAxLCAyNDAsIDE1NSwgMiwgMTQyLCA3LCA2LCAxLCAyNDAsIDE1NSwgMiwgMjUwLCAKKyAgICAzMSwgNywgNiwgMSwgMjQwLCAxNTUsIDIsIDI0OCwgMiwgNywgNiwgMSwgMjQ1LCA2MCwgNywgNiwgMSwgMjMwLCAyNywgMiwgCisgICAgMTgzLCA3LCA2LCAxLCAxNDQsIDIsIDI0MiwgMTM3LCA3LCA2LCAxLCAxNDQsIDIsIDE0MiwgNywgNiwgMSwgMTQ0LCAyLCAKKyAgICAyNTAsIDMxLCA3LCA2LCAxLCAxNDQsIDIsIDE4MywgNywgNiwgMSwgMTQ0LCAyLCAyNDgsIDIsIDIzMCwgODUsIDUwLCA3LCAKKyAgICA2LCAxLCAxNDQsIDIsIDkxLCA3LCA2LCAxLCAxMDQsIDIsIDI0MiwgMTM3LCA3LCA2LCAxLCAxMDQsIDIsIDE0MiwgNywgNiwgCisgICAgMSwgMTA0LCAyLCAyNTAsIDMxLCA3LCA2LCAxLCAxMDQsIDIsIDI0OCwgMiwgNywgNiwgMSwgMjExLCAxMTgsIDIsIDE0MiwgCisgICAgNywgNiwgMSwgMjE2LCAxNTIsIDcsIDQsIDEsIDIyMCwgNzcsIDIyMiwgOTIsIDcsIDQsIDEsIDExNSwgMiwgMjQyLCAxMzcsIAorICAgIDcsIDQsIDEsIDExNSwgMiwgMTQyLCA3LCA0LCAxLCAxMTUsIDIsIDI1MCwgMzEsIDcsIDQsIDEsIDExNSwgMiwgMTgzLCA3LCAKKyAgICA0LCAxLCAxMTUsIDIsIDI0OCwgMiwgNywgNCwgMSwgMTE1LCAyLCAyMjIsIDIzNSwgNDgsIDcsIDQsIDEsIDI1NCwgMjQ0LCAKKyAgICA3LCA0LCAxLCAyNTEsIDY4LCAyLCAyNTAsIDE4NCwgNywgNCwgMSwgMTYwLCAyLCAyNDIsIDEzNywgNywgNCwgMSwgMTYwLCAKKyAgICAyLCAxNDIsIDcsIDQsIDEsIDE2MCwgMiwgMjUwLCAzMSwgNywgNCwgMSwgMTYwLCAyLCAyNDgsIDIsIDcsIDQsIDEsIDI0MCwgCisgICAgMTU1LCAyLCAyNDIsIDEzNywgNywgNCwgMSwgMjQwLCAxNTUsIDIsIDE0MiwgNywgNCwgMSwgMjQwLCAxNTUsIDIsIDI1MCwgCisgICAgMzEsIDcsIDQsIDEsIDI0MCwgMTU1LCAyLCAyNDgsIDIsIDcsIDQsIDEsIDI0NSwgNjAsIDcsIDQsIDEsIDIzMCwgMjcsIDIsIAorICAgIDE4MywgNywgNCwgMSwgMTQ0LCAyLCAyNDIsIDEzNywgNywgNCwgMSwgMTQ0LCAyLCAxNDIsIDcsIDQsIDEsIDE0NCwgMiwgCisgICAgMjUwLCAzMSwgNywgNCwgMSwgMTQ0LCAyLCAxODMsIDcsIDQsIDEsIDE0NCwgMiwgMjQ4LCAyLCAyNDcsIDE3MCwgNTAsIDcsIAorICAgIDQsIDEsIDE0NCwgMiwgOTEsIDcsIDQsIDEsIDEwNCwgMiwgMjQyLCAxMzcsIDcsIDQsIDEsIDEwNCwgMiwgMTQyLCA3LCA0LCAKKyAgICAxLCAxMDQsIDIsIDI1MCwgMzEsIDcsIDQsIDEsIDEwNCwgMiwgMjQ4LCAyLCA3LCA0LCAxLCAyMTEsIDExOCwgMiwgMTQyLCAKKyAgICA3LCA0LCAxLCAyMTYsIDE1MiwgNywgNCwgMSwgMjExLCAxMTgsIDIsIDI0OCwgMiwgNywgNiwgMSwgMTE1LCAyLCAyMzEsIAorICAgIDIzMywgNywgNCwgMSwgMTE1LCAyLCAyMzEsIDIzMywgNywgNiwgMSwgMTE1LCAyLCAyNTEsIDE0NywgNywgNCwgMSwgMTE1LCAKKyAgICAyLCAyNTEsIDE0NywgNywgNiwgMSwgMTE1LCAyLCAyMjYsIDIyNSwgNywgNCwgMSwgMTE1LCAyLCAyMjYsIDIyNSwgNywgNiwgCisgICAgMSwgMjUxLCA2OCwgMiwgMTQyLCA3LCA0LCAxLCAyNTEsIDY4LCAyLCAxNDIsIDcsIDYsIDEsIDI1MSwgNjgsIDIsIDI1MCwgCisgICAgMzEsIDcsIDQsIDEsIDI1MSwgNjgsIDIsIDI1MCwgMzEsIDcsIDYsIDEsIDI1MSwgNjgsIDIsIDU5LCA0OCwgNywgNCwgMSwgCisgICAgMjUxLCA2OCwgMiwgNTksIDQ4LCA3LCA2LCAxLCAyNTEsIDY4LCAyLCAyNTAsIDIzNSwgNywgNCwgMSwgMjUxLCA2OCwgMiwgCisgICAgMjUwLCAyMzUsIDcsIDYsIDEsIDI0OSwgNjIsIDIsIDI1MCwgMjM1LCA3LCA0LCAxLCAyNDksIDYyLCAyLCAyNTAsIDIzNSwgCisgICAgNywgNiwgMSwgMjQ5LCA2MiwgMiwgOTEsIDcsIDQsIDEsIDI0OSwgNjIsIDIsIDkxLCA3LCA2LCAxLCAxNjAsIDIsIDIzMSwgCisgICAgMjMzLCA3LCA0LCAxLCAxNjAsIDIsIDIzMSwgMjMzLCA3LCA2LCAxLCAxNjAsIDIsIDI1MSwgMTQ3LCA3LCA0LCAxLCAxNjAsIAorICAgIDIsIDI1MSwgMTQ3LCA3LCA2LCAxLCAxNjAsIDIsIDU5LCA0OCwgNywgNCwgMSwgMTYwLCAyLCA1OSwgNDgsIDcsIDYsIDEsIAorICAgIDE2MCwgMiwgMjI2LCAyMjUsIDcsIDQsIDEsIDE2MCwgMiwgMjI2LCAyMjUsIDcsIDYsIDEsIDE2MCwgMiwgMjUwLCAyMzUsIAorICAgIDcsIDQsIDEsIDE2MCwgMiwgMjUwLCAyMzUsIDcsIDYsIDEsIDI0MywgMjA0LCAyLCAyNTAsIDMxLCA3LCA0LCAxLCAyNDMsIAorICAgIDIwNCwgMiwgMjUwLCAzMSwgNywgNiwgMSwgMjQzLCAyMDQsIDIsIDI1MSwgMTQ3LCA3LCA0LCAxLCAyNDMsIDIwNCwgMiwgCisgICAgMjUxLCAxNDcsIDcsIDYsIDEsIDI0MywgMjA0LCAyLCA1OSwgNDgsIDcsIDQsIDEsIDI0MywgMjA0LCAyLCA1OSwgNDgsIDcsIAorICAgIDYsIDEsIDI0MywgMjA0LCAyLCAyNTAsIDE4NCwgNywgNCwgMSwgMjQzLCAyMDQsIDIsIDI1MCwgMTg0LCA3LCA2LCAxLCAKKyAgICAyNDIsIDYyLCAyLCAyNTAsIDMxLCA3LCA0LCAxLCAyNDIsIDYyLCAyLCAyNTAsIDMxLCA3LCA2LCAxLCAyNDIsIDYyLCAyLCAKKyAgICA5MSwgNywgNCwgMSwgMjQyLCA2MiwgMiwgOTEsIDcsIDYsIDEsIDI0MCwgMTU1LCAyLCAxODMsIDcsIDQsIDEsIDI0MCwgCisgICAgMTU1LCAyLCAxODMsIDcsIDYsIDEsIDI0MCwgMTU1LCAyLCAyMzEsIDIzMywgNywgNCwgMSwgMjQwLCAxNTUsIDIsIDIzMSwgCisgICAgMjMzLCA3LCA2LCAxLCAyNDAsIDE1NSwgMiwgMjUxLCAxNDcsIDcsIDQsIDEsIDI0MCwgMTU1LCAyLCAyNTEsIDE0NywgNywgCisgICAgNiwgMSwgMjQwLCAxNTUsIDIsIDIyNiwgMjI1LCA3LCA0LCAxLCAyNDAsIDE1NSwgMiwgMjI2LCAyMjUsIDcsIDYsIDEsIAorICAgIDI0MCwgMTU1LCAyLCA1OSwgNDgsIDcsIDQsIDEsIDI0NywgMTIwLCA3MywgNywgNiwgMjcsIDIzNiwgMzIsIDcsIDQsIDI3LCAKKyAgICAyMzYsIDMyLCA3LCA2LCAxLCAyMzUsIDE0NiwgMiwgMjUwLCAzMSwgNywgNCwgMSwgMjM1LCAxNDYsIDIsIDI1MCwgMzEsIDcsIAorICAgIDYsIDEsIDIzNSwgMjUsIDIsIDI1MCwgMTg0LCA3LCA0LCAxLCAyMzUsIDI1LCAyLCAyNTAsIDE4NCwgNywgNCwgMSwgMjMzLCAKKyAgICAyNDAsIDcsIDYsIDEsIDIzMywgMTUwLCAyLCAxNDIsIDcsIDQsIDEsIDIzMywgMTUwLCAyLCAxNDIsIDcsIDYsIDEsIDIzMywgCisgICAgMTUwLCAyLCAyNTAsIDE4NCwgNywgNCwgMSwgMjMzLCAxNTAsIDIsIDI1MCwgMTg0LCA3LCA2LCAxLCAyMzMsIDE1MCwgMiwgCisgICAgMjUwLCAyMzUsIDcsIDQsIDEsIDIzMywgMTUwLCAyLCAyNTAsIDIzNSwgNywgNiwgMSwgMjMzLCAxNTAsIDIsIDIzMCwgMjI1LCAKKyAgICAyNDcsIDEyMSwgNywgNCwgMSwgMjMzLCAxNTAsIDIsIDIzMCwgMjI1LCAyNDcsIDEyMSwgNywgNiwgMSwgMjMzLCAxNTAsIDIsIAorICAgIDkxLCA3LCA0LCAxLCAyMzMsIDE1MCwgMiwgOTEsIDcsIDYsIDEsIDIzMCwgMjcsIDIsIDE0MiwgNywgNCwgMSwgMjMwLCAyNywgCisgICAgMiwgMTQyLCA3LCA2LCAxLCAyMzAsIDI3LCAyLCAyNTAsIDE4NCwgNywgNCwgMSwgMjMwLCAyNywgMiwgMjUwLCAxODQsIDcsIAorICAgIDYsIDEsIDIzMCwgMjcsIDIsIDI1MCwgMjM1LCA3LCA0LCAxLCAyMzAsIDI3LCAyLCAyNTAsIDIzNSwgNywgNCwgMSwgMjMwLCAKKyAgICAyNywgMjI0LCAyMDUsIDI1MSwgNzksIDI1NCwgNTgsIDcsIDYsIDEsIDI0NSwgMTM5LCA3LCA0LCAxLCAyNDUsIDEzOSwgNywgCisgICAgNiwgMSwgMTQ0LCAyLCAyMzEsIDIzMywgNywgNCwgMSwgMTQ0LCAyLCAyMzEsIDIzMywgNywgNiwgMSwgMTQ0LCAyLCAyNTEsIAorICAgIDE0NywgNywgNCwgMSwgMTQ0LCAyLCAyNTEsIDE0NywgNywgNiwgMSwgMTQ0LCAyLCA1MiwgMTQyLCA3LCA0LCAxLCAxNDQsIAorICAgIDIsIDUyLCAxNDIsIDcsIDYsIDI3LCAyMjYsIDIzNSwgNywgNCwgMjcsIDIyNiwgMjM1LCA3LCA2LCAxLCAyMjMsIDIyNSwgMiwgCisgICAgMTQyLCA3LCA0LCAxLCAyMjMsIDIyNSwgMiwgMTQyLCA3LCA2LCAxLCAyMjMsIDIyNSwgMiwgMjUwLCAxODQsIDcsIDQsIDEsIAorICAgIDIyMywgMjI1LCAyLCAyNTAsIDE4NCwgNywgNiwgMSwgMjIzLCAyMjUsIDIsIDI1MCwgMjM1LCA3LCA0LCAxLCAyMjMsIDIyNSwgCisgICAgMiwgMjUwLCAyMzUsIDcsIDYsIDEsIDIyMiwgOTMsIDIsIDE0MiwgNywgNCwgMSwgMjIyLCA5MywgMiwgMTQyLCA3LCA2LCAxLCAKKyAgICAyMjIsIDkzLCAyLCAyNTAsIDMxLCA3LCA0LCAxLCAyMjIsIDkzLCAyLCAyNTAsIDMxLCA3LCA2LCAxLCAyMjIsIDkzLCAyLCAKKyAgICAyNTAsIDE4NCwgNywgNCwgMSwgMjIyLCA5MywgMiwgMjUwLCAxODQsIDcsIDYsIDEsIDIyMiwgOTMsIDIsIDI1MCwgMjM1LCAKKyAgICA3LCA0LCAxLCAyMjIsIDkzLCAyLCAyNTAsIDIzNSwgNywgNiwgMSwgMjE3LCAxNTQsIDIsIDI1MCwgMTg0LCA3LCA0LCAxLCAKKyAgICAyMTcsIDE1NCwgMiwgMjUwLCAxODQsIDcsIDYsIDEsIDIxNywgMTU0LCAyLCAyNTAsIDIzNSwgNywgNCwgMSwgMjE3LCAxNTQsIAorICAgIDIsIDI1MCwgMjM1LCA3LCA2LCAxLCAyMTcsIDE1NCwgMiwgOTEsIDcsIDQsIDEsIDIxNywgMTU0LCAyLCA5MSwgNywgNiwgMSwgCisgICAgMTA0LCAyLCAxODMsIDcsIDQsIDEsIDEwNCwgMiwgMTgzLCA3LCA2LCAxLCAxMDQsIDIsIDIzMSwgMjMzLCA3LCA0LCAxLCAKKyAgICAxMDQsIDIsIDIzMSwgMjMzLCA3LCA2LCAxLCAxMDQsIDIsIDI1MSwgMTQ3LCA3LCA0LCAxLCAxMDQsIDIsIDI1MSwgMTQ3LCAKKyAgICA3LCA2LCAxLCAxMDQsIDIsIDIyMiwgMjM1LCA0OCwgNywgNCwgMSwgMTA0LCAyLCAyMjIsIDIzNSwgNDgsIDcsIDYsIDEsIAorICAgIDEwNCwgMiwgNTIsIDE0MiwgNywgNCwgMSwgMTA0LCAyLCA1MiwgMTQyLCA3LCA2LCAxLCAxMDQsIDIsIDIyNiwgMjI1LCA3LCAKKyAgICA0LCAxLCAxMDQsIDIsIDIyNiwgMjI1LCA3LCA2LCAxLCAyMTIsIDk5LCAyLCAyNTAsIDMxLCA3LCA0LCAxLCAyMTIsIDk5LCAKKyAgICAyLCAyNTAsIDMxLCA3LCA2LCAxLCAyMTEsIDExOCwgMiwgMjUwLCAzMSwgNywgNCwgMSwgMjExLCAxMTgsIDIsIDI1MCwgMzEsIAorICAgIDcsIDYsIDEsIDIxMSwgMTE4LCAyLCAyNDgsIDIsIDcsIDYsIDEsIDIxMCwgMTYwLCAyLCAxNDIsIDcsIDQsIDEsIDIxMCwgCisgICAgMTYwLCAyLCAxNDIsIDcsIDYsIDEsIDIxMCwgMTYwLCAyLCA1OSwgNDgsIDcsIDQsIDEsIDIxMCwgMTYwLCAyLCA1OSwgNDgsIAorICAgIDcsIDYsIDEsIDIxMCwgMTYwLCAyLCAyNTAsIDIzNSwgNywgNCwgMSwgMjEwLCAxNjAsIDIsIDI1MCwgMjM1LCA3LCA0LCAxLCAKKyAgICAxOTksIDIyMiwgOTIsIDcsIDQsIDEsIDU3LCAyLCA5MSwgNywgNiwgMSwgNTcsIDIsIDEwMywgNywgNiwgMSwgNTcsIDIsIAorICAgIDIxNiwgMTIsIDcsIDQsIDEsIDU3LCAyLCAyMTYsIDEyLCA3LCA2LCAxLCAxMzgsIDE5NCwgNywgNCwgMSwgMTM4LCAxOTQsIAorICAgIDcsIDYsIDEsIDIwNCwgNzYsIDcsIDYsIDEsIDI1MSwgNjgsIDIsIDEwMywgNywgNCwgMSwgMjUxLCA2OCwgMiwgMTAzLCA3LCAKKyAgICA2LCAxLCAyNTQsIDIyMCwgMjQ5LCA2MSwgNywgNiwgMSwgMjQ5LCA2MiwgMiwgMTAzLCA3LCA2LCAxLCAyNDksIDYyLCAyLCAKKyAgICAyMTYsIDEyLCA3LCA0LCAxLCAyNDksIDYyLCAyLCAyMTYsIDEyLCA3LCA0LCAxLCAyMTUsIDk0LCAyNDgsIDU1LCA3LCA2LCAKKyAgICAxLCAyMjMsIDUwLCA3NSwgNywgNiwgMSwgMjIxLCAxOTYsIDcsIDYsIDEsIDIwNCwgNzUsIDcsIDYsIDEsIDI0NSwgOCwgMiwgCisgICAgMTAzLCA3LCA0LCAxLCAyNDUsIDgsIDIsIDEwMywgNywgNiwgMSwgMjQzLCAyMDQsIDIsIDEwMywgNywgNiwgMSwgMjQzLCAKKyAgICAxMDgsIDcsIDQsIDEsIDI0MCwgMjAyLCA3LCA2LCAxLCAyMzUsIDE4NiwgNywgNiwgMSwgMjQwLCAxNTUsIDIsIDkxLCA3LCAKKyAgICA2LCAxLCAyMzUsIDI1LCAyLCAxMDMsIDcsIDQsIDEsIDIzNSwgMjUsIDIsIDEwMywgNywgNCwgMSwgMjMzLCAxNTAsIDIsIAorICAgIDEzMCwgNywgNCwgMSwgMjMzLCAxMDEsIDIsIDkxLCA3LCA2LCAxLCAyMTUsIDk0LCAxOTMsIDcsIDYsIDEsIDIzMCwgMjcsIAorICAgIDIsIDQzLCAxMDMsIDcsIDQsIDEsIDIzMCwgMjcsIDIsIDE5OSwgNDQsIDIzMywgMzcsIDcsIDYsIDEsIDE0NCwgMiwgMjMwLCAKKyAgICAyMjUsIDE4MywgNywgNiwgMSwgMTQ0LCAyLCAyNDAsIDI0OSwgNywgNCwgMSwgMTQ0LCAyLCAyNDAsIDI0OSwgNywgNiwgMSwgCisgICAgMjI2LCAyMjAsIDcsIDQsIDEsIDIyNiwgMjIwLCA3LCA2LCAxLCAyMjYsIDEwNywgMiwgMTAzLCA3LCA0LCAxLCAyMjYsIAorICAgIDEwNywgMiwgMTAzLCA3LCAxLCAyMTAsIDIxNCwgNywgNiwgMSwgMTM4LCAxMDUsIDcsIDQsIDEsIDEzOCwgMTA1LCA3LCA2LCAKKyAgICAxLCAyNDUsIDc2LCA3LCAxLCAyMjMsIDUwLCAyNDUsIDc3LCAyMzIsIDEyNCwgNywgNCwgMSwgMjE3LCAxNTQsIDIsIDIyNiwgCisgICAgNjcsIDEwMywgNywgNiwgMSwgMjE3LCAxNTQsIDIsIDEwMywgNywgNCwgMSwgMjE3LCAxNTQsIDIsIDEwMywgNywgNiwgMSwgCisgICAgMjE3LCAxNTQsIDIsIDIyMywgNTYsIDEwMywgNywgNiwgMSwgMTA0LCAyLCAyNDAsIDI0OSwgNywgNCwgMSwgMTA0LCAyLCAKKyAgICAyNDAsIDI0OSwgNywgNiwgMSwgMjE0LCAxNTcsIDcsIDYsIDEsIDIxNCwgMTA2LCAyLCAxMDMsIDcsIDYsIDEsIDIxMSwgCisgICAgMTE4LCAyLCAxMDMsIDcsIDQsIDEsIDIxMSwgMTE4LCAyLCAxMDMsIDcsIDYsIDEsIDIxMCwgMTYwLCAyLCA5MSwgNywgNCwgCisgICAgMSwgMjEwLCAxNjAsIDIsIDkxLCA3LCA2LCAxLCAyNDUsIDksIDcsIDYsIDEsIDI0NSwgMTAsIDIyMywgNDksIDcsIDQsIDEsIAorICAgIDI0NSwgMTAsIDIyMywgNDksIDcsIDQsIDEsIDI0NSwgMTAsIDIsIDIxNywgNzgsIDcsIDEsIDExMywgMiwgOTEsIDcsIDYsIAorICAgIDEsIDEzOCwgMTg5LCA3LCA0LCAxLCAxMzgsIDE4OSwgNywgMSwgMjM1LCAxOTQsIDI0MiwgMTgxLCAyMTgsIDEzMSwgMiwgCisgICAgOTEsIDcsIDEsIDIxMSwgMTgxLCA3LCAxLCAyNDgsIDQ4LCAyNTAsIDEyLCA3LCAxLCAyMzMsIDc4LCAyNTAsIDEyLCA3LCAxLCAKKyAgICAyNTQsIDEzOCwgMjUwLCAxMiwgNywgMSwgMjIzLCA1NiwgMjUwLCAxMiwgNywgNiwgMSwgMjQ2LCA0MSwgMiwgMjUwLCAyMzUsIAorICAgIDcsIDYsIDEsIDI0OSwgNjIsIDIsIDQsIDEsIDIxMCwgMTYwLCAyLCAyNTAsIDIzNSwgNywgNCwgMSwgMjQ2LCA0MSwgMiwgCisgICAgMjUwLCAyMzUsIDcsIDYsIDEsIDIzMiwgMTg5LCA3LCA2LCAxLCAyMzMsIDE1MCwgMiwgNCwgMSwgMjM1LCAxNDUsIDcsIDQsIAorICAgIDEsIDIzMiwgMTg5LCA3LCA2LCAxLCAyMjgsIDE4NywgNywgNiwgMSwgMjMwLCAyNywgMiwgNCwgMSwgMjM1LCAxNDUsIDcsIAorICAgIDQsIDEsIDIyOCwgMTg3LCA3LCA2LCAxLCAxMTUsIDIsIDI1MCwgMjM1LCA3LCA0LCAxLCAxMTUsIDIsIDI1MCwgMjM1LCA3LCAKKyAgICA2LCAxLCAyNDAsIDE1NSwgMiwgMjUwLCAyMzUsIDcsIDQsIDEsIDI0MCwgMTU1LCAyLCAyNTAsIDIzNSwgNywgNiwgMSwgCisgICAgMTQ0LCAyLCAyNTAsIDIzNSwgNywgNCwgMSwgMTQ0LCAyLCAyNTAsIDIzNSwgNywgNiwgMSwgMTA0LCAyLCAyNTAsIDIzNSwgCisgICAgNywgNCwgMSwgMTA0LCAyLCAyNTAsIDIzNSwgNywgNiwgMSwgMTA0LCAyLCAyNDgsIDMsIDIyLCAyMzEsIDIzMywgNywgNCwgCisgICAgMSwgMTA0LCAyLCAyNDgsIDMsIDIyLCAyMzEsIDIzMywgNywgNiwgMSwgMTA0LCAyLCAyNDgsIDMsIDIyLCAxNDIsIDcsIDQsIAorICAgIDEsIDEwNCwgMiwgMjQ4LCAzLCAyMiwgMTQyLCA3LCA2LCAxLCAxMDQsIDIsIDI0OCwgMywgMjIsIDI1MCwgMjM1LCA3LCA0LCAKKyAgICAxLCAxMDQsIDIsIDI0OCwgMywgMjIsIDI1MCwgMjM1LCA3LCA2LCAxLCAxMDQsIDIsIDI0OCwgMywgMjIsIDI0MiwgMTM3LCAKKyAgICA3LCA0LCAxLCAxMDQsIDIsIDI0OCwgMywgMjIsIDI0MiwgMTM3LCA3LCA0LCAxLCAyMTUsIDk0LCA3NSwgNywgNiwgMSwgCisgICAgMTE1LCAyLCAyNDgsIDMsIDIyLCAyMzEsIDIzMywgNywgNCwgMSwgMTE1LCAyLCAyNDgsIDMsIDIyLCAyMzEsIDIzMywgNywgCisgICAgNiwgMSwgMTE1LCAyLCA1OSwgNzcsIDIyLCAyMzEsIDIzMywgNywgNCwgMSwgMTE1LCAyLCA1OSwgNzcsIDIyLCAyMzEsIAorICAgIDIzMywgNywgNiwgMSwgMjU0LCAyNDUsIDIsIDIzMSwgMjMzLCA3LCA0LCAxLCAyNTQsIDI0NSwgMiwgMjMxLCAyMzMsIDcsIAorICAgIDYsIDEsIDI0MywgMjA0LCAyLCA5MSwgNywgNCwgMSwgMjQzLCAyMDQsIDIsIDkxLCA3LCA2LCAxLCAyNDMsIDIwNCwgMiwgCisgICAgMjUwLCAyMzUsIDcsIDQsIDEsIDI0MywgMjA0LCAyLCAyNTAsIDIzNSwgNywgNiwgMSwgMjM1LCAyNSwgMiwgMjUwLCAyMzUsIAorICAgIDcsIDQsIDEsIDIzNSwgMjUsIDIsIDI1MCwgMjM1LCA3LCA2LCAxLCAxNDQsIDIsIDIyNiwgMjI1LCA3LCA0LCAxLCAxNDQsIAorICAgIDIsIDIyNiwgMjI1LCA3LCA2LCAxLCAxNDQsIDIsIDIyNiwgMjI2LCAyMiwgMjMxLCAyMzMsIDcsIDQsIDEsIDE0NCwgMiwgCisgICAgMjI2LCAyMjYsIDIyLCAyMzEsIDIzMywgNywgNiwgMSwgMjQ1LCAxMCwgMiwgMjUwLCAyMzUsIDcsIDQsIDEsIDI0NSwgMTAsIAorICAgIDIsIDI1MCwgMjM1LCA3LCA0LCAxLCAyMzUsIDE0NiwgMiwgMjUwLCAyMzUsIDcsIDYsIDEsIDI0NiwgNDAsIDcsIDYsIDEsIAorICAgIDI0OSwgNjIsIDIsIDQsIDEsIDIxMCwgMTU5LCA3LCA0LCAxLCAyNDYsIDQwLCA3LCA2LCAxLCAyNDMsIDIwNCwgMiwgMTQyLCAKKyAgICA3LCA0LCAxLCAyNDMsIDIwNCwgMiwgMTQyLCA3LCA2LCAxLCAyNDAsIDIwMCwgNywgNiwgMSwgMjExLCAxODEsIDcsIDYsIDEsIAorICAgIDIzMCwgMjcsIDIsIDI0MiwgMTM3LCA3LCA0LCAxLCAyMzAsIDI3LCAyLCAyNDIsIDEzNywgNywgNiwgMSwgMTE1LCAyLCAKKyAgICAyMjIsIDIzNSwgNzcsIDIyLCAxNDIsIDcsIDQsIDEsIDExNSwgMiwgMjIyLCAyMzUsIDc3LCAyMiwgMTQyLCA3LCA2LCAxLCAKKyAgICAyNTQsIDI0NSwgMiwgMTQyLCA3LCA0LCAxLCAyNTQsIDI0NSwgMiwgMTQyLCA3LCA2LCAxLCAxNDQsIDIsIDIxOCwgMTA0LCAKKyAgICAyMiwgMTQyLCA3LCA0LCAxLCAxNDQsIDIsIDIxOCwgMTA0LCAyMiwgMTQyLCA3LCA2LCAxLCAxMTUsIDIsIDUyLCAyNDIsIAorICAgIDEzNywgNywgNCwgMSwgMTE1LCAyLCA1MiwgMjQyLCAxMzcsIDcsIDYsIDEsIDExNSwgMiwgMjM1LCAxOTQsIDI1MSwgMTQ3LCAKKyAgICA3LCA0LCAxLCAxMTUsIDIsIDIzNSwgMTk0LCAyNTEsIDE0NywgNywgNiwgMSwgMTYwLCAyLCA1MiwgMjQyLCAxMzcsIDcsIDQsIAorICAgIDEsIDE2MCwgMiwgNTIsIDI0MiwgMTM3LCA3LCA2LCAxLCAxNjAsIDIsIDIzNSwgMTk0LCAyNTEsIDE0NywgNywgNCwgMSwgCisgICAgMTYwLCAyLCAyMzUsIDE5NCwgMjUxLCAxNDcsIDcsIDYsIDEsIDI0MCwgMTU1LCAyLCA1MiwgMjQyLCAxMzcsIDcsIDQsIDEsIAorICAgIDI0MCwgMTU1LCAyLCA1MiwgMjQyLCAxMzcsIDcsIDYsIDEsIDI0MCwgMTU1LCAyLCAyMzUsIDE5NCwgMjUxLCAxNDcsIDcsIAorICAgIDQsIDEsIDI0MCwgMTU1LCAyLCAyMzUsIDE5NCwgMjUxLCAxNDcsIDcsIDYsIDEsIDE0NCwgMiwgNTIsIDI0MiwgMTM3LCA3LCAKKyAgICA0LCAxLCAxNDQsIDIsIDUyLCAyNDIsIDEzNywgNywgNiwgMSwgMTQ0LCAyLCAyMzUsIDE5NCwgMjUxLCAxNDcsIDcsIDQsIDEsIAorICAgIDE0NCwgMiwgMjM1LCAxOTQsIDI1MSwgMTQ3LCA3LCA2LCAxLCAyMjMsIDIyNSwgMiwgNTIsIDI0MiwgMTM3LCA3LCA0LCAxLCAKKyAgICAyMjMsIDIyNSwgMiwgNTIsIDI0MiwgMTM3LCA3LCA2LCAxLCAyMjMsIDIyNSwgMiwgMjM1LCAxOTQsIDI1MSwgMTQ3LCA3LCAKKyAgICA0LCAxLCAyMjMsIDIyNSwgMiwgMjM1LCAxOTQsIDI1MSwgMTQ3LCA3LCA2LCAxLCAxMDQsIDIsIDUyLCAyNDIsIDEzNywgNywgCisgICAgNCwgMSwgMTA0LCAyLCA1MiwgMjQyLCAxMzcsIDcsIDYsIDEsIDEwNCwgMiwgMjM1LCAxOTQsIDI1MSwgMTQ3LCA3LCA0LCAxLCAKKyAgICAxMDQsIDIsIDIzNSwgMTk0LCAyNTEsIDE0NywgNywgNiwgMSwgMjIyLCA5MywgMiwgMjQ5LCAyMjEsIDUxLCA3LCA0LCAxLCAKKyAgICAyMjIsIDkzLCAyLCAyNDksIDIyMSwgNTEsIDcsIDYsIDEsIDIxNywgMTU0LCAyLCAyNDksIDIyMSwgNTEsIDcsIDQsIDEsIAorICAgIDIxNywgMTU0LCAyLCAyNDksIDIyMSwgNTEsIDcsIDYsIDEsIDIxMCwgMjMxLCA3LCA0LCAxLCAyMTAsIDIzMSwgNywgNiwgMSwgCisgICAgMjQyLCA2MiwgMiwgMjUwLCAyMzUsIDcsIDQsIDEsIDI0MiwgNjIsIDIsIDI1MCwgMjM1LCA3LCA2LCAxLCAyMzAsIDI3LCAyLCAKKyAgICAxOTksIDQ0LCAyMzMsIDM3LCA3LCA0LCAxLCAyNDksIDYyLCAyLCAyNDksIDEwMSwgNywgNiwgMSwgMjI2LCAxMzUsIDcsIDQsIAorICAgIDEsIDIyNiwgMTM1LCA3LCA2LCAxLCAyMTAsIDE2MCwgMiwgMTAzLCA3LCA0LCAxLCAyMTAsIDE2MCwgMiwgMTAzLCA3LCA2LCAKKyAgICAxLCAxMTUsIDIsIDU5LCA0OCwgNywgNCwgMSwgMTE1LCAyLCA1OSwgNDgsIDcsIDYsIDEsIDE2MCwgMiwgMjUwLCAxODQsIDcsIAorICAgIDQsIDEsIDE2MCwgMiwgMjUwLCAxODQsIDcsIDYsIDEsIDE0NCwgMiwgMjQ4LCAzLCAyMiwgMjMxLCAyMzMsIDcsIDQsIDEsIAorICAgIDE0NCwgMiwgMjQ4LCAzLCAyMiwgMjMxLCAyMzMsIDcsIDYsIDEsIDE0NCwgMiwgMjE2LCA5MCwgMjIsIDIzMSwgMjMzLCA3LCAKKyAgICA0LCAxLCAxNDQsIDIsIDIxNiwgOTAsIDIyLCAyMzEsIDIzMywgNywgNiwgMSwgMTQ0LCAyLCA1OSwgNDgsIDcsIDQsIDEsIAorICAgIDE0NCwgMiwgNTksIDQ4LCA3LCA2LCAxLCAxNDQsIDIsIDU5LCA3NywgMjIsIDIzMSwgMjMzLCA3LCA0LCAxLCAxNDQsIDIsIAorICAgIDU5LCA3NywgMjIsIDIzMSwgMjMzLCA3LCA2LCAxLCAyMTEsIDExOCwgMiwgMjMxLCAyMzMsIDcsIDQsIDEsIDIxMSwgMTE4LCAKKyAgICAyLCAyMzEsIDIzMywgNywgNCwgMSwgMjMzLCAxNTAsIDIsIDI0OSwgMTAxLCA3LCA0LCAxLCAyMzAsIDI3LCAyLCAyNDksIAorICAgIDEwMSwgNywgNCwgMSwgMjE3LCAxNTQsIDIsIDI0OSwgMTAxLCA3LCA0LCAxLCAyNDcsIDEyMCwgMjM1LCAxNDUsIDcsIDQsIAorICAgIDEsIDI0OCwgMTQ0LCAyNDcsIDIyMSwgNywgNCwgMSwgMjI0LCAzMiwgMjQ3LCAyMjEsIDcsIDYsIDEsIDExNSwgMiwgOTEsIAorICAgIDcsIDYsIDEsIDI1MSwgNjgsIDIsIDkxLCA3LCA0LCAxLCAyNTEsIDY4LCAyLCA5MSwgNywgNiwgMSwgMjMzLCAxNTAsIDIsIAorICAgIDEzMCwgNywgNiwgMSwgMjE3LCAxNTQsIDIsIDI0OCwgMCwgOTEsIDcsIDQsIDEsIDIyMiwgOTMsIDIsIDIxNywgMjUxLCAKKyAgICAyMTcsIDc4LCA3LCA0LCAxLCAyMTAsIDE2MCwgMiwgMjE3LCAyNTEsIDIxNywgNzgsIDcsIDYsIDEsIDI0MiwgMTgxLCAyMTgsIAorICAgIDEzMCwgNywgNCwgMSwgMjQyLCAxODEsIDIxOCwgMTMwLCA3LCA2LCAxLCA1NywgMiwgOTEsIDcsIDYsIDEsIDEwNCwgMTMwLCAKKyAgICA3LCA2LCAxLCAyMTUsIDk0LCAyMTQsIDEwNSwgNywgNiwgMSwgMTYwLCAyLCA5MSwgNywgNCwgMSwgMTYwLCAyLCA5MSwgNywgCisgICAgNiwgMSwgMjM1LCAxNDYsIDIsIDkxLCA3LCA0LCAxLCAyMzUsIDE0NiwgMiwgOTEsIDcsIDYsIDEsIDQsIDIyNCwgOTgsIDIsIAorICAgIDI0MSwgNTMsIDIxNywgNzgsIDcsIDQsIDEsIDIyNCwgOTgsIDIsIDI0MSwgNTMsIDIxNywgNzgsIDcsIDYsIDEsIDIyMywgCisgICAgMjI1LCAyLCA5MSwgNywgNCwgMSwgMjIzLCAyMjUsIDIsIDkxLCA3LCA2LCAxLCAyMTEsIDExOCwgMiwgOTEsIDcsIDQsIDEsIAorICAgIDIxMSwgMTE4LCAyLCA5MSwgNywgNCwgMSwgMjE1LCA5NCwgNjEsIDcsIDQsIDEsIDI1NCwgMTQ0LCA3LCA0LCAxLCAyMTUsIAorICAgIDk0LCAyNTQsIDE0NCwgNywgNCwgMSwgNTcsIDIsIDEwMywgNywgNCwgMSwgMjA0LCA3NiwgNywgNCwgMSwgMjUxLCA2OCwgMiwgCisgICAgMjQ5LCAxMDEsIDcsIDQsIDEsIDI0OSwgNjIsIDIsIDIxNywgNzgsIDcsIDQsIDEsIDI0OSwgNjIsIDIsIDEwMywgNywgNCwgCisgICAgMSwgMjIzLCA1MCwgNzUsIDcsIDQsIDEsIDIyMSwgMTk2LCA3LCA0LCAxLCAyMjEsIDE5NywgMiwgMTAzLCA3LCA0LCAxLCAKKyAgICAyMDQsIDc1LCA3LCA0LCAxLCAyMjMsIDUwLCAyMDQsIDc1LCA3LCA0LCAxLCAyMjMsIDUwLCAyMDQsIDE2MCwgMiwgMTAzLCAKKyAgICA3LCA0LCAxLCAyNTAsIDEsIDIyMywgNTAsIDIwNCwgNzUsIDcsIDQsIDEsIDI0NywgMTIwLCAyMzUsIDE0NiwgMiwgOTEsIDcsIAorICAgIDQsIDEsIDI0MywgMjA0LCAyLCAxMDMsIDcsIDQsIDEsIDExOSwgMjQzLCAyMDMsIDcsIDEsIDQsIDYsIDI0MywgMjAzLCA3LCAKKyAgICA0LCAxLCAyNDMsIDEwOCwgNywgNCwgMSwgMjIzLCAxNTIsIDI0MCwgMjQ5LCA3LCA0LCAxLCAyMTUsIDk0LCAyNDIsIDYxLCAKKyAgICA3LCA0LCAxLCAyNDIsIDYyLCAyLCAxMDMsIDcsIDQsIDEsIDI0MSwgMjA5LCAyLCAxMDMsIDcsIDQsIDEsIDI0MCwgMTU1LCAKKyAgICAyLCA5MSwgNywgNCwgMSwgMjM1LCAxODYsIDcsIDEsIDQsIDYsIDczLCA3LCA0LCAxLCAyMzMsIDE1MCwgMiwgMjMwLCAyMjUsIAorICAgIDE4MywgNywgNCwgMSwgMjMzLCAxNTAsIDIsIDI1MiwgNDIsIDcsIDQsIDEsIDIzMywgMTUwLCAyLCAyMjMsIDU2LCAxMDMsIAorICAgIDcsIDQsIDEsIDIzMywgMiwgNywgNCwgMSwgMjE1LCA5NCwgMTkzLCA3LCA0LCAxLCAyMTUsIDk0LCAyMzIsIDUxLCAyLCAKKyAgICAxOTksIDIzMywgMzcsIDcsIDQsIDEsIDIzMiwgNTEsIDIsIDEwMywgNywgNCwgMSwgMjMwLCAyNywgMiwgNDMsIDEwMywgNywgCisgICAgNCwgMSwgMjMwLCAyNywgMiwgMjIzLCA1NiwgMTAzLCA3LCAxLCA0LCA2LCAyMzAsIDI2LCA3LCA0LCAxLCAyNTIsIDEzNSwgCisgICAgNzYsIDcsIDEsIDQsIDYsIDIyNiwgMjM1LCA3LCA0LCAxLCAyNTAsIDEsIDIyNiwgMjAyLCA3LCA0LCAxLCAyMjUsIDEzNCwgCisgICAgNywgNCwgMSwgMjE1LCA5NCwgMTUzLCA3LCA0LCAxLCAyMTUsIDk0LCAyMjMsIDIyNSwgMiwgMTk5LCAyMzMsIDM3LCA3LCA0LCAKKyAgICAxLCAyMTUsIDk0LCAyMjMsIDIyNSwgMiwgMTAzLCA3LCA0LCAxLCAyMjMsIDIyNSwgMiwgMTk5LCAyMzMsIDM3LCA3LCA0LCAKKyAgICAxLCAyMjMsIDIyNSwgMiwgMjE3LCA3OCwgNywgNCwgMSwgMjIzLCAyMjUsIDIsIDI0NCwgODgsIDcsIDQsIDEsIDIyMywgNTAsIAorICAgIDIyMywgMjI1LCAyLCAyNDQsIDg4LCA3LCAxLCA0LCA2LCAxNTMsIDcsIDEsIDQsIDYsIDIzNSwgMTk0LCAxNTMsIDcsIDQsIAorICAgIDEsIDIyMiwgOTMsIDIsIDEwMywgNywgNCwgMSwgMjQ1LCA3NiwgNywgNCwgMSwgMjQ3LCAxMjAsIDIzNSwgMTQ2LCAyLCAKKyAgICAyMTgsIDEwNCwgMjIsIDEwMywgNywgNCwgMSwgMjE4LCAyMzIsIDIyMywgNTAsIDI0NSwgNzYsIDcsIDQsIDEsIDI0NSwgNzcsIAorICAgIDIsIDI0OSwgMTAxLCA3LCA0LCAxLCAyMTUsIDk0LCAyMTcsIDE1MywgNywgNCwgMSwgMjE3LCAxNTQsIDIsIDIyMywgNTYsIAorICAgIDEwMywgNywgNCwgMSwgMTA0LCAxMzAsIDcsIDQsIDEsIDIxNCwgMTU3LCA3LCA0LCAxLCAyMTQsIDEwNiwgMiwgMTAzLCA3LCAKKyAgICA0LCAxLCAyMTUsIDk0LCAyMTQsIDEwNSwgNywgNCwgMSwgMjE1LCA5NCwgMjEyLCA5OCwgNywgNCwgMSwgMjE1LCA5NCwgCisgICAgMjExLCAxMTcsIDcsIDEsIDQsIDYsIDIxMSwgMTE3LCA3LCA0LCAxLCAyMTAsIDE2MCwgMiwgMjIzLCA1NiwgMTAzLCA3LCA0LCAKKyAgICAxLCAyMTAsIDE2MCwgMiwgMjQ5LCAxMDEsIDcsIDQsIDEsIDI0NSwgOSwgNywgNCwgMSwgMjQ1LCAxMCwgMiwgMjQ5LCAxMDEsIAorICAgIDcsIDEsIDI0MiwgMTgxLCAyMTgsIDEzMCwgNywgMSwgMjI1LCAxNDAsIDIxMywgMTM1LCAyNDMsIDI1MCwgNywgMSwgMjM1LCAKKyAgICAxOTQsIDI0MiwgMTgxLCAyMTgsIDEzMCwgNywgMSwgMjE4LCAxMTEsIDI1MSwgNjcsIDcsIDEsIDI1MSwgMjQ3LCAyNTAsIAorICAgIDEyLCA3LCAxLCA0LCA2LCAyNTMsIDE1OSwgNywgNCwgMSwgMjUwLCAxLCAyMDQsIDc1LCA3LCAxLCA0LCA2LCAyNDMsIDIwNCwgCisgICAgMiwgMTAzLCA3LCAxLCA0LCA2LCAyNDIsIDYxLCA3LCA0LCAxLCAyMzUsIDE0NiwgMiwgMjQ5LCAxMjgsIDcsIDQsIDEsIAorICAgIDIxNSwgOTQsIDIzNSwgMjQsIDcsIDEsIDQsIDYsIDE1NiwgNywgNCwgMSwgMjI0LCA5OCwgMiwgMTAzLCA3LCAxLCAyNDIsIAorICAgIDE4MSwgMjE4LCAxMzEsIDIsIDkxLCA3LCAxLCAyMjMsIDUwLCAyNDIsIDE4MSwgMjE4LCAxMzEsIDIsIDkxLCA3LCA0LCAxLCAKKyAgICAyNDYsIDQxLCAyNDcsIDIyMSwgNywgNCwgMSwgMjQ4LCAyNywgMjQ3LCAyMjEsIDcsIDQsIDEsIDI0NiwgNDEsIDI0NywgCisgICAgMjIyLCAyLCAyNDksIDEwMSwgNywgNCwgMSwgMjE1LCAxODYsIDI0NywgMjIxLCA3LCA0LCAxLCAyMTYsIDIzNiwgMjQ3LCAKKyAgICAyMjEsIDcsIDQsIDEsIDIxNywgMzAsIDI0NywgMjIyLCAyLCAyNDksIDEwMSwgNywgNCwgMSwgMjQ0LCAxMzUsIDI0NywgCisgICAgMjIxLCA3LCA0LCAxLCAyMzIsIDEwMSwgMjQ3LCAyMjEsIDcsIDQsIDEsIDIzMiwgNTIsIDI0NywgMjIxLCA3LCAxLCAyNTEsIAorICAgIDI0NywgMjI1LCAxODIsIDcsIDEsIDI1MSwgMjU1LCAyMjUsIDE4MiwgNywgNCwgMSwgMjE1LCA5NCwgMjQyLCA2MiwgMiwgCisgICAgMjQ0LCA4OCwgNywgNCwgMSwgMjE1LCA5NCwgMjQyLCA2MiwgMiwgMjQ0LCA4OSwgMjIsIDIxNywgNzgsIDU4LCAxLCA0LCAKKyAgICAyNDIsIDYxLCA1OCwgMSwgNCwgMjQyLCA2MiwgMiwgMTAzLCA1OCwgMSwgNCwgMjM1LCAxNDUsIDU4LCAxLCA0LCAxNTMsIAorICAgIDU4LCAxLCA0LCAyMTUsIDk0LCAxNTMsIDU4LCAxLCA0LCAyMTUsIDk0LCAyMjMsIDIyNSwgMiwgMTAzLCA1OCwgMSwgNCwgNiwgCisgICAgMjM1LCAxOTQsIDE1MywgNTgsIDEsIDQsIDIxMiwgOTgsIDU4LCAxLCA0LCAyMTEsIDExNywgNTgsIDEsIDIyNCwgMTkxLCAKKyAgICA1OCwgMSwgNTIsIDIyNCwgMTkxLCA1OCwgMSwgMjE1LCA5NCwgMjQ5LCAyMjAsIDU4LCAxLCAyNTQsIDU4LCA1OCwgMSwgCisgICAgMjIzLCA1MCwgMjQ5LCAyMjAsIDU4LCAxLCA0NCwgMTYzLCAyMjIsIDIzNCwgNTgsIDEsIDQzLCAxNjMsIDIyMiwgMjM0LCAKKyAgICA1OCwgMSwgMjQyLCAxODEsIDIxOCwgMTMwLCA1OCwgMSwgMjIzLCA1MCwgMjQyLCAxODEsIDIxOCwgMTMwLCA1OCwgMSwgNDMsIAorICAgIDI1MywgMjUwLCA1OCwgMSwgNDQsIDI1MywgMjUwLCA1OCwgMSwgMTIwLCAyNTMsIDI1MCwgNTgsIDEsIDEyNCwgMjUzLCAKKyAgICAyNTAsIDU4LCAxLCAyNTAsIDMyLCAyNTUsIDE1LCAyNTAsIDIzNSwgNTgsIDEsIDY3LCAyMzIsIDIxNCwgNTgsIDEsIDIzMSwgCisgICAgMjMzLCA1OCwgMSwgMjU1LCA0LCAyNTUsIDE1LCA1OCwgMSwgMjQyLCAxMzgsIDI1NSwgMTUsIDU4LCAxLCAxMjEsIDY3LCAKKyAgICAyMzIsIDIxNCwgNTgsIDEsIDEyMSwgMjMxLCAyMzMsIDU4LCAxLCAxMjEsIDI0MiwgMTM4LCAyNTUsIDE1LCA1OCwgMSwgCisgICAgMTIxLCAyNTUsIDQsIDI1NSwgMTUsIDU4LCAxLCAyMTUsIDIyMywgMjQ5LCAyMjcsIDU4LCAxLCAxNjMsIDIxNSwgMjIzLCAKKyAgICAyNDksIDIyNywgNTgsIDEsIDI1MCwgMTc0LCA0NCwgMTYzLCAyMjIsIDIzNCwgNTgsIDEsIDI1MCwgMTc0LCA0MywgMTYzLCAKKyAgICAyMjIsIDIzNCwgNTgsIDEsIDEyMCwgMjE3LCA4OCwgNTgsIDEsIDEyNCwgMjE3LCA4OCwgNTgsIDEsIDk2LCA1MCwgNTgsIDEsIAorICAgIDIzMCwgMTgzLCA1MCwgMjUxLCAxNDcsIDU5LCA0OCwgMjIyLCAyMzUsIDQ4LCAyMjYsIDIyNSwgNCwgMTgzLCA1MiwgMjU1LCAKKyAgICA0LCAyNTUsIDE1LCA1OCwgMSwgMjIzLCAzNywgMTAzLCA1OCwgMSwgMjQ5LCAxMzIsIDI1NSwgMTUsIDU4LCAxLCA0LCAyNDMsIAorICAgIDEwOCwgNTgsIDEsIDQsIDE1NiwgNTgsIDEsIDQsIDIyMiwgOTIsIDU4LCAxLCA0LCAyMTEsIDE3OCwgNTgsIDEsIDQsIDIyMywgCisgICAgNTAsIDI0MiwgMTgxLCAyMTgsIDEzMCwgNTgsIDEsIDI0NSwgMjEsIDEzOCwgMTMwLCA1OCwgMSwgMTI1LCAxMzgsIDEzMCwgCisgICAgNTgsIDEsIDIzMCwgMjI2LCAxMzgsIDEzMCwgNTgsIDEsIDEyMSwgMTM4LCAxMzAsIDU4LCAxLCAyNDUsIDIwLCAxMzgsIAorICAgIDEzMCwgNTgsIDEsIDIxMCwgMjU0LCAyNDgsIDQ1LCAxMzgsIDc4LCA1OCwgMSwgMjExLCA3MCwgMjQ4LCA0NSwgMTM4LCA3OCwgCisgICAgNTgsIDEsIDIxMywgMTMzLCA1OCwgMSwgMjE0LCAxODYsIDU4LCAxLCA1MiwgMjU0LCA1OCwgNTgsIDEsIDEyMSwgMTI0LCAKKyAgICAyNTMsIDI1MCwgNTgsIDEsIDEyMSwgMTIwLCAyNTMsIDI1MCwgNTgsIDEsIDEyMSwgNDMsIDI1MywgMjUwLCA1OCwgMSwgCisgICAgMTIxLCA0NCwgMjUzLCAyNTAsIDU4LCAxLCAxMjEsIDIyMiwgMjM0LCA1OCwgMSwgMjMwLCAyMjUsIDI0MiwgMTM4LCAyNTUsIAorICAgIDE1LCA1OCwgMSwgMjMwLCAyMjUsIDUyLCAyNDIsIDEzOCwgMjU1LCAxNSwgNTgsIDEsIDIzMCwgMjI1LCA1MiwgMjU1LCA0LCAKKyAgICAyNTUsIDE1LCA1OCwgMSwgMTIxLCAxODMsIDU4LCAxLCAyMjMsIDE1OCwgMjQ5LCAyMjcsIDU4LCAxLCAyNTIsIDU5LCAxMjUsIAorICAgIDIxNiwgMzEsIDU4LCAxLCAyNDUsIDE0NCwgMTI1LCAyMTYsIDMxLCA1OCwgMSwgMjUyLCA1OSwgMTIxLCAyMTYsIDMxLCA1OCwgCisgICAgMSwgMjQ1LCAxNDQsIDEyMSwgMjE2LCAzMSwgNTgsIDEsIDIyMCwgNTUsIDU4LCAxLCAyMDQsIDIyMCwgNTUsIDU4LCAxLCAKKyAgICAxMjEsIDQzLCA3NCwgMzgsIDI0MiwgMTM4LCAyNTUsIDE1LCAzOCwgMjU1LCA0LCAyNTUsIDE1LCAzOCwgMjUwLCAzMiwgCisgICAgMjU1LCAxNSwgMzgsIDE4MywgMzgsIDIzMSwgMjMzLCAzOCwgMjI2LCAxMjAsIDM4LCAyNTEsIDE0NywgMzgsIDU5LCA0OCwgCisgICAgMzgsIDI0OCwgMiwgMzgsIDI0MSwgNTMsIDQ4LCAzOCwgMjIyLCAyMzUsIDQ4LCAzOCwgNTIsIDI1NSwgNCwgMjU1LCAxNSwgCisgICAgMzgsIDI1MCwgMjM1LCAzOCwgNjcsIDIzMiwgMjE1LCA0OCwgMzgsIDUyLCA2NywgMjMyLCAyMTUsIDQ4LCAzOCwgNTIsIAorICAgIDI0MiwgMTM4LCAyNTUsIDE1LCAzOCwgMjUxLCAwLCAzOCwgMjM1LCAxOTQsIDI1MSwgMTQ3LCAzOCwgMjE1LCA5NCwgMjQ5LCAKKyAgICAyMjEsIDQ4LCAzOCwgMjQ5LCAyMjEsIDQ4LCAzOCwgMjIzLCA1MCwgMjQ5LCAyMjEsIDQ4LCAzOCwgMjQ5LCAyMjEsIDc3LCAKKyAgICAyMjIsIDI1MiwgMzgsIDI0MiwgMTM4LCAyNTUsIDE2LCA1MSwgMzgsIDI1NSwgNCwgMjU1LCAxNiwgNTEsIDM4LCA0MywgCisgICAgMjE3LCA4OSwgNTEsIDM4LCA0NCwgMjE3LCA4OSwgNTEsIDM4LCA0MywgMjU0LCAxMTEsIDQ4LCAzOCwgMjQwLCAyNDksIDM4LCAKKyAgICA0MywgMTYzLCAyMjIsIDIzNSwgNTEsIDM4LCAxMjAsIDIxNywgODksIDUxLCAzOCwgMTI0LCAyMTcsIDg5LCA1MSwgMzgsIAorICAgIDk2LCA1LCA1MSwgMzgsIDIzMCwgMTgzLCA1LCA1MSwgMzgsIDIyNiwgNjUsIDI0MSwgNTMsIDUxLCAzOCwgMjIzLCA1NiwgCisgICAgMjQxLCA1MywgNTEsIDM4LCA1OSwgNTEsIDM4LCAyNDgsIDMsIDUxLCAzOCwgMjIyLCAyMzUsIDUxLCAzOCwgMjQ5LCAyMjEsIAorICAgIDUxLCAzOCwgMjUwLCAxODQsIDM4LCAyMjYsIDIyNSwgMzgsIDY3LCAyMzIsIDIxNSwgNTEsIDM4LCAyNTEsIDE0MSwgNTEsIAorICAgIDM4LCAyMzUsIDE5NCwgNTIsIDI1NCwgMjUsIDUxLCAzOCwgMjUwLCAyMzYsIDUxLCAzOCwgMjUwLCAzMiwgMjU1LCAxNiwgCisgICAgNTEsIDM4LCAyNTEsIDE0OCwgNTEsIDM4LCAyMzUsIDE5NCwgMjUxLCAxNDgsIDUxLCAzOCwgMjE2LCA5MCwgNTEsIDM4LCAKKyAgICAyMzEsIDIzNCwgNTEsIDM4LCAxMjEsIDIzMiwgMjE0LCAzOCwgNTIsIDEyMSwgMjMyLCAyMTQsIDM4LCAyMTYsIDkwLCAyMjYsIAorICAgIDEyMSwgMzgsIDIxOSwgMjUyLCAyMTgsIDEwNCwgMjI2LCAxMjEsIDM4LCAxOTksIDIxOCwgMTA0LCAyMjYsIDEyMSwgMzgsIAorICAgIDIxOSwgMjUyLCAyMTksIDQ4LCAyMjYsIDEyMSwgMzgsIDE5OSwgMjE5LCA0OCwgMjI2LCAxMjEsIDM4LCA0NCwgMTYzLCAKKyAgICAyMjIsIDIzNSwgNTEsIDM4LCAyMzUsIDE5NCwgMjUxLCAxNDEsIDUxLCAzOCwgNDIsIDUxLCAzOCwgMjIxLCAxODEsIDUxLCAKKyAgICAzOCwgMjExLCAxNzksIDQ4LCAzOCwgNjcsIDE4MywgMzgsIDUyLCAyMjYsIDEyMCwgMzgsIDI0MiwgMTM4LCAxMzgsIDc4LCAKKyAgICAzOCwgMjU1LCA0LCAxMzgsIDc4LCAzOCwgMjYsIDIyNSwgMTc2LCAzOCwgMjYsIDIzNCwgMywgMzgsIDI2LCAyNDcsIDI1MywgCisgICAgMjE2LCAxOSwgMzgsIDI2LCAyMTAsIDIxOSwgMzgsIDI1MSwgMTQxLCA0OCwgMzgsIDI0NSwgOTksIDUsIDUxLCAzOCwgNTIsIAorICAgIDY3LCAyMzIsIDIxNSwgNTEsIDM4LCA0MywgMjU0LCAxMTEsIDUxLCAzOCwgMjI4LCA1MywgMjE2LCA5MCwgNDgsIDM4LCAKKyAgICAyNDEsIDU5LCA0OCwgMzgsIDI1NCwgMTQ5LCAxMjgsIDIxNiwgNDMsIDQ4LCAzOCwgNDMsIDQ0LCA4MCwgNTEsIDM4LCAyMTQsIAorICAgIDE1MywgODAsIDUxLCAzOCwgMjQyLCAxNDMsIDIzNSwgNjQsIDM4LCA0NCwgMjUzLCAyNTEsIDQ4LCAzOCwgNDMsIDE2MywgCisgICAgMjIyLCAyMzUsIDQ4LCAzOCwgMjQ0LCAxMzIsIDM4LCAyMTEsIDE3OSwgNTEsIDM4LCA0MywgMjUzLCAyNTEsIDUxLCAzOCwgCisgICAgNDQsIDI1MywgMjUxLCA1MSwgMzgsIDQ0LCAyNTMsIDI1MSwgMjIsIDEyMCwgMjUzLCAyNTEsIDUxLCAzOCwgNDQsIDE2MywgCisgICAgMjIyLCAyMzUsIDQ4LCAzOCwgNTksIDc3LCAyMjIsIDI1MiwgMzgsIDI1MywgMjE4LCA1MSwgMzgsIDUyLCAyMjIsIDIzNSwgCisgICAgNTEsIDM4LCAyMTAsIDM1LCA0OCwgMzgsIDUyLCAyNTEsIDE0OCwgNTEsIDM4LCA1MiwgMjUxLCAxNDcsIDM4LCA1MiwgMjMxLCAKKyAgICAyMzMsIDM4LCA1MiwgMjMxLCAyMzQsIDUxLCAzOCwgNTIsIDE4MywgMzgsIDUyLCAyMzUsIDE5NCwgMjUxLCAxNDcsIDM4LCAKKyAgICA1MiwgOTcsIDgwLCA1MSwgMzgsIDcsIDQsIDEsIDYxLCAzOCwgNywgNCwgMSwgNzUsIDM4LCA3LCA0LCAxLCA3MywgMzgsIDcsIAorICAgIDQsIDEsIDc2LCAzOCwgNywgNCwgMSwgNzAsIDM4LCA3LCA0LCAxLCAyNTEsIDY3LCAzOCwgNywgNCwgMSwgMjQ5LCA2MSwgCisgICAgMzgsIDcsIDQsIDEsIDI0MiwgNjEsIDM4LCA3LCA0LCAxLCAxOTMsIDM4LCA3LCA0LCAxLCAxNTMsIDM4LCA3LCA0LCAxLCAKKyAgICAyMTcsIDE1MywgMzgsIDcsIDQsIDEsIDIxNCwgMTA1LCAzOCwgNywgNCwgMSwgMjExLCAxNzgsIDI2LCA2LCAxLCAyNDEsIAorICAgIDE5NywgMjYsIDQsIDEsIDI0MSwgMTk3LCAyNiwgNiwgMSwgMjU0LCAyNCwgMjIxLCAyNDcsIDI2LCA0LCAxLCAyNTQsIDI0LCAKKyAgICAyMjEsIDI0NywgMjYsIDIyNywgMTk5LCA1MCwgMjYsIDIzMiwgMTA5LCAyMjcsIDE5OSwgNTAsIDI2LCA2LCAxLCAyMjYsIAorICAgIDUyLCAyNDcsIDIyOCwgMjYsIDQsIDEsIDIyNiwgNTIsIDI0NywgMjI4LCAyNiwgMjEwLCAyMTksIDI2LCA0LCAyMjMsIDUwLCAKKyAgICAyMzIsIDg0LCAyMTksIDE3OSwgODcsIDI2LCA0LCAyNDYsIDExOSwgMjMyLCA4NCwgMjE5LCAxNzksIDg3LCAyNiwgNCwgCisgICAgMjIzLCA1MCwgMjQ2LCAxMTksIDIzMiwgODQsIDIxOSwgMTc5LCA4NywgMjYsIDIyNCwgMTQsIDc4LCAyNiwgMjE2LCAxOSwgCisgICAgMjYsIDI0NywgMjUzLCAyMTYsIDE5LCAyNiwgNiwgMSwgMjU0LCAxNDUsIDIsIDIxNiwgMTksIDI2LCAyNTQsIDk4LCAyMTcsIAorICAgIDMsIDI2LCA2LCAxLCAyNDUsIDEwMiwgMiwgMjE2LCAxOSwgMjYsIDYsIDEsIDI0NSwgNjUsIDIsIDIxNiwgMTksIDI2LCA2LCAKKyAgICAxLCAyMzUsIDE4NywgMiwgMjE2LCAxOSwgMjYsIDYsIDEsIDIyNiwgMjAxLCAyLCAyMTYsIDE5LCAyNiwgNiwgMSwgMjE0LCAKKyAgICAxNTgsIDIsIDIxNiwgMTksIDI2LCA2LCAxLCAyMjYsIDIwMywgMiwgMjE2LCAxOSwgMjYsIDQsIDEsIDIzNSwgMTg3LCAyLCAKKyAgICAyNDcsIDI1MywgMjIsIDIxNiwgMTksIDI2LCA2LCAxLCAyNTQsIDE0NCwgMjYsIDYsIDEsIDI1MiwgMjcsIDI2LCA2LCAxLCAKKyAgICAyNDMsIDEwOCwgMjYsIDYsIDEsIDI0OCwgNTUsIDI2LCA2LCAxLCAyNDUsIDEwMSwgMjYsIDYsIDEsIDIxMCwgODUsIDI2LCAKKyAgICA2LCAxLCAyNDUsIDY0LCAyNiwgNiwgMSwgMjE2LCAxODAsIDI2LCA2LCAxLCAyMzUsIDE4NiwgMjYsIDYsIDEsIDIzNCwgCisgICAgMjIzLCAyNiwgNiwgMSwgMjMzLCA5OSwgMjYsIDYsIDEsIDIzMCwgMTAzLCAyNiwgNiwgMSwgMjI3LCAyMzgsIDI2LCA2LCAxLCAKKyAgICAyMTEsIDE1NywgMjYsIDYsIDEsIDIyNiwgMjAwLCAyNiwgNiwgMSwgMjI1LCAxMDksIDI2LCA2LCAxLCAyMjMsIDM4LCAyNiwgCisgICAgNiwgMSwgMjE5LCAxNzgsIDI2LCA2LCAxLCAyMTcsIDQyLCAyNiwgNiwgMSwgMjE0LCAxNTcsIDI2LCA2LCAxLCAyMjUsIAorICAgIDEzNCwgMjYsIDYsIDEsIDI1MCwgMTExLCAyNiwgNiwgMSwgMjI0LCAxNjIsIDI2LCA2LCAxLCAyMjYsIDIwMiwgMjYsIDYsIAorICAgIDEsIDIzNSwgMTg3LCAyLCAyNDcsIDI1MiwgMjYsIDYsIDEsIDIxNCwgMTU4LCAyLCAyNDcsIDI1MiwgMjYsIDQsIDEsIDI1NCwgCisgICAgMTQ1LCAyLCAyMTYsIDE5LCAyNiwgNCwgMSwgMjQ1LCAxMDIsIDIsIDIxNiwgMTksIDI2LCA0LCAxLCAyNDUsIDY1LCAyLCAKKyAgICAyMTYsIDE5LCAyNiwgNCwgMSwgMjM1LCAxODcsIDIsIDIxNiwgMTksIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjQ3LCAyNTMsIAorICAgIDIyLCAyMTYsIDE5LCAyNiwgNCwgMSwgMjU0LCAxNDQsIDI2LCA0LCAxLCAyNTIsIDI3LCAyNiwgNCwgMSwgMjQzLCAxMDgsIAorICAgIDI2LCA0LCAxLCAyNDgsIDU1LCAyNiwgNCwgMSwgMjQ1LCAxMDEsIDI2LCA0LCAxLCAyMTAsIDg1LCAyNiwgNCwgMSwgMjQ1LCAKKyAgICA2NCwgMjYsIDQsIDEsIDIxNiwgMTgwLCAyNiwgNCwgMSwgMjM1LCAxODYsIDI2LCA0LCAxLCAyMzQsIDIyMywgMjYsIDQsIDEsIAorICAgIDIzMywgOTksIDI2LCA0LCAxLCAyMzAsIDEwMywgMjYsIDQsIDEsIDIyNywgMjM4LCAyNiwgNCwgMSwgMjExLCAxNTcsIDI2LCAKKyAgICA0LCAxLCAyMjYsIDIwMCwgMjYsIDQsIDEsIDIyNSwgMTA5LCAyNiwgNCwgMSwgMjIzLCAzOCwgMjYsIDQsIDEsIDQwLCAyMTksIAorICAgIDE3OCwgMjYsIDQsIDEsIDIxOSwgMTc4LCAyNiwgNCwgMSwgMjE3LCA0MiwgMjYsIDQsIDEsIDIxNCwgMTU3LCAyNiwgNCwgMSwgCisgICAgMjI1LCAxMzQsIDI2LCA0LCAxLCAyNTAsIDExMSwgMjYsIDQsIDEsIDIyNCwgMTYyLCAyNiwgNCwgMSwgMjI2LCAyMDIsIDI2LCAKKyAgICA0LCAxLCAyMzUsIDE4NywgMiwgMjQ3LCAyNTIsIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjQ3LCAyNTIsIDI2LCA0LCAxLCAKKyAgICAyMjYsIDIwMSwgMiwgMjE2LCAxOSwgMjYsIDQsIDEsIDIxNCwgMTU4LCAyLCAyMTYsIDE5LCAyNiwgNCwgMSwgMjI2LCAyMDMsIAorICAgIDIsIDIxNiwgMTksIDI2LCA2LCAyMzQsIDI0OCwgODcsIDI2LCAyNTIsIDI4LCA4NywgMjYsIDIxNiwgMTgxLCA4NywgMjYsIAorICAgIDIxNCwgMTU4LCAyLCAyNDEsIDUzLCA4NywgMjYsIDIxNCwgMTU4LCAyLCAyNTUsIDQsIDIyLCAyNDEsIDUzLCA4NywgMjYsIAorICAgIDIxNCwgMTU4LCAyLCAyNDgsIDMsIDIyLCAyNDEsIDUzLCA4NywgMjYsIDIyNSwgMTM1LCA4NywgMjYsIDIyNSwgMTEwLCA4NywgCisgICAgMjYsIDIzNCwgMjQ4LCA4NywgMjYsIDEsIDI1NCwgMjQsIDIzNCwgNywgMjYsIDQsIDEsIDI1NCwgMjQsIDIzNCwgNywgMjYsIAorICAgIDEsIDIxOCwgMTM4LCAyNiwgNCwgMSwgMjE4LCAxMzgsIDI2LCAxLCAyNDcsIDIyOCwgMjYsIDQsIDEsIDI0NywgMjI4LCAyNiwgCisgICAgMSwgMjM0LCA3LCAyNiwgNCwgMSwgMjM0LCA3LCAyNiwgMSwgMjIxLCAyNDcsIDI2LCA0LCAxLCAyMjEsIDI0NywgODEsIDYsIAorICAgIDEsIDIyMCwgNTYsIDgxLCA0LCAxLCAyMjAsIDU2LCA4MSwgNiwgMSwgMjQ0LCAxNDEsIDgxLCA0LCAxLCAyNDQsIDE0MSwgCisgICAgODEsIDYsIDEsIDIzNCwgMTE4LCA4MSwgNCwgMSwgMjM0LCAxMTgsIDgxLCA2LCAxLCAyNDEsIDQ2LCA4MSwgNCwgMSwgMjQxLCAKKyAgICA0NiwgODEsIDYsIDEsIDI0MywgMTAzLCA4MSwgNCwgMSwgMjQzLCAxMDMsIDgxLCA2LCAxLCAyMjAsIDIzLCA4MSwgNCwgMSwgCisgICAgMjIwLCAyMywgODEsIDYsIDEsIDI0OCwgNzAsIDgxLCA0LCAxLCAyNDgsIDcwLCAyNiwgMjM0LCAyMjQsIDg3LCAyNiwgMjIzLCAKKyAgICAzOSwgODcsIDI2LCAyMzIsIDg0LCAyMTksIDE3OSwgODcsIDI2LCAxLCAyMTAsIDIyNCwgMjYsIDYsIDIxNiwgMTgxLCA4NywgCisgICAgMjYsIDIzMiwgODQsIDI0NSwgMTAyLCA4NywgMjYsIDIyMywgNTAsIDIzMiwgODQsIDI0NSwgMTAyLCA4NywgMjYsIDYsIDEsIAorICAgIDIyMCwgOCwgMjYsIDQsIDEsIDIyMCwgOCwgMjYsIDYsIDIzMiwgODQsIDIxOSwgMTc5LCA4NywgMjYsIDYsIDEsIDIyMSwgCisgICAgMjQ0LCAyNiwgNCwgMSwgMjIxLCAyNDQsIDI2LCAyMjMsIDM5LCAyLCAyMTgsIDEwNCwgODcsIDI2LCA2LCAyMjMsIDUwLCAKKyAgICAyMzIsIDg0LCAyMTksIDE3OSwgODcsIDI2LCA2LCAyNDYsIDExOSwgMjMyLCA4NCwgMjE5LCAxNzksIDg3LCAyNiwgNiwgCisgICAgMjIzLCA1MCwgMjQ2LCAxMTksIDIzMiwgODQsIDIxOSwgMTc5LCA4NywgMzMsIDYsIDEsIDIzNiwgNjIsIDIsIDI0MiwgMTM3LCAKKyAgICAzMywgNiwgMSwgMjM1LCAxOTAsIDMzLCA2LCAxLCAyNDcsIDE2MywgMzMsIDYsIDEsIDI0MiwgMTg4LCAzMywgNiwgMSwgCisgICAgMjE0LCAyMDIsIDIzNiwgNjEsIDMzLCA2LCAxLCAyNDYsIDM3LCAzMywgNiwgMSwgMjUxLCA3NywgNzMsIDMzLCA2LCAxLCAKKyAgICAyMTEsIDgsIDMzLCA2LCAxLCAyMzUsIDEyNywgMzMsIDYsIDEsIDIzMiwgMTg4LCAzMywgNiwgMSwgMjI4LCAxNzksIDMzLCAKKyAgICA2LCAxLCAyMTUsIDE3NSwgMzMsIDYsIDEsIDIzNCwgNDksIDMzLCA2LCAxLCAyNDAsIDE1NSwgMiwgMjQyLCAxMzcsIDMzLCAKKyAgICA2LCAxLCAyMTksIDI1MiwgNzAsIDMzLCA2LCAxLCAyNDYsIDMzLCAzMywgNiwgMSwgNjEsIDMzLCA2LCAxLCAyNTIsIDc2LCAKKyAgICAzMywgNiwgMSwgMjEzLCAyNTUsIDMzLCA2LCAxLCAyNDIsIDIzNywgMzMsIDYsIDEsIDI0OCwgOTEsIDMzLCA2LCAxLCAyMzYsIAorICAgIDYxLCAzMywgNiwgMSwgMjEwLCA3NCwgMzMsIDYsIDEsIDIxMCwgOTQsIDMzLCA2LCAxLCA3MywgMzMsIDYsIDEsIDIxOSwgCisgICAgMjUyLCA3MywgMzMsIDYsIDEsIDE3NiwgMzMsIDYsIDEsIDI0NSwgMTc1LCAzMywgNiwgMSwgMjQ1LCAxNjAsIDMzLCA2LCAxLCAKKyAgICAyNDUsIDE1MSwgMzMsIDYsIDEsIDc2LCAzMywgNiwgMSwgMjI1LCAyMjIsIDMzLCA2LCAxLCAyNDUsIDkzLCAzMywgNiwgMSwgCisgICAgMjQ1LCA4MywgMzMsIDYsIDEsIDIxNywgMjMsIDMzLCA2LCAxLCA3MCwgMzMsIDYsIDEsIDI0NSwgMjAzLCAzMywgNiwgMSwgCisgICAgMTYyLCAzMywgNiwgMSwgMjE1LCAxNzksIDMzLCA2LCAxLCAyNTAsIDEzMiwgMzMsIDYsIDEsIDIyMCwgMTAzLCAzMywgNiwgCisgICAgMSwgMjIwLCA2NiwgMzMsIDYsIDEsIDI0MiwgNCwgNTAsIDMzLCA2LCAxLCAyMTEsIDI3LCAzMywgNiwgMSwgMjE5LCA1MywgCisgICAgNTAsIDMzLCA2LCAxLCA3NSwgMzMsIDYsIDEsIDIxMCwgMjEyLCAzMywgNiwgMSwgMTkxLCAzMywgNCwgMSwgNjEsIDMzLCA0LCAKKyAgICAxLCAyNTIsIDc2LCAzMywgNCwgMSwgMjEzLCAyNTUsIDMzLCA0LCAxLCAyNDIsIDIzNywgMzMsIDQsIDEsIDI0OCwgOTEsIAorICAgIDMzLCA0LCAxLCAyMzYsIDYxLCAzMywgNCwgMSwgMjEwLCA3NCwgMzMsIDQsIDEsIDIxMCwgOTQsIDMzLCA0LCAxLCA3MywgCisgICAgMzMsIDQsIDEsIDIxOSwgMjUyLCA3MywgMzMsIDQsIDEsIDE3NiwgMzMsIDQsIDEsIDI0NSwgMTc1LCAzMywgNCwgMSwgMjQ1LCAKKyAgICAxNjAsIDMzLCA0LCAxLCAyNDUsIDE1MSwgMzMsIDQsIDEsIDc2LCAzMywgNCwgMSwgMjI1LCAyMjIsIDMzLCA0LCAxLCAyNDUsIAorICAgIDkzLCAzMywgNCwgMSwgMjQ1LCA4MywgMzMsIDQsIDEsIDIxNywgMjMsIDMzLCA0LCAxLCA3MCwgMzMsIDQsIDEsIDI0NSwgCisgICAgMjAzLCAzMywgNCwgMSwgMTYyLCAzMywgNCwgMSwgMjE1LCAxNzksIDMzLCA0LCAxLCAyNTAsIDEzMiwgMzMsIDQsIDEsIAorICAgIDIyMCwgMTAzLCAzMywgNCwgMSwgMjIwLCA2NiwgMzMsIDQsIDEsIDI0MiwgNCwgNTAsIDMzLCA0LCAxLCAyMTEsIDI3LCAzMywgCisgICAgNCwgMSwgMjE5LCA1MywgNTAsIDMzLCA0LCAxLCA3NSwgMzMsIDQsIDEsIDIxMCwgMjEyLCAzMywgNCwgMSwgMTkxLCAzMywgCisgICAgNCwgMSwgMjM2LCA2MiwgMiwgMjQyLCAxMzcsIDMzLCA0LCAxLCAyMzUsIDE5MCwgMzMsIDQsIDEsIDI0NywgMTYzLCAzMywgCisgICAgNCwgMSwgMjQyLCAxODgsIDMzLCA0LCAxLCAyMTQsIDIwMiwgMjM2LCA2MSwgMzMsIDQsIDEsIDI0NiwgMzcsIDMzLCA0LCAxLCAKKyAgICAyNTEsIDc3LCA3MywgMzMsIDQsIDEsIDIxMSwgOCwgMzMsIDQsIDEsIDIzNSwgMTI3LCAzMywgNCwgMSwgMjMyLCAxODgsIAorICAgIDMzLCA0LCAxLCAyMjgsIDE3OSwgMzMsIDQsIDEsIDIxNSwgMTc1LCAzMywgNCwgMSwgMjM0LCA0OSwgMzMsIDQsIDEsIDI0MCwgCisgICAgMTU1LCAyLCAyNDIsIDEzNywgMzMsIDQsIDEsIDIxOSwgMjUyLCA3MCwgMzMsIDQsIDEsIDI0NiwgMzMsIDMzLCA2LCAxLCAKKyAgICAyMjYsIDIwMiwgMzMsIDQsIDEsIDIyNiwgMjAyLCAzMywgNiwgMSwgMjExLCA1OSwgMzMsIDQsIDEsIDIxMSwgNTksIDMzLCAKKyAgICA2LCAxLCAyMzUsIDE4NCwgNzUsIDMzLCA0LCAxLCAyMzUsIDE4NCwgNzUsIDMzLCA2LCAxLCAyMzIsIDE5MywgMjEwLCAxODMsIAorICAgIDMzLCA0LCAxLCAyMzIsIDE5MywgMjEwLCAxODMsIDMzLCA2LCAxLCAyMzUsIDE4NCwgMjMyLCAxOTMsIDIxMCwgMTgzLCAzMywgCisgICAgNCwgMSwgMjM1LCAxODQsIDIzMiwgMTkzLCAyMTAsIDE4MywgMzMsIDYsIDEsIDI1MSwgMjUwLCAyMTAsIDE4MywgMzMsIDQsIAorICAgIDEsIDI1MSwgMjUwLCAyMTAsIDE4MywgMzMsIDYsIDEsIDIzNSwgMTg0LCAyNTEsIDI1MCwgMjEwLCAxODMsIDMzLCA0LCAxLCAKKyAgICAyMzUsIDE4NCwgMjUxLCAyNTAsIDIxMCwgMTgzLCAzMywgNiwgMSwgMjMzLCAyMzQsIDMzLCA0LCAxLCAyMzMsIDIzNCwgMzMsIAorICAgIDYsIDEsIDIyNCwgMTYyLCAzMywgNCwgMSwgMjI0LCAxNjIsIDMzLCA2LCAxLCAyNDQsIDgzLCAzMywgNCwgMSwgMjQ0LCA4MywgCisgICAgMzMsIDYsIDEsIDIzNSwgMTQ3LCAzMywgNCwgMSwgMjM1LCAxNDcsIDMzLCA2LCAxLCAyMzUsIDE0OCwgMiwgNTIsIDI0MiwgCisgICAgMTM4LCAyNTUsIDE1LCAzMywgNCwgMSwgMjM1LCAxNDgsIDIsIDUyLCAyNDIsIDEzOCwgMjU1LCAxNSwgMzMsIDYsIDEsIAorICAgIDIxNCwgMjA1LCAzMywgNCwgMSwgMjE0LCAyMDUsIDMzLCA2LCAxLCAyMjIsIDE4NiwgMjI2LCAyMDIsIDMzLCA0LCAxLCAKKyAgICAyMjIsIDE4NiwgMjI2LCAyMDIsIDMzLCA2LCAxLCAyMjYsIDIwMywgMiwgMjE2LCA2NiwgMzMsIDQsIDEsIDIyNiwgMjAzLCAKKyAgICAyLCAyMTYsIDY2LCAzMywgNiwgMSwgMjI2LCAxNDEsIDMzLCA0LCAxLCAyMjYsIDE0MSwgMzMsIDYsIDEsIDIzNCwgNywgMzMsIAorICAgIDQsIDEsIDIzNCwgNywgMzMsIDIxNiwgMTQ3LCA1MCwgMzgsIDMzLCAyMTYsIDY2LCAzOCwgMzMsIDIyNiwgNjYsIDM4LCAzMywgCisgICAgMjQ4LCAxNTUsIDIyNSwgMTksIDM4LCAzMywgMjI0LCAxNTYsIDIyNSwgMTksIDM4LCAzMywgMjI1LCA0LCAzOCwgMzMsIAorICAgIDI0MCwgMjEyLCAyMTYsIDE0NywgNTAsIDM4LCAzMywgMjMwLCAxOTIsIDUwLCAzMywgNiwgMSwgMjE5LCAyNTIsIDI0MCwgCisgICAgMTU1LCAyLCAyMTcsIDc4LCAzMywgNCwgMSwgMjE5LCAyNTIsIDI0MCwgMTU1LCAyLCAyMTcsIDc4LCAzMywgNiwgMSwgMjIwLCAKKyAgICAxNDcsIDUwLCAzMywgNCwgMSwgMjIwLCAxNDcsIDUwLCAzMywgNiwgMSwgMjQ1LCA5NCwgMiwgMjE2LCAxMTUsIDMzLCA0LCAKKyAgICAxLCAyNDUsIDk0LCAyLCAyMTYsIDExNSwgMzMsIDYsIDEsIDI0MiwgMjM4LCAyLCAyMTQsIDE1NiwgMzMsIDQsIDEsIDI0MiwgCisgICAgMjM4LCAyLCAyMTQsIDE1NiwgMzMsIDYsIDEsIDI0MiwgMjM4LCAyLCA5MSwgMzMsIDQsIDEsIDI0MiwgMjM4LCAyLCA5MSwgCisgICAgMzMsIDYsIDEsIDI0MiwgMjM4LCAyLCAyMzAsIDIyNSwgMTAzLCAzMywgNCwgMSwgMjQyLCAyMzgsIDIsIDIzMCwgMjI1LCAKKyAgICAxMDMsIDMzLCA2LCAxLCAyMTAsIDc1LCAyLCAyNDgsIDQwLCAzMywgNCwgMSwgMjEwLCA3NSwgMiwgMjQ4LCA0MCwgMzMsIDYsIAorICAgIDEsIDIxMCwgOTUsIDIsIDI0OCwgNDAsIDMzLCA0LCAxLCAyMTAsIDk1LCAyLCAyNDgsIDQwLCAzMywgNiwgMSwgMjM1LCAxNCwgCisgICAgMiwgMjQ4LCA0MCwgMzMsIDQsIDEsIDIzNSwgMTQsIDIsIDI0OCwgNDAsIDMzLCA2LCAxLCAyMzUsIDE0LCAyLCA2NywgOTEsIAorICAgIDMzLCA0LCAxLCAyMzUsIDE0LCAyLCA2NywgOTEsIDMzLCA2LCAxLCAyMzUsIDE0LCAyLCA5MSwgMzMsIDQsIDEsIDIzNSwgCisgICAgMTQsIDIsIDkxLCAzMywgNiwgMSwgMjUyLCAxMjUsIDE3NiwgMzMsIDQsIDEsIDI1MiwgMTI1LCAxNzYsIDMzLCA2LCAxLCAKKyAgICAyNDUsIDE1MiwgMiwgMjQ4LCA0MCwgMzMsIDQsIDEsIDI0NSwgMTUyLCAyLCAyNDgsIDQwLCAzMywgNiwgMjcsIDI0NSwgCisgICAgMTUyLCAyNDIsIDIzNywgMzMsIDQsIDI3LCAyNDUsIDE1MiwgMjQyLCAyMzcsIDMzLCA2LCAxLCAyMjUsIDIyMywgMiwgMjMwLCAKKyAgICAyMjUsIDEwMywgMzMsIDQsIDEsIDIyNSwgMjIzLCAyLCAyMzAsIDIyNSwgMTAzLCAzMywgNiwgMSwgMjU1LCAyMSwgMTYyLCAKKyAgICAzMywgNCwgMSwgMjU1LCAyMSwgMTYyLCAzMywgNiwgMSwgMjQ1LCA4NCwgMiwgMjQ4LCA0MCwgMzMsIDQsIDEsIDI0NSwgODQsIAorICAgIDIsIDI0OCwgNDAsIDMzLCA2LCAxLCAyMTcsIDI0LCAyLCAyNDgsIDQwLCAzMywgNCwgMSwgMjE3LCAyNCwgMiwgMjQ4LCA0MCwgCisgICAgMzMsIDYsIDEsIDIxOCwgMTIyLCA3MCwgMzMsIDQsIDEsIDIxOCwgMTIyLCA3MCwgMzMsIDYsIDEsIDIxOCwgMTIyLCAxMDQsIAorICAgIDIsIDkxLCAzMywgNCwgMSwgMjE4LCAxMjIsIDEwNCwgMiwgOTEsIDMzLCA2LCAxLCAyNDIsIDUwLCAyLCAyNDgsIDQwLCAzMywgCisgICAgNCwgMSwgMjQyLCA1MCwgMiwgMjQ4LCA0MCwgMzMsIDYsIDI3LCAyMTcsIDI0LCAyMTUsIDE3OSwgMzMsIDQsIDI3LCAyMTcsIAorICAgIDI0LCAyMTUsIDE3OSwgMzMsIDYsIDEsIDI1MCwgMTMzLCAyLCAyNDgsIDQwLCAzMywgNCwgMSwgMjUwLCAxMzMsIDIsIDI0OCwgCisgICAgNDAsIDMzLCA2LCAxLCAyNTAsIDEzMywgMiwgNjcsIDkxLCAzMywgNCwgMSwgMjUwLCAxMzMsIDIsIDY3LCA5MSwgMzMsIDYsIAorICAgIDEsIDIyMCwgMzQsIDMzLCA0LCAxLCAyMjAsIDM0LCAzMywgNiwgMSwgMjU1LCAyMSwgMjUwLCAxMzIsIDMzLCA0LCAxLCAKKyAgICAyNTUsIDIxLCAyNTAsIDEzMiwgMzMsIDYsIDEsIDI1NSwgMjEsIDI1MCwgMTMzLCAyLCAyNDgsIDQwLCAzMywgNCwgMSwgCisgICAgMjU1LCAyMSwgMjUwLCAxMzMsIDIsIDI0OCwgNDAsIDMzLCAxLCAyMjYsIDU5LCAzMywgNiwgMSwgMjEwLCA3NSwgMiwgMjUxLCAKKyAgICAxNDcsIDMzLCA0LCAxLCAyMTAsIDc1LCAyLCAyNTEsIDE0NywgMzMsIDYsIDEsIDIzNSwgMTQsIDIsIDEwMywgMzMsIDQsIDEsIAorICAgIDIzNSwgMTQsIDIsIDEwMywgMzMsIDYsIDEsIDI0NSwgMTc2LCAyLCAyMTcsIDc4LCAzMywgNCwgMSwgMjQ1LCAxNzYsIDIsIAorICAgIDIxNywgNzgsIDMzLCA2LCAxLCAyNDUsIDE1MiwgMiwgMTAzLCAzMywgNCwgMSwgMjQ1LCAxNTIsIDIsIDEwMywgMzMsIDYsIAorICAgIDEsIDI0NSwgMTUyLCAyLCAyMTcsIDc4LCAzMywgNCwgMSwgMjQ1LCAxNTIsIDIsIDIxNywgNzgsIDMzLCA2LCAxLCAyMzQsIAorICAgIDEyOCwgMjUwLCAxMzIsIDMzLCA0LCAxLCAyMzQsIDEyOCwgMjUwLCAxMzIsIDMzLCA2LCAxLCAyNDUsIDE2MSwgMiwgMjE3LCAKKyAgICA3OCwgMzMsIDQsIDEsIDI0NSwgMTYxLCAyLCAyMTcsIDc4LCAzMywgNCwgMSwgMjI2LCA1OSwgMzMsIDYsIDEsIDExNSwgMiwgCisgICAgMjUxLCAxNDcsIDMzLCA0LCAxLCAxMTUsIDIsIDI1MSwgMTQ3LCAzMywgNiwgMSwgMTE1LCAyLCAyNDgsIDIsIDMzLCA0LCAxLCAKKyAgICAxMTUsIDIsIDI0OCwgMiwgMzMsIDYsIDI3LCAxMTUsIDIzNiwgNjEsIDMzLCA0LCAyNywgMTE1LCAyMzYsIDYxLCAzMywgNiwgCisgICAgMSwgMjM2LCA2MiwgMiwgMjUxLCAxNDcsIDMzLCA0LCAxLCAyMzYsIDYyLCAyLCAyNTEsIDE0NywgMzMsIDYsIDEsIDIyMSwgCisgICAgMTk2LCAzMywgNCwgMSwgMjIxLCAxOTYsIDMzLCA2LCAxLCAyMjEsIDE5NywgMiwgMjQ4LCAyLCAzMywgNCwgMSwgMjIxLCAKKyAgICAxOTcsIDIsIDI0OCwgMiwgMzMsIDYsIDEsIDIxMCwgNzUsIDIsIDI0OCwgMiwgMzMsIDQsIDEsIDIxMCwgNzUsIDIsIDI0OCwgCisgICAgMiwgMzMsIDYsIDEsIDIxMCwgOTUsIDIsIDI0OCwgMiwgMzMsIDQsIDEsIDIxMCwgOTUsIDIsIDI0OCwgMiwgMzMsIDYsIDEsIAorICAgIDI1NSwgMjEsIDI0NiwgMzcsIDMzLCA0LCAxLCAyNTUsIDIxLCAyNDYsIDM3LCAzMywgNiwgMSwgMjQwLCAxNTUsIDIsIDIzMSwgCisgICAgMjMzLCAzMywgNCwgMSwgMjQwLCAxNTUsIDIsIDIzMSwgMjMzLCAzMywgNiwgMSwgMjQwLCAxNTUsIDIsIDI0OCwgMiwgMzMsIAorICAgIDQsIDEsIDI0MCwgMTU1LCAyLCAyNDgsIDIsIDMzLCA2LCAxLCAxNDQsIDIsIDI0OCwgMiwgMzMsIDQsIDEsIDE0NCwgMiwgCisgICAgMjQ4LCAyLCAzMywgNiwgMSwgMjUyLCAxMzUsIDc2LCAzMywgNCwgMSwgMjUyLCAxMzUsIDc2LCAzMywgNiwgMSwgMjUyLCAKKyAgICAxMzUsIDE0NCwgMiwgMjQ4LCAyLCAzMywgNCwgMSwgMjUyLCAxMzUsIDE0NCwgMiwgMjQ4LCAyLCAzMywgNiwgMSwgMTYwLCAKKyAgICAyLCAyNDgsIDIsIDMzLCA0LCAxLCAxNjAsIDIsIDI0OCwgMiwgMzMsIDYsIDEsIDEwNCwgMiwgMjMxLCAyMzMsIDMzLCA0LCAKKyAgICAxLCAxMDQsIDIsIDIzMSwgMjMzLCAzMywgNiwgMSwgMTA0LCAyLCAyNDgsIDIsIDMzLCA0LCAxLCAxMDQsIDIsIDI0OCwgMiwgCisgICAgMzMsIDYsIDEsIDEwNCwgMiwgNTIsIDE0MiwgMzMsIDQsIDEsIDEwNCwgMiwgNTIsIDE0MiwgMzMsIDYsIDEsIDI1MCwgMTMzLCAKKyAgICAyLCAyNDgsIDIsIDMzLCA0LCAxLCAyNTAsIDEzMywgMiwgMjQ4LCAyLCAzMywgNiwgMSwgMjQyLCAyMzgsIDIsIDI0OCwgNDAsIAorICAgIDMzLCA0LCAxLCAyNDIsIDIzOCwgMiwgMjQ4LCA0MCwgMzMsIDYsIDEsIDIxMSwgMjgsIDIsIDI0OCwgMiwgMzMsIDQsIDEsIAorICAgIDIxMSwgMjgsIDIsIDI0OCwgMiwgMzMsIDYsIDEsIDI0MiwgMjM4LCAyLCAyMTgsIDEwNCwgMjIsIDEwMywgMzMsIDQsIDEsIAorICAgIDI0MiwgMjM4LCAyLCAyMTgsIDEwNCwgMjIsIDEwMywgMzMsIDYsIDEsIDI0MiwgNTAsIDIsIDEwMywgMzMsIDQsIDEsIDI0MiwgCisgICAgNTAsIDIsIDEwMywgMzMsIDYsIDEsIDI0MiwgNTAsIDIsIDkxLCAzMywgNCwgMSwgMjQyLCA1MCwgMiwgOTEsIDMzLCA2LCAxLCAKKyAgICAyMzQsIDE1LCAyNDgsIDkxLCAzMywgNCwgMSwgMjM0LCAxNSwgMjQ4LCA5MSwgMzMsIDYsIDEsIDIzNCwgMTUsIDI0NywgCisgICAgMTYzLCAzMywgNCwgMSwgMjM0LCAxNSwgMjQ3LCAxNjMsIDMzLCA2LCAxLCAyMzQsIDE1LCAyMTAsIDI3LCAzMywgNCwgMSwgCisgICAgMjM0LCAxNSwgMjEwLCAyNywgMzMsIDYsIDEsIDIzNCwgMTUsIDI0NiwgMzEsIDMzLCA0LCAxLCAyMzQsIDE1LCAyNDYsIDMxLCAKKyAgICAzMywgNiwgMSwgMjM0LCAxNSwgMjMyLCAxODgsIDMzLCA0LCAxLCAyMzQsIDE1LCAyMzIsIDE4OCwgMzMsIDYsIDEsIDIzNCwgCisgICAgMTUsIDIyOCwgMTc5LCAzMywgNCwgMSwgMjM0LCAxNSwgMjI4LCAxNzksIDMzLCA2LCAxLCAyMzQsIDE1LCAyMTksIDExMCwgCisgICAgMzMsIDQsIDEsIDIzNCwgMTUsIDIxOSwgMTEwLCAzMywgNiwgMSwgMjM0LCAxNSwgMjE2LCA2MSwgMzMsIDQsIDEsIDIzNCwgCisgICAgMTUsIDIxNiwgNjEsIDMzLCA2LCAxLCAyMjMsIDUwLCAyMTAsIDk0LCAzMywgNCwgMSwgMjIzLCA1MCwgMjEwLCA5NCwgMzMsIAorICAgIDYsIDEsIDI0NSwgMTc2LCAyLCAxMDMsIDMzLCA0LCAxLCAyNDUsIDE3NiwgMiwgMTAzLCAzMywgNiwgMSwgMjMyLCAyNTUsIAorICAgIDMzLCA0LCAxLCAyMzIsIDI1NSwgMzMsIDYsIDEsIDIyMywgNDAsIDMzLCA0LCAxLCAyMjMsIDQwLCAzMywgNiwgMSwgMjExLCAKKyAgICA5MiwgMzMsIDQsIDEsIDIxMSwgOTIsIDMzLCA2LCAxLCAyMjQsIDg5LCAzMywgNCwgMSwgMjI0LCA4OSwgMzMsIDYsIDEsIAorICAgIDIxMiwgMjIsIDMzLCA0LCAxLCAyMTIsIDIyLCAzMywgNiwgMSwgMjU0LCAxNjcsIDE3NiwgMzMsIDQsIDEsIDI1NCwgMTY3LCAKKyAgICAxNzYsIDMzLCA2LCAxLCAyNDUsIDE3NiwgMiwgMjMwLCAyMjUsIDEwMywgMzMsIDQsIDEsIDI0NSwgMTc2LCAyLCAyMzAsIAorICAgIDIyNSwgMTAzLCAzMywgNiwgMSwgMjQ1LCAxNTIsIDIsIDIzMCwgMjI1LCAxMDMsIDMzLCA0LCAxLCAyNDUsIDE1MiwgMiwgCisgICAgMjMwLCAyMjUsIDEwMywgMzMsIDYsIDEsIDIyNSwgMjIzLCAyLCAyNDgsIDQwLCAzMywgNCwgMSwgMjI1LCAyMjMsIDIsIAorICAgIDI0OCwgNDAsIDMzLCA2LCAxLCAyMjAsIDM1LCAyLCAyNDgsIDQwLCAzMywgNCwgMSwgMjIwLCAzNSwgMiwgMjQ4LCA0MCwgCisgICAgMTUwLCA2LCAxLCAyNTMsIDE2NSwgMTUwLCA2LCAxLCAyNTIsIDQwLCAxNTAsIDYsIDEsIDI0MiwgMjA0LCAxNTAsIDYsIDEsIAorICAgIDI0OCwgMjIyLCAxNTAsIDYsIDEsIDI0NSwgMjE0LCAxNTAsIDYsIDEsIDIxMCwgMTE2LCAxNTAsIDYsIDEsIDI0NSwgMTk4LCAKKyAgICAxNTAsIDYsIDEsIDI0NSwgNjYsIDE1MCwgNiwgMSwgMTExLCAxNTAsIDYsIDEsIDIxMCwgNzQsIDE1MCwgNiwgMSwgMjM1LCAKKyAgICAyMjgsIDE1MCwgNiwgMSwgMjMyLCAxOTEsIDE1MCwgNiwgMSwgMjExLCAxNjAsIDE1MCwgNiwgMSwgMjUxLCAzNCwgMTUwLCAKKyAgICA2LCAxLCAyMzQsIDE2NiwgMTUwLCA2LCAxLCAyNDEsIDY5LCAxNTAsIDYsIDEsIDIzNSwgMTQyLCAxNTAsIDYsIDEsIDI0MiwgCisgICAgMjQ3LCAxNTAsIDYsIDEsIDI1MCwgMTI3LCAxNTAsIDYsIDEsIDIzMSwgNTksIDE1MCwgNiwgMSwgMjExLCA4LCAxNTAsIDYsIAorICAgIDEsIDIyOCwgNDAsIDE1MCwgNiwgMSwgMjIwLCAxMDMsIDE1MCwgNiwgMSwgMjEzLCAxMzgsIDE1MCwgNiwgMSwgMjUwLCAKKyAgICAxNTgsIDE1MCwgNiwgMSwgMjI1LCAyMDYsIDE1MCwgNiwgMSwgMjM1LCAxMTEsIDE1MCwgNiwgMSwgMjA1LCAxNTAsIDYsIDEsIAorICAgIDIyMSwgMTYyLCAxNTAsIDYsIDEsIDIxMywgMTc5LCAxNTAsIDYsIDEsIDIxNiwgNjMsIDE1MCwgNiwgMSwgMjIzLCA5NiwgCisgICAgMTUwLCA2LCAxLCAyNDksIDIzOSwgMTUwLCA2LCAxLCAyMTAsIDI0OSwgMTUwLCA2LCAxLCAyMjUsIDQ3LCAxNTAsIDYsIDEsIAorICAgIDIzNCwgMTc3LCAxNTAsIDYsIDEsIDIyNiwgMjIzLCAxNTAsIDYsIDEsIDI0NCwgMTQzLCAxNTAsIDU4LCAxLCA0MywgMTYzLCAKKyAgICAyMjIsIDIzNCwgMTUwLCAyNTQsIDU4LCAxNTAsIDI0NSwgMTU1LCA3OCwgMTUwLCAyNDUsIDMyLCA3OCwgMTUwLCAyNDksIAorICAgIDIyMCwgMTUwLCAyMjQsIDE0LCA3OCwgMTUwLCAyNTUsIDIyLCA3OCwgMTUwLCA0LCAxLCAyNTMsIDE2NSwgMTUwLCA0LCAxLCAKKyAgICAyNTIsIDQwLCAxNTAsIDQsIDEsIDI0MiwgMjA0LCAxNTAsIDQsIDEsIDI0OCwgMjIyLCAxNTAsIDQsIDEsIDI0NSwgMjE0LCAKKyAgICAxNTAsIDQsIDEsIDIxMCwgMTE2LCAxNTAsIDQsIDEsIDI0NSwgMTk4LCAxNTAsIDQsIDEsIDI0NSwgNjYsIDE1MCwgNCwgMSwgCisgICAgMTExLCAxNTAsIDQsIDEsIDIxMCwgNzQsIDE1MCwgNCwgMSwgMjM1LCAyMjgsIDE1MCwgNCwgMSwgMjMyLCAxOTEsIDE1MCwgCisgICAgNCwgMSwgMjExLCAxNjAsIDE1MCwgNCwgMSwgMjUxLCAzNCwgMTUwLCA0LCAxLCAyMzQsIDE2NiwgMTUwLCA0LCAxLCAyNDEsIAorICAgIDY5LCAxNTAsIDQsIDEsIDIzNSwgMTQyLCAxNTAsIDQsIDEsIDI0MiwgMjQ3LCAxNTAsIDQsIDEsIDI1MCwgMTI3LCAxNTAsIAorICAgIDQsIDEsIDIzMSwgNTksIDE1MCwgNCwgMSwgMjExLCA4LCAxNTAsIDQsIDEsIDIyOCwgNDAsIDE1MCwgNCwgMSwgMjIwLCAKKyAgICAxMDMsIDE1MCwgNCwgMSwgMjEzLCAxMzgsIDE1MCwgNCwgMSwgMjUwLCAxNTgsIDE1MCwgNCwgMSwgMjI1LCAyMDYsIDE1MCwgCisgICAgNCwgMSwgMjM1LCAxMTEsIDE1MCwgNCwgMSwgMjA1LCAxNTAsIDQsIDEsIDIyMSwgMTYyLCAxNTAsIDQsIDEsIDIxMywgMTc5LCAKKyAgICAxNTAsIDQsIDEsIDIxNiwgNjMsIDE1MCwgNCwgMSwgMjIzLCA5NiwgMTUwLCA0LCAxLCAyNDksIDIzOSwgMTUwLCA0LCAxLCAKKyAgICAyMTAsIDI0OSwgMTUwLCA0LCAxLCAyMjUsIDQ3LCAxNTAsIDQsIDEsIDIzNCwgMTc3LCAxNTAsIDQsIDEsIDIyNiwgMjIzLCAKKyAgICAxNTAsIDQsIDEsIDI0NCwgMTQzLCAxNTAsIDQsIDI3LCAyNDUsIDIxNSwgMjEwLCAyNDksIDE1MCwgMjQzLCAyMzAsIDIxOCwgCisgICAgMTMwLCAxNTAsIDI0MCwgMTY5LCAxNTAsIDI0NiwgOTYsIDUwLCA5NCwgMjU1LCAxNiwgMjQ1LCA1OCwgOTQsIDI1NSwgMTYsIAorICAgIDIyMSwgMTYzLCA5NCwgMjU1LCAxNiwgMjIwLCA4OSwgOTQsIDI1NSwgMTYsIDIxMCwgMTA0LCAyMjQsIDcyLCA5NCwgMjU1LCAKKyAgICAxNiwgMjEwLCAxMDQsIDI0MywgMTI2LCA5NCwgMjU1LCAxNiwgMjE2LCA3NiwgOTQsIDI1NSwgMTYsIDIyMywgNDgsIDk0LCAKKyAgICAyNTUsIDE2LCAyMTAsIDEwMywgOTQsIDI1NSwgMTYsIDIyNSwgMjQ2LCA5NCwgMjU1LCAxNiwgMjExLCAyMCwgOTQsIDI1NSwgCisgICAgMTYsIDIxNiwgMjE1LCA5NCwgMjU1LCAxNiwgMjQzLCA0MiwgOTQsIDI1NSwgMTYsIDI0MywgNDMsIDIzMCwgNzAsIDk0LCAKKyAgICAyNTUsIDE2LCAyNDMsIDQwLCA5NCwgMjU1LCAxNiwgMjI0LCA3MywgMjI2LCAxNywgOTQsIDI1NSwgMTYsIDIxNiwgMjU0LCAKKyAgICAyNDMsIDU3LCA5NCwgMjU1LCAxNiwgMjI1LCAyMjcsIDk0LCAyNTUsIDE2LCAyNTMsIDIwMSwgMjQyLCA0MiwgOTQsIDI1NSwgCisgICAgMTYsIDIzMCwgODAsIDk0LCAyNTUsIDE2LCAyMzEsIDIwOSwgOTQsIDI1NSwgMTYsIDIzMSwgNTAsIDk0LCAyNTUsIDE2LCAKKyAgICAyMzEsIDUxLCAyMzQsIDE3OCwgOTQsIDI1NSwgMTYsIDI0OCwgMTY0LCA5NCwgMjU1LCAxNiwgMjI0LCA4NCwgOTQsIDI1NSwgCisgICAgMTYsIDIxNiwgMjU0LCAyMjQsIDY4LCA5NCwgMjU1LCAxNiwgMjExLCAzMCwgMjUyLCA0MSwgMjEwLCAyMzAsIDk0LCAyNTUsIAorICAgIDE2LCAyMjYsIDIwOCwgOTQsIDI1NSwgMTYsIDIzNiwgMjAsIDk0LCAyNTUsIDE2LCAyNDgsIDcxLCA5NCwgMjU1LCAxNiwgCisgICAgMjEwLCAzMywgOTQsIDE2NCwgMjMxLCAxNDQsIDI1MCwgMzYsIDk0LCAyMjUsIDEyLCAyMjAsIDM3LCA5NCwgMjI1LCAxMiwgCisgICAgMjQxLCAyNTEsIDIyMSwgMTYzLCA5NCwgMjI1LCAxMiwgMjQxLCAyNTEsIDIyNSwgMjQwLCA5NCwgMjI1LCAxMiwgMjQxLCAKKyAgICAyNTEsIDIyNCwgNzcsIDk0LCAyMjUsIDEyLCAyNDEsIDE1OSwgOTQsIDIyNSwgMTIsIDIxNSwgMTc3LCA5NCwgMjI1LCAxMiwgCisgICAgMjIxLCAxNjMsIDk0LCAyMjUsIDEyLCAyMjUsIDI0MCwgOTQsIDIyNSwgMTIsIDIyNCwgNzcsIDk0LCAyMjUsIDEyLCAyNDEsIAorICAgIDYyLCA5NCwgMjI1LCAxMiwgMjQxLCA2MywgMjQxLCAyNTMsIDMxLCAyMTQsIDMsIDk0LCAyMjUsIDEyLCAyMjQsIDE4LCA5NCwgCisgICAgMjI1LCAxMiwgMjQ4LCAyMDksIDE3NywgMjMxLCAxNzIsIDk0LCAyMjUsIDEyLCAyMzEsIDM5LCA5NCwgMjI0LCAxNDIsIAorICAgIDIzMSwgMTY5LCA5NCwgMjI1LCAxMiwgMjIzLCAxNzAsIDk0LCAyMjQsIDE0MiwgMjI1LCAyNDgsIDk0LCAyMjUsIDEyLCAKKyAgICAyMjAsIDIyLCAyNDcsIDEyMSwgOTQsIDIyNSwgMTIsIDIxOSwgMTYwLCAyNDcsIDEyMSwgOTQsIDIyNCwgMTQyLCAyMTksIAorICAgIDU0LCAyMjUsIDI0MiwgOTQsIDE2NCwgMjE0LCAxNjAsIDI0NywgMTIxLCA5NCwgMTY0LCAyMzIsIDEwOSwgMjQ3LCAxMjEsIAorICAgIDk0LCAyMjQsIDE0MiwgMjI3LCAxOTYsIDI0MiwgNDEsIDk0LCAyMjUsIDEyLCAyMjQsIDc4LCAyMjQsIDcyLCA5NCwgMSwgCisgICAgMjU0LCAxNzEsIDk0LCAxLCAyNTIsIDI5LCA5NCwgMSwgMjQyLCAyMDIsIDk0LCAxLCAyNDgsIDE5MCwgOTQsIDEsIDI0MSwgCisgICAgMjM5LCA5NCwgMSwgMjE0LCAzLCA5NCwgMSwgMjEwLCA5NywgOTQsIDEsIDI0MSwgMTk4LCA5NCwgMSwgMjE2LCAyMzEsIDk0LCAKKyAgICAxLCAyMTAsIDIzMywgOTQsIDEsIDQwLCAyMzQsIDI1MSwgOTQsIDEsIDIzNCwgMjUxLCA5NCwgMSwgMjMzLCA5NSwgOTQsIDEsIAorICAgIDQwLCAyMzEsIDY2LCA5NCwgMSwgMjMxLCA2NiwgOTQsIDEsIDQwLCAyMjcsIDE5NSwgOTQsIDEsIDIyNywgMTk1LCA5NCwgMSwgCisgICAgMjIxLCAyNTAsIDk0LCAxLCAyNTMsIDE2MywgOTQsIDEsIDQwLCAyMjUsIDIyMiwgOTQsIDEsIDIyNSwgMjIyLCA5NCwgMSwgCisgICAgNDAsIDIxNSwgMTgwLCA5NCwgMSwgMjE1LCAxODAsIDk0LCAxLCAyMjQsIDQwLCA5NCwgMSwgMjIzLCA2OCwgOTQsIDEsIAorICAgIDIyMCwgMjEsIDk0LCAxLCAyMTcsIDM5LCA5NCwgMjcsIDIxMSwgNiwgNTIsIDIxNCwgMywgOTQsIDI3LCAyMTEsIDYsIDIxNCwgCisgICAgNCwgMjEwLCAyMzMsIDk0LCAyNywgMjExLCA2LCA1MiwgMjEwLCAyMzMsIDk0LCAyMjQsIDE0MiwgMjQzLCA0MiwgOTQsIAorICAgIDIyNCwgMTQyLCAyNDMsIDQwLCAxMCwgNTQsIDUwLCAxMCwgNSwgMjIxLCAyNDMsIDEwLCAyNDQsIDMxLCAyMzEsIDE1NSwgCisgICAgMTAsIDUsIDIyMiwgMjQsIDEwLCA1LCAyMjEsIDI0NiwgMjU0LCAzOCwgMjQ5LCAxMTAsIDIyMiwgMTk0LCAyNTQsIDM4LCAKKyAgICAyNDQsIDUsIDIyMiwgMTk0LCAxMCwgMjIzLCAxMzUsIDI1NCwgMzgsIDIyNSwgMTg0LCAyMzAsIDE5NCwgNTAsIDI1NCwgMzgsIAorICAgIDIyNSwgMTg0LCAyMTYsIDI0OSwgMjE2LCAxNDksIDUwLCAyNTQsIDIyMiwgNTAsIDEwLCAyNDksIDIyMCwgMTAsIDI0OCwgCisgICAgMTUxLCAyMjAsIDEzOCwgMTAsIDIyNSwgMTQsIDIxMywgMjQxLCA1MCwgMTAsIDUsIDIzMCwgMTc1LCAxMCwgNSwgMjIyLCA0LCAKKyAgICAyNTQsIDE3MywgMjEyLCA0NSwgMTAsIDUsIDI1NCwgMTczLCAyNTMsIDIyMiwgMTAsIDUsIDIyMywgMTY4LCAyNTQsIDE3MiwgCisgICAgMTAsIDUsIDIyMywgMTc2LCAyNTQsIDE1MywgMjU0LCAxMDUsIDEwLCA1LCAyMTcsIDcxLCAxMCwgNCwgMTI1LCAyMTcsIDgxLCAKKyAgICAxMCwgNCwgMTI1LCAyNywgMTEyLCAyLCAyMzMsIDEwNCwgMiwgMjExLCA0MywgMTAsIDQsIDEyNSwgMjEwLCAxMDgsIDEwLCAKKyAgICA0LCAyNDQsIDE2NiwgMTAsIDQsIDI0OCwgMTg1LCAxMCwgNCwgMjM0LCAyMDYsIDEwLCAyMjAsIDE1MSwgMTAsIDIxNSwgCisgICAgMjEyLCA1OSwgMjI0LCAxNDIsIDc4LCAxMCwgMjI0LCAxNCwgNzgsIDEwLCAxLCAyMzQsIDIxMCwgMjExLCA0MywgMTAsIDEsIAorICAgIDI0MiwgMjAsIDEwLCAxLCAxMTIsIDIsIDIzMSwgMjI5LCA0OCwgMTAsIDEsIDExMiwgMiwgMjAyLCA0OCwgMTAsIDEsIDIxMiwgCisgICAgMzEsIDIsIDIwMiwgNDgsIDEwLCAxLCAxMTIsIDIsIDIwMiwgNTEsIDEwLCAxLCA3OSwgMiwgMjAyLCA0OCwgMTAsIDEsIAorICAgIDI1NCwgMTcxLCAxMCwgMSwgMjUyLCA1NSwgMTAsIDEsIDIxNywgOSwgMjMxLCAxNjUsIDEwLCAxLCAyMTcsIDgsIDEwLCAxLCAKKyAgICAyMTYsIDE5MywgMTAsIDEsIDIzNSwgMTI0LCAxMCwgMSwgMjQyLCAzOCwgMTAsIDEsIDIzNCwgMTMwLCAxMCwgMSwgMjQ4LCAKKyAgICAxOTYsIDEwLCAxLCAyMTYsIDIwMywgMTAsIDEsIDIyMywgOTYsIDEwLCAxLCAyMTAsIDEwOCwgMTAsIDEsIDIyMSwgMTY3LCAKKyAgICAxMCwgMSwgMjIwLCA2MCwgMTAsIDEsIDIyMiwgMjcsIDEwLCAxLCAyNDgsIDIxNywgMTAsIDEsIDIxNywgODEsIDEwLCAxLCAKKyAgICAyMTAsIDExMSwgMTAsIDEsIDI1NCwgMTk3LCAxMCwgMSwgMjQyLCAyNDUsIDEwLCAxLCAyMzQsIDE3NiwgMiwgMTEzLCAxNzAsIAorICAgIDQ4LCAxMCwgMSwgMjM0LCAxNzYsIDIsIDEzNCwgMTcwLCA1MSwgMTAsIDEsIDI0NCwgMTY5LCA3OSwgMiwgMjM1LCAxOTQsIAorICAgIDIxNCwgMTA1LCAxMCwgMSwgMjQ0LCAxNjksIDc5LCAyLCAxMTMsIDE3MCwgNDgsIDEwLCAxLCAyNDQsIDE2OSwgNzksIDIsIAorICAgIDEzNCwgMTcwLCA0OCwgMTAsIDIxNywgNDQsIDEwLCAxLCAyNDQsIDE0MywgMTAsIDEsIDIyNCwgODIsIDEwLCAxLCAyMzQsIAorICAgIDI1MSwgMTAsIDEsIDIzMywgMTAzLCAxMCwgMSwgMjMxLCA3OSwgMTAsIDEsIDIyOCwgNjMsIDEwLCAxLCAyNDEsIDIxOSwgCisgICAgMTAsIDEsIDIxMiwgMzAsIDEwLCAxLCAxMTIsIDIzMSwgMTkzLCAxMCwgMSwgMjExLCA0MywgMTAsIDI0NCwgMTY0LCAxMCwgCisgICAgMjQ4LCAxODMsIDEwLCAyMzQsIDIwNCwgMTAsIDI0NCwgMTY2LCAxMCwgMjQ4LCAxODUsIDEwLCAyMzQsIDIwNiwgMTAsIAorICAgIDIyMCwgOTQsIDEwLCAyMTgsIDQ2LCAxMCwgMjMxLCAyMjcsIDQ4LCAxMCwgMjAyLCA0OCwgMTAsIDIwMiwgNTEsIDEwLCAKKyAgICAyMTgsIDY2LCAyNTQsIDE3MSwgMTAsIDIzNSwgMTk0LCAyNDgsIDE4NSwgMTAsIDE2NCwgMjI4LCA2NCwgMjQyLCAyMTksIAorICAgIDEwLCAyMDksIDI1NSwgMTAsIDI1LCA1LCA0LCAyMTQsIDEwNiwgNDgsIDEwLCAyNSwgNSwgMjM1LCAxOTQsIDQsIDIxNCwgCisgICAgMTA2LCA0OCwgMTAsIDI1LCA1LCA1OSwgNTEsIDEwLCAyMjMsIDUwLCAyNDgsIDE4NSwgMTAsIDI0NCwgMTY3LCAyLCAxMTMsIAorICAgIDI0NywgMTE5LCAxMCwgMjEyLCAzMiwgMjAyLCA1MSwgMjU0LCAzOCwgMjEsIDIxMCwgODYsIDI1NCwgMzgsIDIxLCAxMTAsIAorICAgIDI1NCwgMzgsIDIxLCAxMDUsIDI1NCwgMzgsIDIxLCAxNTgsIDI1NCwgMzgsIDIxLCAxNjEsIDI1NCwgMzgsIDIxLCAxODksIAorICAgIDI1NCwgMzgsIDIxLCAxOTQsIDI1NCwgMzgsIDIxLCAxOTgsIDI1NCwgMzgsIDIxLCAxOTUsIDI1NCwgMzgsIDIxLCAyMDAsIAorICAgIDEwLCAyMjUsIDE4MywgNTAsIDEwLCAyNDgsIDg0LCAyMjAsIDEzOCwgMTAsIDIxNiwgMTQ3LCAyMjAsIDEzOCwgMTAsIDI0NCwgCisgICAgODIsIDIyNSwgMTAsIDIxOCwgMTU3LCAxMCwgMSwgMjQ3LCAxMjAsIDI1MiwgNTUsIDEwLCAxLCAyNDcsIDEyMCwgMjI0LCAKKyAgICA4MiwgMTAsIDEsIDIxOCwgMjQsIDI1NCwgMTcxLCAxMCwgMSwgMTEyLCAyMTIsIDQ2LCAxMCwgMSwgMTEyLCAyLCAyMTIsIAorICAgIDMyLCAyMDIsIDQ4LCAxMCwgMSwgMTEyLCAyLCAyMTIsIDMyLCAyMDIsIDUxLCAxMCwgMSwgMTI1LCAyNDIsIDIwLCAxMCwgMSwgCisgICAgMTI1LCAyMDIsIDI1NCwgMTcxLCAxMCwgMSwgMTI1LCAyMDIsIDIxMiwgMzAsIDEwLCAxLCAxMDQsIDIsIDIwMiwgNDgsIDEwLCAKKyAgICAxLCAxMjUsIDIwMiwgMjExLCA0MywgMTAsIDEsIDIxNSwgMTQ5LCAxMCwgMSwgMjE1LCAxNDcsIDEwLCAxLCAyNTIsIDY1LCAKKyAgICAxMCwgMSwgMjE3LCA5LCAyLCAyMjIsIDIzNCwgMTAsIDEsIDIxNywgOSwgMiwgMTM0LCAxNzAsIDc3LCAyNDYsIDEwNCwgMTAsIAorICAgIDEsIDIyNSwgMjA2LCAxMCwgMSwgMjE3LCA2LCAxMCwgMSwgMjUyLCA1MywgMTAsIDEsIDEyMiwgMiwgMjAyLCA0OCwgMTAsIAorICAgIDEsIDEyMiwgMiwgMTEzLCAxNzAsIDY3LCA0OCwgMTAsIDEsIDIyNywgMTU0LCAxMCwgMSwgMjQ2LCA0NCwgMTAsIDEsIDEyMiwgCisgICAgMiwgMTM0LCAxNzAsIDQ4LCAxMCwgMSwgMjE3LCAyNywgMTAsIDEsIDIxNywgMjUsIDEwLCAxLCAyNDgsIDEzMSwgMTAsIDEsIAorICAgIDI0OCwgMTk3LCAyLCAyMjIsIDIzNCwgMTAsIDEsIDI0OCwgMTk3LCAyLCA1OSwgNTEsIDEwLCAxLCAyNDgsIDE5NywgMiwgCisgICAgNTksIDI1MiwgNDQsIDIyLCA0LCAyMTcsIDgxLCAxMCwgMSwgMjQ4LCAyMDIsIDEwLCAxLCAyNDgsIDEzMywgMTAsIDEsIAorICAgIDI0NiwgNzEsIDEwLCAxLCAyNDgsIDE5NywgMiwgMTM0LCAxNzAsIDc3LCAyNDYsIDEwNCwgMTAsIDEsIDI0OCwgMTk3LCAyLCAKKyAgICAyNDQsIDEyLCAxNzAsIDQ4LCAxMCwgMSwgMjIyLCAxNzIsIDEwLCAxLCAyMjMsIDk3LCAyLCA0LCAyMTQsIDEwNSwgMTAsIDEsIAorICAgIDIyMywgOTcsIDIsIDIyMiwgMjM0LCAxMCwgMSwgMjIzLCA5NywgMiwgNTksIDUxLCAxMCwgMSwgMjIzLCA5NywgMiwgNCwgCisgICAgMjE0LCAxMDYsIDUxLCAxMCwgMSwgMjIzLCA5NywgMiwgNTksIDI1MiwgNDQsIDIyLCA1OSwgNDgsIDEwLCAxLCAyMjMsIDk3LCAKKyAgICAyLCAxMTMsIDE3MCwgNDgsIDEwLCAxLCAyMzUsIDEyMSwgMTAsIDEsIDIyMywgOTcsIDIsIDI0NCwgMTIsIDE3MCwgNDgsIAorICAgIDEwLCAxLCAyMjEsIDE2OCwgMiwgNTksIDI1MiwgNDQsIDIyLCA1OSwgNDgsIDEwLCAxLCAyMjEsIDE2OCwgMiwgMTM0LCAKKyAgICAxNzAsIDUxLCAxMCwgMSwgMjIxLCAxNjgsIDIsIDEzNCwgMTcwLCAyNTIsIDQ0LCAyMiwgMTM0LCAxNzAsIDQ4LCAxMCwgMSwgCisgICAgMjIyLCAyOCwgMiwgMTEzLCAxNzAsIDUxLCAxMCwgMSwgMjIyLCAyOCwgMiwgMTM0LCAxNzAsIDQ4LCAxMCwgMSwgMjE3LCAKKyAgICA4MiwgMiwgMTM0LCAxNzAsIDQ4LCAxMCwgMSwgMjU0LCAxOTgsIDIsIDEzNCwgMTcwLCA0OCwgMTAsIDEsIDI0NywgMTIwLCAKKyAgICAyNDQsIDE0MywgMTAsIDEsIDI0NCwgMTQ0LCAyLCA1OSwgMjMwLCAxMTAsIDUxLCAxMCwgMSwgMjQ0LCAxNDQsIDIsIDU5LCAKKyAgICA1MSwgMTAsIDEsIDIxMywgMjQ4LCAxMCwgMSwgMjQ0LCAxNDQsIDIsIDEzNCwgMTcwLCA1MSwgMTAsIDEsIDIyNSwgMjA0LCAKKyAgICAxMCwgMSwgMjI0LCA4MywgMiwgNTksIDQ4LCAxMCwgMSwgMjI0LCA4MywgMiwgMTM0LCAxNzAsIDQ4LCAxMCwgMSwgMjM0LCAKKyAgICAxNzUsIDEwLCAxLCAyMTcsIDI1MSwgMjM0LCAyNTEsIDEwLCAxLCAyMzQsIDI1MiwgMiwgMjIyLCAyMzQsIDEwLCAxLCAyMzQsIAorICAgIDI1MiwgMiwgNTksIDQ4LCAxMCwgMSwgMjI5LCA4MCwgMTAsIDEsIDIzNCwgMjUyLCAyLCAxMzQsIDE3MCwgNTEsIDEwLCAxLCAKKyAgICAyNDMsIDEyMywgMTAsIDEsIDI0MywgMTI0LCAyLCAyMjIsIDIzNCwgMTAsIDEsIDIyOSwgMywgMTAsIDEsIDI0MywgMTI0LCAKKyAgICAyLCAxMTMsIDE3MCwgNTEsIDEwLCAxLCAyNDIsIDEwMiwgMTAsIDEsIDI0MywgMTI0LCAyLCAxMzQsIDE3MCwgNDgsIDEwLCAKKyAgICAxLCAyMzMsIDEwNCwgMiwgNCwgMjE0LCAxMDUsIDEwLCAxLCAyMzMsIDEwNCwgMiwgNTksIDQ4LCAxMCwgMSwgMjMzLCAxMDQsIAorICAgIDIsIDEzNCwgMTcwLCA0OCwgMTAsIDEsIDIzMywgMTA0LCAyLCAxMzQsIDE3MCwgNTEsIDEwLCAxLCAyMjgsIDY0LCAyLCA1OSwgCisgICAgNTEsIDEwLCAxLCAyMjgsIDY0LCAyNDIsIDIxOSwgMTAsIDEsIDIyMiwgMjE1LCAxMCwgMSwgMjI4LCA2NCwgMiwgMjIyLCAKKyAgICAyMzQsIDEwLCAxLCAyMjgsIDY0LCAyLCAxMzQsIDE3MCwgNDgsIDEwLCAxLCAyNDEsIDIyMCwgMjQ3LCAxNDIsIDEwLCAxLCAKKyAgICAyMTcsIDI4LCAyLCA1OSwgNDgsIDEwLCAxLCAyNDEsIDIyMCwgMiwgNzksIDQ4LCAxMCwgMSwgMjQxLCAyMjAsIDI0MiwgCisgICAgMTcyLCAxMCwgMSwgMjQxLCAyMjAsIDI0MiwgMTczLCAyLCAyMDIsIDQ4LCAxMCwgMSwgMjE3LCA5LCAyMzEsIDE2NiwgMjQyLCAKKyAgICAxNzIsIDEwLCAxLCAyMTIsIDMxLCAyLCAyMjIsIDIzNCwgMTAsIDEsIDIzNCwgNzQsIDIyNiwgMjM1LCAxMCwgMSwgMjI2LCAKKyAgICAyMzUsIDEwLCAxLCA3MCwgMTAsIDEsIDIxMCwgMjEyLCAxMCwgMSwgMjM0LCA3NCwgMjEwLCAyMTIsIDEwLCAxLCAyMTIsIAorICAgIDMxLCAyLCAxMTMsIDE3MCwgNDgsIDEwLCAxLCAyMTMsIDI1NSwgMTAsIDEsIDI0NCwgMTY5LCAyMTEsIDQzLCAxMCwgMSwgCisgICAgNzksIDIsIDIxNywgNzgsIDEwLCAxLCA3OSwgMiwgNCwgMjE0LCAxMDUsIDEwLCAxLCAyMTIsIDMxLCAyLCA1OSwgNDgsIDEwLCAKKyAgICAxLCA3NSwgMTAsIDEsIDc5LCAyLCAxMzQsIDE3MCwgNTEsIDEwLCAxLCA3OSwgMjUyLCAxMzMsIDEwLCAxLCA3OSwgMjUyLCAKKyAgICAxMzQsIDIsIDIwMiwgNDgsIDEwLCAyNDMsIDIzMCwgMjE4LCAxMzAsIDEwLCAxLCAyNTQsIDI0NCwgMTAsIDQsIDEyNSwgMjcsIAorICAgIDIyMiwgMjgsIDIsIDIzMywgMTA0LCAyLCAxMTIsIDIzMSwgMTkzLCAxMCwgNCwgMTI1LCAyNywgMjI0LCA4MywgMiwgMjMzLCAKKyAgICAxMDQsIDIsIDExMiwgMjMxLCAxOTMsIDEwLCA0LCAxMjUsIDY2LCA2NSwgMTcsIDEwLCA0LCAxMjUsIDIzMywgMTA0LCAyNTQsIAorICAgIDE3MSwgMTAsIDQsIDEyNSwgMjM1LCAxMjQsIDEwLCA0LCAxMjUsIDEzNCwgMjQ3LCAxMTksIDEwLCA0LCAxMjUsIDIyMSwgCisgICAgMTY3LCAxMCwgMjQ1LCAxNDQsIDY0LCAyNTMsIDE2NywgMTAsIDIxOCwgMTUzLCA2NCwgMjIyLCAxMzksIDI0NSwgMTc2LCAKKyAgICAyNDEsIDE1NiwgMTAsIDQsIDEyNSwgMjIyLCAxODQsIDIxMCwgODYsIDEwLCA0LCAxMjUsIDIxNCwgMTU5LCAyMjMsIDExNiwgCisgICAgMjEwLCA4NiwgMTAsIDQsIDEyNSwgMjQ3LCAxMjAsIDI0MSwgMjM3LCA2NCwgMjM0LCAxMzAsIDEwLCA0LCAxMjUsIDY2LCAKKyAgICA1MywgMTcsIDEwLCA0LCAxMjEsIDIyMSwgMTY3LCAxMCwgNCwgMTI1LCAyMzEsIDIyOCwgMTAsIDQsIDIxMiwgMzAsIDEwLCAKKyAgICA0LCAyMTEsIDQzLCAxMCwgNCwgMTI1LCAyMTEsIDQzLCAxMCwgNCwgMTI1LCAyMjgsIDYzLCAxMCwgMjI1LCA0MiwgNjQsIAorICAgIDIyMiwgMTQsIDEwLCAyNDUsIDE1MywgMjUwLCAxNzYsIDEyMSwgMjE4LCAxMzAsIDEwLCAyNDUsIDE1MywgMjUwLCAxNzYsIAorICAgIDEyNSwgMjE4LCAxMzAsIDEwLCAyMjIsIDE4NCwgMTI1LCAyMTgsIDEzMSwgMiwgMjQ0LCAxMDUsIDI1MCwgMTc1LCAxMCwgNCwgCisgICAgMTIxLCAyMzEsIDc5LCAxMCwgMSwgMjQ4LCAxOTcsIDIsIDIzNSwgMTk0LCAyMTQsIDEwNSwgMTAsIDEsIDIyMywgOTcsIDIsIAorICAgIDIzNSwgMTk0LCAyMTQsIDEwNSwgMjQ1LCAyMywgMjU0LCAzOCwgMjEsIDIxMCwgODYsIDI0NSwgMjMsIDI1NCwgMzgsIDIxLCAKKyAgICAxMTAsIDI0NSwgMjMsIDI1NCwgMzgsIDIxLCAxMDUsIDI0NSwgMjMsIDI1NCwgMzgsIDIxLCAxNTgsIDI0NSwgMjMsIDI1NCwgCisgICAgMzgsIDIxLCAxNjEsIDI0NSwgMjMsIDI1NCwgMzgsIDIxLCAxODksIDI0NSwgMjMsIDI1NCwgMzgsIDIxLCAxOTQsIDI0NSwgCisgICAgMjMsIDI1NCwgMzgsIDIxLCAxOTgsIDI0NSwgMjMsIDI1NCwgMzgsIDIxLCAxOTUsIDI0NSwgMjMsIDI1NCwgMzgsIDIxLCAKKyAgICAyMDAsIDEwLCAxLCAyMjAsIDYxLCAyLCA1OSwgNTEsIDEwLCAxLCAyNDgsIDIxOCwgMiwgNTksIDUxLCAxMCwgMSwgMjQyLCAKKyAgICAyNDYsIDIsIDU5LCA1MSwgMTAsIDUsIDIxOSwgMTU5LCAyNTQsIDEyNywgMTAsIDUsIDIxOSwgMTU5LCAyMjQsIDIzNiwgCisgICAgMjMxLCA1OSwgMTAsIDEsIDI0MSwgMjIwLCAyLCAyMzUsIDE5NCwgMjE0LCAxMDUsIDE4MiwgMjQ1LCAxNDQsIDY0LCAyMjYsIAorICAgIDE1LCAxODIsIDIxOCwgMjAsIDI0MywgMjMwLCAyMTgsIDEzMCwgMTgyLCAyMTgsIDY4LCAyNDMsIDIzMCwgMjE4LCAxMzAsIAorICAgIDE4MiwgMjE4LCAyMCwgMjQ5LCAyMjcsIDE4MiwgMjE4LCA2OCwgMjQ5LCAyMjcsIDE4MiwgMjAzLCAyNDksIDIyNywgMTgyLCAKKyAgICAyNDksIDIyOCwgMjE5LCAxMDcsIDIzMywgNDcsIDE4MiwgMjQ5LCAyMjgsIDIxOSwgMTA3LCAyMjIsIDI1MiwgMTgyLCAyMTgsIAorICAgIDIwLCAyNDksIDIyOCwgMjE5LCAxMDcsIDIzMywgNDcsIDE4MiwgMjE4LCA2OCwgMjQ5LCAyMjgsIDIxOSwgMTA3LCAyMjIsIAorICAgIDI1MiwgMTgyLCAyNDksIDE4MSwgMTgyLCAyNDIsIDIsIDIyNiwgMjUxLCAxODIsIDI0MiwgMiwgMjMxLCAzNywgMTgyLCAKKyAgICAyNDIsIDIsIDI1MywgMjE5LCAxODIsIDI1NSwgMjIsIDc4LCAxODIsIDEsIDI1NCwgMTc1LCAxODIsIDEsIDIxOCwgMjQsIAorICAgIDI1NCwgMTc1LCAxODIsIDEsIDI1MiwgMjYsIDE4MiwgMSwgMjQzLCAxMTQsIDE4MiwgMSwgMjQzLCAxMTUsIDI0MywgOTIsIAorICAgIDE4MiwgMSwgMjQ4LCAxOTMsIDE4MiwgMSwgMjQ3LCAxMjAsIDI0OCwgMTk0LCAyMjIsIDIzMCwgMTgyLCAxLCAyNDEsIDIzOSwgCisgICAgMTgyLCAxLCAyMTIsIDMwLCAxODIsIDEsIDIxMCwgMTA4LCAxODIsIDEsIDI0MSwgMTk2LCAxODIsIDEsIDIxNiwgMjI3LCAKKyAgICAxODIsIDEsIDIxNiwgMjI4LCAyNDMsIDkyLCAxODIsIDEsIDIxMCwgMTk5LCAxODIsIDEsIDIxMCwgMjAwLCAyNDEsIDIzOSwgCisgICAgMTgyLCAxLCAyMzQsIDIyNiwgMTgyLCAxLCAyMzMsIDEwMiwgMTgyLCAxLCAyMzAsIDE5MSwgMTgyLCAxLCAyMjcsIDE5NSwgCisgICAgMTgyLCAxLCAyMjAsIDE0NCwgMTgyLCAxLCA0MCwgMjIwLCAxNDQsIDE4MiwgMSwgNzUsIDE4MiwgMSwgMjI1LCAyMjIsIAorICAgIDE4MiwgMSwgMjIzLCA1MCwgMjI1LCAyMjIsIDE4MiwgMSwgMjIyLCAyNSwgMTgyLCAxLCAyMjQsIDc2LCAxODIsIDEsIDIyMiwgCisgICAgMjMwLCAxODIsIDEsIDIyMCwgMjEsIDE4MiwgMSwgMjE3LCAzNywgMTgyLCAxLCAyMjUsIDE3MCwgMjUyLCAxMywgMTgyLCAxLCAKKyAgICAyMjUsIDE3MCwgMjQyLCAyNDMsIDE4MiwgMSwgMjI1LCAxNzAsIDI0OCwgMjEsIDE4MiwgMjI0LCAxNTIsIDQ4LCAxODIsIAorICAgIDIyNCwgMTUyLCA1MSwgMTgyLCAyMjQsIDE1MiwgMjQ2LCAxMTgsIDE4MiwgMjEwLCAxNywgNDgsIDE4MiwgMjEwLCAxNywgCisgICAgNTEsIDE4MiwgMjEwLCAxNywgMjQ2LCAxMTgsIDE4MiwgMjIzLCAxMzIsIDQ4LCAxODIsIDIyMywgMTMyLCA1MSwgMTgyLCAKKyAgICAyNDYsIDExOSwgMjEwLCAyNCwgMjQxLCA0NSwgMTgyLCAyNDYsIDExOSwgMjEwLCAyNCwgMjU0LCAxMDYsIDE4MiwgMjQxLCAKKyAgICAyNDIsIDQ4LCAxODIsIDI0MSwgMjQyLCA1MSwgMTgyLCAyNDEsIDI0MSwgMjQ2LCAxMTgsIDE4MiwgMjQ1LCA4MCwgNDgsIAorICAgIDE4MiwgMjQ1LCA4MCwgNTEsIDE4MiwgMjIyLCAxMDgsIDE4MiwgMjQ0LCAxMzcsIDI0NywgMTIxLCAxODIsIDIyMywgMjQ5LCAKKyAgICAxODIsIDIyMiwgMTM1LCAxODIsIDExMywgNjcsIDE3MCwgNDgsIDE4MiwgMTEzLCA2NywgMTcwLCA1MSwgMTgyLCAxMzQsIAorICAgIDE3MCwgNDgsIDE4MiwgMTM0LCAxNzAsIDUxLCAxODIsIDIyNiwgMjQ5LCAyMzIsIDIxNSwgNDgsIDE4MiwgMjI2LCAyNDksIAorICAgIDIzMiwgMjE1LCA1MSwgMTgyLCAyMzAsIDU3LCAxODIsIDI1MiwgMTMyLCAxODIsIDEsIDIxOSwgNTAsIDIxMCwgODAsIDE4MiwgCisgICAgMSwgMjE5LCA1MCwgMjM0LCAxMjMsIDE4MiwgMSwgMjE5LCA1MCwgMjQ0LCAxNTUsIDEwLCAxLCAyNTIsIDU2LCAyLCAxMzQsIAorICAgIDE3MCwgMjQwLCAyNTEsIDUxLCAxMCwgMSwgMjUyLCA1NiwgMiwgNTksIDI1MiwgNDQsIDIyLCAxMzQsIDE3MCwgNDgsIDEwLCAKKyAgICAxLCAyNTIsIDU2LCAyLCAxMzQsIDE3MCwgMjI1LCA4LCAyMTQsIDE1MywgNTEsIDEwLCAxLCAyNTIsIDU2LCAyLCAxMzQsIAorICAgIDE3MCwgMjI1LCA4LCAyMTQsIDE1MywgMjUyLCA0NCwgMjIsIDExMywgMTcwLCA0OCwgMTAsIDEsIDI1MiwgNTYsIDIsIDExMywgCisgICAgMTcwLCAyNTIsIDQ0LCAyMiwgNTksIDQ4LCAxMCwgMSwgMjUyLCA1NiwgMiwgMjM1LCAxOTQsIDQsIDIxNCwgMTA2LCA1MSwgCisgICAgMTAsIDEsIDI1MiwgNTYsIDIsIDQsIDIxNCwgMTA1LCAxMCwgMSwgMTIyLCAyLCAxMTMsIDE3MCwgNDgsIDEwLCAxLCAxMjIsIAorICAgIDIsIDEzNCwgMTcwLCAyMjUsIDgsIDIxNCwgMTUzLCA1MSwgMTAsIDEsIDI0OCwgMTk3LCAyLCAxMTMsIDE3MCwgMjEzLCAKKyAgICAxODksIDI1MiwgNDQsIDIyLCA0LCAyMTcsIDgxLCAxMCwgMSwgMjQ4LCAxOTcsIDIsIDIzNSwgMTk0LCA0LCAyMTQsIDEwNiwgCisgICAgNTEsIDEwLCAxLCAyMjMsIDk3LCAyLCA5MSwgMTAsIDEsIDIyMSwgMTY4LCAyLCAyNDQsIDEyLCAxNzAsIDQ4LCAxMCwgMSwgCisgICAgMjU0LCAxOTgsIDIsIDExMywgMTcwLCA0OCwgMTAsIDEsIDI1NCwgMTk4LCAyLCAxMzQsIDE3MCwgMjI1LCA4LCAyNDYsIAorICAgIDEwNSwgNDgsIDEwLCAxLCAyNTQsIDE5OCwgMiwgMTEzLCAxNzAsIDIxMywgMTg5LCA0OCwgMTAsIDEsIDI0NCwgMTQ0LCAyLCAKKyAgICAxMTMsIDE3MCwgNTEsIDEwLCAxLCAyNDQsIDE0NCwgMiwgMTM0LCAxNzAsIDIyNSwgOCwgMjE0LCAxNTMsIDUxLCAxMCwgMSwgCisgICAgMjM0LCAxNzYsIDIsIDU5LCA0OCwgMTAsIDEsIDIzNCwgMTc2LCAyLCAxMzQsIDE3MCwgNDgsIDEwLCAxLCAyMzQsIDE3NiwgCisgICAgMiwgMTM0LCAxNzAsIDIyNSwgOCwgMjE0LCAxNTMsIDUxLCAxMCwgMSwgNjYsIDIsIDU5LCA0OCwgMTAsIDEsIDY2LCAyLCAKKyAgICA1OSwgNTEsIDEwLCAxLCAyMjgsIDY0LCAyLCAxMTMsIDE3MCwgNTEsIDEwLCAxLCAyMjgsIDY0LCAyLCA0LCAyMTcsIDgxLCAKKyAgICAxMCwgMSwgMjI4LCA2NCwgMiwgNCwgMjE0LCAxMDUsIDEwLCAxLCAyMzMsIDEwNCwgMiwgMTMwLCAxMCwgMSwgMjIzLCA5NywgCisgICAgMiwgMTEzLCAxNzAsIDIxMywgMTg5LCA0OCwgMTAsIDEsIDIyMywgOTcsIDIsIDIwMiwgNDgsIDEwLCAxLCAyMjEsIDE2OCwgCisgICAgMiwgMTEzLCAxNzAsIDIxMywgMTg5LCA0OCwgMTAsIDEsIDEyMiwgMiwgNCwgMTAsIDEsIDIxNywgODIsIDUxLCAxMCwgMSwgCisgICAgMTIyLCAyLCA0LCAxMCwgMSwgMjE3LCA4MiwgMjIsIDExMywgMjQ3LCAxMTksIDEwLCAxLCAyMjEsIDE2OCwgMiwgNCwgMTAsIAorICAgIDEsIDIxNywgODIsIDIyLCAxMTMsIDI0NywgMTE5LCAxMCwgMSwgMjIzLCA5NywgMiwgNCwgMTAsIDEsIDIxNywgODIsIDIyLCAKKyAgICAxMTMsIDI0NywgMTE5LCAxMCwgMSwgMTIyLCAyLCA0LCAxMCwgMSwgMjE3LCA4MiwgNDgsIDEwLCAxLCAxMTIsIDIsIDI0NSwgCisgICAgMjMsIDI1NCwgMzgsIDIxLCAxMTMsIDQ4LCAxMCwgMSwgMTEyLCAyLCAyNDUsIDIzLCAyNTQsIDM4LCAyMSwgMTM0LCA0OCwgCisgICAgMTAsIDEsIDI0NCwgMTY5LCA3OSwgMiwgMjQ1LCAyMywgMjU0LCAzOCwgMjEsIDExMywgNDgsIDEwLCAxLCAyNDQsIDE2OSwgCisgICAgNzksIDIsIDI0NSwgMjMsIDI1NCwgMzgsIDIxLCAxMzQsIDQ4LCAxMCwgMSwgMjQ0LCAxNjksIDc5LCAyLCAyNDUsIDIzLCAKKyAgICAyNTQsIDM4LCAyMSwgMjQ0LCAxMiwgNTEsIDEwLCAxLCAyMTIsIDMxLCAyLCAyNDUsIDIzLCAyNTQsIDM4LCAyMSwgMTEzLCAKKyAgICA0OCwgMTAsIDEsIDIxMiwgMzEsIDIsIDI0NSwgMjMsIDI1NCwgMzgsIDIxLCAxMzQsIDQ4LCAxMCwgMSwgNzksIDI1MiwgCisgICAgMTM0LCAyLCAyNDUsIDIzLCAyNTQsIDM4LCAyMSwgMTEzLCA0OCwgMTAsIDEsIDc5LCAyNTIsIDEzNCwgMiwgMjQ1LCAyMywgCisgICAgMjU0LCAzOCwgMjEsIDEzNCwgNDgsIDEwLCAxLCAxMjIsIDIsIDI0NSwgMjMsIDI1NCwgMzgsIDIxLCAyNDQsIDEyLCA1MSwgCisgICAgMTAsIDEsIDIyMSwgMTY4LCAyLCAyNDUsIDIzLCAyNTQsIDM4LCAyMSwgMjQ0LCAxMiwgNDgsIDEwLCAxLCAyMjEsIDE2OCwgCisgICAgMiwgMjM1LCAxOTQsIDIxNCwgMTA1LCAxMCwgMSwgMjM0LCAyNTIsIDIsIDExMywgMTcwLCA0OCwgMjE2LCAyMDYsIDEsIAorICAgIDI0MiwgNDcsIDIxNiwgMjA2LCAxLCAyMjAsIDY5LCAyMTYsIDIwNiwgMSwgMjI4LCA2MiwgMjE2LCAyMDYsIDEsIDIyMywgCisgICAgMTg1LCAyMTYsIDIwNiwgMSwgMjUyLCAxOTAsIDIxNiwgMjA2LCAxLCAyMzIsIDI1MiwgMjE2LCAyMDYsIDEsIDIzNSwgOSwgCisgICAgMjE2LCAyMDYsIDEsIDI1NCwgMTYwLCAyMTYsIDIwNiwgMSwgMjE0LCAyNSwgMjE2LCAyMDYsIDEsIDIzMSwgNzgsIDIxNiwgCisgICAgMjA2LCAxLCAyNDQsIDE5NSwgMjE2LCAyMDYsIDEsIDI0OCwgMjQsIDIxNiwgMjA2LCAxLCAyMTYsIDIwOCwgMjE2LCAyMDYsIAorICAgIDEsIDIzMywgMTMyLCAyMTYsIDIwNiwgMSwgMjQzLCAxMzIsIDIxNiwgMjA2LCAxLCAyNDIsIDE3OCwgMjE2LCAyMDYsIDEsIAorICAgIDIyMSwgMTY2LCAyMTYsIDIwNiwgMSwgMjQ4LCAxNDksIDIxNiwgMjA2LCAxLCAyMTAsIDEwMCwgMjE2LCAyMDYsIDEsIDIxNywgCisgICAgMzgsIDIxNiwgMjA2LCAxLCAyMTEsIDEwMywgMjE2LCAyMDYsIDEsIDIyNSwgMjM0LCAyMTYsIDIwNiwgMSwgMjM1LCAxMjksIAorICAgIDIxNiwgMjA2LCAxLCAyNTAsIDEzNSwgMjE2LCAyMDYsIDEsIDIxNSwgMTU2LCAyMTYsIDIwNiwgMSwgMjQxLCAxODksIDIxNiwgCisgICAgMjA2LCAxLCAyMzQsIDEzMiwgMjE2LCAyMDYsIDEsIDIxNiwgMjA3LCAyMTYsIDIwNiwgMSwgMjEwLCAxMTUsIDIxNiwgMjA2LCAKKyAgICAxLCAyMjAsIDU5LCAyMTYsIDIwNiwgMSwgMjIyLCAzMSwgMjE2LCAyMDYsIDEsIDI0OCwgMjIwLCAyMTYsIDIwNiwgMSwgCisgICAgMTExLCAyMTYsIDIwNiwgMSwgMjEwLCAyMywgMjE2LCAyMDYsIDEsIDI1NCwgMTk0LCAyMTYsIDIwNiwgMSwgMjQyLCAyNDQsIAorICAgIDIxNiwgMjA2LCAxLCAyMjQsIDg2LCAyMTYsIDIwNiwgMSwgMjEyLCA2MywgMjE2LCAyMDYsIDI1NSwgMjMsIDIxNiwgMjA2LCAKKyAgICAyNTUsIDM5LCAyMTYsIDIwNiwgMjQwLCAxMTUsIDIxNiwgMjA2LCAyNDUsIDIwOSwgMjE2LCAyMDYsIDIxNCwgMjIyLCAyMTYsIAorICAgIDIwNiwgMjI2LCAxODMsIDIxNiwgMjA2LCAyNDUsIDIxNywgMjE2LCAyMDYsIDI0NSwgMTcsIDIxNiwgMjA2LCAyMjYsIDI0OCwgCisgICAgMjE2LCAyMDYsIDIyNywgMCwgMjE2LCAyMDYsIDIxOCwgNDYsIDIxNiwgMjA2LCAxLCAyMjksIDIyNiwgMjI4LCAxMzgsIDIxLCAKKyAgICAyMTAsIDg2LCAyMjgsIDEzOCwgMjEsIDExMCwgMjI4LCAxMzgsIDIxLCAxMDUsIDIyOCwgMTM4LCAyMSwgMTU4LCAyMjgsIAorICAgIDEzOCwgMjEsIDE2MSwgMjI4LCAxMzgsIDIxLCAxODksIDIyOCwgMTM4LCAyMSwgMTk0LCAyMjgsIDEzOCwgMjEsIDE5OCwgCisgICAgMjI4LCAxMzgsIDIxLCAxOTUsIDIyOCwgMTM4LCAyMSwgMjAwLCAyMjgsIDEzOCwgMSwgNjEsIDIyOCwgMTM4LCAxLCAyNDUsIAorICAgIDIxMCwgMjI4LCAxMzgsIDEsIDczLCAyMjgsIDEzOCwgMSwgNzUsIDIyOCwgMTM4LCAxLCA3MCwgMjI4LCAxMzgsIDEsIDIyNiwgCisgICAgMTg0LCAyMjgsIDEzOCwgMSwgNzYsIDIyOCwgMTM4LCAxLCAyNDgsIDIxMCwgMjI4LCAxMzgsIDEsIDIzMCwgMjYsIDIyOCwgCisgICAgMTM4LCAxLCAyNTIsIDE5MiwgMjI4LCAxMzgsIDEsIDE5MCwgMjI4LCAxMzgsIDEsIDIxNywgMTA2LCAyMjgsIDEzOCwgMSwgCisgICAgMjM1LCAxNDIsIDIyOCwgMTM4LCAxLCAyNTAsIDE1OCwgMjI4LCAxMzgsIDEsIDI0OCwgMjIyLCAyMjgsIDEzOCwgMSwgMjA1LCAKKyAgICAyMjgsIDEzOCwgMSwgMjIyLCAxODAsIDIyOCwgMTM4LCAxLCAyMDYsIDIyOCwgMTM4LCAxLCAyNDMsIDgwLCAyMjgsIDEzOCwgCisgICAgMSwgMjQ0LCAxOTcsIDIyOCwgMTM4LCAxLCAxNzYsIDIyOCwgMTM4LCAxLCAyMzMsIDEzNiwgMjI4LCAxMzgsIDEsIDIyOSwgCisgICAgMjMwLCAyMTEsIDIyMywgMjI4LCAxMzgsIDEsIDE4NSwgMjI4LCAxMzgsIDEsIDIyNywgMTY2LCAyMjgsIDEzOCwgMSwgMTk3LCAKKyAgICAyMjgsIDEzOCwgMSwgMTYyLCAyMjgsIDEzOCwgMSwgMjEyLCA2NSwgMjI4LCAxMzgsIDEsIDE5MSwgMjI4LCAxMzgsIDEsIAorICAgIDIyNywgMTY3LCAyMTEsIDIyMywgMjI4LCAxMzgsIDEsIDIzNSwgNjIsIDIzNSwgMTQyLCAyMjgsIDEzOCwgMSwgMjM1LCA2MiwgCisgICAgMjUwLCAxNTgsIDIyOCwgMTM4LCAxLCAyMzUsIDYyLCAyMDUsIDIyOCwgMTM4LCAzOCwgMjE5LCAyNTIsIDEyNSwgMjE2LCAKKyAgICAzMSwgMjI4LCAxMzgsIDM4LCAyMTksIDI1MiwgMTIxLCAyMTYsIDMxLCAyMjgsIDEzOCwgMzgsIDIxOSwgMjUyLCAyMjIsIAorICAgIDIyOSwgMjE2LCAzMSwgMjI4LCAxMzgsIDM4LCAxOTksIDI0OCwgMzksIDIxNiwgMzEsIDIyOCwgMTM4LCAzOCwgMTk5LCAKKyAgICAxMjUsIDIxNiwgMzEsIDIyOCwgMTM4LCAzOCwgMTk5LCAxMjEsIDIxNiwgMzEsIDIyOCwgMTM4LCAzOCwgMTk5LCAyMjIsIAorICAgIDIyOSwgMjE2LCAzMSwgMjI4LCAxMzgsIDM4LCAyMjksIDE5NCwgNzgsIDIyOCwgMTM4LCAzOCwgNTIsIDU5LCA0OCwgMjI4LCAKKyAgICAxMzgsIDEyNSwgMTM4LCAyNTQsIDU4LCAyMjgsIDEzOCwgMTIxLCAxMzgsIDI1NCwgNTgsIDIyOCwgMTM4LCAxNiwgMjI2LCAKKyAgICAxODUsIDI0OCwgNTEsIDIyOCwgMTM4LCAxNiwgMjQzLCA3OSwgMjI4LCAxMzgsIDI0OSwgMjIwLCAyMjgsIDEzOCwgMjQ1LCAKKyAgICAzMiwgNzgsIDIyOCwgMTM4LCAyMzMsIDEwOSwgMjIxLCAyNTMsIDEsIDI1NCwgMTc3LCAyMjEsIDI1MywgMSwgMjUxLCAyMjksIAorICAgIDIyMSwgMjUzLCAxLCAyNDMsIDExMywgMjIxLCAyNTMsIDEsIDI0OCwgMTk1LCAyMjEsIDI1MywgMSwgMjM1LCAxNTMsIDIyMSwgCisgICAgMjUzLCAxLCAyNTIsIDE5MCwgMjIxLCAyNTMsIDEsIDIxMCwgODksIDIyMSwgMjUzLCAxLCAyMzUsIDE2MSwgMjIxLCAyNTMsIAorICAgIDEsIDIxNiwgNjgsIDIyMSwgMjUzLCAxLCAyMTAsIDE4MiwgMjIxLCAyNTMsIDEsIDIzNSwgMTAsIDIyMSwgMjUzLCAxLCAKKyAgICAyMzMsIDEyOSwgMjIxLCAyNTMsIDEsIDIzMCwgMTkxLCAyMjEsIDI1MywgMSwgMjI3LCAxOTUsIDIyMSwgMjUzLCAxLCAyMTksIAorICAgIDE1NywgMjIxLCAyNTMsIDEsIDIzNiwgMCwgMjIxLCAyNTMsIDEsIDI0NCwgMTIyLCAyMjEsIDI1MywgMSwgMjE1LCAxODIsIAorICAgIDIyMSwgMjUzLCAxLCAyMjQsIDExLCAyMjEsIDI1MywgMSwgMjIyLCAyMzAsIDIyMSwgMjUzLCAxLCAyMjAsIDg2LCAyMjEsIAorICAgIDI1MywgMSwgMjE3LCAxMDEsIDIyMSwgMjUzLCAxNjQsIDIzNiwgMCwgMjIxLCAyNTMsIDE2NCwgMjM1LCAyNTUsIDIyMSwgCisgICAgMjUzLCAxNjQsIDIyNiwgMjQ0LCAyMjEsIDI1MywgMTY0LCAyNDgsIDIwOCwgMjIxLCAyNTMsIDU4LCAxLCAyNDUsIDEwNiwgCisgICAgMjEwLCAxODIsIDIyMSwgMjUzLCAxNjQsIDI0NSwgMTA2LCAyMTAsIDE4MiwgMjIxLCAyNTMsIDI1LCA1LCAxOTksIDc1LCAKKyAgICAyMjEsIDI1MywgMjUsIDUsIDc1LCAyMjEsIDI1MywgMjUsIDUsIDIyNiwgMTE5LCAyNTUsIDc0LCAyMjEsIDI1MywgMjUsIDUsIAorICAgIDE5OSwgMjU1LCA3NCwgMjIxLCAyNTMsIDI1LCA1LCAyNTUsIDc0LCAyMjEsIDI1MywgMjUsIDUsIDIyNiwgMTE5LCA2MSwgCisgICAgMjIxLCAyNTMsIDI1LCA1LCAxOTksIDYxLCAyMjEsIDI1MywgMjUsIDUsIDYxLCAyMjEsIDI1MywgNTgsIDEsIDIxOSwgMjUyLCAKKyAgICA2MSwgMjIxLCAyNTMsIDI1LCA1LCAyMTksIDI1MiwgNjEsIDIyMSwgMjUzLCAyNSwgNSwgMTk5LCA3MCwgMjIxLCAyNTMsIAorICAgIDI1LCA1LCA3MCwgMjIxLCAyNTMsIDU4LCAxLCA3MywgMjIxLCAyNTMsIDI1LCA1LCAxOTksIDczLCAyMjEsIDI1MywgMjUsIAorICAgIDUsIDczLCAyMjEsIDI1MywgMjUsIDUsIDc2LCAyMjEsIDI1MywgMjUsIDUsIDIxOCwgNDYsIDIyMSwgMjUzLCAxNjQsIDIyOSwgCisgICAgOTMsIDIyMSwgMjUzLCAyMjQsIDE0MiwgMjI5LCA5MywgMjIxLCAyNTMsIDIyNCwgMTQyLCAyNTQsIDIxOSwgMjIxLCAyNTMsIAorICAgIDIyNCwgMTQyLCAyNTQsIDExNSwgMjIxLCAyNTMsIDIyNCwgMTQyLCAyNTIsIDExNSwgMjIxLCAyNTMsIDIyNCwgMTQyLCAKKyAgICAyNTMsIDIwMiwgMjIxLCAyNTMsIDIyNCwgMTQyLCAyMjAsIDksIDIyMSwgMjUzLCAyNTUsIDIyLCA3OCwgMjIxLCAyNTMsIAorICAgIDIyNCwgMTQyLCAyMzEsIDY5LCAyMjQsIDQ2LCAyMjEsIDI1MywgMjI0LCAxNDIsIDIxMCwgMzEsIDIyMSwgMjUzLCAyMjQsIAorICAgIDE0MiwgMjI0LCA0NiwgMjIxLCAyNTMsIDIyNCwgMTQyLCAyMTAsIDExNCwgMjIxLCAyNTMsIDIyNCwgMTQyLCAyMTUsIDkwLCAKKyAgICAyMjEsIDI1MywgMjI0LCAxNDIsIDI1NCwgMTAsIDIyMSwgMjUzLCAyMjQsIDE0MiwgMjE5LCA1NCwgMjMxLCAxNDYsIDIyMSwgCisgICAgMjUzLCAyMjQsIDE0MiwgMjU0LCAxMDEsIDIzMSwgMTgzLCAxLCAyNDIsIDI1LCAyMzEsIDE4MywgMSwgMjU1LCAyNiwgMjMxLCAKKyAgICAxODMsIDEsIDI1NCwgMjE3LCAyMzEsIDE4MywgMSwgMjU1LCAwLCAyMzEsIDE4MywgMSwgMjU0LCAyMTAsIDIzMSwgMTgzLCAKKyAgICAxLCAyMTQsIDEyNCwgMjMxLCAxODMsIDEsIDI1MywgMTYxLCAyMzEsIDE4MywgMSwgMjM1LCAxNjEsIDIzMSwgMTgzLCAxLCAKKyAgICAyNTMsIDE5OSwgMjMxLCAxODMsIDEsIDI1NCwgMTgyLCAyMzEsIDE4MywgMSwgMjU0LCAxODcsIDIzMSwgMTgzLCAxLCAyNTQsIAorICAgIDE3OSwgMjMxLCAxODMsIDEsIDI1NCwgMTM3LCAyMzEsIDE4MywgMSwgMjU0LCAxMjQsIDIzMSwgMTgzLCAxLCAyNTMsIDIzOCwgCisgICAgMjMxLCAxODMsIDEsIDIzNiwgMCwgMjMxLCAxODMsIDEsIDI1NCwgNzMsIDIzMSwgMTgzLCAxLCAyNTMsIDIwOSwgMjMxLCAKKyAgICAxODMsIDEsIDI1NCwgNDYsIDIzMSwgMTgzLCAxLCAyNTQsIDQyLCAyMzEsIDE4MywgMSwgMjUzLCAyMzIsIDIzMSwgMTgzLCAKKyAgICAxLCAyNTMsIDIwNywgMjMxLCAxODMsIDEsIDI0NiwgNTYsIDIzMSwgMTgzLCAxLCAyMzUsIDMsIDIzMSwgMTgzLCAxLCAyNTQsIAorICAgIDE5NywgMjMxLCAxODMsIDI1NCwgMjIzLCA3OCwgMjMxLCAxODMsIDIxMywgMTM2LCA3OCwgMjMxLCAxODMsIDI0MywgNTQsIAorICAgIDc4LCAyMzEsIDE4MywgMjI0LCAxNDEsIDEwLCAxLCAyNTIsIDU2LCAyLCA0LCAyMTQsIDEwNiwgNTEsIDEwLCAxLCAxNTEsIAorICAgIDIsIDExMywgMTcwLCA0OCwgMTAsIDEsIDIxNywgODIsIDIsIDExMywgMTcwLCA0OCwgMTAsIDEsIDI0NCwgMTQ0LCAyLCA1OSwgCisgICAgMjUyLCA0NCwgMjIsIDEzNCwgMTcwLCA0OCwgMTAsIDEsIDIyNCwgODMsIDIsIDU5LCA1MSwgMTAsIDEsIDIzMywgMTA0LCAyLCAKKyAgICA1MiwgMTMwLCAxMCwgMSwgNjYsIDIsIDEzNCwgMTcwLCA0OCwgMTAsIDEsIDc5LCAyLCAxMTMsIDE3MCwgMjUyLCA0NCwgMjIsIAorICAgIDIwMiwgNDgsIDEwLCAxLCA3OSwgMiwgMTEzLCAxNzAsIDI1MiwgNDQsIDIyLCA1OSwgNDgsIDEwLCAxLCAyMjMsIDk3LCAyLCAKKyAgICAyMzIsIDEyNCwgMTAsIDEsIDIxMiwgMzEsIDIsIDU5LCAyMTEsIDIzMSwgMTAsIDEsIDIyMiwgMjAyLCAyMTEsIDQzLCAxMCwgCisgICAgMjQ5LCAxMDAsIDI0NCwgMTY2LCAxMCwgMjQ5LCAxMDAsIDI0OCwgMTg1LCAxMCwgMjQ5LCAxMDAsIDIzNCwgMjA2LCAxMCwgCisgICAgMjQ5LCAxMDAsIDI0NCwgMTY0LCAxMCwgMjQ5LCAxMDAsIDI0OCwgMTgzLCAxMCwgMjQ5LCAxMDAsIDIzNCwgMjA0LCAxMCwgCisgICAgMTM4LCAxMjMsIDU5LCA0OCwgMTAsIDEzOCwgMTEzLCAxNzAsIDQ4LCAxMCwgMTM4LCAyMzIsIDEyNSwgNDgsIDEwLCAxMzgsIAorICAgIDEyMywgNTksIDUxLCAxMCwgMTM4LCAxMTMsIDE3MCwgNTEsIDEwLCAxMzgsIDIzMiwgMTI1LCA1MSwgMTAsIDIwNCwgMjQ0LCAKKyAgICAxNjQsIDEwLCAyMDQsIDI0OCwgMTgzLCAxMCwgMjA0LCAyMzQsIDIwNCwgMTAsIDQsIDEyNSwgMjEyLCAzMCwgMTAsIDI0NCwgCisgICAgMTY3LCAyLCAyMjIsIDIzNCwgMTAsIDI0NCwgMTY3LCAyLCA1OSwgNDgsIDEwLCAyMzQsIDIwNywgMiwgNTksIDUxLCAxMCwgCisgICAgNDMsIDI1MywgMjUxLCA0OCwgMTAsIDQ0LCAyNTMsIDI1MSwgNDgsIDEwLCA0MywgMjUzLCAyNTEsIDUxLCAxMCwgNDQsIAorICAgIDI1MywgMjUxLCA1MSwgMTAsIDUyLCA0NCwgMjUzLCAyNTEsIDQ4LCAxMCwgNTIsIDQ0LCAyNTMsIDI1MSwgNzcsIDIsIDI0NywgCisgICAgMTIxLCAxMCwgNDQsIDI1MywgMjUxLCA3NywgMiwgMjQ3LCAxMjEsIDEwLCAyNDgsIDE4NiwgMiwgMjQ3LCAxMjEsIDg0LCA1LCAKKyAgICAyMzUsIDE5NCwgMjUxLCAwLCA4NCwgNSwgMjUxLCAwLCA4NCwgNSwgMjU0LCA3NiwgODQsIDUsIDIxMywgMTQ3LCA4NCwgMSwgCisgICAgMjE5LCAyNTIsIDYxLCA4NCwgMSwgNjEsIDg0LCAxLCAyNTUsIDc0LCA4NCwgMSwgNzMsIDg0LCAxLCAyMzYsIDM0LCA4NCwgCisgICAgMSwgNzAsIDg0LCAxLCAyMTQsIDExOCwgODQsIDEsIDE0OSwgMTUzLCA4NCwgMSwgMTQ5LCAxNTYsIDg0LCAxLCAyNTEsIDMsIAorICAgIDc1LCA4NCwgMSwgMjE5LCAyNTIsIDc1LCA4NCwgMSwgNzUsIDg0LCAxLCAyNTQsIDIwMiwgODQsIDEsIDI1MSwgMywgNzYsIAorICAgIDg0LCAxLCAyMTksIDI1MiwgNzYsIDg0LCAxLCA3NiwgODQsIDEsIDI1MywgMTkzLCA4NCwgMSwgMTc2LCA4NCwgMSwgMjM0LCAKKyAgICAxMzMsIDg0LCAxLCAyNDMsIDEzNiwgODQsIDEsIDI0MiwgMjUwLCA4NCwgMSwgMjI5LCA3OCwgODQsIDEsIDI1MSwgMzQsIAorICAgIDg0LCAxLCAyNTAsIDE1OCwgODQsIDEsIDIzNSwgMTQyLCA4NCwgMSwgMjM1LCAxMTUsIDg0LCAxLCAyMjcsIDE2NiwgODQsIAorICAgIDEsIDIxNSwgMTU3LCA4NCwgMSwgMjE1LCAxNDUsIDg0LCAxLCAyNDgsIDEzNiwgODQsIDEsIDI0OCwgMTIwLCA4NCwgMSwgCisgICAgMjI4LCAxMTEsIDg0LCAxLCAyMTcsIDEwNiwgODQsIDEsIDIxNiwgMjA5LCA4NCwgMSwgMjQ4LCAyMjIsIDg0LCAxLCAyNDgsIAorICAgIDI2LCA4NCwgMSwgMTk3LCA4NCwgMSwgMjI4LCA5MywgODQsIDEsIDE5MCwgODQsIDEsIDIyNSwgMTQ4LCA4NCwgMSwgMjUyLCAKKyAgICAxOTIsIDg0LCAxLCAyNTIsIDE5LCA4NCwgMSwgMTg1LCA4NCwgMSwgMTkxLCA4NCwgMSwgMjA1LCA4NCwgMSwgMjIyLCAxODAsIAorICAgIDg0LCAxLCAyMzMsIDEzNiwgODQsIDEsIDIzMiwgMTg1LCA4NCwgMSwgMjMyLCAxNzYsIDg0LCAxLCAyMTQsIDI3LCA4NCwgMSwgCisgICAgMjIwLCAxMDMsIDg0LCAxLCAyMTgsIDIyNCwgODQsIDEsIDIwNiwgODQsIDEsIDE2MiwgODQsIDI1LCA1LCAyMjYsIDIzNSwgCisgICAgODQsIDI1LCA1LCAyMjYsIDE4MiwgODQsIDUsIDIyNywgMjA2LCA4NCwgNSwgMjUzLCAxNzYsIDg0LCAyNSwgNSwgMjU1LCAKKyAgICA3NCwgODQsIDI1LCA1LCA3MywgODQsIDI1LCA1LCAyMzYsIDM0LCA4NCwgMjUsIDUsIDcwLCA4NCwgMjUsIDUsIDIxNCwgCisgICAgMTE4LCA4NCwgMjUsIDUsIDE0OSwgMTUzLCA4NCwgMjUsIDUsIDE0OSwgMjIyLCAxODEsIDg0LCAyNSwgNSwgMjUxLCAzLCAKKyAgICA3NSwgODQsIDI1LCA1LCAyMTksIDI1MiwgNzUsIDg0LCAyNSwgNSwgNzUsIDg0LCAyNSwgNSwgMjU0LCAyMDIsIDg0LCAyNSwgCisgICAgNSwgMjUxLCAzLCA3NiwgODQsIDI1LCA1LCAyMTksIDI1MiwgNzYsIDg0LCAyNSwgNSwgNzYsIDg0LCAyNSwgNSwgMjUzLCAKKyAgICAxOTMsIDg0LCA1LCAyMTMsIDE1MiwgODQsIDI1LCA1LCAyMjQsIDE4NiwgNzUsIDg0LCAyNSwgNSwgMjUzLCAxNzIsIDg0LCAKKyAgICAyMjYsIDIwNSwgODQsIDIxOCwgMTEyLCA1LCAyMTQsIDIxNiwgODQsIDIxOCwgMTEyLCA1LCAyNTQsIDc4LCA4NCwgMjQyLCAKKyAgICAxMzgsIDI1NSwgMTUsIDg0LCAyNTUsIDQsIDI1NSwgMTUsIDg0LCAyNSwgNSwgMjUxLCAzLCAxOTksIDc1LCA4NCwgMjUsIDUsIAorICAgIDIxNCwgMjE0LCA4NCwgMjUsIDUsIDIxNCwgMTE3LCA4NCwgMSwgMjI0LCA4OSwgODQsIDEsIDIzNCwgMTE2LCA4NCwgMSwgCisgICAgMjQyLCAyMjcsIDg0LCAxLCAyMTAsIDExNiwgODQsIDEsIDI0OCwgMTI1LCA4NCwgMSwgMjIzLCA0MCwgODQsIDEsIDI0NCwgCisgICAgMTk3LCA4NCwgMSwgMjEwLCAxNjgsIDg0LCAxLCAxNDksIDIyMiwgMTgxLCA4NCwgMSwgMTQ5LCAyMzIsIDE4NiwgODQsIDI1LCAKKyAgICA1LCAxNDksIDE1NiwgODQsIDI1LCA1LCAxNDksIDIzMiwgMTg2LCA4NCwgMjQ4LCAxNzksIDg0LCA1MiwgMjQ4LCAxNzksIAorICAgIDg0LCAyMSwgMjEwLCA4NiwgODQsIDIxLCAxMTAsIDg0LCAyMSwgMTA1LCA4NCwgMjEsIDE1OCwgODQsIDIxLCAxNjEsIDg0LCAKKyAgICAyMSwgMTg5LCA4NCwgMjEsIDE5NCwgODQsIDIxLCAxOTgsIDg0LCAyMSwgMTk1LCA4NCwgMjEsIDIwMCwgODQsIDI1NSwgMjIsIAorICAgIDUwLCA4NCwgNSwgMTI1LCAyMTksIDE4LCAyNDcsIDEyMSwgODQsIDEsIDI1MSwgMywgNjEsIDg0LCAxLCAyMjYsIDIzNSwgCisgICAgODQsIDEsIDIyNiwgMTgyLCA4NCwgMSwgMjUzLCAxNzIsIDg0LCAxLCAyMTQsIDIxNCwgODQsIDEsIDIxNCwgMTE3LCA4NCwgCisgICAgMSwgMjEwLCA4MiwgODQsIDEsIDExNCwgMTkxLCA4NCwgMSwgMjQzLCAzMCwgODQsIDEsIDIzNSwgOTcsIDg0LCAxLCAyNDIsIAorICAgIDE4MSwgMjE4LCAxMzAsIDg0LCAxLCAyNDgsIDEyNiwgODQsIDEsIDI1MiwgMTEyLCAxNDYsIDUsIDI1MSwgMCwgMTQ2LCA1LCAKKyAgICAyNTQsIDc2LCAxNDYsIDUsIDIxMywgMTQ3LCAxNDYsIDEsIDYxLCAxNDYsIDEsIDI1NSwgNzQsIDE0NiwgMSwgNzMsIDE0NiwgCisgICAgMSwgMjM2LCAzNCwgMTQ2LCAxLCA3MCwgMTQ2LCAxLCAyMTQsIDExOCwgMTQ2LCAxLCAxNDksIDE1MywgMTQ2LCAxLCAxNDksIAorICAgIDE1NiwgMTQ2LCAxLCA3NSwgMTQ2LCAxLCAyNTQsIDIwMiwgMTQ2LCAxLCA3NiwgMTQ2LCAxLCAyNTMsIDE5MywgMTQ2LCAxLCAKKyAgICAxNzYsIDE0NiwgMSwgMjM0LCAxMzMsIDE0NiwgMSwgMjQzLCAxMzYsIDE0NiwgMSwgMjQyLCAyNTAsIDE0NiwgMSwgMjI5LCAKKyAgICA3OCwgMTQ2LCAxLCAyNTEsIDM0LCAxNDYsIDEsIDI1MCwgMTU4LCAxNDYsIDEsIDIzNSwgMTQyLCAxNDYsIDEsIDIzNSwgCisgICAgMTE1LCAxNDYsIDEsIDIyNywgMTY2LCAxNDYsIDEsIDIxNSwgMTU3LCAxNDYsIDEsIDIxNSwgMTQ1LCAxNDYsIDEsIDI0OCwgCisgICAgMTM2LCAxNDYsIDEsIDI0OCwgMTIwLCAxNDYsIDEsIDIyOCwgMTExLCAxNDYsIDEsIDIxNywgMTA2LCAxNDYsIDEsIDIxNiwgCisgICAgMjA5LCAxNDYsIDEsIDI0OCwgMjIyLCAxNDYsIDEsIDI0OCwgMjYsIDE0NiwgMSwgMTk3LCAxNDYsIDEsIDE5MCwgMTQ2LCAxLCAKKyAgICAyMjUsIDE0OCwgMTQ2LCAxLCAyNTIsIDE5MiwgMTQ2LCAxLCAyNTIsIDE5LCAxNDYsIDEsIDE4NSwgMTQ2LCAxLCAxOTEsIAorICAgIDE0NiwgMSwgMjA1LCAxNDYsIDEsIDIzMywgMTM2LCAxNDYsIDEsIDIyMCwgMTAzLCAxNDYsIDEsIDIxOCwgMjI0LCAxNDYsIAorICAgIDEsIDIwNiwgMTQ2LCAxLCAxNjIsIDE0NiwgNSwgMjI3LCAyMDYsIDE0NiwgNSwgMjUzLCAxNzYsIDE0NiwgMjUsIDUsIDI1NSwgCisgICAgNzQsIDE0NiwgMjUsIDUsIDczLCAxNDYsIDI1LCA1LCAyMzYsIDM0LCAxNDYsIDI1LCA1LCA3MCwgMTQ2LCAyNSwgNSwgMjE0LCAKKyAgICAxMTgsIDE0NiwgMjUsIDUsIDE0OSwgMTUzLCAxNDYsIDI1LCA1LCAxNDksIDIyMiwgMTgxLCAxNDYsIDI1LCA1LCA3NSwgCisgICAgMTQ2LCAyNSwgNSwgMjU0LCAyMDIsIDE0NiwgMjUsIDUsIDc2LCAxNDYsIDI1LCA1LCAyNTMsIDE5MywgMTQ2LCA1LCAyMTMsIAorICAgIDE1MiwgMTQ2LCAxLCAyMzQsIDEyNSwgMjE3LCAxMDYsIDE0NiwgMjUzLCAxOTQsIDIzMywgMjQsIDc4LCAxNDYsIDEsIDIyMiwgCisgICAgMTgwLCAxNDYsIDEsIDIyMywgNDAsIDE0NiwgMSwgMjEwLCAxNjgsIDE0NiwgMSwgMTQ5LCAyMjIsIDE4MSwgMTQ2LCAxLCAKKyAgICAxNDksIDIzMiwgMTg2LCAxNDYsIDI1LCA1LCAxNDksIDE1NiwgMTQ2LCAyNSwgNSwgMTQ5LCAyMzIsIDE4NiwgMTQ2LCAyMSwgCisgICAgMjEwLCA4NiwgMTQ2LCAyMSwgMTEwLCAxNDYsIDIxLCAxMDUsIDE0NiwgMjEsIDE1OCwgMTQ2LCAyMSwgMTYxLCAxNDYsIDIxLCAKKyAgICAxODksIDE0NiwgMjEsIDE5NCwgMTQ2LCAyMSwgMTk4LCAxNDYsIDIxLCAxOTUsIDE0NiwgMjEsIDIwMCwgMTQ2LCAxLCAyMjMsIAorICAgIDE4OSwgMiwgMjMwLCAyMjUsIDI0NywgMjU1LCAxNDYsIDEsIDIyMywgMTg5LCAyLCAyMzIsIDEwOSwgMjQ3LCAyNTUsIDE0NiwgCisgICAgMjIyLCAxMTksIDc4LCAxNDYsIDIyMiwgMTE5LCA1MCwgMTQ2LCAyNDksIDk5LCAyMjcsIDE5OCwgMTEwLCAxNDYsIDI0OSwgCisgICAgOTksIDIyNywgMTk4LCAxMDUsIDE0NiwgMjQ5LCA5OSwgMjI3LCAxOTgsIDE1OCwgMTQ2LCAyNDksIDk5LCAyMjcsIDE5OCwgCisgICAgMTYxLCAxNDYsIDI0OSwgOTksIDIyNywgMTk4LCAxMjMsIDIzMywgMTcsIDIxNiwgMjAyLCAyMTYsIDE5NywgMjQ4LCA0OSwgCisgICAgMTQ2LCAyNDksIDk5LCAyNDgsIDUwLCAyMTksIDEyMCwgMTQ2LCAyMzUsIDE2MiwgMTQ2LCAyNDMsIDEwNCwgNzgsIDE4NCwgCisgICAgNSwgMjU0LCAyNTUsIDI1MSwgMjQ0LCAxODQsIDUsIDI1MSwgMjQ0LCAxODQsIDUsIDIxMywgMTQ3LCAxODQsIDEsIDYxLCAKKyAgICAxODQsIDEsIDI1NSwgNzQsIDE4NCwgMSwgNzMsIDE4NCwgMSwgMjM2LCAzNCwgMTg0LCAxLCA3MCwgMTg0LCAxLCAyMTQsIAorICAgIDExOCwgMTg0LCAxLCAyNDUsIDIxMCwgMTg0LCAxLCAyNTQsIDIwMiwgMTg0LCAxLCAyMjYsIDE4NCwgMTg0LCAxLCAyNTMsIAorICAgIDE5MywgMTg0LCAxLCAxNzYsIDE4NCwgMSwgMjM0LCAxMzMsIDE4NCwgMSwgMjQzLCAxMzYsIDE4NCwgMSwgMjQyLCAyNTAsIAorICAgIDE4NCwgMSwgMjI5LCA3OCwgMTg0LCAxLCAyNTEsIDM0LCAxODQsIDEsIDI1MCwgMTU4LCAxODQsIDEsIDIzNSwgMTQyLCAKKyAgICAxODQsIDEsIDIzNSwgMTE1LCAxODQsIDEsIDIyNywgMTY2LCAxODQsIDEsIDIxNSwgMTU3LCAxODQsIDEsIDIxNSwgMTQ1LCAKKyAgICAxODQsIDEsIDI0OCwgMTM2LCAxODQsIDEsIDI0OCwgMTIwLCAxODQsIDEsIDIyOCwgMTExLCAxODQsIDEsIDIxNywgMTA2LCAKKyAgICAxODQsIDEsIDIxNiwgMjA5LCAxODQsIDEsIDI0OCwgMjIyLCAxODQsIDEsIDI0OCwgMjYsIDE4NCwgMSwgMTk3LCAxODQsIDEsIAorICAgIDE5MCwgMTg0LCAxLCAyMjUsIDE0OCwgMTg0LCAxLCAyNTIsIDE5MiwgMTg0LCAxLCAyNTIsIDE5LCAxODQsIDEsIDE4NSwgCisgICAgMTg0LCAxLCAxOTEsIDE4NCwgMSwgMjA1LCAxODQsIDEsIDIzMywgMTM2LCAxODQsIDEsIDIzMiwgMTg1LCAxODQsIDEsIAorICAgIDIxNCwgMjcsIDE4NCwgMSwgMjIwLCAxMDMsIDE4NCwgMSwgMjA2LCAxODQsIDEsIDE2MiwgMTg0LCA1LCAyMjcsIDIwNiwgCisgICAgMTg0LCAyNSwgNSwgMjU1LCA3NCwgMTg0LCAyNSwgNSwgNzMsIDE4NCwgMjUsIDUsIDIzNiwgMzQsIDE4NCwgMjUsIDUsIDcwLCAKKyAgICAxODQsIDI1LCA1LCAyMTQsIDExOCwgMTg0LCAyNSwgNSwgMjQ1LCAyMTAsIDE4NCwgMjUsIDUsIDI1NCwgMjAyLCAxODQsIAorICAgIDI1LCA1LCAyMjYsIDE4NCwgMTg0LCAyNSwgNSwgMjUzLCAxOTMsIDE4NCwgNSwgMjEzLCAxNTIsIDE4NCwgNSwgMjE0LCAKKyAgICAyMTgsIDE4NCwgMSwgMjM0LCAxMTYsIDE4NCwgMSwgMjQyLCAyMjcsIDE4NCwgMSwgMjEwLCAxMTYsIDE4NCwgMSwgMjIyLCAKKyAgICAxODAsIDE4NCwgMSwgMjQ0LCAxOTcsIDE4NCwgMjEsIDIxMCwgODYsIDE4NCwgMjEsIDExMCwgMTg0LCAyMSwgMTA1LCAxODQsIAorICAgIDIxLCAxNTgsIDE4NCwgMjEsIDE2MSwgMTg0LCAyMSwgMTg5LCAxODQsIDIxLCAxOTQsIDE4NCwgMjEsIDE5OCwgMTg0LCAyMSwgCisgICAgMTk1LCAxODQsIDIxLCAyMDAsIDE4NCwgMjE2LCA3NSwgMTg0LCAyNTQsIDI1NCwgMTg0LCAyMzUsIDE3OSwgMTg0LCAyMTQsIAorICAgIDE0NiwgMTg0LCAyNDUsIDE4MiwgMjI2LCAxODksIDE4NCwgNSwgMjExLCA3OCwgMTcxLCA1LCAyNTEsIDAsIDE3MSwgNSwgCisgICAgMjU0LCA3NiwgMTcxLCA1LCAyMTMsIDE0NywgMTcxLCAxLCA2MSwgMTcxLCAxLCAyNTUsIDc0LCAxNzEsIDEsIDczLCAxNzEsIAorICAgIDEsIDIzNiwgMzQsIDE3MSwgMSwgNzAsIDE3MSwgMSwgMjE0LCAxMTgsIDE3MSwgMSwgMTQ5LCAxNTMsIDE3MSwgMSwgMTQ5LCAKKyAgICAxNTYsIDE3MSwgMjUsIDI1MSwgMywgNzUsIDE3MSwgMSwgNzUsIDE3MSwgMSwgMjU0LCAyMDIsIDE3MSwgMjUsIDI1MSwgMywgCisgICAgNzYsIDE3MSwgMSwgNzYsIDE3MSwgMSwgMjUzLCAxOTMsIDE3MSwgMSwgMTc2LCAxNzEsIDEsIDIzNCwgMTMzLCAxNzEsIDEsIAorICAgIDI0MywgMTM2LCAxNzEsIDEsIDI0MiwgMjUwLCAxNzEsIDEsIDIyOSwgNzgsIDE3MSwgMSwgMjUxLCAzNCwgMTcxLCAxLCAKKyAgICAyNTAsIDE1OCwgMTcxLCAxLCAyMzUsIDE0MiwgMTcxLCAxLCAyMzUsIDExNSwgMTcxLCAxLCAyMjcsIDE2NiwgMTcxLCAxLCAKKyAgICAyMTUsIDE1NywgMTcxLCAxLCAyMTUsIDE0NSwgMTcxLCAxLCAyNDgsIDEzNiwgMTcxLCAxLCAyNDgsIDEyMCwgMTcxLCAxLCAKKyAgICAyMjgsIDExMSwgMTcxLCAxLCAyMTcsIDEwNiwgMTcxLCAxLCAyMTYsIDIwOSwgMTcxLCAxLCAyNDgsIDIyMiwgMTcxLCAxLCAKKyAgICAyNDgsIDI2LCAxNzEsIDEsIDE5NywgMTcxLCAxLCAxOTAsIDE3MSwgMSwgMjI1LCAxNDgsIDE3MSwgMSwgMjUyLCAxOTIsIAorICAgIDE3MSwgMSwgMjUyLCAxOSwgMTcxLCAxLCAxODUsIDE3MSwgMSwgMTkxLCAxNzEsIDEsIDIwNSwgMTcxLCAxLCAyMzMsIDEzNiwgCisgICAgMTcxLCAxLCAyMzIsIDE4NSwgMTcxLCAxLCAyMTQsIDI3LCAxNzEsIDEsIDIyMCwgMTAzLCAxNzEsIDEsIDIxOCwgMjI0LCAKKyAgICAxNzEsIDEsIDIwNiwgMTcxLCAxLCAxNjIsIDE3MSwgNSwgMjI3LCAyMDYsIDE3MSwgNSwgMjUzLCAxNzYsIDE3MSwgMjUsIDUsIAorICAgIDI1NSwgNzQsIDE3MSwgMjUsIDUsIDczLCAxNzEsIDI1LCA1LCAyMzYsIDM0LCAxNzEsIDI1LCA1LCA3MCwgMTcxLCAyNSwgNSwgCisgICAgMjE0LCAxMTgsIDE3MSwgMjUsIDUsIDE0OSwgMTUzLCAxNzEsIDI1LCA1LCAxNDksIDIyMiwgMTgxLCAxNzEsIDI1LCA1LCAKKyAgICAyNTEsIDMsIDc1LCAxNzEsIDI1LCA1LCA3NSwgMTcxLCAyNSwgNSwgMjU0LCAyMDIsIDE3MSwgMjUsIDUsIDI1MSwgMywgNzYsIAorICAgIDE3MSwgMjUsIDUsIDc2LCAxNzEsIDI1LCA1LCAyNTMsIDE5MywgMTcxLCA1LCAyMTMsIDE1MiwgMTcxLCAyMjYsIDIwNSwgCisgICAgMTcxLCAxLCAxNDksIDIyMiwgMTgxLCAxNzEsIDEsIDE0OSwgMjMyLCAxODYsIDE3MSwgMjUsIDUsIDE0OSwgMTU2LCAxNzEsIAorICAgIDI1LCA1LCAxNDksIDIzMiwgMTg2LCAxNzEsIDIxLCAyMTAsIDg2LCAxNzEsIDIxLCAxMTAsIDE3MSwgMjEsIDEwNSwgMTcxLCAKICAgICAyMSwgMTU4LCAxNzEsIDIxLCAxNjEsIDE3MSwgMjEsIDE4OSwgMTcxLCAyMSwgMTk0LCAxNzEsIDIxLCAxOTgsIDE3MSwgMjEsIAotICAgIDE5NSwgMTcxLCAyMSwgMjAwLCAxNzEsIDI1NSwgMjEsIDUwLCAxNzEsIDIyMiwgMTE4LCA1MCwgMTU3LCA1LCAyNTAsIDI1NSwgCi0gICAgMTU3LCA1LCAyNTQsIDc1LCAxNTcsIDUsIDIxMywgMTQ3LCAxNTcsIDEsIDYxLCAxNTcsIDEsIDI1NSwgNzMsIDE1NywgMSwgCi0gICAgNzMsIDE1NywgMSwgMjM2LCAzMywgMTU3LCAxLCA3MCwgMTU3LCAxLCAyMTQsIDExOCwgMTU3LCAxLCAxNDksIDE1MywgMTU3LCAKLSAgICAxLCAxNDksIDE1NiwgMTU3LCAxLCA3NSwgMTU3LCAxLCAyNTQsIDIwMSwgMTU3LCAxLCA3NiwgMTU3LCAxLCAyNTMsIDE5MiwgCi0gICAgMTU3LCAxLCAxNzYsIDE1NywgMSwgMjM0LCAxMzIsIDE1NywgMSwgMjQzLCAxMzUsIDE1NywgMSwgMjQyLCAyNDksIDE1NywgCi0gICAgMSwgMjI5LCA3NywgMTU3LCAxLCAyNTEsIDMzLCAxNTcsIDEsIDI1MCwgMTU3LCAxNTcsIDEsIDIzNSwgMTQxLCAxNTcsIDEsIAotICAgIDIzNSwgMTE0LCAxNTcsIDEsIDIyNywgMTY1LCAxNTcsIDEsIDIxNSwgMTU2LCAxNTcsIDEsIDIxNSwgMTQ0LCAxNTcsIDEsIAotICAgIDI0OCwgMTM1LCAxNTcsIDEsIDI0OCwgMTE5LCAxNTcsIDEsIDIyOCwgMTEwLCAxNTcsIDEsIDIxNywgMTA1LCAxNTcsIDEsIAotICAgIDIxNiwgMjA4LCAxNTcsIDEsIDI0OCwgMjIxLCAxNTcsIDEsIDI0OCwgMjUsIDE1NywgMSwgMTk3LCAxNTcsIDEsIDE5MCwgCi0gICAgMTU3LCAxLCAyMjUsIDE0NywgMTU3LCAxLCAyNTIsIDE5MSwgMTU3LCAxLCAyNTIsIDE4LCAxNTcsIDEsIDE4NCwgMTU3LCAxLCAKLSAgICAxOTEsIDE1NywgMSwgMjA1LCAxNTcsIDEsIDIzMywgMTM1LCAxNTcsIDEsIDIzMiwgMTg0LCAxNTcsIDEsIDIxNCwgMjcsIAotICAgIDE1NywgMSwgMjIwLCAxMDIsIDE1NywgMSwgMjE4LCAyMjMsIDE1NywgMSwgMjA2LCAxNTcsIDEsIDE2MiwgMTU3LCA1LCAKLSAgICAyMjcsIDIwNSwgMTU3LCA1LCAyNTMsIDE3NSwgMTU3LCAyNSwgNSwgMjU1LCA3MywgMTU3LCAyNSwgNSwgNzMsIDE1NywgMjUsIAotICAgIDUsIDIzNiwgMzMsIDE1NywgMjUsIDUsIDcwLCAxNTcsIDI1LCA1LCAyMTQsIDExOCwgMTU3LCAyNSwgNSwgMTQ5LCAxNTMsIAotICAgIDE1NywgMjUsIDUsIDE0OSwgMjIyLCAxODAsIDE1NywgMjUsIDUsIDc1LCAxNTcsIDI1LCA1LCAyNTQsIDIwMSwgMTU3LCAyNSwgCi0gICAgNSwgNzYsIDE1NywgMjUsIDUsIDI1MywgMTkyLCAxNTcsIDUsIDIxMywgMTUyLCAxNTcsIDI1NCwgMjAyLCAyMzMsIDIzLCAKLSAgICA3OCwgMTU3LCAyNTMsIDE5MywgMjMzLCAyMywgNzgsIDE1NywgMSwgMjIyLCAxNzksIDE1NywgMSwgMjIzLCAzOSwgMTU3LCAKLSAgICAxLCAyMTAsIDE2OCwgMTU3LCAxLCAxNDksIDIyMiwgMTgwLCAxNTcsIDEsIDE0OSwgMjMyLCAxODUsIDE1NywgMjUsIDUsIAotICAgIDE0OSwgMTU2LCAxNTcsIDI1LCA1LCAxNDksIDIzMiwgMTg1LCAxNTcsIDIxLCAyMTAsIDg2LCAxNTcsIDIxLCAxMTAsIDE1NywgCisgICAgMTk1LCAxNzEsIDIxLCAyMDAsIDE3MSwgMjU1LCAyMiwgNTAsIDE3MSwgMjIyLCAxMTksIDUwLCAxNTcsIDUsIDI1MSwgMCwgCisgICAgMTU3LCA1LCAyNTQsIDc2LCAxNTcsIDUsIDIxMywgMTQ3LCAxNTcsIDEsIDYxLCAxNTcsIDEsIDI1NSwgNzQsIDE1NywgMSwgCisgICAgNzMsIDE1NywgMSwgMjM2LCAzNCwgMTU3LCAxLCA3MCwgMTU3LCAxLCAyMTQsIDExOCwgMTU3LCAxLCAxNDksIDE1MywgMTU3LCAKKyAgICAxLCAxNDksIDE1NiwgMTU3LCAxLCA3NSwgMTU3LCAxLCAyNTQsIDIwMiwgMTU3LCAxLCA3NiwgMTU3LCAxLCAyNTMsIDE5MywgCisgICAgMTU3LCAxLCAxNzYsIDE1NywgMSwgMjM0LCAxMzMsIDE1NywgMSwgMjQzLCAxMzYsIDE1NywgMSwgMjQyLCAyNTAsIDE1NywgCisgICAgMSwgMjI5LCA3OCwgMTU3LCAxLCAyNTEsIDM0LCAxNTcsIDEsIDI1MCwgMTU4LCAxNTcsIDEsIDIzNSwgMTQyLCAxNTcsIDEsIAorICAgIDIzNSwgMTE1LCAxNTcsIDEsIDIyNywgMTY2LCAxNTcsIDEsIDIxNSwgMTU3LCAxNTcsIDEsIDIxNSwgMTQ1LCAxNTcsIDEsIAorICAgIDI0OCwgMTM2LCAxNTcsIDEsIDI0OCwgMTIwLCAxNTcsIDEsIDIyOCwgMTExLCAxNTcsIDEsIDIxNywgMTA2LCAxNTcsIDEsIAorICAgIDIxNiwgMjA5LCAxNTcsIDEsIDI0OCwgMjIyLCAxNTcsIDEsIDI0OCwgMjYsIDE1NywgMSwgMTk3LCAxNTcsIDEsIDE5MCwgCisgICAgMTU3LCAxLCAyMjUsIDE0OCwgMTU3LCAxLCAyNTIsIDE5MiwgMTU3LCAxLCAyNTIsIDE5LCAxNTcsIDEsIDE4NSwgMTU3LCAxLCAKKyAgICAxOTEsIDE1NywgMSwgMjA1LCAxNTcsIDEsIDIzMywgMTM2LCAxNTcsIDEsIDIzMiwgMTg1LCAxNTcsIDEsIDIxNCwgMjcsIAorICAgIDE1NywgMSwgMjIwLCAxMDMsIDE1NywgMSwgMjE4LCAyMjQsIDE1NywgMSwgMjA2LCAxNTcsIDEsIDE2MiwgMTU3LCA1LCAKKyAgICAyMjcsIDIwNiwgMTU3LCA1LCAyNTMsIDE3NiwgMTU3LCAyNSwgNSwgMjU1LCA3NCwgMTU3LCAyNSwgNSwgNzMsIDE1NywgMjUsIAorICAgIDUsIDIzNiwgMzQsIDE1NywgMjUsIDUsIDcwLCAxNTcsIDI1LCA1LCAyMTQsIDExOCwgMTU3LCAyNSwgNSwgMTQ5LCAxNTMsIAorICAgIDE1NywgMjUsIDUsIDE0OSwgMjIyLCAxODEsIDE1NywgMjUsIDUsIDc1LCAxNTcsIDI1LCA1LCAyNTQsIDIwMiwgMTU3LCAyNSwgCisgICAgNSwgNzYsIDE1NywgMjUsIDUsIDI1MywgMTkzLCAxNTcsIDUsIDIxMywgMTUyLCAxNTcsIDI1NCwgMjAzLCAyMzMsIDI0LCAKKyAgICA3OCwgMTU3LCAyNTMsIDE5NCwgMjMzLCAyNCwgNzgsIDE1NywgMSwgMjIyLCAxODAsIDE1NywgMSwgMjIzLCA0MCwgMTU3LCAKKyAgICAxLCAyMTAsIDE2OCwgMTU3LCAxLCAxNDksIDIyMiwgMTgxLCAxNTcsIDEsIDE0OSwgMjMyLCAxODYsIDE1NywgMjUsIDUsIAorICAgIDE0OSwgMTU2LCAxNTcsIDI1LCA1LCAxNDksIDIzMiwgMTg2LCAxNTcsIDIxLCAyMTAsIDg2LCAxNTcsIDIxLCAxMTAsIDE1NywgCiAgICAgMjEsIDEwNSwgMTU3LCAyMSwgMTU4LCAxNTcsIDIxLCAxNjEsIDE1NywgMjEsIDE4OSwgMTU3LCAyMSwgMTk0LCAxNTcsIDIxLCAKLSAgICAxOTgsIDE1NywgMjEsIDE5NSwgMTU3LCAyMSwgMjAwLCAxNTcsIDIzNSwgMTYxLCAxNTcsIDEsIDIxMiwgNjUsIDE1NywgCi0gICAgMjQ0LCAyLCAxMjMsIDIyNCwgMjEsIDE1NywgMjQ0LCAyLCAxMjMsIDI0MiwgMjcsIDE1NywgMjQ0LCAyLCAxMzQsIDIyNCwgCi0gICAgMTksIDE1NywgMjQ0LCAyLCAxMjMsIDIxOSwgMTE3LCAxNTcsIDI0NCwgMiwgMTIzLCAyNDUsIDE4OCwgMTU3LCAyNDQsIDIsIAotICAgIDEzNCwgMjE5LCAxMTYsIDM2LCA1LCAyNTQsIDc1LCAzNiwgNSwgMjEzLCAxNDcsIDM2LCAxLCA2MSwgMzYsIDEsIDI1NSwgCi0gICAgNzMsIDM2LCAxLCA3MywgMzYsIDEsIDIzNiwgMzMsIDM2LCAxLCA3MCwgMzYsIDEsIDIxNCwgMTE4LCAzNiwgMSwgNzUsIDM2LCAKLSAgICAxLCAyNDUsIDIwOSwgMzYsIDEsIDI1NCwgMjAxLCAzNiwgMSwgNzYsIDM2LCAxLCAyMjYsIDE4MywgMzYsIDEsIDI1MywgCi0gICAgMTkyLCAzNiwgMSwgMTc2LCAzNiwgMSwgMjI5LCA3NywgMzYsIDEsIDI1MSwgMzMsIDM2LCAxLCAyMzUsIDE0MSwgMzYsIDEsIAotICAgIDIyNywgMTY1LCAzNiwgMSwgMjE1LCAxNTYsIDM2LCAxLCAyMjgsIDExMCwgMzYsIDEsIDIxNywgMTA1LCAzNiwgMSwgMTk3LCAKLSAgICAzNiwgMSwgMjI4LCA5MiwgMzYsIDEsIDE5MCwgMzYsIDEsIDE4NCwgMzYsIDEsIDE5MSwgMzYsIDEsIDIwNSwgMzYsIDEsIAotICAgIDIyMiwgMTc5LCAzNiwgMSwgMjMzLCAxMzUsIDM2LCAxLCAyMzIsIDE4NCwgMzYsIDEsIDIzMiwgMTc1LCAzNiwgMSwgMjE0LCAKLSAgICAyNywgMzYsIDEsIDIyMCwgMTAyLCAzNiwgMSwgMjE4LCAyMjMsIDM2LCAxLCAyMDYsIDM2LCAxLCAxNjIsIDM2LCAyNSwgNSwgCi0gICAgMjU1LCA3MywgMzYsIDI1LCA1LCA3MywgMzYsIDI1LCA1LCAyMzYsIDMzLCAzNiwgMjUsIDUsIDcwLCAzNiwgMjUsIDUsIAotICAgIDIxNCwgMTE4LCAzNiwgMjUsIDUsIDc1LCAzNiwgMjUsIDUsIDI0NSwgMjA5LCAzNiwgMjUsIDUsIDI1NCwgMjAxLCAzNiwgCi0gICAgMjUsIDUsIDc2LCAzNiwgMjUsIDUsIDIyNiwgMTgzLCAzNiwgMjUsIDUsIDI1MywgMTkyLCAzNiwgNSwgMjEzLCAxNTIsIDM2LCAKLSAgICAyMjYsIDIwNCwgMzYsIDI1MywgMTkzLCAyMzMsIDIzLCA3OCwgMzYsIDIxLCAyMTAsIDg2LCAzNiwgMjEsIDExMCwgMzYsIAorICAgIDE5OCwgMTU3LCAyMSwgMTk1LCAxNTcsIDIxLCAyMDAsIDE1NywgMjM1LCAxNjIsIDE1NywgMSwgMjEyLCA2NSwgMTU3LCAKKyAgICAyNDQsIDMsIDEyMywgMjI0LCAyMiwgMTU3LCAyNDQsIDMsIDEyMywgMjQyLCAyOCwgMTU3LCAyNDQsIDMsIDEzNCwgMjI0LCAKKyAgICAyMCwgMTU3LCAyNDQsIDMsIDEyMywgMjE5LCAxMTgsIDE1NywgMjQ0LCAzLCAxMjMsIDI0NSwgMTg5LCAxNTcsIDI0NCwgMywgCisgICAgMTM0LCAyMTksIDExNywgMzYsIDUsIDI1NCwgNzYsIDM2LCA1LCAyMTMsIDE0NywgMzYsIDEsIDYxLCAzNiwgMSwgMjU1LCAKKyAgICA3NCwgMzYsIDEsIDczLCAzNiwgMSwgMjM2LCAzNCwgMzYsIDEsIDcwLCAzNiwgMSwgMjE0LCAxMTgsIDM2LCAxLCA3NSwgMzYsIAorICAgIDEsIDI0NSwgMjEwLCAzNiwgMSwgMjU0LCAyMDIsIDM2LCAxLCA3NiwgMzYsIDEsIDIyNiwgMTg0LCAzNiwgMSwgMjUzLCAKKyAgICAxOTMsIDM2LCAxLCAxNzYsIDM2LCAxLCAyMjksIDc4LCAzNiwgMSwgMjUxLCAzNCwgMzYsIDEsIDIzNSwgMTQyLCAzNiwgMSwgCisgICAgMjI3LCAxNjYsIDM2LCAxLCAyMTUsIDE1NywgMzYsIDEsIDIyOCwgMTExLCAzNiwgMSwgMjE3LCAxMDYsIDM2LCAxLCAxOTcsIAorICAgIDM2LCAxLCAyMjgsIDkzLCAzNiwgMSwgMTkwLCAzNiwgMSwgMTg1LCAzNiwgMSwgMTkxLCAzNiwgMSwgMjA1LCAzNiwgMSwgCisgICAgMjIyLCAxODAsIDM2LCAxLCAyMzMsIDEzNiwgMzYsIDEsIDIzMiwgMTg1LCAzNiwgMSwgMjMyLCAxNzYsIDM2LCAxLCAyMTQsIAorICAgIDI3LCAzNiwgMSwgMjIwLCAxMDMsIDM2LCAxLCAyMTgsIDIyNCwgMzYsIDEsIDIwNiwgMzYsIDEsIDE2MiwgMzYsIDI1LCA1LCAKKyAgICAyNTUsIDc0LCAzNiwgMjUsIDUsIDczLCAzNiwgMjUsIDUsIDIzNiwgMzQsIDM2LCAyNSwgNSwgNzAsIDM2LCAyNSwgNSwgCisgICAgMjE0LCAxMTgsIDM2LCAyNSwgNSwgNzUsIDM2LCAyNSwgNSwgMjQ1LCAyMTAsIDM2LCAyNSwgNSwgMjU0LCAyMDIsIDM2LCAKKyAgICAyNSwgNSwgNzYsIDM2LCAyNSwgNSwgMjI2LCAxODQsIDM2LCAyNSwgNSwgMjUzLCAxOTMsIDM2LCA1LCAyMTMsIDE1MiwgMzYsIAorICAgIDIyNiwgMjA1LCAzNiwgMjUzLCAxOTQsIDIzMywgMjQsIDc4LCAzNiwgMjEsIDIxMCwgODYsIDM2LCAyMSwgMTEwLCAzNiwgCiAgICAgMjEsIDEwNSwgMzYsIDIxLCAxNTgsIDM2LCAyMSwgMTYxLCAzNiwgMjEsIDE4OSwgMzYsIDIxLCAxOTQsIDM2LCAyMSwgMTk4LCAKLSAgICAzNiwgMjEsIDE5NSwgMzYsIDIxLCAyMDAsIDM2LCA1NCwgMjE2LCAyNDcsIDM2LCA1NCwgMTIzLCAyNDAsIDIxMCwgMzYsIAotICAgIDU0LCAxMjMsIDIxNiwgMTQ3LCAzNiwgMjQ4LCAxNDYsIDUwLCAzNiwgMjMwLCAxMzUsIDUwLCAzNiwgMjExLCA0NSwgNTAsIAotICAgIDM2LCAyNDgsIDg3LCA1MCwgMzYsIDI0OSwgMTM5LCA1MCwgMzYsIDI1MywgMjM4LCA3NywgNTAsIDM2LCAyMjIsIDExOCwgCi0gICAgNTAsIDM2LCA1NCwgNTAsIDE0OCwgNSwgMjUwLCAyNTUsIDE0OCwgNSwgMjU0LCA3NSwgMTQ4LCA1LCAyMTMsIDE0NywgMTQ4LCAKLSAgICAxLCA2MSwgMTQ4LCAxLCAyNTUsIDczLCAxNDgsIDEsIDczLCAxNDgsIDEsIDIzNiwgMzMsIDE0OCwgMSwgNzAsIDE0OCwgMSwgCisgICAgMzYsIDIxLCAxOTUsIDM2LCAyMSwgMjAwLCAzNiwgNTQsIDIxNiwgMjQ4LCAzNiwgNTQsIDEyMywgMjQwLCAyMTEsIDM2LCAKKyAgICA1NCwgMTIzLCAyMTYsIDE0OCwgMzYsIDI0OCwgMTQ3LCA1MCwgMzYsIDIzMCwgMTM2LCA1MCwgMzYsIDIxMSwgNDUsIDUwLCAKKyAgICAzNiwgMjQ4LCA4OCwgNTAsIDM2LCAyNDksIDE0MCwgNTAsIDM2LCAyNTMsIDIzOSwgNzcsIDUwLCAzNiwgMjIyLCAxMTksIAorICAgIDUwLCAzNiwgNTQsIDUwLCAxNDgsIDUsIDI1MSwgMCwgMTQ4LCA1LCAyNTQsIDc2LCAxNDgsIDUsIDIxMywgMTQ3LCAxNDgsIAorICAgIDEsIDYxLCAxNDgsIDEsIDI1NSwgNzQsIDE0OCwgMSwgNzMsIDE0OCwgMSwgMjM2LCAzNCwgMTQ4LCAxLCA3MCwgMTQ4LCAxLCAKICAgICAyMTQsIDExOCwgMTQ4LCAxLCAxNDksIDE1MywgMTQ4LCAxLCAxNDksIDE1NiwgMTQ4LCAxLCA3NSwgMTQ4LCAxLCAyNDUsIAotICAgIDIwOSwgMTQ4LCAxLCAyNTQsIDIwMSwgMTQ4LCAxLCA3NiwgMTQ4LCAxLCAyMjYsIDE4MywgMTQ4LCAxLCAyNTMsIDE5MiwgCi0gICAgMTQ4LCAxLCAxNzYsIDE0OCwgMSwgMjM0LCAxMzIsIDE0OCwgMSwgMjQzLCAxMzUsIDE0OCwgMSwgMjQyLCAyNDksIDE0OCwgCi0gICAgMSwgMjI5LCA3NywgMTQ4LCAxLCAyNTEsIDMzLCAxNDgsIDEsIDI1MCwgMTU3LCAxNDgsIDEsIDIzNSwgMTQxLCAxNDgsIDEsIAotICAgIDIzNSwgMTE0LCAxNDgsIDEsIDIyNywgMTY1LCAxNDgsIDEsIDIxNSwgMTU2LCAxNDgsIDEsIDIxNSwgMTQ0LCAxNDgsIDEsIAotICAgIDI0OCwgMTM1LCAxNDgsIDEsIDI0OCwgMTE5LCAxNDgsIDEsIDIyOCwgMTEwLCAxNDgsIDEsIDIxNywgMTA1LCAxNDgsIDEsIAotICAgIDIxNiwgMjA4LCAxNDgsIDEsIDI0OCwgMjIxLCAxNDgsIDEsIDI0OCwgMjUsIDE0OCwgMSwgMTk3LCAxNDgsIDEsIDE5MCwgCi0gICAgMTQ4LCAxLCAyMjUsIDE0NywgMTQ4LCAxLCAyNTIsIDE5MSwgMTQ4LCAxLCAyNTIsIDE4LCAxNDgsIDEsIDE4NCwgMTQ4LCAxLCAKLSAgICAxOTEsIDE0OCwgMSwgMjA1LCAxNDgsIDEsIDIyMiwgMTc5LCAxNDgsIDEsIDIzMywgMTM1LCAxNDgsIDEsIDIzMiwgMTg0LCAKLSAgICAxNDgsIDEsIDIxNCwgMjcsIDE0OCwgMSwgMjIwLCAxMDIsIDE0OCwgMSwgMjE4LCAyMjMsIDE0OCwgMSwgMjA2LCAxNDgsIDEsIAotICAgIDE2MiwgMTQ4LCA1LCAyNTMsIDE3NSwgMTQ4LCAyNSwgNSwgMjU1LCA3MywgMTQ4LCAyNSwgNSwgNzMsIDE0OCwgMjUsIDUsIAotICAgIDIzNiwgMzMsIDE0OCwgMjUsIDUsIDcwLCAxNDgsIDI1LCA1LCAyMTQsIDExOCwgMTQ4LCAyNSwgNSwgMTQ5LCAxNTMsIDE0OCwgCi0gICAgMjUsIDUsIDE0OSwgMjIyLCAxODAsIDE0OCwgMjUsIDUsIDc1LCAxNDgsIDI1LCA1LCAyNDUsIDIwOSwgMTQ4LCAyNSwgNSwgCi0gICAgMjU0LCAyMDEsIDE0OCwgMjUsIDUsIDc2LCAxNDgsIDI1LCA1LCAyMjYsIDE4MywgMTQ4LCAyNSwgNSwgMjUzLCAxOTIsIAotICAgIDE0OCwgNSwgMjEzLCAxNTIsIDE0OCwgMjMzLCAyMywgNzgsIDE0OCwgMjU0LCAyMDIsIDIzMywgMjMsIDc4LCAxNDgsIDEsIAotICAgIDIxNSwgMTgzLCAxNDgsIDEsIDI0NiwgMzgsIDE0OCwgMSwgMTQ5LCAyMjIsIDE4MCwgMTQ4LCAxLCAxNDksIDIzMiwgMTg1LCAKLSAgICAxNDgsIDI1LCA1LCAxNDksIDE1NiwgMTQ4LCAyNSwgNSwgMTQ5LCAyMzIsIDE4NSwgMTQ4LCAyMSwgMjEwLCA4NiwgMTQ4LCAKKyAgICAyMTAsIDE0OCwgMSwgMjU0LCAyMDIsIDE0OCwgMSwgNzYsIDE0OCwgMSwgMjI2LCAxODQsIDE0OCwgMSwgMjUzLCAxOTMsIAorICAgIDE0OCwgMSwgMTc2LCAxNDgsIDEsIDIzNCwgMTMzLCAxNDgsIDEsIDI0MywgMTM2LCAxNDgsIDEsIDI0MiwgMjUwLCAxNDgsIAorICAgIDEsIDIyOSwgNzgsIDE0OCwgMSwgMjUxLCAzNCwgMTQ4LCAxLCAyNTAsIDE1OCwgMTQ4LCAxLCAyMzUsIDE0MiwgMTQ4LCAxLCAKKyAgICAyMzUsIDExNSwgMTQ4LCAxLCAyMjcsIDE2NiwgMTQ4LCAxLCAyMTUsIDE1NywgMTQ4LCAxLCAyMTUsIDE0NSwgMTQ4LCAxLCAKKyAgICAyNDgsIDEzNiwgMTQ4LCAxLCAyNDgsIDEyMCwgMTQ4LCAxLCAyMjgsIDExMSwgMTQ4LCAxLCAyMTcsIDEwNiwgMTQ4LCAxLCAKKyAgICAyMTYsIDIwOSwgMTQ4LCAxLCAyNDgsIDIyMiwgMTQ4LCAxLCAyNDgsIDI2LCAxNDgsIDEsIDE5NywgMTQ4LCAxLCAxOTAsIAorICAgIDE0OCwgMSwgMjI1LCAxNDgsIDE0OCwgMSwgMjUyLCAxOTIsIDE0OCwgMSwgMjUyLCAxOSwgMTQ4LCAxLCAxODUsIDE0OCwgMSwgCisgICAgMTkxLCAxNDgsIDEsIDIwNSwgMTQ4LCAxLCAyMjIsIDE4MCwgMTQ4LCAxLCAyMzMsIDEzNiwgMTQ4LCAxLCAyMzIsIDE4NSwgCisgICAgMTQ4LCAxLCAyMTQsIDI3LCAxNDgsIDEsIDIyMCwgMTAzLCAxNDgsIDEsIDIxOCwgMjI0LCAxNDgsIDEsIDIwNiwgMTQ4LCAxLCAKKyAgICAxNjIsIDE0OCwgNSwgMjUzLCAxNzYsIDE0OCwgMjUsIDUsIDI1NSwgNzQsIDE0OCwgMjUsIDUsIDczLCAxNDgsIDI1LCA1LCAKKyAgICAyMzYsIDM0LCAxNDgsIDI1LCA1LCA3MCwgMTQ4LCAyNSwgNSwgMjE0LCAxMTgsIDE0OCwgMjUsIDUsIDE0OSwgMTUzLCAxNDgsIAorICAgIDI1LCA1LCAxNDksIDIyMiwgMTgxLCAxNDgsIDI1LCA1LCA3NSwgMTQ4LCAyNSwgNSwgMjQ1LCAyMTAsIDE0OCwgMjUsIDUsIAorICAgIDI1NCwgMjAyLCAxNDgsIDI1LCA1LCA3NiwgMTQ4LCAyNSwgNSwgMjI2LCAxODQsIDE0OCwgMjUsIDUsIDI1MywgMTkzLCAKKyAgICAxNDgsIDUsIDIxMywgMTUyLCAxNDgsIDIzMywgMjQsIDc4LCAxNDgsIDI1NCwgMjAzLCAyMzMsIDI0LCA3OCwgMTQ4LCAxLCAKKyAgICAyMTUsIDE4NCwgMTQ4LCAxLCAyNDYsIDM5LCAxNDgsIDEsIDE0OSwgMjIyLCAxODEsIDE0OCwgMSwgMTQ5LCAyMzIsIDE4NiwgCisgICAgMTQ4LCAyNSwgNSwgMTQ5LCAxNTYsIDE0OCwgMjUsIDUsIDE0OSwgMjMyLCAxODYsIDE0OCwgMjEsIDIxMCwgODYsIDE0OCwgCiAgICAgMjEsIDExMCwgMTQ4LCAyMSwgMTA1LCAxNDgsIDIxLCAxNTgsIDE0OCwgMjEsIDE2MSwgMTQ4LCAyMSwgMTg5LCAxNDgsIDIxLCAKLSAgICAxOTQsIDE0OCwgMjEsIDE5OCwgMTQ4LCAyMSwgMTk1LCAxNDgsIDIxLCAyMDAsIDE0OCwgMjQ0LCAyLCAyMSwgMjEwLCA4NywgCi0gICAgMzEsIDIyNiwgMjM3LCAyMjQsIDIyMywgNjQsIDE2MSwgMTQ4LCAyNDQsIDIsIDIxLCAxMjMsIDMxLCAyMjYsIDIzNywgMjI0LCAKLSAgICAyMjMsIDY0LCAxNjEsIDE0OCwgMjQ0LCAyLCAyMSwgMTEzLCAzMSwgMjI2LCAyMzcsIDIyNCwgMjIzLCA2NCwgMTYxLCAxNDgsIAotICAgIDI0NCwgMiwgMjEsIDEzNCwgMzEsIDIyNiwgMjM3LCAyMjQsIDIyMywgNjQsIDE2MSwgMTQ4LCAyNDQsIDIsIDIxLCAxMjMsIAotICAgIDMxLCAyNDUsIDQyLCAyMjQsIDIyMywgNjQsIDE2MSwgMTQ4LCAyNDQsIDIsIDIxLCAxMTMsIDMxLCAyNDUsIDQyLCAyMjQsIAotICAgIDIyMywgNjQsIDE2MSwgMTQ4LCAyNDQsIDIsIDIxLCAxMzQsIDMxLCAyNDUsIDQyLCAyMjQsIDIyMywgNjQsIDE2MSwgMTQ4LCAKLSAgICA1LCAyMTUsIDg0LCAxNjUsIDUsIDI1NCwgNzUsIDE2NSwgNSwgMjEzLCAxNDcsIDE2NSwgMSwgNjEsIDE2NSwgMSwgMjU1LCAKLSAgICA3MywgMTY1LCAxLCA3MywgMTY1LCAxLCAyMzYsIDMzLCAxNjUsIDEsIDcwLCAxNjUsIDEsIDIxNCwgMTE4LCAxNjUsIDEsIAotICAgIDE0OSwgMTUzLCAxNjUsIDEsIDE0OSwgMTU2LCAxNjUsIDEsIDc1LCAxNjUsIDEsIDI0NSwgMjA5LCAxNjUsIDEsIDI1NCwgCi0gICAgMjAxLCAxNjUsIDEsIDc2LCAxNjUsIDEsIDIyNiwgMTgzLCAxNjUsIDEsIDI1MywgMTkyLCAxNjUsIDEsIDE3NiwgMTY1LCAxLCAKLSAgICAyMzQsIDEzMiwgMTY1LCAxLCAyNDMsIDEzNSwgMTY1LCAxLCAyNDIsIDI0OSwgMTY1LCAxLCAyMjksIDc3LCAxNjUsIDEsIAotICAgIDI1MSwgMzMsIDE2NSwgMSwgMjUwLCAxNTcsIDE2NSwgMSwgMjM1LCAxNDEsIDE2NSwgMSwgMjM1LCAxMTQsIDE2NSwgMSwgCi0gICAgMjI3LCAxNjUsIDE2NSwgMSwgMjE1LCAxNTYsIDE2NSwgMSwgMjE1LCAxNDQsIDE2NSwgMSwgMjQ4LCAxMzUsIDE2NSwgMSwgCi0gICAgMjQ4LCAxMTksIDE2NSwgMSwgMjI4LCAxMTAsIDE2NSwgMSwgMjE3LCAxMDUsIDE2NSwgMSwgMjE2LCAyMDgsIDE2NSwgMSwgCi0gICAgMjQ4LCAyMjEsIDE2NSwgMSwgMjQ4LCAyNSwgMTY1LCAxLCAxOTcsIDE2NSwgMSwgMTkwLCAxNjUsIDEsIDIyNSwgMTQ3LCAKLSAgICAxNjUsIDEsIDI1MiwgMTkxLCAxNjUsIDEsIDI1MiwgMTgsIDE2NSwgMSwgMTg0LCAxNjUsIDEsIDE5MSwgMTY1LCAxLCAyMDUsIAotICAgIDE2NSwgMSwgMjIyLCAxNzksIDE2NSwgMSwgMjMzLCAxMzUsIDE2NSwgMSwgMjMyLCAxODQsIDE2NSwgMSwgMjE0LCAyNywgCi0gICAgMTY1LCAxLCAyMjAsIDEwMiwgMTY1LCAxLCAyMTgsIDIyMywgMTY1LCAxLCAyMDYsIDE2NSwgMSwgMTYyLCAxNjUsIDUsIAotICAgIDIyNywgMjA1LCAxNjUsIDUsIDI1MywgMTc1LCAxNjUsIDI1LCA1LCAyNTUsIDczLCAxNjUsIDI1LCA1LCA3MywgMTY1LCAyNSwgCi0gICAgNSwgMjM2LCAzMywgMTY1LCAyNSwgNSwgNzAsIDE2NSwgMjUsIDUsIDIxNCwgMTE4LCAxNjUsIDI1LCA1LCAxNDksIDE1MywgCi0gICAgMTY1LCAyNSwgNSwgMTQ5LCAyMjIsIDE4MCwgMTY1LCAyNSwgNSwgNzUsIDE2NSwgMjUsIDUsIDI0NSwgMjA5LCAxNjUsIDI1LCAKLSAgICA1LCAyNTQsIDIwMSwgMTY1LCAyNSwgNSwgNzYsIDE2NSwgMjUsIDUsIDIyNiwgMTgzLCAxNjUsIDI1LCA1LCAyNTMsIDE5MiwgCi0gICAgMTY1LCA1LCAyMTMsIDE1MiwgMTY1LCAyMzMsIDIzLCA3OCwgMTY1LCAyNTQsIDIwMiwgMjMzLCAyMywgNzgsIDE2NSwgMSwgCi0gICAgMjQ0LCAxOTYsIDE2NSwgMSwgMTQ5LCAyMjIsIDE4MCwgMTY1LCAxLCAxNDksIDIzMiwgMTg1LCAxNjUsIDI1LCA1LCAxNDksIAotICAgIDE1NiwgMTY1LCAyNSwgNSwgMTQ5LCAyMzIsIDE4NSwgMTY1LCAyMSwgMjEwLCA4NiwgMTY1LCAyMSwgMTEwLCAxNjUsIDIxLCAKKyAgICAxOTQsIDE0OCwgMjEsIDE5OCwgMTQ4LCAyMSwgMTk1LCAxNDgsIDIxLCAyMDAsIDE0OCwgMjQ0LCAzLCAyMSwgMjEwLCA4NywgCisgICAgMzEsIDIyNiwgMjM4LCAyMjQsIDIyNCwgNjQsIDE2MSwgMTQ4LCAyNDQsIDMsIDIxLCAxMjMsIDMxLCAyMjYsIDIzOCwgMjI0LCAKKyAgICAyMjQsIDY0LCAxNjEsIDE0OCwgMjQ0LCAzLCAyMSwgMTEzLCAzMSwgMjI2LCAyMzgsIDIyNCwgMjI0LCA2NCwgMTYxLCAxNDgsIAorICAgIDI0NCwgMywgMjEsIDEzNCwgMzEsIDIyNiwgMjM4LCAyMjQsIDIyNCwgNjQsIDE2MSwgMTQ4LCAyNDQsIDMsIDIxLCAxMjMsIAorICAgIDMxLCAyNDUsIDQzLCAyMjQsIDIyNCwgNjQsIDE2MSwgMTQ4LCAyNDQsIDMsIDIxLCAxMTMsIDMxLCAyNDUsIDQzLCAyMjQsIAorICAgIDIyNCwgNjQsIDE2MSwgMTQ4LCAyNDQsIDMsIDIxLCAxMzQsIDMxLCAyNDUsIDQzLCAyMjQsIDIyNCwgNjQsIDE2MSwgMTQ4LCAKKyAgICA1LCAyMTUsIDg0LCAxNjUsIDUsIDI1NCwgNzYsIDE2NSwgNSwgMjEzLCAxNDcsIDE2NSwgMSwgNjEsIDE2NSwgMSwgMjU1LCAKKyAgICA3NCwgMTY1LCAxLCA3MywgMTY1LCAxLCAyMzYsIDM0LCAxNjUsIDEsIDcwLCAxNjUsIDEsIDIxNCwgMTE4LCAxNjUsIDEsIAorICAgIDE0OSwgMTUzLCAxNjUsIDEsIDE0OSwgMTU2LCAxNjUsIDEsIDc1LCAxNjUsIDEsIDI0NSwgMjEwLCAxNjUsIDEsIDI1NCwgCisgICAgMjAyLCAxNjUsIDEsIDc2LCAxNjUsIDEsIDIyNiwgMTg0LCAxNjUsIDEsIDI1MywgMTkzLCAxNjUsIDEsIDE3NiwgMTY1LCAxLCAKKyAgICAyMzQsIDEzMywgMTY1LCAxLCAyNDMsIDEzNiwgMTY1LCAxLCAyNDIsIDI1MCwgMTY1LCAxLCAyMjksIDc4LCAxNjUsIDEsIAorICAgIDI1MSwgMzQsIDE2NSwgMSwgMjUwLCAxNTgsIDE2NSwgMSwgMjM1LCAxNDIsIDE2NSwgMSwgMjM1LCAxMTUsIDE2NSwgMSwgCisgICAgMjI3LCAxNjYsIDE2NSwgMSwgMjE1LCAxNTcsIDE2NSwgMSwgMjE1LCAxNDUsIDE2NSwgMSwgMjQ4LCAxMzYsIDE2NSwgMSwgCisgICAgMjQ4LCAxMjAsIDE2NSwgMSwgMjI4LCAxMTEsIDE2NSwgMSwgMjE3LCAxMDYsIDE2NSwgMSwgMjE2LCAyMDksIDE2NSwgMSwgCisgICAgMjQ4LCAyMjIsIDE2NSwgMSwgMjQ4LCAyNiwgMTY1LCAxLCAxOTcsIDE2NSwgMSwgMTkwLCAxNjUsIDEsIDIyNSwgMTQ4LCAKKyAgICAxNjUsIDEsIDI1MiwgMTkyLCAxNjUsIDEsIDI1MiwgMTksIDE2NSwgMSwgMTg1LCAxNjUsIDEsIDE5MSwgMTY1LCAxLCAyMDUsIAorICAgIDE2NSwgMSwgMjIyLCAxODAsIDE2NSwgMSwgMjMzLCAxMzYsIDE2NSwgMSwgMjMyLCAxODUsIDE2NSwgMSwgMjE0LCAyNywgCisgICAgMTY1LCAxLCAyMjAsIDEwMywgMTY1LCAxLCAyMTgsIDIyNCwgMTY1LCAxLCAyMDYsIDE2NSwgMSwgMTYyLCAxNjUsIDUsIAorICAgIDIyNywgMjA2LCAxNjUsIDUsIDI1MywgMTc2LCAxNjUsIDI1LCA1LCAyNTUsIDc0LCAxNjUsIDI1LCA1LCA3MywgMTY1LCAyNSwgCisgICAgNSwgMjM2LCAzNCwgMTY1LCAyNSwgNSwgNzAsIDE2NSwgMjUsIDUsIDIxNCwgMTE4LCAxNjUsIDI1LCA1LCAxNDksIDE1MywgCisgICAgMTY1LCAyNSwgNSwgMTQ5LCAyMjIsIDE4MSwgMTY1LCAyNSwgNSwgNzUsIDE2NSwgMjUsIDUsIDI0NSwgMjEwLCAxNjUsIDI1LCAKKyAgICA1LCAyNTQsIDIwMiwgMTY1LCAyNSwgNSwgNzYsIDE2NSwgMjUsIDUsIDIyNiwgMTg0LCAxNjUsIDI1LCA1LCAyNTMsIDE5MywgCisgICAgMTY1LCA1LCAyMTMsIDE1MiwgMTY1LCAyMzMsIDI0LCA3OCwgMTY1LCAyNTQsIDIwMywgMjMzLCAyNCwgNzgsIDE2NSwgMSwgCisgICAgMjQ0LCAxOTcsIDE2NSwgMSwgMTQ5LCAyMjIsIDE4MSwgMTY1LCAxLCAxNDksIDIzMiwgMTg2LCAxNjUsIDI1LCA1LCAxNDksIAorICAgIDE1NiwgMTY1LCAyNSwgNSwgMTQ5LCAyMzIsIDE4NiwgMTY1LCAyMSwgMjEwLCA4NiwgMTY1LCAyMSwgMTEwLCAxNjUsIDIxLCAKICAgICAxMDUsIDE2NSwgMjEsIDE1OCwgMTY1LCAyMSwgMTYxLCAxNjUsIDIxLCAxODksIDE2NSwgMjEsIDE5NCwgMTY1LCAyMSwgCi0gICAgMTk4LCAxNjUsIDIxLCAxOTUsIDE2NSwgMjEsIDIwMCwgMTY1LCA1LCAyMzUsIDEwMiwgMTY1LCA1LCAyMTQsIDE2MSwgMTM2LCAKLSAgICA1LCAyNTQsIDc1LCAxMzYsIDUsIDIxMywgMTQ3LCAxMzYsIDEsIDYxLCAxMzYsIDEsIDI1NSwgNzMsIDEzNiwgMSwgNzMsIAotICAgIDEzNiwgMSwgMjM2LCAzMywgMTM2LCAxLCA3MCwgMTM2LCAxLCAyMTQsIDExOCwgMTM2LCAxLCAxNDksIDE1MywgMTM2LCAxLCAKLSAgICAxNDksIDE1NiwgMTM2LCAxLCA3NSwgMTM2LCAxLCAyNDUsIDIwOSwgMTM2LCAxLCAyNTQsIDIwMSwgMTM2LCAxLCA3NiwgCi0gICAgMTM2LCAxLCAyMjYsIDE4MywgMTM2LCAxLCAyNTMsIDE5MiwgMTM2LCAxLCAxNzYsIDEzNiwgMSwgMjM0LCAxMzIsIDEzNiwgCi0gICAgMSwgMjQzLCAxMzUsIDEzNiwgMSwgMjQyLCAyNDksIDEzNiwgMSwgMjI5LCA3NywgMTM2LCAxLCAyNTEsIDMzLCAxMzYsIDEsIAotICAgIDI1MCwgMTU3LCAxMzYsIDEsIDIzNSwgMTQxLCAxMzYsIDEsIDIzNSwgMTE0LCAxMzYsIDEsIDIyNywgMTY1LCAxMzYsIDEsIAotICAgIDIxNSwgMTU2LCAxMzYsIDEsIDIxNSwgMTQ0LCAxMzYsIDEsIDI0OCwgMTM1LCAxMzYsIDEsIDI0OCwgMTE5LCAxMzYsIDEsIAotICAgIDIyOCwgMTEwLCAxMzYsIDEsIDIxNywgMTA1LCAxMzYsIDEsIDIxNiwgMjA4LCAxMzYsIDEsIDI0OCwgMjIxLCAxMzYsIDEsIAotICAgIDI0OCwgMjUsIDEzNiwgMSwgMTk3LCAxMzYsIDEsIDIyOCwgOTIsIDEzNiwgMSwgMTkwLCAxMzYsIDEsIDIyNSwgMTQ3LCAKLSAgICAxMzYsIDEsIDI1MiwgMTkxLCAxMzYsIDEsIDI1MiwgMTgsIDEzNiwgMSwgMTg0LCAxMzYsIDEsIDE5MSwgMTM2LCAxLCAyMDUsIAotICAgIDEzNiwgMSwgMjIyLCAxNzksIDEzNiwgMSwgMjMzLCAxMzUsIDEzNiwgMSwgMjMyLCAxODQsIDEzNiwgMSwgMjMyLCAxNzUsIAotICAgIDEzNiwgMSwgMjE0LCAyNywgMTM2LCAxLCAyMjAsIDEwMiwgMTM2LCAxLCAyMTgsIDIyMywgMTM2LCAxLCAyMDYsIDEzNiwgMSwgCi0gICAgMTYyLCAxMzYsIDEsIDIxNSwgMTI1LCAxMzYsIDUsIDI1MywgMTc1LCAxMzYsIDI1LCA1LCAyNTUsIDczLCAxMzYsIDI1LCA1LCAKLSAgICA3MywgMTM2LCAyNSwgNSwgMjM2LCAzMywgMTM2LCAyNSwgNSwgNzAsIDEzNiwgMjUsIDUsIDIxNCwgMTE4LCAxMzYsIDI1LCAKLSAgICA1LCAxNDksIDE1MywgMTM2LCAyNSwgNSwgMTQ5LCAyMjIsIDE4MCwgMTM2LCAyNSwgNSwgNzUsIDEzNiwgMjUsIDUsIDI0NSwgCi0gICAgMjA5LCAxMzYsIDI1LCA1LCAyNTQsIDIwMSwgMTM2LCAyNSwgNSwgNzYsIDEzNiwgMjUsIDUsIDIyNiwgMTgzLCAxMzYsIDI1LCAKLSAgICA1LCAyNTMsIDE5MiwgMTM2LCA1LCAyMTMsIDE1MiwgMTM2LCAxLCA1OSwgMjIzLCA3MywgMTM2LCAyNTMsIDE5MywgMjMzLCAKLSAgICAyMywgNzgsIDEzNiwgMSwgMTQ5LCAyMjIsIDE4MCwgMTM2LCAxLCAxNDksIDIzMiwgMTg1LCAxMzYsIDI1LCA1LCAxNDksIAotICAgIDE1NiwgMTM2LCAyNSwgNSwgMTQ5LCAyMzIsIDE4NSwgMTM2LCAyMSwgMjEwLCA4NiwgMTM2LCAyMSwgMTEwLCAxMzYsIDIxLCAKKyAgICAxOTgsIDE2NSwgMjEsIDE5NSwgMTY1LCAyMSwgMjAwLCAxNjUsIDUsIDIzNSwgMTAzLCAxNjUsIDUsIDIxNCwgMTYxLCAxMzYsIAorICAgIDUsIDI1NCwgNzYsIDEzNiwgNSwgMjEzLCAxNDcsIDEzNiwgMSwgNjEsIDEzNiwgMSwgMjU1LCA3NCwgMTM2LCAxLCA3MywgCisgICAgMTM2LCAxLCAyMzYsIDM0LCAxMzYsIDEsIDcwLCAxMzYsIDEsIDIxNCwgMTE4LCAxMzYsIDEsIDE0OSwgMTUzLCAxMzYsIDEsIAorICAgIDE0OSwgMTU2LCAxMzYsIDEsIDc1LCAxMzYsIDEsIDI0NSwgMjEwLCAxMzYsIDEsIDI1NCwgMjAyLCAxMzYsIDEsIDc2LCAKKyAgICAxMzYsIDEsIDIyNiwgMTg0LCAxMzYsIDEsIDI1MywgMTkzLCAxMzYsIDEsIDE3NiwgMTM2LCAxLCAyMzQsIDEzMywgMTM2LCAKKyAgICAxLCAyNDMsIDEzNiwgMTM2LCAxLCAyNDIsIDI1MCwgMTM2LCAxLCAyMjksIDc4LCAxMzYsIDEsIDI1MSwgMzQsIDEzNiwgMSwgCisgICAgMjUwLCAxNTgsIDEzNiwgMSwgMjM1LCAxNDIsIDEzNiwgMSwgMjM1LCAxMTUsIDEzNiwgMSwgMjI3LCAxNjYsIDEzNiwgMSwgCisgICAgMjE1LCAxNTcsIDEzNiwgMSwgMjE1LCAxNDUsIDEzNiwgMSwgMjQ4LCAxMzYsIDEzNiwgMSwgMjQ4LCAxMjAsIDEzNiwgMSwgCisgICAgMjI4LCAxMTEsIDEzNiwgMSwgMjE3LCAxMDYsIDEzNiwgMSwgMjE2LCAyMDksIDEzNiwgMSwgMjQ4LCAyMjIsIDEzNiwgMSwgCisgICAgMjQ4LCAyNiwgMTM2LCAxLCAxOTcsIDEzNiwgMSwgMjI4LCA5MywgMTM2LCAxLCAxOTAsIDEzNiwgMSwgMjI1LCAxNDgsIAorICAgIDEzNiwgMSwgMjUyLCAxOTIsIDEzNiwgMSwgMjUyLCAxOSwgMTM2LCAxLCAxODUsIDEzNiwgMSwgMTkxLCAxMzYsIDEsIDIwNSwgCisgICAgMTM2LCAxLCAyMjIsIDE4MCwgMTM2LCAxLCAyMzMsIDEzNiwgMTM2LCAxLCAyMzIsIDE4NSwgMTM2LCAxLCAyMzIsIDE3NiwgCisgICAgMTM2LCAxLCAyMTQsIDI3LCAxMzYsIDEsIDIyMCwgMTAzLCAxMzYsIDEsIDIxOCwgMjI0LCAxMzYsIDEsIDIwNiwgMTM2LCAxLCAKKyAgICAxNjIsIDEzNiwgMSwgMjE1LCAxMjYsIDEzNiwgNSwgMjUzLCAxNzYsIDEzNiwgMjUsIDUsIDI1NSwgNzQsIDEzNiwgMjUsIDUsIAorICAgIDczLCAxMzYsIDI1LCA1LCAyMzYsIDM0LCAxMzYsIDI1LCA1LCA3MCwgMTM2LCAyNSwgNSwgMjE0LCAxMTgsIDEzNiwgMjUsIAorICAgIDUsIDE0OSwgMTUzLCAxMzYsIDI1LCA1LCAxNDksIDIyMiwgMTgxLCAxMzYsIDI1LCA1LCA3NSwgMTM2LCAyNSwgNSwgMjQ1LCAKKyAgICAyMTAsIDEzNiwgMjUsIDUsIDI1NCwgMjAyLCAxMzYsIDI1LCA1LCA3NiwgMTM2LCAyNSwgNSwgMjI2LCAxODQsIDEzNiwgMjUsIAorICAgIDUsIDI1MywgMTkzLCAxMzYsIDUsIDIxMywgMTUyLCAxMzYsIDEsIDU5LCAyMjMsIDc0LCAxMzYsIDI1MywgMTk0LCAyMzMsIAorICAgIDI0LCA3OCwgMTM2LCAxLCAxNDksIDIyMiwgMTgxLCAxMzYsIDEsIDE0OSwgMjMyLCAxODYsIDEzNiwgMjUsIDUsIDE0OSwgCisgICAgMTU2LCAxMzYsIDI1LCA1LCAxNDksIDIzMiwgMTg2LCAxMzYsIDIxLCAyMTAsIDg2LCAxMzYsIDIxLCAxMTAsIDEzNiwgMjEsIAogICAgIDEwNSwgMTM2LCAyMSwgMTU4LCAxMzYsIDIxLCAxNjEsIDEzNiwgMjEsIDE4OSwgMTM2LCAyMSwgMTk0LCAxMzYsIDIxLCAKLSAgICAxOTgsIDEzNiwgMjEsIDE5NSwgMTM2LCAyMSwgMjAwLCAxMzYsIDU0LCAyMTYsIDI0NywgMTM2LCA1NCwgMTIzLCAyNDAsIAotICAgIDIxMCwgMTM2LCA1NCwgMTIzLCAyMTYsIDE0NywgMTM2LCAyNDQsIDIsIDEyMywgMjI0LCAyMSwgMTM2LCAyNDQsIDIsIDEyMywgCi0gICAgMjQyLCAyNywgMTM2LCAyNDQsIDIsIDEzNCwgMjI0LCAxOSwgMTM2LCAyNDgsIDE1MCwgNzgsIDEzNiwgMSwgMjUwLCA5OSwgCi0gICAgMjI4LCAxMTEsIDEzNiwgMSwgMjUwLCA5OSwgMjMwLCAyNSwgMTM2LCAxLCAyNTAsIDk5LCAyMjIsIDE4MCwgMTM2LCAxLCAKLSAgICAyNTAsIDk5LCAxNTYsIDEzNiwgMSwgMjUwLCA5OSwgMjMyLCAxODUsIDEzNiwgMSwgMjUwLCA5OSwgMjM1LCAyMywgMTc1LCAKLSAgICA1LCAyNTQsIDc0LCAxNzUsIDUsIDIxMywgMTQ2LCAxNzUsIDEsIDI1MywgMTY1LCAxNzUsIDEsIDI1NSwgMjcsIDE3NSwgMSwgCi0gICAgMjU0LCAyMjMsIDE3NSwgMSwgMjU0LCAyMzgsIDE3NSwgMSwgMjM1LCAxNTEsIDE3NSwgMSwgMjM2LCAzMiwgMTc1LCAxLCAKLSAgICAyMTQsIDExMCwgMTc1LCAxLCAyMTQsIDExMiwgMTc1LCAxLCAyMzUsIDE3MywgMTc1LCAxLCAyMzUsIDE3NCwgMTc1LCAxLCAKLSAgICAyMzYsIDE4LCAxNzUsIDEsIDIzNiwgMjAsIDE3NSwgMSwgMjQ1LCAxNywgMTc1LCAxLCAyNDUsIDIwNCwgMTc1LCAxLCAyNTQsIAotICAgIDE4OCwgMTc1LCAxLCAyMjYsIDEwOCwgMTc1LCAxLCAyMjYsIDE3NywgMTc1LCAxLCAyNTMsIDE3OCwgMTc1LCAxLCAyNTQsIAotICAgIDE0NiwgMjM0LCAxODcsIDE3NSwgMSwgMjMxLCAyMDksIDIzNCwgMTg3LCAxNzUsIDEsIDI1NCwgMTQ2LCAyNDMsIDgyLCAKLSAgICAxNzUsIDEsIDIzMSwgMjA5LCAyNDMsIDgyLCAxNzUsIDEsIDIzNCwgMjI5LCAyMjksIDIyMiwgMTc1LCAxLCAyMjEsIDIzNiwgCi0gICAgMjQzLCA4MiwgMTc1LCAxLCAyNTQsIDE0NiwgMjUwLCAyMTYsIDE3NSwgMSwgMjMxLCAyMDksIDI1MCwgMjE2LCAxNzUsIDEsIAotICAgIDI1NCwgMTQ2LCAyMzUsIDEyNywgMTc1LCAxLCAyMzEsIDIwOSwgMjM1LCAxMjcsIDE3NSwgMSwgMjE3LCA5OCwgMjI5LCAKLSAgICAyMjIsIDE3NSwgMSwgMjE3LCA5OCwgMjIxLCAyMzUsIDIyOSwgMjIzLCAxNzUsIDEsIDIyMSwgMjM2LCAyMzUsIDEyNywgCi0gICAgMTc1LCAxLCAyNTQsIDE0NiwgMjE1LCAxNTIsIDE3NSwgMSwgMjMxLCAyMDksIDIxNSwgMTUyLCAxNzUsIDEsIDI1NCwgMTQ2LCAKLSAgICAyNDgsIDEyNiwgMTc1LCAxLCAyMzEsIDIwOSwgMjQ4LCAxMjYsIDE3NSwgMSwgMjMwLCA1MywgMjI5LCAxODAsIDE3NSwgMSwgCi0gICAgMjIxLCAyMzYsIDI0OCwgMTI2LCAxNzUsIDEsIDI1NCwgMTQ2LCAyMTcsIDMwLCAxNzUsIDEsIDIzMSwgMjA5LCAyMTcsIDMwLCAKLSAgICAxNzUsIDEsIDI1NCwgMTQ2LCAyNDgsIDE0NCwgMTc1LCAxLCAyMzEsIDIwOSwgMjQ4LCAxNDQsIDE3NSwgMSwgMjQ4LCAxNzQsIAotICAgIDIyOSwgMTgwLCAxNzUsIDEsIDIyMSwgMjM2LCAyNDgsIDE0NCwgMTc1LCAxLCAyNTQsIDE0NiwgMjI1LCAyMjgsIDE3NSwgMSwgCi0gICAgMjMxLCAyMDksIDIyNSwgMjI4LCAxNzUsIDEsIDI1NCwgMTQ2LCAyNTIsIDExMiwgMTc1LCAxLCAyMzEsIDIwOSwgMjUyLCAKLSAgICAxMTIsIDE3NSwgMSwgMjMxLCAxMzEsIDE3NSwgMSwgMjU0LCAxMzEsIDI1MiwgMTEyLCAxNzUsIDEsIDIxMSwgNTEsIDE3NSwgCi0gICAgMSwgMjIzLCAxMzMsIDE3NSwgMSwgMjQ4LCAxNzQsIDIzMywgNjcsIDE3NSwgMSwgMjE0LCAxLCAxNzUsIDEsIDIxNywgOTgsIAotICAgIDIyMSwgMjEwLCAxNzUsIDEsIDIzMCwgNTMsIDIyMSwgMjEwLCAxNzUsIDEsIDI0OCwgMTc0LCAyMjEsIDIxMCwgMTc1LCAxLCAKLSAgICAyNDEsIDI0MiwgMTc1LCAxLCAyMzAsIDUzLCAyMzMsIDY3LCAxNzUsIDEsIDI0NCwgMTU2LCAxNzUsIDUsIDI1NCwgMTc3LCAKLSAgICAxNzUsIDI1LCA1LCAyNTQsIDIzMywgMTc1LCAyNSwgNSwgMjM0LCAxNTUsIDI1NCwgMjQwLCAxNzUsIDI1LCA1LCAyNDcsIAotICAgIDIyOCwgMjU0LCAyNDAsIDE3NSwgMjUsIDUsIDIzNCwgMTU1LCAyMzUsIDE3MCwgMTc1LCAyNSwgNSwgMjQ3LCAyMjgsIDIzNSwgCi0gICAgMTcwLCAxNzUsIDI1LCA1LCAyMzQsIDE1NSwgMjI2LCA4OCwgMTc1LCAyNSwgNSwgMjQ3LCAyMjgsIDIyNiwgODgsIDE3NSwgCi0gICAgMjUsIDUsIDI0MywgMTI0LCAxNzUsIDI1LCA1LCAyMzQsIDE1LCAxNzUsIDI1LCA1LCAyNDcsIDIyOCwgMjM0LCAxNSwgMTc1LCAKLSAgICAyNSwgNSwgMjM0LCAxNywgMjQ4LCA2NywgMTc1LCAyNSwgNSwgMjM0LCAxNiwgMjQyLCA0NywgMjU0LCAyMzMsIDE3NSwgMjUsIAotICAgIDUsIDIzNCwgMTYsIDI0MiwgNDcsIDI0NywgMjI4LCAyNTQsIDIzMywgMTc1LCAyNSwgNSwgMjM0LCAxNiwgMjQyLCA0NywgCi0gICAgMjQzLCA4MSwgMTc1LCAyNSwgNSwgMjQzLCA4MSwgMTc1LCAyNSwgNSwgMjQ3LCAyMjgsIDI0MywgMTI0LCAxNzUsIDI1LCA1LCAKLSAgICAyNDcsIDIyOCwgMjQzLCA4MSwgMTc1LCAyMjQsIDE0MSwgMjMzLCAyMDcsIDE2OCwgMTM1LCAyMzQsIDI5LCAyMzQsIDI0NiwgCi0gICAgMTY4LCAxMzUsIDIzNCwgMTA2LCAyMzQsIDEyOCwgMTY4LCAxMzUsIDIzNCwgMTA2LCAyMzQsIDk5LCAxNjgsIDEzNSwgMjM0LCAKLSAgICAxMDYsIDIzNCwgOTUsIDE2OCwgMTM1LCAyMzQsIDEwNiwgMjM0LCAxMDMsIDE2OCwgMTM1LCAyMzQsIDEwNiwgMjIzLCAxNTQsIAotICAgIDE2OCwgMTM1LCAyMjksIDUsIDIyOCwgMjQ4LCAxNjgsIDEzNSwgMjUwLCA4NywgMjUwLCAxNDcsIDE2OCwgMTM1LCAyNTAsIAotICAgIDg3LCAyNTAsIDk1LCAxNjgsIDEzNSwgMjUwLCA4NywgMjUwLCAxNDYsIDE2OCwgMTM1LCAyMTksIDU5LCAyMTksIDU4LCAKLSAgICAxNjgsIDEzNSwgMjUwLCA4NywgMjUwLCA4MywgMTY4LCAxMzUsIDIxMCwgMjQ1LCAyMTAsIDI1MiwgMTY4LCAxMzUsIDI0NywgCi0gICAgMTQ2LCAyNTAsIDE1NCwgMTY4LCAxMzUsIDIxNiwgNDIsIDIyNSwgMjM4LCAxNjgsIDEzNSwgMjE2LCAxNTcsIDIxNiwgMjAwLCAKLSAgICAxNjgsIDEzNSwgMjE2LCAxNTcsIDIyOSwgMjAxLCAxNjgsIDEzNSwgMjE2LCAxNTcsIDIyNSwgMTExLCAxNjgsIDEzNSwgCi0gICAgMjI4LCA3NSwgMjI5LCA5OCwgMTY4LCAxMzUsIDI0NywgMTQ2LCAyNDgsIDY4LCAxNjgsIDEzNSwgMjE2LCA0MiwgMjE3LCAKLSAgICA1NSwgMTY4LCAxMzUsIDIxNiwgMTU3LCAyMTYsIDEzMSwgMTY4LCAxMzUsIDIxNiwgMTU3LCAyMTYsIDIwNCwgMTY4LCAxMzUsIAotICAgIDIxNiwgMTU3LCAyMTYsIDE1NCwgMTY4LCAxMzUsIDIyOCwgNzUsIDIyNywgMjM3LCAxNjgsIDEzNSwgMjUxLCAyMDYsIDI1MiwgCi0gICAgMTY0LCAxNjgsIDEzNSwgMjI1LCAxNywgMjI1LCA0MiwgMTY4LCAxMzUsIDIyNSwgMTIyLCAyMjUsIDExMywgMTY4LCAxMzUsIAotICAgIDI0NCwgNDQsIDI0NCwgMTk2LCAxNjgsIDEzNSwgMjI1LCAxMjIsIDIyNSwgMTQxLCAxNjgsIDEzNSwgMjQ0LCA0NCwgMjQ0LCAKLSAgICAxNzMsIDE2OCwgMTM1LCAyMjUsIDEyMiwgMjIxLCAyNDcsIDE2OCwgMTM1LCAyMzAsIDE2MiwgMTg0LCAxNjgsIDEzNSwgCi0gICAgMjEwLCAyNDUsIDIxMSwgNzksIDE2OCwgMTM1LCAyMjIsIDIxMiwgMjIyLCAxMzksIDE2OCwgMTM1LCAyMjIsIDE0MCwgMTY4LCAKLSAgICAxMzUsIDIzMiwgMTU3LCAyMzIsIDIwNiwgMTY4LCAxMzUsIDIzMiwgOTgsIDE2OCwgMTM1LCAyMTEsIDIyOCwgMjEyLCA2MSwgCi0gICAgMTY4LCAxMzUsIDIxOSwgNTksIDIyMiwgNiwgMTY4LCAxMzUsIDIxOSwgNTksIDIyMiwgMTE0LCAxNjgsIDEzNSwgMjE5LCAKLSAgICA1OSwgMjE4LCA4MiwgMTY4LCAxMzUsIDI0MSwgNjksIDI0MSwgMTU5LCAxNjgsIDEzNSwgMjMyLCAxNTcsIDI1MCwgNjgsIAotICAgIDE2OCwgMTM1LCAxNDQsIDI1NCwgMTE1LCAxNjgsIDEzNSwgMjQxLCA2OSwgMjI4LCA3MCwgMTY4LCAxMzUsIDIyNiwgNjgsIAotICAgIDE2OCwgMTM1LCAyMjEsIDIzMCwgNjEsIDE2OCwgMTM1LCAyMzEsIDIwNCwgMjQyLCAxNywgMTY4LCAxMzUsIDIyMSwgMjMwLCAKLSAgICAyNTUsIDczLCAxNjgsIDEzNSwgMjIxLCAyMzAsIDI1NCwgMTM2LCAxNjgsIDEzNSwgMjIxLCAyMzAsIDczLCAxNjgsIDEzNSwgCi0gICAgMjIxLCAyMzAsIDIzNiwgMzMsIDE2OCwgMTM1LCAyMjEsIDIzMCwgMjE0LCAyMTQsIDE2OCwgMTM1LCAyMjEsIDIzMCwgMjE0LCAKLSAgICAyMTIsIDE2OCwgMTM1LCAyMjEsIDIzMCwgNzAsIDE2OCwgMTM1LCAyMjEsIDIzMCwgMjE0LCAxMTgsIDE2OCwgMTM1LCAyMjUsIAotICAgIDEyNCwgMTY4LCAyNDksIDk4LCAxNiwgMjUyLCAxNjUsIDE2OCwgMTM1LCAyMjEsIDIzMCwgNzUsIDE2OCwgMTM1LCAyMjEsIAotICAgIDIzMCwgMjU0LCAyNDMsIDE2OCwgMTM1LCAyMjEsIDIzMCwgNzYsIDE2OCwgMTM1LCAyMjEsIDIzMCwgMjU0LCAyMDIsIDIzMSwgCi0gICAgMTk4LCAxNjgsIDEzNSwgMjIxLCAyMzAsIDI1NCwgMjAyLCAyMzEsIDE5OSwgMTY4LCAxMzUsIDIzMywgMTA2LCAxNjgsIAotICAgIDEzNSwgMjMxLCAxOTUsIDE2OCwgMTM1LCAyMzEsIDE5NiwgMTY4LCAxMzUsIDIzMSwgMjA0LCAyNDUsIDE4MCwgMTY4LCAKLSAgICAxMzUsIDIzMSwgMjA0LCAyMTYsIDE1NiwgMTY4LCAxMzUsIDIzMSwgMjA0LCAyMTUsIDIyOCwgMTY4LCAxMzUsIDIzMSwgCi0gICAgMjA0LCAyNTAsIDEzNSwgMTY4LCAxMzUsIDIxNiwgMTk4LCAxNjgsIDEzNSwgMjI4LCAyMDUsIDE2OCwgMTM1LCAyMTEsIDczLCAKLSAgICAxNjgsIDEzNSwgMjQ0LCAzNSwgMTY4LCAyMSwgMjEwLCA4NiwgMTY4LCAyMSwgMTEwLCAxNjgsIDIxLCAxMDUsIDE2OCwgMjEsIAotICAgIDE1OCwgMTY4LCAyMSwgMTYxLCAxNjgsIDIxLCAxODksIDE2OCwgMjEsIDE5NCwgMTY4LCAyMSwgMTk4LCAxNjgsIDIxLCAKLSAgICAxOTUsIDE2OCwgMjEsIDIwMCwgMTY4LCAxMzUsIDI1NCwgMTExLCAxNjgsIDEzNSwgMjM0LCAxMDQsIDIwOSwgMjA5LCAxLCAKLSAgICAyMzQsIDI4LCAyMDksIDIwOSwgMSwgMjM0LCAxMDYsIDIxOCwgMzUsIDIwOSwgMjA5LCAxLCAyMzQsIDEwNiwgMjE3LCA2MiwgCi0gICAgMjA5LCAyMDksIDEsIDIyOSwgNCwgMjA5LCAyMDksIDEsIDI0OSwgMjM4LCAyMDksIDIwOSwgMSwgMjE5LCA1OSwgMjE3LCAKLSAgICA2MiwgMjA5LCAyMDksIDEsIDIyNywgMTM0LCAyMDksIDIwOSwgMSwgMjQ3LCAxNDUsIDIwOSwgMjA5LCAxLCAxMTEsIDIwOSwgCi0gICAgMjA5LCAxLCAyMTYsIDE1NywgMjE4LCAzNSwgMjA5LCAyMDksIDEsIDIxNiwgMTU3LCAyMTcsIDYyLCAyMDksIDIwOSwgMSwgCi0gICAgMjI4LCA3NCwgMjA5LCAyMDksIDEsIDI1MSwgMjA1LCAyMDksIDIwOSwgMSwgMjI1LCAxNiwgMjA5LCAyMDksIDEsIDIyNSwgCi0gICAgMTIyLCAyMTgsIDM1LCAyMDksIDIwOSwgMSwgMjQ0LCA0NCwgMjE3LCA2MiwgMjA5LCAyMDksIDEsIDIyNSwgMTIyLCAyMTcsIAotICAgIDYyLCAyMDksIDIwOSwgMSwgMjQ0LCA0NCwgMjE4LCAzNSwgMjA5LCAyMDksIDEsIDIzMCwgMTYxLCAyMDksIDIwOSwgMSwgCi0gICAgMjEwLCAyNDQsIDIwOSwgMjA5LCAxLCAyMzIsIDE1NywgMjMyLCAyMDYsIDIwOSwgMjA5LCAxLCAyMzIsIDE1NywgMjMyLCAKLSAgICAxMjEsIDIwOSwgMjA5LCAxLCAyMTEsIDIyNywgMjA5LCAyMDksIDEsIDIxOSwgNTksIDIxOCwgMzUsIDIwOSwgMjA5LCAxLCAKLSAgICAyNDEsIDY5LCAyMTgsIDM1LCAyMDksIDIwOSwgMSwgNzYsIDIwOSwgMjA5LCAxLCAyNDEsIDY5LCAyMTcsIDYyLCAyMDksIAotICAgIDIwOSwgMjQ1LCAxNjMsIDIwOSwgMjA5LCAyNSwgNSwgNjEsIDIwOSwgMjA5LCAyNSwgNSwgMjMxLCAyMDQsIDIzNCwgMjM0LCAKLSAgICAyMDksIDIwOSwgMjUsIDUsIDI1NSwgNzMsIDIwOSwgMjA5LCAyNSwgNSwgMjU0LCAxMzYsIDIwOSwgMjA5LCAyNSwgNSwgNzMsIAotICAgIDIwOSwgMjA5LCAyNSwgNSwgMjM2LCAzMywgMjA5LCAyMDksIDI1LCA1LCAyMTEsIDExNywgMjA5LCAyMDksIDI1LCA1LCAKLSAgICAyMTAsIDE2OSwgMjA5LCAyMDksIDI1LCA1LCA3MCwgMjA5LCAyMDksIDI1LCA1LCAyMTQsIDExOCwgMjA5LCAyMDksIDI1LCAKLSAgICA1LCAyMzEsIDIwNCwgMjM0LCAxMywgMjA5LCAyMDksIDIyMCwgMTQ1LCA1LCAyMzIsIDE1NiwgMjA5LCAyMDksIDIyMCwgCi0gICAgMTQ1LCA1LCAyMjcsIDEzNCwgMjA5LCAyMDksIDI1LCA1LCA3NSwgMjA5LCAyMDksIDI1LCA1LCAyNDUsIDE5NSwgMjA5LCAKLSAgICAyMDksIDI1LCA1LCA3NiwgMjA5LCAyMDksIDI1LCA1LCAyNTMsIDE2NywgMjA5LCAyMDksIDI1LCA1LCAyNTQsIDIwMSwgCi0gICAgMjA5LCAyMDksIDIzNCwgMjksIDIzMywgMTM1LCAyMDksIDIwOSwgMTM4LCAyMzEsIDIwNCwgMjQ1LCAxODAsIDIwOSwgMjA5LCAKLSAgICAxMzgsIDIzMSwgMjA0LCAyMTYsIDE1NiwgMjA5LCAyMDksIDEzOCwgMjMxLCAyMDQsIDIxNiwgMTE3LCAyMDksIDIwOSwgCi0gICAgMTM4LCAyMzEsIDIwNCwgMjUwLCAyMjMsIDIwOSwgMjA5LCAyNTEsIDQsIDc4LCAyMDksIDIwOSwgMjI4LCAyMTQsIDIwOSwgCisgICAgMTk4LCAxMzYsIDIxLCAxOTUsIDEzNiwgMjEsIDIwMCwgMTM2LCA1NCwgMjE2LCAyNDgsIDEzNiwgNTQsIDEyMywgMjQwLCAKKyAgICAyMTEsIDEzNiwgNTQsIDEyMywgMjE2LCAxNDgsIDEzNiwgMjQ0LCAzLCAxMjMsIDIyNCwgMjIsIDEzNiwgMjQ0LCAzLCAxMjMsIAorICAgIDI0MiwgMjgsIDEzNiwgMjQ0LCAzLCAxMzQsIDIyNCwgMjAsIDEzNiwgMjQ4LCAxNTEsIDc4LCAxMzYsIDEsIDI1MCwgMTAwLCAKKyAgICAyMjgsIDExMiwgMTM2LCAxLCAyNTAsIDEwMCwgMjMwLCAyNiwgMTM2LCAxLCAyNTAsIDEwMCwgMjIyLCAxODEsIDEzNiwgMSwgCisgICAgMjUwLCAxMDAsIDE1NiwgMTM2LCAxLCAyNTAsIDEwMCwgMjMyLCAxODYsIDEzNiwgMSwgMjUwLCAxMDAsIDIzNSwgMjQsIAorICAgIDE3NSwgNSwgMjU0LCA3NSwgMTc1LCA1LCAyMTMsIDE0NiwgMTc1LCAxLCAyNTMsIDE2NiwgMTc1LCAxLCAyNTUsIDI4LCAKKyAgICAxNzUsIDEsIDI1NCwgMjI0LCAxNzUsIDEsIDI1NCwgMjM5LCAxNzUsIDEsIDIzNSwgMTUyLCAxNzUsIDEsIDIzNiwgMzMsIAorICAgIDE3NSwgMSwgMjE0LCAxMTAsIDE3NSwgMSwgMjE0LCAxMTIsIDE3NSwgMSwgMjM1LCAxNzQsIDE3NSwgMSwgMjM1LCAxNzUsIAorICAgIDE3NSwgMSwgMjM2LCAxOSwgMTc1LCAxLCAyMzYsIDIxLCAxNzUsIDEsIDI0NSwgMTgsIDE3NSwgMSwgMjQ1LCAyMDUsIDE3NSwgCisgICAgMSwgMjU0LCAxODksIDE3NSwgMSwgMjI2LCAxMDksIDE3NSwgMSwgMjI2LCAxNzgsIDE3NSwgMSwgMjUzLCAxNzksIDE3NSwgCisgICAgMSwgMjU0LCAxNDcsIDIzNCwgMTg4LCAxNzUsIDEsIDIzMSwgMjEwLCAyMzQsIDE4OCwgMTc1LCAxLCAyNTQsIDE0NywgMjQzLCAKKyAgICA4MywgMTc1LCAxLCAyMzEsIDIxMCwgMjQzLCA4MywgMTc1LCAxLCAyMzQsIDIzMCwgMjI5LCAyMjMsIDE3NSwgMSwgMjIxLCAKKyAgICAyMzcsIDI0MywgODMsIDE3NSwgMSwgMjU0LCAxNDcsIDI1MCwgMjE3LCAxNzUsIDEsIDIzMSwgMjEwLCAyNTAsIDIxNywgCisgICAgMTc1LCAxLCAyNTQsIDE0NywgMjM1LCAxMjgsIDE3NSwgMSwgMjMxLCAyMTAsIDIzNSwgMTI4LCAxNzUsIDEsIDIxNywgOTksIAorICAgIDIyOSwgMjIzLCAxNzUsIDEsIDIxNywgOTksIDIyMSwgMjM2LCAyMjksIDIyNCwgMTc1LCAxLCAyMjEsIDIzNywgMjM1LCAKKyAgICAxMjgsIDE3NSwgMSwgMjU0LCAxNDcsIDIxNSwgMTUzLCAxNzUsIDEsIDIzMSwgMjEwLCAyMTUsIDE1MywgMTc1LCAxLCAyNTQsIAorICAgIDE0NywgMjQ4LCAxMjcsIDE3NSwgMSwgMjMxLCAyMTAsIDI0OCwgMTI3LCAxNzUsIDEsIDIzMCwgNTQsIDIyOSwgMTgxLCAKKyAgICAxNzUsIDEsIDIyMSwgMjM3LCAyNDgsIDEyNywgMTc1LCAxLCAyNTQsIDE0NywgMjE3LCAzMSwgMTc1LCAxLCAyMzEsIDIxMCwgCisgICAgMjE3LCAzMSwgMTc1LCAxLCAyNTQsIDE0NywgMjQ4LCAxNDUsIDE3NSwgMSwgMjMxLCAyMTAsIDI0OCwgMTQ1LCAxNzUsIDEsIAorICAgIDI0OCwgMTc1LCAyMjksIDE4MSwgMTc1LCAxLCAyMjEsIDIzNywgMjQ4LCAxNDUsIDE3NSwgMSwgMjU0LCAxNDcsIDIyNSwgCisgICAgMjI5LCAxNzUsIDEsIDIzMSwgMjEwLCAyMjUsIDIyOSwgMTc1LCAxLCAyNTQsIDE0NywgMjUyLCAxMTMsIDE3NSwgMSwgMjMxLCAKKyAgICAyMTAsIDI1MiwgMTEzLCAxNzUsIDEsIDIzMSwgMTMyLCAxNzUsIDEsIDI1NCwgMTMyLCAyNTIsIDExMywgMTc1LCAxLCAyMTEsIAorICAgIDUxLCAxNzUsIDEsIDIyMywgMTM0LCAxNzUsIDEsIDI0OCwgMTc1LCAyMzMsIDY4LCAxNzUsIDEsIDIxNCwgMSwgMTc1LCAxLCAKKyAgICAyMTcsIDk5LCAyMjEsIDIxMSwgMTc1LCAxLCAyMzAsIDU0LCAyMjEsIDIxMSwgMTc1LCAxLCAyNDgsIDE3NSwgMjIxLCAyMTEsIAorICAgIDE3NSwgMSwgMjQxLCAyNDMsIDE3NSwgMSwgMjMwLCA1NCwgMjMzLCA2OCwgMTc1LCAxLCAyNDQsIDE1NywgMTc1LCA1LCAKKyAgICAyNTQsIDE3OCwgMTc1LCAyNSwgNSwgMjU0LCAyMzQsIDE3NSwgMjUsIDUsIDIzNCwgMTU2LCAyNTQsIDI0MSwgMTc1LCAyNSwgCisgICAgNSwgMjQ3LCAyMjksIDI1NCwgMjQxLCAxNzUsIDI1LCA1LCAyMzQsIDE1NiwgMjM1LCAxNzEsIDE3NSwgMjUsIDUsIDI0NywgCisgICAgMjI5LCAyMzUsIDE3MSwgMTc1LCAyNSwgNSwgMjM0LCAxNTYsIDIyNiwgODksIDE3NSwgMjUsIDUsIDI0NywgMjI5LCAyMjYsIAorICAgIDg5LCAxNzUsIDI1LCA1LCAyNDMsIDEyNSwgMTc1LCAyNSwgNSwgMjM0LCAxNiwgMTc1LCAyNSwgNSwgMjQ3LCAyMjksIDIzNCwgCisgICAgMTYsIDE3NSwgMjUsIDUsIDIzNCwgMTgsIDI0OCwgNjgsIDE3NSwgMjUsIDUsIDIzNCwgMTcsIDI0MiwgNDgsIDI1NCwgMjM0LCAKKyAgICAxNzUsIDI1LCA1LCAyMzQsIDE3LCAyNDIsIDQ4LCAyNDcsIDIyOSwgMjU0LCAyMzQsIDE3NSwgMjUsIDUsIDIzNCwgMTcsIAorICAgIDI0MiwgNDgsIDI0MywgODIsIDE3NSwgMjUsIDUsIDI0MywgODIsIDE3NSwgMjUsIDUsIDI0NywgMjI5LCAyNDMsIDEyNSwgCisgICAgMTc1LCAyNSwgNSwgMjQ3LCAyMjksIDI0MywgODIsIDE3NSwgMjI0LCAxNDIsIDIzMywgMjA4LCAxNjgsIDEzNSwgMjM0LCAKKyAgICAzMCwgMjM0LCAyNDcsIDE2OCwgMTM1LCAyMzQsIDEwNywgMjM0LCAxMjksIDE2OCwgMTM1LCAyMzQsIDEwNywgMjM0LCAxMDAsIAorICAgIDE2OCwgMTM1LCAyMzQsIDEwNywgMjM0LCA5NiwgMTY4LCAxMzUsIDIzNCwgMTA3LCAyMzQsIDEwNCwgMTY4LCAxMzUsIDIzNCwgCisgICAgMTA3LCAyMjMsIDE1NSwgMTY4LCAxMzUsIDIyOSwgNiwgMjI4LCAyNDksIDE2OCwgMTM1LCAyNTAsIDg4LCAyNTAsIDE0OCwgCisgICAgMTY4LCAxMzUsIDI1MCwgODgsIDI1MCwgOTYsIDE2OCwgMTM1LCAyNTAsIDg4LCAyNTAsIDE0NywgMTY4LCAxMzUsIDIxOSwgCisgICAgNjAsIDIxOSwgNTksIDE2OCwgMTM1LCAyNTAsIDg4LCAyNTAsIDg0LCAxNjgsIDEzNSwgMjEwLCAyNDUsIDIxMCwgMjUyLCAKKyAgICAxNjgsIDEzNSwgMjQ3LCAxNDcsIDI1MCwgMTU1LCAxNjgsIDEzNSwgMjE2LCA0MywgMjI1LCAyMzksIDE2OCwgMTM1LCAyMTYsIAorICAgIDE1OCwgMjE2LCAyMDEsIDE2OCwgMTM1LCAyMTYsIDE1OCwgMjI5LCAyMDIsIDE2OCwgMTM1LCAyMTYsIDE1OCwgMjI1LCAKKyAgICAxMTIsIDE2OCwgMTM1LCAyMjgsIDc2LCAyMjksIDk5LCAxNjgsIDEzNSwgMjQ3LCAxNDcsIDI0OCwgNjksIDE2OCwgMTM1LCAKKyAgICAyMTYsIDQzLCAyMTcsIDU2LCAxNjgsIDEzNSwgMjE2LCAxNTgsIDIxNiwgMTMyLCAxNjgsIDEzNSwgMjE2LCAxNTgsIDIxNiwgCisgICAgMjA1LCAxNjgsIDEzNSwgMjE2LCAxNTgsIDIxNiwgMTU1LCAxNjgsIDEzNSwgMjI4LCA3NiwgMjI3LCAyMzgsIDE2OCwgMTM1LCAKKyAgICAyNTEsIDIwNywgMjUyLCAxNjUsIDE2OCwgMTM1LCAyMjUsIDE4LCAyMjUsIDQzLCAxNjgsIDEzNSwgMjI1LCAxMjMsIDIyNSwgCisgICAgMTE0LCAxNjgsIDEzNSwgMjQ0LCA0NSwgMjQ0LCAxOTcsIDE2OCwgMTM1LCAyMjUsIDEyMywgMjI1LCAxNDIsIDE2OCwgMTM1LCAKKyAgICAyNDQsIDQ1LCAyNDQsIDE3NCwgMTY4LCAxMzUsIDIyNSwgMTIzLCAyMjEsIDI0OCwgMTY4LCAxMzUsIDIzMCwgMTYzLCAxODUsIAorICAgIDE2OCwgMTM1LCAyMTAsIDI0NSwgMjExLCA3OSwgMTY4LCAxMzUsIDIyMiwgMjEzLCAyMjIsIDE0MCwgMTY4LCAxMzUsIDIyMiwgCisgICAgMTQxLCAxNjgsIDEzNSwgMjMyLCAxNTgsIDIzMiwgMjA3LCAxNjgsIDEzNSwgMjMyLCA5OSwgMTY4LCAxMzUsIDIxMSwgMjI4LCAKKyAgICAyMTIsIDYxLCAxNjgsIDEzNSwgMjE5LCA2MCwgMjIyLCA3LCAxNjgsIDEzNSwgMjE5LCA2MCwgMjIyLCAxMTUsIDE2OCwgCisgICAgMTM1LCAyMTksIDYwLCAyMTgsIDgzLCAxNjgsIDEzNSwgMjQxLCA3MCwgMjQxLCAxNjAsIDE2OCwgMTM1LCAyMzIsIDE1OCwgCisgICAgMjUwLCA2OSwgMTY4LCAxMzUsIDE0NCwgMjU0LCAxMTYsIDE2OCwgMTM1LCAyNDEsIDcwLCAyMjgsIDcxLCAxNjgsIDEzNSwgCisgICAgMjI2LCA2OSwgMTY4LCAxMzUsIDIyMSwgMjMxLCA2MSwgMTY4LCAxMzUsIDIzMSwgMjA1LCAyNDIsIDE4LCAxNjgsIDEzNSwgCisgICAgMjIxLCAyMzEsIDI1NSwgNzQsIDE2OCwgMTM1LCAyMjEsIDIzMSwgMjU0LCAxMzcsIDE2OCwgMTM1LCAyMjEsIDIzMSwgNzMsIAorICAgIDE2OCwgMTM1LCAyMjEsIDIzMSwgMjM2LCAzNCwgMTY4LCAxMzUsIDIyMSwgMjMxLCAyMTQsIDIxNCwgMTY4LCAxMzUsIDIyMSwgCisgICAgMjMxLCAyMTQsIDIxMiwgMTY4LCAxMzUsIDIyMSwgMjMxLCA3MCwgMTY4LCAxMzUsIDIyMSwgMjMxLCAyMTQsIDExOCwgMTY4LCAKKyAgICAxMzUsIDIyNSwgMTI1LCAxNjgsIDI0OSwgOTksIDE2LCAyNTIsIDE2NiwgMTY4LCAxMzUsIDIyMSwgMjMxLCA3NSwgMTY4LCAKKyAgICAxMzUsIDIyMSwgMjMxLCAyNTQsIDI0NCwgMTY4LCAxMzUsIDIyMSwgMjMxLCA3NiwgMTY4LCAxMzUsIDIyMSwgMjMxLCAyNTQsIAorICAgIDIwMywgMjMxLCAxOTksIDE2OCwgMTM1LCAyMjEsIDIzMSwgMjU0LCAyMDMsIDIzMSwgMjAwLCAxNjgsIDEzNSwgMjMzLCAKKyAgICAxMDcsIDE2OCwgMTM1LCAyMzEsIDE5NiwgMTY4LCAxMzUsIDIzMSwgMTk3LCAxNjgsIDEzNSwgMjMxLCAyMDUsIDI0NSwgCisgICAgMTgxLCAxNjgsIDEzNSwgMjMxLCAyMDUsIDIxNiwgMTU3LCAxNjgsIDEzNSwgMjMxLCAyMDUsIDIxNSwgMjI5LCAxNjgsIAorICAgIDEzNSwgMjMxLCAyMDUsIDI1MCwgMTM2LCAxNjgsIDEzNSwgMjE2LCAxOTksIDE2OCwgMTM1LCAyMjgsIDIwNiwgMTY4LCAKKyAgICAxMzUsIDIxMSwgNzMsIDE2OCwgMTM1LCAyNDQsIDM2LCAxNjgsIDIxLCAyMTAsIDg2LCAxNjgsIDIxLCAxMTAsIDE2OCwgMjEsIAorICAgIDEwNSwgMTY4LCAyMSwgMTU4LCAxNjgsIDIxLCAxNjEsIDE2OCwgMjEsIDE4OSwgMTY4LCAyMSwgMTk0LCAxNjgsIDIxLCAKKyAgICAxOTgsIDE2OCwgMjEsIDE5NSwgMTY4LCAyMSwgMjAwLCAxNjgsIDEzNSwgMjU0LCAxMTIsIDE2OCwgMTM1LCAyMzQsIDEwNSwgCisgICAgMjA5LCAyMDksIDEsIDIzNCwgMjksIDIwOSwgMjA5LCAxLCAyMzQsIDEwNywgMjE4LCAzNiwgMjA5LCAyMDksIDEsIDIzNCwgCisgICAgMTA3LCAyMTcsIDYzLCAyMDksIDIwOSwgMSwgMjI5LCA1LCAyMDksIDIwOSwgMSwgMjQ5LCAyMzksIDIwOSwgMjA5LCAxLCAKKyAgICAyMTksIDYwLCAyMTcsIDYzLCAyMDksIDIwOSwgMSwgMjI3LCAxMzUsIDIwOSwgMjA5LCAxLCAyNDcsIDE0NiwgMjA5LCAyMDksIAorICAgIDEsIDExMSwgMjA5LCAyMDksIDEsIDIxNiwgMTU4LCAyMTgsIDM2LCAyMDksIDIwOSwgMSwgMjE2LCAxNTgsIDIxNywgNjMsIAorICAgIDIwOSwgMjA5LCAxLCAyMjgsIDc1LCAyMDksIDIwOSwgMSwgMjUxLCAyMDYsIDIwOSwgMjA5LCAxLCAyMjUsIDE3LCAyMDksIAorICAgIDIwOSwgMSwgMjI1LCAxMjMsIDIxOCwgMzYsIDIwOSwgMjA5LCAxLCAyNDQsIDQ1LCAyMTcsIDYzLCAyMDksIDIwOSwgMSwgCisgICAgMjI1LCAxMjMsIDIxNywgNjMsIDIwOSwgMjA5LCAxLCAyNDQsIDQ1LCAyMTgsIDM2LCAyMDksIDIwOSwgMSwgMjMwLCAxNjIsIAorICAgIDIwOSwgMjA5LCAxLCAyMTAsIDI0NCwgMjA5LCAyMDksIDEsIDIzMiwgMTU4LCAyMzIsIDIwNywgMjA5LCAyMDksIDEsIDIzMiwgCisgICAgMTU4LCAyMzIsIDEyMiwgMjA5LCAyMDksIDEsIDIxMSwgMjI3LCAyMDksIDIwOSwgMSwgMjE5LCA2MCwgMjE4LCAzNiwgMjA5LCAKKyAgICAyMDksIDEsIDI0MSwgNzAsIDIxOCwgMzYsIDIwOSwgMjA5LCAxLCA3NiwgMjA5LCAyMDksIDEsIDI0MSwgNzAsIDIxNywgNjMsIAorICAgIDIwOSwgMjA5LCAyNDUsIDE2NCwgMjA5LCAyMDksIDI1LCA1LCA2MSwgMjA5LCAyMDksIDI1LCA1LCAyMzEsIDIwNSwgMjM0LCAKKyAgICAyMzUsIDIwOSwgMjA5LCAyNSwgNSwgMjU1LCA3NCwgMjA5LCAyMDksIDI1LCA1LCAyNTQsIDEzNywgMjA5LCAyMDksIDI1LCAKKyAgICA1LCA3MywgMjA5LCAyMDksIDI1LCA1LCAyMzYsIDM0LCAyMDksIDIwOSwgMjUsIDUsIDIxMSwgMTE3LCAyMDksIDIwOSwgMjUsIAorICAgIDUsIDIxMCwgMTY5LCAyMDksIDIwOSwgMjUsIDUsIDcwLCAyMDksIDIwOSwgMjUsIDUsIDIxNCwgMTE4LCAyMDksIDIwOSwgCisgICAgMjUsIDUsIDIzMSwgMjA1LCAyMzQsIDE0LCAyMDksIDIwOSwgMjIwLCAxNDYsIDUsIDIzMiwgMTU3LCAyMDksIDIwOSwgMjIwLCAKKyAgICAxNDYsIDUsIDIyNywgMTM1LCAyMDksIDIwOSwgMjUsIDUsIDc1LCAyMDksIDIwOSwgMjUsIDUsIDI0NSwgMTk2LCAyMDksIAorICAgIDIwOSwgMjUsIDUsIDc2LCAyMDksIDIwOSwgMjUsIDUsIDI1MywgMTY4LCAyMDksIDIwOSwgMjUsIDUsIDI1NCwgMjAyLCAKKyAgICAyMDksIDIwOSwgMjM0LCAzMCwgMjMzLCAxMzYsIDIwOSwgMjA5LCAxMzgsIDIzMSwgMjA1LCAyNDUsIDE4MSwgMjA5LCAyMDksIAorICAgIDEzOCwgMjMxLCAyMDUsIDIxNiwgMTU3LCAyMDksIDIwOSwgMTM4LCAyMzEsIDIwNSwgMjE2LCAxMTgsIDIwOSwgMjA5LCAKKyAgICAxMzgsIDIzMSwgMjA1LCAyNTAsIDIyNCwgMjA5LCAyMDksIDI1MSwgNSwgNzgsIDIwOSwgMjA5LCAyMjgsIDIxNSwgMjA5LCAKICAgICAyMDksIDIxLCAyMTAsIDg2LCAyMDksIDIwOSwgMjEsIDExMCwgMjA5LCAyMDksIDIxLCAxMDUsIDIwOSwgMjA5LCAyMSwgCiAgICAgMTU4LCAyMDksIDIwOSwgMjEsIDE2MSwgMjA5LCAyMDksIDIxLCAxODksIDIwOSwgMjA5LCAyMSwgMTk0LCAyMDksIDIwOSwgCi0gICAgMjEsIDE5OCwgMjA5LCAyMDksIDIxLCAxOTUsIDIwOSwgMjA5LCAyMSwgMjAwLCAyMDksIDIwOSwgMjQxLCA2OSwgMjI4LCAKLSAgICA3NCwgMjA5LCAyMDksIDI0MSwgNjksIDIzMCwgMTYxLCAyMDksIDIwOSwgMSwgMjM0LCAxMDcsIDI0MiwgMTc0LCAyMDksIAotICAgIDIwOSwgMSwgMjM0LCAxMDcsIDIyNywgMTM0LCA2MywgMywgMjI2LCAyMDQsIDYzLCAxNjQsIDI0MiwgMTE1LCAyMTEsIDAsIAotICAgIDIzMCwgMjQ4LCAyMTUsIDE4OSwgNjEsIDYzLCAxNjQsIDI0MiwgMTE1LCAyMTEsIDAsIDIzMCwgMjQ4LCAyNTUsIDE1OSwgCi0gICAgMjIyLCAyMTYsIDI1MiwgNzcsIDE4NCwgNjMsIDE2NCwgMjQyLCAxMTUsIDIxMSwgMCwgMjMwLCAyNDgsIDI1NSwgMTU5LCAKLSAgICAyNDIsIDExNSwgMjE1LCAxNzMsIDE4NCwgNjMsIDE2NCwgNjUsIDIxMSwgMCwgMjMwLCAyNDgsIDIzMSwgOTMsIDE4NCwgNjMsIAotICAgIDE2NCwgMjQ5LCAyNTIsIDIxMSwgMCwgMjMwLCAyNDgsIDIyMCwgMTA5LCAxODQsIDYzLCAxNjQsIDI1MCwgMjM5LCAyMTEsIAotICAgIDAsIDIzMCwgMjQ4LCAyMjUsIDExMiwgMjIwLCA5NiwgMTg0LCA2MywgMTY0LCAyMTEsIDAsIDIzMCwgMjQ4LCAyMTUsIDE3MywgCi0gICAgMjIwLCA5NiwgMTg0LCA2MywgMTY0LCAyMjEsIDIwOCwgMjIwLCA5NSwgNjMsIDE2NCwgMjUxLCAxMjgsIDIxMSwgMCwgMjMwLCAKLSAgICAyNDcsIDYzLCAxNjQsIDI1MSwgMjIzLCAyMjAsIDMsIDIxMSwgMCwgMjMwLCAyNDcsIDYzLCAxNjQsIDIzNSwgMTk3LCAyMTUsIAotICAgIDE3MiwgNjMsIDE2NCwgMjQ4LCA2MSwgMjE1LCAxNzMsIDI1MSwgMTI3LCA2MywgMTY0LCAyMjAsIDk1LCA2MywgMTY0LCAKLSAgICAyMjcsIDEzOSwgMjIwLCA5NSwgNjMsIDE2NCwgMjE1LCAxNzMsIDIyMCwgOTUsIDYzLCAxNjQsIDIyNywgMTM5LCAyMTUsIAotICAgIDE3MywgMjIwLCA5NSwgNjMsIDE2NCwgMjIyLCAyMzYsIDI1MCwgMTIyLCAyMTgsIDIzNiwgMjIwLCA5NSwgNjMsIDE2NCwgCi0gICAgMjIzLCA0MiwgMjQyLCAxNDYsIDIyMCwgOTUsIDYzLCAxNjQsIDI1MCwgMjM5LCAyNTUsIDE2MywgMjIyLCAxNDQsIDIzMSwgCi0gICAgOTIsIDE5OSwgMjUxLCA3LCA2MywgMTY0LCAyNDIsIDExNSwgMjE1LCAxNzIsIDYzLCAyMzIsIDE0NCwgNSwgMjUwLCAxNTUsIAotICAgIDIyMiwgMTQzLCA2MywgMjMyLCAxNDQsIDUsIDIzMiwgMjUyLCAyMjIsIDE0MywgNjMsIDI1MywgMjEyLCA1LCAyMjAsIDEwNSwgCi0gICAgMjQzLCA2NSwgMjU1LCAxNjQsIDIyMiwgMTQzLCA2MywgMjUzLCAyMTIsIDUsIDI1NSwgMTYxLCAxOTAsIDYzLCAyNTMsIAotICAgIDIxMiwgNSwgMjIxLCAxODIsIDIxNSwgMTY4LCA2MywgNSwgMjIzLCAxMzAsIDI0NywgMTU5LCAyNDMsIDY0LCA2MywgNSwgCi0gICAgMjIzLCAxMzAsIDI0NywgMTU5LCAyNDIsIDE3NiwgNjMsIDUsIDIyMywgMTMwLCAyNDcsIDE1OSwgMjQyLCAxMTYsIDYzLCA1LCAKLSAgICAyMjMsIDEzMCwgMjI5LCAyMTksIDI0MywgNjQsIDYzLCA1LCAyMjMsIDEzMCwgMjI5LCAyMTksIDI0MiwgMTc2LCA2MywgNSwgCi0gICAgMjIzLCAxMzAsIDI0NywgMTU5LCAyMjMsIDEzMCwgMjI5LCAyMTgsIDYzLCAyMSwgMjEwLCA4NiwgNjMsIDIxLCAxMTAsIDYzLCAKKyAgICAyMSwgMTk4LCAyMDksIDIwOSwgMjEsIDE5NSwgMjA5LCAyMDksIDIxLCAyMDAsIDIwOSwgMjA5LCAyNDEsIDcwLCAyMjgsIAorICAgIDc1LCAyMDksIDIwOSwgMjQxLCA3MCwgMjMwLCAxNjIsIDIwOSwgMjA5LCAxLCAyMzQsIDEwOCwgMjQyLCAxNzUsIDIwOSwgCisgICAgMjA5LCAxLCAyMzQsIDEwOCwgMjI3LCAxMzUsIDYzLCAzLCAyMjYsIDIwNSwgNjMsIDE2NCwgMjQyLCAxMTYsIDIxMSwgMCwgCisgICAgMjMwLCAyNDksIDIxNSwgMTkwLCA2MSwgNjMsIDE2NCwgMjQyLCAxMTYsIDIxMSwgMCwgMjMwLCAyNDksIDI1NSwgMTYwLCAKKyAgICAyMjIsIDIxNywgMjUyLCA3OCwgMTg1LCA2MywgMTY0LCAyNDIsIDExNiwgMjExLCAwLCAyMzAsIDI0OSwgMjU1LCAxNjAsIAorICAgIDI0MiwgMTE2LCAyMTUsIDE3NCwgMTg1LCA2MywgMTY0LCA2NSwgMjExLCAwLCAyMzAsIDI0OSwgMjMxLCA5NCwgMTg1LCA2MywgCisgICAgMTY0LCAyNDksIDI1MywgMjExLCAwLCAyMzAsIDI0OSwgMjIwLCAxMTAsIDE4NSwgNjMsIDE2NCwgMjUwLCAyNDAsIDIxMSwgCisgICAgMCwgMjMwLCAyNDksIDIyNSwgMTEzLCAyMjAsIDk3LCAxODUsIDYzLCAxNjQsIDIxMSwgMCwgMjMwLCAyNDksIDIxNSwgMTc0LCAKKyAgICAyMjAsIDk3LCAxODUsIDYzLCAxNjQsIDIyMSwgMjA5LCAyMjAsIDk2LCA2MywgMTY0LCAyNTEsIDEyOSwgMjExLCAwLCAyMzAsIAorICAgIDI0OCwgNjMsIDE2NCwgMjUxLCAyMjQsIDIyMCwgNCwgMjExLCAwLCAyMzAsIDI0OCwgNjMsIDE2NCwgMjM1LCAxOTgsIDIxNSwgCisgICAgMTczLCA2MywgMTY0LCAyNDgsIDYyLCAyMTUsIDE3NCwgMjUxLCAxMjgsIDYzLCAxNjQsIDIyMCwgOTYsIDYzLCAxNjQsIAorICAgIDIyNywgMTQwLCAyMjAsIDk2LCA2MywgMTY0LCAyMTUsIDE3NCwgMjIwLCA5NiwgNjMsIDE2NCwgMjI3LCAxNDAsIDIxNSwgCisgICAgMTc0LCAyMjAsIDk2LCA2MywgMTY0LCAyMjIsIDIzNywgMjUwLCAxMjMsIDIxOCwgMjM3LCAyMjAsIDk2LCA2MywgMTY0LCAKKyAgICAyMjMsIDQzLCAyNDIsIDE0NywgMjIwLCA5NiwgNjMsIDE2NCwgMjUwLCAyNDAsIDI1NSwgMTY0LCAyMjIsIDE0NSwgMjMxLCAKKyAgICA5MywgMTk5LCAyNTEsIDgsIDYzLCAxNjQsIDI0MiwgMTE2LCAyMTUsIDE3MywgNjMsIDIzMiwgMTQ1LCA1LCAyNTAsIDE1NiwgCisgICAgMjIyLCAxNDQsIDYzLCAyMzIsIDE0NSwgNSwgMjMyLCAyNTMsIDIyMiwgMTQ0LCA2MywgMjUzLCAyMTMsIDUsIDIyMCwgMTA2LCAKKyAgICAyNDMsIDY2LCAyNTUsIDE2NSwgMjIyLCAxNDQsIDYzLCAyNTMsIDIxMywgNSwgMjU1LCAxNjIsIDE5MCwgNjMsIDI1MywgCisgICAgMjEzLCA1LCAyMjEsIDE4MywgMjE1LCAxNjksIDYzLCA1LCAyMjMsIDEzMSwgMjQ3LCAxNjAsIDI0MywgNjUsIDYzLCA1LCAKKyAgICAyMjMsIDEzMSwgMjQ3LCAxNjAsIDI0MiwgMTc3LCA2MywgNSwgMjIzLCAxMzEsIDI0NywgMTYwLCAyNDIsIDExNywgNjMsIDUsIAorICAgIDIyMywgMTMxLCAyMjksIDIyMCwgMjQzLCA2NSwgNjMsIDUsIDIyMywgMTMxLCAyMjksIDIyMCwgMjQyLCAxNzcsIDYzLCA1LCAKKyAgICAyMjMsIDEzMSwgMjQ3LCAxNjAsIDIyMywgMTMxLCAyMjksIDIxOSwgNjMsIDIxLCAyMTAsIDg2LCA2MywgMjEsIDExMCwgNjMsIAogICAgIDIxLCAxMDUsIDYzLCAyMSwgMTU4LCA2MywgMjEsIDE2MSwgNjMsIDIxLCAxODksIDYzLCAyMSwgMTk0LCA2MywgMjEsIDE5OCwgCiAgICAgNjMsIDIxLCAxOTUsIDYzLCAyMSwgMjAwLCA2MywgMjEsIDE2MywgMTEwLCA2MywgMjEsIDE2MywgMTA1LCA2MywgMjEsIAogICAgIDE2MywgMTU4LCA2MywgMjEsIDE2MywgMTYxLCA2MywgMjEsIDE2MywgMTg5LCA2MywgMjEsIDE2MywgMTk0LCA2MywgMjEsIAogICAgIDE2MywgMTk4LCA2MywgMjEsIDE2MywgMTk1LCA2MywgMjEsIDE2MywgMjAwLCA2MywgMjEsIDE2MywgMjEwLCA4NiwgNjMsIAotICAgIDE2NCwgMjUxLCAxMzAsIDIyMiwgMTQzLCA2MywgMTY0LCAyMjksIDY4LCAyNTEsIDY4LCAyMjcsIDE0OSwgMjEwLCAyNSwgCi0gICAgNjMsIDE2NCwgMjUwLCAyMzksIDI1NSwgMTYzLCAyMjIsIDE0NCwgMjUxLCA2OSwgMjMwLCAyMDIsIDI1MSwgNywgNjMsIAotICAgIDE2NCwgMjI5LCA2OCwgMjUxLCA2OCwgMjIwLCAxMDYsIDIyMiwgMTQzLCA2MywgMTY0LCAyNTAsIDEzMiwgMjMwLCAyNDcsIAotICAgIDYzLCAxNjQsIDIxNSwgMTg0LCAyNTUsIDE2MCwgNjMsIDE2NCwgMjQyLCAxMDAsIDIyMiwgMTQ0LCAyNDIsIDYzLCA2MywgCi0gICAgMTY0LCAyNDIsIDEwMCwgMjIyLCAxNDQsIDI0MiwgNjksIDYzLCAxNjQsIDI1NCwgMTE2LCAyMzQsIDEyMywgMjQyLCA2MywgCi0gICAgNjMsIDE2NCwgMjU0LCAxMTYsIDIzNCwgMTIzLCAyNDIsIDY5LCA2MywgNSwgMjExLCA2NSwgMjE1LCAxNzEsIDYzLCA1LCAKLSAgICAyMzEsIDE2NywgMjE1LCAxNzEsIDYzLCAxLCAxNzYsIDYzLCAxLCAyMzQsIDEzMiwgNjMsIDEsIDI0MywgMTM1LCA2MywgMSwgCi0gICAgMjQyLCAyNDksIDYzLCAxLCAyMjksIDc3LCA2MywgMSwgMjUxLCAzMywgNjMsIDEsIDI1MCwgMTU3LCA2MywgMSwgMjM1LCAKLSAgICAxNDEsIDYzLCAxLCAyMjcsIDE2NSwgNjMsIDEsIDIxNSwgMTU2LCA2MywgMSwgMjE1LCAxNDQsIDYzLCAxLCAyNDgsIDEzNSwgCi0gICAgNjMsIDEsIDI0OCwgMTE5LCA2MywgMSwgMjI4LCAxMTAsIDYzLCAxLCAyMTcsIDEwNSwgNjMsIDEsIDIxNiwgMjA4LCA2MywgCi0gICAgMSwgMjQ4LCAyMjEsIDYzLCAxLCAyNDgsIDI1LCA2MywgMSwgMTk3LCA2MywgMSwgMTkwLCA2MywgMSwgMjI1LCAxNDcsIDYzLCAKLSAgICAxLCAyNTIsIDE5MSwgNjMsIDEsIDI1MiwgMTgsIDYzLCAxLCAxODQsIDYzLCAxLCAyMTUsIDE4MywgNjMsIDEsIDIxNSwgCi0gICAgMTc1LCA2MywgMSwgMjQ2LCAzOCwgNjMsIDEsIDI0NiwgMzMsIDYzLCAxLCAyMTIsIDY1LCA2MywgMSwgMjEwLCA4MiwgNjMsIAotICAgIDEsIDIxMCwgMTE2LCA2MywgMSwgMjU1LCAxNjYsIDYzLCAxLCAxOTEsIDYzLCAxLCAyMDUsIDYzLCAxLCAyMzMsIDEzNSwgCi0gICAgNjMsIDEsIDIyMCwgMTAyLCA2MywgMSwgMjE4LCAyMjMsIDYzLCAxLCAyMDYsIDYzLCAxLCAxNjIsIDYzLCAxLCA2MSwgNjMsIAotICAgIDEsIDIzMywgMjMxLCA2MywgMSwgMjQ0LCA3NywgMjA1LCA2MywgMSwgMjM0LCA0NiwgNjMsIDEsIDIyMiwgMTc5LCA2MywgCi0gICAgMjUsIDUsIDI1NSwgNzMsIDYzLCAyNSwgNSwgNzMsIDYzLCAyNSwgNSwgMjM2LCAzMywgNjMsIDI1LCA1LCA3MCwgNjMsIDI1LCAKLSAgICA1LCAyMTQsIDExOCwgNjMsIDI1LCA1LCAxNDksIDE1MywgNjMsIDI1LCA1LCAxNDksIDIyMiwgMTgwLCA2MywgMjUsIDUsIAotICAgIDE0OSwgMTU2LCA2MywgMjUsIDUsIDE0OSwgMjMyLCAxODUsIDYzLCAyNSwgNSwgNzUsIDYzLCAyNSwgNSwgMjQ1LCAyMDksIAotICAgIDYzLCAyNSwgNSwgNzYsIDYzLCAyNSwgNSwgMjI2LCAxODMsIDYzLCA1LCAyMjIsIDIyMSwgMjE4LCA4NCwgMjI5LCA3OCwgCi0gICAgMjIyLCAyMTEsIDYzLCA1LCAyMjIsIDIxNiwgMjUyLCA3NiwgNjMsIDI1LCA1LCAyMjMsIDQ5LCA3MywgNjMsIDI1LCA1LCAKLSAgICAyMjMsIDQ5LCAyMzYsIDMzLCA2MywgNSwgMjI3LCAxNDksIDIxMCwgMjYsIDIyOSwgMjI2LCAyNDgsIDIyMSwgNjMsIDUsIAotICAgIDIxOSwgNzEsIDIzMywgNjAsIDYzLCAxNjQsIDI0MiwgMjksIDYzLCAxNjQsIDIyNiwgNTcsIDYzLCA1LCAyMzMsIDYzLCAKLSAgICAyMjIsIDE0MywgNjMsIDUsIDIxMSwgNzAsIDIyMiwgMTQzLCA2MywgNSwgMjMzLCA2NCwgMjE1LCAxODQsIDI1MSwgNywgNjMsIAotICAgIDUsIDIzMSwgOTUsIDI1MSwgNywgNjMsIDUsIDI0MiwgMTE5LCAyNTEsIDgsIDIyMywgNDAsIDYzLCA1LCAyNDIsIDExOSwgCi0gICAgMjMxLCA4NSwgMjIzLCA0MCwgNjMsIDUsIDIzNSwgMTkzLCAyMzEsIDk1LCAyNTEsIDcsIDYzLCAyMTgsIDczLCA1LCAyMzMsIAotICAgIDY0LCAyMTUsIDE4NCwgMjUxLCA3LCA2MywgMjE4LCA3MywgNSwgMjMxLCA5NSwgMjUxLCA3LCA2MywgMjE4LCA3MywgNSwgCi0gICAgMjM1LCAxOTMsIDIzMSwgOTUsIDI1MSwgNywgNjMsIDIxOCwgNzMsIDEsIDE3NiwgNjMsIDIxOCwgNzMsIDEsIDIzNCwgMTMyLCAKLSAgICA2MywgMjE4LCA3MywgMSwgMjQzLCAxMzUsIDYzLCAyMTgsIDczLCAxLCAyNDIsIDI0OSwgNjMsIDIxOCwgNzMsIDEsIDIyOSwgCi0gICAgNzcsIDYzLCAyMTgsIDczLCAxLCAyNTEsIDMzLCA2MywgMjE4LCA3MywgMSwgMjUwLCAxNTcsIDYzLCAyMTgsIDczLCAxLCAKLSAgICAyMzUsIDE0MSwgNjMsIDIxOCwgNzMsIDEsIDIyNywgMTY1LCA2MywgMjE4LCA3MywgMSwgMjE1LCAxNTYsIDYzLCAyMTgsIAotICAgIDczLCAxLCAyMTUsIDE0NCwgNjMsIDIxOCwgNzMsIDEsIDI0OCwgMTM1LCA2MywgMjE4LCA3MywgMSwgMjQ4LCAxMTksIDYzLCAKLSAgICAyMTgsIDczLCAxLCAyMjgsIDExMCwgNjMsIDIxOCwgNzMsIDEsIDIxNywgMTA1LCA2MywgMjE4LCA3MywgMSwgMjE2LCAyMDgsIAotICAgIDYzLCAyMTgsIDczLCAxLCAyNDgsIDIyMSwgNjMsIDIxOCwgNzMsIDEsIDI0OCwgMjUsIDYzLCAyMTgsIDczLCAxLCAxOTcsIAotICAgIDYzLCAyMTgsIDczLCAxLCAxOTAsIDYzLCAyMTgsIDczLCAxLCAyMjUsIDE0NywgNjMsIDIxOCwgNzMsIDEsIDI1MiwgMTkxLCAKLSAgICA2MywgMjE4LCA3MywgMSwgMjUyLCAxOCwgNjMsIDIxOCwgNzMsIDEsIDE4NCwgNjMsIDIxOCwgNzMsIDEsIDIxNSwgMTgzLCAKLSAgICA2MywgMjE4LCA3MywgMSwgMjE1LCAxNzUsIDYzLCAyMTgsIDczLCAxLCAyNDYsIDM4LCA2MywgMjE4LCA3MywgMSwgMjQ2LCAKLSAgICAzMywgNjMsIDIxOCwgNzMsIDEsIDIxMiwgNjUsIDYzLCAyMTgsIDczLCAxLCAyMTAsIDgyLCA2MywgMjE4LCA3MywgMSwgCi0gICAgMjEwLCAxMTYsIDYzLCAyMTgsIDczLCAxLCAyNTUsIDE2NiwgNjMsIDIxOCwgNzMsIDEsIDE5MSwgNjMsIDIxOCwgNzMsIDEsIAotICAgIDIwNSwgNjMsIDIxOCwgNzMsIDEsIDIzMywgMTM1LCA2MywgMjE4LCA3MywgMSwgMjIwLCAxMDIsIDYzLCAyMTgsIDczLCAxLCAKLSAgICAyMTgsIDIyMywgNjMsIDIxOCwgNzMsIDEsIDIwNiwgNjMsIDIxOCwgNzMsIDEsIDE2MiwgNjMsIDIxOCwgNzMsIDEsIDYxLCAKLSAgICA2MywgMjE4LCA3MywgMSwgMjMzLCAyMzEsIDYzLCAyMTgsIDczLCAxLCAyNDQsIDc3LCAyMTIsIDY1LCA2MywgMjE4LCA3MywgCi0gICAgMSwgMjQ0LCA3NywgMTkxLCA2MywgMjE4LCA3MywgMSwgMjQ0LCA3NywgMjA1LCA2MywgMjMzLCAyMTgsIDIyMiwgMTQxLCAKLSAgICAyMzQsIDEzMiwgNjMsIDIzMywgMjE4LCAyMjIsIDE0MSwgMjM0LCAxMzMsIDI1MSwgNjksIDIzMCwgMjAyLCAyNTEsIDcsIAotICAgIDYzLCAyNTAsIDI1MiwgNSwgMTE0LCAyNTIsIDcwLCA2MywgMjUwLCAyNTIsIDUsIDE5MiwgMjUyLCA3MCwgNjMsIDI1MCwgCi0gICAgMjUyLCA1LCAyNTAsIDI1MywgMjE3LCAyMCwgNjMsIDI1MCwgMjUyLCA1LCAyMjEsIDIwNywgMjU1LCAxNjUsIDYzLCAxNiwgCi0gICAgMjQ2LCA5MSwgMjUxLCAxMjUsIDYzLCAxNiwgMjIzLCAxMjksIDIyMiwgMjIyLCA2MywgMTYsIDIyNiwgNzcsIDI0MywgNjMsIAotICAgIDYzLCAxNiwgMjIzLCAxMjksIDIyMiwgMjIzLCAyMjMsIDQyLCAyNDIsIDE0NSwgNjMsIDE2LCAyMjUsIDExMiwgMTkwLCA2MywgCi0gICAgMTYsIDIyOCwgNTksIDI1MSwgMTI1LCA2MywgMTYsIDIyOCwgNTksIDI1MSwgMTI2LCAyMjcsIDEzOSwgMjU1LCAxNjIsIDYzLCAKLSAgICAxNiwgMjI4LCA1OSwgMjUxLCAxMjYsIDI0MiwgMTE3LCAyNTUsIDE2MiwgNjMsIDE2LCAyMjgsIDU5LCAyNTEsIDEyNiwgCi0gICAgMjUxLCA2OSwgMjU1LCAxNjIsIDYzLCA1LCAyMjMsIDEzMCwgMjI5LCAyMTksIDIyMywgMTMwLCAyNDcsIDE1OCwgNjMsIDUsIAotICAgIDIyMywgMTMwLCAyMjksIDIxOSwgMjQyLCAxMTYsIDYzLCAxNjQsIDI1MSwgMTI5LCAyMjAsIDMsIDI0MiwgMjE1LCAyMzAsIAotICAgIDI0OCwgMjIzLCA0MSwgNjMsIDE2NCwgMjMwLCAxNjMsIDIxMSwgMCwgMjQyLCAyMTUsIDIzMCwgMjQ4LCAyMjMsIDQxLCA2MywgCi0gICAgMTY0LCAyMjcsIDEzOSwgMjE1LCAxNzIsIDYzLCAxNjQsIDY1LCAyNTEsIDE1MiwgMjIyLCAyMTMsIDIxMSwgMCwgMjMwLCAKLSAgICAyNDgsIDIzMSwgOTMsIDE4NCwgNjMsIDE2NCwgMjQ5LCAyNTIsIDI1MSwgMTUyLCAyMjIsIDIxMywgMjExLCAwLCAyMzAsIAotICAgIDI0OCwgMjIwLCAxMDksIDE4NCwgMjIyLCAyNTAsIDIxNywgMjU1LCA1MCwgMjMzLCA0NSwgMjE3LCAyNTUsIDUwLCAyMjIsIAotICAgIDI1MCwgMjE3LCAyNTUsIDUsIDIsIDI0NywgMTE4LCAyMzMsIDQ1LCAyMTcsIDI1NSwgNSwgMiwgMjQ3LCAxMTgsIDYzLCAKLSAgICAxNjQsIDIzMywgNTUsIDIzMSwgOTYsIDIyMiwgMTQzLCA2MywgMTY0LCAyMTUsIDI1MCwgMjMxLCA5NiwgMjIyLCAxNDMsIAotICAgIDY4LCAxLCAxNzYsIDY4LCAxLCAyMzQsIDEzMiwgNjgsIDEsIDI0MywgMTM1LCA2OCwgMSwgMjQyLCAyNDksIDY4LCAxLCAKLSAgICAyMjksIDc3LCA2OCwgMSwgMjUxLCAzMywgNjgsIDEsIDI1MCwgMTU3LCA2OCwgMSwgMjM1LCAxNDEsIDY4LCAxLCAyMzUsIAotICAgIDExNCwgNjgsIDEsIDIyNywgMTY1LCA2OCwgMSwgMjI4LCA3NiwgNjgsIDEsIDIxNSwgMTU2LCA2OCwgMSwgMjE1LCAxNDQsIAotICAgIDY4LCAxLCAyNDgsIDEzNSwgNjgsIDEsIDI0OCwgMTE5LCA2OCwgMSwgMjI4LCAxMTAsIDY4LCAxLCAyMTcsIDEwNSwgNjgsIAotICAgIDEsIDIxNiwgMjA4LCA2OCwgMSwgMjQ4LCAyMjEsIDY4LCAxLCAyNDgsIDI1LCA2OCwgMSwgMTk3LCA2OCwgMSwgMTkwLCA2OCwgCi0gICAgMSwgMjI1LCAxNDcsIDY4LCAxLCAyNTIsIDE5MSwgNjgsIDEsIDI1MiwgMTgsIDY4LCAxLCAxODQsIDY4LCAxLCAxOTEsIDY4LCAKLSAgICAxLCAyMDUsIDY4LCAxLCAyMzMsIDEzNSwgNjgsIDEsIDIxMiwgNjUsIDY4LCAxLCAyMDYsIDY4LCAxLCAxNjIsIDY4LCAxLCAKLSAgICAyMzIsIDE4NCwgNjgsIDEsIDYxLCA2OCwgMSwgMjIwLCA4NiwgNjEsIDY4LCAxLCA3MywgNjgsIDEsIDIzNiwgMzMsIDY4LCAKLSAgICAxLCA3MCwgNjgsIDEsIDIxNCwgMTE4LCA2OCwgMSwgNzUsIDY4LCAxLCAyMzAsIDE1MSwgNzUsIDY4LCAxLCA3NiwgNjgsIDEsIAotICAgIDI1MywgMTkyLCA2OCwgMjUsIDUsIDIxNywgNjQsIDI1NSwgNzMsIDY4LCAyNSwgNSwgMjU1LCA3MywgNjgsIDI1LCA1LCA3MywgCi0gICAgNjgsIDI1LCA1LCAyMzYsIDMzLCA2OCwgMjUsIDUsIDcwLCA2OCwgMjUsIDUsIDIxNCwgMTE4LCA2OCwgMjUsIDUsIDc1LCAKLSAgICA2OCwgMjUsIDUsIDI1NCwgMjAxLCA2OCwgMjUsIDUsIDIzMCwgMTUxLCAyMzYsIDMzLCA2OCwgMjUsIDUsIDIzMCwgMTUxLCAKLSAgICA3NiwgNjgsIDI1LCA1LCAxNjAsIDQ4LCA2OCwgNSwgMjU0LCA3NSwgNjgsIDUsIDU5LCA1MSwgNjgsIDUsIDIxMywgMTQ3LCAKLSAgICA2OCwgNSwgMjEzLCAxNTIsIDY4LCA1LCAyNTMsIDIzNSwgNjgsIDExNiwgNSwgMTQ3LCAxOTEsIDY4LCAxMTYsIDUsIDE0NywgCi0gICAgMjA1LCA2OCwgMTE2LCA1LCAxNDcsIDIxMiwgNjUsIDY4LCAxMTYsIDUsIDE0NywgMTYyLCA2OCwgMSwgMjQyLCAxMzIsIAotICAgIDIwNiwgNjgsIDIxLCAyMTAsIDg2LCA2OCwgMjEsIDExMCwgNjgsIDIxLCAxMDUsIDY4LCAyMSwgMTU4LCA2OCwgMjEsIDE2MSwgCi0gICAgNjgsIDIxLCAxODksIDY4LCAyMSwgMTk0LCA2OCwgMjEsIDE5OCwgNjgsIDIxLCAxOTUsIDY4LCAyMSwgMjAwLCA2OCwgNSwgCi0gICAgMjMyLCAxOTIsIDIyMSwgMTcyLCA2OCwgNSwgMjIxLCAxNzIsIDY4LCAxNiwgMjMyLCAxNTMsIDY4LCAxNiwgMjQ5LCAyMTMsIAotICAgIDY4LCAxNiwgMjU0LCAyMjAsIDY4LCAxNiwgMjQzLCA0OCwgNjgsIDEsIDIyMCwgMTAyLCA2OCwgMSwgMjE4LCAyMjMsIDY4LCAKLSAgICAxLCAxNDksIDE1MywgNjgsIDEsIDE0OSwgMjIyLCAxODAsIDY4LCAxLCAxNDksIDE1NiwgNjgsIDEsIDE0OSwgMjMyLCAxODUsIAotICAgIDY4LCAyNSwgNSwgMTQ5LCAxNTMsIDY4LCAyNSwgNSwgMTQ5LCAyMjIsIDE4MCwgNjgsIDI1LCA1LCAxNDksIDE1NiwgNjgsIAotICAgIDI1LCA1LCAxNDksIDIzMiwgMTg1LCA2OCwgMSwgMjMwLCAxNTEsIDIyOSwgNzcsIDY4LCAxLCAyMzAsIDE1MSwgMjM1LCAKLSAgICAxMTQsIDY4LCAxLCAyMzAsIDE1MSwgMjUyLCAxMTEsIDY4LCAxLCAyMzAsIDE1MSwgMjUyLCAxMDYsIDY4LCAxMTYsIDUsIAotICAgIDIzMCwgMTUxLCAxNDcsIDE5NywgNjgsIDExNiwgNSwgMjMwLCAxNTEsIDE0NywgMTg0LCA2OCwgMTE2LCA1LCAyMzAsIDE1MSwgCi0gICAgMTQ3LCAyMzMsIDEzNSwgNjgsIDEsIDIyMCwgMTA4LCAyMzQsIDIxMywgMjIwLCAxMDIsIDY4LCAyNSwgNSwgMjIwLCAxMDgsIAotICAgIDIzNCwgMjEzLCAyNDUsIDU1LCA2OCwgMTM4LCAxNjQsIDIyMCwgMTA4LCAyMzQsIDIxMywgMjQxLCAyNDcsIDY4LCAxMzgsIAotICAgIDE2NCwgMjIwLCAxMDgsIDIzNCwgMjEzLCAyMzQsIDE4MywgMjI1LCAxMjEsIDY4LCAxLCAyMTIsIDcsIDIyNCwgMTA4LCAKLSAgICAyMzQsIDIxMywgMjE2LCAyMDgsIDY4LCAxLCAyMTIsIDcsIDIyNCwgMTA4LCAyMzQsIDIxMywgMjI0LCAxMTQsIDY4LCAyNSwgCi0gICAgNSwgMjEyLCA3LCAyMjQsIDEwOCwgMjM0LCAyMTMsIDI0NSwgNTUsIDY4LCAyNSwgNSwgMjEyLCA3LCAyMjQsIDEwOCwgMjM0LCAKLSAgICAyMTMsIDIxNCwgMjE0LCA2OCwgNSwgMjEyLCA3LCAyMjQsIDEwOCwgMjM0LCAyMTMsIDIxNiwgMjksIDY4LCA1LCAyMTIsIDcsIAotICAgIDIyNCwgMTA4LCAyMzQsIDIxMywgMjE2LCAyOCwgNjgsIDUsIDIxMiwgNywgMjI0LCAxMDgsIDIzNCwgMjEzLCAyMTYsIDI3LCAKLSAgICA2OCwgNSwgMjEyLCA3LCAyMjQsIDEwOCwgMjM0LCAyMTMsIDIxNiwgMjYsIDY4LCA1LCAyMTIsIDcsIDIyNCwgMTA4LCAyMzQsIAotICAgIDIxMywgMjE2LCAyNSwgNjgsIDEsIDI0NSwgMjE5LCAyMjQsIDEwOCwgMjM0LCAyMTMsIDIyOCwgMTEwLCA2OCwgMSwgMjQ1LCAKLSAgICAyMTksIDIyNCwgMTA4LCAyMzQsIDIxMywgMjEwLCAxNzYsIDY4LCAxLCAyNDUsIDIxOSwgMjI0LCAxMDgsIDIzNCwgMjEzLCAKLSAgICAyNDIsIDIxNywgNjgsIDI1LCA1LCAyNDMsIDU5LCAyMzQsIDIxMywgNzMsIDY4LCAyNSwgNSwgMjM0LCAxODgsIDIyNiwgCi0gICAgMjM0LCA2OCwgMjUsIDUsIDIzNCwgMTg4LCA3MCwgNjgsIDI1LCA1LCAyMzQsIDE4OCwgMjQ1LCAyMDksIDY4LCAxLCAyMjAsIAotICAgIDg2LCAxNzYsIDY4LCAxLCAyMjAsIDg2LCAyMzQsIDEzMiwgNjgsIDEsIDIyMCwgODYsIDI0MywgMTM1LCA2OCwgMSwgMjIwLCAKLSAgICA4NiwgMjUxLCAzMywgNjgsIDEsIDIyMCwgODYsIDIxMCwgMTE2LCA2OCwgMSwgMjIwLCA4NiwgMjI3LCAxNjUsIDY4LCAxLCAKLSAgICAyMjAsIDg2LCAyNDgsIDIyMSwgNjgsIDEsIDIyMCwgODYsIDE5NywgNjgsIDEsIDIyMCwgODYsIDIyNSwgMTQ3LCA2OCwgMSwgCi0gICAgMjIwLCA4NiwgMjQ0LCAxOTYsIDY4LCAxLCAyMjAsIDg2LCAyNTIsIDE5MSwgNjgsIDEsIDIyMCwgODYsIDIxNiwgMjA4LCAKLSAgICA2OCwgMSwgMjIwLCA4NiwgMTYyLCA2OCwgMTE2LCA1LCAyMjAsIDg2LCAxNDcsIDIxMiwgNjUsIDY4LCAyNSwgNSwgMjIwLCAKLSAgICA4NiwgMjU1LCA3MywgNjgsIDI1LCA1LCAyMjAsIDg2LCA3NSwgNjgsIDI1LCA1LCAyMjAsIDg2LCAxNjAsIDQ4LCA2OCwgMjUsIAotICAgIDUsIDIyMCwgODYsIDQwLCAyMTEsIDExNywgNjgsIDUsIDIyMCwgODYsIDIxNiwgMjgsIDY4LCA1LCAyMjAsIDg2LCAyMTYsIAotICAgIDI3LCA2OCwgNSwgMjIwLCA4NiwgMjE2LCAyNSwgNjgsIDUsIDIyMCwgODYsIDIxNiwgMjQsIDY4LCA1LCAyMjAsIDg2LCAKLSAgICAyNDksIDE1MiwgMjE2LCAyOCwgNjgsIDUsIDIyMCwgODYsIDI0OSwgMTUyLCAyMTYsIDI3LCA2OCwgNSwgMjIwLCA4NiwgCi0gICAgMjQ5LCAxNTIsIDI0NSwgMTUzLCAyMTYsIDMwLCA2OCwgMSwgMjIyLCAxMjgsIDIyNiwgNjMsIDI0NCwgMTk2LCA2OCwgNSwgCi0gICAgMjIyLCAxMjgsIDIyNiwgNjMsIDIxNiwgMjUsIDY4LCAyMjAsIDg2LCAyMSwgMjEwLCA4NiwgNjgsIDIyMCwgODYsIDIxLCAKLSAgICAxMTAsIDY4LCAyMjAsIDg2LCAyMSwgMTA1LCA2OCwgMjIwLCA4NiwgMjEsIDE1OCwgNjgsIDIyMCwgODYsIDIxLCAxNjEsIAotICAgIDY4LCAyMjAsIDg2LCAyMSwgMTg5LCA2OCwgMjIwLCA4NiwgMjEsIDE5NCwgNjgsIDIyMCwgODYsIDIxLCAxOTgsIDY4LCAKLSAgICAyMjAsIDg2LCAyMSwgMTk1LCA2OCwgMjIwLCA4NiwgMjEsIDIwMCwgNjgsIDUsIDIzNCwgMTI2LCAyMTYsIDI5LCA2OCwgNSwgCi0gICAgMjM0LCAxMjYsIDIxNiwgMjcsIDY4LCAyNSwgNSwgMjU0LCAxOTAsIDYxLCA2OCwgMjUsIDUsIDI1NCwgMTkwLCAyNTQsIAotICAgIDIwMSwgNjgsIDE2LCAyMjAsIDg2LCAxMTAsIDY4LCAxNiwgMjIwLCA4NiwgMjQ1LCAzMCwgOTgsIDYsIDEsIDI1NCwgMTIzLCAKLSAgICA5OCwgNiwgMSwgMjUyLCAxNTIsIDk4LCA2LCAxLCAyNDMsIDEwNiwgOTgsIDYsIDEsIDI0NywgMTI4LCA5OCwgNiwgMSwgCi0gICAgMjQ1LCAxNTAsIDk4LCA2LCAxLCAyMTMsIDE2MCwgOTgsIDYsIDEsIDIxMCwgODksIDk4LCA2LCAxLCAyMTcsIDYwLCA5OCwgCi0gICAgNiwgMSwgMjM1LCAyNTUsIDk4LCA2LCAxLCAyMzQsIDIzNCwgOTgsIDYsIDEsIDIzMywgODEsIDk4LCA2LCAxLCAyMzEsIAotICAgIDE4NSwgOTgsIDYsIDEsIDIyOSwgMTk1LCA5OCwgNiwgMSwgMjI2LCAxOTYsIDk4LCA2LCAxLCAyMjYsIDE3LCA5OCwgNiwgMSwgCi0gICAgMjEwLCA3OCwgOTgsIDYsIDEsIDIyMywgMTcxLCA5OCwgNiwgMSwgMjIxLCAyNDMsIDk4LCA2LCAxLCAyMTcsIDUwLCA5OCwgCi0gICAgNiwgMSwgMjE0LCAxOTAsIDk4LCA2LCAxLCAyMjUsIDE0MCwgOTgsIDYsIDEsIDIzNCwgMTIxLCA5OCwgNiwgMSwgMjQyLCAKLSAgICAyNDEsIDk4LCA2LCAxLCAyMjQsIDczLCA5OCwgNiwgMSwgMjIwLCAyMCwgOTgsIDYsIDEsIDI1MCwgOTcsIDk4LCA2LCAxLCAKLSAgICAyNTEsIDcsIDk4LCA2LCAxLCAyMzUsIDEwMCwgOTgsIDYsIDEsIDI1MCwgNDAsIDk4LCA2LCAxLCAyNTAsIDE0MywgOTgsIDYsIAotICAgIDEsIDIxMSwgMTYzLCA5OCwgNiwgMSwgMjM1LCAxMTEsIDk4LCA2LCAxLCAyNDIsIDQzLCA5OCwgNiwgMSwgMjQxLCAyMzgsIAotICAgIDk4LCA2LCAxLCAyNDEsIDE3NSwgOTgsIDYsIDEsIDIxMiwgMjIsIDk4LCA2LCAxLCAyNDIsIDQsIDk4LCA2LCAxLCAyNDEsIAotICAgIDY1LCA5OCwgNiwgMSwgMjEwLCAyNDYsIDk4LCA2LCAxLCAyNTQsIDIzMiwgOTgsIDEsIDI1NCwgMTIzLCA5OCwgMSwgMjUyLCAKLSAgICAxNTIsIDk4LCAxLCAyNDMsIDEwNiwgOTgsIDEsIDI0NywgMTI4LCA5OCwgMSwgMjQ1LCAxNTAsIDk4LCAxLCAyMTMsIDE2MCwgCi0gICAgOTgsIDEsIDIxMCwgODksIDk4LCAxLCAyMTcsIDYwLCA5OCwgMSwgMjM1LCAyNTUsIDk4LCAxLCAyMzQsIDIzNCwgOTgsIDEsIAotICAgIDIzMywgODEsIDk4LCAxLCAyMzEsIDE4NSwgOTgsIDEsIDIyOSwgMTk1LCA5OCwgMSwgMjI2LCAxOTYsIDk4LCAxLCAyMjYsIAotICAgIDE3LCA5OCwgMSwgMjEwLCA3OCwgOTgsIDEsIDIyMywgMTcxLCA5OCwgMSwgMjIxLCAyNDMsIDk4LCAxLCAyMTcsIDUwLCA5OCwgCi0gICAgMSwgMjE0LCAxOTAsIDk4LCAxLCAyMjUsIDE0MCwgOTgsIDEsIDIzNCwgMTIxLCA5OCwgMSwgMjQyLCAyNDEsIDk4LCAxLCAKLSAgICAyMjQsIDczLCA5OCwgMSwgMjIwLCAyMCwgOTgsIDEsIDI1MCwgOTcsIDk4LCAxLCAyNTEsIDcsIDk4LCAxLCAyMzUsIDEwMCwgCi0gICAgOTgsIDEsIDI1MCwgNDAsIDk4LCAxLCAyNTAsIDE0MywgOTgsIDEsIDIxMSwgMTYzLCA5OCwgMSwgMjM1LCAxMTEsIDk4LCAxLCAKLSAgICAyNDIsIDQzLCA5OCwgMSwgMjQxLCAyMzgsIDk4LCAxLCAyNDEsIDE3NSwgOTgsIDEsIDIxMiwgMjIsIDk4LCAxLCAyNDIsIDQsIAotICAgIDk4LCAxLCAyNDEsIDY1LCA5OCwgMSwgMjQ0LCAxMjEsIDk4LCAxLCAyMTAsIDI0NiwgOTgsIDEsIDI0NSwgMTY1LCA5OCwgMSwgCi0gICAgMjE1LCA5NCwgMjQzLCAxMDYsIDk4LCAxLCAyNTQsIDE5NiwgOTgsIDIyNiwgMTUsIDIyMCwgMTM3LCA1OCwgMSwgOTgsIAotICAgIDIyOSwgMTk1LCA5OCwgMSwgMjU0LCAyMzIsIDk4LCAxLCAyNDIsIDMsIDUwLCA5OCwgMSwgMjMzLCAxMjcsIDUwLCAyNCwgCi0gICAgMTAwLCAyMzQsIDU4LCAyNCwgMTAwLCAyMTgsIDIxNSwgMjQsIDEwMCwgMjI4LCAyMjYsIDI0LCAxMDAsIDIxNiwgMTAxLCAKLSAgICAyNCwgMTAwLCAyMTgsIDIwNCwgMjQsIDEwMCwgMjIzLCAyNiwgMjQsIDEwMCwgMjMwLCAyMTcsIDI0LCAxMDAsIDIyNSwgOTUsIAotICAgIDI0LCAxMDAsIDIxOCwgMjEyLCAyNCwgMTAwLCAyMTksIDE0OCwgMjQsIDEwMCwgMjE4LCAyMDksIDI0LCAxMDAsIDIzNiwgCi0gICAgNTYsIDI0LCAxMDAsIDI1MCwgNDYsIDI0LCAxMDAsIDIxOCwgMjE5LCAyNCwgMTAwLCAyNTAsIDEwNiwgMjQsIDEwMCwgMjM0LCAKLSAgICAxMTAsIDI0LCAxMDAsIDIxNiwgMTczLCAyNCwgMTAwLCAyMjUsIDEzMSwgMjQsIDEwMCwgMjQxLCAxNzIsIDI0LCAxMDAsIAotICAgIDIyOCwgMjIyLCAyNCwgMTAwLCAyMTgsIDIxMywgMjQsIDEwMCwgMjI4LCAyMTYsIDI0LCAxMDAsIDIyOCwgMjIwLCAyNCwgCi0gICAgMTAwLCAyMTYsIDk4LCAyNCwgMTAwLCAyMjMsIDE0LCAyNCwgMTAwLCAyMTgsIDIxMSwgMjQsIDEwMCwgMjIzLCAyNCwgMjQsIAotICAgIDEwMCwgMjM0LCAyMTgsIDI0LCAxMDAsIDIzMCwgMjEwLCAyNCwgMTAwLCAyMzQsIDIyMSwgMjQsIDEwMCwgMjI1LCA5MCwgCi0gICAgMjQsIDEwMCwgMjI1LCA4OCwgMjQsIDEwMCwgMjI1LCA3NiwgMjQsIDEwMCwgMjI1LCA4NCwgMjQsIDEwMCwgMjI1LCA4MiwgCi0gICAgMjQsIDEwMCwgMjI1LCA3OSwgMjQsIDEwMCwgMjI1LCA4MSwgMjQsIDEwMCwgMjI1LCA3OCwgMjQsIDEwMCwgMjI1LCA4MywgCi0gICAgMjQsIDEwMCwgMjI1LCA5MywgMjQsIDEwMCwgMjI1LCA5NCwgMjQsIDEwMCwgMjI1LCA3NywgMjQsIDEwMCwgMjI1LCA4NywgCi0gICAgMjQsIDEwMCwgMjM0LCAyMTksIDI0LCAxMDAsIDIzNCwgMjE3LCAyNCwgMTAwLCAyMTksIDE0MSwgMjQsIDEwMCwgMjE5LCAKLSAgICAxMzksIDI0LCAxMDAsIDIxOSwgMTMxLCAyNCwgMTAwLCAyMTksIDEzNCwgMjQsIDEwMCwgMjE5LCAxNDAsIDI0LCAxMDAsIAotICAgIDIxOSwgMTM2LCAyNCwgMTAwLCAyMTksIDEzNSwgMjQsIDEwMCwgMjE5LCAxMzMsIDI0LCAxMDAsIDIxOSwgMTQ0LCAyNCwgCi0gICAgMTAwLCAyMTksIDE0NiwgMjQsIDEwMCwgMjE5LCAxNDcsIDI0LCAxMDAsIDIxOSwgMTQyLCAyNCwgMTAwLCAyMTksIDEzMiwgCi0gICAgMjQsIDEwMCwgMjE5LCAxMzcsIDI0LCAxMDAsIDIxOSwgMTQ1LCAyNCwgMTAwLCAyNTAsIDkwLCAyNCwgMTAwLCAyNTAsIDg4LCAKLSAgICAyNCwgMTAwLCAyNTAsIDE2OCwgMjQsIDEwMCwgMjUwLCAxNjYsIDI0LCAxMDAsIDIyNiwgMzIsIDI0LCAxMDAsIDIzNiwgNTEsIAotICAgIDI0LCAxMDAsIDIzNiwgNDIsIDI0LCAxMDAsIDIzNiwgNTAsIDI0LCAxMDAsIDIzNiwgNDcsIDI0LCAxMDAsIDIzNiwgNDUsIAotICAgIDI0LCAxMDAsIDIzNiwgNDksIDI0LCAxMDAsIDIxOCwgMjE2LCAyNCwgMTAwLCAyMzYsIDU0LCAyNCwgMTAwLCAyMzYsIDU1LCAKLSAgICAyNCwgMTAwLCAyMzYsIDQzLCAyNCwgMTAwLCAyMzYsIDQ4LCAyNCwgMTAwLCAyMTEsIDI2LCAyNCwgMTAwLCAyNTAsIDQ1LCAKLSAgICAyNCwgMTAwLCAyNTAsIDkxLCAyNCwgMTAwLCAyNTAsIDg5LCAyNCwgMTAwLCAyNTAsIDE2OSwgMjQsIDEwMCwgMjUwLCAxNjcsIAotICAgIDI0LCAxMDAsIDI1MCwgMTA0LCAyNCwgMTAwLCAyNTAsIDEwNSwgMjQsIDEwMCwgMjUwLCA5MiwgMjQsIDEwMCwgMjUwLCAKLSAgICAxNzAsIDI0LCAxMDAsIDIyNSwgMTI5LCAyNCwgMTAwLCAyMzQsIDIyMCwgMjQsIDEwMCwgMjE4LCAyMTcsIDI0LCAxMDAsIAotICAgIDIxMSwgMzIsIDI0LCAxMDAsIDIzNCwgNDksIDI0LCAxMDAsIDIyOCwgMjE4LCAyNCwgMTAwLCAyMjgsIDIyNCwgMjQsIDEwMCwgCi0gICAgMjI4LCAyMjMsIDI0LCAxMDAsIDIxNiwgOTUsIDI0LCAxMDAsIDI0NCwgMTAzLCAyNCwgMTQzLCAyNDQsIDEwMywgMjQsIAotICAgIDE0MywgNjEsIDI0LCAxNDMsIDI1NCwgMjQzLCAyNCwgMTQzLCAxOTEsIDI0LCAxNDMsIDIxMSwgOTIsIDI0LCAxNDMsIDI0NSwgCi0gICAgMTE3LCAyNCwgMTQzLCA3NSwgMjQsIDE0MywgMjExLCAzNiwgMjQsIDE0MywgMjExLCA0NywgMjQsIDE0MywgNzYsIDI0LCAKLSAgICAxNDMsIDIxMiwgNjUsIDI0LCAxNDMsIDIxMiwgNjIsIDI0LCAxNDMsIDIyNiwgMjM0LCAyNCwgMTQzLCAyMTAsIDI0NCwgMjQsIAotICAgIDE0MywgNzAsIDI0LCAxNDMsIDIxMiwgMTEsIDI0LCAxNDMsIDIxMiwgMjIsIDI0LCAxNDMsIDIxMSwgMjUwLCAyNCwgMTQzLCAKLSAgICAyMTAsIDIxMiwgMjQsIDE0MywgMjQ1LCA1NSwgMjQsIDE0MywgMjExLCA4LCAyNCwgMTQzLCA3MywgMjQsIDE0MywgMjU1LCAKLSAgICAxNTcsIDI0LCAxNDMsIDI1NSwgMTU2LCAyNCwgMTQzLCAyMTEsIDEwNiwgMjQsIDE0MywgMjExLCAxMDQsIDI0LCAxNDMsIAotICAgIDI0NSwgMTE1LCAyNCwgMTQzLCAyNDUsIDExNCwgMjQsIDE0MywgMjQ1LCAxMTYsIDI0LCAxNDMsIDIxMSwgMzUsIDI0LCAKLSAgICAxNDMsIDIxMSwgMzQsIDI0LCAxNDMsIDIyNywgODQsIDI0LCAxNDMsIDIyNywgODUsIDI0LCAxNDMsIDIyNywgNzgsIDI0LCAKLSAgICAxNDMsIDIyNywgODMsIDI0LCAxNDMsIDIyNywgODEsIDI0LCAxNDMsIDIxMCwgMjM4LCAyNCwgMTQzLCAyMTAsIDIzNywgMjQsIAotICAgIDE0MywgMjEwLCAyMzYsIDI0LCAxNDMsIDIxMCwgMjM5LCAyNCwgMTQzLCAyMTAsIDI0MCwgMjQsIDE0MywgMjE1LCAzMCwgCi0gICAgMjQsIDE0MywgMjE1LCAyOSwgMjQsIDE0MywgMjE1LCAyNywgMjQsIDE0MywgMjE1LCAyNCwgMjQsIDE0MywgMjE1LCAyNSwgCi0gICAgMjQsIDE0MywgMjEwLCAyMTEsIDI0LCAxNDMsIDIxMCwgMjA4LCAyNCwgMTQzLCAyMTAsIDIwOSwgMjQsIDE0MywgMjEwLCAKLSAgICAyMDMsIDI0LCAxNDMsIDIxMCwgMjA0LCAyNCwgMTQzLCAyMTAsIDIwNSwgMjQsIDE0MywgMjEwLCAyMDcsIDI0LCAxNDMsIAotICAgIDI0NSwgNDksIDI0LCAxNDMsIDI0NSwgNTEsIDI0LCAxNDMsIDIxMSwgNywgMjQsIDE0MywgMjQwLCAxNTMsIDI0LCAxNDMsIAotICAgIDI0MCwgMTQ1LCAyNCwgMTQzLCAyNDAsIDE0OCwgMjQsIDE0MywgMjQwLCAxNDYsIDI0LCAxNDMsIDI0MCwgMTUwLCAyNCwgCi0gICAgMTQzLCAyNDAsIDE1MiwgMjQsIDE0MywgMjU0LCAzNCwgMjQsIDE0MywgMjU0LCAzMSwgMjQsIDE0MywgMjU0LCAyOSwgMjQsIAotICAgIDE0MywgMjU0LCAzMCwgMjQsIDE0MywgMjE4LCAyMjAsIDI0LCAxNDMsIDI1NSwgMTU4LCAyNCwgMTQzLCAyMTEsIDEwNSwgCi0gICAgMjQsIDE0MywgMjExLCAzMywgMjQsIDE0MywgMjI3LCA4MCwgMjQsIDE0MywgMjI3LCA3OSwgMjQsIDkwLCAyMzQsIDU4LCAKLSAgICAyNCwgOTAsIDIxOCwgMjE1LCAyNCwgOTAsIDIzNCwgNTEsIDI0LCA5MCwgMjI4LCAyMjYsIDI0LCA5MCwgMjI4LCAyMjQsIAotICAgIDI0LCA5MCwgMjI4LCAyMjMsIDI0LCA5MCwgMjE2LCAxMDEsIDI0LCA5MCwgMjIzLCAyNiwgMjQsIDkwLCAyMjMsIDIxLCAyNCwgCi0gICAgOTAsIDIyMywgMTgsIDI0LCA5MCwgMjIzLCAxMSwgMjQsIDkwLCAyMjMsIDYsIDI0LCA5MCwgMjIzLCAxLCAyNCwgOTAsIAotICAgIDIyMywgMTIsIDI0LCA5MCwgMjIzLCAyNCwgMjQsIDkwLCAyMzAsIDIxNywgMjQsIDkwLCAyMjUsIDk1LCAyNCwgOTAsIDIyNSwgCi0gICAgODQsIDI0LCA5MCwgMjE5LCAxNDgsIDI0LCA5MCwgMjE4LCAyMDksIDI0LCA5MCwgMjM2LCA1NiwgMjQsIDkwLCAyNTAsIDQ2LCAKLSAgICAyNCwgOTAsIDI1MCwgMTA2LCAyNCwgOTAsIDIzNCwgMTEwLCAyNCwgOTAsIDIxNiwgMTczLCAyNCwgOTAsIDIyNSwgMTMxLCAKLSAgICAyNCwgOTAsIDI0MSwgMTcyLCAyNCwgOTAsIDIzNCwgNTIsIDI0LCA5MCwgMjM0LCA1MCwgMjQsIDkwLCAyMjgsIDIyMiwgMjQsIAotICAgIDkwLCAyMjgsIDIxNiwgMjQsIDkwLCAyMjgsIDIxOCwgMjQsIDkwLCAyMjgsIDIyMSwgMjQsIDkwLCAyMjgsIDIxNywgMjQsIAotICAgIDkwLCAyMTYsIDk4LCAyNCwgOTAsIDIxNiwgOTUsIDI0LCA5MCwgMjIzLCAxOSwgMjQsIDkwLCAyMjMsIDE0LCAyNCwgOTAsIAotICAgIDIyMywgMCwgMjQsIDkwLCAyMjIsIDI1NSwgMjQsIDkwLCAyMTgsIDIxMSwgMjQsIDkwLCAyMjMsIDE2LCAyNCwgOTAsIDIyMywgCi0gICAgMTUsIDI0LCA5MCwgMjIzLCA4LCAyNCwgOTAsIDIyMywgMTAsIDI0LCA5MCwgMjIzLCAyMywgMjQsIDkwLCAyMjMsIDMsIDI0LCAKLSAgICA5MCwgMjIzLCAxMywgMjQsIDkwLCAyMjMsIDIyLCAyNCwgOTAsIDIyMiwgMjU0LCAyNCwgOTAsIDIzMCwgMjEzLCAyNCwgOTAsIAotICAgIDIzMCwgMjA4LCAyNCwgOTAsIDIzMCwgMjEwLCAyNCwgOTAsIDIzMCwgMjA3LCAyNCwgOTAsIDIzMCwgMjA1LCAyNCwgOTAsIAotICAgIDIzMCwgMjExLCAyNCwgOTAsIDIzMCwgMjE2LCAyNCwgOTAsIDIzMCwgMjE0LCAyNCwgOTAsIDIzNCwgMjIxLCAyNCwgOTAsIAotICAgIDIyNSwgODYsIDI0LCA5MCwgMjI1LCA4NywgMjQsIDkwLCAyMjUsIDkyLCAyNCwgOTAsIDIzNCwgMjE5LCAyNCwgOTAsIDIxOSwgCi0gICAgMTQxLCAyNCwgOTAsIDIxOSwgMTMxLCAyNCwgOTAsIDIxOSwgMTM0LCAyNCwgOTAsIDIxOSwgMTM2LCAyNCwgOTAsIDIyNiwgCi0gICAgMzIsIDI0LCA5MCwgMjM2LCA1MSwgMjQsIDkwLCAyMzYsIDQ0LCAyNCwgOTAsIDIxOCwgMjE2LCAyNCwgOTAsIDIzNiwgNTIsIAotICAgIDI0LCA5MCwgMjExLCAyNiwgMjQsIDkwLCAyMTEsIDIyLCAyNCwgOTAsIDIxMSwgMjMsIDI0LCA5MCwgMjI1LCAxMjksIDI0LCAKLSAgICA5MCwgMjM0LCAyMjAsIDI0LCA5MCwgMjQxLCAxNzAsIDI0LCA5MCwgMjQxLCAxNjgsIDI0LCA5MCwgMjQxLCAxNzEsIDI0LCAKLSAgICA5MCwgMjQxLCAxNjksIDI0LCA5MCwgMjExLCAzMiwgMjQsIDkwLCAyMzQsIDU0LCAyNCwgOTAsIDIzNCwgNTMsIDI0LCA5MCwgCi0gICAgMjM0LCA1NywgMjQsIDkwLCAyMzQsIDU1LCAyNCwgOTAsIDIzNCwgNTYsIDI0LCA5MCwgMjE4LCAyMTMsIDI5LCAzLCAxNjIsIAotICAgIDI5LCAzLCAyNDAsIDIyMiwgMjksIDMsIDI0MSwgMTgwLCAyOSwgMywgMjQyLCA0NiwgMjksIDMsIDI0MSwgMjIwLCAyOSwgMywgCi0gICAgMjQxLCAyMzgsIDI5LCAzLCAyNDEsIDY4LCAyOSwgMywgMjQxLCA2NywgMjksIDMsIDIzMywgMTM1LCAyOSwgMywgMjMyLCAKLSAgICA5OCwgMjksIDMsIDIzMiwgMjQxLCAyOSwgMywgMjMzLCAxMzQsIDI5LCAzLCAyMzMsIDUwLCAyOSwgMywgMjMzLCA1OCwgMjksIAotICAgIDMsIDIzMiwgMTU2LCAyOSwgMywgMjMyLCA3MCwgMjksIDMsIDI0MSwgMTg5LCAyOSwgMywgMjQxLCAxODMsIDI5LCAzLCAKLSAgICAyNDEsIDE4NSwgMjksIDMsIDI0MSwgMTg4LCAyOSwgMywgMjQxLCAxODYsIDI5LCAzLCAyNDEsIDE4NywgMjksIDMsIDI0MSwgCi0gICAgMTg0LCAyOSwgMywgMjQxLCAxODIsIDI5LCAzLCAxODQsIDI5LCAzLCAyMzAsIDEwMiwgMjksIDMsIDIzMCwgMjMwLCAyOSwgCi0gICAgMywgMjMxLCAyMzcsIDI5LCAzLCAyMzEsIDgwLCAyOSwgMywgMjMxLCA5MSwgMjksIDMsIDIzMCwgMTYxLCAyOSwgMywgMjMwLCAKLSAgICA0MiwgMjksIDMsIDIxNywgMTYzLCAyOSwgMywgMjE3LCAxNTcsIDI5LCAzLCAyMTcsIDE1OSwgMjksIDMsIDIxNywgMTYyLCAKLSAgICAyOSwgMywgMjE3LCAxNjAsIDI5LCAzLCAyMTcsIDE2MSwgMjksIDMsIDIxNywgMTU4LCAyOSwgMywgMjE3LCAxNTYsIDI5LCAKLSAgICAzLCAyMDUsIDI5LCAzLCAyMjIsIDE0MCwgMjksIDMsIDIyMywgMzUsIDI5LCAzLCAyMjMsIDE4NCwgMjksIDMsIDIyMywgCi0gICAgMTA4LCAyOSwgMywgMjIzLCAxMjgsIDI5LCAzLCAyMjIsIDIxMSwgMjksIDMsIDIyMiwgMTA5LCAyOSwgMywgMjA2LCAyOSwgCi0gICAgMywgMjE4LCA4MywgMjksIDMsIDIxOSwgMTkxLCAyOSwgMywgMjIyLCAzMSwgMjksIDMsIDIyMSwgMTcwLCAyOSwgMywgMjIxLCAKLSAgICAxODEsIDI5LCAzLCAyMTksIDU4LCAyOSwgMywgMjE3LCAyNTMsIDI5LCAzLCAyMjAsIDEwMiwgMjksIDMsIDIxOSwgMjI1LCAKLSAgICAyOSwgMywgMjIwLCAzMiwgMjksIDMsIDIyMCwgOTgsIDI5LCAzLCAyMjAsIDYxLCAyOSwgMywgMjIwLCA2MywgMjksIDMsIAotICAgIDIyMCwgNywgMjksIDMsIDIxOSwgMjA4LCAyOSwgMywgMjI0LCA4OCwgMjksIDMsIDIyNCwgMzAsIDI5LCAzLCAyMjQsIDUzLCAKLSAgICAyOSwgMywgMjI0LCA4NywgMjksIDMsIDIyNCwgNjgsIDI5LCAzLCAyMjQsIDY5LCAyOSwgMywgMjI0LCA0MiwgMjksIDMsIAotICAgIDIyNCwgNDEsIDI5LCAzLCAyMjMsIDI0MiwgMjksIDMsIDIyMywgMjM4LCAyOSwgMywgMjIzLCAyNDEsIDI5LCAzLCAyMjMsIAotICAgIDIzOSwgMjksIDMsIDIyMywgMjQwLCAyOSwgMywgMjI0LCA2NSwgMjksIDMsIDIyNCwgNTksIDI5LCAzLCAyMjQsIDYxLCAyOSwgCi0gICAgMywgMjI0LCA2NCwgMjksIDMsIDIyNCwgNjIsIDI5LCAzLCAyMjQsIDYzLCAyOSwgMywgMjI0LCA2MCwgMjksIDMsIDIyNCwgCi0gICAgNTgsIDI5LCAzLCAyMjQsIDU0LCAyOSwgMywgMjI0LCA1NywgMjksIDMsIDIyNCwgNTUsIDI5LCAzLCAyMjQsIDU2LCAyOSwgCi0gICAgMywgMjUyLCAxOTEsIDI5LCAzLCAyNTEsIDEyNSwgMjksIDMsIDI1MiwgNiwgMjksIDMsIDI1MiwgMTg5LCAyOSwgMywgMjUyLCAKLSAgICA2NiwgMjksIDMsIDI1MiwgNzUsIDI5LCAzLCAyNTEsIDIwNSwgMjksIDMsIDI1MSwgODMsIDI5LCAzLCAyMTQsIDI3LCAyOSwgCi0gICAgMywgMjEyLCAxMTYsIDI5LCAzLCAyMTMsIDE3NiwgMjksIDMsIDIxNCwgMjYsIDI5LCAzLCAyMTMsIDI1MCwgMjksIDMsIAotICAgIDIxMywgMjU1LCAyOSwgMywgMjEzLCAxMzgsIDI5LCAzLCAyMTIsIDEwNywgMjksIDMsIDIxNywgMTA1LCAyOSwgMywgMjE1LCAKLSAgICAxMTgsIDI5LCAzLCAyMTYsIDExNywgMjksIDMsIDIxNywgMTAxLCAyOSwgMywgMjE3LCAxMSwgMjksIDMsIDIxNywgMjIsIAotICAgIDI5LCAzLCAxMTEsIDI5LCAzLCAyMTUsIDgwLCAyOSwgMywgMjUxLCAzMywgMjksIDMsIDI0OSwgMTEyLCAyOSwgMywgMjUwLCAKLSAgICA1MSwgMjksIDMsIDI1MSwgMzIsIDI5LCAzLCAyNTAsIDE4MiwgMjksIDMsIDI1MCwgMTkwLCAyOSwgMywgMjQ5LCAyMzgsIAotICAgIDI5LCAzLCAyNDksIDgxLCAyOSwgMywgMjExLCAxNjUsIDI5LCAzLCAyMTEsIDE0MSwgMjksIDMsIDIxMSwgMTU3LCAyOSwgMywgCi0gICAgMjExLCAxNjQsIDI5LCAzLCAyMTEsIDE2MSwgMjksIDMsIDIxMSwgMTYyLCAyOSwgMywgMjExLCAxNDgsIDI5LCAzLCAyMTEsIAotICAgIDE0NywgMjksIDMsIDIxMSwgMTM2LCAyOSwgMywgMjExLCAxMzIsIDI5LCAzLCAyMTEsIDEzNSwgMjksIDMsIDIxMSwgMTMzLCAKLSAgICAyOSwgMywgMjExLCAxMzQsIDI5LCAzLCAxOTcsIDI5LCAzLCAyMjcsIDIzNywgMjksIDMsIDIyOCwgMjMzLCAyOSwgMywgCi0gICAgMjI5LCAyMjUsIDI5LCAzLCAyMjksIDEwMywgMjksIDMsIDIyOSwgMTA3LCAyOSwgMywgMjI4LCA3NCwgMjksIDMsIDIyNywgCi0gICAgMTc0LCAyOSwgMywgMjI3LCAxNjUsIDI5LCAzLCAyMjcsIDEyOCwgMjksIDMsIDIyNywgMTQ4LCAyOSwgMywgMjI3LCAxNjQsIAotICAgIDI5LCAzLCAyMjcsIDE1NSwgMjksIDMsIDIyNywgMTU2LCAyOSwgMywgMjI3LCAxMzQsIDI5LCAzLCAyMjcsIDExOSwgMjksIAotICAgIDMsIDI0MiwgMTgwLCA2MSwgMjksIDMsIDI0MiwgMTgwLCA3MCwgMjksIDMsIDI0MiwgMTgwLCA3MywgMjksIDMsIDI0MiwgCi0gICAgMTgwLCAyNTUsIDczLCAyOSwgMywgMjQyLCAxODAsIDI0NSwgMjA5LCAyOSwgMywgMjQyLCAxODAsIDc1LCAyOSwgMywgMjQyLCAKLSAgICAxODAsIDc2LCAyOSwgMywgMjQyLCAxODAsIDIxMiwgNjUsIDI5LCAzLCAxNzYsIDI5LCAzLCAyMzMsIDIxNywgMjksIDMsIAotICAgIDIzNCwgOTIsIDI5LCAzLCAyMzUsIDEwLCAyOSwgMywgMjM0LCAxODEsIDI5LCAzLCAyMzQsIDE4MiwgMjksIDMsIDIzNCwgCi0gICAgMjgsIDI5LCAzLCAyMzQsIDI3LCAyOSwgMywgMjMzLCAxODIsIDI5LCAzLCAyMzMsIDE3NiwgMjksIDMsIDIzMywgMTgxLCAKLSAgICAyOSwgMywgMjMzLCAxNzcsIDI5LCAzLCAyMzMsIDE3OCwgMjksIDMsIDIzMywgMTcxLCAyOSwgMywgMjMzLCAxNjUsIDI5LCAKLSAgICAzLCAyMzMsIDE2NywgMjksIDMsIDIzMywgMTcwLCAyOSwgMywgMjMzLCAxNjgsIDI5LCAzLCAyMzMsIDE2OSwgMjksIDMsIAotICAgIDIzMywgMTY2LCAyOSwgMywgMjMzLCAxNjQsIDI5LCAzLCAyMzMsIDE2MCwgMjksIDMsIDIzMywgMTYzLCAyOSwgMywgMjMzLCAKLSAgICAxNjEsIDI5LCAzLCAyMzMsIDE2MiwgMjksIDMsIDIxMiwgNjUsIDI5LCAzLCAyMTEsIDE5NSwgMjksIDMsIDIxMSwgMjUwLCAKLSAgICAyOSwgMywgMjEyLCA2NCwgMjksIDMsIDIxMiwgMTcsIDI5LCAzLCAyMTIsIDIyLCAyOSwgMywgMjExLCAyMjcsIDI5LCAzLCAKLSAgICAyMTEsIDIyNiwgMjksIDMsIDIyNSwgMTM5LCA2MSwgMjksIDMsIDIyNSwgMTM5LCA3MCwgMjksIDMsIDIyNSwgMTM5LCA3MywgCi0gICAgMjksIDMsIDIyNSwgMTM5LCAyNTUsIDczLCAyOSwgMywgMjI1LCAxMzksIDI0NSwgMjA5LCAyOSwgMywgMjI1LCAxMzksIDc1LCAKLSAgICAyOSwgMywgMjI1LCAxMzksIDc2LCAyOSwgMywgMjEwLCAxMTYsIDI5LCAzLCAyMTAsIDEzLCAyOSwgMywgMjEwLCA0NCwgMjksIAotICAgIDMsIDIxMCwgMTE1LCAyOSwgMywgMjEwLCA5MiwgMjksIDMsIDIxMCwgOTQsIDI5LCAzLCAyMTAsIDIzLCAyOSwgMywgMjEwLCAKLSAgICAwLCAyOSwgMywgMjEwLCA4MiwgMjksIDMsIDIxMCwgNjIsIDI5LCAzLCAyMTAsIDY5LCAyOSwgMywgMjEwLCA4MSwgMjksIDMsIAotICAgIDIxMCwgNzMsIDI5LCAzLCAyMTAsIDc0LCAyOSwgMywgMjEwLCA2NywgMjksIDMsIDIxMCwgNTMsIDI5LCAzLCAxOTEsIDI5LCAKLSAgICAzLCAyMTAsIDIxMiwgMjksIDMsIDIxMSwgOCwgMjksIDMsIDIxMSwgMTAzLCAyOSwgMywgMjExLCA0NCwgMjksIDMsIDIxMSwgCi0gICAgNDcsIDI5LCAzLCAyMTAsIDI0NCwgMjksIDMsIDIxMCwgMjM1LCAyOSwgMywgMjQ4LCAyMjEsIDI5LCAzLCAyNDYsIDc4LCAKLSAgICAyOSwgMywgMjQ4LCAzLCAyOSwgMywgMjQ4LCAyMjAsIDI5LCAzLCAyNDgsIDc3LCAyOSwgMywgMjQ4LCA5MCwgMjksIDMsIAotICAgIDI0NywgMTQ1LCAyOSwgMywgMjQ2LCA0NywgMjksIDMsIDI0OCwgMTM1LCAyOSwgMywgMjQ4LCAxMDAsIDI5LCAzLCAyNDgsIAotICAgIDExMiwgMjksIDMsIDI0OCwgMTM0LCAyOSwgMywgMjQ4LCAxMjIsIDI5LCAzLCAyNDgsIDEyMywgMjksIDMsIDI0OCwgMTA1LCAKLSAgICAyOSwgMywgMjQ4LCA5MSwgMjksIDMsIDIzNSwgMTQxLCAyOSwgMywgMjM1LCA1MSwgMjksIDMsIDIzNSwgMTA4LCAyOSwgMywgCi0gICAgMjM1LCAxNDAsIDI5LCAzLCAyMzUsIDEyNCwgMjksIDMsIDIzNSwgMTI2LCAyOSwgMywgMjM1LCA2OCwgMjksIDMsIDIzNSwgCi0gICAgMzEsIDI5LCAzLCAyNDMsIDEzNSwgMjksIDMsIDI0MiwgMTEzLCAyOSwgMywgMjQyLCAyMTQsIDI5LCAzLCAyNDMsIDEzMiwgCi0gICAgMjksIDMsIDI0MywgNTUsIDI5LCAzLCAyNDMsIDYyLCAyOSwgMywgMjQyLCAxNzQsIDI5LCAzLCAyNDIsIDE3MywgMjksIDMsIAotICAgIDI0MiwgNzgsIDI5LCAzLCAyNDIsIDc0LCAyOSwgMywgMjQyLCA3NywgMjksIDMsIDI0MiwgNzUsIDI5LCAzLCAyNDIsIDc2LCAKLSAgICAyOSwgMywgMjQzLCAyOSwgMjksIDMsIDI0MywgOSwgMjksIDMsIDI0MywgMTksIDI5LCAzLCAyNDMsIDI4LCAyOSwgMywgCi0gICAgMjQzLCAyMywgMjksIDMsIDI0MywgMjQsIDI5LCAzLCAyNDMsIDEzLCAyOSwgMywgMjQyLCAyNTQsIDI5LCAzLCAyMTYsIAotICAgIDIwOCwgMjksIDMsIDIxNiwgMTM2LCAyOSwgMywgMjE2LCAxNzUsIDI5LCAzLCAyMTYsIDIwNywgMjksIDMsIDIxNiwgMTk0LCAKLSAgICAyOSwgMywgMjE2LCAxOTUsIDI5LCAzLCAyMTYsIDE1NiwgMjksIDMsIDIxNiwgMTI4LCAyOSwgMywgMjUwLCAxNTcsIDI5LCAKLSAgICAzLCAyNTAsIDY5LCAyOSwgMywgMjUwLCAxMTAsIDI5LCAzLCAyNTAsIDE1NiwgMjksIDMsIDI1MCwgMTI4LCAyOSwgMywgCi0gICAgMjUwLCAxMzEsIDI5LCAzLCAyNTAsIDg2LCAyOSwgMywgMjUwLCA1OCwgMjksIDMsIDIyNSwgMTQ3LCAyOSwgMywgMjI1LCAKLSAgICAxMTQsIDI5LCAzLCAyMjUsIDEzMywgMjksIDMsIDIyNSwgMTQ2LCAyOSwgMywgMjI1LCAxMzUsIDI5LCAzLCAyMjUsIDEzNiwgCi0gICAgMjksIDMsIDIyNSwgMTIxLCAyOSwgMywgMjI1LCAxMTAsIDI5LCAzLCAyMTUsIDE4MywgMjksIDMsIDIxNSwgMTYzLCAyOSwgCi0gICAgMywgMjE1LCAxNjcsIDI5LCAzLCAyMTUsIDE4MiwgMjksIDMsIDIxNSwgMTc3LCAyOSwgMywgMjE1LCAxNzgsIDI5LCAzLCAKLSAgICAyMTUsIDE2NiwgMjksIDMsIDIxNSwgMTYxLCAyOSwgMywgMjE1LCAzOSwgMjksIDMsIDIxNSwgMzEsIDI5LCAzLCAyMTUsIAotICAgIDM1LCAyOSwgMywgMjE1LCAzOCwgMjksIDMsIDIxNSwgMzYsIDI5LCAzLCAyMTUsIDM3LCAyOSwgMywgMjE1LCAzMywgMjksIAotICAgIDMsIDIxNSwgMzIsIDI5LCAzLCAyNDQsIDE5NiwgMjksIDMsIDI0MywgMjM0LCAyOSwgMywgMjQ0LCAxMjEsIDI5LCAzLCAKLSAgICAyNDQsIDE5NSwgMjksIDMsIDI0NCwgMTQ3LCAyOSwgMywgMjQ0LCAxNTQsIDI5LCAzLCAyNDQsIDQzLCAyOSwgMywgMjQzLCAKLSAgICAyMTMsIDI5LCAzLCAxOTAsIDI5LCAzLCAyMjQsIDE1MCwgMjksIDMsIDIyNSwgMTA4LCAyOSwgMywgMjI2LCA4OSwgMjksIDMsIAotICAgIDIyNSwgMjExLCAyOSwgMywgMjI1LCAyMjEsIDI5LCAzLCAyMjUsIDE2LCAyOSwgMywgMjI0LCAxMTQsIDI5LCAzLCAyMjIsIAotICAgIDk5LCAyOSwgMywgMjMwLCAzMSwgMjksIDMsIDI0MywgMjA3LCAyOSwgMzgsIDI0MywgNTMsIDIyLCAyNSwgMjMzLCAyMywgCi0gICAgNzgsIDI5LCAzOCwgMjUsIDIzMywgMjMsIDc4LCAyOSwgMzgsIDI0MywgNTMsIDc4LCAyOSwgMjIxLCAxNzMsIDc4LCAyOSwgCi0gICAgMjExLCAyMDgsIDI5LCAyNDMsIDIyOSwgMjE4LCAxMjksIDI5LCAyNDksIDIxOSwgMjksIDIyMCwgMTUwLCAyOSwgMjQ5LCAKLSAgICAyMjYsIDI5LCAyMjQsIDE5OSwgMjQ5LCAyMjYsIDI5LCAyMjQsIDEzLCA3OCwgMjksIDIyNiwgMTUsIDIyMCwgMTM3LCAyOSwgCi0gICAgMjEsIDExMCwgMjksIDIxLCAxMDUsIDI5LCAyMSwgMTU4LCAyOSwgMjEsIDE2MSwgMjksIDIxLCAxODksIDI5LCAyMSwgMTk0LCAKLSAgICAyOSwgMjEsIDE5OCwgMjksIDIxLCAxOTUsIDI5LCAyMSwgMjAwLCAyOSwgNTQsIDIxNiwgMjQ3LCAyOSwgNTQsIDIxNSwgNzMsIAotICAgIDI5LCA1NCwgMjE2LCAxNjIsIDI5LCA1NCwgMjQ0LCAxNSwgMjksIDU0LCAyNDQsIDExNCwgMjksIDU0LCAyMTksIDExMSwgCi0gICAgMjksIDU0LCAyMjAsIDExNiwgMjksIDU0LCAyNDUsIDE4NCwgMjksIDU0LCAyMjgsIDE5NSwgMjksIDU0LCAyNDAsIDIxMCwgCi0gICAgMjksIDU0LCAyMTYsIDI0OCwgMjE2LCAxNDcsIDI5LCAzLCAyMjEsIDE3NywgMjMwLCA0MiwgMjksIDMsIDIzMCwgMzgsIDI5LCAKLSAgICAzLCAyMzAsIDM5LCAyOSwgMywgMjMwLCA0MCwgMjksIDMsIDIyMSwgMTc3LCAyNTEsIDgzLCAyOSwgMywgMjUxLCA4MCwgMjksIAotICAgIDMsIDI1MSwgODEsIDI5LCAzLCAyNTEsIDgyLCAyOSwgMywgMjIxLCAxNzcsIDI0MywgMjEzLCAyOSwgMywgMjQzLCAyMDksIAotICAgIDI5LCAzLCAyNDMsIDIxMCwgMjksIDMsIDI0MywgMjExLCAyOSwgMywgMjIxLCAxNzcsIDIyNCwgMTE0LCAyOSwgMywgMjI0LCAKLSAgICAxMTAsIDI5LCAzLCAyMjQsIDExMSwgMjksIDMsIDIyNCwgMTEyLCAyOSwgMjE2LCAzMSwgMTY0LCAyMTAsIDI0NywgMjksIAotICAgIDIxNiwgMzEsIDE2NCwgMjQ4LCA0MSwgMjksIDIxNiwgMzEsIDE2NCwgMjIyLCAyMzgsIDI5LCAyMTYsIDMxLCAxNjQsIDIxOSwgCi0gICAgMjUxLCAyMjIsIDIzOCwgMjksIDIxNiwgMzEsIDE2NCwgMjQ3LCAyMzUsIDI5LCAyMTYsIDMxLCAxNjQsIDIzNCwgMTY0LCAKLSAgICAyOSwgMjE2LCAzMSwgMTY0LCAyNTAsIDk0LCAyOSwgMjE2LCAzMSwgMTY0LCAyNDEsIDE3NywgMjksIDIxNiwgMzEsIDE2NCwgCi0gICAgMjQ4LCA0MCwgMjksIDIxNiwgMzEsIDE2NCwgMjMzLCAxOTQsIDE2OSwgMSwgNjEsIDE2OSwgMSwgNzUsIDE2OSwgMSwgNzMsIAotICAgIDE2OSwgMSwgNzYsIDE2OSwgMSwgNzAsIDE2OSwgMSwgMjE0LCAxMDUsIDE2OSwgMSwgMjQzLCAxMzUsIDE2OSwgMSwgMTc2LCAKLSAgICAxNjksIDEsIDI0MywgNjIsIDE2OSwgMSwgMjQyLCAyMTQsIDE2OSwgMSwgMjQyLCAxNzQsIDE2OSwgMSwgMjQyLCAxMTMsIAotICAgIDE2OSwgMSwgMjQyLCA3OSwgMTY5LCAxLCAxNjIsIDE2OSwgMSwgMjQxLCAyMzgsIDE2OSwgMSwgMjQxLCAxODAsIDE2OSwgMSwgCi0gICAgMjQxLCA2OCwgMTY5LCAxLCAyNDAsIDIyMiwgMTY5LCAxLCAyNDAsIDIwMSwgMTY5LCAxLCAyMzMsIDEzNSwgMTY5LCAxLCAKLSAgICAyMzMsIDU4LCAxNjksIDEsIDIzMiwgMjQxLCAxNjksIDEsIDIzMiwgMTU2LCAxNjksIDEsIDIzMiwgOTgsIDE2OSwgMSwgCi0gICAgMjMyLCA3MSwgMTY5LCAxLCAxODQsIDE2OSwgMSwgMjMxLCA5MSwgMTY5LCAxLCAyMzAsIDIzMCwgMTY5LCAxLCAyMzAsIAotICAgIDE2MSwgMTY5LCAxLCAyMzAsIDEwMiwgMTY5LCAxLCAxOTcsIDE2OSwgMSwgMjQxLCA5MCwgMTY5LCAxLCAyMjksIDIxMywgCi0gICAgMTY5LCAxLCAyMjksIDEwNywgMTY5LCAxLCAyMjgsIDIzMywgMTY5LCAxLCAyMjgsIDc0LCAxNjksIDEsIDIyNywgMjM3LCAKLSAgICAxNjksIDEsIDIyNywgMTc2LCAxNjksIDEsIDIyNCwgMjksIDE2OSwgMSwgMjI0LCAxNiwgMTY5LCAxLCAyMjQsIDksIDE2OSwgCi0gICAgMSwgMjI0LCAxLCAxNjksIDEsIDIyMywgMjQ2LCAxNjksIDEsIDIyMywgMjQ0LCAxNjksIDEsIDIwNiwgMTY5LCAxLCAyMjIsIAotICAgIDkxLCAxNjksIDEsIDIyMSwgMTgxLCAxNjksIDEsIDIxOSwgMTkxLCAxNjksIDEsIDIxOSwgNTgsIDE2OSwgMSwgMjE4LCA4MywgCi0gICAgMTY5LCAxLCAyMTgsIDIsIDE2OSwgMSwgMjQ4LCAyMjEsIDE2OSwgMSwgMjE3LCAxMDUsIDE2OSwgMSwgMjQ4LCA5MCwgMTY5LCAKLSAgICAxLCAyMTcsIDIyLCAxNjksIDEsIDI0OCwgMywgMTY5LCAxLCAyMTYsIDExNywgMTY5LCAxLCAyNDcsIDE0NSwgMTY5LCAxLCAKLSAgICAyNDYsIDc4LCAxNjksIDEsIDI0NiwgNTAsIDE2OSwgMSwgMjQ3LCAxNTYsIDE2OSwgMSwgMjE2LCA1OSwgMTY5LCAxLCAyMTYsIAotICAgIDU4LCAxNjksIDEsIDIxNiwgNDcsIDE2OSwgMSwgMjE2LCA0NiwgMTY5LCAxLCAyMTYsIDQ1LCAxNjksIDEsIDIxNiwgNDQsIAotICAgIDE2OSwgMSwgMjE1LCAxODMsIDE2OSwgMSwgMjE1LCAxNzgsIDE2OSwgMSwgMjE1LCAxNjcsIDE2OSwgMSwgMjE1LCAxNjYsIAotICAgIDE2OSwgMSwgMjE1LCAxNjMsIDE2OSwgMSwgMjE1LCAxNjIsIDE2OSwgMSwgMjEyLCA2NSwgMTY5LCAxLCAyMTIsIDIyLCAKLSAgICAxNjksIDEsIDIxMSwgMjUwLCAxNjksIDEsIDIxMSwgMjI3LCAxNjksIDEsIDIxMSwgMTk1LCAxNjksIDEsIDIxMSwgMTgzLCAKLSAgICAxNjksIDEsIDE5MSwgMTY5LCAxLCAyMTEsIDQ3LCAxNjksIDEsIDIxMSwgOCwgMTY5LCAxLCAyMTAsIDI0NCwgMTY5LCAxLCAKLSAgICAyMTAsIDIxMiwgMTY5LCAxLCAyMTAsIDE3NywgMTgsIDE5LCAyNDAsIDE2OCwgMTgsIDE5LCA3NSwgMTgsIDE5LCAyNTUsIAotICAgIDM3LCAxOCwgMTksIDczLCAxOCwgMTksIDIzNiwgMzMsIDE4LCAxOSwgNzYsIDE4LCAxOSwgMjI2LCAxODMsIDE4LCAxOSwgCi0gICAgMjExLCAxMTYsIDIyNiwgMTgzLCAxOCwgMTksIDcyLCAyNDUsIDIwOSwgMTgsIDE5LCA3MiwgNzMsIDE4LCAxOSwgNjEsIDE4LCAKLSAgICAxOSwgMjU1LCA3MywgMTgsIDE5LCAyMTIsIDIyLCAxOCwgMTksIDE1OSwgMjEyLCAyMiwgMTgsIDE5LCAyMTEsIDI1MCwgMTgsIAotICAgIDE5LCAxNTksIDIxMSwgMjUwLCAxOCwgMTksIDIxMSwgMjQyLCAxOCwgMTksIDE1OSwgMjExLCAyNDIsIDE4LCAxOSwgMjExLCAKLSAgICAyMjcsIDE4LCAxOSwgMTU5LCAyMTEsIDIyNywgMTgsIDE5LCAyMTEsIDIxNSwgMTgsIDE5LCAxNTksIDIxMSwgMjE1LCAxOCwgCi0gICAgMTksIDIyOSwgMTkwLCAyMTEsIDIxNSwgMTgsIDE5LCAyMTIsIDY1LCAxOCwgMTksIDE1OSwgMjEyLCA2NSwgMTgsIDE5LCAKLSAgICAyMTIsIDY0LCAxOCwgMTksIDE1OSwgMjEyLCA2NCwgMTgsIDE5LCAyMjksIDE5MCwgMjEyLCA2NCwgMTgsIDE5LCAyNTQsIAotICAgIDIwMSwgMTgsIDE5LCAyMTEsIDExNiwgMjEyLCA5OCwgMTgsIDE5LCAyNDIsIDE4MCwgMjE4LCAxMjksIDE4LCAxOSwgNDAsIAotICAgIDE0MiwgMTgsIDE5LCA0MCwgMjQyLCAxMzYsIDE4LCAxOSwgNDAsIDI1MSwgMTc1LCAxNjMsIDIyMiwgMjMzLCAxOCwgMTksIAotICAgIDQwLCAyMTYsIDE0LCAxNjMsIDIyMiwgMjMzLCAxOCwgMTksIDQwLCA0NCwgMTYzLCAyMjIsIDIzMywgMTgsIDE5LCA0MCwgCi0gICAgMjIyLCAyMzMsIDE4LCAxOSwgNDAsIDUyLCAxNDIsIDE4LCAxOSwgNDAsIDUyLCAyMTksIDI1MSwgNjcsIDIxOCwgOTAsIDE4LCAKLSAgICAxOSwgNDAsIDIzMCwgMjI0LCAyNDcsIDEyMCwgMTgsIDE5LCA0MCwgMjE5LCAyNTEsIDIwMywgOTEsIDE4LCAxOSwgNDAsIAotICAgIDIyNSwgMjIsIDE4LCAxOSwgNDAsIDEyNCwgMjE3LCA4NywgMTgsIDE5LCAyNDUsIDE1MCwgMTgsIDE5LCAyMzUsIDI1NSwgCi0gICAgMTgsIDE5LCAyMjYsIDE5NiwgMTgsIDE5LCAyNTQsIDEyMywgMTgsIDE5LCAyMjUsIDIyMSwgMTgsIDE5LCAyMjYsIDg3LCAKLSAgICAxOCwgMTksIDIyNSwgMTA4LCAxOCwgMTksIDIyNSwgNzEsIDE4LCAxOSwgMjI1LCAxNiwgMTgsIDE5LCAyMjQsIDI0OSwgMTgsIAotICAgIDE5LCAyMTEsIDExNiwgMjI0LCAyNDksIDE4LCAxOSwgNzIsIDI0MSwgMjIwLCAxOCwgMTksIDcyLCAyNDEsIDE4MCwgMTgsIAotICAgIDE5LCAxOTAsIDE4LCAxOSwgMjI2LCA4OSwgMTgsIDE5LCAyMjQsIDExMiwgMTgsIDE5LCAxNTksIDIyNCwgMTEyLCAxOCwgCi0gICAgMTksIDIyNCwgMTEwLCAxOCwgMTksIDE1OSwgMjI0LCAxMTAsIDE4LCAxOSwgMjI0LCAxMDksIDE4LCAxOSwgMTU5LCAyMjQsIAotICAgIDEwOSwgMTgsIDE5LCAyMjQsIDEwNywgMTgsIDE5LCAxNTksIDIyNCwgMTA3LCAxOCwgMTksIDIyNCwgMTA2LCAxOCwgMTksIAotICAgIDE1OSwgMjI0LCAxMDYsIDE4LCAxOSwgMjI0LCAxMTQsIDE4LCAxOSwgMTU5LCAyMjQsIDExNCwgMTgsIDE5LCAyMjQsIDExMywgCi0gICAgMTgsIDE5LCAxNTksIDIyNCwgMTEzLCAxOCwgMTksIDIxMSwgMTE2LCAyMjQsIDExMywgMTgsIDE5LCAyMjYsIDEwNSwgMTgsIAotICAgIDE5LCAxNTksIDIyNiwgMTA1LCAxOCwgMTksIDcyLCAyNDIsIDYwLCAxOCwgMTksIDIxNywgMjIsIDE4LCAxOSwgMjE3LCA5OSwgCi0gICAgMTgsIDE5LCAyMTYsIDExNywgMTgsIDE5LCAyMTYsIDEwMywgMTgsIDE5LCAxMTEsIDE4LCAxOSwgMjE2LCAxNywgMTgsIDE5LCAKLSAgICAyMTEsIDExNiwgMjE2LCAxNywgMTgsIDE5LCA3MiwgMjQ4LCA3NywgMTgsIDE5LCA3MiwgMjQ4LCAzLCAxOCwgMTksIDIxNywgCi0gICAgMTA1LCAxOCwgMTksIDIxNywgMTAxLCAxOCwgMTksIDIxNSwgNzgsIDE4LCAxOSwgMTU5LCAyMTUsIDc4LCAxOCwgMTksIAotICAgIDIxNSwgNjIsIDE4LCAxOSwgMTU5LCAyMTUsIDYyLCAxOCwgMTksIDIxNSwgNjEsIDE4LCAxOSwgMTU5LCAyMTUsIDYxLCAxOCwgCi0gICAgMTksIDEwNSwgMTgsIDE5LCAxNTksIDEwNSwgMTgsIDE5LCAyMTUsIDU0LCAxOCwgMTksIDE1OSwgMjE1LCA1NCwgMTgsIDE5LCAKLSAgICAyMTUsIDgwLCAxOCwgMTksIDE1OSwgMjE1LCA4MCwgMTgsIDE5LCAyMTUsIDc5LCAxOCwgMTksIDE1OSwgMjE1LCA3OSwgMTgsIAotICAgIDE5LCAyMjksIDE5MCwgMjE1LCA3OSwgMTgsIDE5LCAyMTcsIDE1MiwgMTgsIDE5LCAyMTUsIDE1MSwgMTgsIDE5LCAyMTUsIAotICAgIDEzNSwgMTgsIDE5LCAyMTUsIDEzMywgMTgsIDE5LCAyMTUsIDE1NiwgMTgsIDE5LCAyMzQsIDE4MiwgMTgsIDE5LCAyMzUsIAotICAgIDcsIDE4LCAxOSwgMjM0LCA5MiwgMTgsIDE5LCAyMzQsIDgzLCAxOCwgMTksIDIzNCwgMjgsIDE4LCAxOSwgMjM0LCAxMCwgCi0gICAgMTgsIDE5LCAyMTEsIDExNiwgMjM0LCAxMCwgMTgsIDE5LCAxNzYsIDE4LCAxOSwgMjM1LCAxMCwgMTgsIDE5LCAyMzMsIAotICAgIDE3OCwgMTgsIDE5LCAxNTksIDIzMywgMTc4LCAxOCwgMTksIDIzMywgMTc2LCAxOCwgMTksIDE1OSwgMjMzLCAxNzYsIDE4LCAKLSAgICAxOSwgMjMzLCAxNzUsIDE4LCAxOSwgMTU5LCAyMzMsIDE3NSwgMTgsIDE5LCAyMzMsIDE3NCwgMTgsIDE5LCAxNTksIDIzMywgCi0gICAgMTc0LCAxOCwgMTksIDIzMywgMTczLCAxOCwgMTksIDE1OSwgMjMzLCAxNzMsIDE4LCAxOSwgMjMzLCAxODIsIDE4LCAxOSwgCi0gICAgMTU5LCAyMzMsIDE4MiwgMTgsIDE5LCAyMzMsIDE4MSwgMTgsIDE5LCAxNTksIDIzMywgMTgxLCAxOCwgMTksIDIyOSwgMTkwLCAKLSAgICAyMzMsIDE4MSwgMTgsIDE5LCAyMzUsIDIzLCAxOCwgMTksIDIzMywgMTgzLCAxOCwgMTksIDIxOSwgMjcsIDIzNCwgMTc2LCAKLSAgICAxOCwgMTksIDIxOSwgMjcsIDIzNCwgODQsIDE4LCAxOSwgMjE5LCAyNywgMjM0LCAyMywgMTgsIDE5LCAyMTksIDI3LCAyMzQsIAotICAgIDI0OCwgMTgsIDE5LCAyNTAsIDE5MCwgMTgsIDE5LCAyNTEsIDMxLCAxOCwgMTksIDI1MCwgNTEsIDE4LCAxOSwgMjUwLCA0MSwgCi0gICAgMTgsIDE5LCAyNDksIDIzOCwgMTgsIDE5LCAyNDksIDE3NCwgMTgsIDE5LCAyMTEsIDExNiwgMjQ5LCAxNzQsIDE4LCAxOSwgCi0gICAgMjUxLCAzMywgMTgsIDE5LCAyNTEsIDMyLCAxOCwgMTksIDI0OSwgNzksIDE4LCAxOSwgMTU5LCAyNDksIDc5LCAxOCwgMTksIAotICAgIDI0OSwgNzcsIDE4LCAxOSwgMTU5LCAyNDksIDc3LCAxOCwgMTksIDI0OSwgNzYsIDE4LCAxOSwgMTU5LCAyNDksIDc2LCAxOCwgCi0gICAgMTksIDI0OSwgNzUsIDE4LCAxOSwgMTU5LCAyNDksIDc1LCAxOCwgMTksIDI0OSwgNzQsIDE4LCAxOSwgMTU5LCAyNDksIDc0LCAKLSAgICAxOCwgMTksIDI0OSwgODEsIDE4LCAxOSwgMTU5LCAyNDksIDgxLCAxOCwgMTksIDI0OSwgODAsIDE4LCAxOSwgMTU5LCAyNDksIAotICAgIDgwLCAxOCwgMTksIDIyOSwgMTkwLCAyNDksIDgwLCAxOCwgMTksIDI1MSwgNjYsIDE4LCAxOSwgMjIxLCAyMDksIDIxNiwgCi0gICAgMjEwLCAxOCwgMTksIDIzMSwgOTEsIDE4LCAxOSwgMjMxLCAyMzYsIDE4LCAxOSwgMjMwLCAyMzAsIDE4LCAxOSwgMjMwLCAKLSAgICAyMDEsIDE4LCAxOSwgMjMwLCAxNjEsIDE4LCAxOSwgMjMwLCAxMzIsIDE4LCAxOSwgMjExLCAxMTYsIDIzMCwgMTMyLCAxOCwgCi0gICAgMTksIDE4NCwgMTgsIDE5LCAyMzEsIDIzNywgMTgsIDE5LCAyMzAsIDQwLCAxOCwgMTksIDE1OSwgMjMwLCA0MCwgMTgsIDE5LCAKLSAgICAyMzAsIDM4LCAxOCwgMTksIDE1OSwgMjMwLCAzOCwgMTgsIDE5LCAyMzAsIDM3LCAxOCwgMTksIDE1OSwgMjMwLCAzNywgMTgsIAotICAgIDE5LCAyMzAsIDM2LCAxOCwgMTksIDE1OSwgMjMwLCAzNiwgMTgsIDE5LCAyMzAsIDM1LCAxOCwgMTksIDE1OSwgMjMwLCAzNSwgCi0gICAgMTgsIDE5LCAyMzAsIDQyLCAxOCwgMTksIDE1OSwgMjMwLCA0MiwgMTgsIDE5LCAyMzAsIDQxLCAxOCwgMTksIDE1OSwgMjMwLCAKLSAgICA0MSwgMTgsIDE5LCAyMjksIDE5MCwgMjMwLCA0MSwgMTgsIDE5LCAxOTMsIDE4LCAxOSwgMTU5LCAxOTMsIDE4LCAxOSwgCi0gICAgMjMwLCAyMzQsIDE4LCAxOSwgMjUzLCAyMDUsIDE5MywgMTgsIDE5LCAyMjEsIDIwOSwgMTkzLCAxOCwgMTksIDIyOSwgMTA3LCAKLSAgICAxOCwgMTksIDIyOSwgMjI0LCAxOCwgMTksIDIyOCwgMjMzLCAxOCwgMTksIDIyOCwgMjA4LCAxOCwgMTksIDIyOCwgNzQsIAotICAgIDE4LCAxOSwgMjI4LCA2NCwgMTgsIDE5LCAyMTEsIDExNiwgMjI4LCA2NCwgMTgsIDE5LCAxOTcsIDE4LCAxOSwgMjI5LCAKLSAgICAyMjUsIDE4LCAxOSwgMjI3LCAxNzIsIDE4LCAxOSwgMTU5LCAyMjcsIDE3MiwgMTgsIDE5LCAyMjcsIDE3NCwgMTgsIDE5LCAKLSAgICAxNTksIDIyNywgMTc0LCAxOCwgMTksIDIyNywgMTczLCAxOCwgMTksIDE1OSwgMjI3LCAxNzMsIDE4LCAxOSwgMjI5LCAxOTAsIAotICAgIDIyNywgMTczLCAxOCwgMTksIDIzMCwgMjUsIDE4LCAxOSwgNzIsIDIyOSwgNzksIDE4LCAxOSwgMjI4LCAyMzgsIDE4LCAxOSwgCi0gICAgMjMzLCA1OCwgMTgsIDE5LCAyMzMsIDEzMywgMTgsIDE5LCAyMzIsIDI0MSwgMTgsIDE5LCAyMzIsIDIyNywgMTgsIDE5LCAKLSAgICAyMzIsIDE1NiwgMTgsIDE5LCAyMzIsIDEyNywgMTgsIDE5LCAyMTEsIDExNiwgMjMyLCAxMjcsIDE4LCAxOSwgMjMzLCAxMzUsIAotICAgIDE4LCAxOSwgMjMzLCAxMzQsIDE4LCAxOSwgMjMyLCA2OCwgMTgsIDE5LCAxNTksIDIzMiwgNjgsIDE4LCAxOSwgMjMyLCA2NywgCi0gICAgMTgsIDE5LCAxNTksIDIzMiwgNjcsIDE4LCAxOSwgMjMyLCA2NiwgMTgsIDE5LCAxNTksIDIzMiwgNjYsIDE4LCAxOSwgMjMyLCAKLSAgICA2NSwgMTgsIDE5LCAxNTksIDIzMiwgNjUsIDE4LCAxOSwgMjMyLCA2NCwgMTgsIDE5LCAxNTksIDIzMiwgNjQsIDE4LCAxOSwgCi0gICAgMjMyLCA3MCwgMTgsIDE5LCAxNTksIDIzMiwgNzAsIDE4LCAxOSwgMjMyLCA2OSwgMTgsIDE5LCAxNTksIDIzMiwgNjksIDE4LCAKLSAgICAxOSwgMTU2LCAxOCwgMTksIDE1OSwgMTU2LCAxOCwgMTksIDE0NywgMTU2LCAxOCwgMTksIDIyMSwgMTgxLCAxOCwgMTksIAotICAgIDIyMiwgMjksIDE4LCAxOSwgMjE5LCAxOTEsIDE4LCAxOSwgMjE5LCAxNzUsIDE4LCAxOSwgMjE5LCA1OCwgMTgsIDE5LCAKLSAgICAyMTksIDQwLCAxOCwgMTksIDIxMSwgMTE2LCAyMTksIDQwLCAxOCwgMTksIDIwNiwgMTgsIDE5LCAyMjIsIDMxLCAxOCwgMTksIAotICAgIDIxNywgMjQ5LCAxOCwgMTksIDE1OSwgMjE3LCAyNDksIDE4LCAxOSwgMjE3LCAyNDMsIDE4LCAxOSwgMTU5LCAyMTcsIDI0MywgCi0gICAgMTgsIDE5LCAyMTcsIDI0MiwgMTgsIDE5LCAxNTksIDIxNywgMjQyLCAxOCwgMTksIDIxNywgMjM4LCAxOCwgMTksIDE1OSwgCi0gICAgMjE3LCAyMzgsIDE4LCAxOSwgMjE3LCAyMzcsIDE4LCAxOSwgMTU5LCAyMTcsIDIzNywgMTgsIDE5LCAyMTcsIDI1MywgMTgsIAotICAgIDE5LCAxNTksIDIxNywgMjUzLCAxOCwgMTksIDIxNywgMjUyLCAxOCwgMTksIDE1OSwgMjE3LCAyNTIsIDE4LCAxOSwgMjI5LCAKLSAgICAxOTAsIDIxNywgMjUyLCAxOCwgMTksIDIyMiwgOTEsIDE4LCAxOSwgMjUzLCAyMDUsIDIyMiwgOTEsIDE4LCAxOSwgMjE3LCAKLSAgICAyNTQsIDE4LCAxOSwgMjUxLCAyMTgsIDIyMiwgOTEsIDE4LCAxOSwgMjMwLCAxMjcsIDIxOSwgMTA4LCAxOCwgMTksIDIyOSwgCi0gICAgMTkwLCAyMTksIDk5LCAxOCwgMTksIDIyOSwgMTkwLCAyMjIsIDg5LCAxOCwgMTksIDIyOSwgMTkwLCAyMTgsIDIzNSwgMTgsIAotICAgIDE5LCAyMjksIDE5MCwgMjE4LCA4NiwgMTgsIDE5LCAyMjksIDE5MCwgMjE5LCA5OCwgMTgsIDE5LCAyMjksIDE5MCwgMjIxLCAKLSAgICAxODQsIDE4LCAxOSwgMjIwLCA2MywgMTgsIDE5LCAyMjAsIDMyLCAxOCwgMTksIDIyMCwgMjcsIDE4LCAxOSwgMjIwLCA3LCAKLSAgICAxOCwgMTksIDIyMCwgMSwgMTgsIDE5LCAyMjAsIDEwMiwgMTgsIDE5LCAyMjAsIDk4LCAxOCwgMTksIDIxOSwgMjA2LCAxOCwgCi0gICAgMTksIDE1OSwgMjE5LCAyMDYsIDE4LCAxOSwgMjE5LCAyMDUsIDE4LCAxOSwgMTU5LCAyMTksIDIwNSwgMTgsIDE5LCAyMTksIAotICAgIDIwNCwgMTgsIDE5LCAxNTksIDIxOSwgMjA0LCAxOCwgMTksIDIxOSwgMjAzLCAxOCwgMTksIDE1OSwgMjE5LCAyMDMsIDE4LCAKLSAgICAxOSwgMjE5LCAyMDIsIDE4LCAxOSwgMTU5LCAyMTksIDIwMiwgMTgsIDE5LCAyMTksIDIwOCwgMTgsIDE5LCAxNTksIDIxOSwgCi0gICAgMjA4LCAxOCwgMTksIDIxOSwgMjA3LCAxOCwgMTksIDE1OSwgMjE5LCAyMDcsIDE4LCAxOSwgMjIwLCAxMDQsIDE4LCAxOSwgCi0gICAgMjExLCA0NywgMTgsIDE5LCAyMTEsIDEwMSwgMTgsIDE5LCAyMTEsIDgsIDE4LCAxOSwgMjEwLCAyNTUsIDE4LCAxOSwgMjEwLCAKLSAgICAyNDQsIDE4LCAxOSwgMjEwLCAyMjksIDE4LCAxOSwgMjExLCAxMTYsIDIxMCwgMjI5LCAxOCwgMTksIDE5MSwgMTgsIDE5LCAKLSAgICAyMTEsIDEwMywgMTgsIDE5LCAyMTAsIDE3NCwgMTgsIDE5LCAxNTksIDIxMCwgMTc0LCAxOCwgMTksIDIxMCwgMTczLCAxOCwgCi0gICAgMTksIDE1OSwgMjEwLCAxNzMsIDE4LCAxOSwgMjEwLCAxNzIsIDE4LCAxOSwgMTU5LCAyMTAsIDE3MiwgMTgsIDE5LCAyMTAsIAotICAgIDE3MSwgMTgsIDE5LCAxNTksIDIxMCwgMTcxLCAxOCwgMTksIDIxMCwgMTcwLCAxOCwgMTksIDE1OSwgMjEwLCAxNzAsIDE4LCAKLSAgICAxOSwgMjEwLCAxNzYsIDE4LCAxOSwgMTU5LCAyMTAsIDE3NiwgMTgsIDE5LCAyMTAsIDE3NSwgMTgsIDE5LCAxNTksIDIxMCwgCi0gICAgMTc1LCAxOCwgMTksIDIyOSwgMTkwLCAyMTAsIDE3NSwgMTgsIDE5LCAyMTEsIDExNywgMTgsIDE5LCAyNTIsIDQsIDIxMSwgCi0gICAgMTE3LCAxOCwgMTksIDE1OSwgMjExLCAxMTcsIDE4LCAxOSwgMjIxLCAyMDksIDIxMSwgOCwgMTgsIDE5LCAyMjMsIDEyOCwgCi0gICAgMTgsIDE5LCAyMjMsIDIyMywgMjIzLCAxMjgsIDE4LCAxOSwgMTU5LCAyMzMsIDU4LCAxOCwgMTksIDIyMywgMTgzLCAxOCwgCi0gICAgMTksIDIyMywgMzUsIDE4LCAxOSwgMjIyLCAyMzksIDE4LCAxOSwgMjIyLCAyMTEsIDE4LCAxOSwgMjIyLCAxOTcsIDE4LCAKLSAgICAxOSwgMTU5LCAyMzIsIDE1NiwgMTgsIDE5LCAyMDUsIDE4LCAxOSwgMjIzLCAxODQsIDE4LCAxOSwgMTU5LCAyMzMsIDEzNSwgCi0gICAgMTgsIDE5LCAyMjIsIDEwOCwgMTgsIDE5LCAxNTksIDIyMiwgMTA4LCAxOCwgMTksIDE1MywgMTgsIDE5LCAxNTksIDE1MywgCi0gICAgMTgsIDE5LCAxNDcsIDE1MywgMTgsIDE5LCAyNDQsIDE1NCwgMTgsIDE5LCAyNDQsIDE5MywgMTgsIDE5LCAyNDQsIDEyMSwgCi0gICAgMTgsIDE5LCAyNDQsIDEwOCwgMTgsIDE5LCAyNDQsIDQzLCAxOCwgMTksIDI0NCwgMzQsIDE4LCAxOSwgMjQ0LCAxOTYsIDE4LCAKLSAgICAxOSwgMjQ0LCAxOTUsIDE4LCAxOSwgMjQzLCAyMTIsIDE4LCAxOSwgMTU5LCAyNDMsIDIxMiwgMTgsIDE5LCAyNDUsIDYsIAotICAgIDE4LCAxOSwgMjE2LCAxOTUsIDE4LCAxOSwgMjMwLCAyMywgMjE2LCAxOTUsIDE4LCAxOSwgMjE2LCAxNzUsIDE4LCAxOSwgCi0gICAgMjMwLCAyMywgMjE2LCAxNzUsIDE4LCAxOSwgMjE2LCAxNzEsIDE4LCAxOSwgMjMwLCAyMywgMjE2LCAxNzEsIDE4LCAxOSwgCi0gICAgMjE2LCAxNTYsIDE4LCAxOSwgMjE2LCAxNTMsIDE4LCAxOSwgMjE2LCAyMDgsIDE4LCAxOSwgMjE2LCAyMDcsIDE4LCAxOSwgCi0gICAgMjE2LCAxMjcsIDE4LCAxOSwgMTU5LCAyMTYsIDEyNywgMTgsIDE5LCAyMTYsIDIxMCwgMTgsIDE5LCAyMTUsIDE0MiwgMTgsIAotICAgIDE5LCAyMTUsIDE0MCwgMTgsIDE5LCAyMTUsIDEzOSwgMTgsIDE5LCAyMTUsIDE0NCwgMTgsIDE5LCAyMTUsIDE0NSwgMTgsIAotICAgIDE5LCAyMTUsIDUyLCAxOCwgMTksIDIxNSwgNTEsIDE4LCAxOSwgMjE1LCA1MCwgMTgsIDE5LCAyMTUsIDUzLCAxOCwgMTksIAotICAgIDIyNywgMTkzLCAyNDEsIDIzOCwgMTgsIDE5LCAyMjcsIDE5MywgMjQxLCAxODAsIDE4LCAxOSwgMjI3LCAxOTMsIDI0MSwgCi0gICAgMTYxLCAxOCwgMTksIDIyNywgMTkzLCAyNDEsIDY4LCAxOCwgMTksIDIyNywgMTkzLCAyNDEsIDUzLCAxOCwgMTksIDIyNywgCi0gICAgMTkzLCAxNjIsIDE4LCAxOSwgMjI3LCAxOTMsIDI0MiwgNDYsIDE4LCAxOSwgMjI3LCAxOTMsIDI0MiwgNjAsIDE4LCAxOSwgCi0gICAgMjI3LCAxOTIsIDI0MiwgNjAsIDE4LCAxOSwgMjQxLCAxNTQsIDE4LCAxOSwgMjI0LCA4NCwgMTgsIDE5LCAyMjQsIDUzLCAKLSAgICAxOCwgMTksIDIyNCwgNDgsIDE4LCAxOSwgMjI0LCA0MiwgMTgsIDE5LCAyMjQsIDM3LCAxOCwgMTksIDIyNCwgODgsIDE4LCAKLSAgICAxOSwgMjI0LCA4NywgMTgsIDE5LCAyMjQsIDk2LCAxOCwgMTksIDIxNiwgNTUsIDE4LCAxOSwgMjE2LCA1MywgMTgsIDE5LCAKLSAgICAyMTYsIDUyLCAxOCwgMTksIDIxNiwgNTYsIDE4LCAxOSwgMTU5LCAyMjMsIDEyOCwgMTgsIDE5LCAxNTksIDIyMywgMzUsIAotICAgIDE4LCAxOSwgMTU5LCAyMjIsIDIxMSwgMTgsIDE5LCAxNTksIDIwNSwgMTgsIDE5LCAyMjksIDc1LCAxOCwgMTksIDIyOSwgCi0gICAgMjcsIDE4LCAxOSwgMjI5LCAyMywgMTgsIDE5LCAyMjksIDQsIDE4LCAxOSwgMjI4LCAyNTUsIDE4LCAxOSwgMjI5LCA3NywgCi0gICAgMTgsIDE5LCAyMjksIDc2LCAxOCwgMTksIDIyOSwgNzksIDE4LCAxOSwgMjI4LCAxMDMsIDE4LCAxOSwgMjIxLCAyMDksIAotICAgIDIyMCwgNjMsIDE4LCAxOSwgMjIxLCAyMDksIDIyMCwgMzIsIDE4LCAxOSwgMjIxLCAyMDksIDIyMCwgNywgMTgsIDE5LCAKLSAgICAyMjEsIDIwOSwgMjIwLCAxMDIsIDE4LCAxOSwgMjExLCAyMTMsIDIxNiwgMTk1LCAxOCwgMTksIDIxMSwgMjEzLCAyMTYsIAotICAgIDE3NSwgMTgsIDE5LCAyMTEsIDIxMywgMjE2LCAxNTYsIDE4LCAxOSwgMjExLCAyMTMsIDIxNiwgMjA4LCAxOCwgMTksIDIxMSwgCi0gICAgMjEzLCAyMTYsIDIxMCwgMTgsIDE5LCAyMzIsIDI0OCwgMTgsIDE5LCAyMzIsIDI0NywgMTgsIDE5LCAyMzIsIDI0NiwgMTgsIAotICAgIDE5LCAyMzIsIDI0NSwgMTgsIDE5LCAyMzIsIDI1NCwgMTgsIDE5LCAyMzIsIDI1MywgMTgsIDE5LCAyMzIsIDI1NSwgMTgsIAotICAgIDE5LCAyMTYsIDIwOSwgMjE2LCAxOTUsIDE4LCAxOSwgMjE2LCAyMDksIDIxNiwgMTc1LCAxOCwgMTksIDIxNiwgMjA5LCAKLSAgICAyMTYsIDE3MSwgMTgsIDE5LCAyMTYsIDIwOSwgMjE2LCAxNTYsIDE4LCAxOSwgMjE2LCAyMDksIDIxNiwgMTUzLCAxOCwgMTksIAotICAgIDIxNiwgMjA5LCAyMTYsIDIwOCwgMTgsIDE5LCAyMTYsIDIwOSwgMjE2LCAyMDcsIDE4LCAxOSwgMjE2LCAyMDksIDIxNiwgCi0gICAgMjEwLCAxOCwgMTksIDI1NCwgMTg5LCAyNTMsIDE1OCwgMTgsIDE5LCAyNTEsIDIxOCwgNzUsIDE4LCAxOSwgMjUxLCAyMTgsIAotICAgIDczLCAxOCwgMTksIDI1MSwgMjE4LCA3NiwgMTgsIDE5LCAyNTEsIDIxOCwgNjEsIDE4LCAxOSwgMjUxLCAyMTgsIDIxMiwgCi0gICAgMjIsIDE4LCAxOSwgMjUxLCAyMTgsIDIxMSwgMjUwLCAxOCwgMTksIDI1MSwgMjE4LCAyMTEsIDIyNywgMTgsIDE5LCAyNTEsIAotICAgIDIxOCwgMjEyLCA2NSwgMTgsIDE5LCAyNTEsIDIxOCwgMjI5LCAxMDcsIDE4LCAxOSwgMjUxLCAyMTgsIDIyOCwgMjMzLCAxOCwgCi0gICAgMTksIDI1MSwgMjE4LCAyMjgsIDc0LCAxOCwgMTksIDI1MSwgMjE4LCAxOTcsIDE4LCAxOSwgMjUxLCAyMTgsIDIzNCwgMTgyLCAKLSAgICAxOCwgMTksIDI1MSwgMjE4LCAyMzQsIDkyLCAxOCwgMTksIDI1MSwgMjE4LCAyMzQsIDI4LCAxOCwgMTksIDI1MSwgMjE4LCAKLSAgICAxNzYsIDE4LCAxOSwgMjIxLCAyMDksIDI0MSwgMjM4LCAxOCwgMTksIDIyMSwgMjA5LCAyNDEsIDE4MCwgMTgsIDE5LCAyMjEsIAotICAgIDIwOSwgMjQxLCA2OCwgMTgsIDE5LCAyMjEsIDIwOSwgMTYyLCAxOCwgMTksIDcyLCAyNDIsIDIyMCwgMTgsIDE5LCA3MiwgCi0gICAgMjQyLCAyMjQsIDE4LCAxOSwgNzIsIDI0MiwgMjM2LCAxOCwgMTksIDcyLCAyNDIsIDIzNSwgMTgsIDE5LCA3MiwgMjQyLCAKLSAgICAyMjUsIDE4LCAxOSwgNzIsIDI0MiwgMjQ5LCAxOCwgMTksIDcyLCAyMjIsIDE0MCwgMTgsIDE5LCA3MiwgMjIyLCAyMTEsIAotICAgIDE4LCAxOSwgNzIsIDIyMywgMTI4LCAxOCwgMTksIDcyLCAyMjMsIDEwOCwgMTgsIDE5LCA3MiwgMjIzLCAzNSwgMTgsIDE5LCAKLSAgICA3MiwgMjA1LCAxOCwgMTksIDcyLCAyMTEsIDE5NSwgMTgsIDE5LCA3MiwgMjExLCAyMjcsIDE4LCAxOSwgNzIsIDIxMiwgMjIsIAotICAgIDE4LCAxOSwgNzIsIDIxMiwgMTcsIDE4LCAxOSwgNzIsIDIxMSwgMjUwLCAxOCwgMTksIDcyLCAyMTIsIDY1LCAxOCwgMTksIAotICAgIDcyLCAyNDAsIDE5NCwgMTgsIDE5LCA3MiwgMjQwLCAxOTUsIDE4LCAxOSwgNzIsIDI0MCwgMTk4LCAxOCwgMTksIDcyLCAKLSAgICAyNDAsIDE5NywgMTgsIDE5LCA3MiwgMjQwLCAxOTYsIDE4LCAxOSwgNzIsIDI0MCwgMjAwLCAxOCwgMTksIDcyLCAyMTYsIAotICAgIDEzNiwgMTgsIDE5LCA3MiwgMjE2LCAxNTYsIDE4LCAxOSwgNzIsIDIxNiwgMTk1LCAxOCwgMTksIDcyLCAyMTYsIDE5NCwgCi0gICAgMTgsIDE5LCA3MiwgMjE2LCAxNzUsIDE4LCAxOSwgNzIsIDIxNiwgMjA4LCAxOCwgMTksIDcyLCAyMTUsIDEyMywgMTgsIDE5LCAKLSAgICA3MiwgMjE1LCAxMzMsIDE4LCAxOSwgNzIsIDIxNSwgMTUxLCAxOCwgMTksIDcyLCAyMTUsIDE1MCwgMTgsIDE5LCA3MiwgCi0gICAgMjE1LCAxMzUsIDE4LCAxOSwgNzIsIDIxNSwgMTU2LCAxOCwgMTksIDcyLCAyMjQsIDE1MCwgMTgsIDE5LCA3MiwgMjI1LCAKLSAgICAxNiwgMTgsIDE5LCA3MiwgMjI1LCAyMjEsIDE4LCAxOSwgNzIsIDIyNSwgMjExLCAxOCwgMTksIDcyLCAyMjUsIDEwOCwgMTgsIAotICAgIDE5LCA3MiwgMTkwLCAxOCwgMTksIDcyLCAyMjYsIDEwNSwgMTgsIDE5LCA3MiwgMjQyLCAxMTMsIDE4LCAxOSwgNzIsIDI0MiwgCi0gICAgMTc0LCAxOCwgMTksIDcyLCAyNDMsIDYyLCAxOCwgMTksIDcyLCAyNDMsIDU1LCAxOCwgMTksIDcyLCAyNDIsIDIxNCwgMTgsIAotICAgIDE5LCA3MiwgMjQzLCAxMzUsIDE4LCAxOSwgNzIsIDIzNCwgMTAwLCAxOCwgMTksIDcyLCAyMzQsIDEwNSwgMTgsIDE5LCA3MiwgCi0gICAgMjM0LCAxMTksIDE4LCAxOSwgNzIsIDIzNCwgMTE4LCAxOCwgMTksIDcyLCAyMzQsIDExMiwgMTgsIDE5LCA3MiwgMjM0LCAKLSAgICAxMzIsIDE4LCAxOSwgNzIsIDIzNCwgNDEsIDE4LCAxOSwgNzIsIDIzNCwgNDIsIDE4LCAxOSwgNzIsIDIzNCwgNDUsIDE4LCAKLSAgICAxOSwgNzIsIDIzNCwgNDQsIDE4LCAxOSwgNzIsIDIzNCwgNDMsIDE4LCAxOSwgNzIsIDIzNCwgNDYsIDE4LCAxOSwgNzIsIAotICAgIDIzNCwgNDcsIDE4LCAxOSwgNzIsIDIyNywgMjM3LCAxOCwgMTksIDcyLCAyMjgsIDc0LCAxOCwgMTksIDcyLCAyMjksIDEwNywgCi0gICAgMTgsIDE5LCA3MiwgMjI5LCAxMDMsIDE4LCAxOSwgNzIsIDIyOCwgMjMzLCAxOCwgMTksIDcyLCAxOTcsIDE4LCAxOSwgNzIsIAotICAgIDIzMCwgMTAyLCAxOCwgMTksIDcyLCAyMzAsIDE2MSwgMTgsIDE5LCA3MiwgMjMxLCA5MSwgMTgsIDE5LCA3MiwgMjMxLCA4MCwgCi0gICAgMTgsIDE5LCA3MiwgMjMwLCAyMzAsIDE4LCAxOSwgNzIsIDE4NCwgMTgsIDE5LCA3MiwgMjEwLCAyMTIsIDE4LCAxOSwgNzIsIAotICAgIDIxMCwgMjQ0LCAxOCwgMTksIDcyLCAyMTEsIDQ3LCAxOCwgMTksIDcyLCAyMTEsIDQ0LCAxOCwgMTksIDcyLCAyMTEsIDgsIAotICAgIDE4LCAxOSwgNzIsIDE5MSwgMTgsIDE5LCA3MiwgMjM1LCA1MSwgMTgsIDE5LCAyMjEsIDIwOSwgMjM1LCA1MSwgMTgsIDE5LCAKLSAgICA3MiwgMjM1LCA2OCwgMTgsIDE5LCA3MiwgMjM1LCAxMjYsIDE4LCAxOSwgNzIsIDIzNSwgMTI0LCAxOCwgMTksIDcyLCAyMzUsIAotICAgIDEwOCwgMTgsIDE5LCAyMjEsIDIwOSwgMjM1LCAxMDgsIDE4LCAxOSwgNzIsIDIzNSwgMTQxLCAxOCwgMTksIDcyLCAyMzUsIAotICAgIDgxLCAxOCwgMTksIDcyLCAyMzUsIDg1LCAxOCwgMTksIDcyLCAyMzUsIDk1LCAxOCwgMTksIDcyLCAyMzUsIDk0LCAxOCwgCi0gICAgMTksIDcyLCAyMzUsIDkzLCAxOCwgMTksIDcyLCAyMzUsIDk2LCAxOCwgMTksIDcyLCAyMzIsIDk4LCAxOCwgMTksIDcyLCAKLSAgICAyMzIsIDE1NiwgMTgsIDE5LCA3MiwgMjMzLCA1OCwgMTgsIDE5LCA3MiwgMjMzLCA1MCwgMTgsIDE5LCA3MiwgMjMyLCAyNDEsIAotICAgIDE4LCAxOSwgNzIsIDIzMywgMTM1LCAxOCwgMTksIDcyLCAyNDcsIDE0OSwgMTgsIDE5LCA3MiwgMjQ3LCAxNTAsIDE4LCAxOSwgCi0gICAgNzIsIDI0NywgMTU1LCAxOCwgMTksIDcyLCAyNDcsIDE1NCwgMTgsIDE5LCA3MiwgMjQ3LCAxNTEsIDE4LCAxOSwgNzIsIAotICAgIDI0NywgMTU2LCAxOCwgMTksIDcyLCAyMzIsIDI0NCwgMTgsIDE5LCA3MiwgMjMyLCAyNDYsIDE4LCAxOSwgNzIsIDIzMiwgCi0gICAgMjUwLCAxOCwgMTksIDcyLCAyMzIsIDI0OSwgMTgsIDE5LCA3MiwgMjMyLCAyNDgsIDE4LCAxOSwgNzIsIDIzMiwgMjU0LCAKLSAgICAxOCwgMTksIDcyLCAyMTYsIDUwLCAxOCwgMTksIDcyLCAyMTYsIDUyLCAxOCwgMTksIDcyLCAyMTYsIDU1LCAxOCwgMTksIAotICAgIDcyLCAyMTYsIDU0LCAxOCwgMTksIDcyLCAyMTYsIDUzLCAxOCwgMTksIDcyLCAyMTYsIDU2LCAxOCwgMTksIDcyLCAyMTYsIAotICAgIDQ1LCAxOCwgMTksIDcyLCAyMTYsIDQ2LCAxOCwgMTksIDcyLCAyMTYsIDU4LCAxOCwgMTksIDcyLCAyMTYsIDU3LCAxOCwgCi0gICAgMTksIDcyLCAyMTYsIDQ3LCAxOCwgMTksIDcyLCAyMTYsIDU5LCAxOCwgMTksIDcyLCAyMTAsIDEzLCAxOCwgMTksIDcyLCAKLSAgICAyMTAsIDIzLCAxOCwgMTksIDcyLCAyMTAsIDk0LCAxOCwgMTksIDcyLCAyMTAsIDkyLCAxOCwgMTksIDcyLCAyMTAsIDQ0LCAKLSAgICAxOCwgMTksIDcyLCAyMTAsIDExNiwgMTgsIDE5LCA3MiwgMjEwLCAxNTksIDE4LCAxOSwgNzIsIDY1LCAyMTAsIDE1OSwgMTgsIAotICAgIDE5LCA3MiwgMjQ2LCAyOCwgMTgsIDE5LCA3MiwgMjQ2LCAyOSwgMTgsIDE5LCA3MiwgMjQ2LCAzNiwgMTgsIDE5LCA3MiwgCi0gICAgMjQ2LCAzNSwgMTgsIDE5LCA3MiwgMjQ2LCAzMSwgMTgsIDE5LCA3MiwgMjQ2LCAzOCwgMTgsIDE5LCA3MiwgMjE4LCA4MywgCi0gICAgMTgsIDE5LCA3MiwgMjE5LCA1OCwgMTgsIDE5LCA3MiwgMjIxLCAxODEsIDE4LCAxOSwgNzIsIDIyMSwgMTcwLCAxOCwgMTksIAotICAgIDcyLCAyMTksIDE5MSwgMTgsIDE5LCA3MiwgMjA2LCAxOCwgMTksIDcyLCAyMTksIDIyNSwgMTgsIDE5LCA3MiwgMjIwLCA3LCAKLSAgICAxOCwgMTksIDcyLCAyMjAsIDYzLCAxOCwgMTksIDcyLCAyMjAsIDYxLCAxOCwgMTksIDcyLCAyMjAsIDMyLCAxOCwgMTksIAotICAgIDcyLCAyMjAsIDEwMiwgMTgsIDE5LCA3MiwgMjIwLCAxMDQsIDE4LCAxOSwgNzIsIDIxNSwgMTYzLCAxOCwgMTksIDcyLCAKLSAgICAyMTUsIDE2NiwgMTgsIDE5LCA3MiwgMjE1LCAxNzgsIDE4LCAxOSwgNzIsIDIxNSwgMTc3LCAxOCwgMTksIDcyLCAyMTUsIAotICAgIDE2NywgMTgsIDE5LCA3MiwgMjE1LCAxODMsIDE4LCAxOSwgNzIsIDI1MCwgNjksIDE4LCAxOSwgNzIsIDI1MCwgODYsIDE4LCAKLSAgICAxOSwgNzIsIDI1MCwgMTMxLCAxOCwgMTksIDcyLCAyNTAsIDEyOCwgMTgsIDE5LCA3MiwgMjUwLCAxMTAsIDE4LCAxOSwgNzIsIAotICAgIDI1MCwgMTU3LCAxOCwgMTksIDcyLCAyMTUsIDEyNiwgMTgsIDE5LCA3MiwgMjE1LCAxMjcsIDE4LCAxOSwgNzIsIDIxNSwgCi0gICAgMTMwLCAxOCwgMTksIDcyLCAyMTUsIDEyOSwgMTgsIDE5LCA3MiwgMjE1LCAxMjgsIDE4LCAxOSwgNzIsIDIxNSwgMTMxLCAKLSAgICAxOCwgMTksIDI1MCwgMTExLCA1MCwgMTgsIDE5LCAyNDMsIDIyOSwgMjE4LCAxMjksIDE4LCAxOSwgMjI0LCA4MCwgMTgsIAotICAgIDE5LCAyMjksIDczLCAxOCwgMTksIDIyOCwgMTAwLCAxOCwgMTksIDIyOCwgOTksIDE4LCAxOSwgMjI4LCA5OCwgMTgsIDE5LCAKLSAgICAyMjgsIDk3LCAxOCwgMTksIDIyOCwgMTAyLCAxOCwgMTksIDIyOCwgMTAxLCAxOCwgMTksIDIxMSwgMjEzLCAyMTYsIDEyNSwgCi0gICAgMTgsIDE5LCAyMTEsIDIxMywgMjE2LCAxMjQsIDE4LCAxOSwgMjExLCAyMTMsIDIxNiwgMTIzLCAxOCwgMTksIDIxMSwgMjEzLCAKLSAgICAyMTYsIDEyMiwgMTgsIDE5LCAyMTEsIDIxMywgMjE2LCAxMjEsIDE4LCAxOSwgMjExLCAyMTMsIDIxNiwgMTI4LCAxOCwgMTksIAotICAgIDIxMSwgMjEzLCAyMTYsIDEyNywgMTgsIDE5LCAyMTEsIDIxMywgNDAsIDIxNiwgMjEwLCAxOCwgMTksIDI1MSwgMjE4LCAKLSAgICAyMTIsIDk4LCAyMjYsIDIyNiwgMjE5LCAxOSwgNzgsIDIyNiwgMjI2LCAxLCAyNTIsIDQ4LCAyMjYsIDIyNiwgMSwgMjMyLCAKLSAgICA4NywgMjI2LCAyMjYsIDEsIDI0NCwgMTUxLCAyMjYsIDIyNiwgMSwgMjIyLCAxNSwgMjI2LCAyMjYsIDEsIDIyOCwgMTkzLCAKLSAgICAyMjYsIDIyNiwgMSwgMjE0LCAyMjYsIDIyNiwgMjI2LCAxLCAyNDgsIDE5NywgMjI2LCAyMjYsIDEsIDIxNiwgODAsIDIyNiwgCi0gICAgMjI2LCAxLCAyNDksIDIyOSwgMjI2LCAyMjYsIDEsIDI1MCwgMTgwLCAyMjYsIDIyNiwgMSwgMjMwLCA5MSwgMjI2LCAyMjYsIAotICAgIDEsIDI0MiwgMTU2LCAyMjYsIDIyNiwgMSwgMjI5LCA2MywgMjI2LCAyMjYsIDEsIDIxOCwgMTIyLCAyMjYsIDIyNiwgMSwgCi0gICAgMjIyLCAxMzUsIDIyNiwgMjI2LCAxLCAyNTQsIDE5OCwgMjI2LCAyMjYsIDEsIDIyNiwgMTg3LCAyMjYsIDIyNiwgMSwgMjE0LCAKLSAgICAxNTAsIDIyNiwgMjI2LCAxLCAyNDUsIDIzMSwgMjI2LCAyMjYsIDEsIDIzNSwgMTg4LCAyMjYsIDIyNiwgMSwgMjQ1LCAyMzIsIAotICAgIDIyNiwgMjI2LCAxLCAyMjYsIDE1OCwgMjI2LCAyMjYsIDEsIDIxNCwgMjA2LCAyMjYsIDIyNiwgMSwgMjM2LCAzOSwgMjI2LCAKLSAgICAyMjYsIDEsIDI0NSwgMjI5LCAyMjYsIDIyNiwgMSwgMjI1LCAyMDIsIDIyNiwgMjI2LCAyNDQsIDE1MCwgNzgsIDIyNiwgCi0gICAgMjI2LCAyMjMsIDQ5LCAyNDQsIDE1MCwgNzgsIDE3OCwgMSwgMjQ0LCAxNDEsIDI0NCwgMTMzLCAyNDQsIDE1NSwgMjQ1LCA2LCAKLSAgICAxNzgsIDEsIDIxNCwgMTA1LCAxNzgsIDEsIDIxNCwgMTM1LCAyMTQsIDE1MSwgNzAsIDE3OCwgMSwgMjEwLCAyMTQsIDE3OCwgCi0gICAgMSwgMjExLCAxMTcsIDE3OCwgMSwgMjEyLCA5OCwgMTc4LCAxLCAyMTYsIDEzMCwgMjE2LCAxMjksIDIxNiwgMTUxLCAxNzgsIAotICAgIDEsIDI0NSwgNTksIDE3OCwgMSwgMjU0LCA5MywgNjEsIDE3OCwgMSwgMjI2LCAxNDMsIDc2LCAxNzgsIDEsIDI1NSwgMTcsIAotICAgIDYxLCAxNzgsIDEsIDI1NCwgMjI3LCAxNzgsIDEsIDIzMiwgMTMzLCA3NiwgMTc4LCAxLCAyMTksIDI0NCwgNzYsIDE3OCwgMSwgCi0gICAgNzYsIDE3OCwgMSwgMjI2LCAyMzQsIDE3OCwgMSwgMjI2LCAxOTYsIDE3OCwgMSwgMjIzLCAxNjQsIDIyMywgMTc3LCAyMjMsIAotICAgIDk0LCAxNTMsIDE3OCwgMSwgMjM0LCAxOTMsIDE3OCwgMSwgMjUwLCAxNzcsIDE3OCwgMSwgMjM0LCAxOTQsIDIzNSwgMjMsIAotICAgIDE3OCwgMSwgMjQzLCAyMDIsIDE3OCwgMSwgMjQ1LCAxMzgsIDE3OCwgMSwgMjQzLCA1OCwgMjQyLCA2NiwgMjQzLCAyMDIsIAotICAgIDE3OCwgMSwgMjQzLCA5NiwgMTc4LCAxLCAyMTEsIDE4OCwgMjExLCAxODIsIDIxMiwgOTgsIDE3OCwgMSwgMjQyLCAzOCwgCi0gICAgMjQyLCA2MCwgMTc4LCAxLCAyNDIsIDQyLCAyNDIsIDYwLCAxNzgsIDEsIDIzMiwgMTM1LCAyNDIsIDYwLCAxNzgsIDEsIAotICAgIDIxOSwgMjQ3LCAyNDIsIDYwLCAxNzgsIDEsIDIyOSwgMTg1LCAyMjcsIDE1NywgMjI5LCAxODYsIDIzMCwgMjUsIDE3OCwgMSwgCi0gICAgMjE5LCAyNDUsIDIzMCwgMjUsIDE3OCwgMSwgMjQ2LCAxMTUsIDE3OCwgMSwgMjM1LCAxNjgsIDIzNSwgMTcyLCAyMzUsIAotICAgIDE2MiwgNzMsIDE3OCwgMSwgNzUsIDE3OCwgMSwgMjM1LCAxMTcsIDIzNSwgMTQ0LCAxNzgsIDEsIDI0MywgNDMsIDE3OCwgMSwgCi0gICAgMjMyLCAxMzYsIDI1NCwgMjQzLCAxNzgsIDEsIDIxOSwgMjQ5LCA2MSwgMTc4LCAxLCAyMzUsIDE1NCwgMjQ1LCAxMTMsIAotICAgIDE3OCwgMSwgMjI1LCAxNjQsIDIyNSwgMTg2LCAyMjYsIDEwNSwgMTc4LCAxLCAyNTQsIDE2MywgMjQ1LCAxMTEsIDE3OCwgMSwgCi0gICAgMjE5LCAyNCwgMjIyLCA5MSwgMTc4LCAxLCAyMTksIDE3OSwgMjMyLCAxMzIsIDIyMiwgOTEsIDE3OCwgMSwgMjE5LCAyNDMsIAotICAgIDIyMiwgOTEsIDE3OCwgMSwgMjUxLCA2NiwgMTc4LCAxLCAyMTAsIDE1OSwgMTc4LCAxLCAyMTYsIDYzLCAyMTYsIDczLCAKLSAgICAyMTUsIDQxLCAyMTcsIDE1MiwgMTc4LCAxLCAyMTksIDI0MiwgMjE3LCAxNTIsIDE3OCwgMSwgMjQ5LCA2MCwgMTc4LCAxLCAKLSAgICAyNTIsIDMxLCAyNTIsIDM0LCAyNTEsIDIyNCwgMjUzLCAxNTgsIDE3OCwgMSwgMjE5LCAyNDgsIDI1MywgMTU4LCAxNzgsIDEsIAotICAgIDI0NiwgMTE0LCAxNzgsIDEsIDIyNiwgMTcxLCAxNzgsIDEsIDI0NSwgMTk2LCAyNDUsIDE5OCwgNzUsIDE3OCwgMSwgMjMxLCAKLSAgICAxNzgsIDIzMSwgMTg2LCAxOTMsIDE3OCwgMSwgMjMyLCAxMzQsIDE5MywgMTc4LCAxLCAyMTksIDI0NiwgMTkzLCAxNzgsIDEsIAotICAgIDIzMywgNzMsIDIzMywgMTE0LCAyMzIsIDE0MywgMTU2LCAxNzgsIDEsIDI0NiwgMTE2LCAxNzgsIDEsIDIzNSwgMjMwLCAKLSAgICAxNzgsIDEsIDIzNSwgMjMxLCAxNzgsIDEsIDI0OCwgMjEwLCAyNDgsIDIxNSwgMjQ5LCA2MCwgMTc4LCAxLCAyMjYsIDEzOCwgCi0gICAgMjQ1LCA1OCwgNzYsIDE3OCwgMSwgMjQ1LCAyMjcsIDE3OCwgMSwgMjM1LCAxODcsIDE3OCwgMSwgMjQ5LCA3OCwgMTc4LCAxLCAKLSAgICAyNTEsIDE3LCAxNzgsIDEsIDI1MCwgMTg5LCAxNzgsIDEsIDIxOCwgMTYxLCAxNzgsIDEsIDIzMiwgMTMxLCAxNzgsIDEsIAotICAgIDIxOSwgMjQxLCAxNzgsIDEsIDI0MCwgMTEwLCAxNzgsIDEsIDIyNCwgOTYsIDE3OCwgMSwgMjExLCAxNzgsIDE3OCwgMjE5LCAKLSAgICAxNTUsIDIyNCwgMTQwLCAxNzgsIDIzMCwgODUsIDIyNCwgMTQwLCAxNzgsIDI0OSwgMTMxLCAyMjQsIDE0MCwgMTc4LCAyNTQsIAotICAgIDYsIDg3LCAxNzgsIDIxNSwgODIsIDg3LCAxNzgsIDI1MiwgNDYsIDg3LCAyMTcsIDgzLCAxLCA2MSwgMjE3LCA4MywgMSwgCi0gICAgNzMsIDIxNywgODMsIDEsIDcwLCAyMTcsIDgzLCAxLCAxNzYsIDIxNywgODMsIDEsIDI0MywgMTM1LCAyMTcsIDgzLCAxLCAKLSAgICAyMjksIDc3LCAyMTcsIDgzLCAxLCAyMTcsIDEwNSwgMjE3LCA4MywgMSwgMjQ4LCAyMjEsIDIxNywgODMsIDEsIDE5NywgCi0gICAgMjE3LCA4MywgMSwgMTkwLCAyMTcsIDgzLCAxLCAyNTIsIDE5MSwgMjE3LCA4MywgMSwgMTg0LCAyMTcsIDgzLCAxLCAxOTEsIAotICAgIDIxNywgODMsIDEsIDIzMywgMTM1LCAyMTcsIDgzLCAxLCAyMTIsIDY1LCAyMTcsIDgzLCAxLCAyMDYsIDIxNywgODMsIDEsIAotICAgIDE2MiwgMjE3LCA4MywgMjUsIDUsIDczLCAyMTcsIDgzLCAyNSwgNSwgNzAsIDIxNywgODMsIDUsIDIxMywgMTUyLCAyNDIsIAotICAgIDcsIDEsIDYxLCAyNDIsIDcsIDEsIDczLCAyNDIsIDcsIDEsIDcwLCAyNDIsIDcsIDEsIDE3NiwgMjQyLCA3LCAxLCAyNDMsIAotICAgIDEzNSwgMjQyLCA3LCAxLCAyMjksIDc3LCAyNDIsIDcsIDEsIDIxNywgMTA1LCAyNDIsIDcsIDEsIDI0OCwgMjIxLCAyNDIsIAotICAgIDcsIDEsIDE5NywgMjQyLCA3LCAxLCAxOTAsIDI0MiwgNywgMSwgMjUyLCAxOTEsIDI0MiwgNywgMSwgMTg0LCAyNDIsIDcsIAotICAgIDEsIDE5MSwgMjQyLCA3LCAxLCAyMDUsIDI0MiwgNywgMSwgMjMzLCAxMzUsIDI0MiwgNywgMSwgMjEyLCA2NSwgMjQyLCA3LCAKLSAgICAxLCAyMDYsIDI0MiwgNywgMSwgMTYyLCAyNDIsIDcsIDI1LCA1LCA3MywgMjQyLCA3LCAyNSwgNSwgNzAsIDI0MiwgNywgNSwgCi0gICAgMjI2LCA0OSwgMjI1LCAxMjYsIDIxOSwgMTU1LCAyMjQsIDE0MCwgMjI1LCAxMjYsIDUyLCAyMjQsIDE0MCwgMjUxLCAxMjAsIAotICAgIDEsIDYxLCAyNTEsIDEyMCwgMSwgNzMsIDI1MSwgMTIwLCAxLCA3MCwgMjUxLCAxMjAsIDEsIDE3NiwgMjUxLCAxMjAsIDEsIAotICAgIDI0MywgMTM1LCAyNTEsIDEyMCwgMSwgMjI5LCA3NywgMjUxLCAxMjAsIDEsIDIxNywgMTA1LCAyNTEsIDEyMCwgMSwgMjQ4LCAKLSAgICAyMjEsIDI1MSwgMTIwLCAxLCAxOTcsIDI1MSwgMTIwLCAxLCAxOTAsIDI1MSwgMTIwLCAxLCAyNTIsIDE5MSwgMjUxLCAxMjAsIAotICAgIDEsIDE4NCwgMjUxLCAxMjAsIDEsIDE5MSwgMjUxLCAxMjAsIDEsIDIwNSwgMjUxLCAxMjAsIDEsIDIzMywgMTM1LCAyNTEsIAotICAgIDEyMCwgMSwgMjEyLCA2NSwgMjUxLCAxMjAsIDEsIDIwNiwgMjUxLCAxMjAsIDEsIDE2MiwgMjUxLCAxMjAsIDI1LCA1LCA3MywgCi0gICAgMjUxLCAxMjAsIDI1LCA1LCA3MCwgMjE3LCA4MiwgMSwgNjEsIDIxNywgODIsIDEsIDczLCAyMTcsIDgyLCAxLCA3MCwgMjE3LCAKLSAgICA4MiwgMSwgMTc2LCAyMTcsIDgyLCAxLCAyNDMsIDEzNSwgMjE3LCA4MiwgMSwgMjI5LCA3NywgMjE3LCA4MiwgMSwgMjE3LCAKLSAgICAxMDUsIDIxNywgODIsIDEsIDI0OCwgMjIxLCAyMTcsIDgyLCAxLCAxOTcsIDIxNywgODIsIDEsIDE5MCwgMjE3LCA4MiwgMSwgCi0gICAgMjUyLCAxOTEsIDIxNywgODIsIDEsIDE4NCwgMjE3LCA4MiwgMSwgMTkxLCAyMTcsIDgyLCAxLCAyMzMsIDEzNSwgMjE3LCAKLSAgICA4MiwgMSwgMjEyLCA2NSwgMjE3LCA4MiwgMSwgMjA2LCAyMTcsIDgyLCAyNSwgNSwgNzMsIDIxNywgODIsIDI1LCA1LCA3MCwgCi0gICAgNjksIDEsIDE3NiwgNjksIDEsIDIzNCwgMTMyLCA2OSwgMSwgMjM0LCAyOCwgNjksIDEsIDIzNCwgMTA1LCA2OSwgMSwgMjI5LCAKLSAgICA0LCA2OSwgMSwgMjUxLCAzMywgNjksIDEsIDI1MCwgMTU3LCA2OSwgMSwgMjQ5LCAyMzgsIDY5LCAxLCAyNTAsIDg2LCA2OSwgCi0gICAgMSwgMjI3LCAxMzQsIDY5LCAxLCAyNDgsIDIyMSwgNjksIDEsIDIxNSwgMTQ0LCA2OSwgMSwgMjQ3LCAxNDUsIDY5LCAxLCAKLSAgICAyMTUsIDEzOSwgNjksIDEsIDIyOCwgODAsIDY5LCAxLCAyMTcsIDEwNSwgNjksIDEsIDIxNiwgMjA4LCA2OSwgMSwgMTExLCAKLSAgICA2OSwgMSwgMjE2LCAxNTYsIDY5LCAxLCAyMjgsIDc0LCA2OSwgMSwgMjUyLCAxOTEsIDY5LCAxLCAyMjUsIDE0NywgNjksIDEsIAotICAgIDIyNSwgMTYsIDY5LCAxLCAyMjUsIDEyMSwgNjksIDEsIDIzMCwgMTYxLCA2OSwgMSwgMjEwLCAyNDQsIDY5LCAxLCAyMjIsIAotICAgIDIxMSwgNjksIDEsIDIzMiwgMTU2LCA2OSwgMSwgMjEzLCAxMzgsIDY5LCAxLCAyMjAsIDEwMiwgNjksIDEsIDIxOCwgMTg0LCAKLSAgICA2OSwgMSwgMjA2LCA2OSwgMSwgMTYyLCA2OSwgMSwgMjMzLCAxMzUsIDY5LCAxLCAyMjQsIDg4LCA2OSwgMjM1LCAyNDMsIAotICAgIDI1LCAyMjQsIDc0LCA2OSwgMjM1LCAyNDMsIDI1LCAyMjQsIDg3LCA2OSwgMjM1LCAyNDMsIDI1LCAyMjQsIDUzLCA2OSwgCi0gICAgMjM1LCAyNDMsIDI1LCAyMjQsIDQ4LCA2OSwgMjM1LCAyNDMsIDI1LCAyMjQsIDMwLCA2OSwgMjM1LCAyNDMsIDI1LCAyMjQsIAotICAgIDIsIDY5LCAyMzUsIDI0MywgMjUsIDIyMywgMjQ2LCA2OSwgMjM1LCAyNDMsIDI1LCAyMjMsIDI0NSwgNjksIDIzNSwgMjQzLCAKLSAgICAyNSwgMjIyLCAxMDAsIDY5LCAyMzUsIDI0MywgMjUsIDIyMiwgOTMsIDY5LCAyMzUsIDI0MywgMjUsIDIzMiwgNjIsIDY5LCAKLSAgICAyMzUsIDI0MywgMjUsIDIzMiwgNTIsIDY5LCAyMzUsIDI0MywgMjUsIDIyNCwgNjksIDY5LCAyMzUsIDI0MywgMjUsIDIyNCwgCi0gICAgODAsIDY5LCAyMzUsIDI0MywgMjUsIDIyNCwgMzgsIDIxNSwgNDksIDExMCwgNjksIDIzNSwgMjQzLCAyNSwgMjI0LCAzOCwgCi0gICAgMjE1LCA0OSwgMTA1LCA2OSwgMjM1LCAyNDMsIDI1LCAyMjQsIDcwLCA2OSwgMjUsIDIzNSwgMjI5LCAyNTQsIDQ1LCA2OSwgCi0gICAgMjUsIDIzNSwgMjI5LCAyNTUsIDczLCA2OSwgMjUsIDUsIDI1NSwgNzMsIDY5LCAyNSwgNSwgNzMsIDY5LCAyNSwgNSwgMjM2LCAKLSAgICAzMywgNjksIDI1LCA1LCAyMTEsIDExNywgNjksIDI1LCA1LCAyMTAsIDE2OSwgNjksIDI1LCA1LCA3MCwgNjksIDI1LCA1LCAKLSAgICAyMTQsIDExOCwgNjksIDI1LCA1LCAyMTQsIDIyOSwgNjksIDI1LCA1LCAyMjYsIDIzNCwgNjksIDI1LCA1LCAxOTEsIDY5LCAKLSAgICAyNSwgNSwgMjM2LCA2MCwgNjksIDI1LCA1LCA3NSwgNjksIDI1LCA1LCAyNTQsIDI0MywgNjksIDI1LCA1LCAyNTQsIDIwMSwgCi0gICAgNjksIDI1LCA1LCAyMjYsIDE4MywgNjksIDI1LCA1LCAyNTMsIDE5MiwgNjksIDUsIDIyOCwgMjA2LCA2OSwgNSwgMjIzLCAKLSAgICAxMjYsIDY5LCA1LCAyMTAsIDE4MCwgNjksIDUsIDIzMCwgNTIsIDY5LCA1LCAyMTUsIDIxMywgNjksIDUsIDI1MiwgMTQzLCAKLSAgICA2OSwgNSwgMjIyLCAyMDYsIDY5LCA1LCAyMTYsIDQwLCA2OSwgNSwgMjM0LCAyNDEsIDY5LCA1LCAyNTQsIDIwMywgNjksIDUsIAotICAgIDIyMSwgMjQ0LCAyMjEsIDIzOCwgNjksIDUsIDIxMywgMTQ5LCA2OSwgNSwgMjQ5LCAyMzIsIDY5LCA1LCAyNTIsIDExNywgCi0gICAgNjksIDUsIDIzNCwgMTI1LCA2OSwgNSwgMjUyLCAxMzcsIDY5LCA1LCAyNTEsIDksIDIyNSwgNzIsIDIzMywgMTg3LCA2OSwgCi0gICAgNSwgMjMzLCAzMCwgMjE2LCAxNywgNjksIDUsIDI1MiwgMjAsIDY5LCA1LCAyMjUsIDEyMywgMjMwLCA5OSwgNjksIDUsIAotICAgIDIzNCwgOSwgNjksIDI0OSwgOTgsIDE2LCAyMjMsIDI4LCA2OSwgNSwgMjUzLCAxNzQsIDY5LCA1LCAyNTMsIDE5NSwgNjksIAotICAgIDIxLCAyMTAsIDg2LCA2OSwgMjEsIDExMCwgNjksIDIxLCAxMDUsIDY5LCAyMSwgMTU4LCA2OSwgMjEsIDE2MSwgNjksIDIxLCAKLSAgICAxODksIDY5LCAyMSwgMTk0LCA2OSwgMjEsIDE5OCwgNjksIDIxLCAxOTUsIDY5LCAyMSwgMjAwLCA2OSwgMTYsIDIzMywgMzAsIAotICAgIDI1MywgMTk3LCAyMTksIDQzLCA2OSwgMTYsIDIzMywgMzAsIDI1MywgMTk3LCAyMzAsIDcxLCA2OSwgMTYsIDIzMywgMzAsIAotICAgIDI1MywgMTk3LCAyMjUsIDcxLCA2OSwgMTYsIDIzMywgMzAsIDI1MywgMTk3LCAyNTIsIDQ5LCA2OSwgMTYsIDIzMywgMzAsIAotICAgIDI1MywgMTk3LCAyNTEsIDEwMywgNjksIDE2LCAyMzMsIDMwLCAyNTMsIDE5NywgMjI0LCAyMTUsIDY5LCAxNiwgMjMzLCAzMCwgCi0gICAgMjUzLCAxOTcsIDIyNCwgMjA5LCA2OSwgMTYsIDIzMywgMzAsIDI1MywgMTk3LCAyMjQsIDIwNywgNjksIDE2LCAyMzMsIDMwLCAKLSAgICAyNTMsIDE5NywgMjI0LCAyMTMsIDY5LCAxNiwgMjMzLCAzMCwgMjUzLCAxOTcsIDIyNCwgMjExLCA4MywgMjUxLCAyMzYsIAotICAgIDgzLCAyNDUsIDE2MywgODMsIDI0OSwgMjE5LCA4MywgMjQzLCAyMjksIDIxOCwgMTI5LCA4MywgMjQ5LCAyMjYsIDgzLCAKLSAgICAyNDQsIDExLCAyNDcsIDExOCwgODMsIDIxNiwgMzksIDIxOSwgNTIsIDI0MCwgMTY4LCA4MywgMjE5LCAxOTAsIDMsIDI1MSwgCi0gICAgMTcyLCAyMzEsIDE1NCwgODMsIDIzMSwgMTgzLCAyNDksIDIxOSwgODMsIDIzMSwgMTgzLCAyNDMsIDIyOSwgMjE4LCAxMjksIAotICAgIDgzLCAyMjgsIDE5MSwgODMsIDI0MywgMjUzLCA0NSwgMjIxLCAxNTcsIDExMCwgODMsIDI0MywgMjUzLCA0NSwgMjIxLCAKLSAgICAxNTcsIDEwNSwgODMsIDI0MywgMjUzLCA0NSwgMjIxLCAxNTcsIDE1OCwgODMsIDI1LCAyMjAsIDEzNywgODMsIDIxLCAyMTAsIAotICAgIDg2LCA4MywgMjEsIDExMCwgODMsIDIxLCAxMDUsIDgzLCAyMSwgMTU4LCA4MywgMjEsIDE2MSwgODMsIDIxLCAxODksIDgzLCAKLSAgICAyMSwgMTk0LCA4MywgMjEsIDE5OCwgODMsIDIxLCAxOTUsIDgzLCAyMSwgMjAwLCA4MywgMSwgNjEsIDgzLCAxLCA3NSwgODMsIAotICAgIDEsIDczLCA4MywgMSwgNzYsIDgzLCAxLCA3MCwgODMsIDEsIDIyNiwgMjM0LCA4MywgMSwgMjE0LCAyMTQsIDgzLCAxLCAKLSAgICAyNDUsIDIwOSwgODMsIDEsIDE5NywgODMsIDEsIDI1NCwgMTE1LCA4MywgMSwgMjUyLCAxOTEsIDgzLCAxLCAxOTAsIDgzLCAKLSAgICAxLCAyMjQsIDg4LCA4MywgMSwgMjQzLCAxMzUsIDgzLCAxLCAxODQsIDgzLCAxLCAyMzMsIDEzNSwgODMsIDEsIDIwNiwgODMsIAotICAgIDEsIDIyMCwgMTAyLCA4MywgMSwgMjE3LCAxMDUsIDgzLCAxLCAyNDgsIDIyMSwgODMsIDEsIDI1MCwgMTU3LCA4MywgMSwgCi0gICAgMjM1LCAxNDEsIDgzLCAxLCAxOTEsIDgzLCAxLCAyMDUsIDgzLCAxLCAyMTIsIDY1LCA4MywgMSwgMjQ0LCAxOTYsIDgzLCAxLCAKLSAgICAxNzYsIDgzLCAxLCAyMzQsIDEzMiwgODMsIDEsIDIxNSwgMTgzLCA4MywgMSwgMjEwLCAxMTYsIDgzLCAxLCAyNDIsIDQ2LCAKLSAgICA4MywgMSwgMjEwLCAxNiwgODMsIDEsIDIzMiwgMjU0LCA4MywgMSwgMjEwLCA2OSwgODMsIDEsIDI1MCwgMTEwLCA4MywgMSwgCi0gICAgMjE2LCAzOSwgMTk5LCAyNSwgNTAsIDgzLCAxLCAyMTYsIDM5LCA3NSwgODMsIDEsIDIxNiwgMzksIDczLCA4MywgMSwgMjE2LCAKLSAgICAzOSwgNzYsIDgzLCAxLCAyMTYsIDM5LCA3MCwgODMsIDEsIDIxNiwgMzksIDIyNiwgMjM0LCA4MywgMSwgMjE2LCAzOSwgCi0gICAgMjE0LCAyMTQsIDgzLCAxLCAyMTYsIDM5LCAyNTQsIDExNSwgODMsIDEsIDIxNiwgMzksIDI1MiwgMTkxLCA4MywgMSwgMjE2LCAKLSAgICAzOSwgMTkwLCA4MywgMSwgMjE2LCAzOSwgMjI0LCA4OCwgODMsIDEsIDIxNiwgMzksIDI0MywgMTM1LCA4MywgMSwgMjE2LCAKLSAgICAzOSwgMTg0LCA4MywgMSwgMjE2LCAzOSwgMjE3LCAxMDUsIDgzLCAxLCAyMTYsIDM5LCAyNDgsIDIyMSwgODMsIDEsIDIxNiwgCi0gICAgMzksIDI1MCwgMTU3LCA4MywgMSwgMjE2LCAzOSwgMjM1LCAxNDEsIDgzLCAxLCAyMTYsIDM5LCAyMTUsIDE4MywgODMsIDEsIAotICAgIDIxNiwgMzksIDE5MSwgODMsIDEsIDIxNiwgMzksIDIxMiwgNjUsIDgzLCAxLCAyMTYsIDM5LCAxNzYsIDgzLCAxLCAyMTYsIAotICAgIDM5LCAyNDMsIDEzMiwgODMsIDEsIDIxNiwgMzksIDI0MiwgNDYsIDgzLCAxLCAyMTYsIDM5LCAyMzUsIDEwNywgODMsIDEsIAotICAgIDIxNiwgMzksIDIyOCwgMjMxLCA4MywgMSwgMjE2LCAzOSwgMjQ2LCAzOCwgODMsIDEsIDIxOSwgMTkwLCA3NSwgODMsIDEsIAotICAgIDIxOSwgMTkwLCA3MywgODMsIDEsIDIxOSwgMTkwLCAyMzUsIDE1MiwgODMsIDEsIDIxOSwgMTkwLCAyMTQsIDIxNCwgODMsIAotICAgIDEsIDIxOSwgMTkwLCA3MCwgODMsIDEsIDIxOSwgMTkwLCAyNTQsIDExNSwgODMsIDEsIDIxOSwgMTkwLCAxNzYsIDgzLCAxLCAKLSAgICAyMTksIDE5MCwgMjQzLCAxMzUsIDgzLCAxLCAyMTksIDE5MCwgMTYyLCA4MywgMSwgMjE5LCAxOTAsIDE5MCwgODMsIDEsIAotICAgIDIxOSwgMTkwLCAyMjAsIDEwMiwgODMsIDEsIDIxOSwgMTkwLCAyMTcsIDEwNSwgODMsIDEsIDIxOSwgMTkwLCAyNDgsIDIyMSwgCi0gICAgODMsIDEsIDIxOSwgMTkwLCAyMzUsIDE0MSwgODMsIDEsIDIxOSwgMTkwLCAyNDQsIDE5NiwgODMsIDEsIDIxOSwgMTkwLCAKLSAgICAyNDMsIDEzMiwgODMsIDEsIDIxOSwgMTkwLCAyNDIsIDQ2LCA4MywgMSwgMjE5LCAxOTAsIDIxNSwgMTgzLCA4MywgMSwgCi0gICAgMjE5LCAxOTAsIDIxMCwgMTE2LCA4MywgMSwgMjE5LCAxOTAsIDIyMywgMTg0LCA4MywgMSwgMjE5LCAxOTAsIDI1MCwgMTU3LCAKLSAgICA4MywgMSwgMjE5LCAxOTAsIDIxMCwgODIsIDgzLCAxLCAyMzEsIDE4MywgNzMsIDgzLCAxLCAyMzEsIDE4MywgMTc2LCA4MywgCi0gICAgMSwgMjMxLCAxODMsIDIwNSwgODMsIDEsIDIzMSwgMTgzLCAyNDQsIDE5NiwgODMsIDEsIDIzMSwgMTgzLCAyMTAsIDgyLCAKLSAgICA4MywgMSwgMjU0LCAxNjIsIDI0MywgMTE2LCAyNTQsIDc2LCAxMTAsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIxMywgCi0gICAgMTQ4LCAxMTAsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDI0OCwgMTg2LCA4MywgMSwgMjU0LCAxNjIsIDI0MywgMTE2LCAKLSAgICAyMTQsIDIyNCwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjM1LCAxOTMsIDIxNCwgMjI0LCA4MywgMSwgMjU0LCAxNjIsIAotICAgIDI0MywgMTE2LCAyNTIsIDE1NSwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMTM0LCAyNTIsIDE1NSwgODMsIDEsIDI1NCwgCi0gICAgMTYyLCAyNDMsIDExNiwgNjEsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDczLCA4MywgMSwgMjU0LCAxNjIsIDI0MywgCi0gICAgMTE2LCAxNzYsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIyOSwgNzcsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIAotICAgIDI1MSwgMzMsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIxNSwgMTU2LCA4MywgMSwgMjU0LCAxNjIsIDI0MywgMTE2LCAKLSAgICAyMTUsIDE0NCwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjQ4LCAxMzUsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIAotICAgIDIyOCwgMTEwLCA4MywgMSwgMjU0LCAxNjIsIDI0MywgMTE2LCAyMTcsIDEwNSwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgCi0gICAgMjQ4LCAyMjEsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDE5MCwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjI1LCAKLSAgICAxNDcsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIxOCwgMjIzLCA4MywgMSwgMjU0LCAxNjIsIDI0MywgMTE2LCAyMTAsIAotICAgIDgyLCA4MywgMSwgMjU0LCAxNjIsIDI0MywgMTE2LCAyMTAsIDExNiwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjU0LCAKLSAgICAyMDksIDgzLCAxLCAyMTYsIDM5LCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIxNywgMTA1LCA4MywgMSwgMjE2LCAzOSwgMjU0LCAKLSAgICAxNjIsIDI0MywgMTE2LCAyMTAsIDgyLCA4MywgMSwgMjMxLCAxODMsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjQyLCAyNDksIAotICAgIDgzLCAxLCAyMzEsIDE4MywgMjU0LCAxNjIsIDI0MywgMTE2LCAyMjksIDc3LCA4MywgMSwgMjMxLCAxODMsIDI1NCwgMTYyLCAKLSAgICAyNDMsIDExNiwgMjUxLCAzMywgODMsIDEsIDIzMSwgMTgzLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIzNSwgMTE0LCA4MywgMSwgCi0gICAgMjMxLCAxODMsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjE1LCAxNTYsIDgzLCAxLCAyMzEsIDE4MywgMjU0LCAxNjIsIDI0MywgCi0gICAgMTE2LCAyNDgsIDExOSwgODMsIDEsIDIzMSwgMTgzLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIxNywgMTA1LCA4MywgMSwgMjMxLCAKLSAgICAxODMsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjQ4LCAyNSwgODMsIDEsIDIzMSwgMTgzLCAyNTQsIDE2MiwgMjQzLCAxMTYsIAotICAgIDIxOCwgMjIzLCA4MywgMSwgMjMxLCAxODMsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjQ5LCA3MiwgODMsIDEsIDIzMSwgMTgzLCAKLSAgICAyNTQsIDE2MiwgMjQzLCAxMTYsIDIxMCwgODIsIDgzLCAxLCAyMzEsIDE4MywgMjU0LCAxNjIsIDI0MywgMTE2LCAyMTAsIAotICAgIDExNiwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMTYzLCA3MCwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMTYzLCAKLSAgICAxOTEsIDgzLCAxLCAyMzEsIDE4MywgMjU0LCAxNjIsIDI0MywgMTE2LCAyNTIsIDE4LCA4MywgMSwgMjU0LCAxNjIsIDI0MywgCi0gICAgMTE2LCAyNDgsIDIxMSwgODMsIDEsIDIzMSwgMTgzLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIzMiwgMjU0LCAxOCwgMTksIAotICAgIDIyNiwgMTA5LCAxOCwgMTksIDI1MywgMTY3LCAxOCwgMTksIDI1NSwgMjgsIDE4LCAxOSwgMjEyLCAyNSwgMTgsIDE5LCAKLSAgICAyMjQsIDIyMSwgMTgsIDE5LCAyMjUsIDIyOSwgMTgsIDE5LCAyMjQsIDEwNSwgMTgsIDE5LCAyMTcsIDMxLCAxOCwgMTksIAotICAgIDIzNCwgMTg5LCAxOCwgMTksIDIzMywgMTc5LCAxOCwgMTksIDIzMSwgMTMyLCAxOCwgMTksIDIyOCwgMzcsIDE4LCAxOSwgCi0gICAgMjI5LCAxODEsIDE4LCAxOSwgMjMzLCA2OCwgMTgsIDE5LCAyMTksIDIyLCAxOCwgMTksIDIyMSwgMjExLCAxOCwgMTksIAotICAgIDIxOSwgMjMyLCAxOCwgMTksIDIyMCwgNjYsIDE4LCAxOSwgMjE5LCAyMDEsIDE4LCAxOSwgMjEwLCAyMjAsIDE4LCAxOSwgCi0gICAgMjExLCA1MiwgMTgsIDE5LCAyMjMsIDEzNCwgMTgsIDE5LCAyMjcsIDE3MSwgMTgsIDE5LCAyMjYsIDIxNiwgMjI3LCAxNzEsIAotICAgIDE4LCAxOSwgMjI3LCAxNzAsIDE4LCAxOSwgMjI2LCAyMTYsIDIyNywgMTcwLCAxOCwgMTksIDIyNywgMTY5LCAxOCwgMTksIAotICAgIDIyNiwgMjE2LCAyMjcsIDE2OSwgMTgsIDE5LCAyMjcsIDE2OCwgMTgsIDE5LCAyMjYsIDIxNiwgMjI3LCAxNjgsIDE4LCAxOSwgCi0gICAgMjIyLCAxMDUsIDE4LCAxOSwgMjIyLCAxMDQsIDE4LCAxOSwgMjIyLCAxMDMsIDE4LCAxOSwgMjIyLCAxMDIsIDE4LCAxOSwgCi0gICAgMjIyLCAxMDEsIDE4LCAxOSwgMjIyLCAxMDksIDE4LCAxOSwgMjI2LCAyMTYsIDIyNiwgMTA1LCAxOCwgMTksIDIyNiwgMjE2LCAKLSAgICAyMTcsIDE1MiwgMTgsIDE5LCAyMjYsIDIxNiwgMjM1LCAyMywgMTgsIDE5LCAyMjYsIDIxNiwgMjUxLCA2NiwgMTgsIDE5LCAKLSAgICAyMjYsIDIxNiwgMTkzLCAxOCwgMTksIDIyNiwgMjE2LCAyMzAsIDI1LCAxOCwgMTksIDIyNiwgMjE2LCAyMjIsIDkxLCAxOCwgCi0gICAgMTksIDIyNiwgMjE2LCAyMjAsIDEwNCwgMTgsIDE5LCAyNDUsIDIxOSwgMjEyLCA5OCwgMTgsIDE5LCAyMTIsIDcsIDIxMiwgCi0gICAgOTgsIDE4LCAxOSwgNDAsIDQsIDIyMiwgMjMzLCAxOCwgMTksIDQwLCAyMjMsIDE1NywgMjQ3LCAxMjAsIDE4LCAxOSwgMjIzLCAKLSAgICAyMjMsIDIyMiwgMTA2LCAxOCwgMTksIDE1OSwgMjMyLCAxMjcsIDE4LCAxOSwgMTU5LCAyMzMsIDEzNCwgMTgsIDE5LCAyMTYsIAotICAgIDEyNiwgMTgsIDE5LCAyMTYsIDEyOCwgMTgsIDE5LCAyMTUsIDEzNiwgMTgsIDE5LCAyMTUsIDEzOCwgMTgsIDE5LCAyMTUsIAotICAgIDE0MywgMTgsIDE5LCAyMTYsIDQ5LCAxOCwgMTksIDIxNiwgNTEsIDE4LCAxOSwgMjIxLCAyMDksIDIxOSwgMjA2LCAxOCwgCi0gICAgMTksIDIyMSwgMjA5LCAyMjAsIDEsIDE4LCAxOSwgMjIxLCAyMDksIDI0MSwgNTMsIDE4LCAxOSwgNzIsIDI0MiwgNzMsIDE4LCAKLSAgICAxOSwgNzIsIDI0OCwgNTIsIDI0MywgNTUsIDE4LCAxOSwgNzIsIDI0MywgMTMyLCAxOCwgMTksIDcyLCAyNDIsIDc4LCAxOCwgCi0gICAgMTksIDIyMSwgMjA5LCAyMzUsIDMzLCAxOCwgMTksIDcyLCAyMzUsIDMxLCAxOCwgMTksIDI1MiwgNjgsIDI0OCwgNTIsIAotICAgIDE1NiwgMTgsIDE5LCAyNTIsIDY4LCAyNDgsIDUyLCAxNTMsIDE4LCAxOSwgNzIsIDI0OCwgNDcsIDIyMiwgOTEsIDIzMiwgCi0gICAgMjIzLCAyMTMsIDEyMiwgMjMzLCAxMCwgMjMyLCAyMjMsIDEsIDE3NiwgMjMyLCAyMjMsIDEsIDIzNCwgMTMyLCAyMzIsIAotICAgIDIyMywgMSwgMjQzLCAxMzUsIDIzMiwgMjIzLCAxLCAyNDIsIDI0OSwgMjMyLCAyMjMsIDEsIDIyOSwgNzcsIDIzMiwgMjIzLCAKLSAgICAxLCAyNTEsIDMzLCAyMzIsIDIyMywgMSwgMjUwLCAxNTcsIDIzMiwgMjIzLCAxLCAyMzUsIDE0MSwgMjMyLCAyMjMsIDEsIAotICAgIDIzNSwgMTE0LCAyMzIsIDIyMywgMSwgMjExLCA3MSwgMjMyLCAyMjMsIDEsIDIxNywgMTA1LCAyMzIsIDIyMywgMSwgMjE2LCAKLSAgICAyMDgsIDIzMiwgMjIzLCAxLCAyNDgsIDIyMSwgMjMyLCAyMjMsIDEsIDI0OCwgMjUsIDIzMiwgMjIzLCAxLCAxOTcsIDIzMiwgCi0gICAgMjIzLCAxLCAxOTAsIDIzMiwgMjIzLCAxLCAyMjUsIDE0NywgMjMyLCAyMjMsIDEsIDI1MiwgMTkxLCAyMzIsIDIyMywgMSwgCi0gICAgMjUyLCAxOCwgMjMyLCAyMjMsIDEsIDE4NCwgMjMyLCAyMjMsIDEsIDE5MSwgMjMyLCAyMjMsIDEsIDIwNSwgMjMyLCAyMjMsIAotICAgIDEsIDIzMywgMTM1LCAyMzIsIDIyMywgMSwgMjEyLCA2NSwgMjMyLCAyMjMsIDEsIDIyMCwgMTAyLCAyMzIsIDIyMywgMSwgCi0gICAgMjE4LCAyMjMsIDIzMiwgMjIzLCAxLCAyMDYsIDIzMiwgMjIzLCAxLCAxNjIsIDIzMiwgMjIzLCAyNSwgNSwgNjEsIDIzMiwgCi0gICAgMjIzLCAyNSwgNSwgNzMsIDIzMiwgMjIzLCAyNSwgNSwgNzAsIDIzMiwgMjIzLCAyNSwgNSwgMjQ1LCAyMDksIDIzMiwgMjIzLCAKLSAgICAyNSwgNSwgMjU0LCAyMDEsIDIzMiwgMjIzLCAyNSwgNSwgMjI2LCAxODMsIDIzMiwgMjIzLCAyNSwgNSwgMjUzLCAxOTIsIAotICAgIDIzMiwgMjIzLCAyNSwgNSwgNzUsIDIzMiwgMjIzLCAyNSwgNSwgNzYsIDIzMiwgMjIzLCAyMTgsIDczLCAxLCAxOTEsIDIzMiwgCi0gICAgMjIzLCAyMTgsIDczLCAxLCAyMDUsIDIzMiwgMjIzLCAyMTgsIDczLCAxLCAyMTIsIDY1LCAyMzIsIDIyMywgNCwgMSwgMTc2LCAKLSAgICAyMzIsIDIyMywgNCwgMSwgMjI5LCA3NywgMjMyLCAyMjMsIDQsIDEsIDI1NCwgNzUsIDIzMiwgMjIzLCA0LCAxLCAyMTcsIAotICAgIDEwNSwgMjMyLCAyMjMsIDQsIDEsIDE5NywgMjMyLCAyMjMsIDQsIDEsIDE5MCwgMjMyLCAyMjMsIDQsIDEsIDE4NCwgMjMyLCAKLSAgICAyMjMsIDQsIDEsIDIwNSwgMjMyLCAyMjMsIDQsIDEsIDIzMywgMTM1LCAyMzIsIDIyMywgNSwgMjMwLCA4OSwgMjMyLCAyMjMsIAotICAgIDUsIDIzNCwgMTcxLCAyMzIsIDIyMywgNSwgMjIyLCAzMiwgMjMyLCAyMjMsIDUsIDIzMiwgMTI3LCAyMzIsIDIyMywgMjQ1LCAKLSAgICAzMSwgNzgsIDIzMiwgMjIzLCAyMjQsIDEzLCA3OCwgMjMyLCAyMjMsIDIxLCAyMTAsIDg2LCAyMzIsIDIyMywgMjEsIDExMCwgCi0gICAgMjMyLCAyMjMsIDIxLCAxMDUsIDIzMiwgMjIzLCAyMSwgMTU4LCAyMzIsIDIyMywgMjEsIDE2MSwgMjMyLCAyMjMsIDIxLCAKLSAgICAxODksIDIzMiwgMjIzLCAyMSwgMTk0LCAyMzIsIDIyMywgMjEsIDE5OCwgMjMyLCAyMjMsIDIxLCAxOTUsIDIzMiwgMjIzLCAKLSAgICAyMSwgMjAwLCAzOSwgMjMzLCA1OSwgMSwgMTc2LCAzOSwgMjMzLCA1OSwgMSwgMjExLCAxNjUsIDM5LCAyMzMsIDU5LCAxLCAKLSAgICAyMjksIDc3LCAzOSwgMjMzLCA1OSwgMSwgMjE1LCAxODMsIDM5LCAyMzMsIDU5LCAxLCAyMDYsIDM5LCAyMzMsIDU5LCAxLCAKLSAgICAxOTEsIDM5LCAyMzMsIDU5LCAxLCAyMTcsIDEwNSwgMzksIDIzMywgNTksIDEsIDIxNiwgMjA4LCAzOSwgMjMzLCA1OSwgMSwgCi0gICAgMjMzLCAxMzUsIDM5LCAyMzMsIDU5LCAxLCAxOTAsIDM5LCAyMzMsIDU5LCAxLCAyMjUsIDE0NywgMzksIDIzMywgNTksIDEsIAotICAgIDE4NCwgMzksIDIzMywgNTksIDEsIDI0NCwgMTk2LCAzOSwgMjMzLCA1OSwgMSwgMjE0LCAyNywgMzksIDIzMywgNTksIDEsIAotICAgIDE2MiwgMzksIDIzMywgNTksIDEsIDIyNCwgODgsIDM5LCAyMzMsIDU5LCAxLCAyMzQsIDEzMiwgMzksIDIzMywgNTksIDEsIAotICAgIDIxNSwgMTc1LCAzOSwgMjMzLCA1OSwgMSwgMTk3LCAzOSwgMjMzLCA1OSwgMSwgNjEsIDM5LCAyMzMsIDU5LCAxLCA3MywgCi0gICAgMzksIDIzMywgNTksIDEsIDI0NSwgMjA5LCAzOSwgMjMzLCA1OSwgMSwgMjQ1LCAxOTcsIDM5LCAyMzMsIDU5LCAxLCA3MCwgCi0gICAgMzksIDIzMywgNTksIDEsIDIyNiwgMTgzLCAzOSwgMjMzLCA1OSwgMSwgNzYsIDM5LCAyMzMsIDU5LCAxLCAyMTQsIDIxNCwgCi0gICAgMzksIDIzMywgNTksIDEsIDc1LCAzOSwgMjMzLCA1OSwgMSwgMjUzLCAxOTAsIDM5LCAyMzMsIDU5LCAxLCAyNTQsIDIwMSwgCi0gICAgMzksIDIzMywgNTksIDEsIDIxNiwgMjgsIDM5LCAyMzMsIDU5LCAxLCAyMTYsIDI3LCAzOSwgMjMzLCA1OSwgMSwgMjE2LCAKLSAgICAyNiwgMzksIDIzMywgNTksIDEsIDIxNiwgMjUsIDM5LCAyMzMsIDU5LCAxLCAyMTYsIDI0LCAxNjYsIDM5LCAxNzMsIDEsIAotICAgIDEyNSwgMjI0LCA4OCwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDIyNCwgODgsIDE2NiwgMzksIDE3MywgMSwgMTI1LCAxNzYsIAotICAgIDE2NiwgMzksIDE3MywgMSwgMTI1LCAyMTEsIDE2NSwgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDIyOSwgNzcsIDE2NiwgMzksIAorICAgIDE2NCwgMjUxLCAxMzEsIDIyMiwgMTQ0LCA2MywgMTY0LCAyMjksIDY5LCAyNTEsIDY5LCAyMjcsIDE1MCwgMjEwLCAyNSwgCisgICAgNjMsIDE2NCwgMjUwLCAyNDAsIDI1NSwgMTY0LCAyMjIsIDE0NSwgMjUxLCA3MCwgMjMwLCAyMDMsIDI1MSwgOCwgNjMsIAorICAgIDE2NCwgMjI5LCA2OSwgMjUxLCA2OSwgMjIwLCAxMDcsIDIyMiwgMTQ0LCA2MywgMTY0LCAyNTAsIDEzMywgMjMwLCAyNDgsIAorICAgIDYzLCAxNjQsIDIxNSwgMTg1LCAyNTUsIDE2MSwgNjMsIDE2NCwgMjQyLCAxMDEsIDIyMiwgMTQ1LCAyNDIsIDY0LCA2MywgCisgICAgMTY0LCAyNDIsIDEwMSwgMjIyLCAxNDUsIDI0MiwgNzAsIDYzLCAxNjQsIDI1NCwgMTE3LCAyMzQsIDEyNCwgMjQyLCA2NCwgCisgICAgNjMsIDE2NCwgMjU0LCAxMTcsIDIzNCwgMTI0LCAyNDIsIDcwLCA2MywgNSwgMjExLCA2NSwgMjE1LCAxNzIsIDYzLCA1LCAKKyAgICAyMzEsIDE2OCwgMjE1LCAxNzIsIDYzLCAxLCAxNzYsIDYzLCAxLCAyMzQsIDEzMywgNjMsIDEsIDI0MywgMTM2LCA2MywgMSwgCisgICAgMjQyLCAyNTAsIDYzLCAxLCAyMjksIDc4LCA2MywgMSwgMjUxLCAzNCwgNjMsIDEsIDI1MCwgMTU4LCA2MywgMSwgMjM1LCAKKyAgICAxNDIsIDYzLCAxLCAyMjcsIDE2NiwgNjMsIDEsIDIxNSwgMTU3LCA2MywgMSwgMjE1LCAxNDUsIDYzLCAxLCAyNDgsIDEzNiwgCisgICAgNjMsIDEsIDI0OCwgMTIwLCA2MywgMSwgMjI4LCAxMTEsIDYzLCAxLCAyMTcsIDEwNiwgNjMsIDEsIDIxNiwgMjA5LCA2MywgCisgICAgMSwgMjQ4LCAyMjIsIDYzLCAxLCAyNDgsIDI2LCA2MywgMSwgMTk3LCA2MywgMSwgMTkwLCA2MywgMSwgMjI1LCAxNDgsIDYzLCAKKyAgICAxLCAyNTIsIDE5MiwgNjMsIDEsIDI1MiwgMTksIDYzLCAxLCAxODUsIDYzLCAxLCAyMTUsIDE4NCwgNjMsIDEsIDIxNSwgCisgICAgMTc2LCA2MywgMSwgMjQ2LCAzOSwgNjMsIDEsIDI0NiwgMzQsIDYzLCAxLCAyMTIsIDY1LCA2MywgMSwgMjEwLCA4MiwgNjMsIAorICAgIDEsIDIxMCwgMTE2LCA2MywgMSwgMjU1LCAxNjcsIDYzLCAxLCAxOTEsIDYzLCAxLCAyMDUsIDYzLCAxLCAyMzMsIDEzNiwgCisgICAgNjMsIDEsIDIyMCwgMTAzLCA2MywgMSwgMjE4LCAyMjQsIDYzLCAxLCAyMDYsIDYzLCAxLCAxNjIsIDYzLCAxLCA2MSwgNjMsIAorICAgIDEsIDIzMywgMjMyLCA2MywgMSwgMjQ0LCA3OCwgMjA1LCA2MywgMSwgMjM0LCA0NywgNjMsIDEsIDIyMiwgMTgwLCA2MywgCisgICAgMjUsIDUsIDI1NSwgNzQsIDYzLCAyNSwgNSwgNzMsIDYzLCAyNSwgNSwgMjM2LCAzNCwgNjMsIDI1LCA1LCA3MCwgNjMsIDI1LCAKKyAgICA1LCAyMTQsIDExOCwgNjMsIDI1LCA1LCAxNDksIDE1MywgNjMsIDI1LCA1LCAxNDksIDIyMiwgMTgxLCA2MywgMjUsIDUsIAorICAgIDE0OSwgMTU2LCA2MywgMjUsIDUsIDE0OSwgMjMyLCAxODYsIDYzLCAyNSwgNSwgNzUsIDYzLCAyNSwgNSwgMjQ1LCAyMTAsIAorICAgIDYzLCAyNSwgNSwgNzYsIDYzLCAyNSwgNSwgMjI2LCAxODQsIDYzLCA1LCAyMjIsIDIyMiwgMjE4LCA4NSwgMjI5LCA3OSwgCisgICAgMjIyLCAyMTIsIDYzLCA1LCAyMjIsIDIxNywgMjUyLCA3NywgNjMsIDI1LCA1LCAyMjMsIDUwLCA3MywgNjMsIDI1LCA1LCAKKyAgICAyMjMsIDUwLCAyMzYsIDM0LCA2MywgNSwgMjI3LCAxNTAsIDIxMCwgMjYsIDIyOSwgMjI3LCAyNDgsIDIyMiwgNjMsIDUsIAorICAgIDIxOSwgNzIsIDIzMywgNjEsIDYzLCAxNjQsIDI0MiwgMzAsIDYzLCAxNjQsIDIyNiwgNTgsIDYzLCA1LCAyMzMsIDY0LCAKKyAgICAyMjIsIDE0NCwgNjMsIDUsIDIxMSwgNzAsIDIyMiwgMTQ0LCA2MywgNSwgMjMzLCA2NSwgMjE1LCAxODUsIDI1MSwgOCwgNjMsIAorICAgIDUsIDIzMSwgOTYsIDI1MSwgOCwgNjMsIDUsIDI0MiwgMTIwLCAyNTEsIDksIDIyMywgNDEsIDYzLCA1LCAyNDIsIDEyMCwgCisgICAgMjMxLCA4NiwgMjIzLCA0MSwgNjMsIDUsIDIzNSwgMTk0LCAyMzEsIDk2LCAyNTEsIDgsIDYzLCAyMTgsIDc0LCA1LCAyMzMsIAorICAgIDY1LCAyMTUsIDE4NSwgMjUxLCA4LCA2MywgMjE4LCA3NCwgNSwgMjMxLCA5NiwgMjUxLCA4LCA2MywgMjE4LCA3NCwgNSwgCisgICAgMjM1LCAxOTQsIDIzMSwgOTYsIDI1MSwgOCwgNjMsIDIxOCwgNzQsIDEsIDE3NiwgNjMsIDIxOCwgNzQsIDEsIDIzNCwgMTMzLCAKKyAgICA2MywgMjE4LCA3NCwgMSwgMjQzLCAxMzYsIDYzLCAyMTgsIDc0LCAxLCAyNDIsIDI1MCwgNjMsIDIxOCwgNzQsIDEsIDIyOSwgCisgICAgNzgsIDYzLCAyMTgsIDc0LCAxLCAyNTEsIDM0LCA2MywgMjE4LCA3NCwgMSwgMjUwLCAxNTgsIDYzLCAyMTgsIDc0LCAxLCAKKyAgICAyMzUsIDE0MiwgNjMsIDIxOCwgNzQsIDEsIDIyNywgMTY2LCA2MywgMjE4LCA3NCwgMSwgMjE1LCAxNTcsIDYzLCAyMTgsIAorICAgIDc0LCAxLCAyMTUsIDE0NSwgNjMsIDIxOCwgNzQsIDEsIDI0OCwgMTM2LCA2MywgMjE4LCA3NCwgMSwgMjQ4LCAxMjAsIDYzLCAKKyAgICAyMTgsIDc0LCAxLCAyMjgsIDExMSwgNjMsIDIxOCwgNzQsIDEsIDIxNywgMTA2LCA2MywgMjE4LCA3NCwgMSwgMjE2LCAyMDksIAorICAgIDYzLCAyMTgsIDc0LCAxLCAyNDgsIDIyMiwgNjMsIDIxOCwgNzQsIDEsIDI0OCwgMjYsIDYzLCAyMTgsIDc0LCAxLCAxOTcsIAorICAgIDYzLCAyMTgsIDc0LCAxLCAxOTAsIDYzLCAyMTgsIDc0LCAxLCAyMjUsIDE0OCwgNjMsIDIxOCwgNzQsIDEsIDI1MiwgMTkyLCAKKyAgICA2MywgMjE4LCA3NCwgMSwgMjUyLCAxOSwgNjMsIDIxOCwgNzQsIDEsIDE4NSwgNjMsIDIxOCwgNzQsIDEsIDIxNSwgMTg0LCAKKyAgICA2MywgMjE4LCA3NCwgMSwgMjE1LCAxNzYsIDYzLCAyMTgsIDc0LCAxLCAyNDYsIDM5LCA2MywgMjE4LCA3NCwgMSwgMjQ2LCAKKyAgICAzNCwgNjMsIDIxOCwgNzQsIDEsIDIxMiwgNjUsIDYzLCAyMTgsIDc0LCAxLCAyMTAsIDgyLCA2MywgMjE4LCA3NCwgMSwgCisgICAgMjEwLCAxMTYsIDYzLCAyMTgsIDc0LCAxLCAyNTUsIDE2NywgNjMsIDIxOCwgNzQsIDEsIDE5MSwgNjMsIDIxOCwgNzQsIDEsIAorICAgIDIwNSwgNjMsIDIxOCwgNzQsIDEsIDIzMywgMTM2LCA2MywgMjE4LCA3NCwgMSwgMjIwLCAxMDMsIDYzLCAyMTgsIDc0LCAxLCAKKyAgICAyMTgsIDIyNCwgNjMsIDIxOCwgNzQsIDEsIDIwNiwgNjMsIDIxOCwgNzQsIDEsIDE2MiwgNjMsIDIxOCwgNzQsIDEsIDYxLCAKKyAgICA2MywgMjE4LCA3NCwgMSwgMjMzLCAyMzIsIDYzLCAyMTgsIDc0LCAxLCAyNDQsIDc4LCAyMTIsIDY1LCA2MywgMjE4LCA3NCwgCisgICAgMSwgMjQ0LCA3OCwgMTkxLCA2MywgMjE4LCA3NCwgMSwgMjQ0LCA3OCwgMjA1LCA2MywgMjMzLCAyMTksIDIyMiwgMTQyLCAKKyAgICAyMzQsIDEzMywgNjMsIDIzMywgMjE5LCAyMjIsIDE0MiwgMjM0LCAxMzQsIDI1MSwgNzAsIDIzMCwgMjAzLCAyNTEsIDgsIAorICAgIDYzLCAyNTAsIDI1MywgNSwgMTE0LCAyNTIsIDcxLCA2MywgMjUwLCAyNTMsIDUsIDE5MiwgMjUyLCA3MSwgNjMsIDI1MCwgCisgICAgMjUzLCA1LCAyNTAsIDI1NCwgMjE3LCAyMSwgNjMsIDI1MCwgMjUzLCA1LCAyMjEsIDIwOCwgMjU1LCAxNjYsIDYzLCAxNiwgCisgICAgMjQ2LCA5MiwgMjUxLCAxMjYsIDYzLCAxNiwgMjIzLCAxMzAsIDIyMiwgMjIzLCA2MywgMTYsIDIyNiwgNzgsIDI0MywgNjQsIAorICAgIDYzLCAxNiwgMjIzLCAxMzAsIDIyMiwgMjI0LCAyMjMsIDQzLCAyNDIsIDE0NiwgNjMsIDE2LCAyMjUsIDExMywgMTkwLCA2MywgCisgICAgMTYsIDIyOCwgNjAsIDI1MSwgMTI2LCA2MywgMTYsIDIyOCwgNjAsIDI1MSwgMTI3LCAyMjcsIDE0MCwgMjU1LCAxNjMsIDYzLCAKKyAgICAxNiwgMjI4LCA2MCwgMjUxLCAxMjcsIDI0MiwgMTE4LCAyNTUsIDE2MywgNjMsIDE2LCAyMjgsIDYwLCAyNTEsIDEyNywgCisgICAgMjUxLCA3MCwgMjU1LCAxNjMsIDYzLCA1LCAyMjMsIDEzMSwgMjI5LCAyMjAsIDIyMywgMTMxLCAyNDcsIDE1OSwgNjMsIDUsIAorICAgIDIyMywgMTMxLCAyMjksIDIyMCwgMjQyLCAxMTcsIDYzLCAxNjQsIDI1MSwgMTMwLCAyMjAsIDQsIDI0MiwgMjE2LCAyMzAsIAorICAgIDI0OSwgMjIzLCA0MiwgNjMsIDE2NCwgMjMwLCAxNjQsIDIxMSwgMCwgMjQyLCAyMTYsIDIzMCwgMjQ5LCAyMjMsIDQyLCA2MywgCisgICAgMTY0LCAyMjcsIDE0MCwgMjE1LCAxNzMsIDYzLCAxNjQsIDY1LCAyNTEsIDE1MywgMjIyLCAyMTQsIDIxMSwgMCwgMjMwLCAKKyAgICAyNDksIDIzMSwgOTQsIDE4NSwgNjMsIDE2NCwgMjQ5LCAyNTMsIDI1MSwgMTUzLCAyMjIsIDIxNCwgMjExLCAwLCAyMzAsIAorICAgIDI0OSwgMjIwLCAxMTAsIDE4NSwgMjIyLCAyNTEsIDIxOCwgMCwgNTAsIDIzMywgNDYsIDIxOCwgMCwgNTAsIDIyMiwgMjUxLCAKKyAgICAyMTgsIDAsIDUsIDIsIDI0NywgMTE5LCAyMzMsIDQ2LCAyMTgsIDAsIDUsIDIsIDI0NywgMTE5LCA2MywgMTY0LCAyMzMsIAorICAgIDU2LCAyMzEsIDk3LCAyMjIsIDE0NCwgNjMsIDE2NCwgMjE1LCAyNTEsIDIzMSwgOTcsIDIyMiwgMTQ0LCA2OCwgMSwgMTc2LCAKKyAgICA2OCwgMSwgMjM0LCAxMzMsIDY4LCAxLCAyNDMsIDEzNiwgNjgsIDEsIDI0MiwgMjUwLCA2OCwgMSwgMjI5LCA3OCwgNjgsIDEsIAorICAgIDI1MSwgMzQsIDY4LCAxLCAyNTAsIDE1OCwgNjgsIDEsIDIzNSwgMTQyLCA2OCwgMSwgMjM1LCAxMTUsIDY4LCAxLCAyMjcsIAorICAgIDE2NiwgNjgsIDEsIDIyOCwgNzcsIDY4LCAxLCAyMTUsIDE1NywgNjgsIDEsIDIxNSwgMTQ1LCA2OCwgMSwgMjQ4LCAxMzYsIAorICAgIDY4LCAxLCAyNDgsIDEyMCwgNjgsIDEsIDIyOCwgMTExLCA2OCwgMSwgMjE3LCAxMDYsIDY4LCAxLCAyMTYsIDIwOSwgNjgsIAorICAgIDEsIDI0OCwgMjIyLCA2OCwgMSwgMjQ4LCAyNiwgNjgsIDEsIDE5NywgNjgsIDEsIDE5MCwgNjgsIDEsIDIyNSwgMTQ4LCA2OCwgCisgICAgMSwgMjUyLCAxOTIsIDY4LCAxLCAyNTIsIDE5LCA2OCwgMSwgMTg1LCA2OCwgMSwgMTkxLCA2OCwgMSwgMjA1LCA2OCwgMSwgCisgICAgMjMzLCAxMzYsIDY4LCAxLCAyMTIsIDY1LCA2OCwgMSwgMjA2LCA2OCwgMSwgMTYyLCA2OCwgMSwgMjMyLCAxODUsIDY4LCAxLCAKKyAgICA2MSwgNjgsIDEsIDIyMCwgODcsIDYxLCA2OCwgMSwgNzMsIDY4LCAxLCAyMzYsIDM0LCA2OCwgMSwgNzAsIDY4LCAxLCAyMTQsIAorICAgIDExOCwgNjgsIDEsIDc1LCA2OCwgMSwgMjMwLCAxNTIsIDc1LCA2OCwgMSwgNzYsIDY4LCAxLCAyNTMsIDE5MywgNjgsIDI1LCAKKyAgICA1LCAyMTcsIDY1LCAyNTUsIDc0LCA2OCwgMjUsIDUsIDI1NSwgNzQsIDY4LCAyNSwgNSwgNzMsIDY4LCAyNSwgNSwgMjM2LCAKKyAgICAzNCwgNjgsIDI1LCA1LCA3MCwgNjgsIDI1LCA1LCAyMTQsIDExOCwgNjgsIDI1LCA1LCA3NSwgNjgsIDI1LCA1LCAyNTQsIAorICAgIDIwMiwgNjgsIDI1LCA1LCAyMzAsIDE1MiwgMjM2LCAzNCwgNjgsIDI1LCA1LCAyMzAsIDE1MiwgNzYsIDY4LCAyNSwgNSwgCisgICAgMTYwLCA0OCwgNjgsIDUsIDI1NCwgNzYsIDY4LCA1LCA1OSwgNTEsIDY4LCA1LCAyMTMsIDE0NywgNjgsIDUsIDIxMywgMTUyLCAKKyAgICA2OCwgNSwgMjUzLCAyMzYsIDY4LCAxMTYsIDUsIDE0NywgMTkxLCA2OCwgMTE2LCA1LCAxNDcsIDIwNSwgNjgsIDExNiwgNSwgCisgICAgMTQ3LCAyMTIsIDY1LCA2OCwgMTE2LCA1LCAxNDcsIDE2MiwgNjgsIDEsIDI0MiwgMTMzLCAyMDYsIDY4LCAyMSwgMjEwLCAKKyAgICA4NiwgNjgsIDIxLCAxMTAsIDY4LCAyMSwgMTA1LCA2OCwgMjEsIDE1OCwgNjgsIDIxLCAxNjEsIDY4LCAyMSwgMTg5LCA2OCwgCisgICAgMjEsIDE5NCwgNjgsIDIxLCAxOTgsIDY4LCAyMSwgMTk1LCA2OCwgMjEsIDIwMCwgNjgsIDUsIDIzMiwgMTkzLCAyMjEsIAorICAgIDE3MywgNjgsIDUsIDIyMSwgMTczLCA2OCwgMTYsIDIzMiwgMTU0LCA2OCwgMTYsIDI0OSwgMjE0LCA2OCwgMTYsIDI1NCwgCisgICAgMjIxLCA2OCwgMTYsIDI0MywgNDksIDY4LCAxLCAyMjAsIDEwMywgNjgsIDEsIDIxOCwgMjI0LCA2OCwgMSwgMTQ5LCAxNTMsIAorICAgIDY4LCAxLCAxNDksIDIyMiwgMTgxLCA2OCwgMSwgMTQ5LCAxNTYsIDY4LCAxLCAxNDksIDIzMiwgMTg2LCA2OCwgMjUsIDUsIAorICAgIDE0OSwgMTUzLCA2OCwgMjUsIDUsIDE0OSwgMjIyLCAxODEsIDY4LCAyNSwgNSwgMTQ5LCAxNTYsIDY4LCAyNSwgNSwgMTQ5LCAKKyAgICAyMzIsIDE4NiwgNjgsIDEsIDIzMCwgMTUyLCAyMjksIDc4LCA2OCwgMSwgMjMwLCAxNTIsIDIzNSwgMTE1LCA2OCwgMSwgCisgICAgMjMwLCAxNTIsIDI1MiwgMTEyLCA2OCwgMSwgMjMwLCAxNTIsIDI1MiwgMTA3LCA2OCwgMTE2LCA1LCAyMzAsIDE1MiwgMTQ3LCAKKyAgICAxOTcsIDY4LCAxMTYsIDUsIDIzMCwgMTUyLCAxNDcsIDE4NSwgNjgsIDExNiwgNSwgMjMwLCAxNTIsIDE0NywgMjMzLCAxMzYsIAorICAgIDY4LCAxLCAyMjAsIDEwOSwgMjM0LCAyMTQsIDIyMCwgMTAzLCA2OCwgMjUsIDUsIDIyMCwgMTA5LCAyMzQsIDIxNCwgMjQ1LCAKKyAgICA1NiwgNjgsIDEzOCwgMTY0LCAyMjAsIDEwOSwgMjM0LCAyMTQsIDI0MSwgMjQ4LCA2OCwgMTM4LCAxNjQsIDIyMCwgMTA5LCAKKyAgICAyMzQsIDIxNCwgMjM0LCAxODQsIDIyNSwgMTIyLCA2OCwgMSwgMjEyLCA3LCAyMjQsIDEwOSwgMjM0LCAyMTQsIDIxNiwgCisgICAgMjA5LCA2OCwgMSwgMjEyLCA3LCAyMjQsIDEwOSwgMjM0LCAyMTQsIDIyNCwgMTE1LCA2OCwgMjUsIDUsIDIxMiwgNywgMjI0LCAKKyAgICAxMDksIDIzNCwgMjE0LCAyNDUsIDU2LCA2OCwgMjUsIDUsIDIxMiwgNywgMjI0LCAxMDksIDIzNCwgMjE0LCAyMTQsIDIxNCwgCisgICAgNjgsIDUsIDIxMiwgNywgMjI0LCAxMDksIDIzNCwgMjE0LCAyMTYsIDMwLCA2OCwgNSwgMjEyLCA3LCAyMjQsIDEwOSwgMjM0LCAKKyAgICAyMTQsIDIxNiwgMjksIDY4LCA1LCAyMTIsIDcsIDIyNCwgMTA5LCAyMzQsIDIxNCwgMjE2LCAyOCwgNjgsIDUsIDIxMiwgNywgCisgICAgMjI0LCAxMDksIDIzNCwgMjE0LCAyMTYsIDI3LCA2OCwgNSwgMjEyLCA3LCAyMjQsIDEwOSwgMjM0LCAyMTQsIDIxNiwgMjYsIAorICAgIDY4LCAxLCAyNDUsIDIyMCwgMjI0LCAxMDksIDIzNCwgMjE0LCAyMjgsIDExMSwgNjgsIDEsIDI0NSwgMjIwLCAyMjQsIDEwOSwgCisgICAgMjM0LCAyMTQsIDIxMCwgMTc2LCA2OCwgMSwgMjQ1LCAyMjAsIDIyNCwgMTA5LCAyMzQsIDIxNCwgMjQyLCAyMTgsIDY4LCAKKyAgICAyNSwgNSwgMjQzLCA2MCwgMjM0LCAyMTQsIDczLCA2OCwgMjUsIDUsIDIzNCwgMTg5LCAyMjYsIDIzNSwgNjgsIDI1LCA1LCAKKyAgICAyMzQsIDE4OSwgNzAsIDY4LCAyNSwgNSwgMjM0LCAxODksIDI0NSwgMjEwLCA2OCwgMSwgMjIwLCA4NywgMTc2LCA2OCwgMSwgCisgICAgMjIwLCA4NywgMjM0LCAxMzMsIDY4LCAxLCAyMjAsIDg3LCAyNDMsIDEzNiwgNjgsIDEsIDIyMCwgODcsIDI1MSwgMzQsIDY4LCAKKyAgICAxLCAyMjAsIDg3LCAyMTAsIDExNiwgNjgsIDEsIDIyMCwgODcsIDIyNywgMTY2LCA2OCwgMSwgMjIwLCA4NywgMjQ4LCAyMjIsIAorICAgIDY4LCAxLCAyMjAsIDg3LCAxOTcsIDY4LCAxLCAyMjAsIDg3LCAyMjUsIDE0OCwgNjgsIDEsIDIyMCwgODcsIDI0NCwgMTk3LCAKKyAgICA2OCwgMSwgMjIwLCA4NywgMjUyLCAxOTIsIDY4LCAxLCAyMjAsIDg3LCAyMTYsIDIwOSwgNjgsIDEsIDIyMCwgODcsIDE2MiwgCisgICAgNjgsIDExNiwgNSwgMjIwLCA4NywgMTQ3LCAyMTIsIDY1LCA2OCwgMjUsIDUsIDIyMCwgODcsIDI1NSwgNzQsIDY4LCAyNSwgCisgICAgNSwgMjIwLCA4NywgNzUsIDY4LCAyNSwgNSwgMjIwLCA4NywgMTYwLCA0OCwgNjgsIDI1LCA1LCAyMjAsIDg3LCA0MCwgMjExLCAKKyAgICAxMTcsIDY4LCA1LCAyMjAsIDg3LCAyMTYsIDI5LCA2OCwgNSwgMjIwLCA4NywgMjE2LCAyOCwgNjgsIDUsIDIyMCwgODcsIAorICAgIDIxNiwgMjYsIDY4LCA1LCAyMjAsIDg3LCAyMTYsIDI1LCA2OCwgNSwgMjIwLCA4NywgMjQ5LCAxNTMsIDIxNiwgMjksIDY4LCAKKyAgICA1LCAyMjAsIDg3LCAyNDksIDE1MywgMjE2LCAyOCwgNjgsIDUsIDIyMCwgODcsIDI0OSwgMTUzLCAyNDUsIDE1NCwgMjE2LCAKKyAgICAzMSwgNjgsIDEsIDIyMiwgMTI5LCAyMjYsIDY0LCAyNDQsIDE5NywgNjgsIDUsIDIyMiwgMTI5LCAyMjYsIDY0LCAyMTYsIAorICAgIDI2LCA2OCwgMjIwLCA4NywgMjEsIDIxMCwgODYsIDY4LCAyMjAsIDg3LCAyMSwgMTEwLCA2OCwgMjIwLCA4NywgMjEsIDEwNSwgCisgICAgNjgsIDIyMCwgODcsIDIxLCAxNTgsIDY4LCAyMjAsIDg3LCAyMSwgMTYxLCA2OCwgMjIwLCA4NywgMjEsIDE4OSwgNjgsIAorICAgIDIyMCwgODcsIDIxLCAxOTQsIDY4LCAyMjAsIDg3LCAyMSwgMTk4LCA2OCwgMjIwLCA4NywgMjEsIDE5NSwgNjgsIDIyMCwgCisgICAgODcsIDIxLCAyMDAsIDY4LCA1LCAyMzQsIDEyNywgMjE2LCAzMCwgNjgsIDUsIDIzNCwgMTI3LCAyMTYsIDI4LCA2OCwgMjUsIAorICAgIDUsIDI1NCwgMTkxLCA2MSwgNjgsIDI1LCA1LCAyNTQsIDE5MSwgMjU0LCAyMDIsIDY4LCAxNiwgMjIwLCA4NywgMTEwLCA2OCwgCisgICAgMTYsIDIyMCwgODcsIDI0NSwgMzEsIDk4LCA2LCAxLCAyNTQsIDEyNCwgOTgsIDYsIDEsIDI1MiwgMTUzLCA5OCwgNiwgMSwgCisgICAgMjQzLCAxMDcsIDk4LCA2LCAxLCAyNDcsIDEyOSwgOTgsIDYsIDEsIDI0NSwgMTUxLCA5OCwgNiwgMSwgMjEzLCAxNjAsIDk4LCAKKyAgICA2LCAxLCAyMTAsIDg5LCA5OCwgNiwgMSwgMjE3LCA2MSwgOTgsIDYsIDEsIDIzNiwgMCwgOTgsIDYsIDEsIDIzNCwgMjM1LCAKKyAgICA5OCwgNiwgMSwgMjMzLCA4MiwgOTgsIDYsIDEsIDIzMSwgMTg2LCA5OCwgNiwgMSwgMjI5LCAxOTYsIDk4LCA2LCAxLCAyMjYsIAorICAgIDE5NywgOTgsIDYsIDEsIDIyNiwgMTgsIDk4LCA2LCAxLCAyMTAsIDc4LCA5OCwgNiwgMSwgMjIzLCAxNzIsIDk4LCA2LCAxLCAKKyAgICAyMjEsIDI0NCwgOTgsIDYsIDEsIDIxNywgNTEsIDk4LCA2LCAxLCAyMTQsIDE5MCwgOTgsIDYsIDEsIDIyNSwgMTQxLCA5OCwgCisgICAgNiwgMSwgMjM0LCAxMjIsIDk4LCA2LCAxLCAyNDIsIDI0MiwgOTgsIDYsIDEsIDIyNCwgNzQsIDk4LCA2LCAxLCAyMjAsIDIxLCAKKyAgICA5OCwgNiwgMSwgMjUwLCA5OCwgOTgsIDYsIDEsIDI1MSwgOCwgOTgsIDYsIDEsIDIzNSwgMTAxLCA5OCwgNiwgMSwgMjUwLCAKKyAgICA0MSwgOTgsIDYsIDEsIDI1MCwgMTQ0LCA5OCwgNiwgMSwgMjExLCAxNjMsIDk4LCA2LCAxLCAyMzUsIDExMiwgOTgsIDYsIDEsIAorICAgIDI0MiwgNDQsIDk4LCA2LCAxLCAyNDEsIDIzOSwgOTgsIDYsIDEsIDI0MSwgMTc2LCA5OCwgNiwgMSwgMjEyLCAyMiwgOTgsIAorICAgIDYsIDEsIDI0MiwgNSwgOTgsIDYsIDEsIDI0MSwgNjYsIDk4LCA2LCAxLCAyMTAsIDI0NiwgOTgsIDYsIDEsIDI1NCwgMjMzLCAKKyAgICA5OCwgMSwgMjU0LCAxMjQsIDk4LCAxLCAyNTIsIDE1MywgOTgsIDEsIDI0MywgMTA3LCA5OCwgMSwgMjQ3LCAxMjksIDk4LCAKKyAgICAxLCAyNDUsIDE1MSwgOTgsIDEsIDIxMywgMTYwLCA5OCwgMSwgMjEwLCA4OSwgOTgsIDEsIDIxNywgNjEsIDk4LCAxLCAyMzYsIAorICAgIDAsIDk4LCAxLCAyMzQsIDIzNSwgOTgsIDEsIDIzMywgODIsIDk4LCAxLCAyMzEsIDE4NiwgOTgsIDEsIDIyOSwgMTk2LCA5OCwgCisgICAgMSwgMjI2LCAxOTcsIDk4LCAxLCAyMjYsIDE4LCA5OCwgMSwgMjEwLCA3OCwgOTgsIDEsIDIyMywgMTcyLCA5OCwgMSwgMjIxLCAKKyAgICAyNDQsIDk4LCAxLCAyMTcsIDUxLCA5OCwgMSwgMjE0LCAxOTAsIDk4LCAxLCAyMjUsIDE0MSwgOTgsIDEsIDIzNCwgMTIyLCAKKyAgICA5OCwgMSwgMjQyLCAyNDIsIDk4LCAxLCAyMjQsIDc0LCA5OCwgMSwgMjIwLCAyMSwgOTgsIDEsIDI1MCwgOTgsIDk4LCAxLCAKKyAgICAyNTEsIDgsIDk4LCAxLCAyMzUsIDEwMSwgOTgsIDEsIDI1MCwgNDEsIDk4LCAxLCAyNTAsIDE0NCwgOTgsIDEsIDIxMSwgCisgICAgMTYzLCA5OCwgMSwgMjM1LCAxMTIsIDk4LCAxLCAyNDIsIDQ0LCA5OCwgMSwgMjQxLCAyMzksIDk4LCAxLCAyNDEsIDE3NiwgCisgICAgOTgsIDEsIDIxMiwgMjIsIDk4LCAxLCAyNDIsIDUsIDk4LCAxLCAyNDEsIDY2LCA5OCwgMSwgMjQ0LCAxMjIsIDk4LCAxLCAKKyAgICAyMTAsIDI0NiwgOTgsIDEsIDI0NSwgMTY2LCA5OCwgMSwgMjE1LCA5NCwgMjQzLCAxMDcsIDk4LCAxLCAyNTQsIDE5NywgOTgsIAorICAgIDIyNiwgMTYsIDIyMCwgMTM4LCA1OCwgMSwgOTgsIDIyOSwgMTk2LCA5OCwgMSwgMjU0LCAyMzMsIDk4LCAxLCAyNDIsIDQsIAorICAgIDUwLCA5OCwgMSwgMjMzLCAxMjgsIDUwLCAyNCwgMTAwLCAyMzQsIDU5LCAyNCwgMTAwLCAyMTgsIDIxNiwgMjQsIDEwMCwgCisgICAgMjI4LCAyMjcsIDI0LCAxMDAsIDIxNiwgMTAyLCAyNCwgMTAwLCAyMTgsIDIwNSwgMjQsIDEwMCwgMjIzLCAyNywgMjQsIAorICAgIDEwMCwgMjMwLCAyMTgsIDI0LCAxMDAsIDIyNSwgOTYsIDI0LCAxMDAsIDIxOCwgMjEzLCAyNCwgMTAwLCAyMTksIDE0OSwgCisgICAgMjQsIDEwMCwgMjE4LCAyMTAsIDI0LCAxMDAsIDIzNiwgNTcsIDI0LCAxMDAsIDI1MCwgNDcsIDI0LCAxMDAsIDIxOCwgMjIwLCAKKyAgICAyNCwgMTAwLCAyNTAsIDEwNywgMjQsIDEwMCwgMjM0LCAxMTEsIDI0LCAxMDAsIDIxNiwgMTc0LCAyNCwgMTAwLCAyMjUsIAorICAgIDEzMiwgMjQsIDEwMCwgMjQxLCAxNzMsIDI0LCAxMDAsIDIyOCwgMjIzLCAyNCwgMTAwLCAyMTgsIDIxNCwgMjQsIDEwMCwgCisgICAgMjI4LCAyMTcsIDI0LCAxMDAsIDIyOCwgMjIxLCAyNCwgMTAwLCAyMTYsIDk5LCAyNCwgMTAwLCAyMjMsIDE1LCAyNCwgMTAwLCAKKyAgICAyMTgsIDIxMiwgMjQsIDEwMCwgMjIzLCAyNSwgMjQsIDEwMCwgMjM0LCAyMTksIDI0LCAxMDAsIDIzMCwgMjExLCAyNCwgCisgICAgMTAwLCAyMzQsIDIyMiwgMjQsIDEwMCwgMjI1LCA5MSwgMjQsIDEwMCwgMjI1LCA4OSwgMjQsIDEwMCwgMjI1LCA3NywgMjQsIAorICAgIDEwMCwgMjI1LCA4NSwgMjQsIDEwMCwgMjI1LCA4MywgMjQsIDEwMCwgMjI1LCA4MCwgMjQsIDEwMCwgMjI1LCA4MiwgMjQsIAorICAgIDEwMCwgMjI1LCA3OSwgMjQsIDEwMCwgMjI1LCA4NCwgMjQsIDEwMCwgMjI1LCA5NCwgMjQsIDEwMCwgMjI1LCA5NSwgMjQsIAorICAgIDEwMCwgMjI1LCA3OCwgMjQsIDEwMCwgMjI1LCA4OCwgMjQsIDEwMCwgMjM0LCAyMjAsIDI0LCAxMDAsIDIzNCwgMjE4LCAyNCwgCisgICAgMTAwLCAyMTksIDE0MiwgMjQsIDEwMCwgMjE5LCAxNDAsIDI0LCAxMDAsIDIxOSwgMTMyLCAyNCwgMTAwLCAyMTksIDEzNSwgCisgICAgMjQsIDEwMCwgMjE5LCAxNDEsIDI0LCAxMDAsIDIxOSwgMTM3LCAyNCwgMTAwLCAyMTksIDEzNiwgMjQsIDEwMCwgMjE5LCAKKyAgICAxMzQsIDI0LCAxMDAsIDIxOSwgMTQ1LCAyNCwgMTAwLCAyMTksIDE0NywgMjQsIDEwMCwgMjE5LCAxNDgsIDI0LCAxMDAsIAorICAgIDIxOSwgMTQzLCAyNCwgMTAwLCAyMTksIDEzMywgMjQsIDEwMCwgMjE5LCAxMzgsIDI0LCAxMDAsIDIxOSwgMTQ2LCAyNCwgCisgICAgMTAwLCAyNTAsIDkxLCAyNCwgMTAwLCAyNTAsIDg5LCAyNCwgMTAwLCAyNTAsIDE2OSwgMjQsIDEwMCwgMjUwLCAxNjcsIDI0LCAKKyAgICAxMDAsIDIyNiwgMzMsIDI0LCAxMDAsIDIzNiwgNTIsIDI0LCAxMDAsIDIzNiwgNDMsIDI0LCAxMDAsIDIzNiwgNTEsIDI0LCAKKyAgICAxMDAsIDIzNiwgNDgsIDI0LCAxMDAsIDIzNiwgNDYsIDI0LCAxMDAsIDIzNiwgNTAsIDI0LCAxMDAsIDIxOCwgMjE3LCAyNCwgCisgICAgMTAwLCAyMzYsIDU1LCAyNCwgMTAwLCAyMzYsIDU2LCAyNCwgMTAwLCAyMzYsIDQ0LCAyNCwgMTAwLCAyMzYsIDQ5LCAyNCwgCisgICAgMTAwLCAyMTEsIDI2LCAyNCwgMTAwLCAyNTAsIDQ2LCAyNCwgMTAwLCAyNTAsIDkyLCAyNCwgMTAwLCAyNTAsIDkwLCAyNCwgCisgICAgMTAwLCAyNTAsIDE3MCwgMjQsIDEwMCwgMjUwLCAxNjgsIDI0LCAxMDAsIDI1MCwgMTA1LCAyNCwgMTAwLCAyNTAsIDEwNiwgCisgICAgMjQsIDEwMCwgMjUwLCA5MywgMjQsIDEwMCwgMjUwLCAxNzEsIDI0LCAxMDAsIDIyNSwgMTMwLCAyNCwgMTAwLCAyMzQsIAorICAgIDIyMSwgMjQsIDEwMCwgMjE4LCAyMTgsIDI0LCAxMDAsIDIxMSwgMzIsIDI0LCAxMDAsIDIzNCwgNTAsIDI0LCAxMDAsIDIyOCwgCisgICAgMjE5LCAyNCwgMTAwLCAyMjgsIDIyNSwgMjQsIDEwMCwgMjI4LCAyMjQsIDI0LCAxMDAsIDIxNiwgOTYsIDI0LCAxMDAsIAorICAgIDI0NCwgMTA0LCAyNCwgMTQzLCAyNDQsIDEwNCwgMjQsIDE0MywgNjEsIDI0LCAxNDMsIDI1NCwgMjQ0LCAyNCwgMTQzLCAKKyAgICAxOTEsIDI0LCAxNDMsIDIxMSwgOTIsIDI0LCAxNDMsIDI0NSwgMTE4LCAyNCwgMTQzLCA3NSwgMjQsIDE0MywgMjExLCAzNiwgCisgICAgMjQsIDE0MywgMjExLCA0NywgMjQsIDE0MywgNzYsIDI0LCAxNDMsIDIxMiwgNjUsIDI0LCAxNDMsIDIxMiwgNjIsIDI0LCAKKyAgICAxNDMsIDIyNiwgMjM1LCAyNCwgMTQzLCAyMTAsIDI0NCwgMjQsIDE0MywgNzAsIDI0LCAxNDMsIDIxMiwgMTEsIDI0LCAxNDMsIAorICAgIDIxMiwgMjIsIDI0LCAxNDMsIDIxMSwgMjUwLCAyNCwgMTQzLCAyMTAsIDIxMiwgMjQsIDE0MywgMjQ1LCA1NiwgMjQsIDE0MywgCisgICAgMjExLCA4LCAyNCwgMTQzLCA3MywgMjQsIDE0MywgMjU1LCAxNTgsIDI0LCAxNDMsIDI1NSwgMTU3LCAyNCwgMTQzLCAyMTEsIAorICAgIDEwNiwgMjQsIDE0MywgMjExLCAxMDQsIDI0LCAxNDMsIDI0NSwgMTE2LCAyNCwgMTQzLCAyNDUsIDExNSwgMjQsIDE0MywgCisgICAgMjQ1LCAxMTcsIDI0LCAxNDMsIDIxMSwgMzUsIDI0LCAxNDMsIDIxMSwgMzQsIDI0LCAxNDMsIDIyNywgODUsIDI0LCAxNDMsIAorICAgIDIyNywgODYsIDI0LCAxNDMsIDIyNywgNzksIDI0LCAxNDMsIDIyNywgODQsIDI0LCAxNDMsIDIyNywgODIsIDI0LCAxNDMsIAorICAgIDIxMCwgMjM4LCAyNCwgMTQzLCAyMTAsIDIzNywgMjQsIDE0MywgMjEwLCAyMzYsIDI0LCAxNDMsIDIxMCwgMjM5LCAyNCwgCisgICAgMTQzLCAyMTAsIDI0MCwgMjQsIDE0MywgMjE1LCAzMCwgMjQsIDE0MywgMjE1LCAyOSwgMjQsIDE0MywgMjE1LCAyNywgMjQsIAorICAgIDE0MywgMjE1LCAyNCwgMjQsIDE0MywgMjE1LCAyNSwgMjQsIDE0MywgMjEwLCAyMTEsIDI0LCAxNDMsIDIxMCwgMjA4LCAyNCwgCisgICAgMTQzLCAyMTAsIDIwOSwgMjQsIDE0MywgMjEwLCAyMDMsIDI0LCAxNDMsIDIxMCwgMjA0LCAyNCwgMTQzLCAyMTAsIDIwNSwgCisgICAgMjQsIDE0MywgMjEwLCAyMDcsIDI0LCAxNDMsIDI0NSwgNTAsIDI0LCAxNDMsIDI0NSwgNTIsIDI0LCAxNDMsIDIxMSwgNywgCisgICAgMjQsIDE0MywgMjQwLCAxNTQsIDI0LCAxNDMsIDI0MCwgMTQ2LCAyNCwgMTQzLCAyNDAsIDE0OSwgMjQsIDE0MywgMjQwLCAKKyAgICAxNDcsIDI0LCAxNDMsIDI0MCwgMTUxLCAyNCwgMTQzLCAyNDAsIDE1MywgMjQsIDE0MywgMjU0LCAzNSwgMjQsIDE0MywgCisgICAgMjU0LCAzMiwgMjQsIDE0MywgMjU0LCAzMCwgMjQsIDE0MywgMjU0LCAzMSwgMjQsIDE0MywgMjE4LCAyMjEsIDI0LCAxNDMsIAorICAgIDI1NSwgMTU5LCAyNCwgMTQzLCAyMTEsIDEwNSwgMjQsIDE0MywgMjExLCAzMywgMjQsIDE0MywgMjI3LCA4MSwgMjQsIDE0MywgCisgICAgMjI3LCA4MCwgMjQsIDkwLCAyMzQsIDU5LCAyNCwgOTAsIDIxOCwgMjE2LCAyNCwgOTAsIDIzNCwgNTIsIDI0LCA5MCwgMjI4LCAKKyAgICAyMjcsIDI0LCA5MCwgMjI4LCAyMjUsIDI0LCA5MCwgMjI4LCAyMjQsIDI0LCA5MCwgMjE2LCAxMDIsIDI0LCA5MCwgMjIzLCAKKyAgICAyNywgMjQsIDkwLCAyMjMsIDIyLCAyNCwgOTAsIDIyMywgMTksIDI0LCA5MCwgMjIzLCAxMiwgMjQsIDkwLCAyMjMsIDcsIAorICAgIDI0LCA5MCwgMjIzLCAyLCAyNCwgOTAsIDIyMywgMTMsIDI0LCA5MCwgMjIzLCAyNSwgMjQsIDkwLCAyMzAsIDIxOCwgMjQsIAorICAgIDkwLCAyMjUsIDk2LCAyNCwgOTAsIDIyNSwgODUsIDI0LCA5MCwgMjE5LCAxNDksIDI0LCA5MCwgMjE4LCAyMTAsIDI0LCA5MCwgCisgICAgMjM2LCA1NywgMjQsIDkwLCAyNTAsIDQ3LCAyNCwgOTAsIDI1MCwgMTA3LCAyNCwgOTAsIDIzNCwgMTExLCAyNCwgOTAsIAorICAgIDIxNiwgMTc0LCAyNCwgOTAsIDIyNSwgMTMyLCAyNCwgOTAsIDI0MSwgMTczLCAyNCwgOTAsIDIzNCwgNTMsIDI0LCA5MCwgCisgICAgMjM0LCA1MSwgMjQsIDkwLCAyMjgsIDIyMywgMjQsIDkwLCAyMjgsIDIxNywgMjQsIDkwLCAyMjgsIDIxOSwgMjQsIDkwLCAKKyAgICAyMjgsIDIyMiwgMjQsIDkwLCAyMjgsIDIxOCwgMjQsIDkwLCAyMTYsIDk5LCAyNCwgOTAsIDIxNiwgOTYsIDI0LCA5MCwgCisgICAgMjIzLCAyMCwgMjQsIDkwLCAyMjMsIDE1LCAyNCwgOTAsIDIyMywgMSwgMjQsIDkwLCAyMjMsIDAsIDI0LCA5MCwgMjE4LCAKKyAgICAyMTIsIDI0LCA5MCwgMjIzLCAxNywgMjQsIDkwLCAyMjMsIDE2LCAyNCwgOTAsIDIyMywgOSwgMjQsIDkwLCAyMjMsIDExLCAKKyAgICAyNCwgOTAsIDIyMywgMjQsIDI0LCA5MCwgMjIzLCA0LCAyNCwgOTAsIDIyMywgMTQsIDI0LCA5MCwgMjIzLCAyMywgMjQsIAorICAgIDkwLCAyMjIsIDI1NSwgMjQsIDkwLCAyMzAsIDIxNCwgMjQsIDkwLCAyMzAsIDIwOSwgMjQsIDkwLCAyMzAsIDIxMSwgMjQsIAorICAgIDkwLCAyMzAsIDIwOCwgMjQsIDkwLCAyMzAsIDIwNiwgMjQsIDkwLCAyMzAsIDIxMiwgMjQsIDkwLCAyMzAsIDIxNywgMjQsIAorICAgIDkwLCAyMzAsIDIxNSwgMjQsIDkwLCAyMzQsIDIyMiwgMjQsIDkwLCAyMjUsIDg3LCAyNCwgOTAsIDIyNSwgODgsIDI0LCA5MCwgCisgICAgMjI1LCA5MywgMjQsIDkwLCAyMzQsIDIyMCwgMjQsIDkwLCAyMTksIDE0MiwgMjQsIDkwLCAyMTksIDEzMiwgMjQsIDkwLCAKKyAgICAyMTksIDEzNSwgMjQsIDkwLCAyMTksIDEzNywgMjQsIDkwLCAyMjYsIDMzLCAyNCwgOTAsIDIzNiwgNTIsIDI0LCA5MCwgCisgICAgMjM2LCA0NSwgMjQsIDkwLCAyMTgsIDIxNywgMjQsIDkwLCAyMzYsIDUzLCAyNCwgOTAsIDIxMSwgMjYsIDI0LCA5MCwgMjExLCAKKyAgICAyMiwgMjQsIDkwLCAyMTEsIDIzLCAyNCwgOTAsIDIyNSwgMTMwLCAyNCwgOTAsIDIzNCwgMjIxLCAyNCwgOTAsIDI0MSwgCisgICAgMTcxLCAyNCwgOTAsIDI0MSwgMTY5LCAyNCwgOTAsIDI0MSwgMTcyLCAyNCwgOTAsIDI0MSwgMTcwLCAyNCwgOTAsIDIxMSwgCisgICAgMzIsIDI0LCA5MCwgMjM0LCA1NSwgMjQsIDkwLCAyMzQsIDU0LCAyNCwgOTAsIDIzNCwgNTgsIDI0LCA5MCwgMjM0LCA1NiwgCisgICAgMjQsIDkwLCAyMzQsIDU3LCAyNCwgOTAsIDIxOCwgMjE0LCAyOSwgMywgMTYyLCAyOSwgMywgMjQwLCAyMjMsIDI5LCAzLCAKKyAgICAyNDEsIDE4MSwgMjksIDMsIDI0MiwgNDcsIDI5LCAzLCAyNDEsIDIyMSwgMjksIDMsIDI0MSwgMjM5LCAyOSwgMywgMjQxLCAKKyAgICA2OSwgMjksIDMsIDI0MSwgNjgsIDI5LCAzLCAyMzMsIDEzNiwgMjksIDMsIDIzMiwgOTksIDI5LCAzLCAyMzIsIDI0MiwgMjksIAorICAgIDMsIDIzMywgMTM1LCAyOSwgMywgMjMzLCA1MSwgMjksIDMsIDIzMywgNTksIDI5LCAzLCAyMzIsIDE1NywgMjksIDMsIDIzMiwgCisgICAgNzEsIDI5LCAzLCAyNDEsIDE5MCwgMjksIDMsIDI0MSwgMTg0LCAyOSwgMywgMjQxLCAxODYsIDI5LCAzLCAyNDEsIDE4OSwgCisgICAgMjksIDMsIDI0MSwgMTg3LCAyOSwgMywgMjQxLCAxODgsIDI5LCAzLCAyNDEsIDE4NSwgMjksIDMsIDI0MSwgMTgzLCAyOSwgCisgICAgMywgMTg1LCAyOSwgMywgMjMwLCAxMDMsIDI5LCAzLCAyMzAsIDIzMSwgMjksIDMsIDIzMSwgMjM4LCAyOSwgMywgMjMxLCAKKyAgICA4MSwgMjksIDMsIDIzMSwgOTIsIDI5LCAzLCAyMzAsIDE2MiwgMjksIDMsIDIzMCwgNDMsIDI5LCAzLCAyMTcsIDE2NCwgMjksIAorICAgIDMsIDIxNywgMTU4LCAyOSwgMywgMjE3LCAxNjAsIDI5LCAzLCAyMTcsIDE2MywgMjksIDMsIDIxNywgMTYxLCAyOSwgMywgCisgICAgMjE3LCAxNjIsIDI5LCAzLCAyMTcsIDE1OSwgMjksIDMsIDIxNywgMTU3LCAyOSwgMywgMjA1LCAyOSwgMywgMjIyLCAxNDEsIAorICAgIDI5LCAzLCAyMjMsIDM2LCAyOSwgMywgMjIzLCAxODUsIDI5LCAzLCAyMjMsIDEwOSwgMjksIDMsIDIyMywgMTI5LCAyOSwgMywgCisgICAgMjIyLCAyMTIsIDI5LCAzLCAyMjIsIDExMCwgMjksIDMsIDIwNiwgMjksIDMsIDIxOCwgODQsIDI5LCAzLCAyMTksIDE5MiwgCisgICAgMjksIDMsIDIyMiwgMzIsIDI5LCAzLCAyMjEsIDE3MSwgMjksIDMsIDIyMSwgMTgyLCAyOSwgMywgMjE5LCA1OSwgMjksIDMsIAorICAgIDIxNywgMjU0LCAyOSwgMywgMjIwLCAxMDMsIDI5LCAzLCAyMTksIDIyNiwgMjksIDMsIDIyMCwgMzMsIDI5LCAzLCAyMjAsIAorICAgIDk5LCAyOSwgMywgMjIwLCA2MiwgMjksIDMsIDIyMCwgNjQsIDI5LCAzLCAyMjAsIDgsIDI5LCAzLCAyMTksIDIwOSwgMjksIAorICAgIDMsIDIyNCwgODksIDI5LCAzLCAyMjQsIDMxLCAyOSwgMywgMjI0LCA1NCwgMjksIDMsIDIyNCwgODgsIDI5LCAzLCAyMjQsIAorICAgIDY5LCAyOSwgMywgMjI0LCA3MCwgMjksIDMsIDIyNCwgNDMsIDI5LCAzLCAyMjQsIDQyLCAyOSwgMywgMjIzLCAyNDMsIDI5LCAKKyAgICAzLCAyMjMsIDIzOSwgMjksIDMsIDIyMywgMjQyLCAyOSwgMywgMjIzLCAyNDAsIDI5LCAzLCAyMjMsIDI0MSwgMjksIDMsIAorICAgIDIyNCwgNjYsIDI5LCAzLCAyMjQsIDYwLCAyOSwgMywgMjI0LCA2MiwgMjksIDMsIDIyNCwgNjUsIDI5LCAzLCAyMjQsIDYzLCAKKyAgICAyOSwgMywgMjI0LCA2NCwgMjksIDMsIDIyNCwgNjEsIDI5LCAzLCAyMjQsIDU5LCAyOSwgMywgMjI0LCA1NSwgMjksIDMsIAorICAgIDIyNCwgNTgsIDI5LCAzLCAyMjQsIDU2LCAyOSwgMywgMjI0LCA1NywgMjksIDMsIDI1MiwgMTkyLCAyOSwgMywgMjUxLCAKKyAgICAxMjYsIDI5LCAzLCAyNTIsIDcsIDI5LCAzLCAyNTIsIDE5MCwgMjksIDMsIDI1MiwgNjcsIDI5LCAzLCAyNTIsIDc2LCAyOSwgCisgICAgMywgMjUxLCAyMDYsIDI5LCAzLCAyNTEsIDg0LCAyOSwgMywgMjE0LCAyNywgMjksIDMsIDIxMiwgMTE2LCAyOSwgMywgMjEzLCAKKyAgICAxNzYsIDI5LCAzLCAyMTQsIDI2LCAyOSwgMywgMjEzLCAyNTAsIDI5LCAzLCAyMTMsIDI1NSwgMjksIDMsIDIxMywgMTM4LCAKKyAgICAyOSwgMywgMjEyLCAxMDcsIDI5LCAzLCAyMTcsIDEwNiwgMjksIDMsIDIxNSwgMTE5LCAyOSwgMywgMjE2LCAxMTgsIDI5LCAKKyAgICAzLCAyMTcsIDEwMiwgMjksIDMsIDIxNywgMTIsIDI5LCAzLCAyMTcsIDIzLCAyOSwgMywgMTExLCAyOSwgMywgMjE1LCA4MCwgCisgICAgMjksIDMsIDI1MSwgMzQsIDI5LCAzLCAyNDksIDExMywgMjksIDMsIDI1MCwgNTIsIDI5LCAzLCAyNTEsIDMzLCAyOSwgMywgCisgICAgMjUwLCAxODMsIDI5LCAzLCAyNTAsIDE5MSwgMjksIDMsIDI0OSwgMjM5LCAyOSwgMywgMjQ5LCA4MiwgMjksIDMsIDIxMSwgCisgICAgMTY1LCAyOSwgMywgMjExLCAxNDEsIDI5LCAzLCAyMTEsIDE1NywgMjksIDMsIDIxMSwgMTY0LCAyOSwgMywgMjExLCAxNjEsIAorICAgIDI5LCAzLCAyMTEsIDE2MiwgMjksIDMsIDIxMSwgMTQ4LCAyOSwgMywgMjExLCAxNDcsIDI5LCAzLCAyMTEsIDEzNiwgMjksIAorICAgIDMsIDIxMSwgMTMyLCAyOSwgMywgMjExLCAxMzUsIDI5LCAzLCAyMTEsIDEzMywgMjksIDMsIDIxMSwgMTM0LCAyOSwgMywgCisgICAgMTk3LCAyOSwgMywgMjI3LCAyMzgsIDI5LCAzLCAyMjgsIDIzNCwgMjksIDMsIDIyOSwgMjI2LCAyOSwgMywgMjI5LCAxMDQsIAorICAgIDI5LCAzLCAyMjksIDEwOCwgMjksIDMsIDIyOCwgNzUsIDI5LCAzLCAyMjcsIDE3NSwgMjksIDMsIDIyNywgMTY2LCAyOSwgMywgCisgICAgMjI3LCAxMjksIDI5LCAzLCAyMjcsIDE0OSwgMjksIDMsIDIyNywgMTY1LCAyOSwgMywgMjI3LCAxNTYsIDI5LCAzLCAyMjcsIAorICAgIDE1NywgMjksIDMsIDIyNywgMTM1LCAyOSwgMywgMjI3LCAxMjAsIDI5LCAzLCAyNDIsIDE4MSwgNjEsIDI5LCAzLCAyNDIsIAorICAgIDE4MSwgNzAsIDI5LCAzLCAyNDIsIDE4MSwgNzMsIDI5LCAzLCAyNDIsIDE4MSwgMjU1LCA3NCwgMjksIDMsIDI0MiwgMTgxLCAKKyAgICAyNDUsIDIxMCwgMjksIDMsIDI0MiwgMTgxLCA3NSwgMjksIDMsIDI0MiwgMTgxLCA3NiwgMjksIDMsIDI0MiwgMTgxLCAyMTIsIAorICAgIDY1LCAyOSwgMywgMTc2LCAyOSwgMywgMjMzLCAyMTgsIDI5LCAzLCAyMzQsIDkzLCAyOSwgMywgMjM1LCAxMSwgMjksIDMsIAorICAgIDIzNCwgMTgyLCAyOSwgMywgMjM0LCAxODMsIDI5LCAzLCAyMzQsIDI5LCAyOSwgMywgMjM0LCAyOCwgMjksIDMsIDIzMywgCisgICAgMTgzLCAyOSwgMywgMjMzLCAxNzcsIDI5LCAzLCAyMzMsIDE4MiwgMjksIDMsIDIzMywgMTc4LCAyOSwgMywgMjMzLCAxNzksIAorICAgIDI5LCAzLCAyMzMsIDE3MiwgMjksIDMsIDIzMywgMTY2LCAyOSwgMywgMjMzLCAxNjgsIDI5LCAzLCAyMzMsIDE3MSwgMjksIAorICAgIDMsIDIzMywgMTY5LCAyOSwgMywgMjMzLCAxNzAsIDI5LCAzLCAyMzMsIDE2NywgMjksIDMsIDIzMywgMTY1LCAyOSwgMywgCisgICAgMjMzLCAxNjEsIDI5LCAzLCAyMzMsIDE2NCwgMjksIDMsIDIzMywgMTYyLCAyOSwgMywgMjMzLCAxNjMsIDI5LCAzLCAyMTIsIAorICAgIDY1LCAyOSwgMywgMjExLCAxOTUsIDI5LCAzLCAyMTEsIDI1MCwgMjksIDMsIDIxMiwgNjQsIDI5LCAzLCAyMTIsIDE3LCAyOSwgCisgICAgMywgMjEyLCAyMiwgMjksIDMsIDIxMSwgMjI3LCAyOSwgMywgMjExLCAyMjYsIDI5LCAzLCAyMjUsIDE0MCwgNjEsIDI5LCAzLCAKKyAgICAyMjUsIDE0MCwgNzAsIDI5LCAzLCAyMjUsIDE0MCwgNzMsIDI5LCAzLCAyMjUsIDE0MCwgMjU1LCA3NCwgMjksIDMsIDIyNSwgCisgICAgMTQwLCAyNDUsIDIxMCwgMjksIDMsIDIyNSwgMTQwLCA3NSwgMjksIDMsIDIyNSwgMTQwLCA3NiwgMjksIDMsIDIxMCwgMTE2LCAKKyAgICAyOSwgMywgMjEwLCAxMywgMjksIDMsIDIxMCwgNDQsIDI5LCAzLCAyMTAsIDExNSwgMjksIDMsIDIxMCwgOTIsIDI5LCAzLCAKKyAgICAyMTAsIDk0LCAyOSwgMywgMjEwLCAyMywgMjksIDMsIDIxMCwgMCwgMjksIDMsIDIxMCwgODIsIDI5LCAzLCAyMTAsIDYyLCAKKyAgICAyOSwgMywgMjEwLCA2OSwgMjksIDMsIDIxMCwgODEsIDI5LCAzLCAyMTAsIDczLCAyOSwgMywgMjEwLCA3NCwgMjksIDMsIAorICAgIDIxMCwgNjcsIDI5LCAzLCAyMTAsIDUzLCAyOSwgMywgMTkxLCAyOSwgMywgMjEwLCAyMTIsIDI5LCAzLCAyMTEsIDgsIDI5LCAKKyAgICAzLCAyMTEsIDEwMywgMjksIDMsIDIxMSwgNDQsIDI5LCAzLCAyMTEsIDQ3LCAyOSwgMywgMjEwLCAyNDQsIDI5LCAzLCAyMTAsIAorICAgIDIzNSwgMjksIDMsIDI0OCwgMjIyLCAyOSwgMywgMjQ2LCA3OSwgMjksIDMsIDI0OCwgNCwgMjksIDMsIDI0OCwgMjIxLCAyOSwgCisgICAgMywgMjQ4LCA3OCwgMjksIDMsIDI0OCwgOTEsIDI5LCAzLCAyNDcsIDE0NiwgMjksIDMsIDI0NiwgNDgsIDI5LCAzLCAyNDgsIAorICAgIDEzNiwgMjksIDMsIDI0OCwgMTAxLCAyOSwgMywgMjQ4LCAxMTMsIDI5LCAzLCAyNDgsIDEzNSwgMjksIDMsIDI0OCwgMTIzLCAKKyAgICAyOSwgMywgMjQ4LCAxMjQsIDI5LCAzLCAyNDgsIDEwNiwgMjksIDMsIDI0OCwgOTIsIDI5LCAzLCAyMzUsIDE0MiwgMjksIDMsIAorICAgIDIzNSwgNTIsIDI5LCAzLCAyMzUsIDEwOSwgMjksIDMsIDIzNSwgMTQxLCAyOSwgMywgMjM1LCAxMjUsIDI5LCAzLCAyMzUsIAorICAgIDEyNywgMjksIDMsIDIzNSwgNjksIDI5LCAzLCAyMzUsIDMyLCAyOSwgMywgMjQzLCAxMzYsIDI5LCAzLCAyNDIsIDExNCwgCisgICAgMjksIDMsIDI0MiwgMjE1LCAyOSwgMywgMjQzLCAxMzMsIDI5LCAzLCAyNDMsIDU2LCAyOSwgMywgMjQzLCA2MywgMjksIDMsIAorICAgIDI0MiwgMTc1LCAyOSwgMywgMjQyLCAxNzQsIDI5LCAzLCAyNDIsIDc5LCAyOSwgMywgMjQyLCA3NSwgMjksIDMsIDI0MiwgCisgICAgNzgsIDI5LCAzLCAyNDIsIDc2LCAyOSwgMywgMjQyLCA3NywgMjksIDMsIDI0MywgMzAsIDI5LCAzLCAyNDMsIDEwLCAyOSwgCisgICAgMywgMjQzLCAyMCwgMjksIDMsIDI0MywgMjksIDI5LCAzLCAyNDMsIDI0LCAyOSwgMywgMjQzLCAyNSwgMjksIDMsIDI0MywgCisgICAgMTQsIDI5LCAzLCAyNDIsIDI1NSwgMjksIDMsIDIxNiwgMjA5LCAyOSwgMywgMjE2LCAxMzcsIDI5LCAzLCAyMTYsIDE3NiwgCisgICAgMjksIDMsIDIxNiwgMjA4LCAyOSwgMywgMjE2LCAxOTUsIDI5LCAzLCAyMTYsIDE5NiwgMjksIDMsIDIxNiwgMTU3LCAyOSwgCisgICAgMywgMjE2LCAxMjksIDI5LCAzLCAyNTAsIDE1OCwgMjksIDMsIDI1MCwgNzAsIDI5LCAzLCAyNTAsIDExMSwgMjksIDMsIAorICAgIDI1MCwgMTU3LCAyOSwgMywgMjUwLCAxMjksIDI5LCAzLCAyNTAsIDEzMiwgMjksIDMsIDI1MCwgODcsIDI5LCAzLCAyNTAsIAorICAgIDU5LCAyOSwgMywgMjI1LCAxNDgsIDI5LCAzLCAyMjUsIDExNSwgMjksIDMsIDIyNSwgMTM0LCAyOSwgMywgMjI1LCAxNDcsIAorICAgIDI5LCAzLCAyMjUsIDEzNiwgMjksIDMsIDIyNSwgMTM3LCAyOSwgMywgMjI1LCAxMjIsIDI5LCAzLCAyMjUsIDExMSwgMjksIAorICAgIDMsIDIxNSwgMTg0LCAyOSwgMywgMjE1LCAxNjQsIDI5LCAzLCAyMTUsIDE2OCwgMjksIDMsIDIxNSwgMTgzLCAyOSwgMywgCisgICAgMjE1LCAxNzgsIDI5LCAzLCAyMTUsIDE3OSwgMjksIDMsIDIxNSwgMTY3LCAyOSwgMywgMjE1LCAxNjIsIDI5LCAzLCAyMTUsIAorICAgIDM5LCAyOSwgMywgMjE1LCAzMSwgMjksIDMsIDIxNSwgMzUsIDI5LCAzLCAyMTUsIDM4LCAyOSwgMywgMjE1LCAzNiwgMjksIAorICAgIDMsIDIxNSwgMzcsIDI5LCAzLCAyMTUsIDMzLCAyOSwgMywgMjE1LCAzMiwgMjksIDMsIDI0NCwgMTk3LCAyOSwgMywgMjQzLCAKKyAgICAyMzUsIDI5LCAzLCAyNDQsIDEyMiwgMjksIDMsIDI0NCwgMTk2LCAyOSwgMywgMjQ0LCAxNDgsIDI5LCAzLCAyNDQsIDE1NSwgCisgICAgMjksIDMsIDI0NCwgNDQsIDI5LCAzLCAyNDMsIDIxNCwgMjksIDMsIDE5MCwgMjksIDMsIDIyNCwgMTUxLCAyOSwgMywgMjI1LCAKKyAgICAxMDksIDI5LCAzLCAyMjYsIDkwLCAyOSwgMywgMjI1LCAyMTIsIDI5LCAzLCAyMjUsIDIyMiwgMjksIDMsIDIyNSwgMTcsIAorICAgIDI5LCAzLCAyMjQsIDExNSwgMjksIDMsIDIyMiwgMTAwLCAyOSwgMywgMjMwLCAzMiwgMjksIDMsIDI0MywgMjA4LCAyOSwgCisgICAgMzgsIDI0MywgNTQsIDIyLCAyNSwgMjMzLCAyNCwgNzgsIDI5LCAzOCwgMjUsIDIzMywgMjQsIDc4LCAyOSwgMzgsIDI0MywgCisgICAgNTQsIDc4LCAyOSwgMjIxLCAxNzQsIDc4LCAyOSwgMjExLCAyMDgsIDI5LCAyNDMsIDIzMCwgMjE4LCAxMzAsIDI5LCAyNDksIAorICAgIDIyMCwgMjksIDIyMCwgMTUxLCAyOSwgMjQ5LCAyMjcsIDI5LCAyMjQsIDIwMCwgMjQ5LCAyMjcsIDI5LCAyMjQsIDE0LCA3OCwgCisgICAgMjksIDIyNiwgMTYsIDIyMCwgMTM4LCAyOSwgMjEsIDExMCwgMjksIDIxLCAxMDUsIDI5LCAyMSwgMTU4LCAyOSwgMjEsIAorICAgIDE2MSwgMjksIDIxLCAxODksIDI5LCAyMSwgMTk0LCAyOSwgMjEsIDE5OCwgMjksIDIxLCAxOTUsIDI5LCAyMSwgMjAwLCAyOSwgCisgICAgNTQsIDIxNiwgMjQ4LCAyOSwgNTQsIDIxNSwgNzMsIDI5LCA1NCwgMjE2LCAxNjMsIDI5LCA1NCwgMjQ0LCAxNiwgMjksIDU0LCAKKyAgICAyNDQsIDExNSwgMjksIDU0LCAyMTksIDExMiwgMjksIDU0LCAyMjAsIDExNywgMjksIDU0LCAyNDUsIDE4NSwgMjksIDU0LCAKKyAgICAyMjgsIDE5NiwgMjksIDU0LCAyNDAsIDIxMSwgMjksIDU0LCAyMTYsIDI0OSwgMjE2LCAxNDgsIDI5LCAzLCAyMjEsIDE3OCwgCisgICAgMjMwLCA0MywgMjksIDMsIDIzMCwgMzksIDI5LCAzLCAyMzAsIDQwLCAyOSwgMywgMjMwLCA0MSwgMjksIDMsIDIyMSwgMTc4LCAKKyAgICAyNTEsIDg0LCAyOSwgMywgMjUxLCA4MSwgMjksIDMsIDI1MSwgODIsIDI5LCAzLCAyNTEsIDgzLCAyOSwgMywgMjIxLCAxNzgsIAorICAgIDI0MywgMjE0LCAyOSwgMywgMjQzLCAyMTAsIDI5LCAzLCAyNDMsIDIxMSwgMjksIDMsIDI0MywgMjEyLCAyOSwgMywgMjIxLCAKKyAgICAxNzgsIDIyNCwgMTE1LCAyOSwgMywgMjI0LCAxMTEsIDI5LCAzLCAyMjQsIDExMiwgMjksIDMsIDIyNCwgMTEzLCAyOSwgCisgICAgMjE2LCAzMiwgMTY0LCAyMTAsIDI0NywgMjksIDIxNiwgMzIsIDE2NCwgMjQ4LCA0MiwgMjksIDIxNiwgMzIsIDE2NCwgMjIyLCAKKyAgICAyMzksIDI5LCAyMTYsIDMyLCAxNjQsIDIxOSwgMjUyLCAyMjIsIDIzOSwgMjksIDIxNiwgMzIsIDE2NCwgMjQ3LCAyMzYsIAorICAgIDI5LCAyMTYsIDMyLCAxNjQsIDIzNCwgMTY1LCAyOSwgMjE2LCAzMiwgMTY0LCAyNTAsIDk1LCAyOSwgMjE2LCAzMiwgMTY0LCAKKyAgICAyNDEsIDE3OCwgMjksIDIxNiwgMzIsIDE2NCwgMjQ4LCA0MSwgMjksIDIxNiwgMzIsIDE2NCwgMjMzLCAxOTUsIDE2OSwgMSwgCisgICAgNjEsIDE2OSwgMSwgNzUsIDE2OSwgMSwgNzMsIDE2OSwgMSwgNzYsIDE2OSwgMSwgNzAsIDE2OSwgMSwgMjE0LCAxMDUsIAorICAgIDE2OSwgMSwgMjQzLCAxMzYsIDE2OSwgMSwgMTc2LCAxNjksIDEsIDI0MywgNjMsIDE2OSwgMSwgMjQyLCAyMTUsIDE2OSwgMSwgCisgICAgMjQyLCAxNzUsIDE2OSwgMSwgMjQyLCAxMTQsIDE2OSwgMSwgMjQyLCA4MCwgMTY5LCAxLCAxNjIsIDE2OSwgMSwgMjQxLCAKKyAgICAyMzksIDE2OSwgMSwgMjQxLCAxODEsIDE2OSwgMSwgMjQxLCA2OSwgMTY5LCAxLCAyNDAsIDIyMywgMTY5LCAxLCAyNDAsIAorICAgIDIwMiwgMTY5LCAxLCAyMzMsIDEzNiwgMTY5LCAxLCAyMzMsIDU5LCAxNjksIDEsIDIzMiwgMjQyLCAxNjksIDEsIDIzMiwgCisgICAgMTU3LCAxNjksIDEsIDIzMiwgOTksIDE2OSwgMSwgMjMyLCA3MiwgMTY5LCAxLCAxODUsIDE2OSwgMSwgMjMxLCA5MiwgMTY5LCAKKyAgICAxLCAyMzAsIDIzMSwgMTY5LCAxLCAyMzAsIDE2MiwgMTY5LCAxLCAyMzAsIDEwMywgMTY5LCAxLCAxOTcsIDE2OSwgMSwgCisgICAgMjQxLCA5MSwgMTY5LCAxLCAyMjksIDIxNCwgMTY5LCAxLCAyMjksIDEwOCwgMTY5LCAxLCAyMjgsIDIzNCwgMTY5LCAxLCAKKyAgICAyMjgsIDc1LCAxNjksIDEsIDIyNywgMjM4LCAxNjksIDEsIDIyNywgMTc3LCAxNjksIDEsIDIyNCwgMzAsIDE2OSwgMSwgCisgICAgMjI0LCAxNywgMTY5LCAxLCAyMjQsIDEwLCAxNjksIDEsIDIyNCwgMiwgMTY5LCAxLCAyMjMsIDI0NywgMTY5LCAxLCAyMjMsIAorICAgIDI0NSwgMTY5LCAxLCAyMDYsIDE2OSwgMSwgMjIyLCA5MiwgMTY5LCAxLCAyMjEsIDE4MiwgMTY5LCAxLCAyMTksIDE5MiwgCisgICAgMTY5LCAxLCAyMTksIDU5LCAxNjksIDEsIDIxOCwgODQsIDE2OSwgMSwgMjE4LCAzLCAxNjksIDEsIDI0OCwgMjIyLCAxNjksIAorICAgIDEsIDIxNywgMTA2LCAxNjksIDEsIDI0OCwgOTEsIDE2OSwgMSwgMjE3LCAyMywgMTY5LCAxLCAyNDgsIDQsIDE2OSwgMSwgCisgICAgMjE2LCAxMTgsIDE2OSwgMSwgMjQ3LCAxNDYsIDE2OSwgMSwgMjQ2LCA3OSwgMTY5LCAxLCAyNDYsIDUxLCAxNjksIDEsIAorICAgIDI0NywgMTU3LCAxNjksIDEsIDIxNiwgNjAsIDE2OSwgMSwgMjE2LCA1OSwgMTY5LCAxLCAyMTYsIDQ4LCAxNjksIDEsIDIxNiwgCisgICAgNDcsIDE2OSwgMSwgMjE2LCA0NiwgMTY5LCAxLCAyMTYsIDQ1LCAxNjksIDEsIDIxNSwgMTg0LCAxNjksIDEsIDIxNSwgMTc5LCAKKyAgICAxNjksIDEsIDIxNSwgMTY4LCAxNjksIDEsIDIxNSwgMTY3LCAxNjksIDEsIDIxNSwgMTY0LCAxNjksIDEsIDIxNSwgMTYzLCAKKyAgICAxNjksIDEsIDIxMiwgNjUsIDE2OSwgMSwgMjEyLCAyMiwgMTY5LCAxLCAyMTEsIDI1MCwgMTY5LCAxLCAyMTEsIDIyNywgCisgICAgMTY5LCAxLCAyMTEsIDE5NSwgMTY5LCAxLCAyMTEsIDE4MywgMTY5LCAxLCAxOTEsIDE2OSwgMSwgMjExLCA0NywgMTY5LCAxLCAKKyAgICAyMTEsIDgsIDE2OSwgMSwgMjEwLCAyNDQsIDE2OSwgMSwgMjEwLCAyMTIsIDE2OSwgMSwgMjEwLCAxNzcsIDE4LCAxOSwgCisgICAgMjQwLCAxNjksIDE4LCAxOSwgNzUsIDE4LCAxOSwgMjU1LCAzOCwgMTgsIDE5LCA3MywgMTgsIDE5LCAyMzYsIDM0LCAxOCwgCisgICAgMTksIDc2LCAxOCwgMTksIDIyNiwgMTg0LCAxOCwgMTksIDIxMSwgMTE2LCAyMjYsIDE4NCwgMTgsIDE5LCA3MiwgMjQ1LCAKKyAgICAyMTAsIDE4LCAxOSwgNzIsIDczLCAxOCwgMTksIDYxLCAxOCwgMTksIDI1NSwgNzQsIDE4LCAxOSwgMjEyLCAyMiwgMTgsIAorICAgIDE5LCAxNTksIDIxMiwgMjIsIDE4LCAxOSwgMjExLCAyNTAsIDE4LCAxOSwgMTU5LCAyMTEsIDI1MCwgMTgsIDE5LCAyMTEsIAorICAgIDI0MiwgMTgsIDE5LCAxNTksIDIxMSwgMjQyLCAxOCwgMTksIDIxMSwgMjI3LCAxOCwgMTksIDE1OSwgMjExLCAyMjcsIDE4LCAKKyAgICAxOSwgMjExLCAyMTUsIDE4LCAxOSwgMTU5LCAyMTEsIDIxNSwgMTgsIDE5LCAyMjksIDE5MSwgMjExLCAyMTUsIDE4LCAxOSwgCisgICAgMjEyLCA2NSwgMTgsIDE5LCAxNTksIDIxMiwgNjUsIDE4LCAxOSwgMjEyLCA2NCwgMTgsIDE5LCAxNTksIDIxMiwgNjQsIDE4LCAKKyAgICAxOSwgMjI5LCAxOTEsIDIxMiwgNjQsIDE4LCAxOSwgMjU0LCAyMDIsIDE4LCAxOSwgMjExLCAxMTYsIDIxMiwgOTgsIDE4LCAKKyAgICAxOSwgMjQyLCAxODEsIDIxOCwgMTMwLCAxOCwgMTksIDQwLCAxNDIsIDE4LCAxOSwgNDAsIDI0MiwgMTM3LCAxOCwgMTksIAorICAgIDQwLCAyNTEsIDE3NiwgMTYzLCAyMjIsIDIzNCwgMTgsIDE5LCA0MCwgMjE2LCAxNSwgMTYzLCAyMjIsIDIzNCwgMTgsIDE5LCAKKyAgICA0MCwgNDQsIDE2MywgMjIyLCAyMzQsIDE4LCAxOSwgNDAsIDIyMiwgMjM0LCAxOCwgMTksIDQwLCA1MiwgMTQyLCAxOCwgMTksIAorICAgIDQwLCA1MiwgMjE5LCAyNTIsIDY3LCAyMTgsIDkxLCAxOCwgMTksIDQwLCAyMzAsIDIyNSwgMjQ3LCAxMjEsIDE4LCAxOSwgCisgICAgNDAsIDIxOSwgMjUyLCAyMDMsIDkxLCAxOCwgMTksIDQwLCAyMjUsIDIzLCAxOCwgMTksIDQwLCAxMjQsIDIxNywgODgsIDE4LCAKKyAgICAxOSwgMjQ1LCAxNTEsIDE4LCAxOSwgMjM2LCAwLCAxOCwgMTksIDIyNiwgMTk3LCAxOCwgMTksIDI1NCwgMTI0LCAxOCwgMTksIAorICAgIDIyNSwgMjIyLCAxOCwgMTksIDIyNiwgODgsIDE4LCAxOSwgMjI1LCAxMDksIDE4LCAxOSwgMjI1LCA3MiwgMTgsIDE5LCAKKyAgICAyMjUsIDE3LCAxOCwgMTksIDIyNCwgMjUwLCAxOCwgMTksIDIxMSwgMTE2LCAyMjQsIDI1MCwgMTgsIDE5LCA3MiwgMjQxLCAKKyAgICAyMjEsIDE4LCAxOSwgNzIsIDI0MSwgMTgxLCAxOCwgMTksIDE5MCwgMTgsIDE5LCAyMjYsIDkwLCAxOCwgMTksIDIyNCwgCisgICAgMTEzLCAxOCwgMTksIDE1OSwgMjI0LCAxMTMsIDE4LCAxOSwgMjI0LCAxMTEsIDE4LCAxOSwgMTU5LCAyMjQsIDExMSwgMTgsIAorICAgIDE5LCAyMjQsIDExMCwgMTgsIDE5LCAxNTksIDIyNCwgMTEwLCAxOCwgMTksIDIyNCwgMTA4LCAxOCwgMTksIDE1OSwgMjI0LCAKKyAgICAxMDgsIDE4LCAxOSwgMjI0LCAxMDcsIDE4LCAxOSwgMTU5LCAyMjQsIDEwNywgMTgsIDE5LCAyMjQsIDExNSwgMTgsIDE5LCAKKyAgICAxNTksIDIyNCwgMTE1LCAxOCwgMTksIDIyNCwgMTE0LCAxOCwgMTksIDE1OSwgMjI0LCAxMTQsIDE4LCAxOSwgMjExLCAxMTYsIAorICAgIDIyNCwgMTE0LCAxOCwgMTksIDIyNiwgMTA2LCAxOCwgMTksIDE1OSwgMjI2LCAxMDYsIDE4LCAxOSwgNzIsIDI0MiwgNjEsIAorICAgIDE4LCAxOSwgMjE3LCAyMywgMTgsIDE5LCAyMTcsIDEwMCwgMTgsIDE5LCAyMTYsIDExOCwgMTgsIDE5LCAyMTYsIDEwNCwgCisgICAgMTgsIDE5LCAxMTEsIDE4LCAxOSwgMjE2LCAxOCwgMTgsIDE5LCAyMTEsIDExNiwgMjE2LCAxOCwgMTgsIDE5LCA3MiwgMjQ4LCAKKyAgICA3OCwgMTgsIDE5LCA3MiwgMjQ4LCA0LCAxOCwgMTksIDIxNywgMTA2LCAxOCwgMTksIDIxNywgMTAyLCAxOCwgMTksIDIxNSwgCisgICAgNzgsIDE4LCAxOSwgMTU5LCAyMTUsIDc4LCAxOCwgMTksIDIxNSwgNjIsIDE4LCAxOSwgMTU5LCAyMTUsIDYyLCAxOCwgMTksIAorICAgIDIxNSwgNjEsIDE4LCAxOSwgMTU5LCAyMTUsIDYxLCAxOCwgMTksIDEwNSwgMTgsIDE5LCAxNTksIDEwNSwgMTgsIDE5LCAKKyAgICAyMTUsIDU0LCAxOCwgMTksIDE1OSwgMjE1LCA1NCwgMTgsIDE5LCAyMTUsIDgwLCAxOCwgMTksIDE1OSwgMjE1LCA4MCwgMTgsIAorICAgIDE5LCAyMTUsIDc5LCAxOCwgMTksIDE1OSwgMjE1LCA3OSwgMTgsIDE5LCAyMjksIDE5MSwgMjE1LCA3OSwgMTgsIDE5LCAKKyAgICAyMTcsIDE1MywgMTgsIDE5LCAyMTUsIDE1MiwgMTgsIDE5LCAyMTUsIDEzNiwgMTgsIDE5LCAyMTUsIDEzNCwgMTgsIDE5LCAKKyAgICAyMTUsIDE1NywgMTgsIDE5LCAyMzQsIDE4MywgMTgsIDE5LCAyMzUsIDgsIDE4LCAxOSwgMjM0LCA5MywgMTgsIDE5LCAyMzQsIAorICAgIDg0LCAxOCwgMTksIDIzNCwgMjksIDE4LCAxOSwgMjM0LCAxMSwgMTgsIDE5LCAyMTEsIDExNiwgMjM0LCAxMSwgMTgsIDE5LCAKKyAgICAxNzYsIDE4LCAxOSwgMjM1LCAxMSwgMTgsIDE5LCAyMzMsIDE3OSwgMTgsIDE5LCAxNTksIDIzMywgMTc5LCAxOCwgMTksIAorICAgIDIzMywgMTc3LCAxOCwgMTksIDE1OSwgMjMzLCAxNzcsIDE4LCAxOSwgMjMzLCAxNzYsIDE4LCAxOSwgMTU5LCAyMzMsIDE3NiwgCisgICAgMTgsIDE5LCAyMzMsIDE3NSwgMTgsIDE5LCAxNTksIDIzMywgMTc1LCAxOCwgMTksIDIzMywgMTc0LCAxOCwgMTksIDE1OSwgCisgICAgMjMzLCAxNzQsIDE4LCAxOSwgMjMzLCAxODMsIDE4LCAxOSwgMTU5LCAyMzMsIDE4MywgMTgsIDE5LCAyMzMsIDE4MiwgMTgsIAorICAgIDE5LCAxNTksIDIzMywgMTgyLCAxOCwgMTksIDIyOSwgMTkxLCAyMzMsIDE4MiwgMTgsIDE5LCAyMzUsIDI0LCAxOCwgMTksIAorICAgIDIzMywgMTg0LCAxOCwgMTksIDIxOSwgMjgsIDIzNCwgMTc3LCAxOCwgMTksIDIxOSwgMjgsIDIzNCwgODUsIDE4LCAxOSwgCisgICAgMjE5LCAyOCwgMjM0LCAyNCwgMTgsIDE5LCAyMTksIDI4LCAyMzQsIDI0OSwgMTgsIDE5LCAyNTAsIDE5MSwgMTgsIDE5LCAKKyAgICAyNTEsIDMyLCAxOCwgMTksIDI1MCwgNTIsIDE4LCAxOSwgMjUwLCA0MiwgMTgsIDE5LCAyNDksIDIzOSwgMTgsIDE5LCAyNDksIAorICAgIDE3NSwgMTgsIDE5LCAyMTEsIDExNiwgMjQ5LCAxNzUsIDE4LCAxOSwgMjUxLCAzNCwgMTgsIDE5LCAyNTEsIDMzLCAxOCwgCisgICAgMTksIDI0OSwgODAsIDE4LCAxOSwgMTU5LCAyNDksIDgwLCAxOCwgMTksIDI0OSwgNzgsIDE4LCAxOSwgMTU5LCAyNDksIDc4LCAKKyAgICAxOCwgMTksIDI0OSwgNzcsIDE4LCAxOSwgMTU5LCAyNDksIDc3LCAxOCwgMTksIDI0OSwgNzYsIDE4LCAxOSwgMTU5LCAyNDksIAorICAgIDc2LCAxOCwgMTksIDI0OSwgNzUsIDE4LCAxOSwgMTU5LCAyNDksIDc1LCAxOCwgMTksIDI0OSwgODIsIDE4LCAxOSwgMTU5LCAKKyAgICAyNDksIDgyLCAxOCwgMTksIDI0OSwgODEsIDE4LCAxOSwgMTU5LCAyNDksIDgxLCAxOCwgMTksIDIyOSwgMTkxLCAyNDksIAorICAgIDgxLCAxOCwgMTksIDI1MSwgNjcsIDE4LCAxOSwgMjIxLCAyMTAsIDIxNiwgMjExLCAxOCwgMTksIDIzMSwgOTIsIDE4LCAxOSwgCisgICAgMjMxLCAyMzcsIDE4LCAxOSwgMjMwLCAyMzEsIDE4LCAxOSwgMjMwLCAyMDIsIDE4LCAxOSwgMjMwLCAxNjIsIDE4LCAxOSwgCisgICAgMjMwLCAxMzMsIDE4LCAxOSwgMjExLCAxMTYsIDIzMCwgMTMzLCAxOCwgMTksIDE4NSwgMTgsIDE5LCAyMzEsIDIzOCwgMTgsIAorICAgIDE5LCAyMzAsIDQxLCAxOCwgMTksIDE1OSwgMjMwLCA0MSwgMTgsIDE5LCAyMzAsIDM5LCAxOCwgMTksIDE1OSwgMjMwLCAzOSwgCisgICAgMTgsIDE5LCAyMzAsIDM4LCAxOCwgMTksIDE1OSwgMjMwLCAzOCwgMTgsIDE5LCAyMzAsIDM3LCAxOCwgMTksIDE1OSwgMjMwLCAKKyAgICAzNywgMTgsIDE5LCAyMzAsIDM2LCAxOCwgMTksIDE1OSwgMjMwLCAzNiwgMTgsIDE5LCAyMzAsIDQzLCAxOCwgMTksIDE1OSwgCisgICAgMjMwLCA0MywgMTgsIDE5LCAyMzAsIDQyLCAxOCwgMTksIDE1OSwgMjMwLCA0MiwgMTgsIDE5LCAyMjksIDE5MSwgMjMwLCAKKyAgICA0MiwgMTgsIDE5LCAxOTMsIDE4LCAxOSwgMTU5LCAxOTMsIDE4LCAxOSwgMjMwLCAyMzUsIDE4LCAxOSwgMjUzLCAyMDYsIAorICAgIDE5MywgMTgsIDE5LCAyMjEsIDIxMCwgMTkzLCAxOCwgMTksIDIyOSwgMTA4LCAxOCwgMTksIDIyOSwgMjI1LCAxOCwgMTksIAorICAgIDIyOCwgMjM0LCAxOCwgMTksIDIyOCwgMjA5LCAxOCwgMTksIDIyOCwgNzUsIDE4LCAxOSwgMjI4LCA2NSwgMTgsIDE5LCAKKyAgICAyMTEsIDExNiwgMjI4LCA2NSwgMTgsIDE5LCAxOTcsIDE4LCAxOSwgMjI5LCAyMjYsIDE4LCAxOSwgMjI3LCAxNzMsIDE4LCAKKyAgICAxOSwgMTU5LCAyMjcsIDE3MywgMTgsIDE5LCAyMjcsIDE3NSwgMTgsIDE5LCAxNTksIDIyNywgMTc1LCAxOCwgMTksIDIyNywgCisgICAgMTc0LCAxOCwgMTksIDE1OSwgMjI3LCAxNzQsIDE4LCAxOSwgMjI5LCAxOTEsIDIyNywgMTc0LCAxOCwgMTksIDIzMCwgMjYsIAorICAgIDE4LCAxOSwgNzIsIDIyOSwgODAsIDE4LCAxOSwgMjI4LCAyMzksIDE4LCAxOSwgMjMzLCA1OSwgMTgsIDE5LCAyMzMsIDEzNCwgCisgICAgMTgsIDE5LCAyMzIsIDI0MiwgMTgsIDE5LCAyMzIsIDIyOCwgMTgsIDE5LCAyMzIsIDE1NywgMTgsIDE5LCAyMzIsIDEyOCwgCisgICAgMTgsIDE5LCAyMTEsIDExNiwgMjMyLCAxMjgsIDE4LCAxOSwgMjMzLCAxMzYsIDE4LCAxOSwgMjMzLCAxMzUsIDE4LCAxOSwgCisgICAgMjMyLCA2OSwgMTgsIDE5LCAxNTksIDIzMiwgNjksIDE4LCAxOSwgMjMyLCA2OCwgMTgsIDE5LCAxNTksIDIzMiwgNjgsIDE4LCAKKyAgICAxOSwgMjMyLCA2NywgMTgsIDE5LCAxNTksIDIzMiwgNjcsIDE4LCAxOSwgMjMyLCA2NiwgMTgsIDE5LCAxNTksIDIzMiwgNjYsIAorICAgIDE4LCAxOSwgMjMyLCA2NSwgMTgsIDE5LCAxNTksIDIzMiwgNjUsIDE4LCAxOSwgMjMyLCA3MSwgMTgsIDE5LCAxNTksIDIzMiwgCisgICAgNzEsIDE4LCAxOSwgMjMyLCA3MCwgMTgsIDE5LCAxNTksIDIzMiwgNzAsIDE4LCAxOSwgMTU2LCAxOCwgMTksIDE1OSwgMTU2LCAKKyAgICAxOCwgMTksIDE0NywgMTU2LCAxOCwgMTksIDIyMSwgMTgyLCAxOCwgMTksIDIyMiwgMzAsIDE4LCAxOSwgMjE5LCAxOTIsIAorICAgIDE4LCAxOSwgMjE5LCAxNzYsIDE4LCAxOSwgMjE5LCA1OSwgMTgsIDE5LCAyMTksIDQxLCAxOCwgMTksIDIxMSwgMTE2LCAKKyAgICAyMTksIDQxLCAxOCwgMTksIDIwNiwgMTgsIDE5LCAyMjIsIDMyLCAxOCwgMTksIDIxNywgMjUwLCAxOCwgMTksIDE1OSwgCisgICAgMjE3LCAyNTAsIDE4LCAxOSwgMjE3LCAyNDQsIDE4LCAxOSwgMTU5LCAyMTcsIDI0NCwgMTgsIDE5LCAyMTcsIDI0MywgMTgsIAorICAgIDE5LCAxNTksIDIxNywgMjQzLCAxOCwgMTksIDIxNywgMjM5LCAxOCwgMTksIDE1OSwgMjE3LCAyMzksIDE4LCAxOSwgMjE3LCAKKyAgICAyMzgsIDE4LCAxOSwgMTU5LCAyMTcsIDIzOCwgMTgsIDE5LCAyMTcsIDI1NCwgMTgsIDE5LCAxNTksIDIxNywgMjU0LCAxOCwgCisgICAgMTksIDIxNywgMjUzLCAxOCwgMTksIDE1OSwgMjE3LCAyNTMsIDE4LCAxOSwgMjI5LCAxOTEsIDIxNywgMjUzLCAxOCwgMTksIAorICAgIDIyMiwgOTIsIDE4LCAxOSwgMjUzLCAyMDYsIDIyMiwgOTIsIDE4LCAxOSwgMjE3LCAyNTUsIDE4LCAxOSwgMjUxLCAyMTksIAorICAgIDIyMiwgOTIsIDE4LCAxOSwgMjMwLCAxMjgsIDIxOSwgMTA5LCAxOCwgMTksIDIyOSwgMTkxLCAyMTksIDEwMCwgMTgsIDE5LCAKKyAgICAyMjksIDE5MSwgMjIyLCA5MCwgMTgsIDE5LCAyMjksIDE5MSwgMjE4LCAyMzYsIDE4LCAxOSwgMjI5LCAxOTEsIDIxOCwgODcsIAorICAgIDE4LCAxOSwgMjI5LCAxOTEsIDIxOSwgOTksIDE4LCAxOSwgMjI5LCAxOTEsIDIyMSwgMTg1LCAxOCwgMTksIDIyMCwgNjQsIAorICAgIDE4LCAxOSwgMjIwLCAzMywgMTgsIDE5LCAyMjAsIDI4LCAxOCwgMTksIDIyMCwgOCwgMTgsIDE5LCAyMjAsIDIsIDE4LCAxOSwgCisgICAgMjIwLCAxMDMsIDE4LCAxOSwgMjIwLCA5OSwgMTgsIDE5LCAyMTksIDIwNywgMTgsIDE5LCAxNTksIDIxOSwgMjA3LCAxOCwgCisgICAgMTksIDIxOSwgMjA2LCAxOCwgMTksIDE1OSwgMjE5LCAyMDYsIDE4LCAxOSwgMjE5LCAyMDUsIDE4LCAxOSwgMTU5LCAyMTksIAorICAgIDIwNSwgMTgsIDE5LCAyMTksIDIwNCwgMTgsIDE5LCAxNTksIDIxOSwgMjA0LCAxOCwgMTksIDIxOSwgMjAzLCAxOCwgMTksIAorICAgIDE1OSwgMjE5LCAyMDMsIDE4LCAxOSwgMjE5LCAyMDksIDE4LCAxOSwgMTU5LCAyMTksIDIwOSwgMTgsIDE5LCAyMTksIDIwOCwgCisgICAgMTgsIDE5LCAxNTksIDIxOSwgMjA4LCAxOCwgMTksIDIyMCwgMTA1LCAxOCwgMTksIDIxMSwgNDcsIDE4LCAxOSwgMjExLCAKKyAgICAxMDEsIDE4LCAxOSwgMjExLCA4LCAxOCwgMTksIDIxMCwgMjU1LCAxOCwgMTksIDIxMCwgMjQ0LCAxOCwgMTksIDIxMCwgCisgICAgMjI5LCAxOCwgMTksIDIxMSwgMTE2LCAyMTAsIDIyOSwgMTgsIDE5LCAxOTEsIDE4LCAxOSwgMjExLCAxMDMsIDE4LCAxOSwgCisgICAgMjEwLCAxNzQsIDE4LCAxOSwgMTU5LCAyMTAsIDE3NCwgMTgsIDE5LCAyMTAsIDE3MywgMTgsIDE5LCAxNTksIDIxMCwgMTczLCAKKyAgICAxOCwgMTksIDIxMCwgMTcyLCAxOCwgMTksIDE1OSwgMjEwLCAxNzIsIDE4LCAxOSwgMjEwLCAxNzEsIDE4LCAxOSwgMTU5LCAKKyAgICAyMTAsIDE3MSwgMTgsIDE5LCAyMTAsIDE3MCwgMTgsIDE5LCAxNTksIDIxMCwgMTcwLCAxOCwgMTksIDIxMCwgMTc2LCAxOCwgCisgICAgMTksIDE1OSwgMjEwLCAxNzYsIDE4LCAxOSwgMjEwLCAxNzUsIDE4LCAxOSwgMTU5LCAyMTAsIDE3NSwgMTgsIDE5LCAyMjksIAorICAgIDE5MSwgMjEwLCAxNzUsIDE4LCAxOSwgMjExLCAxMTcsIDE4LCAxOSwgMjUyLCA1LCAyMTEsIDExNywgMTgsIDE5LCAxNTksIAorICAgIDIxMSwgMTE3LCAxOCwgMTksIDIyMSwgMjEwLCAyMTEsIDgsIDE4LCAxOSwgMjIzLCAxMjksIDE4LCAxOSwgMjIzLCAyMjQsIAorICAgIDIyMywgMTI5LCAxOCwgMTksIDE1OSwgMjMzLCA1OSwgMTgsIDE5LCAyMjMsIDE4NCwgMTgsIDE5LCAyMjMsIDM2LCAxOCwgCisgICAgMTksIDIyMiwgMjQwLCAxOCwgMTksIDIyMiwgMjEyLCAxOCwgMTksIDIyMiwgMTk4LCAxOCwgMTksIDE1OSwgMjMyLCAxNTcsIAorICAgIDE4LCAxOSwgMjA1LCAxOCwgMTksIDIyMywgMTg1LCAxOCwgMTksIDE1OSwgMjMzLCAxMzYsIDE4LCAxOSwgMjIyLCAxMDksIAorICAgIDE4LCAxOSwgMTU5LCAyMjIsIDEwOSwgMTgsIDE5LCAxNTMsIDE4LCAxOSwgMTU5LCAxNTMsIDE4LCAxOSwgMTQ3LCAxNTMsIAorICAgIDE4LCAxOSwgMjQ0LCAxNTUsIDE4LCAxOSwgMjQ0LCAxOTQsIDE4LCAxOSwgMjQ0LCAxMjIsIDE4LCAxOSwgMjQ0LCAxMDksIAorICAgIDE4LCAxOSwgMjQ0LCA0NCwgMTgsIDE5LCAyNDQsIDM1LCAxOCwgMTksIDI0NCwgMTk3LCAxOCwgMTksIDI0NCwgMTk2LCAxOCwgCisgICAgMTksIDI0MywgMjEzLCAxOCwgMTksIDE1OSwgMjQzLCAyMTMsIDE4LCAxOSwgMjQ1LCA3LCAxOCwgMTksIDIxNiwgMTk2LCAKKyAgICAxOCwgMTksIDIzMCwgMjQsIDIxNiwgMTk2LCAxOCwgMTksIDIxNiwgMTc2LCAxOCwgMTksIDIzMCwgMjQsIDIxNiwgMTc2LCAKKyAgICAxOCwgMTksIDIxNiwgMTcyLCAxOCwgMTksIDIzMCwgMjQsIDIxNiwgMTcyLCAxOCwgMTksIDIxNiwgMTU3LCAxOCwgMTksIAorICAgIDIxNiwgMTU0LCAxOCwgMTksIDIxNiwgMjA5LCAxOCwgMTksIDIxNiwgMjA4LCAxOCwgMTksIDIxNiwgMTI4LCAxOCwgMTksIAorICAgIDE1OSwgMjE2LCAxMjgsIDE4LCAxOSwgMjE2LCAyMTEsIDE4LCAxOSwgMjE1LCAxNDMsIDE4LCAxOSwgMjE1LCAxNDEsIDE4LCAKKyAgICAxOSwgMjE1LCAxNDAsIDE4LCAxOSwgMjE1LCAxNDUsIDE4LCAxOSwgMjE1LCAxNDYsIDE4LCAxOSwgMjE1LCA1MiwgMTgsIAorICAgIDE5LCAyMTUsIDUxLCAxOCwgMTksIDIxNSwgNTAsIDE4LCAxOSwgMjE1LCA1MywgMTgsIDE5LCAyMjcsIDE5NCwgMjQxLCAKKyAgICAyMzksIDE4LCAxOSwgMjI3LCAxOTQsIDI0MSwgMTgxLCAxOCwgMTksIDIyNywgMTk0LCAyNDEsIDE2MiwgMTgsIDE5LCAyMjcsIAorICAgIDE5NCwgMjQxLCA2OSwgMTgsIDE5LCAyMjcsIDE5NCwgMjQxLCA1NCwgMTgsIDE5LCAyMjcsIDE5NCwgMTYyLCAxOCwgMTksIAorICAgIDIyNywgMTk0LCAyNDIsIDQ3LCAxOCwgMTksIDIyNywgMTk0LCAyNDIsIDYxLCAxOCwgMTksIDIyNywgMTkzLCAyNDIsIDYxLCAKKyAgICAxOCwgMTksIDI0MSwgMTU1LCAxOCwgMTksIDIyNCwgODUsIDE4LCAxOSwgMjI0LCA1NCwgMTgsIDE5LCAyMjQsIDQ5LCAxOCwgCisgICAgMTksIDIyNCwgNDMsIDE4LCAxOSwgMjI0LCAzOCwgMTgsIDE5LCAyMjQsIDg5LCAxOCwgMTksIDIyNCwgODgsIDE4LCAxOSwgCisgICAgMjI0LCA5NywgMTgsIDE5LCAyMTYsIDU2LCAxOCwgMTksIDIxNiwgNTQsIDE4LCAxOSwgMjE2LCA1MywgMTgsIDE5LCAyMTYsIAorICAgIDU3LCAxOCwgMTksIDE1OSwgMjIzLCAxMjksIDE4LCAxOSwgMTU5LCAyMjMsIDM2LCAxOCwgMTksIDE1OSwgMjIyLCAyMTIsIAorICAgIDE4LCAxOSwgMTU5LCAyMDUsIDE4LCAxOSwgMjI5LCA3NiwgMTgsIDE5LCAyMjksIDI4LCAxOCwgMTksIDIyOSwgMjQsIDE4LCAKKyAgICAxOSwgMjI5LCA1LCAxOCwgMTksIDIyOSwgMCwgMTgsIDE5LCAyMjksIDc4LCAxOCwgMTksIDIyOSwgNzcsIDE4LCAxOSwgCisgICAgMjI5LCA4MCwgMTgsIDE5LCAyMjgsIDEwNCwgMTgsIDE5LCAyMjEsIDIxMCwgMjIwLCA2NCwgMTgsIDE5LCAyMjEsIDIxMCwgCisgICAgMjIwLCAzMywgMTgsIDE5LCAyMjEsIDIxMCwgMjIwLCA4LCAxOCwgMTksIDIyMSwgMjEwLCAyMjAsIDEwMywgMTgsIDE5LCAKKyAgICAyMTEsIDIxMywgMjE2LCAxOTYsIDE4LCAxOSwgMjExLCAyMTMsIDIxNiwgMTc2LCAxOCwgMTksIDIxMSwgMjEzLCAyMTYsIAorICAgIDE1NywgMTgsIDE5LCAyMTEsIDIxMywgMjE2LCAyMDksIDE4LCAxOSwgMjExLCAyMTMsIDIxNiwgMjExLCAxOCwgMTksIDIzMiwgCisgICAgMjQ5LCAxOCwgMTksIDIzMiwgMjQ4LCAxOCwgMTksIDIzMiwgMjQ3LCAxOCwgMTksIDIzMiwgMjQ2LCAxOCwgMTksIDIzMiwgCisgICAgMjU1LCAxOCwgMTksIDIzMiwgMjU0LCAxOCwgMTksIDIzMywgMCwgMTgsIDE5LCAyMTYsIDIxMCwgMjE2LCAxOTYsIDE4LCAKKyAgICAxOSwgMjE2LCAyMTAsIDIxNiwgMTc2LCAxOCwgMTksIDIxNiwgMjEwLCAyMTYsIDE3MiwgMTgsIDE5LCAyMTYsIDIxMCwgCisgICAgMjE2LCAxNTcsIDE4LCAxOSwgMjE2LCAyMTAsIDIxNiwgMTU0LCAxOCwgMTksIDIxNiwgMjEwLCAyMTYsIDIwOSwgMTgsIDE5LCAKKyAgICAyMTYsIDIxMCwgMjE2LCAyMDgsIDE4LCAxOSwgMjE2LCAyMTAsIDIxNiwgMjExLCAxOCwgMTksIDI1NCwgMTkwLCAyNTMsIAorICAgIDE1OSwgMTgsIDE5LCAyNTEsIDIxOSwgNzUsIDE4LCAxOSwgMjUxLCAyMTksIDczLCAxOCwgMTksIDI1MSwgMjE5LCA3NiwgCisgICAgMTgsIDE5LCAyNTEsIDIxOSwgNjEsIDE4LCAxOSwgMjUxLCAyMTksIDIxMiwgMjIsIDE4LCAxOSwgMjUxLCAyMTksIDIxMSwgCisgICAgMjUwLCAxOCwgMTksIDI1MSwgMjE5LCAyMTEsIDIyNywgMTgsIDE5LCAyNTEsIDIxOSwgMjEyLCA2NSwgMTgsIDE5LCAyNTEsIAorICAgIDIxOSwgMjI5LCAxMDgsIDE4LCAxOSwgMjUxLCAyMTksIDIyOCwgMjM0LCAxOCwgMTksIDI1MSwgMjE5LCAyMjgsIDc1LCAxOCwgCisgICAgMTksIDI1MSwgMjE5LCAxOTcsIDE4LCAxOSwgMjUxLCAyMTksIDIzNCwgMTgzLCAxOCwgMTksIDI1MSwgMjE5LCAyMzQsIDkzLCAKKyAgICAxOCwgMTksIDI1MSwgMjE5LCAyMzQsIDI5LCAxOCwgMTksIDI1MSwgMjE5LCAxNzYsIDE4LCAxOSwgMjIxLCAyMTAsIDI0MSwgCisgICAgMjM5LCAxOCwgMTksIDIyMSwgMjEwLCAyNDEsIDE4MSwgMTgsIDE5LCAyMjEsIDIxMCwgMjQxLCA2OSwgMTgsIDE5LCAyMjEsIAorICAgIDIxMCwgMTYyLCAxOCwgMTksIDcyLCAyNDIsIDIyMSwgMTgsIDE5LCA3MiwgMjQyLCAyMjUsIDE4LCAxOSwgNzIsIDI0MiwgCisgICAgMjM3LCAxOCwgMTksIDcyLCAyNDIsIDIzNiwgMTgsIDE5LCA3MiwgMjQyLCAyMjYsIDE4LCAxOSwgNzIsIDI0MiwgMjUwLCAKKyAgICAxOCwgMTksIDcyLCAyMjIsIDE0MSwgMTgsIDE5LCA3MiwgMjIyLCAyMTIsIDE4LCAxOSwgNzIsIDIyMywgMTI5LCAxOCwgMTksIAorICAgIDcyLCAyMjMsIDEwOSwgMTgsIDE5LCA3MiwgMjIzLCAzNiwgMTgsIDE5LCA3MiwgMjA1LCAxOCwgMTksIDcyLCAyMTEsIDE5NSwgCisgICAgMTgsIDE5LCA3MiwgMjExLCAyMjcsIDE4LCAxOSwgNzIsIDIxMiwgMjIsIDE4LCAxOSwgNzIsIDIxMiwgMTcsIDE4LCAxOSwgCisgICAgNzIsIDIxMSwgMjUwLCAxOCwgMTksIDcyLCAyMTIsIDY1LCAxOCwgMTksIDcyLCAyNDAsIDE5NSwgMTgsIDE5LCA3MiwgMjQwLCAKKyAgICAxOTYsIDE4LCAxOSwgNzIsIDI0MCwgMTk5LCAxOCwgMTksIDcyLCAyNDAsIDE5OCwgMTgsIDE5LCA3MiwgMjQwLCAxOTcsIAorICAgIDE4LCAxOSwgNzIsIDI0MCwgMjAxLCAxOCwgMTksIDcyLCAyMTYsIDEzNywgMTgsIDE5LCA3MiwgMjE2LCAxNTcsIDE4LCAxOSwgCisgICAgNzIsIDIxNiwgMTk2LCAxOCwgMTksIDcyLCAyMTYsIDE5NSwgMTgsIDE5LCA3MiwgMjE2LCAxNzYsIDE4LCAxOSwgNzIsIAorICAgIDIxNiwgMjA5LCAxOCwgMTksIDcyLCAyMTUsIDEyNCwgMTgsIDE5LCA3MiwgMjE1LCAxMzQsIDE4LCAxOSwgNzIsIDIxNSwgCisgICAgMTUyLCAxOCwgMTksIDcyLCAyMTUsIDE1MSwgMTgsIDE5LCA3MiwgMjE1LCAxMzYsIDE4LCAxOSwgNzIsIDIxNSwgMTU3LCAKKyAgICAxOCwgMTksIDcyLCAyMjQsIDE1MSwgMTgsIDE5LCA3MiwgMjI1LCAxNywgMTgsIDE5LCA3MiwgMjI1LCAyMjIsIDE4LCAxOSwgCisgICAgNzIsIDIyNSwgMjEyLCAxOCwgMTksIDcyLCAyMjUsIDEwOSwgMTgsIDE5LCA3MiwgMTkwLCAxOCwgMTksIDcyLCAyMjYsIAorICAgIDEwNiwgMTgsIDE5LCA3MiwgMjQyLCAxMTQsIDE4LCAxOSwgNzIsIDI0MiwgMTc1LCAxOCwgMTksIDcyLCAyNDMsIDYzLCAxOCwgCisgICAgMTksIDcyLCAyNDMsIDU2LCAxOCwgMTksIDcyLCAyNDIsIDIxNSwgMTgsIDE5LCA3MiwgMjQzLCAxMzYsIDE4LCAxOSwgNzIsIAorICAgIDIzNCwgMTAxLCAxOCwgMTksIDcyLCAyMzQsIDEwNiwgMTgsIDE5LCA3MiwgMjM0LCAxMjAsIDE4LCAxOSwgNzIsIDIzNCwgCisgICAgMTE5LCAxOCwgMTksIDcyLCAyMzQsIDExMywgMTgsIDE5LCA3MiwgMjM0LCAxMzMsIDE4LCAxOSwgNzIsIDIzNCwgNDIsIDE4LCAKKyAgICAxOSwgNzIsIDIzNCwgNDMsIDE4LCAxOSwgNzIsIDIzNCwgNDYsIDE4LCAxOSwgNzIsIDIzNCwgNDUsIDE4LCAxOSwgNzIsIAorICAgIDIzNCwgNDQsIDE4LCAxOSwgNzIsIDIzNCwgNDcsIDE4LCAxOSwgNzIsIDIzNCwgNDgsIDE4LCAxOSwgNzIsIDIyNywgMjM4LCAKKyAgICAxOCwgMTksIDcyLCAyMjgsIDc1LCAxOCwgMTksIDcyLCAyMjksIDEwOCwgMTgsIDE5LCA3MiwgMjI5LCAxMDQsIDE4LCAxOSwgCisgICAgNzIsIDIyOCwgMjM0LCAxOCwgMTksIDcyLCAxOTcsIDE4LCAxOSwgNzIsIDIzMCwgMTAzLCAxOCwgMTksIDcyLCAyMzAsIAorICAgIDE2MiwgMTgsIDE5LCA3MiwgMjMxLCA5MiwgMTgsIDE5LCA3MiwgMjMxLCA4MSwgMTgsIDE5LCA3MiwgMjMwLCAyMzEsIDE4LCAKKyAgICAxOSwgNzIsIDE4NSwgMTgsIDE5LCA3MiwgMjEwLCAyMTIsIDE4LCAxOSwgNzIsIDIxMCwgMjQ0LCAxOCwgMTksIDcyLCAyMTEsIAorICAgIDQ3LCAxOCwgMTksIDcyLCAyMTEsIDQ0LCAxOCwgMTksIDcyLCAyMTEsIDgsIDE4LCAxOSwgNzIsIDE5MSwgMTgsIDE5LCA3MiwgCisgICAgMjM1LCA1MiwgMTgsIDE5LCAyMjEsIDIxMCwgMjM1LCA1MiwgMTgsIDE5LCA3MiwgMjM1LCA2OSwgMTgsIDE5LCA3MiwgMjM1LCAKKyAgICAxMjcsIDE4LCAxOSwgNzIsIDIzNSwgMTI1LCAxOCwgMTksIDcyLCAyMzUsIDEwOSwgMTgsIDE5LCAyMjEsIDIxMCwgMjM1LCAKKyAgICAxMDksIDE4LCAxOSwgNzIsIDIzNSwgMTQyLCAxOCwgMTksIDcyLCAyMzUsIDgyLCAxOCwgMTksIDcyLCAyMzUsIDg2LCAxOCwgCisgICAgMTksIDcyLCAyMzUsIDk2LCAxOCwgMTksIDcyLCAyMzUsIDk1LCAxOCwgMTksIDcyLCAyMzUsIDk0LCAxOCwgMTksIDcyLCAKKyAgICAyMzUsIDk3LCAxOCwgMTksIDcyLCAyMzIsIDk5LCAxOCwgMTksIDcyLCAyMzIsIDE1NywgMTgsIDE5LCA3MiwgMjMzLCA1OSwgCisgICAgMTgsIDE5LCA3MiwgMjMzLCA1MSwgMTgsIDE5LCA3MiwgMjMyLCAyNDIsIDE4LCAxOSwgNzIsIDIzMywgMTM2LCAxOCwgMTksIAorICAgIDcyLCAyNDcsIDE1MCwgMTgsIDE5LCA3MiwgMjQ3LCAxNTEsIDE4LCAxOSwgNzIsIDI0NywgMTU2LCAxOCwgMTksIDcyLCAKKyAgICAyNDcsIDE1NSwgMTgsIDE5LCA3MiwgMjQ3LCAxNTIsIDE4LCAxOSwgNzIsIDI0NywgMTU3LCAxOCwgMTksIDcyLCAyMzIsIAorICAgIDI0NSwgMTgsIDE5LCA3MiwgMjMyLCAyNDcsIDE4LCAxOSwgNzIsIDIzMiwgMjUxLCAxOCwgMTksIDcyLCAyMzIsIDI1MCwgCisgICAgMTgsIDE5LCA3MiwgMjMyLCAyNDksIDE4LCAxOSwgNzIsIDIzMiwgMjU1LCAxOCwgMTksIDcyLCAyMTYsIDUxLCAxOCwgMTksIAorICAgIDcyLCAyMTYsIDUzLCAxOCwgMTksIDcyLCAyMTYsIDU2LCAxOCwgMTksIDcyLCAyMTYsIDU1LCAxOCwgMTksIDcyLCAyMTYsIAorICAgIDU0LCAxOCwgMTksIDcyLCAyMTYsIDU3LCAxOCwgMTksIDcyLCAyMTYsIDQ2LCAxOCwgMTksIDcyLCAyMTYsIDQ3LCAxOCwgCisgICAgMTksIDcyLCAyMTYsIDU5LCAxOCwgMTksIDcyLCAyMTYsIDU4LCAxOCwgMTksIDcyLCAyMTYsIDQ4LCAxOCwgMTksIDcyLCAKKyAgICAyMTYsIDYwLCAxOCwgMTksIDcyLCAyMTAsIDEzLCAxOCwgMTksIDcyLCAyMTAsIDIzLCAxOCwgMTksIDcyLCAyMTAsIDk0LCAKKyAgICAxOCwgMTksIDcyLCAyMTAsIDkyLCAxOCwgMTksIDcyLCAyMTAsIDQ0LCAxOCwgMTksIDcyLCAyMTAsIDExNiwgMTgsIDE5LCAKKyAgICA3MiwgMjEwLCAxNTksIDE4LCAxOSwgNzIsIDY1LCAyMTAsIDE1OSwgMTgsIDE5LCA3MiwgMjQ2LCAyOSwgMTgsIDE5LCA3MiwgCisgICAgMjQ2LCAzMCwgMTgsIDE5LCA3MiwgMjQ2LCAzNywgMTgsIDE5LCA3MiwgMjQ2LCAzNiwgMTgsIDE5LCA3MiwgMjQ2LCAzMiwgCisgICAgMTgsIDE5LCA3MiwgMjQ2LCAzOSwgMTgsIDE5LCA3MiwgMjE4LCA4NCwgMTgsIDE5LCA3MiwgMjE5LCA1OSwgMTgsIDE5LCAKKyAgICA3MiwgMjIxLCAxODIsIDE4LCAxOSwgNzIsIDIyMSwgMTcxLCAxOCwgMTksIDcyLCAyMTksIDE5MiwgMTgsIDE5LCA3MiwgCisgICAgMjA2LCAxOCwgMTksIDcyLCAyMTksIDIyNiwgMTgsIDE5LCA3MiwgMjIwLCA4LCAxOCwgMTksIDcyLCAyMjAsIDY0LCAxOCwgCisgICAgMTksIDcyLCAyMjAsIDYyLCAxOCwgMTksIDcyLCAyMjAsIDMzLCAxOCwgMTksIDcyLCAyMjAsIDEwMywgMTgsIDE5LCA3MiwgCisgICAgMjIwLCAxMDUsIDE4LCAxOSwgNzIsIDIxNSwgMTY0LCAxOCwgMTksIDcyLCAyMTUsIDE2NywgMTgsIDE5LCA3MiwgMjE1LCAKKyAgICAxNzksIDE4LCAxOSwgNzIsIDIxNSwgMTc4LCAxOCwgMTksIDcyLCAyMTUsIDE2OCwgMTgsIDE5LCA3MiwgMjE1LCAxODQsIAorICAgIDE4LCAxOSwgNzIsIDI1MCwgNzAsIDE4LCAxOSwgNzIsIDI1MCwgODcsIDE4LCAxOSwgNzIsIDI1MCwgMTMyLCAxOCwgMTksIAorICAgIDcyLCAyNTAsIDEyOSwgMTgsIDE5LCA3MiwgMjUwLCAxMTEsIDE4LCAxOSwgNzIsIDI1MCwgMTU4LCAxOCwgMTksIDcyLCAKKyAgICAyMTUsIDEyNywgMTgsIDE5LCA3MiwgMjE1LCAxMjgsIDE4LCAxOSwgNzIsIDIxNSwgMTMxLCAxOCwgMTksIDcyLCAyMTUsIAorICAgIDEzMCwgMTgsIDE5LCA3MiwgMjE1LCAxMjksIDE4LCAxOSwgNzIsIDIxNSwgMTMyLCAxOCwgMTksIDI1MCwgMTEyLCA1MCwgCisgICAgMTgsIDE5LCAyNDMsIDIzMCwgMjE4LCAxMzAsIDE4LCAxOSwgMjI0LCA4MSwgMTgsIDE5LCAyMjksIDc0LCAxOCwgMTksIAorICAgIDIyOCwgMTAxLCAxOCwgMTksIDIyOCwgMTAwLCAxOCwgMTksIDIyOCwgOTksIDE4LCAxOSwgMjI4LCA5OCwgMTgsIDE5LCAKKyAgICAyMjgsIDEwMywgMTgsIDE5LCAyMjgsIDEwMiwgMTgsIDE5LCAyMTEsIDIxMywgMjE2LCAxMjYsIDE4LCAxOSwgMjExLCAyMTMsIAorICAgIDIxNiwgMTI1LCAxOCwgMTksIDIxMSwgMjEzLCAyMTYsIDEyNCwgMTgsIDE5LCAyMTEsIDIxMywgMjE2LCAxMjMsIDE4LCAxOSwgCisgICAgMjExLCAyMTMsIDIxNiwgMTIyLCAxOCwgMTksIDIxMSwgMjEzLCAyMTYsIDEyOSwgMTgsIDE5LCAyMTEsIDIxMywgMjE2LCAKKyAgICAxMjgsIDE4LCAxOSwgMjExLCAyMTMsIDQwLCAyMTYsIDIxMSwgMTgsIDE5LCAyNTEsIDIxOSwgMjEyLCA5OCwgMjI2LCAyMjcsIAorICAgIDIxOSwgMjAsIDc4LCAyMjYsIDIyNywgMSwgMjUyLCA0OSwgMjI2LCAyMjcsIDEsIDIzMiwgODgsIDIyNiwgMjI3LCAxLCAKKyAgICAyNDQsIDE1MiwgMjI2LCAyMjcsIDEsIDIyMiwgMTYsIDIyNiwgMjI3LCAxLCAyMjgsIDE5NCwgMjI2LCAyMjcsIDEsIDIxNCwgCisgICAgMjI2LCAyMjYsIDIyNywgMSwgMjQ4LCAxOTgsIDIyNiwgMjI3LCAxLCAyMTYsIDgxLCAyMjYsIDIyNywgMSwgMjQ5LCAyMzAsIAorICAgIDIyNiwgMjI3LCAxLCAyNTAsIDE4MSwgMjI2LCAyMjcsIDEsIDIzMCwgOTIsIDIyNiwgMjI3LCAxLCAyNDIsIDE1NywgMjI2LCAKKyAgICAyMjcsIDEsIDIyOSwgNjQsIDIyNiwgMjI3LCAxLCAyMTgsIDEyMywgMjI2LCAyMjcsIDEsIDIyMiwgMTM2LCAyMjYsIDIyNywgCisgICAgMSwgMjU0LCAxOTksIDIyNiwgMjI3LCAxLCAyMjYsIDE4OCwgMjI2LCAyMjcsIDEsIDIxNCwgMTUwLCAyMjYsIDIyNywgMSwgCisgICAgMjQ1LCAyMzIsIDIyNiwgMjI3LCAxLCAyMzUsIDE4OSwgMjI2LCAyMjcsIDEsIDI0NSwgMjMzLCAyMjYsIDIyNywgMSwgMjI2LCAKKyAgICAxNTksIDIyNiwgMjI3LCAxLCAyMTQsIDIwNiwgMjI2LCAyMjcsIDEsIDIzNiwgNDAsIDIyNiwgMjI3LCAxLCAyNDUsIDIzMCwgCisgICAgMjI2LCAyMjcsIDEsIDIyNSwgMjAzLCAyMjYsIDIyNywgMjQ0LCAxNTEsIDc4LCAyMjYsIDIyNywgMjIzLCA1MCwgMjQ0LCAKKyAgICAxNTEsIDc4LCAxNzgsIDEsIDI0NCwgMTQyLCAyNDQsIDEzNCwgMjQ0LCAxNTYsIDI0NSwgNywgMTc4LCAxLCAyMTQsIDEwNSwgCisgICAgMTc4LCAxLCAyMTQsIDEzNSwgMjE0LCAxNTEsIDcwLCAxNzgsIDEsIDIxMCwgMjE0LCAxNzgsIDEsIDIxMSwgMTE3LCAxNzgsIAorICAgIDEsIDIxMiwgOTgsIDE3OCwgMSwgMjE2LCAxMzEsIDIxNiwgMTMwLCAyMTYsIDE1MiwgMTc4LCAxLCAyNDUsIDYwLCAxNzgsIAorICAgIDEsIDI1NCwgOTQsIDYxLCAxNzgsIDEsIDIyNiwgMTQ0LCA3NiwgMTc4LCAxLCAyNTUsIDE4LCA2MSwgMTc4LCAxLCAyNTQsIAorICAgIDIyOCwgMTc4LCAxLCAyMzIsIDEzNCwgNzYsIDE3OCwgMSwgMjE5LCAyNDUsIDc2LCAxNzgsIDEsIDc2LCAxNzgsIDEsIDIyNiwgCisgICAgMjM1LCAxNzgsIDEsIDIyNiwgMTk3LCAxNzgsIDEsIDIyMywgMTY1LCAyMjMsIDE3OCwgMjIzLCA5NSwgMTUzLCAxNzgsIDEsIAorICAgIDIzNCwgMTk0LCAxNzgsIDEsIDI1MCwgMTc4LCAxNzgsIDEsIDIzNCwgMTk1LCAyMzUsIDI0LCAxNzgsIDEsIDI0MywgMjAzLCAKKyAgICAxNzgsIDEsIDI0NSwgMTM5LCAxNzgsIDEsIDI0MywgNTksIDI0MiwgNjcsIDI0MywgMjAzLCAxNzgsIDEsIDI0MywgOTcsIAorICAgIDE3OCwgMSwgMjExLCAxODgsIDIxMSwgMTgyLCAyMTIsIDk4LCAxNzgsIDEsIDI0MiwgMzksIDI0MiwgNjEsIDE3OCwgMSwgCisgICAgMjQyLCA0MywgMjQyLCA2MSwgMTc4LCAxLCAyMzIsIDEzNiwgMjQyLCA2MSwgMTc4LCAxLCAyMTksIDI0OCwgMjQyLCA2MSwgCisgICAgMTc4LCAxLCAyMjksIDE4NiwgMjI3LCAxNTgsIDIyOSwgMTg3LCAyMzAsIDI2LCAxNzgsIDEsIDIxOSwgMjQ2LCAyMzAsIDI2LCAKKyAgICAxNzgsIDEsIDI0NiwgMTE2LCAxNzgsIDEsIDIzNSwgMTY5LCAyMzUsIDE3MywgMjM1LCAxNjMsIDczLCAxNzgsIDEsIDc1LCAKKyAgICAxNzgsIDEsIDIzNSwgMTE4LCAyMzUsIDE0NSwgMTc4LCAxLCAyNDMsIDQ0LCAxNzgsIDEsIDIzMiwgMTM3LCAyNTQsIDI0NCwgCisgICAgMTc4LCAxLCAyMTksIDI1MCwgNjEsIDE3OCwgMSwgMjM1LCAxNTUsIDI0NSwgMTE0LCAxNzgsIDEsIDIyNSwgMTY1LCAyMjUsIAorICAgIDE4NywgMjI2LCAxMDYsIDE3OCwgMSwgMjU0LCAxNjQsIDI0NSwgMTEyLCAxNzgsIDEsIDIxOSwgMjUsIDIyMiwgOTIsIDE3OCwgCisgICAgMSwgMjE5LCAxODAsIDIzMiwgMTMzLCAyMjIsIDkyLCAxNzgsIDEsIDIxOSwgMjQ0LCAyMjIsIDkyLCAxNzgsIDEsIDI1MSwgCisgICAgNjcsIDE3OCwgMSwgMjEwLCAxNTksIDE3OCwgMSwgMjE2LCA2NCwgMjE2LCA3NCwgMjE1LCA0MSwgMjE3LCAxNTMsIDE3OCwgCisgICAgMSwgMjE5LCAyNDMsIDIxNywgMTUzLCAxNzgsIDEsIDI0OSwgNjEsIDE3OCwgMSwgMjUyLCAzMiwgMjUyLCAzNSwgMjUxLCAKKyAgICAyMjUsIDI1MywgMTU5LCAxNzgsIDEsIDIxOSwgMjQ5LCAyNTMsIDE1OSwgMTc4LCAxLCAyNDYsIDExNSwgMTc4LCAxLCAyMjYsIAorICAgIDE3MiwgMTc4LCAxLCAyNDUsIDE5NywgMjQ1LCAxOTksIDc1LCAxNzgsIDEsIDIzMSwgMTc5LCAyMzEsIDE4NywgMTkzLCAKKyAgICAxNzgsIDEsIDIzMiwgMTM1LCAxOTMsIDE3OCwgMSwgMjE5LCAyNDcsIDE5MywgMTc4LCAxLCAyMzMsIDc0LCAyMzMsIDExNSwgCisgICAgMjMyLCAxNDQsIDE1NiwgMTc4LCAxLCAyNDYsIDExNywgMTc4LCAxLCAyMzUsIDIzMSwgMTc4LCAxLCAyMzUsIDIzMiwgMTc4LCAKKyAgICAxLCAyNDgsIDIxMSwgMjQ4LCAyMTYsIDI0OSwgNjEsIDE3OCwgMSwgMjI2LCAxMzksIDI0NSwgNTksIDc2LCAxNzgsIDEsIAorICAgIDI0NSwgMjI4LCAxNzgsIDEsIDIzNSwgMTg4LCAxNzgsIDEsIDI0OSwgNzksIDE3OCwgMSwgMjUxLCAxOCwgMTc4LCAxLCAKKyAgICAyNTAsIDE5MCwgMTc4LCAxLCAyMTgsIDE2MiwgMTc4LCAxLCAyMzIsIDEzMiwgMTc4LCAxLCAyMTksIDI0MiwgMTc4LCAxLCAKKyAgICAyNDAsIDExMSwgMTc4LCAxLCAyMjQsIDk3LCAxNzgsIDEsIDIxMSwgMTc4LCAxNzgsIDIxOSwgMTU2LCAyMjQsIDE0MSwgCisgICAgMTc4LCAyMzAsIDg2LCAyMjQsIDE0MSwgMTc4LCAyNDksIDEzMiwgMjI0LCAxNDEsIDE3OCwgMjU0LCA3LCA4NywgMTc4LCAKKyAgICAyMTUsIDgyLCA4NywgMTc4LCAyNTIsIDQ3LCA4NywgMjE3LCA4NCwgMSwgNjEsIDIxNywgODQsIDEsIDczLCAyMTcsIDg0LCAKKyAgICAxLCA3MCwgMjE3LCA4NCwgMSwgMTc2LCAyMTcsIDg0LCAxLCAyNDMsIDEzNiwgMjE3LCA4NCwgMSwgMjI5LCA3OCwgMjE3LCAKKyAgICA4NCwgMSwgMjE3LCAxMDYsIDIxNywgODQsIDEsIDI0OCwgMjIyLCAyMTcsIDg0LCAxLCAxOTcsIDIxNywgODQsIDEsIDE5MCwgCisgICAgMjE3LCA4NCwgMSwgMjUyLCAxOTIsIDIxNywgODQsIDEsIDE4NSwgMjE3LCA4NCwgMSwgMTkxLCAyMTcsIDg0LCAxLCAyMzMsIAorICAgIDEzNiwgMjE3LCA4NCwgMSwgMjEyLCA2NSwgMjE3LCA4NCwgMSwgMjA2LCAyMTcsIDg0LCAxLCAxNjIsIDIxNywgODQsIDI1LCAKKyAgICA1LCA3MywgMjE3LCA4NCwgMjUsIDUsIDcwLCAyMTcsIDg0LCA1LCAyMTMsIDE1MiwgMjQyLCA4LCAxLCA2MSwgMjQyLCA4LCAKKyAgICAxLCA3MywgMjQyLCA4LCAxLCA3MCwgMjQyLCA4LCAxLCAxNzYsIDI0MiwgOCwgMSwgMjQzLCAxMzYsIDI0MiwgOCwgMSwgCisgICAgMjI5LCA3OCwgMjQyLCA4LCAxLCAyMTcsIDEwNiwgMjQyLCA4LCAxLCAyNDgsIDIyMiwgMjQyLCA4LCAxLCAxOTcsIDI0MiwgCisgICAgOCwgMSwgMTkwLCAyNDIsIDgsIDEsIDI1MiwgMTkyLCAyNDIsIDgsIDEsIDE4NSwgMjQyLCA4LCAxLCAxOTEsIDI0MiwgOCwgCisgICAgMSwgMjA1LCAyNDIsIDgsIDEsIDIzMywgMTM2LCAyNDIsIDgsIDEsIDIxMiwgNjUsIDI0MiwgOCwgMSwgMjA2LCAyNDIsIDgsIAorICAgIDEsIDE2MiwgMjQyLCA4LCAyNSwgNSwgNzMsIDI0MiwgOCwgMjUsIDUsIDcwLCAyNDIsIDgsIDUsIDIyNiwgNTAsIDIyNSwgCisgICAgMTI3LCAyMTksIDE1NiwgMjI0LCAxNDEsIDIyNSwgMTI3LCA1MiwgMjI0LCAxNDEsIDI1MSwgMTIxLCAxLCA2MSwgMjUxLCAKKyAgICAxMjEsIDEsIDczLCAyNTEsIDEyMSwgMSwgNzAsIDI1MSwgMTIxLCAxLCAxNzYsIDI1MSwgMTIxLCAxLCAyNDMsIDEzNiwgCisgICAgMjUxLCAxMjEsIDEsIDIyOSwgNzgsIDI1MSwgMTIxLCAxLCAyMTcsIDEwNiwgMjUxLCAxMjEsIDEsIDI0OCwgMjIyLCAyNTEsIAorICAgIDEyMSwgMSwgMTk3LCAyNTEsIDEyMSwgMSwgMTkwLCAyNTEsIDEyMSwgMSwgMjUyLCAxOTIsIDI1MSwgMTIxLCAxLCAxODUsIAorICAgIDI1MSwgMTIxLCAxLCAxOTEsIDI1MSwgMTIxLCAxLCAyMDUsIDI1MSwgMTIxLCAxLCAyMzMsIDEzNiwgMjUxLCAxMjEsIDEsIAorICAgIDIxMiwgNjUsIDI1MSwgMTIxLCAxLCAyMDYsIDI1MSwgMTIxLCAxLCAxNjIsIDI1MSwgMTIxLCAyNSwgNSwgNzMsIDI1MSwgCisgICAgMTIxLCAyNSwgNSwgNzAsIDIxNywgODMsIDEsIDYxLCAyMTcsIDgzLCAxLCA3MywgMjE3LCA4MywgMSwgNzAsIDIxNywgODMsIAorICAgIDEsIDE3NiwgMjE3LCA4MywgMSwgMjQzLCAxMzYsIDIxNywgODMsIDEsIDIyOSwgNzgsIDIxNywgODMsIDEsIDIxNywgMTA2LCAKKyAgICAyMTcsIDgzLCAxLCAyNDgsIDIyMiwgMjE3LCA4MywgMSwgMTk3LCAyMTcsIDgzLCAxLCAxOTAsIDIxNywgODMsIDEsIDI1MiwgCisgICAgMTkyLCAyMTcsIDgzLCAxLCAxODUsIDIxNywgODMsIDEsIDE5MSwgMjE3LCA4MywgMSwgMjMzLCAxMzYsIDIxNywgODMsIDEsIAorICAgIDIxMiwgNjUsIDIxNywgODMsIDEsIDIwNiwgMjE3LCA4MywgMjUsIDUsIDczLCAyMTcsIDgzLCAyNSwgNSwgNzAsIDY5LCAxLCAKKyAgICAxNzYsIDY5LCAxLCAyMzQsIDEzMywgNjksIDEsIDIzNCwgMjksIDY5LCAxLCAyMzQsIDEwNiwgNjksIDEsIDIyOSwgNSwgNjksIAorICAgIDEsIDI1MSwgMzQsIDY5LCAxLCAyNTAsIDE1OCwgNjksIDEsIDI0OSwgMjM5LCA2OSwgMSwgMjUwLCA4NywgNjksIDEsIDIyNywgCisgICAgMTM1LCA2OSwgMSwgMjQ4LCAyMjIsIDY5LCAxLCAyMTUsIDE0NSwgNjksIDEsIDI0NywgMTQ2LCA2OSwgMSwgMjE1LCAxNDAsIAorICAgIDY5LCAxLCAyMjgsIDgxLCA2OSwgMSwgMjE3LCAxMDYsIDY5LCAxLCAyMTYsIDIwOSwgNjksIDEsIDExMSwgNjksIDEsIDIxNiwgCisgICAgMTU3LCA2OSwgMSwgMjI4LCA3NSwgNjksIDEsIDI1MiwgMTkyLCA2OSwgMSwgMjI1LCAxNDgsIDY5LCAxLCAyMjUsIDE3LCAKKyAgICA2OSwgMSwgMjI1LCAxMjIsIDY5LCAxLCAyMzAsIDE2MiwgNjksIDEsIDIxMCwgMjQ0LCA2OSwgMSwgMjIyLCAyMTIsIDY5LCAKKyAgICAxLCAyMzIsIDE1NywgNjksIDEsIDIxMywgMTM4LCA2OSwgMSwgMjIwLCAxMDMsIDY5LCAxLCAyMTgsIDE4NSwgNjksIDEsIAorICAgIDIwNiwgNjksIDEsIDE2MiwgNjksIDEsIDIzMywgMTM2LCA2OSwgMSwgMjI0LCA4OSwgNjksIDIzNSwgMjQ0LCAyNSwgMjI0LCAKKyAgICA3NSwgNjksIDIzNSwgMjQ0LCAyNSwgMjI0LCA4OCwgNjksIDIzNSwgMjQ0LCAyNSwgMjI0LCA1NCwgNjksIDIzNSwgMjQ0LCAKKyAgICAyNSwgMjI0LCA0OSwgNjksIDIzNSwgMjQ0LCAyNSwgMjI0LCAzMSwgNjksIDIzNSwgMjQ0LCAyNSwgMjI0LCAzLCA2OSwgCisgICAgMjM1LCAyNDQsIDI1LCAyMjMsIDI0NywgNjksIDIzNSwgMjQ0LCAyNSwgMjIzLCAyNDYsIDY5LCAyMzUsIDI0NCwgMjUsIAorICAgIDIyMiwgMTAxLCA2OSwgMjM1LCAyNDQsIDI1LCAyMjIsIDk0LCA2OSwgMjM1LCAyNDQsIDI1LCAyMzIsIDYzLCA2OSwgMjM1LCAKKyAgICAyNDQsIDI1LCAyMzIsIDUzLCA2OSwgMjM1LCAyNDQsIDI1LCAyMjQsIDcwLCA2OSwgMjM1LCAyNDQsIDI1LCAyMjQsIDgxLCAKKyAgICA2OSwgMjM1LCAyNDQsIDI1LCAyMjQsIDM5LCAyMTUsIDQ5LCAxMTAsIDY5LCAyMzUsIDI0NCwgMjUsIDIyNCwgMzksIDIxNSwgCisgICAgNDksIDEwNSwgNjksIDIzNSwgMjQ0LCAyNSwgMjI0LCA3MSwgNjksIDI1LCAyMzUsIDIzMCwgMjU0LCA0NiwgNjksIDI1LCAKKyAgICAyMzUsIDIzMCwgMjU1LCA3NCwgNjksIDI1LCA1LCAyNTUsIDc0LCA2OSwgMjUsIDUsIDczLCA2OSwgMjUsIDUsIDIzNiwgMzQsIAorICAgIDY5LCAyNSwgNSwgMjExLCAxMTcsIDY5LCAyNSwgNSwgMjEwLCAxNjksIDY5LCAyNSwgNSwgNzAsIDY5LCAyNSwgNSwgMjE0LCAKKyAgICAxMTgsIDY5LCAyNSwgNSwgMjE0LCAyMjksIDY5LCAyNSwgNSwgMjI2LCAyMzUsIDY5LCAyNSwgNSwgMTkxLCA2OSwgMjUsIDUsIAorICAgIDIzNiwgNjEsIDY5LCAyNSwgNSwgNzUsIDY5LCAyNSwgNSwgMjU0LCAyNDQsIDY5LCAyNSwgNSwgMjU0LCAyMDIsIDY5LCAyNSwgCisgICAgNSwgMjI2LCAxODQsIDY5LCAyNSwgNSwgMjUzLCAxOTMsIDY5LCA1LCAyMjgsIDIwNywgNjksIDUsIDIyMywgMTI3LCA2OSwgCisgICAgNSwgMjEwLCAxODAsIDY5LCA1LCAyMzAsIDUzLCA2OSwgNSwgMjE1LCAyMTQsIDY5LCA1LCAyNTIsIDE0NCwgNjksIDUsIAorICAgIDIyMiwgMjA3LCA2OSwgNSwgMjE2LCA0MSwgNjksIDUsIDIzNCwgMjQyLCA2OSwgNSwgMjU0LCAyMDQsIDY5LCA1LCAyMjEsIAorICAgIDI0NSwgMjIxLCAyMzksIDY5LCA1LCAyMTMsIDE0OSwgNjksIDUsIDI0OSwgMjMzLCA2OSwgNSwgMjUyLCAxMTgsIDY5LCA1LCAKKyAgICAyMzQsIDEyNiwgNjksIDUsIDI1MiwgMTM4LCA2OSwgNSwgMjUxLCAxMCwgMjI1LCA3MywgMjMzLCAxODgsIDY5LCA1LCAyMzMsIAorICAgIDMxLCAyMTYsIDE4LCA2OSwgNSwgMjUyLCAyMSwgNjksIDUsIDIyNSwgMTI0LCAyMzAsIDEwMCwgNjksIDUsIDIzNCwgMTAsIAorICAgIDY5LCAyNDksIDk5LCAxNiwgMjIzLCAyOSwgNjksIDUsIDI1MywgMTc1LCA2OSwgNSwgMjUzLCAxOTYsIDY5LCAyMSwgMjEwLCAKKyAgICA4NiwgNjksIDIxLCAxMTAsIDY5LCAyMSwgMTA1LCA2OSwgMjEsIDE1OCwgNjksIDIxLCAxNjEsIDY5LCAyMSwgMTg5LCA2OSwgCisgICAgMjEsIDE5NCwgNjksIDIxLCAxOTgsIDY5LCAyMSwgMTk1LCA2OSwgMjEsIDIwMCwgNjksIDE2LCAyMzMsIDMxLCAyNTMsIAorICAgIDE5OCwgMjE5LCA0NCwgNjksIDE2LCAyMzMsIDMxLCAyNTMsIDE5OCwgMjMwLCA3MiwgNjksIDE2LCAyMzMsIDMxLCAyNTMsIAorICAgIDE5OCwgMjI1LCA3MiwgNjksIDE2LCAyMzMsIDMxLCAyNTMsIDE5OCwgMjUyLCA1MCwgNjksIDE2LCAyMzMsIDMxLCAyNTMsIAorICAgIDE5OCwgMjUxLCAxMDQsIDY5LCAxNiwgMjMzLCAzMSwgMjUzLCAxOTgsIDIyNCwgMjE2LCA2OSwgMTYsIDIzMywgMzEsIDI1MywgCisgICAgMTk4LCAyMjQsIDIxMCwgNjksIDE2LCAyMzMsIDMxLCAyNTMsIDE5OCwgMjI0LCAyMDgsIDY5LCAxNiwgMjMzLCAzMSwgMjUzLCAKKyAgICAxOTgsIDIyNCwgMjE0LCA2OSwgMTYsIDIzMywgMzEsIDI1MywgMTk4LCAyMjQsIDIxMiwgODMsIDI1MSwgMjM3LCA4MywgCisgICAgMjQ1LCAxNjQsIDgzLCAyNDksIDIyMCwgODMsIDI0MywgMjMwLCAyMTgsIDEzMCwgODMsIDI0OSwgMjI3LCA4MywgMjQ0LCAKKyAgICAxMiwgMjQ3LCAxMTksIDgzLCAyMTYsIDQwLCAyMTksIDUzLCAyNDAsIDE2OSwgODMsIDIxOSwgMTkxLCAzLCAyNTEsIDE3MywgCisgICAgMjMxLCAxNTUsIDgzLCAyMzEsIDE4NCwgMjQ5LCAyMjAsIDgzLCAyMzEsIDE4NCwgMjQzLCAyMzAsIDIxOCwgMTMwLCA4MywgCisgICAgMjI4LCAxOTIsIDgzLCAyNDMsIDI1NCwgNDUsIDIyMSwgMTU4LCAxMTAsIDgzLCAyNDMsIDI1NCwgNDUsIDIyMSwgMTU4LCAKKyAgICAxMDUsIDgzLCAyNDMsIDI1NCwgNDUsIDIyMSwgMTU4LCAxNTgsIDgzLCAyNSwgMjIwLCAxMzgsIDgzLCAyMSwgMjEwLCA4NiwgCisgICAgODMsIDIxLCAxMTAsIDgzLCAyMSwgMTA1LCA4MywgMjEsIDE1OCwgODMsIDIxLCAxNjEsIDgzLCAyMSwgMTg5LCA4MywgMjEsIAorICAgIDE5NCwgODMsIDIxLCAxOTgsIDgzLCAyMSwgMTk1LCA4MywgMjEsIDIwMCwgODMsIDEsIDYxLCA4MywgMSwgNzUsIDgzLCAxLCAKKyAgICA3MywgODMsIDEsIDc2LCA4MywgMSwgNzAsIDgzLCAxLCAyMjYsIDIzNSwgODMsIDEsIDIxNCwgMjE0LCA4MywgMSwgMjQ1LCAKKyAgICAyMTAsIDgzLCAxLCAxOTcsIDgzLCAxLCAyNTQsIDExNiwgODMsIDEsIDI1MiwgMTkyLCA4MywgMSwgMTkwLCA4MywgMSwgCisgICAgMjI0LCA4OSwgODMsIDEsIDI0MywgMTM2LCA4MywgMSwgMTg1LCA4MywgMSwgMjMzLCAxMzYsIDgzLCAxLCAyMDYsIDgzLCAxLCAKKyAgICAyMjAsIDEwMywgODMsIDEsIDIxNywgMTA2LCA4MywgMSwgMjQ4LCAyMjIsIDgzLCAxLCAyNTAsIDE1OCwgODMsIDEsIDIzNSwgCisgICAgMTQyLCA4MywgMSwgMTkxLCA4MywgMSwgMjA1LCA4MywgMSwgMjEyLCA2NSwgODMsIDEsIDI0NCwgMTk3LCA4MywgMSwgMTc2LCAKKyAgICA4MywgMSwgMjM0LCAxMzMsIDgzLCAxLCAyMTUsIDE4NCwgODMsIDEsIDIxMCwgMTE2LCA4MywgMSwgMjQyLCA0NywgODMsIDEsIAorICAgIDIxMCwgMTYsIDgzLCAxLCAyMzIsIDI1NSwgODMsIDEsIDIxMCwgNjksIDgzLCAxLCAyNTAsIDExMSwgODMsIDEsIDIxNiwgCisgICAgNDAsIDE5OSwgMjUsIDUwLCA4MywgMSwgMjE2LCA0MCwgNzUsIDgzLCAxLCAyMTYsIDQwLCA3MywgODMsIDEsIDIxNiwgNDAsIAorICAgIDc2LCA4MywgMSwgMjE2LCA0MCwgNzAsIDgzLCAxLCAyMTYsIDQwLCAyMjYsIDIzNSwgODMsIDEsIDIxNiwgNDAsIDIxNCwgCisgICAgMjE0LCA4MywgMSwgMjE2LCA0MCwgMjU0LCAxMTYsIDgzLCAxLCAyMTYsIDQwLCAyNTIsIDE5MiwgODMsIDEsIDIxNiwgNDAsIAorICAgIDE5MCwgODMsIDEsIDIxNiwgNDAsIDIyNCwgODksIDgzLCAxLCAyMTYsIDQwLCAyNDMsIDEzNiwgODMsIDEsIDIxNiwgNDAsIAorICAgIDE4NSwgODMsIDEsIDIxNiwgNDAsIDIxNywgMTA2LCA4MywgMSwgMjE2LCA0MCwgMjQ4LCAyMjIsIDgzLCAxLCAyMTYsIDQwLCAKKyAgICAyNTAsIDE1OCwgODMsIDEsIDIxNiwgNDAsIDIzNSwgMTQyLCA4MywgMSwgMjE2LCA0MCwgMjE1LCAxODQsIDgzLCAxLCAyMTYsIAorICAgIDQwLCAxOTEsIDgzLCAxLCAyMTYsIDQwLCAyMTIsIDY1LCA4MywgMSwgMjE2LCA0MCwgMTc2LCA4MywgMSwgMjE2LCA0MCwgCisgICAgMjQzLCAxMzMsIDgzLCAxLCAyMTYsIDQwLCAyNDIsIDQ3LCA4MywgMSwgMjE2LCA0MCwgMjM1LCAxMDgsIDgzLCAxLCAyMTYsIAorICAgIDQwLCAyMjgsIDIzMiwgODMsIDEsIDIxNiwgNDAsIDI0NiwgMzksIDgzLCAxLCAyMTksIDE5MSwgNzUsIDgzLCAxLCAyMTksIAorICAgIDE5MSwgNzMsIDgzLCAxLCAyMTksIDE5MSwgMjM1LCAxNTMsIDgzLCAxLCAyMTksIDE5MSwgMjE0LCAyMTQsIDgzLCAxLCAKKyAgICAyMTksIDE5MSwgNzAsIDgzLCAxLCAyMTksIDE5MSwgMjU0LCAxMTYsIDgzLCAxLCAyMTksIDE5MSwgMTc2LCA4MywgMSwgCisgICAgMjE5LCAxOTEsIDI0MywgMTM2LCA4MywgMSwgMjE5LCAxOTEsIDE2MiwgODMsIDEsIDIxOSwgMTkxLCAxOTAsIDgzLCAxLCAKKyAgICAyMTksIDE5MSwgMjIwLCAxMDMsIDgzLCAxLCAyMTksIDE5MSwgMjE3LCAxMDYsIDgzLCAxLCAyMTksIDE5MSwgMjQ4LCAyMjIsIAorICAgIDgzLCAxLCAyMTksIDE5MSwgMjM1LCAxNDIsIDgzLCAxLCAyMTksIDE5MSwgMjQ0LCAxOTcsIDgzLCAxLCAyMTksIDE5MSwgCisgICAgMjQzLCAxMzMsIDgzLCAxLCAyMTksIDE5MSwgMjQyLCA0NywgODMsIDEsIDIxOSwgMTkxLCAyMTUsIDE4NCwgODMsIDEsIAorICAgIDIxOSwgMTkxLCAyMTAsIDExNiwgODMsIDEsIDIxOSwgMTkxLCAyMjMsIDE4NSwgODMsIDEsIDIxOSwgMTkxLCAyNTAsIDE1OCwgCisgICAgODMsIDEsIDIxOSwgMTkxLCAyMTAsIDgyLCA4MywgMSwgMjMxLCAxODQsIDczLCA4MywgMSwgMjMxLCAxODQsIDE3NiwgODMsIAorICAgIDEsIDIzMSwgMTg0LCAyMDUsIDgzLCAxLCAyMzEsIDE4NCwgMjQ0LCAxOTcsIDgzLCAxLCAyMzEsIDE4NCwgMjEwLCA4MiwgCisgICAgODMsIDEsIDI1NCwgMTYzLCAyNDMsIDExNywgMjU0LCA3NywgMTEwLCA4MywgMSwgMjU0LCAxNjMsIDI0MywgMTE3LCAyMTMsIAorICAgIDE0OCwgMTEwLCA4MywgMSwgMjU0LCAxNjMsIDI0MywgMTE3LCAyNDgsIDE4NywgODMsIDEsIDI1NCwgMTYzLCAyNDMsIDExNywgCisgICAgMjE0LCAyMjQsIDgzLCAxLCAyNTQsIDE2MywgMjQzLCAxMTcsIDIzNSwgMTk0LCAyMTQsIDIyNCwgODMsIDEsIDI1NCwgMTYzLCAKKyAgICAyNDMsIDExNywgMjUyLCAxNTYsIDgzLCAxLCAyNTQsIDE2MywgMjQzLCAxMTcsIDEzNCwgMjUyLCAxNTYsIDgzLCAxLCAyNTQsIAorICAgIDE2MywgMjQzLCAxMTcsIDYxLCA4MywgMSwgMjU0LCAxNjMsIDI0MywgMTE3LCA3MywgODMsIDEsIDI1NCwgMTYzLCAyNDMsIAorICAgIDExNywgMTc2LCA4MywgMSwgMjU0LCAxNjMsIDI0MywgMTE3LCAyMjksIDc4LCA4MywgMSwgMjU0LCAxNjMsIDI0MywgMTE3LCAKKyAgICAyNTEsIDM0LCA4MywgMSwgMjU0LCAxNjMsIDI0MywgMTE3LCAyMTUsIDE1NywgODMsIDEsIDI1NCwgMTYzLCAyNDMsIDExNywgCisgICAgMjE1LCAxNDUsIDgzLCAxLCAyNTQsIDE2MywgMjQzLCAxMTcsIDI0OCwgMTM2LCA4MywgMSwgMjU0LCAxNjMsIDI0MywgMTE3LCAKKyAgICAyMjgsIDExMSwgODMsIDEsIDI1NCwgMTYzLCAyNDMsIDExNywgMjE3LCAxMDYsIDgzLCAxLCAyNTQsIDE2MywgMjQzLCAxMTcsIAorICAgIDI0OCwgMjIyLCA4MywgMSwgMjU0LCAxNjMsIDI0MywgMTE3LCAxOTAsIDgzLCAxLCAyNTQsIDE2MywgMjQzLCAxMTcsIDIyNSwgCisgICAgMTQ4LCA4MywgMSwgMjU0LCAxNjMsIDI0MywgMTE3LCAyMTgsIDIyNCwgODMsIDEsIDI1NCwgMTYzLCAyNDMsIDExNywgMjEwLCAKKyAgICA4MiwgODMsIDEsIDI1NCwgMTYzLCAyNDMsIDExNywgMjEwLCAxMTYsIDgzLCAxLCAyNTQsIDE2MywgMjQzLCAxMTcsIDI1NCwgCisgICAgMjEwLCA4MywgMSwgMjE2LCA0MCwgMjU0LCAxNjMsIDI0MywgMTE3LCAyMTcsIDEwNiwgODMsIDEsIDIxNiwgNDAsIDI1NCwgCisgICAgMTYzLCAyNDMsIDExNywgMjEwLCA4MiwgODMsIDEsIDIzMSwgMTg0LCAyNTQsIDE2MywgMjQzLCAxMTcsIDI0MiwgMjUwLCAKKyAgICA4MywgMSwgMjMxLCAxODQsIDI1NCwgMTYzLCAyNDMsIDExNywgMjI5LCA3OCwgODMsIDEsIDIzMSwgMTg0LCAyNTQsIDE2MywgCisgICAgMjQzLCAxMTcsIDI1MSwgMzQsIDgzLCAxLCAyMzEsIDE4NCwgMjU0LCAxNjMsIDI0MywgMTE3LCAyMzUsIDExNSwgODMsIDEsIAorICAgIDIzMSwgMTg0LCAyNTQsIDE2MywgMjQzLCAxMTcsIDIxNSwgMTU3LCA4MywgMSwgMjMxLCAxODQsIDI1NCwgMTYzLCAyNDMsIAorICAgIDExNywgMjQ4LCAxMjAsIDgzLCAxLCAyMzEsIDE4NCwgMjU0LCAxNjMsIDI0MywgMTE3LCAyMTcsIDEwNiwgODMsIDEsIDIzMSwgCisgICAgMTg0LCAyNTQsIDE2MywgMjQzLCAxMTcsIDI0OCwgMjYsIDgzLCAxLCAyMzEsIDE4NCwgMjU0LCAxNjMsIDI0MywgMTE3LCAKKyAgICAyMTgsIDIyNCwgODMsIDEsIDIzMSwgMTg0LCAyNTQsIDE2MywgMjQzLCAxMTcsIDI0OSwgNzMsIDgzLCAxLCAyMzEsIDE4NCwgCisgICAgMjU0LCAxNjMsIDI0MywgMTE3LCAyMTAsIDgyLCA4MywgMSwgMjMxLCAxODQsIDI1NCwgMTYzLCAyNDMsIDExNywgMjEwLCAKKyAgICAxMTYsIDgzLCAxLCAyNTQsIDE2MywgMjQzLCAxMTcsIDE2MywgNzAsIDgzLCAxLCAyNTQsIDE2MywgMjQzLCAxMTcsIDE2MywgCisgICAgMTkxLCA4MywgMSwgMjMxLCAxODQsIDI1NCwgMTYzLCAyNDMsIDExNywgMjUyLCAxOSwgODMsIDEsIDI1NCwgMTYzLCAyNDMsIAorICAgIDExNywgMjQ4LCAyMTIsIDgzLCAxLCAyMzEsIDE4NCwgMjU0LCAxNjMsIDI0MywgMTE3LCAyMzIsIDI1NSwgMTgsIDE5LCAKKyAgICAyMjYsIDExMCwgMTgsIDE5LCAyNTMsIDE2OCwgMTgsIDE5LCAyNTUsIDI5LCAxOCwgMTksIDIxMiwgMjUsIDE4LCAxOSwgCisgICAgMjI0LCAyMjIsIDE4LCAxOSwgMjI1LCAyMzAsIDE4LCAxOSwgMjI0LCAxMDYsIDE4LCAxOSwgMjE3LCAzMiwgMTgsIDE5LCAKKyAgICAyMzQsIDE5MCwgMTgsIDE5LCAyMzMsIDE4MCwgMTgsIDE5LCAyMzEsIDEzMywgMTgsIDE5LCAyMjgsIDM4LCAxOCwgMTksIAorICAgIDIyOSwgMTgyLCAxOCwgMTksIDIzMywgNjksIDE4LCAxOSwgMjE5LCAyMywgMTgsIDE5LCAyMjEsIDIxMiwgMTgsIDE5LCAKKyAgICAyMTksIDIzMywgMTgsIDE5LCAyMjAsIDY3LCAxOCwgMTksIDIxOSwgMjAyLCAxOCwgMTksIDIxMCwgMjIwLCAxOCwgMTksIAorICAgIDIxMSwgNTIsIDE4LCAxOSwgMjIzLCAxMzUsIDE4LCAxOSwgMjI3LCAxNzIsIDE4LCAxOSwgMjI2LCAyMTcsIDIyNywgMTcyLCAKKyAgICAxOCwgMTksIDIyNywgMTcxLCAxOCwgMTksIDIyNiwgMjE3LCAyMjcsIDE3MSwgMTgsIDE5LCAyMjcsIDE3MCwgMTgsIDE5LCAKKyAgICAyMjYsIDIxNywgMjI3LCAxNzAsIDE4LCAxOSwgMjI3LCAxNjksIDE4LCAxOSwgMjI2LCAyMTcsIDIyNywgMTY5LCAxOCwgMTksIAorICAgIDIyMiwgMTA2LCAxOCwgMTksIDIyMiwgMTA1LCAxOCwgMTksIDIyMiwgMTA0LCAxOCwgMTksIDIyMiwgMTAzLCAxOCwgMTksIAorICAgIDIyMiwgMTAyLCAxOCwgMTksIDIyMiwgMTEwLCAxOCwgMTksIDIyNiwgMjE3LCAyMjYsIDEwNiwgMTgsIDE5LCAyMjYsIDIxNywgCisgICAgMjE3LCAxNTMsIDE4LCAxOSwgMjI2LCAyMTcsIDIzNSwgMjQsIDE4LCAxOSwgMjI2LCAyMTcsIDI1MSwgNjcsIDE4LCAxOSwgCisgICAgMjI2LCAyMTcsIDE5MywgMTgsIDE5LCAyMjYsIDIxNywgMjMwLCAyNiwgMTgsIDE5LCAyMjYsIDIxNywgMjIyLCA5MiwgMTgsIAorICAgIDE5LCAyMjYsIDIxNywgMjIwLCAxMDUsIDE4LCAxOSwgMjQ1LCAyMjAsIDIxMiwgOTgsIDE4LCAxOSwgMjEyLCA3LCAyMTIsIAorICAgIDk4LCAxOCwgMTksIDQwLCA0LCAyMjIsIDIzNCwgMTgsIDE5LCA0MCwgMjIzLCAxNTgsIDI0NywgMTIxLCAxOCwgMTksIDIyMywgCisgICAgMjI0LCAyMjIsIDEwNywgMTgsIDE5LCAxNTksIDIzMiwgMTI4LCAxOCwgMTksIDE1OSwgMjMzLCAxMzUsIDE4LCAxOSwgMjE2LCAKKyAgICAxMjcsIDE4LCAxOSwgMjE2LCAxMjksIDE4LCAxOSwgMjE1LCAxMzcsIDE4LCAxOSwgMjE1LCAxMzksIDE4LCAxOSwgMjE1LCAKKyAgICAxNDQsIDE4LCAxOSwgMjE2LCA1MCwgMTgsIDE5LCAyMTYsIDUyLCAxOCwgMTksIDIyMSwgMjEwLCAyMTksIDIwNywgMTgsIAorICAgIDE5LCAyMjEsIDIxMCwgMjIwLCAyLCAxOCwgMTksIDIyMSwgMjEwLCAyNDEsIDU0LCAxOCwgMTksIDcyLCAyNDIsIDc0LCAxOCwgCisgICAgMTksIDcyLCAyNDgsIDUzLCAyNDMsIDU2LCAxOCwgMTksIDcyLCAyNDMsIDEzMywgMTgsIDE5LCA3MiwgMjQyLCA3OSwgMTgsIAorICAgIDE5LCAyMjEsIDIxMCwgMjM1LCAzNCwgMTgsIDE5LCA3MiwgMjM1LCAzMiwgMTgsIDE5LCAyNTIsIDY5LCAyNDgsIDUzLCAKKyAgICAxNTYsIDE4LCAxOSwgMjUyLCA2OSwgMjQ4LCA1MywgMTUzLCAxOCwgMTksIDcyLCAyNDgsIDQ4LCAyMjIsIDkyLCAyMzIsIAorICAgIDIyNCwgMjEzLCAxMjIsIDIzMywgMTEsIDIzMiwgMjI0LCAxLCAxNzYsIDIzMiwgMjI0LCAxLCAyMzQsIDEzMywgMjMyLCAKKyAgICAyMjQsIDEsIDI0MywgMTM2LCAyMzIsIDIyNCwgMSwgMjQyLCAyNTAsIDIzMiwgMjI0LCAxLCAyMjksIDc4LCAyMzIsIDIyNCwgCisgICAgMSwgMjUxLCAzNCwgMjMyLCAyMjQsIDEsIDI1MCwgMTU4LCAyMzIsIDIyNCwgMSwgMjM1LCAxNDIsIDIzMiwgMjI0LCAxLCAKKyAgICAyMzUsIDExNSwgMjMyLCAyMjQsIDEsIDIxMSwgNzEsIDIzMiwgMjI0LCAxLCAyMTcsIDEwNiwgMjMyLCAyMjQsIDEsIDIxNiwgCisgICAgMjA5LCAyMzIsIDIyNCwgMSwgMjQ4LCAyMjIsIDIzMiwgMjI0LCAxLCAyNDgsIDI2LCAyMzIsIDIyNCwgMSwgMTk3LCAyMzIsIAorICAgIDIyNCwgMSwgMTkwLCAyMzIsIDIyNCwgMSwgMjI1LCAxNDgsIDIzMiwgMjI0LCAxLCAyNTIsIDE5MiwgMjMyLCAyMjQsIDEsIAorICAgIDI1MiwgMTksIDIzMiwgMjI0LCAxLCAxODUsIDIzMiwgMjI0LCAxLCAxOTEsIDIzMiwgMjI0LCAxLCAyMDUsIDIzMiwgMjI0LCAKKyAgICAxLCAyMzMsIDEzNiwgMjMyLCAyMjQsIDEsIDIxMiwgNjUsIDIzMiwgMjI0LCAxLCAyMjAsIDEwMywgMjMyLCAyMjQsIDEsIAorICAgIDIxOCwgMjI0LCAyMzIsIDIyNCwgMSwgMjA2LCAyMzIsIDIyNCwgMSwgMTYyLCAyMzIsIDIyNCwgMjUsIDUsIDYxLCAyMzIsIAorICAgIDIyNCwgMjUsIDUsIDczLCAyMzIsIDIyNCwgMjUsIDUsIDcwLCAyMzIsIDIyNCwgMjUsIDUsIDI0NSwgMjEwLCAyMzIsIDIyNCwgCisgICAgMjUsIDUsIDI1NCwgMjAyLCAyMzIsIDIyNCwgMjUsIDUsIDIyNiwgMTg0LCAyMzIsIDIyNCwgMjUsIDUsIDI1MywgMTkzLCAKKyAgICAyMzIsIDIyNCwgMjUsIDUsIDc1LCAyMzIsIDIyNCwgMjUsIDUsIDc2LCAyMzIsIDIyNCwgMjE4LCA3NCwgMSwgMTkxLCAyMzIsIAorICAgIDIyNCwgMjE4LCA3NCwgMSwgMjA1LCAyMzIsIDIyNCwgMjE4LCA3NCwgMSwgMjEyLCA2NSwgMjMyLCAyMjQsIDQsIDEsIDE3NiwgCisgICAgMjMyLCAyMjQsIDQsIDEsIDIyOSwgNzgsIDIzMiwgMjI0LCA0LCAxLCAyNTQsIDc2LCAyMzIsIDIyNCwgNCwgMSwgMjE3LCAKKyAgICAxMDYsIDIzMiwgMjI0LCA0LCAxLCAxOTcsIDIzMiwgMjI0LCA0LCAxLCAxOTAsIDIzMiwgMjI0LCA0LCAxLCAxODUsIDIzMiwgCisgICAgMjI0LCA0LCAxLCAyMDUsIDIzMiwgMjI0LCA0LCAxLCAyMzMsIDEzNiwgMjMyLCAyMjQsIDUsIDIzMCwgOTAsIDIzMiwgMjI0LCAKKyAgICA1LCAyMzQsIDE3MiwgMjMyLCAyMjQsIDUsIDIyMiwgMzMsIDIzMiwgMjI0LCA1LCAyMzIsIDEyOCwgMjMyLCAyMjQsIDI0NSwgCisgICAgMzIsIDc4LCAyMzIsIDIyNCwgMjI0LCAxNCwgNzgsIDIzMiwgMjI0LCAyMSwgMjEwLCA4NiwgMjMyLCAyMjQsIDIxLCAxMTAsIAorICAgIDIzMiwgMjI0LCAyMSwgMTA1LCAyMzIsIDIyNCwgMjEsIDE1OCwgMjMyLCAyMjQsIDIxLCAxNjEsIDIzMiwgMjI0LCAyMSwgCisgICAgMTg5LCAyMzIsIDIyNCwgMjEsIDE5NCwgMjMyLCAyMjQsIDIxLCAxOTgsIDIzMiwgMjI0LCAyMSwgMTk1LCAyMzIsIDIyNCwgCisgICAgMjEsIDIwMCwgMzksIDIzMywgNjAsIDEsIDE3NiwgMzksIDIzMywgNjAsIDEsIDIxMSwgMTY1LCAzOSwgMjMzLCA2MCwgMSwgCisgICAgMjI5LCA3OCwgMzksIDIzMywgNjAsIDEsIDIxNSwgMTg0LCAzOSwgMjMzLCA2MCwgMSwgMjA2LCAzOSwgMjMzLCA2MCwgMSwgCisgICAgMTkxLCAzOSwgMjMzLCA2MCwgMSwgMjE3LCAxMDYsIDM5LCAyMzMsIDYwLCAxLCAyMTYsIDIwOSwgMzksIDIzMywgNjAsIDEsIAorICAgIDIzMywgMTM2LCAzOSwgMjMzLCA2MCwgMSwgMTkwLCAzOSwgMjMzLCA2MCwgMSwgMjI1LCAxNDgsIDM5LCAyMzMsIDYwLCAxLCAKKyAgICAxODUsIDM5LCAyMzMsIDYwLCAxLCAyNDQsIDE5NywgMzksIDIzMywgNjAsIDEsIDIxNCwgMjcsIDM5LCAyMzMsIDYwLCAxLCAKKyAgICAxNjIsIDM5LCAyMzMsIDYwLCAxLCAyMjQsIDg5LCAzOSwgMjMzLCA2MCwgMSwgMjM0LCAxMzMsIDM5LCAyMzMsIDYwLCAxLCAKKyAgICAyMTUsIDE3NiwgMzksIDIzMywgNjAsIDEsIDE5NywgMzksIDIzMywgNjAsIDEsIDYxLCAzOSwgMjMzLCA2MCwgMSwgNzMsIAorICAgIDM5LCAyMzMsIDYwLCAxLCAyNDUsIDIxMCwgMzksIDIzMywgNjAsIDEsIDI0NSwgMTk4LCAzOSwgMjMzLCA2MCwgMSwgNzAsIAorICAgIDM5LCAyMzMsIDYwLCAxLCAyMjYsIDE4NCwgMzksIDIzMywgNjAsIDEsIDc2LCAzOSwgMjMzLCA2MCwgMSwgMjE0LCAyMTQsIAorICAgIDM5LCAyMzMsIDYwLCAxLCA3NSwgMzksIDIzMywgNjAsIDEsIDI1MywgMTkxLCAzOSwgMjMzLCA2MCwgMSwgMjU0LCAyMDIsIAorICAgIDM5LCAyMzMsIDYwLCAxLCAyMTYsIDI5LCAzOSwgMjMzLCA2MCwgMSwgMjE2LCAyOCwgMzksIDIzMywgNjAsIDEsIDIxNiwgCisgICAgMjcsIDM5LCAyMzMsIDYwLCAxLCAyMTYsIDI2LCAzOSwgMjMzLCA2MCwgMSwgMjE2LCAyNSwgMTY2LCAzOSwgMTczLCAxLCAKKyAgICAxMjUsIDIyNCwgODksIDE2NiwgMzksIDE3MywgMSwgMTIxLCAyMjQsIDg5LCAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMTc2LCAKKyAgICAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMjExLCAxNjUsIDE2NiwgMzksIDE3MywgMSwgMTI1LCAyMjksIDc4LCAxNjYsIDM5LCAKICAgICAxNzMsIDEsIDEyMSwgMTc2LCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMjExLCAxNjUsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAKLSAgICAyMjksIDc3LCAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMjE1LCAxODMsIDE2NiwgMzksIDE3MywgMSwgMTI1LCAyMDYsIDE2NiwgCi0gICAgMzksIDE3MywgMSwgMTI1LCAxOTEsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAyMTUsIDE4MywgMTY2LCAzOSwgMTczLCAxLCAKLSAgICAxMjEsIDIwNiwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDE5MSwgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDIxNywgMTA1LCAxNjYsIAotICAgIDM5LCAxNzMsIDEsIDEyNSwgMjE2LCAyMDgsIDE2NiwgMzksIDE3MywgMSwgMTI1LCAxOTcsIDE2NiwgMzksIDE3MywgMSwgCi0gICAgMTIxLCAyMTcsIDEwNSwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDIxNiwgMjA4LCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMTk3LCAKLSAgICAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMTkwLCAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMjI1LCAxNDcsIDE2NiwgMzksIDE3MywgCi0gICAgMSwgMTI1LCAxODQsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAxOTAsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAyMjUsIDE0NywgCi0gICAgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDE4NCwgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDI0NCwgMTk2LCAxNjYsIDM5LCAxNzMsIAotICAgIDEsIDEyNSwgMjE0LCAyNywgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDIzMywgMTM1LCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgCi0gICAgMjQ0LCAxOTYsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAyMTQsIDI3LCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMjMzLCAxMzUsIAotICAgIDE2NiwgMzksIDE3MywgMSwgMTI1LCAxNjIsIDE2NiwgMzksIDE3MywgMSwgMTI1LCAyNDgsIDIyMSwgMTY2LCAzOSwgMTczLCAKLSAgICAxLCAxMjUsIDI1MiwgMTkxLCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMTYyLCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMjQ4LCAKLSAgICAyMjEsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAyNTIsIDE5MSwgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDIzMywgMTg0LCAxNjYsIAotICAgIDM5LCAxNzMsIDEsIDEyNSwgMjExLCAxMzgsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAyMzMsIDE4NCwgMTY2LCAzOSwgMTczLCAKLSAgICAxLCAxMjEsIDIxMSwgMTM4LCAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMjE4LCA4MiwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIAotICAgIDIxOCwgODIsIDE2NiwgMzksIDE3MywgMjUsIDUsIDI1LCAyMTksIDIzOSwgMTY2LCAzOSwgMTczLCAyNSwgNSwgMjU1LCA3MywgCi0gICAgMTY2LCAzOSwgMTczLCAyNSwgNSwgMjM2LCAzMywgMTY2LCAzOSwgMTczLCAyNSwgNSwgNzAsIDE2NiwgMzksIDE3MywgMjUsIAotICAgIDUsIDIxNCwgMTE4LCAxNjYsIDM5LCAxNzMsIDI1LCA1LCA3NSwgMTY2LCAzOSwgMTczLCAyNSwgNSwgMjU0LCAyNDMsIDE2NiwgCi0gICAgMzksIDE3MywgMjUsIDUsIDc2LCAxNjYsIDM5LCAxNzMsIDI1LCA1LCAyMjcsIDAsIDE2NiwgMzksIDE3MywgMjUsIDUsIAotICAgIDIxNCwgMjE0LCAxNjYsIDM5LCAxNzMsIDI1LCA1LCAyNTMsIDE2NywgMTY2LCAzOSwgMTczLCAyNSwgNSwgMjU1LCAyOCwgCi0gICAgMTY2LCAzOSwgMTczLCAyNSwgNSwgMjE0LCAxMTEsIDE2NiwgMzksIDE3MywgMjUsIDUsIDIyNiwgMTA5LCAxNjYsIDM5LCAKLSAgICAxNzMsIDI1LCA1LCAyMjYsIDI1MywgMTY2LCAzOSwgMTczLCAyNSwgNSwgMjE0LCAyMTAsIDE2NiwgMzksIDE3MywgMjUsIDUsIAotICAgIDIzNSwgMTUyLCAxNjYsIDM5LCAxNzMsIDEsIDQwLCAyMTQsIDEwNSwgMTY2LCAzOSwgMTczLCAxLCA0MCwgMjI5LCA3OSwgCi0gICAgMTY2LCAzOSwgMTczLCAxLCA0MCwgMjMwLCAyNSwgMTY2LCAzOSwgMTczLCAxLCA0MCwgMTkzLCAxNjYsIDM5LCAxNzMsIDEsIAotICAgIDQwLCAyMzUsIDIzLCAxNjYsIDM5LCAxNzMsIDEsIDQwLCAyNDksIDYwLCAxNjYsIDM5LCAxNzMsIDEsIDQwLCAyNTMsIDE1OCwgCi0gICAgMTY2LCAzOSwgMTczLCAxMzgsIDIzMSwgMTU4LCAxNjYsIDM5LCAxNzMsIDEzOCwgMjMxLCAxNTcsIDE2NiwgMzksIDE3MywgCisgICAgMjI5LCA3OCwgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDIxNSwgMTg0LCAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMjA2LCAxNjYsIAorICAgIDM5LCAxNzMsIDEsIDEyNSwgMTkxLCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMjE1LCAxODQsIDE2NiwgMzksIDE3MywgMSwgCisgICAgMTIxLCAyMDYsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAxOTEsIDE2NiwgMzksIDE3MywgMSwgMTI1LCAyMTcsIDEwNiwgMTY2LCAKKyAgICAzOSwgMTczLCAxLCAxMjUsIDIxNiwgMjA5LCAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMTk3LCAxNjYsIDM5LCAxNzMsIDEsIAorICAgIDEyMSwgMjE3LCAxMDYsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAyMTYsIDIwOSwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDE5NywgCisgICAgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDE5MCwgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDIyNSwgMTQ4LCAxNjYsIDM5LCAxNzMsIAorICAgIDEsIDEyNSwgMTg1LCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMTkwLCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMjI1LCAxNDgsIAorICAgIDE2NiwgMzksIDE3MywgMSwgMTIxLCAxODUsIDE2NiwgMzksIDE3MywgMSwgMTI1LCAyNDQsIDE5NywgMTY2LCAzOSwgMTczLCAKKyAgICAxLCAxMjUsIDIxNCwgMjcsIDE2NiwgMzksIDE3MywgMSwgMTI1LCAyMzMsIDEzNiwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIAorICAgIDI0NCwgMTk3LCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMjE0LCAyNywgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDIzMywgMTM2LCAKKyAgICAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMTYyLCAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMjQ4LCAyMjIsIDE2NiwgMzksIDE3MywgCisgICAgMSwgMTI1LCAyNTIsIDE5MiwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDE2MiwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDI0OCwgCisgICAgMjIyLCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMjUyLCAxOTIsIDE2NiwgMzksIDE3MywgMSwgMTI1LCAyMzMsIDE4NSwgMTY2LCAKKyAgICAzOSwgMTczLCAxLCAxMjUsIDIxMSwgMTM4LCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMjMzLCAxODUsIDE2NiwgMzksIDE3MywgCisgICAgMSwgMTIxLCAyMTEsIDEzOCwgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDIxOCwgODMsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAKKyAgICAyMTgsIDgzLCAxNjYsIDM5LCAxNzMsIDI1LCA1LCAyNSwgMjE5LCAyNDAsIDE2NiwgMzksIDE3MywgMjUsIDUsIDI1NSwgNzQsIAorICAgIDE2NiwgMzksIDE3MywgMjUsIDUsIDIzNiwgMzQsIDE2NiwgMzksIDE3MywgMjUsIDUsIDcwLCAxNjYsIDM5LCAxNzMsIDI1LCAKKyAgICA1LCAyMTQsIDExOCwgMTY2LCAzOSwgMTczLCAyNSwgNSwgNzUsIDE2NiwgMzksIDE3MywgMjUsIDUsIDI1NCwgMjQ0LCAxNjYsIAorICAgIDM5LCAxNzMsIDI1LCA1LCA3NiwgMTY2LCAzOSwgMTczLCAyNSwgNSwgMjI3LCAxLCAxNjYsIDM5LCAxNzMsIDI1LCA1LCAKKyAgICAyMTQsIDIxNCwgMTY2LCAzOSwgMTczLCAyNSwgNSwgMjUzLCAxNjgsIDE2NiwgMzksIDE3MywgMjUsIDUsIDI1NSwgMjksIAorICAgIDE2NiwgMzksIDE3MywgMjUsIDUsIDIxNCwgMTExLCAxNjYsIDM5LCAxNzMsIDI1LCA1LCAyMjYsIDExMCwgMTY2LCAzOSwgCisgICAgMTczLCAyNSwgNSwgMjI2LCAyNTQsIDE2NiwgMzksIDE3MywgMjUsIDUsIDIxNCwgMjEwLCAxNjYsIDM5LCAxNzMsIDI1LCA1LCAKKyAgICAyMzUsIDE1MywgMTY2LCAzOSwgMTczLCAxLCA0MCwgMjE0LCAxMDUsIDE2NiwgMzksIDE3MywgMSwgNDAsIDIyOSwgODAsIAorICAgIDE2NiwgMzksIDE3MywgMSwgNDAsIDIzMCwgMjYsIDE2NiwgMzksIDE3MywgMSwgNDAsIDE5MywgMTY2LCAzOSwgMTczLCAxLCAKKyAgICA0MCwgMjM1LCAyNCwgMTY2LCAzOSwgMTczLCAxLCA0MCwgMjQ5LCA2MSwgMTY2LCAzOSwgMTczLCAxLCA0MCwgMjUzLCAxNTksIAorICAgIDE2NiwgMzksIDE3MywgMTM4LCAyMzEsIDE1OSwgMTY2LCAzOSwgMTczLCAxMzgsIDIzMSwgMTU4LCAxNjYsIDM5LCAxNzMsIAogICAgIDIxLCAyMTAsIDg2LCAxNjYsIDM5LCAxNzMsIDIxLCAxMTAsIDE2NiwgMzksIDE3MywgMjEsIDEwNSwgMTY2LCAzOSwgMTczLCAKICAgICAyMSwgMTU4LCAxNjYsIDM5LCAxNzMsIDIxLCAxNjEsIDE2NiwgMzksIDE3MywgMjEsIDE4OSwgMTY2LCAzOSwgMTczLCAyMSwgCiAgICAgMTk0LCAxNjYsIDM5LCAxNzMsIDIxLCAxOTgsIDE2NiwgMzksIDE3MywgMjEsIDE5NSwgMTY2LCAzOSwgMTczLCAyMSwgMjAwLCAKLSAgICAxNjYsIDM5LCAxNzMsIDg5LCAyMSwgMTEwLCAxNjYsIDM5LCAxNzMsIDUsIDIzMywgMTIwLCAxNjYsIDM5LCAxNzMsIDUsIAotICAgIDIzMywgMTE5LCA2OSwgMTYsIDIyNSwgMjM2LCA2OSwgMTYsIDIzMCwgNzIsIDIzNCwgMjUsIDY5LCAxNiwgMjI1LCA3MiwgCi0gICAgMjM0LCAyNSwgNjksIDE2LCAyNTIsIDUwLCAyMzQsIDI1LCA2OSwgMTYsIDI1MSwgMTA0LCAyMzQsIDI1LCA2OSwgMTYsIAotICAgIDIyNCwgMjE2LCAyMzQsIDI1LCA2OSwgMTYsIDIyNCwgMjEwLCAyMzQsIDI1LCA2OSwgMTYsIDIyNCwgMjA4LCAyMzQsIDI1LCAKLSAgICA2OSwgMTYsIDIyNCwgMjE0LCAyMzQsIDI1LCA2OSwgMTYsIDIyNCwgMjEyLCAyMzQsIDI1LCA2OSwgMTYsIDI0OCwgMTczLCAKLSAgICAyMzQsIDI1LCA2OSwgMTYsIDI0OCwgMTY5LCAyMzQsIDI1LCA2OSwgMTYsIDI0OCwgMTY4LCAyMzQsIDI1LCA2OSwgMTYsIAotICAgIDI0OCwgMTcxLCAyMzQsIDI1LCA2OSwgMTYsIDI0OCwgMTcwLCAyMzQsIDI1LCA2OSwgMTYsIDI0OCwgMTY3LCAyMzQsIDI1LCAKLSAgICA2OSwgMTYsIDIxNSwgODcsIDY5LCAxNiwgMjMwLCA3MiwgMjIyLCAyMDUsIDY5LCAxNiwgMjI1LCA3MiwgMjIyLCAyMDUsIAotICAgIDY5LCAxNiwgMjUyLCA1MCwgMjIyLCAyMDUsIDY5LCAxNiwgMjUxLCAxMDQsIDIyMiwgMjA1LCA2OSwgMTYsIDIyNCwgMjE2LCAKLSAgICAyMjIsIDIwNSwgNjksIDE2LCAyMjQsIDIxMCwgMjIyLCAyMDUsIDY5LCAxNiwgMjI0LCAyMDgsIDIyMiwgMjA1LCA2OSwgMTYsIAotICAgIDIyNCwgMjE0LCAyMjIsIDIwNSwgNjksIDE2LCAyMjQsIDIxMiwgMjIyLCAyMDUsIDY5LCAxNiwgMjQ4LCAxNzMsIDIyMiwgCi0gICAgMjA1LCA2OSwgMTYsIDI0OCwgMTY5LCAyMjIsIDIwNSwgNjksIDE2LCAyNDgsIDE2OCwgMjIyLCAyMDUsIDY5LCAxNiwgMjQ4LCAKLSAgICAxNzEsIDIyMiwgMjA1LCA2OSwgMTYsIDI0OCwgMTcwLCAyMjIsIDIwNSwgNjksIDE2LCAyNDgsIDE2NywgMjIyLCAyMDUsIAotICAgIDI1MSwgMTIxLCAxLCAxNzYsIDI1MSwgMTIxLCAxLCAyNDMsIDEzNSwgMjUxLCAxMjEsIDEsIDIyOSwgNzcsIDI1MSwgMTIxLCAKLSAgICAxLCAyMjksIDIyLCAyNTEsIDEyMSwgMSwgMTkwLCAyNTEsIDEyMSwgMSwgMjUyLCAxOTEsIDI1MSwgMTIxLCAxLCAxODQsIAotICAgIDI1MSwgMTIxLCAxLCAyMzAsIDEwNSwgMjUxLCAxMjEsIDEsIDIxNywgMTA1LCAyNTEsIDEyMSwgMSwgMjQ4LCAyMjEsIDI1MSwgCi0gICAgMTIxLCAxLCAxOTcsIDI1MSwgMTIxLCAxLCAyMjgsIDM2LCAyNTEsIDEyMSwgMSwgMjUxLCAzMywgMjUxLCAxMjEsIDEsIAotICAgIDIzNSwgMTQxLCAyNTEsIDEyMSwgMSwgMjI3LCAxNjUsIDI1MSwgMTIxLCAxLCAyMjcsIDE1OCwgMjUxLCAxMjEsIDEsIDE5MSwgCi0gICAgMjUxLCAxMjEsIDEsIDIwNSwgMjUxLCAxMjEsIDEsIDIzMywgMTM1LCAyNTEsIDEyMSwgMSwgMjE0LCAyNywgMjUxLCAxMjEsIAotICAgIDEsIDIwNiwgMjUxLCAxMjEsIDEsIDYxLCAyNTEsIDEyMSwgMSwgMTYyLCAyNTEsIDEyMSwgMjUsIDUsIDczLCAyNTEsIDEyMSwgCi0gICAgMjUsIDUsIDcwLCAyNTEsIDEyMSwgMjUsIDUsIDc1LCAyNTEsIDEyMSwgMjUsIDUsIDc2LCAyNTEsIDEyMSwgMjUsIDUsIAotICAgIDI1NCwgMjQzLCAyNTEsIDEyMSwgMjI2LCA2MCwgMjUxLCAxMjEsIDI0NSwgMTQzLCA2NCwgMjIxLCAxNzIsIDM5LCA4OSwgMSwgCi0gICAgMTI1LCAxNzYsIDM5LCA4OSwgMSwgMTI1LCAyMzQsIDEzMiwgMzksIDg5LCAxLCAxMjUsIDIzMywgMTcxLCAzOSwgODksIDEsIAotICAgIDEyMSwgMTc2LCAzOSwgODksIDEsIDEyMSwgMjMzLCAxNzEsIDM5LCA4OSwgMSwgMTIxLCAyMzQsIDEzMiwgMzksIDg5LCAxLCAKLSAgICAyMjksIDc3LCAzOSwgODksIDEsIDEyNSwgMjUxLCAzMywgMzksIDg5LCAxLCAxMjUsIDI1MCwgMTU3LCAzOSwgODksIDEsIAotICAgIDEyMSwgMjUxLCAzMywgMzksIDg5LCAxLCAxMjEsIDIwNiwgMzksIDg5LCAxLCAxMjEsIDI1MCwgMTU3LCAzOSwgODksIDEsIAotICAgIDIyNywgMTY1LCAzOSwgODksIDEsIDIyMywgMTQwLCAzOSwgODksIDEsIDEyNSwgMjIzLCAxMzgsIDM5LCA4OSwgMSwgMjQ4LCAKLSAgICAyMjEsIDM5LCA4OSwgMSwgMTIxLCAyMjMsIDEzOCwgMzksIDg5LCAxLCAyMjMsIDE0OSwgMzksIDg5LCAxLCAxMjUsIDIxNywgCi0gICAgMTA1LCAzOSwgODksIDEsIDEyNSwgMjE2LCAyMDgsIDM5LCA4OSwgMSwgMTIxLCAyMTcsIDEwNSwgMzksIDg5LCAxLCAxMjEsIAotICAgIDIxNiwgMjA4LCAzOSwgODksIDEsIDE5NywgMzksIDg5LCAxLCAyNTIsIDE5MSwgMzksIDg5LCAxLCAxMjUsIDE5MCwgMzksIAotICAgIDg5LCAxLCAxMjUsIDIyNSwgMTQ3LCAzOSwgODksIDEsIDEyNSwgMjQ0LCAxOTYsIDM5LCA4OSwgMSwgMTIxLCAxOTAsIDM5LCAKLSAgICA4OSwgMSwgMTIxLCAyNDQsIDE5NiwgMzksIDg5LCAxLCAxMjEsIDIyNSwgMTQ3LCAzOSwgODksIDEsIDE4NCwgMzksIDg5LCAKLSAgICAxLCAxMjEsIDE5MSwgMzksIDg5LCAxLCAxMjUsIDE5MSwgMzksIDg5LCAxLCAyMDUsIDM5LCA4OSwgMSwgMjIyLCAxMzcsIAotICAgIDM5LCA4OSwgMSwgMjMzLCAxMzUsIDM5LCA4OSwgMSwgMjMyLCA5MywgMzksIDg5LCAxLCAyMTIsIDY1LCAzOSwgODksIDEsIAotICAgIDEyNSwgMjIwLCAxMDIsIDM5LCA4OSwgMSwgMTI1LCAyMTgsIDIyMywgMzksIDg5LCAxLCAxMjUsIDIwNiwgMzksIDg5LCAxLCAKLSAgICAxMjUsIDE2MiwgMzksIDg5LCAxLCAyMzIsIDE4NCwgMzksIDg5LCAxLCA2MSwgMzksIDg5LCAxLCAxMjEsIDE2MiwgMzksIAotICAgIDg5LCAxLCA3MywgMzksIDg5LCAxLCAyMzYsIDMzLCAzOSwgODksIDEsIDcwLCAzOSwgODksIDEsIDIxNCwgMTE4LCAzOSwgCi0gICAgODksIDEsIDI0NSwgMjA5LCAzOSwgODksIDEsIDIyNiwgMTgzLCAzOSwgODksIDEsIDIzMywgMTIwLCAzOSwgODksIDEsIAotICAgIDI0MiwgMTMyLCAyMDYsIDM5LCA4OSwgMTE2LCA1LCAxNDcsIDIwNSwgMzksIDg5LCAxMTYsIDUsIDE0NywgMjMzLCAxMzUsIAotICAgIDM5LCA4OSwgMTE2LCA1LCAyMzMsIDEzNiwgMjE3LCA1OCwgMjMzLCAxMDksIDM5LCA4OSwgNSwgMjMxLCAyMDQsIDIzNCwgCi0gICAgMjMxLCAyMzMsIDEwOSwgMzksIDg5LCAxMTYsIDUsIDQwLCAyMjksIDc3LCAzOSwgODksIDExNiwgNSwgMTIxLCAxOTAsIDM5LCAKLSAgICA4OSwgMTE2LCA1LCAxMjUsIDIyMywgMTM5LCAxNzcsIDEyMSwgMTkwLCAzOSwgODksIDExNiwgNSwgMTg0LCAzOSwgODksIAotICAgIDExNiwgNSwgMjUyLCAxOTEsIDM5LCA4OSwgMTE2LCA1LCAyMDYsIDM5LCA4OSwgNSwgMjIyLCAxMCwgMzksIDg5LCAyNSwgNSwgCi0gICAgNjEsIDM5LCA4OSwgMjUsIDUsIDIzMSwgMjA0LCAyMjEsIDIyNiwgMzksIDg5LCAyNSwgNSwgMjU1LCA3MywgMzksIDg5LCAKLSAgICAyNSwgNSwgMjE3LCA2NCwgMjU1LCA3MywgMzksIDg5LCAyNSwgNSwgNzMsIDM5LCA4OSwgMjUsIDUsIDIzNiwgMzMsIDM5LCAKKyAgICAxNjYsIDM5LCAxNzMsIDg5LCAyMSwgMTEwLCAxNjYsIDM5LCAxNzMsIDUsIDIzMywgMTIxLCAxNjYsIDM5LCAxNzMsIDUsIAorICAgIDIzMywgMTIwLCA2OSwgMTYsIDIyNSwgMjM3LCA2OSwgMTYsIDIzMCwgNzMsIDIzNCwgMjYsIDY5LCAxNiwgMjI1LCA3MywgCisgICAgMjM0LCAyNiwgNjksIDE2LCAyNTIsIDUxLCAyMzQsIDI2LCA2OSwgMTYsIDI1MSwgMTA1LCAyMzQsIDI2LCA2OSwgMTYsIAorICAgIDIyNCwgMjE3LCAyMzQsIDI2LCA2OSwgMTYsIDIyNCwgMjExLCAyMzQsIDI2LCA2OSwgMTYsIDIyNCwgMjA5LCAyMzQsIDI2LCAKKyAgICA2OSwgMTYsIDIyNCwgMjE1LCAyMzQsIDI2LCA2OSwgMTYsIDIyNCwgMjEzLCAyMzQsIDI2LCA2OSwgMTYsIDI0OCwgMTc0LCAKKyAgICAyMzQsIDI2LCA2OSwgMTYsIDI0OCwgMTcwLCAyMzQsIDI2LCA2OSwgMTYsIDI0OCwgMTY5LCAyMzQsIDI2LCA2OSwgMTYsIAorICAgIDI0OCwgMTcyLCAyMzQsIDI2LCA2OSwgMTYsIDI0OCwgMTcxLCAyMzQsIDI2LCA2OSwgMTYsIDI0OCwgMTY4LCAyMzQsIDI2LCAKKyAgICA2OSwgMTYsIDIxNSwgODcsIDY5LCAxNiwgMjMwLCA3MywgMjIyLCAyMDYsIDY5LCAxNiwgMjI1LCA3MywgMjIyLCAyMDYsIAorICAgIDY5LCAxNiwgMjUyLCA1MSwgMjIyLCAyMDYsIDY5LCAxNiwgMjUxLCAxMDUsIDIyMiwgMjA2LCA2OSwgMTYsIDIyNCwgMjE3LCAKKyAgICAyMjIsIDIwNiwgNjksIDE2LCAyMjQsIDIxMSwgMjIyLCAyMDYsIDY5LCAxNiwgMjI0LCAyMDksIDIyMiwgMjA2LCA2OSwgMTYsIAorICAgIDIyNCwgMjE1LCAyMjIsIDIwNiwgNjksIDE2LCAyMjQsIDIxMywgMjIyLCAyMDYsIDY5LCAxNiwgMjQ4LCAxNzQsIDIyMiwgCisgICAgMjA2LCA2OSwgMTYsIDI0OCwgMTcwLCAyMjIsIDIwNiwgNjksIDE2LCAyNDgsIDE2OSwgMjIyLCAyMDYsIDY5LCAxNiwgMjQ4LCAKKyAgICAxNzIsIDIyMiwgMjA2LCA2OSwgMTYsIDI0OCwgMTcxLCAyMjIsIDIwNiwgNjksIDE2LCAyNDgsIDE2OCwgMjIyLCAyMDYsIAorICAgIDI1MSwgMTIyLCAxLCAxNzYsIDI1MSwgMTIyLCAxLCAyNDMsIDEzNiwgMjUxLCAxMjIsIDEsIDIyOSwgNzgsIDI1MSwgMTIyLCAKKyAgICAxLCAyMjksIDIzLCAyNTEsIDEyMiwgMSwgMTkwLCAyNTEsIDEyMiwgMSwgMjUyLCAxOTIsIDI1MSwgMTIyLCAxLCAxODUsIAorICAgIDI1MSwgMTIyLCAxLCAyMzAsIDEwNiwgMjUxLCAxMjIsIDEsIDIxNywgMTA2LCAyNTEsIDEyMiwgMSwgMjQ4LCAyMjIsIDI1MSwgCisgICAgMTIyLCAxLCAxOTcsIDI1MSwgMTIyLCAxLCAyMjgsIDM3LCAyNTEsIDEyMiwgMSwgMjUxLCAzNCwgMjUxLCAxMjIsIDEsIAorICAgIDIzNSwgMTQyLCAyNTEsIDEyMiwgMSwgMjI3LCAxNjYsIDI1MSwgMTIyLCAxLCAyMjcsIDE1OSwgMjUxLCAxMjIsIDEsIDE5MSwgCisgICAgMjUxLCAxMjIsIDEsIDIwNSwgMjUxLCAxMjIsIDEsIDIzMywgMTM2LCAyNTEsIDEyMiwgMSwgMjE0LCAyNywgMjUxLCAxMjIsIAorICAgIDEsIDIwNiwgMjUxLCAxMjIsIDEsIDYxLCAyNTEsIDEyMiwgMSwgMTYyLCAyNTEsIDEyMiwgMjUsIDUsIDczLCAyNTEsIDEyMiwgCisgICAgMjUsIDUsIDcwLCAyNTEsIDEyMiwgMjUsIDUsIDc1LCAyNTEsIDEyMiwgMjUsIDUsIDc2LCAyNTEsIDEyMiwgMjUsIDUsIAorICAgIDI1NCwgMjQ0LCAyNTEsIDEyMiwgMjI2LCA2MSwgMjUxLCAxMjIsIDI0NSwgMTQ0LCA2NCwgMjIxLCAxNzMsIDM5LCA4OSwgMSwgCisgICAgMTI1LCAxNzYsIDM5LCA4OSwgMSwgMTI1LCAyMzQsIDEzMywgMzksIDg5LCAxLCAxMjUsIDIzMywgMTcyLCAzOSwgODksIDEsIAorICAgIDEyMSwgMTc2LCAzOSwgODksIDEsIDEyMSwgMjMzLCAxNzIsIDM5LCA4OSwgMSwgMTIxLCAyMzQsIDEzMywgMzksIDg5LCAxLCAKKyAgICAyMjksIDc4LCAzOSwgODksIDEsIDEyNSwgMjUxLCAzNCwgMzksIDg5LCAxLCAxMjUsIDI1MCwgMTU4LCAzOSwgODksIDEsIAorICAgIDEyMSwgMjUxLCAzNCwgMzksIDg5LCAxLCAxMjEsIDIwNiwgMzksIDg5LCAxLCAxMjEsIDI1MCwgMTU4LCAzOSwgODksIDEsIAorICAgIDIyNywgMTY2LCAzOSwgODksIDEsIDIyMywgMTQxLCAzOSwgODksIDEsIDEyNSwgMjIzLCAxMzksIDM5LCA4OSwgMSwgMjQ4LCAKKyAgICAyMjIsIDM5LCA4OSwgMSwgMTIxLCAyMjMsIDEzOSwgMzksIDg5LCAxLCAyMjMsIDE1MCwgMzksIDg5LCAxLCAxMjUsIDIxNywgCisgICAgMTA2LCAzOSwgODksIDEsIDEyNSwgMjE2LCAyMDksIDM5LCA4OSwgMSwgMTIxLCAyMTcsIDEwNiwgMzksIDg5LCAxLCAxMjEsIAorICAgIDIxNiwgMjA5LCAzOSwgODksIDEsIDE5NywgMzksIDg5LCAxLCAyNTIsIDE5MiwgMzksIDg5LCAxLCAxMjUsIDE5MCwgMzksIAorICAgIDg5LCAxLCAxMjUsIDIyNSwgMTQ4LCAzOSwgODksIDEsIDEyNSwgMjQ0LCAxOTcsIDM5LCA4OSwgMSwgMTIxLCAxOTAsIDM5LCAKKyAgICA4OSwgMSwgMTIxLCAyNDQsIDE5NywgMzksIDg5LCAxLCAxMjEsIDIyNSwgMTQ4LCAzOSwgODksIDEsIDE4NSwgMzksIDg5LCAKKyAgICAxLCAxMjEsIDE5MSwgMzksIDg5LCAxLCAxMjUsIDE5MSwgMzksIDg5LCAxLCAyMDUsIDM5LCA4OSwgMSwgMjIyLCAxMzgsIAorICAgIDM5LCA4OSwgMSwgMjMzLCAxMzYsIDM5LCA4OSwgMSwgMjMyLCA5NCwgMzksIDg5LCAxLCAyMTIsIDY1LCAzOSwgODksIDEsIAorICAgIDEyNSwgMjIwLCAxMDMsIDM5LCA4OSwgMSwgMTI1LCAyMTgsIDIyNCwgMzksIDg5LCAxLCAxMjUsIDIwNiwgMzksIDg5LCAxLCAKKyAgICAxMjUsIDE2MiwgMzksIDg5LCAxLCAyMzIsIDE4NSwgMzksIDg5LCAxLCA2MSwgMzksIDg5LCAxLCAxMjEsIDE2MiwgMzksIAorICAgIDg5LCAxLCA3MywgMzksIDg5LCAxLCAyMzYsIDM0LCAzOSwgODksIDEsIDcwLCAzOSwgODksIDEsIDIxNCwgMTE4LCAzOSwgCisgICAgODksIDEsIDI0NSwgMjEwLCAzOSwgODksIDEsIDIyNiwgMTg0LCAzOSwgODksIDEsIDIzMywgMTIxLCAzOSwgODksIDEsIAorICAgIDI0MiwgMTMzLCAyMDYsIDM5LCA4OSwgMTE2LCA1LCAxNDcsIDIwNSwgMzksIDg5LCAxMTYsIDUsIDE0NywgMjMzLCAxMzYsIAorICAgIDM5LCA4OSwgMTE2LCA1LCAyMzMsIDEzNywgMjE3LCA1OSwgMjMzLCAxMTAsIDM5LCA4OSwgNSwgMjMxLCAyMDUsIDIzNCwgCisgICAgMjMyLCAyMzMsIDExMCwgMzksIDg5LCAxMTYsIDUsIDQwLCAyMjksIDc4LCAzOSwgODksIDExNiwgNSwgMTIxLCAxOTAsIDM5LCAKKyAgICA4OSwgMTE2LCA1LCAxMjUsIDIyMywgMTQwLCAxNzcsIDEyMSwgMTkwLCAzOSwgODksIDExNiwgNSwgMTg1LCAzOSwgODksIAorICAgIDExNiwgNSwgMjUyLCAxOTIsIDM5LCA4OSwgMTE2LCA1LCAyMDYsIDM5LCA4OSwgNSwgMjIyLCAxMSwgMzksIDg5LCAyNSwgNSwgCisgICAgNjEsIDM5LCA4OSwgMjUsIDUsIDIzMSwgMjA1LCAyMjEsIDIyNywgMzksIDg5LCAyNSwgNSwgMjU1LCA3NCwgMzksIDg5LCAKKyAgICAyNSwgNSwgMjE3LCA2NSwgMjU1LCA3NCwgMzksIDg5LCAyNSwgNSwgNzMsIDM5LCA4OSwgMjUsIDUsIDIzNiwgMzQsIDM5LCAKICAgICA4OSwgMjUsIDUsIDIxNCwgMjE0LCAzOSwgODksIDI1LCA1LCAyMTQsIDExNywgMzksIDg5LCAyNSwgNSwgNzAsIDM5LCA4OSwgCi0gICAgMjUsIDUsIDIxNCwgMTE4LCAzOSwgODksIDI1LCA1LCA3NiwgMzksIDg5LCAyNSwgNSwgMjI3LCAxLCA1MSwgMzksIDg5LCAKLSAgICAyNSwgNSwgMjI2LCAxMDksIDM5LCA4OSwgMjUsIDUsIDc1LCAzOSwgODksIDI1LCA1LCAyNTQsIDI0MywgMzksIDg5LCAyNSwgCi0gICAgNSwgMjI2LCAxODMsIDM5LCA4OSwgMjUsIDUsIDI1NCwgMjAxLCAzOSwgODksIDI1LCA1LCA4OSwgMjU0LCAyMDEsIDM5LCAKLSAgICA4OSwgMjUsIDUsIDIyNywgMSwgNDgsIDM5LCA4OSwgNSwgMjMxLCAyMDQsIDIzNCwgMjMwLCAzOSwgODksIDUsIDIxNiwgMjksIAotICAgIDM5LCA4OSwgNSwgMjE2LCAyOCwgMzksIDg5LCA1LCAyMzQsIDk3LCAyMTYsIDI3LCAzOSwgODksIDUsIDIzNCwgOTcsIDIxNiwgCi0gICAgMjYsIDM5LCA4OSwgNSwgMjM0LCA5NywgMjE2LCAyNSwgMzksIDg5LCA1LCAyMjMsIDE4OCwgMjQyLCA0NSwgMzksIDg5LCA1LCAKLSAgICAyMzEsIDIwNCwgMjIxLCAyNTMsIDM5LCA4OSwgNSwgMjM0LCA5NiwgMjM0LCAyMTUsIDM5LCA4OSwgMzgsIDI0OSwgMTE1LCAKLSAgICAyNDcsIDEyMCwgMzksIDg5LCAyNDEsIDQ2LCAyMSwgMjEwLCA4NiwgMzksIDg5LCAyNDEsIDQ2LCAyMSwgMTEwLCAzOSwgODksIAotICAgIDI0MSwgNDYsIDIxLCAxMDUsIDM5LCA4OSwgMjQxLCA0NiwgMjEsIDE1OCwgMzksIDg5LCAyNDEsIDQ2LCAyMSwgMTYxLCAzOSwgCi0gICAgODksIDI0MSwgNDYsIDIxLCAxODksIDM5LCA4OSwgMjQxLCA0NiwgMjEsIDE5NCwgMzksIDg5LCAyNDEsIDQ2LCAyMSwgMTk4LCAKLSAgICAzOSwgODksIDI0MSwgNDYsIDIxLCAxOTUsIDM5LCA4OSwgMjQxLCA0NiwgMjEsIDIwMCwgMzksIDg5LCA4OSwgMjEsIDIxMCwgCisgICAgMjUsIDUsIDIxNCwgMTE4LCAzOSwgODksIDI1LCA1LCA3NiwgMzksIDg5LCAyNSwgNSwgMjI3LCAyLCA1MSwgMzksIDg5LCAKKyAgICAyNSwgNSwgMjI2LCAxMTAsIDM5LCA4OSwgMjUsIDUsIDc1LCAzOSwgODksIDI1LCA1LCAyNTQsIDI0NCwgMzksIDg5LCAyNSwgCisgICAgNSwgMjI2LCAxODQsIDM5LCA4OSwgMjUsIDUsIDI1NCwgMjAyLCAzOSwgODksIDI1LCA1LCA4OSwgMjU0LCAyMDIsIDM5LCAKKyAgICA4OSwgMjUsIDUsIDIyNywgMiwgNDgsIDM5LCA4OSwgNSwgMjMxLCAyMDUsIDIzNCwgMjMxLCAzOSwgODksIDUsIDIxNiwgMzAsIAorICAgIDM5LCA4OSwgNSwgMjE2LCAyOSwgMzksIDg5LCA1LCAyMzQsIDk4LCAyMTYsIDI4LCAzOSwgODksIDUsIDIzNCwgOTgsIDIxNiwgCisgICAgMjcsIDM5LCA4OSwgNSwgMjM0LCA5OCwgMjE2LCAyNiwgMzksIDg5LCA1LCAyMjMsIDE4OSwgMjQyLCA0NiwgMzksIDg5LCA1LCAKKyAgICAyMzEsIDIwNSwgMjIxLCAyNTQsIDM5LCA4OSwgNSwgMjM0LCA5NywgMjM0LCAyMTYsIDM5LCA4OSwgMzgsIDI0OSwgMTE2LCAKKyAgICAyNDcsIDEyMSwgMzksIDg5LCAyNDEsIDQ3LCAyMSwgMjEwLCA4NiwgMzksIDg5LCAyNDEsIDQ3LCAyMSwgMTEwLCAzOSwgODksIAorICAgIDI0MSwgNDcsIDIxLCAxMDUsIDM5LCA4OSwgMjQxLCA0NywgMjEsIDE1OCwgMzksIDg5LCAyNDEsIDQ3LCAyMSwgMTYxLCAzOSwgCisgICAgODksIDI0MSwgNDcsIDIxLCAxODksIDM5LCA4OSwgMjQxLCA0NywgMjEsIDE5NCwgMzksIDg5LCAyNDEsIDQ3LCAyMSwgMTk4LCAKKyAgICAzOSwgODksIDI0MSwgNDcsIDIxLCAxOTUsIDM5LCA4OSwgMjQxLCA0NywgMjEsIDIwMCwgMzksIDg5LCA4OSwgMjEsIDIxMCwgCiAgICAgODYsIDM5LCA4OSwgODksIDIxLCAxMTAsIDM5LCA4OSwgODksIDIxLCAxMDUsIDM5LCA4OSwgODksIDIxLCAxNTgsIDM5LCAKICAgICA4OSwgODksIDIxLCAxNjEsIDM5LCA4OSwgODksIDIxLCAxODksIDM5LCA4OSwgODksIDIxLCAxOTQsIDM5LCA4OSwgODksIAogICAgIDIxLCAxOTgsIDM5LCA4OSwgODksIDIxLCAxOTUsIDM5LCA4OSwgODksIDIxLCAyMDAsIDM5LCA4OSwgNSwgMjExLCAyNDksIAotICAgIDM5LCA4OSwgNSwgMjExLCAyNDgsIDM5LCA4OSwgNSwgMjIxLCAyMTUsIDM5LCA4OSwgNSwgMjM0LCAxNjAsIDM5LCA4OSwgNSwgCi0gICAgMjQwLCAyMzIsIDM5LCA4OSwgNSwgMjQ3LCAxMzQsIDM5LCA4OSwgNSwgMjIzLCA0OSwgMjIyLCAxODcsIDIyMywgMTQ5LCAKLSAgICAzOSwgODksIDUsIDIzMSwgMjA0LCAyMTEsIDcyLCAzOSwgODksIDUsIDIzNSwgNiwgMzksIDg5LCA1LCAyMzUsIDUsIDM5LCAKLSAgICA4OSwgNSwgMjIxLCAyMjIsIDM5LCA4OSwgNSwgMjIxLCAyMjEsIDM5LCA4OSwgNSwgMjQyLCA5LCAzOSwgODksIDUsIDI1MSwgCi0gICAgMzAsIDEwMiwgNSwgMjE0LCAyMDAsIDIyMywgMzAsIDEwMiwgNSwgMjE0LCAyMDAsIDI1MSwgMSwgMTAyLCA1LCAyNTAsIAotICAgIDE4NiwgMTAyLCA1LCAyMTgsIDE1LCAxMDIsIDUsIDI1MSwgMjMzLCAxMDIsIDEsIDI1NCwgMTg0LCAxMDIsIDEsIDI1NCwgCi0gICAgMTg1LCAyMTcsIDEzLCAxMDIsIDEsIDIzNiwgMjksIDEwMiwgMSwgMjM2LCAzMCwgMjE3LCAxMywgMTAyLCAxLCAyMTQsIAotICAgIDIwMywgMTAyLCAxLCAyMTQsIDIwNCwgMjE3LCAxMywgMTAyLCAxLCAyMjMsIDE4OCwgMjIzLCA3OSwgMTAyLCAxLCAyMjMsIAotICAgIDE4OCwgMjIzLCA4MCwgMjE3LCAxMywgMTAyLCAxLCAyMzMsIDEzNiwgMjMzLCAyNCwgMTAyLCAxLCAyMzMsIDEzNiwgMjMzLCAKLSAgICAyNSwgMjE3LCAxMywgMTAyLCAxLCAyNDUsIDE3OSwgMTAyLCAxLCAyNTQsIDE5OSwgMTAyLCAxLCAyMjYsIDIxMiwgMTAyLCAKLSAgICAxLCAyMjYsIDIxMywgMjE3LCAxMywgMTAyLCAxLCAxNzYsIDEwMiwgMSwgMjM1LCAxMywgMjMxLCAyMDcsIDEwMiwgMSwgCi0gICAgMjQzLCAxMzUsIDEwMiwgMSwgMjQzLCAxMzYsIDI0MiwgMTYxLCAxMDIsIDEsIDIyOSwgNzcsIDEwMiwgMSwgMjUxLCAzMywgCi0gICAgMTAyLCAxLCAyNTEsIDM0LCAyMzMsIDEyMywgMTAyLCAxLCAyMzUsIDE0MSwgMTAyLCAxLCAyMzUsIDE0MiwgMjM1LCAxMTgsIAotICAgIDEwMiwgMSwgMjI3LCAxNjUsIDEwMiwgMSwgMjE3LCAxMDYsIDIzMywgNzYsIDEwMiwgMSwgMjE3LCAxMDYsIDIzMCwgNjcsIAotICAgIDIzMSwgMjA3LCAxMDIsIDEsIDI0OCwgMjIyLCAyMzAsIDY3LCAyNTQsIDE0NSwgMTAyLCAxLCAyNDgsIDIyMiwgMjMwLCA2NywgCi0gICAgMjMxLCAyMDcsIDEwMiwgMSwgMjI5LCAyMjksIDIyMywgMTUyLCAxMDIsIDEsIDIxNywgMTA1LCAxMDIsIDEsIDIxNywgMTA2LCAKLSAgICAyMTcsIDM1LCAxMDIsIDEsIDI0OCwgMjIxLCAxMDIsIDEsIDI0OCwgMjIyLCAyMzEsIDIyNSwgMTAyLCAxLCAxOTcsIDEwMiwgCi0gICAgMSwgMTkwLCAxMDIsIDEsIDIyNiwgOTAsIDIzNCwgMjI2LCAxMDIsIDEsIDI1MiwgMTkxLCAxMDIsIDEsIDI1MiwgMTkyLCAKLSAgICAyMzQsIDE3MiwgMTAyLCAxLCAxODQsIDEwMiwgMSwgMTkxLCAxMDIsIDEsIDIwNSwgMTAyLCAxLCAyMzMsIDEzNSwgMTAyLCAKLSAgICAxLCAyMTIsIDY1LCAxMDIsIDEsIDIyMiwgMzQsIDIyMiwgMjAsIDEwMiwgMSwgMjIyLCAzNCwgMjIxLCAyMzMsIDEwMiwgMSwgCi0gICAgMjA2LCAxMDIsIDEsIDE2MiwgMTAyLCA1LCAyMjMsIDcwLCAxMDIsIDI1LCA1LCAyMTcsIDEzLCAxMDIsIDI1LCA1LCAyMTQsIAotICAgIDE5OSwgMTAyLCAyNSwgNSwgMjE0LCAyMDAsIDIyMSwgMjI5LCAxMDIsIDI1LCA1LCAyMTgsIDQ3LCAxMDIsIDI1LCA1LCAKLSAgICAyMTgsIDQ4LCAyMzYsIDIxLCAxMDIsIDI1LCA1LCAyMjMsIDE4OCwgMjIzLCA3OSwgMTAyLCAyNSwgNSwgMjIzLCAxODgsIAotICAgIDIyMywgODAsIDIxNywgMTMsIDEwMiwgMjUsIDUsIDIzMywgMTM2LCAyMzMsIDI0LCAxMDIsIDI1LCA1LCAyMzMsIDEzNiwgCi0gICAgMjMzLCAyNSwgMjE3LCAxMywgMTAyLCAyNSwgNSwgMjE3LCA2NSwgMTAyLCAyNSwgNSwgMjE3LCA2NiwgMjIzLCA3OSwgMTAyLCAKLSAgICAyNSwgNSwgMjE3LCA2NiwgMjE3LCAxMywgMTAyLCAyNSwgNSwgMjE3LCA2NiwgMjIzLCA4MCwgMjE3LCAxMywgMTAyLCAyNSwgCi0gICAgNSwgMjI1LCAxODQsIDEwMiwgMjUsIDUsIDIyNSwgMTg1LCAyMTcsIDEzLCAxMDIsIDI1NCwgMjUwLCAyNTQsIDI0OSwgMTAyLCAKLSAgICAxLCAyMzQsIDI1MSwgMjIxLCAyMjgsIDEwMiwgMSwgMjM0LCAxMDIsIDIyMSwgMjI4LCAxMDIsIDEsIDIxNSwgMzQsIDIyMSwgCi0gICAgMjI4LCAxMDIsIDEsIDI0NSwgMjAzLCAyMjEsIDIyOCwgMTAyLCAxLCAyMTQsIDAsIDIyMSwgMjI4LCAxMDIsIDEsIDIxMCwgCi0gICAgMTA3LCAyMjEsIDIyOCwgMTAyLCAxLCAyNTMsIDIwOSwgMjIxLCAyMjgsIDEwMiwgMjEsIDIxMCwgODYsIDEwMiwgMjEsIAorICAgIDM5LCA4OSwgNSwgMjExLCAyNDgsIDM5LCA4OSwgNSwgMjIxLCAyMTYsIDM5LCA4OSwgNSwgMjM0LCAxNjEsIDM5LCA4OSwgNSwgCisgICAgMjQwLCAyMzMsIDM5LCA4OSwgNSwgMjQ3LCAxMzUsIDM5LCA4OSwgNSwgMjIzLCA1MCwgMjIyLCAxODgsIDIyMywgMTUwLCAKKyAgICAzOSwgODksIDUsIDIzMSwgMjA1LCAyMTEsIDcyLCAzOSwgODksIDUsIDIzNSwgNywgMzksIDg5LCA1LCAyMzUsIDYsIDM5LCAKKyAgICA4OSwgNSwgMjIxLCAyMjMsIDM5LCA4OSwgNSwgMjIxLCAyMjIsIDM5LCA4OSwgNSwgMjQyLCAxMCwgMzksIDg5LCA1LCAyNTEsIAorICAgIDMxLCAxMDIsIDUsIDIxNCwgMjAwLCAyMjMsIDMxLCAxMDIsIDUsIDIxNCwgMjAwLCAyNTEsIDIsIDEwMiwgNSwgMjUwLCAKKyAgICAxODcsIDEwMiwgNSwgMjE4LCAxNiwgMTAyLCA1LCAyNTEsIDIzNCwgMTAyLCAxLCAyNTQsIDE4NSwgMTAyLCAxLCAyNTQsIAorICAgIDE4NiwgMjE3LCAxNCwgMTAyLCAxLCAyMzYsIDMwLCAxMDIsIDEsIDIzNiwgMzEsIDIxNywgMTQsIDEwMiwgMSwgMjE0LCAKKyAgICAyMDMsIDEwMiwgMSwgMjE0LCAyMDQsIDIxNywgMTQsIDEwMiwgMSwgMjIzLCAxODksIDIyMywgODAsIDEwMiwgMSwgMjIzLCAKKyAgICAxODksIDIyMywgODEsIDIxNywgMTQsIDEwMiwgMSwgMjMzLCAxMzcsIDIzMywgMjUsIDEwMiwgMSwgMjMzLCAxMzcsIDIzMywgCisgICAgMjYsIDIxNywgMTQsIDEwMiwgMSwgMjQ1LCAxODAsIDEwMiwgMSwgMjU0LCAyMDAsIDEwMiwgMSwgMjI2LCAyMTMsIDEwMiwgCisgICAgMSwgMjI2LCAyMTQsIDIxNywgMTQsIDEwMiwgMSwgMTc2LCAxMDIsIDEsIDIzNSwgMTQsIDIzMSwgMjA4LCAxMDIsIDEsIAorICAgIDI0MywgMTM2LCAxMDIsIDEsIDI0MywgMTM3LCAyNDIsIDE2MiwgMTAyLCAxLCAyMjksIDc4LCAxMDIsIDEsIDI1MSwgMzQsIAorICAgIDEwMiwgMSwgMjUxLCAzNSwgMjMzLCAxMjQsIDEwMiwgMSwgMjM1LCAxNDIsIDEwMiwgMSwgMjM1LCAxNDMsIDIzNSwgMTE5LCAKKyAgICAxMDIsIDEsIDIyNywgMTY2LCAxMDIsIDEsIDIxNywgMTA3LCAyMzMsIDc3LCAxMDIsIDEsIDIxNywgMTA3LCAyMzAsIDY4LCAKKyAgICAyMzEsIDIwOCwgMTAyLCAxLCAyNDgsIDIyMywgMjMwLCA2OCwgMjU0LCAxNDYsIDEwMiwgMSwgMjQ4LCAyMjMsIDIzMCwgNjgsIAorICAgIDIzMSwgMjA4LCAxMDIsIDEsIDIyOSwgMjMwLCAyMjMsIDE1MywgMTAyLCAxLCAyMTcsIDEwNiwgMTAyLCAxLCAyMTcsIDEwNywgCisgICAgMjE3LCAzNiwgMTAyLCAxLCAyNDgsIDIyMiwgMTAyLCAxLCAyNDgsIDIyMywgMjMxLCAyMjYsIDEwMiwgMSwgMTk3LCAxMDIsIAorICAgIDEsIDE5MCwgMTAyLCAxLCAyMjYsIDkxLCAyMzQsIDIyNywgMTAyLCAxLCAyNTIsIDE5MiwgMTAyLCAxLCAyNTIsIDE5MywgCisgICAgMjM0LCAxNzMsIDEwMiwgMSwgMTg1LCAxMDIsIDEsIDE5MSwgMTAyLCAxLCAyMDUsIDEwMiwgMSwgMjMzLCAxMzYsIDEwMiwgCisgICAgMSwgMjEyLCA2NSwgMTAyLCAxLCAyMjIsIDM1LCAyMjIsIDIxLCAxMDIsIDEsIDIyMiwgMzUsIDIyMSwgMjM0LCAxMDIsIDEsIAorICAgIDIwNiwgMTAyLCAxLCAxNjIsIDEwMiwgNSwgMjIzLCA3MSwgMTAyLCAyNSwgNSwgMjE3LCAxNCwgMTAyLCAyNSwgNSwgMjE0LCAKKyAgICAxOTksIDEwMiwgMjUsIDUsIDIxNCwgMjAwLCAyMjEsIDIzMCwgMTAyLCAyNSwgNSwgMjE4LCA0OCwgMTAyLCAyNSwgNSwgCisgICAgMjE4LCA0OSwgMjM2LCAyMiwgMTAyLCAyNSwgNSwgMjIzLCAxODksIDIyMywgODAsIDEwMiwgMjUsIDUsIDIyMywgMTg5LCAKKyAgICAyMjMsIDgxLCAyMTcsIDE0LCAxMDIsIDI1LCA1LCAyMzMsIDEzNywgMjMzLCAyNSwgMTAyLCAyNSwgNSwgMjMzLCAxMzcsIAorICAgIDIzMywgMjYsIDIxNywgMTQsIDEwMiwgMjUsIDUsIDIxNywgNjYsIDEwMiwgMjUsIDUsIDIxNywgNjcsIDIyMywgODAsIDEwMiwgCisgICAgMjUsIDUsIDIxNywgNjcsIDIxNywgMTQsIDEwMiwgMjUsIDUsIDIxNywgNjcsIDIyMywgODEsIDIxNywgMTQsIDEwMiwgMjUsIAorICAgIDUsIDIyNSwgMTg1LCAxMDIsIDI1LCA1LCAyMjUsIDE4NiwgMjE3LCAxNCwgMTAyLCAyNTQsIDI1MSwgMjU0LCAyNTAsIDEwMiwgCisgICAgMSwgMjM0LCAyNTIsIDIyMSwgMjI5LCAxMDIsIDEsIDIzNCwgMTAzLCAyMjEsIDIyOSwgMTAyLCAxLCAyMTUsIDM0LCAyMjEsIAorICAgIDIyOSwgMTAyLCAxLCAyNDUsIDIwNCwgMjIxLCAyMjksIDEwMiwgMSwgMjE0LCAwLCAyMjEsIDIyOSwgMTAyLCAxLCAyMTAsIAorICAgIDEwNywgMjIxLCAyMjksIDEwMiwgMSwgMjUzLCAyMTAsIDIyMSwgMjI5LCAxMDIsIDIxLCAyMTAsIDg2LCAxMDIsIDIxLCAKICAgICAxMTAsIDEwMiwgMjEsIDEwNSwgMTAyLCAyMSwgMTU4LCAxMDIsIDIxLCAxNjEsIDEwMiwgMjEsIDE4OSwgMTAyLCAyMSwgCi0gICAgMTk0LCAxMDIsIDIxLCAxOTgsIDEwMiwgMjEsIDE5NSwgMTAyLCAyMSwgMjAwLCAxMDIsIDIyNiwgMjksIDEwMiwgMjI2LCAKLSAgICA1NSwgMTAyLCAyMTEsIDIzOCwgMTAyLCAyNTAsIDIzNiwgMjI2LCA0OCwgMTAyLCAyNTAsIDIzNiwgMjE5LCAxNzIsIDEwMiwgCi0gICAgMjUwLCAyMzYsIDIyNiwgMiwgMTAyLCAyMjYsIDU0LCAxMDIsIDI4LCAxNiwgMjQ3LCAxMjYsIDEwMiwgMjgsIDE2LCAyNDgsIAotICAgIDUxLCAxMDIsIDI4LCAxNiwgMjQ2LCA2NCwgMTAyLCAyOCwgMTYsIDI0OCwgMTc2LCAxMDIsIDI4LCAxNiwgMjQ4LCAxNzcsIAotICAgIDIxOCwgMTUsIDEwMiwgMjgsIDE2LCAyNDcsIDIwNSwgMTAyLCAyOCwgMTYsIDI0OCwgMjE0LCAxMDIsIDI4LCAxNiwgMjQ4LCAKLSAgICAzMywgMTAyLCAyOCwgMTYsIDI0OCwgMTk4LCAxMDIsIDI4LCAxNiwgMjQ4LCAxNzcsIDI0MywgNTcsIDEwMiwgMjgsIDE2LCAKLSAgICAzOCwgMjE3LCA5LCAxMDIsIDI4LCAxNiwgMzgsIDI0NSwgMTQxLCAxMDIsIDI4LCAxNiwgMzgsIDIzNCwgMTY3LCAxMDIsIAotICAgIDI4LCAxNiwgMzgsIDIzNCwgMTY5LCAxMDIsIDI4LCAxNiwgMzgsIDIzNSwgMTIyLCAxMDIsIDI4LCAxNiwgMzgsIDIzNCwgCi0gICAgMTY4LCAyLCAyMzUsIDEyMiwgMTAyLCAyOCwgMTYsIDM4LCAyMzQsIDE3MCwgMiwgMjM1LCAxMjIsIDEwMiwgMjgsIDE2LCAKLSAgICAzOCwgMjUyLCAzNywgMTAyLCAyOCwgMTYsIDM4LCAyNDIsIDE2NSwgMTAyLCAyOCwgMTYsIDIyMiwgMjQ5LCAyMDQsIDI0NiwgCi0gICAgNzQsIDEwMiwgMjgsIDE2LCAyMjIsIDI0OSwgMjA0LCAyNDgsIDIxMiwgMTAyLCAyOCwgMTYsIDIyMiwgMjQ5LCAyNTAsIDAsIAotICAgIDIxNSwgMTExLCAxMDIsIDI4LCAxNiwgMjIyLCAyNDksIDI1MCwgMCwgMjE3LCA3MywgMTAyLCAyOCwgMTYsIDIzMywgNDQsIAotICAgIDIwNCwgMjI2LCA0MywgMTAyLCAyOCwgMTYsIDIzMywgNDQsIDIwNCwgMjI0LCAxMzksIDEwMiwgMjgsIDE2LCAyMzMsIDQ0LCAKLSAgICAyNTAsIDAsIDIyNSwgMzgsIDEwMiwgMjgsIDE2LCAyMzMsIDQ0LCAyNTAsIDAsIDIyNSwgMjYsIDEwMiwgMjgsIDE2LCAyMzMsIAotICAgIDQ0LCAyMDQsIDIyNSwgNjEsIDIwNywgNSwgMjI2LCAyNiwgMjA3LCA1LCAyMjYsIDM5LCAyMDcsIDUsIDIyNiwgMzUsIDIwNywgCi0gICAgMSwgNjEsIDIwNywgMSwgNzMsIDIwNywgMSwgNzAsIDIwNywgMSwgMjU0LCAyNDMsIDIwNywgMSwgNzYsIDIwNywgMSwgNzUsIAotICAgIDIwNywgMSwgMjQ1LCA1NSwgMjA3LCAxLCAxNzYsIDIwNywgMSwgMjI0LCA4OCwgMjA3LCAxLCAyNDMsIDEzNSwgMjA3LCAxLCAKLSAgICAyMjksIDc3LCAyMDcsIDEsIDI1MSwgMzMsIDIwNywgMSwgMjM1LCAxNDEsIDIwNywgMSwgMjEwLCAxMTYsIDIwNywgMSwgCi0gICAgMjI3LCAxNjUsIDIwNywgMSwgMjE3LCAxMDUsIDIwNywgMSwgMjQ4LCAyMjEsIDIwNywgMSwgMTk3LCAyMDcsIDEsIDE5MCwgCi0gICAgMjA3LCAxLCAyNDQsIDE5NiwgMjA3LCAxLCAyMTQsIDI3LCAyMDcsIDEsIDI1MiwgMTkxLCAyMDcsIDEsIDE4NCwgMjA3LCAxLCAKLSAgICAxOTEsIDIwNywgMSwgMjA1LCAyMDcsIDEsIDIzMywgMTM1LCAyMDcsIDEsIDIxMiwgNjUsIDIwNywgMSwgMjA2LCAyMDcsIDEsIAotICAgIDIxMSwgMTY1LCAyMDcsIDEsIDE2MiwgMjA3LCAxMTYsIDUsIDIyNiwgNTIsIDIwNywgMTE2LCA1LCAyMjYsIDI4LCAyMDcsIAotICAgIDExNiwgNSwgMjI2LCAyNSwgMjA3LCAyNSwgNSwgMjI2LCA0MiwgMjA3LCAyNSwgNSwgMjI2LCAyNCwgMjA3LCAyNSwgNSwgCi0gICAgMjI2LCA0NiwgMjA3LCAyNSwgNSwgMjI2LCAzNCwgMjA3LCAyNSwgNSwgMjI2LCA1MywgMjA3LCAyNSwgNSwgMjI2LCA0NCwgCi0gICAgMjA3LCA1LCAyMjYsIDU2LCAyMDcsIDUsIDIxMywgMTUyLCAyMDcsIDExNiwgNSwgMjI1LCAyNDgsIDE4NCwgMjA3LCAxMTYsIAotICAgIDUsIDIyNSwgMjQ4LCAyMTIsIDY1LCAyMDcsIDEsIDIzNCwgMTMyLCAyMDcsIDEsIDIxNywgMjMxLCAyMDcsIDIxLCAyMTAsIAorICAgIDE5NCwgMTAyLCAyMSwgMTk4LCAxMDIsIDIxLCAxOTUsIDEwMiwgMjEsIDIwMCwgMTAyLCAyMjYsIDMwLCAxMDIsIDIyNiwgCisgICAgNTYsIDEwMiwgMjExLCAyMzgsIDEwMiwgMjUwLCAyMzcsIDIyNiwgNDksIDEwMiwgMjUwLCAyMzcsIDIxOSwgMTczLCAxMDIsIAorICAgIDI1MCwgMjM3LCAyMjYsIDMsIDEwMiwgMjI2LCA1NSwgMTAyLCAyOCwgMTYsIDI0NywgMTI3LCAxMDIsIDI4LCAxNiwgMjQ4LCAKKyAgICA1MiwgMTAyLCAyOCwgMTYsIDI0NiwgNjUsIDEwMiwgMjgsIDE2LCAyNDgsIDE3NywgMTAyLCAyOCwgMTYsIDI0OCwgMTc4LCAKKyAgICAyMTgsIDE2LCAxMDIsIDI4LCAxNiwgMjQ3LCAyMDYsIDEwMiwgMjgsIDE2LCAyNDgsIDIxNSwgMTAyLCAyOCwgMTYsIDI0OCwgCisgICAgMzQsIDEwMiwgMjgsIDE2LCAyNDgsIDE5OSwgMTAyLCAyOCwgMTYsIDI0OCwgMTc4LCAyNDMsIDU4LCAxMDIsIDI4LCAxNiwgCisgICAgMzgsIDIxNywgMTAsIDEwMiwgMjgsIDE2LCAzOCwgMjQ1LCAxNDIsIDEwMiwgMjgsIDE2LCAzOCwgMjM0LCAxNjgsIDEwMiwgCisgICAgMjgsIDE2LCAzOCwgMjM0LCAxNzAsIDEwMiwgMjgsIDE2LCAzOCwgMjM1LCAxMjMsIDEwMiwgMjgsIDE2LCAzOCwgMjM0LCAKKyAgICAxNjksIDIsIDIzNSwgMTIzLCAxMDIsIDI4LCAxNiwgMzgsIDIzNCwgMTcxLCAyLCAyMzUsIDEyMywgMTAyLCAyOCwgMTYsIAorICAgIDM4LCAyNTIsIDM4LCAxMDIsIDI4LCAxNiwgMzgsIDI0MiwgMTY2LCAxMDIsIDI4LCAxNiwgMjIyLCAyNTAsIDIwNCwgMjQ2LCAKKyAgICA3NSwgMTAyLCAyOCwgMTYsIDIyMiwgMjUwLCAyMDQsIDI0OCwgMjEzLCAxMDIsIDI4LCAxNiwgMjIyLCAyNTAsIDI1MCwgMSwgCisgICAgMjE1LCAxMTIsIDEwMiwgMjgsIDE2LCAyMjIsIDI1MCwgMjUwLCAxLCAyMTcsIDc0LCAxMDIsIDI4LCAxNiwgMjMzLCA0NSwgCisgICAgMjA0LCAyMjYsIDQ0LCAxMDIsIDI4LCAxNiwgMjMzLCA0NSwgMjA0LCAyMjQsIDE0MCwgMTAyLCAyOCwgMTYsIDIzMywgNDUsIAorICAgIDI1MCwgMSwgMjI1LCAzOSwgMTAyLCAyOCwgMTYsIDIzMywgNDUsIDI1MCwgMSwgMjI1LCAyNywgMTAyLCAyOCwgMTYsIDIzMywgCisgICAgNDUsIDIwNCwgMjI1LCA2MiwgMjA3LCA1LCAyMjYsIDI3LCAyMDcsIDUsIDIyNiwgNDAsIDIwNywgNSwgMjI2LCAzNiwgMjA3LCAKKyAgICAxLCA2MSwgMjA3LCAxLCA3MywgMjA3LCAxLCA3MCwgMjA3LCAxLCAyNTQsIDI0NCwgMjA3LCAxLCA3NiwgMjA3LCAxLCA3NSwgCisgICAgMjA3LCAxLCAyNDUsIDU2LCAyMDcsIDEsIDE3NiwgMjA3LCAxLCAyMjQsIDg5LCAyMDcsIDEsIDI0MywgMTM2LCAyMDcsIDEsIAorICAgIDIyOSwgNzgsIDIwNywgMSwgMjUxLCAzNCwgMjA3LCAxLCAyMzUsIDE0MiwgMjA3LCAxLCAyMTAsIDExNiwgMjA3LCAxLCAKKyAgICAyMjcsIDE2NiwgMjA3LCAxLCAyMTcsIDEwNiwgMjA3LCAxLCAyNDgsIDIyMiwgMjA3LCAxLCAxOTcsIDIwNywgMSwgMTkwLCAKKyAgICAyMDcsIDEsIDI0NCwgMTk3LCAyMDcsIDEsIDIxNCwgMjcsIDIwNywgMSwgMjUyLCAxOTIsIDIwNywgMSwgMTg1LCAyMDcsIDEsIAorICAgIDE5MSwgMjA3LCAxLCAyMDUsIDIwNywgMSwgMjMzLCAxMzYsIDIwNywgMSwgMjEyLCA2NSwgMjA3LCAxLCAyMDYsIDIwNywgMSwgCisgICAgMjExLCAxNjUsIDIwNywgMSwgMTYyLCAyMDcsIDExNiwgNSwgMjI2LCA1MywgMjA3LCAxMTYsIDUsIDIyNiwgMjksIDIwNywgCisgICAgMTE2LCA1LCAyMjYsIDI2LCAyMDcsIDI1LCA1LCAyMjYsIDQzLCAyMDcsIDI1LCA1LCAyMjYsIDI1LCAyMDcsIDI1LCA1LCAKKyAgICAyMjYsIDQ3LCAyMDcsIDI1LCA1LCAyMjYsIDM1LCAyMDcsIDI1LCA1LCAyMjYsIDU0LCAyMDcsIDI1LCA1LCAyMjYsIDQ1LCAKKyAgICAyMDcsIDUsIDIyNiwgNTcsIDIwNywgNSwgMjEzLCAxNTIsIDIwNywgMTE2LCA1LCAyMjUsIDI0OSwgMTg1LCAyMDcsIDExNiwgCisgICAgNSwgMjI1LCAyNDksIDIxMiwgNjUsIDIwNywgMSwgMjM0LCAxMzMsIDIwNywgMSwgMjE3LCAyMzIsIDIwNywgMjEsIDIxMCwgCiAgICAgODYsIDIwNywgMjEsIDExMCwgMjA3LCAyMSwgMTA1LCAyMDcsIDIxLCAxNTgsIDIwNywgMjEsIDE2MSwgMjA3LCAyMSwgMTg5LCAKLSAgICAyMDcsIDIxLCAxOTQsIDIwNywgMjEsIDE5OCwgMjA3LCAyMSwgMTk1LCAyMDcsIDIxLCAyMDAsIDIwNywgMjUzLCAxNzUsIAotICAgIDIwNywgMSwgMjIzLCA1MiwgMjA3LCAxLCAyMzMsIDcsIDIwNywgMSwgMjUyLCAxOCwgMjA3LCAxLCA0MCwgMjM1LCAyMywgCi0gICAgMjA3LCAxLCA0MCwgMTkzLCAyNTIsIDEyMCwgMSwgNjEsIDI1MiwgMTIwLCAxLCAyMTksIDE2NCwgNjEsIDI1MiwgMTIwLCAxLCAKLSAgICAxNjIsIDI1MiwgMTIwLCAxLCAyMTksIDE2NCwgMTYyLCAyNTIsIDEyMCwgMSwgMjMxLCAxODEsIDE2MiwgMjUyLCAxMjAsIDEsIAotICAgIDI1MiwgMTkxLCAyNTIsIDEyMCwgMSwgMjM0LCAyMTIsIDI1MiwgMTkxLCAyNTIsIDEyMCwgMSwgMTkwLCAyNTIsIDEyMCwgMSwgCi0gICAgMjE5LCAxNjQsIDE5MCwgMjUyLCAxMjAsIDEsIDE5NywgMjUyLCAxMjAsIDEsIDIzMSwgMTgxLCAxOTcsIDI1MiwgMTIwLCAxLCAKLSAgICAyMTIsIDY1LCAyNTIsIDEyMCwgMSwgMjE5LCAxNjQsIDIxMiwgNjUsIDI1MiwgMTIwLCAxLCAyMjYsIDY3LCAyMTIsIDY1LCAKLSAgICAyNTIsIDEyMCwgMSwgMjQzLCAxMzUsIDI1MiwgMTIwLCAxLCAyMTksIDE2NCwgMjQzLCAxMzUsIDI1MiwgMTIwLCAxLCAyMzUsIAotICAgIDE0MSwgMjUyLCAxMjAsIDEsIDI0OCwgMjIxLCAyNTIsIDEyMCwgMSwgMjA1LCAyNTIsIDEyMCwgMSwgMjE5LCAxNjQsIDIwNSwgCi0gICAgMjUyLCAxMjAsIDEsIDE4NCwgMjUyLCAxMjAsIDEsIDIxOSwgMTY0LCAxODQsIDI1MiwgMTIwLCAxLCAyMTksIDI2LCAyMTcsIAotICAgIDEwNSwgMjUyLCAxMjAsIDEsIDIyOCwgNTUsIDIxNywgMTA1LCAyNTIsIDEyMCwgMSwgMjA2LCAyNTIsIDEyMCwgMSwgMjE5LCAKLSAgICAxNjQsIDIwNiwgMjUyLCAxMjAsIDEsIDIzMSwgMTgxLCAyMDYsIDI1MiwgMTIwLCAxLCAxOTEsIDI1MiwgMTIwLCAxLCAyMTksIAotICAgIDE2NCwgMTkxLCAyNTIsIDEyMCwgMSwgMjI5LCA3NywgMjUyLCAxMjAsIDEsIDIzMywgMTM1LCAyNTIsIDEyMCwgMSwgMjE5LCAKLSAgICAxNjQsIDIzMywgMTM1LCAyNTIsIDEyMCwgMSwgMjI3LCAxNjUsIDI1MiwgMTIwLCAxLCAyNTEsIDMzLCAyNTIsIDEyMCwgMSwgCi0gICAgMjI5LCAxNDgsIDI1MiwgMTIwLCAxLCAyMzEsIDEyNCwgMjUyLCAxMjAsIDEsIDczLCAyNTIsIDEyMCwgMSwgNzAsIDI1MiwgCi0gICAgMTIwLCA1LCAyMTYsIDMzLCAyNTIsIDEyMCwgMjUsIDUsIDc1LCAyNTIsIDEyMCwgMjUsIDUsIDIyNiwgNjcsIDc1LCAyNTIsIAotICAgIDEyMCwgMjUsIDUsIDI0NSwgMjA5LCAyNTIsIDEyMCwgMjUsIDUsIDczLCAyNTIsIDEyMCwgMjUsIDUsIDIzNCwgMjEyLCA3MywgCi0gICAgMjUyLCAxMjAsIDI1LCA1LCA3NiwgMjUyLCAxMjAsIDI1LCA1LCAyMzQsIDIxMiwgNzYsIDI1MiwgMTIwLCAyNSwgNSwgNzAsIAotICAgIDI1MiwgMTIwLCAyNSwgNSwgMTA0LCAzMSwgMjE5LCAxNjQsIDIwNiwgMjUyLCAxMjAsIDExNiwgNSwgMjI5LCA3OSwgMjUyLCAKLSAgICAxMjAsIDExNiwgNSwgMjQyLCA2MCwgMjUyLCAxMjAsIDIyNiwgMzcsIDI1MiwgMTIwLCAyMjYsIDMzLCAyNTIsIDEyMCwgMTYsIAotICAgIDI1MSwgMjQxLCAyMjksIDIyOSwgMjMxLCAzNywgMjUyLCAxMjAsIDE2LCAyNTEsIDI0MSwgMjI1LCA2NCwgMjUyLCAxMjAsIAotICAgIDE2LCAyNTEsIDI0MSwgMjM1LCA0OCwgMjUyLCAxMjAsIDE2LCAyNTEsIDI0MSwgMjI2LCAzNywgMTk2LCAxLCAxNzYsIDE5NiwgCi0gICAgMSwgMjM0LCAzOSwgMTk2LCAxLCAyMzQsIDEzMiwgMTk2LCAxLCAyNDMsIDEzNSwgMTk2LCAxLCAyNDIsIDE4NiwgMTk2LCAxLCAKLSAgICAyMjksIDc3LCAxOTYsIDEsIDI1MSwgMzMsIDE5NiwgMSwgMjUwLCAxNTcsIDE5NiwgMSwgMjM1LCAxNDEsIDE5NiwgMSwgCi0gICAgMjI3LCAxNjUsIDE5NiwgMSwgMjE3LCAxMDUsIDE5NiwgMSwgMjE2LCAyMDgsIDE5NiwgMSwgMjQ4LCAyMjEsIDE5NiwgMSwgCi0gICAgMTk3LCAxOTYsIDEsIDE5MCwgMTk2LCAxLCAyMjUsIDQyLCAxOTYsIDEsIDIyNSwgMTQ3LCAxOTYsIDEsIDI0NCwgMTk2LCAKLSAgICAxOTYsIDEsIDI0NCwgNzUsIDE5NiwgMSwgMjUyLCAxOTEsIDE5NiwgMSwgMjUxLCAyMjIsIDE5NiwgMSwgMTg0LCAxOTYsIDEsIAotICAgIDIzMCwgMTY4LCAxOTYsIDEsIDIxNSwgMTgzLCAxOTYsIDEsIDIxNSwgMTc1LCAxOTYsIDEsIDI0NiwgMzgsIDE5NiwgMSwgCi0gICAgMTkxLCAxOTYsIDEsIDIwNSwgMTk2LCAxLCAyMzMsIDEzNSwgMTk2LCAxLCAxNjIsIDE5NiwgMSwgMjQxLCAxNTMsIDE5NiwgCi0gICAgMSwgMjE0LCAyNywgMTk2LCAxLCAyMDYsIDE5NiwgMSwgMjIwLCAxMDIsIDE5NiwgMSwgMjEyLCA2NSwgMTk2LCAxLCA2MSwgCi0gICAgMTk2LCAyMTgsIDczLCAxLCAxOTEsIDE5NiwgMjE4LCA3MywgMSwgMjA1LCAxOTYsIDI1LCA1LCAyNTUsIDczLCAxOTYsIDI1LCAKLSAgICA1LCA3MywgMTk2LCAyNSwgNSwgNzYsIDE5NiwgMjUsIDUsIDIyNiwgMTgzLCAxOTYsIDI1LCA1LCA3MCwgMTk2LCAyNSwgNSwgCi0gICAgMjE0LCAxMTgsIDE5NiwgMjUsIDUsIDc1LCAxOTYsIDExNiwgNSwgMjM1LCAyMywgMTk2LCAxMTYsIDUsIDE5MywgMTk2LCAKLSAgICAxMTYsIDUsIDE1NiwgMTk2LCAxMTYsIDUsIDIzMCwgMjUsIDE5NiwgMTE2LCA1LCAyMjYsIDEwNSwgMTk2LCAxMTYsIDUsIAotICAgIDE1MywgMTk2LCAxMTYsIDUsIDIxNywgMTUyLCAxOTYsIDExNiwgNSwgMjI3LCAxNDIsIDE5NiwgMTE2LCA1LCAyMzQsIDIzMCwgCi0gICAgMTk2LCA1LCAyMjMsIDE1MCwgMTk2LCA1LCAyMjcsIDIwNSwgMTk2LCAyMjQsIDE0MSwgMjE3LCAxMDMsIDE5NiwgMjI0LCAKLSAgICAxNDEsIDIyNywgMTUyLCAyMTYsIDEyMCwgMjE3LCAxMDMsIDE5NiwgMjI0LCAxNDEsIDI1MCwgMTY0LCAxOTYsIDIyNCwgCi0gICAgMTQxLCAyMTUsIDE3MCwgMjUwLCAxNjQsIDE5NiwgMjI0LCAxNDEsIDIxNSwgMTY5LCAxOTYsIDIxLCAyMTAsIDg2LCAxOTYsIAorICAgIDIwNywgMjEsIDE5NCwgMjA3LCAyMSwgMTk4LCAyMDcsIDIxLCAxOTUsIDIwNywgMjEsIDIwMCwgMjA3LCAyNTMsIDE3NiwgCisgICAgMjA3LCAxLCAyMjMsIDUzLCAyMDcsIDEsIDIzMywgOCwgMjA3LCAxLCAyNTIsIDE5LCAyMDcsIDEsIDQwLCAyMzUsIDI0LCAKKyAgICAyMDcsIDEsIDQwLCAxOTMsIDI1MiwgMTIxLCAxLCA2MSwgMjUyLCAxMjEsIDEsIDIxOSwgMTY1LCA2MSwgMjUyLCAxMjEsIDEsIAorICAgIDE2MiwgMjUyLCAxMjEsIDEsIDIxOSwgMTY1LCAxNjIsIDI1MiwgMTIxLCAxLCAyMzEsIDE4MiwgMTYyLCAyNTIsIDEyMSwgMSwgCisgICAgMjUyLCAxOTIsIDI1MiwgMTIxLCAxLCAyMzQsIDIxMywgMjUyLCAxOTIsIDI1MiwgMTIxLCAxLCAxOTAsIDI1MiwgMTIxLCAxLCAKKyAgICAyMTksIDE2NSwgMTkwLCAyNTIsIDEyMSwgMSwgMTk3LCAyNTIsIDEyMSwgMSwgMjMxLCAxODIsIDE5NywgMjUyLCAxMjEsIDEsIAorICAgIDIxMiwgNjUsIDI1MiwgMTIxLCAxLCAyMTksIDE2NSwgMjEyLCA2NSwgMjUyLCAxMjEsIDEsIDIyNiwgNjgsIDIxMiwgNjUsIAorICAgIDI1MiwgMTIxLCAxLCAyNDMsIDEzNiwgMjUyLCAxMjEsIDEsIDIxOSwgMTY1LCAyNDMsIDEzNiwgMjUyLCAxMjEsIDEsIDIzNSwgCisgICAgMTQyLCAyNTIsIDEyMSwgMSwgMjQ4LCAyMjIsIDI1MiwgMTIxLCAxLCAyMDUsIDI1MiwgMTIxLCAxLCAyMTksIDE2NSwgMjA1LCAKKyAgICAyNTIsIDEyMSwgMSwgMTg1LCAyNTIsIDEyMSwgMSwgMjE5LCAxNjUsIDE4NSwgMjUyLCAxMjEsIDEsIDIxOSwgMjcsIDIxNywgCisgICAgMTA2LCAyNTIsIDEyMSwgMSwgMjI4LCA1NiwgMjE3LCAxMDYsIDI1MiwgMTIxLCAxLCAyMDYsIDI1MiwgMTIxLCAxLCAyMTksIAorICAgIDE2NSwgMjA2LCAyNTIsIDEyMSwgMSwgMjMxLCAxODIsIDIwNiwgMjUyLCAxMjEsIDEsIDE5MSwgMjUyLCAxMjEsIDEsIDIxOSwgCisgICAgMTY1LCAxOTEsIDI1MiwgMTIxLCAxLCAyMjksIDc4LCAyNTIsIDEyMSwgMSwgMjMzLCAxMzYsIDI1MiwgMTIxLCAxLCAyMTksIAorICAgIDE2NSwgMjMzLCAxMzYsIDI1MiwgMTIxLCAxLCAyMjcsIDE2NiwgMjUyLCAxMjEsIDEsIDI1MSwgMzQsIDI1MiwgMTIxLCAxLCAKKyAgICAyMjksIDE0OSwgMjUyLCAxMjEsIDEsIDIzMSwgMTI1LCAyNTIsIDEyMSwgMSwgNzMsIDI1MiwgMTIxLCAxLCA3MCwgMjUyLCAKKyAgICAxMjEsIDUsIDIxNiwgMzQsIDI1MiwgMTIxLCAyNSwgNSwgNzUsIDI1MiwgMTIxLCAyNSwgNSwgMjI2LCA2OCwgNzUsIDI1MiwgCisgICAgMTIxLCAyNSwgNSwgMjQ1LCAyMTAsIDI1MiwgMTIxLCAyNSwgNSwgNzMsIDI1MiwgMTIxLCAyNSwgNSwgMjM0LCAyMTMsIDczLCAKKyAgICAyNTIsIDEyMSwgMjUsIDUsIDc2LCAyNTIsIDEyMSwgMjUsIDUsIDIzNCwgMjEzLCA3NiwgMjUyLCAxMjEsIDI1LCA1LCA3MCwgCisgICAgMjUyLCAxMjEsIDI1LCA1LCAxMDQsIDMxLCAyMTksIDE2NSwgMjA2LCAyNTIsIDEyMSwgMTE2LCA1LCAyMjksIDgwLCAyNTIsIAorICAgIDEyMSwgMTE2LCA1LCAyNDIsIDYxLCAyNTIsIDEyMSwgMjI2LCAzOCwgMjUyLCAxMjEsIDIyNiwgMzQsIDI1MiwgMTIxLCAxNiwgCisgICAgMjUxLCAyNDIsIDIyOSwgMjMwLCAyMzEsIDM4LCAyNTIsIDEyMSwgMTYsIDI1MSwgMjQyLCAyMjUsIDY1LCAyNTIsIDEyMSwgCisgICAgMTYsIDI1MSwgMjQyLCAyMzUsIDQ5LCAyNTIsIDEyMSwgMTYsIDI1MSwgMjQyLCAyMjYsIDM4LCAxOTYsIDEsIDE3NiwgMTk2LCAKKyAgICAxLCAyMzQsIDQwLCAxOTYsIDEsIDIzNCwgMTMzLCAxOTYsIDEsIDI0MywgMTM2LCAxOTYsIDEsIDI0MiwgMTg3LCAxOTYsIDEsIAorICAgIDIyOSwgNzgsIDE5NiwgMSwgMjUxLCAzNCwgMTk2LCAxLCAyNTAsIDE1OCwgMTk2LCAxLCAyMzUsIDE0MiwgMTk2LCAxLCAKKyAgICAyMjcsIDE2NiwgMTk2LCAxLCAyMTcsIDEwNiwgMTk2LCAxLCAyMTYsIDIwOSwgMTk2LCAxLCAyNDgsIDIyMiwgMTk2LCAxLCAKKyAgICAxOTcsIDE5NiwgMSwgMTkwLCAxOTYsIDEsIDIyNSwgNDMsIDE5NiwgMSwgMjI1LCAxNDgsIDE5NiwgMSwgMjQ0LCAxOTcsIAorICAgIDE5NiwgMSwgMjQ0LCA3NiwgMTk2LCAxLCAyNTIsIDE5MiwgMTk2LCAxLCAyNTEsIDIyMywgMTk2LCAxLCAxODUsIDE5NiwgMSwgCisgICAgMjMwLCAxNjksIDE5NiwgMSwgMjE1LCAxODQsIDE5NiwgMSwgMjE1LCAxNzYsIDE5NiwgMSwgMjQ2LCAzOSwgMTk2LCAxLCAKKyAgICAxOTEsIDE5NiwgMSwgMjA1LCAxOTYsIDEsIDIzMywgMTM2LCAxOTYsIDEsIDE2MiwgMTk2LCAxLCAyNDEsIDE1NCwgMTk2LCAKKyAgICAxLCAyMTQsIDI3LCAxOTYsIDEsIDIwNiwgMTk2LCAxLCAyMjAsIDEwMywgMTk2LCAxLCAyMTIsIDY1LCAxOTYsIDEsIDYxLCAKKyAgICAxOTYsIDIxOCwgNzQsIDEsIDE5MSwgMTk2LCAyMTgsIDc0LCAxLCAyMDUsIDE5NiwgMjUsIDUsIDI1NSwgNzQsIDE5NiwgMjUsIAorICAgIDUsIDczLCAxOTYsIDI1LCA1LCA3NiwgMTk2LCAyNSwgNSwgMjI2LCAxODQsIDE5NiwgMjUsIDUsIDcwLCAxOTYsIDI1LCA1LCAKKyAgICAyMTQsIDExOCwgMTk2LCAyNSwgNSwgNzUsIDE5NiwgMTE2LCA1LCAyMzUsIDI0LCAxOTYsIDExNiwgNSwgMTkzLCAxOTYsIAorICAgIDExNiwgNSwgMTU2LCAxOTYsIDExNiwgNSwgMjMwLCAyNiwgMTk2LCAxMTYsIDUsIDIyNiwgMTA2LCAxOTYsIDExNiwgNSwgCisgICAgMTUzLCAxOTYsIDExNiwgNSwgMjE3LCAxNTMsIDE5NiwgMTE2LCA1LCAyMjcsIDE0MywgMTk2LCAxMTYsIDUsIDIzNCwgMjMxLCAKKyAgICAxOTYsIDUsIDIyMywgMTUxLCAxOTYsIDUsIDIyNywgMjA2LCAxOTYsIDIyNCwgMTQyLCAyMTcsIDEwNCwgMTk2LCAyMjQsIAorICAgIDE0MiwgMjI3LCAxNTMsIDIxNiwgMTIxLCAyMTcsIDEwNCwgMTk2LCAyMjQsIDE0MiwgMjUwLCAxNjUsIDE5NiwgMjI0LCAKKyAgICAxNDIsIDIxNSwgMTcxLCAyNTAsIDE2NSwgMTk2LCAyMjQsIDE0MiwgMjE1LCAxNzAsIDE5NiwgMjEsIDIxMCwgODYsIDE5NiwgCiAgICAgMjEsIDExMCwgMTk2LCAyMSwgMTA1LCAxOTYsIDIxLCAxNTgsIDE5NiwgMjEsIDE2MSwgMTk2LCAyMSwgMTg5LCAxOTYsIDIxLCAKLSAgICAxOTQsIDE5NiwgMjEsIDE5OCwgMTk2LCAyMSwgMTk1LCAxOTYsIDIxLCAyMDAsIDE5NiwgMSwgMjE1LCAxNTYsIDE5NiwgMSwgCi0gICAgMjE1LCAxNDQsIDE5NiwgMSwgMjQ4LCAxMzUsIDIyNiwgMjEwLCAyNTAsIDEwMywgMjEsIDIxMCwgODYsIDIyNiwgMjEwLCAKLSAgICAyNTAsIDEwMywgMjEsIDExMCwgMjI2LCAyMTAsIDI1MCwgMTAzLCAyMSwgMTA1LCAyMjYsIDIxMCwgMjUwLCAxMDMsIDIxLCAKLSAgICAxNTgsIDIyNiwgMjEwLCAyNTAsIDEwMywgMjEsIDE2MSwgMjI2LCAyMTAsIDI1MCwgMTAzLCAyMSwgMTg5LCAyMjYsIDIxMCwgCi0gICAgMjUwLCAxMDMsIDIxLCAxOTQsIDIyNiwgMjEwLCAyNTAsIDEwMywgMjEsIDE5OCwgMjI2LCAyMTAsIDI1MCwgMTAzLCAyMSwgCi0gICAgMTk1LCAyMjYsIDIxMCwgMjUwLCAxMDMsIDIxLCAyMDAsIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgMjMzLCAxMzUsIDIyNiwgCi0gICAgMjEwLCAyNTAsIDEwMywgMSwgMjUzLCAyMDYsIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgMjU0LCAyMTYsIDIyNiwgMjEwLCAKLSAgICAyNTAsIDEwMywgMSwgMjU0LCAxMTUsIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgMjU0LCAxNzgsIDIyNiwgMjEwLCAyNTAsIAotICAgIDEwMywgMSwgMjMzLCAxMzQsIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgMjU1LCAzNSwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAKLSAgICAyNTUsIDM2LCAyMjYsIDIxMCwgMjUwLCAxMDMsIDEsIDI1NSwgMzQsIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgMjU1LCAyOSwgCi0gICAgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyMzIsIDI0MSwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyMzUsIDE3MSwgMjI2LCAKLSAgICAyMTAsIDI1MCwgMTAzLCAxLCAyMzYsIDM0LCAyMjYsIDIxMCwgMjUwLCAxMDMsIDEsIDIzNSwgMTkwLCAyMjYsIDIxMCwgCi0gICAgMjUwLCAxMDMsIDEsIDIzNSwgMTc5LCAyMjYsIDIxMCwgMjUwLCAxMDMsIDEsIDIzMiwgOTgsIDIyNiwgMjEwLCAyNTAsIAotICAgIDEwMywgMSwgMjE0LCAyMjEsIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgMjE0LCAyMTksIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgCi0gICAgMjE0LCAxNjgsIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgMjE0LCAxMTEsIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgMjMzLCAKLSAgICA1OCwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyNDUsIDEwOCwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyNDUsIDIxMiwgCi0gICAgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyNDUsIDE1MCwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyNDUsIDg2LCAyMjYsIAotICAgIDIxMCwgMjUwLCAxMDMsIDEsIDIzMiwgMTU2LCAyMjYsIDIxMCwgMjUwLCAxMDMsIDEsIDIyNiwgMTM3LCAyMjYsIDIxMCwgCi0gICAgMjUwLCAxMDMsIDEsIDIyNiwgMjUyLCAyMjYsIDIxMCwgMjUwLCAxMDMsIDEsIDIyNiwgMTI1LCAyMjYsIDIxMCwgMjUwLCAKLSAgICAxMDMsIDEsIDIyNiwgMjIyLCAyMjYsIDIxMCwgMjUwLCAxMDMsIDIzMCwgMTAzLCAyMTUsIDEyMSwgMjI2LCAyMTAsIDI1MCwgCi0gICAgMTAzLCAyNDMsIDEzMCwgMjE1LCAxMjIsIDIyNiwgMjEwLCAyNTAsIDEwMywgMjMwLCAxMDEsIDIxNSwgMTIyLCAyMjYsIAotICAgIDIxMCwgMjUwLCAxMDMsIDIyMywgOTIsIDIyNiwgMjEwLCAyNTAsIDEwMywgMjI1LCAxNDUsIDIyNiwgMjEwLCAyNTAsIDEwMywgCi0gICAgMjU0LCAyMDgsIDIyNiwgMjEwLCAyNTAsIDEwMywgMjI0LCAxNDEsIDIzMCwgOTgsIDIyNiwgMjEwLCAyNTAsIDEwMywgMjI0LCAKLSAgICAxNDEsIDUyLCAyMzAsIDk4LCAyMDcsIDIyNCwgMTQxLCAyNTEsIDI0MSwgMjE4LCA4LCAyMDcsIDIyNCwgMTQxLCAyNTEsIAotICAgIDI0MSwgMjI2LCAzOCwgMjA3LCAyMjQsIDE0MSwgMjUxLCAyNDEsIDIyNCwgMTI5LCAyMDcsIDIyNCwgMTQxLCAyNTEsIDI0MSwgCi0gICAgMjUxLCAxOSwgMjA3LCAyMjQsIDE0MSwgMjUxLCAyNDEsIDIzMywgOCwgMjIxLCAyMjUsIDIwNywgMjI0LCAxNDEsIDI1MSwgCi0gICAgMjQxLCAyMzUsIDEzLCAyMjEsIDIyNSwgMjA3LCAyMjQsIDE0MSwgMjUxLCAyNDEsIDI0OCwgMjIyLCAyMjEsIDIyNSwgMjA3LCAKLSAgICAyMjQsIDE0MSwgMjUxLCAyNDEsIDI1MiwgMTkyLCAyMjEsIDIyNSwgMjEzLCAyNTIsIDEzOCwgMjM0LCAyMTAsIDIxMywgCi0gICAgMjUyLCAxMzgsIDIyMCwgNzcsIDIxMywgMjUyLCAxMzgsIDIyNCwgMTk4LCAyMTMsIDI1MiwgNSwgMjI4LCAyMDksIDIxMywgCi0gICAgMjUyLCA1LCAyMTEsIDgwLCAyMzAsIDIyMiwgMjE4LCAwLCAyMTMsIDI1MiwgMTM4LCAyMTEsIDgwLCAyNTQsIDIxMywgMjM1LCAKLSAgICAyNDMsIDIxOCwgMCwgMjEzLCAyNTIsIDEzOCwgMjExLCA4MCwgMjM1LCAyNDMsIDIxOCwgMCwgMjEzLCAyNTIsIDEzOCwgCi0gICAgMjExLCA4MCwgMjM0LCAxOTgsIDIzNSwgMjQzLCAyMTgsIDAsIDIxMywgMjUyLCAxMzgsIDI1MSwgMiwgNTEsIDIxMywgMjUyLCAKLSAgICAxMzgsIDIxMSwgODAsIDIzNCwgMTk4LCAyMzUsIDI0MywgMjE4LCAxLCAyMjEsIDE5NywgMjEzLCAyNTIsIDEzOCwgNTIsIAotICAgIDIxOCwgMCwgMjEzLCAyNTIsIDEzOCwgMjE1LCAyMTEsIDIxOCwgMCwgMjEzLCAyNTIsIDEzOCwgMjM0LCAxOTgsIDI1NCwgCi0gICAgNzcsIDIxMywgMjUyLCAxMzgsIDU5LCA1MSwgMjEzLCAyNTIsIDEzOCwgMTEzLCAxNzAsIDUxLCAyMTMsIDI1MiwgMTM4LCAKLSAgICAxMzQsIDE3MCwgNTEsIDIxMywgMjUyLCAxMzgsIDIyMiwgMjQwLCAyMzQsIDIwOSwgMjM1LCAyNDMsIDIxOCwgMCwgMjEzLCAKLSAgICAyNTIsIDEzOCwgMjUzLCAyMDQsIDIzNSwgMjQzLCAyMTgsIDAsIDIxMywgMjUyLCA1LCAyMTMsIDE0OCwgMjE4LCAwLCAyMTMsIAotICAgIDI1MiwgNSwgMjEzLCAxNDgsIDIxNCwgMjE2LCAyMTMsIDI1MiwgNSwgMjIzLCA0OSwgMjEzLCAxNDgsIDIxNCwgMjE2LCAKLSAgICAyMTMsIDI1MiwgNSwgMjEzLCAxNDgsIDI1NCwgNzcsIDIxMywgMjUyLCA1LCAyMjMsIDQ5LCAyMTMsIDE0OCwgMjU0LCA3NywgCi0gICAgMjEzLCAyNTIsIDUsIDIxMywgMTQ4LCAyMTQsIDIxNywgMiwgMjE3LCA3NywgMjEzLCAyNTIsIDUsIDIxMywgMTQ4LCAyNTQsIAotICAgIDc4LCAyLCAyMTcsIDc3LCAyMTMsIDI1MiwgNSwgMjU0LCA3NiwgMjU0LCA5MSwgMjEzLCAyNTIsIDUsIDI1NCwgNzYsIDI1MiwgCi0gICAgMTY2LCAyMTMsIDI1MiwgNSwgMjU0LCA3NiwgMjE0LCAyMCwgMjEzLCAyNTIsIDUsIDI1NCwgNzYsIDIxNCwgMjEsIDIsIAotICAgIDIxNywgNzcsIDIxMywgMjUyLCA1LCAyMTYsIDY4LCAyMTMsIDI1MiwgNSwgMjQxLCAxOTEsIDE5OSwgMjU0LCA3NSwgMjEzLCAKLSAgICAyNTIsIDUsIDE5OSwgMjU0LCA3NSwgMjEzLCAyNTIsIDUsIDIyMiwgMTQyLCAxOTksIDI1NCwgNzUsIDIxMywgMjUyLCA1LCAKLSAgICAyNTQsIDc2LCAyMTQsIDIyMywgMjMwLCA5MCwgMjEzLCAyNTIsIDUsIDI1NCwgMjAsIDIxMywgMjUyLCA1LCAyMjIsIDE4NywgCi0gICAgMjU0LCAyMCwgMjEzLCAyNTIsIDEzOCwgMjUxLCAyLCA0OCwgMjEzLCAyNTIsIDUsIDIzNSwgMTAyLCAyMTMsIDI1MiwgNSwgCi0gICAgMjE0LCAxNjEsIDcsIDEsIDQsIDYsIDYxLCA3LCAxLCA0LCA2LCAyNTQsIDI0MywgNywgNCwgMSwgMjE1LCA5NCwgMjU0LCAKLSAgICAyNDMsIDcsIDEsIDQsIDYsIDI1MiwgMTM0LCAyNTMsIDE1OCwgNywgMSwgNCwgNiwgMjUxLCA2NiwgNywgMSwgNCwgNiwgCi0gICAgMjQ5LCA2MCwgNywgMSwgNCwgNiwgMjQ1LCA1OSwgNywgMSwgNCwgNiwgNzUsIDcsIDQsIDEsIDIxNSwgOTQsIDIwNCwgNzUsIAotICAgIDcsIDQsIDEsIDIxNSwgOTQsIDczLCA3LCAxLCA0LCA2LCAyMzUsIDE0NCwgNywgMSwgNCwgNiwgMjM1LCAyMywgNywgMSwgNCwgCi0gICAgNiwgMjMzLCAxNDksIDIsIDkxLCA3LCAxLCA0LCA2LCAxOTMsIDcsIDEsIDQsIDYsIDIyMywgNDksIDIzMCwgMjUsIDcsIDEsIAotICAgIDQsIDYsIDc2LCA3LCAxLCA0LCA2LCAyMDQsIDc2LCA3LCA0LCAxLCAyMTksIDE4NywgNzYsIDcsIDQsIDEsIDIxOSwgMTg3LCAKLSAgICAyMDQsIDc2LCA3LCA0LCAxLCAyMTksIDE4NywgMTQ0LCAyLCA5MSwgNywgNCwgMSwgMjE1LCA5NCwgMjI2LCAyMzQsIDcsIDEsIAotICAgIDQsIDYsIDIyNiwgMTM0LCA3LCA0LCAxLCAyMTYsIDE0LCAxNjMsIDc2LCA3LCA0LCAxLCAyNTEsIDE3NSwgMTYzLCA3NiwgNywgCi0gICAgMSwgNCwgNiwgMjI2LCAxMDUsIDcsIDEsIDQsIDYsIDIyMywgNDksIDE1MywgNywgMSwgNCwgNiwgMjE1LCA5NCwgMTUzLCA3LCAKLSAgICAxLCA0LCA2LCAyMTcsIDE1MiwgNywgMSwgNCwgNiwgNzAsIDcsIDQsIDEsIDIxOSwgMTg3LCA3MCwgNywgNCwgMSwgMjE5LCAKLSAgICAxODcsIDI0OCwgMCwgNzAsIDcsIDQsIDEsIDIxOSwgMTg3LCAyMTUsIDk0LCAxOTMsIDcsIDEsIDQsIDYsIDIxNCwgMTA1LCAKLSAgICA3LCAxLCA0LCA2LCAyMTIsIDk4LCA3LCAxLCA0LCA2LCAyMTAsIDE1OSwgNywgMSwgNCwgNiwgMjQ1LCA4LCA3LCAxLCAyMTMsIAotICAgIDEzNSwgMjMzLCA4MiwgMjE4LCAyNTAsIDcsIDEsIDI1NCwgMTk2LCAyNiwgMSwgNCwgNiwgMjQzLCAxMDcsIDI2LCAxLCA0LCAKLSAgICA2LCAyMzMsIDk4LCAyNiwgMSwgNCwgNiwgMjI1LCAxMDgsIDI2LCAxLCA0LCA2LCAyMjMsIDM3LCAyNiwgMSwgNCwgNiwgCi0gICAgMjI0LCAxNjEsIDMzLCAxLCA0LCA2LCAyNDUsIDE3NCwgNTgsIDEsIDYsIDYxLCA1OCwgMSwgNiwgMjU0LCAyNDMsIDU4LCAxLCAKLSAgICA2LCAyNTMsIDE1OCwgNTgsIDEsIDYsIDI1MiwgMTM0LCAyNTMsIDE1OCwgNTgsIDEsIDYsIDI0OSwgNjAsIDU4LCAxLCA2LCAKLSAgICA3NSwgNTgsIDEsIDYsIDIyMywgNDksIDc1LCA1OCwgMSwgNiwgMjQzLCAyMDIsIDU4LCAxLCA2LCAyNDIsIDYwLCA1OCwgMSwgCi0gICAgNiwgNzMsIDU4LCAxLCA2LCAyMzUsIDE0NCwgNTgsIDEsIDYsIDIzNSwgMjMsIDU4LCAxLCA2LCAxNTYsIDU4LCAxLCA2LCAKLSAgICAxOTMsIDU4LCAxLCA2LCAyMzAsIDI1LCA1OCwgMSwgNiwgMjIzLCA0OSwgMjMwLCAyNSwgNTgsIDEsIDYsIDc2LCA1OCwgMSwgCi0gICAgNiwgMjI2LCAxMzQsIDU4LCAxLCA2LCAyMjYsIDEwNSwgNTgsIDEsIDYsIDE1MywgNTgsIDEsIDYsIDIxNywgMTUyLCA1OCwgCisgICAgMTk0LCAxOTYsIDIxLCAxOTgsIDE5NiwgMjEsIDE5NSwgMTk2LCAyMSwgMjAwLCAxOTYsIDEsIDIxNSwgMTU3LCAxOTYsIDEsIAorICAgIDIxNSwgMTQ1LCAxOTYsIDEsIDI0OCwgMTM2LCAyMjYsIDIxMSwgMjUwLCAxMDQsIDIxLCAyMTAsIDg2LCAyMjYsIDIxMSwgCisgICAgMjUwLCAxMDQsIDIxLCAxMTAsIDIyNiwgMjExLCAyNTAsIDEwNCwgMjEsIDEwNSwgMjI2LCAyMTEsIDI1MCwgMTA0LCAyMSwgCisgICAgMTU4LCAyMjYsIDIxMSwgMjUwLCAxMDQsIDIxLCAxNjEsIDIyNiwgMjExLCAyNTAsIDEwNCwgMjEsIDE4OSwgMjI2LCAyMTEsIAorICAgIDI1MCwgMTA0LCAyMSwgMTk0LCAyMjYsIDIxMSwgMjUwLCAxMDQsIDIxLCAxOTgsIDIyNiwgMjExLCAyNTAsIDEwNCwgMjEsIAorICAgIDE5NSwgMjI2LCAyMTEsIDI1MCwgMTA0LCAyMSwgMjAwLCAyMjYsIDIxMSwgMjUwLCAxMDQsIDEsIDIzMywgMTM2LCAyMjYsIAorICAgIDIxMSwgMjUwLCAxMDQsIDEsIDI1MywgMjA3LCAyMjYsIDIxMSwgMjUwLCAxMDQsIDEsIDI1NCwgMjE3LCAyMjYsIDIxMSwgCisgICAgMjUwLCAxMDQsIDEsIDI1NCwgMTE2LCAyMjYsIDIxMSwgMjUwLCAxMDQsIDEsIDI1NCwgMTc5LCAyMjYsIDIxMSwgMjUwLCAKKyAgICAxMDQsIDEsIDIzMywgMTM1LCAyMjYsIDIxMSwgMjUwLCAxMDQsIDEsIDI1NSwgMzYsIDIyNiwgMjExLCAyNTAsIDEwNCwgMSwgCisgICAgMjU1LCAzNywgMjI2LCAyMTEsIDI1MCwgMTA0LCAxLCAyNTUsIDM1LCAyMjYsIDIxMSwgMjUwLCAxMDQsIDEsIDI1NSwgMzAsIAorICAgIDIyNiwgMjExLCAyNTAsIDEwNCwgMSwgMjMyLCAyNDIsIDIyNiwgMjExLCAyNTAsIDEwNCwgMSwgMjM1LCAxNzIsIDIyNiwgCisgICAgMjExLCAyNTAsIDEwNCwgMSwgMjM2LCAzNSwgMjI2LCAyMTEsIDI1MCwgMTA0LCAxLCAyMzUsIDE5MSwgMjI2LCAyMTEsIAorICAgIDI1MCwgMTA0LCAxLCAyMzUsIDE4MCwgMjI2LCAyMTEsIDI1MCwgMTA0LCAxLCAyMzIsIDk5LCAyMjYsIDIxMSwgMjUwLCAKKyAgICAxMDQsIDEsIDIxNCwgMjIxLCAyMjYsIDIxMSwgMjUwLCAxMDQsIDEsIDIxNCwgMjE5LCAyMjYsIDIxMSwgMjUwLCAxMDQsIDEsIAorICAgIDIxNCwgMTY4LCAyMjYsIDIxMSwgMjUwLCAxMDQsIDEsIDIxNCwgMTExLCAyMjYsIDIxMSwgMjUwLCAxMDQsIDEsIDIzMywgCisgICAgNTksIDIyNiwgMjExLCAyNTAsIDEwNCwgMSwgMjQ1LCAxMDksIDIyNiwgMjExLCAyNTAsIDEwNCwgMSwgMjQ1LCAyMTMsIAorICAgIDIyNiwgMjExLCAyNTAsIDEwNCwgMSwgMjQ1LCAxNTEsIDIyNiwgMjExLCAyNTAsIDEwNCwgMSwgMjQ1LCA4NywgMjI2LCAKKyAgICAyMTEsIDI1MCwgMTA0LCAxLCAyMzIsIDE1NywgMjI2LCAyMTEsIDI1MCwgMTA0LCAxLCAyMjYsIDEzOCwgMjI2LCAyMTEsIAorICAgIDI1MCwgMTA0LCAxLCAyMjYsIDI1MywgMjI2LCAyMTEsIDI1MCwgMTA0LCAxLCAyMjYsIDEyNiwgMjI2LCAyMTEsIDI1MCwgCisgICAgMTA0LCAxLCAyMjYsIDIyMywgMjI2LCAyMTEsIDI1MCwgMTA0LCAyMzAsIDEwNCwgMjE1LCAxMjIsIDIyNiwgMjExLCAyNTAsIAorICAgIDEwNCwgMjQzLCAxMzEsIDIxNSwgMTIzLCAyMjYsIDIxMSwgMjUwLCAxMDQsIDIzMCwgMTAyLCAyMTUsIDEyMywgMjI2LCAKKyAgICAyMTEsIDI1MCwgMTA0LCAyMjMsIDkzLCAyMjYsIDIxMSwgMjUwLCAxMDQsIDIyNSwgMTQ2LCAyMjYsIDIxMSwgMjUwLCAxMDQsIAorICAgIDI1NCwgMjA5LCAyMjYsIDIxMSwgMjUwLCAxMDQsIDIyNCwgMTQyLCAyMzAsIDk5LCAyMjYsIDIxMSwgMjUwLCAxMDQsIDIyNCwgCisgICAgMTQyLCA1MiwgMjMwLCA5OSwgMjA3LCAyMjQsIDE0MiwgMjUxLCAyNDIsIDIxOCwgOSwgMjA3LCAyMjQsIDE0MiwgMjUxLCAKKyAgICAyNDIsIDIyNiwgMzksIDIwNywgMjI0LCAxNDIsIDI1MSwgMjQyLCAyMjQsIDEzMCwgMjA3LCAyMjQsIDE0MiwgMjUxLCAyNDIsIAorICAgIDI1MSwgMjAsIDIwNywgMjI0LCAxNDIsIDI1MSwgMjQyLCAyMzMsIDksIDIyMSwgMjI2LCAyMDcsIDIyNCwgMTQyLCAyNTEsIAorICAgIDI0MiwgMjM1LCAxNCwgMjIxLCAyMjYsIDIwNywgMjI0LCAxNDIsIDI1MSwgMjQyLCAyNDgsIDIyMywgMjIxLCAyMjYsIDIwNywgCisgICAgMjI0LCAxNDIsIDI1MSwgMjQyLCAyNTIsIDE5MywgMjIxLCAyMjYsIDIxMywgMjUyLCAxMzgsIDIzNCwgMjExLCAyMTMsIAorICAgIDI1MiwgMTM4LCAyMjAsIDc4LCAyMTMsIDI1MiwgMTM4LCAyMjQsIDE5OSwgMjEzLCAyNTIsIDUsIDIyOCwgMjEwLCAyMTMsIAorICAgIDI1MiwgNSwgMjExLCA4MCwgMjMwLCAyMjMsIDIxOCwgMSwgMjEzLCAyNTIsIDEzOCwgMjExLCA4MCwgMjU0LCAyMTQsIDIzNSwgCisgICAgMjQ0LCAyMTgsIDEsIDIxMywgMjUyLCAxMzgsIDIxMSwgODAsIDIzNSwgMjQ0LCAyMTgsIDEsIDIxMywgMjUyLCAxMzgsIAorICAgIDIxMSwgODAsIDIzNCwgMTk5LCAyMzUsIDI0NCwgMjE4LCAxLCAyMTMsIDI1MiwgMTM4LCAyNTEsIDMsIDUxLCAyMTMsIDI1MiwgCisgICAgMTM4LCAyMTEsIDgwLCAyMzQsIDE5OSwgMjM1LCAyNDQsIDIxOCwgMiwgMjIxLCAxOTgsIDIxMywgMjUyLCAxMzgsIDUyLCAKKyAgICAyMTgsIDEsIDIxMywgMjUyLCAxMzgsIDIxNSwgMjEyLCAyMTgsIDEsIDIxMywgMjUyLCAxMzgsIDIzNCwgMTk5LCAyNTQsIAorICAgIDc4LCAyMTMsIDI1MiwgMTM4LCA1OSwgNTEsIDIxMywgMjUyLCAxMzgsIDExMywgMTcwLCA1MSwgMjEzLCAyNTIsIDEzOCwgCisgICAgMTM0LCAxNzAsIDUxLCAyMTMsIDI1MiwgMTM4LCAyMjIsIDI0MSwgMjM0LCAyMTAsIDIzNSwgMjQ0LCAyMTgsIDEsIDIxMywgCisgICAgMjUyLCAxMzgsIDI1MywgMjA1LCAyMzUsIDI0NCwgMjE4LCAxLCAyMTMsIDI1MiwgNSwgMjEzLCAxNDgsIDIxOCwgMSwgMjEzLCAKKyAgICAyNTIsIDUsIDIxMywgMTQ4LCAyMTQsIDIxNiwgMjEzLCAyNTIsIDUsIDIyMywgNTAsIDIxMywgMTQ4LCAyMTQsIDIxNiwgCisgICAgMjEzLCAyNTIsIDUsIDIxMywgMTQ4LCAyNTQsIDc4LCAyMTMsIDI1MiwgNSwgMjIzLCA1MCwgMjEzLCAxNDgsIDI1NCwgNzgsIAorICAgIDIxMywgMjUyLCA1LCAyMTMsIDE0OCwgMjE0LCAyMTcsIDIsIDIxNywgNzgsIDIxMywgMjUyLCA1LCAyMTMsIDE0OCwgMjU0LCAKKyAgICA3OSwgMiwgMjE3LCA3OCwgMjEzLCAyNTIsIDUsIDI1NCwgNzcsIDI1NCwgOTIsIDIxMywgMjUyLCA1LCAyNTQsIDc3LCAyNTIsIAorICAgIDE2NywgMjEzLCAyNTIsIDUsIDI1NCwgNzcsIDIxNCwgMjAsIDIxMywgMjUyLCA1LCAyNTQsIDc3LCAyMTQsIDIxLCAyLCAKKyAgICAyMTcsIDc4LCAyMTMsIDI1MiwgNSwgMjE2LCA2OSwgMjEzLCAyNTIsIDUsIDI0MSwgMTkyLCAxOTksIDI1NCwgNzYsIDIxMywgCisgICAgMjUyLCA1LCAxOTksIDI1NCwgNzYsIDIxMywgMjUyLCA1LCAyMjIsIDE0MywgMTk5LCAyNTQsIDc2LCAyMTMsIDI1MiwgNSwgCisgICAgMjU0LCA3NywgMjE0LCAyMjMsIDIzMCwgOTEsIDIxMywgMjUyLCA1LCAyNTQsIDIxLCAyMTMsIDI1MiwgNSwgMjIyLCAxODgsIAorICAgIDI1NCwgMjEsIDIxMywgMjUyLCAxMzgsIDI1MSwgMywgNDgsIDIxMywgMjUyLCA1LCAyMzUsIDEwMywgMjEzLCAyNTIsIDUsIAorICAgIDIxNCwgMTYxLCA3LCAxLCA0LCA2LCA2MSwgNywgMSwgNCwgNiwgMjU0LCAyNDQsIDcsIDQsIDEsIDIxNSwgOTQsIDI1NCwgCisgICAgMjQ0LCA3LCAxLCA0LCA2LCAyNTIsIDEzNSwgMjUzLCAxNTksIDcsIDEsIDQsIDYsIDI1MSwgNjcsIDcsIDEsIDQsIDYsIAorICAgIDI0OSwgNjEsIDcsIDEsIDQsIDYsIDI0NSwgNjAsIDcsIDEsIDQsIDYsIDc1LCA3LCA0LCAxLCAyMTUsIDk0LCAyMDQsIDc1LCAKKyAgICA3LCA0LCAxLCAyMTUsIDk0LCA3MywgNywgMSwgNCwgNiwgMjM1LCAxNDUsIDcsIDEsIDQsIDYsIDIzNSwgMjQsIDcsIDEsIDQsIAorICAgIDYsIDIzMywgMTUwLCAyLCA5MSwgNywgMSwgNCwgNiwgMTkzLCA3LCAxLCA0LCA2LCAyMjMsIDUwLCAyMzAsIDI2LCA3LCAxLCAKKyAgICA0LCA2LCA3NiwgNywgMSwgNCwgNiwgMjA0LCA3NiwgNywgNCwgMSwgMjE5LCAxODgsIDc2LCA3LCA0LCAxLCAyMTksIDE4OCwgCisgICAgMjA0LCA3NiwgNywgNCwgMSwgMjE5LCAxODgsIDE0NCwgMiwgOTEsIDcsIDQsIDEsIDIxNSwgOTQsIDIyNiwgMjM1LCA3LCAxLCAKKyAgICA0LCA2LCAyMjYsIDEzNSwgNywgNCwgMSwgMjE2LCAxNSwgMTYzLCA3NiwgNywgNCwgMSwgMjUxLCAxNzYsIDE2MywgNzYsIDcsIAorICAgIDEsIDQsIDYsIDIyNiwgMTA2LCA3LCAxLCA0LCA2LCAyMjMsIDUwLCAxNTMsIDcsIDEsIDQsIDYsIDIxNSwgOTQsIDE1MywgNywgCisgICAgMSwgNCwgNiwgMjE3LCAxNTMsIDcsIDEsIDQsIDYsIDcwLCA3LCA0LCAxLCAyMTksIDE4OCwgNzAsIDcsIDQsIDEsIDIxOSwgCisgICAgMTg4LCAyNDgsIDEsIDcwLCA3LCA0LCAxLCAyMTksIDE4OCwgMjE1LCA5NCwgMTkzLCA3LCAxLCA0LCA2LCAyMTQsIDEwNSwgCisgICAgNywgMSwgNCwgNiwgMjEyLCA5OCwgNywgMSwgNCwgNiwgMjEwLCAxNTksIDcsIDEsIDQsIDYsIDI0NSwgOSwgNywgMSwgMjEzLCAKKyAgICAxMzUsIDIzMywgODMsIDIxOCwgMjUxLCA3LCAxLCAyNTQsIDE5NywgMjYsIDEsIDQsIDYsIDI0MywgMTA4LCAyNiwgMSwgNCwgCisgICAgNiwgMjMzLCA5OSwgMjYsIDEsIDQsIDYsIDIyNSwgMTA5LCAyNiwgMSwgNCwgNiwgMjIzLCAzOCwgMjYsIDEsIDQsIDYsIAorICAgIDIyNCwgMTYyLCAzMywgMSwgNCwgNiwgMjQ1LCAxNzUsIDU4LCAxLCA2LCA2MSwgNTgsIDEsIDYsIDI1NCwgMjQ0LCA1OCwgMSwgCisgICAgNiwgMjUzLCAxNTksIDU4LCAxLCA2LCAyNTIsIDEzNSwgMjUzLCAxNTksIDU4LCAxLCA2LCAyNDksIDYxLCA1OCwgMSwgNiwgCisgICAgNzUsIDU4LCAxLCA2LCAyMjMsIDUwLCA3NSwgNTgsIDEsIDYsIDI0MywgMjAzLCA1OCwgMSwgNiwgMjQyLCA2MSwgNTgsIDEsIAorICAgIDYsIDczLCA1OCwgMSwgNiwgMjM1LCAxNDUsIDU4LCAxLCA2LCAyMzUsIDI0LCA1OCwgMSwgNiwgMTU2LCA1OCwgMSwgNiwgCisgICAgMTkzLCA1OCwgMSwgNiwgMjMwLCAyNiwgNTgsIDEsIDYsIDIyMywgNTAsIDIzMCwgMjYsIDU4LCAxLCA2LCA3NiwgNTgsIDEsIAorICAgIDYsIDIyNiwgMTM1LCA1OCwgMSwgNiwgMjI2LCAxMDYsIDU4LCAxLCA2LCAxNTMsIDU4LCAxLCA2LCAyMTcsIDE1MywgNTgsIAogICAgIDEsIDYsIDcwLCA1OCwgMSwgNiwgMjEyLCA5OCwgNTgsIDEsIDQsIDYxLCA1OCwgMSwgNCwgMjE1LCA5NCwgNjEsIDU4LCAxLCAKLSAgICA0LCAyNTQsIDE0MywgNTgsIDEsIDQsIDIxNSwgOTQsIDI1NCwgMjQzLCA1OCwgMSwgNCwgMjUzLCAxNTgsIDU4LCAxLCA0LCAKLSAgICAyNDksIDYwLCA1OCwgMSwgNCwgNzUsIDU4LCAxLCA0LCAyMjEsIDE5NSwgNTgsIDEsIDQsIDIwNCwgNzUsIDU4LCAxLCA0LCAKLSAgICAyMTUsIDk0LCAyMDQsIDc1LCA1OCwgMSwgNCwgMjQzLCAyMDIsIDU4LCAxLCA0LCAyMTUsIDk0LCA3MywgNTgsIDEsIDQsIAotICAgIDIzNSwgMjMsIDU4LCAxLCA0LCAxOTMsIDU4LCAxLCA0LCAyNDUsIDEzOCwgNTgsIDEsIDQsIDc2LCA1OCwgMSwgNCwgMjA0LCAKLSAgICA3NiwgNTgsIDEsIDQsIDIxNiwgMTQsIDE2MywgNzYsIDU4LCAxLCA0LCAyNTEsIDE3NSwgMTYzLCA3NiwgNTgsIDEsIDQsIAotICAgIDIyNiwgMTA1LCA1OCwgMSwgNCwgMjE3LCAxNTIsIDU4LCAxLCA0LCA3MCwgNTgsIDEsIDQsIDIxOSwgMTg3LCA3MCwgNTgsIAotICAgIDEsIDQsIDIxNSwgOTQsIDE5MywgNTgsIDEsIDQsIDIxNCwgMTA1LCA1OCwgMSwgNCwgMjU0LCAxOTYsIDU4LCAxLCA0LCAKLSAgICAyNTIsIDI2LCA1OCwgMSwgNCwgMjYsIDI0MywgMTA3LCA1OCwgMSwgNCwgMjQ4LCA1NCwgNTgsIDEsIDQsIDI2LCAyMjUsIAotICAgIDEzMywgNTgsIDEsIDQsIDI1MCwgMTEwLCA3LCAyMTgsIDY1LCA0LCAxLCA3MywgNywgMjE4LCA2NSwgNCwgMSwgMTUzLCA3LCAKLSAgICAyMTgsIDY1LCA0LCAxLCA3MCwgNywgMjE4LCA2NSwgNCwgMSwgMjE0LCAxMDUsIDI2LCAyMTgsIDY1LCA0LCAxLCAyNTIsIAotICAgIDI2LCAyNiwgMjE4LCA2NSwgNCwgMSwgMjQzLCAxMDcsIDI2LCAyMTgsIDY1LCA0LCAxLCAyMjMsIDM3LCAyNiwgMjE4LCA2NSwgCi0gICAgNCwgMSwgMjI1LCAxMzMsIDI2LCAyMTgsIDY1LCA0LCAxLCAyNTAsIDExMCwgNywgNCwgMSwgMjE0LCAyMTQsIDcsIDQsIDEsIAotICAgIDU3LCAyLCAyMzAsIDIyNCwgMTgyLCA3LCA0LCAxLCAyNDksIDYxLCAyLCAyMzAsIDIyNCwgMTgyLCA3LCA0LCAxLCAyNDUsIAotICAgIDcsIDIsIDIzMCwgMjI0LCAxODIsIDcsIDQsIDEsIDIzMiwgNTAsIDIsIDIzMCwgMjI0LCAxODIsIDcsIDQsIDEsIDIzMCwgCi0gICAgMjYsIDIsIDIzMCwgMjI0LCAxODIsIDcsIDQsIDEsIDIyNiwgMTA2LCAyLCAyMzAsIDIyNCwgMTgyLCA3LCA0LCAxLCAyMjMsIAotICAgIDIyNCwgMiwgMjMwLCAyMjQsIDE4MiwgNywgNCwgMSwgMjIzLCAyMjQsIDIsIDI0NCwgODgsIDIyLCAyMzAsIDIyNCwgMTgyLCAKLSAgICA3LCA0LCAxLCAyMjIsIDkyLCAyLCAyMzAsIDIyNCwgMTgyLCA3LCA0LCAxLCAyMTcsIDE1MywgMiwgMjMwLCAyMjQsIDE4MiwgCi0gICAgNywgNCwgMSwgMjEwLCAxNjAsIDIsIDIzMCwgMjI0LCAxODIsIDcsIDQsIDEsIDIxNSwgOTQsIDI0MywgMjAyLCA1OCwgMSwgCi0gICAgMzMsIDI0NSwgMTUwLCA3LCA0LCAxLCAyMzUsIDIxMywgMjQzLCAyMDIsIDcsIDQsIDEsIDIxNiwgMjExLCAyLCAyMTgsIAotICAgIDEwNywgNywgNCwgNiwgMSwgMjQwLCAxNTQsIDIsIDkxLCA3LCA0LCAxLCAyMzUsIDE4NiwgMiwgOTEsIDcsIDQsIDEsIDIyNiwgCi0gICAgMTA2LCAyLCA5MSwgNywgNCwgNiwgMSwgMTA0LCAyLCA5MSwgNywgNCwgMSwgMjE0LCAxNTgsIDIsIDkxLCA3LCA0LCAxLCAKLSAgICA1NywgMiwgMjI2LCA2NiwgMTAzLCA3LCA0LCAxLCAyNDksIDYxLCAyLCAyMjYsIDY2LCAxMDMsIDcsIDQsIDEsIDI0NSwgNywgCi0gICAgMiwgMjI2LCA2NiwgMTAzLCA3LCA0LCAxLCAyNDMsIDIwMywgMiwgMjI2LCA2NiwgMTAzLCA3LCA0LCAxLCAyMzUsIDI0LCAyLCAKLSAgICAyMjYsIDY2LCAxMDMsIDcsIDQsIDEsIDIzMywgMTQ5LCAyLCAyMjYsIDY2LCAxMDMsIDcsIDQsIDEsIDIzMiwgNTAsIDIsIAotICAgIDIyNiwgNjYsIDEwMywgNywgNCwgMSwgMjMwLCAyNiwgMiwgMjI2LCA2NiwgMTAzLCA3LCA0LCAxLCAyMjYsIDEwNiwgMiwgCi0gICAgMjI2LCA2NiwgMTAzLCA3LCA0LCAxLCAyMjMsIDIyNCwgMiwgMjI2LCA2NiwgMTAzLCA3LCA0LCAxLCAyMjIsIDkyLCAyLCAKLSAgICAyMjYsIDY2LCAxMDMsIDcsIDQsIDEsIDI0NSwgNzYsIDIsIDIyNiwgNjYsIDEwMywgNywgNCwgMSwgMjE0LCAxMDYsIDIsIAotICAgIDIyNiwgNjYsIDEwMywgNywgNCwgMSwgMjExLCAxNzksIDIsIDIyNiwgNjYsIDEwMywgNywgNCwgMSwgMjEwLCAxNjAsIDIsIAotICAgIDIyNiwgNjYsIDEwMywgNywgNCwgMSwgMTE1LCAyLCAyMjMsIDU1LCAxMDMsIDcsIDQsIDEsIDI1NCwgMTQ0LCAyLCAyMjMsIAotICAgIDU1LCAxMDMsIDcsIDQsIDEsIDI0OSwgNjEsIDIsIDI0MSwgNTIsIDIyLCAyMTcsIDc3LCA3LCA0LCAxLCAxNjAsIDIsIDIyMywgCi0gICAgNTUsIDEwMywgNywgNCwgMSwgMjA0LCAxNjAsIDIsIDIyMywgNTUsIDEwMywgNywgNCwgMSwgMjIzLCA0OSwgMjA0LCAxNjAsIAotICAgIDIsIDIyMywgNTUsIDEwMywgNywgNCwgMSwgMjIxLCAxOTYsIDIsIDIyMywgNTUsIDEwMywgNywgNCwgMSwgMjQwLCAxNTQsIAotICAgIDIsIDIyMywgNTUsIDEwMywgNywgNCwgMSwgMjA0LCAxNDQsIDIsIDIyMywgNTUsIDEwMywgNywgNCwgMSwgMjQ1LCA3NiwgMiwgCi0gICAgMjIzLCA1NSwgMTAzLCA3LCA0LCAxLCAxMDQsIDIsIDIyMywgNTUsIDEwMywgNywgNCwgMSwgMjQ1LCA5LCAyLCAyMjMsIDU1LCAKLSAgICAxMDMsIDU4LCAxLCA0LCAyMTUsIDk0LCAyNTQsIDE0MywgNTgsIDEsIDQsIDI1MSwgNjYsIDU4LCAxLCA0LCAyNTEsIDY3LCAKLSAgICAyLCAyNDksIDEwMCwgNTgsIDEsIDQsIDI0NSwgNTksIDU4LCAxLCA0LCAyMjMsIDQ5LCAyMDQsIDc1LCA1OCwgMSwgNCwgCi0gICAgMjQ1LCA2LCA1OCwgMSwgNCwgMjQ3LCAxMTksIDIzNSwgMTQ1LCAyLCA5MSwgNTgsIDEsIDQsIDExOSwgMjQzLCAyMDIsIDU4LCAKLSAgICAxLCA0LCAyMTUsIDk0LCAyNDIsIDYwLCA1OCwgMSwgNCwgMjQwLCAxNTQsIDIsIDkxLCA1OCwgMSwgNCwgMjM1LCAxODUsIAotICAgIDU4LCAxLCA0LCA2LCA3MywgNTgsIDEsIDQsIDYsIDI0MCwgMTU0LCAyLCA5MSwgNTgsIDEsIDQsIDIzNSwgMTQ1LCAyLCAKLSAgICAyNDksIDEyNywgNTgsIDEsIDQsIDIzMywgMTQ5LCAyLCAyMjMsIDU1LCAxMDMsIDU4LCAxLCA0LCAyMzMsIDE0OSwgMiwgCi0gICAgMjI2LCA2NiwgMTAzLCA1OCwgMSwgNCwgNiwgMTU2LCA1OCwgMSwgNCwgMjMyLCA1MCwgMiwgMTAzLCA1OCwgMSwgNCwgMjE1LCAKLSAgICA5NCwgMjMyLCA1MCwgMiwgMTk5LCAyMzMsIDM2LCA1OCwgMSwgNCwgMjMwLCAyNiwgMiwgNDMsIDEwMywgNTgsIDEsIDQsIAotICAgIDIzMCwgMjYsIDIsIDIyMywgNTUsIDEwMywgNTgsIDEsIDQsIDYsIDIzMCwgMjUsIDU4LCAxLCA0LCAyNTIsIDEzNCwgNzYsIAotICAgIDU4LCAxLCA0LCAyMjUsIDEzMywgNTgsIDEsIDQsIDIyMiwgOTIsIDIsIDEwMywgNTgsIDEsIDQsIDI0NSwgNzUsIDU4LCAxLCAKLSAgICA0LCAyMTcsIDE1MywgMiwgMjI2LCA2NiwgMTAzLCA1OCwgMSwgNCwgMTA0LCAxMzAsIDU4LCAxLCA0LCAyMTQsIDE1NywgNTgsIAorICAgIDQsIDI1NCwgMTQ0LCA1OCwgMSwgNCwgMjE1LCA5NCwgMjU0LCAyNDQsIDU4LCAxLCA0LCAyNTMsIDE1OSwgNTgsIDEsIDQsIAorICAgIDI0OSwgNjEsIDU4LCAxLCA0LCA3NSwgNTgsIDEsIDQsIDIyMSwgMTk2LCA1OCwgMSwgNCwgMjA0LCA3NSwgNTgsIDEsIDQsIAorICAgIDIxNSwgOTQsIDIwNCwgNzUsIDU4LCAxLCA0LCAyNDMsIDIwMywgNTgsIDEsIDQsIDIxNSwgOTQsIDczLCA1OCwgMSwgNCwgCisgICAgMjM1LCAyNCwgNTgsIDEsIDQsIDE5MywgNTgsIDEsIDQsIDI0NSwgMTM5LCA1OCwgMSwgNCwgNzYsIDU4LCAxLCA0LCAyMDQsIAorICAgIDc2LCA1OCwgMSwgNCwgMjE2LCAxNSwgMTYzLCA3NiwgNTgsIDEsIDQsIDI1MSwgMTc2LCAxNjMsIDc2LCA1OCwgMSwgNCwgCisgICAgMjI2LCAxMDYsIDU4LCAxLCA0LCAyMTcsIDE1MywgNTgsIDEsIDQsIDcwLCA1OCwgMSwgNCwgMjE5LCAxODgsIDcwLCA1OCwgCisgICAgMSwgNCwgMjE1LCA5NCwgMTkzLCA1OCwgMSwgNCwgMjE0LCAxMDUsIDU4LCAxLCA0LCAyNTQsIDE5NywgNTgsIDEsIDQsIAorICAgIDI1MiwgMjcsIDU4LCAxLCA0LCAyNiwgMjQzLCAxMDgsIDU4LCAxLCA0LCAyNDgsIDU1LCA1OCwgMSwgNCwgMjYsIDIyNSwgCisgICAgMTM0LCA1OCwgMSwgNCwgMjUwLCAxMTEsIDcsIDIxOCwgNjYsIDQsIDEsIDczLCA3LCAyMTgsIDY2LCA0LCAxLCAxNTMsIDcsIAorICAgIDIxOCwgNjYsIDQsIDEsIDcwLCA3LCAyMTgsIDY2LCA0LCAxLCAyMTQsIDEwNSwgMjYsIDIxOCwgNjYsIDQsIDEsIDI1MiwgCisgICAgMjcsIDI2LCAyMTgsIDY2LCA0LCAxLCAyNDMsIDEwOCwgMjYsIDIxOCwgNjYsIDQsIDEsIDIyMywgMzgsIDI2LCAyMTgsIDY2LCAKKyAgICA0LCAxLCAyMjUsIDEzNCwgMjYsIDIxOCwgNjYsIDQsIDEsIDI1MCwgMTExLCA3LCA0LCAxLCAyMTQsIDIxNCwgNywgNCwgMSwgCisgICAgNTcsIDIsIDIzMCwgMjI1LCAxODMsIDcsIDQsIDEsIDI0OSwgNjIsIDIsIDIzMCwgMjI1LCAxODMsIDcsIDQsIDEsIDI0NSwgCisgICAgOCwgMiwgMjMwLCAyMjUsIDE4MywgNywgNCwgMSwgMjMyLCA1MSwgMiwgMjMwLCAyMjUsIDE4MywgNywgNCwgMSwgMjMwLCAKKyAgICAyNywgMiwgMjMwLCAyMjUsIDE4MywgNywgNCwgMSwgMjI2LCAxMDcsIDIsIDIzMCwgMjI1LCAxODMsIDcsIDQsIDEsIDIyMywgCisgICAgMjI1LCAyLCAyMzAsIDIyNSwgMTgzLCA3LCA0LCAxLCAyMjMsIDIyNSwgMiwgMjQ0LCA4OSwgMjIsIDIzMCwgMjI1LCAxODMsIAorICAgIDcsIDQsIDEsIDIyMiwgOTMsIDIsIDIzMCwgMjI1LCAxODMsIDcsIDQsIDEsIDIxNywgMTU0LCAyLCAyMzAsIDIyNSwgMTgzLCAKKyAgICA3LCA0LCAxLCAyMTAsIDE2MCwgMiwgMjMwLCAyMjUsIDE4MywgNywgNCwgMSwgMjE1LCA5NCwgMjQzLCAyMDMsIDU4LCAxLCAKKyAgICAzMywgMjQ1LCAxNTEsIDcsIDQsIDEsIDIzNSwgMjE0LCAyNDMsIDIwMywgNywgNCwgMSwgMjE2LCAyMTIsIDIsIDIxOCwgCisgICAgMTA4LCA3LCA0LCA2LCAxLCAyNDAsIDE1NSwgMiwgOTEsIDcsIDQsIDEsIDIzNSwgMTg3LCAyLCA5MSwgNywgNCwgMSwgMjI2LCAKKyAgICAxMDcsIDIsIDkxLCA3LCA0LCA2LCAxLCAxMDQsIDIsIDkxLCA3LCA0LCAxLCAyMTQsIDE1OCwgMiwgOTEsIDcsIDQsIDEsIAorICAgIDU3LCAyLCAyMjYsIDY3LCAxMDMsIDcsIDQsIDEsIDI0OSwgNjIsIDIsIDIyNiwgNjcsIDEwMywgNywgNCwgMSwgMjQ1LCA4LCAKKyAgICAyLCAyMjYsIDY3LCAxMDMsIDcsIDQsIDEsIDI0MywgMjA0LCAyLCAyMjYsIDY3LCAxMDMsIDcsIDQsIDEsIDIzNSwgMjUsIDIsIAorICAgIDIyNiwgNjcsIDEwMywgNywgNCwgMSwgMjMzLCAxNTAsIDIsIDIyNiwgNjcsIDEwMywgNywgNCwgMSwgMjMyLCA1MSwgMiwgCisgICAgMjI2LCA2NywgMTAzLCA3LCA0LCAxLCAyMzAsIDI3LCAyLCAyMjYsIDY3LCAxMDMsIDcsIDQsIDEsIDIyNiwgMTA3LCAyLCAKKyAgICAyMjYsIDY3LCAxMDMsIDcsIDQsIDEsIDIyMywgMjI1LCAyLCAyMjYsIDY3LCAxMDMsIDcsIDQsIDEsIDIyMiwgOTMsIDIsIAorICAgIDIyNiwgNjcsIDEwMywgNywgNCwgMSwgMjQ1LCA3NywgMiwgMjI2LCA2NywgMTAzLCA3LCA0LCAxLCAyMTQsIDEwNiwgMiwgCisgICAgMjI2LCA2NywgMTAzLCA3LCA0LCAxLCAyMTEsIDE3OSwgMiwgMjI2LCA2NywgMTAzLCA3LCA0LCAxLCAyMTAsIDE2MCwgMiwgCisgICAgMjI2LCA2NywgMTAzLCA3LCA0LCAxLCAxMTUsIDIsIDIyMywgNTYsIDEwMywgNywgNCwgMSwgMjU0LCAxNDUsIDIsIDIyMywgCisgICAgNTYsIDEwMywgNywgNCwgMSwgMjQ5LCA2MiwgMiwgMjQxLCA1MywgMjIsIDIxNywgNzgsIDcsIDQsIDEsIDE2MCwgMiwgMjIzLCAKKyAgICA1NiwgMTAzLCA3LCA0LCAxLCAyMDQsIDE2MCwgMiwgMjIzLCA1NiwgMTAzLCA3LCA0LCAxLCAyMjMsIDUwLCAyMDQsIDE2MCwgCisgICAgMiwgMjIzLCA1NiwgMTAzLCA3LCA0LCAxLCAyMjEsIDE5NywgMiwgMjIzLCA1NiwgMTAzLCA3LCA0LCAxLCAyNDAsIDE1NSwgCisgICAgMiwgMjIzLCA1NiwgMTAzLCA3LCA0LCAxLCAyMDQsIDE0NCwgMiwgMjIzLCA1NiwgMTAzLCA3LCA0LCAxLCAyNDUsIDc3LCAyLCAKKyAgICAyMjMsIDU2LCAxMDMsIDcsIDQsIDEsIDEwNCwgMiwgMjIzLCA1NiwgMTAzLCA3LCA0LCAxLCAyNDUsIDEwLCAyLCAyMjMsIAorICAgIDU2LCAxMDMsIDU4LCAxLCA0LCAyMTUsIDk0LCAyNTQsIDE0NCwgNTgsIDEsIDQsIDI1MSwgNjcsIDU4LCAxLCA0LCAyNTEsIAorICAgIDY4LCAyLCAyNDksIDEwMSwgNTgsIDEsIDQsIDI0NSwgNjAsIDU4LCAxLCA0LCAyMjMsIDUwLCAyMDQsIDc1LCA1OCwgMSwgNCwgCisgICAgMjQ1LCA3LCA1OCwgMSwgNCwgMjQ3LCAxMjAsIDIzNSwgMTQ2LCAyLCA5MSwgNTgsIDEsIDQsIDExOSwgMjQzLCAyMDMsIDU4LCAKKyAgICAxLCA0LCAyMTUsIDk0LCAyNDIsIDYxLCA1OCwgMSwgNCwgMjQwLCAxNTUsIDIsIDkxLCA1OCwgMSwgNCwgMjM1LCAxODYsIAorICAgIDU4LCAxLCA0LCA2LCA3MywgNTgsIDEsIDQsIDYsIDI0MCwgMTU1LCAyLCA5MSwgNTgsIDEsIDQsIDIzNSwgMTQ2LCAyLCAKKyAgICAyNDksIDEyOCwgNTgsIDEsIDQsIDIzMywgMTUwLCAyLCAyMjMsIDU2LCAxMDMsIDU4LCAxLCA0LCAyMzMsIDE1MCwgMiwgCisgICAgMjI2LCA2NywgMTAzLCA1OCwgMSwgNCwgNiwgMTU2LCA1OCwgMSwgNCwgMjMyLCA1MSwgMiwgMTAzLCA1OCwgMSwgNCwgMjE1LCAKKyAgICA5NCwgMjMyLCA1MSwgMiwgMTk5LCAyMzMsIDM3LCA1OCwgMSwgNCwgMjMwLCAyNywgMiwgNDMsIDEwMywgNTgsIDEsIDQsIAorICAgIDIzMCwgMjcsIDIsIDIyMywgNTYsIDEwMywgNTgsIDEsIDQsIDYsIDIzMCwgMjYsIDU4LCAxLCA0LCAyNTIsIDEzNSwgNzYsIAorICAgIDU4LCAxLCA0LCAyMjUsIDEzNCwgNTgsIDEsIDQsIDIyMiwgOTMsIDIsIDEwMywgNTgsIDEsIDQsIDI0NSwgNzYsIDU4LCAxLCAKKyAgICA0LCAyMTcsIDE1NCwgMiwgMjI2LCA2NywgMTAzLCA1OCwgMSwgNCwgMTA0LCAxMzAsIDU4LCAxLCA0LCAyMTQsIDE1NywgNTgsIAogICAgIDEsIDQsIDYsIDcwLCA1OCwgMSwgNCwgMjE0LCAxMDYsIDIsIDEwMywgNTgsIDEsIDQsIDIxNSwgOTQsIDIxNCwgMTA1LCA1OCwgCi0gICAgMSwgNCwgMjEwLCAxNTksIDU4LCAxLCA0LCAyMTAsIDE2MCwgMiwgMjIzLCA1NSwgMTAzLCA1OCwgMSwgNCwgMjEwLCAxNjAsIAotICAgIDIsIDI0OSwgMTAwLCA1OCwgMSwgNCwgMjQ1LCA4LCA1OCwgMSwgNCwgMjE2LCAxNzksIDM4LCAyNDYsIDExOCwgMjQyLCAKLSAgICAxMzcsIDI1NSwgMTQsIDM4LCAyNDYsIDExOCwgMjU1LCAzLCAyNTUsIDE0LCAzOCwgMjE5LCA2OSwgNTEsIDM4LCAyMTgsIDYsIAotICAgIDc4LCAzOCwgMjMxLCAyMzEsIDM4LCAyNDIsIDEzNCwgMzgsIDIzMSwgMjI5LCAzOCwgMjU1LCAxLCAzOCwgMjQyLCAxMzUsIAotICAgIDM4LCAyNTUsIDIsIDM4LCA3LCA0LCAxLCAyMjMsIDIyNCwgNTEsIDM4LCAyNTEsIDE0NSwgMzgsIDIzMSwgMjMwLCAzOCwgCi0gICAgNTIsIDI1MCwgMzEsIDQ4LCAzOCwgMjI2LCAyMjUsIDQ4LCAzOCwgMjEwLCAzNSwgNTEsIDM4LCAyMzUsIDE3MiwgNTEsIDM4LCAKLSAgICAyMTQsIDE1MSwgNDgsIDM4LCAyMTQsIDEzNCwgNDgsIDM4LCA3LCA0LCAxLCAyNDQsIDYzLCAyMDQsIDExNSwgNDgsIDM4LCAKLSAgICA3LCA0LCAxLCAyNTQsIDI0MywgMzgsIDcsIDQsIDEsIDI1NCwgNzMsIDM4LCA3LCA0LCAxLCAyNTMsIDE3NiwgMzgsIDcsIDQsIAotICAgIDEsIDI1MSwgNjcsIDI1MCwgMTgzLCAzOCwgNywgNCwgMSwgMjM1LCAyMTMsIDI0OSwgNjAsIDM4LCA3LCA0LCAxLCAyNDUsIAotICAgIDU5LCAzOCwgNywgNCwgMSwgMjQzLCAyMDIsIDM4LCA3LCAxLCA0LCA2LCAyNDMsIDIwMiwgMzgsIDcsIDQsIDEsIDIzNSwgCi0gICAgMjMsIDM4LCA3LCA0LCAxLCAxNTYsIDM4LCA3LCAxLCA0LCA2LCAxNTYsIDM4LCA3LCAxLCA0LCA2LCAxOTMsIDM4LCA3LCA0LCAKLSAgICAxLCAyMzAsIDI1LCAzOCwgNywgMSwgNCwgNiwgMjMwLCAyNSwgMzgsIDcsIDEsIDQsIDYsIDE1MywgMzgsIDcsIDQsIDEsIAotICAgIDIyMywgMjI0LCAyMjIsIDE4NiwgMzgsIDcsIDQsIDEsIDIyMiwgOTEsIDM4LCA3LCA0LCAxLCAxOTksIDIyMiwgOTEsIDM4LCAKLSAgICA3LCA0LCAxLCAyMTAsIDE1OSwgMzgsIDUyLCAyMzUsIDE5MywgMjUxLCAxNDcsIDUxLCAzOCwgMjU0LCAxNDgsIDEyOCwgCi0gICAgMjE2LCA0MiwgNTEsIDM4LCA0MywgMjUzLCAyNTAsIDQ4LCAzOCwgNDQsIDI1MywgMjUwLCAyMiwgMTI0LCAyNTMsIDI1MCwgCi0gICAgNTEsIDcsIDYsIDEsIDExNSwgMiwgMjIyLCAyMzQsIDUxLCA3LCA0LCAxLCAxMTUsIDIsIDIyMiwgMjM0LCA1MSwgNywgNiwgCisgICAgMSwgNCwgMjEwLCAxNTksIDU4LCAxLCA0LCAyMTAsIDE2MCwgMiwgMjIzLCA1NiwgMTAzLCA1OCwgMSwgNCwgMjEwLCAxNjAsIAorICAgIDIsIDI0OSwgMTAxLCA1OCwgMSwgNCwgMjQ1LCA5LCA1OCwgMSwgNCwgMjE2LCAxODAsIDM4LCAyNDYsIDExOSwgMjQyLCAKKyAgICAxMzgsIDI1NSwgMTUsIDM4LCAyNDYsIDExOSwgMjU1LCA0LCAyNTUsIDE1LCAzOCwgMjE5LCA3MCwgNTEsIDM4LCAyMTgsIDcsIAorICAgIDc4LCAzOCwgMjMxLCAyMzIsIDM4LCAyNDIsIDEzNSwgMzgsIDIzMSwgMjMwLCAzOCwgMjU1LCAyLCAzOCwgMjQyLCAxMzYsIAorICAgIDM4LCAyNTUsIDMsIDM4LCA3LCA0LCAxLCAyMjMsIDIyNSwgNTEsIDM4LCAyNTEsIDE0NiwgMzgsIDIzMSwgMjMxLCAzOCwgCisgICAgNTIsIDI1MCwgMzIsIDQ4LCAzOCwgMjI2LCAyMjYsIDQ4LCAzOCwgMjEwLCAzNSwgNTEsIDM4LCAyMzUsIDE3MywgNTEsIDM4LCAKKyAgICAyMTQsIDE1MSwgNDgsIDM4LCAyMTQsIDEzNCwgNDgsIDM4LCA3LCA0LCAxLCAyNDQsIDY0LCAyMDQsIDExNSwgNDgsIDM4LCAKKyAgICA3LCA0LCAxLCAyNTQsIDI0NCwgMzgsIDcsIDQsIDEsIDI1NCwgNzQsIDM4LCA3LCA0LCAxLCAyNTMsIDE3NywgMzgsIDcsIDQsIAorICAgIDEsIDI1MSwgNjgsIDI1MCwgMTg0LCAzOCwgNywgNCwgMSwgMjM1LCAyMTQsIDI0OSwgNjEsIDM4LCA3LCA0LCAxLCAyNDUsIAorICAgIDYwLCAzOCwgNywgNCwgMSwgMjQzLCAyMDMsIDM4LCA3LCAxLCA0LCA2LCAyNDMsIDIwMywgMzgsIDcsIDQsIDEsIDIzNSwgCisgICAgMjQsIDM4LCA3LCA0LCAxLCAxNTYsIDM4LCA3LCAxLCA0LCA2LCAxNTYsIDM4LCA3LCAxLCA0LCA2LCAxOTMsIDM4LCA3LCA0LCAKKyAgICAxLCAyMzAsIDI2LCAzOCwgNywgMSwgNCwgNiwgMjMwLCAyNiwgMzgsIDcsIDEsIDQsIDYsIDE1MywgMzgsIDcsIDQsIDEsIAorICAgIDIyMywgMjI1LCAyMjIsIDE4NywgMzgsIDcsIDQsIDEsIDIyMiwgOTIsIDM4LCA3LCA0LCAxLCAxOTksIDIyMiwgOTIsIDM4LCAKKyAgICA3LCA0LCAxLCAyMTAsIDE1OSwgMzgsIDUyLCAyMzUsIDE5NCwgMjUxLCAxNDgsIDUxLCAzOCwgMjU0LCAxNDksIDEyOCwgCisgICAgMjE2LCA0MywgNTEsIDM4LCA0MywgMjUzLCAyNTEsIDQ4LCAzOCwgNDQsIDI1MywgMjUxLCAyMiwgMTI0LCAyNTMsIDI1MSwgCisgICAgNTEsIDcsIDYsIDEsIDExNSwgMiwgMjIyLCAyMzUsIDUxLCA3LCA0LCAxLCAxMTUsIDIsIDIyMiwgMjM1LCA1MSwgNywgNiwgCiAgICAgMSwgNTcsIDIsIDU5LCA0OCwgNywgNCwgMSwgNTcsIDIsIDU5LCA0OCwgNywgNiwgMSwgNTcsIDIsIDU5LCA1MSwgNywgNCwgCi0gICAgMSwgNTcsIDIsIDU5LCA1MSwgNywgNiwgMSwgNTcsIDIsIDIzMiwgMjE0LCA1MSwgNywgNCwgMSwgNTcsIDIsIDIzMiwgMjE0LCAKLSAgICA1MSwgNywgNiwgMSwgMjUxLCA2NywgMiwgMjUwLCAxODQsIDIyLCAxNDIsIDcsIDQsIDEsIDI1MSwgNjcsIDIsIDI1MCwgCi0gICAgMTg0LCAyMiwgMTQyLCA3LCA2LCAxLCAyNDksIDYxLCAyLCA1OSwgNDgsIDcsIDQsIDEsIDI0OSwgNjEsIDIsIDU5LCA0OCwgCi0gICAgNywgNiwgMSwgMjQ5LCA2MSwgMiwgNTksIDUxLCA3LCA0LCAxLCAyNDksIDYxLCAyLCA1OSwgNTEsIDcsIDYsIDEsIDI0OSwgCi0gICAgNjEsIDIsIDIzMiwgMjE0LCA1MSwgNywgNCwgMSwgMjQ5LCA2MSwgMiwgMjMyLCAyMTQsIDUxLCA3LCA2LCAxLCAyNDksIDYxLCAKLSAgICAyLCAyNTAsIDE4MywgNywgNCwgMSwgMjQ5LCA2MSwgMiwgMjUwLCAxODMsIDcsIDYsIDEsIDI0OSwgNjEsIDIsIDI1MCwgMzEsIAotICAgIDUxLCA3LCA0LCAxLCAyNDksIDYxLCAyLCAyNTAsIDMxLCA1MSwgNywgNiwgMSwgMTYwLCAyLCAyMzEsIDIzMywgMjIsIDI0MiwgCi0gICAgMTM2LCA3LCA0LCAxLCAxNjAsIDIsIDIzMSwgMjMzLCAyMiwgMjQyLCAxMzYsIDcsIDYsIDEsIDE2MCwgMiwgMjMxLCAyMzMsIAotICAgIDIyLCAxNDIsIDcsIDQsIDEsIDE2MCwgMiwgMjMxLCAyMzMsIDIyLCAxNDIsIDcsIDYsIDEsIDE2MCwgMiwgMjUwLCAzMSwgCi0gICAgNTEsIDcsIDQsIDEsIDE2MCwgMiwgMjUwLCAzMSwgNTEsIDcsIDYsIDEsIDE2MCwgMiwgMjE2LCA4OSwgNTEsIDcsIDQsIDEsIAotICAgIDE2MCwgMiwgMjE2LCA4OSwgNTEsIDcsIDYsIDEsIDE2MCwgMiwgMjUwLCAxODQsIDIyLCAyNTEsIDE0NiwgNywgNCwgMSwgCi0gICAgMTYwLCAyLCAyNTAsIDE4NCwgMjIsIDI1MSwgMTQ2LCA3LCA2LCAxLCAyNDUsIDcsIDIsIDU5LCA0OCwgNywgNCwgMSwgMjQ1LCAKLSAgICA3LCAyLCA1OSwgNDgsIDcsIDYsIDEsIDI0MywgMjAzLCAyLCAyMzEsIDIzMiwgNywgNCwgMSwgMjQzLCAyMDMsIDIsIDIzMSwgCi0gICAgMjMyLCA3LCA2LCAxLCAyNDIsIDYxLCAyLCA1OSwgNDgsIDcsIDQsIDEsIDI0MiwgNjEsIDIsIDU5LCA0OCwgNywgNiwgMSwgCi0gICAgMjQyLCA2MSwgMiwgNTksIDUxLCA3LCA0LCAxLCAyNDIsIDYxLCAyLCA1OSwgNTEsIDcsIDYsIDEsIDI0MiwgNjEsIDIsIAotICAgIDI0OCwgMSwgNywgNCwgMSwgMjQyLCA2MSwgMiwgMjQ4LCAxLCA3LCA2LCAxLCAyNDIsIDYxLCAyLCAyNTAsIDE4MywgNywgNCwgCi0gICAgMSwgMjQyLCA2MSwgMiwgMjUwLCAxODMsIDcsIDYsIDEsIDI0MiwgNjEsIDIsIDI1MSwgMTQ3LCA1MSwgNywgNCwgMSwgMjQyLCAKLSAgICA2MSwgMiwgMjUxLCAxNDcsIDUxLCA3LCA2LCAxLCAyNDAsIDE1NCwgMiwgMjE2LCA4OSwgNTEsIDcsIDQsIDEsIDI0MCwgCi0gICAgMTU0LCAyLCAyMTYsIDg5LCA1MSwgNywgNiwgMSwgMjQwLCAxNTQsIDIsIDI0OCwgMiwgMjIsIDE0MiwgNywgNCwgMSwgMjQwLCAKLSAgICAxNTQsIDIsIDI0OCwgMiwgMjIsIDE0MiwgNywgNiwgMSwgMjM1LCAyNCwgMiwgMTQyLCA3LCA0LCAxLCAyMzUsIDI0LCAyLCAKLSAgICAxNDIsIDcsIDYsIDEsIDIzNSwgMjQsIDIsIDU5LCA1MSwgNywgNCwgMSwgMjM1LCAyNCwgMiwgNTksIDUxLCA3LCA2LCAxLCAKLSAgICAyMzUsIDI0LCAyLCAyMzIsIDIxNCwgNTEsIDcsIDQsIDEsIDIzNSwgMjQsIDIsIDIzMiwgMjE0LCA1MSwgNywgNiwgMSwgCi0gICAgMjMzLCAxNDksIDIsIDU5LCA1MSwgNywgNCwgMSwgMjMzLCAxNDksIDIsIDU5LCA1MSwgNywgNiwgMSwgMjMzLCAxNDksIDIsIAotICAgIDU5LCAyNTIsIDQzLCAyMiwgMjMxLCAyMzIsIDcsIDQsIDEsIDIzMywgMTQ5LCAyLCA1OSwgMjUyLCA0MywgMjIsIDIzMSwgCi0gICAgMjMyLCA3LCA2LCAxLCAyMzMsIDE0OSwgMiwgMjMyLCAyMTQsIDUxLCA3LCA0LCAxLCAyMzMsIDE0OSwgMiwgMjMyLCAyMTQsIAotICAgIDUxLCA3LCA2LCAxLCAyMzMsIDE0OSwgMiwgMjUwLCAzMSwgNTEsIDcsIDQsIDEsIDIzMywgMTQ5LCAyLCAyNTAsIDMxLCA1MSwgCi0gICAgNywgNiwgMSwgMjMyLCA1MCwgMiwgMTQyLCA3LCA0LCAxLCAyMzIsIDUwLCAyLCAxNDIsIDcsIDYsIDEsIDIzMiwgNTAsIDIsIAotICAgIDU5LCA0OCwgNywgNCwgMSwgMjMyLCA1MCwgMiwgNTksIDQ4LCA3LCA2LCAxLCAyMzIsIDUwLCAyLCA1OSwgNTEsIDcsIDQsIAotICAgIDEsIDIzMiwgNTAsIDIsIDU5LCA1MSwgNywgNiwgMSwgMjMwLCAyNiwgMiwgNTksIDQ4LCA3LCA0LCAxLCAyMzAsIDI2LCAyLCAKLSAgICA1OSwgNDgsIDcsIDYsIDEsIDIzMCwgMjYsIDIsIDU5LCA1MSwgNywgNCwgMSwgMjMwLCAyNiwgMiwgNTksIDUxLCA3LCA2LCAKLSAgICAxLCAyMzAsIDI2LCAyLCAyMzIsIDIxNCwgNTEsIDcsIDQsIDEsIDIzMCwgMjYsIDIsIDIzMiwgMjE0LCA1MSwgNywgNiwgMSwgCi0gICAgMjMwLCAyNiwgMiwgMjUwLCAzMSwgNTEsIDcsIDQsIDEsIDIzMCwgMjYsIDIsIDI1MCwgMzEsIDUxLCA3LCA2LCAxLCAxNDQsIAotICAgIDIsIDIxNiwgODksIDIyLCAxNDIsIDcsIDQsIDEsIDE0NCwgMiwgMjE2LCA4OSwgMjIsIDE0MiwgNywgNiwgMSwgMTQ0LCAyLCAKLSAgICAyMTYsIDg5LCAyMiwgMjQ4LCAxLCA3LCA0LCAxLCAxNDQsIDIsIDIxNiwgODksIDIyLCAyNDgsIDEsIDcsIDYsIDEsIDE0NCwgCi0gICAgMiwgMjMxLCAyMzMsIDIyLCAyNDIsIDEzNiwgNywgNCwgMSwgMTQ0LCAyLCAyMzEsIDIzMywgMjIsIDI0MiwgMTM2LCA3LCA2LCAKLSAgICAxLCAxNDQsIDIsIDIzMSwgMjMzLCAyMiwgMTQyLCA3LCA0LCAxLCAxNDQsIDIsIDIzMSwgMjMzLCAyMiwgMTQyLCA3LCA2LCAKLSAgICAxLCAyMjYsIDEwNiwgMiwgMTQyLCA3LCA0LCAxLCAyMjYsIDEwNiwgMiwgMTQyLCA3LCA2LCAxLCAyMjYsIDEwNiwgMiwgNTksIAotICAgIDQ4LCA3LCA0LCAxLCAyMjYsIDEwNiwgMiwgNTksIDQ4LCA3LCA2LCAxLCAyMjMsIDIyNCwgMiwgNTksIDQ4LCA3LCA0LCAxLCAKLSAgICAyMjMsIDIyNCwgMiwgNTksIDQ4LCA3LCA2LCAxLCAyMjMsIDIyNCwgMiwgNTksIDUxLCA3LCA0LCAxLCAyMjMsIDIyNCwgMiwgCi0gICAgNTksIDUxLCA3LCA2LCAxLCAyMjMsIDIyNCwgMiwgNTksIDI1MiwgNDMsIDIyLCAyMzEsIDIzMiwgNywgNCwgMSwgMjIzLCAKLSAgICAyMjQsIDIsIDU5LCAyNTIsIDQzLCAyMiwgMjMxLCAyMzIsIDcsIDYsIDEsIDIyMywgMjI0LCAyLCAyMzIsIDIxNCwgNTEsIDcsIAotICAgIDQsIDEsIDIyMywgMjI0LCAyLCAyMzIsIDIxNCwgNTEsIDcsIDYsIDEsIDIyMiwgOTIsIDIsIDU5LCA0OCwgNywgNCwgMSwgCi0gICAgMjIyLCA5MiwgMiwgNTksIDQ4LCA3LCA2LCAxLCAyMjIsIDkyLCAyLCA1OSwgNTEsIDcsIDQsIDEsIDIyMiwgOTIsIDIsIDU5LCAKLSAgICA1MSwgNywgNiwgMSwgMjIyLCA5MiwgMiwgMjU1LCAzLCAyMiwgNTksIDQ4LCA3LCA0LCAxLCAyMjIsIDkyLCAyLCAyNTUsIDMsIAotICAgIDIyLCA1OSwgNDgsIDcsIDYsIDEsIDIyMiwgOTIsIDIsIDI1MCwgMjM1LCAyMiwgNTksIDQ4LCA3LCA0LCAxLCAyMjIsIDkyLCAKLSAgICAyLCAyNTAsIDIzNSwgMjIsIDU5LCA0OCwgNywgNiwgMSwgMjIyLCA5MiwgMiwgNTksIDI1MiwgNDMsIDIyLCA1OSwgNDgsIDcsIAotICAgIDQsIDEsIDIyMiwgOTIsIDIsIDU5LCAyNTIsIDQzLCAyMiwgNTksIDQ4LCA3LCA2LCAxLCAyMTcsIDE1MywgMiwgNTksIDQ4LCAKLSAgICA3LCA0LCAxLCAyMTcsIDE1MywgMiwgNTksIDQ4LCA3LCA2LCAxLCAyMTcsIDE1MywgMiwgNTksIDUxLCA3LCA0LCAxLCAyMTcsIAotICAgIDE1MywgMiwgNTksIDUxLCA3LCA2LCAxLCAyMTcsIDE1MywgMiwgMjMyLCAyMTQsIDUxLCA3LCA0LCAxLCAyMTcsIDE1MywgMiwgCi0gICAgMjMyLCAyMTQsIDUxLCA3LCA2LCAxLCAyMTcsIDE1MywgMiwgMjUwLCAzMSwgNTEsIDcsIDQsIDEsIDIxNywgMTUzLCAyLCAKLSAgICAyNTAsIDMxLCA1MSwgNywgNiwgMSwgMTA0LCAyLCAyNDgsIDIsIDUxLCA3LCA0LCAxLCAxMDQsIDIsIDI0OCwgMiwgNTEsIDcsIAotICAgIDYsIDEsIDEwNCwgMiwgMjE2LCA4OSwgNTEsIDcsIDQsIDEsIDEwNCwgMiwgMjE2LCA4OSwgNTEsIDcsIDYsIDEsIDEwNCwgMiwgCi0gICAgMjUwLCAzMSwgNTEsIDcsIDQsIDEsIDEwNCwgMiwgMjUwLCAzMSwgNTEsIDcsIDYsIDEsIDEwNCwgMiwgMjE2LCA4OSwgMjIsIAotICAgIDE0MiwgNywgNCwgMSwgMTA0LCAyLCAyMTYsIDg5LCAyMiwgMTQyLCA3LCA2LCAxLCAxMDQsIDIsIDIzMSwgMjMzLCAyMiwgCi0gICAgMjQ4LCAxLCA3LCA0LCAxLCAxMDQsIDIsIDIzMSwgMjMzLCAyMiwgMjQ4LCAxLCA3LCA2LCAxLCAyMTQsIDEwNiwgMiwgMTgyLCAKLSAgICA3LCA0LCAxLCAyMTQsIDEwNiwgMiwgMTgyLCA3LCA2LCAxLCAyMTQsIDEwNiwgMiwgNTksIDUxLCA3LCA0LCAxLCAyMTQsIAotICAgIDEwNiwgMiwgNTksIDUxLCA3LCA2LCAxLCAyMTIsIDk5LCAyLCAyNDIsIDEzNiwgNywgNCwgMSwgMjEyLCA5OSwgMiwgMjQyLCAKLSAgICAxMzYsIDcsIDYsIDEsIDIxMiwgOTksIDIsIDE0MiwgNywgNCwgMSwgMjEyLCA5OSwgMiwgMTQyLCA3LCA2LCAxLCAyMTIsIAotICAgIDk5LCAyLCAyNDgsIDEsIDcsIDQsIDEsIDIxMiwgOTksIDIsIDI0OCwgMSwgNywgNiwgMSwgMjEyLCA5OSwgMiwgNTksIDQ4LCAKKyAgICAxLCA1NywgMiwgNTksIDUxLCA3LCA2LCAxLCA1NywgMiwgMjMyLCAyMTUsIDUxLCA3LCA0LCAxLCA1NywgMiwgMjMyLCAyMTUsIAorICAgIDUxLCA3LCA2LCAxLCAyNTEsIDY4LCAyLCAyNTAsIDE4NSwgMjIsIDE0MiwgNywgNCwgMSwgMjUxLCA2OCwgMiwgMjUwLCAKKyAgICAxODUsIDIyLCAxNDIsIDcsIDYsIDEsIDI0OSwgNjIsIDIsIDU5LCA0OCwgNywgNCwgMSwgMjQ5LCA2MiwgMiwgNTksIDQ4LCAKKyAgICA3LCA2LCAxLCAyNDksIDYyLCAyLCA1OSwgNTEsIDcsIDQsIDEsIDI0OSwgNjIsIDIsIDU5LCA1MSwgNywgNiwgMSwgMjQ5LCAKKyAgICA2MiwgMiwgMjMyLCAyMTUsIDUxLCA3LCA0LCAxLCAyNDksIDYyLCAyLCAyMzIsIDIxNSwgNTEsIDcsIDYsIDEsIDI0OSwgNjIsIAorICAgIDIsIDI1MCwgMTg0LCA3LCA0LCAxLCAyNDksIDYyLCAyLCAyNTAsIDE4NCwgNywgNiwgMSwgMjQ5LCA2MiwgMiwgMjUwLCAzMiwgCisgICAgNTEsIDcsIDQsIDEsIDI0OSwgNjIsIDIsIDI1MCwgMzIsIDUxLCA3LCA2LCAxLCAxNjAsIDIsIDIzMSwgMjM0LCAyMiwgMjQyLCAKKyAgICAxMzcsIDcsIDQsIDEsIDE2MCwgMiwgMjMxLCAyMzQsIDIyLCAyNDIsIDEzNywgNywgNiwgMSwgMTYwLCAyLCAyMzEsIDIzNCwgCisgICAgMjIsIDE0MiwgNywgNCwgMSwgMTYwLCAyLCAyMzEsIDIzNCwgMjIsIDE0MiwgNywgNiwgMSwgMTYwLCAyLCAyNTAsIDMyLCAKKyAgICA1MSwgNywgNCwgMSwgMTYwLCAyLCAyNTAsIDMyLCA1MSwgNywgNiwgMSwgMTYwLCAyLCAyMTYsIDkwLCA1MSwgNywgNCwgMSwgCisgICAgMTYwLCAyLCAyMTYsIDkwLCA1MSwgNywgNiwgMSwgMTYwLCAyLCAyNTAsIDE4NSwgMjIsIDI1MSwgMTQ3LCA3LCA0LCAxLCAKKyAgICAxNjAsIDIsIDI1MCwgMTg1LCAyMiwgMjUxLCAxNDcsIDcsIDYsIDEsIDI0NSwgOCwgMiwgNTksIDQ4LCA3LCA0LCAxLCAyNDUsIAorICAgIDgsIDIsIDU5LCA0OCwgNywgNiwgMSwgMjQzLCAyMDQsIDIsIDIzMSwgMjMzLCA3LCA0LCAxLCAyNDMsIDIwNCwgMiwgMjMxLCAKKyAgICAyMzMsIDcsIDYsIDEsIDI0MiwgNjIsIDIsIDU5LCA0OCwgNywgNCwgMSwgMjQyLCA2MiwgMiwgNTksIDQ4LCA3LCA2LCAxLCAKKyAgICAyNDIsIDYyLCAyLCA1OSwgNTEsIDcsIDQsIDEsIDI0MiwgNjIsIDIsIDU5LCA1MSwgNywgNiwgMSwgMjQyLCA2MiwgMiwgCisgICAgMjQ4LCAyLCA3LCA0LCAxLCAyNDIsIDYyLCAyLCAyNDgsIDIsIDcsIDYsIDEsIDI0MiwgNjIsIDIsIDI1MCwgMTg0LCA3LCA0LCAKKyAgICAxLCAyNDIsIDYyLCAyLCAyNTAsIDE4NCwgNywgNiwgMSwgMjQyLCA2MiwgMiwgMjUxLCAxNDgsIDUxLCA3LCA0LCAxLCAyNDIsIAorICAgIDYyLCAyLCAyNTEsIDE0OCwgNTEsIDcsIDYsIDEsIDI0MCwgMTU1LCAyLCAyMTYsIDkwLCA1MSwgNywgNCwgMSwgMjQwLCAKKyAgICAxNTUsIDIsIDIxNiwgOTAsIDUxLCA3LCA2LCAxLCAyNDAsIDE1NSwgMiwgMjQ4LCAzLCAyMiwgMTQyLCA3LCA0LCAxLCAyNDAsIAorICAgIDE1NSwgMiwgMjQ4LCAzLCAyMiwgMTQyLCA3LCA2LCAxLCAyMzUsIDI1LCAyLCAxNDIsIDcsIDQsIDEsIDIzNSwgMjUsIDIsIAorICAgIDE0MiwgNywgNiwgMSwgMjM1LCAyNSwgMiwgNTksIDUxLCA3LCA0LCAxLCAyMzUsIDI1LCAyLCA1OSwgNTEsIDcsIDYsIDEsIAorICAgIDIzNSwgMjUsIDIsIDIzMiwgMjE1LCA1MSwgNywgNCwgMSwgMjM1LCAyNSwgMiwgMjMyLCAyMTUsIDUxLCA3LCA2LCAxLCAKKyAgICAyMzMsIDE1MCwgMiwgNTksIDUxLCA3LCA0LCAxLCAyMzMsIDE1MCwgMiwgNTksIDUxLCA3LCA2LCAxLCAyMzMsIDE1MCwgMiwgCisgICAgNTksIDI1MiwgNDQsIDIyLCAyMzEsIDIzMywgNywgNCwgMSwgMjMzLCAxNTAsIDIsIDU5LCAyNTIsIDQ0LCAyMiwgMjMxLCAKKyAgICAyMzMsIDcsIDYsIDEsIDIzMywgMTUwLCAyLCAyMzIsIDIxNSwgNTEsIDcsIDQsIDEsIDIzMywgMTUwLCAyLCAyMzIsIDIxNSwgCisgICAgNTEsIDcsIDYsIDEsIDIzMywgMTUwLCAyLCAyNTAsIDMyLCA1MSwgNywgNCwgMSwgMjMzLCAxNTAsIDIsIDI1MCwgMzIsIDUxLCAKKyAgICA3LCA2LCAxLCAyMzIsIDUxLCAyLCAxNDIsIDcsIDQsIDEsIDIzMiwgNTEsIDIsIDE0MiwgNywgNiwgMSwgMjMyLCA1MSwgMiwgCisgICAgNTksIDQ4LCA3LCA0LCAxLCAyMzIsIDUxLCAyLCA1OSwgNDgsIDcsIDYsIDEsIDIzMiwgNTEsIDIsIDU5LCA1MSwgNywgNCwgCisgICAgMSwgMjMyLCA1MSwgMiwgNTksIDUxLCA3LCA2LCAxLCAyMzAsIDI3LCAyLCA1OSwgNDgsIDcsIDQsIDEsIDIzMCwgMjcsIDIsIAorICAgIDU5LCA0OCwgNywgNiwgMSwgMjMwLCAyNywgMiwgNTksIDUxLCA3LCA0LCAxLCAyMzAsIDI3LCAyLCA1OSwgNTEsIDcsIDYsIAorICAgIDEsIDIzMCwgMjcsIDIsIDIzMiwgMjE1LCA1MSwgNywgNCwgMSwgMjMwLCAyNywgMiwgMjMyLCAyMTUsIDUxLCA3LCA2LCAxLCAKKyAgICAyMzAsIDI3LCAyLCAyNTAsIDMyLCA1MSwgNywgNCwgMSwgMjMwLCAyNywgMiwgMjUwLCAzMiwgNTEsIDcsIDYsIDEsIDE0NCwgCisgICAgMiwgMjE2LCA5MCwgMjIsIDE0MiwgNywgNCwgMSwgMTQ0LCAyLCAyMTYsIDkwLCAyMiwgMTQyLCA3LCA2LCAxLCAxNDQsIDIsIAorICAgIDIxNiwgOTAsIDIyLCAyNDgsIDIsIDcsIDQsIDEsIDE0NCwgMiwgMjE2LCA5MCwgMjIsIDI0OCwgMiwgNywgNiwgMSwgMTQ0LCAKKyAgICAyLCAyMzEsIDIzNCwgMjIsIDI0MiwgMTM3LCA3LCA0LCAxLCAxNDQsIDIsIDIzMSwgMjM0LCAyMiwgMjQyLCAxMzcsIDcsIDYsIAorICAgIDEsIDE0NCwgMiwgMjMxLCAyMzQsIDIyLCAxNDIsIDcsIDQsIDEsIDE0NCwgMiwgMjMxLCAyMzQsIDIyLCAxNDIsIDcsIDYsIAorICAgIDEsIDIyNiwgMTA3LCAyLCAxNDIsIDcsIDQsIDEsIDIyNiwgMTA3LCAyLCAxNDIsIDcsIDYsIDEsIDIyNiwgMTA3LCAyLCA1OSwgCisgICAgNDgsIDcsIDQsIDEsIDIyNiwgMTA3LCAyLCA1OSwgNDgsIDcsIDYsIDEsIDIyMywgMjI1LCAyLCA1OSwgNDgsIDcsIDQsIDEsIAorICAgIDIyMywgMjI1LCAyLCA1OSwgNDgsIDcsIDYsIDEsIDIyMywgMjI1LCAyLCA1OSwgNTEsIDcsIDQsIDEsIDIyMywgMjI1LCAyLCAKKyAgICA1OSwgNTEsIDcsIDYsIDEsIDIyMywgMjI1LCAyLCA1OSwgMjUyLCA0NCwgMjIsIDIzMSwgMjMzLCA3LCA0LCAxLCAyMjMsIAorICAgIDIyNSwgMiwgNTksIDI1MiwgNDQsIDIyLCAyMzEsIDIzMywgNywgNiwgMSwgMjIzLCAyMjUsIDIsIDIzMiwgMjE1LCA1MSwgNywgCisgICAgNCwgMSwgMjIzLCAyMjUsIDIsIDIzMiwgMjE1LCA1MSwgNywgNiwgMSwgMjIyLCA5MywgMiwgNTksIDQ4LCA3LCA0LCAxLCAKKyAgICAyMjIsIDkzLCAyLCA1OSwgNDgsIDcsIDYsIDEsIDIyMiwgOTMsIDIsIDU5LCA1MSwgNywgNCwgMSwgMjIyLCA5MywgMiwgNTksIAorICAgIDUxLCA3LCA2LCAxLCAyMjIsIDkzLCAyLCAyNTUsIDQsIDIyLCA1OSwgNDgsIDcsIDQsIDEsIDIyMiwgOTMsIDIsIDI1NSwgNCwgCisgICAgMjIsIDU5LCA0OCwgNywgNiwgMSwgMjIyLCA5MywgMiwgMjUwLCAyMzYsIDIyLCA1OSwgNDgsIDcsIDQsIDEsIDIyMiwgOTMsIAorICAgIDIsIDI1MCwgMjM2LCAyMiwgNTksIDQ4LCA3LCA2LCAxLCAyMjIsIDkzLCAyLCA1OSwgMjUyLCA0NCwgMjIsIDU5LCA0OCwgNywgCisgICAgNCwgMSwgMjIyLCA5MywgMiwgNTksIDI1MiwgNDQsIDIyLCA1OSwgNDgsIDcsIDYsIDEsIDIxNywgMTU0LCAyLCA1OSwgNDgsIAorICAgIDcsIDQsIDEsIDIxNywgMTU0LCAyLCA1OSwgNDgsIDcsIDYsIDEsIDIxNywgMTU0LCAyLCA1OSwgNTEsIDcsIDQsIDEsIDIxNywgCisgICAgMTU0LCAyLCA1OSwgNTEsIDcsIDYsIDEsIDIxNywgMTU0LCAyLCAyMzIsIDIxNSwgNTEsIDcsIDQsIDEsIDIxNywgMTU0LCAyLCAKKyAgICAyMzIsIDIxNSwgNTEsIDcsIDYsIDEsIDIxNywgMTU0LCAyLCAyNTAsIDMyLCA1MSwgNywgNCwgMSwgMjE3LCAxNTQsIDIsIAorICAgIDI1MCwgMzIsIDUxLCA3LCA2LCAxLCAxMDQsIDIsIDI0OCwgMywgNTEsIDcsIDQsIDEsIDEwNCwgMiwgMjQ4LCAzLCA1MSwgNywgCisgICAgNiwgMSwgMTA0LCAyLCAyMTYsIDkwLCA1MSwgNywgNCwgMSwgMTA0LCAyLCAyMTYsIDkwLCA1MSwgNywgNiwgMSwgMTA0LCAyLCAKKyAgICAyNTAsIDMyLCA1MSwgNywgNCwgMSwgMTA0LCAyLCAyNTAsIDMyLCA1MSwgNywgNiwgMSwgMTA0LCAyLCAyMTYsIDkwLCAyMiwgCisgICAgMTQyLCA3LCA0LCAxLCAxMDQsIDIsIDIxNiwgOTAsIDIyLCAxNDIsIDcsIDYsIDEsIDEwNCwgMiwgMjMxLCAyMzQsIDIyLCAKKyAgICAyNDgsIDIsIDcsIDQsIDEsIDEwNCwgMiwgMjMxLCAyMzQsIDIyLCAyNDgsIDIsIDcsIDYsIDEsIDIxNCwgMTA2LCAyLCAxODMsIAorICAgIDcsIDQsIDEsIDIxNCwgMTA2LCAyLCAxODMsIDcsIDYsIDEsIDIxNCwgMTA2LCAyLCA1OSwgNTEsIDcsIDQsIDEsIDIxNCwgCisgICAgMTA2LCAyLCA1OSwgNTEsIDcsIDYsIDEsIDIxMiwgOTksIDIsIDI0MiwgMTM3LCA3LCA0LCAxLCAyMTIsIDk5LCAyLCAyNDIsIAorICAgIDEzNywgNywgNiwgMSwgMjEyLCA5OSwgMiwgMTQyLCA3LCA0LCAxLCAyMTIsIDk5LCAyLCAxNDIsIDcsIDYsIDEsIDIxMiwgCisgICAgOTksIDIsIDI0OCwgMiwgNywgNCwgMSwgMjEyLCA5OSwgMiwgMjQ4LCAyLCA3LCA2LCAxLCAyMTIsIDk5LCAyLCA1OSwgNDgsIAogICAgIDcsIDQsIDEsIDIxMiwgOTksIDIsIDU5LCA0OCwgNywgNiwgMSwgMjEyLCA5OSwgMiwgNTksIDUxLCA3LCA0LCAxLCAyMTIsIAogICAgIDk5LCAyLCA1OSwgNTEsIDcsIDYsIDEsIDIxMSwgMTc5LCAyLCA1OSwgNDgsIDcsIDQsIDEsIDIxMSwgMTc5LCAyLCA1OSwgCi0gICAgNDgsIDcsIDYsIDEsIDIxMSwgMTc5LCAyLCAyNDgsIDEsIDcsIDQsIDEsIDIxMSwgMTc5LCAyLCAyNDgsIDEsIDcsIDYsIDEsIAorICAgIDQ4LCA3LCA2LCAxLCAyMTEsIDE3OSwgMiwgMjQ4LCAyLCA3LCA0LCAxLCAyMTEsIDE3OSwgMiwgMjQ4LCAyLCA3LCA2LCAxLCAKICAgICAyMTEsIDExOCwgMiwgNTksIDQ4LCA3LCA0LCAxLCAyMTEsIDExOCwgMiwgNTksIDQ4LCA3LCA2LCAxLCAyMTAsIDE2MCwgMiwgCi0gICAgMjUwLCAzMCwgNywgNCwgMSwgMjEwLCAxNjAsIDIsIDI1MCwgMzAsIDcsIDYsIDEsIDIxMCwgMTYwLCAyLCA1OSwgNTEsIDcsIAotICAgIDQsIDEsIDIxMCwgMTYwLCAyLCA1OSwgNTEsIDcsIDYsIDEsIDIxMCwgMTYwLCAyLCAyMzIsIDIxNCwgNTEsIDcsIDQsIDEsIAotICAgIDIxMCwgMTYwLCAyLCAyMzIsIDIxNCwgNTEsIDcsIDQsIDEsIDI0MiwgNjEsIDIsIDIzMiwgMjE0LCA1MSwgNywgNCwgMSwgCi0gICAgMjE3LCAxNTMsIDIsIDI0OCwgMSwgNywgNCwgMSwgMjEyLCA5OSwgMiwgMjIyLCAyMzQsIDQ4LCA3LCA0LCAxLCAyMTEsIAotICAgIDExOCwgMiwgMjIyLCAyMzQsIDQ4LCA3LCA0LCAxLCAxMTUsIDIsIDQ0LCAxNjMsIDIyMiwgMjMzLCA3LCA0LCAxLCAxOTksIAotICAgIDIyMiwgOTIsIDIsIDU5LCA0OCwgNywgNCwgMSwgMTk5LCAyMjIsIDkyLCAyLCAyNDcsIDI1NSwgOTEsIDcsIDQsIDEsIDE5OSwgCi0gICAgMjIyLCA5MiwgMiwgMTI1LCA5MSwgNywgNiwgMSwgMjIwLCA3NiwgMjIyLCA5MSwgNywgNCwgMSwgMjQ4LCA1NCwgNywgNiwgCi0gICAgMSwgMTE1LCAyLCA1OSwgNTEsIDcsIDQsIDEsIDExNSwgMiwgNTksIDUxLCA3LCA2LCAxLCAxMTUsIDIsIDI0MSwgNTIsIDQ4LCAKLSAgICA3LCA0LCAxLCAxMTUsIDIsIDI0MSwgNTIsIDQ4LCA3LCA2LCAxLCAxMTUsIDIsIDI1MCwgMzEsIDIyLCAxNDIsIDcsIDQsIDEsIAotICAgIDExNSwgMiwgMjUwLCAzMSwgMjIsIDE0MiwgNywgNiwgMSwgMTE1LCAyLCAyNTAsIDMxLCAyMiwgMjQyLCAxMzYsIDcsIDQsIAotICAgIDEsIDExNSwgMiwgMjUwLCAzMSwgMjIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxMTUsIDIsIDI1MCwgMzEsIDIyLCAyNDEsIDUyLCAKLSAgICA0OCwgNywgNCwgMSwgMTE1LCAyLCAyNTAsIDMxLCAyMiwgMjQxLCA1MiwgNDgsIDcsIDYsIDEsIDExNSwgMiwgMjUwLCAzMSwgCi0gICAgMjIsIDE4MiwgNywgNCwgMSwgMTE1LCAyLCAyNTAsIDMxLCAyMiwgMTgyLCA3LCA2LCAxLCAxMTUsIDIsIDI1MCwgMzEsIDIyLCAKLSAgICA1OSwgNTEsIDcsIDQsIDEsIDExNSwgMiwgMjUwLCAzMSwgMjIsIDU5LCA1MSwgNywgNiwgMSwgMTE1LCAyLCAyNTEsIDE0NywgCi0gICAgMjIsIDE0MiwgNywgNCwgMSwgMTE1LCAyLCAyNTEsIDE0NywgMjIsIDE0MiwgNywgNiwgMSwgMTE1LCAyLCAyNTEsIDE0NywgCi0gICAgMjIsIDI0MiwgMTM2LCA3LCA0LCAxLCAxMTUsIDIsIDI1MSwgMTQ3LCAyMiwgMjQyLCAxMzYsIDcsIDYsIDEsIDExNSwgMiwgCi0gICAgMjUxLCAxNDcsIDIyLCAyNDEsIDUyLCA0OCwgNywgNCwgMSwgMTE1LCAyLCAyNTEsIDE0NywgMjIsIDI0MSwgNTIsIDQ4LCA3LCAKLSAgICA2LCAxLCAxMTUsIDIsIDI1MSwgMTQ3LCAyMiwgMTgyLCA3LCA0LCAxLCAxMTUsIDIsIDI1MSwgMTQ3LCAyMiwgMTgyLCA3LCAKLSAgICA2LCAxLCAxMTUsIDIsIDI1MSwgMTQ3LCAyMiwgNTksIDUxLCA3LCA0LCAxLCAxMTUsIDIsIDI1MSwgMTQ3LCAyMiwgNTksIAorICAgIDI1MCwgMzEsIDcsIDQsIDEsIDIxMCwgMTYwLCAyLCAyNTAsIDMxLCA3LCA2LCAxLCAyMTAsIDE2MCwgMiwgNTksIDUxLCA3LCAKKyAgICA0LCAxLCAyMTAsIDE2MCwgMiwgNTksIDUxLCA3LCA2LCAxLCAyMTAsIDE2MCwgMiwgMjMyLCAyMTUsIDUxLCA3LCA0LCAxLCAKKyAgICAyMTAsIDE2MCwgMiwgMjMyLCAyMTUsIDUxLCA3LCA0LCAxLCAyNDIsIDYyLCAyLCAyMzIsIDIxNSwgNTEsIDcsIDQsIDEsIAorICAgIDIxNywgMTU0LCAyLCAyNDgsIDIsIDcsIDQsIDEsIDIxMiwgOTksIDIsIDIyMiwgMjM1LCA0OCwgNywgNCwgMSwgMjExLCAKKyAgICAxMTgsIDIsIDIyMiwgMjM1LCA0OCwgNywgNCwgMSwgMTE1LCAyLCA0NCwgMTYzLCAyMjIsIDIzNCwgNywgNCwgMSwgMTk5LCAKKyAgICAyMjIsIDkzLCAyLCA1OSwgNDgsIDcsIDQsIDEsIDE5OSwgMjIyLCA5MywgMiwgMjQ4LCAwLCA5MSwgNywgNCwgMSwgMTk5LCAKKyAgICAyMjIsIDkzLCAyLCAxMjUsIDkxLCA3LCA2LCAxLCAyMjAsIDc3LCAyMjIsIDkyLCA3LCA0LCAxLCAyNDgsIDU1LCA3LCA2LCAKKyAgICAxLCAxMTUsIDIsIDU5LCA1MSwgNywgNCwgMSwgMTE1LCAyLCA1OSwgNTEsIDcsIDYsIDEsIDExNSwgMiwgMjQxLCA1MywgNDgsIAorICAgIDcsIDQsIDEsIDExNSwgMiwgMjQxLCA1MywgNDgsIDcsIDYsIDEsIDExNSwgMiwgMjUwLCAzMiwgMjIsIDE0MiwgNywgNCwgMSwgCisgICAgMTE1LCAyLCAyNTAsIDMyLCAyMiwgMTQyLCA3LCA2LCAxLCAxMTUsIDIsIDI1MCwgMzIsIDIyLCAyNDIsIDEzNywgNywgNCwgCisgICAgMSwgMTE1LCAyLCAyNTAsIDMyLCAyMiwgMjQyLCAxMzcsIDcsIDYsIDEsIDExNSwgMiwgMjUwLCAzMiwgMjIsIDI0MSwgNTMsIAorICAgIDQ4LCA3LCA0LCAxLCAxMTUsIDIsIDI1MCwgMzIsIDIyLCAyNDEsIDUzLCA0OCwgNywgNiwgMSwgMTE1LCAyLCAyNTAsIDMyLCAKKyAgICAyMiwgMTgzLCA3LCA0LCAxLCAxMTUsIDIsIDI1MCwgMzIsIDIyLCAxODMsIDcsIDYsIDEsIDExNSwgMiwgMjUwLCAzMiwgMjIsIAorICAgIDU5LCA1MSwgNywgNCwgMSwgMTE1LCAyLCAyNTAsIDMyLCAyMiwgNTksIDUxLCA3LCA2LCAxLCAxMTUsIDIsIDI1MSwgMTQ4LCAKKyAgICAyMiwgMTQyLCA3LCA0LCAxLCAxMTUsIDIsIDI1MSwgMTQ4LCAyMiwgMTQyLCA3LCA2LCAxLCAxMTUsIDIsIDI1MSwgMTQ4LCAKKyAgICAyMiwgMjQyLCAxMzcsIDcsIDQsIDEsIDExNSwgMiwgMjUxLCAxNDgsIDIyLCAyNDIsIDEzNywgNywgNiwgMSwgMTE1LCAyLCAKKyAgICAyNTEsIDE0OCwgMjIsIDI0MSwgNTMsIDQ4LCA3LCA0LCAxLCAxMTUsIDIsIDI1MSwgMTQ4LCAyMiwgMjQxLCA1MywgNDgsIDcsIAorICAgIDYsIDEsIDExNSwgMiwgMjUxLCAxNDgsIDIyLCAxODMsIDcsIDQsIDEsIDExNSwgMiwgMjUxLCAxNDgsIDIyLCAxODMsIDcsIAorICAgIDYsIDEsIDExNSwgMiwgMjUxLCAxNDgsIDIyLCA1OSwgNTEsIDcsIDQsIDEsIDExNSwgMiwgMjUxLCAxNDgsIDIyLCA1OSwgCiAgICAgNTEsIDcsIDYsIDEsIDE2MCwgMiwgNTksIDUxLCA3LCA0LCAxLCAxNjAsIDIsIDU5LCA1MSwgNywgNiwgMSwgMTYwLCAyLCAKLSAgICAyNDEsIDUyLCA0OCwgNywgNCwgMSwgMTYwLCAyLCAyNDEsIDUyLCA0OCwgNywgNiwgMSwgMTYwLCAyLCAxODIsIDcsIDQsIDEsIAotICAgIDE2MCwgMiwgMTgyLCA3LCA2LCAxLCAxNjAsIDIsIDI1MCwgMzEsIDIyLCAxNDIsIDcsIDQsIDEsIDE2MCwgMiwgMjUwLCAzMSwgCi0gICAgMjIsIDE0MiwgNywgNiwgMSwgMTYwLCAyLCAyNTAsIDMxLCAyMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDE2MCwgMiwgMjUwLCAKLSAgICAzMSwgMjIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxNjAsIDIsIDI1MCwgMzEsIDIyLCAyNDEsIDUyLCA0OCwgNywgNCwgMSwgCi0gICAgMTYwLCAyLCAyNTAsIDMxLCAyMiwgMjQxLCA1MiwgNDgsIDcsIDYsIDEsIDE2MCwgMiwgMjUwLCAzMSwgMjIsIDE4MiwgNywgCi0gICAgNCwgMSwgMTYwLCAyLCAyNTAsIDMxLCAyMiwgMTgyLCA3LCA2LCAxLCAxNjAsIDIsIDI1MCwgMzEsIDIyLCA1OSwgNTEsIDcsIAotICAgIDQsIDEsIDE2MCwgMiwgMjUwLCAzMSwgMjIsIDU5LCA1MSwgNywgNiwgMSwgMjQwLCAxNTQsIDIsIDI0MSwgNTIsIDQ4LCA3LCAKLSAgICA0LCAxLCAyNDAsIDE1NCwgMiwgMjQxLCA1MiwgNDgsIDcsIDYsIDEsIDI0MCwgMTU0LCAyLCA1OSwgNTEsIDcsIDQsIDEsIAotICAgIDI0MCwgMTU0LCAyLCA1OSwgNTEsIDcsIDYsIDEsIDE0NCwgMiwgNTksIDUxLCA3LCA0LCAxLCAxNDQsIDIsIDU5LCA1MSwgNywgCi0gICAgNiwgMSwgMTQ0LCAyLCAyNDEsIDUyLCA0OCwgNywgNCwgMSwgMTQ0LCAyLCAyNDEsIDUyLCA0OCwgNywgNiwgMSwgMTQ0LCAyLCAKLSAgICAyNTAsIDMxLCAyMiwgMTQyLCA3LCA0LCAxLCAxNDQsIDIsIDI1MCwgMzEsIDIyLCAxNDIsIDcsIDYsIDEsIDE0NCwgMiwgCi0gICAgMjUwLCAzMSwgMjIsIDI0MiwgMTM2LCA3LCA0LCAxLCAxNDQsIDIsIDI1MCwgMzEsIDIyLCAyNDIsIDEzNiwgNywgNiwgMSwgCi0gICAgMTQ0LCAyLCAyNTAsIDMxLCAyMiwgMjQxLCA1MiwgNDgsIDcsIDQsIDEsIDE0NCwgMiwgMjUwLCAzMSwgMjIsIDI0MSwgNTIsIAotICAgIDQ4LCA3LCA2LCAxLCAxNDQsIDIsIDI1MCwgMzEsIDIyLCAxODIsIDcsIDQsIDEsIDE0NCwgMiwgMjUwLCAzMSwgMjIsIDE4MiwgCi0gICAgNywgNiwgMSwgMTQ0LCAyLCAyNTAsIDMxLCAyMiwgNTksIDUxLCA3LCA0LCAxLCAxNDQsIDIsIDI1MCwgMzEsIDIyLCA1OSwgCi0gICAgNTEsIDcsIDYsIDEsIDE0NCwgMiwgMjQwLCAyNDksIDIyLCAxNDIsIDcsIDQsIDEsIDE0NCwgMiwgMjQwLCAyNDksIDIyLCAKLSAgICAxNDIsIDcsIDYsIDEsIDE0NCwgMiwgMjQwLCAyNDksIDIyLCAyNDIsIDEzNiwgNywgNCwgMSwgMTQ0LCAyLCAyNDAsIDI0OSwgCi0gICAgMjIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxNDQsIDIsIDI0MCwgMjQ5LCAyMiwgMjQxLCA1MiwgNDgsIDcsIDQsIDEsIDE0NCwgCi0gICAgMiwgMjQwLCAyNDksIDIyLCAyNDEsIDUyLCA0OCwgNywgNiwgMSwgMTQ0LCAyLCAyNDAsIDI0OSwgMjIsIDE4MiwgNywgNCwgCi0gICAgMSwgMTQ0LCAyLCAyNDAsIDI0OSwgMjIsIDE4MiwgNywgNiwgMSwgMTQ0LCAyLCAyNDAsIDI0OSwgMjIsIDU5LCA1MSwgNywgCi0gICAgNCwgMSwgMTQ0LCAyLCAyNDAsIDI0OSwgMjIsIDU5LCA1MSwgNywgNiwgMSwgMTA0LCAyLCA1OSwgNTEsIDcsIDQsIDEsIAotICAgIDEwNCwgMiwgNTksIDUxLCA3LCA2LCAxLCAxMDQsIDIsIDI0MSwgNTIsIDQ4LCA3LCA0LCAxLCAxMDQsIDIsIDI0MSwgNTIsIAotICAgIDQ4LCA3LCA2LCAxLCAxMDQsIDIsIDI0MCwgMjQ5LCAyMiwgMTQyLCA3LCA0LCAxLCAxMDQsIDIsIDI0MCwgMjQ5LCAyMiwgCi0gICAgMTQyLCA3LCA2LCAxLCAxMDQsIDIsIDI0MCwgMjQ5LCAyMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDEwNCwgMiwgMjQwLCAyNDksIAotICAgIDIyLCAyNDIsIDEzNiwgNywgNiwgMSwgMTA0LCAyLCAyNDAsIDI0OSwgMjIsIDI0MSwgNTIsIDQ4LCA3LCA0LCAxLCAxMDQsIAotICAgIDIsIDI0MCwgMjQ5LCAyMiwgMjQxLCA1MiwgNDgsIDcsIDYsIDEsIDEwNCwgMiwgMjQwLCAyNDksIDIyLCAxODIsIDcsIDQsIAotICAgIDEsIDEwNCwgMiwgMjQwLCAyNDksIDIyLCAxODIsIDcsIDYsIDEsIDEwNCwgMiwgMjQwLCAyNDksIDIyLCA1OSwgNTEsIDcsIAotICAgIDQsIDEsIDEwNCwgMiwgMjQwLCAyNDksIDIyLCA1OSwgNTEsIDcsIDYsIDEsIDIxMSwgMTE4LCAyLCAyNDIsIDEzNiwgNywgNCwgCi0gICAgMSwgMjExLCAxMTgsIDIsIDI0MiwgMTM2LCA3LCA2LCAxLCAyMTEsIDExOCwgMiwgNTksIDUxLCA3LCA0LCAxLCAyMTEsIAotICAgIDExOCwgMiwgNTksIDUxLCA3LCA2LCAxLCAyMTEsIDExOCwgMiwgMjQxLCA1MiwgNDgsIDcsIDQsIDEsIDIxMSwgMTE4LCAyLCAKLSAgICAyNDEsIDUyLCA0OCwgNywgNiwgMSwgMjExLCAxMTgsIDIsIDE4MiwgNywgNCwgMSwgMjExLCAxMTgsIDIsIDE4MiwgNywgNiwgCi0gICAgMSwgMjMwLCAyMjMsIDIzMiwgMTg1LCA3LCA0LCAxLCAyMzAsIDIyMywgMjMyLCAxODUsIDcsIDYsIDEsIDIzMCwgMjIzLCAKLSAgICAyMTQsIDEwNSwgNywgNCwgMSwgMjMwLCAyMjMsIDIxNCwgMTA1LCA3LCA2LCAxLCAyMTEsIDExOCwgMiwgMjMyLCAxMjMsIDcsIAotICAgIDQsIDEsIDIxMSwgMTE4LCAyLCAyMzIsIDEyMywgMjYsIDQsIDEsIDI1NCwgMTQ0LCAyLCAyMjQsIDE1NCwgMjYsIDQsIDEsIAotICAgIDI1NCwgMTQ0LCAyLCAyNDgsIDE1MywgMjYsIDQsIDEsIDI1NCwgMTQ0LCAyLCAyMjQsIDE1NSwgMjIsIDIxNCwgMTMsIDI2LCAKLSAgICA0LCAxLCAyNTQsIDE0NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjU0LCAxNDQsIDIsIDIyNCwgCi0gICAgMTU1LCAyMiwgMjI2LCAxMTAsIDI2LCA0LCAxLCAyNTQsIDE0NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMjYsIDExMCwgMjYsIDQsIAotICAgIDEsIDI1NCwgMTQ0LCAyLCAyMjQsIDE1NSwgMjIsIDIyNSwgMTc1LCAyNiwgNCwgMSwgMjU0LCAxNDQsIDIsIDI0OCwgMTU0LCAKLSAgICAyMiwgMjI1LCAxNzUsIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgMjI0LCAxNTQsIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgCi0gICAgMjQ4LCAxNTMsIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgMjI0LCAxNTUsIDIyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjU0LCAKLSAgICAxNDQsIDIsIDI0OCwgMTU0LCAyMiwgMjE0LCAxMywgMjYsIDYsIDEsIDI1NCwgMTQ0LCAyLCAyMjQsIDE1NSwgMjIsIDIyNiwgCi0gICAgMTEwLCAyNiwgNiwgMSwgMjU0LCAxNDQsIDIsIDI0OCwgMTU0LCAyMiwgMjI2LCAxMTAsIDI2LCA2LCAxLCAyNTQsIDE0NCwgCi0gICAgMiwgMjI0LCAxNTUsIDIyLCAyMjUsIDE3NSwgMjYsIDYsIDEsIDI1NCwgMTQ0LCAyLCAyNDgsIDE1NCwgMjIsIDIyNSwgMTc1LCAKLSAgICAyNiwgNCwgMSwgMjQ1LCAxMDEsIDIsIDIyNCwgMTU0LCAyNiwgNCwgMSwgMjQ1LCAxMDEsIDIsIDI0OCwgMTUzLCAyNiwgNCwgCi0gICAgMSwgMjQ1LCAxMDEsIDIsIDIyNCwgMTU1LCAyMiwgMjE0LCAxMywgMjYsIDQsIDEsIDI0NSwgMTAxLCAyLCAyNDgsIDE1NCwgCi0gICAgMjIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyNDUsIDEwMSwgMiwgMjI0LCAxNTUsIDIyLCAyMjYsIDExMCwgMjYsIDQsIDEsIAotICAgIDI0NSwgMTAxLCAyLCAyNDgsIDE1NCwgMjIsIDIyNiwgMTEwLCAyNiwgNiwgMSwgMjQ1LCAxMDEsIDIsIDIyNCwgMTU0LCAyNiwgCi0gICAgNiwgMSwgMjQ1LCAxMDEsIDIsIDI0OCwgMTUzLCAyNiwgNiwgMSwgMjQ1LCAxMDEsIDIsIDIyNCwgMTU1LCAyMiwgMjE0LCAKLSAgICAxMywgMjYsIDYsIDEsIDI0NSwgMTAxLCAyLCAyNDgsIDE1NCwgMjIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyNDUsIDEwMSwgMiwgCi0gICAgMjI0LCAxNTUsIDIyLCAyMjYsIDExMCwgMjYsIDYsIDEsIDI0NSwgMTAxLCAyLCAyNDgsIDE1NCwgMjIsIDIyNiwgMTEwLCAKLSAgICAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjI0LCAxNTQsIDI2LCA0LCAxLCAyNDUsIDY0LCAyLCAyNDgsIDE1MywgMjYsIDQsIDEsIAotICAgIDI0NSwgNjQsIDIsIDIyNCwgMTU1LCAyMiwgMjE0LCAxMywgMjYsIDQsIDEsIDI0NSwgNjQsIDIsIDI0OCwgMTU0LCAyMiwgCi0gICAgMjE0LCAxMywgMjYsIDQsIDEsIDI0NSwgNjQsIDIsIDIyNCwgMTU1LCAyMiwgMjI2LCAxMTAsIDI2LCA0LCAxLCAyNDUsIDY0LCAKLSAgICAyLCAyNDgsIDE1NCwgMjIsIDIyNiwgMTEwLCAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjI0LCAxNTUsIDIyLCAyMjUsIDE3NSwgCi0gICAgMjYsIDQsIDEsIDI0NSwgNjQsIDIsIDI0OCwgMTU0LCAyMiwgMjI1LCAxNzUsIDI2LCA2LCAxLCAyNDUsIDY0LCAyLCAyMjQsIAotICAgIDE1NCwgMjYsIDYsIDEsIDI0NSwgNjQsIDIsIDI0OCwgMTUzLCAyNiwgNiwgMSwgMjQ1LCA2NCwgMiwgMjI0LCAxNTUsIDIyLCAKLSAgICAyMTQsIDEzLCAyNiwgNiwgMSwgMjQ1LCA2NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjQ1LCA2NCwgCi0gICAgMiwgMjI0LCAxNTUsIDIyLCAyMjYsIDExMCwgMjYsIDYsIDEsIDI0NSwgNjQsIDIsIDI0OCwgMTU0LCAyMiwgMjI2LCAxMTAsIAotICAgIDI2LCA2LCAxLCAyNDUsIDY0LCAyLCAyMjQsIDE1NSwgMjIsIDIyNSwgMTc1LCAyNiwgNiwgMSwgMjQ1LCA2NCwgMiwgMjQ4LCAKLSAgICAxNTQsIDIyLCAyMjUsIDE3NSwgMjYsIDQsIDEsIDIzNSwgMTg2LCAyLCAyMjQsIDE1NCwgMjYsIDQsIDEsIDIzNSwgMTg2LCAKLSAgICAyLCAyNDgsIDE1MywgMjYsIDQsIDEsIDIzNSwgMTg2LCAyLCAyMjQsIDE1NSwgMjIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyMzUsIAotICAgIDE4NiwgMiwgMjQ4LCAxNTQsIDIyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjM1LCAxODYsIDIsIDIyNCwgMTU1LCAyMiwgMjI2LCAKLSAgICAxMTAsIDI2LCA0LCAxLCAyMzUsIDE4NiwgMiwgMjQ4LCAxNTQsIDIyLCAyMjYsIDExMCwgMjYsIDQsIDEsIDIzNSwgMTg2LCAKLSAgICAyLCAyMjQsIDE1NSwgMjIsIDIyNSwgMTc1LCAyNiwgNCwgMSwgMjM1LCAxODYsIDIsIDI0OCwgMTU0LCAyMiwgMjI1LCAxNzUsIAotICAgIDI2LCA2LCAxLCAyMzUsIDE4NiwgMiwgMjI0LCAxNTQsIDI2LCA2LCAxLCAyMzUsIDE4NiwgMiwgMjQ4LCAxNTMsIDI2LCA2LCAKLSAgICAxLCAyMzUsIDE4NiwgMiwgMjI0LCAxNTUsIDIyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjM1LCAxODYsIDIsIDI0OCwgMTU0LCAKLSAgICAyMiwgMjE0LCAxMywgMjYsIDYsIDEsIDIzNSwgMTg2LCAyLCAyMjQsIDE1NSwgMjIsIDIyNiwgMTEwLCAyNiwgNiwgMSwgCi0gICAgMjM1LCAxODYsIDIsIDI0OCwgMTU0LCAyMiwgMjI2LCAxMTAsIDI2LCA2LCAxLCAyMzUsIDE4NiwgMiwgMjI0LCAxNTUsIDIyLCAKLSAgICAyMjUsIDE3NSwgMjYsIDYsIDEsIDIzNSwgMTg2LCAyLCAyNDgsIDE1NCwgMjIsIDIyNSwgMTc1LCAyNiwgNCwgMSwgMjI2LCAKLSAgICAyMDAsIDIsIDIyNCwgMTU0LCAyNiwgNCwgMSwgMjI2LCAyMDAsIDIsIDI0OCwgMTUzLCAyNiwgNCwgMSwgMjI2LCAyMDAsIDIsIAotICAgIDIyNCwgMTU1LCAyMiwgMjE0LCAxMywgMjYsIDQsIDEsIDIyNiwgMjAwLCAyLCAyNDgsIDE1NCwgMjIsIDIxNCwgMTMsIDI2LCAKLSAgICA0LCAxLCAyMjYsIDIwMCwgMiwgMjI0LCAxNTUsIDIyLCAyMjYsIDExMCwgMjYsIDQsIDEsIDIyNiwgMjAwLCAyLCAyNDgsIAotICAgIDE1NCwgMjIsIDIyNiwgMTEwLCAyNiwgNiwgMSwgMjI2LCAyMDAsIDIsIDIyNCwgMTU0LCAyNiwgNiwgMSwgMjI2LCAyMDAsIAotICAgIDIsIDI0OCwgMTUzLCAyNiwgNiwgMSwgMjI2LCAyMDAsIDIsIDIyNCwgMTU1LCAyMiwgMjE0LCAxMywgMjYsIDYsIDEsIDIyNiwgCi0gICAgMjAwLCAyLCAyNDgsIDE1NCwgMjIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyMjYsIDIwMCwgMiwgMjI0LCAxNTUsIDIyLCAyMjYsIAotICAgIDExMCwgMjYsIDYsIDEsIDIyNiwgMjAwLCAyLCAyNDgsIDE1NCwgMjIsIDIyNiwgMTEwLCAyNiwgNCwgMSwgMjE0LCAxNTgsIAotICAgIDIsIDIyNCwgMTU0LCAyNiwgNCwgMSwgMjE0LCAxNTgsIDIsIDI0OCwgMTUzLCAyNiwgNCwgMSwgMjE0LCAxNTgsIDIsIDIyNCwgCi0gICAgMTU1LCAyMiwgMjE0LCAxMywgMjYsIDQsIDEsIDIxNCwgMTU4LCAyLCAyNDgsIDE1NCwgMjIsIDIxNCwgMTMsIDI2LCA0LCAxLCAKLSAgICAyMTQsIDE1OCwgMiwgMjI0LCAxNTUsIDIyLCAyMjYsIDExMCwgMjYsIDQsIDEsIDIxNCwgMTU4LCAyLCAyNDgsIDE1NCwgMjIsIAotICAgIDIyNiwgMTEwLCAyNiwgNCwgMSwgMjE0LCAxNTgsIDIsIDIyNCwgMTU1LCAyMiwgMjI1LCAxNzUsIDI2LCA0LCAxLCAyMTQsIAotICAgIDE1OCwgMiwgMjQ4LCAxNTQsIDIyLCAyMjUsIDE3NSwgMjYsIDYsIDEsIDIxNCwgMTU4LCAyLCAyNDgsIDE1MywgMjYsIDYsIAotICAgIDEsIDIxNCwgMTU4LCAyLCAyNDgsIDE1NCwgMjIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyMTQsIDE1OCwgMiwgMjQ4LCAxNTQsIAotICAgIDIyLCAyMjYsIDExMCwgMjYsIDYsIDEsIDIxNCwgMTU4LCAyLCAyNDgsIDE1NCwgMjIsIDIyNSwgMTc1LCAyNiwgNCwgMSwgCi0gICAgMjI2LCAyMDIsIDIsIDIyNCwgMTU0LCAyNiwgNCwgMSwgMjI2LCAyMDIsIDIsIDI0OCwgMTUzLCAyNiwgNCwgMSwgMjI2LCAKLSAgICAyMDIsIDIsIDIyNCwgMTU1LCAyMiwgMjE0LCAxMywgMjYsIDQsIDEsIDIyNiwgMjAyLCAyLCAyNDgsIDE1NCwgMjIsIDIxNCwgCi0gICAgMTMsIDI2LCA0LCAxLCAyMjYsIDIwMiwgMiwgMjI0LCAxNTUsIDIyLCAyMjYsIDExMCwgMjYsIDQsIDEsIDIyNiwgMjAyLCAyLCAKLSAgICAyNDgsIDE1NCwgMjIsIDIyNiwgMTEwLCAyNiwgNCwgMSwgMjI2LCAyMDIsIDIsIDIyNCwgMTU1LCAyMiwgMjI1LCAxNzUsIAotICAgIDI2LCA0LCAxLCAyMjYsIDIwMiwgMiwgMjQ4LCAxNTQsIDIyLCAyMjUsIDE3NSwgMjYsIDYsIDEsIDIyNiwgMjAyLCAyLCAKLSAgICAyMjQsIDE1NCwgMjYsIDYsIDEsIDIyNiwgMjAyLCAyLCAyNDgsIDE1MywgMjYsIDYsIDEsIDIyNiwgMjAyLCAyLCAyMjQsIAotICAgIDE1NSwgMjIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyMjYsIDIwMiwgMiwgMjQ4LCAxNTQsIDIyLCAyMTQsIDEzLCAyNiwgNiwgMSwgCi0gICAgMjI2LCAyMDIsIDIsIDIyNCwgMTU1LCAyMiwgMjI2LCAxMTAsIDI2LCA2LCAxLCAyMjYsIDIwMiwgMiwgMjQ4LCAxNTQsIDIyLCAKLSAgICAyMjYsIDExMCwgMjYsIDYsIDEsIDIyNiwgMjAyLCAyLCAyMjQsIDE1NSwgMjIsIDIyNSwgMTc1LCAyNiwgNiwgMSwgMjI2LCAKLSAgICAyMDIsIDIsIDI0OCwgMTU0LCAyMiwgMjI1LCAxNzUsIDI2LCA0LCAxLCAyNTQsIDE0NCwgMiwgMjE0LCAxMywgMjYsIDQsIDEsIAotICAgIDI1NCwgMTQ0LCAyLCAyMjYsIDExMCwgMjYsIDQsIDEsIDI0NSwgMTAxLCAyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjQ1LCAKLSAgICAxMDEsIDIsIDIyNiwgMTEwLCAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjE0LCAxMywgMjYsIDQsIDEsIDI0NSwgNjQsIDIsIAotICAgIDIyNiwgMTEwLCAyNiwgNCwgMSwgMjM1LCAxODYsIDIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyMzUsIDE4NiwgMiwgMjI2LCAKLSAgICAxMTAsIDI2LCA0LCAxLCAyMjYsIDIwMCwgMiwgMjE0LCAxMywgMjYsIDQsIDEsIDIyNiwgMjAwLCAyLCAyMjYsIDExMCwgMjYsIAotICAgIDQsIDEsIDIxNCwgMTU4LCAyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjE0LCAxNTgsIDIsIDIyNiwgMTEwLCAyNiwgNCwgMSwgCi0gICAgMjI2LCAyMDIsIDIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyMjYsIDIwMiwgMiwgMjI2LCAxMTAsIDI2LCA0LCAxLCAyNTQsIAotICAgIDE0NCwgMiwgMjI0LCAxNTUsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDI1NCwgMTQ0LCAyLCAyNDgsIDE1NCwgMjIsIDIxMCwgCi0gICAgMjE5LCAyNiwgNCwgMSwgMjU0LCAxNDQsIDIsIDIyNCwgMTU1LCAyMiwgMjE0LCAxNCwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgCi0gICAgMSwgMjU0LCAxNDQsIDIsIDI0OCwgMTU0LCAyMiwgMjE0LCAxNCwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjU0LCAxNDQsIAotICAgIDIsIDIyNCwgMTU1LCAyMiwgMjI2LCAxMTEsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDI1NCwgMTQ0LCAyLCAyNDgsIDE1NCwgCi0gICAgMjIsIDIyNiwgMTExLCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyNTQsIDE0NCwgMiwgMjI0LCAxNTUsIDIyLCAyMjUsIAotICAgIDE3NiwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjU0LCAxNDQsIDIsIDI0OCwgMTU0LCAyMiwgMjI1LCAxNzYsIDIyLCAKLSAgICAyMTAsIDIxOSwgMjYsIDYsIDEsIDI1NCwgMTQ0LCAyLCAyMjQsIDE1NSwgMjIsIDIyNCwgMTY3LCAyNiwgNiwgMSwgMjU0LCAKLSAgICAxNDQsIDIsIDI0OCwgMTU0LCAyMiwgMjI0LCAxNjcsIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgMjI0LCAxNTUsIDIyLCAyMTQsIAotICAgIDE0LCAyMiwgMjI0LCAxNjcsIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMTQsIDE0LCAyMiwgMjI0LCAKLSAgICAxNjcsIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgMjI0LCAxNTUsIDIyLCAyMjYsIDExMSwgMjIsIDIyNCwgMTY3LCAyNiwgNiwgCi0gICAgMSwgMjU0LCAxNDQsIDIsIDI0OCwgMTU0LCAyMiwgMjI2LCAxMTEsIDIyLCAyMjQsIDE2NywgMjYsIDYsIDEsIDI1NCwgMTQ0LCAKLSAgICAyLCAyMjQsIDE1NSwgMjIsIDIyNSwgMTc2LCAyMiwgMjI0LCAxNjcsIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgMjQ4LCAxNTQsIAotICAgIDIyLCAyMjUsIDE3NiwgMjIsIDIyNCwgMTY3LCAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjI0LCAxNTUsIDIyLCAyMTAsIDIxOSwgCi0gICAgMjYsIDQsIDEsIDI0NSwgNjQsIDIsIDI0OCwgMTU0LCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyNDUsIDY0LCAyLCAyMjQsIAotICAgIDE1NSwgMjIsIDIxNCwgMTQsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDI0NSwgNjQsIDIsIDI0OCwgMTU0LCAyMiwgMjE0LCAKLSAgICAxNCwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjI0LCAxNTUsIDIyLCAyMjYsIDExMSwgMjIsIDIxMCwgCi0gICAgMjE5LCAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMjYsIDExMSwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgCi0gICAgMSwgMjQ1LCA2NCwgMiwgMjI0LCAxNTUsIDIyLCAyMjUsIDE3NiwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjQ1LCA2NCwgCi0gICAgMiwgMjQ4LCAxNTQsIDIyLCAyMjUsIDE3NiwgMjIsIDIxMCwgMjE5LCAyNiwgNiwgMSwgMjQ1LCA2NCwgMiwgMjI0LCAxNTUsIAotICAgIDIyLCAyMjQsIDE2NywgMjYsIDYsIDEsIDI0NSwgNjQsIDIsIDI0OCwgMTU0LCAyMiwgMjI0LCAxNjcsIDI2LCA2LCAxLCAKLSAgICAyNDUsIDY0LCAyLCAyMjQsIDE1NSwgMjIsIDIxNCwgMTQsIDIyLCAyMjQsIDE2NywgMjYsIDYsIDEsIDI0NSwgNjQsIDIsIAotICAgIDI0OCwgMTU0LCAyMiwgMjE0LCAxNCwgMjIsIDIyNCwgMTY3LCAyNiwgNiwgMSwgMjQ1LCA2NCwgMiwgMjI0LCAxNTUsIDIyLCAKLSAgICAyMjYsIDExMSwgMjIsIDIyNCwgMTY3LCAyNiwgNiwgMSwgMjQ1LCA2NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMjYsIDExMSwgMjIsIAotICAgIDIyNCwgMTY3LCAyNiwgNiwgMSwgMjQ1LCA2NCwgMiwgMjI0LCAxNTUsIDIyLCAyMjUsIDE3NiwgMjIsIDIyNCwgMTY3LCAyNiwgCi0gICAgNiwgMSwgMjQ1LCA2NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMjUsIDE3NiwgMjIsIDIyNCwgMTY3LCAyNiwgNCwgMSwgMjI2LCAKLSAgICAyMDIsIDIsIDIyNCwgMTU1LCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyMjYsIDIwMiwgMiwgMjQ4LCAxNTQsIDIyLCAyMTAsIAotICAgIDIxOSwgMjYsIDQsIDEsIDIyNiwgMjAyLCAyLCAyMjQsIDE1NSwgMjIsIDIxNCwgMTQsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIAotICAgIDEsIDIyNiwgMjAyLCAyLCAyNDgsIDE1NCwgMjIsIDIxNCwgMTQsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDIyNiwgMjAyLCAKLSAgICAyLCAyMjQsIDE1NSwgMjIsIDIyNiwgMTExLCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyMjYsIDIwMiwgMiwgMjQ4LCAxNTQsIAotICAgIDIyLCAyMjYsIDExMSwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjI2LCAyMDIsIDIsIDIyNCwgMTU1LCAyMiwgMjI1LCAKLSAgICAxNzYsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDIyNiwgMjAyLCAyLCAyNDgsIDE1NCwgMjIsIDIyNSwgMTc2LCAyMiwgCi0gICAgMjEwLCAyMTksIDI2LCA2LCAxLCAyMjYsIDIwMiwgMiwgMjI0LCAxNTUsIDIyLCAyMjQsIDE2NywgMjYsIDYsIDEsIDIyNiwgCi0gICAgMjAyLCAyLCAyNDgsIDE1NCwgMjIsIDIyNCwgMTY3LCAyNiwgNiwgMSwgMjI2LCAyMDIsIDIsIDIyNCwgMTU1LCAyMiwgMjE0LCAKLSAgICAxNCwgMjIsIDIyNCwgMTY3LCAyNiwgNiwgMSwgMjI2LCAyMDIsIDIsIDI0OCwgMTU0LCAyMiwgMjE0LCAxNCwgMjIsIDIyNCwgCi0gICAgMTY3LCAyNiwgNiwgMSwgMjI2LCAyMDIsIDIsIDIyNCwgMTU1LCAyMiwgMjI2LCAxMTEsIDIyLCAyMjQsIDE2NywgMjYsIDYsIAotICAgIDEsIDIyNiwgMjAyLCAyLCAyNDgsIDE1NCwgMjIsIDIyNiwgMTExLCAyMiwgMjI0LCAxNjcsIDI2LCA2LCAxLCAyMjYsIDIwMiwgCi0gICAgMiwgMjI0LCAxNTUsIDIyLCAyMjUsIDE3NiwgMjIsIDIyNCwgMTY3LCAyNiwgNiwgMSwgMjI2LCAyMDIsIDIsIDI0OCwgMTU0LCAKLSAgICAyMiwgMjI1LCAxNzYsIDIyLCAyMjQsIDE2NywgMjYsIDQsIDEsIDI1NCwgMTQ0LCAyLCAyMTMsIDEyMCwgMjYsIDQsIDEsIAotICAgIDI1NCwgMTQ0LCAyLCAyMzEsIDIzMiwgMjYsIDQsIDEsIDI1NCwgMTQ0LCAyLCAyMTQsIDE0LCAyMiwgMjEwLCAyMTksIDI2LCAKLSAgICA0LCAxLCAyNTQsIDE0NCwgMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyNTQsIDE0NCwgMiwgMjI2LCAxMTEsIDIyLCAyMTAsIAotICAgIDIxOSwgMjYsIDQsIDEsIDI1NCwgMTQ0LCAyLCAyMjUsIDE3NSwgMjYsIDQsIDEsIDI1NCwgMTQ0LCAyLCAyMjUsIDE3NiwgCi0gICAgMjIsIDIxMCwgMjE5LCAyNiwgNiwgMSwgMjU0LCAxNDQsIDIsIDIxMywgMTIwLCAyNiwgNiwgMSwgMjU0LCAxNDQsIDIsIAotICAgIDIzMSwgMjMyLCAyNiwgNiwgMSwgMjU0LCAxNDQsIDIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgMjI2LCAKLSAgICAxMTAsIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgMjI0LCAxNjcsIDI2LCAyMzQsIDIsIDI2LCAyMjQsIDE2NywgMjYsIDIyNCwgCi0gICAgMTU0LCAyNiwgMjI1LCAxNzUsIDI2LCAyNDcsIDI1MiwgMjIsIDIyNSwgMTc1LCAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjE0LCAKLSAgICAxNCwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyNDUsIDY0LCAyLCAKLSAgICAyMjYsIDExMSwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjI1LCAxNzUsIDI2LCA0LCAxLCAyNDUsIAotICAgIDY0LCAyLCAyMjUsIDE3NiwgMjIsIDIxMCwgMjE5LCAyNiwgNiwgMSwgMjQ1LCAxMDEsIDIsIDIxNCwgMTMsIDI2LCA2LCAxLCAKLSAgICAyNDUsIDEwMSwgMiwgMjI2LCAxMTAsIDI2LCA2LCAxLCAyNDUsIDY0LCAyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjQ1LCA2NCwgCi0gICAgMiwgMjI2LCAxMTAsIDI2LCA2LCAxLCAyNDUsIDY0LCAyLCAyMjQsIDE2NywgMjYsIDIyNCwgMTU1LCAyMiwgMjE0LCAxMywgCi0gICAgMjYsIDIyNCwgMTU1LCAyMiwgMjI2LCAxMTAsIDI2LCAyMjQsIDE1NSwgMjIsIDIyNSwgMTc1LCAyNiwgNCwgMSwgMjM1LCAKLSAgICAxODYsIDIsIDIxMywgMTIwLCAyNiwgNCwgMSwgMjM1LCAxODYsIDIsIDIzMSwgMjMyLCAyNiwgNCwgMSwgMjM1LCAxODYsIDIsIAotICAgIDI0NywgMjUyLCAyMiwgMjE0LCAxMywgMjYsIDQsIDEsIDIzNSwgMTg2LCAyLCAyNDcsIDI1MiwgMjIsIDIyNiwgMTEwLCAyNiwgCi0gICAgNCwgMSwgMjM1LCAxODYsIDIsIDIyNSwgMTc1LCAyNiwgNCwgMSwgMjM1LCAxODYsIDIsIDI0NywgMjUyLCAyMiwgMjI1LCAKLSAgICAxNzUsIDI2LCA2LCAxLCAyMzUsIDE4NiwgMiwgMjEzLCAxMjAsIDI2LCA2LCAxLCAyMzUsIDE4NiwgMiwgMjMxLCAyMzIsIAotICAgIDI2LCA2LCAxLCAyMzUsIDE4NiwgMiwgMjE0LCAxMywgMjYsIDYsIDEsIDIzNSwgMTg2LCAyLCAyMjYsIDExMCwgMjYsIDI0OCwgCi0gICAgMTU0LCAyMiwgMjE0LCAxMywgMjYsIDI0OCwgMTU0LCAyMiwgMjI2LCAxMTAsIDI2LCAyNDgsIDE1NCwgMjIsIDIyNSwgMTc1LCAKLSAgICAyNiwgNCwgMSwgMjE0LCAxNTgsIDIsIDIxMywgMTIwLCAyNiwgNCwgMSwgMjE0LCAxNTgsIDIsIDIzMSwgMjMyLCAyNiwgNCwgCi0gICAgMSwgMjE0LCAxNTgsIDIsIDI0NywgMjUyLCAyMiwgMjE0LCAxMywgMjYsIDQsIDEsIDIxNCwgMTU4LCAyLCAyNDcsIDI1MiwgCi0gICAgMjIsIDIyNiwgMTEwLCAyNiwgNCwgMSwgMjIzLCAzOCwgMiwgMjI0LCAxNTQsIDI2LCA0LCAxLCAyMjMsIDM4LCAyLCAyNDgsIAotICAgIDE1MywgMjYsIDQsIDEsIDIxNCwgMTU4LCAyLCAyMjUsIDE3NSwgMjYsIDQsIDEsIDIxNCwgMTU4LCAyLCAyNDcsIDI1MiwgCi0gICAgMjIsIDIyNSwgMTc1LCAyNiwgNiwgMSwgMjE0LCAxNTgsIDIsIDIxMywgMTIwLCAyNiwgNiwgMSwgMjE0LCAxNTgsIDIsIAotICAgIDIzMSwgMjMyLCAyNiwgNiwgMSwgMjE0LCAxNTgsIDIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyMTQsIDE1OCwgMiwgMjI2LCAKLSAgICAxMTAsIDI2LCA2LCAxLCAyMjMsIDM4LCAyLCAyNDgsIDE1MywgMjYsIDI0NywgMjUyLCAyMiwgMjE0LCAxMywgMjYsIDI0NywgCi0gICAgMjUyLCAyMiwgMjI2LCAxMTAsIDI2LCAyMTQsIDEzLCAyNiwgNCwgMSwgMjI2LCAyMDIsIDIsIDIxNCwgMTQsIDIyLCAyMTAsIAotICAgIDIxOSwgMjYsIDQsIDEsIDIyNiwgMjAyLCAyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDIyNiwgMjAyLCAyLCAyMjYsIDExMSwgCi0gICAgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjI2LCAyMDIsIDIsIDIyNSwgMTc1LCAyNiwgNCwgMSwgMjI2LCAyMDIsIDIsIAotICAgIDIyNSwgMTc2LCAyMiwgMjEwLCAyMTksIDI2LCA2LCAxLCAyMjYsIDIwMCwgMiwgMjE0LCAxMywgMjYsIDYsIDEsIDIyNiwgCi0gICAgMjAwLCAyLCAyMjYsIDExMCwgMjYsIDYsIDEsIDIyNiwgMjAyLCAyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjI2LCAyMDIsIDIsIAotICAgIDIyNiwgMTEwLCAyNiwgNiwgMSwgMjI2LCAyMDIsIDIsIDIyNCwgMTY3LCAyNiwgMjI2LCAxMTAsIDI2LCAyNDgsIDE1MywgCi0gICAgMjQ1LCAxNTEsIDIyNCwgMjcsIDI0NSwgMTYwLCAyMjQsIDI3LCAyNDUsIDE1MSwgMjE5LCAxOCwgMjQ1LCAxNjAsIDIxOSwgCi0gICAgMTgsIDIxNiwgMTQxLCAyMTksIDE4LCAyNDQsIDksIDIxOSwgMTgsIDIxOSwgMTIzLCAyMTksIDE4LCAyNDQsIDExMiwgMjE5LCAKLSAgICAxOCwgMjI0LCAxNDEsIDIxOSwgMTgsIDIxNiwgMTcwLCAyMTksIDE4LCAyNDIsIDM1LCAyMTksIDE4LCAyMTAsIDg3LCAyMTEsIAotICAgIDI0NSwgMjE5LCAxOCwgMjEwLCA4NywgMjExLCAyNDUsIDIyOCwgNjcsIDIxMCwgODcsIDIxMSwgMjQ1LCAyMzUsIDYzLCAKLSAgICAyMzMsIDM4LCA3OCwgMjIyLCAyNDMsIDc4LCAyNDAsIDE2OCwgMjI4LCA2OCwgMjQwLCAxNjgsIDI0NCwgMTEyLCAyNDgsIAotICAgIDE1NiwgMjQ1LCAxNTEsIDI0OCwgMTU2LCAyNDUsIDE2MCwgMjQ4LCAxNTYsIDIwMywgMTMwLCA1MiwgNjcsIDIzMiwgMjEzLCAKLSAgICA1MiwgMTIxLCAyMzIsIDIxMywgNDMsIDIxOSwgMTU1LCAyMjMsIDI1NCwgNzgsIDQ0LCAyMTksIDE1NSwgMjIzLCAyNTQsIAotICAgIDc4LCAyMTksIDE1NSwgMjMyLCAxMDksIDIyMywgMjU0LCA3OCwgMjE5LCAxNTUsIDI0MSwgMTYzLCAyMjMsIDI1NCwgNzgsIAotICAgIDQzLCA1MiwgMjIzLCAyNTQsIDc4LCA0NCwgNTIsIDIyMywgMjU0LCA3OCwgNTIsIDIzMiwgMTA5LCAyMjMsIDI1NCwgNzgsIAotICAgIDUyLCAyNDEsIDE2MywgMjIzLCAyNTQsIDc4LCAyNDgsIDIwNSwgNTIsIDI0OCwgMjA1LCAyNTEsIDExMywgMjE1LCAyMjIsIAotICAgIDI1MSwgMTEzLCAxMjMsIDU5LCAyMzMsIDU2LCAxMTMsIDU5LCAyMzMsIDU2LCAyMDMsIDI0NSwgMTYzLCAyNDAsIDE2NiwgCi0gICAgMjI1LCAxMCwgMjMyLCAyMTQsIDIyMCwgMTM3LCAyMjYsIDE1LCAyMjAsIDEzNywgMjMzLCAzOCwgMjQ1LCAxNTgsIDIyMiwgCi0gICAgMjQzLCAyNDUsIDE1OCwgMjI0LCAyNDYsIDI0NywgMTk2LCAyNDQsIDE5LCAyMzMsIDM4LCAyMjYsIDExNywgMjIyLCAyNDMsIAotICAgIDIyNiwgMTE3LCAyMjksIDE5NCwgMjI4LCA3MywgMjE5LCAxOCwgMjI1LCAxODMsIDIzMCwgMTkzLCA1MCwgMjI1LCAxODMsIAotICAgIDIxNiwgMjQ4LCAyMTYsIDE0OCwgNTAsIDIyNCwgMTkwLCA1MiwgMjI0LCAxOTAsIDIxNSwgMjExLCAyMjQsIDE5MCwgMjIzLCAKLSAgICA0OSwgMjI0LCAxOTAsIDIyMywgNDksIDUyLCAyMjQsIDE5MCwgMjIzLCA0OSwgMjE1LCAyMTEsIDIyNCwgMTkwLCAyNTAsIAotICAgIDIzOCwgMjE5LCAxNTUsIDIzMywgNDIsIDI1NCwgMTEwLCAyMjMsIDI1NCwgNzgsIDIxOSwgMTU1LCAyMjIsIDI0NywgMjU0LCAKLSAgICAxMTAsIDIyMywgMjU0LCA3OCwgMjIzLCAxMDcsIDc4LCA1MiwgMjQ1LCAzMSwgNzgsIDIzNSwgMjAxLCAyMjYsIDExOSwgCi0gICAgMjE0LCAxODAsIDEzNSwgMjE2LCAxMTEsIDI1MCwgMjM5LCAyMzUsIDIxNiwgMjI1LCAxMCwgMjUzLCAyMTQsIDI0MCwgMTY5LCAKLSAgICAyNTEsIDExMywgMjQ0LCAyLCAyMTksIDk1LCA0MywgNDIsIDI1MSwgMTU4LCAyLCAyMjQsIDcsIDQ0LCA0MiwgMjUxLCAxNTgsIAotICAgIDIsIDIyNCwgNywgNTIsIDIyNCwgMTMsIDc4LCAyMjQsIDEzLCAyNDUsIDMxLCA3OCwgMjQ1LCAzMSwgMjI0LCAxMywgNzgsIAotICAgIDIxNiwgNzAsIDUsIDI0NSwgNjUsIDIyMywgNDksIDIyNSwgNjgsIDUwLCA4NSwgMTQwLCAyNTEsIDExMywgODUsIDk3LCAKLSAgICAyNTEsIDExMywgMTIxLCAyNTMsIDIxNiwgMjIzLCA0OSwgMjIwLCAxNTAsIDI1MCwgMSwgMjE0LCAxNjMsIDExMywgMjUzLCAKLSAgICAyMTUsIDI1NCwgMTU4LCAyMTMsIDE4OCwgMjQ5LCAyMTcsIDIzMCwgMTgyLCA1MCwgMjE3LCAyMzQsIDI0OCwgMTU2LCAyMzUsIAotICAgIDE5MywgMjE0LCAxODAsIDI0NCwgNTIsIDIyNCwgMTQxLCA3OCwgMTM0LCA1OSwgMjI0LCAxNDAsIDIyNCwgMjQsIDIyNCwgCi0gICAgMTkwLCAyNDQsIDExLCA1OSwgMjI0LCAxNDAsIDI0NCwgODEsIDU5LCAyMjQsIDE0MCwgMTEzLCA1OSwgMjI0LCAxNDAsIAotICAgIDI0NCwgMTEsIDU5LCA3OCwgMjQ2LCAxMTgsIDI0OSwgMTMwLCAyMTUsIDIyMSwgNjcsIDI0NCwgMTEsIDI0NywgMTE4LCAKLSAgICAyMzEsIDgyLCAxMSwgMjE5LCAxOCwgMjExLCAyMDksIDIzNSwgNjMsIDI0MywgMjI3LCAyNTQsIDUyLCAyMzUsIDE5MSwgCi0gICAgMjE2LCA4NSwgMjM1LCAxOTEsIDIyMCwgMTM3LCAyMzUsIDE5MSwgMjI1LCAyMiwgMjM1LCAyMjgsIDIxNywgMTgyLCAyMTcsIAotICAgIDI1MSwgMjU1LCA1LCAyMTcsIDE4MiwgMjE3LCAyNTEsIDIzNSwgMjI4LCAxMCwgMjQ0LCAyMCwgMjIwLCA4MCwgMjU1LCA1LCAKLSAgICAxMCwgMjQ0LCAyMCwgMjIwLCA4MCwgMjI5LCAxODksIDIxLCAyMjAsIDgxLCAyMjgsIDY5LCAyMSwgMjIwLCA4MSwgMjE4LCAKLSAgICAyMywgMjEwLCA4NiwgMjE4LCAyMywgNywgNCwgMSwgNzMsIDIxOCwgMjMsIDE2MSwgMjE4LCAyMywgMTg5LCAyMTgsIDIzLCAKLSAgICAxOTQsIDIxOCwgMjMsIDE5OCwgMjE4LCAyMywgMTk1LCAyMTgsIDIzLCAyMDAsIDIxOCwgMjMsIDk2LCA1MCwgMjE4LCAyMywgCi0gICAgMjMwLCAxODEsIDIxOCwgMjMsIDI0NSwgOTgsIDUwLCAyMTgsIDIzLCA0MywgMjI2LCAzLCAyMTgsIDIzLCA0NCwgMjI2LCAzLCAKLSAgICAyMTgsIDIzLCA3LCA0LCAxLCAyMzAsIDI1LCAyMTgsIDY1LCAyMTAsIDg2LCAyMTgsIDY1LCAxMTAsIDIxOCwgNjUsIDEwNSwgCi0gICAgMjE4LCA2NSwgMTU4LCAyMTgsIDY1LCAxNjEsIDIxOCwgNjUsIDE4OSwgMjE4LCA2NSwgMTk0LCAyMTgsIDY1LCAxOTgsIAotICAgIDIxOCwgNjUsIDE5NSwgMjE4LCA2NSwgMjAwLCAyMTgsIDY1LCA5NiwgNTAsIDIxOCwgNjUsIDIzMCwgMTgxLCAyMTgsIDY1LCAKLSAgICAyNDUsIDk4LCA1MCwgMjE4LCA2NSwgNDMsIDIyNiwgMywgMjE4LCA2NSwgNDQsIDIyNiwgMywgNywgMjE4LCA2NSwgNCwgMSwgCi0gICAgNjEsIDcsIDIxOCwgNjUsIDQsIDEsIDc1LCA3LCAyMTgsIDY1LCA0LCAxLCA3NiwgNywgMjE4LCA2NSwgNCwgMSwgMjExLCAKLSAgICAxNzgsIDcsIDIxOCwgNjUsIDQsIDEsIDIyMSwgMTk1LCA3LCAyMTgsIDY1LCA0LCAxLCAyNDIsIDYwLCA3LCAyMTgsIDY1LCAKLSAgICA0LCAxLCAyMzUsIDIzLCA3LCAyMTgsIDY1LCA0LCAxLCAxNTYsIDcsIDIxOCwgNjUsIDQsIDEsIDE5MywgNywgMjE4LCA2NSwgCi0gICAgNCwgMSwgMjMwLCAyNSwgNywgMjE4LCA2NSwgNCwgMSwgMjI2LCAxMDUsIDcsIDIxOCwgNjUsIDQsIDEsIDIyMiwgOTEsIDcsIAotICAgIDIxOCwgNjUsIDQsIDEsIDIxNywgMTUyLCAyNDUsIDQ2LCA1MCwgMjQ5LCAyMjcsIDUwLCAyNDksIDExNywgNTAsIDI0MywgCi0gICAgMjUxLCAyNDMsIDI1NCwgNTAsIDIzMiwgMTk4LCA1MCwgMjMwLCAxOTQsIDUwLCAyMjksIDIxMCwgNTAsIDIyNSwgMTYyLCAKLSAgICA1MCwgMjIyLCAxMTgsIDUwLCAyMTEsIDIxNywgNTAsIDE2NiwgMjIwLCA0OSwgNTAsIDI0NywgMTI3LCA1MCwgMjQ1LCA0NywgCi0gICAgNTAsIDIzNCwgNzYsIDUwLCAyMTUsIDExMiwgNTAsIDI0NiwgMTAxLCA1MCwgMjQzLCA0MCwgMjI1LCAxOTMsIDUwLCAyMjUsIAotICAgIDE2MCwgNTAsIDI0MiwgMTA5LCA1MCwgMjUzLCAxODIsIDUwLCAyNDAsIDIyOCwgNTAsIDI1MCwgMTg1LCA1MCwgMjMyLCAKLSAgICAxOTEsIDIxNiwgMywgNTAsIDIxOSwgMCwgNTAsIDIxNiwgMjQ1LCA1MCwgMjM1LCAyNDEsIDIyMiwgMTE4LCA1MCwgMzgsIAotICAgIDQzLCAyNDEsIDI1NSwgNDgsIDM4LCA0NCwgMjQxLCAyNTUsIDQ4LCAzOCwgMTk5LCA2NywgMjMyLCAyMTQsIDIyNiwgMTIwLCAKLSAgICAzOCwgMjE5LCAyNTEsIDY3LCAyMzIsIDIxNCwgMjI2LCAxMjAsIDM4LCAyNTQsIDg4LCA4MCwgNDgsIDM4LCAyNTAsIDIsIAotICAgIDgwLCA0OCwgMzgsIDQzLCA4MCwgNDgsIDM4LCA0NCwgODAsIDQ4LCAzOCwgMjIyLCAyMzQsIDIyNiwgMTIwLCAzOCwgMjUwLCAKLSAgICAyLCAyMjIsIDIzNCwgMjI2LCAxMjAsIDM4LCAyNTQsIDg4LCAyMjIsIDIzNCwgMjI2LCAxMjAsIDM4LCAxMzQsIDE3MCwgNDgsIAotICAgIDM4LCAyNDQsIDExLCAxNzAsIDQ4LCAzOCwgMjQ1LCAxNDYsIDI1MCwgMzUsIDM4LCAyNDUsIDE0NiwgMjE4LCAyMzQsIDM4LCAKLSAgICAyNDUsIDE0NiwgMjQ3LCAyNDgsIDM4LCAyNDUsIDE0NiwgMjUwLCAzNiwgMjUyLCAxODAsIDM4LCA0MywgNDQsIDgwLCA0OCwgCi0gICAgMzgsIDI0NSwgMTQ2LCAyMjEsIDE4OCwgMzgsIDI0NSwgMTQ2LCAyMzQsIDEzNSwgMzgsIDI0NSwgMTQ2LCAyMTQsIDE1NSwgCi0gICAgMjI1LCA3LCAyMTUsIDIyNSwgMzgsIDIyMywgNTAsIDIxOSwgNDcsIDIyNiwgMTIwLCAzOCwgNTIsIDY3LCAyMTgsIDEwMywgCi0gICAgMjI2LCAxMjAsIDM4LCAyNTQsIDk4LCA4NywgMzgsIDIxNSwgMjExLCAyMTQsIDE4MiwgMzgsIDIxMSwgMjQ3LCAyNTEsIAotICAgIDE0MCwgNDgsIDM4LCAxNDAsIDgwLCAyMjYsIDEyMCwgMzgsIDE5OSwgNTIsIDIxOSwgNDcsIDIyNiwgMTIwLCAzOCwgOTcsIAotICAgIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMjQ2LCAxMDMsIDM4LCAxNDAsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMjQ2LCAKLSAgICAxMDMsIDM4LCA0MywgODAsIDUxLCAzOCwgNDQsIDgwLCA1MSwgMzgsIDI1MywgMjE3LCA0OCwgMjU1LCAxMSwgMjI2LCAyMzEsIAotICAgIDI1NCwgMjUxLCAyMTYsIDQyLCAyMTYsIDE5NiwgMjE4LCA3NCwgMTM5LCA2LCAyNTEsIDY2LCAyNDgsIDcxLCAyNTAsIDE3OCwgCi0gICAgMjUwLCAxNzUsIDIzMiwgMjE0LCA4NywgMjUwLCAyNDAsIDIyNiwgMjMxLCAyNTEsIDI2LCAyMTQsIDE4OSwgMjQ1LCA0OCwgCi0gICAgMjQ5LCAxOTEsIDIyMSwgMTg1LCAyNDgsIDcxLCAyNDQsIDE3OSwgMTE5LCA0LCAyNDMsIDIwMiwgMTE5LCA2LCAyNDIsIDYwLCAKLSAgICAyNTEsIDIxOSwgNiwgMjQyLCA2MCwgMTM5LCA2LCAyNDIsIDYwLCAyMjUsIDM3LCAyNDksIDE5MSwgMjI1LCAzNywgMjQ5LCAKLSAgICAxOTIsIDExNywgMTEzLCAyMjUsIDEwOCwgMTE5LCA2LCA3MywgMjUxLCAyMTksIDYsIDczLCAxMTksIDYsIDE1NiwgMTE5LCAKLSAgICA0LCAxNTYsIDIzMywgMTQ5LCA1NywgMjUyLCAxNDEsIDg3LCAxMzksIDYsIDIzMCwgMjUsIDIyNywgMTk2LCA1MCwgMjE5LCAKLSAgICAzMSwgMjIzLCAxMTksIDI0OSwgMTYyLCAxMTksIDYsIDIyNiwgMTA1LCAxMzksIDYsIDIyNiwgMTA1LCAxMzksIDYsIDIyNCwgCi0gICAgOTYsIDExOSwgNiwgMTUzLCAyNTEsIDIxOSwgNiwgMTUzLCAxMzksIDYsIDE1MywgMjI0LCAxOTYsIDIxNywgNzEsIDIyMywgCi0gICAgNjIsIDIyMCwgMTMyLCA3OCwgMjE3LCAxLCA1MCwgMjE1LCAyNTMsIDE2NCwgNTAsIDIxMywgMjQwLCAxMzksIDYsIDIxMCwgCi0gICAgMTU5LCAyMjYsIDEzMywgNTAsIDIyNiwgMjIxLCA1MCwgMjM1LCAxOTMsIDIyNiwgMjIxLCA1MCwgMjUxLCAyMTksIDYsIAotICAgIDIxMCwgMTU5LCAyMTUsIDk0LCAyNiwgNCwgMSwgMjM1LCAxODUsIDIzNCwgMTczLCA1MCwgMjU0LCAxMDcsIDUwLCAxMTksIAotICAgIDYsIDI1MywgMTU4LCAyNTEsIDIxOSwgNiwgMjUxLCA2NiwgMjQ1LCA2OCwgODcsIDExOSwgNCwgNzUsIDExOSwgNiwgNzUsIAotICAgIDExOSwgNiwgMjQ1LCA2LCAyMTUsIDk0LCA2LCAyNDUsIDYsIDExOSwgNiwgMTkzLCAxMTksIDQsIDc2LCAxMTIsIDg3LCAKLSAgICAyNTIsIDI5LCA4NywgMjQyLCAyMDIsIDg3LCAyNDgsIDE5MCwgODcsIDIzNSwgMjMyLCAyMTksIDI5LCAyMjIsIDE4NywgNiwgCi0gICAgMjI0LCA5NiwgMjQ0LCAxODIsIDUwLCAxMzksIDQsIDIyNSwgMTA4LCAxMzksIDQsIDI0MywgMTA3LCAxMzksIDYsIDI0MywgCi0gICAgMTA3LCAxMzksIDYsIDIyNSwgMTA4LCAxMzksIDIzMCwgMjQsIDIxOCwgNDAsIDIxNSwgOTQsIDM1LCA2LCAyNDMsIDIwMiwgCi0gICAgMjE1LCA5NCwgMzUsIDYsIDE1NiwgMjIzLCA0OSwgMzUsIDYsIDE1NiwgMjE1LCA5NCwgMzUsIDYsIDIxMSwgMTE3LCAxMzksIAotICAgIDMyLCA2LCAyNDksIDYwLCAxMzksIDMyLCA0LCAyNDksIDYwLCAxMzksIDMyLCA0LCA3NSwgMTM5LCAzMiwgNCwgNzMsIDEzOSwgCi0gICAgMzIsIDQsIDIzNSwgMTQ0LCAyMjQsIDE3MCwgMjMyLCAyMTMsIDIxNSwgOTQsIDI1NCwgMTI2LCAyMjUsIDE4MywgNTAsIAotICAgIDI1NCwgMTgwLCAyMTUsIDk0LCA0LCAyNDUsIDYsIDE2LCAzMSwgMjIxLCAyNTIsIDIxOSwgMjksIDIxMiwgMTE0LCAyNDQsIAotICAgIDIsIDEyMywgMjIwLCAxMTgsIDIxMiwgMTE0LCAyNDQsIDIsIDEyMywgMjI4LCAxOTQsIDIxMiwgMTE0LCAyNDQsIDIsIDEyMywgCi0gICAgMjE2LCAyNDEsIDIxMiwgMTE0LCAyNDQsIDIsIDEyMywgMjE2LCAxNjgsIDIxMiwgMTE0LCAyNDQsIDIsIDExMywgMjE2LCAKLSAgICAxNjYsIDIxMiwgMTE0LCAyNDQsIDIsIDEyMywgMjQ0LCAxMTcsIDIxMiwgMTE0LCAyNDQsIDIsIDExMywgMjQ0LCAxMTYsIAotICAgIDIxMiwgMTE0LCAyNDQsIDIsIDEzNCwgMjQ0LCAxMTYsIDIxMiwgMTE0LCAyNDQsIDIsIDI0NCwgMTEsIDI0NCwgMTE2LCAKLSAgICAyMTIsIDExNCwgMjQ0LCAyLCAxMjMsIDIxOSwgMTE1LCAyMTIsIDExNCwgMjQ0LCAyLCAyNDQsIDgxLCAyMTksIDExMywgCi0gICAgMjEyLCAxMTQsIDI0NCwgMiwgMTIzLCAyNDUsIDE4OCwgMjEyLCAxMTQsIDI0NCwgMiwgMTM0LCAyNDUsIDE4NiwgMjEyLCAKLSAgICAxMTQsIDI0NCwgMiwgMjQ0LCA4MSwgMjQ1LCAxODYsIDIxMiwgMTE0LCAyNDQsIDIsIDIyMCwgMTIyLCAyNDUsIDE4NiwgCi0gICAgMjQ0LCAyLCAyMjcsIDE5NywgMTEwLCAyMjIsIDE5OCwgMjI3LCAxOTgsIDExMCwgMjIyLCAxOTgsIDIyNywgMTk4LCAxMDUsIAotICAgIDIyMiwgMTk4LCAyMjcsIDE5OCwgMTU4LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDE2MSwgMjIyLCAxOTgsIDIyNywgMTk4LCAKLSAgICAxODksIDIyMiwgMTk4LCAyMjcsIDE5OCwgMTk0LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDE5OCwgMjIyLCAxOTgsIDIyNywgCi0gICAgMTk4LCAxOTUsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMjAwLCAyMjIsIDE5OCwgMjI3LCAxOTgsIDIxNiwgMjQ3LCAyMjIsIAotICAgIDE5OCwgMjI3LCAxOTgsIDI0NSwgMTY3LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDIxNSwgNzYsIDIyMiwgMTk4LCAyMjcsIDE5OCwgCi0gICAgMjQ0LCAxMTQsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMTIzLCAyNDAsIDIxMCwgMjIyLCAxOTgsIDIyNywgMTk4LCAyNDQsIDgxLCAKLSAgICAyNDAsIDIxMCwgMjIyLCAxOTgsIDIyNywgMTk4LCAxMjMsIDIxNiwgMTQ3LCA0LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDExMCwgCi0gICAgNCwgMjIyLCAxOTgsIDIyNywgMTk4LCAxMDUsIDQsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMTU4LCA0LCAyMjIsIDE5OCwgMjI3LCAKLSAgICAxOTgsIDE2MSwgNCwgMjIyLCAxOTgsIDIyNywgMTk4LCAxODksIDQsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMTk0LCA0LCAyMjIsIAotICAgIDE5OCwgMjI3LCAxOTgsIDE5OCwgNCwgMjIyLCAxOTgsIDIyNywgMTk4LCAxOTUsIDQsIDIyMiwgMTk4LCAyMjcsIDE5OCwgCi0gICAgMjAwLCA0LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDIxNiwgMjQ3LCA0LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDI0NSwgMTY3LCA0LCAKLSAgICAyMjIsIDE5OCwgMjI3LCAxOTgsIDIxNSwgNzYsIDQsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMjQ0LCAxMTQsIDQsIDIyMiwgCi0gICAgMTk4LCAyMjcsIDE5OCwgMTIzLCAyNDAsIDIxMCwgNCwgMjIyLCAxOTgsIDIyNywgMTk4LCAyNDQsIDgxLCAyNDAsIDIxMCwgCi0gICAgNCwgMjIyLCAxOTgsIDIyNywgMTk4LCAxMjMsIDIxNiwgMTQ3LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDEyMywgMjE2LCAxNDgsIAotICAgIDI1MSwgNjcsIDI0OSwgNjAsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMjQ0LCA4MSwgMjE2LCAxNDcsIDIyMiwgMTk4LCAyMjcsIAotICAgIDE5OCwgMjE2LCAyNDgsIDIxNiwgMTQ3LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDIyMywgNDksIDEyMywgMjQwLCAyMTAsIDcsIAotICAgIDQsIDEsIDIyMywgNDksIDI1MSwgNjYsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMjE5LCAxMjUsIDIzMywgNzgsIDE3LCAyMjIsIAotICAgIDE5OCwgMjI3LCAxOTgsIDI0NCwgMTE1LCAyNDUsIDIyNiwgMTcsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMjQ0LCAxMTUsIDIxNiwgCi0gICAgMTQ3LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDEyMywgMjQwLCAyMTEsIDIxNiwgMTQ3LCAyMTIsIDExNCwgMjQ0LCAyLCAyMTAsIAotICAgIDg3LCAyMTYsIDE2NiwgMTQwLCA3NCwgMjE0LCAxNTMsIDc0LCA5NywgNzQsIDI0NiwgMTA0LCA3NCwgNDMsIDQ0LCA3NCwgCi0gICAgMTIwLCAxMjQsIDc0LCAyMjgsIDU2LCAyMTIsIDksIDc0LCAyMjgsIDU2LCAyNDUsIDIyMCwgNzQsIDIxOSwgMjgsIDI0NSwgCi0gICAgMjIwLCA3NCwgMjE5LCAyOCwgMjEyLCA5LCA3NCwgMTQwLCA4MCwgMiwgOTEsIDk3LCA4MCwgMiwgOTEsIDE0MCwgMjEyLCAKLSAgICAzNiwgNzQsIDk3LCAyMTIsIDM2LCA3NCwgMTQwLCAxMTMsIDI0MSwgMjM0LCA3NCwgMjE0LCAxNTMsIDExMywgMjQxLCAyMzQsIAotICAgIDc0LCA5NywgMTEzLCAyNDEsIDIzNCwgNzQsIDI0NiwgMTA0LCAxMTMsIDI0MSwgMjM0LCA3NCwgMTQwLCA4MCwgMiwgMjE3LCAKLSAgICA3NywgOTcsIDgwLCAyLCAyMTcsIDc3LCAxNDAsIDgwLCAyNDMsIDI0MywgMTMwLCAyMTQsIDE1MywgODAsIDI0MywgMjQzLCAKLSAgICAxMzAsIDk3LCA4MCwgMjQzLCAyNDMsIDEzMCwgMjQ2LCAxMDQsIDgwLCAyNDMsIDI0MywgMTMwLCAxMjAsIDEyNCwgODAsIDIsIAotICAgIDI1MiwgMTI3LCAxNDAsIDgwLCAyLCAxMDMsIDk3LCA4MCwgMiwgMTAzLCAxNDAsIDgwLCAyLCAyMzIsIDEyMywgOTcsIDgwLCAKLSAgICAyLCAyMzIsIDEyMywgNDMsIDQ0LCAyMTIsIDM2LCA3NCwgNDMsIDQ0LCA4MCwgMiwgOTEsIDI0NiwgMTA0LCAyMTAsIDM1LCAKLSAgICA3NCwgMjE0LCAxNTMsIDgwLCAyLCAyMTYsIDc3LCAyMzMsIDM3LCAyMTQsIDE1MywgODAsIDIsIDIxNiwgNzcsIDIyMiwgCi0gICAgMjQxLCAyNDYsIDEwNCwgODAsIDIsIDIxNiwgNzcsIDIzMywgMzcsIDI0NiwgMTA0LCA4MCwgMiwgMjE2LCA3NywgMjIyLCAKLSAgICAyNDEsIDk3LCA4MCwgMiwgMjQ5LCAxNjEsIDI0NiwgMTAzLCAyNDYsIDEwNCwgODAsIDIsIDI0OSwgMTYxLCAyMzMsIDM3LCAKLSAgICAyNTQsIDg4LCAyMTYsIDE0LCAyMjAsIDE1MywgNzQsIDI1MCwgMiwgMjE2LCAxNCwgMjIwLCAxNTMsIDc0LCAyMjgsIDU2LCAKLSAgICAyMTIsIDksIDgwLCAyMTYsIDQyLCAxOTksIDEzMCwgMTQwLCA4MCwgMjE2LCA0MiwgMjUyLCAxNDEsIDExNywgOTcsIDgwLCAKLSAgICAyMTYsIDQyLCAxMzAsIDI1NCwgODgsIDIwNCwgMjUwLCAzNiwgNzQsIDI1MCwgMiwgMjA0LCAyNTAsIDM2LCA3NCwgMTQwLCAKLSAgICAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDIxNCwgMTUyLCAxNDAsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMjQ2LCAxMDMsIAotICAgIDIxNCwgMTUzLCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDIyMiwgMjQxLCAyMTQsIDE1MywgMjQxLCAyNTUsIDIsIDI1MiwgCi0gICAgMTM5LCAyMzMsIDM3LCA5NywgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAyMTQsIDE1MiwgOTcsIDI0MSwgMjU1LCAyLCAyNTIsIAotICAgIDEzOSwgMjQ2LCAxMDMsIDI0NiwgMTA0LCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDIyMiwgMjQxLCAyNDYsIDEwNCwgMjQxLCAKLSAgICAyNTUsIDIsIDI1MiwgMTM5LCAyMzMsIDM3LCA5NywgODAsIDExNywgMTQwLCA3NCwgMjE0LCAxNTMsIDgwLCAxNDAsIDY0LCAKLSAgICAyNDYsIDEwNCwgNzQsIDE0MCwgODAsIDExNywgOTcsIDc0LCAxNDAsIDIyNiwgNzAsIDI1MywgMjQ3LCAyMTQsIDE1MywgCi0gICAgMjI2LCA3MCwgMjUzLCAyNDcsIDk3LCAyMjYsIDcwLCAyNTMsIDI0NywgMjQ2LCAxMDQsIDIyNiwgNzAsIDI1MywgMjQ3LCAKLSAgICAxNDAsIDI0MSwgMjU1LCAxMTcsIDk3LCAyNDEsIDI1NCwgOTcsIDI0MSwgMjU1LCAxMTcsIDE0MCwgMjQxLCAyNTQsIDE0MCwgCi0gICAgNTIsIDgwLCAyLCA5MSwgNDMsIDQ0LCA1MiwgODAsIDIsIDkxLCA5NywgNTIsIDgwLCAyLCA5MSwgMTQwLCA1MiwgNzQsIAotICAgIDIxNCwgMTUzLCA1MiwgNzQsIDk3LCA1MiwgNzQsIDI0NiwgMTA0LCA1MiwgNzQsIDQzLCA0NCwgNTIsIDc0LCAxMjAsIDEyNCwgCi0gICAgNTIsIDc0LCAyMjgsIDU2LCAyMTIsIDksIDUyLCA3NCwgMjI4LCA1NiwgMjQ1LCAyMjAsIDUyLCA3NCwgMjE5LCAyOCwgMjQ1LCAKLSAgICAyMjAsIDUyLCA3NCwgMjE5LCAyOCwgMjEyLCA5LCA1MiwgNzQsIDE0MCwgMjE1LCAyMTEsIDc0LCA5NywgMjE1LCAyMTEsIAotICAgIDc0LCAxNDAsIDIxOCwgMjMwLCA3NCwgOTcsIDIxOCwgMjMwLCA3NCwgMjE0LCAxNTMsIDgwLCAyLCA1MiwgOTEsIDI0NiwgCi0gICAgMTA0LCA4MCwgMiwgNTIsIDkxLCAxNDAsIDI0OCwgMTU1LCA3NCwgMjE0LCAxNTMsIDI0OCwgMTU1LCA3NCwgOTcsIDI0OCwgCi0gICAgMTU1LCA3NCwgMjQ2LCAxMDQsIDI0OCwgMTU1LCA3NCwgMTQwLCA4MCwgMjE2LCA0MiwgMTMwLCA5NywgODAsIDIxNiwgNDIsIAotICAgIDEzMCwgMTQwLCA3MSwgNzQsIDIxNCwgMTUzLCA3MSwgNzQsIDk3LCA3MSwgNzQsIDI0NiwgMTA0LCA3MSwgNzQsIDIxNCwgCi0gICAgMTUzLCA3MSwgODAsIDI0MywgMjQzLCAxMzAsIDIxNCwgMTUzLCA3MSwgODAsIDIyNiwgMTk3LCAyMjUsIDIxNCwgMjE0LCAKLSAgICAxNTMsIDcxLCA4MCwgMjI2LCAxOTcsIDIyNSwgMjE1LCAyLCAyMDMsIDEzMCwgMjE0LCAxNTMsIDcxLCA4MCwgMjI2LCAxOTcsIAotICAgIDIyNSwgMjE1LCAyLCA2NywgMTMwLCAyMTQsIDE1MywgNzEsIDUyLCA3NCwgMjE0LCAxNTMsIDcxLCA1MiwgODAsIDIyNiwgCi0gICAgMTk3LCAyMjUsIDIxNCwgOTcsIDcxLCA4MCwgMjQzLCAyNDMsIDIxMiwgNTYsIDIyOCwgNTYsIDIxMiwgOSwgODAsIDIxNiwgCi0gICAgNDIsIDI0OSwgMTYwLCAyMTksIDI4LCAyNDUsIDIyMCwgODAsIDIxNiwgNDIsIDI0OSwgMTYwLCAxMjAsIDEyNCwgNzEsIDc0LCAKLSAgICA0NCwgODAsIDIsIDQsIDI1MCwgMzUsIDI0NiwgMTA0LCA4MCwgMTQwLCA2NCwgMjE0LCAxNTMsIDc0LCAxMzQsIDk3LCAyNTMsIAotICAgIDI0NywgMTQwLCA4MCwgMiwgNjcsIDkxLCA5NywgODAsIDIsIDY3LCA5MSwgNDMsIDQ0LCA4MCwgMiwgNjcsIDkxLCAxNDAsIAotICAgIDgwLCAyLCA1MiwgNjcsIDkxLCA5NywgODAsIDIsIDUyLCA2NywgOTEsIDQzLCA0NCwgODAsIDIsIDUyLCA2NywgOTEsIDE0MCwgCi0gICAgMjI2LCAxNzMsIDc0LCA5NywgMjI2LCAxNzMsIDc0LCA0MywgNDQsIDIyNiwgMTczLCA3NCwgMzEsIDI1NCwgMTU0LCAyNDksIAotICAgIDIxNCwgMjI1LCAyNTMsIDI0NywgMjMzLCAyMTYsIDE4NywgMjQ1LCAyNywgMjE2LCAxODcsIDI0NywgMTM4LCAyMjgsIDUyLCAKLSAgICAyNDUsIDI4LCAyNDUsIDE1MiwgMjIwLCAxMjcsIDIzNSwgMjQ1LCAyMjksIDIyMSwgMjQ1LCAxNzAsIDIyNiwgMjMxLCAyMjgsIAotICAgIDUyLCAyNTQsIDEyNCwgMjQ1LCAxNzAsIDIyNiwgMjMxLCA0LCAyNDUsIDE3MCwgMjI2LCAyMzEsIDI0OSwgMTg2LCAyNTMsIAotICAgIDIzOCwgMjMxLCA2MiwgMjQ3LCAxMzgsIDIyOCwgNTIsIDI0OSwgMTg4LCAyNTMsIDIzOCwgMjMxLCA2MiwgNCwgMjQ5LCAKLSAgICAxODYsIDI1MywgMjM4LCAyMzEsIDYyLCAyNDUsIDE0MywgNjQsIDIyNCwgMTcyLCAyMzAsIDI0LCAyMjQsIDE4MCwgMjMwLCAKLSAgICAyNCwgMjQ5LCAxNjUsIDIzMCwgMjQsIDIxOCwgNDAsIDIzMCwgMTgyLCA1MCwgMjMwLCAxODAsIDUwLCA1OSwgMjI1LCAyMiwgCi0gICAgMjQ3LCAxNjksIDIxOSwgOTUsIDIyMCwgMTI4LCAyMzAsIDE4MSwgMjUzLCAyMTcsIDIyNiwgMTY3LCAyMjIsIDIzNCwgMjI2LCAKLSAgICAxNjcsIDI1MSwgMTE0LCAyMjYsIDE2NywgNDIsIDIyMiwgMTkzLCAyNDksIDEwOSwgMjIyLCAxOTMsIDI0NCwgNCwgMjIyLCAKLSAgICAxOTMsIDIyNCwgMTY4LCAxMTEsIDIzNSwgMjM0LCA0NCwgMjU0LCAxMDksIDI1NCwgMTA5LCAyMzEsIDg4LCAyNTQsIDEwOSwgCi0gICAgMjE4LCAyNTUsIDI1NCwgMTA5LCAyNDcsIDE3MSwgMjQ3LCAxMzgsIDIyOCwgNTIsIDI0NywgMTc0LCAyMjYsIDgsIDExMSwgCi0gICAgMjI4LCA1MiwgMjI2LCA4LCAxMTEsIDIzMiwgMTQ2LCAyNTQsIDExOCwgMjMyLCAxNDYsIDIyNiwgMTU4LCAyMzUsIDE5OCwgCi0gICAgMjE0LCAxNzUsIDIzNSwgMjExLCA1MiwgMjM1LCAyMTEsIDIxNSwgMjExLCAyMzUsIDIxMSwgMjQ5LCAxODIsIDIzNSwgMjExLCAKLSAgICAyMTgsIDEzLCAyMzUsIDIxMSwgMjEzLCAxMjksIDIzNSwgMjExLCAyNTAsIDIsIDIzNSwgMjExLCAyNTAsIDIsIDI0OSwgCi0gICAgMTgyLCAyMzUsIDIxMSwgMjU0LCA4OCwgMjQ5LCAxODIsIDIzNSwgMjExLCAyMTYsIDE4NiwgMjUyLCA2NywgMjIzLCAxMzcsIAotICAgIDIyNCwgMTY5LCA1OSwgMjMwLCAxODEsIDI0NSwgMzMsIDI0MywgNDYsIDIyNCwgMTY5LCAyNDEsIDU3LCAyMTYsIDg5LCAKLSAgICAyMjYsIDE2NywgMjIzLCA0OSwgMTgyLCAyMzUsIDE5MywgMjMzLCA2NSwgMjIyLCA5MSwgMjE5LCAxNTcsIDIxMiwgMzUsIAotICAgIDIxMSwgMjAwLCAyMjQsIDE4MCwgMjI4LCA1MiwgMTgyLCAyMzAsIDE4MiwgMTgyLCAyNTMsIDIxMCwgMTI4LCAxMTEsIDIyOCwgCi0gICAgNTIsIDI1MywgMjEwLCAxMjgsIDExMSwgMjU0LCA0OCwgMTI4LCAxMTEsIDI1NCwgNDgsIDI1MSwgODgsIDIyOCwgNTIsIAotICAgIDI1NSwgNCwgMTI4LCAxMTEsIDIyOSwgMTAwLCAyNTQsIDQ4LCAyMjgsIDU5LCAyNTUsIDQsIDEyOCwgMTExLCAyNTQsIDE0OCwgCi0gICAgMTI4LCAxMTEsIDIyOCwgNTIsIDI1NCwgMTQ4LCAxMjgsIDExMSwgMjU0LCAxNDgsIDEyOCwgMTc3LCAxMjgsIDExMSwgMjE1LCAKLSAgICAyMTEsIDE4MiwgMjU0LCAxNTUsIDEyOCwgMTExLCAyNDUsIDk0LCAxMTEsIDI0MywgNDUsIDI0NSwgOTQsIDExMSwgMjQ3LCAKLSAgICAyMzQsIDI1MiwgMjMsIDI1NCwgNTAsIDIxNiwgMTk2LCAyMzIsIDIyMSwgMjQzLCA0NSwgMTI4LCAxMTEsIDI1NCwgNDgsIAotICAgIDEyOCwgMjE2LCA0MiwgMTc3LCAyMTYsIDE5NiwgMjM2LCAxNSwgMjI2LCAyMzEsIDIzNiwgMTUsIDY0LCAxNzcsIDI1NCwgCi0gICAgNDgsIDEyOCwgMTExLCAyNDksIDIyNywgMjQ1LCA5NywgMjQ1LCA5OCwgMjQ5LCAyMjYsIDIyMiwgMjM0LCAyMzYsIDAsIAotICAgIDEyOCwgMTExLCAyMjIsIDIzNCwgMTI4LCAxMTEsIDI0OSwgMTU0LCAxMTEsIDI0NSwgNjcsIDI0NSwgOTYsIDExMSwgMjE4LCAKLSAgICAxNTcsIDI0NSwgOTcsIDI0OCwgNTUsIDEyOCwgMTExLCAxMjgsIDIxNiwgNDIsIDI1MSwgNzgsIDI0OCwgNzIsIDIzMSwgODgsIAotICAgIDI1MSwgNzcsIDIyNCwgMTEsIDEyOCwgMTExLCAyMjgsIDUyLCAxMjgsIDExMSwgMjQwLCAxMDQsIDExMSwgMjI4LCA1MiwgCi0gICAgMjQwLCAxMDQsIDExMSwgMjE4LCAxMDksIDI0NSwgOTQsIDExMSwgMjMzLCAxNSwgMTc3LCAxMjgsIDExMSwgMjQyLCAxMzAsIAotICAgIDE3NywgMTI4LCAxMTEsIDIzMywgMTUsIDExNywgMTI4LCAxMTEsIDI0MiwgMTMwLCAxMTcsIDEyOCwgMTExLCAyMzMsIDE1LCAKLSAgICAyNTEsIDg4LCAyMjgsIDUyLCAxMjgsIDExMSwgMjQyLCAxMzAsIDI1MSwgODgsIDIyOCwgNTIsIDEyOCwgMTExLCAyMzAsIAotICAgIDk3LCAyMzMsIDE0LCAyMzAsIDk3LCAyNDIsIDEyOSwgMjUyLCAyMywgMjI4LCA1MiwgMjQ1LCA5NCwgMTExLCAyMjgsIDUyLCAKLSAgICAyMzMsIDE0LCAyMjgsIDUyLCAyNDIsIDEyOSwgMjI5LCAxMDAsIDIzMywgMTUsIDIyOCwgNTksIDEyOCwgMTExLCAyMjksIAotICAgIDEwMCwgMjQyLCAxMzAsIDIyOCwgNTksIDEyOCwgMTExLCAyMzMsIDE1LCAxNzcsIDI0NSwgOTQsIDExMSwgMjQyLCAxMzAsIAotICAgIDE3NywgMjQ1LCA5NCwgMTExLCAyMjksIDEwMCwgMjMzLCAxNSwgMjI4LCA1OSwgMjQ1LCA5NCwgMTExLCAyMjksIDEwMCwgCi0gICAgMjQyLCAxMzAsIDIyOCwgNTksIDI0NSwgOTQsIDExMSwgMjMzLCAxNSwgMTc3LCAyNDIsIDEyOSwgMjQyLCAxMzAsIDE3NywgCi0gICAgMjMzLCAxNCwgMjI5LCAxMDAsIDIzMywgMTUsIDIyOCwgNTksIDI0MiwgMTI5LCAyMjksIDEwMCwgMjQyLCAxMzAsIDIyOCwgCi0gICAgNTksIDIzMywgMTQsIDIyNCwgMjAyLCAyMTgsIDU1LCAyMjQsIDIwMywgMTc3LCAxMjgsIDExMSwgMjE4LCA1NiwgMTc3LCAKLSAgICAxMjgsIDExMSwgMjI0LCAyMDMsIDE3NywgMjQ1LCA5NCwgMTExLCAyMTgsIDU2LCAxNzcsIDI0NSwgOTQsIDExMSwgMjQ3LCAKLSAgICAxMzgsIDIyOCwgNTIsIDIyNCwgMjA1LCAyNDcsIDEzOCwgMjI4LCA1MiwgMjE4LCA1NywgMjE4LCA2NCwgMjI2LCAyMzEsIAotICAgIDIxOCwgMjIsIDIyNiwgMjMxLCAyMjgsIDUyLCAxMTUsIDIxOCwgNjQsIDIyNiwgMjMxLCAyMjgsIDUyLCAxMTUsIDIxOCwgCi0gICAgMjIsIDIyNiwgMjMxLCAyMTgsIDY0LCA2NCwgMTc3LCAxMjgsIDExMSwgMjE4LCAyMiwgNjQsIDE3NywgMTI4LCAxMTEsIAotICAgIDIyOSwgMTAwLCAxMTUsIDIxOCwgNjQsIDY0LCAyMjgsIDU5LCAxMjgsIDExMSwgMjI5LCAxMDAsIDExNSwgMjE4LCAyMiwgCi0gICAgNjQsIDIyOCwgNTksIDEyOCwgMTExLCAyMTgsIDY0LCA2NCwgMiwgMjI4LCA1MiwgMTI4LCAxMTEsIDIxOCwgMjIsIDY0LCAyLCAKLSAgICAyMjgsIDUyLCAxMjgsIDExMSwgMjMwLCA4MSwgMjMwLCA4MiwgMjMwLCA4MywgMjMwLCA4MiwgMjE0LCAxNzUsIDQyLCAyMzYsIAotICAgIDE1LCAyMjYsIDIzMSwgNDIsIDIyNiwgMTUwLCAyMjYsIDIzMSwgNDIsIDIzNiwgMTUsIDY0LCAxNzcsIDEyOCwgMTExLCA0MiwgCi0gICAgMjI2LCAxNTAsIDY0LCAxNzcsIDEyOCwgMTExLCA0MiwgMjUwLCAyNTEsIDQyLCAyNDksIDEwMiwgMzcsIDIyNSwgMjIsIDM3LCAKLSAgICAyMzAsIDE4MSwgMzcsIDIxNiwgODUsIDM3LCAyNDcsIDE2OSwgMjE5LCA5NSwgMzcsIDU5LCAyMjYsIDE2NywgMzcsIDIyMiwgCi0gICAgMjM0LCAyMjYsIDE2NywgMzcsIDI1MywgMjE3LCAyMjYsIDE2NywgMzcsIDI0NSwgOTcsIDM3LCAyNDgsIDE1NiwgOTIsIAotICAgIDIyNSwgMjIsIDkyLCAyMzAsIDE4MSwgOTIsIDIxNiwgODUsIDkyLCA1OSwgMjI2LCAxNjcsIDQ0LCAyMTcsIDg3LCA0MywgCi0gICAgMjE3LCA4NywgMTI0LCAyMTcsIDg3LCAxMjAsIDIxNywgODcsIDI1MywgMjIwLCAyMzAsIDE1NiwgMjE1LCAxOTEsIDI0NCwgCi0gICAgMjUsIDIxNSwgMjExLCA2NywgMjUyLCAxNDEsIDQ0LCAyMTUsIDkzLCA1MiwgNjcsIDI1MiwgMTQxLCA1MiwgNDQsIDIxNSwgCi0gICAgOTMsIDI0NywgMTM4LCAyMjgsIDUyLCAyMjQsIDE2MywgMjI4LCA1MiwgMjE1LCAxOTEsIDI0NywgMTM4LCAyMjgsIDUyLCAKLSAgICAyNDQsIDI2LCAyMjksIDEwMiwgNTIsIDY3LCAyNTIsIDE0MSwgNTIsIDQ0LCAyMTUsIDkzLCAyMjQsIDIwMywgMjE0LCAxODQsIAotICAgIDIyMywgOTEsIDIxOCwgNTYsIDIxNCwgMTg0LCAyMjMsIDkxLCAyMjgsIDU3LCAyMTgsIDc3LCAyMjYsIDIzMSwgMjQ5LCAKLSAgICAxODYsIDI1MywgMjM4LCAyMjgsIDU3LCAyMTgsIDc2LCAyMjgsIDU3LCAyMTgsIDc3LCA2NCwgMTc3LCAxMjgsIDExMSwgCi0gICAgMjQ5LCAxODYsIDI1MywgMjM4LCAyMjgsIDU3LCAyMTgsIDc3LCAxNzcsIDEyOCwgMTExLCAyMjYsIDE1MCwgMjI2LCAyMzEsIAotICAgIDIzNiwgMTUsIDIyNiwgMjMxLCAyMzAsIDg3LCAyNDEsIDIwMCwgMjQ5LCAxOTYsIDIzMSwgMTM3LCAyMzUsIDIwOCwgMjExLCAKLSAgICAxNDUsIDIyOSwgMjAyLCAyMjgsIDU4LCA0NCwgMjU0LCAxMTAsIDIsIDI1NCwgMjUsIDQ0LCAyMTUsIDIyNSwgMjMwLCAyNCwgCi0gICAgMjMyLCAxNDYsIDI1NCwgMTE4LCAyMzAsIDI0LCAyMzIsIDE0NiwgMjI2LCAxNTgsIDIzMCwgMjQsIDIzNSwgMTk4LCAyMzAsIAotICAgIDI0LCAyMTQsIDE3NSwgMjQ3LCAyNDksIDIyNiwgMTY3LCA1OSwgMjI2LCAxNjcsIDIxOCwgMTU3LCAyMjYsIDE2NywgMjQ3LCAKLSAgICAxNjksIDIxNiwgODUsIDI1MSwgMTY0LCA0MywgMjI4LCA1NywgMjQ0LCAxODEsIDIyMCwgMTQ5LCAyMjQsIDE4MCwgNDQsIAotICAgIDIyOCwgNTcsIDI0NCwgMTgxLCAyMjAsIDE0OSwgMjI0LCAxODAsIDQzLCAyMjAsIDE0OSwgMjI0LCAxODAsIDQ0LCAyMjAsIAotICAgIDE0OSwgMjI0LCAxODAsIDIyMywgNDksIDIxNiwgODksIDI0NSwgOTcsIDI0OSwgOTksIDIzMiwgMTQ2LCAyMjYsIDE1OCwgCi0gICAgMjQ5LCA5OSwgMjMyLCAxNDYsIDI1NCwgMTE4LCA1MiwgMjE4LCA2MywgNTIsIDIxOCwgMjEsIDUyLCAyMzUsIDE5OCwgNTIsIAotICAgIDIxNCwgMTc1LCAyMjUsIDQ3LCAxMjgsIDIyLCAyMjYsIDgsIDExMSwgMjMzLCAxNSwgMiwgMjQ3LCAxMjAsIDI0MiwgMTMwLCAKLSAgICAyLCAyNDcsIDEyMCwgMjEzLCAxODcsIDIzMCwgOTcsIDIzMywgMTQsIDIxMywgMTg3LCAyMzAsIDk3LCAyNDIsIDEyOSwgCi0gICAgMjMzLCAxNSwgMTI4LCAyMTYsIDQyLCAxNzcsIDI0MiwgMTI5LCAyNDIsIDEzMCwgMTI4LCAyMTYsIDQyLCAxNzcsIDIzMywgCi0gICAgMTQsIDEyOCwgMjE2LCA0MiwgMTc3LCAyMzMsIDE0LCAxMjgsIDIxNiwgNDIsIDE3NywgMjQyLCAxMjksIDEyOCwgMjE2LCAKLSAgICA0MiwgMTc3LCAyMjQsIDIwMiwgMTI4LCAyMTYsIDQyLCAxNzcsIDIxOCwgNTUsIDI0NywgMTM4LCAyMjgsIDUyLCAyMjQsIAotICAgIDIwNiwgMTc3LCAyNDUsIDk5LCAyNDcsIDEzOCwgMjI4LCA1MiwgMjE4LCA1OCwgMTc3LCAyNDUsIDk5LCAyMjgsIDUyLCA0MiwgCi0gICAgMjM2LCAxNSwgNjQsIDE3NywgMTI4LCAxMTEsIDIyOCwgNTIsIDQyLCAyMjYsIDE1MCwgNjQsIDE3NywgMTI4LCAxMTEsIDQyLCAKLSAgICAyMzYsIDE1LCA2NCwgMTc3LCAyMjgsIDUyLCAxMjgsIDExMSwgNDIsIDIyNiwgMTUwLCA2NCwgMTc3LCAyMjgsIDUyLCAxMjgsIAotICAgIDExMSwgMjMzLCAxNSwgMjUxLCA4OCwgMjI4LCA1MiwgMjQ1LCA5NCwgMTExLCAyNDIsIDEzMCwgMjUxLCA4OCwgMjI4LCA1MiwgCi0gICAgMjQ1LCA5NCwgMTExLCAyMjQsIDIwMywgMjUxLCA4OCwgMjI4LCA1MiwgMjQ1LCA5NCwgMTExLCAyMTgsIDU2LCAyNTEsIDg4LCAKLSAgICAyMjgsIDUyLCAyNDUsIDk0LCAxMTEsIDIyOCwgNTIsIDIyOCwgNTcsIDIxOCwgNzcsIDIyNiwgMjMxLCAyNDcsIDEzOCwgCi0gICAgMjI4LCA1MiwgMjQ5LCAxODgsIDI1MywgMjM4LCAyMjgsIDU3LCAyMTgsIDc2LCAyMjgsIDUyLCAyMjgsIDU3LCAyMTgsIDc3LCAKLSAgICA2NCwgMTc3LCAxMjgsIDExMSwgMjQ3LCAxMzgsIDIyOCwgNTIsIDI0OSwgMTg4LCAyNTMsIDIzOCwgMjI4LCA1NywgMjE4LCAKLSAgICA3NywgMTc3LCAyNDUsIDk5LCA2NywgMjQ1LCAxNjMsIDIzMCwgMjIyLCAyMDMsIDI0NSwgMTYzLCAxMjAsIDQ0LCAyNDcsIAotICAgIDI1NSwgMjQ1LCAxNjMsIDEyNCwgNDQsIDI0NywgMjU1LCAyNDUsIDE2MywgMjQ1LCAxNzAsIDY0LCAyLCAxOTksIDIwMywgCi0gICAgOTEsIDI0NSwgMTcwLCA2NCwgMiwgNjcsIDI1MiwgMTQxLCAyNTMsIDIwNywgMjQ1LCAxNDMsIDY0LCAyMDMsIDkxLCA0LCAKLSAgICAyNDUsIDE3MCwgNjQsIDIsIDY3LCAyNTIsIDE0MSwgMjUzLCAyMDcsIDI0NSwgMTQzLCA2NCwgMjAzLCA5MSwgMjQ1LCAxNzAsIAotICAgIDY0LCAyLCA1OSwgNDgsIDI0NSwgMTcwLCA2NCwgMiwgMjI2LCAxMjMsIDQsIDI0NSwgMTcwLCA2NCwgMiwgMjI2LCAxMjMsIAotICAgIDI0NSwgMTcwLCA2NCwgMiwgMjE0LCAxODMsIDI0NSwgMTcwLCA2NCwgMiwgMTEzLCAyMDMsIDIxOCwgOTAsIDI0OSwgMTg2LCAKLSAgICAyLCAxOTksIDIwMywgOTEsIDI0OSwgMTg2LCAyLCA2NywgMjUyLCAxNDEsIDI1MywgMjA3LCAyNDUsIDE0MywgNjQsIDIwMywgCi0gICAgOTEsIDQsIDI0OSwgMTg2LCAyLCA2NywgMjUyLCAxNDEsIDI1MywgMjA3LCAyNDUsIDE0MywgNjQsIDIwMywgOTEsIDI0OSwgCi0gICAgMTg2LCAyLCAyMjYsIDEyMywgNCwgMjQ5LCAxODYsIDIsIDIyNiwgMTIzLCAyMTAsIDE2MCwgMTg3LCAyNTIsIDE3MywgMjMxLCAKLSAgICA2MSwgMjQ3LCAyNTAsIDUwLCAyNDUsIDE3MiwgNzQsIDI0MCwgMjM0LCAxMjAsIDI1MywgMjQ5LCAxMjQsIDI1MywgMjQ5LCAKLSAgICAyMjQsIDE3NSwgMjI1LCAxNjUsIDIxMiwgMzIsIDIzMiwgMjEzLCA0MywgMjUwLCAxODEsIDQ0LCAyNTAsIDE4MSwgNDMsIAotICAgIDI0NCwgNTcsIDQ0LCAyNDQsIDU3LCAyNTEsIDE3NSwgNDQsIDI0OSwgMTMyLCAyNTEsIDE3NSwgNDMsIDI0OSwgMTMyLCAKLSAgICAyMTYsIDE0LCA0NCwgMjQ5LCAxMzIsIDIxNiwgMTQsIDQzLCAyNDksIDEzMiwgMjIzLCA0OSwgMjI4LCA1MiwgNTAsIDQyLCAKLSAgICAyMzIsIDEwNCwgMjU0LCAyNSwgMjIxLCAxNjQsIDIyMSwgMTcxLCAyMTcsIDEsIDIyMywgMTIwLCAyMjQsIDI0MSwgMjM1LCAKLSAgICAyMzgsIDIxMywgMTY1LCAyMTgsIDIzNCwgMjI1LCA0MSwgNjQsIDIzNSwgMjA3LCA1MCwgMjE1LCA5NCwgMjI4LCA1MiwgNTAsIAotICAgIDIxMiwgNDIsIDI0MCwgMjM2LCAyMTYsIDE0LCA0MywgMjQ5LCAxNjAsIDIxNiwgMTQsIDQ0LCAyNDksIDE2MCwgMjUxLCAKLSAgICAxNzUsIDQzLCAyNDksIDE2MCwgMjUxLCAxNzUsIDQ0LCAyNDksIDE2MCwgMjE2LCAxNCwgMTYzLCAyMzUsIDIxMSwgMjUxLCAKLSAgICAxNzUsIDE2MywgMjM1LCAyMTEsIDI0MywgMjQwLCAyMTksIDc1LCAxMjAsIDI1MywgMjUwLCAyNTIsIDI0LCAxMTMsIDIwMywgCi0gICAgMjUyLCAxMjksIDIyNiwgMTYwLCAyMzQsIDEzOCwgMjQ1LCA5MCwgMjE2LCA0MiwgMjE2LCAxOTYsIDIyMiwgMjUxLCAyMTEsIAotICAgIDE3OSwgMjM2LCAwLCAxMTUsIDIyMywgMTE3LCAyNTEsIDE2MywgMjM0LCAxMzcsIDIzMywgNDIsIDI1NCwgMTEwLCAxMjcsIAotICAgIDIyMiwgMjQ3LCAyNTQsIDExMCwgMTI3LCAyNDUsIDkwLCAyMTYsIDQyLCAyMTYsIDE5NiwgMjMzLCA0NiwgMjUyLCAzNSwgCi0gICAgMjIyLCAyMzMsIDI0OSwgNzAsIDI1NCwgMTU1LCAyNTQsIDEsIDIxNywgMTgxLCAyMTYsIDQsIDIyMiwgMTIzLCAyNDcsIAotICAgIDIxNSwgMjI2LCAxNTEsIDI0OSwgMTk4LCAyMTcsIDUyLCAyMTksIDg2LCAyNDksIDE1MSwgMjQ5LCAxNTAsIDI1NCwgNjYsIAotICAgIDI0MywgMjI1LCAxNiwgMjQwLCAxNTEsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjE4LCAyMjgsIDIyNCwgMjcsIDI1NCwgCi0gICAgNjYsIDI0MywgMjI1LCAxNiwgMjI0LCAyOCwgMjQ1LCA5OSwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMjQsIDI4LCAyNDcsIAotICAgIDE3NCwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMjQsIDI4LCAyNDcsIDI0OCwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAKLSAgICAyMjQsIDI4LCAyMzUsIDU2LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjgsIDI1MCwgMzUsIDI1NCwgNjYsIDI0MywgCi0gICAgMjI1LCAxNiwgMjUwLCAzNiwgMjE4LCAxMzUsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjUwLCAzNiwgMjM1LCA1NiwgMjU0LCAKLSAgICA2NiwgMjQzLCAyMjUsIDE2LCAyMTksIDk2LCAxMzAsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjUyLCAxODEsIDEzMCwgCi0gICAgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMjQsIDI4LCAyMTksIDk1LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjgsIAotICAgIDI1MiwgMTgwLCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjgsIDIzMywgMTQsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgCi0gICAgMjI0LCAyOCwgMjQyLCAxMjksIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMTQwLCAyMTQsIDE5LCAyNTQsIDY2LCAyNDMsIAotICAgIDIyNSwgMTYsIDk3LCAyMTQsIDE5LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjgsIDE0MCwgNzQsIDI1NCwgNjYsIAotICAgIDI0MywgMjI1LCAxNiwgMjI0LCAyOCwgOTcsIDc0LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDI1MCwgMzYsIDI1MiwgMTgwLCAKLSAgICAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDEyNCwgMjE3LCA4OCwgMjE0LCAxODMsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgCi0gICAgMjQ4LCA1NSwgMjE4LCAxMzUsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjI0LCAyOCwgMTI0LCAyNTAsIDIzOCwgMjU0LCAKLSAgICA2NiwgMjQzLCAyMjUsIDE2LCAyMjQsIDI4LCAyNDgsIDU0LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDEyNCwgMjE3LCA4OCwgCi0gICAgMjM1LCA1NiwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMTQsIDE1MywgMjE0LCAxOSwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAKLSAgICAyMjQsIDI4LCAyMTQsIDE1MywgNzQsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMTIwLCAyMTcsIDg4LCAyMjYsIDEyMywgCi0gICAgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyNDgsIDY2LCAyMTgsIDEzNSwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMjQsIDI4LCAKLSAgICAxMjAsIDI1MCwgMjM4LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjgsIDI0OCwgNjUsIDI1NCwgNjYsIDI0MywgCi0gICAgMjI1LCAxNiwgMTIwLCAyMTcsIDg4LCAyMzUsIDU2LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDI0NiwgMTA0LCAyMTQsIDE5LCAKLSAgICAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjgsIDI0NiwgMTA0LCA3NCwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMjMsIAotICAgIDI1MywgMjE0LCAxODMsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjQ4LCA1NSwgMjE0LCAxODMsIDI1NCwgNjYsIDI0MywgCi0gICAgMjI1LCAxNiwgMjQ3LCAyNDksIDIxNCwgMTgzLCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIzNSwgNTcsIDIxNCwgMTgzLCAKLSAgICAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDI1MCwgMzYsIDIxNCwgMTgzLCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDEyMCwgCi0gICAgMjIwLCA1LCAyMzUsIDU2LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyMywgMjUzLCAyMjQsIDI3LCAyNTQsIDY2LCAyNDMsIAotICAgIDIyNSwgMTYsIDI1MCwgMzYsIDIxOCwgMTU2LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjgsIDI0OSwgMjI2LCAKLSAgICAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDEyMCwgMjE3LCA4OCwgMjQ4LCAxLCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDI0OCwgCi0gICAgNjYsIDI0OCwgMSwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMTgsIDE1NywgMjQ4LCAxLCAyNTQsIDY2LCAyNDMsIDIyNSwgCi0gICAgMTYsIDIzNSwgNTcsIDI0OCwgMSwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyNTAsIDM2LCAyNDgsIDEsIDI1NCwgNjYsIAotICAgIDI0MywgMjI1LCAxNiwgMTI0LCAyMjAsIDUsIDIxOCwgMTM1LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDQzLCAyMjAsIDUsIAotICAgIDIxOCwgMTM1LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIxNiwgODksIDI0OCwgMSwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAKLSAgICAyNDIsIDEzMCwgMjQ4LCAxLCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDI0OSwgMjIwLCAxMzAsIDI1NCwgNjYsIDI0MywgCi0gICAgMjI1LCAxNiwgMjQ4LCA2NiwgMTgyLCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIxMCwgMzQsIDI1NCwgNjYsIDI0MywgMjI1LCAKLSAgICAxNiwgMjE4LCAxMzYsIDE4MiwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMjAsIDE1MSwgMjE0LCAxODMsIDI1NCwgNjYsIAotICAgIDI0MywgMjI1LCAxNiwgMjI0LCAyOCwgMjI4LCA1MiwgMjQ1LCA5OSwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMjQsIDI4LCAKLSAgICAyMjQsIDEyLCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDEyNCwgMjUwLCAyMzksIDE4MiwgMjU0LCA2NiwgMjQzLCAyMjUsIAotICAgIDE2LCAxMjAsIDI1MCwgMjM5LCAxODIsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjM1LCAxODUsIDI1NCwgNjYsIDI0MywgCi0gICAgMjI1LCAxNiwgMjIzLCAzNywgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMjYsIDIwMSwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAKLSAgICAyNTQsIDE0NCwgMjE0LCAxODMsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjQ1LCAxMDEsIDIxNCwgMTgzLCAyNTQsIDY2LCAKLSAgICAyNDMsIDIyNSwgMTYsIDIzNSwgMTg2LCAyMTQsIDE4MywgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMjYsIDIwMiwgMjE0LCAKLSAgICAxODMsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjU0LCAxNDMsIDIyOCwgNTIsIDI1MCwgMTMwLCA3OCwgNDQsIDI1NCwgCi0gICAgMTEwLCAyLCAyNDYsIDEwNCwgMjEwLCAzNSwgNzQsIDIxOSwgMjM1LCAyMDQsIDI1MSwgMTYzLCAyNTIsIDQ1LCA4NywgNjcsIAotICAgIDIzMiwgMjE0LCAyLCAyMzAsIDIyNCwgMjQ3LCAxMjAsIDIzNSwgMjE2LCA4NywgMjQ5LCAxODMsIDIxNCwgMTgxLCA4NywgCi0gICAgMjQ3LCAxODksIDIxNCwgMTgxLCA4NywgMjQ1LCAxNTQsIDg3LCAyNDksIDIxMCwgODcsIDcxLCA0MiwgMiwgMjUwLCAxNzUsIAotICAgIDY3LCAyMzIsIDIxMywgMjQ1LCAxMzAsIDg3LCAyNTQsIDEzOSwgMjM0LCAxMzksIDg3LCAyNDEsIDIxMywgODcsIDM3LCAKLSAgICAyMDMsIDI1MiwgMTQxLCAyLCAyMjgsIDUwLCAzNywgMjE1LCAyMjYsIDI0NiwgMTA2LCAyNTEsIDEzNSwgMjUwLCAzNiwgMiwgCi0gICAgMjI4LCA1NCwgNzQsIDIxNCwgMTc5LCA4NywgMjMwLCAxMzcsIDg3LCAyNDAsIDE2NCwgODcsIDIyNiwgMTc0LCAyNDIsIDU5LCAKLSAgICA4NywgMjI2LCAxNzQsIDIzMywgMTQ3LCA4NywgMjI1LCAyNDQsIDg3LCAyMjUsIDI0MywgODcsIDI0NywgMTk3LCAyNDksIAotICAgIDk3LCAxNiwgMjQ0LCAyMCwgMTA1LCAyMTksIDUwLCA4NywgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMjQsIDI3LCAyNDgsIAotICAgIDgzLCAyMjAsIDEzOCwgMjM0LCAxMzksIDg3LCAyMjQsIDE5MiwgMjI2LCA3NSwgMjI5LCA4MiwgMjI2LCA3NSwgMjI0LCAKLSAgICAxODgsIDIyMSwgMTg5LCA4NywgMjUwLCAxNywgMjIxLCAxODksIDg3LCA0MywgMjI2LCA0LCAyMTQsIDE2MCwgMTAzLCA0MywgCi0gICAgMjI2LCA0LCAyNDUsIDIxLCA0MywgMjI2LCA0LCAyMzIsIDEwOCwgMTAzLCA0NCwgMjI2LCA0LCAyMTQsIDE2MCwgMTAzLCAKLSAgICA0NCwgMjI2LCA0LCAyNDUsIDIxLCA0NCwgMjI2LCA0LCAyMzIsIDEwOCwgMTAzLCA0MywgNDIsIDI1MSwgMTU4LCAyMTQsIAotICAgIDE2MCwgMjQ5LCAxNjAsIDQzLCA0MiwgMjUxLCAxNTgsIDI0NSwgMjEsIDQzLCA0MiwgMjUxLCAxNTgsIDIzMiwgMTA4LCAKLSAgICAyNDksIDE2MCwgNDQsIDQyLCAyNTEsIDE1OCwgMjE0LCAxNjAsIDI0OSwgMTYwLCA0NCwgNDIsIDI1MSwgMTU4LCAyNDUsIAotICAgIDIxLCA0NCwgNDIsIDI1MSwgMTU4LCAyMzIsIDEwOCwgMjQ5LCAxNjAsIDQzLCAyNDksIDk5LCAyNTEsIDE1OCwgMjE0LCAKLSAgICAxNjAsIDEwMywgNDMsIDI0OSwgOTksIDI1MSwgMTU4LCAyMzAsIDIyNCwgMjI1LCAxMDEsIDQzLCAyNDksIDk5LCAyNTEsIAotICAgIDE1OCwgMjMyLCAxMDgsIDEwMywgMjQ5LCA5OSwgMjUxLCAxNTgsIDI0NSwgMjEsIDQ0LCAyNDksIDk5LCAyNTEsIDE1OCwgCi0gICAgMjE0LCAxNjAsIDEwMywgNDQsIDI0OSwgOTksIDI1MSwgMTU4LCAyMzAsIDIyNCwgMjI1LCAxMDEsIDQ0LCAyNDksIDk5LCAKLSAgICAyNTEsIDE1OCwgMjMyLCAxMDgsIDEwMywgMjM1LCAyMTIsIDI0NSwgMjEsIDIwMywgMjMyLCAyMTQsIDI0NSwgMjEsIDIxNCwgCi0gICAgMTYwLCA0MywgMTc3LCAyMzIsIDEwOCwgNDQsIDI0OSwgOTksIDI1MSwgMTU4LCAyMjEsIDE3MiwgMjE0LCAxNjAsIDQ0LCAKLSAgICAxNzcsIDIzMiwgMTA4LCA0MywgMjQ5LCA5OSwgMjUxLCAxNTgsIDIyMSwgMTcyLCAyMTgsIDQxLCAyMTYsIDEzLCAyMTgsIAotICAgIDQxLCAyNTEsIDE3NCwgMjE2LCAxNCwgNDIsIDEyNywgMjUxLCAxNzUsIDQyLCAxMjcsIDI1MSwgMTc1LCA0MiwgMjUxLCAKLSAgICAxNTgsIDExNywgMjE2LCAxNCwgNDIsIDEyNywgMzQsIDE2LCAyNTEsIDE3NCwgNDMsIDY3LCA5MywgMjMyLCAyMTMsIDQ0LCAKLSAgICA2NywgOTMsIDIzMiwgMjEzLCAyMDMsIDIyMSwgMjA1LCAyMzIsIDIxMiwgMjAzLCAyMjEsIDIwNSwgMjMyLCAyMTEsIDIwMywgCi0gICAgMjIxLCAyMDUsIDIzMiwgMjEwLCAyMDMsIDIyMSwgMjA1LCAyMzIsIDIwOSwgMjQ4LCA0NiwgMTYsIDE5MiwgNjcsIDIyLCAKLSAgICAyMTYsIDE0LCAyMjIsIDI1MSwgMjQ4LCA0NiwgMTYsIDE5MiwgNjcsIDIyLCAyNTEsIDE3NSwgMjIyLCAyNTEsIDI0OCwgNDYsIAotICAgIDE2LCAxOTIsIDY3LCAyLCAyNTAsIDM1LCAyNDgsIDQ2LCAxNiwgMTkyLCAxMjQsIDIyLCAyMDMsIDIsIDI1MCwgMzUsIDI0OCwgCi0gICAgNDYsIDE2LCAxOTIsIDEyMCwgMjIsIDIwMywgMiwgMjUwLCAzNSwgMjQ4LCA0NiwgMTYsIDE5MiwgNjcsIDIsIDIxNSwgMjI1LCAKLSAgICAyNDgsIDQ2LCAxNiwgMTkyLCAxMjQsIDIyLCAyMDMsIDIsIDIxNSwgMjI1LCAyNDgsIDQ2LCAxNiwgMTkyLCAxMjAsIDIyLCAKLSAgICAyMDMsIDIsIDIxNSwgMjI1LCAyNDgsIDQ2LCAxNiwgMTkyLCA2NywgMjIsIDIxMiwgMzUsIDI0OCwgNDYsIDE2LCAxOTIsIAotICAgIDEyNCwgMjIsIDIwMywgMiwgMjEyLCAzNSwgMjQ4LCA0NiwgMTYsIDE5MiwgMTIwLCAyMiwgMjAzLCAyLCAyMTIsIDM1LCAKLSAgICAyNDgsIDQ2LCAxNiwgMTkyLCAxMjQsIDIyLCAyNDEsIDQ0LCAyNDgsIDQ2LCAxNiwgMTkyLCAxMjAsIDIyLCAyNDEsIDQ0LCAKLSAgICAyNDgsIDQ2LCAxNiwgMTkyLCA2NywgMjIsIDIxNiwgMTQsIDIzMywgNDYsIDI0OCwgNDYsIDE2LCAxOTIsIDY3LCAyMiwgCi0gICAgMjUxLCAxNzUsIDIzMywgNDYsIDQyLCAyNDQsIDMyLCAyMjMsIDU0LCA4NywgMjQ1LCAxODIsIDg3LCA2NywgMjMyLCAyMTQsIAotICAgIDI0NSwgMjEsIDIzMSwgMzMsIDI1MSwgMTQ2LCAyMzEsIDMzLCAxOTksIDExNywgMjE5LCAyNTAsIDIzMSwgMzMsIDIxOSwgCi0gICAgMjUxLCAxMTcsIDIzMiwgMTM3LCAyMzEsIDMzLCAxOTksIDExNywgMTEzLCAyMTksIDIzNywgMjMxLCAzMywgMTEzLCAyMTksIAotICAgIDIzOCwgMTE3LCAyMzIsIDEzNywgMjMxLCAzMywgMTEzLCAyMTksIDIzOCwgMjM1LCA2NCwgMjMxLCAzMywgMjE1LCAyMDgsIAotICAgIDIzMSwgMzMsIDIxNiwgMjIzLCAyMzEsIDMzLCAyMjUsIDE4OCwgMjQ1LCAyMjQsIDI0MiwgMTIyLCAyNDMsIDIxOSwgMjE2LCAKLSAgICAxNCwgMjI2LCAzLCAyNTEsIDE3NSwgMjI2LCAzLCAyMTYsIDE0LCAyNDksIDk5LCAxMjcsIDI1MSwgMTc1LCAyNDksIDk5LCAKLSAgICAxMjcsIDIxNiwgMTQsIDIxNiwgNiwgMjIwLCA1MywgMTI3LCAyNTEsIDE3NSwgMjE2LCA2LCAyMjAsIDUzLCAxMjcsIDcxLCAKLSAgICAyMTUsIDIzOSwgMjUyLCAzNSwgMjIyLCAyMzQsIDIsIDI1MCwgMzUsIDIxOCwgMTIwLCAyNDQsIDY0LCAyNTUsIDE3LCAyNDksIAotICAgIDk2LCAyNDUsIDE3MSwgMjM1LCAxOTgsIDI0OCwgODMsIDI0NSwgMjQsIDg3LCA4NSwgMjIyLCAyNDcsIDUyLCAyMTUsIDIyNSwgCi0gICAgODUsIDIzMywgNDIsIDUyLCAyMTUsIDIyNSwgODUsIDIxNCwgMTYyLCA1MiwgMjE1LCAyMjUsIDg1LCAyNDYsIDEwNSwgNTIsIAotICAgIDIxNSwgMjI1LCA4NSwgMjIyLCAyNDcsIDUyLCAyMTUsIDIyNiwgMiwgNjcsIDEzMCwgODUsIDIzMywgNDIsIDUyLCAyMTUsIAotICAgIDIyNiwgMiwgNjcsIDEzMCwgODUsIDIyMiwgMjQ3LCAyMTUsIDIyNiwgMiwgNTIsIDY3LCAxMzAsIDI1NCwgMTczLCAyNTAsIAotICAgIDMsIDIxOCwgMTI2LCAyMTYsIDg2LCAyNTAsIDMsIDI0MCwgMjM3LCAyLCAyNDQsIDUwLCAyMjEsIDI0MSwgMTYsIDMxLCAKLSAgICAyMjcsIDIwMiwgMTYsIDMxLCAyMTgsIDE1MiwgNjQsIDI0MSwgMjMzLCAxNiwgMzEsIDIxOCwgMTUyLCA2NCwgMjE2LCAyMTIsIAotICAgIDE2LCAzMSwgMjQ1LCAxNDMsIDY0LCAyMTYsIDIxMiwgMTYsIDMxLCAyNDUsIDE0MywgNjQsIDIxNSwgMjQzLCAxNiwgMzEsIAotICAgIDI0NSwgMTMyLCAxNiwgMzEsIDI1NSwgNywgMTYsIDMxLCAyNTIsIDQ0LCAxNiwgMzEsIDI1MiwgMTc5LCAxNiwgMzEsIDIwMywgCi0gICAgMjE3LCA4OSwgMTYsIDMxLCAyMzIsIDIxNCwgMjQ0LCAxNDUsIDE2LCAzMSwgNjcsIDIxNywgODksIDE2LCAzMSwgMjQ0LCAKLSAgICAyMCwgMjQ0LCAxNDUsIDE2LCAzMSwgMjUwLCAyMzAsIDIyMywgNTMsIDE2LCAzMSwgMjIwLCAyOCwgMjI2LCAxMzAsIDE2LCAKLSAgICAzMSwgMjIwLCAyOCwgMjM1LCAyNTUsIDE2LCAzMSwgMjQ4LCAxNTEsIDIzMiwgMjA0LCAyNDUsIDc3LCAxNiwgMzEsIDI0OCwgCi0gICAgMzEsIDI0OSwgMTc4LCAxMTAsIDE2LCAzMSwgMjQ4LCAzMSwgMjQ5LCAxNzgsIDEwNSwgMTYsIDMxLCAyNDgsIDMxLCAyNDksIAotICAgIDE3OCwgMTU4LCAxNiwgMzEsIDI0OCwgMzEsIDI0OSwgMTc4LCAxNjEsIDE2LCAzMSwgMTUyLCAyNTUsIDcsIDE2LCAzMSwgCi0gICAgMjE3LCAxNzcsIDIzNiwgNjIsIDE2LCAzMSwgMjQ1LCAxNDMsIDY0LCAyMTUsIDI0NCwgMjUxLCAyMTMsIDE2LCAzMSwgMjUxLCAKLSAgICA1LCAxNiwgMzEsIDI0NSwgMTQzLCA2NCwgMjMxLCA4MSwgMTYsIDMxLCAyMTgsIDYxLCAxNiwgMzEsIDI0NSwgNzcsIDE2LCAKLSAgICAzMSwgMjQ0LCAxMDcsIDIyMCwgMTM3LCAxNiwgMzEsIDI0MiwgMTIxLCAyMjAsIDEzNywgMTYsIDMxLCAyMjMsIDEyMSwgCi0gICAgMjIwLCAxMzcsIDE2LCAzMSwgMjE0LCAxNzQsIDIyMCwgMTM3LCAxNiwgMzEsIDIxOSwgMTgsIDE2LCAzMSwgMjQ4LCA2MywgCi0gICAgMjUxLCAyMTYsIDg3LCAyMDQsIDI1MSwgMTYzLCAxNiwgMzEsIDIyOSwgODUsIDE2LCAzMSwgMjQ4LCA2NCwgMjQ0LCAyMCwgCi0gICAgMTA1LCAxNiwgMzEsIDIxOCwgNjIsIDI0NCwgMjAsIDEwNSwgMjI2LCAyNDEsIDEwMywgMjI2LCAyNDEsIDI1MCwgMTUyLCAKLSAgICAyMjYsIDI0MSwgMjQ0LCAyMywgMjI2LCAyNDEsIDIzNSwgMTkzLCAyNDQsIDIzLCAyMjYsIDI0MSwgMjUyLCA0MiwgMjUxLCAKLSAgICAxMjQsIDIyNiwgMjQxLCAyNTEsIDE3MCwgMjE2LCAxMTEsIDIyNiwgMjQxLCAyNTEsIDE1NSwgMjUyLCAxNDYsIDI0MCwgCi0gICAgMTAzLCAyMjYsIDI0MSwgMjU0LCAxMjcsIDY0LCAyNTAsIDEyOSwgMjI2LCAyNDEsIDI0OCwgMTU2LCAyMjYsIDI0MSwgMjQ5LCAKLSAgICA4NywgMjU1LCAxMSwgMjI3LCAyMDAsIDIyNiwgMjQxLCA1MiwgMjUyLCAxODAsIDM3LCAyMSwgMTEwLCAzNywgMjEsIDEwNSwgCi0gICAgMzcsIDIxLCAxNTgsIDM3LCAyMSwgMTYxLCAzNywgMjEsIDE4OSwgMzcsIDIxLCAxOTQsIDM3LCAyMSwgMTk4LCAzNywgMjEsIAotICAgIDE5NSwgMzcsIDIxLCAyMDAsIDM3LCA1NCwgMjE2LCAyNDcsIDM3LCA1NCwgMjQ1LCAxNjcsIDM3LCA1NCwgMjE1LCA3NiwgCi0gICAgMzcsIDU0LCAyMTYsIDE2NCwgMzcsIDU0LCAyNDQsIDUsIDM3LCA1NCwgMjQ0LCAxMTgsIDM3LCA1NCwgMjE5LCAxMTksIDM3LCAKLSAgICA1NCwgMjIwLCAxMTksIDM3LCA1NCwgMjQ1LCAxOTAsIDM3LCA1NCwgMjI4LCAxOTcsIDM3LCA1NCwgMjE1LCA3MywgODgsIAotICAgIDIxLCAxMTAsIDg4LCAyMSwgMTA1LCA4OCwgMjEsIDE1OCwgODgsIDIxLCAxNjEsIDg4LCAyMSwgMTg5LCA4OCwgMjEsIDE5NCwgCi0gICAgODgsIDIxLCAxOTgsIDg4LCAyMSwgMTk1LCA4OCwgMjEsIDIwMCwgODgsIDU0LCAyMTYsIDI0NywgODgsIDU0LCAyNDUsIAotICAgIDE2NywgODgsIDU0LCAyMTUsIDc2LCA4OCwgNTQsIDIxNiwgMTY0LCA4OCwgNTQsIDI0NCwgNSwgODgsIDU0LCAyNDQsIDExOCwgCi0gICAgODgsIDU0LCAyMTksIDExOSwgODgsIDU0LCAyMjAsIDExOSwgODgsIDU0LCAyNDUsIDE5MCwgODgsIDU0LCAyMjgsIDE5NywgCi0gICAgODgsIDU0LCAyMTUsIDczLCAyMSwgMTIzLCAyNDMsIDIyOSwgMjE4LCAxMjksIDIxLCAxMTMsIDI0MywgMjI5LCAyMTgsIAotICAgIDEyOSwgMjEsIDEzNCwgMjQzLCAyMjksIDIxOCwgMTI5LCAyMSwgMjQ0LCAxMSwgMjQzLCAyMjksIDIxOCwgMTI5LCAyMSwgCi0gICAgMjQ0LCA4MSwgMjQzLCAyMjksIDIxOCwgMTI5LCAyMSwgMjE5LCAxMjUsIDI0MywgMjI5LCAyMTgsIDEyOSwgMjEsIDIyMCwgCi0gICAgMTIyLCAyNDMsIDIyOSwgMjE4LCAxMjksIDIxLCAyNDUsIDE5MywgMjQzLCAyMjksIDIxOCwgMTI5LCAyMSwgMjI4LCAyMDAsIAotICAgIDI0MywgMjI5LCAyMTgsIDEyOSwgNTQsIDIxNiwgMjQ4LCAyNDMsIDIyOSwgMjE4LCAxMjksIDU0LCAyNDUsIDE2OCwgMjQzLCAKLSAgICAyMjksIDIxOCwgMTI5LCA1NCwgMjE1LCA3NywgMjQzLCAyMjksIDIxOCwgMTI5LCA1NCwgMjE2LCAxNjUsIDI0MywgMjI5LCAKLSAgICAyMTgsIDEyOSwgNTQsIDI0NCwgNiwgMjQzLCAyMjksIDIxOCwgMTI5LCA1NCwgMjQ0LCAxMTksIDI0MywgMjI5LCAyMTgsIAotICAgIDEyOSwgNTQsIDIxOSwgMTIwLCAyNDMsIDIyOSwgMjE4LCAxMjksIDU0LCAyMjAsIDEyMCwgMjQzLCAyMjksIDIxOCwgMTI5LCAKLSAgICA1NCwgMjQ1LCAxOTEsIDI0MywgMjI5LCAyMTgsIDEyOSwgNTQsIDIyOCwgMTk4LCAyNDMsIDIyOSwgMjE4LCAxMjksIDU0LCAKLSAgICAyMTUsIDc0LCAyNDMsIDIyOSwgMjE4LCAxMjksIDg4LCA3LCA0LCAxLCA2MSwgODgsIDcsIDQsIDEsIDI1MywgMTU4LCA4OCwgCi0gICAgNywgNCwgMSwgMjUxLCA2NiwgODgsIDcsIDQsIDEsIDI0OSwgNjAsIDg4LCA3LCA0LCAxLCA3NSwgODgsIDcsIDQsIDEsIAotICAgIDI0NSwgNiwgODgsIDcsIDQsIDEsIDI0MywgMjAyLCA4OCwgNywgNCwgMSwgMjQyLCA2MCwgODgsIDcsIDQsIDEsIDczLCA4OCwgCi0gICAgNywgNCwgMSwgMjM1LCAxNDQsIDg4LCA3LCA0LCAxLCAyMzUsIDIzLCA4OCwgNywgNCwgMSwgMTU2LCA4OCwgNywgNCwgMSwgCi0gICAgMTkzLCA4OCwgNywgNCwgMSwgMjMwLCAyNSwgODgsIDcsIDQsIDEsIDc2LCA4OCwgNywgNCwgMSwgMjI2LCAxMDUsIDg4LCA3LCAKLSAgICA0LCAxLCAyMjQsIDk2LCA4OCwgNywgNCwgMSwgMTUzLCA4OCwgNywgNCwgMSwgMjIyLCA5MSwgODgsIDcsIDQsIDEsIDIxNywgCi0gICAgMTUyLCA4OCwgNywgNCwgMSwgNzAsIDg4LCA3LCA0LCAxLCAyMTQsIDEwNSwgODgsIDcsIDQsIDEsIDIxMiwgOTgsIDg4LCA3LCAKLSAgICA0LCAxLCAyMTEsIDE3OCwgODgsIDcsIDQsIDEsIDIxMSwgMTE3LCA4OCwgNywgNCwgMSwgMjEwLCAxNTksIDM3LCA3LCA2LCAKLSAgICAxLCA2MSwgMzcsIDcsIDYsIDEsIDI1MywgMTU4LCAzNywgNywgNiwgMSwgMjUxLCA2NiwgMzcsIDcsIDYsIDEsIDI0OSwgNjAsIAotICAgIDM3LCA3LCA2LCAxLCA3NSwgMzcsIDcsIDYsIDEsIDI0NSwgNiwgMzcsIDcsIDYsIDEsIDI0MywgMjAyLCAzNywgNywgNiwgMSwgCi0gICAgMjQyLCA2MCwgMzcsIDcsIDYsIDEsIDczLCAzNywgNywgNiwgMSwgMjM1LCAxNDQsIDM3LCA3LCA2LCAxLCAyMzUsIDIzLCAKLSAgICAzNywgNywgNiwgMSwgMTU2LCAzNywgNywgNiwgMSwgMTkzLCAzNywgNywgNiwgMSwgMjMwLCAyNSwgMzcsIDcsIDYsIDEsIAotICAgIDc2LCAzNywgNywgNiwgMSwgMjI2LCAxMDUsIDM3LCA3LCA2LCAxLCAyMjQsIDk2LCAzNywgNywgNiwgMSwgMTUzLCAzNywgNywgCi0gICAgNiwgMSwgMjIyLCA5MSwgMzcsIDcsIDYsIDEsIDIxNywgMTUyLCAzNywgNywgNiwgMSwgNzAsIDM3LCA3LCA2LCAxLCAyMTQsIAotICAgIDEwNSwgMzcsIDcsIDYsIDEsIDIxMiwgOTgsIDM3LCA3LCA2LCAxLCAyMTEsIDE3OCwgMzcsIDcsIDYsIDEsIDIxMSwgMTE3LCAKLSAgICAzNywgNywgNiwgMSwgMjEwLCAxNTksIDM3LCA3LCA0LCAxLCA2MSwgMzcsIDcsIDQsIDEsIDI1MywgMTU4LCAzNywgNywgNCwgCi0gICAgMSwgMjUxLCA2NiwgMzcsIDcsIDQsIDEsIDI0OSwgNjAsIDM3LCA3LCA0LCAxLCA3NSwgMzcsIDcsIDQsIDEsIDI0NSwgNiwgCi0gICAgMzcsIDcsIDQsIDEsIDI0MywgMjAyLCAzNywgNywgNCwgMSwgMjQyLCA2MCwgMzcsIDcsIDQsIDEsIDczLCAzNywgNywgNCwgCi0gICAgMSwgMjM1LCAxNDQsIDM3LCA3LCA0LCAxLCAyMzUsIDIzLCAzNywgNywgNCwgMSwgMTU2LCAzNywgNywgNCwgMSwgMTkzLCAKLSAgICAzNywgNywgNCwgMSwgMjMwLCAyNSwgMzcsIDcsIDQsIDEsIDc2LCAzNywgNywgNCwgMSwgMjI2LCAxMDUsIDM3LCA3LCA0LCAKLSAgICAxLCAyMjQsIDk2LCAzNywgNywgNCwgMSwgMTUzLCAzNywgNywgNCwgMSwgMjIyLCA5MSwgMzcsIDcsIDQsIDEsIDIxNywgCi0gICAgMTUyLCAzNywgNywgNCwgMSwgNzAsIDM3LCA3LCA0LCAxLCAyMTQsIDEwNSwgMzcsIDcsIDQsIDEsIDIxMiwgOTgsIDM3LCA3LCAKLSAgICA0LCAxLCAyMTEsIDE3OCwgMzcsIDcsIDQsIDEsIDIxMSwgMTE3LCAzNywgNywgNCwgMSwgMjEwLCAxNTksIDM3LCAyMSwgCi0gICAgMjEwLCA4NiwgMTUyLCAzNywgNTQsIDI0NSwgMTY3LCAxNTIsIDM3LCA1NCwgMjE1LCA3NiwgMTUyLCAzNywgNTQsIDIxNiwgCi0gICAgMTY0LCAxNTIsIDM3LCA1NCwgMjQ0LCA1LCAxNTIsIDM3LCA1NCwgMjQ0LCAxMTgsIDE1MiwgMzcsIDU0LCAyMTksIDExOSwgCi0gICAgMTUyLCAzNywgNTQsIDIyMCwgMTE5LCAxNTIsIDM3LCA1NCwgMjQ1LCAxOTAsIDE1MiwgMzcsIDU0LCAyMjgsIDE5NywgMTUyLCAKLSAgICAzNywgNTQsIDIxNSwgNzMsIDUyLCAzNywgMjEsIDExMCwgNTIsIDM3LCAyMSwgMTA1LCA1MiwgMzcsIDIxLCAxNTgsIDUyLCAKLSAgICAzNywgMjEsIDE2MSwgNTIsIDM3LCAyMSwgMTg5LCA1MiwgMzcsIDIxLCAxOTQsIDUyLCAzNywgMjEsIDE5OCwgNTIsIDM3LCAKLSAgICAyMSwgMTk1LCA1MiwgMzcsIDIxLCAyMDAsIDUyLCAzNywgNTQsIDIxNiwgMjQ3LCAxNTIsIDM3LCAyMSwgMjEwLCA4NiwgOTMsIAotICAgIDk5LCAxOTIsIDI0MSwgNDQsIDkzLCA5OSwgMTE0LCAyNDEsIDQ0LCA5MywgOTksIDE5MiwgMjEzLCAyMzksIDkzLCA5OSwgCi0gICAgMTE0LCAyMTMsIDIzOSwgOTMsIDk5LCAxOTIsIDIxNSwgMjExLCAyNDgsIDE1NywgMjQxLCA0NCwgOTMsIDk5LCAxMTQsIAotICAgIDIxNSwgMjExLCAyNDgsIDE1NywgMjQxLCA0NCwgOTMsIDk5LCAxOTIsIDIxNSwgMjExLCAyNDgsIDE1NywgMjEzLCAyMzksIAotICAgIDkzLCA5OSwgMTE0LCAyMTUsIDIxMSwgMjQ4LCAxNTcsIDIxMywgMjM5LCA5MywgOTksIDE5MiwgMjI0LCAyNCwgMjQ4LCAKLSAgICAxNTcsIDI0MSwgNDQsIDkzLCA5OSwgMTE0LCAyMjQsIDI0LCAyNDgsIDE1NywgMjQxLCA0NCwgOTMsIDk5LCAxOTIsIDIyNCwgCi0gICAgMjQsIDI0OCwgMTU3LCAyMTMsIDIzOSwgOTMsIDk5LCAxMTQsIDIyNCwgMjQsIDI0OCwgMTU3LCAyMTMsIDIzOSwgOTMsIDk5LCAKLSAgICAxOTIsIDEyNCwgMjIsIDIyMiwgMjUxLCA5MywgOTksIDEyNCwgMTkyLCAyMiwgNDQsIDI0MSwgMjIxLCA5MywgOTksIDEyNCwgCi0gICAgMTE0LCAyMiwgNDQsIDIzMiwgMjMwLCA5MywgOTksIDExNCwgMTI0LCAyMiwgMjIyLCAyNTEsIDkzLCA5OSwgMTkyLCAxMjQsIAotICAgIDIyLCAyMzMsIDQ2LCA5MywgOTksIDEyNCwgMTkyLCAyMiwgNDMsIDI0MSwgMjIxLCA5MywgOTksIDEyNCwgMTE0LCAyMiwgCi0gICAgNDMsIDIzMiwgMjMwLCA5MywgOTksIDExNCwgMTI0LCAyMiwgMjMzLCA0NiwgOTMsIDk5LCAxOTIsIDEyMCwgMjIsIDIyMiwgCi0gICAgMjUxLCA5MywgOTksIDEyMCwgMTkyLCAyMiwgNDQsIDI0MSwgMjIxLCA5MywgOTksIDEyMCwgMTE0LCAyMiwgNDQsIDIzMiwgCi0gICAgMjMwLCA5MywgOTksIDExNCwgMTIwLCAyMiwgMjIyLCAyNTEsIDkzLCA5OSwgMTkyLCAxMjAsIDIyLCAyMzMsIDQ2LCA5MywgCi0gICAgOTksIDEyMCwgMTkyLCAyMiwgNDMsIDI0MSwgMjIxLCA5MywgOTksIDEyMCwgMTE0LCAyMiwgNDMsIDIzMiwgMjMwLCA5MywgCi0gICAgOTksIDExNCwgMTIwLCAyMiwgMjMzLCA0NiwgOTMsIDk5LCAxOTIsIDY3LCAyMiwgMjIyLCAyNTEsIDkzLCA5OSwgNjcsIAotICAgIDE5MiwgMjIsIDQ0LCAyNDEsIDIyMSwgOTMsIDk5LCAxMjAsIDExNCwgMjIsIDQ0LCAxMjQsIDIzMiwgMjMwLCA5MywgOTksIAotICAgIDEyNCwgMTE0LCAyMiwgNDQsIDEyMCwgMjMyLCAyMzAsIDkzLCA5OSwgNjcsIDExNCwgMjIsIDQ0LCAyMzIsIDIzMCwgOTMsIAotICAgIDk5LCAxMjQsIDE5MiwgMjIsIDQ0LCAxMjAsIDI0MSwgMjIxLCA5MywgOTksIDEyMCwgMTkyLCAyMiwgNDQsIDEyNCwgMjQxLCAKLSAgICAyMjEsIDkzLCA5OSwgMTE0LCA2NywgMjIsIDIyMiwgMjUxLCA5MywgOTksIDE5MiwgNjcsIDIyLCAyMzMsIDQ2LCA5MywgOTksIAotICAgIDY3LCAxOTIsIDIyLCA0MywgMjQxLCAyMjEsIDkzLCA5OSwgMTIwLCAxMTQsIDIyLCA0MywgMTI0LCAyMzIsIDIzMCwgOTMsIAotICAgIDk5LCAxMjQsIDExNCwgMjIsIDQzLCAxMjAsIDIzMiwgMjMwLCA5MywgOTksIDY3LCAxMTQsIDIyLCA0MywgMjMyLCAyMzAsIAotICAgIDkzLCA5OSwgMTI0LCAxOTIsIDIyLCA0MywgMTIwLCAyNDEsIDIyMSwgOTMsIDk5LCAxMjAsIDE5MiwgMjIsIDQzLCAxMjQsIAotICAgIDI0MSwgMjIxLCA5MywgOTksIDExNCwgNjcsIDIyLCAyMzMsIDQ2LCA5MywgOTksIDE5MiwgMTI0LCAyMiwgMjQxLCA0NCwgCi0gICAgOTMsIDk5LCA0MywgMTE0LCAyMiwgNDQsIDEyNCwgMjMyLCAyMzAsIDkzLCA5OSwgNDQsIDExNCwgMjIsIDQzLCAxMjQsIAotICAgIDIzMiwgMjMwLCA5MywgOTksIDEyNCwgMTkyLCAyMiwgMjAzLCAyNDEsIDIyMSwgOTMsIDk5LCAxMjQsIDExNCwgMjIsIDIwMywgCi0gICAgMjMyLCAyMzAsIDkzLCA5OSwgNDQsIDE5MiwgMjIsIDQzLCAxMjQsIDI0MSwgMjIxLCA5MywgOTksIDQzLCAxOTIsIDIyLCAKLSAgICA0NCwgMTI0LCAyNDEsIDIyMSwgOTMsIDk5LCAxMTQsIDEyNCwgMjIsIDI0MSwgNDQsIDkzLCA5OSwgMTkyLCAxMjAsIDIyLCAKLSAgICAyNDEsIDQ0LCA5MywgOTksIDQzLCAxMTQsIDIyLCA0NCwgMTIwLCAyMzIsIDIzMCwgOTMsIDk5LCA0NCwgMTE0LCAyMiwgNDMsIAotICAgIDEyMCwgMjMyLCAyMzAsIDkzLCA5OSwgMTIwLCAxOTIsIDIyLCAyMDMsIDI0MSwgMjIxLCA5MywgOTksIDEyMCwgMTE0LCAyMiwgCi0gICAgMjAzLCAyMzIsIDIzMCwgOTMsIDk5LCA0NCwgMTkyLCAyMiwgNDMsIDEyMCwgMjQxLCAyMjEsIDkzLCA5OSwgNDMsIDE5MiwgCi0gICAgMjIsIDQ0LCAxMjAsIDI0MSwgMjIxLCA5MywgOTksIDExNCwgMTIwLCAyMiwgMjQxLCA0NCwgOTMsIDk5LCAxOTIsIDY3LCAKLSAgICAyMiwgMjQxLCA0NCwgOTMsIDk5LCA0MywgMTE0LCAyMiwgNDQsIDY3LCAyMzIsIDIzMCwgOTMsIDk5LCA0NCwgMTE0LCAyMiwgCi0gICAgNDMsIDY3LCAyMzIsIDIzMCwgOTMsIDk5LCA2NywgMTkyLCAyMiwgMjAzLCAyNDEsIDIyMSwgOTMsIDk5LCAxMjAsIDExNCwgCi0gICAgMjIsIDEyNCwgMjAzLCAyMzIsIDIzMCwgOTMsIDk5LCAxMjQsIDExNCwgMjIsIDEyMCwgMjAzLCAyMzIsIDIzMCwgOTMsIDk5LCAKLSAgICA2NywgMTE0LCAyMiwgMjAzLCAyMzIsIDIzMCwgOTMsIDk5LCA0MywgMTIwLCAxMTQsIDIyLCA0NCwgMTI0LCAyMzIsIDIzMCwgCi0gICAgOTMsIDk5LCA0NCwgMTIwLCAxMTQsIDIyLCA0MywgMTI0LCAyMzIsIDIzMCwgOTMsIDk5LCA0MywgMTI0LCAxMTQsIDIyLCAKLSAgICA0NCwgMTIwLCAyMzIsIDIzMCwgOTMsIDk5LCA0NCwgMTI0LCAxMTQsIDIyLCA0MywgMTIwLCAyMzIsIDIzMCwgOTMsIDk5LCAKLSAgICAxMjQsIDE5MiwgMjIsIDEyMCwgMjAzLCAyNDEsIDIyMSwgOTMsIDk5LCAxMjAsIDE5MiwgMjIsIDEyNCwgMjAzLCAyNDEsIAotICAgIDIyMSwgOTMsIDk5LCA0NCwgMTkyLCAyMiwgNDMsIDY3LCAyNDEsIDIyMSwgOTMsIDk5LCA0MywgMTkyLCAyMiwgNDQsIDY3LCAKLSAgICAyNDEsIDIyMSwgOTMsIDk5LCAxMTQsIDY3LCAyMiwgMjQxLCA0NCwgOTMsIDk5LCAxOTIsIDUyLCAyNDgsIDE1NywgMjQxLCAKLSAgICA0NCwgOTMsIDk5LCAxMTQsIDUyLCAyNDgsIDE1NywgMjQxLCA0NCwgOTMsIDk5LCAxOTIsIDUyLCAyNDgsIDE1NywgMjEzLCAKLSAgICAyMzksIDkzLCA5OSwgMTE0LCA1MiwgMjQ4LCAxNTcsIDIxMywgMjM5LCA5MywgOTksIDUyLCAyNDEsIDQ0LCA5MywgOTksIAotICAgIDUyLCAyMTMsIDIzOSwgOTMsIDk5LCAxMjQsIDIxOSwgMTU1LCAyMiwgNDQsIDI0NiwgMTEzLCA5MywgOTksIDEyNCwgNTIsIAotICAgIDIyLCA0NCwgMjE5LCAxNTQsIDkzLCA5OSwgNTIsIDEyNCwgMjIsIDIyMiwgMjUxLCA5MywgOTksIDEyNCwgMjE5LCAxNTUsIAotICAgIDIyLCA0MywgMjQ2LCAxMTMsIDkzLCA5OSwgMTI0LCA1MiwgMjIsIDQzLCAyMTksIDE1NCwgOTMsIDk5LCA1MiwgMTI0LCAyMiwgCi0gICAgMjMzLCA0NiwgOTMsIDk5LCAxMjAsIDIxOSwgMTU1LCAyMiwgNDQsIDI0NiwgMTEzLCA5MywgOTksIDEyMCwgNTIsIDIyLCAKLSAgICA0NCwgMjE5LCAxNTQsIDkzLCA5OSwgNTIsIDEyMCwgMjIsIDIyMiwgMjUxLCA5MywgOTksIDEyMCwgMjE5LCAxNTUsIDIyLCAKLSAgICA0MywgMjQ2LCAxMTMsIDkzLCA5OSwgMTIwLCA1MiwgMjIsIDQzLCAyMTksIDE1NCwgOTMsIDk5LCA1MiwgMTIwLCAyMiwgCi0gICAgMjMzLCA0NiwgOTMsIDk5LCA2NywgMjE5LCAxNTUsIDIyLCA0NCwgMjQ2LCAxMTMsIDkzLCA5OSwgNjcsIDUyLCAyMiwgNDQsIAotICAgIDIxOSwgMTU0LCA5MywgOTksIDUyLCA2NywgMjIsIDIyMiwgMjUxLCA5MywgOTksIDY3LCAyMTksIDE1NSwgMjIsIDQzLCAKLSAgICAyNDYsIDExMywgOTMsIDk5LCA2NywgNTIsIDIyLCA0MywgMjE5LCAxNTQsIDkzLCA5OSwgNTIsIDY3LCAyMiwgMjMzLCA0NiwgCi0gICAgOTMsIDk5LCAxMjQsIDIxOSwgMTU1LCAyMiwgMjAzLCAyNDYsIDExMywgOTMsIDk5LCAxMjQsIDUyLCAyMiwgMjAzLCAyMTksIAotICAgIDE1NCwgOTMsIDk5LCA1MiwgMTI0LCAyMiwgMjQxLCA0NCwgOTMsIDk5LCAxMjAsIDIxOSwgMTU1LCAyMiwgMjAzLCAyNDYsIAotICAgIDExMywgOTMsIDk5LCAxMjAsIDUyLCAyMiwgMjAzLCAyMTksIDE1NCwgOTMsIDk5LCA1MiwgMTIwLCAyMiwgMjQxLCA0NCwgCi0gICAgOTMsIDk5LCA2NywgMjE5LCAxNTUsIDIyLCAyMDMsIDI0NiwgMTEzLCA5MywgOTksIDY3LCA1MiwgMjIsIDIwMywgMjE5LCAKLSAgICAxNTQsIDkzLCA5OSwgNTIsIDY3LCAyMiwgMjQxLCA0NCwgOTMsIDk5LCAxOTIsIDI1NCwgMjYsIDEyNCwgMjIsIDIyMiwgCi0gICAgMjUxLCA5MywgOTksIDE5MiwgMjU0LCAyNiwgMTI0LCAyMiwgMjMzLCA0NiwgOTMsIDk5LCAxOTIsIDI1NCwgMjYsIDEyMCwgCi0gICAgMjIsIDIzMywgNDYsIDkzLCA5OSwgMTkyLCAyNTQsIDI2LCAxMjAsIDIyLCAyMjIsIDI1MSwgOTMsIDk5LCAxOTIsIDI0NywgCi0gICAgMjU1LCAyMTQsIDE2MCwgNDQsIDIxNiwgNDIsIDIzMiwgMTA4LCAyMzMsIDQ2LCA5MywgOTksIDE5MiwgMjQ3LCAyNTUsIAotICAgIDIxNCwgMTYwLCA0MywgMjE2LCA0MiwgMjMyLCAxMDgsIDIyMiwgMjUxLCA5MywgOTksIDE5MiwgMjQ3LCAyNTUsIDI0OSwgCi0gICAgMTMwLCA5MywgOTksIDE5MiwgMjMzLCA0NiwgOTMsIDk5LCAxOTIsIDIxNCwgMTYzLCA5MywgOTksIDE5MiwgMjIyLCAyNTEsIAotICAgIDkzLCA5OSwgMTkyLCAyNDYsIDEwNiwgOTMsIDk5LCAxMTQsIDIzMywgNDYsIDkzLCA5OSwgMTE0LCAyMTQsIDE2MywgOTMsIAotICAgIDk5LCAxMTQsIDIyMiwgMjUxLCA5MywgOTksIDExNCwgMjQ2LCAxMDYsIDkzLCA5OSwgMTkyLCA0MywgMjIsIDExNCwgMjIyLCAKLSAgICAyNTEsIDkzLCA5OSwgMTkyLCAxMjAsIDIyLCAxMTQsIDI0NiwgMTA2LCA5MywgOTksIDExNCwgNDMsIDIyLCAxOTIsIDIyMiwgCi0gICAgMjUxLCA5MywgOTksIDExNCwgMTIwLCAyMiwgMTkyLCAyNDYsIDEwNiwgMjE0LCAxNjAsIDE2MywgMjUxLCAyMTMsIDIzMiwgCi0gICAgMTA4LCAxMjMsIDI0NSwgMTg5LCAyNTEsIDIxMywgMjMyLCAxMDgsIDEyMywgMjI0LCAyMiwgMjUxLCAyMTMsIDIzMiwgMTA4LCAKLSAgICAxMzQsIDI0NSwgMTg3LCAyNTEsIDIxMywgMjMyLCAxMDgsIDE2MywgMjUxLCAyMTMsIDIzMiwgMTA4LCAyNDQsIDgxLCAyNDUsIAotICAgIDE4NywgMjUxLCAyMTMsIDIzMiwgMTA4LCAxMzQsIDIyNCwgMjAsIDI1MSwgMjEzLCAyMzIsIDEwOCwgMjIwLCAxMjIsIDI0NSwgCi0gICAgMTg3LCAyNTEsIDIxMywgMjQzLCAyMjksIDI1MSwgMjEzLCA0MywgMjIwLCAxMjIsIDI0NSwgMTg3LCAyNTEsIDIxMywgNDMsIAotICAgIDEzNCwgMjI0LCAyMCwgMjUxLCAyMTMsIDQzLCAyNDQsIDgxLCAyNDUsIDE4NywgMjUxLCAyMTMsIDQzLCAxNjMsIDI1MSwgCi0gICAgMjEzLCA0MywgMTM0LCAyNDUsIDE4NywgMjUxLCAyMTMsIDQzLCAxMjMsIDIyNCwgMjIsIDI1MSwgMjEzLCA0MywgMTIzLCAKLSAgICAyNDUsIDE4OSwgMjUxLCAyMTMsIDQ0LCAxNjMsIDI1MSwgMjEzLCAxOTIsIDIyMCwgOTIsIDIzMSwgODIsIDIyMCwgOTIsIAotICAgIDI0OCwgMTYyLCAyMjAsIDkyLCAyMTQsIDE2MCwgMTIzLCAyNDUsIDE4OSwgMjUxLCAyMTMsIDQ0LCAxMjMsIDI0NSwgMTg5LCAKLSAgICAyNTEsIDIxMywgMjI0LCAyNiwgMjMyLCAxMDgsIDIzMywgNDYsIDIyNCwgMjYsIDIzMiwgMTA4LCAyMjIsIDI1MSwgMjI0LCAKLSAgICAyNiwgMjE0LCAxNjAsIDIzMywgNDYsIDIyNCwgMjYsIDIxNCwgMTYwLCA0MywgMjIsIDIzMiwgMTA4LCA0MywgMjIsIDIzMiwgCi0gICAgMTA4LCAyMjIsIDI1MSwgMjI0LCAyNiwgMjE0LCAxNjAsIDQzLCAyMiwgMjMyLCAxMDgsIDIyMiwgMjUxLCAyMjQsIDI2LCAKLSAgICAyMTQsIDE2MCwgNDMsIDIyLCAyMTQsIDE2MCwgNDQsIDIyLCAyMzIsIDEwOCwgMjMzLCA0NiwgMjI0LCAyNiwgMjE0LCAxNjAsIAotICAgIDQzLCAyMiwgMjE0LCAxNjAsIDQ0LCAyMiwgMjMyLCAxMDgsIDIyMiwgMjUxLCAyMjQsIDI2LCAyMTQsIDE2MCwgMjIyLCAKLSAgICAyNTEsIDIyNCwgMjYsIDIxNCwgMTYwLCA0NCwgMjIsIDIzMiwgMTA4LCAyMzMsIDQ2LCAyMjQsIDI2LCAyMTQsIDE2MCwgNDQsIAotICAgIDIyLCAyMzIsIDEwOCwgNDMsIDIyLCAyMzIsIDEwOCwgMjIyLCAyNTEsIDg1LCAyMTgsIDIzNCwgNzEsIDIxOCwgMjM0LCA3MSwgCi0gICAgNDIsIDIsIDIyMiwgMTgzLCAyNDksIDE1OSwgNzEsIDQyLCAyNDksIDE4NywgODUsIDQsIDIxOCwgMjM0LCA0MiwgMiwgMjAzLCAKLSAgICAyNDQsIDEwNSwgNDIsIDIsIDY3LCAyNDQsIDEwNSwgNDIsIDIsIDIyNiwgMTQ0LCAyNDksIDEyNiwgMjQ0LCAxMDUsIDQyLCAKLSAgICAyLCAyMTQsIDE2MCwgNDMsIDIxNiwgNDIsIDIzMiwgMTA4LCA0NCwgMjQ0LCAxMDUsIDQyLCAyLCAyMTQsIDE2MCwgNDQsIAotICAgIDIxNiwgNDIsIDIzMiwgMTA4LCA0MywgMjQ0LCAxMDUsIDQyLCAyLCAyNDcsIDI1NSwgMjQ5LCAxMjYsIDI0NCwgMTA1LCA4NSwgCi0gICAgNCwgMjE4LCAyMzQsIDcxLCA0LCAyMTgsIDIzNCwgODUsIDIyMywgMTE2LCA3MSwgMjIzLCAxMTYsIDg1LCA2NywgMjIzLCAKLSAgICAxMTYsIDcxLCA2NywgMjIzLCAxMTYsIDg1LCAyMjYsIDYsIDcxLCAyMjYsIDYsIDg1LCAyMTQsIDE2MiwgMjE1LCAyMjUsIAotICAgIDcxLCAyMTQsIDE2MiwgMjE1LCAyMjUsIDg1LCAyMTQsIDE2MiwgNCwgMjE1LCAyMjUsIDcxLCAyMTQsIDE2MiwgNCwgMjE1LCAKLSAgICAyMjUsIDg1LCAyMjIsIDI0NywgMjE1LCAyMjUsIDcxLCAyMjIsIDI0NywgMjE1LCAyMjUsIDg1LCAyMjIsIDI0NywgNCwgCi0gICAgMjE1LCAyMjUsIDcxLCAyMjIsIDI0NywgNCwgMjE1LCAyMjUsIDg1LCAyMjIsIDI0NywgMjI1LCA4LCA3MSwgMjIyLCAyNDcsIAotICAgIDIyNSwgOCwgODUsIDI0NiwgMTA1LCAyMTUsIDIyNSwgNzEsIDI0NiwgMTA1LCAyMTUsIDIyNSwgODUsIDI0NiwgMTA1LCA0LCAKLSAgICAyMTUsIDIyNSwgNzEsIDI0NiwgMTA1LCA0LCAyMTUsIDIyNSwgODUsIDIzMywgNDIsIDIxNSwgMjI1LCA3MSwgMjMzLCA0MiwgCi0gICAgMjE1LCAyMjUsIDg1LCAyMzMsIDQyLCA0LCAyMTUsIDIyNSwgNzEsIDIzMywgNDIsIDQsIDIxNSwgMjI1LCA4NSwgMjMzLCAKLSAgICA0MiwgMjI1LCA4LCA3MSwgMjMzLCA0MiwgMjI1LCA4LCA4NSwgMjQ3LCAyNDgsIDcxLCAyNDcsIDI0OCwgNzEsIDI0NywgCi0gICAgMjQ5LCAyNDksIDE4NywgODUsIDQsIDI0NywgMjQ4LCAyNDQsIDg5LCAyMzIsIDEwNCwgNzEsIDI1MCwgMzUsIDI0NiwgMTE4LCAKLSAgICAyNTAsIDM1LCAyNTAsIDM2LCAyLCA2NywgMjQ0LCAxMDUsIDI1MSwgMTExLCA4NSwgMjUwLCAzNSwgMjUwLCAzNiwgMiwgNDMsIAotICAgIDE2MywgMjUxLCAyMjEsIDI1MCwgMzYsIDIsIDQ0LCAxNjMsIDI1MSwgMjIxLCAyNTAsIDM2LCAyLCAyMzIsIDEwOCwgMTYzLCAKLSAgICAyNTEsIDIyMSwgMjUwLCAzNiwgMiwgMjE0LCAxNjAsIDE2MywgMjUxLCAyMjEsIDI1MCwgMzYsIDIsIDIxNCwgMTYwLCA0NCwgCi0gICAgMjI0LCAyNiwgMjUxLCAyMjEsIDI1MCwgMzYsIDIsIDI1NCwgMTU1LCAyNTEsIDg4LCAyMTQsIDE2MCwgNDMsIDIyNCwgMjYsIAotICAgIDI1MSwgMjIxLCA0MywgMTYzLCA4NSwgMjUwLCAzNSwgNDQsIDE2MywgODUsIDI1MCwgMzUsIDIzNSwgMTk0LCAyNTEsIDExMywgCi0gICAgMjM1LCAxOTQsIDcxLCAyNTAsIDM1LCAyMTQsIDE2MCwgMTYzLCAyMzUsIDE5NCwgNzEsIDI1MCwgMzUsIDIzMiwgMTA4LCAKLSAgICAxNjMsIDIzNSwgMTk0LCA3MSwgMjUwLCAzNSwgMjE0LCAxNjAsIDQzLCAyMjQsIDI2LCAyNTAsIDMzLCAyNTQsIDI1LCAyMTQsIAotICAgIDE2MCwgNDQsIDIyNCwgMjYsIDI1MCwgMzMsIDI1NCwgMjUsIDIzMiwgMTA4LCA0NCwgMjI0LCAyNiwgMjUwLCAzMywgMjU0LCAKLSAgICAyNSwgMjMyLCAxMDgsIDQzLCAyMjQsIDI2LCAyNTAsIDMzLCAyNTQsIDI1LCAyMTQsIDE2MCwgMTYzLCAyNTAsIDM1LCAyMzIsIAotICAgIDEwOCwgMTYzLCAyNTAsIDM1LCA4NSwgMjMyLCAxMDgsIDQ0LCAyMTUsIDIyNSwgODUsIDIzMiwgMTA4LCA0MywgMjE1LCAKLSAgICAyMjUsIDg1LCAyMTQsIDE2MCwgNDMsIDIxNSwgMjI1LCA4NSwgMjE0LCAxNjAsIDQ0LCAyMTUsIDIyNSwgNzEsIDI1MSwgCi0gICAgMTEzLCA0MiwgMiwgNDMsIDE2MywgMjUxLCAyMjEsIDQyLCAyLCA0NCwgMTYzLCAyNTEsIDIyMSwgNDIsIDIsIDIxNCwgMTYwLCAKLSAgICA0MywgMjQ3LCAyNTUsIDE2MywgMjUxLCAyMjEsIDQyLCAyLCAyMzIsIDEwOCwgNDQsIDI0NywgMjU1LCAxNjMsIDI1MSwgCi0gICAgMjIxLCA3MSwgNDIsIDIsIDY3LCAyNTEsIDIzMiwgMjMyLCAyMTMsIDcxLCAyMTQsIDE2MiwgMjE1LCAyMjYsIDIsIDI0NywgCi0gICAgMTIwLCAyMTQsIDE2MiwgMjE1LCAyMjYsIDIsIDQzLCAxNjMsIDI1MSwgMjIxLCAyMTQsIDE2MiwgMjE1LCAyMjYsIDIsIDQ0LCAKLSAgICAxNjMsIDI1MSwgMjIxLCAyMzMsIDg1LCAyNTAsIDM1LCA3MSwgNDIsIDIsIDIxNCwgMTYwLCA0MywgMjI0LCAyNSwgNzEsIAotICAgIDQyLCAyLCAyMzIsIDEwOCwgNDMsIDIyNCwgMjUsIDcxLCA0MiwgMiwgMjMyLCAxMDgsIDQ0LCAyMjQsIDI1LCA3MSwgNDIsIAotICAgIDIsIDIxNCwgMTYwLCA0NCwgMjI0LCAyNSwgNzEsIDI1MCwgMzYsIDIsIDIxNCwgMTYwLCA0MywgMjI0LCAyNSwgNzEsIDI1MCwgCi0gICAgMzYsIDIsIDIzMiwgMTA4LCA0MywgMjI0LCAyNSwgNzEsIDI1MCwgMzYsIDIsIDIzMiwgMTA4LCA0NCwgMjI0LCAyNSwgNzEsIAotICAgIDI1MCwgMzYsIDIsIDIxNCwgMTYwLCA0NCwgMjI0LCAyNSwgMjE0LCAxNjAsIDQzLCAyMTUsIDIyNSwgMjE0LCAxNjAsIDQ0LCAKLSAgICAyMTUsIDIyNSwgMjMyLCAxMDgsIDQzLCAyMTUsIDIyNSwgNzEsIDIzMSwgODIsIDIxOCwgMjM0LCA4NSwgMjMxLCA4MiwgCi0gICAgMjE4LCAyMzQsIDcxLCAyMzEsIDgyLCA0LCAyMTgsIDIzNCwgODUsIDIzMSwgODIsIDQsIDIxOCwgMjM0LCAyMzIsIDEwOCwgCi0gICAgNDQsIDIxNSwgMjI1LCA4NSwgMjE4LCAzOCwgMiwgMjIzLCAxMzIsIDI0OSwgMjQ3LCAyMTQsIDE5NCwgMjE5LCA2MCwgMjQ5LCAKLSAgICAyMjIsIDg1LCAyMTgsIDE1NiwgNzEsIDIxOCwgMTU2LCAyMzIsIDIyOCwgMjE2LCAxMzIsIDIxOCwgMzcsIDI1MywgMjM0LCAKLSAgICAyMjgsIDcxLCAyNDgsIDM4LCAyMjgsIDcxLCAyNDksIDE5NSwgMjI2LCAxNjMsIDg1LCAyMTcsIDAsIDcxLCAyMTcsIDAsIAotICAgIDI1MiwgMTU2LCAyNTEsIDE2MywgMjUyLCAxNTYsIDkzLCAyLCAyNTAsIDEyOSwgMjUyLCAxNTYsIDkzLCAyLCAyMTEsIDE3OCwgCi0gICAgMjIxLCAyNTQsIDIxNCwgMTk1LCAyLCAyMjMsIDE2MCwgMjQ2LCA4NCwgMjQwLCAyNDMsIDI1MiwgMjIsIDcxLCAyMjAsIDIsIAotICAgIDIyNSwgMTAxLCA4NSwgMjIwLCAyLCAyMjUsIDEwMSwgMjIwLCA4NywgMjIzLCA0OSwgMjIyLCAxODcsIDI0NCwgNTUsIDI0MSwgCi0gICAgMjI4LCAyNTEsIDExMywgODUsIDQzLCAyMjUsIDcsIDIzNSwgMjQyLCA4NSwgNDQsIDIyNSwgNywgMjM1LCAyNDIsIDcxLCAKLSAgICA0MywgMjI1LCA3LCAyMzUsIDI0MiwgNzEsIDEyMCwgMjI1LCA3LCAyMzUsIDI0MiwgNzEsIDQ0LCAyMjUsIDcsIDIzNSwgCi0gICAgMjQyLCA3MSwgMTI0LCAyMjUsIDcsIDIzNSwgMjQyLCAyMTksIDEwMSwgMjIsIDI0OSwgMTI5LCAyNTAsIDIxOSwgNTAsIAotICAgIDIyMywgMTcyLCA1MCwgMjUxLCAyMzksIDUwLCAyNTEsIDI1LCAyNTQsIDEwMiwgMjI2LCAxNDUsIDI0OSwgMTMwLCAyNTAsIAotICAgIDExMSwgMjIzLCAzNywgMjQ5LCAxMzEsIDY0LCAyMzIsIDExOCwgMjQ5LCAxMzEsIDY0LCAyMzUsIDExNiwgMjE4LCAxNTcsIAotICAgIDIyLCAyNDksIDEzNiwgMjQ0LCAxNjgsIDg3LCAyNTQsIDI0OCwgMjIwLCA4OSwgMjQyLCAyMiwgMjIsIDIxOSwgMTg5LCAKLSAgICAyMjUsIDIyMCwgODcsIDIxMCwgMjU0LCAyMTEsIDY5LCAyMTUsIDIxNSwgMzEsIDI0MSwgMjIzLCAyMTUsIDIxNSwgMzEsIAotICAgIDIzMywgMTA3LCAyMTUsIDIxNSwgMzEsIDI0NCwgOTYsIDIxNSwgMjE1LCAzMSwgMjE2LCAxMzMsIDIxNSwgMjE1LCAzMSwgCi0gICAgMjExLCAyMzksIDIxNSwgMjE1LCAzMSwgMjEyLCA0MCwgMjE1LCAyMTUsIDMxLCAyMzAsIDExNSwgMjE1LCAyMTUsIDMxLCAKLSAgICAyNDUsIDIyMywgMjEyLCAxLCA2NCwgMjQ4LCAxOCwgNzEsIDI0MywgMjM5LCAyNDQsIDE5MCwgNzEsIDIxOSwgNzQsIDI0NCwgCi0gICAgMTkwLCA4NSwgMjE5LCA3NCwgMjQ0LCAxOTAsIDcxLCAyMTgsIDM4LCAyLCAyMjMsIDEzMiwgMjQ0LCA5MiwgMjI0LCAyMiwgCi0gICAgMjMwLCAxMjgsIDIzMywgODAsIDIyNCwgMjIsIDIzMCwgMTI4LCAyMzEsIDU0LCAyNDQsIDEzOCwgNTAsIDI0NSwgMjIzLCAKLSAgICAyMzEsIDE5MCwgNTAsIDIzNSwgMzgsIDIyMSwgMjIwLCAyMTQsIDE0NSwgMjI5LCA5MywgMjI1LCAyMCwgMjU0LCAxMiwgCi0gICAgMjE3LCA0MCwgMjQzLCA1MiwgMjUxLCAzLCAyMzMsIDE5LCAyMTMsIDE1MCwgMjMyLCAyMzgsIDIyMSwgMTkxLCAyMjIsIDE5LCAKLSAgICAyNTAsIDI0OCwgMjU0LCA0MiwgMjI1LCA1MiwgNzEsIDI1MCwgMTE3LCAyMzQsIDc4LCA3MSwgMjUwLCAxMTcsIDIyNCwgMTQsIAotICAgIDcxLCAyNTAsIDExNywgMjIyLCAxOTUsIDcxLCAyNTAsIDExNywgMjUxLCAyMzEsIDcxLCAyNTAsIDExNywgMjM0LCAzMCwgCi0gICAgNzEsIDI1MCwgMTE3LCAyMjUsIDIzMSwgODUsIDI1MCwgMTE3LCAyMzQsIDc4LCA4NSwgMjUwLCAxMTcsIDIyNCwgMTQsIDg1LCAKLSAgICAyNTAsIDExNywgMjIyLCAxOTUsIDg1LCAyNTAsIDExNywgMjUxLCAyMzEsIDg1LCAyNTAsIDExNywgMjM0LCAzMCwgODUsIAotICAgIDI1MCwgMTE3LCAyMjUsIDIzMSwgODUsIDIxOSwgMTYsIDIxOCwgNTAsIDcxLCAyNDEsIDIyOCwgMjE4LCA1MCwgNzEsIDI0NywgCi0gICAgMjQ5LCAyMTgsIDUwLCA4NSwgMjQ5LCAyNDUsIDIxOCwgNTAsIDcxLCAyMTksIDE2LCAyMTgsIDUwLCA4NSwgMjQxLCAyMjgsIAotICAgIDIxOCwgNTAsIDg1LCAyNDcsIDI0OSwgMjE4LCA1MCwgNzEsIDI0OSwgMjQ1LCAyMTgsIDUwLCAyNDAsIDI0MywgMjE4LCAKLSAgICAyMzgsIDIyNCwgMjIsIDIyOCwgNDcsIDI0NSwgMTg5LCAyMjgsIDQ3LCAyNTIsIDczLCAyNDUsIDE4OSwgMjI4LCA0MiwgCi0gICAgMjUyLCA3MywgMjE5LCAxMTgsIDIyOCwgNDIsIDIzMCwgNTcsIDI0NCwgNjYsIDUwLCAyMzAsIDU3LCAyMjksIDE4OCwgNTAsIAotICAgIDIzMCwgNTcsIDIyMCwgNzYsIDUwLCAyMTIsIDksIDE4OCwgMjQ5LCAxMzAsIDI0NSwgMjIwLCAxODgsIDI0OSwgMTMwLCAKLSAgICAyMTQsIDE3MSwgMjIzLCAxMTIsIDg3LCAyMjMsIDExMiwgMTYsIDMxLCAyMTUsIDQ4LCAyMjUsIDM0LCAyMjMsIDExMiwgMTYsIAotICAgIDMxLCAyMTUsIDQ3LCAyMjUsIDM0LCAyMjMsIDExMiwgMTYsIDMxLCAyMTUsIDQ2LCAyMjUsIDM0LCAyMjMsIDExMiwgMTYsIAotICAgIDMxLCAyMTUsIDQ1LCAyMjUsIDM0LCAyMjMsIDExMiwgMTYsIDMxLCAyMTUsIDQ0LCAyMjUsIDM0LCAyMjMsIDExMiwgMTYsIAotICAgIDMxLCAyMTUsIDQzLCAyMjUsIDM0LCAyMjMsIDExMiwgMTYsIDMxLCAyMTUsIDQyLCAyMjUsIDM0LCAyMjMsIDExMiwgMTYsIAotICAgIDMxLCAyNDMsIDUwLCAyMzEsIDEzOCwgODUsIDIxNCwgMTcxLCAyMjMsIDExMiwgODcsIDIyMywgMTEzLCAyMjYsIDIwLCA4NywgCi0gICAgMjI1LCAyNTIsIDIyNiwgMjAsIDg3LCAyMjUsIDE3NCwgMjI2LCAyMCwgNTAsIDIxMSwgMjU1LCA4NywgMjQ3LCAyNDEsIAotICAgIDI0NCwgMTg5LCAyNDcsIDI0MSwgMjQ0LCAxODgsIDI0NywgMjQxLCAyNDQsIDE4NywgMjQ3LCAyNDEsIDI0NCwgMTg2LCAKLSAgICAyNDcsIDI0MSwgMjQ0LCAxODUsIDI0NywgMjQxLCAyNDQsIDE4NCwgNzEsIDI1MCwgMzYsIDIsIDU5LCAyMjIsIDI1MSwgNzEsIAotICAgIDI1MCwgMzYsIDIsIDExMywgMjQ3LCAxMTgsIDg1LCAyNTAsIDM2LCAyLCA3MSwgNTksIDIyMiwgMjUxLCA4NSwgMjUwLCAzNiwgCi0gICAgMiwgMTEzLCA3MSwgMjQ3LCAxMTgsIDIzMCwgMTQyLCAzMSwgMjExLCA2OSwgMjMwLCAxNDIsIDMxLCAyMTAsIDI1MywgMjQ3LCAKLSAgICAyMjQsIDMxLCAyNDIsIDEzMSwgMjExLCA2OSwgMjQ3LCAyMjQsIDMxLCAyMzMsIDEzLCAyMTAsIDI1MywgMjQ3LCAyMjQsIAotICAgIDMxLCAyMzMsIDEzLCAyMTEsIDY5LCAyNDcsIDIyNCwgMzEsIDI0MiwgMTMxLCAyMTAsIDI1MywgNzEsIDI0NCwgNzMsIDg1LCAKLSAgICAyNDQsIDczLCAyNDIsIDIyLCAyMiwgMjI1LCAxMDQsIDI1NCwgMTIwLCAyNDksIDEyOCwgMjE3LCAyMzUsIDIxOCwgMTY0LCAKLSAgICA2NCwgMjU0LCAyMjYsIDIyMSwgMjA2LCAyNTQsIDE2OSwgMjQ0LCA1MSwgMjQzLCA2MCwgMjE4LCAxNjQsIDY0LCAyNDEsIAotICAgIDIwMiwgMjUzLCAxOTksIDg3LCAyNDQsIDYyLCAyMjYsIDEyNiwgNzEsIDIxOCwgMTU2LCAxMzQsIDIzMiwgMjA4LCAyNDksIAotICAgIDE3NSwgMjIyLCAyNTEsIDEzNCwgMjMyLCAyMDgsIDI0OSwgMTc1LCAyMzMsIDQ2LCAyMTIsIDUwLCA1MCwgMTI1LCAyMTMsIAotICAgIDEzMCwgNTAsIDI0NiwgMTEwLCAyNDQsIDEzOCwgNTAsIDI0NiwgMTEwLCAyMzEsIDE5MCwgNTAsIDIzNSwgMjAzLCAyNDQsIAotICAgIDEzOCwgMjIsIDIzMSwgMTkwLCA1MCwgMjMxLCAxOTAsIDIyLCAyNDQsIDEzOCwgNTAsIDIzMSwgMTkwLCAyLCAyMTgsIDEwMywgCi0gICAgNTAsIDIzMSwgMTkwLCAyLCAyMTgsIDEwMywgMjIsIDIzMSwgMTkwLCAyMiwgMjQ0LCAxMzgsIDUwLCA2NywgMjMxLCAxOTAsIAotICAgIDIsIDIxOCwgMTAzLCA1MCwgMjAzLCAyMzEsIDE5MCwgMiwgMjE4LCAxMDMsIDUwLCAyMzEsIDgyLCA3MSwgMjUwLCAzNSwgCi0gICAgMjMxLCA4MiwgODUsIDI1MCwgMzUsIDIzMSwgODIsIDQsIDcxLCAyNTAsIDM1LCAyMzEsIDE1MywgODcsIDI0NywgMTY3LCAKLSAgICA4NywgMjE0LCAxNjksIDIyNSwgMjUxLCA4NywgMjQ5LCAyMzEsIDI0MywgMjI0LCAyMTQsIDE0MSwgMjI5LCA4OCwgMjUwLCAKLSAgICAxNjEsIDIyNiwgNjEsIDIzNSwgNDQsIDIxMywgMTg1LCAyNTAsIDkzLCA4NSwgMjMwLCAxMjksIDIzMiwgMjI1LCAyMjAsIAotICAgIDExMiwgMjIwLCAxNDcsIDIyNCwgNSwgMjIwLCAxMzAsIDIxOSwgNTUsIDI1MiwgMTU5LCAyNTIsIDEyNiwgOTIsIDIzNCwgCi0gICAgMTM4LCA3MSwgMjQ2LCA5MywgMjMxLCAxODUsIDcxLCAyNDYsIDkzLCAyMzQsIDc4LCA4NSwgMjQ2LCA5MywgMjMxLCAxODUsIAotICAgIDg1LCAyNDYsIDkzLCAyMzQsIDc4LCAyMTksIDYxLCAyMTEsIDIzMCwgMjE5LCA2NCwgMjE4LCAzOCwgMjUyLCA1MSwgMjQ5LCAKLSAgICAyNDcsIDIyMywgMTU5LCA4NSwgMjE5LCA2MCwgMjE2LCAxMzQsIDI0OSwgMjQ4LCAyMiwgMjIzLCAxNTksIDIxNSwgOTQsIAotICAgIDcxLCAyMjAsIDIsIDIyNSwgMTAxLCAyMTUsIDk0LCA4NSwgMjIwLCAyLCAyMjUsIDEwMSwgNzEsIDI0NywgMjQ5LCAyMzYsIAotICAgIDAsIDIxOCwgMjM0LCAyNDksIDEyNSwgMjMzLCA5MSwgMjQ3LCAxOTMsIDI1MCwgMjQ0LCAyMjYsIDE2NiwgMjI1LCAxMDQsIAotICAgIDI1MCwgMjQ1LCAyMTksIDg4LCAyNDEsIDIxMiwgMiwgNzEsIDI0OSwgMTMwLCAzNywgMjQ5LCAxMjUsIDIzMywgOTEsIDI1MCwgCi0gICAgMTUzLCAyMjgsIDc1LCAyNDUsIDEyNCwgMjU0LCAxNDEsIDIyNiwgMTkxLCA0MywgMjEyLCAyNiwgMjE1LCAyNTEsIDg1LCAKLSAgICAyMTUsIDU1LCA0MywgMjEyLCAyNiwgMjE1LCAyNTEsIDcxLCAyMTUsIDU1LCA0MywgMjEyLCAyNiwgMjE1LCAyNTEsIDg1LCAKLSAgICA0MywgMjMzLCA5MiwgMjMxLCA1MywgNzEsIDQzLCAyMzMsIDkyLCAyMzEsIDUzLCAyNDYsIDg5LCAyMTksIDgyLCA1MCwgCi0gICAgMTE0LCA3MSwgMjQ2LCAxMDUsIDIxNSwgMjI1LCA0MywgMjUwLCAwLCAyNDUsIDEyNCwgOTIsIDIyMSwgMjU0LCAyNDQsIAotICAgIDE3NSwgMjQ3LCAyNTUsIDIzNiwgMCwgNzEsIDI1MCwgMzYsIDIzNiwgMCwgODUsIDIxOCwgMjM0LCA4NSwgMjE1LCAxOTIsIAotICAgIDIyMywgNjAsIDQzLCAyNDUsIDEyMywgMjIzLCA2MCwgNDMsIDI0NSwgMTIyLCAyNTMsIDIxMSwgMTYsIDMxLCAyMTQsIDE0NSwgCi0gICAgMTE0LCAyNTAsIDM2LCAyLCAyMTgsIDEwMywgMjIsIDExMywgMTcwLCA0OCwgMjI1LCAxODksIDIyMiwgMjQ4LCAyMzUsIAotICAgIDIwNSwgMjI1LCAxODksIDIzMywgNDMsIDIzNSwgMjA1LCAyMjUsIDE4OSwgMjM1LCAxOTMsIDIyNSwgMTg5LCA4NSwgMjQ5LCAKLSAgICAxMzEsIDIyNiwgMTk3LCAyMjAsIDI5LCAyMjAsIDE3LCAyMTksIDIyOSwgMjUwLCA2MSwgMjUwLCAyMjYsIDI0MSwgMTU3LCAKLSAgICAyMTksIDEyNiwgMjQzLCA2MSwgMjExLCAyMzAsIDI0MCwgMjIwLCAyNDMsIDYxLCAyLCAyNDIsIDEyLCAyMzEsIDE3MywgMTYsIAotICAgIDMxLCAyMzIsIDIyOSwgMjMwLCAxMTUsIDIxNCwgMTk1LCAyMjYsIDE5NywgMjQyLCAxMjIsIDI0NCwgMTIsIDI0NCwgNzQsIAotICAgIDIzNiwgMCwgMjQxLCA1OSwgMjQ0LCAxMjksIDIyMiwgMTQsIDQyLCAyNDQsIDExLCAyNDksIDE1OSwgMjE5LCAxMDQsIDI0MCwgCi0gICAgMTEyLCAyMTksIDEwNywgMjI1LCAxNjgsIDIsIDI1MiwgMTU5LCAyMTYsIDI0MiwgMjM1LCAxMzEsIDI1MiwgMTQ2LCA4NywgCi0gICAgMjQxLCAyMzEsIDI0MiwgMTMzLCA4NywgMjQzLCAyMzIsIDIyNCwgMTQyLCAyNDksIDEwMywgMjI2LCAxOTcsIDg1LCAyMTgsIAotICAgIDIzNCwgNzEsIDI0NCwgNzQsIDIsIDIwMywgMjMwLCAyMjQsIDg1LCAyMTgsIDEwNCwgMjE0LCAxNjAsIDI1MSwgMjE3LCAKLSAgICAyMjEsIDE5MywgODUsIDIyMSwgMTkzLCAyMzIsIDEwOCwgMjUxLCAyMTcsIDIyMSwgMTkzLCA3MSwgMjIxLCAxOTMsIDcxLCAKLSAgICAxMTQsIDI1MCwgMTMwLCA3OCwgMjE3LCAxLCAyMzIsIDE1NCwgNTAsIDIxNywgNTMsIDI0NiwgODgsIDI1NCwgMTkxLCAyNDUsIAotICAgIDExOSwgMjIzLCAxNTcsIDI0NCwgODUsIDIyMywgMTU3LCAyNDIsIDE1LCAyMTMsIDE3NCwgMjQyLCAxNSwgMjExLCAxOTgsIAotICAgIDI0MiwgMTUsIDIzMiwgMTA4LCA0NCwgMjI1LCAxOTgsIDIyNSwgMTk4LCAyMTQsIDE2MCwgNDQsIDIyNSwgMTk4LCA3MSwgCi0gICAgMjI4LCAyMzAsIDg1LCAyMjgsIDIzMCwgMjUwLCAxMzAsIDc4LCAxMTQsIDI1MCwgMTMwLCA3OCwgMjMwLCA4NCwgMjExLCAKLSAgICAxNzgsIDExNCwgMjMwLCA4NCwgMjExLCAxNzgsIDI1MiwgMTU2LCAyMTEsIDE3OCwgMTE0LCAyNTIsIDE1NiwgMjExLCAxNzgsIAotICAgIDIyNiwgMTI2LCAyNiwgMjQ5LCAxMzAsIDExNCwgMjYsIDI0OSwgMTMwLCAyMDQsIDI1MCwgMTc1LCAyNDksIDEzMCwgMTE0LCAKLSAgICAyMDQsIDI1MCwgMTc1LCAyNDksIDEzMCwgNywgMjQ5LCAxMzAsIDIyMCwgOTEsIDcxLCA3LCAyNDksIDEzMCwgMjI2LCAxMjYsIAotICAgIDcsIDI0OSwgMTMwLCAyMzEsIDE4NywgMjQ5LCAxMzAsIDIxOCwgMTU3LCA2NCwgMjQ4LCAxNDksIDI0NCwgMTEsIDIxNywgCi0gICAgMTUsIDI1MywgMjE2LCAyNDQsIDExLCAyNTIsIDE1NywgMjUzLCAyMTYsIDExNCwgMjQ0LCAxMSwgMjUyLCAxNTcsIDI1MywgCi0gICAgMjE2LCAyNDQsIDExLCAyNDksIDI0MywgMjUzLCAyMTYsIDg1LCAyNDQsIDExLCAyMjUsIDksIDIxOCwgMTU2LCA3MSwgMjQ0LCAKLSAgICAxMSwgMjI1LCA5LCAyMTgsIDE1NiwgMjE5LCAxMSwgMjE4LCAxMTEsIDIyNiwgMTI2LCA3MSwgMjE4LCAxNTYsIDM3LCA3MSwgCi0gICAgMjE4LCAxNTYsIDIwNCwgMjUwLCAxNzUsIDg1LCAyMTgsIDE1NiwgODUsIDI1MCwgMTc1LCA3MSwgMjE4LCAxNTYsIDIyNiwgCi0gICAgMTI2LCA4NSwgMjE4LCAxNTYsIDExNCwgMjI2LCAxMjYsIDg1LCAyMTgsIDE1NiwgMjI1LCA2MCwgMjE4LCAxNTYsIDIyMCwgCi0gICAgOTEsIDcxLCAyMTgsIDE1NiwgMTE0LCAyNTMsIDIxNiwgMjA0LCAyNTAsIDE3NSwgMjUzLCAyMTYsIDI0NSwgMTkzLCAyMTgsIAotICAgIDI0NCwgMjUzLCAyMTYsIDI0NSwgMTkzLCAyMjUsIDksIDg1LCAyMTgsIDE1NiwgMjQ1LCAxOTMsIDIyNSwgOSwgMjI1LCA2MCwgCi0gICAgMjE4LCAxNTYsIDIxOSwgMTI1LCAyMjUsIDksIDg1LCAyMTgsIDE1NiwgMjQ1LCAxOTMsIDIyNSwgOSwgMjIzLCAxMTQsIDg1LCAKLSAgICAyMTgsIDE1NiwgMTE0LCAyNDUsIDE5MywgMjI1LCA5LCAyMjMsIDExNCwgODUsIDIxOCwgMTU2LCAyMTUsIDc3LCAyMjUsIDksIAotICAgIDg1LCAyMTgsIDE1NiwgMjE5LCAxMjAsIDIyNSwgOSwgMjUzLCAyMTYsIDIxNywgMTUsIDI1MywgMjE2LCAyMDQsIDI1MCwgCi0gICAgMTc1LCAyMTcsIDE1LCAyNTMsIDIxNiwgMTE0LCAyMTcsIDE1LCAyNTMsIDIxNiwgMjE5LCAxMjUsIDIyNSwgMTU3LCA4NSwgCi0gICAgMjIsIDcxLCAyNDQsIDU0LCA4NSwgMjQ0LCA1NCwgNzEsIDI0NCwgNTQsIDI0NSwgMTkzLCAyMjUsIDE1NywgMjI2LCAxMjYsIAotICAgIDg1LCAyNDQsIDU0LCAzNywgMjA0LCAyNTAsIDE3NSwgMjQ1LCAxOTMsIDIyNSwgOSwgMjE4LCAxNTYsIDExNCwgMjE3LCAxNSwgCi0gICAgMjI1LCA2MCwgMjUzLCAyMTYsIDIxOSwgNjIsIDIxNiwgMTA1LCAyMTUsIDIxOCwgMjE5LCA2MiwgMTE0LCAyNTAsIDExNCwgCi0gICAgMjE5LCA2MiwgMjE5LCAxMywgMTE0LCAyMTksIDEzLCAyNTIsIDE1NywgMjUzLCAyMTYsIDI0NSwgMTkzLCAyMTcsIDE1LCAKLSAgICAyMjQsIDE3MSwgMjUzLCAyMTYsIDExNCwgMjQ1LCAxOTMsIDIxNywgMTUsIDIyNCwgMTcxLCAyNTMsIDIxNiwgMjQ5LCAxMzEsIAotICAgIDc4LCAyMjAsIDkxLCA3MSwgMjUwLCAzNSwgMTUyLCA5MiwgMjQ5LCAxMzEsIDc4LCAyMzIsIDEwOCwgNDQsIDI0NiwgODYsIAotICAgIDcxLCAyMTgsIDIzNCwgMjE0LCAxNjAsIDQ0LCAyNDYsIDg2LCA3MSwgMjE4LCAyMzQsIDIzMiwgMTA4LCA0NCwgMjIwLCA5MSwgCi0gICAgNzEsIDIxOCwgMjM0LCAyMTQsIDE2MCwgNDQsIDIyMCwgOTEsIDcxLCAyMTgsIDIzNCwgODUsIDIyNCwgMTMsIDE2NCwgMjI2LCAKLSAgICAxNDcsIDcxLCAyMjQsIDEzLCAxNjQsIDIyNiwgMTQ3LCA3MSwgMjQ1LCAzMSwgMTY0LCAyMjYsIDE0NywgODUsIDI0NywgCi0gICAgMjQ5LCAyMzAsIDE4MiwgNzEsIDIxMSwgMTc4LCAxMTQsIDI0NSwgMzEsIDE2NCwgODcsIDE5MiwgNjcsIDEzMCwgMjMxLCAKLSAgICA4MiwgNjcsIDEzMCwgMTE0LCA2NywgMTMwLCAxMTQsIDIxOSwgMTU1LCAyMTUsIDk0LCAyNDksIDIyMCwgMjIzLCAyNTQsIAotICAgIDE2NCwgMjI2LCAxNDcsIDExNCwgMjE5LCAxNTUsIDI0OSwgMjIwLCAyMjMsIDI1NCwgMTY0LCAyMjYsIDE0NywgMTE0LCA1MiwgCi0gICAgMjE1LCA5NCwgMjQ5LCAyMjAsIDIyMywgMjU0LCAxNjQsIDIyNiwgMTQ3LCAxMTQsIDUyLCAyNDksIDIyMCwgMjIzLCAyNTQsIAotICAgIDE2NCwgMjI2LCAxNDcsIDExNCwgMTIxLCAyMTksIDE1NSwgMjQ5LCAyMjAsIDIyMywgMjU0LCAxNjQsIDIyNiwgMTQ3LCAKLSAgICAxMTQsIDEyMSwgNTIsIDI0OSwgMjIwLCAyMjMsIDI1NCwgMTY0LCAyMjYsIDE0NywgMjQ5LCA5MSwgMjE4LCAxNDAsIDIyNiwgCi0gICAgMTUsIDUsIDIyNiwgMTQ3LCAxMTQsIDI0NSwgMzEsIDE2NCwgMjI2LCAxNDcsIDExNCwgMjQxLCAyMjgsIDI0NSwgMzEsIAotICAgIDE2NCwgMjI2LCAxNDcsIDExNCwgODUsIDI0MSwgMjI3LCAyMjIsIDE4NywgMTE0LCA4NSwgMjQxLCAyMjgsIDI1MSwgMTEzLCAKLSAgICAyNDQsIDU1LCAyNDEsIDIyNywgMjIyLCAxODcsIDI0NCwgNTUsIDI0MSwgMjI4LCAyNTEsIDExMywgMjMxLCA4MiwgNDMsIAotICAgIDIyNiwgNCwgMjI2LCAxNDcsIDIzMSwgODIsIDQ0LCAyMjYsIDQsIDIyNiwgMTQ3LCAyMzEsIDgyLCAyNDQsIDYzLCA0MywgCi0gICAgMjI2LCA0LCAyMjYsIDE0NywgMjMxLCA4MiwgMjQ0LCA2MywgNDQsIDIyNiwgNCwgMjI2LCAxNDcsIDIzMSwgODIsIDIzMywgCi0gICAgNDIsIDI1NCwgMTEwLCAyNTEsIDE1OCwgMjI2LCAxNDcsIDIzMSwgODIsIDIyMiwgMjQ3LCAyNTQsIDExMCwgMjUxLCAxNTgsIAotICAgIDIyNiwgMTQ3LCAxMTQsIDIzMywgNDIsIDI1NCwgMTEwLCAyMjMsIDI1NCwgMTY0LCAyMjYsIDE0NywgMTE0LCAyMjIsIDI0NywgCi0gICAgMjU0LCAxMTAsIDIyMywgMjU0LCAxNjQsIDIyNiwgMTQ3LCAxMTQsIDIzMywgNDIsIDI1NCwgMTEwLCAyNTEsIDE1OCwgMjI2LCAKLSAgICAxNDcsIDExNCwgMjIyLCAyNDcsIDI1NCwgMTEwLCAyNTEsIDE1OCwgMjI2LCAxNDcsIDE5MiwgNDMsIDIxNiwgNiwgMjIwLCAKLSAgICA1MywgMjUxLCAxNTgsIDIyNiwgMTQ3LCAxOTIsIDQ0LCAyMTYsIDYsIDIyMCwgNTMsIDI1MSwgMTU4LCAyMjYsIDE0NywgCi0gICAgMjMxLCA4MiwgNDMsIDI0OSwgOTksIDI1MSwgMTU4LCAyMjYsIDE0NywgMjMxLCA4MiwgNDQsIDI0OSwgOTksIDI1MSwgMTU4LCAKLSAgICAyMjYsIDE0NywgMjQ3LCAyMDQsIDE1MiwgMzcsIDIxLCAxMTAsIDI0NywgMjA0LCAxNTIsIDM3LCAyMSwgMTA1LCAyNDcsIAotICAgIDIwNCwgMTUyLCAzNywgMjEsIDE1OCwgMjQ3LCAyMDQsIDE1MiwgMzcsIDIxLCAxNjEsIDI0NywgMjA0LCAxNTIsIDM3LCAyMSwgCi0gICAgMTg5LCAyNDcsIDIwNCwgMTUyLCAzNywgMjEsIDE5NCwgMjQ3LCAyMDQsIDE1MiwgMzcsIDIxLCAxOTgsIDI0NywgMjA0LCAKLSAgICAxNTIsIDM3LCAyMSwgMTk1LCAyNDcsIDIwNCwgMTUyLCAzNywgMjEsIDIwMCwgMjQ3LCAyMDQsIDE1MiwgMzcsIDU0LCAyMTYsIAotICAgIDI0NywgMjQ3LCAyMDQsIDM3LCAzNSwgMjEsIDExMCwgMjQ3LCAyMDQsIDM3LCAzNSwgMjEsIDEwNSwgMjQ3LCAyMDQsIDM3LCAKLSAgICAzNSwgMjEsIDE1OCwgMjQ3LCAyMDQsIDM3LCAzNSwgMjEsIDE2MSwgMjQ3LCAyMDQsIDM3LCAzNSwgMjEsIDE4OSwgMjQ3LCAKLSAgICAyMDQsIDM3LCAzNSwgMjEsIDE5NCwgMjQ3LCAyMDQsIDM3LCAzNSwgMjEsIDE5OCwgMjQ3LCAyMDQsIDM3LCAzNSwgMjEsIAotICAgIDE5NSwgMjQ3LCAyMDQsIDM3LCAzNSwgMjEsIDIwMCwgMjQ3LCAyMDQsIDM3LCAzNSwgNTQsIDIxNiwgMjQ3LCAyNDcsIDIwNCwgCi0gICAgMTUyLCAzNywgMzUsIDIxLCAxMTAsIDI0NywgMjA0LCAxNTIsIDM3LCAzNSwgMjEsIDEwNSwgMjQ3LCAyMDQsIDE1MiwgMzcsIAotICAgIDM1LCAyMSwgMTU4LCAyNDcsIDIwNCwgMTUyLCAzNywgMzUsIDIxLCAxNjEsIDI0NywgMjA0LCAxNTIsIDM3LCAzNSwgMjEsIAotICAgIDE4OSwgMjQ3LCAyMDQsIDE1MiwgMzcsIDM1LCAyMSwgMTk0LCAyNDcsIDIwNCwgMTUyLCAzNywgMzUsIDIxLCAxOTgsIDI0NywgCi0gICAgMjA0LCAxNTIsIDM3LCAzNSwgMjEsIDE5NSwgMjQ3LCAyMDQsIDE1MiwgMzcsIDM1LCAyMSwgMjAwLCAyNDcsIDIwNCwgMTUyLCAKLSAgICAzNywgMzUsIDU0LCAyMTYsIDI0NywgMTE0LCAyMTEsIDI0NiwgOTcsIDc0LCAxMTQsIDk2LCA1MCwgMTE0LCAyMzAsIDE4MiwgCi0gICAgNTAsIDExNCwgMjQ3LCAxNjksIDUwLCAxMTQsIDIxOSwgMjgsIDI0NSwgMjIwLCA3NCwgMTE0LCA5NywgNzQsIDExNCwgMjI4LCAKLSAgICA1NiwgMjQ1LCAyMjAsIDc0LCAyNDYsIDk4LCAyMjUsIDExLCA5NywgNzQsIDExNCwgMjIyLCAxODQsIDk3LCA3NCwgMjE1LCAKLSAgICAyMjQsIDk3LCA3NCwgMTE0LCAyMTUsIDIyNCwgOTcsIDc0LCAyNDgsIDE1NSwgMjE1LCAyMjQsIDk3LCA3NCwgMTE0LCAyNDgsIAotICAgIDE1NSwgMjE1LCAyMjQsIDk3LCA3NCwgODUsIDk3LCA3NCwgMjE2LCAxNDQsIDIxNiwgMTIsIDk3LCAyNTMsIDI0OSwgMjE2LCAKLSAgICAxNDQsIDI1MSwgMTczLCA5NywgMjUzLCAyNDksIDg1LCA5NywgMjUzLCAyNDksIDExNCwgODUsIDI0OSwgOTEsIDI0NiwgCi0gICAgMTA0LCAyMiwgOTcsIDc0LCAxMTQsIDg1LCAyNDksIDkxLCAyMTQsIDE1MywgMjIsIDk3LCA3NCwgMjE4LCAyMzEsIDg1LCAKLSAgICA5NywgNzQsIDExNCwgMjQ5LCAyMDYsIDg1LCA5NywgNzQsIDIyMiwgMjQ2LCA3MSwgOTcsIDc0LCAyMzMsIDQxLCA3MSwgOTcsIAotICAgIDc0LCAyNTIsIDE4MywgMjIwLCA5MSwgNzEsIDk3LCA3NCwgMjQzLCAyNDEsIDIyMCwgOTEsIDcxLCA5NywgNzQsIDExNCwgCi0gICAgMjMyLCAxMDgsIDIyMiwgMjQ1LCA3MSwgOTcsIDc0LCAxMTQsIDIxNCwgMTYwLCAyMjIsIDI0NSwgNzEsIDk3LCA3NCwgMjI4LCAKLSAgICA0OSwgMjMyLCAxMDgsIDIyMiwgMjQ1LCA3MSwgOTcsIDc0LCAyNDksIDk5LCAyMzIsIDEyMywgMjI4LCA0OSwgMjE0LCAxNjAsIAotICAgIDIyMiwgMjQ1LCA3MSwgOTcsIDc0LCAzNywgMTE0LCA3MSwgOTcsIDc0LCAyMTEsIDI1MiwgOTcsIDc0LCAyNTEsIDIyMCwgCi0gICAgMjE5LCAyOCwgMjQ1LCAyMjAsIDc0LCAyNTEsIDIyMCwgOTcsIDc0LCAyNTEsIDIyMCwgMjI4LCA1NiwgMjQ1LCAyMjAsIDc0LCAKLSAgICAxMTQsIDI1MSwgMjIwLCAyMTksIDI4LCAyNDUsIDIyMCwgNzQsIDExNCwgMjUxLCAyMjAsIDk3LCA3NCwgMTE0LCAyNTEsIAotICAgIDIyMCwgMjI4LCA1NiwgMjQ1LCAyMjAsIDc0LCAyMTcsIDE3LCA5NywgNzQsIDExNCwgMjE3LCAxNiwgOTcsIDc0LCAyMTIsIAotICAgIDE4LCA5NywgNzQsIDExNCwgMjEyLCAxOCwgOTcsIDc0LCAyMjYsIDE3MiwgOTcsIDc0LCA1MiwgMjQ5LCA5OSwgMjMyLCAKLSAgICAxMjMsIDEzNCwgMjQ3LCAyMTQsIDI1NCwgMTA5LCA3MSwgMjE1LCAyMjYsIDI0OSwgMTg3LCA0LCA3MSwgMjE1LCAyMjUsIAotICAgIDIyNSwgMTcxLCAyMDQsIDIxOCwgNjMsIDIwNCwgMjE4LCAyMSwgNDMsIDIyMiwgOTAsIDI1MiwgMTczLCAyNDgsIDYwLCA0NCwgCi0gICAgMjIyLCA5MCwgMjUyLCAxNzMsIDI0OCwgNjAsIDE3NywgMiwgNTksIDIzNSwgMjE1LCAyMjMsIDUwLCAyMTksIDQ3LCAyMjQsIAotICAgIDIwMSwgMjE4LCA2MywgMjE4LCAyMiwgMjI0LCAyMDEsIDIxOSwgNDYsIDY3LCAyNTIsIDE0MSwgMiwgMjAzLCA5MSwgMTEsIAotICAgIDIyMiwgMjI4LCAyNDcsIDI1NCwgMTk5LCAyNDcsIDE2OCwgMTEsIDI0NCwgMTc1LCAyNDcsIDI1NCwgOTIsIDIzMiwgMTQ2LCAKLSAgICAyNTQsIDExOCwgOTIsIDIzMiwgMTQ2LCAyMjYsIDE1OCwgNzEsIDI0NywgMjQ5LCAyLCAyNTAsIDE3MywgMjQ3LCAxMjAsIAotICAgIDIyLCAyLCAyNDcsIDEyMCwgMjQ1LCAxNzAsIDY0LCAyMjYsIDE3MCwgMjE0LCAxNTIsIDIzMiwgMTA4LCA0NCwgMjQ5LCAKLSAgICAxNjEsIDIsIDI0NywgMTIwLCAyMTQsIDE2MCwgNDMsIDI0OSwgMTYxLCAyLCAyNDcsIDEyMCwgNDMsIDIyNiwgMTI4LCAyMzUsIAotICAgIDY2LCA0NCwgMjI2LCAxMjgsIDIzNSwgNjYsIDI0MywgMjI5LCAyMjYsIDEyOCwgMjM1LCA2NiwgMjMzLCA4NSwgMTIwLCAKLSAgICAyMTcsIDg3LCAyMzMsIDg1LCAxMjQsIDIxNywgODcsIDQzLCAyMiwgNDQsIDUyLCAyMTUsIDkzLCA0MywgMjIsIDQ0LCAyMTcsIAotICAgIDg3LCA0MywgMjMwLCA4NywgMTk5LCA0NCwgMjE3LCA4NywgMTk5LCA0MywgMjE3LCA4NywgMTIwLCAyMTcsIDg4LCAyLCAKLSAgICAyNTAsIDM2LCA0OCwgMjMyLCAxMDUsIDI0NywgMTczLCAyNTEsIDc4LCAyMDMsIDIyMiwgMTMzLCA3MSwgMjQ5LCAyMDUsIAotICAgIDI0NywgMjQ4LCA3MSwgMjQ5LCAyMDUsIDI0NywgMjQ5LCAyLCAxNDAsIDIxNiwgMTE0LCA3MSwgMjQ5LCAyMDUsIDI0NywgCi0gICAgMjQ5LCAyLCA5NywgMjE2LCAxMTQsIDcxLCA0MiwgMiwgMTQwLCAyMTYsIDExNCwgNzEsIDQyLCAyLCA5NywgMjE2LCAxMTQsIAotICAgIDExLCA0MywgNzEsIDQyLCAxMjcsIDExLCA0NCwgNzEsIDQyLCAxMjcsIDExLCA0MywgMjU0LCAxMTAsIDEyNywgMTEsIDQ0LCAKLSAgICAyNTQsIDExMCwgMTI3LCAxMSwgNDMsIDUyLCAyNTQsIDExMCwgMTI3LCAxMSwgNDQsIDUyLCAyNTQsIDExMCwgMTI3LCAxMSwgCi0gICAgNDMsIDcxLCAyMTYsIDYsIDIyMCwgNTMsIDEyNywgMTEsIDQ0LCA3MSwgMjE2LCA2LCAyMjAsIDUzLCAxMjcsIDExLCA0MywgCi0gICAgMjQ0LCA2MywgMjI2LCAzLCAxMSwgNDQsIDI0NCwgNjMsIDIyNiwgMywgMjE0LCAxNTMsIDIyNCwgMjQsIDc0LCAyNDYsIAotICAgIDEwNCwgMjI0LCAyNCwgNzQsIDI1NCwgODgsIDI0MywgOTgsIDI1MCwgMzYsIDc0LCAyNTAsIDIsIDI0MywgOTgsIDI1MCwgCi0gICAgMzYsIDc0LCA0NCwgODAsIDIsIDM3LCAyMjUsIDIyLCAxOTksIDE0MCwgNzQsIDE5OSwgOTcsIDc0LCAxOTksIDQzLCA0NCwgCi0gICAgNzQsIDE5OSwgMTQwLCA1MiwgNzQsIDE5OSwgOTcsIDUyLCA3NCwgMTk5LCA0MywgNDQsIDUyLCA3NCwgMTk5LCAxNDAsIDgwLCAKLSAgICAyNDMsIDI0MywgMTMwLCAxOTksIDk3LCA4MCwgMjQzLCAyNDMsIDEzMCwgMTk5LCAxNDAsIDUyLCA4MCwgMjQzLCAyNDMsIAotICAgIDEzMCwgMTk5LCA5NywgNTIsIDgwLCAyNDMsIDI0MywgMTMwLCAxOTksIDk3LCAyMTgsIDIzMCwgNzQsIDQ2LCA0NywgMjUxLCAKLSAgICAyMTUsIDQ2LCA0NywgMjQ3LCAxMTcsIDQ2LCA0NywgMjQ2LCAyNDUsIDQ2LCA0NywgMjQ3LCAxMTYsIDQ2LCA0NywgMjQ2LCAKLSAgICAxODEsIDQ2LCA0NywgMjQ3LCA1MiwgNDYsIDQ3LCAyNDYsIDI0NCwgNDYsIDQ3LCAyNDcsIDExNSwgNDYsIDQ3LCAyNDYsIAotICAgIDE0OSwgNDYsIDQ3LCAyNDcsIDIwLCA0NiwgNDcsIDI0NiwgMjEyLCA0NiwgNDcsIDI0NywgODMsIDQ2LCA0NywgMjQ2LCAKLSAgICAxODAsIDQ2LCA0NywgMjQ3LCA1MSwgNDYsIDQ3LCAyNDYsIDI0MywgNDYsIDQ3LCAyNDcsIDExNCwgNDYsIDQ3LCAyNDYsIAotICAgIDEzMywgNDYsIDQ3LCAyNDcsIDQsIDQ2LCA0NywgMjQ2LCAxOTYsIDQ2LCA0NywgMjQ3LCA2NywgNDYsIDQ3LCAyNDYsIDE2NCwgCi0gICAgNDYsIDQ3LCAyNDcsIDM1LCA0NiwgNDcsIDI0NiwgMjI3LCA0NiwgNDcsIDI0NywgOTgsIDQ2LCA0NywgMjQ2LCAxNDgsIDQ2LCAKLSAgICA0NywgMjQ3LCAxOSwgNDYsIDQ3LCAyNDYsIDIxMSwgNDYsIDQ3LCAyNDcsIDgyLCA0NiwgNDcsIDI0NiwgMTc5LCA0NiwgNDcsIAotICAgIDI0NywgNTAsIDQ2LCA0NywgMjQ2LCAyNDIsIDQ2LCA0NywgMjQ3LCAxMTMsIDQ2LCA0NywgMjQ2LCAxMjUsIDQ2LCA0NywgCi0gICAgMjQ2LCAyNTIsIDQ2LCA0NywgMjQ2LCAxODgsIDQ2LCA0NywgMjQ3LCA1OSwgNDYsIDQ3LCAyNDYsIDE1NiwgNDYsIDQ3LCAKLSAgICAyNDcsIDI3LCA0NiwgNDcsIDI0NiwgMjE5LCA0NiwgNDcsIDI0NywgOTAsIDQ2LCA0NywgMjQ2LCAxNDAsIDQ2LCA0NywgCi0gICAgMjQ3LCAxMSwgNDYsIDQ3LCAyNDYsIDIwMywgNDYsIDQ3LCAyNDcsIDc0LCA0NiwgNDcsIDI0NiwgMTcxLCA0NiwgNDcsIAotICAgIDI0NywgNDIsIDQ2LCA0NywgMjQ2LCAyMzQsIDQ2LCA0NywgMjQ3LCAxMDUsIDQ2LCA0NywgMjQ2LCAxMzIsIDQ2LCA0NywgCi0gICAgMjQ3LCAzLCA0NiwgNDcsIDI0NiwgMTk1LCA0NiwgNDcsIDI0NywgNjYsIDQ2LCA0NywgMjQ2LCAxNjMsIDQ2LCA0NywgMjQ3LCAKLSAgICAzNCwgNDYsIDQ3LCAyNDYsIDIyNiwgNDYsIDQ3LCAyNDcsIDk3LCA0NiwgNDcsIDI0NiwgMTQ3LCA0NiwgNDcsIDI0NywgMTgsIAotICAgIDQ2LCA0NywgMjQ2LCAyMTAsIDQ2LCA0NywgMjQ3LCA4MSwgNDYsIDQ3LCAyNDYsIDE3OCwgNDYsIDQ3LCAyNDcsIDQ5LCA0NiwgCi0gICAgNDcsIDI0NiwgMjQxLCA0NiwgNDcsIDI0NywgMTEyLCA0NiwgNDcsIDI0NiwgMTIxLCA0NiwgNDcsIDI0NiwgMjQ4LCA0NiwgCi0gICAgNDcsIDI0NiwgMTg0LCA0NiwgNDcsIDI0NywgNTUsIDQ2LCA0NywgMjQ2LCAxNTIsIDQ2LCA0NywgMjQ3LCAyMywgNDYsIDQ3LCAKLSAgICAyNDYsIDIxNSwgNDYsIDQ3LCAyNDcsIDg2LCA0NiwgNDcsIDI0NiwgMTM2LCA0NiwgNDcsIDI0NywgNywgNDYsIDQ3LCAyNDYsIAotICAgIDE5OSwgNDYsIDQ3LCAyNDcsIDcwLCA0NiwgNDcsIDI0NiwgMTY3LCA0NiwgNDcsIDI0NywgMzgsIDQ2LCA0NywgMjQ2LCAKLSAgICAyMzAsIDQ2LCA0NywgMjQ3LCAxMDEsIDQ2LCA0NywgMjQ2LCAxMjgsIDQ2LCA0NywgMjQ2LCAyNTUsIDQ2LCA0NywgMjQ2LCAKLSAgICAxOTEsIDQ2LCA0NywgMjQ3LCA2MiwgNDYsIDQ3LCAyNDYsIDE1OSwgNDYsIDQ3LCAyNDcsIDMwLCA0NiwgNDcsIDI0NiwgCi0gICAgMjIyLCA0NiwgNDcsIDI0NywgOTMsIDQ2LCA0NywgMjQ2LCAxNDMsIDQ2LCA0NywgMjQ3LCAxNCwgNDYsIDQ3LCAyNDYsIAotICAgIDIwNiwgNDYsIDQ3LCAyNDcsIDc3LCA0NiwgNDcsIDI0NiwgMTc0LCA0NiwgNDcsIDI0NywgNDUsIDQ2LCA0NywgMjQ2LCAKLSAgICAyMzcsIDQ2LCA0NywgMjQ3LCAxMDgsIDQ2LCA0NywgMjQ2LCAxMjQsIDQ2LCA0NywgMjQ2LCAyNTEsIDQ2LCA0NywgMjQ2LCAKLSAgICAxODcsIDQ2LCA0NywgMjQ3LCA1OCwgNDYsIDQ3LCAyNDYsIDE1NSwgNDYsIDQ3LCAyNDcsIDI2LCA0NiwgNDcsIDI0NiwgCi0gICAgMjE4LCA0NiwgNDcsIDI0NywgODksIDQ2LCA0NywgMjQ2LCAxMzksIDQ2LCA0NywgMjQ3LCAxMCwgNDYsIDQ3LCAyNDYsIAotICAgIDIwMiwgNDYsIDQ3LCAyNDcsIDczLCA0NiwgNDcsIDI0NiwgMTcwLCA0NiwgNDcsIDI0NywgNDEsIDQ2LCA0NywgMjQ2LCAKLSAgICAyMzMsIDQ2LCA0NywgMjQ3LCAxMDQsIDQ2LCA0NywgMjQ2LCAxMzEsIDQ2LCA0NywgMjQ3LCAyLCA0NiwgNDcsIDI0NiwgCi0gICAgMTk0LCA0NiwgNDcsIDI0NywgNjUsIDQ2LCA0NywgMjQ2LCAxNjIsIDQ2LCA0NywgMjQ3LCAzMywgNDYsIDQ3LCAyNDYsIAotICAgIDIyNSwgNDYsIDQ3LCAyNDcsIDk2LCA0NiwgNDcsIDI0NiwgMTQ2LCA0NiwgNDcsIDI0NywgMTcsIDQ2LCA0NywgMjQ2LCAKLSAgICAyMDksIDQ2LCA0NywgMjQ3LCA4MCwgNDYsIDQ3LCAyNDYsIDE3NywgNDYsIDQ3LCAyNDcsIDQ4LCA0NiwgNDcsIDI0NiwgCi0gICAgMjQwLCA0NiwgNDcsIDI0NywgMTExLCA0NiwgNDcsIDI0NiwgMTE5LCA0NiwgNDcsIDI0NiwgMjQ2LCA0NiwgNDcsIDI0NiwgCi0gICAgMTgyLCA0NiwgNDcsIDI0NywgNTMsIDQ2LCA0NywgMjQ2LCAxNTAsIDQ2LCA0NywgMjQ3LCAyMSwgNDYsIDQ3LCAyNDYsIAotICAgIDIxMywgNDYsIDQ3LCAyNDcsIDg0LCA0NiwgNDcsIDI0NiwgMTM0LCA0NiwgNDcsIDI0NywgNSwgNDYsIDQ3LCAyNDYsIDE5NywgCi0gICAgNDYsIDQ3LCAyNDcsIDY4LCA0NiwgNDcsIDI0NiwgMTY1LCA0NiwgNDcsIDI0NywgMzYsIDQ2LCA0NywgMjQ2LCAyMjgsIDQ2LCAKLSAgICA0NywgMjQ3LCA5OSwgNDYsIDQ3LCAyNDYsIDEyNiwgNDYsIDQ3LCAyNDYsIDI1MywgNDYsIDQ3LCAyNDYsIDE4OSwgNDYsIAotICAgIDQ3LCAyNDcsIDYwLCA0NiwgNDcsIDI0NiwgMTU3LCA0NiwgNDcsIDI0NywgMjgsIDQ2LCA0NywgMjQ2LCAyMjAsIDQ2LCA0NywgCi0gICAgMjQ3LCA5MSwgNDYsIDQ3LCAyNDYsIDE0MSwgNDYsIDQ3LCAyNDcsIDEyLCA0NiwgNDcsIDI0NiwgMjA0LCA0NiwgNDcsIAotICAgIDI0NywgNzUsIDQ2LCA0NywgMjQ2LCAxNzIsIDQ2LCA0NywgMjQ3LCA0MywgNDYsIDQ3LCAyNDYsIDIzNSwgNDYsIDQ3LCAKLSAgICAyNDcsIDEwNiwgNDYsIDQ3LCAyNDYsIDEyMiwgNDYsIDQ3LCAyNDYsIDI0OSwgNDYsIDQ3LCAyNDYsIDE4NSwgNDYsIDQ3LCAKLSAgICAyNDcsIDU2LCA0NiwgNDcsIDI0NiwgMTUzLCA0NiwgNDcsIDI0NywgMjQsIDQ2LCA0NywgMjQ2LCAyMTYsIDQ2LCA0NywgCi0gICAgMjQ3LCA4NywgNDYsIDQ3LCAyNDYsIDEzNywgNDYsIDQ3LCAyNDcsIDgsIDQ2LCA0NywgMjQ2LCAyMDAsIDQ2LCA0NywgMjQ3LCAKLSAgICA3MSwgNDYsIDQ3LCAyNDYsIDE2OCwgNDYsIDQ3LCAyNDcsIDM5LCA0NiwgNDcsIDI0NiwgMjMxLCA0NiwgNDcsIDI0NywgCi0gICAgMTAyLCA0NiwgNDcsIDI0NiwgMTI5LCA0NiwgNDcsIDI0NywgMCwgNDYsIDQ3LCAyNDYsIDE5MiwgNDYsIDQ3LCAyNDcsIDYzLCAKLSAgICA0NiwgNDcsIDI0NiwgMTYwLCA0NiwgNDcsIDI0NywgMzEsIDQ2LCA0NywgMjQ2LCAyMjMsIDQ2LCA0NywgMjQ3LCA5NCwgNDYsIAotICAgIDQ3LCAyNDYsIDE0NCwgNDYsIDQ3LCAyNDcsIDE1LCA0NiwgNDcsIDI0NiwgMjA3LCA0NiwgNDcsIDI0NywgNzgsIDQ2LCA0NywgCi0gICAgMjQ2LCAxNzUsIDQ2LCA0NywgMjQ3LCA0NiwgNDYsIDQ3LCAyNDYsIDIzOCwgNDYsIDQ3LCAyNDcsIDEwOSwgNDYsIDQ3LCAKLSAgICAyNDYsIDEyMCwgNDYsIDQ3LCAyNDYsIDI0NywgNDYsIDQ3LCAyNDYsIDE4MywgNDYsIDQ3LCAyNDcsIDU0LCA0NiwgNDcsIAotICAgIDI0NiwgMTUxLCA0NiwgNDcsIDI0NywgMjIsIDQ2LCA0NywgMjQ2LCAyMTQsIDQ2LCA0NywgMjQ3LCA4NSwgNDYsIDQ3LCAKLSAgICAyNDYsIDEzNSwgNDYsIDQ3LCAyNDcsIDYsIDQ2LCA0NywgMjQ2LCAxOTgsIDQ2LCA0NywgMjQ3LCA2OSwgNDYsIDQ3LCAyNDYsIAotICAgIDE2NiwgNDYsIDQ3LCAyNDcsIDM3LCA0NiwgNDcsIDI0NiwgMjI5LCA0NiwgNDcsIDI0NywgMTAwLCA0NiwgNDcsIDI0NiwgCi0gICAgMTI3LCA0NiwgNDcsIDI0NiwgMjU0LCA0NiwgNDcsIDI0NiwgMTkwLCA0NiwgNDcsIDI0NywgNjEsIDQ2LCA0NywgMjQ2LCAKLSAgICAxNTgsIDQ2LCA0NywgMjQ3LCAyOSwgNDYsIDQ3LCAyNDYsIDIyMSwgNDYsIDQ3LCAyNDcsIDkyLCA0NiwgNDcsIDI0NiwgCi0gICAgMTQyLCA0NiwgNDcsIDI0NywgMTMsIDQ2LCA0NywgMjQ2LCAyMDUsIDQ2LCA0NywgMjQ3LCA3NiwgNDYsIDQ3LCAyNDYsIAotICAgIDE3MywgNDYsIDQ3LCAyNDcsIDQ0LCA0NiwgNDcsIDI0NiwgMjM2LCA0NiwgNDcsIDI0NywgMTA3LCA0NiwgNDcsIDI0NiwgCi0gICAgMTIzLCA0NiwgNDcsIDI0NiwgMjUwLCA0NiwgNDcsIDI0NiwgMTg2LCA0NiwgNDcsIDI0NywgNTcsIDQ2LCA0NywgMjQ2LCAKLSAgICAxNTQsIDQ2LCA0NywgMjQ3LCAyNSwgNDYsIDQ3LCAyNDYsIDIxNywgNDYsIDQ3LCAyNDcsIDg4LCA0NiwgNDcsIDI0NiwgCi0gICAgMTM4LCA0NiwgNDcsIDI0NywgOSwgNDYsIDQ3LCAyNDYsIDIwMSwgNDYsIDQ3LCAyNDcsIDcyLCA0NiwgNDcsIDI0NiwgMTY5LCAKLSAgICA0NiwgNDcsIDI0NywgNDAsIDQ2LCA0NywgMjQ2LCAyMzIsIDQ2LCA0NywgMjQ3LCAxMDMsIDQ2LCA0NywgMjQ2LCAxMzAsIAotICAgIDQ2LCA0NywgMjQ3LCAxLCA0NiwgNDcsIDI0NiwgMTkzLCA0NiwgNDcsIDI0NywgNjQsIDQ2LCA0NywgMjQ2LCAxNjEsIDQ2LCAKLSAgICA0NywgMjQ3LCAzMiwgNDYsIDQ3LCAyNDYsIDIyNCwgNDYsIDQ3LCAyNDcsIDk1LCA0NiwgNDcsIDI0NiwgMTQ1LCA0NiwgNDcsIAotICAgIDI0NywgMTYsIDQ2LCA0NywgMjQ2LCAyMDgsIDQ2LCA0NywgMjQ3LCA3OSwgNDYsIDQ3LCAyNDYsIDE3NiwgNDYsIDQ3LCAKLSAgICAyNDcsIDQ3LCA0NiwgNDcsIDI0NiwgMjM5LCA0NiwgNDcsIDI0NywgMTEwLCA5NywgMjE1LCA1OCwgODAsIDIsIDY3LCA5MSwgCisgICAgMjQxLCA1MywgNDgsIDcsIDQsIDEsIDE2MCwgMiwgMjQxLCA1MywgNDgsIDcsIDYsIDEsIDE2MCwgMiwgMTgzLCA3LCA0LCAxLCAKKyAgICAxNjAsIDIsIDE4MywgNywgNiwgMSwgMTYwLCAyLCAyNTAsIDMyLCAyMiwgMTQyLCA3LCA0LCAxLCAxNjAsIDIsIDI1MCwgMzIsIAorICAgIDIyLCAxNDIsIDcsIDYsIDEsIDE2MCwgMiwgMjUwLCAzMiwgMjIsIDI0MiwgMTM3LCA3LCA0LCAxLCAxNjAsIDIsIDI1MCwgCisgICAgMzIsIDIyLCAyNDIsIDEzNywgNywgNiwgMSwgMTYwLCAyLCAyNTAsIDMyLCAyMiwgMjQxLCA1MywgNDgsIDcsIDQsIDEsIAorICAgIDE2MCwgMiwgMjUwLCAzMiwgMjIsIDI0MSwgNTMsIDQ4LCA3LCA2LCAxLCAxNjAsIDIsIDI1MCwgMzIsIDIyLCAxODMsIDcsIAorICAgIDQsIDEsIDE2MCwgMiwgMjUwLCAzMiwgMjIsIDE4MywgNywgNiwgMSwgMTYwLCAyLCAyNTAsIDMyLCAyMiwgNTksIDUxLCA3LCAKKyAgICA0LCAxLCAxNjAsIDIsIDI1MCwgMzIsIDIyLCA1OSwgNTEsIDcsIDYsIDEsIDI0MCwgMTU1LCAyLCAyNDEsIDUzLCA0OCwgNywgCisgICAgNCwgMSwgMjQwLCAxNTUsIDIsIDI0MSwgNTMsIDQ4LCA3LCA2LCAxLCAyNDAsIDE1NSwgMiwgNTksIDUxLCA3LCA0LCAxLCAKKyAgICAyNDAsIDE1NSwgMiwgNTksIDUxLCA3LCA2LCAxLCAxNDQsIDIsIDU5LCA1MSwgNywgNCwgMSwgMTQ0LCAyLCA1OSwgNTEsIDcsIAorICAgIDYsIDEsIDE0NCwgMiwgMjQxLCA1MywgNDgsIDcsIDQsIDEsIDE0NCwgMiwgMjQxLCA1MywgNDgsIDcsIDYsIDEsIDE0NCwgMiwgCisgICAgMjUwLCAzMiwgMjIsIDE0MiwgNywgNCwgMSwgMTQ0LCAyLCAyNTAsIDMyLCAyMiwgMTQyLCA3LCA2LCAxLCAxNDQsIDIsIAorICAgIDI1MCwgMzIsIDIyLCAyNDIsIDEzNywgNywgNCwgMSwgMTQ0LCAyLCAyNTAsIDMyLCAyMiwgMjQyLCAxMzcsIDcsIDYsIDEsIAorICAgIDE0NCwgMiwgMjUwLCAzMiwgMjIsIDI0MSwgNTMsIDQ4LCA3LCA0LCAxLCAxNDQsIDIsIDI1MCwgMzIsIDIyLCAyNDEsIDUzLCAKKyAgICA0OCwgNywgNiwgMSwgMTQ0LCAyLCAyNTAsIDMyLCAyMiwgMTgzLCA3LCA0LCAxLCAxNDQsIDIsIDI1MCwgMzIsIDIyLCAxODMsIAorICAgIDcsIDYsIDEsIDE0NCwgMiwgMjUwLCAzMiwgMjIsIDU5LCA1MSwgNywgNCwgMSwgMTQ0LCAyLCAyNTAsIDMyLCAyMiwgNTksIAorICAgIDUxLCA3LCA2LCAxLCAxNDQsIDIsIDI0MCwgMjUwLCAyMiwgMTQyLCA3LCA0LCAxLCAxNDQsIDIsIDI0MCwgMjUwLCAyMiwgCisgICAgMTQyLCA3LCA2LCAxLCAxNDQsIDIsIDI0MCwgMjUwLCAyMiwgMjQyLCAxMzcsIDcsIDQsIDEsIDE0NCwgMiwgMjQwLCAyNTAsIAorICAgIDIyLCAyNDIsIDEzNywgNywgNiwgMSwgMTQ0LCAyLCAyNDAsIDI1MCwgMjIsIDI0MSwgNTMsIDQ4LCA3LCA0LCAxLCAxNDQsIAorICAgIDIsIDI0MCwgMjUwLCAyMiwgMjQxLCA1MywgNDgsIDcsIDYsIDEsIDE0NCwgMiwgMjQwLCAyNTAsIDIyLCAxODMsIDcsIDQsIAorICAgIDEsIDE0NCwgMiwgMjQwLCAyNTAsIDIyLCAxODMsIDcsIDYsIDEsIDE0NCwgMiwgMjQwLCAyNTAsIDIyLCA1OSwgNTEsIDcsIAorICAgIDQsIDEsIDE0NCwgMiwgMjQwLCAyNTAsIDIyLCA1OSwgNTEsIDcsIDYsIDEsIDEwNCwgMiwgNTksIDUxLCA3LCA0LCAxLCAKKyAgICAxMDQsIDIsIDU5LCA1MSwgNywgNiwgMSwgMTA0LCAyLCAyNDEsIDUzLCA0OCwgNywgNCwgMSwgMTA0LCAyLCAyNDEsIDUzLCAKKyAgICA0OCwgNywgNiwgMSwgMTA0LCAyLCAyNDAsIDI1MCwgMjIsIDE0MiwgNywgNCwgMSwgMTA0LCAyLCAyNDAsIDI1MCwgMjIsIAorICAgIDE0MiwgNywgNiwgMSwgMTA0LCAyLCAyNDAsIDI1MCwgMjIsIDI0MiwgMTM3LCA3LCA0LCAxLCAxMDQsIDIsIDI0MCwgMjUwLCAKKyAgICAyMiwgMjQyLCAxMzcsIDcsIDYsIDEsIDEwNCwgMiwgMjQwLCAyNTAsIDIyLCAyNDEsIDUzLCA0OCwgNywgNCwgMSwgMTA0LCAKKyAgICAyLCAyNDAsIDI1MCwgMjIsIDI0MSwgNTMsIDQ4LCA3LCA2LCAxLCAxMDQsIDIsIDI0MCwgMjUwLCAyMiwgMTgzLCA3LCA0LCAKKyAgICAxLCAxMDQsIDIsIDI0MCwgMjUwLCAyMiwgMTgzLCA3LCA2LCAxLCAxMDQsIDIsIDI0MCwgMjUwLCAyMiwgNTksIDUxLCA3LCAKKyAgICA0LCAxLCAxMDQsIDIsIDI0MCwgMjUwLCAyMiwgNTksIDUxLCA3LCA2LCAxLCAyMTEsIDExOCwgMiwgMjQyLCAxMzcsIDcsIDQsIAorICAgIDEsIDIxMSwgMTE4LCAyLCAyNDIsIDEzNywgNywgNiwgMSwgMjExLCAxMTgsIDIsIDU5LCA1MSwgNywgNCwgMSwgMjExLCAKKyAgICAxMTgsIDIsIDU5LCA1MSwgNywgNiwgMSwgMjExLCAxMTgsIDIsIDI0MSwgNTMsIDQ4LCA3LCA0LCAxLCAyMTEsIDExOCwgMiwgCisgICAgMjQxLCA1MywgNDgsIDcsIDYsIDEsIDIxMSwgMTE4LCAyLCAxODMsIDcsIDQsIDEsIDIxMSwgMTE4LCAyLCAxODMsIDcsIDYsIAorICAgIDEsIDIzMCwgMjI0LCAyMzIsIDE4NiwgNywgNCwgMSwgMjMwLCAyMjQsIDIzMiwgMTg2LCA3LCA2LCAxLCAyMzAsIDIyNCwgCisgICAgMjE0LCAxMDUsIDcsIDQsIDEsIDIzMCwgMjI0LCAyMTQsIDEwNSwgNywgNiwgMSwgMjExLCAxMTgsIDIsIDIzMiwgMTI0LCA3LCAKKyAgICA0LCAxLCAyMTEsIDExOCwgMiwgMjMyLCAxMjQsIDI2LCA0LCAxLCAyNTQsIDE0NSwgMiwgMjI0LCAxNTUsIDI2LCA0LCAxLCAKKyAgICAyNTQsIDE0NSwgMiwgMjQ4LCAxNTQsIDI2LCA0LCAxLCAyNTQsIDE0NSwgMiwgMjI0LCAxNTYsIDIyLCAyMTQsIDEzLCAyNiwgCisgICAgNCwgMSwgMjU0LCAxNDUsIDIsIDI0OCwgMTU1LCAyMiwgMjE0LCAxMywgMjYsIDQsIDEsIDI1NCwgMTQ1LCAyLCAyMjQsIAorICAgIDE1NiwgMjIsIDIyNiwgMTExLCAyNiwgNCwgMSwgMjU0LCAxNDUsIDIsIDI0OCwgMTU1LCAyMiwgMjI2LCAxMTEsIDI2LCA0LCAKKyAgICAxLCAyNTQsIDE0NSwgMiwgMjI0LCAxNTYsIDIyLCAyMjUsIDE3NiwgMjYsIDQsIDEsIDI1NCwgMTQ1LCAyLCAyNDgsIDE1NSwgCisgICAgMjIsIDIyNSwgMTc2LCAyNiwgNiwgMSwgMjU0LCAxNDUsIDIsIDIyNCwgMTU1LCAyNiwgNiwgMSwgMjU0LCAxNDUsIDIsIAorICAgIDI0OCwgMTU0LCAyNiwgNiwgMSwgMjU0LCAxNDUsIDIsIDIyNCwgMTU2LCAyMiwgMjE0LCAxMywgMjYsIDYsIDEsIDI1NCwgCisgICAgMTQ1LCAyLCAyNDgsIDE1NSwgMjIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyNTQsIDE0NSwgMiwgMjI0LCAxNTYsIDIyLCAyMjYsIAorICAgIDExMSwgMjYsIDYsIDEsIDI1NCwgMTQ1LCAyLCAyNDgsIDE1NSwgMjIsIDIyNiwgMTExLCAyNiwgNiwgMSwgMjU0LCAxNDUsIAorICAgIDIsIDIyNCwgMTU2LCAyMiwgMjI1LCAxNzYsIDI2LCA2LCAxLCAyNTQsIDE0NSwgMiwgMjQ4LCAxNTUsIDIyLCAyMjUsIDE3NiwgCisgICAgMjYsIDQsIDEsIDI0NSwgMTAyLCAyLCAyMjQsIDE1NSwgMjYsIDQsIDEsIDI0NSwgMTAyLCAyLCAyNDgsIDE1NCwgMjYsIDQsIAorICAgIDEsIDI0NSwgMTAyLCAyLCAyMjQsIDE1NiwgMjIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyNDUsIDEwMiwgMiwgMjQ4LCAxNTUsIAorICAgIDIyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjQ1LCAxMDIsIDIsIDIyNCwgMTU2LCAyMiwgMjI2LCAxMTEsIDI2LCA0LCAxLCAKKyAgICAyNDUsIDEwMiwgMiwgMjQ4LCAxNTUsIDIyLCAyMjYsIDExMSwgMjYsIDYsIDEsIDI0NSwgMTAyLCAyLCAyMjQsIDE1NSwgMjYsIAorICAgIDYsIDEsIDI0NSwgMTAyLCAyLCAyNDgsIDE1NCwgMjYsIDYsIDEsIDI0NSwgMTAyLCAyLCAyMjQsIDE1NiwgMjIsIDIxNCwgCisgICAgMTMsIDI2LCA2LCAxLCAyNDUsIDEwMiwgMiwgMjQ4LCAxNTUsIDIyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjQ1LCAxMDIsIDIsIAorICAgIDIyNCwgMTU2LCAyMiwgMjI2LCAxMTEsIDI2LCA2LCAxLCAyNDUsIDEwMiwgMiwgMjQ4LCAxNTUsIDIyLCAyMjYsIDExMSwgCisgICAgMjYsIDQsIDEsIDI0NSwgNjUsIDIsIDIyNCwgMTU1LCAyNiwgNCwgMSwgMjQ1LCA2NSwgMiwgMjQ4LCAxNTQsIDI2LCA0LCAxLCAKKyAgICAyNDUsIDY1LCAyLCAyMjQsIDE1NiwgMjIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyNDUsIDY1LCAyLCAyNDgsIDE1NSwgMjIsIAorICAgIDIxNCwgMTMsIDI2LCA0LCAxLCAyNDUsIDY1LCAyLCAyMjQsIDE1NiwgMjIsIDIyNiwgMTExLCAyNiwgNCwgMSwgMjQ1LCA2NSwgCisgICAgMiwgMjQ4LCAxNTUsIDIyLCAyMjYsIDExMSwgMjYsIDQsIDEsIDI0NSwgNjUsIDIsIDIyNCwgMTU2LCAyMiwgMjI1LCAxNzYsIAorICAgIDI2LCA0LCAxLCAyNDUsIDY1LCAyLCAyNDgsIDE1NSwgMjIsIDIyNSwgMTc2LCAyNiwgNiwgMSwgMjQ1LCA2NSwgMiwgMjI0LCAKKyAgICAxNTUsIDI2LCA2LCAxLCAyNDUsIDY1LCAyLCAyNDgsIDE1NCwgMjYsIDYsIDEsIDI0NSwgNjUsIDIsIDIyNCwgMTU2LCAyMiwgCisgICAgMjE0LCAxMywgMjYsIDYsIDEsIDI0NSwgNjUsIDIsIDI0OCwgMTU1LCAyMiwgMjE0LCAxMywgMjYsIDYsIDEsIDI0NSwgNjUsIAorICAgIDIsIDIyNCwgMTU2LCAyMiwgMjI2LCAxMTEsIDI2LCA2LCAxLCAyNDUsIDY1LCAyLCAyNDgsIDE1NSwgMjIsIDIyNiwgMTExLCAKKyAgICAyNiwgNiwgMSwgMjQ1LCA2NSwgMiwgMjI0LCAxNTYsIDIyLCAyMjUsIDE3NiwgMjYsIDYsIDEsIDI0NSwgNjUsIDIsIDI0OCwgCisgICAgMTU1LCAyMiwgMjI1LCAxNzYsIDI2LCA0LCAxLCAyMzUsIDE4NywgMiwgMjI0LCAxNTUsIDI2LCA0LCAxLCAyMzUsIDE4NywgCisgICAgMiwgMjQ4LCAxNTQsIDI2LCA0LCAxLCAyMzUsIDE4NywgMiwgMjI0LCAxNTYsIDIyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjM1LCAKKyAgICAxODcsIDIsIDI0OCwgMTU1LCAyMiwgMjE0LCAxMywgMjYsIDQsIDEsIDIzNSwgMTg3LCAyLCAyMjQsIDE1NiwgMjIsIDIyNiwgCisgICAgMTExLCAyNiwgNCwgMSwgMjM1LCAxODcsIDIsIDI0OCwgMTU1LCAyMiwgMjI2LCAxMTEsIDI2LCA0LCAxLCAyMzUsIDE4NywgCisgICAgMiwgMjI0LCAxNTYsIDIyLCAyMjUsIDE3NiwgMjYsIDQsIDEsIDIzNSwgMTg3LCAyLCAyNDgsIDE1NSwgMjIsIDIyNSwgMTc2LCAKKyAgICAyNiwgNiwgMSwgMjM1LCAxODcsIDIsIDIyNCwgMTU1LCAyNiwgNiwgMSwgMjM1LCAxODcsIDIsIDI0OCwgMTU0LCAyNiwgNiwgCisgICAgMSwgMjM1LCAxODcsIDIsIDIyNCwgMTU2LCAyMiwgMjE0LCAxMywgMjYsIDYsIDEsIDIzNSwgMTg3LCAyLCAyNDgsIDE1NSwgCisgICAgMjIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyMzUsIDE4NywgMiwgMjI0LCAxNTYsIDIyLCAyMjYsIDExMSwgMjYsIDYsIDEsIAorICAgIDIzNSwgMTg3LCAyLCAyNDgsIDE1NSwgMjIsIDIyNiwgMTExLCAyNiwgNiwgMSwgMjM1LCAxODcsIDIsIDIyNCwgMTU2LCAyMiwgCisgICAgMjI1LCAxNzYsIDI2LCA2LCAxLCAyMzUsIDE4NywgMiwgMjQ4LCAxNTUsIDIyLCAyMjUsIDE3NiwgMjYsIDQsIDEsIDIyNiwgCisgICAgMjAxLCAyLCAyMjQsIDE1NSwgMjYsIDQsIDEsIDIyNiwgMjAxLCAyLCAyNDgsIDE1NCwgMjYsIDQsIDEsIDIyNiwgMjAxLCAyLCAKKyAgICAyMjQsIDE1NiwgMjIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyMjYsIDIwMSwgMiwgMjQ4LCAxNTUsIDIyLCAyMTQsIDEzLCAyNiwgCisgICAgNCwgMSwgMjI2LCAyMDEsIDIsIDIyNCwgMTU2LCAyMiwgMjI2LCAxMTEsIDI2LCA0LCAxLCAyMjYsIDIwMSwgMiwgMjQ4LCAKKyAgICAxNTUsIDIyLCAyMjYsIDExMSwgMjYsIDYsIDEsIDIyNiwgMjAxLCAyLCAyMjQsIDE1NSwgMjYsIDYsIDEsIDIyNiwgMjAxLCAKKyAgICAyLCAyNDgsIDE1NCwgMjYsIDYsIDEsIDIyNiwgMjAxLCAyLCAyMjQsIDE1NiwgMjIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyMjYsIAorICAgIDIwMSwgMiwgMjQ4LCAxNTUsIDIyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjI2LCAyMDEsIDIsIDIyNCwgMTU2LCAyMiwgMjI2LCAKKyAgICAxMTEsIDI2LCA2LCAxLCAyMjYsIDIwMSwgMiwgMjQ4LCAxNTUsIDIyLCAyMjYsIDExMSwgMjYsIDQsIDEsIDIxNCwgMTU4LCAKKyAgICAyLCAyMjQsIDE1NSwgMjYsIDQsIDEsIDIxNCwgMTU4LCAyLCAyNDgsIDE1NCwgMjYsIDQsIDEsIDIxNCwgMTU4LCAyLCAyMjQsIAorICAgIDE1NiwgMjIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjQ4LCAxNTUsIDIyLCAyMTQsIDEzLCAyNiwgNCwgMSwgCisgICAgMjE0LCAxNTgsIDIsIDIyNCwgMTU2LCAyMiwgMjI2LCAxMTEsIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjQ4LCAxNTUsIDIyLCAKKyAgICAyMjYsIDExMSwgMjYsIDQsIDEsIDIxNCwgMTU4LCAyLCAyMjQsIDE1NiwgMjIsIDIyNSwgMTc2LCAyNiwgNCwgMSwgMjE0LCAKKyAgICAxNTgsIDIsIDI0OCwgMTU1LCAyMiwgMjI1LCAxNzYsIDI2LCA2LCAxLCAyMTQsIDE1OCwgMiwgMjQ4LCAxNTQsIDI2LCA2LCAKKyAgICAxLCAyMTQsIDE1OCwgMiwgMjQ4LCAxNTUsIDIyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjE0LCAxNTgsIDIsIDI0OCwgMTU1LCAKKyAgICAyMiwgMjI2LCAxMTEsIDI2LCA2LCAxLCAyMTQsIDE1OCwgMiwgMjQ4LCAxNTUsIDIyLCAyMjUsIDE3NiwgMjYsIDQsIDEsIAorICAgIDIyNiwgMjAzLCAyLCAyMjQsIDE1NSwgMjYsIDQsIDEsIDIyNiwgMjAzLCAyLCAyNDgsIDE1NCwgMjYsIDQsIDEsIDIyNiwgCisgICAgMjAzLCAyLCAyMjQsIDE1NiwgMjIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyMjYsIDIwMywgMiwgMjQ4LCAxNTUsIDIyLCAyMTQsIAorICAgIDEzLCAyNiwgNCwgMSwgMjI2LCAyMDMsIDIsIDIyNCwgMTU2LCAyMiwgMjI2LCAxMTEsIDI2LCA0LCAxLCAyMjYsIDIwMywgMiwgCisgICAgMjQ4LCAxNTUsIDIyLCAyMjYsIDExMSwgMjYsIDQsIDEsIDIyNiwgMjAzLCAyLCAyMjQsIDE1NiwgMjIsIDIyNSwgMTc2LCAKKyAgICAyNiwgNCwgMSwgMjI2LCAyMDMsIDIsIDI0OCwgMTU1LCAyMiwgMjI1LCAxNzYsIDI2LCA2LCAxLCAyMjYsIDIwMywgMiwgCisgICAgMjI0LCAxNTUsIDI2LCA2LCAxLCAyMjYsIDIwMywgMiwgMjQ4LCAxNTQsIDI2LCA2LCAxLCAyMjYsIDIwMywgMiwgMjI0LCAKKyAgICAxNTYsIDIyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjI2LCAyMDMsIDIsIDI0OCwgMTU1LCAyMiwgMjE0LCAxMywgMjYsIDYsIDEsIAorICAgIDIyNiwgMjAzLCAyLCAyMjQsIDE1NiwgMjIsIDIyNiwgMTExLCAyNiwgNiwgMSwgMjI2LCAyMDMsIDIsIDI0OCwgMTU1LCAyMiwgCisgICAgMjI2LCAxMTEsIDI2LCA2LCAxLCAyMjYsIDIwMywgMiwgMjI0LCAxNTYsIDIyLCAyMjUsIDE3NiwgMjYsIDYsIDEsIDIyNiwgCisgICAgMjAzLCAyLCAyNDgsIDE1NSwgMjIsIDIyNSwgMTc2LCAyNiwgNCwgMSwgMjU0LCAxNDUsIDIsIDIxNCwgMTMsIDI2LCA0LCAxLCAKKyAgICAyNTQsIDE0NSwgMiwgMjI2LCAxMTEsIDI2LCA0LCAxLCAyNDUsIDEwMiwgMiwgMjE0LCAxMywgMjYsIDQsIDEsIDI0NSwgCisgICAgMTAyLCAyLCAyMjYsIDExMSwgMjYsIDQsIDEsIDI0NSwgNjUsIDIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyNDUsIDY1LCAyLCAKKyAgICAyMjYsIDExMSwgMjYsIDQsIDEsIDIzNSwgMTg3LCAyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjM1LCAxODcsIDIsIDIyNiwgCisgICAgMTExLCAyNiwgNCwgMSwgMjI2LCAyMDEsIDIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyMjYsIDIwMSwgMiwgMjI2LCAxMTEsIDI2LCAKKyAgICA0LCAxLCAyMTQsIDE1OCwgMiwgMjE0LCAxMywgMjYsIDQsIDEsIDIxNCwgMTU4LCAyLCAyMjYsIDExMSwgMjYsIDQsIDEsIAorICAgIDIyNiwgMjAzLCAyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjI2LCAyMDMsIDIsIDIyNiwgMTExLCAyNiwgNCwgMSwgMjU0LCAKKyAgICAxNDUsIDIsIDIyNCwgMTU2LCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyNTQsIDE0NSwgMiwgMjQ4LCAxNTUsIDIyLCAyMTAsIAorICAgIDIxOSwgMjYsIDQsIDEsIDI1NCwgMTQ1LCAyLCAyMjQsIDE1NiwgMjIsIDIxNCwgMTQsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIAorICAgIDEsIDI1NCwgMTQ1LCAyLCAyNDgsIDE1NSwgMjIsIDIxNCwgMTQsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDI1NCwgMTQ1LCAKKyAgICAyLCAyMjQsIDE1NiwgMjIsIDIyNiwgMTEyLCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyNTQsIDE0NSwgMiwgMjQ4LCAxNTUsIAorICAgIDIyLCAyMjYsIDExMiwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjU0LCAxNDUsIDIsIDIyNCwgMTU2LCAyMiwgMjI1LCAKKyAgICAxNzcsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDI1NCwgMTQ1LCAyLCAyNDgsIDE1NSwgMjIsIDIyNSwgMTc3LCAyMiwgCisgICAgMjEwLCAyMTksIDI2LCA2LCAxLCAyNTQsIDE0NSwgMiwgMjI0LCAxNTYsIDIyLCAyMjQsIDE2OCwgMjYsIDYsIDEsIDI1NCwgCisgICAgMTQ1LCAyLCAyNDgsIDE1NSwgMjIsIDIyNCwgMTY4LCAyNiwgNiwgMSwgMjU0LCAxNDUsIDIsIDIyNCwgMTU2LCAyMiwgMjE0LCAKKyAgICAxNCwgMjIsIDIyNCwgMTY4LCAyNiwgNiwgMSwgMjU0LCAxNDUsIDIsIDI0OCwgMTU1LCAyMiwgMjE0LCAxNCwgMjIsIDIyNCwgCisgICAgMTY4LCAyNiwgNiwgMSwgMjU0LCAxNDUsIDIsIDIyNCwgMTU2LCAyMiwgMjI2LCAxMTIsIDIyLCAyMjQsIDE2OCwgMjYsIDYsIAorICAgIDEsIDI1NCwgMTQ1LCAyLCAyNDgsIDE1NSwgMjIsIDIyNiwgMTEyLCAyMiwgMjI0LCAxNjgsIDI2LCA2LCAxLCAyNTQsIDE0NSwgCisgICAgMiwgMjI0LCAxNTYsIDIyLCAyMjUsIDE3NywgMjIsIDIyNCwgMTY4LCAyNiwgNiwgMSwgMjU0LCAxNDUsIDIsIDI0OCwgMTU1LCAKKyAgICAyMiwgMjI1LCAxNzcsIDIyLCAyMjQsIDE2OCwgMjYsIDQsIDEsIDI0NSwgNjUsIDIsIDIyNCwgMTU2LCAyMiwgMjEwLCAyMTksIAorICAgIDI2LCA0LCAxLCAyNDUsIDY1LCAyLCAyNDgsIDE1NSwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjQ1LCA2NSwgMiwgMjI0LCAKKyAgICAxNTYsIDIyLCAyMTQsIDE0LCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyNDUsIDY1LCAyLCAyNDgsIDE1NSwgMjIsIDIxNCwgCisgICAgMTQsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDI0NSwgNjUsIDIsIDIyNCwgMTU2LCAyMiwgMjI2LCAxMTIsIDIyLCAyMTAsIAorICAgIDIxOSwgMjYsIDQsIDEsIDI0NSwgNjUsIDIsIDI0OCwgMTU1LCAyMiwgMjI2LCAxMTIsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIAorICAgIDEsIDI0NSwgNjUsIDIsIDIyNCwgMTU2LCAyMiwgMjI1LCAxNzcsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDI0NSwgNjUsIAorICAgIDIsIDI0OCwgMTU1LCAyMiwgMjI1LCAxNzcsIDIyLCAyMTAsIDIxOSwgMjYsIDYsIDEsIDI0NSwgNjUsIDIsIDIyNCwgMTU2LCAKKyAgICAyMiwgMjI0LCAxNjgsIDI2LCA2LCAxLCAyNDUsIDY1LCAyLCAyNDgsIDE1NSwgMjIsIDIyNCwgMTY4LCAyNiwgNiwgMSwgCisgICAgMjQ1LCA2NSwgMiwgMjI0LCAxNTYsIDIyLCAyMTQsIDE0LCAyMiwgMjI0LCAxNjgsIDI2LCA2LCAxLCAyNDUsIDY1LCAyLCAKKyAgICAyNDgsIDE1NSwgMjIsIDIxNCwgMTQsIDIyLCAyMjQsIDE2OCwgMjYsIDYsIDEsIDI0NSwgNjUsIDIsIDIyNCwgMTU2LCAyMiwgCisgICAgMjI2LCAxMTIsIDIyLCAyMjQsIDE2OCwgMjYsIDYsIDEsIDI0NSwgNjUsIDIsIDI0OCwgMTU1LCAyMiwgMjI2LCAxMTIsIDIyLCAKKyAgICAyMjQsIDE2OCwgMjYsIDYsIDEsIDI0NSwgNjUsIDIsIDIyNCwgMTU2LCAyMiwgMjI1LCAxNzcsIDIyLCAyMjQsIDE2OCwgMjYsIAorICAgIDYsIDEsIDI0NSwgNjUsIDIsIDI0OCwgMTU1LCAyMiwgMjI1LCAxNzcsIDIyLCAyMjQsIDE2OCwgMjYsIDQsIDEsIDIyNiwgCisgICAgMjAzLCAyLCAyMjQsIDE1NiwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjI2LCAyMDMsIDIsIDI0OCwgMTU1LCAyMiwgMjEwLCAKKyAgICAyMTksIDI2LCA0LCAxLCAyMjYsIDIwMywgMiwgMjI0LCAxNTYsIDIyLCAyMTQsIDE0LCAyMiwgMjEwLCAyMTksIDI2LCA0LCAKKyAgICAxLCAyMjYsIDIwMywgMiwgMjQ4LCAxNTUsIDIyLCAyMTQsIDE0LCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyMjYsIDIwMywgCisgICAgMiwgMjI0LCAxNTYsIDIyLCAyMjYsIDExMiwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjI2LCAyMDMsIDIsIDI0OCwgMTU1LCAKKyAgICAyMiwgMjI2LCAxMTIsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDIyNiwgMjAzLCAyLCAyMjQsIDE1NiwgMjIsIDIyNSwgCisgICAgMTc3LCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyMjYsIDIwMywgMiwgMjQ4LCAxNTUsIDIyLCAyMjUsIDE3NywgMjIsIAorICAgIDIxMCwgMjE5LCAyNiwgNiwgMSwgMjI2LCAyMDMsIDIsIDIyNCwgMTU2LCAyMiwgMjI0LCAxNjgsIDI2LCA2LCAxLCAyMjYsIAorICAgIDIwMywgMiwgMjQ4LCAxNTUsIDIyLCAyMjQsIDE2OCwgMjYsIDYsIDEsIDIyNiwgMjAzLCAyLCAyMjQsIDE1NiwgMjIsIDIxNCwgCisgICAgMTQsIDIyLCAyMjQsIDE2OCwgMjYsIDYsIDEsIDIyNiwgMjAzLCAyLCAyNDgsIDE1NSwgMjIsIDIxNCwgMTQsIDIyLCAyMjQsIAorICAgIDE2OCwgMjYsIDYsIDEsIDIyNiwgMjAzLCAyLCAyMjQsIDE1NiwgMjIsIDIyNiwgMTEyLCAyMiwgMjI0LCAxNjgsIDI2LCA2LCAKKyAgICAxLCAyMjYsIDIwMywgMiwgMjQ4LCAxNTUsIDIyLCAyMjYsIDExMiwgMjIsIDIyNCwgMTY4LCAyNiwgNiwgMSwgMjI2LCAyMDMsIAorICAgIDIsIDIyNCwgMTU2LCAyMiwgMjI1LCAxNzcsIDIyLCAyMjQsIDE2OCwgMjYsIDYsIDEsIDIyNiwgMjAzLCAyLCAyNDgsIDE1NSwgCisgICAgMjIsIDIyNSwgMTc3LCAyMiwgMjI0LCAxNjgsIDI2LCA0LCAxLCAyNTQsIDE0NSwgMiwgMjEzLCAxMjAsIDI2LCA0LCAxLCAKKyAgICAyNTQsIDE0NSwgMiwgMjMxLCAyMzMsIDI2LCA0LCAxLCAyNTQsIDE0NSwgMiwgMjE0LCAxNCwgMjIsIDIxMCwgMjE5LCAyNiwgCisgICAgNCwgMSwgMjU0LCAxNDUsIDIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjU0LCAxNDUsIDIsIDIyNiwgMTEyLCAyMiwgMjEwLCAKKyAgICAyMTksIDI2LCA0LCAxLCAyNTQsIDE0NSwgMiwgMjI1LCAxNzYsIDI2LCA0LCAxLCAyNTQsIDE0NSwgMiwgMjI1LCAxNzcsIAorICAgIDIyLCAyMTAsIDIxOSwgMjYsIDYsIDEsIDI1NCwgMTQ1LCAyLCAyMTMsIDEyMCwgMjYsIDYsIDEsIDI1NCwgMTQ1LCAyLCAKKyAgICAyMzEsIDIzMywgMjYsIDYsIDEsIDI1NCwgMTQ1LCAyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjU0LCAxNDUsIDIsIDIyNiwgCisgICAgMTExLCAyNiwgNiwgMSwgMjU0LCAxNDUsIDIsIDIyNCwgMTY4LCAyNiwgMjM0LCAzLCAyNiwgMjI0LCAxNjgsIDI2LCAyMjQsIAorICAgIDE1NSwgMjYsIDIyNSwgMTc2LCAyNiwgMjQ3LCAyNTMsIDIyLCAyMjUsIDE3NiwgMjYsIDQsIDEsIDI0NSwgNjUsIDIsIDIxNCwgCisgICAgMTQsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDI0NSwgNjUsIDIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjQ1LCA2NSwgMiwgCisgICAgMjI2LCAxMTIsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDI0NSwgNjUsIDIsIDIyNSwgMTc2LCAyNiwgNCwgMSwgMjQ1LCAKKyAgICA2NSwgMiwgMjI1LCAxNzcsIDIyLCAyMTAsIDIxOSwgMjYsIDYsIDEsIDI0NSwgMTAyLCAyLCAyMTQsIDEzLCAyNiwgNiwgMSwgCisgICAgMjQ1LCAxMDIsIDIsIDIyNiwgMTExLCAyNiwgNiwgMSwgMjQ1LCA2NSwgMiwgMjE0LCAxMywgMjYsIDYsIDEsIDI0NSwgNjUsIAorICAgIDIsIDIyNiwgMTExLCAyNiwgNiwgMSwgMjQ1LCA2NSwgMiwgMjI0LCAxNjgsIDI2LCAyMjQsIDE1NiwgMjIsIDIxNCwgMTMsIAorICAgIDI2LCAyMjQsIDE1NiwgMjIsIDIyNiwgMTExLCAyNiwgMjI0LCAxNTYsIDIyLCAyMjUsIDE3NiwgMjYsIDQsIDEsIDIzNSwgCisgICAgMTg3LCAyLCAyMTMsIDEyMCwgMjYsIDQsIDEsIDIzNSwgMTg3LCAyLCAyMzEsIDIzMywgMjYsIDQsIDEsIDIzNSwgMTg3LCAyLCAKKyAgICAyNDcsIDI1MywgMjIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyMzUsIDE4NywgMiwgMjQ3LCAyNTMsIDIyLCAyMjYsIDExMSwgMjYsIAorICAgIDQsIDEsIDIzNSwgMTg3LCAyLCAyMjUsIDE3NiwgMjYsIDQsIDEsIDIzNSwgMTg3LCAyLCAyNDcsIDI1MywgMjIsIDIyNSwgCisgICAgMTc2LCAyNiwgNiwgMSwgMjM1LCAxODcsIDIsIDIxMywgMTIwLCAyNiwgNiwgMSwgMjM1LCAxODcsIDIsIDIzMSwgMjMzLCAKKyAgICAyNiwgNiwgMSwgMjM1LCAxODcsIDIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyMzUsIDE4NywgMiwgMjI2LCAxMTEsIDI2LCAyNDgsIAorICAgIDE1NSwgMjIsIDIxNCwgMTMsIDI2LCAyNDgsIDE1NSwgMjIsIDIyNiwgMTExLCAyNiwgMjQ4LCAxNTUsIDIyLCAyMjUsIDE3NiwgCisgICAgMjYsIDQsIDEsIDIxNCwgMTU4LCAyLCAyMTMsIDEyMCwgMjYsIDQsIDEsIDIxNCwgMTU4LCAyLCAyMzEsIDIzMywgMjYsIDQsIAorICAgIDEsIDIxNCwgMTU4LCAyLCAyNDcsIDI1MywgMjIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjQ3LCAyNTMsIAorICAgIDIyLCAyMjYsIDExMSwgMjYsIDQsIDEsIDIyMywgMzksIDIsIDIyNCwgMTU1LCAyNiwgNCwgMSwgMjIzLCAzOSwgMiwgMjQ4LCAKKyAgICAxNTQsIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjI1LCAxNzYsIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjQ3LCAyNTMsIAorICAgIDIyLCAyMjUsIDE3NiwgMjYsIDYsIDEsIDIxNCwgMTU4LCAyLCAyMTMsIDEyMCwgMjYsIDYsIDEsIDIxNCwgMTU4LCAyLCAKKyAgICAyMzEsIDIzMywgMjYsIDYsIDEsIDIxNCwgMTU4LCAyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjE0LCAxNTgsIDIsIDIyNiwgCisgICAgMTExLCAyNiwgNiwgMSwgMjIzLCAzOSwgMiwgMjQ4LCAxNTQsIDI2LCAyNDcsIDI1MywgMjIsIDIxNCwgMTMsIDI2LCAyNDcsIAorICAgIDI1MywgMjIsIDIyNiwgMTExLCAyNiwgMjE0LCAxMywgMjYsIDQsIDEsIDIyNiwgMjAzLCAyLCAyMTQsIDE0LCAyMiwgMjEwLCAKKyAgICAyMTksIDI2LCA0LCAxLCAyMjYsIDIwMywgMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyMjYsIDIwMywgMiwgMjI2LCAxMTIsIAorICAgIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDIyNiwgMjAzLCAyLCAyMjUsIDE3NiwgMjYsIDQsIDEsIDIyNiwgMjAzLCAyLCAKKyAgICAyMjUsIDE3NywgMjIsIDIxMCwgMjE5LCAyNiwgNiwgMSwgMjI2LCAyMDEsIDIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyMjYsIAorICAgIDIwMSwgMiwgMjI2LCAxMTEsIDI2LCA2LCAxLCAyMjYsIDIwMywgMiwgMjE0LCAxMywgMjYsIDYsIDEsIDIyNiwgMjAzLCAyLCAKKyAgICAyMjYsIDExMSwgMjYsIDYsIDEsIDIyNiwgMjAzLCAyLCAyMjQsIDE2OCwgMjYsIDIyNiwgMTExLCAyNiwgMjQ4LCAxNTQsIAorICAgIDI0NSwgMTUyLCAyMjQsIDI4LCAyNDUsIDE2MSwgMjI0LCAyOCwgMjQ1LCAxNTIsIDIxOSwgMTksIDI0NSwgMTYxLCAyMTksIAorICAgIDE5LCAyMTYsIDE0MiwgMjE5LCAxOSwgMjQ0LCAxMCwgMjE5LCAxOSwgMjE5LCAxMjQsIDIxOSwgMTksIDI0NCwgMTEzLCAKKyAgICAyMTksIDE5LCAyMjQsIDE0MiwgMjE5LCAxOSwgMjE2LCAxNzEsIDIxOSwgMTksIDI0MiwgMzYsIDIxOSwgMTksIDIxMCwgODcsIAorICAgIDIxMSwgMjQ1LCAyMTksIDE5LCAyMTAsIDg3LCAyMTEsIDI0NSwgMjI4LCA2OCwgMjEwLCA4NywgMjExLCAyNDUsIDIzNSwgCisgICAgNjQsIDIzMywgMzksIDc4LCAyMjIsIDI0NCwgNzgsIDI0MCwgMTY5LCAyMjgsIDY5LCAyNDAsIDE2OSwgMjQ0LCAxMTMsIAorICAgIDI0OCwgMTU3LCAyNDUsIDE1MiwgMjQ4LCAxNTcsIDI0NSwgMTYxLCAyNDgsIDE1NywgMjAzLCAxMzAsIDUyLCA2NywgMjMyLCAKKyAgICAyMTQsIDUyLCAxMjEsIDIzMiwgMjE0LCA0MywgMjE5LCAxNTYsIDIyMywgMjU1LCA3OCwgNDQsIDIxOSwgMTU2LCAyMjMsIAorICAgIDI1NSwgNzgsIDIxOSwgMTU2LCAyMzIsIDExMCwgMjIzLCAyNTUsIDc4LCAyMTksIDE1NiwgMjQxLCAxNjQsIDIyMywgMjU1LCAKKyAgICA3OCwgNDMsIDUyLCAyMjMsIDI1NSwgNzgsIDQ0LCA1MiwgMjIzLCAyNTUsIDc4LCA1MiwgMjMyLCAxMTAsIDIyMywgMjU1LCAKKyAgICA3OCwgNTIsIDI0MSwgMTY0LCAyMjMsIDI1NSwgNzgsIDI0OCwgMjA2LCA1MiwgMjQ4LCAyMDYsIDI1MSwgMTE0LCAyMTUsIAorICAgIDIyMywgMjUxLCAxMTQsIDEyMywgNTksIDIzMywgNTcsIDExMywgNTksIDIzMywgNTcsIDIwMywgMjQ1LCAxNjQsIDI0MCwgCisgICAgMTY3LCAyMjUsIDExLCAyMzIsIDIxNSwgMjIwLCAxMzgsIDIyNiwgMTYsIDIyMCwgMTM4LCAyMzMsIDM5LCAyNDUsIDE1OSwgCisgICAgMjIyLCAyNDQsIDI0NSwgMTU5LCAyMjQsIDI0NywgMjQ3LCAxOTcsIDI0NCwgMjAsIDIzMywgMzksIDIyNiwgMTE4LCAyMjIsIAorICAgIDI0NCwgMjI2LCAxMTgsIDIyOSwgMTk1LCAyMjgsIDc0LCAyMTksIDE5LCAyMjUsIDE4NCwgMjMwLCAxOTQsIDUwLCAyMjUsIAorICAgIDE4NCwgMjE2LCAyNDksIDIxNiwgMTQ5LCA1MCwgMjI0LCAxOTEsIDUyLCAyMjQsIDE5MSwgMjE1LCAyMTIsIDIyNCwgMTkxLCAKKyAgICAyMjMsIDUwLCAyMjQsIDE5MSwgMjIzLCA1MCwgNTIsIDIyNCwgMTkxLCAyMjMsIDUwLCAyMTUsIDIxMiwgMjI0LCAxOTEsIAorICAgIDI1MCwgMjM5LCAyMTksIDE1NiwgMjMzLCA0MywgMjU0LCAxMTEsIDIyMywgMjU1LCA3OCwgMjE5LCAxNTYsIDIyMiwgMjQ4LCAKKyAgICAyNTQsIDExMSwgMjIzLCAyNTUsIDc4LCAyMjMsIDEwOCwgNzgsIDUyLCAyNDUsIDMyLCA3OCwgMjM1LCAyMDIsIDIyNiwgCisgICAgMTIwLCAyMTQsIDE4MCwgMTM1LCAyMTYsIDExMiwgMjUwLCAyNDAsIDIzNSwgMjE3LCAyMjUsIDExLCAyNTMsIDIxNSwgMjQwLCAKKyAgICAxNzAsIDI1MSwgMTE0LCAyNDQsIDMsIDIxOSwgOTYsIDQzLCA0MiwgMjUxLCAxNTksIDIsIDIyNCwgOCwgNDQsIDQyLCAyNTEsIAorICAgIDE1OSwgMiwgMjI0LCA4LCA1MiwgMjI0LCAxNCwgNzgsIDIyNCwgMTQsIDI0NSwgMzIsIDc4LCAyNDUsIDMyLCAyMjQsIDE0LCAKKyAgICA3OCwgMjE2LCA3MSwgNSwgMjQ1LCA2NiwgMjIzLCA1MCwgMjI1LCA2OSwgNTAsIDg1LCAxNDAsIDI1MSwgMTE0LCA4NSwgOTcsIAorICAgIDI1MSwgMTE0LCAxMjEsIDI1MywgMjE3LCAyMjMsIDUwLCAyMjAsIDE1MSwgMjUwLCAyLCAyMTQsIDE2MywgMTEzLCAyNTMsIAorICAgIDIxNiwgMjU0LCAxNTksIDIxMywgMTg4LCAyNDksIDIxOCwgMjMwLCAxODMsIDUwLCAyMTcsIDIzNSwgMjQ4LCAxNTcsIDIzNSwgCisgICAgMTk0LCAyMTQsIDE4MCwgMjQ0LCA1MywgMjI0LCAxNDIsIDc4LCAxMzQsIDU5LCAyMjQsIDE0MSwgMjI0LCAyNSwgMjI0LCAKKyAgICAxOTEsIDI0NCwgMTIsIDU5LCAyMjQsIDE0MSwgMjQ0LCA4MiwgNTksIDIyNCwgMTQxLCAxMTMsIDU5LCAyMjQsIDE0MSwgCisgICAgMjQ0LCAxMiwgNTksIDc4LCAyNDYsIDExOSwgMjQ5LCAxMzEsIDIxNSwgMjIyLCA2NywgMjQ0LCAxMiwgMjQ3LCAxMTksIAorICAgIDIzMSwgODMsIDExLCAyMTksIDE5LCAyMTEsIDIwOSwgMjM1LCA2NCwgMjQzLCAyMjgsIDI1NCwgNTMsIDIzNSwgMTkyLCAKKyAgICAyMTYsIDg2LCAyMzUsIDE5MiwgMjIwLCAxMzgsIDIzNSwgMTkyLCAyMjUsIDIzLCAyMzUsIDIyOSwgMjE3LCAxODMsIDIxNywgCisgICAgMjUyLCAyNTUsIDYsIDIxNywgMTgzLCAyMTcsIDI1MiwgMjM1LCAyMjksIDEwLCAyNDQsIDIxLCAyMjAsIDgxLCAyNTUsIDYsIAorICAgIDEwLCAyNDQsIDIxLCAyMjAsIDgxLCAyMjksIDE5MCwgMjEsIDIyMCwgODIsIDIyOCwgNzAsIDIxLCAyMjAsIDgyLCAyMTgsIAorICAgIDI0LCAyMTAsIDg2LCAyMTgsIDI0LCA3LCA0LCAxLCA3MywgMjE4LCAyNCwgMTYxLCAyMTgsIDI0LCAxODksIDIxOCwgMjQsIAorICAgIDE5NCwgMjE4LCAyNCwgMTk4LCAyMTgsIDI0LCAxOTUsIDIxOCwgMjQsIDIwMCwgMjE4LCAyNCwgOTYsIDUwLCAyMTgsIDI0LCAKKyAgICAyMzAsIDE4MiwgMjE4LCAyNCwgMjQ1LCA5OSwgNTAsIDIxOCwgMjQsIDQzLCAyMjYsIDQsIDIxOCwgMjQsIDQ0LCAyMjYsIDQsIAorICAgIDIxOCwgMjQsIDcsIDQsIDEsIDIzMCwgMjYsIDIxOCwgNjYsIDIxMCwgODYsIDIxOCwgNjYsIDExMCwgMjE4LCA2NiwgMTA1LCAKKyAgICAyMTgsIDY2LCAxNTgsIDIxOCwgNjYsIDE2MSwgMjE4LCA2NiwgMTg5LCAyMTgsIDY2LCAxOTQsIDIxOCwgNjYsIDE5OCwgCisgICAgMjE4LCA2NiwgMTk1LCAyMTgsIDY2LCAyMDAsIDIxOCwgNjYsIDk2LCA1MCwgMjE4LCA2NiwgMjMwLCAxODIsIDIxOCwgNjYsIAorICAgIDI0NSwgOTksIDUwLCAyMTgsIDY2LCA0MywgMjI2LCA0LCAyMTgsIDY2LCA0NCwgMjI2LCA0LCA3LCAyMTgsIDY2LCA0LCAxLCAKKyAgICA2MSwgNywgMjE4LCA2NiwgNCwgMSwgNzUsIDcsIDIxOCwgNjYsIDQsIDEsIDc2LCA3LCAyMTgsIDY2LCA0LCAxLCAyMTEsIAorICAgIDE3OCwgNywgMjE4LCA2NiwgNCwgMSwgMjIxLCAxOTYsIDcsIDIxOCwgNjYsIDQsIDEsIDI0MiwgNjEsIDcsIDIxOCwgNjYsIAorICAgIDQsIDEsIDIzNSwgMjQsIDcsIDIxOCwgNjYsIDQsIDEsIDE1NiwgNywgMjE4LCA2NiwgNCwgMSwgMTkzLCA3LCAyMTgsIDY2LCAKKyAgICA0LCAxLCAyMzAsIDI2LCA3LCAyMTgsIDY2LCA0LCAxLCAyMjYsIDEwNiwgNywgMjE4LCA2NiwgNCwgMSwgMjIyLCA5MiwgNywgCisgICAgMjE4LCA2NiwgNCwgMSwgMjE3LCAxNTMsIDI0NSwgNDcsIDUwLCAyNDksIDIyOCwgNTAsIDI0OSwgMTE4LCA1MCwgMjQzLCAKKyAgICAyNTIsIDI0MywgMjU1LCA1MCwgMjMyLCAxOTksIDUwLCAyMzAsIDE5NSwgNTAsIDIyOSwgMjExLCA1MCwgMjI1LCAxNjMsIAorICAgIDUwLCAyMjIsIDExOSwgNTAsIDIxMSwgMjE3LCA1MCwgMTY2LCAyMjAsIDUwLCA1MCwgMjQ3LCAxMjgsIDUwLCAyNDUsIDQ4LCAKKyAgICA1MCwgMjM0LCA3NywgNTAsIDIxNSwgMTEzLCA1MCwgMjQ2LCAxMDIsIDUwLCAyNDMsIDQxLCAyMjUsIDE5NCwgNTAsIDIyNSwgCisgICAgMTYxLCA1MCwgMjQyLCAxMTAsIDUwLCAyNTMsIDE4MywgNTAsIDI0MCwgMjI5LCA1MCwgMjUwLCAxODYsIDUwLCAyMzIsIAorICAgIDE5MiwgMjE2LCA0LCA1MCwgMjE5LCAxLCA1MCwgMjE2LCAyNDYsIDUwLCAyMzUsIDI0MiwgMjIyLCAxMTksIDUwLCAyMTUsIAorICAgIDk3LCAyMzIsIDE5OSwgNTAsIDM4LCA0MywgMjQyLCAwLCA0OCwgMzgsIDQ0LCAyNDIsIDAsIDQ4LCAzOCwgMTk5LCA2NywgCisgICAgMjMyLCAyMTUsIDIyNiwgMTIxLCAzOCwgMjE5LCAyNTIsIDY3LCAyMzIsIDIxNSwgMjI2LCAxMjEsIDM4LCAyNTQsIDg5LCAKKyAgICA4MCwgNDgsIDM4LCAyNTAsIDMsIDgwLCA0OCwgMzgsIDQzLCA4MCwgNDgsIDM4LCA0NCwgODAsIDQ4LCAzOCwgMjIyLCAyMzUsIAorICAgIDIyNiwgMTIxLCAzOCwgMjUwLCAzLCAyMjIsIDIzNSwgMjI2LCAxMjEsIDM4LCAyNTQsIDg5LCAyMjIsIDIzNSwgMjI2LCAKKyAgICAxMjEsIDM4LCAxMzQsIDE3MCwgNDgsIDM4LCAyNDQsIDEyLCAxNzAsIDQ4LCAzOCwgMjQ1LCAxNDcsIDI1MCwgMzYsIDM4LCAKKyAgICAyNDUsIDE0NywgMjE4LCAyMzUsIDM4LCAyNDUsIDE0NywgMjQ3LCAyNDksIDM4LCAyNDUsIDE0NywgMjUwLCAzNywgMjUyLCAKKyAgICAxODEsIDM4LCA0MywgNDQsIDgwLCA0OCwgMzgsIDI0NSwgMTQ3LCAyMjEsIDE4OSwgMzgsIDI0NSwgMTQ3LCAyMzQsIDEzNiwgCisgICAgMzgsIDI0NSwgMTQ3LCAyMTQsIDE1NSwgMjI1LCA4LCAyMTUsIDIyNiwgMzgsIDIyMywgNTEsIDIxOSwgNDgsIDIyNiwgMTIxLCAKKyAgICAzOCwgNTIsIDY3LCAyMTgsIDEwNCwgMjI2LCAxMjEsIDM4LCAyNTQsIDk5LCA4NywgMzgsIDIxNSwgMjEyLCAyMTQsIDE4MiwgCisgICAgMzgsIDIxMSwgMjQ3LCAyNTEsIDE0MSwgNDgsIDM4LCAxNDAsIDgwLCAyMjYsIDEyMSwgMzgsIDE5OSwgNTIsIDIxOSwgNDgsIAorICAgIDIyNiwgMTIxLCAzOCwgOTcsIDI0MiwgMCwgMiwgMjUyLCAxNDAsIDI0NiwgMTA0LCAzOCwgMTQwLCAyNDIsIDAsIDIsIDI1MiwgCisgICAgMTQwLCAyNDYsIDEwNCwgMzgsIDQzLCA4MCwgNTEsIDM4LCA0NCwgODAsIDUxLCAzOCwgMjUzLCAyMTgsIDQ4LCAyNTUsIDEyLCAKKyAgICAyMjYsIDIzMiwgMjU0LCAyNTIsIDIxNiwgNDMsIDIxNiwgMTk3LCAyMTgsIDc1LCAxMzksIDYsIDI1MSwgNjcsIDI0OCwgNzIsIAorICAgIDI1MCwgMTc5LCAyNTAsIDE3NiwgMjMyLCAyMTUsIDg3LCAyNTAsIDI0MSwgMjI2LCAyMzIsIDI1MSwgMjcsIDIxNCwgMTg5LCAKKyAgICAyNDUsIDQ5LCAyNDksIDE5MiwgMjIxLCAxODYsIDI0OCwgNzIsIDI0NCwgMTgwLCAxMTksIDQsIDI0MywgMjAzLCAxMTksIDYsIAorICAgIDI0MiwgNjEsIDI1MSwgMjIwLCA2LCAyNDIsIDYxLCAxMzksIDYsIDI0MiwgNjEsIDIyNSwgMzgsIDI0OSwgMTkyLCAyMjUsIAorICAgIDM4LCAyNDksIDE5MywgMTE3LCAxMTMsIDIyNSwgMTA5LCAxMTksIDYsIDczLCAyNTEsIDIyMCwgNiwgNzMsIDExOSwgNiwgCisgICAgMTU2LCAxMTksIDQsIDE1NiwgMjMzLCAxNTAsIDU3LCAyNTIsIDE0MiwgODcsIDEzOSwgNiwgMjMwLCAyNiwgMjI3LCAxOTcsIAorICAgIDUwLCAyMTksIDMyLCAyMjMsIDEyMCwgMjQ5LCAxNjMsIDExOSwgNiwgMjI2LCAxMDYsIDEzOSwgNiwgMjI2LCAxMDYsIDEzOSwgCisgICAgNiwgMjI0LCA5NywgMTE5LCA2LCAxNTMsIDI1MSwgMjIwLCA2LCAxNTMsIDEzOSwgNiwgMTUzLCAyMjQsIDE5NywgMjE3LCAKKyAgICA3MiwgMjIzLCA2MywgMjIwLCAxMzMsIDc4LCAyMTcsIDIsIDUwLCAyMTUsIDI1NCwgMTY0LCA1MCwgMjEzLCAyNDAsIDEzOSwgCisgICAgNiwgMjEwLCAxNTksIDIyNiwgMTM0LCA1MCwgMjI2LCAyMjIsIDUwLCAyMzUsIDE5NCwgMjI2LCAyMjIsIDUwLCAyNTEsIAorICAgIDIyMCwgNiwgMjEwLCAxNTksIDIxNSwgOTQsIDI2LCA0LCAxLCAyMzUsIDE4NiwgMjM0LCAxNzQsIDUwLCAyNTQsIDEwOCwgCisgICAgNTAsIDExOSwgNiwgMjUzLCAxNTksIDI1MSwgMjIwLCA2LCAyNTEsIDY3LCAyNDUsIDY5LCA4NywgMTE5LCA0LCA3NSwgMTE5LCAKKyAgICA2LCA3NSwgMTE5LCA2LCAyNDUsIDcsIDIxNSwgOTQsIDYsIDI0NSwgNywgMTE5LCA2LCAxOTMsIDExOSwgNCwgNzYsIDExMiwgCisgICAgODcsIDI1MiwgMzAsIDg3LCAyNDIsIDIwMywgODcsIDI0OCwgMTkxLCA4NywgMjM1LCAyMzMsIDIxOSwgMzAsIDIyMiwgMTg4LCAKKyAgICA2LCAyMjQsIDk3LCAyNDQsIDE4MywgNTAsIDEzOSwgNCwgMjI1LCAxMDksIDEzOSwgNCwgMjQzLCAxMDgsIDEzOSwgNiwgCisgICAgMjQzLCAxMDgsIDEzOSwgNiwgMjI1LCAxMDksIDEzOSwgMjMwLCAyNSwgMjE4LCA0MSwgMjE1LCA5NCwgMzUsIDYsIDI0MywgCisgICAgMjAzLCAyMTUsIDk0LCAzNSwgNiwgMTU2LCAyMjMsIDUwLCAzNSwgNiwgMTU2LCAyMTUsIDk0LCAzNSwgNiwgMjExLCAxMTcsIAorICAgIDEzOSwgMzIsIDYsIDI0OSwgNjEsIDEzOSwgMzIsIDQsIDI0OSwgNjEsIDEzOSwgMzIsIDQsIDc1LCAxMzksIDMyLCA0LCA3MywgCisgICAgMTM5LCAzMiwgNCwgMjM1LCAxNDUsIDIyNCwgMTcxLCAyMzIsIDIxNCwgMjE1LCA5NCwgMjU0LCAxMjcsIDIyNSwgMTg0LCAKKyAgICA1MCwgMjU0LCAxODEsIDIxNSwgOTQsIDQsIDI0NSwgNywgMTYsIDMxLCAyMjEsIDI1MywgMjE5LCAzMCwgMjEyLCAxMTQsIAorICAgIDI0NCwgMywgMTIzLCAyMjAsIDExOSwgMjEyLCAxMTQsIDI0NCwgMywgMTIzLCAyMjgsIDE5NSwgMjEyLCAxMTQsIDI0NCwgMywgCisgICAgMTIzLCAyMTYsIDI0MiwgMjEyLCAxMTQsIDI0NCwgMywgMTIzLCAyMTYsIDE2OSwgMjEyLCAxMTQsIDI0NCwgMywgMTEzLCAKKyAgICAyMTYsIDE2NywgMjEyLCAxMTQsIDI0NCwgMywgMTIzLCAyNDQsIDExOCwgMjEyLCAxMTQsIDI0NCwgMywgMTEzLCAyNDQsIAorICAgIDExNywgMjEyLCAxMTQsIDI0NCwgMywgMTM0LCAyNDQsIDExNywgMjEyLCAxMTQsIDI0NCwgMywgMjQ0LCAxMiwgMjQ0LCAKKyAgICAxMTcsIDIxMiwgMTE0LCAyNDQsIDMsIDEyMywgMjE5LCAxMTYsIDIxMiwgMTE0LCAyNDQsIDMsIDI0NCwgODIsIDIxOSwgCisgICAgMTE0LCAyMTIsIDExNCwgMjQ0LCAzLCAxMjMsIDI0NSwgMTg5LCAyMTIsIDExNCwgMjQ0LCAzLCAxMzQsIDI0NSwgMTg3LCAKKyAgICAyMTIsIDExNCwgMjQ0LCAzLCAyNDQsIDgyLCAyNDUsIDE4NywgMjEyLCAxMTQsIDI0NCwgMywgMjIwLCAxMjMsIDI0NSwgCisgICAgMTg3LCAyNDQsIDMsIDIyNywgMTk4LCAxMTAsIDIyMiwgMTk5LCAyMjcsIDE5OSwgMTEwLCAyMjIsIDE5OSwgMjI3LCAxOTksIAorICAgIDEwNSwgMjIyLCAxOTksIDIyNywgMTk5LCAxNTgsIDIyMiwgMTk5LCAyMjcsIDE5OSwgMTYxLCAyMjIsIDE5OSwgMjI3LCAKKyAgICAxOTksIDE4OSwgMjIyLCAxOTksIDIyNywgMTk5LCAxOTQsIDIyMiwgMTk5LCAyMjcsIDE5OSwgMTk4LCAyMjIsIDE5OSwgCisgICAgMjI3LCAxOTksIDE5NSwgMjIyLCAxOTksIDIyNywgMTk5LCAyMDAsIDIyMiwgMTk5LCAyMjcsIDE5OSwgMjE2LCAyNDgsIAorICAgIDIyMiwgMTk5LCAyMjcsIDE5OSwgMjQ1LCAxNjgsIDIyMiwgMTk5LCAyMjcsIDE5OSwgMjE1LCA3NiwgMjIyLCAxOTksIDIyNywgCisgICAgMTk5LCAyNDQsIDExNSwgMjIyLCAxOTksIDIyNywgMTk5LCAxMjMsIDI0MCwgMjExLCAyMjIsIDE5OSwgMjI3LCAxOTksIAorICAgIDI0NCwgODIsIDI0MCwgMjExLCAyMjIsIDE5OSwgMjI3LCAxOTksIDEyMywgMjE2LCAxNDgsIDQsIDIyMiwgMTk5LCAyMjcsIAorICAgIDE5OSwgMTEwLCA0LCAyMjIsIDE5OSwgMjI3LCAxOTksIDEwNSwgNCwgMjIyLCAxOTksIDIyNywgMTk5LCAxNTgsIDQsIDIyMiwgCisgICAgMTk5LCAyMjcsIDE5OSwgMTYxLCA0LCAyMjIsIDE5OSwgMjI3LCAxOTksIDE4OSwgNCwgMjIyLCAxOTksIDIyNywgMTk5LCAKKyAgICAxOTQsIDQsIDIyMiwgMTk5LCAyMjcsIDE5OSwgMTk4LCA0LCAyMjIsIDE5OSwgMjI3LCAxOTksIDE5NSwgNCwgMjIyLCAxOTksIAorICAgIDIyNywgMTk5LCAyMDAsIDQsIDIyMiwgMTk5LCAyMjcsIDE5OSwgMjE2LCAyNDgsIDQsIDIyMiwgMTk5LCAyMjcsIDE5OSwgCisgICAgMjQ1LCAxNjgsIDQsIDIyMiwgMTk5LCAyMjcsIDE5OSwgMjE1LCA3NiwgNCwgMjIyLCAxOTksIDIyNywgMTk5LCAyNDQsIAorICAgIDExNSwgNCwgMjIyLCAxOTksIDIyNywgMTk5LCAxMjMsIDI0MCwgMjExLCA0LCAyMjIsIDE5OSwgMjI3LCAxOTksIDI0NCwgCisgICAgODIsIDI0MCwgMjExLCA0LCAyMjIsIDE5OSwgMjI3LCAxOTksIDEyMywgMjE2LCAxNDgsIDIyMiwgMTk5LCAyMjcsIDE5OSwgCisgICAgMTIzLCAyMTYsIDE0OSwgMjUxLCA2OCwgMjQ5LCA2MSwgMjIyLCAxOTksIDIyNywgMTk5LCAyNDQsIDgyLCAyMTYsIDE0OCwgCisgICAgMjIyLCAxOTksIDIyNywgMTk5LCAyMTYsIDI0OSwgMjE2LCAxNDgsIDIyMiwgMTk5LCAyMjcsIDE5OSwgMjIzLCA1MCwgMTIzLCAKKyAgICAyNDAsIDIxMSwgNywgNCwgMSwgMjIzLCA1MCwgMjUxLCA2NywgMjIyLCAxOTksIDIyNywgMTk5LCAyMTksIDEyNiwgMjMzLCAKKyAgICA3OSwgMTcsIDIyMiwgMTk5LCAyMjcsIDE5OSwgMjQ0LCAxMTYsIDI0NSwgMjI3LCAxNywgMjIyLCAxOTksIDIyNywgMTk5LCAKKyAgICAyNDQsIDExNiwgMjE2LCAxNDgsIDIyMiwgMTk5LCAyMjcsIDE5OSwgMTIzLCAyNDAsIDIxMiwgMjE2LCAxNDgsIDIxMiwgCisgICAgMTE0LCAyNDQsIDMsIDIxMCwgODcsIDIxNiwgMTY3LCAxNDAsIDc0LCAyMTQsIDE1MywgNzQsIDk3LCA3NCwgMjQ2LCAxMDUsIAorICAgIDc0LCA0MywgNDQsIDc0LCAxMjAsIDEyNCwgNzQsIDIyOCwgNTcsIDIxMiwgOSwgNzQsIDIyOCwgNTcsIDI0NSwgMjIxLCA3NCwgCisgICAgMjE5LCAyOSwgMjQ1LCAyMjEsIDc0LCAyMTksIDI5LCAyMTIsIDksIDc0LCAxNDAsIDgwLCAyLCA5MSwgOTcsIDgwLCAyLCAKKyAgICA5MSwgMTQwLCAyMTIsIDM2LCA3NCwgOTcsIDIxMiwgMzYsIDc0LCAxNDAsIDExMywgMjQxLCAyMzUsIDc0LCAyMTQsIDE1MywgCisgICAgMTEzLCAyNDEsIDIzNSwgNzQsIDk3LCAxMTMsIDI0MSwgMjM1LCA3NCwgMjQ2LCAxMDUsIDExMywgMjQxLCAyMzUsIDc0LCAKKyAgICAxNDAsIDgwLCAyLCAyMTcsIDc4LCA5NywgODAsIDIsIDIxNywgNzgsIDE0MCwgODAsIDI0MywgMjQ0LCAxMzAsIDIxNCwgCisgICAgMTUzLCA4MCwgMjQzLCAyNDQsIDEzMCwgOTcsIDgwLCAyNDMsIDI0NCwgMTMwLCAyNDYsIDEwNSwgODAsIDI0MywgMjQ0LCAKKyAgICAxMzAsIDEyMCwgMTI0LCA4MCwgMiwgMjUyLCAxMjgsIDE0MCwgODAsIDIsIDEwMywgOTcsIDgwLCAyLCAxMDMsIDE0MCwgODAsIAorICAgIDIsIDIzMiwgMTI0LCA5NywgODAsIDIsIDIzMiwgMTI0LCA0MywgNDQsIDIxMiwgMzYsIDc0LCA0MywgNDQsIDgwLCAyLCA5MSwgCisgICAgMjQ2LCAxMDUsIDIxMCwgMzUsIDc0LCAyMTQsIDE1MywgODAsIDIsIDIxNiwgNzgsIDIzMywgMzgsIDIxNCwgMTUzLCA4MCwgCisgICAgMiwgMjE2LCA3OCwgMjIyLCAyNDIsIDI0NiwgMTA1LCA4MCwgMiwgMjE2LCA3OCwgMjMzLCAzOCwgMjQ2LCAxMDUsIDgwLCAyLCAKKyAgICAyMTYsIDc4LCAyMjIsIDI0MiwgOTcsIDgwLCAyLCAyNDksIDE2MiwgMjQ2LCAxMDQsIDI0NiwgMTA1LCA4MCwgMiwgMjQ5LCAKKyAgICAxNjIsIDIzMywgMzgsIDI1NCwgODksIDIxNiwgMTUsIDIyMCwgMTU0LCA3NCwgMjUwLCAzLCAyMTYsIDE1LCAyMjAsIDE1NCwgCisgICAgNzQsIDIyOCwgNTcsIDIxMiwgOSwgODAsIDIxNiwgNDMsIDE5OSwgMTMwLCAxNDAsIDgwLCAyMTYsIDQzLCAyNTIsIDE0MiwgCisgICAgMTE3LCA5NywgODAsIDIxNiwgNDMsIDEzMCwgMjU0LCA4OSwgMjA0LCAyNTAsIDM3LCA3NCwgMjUwLCAzLCAyMDQsIDI1MCwgCisgICAgMzcsIDc0LCAxNDAsIDI0MiwgMCwgMiwgMjUyLCAxNDAsIDIxNCwgMTUyLCAxNDAsIDI0MiwgMCwgMiwgMjUyLCAxNDAsIAorICAgIDI0NiwgMTA0LCAyMTQsIDE1MywgMjQyLCAwLCAyLCAyNTIsIDE0MCwgMjIyLCAyNDIsIDIxNCwgMTUzLCAyNDIsIDAsIDIsIAorICAgIDI1MiwgMTQwLCAyMzMsIDM4LCA5NywgMjQyLCAwLCAyLCAyNTIsIDE0MCwgMjE0LCAxNTIsIDk3LCAyNDIsIDAsIDIsIDI1MiwgCisgICAgMTQwLCAyNDYsIDEwNCwgMjQ2LCAxMDUsIDI0MiwgMCwgMiwgMjUyLCAxNDAsIDIyMiwgMjQyLCAyNDYsIDEwNSwgMjQyLCAwLCAKKyAgICAyLCAyNTIsIDE0MCwgMjMzLCAzOCwgOTcsIDgwLCAxMTcsIDE0MCwgNzQsIDIxNCwgMTUzLCA4MCwgMTQwLCA2NCwgMjQ2LCAKKyAgICAxMDUsIDc0LCAxNDAsIDgwLCAxMTcsIDk3LCA3NCwgMTQwLCAyMjYsIDcxLCAyNTMsIDI0OCwgMjE0LCAxNTMsIDIyNiwgNzEsIAorICAgIDI1MywgMjQ4LCA5NywgMjI2LCA3MSwgMjUzLCAyNDgsIDI0NiwgMTA1LCAyMjYsIDcxLCAyNTMsIDI0OCwgMTQwLCAyNDIsIAorICAgIDAsIDExNywgOTcsIDI0MSwgMjU1LCA5NywgMjQyLCAwLCAxMTcsIDE0MCwgMjQxLCAyNTUsIDE0MCwgNTIsIDgwLCAyLCA5MSwgCisgICAgNDMsIDQ0LCA1MiwgODAsIDIsIDkxLCA5NywgNTIsIDgwLCAyLCA5MSwgMTQwLCA1MiwgNzQsIDIxNCwgMTUzLCA1MiwgNzQsIAorICAgIDk3LCA1MiwgNzQsIDI0NiwgMTA1LCA1MiwgNzQsIDQzLCA0NCwgNTIsIDc0LCAxMjAsIDEyNCwgNTIsIDc0LCAyMjgsIDU3LCAKKyAgICAyMTIsIDksIDUyLCA3NCwgMjI4LCA1NywgMjQ1LCAyMjEsIDUyLCA3NCwgMjE5LCAyOSwgMjQ1LCAyMjEsIDUyLCA3NCwgCisgICAgMjE5LCAyOSwgMjEyLCA5LCA1MiwgNzQsIDE0MCwgMjE1LCAyMTIsIDc0LCA5NywgMjE1LCAyMTIsIDc0LCAxNDAsIDIxOCwgCisgICAgMjMxLCA3NCwgOTcsIDIxOCwgMjMxLCA3NCwgMjE0LCAxNTMsIDgwLCAyLCA1MiwgOTEsIDI0NiwgMTA1LCA4MCwgMiwgNTIsIAorICAgIDkxLCAxNDAsIDI0OCwgMTU2LCA3NCwgMjE0LCAxNTMsIDI0OCwgMTU2LCA3NCwgOTcsIDI0OCwgMTU2LCA3NCwgMjQ2LCAKKyAgICAxMDUsIDI0OCwgMTU2LCA3NCwgMTQwLCA4MCwgMjE2LCA0MywgMTMwLCA5NywgODAsIDIxNiwgNDMsIDEzMCwgMTQwLCA3MSwgCisgICAgNzQsIDIxNCwgMTUzLCA3MSwgNzQsIDk3LCA3MSwgNzQsIDI0NiwgMTA1LCA3MSwgNzQsIDIxNCwgMTUzLCA3MSwgODAsIAorICAgIDI0MywgMjQ0LCAxMzAsIDIxNCwgMTUzLCA3MSwgODAsIDIyNiwgMTk4LCAyMjUsIDIxNSwgMjE0LCAxNTMsIDcxLCA4MCwgCisgICAgMjI2LCAxOTgsIDIyNSwgMjE2LCAyLCAyMDMsIDEzMCwgMjE0LCAxNTMsIDcxLCA4MCwgMjI2LCAxOTgsIDIyNSwgMjE2LCAyLCAKKyAgICA2NywgMTMwLCAyMTQsIDE1MywgNzEsIDUyLCA3NCwgMjE0LCAxNTMsIDcxLCA1MiwgODAsIDIyNiwgMTk4LCAyMjUsIDIxNSwgCisgICAgOTcsIDcxLCA4MCwgMjQzLCAyNDQsIDIxMiwgNTYsIDIyOCwgNTcsIDIxMiwgOSwgODAsIDIxNiwgNDMsIDI0OSwgMTYxLCAKKyAgICAyMTksIDI5LCAyNDUsIDIyMSwgODAsIDIxNiwgNDMsIDI0OSwgMTYxLCAxMjAsIDEyNCwgNzEsIDc0LCA0NCwgODAsIDIsIDQsIAorICAgIDI1MCwgMzYsIDI0NiwgMTA1LCA4MCwgMTQwLCA2NCwgMjE0LCAxNTMsIDc0LCAxMzQsIDk3LCAyNTMsIDI0OCwgMTQwLCA4MCwgCisgICAgMiwgNjcsIDkxLCA5NywgODAsIDIsIDY3LCA5MSwgNDMsIDQ0LCA4MCwgMiwgNjcsIDkxLCAxNDAsIDgwLCAyLCA1MiwgNjcsIAorICAgIDkxLCA5NywgODAsIDIsIDUyLCA2NywgOTEsIDQzLCA0NCwgODAsIDIsIDUyLCA2NywgOTEsIDE0MCwgMjI2LCAxNzQsIDc0LCAKKyAgICA5NywgMjI2LCAxNzQsIDc0LCA0MywgNDQsIDIyNiwgMTc0LCA3NCwgMzEsIDI1NCwgMTU1LCAyNDksIDIxNSwgMjI1LCAyNTQsIAorICAgIDI0NywgMjM0LCAyMTYsIDE4OCwgMjQ1LCAyOCwgMjE2LCAxODgsIDI0NywgMTM5LCAyMjgsIDUzLCAyNDUsIDI5LCAyNDUsIAorICAgIDE1MywgMjIwLCAxMjgsIDIzNSwgMjQ2LCAyMjksIDIyMiwgMjQ1LCAxNzEsIDIyNiwgMjMyLCAyMjgsIDUzLCAyNTQsIDEyNSwgCisgICAgMjQ1LCAxNzEsIDIyNiwgMjMyLCA0LCAyNDUsIDE3MSwgMjI2LCAyMzIsIDI0OSwgMTg3LCAyNTMsIDIzOSwgMjMxLCA2MywgCisgICAgMjQ3LCAxMzksIDIyOCwgNTMsIDI0OSwgMTg5LCAyNTMsIDIzOSwgMjMxLCA2MywgNCwgMjQ5LCAxODcsIDI1MywgMjM5LCAKKyAgICAyMzEsIDYzLCAyNDUsIDE0NCwgNjQsIDIyNCwgMTczLCAyMzAsIDI1LCAyMjQsIDE4MSwgMjMwLCAyNSwgMjQ5LCAxNjYsIAorICAgIDIzMCwgMjUsIDIxOCwgNDEsIDIzMCwgMTgzLCA1MCwgMjMwLCAxODEsIDUwLCA1OSwgMjI1LCAyMywgMjQ3LCAxNzAsIDIxOSwgCisgICAgOTYsIDIyMCwgMTI5LCAyMzAsIDE4MiwgMjUzLCAyMTgsIDIyNiwgMTY4LCAyMjIsIDIzNSwgMjI2LCAxNjgsIDI1MSwgMTE1LCAKKyAgICAyMjYsIDE2OCwgNDIsIDIyMiwgMTk0LCAyNDksIDExMCwgMjIyLCAxOTQsIDI0NCwgNSwgMjIyLCAxOTQsIDIyNCwgMTY5LCAKKyAgICAxMTEsIDIzNSwgMjM1LCA0NCwgMjU0LCAxMTAsIDI1NCwgMTEwLCAyMzEsIDg5LCAyNTQsIDExMCwgMjE5LCAwLCAyNTQsIAorICAgIDExMCwgMjQ3LCAxNzIsIDI0NywgMTM5LCAyMjgsIDUzLCAyNDcsIDE3NSwgMjI2LCA5LCAxMTEsIDIyOCwgNTMsIDIyNiwgOSwgCisgICAgMTExLCAyMzIsIDE0NywgMjU0LCAxMTksIDIzMiwgMTQ3LCAyMjYsIDE1OSwgMjM1LCAxOTksIDIxNCwgMTc1LCAyMzUsIAorICAgIDIxMiwgNTIsIDIzNSwgMjEyLCAyMTUsIDIxMiwgMjM1LCAyMTIsIDI0OSwgMTgzLCAyMzUsIDIxMiwgMjE4LCAxNCwgMjM1LCAKKyAgICAyMTIsIDIxMywgMTI5LCAyMzUsIDIxMiwgMjUwLCAzLCAyMzUsIDIxMiwgMjUwLCAzLCAyNDksIDE4MywgMjM1LCAyMTIsIAorICAgIDI1NCwgODksIDI0OSwgMTgzLCAyMzUsIDIxMiwgMjE2LCAxODcsIDI1MiwgNjgsIDIyMywgMTM4LCAyMjQsIDE3MCwgNTksIAorICAgIDIzMCwgMTgyLCAyNDUsIDM0LCAyNDMsIDQ3LCAyMjQsIDE3MCwgMjQxLCA1OCwgMjE2LCA5MCwgMjI2LCAxNjgsIDIyMywgCisgICAgNTAsIDE4MywgMjM1LCAxOTQsIDIzMywgNjYsIDIyMiwgOTIsIDIxOSwgMTU4LCAyMTIsIDM1LCAyMTEsIDIwMCwgMjI0LCAKKyAgICAxODEsIDIyOCwgNTMsIDE4MywgMjMwLCAxODMsIDE4MywgMjUzLCAyMTEsIDEyOCwgMTExLCAyMjgsIDUzLCAyNTMsIDIxMSwgCisgICAgMTI4LCAxMTEsIDI1NCwgNDksIDEyOCwgMTExLCAyNTQsIDQ5LCAyNTEsIDg5LCAyMjgsIDUzLCAyNTUsIDUsIDEyOCwgMTExLCAKKyAgICAyMjksIDEwMSwgMjU0LCA0OSwgMjI4LCA2MCwgMjU1LCA1LCAxMjgsIDExMSwgMjU0LCAxNDksIDEyOCwgMTExLCAyMjgsIAorICAgIDUzLCAyNTQsIDE0OSwgMTI4LCAxMTEsIDI1NCwgMTQ5LCAxMjgsIDE3NywgMTI4LCAxMTEsIDIxNSwgMjEyLCAxODMsIDI1NCwgCisgICAgMTU2LCAxMjgsIDExMSwgMjQ1LCA5NSwgMTExLCAyNDMsIDQ2LCAyNDUsIDk1LCAxMTEsIDI0NywgMjM1LCAyNTIsIDI0LCAKKyAgICAyNTQsIDUxLCAyMTYsIDE5NywgMjMyLCAyMjIsIDI0MywgNDYsIDEyOCwgMTExLCAyNTQsIDQ5LCAxMjgsIDIxNiwgNDMsIAorICAgIDE3NywgMjE2LCAxOTcsIDIzNiwgMTYsIDIyNiwgMjMyLCAyMzYsIDE2LCA2NCwgMTc3LCAyNTQsIDQ5LCAxMjgsIDExMSwgCisgICAgMjQ5LCAyMjgsIDI0NSwgOTgsIDI0NSwgOTksIDI0OSwgMjI3LCAyMjIsIDIzNSwgMjM2LCAxLCAxMjgsIDExMSwgMjIyLCAKKyAgICAyMzUsIDEyOCwgMTExLCAyNDksIDE1NSwgMTExLCAyNDUsIDY4LCAyNDUsIDk3LCAxMTEsIDIxOCwgMTU4LCAyNDUsIDk4LCAKKyAgICAyNDgsIDU2LCAxMjgsIDExMSwgMTI4LCAyMTYsIDQzLCAyNTEsIDc5LCAyNDgsIDczLCAyMzEsIDg5LCAyNTEsIDc4LCAyMjQsIAorICAgIDEyLCAxMjgsIDExMSwgMjI4LCA1MywgMTI4LCAxMTEsIDI0MCwgMTA1LCAxMTEsIDIyOCwgNTMsIDI0MCwgMTA1LCAxMTEsIAorICAgIDIxOCwgMTEwLCAyNDUsIDk1LCAxMTEsIDIzMywgMTYsIDE3NywgMTI4LCAxMTEsIDI0MiwgMTMxLCAxNzcsIDEyOCwgMTExLCAKKyAgICAyMzMsIDE2LCAxMTcsIDEyOCwgMTExLCAyNDIsIDEzMSwgMTE3LCAxMjgsIDExMSwgMjMzLCAxNiwgMjUxLCA4OSwgMjI4LCAKKyAgICA1MywgMTI4LCAxMTEsIDI0MiwgMTMxLCAyNTEsIDg5LCAyMjgsIDUzLCAxMjgsIDExMSwgMjMwLCA5OCwgMjMzLCAxNSwgCisgICAgMjMwLCA5OCwgMjQyLCAxMzAsIDI1MiwgMjQsIDIyOCwgNTMsIDI0NSwgOTUsIDExMSwgMjI4LCA1MywgMjMzLCAxNSwgMjI4LCAKKyAgICA1MywgMjQyLCAxMzAsIDIyOSwgMTAxLCAyMzMsIDE2LCAyMjgsIDYwLCAxMjgsIDExMSwgMjI5LCAxMDEsIDI0MiwgMTMxLCAKKyAgICAyMjgsIDYwLCAxMjgsIDExMSwgMjMzLCAxNiwgMTc3LCAyNDUsIDk1LCAxMTEsIDI0MiwgMTMxLCAxNzcsIDI0NSwgOTUsIAorICAgIDExMSwgMjI5LCAxMDEsIDIzMywgMTYsIDIyOCwgNjAsIDI0NSwgOTUsIDExMSwgMjI5LCAxMDEsIDI0MiwgMTMxLCAyMjgsIAorICAgIDYwLCAyNDUsIDk1LCAxMTEsIDIzMywgMTYsIDE3NywgMjQyLCAxMzAsIDI0MiwgMTMxLCAxNzcsIDIzMywgMTUsIDIyOSwgCisgICAgMTAxLCAyMzMsIDE2LCAyMjgsIDYwLCAyNDIsIDEzMCwgMjI5LCAxMDEsIDI0MiwgMTMxLCAyMjgsIDYwLCAyMzMsIDE1LCAKKyAgICAyMjQsIDIwMywgMjE4LCA1NiwgMjI0LCAyMDQsIDE3NywgMTI4LCAxMTEsIDIxOCwgNTcsIDE3NywgMTI4LCAxMTEsIDIyNCwgCisgICAgMjA0LCAxNzcsIDI0NSwgOTUsIDExMSwgMjE4LCA1NywgMTc3LCAyNDUsIDk1LCAxMTEsIDI0NywgMTM5LCAyMjgsIDUzLCAKKyAgICAyMjQsIDIwNiwgMjQ3LCAxMzksIDIyOCwgNTMsIDIxOCwgNTgsIDIxOCwgNjUsIDIyNiwgMjMyLCAyMTgsIDIzLCAyMjYsIAorICAgIDIzMiwgMjI4LCA1MywgMTE1LCAyMTgsIDY1LCAyMjYsIDIzMiwgMjI4LCA1MywgMTE1LCAyMTgsIDIzLCAyMjYsIDIzMiwgCisgICAgMjE4LCA2NSwgNjQsIDE3NywgMTI4LCAxMTEsIDIxOCwgMjMsIDY0LCAxNzcsIDEyOCwgMTExLCAyMjksIDEwMSwgMTE1LCAKKyAgICAyMTgsIDY1LCA2NCwgMjI4LCA2MCwgMTI4LCAxMTEsIDIyOSwgMTAxLCAxMTUsIDIxOCwgMjMsIDY0LCAyMjgsIDYwLCAxMjgsIAorICAgIDExMSwgMjE4LCA2NSwgNjQsIDIsIDIyOCwgNTMsIDEyOCwgMTExLCAyMTgsIDIzLCA2NCwgMiwgMjI4LCA1MywgMTI4LCAKKyAgICAxMTEsIDIzMCwgODIsIDIzMCwgODMsIDIzMCwgODQsIDIzMCwgODMsIDIxNCwgMTc1LCA0MiwgMjM2LCAxNiwgMjI2LCAyMzIsIAorICAgIDQyLCAyMjYsIDE1MSwgMjI2LCAyMzIsIDQyLCAyMzYsIDE2LCA2NCwgMTc3LCAxMjgsIDExMSwgNDIsIDIyNiwgMTUxLCA2NCwgCisgICAgMTc3LCAxMjgsIDExMSwgNDIsIDI1MCwgMjUyLCA0MiwgMjQ5LCAxMDMsIDM3LCAyMjUsIDIzLCAzNywgMjMwLCAxODIsIDM3LCAKKyAgICAyMTYsIDg2LCAzNywgMjQ3LCAxNzAsIDIxOSwgOTYsIDM3LCA1OSwgMjI2LCAxNjgsIDM3LCAyMjIsIDIzNSwgMjI2LCAxNjgsIAorICAgIDM3LCAyNTMsIDIxOCwgMjI2LCAxNjgsIDM3LCAyNDUsIDk4LCAzNywgMjQ4LCAxNTcsIDkyLCAyMjUsIDIzLCA5MiwgMjMwLCAKKyAgICAxODIsIDkyLCAyMTYsIDg2LCA5MiwgNTksIDIyNiwgMTY4LCA0NCwgMjE3LCA4OCwgNDMsIDIxNywgODgsIDEyNCwgMjE3LCAKKyAgICA4OCwgMTIwLCAyMTcsIDg4LCAyNTMsIDIyMSwgMjMwLCAxNTcsIDIxNSwgMTkyLCAyNDQsIDI2LCAyMTUsIDIxMiwgNjcsIAorICAgIDI1MiwgMTQyLCA0NCwgMjE1LCA5MywgNTIsIDY3LCAyNTIsIDE0MiwgNTIsIDQ0LCAyMTUsIDkzLCAyNDcsIDEzOSwgMjI4LCAKKyAgICA1MywgMjI0LCAxNjQsIDIyOCwgNTMsIDIxNSwgMTkyLCAyNDcsIDEzOSwgMjI4LCA1MywgMjQ0LCAyNywgMjI5LCAxMDMsIAorICAgIDUyLCA2NywgMjUyLCAxNDIsIDUyLCA0NCwgMjE1LCA5MywgMjI0LCAyMDQsIDIxNCwgMTg0LCAyMjMsIDkyLCAyMTgsIDU3LCAKKyAgICAyMTQsIDE4NCwgMjIzLCA5MiwgMjI4LCA1OCwgMjE4LCA3OCwgMjI2LCAyMzIsIDI0OSwgMTg3LCAyNTMsIDIzOSwgMjI4LCAKKyAgICA1OCwgMjE4LCA3NywgMjI4LCA1OCwgMjE4LCA3OCwgNjQsIDE3NywgMTI4LCAxMTEsIDI0OSwgMTg3LCAyNTMsIDIzOSwgCisgICAgMjI4LCA1OCwgMjE4LCA3OCwgMTc3LCAxMjgsIDExMSwgMjI2LCAxNTEsIDIyNiwgMjMyLCAyMzYsIDE2LCAyMjYsIDIzMiwgCisgICAgMjMwLCA4OCwgMjQxLCAyMDEsIDI0OSwgMTk3LCAyMzEsIDEzOCwgMjM1LCAyMDksIDIxMSwgMTQ1LCAyMjksIDIwMywgMjI4LCAKKyAgICA1OSwgNDQsIDI1NCwgMTExLCAyLCAyNTQsIDI2LCA0NCwgMjE1LCAyMjYsIDIzMCwgMjUsIDIzMiwgMTQ3LCAyNTQsIDExOSwgCisgICAgMjMwLCAyNSwgMjMyLCAxNDcsIDIyNiwgMTU5LCAyMzAsIDI1LCAyMzUsIDE5OSwgMjMwLCAyNSwgMjE0LCAxNzUsIDI0NywgCisgICAgMjUwLCAyMjYsIDE2OCwgNTksIDIyNiwgMTY4LCAyMTgsIDE1OCwgMjI2LCAxNjgsIDI0NywgMTcwLCAyMTYsIDg2LCAyNTEsIAorICAgIDE2NSwgNDMsIDIyOCwgNTgsIDI0NCwgMTgyLCAyMjAsIDE1MCwgMjI0LCAxODEsIDQ0LCAyMjgsIDU4LCAyNDQsIDE4MiwgCisgICAgMjIwLCAxNTAsIDIyNCwgMTgxLCA0MywgMjIwLCAxNTAsIDIyNCwgMTgxLCA0NCwgMjIwLCAxNTAsIDIyNCwgMTgxLCAyMjMsIAorICAgIDUwLCAyMTYsIDkwLCAyNDUsIDk4LCAyNDksIDEwMCwgMjMyLCAxNDcsIDIyNiwgMTU5LCAyNDksIDEwMCwgMjMyLCAxNDcsIAorICAgIDI1NCwgMTE5LCA1MiwgMjE4LCA2NCwgNTIsIDIxOCwgMjIsIDUyLCAyMzUsIDE5OSwgNTIsIDIxNCwgMTc1LCAyMjUsIDQ4LCAKKyAgICAxMjgsIDIyLCAyMjYsIDksIDExMSwgMjMzLCAxNiwgMiwgMjQ3LCAxMjEsIDI0MiwgMTMxLCAyLCAyNDcsIDEyMSwgMjEzLCAKKyAgICAxODcsIDIzMCwgOTgsIDIzMywgMTUsIDIxMywgMTg3LCAyMzAsIDk4LCAyNDIsIDEzMCwgMjMzLCAxNiwgMTI4LCAyMTYsIAorICAgIDQzLCAxNzcsIDI0MiwgMTMwLCAyNDIsIDEzMSwgMTI4LCAyMTYsIDQzLCAxNzcsIDIzMywgMTUsIDEyOCwgMjE2LCA0MywgCisgICAgMTc3LCAyMzMsIDE1LCAxMjgsIDIxNiwgNDMsIDE3NywgMjQyLCAxMzAsIDEyOCwgMjE2LCA0MywgMTc3LCAyMjQsIDIwMywgCisgICAgMTI4LCAyMTYsIDQzLCAxNzcsIDIxOCwgNTYsIDI0NywgMTM5LCAyMjgsIDUzLCAyMjQsIDIwNywgMTc3LCAyNDUsIDEwMCwgCisgICAgMjQ3LCAxMzksIDIyOCwgNTMsIDIxOCwgNTksIDE3NywgMjQ1LCAxMDAsIDIyOCwgNTMsIDQyLCAyMzYsIDE2LCA2NCwgMTc3LCAKKyAgICAxMjgsIDExMSwgMjI4LCA1MywgNDIsIDIyNiwgMTUxLCA2NCwgMTc3LCAxMjgsIDExMSwgNDIsIDIzNiwgMTYsIDY0LCAxNzcsIAorICAgIDIyOCwgNTMsIDEyOCwgMTExLCA0MiwgMjI2LCAxNTEsIDY0LCAxNzcsIDIyOCwgNTMsIDEyOCwgMTExLCAyMzMsIDE2LCAKKyAgICAyNTEsIDg5LCAyMjgsIDUzLCAyNDUsIDk1LCAxMTEsIDI0MiwgMTMxLCAyNTEsIDg5LCAyMjgsIDUzLCAyNDUsIDk1LCAxMTEsIAorICAgIDIyNCwgMjA0LCAyNTEsIDg5LCAyMjgsIDUzLCAyNDUsIDk1LCAxMTEsIDIxOCwgNTcsIDI1MSwgODksIDIyOCwgNTMsIDI0NSwgCisgICAgOTUsIDExMSwgMjI4LCA1MywgMjI4LCA1OCwgMjE4LCA3OCwgMjI2LCAyMzIsIDI0NywgMTM5LCAyMjgsIDUzLCAyNDksIAorICAgIDE4OSwgMjUzLCAyMzksIDIyOCwgNTgsIDIxOCwgNzcsIDIyOCwgNTMsIDIyOCwgNTgsIDIxOCwgNzgsIDY0LCAxNzcsIDEyOCwgCisgICAgMTExLCAyNDcsIDEzOSwgMjI4LCA1MywgMjQ5LCAxODksIDI1MywgMjM5LCAyMjgsIDU4LCAyMTgsIDc4LCAxNzcsIDI0NSwgCisgICAgMTAwLCA2NywgMjQ1LCAxNjQsIDIzMCwgMjIzLCAyMDMsIDI0NSwgMTY0LCAxMjAsIDQ0LCAyNDgsIDAsIDI0NSwgMTY0LCAKKyAgICAxMjQsIDQ0LCAyNDgsIDAsIDI0NSwgMTY0LCAyNDUsIDE3MSwgNjQsIDIsIDE5OSwgMjAzLCA5MSwgMjQ1LCAxNzEsIDY0LCAKKyAgICAyLCA2NywgMjUyLCAxNDIsIDI1MywgMjA4LCAyNDUsIDE0NCwgNjQsIDIwMywgOTEsIDQsIDI0NSwgMTcxLCA2NCwgMiwgNjcsIAorICAgIDI1MiwgMTQyLCAyNTMsIDIwOCwgMjQ1LCAxNDQsIDY0LCAyMDMsIDkxLCAyNDUsIDE3MSwgNjQsIDIsIDU5LCA0OCwgMjQ1LCAKKyAgICAxNzEsIDY0LCAyLCAyMjYsIDEyNCwgNCwgMjQ1LCAxNzEsIDY0LCAyLCAyMjYsIDEyNCwgMjQ1LCAxNzEsIDY0LCAyLCAyMTQsIAorICAgIDE4MywgMjQ1LCAxNzEsIDY0LCAyLCAxMTMsIDIwMywgMjE4LCA5MSwgMjQ5LCAxODcsIDIsIDE5OSwgMjAzLCA5MSwgMjQ5LCAKKyAgICAxODcsIDIsIDY3LCAyNTIsIDE0MiwgMjUzLCAyMDgsIDI0NSwgMTQ0LCA2NCwgMjAzLCA5MSwgNCwgMjQ5LCAxODcsIDIsIAorICAgIDY3LCAyNTIsIDE0MiwgMjUzLCAyMDgsIDI0NSwgMTQ0LCA2NCwgMjAzLCA5MSwgMjQ5LCAxODcsIDIsIDIyNiwgMTI0LCA0LCAKKyAgICAyNDksIDE4NywgMiwgMjI2LCAxMjQsIDIxMCwgMTYwLCAxODgsIDI1MiwgMTc0LCAyMzEsIDYyLCAyNDcsIDI1MSwgNTAsIAorICAgIDI0NSwgMTczLCA3NCwgMjQwLCAyMzUsIDEyMCwgMjUzLCAyNTAsIDEyNCwgMjUzLCAyNTAsIDIyNCwgMTc2LCAyMjUsIDE2NiwgCisgICAgMjEyLCAzMiwgMjMyLCAyMTQsIDQzLCAyNTAsIDE4MiwgNDQsIDI1MCwgMTgyLCA0MywgMjQ0LCA1OCwgNDQsIDI0NCwgNTgsIAorICAgIDI1MSwgMTc2LCA0NCwgMjQ5LCAxMzMsIDI1MSwgMTc2LCA0MywgMjQ5LCAxMzMsIDIxNiwgMTUsIDQ0LCAyNDksIDEzMywgCisgICAgMjE2LCAxNSwgNDMsIDI0OSwgMTMzLCAyMjMsIDUwLCAyMjgsIDUzLCA1MCwgNDIsIDIzMiwgMTA1LCAyNTQsIDI2LCAyMjEsIAorICAgIDE2NSwgMjIxLCAxNzIsIDIxNywgMiwgMjIzLCAxMjEsIDIyNCwgMjQyLCAyMzUsIDIzOSwgMjEzLCAxNjUsIDIxOCwgMjM1LCAKKyAgICAyMjUsIDQyLCA2NCwgMjM1LCAyMDgsIDUwLCAyMTUsIDk0LCAyMjgsIDUzLCA1MCwgMjEyLCA0MiwgMjQwLCAyMzcsIDIxNiwgCisgICAgMTUsIDQzLCAyNDksIDE2MSwgMjE2LCAxNSwgNDQsIDI0OSwgMTYxLCAyNTEsIDE3NiwgNDMsIDI0OSwgMTYxLCAyNTEsIAorICAgIDE3NiwgNDQsIDI0OSwgMTYxLCAyMTYsIDE1LCAxNjMsIDIzNSwgMjEyLCAyNTEsIDE3NiwgMTYzLCAyMzUsIDIxMiwgMjQzLCAKKyAgICAyNDEsIDIxOSwgNzYsIDEyMCwgMjUzLCAyNTEsIDI1MiwgMjUsIDExMywgMjAzLCAyNTIsIDEzMCwgMjI2LCAxNjEsIDIzNCwgCisgICAgMTM5LCAyNDUsIDkxLCAyMTYsIDQzLCAyMTYsIDE5NywgMjIyLCAyNTIsIDIxMSwgMTc5LCAyMzYsIDEsIDExNSwgMjIzLCAKKyAgICAxMTgsIDI1MSwgMTY0LCAyMzQsIDEzOCwgMjMzLCA0MywgMjU0LCAxMTEsIDEyNywgMjIyLCAyNDgsIDI1NCwgMTExLCAxMjcsIAorICAgIDI0NSwgOTEsIDIxNiwgNDMsIDIxNiwgMTk3LCAyMzMsIDQ3LCAyNTIsIDM2LCAyMjIsIDIzNCwgMjQ5LCA3MSwgMjU0LCAKKyAgICAxNTYsIDI1NCwgMiwgMjE3LCAxODIsIDIxNiwgNSwgMjIyLCAxMjQsIDI0NywgMjE2LCAyMjYsIDE1MiwgMjQ5LCAxOTksIAorICAgIDIxNywgNTMsIDIxOSwgODcsIDI0OSwgMTUyLCAyNDksIDE1MSwgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyNDAsIDE1MiwgCisgICAgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyMTgsIDIyOSwgMjI0LCAyOCwgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyMjQsIDI5LCAKKyAgICAyNDUsIDEwMCwgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyMjQsIDI5LCAyNDcsIDE3NSwgMjU0LCA2NywgMjQzLCAyMjYsIAorICAgIDE2LCAyMjQsIDI5LCAyNDcsIDI0OSwgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyMjQsIDI5LCAyMzUsIDU3LCAyNTQsIDY3LCAKKyAgICAyNDMsIDIyNiwgMTYsIDIyNCwgMjksIDI1MCwgMzYsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjUwLCAzNywgMjE4LCAxMzYsIAorICAgIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjUwLCAzNywgMjM1LCA1NywgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyMTksIDk3LCAKKyAgICAxMzAsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjUyLCAxODIsIDEzMCwgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyMjQsIAorICAgIDI5LCAyMTksIDk2LCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDIyNCwgMjksIDI1MiwgMTgxLCAyNTQsIDY3LCAyNDMsIDIyNiwgCisgICAgMTYsIDIyNCwgMjksIDIzMywgMTUsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjI0LCAyOSwgMjQyLCAxMzAsIDI1NCwgNjcsIAorICAgIDI0MywgMjI2LCAxNiwgMTQwLCAyMTQsIDE5LCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDk3LCAyMTQsIDE5LCAyNTQsIDY3LCAKKyAgICAyNDMsIDIyNiwgMTYsIDIyNCwgMjksIDE0MCwgNzQsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjI0LCAyOSwgOTcsIDc0LCAKKyAgICAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDI1MCwgMzcsIDI1MiwgMTgxLCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDEyNCwgCisgICAgMjE3LCA4OSwgMjE0LCAxODMsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjQ4LCA1NiwgMjE4LCAxMzYsIDI1NCwgNjcsIAorICAgIDI0MywgMjI2LCAxNiwgMjI0LCAyOSwgMTI0LCAyNTAsIDIzOSwgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyMjQsIDI5LCAKKyAgICAyNDgsIDU1LCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDEyNCwgMjE3LCA4OSwgMjM1LCA1NywgMjU0LCA2NywgMjQzLCAyMjYsIAorICAgIDE2LCAyMTQsIDE1MywgMjE0LCAxOSwgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyMjQsIDI5LCAyMTQsIDE1MywgNzQsIDI1NCwgCisgICAgNjcsIDI0MywgMjI2LCAxNiwgMTIwLCAyMTcsIDg5LCAyMjYsIDEyNCwgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyNDgsIDY3LCAKKyAgICAyMTgsIDEzNiwgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyMjQsIDI5LCAxMjAsIDI1MCwgMjM5LCAyNTQsIDY3LCAyNDMsIAorICAgIDIyNiwgMTYsIDIyNCwgMjksIDI0OCwgNjYsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMTIwLCAyMTcsIDg5LCAyMzUsIDU3LCAKKyAgICAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDI0NiwgMTA1LCAyMTQsIDE5LCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDIyNCwgMjksIAorICAgIDI0NiwgMTA1LCA3NCwgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyMjMsIDI1NCwgMjE0LCAxODMsIDI1NCwgNjcsIDI0MywgCisgICAgMjI2LCAxNiwgMjQ4LCA1NiwgMjE0LCAxODMsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjQ3LCAyNTAsIDIxNCwgMTgzLCAKKyAgICAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDIzNSwgNTgsIDIxNCwgMTgzLCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDI1MCwgMzcsIAorICAgIDIxNCwgMTgzLCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDEyMCwgMjIwLCA2LCAyMzUsIDU3LCAyNTQsIDY3LCAyNDMsIDIyNiwgCisgICAgMTYsIDIyMywgMjU0LCAyMjQsIDI4LCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDI1MCwgMzcsIDIxOCwgMTU3LCAyNTQsIDY3LCAKKyAgICAyNDMsIDIyNiwgMTYsIDIyNCwgMjksIDI0OSwgMjI3LCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDEyMCwgMjE3LCA4OSwgCisgICAgMjQ4LCAyLCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDI0OCwgNjcsIDI0OCwgMiwgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAKKyAgICAyMTgsIDE1OCwgMjQ4LCAyLCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDIzNSwgNTgsIDI0OCwgMiwgMjU0LCA2NywgMjQzLCAKKyAgICAyMjYsIDE2LCAyNTAsIDM3LCAyNDgsIDIsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMTI0LCAyMjAsIDYsIDIxOCwgMTM2LCAKKyAgICAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDQzLCAyMjAsIDYsIDIxOCwgMTM2LCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDIxNiwgCisgICAgOTAsIDI0OCwgMiwgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyNDIsIDEzMSwgMjQ4LCAyLCAyNTQsIDY3LCAyNDMsIDIyNiwgCisgICAgMTYsIDI0OSwgMjIxLCAxMzAsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjQ4LCA2NywgMTgzLCAyNTQsIDY3LCAyNDMsIAorICAgIDIyNiwgMTYsIDIxMCwgMzQsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjE4LCAxMzcsIDE4MywgMjU0LCA2NywgMjQzLCAKKyAgICAyMjYsIDE2LCAyMjAsIDE1MiwgMjE0LCAxODMsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjI0LCAyOSwgMjI4LCA1MywgCisgICAgMjQ1LCAxMDAsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjI0LCAyOSwgMjI0LCAxMywgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAKKyAgICAxMjQsIDI1MCwgMjQwLCAxODMsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMTIwLCAyNTAsIDI0MCwgMTgzLCAyNTQsIDY3LCAKKyAgICAyNDMsIDIyNiwgMTYsIDIzNSwgMTg2LCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIDIyMywgMzgsIDI1NCwgNjcsIDI0MywgCisgICAgMjI2LCAxNiwgMjI2LCAyMDIsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjU0LCAxNDUsIDIxNCwgMTgzLCAyNTQsIDY3LCAKKyAgICAyNDMsIDIyNiwgMTYsIDI0NSwgMTAyLCAyMTQsIDE4MywgMjU0LCA2NywgMjQzLCAyMjYsIDE2LCAyMzUsIDE4NywgMjE0LCAKKyAgICAxODMsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjI2LCAyMDMsIDIxNCwgMTgzLCAyNTQsIDY3LCAyNDMsIDIyNiwgMTYsIAorICAgIDI1NCwgMTQ0LCAyMjgsIDUzLCAyNTAsIDEzMSwgNzgsIDQ0LCAyNTQsIDExMSwgMiwgMjQ2LCAxMDUsIDIxMCwgMzUsIDc0LCAKKyAgICAyMTksIDIzNiwgMjA0LCAyNTEsIDE2NCwgMjUyLCA0NiwgODcsIDY3LCAyMzIsIDIxNSwgMiwgMjMwLCAyMjUsIDI0NywgCisgICAgMTIxLCAyMzUsIDIxNywgODcsIDI0OSwgMTg0LCAyMTQsIDE4MSwgODcsIDI0NywgMTkwLCAyMTQsIDE4MSwgODcsIDI0NSwgCisgICAgMTU1LCA4NywgMjQ5LCAyMTEsIDg3LCA3MSwgNDIsIDIsIDI1MCwgMTc2LCA2NywgMjMyLCAyMTQsIDI0NSwgMTMxLCA4NywgCisgICAgMjU0LCAxNDAsIDIzNCwgMTQwLCA4NywgMjQxLCAyMTQsIDg3LCAzNywgMjAzLCAyNTIsIDE0MiwgMiwgMjI4LCA1MSwgMzcsIAorICAgIDIxNSwgMjI3LCAyNDYsIDEwNywgMjUxLCAxMzYsIDI1MCwgMzcsIDIsIDIyOCwgNTUsIDc0LCAyMTQsIDE3OSwgODcsIDIzMCwgCisgICAgMTM4LCA4NywgMjQwLCAxNjUsIDg3LCAyMjYsIDE3NSwgMjQyLCA2MCwgODcsIDIyNiwgMTc1LCAyMzMsIDE0OCwgODcsIAorICAgIDIyNSwgMjQ1LCA4NywgMjI1LCAyNDQsIDg3LCAyNDcsIDE5OCwgMjQ5LCA5OCwgMTYsIDI0NCwgMjEsIDEwNSwgMjE5LCA1MSwgCisgICAgODcsIDI1NCwgNjcsIDI0MywgMjI2LCAxNiwgMjI0LCAyOCwgMjQ4LCA4NCwgMjIwLCAxMzksIDIzNCwgMTQwLCA4NywgMjI0LCAKKyAgICAxOTMsIDIyNiwgNzYsIDIyOSwgODMsIDIyNiwgNzYsIDIyNCwgMTg5LCAyMjEsIDE5MCwgODcsIDI1MCwgMTgsIDIyMSwgCisgICAgMTkwLCA4NywgNDMsIDIyNiwgNSwgMjE0LCAxNjAsIDEwMywgNDMsIDIyNiwgNSwgMjQ1LCAyMiwgNDMsIDIyNiwgNSwgMjMyLCAKKyAgICAxMDksIDEwMywgNDQsIDIyNiwgNSwgMjE0LCAxNjAsIDEwMywgNDQsIDIyNiwgNSwgMjQ1LCAyMiwgNDQsIDIyNiwgNSwgCisgICAgMjMyLCAxMDksIDEwMywgNDMsIDQyLCAyNTEsIDE1OSwgMjE0LCAxNjAsIDI0OSwgMTYxLCA0MywgNDIsIDI1MSwgMTU5LCAKKyAgICAyNDUsIDIyLCA0MywgNDIsIDI1MSwgMTU5LCAyMzIsIDEwOSwgMjQ5LCAxNjEsIDQ0LCA0MiwgMjUxLCAxNTksIDIxNCwgCisgICAgMTYwLCAyNDksIDE2MSwgNDQsIDQyLCAyNTEsIDE1OSwgMjQ1LCAyMiwgNDQsIDQyLCAyNTEsIDE1OSwgMjMyLCAxMDksIAorICAgIDI0OSwgMTYxLCA0MywgMjQ5LCAxMDAsIDI1MSwgMTU5LCAyMTQsIDE2MCwgMTAzLCA0MywgMjQ5LCAxMDAsIDI1MSwgMTU5LCAKKyAgICAyMzAsIDIyNSwgMjI1LCAxMDIsIDQzLCAyNDksIDEwMCwgMjUxLCAxNTksIDIzMiwgMTA5LCAxMDMsIDI0OSwgMTAwLCAyNTEsIAorICAgIDE1OSwgMjQ1LCAyMiwgNDQsIDI0OSwgMTAwLCAyNTEsIDE1OSwgMjE0LCAxNjAsIDEwMywgNDQsIDI0OSwgMTAwLCAyNTEsIAorICAgIDE1OSwgMjMwLCAyMjUsIDIyNSwgMTAyLCA0NCwgMjQ5LCAxMDAsIDI1MSwgMTU5LCAyMzIsIDEwOSwgMTAzLCAyMzUsIDIxMywgCisgICAgMjQ1LCAyMiwgMjAzLCAyMzIsIDIxNSwgMjQ1LCAyMiwgMjE0LCAxNjAsIDQzLCAxNzcsIDIzMiwgMTA5LCA0NCwgMjQ5LCAKKyAgICAxMDAsIDI1MSwgMTU5LCAyMjEsIDE3MywgMjE0LCAxNjAsIDQ0LCAxNzcsIDIzMiwgMTA5LCA0MywgMjQ5LCAxMDAsIDI1MSwgCisgICAgMTU5LCAyMjEsIDE3MywgMjE4LCA0MiwgMjE2LCAxNCwgMjE4LCA0MiwgMjUxLCAxNzUsIDIxNiwgMTUsIDQyLCAxMjcsIAorICAgIDI1MSwgMTc2LCA0MiwgMTI3LCAyNTEsIDE3NiwgNDIsIDI1MSwgMTU5LCAxMTcsIDIxNiwgMTUsIDQyLCAxMjcsIDM0LCAxNiwgCisgICAgMjUxLCAxNzUsIDQzLCA2NywgOTMsIDIzMiwgMjE0LCA0NCwgNjcsIDkzLCAyMzIsIDIxNCwgMjAzLCAyMjEsIDIwNiwgMjMyLCAKKyAgICAyMTMsIDIwMywgMjIxLCAyMDYsIDIzMiwgMjEyLCAyMDMsIDIyMSwgMjA2LCAyMzIsIDIxMSwgMjAzLCAyMjEsIDIwNiwgCisgICAgMjMyLCAyMTAsIDI0OCwgNDcsIDE2LCAxOTIsIDY3LCAyMiwgMjE2LCAxNSwgMjIyLCAyNTIsIDI0OCwgNDcsIDE2LCAxOTIsIAorICAgIDY3LCAyMiwgMjUxLCAxNzYsIDIyMiwgMjUyLCAyNDgsIDQ3LCAxNiwgMTkyLCA2NywgMiwgMjUwLCAzNiwgMjQ4LCA0NywgCisgICAgMTYsIDE5MiwgMTI0LCAyMiwgMjAzLCAyLCAyNTAsIDM2LCAyNDgsIDQ3LCAxNiwgMTkyLCAxMjAsIDIyLCAyMDMsIDIsIAorICAgIDI1MCwgMzYsIDI0OCwgNDcsIDE2LCAxOTIsIDY3LCAyLCAyMTUsIDIyNiwgMjQ4LCA0NywgMTYsIDE5MiwgMTI0LCAyMiwgCisgICAgMjAzLCAyLCAyMTUsIDIyNiwgMjQ4LCA0NywgMTYsIDE5MiwgMTIwLCAyMiwgMjAzLCAyLCAyMTUsIDIyNiwgMjQ4LCA0NywgCisgICAgMTYsIDE5MiwgNjcsIDIyLCAyMTIsIDM1LCAyNDgsIDQ3LCAxNiwgMTkyLCAxMjQsIDIyLCAyMDMsIDIsIDIxMiwgMzUsIAorICAgIDI0OCwgNDcsIDE2LCAxOTIsIDEyMCwgMjIsIDIwMywgMiwgMjEyLCAzNSwgMjQ4LCA0NywgMTYsIDE5MiwgMTI0LCAyMiwgCisgICAgMjQxLCA0NSwgMjQ4LCA0NywgMTYsIDE5MiwgMTIwLCAyMiwgMjQxLCA0NSwgMjQ4LCA0NywgMTYsIDE5MiwgNjcsIDIyLCAKKyAgICAyMTYsIDE1LCAyMzMsIDQ3LCAyNDgsIDQ3LCAxNiwgMTkyLCA2NywgMjIsIDI1MSwgMTc2LCAyMzMsIDQ3LCA0MiwgMjQ0LCAKKyAgICAzMywgMjIzLCA1NSwgODcsIDI0NSwgMTgzLCA4NywgNjcsIDIzMiwgMjE1LCAyNDUsIDIyLCAyMzEsIDM0LCAyNTEsIDE0NywgCisgICAgMjMxLCAzNCwgMTk5LCAxMTcsIDIxOSwgMjUxLCAyMzEsIDM0LCAyMTksIDI1MiwgMTE3LCAyMzIsIDEzOCwgMjMxLCAzNCwgCisgICAgMTk5LCAxMTcsIDExMywgMjE5LCAyMzgsIDIzMSwgMzQsIDExMywgMjE5LCAyMzksIDExNywgMjMyLCAxMzgsIDIzMSwgMzQsIAorICAgIDExMywgMjE5LCAyMzksIDIzNSwgNjUsIDIzMSwgMzQsIDIxNSwgMjA5LCAyMzEsIDM0LCAyMTYsIDIyNCwgMjMxLCAzNCwgCisgICAgMjI1LCAxODksIDI0NSwgMjI1LCAyNDIsIDEyMywgMjQzLCAyMjAsIDIxNiwgMTUsIDIyNiwgNCwgMjUxLCAxNzYsIDIyNiwgCisgICAgNCwgMjE2LCAxNSwgMjQ5LCAxMDAsIDEyNywgMjUxLCAxNzYsIDI0OSwgMTAwLCAxMjcsIDIxNiwgMTUsIDIxNiwgNywgMjIwLCAKKyAgICA1NCwgMTI3LCAyNTEsIDE3NiwgMjE2LCA3LCAyMjAsIDU0LCAxMjcsIDcxLCAyMTUsIDI0MCwgMjUyLCAzNiwgMjIyLCAyMzUsIAorICAgIDIsIDI1MCwgMzYsIDIxOCwgMTIxLCAyNDQsIDY1LCAyNTUsIDE4LCAyNDksIDk3LCAyNDUsIDE3MiwgMjM1LCAxOTksIDI0OCwgCisgICAgODQsIDI0NSwgMjUsIDg3LCA4NSwgMjIyLCAyNDgsIDUyLCAyMTUsIDIyNiwgODUsIDIzMywgNDMsIDUyLCAyMTUsIDIyNiwgCisgICAgODUsIDIxNCwgMTYyLCA1MiwgMjE1LCAyMjYsIDg1LCAyNDYsIDEwNiwgNTIsIDIxNSwgMjI2LCA4NSwgMjIyLCAyNDgsIDUyLCAKKyAgICAyMTUsIDIyNywgMiwgNjcsIDEzMCwgODUsIDIzMywgNDMsIDUyLCAyMTUsIDIyNywgMiwgNjcsIDEzMCwgODUsIDIyMiwgCisgICAgMjQ4LCAyMTUsIDIyNywgMiwgNTIsIDY3LCAxMzAsIDI1NCwgMTc0LCAyNTAsIDQsIDIxOCwgMTI3LCAyMTYsIDg3LCAyNTAsIAorICAgIDQsIDI0MCwgMjM4LCAyLCAyNDQsIDUxLCAyMjEsIDI0MiwgMTYsIDMxLCAyMjcsIDIwMywgMTYsIDMxLCAyMTgsIDE1MywgCisgICAgNjQsIDI0MSwgMjM0LCAxNiwgMzEsIDIxOCwgMTUzLCA2NCwgMjE2LCAyMTMsIDE2LCAzMSwgMjQ1LCAxNDQsIDY0LCAyMTYsIAorICAgIDIxMywgMTYsIDMxLCAyNDUsIDE0NCwgNjQsIDIxNSwgMjQ0LCAxNiwgMzEsIDI0NSwgMTMzLCAxNiwgMzEsIDI1NSwgOCwgCisgICAgMTYsIDMxLCAyNTIsIDQ1LCAxNiwgMzEsIDI1MiwgMTgwLCAxNiwgMzEsIDIwMywgMjE3LCA5MCwgMTYsIDMxLCAyMzIsIAorICAgIDIxNSwgMjQ0LCAxNDYsIDE2LCAzMSwgNjcsIDIxNywgOTAsIDE2LCAzMSwgMjQ0LCAyMSwgMjQ0LCAxNDYsIDE2LCAzMSwgCisgICAgMjUwLCAyMzEsIDIyMywgNTQsIDE2LCAzMSwgMjIwLCAyOSwgMjI2LCAxMzEsIDE2LCAzMSwgMjIwLCAyOSwgMjM2LCAwLCAKKyAgICAxNiwgMzEsIDI0OCwgMTUyLCAyMzIsIDIwNSwgMjQ1LCA3OCwgMTYsIDMxLCAyNDgsIDMyLCAyNDksIDE3OSwgMTEwLCAxNiwgCisgICAgMzEsIDI0OCwgMzIsIDI0OSwgMTc5LCAxMDUsIDE2LCAzMSwgMjQ4LCAzMiwgMjQ5LCAxNzksIDE1OCwgMTYsIDMxLCAyNDgsIAorICAgIDMyLCAyNDksIDE3OSwgMTYxLCAxNiwgMzEsIDE1MiwgMjU1LCA4LCAxNiwgMzEsIDIxNywgMTc4LCAyMzYsIDYzLCAxNiwgCisgICAgMzEsIDI0NSwgMTQ0LCA2NCwgMjE1LCAyNDUsIDI1MSwgMjE0LCAxNiwgMzEsIDI1MSwgNiwgMTYsIDMxLCAyNDUsIDE0NCwgCisgICAgNjQsIDIzMSwgODIsIDE2LCAzMSwgMjE4LCA2MiwgMTYsIDMxLCAyNDUsIDc4LCAxNiwgMzEsIDI0NCwgMTA4LCAyMjAsIAorICAgIDEzOCwgMTYsIDMxLCAyNDIsIDEyMiwgMjIwLCAxMzgsIDE2LCAzMSwgMjIzLCAxMjIsIDIyMCwgMTM4LCAxNiwgMzEsIDIxNCwgCisgICAgMTc0LCAyMjAsIDEzOCwgMTYsIDMxLCAyMTksIDE5LCAxNiwgMzEsIDI0OCwgNjQsIDI1MSwgMjE3LCA4NywgMjA0LCAyNTEsIAorICAgIDE2NCwgMTYsIDMxLCAyMjksIDg2LCAxNiwgMzEsIDI0OCwgNjUsIDI0NCwgMjEsIDEwNSwgMTYsIDMxLCAyMTgsIDYzLCAKKyAgICAyNDQsIDIxLCAxMDUsIDIyNiwgMjQyLCAxMDMsIDIyNiwgMjQyLCAyNTAsIDE1MywgMjI2LCAyNDIsIDI0NCwgMjQsIDIyNiwgCisgICAgMjQyLCAyMzUsIDE5NCwgMjQ0LCAyNCwgMjI2LCAyNDIsIDI1MiwgNDMsIDI1MSwgMTI1LCAyMjYsIDI0MiwgMjUxLCAxNzEsIAorICAgIDIxNiwgMTEyLCAyMjYsIDI0MiwgMjUxLCAxNTYsIDI1MiwgMTQ3LCAyNDAsIDEwNCwgMjI2LCAyNDIsIDI1NCwgMTI4LCA2NCwgCisgICAgMjUwLCAxMzAsIDIyNiwgMjQyLCAyNDgsIDE1NywgMjI2LCAyNDIsIDI0OSwgODgsIDI1NSwgMTIsIDIyNywgMjAxLCAyMjYsIAorICAgIDI0MiwgNTIsIDI1MiwgMTgxLCAzNywgMjEsIDExMCwgMzcsIDIxLCAxMDUsIDM3LCAyMSwgMTU4LCAzNywgMjEsIDE2MSwgCisgICAgMzcsIDIxLCAxODksIDM3LCAyMSwgMTk0LCAzNywgMjEsIDE5OCwgMzcsIDIxLCAxOTUsIDM3LCAyMSwgMjAwLCAzNywgNTQsIAorICAgIDIxNiwgMjQ4LCAzNywgNTQsIDI0NSwgMTY4LCAzNywgNTQsIDIxNSwgNzYsIDM3LCA1NCwgMjE2LCAxNjUsIDM3LCA1NCwgCisgICAgMjQ0LCA2LCAzNywgNTQsIDI0NCwgMTE5LCAzNywgNTQsIDIxOSwgMTIwLCAzNywgNTQsIDIyMCwgMTIwLCAzNywgNTQsIAorICAgIDI0NSwgMTkxLCAzNywgNTQsIDIyOCwgMTk4LCAzNywgNTQsIDIxNSwgNzMsIDg4LCAyMSwgMTEwLCA4OCwgMjEsIDEwNSwgCisgICAgODgsIDIxLCAxNTgsIDg4LCAyMSwgMTYxLCA4OCwgMjEsIDE4OSwgODgsIDIxLCAxOTQsIDg4LCAyMSwgMTk4LCA4OCwgMjEsIAorICAgIDE5NSwgODgsIDIxLCAyMDAsIDg4LCA1NCwgMjE2LCAyNDgsIDg4LCA1NCwgMjQ1LCAxNjgsIDg4LCA1NCwgMjE1LCA3NiwgCisgICAgODgsIDU0LCAyMTYsIDE2NSwgODgsIDU0LCAyNDQsIDYsIDg4LCA1NCwgMjQ0LCAxMTksIDg4LCA1NCwgMjE5LCAxMjAsIDg4LCAKKyAgICA1NCwgMjIwLCAxMjAsIDg4LCA1NCwgMjQ1LCAxOTEsIDg4LCA1NCwgMjI4LCAxOTgsIDg4LCA1NCwgMjE1LCA3MywgMjEsIAorICAgIDEyMywgMjQzLCAyMzAsIDIxOCwgMTMwLCAyMSwgMTEzLCAyNDMsIDIzMCwgMjE4LCAxMzAsIDIxLCAxMzQsIDI0MywgMjMwLCAKKyAgICAyMTgsIDEzMCwgMjEsIDI0NCwgMTIsIDI0MywgMjMwLCAyMTgsIDEzMCwgMjEsIDI0NCwgODIsIDI0MywgMjMwLCAyMTgsIAorICAgIDEzMCwgMjEsIDIxOSwgMTI2LCAyNDMsIDIzMCwgMjE4LCAxMzAsIDIxLCAyMjAsIDEyMywgMjQzLCAyMzAsIDIxOCwgMTMwLCAKKyAgICAyMSwgMjQ1LCAxOTQsIDI0MywgMjMwLCAyMTgsIDEzMCwgMjEsIDIyOCwgMjAxLCAyNDMsIDIzMCwgMjE4LCAxMzAsIDU0LCAKKyAgICAyMTYsIDI0OSwgMjQzLCAyMzAsIDIxOCwgMTMwLCA1NCwgMjQ1LCAxNjksIDI0MywgMjMwLCAyMTgsIDEzMCwgNTQsIDIxNSwgCisgICAgNzcsIDI0MywgMjMwLCAyMTgsIDEzMCwgNTQsIDIxNiwgMTY2LCAyNDMsIDIzMCwgMjE4LCAxMzAsIDU0LCAyNDQsIDcsIAorICAgIDI0MywgMjMwLCAyMTgsIDEzMCwgNTQsIDI0NCwgMTIwLCAyNDMsIDIzMCwgMjE4LCAxMzAsIDU0LCAyMTksIDEyMSwgMjQzLCAKKyAgICAyMzAsIDIxOCwgMTMwLCA1NCwgMjIwLCAxMjEsIDI0MywgMjMwLCAyMTgsIDEzMCwgNTQsIDI0NSwgMTkyLCAyNDMsIDIzMCwgCisgICAgMjE4LCAxMzAsIDU0LCAyMjgsIDE5OSwgMjQzLCAyMzAsIDIxOCwgMTMwLCA1NCwgMjE1LCA3NCwgMjQzLCAyMzAsIDIxOCwgCisgICAgMTMwLCA4OCwgNywgNCwgMSwgNjEsIDg4LCA3LCA0LCAxLCAyNTMsIDE1OSwgODgsIDcsIDQsIDEsIDI1MSwgNjcsIDg4LCA3LCAKKyAgICA0LCAxLCAyNDksIDYxLCA4OCwgNywgNCwgMSwgNzUsIDg4LCA3LCA0LCAxLCAyNDUsIDcsIDg4LCA3LCA0LCAxLCAyNDMsIAorICAgIDIwMywgODgsIDcsIDQsIDEsIDI0MiwgNjEsIDg4LCA3LCA0LCAxLCA3MywgODgsIDcsIDQsIDEsIDIzNSwgMTQ1LCA4OCwgNywgCisgICAgNCwgMSwgMjM1LCAyNCwgODgsIDcsIDQsIDEsIDE1NiwgODgsIDcsIDQsIDEsIDE5MywgODgsIDcsIDQsIDEsIDIzMCwgMjYsIAorICAgIDg4LCA3LCA0LCAxLCA3NiwgODgsIDcsIDQsIDEsIDIyNiwgMTA2LCA4OCwgNywgNCwgMSwgMjI0LCA5NywgODgsIDcsIDQsIAorICAgIDEsIDE1MywgODgsIDcsIDQsIDEsIDIyMiwgOTIsIDg4LCA3LCA0LCAxLCAyMTcsIDE1MywgODgsIDcsIDQsIDEsIDcwLCA4OCwgCisgICAgNywgNCwgMSwgMjE0LCAxMDUsIDg4LCA3LCA0LCAxLCAyMTIsIDk4LCA4OCwgNywgNCwgMSwgMjExLCAxNzgsIDg4LCA3LCA0LCAKKyAgICAxLCAyMTEsIDExNywgODgsIDcsIDQsIDEsIDIxMCwgMTU5LCAzNywgNywgNiwgMSwgNjEsIDM3LCA3LCA2LCAxLCAyNTMsIAorICAgIDE1OSwgMzcsIDcsIDYsIDEsIDI1MSwgNjcsIDM3LCA3LCA2LCAxLCAyNDksIDYxLCAzNywgNywgNiwgMSwgNzUsIDM3LCA3LCAKKyAgICA2LCAxLCAyNDUsIDcsIDM3LCA3LCA2LCAxLCAyNDMsIDIwMywgMzcsIDcsIDYsIDEsIDI0MiwgNjEsIDM3LCA3LCA2LCAxLCAKKyAgICA3MywgMzcsIDcsIDYsIDEsIDIzNSwgMTQ1LCAzNywgNywgNiwgMSwgMjM1LCAyNCwgMzcsIDcsIDYsIDEsIDE1NiwgMzcsIDcsIAorICAgIDYsIDEsIDE5MywgMzcsIDcsIDYsIDEsIDIzMCwgMjYsIDM3LCA3LCA2LCAxLCA3NiwgMzcsIDcsIDYsIDEsIDIyNiwgMTA2LCAKKyAgICAzNywgNywgNiwgMSwgMjI0LCA5NywgMzcsIDcsIDYsIDEsIDE1MywgMzcsIDcsIDYsIDEsIDIyMiwgOTIsIDM3LCA3LCA2LCAKKyAgICAxLCAyMTcsIDE1MywgMzcsIDcsIDYsIDEsIDcwLCAzNywgNywgNiwgMSwgMjE0LCAxMDUsIDM3LCA3LCA2LCAxLCAyMTIsIAorICAgIDk4LCAzNywgNywgNiwgMSwgMjExLCAxNzgsIDM3LCA3LCA2LCAxLCAyMTEsIDExNywgMzcsIDcsIDYsIDEsIDIxMCwgMTU5LCAKKyAgICAzNywgNywgNCwgMSwgNjEsIDM3LCA3LCA0LCAxLCAyNTMsIDE1OSwgMzcsIDcsIDQsIDEsIDI1MSwgNjcsIDM3LCA3LCA0LCAKKyAgICAxLCAyNDksIDYxLCAzNywgNywgNCwgMSwgNzUsIDM3LCA3LCA0LCAxLCAyNDUsIDcsIDM3LCA3LCA0LCAxLCAyNDMsIDIwMywgCisgICAgMzcsIDcsIDQsIDEsIDI0MiwgNjEsIDM3LCA3LCA0LCAxLCA3MywgMzcsIDcsIDQsIDEsIDIzNSwgMTQ1LCAzNywgNywgNCwgCisgICAgMSwgMjM1LCAyNCwgMzcsIDcsIDQsIDEsIDE1NiwgMzcsIDcsIDQsIDEsIDE5MywgMzcsIDcsIDQsIDEsIDIzMCwgMjYsIDM3LCAKKyAgICA3LCA0LCAxLCA3NiwgMzcsIDcsIDQsIDEsIDIyNiwgMTA2LCAzNywgNywgNCwgMSwgMjI0LCA5NywgMzcsIDcsIDQsIDEsIAorICAgIDE1MywgMzcsIDcsIDQsIDEsIDIyMiwgOTIsIDM3LCA3LCA0LCAxLCAyMTcsIDE1MywgMzcsIDcsIDQsIDEsIDcwLCAzNywgNywgCisgICAgNCwgMSwgMjE0LCAxMDUsIDM3LCA3LCA0LCAxLCAyMTIsIDk4LCAzNywgNywgNCwgMSwgMjExLCAxNzgsIDM3LCA3LCA0LCAxLCAKKyAgICAyMTEsIDExNywgMzcsIDcsIDQsIDEsIDIxMCwgMTU5LCAzNywgMjEsIDIxMCwgODYsIDE1MiwgMzcsIDU0LCAyNDUsIDE2OCwgCisgICAgMTUyLCAzNywgNTQsIDIxNSwgNzYsIDE1MiwgMzcsIDU0LCAyMTYsIDE2NSwgMTUyLCAzNywgNTQsIDI0NCwgNiwgMTUyLCAKKyAgICAzNywgNTQsIDI0NCwgMTE5LCAxNTIsIDM3LCA1NCwgMjE5LCAxMjAsIDE1MiwgMzcsIDU0LCAyMjAsIDEyMCwgMTUyLCAzNywgCisgICAgNTQsIDI0NSwgMTkxLCAxNTIsIDM3LCA1NCwgMjI4LCAxOTgsIDE1MiwgMzcsIDU0LCAyMTUsIDczLCA1MiwgMzcsIDIxLCAKKyAgICAxMTAsIDUyLCAzNywgMjEsIDEwNSwgNTIsIDM3LCAyMSwgMTU4LCA1MiwgMzcsIDIxLCAxNjEsIDUyLCAzNywgMjEsIDE4OSwgCisgICAgNTIsIDM3LCAyMSwgMTk0LCA1MiwgMzcsIDIxLCAxOTgsIDUyLCAzNywgMjEsIDE5NSwgNTIsIDM3LCAyMSwgMjAwLCA1MiwgCisgICAgMzcsIDU0LCAyMTYsIDI0OCwgMTUyLCAzNywgMjEsIDIxMCwgODYsIDkzLCA5OSwgMTkyLCAyNDEsIDQ1LCA5MywgOTksIAorICAgIDExNCwgMjQxLCA0NSwgOTMsIDk5LCAxOTIsIDIxMywgMjM5LCA5MywgOTksIDExNCwgMjEzLCAyMzksIDkzLCA5OSwgMTkyLCAKKyAgICAyMTUsIDIxMiwgMjQ4LCAxNTgsIDI0MSwgNDUsIDkzLCA5OSwgMTE0LCAyMTUsIDIxMiwgMjQ4LCAxNTgsIDI0MSwgNDUsIAorICAgIDkzLCA5OSwgMTkyLCAyMTUsIDIxMiwgMjQ4LCAxNTgsIDIxMywgMjM5LCA5MywgOTksIDExNCwgMjE1LCAyMTIsIDI0OCwgCisgICAgMTU4LCAyMTMsIDIzOSwgOTMsIDk5LCAxOTIsIDIyNCwgMjUsIDI0OCwgMTU4LCAyNDEsIDQ1LCA5MywgOTksIDExNCwgMjI0LCAKKyAgICAyNSwgMjQ4LCAxNTgsIDI0MSwgNDUsIDkzLCA5OSwgMTkyLCAyMjQsIDI1LCAyNDgsIDE1OCwgMjEzLCAyMzksIDkzLCA5OSwgCisgICAgMTE0LCAyMjQsIDI1LCAyNDgsIDE1OCwgMjEzLCAyMzksIDkzLCA5OSwgMTkyLCAxMjQsIDIyLCAyMjIsIDI1MiwgOTMsIDk5LCAKKyAgICAxMjQsIDE5MiwgMjIsIDQ0LCAyNDEsIDIyMiwgOTMsIDk5LCAxMjQsIDExNCwgMjIsIDQ0LCAyMzIsIDIzMSwgOTMsIDk5LCAKKyAgICAxMTQsIDEyNCwgMjIsIDIyMiwgMjUyLCA5MywgOTksIDE5MiwgMTI0LCAyMiwgMjMzLCA0NywgOTMsIDk5LCAxMjQsIDE5MiwgCisgICAgMjIsIDQzLCAyNDEsIDIyMiwgOTMsIDk5LCAxMjQsIDExNCwgMjIsIDQzLCAyMzIsIDIzMSwgOTMsIDk5LCAxMTQsIDEyNCwgCisgICAgMjIsIDIzMywgNDcsIDkzLCA5OSwgMTkyLCAxMjAsIDIyLCAyMjIsIDI1MiwgOTMsIDk5LCAxMjAsIDE5MiwgMjIsIDQ0LCAKKyAgICAyNDEsIDIyMiwgOTMsIDk5LCAxMjAsIDExNCwgMjIsIDQ0LCAyMzIsIDIzMSwgOTMsIDk5LCAxMTQsIDEyMCwgMjIsIDIyMiwgCisgICAgMjUyLCA5MywgOTksIDE5MiwgMTIwLCAyMiwgMjMzLCA0NywgOTMsIDk5LCAxMjAsIDE5MiwgMjIsIDQzLCAyNDEsIDIyMiwgCisgICAgOTMsIDk5LCAxMjAsIDExNCwgMjIsIDQzLCAyMzIsIDIzMSwgOTMsIDk5LCAxMTQsIDEyMCwgMjIsIDIzMywgNDcsIDkzLCAKKyAgICA5OSwgMTkyLCA2NywgMjIsIDIyMiwgMjUyLCA5MywgOTksIDY3LCAxOTIsIDIyLCA0NCwgMjQxLCAyMjIsIDkzLCA5OSwgCisgICAgMTIwLCAxMTQsIDIyLCA0NCwgMTI0LCAyMzIsIDIzMSwgOTMsIDk5LCAxMjQsIDExNCwgMjIsIDQ0LCAxMjAsIDIzMiwgMjMxLCAKKyAgICA5MywgOTksIDY3LCAxMTQsIDIyLCA0NCwgMjMyLCAyMzEsIDkzLCA5OSwgMTI0LCAxOTIsIDIyLCA0NCwgMTIwLCAyNDEsIAorICAgIDIyMiwgOTMsIDk5LCAxMjAsIDE5MiwgMjIsIDQ0LCAxMjQsIDI0MSwgMjIyLCA5MywgOTksIDExNCwgNjcsIDIyLCAyMjIsIAorICAgIDI1MiwgOTMsIDk5LCAxOTIsIDY3LCAyMiwgMjMzLCA0NywgOTMsIDk5LCA2NywgMTkyLCAyMiwgNDMsIDI0MSwgMjIyLCA5MywgCisgICAgOTksIDEyMCwgMTE0LCAyMiwgNDMsIDEyNCwgMjMyLCAyMzEsIDkzLCA5OSwgMTI0LCAxMTQsIDIyLCA0MywgMTIwLCAyMzIsIAorICAgIDIzMSwgOTMsIDk5LCA2NywgMTE0LCAyMiwgNDMsIDIzMiwgMjMxLCA5MywgOTksIDEyNCwgMTkyLCAyMiwgNDMsIDEyMCwgCisgICAgMjQxLCAyMjIsIDkzLCA5OSwgMTIwLCAxOTIsIDIyLCA0MywgMTI0LCAyNDEsIDIyMiwgOTMsIDk5LCAxMTQsIDY3LCAyMiwgCisgICAgMjMzLCA0NywgOTMsIDk5LCAxOTIsIDEyNCwgMjIsIDI0MSwgNDUsIDkzLCA5OSwgNDMsIDExNCwgMjIsIDQ0LCAxMjQsIAorICAgIDIzMiwgMjMxLCA5MywgOTksIDQ0LCAxMTQsIDIyLCA0MywgMTI0LCAyMzIsIDIzMSwgOTMsIDk5LCAxMjQsIDE5MiwgMjIsIAorICAgIDIwMywgMjQxLCAyMjIsIDkzLCA5OSwgMTI0LCAxMTQsIDIyLCAyMDMsIDIzMiwgMjMxLCA5MywgOTksIDQ0LCAxOTIsIDIyLCAKKyAgICA0MywgMTI0LCAyNDEsIDIyMiwgOTMsIDk5LCA0MywgMTkyLCAyMiwgNDQsIDEyNCwgMjQxLCAyMjIsIDkzLCA5OSwgMTE0LCAKKyAgICAxMjQsIDIyLCAyNDEsIDQ1LCA5MywgOTksIDE5MiwgMTIwLCAyMiwgMjQxLCA0NSwgOTMsIDk5LCA0MywgMTE0LCAyMiwgNDQsIAorICAgIDEyMCwgMjMyLCAyMzEsIDkzLCA5OSwgNDQsIDExNCwgMjIsIDQzLCAxMjAsIDIzMiwgMjMxLCA5MywgOTksIDEyMCwgMTkyLCAKKyAgICAyMiwgMjAzLCAyNDEsIDIyMiwgOTMsIDk5LCAxMjAsIDExNCwgMjIsIDIwMywgMjMyLCAyMzEsIDkzLCA5OSwgNDQsIDE5MiwgCisgICAgMjIsIDQzLCAxMjAsIDI0MSwgMjIyLCA5MywgOTksIDQzLCAxOTIsIDIyLCA0NCwgMTIwLCAyNDEsIDIyMiwgOTMsIDk5LCAKKyAgICAxMTQsIDEyMCwgMjIsIDI0MSwgNDUsIDkzLCA5OSwgMTkyLCA2NywgMjIsIDI0MSwgNDUsIDkzLCA5OSwgNDMsIDExNCwgMjIsIAorICAgIDQ0LCA2NywgMjMyLCAyMzEsIDkzLCA5OSwgNDQsIDExNCwgMjIsIDQzLCA2NywgMjMyLCAyMzEsIDkzLCA5OSwgNjcsIDE5MiwgCisgICAgMjIsIDIwMywgMjQxLCAyMjIsIDkzLCA5OSwgMTIwLCAxMTQsIDIyLCAxMjQsIDIwMywgMjMyLCAyMzEsIDkzLCA5OSwgMTI0LCAKKyAgICAxMTQsIDIyLCAxMjAsIDIwMywgMjMyLCAyMzEsIDkzLCA5OSwgNjcsIDExNCwgMjIsIDIwMywgMjMyLCAyMzEsIDkzLCA5OSwgCisgICAgNDMsIDEyMCwgMTE0LCAyMiwgNDQsIDEyNCwgMjMyLCAyMzEsIDkzLCA5OSwgNDQsIDEyMCwgMTE0LCAyMiwgNDMsIDEyNCwgCisgICAgMjMyLCAyMzEsIDkzLCA5OSwgNDMsIDEyNCwgMTE0LCAyMiwgNDQsIDEyMCwgMjMyLCAyMzEsIDkzLCA5OSwgNDQsIDEyNCwgCisgICAgMTE0LCAyMiwgNDMsIDEyMCwgMjMyLCAyMzEsIDkzLCA5OSwgMTI0LCAxOTIsIDIyLCAxMjAsIDIwMywgMjQxLCAyMjIsIDkzLCAKKyAgICA5OSwgMTIwLCAxOTIsIDIyLCAxMjQsIDIwMywgMjQxLCAyMjIsIDkzLCA5OSwgNDQsIDE5MiwgMjIsIDQzLCA2NywgMjQxLCAKKyAgICAyMjIsIDkzLCA5OSwgNDMsIDE5MiwgMjIsIDQ0LCA2NywgMjQxLCAyMjIsIDkzLCA5OSwgMTE0LCA2NywgMjIsIDI0MSwgNDUsIAorICAgIDkzLCA5OSwgMTkyLCA1MiwgMjQ4LCAxNTgsIDI0MSwgNDUsIDkzLCA5OSwgMTE0LCA1MiwgMjQ4LCAxNTgsIDI0MSwgNDUsIAorICAgIDkzLCA5OSwgMTkyLCA1MiwgMjQ4LCAxNTgsIDIxMywgMjM5LCA5MywgOTksIDExNCwgNTIsIDI0OCwgMTU4LCAyMTMsIDIzOSwgCisgICAgOTMsIDk5LCA1MiwgMjQxLCA0NSwgOTMsIDk5LCA1MiwgMjEzLCAyMzksIDkzLCA5OSwgMTI0LCAyMTksIDE1NiwgMjIsIDQ0LCAKKyAgICAyNDYsIDExNCwgOTMsIDk5LCAxMjQsIDUyLCAyMiwgNDQsIDIxOSwgMTU1LCA5MywgOTksIDUyLCAxMjQsIDIyLCAyMjIsIAorICAgIDI1MiwgOTMsIDk5LCAxMjQsIDIxOSwgMTU2LCAyMiwgNDMsIDI0NiwgMTE0LCA5MywgOTksIDEyNCwgNTIsIDIyLCA0MywgCisgICAgMjE5LCAxNTUsIDkzLCA5OSwgNTIsIDEyNCwgMjIsIDIzMywgNDcsIDkzLCA5OSwgMTIwLCAyMTksIDE1NiwgMjIsIDQ0LCAKKyAgICAyNDYsIDExNCwgOTMsIDk5LCAxMjAsIDUyLCAyMiwgNDQsIDIxOSwgMTU1LCA5MywgOTksIDUyLCAxMjAsIDIyLCAyMjIsIAorICAgIDI1MiwgOTMsIDk5LCAxMjAsIDIxOSwgMTU2LCAyMiwgNDMsIDI0NiwgMTE0LCA5MywgOTksIDEyMCwgNTIsIDIyLCA0MywgCisgICAgMjE5LCAxNTUsIDkzLCA5OSwgNTIsIDEyMCwgMjIsIDIzMywgNDcsIDkzLCA5OSwgNjcsIDIxOSwgMTU2LCAyMiwgNDQsIAorICAgIDI0NiwgMTE0LCA5MywgOTksIDY3LCA1MiwgMjIsIDQ0LCAyMTksIDE1NSwgOTMsIDk5LCA1MiwgNjcsIDIyLCAyMjIsIDI1MiwgCisgICAgOTMsIDk5LCA2NywgMjE5LCAxNTYsIDIyLCA0MywgMjQ2LCAxMTQsIDkzLCA5OSwgNjcsIDUyLCAyMiwgNDMsIDIxOSwgMTU1LCAKKyAgICA5MywgOTksIDUyLCA2NywgMjIsIDIzMywgNDcsIDkzLCA5OSwgMTI0LCAyMTksIDE1NiwgMjIsIDIwMywgMjQ2LCAxMTQsIAorICAgIDkzLCA5OSwgMTI0LCA1MiwgMjIsIDIwMywgMjE5LCAxNTUsIDkzLCA5OSwgNTIsIDEyNCwgMjIsIDI0MSwgNDUsIDkzLCA5OSwgCisgICAgMTIwLCAyMTksIDE1NiwgMjIsIDIwMywgMjQ2LCAxMTQsIDkzLCA5OSwgMTIwLCA1MiwgMjIsIDIwMywgMjE5LCAxNTUsIDkzLCAKKyAgICA5OSwgNTIsIDEyMCwgMjIsIDI0MSwgNDUsIDkzLCA5OSwgNjcsIDIxOSwgMTU2LCAyMiwgMjAzLCAyNDYsIDExNCwgOTMsIAorICAgIDk5LCA2NywgNTIsIDIyLCAyMDMsIDIxOSwgMTU1LCA5MywgOTksIDUyLCA2NywgMjIsIDI0MSwgNDUsIDkzLCA5OSwgMTkyLCAKKyAgICAyNTQsIDI3LCAxMjQsIDIyLCAyMjIsIDI1MiwgOTMsIDk5LCAxOTIsIDI1NCwgMjcsIDEyNCwgMjIsIDIzMywgNDcsIDkzLCAKKyAgICA5OSwgMTkyLCAyNTQsIDI3LCAxMjAsIDIyLCAyMzMsIDQ3LCA5MywgOTksIDE5MiwgMjU0LCAyNywgMTIwLCAyMiwgMjIyLCAKKyAgICAyNTIsIDkzLCA5OSwgMTkyLCAyNDgsIDAsIDIxNCwgMTYwLCA0NCwgMjE2LCA0MywgMjMyLCAxMDksIDIzMywgNDcsIDkzLCAKKyAgICA5OSwgMTkyLCAyNDgsIDAsIDIxNCwgMTYwLCA0MywgMjE2LCA0MywgMjMyLCAxMDksIDIyMiwgMjUyLCA5MywgOTksIDE5MiwgCisgICAgMjQ4LCAwLCAyNDksIDEzMSwgOTMsIDk5LCAxOTIsIDIzMywgNDcsIDkzLCA5OSwgMTkyLCAyMTQsIDE2MywgOTMsIDk5LCAKKyAgICAxOTIsIDIyMiwgMjUyLCA5MywgOTksIDE5MiwgMjQ2LCAxMDcsIDkzLCA5OSwgMTE0LCAyMzMsIDQ3LCA5MywgOTksIDExNCwgCisgICAgMjE0LCAxNjMsIDkzLCA5OSwgMTE0LCAyMjIsIDI1MiwgOTMsIDk5LCAxMTQsIDI0NiwgMTA3LCA5MywgOTksIDE5MiwgNDMsIAorICAgIDIyLCAxMTQsIDIyMiwgMjUyLCA5MywgOTksIDE5MiwgMTIwLCAyMiwgMTE0LCAyNDYsIDEwNywgOTMsIDk5LCAxMTQsIDQzLCAKKyAgICAyMiwgMTkyLCAyMjIsIDI1MiwgOTMsIDk5LCAxMTQsIDEyMCwgMjIsIDE5MiwgMjQ2LCAxMDcsIDIxNCwgMTYwLCAxNjMsIAorICAgIDI1MSwgMjE0LCAyMzIsIDEwOSwgMTIzLCAyNDUsIDE5MCwgMjUxLCAyMTQsIDIzMiwgMTA5LCAxMjMsIDIyNCwgMjMsIDI1MSwgCisgICAgMjE0LCAyMzIsIDEwOSwgMTM0LCAyNDUsIDE4OCwgMjUxLCAyMTQsIDIzMiwgMTA5LCAxNjMsIDI1MSwgMjE0LCAyMzIsIAorICAgIDEwOSwgMjQ0LCA4MiwgMjQ1LCAxODgsIDI1MSwgMjE0LCAyMzIsIDEwOSwgMTM0LCAyMjQsIDIxLCAyNTEsIDIxNCwgMjMyLCAKKyAgICAxMDksIDIyMCwgMTIzLCAyNDUsIDE4OCwgMjUxLCAyMTQsIDI0MywgMjMwLCAyNTEsIDIxNCwgNDMsIDIyMCwgMTIzLCAyNDUsIAorICAgIDE4OCwgMjUxLCAyMTQsIDQzLCAxMzQsIDIyNCwgMjEsIDI1MSwgMjE0LCA0MywgMjQ0LCA4MiwgMjQ1LCAxODgsIDI1MSwgCisgICAgMjE0LCA0MywgMTYzLCAyNTEsIDIxNCwgNDMsIDEzNCwgMjQ1LCAxODgsIDI1MSwgMjE0LCA0MywgMTIzLCAyMjQsIDIzLCAKKyAgICAyNTEsIDIxNCwgNDMsIDEyMywgMjQ1LCAxOTAsIDI1MSwgMjE0LCA0NCwgMTYzLCAyNTEsIDIxNCwgMTkyLCAyMjAsIDkzLCAKKyAgICAyMzEsIDgzLCAyMjAsIDkzLCAyNDgsIDE2MywgMjIwLCA5MywgMjE0LCAxNjAsIDEyMywgMjQ1LCAxOTAsIDI1MSwgMjE0LCAKKyAgICA0NCwgMTIzLCAyNDUsIDE5MCwgMjUxLCAyMTQsIDIyNCwgMjcsIDIzMiwgMTA5LCAyMzMsIDQ3LCAyMjQsIDI3LCAyMzIsIAorICAgIDEwOSwgMjIyLCAyNTIsIDIyNCwgMjcsIDIxNCwgMTYwLCAyMzMsIDQ3LCAyMjQsIDI3LCAyMTQsIDE2MCwgNDMsIDIyLCAKKyAgICAyMzIsIDEwOSwgNDMsIDIyLCAyMzIsIDEwOSwgMjIyLCAyNTIsIDIyNCwgMjcsIDIxNCwgMTYwLCA0MywgMjIsIDIzMiwgCisgICAgMTA5LCAyMjIsIDI1MiwgMjI0LCAyNywgMjE0LCAxNjAsIDQzLCAyMiwgMjE0LCAxNjAsIDQ0LCAyMiwgMjMyLCAxMDksIAorICAgIDIzMywgNDcsIDIyNCwgMjcsIDIxNCwgMTYwLCA0MywgMjIsIDIxNCwgMTYwLCA0NCwgMjIsIDIzMiwgMTA5LCAyMjIsIDI1MiwgCisgICAgMjI0LCAyNywgMjE0LCAxNjAsIDIyMiwgMjUyLCAyMjQsIDI3LCAyMTQsIDE2MCwgNDQsIDIyLCAyMzIsIDEwOSwgMjMzLCAKKyAgICA0NywgMjI0LCAyNywgMjE0LCAxNjAsIDQ0LCAyMiwgMjMyLCAxMDksIDQzLCAyMiwgMjMyLCAxMDksIDIyMiwgMjUyLCA4NSwgCisgICAgMjE4LCAyMzUsIDcxLCAyMTgsIDIzNSwgNzEsIDQyLCAyLCAyMjIsIDE4NCwgMjQ5LCAxNjAsIDcxLCA0MiwgMjQ5LCAxODgsIAorICAgIDg1LCA0LCAyMTgsIDIzNSwgNDIsIDIsIDIwMywgMjQ0LCAxMDYsIDQyLCAyLCA2NywgMjQ0LCAxMDYsIDQyLCAyLCAyMjYsIAorICAgIDE0NSwgMjQ5LCAxMjcsIDI0NCwgMTA2LCA0MiwgMiwgMjE0LCAxNjAsIDQzLCAyMTYsIDQzLCAyMzIsIDEwOSwgNDQsIDI0NCwgCisgICAgMTA2LCA0MiwgMiwgMjE0LCAxNjAsIDQ0LCAyMTYsIDQzLCAyMzIsIDEwOSwgNDMsIDI0NCwgMTA2LCA0MiwgMiwgMjQ4LCAwLCAKKyAgICAyNDksIDEyNywgMjQ0LCAxMDYsIDg1LCA0LCAyMTgsIDIzNSwgNzEsIDQsIDIxOCwgMjM1LCA4NSwgMjIzLCAxMTcsIDcxLCAKKyAgICAyMjMsIDExNywgODUsIDY3LCAyMjMsIDExNywgNzEsIDY3LCAyMjMsIDExNywgODUsIDIyNiwgNywgNzEsIDIyNiwgNywgODUsIAorICAgIDIxNCwgMTYyLCAyMTUsIDIyNiwgNzEsIDIxNCwgMTYyLCAyMTUsIDIyNiwgODUsIDIxNCwgMTYyLCA0LCAyMTUsIDIyNiwgCisgICAgNzEsIDIxNCwgMTYyLCA0LCAyMTUsIDIyNiwgODUsIDIyMiwgMjQ4LCAyMTUsIDIyNiwgNzEsIDIyMiwgMjQ4LCAyMTUsIAorICAgIDIyNiwgODUsIDIyMiwgMjQ4LCA0LCAyMTUsIDIyNiwgNzEsIDIyMiwgMjQ4LCA0LCAyMTUsIDIyNiwgODUsIDIyMiwgMjQ4LCAKKyAgICAyMjUsIDksIDcxLCAyMjIsIDI0OCwgMjI1LCA5LCA4NSwgMjQ2LCAxMDYsIDIxNSwgMjI2LCA3MSwgMjQ2LCAxMDYsIDIxNSwgCisgICAgMjI2LCA4NSwgMjQ2LCAxMDYsIDQsIDIxNSwgMjI2LCA3MSwgMjQ2LCAxMDYsIDQsIDIxNSwgMjI2LCA4NSwgMjMzLCA0MywgCisgICAgMjE1LCAyMjYsIDcxLCAyMzMsIDQzLCAyMTUsIDIyNiwgODUsIDIzMywgNDMsIDQsIDIxNSwgMjI2LCA3MSwgMjMzLCA0MywgCisgICAgNCwgMjE1LCAyMjYsIDg1LCAyMzMsIDQzLCAyMjUsIDksIDcxLCAyMzMsIDQzLCAyMjUsIDksIDg1LCAyNDcsIDI0OSwgNzEsIAorICAgIDI0NywgMjQ5LCA3MSwgMjQ3LCAyNTAsIDI0OSwgMTg4LCA4NSwgNCwgMjQ3LCAyNDksIDI0NCwgOTAsIDIzMiwgMTA1LCA3MSwgCisgICAgMjUwLCAzNiwgMjQ2LCAxMTksIDI1MCwgMzYsIDI1MCwgMzcsIDIsIDY3LCAyNDQsIDEwNiwgMjUxLCAxMTIsIDg1LCAyNTAsIAorICAgIDM2LCAyNTAsIDM3LCAyLCA0MywgMTYzLCAyNTEsIDIyMiwgMjUwLCAzNywgMiwgNDQsIDE2MywgMjUxLCAyMjIsIDI1MCwgCisgICAgMzcsIDIsIDIzMiwgMTA5LCAxNjMsIDI1MSwgMjIyLCAyNTAsIDM3LCAyLCAyMTQsIDE2MCwgMTYzLCAyNTEsIDIyMiwgMjUwLCAKKyAgICAzNywgMiwgMjE0LCAxNjAsIDQ0LCAyMjQsIDI3LCAyNTEsIDIyMiwgMjUwLCAzNywgMiwgMjU0LCAxNTYsIDI1MSwgODksIAorICAgIDIxNCwgMTYwLCA0MywgMjI0LCAyNywgMjUxLCAyMjIsIDQzLCAxNjMsIDg1LCAyNTAsIDM2LCA0NCwgMTYzLCA4NSwgMjUwLCAKKyAgICAzNiwgMjM1LCAxOTUsIDI1MSwgMTE0LCAyMzUsIDE5NSwgNzEsIDI1MCwgMzYsIDIxNCwgMTYwLCAxNjMsIDIzNSwgMTk1LCAKKyAgICA3MSwgMjUwLCAzNiwgMjMyLCAxMDksIDE2MywgMjM1LCAxOTUsIDcxLCAyNTAsIDM2LCAyMTQsIDE2MCwgNDMsIDIyNCwgMjcsIAorICAgIDI1MCwgMzQsIDI1NCwgMjYsIDIxNCwgMTYwLCA0NCwgMjI0LCAyNywgMjUwLCAzNCwgMjU0LCAyNiwgMjMyLCAxMDksIDQ0LCAKKyAgICAyMjQsIDI3LCAyNTAsIDM0LCAyNTQsIDI2LCAyMzIsIDEwOSwgNDMsIDIyNCwgMjcsIDI1MCwgMzQsIDI1NCwgMjYsIDIxNCwgCisgICAgMTYwLCAxNjMsIDI1MCwgMzYsIDIzMiwgMTA5LCAxNjMsIDI1MCwgMzYsIDg1LCAyMzIsIDEwOSwgNDQsIDIxNSwgMjI2LCAKKyAgICA4NSwgMjMyLCAxMDksIDQzLCAyMTUsIDIyNiwgODUsIDIxNCwgMTYwLCA0MywgMjE1LCAyMjYsIDg1LCAyMTQsIDE2MCwgNDQsIAorICAgIDIxNSwgMjI2LCA3MSwgMjUxLCAxMTQsIDQyLCAyLCA0MywgMTYzLCAyNTEsIDIyMiwgNDIsIDIsIDQ0LCAxNjMsIDI1MSwgCisgICAgMjIyLCA0MiwgMiwgMjE0LCAxNjAsIDQzLCAyNDgsIDAsIDE2MywgMjUxLCAyMjIsIDQyLCAyLCAyMzIsIDEwOSwgNDQsIAorICAgIDI0OCwgMCwgMTYzLCAyNTEsIDIyMiwgNzEsIDQyLCAyLCA2NywgMjUxLCAyMzMsIDIzMiwgMjE0LCA3MSwgMjE0LCAxNjIsIAorICAgIDIxNSwgMjI3LCAyLCAyNDcsIDEyMSwgMjE0LCAxNjIsIDIxNSwgMjI3LCAyLCA0MywgMTYzLCAyNTEsIDIyMiwgMjE0LCAKKyAgICAxNjIsIDIxNSwgMjI3LCAyLCA0NCwgMTYzLCAyNTEsIDIyMiwgMjMzLCA4NiwgMjUwLCAzNiwgNzEsIDQyLCAyLCAyMTQsIAorICAgIDE2MCwgNDMsIDIyNCwgMjYsIDcxLCA0MiwgMiwgMjMyLCAxMDksIDQzLCAyMjQsIDI2LCA3MSwgNDIsIDIsIDIzMiwgMTA5LCAKKyAgICA0NCwgMjI0LCAyNiwgNzEsIDQyLCAyLCAyMTQsIDE2MCwgNDQsIDIyNCwgMjYsIDcxLCAyNTAsIDM3LCAyLCAyMTQsIDE2MCwgCisgICAgNDMsIDIyNCwgMjYsIDcxLCAyNTAsIDM3LCAyLCAyMzIsIDEwOSwgNDMsIDIyNCwgMjYsIDcxLCAyNTAsIDM3LCAyLCAyMzIsIAorICAgIDEwOSwgNDQsIDIyNCwgMjYsIDcxLCAyNTAsIDM3LCAyLCAyMTQsIDE2MCwgNDQsIDIyNCwgMjYsIDIxNCwgMTYwLCA0MywgCisgICAgMjE1LCAyMjYsIDIxNCwgMTYwLCA0NCwgMjE1LCAyMjYsIDIzMiwgMTA5LCA0MywgMjE1LCAyMjYsIDcxLCAyMzEsIDgzLCAKKyAgICAyMTgsIDIzNSwgODUsIDIzMSwgODMsIDIxOCwgMjM1LCA3MSwgMjMxLCA4MywgNCwgMjE4LCAyMzUsIDg1LCAyMzEsIDgzLCAKKyAgICA0LCAyMTgsIDIzNSwgMjMyLCAxMDksIDQ0LCAyMTUsIDIyNiwgODUsIDIxOCwgMzksIDIsIDIyMywgMTMzLCAyNDksIDI0OCwgCisgICAgMjE0LCAxOTQsIDIxOSwgNjEsIDI0OSwgMjIzLCA4NSwgMjE4LCAxNTcsIDcxLCAyMTgsIDE1NywgMjMyLCAyMjksIDIxNiwgCisgICAgMTMzLCAyMTgsIDM4LCAyNTMsIDIzNSwgMjI4LCA3MiwgMjQ4LCAzOSwgMjI4LCA3MiwgMjQ5LCAxOTYsIDIyNiwgMTY0LCAKKyAgICA4NSwgMjE3LCAxLCA3MSwgMjE3LCAxLCAyNTIsIDE1NywgMjUxLCAxNjQsIDI1MiwgMTU3LCA5MywgMiwgMjUwLCAxMzAsIAorICAgIDI1MiwgMTU3LCA5MywgMiwgMjExLCAxNzgsIDIyMSwgMjU1LCAyMTQsIDE5NSwgMiwgMjIzLCAxNjEsIDI0NiwgODUsIDI0MCwgCisgICAgMjQ0LCAyNTIsIDIzLCA3MSwgMjIwLCAzLCAyMjUsIDEwMiwgODUsIDIyMCwgMywgMjI1LCAxMDIsIDIyMCwgODgsIDIyMywgCisgICAgNTAsIDIyMiwgMTg4LCAyNDQsIDU2LCAyNDEsIDIyOSwgMjUxLCAxMTQsIDg1LCA0MywgMjI1LCA4LCAyMzUsIDI0MywgODUsIAorICAgIDQ0LCAyMjUsIDgsIDIzNSwgMjQzLCA3MSwgNDMsIDIyNSwgOCwgMjM1LCAyNDMsIDcxLCAxMjAsIDIyNSwgOCwgMjM1LCAKKyAgICAyNDMsIDcxLCA0NCwgMjI1LCA4LCAyMzUsIDI0MywgNzEsIDEyNCwgMjI1LCA4LCAyMzUsIDI0MywgMjE5LCAxMDIsIDIyLCAKKyAgICAyNDksIDEzMCwgMjUwLCAyMjAsIDUwLCAyMjMsIDE3MywgNTAsIDI1MSwgMjQwLCA1MCwgMjUxLCAyNiwgMjU0LCAxMDMsIAorICAgIDIyNiwgMTQ2LCAyNDksIDEzMSwgMjUwLCAxMTIsIDIyMywgMzgsIDI0OSwgMTMyLCA2NCwgMjMyLCAxMTksIDI0OSwgMTMyLCAKKyAgICA2NCwgMjM1LCAxMTcsIDIxOCwgMTU4LCAyMiwgMjQ5LCAxMzcsIDI0NCwgMTY5LCA4NywgMjU0LCAyNDksIDIyMCwgOTAsIAorICAgIDI0MiwgMjMsIDIyLCAyMTksIDE5MCwgMjI1LCAyMjEsIDg3LCAyMTAsIDI1NCwgMjExLCA2OSwgMjE1LCAyMTYsIDMxLCAKKyAgICAyNDEsIDIyNCwgMjE1LCAyMTYsIDMxLCAyMzMsIDEwOCwgMjE1LCAyMTYsIDMxLCAyNDQsIDk3LCAyMTUsIDIxNiwgMzEsIAorICAgIDIxNiwgMTM0LCAyMTUsIDIxNiwgMzEsIDIxMSwgMjM5LCAyMTUsIDIxNiwgMzEsIDIxMiwgNDAsIDIxNSwgMjE2LCAzMSwgCisgICAgMjMwLCAxMTYsIDIxNSwgMjE2LCAzMSwgMjQ1LCAyMjQsIDIxMiwgMSwgNjQsIDI0OCwgMTksIDcxLCAyNDMsIDI0MCwgMjQ0LCAKKyAgICAxOTEsIDcxLCAyMTksIDc1LCAyNDQsIDE5MSwgODUsIDIxOSwgNzUsIDI0NCwgMTkxLCA3MSwgMjE4LCAzOSwgMiwgMjIzLCAKKyAgICAxMzMsIDI0NCwgOTMsIDIyNCwgMjMsIDIzMCwgMTI5LCAyMzMsIDgxLCAyMjQsIDIzLCAyMzAsIDEyOSwgMjMxLCA1NSwgCisgICAgMjQ0LCAxMzksIDUwLCAyNDUsIDIyNCwgMjMxLCAxOTEsIDUwLCAyMzUsIDM5LCAyMjEsIDIyMSwgMjE0LCAxNDUsIDIyOSwgCisgICAgOTQsIDIyNSwgMjEsIDI1NCwgMTMsIDIxNywgNDEsIDI0MywgNTMsIDI1MSwgNCwgMjMzLCAyMCwgMjEzLCAxNTAsIDIzMiwgCisgICAgMjM5LCAyMjEsIDE5MiwgMjIyLCAyMCwgMjUwLCAyNDksIDI1NCwgNDMsIDIyNSwgNTMsIDcxLCAyNTAsIDExOCwgMjM0LCAKKyAgICA3OSwgNzEsIDI1MCwgMTE4LCAyMjQsIDE1LCA3MSwgMjUwLCAxMTgsIDIyMiwgMTk2LCA3MSwgMjUwLCAxMTgsIDI1MSwgCisgICAgMjMyLCA3MSwgMjUwLCAxMTgsIDIzNCwgMzEsIDcxLCAyNTAsIDExOCwgMjI1LCAyMzIsIDg1LCAyNTAsIDExOCwgMjM0LCAKKyAgICA3OSwgODUsIDI1MCwgMTE4LCAyMjQsIDE1LCA4NSwgMjUwLCAxMTgsIDIyMiwgMTk2LCA4NSwgMjUwLCAxMTgsIDI1MSwgCisgICAgMjMyLCA4NSwgMjUwLCAxMTgsIDIzNCwgMzEsIDg1LCAyNTAsIDExOCwgMjI1LCAyMzIsIDg1LCAyMTksIDE3LCAyMTgsIDUxLCAKKyAgICA3MSwgMjQxLCAyMjksIDIxOCwgNTEsIDcxLCAyNDcsIDI1MCwgMjE4LCA1MSwgODUsIDI0OSwgMjQ2LCAyMTgsIDUxLCA3MSwgCisgICAgMjE5LCAxNywgMjE4LCA1MSwgODUsIDI0MSwgMjI5LCAyMTgsIDUxLCA4NSwgMjQ3LCAyNTAsIDIxOCwgNTEsIDcxLCAyNDksIAorICAgIDI0NiwgMjE4LCA1MSwgMjQwLCAyNDQsIDIxOCwgMjM5LCAyMjQsIDIzLCAyMjgsIDQ4LCAyNDUsIDE5MCwgMjI4LCA0OCwgCisgICAgMjUyLCA3NCwgMjQ1LCAxOTAsIDIyOCwgNDMsIDI1MiwgNzQsIDIxOSwgMTE5LCAyMjgsIDQzLCAyMzAsIDU4LCAyNDQsIDY3LCAKKyAgICA1MCwgMjMwLCA1OCwgMjI5LCAxODksIDUwLCAyMzAsIDU4LCAyMjAsIDc3LCA1MCwgMjEyLCA5LCAxODIsIDI0OSwgMTMxLCAKKyAgICAyNDUsIDIyMSwgMTgyLCAyNDksIDEzMSwgMjE0LCAxNzEsIDIyMywgMTEzLCA4NywgMjIzLCAxMTMsIDE2LCAzMSwgMjE1LCAKKyAgICA0OCwgMjI1LCAzNSwgMjIzLCAxMTMsIDE2LCAzMSwgMjE1LCA0NywgMjI1LCAzNSwgMjIzLCAxMTMsIDE2LCAzMSwgMjE1LCAKKyAgICA0NiwgMjI1LCAzNSwgMjIzLCAxMTMsIDE2LCAzMSwgMjE1LCA0NSwgMjI1LCAzNSwgMjIzLCAxMTMsIDE2LCAzMSwgMjE1LCAKKyAgICA0NCwgMjI1LCAzNSwgMjIzLCAxMTMsIDE2LCAzMSwgMjE1LCA0MywgMjI1LCAzNSwgMjIzLCAxMTMsIDE2LCAzMSwgMjE1LCAKKyAgICA0MiwgMjI1LCAzNSwgMjIzLCAxMTMsIDE2LCAzMSwgMjQzLCA1MSwgMjMxLCAxMzksIDg1LCAyMTQsIDE3MSwgMjIzLCAxMTMsIAorICAgIDg3LCAyMjMsIDExNCwgMjI2LCAyMSwgODcsIDIyNSwgMjUzLCAyMjYsIDIxLCA4NywgMjI1LCAxNzUsIDIyNiwgMjEsIDUwLCAKKyAgICAyMTEsIDI1NSwgODcsIDI0NywgMjQyLCAyNDQsIDE5MCwgMjQ3LCAyNDIsIDI0NCwgMTg5LCAyNDcsIDI0MiwgMjQ0LCAxODgsIAorICAgIDI0NywgMjQyLCAyNDQsIDE4NywgMjQ3LCAyNDIsIDI0NCwgMTg2LCAyNDcsIDI0MiwgMjQ0LCAxODUsIDcxLCAyNTAsIDM3LCAKKyAgICAyLCA1OSwgMjIyLCAyNTIsIDcxLCAyNTAsIDM3LCAyLCAxMTMsIDI0NywgMTE5LCA4NSwgMjUwLCAzNywgMiwgNzEsIDU5LCAKKyAgICAyMjIsIDI1MiwgODUsIDI1MCwgMzcsIDIsIDExMywgNzEsIDI0NywgMTE5LCAyMzAsIDE0MywgMzEsIDIxMSwgNjksIDIzMCwgCisgICAgMTQzLCAzMSwgMjEwLCAyNTMsIDI0NywgMjI1LCAzMSwgMjQyLCAxMzIsIDIxMSwgNjksIDI0NywgMjI1LCAzMSwgMjMzLCAKKyAgICAxNCwgMjEwLCAyNTMsIDI0NywgMjI1LCAzMSwgMjMzLCAxNCwgMjExLCA2OSwgMjQ3LCAyMjUsIDMxLCAyNDIsIDEzMiwgCisgICAgMjEwLCAyNTMsIDcxLCAyNDQsIDc0LCA4NSwgMjQ0LCA3NCwgMjQyLCAyMywgMjIsIDIyNSwgMTA1LCAyNTQsIDEyMSwgMjQ5LCAKKyAgICAxMjksIDIxNywgMjM2LCAyMTgsIDE2NSwgNjQsIDI1NCwgMjI3LCAyMjEsIDIwNywgMjU0LCAxNzAsIDI0NCwgNTIsIDI0MywgCisgICAgNjEsIDIxOCwgMTY1LCA2NCwgMjQxLCAyMDMsIDI1MywgMjAwLCA4NywgMjQ0LCA2MywgMjI2LCAxMjcsIDcxLCAyMTgsIAorICAgIDE1NywgMTM0LCAyMzIsIDIwOSwgMjQ5LCAxNzYsIDIyMiwgMjUyLCAxMzQsIDIzMiwgMjA5LCAyNDksIDE3NiwgMjMzLCA0NywgCisgICAgMjEyLCA1MCwgNTAsIDEyNSwgMjEzLCAxMzAsIDUwLCAyNDYsIDExMSwgMjQ0LCAxMzksIDUwLCAyNDYsIDExMSwgMjMxLCAKKyAgICAxOTEsIDUwLCAyMzUsIDIwNCwgMjQ0LCAxMzksIDIyLCAyMzEsIDE5MSwgNTAsIDIzMSwgMTkxLCAyMiwgMjQ0LCAxMzksIAorICAgIDUwLCAyMzEsIDE5MSwgMiwgMjE4LCAxMDQsIDUwLCAyMzEsIDE5MSwgMiwgMjE4LCAxMDQsIDIyLCAyMzEsIDE5MSwgMjIsIAorICAgIDI0NCwgMTM5LCA1MCwgNjcsIDIzMSwgMTkxLCAyLCAyMTgsIDEwNCwgNTAsIDIwMywgMjMxLCAxOTEsIDIsIDIxOCwgMTA0LCAKKyAgICA1MCwgMjMxLCA4MywgNzEsIDI1MCwgMzYsIDIzMSwgODMsIDg1LCAyNTAsIDM2LCAyMzEsIDgzLCA0LCA3MSwgMjUwLCAzNiwgCisgICAgMjMxLCAxNTQsIDg3LCAyNDcsIDE2OCwgODcsIDIxNCwgMTY5LCAyMjUsIDI1MiwgODcsIDI0OSwgMjMyLCAyNDMsIDIyNSwgCisgICAgMjE0LCAxNDEsIDIyOSwgODksIDI1MCwgMTYyLCAyMjYsIDYyLCAyMzUsIDQ1LCAyMTMsIDE4NSwgMjUwLCA5NCwgODUsIAorICAgIDIzMCwgMTMwLCAyMzIsIDIyNiwgMjIwLCAxMTMsIDIyMCwgMTQ4LCAyMjQsIDYsIDIyMCwgMTMxLCAyMTksIDU2LCAyNTIsIAorICAgIDE2MCwgMjUyLCAxMjcsIDkyLCAyMzQsIDEzOSwgNzEsIDI0NiwgOTQsIDIzMSwgMTg2LCA3MSwgMjQ2LCA5NCwgMjM0LCA3OSwgCisgICAgODUsIDI0NiwgOTQsIDIzMSwgMTg2LCA4NSwgMjQ2LCA5NCwgMjM0LCA3OSwgMjE5LCA2MiwgMjExLCAyMzAsIDIxOSwgNjUsIAorICAgIDIxOCwgMzksIDI1MiwgNTIsIDI0OSwgMjQ4LCAyMjMsIDE2MCwgODUsIDIxOSwgNjEsIDIxNiwgMTM1LCAyNDksIDI0OSwgCisgICAgMjIsIDIyMywgMTYwLCAyMTUsIDk0LCA3MSwgMjIwLCAzLCAyMjUsIDEwMiwgMjE1LCA5NCwgODUsIDIyMCwgMywgMjI1LCAKKyAgICAxMDIsIDcxLCAyNDcsIDI1MCwgMjM2LCAxLCAyMTgsIDIzNSwgMjQ5LCAxMjYsIDIzMywgOTIsIDI0NywgMTk0LCAyNTAsIAorICAgIDI0NSwgMjI2LCAxNjcsIDIyNSwgMTA1LCAyNTAsIDI0NiwgMjE5LCA4OSwgMjQxLCAyMTMsIDIsIDcxLCAyNDksIDEzMSwgCisgICAgMzcsIDI0OSwgMTI2LCAyMzMsIDkyLCAyNTAsIDE1NCwgMjI4LCA3NiwgMjQ1LCAxMjUsIDI1NCwgMTQyLCAyMjYsIDE5MiwgCisgICAgNDMsIDIxMiwgMjYsIDIxNSwgMjUyLCA4NSwgMjE1LCA1NSwgNDMsIDIxMiwgMjYsIDIxNSwgMjUyLCA3MSwgMjE1LCA1NSwgCisgICAgNDMsIDIxMiwgMjYsIDIxNSwgMjUyLCA4NSwgNDMsIDIzMywgOTMsIDIzMSwgNTQsIDcxLCA0MywgMjMzLCA5MywgMjMxLCAKKyAgICA1NCwgMjQ2LCA5MCwgMjE5LCA4MywgNTAsIDExNCwgNzEsIDI0NiwgMTA2LCAyMTUsIDIyNiwgNDMsIDI1MCwgMSwgMjQ1LCAKKyAgICAxMjUsIDkyLCAyMjEsIDI1NSwgMjQ0LCAxNzYsIDI0OCwgMCwgMjM2LCAxLCA3MSwgMjUwLCAzNywgMjM2LCAxLCA4NSwgCisgICAgMjE4LCAyMzUsIDg1LCAyMTUsIDE5MywgMjIzLCA2MSwgNDMsIDI0NSwgMTI0LCAyMjMsIDYxLCA0MywgMjQ1LCAxMjMsIAorICAgIDI1MywgMjEyLCAxNiwgMzEsIDIxNCwgMTQ1LCAxMTQsIDI1MCwgMzcsIDIsIDIxOCwgMTA0LCAyMiwgMTEzLCAxNzAsIDQ4LCAKKyAgICAyMjUsIDE5MCwgMjIyLCAyNDksIDIzNSwgMjA2LCAyMjUsIDE5MCwgMjMzLCA0NCwgMjM1LCAyMDYsIDIyNSwgMTkwLCAyMzUsIAorICAgIDE5NCwgMjI1LCAxOTAsIDg1LCAyNDksIDEzMiwgMjI2LCAxOTgsIDIyMCwgMzAsIDIyMCwgMTgsIDIxOSwgMjMwLCAyNTAsIAorICAgIDYyLCAyNTAsIDIyNywgMjQxLCAxNTgsIDIxOSwgMTI3LCAyNDMsIDYyLCAyMTEsIDIzMCwgMjQwLCAyMjEsIDI0MywgNjIsIAorICAgIDIsIDI0MiwgMTMsIDIzMSwgMTc0LCAxNiwgMzEsIDIzMiwgMjMwLCAyMzAsIDExNiwgMjE0LCAxOTUsIDIyNiwgMTk4LCAKKyAgICAyNDIsIDEyMywgMjQ0LCAxMywgMjQ0LCA3NSwgMjM2LCAxLCAyNDEsIDYwLCAyNDQsIDEzMCwgMjIyLCAxNSwgNDIsIDI0NCwgCisgICAgMTIsIDI0OSwgMTYwLCAyMTksIDEwNSwgMjQwLCAxMTMsIDIxOSwgMTA4LCAyMjUsIDE2OSwgMiwgMjUyLCAxNjAsIDIxNiwgCisgICAgMjQzLCAyMzUsIDEzMiwgMjUyLCAxNDcsIDg3LCAyNDEsIDIzMiwgMjQyLCAxMzQsIDg3LCAyNDMsIDIzMywgMjI0LCAxNDMsIAorICAgIDI0OSwgMTA0LCAyMjYsIDE5OCwgODUsIDIxOCwgMjM1LCA3MSwgMjQ0LCA3NSwgMiwgMjAzLCAyMzAsIDIyNSwgODUsIDIxOCwgCisgICAgMTA1LCAyMTQsIDE2MCwgMjUxLCAyMTgsIDIyMSwgMTk0LCA4NSwgMjIxLCAxOTQsIDIzMiwgMTA5LCAyNTEsIDIxOCwgMjIxLCAKKyAgICAxOTQsIDcxLCAyMjEsIDE5NCwgNzEsIDExNCwgMjUwLCAxMzEsIDc4LCAyMTcsIDIsIDIzMiwgMTU1LCA1MCwgMjE3LCA1NCwgCisgICAgMjQ2LCA4OSwgMjU0LCAxOTIsIDI0NSwgMTIwLCAyMjMsIDE1OCwgMjQ0LCA4NiwgMjIzLCAxNTgsIDI0MiwgMTYsIDIxMywgCisgICAgMTc0LCAyNDIsIDE2LCAyMTEsIDE5OCwgMjQyLCAxNiwgMjMyLCAxMDksIDQ0LCAyMjUsIDE5OSwgMjI1LCAxOTksIDIxNCwgCisgICAgMTYwLCA0NCwgMjI1LCAxOTksIDcxLCAyMjgsIDIzMSwgODUsIDIyOCwgMjMxLCAyNTAsIDEzMSwgNzgsIDExNCwgMjUwLCAKKyAgICAxMzEsIDc4LCAyMzAsIDg1LCAyMTEsIDE3OCwgMTE0LCAyMzAsIDg1LCAyMTEsIDE3OCwgMjUyLCAxNTcsIDIxMSwgMTc4LCAKKyAgICAxMTQsIDI1MiwgMTU3LCAyMTEsIDE3OCwgMjI2LCAxMjcsIDI2LCAyNDksIDEzMSwgMTE0LCAyNiwgMjQ5LCAxMzEsIDIwNCwgCisgICAgMjUwLCAxNzYsIDI0OSwgMTMxLCAxMTQsIDIwNCwgMjUwLCAxNzYsIDI0OSwgMTMxLCA3LCAyNDksIDEzMSwgMjIwLCA5MiwgCisgICAgNzEsIDcsIDI0OSwgMTMxLCAyMjYsIDEyNywgNywgMjQ5LCAxMzEsIDIzMSwgMTg4LCAyNDksIDEzMSwgMjE4LCAxNTgsIDY0LCAKKyAgICAyNDgsIDE1MCwgMjQ0LCAxMiwgMjE3LCAxNiwgMjUzLCAyMTcsIDI0NCwgMTIsIDI1MiwgMTU4LCAyNTMsIDIxNywgMTE0LCAKKyAgICAyNDQsIDEyLCAyNTIsIDE1OCwgMjUzLCAyMTcsIDI0NCwgMTIsIDI0OSwgMjQ0LCAyNTMsIDIxNywgODUsIDI0NCwgMTIsIAorICAgIDIyNSwgMTAsIDIxOCwgMTU3LCA3MSwgMjQ0LCAxMiwgMjI1LCAxMCwgMjE4LCAxNTcsIDIxOSwgMTIsIDIxOCwgMTEyLCAKKyAgICAyMjYsIDEyNywgNzEsIDIxOCwgMTU3LCAzNywgNzEsIDIxOCwgMTU3LCAyMDQsIDI1MCwgMTc2LCA4NSwgMjE4LCAxNTcsIAorICAgIDg1LCAyNTAsIDE3NiwgNzEsIDIxOCwgMTU3LCAyMjYsIDEyNywgODUsIDIxOCwgMTU3LCAxMTQsIDIyNiwgMTI3LCA4NSwgCisgICAgMjE4LCAxNTcsIDIyNSwgNjEsIDIxOCwgMTU3LCAyMjAsIDkyLCA3MSwgMjE4LCAxNTcsIDExNCwgMjUzLCAyMTcsIDIwNCwgCisgICAgMjUwLCAxNzYsIDI1MywgMjE3LCAyNDUsIDE5NCwgMjE4LCAyNDUsIDI1MywgMjE3LCAyNDUsIDE5NCwgMjI1LCAxMCwgODUsIAorICAgIDIxOCwgMTU3LCAyNDUsIDE5NCwgMjI1LCAxMCwgMjI1LCA2MSwgMjE4LCAxNTcsIDIxOSwgMTI2LCAyMjUsIDEwLCA4NSwgCisgICAgMjE4LCAxNTcsIDI0NSwgMTk0LCAyMjUsIDEwLCAyMjMsIDExNSwgODUsIDIxOCwgMTU3LCAxMTQsIDI0NSwgMTk0LCAyMjUsIAorICAgIDEwLCAyMjMsIDExNSwgODUsIDIxOCwgMTU3LCAyMTUsIDc3LCAyMjUsIDEwLCA4NSwgMjE4LCAxNTcsIDIxOSwgMTIxLCAKKyAgICAyMjUsIDEwLCAyNTMsIDIxNywgMjE3LCAxNiwgMjUzLCAyMTcsIDIwNCwgMjUwLCAxNzYsIDIxNywgMTYsIDI1MywgMjE3LCAKKyAgICAxMTQsIDIxNywgMTYsIDI1MywgMjE3LCAyMTksIDEyNiwgMjI1LCAxNTgsIDg1LCAyMiwgNzEsIDI0NCwgNTUsIDg1LCAyNDQsIAorICAgIDU1LCA3MSwgMjQ0LCA1NSwgMjQ1LCAxOTQsIDIyNSwgMTU4LCAyMjYsIDEyNywgODUsIDI0NCwgNTUsIDM3LCAyMDQsIDI1MCwgCisgICAgMTc2LCAyNDUsIDE5NCwgMjI1LCAxMCwgMjE4LCAxNTcsIDExNCwgMjE3LCAxNiwgMjI1LCA2MSwgMjUzLCAyMTcsIDIxOSwgCisgICAgNjMsIDIxNiwgMTA2LCAyMTUsIDIxOSwgMjE5LCA2MywgMTE0LCAyNTAsIDExNSwgMjE5LCA2MywgMjE5LCAxNCwgMTE0LCAKKyAgICAyMTksIDE0LCAyNTIsIDE1OCwgMjUzLCAyMTcsIDI0NSwgMTk0LCAyMTcsIDE2LCAyMjQsIDE3MiwgMjUzLCAyMTcsIDExNCwgCisgICAgMjQ1LCAxOTQsIDIxNywgMTYsIDIyNCwgMTcyLCAyNTMsIDIxNywgMjQ5LCAxMzIsIDc4LCAyMjAsIDkyLCA3MSwgMjUwLCAKKyAgICAzNiwgMTUyLCA5MiwgMjQ5LCAxMzIsIDc4LCAyMzIsIDEwOSwgNDQsIDI0NiwgODcsIDcxLCAyMTgsIDIzNSwgMjE0LCAxNjAsIAorICAgIDQ0LCAyNDYsIDg3LCA3MSwgMjE4LCAyMzUsIDIzMiwgMTA5LCA0NCwgMjIwLCA5MiwgNzEsIDIxOCwgMjM1LCAyMTQsIDE2MCwgCisgICAgNDQsIDIyMCwgOTIsIDcxLCAyMTgsIDIzNSwgODUsIDIyNCwgMTQsIDE2NCwgMjI2LCAxNDgsIDcxLCAyMjQsIDE0LCAxNjQsIAorICAgIDIyNiwgMTQ4LCA3MSwgMjQ1LCAzMiwgMTY0LCAyMjYsIDE0OCwgODUsIDI0NywgMjUwLCAyMzAsIDE4MywgNzEsIDIxMSwgCisgICAgMTc4LCAxMTQsIDI0NSwgMzIsIDE2NCwgODcsIDE5MiwgNjcsIDEzMCwgMjMxLCA4MywgNjcsIDEzMCwgMTE0LCA2NywgMTMwLCAKKyAgICAxMTQsIDIxOSwgMTU2LCAyMTUsIDk0LCAyNDksIDIyMSwgMjIzLCAyNTUsIDE2NCwgMjI2LCAxNDgsIDExNCwgMjE5LCAxNTYsIAorICAgIDI0OSwgMjIxLCAyMjMsIDI1NSwgMTY0LCAyMjYsIDE0OCwgMTE0LCA1MiwgMjE1LCA5NCwgMjQ5LCAyMjEsIDIyMywgMjU1LCAKKyAgICAxNjQsIDIyNiwgMTQ4LCAxMTQsIDUyLCAyNDksIDIyMSwgMjIzLCAyNTUsIDE2NCwgMjI2LCAxNDgsIDExNCwgMTIxLCAyMTksIAorICAgIDE1NiwgMjQ5LCAyMjEsIDIyMywgMjU1LCAxNjQsIDIyNiwgMTQ4LCAxMTQsIDEyMSwgNTIsIDI0OSwgMjIxLCAyMjMsIDI1NSwgCisgICAgMTY0LCAyMjYsIDE0OCwgMjQ5LCA5MiwgMjE4LCAxNDEsIDIyNiwgMTYsIDUsIDIyNiwgMTQ4LCAxMTQsIDI0NSwgMzIsIAorICAgIDE2NCwgMjI2LCAxNDgsIDExNCwgMjQxLCAyMjksIDI0NSwgMzIsIDE2NCwgMjI2LCAxNDgsIDExNCwgODUsIDI0MSwgMjI4LCAKKyAgICAyMjIsIDE4OCwgMTE0LCA4NSwgMjQxLCAyMjksIDI1MSwgMTE0LCAyNDQsIDU2LCAyNDEsIDIyOCwgMjIyLCAxODgsIDI0NCwgCisgICAgNTYsIDI0MSwgMjI5LCAyNTEsIDExNCwgMjMxLCA4MywgNDMsIDIyNiwgNSwgMjI2LCAxNDgsIDIzMSwgODMsIDQ0LCAyMjYsIAorICAgIDUsIDIyNiwgMTQ4LCAyMzEsIDgzLCAyNDQsIDY0LCA0MywgMjI2LCA1LCAyMjYsIDE0OCwgMjMxLCA4MywgMjQ0LCA2NCwgCisgICAgNDQsIDIyNiwgNSwgMjI2LCAxNDgsIDIzMSwgODMsIDIzMywgNDMsIDI1NCwgMTExLCAyNTEsIDE1OSwgMjI2LCAxNDgsIAorICAgIDIzMSwgODMsIDIyMiwgMjQ4LCAyNTQsIDExMSwgMjUxLCAxNTksIDIyNiwgMTQ4LCAxMTQsIDIzMywgNDMsIDI1NCwgMTExLCAKKyAgICAyMjMsIDI1NSwgMTY0LCAyMjYsIDE0OCwgMTE0LCAyMjIsIDI0OCwgMjU0LCAxMTEsIDIyMywgMjU1LCAxNjQsIDIyNiwgCisgICAgMTQ4LCAxMTQsIDIzMywgNDMsIDI1NCwgMTExLCAyNTEsIDE1OSwgMjI2LCAxNDgsIDExNCwgMjIyLCAyNDgsIDI1NCwgMTExLCAKKyAgICAyNTEsIDE1OSwgMjI2LCAxNDgsIDE5MiwgNDMsIDIxNiwgNywgMjIwLCA1NCwgMjUxLCAxNTksIDIyNiwgMTQ4LCAxOTIsIAorICAgIDQ0LCAyMTYsIDcsIDIyMCwgNTQsIDI1MSwgMTU5LCAyMjYsIDE0OCwgMjMxLCA4MywgNDMsIDI0OSwgMTAwLCAyNTEsIDE1OSwgCisgICAgMjI2LCAxNDgsIDIzMSwgODMsIDQ0LCAyNDksIDEwMCwgMjUxLCAxNTksIDIyNiwgMTQ4LCAyNDcsIDIwNSwgMTUyLCAzNywgCisgICAgMjEsIDExMCwgMjQ3LCAyMDUsIDE1MiwgMzcsIDIxLCAxMDUsIDI0NywgMjA1LCAxNTIsIDM3LCAyMSwgMTU4LCAyNDcsIAorICAgIDIwNSwgMTUyLCAzNywgMjEsIDE2MSwgMjQ3LCAyMDUsIDE1MiwgMzcsIDIxLCAxODksIDI0NywgMjA1LCAxNTIsIDM3LCAyMSwgCisgICAgMTk0LCAyNDcsIDIwNSwgMTUyLCAzNywgMjEsIDE5OCwgMjQ3LCAyMDUsIDE1MiwgMzcsIDIxLCAxOTUsIDI0NywgMjA1LCAKKyAgICAxNTIsIDM3LCAyMSwgMjAwLCAyNDcsIDIwNSwgMTUyLCAzNywgNTQsIDIxNiwgMjQ4LCAyNDcsIDIwNSwgMzcsIDM1LCAyMSwgCisgICAgMTEwLCAyNDcsIDIwNSwgMzcsIDM1LCAyMSwgMTA1LCAyNDcsIDIwNSwgMzcsIDM1LCAyMSwgMTU4LCAyNDcsIDIwNSwgMzcsIAorICAgIDM1LCAyMSwgMTYxLCAyNDcsIDIwNSwgMzcsIDM1LCAyMSwgMTg5LCAyNDcsIDIwNSwgMzcsIDM1LCAyMSwgMTk0LCAyNDcsIAorICAgIDIwNSwgMzcsIDM1LCAyMSwgMTk4LCAyNDcsIDIwNSwgMzcsIDM1LCAyMSwgMTk1LCAyNDcsIDIwNSwgMzcsIDM1LCAyMSwgCisgICAgMjAwLCAyNDcsIDIwNSwgMzcsIDM1LCA1NCwgMjE2LCAyNDgsIDI0NywgMjA1LCAxNTIsIDM3LCAzNSwgMjEsIDExMCwgMjQ3LCAKKyAgICAyMDUsIDE1MiwgMzcsIDM1LCAyMSwgMTA1LCAyNDcsIDIwNSwgMTUyLCAzNywgMzUsIDIxLCAxNTgsIDI0NywgMjA1LCAxNTIsIAorICAgIDM3LCAzNSwgMjEsIDE2MSwgMjQ3LCAyMDUsIDE1MiwgMzcsIDM1LCAyMSwgMTg5LCAyNDcsIDIwNSwgMTUyLCAzNywgMzUsIAorICAgIDIxLCAxOTQsIDI0NywgMjA1LCAxNTIsIDM3LCAzNSwgMjEsIDE5OCwgMjQ3LCAyMDUsIDE1MiwgMzcsIDM1LCAyMSwgMTk1LCAKKyAgICAyNDcsIDIwNSwgMTUyLCAzNywgMzUsIDIxLCAyMDAsIDI0NywgMjA1LCAxNTIsIDM3LCAzNSwgNTQsIDIxNiwgMjQ4LCAxMTQsIAorICAgIDIxMSwgMjQ2LCA5NywgNzQsIDExNCwgOTYsIDUwLCAxMTQsIDIzMCwgMTgzLCA1MCwgMTE0LCAyNDcsIDE3MCwgNTAsIDExNCwgCisgICAgMjE5LCAyOSwgMjQ1LCAyMjEsIDc0LCAxMTQsIDk3LCA3NCwgMTE0LCAyMjgsIDU3LCAyNDUsIDIyMSwgNzQsIDI0NiwgOTksIAorICAgIDIyNSwgMTIsIDk3LCA3NCwgMTE0LCAyMjIsIDE4NSwgOTcsIDc0LCAyMTUsIDIyNSwgOTcsIDc0LCAxMTQsIDIxNSwgMjI1LCAKKyAgICA5NywgNzQsIDI0OCwgMTU2LCAyMTUsIDIyNSwgOTcsIDc0LCAxMTQsIDI0OCwgMTU2LCAyMTUsIDIyNSwgOTcsIDc0LCA4NSwgCisgICAgOTcsIDc0LCAyMTYsIDE0NSwgMjE2LCAxMywgOTcsIDI1MywgMjUwLCAyMTYsIDE0NSwgMjUxLCAxNzQsIDk3LCAyNTMsIAorICAgIDI1MCwgODUsIDk3LCAyNTMsIDI1MCwgMTE0LCA4NSwgMjQ5LCA5MiwgMjQ2LCAxMDUsIDIyLCA5NywgNzQsIDExNCwgODUsIAorICAgIDI0OSwgOTIsIDIxNCwgMTUzLCAyMiwgOTcsIDc0LCAyMTgsIDIzMiwgODUsIDk3LCA3NCwgMTE0LCAyNDksIDIwNywgODUsIAorICAgIDk3LCA3NCwgMjIyLCAyNDcsIDcxLCA5NywgNzQsIDIzMywgNDIsIDcxLCA5NywgNzQsIDI1MiwgMTg0LCAyMjAsIDkyLCA3MSwgCisgICAgOTcsIDc0LCAyNDMsIDI0MiwgMjIwLCA5MiwgNzEsIDk3LCA3NCwgMTE0LCAyMzIsIDEwOSwgMjIyLCAyNDYsIDcxLCA5NywgCisgICAgNzQsIDExNCwgMjE0LCAxNjAsIDIyMiwgMjQ2LCA3MSwgOTcsIDc0LCAyMjgsIDUwLCAyMzIsIDEwOSwgMjIyLCAyNDYsIDcxLCAKKyAgICA5NywgNzQsIDI0OSwgMTAwLCAyMzIsIDEyNCwgMjI4LCA1MCwgMjE0LCAxNjAsIDIyMiwgMjQ2LCA3MSwgOTcsIDc0LCAzNywgCisgICAgMTE0LCA3MSwgOTcsIDc0LCAyMTEsIDI1MiwgOTcsIDc0LCAyNTEsIDIyMSwgMjE5LCAyOSwgMjQ1LCAyMjEsIDc0LCAyNTEsIAorICAgIDIyMSwgOTcsIDc0LCAyNTEsIDIyMSwgMjI4LCA1NywgMjQ1LCAyMjEsIDc0LCAxMTQsIDI1MSwgMjIxLCAyMTksIDI5LCAKKyAgICAyNDUsIDIyMSwgNzQsIDExNCwgMjUxLCAyMjEsIDk3LCA3NCwgMTE0LCAyNTEsIDIyMSwgMjI4LCA1NywgMjQ1LCAyMjEsIAorICAgIDc0LCAyMTcsIDE4LCA5NywgNzQsIDExNCwgMjE3LCAxNywgOTcsIDc0LCAyMTIsIDE4LCA5NywgNzQsIDExNCwgMjEyLCAxOCwgCisgICAgOTcsIDc0LCAyMjYsIDE3MywgOTcsIDc0LCA1MiwgMjQ5LCAxMDAsIDIzMiwgMTI0LCAxMzQsIDI0NywgMjE1LCAyNTQsIAorICAgIDExMCwgNzEsIDIxNSwgMjI3LCAyNDksIDE4OCwgNCwgNzEsIDIxNSwgMjI2LCAyMjUsIDE3MiwgMjA0LCAyMTgsIDY0LCAKKyAgICAyMDQsIDIxOCwgMjIsIDQzLCAyMjIsIDkxLCAyNTIsIDE3NCwgMjQ4LCA2MSwgNDQsIDIyMiwgOTEsIDI1MiwgMTc0LCAyNDgsIAorICAgIDYxLCAxNzcsIDIsIDU5LCAyMzUsIDIxNiwgMjIzLCA1MSwgMjE5LCA0OCwgMjI0LCAyMDIsIDIxOCwgNjQsIDIxOCwgMjMsIAorICAgIDIyNCwgMjAyLCAyMTksIDQ3LCA2NywgMjUyLCAxNDIsIDIsIDIwMywgOTEsIDExLCAyMjIsIDIyOSwgMjQ3LCAyNTUsIDE5OSwgCisgICAgMjQ3LCAxNjksIDExLCAyNDQsIDE3NiwgMjQ3LCAyNTUsIDkyLCAyMzIsIDE0NywgMjU0LCAxMTksIDkyLCAyMzIsIDE0NywgCisgICAgMjI2LCAxNTksIDcxLCAyNDcsIDI1MCwgMiwgMjUwLCAxNzQsIDI0NywgMTIxLCAyMiwgMiwgMjQ3LCAxMjEsIDI0NSwgMTcxLCAKKyAgICA2NCwgMjI2LCAxNzEsIDIxNCwgMTUyLCAyMzIsIDEwOSwgNDQsIDI0OSwgMTYyLCAyLCAyNDcsIDEyMSwgMjE0LCAxNjAsIAorICAgIDQzLCAyNDksIDE2MiwgMiwgMjQ3LCAxMjEsIDQzLCAyMjYsIDEyOSwgMjM1LCA2NywgNDQsIDIyNiwgMTI5LCAyMzUsIDY3LCAKKyAgICAyNDMsIDIzMCwgMjI2LCAxMjksIDIzNSwgNjcsIDIzMywgODYsIDEyMCwgMjE3LCA4OCwgMjMzLCA4NiwgMTI0LCAyMTcsIAorICAgIDg4LCA0MywgMjIsIDQ0LCA1MiwgMjE1LCA5MywgNDMsIDIyLCA0NCwgMjE3LCA4OCwgNDMsIDIzMCwgODgsIDE5OSwgNDQsIAorICAgIDIxNywgODgsIDE5OSwgNDMsIDIxNywgODgsIDEyMCwgMjE3LCA4OSwgMiwgMjUwLCAzNywgNDgsIDIzMiwgMTA2LCAyNDcsIAorICAgIDE3NCwgMjUxLCA3OSwgMjAzLCAyMjIsIDEzNCwgNzEsIDI0OSwgMjA2LCAyNDcsIDI0OSwgNzEsIDI0OSwgMjA2LCAyNDcsIAorICAgIDI1MCwgMiwgMTQwLCAyMTYsIDExNSwgNzEsIDI0OSwgMjA2LCAyNDcsIDI1MCwgMiwgOTcsIDIxNiwgMTE1LCA3MSwgNDIsIAorICAgIDIsIDE0MCwgMjE2LCAxMTUsIDcxLCA0MiwgMiwgOTcsIDIxNiwgMTE1LCAxMSwgNDMsIDcxLCA0MiwgMTI3LCAxMSwgNDQsIAorICAgIDcxLCA0MiwgMTI3LCAxMSwgNDMsIDI1NCwgMTExLCAxMjcsIDExLCA0NCwgMjU0LCAxMTEsIDEyNywgMTEsIDQzLCA1MiwgCisgICAgMjU0LCAxMTEsIDEyNywgMTEsIDQ0LCA1MiwgMjU0LCAxMTEsIDEyNywgMTEsIDQzLCA3MSwgMjE2LCA3LCAyMjAsIDU0LCAKKyAgICAxMjcsIDExLCA0NCwgNzEsIDIxNiwgNywgMjIwLCA1NCwgMTI3LCAxMSwgNDMsIDI0NCwgNjQsIDIyNiwgNCwgMTEsIDQ0LCAKKyAgICAyNDQsIDY0LCAyMjYsIDQsIDIxNCwgMTUzLCAyMjQsIDI1LCA3NCwgMjQ2LCAxMDUsIDIyNCwgMjUsIDc0LCAyNTQsIDg5LCAKKyAgICAyNDMsIDk5LCAyNTAsIDM3LCA3NCwgMjUwLCAzLCAyNDMsIDk5LCAyNTAsIDM3LCA3NCwgNDQsIDgwLCAyLCAzNywgMjI1LCAKKyAgICAyMywgMTk5LCAxNDAsIDc0LCAxOTksIDk3LCA3NCwgMTk5LCA0MywgNDQsIDc0LCAxOTksIDE0MCwgNTIsIDc0LCAxOTksIAorICAgIDk3LCA1MiwgNzQsIDE5OSwgNDMsIDQ0LCA1MiwgNzQsIDE5OSwgMTQwLCA4MCwgMjQzLCAyNDQsIDEzMCwgMTk5LCA5NywgCisgICAgODAsIDI0MywgMjQ0LCAxMzAsIDE5OSwgMTQwLCA1MiwgODAsIDI0MywgMjQ0LCAxMzAsIDE5OSwgOTcsIDUyLCA4MCwgMjQzLCAKKyAgICAyNDQsIDEzMCwgMTk5LCA5NywgMjE4LCAyMzEsIDc0LCA0NiwgNDcsIDI1MSwgMjE2LCA0NiwgNDcsIDI0NywgMTE4LCA0NiwgCisgICAgNDcsIDI0NiwgMjQ2LCA0NiwgNDcsIDI0NywgMTE3LCA0NiwgNDcsIDI0NiwgMTgyLCA0NiwgNDcsIDI0NywgNTMsIDQ2LCAKKyAgICA0NywgMjQ2LCAyNDUsIDQ2LCA0NywgMjQ3LCAxMTYsIDQ2LCA0NywgMjQ2LCAxNTAsIDQ2LCA0NywgMjQ3LCAyMSwgNDYsIAorICAgIDQ3LCAyNDYsIDIxMywgNDYsIDQ3LCAyNDcsIDg0LCA0NiwgNDcsIDI0NiwgMTgxLCA0NiwgNDcsIDI0NywgNTIsIDQ2LCA0NywgCisgICAgMjQ2LCAyNDQsIDQ2LCA0NywgMjQ3LCAxMTUsIDQ2LCA0NywgMjQ2LCAxMzQsIDQ2LCA0NywgMjQ3LCA1LCA0NiwgNDcsIAorICAgIDI0NiwgMTk3LCA0NiwgNDcsIDI0NywgNjgsIDQ2LCA0NywgMjQ2LCAxNjUsIDQ2LCA0NywgMjQ3LCAzNiwgNDYsIDQ3LCAKKyAgICAyNDYsIDIyOCwgNDYsIDQ3LCAyNDcsIDk5LCA0NiwgNDcsIDI0NiwgMTQ5LCA0NiwgNDcsIDI0NywgMjAsIDQ2LCA0NywgCisgICAgMjQ2LCAyMTIsIDQ2LCA0NywgMjQ3LCA4MywgNDYsIDQ3LCAyNDYsIDE4MCwgNDYsIDQ3LCAyNDcsIDUxLCA0NiwgNDcsIAorICAgIDI0NiwgMjQzLCA0NiwgNDcsIDI0NywgMTE0LCA0NiwgNDcsIDI0NiwgMTI2LCA0NiwgNDcsIDI0NiwgMjUzLCA0NiwgNDcsIAorICAgIDI0NiwgMTg5LCA0NiwgNDcsIDI0NywgNjAsIDQ2LCA0NywgMjQ2LCAxNTcsIDQ2LCA0NywgMjQ3LCAyOCwgNDYsIDQ3LCAKKyAgICAyNDYsIDIyMCwgNDYsIDQ3LCAyNDcsIDkxLCA0NiwgNDcsIDI0NiwgMTQxLCA0NiwgNDcsIDI0NywgMTIsIDQ2LCA0NywgCisgICAgMjQ2LCAyMDQsIDQ2LCA0NywgMjQ3LCA3NSwgNDYsIDQ3LCAyNDYsIDE3MiwgNDYsIDQ3LCAyNDcsIDQzLCA0NiwgNDcsIAorICAgIDI0NiwgMjM1LCA0NiwgNDcsIDI0NywgMTA2LCA0NiwgNDcsIDI0NiwgMTMzLCA0NiwgNDcsIDI0NywgNCwgNDYsIDQ3LCAKKyAgICAyNDYsIDE5NiwgNDYsIDQ3LCAyNDcsIDY3LCA0NiwgNDcsIDI0NiwgMTY0LCA0NiwgNDcsIDI0NywgMzUsIDQ2LCA0NywgCisgICAgMjQ2LCAyMjcsIDQ2LCA0NywgMjQ3LCA5OCwgNDYsIDQ3LCAyNDYsIDE0OCwgNDYsIDQ3LCAyNDcsIDE5LCA0NiwgNDcsIAorICAgIDI0NiwgMjExLCA0NiwgNDcsIDI0NywgODIsIDQ2LCA0NywgMjQ2LCAxNzksIDQ2LCA0NywgMjQ3LCA1MCwgNDYsIDQ3LCAKKyAgICAyNDYsIDI0MiwgNDYsIDQ3LCAyNDcsIDExMywgNDYsIDQ3LCAyNDYsIDEyMiwgNDYsIDQ3LCAyNDYsIDI0OSwgNDYsIDQ3LCAKKyAgICAyNDYsIDE4NSwgNDYsIDQ3LCAyNDcsIDU2LCA0NiwgNDcsIDI0NiwgMTUzLCA0NiwgNDcsIDI0NywgMjQsIDQ2LCA0NywgCisgICAgMjQ2LCAyMTYsIDQ2LCA0NywgMjQ3LCA4NywgNDYsIDQ3LCAyNDYsIDEzNywgNDYsIDQ3LCAyNDcsIDgsIDQ2LCA0NywgMjQ2LCAKKyAgICAyMDAsIDQ2LCA0NywgMjQ3LCA3MSwgNDYsIDQ3LCAyNDYsIDE2OCwgNDYsIDQ3LCAyNDcsIDM5LCA0NiwgNDcsIDI0NiwgCisgICAgMjMxLCA0NiwgNDcsIDI0NywgMTAyLCA0NiwgNDcsIDI0NiwgMTI5LCA0NiwgNDcsIDI0NywgMCwgNDYsIDQ3LCAyNDYsIAorICAgIDE5MiwgNDYsIDQ3LCAyNDcsIDYzLCA0NiwgNDcsIDI0NiwgMTYwLCA0NiwgNDcsIDI0NywgMzEsIDQ2LCA0NywgMjQ2LCAKKyAgICAyMjMsIDQ2LCA0NywgMjQ3LCA5NCwgNDYsIDQ3LCAyNDYsIDE0NCwgNDYsIDQ3LCAyNDcsIDE1LCA0NiwgNDcsIDI0NiwgCisgICAgMjA3LCA0NiwgNDcsIDI0NywgNzgsIDQ2LCA0NywgMjQ2LCAxNzUsIDQ2LCA0NywgMjQ3LCA0NiwgNDYsIDQ3LCAyNDYsIAorICAgIDIzOCwgNDYsIDQ3LCAyNDcsIDEwOSwgNDYsIDQ3LCAyNDYsIDEyNSwgNDYsIDQ3LCAyNDYsIDI1MiwgNDYsIDQ3LCAyNDYsIAorICAgIDE4OCwgNDYsIDQ3LCAyNDcsIDU5LCA0NiwgNDcsIDI0NiwgMTU2LCA0NiwgNDcsIDI0NywgMjcsIDQ2LCA0NywgMjQ2LCAKKyAgICAyMTksIDQ2LCA0NywgMjQ3LCA5MCwgNDYsIDQ3LCAyNDYsIDE0MCwgNDYsIDQ3LCAyNDcsIDExLCA0NiwgNDcsIDI0NiwgCisgICAgMjAzLCA0NiwgNDcsIDI0NywgNzQsIDQ2LCA0NywgMjQ2LCAxNzEsIDQ2LCA0NywgMjQ3LCA0MiwgNDYsIDQ3LCAyNDYsIAorICAgIDIzNCwgNDYsIDQ3LCAyNDcsIDEwNSwgNDYsIDQ3LCAyNDYsIDEzMiwgNDYsIDQ3LCAyNDcsIDMsIDQ2LCA0NywgMjQ2LCAKKyAgICAxOTUsIDQ2LCA0NywgMjQ3LCA2NiwgNDYsIDQ3LCAyNDYsIDE2MywgNDYsIDQ3LCAyNDcsIDM0LCA0NiwgNDcsIDI0NiwgCisgICAgMjI2LCA0NiwgNDcsIDI0NywgOTcsIDQ2LCA0NywgMjQ2LCAxNDcsIDQ2LCA0NywgMjQ3LCAxOCwgNDYsIDQ3LCAyNDYsIAorICAgIDIxMCwgNDYsIDQ3LCAyNDcsIDgxLCA0NiwgNDcsIDI0NiwgMTc4LCA0NiwgNDcsIDI0NywgNDksIDQ2LCA0NywgMjQ2LCAKKyAgICAyNDEsIDQ2LCA0NywgMjQ3LCAxMTIsIDQ2LCA0NywgMjQ2LCAxMjAsIDQ2LCA0NywgMjQ2LCAyNDcsIDQ2LCA0NywgMjQ2LCAKKyAgICAxODMsIDQ2LCA0NywgMjQ3LCA1NCwgNDYsIDQ3LCAyNDYsIDE1MSwgNDYsIDQ3LCAyNDcsIDIyLCA0NiwgNDcsIDI0NiwgCisgICAgMjE0LCA0NiwgNDcsIDI0NywgODUsIDQ2LCA0NywgMjQ2LCAxMzUsIDQ2LCA0NywgMjQ3LCA2LCA0NiwgNDcsIDI0NiwgMTk4LCAKKyAgICA0NiwgNDcsIDI0NywgNjksIDQ2LCA0NywgMjQ2LCAxNjYsIDQ2LCA0NywgMjQ3LCAzNywgNDYsIDQ3LCAyNDYsIDIyOSwgNDYsIAorICAgIDQ3LCAyNDcsIDEwMCwgNDYsIDQ3LCAyNDYsIDEyNywgNDYsIDQ3LCAyNDYsIDI1NCwgNDYsIDQ3LCAyNDYsIDE5MCwgNDYsIAorICAgIDQ3LCAyNDcsIDYxLCA0NiwgNDcsIDI0NiwgMTU4LCA0NiwgNDcsIDI0NywgMjksIDQ2LCA0NywgMjQ2LCAyMjEsIDQ2LCA0NywgCisgICAgMjQ3LCA5MiwgNDYsIDQ3LCAyNDYsIDE0MiwgNDYsIDQ3LCAyNDcsIDEzLCA0NiwgNDcsIDI0NiwgMjA1LCA0NiwgNDcsIAorICAgIDI0NywgNzYsIDQ2LCA0NywgMjQ2LCAxNzMsIDQ2LCA0NywgMjQ3LCA0NCwgNDYsIDQ3LCAyNDYsIDIzNiwgNDYsIDQ3LCAKKyAgICAyNDcsIDEwNywgNDYsIDQ3LCAyNDYsIDEyMywgNDYsIDQ3LCAyNDYsIDI1MCwgNDYsIDQ3LCAyNDYsIDE4NiwgNDYsIDQ3LCAKKyAgICAyNDcsIDU3LCA0NiwgNDcsIDI0NiwgMTU0LCA0NiwgNDcsIDI0NywgMjUsIDQ2LCA0NywgMjQ2LCAyMTcsIDQ2LCA0NywgCisgICAgMjQ3LCA4OCwgNDYsIDQ3LCAyNDYsIDEzOCwgNDYsIDQ3LCAyNDcsIDksIDQ2LCA0NywgMjQ2LCAyMDEsIDQ2LCA0NywgMjQ3LCAKKyAgICA3MiwgNDYsIDQ3LCAyNDYsIDE2OSwgNDYsIDQ3LCAyNDcsIDQwLCA0NiwgNDcsIDI0NiwgMjMyLCA0NiwgNDcsIDI0NywgCisgICAgMTAzLCA0NiwgNDcsIDI0NiwgMTMwLCA0NiwgNDcsIDI0NywgMSwgNDYsIDQ3LCAyNDYsIDE5MywgNDYsIDQ3LCAyNDcsIDY0LCAKKyAgICA0NiwgNDcsIDI0NiwgMTYxLCA0NiwgNDcsIDI0NywgMzIsIDQ2LCA0NywgMjQ2LCAyMjQsIDQ2LCA0NywgMjQ3LCA5NSwgNDYsIAorICAgIDQ3LCAyNDYsIDE0NSwgNDYsIDQ3LCAyNDcsIDE2LCA0NiwgNDcsIDI0NiwgMjA4LCA0NiwgNDcsIDI0NywgNzksIDQ2LCA0NywgCisgICAgMjQ2LCAxNzYsIDQ2LCA0NywgMjQ3LCA0NywgNDYsIDQ3LCAyNDYsIDIzOSwgNDYsIDQ3LCAyNDcsIDExMCwgNDYsIDQ3LCAKKyAgICAyNDYsIDEyMSwgNDYsIDQ3LCAyNDYsIDI0OCwgNDYsIDQ3LCAyNDYsIDE4NCwgNDYsIDQ3LCAyNDcsIDU1LCA0NiwgNDcsIAorICAgIDI0NiwgMTUyLCA0NiwgNDcsIDI0NywgMjMsIDQ2LCA0NywgMjQ2LCAyMTUsIDQ2LCA0NywgMjQ3LCA4NiwgNDYsIDQ3LCAKKyAgICAyNDYsIDEzNiwgNDYsIDQ3LCAyNDcsIDcsIDQ2LCA0NywgMjQ2LCAxOTksIDQ2LCA0NywgMjQ3LCA3MCwgNDYsIDQ3LCAyNDYsIAorICAgIDE2NywgNDYsIDQ3LCAyNDcsIDM4LCA0NiwgNDcsIDI0NiwgMjMwLCA0NiwgNDcsIDI0NywgMTAxLCA0NiwgNDcsIDI0NiwgCisgICAgMTI4LCA0NiwgNDcsIDI0NiwgMjU1LCA0NiwgNDcsIDI0NiwgMTkxLCA0NiwgNDcsIDI0NywgNjIsIDQ2LCA0NywgMjQ2LCAKKyAgICAxNTksIDQ2LCA0NywgMjQ3LCAzMCwgNDYsIDQ3LCAyNDYsIDIyMiwgNDYsIDQ3LCAyNDcsIDkzLCA0NiwgNDcsIDI0NiwgCisgICAgMTQzLCA0NiwgNDcsIDI0NywgMTQsIDQ2LCA0NywgMjQ2LCAyMDYsIDQ2LCA0NywgMjQ3LCA3NywgNDYsIDQ3LCAyNDYsIAorICAgIDE3NCwgNDYsIDQ3LCAyNDcsIDQ1LCA0NiwgNDcsIDI0NiwgMjM3LCA0NiwgNDcsIDI0NywgMTA4LCA0NiwgNDcsIDI0NiwgCisgICAgMTI0LCA0NiwgNDcsIDI0NiwgMjUxLCA0NiwgNDcsIDI0NiwgMTg3LCA0NiwgNDcsIDI0NywgNTgsIDQ2LCA0NywgMjQ2LCAKKyAgICAxNTUsIDQ2LCA0NywgMjQ3LCAyNiwgNDYsIDQ3LCAyNDYsIDIxOCwgNDYsIDQ3LCAyNDcsIDg5LCA0NiwgNDcsIDI0NiwgCisgICAgMTM5LCA0NiwgNDcsIDI0NywgMTAsIDQ2LCA0NywgMjQ2LCAyMDIsIDQ2LCA0NywgMjQ3LCA3MywgNDYsIDQ3LCAyNDYsIAorICAgIDE3MCwgNDYsIDQ3LCAyNDcsIDQxLCA0NiwgNDcsIDI0NiwgMjMzLCA0NiwgNDcsIDI0NywgMTA0LCA0NiwgNDcsIDI0NiwgCisgICAgMTMxLCA0NiwgNDcsIDI0NywgMiwgNDYsIDQ3LCAyNDYsIDE5NCwgNDYsIDQ3LCAyNDcsIDY1LCA0NiwgNDcsIDI0NiwgMTYyLCAKKyAgICA0NiwgNDcsIDI0NywgMzMsIDQ2LCA0NywgMjQ2LCAyMjUsIDQ2LCA0NywgMjQ3LCA5NiwgNDYsIDQ3LCAyNDYsIDE0NiwgNDYsIAorICAgIDQ3LCAyNDcsIDE3LCA0NiwgNDcsIDI0NiwgMjA5LCA0NiwgNDcsIDI0NywgODAsIDQ2LCA0NywgMjQ2LCAxNzcsIDQ2LCA0NywgCisgICAgMjQ3LCA0OCwgNDYsIDQ3LCAyNDYsIDI0MCwgNDYsIDQ3LCAyNDcsIDExMSwgOTcsIDIxNSwgNTgsIDgwLCAyLCA2NywgOTEsIAogICAgIDk3LCAyMTUsIDU4LCA4MCwgMiwgNTIsIDY3LCA5MSwgMTQwLCA1MiwgODAsIDIsIDY3LCA5MSwgOTcsIDUyLCA4MCwgMiwgCi0gICAgNjcsIDkxLCA0MywgNDQsIDUyLCA4MCwgMiwgNjcsIDkxLCA5NywgMjE1LCA1OCwgODAsIDI0MywgMjQzLCAxMzAsIDE0MCwgCi0gICAgNTIsIDgwLCAyNDMsIDI0MywgMTMwLCA5NywgNTIsIDgwLCAyNDMsIDI0MywgMTMwLCAyNDYsIDEwNCwgODAsIDIsIDIwMywgCi0gICAgOTEsIDIxNCwgMTUzLCA4MCwgMiwgMjAzLCA5MSwgMjE0LCAxNTMsIDIxNSwgMjExLCA3NCwgMjQ2LCAxMDQsIDIxNSwgMjExLCAKLSAgICA3NCwgMTQwLCA1MiwgMjQ4LCAxNTcsIDc0LCA5NywgNTIsIDI0OCwgMTU3LCA3NCwgMTQwLCAyMTUsIDIxMSwgMjQ4LCAxNTcsIAotICAgIDc0LCA5NywgMjE1LCAyMTEsIDI0OCwgMTU3LCA3NCwgOTcsIDIxNSwgNTgsIDIxNSwgMjExLCAyNDgsIDE1NywgNzQsIDk3LCAKLSAgICA4MCwgMiwgMjQ2LCAxMTgsIDIxOCwgMTM5LCAyMTQsIDE1MywgODAsIDIxNiwgNDIsIDEzMCwgMjQ2LCAxMDQsIDgwLCAyMTYsIAotICAgIDQyLCAxMzAsIDk3LCA4MCwgMiwgMjE3LCA3OCwgMiwgNjcsIDkxLCA5NywgODAsIDIsIDIxNywgNzgsIDIsIDUyLCA2NywgCi0gICAgOTEsIDk3LCAyMTUsIDU4LCA4MCwgMiwgMjE3LCA3NywgOTcsIDIxNSwgNTgsIDgwLCAyLCAyMTcsIDc4LCAyLCA2NywgOTEsIAotICAgIDk3LCAyMTUsIDU4LCA4MCwgMiwgMjE3LCA3OCwgMiwgNTIsIDY3LCA5MSwgMTQwLCAyNTMsIDI1MSwgOTcsIDI1MywgMjUxLCAKLSAgICAxNDAsIDUyLCAyNTMsIDI1MSwgOTcsIDUyLCAyNTMsIDI1MSwgMTQwLCA4MCwgMjE2LCA0MiwgODUsIDI0NywgMjQ4LCA5NywgCi0gICAgODAsIDIxNiwgNDIsIDg1LCAyNDcsIDI0OCwgMTQwLCA4MCwgMjQzLCAyNDMsIDI1MiwgMTQxLCAyMTYsIDQyLCA4NSwgMjQ3LCAKLSAgICAyNDgsIDk3LCA4MCwgMjQzLCAyNDMsIDI1MiwgMTQxLCAyMTYsIDQyLCA4NSwgMjQ3LCAyNDgsIDIyOCwgNTYsIDIxMiwgOSwgCi0gICAgMjIsIDIxOSwgMjgsIDI0NSwgMjIwLCA3NCwgMjI4LCA1NiwgMjQ1LCAyMjAsIDIyLCAyMTksIDI4LCAyMTIsIDksIDc0LCAKLSAgICAyMjgsIDU2LCAyMTIsIDksIDgwLCAyLCAxMDMsIDIyOCwgNTYsIDI0NSwgMjIwLCA4MCwgMiwgMTAzLCAyMTksIDI4LCAyNDUsIAotICAgIDIyMCwgODAsIDIsIDEwMywgMjE5LCAyOCwgMjEyLCA5LCA4MCwgMiwgMTAzLCAyMjgsIDU2LCAyMTIsIDksIDgwLCAyMiwgCi0gICAgMjI4LCA1NiwgMjQ1LCAyMjAsIDc0LCAyMjgsIDU2LCAyNDUsIDIyMCwgODAsIDIyLCAyMTksIDI4LCAyNDUsIDIyMCwgNzQsIAotICAgIDIxOSwgMjgsIDI0NSwgMjIwLCA4MCwgMjIsIDIxOSwgMjgsIDIxMiwgOSwgNzQsIDIxOSwgMjgsIDIxMiwgOSwgODAsIDIyLCAKLSAgICAyMjgsIDU2LCAyMTIsIDksIDc0LCAyMjIsIDIyOCwgMjQ3LCAyNTUsIDI0OSwgMTI1LCAyNDQsIDE3NSwgMjQ3LCAyNTQsIAotICAgIDI0NCwgMTc1LCAyNDcsIDI1NSwgMjQ5LCAxMjUsIDIyMiwgMjI4LCAyNDcsIDI1NCwgMjE5LCAyOCwgMjQ1LCAyMjAsIDgwLCAKLSAgICAyNDksIDEyNSwgMjI4LCA1NiwgMjQ1LCAyMjAsIDc0LCAyMjgsIDU2LCAyNDUsIDIyMCwgODAsIDI0OSwgMTI1LCAyMTksIAotICAgIDI4LCAyNDUsIDIyMCwgNzQsIDI0NCwgMTc1LCAyNDcsIDI1NSwgMjQ5LCAxMjUsIDIyOCwgNTYsIDI0NSwgMjIwLCA3NCwgCi0gICAgMjIyLCAyMjgsIDI0NywgMjU1LCAyNDksIDEyNSwgMjE5LCAyOCwgMjQ1LCAyMjAsIDc0LCAyMjgsIDU2LCAyNDUsIDIyMCwgCi0gICAgODAsIDI0OSwgMTI1LCAyMjgsIDU2LCAyMTIsIDksIDc0LCAyMjgsIDU2LCAyMTIsIDksIDgwLCAyNDksIDEyNSwgMjI4LCAKLSAgICA1NiwgMjQ1LCAyMjAsIDc0LCAyMTIsIDM2LCA4MCwgMjI1LCA3LCAyNDcsIDE5NSwgMjIyLCAyNTEsIDgwLCAyMjUsIDcsIAotICAgIDk3LCAyMTYsIDE4OCwgMjQ5LCA5MCwgMjE0LCAxNTIsIDgwLCAyMjUsIDcsIDk3LCAyMTYsIDE4OCwgMjQ5LCA5MCwgMjQ2LCAKLSAgICAxMDMsIDgwLCAyMjUsIDcsIDI0NiwgMTA0LCAyMTYsIDE4OCwgMjQ5LCA5MCwgMjMzLCAzNywgODAsIDIyNSwgNywgMjQ2LCAKLSAgICAxMDQsIDIxNiwgMTg4LCAyNDksIDkwLCAyMjIsIDI0MSwgMjIyLCAyNDQsIDI1NCwgMjYsIDI1MCwgMiwgNzQsIDIzMywgNDAsIAotICAgIDI1NCwgMjYsIDI1NCwgODgsIDc0LCAyMTYsIDE0LCAyNTQsIDI2LCAyNTQsIDg4LCA3NCwgMjUxLCAxNzUsIDI1NCwgMjYsIAotICAgIDI1NCwgODgsIDc0LCAyMTYsIDE0LCAyNTQsIDI2LCAyNTAsIDIsIDgwLCAyLCAyMzAsIDE4MSwgMjE2LCAxNCwgMjU0LCAyNiwgCi0gICAgMjU0LCA4OCwgODAsIDIsIDIyNSwgMjIsIDIzMiwgMTA4LCA0NCwgMjIwLCAxNTIsIDI1MCwgMiwgNzQsIDIzMiwgMTA4LCAKLSAgICA0MywgMjIwLCAxNTIsIDI1NCwgODgsIDc0LCAyNTQsIDg4LCAyNTAsIDAsIDI1MCwgMzYsIDc0LCAyNTAsIDIsIDI1MCwgMCwgCi0gICAgMjUwLCAzNiwgNzQsIDk3LCA4MCwgNzcsIDIxOSwgMjUxLCAxNDAsIDc0LCAxNDAsIDgwLCA3NywgMjE5LCAyNTEsIDk3LCAKLSAgICA3NCwgMjE5LCAyNTEsIDk3LCA4MCwgNzcsIDE0MCwgNzQsIDk3LCA4MCwgMiwgOTYsIDUxLCAxNDAsIDgwLCAyLCA5NiwgNTEsIAotICAgIDk3LCA4MCwgMjE2LCAxMzksIDIxMSwgMTc4LCA0MywgNDQsIDgwLCAyMTYsIDEzOSwgNCwgMjUwLCAzNSwgMjE0LCAxNTMsIAotICAgIDIxNSwgNTgsIDgwLCAyNDMsIDI0MywgNCwgMjUwLCAzNSwgNDMsIDI1MiwgMTM5LCAxMjAsIDQ0LCAyNTIsIDEzOSwgMTI0LCAKLSAgICAyNDEsIDI1NCwgNDMsIDI1MiwgMTM5LCAxMjQsIDQ0LCAyNTIsIDEzOSwgMTIwLCAyNDEsIDI1NCwgMTIwLCAyNTIsIDEzOSwgCi0gICAgNDQsIDEyNCwgMjUyLCAxMzksIDQzLCAyNDEsIDI1NCwgMTIwLCAyNTIsIDEzOSwgNDMsIDEyNCwgMjUyLCAxMzksIDQ0LCAKLSAgICAyNDEsIDI1NCwgNDMsIDI1MiwgMTM5LCAxMjAsIDQ0LCAyNTIsIDEzOSwgMTIwLCAyNDEsIDI1NCwgMTIwLCAyNTIsIDEzOSwgCi0gICAgNDQsIDEyNCwgMjUyLCAxMzksIDQ0LCAyNDEsIDI1NCwgNDMsIDI1MiwgMTM5LCAxMjQsIDQ0LCAyNTIsIDEzOSwgMTI0LCAKLSAgICAyNDEsIDI1NCwgMTIwLCAyNTIsIDEzOSwgNDMsIDEyNCwgMjUyLCAxMzksIDQzLCAyNDEsIDI1NCwgMTQwLCAyNDEsIDI1NSwgCi0gICAgMiwgMjUyLCAxMzksIDEyMCwgMjE2LCA0MiwgMTMwLCA5NywgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAxMjAsIDIxNiwgNDIsIAotICAgIDEzMCwgMjE0LCAxNTMsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgNDQsIDIxNiwgNDIsIDEzMCwgMjQ2LCAxMDQsIDI0MSwgCi0gICAgMjU1LCAyLCAyNTIsIDEzOSwgNDQsIDIxNiwgNDIsIDEzMCwgMTQwLCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDEyNCwgMjE2LCAKLSAgICA0MiwgMTMwLCA5NywgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAxMjQsIDIxNiwgNDIsIDEzMCwgMjE0LCAxNTMsIDI0MSwgCi0gICAgMjU1LCAyLCAyNTIsIDEzOSwgNDMsIDIxNiwgNDIsIDEzMCwgMjQ2LCAxMDQsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgNDMsIAotICAgIDIxNiwgNDIsIDEzMCwgMTQwLCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDEyMCwgMjQzLCAyNDMsIDEzMCwgOTcsIDI0MSwgCi0gICAgMjU1LCAyLCAyNTIsIDEzOSwgMTIwLCAyNDMsIDI0MywgMTMwLCAyMTQsIDE1MywgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAKLSAgICA0NCwgMjQzLCAyNDMsIDEzMCwgMjQ2LCAxMDQsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgNDQsIDI0MywgMjQzLCAxMzAsIAotICAgIDE0MCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAxMjQsIDI0MywgMjQzLCAxMzAsIDk3LCAyNDEsIDI1NSwgMiwgMjUyLCAKLSAgICAxMzksIDEyNCwgMjQzLCAyNDMsIDEzMCwgMjE0LCAxNTMsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgNDMsIDI0MywgMjQzLCAKLSAgICAxMzAsIDI0NiwgMTA0LCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDQzLCAyNDMsIDI0MywgMTMwLCAxNDAsIDI0MSwgMjU1LCAKLSAgICAyLCAyNTIsIDEzOSwgMTIwLCA3NywgMTQwLCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDI0NiwgMTA2LCAyMTQsIDE1MywgCi0gICAgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCA0MywgMjUyLCAzMCwgMjE0LCAxNTMsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMjIyLCAKLSAgICAyNTEsIDk3LCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDEyMCwgNzcsIDk3LCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDI0NiwgCi0gICAgMTA2LCAyNDYsIDEwNCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCA0MywgMjUyLCAzMCwgMjQ2LCAxMDQsIDI0MSwgMjU1LCAyLCAKLSAgICAyNTIsIDEzOSwgMjIyLCAyNTEsIDE0MCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAxMjAsIDc3LCA5NywgMjQxLCAyNTUsIDIsIAotICAgIDI1MiwgMTM5LCAyMTQsIDE2MywgMTQwLCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDEyNCwgNzcsIDk3LCAyNDEsIDI1NSwgMiwgCi0gICAgMjUyLCAxMzksIDI0NiwgMTA2LCA5NywgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAxMjAsIDc3LCAxNDAsIDI0MSwgMjU1LCAyLCAKLSAgICAyNTIsIDEzOSwgMjE0LCAxNjMsIDk3LCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDEyNCwgNzcsIDE0MCwgMjQxLCAyNTUsIDIsIAotICAgIDI1MiwgMTM5LCAyNDYsIDEwNiwgMTQwLCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDEyMCwgNzcsIDE5OSwgMjQ4LCAxNTYsIAotICAgIDE0MCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAxMjQsIDI1MiwgNDMsIDE5OSwgMjQ4LCAxNTYsIDk3LCAyNDEsIDI1NSwgMiwgCi0gICAgMjUyLCAxMzksIDEyMCwgNzcsIDE5OSwgMjQ4LCAxNTYsIDk3LCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDEyNCwgMjUyLCAKLSAgICA0MywgMTk5LCAyNDgsIDE1NiwgMjE0LCAxNTMsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgNDMsIDI1MiwgMzAsIDI0NiwgCi0gICAgMTA0LCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDIyMiwgMjUxLCAyNDYsIDEwNCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAKLSAgICA0MywgMjUyLCAzMCwgMjE0LCAxNTMsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMjIyLCAyNTEsIDQ0LCA1MiwgODAsIDIsIAotICAgIDIyMiwgMTgzLCAyNDEsIDIzNSwgMjQ1LCA5OCwgNSwgNzcsIDk3LCA3NCwgMjE2LCA4OSwgMjI2LCAxNjgsIDc3LCA5NywgCi0gICAgNzQsIDE0MCwgODAsIDc3LCAyMTYsIDg5LCAyMjYsIDE2NywgOTcsIDgwLCA3NywgMjE2LCA4OSwgMjI2LCAxNjcsIDk3LCAKLSAgICA4MCwgNzcsIDI1NCwgMTQ4LCAxMjgsIDExMSwgMjMzLCAxNSwgNzcsIDE0MCwgNzQsIDE0MCwgODAsIDIxNiwgMTM5LCAyMzMsIAotICAgIDE0LCAyNDIsIDEzMCwgNzcsIDk3LCA3NCwgMjE4LCA2NCwgNzcsIDk3LCA3NCwgMTQwLCA4MCwgMjE2LCAxMzksIDIxOCwgCi0gICAgNjMsIDIxOCwgMjIsIDc3LCAxNDAsIDc0LCA0MywgMjQ0LCA5MSwgMjE3LCA3NywgNDQsIDI0NCwgOTEsIDIxNywgNzcsIAotICAgIDEyMCwgMjQ0LCA5MSwgMjE3LCA3NywgMTI0LCAyNDQsIDkxLCAyMTcsIDc3LCAyMTUsIDIxMSwgNjcsIDI1MiwgMTQxLCAKLSAgICAyNDgsIDYwLCAyMTAsIDE2MCwgMTg3LCAyMTgsIDI0MiwgMjEwLCAxNjAsIDE4NywgMjE1LCA0OSwgMjQ5LCAyMjYsIDQzLCAKLSAgICA3MSwgMjQ5LCA5OSwgMTI3LCA0NCwgNzEsIDI0OSwgOTksIDEyNywgNDMsIDcxLCAyMjYsIDMsIDQ0LCA3MSwgMjI2LCAzLCAKLSAgICAyMTAsIDE2MCwgMTg3LCA0MywgMjM2LCAxNSwgMTI3LCAyMTAsIDE2MCwgMTg3LCA0NCwgMjM2LCAxNSwgMTI3LCAyMTAsIAotICAgIDE2MCwgMTg3LCA0MywgMjUxLCAyNDIsIDEyNywgMjEwLCAxNjAsIDE4NywgNDQsIDI1MSwgMjQyLCAxMjcsIDQzLCA0MiwgCi0gICAgMjUxLCAxNTgsIDIsIDIxNCwgMTgzLCA0NCwgNDIsIDI1MSwgMTU4LCAyLCAyMTQsIDE4MywgNDMsIDQyLCAyNTEsIDE1OCwgCi0gICAgMiwgMjE2LCAxMTUsIDIzNiwgMCwgMjE2LCAxNCwgMjQ5LCAxNjAsIDQ0LCA0MiwgMjUxLCAxNTgsIDIsIDIxNiwgMTE1LCAKLSAgICAyMzYsIDAsIDI1MSwgMTc1LCAyNDksIDE2MCwgNDMsIDQyLCAyNTEsIDE1OCwgMiwgMjE2LCAxMTUsIDIzNiwgMCwgMjUxLCAKLSAgICAxNzUsIDI0OSwgMTYwLCA0NCwgNDIsIDI1MSwgMTU4LCAyLCAyMTYsIDExNSwgMjM2LCAwLCAyMTYsIDE0LCAyNDksIDE2MCwgCi0gICAgNDMsIDI1NCwgMTEwLCAyNTEsIDE1OCwgMiwgMjQ3LCAxMjAsIDQ0LCAyNTQsIDExMCwgMjUxLCAxNTgsIDIsIDI0NywgMTIwLCAKLSAgICA0MywgMjU0LCAyNiwgMjMzLCAxNSwgMTI3LCA0NCwgMjU0LCAyNiwgMjQyLCAxMzAsIDEyNywgNTIsIDQzLCAyNTQsIDI2LCAKLSAgICAyNDIsIDEzMCwgMTI3LCA1MiwgNDQsIDI1NCwgMjYsIDIzMywgMTUsIDEyNywgNDMsIDg1LCAyMTYsIDYsIDIyMCwgNTMsIAotICAgIDEyNywgNDQsIDg1LCAyMTYsIDYsIDIyMCwgNTMsIDEyNywgMjQ2LCAxMTgsIDI0NCwgMTM1LCA2NywgMjEwLCAzNSwgMjMyLCAKLSAgICAyMTMsIDIzMSwgODgsIDI1NCwgMTEwLCAyMjYsIDE3MCwgMjMzLCA0NiwgNDQsIDI1NCwgMTEwLCAyMTQsIDEyLCAyLCAyMTgsIAotICAgIDIzNCwgMjMxLCA4OCwgNDQsIDI1NCwgMTEwLCAyLCAyNDcsIDEyMCwgMjU0LCAxMTAsIDIsIDIyMiwgOTIsIDIzNSwgMjE1LCAKLSAgICAyNTUsIDMsIDI1NCwgMTA5LCAyMTgsIDI1NSwgMjU0LCAxMTAsIDIyNiwgMTcwLCAyMzMsIDQ2LCAyMTgsIDI1NSwgMjU0LCAKLSAgICAxMTAsIDIyNiwgMTcwLCAyMTQsIDE2MywgMjE1LCA5NCwgMjU0LCAxMDksIDIyMywgNDksIDI1NCwgMTA5LCAyNTQsIDExMCwgCi0gICAgMiwgMjE0LCAxODMsIDIyMywgNDksIDI1NCwgMTEwLCAyLCAyMTQsIDE4MywgMjI2LCAyNDgsIDI1NCwgMTEwLCAyMjYsIAotICAgIDE3MCwgMjE0LCAxNjMsIDIyNiwgMjQ4LCAyNTQsIDExMCwgMjI2LCAxNzAsIDI0NiwgMTA2LCAyMzEsIDg4LCAyNTQsIDExMCwgCi0gICAgMiwgMjA0LCAyNTQsIDUsIDI0NSwgMTQwLCAyMzYsIDAsIDgwLCAyMjUsIDcsIDEyMCwgMjIsIDIyMiwgMjUxLCAyMzEsIDg4LCAKLSAgICAyNTQsIDExMCwgMiwgMjA0LCAyNTQsIDUsIDI0NSwgMTQwLCAyMzYsIDAsIDgwLCAyMjUsIDcsIDEyMCwgMjIsIDIzMywgNDYsIAotICAgIDIzMSwgODgsIDI1NCwgMTEwLCAyLCAyMDQsIDI1NCwgNSwgMjQ1LCAxNDAsIDIzNiwgMCwgODAsIDIyNSwgNywgMTI0LCAyMiwgCi0gICAgMjIyLCAyNTEsIDIzMSwgODgsIDI1NCwgMTEwLCAyLCAyMDQsIDI1NCwgNSwgMjQ1LCAxNDAsIDIzNiwgMCwgODAsIDIyNSwgCi0gICAgNywgMTI0LCAyMiwgMjMzLCA0NiwgMjMxLCA4OCwgMjU0LCAxMTAsIDIsIDIwNCwgMjU0LCA1LCAyNDUsIDE0MCwgMjM2LCAwLCAKLSAgICA4MCwgMjI1LCA3LCA0NCwgMjIsIDIxNCwgMTYzLCAyMzEsIDg4LCAyNTQsIDExMCwgMiwgMjA0LCAyNTQsIDUsIDI0NSwgCi0gICAgMTQwLCAyMzYsIDAsIDgwLCAyMjUsIDcsIDQzLCAyMiwgMjE0LCAxNjMsIDIzMSwgODgsIDI1NCwgMTEwLCAyLCAyMDQsIAotICAgIDI1NCwgNSwgMjQ1LCAxNDAsIDIzNiwgMCwgODAsIDIyNSwgNywgNDQsIDIyLCAyNDYsIDEwNiwgMjMxLCA4OCwgMjU0LCAKLSAgICAxMTAsIDIsIDIwNCwgMjU0LCA1LCAyNDUsIDE0MCwgMjM2LCAwLCA4MCwgMjI1LCA3LCA0MywgMjIsIDI0NiwgMTA2LCAyMjMsIAotICAgIDQ5LCAyNDUsIDE1MiwgMjIwLCAxMjcsIDI0NSwgMTUyLCAyMjAsIDEyOCwgMiwgMjI2LCAxMjMsIDI0NSwgMTUyLCAyMjAsIAotICAgIDEyOCwgMiwgNCwgMjUwLCAzNiwgNDgsIDI0NSwgMTUyLCAyMjAsIDEyOCwgMiwgNDQsIDgwLCA0OCwgMjQ1LCAxNTIsIDIyMCwgCi0gICAgMTI4LCAyLCA0MywgODAsIDQ4LCAyNTAsIDM2LCAyLCAyMDMsIDEzMCwgMzcsIDY3LCAxMzAsIDM3LCAyMjYsIDcsIDM3LCAKLSAgICAyMjMsIDUwLCAyMTksIDQ2LCAzNywgMjI1LCAxNzEsIDI1MCwgMzYsIDI0NywgMTczLCAyNTEsIDc4LCAyMDMsIDI1MiwgCi0gICAgMTQxLCAyMiwgMjE2LCAxNCwgMTYzLCAyNDcsIDE3MywgMjUxLCA3OCwgNjcsIDEzMCwgMjUwLCAzNiwgMiwgMjE4LCAyNCwgCi0gICAgMjExLCAxNzgsIDM3LCAyNTQsIDg3LCAyNDcsIDE2OSwgNTAsIDEyMCwgODAsIDIxNiwgMTM5LCAyNTAsIDM1LCAzNywgNzEsIAotICAgIDI1MSwgMTEzLCAzNywgMjUxLCAxMTMsIDM3LCAyMzMsIDE0LCAzNywgMjQyLCAxMjksIDI1MCwgMzYsIDIsIDQsIDI1MCwgCi0gICAgMzYsIDIxNiwgNDIsIDIxNiwgMTk2LCAyMjIsIDI1MSwgMjUwLCAzNiwgMiwgMTEzLCAyMDMsIDIxOCwgOTEsIDIxNiwgNDIsIAotICAgIDIxNiwgMTk2LCAyMjIsIDI1MSwgOTIsIDIyMiwgMjI4LCAyNDcsIDI1NSwgMjE5LCA5NSwgOTIsIDI0NCwgMTc1LCAyNDcsIAotICAgIDI1NSwgMjE5LCA5NSwgOTIsIDI1MywgMjE2LCA5MiwgNCwgMjUwLCAzNSwgOTIsIDIxOCwgMjM0LCAxMTMsIDIzNSwgNjUsIAotICAgIDIxOCwgMjMyLCAyMTUsIDIyNiwgMiwgNTksIDQ4LCAyMTUsIDIyNiwgMiwgMjE0LCAxODMsIDIyMiwgOTIsIDIzNiwgMCwgCi0gICAgMjE1LCAyMjUsIDIxNSwgMjI2LCAyLCAyMjAsIDEzNCwgMjUzLCAyMDcsIDI1MSwgMTc0LCA0NCwgMjE1LCAyMjYsIDc3LCAKLSAgICA0MywgMjE1LCAyMjUsIDQzLCAyMTUsIDIyNiwgMjUyLCAzMCwgNjcsIDEzMCwgNjcsIDI1MiwgMTQxLCAyNTIsIDMwLCA0NCwgCi0gICAgMjE1LCAyMjUsIDI1MSwgMTY1LCAyLCA0MywgMTYzLCAyNTEsIDIyMSwgMjUxLCAxNjUsIDIsIDQ0LCAxNjMsIDI1MSwgMjIxLCAKLSAgICA4NSwgMjUxLCAxNjQsIDMwLCAyLCA0MywgMTYzLCAyNTEsIDIyMSwgMzAsIDIsIDQ0LCAxNjMsIDI1MSwgMjIxLCA3MSwgCi0gICAgMjQwLCAyMzYsIDg1LCAyNDAsIDIzNiwgNDMsIDIxMSwgMjQ0LCAyNDQsIDEzNSwgNDQsIDIxMSwgMjQ0LCAyNDQsIDEzNSwgCi0gICAgNDMsIDUyLCAyMTEsIDI0NCwgMjQ0LCAxMzUsIDQ0LCA1MiwgMjExLCAyNDQsIDI0NCwgMTM1LCAyMzUsIDI0OCwgMjM1LCAKLSAgICAyMzQsIDIxNiwgMTEyLCAxMTcsIDIzNSwgMjM0LCAyMzUsIDIzNSwgMjI5LCAxMDIsIDIsIDY3LCAxMzAsIDI0NiwgMTEyLCAKLSAgICAyMzAsIDg3LCA0MiwgMiwgMjQ5LCAxODEsIDIyNiwgMTI3LCAyMzUsIDI0NiwgMjUzLCAyMzcsIDIxOSwgMjE5LCAyMjQsIAotICAgIDE4MCwgMjQ1LCA5OCwgNSwgMjIsIDIxOSwgOTcsIDIyNiwgNywgMjQ1LCA5OCwgNSwgMjIsIDIxOSwgOTcsIDIyNiwgOCwgMiwgCi0gICAgMjE2LCA4OSwgNDgsIDI0MCwgMTA0LCAyMTYsIDQyLCAyMiwgMjE5LCA5NywgMjI2LCA3LCAyNDIsIDE4MywgMjE4LCAxNTUsIAotICAgIDIxNiwgMTg1LCAyNDYsIDEwNSwgMjE1LCAyMjYsIDIsIDQzLCAxNjMsIDI1MSwgMjIxLCAyNDYsIDEwNSwgMjE1LCAyMjYsIAotICAgIDIsIDQ0LCAxNjMsIDI1MSwgMjIxLCA4NSwgMjQ3LCAyNDksIDIsIDEyNCwgNzQsIDg1LCAyMzIsIDEwNCwgNzEsIDI1MCwgCi0gICAgMzYsIDIsIDEyNCwgNzQsIDg1LCAyNTAsIDM2LCAyLCAxMjQsIDc0LCAyNDUsIDg1LCA3MSwgMjE4LCAyMzQsIDI0NSwgODUsIAotICAgIDg1LCAyMTgsIDIzNCwgMjQ1LCA4NSwgNzEsIDI0NywgMjQ4LCAyNDUsIDg1LCA4NSwgMjQ3LCAyNDgsIDI0NSwgODUsIDcxLCAKLSAgICAyNTAsIDM1LCAyNDUsIDg1LCA4NSwgMjUwLCAzNSwgMjIyLCAxMzIsIDIyMywgNTAsIDIxOSwgNDcsIDIyNiwgMTY3LCAyMTksIAotICAgIDQ3LCAyLCAyMjYsIDEyMywgMjIzLCA1MCwgMjE5LCA0NywgMiwgMjAzLCA5MSwgMjUxLCAyNDksIDIxOSwgNDYsIDI1MSwgCi0gICAgMjQ5LCAyMjMsIDUwLCAyMTksIDQ2LCA1MiwgMjI1LCAyMiwgMjE1LCAyMTEsIDIyNSwgMjIsIDIzMywgNDIsIDI0OSwgOTEsIAotICAgIDI1NCwgMTEwLCAxMjcsIDIyMiwgMjQ3LCAyNDksIDkxLCAyNTQsIDExMCwgMTI3LCAyMTYsIDc4LCAyMzAsIDE3OSwgMjMwLCAKLSAgICAyNCwgMzcsIDU5LCAyMjYsIDE2NywgMjMwLCAyNCwgMzcsIDk2LCAyMjYsIDE2NywgMjMwLCAyNCwgMzcsIDMwLCAyMjYsIAotICAgIDE2NywgMjMwLCAyNCwgMjE0LCAxNzYsIDIyNiwgMTY4LCAyLCAyNDcsIDEyMCwgMjMwLCAyNCwgMjE0LCAxNzYsIDIyNiwgCi0gICAgMTY4LCAyLCAyMjUsIDIyLCAyMzAsIDI0LCA0MiwgMjM1LCAxOTksIDIyNiwgMTY3LCAyMzAsIDI0LCA0MiwgMjE0LCAxNzYsIAotICAgIDIyNiwgMTY3LCAxMTMsIDIzMiwgMTQ2LCAyMiwgMjI2LCAxNjcsIDExMywgMjMyLCAxNDYsIDE3NywgMjI2LCAxNjcsIDIzMCwgCi0gICAgMjQsIDMwLCAyMjYsIDE2NywgMjMwLCAxNTQsIDExMywgMjE4LCA0MywgMjE4LCA0MSwgMiwgMjM1LCAyMTEsIDIyNCwgMjQsIAotICAgIDIzNSwgMjEyLCAyMjYsIDE2NywgMjQ0LCA5OSwgMjI1LCAyNTUsIDIzNSwgMjExLCAyMzUsIDIxMiwgMiwgNTIsIDkxLCAKLSAgICAyMzUsIDIxMiwgMjUzLCAxNzMsIDIsIDIxOSwgOTUsIDI1MCwgMzIsIDI0MywgMjI2LCAyNTQsIDg4LCAyMzUsIDIwOSwgCi0gICAgMjMyLCAyMTQsIDIzNSwgMjEwLCAyLCAyMjMsIDExNSwgMjI1LCAyMzcsIDI1NCwgMiwgMjI1LCAxLCAyMzIsIDIxNCwgMjM1LCAKLSAgICAyMTAsIDIsIDIyMCwgMTUyLCAyMjUsIDIzNywgMjU0LCAyLCAyMjUsIDEsIDIzMiwgMjE0LCAyMzUsIDIxMCwgMjI4LCA1MiwgCi0gICAgMjM1LCAyNTAsIDIxNiwgMTk2LCAyMjUsIDEsIDIzNSwgMjEyLCAyNTQsIDIsIDExNSwgMjI1LCAxMSwgMjI2LCAxNjcsIAotICAgIDIyNCwgMTgsIDIzNSwgMjEyLCAyMjYsIDE2NywgMjM1LCAyMTIsIDIsIDE0MCwgODAsIDIsIDEwMywgMjM1LCAyMTIsIDIsIAotICAgIDMwLCA1MCwgMjM1LCAyMTIsIDIsIDIzNSwgMTk4LCAyMzUsIDIxMiwgMiwgMjE0LCAxNzUsIDIzNSwgMjEyLCAyLCAyMjYsIAotICAgIDEyMywgMjM1LCAyMTIsIDIsIDIxNCwgMTgzLCAyMzUsIDY2LCAyMzMsIDg1LCA0MywgMjE1LCAyMjYsIDIyNiwgMTY3LCAKLSAgICAyMTAsIDE2MCwgMTg3LCAyMjEsIDIwMSwgMjQ5LCAyMDksIDIxMCwgMTYwLCAxODcsIDIyMSwgMjAxLCAyMjUsIDU2LCAyMTAsIAotICAgIDE2MCwgMTg3LCAyMjEsIDIwMSwgMjI0LCAxNzYsIDk2LCA1LCAyLCA0LCAyNTAsIDM2LCA0OCwgOTYsIDUsIDIsIDI1MCwgCi0gICAgMzEsIDI1NSwgMTUsIDQ4LCA5NiwgNSwgMiwgMjE2LCA4OSwgNDgsIDk2LCA1LCAyLCA1OSwgNTEsIDk2LCA1LCAyLCAyMTYsIAotICAgIDg5LCA1MSwgOTYsIDUsIDIsIDIxOCwgNjUsIDEwNSwgOTYsIDUsIDIsIDg1LCAyMTUsIDIyNSwgMjMwLCAxODIsIDUsIDIsIAotICAgIDI0OSwgMjIwLCA0OCwgMjMwLCAxODIsIDUsIDIsIDU5LCA1MSwgMjMwLCAxODIsIDUsIDIsIDI0NCwgMTc1LCAyNDcsIDExOCwgCi0gICAgMjMwLCAxODIsIDUsIDIsIDIyMiwgMjI4LCAyNDcsIDExOCwgOTYsIDUsIDIzNiwgMCwgNDMsIDE2MywgMjUwLCAzNSwgOTYsIAotICAgIDUsIDIzNiwgMCwgNDQsIDE2MywgMjUwLCAzNSwgMjEzLCAyNTQsIDE3NywgMjQ5LCAxMzEsIDIyNCwgMTgwLCAyMzAsIDg0LCAKLSAgICA1LCAyLCA1OSwgNDgsIDIzMCwgODQsIDUsIDIsIDIxNCwgMTgzLCAyMjAsIDE0OSwgMjI0LCAxODEsIDIsIDI1MSwgMTc1LCAKLSAgICAyNDksIDI1NSwgMjE5LCA3NywgMjI0LCAxODAsIDIzMCwgODQsIDUsIDIzNiwgMCwgNDMsIDE2MywgMjUwLCAzNSwgMjMwLCAKLSAgICA4NCwgNSwgMjM2LCAwLCA0NCwgMTYzLCAyNTAsIDM1LCAzNywgMjMwLCA4NCwgNSwgMiwgMjUwLCAzMSwgMjU1LCAxNCwgCi0gICAgMjMwLCA4NCwgNSwgMjM2LCAwLCA1MiwgMjUwLCAzNSwgMzcsIDI0NywgMTY5LCA1MCwgOTYsIDUsIDIzNiwgMCwgMjE1LCAKLSAgICAyMjUsIDIzMCwgMTgyLCA1LCAyMzYsIDAsIDIxNSwgMjI1LCAyMzAsIDg0LCA1LCAyMzYsIDAsIDIxNSwgMjI1LCAyMzUsIAotICAgIDIwNiwgMjI0LCAxODAsIDIyMiwgMjQyLCAyMzUsIDIwNiwgMjI0LCAxODAsIDIxMCwgMTYwLCAxODcsIDIyMywgOTAsIDI0OSwgCi0gICAgMjA5LCAyNTQsIDEzNCwgMTc3LCAyNDksIDE2NSwgMjM1LCAxOTksIDIsIDI0NywgMTIwLCAyMTQsIDE3NiwgMiwgMjMwLCAKLSAgICAxODIsIDUwLCAyMTQsIDE3NiwgMiwgMjI2LCAxMjMsIDIzNSwgMTk5LCAyLCAyMjYsIDEyMywgMjM1LCAxOTksIDIsIDIzMiwgCi0gICAgMTQ2LCAyNTQsIDExOCwgMjE0LCAxNzYsIDIsIDIzMiwgMTQ2LCAyMjYsIDE1OCwgMjE0LCAxNzYsIDc3LCAyMzUsIDE5OCwgCi0gICAgMjM1LCAxOTksIDc3LCAyMTQsIDE3NSwgMjE0LCAxNzYsIDc3LCAyNTIsIDE0MSwgNzcsIDIzNSwgMTk4LCAyMzUsIDE5OSwgCi0gICAgNzcsIDI1MiwgMTQxLCA3NywgMjE0LCAxNzUsIDIxNCwgMTc2LCAyNTIsIDMwLCAyMiwgMjM1LCA2NSwgMiwgMjE0LCAxNzUsIAotICAgIDIzNSwgMTk5LCAyNTIsIDMwLCAyMiwgMjM1LCA2NSwgMiwgMjM1LCAxOTgsIDI1MCwgMCwgMjE0LCAxNzYsIDIsIDIyMCwgCi0gICAgMTMzLCAyNTAsIDAsIDIzNSwgMTk5LCAyLCAyMjAsIDEzMywgNTIsIDQyLCAyMzUsIDE5OCwgNTIsIDQyLCAyMTQsIDE3NSwgCi0gICAgMjUwLCAwLCAyMTQsIDE3NiwgMiwgMjIwLCAxMzQsIDIyLCAyMTksIDc3LCAyMjQsIDE4MCwgMjMyLCAxNDYsIDIyLCAyLCAKLSAgICA1OSwgNDgsIDIzMiwgMTQ2LCAxNzcsIDIsIDU5LCA0OCwgNTIsIDIzMiwgMTQ2LCAyNTQsIDExOCwgNTIsIDIzMiwgMTQ2LCAKLSAgICAyMjYsIDE1OCwgMTEzLCAyMzUsIDIwMCwgMjMyLCAxNDYsIDI1NCwgMTE4LCAxMTMsIDIzNSwgMjAwLCAyMzIsIDE0NiwgCi0gICAgMjI2LCAxNTgsIDIxOSwgODUsIDIzMywgODUsIDIyNiwgMTU4LCAyMTksIDg1LCAyMzMsIDg1LCAyNTQsIDExOCwgMjMyLCAKLSAgICAxNDYsIDE3NywgMjI2LCAxMjEsIDIzMiwgMTQ2LCAyNTQsIDExOCwgMjMyLCAxNDYsIDIyLCAyLCAyMzAsIDIyNCwgMjE4LCAKLSAgICAxMzksIDIzMiwgMTQ2LCAxNzcsIDIsIDIzMCwgMjI0LCAyMTgsIDEzOSwgMjMyLCAxNDYsIDIyLCAyLCAyMDMsIDI0OCwgCi0gICAgMTU2LCAyMzIsIDE0NiwgMTc3LCAyLCAyMDMsIDI0OCwgMTU2LCAyMzIsIDE0NiwgMjIsIDIsIDUyLCAyMjYsIDEyMywgMjMyLCAKLSAgICAxNDYsIDIyLCAyLCAyMTQsIDE4MywgMjMyLCAxNDYsIDIyLCAyLCA1MiwgMjE0LCAxODMsIDQsIDIxMywgMjUxLCAyLCAyMTQsIAotICAgIDE4MywgMjMyLCAxNDYsIDE3NywgMiwgNTIsIDIyNiwgMTIzLCAyMzIsIDE0NiwgMTc3LCAyLCA1MiwgMjE0LCAxODMsIDIxMCwgCi0gICAgMTYwLCAxODcsIDI0NywgMTI5LCAyNTQsIDc5LCAyMTAsIDE2MCwgMTg3LCAyMjMsIDE0OCwgMjU0LCA3OSwgMjQ1LCA5OCwgCi0gICAgNSwgMiwgNTksIDUxLCAyNDAsIDEwNCwgMiwgNTksIDQ4LCAyMTUsIDIxMSwgMjAzLCAyNTIsIDE0MSwgMiwgNTIsIDY3LCAKLSAgICA5MSwgMjE1LCAyMTEsIDIwMywgMjUyLCAxNDEsIDIsIDIxNSwgMjExLCA2NywgOTEsIDIxNiwgODksIDIyNiwgMTY4LCAyLCAKLSAgICA1OSwgNDgsIDIxNiwgODksIDIyNiwgMTY4LCAyLCAyMjIsIDIyOCwgMjQ3LCAxMTgsIDIxOSwgMTYyLCAyMzAsIDE4MiwgCi0gICAgMjE5LCAxNjEsIDI0OSwgMTk5LCAyLCA1OSwgNDgsIDI0NSwgOTgsIDIsIDI1MywgMjE2LCAyNTQsIDE0OCwgMTI4LCAyMTYsIAotICAgIDQyLCAyLCAyNTAsIDMxLCAyNTUsIDE0LCAyNTQsIDQ4LCAxMjgsIDE3NywgMTI4LCAxMTEsIDI0NSwgOTgsIDUsIDc3LCA5NiwgCi0gICAgNTAsIDk2LCA1LCA3NywgMjQ1LCA5OCwgNTAsIDI0NSwgOTgsIDUsIDc3LCAyMTYsIDg5LCAyMjYsIDE2NywgNTIsIDI0OSwgCi0gICAgMjI3LCAyNDUsIDk5LCAxMTMsIDI0OSwgMTk0LCAyNDUsIDk4LCAyMTksIDE3NiwgMTM0LCAyNDksIDE5NCwgMjQ1LCA5OCwgCi0gICAgMjE5LCAxNzYsIDI0NSwgOTgsIDUsIDIsIDExMywgMTcwLCA3NywgMjIsIDExMywgMTcwLCA1MSwgMjQ1LCA5NCwgMiwgMjQ0LCAKLSAgICAxMSwgMTcwLCA0OCwgMjMzLCAxNSwgMiwgMjUwLCAzNiwgMjM1LCAyMTUsIDI0MiwgMTMwLCAyLCAyNTAsIDM2LCAyMzUsIAotICAgIDIxNSwgMjMzLCAxNSwgMiwgMjI0LCAxMywgMTY0LCA0OCwgMjQyLCAxMzAsIDIsIDIyNCwgMTMsIDE2NCwgNDgsIDIzMywgCi0gICAgMTUsIDE3NywgMjE5LCA5NywgMTI4LCAxMTEsIDI0MiwgMTMwLCAxNzcsIDIxOSwgOTcsIDEyOCwgMTExLCAyMzMsIDE1LCAKLSAgICAxNzcsIDIxOSwgOTcsIDEyOCwgMjE2LCA0MiwgMiwgNTksIDIzNSwgMjE1LCAyNDIsIDEzMCwgMTc3LCAyMTksIDk3LCAxMjgsIAotICAgIDIxNiwgNDIsIDIsIDU5LCAyMzUsIDIxNSwgMjMzLCAxNSwgMTc3LCAyMTksIDk3LCAxMjgsIDIxNiwgNDIsIDIsIDU5LCA0OCwgCi0gICAgMjQyLCAxMzAsIDE3NywgMjE5LCA5NywgMTI4LCAyMTYsIDQyLCAyLCA1OSwgNDgsIDIzMywgMTUsIDE3NywgMjE5LCA5NywgCi0gICAgMTI4LCAyMTYsIDQyLCAyLCA1OSwgNzcsIDIyMiwgMjUxLCAyNDIsIDEzMCwgMTc3LCAyMTksIDk3LCAxMjgsIDIxNiwgNDIsIAotICAgIDIsIDU5LCA3NywgMjMzLCA0NiwgMjMzLCAxNSwgMTc3LCAyNTQsIDQ5LCAyNDIsIDEzMCwgMTc3LCAyNTQsIDQ5LCAyMzMsIAotICAgIDE1LCAyMiwgMjE5LCAxNTMsIDIyOCwgNTIsIDEyOCwgMTExLCAyNDIsIDEzMCwgMjIsIDIxOSwgMTUzLCAyMjgsIDUyLCAKLSAgICAxMjgsIDExMSwgMjMzLCAxNSwgMjIsIDIyOCwgNTIsIDI1NCwgNDksIDI0MiwgMTMwLCAyMiwgMjI4LCA1MiwgMjU0LCA0OSwgCi0gICAgMjMzLCAxNSwgNzcsIDI0NiwgMTExLCAxMjgsIDc3LCAyNDIsIDEyOSwgMjQyLCAxMzAsIDc3LCAyNDYsIDExMSwgMTI4LCAKLSAgICA3NywgMjMzLCAxNCwgMjMzLCAxNSwgNzcsIDIxOSwgMTYyLCAxNzcsIDI0NSwgOTksIDI0MiwgMTMwLCA3NywgMjE5LCAxNjIsIAotICAgIDE3NywgMjQ1LCA5OSwgMjMzLCAxNSwgNzcsIDIxOSwgMTYyLCA3NywgMjQyLCAxMjksIDI0MiwgMTMwLCA3NywgMjE5LCAKLSAgICAxNjIsIDc3LCAyMzMsIDE0LCAyMzMsIDE1LCA3NywgMjQyLCAxMzAsIDc3LCAyNDYsIDExMSwgMjQ1LCA5OSwgMjQyLCAxMzAsIAotICAgIDc3LCAyMzMsIDE1LCA3NywgMjQ2LCAxMTEsIDI0NSwgOTksIDIzMywgMTUsIDc3LCAyMTksIDk3LCAxMjgsIDc3LCAyNDIsIAotICAgIDEzMCwgNzcsIDIxOSwgOTcsIDI0NSwgOTksIDI0MiwgMTMwLCA3NywgMjE5LCA5NywgMTI4LCA3NywgMjMzLCAxNSwgNzcsIAotICAgIDIxOSwgOTcsIDI0NSwgOTksIDIxOSwgOTcsIDEyOCwgMjE2LCA0MiwgMTc3LCAyMzMsIDE0LCAyMTksIDk3LCAxMjgsIDIxNiwgCi0gICAgNDIsIDE3NywgMjQyLCAxMjksIDIxOSwgOTcsIDEyOCwgMjE2LCA0MiwgMTc3LCAyMzMsIDE1LCAyLCA1OSwgMjM1LCAyMTUsIAotICAgIDIxOSwgOTcsIDEyOCwgMjE2LCA0MiwgMTc3LCAyNDIsIDEzMCwgMiwgNTksIDIzNSwgMjE1LCAyNDYsIDExMSwgMTI4LCAKLSAgICAyMTYsIDQyLCAxNzcsIDIzMywgMTQsIDI0NiwgMTExLCAxMjgsIDIxNiwgNDIsIDE3NywgMjQyLCAxMjksIDI0NiwgMTExLCAKLSAgICAyMTksIDk3LCAxMjgsIDIxNiwgNDIsIDE3NywgMjMzLCAxNCwgMjQ2LCAxMTEsIDIxOSwgOTcsIDEyOCwgMjE2LCA0MiwgCi0gICAgMTc3LCAyNDIsIDEyOSwgMjE5LCAxNjIsIDE3NywgMjMzLCAxNCwgMjE5LCAxNjIsIDE3NywgMjQyLCAxMjksIDIxOSwgMTYyLCAKLSAgICA3NywgMjMzLCAxNSwgNzcsIDI0NSwgOTgsIDUwLCAyMTksIDE2MiwgNzcsIDI0MiwgMTMwLCA3NywgMjQ1LCA5OCwgNTAsIAotICAgIDUyLCAyMjksIDkxLCAyMzMsIDE0LCA1MiwgMjI5LCA5MSwgMjQyLCAxMjksIDUyLCAyMjksIDkxLCAyMzMsIDE1LCAyLCAKLSAgICAyMTQsIDE4MywgMjQyLCAxMzAsIDIyNiwgMTIxLCAyMzMsIDE0LCAyNDIsIDEzMCwgMjUyLCAzMCwgMjMzLCAxNCwgMjMzLCAKLSAgICAxNSwgMjUwLCAwLCAyNTEsIDc4LCAyNDksIDkyLCAyNDIsIDEzMCwgMjUwLCAwLCAyNTEsIDc4LCAyNDksIDkyLCAyMzMsIAotICAgIDE1LCAyNTAsIDAsIDI1MSwgNzgsIDI0OSwgOTMsIDc3LCAyMTksIDk3LCAyNDUsIDk5LCAyNDIsIDEzMCwgMjUwLCAwLCAKLSAgICAyNTEsIDc4LCAyNDksIDkzLCA3NywgMjE5LCA5NywgMjQ1LCA5OSwgMjE5LCA3OCwgMjE2LCAyMDAsIDIzMywgODMsIDIxNiwgCi0gICAgMjAwLCAyMTksIDc4LCAyMTYsIDIwMSwgMTc3LCAxMjgsIDExMSwgMjMzLCA4MywgMjE2LCAyMDEsIDE3NywgMTI4LCAxMTEsIAotICAgIDI0NSwgOTgsIDUsIDIsIDI1MSwgMTA4LCA0OCwgMjI0LCAyMDMsIDc3LCAyMTksIDE1MywgMjQ1LCA5OCwgNTAsIDIxOCwgCi0gICAgNTYsIDc3LCAyMTksIDE1MywgMjQ1LCA5OCwgNTAsIDIyNCwgMjAzLCA3NywgMjE5LCAxNTMsIDIyOCwgNTIsIDEyOCwgMTExLCAKLSAgICAyMTgsIDU2LCA3NywgMjE5LCAxNTMsIDIyOCwgNTIsIDEyOCwgMTExLCAyMjQsIDIwMywgNzcsIDI0NSwgOTgsIDUwLCAyMTgsIAotICAgIDU2LCA3NywgMjQ1LCA5OCwgNTAsIDIyNCwgMjAzLCA3NywgMjI4LCA1MiwgMTI4LCAxMTEsIDIxOCwgNTYsIDc3LCAyMjgsIAotICAgIDUyLCAxMjgsIDExMSwgMjI0LCAyMDMsIDc3LCAyNTQsIDE0OCwgMTI4LCAxMTEsIDIxOCwgNTYsIDc3LCAyNTQsIDE0OCwgCi0gICAgMTI4LCAxMTEsIDIyNCwgMjAzLCA3NywgMjI4LCA1MiwgMjU0LCAxNDgsIDEyOCwgMTExLCAyMTgsIDU2LCA3NywgMjI4LCAKLSAgICA1MiwgMjU0LCAxNDgsIDEyOCwgMTExLCA1MiwgMjI0LCAyMDIsIDUyLCAyMTgsIDU1LCAyMTgsIDY0LCAyLCAyNDcsIDEyMCwgCi0gICAgMjE4LCAyMiwgMiwgMjQ3LCAxMjAsIDIxOCwgNjQsIDIsIDk2LCA1LCA1MSwgMjE4LCAyMiwgMiwgOTYsIDUsIDUxLCAyMTgsIAotICAgIDY0LCAyLCAyMzAsIDg0LCA1LCA1MSwgMjE4LCAyMiwgMiwgMjMwLCA4NCwgNSwgNTEsIDIxOCwgNjQsIDY0LCAxNzcsIDEyOCwgCi0gICAgMjE2LCA0MiwgMiwgNTksIDQ4LCAyMTgsIDIyLCA2NCwgMTc3LCAxMjgsIDIxNiwgNDIsIDIsIDU5LCA0OCwgMjE4LCA2NCwgCi0gICAgNjQsIDc3LCAyNDUsIDk4LCA1MCwgMjE4LCAyMiwgNjQsIDc3LCAyNDUsIDk4LCA1MCwgMjE4LCA2NCwgNjQsIDc3LCAyMTYsIAotICAgIDg5LCAyMjYsIDE2NywgMjE4LCAyMiwgNjQsIDc3LCAyMTYsIDg5LCAyMjYsIDE2NywgMjE4LCA2NCwgNjQsIDc3LCAyNTQsIAotICAgIDE0OCwgMTI4LCAxMTEsIDIxOCwgMjIsIDY0LCA3NywgMjU0LCAxNDgsIDEyOCwgMTExLCAyMTgsIDY0LCA2NCwgNzcsIDIyOCwgCi0gICAgNTIsIDEyOCwgMTExLCAyMTgsIDIyLCA2NCwgNzcsIDIyOCwgNTIsIDEyOCwgMTExLCA0MiwgNDMsIDIwNCwgOTMsIDIyNiwgCi0gICAgMTY3LCA0MiwgNDQsIDIwNCwgOTMsIDIyNiwgMTY3LCAyNTAsIDAsIDIxOCwgNjMsIDI1MCwgMCwgMjE4LCAyMSwgMjUwLCAwLCAKLSAgICAyMTgsIDY0LCAxNzcsIDEyOCwgMTExLCAyNTAsIDAsIDIxOCwgMjIsIDE3NywgMTI4LCAxMTEsIDIxOCwgNjQsIDc3LCAyMTgsIAotICAgIDIxLCAyMTgsIDIyLCA3NywgMjE4LCA2MywgMjE4LCA2NCwgNzcsIDIxOCwgNjMsIDIxOCwgMjIsIDc3LCAyMTgsIDIxLCAKLSAgICAyMTgsIDIyLCAyNTIsIDMwLCAyMTgsIDYzLCAyMTgsIDIyLCAyNTIsIDMwLCAyMiwgMjM1LCA2NSwgMjUxLCA3OCwgMjQ4LCAKLSAgICAxNTcsIDIsIDIxOCwgNjMsIDI0NSwgMTcwLCA2NCwgMjI2LCAxNzAsIDI0NiwgMTAzLCAyMjUsIDQ4LCAyLCAyMTcsIDEyLCAKLSAgICAyMTYsIDEzLCAyMTUsIDI0MCwgMjM1LCAxOTgsIDI0NCwgMjEsIDIyOCwgNjUsIDIxOSwgMjUxLCA0MywgMjE3LCA4NywgCi0gICAgMjE5LCAyNTEsIDEyNCwgMjE3LCA4NywgMjE5LCAyNTEsIDEyMCwgMjE3LCA4NywgMjI1LCAxNzIsIDIsIDIyMiwgOTEsIDY3LCAKLSAgICAyNTIsIDE0MSwgMjE1LCAyMTEsIDQ0LCAyMTUsIDkzLCA1MiwgNjcsIDI1MiwgMTQxLCA0MywgMjE1LCA5MywgNjcsIDI1MiwgCi0gICAgMTQxLCA1MiwgNDMsIDIxNSwgOTMsIDUyLCA2NywgMjUyLCAxNDEsIDUyLCA0MywgMjE1LCA5MywgMTk5LCAyNDgsIDE1NywgCi0gICAgMjQzLCAyNDMsIDQzLCAyMzEsIDYzLCA2NCwgNTIsIDIxMywgMjM5LCAyMTksIDI1MSwgMTI0LCAyMTcsIDg4LCAyLCAyMjYsIAotICAgIDEyMywgMjE5LCAyNTEsIDEyMCwgMjE3LCA4OCwgMiwgMjE0LCAxODMsIDIxOSwgMjUxLCAxMjAsIDIxNywgODgsIDc3LCAKLSAgICAyMTksIDI1MSwgMTI0LCAyMTcsIDg3LCA1MiwgMTI0LCAyMTcsIDg3LCA1MiwgMTIwLCAyMTcsIDg3LCA1MiwgMjE4LCAxMDMsIAotICAgIDIyOCwgNTIsIDUwLCAyMjMsIDQ5LCA1MiwgMjE4LCAxMDMsIDIyOCwgNTIsIDUwLCAyNDcsIDEzOCwgMjI4LCA1MiwgMjQ3LCAKLSAgICAxNzUsIDIsIDIyMywgNDksIDIyOSwgMTAxLCAyMTksIDk1LCA2NywgMjMyLCAyMTQsIDIsIDI1MCwgMzYsIDQ4LCA2NywgCi0gICAgMjMyLCAyMTQsIDIsIDI1MCwgMzYsIDUxLCAxMjQsIDIxNywgODgsIDIsIDI1MCwgMzYsIDUxLCAyMjYsIDgsIDIsIDIwMywgCi0gICAgOTEsIDIyNiwgOCwgMiwgMjE2LCA4OSwgMjI2LCAxNjcsIDIxNSwgMjExLCA2NywgMjUyLCAxNDEsIDI1MSwgMjQ0LCAyMjMsIAotICAgIDkxLCAyMTUsIDIxMSwgNjcsIDI1MiwgMTQxLCAyLCAyMDMsIDkxLCAyMTUsIDIxMSwgMjQ5LCAyMjcsIDIyNiwgMTY3LCAKLSAgICAyMTUsIDIxMSwgMjI5LCA5MSwgMjMzLCAxNCwgMjE1LCAyMTEsIDIyOSwgOTEsIDI0MiwgMTI5LCAyNDYsIDExMSwgMjE5LCAKLSAgICA5NywgMjMzLCAxNSwgMTc3LCAxMjgsIDExMSwgMjQ2LCAxMTEsIDIxOSwgOTcsIDI0MiwgMTMwLCAxNzcsIDEyOCwgMTExLCAKLSAgICAyMTUsIDIxMSwgMjE5LCA0NywgMjUxLCAyNDQsIDIyMywgOTEsIDIzMywgODUsIDIxNSwgMjExLCA2NywgMjUyLCAxNDEsIAotICAgIDIyNiwgMTY3LCA1MiwgMjE5LCA0NywgMjI2LCAxNjcsIDcxLCA2NywgMTMwLCAyMzAsIDI0LCA3MSwgNjcsIDEzMCwgMjI4LCAKLSAgICA1NiwgMjQ1LCAyMjAsIDcxLCA3NCwgMjI4LCA1NiwgMjEyLCA5LCA3MSwgNzQsIDIxOSwgMjgsIDI0NSwgMjIwLCA3MSwgNzQsIAotICAgIDIxOSwgMjgsIDIxMiwgOSwgNzEsIDc0LCA0MywgNDQsIDcxLCA3NCwgMTQwLCA4NSwgNzQsIDIxNCwgMTUzLCA4NSwgNzQsIAotICAgIDI0NiwgMTA0LCA4NSwgNzQsIDIyOCwgNTYsIDI0NSwgMjIwLCA4NSwgNzQsIDIyOCwgNTYsIDIxMiwgOSwgODUsIDc0LCAKLSAgICAyMTksIDI4LCAyNDUsIDIyMCwgODUsIDc0LCAyMTksIDI4LCAyMTIsIDksIDg1LCA3NCwgNDMsIDQ0LCA4NSwgNzQsIDEyMCwgCi0gICAgMTI0LCA4NSwgNzQsIDk3LCA4MCwgMiwgMjE2LCA3NywgMjQ2LCAxMDMsIDk3LCA4MCwgMiwgMjE2LCA3NywgMjE0LCAxNTIsIAotICAgIDE0MCwgODAsIDIsIDIxNiwgNzcsIDI0NiwgMTAzLCAxNDAsIDgwLCAyLCAyMTYsIDc3LCAyMTQsIDE1MiwgNDIsIDIsIDIxNiwgCi0gICAgMTQsIDE2MywgMjUxLCAyMjEsIDQyLCAyLCAyNTEsIDE3NSwgMTYzLCAyNTEsIDIyMSwgNDIsIDIsIDIxNCwgMTYwLCA0NCwgCi0gICAgMjQ3LCAyNTUsIDE2MywgMjUxLCAyMjEsIDQyLCAyLCAyMzIsIDEwOCwgNDMsIDI0NywgMjU1LCAxNjMsIDI1MSwgMjIxLCAKLSAgICAyNDcsIDI0OSwgMiwgNDMsIDE2MywgMjUxLCAyMjEsIDI0NywgMjQ5LCAyLCA0NCwgMTYzLCAyNTEsIDIyMSwgMjQ3LCAyNDksIAotICAgIDIsIDIxNiwgMTQsIDE2MywgMjUxLCAyMjEsIDI0NywgMjQ5LCAyLCAyNTEsIDE3NSwgMTYzLCAyNTEsIDIyMSwgMjQ2LCAKLSAgICAxMTgsIDIxOCwgMjM0LCA4NSwgMjMzLCA4NSwgMjE4LCAyMzQsIDcxLCAyMzMsIDg1LCAyMTgsIDIzNCwgODUsIDIxMywgCi0gICAgMTg3LCA0LCAyMTgsIDIzNCwgNzEsIDIxMywgMTg3LCA0LCAyMTgsIDIzNCwgODUsIDIyNSwgMTkwLCA3MSwgMjI1LCAxOTAsIAotICAgIDcxLCAyNDEsIDE5MywgODUsIDI0MSwgMTkzLCAyMDMsIDg1LCAyNDEsIDE5MywgODUsIDIzMywgODUsIDI1MCwgMzUsIDg1LCAKLSAgICAyMzEsIDgyLCAyNDcsIDI0OCwgNzEsIDIzMSwgODIsIDI0NywgMjQ4LCA4NSwgMjMxLCA4MiwgMjMyLCAxMDQsIDcxLCAyMzEsIAotICAgIDgyLCAyMzIsIDEwNCwgODUsIDQsIDI0NywgMjQ4LCA4NSwgNCwgMjMyLCAxMDQsIDcxLCA0LCAyMzIsIDEwNCwgODUsIDIwMywgCi0gICAgMjQ1LCAxNjQsIDcxLCAyMDMsIDI0NSwgMTY0LCA4NSwgNjcsIDI0NSwgMTY0LCA3MSwgNjcsIDI0NSwgMTY0LCA0MywgODAsIAotICAgIDIsIDQsIDI1MCwgMzUsIDEzNCwgMTQwLCAyNTMsIDI0NywgNDMsIDgwLCAyLCAzNywgMjI1LCAyMiwgMTk5LCAxNDAsIDIxOCwgCi0gICAgMjMwLCA3NCwgMTQwLCAyMTUsIDU4LCA4MCwgMiwgNjcsIDkxLCAxNDAsIDIxNSwgNTgsIDgwLCAyLCA1MiwgNjcsIDkxLCAKLSAgICAxNDAsIDIxNSwgNTgsIDgwLCAyNDMsIDI0MywgMTMwLCAxNDAsIDIxNSwgNTgsIDIxNSwgMjExLCAyNDgsIDE1NywgNzQsIAotICAgIDE0MCwgODAsIDIsIDI0NiwgMTE4LCAyMTgsIDEzOSwgMTQwLCA4MCwgMiwgMjE3LCA3OCwgMiwgNjcsIDkxLCAxNDAsIDgwLCAKLSAgICAyLCAyMTcsIDc4LCAyLCA1MiwgNjcsIDkxLCAxNDAsIDIxNSwgNTgsIDgwLCAyLCAyMTcsIDc3LCAxNDAsIDIxNSwgNTgsIAotICAgIDgwLCAyLCAyMTcsIDc4LCAyLCA2NywgOTEsIDE0MCwgMjE1LCA1OCwgODAsIDIsIDIxNywgNzgsIDIsIDUyLCA2NywgOTEsIAotICAgIDE0MCwgODAsIDIxNiwgMTM5LCAyMTEsIDE3OCwgMjEyLCAzNiwgODAsIDIyNSwgNywgMjQ3LCAxOTUsIDIzMywgNDYsIDI0NSwgCi0gICAgOTgsIDUsIDc3LCAxNDAsIDc0LCAyMjMsIDUwLCAyMTYsIDg5LCAyMjYsIDE2OCwgNzcsIDE0MCwgNzQsIDE0MCwgODAsIDc3LCAKLSAgICAyMjMsIDUwLCAyNTQsIDE0OCwgMTI4LCAxMTEsIDk3LCA4MCwgMjE2LCAxMzksIDI0MiwgMTI5LCA5NywgODAsIDIxNiwgCi0gICAgMTM5LCAyMTgsIDIxLCAxNDAsIDIyNCwgMjQsIDc0LCA5NywgMjI0LCAyNCwgNzQsIDIyMywgNTAsIDIxNiwgODksIDIyNiwgCi0gICAgMTY4LCA3NywgOTcsIDc0LCA5NywgODAsIDc3LCAyMjMsIDUwLCAyNTQsIDE0OCwgMTI4LCAxMTEsIDIxNiwgODksIDIyNiwgCi0gICAgMTY4LCA3NywgMTQwLCA3NCwgMTQwLCA4MCwgNzcsIDI1NCwgMTQ4LCAxMjgsIDExMSwgMTQwLCA4MCwgNzcsIDIyMywgNTAsIAotICAgIDIxNiwgODksIDIyNiwgMTY3LCA5NywgODAsIDc3LCAyMjMsIDUwLCAyMTYsIDg5LCAyMjYsIDE2NywgNzEsIDIzMSwgODIsIAotICAgIDIxOCwgMTU2LCA4NSwgNCwgMjE4LCAxNTYsIDcxLCA0LCAyMTgsIDE1NiwgODUsIDIyMiwgMjQ3LCAyMjUsIDE5MCwgNzEsIAotICAgIDIyMiwgMjQ3LCAyMjUsIDE5MCwgMTE0LCAyMzMsIDg1LCAyNTAsIDM1LCAxMTQsIDIyNiwgMTI0LCAyLCAyMjYsIDEyNCwgCi0gICAgMjM1LCAyMTUsIDExNCwgMjUwLCAzNiwgMiwgMjUwLCAzNiwgMjM1LCAyMTUsIDExNCwgMjUwLCAzNSwgMTE0LCAzNywgMjIxLCAKLSAgICAyNTQsIDE0NSwgNiwgMSwgMjUzLCAxNTksIDE0NSwgNiwgMSwgMjUxLCAxMTcsIDE0NSwgNiwgMSwgMjEzLCAyNTMsIDE0NSwgCi0gICAgNiwgMSwgMjQyLCAxODUsIDE0NSwgNiwgMSwgMjQ3LCAxNDAsIDE0NSwgNiwgMSwgMjExLCAyMSwgMTQ1LCA2LCAxLCAyMTAsIAotICAgIDY4LCAxNDUsIDYsIDEsIDI0NiwgMzQsIDE0NSwgNiwgMSwgMjEwLCA5MSwgMTQ1LCA2LCAxLCAyMzUsIDE0OCwgMTQ1LCA2LCAKLSAgICAxLCA2NSwgMjM1LCAxNDgsIDE0NSwgNiwgMSwgNzMsIDE0NSwgNiwgMSwgMjQ3LCAxNjAsIDE0NSwgNiwgMSwgMjM0LCAyNDAsIAotICAgIDE0NSwgNiwgMSwgMjMyLCAxODYsIDE0NSwgNiwgMSwgMjMwLCAyOSwgMTQ1LCA2LCAxLCAyMjksIDE5MSwgMTQ1LCA2LCAxLCAKLSAgICAyMjYsIDE4NSwgMTQ1LCA2LCAxLCAyMjUsIDQsIDE0NSwgNiwgMSwgMjIyLCAyMjcsIDE0NSwgNiwgMSwgMjE5LCA4MywgCi0gICAgMTQ1LCA2LCAxLCAyMTUsIDgxLCAxNDUsIDYsIDEsIDIxNCwgMjAxLCAxNDUsIDYsIDEsIDI0MywgMjQ2LCAxNDUsIDYsIDEsIAotICAgIDI0MSwgMTk5LCAxNDUsIDYsIDEsIDIyNiwgMTM1LCAxNDUsIDYsIDEsIDIyNSwgMjIxLCAxNDUsIDYsIDEsIDIxOSwgMjI4LCAKLSAgICAxNDUsIDYsIDEsIDIxNSwgMTY3LCAxNDUsIDYsIDEsIDI1MCwgNzUsIDE0NSwgNiwgMSwgMjIwLCAxMDIsIDE0NSwgNiwgMSwgCi0gICAgMjExLCAyNywgMTQ1LCA2LCAxLCAyMTEsIDI5LCAxNDUsIDYsIDEsIDIxMSwgNTcsIDE0NSwgNiwgMSwgMjE4LCAyNTMsIAotICAgIDE2MiwgMTQ1LCA2LCAxLCAyMTAsIDIxMiwgMTQ1LCA2LCAxLCA0LCAyMTAsIDE4MywgMTQ1LCA2LCAxLCA0LCAyMTAsIDE4NCwgCi0gICAgMiwgMjE3LCA3NywgMTQ1LCA2LCAxLCAyMTAsIDI0NCwgMTQ1LCA2LCAxLCAyMzUsIDE4NCwgNCwgMjEwLCAxODMsIDE0NSwgCi0gICAgNiwgMSwgMjUxLCAyNDksIDIxMCwgMTgzLCAxNDUsIDYsIDEsIDIzNSwgMTg0LCAyNTEsIDI0OSwgMjEwLCAxODMsIDE0NSwgCi0gICAgNiwgMSwgMjQ0LCA4MiwgMTQ1LCA2LCAxLCAyMzUsIDE0NiwgMTQ1LCA2LCAxLCAyMTksIDIyNywgMTQ1LCA2LCAxLCAyMTUsIAotICAgIDIwMiwgNjEsIDE0NSwgNiwgMSwgMjMzLCA3NSwgMjMwLCAyOSwgMTQ1LCA0LCAxLCAyNTMsIDE1OSwgMTQ1LCA0LCAxLCAKLSAgICAyNTEsIDExNywgMTQ1LCA0LCAxLCAyMTMsIDI1MywgMTQ1LCA0LCAxLCAyNDIsIDE4NSwgMTQ1LCA0LCAxLCAyNDcsIDE0MCwgCi0gICAgMTQ1LCA0LCAxLCAyMTEsIDIxLCAxNDUsIDQsIDEsIDIxMCwgNjgsIDE0NSwgNCwgMSwgMjQ2LCAzNCwgMTQ1LCA0LCAxLCAKLSAgICAyMTAsIDkxLCAxNDUsIDQsIDEsIDIzNSwgMTQ4LCAxNDUsIDQsIDEsIDY1LCAyMzUsIDE0OCwgMTQ1LCA0LCAxLCA3MywgCi0gICAgMTQ1LCA0LCAxLCAyNDcsIDE2MCwgMTQ1LCA0LCAxLCAyMzQsIDI0MCwgMTQ1LCA0LCAxLCAyMzIsIDE4NiwgMTQ1LCA0LCAxLCAKLSAgICAyMzAsIDI5LCAxNDUsIDQsIDEsIDIyOSwgMTkxLCAxNDUsIDQsIDEsIDIyNiwgMTg1LCAxNDUsIDQsIDEsIDIyNSwgNCwgCi0gICAgMTQ1LCA0LCAxLCAyMjIsIDIyNywgMTQ1LCA0LCAxLCAyMTksIDgzLCAxNDUsIDQsIDEsIDIxNSwgODEsIDE0NSwgNCwgMSwgCi0gICAgMjE0LCAyMDEsIDE0NSwgNCwgMSwgMjQzLCAyNDYsIDE0NSwgNCwgMSwgMjQxLCAxOTksIDE0NSwgNCwgMSwgMjI2LCAxMzUsIAotICAgIDE0NSwgNCwgMSwgMjI1LCAyMjEsIDE0NSwgNCwgMSwgMjE5LCAyMjgsIDE0NSwgNCwgMSwgMjE1LCAxNjcsIDE0NSwgNCwgMSwgCi0gICAgMjUwLCA3NSwgMTQ1LCA0LCAxLCAyMjAsIDEwMiwgMTQ1LCA0LCAxLCAyMTEsIDI3LCAxNDUsIDQsIDEsIDIxMSwgMjksIAotICAgIDE0NSwgNCwgMSwgMjExLCA1NywgMTQ1LCA0LCAxLCAyMTgsIDI1MywgMTYyLCAxNDUsIDQsIDEsIDIxMCwgMjEyLCAxNDUsIAotICAgIDQsIDEsIDQsIDIxMCwgMTgzLCAxNDUsIDQsIDEsIDQsIDIxMCwgMTg0LCAyLCAyMTcsIDc3LCAxNDUsIDQsIDEsIDIxMCwgCi0gICAgMjQ0LCAxNDUsIDQsIDEsIDIzNSwgMTg0LCA0LCAyMTAsIDE4MywgMTQ1LCA0LCAxLCAyNTEsIDI0OSwgMjEwLCAxODMsIAotICAgIDE0NSwgNCwgMSwgMjM1LCAxODQsIDI1MSwgMjQ5LCAyMTAsIDE4MywgMTQ1LCA0LCAxLCAyNDQsIDgyLCAxNDUsIDQsIDEsIAotICAgIDIzNSwgMTQ2LCAxNDUsIDQsIDEsIDIxOSwgMjI3LCAxNDUsIDQsIDEsIDIxNSwgMjAyLCA2MSwgMTQ1LCA0LCAxLCAyMzMsIAotICAgIDc1LCAyMzAsIDI5LCA3LCA2LCAxLCAyMzMsIDE0OSwgMiwgNTIsIDEzMCwgNywgNCwgMSwgMjMzLCAxNDksIDIsIDUyLCAKLSAgICAxMzAsIDcsIDYsIDEsIDIzMywgMTQ5LCAyLCAyMzAsIDIyNCwgMTgyLCA3LCA2LCAxLCAyMjYsIDEwNiwgMiwgOTEsIDcsIDYsIAotICAgIDEsIDIyMywgMjI0LCAyLCAyMTcsIDc3LCA3LCA0LCAxLCAxMTUsIDIsIDkxLCA3LCA0LCAxLCAyMTcsIDE1MywgMiwgMjQ3LCAKLSAgICAyNTUsIDkxLCA3LCA2LCAxLCAyNDIsIDYxLCAyLCAyNDgsIDM5LCA3LCA0LCAxLCAyNDIsIDYxLCAyLCAyNDgsIDM5LCA3LCAKLSAgICA2LCAxLCAyMzUsIDI0LCAyLCAyNDgsIDM5LCA3LCA0LCAxLCAyMzUsIDI0LCAyLCAyNDgsIDM5LCA3LCA2LCAxLCAyMTAsIAotICAgIDE2MCwgMiwgMjQ4LCAzOSwgNywgNCwgMSwgMjEwLCAxNjAsIDIsIDI0OCwgMzksIDcsIDYsIDEsIDI1NCwgMTQzLCA3LCA2LCAKLSAgICAxLCAyMzIsIDUwLCAyLCAxMDMsIDcsIDYsIDEsIDIxNSwgOTQsIDYxLCA3LCA2LCAxLCAyMTUsIDk0LCAyNTQsIDE0MywgNywgCi0gICAgNCwgMSwgMjE0LCAxMDYsIDIsIDQ0LCAxMDMsIDcsIDYsIDEsIDIxMiwgOTksIDIsIDEwMywgNywgNCwgMSwgMjEyLCA5OSwgCi0gICAgMiwgMTAzLCA3LCA0LCAxLCAyMTQsIDEwNiwgMiwgMjQ5LCAxMDAsIDcsIDYsIDEsIDE2MywgMjQyLCA2MCwgNywgNCwgMSwgCi0gICAgMTYzLCAyNDIsIDYwLCA3LCA0LCAxLCAyMTcsIDc1LCAyMjUsIDEzMywgNywgNCwgMSwgMTYwLCAyLCAyMjgsIDUwLCA3LCA0LCAKLSAgICAxLCAyMTUsIDk0LCAyMjMsIDIyNCwgMiwgMjE3LCA3NywgNywgNCwgMSwgMTQ0LCAyLCAxMjEsIDIyMiwgMjM0LCAyMzUsIAotICAgIDIxNSwgNywgMSwgNCwgNiwgMjE1LCA5NCwgNzUsIDcsIDIxOCwgNjUsIDQsIDEsIDIzNSwgMTQ0LCA1OCwgMSwgNiwgMjE0LCAKLSAgICAxMDUsIDcsIDYsIDEsIDIyMiwgOTIsIDIsIDIxNywgMjUwLCAyMTcsIDc3LCA3LCA2LCAxLCAyMTAsIDE2MCwgMiwgMjE3LCAKLSAgICAyNTAsIDIxNywgNzcsIDgxLCA2LCAxLCAyNTQsIDE2NCwgODEsIDQsIDEsIDI1NCwgMTY0LCA4MSwgNiwgMSwgMjEzLCAxNzMsIAotICAgIDgxLCA0LCAxLCAyMTMsIDE3MywgODEsIDYsIDEsIDI0MywgMTA3LCA4MSwgNCwgMSwgMjQzLCAxMDcsIDgxLCA2LCAxLCAKLSAgICAyNDgsIDE5MSwgODEsIDQsIDEsIDI0OCwgMTkxLCA4MSwgNiwgMSwgMjQ1LCAxOTQsIDgxLCA0LCAxLCAyNDUsIDE5NCwgODEsIAotICAgIDYsIDEsIDIxOSwgMzMsIDgxLCA0LCAxLCAyMTksIDMzLCA4MSwgNiwgMSwgMjEwLCAxMDEsIDgxLCA0LCAxLCAyMTAsIDEwMSwgCi0gICAgODEsIDYsIDEsIDI0MSwgMjQ4LCA4MSwgNCwgMSwgMjQxLCAyNDgsIDgxLCA2LCAxLCAyMTYsIDE3NywgODEsIDQsIDEsIAotICAgIDIxNiwgMTc3LCA4MSwgNiwgMSwgMjQwLCAxMTYsIDgxLCA0LCAxLCAyNDAsIDExNiwgODEsIDYsIDEsIDIzNCwgMjI3LCA4MSwgCi0gICAgNCwgMSwgMjM0LCAyMjcsIDgxLCA2LCAxLCAyMzMsIDcyLCA4MSwgNCwgMSwgMjMzLCA3MiwgODEsIDYsIDEsIDIzMCwgMjMwLCAKLSAgICA4MSwgNCwgMSwgMjMwLCAyMzAsIDgxLCA2LCAxLCAyMjgsIDIzMywgODEsIDQsIDEsIDIyOCwgMjMzLCA4MSwgNiwgMSwgCi0gICAgMjMzLCAyMzMsIDgxLCA0LCAxLCAyMzMsIDIzMywgODEsIDYsIDEsIDc2LCA4MSwgNCwgMSwgNzYsIDgxLCA2LCAxLCAyMjUsIAotICAgIDEwOCwgODEsIDQsIDEsIDIyNSwgMTA4LCA4MSwgNiwgMSwgMjIyLCAyMTEsIDgxLCA0LCAxLCAyMjIsIDIxMSwgODEsIDYsIAotICAgIDEsIDIxOSwgMTY1LCA4MSwgNCwgMSwgMjE5LCAxNjUsIDgxLCA2LCAxLCAyMTcsIDQxLCA4MSwgNCwgMSwgMjE3LCA0MSwgCi0gICAgODEsIDYsIDEsIDIxNCwgMjI5LCA4MSwgNCwgMSwgMjE0LCAyMjksIDgxLCA2LCAxLCAyNDQsIDEyMSwgODEsIDQsIDEsIAotICAgIDI0NCwgMTIxLCA4MSwgNiwgMSwgMjM0LCAxMTIsIDgxLCA0LCAxLCAyMzQsIDExMiwgODEsIDYsIDEsIDIyNCwgMTYxLCA4MSwgCi0gICAgNCwgMSwgMjI0LCAxNjEsIDgxLCA2LCAxLCAyMjYsIDE3OCwgODEsIDQsIDEsIDIyNiwgMTc4LCA4MSwgNiwgMSwgMjQ3LCAKLSAgICAyNTMsIDI1NCwgMTcwLCA4MSwgNCwgMSwgMjQ3LCAyNTMsIDI1NCwgMTcwLCA4MSwgNiwgMSwgNTUsIDgxLCAyNTQsIDE5NiwgCi0gICAgODEsIDQsIDEsIDU1LCA4MSwgMjU0LCAxOTYsIDgxLCA2LCAxLCAyNDksIDExNSwgMjQ1LCAxOTQsIDgxLCA0LCAxLCAyNDksIAotICAgIDExNSwgMjQ1LCAxOTQsIDgxLCA2LCAxLCAyNDcsIDI1MywgMjM0LCAyMjcsIDgxLCA0LCAxLCAyNDcsIDI1MywgMjM0LCAKLSAgICAyMjcsIDgxLCA2LCAxLCAyNDcsIDI1MywgMjI4LCAyMzMsIDgxLCA0LCAxLCAyNDcsIDI1MywgMjI4LCAyMzMsIDgxLCA2LCAKLSAgICAxLCAyNDksIDExNSwgMjI4LCAyMzMsIDgxLCA0LCAxLCAyNDksIDExNSwgMjI4LCAyMzMsIDgxLCA2LCAxLCA1NSwgODEsIAotICAgIDIyNiwgMTc4LCA4MSwgNCwgMSwgNTUsIDgxLCAyMjYsIDE3OCwgODEsIDYsIDEsIDIyMSwgMjQ2LCA4MSwgNCwgMSwgMjIxLCAKLSAgICAyNDYsIDgxLCA2LCAxLCAyNDksIDEyOCwgMjIwLCA1NSwgODEsIDQsIDEsIDI0OSwgMTI4LCAyMjAsIDU1LCA4MSwgNiwgMSwgCi0gICAgNTUsIDgxLCAyMjAsIDU1LCA4MSwgNCwgMSwgNTUsIDgxLCAyMjAsIDU1LCA4MSwgNiwgMSwgNTUsIDgxLCAyNDUsIDc1LCAKLSAgICA4MSwgNCwgMSwgNTUsIDgxLCAyNDUsIDc1LCA4MSwgNiwgMSwgMjU0LCAxODIsIDIzNCwgMTE3LCA4MSwgNCwgMSwgMjU0LCAKLSAgICAxODIsIDIzNCwgMTE3LCA4MSwgNiwgMSwgMjQ3LCAyNTMsIDI0MSwgNDUsIDgxLCA0LCAxLCAyNDcsIDI1MywgMjQxLCA0NSwgCi0gICAgODEsIDYsIDEsIDU1LCA4MSwgMjQxLCA0NSwgODEsIDQsIDEsIDU1LCA4MSwgMjQxLCA0NSwgODEsIDYsIDEsIDU1LCA4MSwgCi0gICAgMTYyLCA4MSwgNCwgMSwgNTUsIDgxLCAxNjIsIDgxLCA2LCAxLCAyMzMsIDE0OCwgMTYyLCA4MSwgNCwgMSwgMjMzLCAxNDgsIAotICAgIDE2MiwgODEsIDYsIDEsIDU1LCA4MSwgMjQxLCAyMTcsIDgxLCA0LCAxLCA1NSwgODEsIDI0MSwgMjE3LCA4MSwgNiwgMSwgCi0gICAgNTUsIDgxLCAyNDEsIDI1MSwgODEsIDQsIDEsIDU1LCA4MSwgMjQxLCAyNTEsIDgxLCA2LCAxLCA1NSwgODEsIDI0MywgMTAyLCAKLSAgICA4MSwgNCwgMSwgNTUsIDgxLCAyNDMsIDEwMiwgODEsIDYsIDEsIDU1LCA4MSwgMjQ3LCAxNjMsIDgxLCA0LCAxLCA1NSwgODEsIAotICAgIDI0NywgMTYzLCA4MSwgNiwgMSwgNTUsIDgxLCAyMjAsIDIyLCA4MSwgNCwgMSwgNTUsIDgxLCAyMjAsIDIyLCA4MSwgNiwgMSwgCi0gICAgNTUsIDIyNywgMjA4LCAyMjAsIDIyLCA4MSwgNCwgMSwgNTUsIDIyNywgMjA4LCAyMjAsIDIyLCA4MSwgNiwgMSwgNTUsIAotICAgIDIyNywgMjA4LCAyMjksIDI3LCA4MSwgNCwgMSwgNTUsIDIyNywgMjA4LCAyMjksIDI3LCA4MSwgNiwgMSwgNTUsIDIyNywgCi0gICAgMjA4LCAyMjcsIDE0OCwgODEsIDQsIDEsIDU1LCAyMjcsIDIwOCwgMjI3LCAxNDgsIDgxLCA2LCAxLCA1NSwgMjI3LCAyMDgsIAotICAgIDIxMiwgMzcsIDgxLCA0LCAxLCA1NSwgMjI3LCAyMDgsIDIxMiwgMzcsIDgxLCAxNiwgMjM0LCAyNDYsIDgxLCAxNiwgMjMwLCAKLSAgICAyMzEsIDIyMiwgMjExLCA4MSwgMTYsIDIyNSwgMTA5LCAyMjIsIDIxMSwgODEsIDE2LCAyMTgsIDE0NywgODEsIDE2LCAyMTcsIAotICAgIDQyLCAyMjIsIDIxMSwgODEsIDE2LCAyMzQsIDExMywgMjIyLCAyMTEsIDgxLCAxNiwgMjIwLCAyMywgMjE5LCAxNjUsIDgxLCAKLSAgICA2LCAxLCAyNDksIDExNSwgMjIwLCA1NSwgODEsIDQsIDEsIDI0OSwgMTE1LCAyMjAsIDU1LCA4MSwgNiwgMSwgMjQ5LCAxMTUsIAotICAgIDI0MywgMTAyLCA4MSwgNCwgMSwgMjQ5LCAxMTUsIDI0MywgMTAyLCA4MSwgMzgsIDIyOCwgMjM0LCA0OCwgODEsIDM4LCAKLSAgICAyMTgsIDI0NywgMjUzLCAyMjQsIDgxLCAzOCwgMjE4LCAyNDcsIDIzMywgMjEsIDgxLCA2LCAxLCAyNTEsIDE5OSwgMjM0LCAKLSAgICAxMTcsIDgxLCA0LCAxLCAyNTEsIDE5OSwgMjM0LCAxMTcsIDgxLCA1NSwgMjI3LCAyMDgsIDI0MywgMjI5LCAyMTgsIDEyOSwgCi0gICAgODEsIDU1LCAyMjcsIDIwOCwgMjQ3LCAxOTcsIDIyNCwgMTMsIDc4LCA4MSwgNTUsIDIyNywgMjA4LCAyMzUsIDIzNywgMjI0LCAKLSAgICAxMywgNzgsIDgxLCA1NSwgMjI3LCAyMDgsIDIxMywgMjQxLCAyNDcsIDE3MiwgODEsIDI0NCwgMiwgMTIzLCAyNDIsIDI3LCAKLSAgICA4MSwgMjQzLCAyMjksIDIxOCwgMTI5LCA4MSwgMjMwLCAxMjQsIDI0NywgMTcyLCA5OCwgNCwgMSwgMjU0LCAxMjMsIDk4LCAKLSAgICA0LCAxLCAyNTIsIDE1MiwgOTgsIDQsIDEsIDI0MywgMTA2LCA5OCwgNCwgMSwgMjQ3LCAxMjgsIDk4LCA0LCAxLCAyNDUsIAotICAgIDE1MCwgOTgsIDQsIDEsIDIxMywgMTYwLCA5OCwgNCwgMSwgMjEwLCA4OSwgOTgsIDQsIDEsIDIxNywgNjAsIDk4LCA0LCAxLCAKLSAgICAyMzUsIDI1NSwgOTgsIDQsIDEsIDIzNCwgMjM0LCA5OCwgNCwgMSwgMjMzLCA4MSwgOTgsIDQsIDEsIDIzMSwgMTg1LCA5OCwgCi0gICAgNCwgMSwgMjI5LCAxOTUsIDk4LCA0LCAxLCAyMjYsIDE5NiwgOTgsIDQsIDEsIDIyNiwgMTcsIDk4LCA0LCAxLCAyMTAsIDc4LCAKLSAgICA5OCwgNCwgMSwgMjIzLCAxNzEsIDk4LCA0LCAxLCAyMjEsIDI0MywgOTgsIDQsIDEsIDIxNywgNTAsIDk4LCA0LCAxLCAyMTQsIAotICAgIDE5MCwgOTgsIDQsIDEsIDIyNSwgMTQwLCA5OCwgNCwgMSwgMjM0LCAxMjEsIDk4LCA0LCAxLCAyNDIsIDI0MSwgOTgsIDQsIAotICAgIDEsIDIyNCwgNzMsIDk4LCA0LCAxLCAyMjAsIDIwLCA5OCwgNCwgMSwgMjUwLCA5NywgOTgsIDQsIDEsIDI1MSwgNywgOTgsIAotICAgIDQsIDEsIDIzNSwgMTAwLCA5OCwgNCwgMSwgMjUwLCA0MCwgOTgsIDQsIDEsIDI1MCwgMTQzLCA5OCwgNCwgMSwgMjExLCAKLSAgICAxNjMsIDk4LCA0LCAxLCAyMzUsIDExMSwgOTgsIDQsIDEsIDI0MiwgNDMsIDk4LCA0LCAxLCAyNDEsIDIzOCwgOTgsIDQsIDEsIAotICAgIDI0MSwgMTc1LCA5OCwgNCwgMSwgMjEyLCAyMiwgOTgsIDQsIDEsIDI0MiwgNCwgOTgsIDQsIDEsIDI0MSwgNjUsIDk4LCA0LCAKLSAgICAxLCAyMTAsIDI0NiwgOTgsIDQsIDEsIDI1NCwgMjMyLCAyMTYsIDEwOCwgMSwgMTkxLCAyMTYsIDEwOCwgMSwgMjExLCA5OSwgCi0gICAgMjE2LCAxMDgsIDEsIDIxMSwgOTgsIDIxNiwgMTA4LCAxLCAyMTEsIDg4LCAyMTYsIDEwOCwgMSwgMjExLCA4NiwgMjE2LCAKLSAgICAxMDgsIDEsIDI1MiwgMzIsIDI1NSwgMTYsIDIxMSwgODEsIDIxNiwgMTA4LCAxLCAyMTEsIDgxLCAyMTYsIDEwOCwgMSwgCi0gICAgMjExLCA5NiwgMjE2LCAxMDgsIDEsIDIxMSwgOTMsIDIxNiwgMTA4LCAxLCAyMTEsIDk1LCAyMTYsIDEwOCwgMSwgMjExLCAKLSAgICA5NCwgMjE2LCAxMDgsIDEsIDIxMSwgMTIsIDIxNiwgMTA4LCAxLCAyMTEsIDkwLCAyMTYsIDEwOCwgMSwgMjExLCA3OSwgCi0gICAgMjE2LCAxMDgsIDEsIDIxNSwgMTE1LCAyMTEsIDc5LCAyMTYsIDEwOCwgMSwgMjExLCA3NiwgMjE2LCAxMDgsIDEsIDIxMSwgCi0gICAgODQsIDIxNiwgMTA4LCAxLCAyNTIsIDMyLCAyNTUsIDE2LCAyMTEsIDg0LCAyMTYsIDEwOCwgMSwgMjE1LCAxMTUsIDIxMSwgCi0gICAgODQsIDIxNiwgMTA4LCAxLCAyMTEsIDgzLCAyMTYsIDEwOCwgMSwgMjExLCAxMDMsIDIxNiwgMTA4LCAxLCAyMTEsIDc3LCAKLSAgICAyMTYsIDEwOCwgMSwgMjE1LCAxMTUsIDIxMSwgNzcsIDIxNiwgMTA4LCAxLCAyMTEsIDY2LCAyMTYsIDEwOCwgMSwgMjE1LCAKLSAgICAxMTUsIDIxMSwgNjYsIDIxNiwgMTA4LCAxLCAyMTEsIDgsIDIxNiwgMTA4LCAxLCAyMTEsIDQ5LCAyMTYsIDEwOCwgMSwgCi0gICAgMjU0LCAyMDcsIDIxMSwgNDksIDIxNiwgMTA4LCAxLCAyMTUsIDExNSwgMjExLCA0OSwgMjE2LCAxMDgsIDEsIDIxMSwgNzUsIAotICAgIDIxNiwgMTA4LCAxLCAyMTEsIDc0LCAyMTYsIDEwOCwgMSwgMjExLCA3MSwgMjE2LCAxMDgsIDEsIDIxNSwgMTE1LCAyMTEsIAotICAgIDg1LCAyMTYsIDEwOCwgMSwgMjE1LCAxMTUsIDIxMSwgNjksIDIxNiwgMTA4LCAxLCAyMTEsIDY3LCAyMTYsIDEwOCwgMSwgCi0gICAgMjEwLCAyMTIsIDIxNiwgMTA4LCAxLCAyMTEsIDY0LCAyMTYsIDEwOCwgMSwgMjExLCA2MywgMjE2LCAxMDgsIDEsIDIxMSwgCi0gICAgODcsIDIxNiwgMTA4LCAxLCAyMTUsIDExNSwgMjExLCA4NywgMjE2LCAxMDgsIDEsIDI1MywgMTYzLCAyMTEsIDg3LCAyMTYsIAotICAgIDEwOCwgMSwgMjExLCA2MiwgMjE2LCAxMDgsIDEsIDIxMSwgNjAsIDIxNiwgMTA4LCAxLCAyMTEsIDYxLCAyMTYsIDEwOCwgMSwgCi0gICAgMjExLCA1OSwgMjE2LCAxMDgsIDEsIDIxMSwgNTgsIDIxNiwgMTA4LCAxLCAyMTEsIDk3LCAyMTYsIDEwOCwgMSwgMjExLCAKLSAgICA1NiwgMjE2LCAxMDgsIDEsIDIxMSwgNTQsIDIxNiwgMTA4LCAxLCAyMTEsIDUzLCAyMTYsIDEwOCwgMSwgMjExLCA1MiwgCi0gICAgMjE2LCAxMDgsIDEsIDIxMSwgNTAsIDIxNiwgMTA4LCAxLCAyMTcsIDM0LCAyMTEsIDUwLCAyMTYsIDEwOCwgMSwgMjExLCAKLSAgICA0OCwgMjE2LCAxMDgsIDEsIDIxMSwgNDcsIDIxNiwgMTA4LCAxLCAyMTAsIDI0NCwgMjE2LCAxMDgsIDU4LCAxLCAyMzMsIAotICAgIDEyNiwgNzgsIDIxNiwgMTA4LCAyMjAsIDEzOCwgNzgsIDIxNiwgMTA4LCAxMTYsIDIzNSwgNjMsIDI5LCAzLCAyMzIsIDE1NSwgCi0gICAgMjksIDMsIDIzMCwgMTYwLCAyOSwgMywgMjIyLCAyMDksIDI5LCAzLCAyMTksIDU3LCAyOSwgMywgMjIwLCA2LCAyOSwgMywgCi0gICAgMjUxLCAyMDQsIDI5LCAzLCAyMTYsIDQxLCAyOSwgMywgMjQ5LCAyMzcsIDI5LCAzLCAyMjgsIDcyLCAyOSwgMywgMjI3LCAKLSAgICAxMzMsIDI5LCAzLCAyNDIsIDE4MCwgMjI3LCAwLCAyOSwgMywgMjEwLCAyMiwgMjksIDMsIDI0NywgMTQzLCAyOSwgMywgCi0gICAgMjQ4LCAxMDQsIDI5LCAzLCAyMzUsIDY3LCAyOSwgMywgMjE2LCAxNTUsIDI5LCAzLCAyNTAsIDg1LCAyOSwgMywgMjI1LCAKLSAgICAxMjAsIDI5LCAzLCAyMjUsIDE1LCAyOSwgMywgMjQyLCAyNTUsIDI5LCAzLCAyNDIsIDI1MSwgMjksIDMsIDI0MiwgMjUyLCAKLSAgICAyOSwgMywgMjQyLCAyNTMsIDI5LCAzLCAyMTgsIDIyMywgMjksIDMsIDIxOCwgMTc5LCAyOSwgMywgMjE4LCAxOTIsIDI5LCAKLSAgICAzLCAyMTgsIDIyMiwgMjksIDMsIDIxOCwgMTk2LCAyOSwgMywgMjE4LCAxOTcsIDI5LCAzLCAyMTgsIDE4NCwgMjksIDMsIAotICAgIDI1MCwgMjEzLCAyOSwgMywgMjUwLCAxOTIsIDI5LCAzLCAyNTAsIDE5NCwgMjksIDMsIDI1MCwgMjEyLCAyOSwgMywgMjUwLCAKLSAgICAyMTAsIDI5LCAzLCAyNTAsIDIxMSwgMjksIDMsIDI1MCwgMTkzLCAyOSwgMywgMjA5LCAyNDMsIDI5LCAzLCAyMDksIDIyMSwgCi0gICAgMjksIDMsIDIwOSwgMjM0LCAyOSwgMywgMjA5LCAyNDIsIDI5LCAzLCAyMDksIDIzNywgMjksIDMsIDIwOSwgMjM4LCAyOSwgCi0gICAgMywgMjA5LCAyMjYsIDI5LCAzLCAyNTAsIDIwOCwgMjksIDMsIDI1MCwgMTk1LCAyOSwgMywgMjUwLCAxOTcsIDI5LCAzLCAKLSAgICAyNTAsIDIwNywgMjksIDMsIDI1MCwgMjA1LCAyOSwgMywgMjUwLCAyMDYsIDI5LCAzLCAyNTAsIDE5NiwgMjksIDMsIDIyMywgCi0gICAgMjM2LCAyOSwgMywgMjIzLCAyMjYsIDI5LCAzLCAyMjMsIDIzMiwgMjksIDMsIDIyMywgMjM1LCAyOSwgMywgMjIzLCAyMzMsIAotICAgIDI5LCAzLCAyMjMsIDIzNCwgMjksIDMsIDIyMywgMjMxLCAyOSwgMywgMjMzLCAxNTksIDI5LCAzLCAyMzMsIDE1MSwgMjksIAotICAgIDMsIDIzMywgMTU0LCAyOSwgMywgMjMzLCAxNTgsIDI5LCAzLCAyMzMsIDE1NSwgMjksIDMsIDIzMywgMTU2LCAyOSwgMywgCi0gICAgMjMzLCAxNTIsIDI5LCAzLCAyMTEsIDEzMCwgMjksIDMsIDIxMSwgMTIwLCAyOSwgMywgMjExLCAxMjYsIDI5LCAzLCAyMTEsIAotICAgIDEyOSwgMjksIDMsIDIxMSwgMTI3LCAyOSwgMywgMjExLCAxMjgsIDI5LCAzLCAyMTEsIDEyNSwgMjksIDMsIDI0MiwgNzEsIAotICAgIDI5LCAzLCAyNDIsIDYyLCAyOSwgMywgMjQyLCA2NSwgMjksIDMsIDI0MiwgNzAsIDI5LCAzLCAyNDIsIDY3LCAyOSwgMywgCi0gICAgMjQyLCA2OCwgMjksIDMsIDI0MiwgNjQsIDM4LCAzMywgMSwgMjUyLCA3NSwgMzgsIDMzLCAxLCAyMTMsIDI1NSwgMzgsIDMzLCAKLSAgICAxLCAyNDIsIDIzNiwgMzgsIDMzLCAxLCAyNDgsIDkwLCAzOCwgMzMsIDEsIDIxMCwgNzQsIDM4LCAzMywgMSwgMjEwLCA5NCwgCi0gICAgMzgsIDMzLCAxLCAxNzYsIDM4LCAzMywgMSwgMjQ1LCAxNzQsIDM4LCAzMywgMSwgMjQ1LCAxNTksIDM4LCAzMywgMSwgMjQ1LCAKLSAgICAxNTAsIDM4LCAzMywgMSwgNzYsIDM4LCAzMywgMSwgMjI1LCAyMjEsIDM4LCAzMywgMSwgMjQ1LCA5MiwgMzgsIDMzLCAxLCAKLSAgICAyNDUsIDgyLCAzOCwgMzMsIDEsIDIxNywgMjIsIDM4LCAzMywgMSwgMTYyLCAzOCwgMzMsIDEsIDIxNSwgMTc4LCAzOCwgMzMsIAotICAgIDEsIDI1MCwgMTMxLCAzOCwgMzMsIDEsIDIyMCwgMTAyLCAzOCwgMzMsIDEsIDIyMCwgNjUsIDM4LCAzMywgMSwgMjQ0LCA4MiwgCi0gICAgMzgsIDMzLCAxLCAyNDUsIDgxLCAzOCwgMzMsIDEsIDYxLCAzOCwgMzMsIDEsIDIzNiwgNjAsIDM4LCAzMywgMSwgMjQ3LCAKLSAgICAxNjEsIDM4LCAzMywgMSwgMjMwLCAxNDAsIDIxNCwgMjA1LCAzOCwgMzMsIDEsIDIxMSwgNTksIDM4LCAzMywgMSwgMjEwLCAKLSAgICAyMTIsIDM4LCAzMywgMSwgMjM1LCAxODMsIDYxLCAzOCwgMzMsIDEsIDIzMiwgMTkyLCAyMTAsIDE4MywgMzgsIDMzLCAxLCAKLSAgICAyNTEsIDI0OSwgMjEwLCAxODMsIDM4LCAzMywgMSwgMjM1LCAxODMsIDI1MSwgMjQ5LCAyMTAsIDE4MywgNDQsIDI1NCwgCi0gICAgMTEwLCAyMTgsIDYwLCAyMzEsIDE1NCwgNDQsIDI1NCwgMTEwLCAyNDYsIDExOCwgMjE4LCA2MCwgMjMxLCAxNTQsIDQzLCAKLSAgICAyMTgsIDYwLCAxMjcsIDQ0LCAyMTgsIDYwLCAxMjcsIDQzLCAyNDYsIDExOCwgMjE4LCA2MCwgMTI3LCA0NCwgMjQ2LCAxMTgsIAotICAgIDIxOCwgNjAsIDEyNywgMjIzLCAxNTcsIDIzNSwgMjAyLCAyMzEsIDE1NCwgMjIzLCAxNTcsIDI0NiwgMTE4LCAyMzUsIDIwMiwgCi0gICAgMjMxLCAxNTQsIDI0NiwgMTE4LCAyMTUsIDI0MSwgMjMxLCAxNTQsIDQzLCAyMTUsIDI0MSwgMTI3LCA0NCwgMjE1LCAyNDEsIAotICAgIDEyNywgMjIzLCAxNTcsIDIxOCwgMjM0LCA0MywgMjIzLCAxNTcsIDIyNiwgMTk4LCAxMjcsIDQ0LCAyMjMsIDE1NywgMjI2LCAKLSAgICAxOTgsIDEyNywgMjQ1LCAyMTAsIDI0OSwgMTU4LCAyMjYsIDEzLCAyNDQsIDIyLCAyMjYsIDEzLCAyMjMsIDQ5LCAyNDQsIAotICAgIDIyLCAyMjYsIDEzLCAyNDAsIDE2NSwgMjQ2LCAxMTgsIDIyNiwgMjUxLCAyNDYsIDEwNCwgMjU0LCAxMTksIDIxNCwgMTUzLCAKLSAgICAyNTQsIDExOSwgMjQ2LCAxMTgsIDIyMiwgMjQ3LCAyNTQsIDEwOSwgNTIsIDIyNiwgMjQ4LCAyNDAsIDE2OCwgMjM1LCAxOTMsIAotICAgIDIzNSwgMjAxLCAyMjYsIDU5LCAyNTEsIDE1NCwgMjQwLCAxNjksIDIsIDI0OCwgMSwgMjE2LCA4OSwgMiwgMjIyLCAyMzQsIAotICAgIDQ4LCA0MywgMTIxLCAyMjYsIDUsIDEyNywgNDQsIDEyMSwgMjI2LCA1LCAxMjcsIDIxNiwgODksIDIsIDU5LCA0OCwgMjE2LCAKLSAgICA4OSwgMiwgNTksIDUxLCA0MywgNjcsIDI1MiwgMTQxLCAyLCAyMjQsIDcsIDQ0LCA2NywgMjUyLCAxNDEsIDIsIDIyNCwgNywgCi0gICAgMjE2LCAxNCwgNDMsIDE2MywgMTI3LCAyMTYsIDE0LCA0NCwgMTYzLCAxMjcsIDI1MSwgMTc1LCA0MywgMTYzLCAxMjcsIAotICAgIDI1MSwgMTc1LCA0NCwgMTYzLCAxMjcsIDQzLCAyMTksIDE4NywgMTA0LCAxMjcsIDQ0LCAyMTksIDE4NywgMTA0LCAxMjcsIAotICAgIDQzLCA1MiwgMjI2LCAzLCA0NCwgNTIsIDIyNiwgMywgMTEzLCAxNzAsIDExNywgMTIzLCA1OSwgMjI0LCAxNDAsIDEyMywgCi0gICAgNTksIDExNywgMTEzLCAxNzAsIDIyNCwgMTQwLCA5MiwgMjQ0LCAxMSwgNTksIDIyNCwgMTQwLCAyNDQsIDgxLCA1OSwgNzgsIAotICAgIDIyMywgNDksIDIyNCwgMTMsIDc4LCA2NywgMTgyLCAyMjIsIDIzNCwgMjI1LCAxMCwgMjExLCAyMDksIDIyMCwgMTM4LCAKLSAgICAyMzAsIDIyNCwgMjQ3LCAxMjAsIDIxNSwgOTQsIDI0OSwgMjE5LCAyMjMsIDE1NywgMjQ3LCAxMjAsIDIyMywgMTU3LCAyNDksIAotICAgIDIxOSwgMjE1LCA5NCwgMjIwLCAxNTAsIDI0OCwgMjA2LCAyLCA0MywgMjQyLCAxMDgsIDI0OCwgMjA2LCAyLCA0NCwgMjQyLCAKLSAgICAxMDgsIDIxNSwgOTQsIDI0OCwgMjA1LCAyMTYsIDE0LCAxNjMsIDIyMSwgMTczLCA1MCwgMjE1LCA1OSwgMjQ4LCAxNTYsIAotICAgIDIxNiwgMTQzLCAyNDgsIDE1NiwgOSwgMzQsIDIyMywgNzYsIDksIDM0LCAyNTAsIDEwLCA5LCAzNCwgMjIxLCAxNzYsIDExMCwgCi0gICAgOSwgMzQsIDIyMSwgMTc2LCAxMDUsIDksIDM0LCAyMjEsIDE3NiwgMTU4LCA5LCAzNCwgMjI1LCAxNjcsIDksIDM0LCAyNTEsIAotICAgIDE2MywgOSwgMzQsIDIxNywgOTIsIDksIDM0LCAyMzQsIDMzLCAxMTAsIDksIDM0LCAyMzQsIDMzLCAxMDUsIDksIDM0LCAKLSAgICAyNDcsIDE3MCwgOSwgMzQsIDIyMSwgMTc5LCA5LCAzNCwgNCwgMTEwLCA5LCAzNCwgNCwgMTA1LCA5LCAzNCwgMjMzLCA5NywgCi0gICAgMTEwLCA5LCAzNCwgMjMzLCA5NywgMTA1LCA5LCAzNCwgMjMzLCA5NywgMTU4LCA5LCAzNCwgMjMzLCA5NywgMTYxLCA5LCAKLSAgICAzNCwgMjE5LCA2OCwgOSwgMzQsIDIxNiwgMTQ1LCA5LCAzNCwgMjE5LCA2NiwgMTEwLCA5LCAzNCwgMjE5LCA2NiwgMTA1LCAKLSAgICA5LCAzNCwgMjQxLCAyMjgsIDExMCwgOSwgMzQsIDI0MSwgMjI4LCAxMDUsIDksIDM0LCAyNDIsIDE1LCA5LCAzNCwgMjIzLCAKLSAgICAxNDcsIDksIDM0LCAyNTAsIDgyLCA5LCAzNCwgMjE4LCAzNywgOSwgMzQsIDIzMCwgMTI4LCA5LCAzNCwgMjQ4LCA4OCwgOSwgCi0gICAgMzQsIDIzMCwgMTIwLCA5LCAzNCwgMjUwLCAyNSwgOSwgMzQsIDIxMiwgNDEsIDExMCwgOSwgMzQsIDIxMiwgNDEsIDEwNSwgCi0gICAgOSwgMzQsIDI0NCwgOTYsIDksIDM0LCAyMjUsIDIzMiwgMTEwLCA5LCAzNCwgMjI1LCAyMzIsIDEwNSwgOSwgMzQsIDIxOSwgCi0gICAgMTYwLCAxNjMsIDIxNSwgMjM2LCAyMTUsIDE4OCwgOSwgMzQsIDI0OSwgMTQ1LCA5LCAzNCwgMjQ3LCAxMzYsIDksIDM0LCAKLSAgICAyMzUsIDEzNywgOSwgMzQsIDI1MSwgMTk4LCA2NCwgMjQ5LCAyNTAsIDksIDM0LCAyNDUsIDE1LCA5LCAzNCwgMjE4LCAyNDksIAotICAgIDExMCwgOSwgMzQsIDIxOCwgMjQ5LCAxMDUsIDksIDM0LCAyNTIsIDE1NCwgOSwgMzQsIDIxOSwgMTY3LCA5LCAzNCwgMjUxLCAKLSAgICA2MywgMjE5LCAxNjcsIDksIDM0LCAyMjksIDkwLCAxMTAsIDksIDM0LCAyMjksIDkwLCAxMDUsIDksIDM0LCAyMjksIDkwLCAKLSAgICAxNTgsIDksIDM0LCAyMjksIDkwLCAxNjEsIDksIDM0LCAyMzEsIDQ2LCA5LCAzNCwgMjIwLCA1NywgOSwgMzQsIDIyMywgCi0gICAgMTUzLCA5LCAzNCwgMjQ1LCAzNywgOSwgMzQsIDIyNiwgMjA5LCA5LCAzNCwgMjUxLCAxMzMsIDExMCwgOSwgMzQsIDI1MSwgCi0gICAgMTMzLCAxMDUsIDksIDM0LCAyMzEsIDg2LCA5LCAzNCwgMjMwLCAxMjMsIDksIDM0LCAyNDIsIDE0MCwgMTEwLCA5LCAzNCwgCi0gICAgMjQyLCAxNDAsIDEwNSwgOSwgMzQsIDI0MiwgMTQwLCAxNTgsIDksIDM0LCAyMTYsIDEwNiwgOSwgMzQsIDI0OSwgMjQ5LCA5LCAKLSAgICAzNCwgMjEyLCA5LCAxMTAsIDksIDM0LCAyMTIsIDksIDEwNSwgOSwgMzQsIDI1MSwgNjMsIDIyMSwgMTcwLCA5LCAzNCwgCi0gICAgMjE5LCAxNjAsIDI0MCwgMjQ4LCA5LCAzNCwgMjQwLCAyNDgsIDksIDM0LCAyNTEsIDYzLCAyMTksIDIsIDksIDM0LCAyNTEsIAotICAgIDYzLCAyMjAsIDUyLCA5LCAzNCwgMjQ0LCAzMiwgOSwgMzQsIDI1MSwgNjMsIDI1MCwgMjI4LCA5LCAzNCwgMjE5LCAxNjAsIAotICAgIDIxMiwgNTcsIDksIDM0LCAyMTIsIDU4LCAxMTAsIDksIDM0LCAyMTIsIDU4LCAxMDUsIDksIDM0LCAyNTAsIDI3LCA5LCAzNCwgCi0gICAgMjUxLCA2MywgMjQyLCAxNjYsIDksIDM0LCAxOTksIDExMCwgOSwgMzQsIDE5OSwgMTA1LCA5LCAzNCwgMjUxLCA2MywgMjMyLCAKLSAgICAxMzcsIDksIDM0LCAyNTEsIDYzLCAyNDMsIDg4LCA5LCAzNCwgMjMwLCAxMTksIDExMCwgOSwgMzQsIDIzMCwgMTE5LCAxMDUsIAotICAgIDksIDM0LCAyMjMsIDE1OSwgOSwgMzQsIDI1MSwgMjA3LCA5LCAzNCwgMjUxLCA2MywgMjE3LCA1NiwgMjMzLCA1MiwgOSwgCi0gICAgMzQsIDI1MSwgNjMsIDIzMywgNTMsIDksIDM0LCAyNTEsIDYzLCAyMTEsIDIzOSwgOSwgMzQsIDI1MSwgNjMsIDI0NCwgNDYsIAotICAgIDksIDM0LCAyNDUsIDIxOCwgMTEwLCA5LCAzNCwgMjQ1LCAyMTgsIDEwNSwgOSwgMzQsIDI0NSwgMjE4LCAxNTgsIDksIDM0LCAKLSAgICAyNTEsIDYzLCAyNDUsIDIxNywgOSwgMzQsIDI0MSwgMjM1LCA5LCAzNCwgMjUxLCA2MywgMjQwLCAyNDUsIDksIDM0LCAyNTEsIAotICAgIDE5NCwgOSwgMzQsIDI0MiwgMjIyLCA5LCAzNCwgMjUxLCA2MywgMjQ0LCA5MCwgOSwgMzQsIDI1MSwgNjMsIDI1MSwgMjM3LCAKLSAgICA5LCAzNCwgMjUxLCA2MywgMjIyLCAxLCA5LCAzNCwgMjE5LCAxNjAsIDIxMiwgMiwgOSwgMzQsIDIxOSwgMTYwLCAyMTEsIAotICAgIDQxLCA5LCAzNCwgMjUxLCA2MywgMjQzLCAyNDQsIDksIDM0LCAyMzUsIDE0MywgMjQ1LCA0MSwgOSwgMzQsIDI1MSwgNjMsIAotICAgIDI0NSwgNDEsIDksIDM0LCAyMzUsIDE0MywgMjE2LCAxNSwgOSwgMzQsIDI1MSwgNjMsIDIxNiwgMTUsIDksIDM0LCAyMzUsIAotICAgIDE0MywgMjQ2LCA5NiwgOSwgMzQsIDI1MSwgNjMsIDI0NiwgOTYsIDksIDM0LCAyMTUsIDkxLCA5LCAzNCwgMjM1LCAxNDMsIAotICAgIDIxNSwgOTEsIDksIDM0LCAyNTEsIDYzLCAyMTUsIDkxLCA2MCwgMzQsIDExMCwgNjAsIDM0LCAyMzIsIDIxMywgNjAsIDM0LCAKLSAgICAyNDcsIDEyMCwgNjAsIDM0LCAyMTksIDk1LCA2MCwgMzQsIDIyMSwgMTc1LCA2MCwgMzQsIDEwMywgNjAsIDM0LCAxMDUsIAotICAgIDYwLCAzNCwgMjMyLCAyMzcsIDYwLCAzNCwgMjMxLCAxODUsIDYwLCAzNCwgMjMzLCAzMywgNjAsIDM0LCAyNDUsIDEyOSwgCi0gICAgNjAsIDM0LCAxOTUsIDYwLCAzNCwgMTI0LCAyNTEsIDE2MywgNjAsIDM0LCAyNDksIDE0NywgNjAsIDM0LCAyNDAsIDExMSwgCi0gICAgNjAsIDM0LCAyMTcsIDkyLCA2MCwgMzQsIDIwNCwgMjUxLCAxNjMsIDYwLCAzNCwgMjM0LCAzMiwgNjAsIDM0LCAyMjQsIAotICAgIDIyNCwgNjAsIDM0LCAyMTEsIDIwMiwgNjAsIDM0LCAyMTgsIDI0MywgNjAsIDM0LCA0NCwgMjA0LCAyNTEsIDE2MywgNjAsIAotICAgIDM0LCAyNDEsIDE3NiwgMjQ1LCAxNDUsIDYwLCAzNCwgMjE2LCAyNDcsIDYwLCAzNCwgMjQ3LCAxNzAsIDYwLCAzNCwgMjIxLCAKLSAgICAxNzksIDYwLCAzNCwgMjUwLCAxMCwgNjAsIDM0LCAyMjQsIDE4MiwgNjAsIDM0LCAyNTQsIDIxNSwgNjAsIDM0LCAyMzAsIAotICAgIDExMCwgNjAsIDM0LCAyNDUsIDE0NSwgNjAsIDM0LCAyNDUsIDIyMywgNjAsIDM0LCAyMjEsIDIwMCwgNjAsIDM0LCAyNDIsIAotICAgIDE3NCwgNjAsIDM0LCAyNDIsIDE3NSwgMjE5LCA4MSwgNjAsIDM0LCAyNDUsIDQwLCA2MCwgMzQsIDI1MSwgMjQ4LCA2MCwgCi0gICAgMzQsIDIxMSwgMjIxLCA2MCwgMzQsIDI1MCwgMTAxLCA2MCwgMzQsIDIyMiwgMTk2LCA2MCwgMzQsIDIzNSwgMjUxLCA2MCwgCi0gICAgMzQsIDIxOSwgNzksIDYwLCAzNCwgMjMzLCA5NiwgNjAsIDM0LCAyNDksIDE1NiwgNjAsIDM0LCAyMTgsIDIzNywgNjAsIDM0LCAKLSAgICAyMzAsIDExNSwgNjAsIDM0LCAyMjIsIDIyNCwgNjAsIDM0LCAyMTEsIDIwNiwgNjAsIDM0LCAyMjYsIDE5MCwgNjAsIDM0LCAKLSAgICAyMTUsIDk3LCA2MCwgMzQsIDI0NiwgODAsIDYwLCAzNCwgMjE5LCAyNTEsIDIxNiwgMTQ1LCA2MCwgMzQsIDI0NiwgMTE4LCAKLSAgICAyNTAsIDEwLCA2MCwgMzQsIDE5OSwgMjE4LCAxMDgsIDYwLCAzNCwgMTEzLCAyNDIsIDEwLCA2MCwgMzQsIDIyMCwgMCwgNjAsIAotICAgIDM0LCAyNTEsIDE2OSwgNjAsIDM0LCAyMTksIDY1LCA2MCwgMzQsIDI1MSwgMTM3LCA2MCwgMzQsIDIxOCwgMTM4LCA2MCwgCi0gICAgMzQsIDI0MSwgMjI3LCA2MCwgMzQsIDI0MiwgMjgsIDYwLCAzNCwgMjQ3LCAxMjMsIDYwLCAzNCwgMjQyLCAxNSwgNjAsIDM0LCAKLSAgICAyNTEsIDE1NCwgNjAsIDM0LCAyMjMsIDE0NywgNjAsIDM0LCAyMjEsIDE4NywgNjAsIDM0LCAyNDcsIDE5OSwgNjAsIDM0LCAKLSAgICAyNTMsIDE2OCwgNjAsIDM0LCAyMTgsIDIzNCwgNjAsIDM0LCAyMjgsIDUxLCA2MCwgMzQsIDIxOCwgMzcsIDYwLCAzNCwgCi0gICAgMjIxLCAyMTEsIDYwLCAzNCwgMjMwLCAxMjgsIDYwLCAzNCwgMjE1LCAyMzUsIDYwLCAzNCwgMjMzLCAxMjIsIDYwLCAzNCwgCi0gICAgMjE4LCAxMjksIDYwLCAzNCwgMjQ4LCA4OCwgNjAsIDM0LCAyMTIsIDIxLCA2MCwgMzQsIDI0NywgMTQ2LCAyMjgsIDUxLCAKLSAgICA2MCwgMzQsIDI0OSwgMjE1LCA2MCwgMzQsIDI0MywgMjIyLCA2MCwgMzQsIDI1MCwgMjEsIDYwLCAzNCwgMjE4LCAxNDIsIAotICAgIDYwLCAzNCwgMjEyLCA0MCwgNjAsIDM0LCAyNDQsIDk2LCA2MCwgMzQsIDI1MCwgMTgsIDYwLCAzNCwgMjQ0LCAxNjEsIDYwLCAKLSAgICAzNCwgNTIsIDIxMSwgMTc4LCA2MCwgMzQsIDE2MywgMjE1LCAyMzYsIDIxNSwgMTg4LCA2MCwgMzQsIDIxOSwgODksIDYwLCAKLSAgICAzNCwgMjQ0LCAxNzEsIDYwLCAzNCwgMjQ5LCAxNDUsIDYwLCAzNCwgMjQ3LCAxMzYsIDYwLCAzNCwgMjI0LCAxNzksIDYwLCAKLSAgICAzNCwgMjM1LCAxMzcsIDYwLCAzNCwgMjMxLCA2NywgNjAsIDM0LCAyMTYsIDg4LCA2MCwgMzQsIDIxNywgMjQ1LCA2MCwgMzQsIAotICAgIDIzMiwgMjMxLCA2MCwgMzQsIDIxNCwgMTMxLCA2MCwgMzQsIDI0NCwgMTIwLCA2MCwgMzQsIDI1MSwgMTk4LCA2NCwgMjQ5LCAKLSAgICAyNTAsIDYwLCAzNCwgMjE5LCAxODgsIDYwLCAzNCwgMjQ2LCAxMTgsIDIxNiwgMjQyLCA2MCwgMzQsIDIxMSwgMjUzLCA2MCwgCi0gICAgMzQsIDIxOSwgMTAzLCA2MCwgMzQsIDI0NywgMTg3LCA2MCwgMzQsIDI0NSwgMTUsIDYwLCAzNCwgMjE5LCA1LCA2MCwgMzQsIAotICAgIDc0LCA2MCwgMzQsIDIxOCwgMTMxLCA2MCwgMzQsIDIxOCwgMjQ4LCA2MCwgMzQsIDIxNSwgMjU1LCA2MCwgMzQsIDI0MiwgCi0gICAgMTQ3LCA2MCwgMzQsIDI1MCwgMjE4LCA2MCwgMzQsIDIxOCwgMTYwLCA2MCwgMzQsIDI1MiwgMTU0LCA2MCwgMzQsIDIyMywgCi0gICAgMzEsIDYwLCAzNCwgMjE5LCAxNjcsIDYwLCAzNCwgMjM1LCAxMzAsIDYwLCAzNCwgMjI5LCA4OSwgNjAsIDM0LCAyMjAsIDU3LCAKLSAgICA2MCwgMzQsIDI0NCwgMTQ5LCA2MCwgMzQsIDIyNiwgMjA5LCA2MCwgMzQsIDI1NCwgMTE4LCA2MCwgMzQsIDIyNSwgMjksIAotICAgIDYwLCAzNCwgMjQ1LCAyMjcsIDYwLCAzNCwgMjUxLCAxMzIsIDYwLCAzNCwgMjMxLCA4NiwgNjAsIDM0LCAyMzAsIDE4MywgCi0gICAgNjAsIDM0LCAyMjAsIDE1NiwgNjAsIDM0LCAyNTMsIDI1MiwgNjAsIDM0LCAyMzAsIDEyMywgNjAsIDM0LCAyMTYsIDE5LCAKLSAgICA2MCwgMzQsIDIyNiwgMTY1LCA2MCwgMzQsIDI1MSwgMjAxLCA2MCwgMzQsIDIxOCwgMTI3LCA2MCwgMzQsIDI0OSwgMjI1LCAKLSAgICA2MCwgMzQsIDI0MiwgMTM5LCA2MCwgMzQsIDIxNiwgMTA2LCA2MCwgMzQsIDIzNSwgMjE3LCA2MCwgMzQsIDI1MSwgMjExLCAKLSAgICA2MCwgMzQsIDIxMiwgNTgsIDI0NSwgMTQ1LCA2MCwgMzQsIDI0OSwgMjQ5LCA2MCwgMzQsIDIxMiwgOCwgNjAsIDM0LCAyMjEsIAotICAgIDE3MCwgNjAsIDM0LCAyNDAsIDI0OCwgNjAsIDM0LCAyMTksIDIsIDYwLCAzNCwgMjE0LCAyMiwgNjAsIDM0LCAyNTIsIDcyLCAKLSAgICA2MCwgMzQsIDIyNSwgNzMsIDYwLCAzNCwgMjUyLCAxNzQsIDYwLCAzNCwgMjIwLCA1MiwgNjAsIDM0LCAyMjMsIDExMCwgNjAsIAotICAgIDM0LCAyMjIsIDEyNiwgNjAsIDM0LCAyNDQsIDMyLCA2MCwgMzQsIDI1MSwgMjAwLCA2MCwgMzQsIDI1MCwgMjI4LCA2MCwgCi0gICAgMzQsIDI1MSwgMjI2LCA2MCwgMzQsIDIzMCwgMTI1LCA2MCwgMzQsIDIxMiwgNTcsIDYwLCAzNCwgMjUwLCAyNywgNjAsIDM0LCAKLSAgICAyMTEsIDIzNiwgNjAsIDM0LCAyNDcsIDE4MCwgNjAsIDM0LCAyMTMsIDE2MSwgNjAsIDM0LCAyNDIsIDE2NiwgNjAsIDM0LCAKLSAgICAyMzIsIDEzNywgNjAsIDM0LCAyNDMsIDg4LCA2MCwgMzQsIDIzMCwgMTE4LCA2MCwgMzQsIDIxOSwgOTQsIDYwLCAzNCwgCi0gICAgMjE5LCAyNTEsIDIxNywgNzYsIDI1MSwgMjM3LCA2MCwgMzQsIDIyMywgMTU5LCA2MCwgMzQsIDI1MSwgMjA3LCA2MCwgMzQsIAotICAgIDIxMSwgMTk3LCA2MCwgMzQsIDI0NCwgMTkwLCA2MCwgMzQsIDIzMywgNTIsIDYwLCAzNCwgMjE3LCA1NiwgMjMzLCA1MiwgCi0gICAgNjAsIDM0LCAyMzMsIDQ4LCA2MCwgMzQsIDIxOSwgMzAsIDYwLCAzNCwgMjMzLCA1MywgNjAsIDM0LCAyMTEsIDIzOSwgNjAsIAotICAgIDM0LCAyNDQsIDQ2LCA2MCwgMzQsIDI0NSwgMjE3LCA2MCwgMzQsIDI0MSwgMjM1LCA2MCwgMzQsIDI0NCwgMCwgNjAsIDM0LCAKLSAgICAyNDAsIDI0NSwgNjAsIDM0LCAyNTEsIDE5NCwgNjAsIDM0LCAyMTcsIDYzLCA2MCwgMzQsIDI0MiwgMzQsIDYwLCAzNCwgCi0gICAgMjQ0LCAxMTMsIDYwLCAzNCwgMjIyLCAyOCwgMjExLCAyMzYsIDYwLCAzNCwgMjUwLCAyMjAsIDYwLCAzNCwgMjQyLCAyMjIsIAotICAgIDYwLCAzNCwgMjQ0LCA5MCwgNjAsIDM0LCAyNTEsIDIzNywgNjAsIDM0LCAyMjIsIDEsIDYwLCAzNCwgMjQ4LCA3NCwgNjAsIAotICAgIDM0LCAyMTIsIDIsIDYwLCAzNCwgMjQxLCAyMTAsIDYwLCAzNCwgMjExLCA0MSwgNjAsIDM0LCAyMzAsIDE5MiwgNjAsIDM0LCAKLSAgICAyNTEsIDIyMSwgNjAsIDM0LCAyNDUsIDE1NSwgNjAsIDM0LCAyNDMsIDI0NCwgNjAsIDM0LCAyMTUsIDIwOSwgNjAsIDM0LCAKLSAgICAyNDYsIDgyLCA2MCwgMzQsIDIyMywgMTQxLCA2MCwgMzQsIDIyOCwgNTMsIDYwLCAzNCwgMjQ1LCA0MSwgNjAsIDM0LCAyMTYsIAotICAgIDE1LCA2MCwgMzQsIDI0NiwgOTYsIDYwLCAzNCwgMjE1LCA5MSwgNjAsIDM0LCAyNDQsIDQ4LCAxMDksIDI0OCwgMzcsIDEzNSwgCi0gICAgNDMsIDIxNiwgNDIsIDIyMiwgMjUxLCAxMDksIDI0OCwgMzcsIDEzNSwgNzcsIDIxNiwgNDIsIDUxLCAxMDksIDI0OCwgMzcsIAotICAgIDEzNSwgNDMsIDIxNiwgNDIsIDIzMCwgMjI0LCAyMiwgMjIyLCAyNTEsIDEwOSwgMjQ4LCAzNywgMTM1LCA3NywgMjE2LCA0MiwgCi0gICAgMjMwLCAyMjQsIDIyLCA1MSwgMTA5LCAyNDgsIDM3LCAxMzUsIDI0MywgMjI5LCAyMTgsIDEwLCAxMDksIDI0OCwgMzcsIAotICAgIDEzNSwgMjE4LCAxMSwgMjQzLCAyNDMsIDQ4LCAxMDksIDI0OCwgMzcsIDEzNSwgMjE4LCAxMSwgMjQzLCAyNDMsIDUxLCAKLSAgICAxMDksIDI0OCwgMzcsIDEzNSwgMjE4LCAxMSwgMjQzLCAyNDMsIDIzMywgNDYsIDEwOSwgMjQ4LCAzNywgMTM1LCAyMTgsIAotICAgIDExLCAyNDMsIDI0MywgMjE0LCAxNjAsIDIzMywgNDYsIDEwOSwgMjQ4LCAzNywgMTM1LCAyMTgsIDExLCAyNDMsIDI0MywgCi0gICAgMjE0LCAxNjAsIDIyMiwgMjUxLCAxMDksIDI0OCwgMzcsIDEzNSwgMjE4LCAxMSwgMjQzLCAyNDMsIDIzMiwgMTA4LCAyMzMsIAotICAgIDQ2LCAxMDksIDI0OCwgMzcsIDEzNSwgMjI2LCAxMjIsIDEwOSwgMjE5LCAxOCwgMTA5LCAyNDksIDIxOSwgMTA5LCAyNDMsIAotICAgIDIyOSwgMjE4LCAxMjksIDI0NywgMTc3LCA3OCwgMjM1LCAxMzEsIDIzNSwgMjM2LCAyMTgsIDE1OSwgODcsIDEwOSwgMjM1LCAKLSAgICAxNTgsIDc4LCAxMDksIDI0OSwgMjUyLCA3OCwgMTA5LCA1NCwgMjEwLCA4NiwgNDMsIDI1NCwgMTEwLCAxMjcsIDQ0LCAyNTQsIAotICAgIDExMCwgMTI3LCA0MywgNTIsIDI1NCwgMTEwLCAxMjcsIDQ0LCA1MiwgMjU0LCAxMTAsIDEyNywgNDMsIDI0OSwgMTYxLCAKLSAgICAxMjcsIDQ0LCAyNDksIDE2MSwgMTI3LCA0MywgNzEsIDI0OSwgMTYxLCAxMjcsIDQ0LCA3MSwgMjQ5LCAxNjEsIDEyNywgNDMsIAotICAgIDg1LCAyMzMsIDIwLCAxMjcsIDQ0LCA4NSwgMjMzLCAyMCwgMTI3LCAyMjQsIDIzNywgNzgsIDI0MywgMzIsIDc4LCA0MywgCi0gICAgMjE2LCA2LCAyMjAsIDUzLCAxMjcsIDQ0LCAyMTYsIDYsIDIyMCwgNTMsIDEyNywgNDMsIDcxLCAyMzMsIDIwLCAxMjcsIDQ0LCAKLSAgICA3MSwgMjMzLCAyMCwgMTI3LCA0MywgNzEsIDIxNiwgNiwgMjIwLCA1MywgMTI3LCA0NCwgNzEsIDIxNiwgNiwgMjIwLCA1MywgCi0gICAgMTI3LCA0MywgNzEsIDQyLCAxMjcsIDQ0LCA3MSwgNDIsIDEyNywgMjEyLCAzNiwgMjQ4LCAxNTYsIDIyMywgNDksIDUyLCAKLSAgICAyMjQsIDE5MSwgMjIzLCAyNTQsIDc4LCA1MiwgMjI0LCAxOTEsIDIyMywgMjU0LCA3OCwgMTIxLCA1MiwgMjI0LCAxOTEsIAotICAgIDIyMywgMjU0LCA3OCwgMjI0LCAyMzcsIDE2NCwgMjQ0LCAxOTAsIDI0MiwgOCwgMjI3LCAxOTgsIDExMCwgMjQyLCA4LCAKLSAgICAyMjcsIDE5OCwgMTA1LCAyNDIsIDgsIDIyNywgMTk4LCAxNTgsIDI0MiwgOCwgMjI3LCAxOTgsIDE2MSwgMjQyLCA4LCAyMjcsIAotICAgIDE5OCwgMTg5LCAyNDIsIDgsIDIyNywgMTk4LCAxOTQsIDI0MiwgOCwgMjI3LCAxOTgsIDE5OCwgMjQyLCA4LCAyMjcsIDE5OCwgCi0gICAgMTk1LCAyNDIsIDgsIDIyNywgMTk4LCAyMDAsIDEwOSwgMjMzLCAzLCAxMzgsIDc4LCAxMDksIDIyMiwgMjI4LCAxMzgsIDc4LCAKLSAgICAxMDksIDI0OCwgNDQsIDEzOCwgNzgsIDEwOSwgMjQ1LCAxMjgsIDEzOCwgNzgsIDI0LCAyMTksIDE1NSwgNTksIDEzOCwgNzgsIAotICAgIDI0LCA1MiwgNTksIDEzOCwgNzgsIDIxMiwgMzIsIDI0OCwgMTU2LCA2NywgMjM0LCAyMzMsIDIyMywgNzcsIDc4LCA2NywgCi0gICAgMjM0LCAyMzMsIDIyMywgNzcsIDIsIDIxMywgMTM1LCAyMTksIDMxLCA3OCwgNjcsIDIzNCwgMjMzLCAyMjMsIDc3LCAxNjQsIAotICAgIDIxNCwgMTYwLCAyNDIsIDI3LCA2NywgMjM0LCAyMzMsIDIyMywgNzcsIDIsIDIxMywgMTM1LCAyMTksIDMxLCAxNjQsIDIxNCwgCi0gICAgMTYwLCAyNDIsIDI3LCA2NywgMjM0LCAyMzMsIDIyMywgNzcsIDE2NCwgMjMyLCAxMDgsIDI0MiwgMjcsIDM3LCAyMjQsIAotICAgIDIzNywgNzgsIDEwOSwgMjE3LCAzLCAyMzIsIDIxNCwgMjQ0LCAxNDYsIDIyMCwgMTM4LCA4NywgMjQyLCA4LCAyMjcsIDE5OCwgCi0gICAgMjE2LCAyNDcsIDI0MiwgOCwgMjI3LCAxOTgsIDIxNSwgNzMsIDI0MiwgOCwgMjI3LCAxOTgsIDIxNiwgMTYyLCA2NywgMTA5LCAKLSAgICAyMzUsIDE1OCwgNzgsIDIzMSwgMTQwLCA3OCwgMjI1LCAyNTUsIDI1NCwgMTQwLCA3OCwgMTA5LCA0NSwgMjM1LCAyMzgsIAotICAgIDEwOSwgMTYzLCAyNDQsIDEwNiwgMjE5LCAxOCwgMTQxLCAxLCA0LCA2MSwgMTQxLCAxLCA2MSwgMTQxLCAxLCA0LCA3MywgCi0gICAgMTQxLCAxLCA3MywgMTQxLCAxLCA0LCA3MCwgMTQxLCAxLCA3MCwgMTQxLCAxLCA0LCA3NSwgMTQxLCAxLCA3NSwgMTQxLCAxLCAKLSAgICA0LCA3NiwgMTQxLCAxLCA3NiwgMTQxLCAxLCAxNzYsIDE0MSwgMSwgMjQzLCAxMzUsIDE0MSwgMSwgMjM0LCA5MiwgMTQxLCAKLSAgICAxLCAyNDIsIDIxNCwgMTQxLCAxLCAyMzMsIDIxNywgMTQxLCAxLCAyNDIsIDExMywgMTQxLCAxLCAyMzQsIDE4MiwgMTQxLCAKLSAgICAxLCAyNDMsIDYyLCAxNDEsIDEsIDIzNCwgMjgsIDE0MSwgMSwgMjQyLCAxNzQsIDE0MSwgMSwgMjA2LCAxNDEsIDEsIDIxMCwgCi0gICAgMTE2LCAxNDEsIDEsIDIxOSwgMTkxLCAxNDEsIDEsIDIxMCwgNDQsIDE0MSwgMSwgMjE4LCA4MywgMTQxLCAxLCAyMTAsIDEzLCAKLSAgICAxNDEsIDEsIDIyMSwgMTgxLCAxNDEsIDEsIDIxMCwgOTQsIDE0MSwgMSwgMjE5LCA1OCwgMTQxLCAxLCAyMTAsIDIzLCAxNDEsIAotICAgIDEsIDIxNywgMTA1LCAxNDEsIDEsIDI0OCwgMjIxLCAxNDEsIDEsIDIxNiwgMTE3LCAxNDEsIDEsIDI0OCwgMywgMTQxLCAxLCAKLSAgICA0LCAyMTUsIDExOCwgMTQxLCAxLCAyMTUsIDExOCwgMTQxLCAxLCAyNDYsIDc4LCAxNDEsIDEsIDIxNywgMjIsIDE0MSwgMSwgCi0gICAgMjQ4LCA5MCwgMTQxLCAxLCAxMTEsIDE0MSwgMSwgMjQ3LCAxNDUsIDE0MSwgMSwgMTk3LCAxNDEsIDEsIDIyOCwgMjMzLCAKLSAgICAxNDEsIDEsIDIyNywgMjM3LCAxNDEsIDEsIDIyOSwgMTA3LCAxNDEsIDEsIDIyOCwgNzQsIDE0MSwgMSwgMTYyLCAxNDEsIDEsIAotICAgIDI1MiwgMTkxLCAxNDEsIDEsIDE5MCwgMTQxLCAxLCAyNDEsIDE4MCwgMTQxLCAxLCAyNTIsIDYsIDE0MSwgMSwgMjI1LCAKLSAgICAxMDgsIDE0MSwgMSwgMjQwLCAyMjIsIDE0MSwgMSwgMjUxLCAxMjUsIDE0MSwgMSwgMjI0LCAxNTAsIDE0MSwgMSwgMjQxLCAKLSAgICAyMzgsIDE0MSwgMSwgMjUyLCA3NSwgMTQxLCAxLCAyMjUsIDIyMSwgMTQxLCAxLCAyNDEsIDY4LCAxNDEsIDEsIDI1MSwgCi0gICAgMjA1LCAxNDEsIDEsIDIyNSwgMTYsIDE0MSwgMSwgMTg0LCAxNDEsIDEsIDIzMCwgMjMwLCAxNDEsIDEsIDIzMCwgMTAyLCAKLSAgICAxNDEsIDEsIDIzMSwgOTEsIDE0MSwgMSwgMjMwLCAxNjEsIDE0MSwgMSwgNCwgMTkxLCAxNDEsIDEsIDE5MSwgMTQxLCAxLCAKLSAgICA0LCAyMTAsIDIxMiwgMTQxLCAxLCAyMTAsIDIxMiwgMTQxLCAxLCA0LCAyMTAsIDI0NCwgMTQxLCAxLCAyMTAsIDI0NCwgCi0gICAgMTQxLCAxLCAyMDUsIDE0MSwgMSwgMjIzLCAzNSwgMTQxLCAxLCAyMjIsIDE0MCwgMTQxLCAxLCAyMjMsIDEyOCwgMTQxLCAxLCAKLSAgICAyMjIsIDIxMSwgMTQxLCAxLCA0LCAyMTIsIDY1LCAxNDEsIDEsIDIxMiwgNjUsIDE0MSwgMSwgMjExLCAyNTAsIDE0MSwgMSwgCi0gICAgMjEyLCAyMiwgMTQxLCAxLCAyMTEsIDIyNywgMTQxLCAxLCAyMzAsIDI1LCAxNDEsIDEsIDIxMiwgMTE2LCAxNDEsIDEsIDQsIAotICAgIDE3NiwgMTQxLCAxLCA0LCAyMzQsIDE4MiwgMzgsIDIzNCwgMjAxLCAyMTMsIDEzNSwgMjE5LCAzMSwgNzgsIDM4LCAyMzQsIAotICAgIDIwMSwgMjIwLCAxNTUsIDIxOSwgMzEsIDc4LCAyMzQsIDIwMSwgMjEzLCAxMzUsIDIxOSwgMzEsIDc4LCAyMzQsIDIwMSwgCi0gICAgMjIwLCAxNTUsIDIxOSwgMzEsIDc4LCAxNDEsIDIzNSwgMTU4LCA3OCwgMTQxLCAyMTMsIDEzNSwgMjM1LCAxNTgsIDc4LCAKLSAgICAxNDEsIDI0NywgMjIxLCAyMTAsIDIyNSwgMjM0LCAyMDEsIDUyLCAyNDAsIDE2OCwgNTYsIDEsIDQsIDYxLCA1NiwgMSwgNjEsIAotICAgIDU2LCAxLCA0LCA3MywgNTYsIDEsIDczLCA1NiwgMSwgNCwgNzAsIDU2LCAxLCA3MCwgNTYsIDEsIDQsIDc1LCA1NiwgMSwgCi0gICAgNzUsIDU2LCAxLCA0LCA3NiwgNTYsIDEsIDc2LCA1NiwgMSwgMTc2LCA1NiwgMSwgMjQzLCAxMzUsIDU2LCAxLCAyMzQsIDkyLCAKLSAgICA1NiwgMSwgMjQyLCAyMTQsIDU2LCAxLCAyMzMsIDIxNywgNTYsIDEsIDI0MiwgMTEzLCA1NiwgMSwgMjM0LCAxODIsIDU2LCAKLSAgICAxLCAyNDMsIDYyLCA1NiwgMSwgMjM0LCAyOCwgNTYsIDEsIDI0MiwgMTc0LCA1NiwgMSwgMjA2LCA1NiwgMSwgMjEwLCAxMTYsIAotICAgIDU2LCAxLCAyMTksIDE5MSwgNTYsIDEsIDIxMCwgNDQsIDU2LCAxLCAyMTgsIDgzLCA1NiwgMSwgMjEwLCAxMywgNTYsIDEsIAotICAgIDIyMSwgMTgxLCA1NiwgMSwgMjEwLCA5NCwgNTYsIDEsIDIxOSwgNTgsIDU2LCAxLCAyMTAsIDIzLCA1NiwgMSwgMjE3LCAKLSAgICAxMDUsIDU2LCAxLCAyNDgsIDIyMSwgNTYsIDEsIDIxNiwgMTE3LCA1NiwgMSwgMjQ4LCAzLCA1NiwgMSwgNCwgMjE1LCAxMTgsIAotICAgIDU2LCAxLCAyMTUsIDExOCwgNTYsIDEsIDI0NiwgNzgsIDU2LCAxLCAyMTcsIDIyLCA1NiwgMSwgMjQ4LCA5MCwgNTYsIDEsIAotICAgIDExMSwgNTYsIDEsIDI0NywgMTQ1LCA1NiwgMSwgMTk3LCA1NiwgMSwgMjI4LCAyMzMsIDU2LCAxLCAyMjcsIDIzNywgNTYsIAotICAgIDEsIDIyOSwgMTA3LCA1NiwgMSwgMjI4LCA3NCwgNTYsIDEsIDE2MiwgNTYsIDEsIDI1MiwgMTkxLCA1NiwgMSwgMTkwLCA1NiwgCi0gICAgMSwgMjQxLCAxODAsIDU2LCAxLCAyNTIsIDYsIDU2LCAxLCAyMjUsIDEwOCwgNTYsIDEsIDI0MCwgMjIyLCA1NiwgMSwgMjUxLCAKLSAgICAxMjUsIDU2LCAxLCAyMjQsIDE1MCwgNTYsIDEsIDI0MSwgMjM4LCA1NiwgMSwgMjUyLCA3NSwgNTYsIDEsIDIyNSwgMjIxLCAKLSAgICA1NiwgMSwgMjQxLCA2OCwgNTYsIDEsIDI1MSwgMjA1LCA1NiwgMSwgMjI1LCAxNiwgNTYsIDEsIDE4NCwgNTYsIDEsIDIzMCwgCi0gICAgMjMwLCA1NiwgMSwgMjMwLCAxMDIsIDU2LCAxLCAyMzEsIDkxLCA1NiwgMSwgMjMwLCAxNjEsIDU2LCAxLCA0LCAxOTEsIDU2LCAKLSAgICAxLCAxOTEsIDU2LCAxLCA0LCAyMTAsIDIxMiwgNTYsIDEsIDIxMCwgMjEyLCA1NiwgMSwgNCwgMjEwLCAyNDQsIDU2LCAxLCAKLSAgICAyMTAsIDI0NCwgNTYsIDEsIDIwNSwgNTYsIDEsIDIyMywgMzUsIDU2LCAxLCAyMjIsIDE0MCwgNTYsIDEsIDIyMywgMTI4LCAKLSAgICA1NiwgMSwgMjIyLCAyMTEsIDU2LCAxLCA0LCAyMTIsIDY1LCA1NiwgMSwgMjEyLCA2NSwgNTYsIDEsIDIxMSwgMjUwLCA1NiwgCi0gICAgMSwgMjEyLCAyMiwgNTYsIDEsIDIxMSwgMjI3LCA1NiwgMSwgMjMwLCAyNSwgNTYsIDEsIDIxMiwgMTE2LCA1NiwgMSwgNCwgCi0gICAgMTc2LCA1NiwgMSwgNCwgMjM0LCAxODIsIDU2LCAxLCAyMTQsIDI3LCA1NiwgMSwgMjEzLCAxNzYsIDU2LCAxLCAyMTMsIAotICAgIDI1NSwgNTYsIDEsIDIxMywgMTM4LCA1NiwgMjMwLCAyMjQsIDI0NywgMTIwLCAyMzQsIDIwMSwgMjI0LCAxNzMsIDIxOSwgCi0gICAgMzEsIDc4LCA1NiwgMjM1LCAxNTgsIDc4LCA1NiwgMjEzLCAxMzUsIDIzNSwgMTU4LCA3OCwgNTYsIDI0NywgMjIxLCAyMzMsIAotICAgIDI1NSwgMjUxLCAxODQsIDEsIDI1MywgMTU4LCAyNTEsIDE4NCwgMSwgMjI2LCAxMDUsIDI1MSwgMTg0LCAxLCAxOTMsIDI1MSwgCi0gICAgMTg0LCAxLCAyNDUsIDYsIDI1MSwgMTg0LCAxLCAyNDksIDYwLCAyNTEsIDE4NCwgMSwgMjE3LCAxNTIsIDI1MSwgMTg0LCAxLCAKLSAgICAyMzAsIDI1LCAyNTEsIDE4NCwgMSwgMTU2LCAyNTEsIDE4NCwgMSwgMjQzLCAyMDIsIDI1MSwgMTg0LCAxLCAyMzUsIDIzLCAKLSAgICAyNTEsIDE4NCwgMSwgMjQyLCA2MCwgMjUxLCAxODQsIDEsIDIzNSwgMTQ0LCAyNTEsIDE4NCwgMSwgMjI0LCA5NiwgMjUxLCAKLSAgICAxODQsIDEsIDIxMSwgMTc4LCAyNTEsIDE4NCwgMSwgMjEwLCA4MywgMjUxLCAxODQsIDEsIDI1MCwgMTU4LCAyNTEsIDE4NCwgCi0gICAgMSwgMjIwLCAxMDQsIDI1MSwgMTg0LCAxLCAxNTMsIDI1MSwgMTg0LCAxLCAyMTAsIDE1OSwgMjUxLCAxODQsIDEsIDI1MSwgCi0gICAgNjYsIDI1MSwgMTg0LCAxLCAyMjIsIDkxLCAyNTEsIDE4NCwgMSwgNjEsIDI1MSwgMTg0LCAxLCA3NiwgMjUxLCAxODQsIDEsIAotICAgIDc1LCAyNTEsIDE4NCwgMSwgMjQ1LCAxOTcsIDI1MSwgMTg0LCAxLCAyNTQsIDIwMSwgMjUxLCAxODQsIDEsIDI0NSwgMTk1LCAKLSAgICAyNTEsIDE4NCwgMSwgMjUzLCAxOTIsIDI1MSwgMTg0LCAxLCAyMjYsIDEzNCwgMjUxLCAxODQsIDEsIDI1NCwgMTIzLCAyNTEsIAotICAgIDE4NCwgMSwgMjQ1LCAxNTAsIDI1MSwgMTg0LCAxLCAyNTQsIDExNSwgMjUxLCAxODQsIDEsIDI0NSwgMTM4LCAyNTEsIDE4NCwgCi0gICAgMSwgMjQ1LCA5MiwgMjUxLCAxODQsIDEsIDczLCAyNTEsIDE4NCwgMSwgNzAsIDI1MSwgMTg0LCAxLCAyMzUsIDE1NiwgMjUxLCAKLSAgICAxODQsIDEsIDIxNCwgMTA1LCAyNTEsIDE4NCwgMSwgMjI5LCA3OSwgMjUxLCAxODQsIDEsIDI0MiwgMTc4LCAyNTEsIDE4NCwgCi0gICAgMSwgMjM2LCAzNCwgMjQsIDEsIDIzNCwgNTgsIDI0LCAxLCAyMTgsIDIxNSwgMjQsIDEsIDIzNCwgNTEsIDI0LCAxLCAyMjgsIAotICAgIDIyNiwgMjQsIDEsIDIyOCwgMjI0LCAyNCwgMSwgMjI4LCAyMjMsIDI0LCAxLCAyMTYsIDEwMSwgMjQsIDEsIDIxOCwgMjA0LCAKLSAgICAyNCwgMSwgMjIzLCAyNiwgMjQsIDEsIDIyMywgMjEsIDI0LCAxLCAyMjMsIDE4LCAyNCwgMSwgMjIzLCAxMSwgMjQsIDEsIAotICAgIDIyMywgNiwgMjQsIDEsIDIyMywgMSwgMjQsIDEsIDIyMywgMTIsIDI0LCAxLCAyMjMsIDI0LCAyNCwgMSwgMjMwLCAyMTcsIAotICAgIDI0LCAxLCAyMjUsIDk1LCAyNCwgMSwgMjE4LCAyMTIsIDI0LCAxLCAyMjUsIDg0LCAyNCwgMSwgMjE5LCAxNDgsIDI0LCAxLCAKLSAgICAyMTgsIDIwOSwgMjQsIDEsIDIzNiwgNTYsIDI0LCAxLCAyNTAsIDQ2LCAyNCwgMSwgMjE4LCAyMTksIDI0LCAxLCAyNTAsIAotICAgIDEwNiwgMjQsIDEsIDIzNCwgMTEwLCAyNCwgMSwgMjE2LCAxNzMsIDI0LCAxLCAyMjUsIDEzMSwgMjQsIDEsIDI0MSwgMTcyLCAKLSAgICAyNCwgMSwgNjEsIDI0LCAxLCAyNTQsIDI0MywgMjQsIDEsIDE5MSwgMjQsIDEsIDIxMSwgOTIsIDI0LCAxLCAyNDUsIDExNywgCi0gICAgMjQsIDEsIDc1LCAyNCwgMSwgMjExLCAzNiwgMjQsIDEsIDIxMSwgNDcsIDI0LCAxLCA3NiwgMjQsIDEsIDIxMiwgNjUsIDI0LCAKLSAgICAxLCAyMTIsIDYyLCAyNCwgMSwgMjI2LCAyMzQsIDI0LCAxLCAyMTAsIDI0NCwgMjQsIDEsIDcwLCAyNCwgMSwgMjEyLCAxMSwgCi0gICAgMjQsIDEsIDIxMiwgMjIsIDI0LCAxLCAyMTEsIDI1MCwgMjQsIDEsIDIxMCwgMjEyLCAyNCwgMSwgMjQ1LCA1NSwgMjQsIDEsIAotICAgIDIxMSwgOCwgMjQsIDEsIDczLCAyNCwgMjQ0LCAxMDMsIDI0LCAxLCAyMTgsIDIxMywgMjQsIDEsIDIyOCwgMjE2LCAyNCwgMSwgCi0gICAgMjI4LCAyMTgsIDI0LCAxLCAyMjgsIDIyMSwgMjQsIDEsIDIyMywgMTksIDI0LCAxLCAyMjMsIDAsIDI0LCAxLCAyMjMsIDgsIAotICAgIDI0LCAxLCAyMjMsIDEzLCAyNCwgMSwgMjIyLCAyNTQsIDI0LCAxLCAyMzAsIDIxMCwgMjQsIDEsIDIzMCwgMjA3LCAyNCwgMSwgCi0gICAgMjMwLCAyMTEsIDI0LCAxLCAyMzQsIDIyMSwgMjQsIDEsIDIyNSwgOTAsIDI0LCAxLCAyMjUsIDc2LCAyNCwgMSwgMjI1LCAKLSAgICA4MiwgMjQsIDEsIDIyNSwgNzksIDI0LCAxLCAyMjUsIDkzLCAyNCwgMSwgMjI1LCA3NywgMjQsIDEsIDIzNCwgMjE5LCAyNCwgCi0gICAgMSwgMjM0LCAyMTcsIDI0LCAxLCAyMTksIDE0MSwgMjQsIDEsIDIxOSwgMTM5LCAyNCwgMSwgMjE5LCAxMzEsIDI0LCAxLCAKLSAgICAyMTksIDEzNiwgMjQsIDEsIDIxOSwgMTQ2LCAyNCwgMSwgMjI2LCAzMiwgMjQsIDEsIDIxOCwgMjE2LCAyNCwgMSwgMjExLCAKLSAgICAyNiwgMjQsIDEsIDIxMSwgMjIsIDI0LCAxLCAyMTEsIDIzLCAyNCwgMSwgMjM0LCAyMjAsIDI0LCAxLCAyMTgsIDIxNywgMjQsIAorICAgIDY3LCA5MSwgNDMsIDQ0LCA1MiwgODAsIDIsIDY3LCA5MSwgOTcsIDIxNSwgNTgsIDgwLCAyNDMsIDI0NCwgMTMwLCAxNDAsIAorICAgIDUyLCA4MCwgMjQzLCAyNDQsIDEzMCwgOTcsIDUyLCA4MCwgMjQzLCAyNDQsIDEzMCwgMjQ2LCAxMDUsIDgwLCAyLCAyMDMsIAorICAgIDkxLCAyMTQsIDE1MywgODAsIDIsIDIwMywgOTEsIDIxNCwgMTUzLCAyMTUsIDIxMiwgNzQsIDI0NiwgMTA1LCAyMTUsIDIxMiwgCisgICAgNzQsIDE0MCwgNTIsIDI0OCwgMTU4LCA3NCwgOTcsIDUyLCAyNDgsIDE1OCwgNzQsIDE0MCwgMjE1LCAyMTIsIDI0OCwgMTU4LCAKKyAgICA3NCwgOTcsIDIxNSwgMjEyLCAyNDgsIDE1OCwgNzQsIDk3LCAyMTUsIDU4LCAyMTUsIDIxMiwgMjQ4LCAxNTgsIDc0LCA5NywgCisgICAgODAsIDIsIDI0NiwgMTE5LCAyMTgsIDE0MCwgMjE0LCAxNTMsIDgwLCAyMTYsIDQzLCAxMzAsIDI0NiwgMTA1LCA4MCwgMjE2LCAKKyAgICA0MywgMTMwLCA5NywgODAsIDIsIDIxNywgNzksIDIsIDY3LCA5MSwgOTcsIDgwLCAyLCAyMTcsIDc5LCAyLCA1MiwgNjcsIAorICAgIDkxLCA5NywgMjE1LCA1OCwgODAsIDIsIDIxNywgNzgsIDk3LCAyMTUsIDU4LCA4MCwgMiwgMjE3LCA3OSwgMiwgNjcsIDkxLCAKKyAgICA5NywgMjE1LCA1OCwgODAsIDIsIDIxNywgNzksIDIsIDUyLCA2NywgOTEsIDE0MCwgMjUzLCAyNTIsIDk3LCAyNTMsIDI1MiwgCisgICAgMTQwLCA1MiwgMjUzLCAyNTIsIDk3LCA1MiwgMjUzLCAyNTIsIDE0MCwgODAsIDIxNiwgNDMsIDg1LCAyNDcsIDI0OSwgOTcsIAorICAgIDgwLCAyMTYsIDQzLCA4NSwgMjQ3LCAyNDksIDE0MCwgODAsIDI0MywgMjQ0LCAyNTIsIDE0MiwgMjE2LCA0MywgODUsIDI0NywgCisgICAgMjQ5LCA5NywgODAsIDI0MywgMjQ0LCAyNTIsIDE0MiwgMjE2LCA0MywgODUsIDI0NywgMjQ5LCAyMjgsIDU3LCAyMTIsIDksIAorICAgIDIyLCAyMTksIDI5LCAyNDUsIDIyMSwgNzQsIDIyOCwgNTcsIDI0NSwgMjIxLCAyMiwgMjE5LCAyOSwgMjEyLCA5LCA3NCwgCisgICAgMjI4LCA1NywgMjEyLCA5LCA4MCwgMiwgMTAzLCAyMjgsIDU3LCAyNDUsIDIyMSwgODAsIDIsIDEwMywgMjE5LCAyOSwgMjQ1LCAKKyAgICAyMjEsIDgwLCAyLCAxMDMsIDIxOSwgMjksIDIxMiwgOSwgODAsIDIsIDEwMywgMjI4LCA1NywgMjEyLCA5LCA4MCwgMjIsIAorICAgIDIyOCwgNTcsIDI0NSwgMjIxLCA3NCwgMjI4LCA1NywgMjQ1LCAyMjEsIDgwLCAyMiwgMjE5LCAyOSwgMjQ1LCAyMjEsIDc0LCAKKyAgICAyMTksIDI5LCAyNDUsIDIyMSwgODAsIDIyLCAyMTksIDI5LCAyMTIsIDksIDc0LCAyMTksIDI5LCAyMTIsIDksIDgwLCAyMiwgCisgICAgMjI4LCA1NywgMjEyLCA5LCA3NCwgMjIyLCAyMjksIDI0OCwgMCwgMjQ5LCAxMjYsIDI0NCwgMTc2LCAyNDcsIDI1NSwgMjQ0LCAKKyAgICAxNzYsIDI0OCwgMCwgMjQ5LCAxMjYsIDIyMiwgMjI5LCAyNDcsIDI1NSwgMjE5LCAyOSwgMjQ1LCAyMjEsIDgwLCAyNDksIAorICAgIDEyNiwgMjI4LCA1NywgMjQ1LCAyMjEsIDc0LCAyMjgsIDU3LCAyNDUsIDIyMSwgODAsIDI0OSwgMTI2LCAyMTksIDI5LCAKKyAgICAyNDUsIDIyMSwgNzQsIDI0NCwgMTc2LCAyNDgsIDAsIDI0OSwgMTI2LCAyMjgsIDU3LCAyNDUsIDIyMSwgNzQsIDIyMiwgCisgICAgMjI5LCAyNDgsIDAsIDI0OSwgMTI2LCAyMTksIDI5LCAyNDUsIDIyMSwgNzQsIDIyOCwgNTcsIDI0NSwgMjIxLCA4MCwgMjQ5LCAKKyAgICAxMjYsIDIyOCwgNTcsIDIxMiwgOSwgNzQsIDIyOCwgNTcsIDIxMiwgOSwgODAsIDI0OSwgMTI2LCAyMjgsIDU3LCAyNDUsIAorICAgIDIyMSwgNzQsIDIxMiwgMzYsIDgwLCAyMjUsIDgsIDI0NywgMTk2LCAyMjIsIDI1MiwgODAsIDIyNSwgOCwgOTcsIDIxNiwgCisgICAgMTg5LCAyNDksIDkxLCAyMTQsIDE1MiwgODAsIDIyNSwgOCwgOTcsIDIxNiwgMTg5LCAyNDksIDkxLCAyNDYsIDEwNCwgODAsIAorICAgIDIyNSwgOCwgMjQ2LCAxMDUsIDIxNiwgMTg5LCAyNDksIDkxLCAyMzMsIDM4LCA4MCwgMjI1LCA4LCAyNDYsIDEwNSwgMjE2LCAKKyAgICAxODksIDI0OSwgOTEsIDIyMiwgMjQyLCAyMjIsIDI0NSwgMjU0LCAyNywgMjUwLCAzLCA3NCwgMjMzLCA0MSwgMjU0LCAyNywgCisgICAgMjU0LCA4OSwgNzQsIDIxNiwgMTUsIDI1NCwgMjcsIDI1NCwgODksIDc0LCAyNTEsIDE3NiwgMjU0LCAyNywgMjU0LCA4OSwgCisgICAgNzQsIDIxNiwgMTUsIDI1NCwgMjcsIDI1MCwgMywgODAsIDIsIDIzMCwgMTgyLCAyMTYsIDE1LCAyNTQsIDI3LCAyNTQsIDg5LCAKKyAgICA4MCwgMiwgMjI1LCAyMywgMjMyLCAxMDksIDQ0LCAyMjAsIDE1MywgMjUwLCAzLCA3NCwgMjMyLCAxMDksIDQzLCAyMjAsIAorICAgIDE1MywgMjU0LCA4OSwgNzQsIDI1NCwgODksIDI1MCwgMSwgMjUwLCAzNywgNzQsIDI1MCwgMywgMjUwLCAxLCAyNTAsIDM3LCAKKyAgICA3NCwgOTcsIDgwLCA3NywgMjE5LCAyNTIsIDE0MCwgNzQsIDE0MCwgODAsIDc3LCAyMTksIDI1MiwgOTcsIDc0LCAyMTksIAorICAgIDI1MiwgOTcsIDgwLCA3NywgMTQwLCA3NCwgOTcsIDgwLCAyLCA5NiwgNTEsIDE0MCwgODAsIDIsIDk2LCA1MSwgOTcsIDgwLCAKKyAgICAyMTYsIDE0MCwgMjExLCAxNzgsIDQzLCA0NCwgODAsIDIxNiwgMTQwLCA0LCAyNTAsIDM2LCAyMTQsIDE1MywgMjE1LCA1OCwgCisgICAgODAsIDI0MywgMjQ0LCA0LCAyNTAsIDM2LCA0MywgMjUyLCAxNDAsIDEyMCwgNDQsIDI1MiwgMTQwLCAxMjQsIDI0MSwgMjU1LCAKKyAgICA0MywgMjUyLCAxNDAsIDEyNCwgNDQsIDI1MiwgMTQwLCAxMjAsIDI0MSwgMjU1LCAxMjAsIDI1MiwgMTQwLCA0NCwgMTI0LCAKKyAgICAyNTIsIDE0MCwgNDMsIDI0MSwgMjU1LCAxMjAsIDI1MiwgMTQwLCA0MywgMTI0LCAyNTIsIDE0MCwgNDQsIDI0MSwgMjU1LCAKKyAgICA0MywgMjUyLCAxNDAsIDEyMCwgNDQsIDI1MiwgMTQwLCAxMjAsIDI0MSwgMjU1LCAxMjAsIDI1MiwgMTQwLCA0NCwgMTI0LCAKKyAgICAyNTIsIDE0MCwgNDQsIDI0MSwgMjU1LCA0MywgMjUyLCAxNDAsIDEyNCwgNDQsIDI1MiwgMTQwLCAxMjQsIDI0MSwgMjU1LCAKKyAgICAxMjAsIDI1MiwgMTQwLCA0MywgMTI0LCAyNTIsIDE0MCwgNDMsIDI0MSwgMjU1LCAxNDAsIDI0MiwgMCwgMiwgMjUyLCAxNDAsIAorICAgIDEyMCwgMjE2LCA0MywgMTMwLCA5NywgMjQyLCAwLCAyLCAyNTIsIDE0MCwgMTIwLCAyMTYsIDQzLCAxMzAsIDIxNCwgMTUzLCAKKyAgICAyNDIsIDAsIDIsIDI1MiwgMTQwLCA0NCwgMjE2LCA0MywgMTMwLCAyNDYsIDEwNSwgMjQyLCAwLCAyLCAyNTIsIDE0MCwgNDQsIAorICAgIDIxNiwgNDMsIDEzMCwgMTQwLCAyNDIsIDAsIDIsIDI1MiwgMTQwLCAxMjQsIDIxNiwgNDMsIDEzMCwgOTcsIDI0MiwgMCwgMiwgCisgICAgMjUyLCAxNDAsIDEyNCwgMjE2LCA0MywgMTMwLCAyMTQsIDE1MywgMjQyLCAwLCAyLCAyNTIsIDE0MCwgNDMsIDIxNiwgNDMsIAorICAgIDEzMCwgMjQ2LCAxMDUsIDI0MiwgMCwgMiwgMjUyLCAxNDAsIDQzLCAyMTYsIDQzLCAxMzAsIDE0MCwgMjQyLCAwLCAyLCAKKyAgICAyNTIsIDE0MCwgMTIwLCAyNDMsIDI0NCwgMTMwLCA5NywgMjQyLCAwLCAyLCAyNTIsIDE0MCwgMTIwLCAyNDMsIDI0NCwgCisgICAgMTMwLCAyMTQsIDE1MywgMjQyLCAwLCAyLCAyNTIsIDE0MCwgNDQsIDI0MywgMjQ0LCAxMzAsIDI0NiwgMTA1LCAyNDIsIDAsIAorICAgIDIsIDI1MiwgMTQwLCA0NCwgMjQzLCAyNDQsIDEzMCwgMTQwLCAyNDIsIDAsIDIsIDI1MiwgMTQwLCAxMjQsIDI0MywgMjQ0LCAKKyAgICAxMzAsIDk3LCAyNDIsIDAsIDIsIDI1MiwgMTQwLCAxMjQsIDI0MywgMjQ0LCAxMzAsIDIxNCwgMTUzLCAyNDIsIDAsIDIsIAorICAgIDI1MiwgMTQwLCA0MywgMjQzLCAyNDQsIDEzMCwgMjQ2LCAxMDUsIDI0MiwgMCwgMiwgMjUyLCAxNDAsIDQzLCAyNDMsIDI0NCwgCisgICAgMTMwLCAxNDAsIDI0MiwgMCwgMiwgMjUyLCAxNDAsIDEyMCwgNzcsIDE0MCwgMjQyLCAwLCAyLCAyNTIsIDE0MCwgMjQ2LCAKKyAgICAxMDcsIDIxNCwgMTUzLCAyNDIsIDAsIDIsIDI1MiwgMTQwLCA0MywgMjUyLCAzMSwgMjE0LCAxNTMsIDI0MiwgMCwgMiwgCisgICAgMjUyLCAxNDAsIDIyMiwgMjUyLCA5NywgMjQyLCAwLCAyLCAyNTIsIDE0MCwgMTIwLCA3NywgOTcsIDI0MiwgMCwgMiwgMjUyLCAKKyAgICAxNDAsIDI0NiwgMTA3LCAyNDYsIDEwNSwgMjQyLCAwLCAyLCAyNTIsIDE0MCwgNDMsIDI1MiwgMzEsIDI0NiwgMTA1LCAyNDIsIAorICAgIDAsIDIsIDI1MiwgMTQwLCAyMjIsIDI1MiwgMTQwLCAyNDIsIDAsIDIsIDI1MiwgMTQwLCAxMjAsIDc3LCA5NywgMjQyLCAwLCAKKyAgICAyLCAyNTIsIDE0MCwgMjE0LCAxNjMsIDE0MCwgMjQyLCAwLCAyLCAyNTIsIDE0MCwgMTI0LCA3NywgOTcsIDI0MiwgMCwgMiwgCisgICAgMjUyLCAxNDAsIDI0NiwgMTA3LCA5NywgMjQyLCAwLCAyLCAyNTIsIDE0MCwgMTIwLCA3NywgMTQwLCAyNDIsIDAsIDIsIAorICAgIDI1MiwgMTQwLCAyMTQsIDE2MywgOTcsIDI0MiwgMCwgMiwgMjUyLCAxNDAsIDEyNCwgNzcsIDE0MCwgMjQyLCAwLCAyLCAKKyAgICAyNTIsIDE0MCwgMjQ2LCAxMDcsIDE0MCwgMjQyLCAwLCAyLCAyNTIsIDE0MCwgMTIwLCA3NywgMTk5LCAyNDgsIDE1NywgCisgICAgMTQwLCAyNDIsIDAsIDIsIDI1MiwgMTQwLCAxMjQsIDI1MiwgNDQsIDE5OSwgMjQ4LCAxNTcsIDk3LCAyNDIsIDAsIDIsIAorICAgIDI1MiwgMTQwLCAxMjAsIDc3LCAxOTksIDI0OCwgMTU3LCA5NywgMjQyLCAwLCAyLCAyNTIsIDE0MCwgMTI0LCAyNTIsIDQ0LCAKKyAgICAxOTksIDI0OCwgMTU3LCAyMTQsIDE1MywgMjQyLCAwLCAyLCAyNTIsIDE0MCwgNDMsIDI1MiwgMzEsIDI0NiwgMTA1LCAyNDIsIAorICAgIDAsIDIsIDI1MiwgMTQwLCAyMjIsIDI1MiwgMjQ2LCAxMDUsIDI0MiwgMCwgMiwgMjUyLCAxNDAsIDQzLCAyNTIsIDMxLCAKKyAgICAyMTQsIDE1MywgMjQyLCAwLCAyLCAyNTIsIDE0MCwgMjIyLCAyNTIsIDQ0LCA1MiwgODAsIDIsIDIyMiwgMTg0LCAyNDEsIAorICAgIDIzNiwgMjQ1LCA5OSwgNSwgNzcsIDk3LCA3NCwgMjE2LCA5MCwgMjI2LCAxNjksIDc3LCA5NywgNzQsIDE0MCwgODAsIDc3LCAKKyAgICAyMTYsIDkwLCAyMjYsIDE2OCwgOTcsIDgwLCA3NywgMjE2LCA5MCwgMjI2LCAxNjgsIDk3LCA4MCwgNzcsIDI1NCwgMTQ5LCAKKyAgICAxMjgsIDExMSwgMjMzLCAxNiwgNzcsIDE0MCwgNzQsIDE0MCwgODAsIDIxNiwgMTQwLCAyMzMsIDE1LCAyNDIsIDEzMSwgNzcsIAorICAgIDk3LCA3NCwgMjE4LCA2NSwgNzcsIDk3LCA3NCwgMTQwLCA4MCwgMjE2LCAxNDAsIDIxOCwgNjQsIDIxOCwgMjMsIDc3LCAKKyAgICAxNDAsIDc0LCA0MywgMjQ0LCA5MiwgMjE3LCA3OCwgNDQsIDI0NCwgOTIsIDIxNywgNzgsIDEyMCwgMjQ0LCA5MiwgMjE3LCAKKyAgICA3OCwgMTI0LCAyNDQsIDkyLCAyMTcsIDc4LCAyMTUsIDIxMiwgNjcsIDI1MiwgMTQyLCAyNDgsIDYxLCAyMTAsIDE2MCwgCisgICAgMTg4LCAyMTgsIDI0MywgMjEwLCAxNjAsIDE4OCwgMjE1LCA0OSwgMjQ5LCAyMjcsIDQzLCA3MSwgMjQ5LCAxMDAsIDEyNywgCisgICAgNDQsIDcxLCAyNDksIDEwMCwgMTI3LCA0MywgNzEsIDIyNiwgNCwgNDQsIDcxLCAyMjYsIDQsIDIxMCwgMTYwLCAxODgsIDQzLCAKKyAgICAyMzYsIDE2LCAxMjcsIDIxMCwgMTYwLCAxODgsIDQ0LCAyMzYsIDE2LCAxMjcsIDIxMCwgMTYwLCAxODgsIDQzLCAyNTEsIAorICAgIDI0MywgMTI3LCAyMTAsIDE2MCwgMTg4LCA0NCwgMjUxLCAyNDMsIDEyNywgNDMsIDQyLCAyNTEsIDE1OSwgMiwgMjE0LCAKKyAgICAxODMsIDQ0LCA0MiwgMjUxLCAxNTksIDIsIDIxNCwgMTgzLCA0MywgNDIsIDI1MSwgMTU5LCAyLCAyMTYsIDExNiwgMjM2LCAKKyAgICAxLCAyMTYsIDE1LCAyNDksIDE2MSwgNDQsIDQyLCAyNTEsIDE1OSwgMiwgMjE2LCAxMTYsIDIzNiwgMSwgMjUxLCAxNzYsIAorICAgIDI0OSwgMTYxLCA0MywgNDIsIDI1MSwgMTU5LCAyLCAyMTYsIDExNiwgMjM2LCAxLCAyNTEsIDE3NiwgMjQ5LCAxNjEsIDQ0LCAKKyAgICA0MiwgMjUxLCAxNTksIDIsIDIxNiwgMTE2LCAyMzYsIDEsIDIxNiwgMTUsIDI0OSwgMTYxLCA0MywgMjU0LCAxMTEsIDI1MSwgCisgICAgMTU5LCAyLCAyNDcsIDEyMSwgNDQsIDI1NCwgMTExLCAyNTEsIDE1OSwgMiwgMjQ3LCAxMjEsIDQzLCAyNTQsIDI3LCAyMzMsIAorICAgIDE2LCAxMjcsIDQ0LCAyNTQsIDI3LCAyNDIsIDEzMSwgMTI3LCA1MiwgNDMsIDI1NCwgMjcsIDI0MiwgMTMxLCAxMjcsIDUyLCAKKyAgICA0NCwgMjU0LCAyNywgMjMzLCAxNiwgMTI3LCA0MywgODUsIDIxNiwgNywgMjIwLCA1NCwgMTI3LCA0NCwgODUsIDIxNiwgNywgCisgICAgMjIwLCA1NCwgMTI3LCAyNDYsIDExOSwgMjQ0LCAxMzYsIDY3LCAyMTAsIDM1LCAyMzIsIDIxNCwgMjMxLCA4OSwgMjU0LCAKKyAgICAxMTEsIDIyNiwgMTcxLCAyMzMsIDQ3LCA0NCwgMjU0LCAxMTEsIDIxNCwgMTIsIDIsIDIxOCwgMjM1LCAyMzEsIDg5LCA0NCwgCisgICAgMjU0LCAxMTEsIDIsIDI0NywgMTIxLCAyNTQsIDExMSwgMiwgMjIyLCA5MywgMjM1LCAyMTYsIDI1NSwgNCwgMjU0LCAxMTAsIAorICAgIDIxOSwgMCwgMjU0LCAxMTEsIDIyNiwgMTcxLCAyMzMsIDQ3LCAyMTksIDAsIDI1NCwgMTExLCAyMjYsIDE3MSwgMjE0LCAKKyAgICAxNjMsIDIxNSwgOTQsIDI1NCwgMTEwLCAyMjMsIDUwLCAyNTQsIDExMCwgMjU0LCAxMTEsIDIsIDIxNCwgMTgzLCAyMjMsIAorICAgIDUwLCAyNTQsIDExMSwgMiwgMjE0LCAxODMsIDIyNiwgMjQ5LCAyNTQsIDExMSwgMjI2LCAxNzEsIDIxNCwgMTYzLCAyMjYsIAorICAgIDI0OSwgMjU0LCAxMTEsIDIyNiwgMTcxLCAyNDYsIDEwNywgMjMxLCA4OSwgMjU0LCAxMTEsIDIsIDIwNCwgMjU0LCA2LCAKKyAgICAyNDUsIDE0MSwgMjM2LCAxLCA4MCwgMjI1LCA4LCAxMjAsIDIyLCAyMjIsIDI1MiwgMjMxLCA4OSwgMjU0LCAxMTEsIDIsIAorICAgIDIwNCwgMjU0LCA2LCAyNDUsIDE0MSwgMjM2LCAxLCA4MCwgMjI1LCA4LCAxMjAsIDIyLCAyMzMsIDQ3LCAyMzEsIDg5LCAKKyAgICAyNTQsIDExMSwgMiwgMjA0LCAyNTQsIDYsIDI0NSwgMTQxLCAyMzYsIDEsIDgwLCAyMjUsIDgsIDEyNCwgMjIsIDIyMiwgCisgICAgMjUyLCAyMzEsIDg5LCAyNTQsIDExMSwgMiwgMjA0LCAyNTQsIDYsIDI0NSwgMTQxLCAyMzYsIDEsIDgwLCAyMjUsIDgsIAorICAgIDEyNCwgMjIsIDIzMywgNDcsIDIzMSwgODksIDI1NCwgMTExLCAyLCAyMDQsIDI1NCwgNiwgMjQ1LCAxNDEsIDIzNiwgMSwgCisgICAgODAsIDIyNSwgOCwgNDQsIDIyLCAyMTQsIDE2MywgMjMxLCA4OSwgMjU0LCAxMTEsIDIsIDIwNCwgMjU0LCA2LCAyNDUsIAorICAgIDE0MSwgMjM2LCAxLCA4MCwgMjI1LCA4LCA0MywgMjIsIDIxNCwgMTYzLCAyMzEsIDg5LCAyNTQsIDExMSwgMiwgMjA0LCAKKyAgICAyNTQsIDYsIDI0NSwgMTQxLCAyMzYsIDEsIDgwLCAyMjUsIDgsIDQ0LCAyMiwgMjQ2LCAxMDcsIDIzMSwgODksIDI1NCwgCisgICAgMTExLCAyLCAyMDQsIDI1NCwgNiwgMjQ1LCAxNDEsIDIzNiwgMSwgODAsIDIyNSwgOCwgNDMsIDIyLCAyNDYsIDEwNywgMjIzLCAKKyAgICA1MCwgMjQ1LCAxNTMsIDIyMCwgMTI4LCAyNDUsIDE1MywgMjIwLCAxMjksIDIsIDIyNiwgMTI0LCAyNDUsIDE1MywgMjIwLCAKKyAgICAxMjksIDIsIDQsIDI1MCwgMzcsIDQ4LCAyNDUsIDE1MywgMjIwLCAxMjksIDIsIDQ0LCA4MCwgNDgsIDI0NSwgMTUzLCAyMjAsIAorICAgIDEyOSwgMiwgNDMsIDgwLCA0OCwgMjUwLCAzNywgMiwgMjAzLCAxMzAsIDM3LCA2NywgMTMwLCAzNywgMjI2LCA4LCAzNywgCisgICAgMjIzLCA1MSwgMjE5LCA0NywgMzcsIDIyNSwgMTcyLCAyNTAsIDM3LCAyNDcsIDE3NCwgMjUxLCA3OSwgMjAzLCAyNTIsIAorICAgIDE0MiwgMjIsIDIxNiwgMTUsIDE2MywgMjQ3LCAxNzQsIDI1MSwgNzksIDY3LCAxMzAsIDI1MCwgMzcsIDIsIDIxOCwgMjUsIAorICAgIDIxMSwgMTc4LCAzNywgMjU0LCA4OCwgMjQ3LCAxNzAsIDUwLCAxMjAsIDgwLCAyMTYsIDE0MCwgMjUwLCAzNiwgMzcsIDcxLCAKKyAgICAyNTEsIDExNCwgMzcsIDI1MSwgMTE0LCAzNywgMjMzLCAxNSwgMzcsIDI0MiwgMTMwLCAyNTAsIDM3LCAyLCA0LCAyNTAsIAorICAgIDM3LCAyMTYsIDQzLCAyMTYsIDE5NywgMjIyLCAyNTIsIDI1MCwgMzcsIDIsIDExMywgMjAzLCAyMTgsIDkyLCAyMTYsIDQzLCAKKyAgICAyMTYsIDE5NywgMjIyLCAyNTIsIDkyLCAyMjIsIDIyOSwgMjQ4LCAwLCAyMTksIDk2LCA5MiwgMjQ0LCAxNzYsIDI0OCwgMCwgCisgICAgMjE5LCA5NiwgOTIsIDI1MywgMjE3LCA5MiwgNCwgMjUwLCAzNiwgOTIsIDIxOCwgMjM1LCAxMTMsIDIzNSwgNjYsIDIxOCwgCisgICAgMjMzLCAyMTUsIDIyNywgMiwgNTksIDQ4LCAyMTUsIDIyNywgMiwgMjE0LCAxODMsIDIyMiwgOTMsIDIzNiwgMSwgMjE1LCAKKyAgICAyMjYsIDIxNSwgMjI3LCAyLCAyMjAsIDEzNSwgMjUzLCAyMDgsIDI1MSwgMTc1LCA0NCwgMjE1LCAyMjcsIDc3LCA0MywgCisgICAgMjE1LCAyMjYsIDQzLCAyMTUsIDIyNywgMjUyLCAzMSwgNjcsIDEzMCwgNjcsIDI1MiwgMTQyLCAyNTIsIDMxLCA0NCwgMjE1LCAKKyAgICAyMjYsIDI1MSwgMTY2LCAyLCA0MywgMTYzLCAyNTEsIDIyMiwgMjUxLCAxNjYsIDIsIDQ0LCAxNjMsIDI1MSwgMjIyLCA4NSwgCisgICAgMjUxLCAxNjUsIDMwLCAyLCA0MywgMTYzLCAyNTEsIDIyMiwgMzAsIDIsIDQ0LCAxNjMsIDI1MSwgMjIyLCA3MSwgMjQwLCAKKyAgICAyMzcsIDg1LCAyNDAsIDIzNywgNDMsIDIxMSwgMjQ0LCAyNDQsIDEzNiwgNDQsIDIxMSwgMjQ0LCAyNDQsIDEzNiwgNDMsIAorICAgIDUyLCAyMTEsIDI0NCwgMjQ0LCAxMzYsIDQ0LCA1MiwgMjExLCAyNDQsIDI0NCwgMTM2LCAyMzUsIDI0OSwgMjM1LCAyMzUsIAorICAgIDIxNiwgMTEzLCAxMTcsIDIzNSwgMjM1LCAyMzUsIDIzNiwgMjI5LCAxMDMsIDIsIDY3LCAxMzAsIDI0NiwgMTEzLCAyMzAsIAorICAgIDg4LCA0MiwgMiwgMjQ5LCAxODIsIDIyNiwgMTI4LCAyMzUsIDI0NywgMjUzLCAyMzgsIDIxOSwgMjIwLCAyMjQsIDE4MSwgCisgICAgMjQ1LCA5OSwgNSwgMjIsIDIxOSwgOTgsIDIyNiwgOCwgMjQ1LCA5OSwgNSwgMjIsIDIxOSwgOTgsIDIyNiwgOSwgMiwgMjE2LCAKKyAgICA5MCwgNDgsIDI0MCwgMTA1LCAyMTYsIDQzLCAyMiwgMjE5LCA5OCwgMjI2LCA4LCAyNDIsIDE4NCwgMjE4LCAxNTYsIDIxNiwgCisgICAgMTg2LCAyNDYsIDEwNiwgMjE1LCAyMjcsIDIsIDQzLCAxNjMsIDI1MSwgMjIyLCAyNDYsIDEwNiwgMjE1LCAyMjcsIDIsIDQ0LCAKKyAgICAxNjMsIDI1MSwgMjIyLCA4NSwgMjQ3LCAyNTAsIDIsIDEyNCwgNzQsIDg1LCAyMzIsIDEwNSwgNzEsIDI1MCwgMzcsIDIsIAorICAgIDEyNCwgNzQsIDg1LCAyNTAsIDM3LCAyLCAxMjQsIDc0LCAyNDUsIDg2LCA3MSwgMjE4LCAyMzUsIDI0NSwgODYsIDg1LCAKKyAgICAyMTgsIDIzNSwgMjQ1LCA4NiwgNzEsIDI0NywgMjQ5LCAyNDUsIDg2LCA4NSwgMjQ3LCAyNDksIDI0NSwgODYsIDcxLCAyNTAsIAorICAgIDM2LCAyNDUsIDg2LCA4NSwgMjUwLCAzNiwgMjIyLCAxMzMsIDIyMywgNTEsIDIxOSwgNDgsIDIyNiwgMTY4LCAyMTksIDQ4LCAKKyAgICAyLCAyMjYsIDEyNCwgMjIzLCA1MSwgMjE5LCA0OCwgMiwgMjAzLCA5MSwgMjUxLCAyNTAsIDIxOSwgNDcsIDI1MSwgMjUwLCAKKyAgICAyMjMsIDUxLCAyMTksIDQ3LCA1MiwgMjI1LCAyMywgMjE1LCAyMTIsIDIyNSwgMjMsIDIzMywgNDMsIDI0OSwgOTIsIDI1NCwgCisgICAgMTExLCAxMjcsIDIyMiwgMjQ4LCAyNDksIDkyLCAyNTQsIDExMSwgMTI3LCAyMTYsIDc5LCAyMzAsIDE4MCwgMjMwLCAyNSwgCisgICAgMzcsIDU5LCAyMjYsIDE2OCwgMjMwLCAyNSwgMzcsIDk2LCAyMjYsIDE2OCwgMjMwLCAyNSwgMzcsIDMwLCAyMjYsIDE2OCwgCisgICAgMjMwLCAyNSwgMjE0LCAxNzYsIDIyNiwgMTY5LCAyLCAyNDcsIDEyMSwgMjMwLCAyNSwgMjE0LCAxNzYsIDIyNiwgMTY5LCAyLCAKKyAgICAyMjUsIDIzLCAyMzAsIDI1LCA0MiwgMjM1LCAyMDAsIDIyNiwgMTY4LCAyMzAsIDI1LCA0MiwgMjE0LCAxNzYsIDIyNiwgCisgICAgMTY4LCAxMTMsIDIzMiwgMTQ3LCAyMiwgMjI2LCAxNjgsIDExMywgMjMyLCAxNDcsIDE3NywgMjI2LCAxNjgsIDIzMCwgMjUsIAorICAgIDMwLCAyMjYsIDE2OCwgMjMwLCAxNTUsIDExMywgMjE4LCA0NCwgMjE4LCA0MiwgMiwgMjM1LCAyMTIsIDIyNCwgMjUsIDIzNSwgCisgICAgMjEzLCAyMjYsIDE2OCwgMjQ0LCAxMDAsIDIyNiwgMCwgMjM1LCAyMTIsIDIzNSwgMjEzLCAyLCA1MiwgOTEsIDIzNSwgMjEzLCAKKyAgICAyNTMsIDE3NCwgMiwgMjE5LCA5NiwgMjUwLCAzMywgMjQzLCAyMjcsIDI1NCwgODksIDIzNSwgMjEwLCAyMzIsIDIxNSwgCisgICAgMjM1LCAyMTEsIDIsIDIyMywgMTE2LCAyMjUsIDIzOCwgMjU0LCAzLCAyMjUsIDIsIDIzMiwgMjE1LCAyMzUsIDIxMSwgMiwgCisgICAgMjIwLCAxNTMsIDIyNSwgMjM4LCAyNTQsIDMsIDIyNSwgMiwgMjMyLCAyMTUsIDIzNSwgMjExLCAyMjgsIDUzLCAyMzUsIAorICAgIDI1MSwgMjE2LCAxOTcsIDIyNSwgMiwgMjM1LCAyMTMsIDI1NCwgMywgMTE1LCAyMjUsIDEyLCAyMjYsIDE2OCwgMjI0LCAxOSwgCisgICAgMjM1LCAyMTMsIDIyNiwgMTY4LCAyMzUsIDIxMywgMiwgMTQwLCA4MCwgMiwgMTAzLCAyMzUsIDIxMywgMiwgMzAsIDUwLCAKKyAgICAyMzUsIDIxMywgMiwgMjM1LCAxOTksIDIzNSwgMjEzLCAyLCAyMTQsIDE3NSwgMjM1LCAyMTMsIDIsIDIyNiwgMTI0LCAyMzUsIAorICAgIDIxMywgMiwgMjE0LCAxODMsIDIzNSwgNjcsIDIzMywgODYsIDQzLCAyMTUsIDIyNywgMjI2LCAxNjgsIDIxMCwgMTYwLCAKKyAgICAxODgsIDIyMSwgMjAyLCAyNDksIDIxMCwgMjEwLCAxNjAsIDE4OCwgMjIxLCAyMDIsIDIyNSwgNTcsIDIxMCwgMTYwLCAxODgsIAorICAgIDIyMSwgMjAyLCAyMjQsIDE3NywgOTYsIDUsIDIsIDQsIDI1MCwgMzcsIDQ4LCA5NiwgNSwgMiwgMjUwLCAzMiwgMjU1LCAxNiwgCisgICAgNDgsIDk2LCA1LCAyLCAyMTYsIDkwLCA0OCwgOTYsIDUsIDIsIDU5LCA1MSwgOTYsIDUsIDIsIDIxNiwgOTAsIDUxLCA5NiwgCisgICAgNSwgMiwgMjE4LCA2NiwgMTA1LCA5NiwgNSwgMiwgODUsIDIxNSwgMjI2LCAyMzAsIDE4MywgNSwgMiwgMjQ5LCAyMjEsIDQ4LCAKKyAgICAyMzAsIDE4MywgNSwgMiwgNTksIDUxLCAyMzAsIDE4MywgNSwgMiwgMjQ0LCAxNzYsIDI0NywgMTE5LCAyMzAsIDE4MywgNSwgCisgICAgMiwgMjIyLCAyMjksIDI0NywgMTE5LCA5NiwgNSwgMjM2LCAxLCA0MywgMTYzLCAyNTAsIDM2LCA5NiwgNSwgMjM2LCAxLCAKKyAgICA0NCwgMTYzLCAyNTAsIDM2LCAyMTMsIDI1NCwgMTc3LCAyNDksIDEzMiwgMjI0LCAxODEsIDIzMCwgODUsIDUsIDIsIDU5LCAKKyAgICA0OCwgMjMwLCA4NSwgNSwgMiwgMjE0LCAxODMsIDIyMCwgMTUwLCAyMjQsIDE4MiwgMiwgMjUxLCAxNzYsIDI1MCwgMCwgCisgICAgMjE5LCA3OCwgMjI0LCAxODEsIDIzMCwgODUsIDUsIDIzNiwgMSwgNDMsIDE2MywgMjUwLCAzNiwgMjMwLCA4NSwgNSwgMjM2LCAKKyAgICAxLCA0NCwgMTYzLCAyNTAsIDM2LCAzNywgMjMwLCA4NSwgNSwgMiwgMjUwLCAzMiwgMjU1LCAxNSwgMjMwLCA4NSwgNSwgCisgICAgMjM2LCAxLCA1MiwgMjUwLCAzNiwgMzcsIDI0NywgMTcwLCA1MCwgOTYsIDUsIDIzNiwgMSwgMjE1LCAyMjYsIDIzMCwgMTgzLCAKKyAgICA1LCAyMzYsIDEsIDIxNSwgMjI2LCAyMzAsIDg1LCA1LCAyMzYsIDEsIDIxNSwgMjI2LCAyMzUsIDIwNywgMjI0LCAxODEsIAorICAgIDIyMiwgMjQzLCAyMzUsIDIwNywgMjI0LCAxODEsIDIxMCwgMTYwLCAxODgsIDIyMywgOTEsIDI0OSwgMjEwLCAyNTQsIDEzNSwgCisgICAgMTc3LCAyNDksIDE2NiwgMjM1LCAyMDAsIDIsIDI0NywgMTIxLCAyMTQsIDE3NiwgMiwgMjMwLCAxODMsIDUwLCAyMTQsIAorICAgIDE3NiwgMiwgMjI2LCAxMjQsIDIzNSwgMjAwLCAyLCAyMjYsIDEyNCwgMjM1LCAyMDAsIDIsIDIzMiwgMTQ3LCAyNTQsIDExOSwgCisgICAgMjE0LCAxNzYsIDIsIDIzMiwgMTQ3LCAyMjYsIDE1OSwgMjE0LCAxNzYsIDc3LCAyMzUsIDE5OSwgMjM1LCAyMDAsIDc3LCAKKyAgICAyMTQsIDE3NSwgMjE0LCAxNzYsIDc3LCAyNTIsIDE0MiwgNzcsIDIzNSwgMTk5LCAyMzUsIDIwMCwgNzcsIDI1MiwgMTQyLCAKKyAgICA3NywgMjE0LCAxNzUsIDIxNCwgMTc2LCAyNTIsIDMxLCAyMiwgMjM1LCA2NiwgMiwgMjE0LCAxNzUsIDIzNSwgMjAwLCAyNTIsIAorICAgIDMxLCAyMiwgMjM1LCA2NiwgMiwgMjM1LCAxOTksIDI1MCwgMSwgMjE0LCAxNzYsIDIsIDIyMCwgMTM0LCAyNTAsIDEsIDIzNSwgCisgICAgMjAwLCAyLCAyMjAsIDEzNCwgNTIsIDQyLCAyMzUsIDE5OSwgNTIsIDQyLCAyMTQsIDE3NSwgMjUwLCAxLCAyMTQsIDE3NiwgCisgICAgMiwgMjIwLCAxMzUsIDIyLCAyMTksIDc4LCAyMjQsIDE4MSwgMjMyLCAxNDcsIDIyLCAyLCA1OSwgNDgsIDIzMiwgMTQ3LCAKKyAgICAxNzcsIDIsIDU5LCA0OCwgNTIsIDIzMiwgMTQ3LCAyNTQsIDExOSwgNTIsIDIzMiwgMTQ3LCAyMjYsIDE1OSwgMTEzLCAyMzUsIAorICAgIDIwMSwgMjMyLCAxNDcsIDI1NCwgMTE5LCAxMTMsIDIzNSwgMjAxLCAyMzIsIDE0NywgMjI2LCAxNTksIDIxOSwgODYsIDIzMywgCisgICAgODYsIDIyNiwgMTU5LCAyMTksIDg2LCAyMzMsIDg2LCAyNTQsIDExOSwgMjMyLCAxNDcsIDE3NywgMjI2LCAxMjIsIDIzMiwgCisgICAgMTQ3LCAyNTQsIDExOSwgMjMyLCAxNDcsIDIyLCAyLCAyMzAsIDIyNSwgMjE4LCAxNDAsIDIzMiwgMTQ3LCAxNzcsIDIsIAorICAgIDIzMCwgMjI1LCAyMTgsIDE0MCwgMjMyLCAxNDcsIDIyLCAyLCAyMDMsIDI0OCwgMTU3LCAyMzIsIDE0NywgMTc3LCAyLCAKKyAgICAyMDMsIDI0OCwgMTU3LCAyMzIsIDE0NywgMjIsIDIsIDUyLCAyMjYsIDEyNCwgMjMyLCAxNDcsIDIyLCAyLCAyMTQsIDE4MywgCisgICAgMjMyLCAxNDcsIDIyLCAyLCA1MiwgMjE0LCAxODMsIDQsIDIxMywgMjUxLCAyLCAyMTQsIDE4MywgMjMyLCAxNDcsIDE3NywgCisgICAgMiwgNTIsIDIyNiwgMTI0LCAyMzIsIDE0NywgMTc3LCAyLCA1MiwgMjE0LCAxODMsIDIxMCwgMTYwLCAxODgsIDI0NywgMTMwLCAKKyAgICAyNTQsIDgwLCAyMTAsIDE2MCwgMTg4LCAyMjMsIDE0OSwgMjU0LCA4MCwgMjQ1LCA5OSwgNSwgMiwgNTksIDUxLCAyNDAsIAorICAgIDEwNSwgMiwgNTksIDQ4LCAyMTUsIDIxMiwgMjAzLCAyNTIsIDE0MiwgMiwgNTIsIDY3LCA5MSwgMjE1LCAyMTIsIDIwMywgCisgICAgMjUyLCAxNDIsIDIsIDIxNSwgMjEyLCA2NywgOTEsIDIxNiwgOTAsIDIyNiwgMTY5LCAyLCA1OSwgNDgsIDIxNiwgOTAsIAorICAgIDIyNiwgMTY5LCAyLCAyMjIsIDIyOSwgMjQ3LCAxMTksIDIxOSwgMTYzLCAyMzAsIDE4MywgMjE5LCAxNjIsIDI0OSwgMjAwLCAKKyAgICAyLCA1OSwgNDgsIDI0NSwgOTksIDIsIDI1MywgMjE3LCAyNTQsIDE0OSwgMTI4LCAyMTYsIDQzLCAyLCAyNTAsIDMyLCAyNTUsIAorICAgIDE1LCAyNTQsIDQ5LCAxMjgsIDE3NywgMTI4LCAxMTEsIDI0NSwgOTksIDUsIDc3LCA5NiwgNTAsIDk2LCA1LCA3NywgMjQ1LCAKKyAgICA5OSwgNTAsIDI0NSwgOTksIDUsIDc3LCAyMTYsIDkwLCAyMjYsIDE2OCwgNTIsIDI0OSwgMjI4LCAyNDUsIDEwMCwgMTEzLCAKKyAgICAyNDksIDE5NSwgMjQ1LCA5OSwgMjE5LCAxNzcsIDEzNCwgMjQ5LCAxOTUsIDI0NSwgOTksIDIxOSwgMTc3LCAyNDUsIDk5LCAKKyAgICA1LCAyLCAxMTMsIDE3MCwgNzcsIDIyLCAxMTMsIDE3MCwgNTEsIDI0NSwgOTUsIDIsIDI0NCwgMTIsIDE3MCwgNDgsIDIzMywgCisgICAgMTYsIDIsIDI1MCwgMzcsIDIzNSwgMjE2LCAyNDIsIDEzMSwgMiwgMjUwLCAzNywgMjM1LCAyMTYsIDIzMywgMTYsIDIsIAorICAgIDIyNCwgMTQsIDE2NCwgNDgsIDI0MiwgMTMxLCAyLCAyMjQsIDE0LCAxNjQsIDQ4LCAyMzMsIDE2LCAxNzcsIDIxOSwgOTgsIAorICAgIDEyOCwgMTExLCAyNDIsIDEzMSwgMTc3LCAyMTksIDk4LCAxMjgsIDExMSwgMjMzLCAxNiwgMTc3LCAyMTksIDk4LCAxMjgsIAorICAgIDIxNiwgNDMsIDIsIDU5LCAyMzUsIDIxNiwgMjQyLCAxMzEsIDE3NywgMjE5LCA5OCwgMTI4LCAyMTYsIDQzLCAyLCA1OSwgCisgICAgMjM1LCAyMTYsIDIzMywgMTYsIDE3NywgMjE5LCA5OCwgMTI4LCAyMTYsIDQzLCAyLCA1OSwgNDgsIDI0MiwgMTMxLCAxNzcsIAorICAgIDIxOSwgOTgsIDEyOCwgMjE2LCA0MywgMiwgNTksIDQ4LCAyMzMsIDE2LCAxNzcsIDIxOSwgOTgsIDEyOCwgMjE2LCA0MywgMiwgCisgICAgNTksIDc3LCAyMjIsIDI1MiwgMjQyLCAxMzEsIDE3NywgMjE5LCA5OCwgMTI4LCAyMTYsIDQzLCAyLCA1OSwgNzcsIDIzMywgCisgICAgNDcsIDIzMywgMTYsIDE3NywgMjU0LCA1MCwgMjQyLCAxMzEsIDE3NywgMjU0LCA1MCwgMjMzLCAxNiwgMjIsIDIxOSwgMTU0LCAKKyAgICAyMjgsIDUzLCAxMjgsIDExMSwgMjQyLCAxMzEsIDIyLCAyMTksIDE1NCwgMjI4LCA1MywgMTI4LCAxMTEsIDIzMywgMTYsIAorICAgIDIyLCAyMjgsIDUzLCAyNTQsIDUwLCAyNDIsIDEzMSwgMjIsIDIyOCwgNTMsIDI1NCwgNTAsIDIzMywgMTYsIDc3LCAyNDYsIAorICAgIDExMiwgMTI4LCA3NywgMjQyLCAxMzAsIDI0MiwgMTMxLCA3NywgMjQ2LCAxMTIsIDEyOCwgNzcsIDIzMywgMTUsIDIzMywgCisgICAgMTYsIDc3LCAyMTksIDE2MywgMTc3LCAyNDUsIDEwMCwgMjQyLCAxMzEsIDc3LCAyMTksIDE2MywgMTc3LCAyNDUsIDEwMCwgCisgICAgMjMzLCAxNiwgNzcsIDIxOSwgMTYzLCA3NywgMjQyLCAxMzAsIDI0MiwgMTMxLCA3NywgMjE5LCAxNjMsIDc3LCAyMzMsIDE1LCAKKyAgICAyMzMsIDE2LCA3NywgMjQyLCAxMzEsIDc3LCAyNDYsIDExMiwgMjQ1LCAxMDAsIDI0MiwgMTMxLCA3NywgMjMzLCAxNiwgNzcsIAorICAgIDI0NiwgMTEyLCAyNDUsIDEwMCwgMjMzLCAxNiwgNzcsIDIxOSwgOTgsIDEyOCwgNzcsIDI0MiwgMTMxLCA3NywgMjE5LCA5OCwgCisgICAgMjQ1LCAxMDAsIDI0MiwgMTMxLCA3NywgMjE5LCA5OCwgMTI4LCA3NywgMjMzLCAxNiwgNzcsIDIxOSwgOTgsIDI0NSwgMTAwLCAKKyAgICAyMTksIDk4LCAxMjgsIDIxNiwgNDMsIDE3NywgMjMzLCAxNSwgMjE5LCA5OCwgMTI4LCAyMTYsIDQzLCAxNzcsIDI0MiwgCisgICAgMTMwLCAyMTksIDk4LCAxMjgsIDIxNiwgNDMsIDE3NywgMjMzLCAxNiwgMiwgNTksIDIzNSwgMjE2LCAyMTksIDk4LCAxMjgsIAorICAgIDIxNiwgNDMsIDE3NywgMjQyLCAxMzEsIDIsIDU5LCAyMzUsIDIxNiwgMjQ2LCAxMTIsIDEyOCwgMjE2LCA0MywgMTc3LCAKKyAgICAyMzMsIDE1LCAyNDYsIDExMiwgMTI4LCAyMTYsIDQzLCAxNzcsIDI0MiwgMTMwLCAyNDYsIDExMiwgMjE5LCA5OCwgMTI4LCAKKyAgICAyMTYsIDQzLCAxNzcsIDIzMywgMTUsIDI0NiwgMTEyLCAyMTksIDk4LCAxMjgsIDIxNiwgNDMsIDE3NywgMjQyLCAxMzAsIAorICAgIDIxOSwgMTYzLCAxNzcsIDIzMywgMTUsIDIxOSwgMTYzLCAxNzcsIDI0MiwgMTMwLCAyMTksIDE2MywgNzcsIDIzMywgMTYsIAorICAgIDc3LCAyNDUsIDk5LCA1MCwgMjE5LCAxNjMsIDc3LCAyNDIsIDEzMSwgNzcsIDI0NSwgOTksIDUwLCA1MiwgMjI5LCA5MiwgCisgICAgMjMzLCAxNSwgNTIsIDIyOSwgOTIsIDI0MiwgMTMwLCA1MiwgMjI5LCA5MiwgMjMzLCAxNiwgMiwgMjE0LCAxODMsIDI0MiwgCisgICAgMTMxLCAyMjYsIDEyMiwgMjMzLCAxNSwgMjQyLCAxMzEsIDI1MiwgMzEsIDIzMywgMTUsIDIzMywgMTYsIDI1MCwgMSwgMjUxLCAKKyAgICA3OSwgMjQ5LCA5MywgMjQyLCAxMzEsIDI1MCwgMSwgMjUxLCA3OSwgMjQ5LCA5MywgMjMzLCAxNiwgMjUwLCAxLCAyNTEsIAorICAgIDc5LCAyNDksIDk0LCA3NywgMjE5LCA5OCwgMjQ1LCAxMDAsIDI0MiwgMTMxLCAyNTAsIDEsIDI1MSwgNzksIDI0OSwgOTQsIAorICAgIDc3LCAyMTksIDk4LCAyNDUsIDEwMCwgMjE5LCA3OSwgMjE2LCAyMDEsIDIzMywgODQsIDIxNiwgMjAxLCAyMTksIDc5LCAKKyAgICAyMTYsIDIwMiwgMTc3LCAxMjgsIDExMSwgMjMzLCA4NCwgMjE2LCAyMDIsIDE3NywgMTI4LCAxMTEsIDI0NSwgOTksIDUsIDIsIAorICAgIDI1MSwgMTA5LCA0OCwgMjI0LCAyMDQsIDc3LCAyMTksIDE1NCwgMjQ1LCA5OSwgNTAsIDIxOCwgNTcsIDc3LCAyMTksIDE1NCwgCisgICAgMjQ1LCA5OSwgNTAsIDIyNCwgMjA0LCA3NywgMjE5LCAxNTQsIDIyOCwgNTMsIDEyOCwgMTExLCAyMTgsIDU3LCA3NywgMjE5LCAKKyAgICAxNTQsIDIyOCwgNTMsIDEyOCwgMTExLCAyMjQsIDIwNCwgNzcsIDI0NSwgOTksIDUwLCAyMTgsIDU3LCA3NywgMjQ1LCA5OSwgCisgICAgNTAsIDIyNCwgMjA0LCA3NywgMjI4LCA1MywgMTI4LCAxMTEsIDIxOCwgNTcsIDc3LCAyMjgsIDUzLCAxMjgsIDExMSwgMjI0LCAKKyAgICAyMDQsIDc3LCAyNTQsIDE0OSwgMTI4LCAxMTEsIDIxOCwgNTcsIDc3LCAyNTQsIDE0OSwgMTI4LCAxMTEsIDIyNCwgMjA0LCAKKyAgICA3NywgMjI4LCA1MywgMjU0LCAxNDksIDEyOCwgMTExLCAyMTgsIDU3LCA3NywgMjI4LCA1MywgMjU0LCAxNDksIDEyOCwgCisgICAgMTExLCA1MiwgMjI0LCAyMDMsIDUyLCAyMTgsIDU2LCAyMTgsIDY1LCAyLCAyNDcsIDEyMSwgMjE4LCAyMywgMiwgMjQ3LCAKKyAgICAxMjEsIDIxOCwgNjUsIDIsIDk2LCA1LCA1MSwgMjE4LCAyMywgMiwgOTYsIDUsIDUxLCAyMTgsIDY1LCAyLCAyMzAsIDg1LCAKKyAgICA1LCA1MSwgMjE4LCAyMywgMiwgMjMwLCA4NSwgNSwgNTEsIDIxOCwgNjUsIDY0LCAxNzcsIDEyOCwgMjE2LCA0MywgMiwgNTksIAorICAgIDQ4LCAyMTgsIDIzLCA2NCwgMTc3LCAxMjgsIDIxNiwgNDMsIDIsIDU5LCA0OCwgMjE4LCA2NSwgNjQsIDc3LCAyNDUsIDk5LCAKKyAgICA1MCwgMjE4LCAyMywgNjQsIDc3LCAyNDUsIDk5LCA1MCwgMjE4LCA2NSwgNjQsIDc3LCAyMTYsIDkwLCAyMjYsIDE2OCwgCisgICAgMjE4LCAyMywgNjQsIDc3LCAyMTYsIDkwLCAyMjYsIDE2OCwgMjE4LCA2NSwgNjQsIDc3LCAyNTQsIDE0OSwgMTI4LCAxMTEsIAorICAgIDIxOCwgMjMsIDY0LCA3NywgMjU0LCAxNDksIDEyOCwgMTExLCAyMTgsIDY1LCA2NCwgNzcsIDIyOCwgNTMsIDEyOCwgMTExLCAKKyAgICAyMTgsIDIzLCA2NCwgNzcsIDIyOCwgNTMsIDEyOCwgMTExLCA0MiwgNDMsIDIwNCwgOTMsIDIyNiwgMTY4LCA0MiwgNDQsIAorICAgIDIwNCwgOTMsIDIyNiwgMTY4LCAyNTAsIDEsIDIxOCwgNjQsIDI1MCwgMSwgMjE4LCAyMiwgMjUwLCAxLCAyMTgsIDY1LCAKKyAgICAxNzcsIDEyOCwgMTExLCAyNTAsIDEsIDIxOCwgMjMsIDE3NywgMTI4LCAxMTEsIDIxOCwgNjUsIDc3LCAyMTgsIDIyLCAyMTgsIAorICAgIDIzLCA3NywgMjE4LCA2NCwgMjE4LCA2NSwgNzcsIDIxOCwgNjQsIDIxOCwgMjMsIDc3LCAyMTgsIDIyLCAyMTgsIDIzLCAKKyAgICAyNTIsIDMxLCAyMTgsIDY0LCAyMTgsIDIzLCAyNTIsIDMxLCAyMiwgMjM1LCA2NiwgMjUxLCA3OSwgMjQ4LCAxNTgsIDIsIAorICAgIDIxOCwgNjQsIDI0NSwgMTcxLCA2NCwgMjI2LCAxNzEsIDI0NiwgMTA0LCAyMjUsIDQ5LCAyLCAyMTcsIDEzLCAyMTYsIDE0LCAKKyAgICAyMTUsIDI0MSwgMjM1LCAxOTksIDI0NCwgMjIsIDIyOCwgNjYsIDIxOSwgMjUyLCA0MywgMjE3LCA4OCwgMjE5LCAyNTIsIAorICAgIDEyNCwgMjE3LCA4OCwgMjE5LCAyNTIsIDEyMCwgMjE3LCA4OCwgMjI1LCAxNzMsIDIsIDIyMiwgOTIsIDY3LCAyNTIsIDE0MiwgCisgICAgMjE1LCAyMTIsIDQ0LCAyMTUsIDkzLCA1MiwgNjcsIDI1MiwgMTQyLCA0MywgMjE1LCA5MywgNjcsIDI1MiwgMTQyLCA1MiwgCisgICAgNDMsIDIxNSwgOTMsIDUyLCA2NywgMjUyLCAxNDIsIDUyLCA0MywgMjE1LCA5MywgMTk5LCAyNDgsIDE1OCwgMjQzLCAyNDQsIAorICAgIDQzLCAyMzEsIDY0LCA2NCwgNTIsIDIxMywgMjM5LCAyMTksIDI1MiwgMTI0LCAyMTcsIDg5LCAyLCAyMjYsIDEyNCwgMjE5LCAKKyAgICAyNTIsIDEyMCwgMjE3LCA4OSwgMiwgMjE0LCAxODMsIDIxOSwgMjUyLCAxMjAsIDIxNywgODksIDc3LCAyMTksIDI1MiwgCisgICAgMTI0LCAyMTcsIDg4LCA1MiwgMTI0LCAyMTcsIDg4LCA1MiwgMTIwLCAyMTcsIDg4LCA1MiwgMjE4LCAxMDQsIDIyOCwgNTMsIAorICAgIDUwLCAyMjMsIDUwLCA1MiwgMjE4LCAxMDQsIDIyOCwgNTMsIDUwLCAyNDcsIDEzOSwgMjI4LCA1MywgMjQ3LCAxNzYsIDIsIAorICAgIDIyMywgNTAsIDIyOSwgMTAyLCAyMTksIDk2LCA2NywgMjMyLCAyMTUsIDIsIDI1MCwgMzcsIDQ4LCA2NywgMjMyLCAyMTUsIAorICAgIDIsIDI1MCwgMzcsIDUxLCAxMjQsIDIxNywgODksIDIsIDI1MCwgMzcsIDUxLCAyMjYsIDksIDIsIDIwMywgOTEsIDIyNiwgOSwgCisgICAgMiwgMjE2LCA5MCwgMjI2LCAxNjgsIDIxNSwgMjEyLCA2NywgMjUyLCAxNDIsIDI1MSwgMjQ1LCAyMjMsIDkyLCAyMTUsIAorICAgIDIxMiwgNjcsIDI1MiwgMTQyLCAyLCAyMDMsIDkxLCAyMTUsIDIxMiwgMjQ5LCAyMjgsIDIyNiwgMTY4LCAyMTUsIDIxMiwgCisgICAgMjI5LCA5MiwgMjMzLCAxNSwgMjE1LCAyMTIsIDIyOSwgOTIsIDI0MiwgMTMwLCAyNDYsIDExMiwgMjE5LCA5OCwgMjMzLCAKKyAgICAxNiwgMTc3LCAxMjgsIDExMSwgMjQ2LCAxMTIsIDIxOSwgOTgsIDI0MiwgMTMxLCAxNzcsIDEyOCwgMTExLCAyMTUsIDIxMiwgCisgICAgMjE5LCA0OCwgMjUxLCAyNDUsIDIyMywgOTIsIDIzMywgODYsIDIxNSwgMjEyLCA2NywgMjUyLCAxNDIsIDIyNiwgMTY4LCAKKyAgICA1MiwgMjE5LCA0OCwgMjI2LCAxNjgsIDcxLCA2NywgMTMwLCAyMzAsIDI1LCA3MSwgNjcsIDEzMCwgMjI4LCA1NywgMjQ1LCAKKyAgICAyMjEsIDcxLCA3NCwgMjI4LCA1NywgMjEyLCA5LCA3MSwgNzQsIDIxOSwgMjksIDI0NSwgMjIxLCA3MSwgNzQsIDIxOSwgMjksIAorICAgIDIxMiwgOSwgNzEsIDc0LCA0MywgNDQsIDcxLCA3NCwgMTQwLCA4NSwgNzQsIDIxNCwgMTUzLCA4NSwgNzQsIDI0NiwgMTA1LCAKKyAgICA4NSwgNzQsIDIyOCwgNTcsIDI0NSwgMjIxLCA4NSwgNzQsIDIyOCwgNTcsIDIxMiwgOSwgODUsIDc0LCAyMTksIDI5LCAyNDUsIAorICAgIDIyMSwgODUsIDc0LCAyMTksIDI5LCAyMTIsIDksIDg1LCA3NCwgNDMsIDQ0LCA4NSwgNzQsIDEyMCwgMTI0LCA4NSwgNzQsIAorICAgIDk3LCA4MCwgMiwgMjE2LCA3OCwgMjQ2LCAxMDQsIDk3LCA4MCwgMiwgMjE2LCA3OCwgMjE0LCAxNTIsIDE0MCwgODAsIDIsIAorICAgIDIxNiwgNzgsIDI0NiwgMTA0LCAxNDAsIDgwLCAyLCAyMTYsIDc4LCAyMTQsIDE1MiwgNDIsIDIsIDIxNiwgMTUsIDE2MywgCisgICAgMjUxLCAyMjIsIDQyLCAyLCAyNTEsIDE3NiwgMTYzLCAyNTEsIDIyMiwgNDIsIDIsIDIxNCwgMTYwLCA0NCwgMjQ4LCAwLCAKKyAgICAxNjMsIDI1MSwgMjIyLCA0MiwgMiwgMjMyLCAxMDksIDQzLCAyNDgsIDAsIDE2MywgMjUxLCAyMjIsIDI0NywgMjUwLCAyLCAKKyAgICA0MywgMTYzLCAyNTEsIDIyMiwgMjQ3LCAyNTAsIDIsIDQ0LCAxNjMsIDI1MSwgMjIyLCAyNDcsIDI1MCwgMiwgMjE2LCAxNSwgCisgICAgMTYzLCAyNTEsIDIyMiwgMjQ3LCAyNTAsIDIsIDI1MSwgMTc2LCAxNjMsIDI1MSwgMjIyLCAyNDYsIDExOSwgMjE4LCAyMzUsIAorICAgIDg1LCAyMzMsIDg2LCAyMTgsIDIzNSwgNzEsIDIzMywgODYsIDIxOCwgMjM1LCA4NSwgMjEzLCAxODcsIDQsIDIxOCwgMjM1LCAKKyAgICA3MSwgMjEzLCAxODcsIDQsIDIxOCwgMjM1LCA4NSwgMjI1LCAxOTEsIDcxLCAyMjUsIDE5MSwgNzEsIDI0MSwgMTk0LCA4NSwgCisgICAgMjQxLCAxOTQsIDIwMywgODUsIDI0MSwgMTk0LCA4NSwgMjMzLCA4NiwgMjUwLCAzNiwgODUsIDIzMSwgODMsIDI0NywgMjQ5LCAKKyAgICA3MSwgMjMxLCA4MywgMjQ3LCAyNDksIDg1LCAyMzEsIDgzLCAyMzIsIDEwNSwgNzEsIDIzMSwgODMsIDIzMiwgMTA1LCA4NSwgCisgICAgNCwgMjQ3LCAyNDksIDg1LCA0LCAyMzIsIDEwNSwgNzEsIDQsIDIzMiwgMTA1LCA4NSwgMjAzLCAyNDUsIDE2NSwgNzEsIAorICAgIDIwMywgMjQ1LCAxNjUsIDg1LCA2NywgMjQ1LCAxNjUsIDcxLCA2NywgMjQ1LCAxNjUsIDQzLCA4MCwgMiwgNCwgMjUwLCAzNiwgCisgICAgMTM0LCAxNDAsIDI1MywgMjQ4LCA0MywgODAsIDIsIDM3LCAyMjUsIDIzLCAxOTksIDE0MCwgMjE4LCAyMzEsIDc0LCAxNDAsIAorICAgIDIxNSwgNTgsIDgwLCAyLCA2NywgOTEsIDE0MCwgMjE1LCA1OCwgODAsIDIsIDUyLCA2NywgOTEsIDE0MCwgMjE1LCA1OCwgCisgICAgODAsIDI0MywgMjQ0LCAxMzAsIDE0MCwgMjE1LCA1OCwgMjE1LCAyMTIsIDI0OCwgMTU4LCA3NCwgMTQwLCA4MCwgMiwgMjQ2LCAKKyAgICAxMTksIDIxOCwgMTQwLCAxNDAsIDgwLCAyLCAyMTcsIDc5LCAyLCA2NywgOTEsIDE0MCwgODAsIDIsIDIxNywgNzksIDIsIAorICAgIDUyLCA2NywgOTEsIDE0MCwgMjE1LCA1OCwgODAsIDIsIDIxNywgNzgsIDE0MCwgMjE1LCA1OCwgODAsIDIsIDIxNywgNzksIAorICAgIDIsIDY3LCA5MSwgMTQwLCAyMTUsIDU4LCA4MCwgMiwgMjE3LCA3OSwgMiwgNTIsIDY3LCA5MSwgMTQwLCA4MCwgMjE2LCAKKyAgICAxNDAsIDIxMSwgMTc4LCAyMTIsIDM2LCA4MCwgMjI1LCA4LCAyNDcsIDE5NiwgMjMzLCA0NywgMjQ1LCA5OSwgNSwgNzcsIAorICAgIDE0MCwgNzQsIDIyMywgNTEsIDIxNiwgOTAsIDIyNiwgMTY5LCA3NywgMTQwLCA3NCwgMTQwLCA4MCwgNzcsIDIyMywgNTEsIAorICAgIDI1NCwgMTQ5LCAxMjgsIDExMSwgOTcsIDgwLCAyMTYsIDE0MCwgMjQyLCAxMzAsIDk3LCA4MCwgMjE2LCAxNDAsIDIxOCwgCisgICAgMjIsIDE0MCwgMjI0LCAyNSwgNzQsIDk3LCAyMjQsIDI1LCA3NCwgMjIzLCA1MSwgMjE2LCA5MCwgMjI2LCAxNjksIDc3LCAKKyAgICA5NywgNzQsIDk3LCA4MCwgNzcsIDIyMywgNTEsIDI1NCwgMTQ5LCAxMjgsIDExMSwgMjE2LCA5MCwgMjI2LCAxNjksIDc3LCAKKyAgICAxNDAsIDc0LCAxNDAsIDgwLCA3NywgMjU0LCAxNDksIDEyOCwgMTExLCAxNDAsIDgwLCA3NywgMjIzLCA1MSwgMjE2LCA5MCwgCisgICAgMjI2LCAxNjgsIDk3LCA4MCwgNzcsIDIyMywgNTEsIDIxNiwgOTAsIDIyNiwgMTY4LCA3MSwgMjMxLCA4MywgMjE4LCAxNTcsIAorICAgIDg1LCA0LCAyMTgsIDE1NywgNzEsIDQsIDIxOCwgMTU3LCA4NSwgMjIyLCAyNDgsIDIyNSwgMTkxLCA3MSwgMjIyLCAyNDgsIAorICAgIDIyNSwgMTkxLCAxMTQsIDIzMywgODYsIDI1MCwgMzYsIDExNCwgMjI2LCAxMjUsIDIsIDIyNiwgMTI1LCAyMzUsIDIxNiwgCisgICAgMTE0LCAyNTAsIDM3LCAyLCAyNTAsIDM3LCAyMzUsIDIxNiwgMTE0LCAyNTAsIDM2LCAxMTQsIDM3LCAyMjEsIDI1NSwgMTQ1LCAKKyAgICA2LCAxLCAyNTMsIDE2MCwgMTQ1LCA2LCAxLCAyNTEsIDExOCwgMTQ1LCA2LCAxLCAyMTMsIDI1MywgMTQ1LCA2LCAxLCAyNDIsIAorICAgIDE4NiwgMTQ1LCA2LCAxLCAyNDcsIDE0MSwgMTQ1LCA2LCAxLCAyMTEsIDIxLCAxNDUsIDYsIDEsIDIxMCwgNjgsIDE0NSwgNiwgCisgICAgMSwgMjQ2LCAzNSwgMTQ1LCA2LCAxLCAyMTAsIDkxLCAxNDUsIDYsIDEsIDIzNSwgMTQ5LCAxNDUsIDYsIDEsIDY1LCAyMzUsIAorICAgIDE0OSwgMTQ1LCA2LCAxLCA3MywgMTQ1LCA2LCAxLCAyNDcsIDE2MSwgMTQ1LCA2LCAxLCAyMzQsIDI0MSwgMTQ1LCA2LCAxLCAKKyAgICAyMzIsIDE4NywgMTQ1LCA2LCAxLCAyMzAsIDMwLCAxNDUsIDYsIDEsIDIyOSwgMTkyLCAxNDUsIDYsIDEsIDIyNiwgMTg2LCAKKyAgICAxNDUsIDYsIDEsIDIyNSwgNSwgMTQ1LCA2LCAxLCAyMjIsIDIyOCwgMTQ1LCA2LCAxLCAyMTksIDg0LCAxNDUsIDYsIDEsIAorICAgIDIxNSwgODEsIDE0NSwgNiwgMSwgMjE0LCAyMDEsIDE0NSwgNiwgMSwgMjQzLCAyNDcsIDE0NSwgNiwgMSwgMjQxLCAyMDAsIAorICAgIDE0NSwgNiwgMSwgMjI2LCAxMzYsIDE0NSwgNiwgMSwgMjI1LCAyMjIsIDE0NSwgNiwgMSwgMjE5LCAyMjksIDE0NSwgNiwgMSwgCisgICAgMjE1LCAxNjgsIDE0NSwgNiwgMSwgMjUwLCA3NiwgMTQ1LCA2LCAxLCAyMjAsIDEwMywgMTQ1LCA2LCAxLCAyMTEsIDI3LCAKKyAgICAxNDUsIDYsIDEsIDIxMSwgMjksIDE0NSwgNiwgMSwgMjExLCA1NywgMTQ1LCA2LCAxLCAyMTgsIDI1NCwgMTYyLCAxNDUsIDYsIAorICAgIDEsIDIxMCwgMjEyLCAxNDUsIDYsIDEsIDQsIDIxMCwgMTgzLCAxNDUsIDYsIDEsIDQsIDIxMCwgMTg0LCAyLCAyMTcsIDc4LCAKKyAgICAxNDUsIDYsIDEsIDIxMCwgMjQ0LCAxNDUsIDYsIDEsIDIzNSwgMTg1LCA0LCAyMTAsIDE4MywgMTQ1LCA2LCAxLCAyNTEsIAorICAgIDI1MCwgMjEwLCAxODMsIDE0NSwgNiwgMSwgMjM1LCAxODUsIDI1MSwgMjUwLCAyMTAsIDE4MywgMTQ1LCA2LCAxLCAyNDQsIAorICAgIDgzLCAxNDUsIDYsIDEsIDIzNSwgMTQ3LCAxNDUsIDYsIDEsIDIxOSwgMjI4LCAxNDUsIDYsIDEsIDIxNSwgMjAzLCA2MSwgCisgICAgMTQ1LCA2LCAxLCAyMzMsIDc2LCAyMzAsIDMwLCAxNDUsIDQsIDEsIDI1MywgMTYwLCAxNDUsIDQsIDEsIDI1MSwgMTE4LCAKKyAgICAxNDUsIDQsIDEsIDIxMywgMjUzLCAxNDUsIDQsIDEsIDI0MiwgMTg2LCAxNDUsIDQsIDEsIDI0NywgMTQxLCAxNDUsIDQsIDEsIAorICAgIDIxMSwgMjEsIDE0NSwgNCwgMSwgMjEwLCA2OCwgMTQ1LCA0LCAxLCAyNDYsIDM1LCAxNDUsIDQsIDEsIDIxMCwgOTEsIDE0NSwgCisgICAgNCwgMSwgMjM1LCAxNDksIDE0NSwgNCwgMSwgNjUsIDIzNSwgMTQ5LCAxNDUsIDQsIDEsIDczLCAxNDUsIDQsIDEsIDI0NywgCisgICAgMTYxLCAxNDUsIDQsIDEsIDIzNCwgMjQxLCAxNDUsIDQsIDEsIDIzMiwgMTg3LCAxNDUsIDQsIDEsIDIzMCwgMzAsIDE0NSwgCisgICAgNCwgMSwgMjI5LCAxOTIsIDE0NSwgNCwgMSwgMjI2LCAxODYsIDE0NSwgNCwgMSwgMjI1LCA1LCAxNDUsIDQsIDEsIDIyMiwgCisgICAgMjI4LCAxNDUsIDQsIDEsIDIxOSwgODQsIDE0NSwgNCwgMSwgMjE1LCA4MSwgMTQ1LCA0LCAxLCAyMTQsIDIwMSwgMTQ1LCA0LCAKKyAgICAxLCAyNDMsIDI0NywgMTQ1LCA0LCAxLCAyNDEsIDIwMCwgMTQ1LCA0LCAxLCAyMjYsIDEzNiwgMTQ1LCA0LCAxLCAyMjUsIAorICAgIDIyMiwgMTQ1LCA0LCAxLCAyMTksIDIyOSwgMTQ1LCA0LCAxLCAyMTUsIDE2OCwgMTQ1LCA0LCAxLCAyNTAsIDc2LCAxNDUsIAorICAgIDQsIDEsIDIyMCwgMTAzLCAxNDUsIDQsIDEsIDIxMSwgMjcsIDE0NSwgNCwgMSwgMjExLCAyOSwgMTQ1LCA0LCAxLCAyMTEsIAorICAgIDU3LCAxNDUsIDQsIDEsIDIxOCwgMjU0LCAxNjIsIDE0NSwgNCwgMSwgMjEwLCAyMTIsIDE0NSwgNCwgMSwgNCwgMjEwLCAKKyAgICAxODMsIDE0NSwgNCwgMSwgNCwgMjEwLCAxODQsIDIsIDIxNywgNzgsIDE0NSwgNCwgMSwgMjEwLCAyNDQsIDE0NSwgNCwgMSwgCisgICAgMjM1LCAxODUsIDQsIDIxMCwgMTgzLCAxNDUsIDQsIDEsIDI1MSwgMjUwLCAyMTAsIDE4MywgMTQ1LCA0LCAxLCAyMzUsIAorICAgIDE4NSwgMjUxLCAyNTAsIDIxMCwgMTgzLCAxNDUsIDQsIDEsIDI0NCwgODMsIDE0NSwgNCwgMSwgMjM1LCAxNDcsIDE0NSwgNCwgCisgICAgMSwgMjE5LCAyMjgsIDE0NSwgNCwgMSwgMjE1LCAyMDMsIDYxLCAxNDUsIDQsIDEsIDIzMywgNzYsIDIzMCwgMzAsIDcsIDYsIAorICAgIDEsIDIzMywgMTUwLCAyLCA1MiwgMTMwLCA3LCA0LCAxLCAyMzMsIDE1MCwgMiwgNTIsIDEzMCwgNywgNiwgMSwgMjMzLCAKKyAgICAxNTAsIDIsIDIzMCwgMjI1LCAxODMsIDcsIDYsIDEsIDIyNiwgMTA3LCAyLCA5MSwgNywgNiwgMSwgMjIzLCAyMjUsIDIsIAorICAgIDIxNywgNzgsIDcsIDQsIDEsIDExNSwgMiwgOTEsIDcsIDQsIDEsIDIxNywgMTU0LCAyLCAyNDgsIDAsIDkxLCA3LCA2LCAxLCAKKyAgICAyNDIsIDYyLCAyLCAyNDgsIDQwLCA3LCA0LCAxLCAyNDIsIDYyLCAyLCAyNDgsIDQwLCA3LCA2LCAxLCAyMzUsIDI1LCAyLCAKKyAgICAyNDgsIDQwLCA3LCA0LCAxLCAyMzUsIDI1LCAyLCAyNDgsIDQwLCA3LCA2LCAxLCAyMTAsIDE2MCwgMiwgMjQ4LCA0MCwgNywgCisgICAgNCwgMSwgMjEwLCAxNjAsIDIsIDI0OCwgNDAsIDcsIDYsIDEsIDI1NCwgMTQ0LCA3LCA2LCAxLCAyMzIsIDUxLCAyLCAxMDMsIAorICAgIDcsIDYsIDEsIDIxNSwgOTQsIDYxLCA3LCA2LCAxLCAyMTUsIDk0LCAyNTQsIDE0NCwgNywgNCwgMSwgMjE0LCAxMDYsIDIsIAorICAgIDQ0LCAxMDMsIDcsIDYsIDEsIDIxMiwgOTksIDIsIDEwMywgNywgNCwgMSwgMjEyLCA5OSwgMiwgMTAzLCA3LCA0LCAxLCAKKyAgICAyMTQsIDEwNiwgMiwgMjQ5LCAxMDEsIDcsIDYsIDEsIDE2MywgMjQyLCA2MSwgNywgNCwgMSwgMTYzLCAyNDIsIDYxLCA3LCAKKyAgICA0LCAxLCAyMTcsIDc2LCAyMjUsIDEzNCwgNywgNCwgMSwgMTYwLCAyLCAyMjgsIDUxLCA3LCA0LCAxLCAyMTUsIDk0LCAyMjMsIAorICAgIDIyNSwgMiwgMjE3LCA3OCwgNywgNCwgMSwgMTQ0LCAyLCAxMjEsIDIyMiwgMjM1LCAyMzUsIDIxNiwgNywgMSwgNCwgNiwgCisgICAgMjE1LCA5NCwgNzUsIDcsIDIxOCwgNjYsIDQsIDEsIDIzNSwgMTQ1LCA1OCwgMSwgNiwgMjE0LCAxMDUsIDcsIDYsIDEsIAorICAgIDIyMiwgOTMsIDIsIDIxNywgMjUxLCAyMTcsIDc4LCA3LCA2LCAxLCAyMTAsIDE2MCwgMiwgMjE3LCAyNTEsIDIxNywgNzgsIAorICAgIDgxLCA2LCAxLCAyNTQsIDE2NSwgODEsIDQsIDEsIDI1NCwgMTY1LCA4MSwgNiwgMSwgMjEzLCAxNzMsIDgxLCA0LCAxLCAKKyAgICAyMTMsIDE3MywgODEsIDYsIDEsIDI0MywgMTA4LCA4MSwgNCwgMSwgMjQzLCAxMDgsIDgxLCA2LCAxLCAyNDgsIDE5MiwgODEsIAorICAgIDQsIDEsIDI0OCwgMTkyLCA4MSwgNiwgMSwgMjQ1LCAxOTUsIDgxLCA0LCAxLCAyNDUsIDE5NSwgODEsIDYsIDEsIDIxOSwgCisgICAgMzQsIDgxLCA0LCAxLCAyMTksIDM0LCA4MSwgNiwgMSwgMjEwLCAxMDEsIDgxLCA0LCAxLCAyMTAsIDEwMSwgODEsIDYsIDEsIAorICAgIDI0MSwgMjQ5LCA4MSwgNCwgMSwgMjQxLCAyNDksIDgxLCA2LCAxLCAyMTYsIDE3OCwgODEsIDQsIDEsIDIxNiwgMTc4LCA4MSwgCisgICAgNiwgMSwgMjQwLCAxMTcsIDgxLCA0LCAxLCAyNDAsIDExNywgODEsIDYsIDEsIDIzNCwgMjI4LCA4MSwgNCwgMSwgMjM0LCAKKyAgICAyMjgsIDgxLCA2LCAxLCAyMzMsIDczLCA4MSwgNCwgMSwgMjMzLCA3MywgODEsIDYsIDEsIDIzMCwgMjMxLCA4MSwgNCwgMSwgCisgICAgMjMwLCAyMzEsIDgxLCA2LCAxLCAyMjgsIDIzNCwgODEsIDQsIDEsIDIyOCwgMjM0LCA4MSwgNiwgMSwgMjMzLCAyMzQsIDgxLCAKKyAgICA0LCAxLCAyMzMsIDIzNCwgODEsIDYsIDEsIDc2LCA4MSwgNCwgMSwgNzYsIDgxLCA2LCAxLCAyMjUsIDEwOSwgODEsIDQsIDEsIAorICAgIDIyNSwgMTA5LCA4MSwgNiwgMSwgMjIyLCAyMTIsIDgxLCA0LCAxLCAyMjIsIDIxMiwgODEsIDYsIDEsIDIxOSwgMTY2LCA4MSwgCisgICAgNCwgMSwgMjE5LCAxNjYsIDgxLCA2LCAxLCAyMTcsIDQyLCA4MSwgNCwgMSwgMjE3LCA0MiwgODEsIDYsIDEsIDIxNCwgMjI5LCAKKyAgICA4MSwgNCwgMSwgMjE0LCAyMjksIDgxLCA2LCAxLCAyNDQsIDEyMiwgODEsIDQsIDEsIDI0NCwgMTIyLCA4MSwgNiwgMSwgCisgICAgMjM0LCAxMTMsIDgxLCA0LCAxLCAyMzQsIDExMywgODEsIDYsIDEsIDIyNCwgMTYyLCA4MSwgNCwgMSwgMjI0LCAxNjIsIDgxLCAKKyAgICA2LCAxLCAyMjYsIDE3OSwgODEsIDQsIDEsIDIyNiwgMTc5LCA4MSwgNiwgMSwgMjQ3LCAyNTQsIDI1NCwgMTcxLCA4MSwgNCwgCisgICAgMSwgMjQ3LCAyNTQsIDI1NCwgMTcxLCA4MSwgNiwgMSwgNTUsIDgxLCAyNTQsIDE5NywgODEsIDQsIDEsIDU1LCA4MSwgMjU0LCAKKyAgICAxOTcsIDgxLCA2LCAxLCAyNDksIDExNiwgMjQ1LCAxOTUsIDgxLCA0LCAxLCAyNDksIDExNiwgMjQ1LCAxOTUsIDgxLCA2LCAKKyAgICAxLCAyNDcsIDI1NCwgMjM0LCAyMjgsIDgxLCA0LCAxLCAyNDcsIDI1NCwgMjM0LCAyMjgsIDgxLCA2LCAxLCAyNDcsIDI1NCwgCisgICAgMjI4LCAyMzQsIDgxLCA0LCAxLCAyNDcsIDI1NCwgMjI4LCAyMzQsIDgxLCA2LCAxLCAyNDksIDExNiwgMjI4LCAyMzQsIDgxLCAKKyAgICA0LCAxLCAyNDksIDExNiwgMjI4LCAyMzQsIDgxLCA2LCAxLCA1NSwgODEsIDIyNiwgMTc5LCA4MSwgNCwgMSwgNTUsIDgxLCAKKyAgICAyMjYsIDE3OSwgODEsIDYsIDEsIDIyMSwgMjQ3LCA4MSwgNCwgMSwgMjIxLCAyNDcsIDgxLCA2LCAxLCAyNDksIDEyOSwgCisgICAgMjIwLCA1NiwgODEsIDQsIDEsIDI0OSwgMTI5LCAyMjAsIDU2LCA4MSwgNiwgMSwgNTUsIDgxLCAyMjAsIDU2LCA4MSwgNCwgCisgICAgMSwgNTUsIDgxLCAyMjAsIDU2LCA4MSwgNiwgMSwgNTUsIDgxLCAyNDUsIDc2LCA4MSwgNCwgMSwgNTUsIDgxLCAyNDUsIDc2LCAKKyAgICA4MSwgNiwgMSwgMjU0LCAxODMsIDIzNCwgMTE4LCA4MSwgNCwgMSwgMjU0LCAxODMsIDIzNCwgMTE4LCA4MSwgNiwgMSwgCisgICAgMjQ3LCAyNTQsIDI0MSwgNDYsIDgxLCA0LCAxLCAyNDcsIDI1NCwgMjQxLCA0NiwgODEsIDYsIDEsIDU1LCA4MSwgMjQxLCAKKyAgICA0NiwgODEsIDQsIDEsIDU1LCA4MSwgMjQxLCA0NiwgODEsIDYsIDEsIDU1LCA4MSwgMTYyLCA4MSwgNCwgMSwgNTUsIDgxLCAKKyAgICAxNjIsIDgxLCA2LCAxLCAyMzMsIDE0OSwgMTYyLCA4MSwgNCwgMSwgMjMzLCAxNDksIDE2MiwgODEsIDYsIDEsIDU1LCA4MSwgCisgICAgMjQxLCAyMTgsIDgxLCA0LCAxLCA1NSwgODEsIDI0MSwgMjE4LCA4MSwgNiwgMSwgNTUsIDgxLCAyNDEsIDI1MiwgODEsIDQsIAorICAgIDEsIDU1LCA4MSwgMjQxLCAyNTIsIDgxLCA2LCAxLCA1NSwgODEsIDI0MywgMTAzLCA4MSwgNCwgMSwgNTUsIDgxLCAyNDMsIAorICAgIDEwMywgODEsIDYsIDEsIDU1LCA4MSwgMjQ3LCAxNjQsIDgxLCA0LCAxLCA1NSwgODEsIDI0NywgMTY0LCA4MSwgNiwgMSwgCisgICAgNTUsIDgxLCAyMjAsIDIzLCA4MSwgNCwgMSwgNTUsIDgxLCAyMjAsIDIzLCA4MSwgNiwgMSwgNTUsIDIyNywgMjA5LCAyMjAsIAorICAgIDIzLCA4MSwgNCwgMSwgNTUsIDIyNywgMjA5LCAyMjAsIDIzLCA4MSwgNiwgMSwgNTUsIDIyNywgMjA5LCAyMjksIDI4LCA4MSwgCisgICAgNCwgMSwgNTUsIDIyNywgMjA5LCAyMjksIDI4LCA4MSwgNiwgMSwgNTUsIDIyNywgMjA5LCAyMjcsIDE0OSwgODEsIDQsIDEsIAorICAgIDU1LCAyMjcsIDIwOSwgMjI3LCAxNDksIDgxLCA2LCAxLCA1NSwgMjI3LCAyMDksIDIxMiwgMzcsIDgxLCA0LCAxLCA1NSwgCisgICAgMjI3LCAyMDksIDIxMiwgMzcsIDgxLCAxNiwgMjM0LCAyNDcsIDgxLCAxNiwgMjMwLCAyMzIsIDIyMiwgMjEyLCA4MSwgMTYsIAorICAgIDIyNSwgMTEwLCAyMjIsIDIxMiwgODEsIDE2LCAyMTgsIDE0OCwgODEsIDE2LCAyMTcsIDQzLCAyMjIsIDIxMiwgODEsIDE2LCAKKyAgICAyMzQsIDExNCwgMjIyLCAyMTIsIDgxLCAxNiwgMjIwLCAyNCwgMjE5LCAxNjYsIDgxLCA2LCAxLCAyNDksIDExNiwgMjIwLCAKKyAgICA1NiwgODEsIDQsIDEsIDI0OSwgMTE2LCAyMjAsIDU2LCA4MSwgNiwgMSwgMjQ5LCAxMTYsIDI0MywgMTAzLCA4MSwgNCwgMSwgCisgICAgMjQ5LCAxMTYsIDI0MywgMTAzLCA4MSwgMzgsIDIyOCwgMjM1LCA0OCwgODEsIDM4LCAyMTgsIDI0OCwgMjUzLCAyMjUsIDgxLCAKKyAgICAzOCwgMjE4LCAyNDgsIDIzMywgMjIsIDgxLCA2LCAxLCAyNTEsIDIwMCwgMjM0LCAxMTgsIDgxLCA0LCAxLCAyNTEsIDIwMCwgCisgICAgMjM0LCAxMTgsIDgxLCA1NSwgMjI3LCAyMDksIDI0MywgMjMwLCAyMTgsIDEzMCwgODEsIDU1LCAyMjcsIDIwOSwgMjQ3LCAKKyAgICAxOTgsIDIyNCwgMTQsIDc4LCA4MSwgNTUsIDIyNywgMjA5LCAyMzUsIDIzOCwgMjI0LCAxNCwgNzgsIDgxLCA1NSwgMjI3LCAKKyAgICAyMDksIDIxMywgMjQxLCAyNDcsIDE3MywgODEsIDI0NCwgMywgMTIzLCAyNDIsIDI4LCA4MSwgMjQzLCAyMzAsIDIxOCwgCisgICAgMTMwLCA4MSwgMjMwLCAxMjUsIDI0NywgMTczLCA5OCwgNCwgMSwgMjU0LCAxMjQsIDk4LCA0LCAxLCAyNTIsIDE1MywgOTgsIAorICAgIDQsIDEsIDI0MywgMTA3LCA5OCwgNCwgMSwgMjQ3LCAxMjksIDk4LCA0LCAxLCAyNDUsIDE1MSwgOTgsIDQsIDEsIDIxMywgCisgICAgMTYwLCA5OCwgNCwgMSwgMjEwLCA4OSwgOTgsIDQsIDEsIDIxNywgNjEsIDk4LCA0LCAxLCAyMzYsIDAsIDk4LCA0LCAxLCAKKyAgICAyMzQsIDIzNSwgOTgsIDQsIDEsIDIzMywgODIsIDk4LCA0LCAxLCAyMzEsIDE4NiwgOTgsIDQsIDEsIDIyOSwgMTk2LCA5OCwgCisgICAgNCwgMSwgMjI2LCAxOTcsIDk4LCA0LCAxLCAyMjYsIDE4LCA5OCwgNCwgMSwgMjEwLCA3OCwgOTgsIDQsIDEsIDIyMywgMTcyLCAKKyAgICA5OCwgNCwgMSwgMjIxLCAyNDQsIDk4LCA0LCAxLCAyMTcsIDUxLCA5OCwgNCwgMSwgMjE0LCAxOTAsIDk4LCA0LCAxLCAyMjUsIAorICAgIDE0MSwgOTgsIDQsIDEsIDIzNCwgMTIyLCA5OCwgNCwgMSwgMjQyLCAyNDIsIDk4LCA0LCAxLCAyMjQsIDc0LCA5OCwgNCwgMSwgCisgICAgMjIwLCAyMSwgOTgsIDQsIDEsIDI1MCwgOTgsIDk4LCA0LCAxLCAyNTEsIDgsIDk4LCA0LCAxLCAyMzUsIDEwMSwgOTgsIDQsIAorICAgIDEsIDI1MCwgNDEsIDk4LCA0LCAxLCAyNTAsIDE0NCwgOTgsIDQsIDEsIDIxMSwgMTYzLCA5OCwgNCwgMSwgMjM1LCAxMTIsIAorICAgIDk4LCA0LCAxLCAyNDIsIDQ0LCA5OCwgNCwgMSwgMjQxLCAyMzksIDk4LCA0LCAxLCAyNDEsIDE3NiwgOTgsIDQsIDEsIDIxMiwgCisgICAgMjIsIDk4LCA0LCAxLCAyNDIsIDUsIDk4LCA0LCAxLCAyNDEsIDY2LCA5OCwgNCwgMSwgMjEwLCAyNDYsIDk4LCA0LCAxLCAKKyAgICAyNTQsIDIzMywgMjE2LCAxMDksIDEsIDE5MSwgMjE2LCAxMDksIDEsIDIxMSwgOTksIDIxNiwgMTA5LCAxLCAyMTEsIDk4LCAKKyAgICAyMTYsIDEwOSwgMSwgMjExLCA4OCwgMjE2LCAxMDksIDEsIDIxMSwgODYsIDIxNiwgMTA5LCAxLCAyNTIsIDMzLCAyNTUsIAorICAgIDE3LCAyMTEsIDgxLCAyMTYsIDEwOSwgMSwgMjExLCA4MSwgMjE2LCAxMDksIDEsIDIxMSwgOTYsIDIxNiwgMTA5LCAxLCAKKyAgICAyMTEsIDkzLCAyMTYsIDEwOSwgMSwgMjExLCA5NSwgMjE2LCAxMDksIDEsIDIxMSwgOTQsIDIxNiwgMTA5LCAxLCAyMTEsIAorICAgIDEyLCAyMTYsIDEwOSwgMSwgMjExLCA5MCwgMjE2LCAxMDksIDEsIDIxMSwgNzksIDIxNiwgMTA5LCAxLCAyMTUsIDExNiwgCisgICAgMjExLCA3OSwgMjE2LCAxMDksIDEsIDIxMSwgNzYsIDIxNiwgMTA5LCAxLCAyMTEsIDg0LCAyMTYsIDEwOSwgMSwgMjUyLCAKKyAgICAzMywgMjU1LCAxNywgMjExLCA4NCwgMjE2LCAxMDksIDEsIDIxNSwgMTE2LCAyMTEsIDg0LCAyMTYsIDEwOSwgMSwgMjExLCAKKyAgICA4MywgMjE2LCAxMDksIDEsIDIxMSwgMTAzLCAyMTYsIDEwOSwgMSwgMjExLCA3NywgMjE2LCAxMDksIDEsIDIxNSwgMTE2LCAKKyAgICAyMTEsIDc3LCAyMTYsIDEwOSwgMSwgMjExLCA2NiwgMjE2LCAxMDksIDEsIDIxNSwgMTE2LCAyMTEsIDY2LCAyMTYsIDEwOSwgCisgICAgMSwgMjExLCA4LCAyMTYsIDEwOSwgMSwgMjExLCA0OSwgMjE2LCAxMDksIDEsIDI1NCwgMjA4LCAyMTEsIDQ5LCAyMTYsIAorICAgIDEwOSwgMSwgMjE1LCAxMTYsIDIxMSwgNDksIDIxNiwgMTA5LCAxLCAyMTEsIDc1LCAyMTYsIDEwOSwgMSwgMjExLCA3NCwgCisgICAgMjE2LCAxMDksIDEsIDIxMSwgNzEsIDIxNiwgMTA5LCAxLCAyMTUsIDExNiwgMjExLCA4NSwgMjE2LCAxMDksIDEsIDIxNSwgCisgICAgMTE2LCAyMTEsIDY5LCAyMTYsIDEwOSwgMSwgMjExLCA2NywgMjE2LCAxMDksIDEsIDIxMCwgMjEyLCAyMTYsIDEwOSwgMSwgCisgICAgMjExLCA2NCwgMjE2LCAxMDksIDEsIDIxMSwgNjMsIDIxNiwgMTA5LCAxLCAyMTEsIDg3LCAyMTYsIDEwOSwgMSwgMjE1LCAKKyAgICAxMTYsIDIxMSwgODcsIDIxNiwgMTA5LCAxLCAyNTMsIDE2NCwgMjExLCA4NywgMjE2LCAxMDksIDEsIDIxMSwgNjIsIDIxNiwgCisgICAgMTA5LCAxLCAyMTEsIDYwLCAyMTYsIDEwOSwgMSwgMjExLCA2MSwgMjE2LCAxMDksIDEsIDIxMSwgNTksIDIxNiwgMTA5LCAxLCAKKyAgICAyMTEsIDU4LCAyMTYsIDEwOSwgMSwgMjExLCA5NywgMjE2LCAxMDksIDEsIDIxMSwgNTYsIDIxNiwgMTA5LCAxLCAyMTEsIAorICAgIDU0LCAyMTYsIDEwOSwgMSwgMjExLCA1MywgMjE2LCAxMDksIDEsIDIxMSwgNTIsIDIxNiwgMTA5LCAxLCAyMTEsIDUwLCAKKyAgICAyMTYsIDEwOSwgMSwgMjE3LCAzNSwgMjExLCA1MCwgMjE2LCAxMDksIDEsIDIxMSwgNDgsIDIxNiwgMTA5LCAxLCAyMTEsIAorICAgIDQ3LCAyMTYsIDEwOSwgMSwgMjEwLCAyNDQsIDIxNiwgMTA5LCA1OCwgMSwgMjMzLCAxMjcsIDc4LCAyMTYsIDEwOSwgMjIwLCAKKyAgICAxMzksIDc4LCAyMTYsIDEwOSwgMTE2LCAyMzUsIDY0LCAyOSwgMywgMjMyLCAxNTYsIDI5LCAzLCAyMzAsIDE2MSwgMjksIDMsIAorICAgIDIyMiwgMjEwLCAyOSwgMywgMjE5LCA1OCwgMjksIDMsIDIyMCwgNywgMjksIDMsIDI1MSwgMjA1LCAyOSwgMywgMjE2LCA0MiwgCisgICAgMjksIDMsIDI0OSwgMjM4LCAyOSwgMywgMjI4LCA3MywgMjksIDMsIDIyNywgMTM0LCAyOSwgMywgMjQyLCAxODEsIDIyNywgCisgICAgMSwgMjksIDMsIDIxMCwgMjIsIDI5LCAzLCAyNDcsIDE0NCwgMjksIDMsIDI0OCwgMTA1LCAyOSwgMywgMjM1LCA2OCwgMjksIAorICAgIDMsIDIxNiwgMTU2LCAyOSwgMywgMjUwLCA4NiwgMjksIDMsIDIyNSwgMTIxLCAyOSwgMywgMjI1LCAxNiwgMjksIDMsIDI0MywgCisgICAgMCwgMjksIDMsIDI0MiwgMjUyLCAyOSwgMywgMjQyLCAyNTMsIDI5LCAzLCAyNDIsIDI1NCwgMjksIDMsIDIxOCwgMjI0LCAKKyAgICAyOSwgMywgMjE4LCAxODAsIDI5LCAzLCAyMTgsIDE5MywgMjksIDMsIDIxOCwgMjIzLCAyOSwgMywgMjE4LCAxOTcsIDI5LCAKKyAgICAzLCAyMTgsIDE5OCwgMjksIDMsIDIxOCwgMTg1LCAyOSwgMywgMjUwLCAyMTQsIDI5LCAzLCAyNTAsIDE5MywgMjksIDMsIAorICAgIDI1MCwgMTk1LCAyOSwgMywgMjUwLCAyMTMsIDI5LCAzLCAyNTAsIDIxMSwgMjksIDMsIDI1MCwgMjEyLCAyOSwgMywgMjUwLCAKKyAgICAxOTQsIDI5LCAzLCAyMDksIDI0MywgMjksIDMsIDIwOSwgMjIxLCAyOSwgMywgMjA5LCAyMzQsIDI5LCAzLCAyMDksIDI0MiwgCisgICAgMjksIDMsIDIwOSwgMjM3LCAyOSwgMywgMjA5LCAyMzgsIDI5LCAzLCAyMDksIDIyNiwgMjksIDMsIDI1MCwgMjA5LCAyOSwgCisgICAgMywgMjUwLCAxOTYsIDI5LCAzLCAyNTAsIDE5OCwgMjksIDMsIDI1MCwgMjA4LCAyOSwgMywgMjUwLCAyMDYsIDI5LCAzLCAKKyAgICAyNTAsIDIwNywgMjksIDMsIDI1MCwgMTk3LCAyOSwgMywgMjIzLCAyMzcsIDI5LCAzLCAyMjMsIDIyNywgMjksIDMsIDIyMywgCisgICAgMjMzLCAyOSwgMywgMjIzLCAyMzYsIDI5LCAzLCAyMjMsIDIzNCwgMjksIDMsIDIyMywgMjM1LCAyOSwgMywgMjIzLCAyMzIsIAorICAgIDI5LCAzLCAyMzMsIDE2MCwgMjksIDMsIDIzMywgMTUyLCAyOSwgMywgMjMzLCAxNTUsIDI5LCAzLCAyMzMsIDE1OSwgMjksIAorICAgIDMsIDIzMywgMTU2LCAyOSwgMywgMjMzLCAxNTcsIDI5LCAzLCAyMzMsIDE1MywgMjksIDMsIDIxMSwgMTMwLCAyOSwgMywgCisgICAgMjExLCAxMjAsIDI5LCAzLCAyMTEsIDEyNiwgMjksIDMsIDIxMSwgMTI5LCAyOSwgMywgMjExLCAxMjcsIDI5LCAzLCAyMTEsIAorICAgIDEyOCwgMjksIDMsIDIxMSwgMTI1LCAyOSwgMywgMjQyLCA3MiwgMjksIDMsIDI0MiwgNjMsIDI5LCAzLCAyNDIsIDY2LCAyOSwgCisgICAgMywgMjQyLCA3MSwgMjksIDMsIDI0MiwgNjgsIDI5LCAzLCAyNDIsIDY5LCAyOSwgMywgMjQyLCA2NSwgMzgsIDMzLCAxLCAKKyAgICAyNTIsIDc2LCAzOCwgMzMsIDEsIDIxMywgMjU1LCAzOCwgMzMsIDEsIDI0MiwgMjM3LCAzOCwgMzMsIDEsIDI0OCwgOTEsIAorICAgIDM4LCAzMywgMSwgMjEwLCA3NCwgMzgsIDMzLCAxLCAyMTAsIDk0LCAzOCwgMzMsIDEsIDE3NiwgMzgsIDMzLCAxLCAyNDUsIAorICAgIDE3NSwgMzgsIDMzLCAxLCAyNDUsIDE2MCwgMzgsIDMzLCAxLCAyNDUsIDE1MSwgMzgsIDMzLCAxLCA3NiwgMzgsIDMzLCAxLCAKKyAgICAyMjUsIDIyMiwgMzgsIDMzLCAxLCAyNDUsIDkzLCAzOCwgMzMsIDEsIDI0NSwgODMsIDM4LCAzMywgMSwgMjE3LCAyMywgMzgsIAorICAgIDMzLCAxLCAxNjIsIDM4LCAzMywgMSwgMjE1LCAxNzksIDM4LCAzMywgMSwgMjUwLCAxMzIsIDM4LCAzMywgMSwgMjIwLCAKKyAgICAxMDMsIDM4LCAzMywgMSwgMjIwLCA2NiwgMzgsIDMzLCAxLCAyNDQsIDgzLCAzOCwgMzMsIDEsIDI0NSwgODIsIDM4LCAzMywgCisgICAgMSwgNjEsIDM4LCAzMywgMSwgMjM2LCA2MSwgMzgsIDMzLCAxLCAyNDcsIDE2MiwgMzgsIDMzLCAxLCAyMzAsIDE0MSwgMjE0LCAKKyAgICAyMDUsIDM4LCAzMywgMSwgMjExLCA1OSwgMzgsIDMzLCAxLCAyMTAsIDIxMiwgMzgsIDMzLCAxLCAyMzUsIDE4NCwgNjEsIAorICAgIDM4LCAzMywgMSwgMjMyLCAxOTMsIDIxMCwgMTgzLCAzOCwgMzMsIDEsIDI1MSwgMjUwLCAyMTAsIDE4MywgMzgsIDMzLCAxLCAKKyAgICAyMzUsIDE4NCwgMjUxLCAyNTAsIDIxMCwgMTgzLCA0NCwgMjU0LCAxMTEsIDIxOCwgNjEsIDIzMSwgMTU1LCA0NCwgMjU0LCAKKyAgICAxMTEsIDI0NiwgMTE5LCAyMTgsIDYxLCAyMzEsIDE1NSwgNDMsIDIxOCwgNjEsIDEyNywgNDQsIDIxOCwgNjEsIDEyNywgNDMsIAorICAgIDI0NiwgMTE5LCAyMTgsIDYxLCAxMjcsIDQ0LCAyNDYsIDExOSwgMjE4LCA2MSwgMTI3LCAyMjMsIDE1OCwgMjM1LCAyMDMsIAorICAgIDIzMSwgMTU1LCAyMjMsIDE1OCwgMjQ2LCAxMTksIDIzNSwgMjAzLCAyMzEsIDE1NSwgMjQ2LCAxMTksIDIxNSwgMjQyLCAKKyAgICAyMzEsIDE1NSwgNDMsIDIxNSwgMjQyLCAxMjcsIDQ0LCAyMTUsIDI0MiwgMTI3LCAyMjMsIDE1OCwgMjE4LCAyMzUsIDQzLCAKKyAgICAyMjMsIDE1OCwgMjI2LCAxOTksIDEyNywgNDQsIDIyMywgMTU4LCAyMjYsIDE5OSwgMTI3LCAyNDUsIDIxMSwgMjQ5LCAxNTksIAorICAgIDIyNiwgMTQsIDI0NCwgMjMsIDIyNiwgMTQsIDIyMywgNTAsIDI0NCwgMjMsIDIyNiwgMTQsIDI0MCwgMTY2LCAyNDYsIDExOSwgCisgICAgMjI2LCAyNTIsIDI0NiwgMTA1LCAyNTQsIDEyMCwgMjE0LCAxNTMsIDI1NCwgMTIwLCAyNDYsIDExOSwgMjIyLCAyNDgsIAorICAgIDI1NCwgMTEwLCA1MiwgMjI2LCAyNDksIDI0MCwgMTY5LCAyMzUsIDE5NCwgMjM1LCAyMDIsIDIyNiwgNjAsIDI1MSwgMTU1LCAKKyAgICAyNDAsIDE3MCwgMiwgMjQ4LCAyLCAyMTYsIDkwLCAyLCAyMjIsIDIzNSwgNDgsIDQzLCAxMjEsIDIyNiwgNiwgMTI3LCA0NCwgCisgICAgMTIxLCAyMjYsIDYsIDEyNywgMjE2LCA5MCwgMiwgNTksIDQ4LCAyMTYsIDkwLCAyLCA1OSwgNTEsIDQzLCA2NywgMjUyLCAKKyAgICAxNDIsIDIsIDIyNCwgOCwgNDQsIDY3LCAyNTIsIDE0MiwgMiwgMjI0LCA4LCAyMTYsIDE1LCA0MywgMTYzLCAxMjcsIDIxNiwgCisgICAgMTUsIDQ0LCAxNjMsIDEyNywgMjUxLCAxNzYsIDQzLCAxNjMsIDEyNywgMjUxLCAxNzYsIDQ0LCAxNjMsIDEyNywgNDMsIAorICAgIDIxOSwgMTg4LCAxMDQsIDEyNywgNDQsIDIxOSwgMTg4LCAxMDQsIDEyNywgNDMsIDUyLCAyMjYsIDQsIDQ0LCA1MiwgMjI2LCAKKyAgICA0LCAxMTMsIDE3MCwgMTE3LCAxMjMsIDU5LCAyMjQsIDE0MSwgMTIzLCA1OSwgMTE3LCAxMTMsIDE3MCwgMjI0LCAxNDEsIAorICAgIDkyLCAyNDQsIDEyLCA1OSwgMjI0LCAxNDEsIDI0NCwgODIsIDU5LCA3OCwgMjIzLCA1MCwgMjI0LCAxNCwgNzgsIDY3LCAKKyAgICAxODMsIDIyMiwgMjM1LCAyMjUsIDExLCAyMTEsIDIwOSwgMjIwLCAxMzksIDIzMCwgMjI1LCAyNDcsIDEyMSwgMjE1LCA5NCwgCisgICAgMjQ5LCAyMjAsIDIyMywgMTU4LCAyNDcsIDEyMSwgMjIzLCAxNTgsIDI0OSwgMjIwLCAyMTUsIDk0LCAyMjAsIDE1MSwgMjQ4LCAKKyAgICAyMDcsIDIsIDQzLCAyNDIsIDEwOSwgMjQ4LCAyMDcsIDIsIDQ0LCAyNDIsIDEwOSwgMjE1LCA5NCwgMjQ4LCAyMDYsIDIxNiwgCisgICAgMTUsIDE2MywgMjIxLCAxNzQsIDUwLCAyMTUsIDU5LCAyNDgsIDE1NywgMjE2LCAxNDQsIDI0OCwgMTU3LCA5LCAzNCwgMjIzLCAKKyAgICA3NywgOSwgMzQsIDI1MCwgMTEsIDksIDM0LCAyMjEsIDE3NywgMTEwLCA5LCAzNCwgMjIxLCAxNzcsIDEwNSwgOSwgMzQsIAorICAgIDIyMSwgMTc3LCAxNTgsIDksIDM0LCAyMjUsIDE2OCwgOSwgMzQsIDI1MSwgMTY0LCA5LCAzNCwgMjE3LCA5MywgOSwgMzQsIAorICAgIDIzNCwgMzQsIDExMCwgOSwgMzQsIDIzNCwgMzQsIDEwNSwgOSwgMzQsIDI0NywgMTcxLCA5LCAzNCwgMjIxLCAxODAsIDksIAorICAgIDM0LCA0LCAxMTAsIDksIDM0LCA0LCAxMDUsIDksIDM0LCAyMzMsIDk4LCAxMTAsIDksIDM0LCAyMzMsIDk4LCAxMDUsIDksIAorICAgIDM0LCAyMzMsIDk4LCAxNTgsIDksIDM0LCAyMzMsIDk4LCAxNjEsIDksIDM0LCAyMTksIDY5LCA5LCAzNCwgMjE2LCAxNDYsIAorICAgIDksIDM0LCAyMTksIDY3LCAxMTAsIDksIDM0LCAyMTksIDY3LCAxMDUsIDksIDM0LCAyNDEsIDIyOSwgMTEwLCA5LCAzNCwgCisgICAgMjQxLCAyMjksIDEwNSwgOSwgMzQsIDI0MiwgMTYsIDksIDM0LCAyMjMsIDE0OCwgOSwgMzQsIDI1MCwgODMsIDksIDM0LCAKKyAgICAyMTgsIDM4LCA5LCAzNCwgMjMwLCAxMjksIDksIDM0LCAyNDgsIDg5LCA5LCAzNCwgMjMwLCAxMjEsIDksIDM0LCAyNTAsIAorICAgIDI2LCA5LCAzNCwgMjEyLCA0MSwgMTEwLCA5LCAzNCwgMjEyLCA0MSwgMTA1LCA5LCAzNCwgMjQ0LCA5NywgOSwgMzQsIDIyNSwgCisgICAgMjMzLCAxMTAsIDksIDM0LCAyMjUsIDIzMywgMTA1LCA5LCAzNCwgMjE5LCAxNjEsIDE2MywgMjE1LCAyMzcsIDIxNSwgMTg5LCAKKyAgICA5LCAzNCwgMjQ5LCAxNDYsIDksIDM0LCAyNDcsIDEzNywgOSwgMzQsIDIzNSwgMTM4LCA5LCAzNCwgMjUxLCAxOTksIDY0LCAKKyAgICAyNDksIDI1MSwgOSwgMzQsIDI0NSwgMTYsIDksIDM0LCAyMTgsIDI1MCwgMTEwLCA5LCAzNCwgMjE4LCAyNTAsIDEwNSwgOSwgCisgICAgMzQsIDI1MiwgMTU1LCA5LCAzNCwgMjE5LCAxNjgsIDksIDM0LCAyNTEsIDY0LCAyMTksIDE2OCwgOSwgMzQsIDIyOSwgOTEsIAorICAgIDExMCwgOSwgMzQsIDIyOSwgOTEsIDEwNSwgOSwgMzQsIDIyOSwgOTEsIDE1OCwgOSwgMzQsIDIyOSwgOTEsIDE2MSwgOSwgCisgICAgMzQsIDIzMSwgNDcsIDksIDM0LCAyMjAsIDU4LCA5LCAzNCwgMjIzLCAxNTQsIDksIDM0LCAyNDUsIDM4LCA5LCAzNCwgMjI2LCAKKyAgICAyMTAsIDksIDM0LCAyNTEsIDEzNCwgMTEwLCA5LCAzNCwgMjUxLCAxMzQsIDEwNSwgOSwgMzQsIDIzMSwgODcsIDksIDM0LCAKKyAgICAyMzAsIDEyNCwgOSwgMzQsIDI0MiwgMTQxLCAxMTAsIDksIDM0LCAyNDIsIDE0MSwgMTA1LCA5LCAzNCwgMjQyLCAxNDEsIAorICAgIDE1OCwgOSwgMzQsIDIxNiwgMTA3LCA5LCAzNCwgMjQ5LCAyNTAsIDksIDM0LCAyMTIsIDksIDExMCwgOSwgMzQsIDIxMiwgOSwgCisgICAgMTA1LCA5LCAzNCwgMjUxLCA2NCwgMjIxLCAxNzEsIDksIDM0LCAyMTksIDE2MSwgMjQwLCAyNDksIDksIDM0LCAyNDAsIAorICAgIDI0OSwgOSwgMzQsIDI1MSwgNjQsIDIxOSwgMywgOSwgMzQsIDI1MSwgNjQsIDIyMCwgNTMsIDksIDM0LCAyNDQsIDMzLCA5LCAKKyAgICAzNCwgMjUxLCA2NCwgMjUwLCAyMjksIDksIDM0LCAyMTksIDE2MSwgMjEyLCA1NywgOSwgMzQsIDIxMiwgNTgsIDExMCwgOSwgCisgICAgMzQsIDIxMiwgNTgsIDEwNSwgOSwgMzQsIDI1MCwgMjgsIDksIDM0LCAyNTEsIDY0LCAyNDIsIDE2NywgOSwgMzQsIDE5OSwgCisgICAgMTEwLCA5LCAzNCwgMTk5LCAxMDUsIDksIDM0LCAyNTEsIDY0LCAyMzIsIDEzOCwgOSwgMzQsIDI1MSwgNjQsIDI0MywgODksIAorICAgIDksIDM0LCAyMzAsIDEyMCwgMTEwLCA5LCAzNCwgMjMwLCAxMjAsIDEwNSwgOSwgMzQsIDIyMywgMTYwLCA5LCAzNCwgMjUxLCAKKyAgICAyMDgsIDksIDM0LCAyNTEsIDY0LCAyMTcsIDU3LCAyMzMsIDUzLCA5LCAzNCwgMjUxLCA2NCwgMjMzLCA1NCwgOSwgMzQsIAorICAgIDI1MSwgNjQsIDIxMSwgMjM5LCA5LCAzNCwgMjUxLCA2NCwgMjQ0LCA0NywgOSwgMzQsIDI0NSwgMjE5LCAxMTAsIDksIDM0LCAKKyAgICAyNDUsIDIxOSwgMTA1LCA5LCAzNCwgMjQ1LCAyMTksIDE1OCwgOSwgMzQsIDI1MSwgNjQsIDI0NSwgMjE4LCA5LCAzNCwgCisgICAgMjQxLCAyMzYsIDksIDM0LCAyNTEsIDY0LCAyNDAsIDI0NiwgOSwgMzQsIDI1MSwgMTk1LCA5LCAzNCwgMjQyLCAyMjMsIDksIAorICAgIDM0LCAyNTEsIDY0LCAyNDQsIDkxLCA5LCAzNCwgMjUxLCA2NCwgMjUxLCAyMzgsIDksIDM0LCAyNTEsIDY0LCAyMjIsIDIsIAorICAgIDksIDM0LCAyMTksIDE2MSwgMjEyLCAyLCA5LCAzNCwgMjE5LCAxNjEsIDIxMSwgNDEsIDksIDM0LCAyNTEsIDY0LCAyNDMsIAorICAgIDI0NSwgOSwgMzQsIDIzNSwgMTQ0LCAyNDUsIDQyLCA5LCAzNCwgMjUxLCA2NCwgMjQ1LCA0MiwgOSwgMzQsIDIzNSwgMTQ0LCAKKyAgICAyMTYsIDE2LCA5LCAzNCwgMjUxLCA2NCwgMjE2LCAxNiwgOSwgMzQsIDIzNSwgMTQ0LCAyNDYsIDk3LCA5LCAzNCwgMjUxLCAKKyAgICA2NCwgMjQ2LCA5NywgOSwgMzQsIDIxNSwgOTEsIDksIDM0LCAyMzUsIDE0NCwgMjE1LCA5MSwgOSwgMzQsIDI1MSwgNjQsIAorICAgIDIxNSwgOTEsIDYwLCAzNCwgMTEwLCA2MCwgMzQsIDIzMiwgMjE0LCA2MCwgMzQsIDI0NywgMTIxLCA2MCwgMzQsIDIxOSwgCisgICAgOTYsIDYwLCAzNCwgMjIxLCAxNzYsIDYwLCAzNCwgMTAzLCA2MCwgMzQsIDEwNSwgNjAsIDM0LCAyMzIsIDIzOCwgNjAsIDM0LCAKKyAgICAyMzEsIDE4NiwgNjAsIDM0LCAyMzMsIDM0LCA2MCwgMzQsIDI0NSwgMTMwLCA2MCwgMzQsIDE5NSwgNjAsIDM0LCAxMjQsIAorICAgIDI1MSwgMTY0LCA2MCwgMzQsIDI0OSwgMTQ4LCA2MCwgMzQsIDI0MCwgMTEyLCA2MCwgMzQsIDIxNywgOTMsIDYwLCAzNCwgCisgICAgMjA0LCAyNTEsIDE2NCwgNjAsIDM0LCAyMzQsIDMzLCA2MCwgMzQsIDIyNCwgMjI1LCA2MCwgMzQsIDIxMSwgMjAyLCA2MCwgCisgICAgMzQsIDIxOCwgMjQ0LCA2MCwgMzQsIDQ0LCAyMDQsIDI1MSwgMTY0LCA2MCwgMzQsIDI0MSwgMTc3LCAyNDUsIDE0NiwgNjAsIAorICAgIDM0LCAyMTYsIDI0OCwgNjAsIDM0LCAyNDcsIDE3MSwgNjAsIDM0LCAyMjEsIDE4MCwgNjAsIDM0LCAyNTAsIDExLCA2MCwgCisgICAgMzQsIDIyNCwgMTgzLCA2MCwgMzQsIDI1NCwgMjE2LCA2MCwgMzQsIDIzMCwgMTExLCA2MCwgMzQsIDI0NSwgMTQ2LCA2MCwgCisgICAgMzQsIDI0NSwgMjI0LCA2MCwgMzQsIDIyMSwgMjAxLCA2MCwgMzQsIDI0MiwgMTc1LCA2MCwgMzQsIDI0MiwgMTc2LCAyMTksIAorICAgIDgyLCA2MCwgMzQsIDI0NSwgNDEsIDYwLCAzNCwgMjUxLCAyNDksIDYwLCAzNCwgMjExLCAyMjEsIDYwLCAzNCwgMjUwLCAKKyAgICAxMDIsIDYwLCAzNCwgMjIyLCAxOTcsIDYwLCAzNCwgMjM1LCAyNTIsIDYwLCAzNCwgMjE5LCA4MCwgNjAsIDM0LCAyMzMsIAorICAgIDk3LCA2MCwgMzQsIDI0OSwgMTU3LCA2MCwgMzQsIDIxOCwgMjM4LCA2MCwgMzQsIDIzMCwgMTE2LCA2MCwgMzQsIDIyMiwgCisgICAgMjI1LCA2MCwgMzQsIDIxMSwgMjA2LCA2MCwgMzQsIDIyNiwgMTkxLCA2MCwgMzQsIDIxNSwgOTgsIDYwLCAzNCwgMjQ2LCAKKyAgICA4MSwgNjAsIDM0LCAyMTksIDI1MiwgMjE2LCAxNDYsIDYwLCAzNCwgMjQ2LCAxMTksIDI1MCwgMTEsIDYwLCAzNCwgMTk5LCAKKyAgICAyMTgsIDEwOSwgNjAsIDM0LCAxMTMsIDI0MiwgMTEsIDYwLCAzNCwgMjIwLCAxLCA2MCwgMzQsIDI1MSwgMTcwLCA2MCwgMzQsIAorICAgIDIxOSwgNjYsIDYwLCAzNCwgMjUxLCAxMzgsIDYwLCAzNCwgMjE4LCAxMzksIDYwLCAzNCwgMjQxLCAyMjgsIDYwLCAzNCwgCisgICAgMjQyLCAyOSwgNjAsIDM0LCAyNDcsIDEyNCwgNjAsIDM0LCAyNDIsIDE2LCA2MCwgMzQsIDI1MSwgMTU1LCA2MCwgMzQsIAorICAgIDIyMywgMTQ4LCA2MCwgMzQsIDIyMSwgMTg4LCA2MCwgMzQsIDI0NywgMjAwLCA2MCwgMzQsIDI1MywgMTY5LCA2MCwgMzQsIAorICAgIDIxOCwgMjM1LCA2MCwgMzQsIDIyOCwgNTIsIDYwLCAzNCwgMjE4LCAzOCwgNjAsIDM0LCAyMjEsIDIxMiwgNjAsIDM0LCAKKyAgICAyMzAsIDEyOSwgNjAsIDM0LCAyMTUsIDIzNiwgNjAsIDM0LCAyMzMsIDEyMywgNjAsIDM0LCAyMTgsIDEzMCwgNjAsIDM0LCAKKyAgICAyNDgsIDg5LCA2MCwgMzQsIDIxMiwgMjEsIDYwLCAzNCwgMjQ3LCAxNDcsIDIyOCwgNTIsIDYwLCAzNCwgMjQ5LCAyMTYsIAorICAgIDYwLCAzNCwgMjQzLCAyMjMsIDYwLCAzNCwgMjUwLCAyMiwgNjAsIDM0LCAyMTgsIDE0MywgNjAsIDM0LCAyMTIsIDQwLCA2MCwgCisgICAgMzQsIDI0NCwgOTcsIDYwLCAzNCwgMjUwLCAxOSwgNjAsIDM0LCAyNDQsIDE2MiwgNjAsIDM0LCA1MiwgMjExLCAxNzgsIDYwLCAKKyAgICAzNCwgMTYzLCAyMTUsIDIzNywgMjE1LCAxODksIDYwLCAzNCwgMjE5LCA5MCwgNjAsIDM0LCAyNDQsIDE3MiwgNjAsIDM0LCAKKyAgICAyNDksIDE0NiwgNjAsIDM0LCAyNDcsIDEzNywgNjAsIDM0LCAyMjQsIDE4MCwgNjAsIDM0LCAyMzUsIDEzOCwgNjAsIDM0LCAKKyAgICAyMzEsIDY4LCA2MCwgMzQsIDIxNiwgODksIDYwLCAzNCwgMjE3LCAyNDYsIDYwLCAzNCwgMjMyLCAyMzIsIDYwLCAzNCwgCisgICAgMjE0LCAxMzEsIDYwLCAzNCwgMjQ0LCAxMjEsIDYwLCAzNCwgMjUxLCAxOTksIDY0LCAyNDksIDI1MSwgNjAsIDM0LCAyMTksIAorICAgIDE4OSwgNjAsIDM0LCAyNDYsIDExOSwgMjE2LCAyNDMsIDYwLCAzNCwgMjExLCAyNTMsIDYwLCAzNCwgMjE5LCAxMDQsIDYwLCAKKyAgICAzNCwgMjQ3LCAxODgsIDYwLCAzNCwgMjQ1LCAxNiwgNjAsIDM0LCAyMTksIDYsIDYwLCAzNCwgNzQsIDYwLCAzNCwgMjE4LCAKKyAgICAxMzIsIDYwLCAzNCwgMjE4LCAyNDksIDYwLCAzNCwgMjE2LCAwLCA2MCwgMzQsIDI0MiwgMTQ4LCA2MCwgMzQsIDI1MCwgCisgICAgMjE5LCA2MCwgMzQsIDIxOCwgMTYxLCA2MCwgMzQsIDI1MiwgMTU1LCA2MCwgMzQsIDIyMywgMzIsIDYwLCAzNCwgMjE5LCAKKyAgICAxNjgsIDYwLCAzNCwgMjM1LCAxMzEsIDYwLCAzNCwgMjI5LCA5MCwgNjAsIDM0LCAyMjAsIDU4LCA2MCwgMzQsIDI0NCwgCisgICAgMTUwLCA2MCwgMzQsIDIyNiwgMjEwLCA2MCwgMzQsIDI1NCwgMTE5LCA2MCwgMzQsIDIyNSwgMzAsIDYwLCAzNCwgMjQ1LCAKKyAgICAyMjgsIDYwLCAzNCwgMjUxLCAxMzMsIDYwLCAzNCwgMjMxLCA4NywgNjAsIDM0LCAyMzAsIDE4NCwgNjAsIDM0LCAyMjAsIAorICAgIDE1NywgNjAsIDM0LCAyNTMsIDI1MywgNjAsIDM0LCAyMzAsIDEyNCwgNjAsIDM0LCAyMTYsIDIwLCA2MCwgMzQsIDIyNiwgCisgICAgMTY2LCA2MCwgMzQsIDI1MSwgMjAyLCA2MCwgMzQsIDIxOCwgMTI4LCA2MCwgMzQsIDI0OSwgMjI2LCA2MCwgMzQsIDI0MiwgCisgICAgMTQwLCA2MCwgMzQsIDIxNiwgMTA3LCA2MCwgMzQsIDIzNSwgMjE4LCA2MCwgMzQsIDI1MSwgMjEyLCA2MCwgMzQsIDIxMiwgCisgICAgNTgsIDI0NSwgMTQ2LCA2MCwgMzQsIDI0OSwgMjUwLCA2MCwgMzQsIDIxMiwgOCwgNjAsIDM0LCAyMjEsIDE3MSwgNjAsIDM0LCAKKyAgICAyNDAsIDI0OSwgNjAsIDM0LCAyMTksIDMsIDYwLCAzNCwgMjE0LCAyMiwgNjAsIDM0LCAyNTIsIDczLCA2MCwgMzQsIDIyNSwgCisgICAgNzQsIDYwLCAzNCwgMjUyLCAxNzUsIDYwLCAzNCwgMjIwLCA1MywgNjAsIDM0LCAyMjMsIDExMSwgNjAsIDM0LCAyMjIsIAorICAgIDEyNywgNjAsIDM0LCAyNDQsIDMzLCA2MCwgMzQsIDI1MSwgMjAxLCA2MCwgMzQsIDI1MCwgMjI5LCA2MCwgMzQsIDI1MSwgCisgICAgMjI3LCA2MCwgMzQsIDIzMCwgMTI2LCA2MCwgMzQsIDIxMiwgNTcsIDYwLCAzNCwgMjUwLCAyOCwgNjAsIDM0LCAyMTEsIAorICAgIDIzNiwgNjAsIDM0LCAyNDcsIDE4MSwgNjAsIDM0LCAyMTMsIDE2MSwgNjAsIDM0LCAyNDIsIDE2NywgNjAsIDM0LCAyMzIsIAorICAgIDEzOCwgNjAsIDM0LCAyNDMsIDg5LCA2MCwgMzQsIDIzMCwgMTE5LCA2MCwgMzQsIDIxOSwgOTUsIDYwLCAzNCwgMjE5LCAKKyAgICAyNTIsIDIxNywgNzcsIDI1MSwgMjM4LCA2MCwgMzQsIDIyMywgMTYwLCA2MCwgMzQsIDI1MSwgMjA4LCA2MCwgMzQsIDIxMSwgCisgICAgMTk3LCA2MCwgMzQsIDI0NCwgMTkxLCA2MCwgMzQsIDIzMywgNTMsIDYwLCAzNCwgMjE3LCA1NywgMjMzLCA1MywgNjAsIDM0LCAKKyAgICAyMzMsIDQ5LCA2MCwgMzQsIDIxOSwgMzEsIDYwLCAzNCwgMjMzLCA1NCwgNjAsIDM0LCAyMTEsIDIzOSwgNjAsIDM0LCAyNDQsIAorICAgIDQ3LCA2MCwgMzQsIDI0NSwgMjE4LCA2MCwgMzQsIDI0MSwgMjM2LCA2MCwgMzQsIDI0NCwgMSwgNjAsIDM0LCAyNDAsIDI0NiwgCisgICAgNjAsIDM0LCAyNTEsIDE5NSwgNjAsIDM0LCAyMTcsIDY0LCA2MCwgMzQsIDI0MiwgMzUsIDYwLCAzNCwgMjQ0LCAxMTQsIDYwLCAKKyAgICAzNCwgMjIyLCAyOSwgMjExLCAyMzYsIDYwLCAzNCwgMjUwLCAyMjEsIDYwLCAzNCwgMjQyLCAyMjMsIDYwLCAzNCwgMjQ0LCAKKyAgICA5MSwgNjAsIDM0LCAyNTEsIDIzOCwgNjAsIDM0LCAyMjIsIDIsIDYwLCAzNCwgMjQ4LCA3NSwgNjAsIDM0LCAyMTIsIDIsIAorICAgIDYwLCAzNCwgMjQxLCAyMTEsIDYwLCAzNCwgMjExLCA0MSwgNjAsIDM0LCAyMzAsIDE5MywgNjAsIDM0LCAyNTEsIDIyMiwgCisgICAgNjAsIDM0LCAyNDUsIDE1NiwgNjAsIDM0LCAyNDMsIDI0NSwgNjAsIDM0LCAyMTUsIDIxMCwgNjAsIDM0LCAyNDYsIDgzLCAKKyAgICA2MCwgMzQsIDIyMywgMTQyLCA2MCwgMzQsIDIyOCwgNTQsIDYwLCAzNCwgMjQ1LCA0MiwgNjAsIDM0LCAyMTYsIDE2LCA2MCwgCisgICAgMzQsIDI0NiwgOTcsIDYwLCAzNCwgMjE1LCA5MSwgNjAsIDM0LCAyNDQsIDQ5LCAxMDksIDI0OCwgMzgsIDEzNSwgNDMsIAorICAgIDIxNiwgNDMsIDIyMiwgMjUyLCAxMDksIDI0OCwgMzgsIDEzNSwgNzcsIDIxNiwgNDMsIDUxLCAxMDksIDI0OCwgMzgsIDEzNSwgCisgICAgNDMsIDIxNiwgNDMsIDIzMCwgMjI1LCAyMiwgMjIyLCAyNTIsIDEwOSwgMjQ4LCAzOCwgMTM1LCA3NywgMjE2LCA0MywgMjMwLCAKKyAgICAyMjUsIDIyLCA1MSwgMTA5LCAyNDgsIDM4LCAxMzUsIDI0MywgMjMwLCAyMTgsIDExLCAxMDksIDI0OCwgMzgsIDEzNSwgCisgICAgMjE4LCAxMiwgMjQzLCAyNDQsIDQ4LCAxMDksIDI0OCwgMzgsIDEzNSwgMjE4LCAxMiwgMjQzLCAyNDQsIDUxLCAxMDksIAorICAgIDI0OCwgMzgsIDEzNSwgMjE4LCAxMiwgMjQzLCAyNDQsIDIzMywgNDcsIDEwOSwgMjQ4LCAzOCwgMTM1LCAyMTgsIDEyLCAKKyAgICAyNDMsIDI0NCwgMjE0LCAxNjAsIDIzMywgNDcsIDEwOSwgMjQ4LCAzOCwgMTM1LCAyMTgsIDEyLCAyNDMsIDI0NCwgMjE0LCAKKyAgICAxNjAsIDIyMiwgMjUyLCAxMDksIDI0OCwgMzgsIDEzNSwgMjE4LCAxMiwgMjQzLCAyNDQsIDIzMiwgMTA5LCAyMzMsIDQ3LCAKKyAgICAxMDksIDI0OCwgMzgsIDEzNSwgMjI2LCAxMjMsIDEwOSwgMjE5LCAxOSwgMTA5LCAyNDksIDIyMCwgMTA5LCAyNDMsIDIzMCwgCisgICAgMjE4LCAxMzAsIDI0NywgMTc4LCA3OCwgMjM1LCAxMzIsIDIzNSwgMjM3LCAyMTgsIDE2MCwgODcsIDEwOSwgMjM1LCAxNTksIAorICAgIDc4LCAxMDksIDI0OSwgMjUzLCA3OCwgMTA5LCA1NCwgMjEwLCA4NiwgNDMsIDI1NCwgMTExLCAxMjcsIDQ0LCAyNTQsIDExMSwgCisgICAgMTI3LCA0MywgNTIsIDI1NCwgMTExLCAxMjcsIDQ0LCA1MiwgMjU0LCAxMTEsIDEyNywgNDMsIDI0OSwgMTYyLCAxMjcsIDQ0LCAKKyAgICAyNDksIDE2MiwgMTI3LCA0MywgNzEsIDI0OSwgMTYyLCAxMjcsIDQ0LCA3MSwgMjQ5LCAxNjIsIDEyNywgNDMsIDg1LCAyMzMsIAorICAgIDIxLCAxMjcsIDQ0LCA4NSwgMjMzLCAyMSwgMTI3LCAyMjQsIDIzOCwgNzgsIDI0MywgMzMsIDc4LCA0MywgMjE2LCA3LCAKKyAgICAyMjAsIDU0LCAxMjcsIDQ0LCAyMTYsIDcsIDIyMCwgNTQsIDEyNywgNDMsIDcxLCAyMzMsIDIxLCAxMjcsIDQ0LCA3MSwgCisgICAgMjMzLCAyMSwgMTI3LCA0MywgNzEsIDIxNiwgNywgMjIwLCA1NCwgMTI3LCA0NCwgNzEsIDIxNiwgNywgMjIwLCA1NCwgMTI3LCAKKyAgICA0MywgNzEsIDQyLCAxMjcsIDQ0LCA3MSwgNDIsIDEyNywgMjEyLCAzNiwgMjQ4LCAxNTcsIDIyMywgNTAsIDUyLCAyMjQsIAorICAgIDE5MiwgMjIzLCAyNTUsIDc4LCA1MiwgMjI0LCAxOTIsIDIyMywgMjU1LCA3OCwgMTIxLCA1MiwgMjI0LCAxOTIsIDIyMywgCisgICAgMjU1LCA3OCwgMjI0LCAyMzgsIDE2NCwgMjQ0LCAxOTEsIDI0MiwgOSwgMjI3LCAxOTksIDExMCwgMjQyLCA5LCAyMjcsIAorICAgIDE5OSwgMTA1LCAyNDIsIDksIDIyNywgMTk5LCAxNTgsIDI0MiwgOSwgMjI3LCAxOTksIDE2MSwgMjQyLCA5LCAyMjcsIDE5OSwgCisgICAgMTg5LCAyNDIsIDksIDIyNywgMTk5LCAxOTQsIDI0MiwgOSwgMjI3LCAxOTksIDE5OCwgMjQyLCA5LCAyMjcsIDE5OSwgMTk1LCAKKyAgICAyNDIsIDksIDIyNywgMTk5LCAyMDAsIDEwOSwgMjMzLCA0LCAxMzgsIDc4LCAxMDksIDIyMiwgMjI5LCAxMzgsIDc4LCAxMDksIAorICAgIDI0OCwgNDUsIDEzOCwgNzgsIDEwOSwgMjQ1LCAxMjksIDEzOCwgNzgsIDI0LCAyMTksIDE1NiwgNTksIDEzOCwgNzgsIDI0LCAKKyAgICA1MiwgNTksIDEzOCwgNzgsIDIxMiwgMzIsIDI0OCwgMTU3LCA2NywgMjM0LCAyMzQsIDIyMywgNzgsIDc4LCA2NywgMjM0LCAKKyAgICAyMzQsIDIyMywgNzgsIDIsIDIxMywgMTM1LCAyMTksIDMyLCA3OCwgNjcsIDIzNCwgMjM0LCAyMjMsIDc4LCAxNjQsIDIxNCwgCisgICAgMTYwLCAyNDIsIDI4LCA2NywgMjM0LCAyMzQsIDIyMywgNzgsIDIsIDIxMywgMTM1LCAyMTksIDMyLCAxNjQsIDIxNCwgMTYwLCAKKyAgICAyNDIsIDI4LCA2NywgMjM0LCAyMzQsIDIyMywgNzgsIDE2NCwgMjMyLCAxMDksIDI0MiwgMjgsIDM3LCAyMjQsIDIzOCwgNzgsIAorICAgIDEwOSwgMjE3LCA0LCAyMzIsIDIxNSwgMjQ0LCAxNDcsIDIyMCwgMTM5LCA4NywgMjQyLCA5LCAyMjcsIDE5OSwgMjE2LCAKKyAgICAyNDgsIDI0MiwgOSwgMjI3LCAxOTksIDIxNSwgNzMsIDI0MiwgOSwgMjI3LCAxOTksIDIxNiwgMTYzLCA2NywgMTA5LCAyMzUsIAorICAgIDE1OSwgNzgsIDIzMSwgMTQxLCA3OCwgMjI2LCAwLCAyNTQsIDE0MSwgNzgsIDEwOSwgNDUsIDIzNSwgMjM5LCAxMDksIDE2MywgCisgICAgMjQ0LCAxMDcsIDIxOSwgMTksIDE0MSwgMSwgNCwgNjEsIDE0MSwgMSwgNjEsIDE0MSwgMSwgNCwgNzMsIDE0MSwgMSwgNzMsIAorICAgIDE0MSwgMSwgNCwgNzAsIDE0MSwgMSwgNzAsIDE0MSwgMSwgNCwgNzUsIDE0MSwgMSwgNzUsIDE0MSwgMSwgNCwgNzYsIDE0MSwgCisgICAgMSwgNzYsIDE0MSwgMSwgMTc2LCAxNDEsIDEsIDI0MywgMTM2LCAxNDEsIDEsIDIzNCwgOTMsIDE0MSwgMSwgMjQyLCAyMTUsIAorICAgIDE0MSwgMSwgMjMzLCAyMTgsIDE0MSwgMSwgMjQyLCAxMTQsIDE0MSwgMSwgMjM0LCAxODMsIDE0MSwgMSwgMjQzLCA2MywgCisgICAgMTQxLCAxLCAyMzQsIDI5LCAxNDEsIDEsIDI0MiwgMTc1LCAxNDEsIDEsIDIwNiwgMTQxLCAxLCAyMTAsIDExNiwgMTQxLCAxLCAKKyAgICAyMTksIDE5MiwgMTQxLCAxLCAyMTAsIDQ0LCAxNDEsIDEsIDIxOCwgODQsIDE0MSwgMSwgMjEwLCAxMywgMTQxLCAxLCAyMjEsIAorICAgIDE4MiwgMTQxLCAxLCAyMTAsIDk0LCAxNDEsIDEsIDIxOSwgNTksIDE0MSwgMSwgMjEwLCAyMywgMTQxLCAxLCAyMTcsIDEwNiwgCisgICAgMTQxLCAxLCAyNDgsIDIyMiwgMTQxLCAxLCAyMTYsIDExOCwgMTQxLCAxLCAyNDgsIDQsIDE0MSwgMSwgNCwgMjE1LCAxMTksIAorICAgIDE0MSwgMSwgMjE1LCAxMTksIDE0MSwgMSwgMjQ2LCA3OSwgMTQxLCAxLCAyMTcsIDIzLCAxNDEsIDEsIDI0OCwgOTEsIDE0MSwgCisgICAgMSwgMTExLCAxNDEsIDEsIDI0NywgMTQ2LCAxNDEsIDEsIDE5NywgMTQxLCAxLCAyMjgsIDIzNCwgMTQxLCAxLCAyMjcsIAorICAgIDIzOCwgMTQxLCAxLCAyMjksIDEwOCwgMTQxLCAxLCAyMjgsIDc1LCAxNDEsIDEsIDE2MiwgMTQxLCAxLCAyNTIsIDE5MiwgCisgICAgMTQxLCAxLCAxOTAsIDE0MSwgMSwgMjQxLCAxODEsIDE0MSwgMSwgMjUyLCA3LCAxNDEsIDEsIDIyNSwgMTA5LCAxNDEsIDEsIAorICAgIDI0MCwgMjIzLCAxNDEsIDEsIDI1MSwgMTI2LCAxNDEsIDEsIDIyNCwgMTUxLCAxNDEsIDEsIDI0MSwgMjM5LCAxNDEsIDEsIAorICAgIDI1MiwgNzYsIDE0MSwgMSwgMjI1LCAyMjIsIDE0MSwgMSwgMjQxLCA2OSwgMTQxLCAxLCAyNTEsIDIwNiwgMTQxLCAxLCAKKyAgICAyMjUsIDE3LCAxNDEsIDEsIDE4NSwgMTQxLCAxLCAyMzAsIDIzMSwgMTQxLCAxLCAyMzAsIDEwMywgMTQxLCAxLCAyMzEsIAorICAgIDkyLCAxNDEsIDEsIDIzMCwgMTYyLCAxNDEsIDEsIDQsIDE5MSwgMTQxLCAxLCAxOTEsIDE0MSwgMSwgNCwgMjEwLCAyMTIsIAorICAgIDE0MSwgMSwgMjEwLCAyMTIsIDE0MSwgMSwgNCwgMjEwLCAyNDQsIDE0MSwgMSwgMjEwLCAyNDQsIDE0MSwgMSwgMjA1LCAKKyAgICAxNDEsIDEsIDIyMywgMzYsIDE0MSwgMSwgMjIyLCAxNDEsIDE0MSwgMSwgMjIzLCAxMjksIDE0MSwgMSwgMjIyLCAyMTIsIAorICAgIDE0MSwgMSwgNCwgMjEyLCA2NSwgMTQxLCAxLCAyMTIsIDY1LCAxNDEsIDEsIDIxMSwgMjUwLCAxNDEsIDEsIDIxMiwgMjIsIAorICAgIDE0MSwgMSwgMjExLCAyMjcsIDE0MSwgMSwgMjMwLCAyNiwgMTQxLCAxLCAyMTIsIDExNiwgMTQxLCAxLCA0LCAxNzYsIDE0MSwgCisgICAgMSwgNCwgMjM0LCAxODMsIDM4LCAyMzQsIDIwMiwgMjEzLCAxMzUsIDIxOSwgMzIsIDc4LCAzOCwgMjM0LCAyMDIsIDIyMCwgCisgICAgMTU2LCAyMTksIDMyLCA3OCwgMjM0LCAyMDIsIDIxMywgMTM1LCAyMTksIDMyLCA3OCwgMjM0LCAyMDIsIDIyMCwgMTU2LCAKKyAgICAyMTksIDMyLCA3OCwgMTQxLCAyMzUsIDE1OSwgNzgsIDE0MSwgMjEzLCAxMzUsIDIzNSwgMTU5LCA3OCwgMTQxLCAyNDcsIAorICAgIDIyMiwgMjEwLCAyMjUsIDIzNCwgMjAyLCA1MiwgMjQwLCAxNjksIDU2LCAxLCA0LCA2MSwgNTYsIDEsIDYxLCA1NiwgMSwgNCwgCisgICAgNzMsIDU2LCAxLCA3MywgNTYsIDEsIDQsIDcwLCA1NiwgMSwgNzAsIDU2LCAxLCA0LCA3NSwgNTYsIDEsIDc1LCA1NiwgMSwgCisgICAgNCwgNzYsIDU2LCAxLCA3NiwgNTYsIDEsIDE3NiwgNTYsIDEsIDI0MywgMTM2LCA1NiwgMSwgMjM0LCA5MywgNTYsIDEsIAorICAgIDI0MiwgMjE1LCA1NiwgMSwgMjMzLCAyMTgsIDU2LCAxLCAyNDIsIDExNCwgNTYsIDEsIDIzNCwgMTgzLCA1NiwgMSwgMjQzLCAKKyAgICA2MywgNTYsIDEsIDIzNCwgMjksIDU2LCAxLCAyNDIsIDE3NSwgNTYsIDEsIDIwNiwgNTYsIDEsIDIxMCwgMTE2LCA1NiwgMSwgCisgICAgMjE5LCAxOTIsIDU2LCAxLCAyMTAsIDQ0LCA1NiwgMSwgMjE4LCA4NCwgNTYsIDEsIDIxMCwgMTMsIDU2LCAxLCAyMjEsIAorICAgIDE4MiwgNTYsIDEsIDIxMCwgOTQsIDU2LCAxLCAyMTksIDU5LCA1NiwgMSwgMjEwLCAyMywgNTYsIDEsIDIxNywgMTA2LCA1NiwgCisgICAgMSwgMjQ4LCAyMjIsIDU2LCAxLCAyMTYsIDExOCwgNTYsIDEsIDI0OCwgNCwgNTYsIDEsIDQsIDIxNSwgMTE5LCA1NiwgMSwgCisgICAgMjE1LCAxMTksIDU2LCAxLCAyNDYsIDc5LCA1NiwgMSwgMjE3LCAyMywgNTYsIDEsIDI0OCwgOTEsIDU2LCAxLCAxMTEsIDU2LCAKKyAgICAxLCAyNDcsIDE0NiwgNTYsIDEsIDE5NywgNTYsIDEsIDIyOCwgMjM0LCA1NiwgMSwgMjI3LCAyMzgsIDU2LCAxLCAyMjksIAorICAgIDEwOCwgNTYsIDEsIDIyOCwgNzUsIDU2LCAxLCAxNjIsIDU2LCAxLCAyNTIsIDE5MiwgNTYsIDEsIDE5MCwgNTYsIDEsIDI0MSwgCisgICAgMTgxLCA1NiwgMSwgMjUyLCA3LCA1NiwgMSwgMjI1LCAxMDksIDU2LCAxLCAyNDAsIDIyMywgNTYsIDEsIDI1MSwgMTI2LCAKKyAgICA1NiwgMSwgMjI0LCAxNTEsIDU2LCAxLCAyNDEsIDIzOSwgNTYsIDEsIDI1MiwgNzYsIDU2LCAxLCAyMjUsIDIyMiwgNTYsIDEsIAorICAgIDI0MSwgNjksIDU2LCAxLCAyNTEsIDIwNiwgNTYsIDEsIDIyNSwgMTcsIDU2LCAxLCAxODUsIDU2LCAxLCAyMzAsIDIzMSwgCisgICAgNTYsIDEsIDIzMCwgMTAzLCA1NiwgMSwgMjMxLCA5MiwgNTYsIDEsIDIzMCwgMTYyLCA1NiwgMSwgNCwgMTkxLCA1NiwgMSwgCisgICAgMTkxLCA1NiwgMSwgNCwgMjEwLCAyMTIsIDU2LCAxLCAyMTAsIDIxMiwgNTYsIDEsIDQsIDIxMCwgMjQ0LCA1NiwgMSwgMjEwLCAKKyAgICAyNDQsIDU2LCAxLCAyMDUsIDU2LCAxLCAyMjMsIDM2LCA1NiwgMSwgMjIyLCAxNDEsIDU2LCAxLCAyMjMsIDEyOSwgNTYsIDEsIAorICAgIDIyMiwgMjEyLCA1NiwgMSwgNCwgMjEyLCA2NSwgNTYsIDEsIDIxMiwgNjUsIDU2LCAxLCAyMTEsIDI1MCwgNTYsIDEsIDIxMiwgCisgICAgMjIsIDU2LCAxLCAyMTEsIDIyNywgNTYsIDEsIDIzMCwgMjYsIDU2LCAxLCAyMTIsIDExNiwgNTYsIDEsIDQsIDE3NiwgNTYsIAorICAgIDEsIDQsIDIzNCwgMTgzLCA1NiwgMSwgMjE0LCAyNywgNTYsIDEsIDIxMywgMTc2LCA1NiwgMSwgMjEzLCAyNTUsIDU2LCAxLCAKKyAgICAyMTMsIDEzOCwgNTYsIDIzMCwgMjI1LCAyNDcsIDEyMSwgMjM0LCAyMDIsIDIyNCwgMTc0LCAyMTksIDMyLCA3OCwgNTYsIAorICAgIDIzNSwgMTU5LCA3OCwgNTYsIDIxMywgMTM1LCAyMzUsIDE1OSwgNzgsIDU2LCAyNDcsIDIyMiwgMjM0LCAwLCAyNTEsIDE4NSwgCisgICAgMSwgMjUzLCAxNTksIDI1MSwgMTg1LCAxLCAyMjYsIDEwNiwgMjUxLCAxODUsIDEsIDE5MywgMjUxLCAxODUsIDEsIDI0NSwgCisgICAgNywgMjUxLCAxODUsIDEsIDI0OSwgNjEsIDI1MSwgMTg1LCAxLCAyMTcsIDE1MywgMjUxLCAxODUsIDEsIDIzMCwgMjYsIAorICAgIDI1MSwgMTg1LCAxLCAxNTYsIDI1MSwgMTg1LCAxLCAyNDMsIDIwMywgMjUxLCAxODUsIDEsIDIzNSwgMjQsIDI1MSwgMTg1LCAKKyAgICAxLCAyNDIsIDYxLCAyNTEsIDE4NSwgMSwgMjM1LCAxNDUsIDI1MSwgMTg1LCAxLCAyMjQsIDk3LCAyNTEsIDE4NSwgMSwgCisgICAgMjExLCAxNzgsIDI1MSwgMTg1LCAxLCAyMTAsIDgzLCAyNTEsIDE4NSwgMSwgMjUwLCAxNTksIDI1MSwgMTg1LCAxLCAyMjAsIAorICAgIDEwNSwgMjUxLCAxODUsIDEsIDE1MywgMjUxLCAxODUsIDEsIDIxMCwgMTU5LCAyNTEsIDE4NSwgMSwgMjUxLCA2NywgMjUxLCAKKyAgICAxODUsIDEsIDIyMiwgOTIsIDI1MSwgMTg1LCAxLCA2MSwgMjUxLCAxODUsIDEsIDc2LCAyNTEsIDE4NSwgMSwgNzUsIDI1MSwgCisgICAgMTg1LCAxLCAyNDUsIDE5OCwgMjUxLCAxODUsIDEsIDI1NCwgMjAyLCAyNTEsIDE4NSwgMSwgMjQ1LCAxOTYsIDI1MSwgMTg1LCAKKyAgICAxLCAyNTMsIDE5MywgMjUxLCAxODUsIDEsIDIyNiwgMTM1LCAyNTEsIDE4NSwgMSwgMjU0LCAxMjQsIDI1MSwgMTg1LCAxLCAKKyAgICAyNDUsIDE1MSwgMjUxLCAxODUsIDEsIDI1NCwgMTE2LCAyNTEsIDE4NSwgMSwgMjQ1LCAxMzksIDI1MSwgMTg1LCAxLCAyNDUsIAorICAgIDkzLCAyNTEsIDE4NSwgMSwgNzMsIDI1MSwgMTg1LCAxLCA3MCwgMjUxLCAxODUsIDEsIDIzNSwgMTU3LCAyNTEsIDE4NSwgMSwgCisgICAgMjE0LCAxMDUsIDI1MSwgMTg1LCAxLCAyMjksIDgwLCAyNTEsIDE4NSwgMSwgMjQyLCAxNzksIDI1MSwgMTg1LCAxLCAyMzYsIAorICAgIDM1LCAyNCwgMSwgMjM0LCA1OSwgMjQsIDEsIDIxOCwgMjE2LCAyNCwgMSwgMjM0LCA1MiwgMjQsIDEsIDIyOCwgMjI3LCAyNCwgCisgICAgMSwgMjI4LCAyMjUsIDI0LCAxLCAyMjgsIDIyNCwgMjQsIDEsIDIxNiwgMTAyLCAyNCwgMSwgMjE4LCAyMDUsIDI0LCAxLCAKKyAgICAyMjMsIDI3LCAyNCwgMSwgMjIzLCAyMiwgMjQsIDEsIDIyMywgMTksIDI0LCAxLCAyMjMsIDEyLCAyNCwgMSwgMjIzLCA3LCAKKyAgICAyNCwgMSwgMjIzLCAyLCAyNCwgMSwgMjIzLCAxMywgMjQsIDEsIDIyMywgMjUsIDI0LCAxLCAyMzAsIDIxOCwgMjQsIDEsIAorICAgIDIyNSwgOTYsIDI0LCAxLCAyMTgsIDIxMywgMjQsIDEsIDIyNSwgODUsIDI0LCAxLCAyMTksIDE0OSwgMjQsIDEsIDIxOCwgCisgICAgMjEwLCAyNCwgMSwgMjM2LCA1NywgMjQsIDEsIDI1MCwgNDcsIDI0LCAxLCAyMTgsIDIyMCwgMjQsIDEsIDI1MCwgMTA3LCAKKyAgICAyNCwgMSwgMjM0LCAxMTEsIDI0LCAxLCAyMTYsIDE3NCwgMjQsIDEsIDIyNSwgMTMyLCAyNCwgMSwgMjQxLCAxNzMsIDI0LCAKKyAgICAxLCA2MSwgMjQsIDEsIDI1NCwgMjQ0LCAyNCwgMSwgMTkxLCAyNCwgMSwgMjExLCA5MiwgMjQsIDEsIDI0NSwgMTE4LCAyNCwgCisgICAgMSwgNzUsIDI0LCAxLCAyMTEsIDM2LCAyNCwgMSwgMjExLCA0NywgMjQsIDEsIDc2LCAyNCwgMSwgMjEyLCA2NSwgMjQsIDEsIAorICAgIDIxMiwgNjIsIDI0LCAxLCAyMjYsIDIzNSwgMjQsIDEsIDIxMCwgMjQ0LCAyNCwgMSwgNzAsIDI0LCAxLCAyMTIsIDExLCAyNCwgCisgICAgMSwgMjEyLCAyMiwgMjQsIDEsIDIxMSwgMjUwLCAyNCwgMSwgMjEwLCAyMTIsIDI0LCAxLCAyNDUsIDU2LCAyNCwgMSwgMjExLCAKKyAgICA4LCAyNCwgMSwgNzMsIDI0LCAyNDQsIDEwNCwgMjQsIDEsIDIxOCwgMjE0LCAyNCwgMSwgMjI4LCAyMTcsIDI0LCAxLCAyMjgsIAorICAgIDIxOSwgMjQsIDEsIDIyOCwgMjIyLCAyNCwgMSwgMjIzLCAyMCwgMjQsIDEsIDIyMywgMSwgMjQsIDEsIDIyMywgOSwgMjQsIAorICAgIDEsIDIyMywgMTQsIDI0LCAxLCAyMjIsIDI1NSwgMjQsIDEsIDIzMCwgMjExLCAyNCwgMSwgMjMwLCAyMDgsIDI0LCAxLCAKKyAgICAyMzAsIDIxMiwgMjQsIDEsIDIzNCwgMjIyLCAyNCwgMSwgMjI1LCA5MSwgMjQsIDEsIDIyNSwgNzcsIDI0LCAxLCAyMjUsIAorICAgIDgzLCAyNCwgMSwgMjI1LCA4MCwgMjQsIDEsIDIyNSwgOTQsIDI0LCAxLCAyMjUsIDc4LCAyNCwgMSwgMjM0LCAyMjAsIDI0LCAKKyAgICAxLCAyMzQsIDIxOCwgMjQsIDEsIDIxOSwgMTQyLCAyNCwgMSwgMjE5LCAxNDAsIDI0LCAxLCAyMTksIDEzMiwgMjQsIDEsIAorICAgIDIxOSwgMTM3LCAyNCwgMSwgMjE5LCAxNDcsIDI0LCAxLCAyMjYsIDMzLCAyNCwgMSwgMjE4LCAyMTcsIDI0LCAxLCAyMTEsIAorICAgIDI2LCAyNCwgMSwgMjExLCAyMiwgMjQsIDEsIDIxMSwgMjMsIDI0LCAxLCAyMzQsIDIyMSwgMjQsIDEsIDIxOCwgMjE4LCAyNCwgCiAgICAgMSwgMjExLCAzMiwgMjQsIDEsIDIxMCwgMjM4LCAyNCwgMSwgMjEwLCAyMzcsIDI0LCAxLCAyMTAsIDI0MCwgMjQsIDEsIAotICAgIDIxMCwgMjAzLCAyNCwgMSwgMjEwLCAyMDQsIDI0LCAxLCAyMTAsIDIwNywgMjQsIDEsIDI1NCwgMzQsIDI0LCAxLCAyNTQsIAotICAgIDI4LCAxMDksIDI1NCwgOTksIDIzMiwgMjAzLCA3OCwgMTA5LCAyNTQsIDk5LCAyMjMsIDUwLCA3OCwgMTA5LCAyNTQsIDk5LCAKLSAgICAxMjMsIDc4LCAxMDksIDI1NCwgOTksIDExMywgNzgsIDEwOSwgMjU0LCA5OSwgMTM0LCA3OCwgMTA5LCAyNTQsIDk5LCAyNDQsIAotICAgIDExLCA3OCwgMTA5LCAyNTQsIDk5LCAyMTYsIDE0LCA3OCwgMTA5LCAyNTQsIDk5LCAyMzAsIDIyNCwgNzgsIDEwOSwgMjU0LCAKLSAgICA5OSwgMjUxLCAxNzUsIDc4LCAxMDksIDI1NCwgOTksIDI0NCwgOTIsIDc4LCAxMDksIDI1NCwgOTksIDIyMSwgMTc2LCA3OCwgCi0gICAgMTA5LCAyNTQsIDk5LCAyMTYsIDE2OSwgNzgsIDEwOSwgMjU0LCA5OSwgMjQ0LCA0LCA3OCwgMTA5LCAyNTQsIDk5LCAyNDEsIAotICAgIDIyNCwgNzgsIDEwOSwgMjU0LCA5OSwgMjQ1LCAyMjQsIDc4LCAxMDksIDI1NCwgOTksIDIzMSwgMTg2LCA3OCwgMjUxLCAKLSAgICAxODQsIDEsIDI1MSwgMTI1LCAyNTEsIDE4NCwgMSwgMjEwLCA0NCwgMjUxLCAxODQsIDEsIDIzNSwgMTA4LCAyNTEsIDE4NCwgCi0gICAgMSwgMjQyLCAxMTMsIDI1MSwgMTg0LCAxLCAyNDUsIDIwOSwgMjUxLCAxODQsIDEsIDI0NSwgMTM1LCAyNTEsIDE4NCwgMSwgCi0gICAgMjI2LCAxODMsIDI1MSwgMTg0LCAxLCAyMjYsIDE4NywgMjUxLCAxODQsIDEsIDIzNSwgMTc5LCAyNTEsIDE4NCwgMSwgMjU0LCAKLSAgICAxMDEsIDI1MSwgMTg0LCAxLCAyMzUsIDIyNCwgMjUxLCAxODQsIDEsIDIxNCwgMTY4LCAyNTEsIDE4NCwgMSwgMjM2LCAxNiwgCi0gICAgMjUxLCAxODQsIDEsIDIyOSwgNTcsIDI1MSwgMTg0LCAxLCAyNTQsIDE5NSwgMjUxLCAxODQsIDEsIDI1MywgMTg3LCAyNTEsIAotICAgIDE4NCwgMSwgMjU0LCAxMzYsIDI1MSwgMTg0LCAxLCAyMjYsIDIwNCwgMjUxLCAxODQsIDEsIDIyNiwgMTg5LCAyNTEsIDE4NCwgCi0gICAgMSwgMjM1LCAyMjEsIDI1MSwgMTg0LCA0MCwgMSwgMjI2LCAxMDUsIDI1MSwgMTg0LCA0MCwgMSwgMjE3LCAxNTIsIDI1MSwgCi0gICAgMTg0LCA0MCwgMSwgMjM1LCAyMywgMjUxLCAxODQsIDQwLCAxLCAyNDIsIDYwLCAyNTEsIDE4NCwgMSwgMjQyLCAyNTAsIAotICAgIDI1MSwgMTg0LCAxLCAyMzIsIDI1NSwgMjUxLCAxODQsIDEsIDIwOSwgMjUwLCA5LCAyMTgsIDEwMywgMjE3LCAxNTIsIDksIAotICAgIDIxOCwgMTAzLCAyMTIsIDQsIDksIDIxOCwgMTAzLCAyMTEsIDE1OCwgOSwgMjE4LCAxMDMsIDI1MSwgNzksIDksIDIxOCwgCi0gICAgMTAzLCAyMTcsIDI1NCwgOSwgMjE4LCAxMDMsIDI0MCwgMTU4LCA5LCAyMTgsIDEwMywgMjQwLCAxNjIsIDksIDIxOCwgMTAzLCAKLSAgICAyNDAsIDIzMSwgOSwgMjE4LCAxMDMsIDI0MCwgMTU5LCA5LCAyMTgsIDEwMywgMjE3LCAxNTUsIDksIDIxOCwgMTAzLCAyNDAsIAotICAgIDE2MSwgOSwgMjE4LCAxMDMsIDI0MCwgMTU3LCA5LCAyMTgsIDEwMywgMjQwLCAyMjksIDksIDIxOCwgMTAzLCAyNDAsIDE2MCwgCi0gICAgOSwgMjE4LCAxMDMsIDI0MCwgMTU2LCA5LCAyMTgsIDEwMywgMjMwLCAyNSwgOSwgMjE4LCAxMDMsIDI0MiwgNjAsIDksIAotICAgIDIxOCwgMTAzLCAyMjIsIDkxLCA5LCAyMTgsIDEwMywgMjI2LCAxMDUsIDksIDIxOCwgMTAzLCAyMTksIDIxLCA5LCAyMTgsIAotICAgIDEwMywgMjQ5LCA2MCwgOSwgMjE4LCAxMDMsIDI0MCwgMTYzLCA5LCAyMTgsIDEwMywgMjQxLCAxOTAsIDksIDIxOCwgMTAzLCAKLSAgICAyMTcsIDE2NCwgOSwgMjE4LCAxMDMsIDIxNywgMjMzLCA5LCAyMTgsIDEwMywgMjE4LCAxNjgsIDksIDIxOCwgMTAzLCAyMjAsIAotICAgIDExMCwgOSwgMjE4LCAxMDMsIDIyNSwgMjI0LCA5LCAyMTgsIDEwMywgMjI0LCA5OCwgOSwgMjE4LCAxMDMsIDIxNiwgNDMsIAotICAgIDksIDIxOCwgMTAzLCAyMTcsIDE1NCwgOSwgMjE4LCAxMDMsIDIxNywgMjQ0LCA5LCAyMTgsIDEwMywgMjQwLCAxNzAsIDksIAotICAgIDIxOCwgMTAzLCAyNDAsIDE1NSwgOSwgMjE4LCAxMDMsIDIyNSwgMTQ5LCA5LCAyMTgsIDEwMywgMjI0LCA5NiwgNTYsIDEsIAotICAgIDQsIDIzMywgMjE3LCA1NiwgMSwgNCwgMjE5LCAxOTEsIDU2LCAxLCA0LCAyMTgsIDgzLCA1NiwgMSwgNCwgMTExLCA1NiwgMSwgCi0gICAgNCwgMjI3LCAyMzcsIDU2LCAxLCA0LCAxNjIsIDU2LCAxLCA0LCAyNDEsIDE4MCwgNTYsIDEsIDQsIDI0MCwgMjIyLCA1NiwgCi0gICAgMSwgNCwgMjQxLCAyMzgsIDU2LCAxLCA0LCAyNDEsIDY4LCA1NiwgMSwgNCwgMjMwLCAxMDIsIDU2LCAxLCA0LCAyMDUsIDU2LCAKLSAgICAxLCA0LCAyMjMsIDM1LCA1NiwgMSwgNCwgMjIyLCAxNDAsIDU2LCAxLCA0LCAyMjMsIDEyOCwgNTYsIDEsIDQsIDIyMiwgCi0gICAgMjExLCA4OCwgMjQsIDIzNCwgNTgsIDg4LCAyNCwgMjI4LCAyMjYsIDg4LCAyNCwgMjE2LCAxMDEsIDg4LCAyNCwgMjIzLCAKLSAgICAyNiwgODgsIDI0LCAyMzAsIDIxNywgODgsIDI0LCAyMjUsIDk1LCA4OCwgMjQsIDIxOSwgMTQ4LCA4OCwgMjQsIDIzNiwgNTYsIAotICAgIDg4LCAyNCwgMjUwLCA0NiwgODgsIDI0LCAyNTAsIDEwNiwgODgsIDI0LCAyMzQsIDExMCwgODgsIDI0LCAyMTYsIDE3MywgCi0gICAgODgsIDI0LCAyMjUsIDEzMSwgODgsIDI0LCAyNDEsIDE3MiwgODgsIDI0LCAyMzQsIDU5LCA2MSwgODgsIDI0LCAyMjgsIAotICAgIDIyNywgNjEsIDg4LCAyNCwgMjE2LCAxMDIsIDYxLCA4OCwgMjQsIDIyMywgMjcsIDYxLCA4OCwgMjQsIDIzMCwgMjE4LCA2MSwgCi0gICAgODgsIDI0LCAyMjUsIDk2LCA2MSwgODgsIDI0LCAyMTksIDE0OSwgNjEsIDg4LCAyNCwgMjM2LCA1NywgNjEsIDg4LCAyNCwgCi0gICAgMjUwLCA0NywgNjEsIDg4LCAyNCwgMjUwLCAxMDcsIDYxLCA4OCwgMjQsIDIzNCwgMTExLCA2MSwgODgsIDI0LCAyMTYsIAotICAgIDE3NCwgNjEsIDg4LCAyNCwgMjI1LCAxMzIsIDYxLCA4OCwgMjQsIDI0MSwgMTczLCA2MSwgODgsIDI0LCAyNTAsIDQ3LCA3MCwgCi0gICAgODgsIDIzNCwgMywgMTM1LCAyMjYsIDIxNywgODgsIDIzNCwgMywgMTM1LCAxNDQsIDI0MCwgMjIyLCA4OCwgMTU0LCAxMTAsIAotICAgIDg4LCAxNTQsIDEwNSwgODgsIDE1NCwgMTU4LCA4OCwgMTU0LCAxNjEsIDg4LCAxNTQsIDE4OSwgODgsIDE1NCwgMTk0LCA4OCwgCi0gICAgMTU0LCAxOTgsIDg4LCAxNTQsIDE5NSwgODgsIDE1NCwgMjAwLCA4OCwgMTU0LCAyMTYsIDI0NywgODgsIDE1NCwgMjMwLCAKLSAgICAxMjgsIDg4LCAxNTQsIDI0NCwgOTYsIDg4LCAxNTQsIDIxMiwgNDAsIDg4LCAxNTQsIDIxMSwgMjE0LCA4OCwgMTU0LCAyMzEsIAotICAgIDM5LCA4OCwgMTU0LCAyNDUsIDIyMywgODgsIDE1NCwgMjE4LCAzNywgODgsIDE1NCwgMjE4LCAxMzIsIDg4LCAxNTQsIDI0MSwgCi0gICAgMjQ0LCA4OCwgMTU0LCAyMTksIDU0LCA4OCwgMTU0LCAyMjksIDIwNCwgODgsIDE1NCwgMjE5LCA0LCA4OCwgMTU0LCAyNDQsIAotICAgIDEwMiwgODgsIDE1NCwgMjQ5LCAyMDAsIDg4LCAxNTQsIDIzMywgMTI1LCA4OCwgMTU0LCAyMjMsIDcxLCA4OCwgMTU0LCAKLSAgICAyNTEsIDE1LCA4OCwgMTU0LCAyMTgsIDg3LCA4OCwgMTU0LCAyMTgsIDIwLCA4OCwgMTU0LCAyNDUsIDEyNywgODgsIDE1NCwgCi0gICAgMjIzLCA2MywgODgsIDE1NCwgMjU0LCAxNTAsIDg4LCAxNTQsIDI0NCwgMTI4LCA4OCwgMTU0LCAyMjMsIDYxLCA4OCwgMTU0LCAKLSAgICAyMjAsIDE1NiwgODgsIDE1NCwgMjIzLCAxMjcsIDM3LCAxNTQsIDIyNCwgMTIsIDM3LCAxNTQsIDIzNCwgODAsIDM3LCAxNTQsIAotICAgIDIyMSwgMTk4LCAzNywgMTU0LCAyMzMsIDI1NSwgMzcsIDU0LCAyMTYsIDI0OCwgMjI2LCAxOTcsIDg1LCAyMTgsIDIzNCwgCi0gICAgMzcsIDU0LCAyMTUsIDc0LCAyMjYsIDE5NywgODUsIDIxOCwgMjM0LCAzNywgNTQsIDIxNiwgMTYzLCAyMjYsIDE5NywgODUsIAotICAgIDIxOCwgMjM0LCAzNywgNTQsIDI0NCwgMTYsIDIyNiwgMTk3LCA4NSwgMjE4LCAyMzQsIDM3LCA1NCwgMjQ0LCAxMTUsIDIyNiwgCi0gICAgMTk3LCA4NSwgMjE4LCAyMzQsIDM3LCA1NCwgMjE5LCAxMTIsIDIyNiwgMTk3LCA4NSwgMjE4LCAyMzQsIDM3LCA1NCwgMjIwLCAKLSAgICAxMTcsIDIyNiwgMTk3LCA4NSwgMjE4LCAyMzQsIDM3LCA1NCwgMjQ1LCAxODUsIDIyNiwgMTk3LCA4NSwgMjE4LCAyMzQsIAotICAgIDIyNSwgMjUxLCA1MCwgMzcsIDU0LCAyMTUsIDc0LCAxMTAsIDM3LCA1NCwgMjE1LCA3NCwgMTA1LCAzNywgNTQsIDIxNSwgCi0gICAgNzQsIDE1OCwgMzcsIDU0LCAyMTUsIDc0LCAxNjEsIDM3LCA1NCwgMjE1LCA3NCwgMTg5LCAzNywgNTQsIDIxNSwgNzQsIAotICAgIDE5NCwgMzcsIDU0LCAyMTUsIDc0LCAxOTgsIDM3LCA1NCwgMjE1LCA3NCwgMTk1LCAzNywgNTQsIDIxNSwgNzQsIDIwMCwgCi0gICAgMzcsIDU0LCAyMTYsIDE2MiwgMzcsIDU0LCAyMTYsIDE2MywgMTEwLCAzNywgNTQsIDIxNiwgMTYzLCAxMDUsIDM3LCA1NCwgCi0gICAgMjE2LCAxNjMsIDE1OCwgMzcsIDU0LCAyMTYsIDE2MywgMTYxLCAzNywgNTQsIDIxNiwgMTYzLCAxODksIDM3LCAyNCwgMjM0LCAKLSAgICA1OCwgMzcsIDI0LCAyMjgsIDIyNiwgMzcsIDI0LCAyMTYsIDEwMSwgMzcsIDI0LCAyMjMsIDI2LCAzNywgMjQsIDIzMCwgCi0gICAgMjE3LCAzNywgMjQsIDIyNSwgOTUsIDM3LCAyNCwgMjE5LCAxNDgsIDM3LCAyNCwgMjM2LCA1NiwgMzcsIDI0LCAyNTAsIDQ2LCAKLSAgICAzNywgMjQsIDI1MCwgMTA2LCAzNywgMjQsIDIzNCwgMTEwLCAzNywgMjQsIDIxNiwgMTczLCAzNywgMjQsIDIyNSwgMTMxLCAKLSAgICAzNywgMjQsIDI0MSwgMTcyLCAzNywgMjQsIDIzNCwgNTksIDYxLCAzNywgMjQsIDIyOCwgMjI3LCA2MSwgMzcsIDI0LCAyMTYsIAotICAgIDEwMiwgNjEsIDM3LCAyNCwgMjIzLCAyNywgNjEsIDM3LCAyNCwgMjMwLCAyMTgsIDYxLCAzNywgMjQsIDIyNSwgOTYsIDYxLCAKLSAgICAzNywgMjQsIDIxOSwgMTQ5LCA2MSwgMzcsIDI0LCAyMzYsIDU3LCA2MSwgMzcsIDI0LCAyNTAsIDQ3LCA2MSwgMzcsIDI0LCAKLSAgICAyNTAsIDEwNywgNjEsIDM3LCAyNCwgMjM0LCAxMTEsIDYxLCAzNywgMjQsIDIxNiwgMTc0LCA2MSwgMzcsIDI0LCAyMjUsIAotICAgIDEzMiwgNjEsIDM3LCAyNCwgMjQxLCAxNzMsIDYxLCAzNywgMjM0LCAzLCAxMzUsIDI1MCwgMTQ4LCAzNywgMjM0LCAzLCAKLSAgICAxMzUsIDIzNSwgNDcsIDM3LCAyNCwgMjM2LCA1NywgNzAsIDIzNCwgMywgMjE4LCAxNTksIDg3LCAzNywgMTU0LCAxMTAsIAotICAgIDM3LCAxNTQsIDEwNSwgMzcsIDE1NCwgMTU4LCAzNywgMTU0LCAxNjEsIDM3LCAxNTQsIDE4OSwgMzcsIDE1NCwgMTk0LCAzNywgCi0gICAgMTU0LCAxOTgsIDM3LCAxNTQsIDE5NSwgMzcsIDE1NCwgMjAwLCAzNywgMTU0LCAyMTYsIDI0NywgMzcsIDE1NCwgMjMwLCAKLSAgICAxMjgsIDM3LCAxNTQsIDI0NCwgOTYsIDM3LCAxNTQsIDIxMiwgNDAsIDM3LCAxNTQsIDIxMSwgMjE0LCAzNywgMTU0LCAyMzEsIAotICAgIDM5LCAzNywgMTU0LCAyNDUsIDIyMywgMzcsIDE1NCwgMjE4LCAzNywgMzcsIDE1NCwgMjE4LCAxMzIsIDM3LCAxNTQsIDI0MSwgCi0gICAgMjQ0LCAzNywgMTU0LCAyMTksIDU0LCAzNywgMTU0LCAyMjksIDIwNCwgMzcsIDE1NCwgMjE5LCA0LCAzNywgMTU0LCAyNDQsIAotICAgIDEwMiwgMzcsIDE1NCwgMjQ5LCAyMDAsIDM3LCAxNTQsIDIzMywgMTI1LCAzNywgMTU0LCAyMjEsIDE3NCwgMzcsIDE1NCwgCi0gICAgMjMxLCAxODksIDM3LCAxNTQsIDI0NCwgMTM3LCAzNywgMTU0LCAyMTgsIDQ5LCAzNywgMTU0LCAyNDUsIDM0LCAzNywgMTU0LCAKLSAgICAyMjQsIDE4NywgMzcsIDE1NCwgMjUzLCAxOTYsIDM3LCAxNTQsIDIzNSwgMTU5LCAzNywgMTU0LCAyMjMsIDYxLCAzNywgCi0gICAgMTU0LCAyNDksIDE2NCwgMzcsIDE1NCwgMjQ5LCAxNTUsIDM3LCAxNTQsIDI0MSwgMTY1LCAzNywgMTU0LCAyNTAsIDE3NCwgCi0gICAgMzcsIDE1NCwgMjMyLCAxMTAsIDM3LCAxNTQsIDIzMywgNDYsIDM3LCAxNTQsIDIyMiwgMjUxLCAzNywgMTU0LCAyMzEsIDgzLCAKLSAgICAzNywgMTU0LCAyMjMsIDg3LCAzNywgMTU0LCAyMTgsIDg3LCAzNywgMTU0LCAyMTgsIDIwLCAzNywgMTU0LCAyNDUsIDEyNywgCi0gICAgMzcsIDE1NCwgMjIzLCA2MywgMzcsIDE1NCwgMjU0LCAxNTAsIDM3LCAxNTQsIDIyOCwgMjEyLCAzNywgNTQsIDIxNiwgMTYzLCAKLSAgICAxOTQsIDM3LCA1NCwgMjE2LCAxNjMsIDE5OCwgMzcsIDU0LCAyMTYsIDE2MywgMTk1LCAzNywgNTQsIDIxNiwgMTYzLCAyMDAsIAotICAgIDM3LCA1NCwgMjQ0LCAxNSwgMzcsIDU0LCAyNDQsIDE2LCAxMTAsIDM3LCA1NCwgMjQ0LCAxNiwgMTA1LCAzNywgNTQsIDI0NCwgCi0gICAgMTYsIDE1OCwgMzcsIDU0LCAyNDQsIDE2LCAxNjEsIDM3LCA1NCwgMjQ0LCAxNiwgMTg5LCAzNywgNTQsIDI0NCwgMTYsIAotICAgIDE5NCwgMzcsIDU0LCAyNDQsIDE2LCAxOTgsIDM3LCA1NCwgMjQ0LCAxNiwgMTk1LCAzNywgNTQsIDI0NCwgMTYsIDIwMCwgCi0gICAgMzcsIDU0LCAyNDQsIDExNCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjM1LCAxMzMsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIAotICAgIDI0NCwgMTQ4LCAxMDksIDIxNywgMywgMTYsIDMxLCAyMzEsIDE2MCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjU0LCA0NywgCi0gICAgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjMxLCAxMzIsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDIzNSwgNDUsIDEwOSwgMjE3LCAzLCAKLSAgICAxNiwgMzEsIDIzNSwgNDYsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI1MywgMTg4LCAxMDksIDIxNywgMywgMTYsIDMxLCAyMjAsIAotICAgIDEzNiwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjI2LCAyMzksIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDIyOCwgNDAsIDEwOSwgCi0gICAgMjE3LCAzLCAxNiwgMzEsIDI0OCwgODUsIDQyLCAyNDEsIDE5MCwgNDIsIDI0NSwgODgsIDQyLCAyNDUsIDQzLCAyMzIsIAotICAgIDIxOSwgMjMyLCAyNDAsIDUwLCAzNywgNTYsIDYxLCAzNywgNTYsIDczLCAzNywgNTYsIDcwLCAzNywgNTYsIDc1LCAzNywgCi0gICAgNTYsIDc2LCAzNywgNTYsIDE3NiwgMzcsIDU2LCAyMzQsIDkyLCAzNywgNTYsIDIzMywgMjE3LCAzNywgNTYsIDIzNCwgMTgyLCAKLSAgICAzNywgNTYsIDIzNCwgMjgsIDM3LCA1NiwgMjA2LCAzNywgNTYsIDIxOSwgMTkxLCAzNywgNTYsIDIxOCwgODMsIDM3LCA1NiwgCi0gICAgMjIxLCAxODEsIDM3LCA1NiwgMjE5LCA1OCwgMzcsIDU2LCAyMTcsIDEwNSwgMzcsIDU2LCAyMTYsIDExNywgMzcsIDU2LCAKLSAgICAyMTUsIDExOCwgMzcsIDU2LCAyMTcsIDIyLCAzNywgNTYsIDExMSwgMzcsIDU2LCAxOTcsIDM3LCA1NiwgMjI4LCAyMzMsIAotICAgIDM3LCA1NiwgMjI3LCAyMzcsIDM3LCA1NiwgMjI5LCAxMDcsIDM3LCA1NiwgMjI4LCA3NCwgMzcsIDU2LCAxNjIsIDM3LCA1NiwgCi0gICAgMjQxLCAxODAsIDM3LCA1NiwgMjQwLCAyMjIsIDM3LCA1NiwgMjQxLCAyMzgsIDM3LCA1NiwgMjQxLCA2OCwgMzcsIDU2LCAKLSAgICAxODQsIDM3LCA1NiwgMjMwLCAyMzAsIDM3LCA1NiwgMjMwLCAxMDIsIDM3LCA1NiwgMjMxLCA5MSwgMzcsIDU2LCAyMzAsIAotICAgIDE2MSwgMzcsIDU2LCAxOTEsIDM3LCA1NiwgMjEwLCAyMTIsIDM3LCA1NiwgMjEwLCAyNDQsIDM3LCA1NiwgMjA1LCAzNywgCi0gICAgNTYsIDIyMywgMzUsIDM3LCA1NiwgMjIyLCAxNDAsIDM3LCA1NiwgMjIzLCAxMjgsIDM3LCA1NiwgMjIyLCAyMTEsIDM3LCAKLSAgICA1NiwgMjEyLCA2NSwgMzcsIDU2LCAyMTEsIDI1MCwgMzcsIDU2LCAyMTIsIDIyLCAzNywgNTYsIDIxMSwgMjI3LCA0MiwgCi0gICAgMjU0LCA3MSwgNDIsIDI1MywgMjM5LCA0MiwgMjU0LCA5NSwgNDIsIDI1NSwgMzEsIDQyLCAyMzUsIDIyNiwgNDIsIDIzNSwgCi0gICAgMTk2LCA0MiwgMjE0LCAxNjYsIDQyLCAyNDUsIDY2LCA0MiwgMjQ1LCAyMDYsIDQyLCAyMjYsIDE4NiwgNDIsIDIyNiwgMTgwLCAKLSAgICA0MiwgMjM0LCAyNDUsIDQyLCAyMzQsIDIxNCwgNDIsIDIzNCwgMjExLCA0MiwgMjQzLCA5MiwgNDIsIDI0MywgMTAxLCA0MiwgCi0gICAgMjQyLCAyMDQsIDQyLCAyNDIsIDIwMCwgNDIsIDIzMywgMTUwLCA0MiwgMjQyLCAxOTMsIDQyLCAyMzQsIDcyLCA0MiwgMjM0LCAKLSAgICA3MSwgNDIsIDIzNCwgNzAsIDQyLCAyMzQsIDY5LCA0MiwgMjQyLCA4NiwgNDIsIDI0MiwgODUsIDQyLCAyMzMsIDE5MywgNDIsIAotICAgIDIzMywgMTk1LCA0MiwgMjM0LCAxNzgsIDQyLCAyMzQsIDEsIDQyLCAyMzQsIDgsIDQyLCAyMjIsIDE2LCA0MiwgMjIxLCAKLSAgICAyMzcsIDQyLCAyMTksIDEyOSwgNDIsIDIyMCwgMTQxLCA0MiwgMjIwLCAxNDAsIDQyLCAyNDgsIDIxOCwgNDIsIDI0OCwgMzYsIAotICAgIDQyLCAyNDcsIDEyMSwgNDIsIDIxNiwgMzIsIDQyLCAyMjksIDIwMCwgNDIsIDIyOCwgNDEsIDQyLCAyNDIsIDMyLCA0MiwgCi0gICAgMjI2LCA4NCwgNDIsIDIyNiwgODMsIDQyLCAyNTIsIDE4OCwgNDIsIDIyNSwgMTA1LCA0MiwgMjI1LCA2OSwgNDIsIDIyNSwgCi0gICAgNzAsIDQyLCAyNTEsIDIzNCwgNDIsIDI0MCwgMjIxLCA0MiwgMjQwLCAyMTcsIDQyLCAyNTEsIDkxLCA0MiwgMjQwLCAyMDQsIAotICAgIDQyLCAyNDEsIDIxNSwgNDIsIDIyNSwgMTU5LCA0MiwgMjI1LCAxOTQsIDQyLCAyNDEsIDE5OCwgNDIsIDIyNSwgMTkxLCA0MiwgCi0gICAgMjI1LCAyMDcsIDQyLCAyNTIsIDYxLCA0MiwgMjI1LCA2LCA0MiwgMjUxLCAxODAsIDQyLCAyNDEsIDU2LCA0MiwgMjI0LCAKLSAgICAyNTAsIDQyLCAyNDEsIDQ4LCA0MiwgMjQxLCA1MCwgNDIsIDIzMSwgMjAxLCA0MiwgMjMxLCAxOTcsIDQyLCAyMzEsIDIwNiwgCi0gICAgNDIsIDIzMSwgMTUwLCA0MiwgMjMxLCAxNzUsIDQyLCAyMzAsIDE5NywgNDIsIDIzMCwgMTc2LCA0MiwgMjMwLCAxNzUsIDQyLCAKLSAgICAyMzEsIDc0LCA0MiwgMjMxLCA3MSwgNDIsIDIzMSwgNzUsIDQyLCAyMTEsIDEwMiwgNDIsIDIxMSwgMTAwLCA0MiwgMjEwLCAKLSAgICAyMDEsIDQyLCAyMjIsIDIyNiwgNDIsIDIyMiwgMjMwLCA0MiwgMjIyLCAxMTcsIDQyLCAyMjIsIDExMSwgNDIsIDIyMywgODUsIAotICAgIDQyLCAyMjMsIDgyLCA0MiwgMjEyLCAzOCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDIxMCwgODYsIDEwOSwgCi0gICAgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAxMTAsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAxMDUsIDEwOSwgCi0gICAgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAxNTgsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAxNjEsIDEwOSwgCi0gICAgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAxODksIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAxOTQsIDEwOSwgCi0gICAgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAxOTgsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAxOTUsIDEwOSwgCi0gICAgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAyMDAsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAyMTYsIDI0NywgCi0gICAgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDI0NSwgMTY3LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDAsIDIzOSwgCi0gICAgMjE1LCA3NiwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDIxNiwgMTY0LCAxMDksIDIxNywgMywgMTYsIDMxLCAKLSAgICAyNDAsIDIzOSwgMjQ0LCA1LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDAsIDIzOSwgMjQ0LCAxMTgsIDEwOSwgMjE3LCAzLCAKLSAgICAxNiwgMzEsIDI0MCwgMjM5LCAyMTksIDExOSwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDIyMCwgMTE5LCAxMDksIAotICAgIDIxNywgMywgMTYsIDMxLCAyNDAsIDIzOSwgMjQ1LCAxOTAsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAyMjgsIAotICAgIDE5NywgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDIxNSwgNzMsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0MCwgCi0gICAgMjM5LCAyMTUsIDY3LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDAsIDIzOSwgMjE1LCA2MywgMTA5LCAyMTcsIDMsIDE2LCAKLSAgICAzMSwgMjQwLCAyMzksIDIxNSwgNjQsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAyMTUsIDY5LCA0MiwgMjQwLCAKLSAgICAyMzAsIDQyLCAyNDgsIDIyMSwgNDIsIDI1MywgMTkyLCA0MiwgMTMwLCA0MiwgMjI2LCAxMjUsIDQyLCAyMjUsIDIyNSwgNDIsIAotICAgIDI0NywgMTQ3LCA0MiwgMjQ3LCAxNDgsIDIxOCwgMjMzLCA0MiwgMjQ3LCAxNDgsIDI0OSwgMTA4LCA0MiwgMjM1LCAxNTYsIAotICAgIDQyLCAyNDUsIDkxLCAyMjksIDIwNSwgMjQxLCAyMTYsIDQyLCAyNDUsIDkxLCAyMjksIDIwNSwgMjE3LCAxNzQsIDQyLCAKLSAgICAyNDUsIDkxLCAyMjksIDIwNSwgMjE3LCA3NCwgNDIsIDI0NSwgOTEsIDIyOSwgMjA1LCAyMzEsIDcwLCA0MiwgMjQ5LCAxNTcsIAotICAgIDQyLCAyMjYsIDkwLCAyNTQsIDEyNSwgNDIsIDE5NywgNDIsIDIzMCwgMTAzLCA2MSwgNDIsIDE4NCwgNDIsIDE3NiwgNDIsIAotICAgIDIzNCwgMTg1LCA0MiwgMjMxLCAxMjksIDQyLCAyNDMsIDgwLCA0MiwgMjUxLCAxOCwgNDIsIDIzNCwgMTg0LCA0MiwgMjI1LCAKLSAgICAxNTAsIDQyLCAyMjksIDgxLCA0MiwgMjMwLCAxMDMsIDI0NSwgNiwgNDIsIDIzMCwgMTAzLCAyNDMsIDIwMiwgNDIsIDIzMSwgCi0gICAgMTUsIDQyLCAyMzQsIDEzNCwgNDIsIDI0MCwgMTYzLCA0MiwgMjM0LCA5NCwgNDIsIDIzMCwgMjMyLCA0MiwgMjQyLCAyMTYsIAotICAgIDQyLCAyMTYsIDExOSwgNDIsIDIzMCwgMTAzLCAxNTYsIDQyLCAyMzAsIDE2OSwgNDIsIDI0NywgMTU3LCA0MiwgMjM0LCA0MCwgCi0gICAgNDIsIDI0NCwgNDUsIDQyLCAyMjgsIDExMiwgNDIsIDIzMCwgMTAzLCAxOTMsIDQyLCAyMzAsIDE2NiwgNDIsIDI0OSwgMjM5LCAKLSAgICA0MiwgMjM0LCAzNCwgNDIsIDIzMCwgMTY3LCAyMTgsIDIzMywgNDIsIDI0OSwgMjQwLCAyMTgsIDIzMywgNDIsIDIzMiwgNTAsIAotICAgIDIxOCwgMjMzLCA0MiwgMjM0LCAzNSwgMjE4LCAyMzMsIDQyLCAyMzAsIDE2NywgMjQ5LCAxMDgsIDQyLCAyNDksIDI0MCwgCi0gICAgMjQ5LCAxMDgsIDQyLCAyMzIsIDUwLCAyNDksIDEwOCwgNDIsIDIzNCwgMzUsIDI0OSwgMTA4LCA0MiwgMjMyLCA1MCwgMTE3LCAKLSAgICAyMjIsIDkxLCA0MiwgMjMyLCA1MCwgMTE3LCAyMjIsIDkyLCAyMTgsIDIzMywgNDIsIDE5MCwgNDIsIDIzMywgMjUxLCA0MiwgCi0gICAgMjMwLCAxMDUsIDQyLCAyNDIsIDE1MSwgNDIsIDIyMywgMTc2LCA0MiwgMjIzLCAxNzcsIDExNywgMjIyLCA5MSwgNDIsIAotICAgIDIyMywgMTc3LCAxMTcsIDIyMiwgOTIsIDIxOCwgMjMzLCA0MiwgMjI0LCAxNjIsIDQyLCAyMjgsIDEzLCA0MiwgMjMwLCAKLSAgICAxMDMsIDIyMiwgOTEsIDQyLCAyMzAsIDEwNCwgNDIsIDIyNCwgMTE2LCA0MiwgMjI3LCAxNzYsIDQyLCAyMzAsIDEwMywgCi0gICAgMjE0LCAxMDUsIDQyLCAyMzAsIDQ5LCA0MiwgMjMzLCAxODUsIDQyLCAyMzAsIDUwLCAyMzEsIDc0LCA0MiwgMjI0LCAxMTUsIAotICAgIDQyLCAyMjcsIDE3NSwgNDIsIDIzMCwgMTAzLCAyMTIsIDk4LCA0MiwgMjMwLCA0MywgNDIsIDIzMywgMTgzLCA0MiwgMjMwLCAKLSAgICA0NCwgMjMxLCA3NCwgNDIsIDIzNSwgMjQsIDIyNiwgMjIwLCA0MiwgMjMyLCA1MCwgMjI2LCAyMjAsIDQyLCAyNTQsIDEzNiwgCi0gICAgNDIsIDI1MSwgMTYwLCA0MiwgMjUwLCAyMTQsIDQyLCAyNTAsIDE5MSwgNDIsIDI1MSwgNjcsIDExNywgMjM0LCAxMzQsIDQyLCAKLSAgICAyNDksIDIzOCwgNDIsIDI0OCwgMTQyLCA0MiwgMjQyLCA3MiwgNDIsIDE2MiwgNDIsIDI0MCwgMjMxLCA0MiwgMjM1LCAyNTUsIAotICAgIDQyLCAyMzQsIDQ3LCA0MiwgMjM0LCAzNSwgMjUwLCAyNTAsIDQyLCAyMzMsIDIxOSwgNDIsIDIzMiwgMTU5LCA0MiwgMjMyLCAKLSAgICAxNTgsIDQyLCAyMzIsIDE0NywgNDIsIDIzMiwgNjMsIDQyLCAyMzEsIDEzMCwgMjE5LCA3OSwgNDIsIDIzMCwgMTk2LCA0MiwgCi0gICAgMjMwLCAxNTIsIDQyLCAyMjUsIDE0OCwgNDIsIDIyNSwgMTksIDQyLCAyMjQsIDIxOSwgNDIsIDIyNCwgMjE3LCA0MiwgMjE4LCAKLSAgICAyMjcsIDQyLCAyMTgsIDIsIDQyLCAyMTIsIDI0LCA0MiwgMjE0LCAxMDYsIDExNywgMTkzLCA0MiwgMTE1LCAxMTcsIDE5MywgCi0gICAgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDExMCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDEwNSwgCi0gICAgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDE1OCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDE2MSwgCi0gICAgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDE4OSwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDE5NCwgCi0gICAgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDE5OCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDE5NSwgCi0gICAgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDIwMCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDIxNiwgCi0gICAgMjQ3LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMjQ1LCAxNjcsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0OCwgCi0gICAgMTQ2LCAyMTUsIDc2LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMjE2LCAxNjQsIDEwOSwgMjE3LCAzLCAxNiwgCi0gICAgMzEsIDI0OCwgMTQ2LCAyNDQsIDUsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0OCwgMTQ2LCAyNDQsIDExOCwgMTA5LCAyMTcsIAotICAgIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDIxOSwgMTE5LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMjIwLCAxMTksIAotICAgIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0OCwgMTQ2LCAyNDUsIDE5MCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIAotICAgIDIyOCwgMTk3LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMjE1LCA3MywgMTA5LCAyMTcsIDMsIDE2LCAzMSwgCi0gICAgMjQ4LCAxNDYsIDIxNSwgNjcsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0OCwgMTQ2LCAyMTUsIDYzLCAxMDksIDIxNywgMywgCi0gICAgMTYsIDMxLCAyNDgsIDE0NiwgMjE1LCA2NCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDIxNSwgNjksIDEwOSwgCi0gICAgMjE3LCAzLCAxNiwgMzEsIDI0OCwgMTQ2LCAyMTUsIDcwLCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMjE1LCAKLSAgICA2NSwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDIxNSwgNjYsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0OCwgCi0gICAgMTQ2LCAyMTUsIDcyLCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMjE1LCA2OCwgMTA5LCAyMTcsIDMsIDE2LCAKLSAgICAzMSwgMjQ4LCAxNDYsIDIxNiwgMTYyLCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMjE2LCAxNjEsIDQyLCAyNDMsIAotICAgIDExOCwgMjQxLCAxOTIsIDMxLCAyMTYsIDE5NiwgMjQ5LCAxNDAsIDI0MSwgMjIzLCAyNDEsIDE5MiwgMzEsIDIxNiwgMTk2LCAKLSAgICAyMjMsIDEyMiwgMjQ1LCAyMjMsIDI0MSwgMTkyLCAzMSwgMjQ3LCAyMzEsIDI1MywgMjA3LCAyMTYsIDE5NiwgMjUyLCA1NiwgCi0gICAgMjQxLCAxOTIsIDMxLCAyMTAsIDIyMywgMjQ0LCAzOCwgMjQxLCAxOTIsIDMxLCAyMTIsIDU5LCAyNDEsIDE5MiwgMzEsIAotICAgIDI0OSwgMjAzLCAyNDEsIDE5MiwgMzEsIDIxNiwgMTk2LCAyNTQsIDMsIDI0MSwgMTkyLCAzMSwgMjQxLCA2MCwgMjE2LCAzOCwgCi0gICAgMjQxLCAxOTIsIDMxLCA0LCAyMTcsIDYxLCAyNDEsIDE5MiwgMzEsIDIxNSwgMjM3LCAyNDEsIDE5MiwgMzEsIDIyNSwgMjE5LCAKLSAgICAyNDEsIDE5MiwgMzEsIDIxOCwgMTU4LCAyNDEsIDE5MiwgMzEsIDI0NCwgMTM5LCAyNDEsIDE5MiwgMzEsIDI0MiwgMTMyLCAKLSAgICAyMjQsIDI0MCwgMjQxLCAxOTIsIDMxLCAyMzAsIDE1NSwgMjQxLCAxOTIsIDMxLCAyNDUsIDEyNiwgMjQxLCAxOTIsIDMxLCAKLSAgICAyNDQsIDM5LCAyNDEsIDE5MiwgMzEsIDIxMSwgMjA3LCAyMjYsIDE5NywgMjE2LCAxOTYsIDI0OCwgODYsIDI0MSwgMTkyLCAKLSAgICAzMSwgMjU0LCA1MSwgMjQxLCAxOTIsIDMxLCAyNDksIDE4NSwgMjQxLCAxOTIsIDMxLCAyNTEsIDIyNywgMjE2LCAxMzgsIAotICAgIDI0MSwgMTkyLCAzMSwgMjQyLCAxNDksIDI0MSwgMTkyLCAzMSwgMjE4LCAyNDUsIDI1NCwgNzAsIDI0MSwgMTkyLCAzMSwgCi0gICAgMjIzLCA1MywgMjQxLCAxOTIsIDMxLCAyMzUsIDIyMCwgMjQxLCAxOTIsIDMxLCAyNDIsIDEzMiwgMjE3LCA2MSwgMjQxLCAKLSAgICAxOTIsIDMxLCAyMzAsIDExMSwgMjQ5LCAxNTksIDI0MSwgMTkyLCAzMSwgMjQyLCAxMzIsIDIyNCwgMTk3LCAyNDEsIDE5MiwgCi0gICAgMzEsIDIxNiwgMTk2LCAyNTUsIDE4LCAyMTIsIDQwLCAyNDEsIDE5MiwgMzEsIDIxNiwgMTk2LCAyNTAsIDgsIDI0NCwgOTYsIAotICAgIDI0MSwgMTkyLCAzMSwgMjM1LCAyMzMsIDI0MSwgMTkyLCAzMSwgMjQ2LCA1NywgMjQxLCAxOTIsIDMxLCAyMjMsIDU2LCAKLSAgICAyNDEsIDE5MiwgMzEsIDI0MiwgMTMyLCAyMjQsIDIyNCwgMjQxLCAxOTIsIDMxLCAyMjQsIDE3NywgMjQxLCAxOTIsIDMxLCAKLSAgICAyNDgsIDE2MSwgNjQsIDIxNiwgMTk2LCAyMzIsIDIzMCwgMjQxLCAxOTIsIDMxLCAyMTYsIDE5NiwgMjQ0LCAxNzQsIDI0MSwgCi0gICAgMTkyLCAzMSwgMjI2LCAxNjMsIDI0MSwgMTkyLCAzMSwgMjI2LCAyNDQsIDI0MSwgMTkyLCAzMSwgMjQ4LCA1OSwgMjQxLCAKLSAgICAxOTIsIDMxLCAyNDgsIDc5LCAyNDEsIDE5MiwgMzEsIDIzNSwgMjQ3LCAyNDEsIDE5MiwgMzEsIDI1MSwgMTQ5LCAyNDEsIAotICAgIDE5MiwgMzEsIDI0OSwgMjIxLCAyMTYsIDQyLCAyMzEsIDc2LCAyNDEsIDE5MiwgMzEsIDI0MywgODcsIDIxNiwgMzgsIDI0MSwgCi0gICAgMTkyLCAzMSwgMjI0LCAxMjUsIDIxNCwgMTU0LCAyNDEsIDE5MiwgMzEsIDIyNiwgMTYyLCAyNDEsIDE5MiwgMzEsIDIxNiwgCi0gICAgMTk2LCAyMTIsIDEzLCAyNDEsIDE5MiwgMzEsIDIyMywgNDUsIDI0MSwgMTkyLCAzMSwgMjE2LCAxOTYsIDI1MCwgMjIwLCAKLSAgICAyNDEsIDE5MiwgMzEsIDIxNiwgMTk2LCAyNTMsIDI1NSwgMjE2LCAxMzMsIDI0MSwgMTkyLCAzMSwgMjE2LCAxOTYsIDIzNCwgCi0gICAgMTc5LCAyMTgsIDEzNCwgMjMwLCAxMTUsIDI0MSwgMTkyLCAzMSwgMjQ4LCAzMiwgMjQxLCAxOTIsIDMxLCAyMTYsIDE5NiwgCi0gICAgMjMxLCAxNTIsIDIzMSwgMjAyLCAyNDEsIDE5MiwgMzEsIDI1NSwgMTksIDI0MSwgMTkyLCAzMSwgMjE2LCAxOTYsIDIxMiwgCi0gICAgNTQsIDI0MSwgMTkyLCAzMSwgMjE2LCAxOTYsIDI0MywgNDcsIDIxMSwgMjM5LCAyNDEsIDE5MiwgMzEsIDIxNiwgMTk2LCAKLSAgICAyMzUsIDUyLCAyMzMsIDEwNywgMjQxLCAxOTIsIDMxLCAyNDcsIDE4NCwgMjQxLCAxOTIsIDMxLCAyMzIsIDIyMCwgMjQxLCAKLSAgICAxOTIsIDMxLCAyMzUsIDIyMywgMjE1LCAxODcsIDI0MSwgMTkyLCAzMSwgNCwgMjI0LCAxOTcsIDI0MSwgMTkyLCAzMSwgCi0gICAgMjU0LCAyMTcsIDI0OSwgMjEyLCAyNDEsIDE5MiwgMzEsIDI1MiwgNTksIDI0OSwgMjEyLCA4LCAzLCAyMzUsIDE2MCwgOCwgCi0gICAgMywgMjM1LCAxNTMsIDgsIDMsIDczLCA4LCAzLCAyMzUsIDE4MiwgOCwgMywgMjM2LCA1OCwgOCwgMywgMjM2LCA0MSwgOCwgCi0gICAgMywgMjM2LCA2MCwgOCwgMywgMjM2LCA1OSwgOCwgMywgMjUzLCAyMDYsIDgsIDMsIDI1MywgMTY5LCA4LCAzLCA2MSwgOCwgCi0gICAgMywgMjU0LCA3MiwgOCwgMywgMjE0LCAxNjQsIDgsIDMsIDIxNCwgMTY3LCA4LCAzLCAyMTQsIDE2NSwgOCwgMywgMjI2LCAKLSAgICAxNDAsIDgsIDMsIDIyNiwgMTE0LCA4LCAzLCA3NiwgOCwgMywgMjI2LCAxNzUsIDgsIDMsIDI0NSwgMzUsIDgsIDMsIDc1LCAKLSAgICA4LCAzLCAyMTEsIDE5NSwgOCwgMywgMjUxLCAyMjgsIDgsIDMsIDI1MSwgMjI1LCA4LCAzLCAyNTIsIDYsIDgsIDMsIDI1MSwgCi0gICAgMjM4LCA4LCAzLCAyNTEsIDI1MSwgOCwgMywgMjUxLCAyNTAsIDgsIDMsIDI1MSwgMjUzLCA4LCAzLCAyNTEsIDI1MiwgOCwgCi0gICAgMywgMjUyLCAxMjEsIDgsIDMsIDI1MiwgMTEzLCA4LCAzLCAyNTIsIDE5MSwgOCwgMywgMjUyLCAxNDIsIDgsIDMsIDI1MSwgCi0gICAgMTAxLCA4LCAzLCAyNTEsIDEwNSwgOCwgMywgMjUxLCAxMDIsIDgsIDMsIDI1MSwgMTc5LCA4LCAzLCAyNTEsIDE2MywgOCwgCi0gICAgMywgMjUxLCAyMDUsIDgsIDMsIDI1MSwgMTg1LCA4LCAzLCAyNTIsIDIxLCA4LCAzLCAyNTIsIDc1LCA4LCAzLCAyNTIsIDMzLCAKLSAgICA4LCAzLCAyNTEsIDg3LCA4LCAzLCAyNTEsIDg0LCA4LCAzLCAyNTEsIDEyNSwgOCwgMywgMjUxLCAxMDAsIDgsIDMsIDI1MSwgCi0gICAgOTQsIDgsIDMsIDI1MSwgOTgsIDgsIDMsIDI1MSwgNzIsIDgsIDMsIDI1MSwgNzAsIDgsIDMsIDI1MSwgNzcsIDgsIDMsIAotICAgIDI1MSwgNzUsIDgsIDMsIDI1MSwgNzMsIDgsIDMsIDI1MSwgNzQsIDgsIDMsIDIyNSwgNDksIDgsIDMsIDIyNSwgNDUsIDgsIAotICAgIDMsIDIyNSwgMTA4LCA4LCAzLCAyMjUsIDU5LCA4LCAzLCAyMjUsIDc1LCA4LCAzLCAyMjUsIDEwMiwgOCwgMywgMjI1LCA5OCwgCi0gICAgOCwgMywgMjI1LCAyNDAsIDgsIDMsIDIyNSwgMjMwLCA4LCAzLCAxOTAsIDgsIDMsIDIyNiwgMjEsIDgsIDMsIDIyNCwgMTM1LCAKLSAgICA4LCAzLCAyMjQsIDEzNywgOCwgMywgMjI0LCAxMzYsIDgsIDMsIDIyNCwgMjMzLCA4LCAzLCAyMjQsIDIyMiwgOCwgMywgCi0gICAgMjI1LCAxNiwgOCwgMywgMjI0LCAyNDUsIDgsIDMsIDIyNCwgMTIxLCA4LCAzLCAyMjQsIDExNywgOCwgMywgMjI0LCAxNTAsIAotICAgIDgsIDMsIDIyNCwgMTM0LCA4LCAzLCAyMjQsIDEyNiwgOCwgMywgMjI0LCAxMzIsIDgsIDMsIDIyNCwgMTAwLCA4LCAzLCAKLSAgICAyMjQsIDk5LCA4LCAzLCAyMjQsIDEwNCwgOCwgMywgMjI0LCAxMDMsIDgsIDMsIDIyNCwgMTAxLCA4LCAzLCAyMjQsIDEwMiwgCi0gICAgOCwgMywgMjUyLCA5NiwgOCwgMywgMjUyLCA5NSwgOCwgMywgMjUyLCAxMDIsIDgsIDMsIDI1MiwgOTcsIDgsIDMsIDI1MiwgCi0gICAgOTksIDgsIDMsIDI1MiwgOTgsIDgsIDMsIDI1MiwgMTAxLCA4LCAzLCAyNTIsIDEwMCwgOCwgMywgMjUyLCAxMDgsIDgsIDMsIAotICAgIDI1MiwgMTA3LCA4LCAzLCAyNTIsIDExMSwgOCwgMywgMjUyLCAxMDksIDgsIDMsIDI1MiwgODcsIDgsIDMsIDI1MiwgODksIAotICAgIDgsIDMsIDI1MiwgODgsIDgsIDMsIDI1MiwgOTIsIDgsIDMsIDI1MiwgOTEsIDgsIDMsIDI1MiwgOTQsIDgsIDMsIDI1MiwgCi0gICAgOTMsIDgsIDMsIDI1MiwgMTAzLCA4LCAzLCAyNTIsIDEwNiwgOCwgMywgMjUyLCAxMDQsIDgsIDMsIDI1MiwgODMsIDgsIDMsIAotICAgIDI1MiwgODIsIDgsIDMsIDI1MiwgOTAsIDgsIDMsIDI1MiwgODYsIDgsIDMsIDI1MiwgODQsIDgsIDMsIDI1MiwgODUsIDgsIAotICAgIDMsIDI1MiwgNzksIDgsIDMsIDI1MiwgNzgsIDgsIDMsIDI1MiwgODEsIDgsIDMsIDI1MiwgODAsIDgsIDMsIDIyOSwgMTY5LCAKLSAgICA4LCAzLCAyMjksIDE2OCwgOCwgMywgMjI5LCAxNzQsIDgsIDMsIDIyOSwgMTcwLCA4LCAzLCAyMjksIDE3MSwgOCwgMywgCi0gICAgMjI5LCAxNzMsIDgsIDMsIDIyOSwgMTcyLCA4LCAzLCAyMjksIDE3NywgOCwgMywgMjI5LCAxNzYsIDgsIDMsIDIyOSwgMTc5LCAKLSAgICA4LCAzLCAyMjksIDE3OCwgOCwgMywgMjI5LCAxNjUsIDgsIDMsIDIyOSwgMTY0LCA4LCAzLCAyMjksIDE2NywgOCwgMywgCi0gICAgMjI5LCAxNjYsIDgsIDMsIDIyOSwgMTU4LCA4LCAzLCAyMjksIDE1NywgOCwgMywgMjI5LCAxNjIsIDgsIDMsIDIyOSwgMTYxLCAKLSAgICA4LCAzLCAyMjksIDE1OSwgOCwgMywgMjI5LCAxNjAsIDgsIDMsIDIyOSwgMTUyLCA4LCAzLCAyMjksIDE1MSwgOCwgMywgCi0gICAgMjI5LCAxNTYsIDgsIDMsIDIyOSwgMTU1LCA4LCAzLCAyMjksIDE1MywgOCwgMywgMjI5LCAxNTQsIDgsIDMsIDI0MSwgMTEwLCAKLSAgICA4LCAzLCAyNDEsIDEwOSwgOCwgMywgMjQxLCAxMTUsIDgsIDMsIDI0MSwgMTExLCA4LCAzLCAyNDEsIDExMiwgOCwgMywgCi0gICAgMjQxLCAxMTQsIDgsIDMsIDI0MSwgMTEzLCA4LCAzLCAyNDEsIDExOCwgOCwgMywgMjQxLCAxMTcsIDgsIDMsIDI0MSwgMTIwLCAKLSAgICA4LCAzLCAyNDEsIDExOSwgOCwgMywgMjQxLCAxMDEsIDgsIDMsIDI0MSwgMTAzLCA4LCAzLCAyNDEsIDEwMiwgOCwgMywgCi0gICAgMjQxLCAxMDYsIDgsIDMsIDI0MSwgMTA1LCA4LCAzLCAyNDEsIDEwOCwgOCwgMywgMjQxLCAxMDcsIDgsIDMsIDI0MSwgOTcsIAotICAgIDgsIDMsIDI0MSwgOTYsIDgsIDMsIDI0MSwgMTA0LCA4LCAzLCAyNDEsIDEwMCwgOCwgMywgMjQxLCA5OCwgOCwgMywgMjQxLCAKLSAgICA5OSwgOCwgMywgMjQxLCA5MSwgOCwgMywgMjQxLCA5NSwgOCwgMywgMjQxLCA5NCwgOCwgMywgMjQxLCA5MiwgOCwgMywgCi0gICAgMjQxLCA5MywgOCwgMywgMjMwLCAxNzIsIDgsIDMsIDIzMCwgMTcxLCA4LCAzLCAyMzAsIDIzMCwgOCwgMywgMjMwLCAxNzgsIAotICAgIDgsIDMsIDIzMCwgMjAzLCA4LCAzLCAyMzAsIDIyMSwgOCwgMywgMjMwLCAyMTksIDgsIDMsIDIzMSwgMTM5LCA4LCAzLCAKLSAgICAyMzEsIDEzNCwgOCwgMywgMTg0LCA4LCAzLCAyMzEsIDE3MiwgOCwgMywgMjMwLCA3NCwgOCwgMywgMjMwLCA3MywgOCwgMywgCi0gICAgMjMwLCA3NywgOCwgMywgMjMwLCA3NSwgOCwgMywgMjMwLCAxMjEsIDgsIDMsIDIzMCwgMTA3LCA4LCAzLCAyMzAsIDE2MSwgCi0gICAgOCwgMywgMjMwLCAxMjYsIDgsIDMsIDIzMSwgMjYsIDgsIDMsIDIzMSwgOTEsIDgsIDMsIDIzMCwgNTUsIDgsIDMsIDIzMCwgCi0gICAgNTEsIDgsIDMsIDIzMCwgMTAyLCA4LCAzLCAyMzAsIDcwLCA4LCAzLCAyMzAsIDYzLCA4LCAzLCAyMzAsIDY4LCA4LCAzLCAKLSAgICAyMzAsIDI4LCA4LCAzLCAyMzAsIDI3LCA4LCAzLCAyMzAsIDMzLCA4LCAzLCAyMzAsIDMwLCA4LCAzLCAyNDQsIDgzLCA4LCAKLSAgICAzLCAyNDQsIDc4LCA4LCAzLCAyNDQsIDEyMSwgOCwgMywgMjQ0LCA5OCwgOCwgMywgMjQ0LCAxNjcsIDgsIDMsIDI0NCwgCi0gICAgMTU4LCA4LCAzLCAyNDQsIDE5NiwgOCwgMywgMjQ0LCAxNzAsIDgsIDMsIDI0NCwgMywgOCwgMywgMjQ0LCA0MywgOCwgMywgCi0gICAgMjQ0LCAyNywgOCwgMywgMjQzLCAyMTgsIDgsIDMsIDI0MywgMjE3LCA4LCAzLCAyNDMsIDIzNCwgOCwgMywgMjQzLCAyMjMsIAotICAgIDgsIDMsIDI0MywgMjIxLCA4LCAzLCAyNDMsIDIyMiwgOCwgMywgMjQzLCAyMDUsIDgsIDMsIDI0MywgMjA0LCA4LCAzLCAKLSAgICAyNDMsIDIwOCwgOCwgMywgMjQzLCAyMDYsIDgsIDMsIDIxMywgMTQ0LCA4LCAzLCAyMTMsIDEzOSwgOCwgMywgMjEzLCAxNzYsIAotICAgIDgsIDMsIDIxMywgMTUzLCA4LCAzLCAyMTMsIDE2NiwgOCwgMywgMjEzLCAxNjMsIDgsIDMsIDIxMywgMTY4LCA4LCAzLCAKLSAgICAyMTMsIDE2NywgOCwgMywgMjE0LCA3LCA4LCAzLCAyMTQsIDIsIDgsIDMsIDIxNCwgMjcsIDgsIDMsIDIxNCwgMTgsIDgsIDMsIAotICAgIDIxMywgMTI1LCA4LCAzLCAyMTMsIDEyMSwgOCwgMywgMjEzLCAxMzgsIDgsIDMsIDIxMywgMTI2LCA4LCAzLCAyMTMsIDE3OCwgCi0gICAgOCwgMywgMjEzLCAyNDQsIDgsIDMsIDIxMiwgMTEwLCA4LCAzLCAyMTIsIDEwOCwgOCwgMywgMjEyLCAxMTYsIDgsIDMsIAotICAgIDIxMiwgMTEzLCA4LCAzLCAyMTIsIDExMSwgOCwgMywgMjEyLCAxMTIsIDgsIDMsIDIxMiwgMTAyLCA4LCAzLCAyMTIsIDEwMSwgCi0gICAgOCwgMywgMjEyLCAxMDYsIDgsIDMsIDIxMiwgMTA1LCA4LCAzLCAyMTIsIDEwMywgOCwgMywgMjEyLCAxMDQsIDgsIDMsIAotICAgIDI0NywgMTc4LCA4LCAzLCAyNDcsIDE2NiwgOCwgMywgMjQ4LCAzLCA4LCAzLCAyNDcsIDIwMywgOCwgMywgMjQ3LCAyMzYsIAotICAgIDgsIDMsIDI0NywgMjQwLCA4LCAzLCAyNDcsIDIzOSwgOCwgMywgMjQ4LCAxNTIsIDgsIDMsIDI0OCwgMTQ3LCA4LCAzLCAKLSAgICAyNDgsIDIyMSwgOCwgMywgMjQ4LCAxNzIsIDgsIDMsIDI0NiwgNjIsIDgsIDMsIDI0NiwgNjMsIDgsIDMsIDI0NywgMTIwLCAKLSAgICA4LCAzLCAyNDYsIDEwMiwgOCwgMywgMjQ3LCAxNDUsIDgsIDMsIDI0NywgMTIyLCA4LCAzLCAyNDgsIDMwLCA4LCAzLCAyNDgsIAotICAgIDkwLCA4LCAzLCAyNDgsIDQ1LCA4LCAzLCAyNDYsIDUzLCA4LCAzLCAyNDYsIDUxLCA4LCAzLCAyNDYsIDc4LCA4LCAzLCAKLSAgICAyNDYsIDYxLCA4LCAzLCAyNDYsIDU2LCA4LCAzLCAyNDYsIDU5LCA4LCAzLCAyMTYsIDY3LCA4LCAzLCAyMTYsIDYxLCA4LCAKLSAgICAzLCAyMTYsIDExNywgOCwgMywgMjE2LCA3NiwgOCwgMywgMjE2LCAxMDksIDgsIDMsIDIxNiwgMTExLCA4LCAzLCAyMTYsIAotICAgIDExMCwgOCwgMywgMjE3LCA0NiwgOCwgMywgMjE3LCAzMywgOCwgMywgMjE3LCAxMDUsIDgsIDMsIDIxNywgNTQsIDgsIDMsIAotICAgIDIxNSwgMTAyLCA4LCAzLCAyMTUsIDEwMSwgOCwgMywgMjE1LCAxMDQsIDgsIDMsIDIxNSwgMTAzLCA4LCAzLCAyMTYsIDUsIAotICAgIDgsIDMsIDIxNiwgMSwgOCwgMywgMTExLCA4LCAzLCAyMTYsIDEzLCA4LCAzLCAyMTYsIDIxMywgOCwgMywgMjE3LCAyMiwgOCwgCi0gICAgMywgMjE2LCAyMzcsIDgsIDMsIDIxNSwgODgsIDgsIDMsIDIxNSwgODMsIDgsIDMsIDIxNSwgMTE4LCA4LCAzLCAyMTUsIAotICAgIDEwMCwgOCwgMywgMjE1LCA4OSwgOCwgMywgMjE1LCA5OCwgOCwgMywgMjQ4LCAxMDcsIDgsIDMsIDI0OCwgMTA2LCA4LCAzLCAKLSAgICAyNDgsIDExMiwgOCwgMywgMjQ4LCAxMDgsIDgsIDMsIDI0OCwgMTA5LCA4LCAzLCAyNDgsIDExMSwgOCwgMywgMjQ4LCAxMTAsIAotICAgIDgsIDMsIDI0OCwgMTI4LCA4LCAzLCAyNDgsIDEyNywgOCwgMywgMjQ4LCAxMzUsIDgsIDMsIDI0OCwgMTI5LCA4LCAzLCAKLSAgICAyNDgsIDk3LCA4LCAzLCAyNDgsIDk5LCA4LCAzLCAyNDgsIDk4LCA4LCAzLCAyNDgsIDEwMiwgOCwgMywgMjQ4LCAxMDEsIDgsIAotICAgIDMsIDI0OCwgMTA1LCA4LCAzLCAyNDgsIDEwMywgOCwgMywgMjQ4LCAxMjAsIDgsIDMsIDI0OCwgMTIzLCA4LCAzLCAyNDgsIAotICAgIDEyMSwgOCwgMywgMjQ4LCA5MywgOCwgMywgMjQ4LCA5MiwgOCwgMywgMjQ4LCAxMDAsIDgsIDMsIDI0OCwgOTYsIDgsIDMsIAotICAgIDI0OCwgOTQsIDgsIDMsIDI0OCwgOTUsIDgsIDMsIDIyOSwgMTI2LCA4LCAzLCAyMjksIDEyNSwgOCwgMywgMjI5LCAxMzMsIAotICAgIDgsIDMsIDIyOSwgMTI4LCA4LCAzLCAyMjksIDEyOSwgOCwgMywgMjI5LCAxMzAsIDgsIDMsIDIyOSwgMTQyLCA4LCAzLCAKLSAgICAyMjksIDE0MSwgOCwgMywgMjI5LCAxNDgsIDgsIDMsIDIyOSwgMTQzLCA4LCAzLCAyMjksIDExOCwgOCwgMywgMjI5LCAxMTcsIAotICAgIDgsIDMsIDIyOSwgMTI0LCA4LCAzLCAyMjksIDExOSwgOCwgMywgMjI5LCAxMzQsIDgsIDMsIDIyOSwgMTQwLCA4LCAzLCAKLSAgICAyMjksIDEzOCwgOCwgMywgMjI5LCAxMTAsIDgsIDMsIDIyOSwgMTA5LCA4LCAzLCAyMjksIDExNSwgOCwgMywgMjI5LCAxMTMsIAotICAgIDgsIDMsIDIyOSwgMTExLCA4LCAzLCAyMjksIDExMiwgOCwgMywgMjQxLCA3NywgOCwgMywgMjQxLCA3NiwgOCwgMywgMjQxLCAKLSAgICA4MywgOCwgMywgMjQxLCA3OCwgOCwgMywgMjQxLCA4MCwgOCwgMywgMjQxLCA3OSwgOCwgMywgMjQxLCA4MiwgOCwgMywgCi0gICAgMjQxLCA4MSwgOCwgMywgMjQxLCA4OCwgOCwgMywgMjQxLCA4NywgOCwgMywgMjQxLCA5MCwgOCwgMywgMjQxLCA4OSwgOCwgCi0gICAgMywgMjQxLCA3MSwgOCwgMywgMjQxLCA3MiwgOCwgMywgMjQxLCA3NCwgOCwgMywgMjQxLCA3MywgOCwgMywgMjQxLCA3NSwgCi0gICAgOCwgMywgMjQxLCA4NCwgOCwgMywgMjQxLCA4NiwgOCwgMywgMjQxLCA4NSwgOCwgMywgMjQxLCA3MCwgOCwgMywgMjI4LCAKLSAgICAxODksIDgsIDMsIDIyOCwgMTg3LCA4LCAzLCAyMjgsIDIzMywgOCwgMywgMjI4LCAxOTIsIDgsIDMsIDIyOCwgMjE1LCA4LCAKLSAgICAzLCAyMjgsIDIyOSwgOCwgMywgMjI4LCAyMjgsIDgsIDMsIDIyOSwgMTgzLCA4LCAzLCAxOTcsIDgsIDMsIDIyOSwgMTk3LCAKLSAgICA4LCAzLCAyMjcsIDE4NiwgOCwgMywgMjI3LCAxODgsIDgsIDMsIDIyNywgMTg3LCA4LCAzLCAyMjgsIDUxLCA4LCAzLCAyMjgsIAotICAgIDM4LCA4LCAzLCAyMjgsIDc0LCA4LCAzLCAyMjgsIDYwLCA4LCAzLCAyMjksIDgzLCA4LCAzLCAyMjksIDEwNywgOCwgMywgCi0gICAgMjI5LCA5NCwgOCwgMywgMjI3LCAxODEsIDgsIDMsIDIyNywgMTc3LCA4LCAzLCAyMjcsIDIzNywgOCwgMywgMjI3LCAxODUsIAotICAgIDgsIDMsIDIyNywgMTgzLCA4LCAzLCAyMjcsIDE4NCwgOCwgMywgMjQxLCAxNDEsIDgsIDMsIDI0MSwgMTQwLCA4LCAzLCAKLSAgICAyNDEsIDE0NiwgOCwgMywgMjQxLCAxNDIsIDgsIDMsIDI0MSwgMTQzLCA4LCAzLCAyNDEsIDE0NSwgOCwgMywgMjQxLCAxNDQsIAotICAgIDgsIDMsIDI0MSwgMTUxLCA4LCAzLCAyNDEsIDE1MCwgOCwgMywgMjQxLCAxNTMsIDgsIDMsIDI0MSwgMTUyLCA4LCAzLCAKLSAgICAyNDEsIDEzMywgOCwgMywgMjQxLCAxMzUsIDgsIDMsIDI0MSwgMTM0LCA4LCAzLCAyNDEsIDEzNywgOCwgMywgMjQxLCAxMzksIAotICAgIDgsIDMsIDI0MSwgMTM4LCA4LCAzLCAyNDEsIDE0NywgOCwgMywgMjQxLCAxNDksIDgsIDMsIDI0MSwgMTQ4LCA4LCAzLCAKLSAgICAyNDEsIDEyOSwgOCwgMywgMjQxLCAxMjgsIDgsIDMsIDI0MSwgMTM2LCA4LCAzLCAyNDEsIDEzMiwgOCwgMywgMjQxLCAxMzAsIAotICAgIDgsIDMsIDI0MSwgMTMxLCA4LCAzLCAyNDEsIDEyMywgOCwgMywgMjQxLCAxMjIsIDgsIDMsIDI0MSwgMTI3LCA4LCAzLCAKLSAgICAyNDEsIDEyNiwgOCwgMywgMjQxLCAxMjQsIDgsIDMsIDI0MSwgMTI1LCA4LCAzLCAyMzIsIDE5NSwgOCwgMywgMjMyLCAxODksIAotICAgIDgsIDMsIDIzMiwgMjQxLCA4LCAzLCAyMzIsIDIwMiwgOCwgMywgMjMyLCAyMzMsIDgsIDMsIDIzMiwgMjMyLCA4LCAzLCAKLSAgICAyMzIsIDIzNiwgOCwgMywgMjMyLCAyMzQsIDgsIDMsIDIzMywgNzksIDgsIDMsIDIzMywgNjksIDgsIDMsIDIzMywgMTM1LCAKLSAgICA4LCAzLCAyMzMsIDg4LCA4LCAzLCAyMzIsIDc5LCA4LCAzLCAyMzIsIDc4LCA4LCAzLCAyMzIsIDgxLCA4LCAzLCAyMzIsIAotICAgIDgwLCA4LCAzLCAyMzIsIDExNiwgOCwgMywgMjMyLCAxMDYsIDgsIDMsIDIzMiwgMTU2LCA4LCAzLCAyMzIsIDEyMCwgOCwgMywgCi0gICAgMjMzLCAyLCA4LCAzLCAyMzMsIDU4LCA4LCAzLCAyMzMsIDE3LCA4LCAzLCAyMzIsIDc0LCA4LCAzLCAyMzIsIDcyLCA4LCAzLCAKLSAgICAyMzIsIDk4LCA4LCAzLCAyMzIsIDc3LCA4LCAzLCAyMzIsIDc1LCA4LCAzLCAyMzIsIDc2LCA4LCAzLCAyMzIsIDU0LCA4LCAKLSAgICAzLCAyMzIsIDUzLCA4LCAzLCAyMzIsIDYyLCA4LCAzLCAyMzIsIDU3LCA4LCAzLCAyMzIsIDU1LCA4LCAzLCAyMzIsIDU2LCAKLSAgICA4LCAzLCAyNDIsIDE4OSwgOCwgMywgMjQyLCAxODgsIDgsIDMsIDI0MiwgMjE0LCA4LCAzLCAyNDIsIDE5OSwgOCwgMywgCi0gICAgMjQyLCAyMDYsIDgsIDMsIDI0MiwgMjA1LCA4LCAzLCAyNDIsIDIwOCwgOCwgMywgMjQyLCAyMDcsIDgsIDMsIDI0MywgODksIAotICAgIDgsIDMsIDI0MywgODQsIDgsIDMsIDI0MywgMTM1LCA4LCAzLCAyNDMsIDk5LCA4LCAzLCAyNDIsIDkxLCA4LCAzLCAyNDIsIAotICAgIDkwLCA4LCAzLCAyNDIsIDkzLCA4LCAzLCAyNDIsIDkyLCA4LCAzLCAyNDIsIDE1NCwgOCwgMywgMjQyLCAxNTIsIDgsIDMsIAotICAgIDI0MiwgMTc0LCA4LCAzLCAyNDIsIDE2MiwgOCwgMywgMjQzLCAzMywgOCwgMywgMjQzLCAzMSwgOCwgMywgMjQzLCA2MiwgOCwgCi0gICAgMywgMjQzLCA0NCwgOCwgMywgMjQyLCA4MSwgOCwgMywgMjQyLCA4MCwgOCwgMywgMjQyLCAxMTMsIDgsIDMsIDI0MiwgODksIAotICAgIDgsIDMsIDI0MiwgODIsIDgsIDMsIDI0MiwgODgsIDgsIDMsIDIzNCwgNjEsIDgsIDMsIDIzNCwgNjAsIDgsIDMsIDIzNCwgCi0gICAgOTIsIDgsIDMsIDIzNCwgNzUsIDgsIDMsIDIzNCwgODUsIDgsIDMsIDIzNCwgODgsIDgsIDMsIDIzNCwgODYsIDgsIDMsIAotICAgIDIzNCwgMjAyLCA4LCAzLCAyMzQsIDE5MCwgOCwgMywgMTc2LCA4LCAzLCAyMzQsIDIyOCwgOCwgMywgMjMzLCAyMDAsIDgsIAotICAgIDMsIDIzMywgMjA1LCA4LCAzLCAyMzMsIDIwMiwgOCwgMywgMjM0LCAwLCA4LCAzLCAyMzMsIDI1MiwgOCwgMywgMjM0LCAyOCwgCi0gICAgOCwgMywgMjM0LCA3LCA4LCAzLCAyMzQsIDE1NiwgOCwgMywgMjM0LCAxNDAsIDgsIDMsIDIzNCwgMTgyLCA4LCAzLCAyMzQsIAotICAgIDE1OSwgOCwgMywgMjMzLCAxODksIDgsIDMsIDIzMywgMTg2LCA4LCAzLCAyMzMsIDIxNywgOCwgMywgMjMzLCAxOTksIDgsIAotICAgIDMsIDIzMywgMTkyLCA4LCAzLCAyMzMsIDE5NiwgOCwgMywgMjQzLCAxNSwgOCwgMywgMjQzLCAxNCwgOCwgMywgMjQzLCAxOSwgCi0gICAgOCwgMywgMjQzLCAxNiwgOCwgMywgMjQzLCAxOCwgOCwgMywgMjQzLCAxNywgOCwgMywgMjQzLCAyNiwgOCwgMywgMjQzLCAKLSAgICAyNSwgOCwgMywgMjQzLCAyOSwgOCwgMywgMjQzLCAyNywgOCwgMywgMjQzLCA2LCA4LCAzLCAyNDMsIDUsIDgsIDMsIDI0MywgCi0gICAgOCwgOCwgMywgMjQzLCA3LCA4LCAzLCAyNDMsIDExLCA4LCAzLCAyNDMsIDEwLCA4LCAzLCAyNDMsIDEzLCA4LCAzLCAyNDMsIAotICAgIDEyLCA4LCAzLCAyNDMsIDIxLCA4LCAzLCAyNDMsIDIwLCA4LCAzLCAyNDMsIDI0LCA4LCAzLCAyNDMsIDIyLCA4LCAzLCAKLSAgICAyNDMsIDEsIDgsIDMsIDI0MywgMCwgOCwgMywgMjQzLCA5LCA4LCAzLCAyNDMsIDQsIDgsIDMsIDI0MywgMiwgOCwgMywgCi0gICAgMjQzLCAzLCA4LCAzLCAyMzAsIDI0OSwgOCwgMywgMjMwLCAyNTAsIDgsIDMsIDIzMSwgMTIsIDgsIDMsIDIzMSwgMTEsIDgsIAotICAgIDMsIDIzMSwgMTQsIDgsIDMsIDIzMSwgMTMsIDgsIDMsIDIzMCwgMjQwLCA4LCAzLCAyMzAsIDI0MiwgOCwgMywgMjMwLCAKLSAgICAyNDEsIDgsIDMsIDIzMCwgMjQ1LCA4LCAzLCAyMzAsIDI0NCwgOCwgMywgMjMwLCAyNDcsIDgsIDMsIDIzMCwgMjQ2LCA4LCAKLSAgICAzLCAyMzAsIDI1MSwgOCwgMywgMjMwLCAyNTMsIDgsIDMsIDIzMCwgMjUyLCA4LCAzLCAyMzAsIDIzNiwgOCwgMywgMjMwLCAKLSAgICAyMzUsIDgsIDMsIDIzMCwgMjQzLCA4LCAzLCAyMzAsIDIzOSwgOCwgMywgMjMwLCAyMzcsIDgsIDMsIDIzMCwgMjM4LCA4LCAKLSAgICAzLCAyNDAsIDE4MCwgOCwgMywgMjQwLCAxNzksIDgsIDMsIDI0MCwgMTg2LCA4LCAzLCAyNDAsIDE4MSwgOCwgMywgMjQwLCAKLSAgICAxODMsIDgsIDMsIDI0MCwgMTgyLCA4LCAzLCAyNDAsIDE4NSwgOCwgMywgMjQwLCAxODQsIDgsIDMsIDI0MCwgMTkxLCA4LCAKLSAgICAzLCAyNDAsIDE5MCwgOCwgMywgMjQwLCAxOTMsIDgsIDMsIDI0MCwgMTkyLCA4LCAzLCAyNDAsIDE3MiwgOCwgMywgMjQwLCAKLSAgICAxNzEsIDgsIDMsIDI0MCwgMTc0LCA4LCAzLCAyNDAsIDE3MywgOCwgMywgMjQwLCAxNzYsIDgsIDMsIDI0MCwgMTc1LCA4LCAKLSAgICAzLCAyNDAsIDE3OCwgOCwgMywgMjQwLCAxNzcsIDgsIDMsIDI0MCwgMTg3LCA4LCAzLCAyNDAsIDE4OSwgOCwgMywgMjQwLCAKLSAgICAxODgsIDgsIDMsIDIyOSwgMjQsIDgsIDMsIDIyOSwgMjYsIDgsIDMsIDIyOSwgMjUsIDgsIDMsIDIyOSwgNjcsIDgsIDMsIAotICAgIDIyOSwgNjUsIDgsIDMsIDIyOSwgNzcsIDgsIDMsIDIyOSwgNzAsIDgsIDMsIDIyOCwgMjQzLCA4LCAzLCAyMjgsIDI0MiwgOCwgCi0gICAgMywgMjI4LCAyNDQsIDgsIDMsIDIyOCwgMjUyLCA4LCAzLCAyMjgsIDI0OSwgOCwgMywgMjI5LCA0LCA4LCAzLCAyMjgsIAotICAgIDI1NCwgOCwgMywgMjI5LCA1OCwgOCwgMywgMjI5LCA2NCwgOCwgMywgMjI5LCA2MCwgOCwgMywgMjQxLCAxNTYsIDgsIDMsIAotICAgIDI0MSwgMTY2LCA4LCAzLCAyNDEsIDE3NSwgOCwgMywgMjQxLCAyNTEsIDgsIDMsIDI0MSwgMjQzLCA4LCAzLCAxNjIsIDgsIAotICAgIDMsIDI0MiwgNiwgOCwgMywgMjQwLCAyMDYsIDgsIDMsIDI0MCwgMjA1LCA4LCAzLCAyNDAsIDIwOCwgOCwgMywgMjQwLCAKLSAgICAyMDcsIDgsIDMsIDI0MCwgMjQyLCA4LCAzLCAyNDAsIDIzMywgOCwgMywgMjQxLCA2OCwgOCwgMywgMjQxLCA0NywgOCwgMywgCi0gICAgMjQxLCAxOTQsIDgsIDMsIDI0MSwgMjM4LCA4LCAzLCAyNDEsIDIwNiwgOCwgMywgMjEyLCA0MywgOCwgMywgMjEyLCAyOCwgCi0gICAgOCwgMywgMjEyLCA2NSwgOCwgMywgMjEyLCA1MSwgOCwgMywgMjExLCAxODUsIDgsIDMsIDIxMSwgMTg3LCA4LCAzLCAyMTEsIAotICAgIDE4NiwgOCwgMywgMjExLCAyMDMsIDgsIDMsIDIxMSwgMjI3LCA4LCAzLCAyMTEsIDIxMCwgOCwgMywgMjEyLCA1LCA4LCAzLCAKLSAgICAyMTIsIDIyLCA4LCAzLCAyMTIsIDEwLCA4LCAzLCAyMTAsIDMwLCA4LCAzLCAyMTAsIDI5LCA4LCAzLCAyMTAsIDQ0LCA4LCAKLSAgICAzLCAyMTAsIDMyLCA4LCAzLCAyMTAsIDM3LCA4LCAzLCAyMTAsIDM5LCA4LCAzLCAyMTAsIDM4LCA4LCAzLCAyMTAsIDEwMiwgCi0gICAgOCwgMywgMjEwLCA5OSwgOCwgMywgMjEwLCAxMTYsIDgsIDMsIDIxMCwgMTA1LCA4LCAzLCAyMTAsIDYsIDgsIDMsIDIxMCwgCi0gICAgOCwgOCwgMywgMjEwLCA3LCA4LCAzLCAyMTAsIDE5LCA4LCAzLCAyMTAsIDE4LCA4LCAzLCAyMTAsIDIzLCA4LCAzLCAyMTAsIAotICAgIDIwLCA4LCAzLCAyMTAsIDg0LCA4LCAzLCAyMTAsIDk0LCA4LCAzLCAyMTAsIDg4LCA4LCAzLCAyMTAsIDIsIDgsIDMsIDIxMCwgCi0gICAgMSwgOCwgMywgMjEwLCAxMywgOCwgMywgMjEwLCA1LCA4LCAzLCAyMTAsIDMsIDgsIDMsIDIxMCwgNCwgOCwgMywgMjA5LCAKLSAgICAyNDUsIDgsIDMsIDIwOSwgMjQ0LCA4LCAzLCAyMDksIDI1MCwgOCwgMywgMjA5LCAyNDgsIDgsIDMsIDIwOSwgMjQ2LCA4LCAKLSAgICAzLCAyMDksIDI0NywgOCwgMywgMjUwLCAyOCwgOCwgMywgMjUwLCAyNCwgOCwgMywgMjUwLCA1MSwgOCwgMywgMjUwLCAzNywgCi0gICAgOCwgMywgMjUwLCA0OCwgOCwgMywgMjUwLCA0MiwgOCwgMywgMjUwLCA1MCwgOCwgMywgMjUwLCA0OSwgOCwgMywgMjUwLCAKLSAgICAyMjQsIDgsIDMsIDI1MCwgMjE3LCA4LCAzLCAyNTEsIDMzLCA4LCAzLCAyNTAsIDI1MSwgOCwgMywgMjQ5LCAxMDQsIDgsIDMsIAotICAgIDI0OSwgMTA2LCA4LCAzLCAyNDksIDEwNSwgOCwgMywgMjQ5LCAxNTMsIDgsIDMsIDI0OSwgMTQ0LCA4LCAzLCAyNDksIDIzOCwgCi0gICAgOCwgMywgMjQ5LCAxNjksIDgsIDMsIDI1MCwgMTYwLCA4LCAzLCAyNTAsIDE5MCwgOCwgMywgMjUwLCAxNjUsIDgsIDMsIAotICAgIDI0OSwgODQsIDgsIDMsIDI0OSwgODIsIDgsIDMsIDI0OSwgMTEyLCA4LCAzLCAyNDksIDEwMiwgOCwgMywgMjQ5LCA4OSwgOCwgCi0gICAgMywgMjQ5LCAxMDEsIDgsIDMsIDI0OSwgNjMsIDgsIDMsIDI0OSwgNjIsIDgsIDMsIDI0OSwgNzMsIDgsIDMsIDI0OSwgNjksIAotICAgIDgsIDMsIDI0OSwgNjQsIDgsIDMsIDI0OSwgNjYsIDgsIDMsIDIwOSwgMjI4LCA4LCAzLCAyMDksIDIyNywgOCwgMywgMjA5LCAKLSAgICAyMzQsIDgsIDMsIDIwOSwgMjI5LCA4LCAzLCAyMDksIDIzMSwgOCwgMywgMjA5LCAyMzAsIDgsIDMsIDIwOSwgMjMzLCA4LCAKLSAgICAzLCAyMDksIDIzMiwgOCwgMywgMjA5LCAyNDAsIDgsIDMsIDIwOSwgMjM5LCA4LCAzLCAyMDksIDI0MywgOCwgMywgMjA5LCAKLSAgICAyNDEsIDgsIDMsIDIwOSwgMjI0LCA4LCAzLCAyMDksIDIyNiwgOCwgMywgMjA5LCAyMjUsIDgsIDMsIDIwOSwgMjM1LCA4LCAKLSAgICAzLCAyMDksIDIzOCwgOCwgMywgMjA5LCAyMzYsIDgsIDMsIDIwOSwgMjE3LCA4LCAzLCAyMDksIDIyMSwgOCwgMywgMjA5LCAKLSAgICAyMjAsIDgsIDMsIDIwOSwgMjE4LCA4LCAzLCAyMDksIDIxOSwgOCwgMywgMjA5LCAyMTEsIDgsIDMsIDIwOSwgMjEwLCA4LCAKLSAgICAzLCAyMDksIDIxNiwgOCwgMywgMjA5LCAyMTQsIDgsIDMsIDIwOSwgMjEyLCA4LCAzLCAyMDksIDIxMywgOCwgMywgMjI3LCAKLSAgICAxMDQsIDgsIDMsIDIyNywgMTAzLCA4LCAzLCAyMjcsIDEwOSwgOCwgMywgMjI3LCAxMDUsIDgsIDMsIDIyNywgMTA2LCA4LCAKLSAgICAzLCAyMjcsIDEwOCwgOCwgMywgMjI3LCAxMDcsIDgsIDMsIDIyNywgMTE0LCA4LCAzLCAyMjcsIDExMywgOCwgMywgMjI3LCAKLSAgICAxMTcsIDgsIDMsIDIyNywgMTE2LCA4LCAzLCAyMjcsIDk3LCA4LCAzLCAyMjcsIDk4LCA4LCAzLCAyMjcsIDEwMSwgOCwgMywgCi0gICAgMjI3LCAxMDIsIDgsIDMsIDIyNywgMTEwLCA4LCAzLCAyMjcsIDExMiwgOCwgMywgMjI3LCA5MiwgOCwgMywgMjI3LCAxMDAsIAotICAgIDgsIDMsIDIyNywgOTYsIDgsIDMsIDIyNywgOTMsIDgsIDMsIDIyNywgOTQsIDgsIDMsIDIyNywgODcsIDgsIDMsIDIyNywgCi0gICAgODYsIDgsIDMsIDIyNywgOTEsIDgsIDMsIDIyNywgOTAsIDgsIDMsIDIyNywgODgsIDgsIDMsIDIyNywgODksIDgsIDMsIAotICAgIDIxOSwgMTI3LCA4LCAzLCAxOTQsIDgsIDMsIDIxOSwgMTkxLCA4LCAzLCAyMTksIDEzMCwgOCwgMywgMjE5LCAxODMsIDgsIAotICAgIDMsIDIxOSwgMTg2LCA4LCAzLCAyMTksIDE4NCwgOCwgMywgMjIxLCAyMjYsIDgsIDMsIDIyMSwgMjE0LCA4LCAzLCAyMDYsIAotICAgIDgsIDMsIDIyMSwgMjM0LCA4LCAzLCAyMTgsIDI4LCA4LCAzLCAyMTgsIDMwLCA4LCAzLCAyMTgsIDI5LCA4LCAzLCAyMTksIAotICAgIDM0LCA4LCAzLCAyMTksIDIzLCA4LCAzLCAyMTksIDU4LCA4LCAzLCAyMTksIDM4LCA4LCAzLCAyMjAsIDExNCwgOCwgMywgCi0gICAgMjIxLCAxODEsIDgsIDMsIDIyMCwgMTM5LCA4LCAzLCAyMTgsIDUsIDgsIDMsIDIxOCwgMywgOCwgMywgMjE4LCA4MywgOCwgCi0gICAgMywgMjE4LCAyNywgOCwgMywgMjE4LCA5LCA4LCAzLCAyMTgsIDE3LCA4LCAzLCAyMTcsIDE2NiwgOCwgMywgMjE3LCAxNjUsIAotICAgIDgsIDMsIDIxNywgMjMyLCA4LCAzLCAyMTcsIDE3MywgOCwgMywgMjE3LCAxNjgsIDgsIDMsIDIxNywgMTcyLCA4LCAzLCAKLSAgICAyMTgsIDE4NiwgOCwgMywgMjE4LCAxODUsIDgsIDMsIDIxOCwgMTkyLCA4LCAzLCAyMTgsIDE4NywgOCwgMywgMjE4LCAxODksIAotICAgIDgsIDMsIDIxOCwgMTkxLCA4LCAzLCAyMTgsIDE5MCwgOCwgMywgMjE4LCAyMDAsIDgsIDMsIDIxOCwgMTk4LCA4LCAzLCAKLSAgICAyMTgsIDIyMywgOCwgMywgMjE4LCAyMDEsIDgsIDMsIDIxOCwgMTgxLCA4LCAzLCAyMTgsIDE4MCwgOCwgMywgMjE4LCAxODQsIAotICAgIDgsIDMsIDIxOCwgMTgyLCA4LCAzLCAyMTgsIDE5NCwgOCwgMywgMjE4LCAxOTcsIDgsIDMsIDIxOCwgMTk1LCA4LCAzLCAKLSAgICAyMTgsIDE3NywgOCwgMywgMjE4LCAxNzUsIDgsIDMsIDIxOCwgMTc5LCA4LCAzLCAyMTgsIDE3OCwgOCwgMywgMjE4LCAxNzAsIAotICAgIDgsIDMsIDIxOCwgMTY5LCA4LCAzLCAyMTgsIDE3NCwgOCwgMywgMjE4LCAxNzMsIDgsIDMsIDIxOCwgMTcxLCA4LCAzLCAKLSAgICAyMTgsIDE3MiwgOCwgMywgMjEwLCA3NywgOCwgMywgMjEwLCA3NiwgOCwgMywgMjEwLCA4MiwgOCwgMywgMjEwLCA3OSwgOCwgCi0gICAgMywgMjEwLCA1OSwgOCwgMywgMjEwLCA2MSwgOCwgMywgMjEwLCA2MCwgOCwgMywgMjEwLCA2NCwgOCwgMywgMjEwLCA2MywgCi0gICAgOCwgMywgMjEwLCA2NywgOCwgMywgMjEwLCA2NSwgOCwgMywgMjEwLCA3MSwgOCwgMywgMjEwLCA3MCwgOCwgMywgMjEwLCAKLSAgICA3NCwgOCwgMywgMjEwLCA3MiwgOCwgMywgMjEwLCA1NSwgOCwgMywgMjEwLCA1NCwgOCwgMywgMjEwLCA2MiwgOCwgMywgCi0gICAgMjEwLCA1OCwgOCwgMywgMjEwLCA1NiwgOCwgMywgMjEwLCA1NywgOCwgMywgMjEwLCA0NywgOCwgMywgMjEwLCA0NiwgOCwgCi0gICAgMywgMjEwLCA1MSwgOCwgMywgMjEwLCA1MCwgOCwgMywgMjEwLCA0OCwgOCwgMywgMjEwLCA0OSwgOCwgMywgMjUwLCAxMzYsIAotICAgIDgsIDMsIDI1MCwgMTMzLCA4LCAzLCAyNTAsIDE1NywgOCwgMywgMjUwLCAxNDQsIDgsIDMsIDI1MCwgNjUsIDgsIDMsIDI1MCwgCi0gICAgNjQsIDgsIDMsIDI1MCwgNjcsIDgsIDMsIDI1MCwgNjYsIDgsIDMsIDI1MCwgNzksIDgsIDMsIDI1MCwgNzgsIDgsIDMsIAotICAgIDI1MCwgODYsIDgsIDMsIDI1MCwgODEsIDgsIDMsIDI1MCwgMTE1LCA4LCAzLCAyNTAsIDExMywgOCwgMywgMjUwLCAxMzEsIAotICAgIDgsIDMsIDI1MCwgMTIxLCA4LCAzLCAyNTAsIDU5LCA4LCAzLCAyNTAsIDY5LCA4LCAzLCAyNTAsIDYzLCA4LCAzLCAyNTAsIAotICAgIDYwLCA4LCAzLCAyNTAsIDYyLCA4LCAzLCAyNTAsIDUzLCA4LCAzLCAyNTAsIDUyLCA4LCAzLCAyNTAsIDU3LCA4LCAzLCAKLSAgICAyNTAsIDU2LCA4LCAzLCAyNTAsIDU0LCA4LCAzLCAyNTAsIDU1LCA4LCAzLCAyMjIsIDE3NSwgOCwgMywgMjIyLCAxNzksIDgsIAotICAgIDMsIDIyMiwgMTU4LCA4LCAzLCAyMjIsIDE1OSwgOCwgMywgMjIyLCAxNjIsIDgsIDMsIDIyMiwgMTYxLCA4LCAzLCAyMjIsIAotICAgIDE2NSwgOCwgMywgMjIyLCAxNjMsIDgsIDMsIDIyMiwgMTY5LCA4LCAzLCAyMjIsIDE2OCwgOCwgMywgMjIyLCAxNzQsIDgsIAotICAgIDMsIDIyMiwgMTcwLCA4LCAzLCAyMjIsIDE1NCwgOCwgMywgMjIyLCAxNTIsIDgsIDMsIDIyMiwgMTYwLCA4LCAzLCAyMjIsIAotICAgIDE1NywgOCwgMywgMjIyLCAxNTUsIDgsIDMsIDIyMiwgMTU2LCA4LCAzLCAyMjIsIDE0NywgOCwgMywgMjIyLCAxNDYsIDgsIAotICAgIDMsIDIyMiwgMTUxLCA4LCAzLCAyMjIsIDE1MCwgOCwgMywgMjIyLCAxNDgsIDgsIDMsIDIyMiwgMTQ5LCA4LCAzLCAyMjgsIAotICAgIDM0LCA4LCAzLCAyMjgsIDMzLCA4LCAzLCAyMjgsIDM2LCA4LCAzLCAyMjgsIDM1LCA4LCAzLCAyMjgsIDI2LCA4LCAzLCAKLSAgICAyMjgsIDI4LCA4LCAzLCAyMjgsIDI3LCA4LCAzLCAyMjgsIDMwLCA4LCAzLCAyMjgsIDI5LCA4LCAzLCAyMjgsIDMyLCA4LCAKLSAgICAzLCAyMjgsIDMxLCA4LCAzLCAyMjgsIDIxLCA4LCAzLCAyMjgsIDIwLCA4LCAzLCAyMjgsIDI1LCA4LCAzLCAyMjgsIDI0LCAKLSAgICA4LCAzLCAyMjgsIDIyLCA4LCAzLCAyMjgsIDIzLCA4LCAzLCAyMjgsIDE1LCA4LCAzLCAyMjgsIDE0LCA4LCAzLCAyMjgsIAotICAgIDE5LCA4LCAzLCAyMjgsIDE4LCA4LCAzLCAyMjgsIDE2LCA4LCAzLCAyMjgsIDE3LCA4LCAzLCAyMjAsIDcyLCA4LCAzLCAKLSAgICAyMjAsIDY3LCA4LCAzLCAyMjAsIDEwMiwgOCwgMywgMjIwLCA4MywgOCwgMywgMjE5LCAyMTUsIDgsIDMsIDIxOSwgMjE3LCAKLSAgICA4LCAzLCAyMTksIDIxNiwgOCwgMywgMjE5LCAyMzYsIDgsIDMsIDIxOSwgMjMzLCA4LCAzLCAyMjAsIDcsIDgsIDMsIDIxOSwgCi0gICAgMjU0LCA4LCAzLCAyMjAsIDQyLCA4LCAzLCAyMjAsIDM1LCA4LCAzLCAyMjAsIDYzLCA4LCAzLCAyMjAsIDUwLCA4LCAzLCAKLSAgICAyMTksIDIxMSwgOCwgMywgMjE5LCAyMDksIDgsIDMsIDIxOSwgMjI1LCA4LCAzLCAyMTksIDIxNCwgOCwgMywgMjE5LCAyMTIsIAotICAgIDgsIDMsIDIxOSwgMjEzLCA4LCAzLCAyMTksIDE5NCwgOCwgMywgMjE5LCAxOTMsIDgsIDMsIDIxOSwgMjAwLCA4LCAzLCAKLSAgICAyMTksIDE5NywgOCwgMywgMjE5LCAxOTUsIDgsIDMsIDIxOSwgMTk2LCA4LCAzLCAyMjMsIDE0MSwgOCwgMywgMjIzLCAxMzUsIAotICAgIDgsIDMsIDIwNSwgOCwgMywgMjIzLCAxNDcsIDgsIDMsIDIyMiwgMTIwLCA4LCAzLCAyMjIsIDEyMiwgOCwgMywgMjIyLCAKLSAgICAxMjEsIDgsIDMsIDIyMiwgMTg4LCA4LCAzLCAyMjIsIDE4MSwgOCwgMywgMjIyLCAyMTEsIDgsIDMsIDIyMiwgMTkyLCA4LCAKLSAgICAzLCAyMjMsIDQzLCA4LCAzLCAyMjMsIDEyOCwgOCwgMywgMjIzLCA4MSwgOCwgMywgMjIyLCAxMTMsIDgsIDMsIDIyMiwgCi0gICAgMTEwLCA4LCAzLCAyMjIsIDE0MCwgOCwgMywgMjIyLCAxMTksIDgsIDMsIDIyMiwgMTE1LCA4LCAzLCAyMjIsIDExNiwgOCwgCi0gICAgMywgMjIyLCA5NSwgOCwgMywgMjIyLCA5NCwgOCwgMywgMjIyLCAxMDAsIDgsIDMsIDIyMiwgOTgsIDgsIDMsIDIyMiwgOTYsIAotICAgIDgsIDMsIDIyMiwgOTcsIDgsIDMsIDIzNSwgOTgsIDgsIDMsIDIzNSwgOTcsIDgsIDMsIDIzNSwgMTA4LCA4LCAzLCAyMzUsIAotICAgIDk5LCA4LCAzLCAyMzUsIDEwNCwgOCwgMywgMjM1LCAxMDMsIDgsIDMsIDIzNSwgMTA2LCA4LCAzLCAyMzUsIDEwNSwgOCwgMywgCi0gICAgMjM1LCA0MSwgOCwgMywgMjM1LCA0MCwgOCwgMywgMjM1LCA0MywgOCwgMywgMjM1LCA0MiwgOCwgMywgMjM1LCA1NiwgOCwgCi0gICAgMywgMjM1LCA1NCwgOCwgMywgMjM1LCA2OCwgOCwgMywgMjM1LCA1OCwgOCwgMywgMjM1LCAzNCwgOCwgMywgMjM1LCAzMiwgCi0gICAgOCwgMywgMjM1LCA1MSwgOCwgMywgMjM1LCAzOSwgOCwgMywgMjM1LCAzNiwgOCwgMywgMjM1LCAzNywgOCwgMywgMjM1LCAKLSAgICAyNiwgOCwgMywgMjM1LCAyNSwgOCwgMywgMjM1LCAzMCwgOCwgMywgMjM1LCAyOSwgOCwgMywgMjM1LCAyNywgOCwgMywgCi0gICAgMjM1LCAyOCwgOCwgMywgMjI0LCA0NiwgOCwgMywgMjI0LCA0NCwgOCwgMywgMjI0LCA1MywgOCwgMywgMjI0LCA0NywgOCwgCi0gICAgMywgMjI0LCA1MCwgOCwgMywgMjI0LCA0OSwgOCwgMywgMjI0LCA1MiwgOCwgMywgMjI0LCA1MSwgOCwgMywgMjIzLCAyNTUsIAotICAgIDgsIDMsIDIyMywgMjUyLCA4LCAzLCAyMjQsIDEsIDgsIDMsIDIyNCwgMCwgOCwgMywgMjI0LCAzMywgOCwgMywgMjI0LCAzMiwgCi0gICAgOCwgMywgMjI0LCA0MiwgOCwgMywgMjI0LCAzNiwgOCwgMywgMjIzLCAyNDcsIDgsIDMsIDIyMywgMjQzLCA4LCAzLCAyMjQsIAotICAgIDMwLCA4LCAzLCAyMjMsIDI1MSwgOCwgMywgMjIzLCAyNDksIDgsIDMsIDIyMywgMjUwLCA4LCAzLCAyMjMsIDIyNywgOCwgMywgCi0gICAgMjIzLCAyMjUsIDgsIDMsIDIyMywgMjM3LCA4LCAzLCAyMjMsIDIzMCwgOCwgMywgMjIzLCAyMjgsIDgsIDMsIDIyMywgMjI5LCAKLSAgICA4LCAzLCAyMzUsIDg3LCA4LCAzLCAyMzUsIDg2LCA4LCAzLCAyMzUsIDkzLCA4LCAzLCAyMzUsIDg4LCA4LCAzLCAyMzUsIAotICAgIDkwLCA4LCAzLCAyMzUsIDg5LCA4LCAzLCAyMzUsIDkyLCA4LCAzLCAyMzUsIDkxLCA4LCAzLCAyMzUsIDc4LCA4LCAzLCAKLSAgICAyMzUsIDgwLCA4LCAzLCAyMzUsIDc5LCA4LCAzLCAyMzUsIDgzLCA4LCAzLCAyMzUsIDgyLCA4LCAzLCAyMzUsIDg1LCA4LCAKLSAgICAzLCAyMzUsIDg0LCA4LCAzLCAyMzUsIDc0LCA4LCAzLCAyMzUsIDczLCA4LCAzLCAyMzUsIDgxLCA4LCAzLCAyMzUsIDc3LCAKLSAgICA4LCAzLCAyMzUsIDc1LCA4LCAzLCAyMzUsIDc2LCA4LCAzLCAyMzUsIDcwLCA4LCAzLCAyMzUsIDY5LCA4LCAzLCAyMzUsIAotICAgIDcyLCA4LCAzLCAyMzUsIDcxLCA4LCAzLCAyMjgsIDE2MiwgOCwgMywgMjI4LCAxNjEsIDgsIDMsIDIyOCwgMTY5LCA4LCAzLCAKLSAgICAyMjgsIDE2MywgOCwgMywgMjI4LCAxNjUsIDgsIDMsIDIyOCwgMTY0LCA4LCAzLCAyMjgsIDE2OCwgOCwgMywgMjI4LCAxNjYsIAotICAgIDgsIDMsIDIyOCwgMTUxLCA4LCAzLCAyMjgsIDE1MiwgOCwgMywgMjI4LCAxNTcsIDgsIDMsIDIyOCwgMTU2LCA4LCAzLCAKLSAgICAyMjgsIDE2MCwgOCwgMywgMjI4LCAxNTgsIDgsIDMsIDIyOCwgMTQ2LCA4LCAzLCAyMjgsIDE1NSwgOCwgMywgMjI4LCAxNTAsIAotICAgIDgsIDMsIDIyOCwgMTQ3LCA4LCAzLCAyMjgsIDE0OCwgOCwgMywgMjI4LCAxNDEsIDgsIDMsIDIyOCwgMTQwLCA4LCAzLCAKLSAgICAyMjgsIDE0NSwgOCwgMywgMjI4LCAxNDQsIDgsIDMsIDIyOCwgMTQyLCA4LCAzLCAyMjgsIDE0MywgOCwgMywgMjI3LCAxMzcsIAotICAgIDgsIDMsIDIyNywgMTM2LCA4LCAzLCAyMjcsIDE0OCwgOCwgMywgMjI3LCAxNDEsIDgsIDMsIDIyNywgMTQ1LCA4LCAzLCAKLSAgICAyMjcsIDE0NCwgOCwgMywgMjI3LCAxNDcsIDgsIDMsIDIyNywgMTQ2LCA4LCAzLCAyMjcsIDEyNCwgOCwgMywgMjI3LCAxMjYsIAotICAgIDgsIDMsIDIyNywgMTI1LCA4LCAzLCAyMjcsIDEzMCwgOCwgMywgMjI3LCAxMjksIDgsIDMsIDIyNywgMTM0LCA4LCAzLCAKLSAgICAyMjcsIDEzMSwgOCwgMywgMjI3LCAxMjIsIDgsIDMsIDIyNywgMTIwLCA4LCAzLCAyMjcsIDEyOCwgOCwgMywgMjI3LCAxMjMsIAotICAgIDgsIDMsIDIxMSwgMTUwLCA4LCAzLCAyMTEsIDE0OSwgOCwgMywgMjExLCAxNTcsIDgsIDMsIDIxMSwgMTUyLCA4LCAzLCAKLSAgICAyMTEsIDE1NCwgOCwgMywgMjExLCAxNTMsIDgsIDMsIDIxMSwgMTU2LCA4LCAzLCAyMTEsIDE1NSwgOCwgMywgMjExLCAxMzksIAotICAgIDgsIDMsIDIxMSwgMTQwLCA4LCAzLCAyMTEsIDE0NCwgOCwgMywgMjExLCAxNDMsIDgsIDMsIDIxMSwgMTQ4LCA4LCAzLCAKLSAgICAyMTEsIDE0NiwgOCwgMywgMjExLCAxMjEsIDgsIDMsIDIxMSwgMTE5LCA4LCAzLCAyMTEsIDEzMSwgOCwgMywgMjExLCAxMjQsIAotICAgIDgsIDMsIDIxMSwgMTIyLCA4LCAzLCAyMTEsIDEyMywgOCwgMywgMjEwLCAyNTAsIDgsIDMsIDIxMCwgMjQ4LCA4LCAzLCAKLSAgICAyMTEsIDgsIDgsIDMsIDIxMCwgMjUxLCA4LCAzLCAyMTEsIDIsIDgsIDMsIDIxMSwgMSwgOCwgMywgMjExLCA1LCA4LCAzLCAKLSAgICAyMTEsIDMsIDgsIDMsIDIxMCwgMTkxLCA4LCAzLCAyMTAsIDE5MCwgOCwgMywgMjEwLCAxOTQsIDgsIDMsIDIxMCwgMTkyLCAKLSAgICA4LCAzLCAyMTAsIDIyNCwgOCwgMywgMjEwLCAyMjEsIDgsIDMsIDIxMCwgMjQ0LCA4LCAzLCAyMTAsIDIyOCwgOCwgMywgCi0gICAgMjEwLCAxODIsIDgsIDMsIDIxMCwgMTc4LCA4LCAzLCAyMTAsIDIxMiwgOCwgMywgMjEwLCAxODksIDgsIDMsIDIxMCwgMTg1LCAKLSAgICA4LCAzLCAyMTAsIDE4NiwgOCwgMywgMjEwLCAxNjIsIDgsIDMsIDIxMCwgMTYxLCA4LCAzLCAyMTAsIDE2OSwgOCwgMywgCi0gICAgMjEwLCAxNjUsIDgsIDMsIDIxMCwgMTYzLCA4LCAzLCAyMTAsIDE2NCwgOCwgMzQsIDIyNCwgMzMsIDgsIDM0LCAyMzIsIAotICAgIDI0MSwgOCwgMzQsIDIzNCwgNjEsIDgsIDM0LCAyMjcsIDE0MSwgOCwgMzQsIDI0OSwgNjksIDgsIDM0LCAyMTgsIDE5MiwgOCwgCi0gICAgMzQsIDI0MywgMTIsIDgsIDM0LCAyNDMsIDQ0LCA4LCAzNCwgMjMwLCAyMzAsIDgsIDM0LCAyNDAsIDE4MCwgOCwgMzQsIAotICAgIDIzMiwgNTYsIDgsIDM0LCAyNTIsIDgzLCA4LCAzNCwgMjMwLCAxMjYsIDgsIDM0LCAyMTAsIDI0NCwgOCwgMzQsIDIyNCwgCi0gICAgMTIxLCA4LCAzNCwgMjQwLCAxNzQsIDgsIDM0LCAyMTcsIDQ2LCA4LCAzNCwgMjQzLCAxMzUsIDgsIDM0LCAyMTAsIDUsIDgsIAotICAgIDM0LCAyNDksIDYzLCA4LCAzNCwgMjQ4LCA5NSwgOCwgMzQsIDI1MSwgOTgsIDgsIDM0LCAyNDMsIDgsIDgsIDM0LCAyMjcsIAotICAgIDEzMSwgOCwgMzQsIDIxNSwgMTE4LCA4LCAzNCwgMjI2LCAxNzUsIDgsIDM0LCAyMzUsIDc0LCA4LCAzNCwgMjEwLCAxOSwgOCwgCi0gICAgMzQsIDIyNCwgMTAwLCA4LCAzNCwgMjQxLCAxMDgsIDgsIDM0LCAyMTAsIDI1MCwgOCwgMzQsIDIxMiwgMTEyLCA4LCAzNCwgCi0gICAgMjE5LCAyMDAsIDgsIDM0LCAyMTMsIDI0NCwgOCwgMzQsIDIxMCwgMTE2LCA4LCAzNCwgMjM1LCA2OCwgOCwgMzQsIDIyNywgCi0gICAgOTYsIDgsIDM0LCAyMzUsIDcyLCA4LCAzNCwgMjQyLCAxNTQsIDgsIDM0LCAyMzUsIDkyLCA4LCAzNCwgMjExLCAyMjcsIDgsIAotICAgIDM0LCAyNDYsIDc4LCA4LCAzNCwgMjE5LCAyMTMsIDgsIDM0LCAyMzIsIDIzNiwgOCwgMzQsIDI0OSwgNzMsIDgsIDM0LCAKLSAgICAyNDksIDEwNSwgOCwgMzQsIDI1MCwgMzcsIDgsIDM0LCAyNDAsIDE3NywgOCwgMzQsIDIyMCwgNzIsIDgsIDM0LCAyMTAsIDQsIAotICAgIDgsIDM0LCAyMTksIDI1NCwgOCwgMzQsIDI1MCwgMTMxLCA4LCAzNCwgMjA5LCAyMzEsIDgsIDM0LCAyMjksIDE3MywgOCwgCi0gICAgMzQsIDIzNCwgMTgyLCAyMzIsIDE5NiwgMSwgMjUyLCAxOTEsIDIzMiwgMTk2LCAxLCAxOTAsIDIzMiwgMTk2LCAxLCAyMjUsIAotICAgIDE0NywgMjMyLCAxOTYsIDEsIDI0OCwgMjIxLCAyMzIsIDE5NiwgMSwgMjE3LCAxMDUsIDIzMiwgMTk2LCAxLCAyMTYsIDIwOCwgCi0gICAgMjMyLCAxOTYsIDEsIDI0MywgMTM1LCAyMzIsIDE5NiwgMSwgMTc2LCAyMzIsIDE5NiwgMSwgMjM0LCAxMzIsIDIzMiwgMTk2LCAKLSAgICAxLCAyMzUsIDE0MSwgMjMyLCAxOTYsIDEsIDI1MSwgMzMsIDIzMiwgMTk2LCAxLCAyNTAsIDE1NywgMjMyLCAxOTYsIDEsIAotICAgIDI0NiwgMzgsIDIzMiwgMTk2LCAxLCAyMTUsIDE4MywgMjMyLCAxOTYsIDEsIDIxNSwgMTc1LCAyMzIsIDE5NiwgMSwgMTg0LCAKLSAgICAyMzIsIDE5NiwgMSwgMTk3LCAyMzIsIDE5NiwgMSwgMjMzLCAxMzUsIDIzMiwgMTk2LCAxLCAyMDYsIDIzMiwgMTk2LCAxLCAKLSAgICAyMTAsIDgyLCAyMzIsIDE5NiwgMSwgMjEwLCAxMTYsIDIzMiwgMTk2LCAxLCAyMjksIDc3LCAyMzIsIDE5NiwgMSwgMTYyLCAKLSAgICAyMzIsIDE5NiwgMSwgMjExLCAxNjUsIDIzMiwgMTk2LCAxLCAyNDEsIDE4OSwgMjMyLCAxOTYsIDEsIDI0NCwgMTk2LCAyMzIsIAotICAgIDE5NiwgMSwgMjEyLCA2NSwgMjMyLCAxOTYsIDEsIDIyMCwgMTAyLCAyMzIsIDE5NiwgMSwgMTkxLCAyMzIsIDE5NiwgMSwgCi0gICAgMjQyLCAyNDksIDIzMiwgMTk2LCAxLCA2MSwgMjMyLCAxOTYsIDEsIDI1NCwgMjQzLCAyMzIsIDE5NiwgMSwgNzUsIDIzMiwgCi0gICAgMTk2LCAxLCAyNDUsIDU1LCAyMzIsIDE5NiwgMSwgNzMsIDIzMiwgMTk2LCAxLCA3NiwgMjMyLCAxOTYsIDEsIDcwLCAyMzIsIAotICAgIDE5NiwgMSwgMjE0LCAyMTQsIDIzMiwgMTk2LCAxLCAyMTQsIDIwOCwgMjMyLCAxOTYsIDEsIDIyNiwgMjM0LCAyMzIsIDE5NiwgCi0gICAgMSwgMTM4LCAyMzAsIDMyLCAyMTYsIDExNywgMjMyLCAxOTYsIDEsIDEzOCwgMjI5LCAyMjksIDIyNSwgMTYsIDIzMiwgMTk2LCAKLSAgICAxLCAxMzgsIDIzMCwgMzIsIDI0OSwgNzIsIDIzMiwgMTk2LCAxLCAxMzgsIDIzMCwgMzIsIDI1MSwgMjA1LCAyMzIsIDE5NiwgCi0gICAgMSwgMTM4LCAyMzAsIDMyLCAxOTcsIDIzMiwgMTk2LCAxLCAxMzgsIDIzMCwgMzIsIDIzNSwgMTE1LCAyMzIsIDE5NiwgMjI0LCAKLSAgICAxNDEsIDI0OSwgMjE5LCAyMzIsIDE5NiwgMjI0LCAxNDEsIDI0MywgMjI5LCAyMTgsIDEyOSwgNDEsIDMsIDI0NSwgMjA5LCAKLSAgICA0MSwgMywgMjQ1LCAyMDUsIDQxLCAzLCAyNDEsIDIyMCwgNDEsIDMsIDIxMiwgMTcsIDQxLCAzLCAyMTIsIDE2LCA0MSwgMywgCi0gICAgMjI1LCAyMTEsIDQxLCAzLCAyNTIsIDEzLCA0MSwgMywgMjUyLCA2NiwgNDEsIDMsIDIzMSwgMTE2LCA0MSwgMywgMjMzLCAKLSAgICAyNDcsIDQxLCAzLCAyMzEsIDYsIDQxLCAzLCAyNDMsIDc1LCA0MSwgMywgMjQ0LCAxNDcsIDQxLCAzLCAyMTMsIDI1MCwgNDEsIAotICAgIDMsIDIxNywgMTEsIDQxLCAzLCAyMTYsIDE5NCwgNDEsIDMsIDI0OCwgMTYsIDQxLCAzLCAyNDgsIDEzLCA0MSwgMywgMjMzLCAKLSAgICA1MCwgNDEsIDMsIDIyMywgMTA4LCA0MSwgMywgMjQ4LCA3NywgNDEsIDMsIDIyOSwgMTM5LCA0MSwgMywgMjIxLCAxNzAsIAotICAgIDQxLCAzLCAyMjAsIDYxLCA0MSwgMywgMjEwLCA5MiwgNDEsIDMsIDIxMCwgNzMsIDQxLCAzLCAyNTAsIDE4MiwgNDEsIDMsIAotICAgIDIzNSwgMTI0LCA0MSwgMywgMjI4LCAxNzYsIDQxLCAzLCAyMTEsIDQ0LCA0MSwgMywgMjM0LCAxODEsIDQxLCAzLCAyMjksIAotICAgIDUxLCA0MSwgMywgMjQzLCA1NSwgNDEsIDMsIDIzMSwgODAsIDQxLCAzLCAyMjksIDEwMywgNDEsIDMsIDIyNywgMTU1LCA0MSwgCi0gICAgMywgNzMsIDQxLCAzLCAyMzUsIDI1NSwgNDEsIDMsIDI0MSwgMTgwLCA0MSwgMywgMjQxLCAxNjAsIDQxLCAzLCAyMTEsIAotICAgIDI1MCwgNDEsIDMsIDIxMSwgMjQxLCA0MSwgMywgMjI1LCAxMDgsIDQxLCAzLCAyNTIsIDExLCA0MSwgMywgMjUyLCA2LCA0MSwgCi0gICAgMywgMjMxLCAxMDksIDQxLCAzLCAyMzMsIDI0NCwgNDEsIDMsIDIzMSwgMywgNDEsIDMsIDI0MywgNzEsIDQxLCAzLCAyNDQsIAotICAgIDEyMSwgNDEsIDMsIDIxMywgMTc2LCA0MSwgMywgMjE2LCAxMTcsIDQxLCAzLCAyMTYsIDE3NSwgNDEsIDMsIDI0OCwgOCwgCi0gICAgNDEsIDMsIDI0OCwgMTIsIDQxLCAzLCAyMzIsIDI0MSwgNDEsIDMsIDIyMywgMzUsIDQxLCAzLCAyNDgsIDMsIDQxLCAzLCAKLSAgICAyMjksIDEzMywgNDEsIDMsIDIxOSwgMTkxLCA0MSwgMywgMjIwLCAzMiwgNDEsIDMsIDIxMCwgNDQsIDQxLCAzLCAyMTAsIAotICAgIDY5LCA0MSwgMywgMjUwLCA1MSwgNDEsIDMsIDIzNSwgMTA4LCA0MSwgMywgMjI4LCAxNjksIDQxLCAzLCAyMTEsIDgsIDQxLCAKLSAgICAzLCAyMzQsIDkyLCA0MSwgMywgMjI5LCA0MywgNDEsIDMsIDI0MiwgMjE0LCA0MSwgMywgMjMwLCAyMzAsIDQxLCAzLCAyMjgsIAotICAgIDIzMywgNDEsIDMsIDIyNywgMTQ4LCA0MSwgMywgNjEsIDQxLCAzLCAyNTQsIDEyMywgNDEsIDMsIDIyOSwgNzIsIDQxLCAzLCAKLSAgICAxNjIsIDQxLCAzLCAyNDIsIDE4LCA0MSwgMywgMjEyLCA2NSwgNDEsIDMsIDIxMiwgNTUsIDQxLCAzLCAxOTAsIDQxLCAzLCAKLSAgICAyNTIsIDE4LCA0MSwgMywgMjUyLCAxOTEsIDQxLCAzLCAyMzEsIDEyNCwgNDEsIDMsIDIzMywgMjUxLCA0MSwgMywgMjMzLCAKLSAgICAyNTAsIDQxLCAzLCAyMzEsIDEwLCA0MSwgMywgMjQzLCA3OSwgNDEsIDMsIDI0NCwgMTk2LCA0MSwgMywgMjE0LCAyNywgNDEsIAotICAgIDMsIDIxNywgMTA1LCA0MSwgMywgMjE2LCAyMDgsIDQxLCAzLCAyNDgsIDI1LCA0MSwgMywgMjQ4LCAxNSwgNDEsIDMsIDIzMywgCi0gICAgMTM1LCA0MSwgMywgMjA1LCA0MSwgMywgMjQ4LCAyMjEsIDQxLCAzLCAyMjksIDE0OCwgNDEsIDMsIDIwNiwgNDEsIDMsIAotICAgIDIyMCwgMTAyLCA0MSwgMywgMjEwLCAxMTYsIDQxLCAzLCAyMTAsIDgyLCA0MSwgMywgMjUxLCAzMywgNDEsIDMsIDIzNSwgCi0gICAgMTQxLCA0MSwgMywgMjI4LCAxODUsIDQxLCAzLCAxOTEsIDQxLCAzLCAxNzYsIDQxLCAzLCAyMzQsIDIzNCwgNDEsIDMsIAotICAgIDIyOSwgNTYsIDQxLCAzLCAyNDMsIDEzNSwgNDEsIDMsIDE4NCwgNDEsIDMsIDE5NywgNDEsIDMsIDIyNywgMTY1LCA0MSwgMywgCi0gICAgMjI2LCAxODMsIDQxLCAzLCAyMjYsIDE3OSwgNDEsIDMsIDI0MSwgNTMsIDQxLCAzLCAyMTEsIDIxNSwgNDEsIDMsIDIxMSwgCi0gICAgMjExLCA0MSwgMywgMjI0LCAyNDksIDQxLCAzLCAyNTIsIDksIDQxLCAzLCAyNTEsIDE5MywgNDEsIDMsIDIzMSwgMTA0LCAKLSAgICA0MSwgMywgMjMzLCAyNDIsIDQxLCAzLCAyMzAsIDI1NSwgNDEsIDMsIDI0MywgNjcsIDQxLCAzLCAyNDQsIDM0LCA0MSwgMywgCi0gICAgMjEzLCAxMjcsIDQxLCAzLCAyMTYsIDE3LCA0MSwgMywgMjE2LCAxNTMsIDQxLCAzLCAyNDgsIDYsIDQxLCAzLCAyNDgsIDEwLCAKLSAgICA0MSwgMywgMjMyLCAxMjcsIDQxLCAzLCAyMjIsIDE5NywgNDEsIDMsIDI0NywgMTI1LCA0MSwgMywgMjI5LCAxMjAsIDQxLCAKLSAgICAzLCAyMTksIDQwLCA0MSwgMywgMjIwLCAxLCA0MSwgMywgMjEwLCAyMSwgNDEsIDMsIDIxMCwgNjYsIDQxLCAzLCAyNDksIAotICAgIDE3NCwgNDEsIDMsIDIzNSwgNTksIDQxLCAzLCAyMjgsIDE1OSwgNDEsIDMsIDIxMCwgMjI5LCA0MSwgMywgMjM0LCAxMCwgCi0gICAgNDEsIDMsIDIyOSwgNDEsIDQxLCAzLCAyNDIsIDE2NCwgNDEsIDMsIDIzMCwgMTMyLCA0MSwgMywgMjI4LCA2NCwgNDEsIDMsIAotICAgIDIyNywgMTMyLCA0MSwgMywgNzAsIDQxLCAzLCAyMTQsIDE5MCwgNDEsIDMsIDI0MCwgMjIyLCA0MSwgMywgMjQwLCAyMTIsIAotICAgIDQxLCAzLCAyMTEsIDE5NSwgNDEsIDMsIDIxMSwgMTg5LCA0MSwgMywgMjI0LCAxNTAsIDQxLCAzLCAyNTIsIDgsIDQxLCAzLCAKLSAgICAyNTEsIDEyNSwgNDEsIDMsIDIzMSwgMTAzLCA0MSwgMywgMjMzLCAyNDAsIDQxLCAzLCAyMzAsIDI1NCwgNDEsIDMsIDI0MywgCi0gICAgNjYsIDQxLCAzLCAyNDMsIDIzNCwgNDEsIDMsIDIxMiwgMTE2LCA0MSwgMywgMjE1LCAxMTgsIDQxLCAzLCAyMTYsIDEzNiwgCi0gICAgNDEsIDMsIDI0OCwgNCwgNDEsIDMsIDI0OCwgOSwgNDEsIDMsIDIzMiwgOTgsIDQxLCAzLCAyMjIsIDE0MCwgNDEsIDMsIAotICAgIDI0NiwgNzgsIDQxLCAzLCAyMjksIDExNSwgNDEsIDMsIDIxOCwgODMsIDQxLCAzLCAyMTksIDIyNSwgNDEsIDMsIDIxMCwgCi0gICAgMTMsIDQxLCAzLCAyMTAsIDYyLCA0MSwgMywgMjQ5LCAxMTIsIDQxLCAzLCAyMzUsIDUxLCA0MSwgMywgMjI4LCAxNTUsIDQxLCAKLSAgICAzLCAyMTAsIDIxMiwgNDEsIDMsIDIzMywgMjE3LCA0MSwgMywgMjI5LCA0MCwgNDEsIDMsIDI0MiwgMTEzLCA0MSwgMywgCi0gICAgMjMwLCAxMDIsIDQxLCAzLCAyMjcsIDIzNywgNDEsIDMsIDIyNywgMTI4LCA0MSwgMywgNzYsIDQxLCAzLCAyMjYsIDE5NiwgCi0gICAgNDEsIDMsIDIyOSwgMCwgNDEsIDMsIDI0MSwgNjgsIDQxLCAzLCAyNDEsIDU2LCA0MSwgMywgMjExLCAyMjcsIDQxLCAzLCAKLSAgICAyMTEsIDIxNiwgNDEsIDMsIDIyNSwgMTYsIDQxLCAzLCAyNTIsIDEwLCA0MSwgMywgMjUxLCAyMDUsIDQxLCAzLCAyMzEsIAotICAgIDEwNSwgNDEsIDMsIDIzMywgMjQzLCA0MSwgMywgMjMxLCAxLCA0MSwgMywgMjQzLCA2OSwgNDEsIDMsIDI0MywgNjgsIDQxLCAKLSAgICAzLCAyNDQsIDQzLCA0MSwgMywgMjEzLCAxMzgsIDQxLCAzLCAxMTEsIDQxLCAzLCAyMTYsIDE1NiwgNDEsIDMsIDI0OCwgNywgCi0gICAgNDEsIDMsIDI0OCwgMTEsIDQxLCAzLCAyMzIsIDE1NiwgNDEsIDMsIDIyMiwgMjExLCA0MSwgMywgMjQ3LCAxNDUsIDQxLCAzLCAKLSAgICAyMjksIDEyNCwgNDEsIDMsIDIxOSwgNTgsIDQxLCAzLCAyMjAsIDcsIDQxLCAzLCAyMTAsIDIzLCA0MSwgMywgMjEwLCA2NywgCi0gICAgNDEsIDMsIDI0OSwgMjM4LCA0MSwgMywgMjM1LCA2OCwgNDEsIDMsIDIyOCwgMTYwLCA0MSwgMywgMjEwLCAyNDQsIDQxLCAzLCAKLSAgICAyMzQsIDI4LCA0MSwgMywgMjI5LCA0MiwgNDEsIDMsIDI0MiwgMTc0LCA0MSwgMywgMjMwLCAxNjEsIDQxLCAzLCAyMjgsIAotICAgIDc0LCA0MSwgMywgMjI3LCAxMzQsIDQxLCAzLCA3NSwgNDEsIDMsIDI0NSwgMTUwLCA0MSwgMywgMjI5LCA2MSwgNDEsIDMsIAotICAgIDI0MSwgMjM4LCA0MSwgMywgMjQxLCAyMDksIDQxLCAzLCAyMTIsIDIyLCA0MSwgMywgMjEyLCAxMiwgNDEsIDMsIDIyNSwgCi0gICAgMjIxLCA0MSwgMywgMjUyLCAxNCwgNDEsIDMsIDI1MiwgNzUsIDQxLCAzLCAyMzEsIDExNywgNDEsIDMsIDIzMywgMjQ4LCAKLSAgICA0MSwgMywgMjMzLCAyNDYsIDQxLCAzLCAyMzEsIDcsIDQxLCAzLCAyNDMsIDc2LCA0MSwgMywgMjQzLCA3NCwgNDEsIDMsIAotICAgIDI0NCwgMTU0LCA0MSwgMywgMjEzLCAyNTUsIDQxLCAzLCAyMTcsIDIyLCA0MSwgMywgMjE2LCAxOTUsIDQxLCAzLCAyNDgsIAotICAgIDE3LCA0MSwgMywgMjQ4LCAxNCwgNDEsIDMsIDIzMywgNTgsIDQxLCAzLCAyMjMsIDEyOCwgNDEsIDMsIDI0OCwgOTAsIDQxLCAKLSAgICAzLCAyMjksIDE0MCwgNDEsIDMsIDIyMSwgMTgxLCA0MSwgMywgMjIwLCA2MywgNDEsIDMsIDIxMCwgOTQsIDQxLCAzLCAyMTAsIAotICAgIDc0LCA0MSwgMywgMjUwLCAxOTAsIDQxLCAzLCAyMzUsIDEyNiwgNDEsIDMsIDIyOCwgMTc4LCA0MSwgMywgMjExLCA0NywgCi0gICAgNDEsIDMsIDIzNCwgMTgyLCA0MSwgMywgMjI5LCA1MiwgNDEsIDMsIDIyOSwgNDgsIDQxLCAzLCAyNDMsIDYyLCA0MSwgMywgCi0gICAgMjQzLCA1MSwgNDEsIDMsIDIzMSwgOTEsIDQxLCAzLCAyMjksIDEwNywgNDEsIDMsIDIyNywgMTU2LCA0MSwgMywgMjI5LCAKLSAgICA3OSwgNDEsIDMsIDIzMywgMjIsIDQxLCAyNDksIDIxOSwgNDEsIDI0MywgMjI5LCAyMTgsIDEyOSwgNDEsIDIyNCwgMTMsIAotICAgIDc4LCA0MSwgMywgMjI5LCAxMjMsIDI0NCwgMTk2LCA0MSwgMywgMjI5LCAxMjMsIDE3NiwgNDEsIDMsIDIyOSwgMTIzLCAKLSAgICAyMTksIDQwLCA0MSwgMTYsIDI0NCwgMTQ0LCA0MSwgMTYsIDIzNCwgMTgwLCA0MSwgMTYsIDIxNiwgODEsIDQxLCAxNiwgCi0gICAgMjI4LCAyMDgsIDQxLCAxNiwgMjUyLCAxNDcsIDQxLCAxNiwgMjQ0LCAxOTUsIDQxLCAxNiwgMjE3LCAxMDEsIDQxLCAxNiwgCi0gICAgMjQ4LCAxNzYsIDQxLCAxNiwgMjQ3LCAxMjQsIDQxLCAxNiwgMjMzLCAyMDYsIDQxLCAxNiwgMjE2LCAyMSwgNDEsIDE2LCAKLSAgICAyNDcsIDE0NCwgNDEsIDE2LCAyMzUsIDYwLCA0MSwgMjEsIDIxMCwgODYsIDQxLCAyMSwgMTEwLCA0MSwgMjEsIDEwNSwgNDEsIAotICAgIDIxLCAxNTgsIDQxLCAyMSwgMTYxLCA0MSwgMjEsIDE4OSwgNDEsIDIxLCAxOTQsIDQxLCAyMSwgMTk4LCA0MSwgMjEsIDE5NSwgCi0gICAgNDEsIDIxLCAyMDAsIDQxLCAzLCAyMjksIDEyMywgMTg0LCA0MSwgMywgMjI5LCAxMjMsIDI0NywgMTQ1LCAzMywgNiwgMSwgCi0gICAgMjEwLCA5MCwgMzMsIDQsIDEsIDIxMCwgOTAsIDMzLCA2LCAxLCAyNDYsIDM0LCAzMywgNCwgMSwgMjQ2LCAzNCwgMzMsIDYsIAotICAgIDEsIDIyMywgNDksIDI0NiwgMzYsIDMzLCA0LCAxLCAyMjMsIDQ5LCAyNDYsIDM2LCAzMywgNiwgMSwgMjM1LCAxODUsIDMzLCAKLSAgICA0LCAxLCAyMzUsIDE4NSwgMzMsIDYsIDEsIDI0NywgMTYxLCAzMywgNCwgMSwgMjQ3LCAxNjEsIDMzLCA2LCAxLCAyMzAsIAotICAgIDE0MCwgMjE0LCAyMDUsIDMzLCA0LCAxLCAyMzAsIDE0MCwgMjE0LCAyMDUsIDMzLCA2LCAxLCAyNTEsIDEzNiwgMjI2LCAKLSAgICAyMDEsIDMzLCA0LCAxLCAyNTEsIDEzNiwgMjI2LCAyMDEsIDMzLCA2LCAxLCAyMjksIDg3LCAyMTEsIDMxLCAzMywgNCwgMSwgCi0gICAgMjI5LCA4NywgMjExLCAzMSwgMzMsIDYsIDEsIDIxMSwgMjgsIDIsIDI1MiwgMTg1LCAyMTEsIDMxLCAzMywgNCwgMSwgMjExLCAKLSAgICAyOCwgMiwgMjUyLCAxODUsIDIxMSwgMzEsIDMzLCA2LCAxLCAyMzUsIDE4MywgMjExLCA1OSwgMzMsIDQsIDEsIDIzNSwgCi0gICAgMTgzLCAyMTEsIDU5LCAzMywgNiwgMSwgMjIzLCA0OSwgMjEwLCAyMTIsIDMzLCA0LCAxLCAyMjMsIDQ5LCAyMTAsIDIxMiwgCi0gICAgMzMsIDYsIDEsIDIzNSwgMTgzLCA2MSwgMzMsIDQsIDEsIDIzNSwgMTgzLCA2MSwgMzMsIDYsIDEsIDI1MCwgMCwgMjMyLCAKLSAgICAxOTIsIDIxMCwgMTgzLCAzMywgNCwgMSwgMjUwLCAwLCAyMzIsIDE5MiwgMjEwLCAxODMsIDMzLCA2LCAxLCAyNTEsIDIxNCwgCi0gICAgMjEwLCAxODMsIDMzLCA0LCAxLCAyNTEsIDIxNCwgMjEwLCAxODMsIDMzLCA2LCAxLCAyMzUsIDE4MywgMjUwLCAwLCAyMzIsIAotICAgIDE5MiwgMjEwLCAxODMsIDMzLCA0LCAxLCAyMzUsIDE4MywgMjUwLCAwLCAyMzIsIDE5MiwgMjEwLCAxODMsIDMzLCA2LCAxLCAKLSAgICAyMTAsIDI0NiwgMzMsIDQsIDEsIDIxMCwgMjQ2LCAzMywgNiwgMSwgMjIzLCA0OSwgMjE1LCAxNzgsIDMzLCA0LCAxLCAyMjMsIAotICAgIDQ5LCAyMTUsIDE3OCwgMzMsIDYsIDEsIDIxOSwgNTIsIDI0OCwgOTAsIDMzLCA0LCAxLCAyMTksIDUyLCAyNDgsIDkwLCAzMywgCi0gICAgNiwgMSwgMjE5LCA1MiwgMjQ1LCAxNzQsIDMzLCA0LCAxLCAyMTksIDUyLCAyNDUsIDE3NCwgMzMsIDYsIDEsIDIxOSwgNTIsIAotICAgIDI0NSwgMTU5LCAzMywgNCwgMSwgMjE5LCA1MiwgMjQ1LCAxNTksIDMzLCA2LCAxLCAyMzAsIDE0NCwgNzYsIDMzLCA0LCAxLCAKLSAgICAyMzAsIDE0NCwgNzYsIDMzLCA2LCAxLCAyNTEsIDI0MCwgNzYsIDMzLCA0LCAxLCAyNTEsIDI0MCwgNzYsIDMzLCA2LCAxLCAKLSAgICA1MiwgMjMwLCAxNDQsIDc2LCAzMywgNCwgMSwgNTIsIDIzMCwgMTQ0LCA3NiwgMzMsIDEsIDIzMCwgODYsIDc2LCAzOCwgMzMsIAotICAgIDIxMiwgMTAwLCAzOCwgMzMsIDIxNiwgMjQ4LCAyMzAsIDE5MSwgNTAsIDM4LCAzMywgMjQwLCAyMTEsIDIzMCwgMTkxLCA1MCwgCi0gICAgMzgsIDMzLCAyMTYsIDE0OCwgMjMwLCAxOTEsIDUwLCAyMTksIDkzLCAyNTMsIDIxNiwgMzgsIDMzLCAxLCAyMTQsIDIwMiwgCi0gICAgMjM2LCA2MCwgMzgsIDMzLCAxLCA3MywgMzgsIDMzLCAxLCAyMTEsIDgsIDM4LCAzMywgMSwgNzAsIDM4LCAzMywgMSwgMjQyLCAKLSAgICAzLCA1MCwgMzgsIDMzLCAxLCAyMTEsIDI3LCAzOCwgMzMsIDEsIDIxOSwgNTIsIDUwLCAzOCwgMzMsIDEsIDIyNiwgMjAxLCAKLSAgICAzOCwgMzMsIDIzNCwgMTkyLCAzOCwgMzMsIDIyNSwgMjI3LCAzMywgMjM0LCAxOTIsIDMzLCAyMjUsIDIyNywgMzMsIDYsIDEsIAotICAgIDI0NiwgNDYsIDMzLCA0LCAxLCAyNDYsIDQ2LCAzMywgNiwgMSwgMjQ2LCAyNywgMzMsIDQsIDEsIDI0NiwgMjcsIDMzLCA2LCAKLSAgICAxLCAyMTAsIDUyLCAzMywgNCwgMSwgMjEwLCA1MiwgMzMsIDYsIDEsIDI1MCwgMjA2LCAzMywgNCwgMSwgMjUwLCAyMDYsIAotICAgIDMzLCA2LCAxLCAyNDYsIDI1LCAzMywgNCwgMSwgMjQ2LCAyNSwgMzMsIDYsIDEsIDIxNywgMjMsIDIsIDIzMCwgMjI0LCAKLSAgICAxMDMsIDMzLCA0LCAxLCAyMTcsIDIzLCAyLCAyMzAsIDIyNCwgMTAzLCAzMywgNiwgMSwgMjE1LCA3OCwgMzMsIDQsIDEsIAotICAgIDIxNSwgNzgsIDMzLCA2LCAxLCAyMTUsIDE2MCwgMzMsIDQsIDEsIDIxNSwgMTYwLCAzMywgNiwgMSwgMjE1LCAxNjQsIDMzLCAKLSAgICA0LCAxLCAyMTUsIDE2NCwgMzMsIDYsIDEsIDIxNywgMjgsIDMzLCA0LCAxLCAyMTcsIDI4LCAzMywgNiwgMSwgMjQwLCAxOTgsIAotICAgIDMzLCA0LCAxLCAyNDAsIDE5OCwgMzMsIDYsIDEsIDIxOSwgMjA2LCAzMywgNCwgMSwgMjE5LCAyMDYsIDM4LCAzMywgMSwgCi0gICAgMjM1LCAxODMsIDc1LCAyMCwgMSwgNjEsIDIwLCAxLCAxNzYsIDIwLCAxLCA3MCwgMjAsIDEsIDIzMywgMjE3LCAyMCwgMSwgCi0gICAgMjQ1LCAyMDksIDIwLCAxLCAyMjMsIDEwOCwgMjAsIDEsIDIxNywgODYsIDIwLCAxLCA3NiwgMjAsIDEsIDIyNywgMTQ4LCAKLSAgICAyMCwgMSwgNzMsIDIwLCAxLCAyMzMsIDEzNSwgMjAsIDEsIDE5MCwgMjAsIDEsIDIyMiwgMjM5LCAyMCwgMSwgMjIzLCAyOSwgCi0gICAgMjAsIDEsIDIzMywgNDksIDIwLCAxLCAyMzEsIDc5LCAyMCwgMSwgMjE3LCAxMDEsIDIwLCAxLCAyMjksIDE0NiwgMjAsIDEsIAotICAgIDIyOCwgMTgzLCAyMCwgMSwgMTkzLCAyMCwgMSwgMjE4LCA0LCAyMCwgMSwgMjMwLCAxMDIsIDIwLCAxLCAyMjAsIDI3LCAyMCwgCi0gICAgMSwgMjE5LCAxOTEsIDIwLCAxLCAyMjAsIDM3LCAyMCwgMSwgMjIwLCAxMjMsIDIwLCAxLCAyMzMsIDE1NSwgMjAsIDEsIAotICAgIDIzNCwgMTU2LCAyMCwgMSwgMjI3LCAyMDksIDIwLCAxLCAyMjcsIDIzNywgMjAsIDEsIDIyOCwgMTU0LCAyMCwgMSwgMjEwLCAKLSAgICAyMjYsIDIwLCAxLCAyMTksIDIyNSwgMjAsIDEsIDIxMCwgMTg3LCAyMCwgMSwgMTkxLCAyMCwgMSwgMjI4LCA5LCAyMCwgMSwgCi0gICAgMjM0LCAxNDIsIDIwLCAxLCAyMjUsIDE1MSwgMjAsIDEsIDIyOCwgMTc2LCAyMCwgMSwgMjI3LCAyNDYsIDIwLCAxLCAyMjQsIAotICAgIDE0NCwgMjAsIDEsIDIxMSwgMTkyLCAyMCwgMSwgMjI1LCAyMTEsIDIwLCAxLCAyNDQsIDE0NywgMjAsIDEsIDIyMiwgMTQwLCAKLSAgICAyMCwgMSwgMjMyLCA5OCwgMjAsIDEsIDIzMCwgMjMwLCAyMCwgMSwgMjI4LCAyMzMsIDIwLCAxLCAyMjMsIDUxLCAyMCwgMSwgCi0gICAgMjIzLCAxNzEsIDIwLCAxLCAyMzQsIDE2NSwgMjAsIDEsIDIyOSwgNywgMjAsIDEsIDIyOSwgNTYsIDIwLCAxLCAyMjksIDc3LCAKLSAgICAyMCwgMSwgMjIwLCA3LCAyMCwgMSwgMjI0LCAxNDcsIDIwLCAxLCAyNDMsIDIzNCwgMjAsIDEsIDI0NCwgMzcsIDIwLCAxLCAKLSAgICAyMTIsIDY1LCAyMCwgMSwgMTk3LCAyMCwgMSwgMjMyLCAyNDEsIDIwLCAxLCAyMjUsIDEwOCwgMjAsIDEsIDIzMiwgMTE5LCAKLSAgICAyMCwgMSwgMjM0LCAyOCwgMjAsIDEsIDIzMSwgMTE0LCAyMCwgMSwgMjIzLCA4MywgMjAsIDEsIDIzMSwgNTgsIDIwLCAxLCAKLSAgICAxODQsIDIwLCAxLCAyMTYsIDExNywgMjAsIDEsIDIzNCwgOTIsIDIwLCAxLCAyMzAsIDE2MSwgMjAsIDEsIDIzMSwgMTIyLCAKLSAgICAyMCwgMSwgMjE2LCAyMzAsIDIwLCAxLCAyMzMsIDI1MSwgMjAsIDEsIDIxNiwgMjQ3LCAyMCwgMSwgMjI3LCAyMzgsIDIwLCAKLSAgICAxLCAyMjEsIDI1MSwgMjAsIDEsIDI0NCwgMTkyLCAyMCwgMSwgMjMzLCAyNTMsIDIwLCAxLCAyMzQsIDI0LCAyMCwgMzgsIAotICAgIDE2NCwgMjM0LCA1LCAyMCwgMzgsIDE2NCwgMjE1LCAxMTAsIDIwLCAyMjgsIDE4MiwgMjAsIDI0MywgMjI5LCAyMTgsIDEyOSwgCi0gICAgMjAsIDI0OSwgMjI2LCAyMCwgMjQ5LCAyMTksIDIwLCAyMjAsIDE1MCwgMjAsIDIyNCwgMTMsIDc4LCA1OCwgMSwgMjUwLCAKLSAgICA5NiwgMTM4LCAyMTAsIDI1NCwgMjI1LCA2MSwgNTgsIDEsIDI1MCwgOTYsIDEzOCwgMjExLCA3MCwgMjI1LCA2MSwgNTgsIDEsIAotICAgIDI1MCwgOTYsIDEzOCwgMjEwLCAyNTQsIDIyMCwgODQsIDU4LCAxLCAyNTAsIDk2LCAxMzgsIDIxMSwgNzAsIDIyMCwgODQsIAotICAgIDU4LCAxLCAyNTAsIDk2LCAxMzgsIDIxMCwgMjU0LCAyMjQsIDMwLCA1OCwgMSwgMjUwLCA5NiwgMTM4LCAyMTEsIDcwLCAKLSAgICAyMjQsIDMwLCA1OCwgMSwgMjUwLCA5NiwgMTM4LCAyMTAsIDI1NCwgMjIyLCAxNDAsIDU4LCAxLCAyNTAsIDk2LCAxMzgsIAotICAgIDIxMSwgNzAsIDIyMiwgMTQwLCA1OCwgMSwgMjQ1LCAyMCwgMjQ2LCAxMTgsIDEzOCwgMTMwLCA1OCwgMSwgMTI1LCAyNDYsIAotICAgIDExOCwgMTM4LCAxMzAsIDU4LCAxLCAyMzAsIDIyNSwgMjQ2LCAxMTgsIDEzOCwgMTMwLCA1OCwgMSwgMTIxLCAyNDYsIDExOCwgCi0gICAgMTM4LCAxMzAsIDU4LCAxLCAyNDUsIDE5LCAyNDYsIDExOCwgMTM4LCAxMzAsIDU4LCAxLCAyNDUsIDIwLCAyNDYsIDExOCwgCi0gICAgMjMzLCAzOSwgMTM4LCAxMzAsIDU4LCAxLCAxMjUsIDI0NiwgMTE4LCAyMzMsIDM5LCAxMzgsIDEzMCwgNTgsIDEsIDIzMCwgCi0gICAgMjI1LCAyNDYsIDExOCwgMjMzLCAzOSwgMTM4LCAxMzAsIDU4LCAxLCAxMjEsIDI0NiwgMTE4LCAyMzMsIDM5LCAxMzgsIAotICAgIDEzMCwgNTgsIDEsIDI0NSwgMTksIDI0NiwgMTE4LCAyMzMsIDM5LCAxMzgsIDEzMCwgNTgsIDEsIDI0NSwgMjAsIDIzMywgCi0gICAgMzksIDEzOCwgMTMwLCA1OCwgMSwgMTI1LCAyMzMsIDM5LCAxMzgsIDEzMCwgNTgsIDEsIDIzMCwgMjI1LCAyMzMsIDM5LCAKLSAgICAxMzgsIDEzMCwgNTgsIDEsIDEyMSwgMjMzLCAzOSwgMTM4LCAxMzAsIDU4LCAxLCAyNDUsIDE5LCAyMzMsIDM5LCAxMzgsIAotICAgIDEzMCwgNTgsIDEsIDU5LCA2NywgMTMwLCA1OCwgMSwgNTksIDIxOSwgOTUsIDU4LCAxLCA1OSwgMjAzLCAxMzAsIDU4LCAxLCAKLSAgICAyMzIsIDEwOCwgNDQsIDI0OSwgMTYxLCAyNTQsIDEwOSwgNTgsIDEsIDIyMywgMTU3LCAxMjAsIDc0LCA1OCwgMSwgMjIzLCAKLSAgICAxNTcsIDEyNCwgNzQsIDU4LCAxLCAyMjMsIDE1NywgMjQ1LCAzMSwgNzgsIDU4LCAxLCAyMjMsIDE1NywgMjM1LCAxOTMsIAotICAgIDI0NSwgMzEsIDc4LCA1OCwgMSwgMTIxLCAyMzUsIDE5MywgMjQ1LCAzMSwgNzgsIDU4LCAxLCAyMTgsIDExMSwgMjIsIDEyNSwgCi0gICAgMjE2LCAzMCwgNTgsIDEsIDIxOCwgMTExLCAyMiwgMTIxLCAyMTYsIDMwLCA3LCA2LCAxLCAyNDUsIDE5OSwgMjU0LCAxNzAsIAotICAgIDcsIDQsIDEsIDI0NSwgMTk5LCAyNTQsIDE3MCwgNywgNiwgMSwgMjQ1LCAxOTksIDI1NCwgMTk2LCA3LCA0LCAxLCAyNDUsIAotICAgIDE5OSwgMjU0LCAxOTYsIDcsIDYsIDEsIDI0MSwgMjA3LCA3LCA0LCAxLCAyNDEsIDIwNywgNywgNiwgMSwgMjE1LCA0MCwgNywgCi0gICAgNCwgMSwgMjE1LCA0MCwgNywgNiwgMSwgMjE1LCAyMjksIDcsIDQsIDEsIDIxNSwgMjI5LCA3LCA2LCAxLCAyNDksIDExMCwgCi0gICAgNywgNCwgMSwgMjQ5LCAxMTAsIDcsIDYsIDEsIDI0OSwgMTExLCAyLCAyNDksIDIxOSwgNywgNCwgMSwgMjQ5LCAxMTEsIDIsIAotICAgIDI0OSwgMjE5LCA3LCAxLCA0LCA2LCAyNDUsIDYsIDcsIDEsIDQsIDYsIDIyMiwgOTEsIDcsIDYsIDEsIDI1NSwgNzMsIDcsIAotICAgIDQsIDEsIDI1NSwgNzMsIDcsIDYsIDEsIDI1NCwgNzMsIDcsIDQsIDEsIDI1NCwgNzMsIDcsIDYsIDEsIDI1MywgMTkyLCA3LCAKLSAgICA0LCAxLCAyNTMsIDE5MiwgNywgNiwgMSwgMjUzLCAxNzYsIDcsIDQsIDEsIDI1MywgMTc2LCA3LCA2LCAxLCAyNTMsIDE3NywgCi0gICAgMiwgMjAzLCAxMzAsIDcsIDQsIDEsIDI1MywgMTc3LCAyLCAyMDMsIDEzMCwgNywgNiwgMSwgMjUzLCAxNjcsIDcsIDQsIDEsIAotICAgIDI1MywgMTY3LCA3LCA2LCAxLCAyMjMsIDQ5LCAyNTEsIDY3LCAyLCAyNDcsIDEyMCwgNywgNCwgMSwgMjIzLCA0OSwgMjUxLCAKLSAgICA2NywgMiwgMjQ3LCAxMjAsIDcsIDYsIDEsIDIzNSwgMjQsIDIsIDkxLCA3LCA0LCAxLCAyMzUsIDI0LCAyLCA5MSwgNywgNiwgCi0gICAgMSwgMjM1LCAyNCwgMiwgMjQ3LCAyNTUsIDkxLCA3LCA0LCAxLCAyMzUsIDI0LCAyLCAyNDcsIDI1NSwgOTEsIDcsIDYsIDEsIAotICAgIDIzNSwgMjQsIDIsIDIxOCwgMTAzLCAyMiwgMjQ3LCAyNTUsIDkxLCA3LCA0LCAxLCAyMzUsIDI0LCAyLCAyMTgsIDEwMywgCi0gICAgMjIsIDI0NywgMjU1LCA5MSwgNywgNiwgMSwgMjUxLCAxMzUsIDE1NiwgNywgNCwgMSwgMjUxLCAxMzUsIDE1NiwgNywgNiwgCi0gICAgMSwgMjMzLCAxNDksIDIsIDEyNSwgOTEsIDcsIDQsIDEsIDIzMywgMTQ5LCAyLCAxMjUsIDkxLCA3LCA2LCAxLCAxNDQsIDIsIAotICAgIDE5OSwgMjE4LCAxMDMsIDIyNiwgMTIwLCA3LCA0LCAxLCAxNDQsIDIsIDE5OSwgMjE4LCAxMDMsIDIyNiwgMTIwLCA3LCA2LCAKLSAgICAxLCAxNDQsIDIsIDIzMiwgMTIzLCA3LCA0LCAxLCAxNDQsIDIsIDIzMiwgMTIzLCA3LCA2LCAxLCAyMjYsIDE4MywgNywgNCwgCi0gICAgMSwgMjI2LCAxODMsIDcsIDYsIDEsIDIyNiwgMTA2LCAyLCAyMTgsIDEwMywgMjE2LCAxMzksIDI0OCwgMzksIDcsIDQsIDEsIAotICAgIDIyNiwgMTA2LCAyLCAyMTgsIDEwMywgMjE2LCAxMzksIDI0OCwgMzksIDcsIDYsIDEsIDIyNiwgMTA2LCAyLCAyNDQsIDUzLCAKLSAgICA3LCA0LCAxLCAyMjYsIDEwNiwgMiwgMjQ0LCA1MywgNywgNiwgMSwgMjI2LCAxMDYsIDIsIDIxOCwgMjI5LCAyMTcsIDc3LCAKLSAgICA3LCA0LCAxLCAyMjYsIDEwNiwgMiwgMjE4LCAyMjksIDIxNywgNzcsIDcsIDYsIDEsIDIyNCwgOTcsIDIsIDIxOCwgMTAzLCAKLSAgICAyMTYsIDEzOSwgMjQ4LCAzOSwgNywgNCwgMSwgMjI0LCA5NywgMiwgMjE4LCAxMDMsIDIxNiwgMTM5LCAyNDgsIDM5LCA3LCAKLSAgICA2LCAxLCAyMjQsIDk3LCAyLCAyNDcsIDI1NSwgOTEsIDcsIDQsIDEsIDIyNCwgOTcsIDIsIDI0NywgMjU1LCA5MSwgNywgNiwgCi0gICAgMSwgMjIzLCAyMjQsIDIyMiwgMTg2LCA3LCA0LCAxLCAyMjMsIDIyNCwgMjIyLCAxODYsIDcsIDYsIDEsIDIyMiwgMTMwLCAKLSAgICAyMjIsIDE4NiwgNywgNCwgMSwgMjIyLCAxMzAsIDIyMiwgMTg2LCA3LCA2LCAxLCAyMTQsIDEwNiwgMiwgMjQ3LCAyNTUsIAotICAgIDkxLCA3LCA0LCAxLCAyMTQsIDEwNiwgMiwgMjQ3LCAyNTUsIDkxLCA3LCA2LCAxLCAyMTIsIDEwNiwgNywgNCwgMSwgMjEyLCAKLSAgICAxMDYsIDcsIDYsIDEsIDIxMywgMTQ1LCAyMTAsIDE1OSwgNywgNCwgMSwgMjEzLCAxNDUsIDIxMCwgMTU5LCA3LCA2LCAxLCAKLSAgICAyMTYsIDE1MiwgMiwgOTEsIDcsIDQsIDEsIDIxNiwgMTUyLCAyLCA5MSwgNywgNiwgMSwgMjE2LCAxNTIsIDIsIDIxOCwgCi0gICAgMTAzLCAyMTYsIDEzOSwgMjQ4LCAzOSwgNywgNCwgMSwgMjE2LCAxNTIsIDIsIDIxOCwgMTAzLCAyMTYsIDEzOSwgMjQ4LCAKLSAgICAzOSwgNywgNiwgMSwgMjEzLCAyNDUsIDcsIDQsIDEsIDIxMywgMjQ1LCA3LCA2LCAxLCAyNDUsIDY1LCA3LCA0LCAxLCAyNDUsIAotICAgIDY1LCA3LCA2LCAxLCAyMzUsIDE3MSwgNywgNCwgMSwgMjM1LCAxNzEsIDcsIDYsIDEsIDI0OSwgMjA3LCA3LCA0LCAxLCAKLSAgICAyNDksIDIwNywgNTgsIDEsIDIxNCwgMTMzLCA3LCA0LCAxLCAyNDYsIDY5LCA3LCA0LCAxLCAyMzIsIDg0LCA3LCA0LCAxLCAKLSAgICAyMzAsIDgwLCA3LCA0LCAxLCAyMjcsIDIwMSwgNywgNCwgMSwgMjIyLCAxMjksIDcsIDEsIDQsIDYsIDIyMiwgMTI5LCA3LCAKLSAgICA0LCAxLCAyMTUsIDEwOCwgNywgNCwgMSwgMjE0LCAxOTcsIDcsIDYsIDEsIDIzNSwgMjEzLCAyNDksIDYwLCA3LCA0LCAxLCAKLSAgICAyMzUsIDIxMywgMjQ5LCA2MCwgNywgNiwgMSwgMjM1LCAyMTMsIDI0NSwgNiwgNywgNCwgMSwgMjM1LCAyMTMsIDI0NSwgNiwgCi0gICAgNywgNiwgMSwgMjM1LCAyMTMsIDI0MywgMjAyLCA3LCA2LCAxLCAyMTUsIDk0LCAyMzUsIDIxMywgMjQzLCAyMDIsIDcsIDQsIAotICAgIDEsIDIxNSwgOTQsIDIzNSwgMjEzLCAyNDMsIDIwMiwgNywgNiwgMSwgMjE1LCA5NCwgMTU2LCA3LCA0LCAxLCAyMTUsIDk0LCAKLSAgICAxNTYsIDcsIDYsIDEsIDIzNSwgMjEzLCAxNTMsIDcsIDQsIDEsIDIzNSwgMjEzLCAxNTMsIDcsIDYsIDEsIDIzNSwgMjEzLCAKLSAgICAyMjIsIDkxLCA3LCA0LCAxLCAyMzUsIDIxMywgMjIyLCA5MSwgNywgNiwgMSwgMjM1LCAyMTMsIDIxNywgMTUyLCA3LCA0LCAKLSAgICAxLCAyMzUsIDIxMywgMjE3LCAxNTIsIDU4LCAxLCAxMjEsIDI1MCwgMzEsIDI1NSwgMTQsIDU4LCAxLCAyNDksIDIyNiwgNTgsIAotICAgIDEsIDIxOSwgMjUxLCAyNDUsIDk4LCA1MCwgNywgNiwgMSwgMjIxLCAyNTUsIDcsIDQsIDEsIDIyMSwgMjU1LCA3LCA2LCAxLCAKLSAgICAyMTUsIDk0LCAyNDIsIDYwLCA3LCA0LCAxLCAyMzMsIDE0OSwgMiwgMjIzLCA1NSwgMjQxLCA1MiwgMjIsIDI1MiwgNDEsIDcsIAotICAgIDYsIDEsIDIzMCwgMjYsIDIsIDI0OCwgMzksIDcsIDQsIDEsIDIzMCwgMjYsIDIsIDI0OCwgMzksIDcsIDYsIDEsIDI1MSwgCi0gICAgNjcsIDIsIDEzMCwgNywgNCwgMSwgMjUxLCA2NywgMiwgMTMwLCA3LCA2LCAxLCAyNDMsIDIwMywgMiwgMjI2LCAyNDgsIDkxLCAKLSAgICA3LCA0LCAxLCAyNDMsIDIwMywgMiwgMjI2LCAyNDgsIDkxLCA3LCA2LCAxLCAyMzUsIDI0LCAyLCAyMjYsIDI0OCwgOTEsIDcsIAotICAgIDQsIDEsIDIzNSwgMjQsIDIsIDIyNiwgMjQ4LCA5MSwgNywgNiwgMSwgMjMwLCAyNiwgMiwgMjI2LCAyNDgsIDkxLCA3LCA0LCAKLSAgICAxLCAyMzAsIDI2LCAyLCAyMjYsIDI0OCwgOTEsIDcsIDYsIDEsIDIyMywgMjI0LCAyLCAyMjYsIDI0OCwgOTEsIDcsIDQsIDEsIAotICAgIDIyMywgMjI0LCAyLCAyMjYsIDI0OCwgOTEsIDcsIDYsIDEsIDIyMiwgOTIsIDIsIDIyNiwgMjQ4LCA5MSwgNywgNCwgMSwgCi0gICAgMjIyLCA5MiwgMiwgMjI2LCAyNDgsIDkxLCA3LCA2LCAxLCAyNDIsIDYxLCAyLCAxMDMsIDU4LCAxLCA2LCAyNDIsIDYxLCAyLCAKLSAgICA5MSwgNTgsIDEsIDQsIDI3LCAyMjYsIDIzNCwgNywgMSwgNCwgNiwgMjE1LCA5NCwgMTkzLCA3LCAyNDUsIDEwMywgMSwgCi0gICAgMjIzLCA0OSwgMjQ1LCA2LCA3LCAyNDUsIDEwMywgMSwgMjIzLCA0OSwgMjI2LCAxMDUsIDcsIDI0NSwgMTAzLCAxLCAyMzUsIAotICAgIDE5MywgMTkzLCA3LCAyNDUsIDEwMywgMSwgMjQwLCAxNTQsIDIzMiwgMTI5LCA3LCAyNDUsIDEwMywgMSwgMjU0LCAyMywgCi0gICAgMTkzLCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDYxLCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDczLCAyMTcsIDIzMCwgMjI5LCAKLSAgICAyMTQsIDUsIDI0NiwgNDgsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgNzAsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgNzUsIAotICAgIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgNzYsIDIxNywgMjMwLCAyMjksIDIxNCwgNSwgMjQxLCAyNTMsIDIxNywgMjMwLCAKLSAgICAyMjksIDIxNCwgMSwgMjM0LCAyOCwgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCAyMzQsIDEwNSwgMjE3LCAyMzAsIDIyOSwgCi0gICAgMjE0LCAxLCAyNDIsIDE3NCwgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCAyNDIsIDIyNCwgMjE3LCAyMzAsIDIyOSwgMjE0LCA1LCAKLSAgICAyNTQsIDc1LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDI0OSwgMjM4LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDI1MCwgODYsIAotICAgIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgMjM1LCA2OCwgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCAyMzUsIDEwOSwgMjE3LCAKLSAgICAyMzAsIDIyOSwgMjE0LCAxLCAyMTUsIDEzMywgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCAyMTUsIDEzOSwgMjE3LCAyMzAsIAotICAgIDIyOSwgMjE0LCAxLCAyNDgsIDEwNSwgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCAyNDgsIDExNCwgMjE3LCAyMzAsIDIyOSwgCi0gICAgMjE0LCAxLCAxMTEsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgMjE2LCAxNTYsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgMjQ3LCAKLSAgICAxNDUsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgMjQ4LCA3LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDIyOCwgNzQsIDIxNywgCi0gICAgMjMwLCAyMjksIDIxNCwgMSwgMjI1LCAxNiwgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCAyMjUsIDEyMSwgMjE3LCAyMzAsIAotICAgIDIyOSwgMjE0LCAxLCAyNTEsIDIwNSwgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCAyNTIsIDEwLCAyMTcsIDIzMCwgMjI5LCAKLSAgICAyMTQsIDEsIDIzMCwgMTYxLCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDIyMiwgMjExLCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIAotICAgIDIzMiwgMTU2LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDIyMiwgMTY1LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDIxOSwgCi0gICAgNTgsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgMjQxLCA2OCwgMjE3LCAyMzAsIDIyOSwgMjE0LCAyNSwgNSwgNjEsIDIxNywgCi0gICAgMjMwLCAyMjksIDIxNCwgMjUsIDUsIDczLCAyMTcsIDIzMCwgMjI5LCAyMTQsIDI1LCA1LCA3MCwgMjE3LCAyMzAsIDIyOSwgCi0gICAgMjE0LCAyNSwgNSwgNzUsIDIxNywgMjMwLCAyMjksIDIxNCwgMjUsIDUsIDIyNiwgMTgzLCAyMTcsIDIzMCwgMjI5LCAyMTQsIAotICAgIDIyNSwgMTIsIDIzMSwgMTU4LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDIyNSwgMTIsIDIzMSwgMTU3LCAyMTcsIDIzMCwgMjI5LCAKLSAgICAyMTQsIDIyNSwgMTIsIDIzMSwgMTU2LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDIyNSwgMTIsIDIzMSwgMTU1LCAyMjgsIDU2LCAKLSAgICAyMzUsIDI0MCwgMjQ0LCAyLCAxMjMsIDIyNCwgMjEsIDIyOCwgNTYsIDIzNSwgMjQwLCAyNDQsIDIsIDEyMywgMjQyLCAyNywgCi0gICAgMjI4LCA1NiwgMjM1LCAyNDAsIDI0NCwgMiwgMTM0LCAyMjQsIDE5LCAyMjgsIDU2LCAyMzUsIDI0MCwgMjQ0LCAyLCAxMjMsIAotICAgIDIxOSwgMTE3LCAyMjgsIDU2LCAyMzUsIDI0MCwgMjQ0LCAyLCAxMjMsIDI0NSwgMTg4LCAyMjgsIDU2LCAyMzUsIDI0MCwgCi0gICAgMjQ0LCAyLCAxMzQsIDIxOSwgMTE2LCAyMjgsIDU2LCAyMzUsIDI0MCwgMjI0LCAyMiwgNzgsIDIyOCwgNTYsIDIzNSwgMjQwLCAKLSAgICAyMjUsIDQwLCA3OCwgMjI4LCA1NiwgMjM1LCAyNDAsIDIyMiwgMTE4LCA3OCwgMjI4LCA1NiwgMjM1LCAyNDAsIDIyNCwgMjMsIAotICAgIDc4LCAyMjUsIDE0NCwgMSwgMTc2LCAyMjUsIDE0NCwgMSwgMjM0LCAxMzIsIDIyNSwgMTQ0LCAxLCAyNDMsIDEzNSwgMjI1LCAKLSAgICAxNDQsIDEsIDIyOSwgNzcsIDIyNSwgMTQ0LCAxLCAyNTEsIDMzLCAyMjUsIDE0NCwgMSwgMjUwLCAxNTcsIDIyNSwgMTQ0LCAKLSAgICAxLCAyMzUsIDE0MSwgMjI1LCAxNDQsIDEsIDIyNywgMTY1LCAyMjUsIDE0NCwgMSwgMjE3LCAxMDUsIDIyNSwgMTQ0LCAxLCAKLSAgICAyMTYsIDIwOCwgMjI1LCAxNDQsIDEsIDI0OCwgMjIxLCAyMjUsIDE0NCwgMSwgMTk3LCAyMjUsIDE0NCwgMSwgMTkwLCAyMjUsIAotICAgIDE0NCwgMSwgMjI1LCAxNDcsIDIyNSwgMTQ0LCAxLCAyNTIsIDE5MSwgMjI1LCAxNDQsIDEsIDE4NCwgMjI1LCAxNDQsIDEsIAotICAgIDIxNSwgMTgzLCAyMjUsIDE0NCwgMSwgMjE1LCAxNzUsIDIyNSwgMTQ0LCAxLCAyNDYsIDM4LCAyMjUsIDE0NCwgMSwgMjEyLCAKLSAgICA2NSwgMjI1LCAxNDQsIDEsIDIxMCwgODIsIDIyNSwgMTQ0LCAxLCAyMTAsIDExNiwgMjI1LCAxNDQsIDEsIDQsIDYxLCAyMjUsIAotICAgIDE0NCwgMSwgMTkxLCAyMjUsIDE0NCwgMSwgMjA1LCAyMjUsIDE0NCwgMSwgMjMzLCAxMzUsIDIyNSwgMTQ0LCAxLCAyMjAsIAotICAgIDEwMiwgMjI1LCAxNDQsIDEsIDIwNiwgMjI1LCAxNDQsIDEsIDE2MiwgMjI1LCAxNDQsIDEsIDYxLCAyMjUsIDE0NCwgMSwgCi0gICAgNzMsIDIyNSwgMTQ0LCAxLCA3MCwgMjI1LCAxNDQsIDEsIDc1LCAyMjUsIDE0NCwgMSwgNzYsIDIyNSwgMTQ0LCAxLCAyMjQsIAotICAgIDg4LCAyMjUsIDE0NCwgMSwgMjExLCAxNjUsIDIyNSwgMTQ0LCAxLCAyNDQsIDE5NiwgMjI1LCAxNDQsIDEsIDI0MywgMjksIAotICAgIDIyNSwgMTQ0LCAxLCAyNDUsIDIwOSwgMjI1LCAxNDQsIDIxOCwgNzMsIDEsIDIxMiwgNjUsIDIyNSwgMTQ0LCAyMTgsIDczLCAKLSAgICAxLCAxOTEsIDIyNSwgMTQ0LCAxLCAyMTUsIDE1NiwgMjI1LCAxNDQsIDEsIDIxNSwgMTQ0LCAyMjUsIDE0NCwgMSwgMjQ4LCAKLSAgICAxMzUsIDIyNSwgMTQ0LCAxLCAyMjgsIDExMCwgMjI1LCAxNDQsIDEsIDI1NCwgMTQxLCAxOTEsIDIyNSwgMTQ0LCAxLCAyMTMsIAotICAgIDEzNCwgMjIwLCAxMDIsIDIyNSwgMTQ0LCAxLCAyMTMsIDEzNSwgMTYyLCAyMjUsIDE0NCwgMSwgMjUzLCAyMjMsIDI0NCwgCi0gICAgMTk2LCAyMjUsIDE0NCwgMjE4LCA3MywgMSwgMjA1LCAyMjUsIDE0NCwgMjE4LCAyNSwgMSwgMjA1LCAyMjUsIDE0NCwgMSwgCi0gICAgMjUwLCAyNTUsIDIyNSwgMTQ0LCAyMTksIDE1NSwgMjQxLCAyMzYsIDc4LCAyMjUsIDE0NCwgNTIsIDI0MSwgMjM2LCA3OCwgCi0gICAgMjI1LCAxNDQsIDE2NCwgMjIwLCA5NSwgMjI1LCAxNDQsIDE2NCwgNTIsIDIyMCwgOTUsIDE3OSwgNSwgMjU0LCA3NSwgMTc5LCAKLSAgICA1LCAyMTMsIDE0NywgMTc5LCAxLCA2MSwgMTc5LCAxLCAyNTUsIDczLCAxNzksIDEsIDczLCAxNzksIDEsIDIzNiwgMzMsIAotICAgIDE3OSwgMSwgNzAsIDE3OSwgMSwgMjE0LCAxMTgsIDE3OSwgMSwgMTQ5LCAxNTMsIDE3OSwgMSwgMTQ5LCAyMjIsIDE4MCwgCi0gICAgMTc5LCAxLCAxNDksIDE1NiwgMTc5LCAxLCAxNDksIDIzMiwgMTg1LCAxNzksIDEsIDc1LCAxNzksIDEsIDI0NSwgMjA5LCAKLSAgICAxNzksIDEsIDI1NCwgMjAxLCAxNzksIDEsIDc2LCAxNzksIDEsIDIyNiwgMTgzLCAxNzksIDEsIDI1MywgMTkyLCAxNzksIDEsIAotICAgIDE3NiwgMTc5LCAxLCAyMzQsIDEzMiwgMTc5LCAxLCAyNDMsIDEzNSwgMTc5LCAxLCAyNDIsIDI0OSwgMTc5LCAxLCAyMjksIAotICAgIDc3LCAxNzksIDEsIDI1MSwgMzMsIDE3OSwgMSwgMjUwLCAxNTcsIDE3OSwgMSwgMjM1LCAxNDEsIDE3OSwgMSwgMjM1LCAKLSAgICAxMTQsIDE3OSwgMSwgMjI3LCAxNjUsIDE3OSwgMSwgMjE1LCAxNTYsIDE3OSwgMSwgMjE1LCAxNDQsIDE3OSwgMSwgMjQ4LCAKLSAgICAxMzUsIDE3OSwgMSwgMjQ4LCAxMTksIDE3OSwgMSwgMjI4LCAxMTAsIDE3OSwgMSwgMjE3LCAxMDUsIDE3OSwgMSwgMjE2LCAKLSAgICAyMDgsIDE3OSwgMSwgMjQ4LCAyMjEsIDE3OSwgMSwgMjQ4LCAyNSwgMTc5LCAxLCAxOTcsIDE3OSwgMSwgMTkwLCAxNzksIDEsIAotICAgIDIyNSwgMTQ3LCAxNzksIDEsIDI1MiwgMTkxLCAxNzksIDEsIDI1MiwgMTgsIDE3OSwgMSwgMTg0LCAxNzksIDEsIDE5MSwgCi0gICAgMTc5LCAxLCAyMDUsIDE3OSwgMSwgMjMzLCAxMzUsIDE3OSwgMSwgMjE0LCAyNywgMTc5LCAxLCAyMjAsIDEwMiwgMTc5LCAxLCAKLSAgICAyMTgsIDIyMywgMTc5LCAxLCAyMDYsIDE3OSwgMSwgMTYyLCAxNzksIDEsIDIzMiwgMTg0LCAxNzksIDExNiwgNSwgMjQyLCAKLSAgICA0NCwgMTc5LCAyNSwgNSwgMjU1LCA3MywgMTc5LCAyNSwgNSwgNzMsIDE3OSwgMjUsIDUsIDIzNiwgMzMsIDE3OSwgMjUsIDUsIAorICAgIDIxMCwgMjAzLCAyNCwgMSwgMjEwLCAyMDQsIDI0LCAxLCAyMTAsIDIwNywgMjQsIDEsIDI1NCwgMzUsIDI0LCAxLCAyNTQsIAorICAgIDI5LCAxMDksIDI1NCwgMTAwLCAyMzIsIDIwNCwgNzgsIDEwOSwgMjU0LCAxMDAsIDIyMywgNTEsIDc4LCAxMDksIDI1NCwgCisgICAgMTAwLCAxMjMsIDc4LCAxMDksIDI1NCwgMTAwLCAxMTMsIDc4LCAxMDksIDI1NCwgMTAwLCAxMzQsIDc4LCAxMDksIDI1NCwgCisgICAgMTAwLCAyNDQsIDEyLCA3OCwgMTA5LCAyNTQsIDEwMCwgMjE2LCAxNSwgNzgsIDEwOSwgMjU0LCAxMDAsIDIzMCwgMjI1LCAKKyAgICA3OCwgMTA5LCAyNTQsIDEwMCwgMjUxLCAxNzYsIDc4LCAxMDksIDI1NCwgMTAwLCAyNDQsIDkzLCA3OCwgMTA5LCAyNTQsIAorICAgIDEwMCwgMjIxLCAxNzcsIDc4LCAxMDksIDI1NCwgMTAwLCAyMTYsIDE3MCwgNzgsIDEwOSwgMjU0LCAxMDAsIDI0NCwgNSwgCisgICAgNzgsIDEwOSwgMjU0LCAxMDAsIDI0MSwgMjI1LCA3OCwgMTA5LCAyNTQsIDEwMCwgMjQ1LCAyMjUsIDc4LCAxMDksIDI1NCwgCisgICAgMTAwLCAyMzEsIDE4NywgNzgsIDI1MSwgMTg1LCAxLCAyNTEsIDEyNiwgMjUxLCAxODUsIDEsIDIxMCwgNDQsIDI1MSwgMTg1LCAKKyAgICAxLCAyMzUsIDEwOSwgMjUxLCAxODUsIDEsIDI0MiwgMTE0LCAyNTEsIDE4NSwgMSwgMjQ1LCAyMTAsIDI1MSwgMTg1LCAxLCAKKyAgICAyNDUsIDEzNiwgMjUxLCAxODUsIDEsIDIyNiwgMTg0LCAyNTEsIDE4NSwgMSwgMjI2LCAxODgsIDI1MSwgMTg1LCAxLCAyMzUsIAorICAgIDE4MCwgMjUxLCAxODUsIDEsIDI1NCwgMTAyLCAyNTEsIDE4NSwgMSwgMjM1LCAyMjUsIDI1MSwgMTg1LCAxLCAyMTQsIDE2OCwgCisgICAgMjUxLCAxODUsIDEsIDIzNiwgMTcsIDI1MSwgMTg1LCAxLCAyMjksIDU4LCAyNTEsIDE4NSwgMSwgMjU0LCAxOTYsIDI1MSwgCisgICAgMTg1LCAxLCAyNTMsIDE4OCwgMjUxLCAxODUsIDEsIDI1NCwgMTM3LCAyNTEsIDE4NSwgMSwgMjI2LCAyMDUsIDI1MSwgMTg1LCAKKyAgICAxLCAyMjYsIDE5MCwgMjUxLCAxODUsIDEsIDIzNSwgMjIyLCAyNTEsIDE4NSwgNDAsIDEsIDIyNiwgMTA2LCAyNTEsIDE4NSwgCisgICAgNDAsIDEsIDIxNywgMTUzLCAyNTEsIDE4NSwgNDAsIDEsIDIzNSwgMjQsIDI1MSwgMTg1LCA0MCwgMSwgMjQyLCA2MSwgMjUxLCAKKyAgICAxODUsIDEsIDI0MiwgMjUxLCAyNTEsIDE4NSwgMSwgMjMzLCAwLCAyNTEsIDE4NSwgMSwgMjA5LCAyNTAsIDksIDIxOCwgCisgICAgMTA0LCAyMTcsIDE1MywgOSwgMjE4LCAxMDQsIDIxMiwgNCwgOSwgMjE4LCAxMDQsIDIxMSwgMTU4LCA5LCAyMTgsIDEwNCwgCisgICAgMjUxLCA4MCwgOSwgMjE4LCAxMDQsIDIxNywgMjU1LCA5LCAyMTgsIDEwNCwgMjQwLCAxNTksIDksIDIxOCwgMTA0LCAyNDAsIAorICAgIDE2MywgOSwgMjE4LCAxMDQsIDI0MCwgMjMyLCA5LCAyMTgsIDEwNCwgMjQwLCAxNjAsIDksIDIxOCwgMTA0LCAyMTcsIDE1NiwgCisgICAgOSwgMjE4LCAxMDQsIDI0MCwgMTYyLCA5LCAyMTgsIDEwNCwgMjQwLCAxNTgsIDksIDIxOCwgMTA0LCAyNDAsIDIzMCwgOSwgCisgICAgMjE4LCAxMDQsIDI0MCwgMTYxLCA5LCAyMTgsIDEwNCwgMjQwLCAxNTcsIDksIDIxOCwgMTA0LCAyMzAsIDI2LCA5LCAyMTgsIAorICAgIDEwNCwgMjQyLCA2MSwgOSwgMjE4LCAxMDQsIDIyMiwgOTIsIDksIDIxOCwgMTA0LCAyMjYsIDEwNiwgOSwgMjE4LCAxMDQsIAorICAgIDIxOSwgMjIsIDksIDIxOCwgMTA0LCAyNDksIDYxLCA5LCAyMTgsIDEwNCwgMjQwLCAxNjQsIDksIDIxOCwgMTA0LCAyNDEsIAorICAgIDE5MSwgOSwgMjE4LCAxMDQsIDIxNywgMTY1LCA5LCAyMTgsIDEwNCwgMjE3LCAyMzQsIDksIDIxOCwgMTA0LCAyMTgsIDE2OSwgCisgICAgOSwgMjE4LCAxMDQsIDIyMCwgMTExLCA5LCAyMTgsIDEwNCwgMjI1LCAyMjUsIDksIDIxOCwgMTA0LCAyMjQsIDk5LCA5LCAKKyAgICAyMTgsIDEwNCwgMjE2LCA0NCwgOSwgMjE4LCAxMDQsIDIxNywgMTU1LCA5LCAyMTgsIDEwNCwgMjE3LCAyNDUsIDksIDIxOCwgCisgICAgMTA0LCAyNDAsIDE3MSwgOSwgMjE4LCAxMDQsIDI0MCwgMTU2LCA5LCAyMTgsIDEwNCwgMjI1LCAxNTAsIDksIDIxOCwgMTA0LCAKKyAgICAyMjQsIDk3LCA1NiwgMSwgNCwgMjMzLCAyMTgsIDU2LCAxLCA0LCAyMTksIDE5MiwgNTYsIDEsIDQsIDIxOCwgODQsIDU2LCAKKyAgICAxLCA0LCAxMTEsIDU2LCAxLCA0LCAyMjcsIDIzOCwgNTYsIDEsIDQsIDE2MiwgNTYsIDEsIDQsIDI0MSwgMTgxLCA1NiwgMSwgCisgICAgNCwgMjQwLCAyMjMsIDU2LCAxLCA0LCAyNDEsIDIzOSwgNTYsIDEsIDQsIDI0MSwgNjksIDU2LCAxLCA0LCAyMzAsIDEwMywgCisgICAgNTYsIDEsIDQsIDIwNSwgNTYsIDEsIDQsIDIyMywgMzYsIDU2LCAxLCA0LCAyMjIsIDE0MSwgNTYsIDEsIDQsIDIyMywgMTI5LCAKKyAgICA1NiwgMSwgNCwgMjIyLCAyMTIsIDg4LCAyNCwgMjM0LCA1OSwgODgsIDI0LCAyMjgsIDIyNywgODgsIDI0LCAyMTYsIDEwMiwgCisgICAgODgsIDI0LCAyMjMsIDI3LCA4OCwgMjQsIDIzMCwgMjE4LCA4OCwgMjQsIDIyNSwgOTYsIDg4LCAyNCwgMjE5LCAxNDksIDg4LCAKKyAgICAyNCwgMjM2LCA1NywgODgsIDI0LCAyNTAsIDQ3LCA4OCwgMjQsIDI1MCwgMTA3LCA4OCwgMjQsIDIzNCwgMTExLCA4OCwgMjQsIAorICAgIDIxNiwgMTc0LCA4OCwgMjQsIDIyNSwgMTMyLCA4OCwgMjQsIDI0MSwgMTczLCA4OCwgMjQsIDIzNCwgNjAsIDYxLCA4OCwgCisgICAgMjQsIDIyOCwgMjI4LCA2MSwgODgsIDI0LCAyMTYsIDEwMywgNjEsIDg4LCAyNCwgMjIzLCAyOCwgNjEsIDg4LCAyNCwgMjMwLCAKKyAgICAyMTksIDYxLCA4OCwgMjQsIDIyNSwgOTcsIDYxLCA4OCwgMjQsIDIxOSwgMTUwLCA2MSwgODgsIDI0LCAyMzYsIDU4LCA2MSwgCisgICAgODgsIDI0LCAyNTAsIDQ4LCA2MSwgODgsIDI0LCAyNTAsIDEwOCwgNjEsIDg4LCAyNCwgMjM0LCAxMTIsIDYxLCA4OCwgMjQsIAorICAgIDIxNiwgMTc1LCA2MSwgODgsIDI0LCAyMjUsIDEzMywgNjEsIDg4LCAyNCwgMjQxLCAxNzQsIDYxLCA4OCwgMjQsIDI1MCwgCisgICAgNDgsIDcwLCA4OCwgMjM0LCA0LCAxMzUsIDIyNiwgMjE4LCA4OCwgMjM0LCA0LCAxMzUsIDE0NCwgMjQwLCAyMjMsIDg4LCAKKyAgICAxNTQsIDExMCwgODgsIDE1NCwgMTA1LCA4OCwgMTU0LCAxNTgsIDg4LCAxNTQsIDE2MSwgODgsIDE1NCwgMTg5LCA4OCwgCisgICAgMTU0LCAxOTQsIDg4LCAxNTQsIDE5OCwgODgsIDE1NCwgMTk1LCA4OCwgMTU0LCAyMDAsIDg4LCAxNTQsIDIxNiwgMjQ4LCAKKyAgICA4OCwgMTU0LCAyMzAsIDEyOSwgODgsIDE1NCwgMjQ0LCA5NywgODgsIDE1NCwgMjEyLCA0MCwgODgsIDE1NCwgMjExLCAyMTQsIAorICAgIDg4LCAxNTQsIDIzMSwgNDAsIDg4LCAxNTQsIDI0NSwgMjI0LCA4OCwgMTU0LCAyMTgsIDM4LCA4OCwgMTU0LCAyMTgsIDEzMywgCisgICAgODgsIDE1NCwgMjQxLCAyNDUsIDg4LCAxNTQsIDIxOSwgNTUsIDg4LCAxNTQsIDIyOSwgMjA1LCA4OCwgMTU0LCAyMTksIDUsIAorICAgIDg4LCAxNTQsIDI0NCwgMTAzLCA4OCwgMTU0LCAyNDksIDIwMSwgODgsIDE1NCwgMjMzLCAxMjYsIDg4LCAxNTQsIDIyMywgCisgICAgNzIsIDg4LCAxNTQsIDI1MSwgMTYsIDg4LCAxNTQsIDIxOCwgODgsIDg4LCAxNTQsIDIxOCwgMjEsIDg4LCAxNTQsIDI0NSwgCisgICAgMTI4LCA4OCwgMTU0LCAyMjMsIDY0LCA4OCwgMTU0LCAyNTQsIDE1MSwgODgsIDE1NCwgMjQ0LCAxMjksIDg4LCAxNTQsIAorICAgIDIyMywgNjIsIDg4LCAxNTQsIDIyMCwgMTU3LCA4OCwgMTU0LCAyMjMsIDEyOCwgMzcsIDE1NCwgMjI0LCAxMywgMzcsIDE1NCwgCisgICAgMjM0LCA4MSwgMzcsIDE1NCwgMjIxLCAxOTksIDM3LCAxNTQsIDIzNCwgMCwgMzcsIDU0LCAyMTYsIDI0OSwgMjI2LCAxOTgsIAorICAgIDg1LCAyMTgsIDIzNSwgMzcsIDU0LCAyMTUsIDc0LCAyMjYsIDE5OCwgODUsIDIxOCwgMjM1LCAzNywgNTQsIDIxNiwgMTY0LCAKKyAgICAyMjYsIDE5OCwgODUsIDIxOCwgMjM1LCAzNywgNTQsIDI0NCwgMTcsIDIyNiwgMTk4LCA4NSwgMjE4LCAyMzUsIDM3LCA1NCwgCisgICAgMjQ0LCAxMTYsIDIyNiwgMTk4LCA4NSwgMjE4LCAyMzUsIDM3LCA1NCwgMjE5LCAxMTMsIDIyNiwgMTk4LCA4NSwgMjE4LCAKKyAgICAyMzUsIDM3LCA1NCwgMjIwLCAxMTgsIDIyNiwgMTk4LCA4NSwgMjE4LCAyMzUsIDM3LCA1NCwgMjQ1LCAxODYsIDIyNiwgCisgICAgMTk4LCA4NSwgMjE4LCAyMzUsIDIyNSwgMjUyLCA1MCwgMzcsIDU0LCAyMTUsIDc0LCAxMTAsIDM3LCA1NCwgMjE1LCA3NCwgCisgICAgMTA1LCAzNywgNTQsIDIxNSwgNzQsIDE1OCwgMzcsIDU0LCAyMTUsIDc0LCAxNjEsIDM3LCA1NCwgMjE1LCA3NCwgMTg5LCAKKyAgICAzNywgNTQsIDIxNSwgNzQsIDE5NCwgMzcsIDU0LCAyMTUsIDc0LCAxOTgsIDM3LCA1NCwgMjE1LCA3NCwgMTk1LCAzNywgNTQsIAorICAgIDIxNSwgNzQsIDIwMCwgMzcsIDU0LCAyMTYsIDE2MywgMzcsIDU0LCAyMTYsIDE2NCwgMTEwLCAzNywgNTQsIDIxNiwgMTY0LCAKKyAgICAxMDUsIDM3LCA1NCwgMjE2LCAxNjQsIDE1OCwgMzcsIDU0LCAyMTYsIDE2NCwgMTYxLCAzNywgNTQsIDIxNiwgMTY0LCAxODksIAorICAgIDM3LCAyNCwgMjM0LCA1OSwgMzcsIDI0LCAyMjgsIDIyNywgMzcsIDI0LCAyMTYsIDEwMiwgMzcsIDI0LCAyMjMsIDI3LCAzNywgCisgICAgMjQsIDIzMCwgMjE4LCAzNywgMjQsIDIyNSwgOTYsIDM3LCAyNCwgMjE5LCAxNDksIDM3LCAyNCwgMjM2LCA1NywgMzcsIDI0LCAKKyAgICAyNTAsIDQ3LCAzNywgMjQsIDI1MCwgMTA3LCAzNywgMjQsIDIzNCwgMTExLCAzNywgMjQsIDIxNiwgMTc0LCAzNywgMjQsIAorICAgIDIyNSwgMTMyLCAzNywgMjQsIDI0MSwgMTczLCAzNywgMjQsIDIzNCwgNjAsIDYxLCAzNywgMjQsIDIyOCwgMjI4LCA2MSwgCisgICAgMzcsIDI0LCAyMTYsIDEwMywgNjEsIDM3LCAyNCwgMjIzLCAyOCwgNjEsIDM3LCAyNCwgMjMwLCAyMTksIDYxLCAzNywgMjQsIAorICAgIDIyNSwgOTcsIDYxLCAzNywgMjQsIDIxOSwgMTUwLCA2MSwgMzcsIDI0LCAyMzYsIDU4LCA2MSwgMzcsIDI0LCAyNTAsIDQ4LCAKKyAgICA2MSwgMzcsIDI0LCAyNTAsIDEwOCwgNjEsIDM3LCAyNCwgMjM0LCAxMTIsIDYxLCAzNywgMjQsIDIxNiwgMTc1LCA2MSwgMzcsIAorICAgIDI0LCAyMjUsIDEzMywgNjEsIDM3LCAyNCwgMjQxLCAxNzQsIDYxLCAzNywgMjM0LCA0LCAxMzUsIDI1MCwgMTQ5LCAzNywgCisgICAgMjM0LCA0LCAxMzUsIDIzNSwgNDgsIDM3LCAyNCwgMjM2LCA1OCwgNzAsIDIzNCwgNCwgMjE4LCAxNjAsIDg3LCAzNywgMTU0LCAKKyAgICAxMTAsIDM3LCAxNTQsIDEwNSwgMzcsIDE1NCwgMTU4LCAzNywgMTU0LCAxNjEsIDM3LCAxNTQsIDE4OSwgMzcsIDE1NCwgCisgICAgMTk0LCAzNywgMTU0LCAxOTgsIDM3LCAxNTQsIDE5NSwgMzcsIDE1NCwgMjAwLCAzNywgMTU0LCAyMTYsIDI0OCwgMzcsIAorICAgIDE1NCwgMjMwLCAxMjksIDM3LCAxNTQsIDI0NCwgOTcsIDM3LCAxNTQsIDIxMiwgNDAsIDM3LCAxNTQsIDIxMSwgMjE0LCAzNywgCisgICAgMTU0LCAyMzEsIDQwLCAzNywgMTU0LCAyNDUsIDIyNCwgMzcsIDE1NCwgMjE4LCAzOCwgMzcsIDE1NCwgMjE4LCAxMzMsIDM3LCAKKyAgICAxNTQsIDI0MSwgMjQ1LCAzNywgMTU0LCAyMTksIDU1LCAzNywgMTU0LCAyMjksIDIwNSwgMzcsIDE1NCwgMjE5LCA1LCAzNywgCisgICAgMTU0LCAyNDQsIDEwMywgMzcsIDE1NCwgMjQ5LCAyMDEsIDM3LCAxNTQsIDIzMywgMTI2LCAzNywgMTU0LCAyMjEsIDE3NSwgCisgICAgMzcsIDE1NCwgMjMxLCAxOTAsIDM3LCAxNTQsIDI0NCwgMTM4LCAzNywgMTU0LCAyMTgsIDUwLCAzNywgMTU0LCAyNDUsIDM1LCAKKyAgICAzNywgMTU0LCAyMjQsIDE4OCwgMzcsIDE1NCwgMjUzLCAxOTcsIDM3LCAxNTQsIDIzNSwgMTYwLCAzNywgMTU0LCAyMjMsIAorICAgIDYyLCAzNywgMTU0LCAyNDksIDE2NSwgMzcsIDE1NCwgMjQ5LCAxNTYsIDM3LCAxNTQsIDI0MSwgMTY2LCAzNywgMTU0LCAKKyAgICAyNTAsIDE3NSwgMzcsIDE1NCwgMjMyLCAxMTEsIDM3LCAxNTQsIDIzMywgNDcsIDM3LCAxNTQsIDIyMiwgMjUyLCAzNywgCisgICAgMTU0LCAyMzEsIDg0LCAzNywgMTU0LCAyMjMsIDg4LCAzNywgMTU0LCAyMTgsIDg4LCAzNywgMTU0LCAyMTgsIDIxLCAzNywgCisgICAgMTU0LCAyNDUsIDEyOCwgMzcsIDE1NCwgMjIzLCA2NCwgMzcsIDE1NCwgMjU0LCAxNTEsIDM3LCAxNTQsIDIyOCwgMjEzLCAKKyAgICAzNywgNTQsIDIxNiwgMTY0LCAxOTQsIDM3LCA1NCwgMjE2LCAxNjQsIDE5OCwgMzcsIDU0LCAyMTYsIDE2NCwgMTk1LCAzNywgCisgICAgNTQsIDIxNiwgMTY0LCAyMDAsIDM3LCA1NCwgMjQ0LCAxNiwgMzcsIDU0LCAyNDQsIDE3LCAxMTAsIDM3LCA1NCwgMjQ0LCAKKyAgICAxNywgMTA1LCAzNywgNTQsIDI0NCwgMTcsIDE1OCwgMzcsIDU0LCAyNDQsIDE3LCAxNjEsIDM3LCA1NCwgMjQ0LCAxNywgCisgICAgMTg5LCAzNywgNTQsIDI0NCwgMTcsIDE5NCwgMzcsIDU0LCAyNDQsIDE3LCAxOTgsIDM3LCA1NCwgMjQ0LCAxNywgMTk1LCAKKyAgICAzNywgNTQsIDI0NCwgMTcsIDIwMCwgMzcsIDU0LCAyNDQsIDExNSwgMTA5LCAyMTcsIDQsIDE2LCAzMSwgMjM1LCAxMzQsIAorICAgIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0NCwgMTQ5LCAxMDksIDIxNywgNCwgMTYsIDMxLCAyMzEsIDE2MSwgMTA5LCAyMTcsIAorICAgIDQsIDE2LCAzMSwgMjU0LCA0OCwgMTA5LCAyMTcsIDQsIDE2LCAzMSwgMjMxLCAxMzMsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIAorICAgIDIzNSwgNDYsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDIzNSwgNDcsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI1MywgMTg5LCAKKyAgICAxMDksIDIxNywgNCwgMTYsIDMxLCAyMjAsIDEzNywgMTA5LCAyMTcsIDQsIDE2LCAzMSwgMjI2LCAyNDAsIDEwOSwgMjE3LCAKKyAgICA0LCAxNiwgMzEsIDIyOCwgNDEsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgODYsIDQyLCAyNDEsIDE5MSwgNDIsIDI0NSwgCisgICAgODksIDQyLCAyNDUsIDQ0LCAyMzIsIDIyMCwgMjMyLCAyNDEsIDUwLCAzNywgNTYsIDYxLCAzNywgNTYsIDczLCAzNywgNTYsIAorICAgIDcwLCAzNywgNTYsIDc1LCAzNywgNTYsIDc2LCAzNywgNTYsIDE3NiwgMzcsIDU2LCAyMzQsIDkzLCAzNywgNTYsIDIzMywgCisgICAgMjE4LCAzNywgNTYsIDIzNCwgMTgzLCAzNywgNTYsIDIzNCwgMjksIDM3LCA1NiwgMjA2LCAzNywgNTYsIDIxOSwgMTkyLCAKKyAgICAzNywgNTYsIDIxOCwgODQsIDM3LCA1NiwgMjIxLCAxODIsIDM3LCA1NiwgMjE5LCA1OSwgMzcsIDU2LCAyMTcsIDEwNiwgMzcsIAorICAgIDU2LCAyMTYsIDExOCwgMzcsIDU2LCAyMTUsIDExOSwgMzcsIDU2LCAyMTcsIDIzLCAzNywgNTYsIDExMSwgMzcsIDU2LCAKKyAgICAxOTcsIDM3LCA1NiwgMjI4LCAyMzQsIDM3LCA1NiwgMjI3LCAyMzgsIDM3LCA1NiwgMjI5LCAxMDgsIDM3LCA1NiwgMjI4LCAKKyAgICA3NSwgMzcsIDU2LCAxNjIsIDM3LCA1NiwgMjQxLCAxODEsIDM3LCA1NiwgMjQwLCAyMjMsIDM3LCA1NiwgMjQxLCAyMzksIAorICAgIDM3LCA1NiwgMjQxLCA2OSwgMzcsIDU2LCAxODUsIDM3LCA1NiwgMjMwLCAyMzEsIDM3LCA1NiwgMjMwLCAxMDMsIDM3LCA1NiwgCisgICAgMjMxLCA5MiwgMzcsIDU2LCAyMzAsIDE2MiwgMzcsIDU2LCAxOTEsIDM3LCA1NiwgMjEwLCAyMTIsIDM3LCA1NiwgMjEwLCAKKyAgICAyNDQsIDM3LCA1NiwgMjA1LCAzNywgNTYsIDIyMywgMzYsIDM3LCA1NiwgMjIyLCAxNDEsIDM3LCA1NiwgMjIzLCAxMjksIAorICAgIDM3LCA1NiwgMjIyLCAyMTIsIDM3LCA1NiwgMjEyLCA2NSwgMzcsIDU2LCAyMTEsIDI1MCwgMzcsIDU2LCAyMTIsIDIyLCAzNywgCisgICAgNTYsIDIxMSwgMjI3LCA0MiwgMjU0LCA3MiwgNDIsIDI1MywgMjQwLCA0MiwgMjU0LCA5NiwgNDIsIDI1NSwgMzIsIDQyLCAKKyAgICAyMzUsIDIyNywgNDIsIDIzNSwgMTk3LCA0MiwgMjE0LCAxNjYsIDQyLCAyNDUsIDY3LCA0MiwgMjQ1LCAyMDcsIDQyLCAyMjYsIAorICAgIDE4NywgNDIsIDIyNiwgMTgxLCA0MiwgMjM0LCAyNDYsIDQyLCAyMzQsIDIxNSwgNDIsIDIzNCwgMjEyLCA0MiwgMjQzLCA5MywgCisgICAgNDIsIDI0MywgMTAyLCA0MiwgMjQyLCAyMDUsIDQyLCAyNDIsIDIwMSwgNDIsIDIzMywgMTUxLCA0MiwgMjQyLCAxOTQsIDQyLCAKKyAgICAyMzQsIDczLCA0MiwgMjM0LCA3MiwgNDIsIDIzNCwgNzEsIDQyLCAyMzQsIDcwLCA0MiwgMjQyLCA4NywgNDIsIDI0MiwgODYsIAorICAgIDQyLCAyMzMsIDE5NCwgNDIsIDIzMywgMTk2LCA0MiwgMjM0LCAxNzksIDQyLCAyMzQsIDIsIDQyLCAyMzQsIDksIDQyLCAKKyAgICAyMjIsIDE3LCA0MiwgMjIxLCAyMzgsIDQyLCAyMTksIDEzMCwgNDIsIDIyMCwgMTQyLCA0MiwgMjIwLCAxNDEsIDQyLCAyNDgsIAorICAgIDIxOSwgNDIsIDI0OCwgMzcsIDQyLCAyNDcsIDEyMiwgNDIsIDIxNiwgMzMsIDQyLCAyMjksIDIwMSwgNDIsIDIyOCwgNDIsIAorICAgIDQyLCAyNDIsIDMzLCA0MiwgMjI2LCA4NSwgNDIsIDIyNiwgODQsIDQyLCAyNTIsIDE4OSwgNDIsIDIyNSwgMTA2LCA0MiwgCisgICAgMjI1LCA3MCwgNDIsIDIyNSwgNzEsIDQyLCAyNTEsIDIzNSwgNDIsIDI0MCwgMjIyLCA0MiwgMjQwLCAyMTgsIDQyLCAyNTEsIAorICAgIDkyLCA0MiwgMjQwLCAyMDUsIDQyLCAyNDEsIDIxNiwgNDIsIDIyNSwgMTYwLCA0MiwgMjI1LCAxOTUsIDQyLCAyNDEsIDE5OSwgCisgICAgNDIsIDIyNSwgMTkyLCA0MiwgMjI1LCAyMDgsIDQyLCAyNTIsIDYyLCA0MiwgMjI1LCA3LCA0MiwgMjUxLCAxODEsIDQyLCAKKyAgICAyNDEsIDU3LCA0MiwgMjI0LCAyNTEsIDQyLCAyNDEsIDQ5LCA0MiwgMjQxLCA1MSwgNDIsIDIzMSwgMjAyLCA0MiwgMjMxLCAKKyAgICAxOTgsIDQyLCAyMzEsIDIwNywgNDIsIDIzMSwgMTUxLCA0MiwgMjMxLCAxNzYsIDQyLCAyMzAsIDE5OCwgNDIsIDIzMCwgCisgICAgMTc3LCA0MiwgMjMwLCAxNzYsIDQyLCAyMzEsIDc1LCA0MiwgMjMxLCA3MiwgNDIsIDIzMSwgNzYsIDQyLCAyMTEsIDEwMiwgCisgICAgNDIsIDIxMSwgMTAwLCA0MiwgMjEwLCAyMDEsIDQyLCAyMjIsIDIyNywgNDIsIDIyMiwgMjMxLCA0MiwgMjIyLCAxMTgsIDQyLCAKKyAgICAyMjIsIDExMiwgNDIsIDIyMywgODYsIDQyLCAyMjMsIDgzLCA0MiwgMjEyLCAzOCwgMTA5LCAyMTcsIDQsIDE2LCAzMSwgCisgICAgMjQwLCAyNDAsIDIxMCwgODYsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0MCwgMjQwLCAxMTAsIDEwOSwgMjE3LCA0LCAxNiwgCisgICAgMzEsIDI0MCwgMjQwLCAxMDUsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0MCwgMjQwLCAxNTgsIDEwOSwgMjE3LCA0LCAxNiwgCisgICAgMzEsIDI0MCwgMjQwLCAxNjEsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0MCwgMjQwLCAxODksIDEwOSwgMjE3LCA0LCAxNiwgCisgICAgMzEsIDI0MCwgMjQwLCAxOTQsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0MCwgMjQwLCAxOTgsIDEwOSwgMjE3LCA0LCAxNiwgCisgICAgMzEsIDI0MCwgMjQwLCAxOTUsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0MCwgMjQwLCAyMDAsIDEwOSwgMjE3LCA0LCAxNiwgCisgICAgMzEsIDI0MCwgMjQwLCAyMTYsIDI0OCwgMTA5LCAyMTcsIDQsIDE2LCAzMSwgMjQwLCAyNDAsIDI0NSwgMTY4LCAxMDksIAorICAgIDIxNywgNCwgMTYsIDMxLCAyNDAsIDI0MCwgMjE1LCA3NiwgMTA5LCAyMTcsIDQsIDE2LCAzMSwgMjQwLCAyNDAsIDIxNiwgCisgICAgMTY1LCAxMDksIDIxNywgNCwgMTYsIDMxLCAyNDAsIDI0MCwgMjQ0LCA2LCAxMDksIDIxNywgNCwgMTYsIDMxLCAyNDAsIAorICAgIDI0MCwgMjQ0LCAxMTksIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0MCwgMjQwLCAyMTksIDEyMCwgMTA5LCAyMTcsIDQsIDE2LCAKKyAgICAzMSwgMjQwLCAyNDAsIDIyMCwgMTIwLCAxMDksIDIxNywgNCwgMTYsIDMxLCAyNDAsIDI0MCwgMjQ1LCAxOTEsIDEwOSwgCisgICAgMjE3LCA0LCAxNiwgMzEsIDI0MCwgMjQwLCAyMjgsIDE5OCwgMTA5LCAyMTcsIDQsIDE2LCAzMSwgMjQwLCAyNDAsIDIxNSwgCisgICAgNzMsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0MCwgMjQwLCAyMTUsIDY3LCAxMDksIDIxNywgNCwgMTYsIDMxLCAyNDAsIAorICAgIDI0MCwgMjE1LCA2MywgMTA5LCAyMTcsIDQsIDE2LCAzMSwgMjQwLCAyNDAsIDIxNSwgNjQsIDEwOSwgMjE3LCA0LCAxNiwgCisgICAgMzEsIDI0MCwgMjQwLCAyMTUsIDY5LCA0MiwgMjQwLCAyMzEsIDQyLCAyNDgsIDIyMiwgNDIsIDI1MywgMTkzLCA0MiwgMTMwLCAKKyAgICA0MiwgMjI2LCAxMjYsIDQyLCAyMjUsIDIyNiwgNDIsIDI0NywgMTQ4LCA0MiwgMjQ3LCAxNDksIDIxOCwgMjM0LCA0MiwgCisgICAgMjQ3LCAxNDksIDI0OSwgMTA5LCA0MiwgMjM1LCAxNTcsIDQyLCAyNDUsIDkyLCAyMjksIDIwNiwgMjQxLCAyMTcsIDQyLCAKKyAgICAyNDUsIDkyLCAyMjksIDIwNiwgMjE3LCAxNzUsIDQyLCAyNDUsIDkyLCAyMjksIDIwNiwgMjE3LCA3NSwgNDIsIDI0NSwgOTIsIAorICAgIDIyOSwgMjA2LCAyMzEsIDcxLCA0MiwgMjQ5LCAxNTgsIDQyLCAyMjYsIDkxLCAyNTQsIDEyNiwgNDIsIDE5NywgNDIsIDIzMCwgCisgICAgMTA0LCA2MSwgNDIsIDE4NSwgNDIsIDE3NiwgNDIsIDIzNCwgMTg2LCA0MiwgMjMxLCAxMzAsIDQyLCAyNDMsIDgxLCA0MiwgCisgICAgMjUxLCAxOSwgNDIsIDIzNCwgMTg1LCA0MiwgMjI1LCAxNTEsIDQyLCAyMjksIDgyLCA0MiwgMjMwLCAxMDQsIDI0NSwgNywgCisgICAgNDIsIDIzMCwgMTA0LCAyNDMsIDIwMywgNDIsIDIzMSwgMTYsIDQyLCAyMzQsIDEzNSwgNDIsIDI0MCwgMTY0LCA0MiwgMjM0LCAKKyAgICA5NSwgNDIsIDIzMCwgMjMzLCA0MiwgMjQyLCAyMTcsIDQyLCAyMTYsIDEyMCwgNDIsIDIzMCwgMTA0LCAxNTYsIDQyLCAyMzAsIAorICAgIDE3MCwgNDIsIDI0NywgMTU4LCA0MiwgMjM0LCA0MSwgNDIsIDI0NCwgNDYsIDQyLCAyMjgsIDExMywgNDIsIDIzMCwgMTA0LCAKKyAgICAxOTMsIDQyLCAyMzAsIDE2NywgNDIsIDI0OSwgMjQwLCA0MiwgMjM0LCAzNSwgNDIsIDIzMCwgMTY4LCAyMTgsIDIzNCwgNDIsIAorICAgIDI0OSwgMjQxLCAyMTgsIDIzNCwgNDIsIDIzMiwgNTEsIDIxOCwgMjM0LCA0MiwgMjM0LCAzNiwgMjE4LCAyMzQsIDQyLCAKKyAgICAyMzAsIDE2OCwgMjQ5LCAxMDksIDQyLCAyNDksIDI0MSwgMjQ5LCAxMDksIDQyLCAyMzIsIDUxLCAyNDksIDEwOSwgNDIsIAorICAgIDIzNCwgMzYsIDI0OSwgMTA5LCA0MiwgMjMyLCA1MSwgMTE3LCAyMjIsIDkyLCA0MiwgMjMyLCA1MSwgMTE3LCAyMjIsIDkzLCAKKyAgICAyMTgsIDIzNCwgNDIsIDE5MCwgNDIsIDIzMywgMjUyLCA0MiwgMjMwLCAxMDYsIDQyLCAyNDIsIDE1MiwgNDIsIDIyMywgCisgICAgMTc3LCA0MiwgMjIzLCAxNzgsIDExNywgMjIyLCA5MiwgNDIsIDIyMywgMTc4LCAxMTcsIDIyMiwgOTMsIDIxOCwgMjM0LCAKKyAgICA0MiwgMjI0LCAxNjMsIDQyLCAyMjgsIDE0LCA0MiwgMjMwLCAxMDQsIDIyMiwgOTIsIDQyLCAyMzAsIDEwNSwgNDIsIDIyNCwgCisgICAgMTE3LCA0MiwgMjI3LCAxNzcsIDQyLCAyMzAsIDEwNCwgMjE0LCAxMDUsIDQyLCAyMzAsIDUwLCA0MiwgMjMzLCAxODYsIDQyLCAKKyAgICAyMzAsIDUxLCAyMzEsIDc1LCA0MiwgMjI0LCAxMTYsIDQyLCAyMjcsIDE3NiwgNDIsIDIzMCwgMTA0LCAyMTIsIDk4LCA0MiwgCisgICAgMjMwLCA0NCwgNDIsIDIzMywgMTg0LCA0MiwgMjMwLCA0NSwgMjMxLCA3NSwgNDIsIDIzNSwgMjUsIDIyNiwgMjIxLCA0MiwgCisgICAgMjMyLCA1MSwgMjI2LCAyMjEsIDQyLCAyNTQsIDEzNywgNDIsIDI1MSwgMTYxLCA0MiwgMjUwLCAyMTUsIDQyLCAyNTAsIAorICAgIDE5MiwgNDIsIDI1MSwgNjgsIDExNywgMjM0LCAxMzUsIDQyLCAyNDksIDIzOSwgNDIsIDI0OCwgMTQzLCA0MiwgMjQyLCA3MywgCisgICAgNDIsIDE2MiwgNDIsIDI0MCwgMjMyLCA0MiwgMjM2LCAwLCA0MiwgMjM0LCA0OCwgNDIsIDIzNCwgMzYsIDI1MCwgMjUxLCAKKyAgICA0MiwgMjMzLCAyMjAsIDQyLCAyMzIsIDE2MCwgNDIsIDIzMiwgMTU5LCA0MiwgMjMyLCAxNDgsIDQyLCAyMzIsIDY0LCA0MiwgCisgICAgMjMxLCAxMzEsIDIxOSwgODAsIDQyLCAyMzAsIDE5NywgNDIsIDIzMCwgMTUzLCA0MiwgMjI1LCAxNDksIDQyLCAyMjUsIDIwLCAKKyAgICA0MiwgMjI0LCAyMjAsIDQyLCAyMjQsIDIxOCwgNDIsIDIxOCwgMjI4LCA0MiwgMjE4LCAzLCA0MiwgMjEyLCAyNCwgNDIsIAorICAgIDIxNCwgMTA2LCAxMTcsIDE5MywgNDIsIDExNSwgMTE3LCAxOTMsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAKKyAgICAxMTAsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAxMDUsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAKKyAgICAxNTgsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAxNjEsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAKKyAgICAxODksIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAxOTQsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAKKyAgICAxOTgsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAxOTUsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAKKyAgICAyMDAsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAyMTYsIDI0OCwgMTA5LCAyMTcsIDQsIDE2LCAzMSwgMjQ4LCAKKyAgICAxNDcsIDI0NSwgMTY4LCAxMDksIDIxNywgNCwgMTYsIDMxLCAyNDgsIDE0NywgMjE1LCA3NiwgMTA5LCAyMTcsIDQsIDE2LCAKKyAgICAzMSwgMjQ4LCAxNDcsIDIxNiwgMTY1LCAxMDksIDIxNywgNCwgMTYsIDMxLCAyNDgsIDE0NywgMjQ0LCA2LCAxMDksIDIxNywgCisgICAgNCwgMTYsIDMxLCAyNDgsIDE0NywgMjQ0LCAxMTksIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAyMTksIDEyMCwgCisgICAgMTA5LCAyMTcsIDQsIDE2LCAzMSwgMjQ4LCAxNDcsIDIyMCwgMTIwLCAxMDksIDIxNywgNCwgMTYsIDMxLCAyNDgsIDE0NywgCisgICAgMjQ1LCAxOTEsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAyMjgsIDE5OCwgMTA5LCAyMTcsIDQsIDE2LCAzMSwgCisgICAgMjQ4LCAxNDcsIDIxNSwgNzMsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAyMTUsIDY3LCAxMDksIDIxNywgNCwgCisgICAgMTYsIDMxLCAyNDgsIDE0NywgMjE1LCA2MywgMTA5LCAyMTcsIDQsIDE2LCAzMSwgMjQ4LCAxNDcsIDIxNSwgNjQsIDEwOSwgCisgICAgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAyMTUsIDY5LCAxMDksIDIxNywgNCwgMTYsIDMxLCAyNDgsIDE0NywgMjE1LCAKKyAgICA3MCwgMTA5LCAyMTcsIDQsIDE2LCAzMSwgMjQ4LCAxNDcsIDIxNSwgNjUsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgCisgICAgMTQ3LCAyMTUsIDY2LCAxMDksIDIxNywgNCwgMTYsIDMxLCAyNDgsIDE0NywgMjE1LCA3MiwgMTA5LCAyMTcsIDQsIDE2LCAKKyAgICAzMSwgMjQ4LCAxNDcsIDIxNSwgNjgsIDEwOSwgMjE3LCA0LCAxNiwgMzEsIDI0OCwgMTQ3LCAyMTYsIDE2MywgMTA5LCAyMTcsIAorICAgIDQsIDE2LCAzMSwgMjQ4LCAxNDcsIDIxNiwgMTYyLCA0MiwgMjQzLCAxMTksIDI0MSwgMTkzLCAzMSwgMjE2LCAxOTcsIDI0OSwgCisgICAgMTQxLCAyNDEsIDIyNCwgMjQxLCAxOTMsIDMxLCAyMTYsIDE5NywgMjIzLCAxMjMsIDI0NSwgMjI0LCAyNDEsIDE5MywgMzEsIAorICAgIDI0NywgMjMyLCAyNTMsIDIwOCwgMjE2LCAxOTcsIDI1MiwgNTcsIDI0MSwgMTkzLCAzMSwgMjEwLCAyMjMsIDI0NCwgMzksIAorICAgIDI0MSwgMTkzLCAzMSwgMjEyLCA1OSwgMjQxLCAxOTMsIDMxLCAyNDksIDIwNCwgMjQxLCAxOTMsIDMxLCAyMTYsIDE5NywgCisgICAgMjU0LCA0LCAyNDEsIDE5MywgMzEsIDI0MSwgNjEsIDIxNiwgMzksIDI0MSwgMTkzLCAzMSwgNCwgMjE3LCA2MiwgMjQxLCAKKyAgICAxOTMsIDMxLCAyMTUsIDIzOCwgMjQxLCAxOTMsIDMxLCAyMjUsIDIyMCwgMjQxLCAxOTMsIDMxLCAyMTgsIDE1OSwgMjQxLCAKKyAgICAxOTMsIDMxLCAyNDQsIDE0MCwgMjQxLCAxOTMsIDMxLCAyNDIsIDEzMywgMjI0LCAyNDEsIDI0MSwgMTkzLCAzMSwgMjMwLCAKKyAgICAxNTYsIDI0MSwgMTkzLCAzMSwgMjQ1LCAxMjcsIDI0MSwgMTkzLCAzMSwgMjQ0LCA0MCwgMjQxLCAxOTMsIDMxLCAyMTEsIAorICAgIDIwNywgMjI2LCAxOTgsIDIxNiwgMTk3LCAyNDgsIDg3LCAyNDEsIDE5MywgMzEsIDI1NCwgNTIsIDI0MSwgMTkzLCAzMSwgCisgICAgMjQ5LCAxODYsIDI0MSwgMTkzLCAzMSwgMjUxLCAyMjgsIDIxNiwgMTM5LCAyNDEsIDE5MywgMzEsIDI0MiwgMTUwLCAyNDEsIAorICAgIDE5MywgMzEsIDIxOCwgMjQ2LCAyNTQsIDcxLCAyNDEsIDE5MywgMzEsIDIyMywgNTQsIDI0MSwgMTkzLCAzMSwgMjM1LCAKKyAgICAyMjEsIDI0MSwgMTkzLCAzMSwgMjQyLCAxMzMsIDIxNywgNjIsIDI0MSwgMTkzLCAzMSwgMjMwLCAxMTIsIDI0OSwgMTYwLCAKKyAgICAyNDEsIDE5MywgMzEsIDI0MiwgMTMzLCAyMjQsIDE5OCwgMjQxLCAxOTMsIDMxLCAyMTYsIDE5NywgMjU1LCAxOSwgMjEyLCAKKyAgICA0MCwgMjQxLCAxOTMsIDMxLCAyMTYsIDE5NywgMjUwLCA5LCAyNDQsIDk3LCAyNDEsIDE5MywgMzEsIDIzNSwgMjM0LCAyNDEsIAorICAgIDE5MywgMzEsIDI0NiwgNTgsIDI0MSwgMTkzLCAzMSwgMjIzLCA1NywgMjQxLCAxOTMsIDMxLCAyNDIsIDEzMywgMjI0LCAKKyAgICAyMjUsIDI0MSwgMTkzLCAzMSwgMjI0LCAxNzgsIDI0MSwgMTkzLCAzMSwgMjQ4LCAxNjIsIDY0LCAyMTYsIDE5NywgMjMyLCAKKyAgICAyMzEsIDI0MSwgMTkzLCAzMSwgMjE2LCAxOTcsIDI0NCwgMTc1LCAyNDEsIDE5MywgMzEsIDIyNiwgMTY0LCAyNDEsIDE5MywgCisgICAgMzEsIDIyNiwgMjQ1LCAyNDEsIDE5MywgMzEsIDI0OCwgNjAsIDI0MSwgMTkzLCAzMSwgMjQ4LCA4MCwgMjQxLCAxOTMsIDMxLCAKKyAgICAyMzUsIDI0OCwgMjQxLCAxOTMsIDMxLCAyNTEsIDE1MCwgMjQxLCAxOTMsIDMxLCAyNDksIDIyMiwgMjE2LCA0MywgMjMxLCAKKyAgICA3NywgMjQxLCAxOTMsIDMxLCAyNDMsIDg4LCAyMTYsIDM5LCAyNDEsIDE5MywgMzEsIDIyNCwgMTI2LCAyMTQsIDE1NCwgCisgICAgMjQxLCAxOTMsIDMxLCAyMjYsIDE2MywgMjQxLCAxOTMsIDMxLCAyMTYsIDE5NywgMjEyLCAxMywgMjQxLCAxOTMsIDMxLCAKKyAgICAyMjMsIDQ2LCAyNDEsIDE5MywgMzEsIDIxNiwgMTk3LCAyNTAsIDIyMSwgMjQxLCAxOTMsIDMxLCAyMTYsIDE5NywgMjU0LCAKKyAgICAwLCAyMTYsIDEzNCwgMjQxLCAxOTMsIDMxLCAyMTYsIDE5NywgMjM0LCAxODAsIDIxOCwgMTM1LCAyMzAsIDExNiwgMjQxLCAKKyAgICAxOTMsIDMxLCAyNDgsIDMzLCAyNDEsIDE5MywgMzEsIDIxNiwgMTk3LCAyMzEsIDE1MywgMjMxLCAyMDMsIDI0MSwgMTkzLCAKKyAgICAzMSwgMjU1LCAyMCwgMjQxLCAxOTMsIDMxLCAyMTYsIDE5NywgMjEyLCA1NCwgMjQxLCAxOTMsIDMxLCAyMTYsIDE5NywgCisgICAgMjQzLCA0OCwgMjExLCAyMzksIDI0MSwgMTkzLCAzMSwgMjE2LCAxOTcsIDIzNSwgNTMsIDIzMywgMTA4LCAyNDEsIDE5MywgCisgICAgMzEsIDI0NywgMTg1LCAyNDEsIDE5MywgMzEsIDIzMiwgMjIxLCAyNDEsIDE5MywgMzEsIDIzNSwgMjI0LCAyMTUsIDE4OCwgCisgICAgMjQxLCAxOTMsIDMxLCA0LCAyMjQsIDE5OCwgMjQxLCAxOTMsIDMxLCAyNTQsIDIxOCwgMjQ5LCAyMTMsIDI0MSwgMTkzLCAKKyAgICAzMSwgMjUyLCA2MCwgMjQ5LCAyMTMsIDgsIDMsIDIzNSwgMTYxLCA4LCAzLCAyMzUsIDE1NCwgOCwgMywgNzMsIDgsIDMsIAorICAgIDIzNSwgMTgzLCA4LCAzLCAyMzYsIDU5LCA4LCAzLCAyMzYsIDQyLCA4LCAzLCAyMzYsIDYxLCA4LCAzLCAyMzYsIDYwLCA4LCAKKyAgICAzLCAyNTMsIDIwNywgOCwgMywgMjUzLCAxNzAsIDgsIDMsIDYxLCA4LCAzLCAyNTQsIDczLCA4LCAzLCAyMTQsIDE2NCwgOCwgCisgICAgMywgMjE0LCAxNjcsIDgsIDMsIDIxNCwgMTY1LCA4LCAzLCAyMjYsIDE0MSwgOCwgMywgMjI2LCAxMTUsIDgsIDMsIDc2LCA4LCAKKyAgICAzLCAyMjYsIDE3NiwgOCwgMywgMjQ1LCAzNiwgOCwgMywgNzUsIDgsIDMsIDIxMSwgMTk1LCA4LCAzLCAyNTEsIDIyOSwgOCwgCisgICAgMywgMjUxLCAyMjYsIDgsIDMsIDI1MiwgNywgOCwgMywgMjUxLCAyMzksIDgsIDMsIDI1MSwgMjUyLCA4LCAzLCAyNTEsIAorICAgIDI1MSwgOCwgMywgMjUxLCAyNTQsIDgsIDMsIDI1MSwgMjUzLCA4LCAzLCAyNTIsIDEyMiwgOCwgMywgMjUyLCAxMTQsIDgsIAorICAgIDMsIDI1MiwgMTkyLCA4LCAzLCAyNTIsIDE0MywgOCwgMywgMjUxLCAxMDIsIDgsIDMsIDI1MSwgMTA2LCA4LCAzLCAyNTEsIAorICAgIDEwMywgOCwgMywgMjUxLCAxODAsIDgsIDMsIDI1MSwgMTY0LCA4LCAzLCAyNTEsIDIwNiwgOCwgMywgMjUxLCAxODYsIDgsIAorICAgIDMsIDI1MiwgMjIsIDgsIDMsIDI1MiwgNzYsIDgsIDMsIDI1MiwgMzQsIDgsIDMsIDI1MSwgODgsIDgsIDMsIDI1MSwgODUsIAorICAgIDgsIDMsIDI1MSwgMTI2LCA4LCAzLCAyNTEsIDEwMSwgOCwgMywgMjUxLCA5NSwgOCwgMywgMjUxLCA5OSwgOCwgMywgMjUxLCAKKyAgICA3MywgOCwgMywgMjUxLCA3MSwgOCwgMywgMjUxLCA3OCwgOCwgMywgMjUxLCA3NiwgOCwgMywgMjUxLCA3NCwgOCwgMywgCisgICAgMjUxLCA3NSwgOCwgMywgMjI1LCA1MCwgOCwgMywgMjI1LCA0NiwgOCwgMywgMjI1LCAxMDksIDgsIDMsIDIyNSwgNjAsIDgsIAorICAgIDMsIDIyNSwgNzYsIDgsIDMsIDIyNSwgMTAzLCA4LCAzLCAyMjUsIDk5LCA4LCAzLCAyMjUsIDI0MSwgOCwgMywgMjI1LCAKKyAgICAyMzEsIDgsIDMsIDE5MCwgOCwgMywgMjI2LCAyMiwgOCwgMywgMjI0LCAxMzYsIDgsIDMsIDIyNCwgMTM4LCA4LCAzLCAyMjQsIAorICAgIDEzNywgOCwgMywgMjI0LCAyMzQsIDgsIDMsIDIyNCwgMjIzLCA4LCAzLCAyMjUsIDE3LCA4LCAzLCAyMjQsIDI0NiwgOCwgMywgCisgICAgMjI0LCAxMjIsIDgsIDMsIDIyNCwgMTE4LCA4LCAzLCAyMjQsIDE1MSwgOCwgMywgMjI0LCAxMzUsIDgsIDMsIDIyNCwgMTI3LCAKKyAgICA4LCAzLCAyMjQsIDEzMywgOCwgMywgMjI0LCAxMDEsIDgsIDMsIDIyNCwgMTAwLCA4LCAzLCAyMjQsIDEwNSwgOCwgMywgCisgICAgMjI0LCAxMDQsIDgsIDMsIDIyNCwgMTAyLCA4LCAzLCAyMjQsIDEwMywgOCwgMywgMjUyLCA5NywgOCwgMywgMjUyLCA5NiwgCisgICAgOCwgMywgMjUyLCAxMDMsIDgsIDMsIDI1MiwgOTgsIDgsIDMsIDI1MiwgMTAwLCA4LCAzLCAyNTIsIDk5LCA4LCAzLCAyNTIsIAorICAgIDEwMiwgOCwgMywgMjUyLCAxMDEsIDgsIDMsIDI1MiwgMTA5LCA4LCAzLCAyNTIsIDEwOCwgOCwgMywgMjUyLCAxMTIsIDgsIAorICAgIDMsIDI1MiwgMTEwLCA4LCAzLCAyNTIsIDg4LCA4LCAzLCAyNTIsIDkwLCA4LCAzLCAyNTIsIDg5LCA4LCAzLCAyNTIsIDkzLCAKKyAgICA4LCAzLCAyNTIsIDkyLCA4LCAzLCAyNTIsIDk1LCA4LCAzLCAyNTIsIDk0LCA4LCAzLCAyNTIsIDEwNCwgOCwgMywgMjUyLCAKKyAgICAxMDcsIDgsIDMsIDI1MiwgMTA1LCA4LCAzLCAyNTIsIDg0LCA4LCAzLCAyNTIsIDgzLCA4LCAzLCAyNTIsIDkxLCA4LCAzLCAKKyAgICAyNTIsIDg3LCA4LCAzLCAyNTIsIDg1LCA4LCAzLCAyNTIsIDg2LCA4LCAzLCAyNTIsIDgwLCA4LCAzLCAyNTIsIDc5LCA4LCAKKyAgICAzLCAyNTIsIDgyLCA4LCAzLCAyNTIsIDgxLCA4LCAzLCAyMjksIDE3MCwgOCwgMywgMjI5LCAxNjksIDgsIDMsIDIyOSwgCisgICAgMTc1LCA4LCAzLCAyMjksIDE3MSwgOCwgMywgMjI5LCAxNzIsIDgsIDMsIDIyOSwgMTc0LCA4LCAzLCAyMjksIDE3MywgOCwgCisgICAgMywgMjI5LCAxNzgsIDgsIDMsIDIyOSwgMTc3LCA4LCAzLCAyMjksIDE4MCwgOCwgMywgMjI5LCAxNzksIDgsIDMsIDIyOSwgCisgICAgMTY2LCA4LCAzLCAyMjksIDE2NSwgOCwgMywgMjI5LCAxNjgsIDgsIDMsIDIyOSwgMTY3LCA4LCAzLCAyMjksIDE1OSwgOCwgCisgICAgMywgMjI5LCAxNTgsIDgsIDMsIDIyOSwgMTYzLCA4LCAzLCAyMjksIDE2MiwgOCwgMywgMjI5LCAxNjAsIDgsIDMsIDIyOSwgCisgICAgMTYxLCA4LCAzLCAyMjksIDE1MywgOCwgMywgMjI5LCAxNTIsIDgsIDMsIDIyOSwgMTU3LCA4LCAzLCAyMjksIDE1NiwgOCwgCisgICAgMywgMjI5LCAxNTQsIDgsIDMsIDIyOSwgMTU1LCA4LCAzLCAyNDEsIDExMSwgOCwgMywgMjQxLCAxMTAsIDgsIDMsIDI0MSwgCisgICAgMTE2LCA4LCAzLCAyNDEsIDExMiwgOCwgMywgMjQxLCAxMTMsIDgsIDMsIDI0MSwgMTE1LCA4LCAzLCAyNDEsIDExNCwgOCwgCisgICAgMywgMjQxLCAxMTksIDgsIDMsIDI0MSwgMTE4LCA4LCAzLCAyNDEsIDEyMSwgOCwgMywgMjQxLCAxMjAsIDgsIDMsIDI0MSwgCisgICAgMTAyLCA4LCAzLCAyNDEsIDEwNCwgOCwgMywgMjQxLCAxMDMsIDgsIDMsIDI0MSwgMTA3LCA4LCAzLCAyNDEsIDEwNiwgOCwgCisgICAgMywgMjQxLCAxMDksIDgsIDMsIDI0MSwgMTA4LCA4LCAzLCAyNDEsIDk4LCA4LCAzLCAyNDEsIDk3LCA4LCAzLCAyNDEsIAorICAgIDEwNSwgOCwgMywgMjQxLCAxMDEsIDgsIDMsIDI0MSwgOTksIDgsIDMsIDI0MSwgMTAwLCA4LCAzLCAyNDEsIDkyLCA4LCAzLCAKKyAgICAyNDEsIDk2LCA4LCAzLCAyNDEsIDk1LCA4LCAzLCAyNDEsIDkzLCA4LCAzLCAyNDEsIDk0LCA4LCAzLCAyMzAsIDE3MywgOCwgCisgICAgMywgMjMwLCAxNzIsIDgsIDMsIDIzMCwgMjMxLCA4LCAzLCAyMzAsIDE3OSwgOCwgMywgMjMwLCAyMDQsIDgsIDMsIDIzMCwgCisgICAgMjIyLCA4LCAzLCAyMzAsIDIyMCwgOCwgMywgMjMxLCAxNDAsIDgsIDMsIDIzMSwgMTM1LCA4LCAzLCAxODUsIDgsIDMsIAorICAgIDIzMSwgMTczLCA4LCAzLCAyMzAsIDc1LCA4LCAzLCAyMzAsIDc0LCA4LCAzLCAyMzAsIDc4LCA4LCAzLCAyMzAsIDc2LCA4LCAKKyAgICAzLCAyMzAsIDEyMiwgOCwgMywgMjMwLCAxMDgsIDgsIDMsIDIzMCwgMTYyLCA4LCAzLCAyMzAsIDEyNywgOCwgMywgMjMxLCAKKyAgICAyNywgOCwgMywgMjMxLCA5MiwgOCwgMywgMjMwLCA1NiwgOCwgMywgMjMwLCA1MiwgOCwgMywgMjMwLCAxMDMsIDgsIDMsIAorICAgIDIzMCwgNzEsIDgsIDMsIDIzMCwgNjQsIDgsIDMsIDIzMCwgNjksIDgsIDMsIDIzMCwgMjksIDgsIDMsIDIzMCwgMjgsIDgsIAorICAgIDMsIDIzMCwgMzQsIDgsIDMsIDIzMCwgMzEsIDgsIDMsIDI0NCwgODQsIDgsIDMsIDI0NCwgNzksIDgsIDMsIDI0NCwgMTIyLCAKKyAgICA4LCAzLCAyNDQsIDk5LCA4LCAzLCAyNDQsIDE2OCwgOCwgMywgMjQ0LCAxNTksIDgsIDMsIDI0NCwgMTk3LCA4LCAzLCAyNDQsIAorICAgIDE3MSwgOCwgMywgMjQ0LCA0LCA4LCAzLCAyNDQsIDQ0LCA4LCAzLCAyNDQsIDI4LCA4LCAzLCAyNDMsIDIxOSwgOCwgMywgCisgICAgMjQzLCAyMTgsIDgsIDMsIDI0MywgMjM1LCA4LCAzLCAyNDMsIDIyNCwgOCwgMywgMjQzLCAyMjIsIDgsIDMsIDI0MywgMjIzLCAKKyAgICA4LCAzLCAyNDMsIDIwNiwgOCwgMywgMjQzLCAyMDUsIDgsIDMsIDI0MywgMjA5LCA4LCAzLCAyNDMsIDIwNywgOCwgMywgCisgICAgMjEzLCAxNDQsIDgsIDMsIDIxMywgMTM5LCA4LCAzLCAyMTMsIDE3NiwgOCwgMywgMjEzLCAxNTMsIDgsIDMsIDIxMywgMTY2LCAKKyAgICA4LCAzLCAyMTMsIDE2MywgOCwgMywgMjEzLCAxNjgsIDgsIDMsIDIxMywgMTY3LCA4LCAzLCAyMTQsIDcsIDgsIDMsIDIxNCwgCisgICAgMiwgOCwgMywgMjE0LCAyNywgOCwgMywgMjE0LCAxOCwgOCwgMywgMjEzLCAxMjUsIDgsIDMsIDIxMywgMTIxLCA4LCAzLCAKKyAgICAyMTMsIDEzOCwgOCwgMywgMjEzLCAxMjYsIDgsIDMsIDIxMywgMTc4LCA4LCAzLCAyMTMsIDI0NCwgOCwgMywgMjEyLCAxMTAsIAorICAgIDgsIDMsIDIxMiwgMTA4LCA4LCAzLCAyMTIsIDExNiwgOCwgMywgMjEyLCAxMTMsIDgsIDMsIDIxMiwgMTExLCA4LCAzLCAKKyAgICAyMTIsIDExMiwgOCwgMywgMjEyLCAxMDIsIDgsIDMsIDIxMiwgMTAxLCA4LCAzLCAyMTIsIDEwNiwgOCwgMywgMjEyLCAxMDUsIAorICAgIDgsIDMsIDIxMiwgMTAzLCA4LCAzLCAyMTIsIDEwNCwgOCwgMywgMjQ3LCAxNzksIDgsIDMsIDI0NywgMTY3LCA4LCAzLCAKKyAgICAyNDgsIDQsIDgsIDMsIDI0NywgMjA0LCA4LCAzLCAyNDcsIDIzNywgOCwgMywgMjQ3LCAyNDEsIDgsIDMsIDI0NywgMjQwLCAKKyAgICA4LCAzLCAyNDgsIDE1MywgOCwgMywgMjQ4LCAxNDgsIDgsIDMsIDI0OCwgMjIyLCA4LCAzLCAyNDgsIDE3MywgOCwgMywgCisgICAgMjQ2LCA2MywgOCwgMywgMjQ2LCA2NCwgOCwgMywgMjQ3LCAxMjEsIDgsIDMsIDI0NiwgMTAzLCA4LCAzLCAyNDcsIDE0NiwgCisgICAgOCwgMywgMjQ3LCAxMjMsIDgsIDMsIDI0OCwgMzEsIDgsIDMsIDI0OCwgOTEsIDgsIDMsIDI0OCwgNDYsIDgsIDMsIDI0NiwgCisgICAgNTQsIDgsIDMsIDI0NiwgNTIsIDgsIDMsIDI0NiwgNzksIDgsIDMsIDI0NiwgNjIsIDgsIDMsIDI0NiwgNTcsIDgsIDMsIAorICAgIDI0NiwgNjAsIDgsIDMsIDIxNiwgNjgsIDgsIDMsIDIxNiwgNjIsIDgsIDMsIDIxNiwgMTE4LCA4LCAzLCAyMTYsIDc3LCA4LCAKKyAgICAzLCAyMTYsIDExMCwgOCwgMywgMjE2LCAxMTIsIDgsIDMsIDIxNiwgMTExLCA4LCAzLCAyMTcsIDQ3LCA4LCAzLCAyMTcsIAorICAgIDM0LCA4LCAzLCAyMTcsIDEwNiwgOCwgMywgMjE3LCA1NSwgOCwgMywgMjE1LCAxMDMsIDgsIDMsIDIxNSwgMTAyLCA4LCAzLCAKKyAgICAyMTUsIDEwNSwgOCwgMywgMjE1LCAxMDQsIDgsIDMsIDIxNiwgNiwgOCwgMywgMjE2LCAyLCA4LCAzLCAxMTEsIDgsIDMsIAorICAgIDIxNiwgMTQsIDgsIDMsIDIxNiwgMjE0LCA4LCAzLCAyMTcsIDIzLCA4LCAzLCAyMTYsIDIzOCwgOCwgMywgMjE1LCA4OCwgOCwgCisgICAgMywgMjE1LCA4MywgOCwgMywgMjE1LCAxMTksIDgsIDMsIDIxNSwgMTAxLCA4LCAzLCAyMTUsIDg5LCA4LCAzLCAyMTUsIDk5LCAKKyAgICA4LCAzLCAyNDgsIDEwOCwgOCwgMywgMjQ4LCAxMDcsIDgsIDMsIDI0OCwgMTEzLCA4LCAzLCAyNDgsIDEwOSwgOCwgMywgCisgICAgMjQ4LCAxMTAsIDgsIDMsIDI0OCwgMTEyLCA4LCAzLCAyNDgsIDExMSwgOCwgMywgMjQ4LCAxMjksIDgsIDMsIDI0OCwgMTI4LCAKKyAgICA4LCAzLCAyNDgsIDEzNiwgOCwgMywgMjQ4LCAxMzAsIDgsIDMsIDI0OCwgOTgsIDgsIDMsIDI0OCwgMTAwLCA4LCAzLCAyNDgsIAorICAgIDk5LCA4LCAzLCAyNDgsIDEwMywgOCwgMywgMjQ4LCAxMDIsIDgsIDMsIDI0OCwgMTA2LCA4LCAzLCAyNDgsIDEwNCwgOCwgMywgCisgICAgMjQ4LCAxMjEsIDgsIDMsIDI0OCwgMTI0LCA4LCAzLCAyNDgsIDEyMiwgOCwgMywgMjQ4LCA5NCwgOCwgMywgMjQ4LCA5MywgCisgICAgOCwgMywgMjQ4LCAxMDEsIDgsIDMsIDI0OCwgOTcsIDgsIDMsIDI0OCwgOTUsIDgsIDMsIDI0OCwgOTYsIDgsIDMsIDIyOSwgCisgICAgMTI3LCA4LCAzLCAyMjksIDEyNiwgOCwgMywgMjI5LCAxMzQsIDgsIDMsIDIyOSwgMTI5LCA4LCAzLCAyMjksIDEzMCwgOCwgCisgICAgMywgMjI5LCAxMzEsIDgsIDMsIDIyOSwgMTQzLCA4LCAzLCAyMjksIDE0MiwgOCwgMywgMjI5LCAxNDksIDgsIDMsIDIyOSwgCisgICAgMTQ0LCA4LCAzLCAyMjksIDExOSwgOCwgMywgMjI5LCAxMTgsIDgsIDMsIDIyOSwgMTI1LCA4LCAzLCAyMjksIDEyMCwgOCwgCisgICAgMywgMjI5LCAxMzUsIDgsIDMsIDIyOSwgMTQxLCA4LCAzLCAyMjksIDEzOSwgOCwgMywgMjI5LCAxMTEsIDgsIDMsIDIyOSwgCisgICAgMTEwLCA4LCAzLCAyMjksIDExNiwgOCwgMywgMjI5LCAxMTQsIDgsIDMsIDIyOSwgMTEyLCA4LCAzLCAyMjksIDExMywgOCwgCisgICAgMywgMjQxLCA3OCwgOCwgMywgMjQxLCA3NywgOCwgMywgMjQxLCA4NCwgOCwgMywgMjQxLCA3OSwgOCwgMywgMjQxLCA4MSwgCisgICAgOCwgMywgMjQxLCA4MCwgOCwgMywgMjQxLCA4MywgOCwgMywgMjQxLCA4MiwgOCwgMywgMjQxLCA4OSwgOCwgMywgMjQxLCAKKyAgICA4OCwgOCwgMywgMjQxLCA5MSwgOCwgMywgMjQxLCA5MCwgOCwgMywgMjQxLCA3MiwgOCwgMywgMjQxLCA3MywgOCwgMywgCisgICAgMjQxLCA3NSwgOCwgMywgMjQxLCA3NCwgOCwgMywgMjQxLCA3NiwgOCwgMywgMjQxLCA4NSwgOCwgMywgMjQxLCA4NywgOCwgCisgICAgMywgMjQxLCA4NiwgOCwgMywgMjQxLCA3MSwgOCwgMywgMjI4LCAxOTAsIDgsIDMsIDIyOCwgMTg4LCA4LCAzLCAyMjgsIAorICAgIDIzNCwgOCwgMywgMjI4LCAxOTMsIDgsIDMsIDIyOCwgMjE2LCA4LCAzLCAyMjgsIDIzMCwgOCwgMywgMjI4LCAyMjksIDgsIAorICAgIDMsIDIyOSwgMTg0LCA4LCAzLCAxOTcsIDgsIDMsIDIyOSwgMTk4LCA4LCAzLCAyMjcsIDE4NywgOCwgMywgMjI3LCAxODksIAorICAgIDgsIDMsIDIyNywgMTg4LCA4LCAzLCAyMjgsIDUyLCA4LCAzLCAyMjgsIDM5LCA4LCAzLCAyMjgsIDc1LCA4LCAzLCAyMjgsIAorICAgIDYxLCA4LCAzLCAyMjksIDg0LCA4LCAzLCAyMjksIDEwOCwgOCwgMywgMjI5LCA5NSwgOCwgMywgMjI3LCAxODIsIDgsIDMsIAorICAgIDIyNywgMTc4LCA4LCAzLCAyMjcsIDIzOCwgOCwgMywgMjI3LCAxODYsIDgsIDMsIDIyNywgMTg0LCA4LCAzLCAyMjcsIDE4NSwgCisgICAgOCwgMywgMjQxLCAxNDIsIDgsIDMsIDI0MSwgMTQxLCA4LCAzLCAyNDEsIDE0NywgOCwgMywgMjQxLCAxNDMsIDgsIDMsIAorICAgIDI0MSwgMTQ0LCA4LCAzLCAyNDEsIDE0NiwgOCwgMywgMjQxLCAxNDUsIDgsIDMsIDI0MSwgMTUyLCA4LCAzLCAyNDEsIDE1MSwgCisgICAgOCwgMywgMjQxLCAxNTQsIDgsIDMsIDI0MSwgMTUzLCA4LCAzLCAyNDEsIDEzNCwgOCwgMywgMjQxLCAxMzYsIDgsIDMsIAorICAgIDI0MSwgMTM1LCA4LCAzLCAyNDEsIDEzOCwgOCwgMywgMjQxLCAxNDAsIDgsIDMsIDI0MSwgMTM5LCA4LCAzLCAyNDEsIDE0OCwgCisgICAgOCwgMywgMjQxLCAxNTAsIDgsIDMsIDI0MSwgMTQ5LCA4LCAzLCAyNDEsIDEzMCwgOCwgMywgMjQxLCAxMjksIDgsIDMsIAorICAgIDI0MSwgMTM3LCA4LCAzLCAyNDEsIDEzMywgOCwgMywgMjQxLCAxMzEsIDgsIDMsIDI0MSwgMTMyLCA4LCAzLCAyNDEsIDEyNCwgCisgICAgOCwgMywgMjQxLCAxMjMsIDgsIDMsIDI0MSwgMTI4LCA4LCAzLCAyNDEsIDEyNywgOCwgMywgMjQxLCAxMjUsIDgsIDMsIAorICAgIDI0MSwgMTI2LCA4LCAzLCAyMzIsIDE5NiwgOCwgMywgMjMyLCAxOTAsIDgsIDMsIDIzMiwgMjQyLCA4LCAzLCAyMzIsIDIwMywgCisgICAgOCwgMywgMjMyLCAyMzQsIDgsIDMsIDIzMiwgMjMzLCA4LCAzLCAyMzIsIDIzNywgOCwgMywgMjMyLCAyMzUsIDgsIDMsIAorICAgIDIzMywgODAsIDgsIDMsIDIzMywgNzAsIDgsIDMsIDIzMywgMTM2LCA4LCAzLCAyMzMsIDg5LCA4LCAzLCAyMzIsIDgwLCA4LCAKKyAgICAzLCAyMzIsIDc5LCA4LCAzLCAyMzIsIDgyLCA4LCAzLCAyMzIsIDgxLCA4LCAzLCAyMzIsIDExNywgOCwgMywgMjMyLCAxMDcsIAorICAgIDgsIDMsIDIzMiwgMTU3LCA4LCAzLCAyMzIsIDEyMSwgOCwgMywgMjMzLCAzLCA4LCAzLCAyMzMsIDU5LCA4LCAzLCAyMzMsIAorICAgIDE4LCA4LCAzLCAyMzIsIDc1LCA4LCAzLCAyMzIsIDczLCA4LCAzLCAyMzIsIDk5LCA4LCAzLCAyMzIsIDc4LCA4LCAzLCAKKyAgICAyMzIsIDc2LCA4LCAzLCAyMzIsIDc3LCA4LCAzLCAyMzIsIDU1LCA4LCAzLCAyMzIsIDU0LCA4LCAzLCAyMzIsIDYzLCA4LCAKKyAgICAzLCAyMzIsIDU4LCA4LCAzLCAyMzIsIDU2LCA4LCAzLCAyMzIsIDU3LCA4LCAzLCAyNDIsIDE5MCwgOCwgMywgMjQyLCAxODksIAorICAgIDgsIDMsIDI0MiwgMjE1LCA4LCAzLCAyNDIsIDIwMCwgOCwgMywgMjQyLCAyMDcsIDgsIDMsIDI0MiwgMjA2LCA4LCAzLCAKKyAgICAyNDIsIDIwOSwgOCwgMywgMjQyLCAyMDgsIDgsIDMsIDI0MywgOTAsIDgsIDMsIDI0MywgODUsIDgsIDMsIDI0MywgMTM2LCAKKyAgICA4LCAzLCAyNDMsIDEwMCwgOCwgMywgMjQyLCA5MiwgOCwgMywgMjQyLCA5MSwgOCwgMywgMjQyLCA5NCwgOCwgMywgMjQyLCAKKyAgICA5MywgOCwgMywgMjQyLCAxNTUsIDgsIDMsIDI0MiwgMTUzLCA4LCAzLCAyNDIsIDE3NSwgOCwgMywgMjQyLCAxNjMsIDgsIDMsIAorICAgIDI0MywgMzQsIDgsIDMsIDI0MywgMzIsIDgsIDMsIDI0MywgNjMsIDgsIDMsIDI0MywgNDUsIDgsIDMsIDI0MiwgODIsIDgsIAorICAgIDMsIDI0MiwgODEsIDgsIDMsIDI0MiwgMTE0LCA4LCAzLCAyNDIsIDkwLCA4LCAzLCAyNDIsIDgzLCA4LCAzLCAyNDIsIDg5LCAKKyAgICA4LCAzLCAyMzQsIDYyLCA4LCAzLCAyMzQsIDYxLCA4LCAzLCAyMzQsIDkzLCA4LCAzLCAyMzQsIDc2LCA4LCAzLCAyMzQsIAorICAgIDg2LCA4LCAzLCAyMzQsIDg5LCA4LCAzLCAyMzQsIDg3LCA4LCAzLCAyMzQsIDIwMywgOCwgMywgMjM0LCAxOTEsIDgsIDMsIAorICAgIDE3NiwgOCwgMywgMjM0LCAyMjksIDgsIDMsIDIzMywgMjAxLCA4LCAzLCAyMzMsIDIwNiwgOCwgMywgMjMzLCAyMDMsIDgsIAorICAgIDMsIDIzNCwgMSwgOCwgMywgMjMzLCAyNTMsIDgsIDMsIDIzNCwgMjksIDgsIDMsIDIzNCwgOCwgOCwgMywgMjM0LCAxNTcsIAorICAgIDgsIDMsIDIzNCwgMTQxLCA4LCAzLCAyMzQsIDE4MywgOCwgMywgMjM0LCAxNjAsIDgsIDMsIDIzMywgMTkwLCA4LCAzLCAKKyAgICAyMzMsIDE4NywgOCwgMywgMjMzLCAyMTgsIDgsIDMsIDIzMywgMjAwLCA4LCAzLCAyMzMsIDE5MywgOCwgMywgMjMzLCAxOTcsIAorICAgIDgsIDMsIDI0MywgMTYsIDgsIDMsIDI0MywgMTUsIDgsIDMsIDI0MywgMjAsIDgsIDMsIDI0MywgMTcsIDgsIDMsIDI0MywgCisgICAgMTksIDgsIDMsIDI0MywgMTgsIDgsIDMsIDI0MywgMjcsIDgsIDMsIDI0MywgMjYsIDgsIDMsIDI0MywgMzAsIDgsIDMsIAorICAgIDI0MywgMjgsIDgsIDMsIDI0MywgNywgOCwgMywgMjQzLCA2LCA4LCAzLCAyNDMsIDksIDgsIDMsIDI0MywgOCwgOCwgMywgCisgICAgMjQzLCAxMiwgOCwgMywgMjQzLCAxMSwgOCwgMywgMjQzLCAxNCwgOCwgMywgMjQzLCAxMywgOCwgMywgMjQzLCAyMiwgOCwgCisgICAgMywgMjQzLCAyMSwgOCwgMywgMjQzLCAyNSwgOCwgMywgMjQzLCAyMywgOCwgMywgMjQzLCAyLCA4LCAzLCAyNDMsIDEsIDgsIAorICAgIDMsIDI0MywgMTAsIDgsIDMsIDI0MywgNSwgOCwgMywgMjQzLCAzLCA4LCAzLCAyNDMsIDQsIDgsIDMsIDIzMCwgMjUwLCA4LCAKKyAgICAzLCAyMzAsIDI1MSwgOCwgMywgMjMxLCAxMywgOCwgMywgMjMxLCAxMiwgOCwgMywgMjMxLCAxNSwgOCwgMywgMjMxLCAxNCwgCisgICAgOCwgMywgMjMwLCAyNDEsIDgsIDMsIDIzMCwgMjQzLCA4LCAzLCAyMzAsIDI0MiwgOCwgMywgMjMwLCAyNDYsIDgsIDMsIAorICAgIDIzMCwgMjQ1LCA4LCAzLCAyMzAsIDI0OCwgOCwgMywgMjMwLCAyNDcsIDgsIDMsIDIzMCwgMjUyLCA4LCAzLCAyMzAsIDI1NCwgCisgICAgOCwgMywgMjMwLCAyNTMsIDgsIDMsIDIzMCwgMjM3LCA4LCAzLCAyMzAsIDIzNiwgOCwgMywgMjMwLCAyNDQsIDgsIDMsIAorICAgIDIzMCwgMjQwLCA4LCAzLCAyMzAsIDIzOCwgOCwgMywgMjMwLCAyMzksIDgsIDMsIDI0MCwgMTgxLCA4LCAzLCAyNDAsIDE4MCwgCisgICAgOCwgMywgMjQwLCAxODcsIDgsIDMsIDI0MCwgMTgyLCA4LCAzLCAyNDAsIDE4NCwgOCwgMywgMjQwLCAxODMsIDgsIDMsIAorICAgIDI0MCwgMTg2LCA4LCAzLCAyNDAsIDE4NSwgOCwgMywgMjQwLCAxOTIsIDgsIDMsIDI0MCwgMTkxLCA4LCAzLCAyNDAsIDE5NCwgCisgICAgOCwgMywgMjQwLCAxOTMsIDgsIDMsIDI0MCwgMTczLCA4LCAzLCAyNDAsIDE3MiwgOCwgMywgMjQwLCAxNzUsIDgsIDMsIAorICAgIDI0MCwgMTc0LCA4LCAzLCAyNDAsIDE3NywgOCwgMywgMjQwLCAxNzYsIDgsIDMsIDI0MCwgMTc5LCA4LCAzLCAyNDAsIDE3OCwgCisgICAgOCwgMywgMjQwLCAxODgsIDgsIDMsIDI0MCwgMTkwLCA4LCAzLCAyNDAsIDE4OSwgOCwgMywgMjI5LCAyNSwgOCwgMywgMjI5LCAKKyAgICAyNywgOCwgMywgMjI5LCAyNiwgOCwgMywgMjI5LCA2OCwgOCwgMywgMjI5LCA2NiwgOCwgMywgMjI5LCA3OCwgOCwgMywgCisgICAgMjI5LCA3MSwgOCwgMywgMjI4LCAyNDQsIDgsIDMsIDIyOCwgMjQzLCA4LCAzLCAyMjgsIDI0NSwgOCwgMywgMjI4LCAyNTMsIAorICAgIDgsIDMsIDIyOCwgMjUwLCA4LCAzLCAyMjksIDUsIDgsIDMsIDIyOCwgMjU1LCA4LCAzLCAyMjksIDU5LCA4LCAzLCAyMjksIAorICAgIDY1LCA4LCAzLCAyMjksIDYxLCA4LCAzLCAyNDEsIDE1NywgOCwgMywgMjQxLCAxNjcsIDgsIDMsIDI0MSwgMTc2LCA4LCAzLCAKKyAgICAyNDEsIDI1MiwgOCwgMywgMjQxLCAyNDQsIDgsIDMsIDE2MiwgOCwgMywgMjQyLCA3LCA4LCAzLCAyNDAsIDIwNywgOCwgMywgCisgICAgMjQwLCAyMDYsIDgsIDMsIDI0MCwgMjA5LCA4LCAzLCAyNDAsIDIwOCwgOCwgMywgMjQwLCAyNDMsIDgsIDMsIDI0MCwgMjM0LCAKKyAgICA4LCAzLCAyNDEsIDY5LCA4LCAzLCAyNDEsIDQ4LCA4LCAzLCAyNDEsIDE5NSwgOCwgMywgMjQxLCAyMzksIDgsIDMsIDI0MSwgCisgICAgMjA3LCA4LCAzLCAyMTIsIDQzLCA4LCAzLCAyMTIsIDI4LCA4LCAzLCAyMTIsIDY1LCA4LCAzLCAyMTIsIDUxLCA4LCAzLCAKKyAgICAyMTEsIDE4NSwgOCwgMywgMjExLCAxODcsIDgsIDMsIDIxMSwgMTg2LCA4LCAzLCAyMTEsIDIwMywgOCwgMywgMjExLCAyMjcsIAorICAgIDgsIDMsIDIxMSwgMjEwLCA4LCAzLCAyMTIsIDUsIDgsIDMsIDIxMiwgMjIsIDgsIDMsIDIxMiwgMTAsIDgsIDMsIDIxMCwgCisgICAgMzAsIDgsIDMsIDIxMCwgMjksIDgsIDMsIDIxMCwgNDQsIDgsIDMsIDIxMCwgMzIsIDgsIDMsIDIxMCwgMzcsIDgsIDMsIAorICAgIDIxMCwgMzksIDgsIDMsIDIxMCwgMzgsIDgsIDMsIDIxMCwgMTAyLCA4LCAzLCAyMTAsIDk5LCA4LCAzLCAyMTAsIDExNiwgOCwgCisgICAgMywgMjEwLCAxMDUsIDgsIDMsIDIxMCwgNiwgOCwgMywgMjEwLCA4LCA4LCAzLCAyMTAsIDcsIDgsIDMsIDIxMCwgMTksIDgsIAorICAgIDMsIDIxMCwgMTgsIDgsIDMsIDIxMCwgMjMsIDgsIDMsIDIxMCwgMjAsIDgsIDMsIDIxMCwgODQsIDgsIDMsIDIxMCwgOTQsIAorICAgIDgsIDMsIDIxMCwgODgsIDgsIDMsIDIxMCwgMiwgOCwgMywgMjEwLCAxLCA4LCAzLCAyMTAsIDEzLCA4LCAzLCAyMTAsIDUsIAorICAgIDgsIDMsIDIxMCwgMywgOCwgMywgMjEwLCA0LCA4LCAzLCAyMDksIDI0NSwgOCwgMywgMjA5LCAyNDQsIDgsIDMsIDIwOSwgCisgICAgMjUwLCA4LCAzLCAyMDksIDI0OCwgOCwgMywgMjA5LCAyNDYsIDgsIDMsIDIwOSwgMjQ3LCA4LCAzLCAyNTAsIDI5LCA4LCAzLCAKKyAgICAyNTAsIDI1LCA4LCAzLCAyNTAsIDUyLCA4LCAzLCAyNTAsIDM4LCA4LCAzLCAyNTAsIDQ5LCA4LCAzLCAyNTAsIDQzLCA4LCAKKyAgICAzLCAyNTAsIDUxLCA4LCAzLCAyNTAsIDUwLCA4LCAzLCAyNTAsIDIyNSwgOCwgMywgMjUwLCAyMTgsIDgsIDMsIDI1MSwgMzQsIAorICAgIDgsIDMsIDI1MCwgMjUyLCA4LCAzLCAyNDksIDEwNSwgOCwgMywgMjQ5LCAxMDcsIDgsIDMsIDI0OSwgMTA2LCA4LCAzLCAKKyAgICAyNDksIDE1NCwgOCwgMywgMjQ5LCAxNDUsIDgsIDMsIDI0OSwgMjM5LCA4LCAzLCAyNDksIDE3MCwgOCwgMywgMjUwLCAxNjEsIAorICAgIDgsIDMsIDI1MCwgMTkxLCA4LCAzLCAyNTAsIDE2NiwgOCwgMywgMjQ5LCA4NSwgOCwgMywgMjQ5LCA4MywgOCwgMywgMjQ5LCAKKyAgICAxMTMsIDgsIDMsIDI0OSwgMTAzLCA4LCAzLCAyNDksIDkwLCA4LCAzLCAyNDksIDEwMiwgOCwgMywgMjQ5LCA2NCwgOCwgMywgCisgICAgMjQ5LCA2MywgOCwgMywgMjQ5LCA3NCwgOCwgMywgMjQ5LCA3MCwgOCwgMywgMjQ5LCA2NSwgOCwgMywgMjQ5LCA2NywgOCwgCisgICAgMywgMjA5LCAyMjgsIDgsIDMsIDIwOSwgMjI3LCA4LCAzLCAyMDksIDIzNCwgOCwgMywgMjA5LCAyMjksIDgsIDMsIDIwOSwgCisgICAgMjMxLCA4LCAzLCAyMDksIDIzMCwgOCwgMywgMjA5LCAyMzMsIDgsIDMsIDIwOSwgMjMyLCA4LCAzLCAyMDksIDI0MCwgOCwgCisgICAgMywgMjA5LCAyMzksIDgsIDMsIDIwOSwgMjQzLCA4LCAzLCAyMDksIDI0MSwgOCwgMywgMjA5LCAyMjQsIDgsIDMsIDIwOSwgCisgICAgMjI2LCA4LCAzLCAyMDksIDIyNSwgOCwgMywgMjA5LCAyMzUsIDgsIDMsIDIwOSwgMjM4LCA4LCAzLCAyMDksIDIzNiwgOCwgCisgICAgMywgMjA5LCAyMTcsIDgsIDMsIDIwOSwgMjIxLCA4LCAzLCAyMDksIDIyMCwgOCwgMywgMjA5LCAyMTgsIDgsIDMsIDIwOSwgCisgICAgMjE5LCA4LCAzLCAyMDksIDIxMSwgOCwgMywgMjA5LCAyMTAsIDgsIDMsIDIwOSwgMjE2LCA4LCAzLCAyMDksIDIxNCwgOCwgCisgICAgMywgMjA5LCAyMTIsIDgsIDMsIDIwOSwgMjEzLCA4LCAzLCAyMjcsIDEwNSwgOCwgMywgMjI3LCAxMDQsIDgsIDMsIDIyNywgCisgICAgMTEwLCA4LCAzLCAyMjcsIDEwNiwgOCwgMywgMjI3LCAxMDcsIDgsIDMsIDIyNywgMTA5LCA4LCAzLCAyMjcsIDEwOCwgOCwgCisgICAgMywgMjI3LCAxMTUsIDgsIDMsIDIyNywgMTE0LCA4LCAzLCAyMjcsIDExOCwgOCwgMywgMjI3LCAxMTcsIDgsIDMsIDIyNywgCisgICAgOTgsIDgsIDMsIDIyNywgOTksIDgsIDMsIDIyNywgMTAyLCA4LCAzLCAyMjcsIDEwMywgOCwgMywgMjI3LCAxMTEsIDgsIDMsIAorICAgIDIyNywgMTEzLCA4LCAzLCAyMjcsIDkzLCA4LCAzLCAyMjcsIDEwMSwgOCwgMywgMjI3LCA5NywgOCwgMywgMjI3LCA5NCwgOCwgCisgICAgMywgMjI3LCA5NSwgOCwgMywgMjI3LCA4OCwgOCwgMywgMjI3LCA4NywgOCwgMywgMjI3LCA5MiwgOCwgMywgMjI3LCA5MSwgCisgICAgOCwgMywgMjI3LCA4OSwgOCwgMywgMjI3LCA5MCwgOCwgMywgMjE5LCAxMjgsIDgsIDMsIDE5NCwgOCwgMywgMjE5LCAxOTIsIAorICAgIDgsIDMsIDIxOSwgMTMxLCA4LCAzLCAyMTksIDE4NCwgOCwgMywgMjE5LCAxODcsIDgsIDMsIDIxOSwgMTg1LCA4LCAzLCAKKyAgICAyMjEsIDIyNywgOCwgMywgMjIxLCAyMTUsIDgsIDMsIDIwNiwgOCwgMywgMjIxLCAyMzUsIDgsIDMsIDIxOCwgMjksIDgsIDMsIAorICAgIDIxOCwgMzEsIDgsIDMsIDIxOCwgMzAsIDgsIDMsIDIxOSwgMzUsIDgsIDMsIDIxOSwgMjQsIDgsIDMsIDIxOSwgNTksIDgsIAorICAgIDMsIDIxOSwgMzksIDgsIDMsIDIyMCwgMTE1LCA4LCAzLCAyMjEsIDE4MiwgOCwgMywgMjIwLCAxNDAsIDgsIDMsIDIxOCwgNiwgCisgICAgOCwgMywgMjE4LCA0LCA4LCAzLCAyMTgsIDg0LCA4LCAzLCAyMTgsIDI4LCA4LCAzLCAyMTgsIDEwLCA4LCAzLCAyMTgsIDE4LCAKKyAgICA4LCAzLCAyMTcsIDE2NywgOCwgMywgMjE3LCAxNjYsIDgsIDMsIDIxNywgMjMzLCA4LCAzLCAyMTcsIDE3NCwgOCwgMywgCisgICAgMjE3LCAxNjksIDgsIDMsIDIxNywgMTczLCA4LCAzLCAyMTgsIDE4NywgOCwgMywgMjE4LCAxODYsIDgsIDMsIDIxOCwgMTkzLCAKKyAgICA4LCAzLCAyMTgsIDE4OCwgOCwgMywgMjE4LCAxOTAsIDgsIDMsIDIxOCwgMTkyLCA4LCAzLCAyMTgsIDE5MSwgOCwgMywgCisgICAgMjE4LCAyMDEsIDgsIDMsIDIxOCwgMTk5LCA4LCAzLCAyMTgsIDIyNCwgOCwgMywgMjE4LCAyMDIsIDgsIDMsIDIxOCwgMTgyLCAKKyAgICA4LCAzLCAyMTgsIDE4MSwgOCwgMywgMjE4LCAxODUsIDgsIDMsIDIxOCwgMTgzLCA4LCAzLCAyMTgsIDE5NSwgOCwgMywgCisgICAgMjE4LCAxOTgsIDgsIDMsIDIxOCwgMTk2LCA4LCAzLCAyMTgsIDE3OCwgOCwgMywgMjE4LCAxNzYsIDgsIDMsIDIxOCwgMTgwLCAKKyAgICA4LCAzLCAyMTgsIDE3OSwgOCwgMywgMjE4LCAxNzEsIDgsIDMsIDIxOCwgMTcwLCA4LCAzLCAyMTgsIDE3NSwgOCwgMywgCisgICAgMjE4LCAxNzQsIDgsIDMsIDIxOCwgMTcyLCA4LCAzLCAyMTgsIDE3MywgOCwgMywgMjEwLCA3NywgOCwgMywgMjEwLCA3NiwgCisgICAgOCwgMywgMjEwLCA4MiwgOCwgMywgMjEwLCA3OSwgOCwgMywgMjEwLCA1OSwgOCwgMywgMjEwLCA2MSwgOCwgMywgMjEwLCAKKyAgICA2MCwgOCwgMywgMjEwLCA2NCwgOCwgMywgMjEwLCA2MywgOCwgMywgMjEwLCA2NywgOCwgMywgMjEwLCA2NSwgOCwgMywgCisgICAgMjEwLCA3MSwgOCwgMywgMjEwLCA3MCwgOCwgMywgMjEwLCA3NCwgOCwgMywgMjEwLCA3MiwgOCwgMywgMjEwLCA1NSwgOCwgCisgICAgMywgMjEwLCA1NCwgOCwgMywgMjEwLCA2MiwgOCwgMywgMjEwLCA1OCwgOCwgMywgMjEwLCA1NiwgOCwgMywgMjEwLCA1NywgCisgICAgOCwgMywgMjEwLCA0NywgOCwgMywgMjEwLCA0NiwgOCwgMywgMjEwLCA1MSwgOCwgMywgMjEwLCA1MCwgOCwgMywgMjEwLCAKKyAgICA0OCwgOCwgMywgMjEwLCA0OSwgOCwgMywgMjUwLCAxMzcsIDgsIDMsIDI1MCwgMTM0LCA4LCAzLCAyNTAsIDE1OCwgOCwgMywgCisgICAgMjUwLCAxNDUsIDgsIDMsIDI1MCwgNjYsIDgsIDMsIDI1MCwgNjUsIDgsIDMsIDI1MCwgNjgsIDgsIDMsIDI1MCwgNjcsIDgsIAorICAgIDMsIDI1MCwgODAsIDgsIDMsIDI1MCwgNzksIDgsIDMsIDI1MCwgODcsIDgsIDMsIDI1MCwgODIsIDgsIDMsIDI1MCwgMTE2LCAKKyAgICA4LCAzLCAyNTAsIDExNCwgOCwgMywgMjUwLCAxMzIsIDgsIDMsIDI1MCwgMTIyLCA4LCAzLCAyNTAsIDYwLCA4LCAzLCAyNTAsIAorICAgIDcwLCA4LCAzLCAyNTAsIDY0LCA4LCAzLCAyNTAsIDYxLCA4LCAzLCAyNTAsIDYzLCA4LCAzLCAyNTAsIDU0LCA4LCAzLCAKKyAgICAyNTAsIDUzLCA4LCAzLCAyNTAsIDU4LCA4LCAzLCAyNTAsIDU3LCA4LCAzLCAyNTAsIDU1LCA4LCAzLCAyNTAsIDU2LCA4LCAKKyAgICAzLCAyMjIsIDE3NiwgOCwgMywgMjIyLCAxODAsIDgsIDMsIDIyMiwgMTU5LCA4LCAzLCAyMjIsIDE2MCwgOCwgMywgMjIyLCAKKyAgICAxNjMsIDgsIDMsIDIyMiwgMTYyLCA4LCAzLCAyMjIsIDE2NiwgOCwgMywgMjIyLCAxNjQsIDgsIDMsIDIyMiwgMTcwLCA4LCAKKyAgICAzLCAyMjIsIDE2OSwgOCwgMywgMjIyLCAxNzUsIDgsIDMsIDIyMiwgMTcxLCA4LCAzLCAyMjIsIDE1NSwgOCwgMywgMjIyLCAKKyAgICAxNTMsIDgsIDMsIDIyMiwgMTYxLCA4LCAzLCAyMjIsIDE1OCwgOCwgMywgMjIyLCAxNTYsIDgsIDMsIDIyMiwgMTU3LCA4LCAKKyAgICAzLCAyMjIsIDE0OCwgOCwgMywgMjIyLCAxNDcsIDgsIDMsIDIyMiwgMTUyLCA4LCAzLCAyMjIsIDE1MSwgOCwgMywgMjIyLCAKKyAgICAxNDksIDgsIDMsIDIyMiwgMTUwLCA4LCAzLCAyMjgsIDM1LCA4LCAzLCAyMjgsIDM0LCA4LCAzLCAyMjgsIDM3LCA4LCAzLCAKKyAgICAyMjgsIDM2LCA4LCAzLCAyMjgsIDI3LCA4LCAzLCAyMjgsIDI5LCA4LCAzLCAyMjgsIDI4LCA4LCAzLCAyMjgsIDMxLCA4LCAKKyAgICAzLCAyMjgsIDMwLCA4LCAzLCAyMjgsIDMzLCA4LCAzLCAyMjgsIDMyLCA4LCAzLCAyMjgsIDIyLCA4LCAzLCAyMjgsIDIxLCAKKyAgICA4LCAzLCAyMjgsIDI2LCA4LCAzLCAyMjgsIDI1LCA4LCAzLCAyMjgsIDIzLCA4LCAzLCAyMjgsIDI0LCA4LCAzLCAyMjgsIAorICAgIDE2LCA4LCAzLCAyMjgsIDE1LCA4LCAzLCAyMjgsIDIwLCA4LCAzLCAyMjgsIDE5LCA4LCAzLCAyMjgsIDE3LCA4LCAzLCAKKyAgICAyMjgsIDE4LCA4LCAzLCAyMjAsIDczLCA4LCAzLCAyMjAsIDY4LCA4LCAzLCAyMjAsIDEwMywgOCwgMywgMjIwLCA4NCwgOCwgCisgICAgMywgMjE5LCAyMTYsIDgsIDMsIDIxOSwgMjE4LCA4LCAzLCAyMTksIDIxNywgOCwgMywgMjE5LCAyMzcsIDgsIDMsIDIxOSwgCisgICAgMjM0LCA4LCAzLCAyMjAsIDgsIDgsIDMsIDIxOSwgMjU1LCA4LCAzLCAyMjAsIDQzLCA4LCAzLCAyMjAsIDM2LCA4LCAzLCAKKyAgICAyMjAsIDY0LCA4LCAzLCAyMjAsIDUxLCA4LCAzLCAyMTksIDIxMiwgOCwgMywgMjE5LCAyMTAsIDgsIDMsIDIxOSwgMjI2LCAKKyAgICA4LCAzLCAyMTksIDIxNSwgOCwgMywgMjE5LCAyMTMsIDgsIDMsIDIxOSwgMjE0LCA4LCAzLCAyMTksIDE5NSwgOCwgMywgCisgICAgMjE5LCAxOTQsIDgsIDMsIDIxOSwgMjAxLCA4LCAzLCAyMTksIDE5OCwgOCwgMywgMjE5LCAxOTYsIDgsIDMsIDIxOSwgMTk3LCAKKyAgICA4LCAzLCAyMjMsIDE0MiwgOCwgMywgMjIzLCAxMzYsIDgsIDMsIDIwNSwgOCwgMywgMjIzLCAxNDgsIDgsIDMsIDIyMiwgCisgICAgMTIxLCA4LCAzLCAyMjIsIDEyMywgOCwgMywgMjIyLCAxMjIsIDgsIDMsIDIyMiwgMTg5LCA4LCAzLCAyMjIsIDE4MiwgOCwgCisgICAgMywgMjIyLCAyMTIsIDgsIDMsIDIyMiwgMTkzLCA4LCAzLCAyMjMsIDQ0LCA4LCAzLCAyMjMsIDEyOSwgOCwgMywgMjIzLCAKKyAgICA4MiwgOCwgMywgMjIyLCAxMTQsIDgsIDMsIDIyMiwgMTExLCA4LCAzLCAyMjIsIDE0MSwgOCwgMywgMjIyLCAxMjAsIDgsIDMsIAorICAgIDIyMiwgMTE2LCA4LCAzLCAyMjIsIDExNywgOCwgMywgMjIyLCA5NiwgOCwgMywgMjIyLCA5NSwgOCwgMywgMjIyLCAxMDEsIAorICAgIDgsIDMsIDIyMiwgOTksIDgsIDMsIDIyMiwgOTcsIDgsIDMsIDIyMiwgOTgsIDgsIDMsIDIzNSwgOTksIDgsIDMsIDIzNSwgCisgICAgOTgsIDgsIDMsIDIzNSwgMTA5LCA4LCAzLCAyMzUsIDEwMCwgOCwgMywgMjM1LCAxMDUsIDgsIDMsIDIzNSwgMTA0LCA4LCAzLCAKKyAgICAyMzUsIDEwNywgOCwgMywgMjM1LCAxMDYsIDgsIDMsIDIzNSwgNDIsIDgsIDMsIDIzNSwgNDEsIDgsIDMsIDIzNSwgNDQsIDgsIAorICAgIDMsIDIzNSwgNDMsIDgsIDMsIDIzNSwgNTcsIDgsIDMsIDIzNSwgNTUsIDgsIDMsIDIzNSwgNjksIDgsIDMsIDIzNSwgNTksIAorICAgIDgsIDMsIDIzNSwgMzUsIDgsIDMsIDIzNSwgMzMsIDgsIDMsIDIzNSwgNTIsIDgsIDMsIDIzNSwgNDAsIDgsIDMsIDIzNSwgCisgICAgMzcsIDgsIDMsIDIzNSwgMzgsIDgsIDMsIDIzNSwgMjcsIDgsIDMsIDIzNSwgMjYsIDgsIDMsIDIzNSwgMzEsIDgsIDMsIAorICAgIDIzNSwgMzAsIDgsIDMsIDIzNSwgMjgsIDgsIDMsIDIzNSwgMjksIDgsIDMsIDIyNCwgNDcsIDgsIDMsIDIyNCwgNDUsIDgsIAorICAgIDMsIDIyNCwgNTQsIDgsIDMsIDIyNCwgNDgsIDgsIDMsIDIyNCwgNTEsIDgsIDMsIDIyNCwgNTAsIDgsIDMsIDIyNCwgNTMsIAorICAgIDgsIDMsIDIyNCwgNTIsIDgsIDMsIDIyNCwgMCwgOCwgMywgMjIzLCAyNTMsIDgsIDMsIDIyNCwgMiwgOCwgMywgMjI0LCAxLCAKKyAgICA4LCAzLCAyMjQsIDM0LCA4LCAzLCAyMjQsIDMzLCA4LCAzLCAyMjQsIDQzLCA4LCAzLCAyMjQsIDM3LCA4LCAzLCAyMjMsIAorICAgIDI0OCwgOCwgMywgMjIzLCAyNDQsIDgsIDMsIDIyNCwgMzEsIDgsIDMsIDIyMywgMjUyLCA4LCAzLCAyMjMsIDI1MCwgOCwgMywgCisgICAgMjIzLCAyNTEsIDgsIDMsIDIyMywgMjI4LCA4LCAzLCAyMjMsIDIyNiwgOCwgMywgMjIzLCAyMzgsIDgsIDMsIDIyMywgMjMxLCAKKyAgICA4LCAzLCAyMjMsIDIyOSwgOCwgMywgMjIzLCAyMzAsIDgsIDMsIDIzNSwgODgsIDgsIDMsIDIzNSwgODcsIDgsIDMsIDIzNSwgCisgICAgOTQsIDgsIDMsIDIzNSwgODksIDgsIDMsIDIzNSwgOTEsIDgsIDMsIDIzNSwgOTAsIDgsIDMsIDIzNSwgOTMsIDgsIDMsIAorICAgIDIzNSwgOTIsIDgsIDMsIDIzNSwgNzksIDgsIDMsIDIzNSwgODEsIDgsIDMsIDIzNSwgODAsIDgsIDMsIDIzNSwgODQsIDgsIAorICAgIDMsIDIzNSwgODMsIDgsIDMsIDIzNSwgODYsIDgsIDMsIDIzNSwgODUsIDgsIDMsIDIzNSwgNzUsIDgsIDMsIDIzNSwgNzQsIAorICAgIDgsIDMsIDIzNSwgODIsIDgsIDMsIDIzNSwgNzgsIDgsIDMsIDIzNSwgNzYsIDgsIDMsIDIzNSwgNzcsIDgsIDMsIDIzNSwgCisgICAgNzEsIDgsIDMsIDIzNSwgNzAsIDgsIDMsIDIzNSwgNzMsIDgsIDMsIDIzNSwgNzIsIDgsIDMsIDIyOCwgMTYzLCA4LCAzLCAKKyAgICAyMjgsIDE2MiwgOCwgMywgMjI4LCAxNzAsIDgsIDMsIDIyOCwgMTY0LCA4LCAzLCAyMjgsIDE2NiwgOCwgMywgMjI4LCAxNjUsIAorICAgIDgsIDMsIDIyOCwgMTY5LCA4LCAzLCAyMjgsIDE2NywgOCwgMywgMjI4LCAxNTIsIDgsIDMsIDIyOCwgMTUzLCA4LCAzLCAKKyAgICAyMjgsIDE1OCwgOCwgMywgMjI4LCAxNTcsIDgsIDMsIDIyOCwgMTYxLCA4LCAzLCAyMjgsIDE1OSwgOCwgMywgMjI4LCAxNDcsIAorICAgIDgsIDMsIDIyOCwgMTU2LCA4LCAzLCAyMjgsIDE1MSwgOCwgMywgMjI4LCAxNDgsIDgsIDMsIDIyOCwgMTQ5LCA4LCAzLCAKKyAgICAyMjgsIDE0MiwgOCwgMywgMjI4LCAxNDEsIDgsIDMsIDIyOCwgMTQ2LCA4LCAzLCAyMjgsIDE0NSwgOCwgMywgMjI4LCAxNDMsIAorICAgIDgsIDMsIDIyOCwgMTQ0LCA4LCAzLCAyMjcsIDEzOCwgOCwgMywgMjI3LCAxMzcsIDgsIDMsIDIyNywgMTQ5LCA4LCAzLCAKKyAgICAyMjcsIDE0MiwgOCwgMywgMjI3LCAxNDYsIDgsIDMsIDIyNywgMTQ1LCA4LCAzLCAyMjcsIDE0OCwgOCwgMywgMjI3LCAxNDcsIAorICAgIDgsIDMsIDIyNywgMTI1LCA4LCAzLCAyMjcsIDEyNywgOCwgMywgMjI3LCAxMjYsIDgsIDMsIDIyNywgMTMxLCA4LCAzLCAKKyAgICAyMjcsIDEzMCwgOCwgMywgMjI3LCAxMzUsIDgsIDMsIDIyNywgMTMyLCA4LCAzLCAyMjcsIDEyMywgOCwgMywgMjI3LCAxMjEsIAorICAgIDgsIDMsIDIyNywgMTI5LCA4LCAzLCAyMjcsIDEyNCwgOCwgMywgMjExLCAxNTAsIDgsIDMsIDIxMSwgMTQ5LCA4LCAzLCAKKyAgICAyMTEsIDE1NywgOCwgMywgMjExLCAxNTIsIDgsIDMsIDIxMSwgMTU0LCA4LCAzLCAyMTEsIDE1MywgOCwgMywgMjExLCAxNTYsIAorICAgIDgsIDMsIDIxMSwgMTU1LCA4LCAzLCAyMTEsIDEzOSwgOCwgMywgMjExLCAxNDAsIDgsIDMsIDIxMSwgMTQ0LCA4LCAzLCAKKyAgICAyMTEsIDE0MywgOCwgMywgMjExLCAxNDgsIDgsIDMsIDIxMSwgMTQ2LCA4LCAzLCAyMTEsIDEyMSwgOCwgMywgMjExLCAxMTksIAorICAgIDgsIDMsIDIxMSwgMTMxLCA4LCAzLCAyMTEsIDEyNCwgOCwgMywgMjExLCAxMjIsIDgsIDMsIDIxMSwgMTIzLCA4LCAzLCAKKyAgICAyMTAsIDI1MCwgOCwgMywgMjEwLCAyNDgsIDgsIDMsIDIxMSwgOCwgOCwgMywgMjEwLCAyNTEsIDgsIDMsIDIxMSwgMiwgOCwgCisgICAgMywgMjExLCAxLCA4LCAzLCAyMTEsIDUsIDgsIDMsIDIxMSwgMywgOCwgMywgMjEwLCAxOTEsIDgsIDMsIDIxMCwgMTkwLCA4LCAKKyAgICAzLCAyMTAsIDE5NCwgOCwgMywgMjEwLCAxOTIsIDgsIDMsIDIxMCwgMjI0LCA4LCAzLCAyMTAsIDIyMSwgOCwgMywgMjEwLCAKKyAgICAyNDQsIDgsIDMsIDIxMCwgMjI4LCA4LCAzLCAyMTAsIDE4MiwgOCwgMywgMjEwLCAxNzgsIDgsIDMsIDIxMCwgMjEyLCA4LCAKKyAgICAzLCAyMTAsIDE4OSwgOCwgMywgMjEwLCAxODUsIDgsIDMsIDIxMCwgMTg2LCA4LCAzLCAyMTAsIDE2MiwgOCwgMywgMjEwLCAKKyAgICAxNjEsIDgsIDMsIDIxMCwgMTY5LCA4LCAzLCAyMTAsIDE2NSwgOCwgMywgMjEwLCAxNjMsIDgsIDMsIDIxMCwgMTY0LCA4LCAKKyAgICAzNCwgMjI0LCAzNCwgOCwgMzQsIDIzMiwgMjQyLCA4LCAzNCwgMjM0LCA2MiwgOCwgMzQsIDIyNywgMTQyLCA4LCAzNCwgCisgICAgMjQ5LCA3MCwgOCwgMzQsIDIxOCwgMTkzLCA4LCAzNCwgMjQzLCAxMywgOCwgMzQsIDI0MywgNDUsIDgsIDM0LCAyMzAsIAorICAgIDIzMSwgOCwgMzQsIDI0MCwgMTgxLCA4LCAzNCwgMjMyLCA1NywgOCwgMzQsIDI1MiwgODQsIDgsIDM0LCAyMzAsIDEyNywgOCwgCisgICAgMzQsIDIxMCwgMjQ0LCA4LCAzNCwgMjI0LCAxMjIsIDgsIDM0LCAyNDAsIDE3NSwgOCwgMzQsIDIxNywgNDcsIDgsIDM0LCAKKyAgICAyNDMsIDEzNiwgOCwgMzQsIDIxMCwgNSwgOCwgMzQsIDI0OSwgNjQsIDgsIDM0LCAyNDgsIDk2LCA4LCAzNCwgMjUxLCA5OSwgCisgICAgOCwgMzQsIDI0MywgOSwgOCwgMzQsIDIyNywgMTMyLCA4LCAzNCwgMjE1LCAxMTksIDgsIDM0LCAyMjYsIDE3NiwgOCwgMzQsIAorICAgIDIzNSwgNzUsIDgsIDM0LCAyMTAsIDE5LCA4LCAzNCwgMjI0LCAxMDEsIDgsIDM0LCAyNDEsIDEwOSwgOCwgMzQsIDIxMCwgCisgICAgMjUwLCA4LCAzNCwgMjEyLCAxMTIsIDgsIDM0LCAyMTksIDIwMSwgOCwgMzQsIDIxMywgMjQ0LCA4LCAzNCwgMjEwLCAxMTYsIAorICAgIDgsIDM0LCAyMzUsIDY5LCA4LCAzNCwgMjI3LCA5NywgOCwgMzQsIDIzNSwgNzMsIDgsIDM0LCAyNDIsIDE1NSwgOCwgMzQsIAorICAgIDIzNSwgOTMsIDgsIDM0LCAyMTEsIDIyNywgOCwgMzQsIDI0NiwgNzksIDgsIDM0LCAyMTksIDIxNCwgOCwgMzQsIDIzMiwgCisgICAgMjM3LCA4LCAzNCwgMjQ5LCA3NCwgOCwgMzQsIDI0OSwgMTA2LCA4LCAzNCwgMjUwLCAzOCwgOCwgMzQsIDI0MCwgMTc4LCA4LCAKKyAgICAzNCwgMjIwLCA3MywgOCwgMzQsIDIxMCwgNCwgOCwgMzQsIDIxOSwgMjU1LCA4LCAzNCwgMjUwLCAxMzIsIDgsIDM0LCAyMDksIAorICAgIDIzMSwgOCwgMzQsIDIyOSwgMTc0LCA4LCAzNCwgMjM0LCAxODMsIDIzMiwgMTk3LCAxLCAyNTIsIDE5MiwgMjMyLCAxOTcsIAorICAgIDEsIDE5MCwgMjMyLCAxOTcsIDEsIDIyNSwgMTQ4LCAyMzIsIDE5NywgMSwgMjQ4LCAyMjIsIDIzMiwgMTk3LCAxLCAyMTcsIAorICAgIDEwNiwgMjMyLCAxOTcsIDEsIDIxNiwgMjA5LCAyMzIsIDE5NywgMSwgMjQzLCAxMzYsIDIzMiwgMTk3LCAxLCAxNzYsIDIzMiwgCisgICAgMTk3LCAxLCAyMzQsIDEzMywgMjMyLCAxOTcsIDEsIDIzNSwgMTQyLCAyMzIsIDE5NywgMSwgMjUxLCAzNCwgMjMyLCAxOTcsIAorICAgIDEsIDI1MCwgMTU4LCAyMzIsIDE5NywgMSwgMjQ2LCAzOSwgMjMyLCAxOTcsIDEsIDIxNSwgMTg0LCAyMzIsIDE5NywgMSwgCisgICAgMjE1LCAxNzYsIDIzMiwgMTk3LCAxLCAxODUsIDIzMiwgMTk3LCAxLCAxOTcsIDIzMiwgMTk3LCAxLCAyMzMsIDEzNiwgMjMyLCAKKyAgICAxOTcsIDEsIDIwNiwgMjMyLCAxOTcsIDEsIDIxMCwgODIsIDIzMiwgMTk3LCAxLCAyMTAsIDExNiwgMjMyLCAxOTcsIDEsIAorICAgIDIyOSwgNzgsIDIzMiwgMTk3LCAxLCAxNjIsIDIzMiwgMTk3LCAxLCAyMTEsIDE2NSwgMjMyLCAxOTcsIDEsIDI0MSwgMTkwLCAKKyAgICAyMzIsIDE5NywgMSwgMjQ0LCAxOTcsIDIzMiwgMTk3LCAxLCAyMTIsIDY1LCAyMzIsIDE5NywgMSwgMjIwLCAxMDMsIDIzMiwgCisgICAgMTk3LCAxLCAxOTEsIDIzMiwgMTk3LCAxLCAyNDIsIDI1MCwgMjMyLCAxOTcsIDEsIDYxLCAyMzIsIDE5NywgMSwgMjU0LCAKKyAgICAyNDQsIDIzMiwgMTk3LCAxLCA3NSwgMjMyLCAxOTcsIDEsIDI0NSwgNTYsIDIzMiwgMTk3LCAxLCA3MywgMjMyLCAxOTcsIDEsIAorICAgIDc2LCAyMzIsIDE5NywgMSwgNzAsIDIzMiwgMTk3LCAxLCAyMTQsIDIxNCwgMjMyLCAxOTcsIDEsIDIxNCwgMjA4LCAyMzIsIAorICAgIDE5NywgMSwgMjI2LCAyMzUsIDIzMiwgMTk3LCAxLCAxMzgsIDIzMCwgMzMsIDIxNiwgMTE4LCAyMzIsIDE5NywgMSwgMTM4LCAKKyAgICAyMjksIDIzMCwgMjI1LCAxNywgMjMyLCAxOTcsIDEsIDEzOCwgMjMwLCAzMywgMjQ5LCA3MywgMjMyLCAxOTcsIDEsIDEzOCwgCisgICAgMjMwLCAzMywgMjUxLCAyMDYsIDIzMiwgMTk3LCAxLCAxMzgsIDIzMCwgMzMsIDE5NywgMjMyLCAxOTcsIDEsIDEzOCwgMjMwLCAKKyAgICAzMywgMjM1LCAxMTYsIDIzMiwgMTk3LCAyMjQsIDE0MiwgMjQ5LCAyMjAsIDIzMiwgMTk3LCAyMjQsIDE0MiwgMjQzLCAyMzAsIAorICAgIDIxOCwgMTMwLCA0MSwgMywgMjQ1LCAyMTAsIDQxLCAzLCAyNDUsIDIwNiwgNDEsIDMsIDI0MSwgMjIxLCA0MSwgMywgMjEyLCAKKyAgICAxNywgNDEsIDMsIDIxMiwgMTYsIDQxLCAzLCAyMjUsIDIxMiwgNDEsIDMsIDI1MiwgMTQsIDQxLCAzLCAyNTIsIDY3LCA0MSwgCisgICAgMywgMjMxLCAxMTcsIDQxLCAzLCAyMzMsIDI0OCwgNDEsIDMsIDIzMSwgNywgNDEsIDMsIDI0MywgNzYsIDQxLCAzLCAyNDQsIAorICAgIDE0OCwgNDEsIDMsIDIxMywgMjUwLCA0MSwgMywgMjE3LCAxMiwgNDEsIDMsIDIxNiwgMTk1LCA0MSwgMywgMjQ4LCAxNywgCisgICAgNDEsIDMsIDI0OCwgMTQsIDQxLCAzLCAyMzMsIDUxLCA0MSwgMywgMjIzLCAxMDksIDQxLCAzLCAyNDgsIDc4LCA0MSwgMywgCisgICAgMjI5LCAxNDAsIDQxLCAzLCAyMjEsIDE3MSwgNDEsIDMsIDIyMCwgNjIsIDQxLCAzLCAyMTAsIDkyLCA0MSwgMywgMjEwLCAKKyAgICA3MywgNDEsIDMsIDI1MCwgMTgzLCA0MSwgMywgMjM1LCAxMjUsIDQxLCAzLCAyMjgsIDE3NywgNDEsIDMsIDIxMSwgNDQsIAorICAgIDQxLCAzLCAyMzQsIDE4MiwgNDEsIDMsIDIyOSwgNTIsIDQxLCAzLCAyNDMsIDU2LCA0MSwgMywgMjMxLCA4MSwgNDEsIDMsIAorICAgIDIyOSwgMTA0LCA0MSwgMywgMjI3LCAxNTYsIDQxLCAzLCA3MywgNDEsIDMsIDIzNiwgMCwgNDEsIDMsIDI0MSwgMTgxLCA0MSwgCisgICAgMywgMjQxLCAxNjEsIDQxLCAzLCAyMTEsIDI1MCwgNDEsIDMsIDIxMSwgMjQxLCA0MSwgMywgMjI1LCAxMDksIDQxLCAzLCAKKyAgICAyNTIsIDEyLCA0MSwgMywgMjUyLCA3LCA0MSwgMywgMjMxLCAxMTAsIDQxLCAzLCAyMzMsIDI0NSwgNDEsIDMsIDIzMSwgNCwgCisgICAgNDEsIDMsIDI0MywgNzIsIDQxLCAzLCAyNDQsIDEyMiwgNDEsIDMsIDIxMywgMTc2LCA0MSwgMywgMjE2LCAxMTgsIDQxLCAzLCAKKyAgICAyMTYsIDE3NiwgNDEsIDMsIDI0OCwgOSwgNDEsIDMsIDI0OCwgMTMsIDQxLCAzLCAyMzIsIDI0MiwgNDEsIDMsIDIyMywgMzYsIAorICAgIDQxLCAzLCAyNDgsIDQsIDQxLCAzLCAyMjksIDEzNCwgNDEsIDMsIDIxOSwgMTkyLCA0MSwgMywgMjIwLCAzMywgNDEsIDMsIAorICAgIDIxMCwgNDQsIDQxLCAzLCAyMTAsIDY5LCA0MSwgMywgMjUwLCA1MiwgNDEsIDMsIDIzNSwgMTA5LCA0MSwgMywgMjI4LCAKKyAgICAxNzAsIDQxLCAzLCAyMTEsIDgsIDQxLCAzLCAyMzQsIDkzLCA0MSwgMywgMjI5LCA0NCwgNDEsIDMsIDI0MiwgMjE1LCA0MSwgCisgICAgMywgMjMwLCAyMzEsIDQxLCAzLCAyMjgsIDIzNCwgNDEsIDMsIDIyNywgMTQ5LCA0MSwgMywgNjEsIDQxLCAzLCAyNTQsIAorICAgIDEyNCwgNDEsIDMsIDIyOSwgNzMsIDQxLCAzLCAxNjIsIDQxLCAzLCAyNDIsIDE5LCA0MSwgMywgMjEyLCA2NSwgNDEsIDMsIAorICAgIDIxMiwgNTUsIDQxLCAzLCAxOTAsIDQxLCAzLCAyNTIsIDE5LCA0MSwgMywgMjUyLCAxOTIsIDQxLCAzLCAyMzEsIDEyNSwgCisgICAgNDEsIDMsIDIzMywgMjUyLCA0MSwgMywgMjMzLCAyNTEsIDQxLCAzLCAyMzEsIDExLCA0MSwgMywgMjQzLCA4MCwgNDEsIDMsIAorICAgIDI0NCwgMTk3LCA0MSwgMywgMjE0LCAyNywgNDEsIDMsIDIxNywgMTA2LCA0MSwgMywgMjE2LCAyMDksIDQxLCAzLCAyNDgsIAorICAgIDI2LCA0MSwgMywgMjQ4LCAxNiwgNDEsIDMsIDIzMywgMTM2LCA0MSwgMywgMjA1LCA0MSwgMywgMjQ4LCAyMjIsIDQxLCAzLCAKKyAgICAyMjksIDE0OSwgNDEsIDMsIDIwNiwgNDEsIDMsIDIyMCwgMTAzLCA0MSwgMywgMjEwLCAxMTYsIDQxLCAzLCAyMTAsIDgyLCAKKyAgICA0MSwgMywgMjUxLCAzNCwgNDEsIDMsIDIzNSwgMTQyLCA0MSwgMywgMjI4LCAxODYsIDQxLCAzLCAxOTEsIDQxLCAzLCAxNzYsIAorICAgIDQxLCAzLCAyMzQsIDIzNSwgNDEsIDMsIDIyOSwgNTcsIDQxLCAzLCAyNDMsIDEzNiwgNDEsIDMsIDE4NSwgNDEsIDMsIDE5NywgCisgICAgNDEsIDMsIDIyNywgMTY2LCA0MSwgMywgMjI2LCAxODQsIDQxLCAzLCAyMjYsIDE4MCwgNDEsIDMsIDI0MSwgNTQsIDQxLCAzLCAKKyAgICAyMTEsIDIxNSwgNDEsIDMsIDIxMSwgMjExLCA0MSwgMywgMjI0LCAyNTAsIDQxLCAzLCAyNTIsIDEwLCA0MSwgMywgMjUxLCAKKyAgICAxOTQsIDQxLCAzLCAyMzEsIDEwNSwgNDEsIDMsIDIzMywgMjQzLCA0MSwgMywgMjMxLCAwLCA0MSwgMywgMjQzLCA2OCwgNDEsIAorICAgIDMsIDI0NCwgMzUsIDQxLCAzLCAyMTMsIDEyNywgNDEsIDMsIDIxNiwgMTgsIDQxLCAzLCAyMTYsIDE1NCwgNDEsIDMsIDI0OCwgCisgICAgNywgNDEsIDMsIDI0OCwgMTEsIDQxLCAzLCAyMzIsIDEyOCwgNDEsIDMsIDIyMiwgMTk4LCA0MSwgMywgMjQ3LCAxMjYsIDQxLCAKKyAgICAzLCAyMjksIDEyMSwgNDEsIDMsIDIxOSwgNDEsIDQxLCAzLCAyMjAsIDIsIDQxLCAzLCAyMTAsIDIxLCA0MSwgMywgMjEwLCAKKyAgICA2NiwgNDEsIDMsIDI0OSwgMTc1LCA0MSwgMywgMjM1LCA2MCwgNDEsIDMsIDIyOCwgMTYwLCA0MSwgMywgMjEwLCAyMjksIAorICAgIDQxLCAzLCAyMzQsIDExLCA0MSwgMywgMjI5LCA0MiwgNDEsIDMsIDI0MiwgMTY1LCA0MSwgMywgMjMwLCAxMzMsIDQxLCAzLCAKKyAgICAyMjgsIDY1LCA0MSwgMywgMjI3LCAxMzMsIDQxLCAzLCA3MCwgNDEsIDMsIDIxNCwgMTkwLCA0MSwgMywgMjQwLCAyMjMsIAorICAgIDQxLCAzLCAyNDAsIDIxMywgNDEsIDMsIDIxMSwgMTk1LCA0MSwgMywgMjExLCAxODksIDQxLCAzLCAyMjQsIDE1MSwgNDEsIAorICAgIDMsIDI1MiwgOSwgNDEsIDMsIDI1MSwgMTI2LCA0MSwgMywgMjMxLCAxMDQsIDQxLCAzLCAyMzMsIDI0MSwgNDEsIDMsIDIzMCwgCisgICAgMjU1LCA0MSwgMywgMjQzLCA2NywgNDEsIDMsIDI0MywgMjM1LCA0MSwgMywgMjEyLCAxMTYsIDQxLCAzLCAyMTUsIDExOSwgCisgICAgNDEsIDMsIDIxNiwgMTM3LCA0MSwgMywgMjQ4LCA1LCA0MSwgMywgMjQ4LCAxMCwgNDEsIDMsIDIzMiwgOTksIDQxLCAzLCAKKyAgICAyMjIsIDE0MSwgNDEsIDMsIDI0NiwgNzksIDQxLCAzLCAyMjksIDExNiwgNDEsIDMsIDIxOCwgODQsIDQxLCAzLCAyMTksIAorICAgIDIyNiwgNDEsIDMsIDIxMCwgMTMsIDQxLCAzLCAyMTAsIDYyLCA0MSwgMywgMjQ5LCAxMTMsIDQxLCAzLCAyMzUsIDUyLCA0MSwgCisgICAgMywgMjI4LCAxNTYsIDQxLCAzLCAyMTAsIDIxMiwgNDEsIDMsIDIzMywgMjE4LCA0MSwgMywgMjI5LCA0MSwgNDEsIDMsIAorICAgIDI0MiwgMTE0LCA0MSwgMywgMjMwLCAxMDMsIDQxLCAzLCAyMjcsIDIzOCwgNDEsIDMsIDIyNywgMTI5LCA0MSwgMywgNzYsIAorICAgIDQxLCAzLCAyMjYsIDE5NywgNDEsIDMsIDIyOSwgMSwgNDEsIDMsIDI0MSwgNjksIDQxLCAzLCAyNDEsIDU3LCA0MSwgMywgCisgICAgMjExLCAyMjcsIDQxLCAzLCAyMTEsIDIxNiwgNDEsIDMsIDIyNSwgMTcsIDQxLCAzLCAyNTIsIDExLCA0MSwgMywgMjUxLCAKKyAgICAyMDYsIDQxLCAzLCAyMzEsIDEwNiwgNDEsIDMsIDIzMywgMjQ0LCA0MSwgMywgMjMxLCAyLCA0MSwgMywgMjQzLCA3MCwgNDEsIAorICAgIDMsIDI0MywgNjksIDQxLCAzLCAyNDQsIDQ0LCA0MSwgMywgMjEzLCAxMzgsIDQxLCAzLCAxMTEsIDQxLCAzLCAyMTYsIDE1NywgCisgICAgNDEsIDMsIDI0OCwgOCwgNDEsIDMsIDI0OCwgMTIsIDQxLCAzLCAyMzIsIDE1NywgNDEsIDMsIDIyMiwgMjEyLCA0MSwgMywgCisgICAgMjQ3LCAxNDYsIDQxLCAzLCAyMjksIDEyNSwgNDEsIDMsIDIxOSwgNTksIDQxLCAzLCAyMjAsIDgsIDQxLCAzLCAyMTAsIDIzLCAKKyAgICA0MSwgMywgMjEwLCA2NywgNDEsIDMsIDI0OSwgMjM5LCA0MSwgMywgMjM1LCA2OSwgNDEsIDMsIDIyOCwgMTYxLCA0MSwgMywgCisgICAgMjEwLCAyNDQsIDQxLCAzLCAyMzQsIDI5LCA0MSwgMywgMjI5LCA0MywgNDEsIDMsIDI0MiwgMTc1LCA0MSwgMywgMjMwLCAKKyAgICAxNjIsIDQxLCAzLCAyMjgsIDc1LCA0MSwgMywgMjI3LCAxMzUsIDQxLCAzLCA3NSwgNDEsIDMsIDI0NSwgMTUxLCA0MSwgMywgCisgICAgMjI5LCA2MiwgNDEsIDMsIDI0MSwgMjM5LCA0MSwgMywgMjQxLCAyMTAsIDQxLCAzLCAyMTIsIDIyLCA0MSwgMywgMjEyLCAKKyAgICAxMiwgNDEsIDMsIDIyNSwgMjIyLCA0MSwgMywgMjUyLCAxNSwgNDEsIDMsIDI1MiwgNzYsIDQxLCAzLCAyMzEsIDExOCwgNDEsIAorICAgIDMsIDIzMywgMjQ5LCA0MSwgMywgMjMzLCAyNDcsIDQxLCAzLCAyMzEsIDgsIDQxLCAzLCAyNDMsIDc3LCA0MSwgMywgMjQzLCAKKyAgICA3NSwgNDEsIDMsIDI0NCwgMTU1LCA0MSwgMywgMjEzLCAyNTUsIDQxLCAzLCAyMTcsIDIzLCA0MSwgMywgMjE2LCAxOTYsIAorICAgIDQxLCAzLCAyNDgsIDE4LCA0MSwgMywgMjQ4LCAxNSwgNDEsIDMsIDIzMywgNTksIDQxLCAzLCAyMjMsIDEyOSwgNDEsIDMsIAorICAgIDI0OCwgOTEsIDQxLCAzLCAyMjksIDE0MSwgNDEsIDMsIDIyMSwgMTgyLCA0MSwgMywgMjIwLCA2NCwgNDEsIDMsIDIxMCwgCisgICAgOTQsIDQxLCAzLCAyMTAsIDc0LCA0MSwgMywgMjUwLCAxOTEsIDQxLCAzLCAyMzUsIDEyNywgNDEsIDMsIDIyOCwgMTc5LCAKKyAgICA0MSwgMywgMjExLCA0NywgNDEsIDMsIDIzNCwgMTgzLCA0MSwgMywgMjI5LCA1MywgNDEsIDMsIDIyOSwgNDksIDQxLCAzLCAKKyAgICAyNDMsIDYzLCA0MSwgMywgMjQzLCA1MiwgNDEsIDMsIDIzMSwgOTIsIDQxLCAzLCAyMjksIDEwOCwgNDEsIDMsIDIyNywgCisgICAgMTU3LCA0MSwgMywgMjI5LCA4MCwgNDEsIDMsIDIzMywgMjMsIDQxLCAyNDksIDIyMCwgNDEsIDI0MywgMjMwLCAyMTgsIAorICAgIDEzMCwgNDEsIDIyNCwgMTQsIDc4LCA0MSwgMywgMjI5LCAxMjQsIDI0NCwgMTk3LCA0MSwgMywgMjI5LCAxMjQsIDE3NiwgCisgICAgNDEsIDMsIDIyOSwgMTI0LCAyMTksIDQxLCA0MSwgMTYsIDI0NCwgMTQ1LCA0MSwgMTYsIDIzNCwgMTgxLCA0MSwgMTYsIAorICAgIDIxNiwgODIsIDQxLCAxNiwgMjI4LCAyMDksIDQxLCAxNiwgMjUyLCAxNDgsIDQxLCAxNiwgMjQ0LCAxOTYsIDQxLCAxNiwgCisgICAgMjE3LCAxMDIsIDQxLCAxNiwgMjQ4LCAxNzcsIDQxLCAxNiwgMjQ3LCAxMjUsIDQxLCAxNiwgMjMzLCAyMDcsIDQxLCAxNiwgCisgICAgMjE2LCAyMiwgNDEsIDE2LCAyNDcsIDE0NSwgNDEsIDE2LCAyMzUsIDYxLCA0MSwgMjEsIDIxMCwgODYsIDQxLCAyMSwgMTEwLCAKKyAgICA0MSwgMjEsIDEwNSwgNDEsIDIxLCAxNTgsIDQxLCAyMSwgMTYxLCA0MSwgMjEsIDE4OSwgNDEsIDIxLCAxOTQsIDQxLCAyMSwgCisgICAgMTk4LCA0MSwgMjEsIDE5NSwgNDEsIDIxLCAyMDAsIDQxLCAzLCAyMjksIDEyNCwgMTg1LCA0MSwgMywgMjI5LCAxMjQsIAorICAgIDI0NywgMTQ2LCAzMywgNiwgMSwgMjEwLCA5MCwgMzMsIDQsIDEsIDIxMCwgOTAsIDMzLCA2LCAxLCAyNDYsIDM1LCAzMywgNCwgCisgICAgMSwgMjQ2LCAzNSwgMzMsIDYsIDEsIDIyMywgNTAsIDI0NiwgMzcsIDMzLCA0LCAxLCAyMjMsIDUwLCAyNDYsIDM3LCAzMywgCisgICAgNiwgMSwgMjM1LCAxODYsIDMzLCA0LCAxLCAyMzUsIDE4NiwgMzMsIDYsIDEsIDI0NywgMTYyLCAzMywgNCwgMSwgMjQ3LCAKKyAgICAxNjIsIDMzLCA2LCAxLCAyMzAsIDE0MSwgMjE0LCAyMDUsIDMzLCA0LCAxLCAyMzAsIDE0MSwgMjE0LCAyMDUsIDMzLCA2LCAKKyAgICAxLCAyNTEsIDEzNywgMjI2LCAyMDIsIDMzLCA0LCAxLCAyNTEsIDEzNywgMjI2LCAyMDIsIDMzLCA2LCAxLCAyMjksIDg4LCAKKyAgICAyMTEsIDMxLCAzMywgNCwgMSwgMjI5LCA4OCwgMjExLCAzMSwgMzMsIDYsIDEsIDIxMSwgMjgsIDIsIDI1MiwgMTg2LCAyMTEsIAorICAgIDMxLCAzMywgNCwgMSwgMjExLCAyOCwgMiwgMjUyLCAxODYsIDIxMSwgMzEsIDMzLCA2LCAxLCAyMzUsIDE4NCwgMjExLCA1OSwgCisgICAgMzMsIDQsIDEsIDIzNSwgMTg0LCAyMTEsIDU5LCAzMywgNiwgMSwgMjIzLCA1MCwgMjEwLCAyMTIsIDMzLCA0LCAxLCAyMjMsIAorICAgIDUwLCAyMTAsIDIxMiwgMzMsIDYsIDEsIDIzNSwgMTg0LCA2MSwgMzMsIDQsIDEsIDIzNSwgMTg0LCA2MSwgMzMsIDYsIDEsIAorICAgIDI1MCwgMSwgMjMyLCAxOTMsIDIxMCwgMTgzLCAzMywgNCwgMSwgMjUwLCAxLCAyMzIsIDE5MywgMjEwLCAxODMsIDMzLCA2LCAKKyAgICAxLCAyNTEsIDIxNSwgMjEwLCAxODMsIDMzLCA0LCAxLCAyNTEsIDIxNSwgMjEwLCAxODMsIDMzLCA2LCAxLCAyMzUsIDE4NCwgCisgICAgMjUwLCAxLCAyMzIsIDE5MywgMjEwLCAxODMsIDMzLCA0LCAxLCAyMzUsIDE4NCwgMjUwLCAxLCAyMzIsIDE5MywgMjEwLCAKKyAgICAxODMsIDMzLCA2LCAxLCAyMTAsIDI0NiwgMzMsIDQsIDEsIDIxMCwgMjQ2LCAzMywgNiwgMSwgMjIzLCA1MCwgMjE1LCAxNzksIAorICAgIDMzLCA0LCAxLCAyMjMsIDUwLCAyMTUsIDE3OSwgMzMsIDYsIDEsIDIxOSwgNTMsIDI0OCwgOTEsIDMzLCA0LCAxLCAyMTksIAorICAgIDUzLCAyNDgsIDkxLCAzMywgNiwgMSwgMjE5LCA1MywgMjQ1LCAxNzUsIDMzLCA0LCAxLCAyMTksIDUzLCAyNDUsIDE3NSwgCisgICAgMzMsIDYsIDEsIDIxOSwgNTMsIDI0NSwgMTYwLCAzMywgNCwgMSwgMjE5LCA1MywgMjQ1LCAxNjAsIDMzLCA2LCAxLCAyMzAsIAorICAgIDE0NSwgNzYsIDMzLCA0LCAxLCAyMzAsIDE0NSwgNzYsIDMzLCA2LCAxLCAyNTEsIDI0MSwgNzYsIDMzLCA0LCAxLCAyNTEsIAorICAgIDI0MSwgNzYsIDMzLCA2LCAxLCA1MiwgMjMwLCAxNDUsIDc2LCAzMywgNCwgMSwgNTIsIDIzMCwgMTQ1LCA3NiwgMzMsIDEsIAorICAgIDIzMCwgODcsIDc2LCAzOCwgMzMsIDIxMiwgMTAwLCAzOCwgMzMsIDIxNiwgMjQ5LCAyMzAsIDE5MiwgNTAsIDM4LCAzMywgCisgICAgMjQwLCAyMTIsIDIzMCwgMTkyLCA1MCwgMzgsIDMzLCAyMTYsIDE0OSwgMjMwLCAxOTIsIDUwLCAyMTksIDk0LCAyNTMsIAorICAgIDIxNywgMzgsIDMzLCAxLCAyMTQsIDIwMiwgMjM2LCA2MSwgMzgsIDMzLCAxLCA3MywgMzgsIDMzLCAxLCAyMTEsIDgsIDM4LCAKKyAgICAzMywgMSwgNzAsIDM4LCAzMywgMSwgMjQyLCA0LCA1MCwgMzgsIDMzLCAxLCAyMTEsIDI3LCAzOCwgMzMsIDEsIDIxOSwgNTMsIAorICAgIDUwLCAzOCwgMzMsIDEsIDIyNiwgMjAyLCAzOCwgMzMsIDIzNCwgMTkzLCAzOCwgMzMsIDIyNSwgMjI4LCAzMywgMjM0LCAKKyAgICAxOTMsIDMzLCAyMjUsIDIyOCwgMzMsIDYsIDEsIDI0NiwgNDcsIDMzLCA0LCAxLCAyNDYsIDQ3LCAzMywgNiwgMSwgMjQ2LCAKKyAgICAyOCwgMzMsIDQsIDEsIDI0NiwgMjgsIDMzLCA2LCAxLCAyMTAsIDUyLCAzMywgNCwgMSwgMjEwLCA1MiwgMzMsIDYsIDEsIAorICAgIDI1MCwgMjA3LCAzMywgNCwgMSwgMjUwLCAyMDcsIDMzLCA2LCAxLCAyNDYsIDI2LCAzMywgNCwgMSwgMjQ2LCAyNiwgMzMsIAorICAgIDYsIDEsIDIxNywgMjQsIDIsIDIzMCwgMjI1LCAxMDMsIDMzLCA0LCAxLCAyMTcsIDI0LCAyLCAyMzAsIDIyNSwgMTAzLCAzMywgCisgICAgNiwgMSwgMjE1LCA3OCwgMzMsIDQsIDEsIDIxNSwgNzgsIDMzLCA2LCAxLCAyMTUsIDE2MSwgMzMsIDQsIDEsIDIxNSwgMTYxLCAKKyAgICAzMywgNiwgMSwgMjE1LCAxNjUsIDMzLCA0LCAxLCAyMTUsIDE2NSwgMzMsIDYsIDEsIDIxNywgMjksIDMzLCA0LCAxLCAyMTcsIAorICAgIDI5LCAzMywgNiwgMSwgMjQwLCAxOTksIDMzLCA0LCAxLCAyNDAsIDE5OSwgMzMsIDYsIDEsIDIxOSwgMjA3LCAzMywgNCwgMSwgCisgICAgMjE5LCAyMDcsIDM4LCAzMywgMSwgMjM1LCAxODQsIDc1LCAyMCwgMSwgNjEsIDIwLCAxLCAxNzYsIDIwLCAxLCA3MCwgMjAsIAorICAgIDEsIDIzMywgMjE4LCAyMCwgMSwgMjQ1LCAyMTAsIDIwLCAxLCAyMjMsIDEwOSwgMjAsIDEsIDIxNywgODcsIDIwLCAxLCA3NiwgCisgICAgMjAsIDEsIDIyNywgMTQ5LCAyMCwgMSwgNzMsIDIwLCAxLCAyMzMsIDEzNiwgMjAsIDEsIDE5MCwgMjAsIDEsIDIyMiwgMjQwLCAKKyAgICAyMCwgMSwgMjIzLCAzMCwgMjAsIDEsIDIzMywgNTAsIDIwLCAxLCAyMzEsIDgwLCAyMCwgMSwgMjE3LCAxMDIsIDIwLCAxLCAKKyAgICAyMjksIDE0NywgMjAsIDEsIDIyOCwgMTg0LCAyMCwgMSwgMTkzLCAyMCwgMSwgMjE4LCA1LCAyMCwgMSwgMjMwLCAxMDMsIAorICAgIDIwLCAxLCAyMjAsIDI4LCAyMCwgMSwgMjE5LCAxOTIsIDIwLCAxLCAyMjAsIDM4LCAyMCwgMSwgMjIwLCAxMjQsIDIwLCAxLCAKKyAgICAyMzMsIDE1NiwgMjAsIDEsIDIzNCwgMTU3LCAyMCwgMSwgMjI3LCAyMTAsIDIwLCAxLCAyMjcsIDIzOCwgMjAsIDEsIDIyOCwgCisgICAgMTU1LCAyMCwgMSwgMjEwLCAyMjYsIDIwLCAxLCAyMTksIDIyNiwgMjAsIDEsIDIxMCwgMTg3LCAyMCwgMSwgMTkxLCAyMCwgCisgICAgMSwgMjI4LCAxMCwgMjAsIDEsIDIzNCwgMTQzLCAyMCwgMSwgMjI1LCAxNTIsIDIwLCAxLCAyMjgsIDE3NywgMjAsIDEsIAorICAgIDIyNywgMjQ3LCAyMCwgMSwgMjI0LCAxNDUsIDIwLCAxLCAyMTEsIDE5MiwgMjAsIDEsIDIyNSwgMjEyLCAyMCwgMSwgMjQ0LCAKKyAgICAxNDgsIDIwLCAxLCAyMjIsIDE0MSwgMjAsIDEsIDIzMiwgOTksIDIwLCAxLCAyMzAsIDIzMSwgMjAsIDEsIDIyOCwgMjM0LCAKKyAgICAyMCwgMSwgMjIzLCA1MiwgMjAsIDEsIDIyMywgMTcyLCAyMCwgMSwgMjM0LCAxNjYsIDIwLCAxLCAyMjksIDgsIDIwLCAxLCAKKyAgICAyMjksIDU3LCAyMCwgMSwgMjI5LCA3OCwgMjAsIDEsIDIyMCwgOCwgMjAsIDEsIDIyNCwgMTQ4LCAyMCwgMSwgMjQzLCAyMzUsIAorICAgIDIwLCAxLCAyNDQsIDM4LCAyMCwgMSwgMjEyLCA2NSwgMjAsIDEsIDE5NywgMjAsIDEsIDIzMiwgMjQyLCAyMCwgMSwgMjI1LCAKKyAgICAxMDksIDIwLCAxLCAyMzIsIDEyMCwgMjAsIDEsIDIzNCwgMjksIDIwLCAxLCAyMzEsIDExNSwgMjAsIDEsIDIyMywgODQsIAorICAgIDIwLCAxLCAyMzEsIDU5LCAyMCwgMSwgMTg1LCAyMCwgMSwgMjE2LCAxMTgsIDIwLCAxLCAyMzQsIDkzLCAyMCwgMSwgMjMwLCAKKyAgICAxNjIsIDIwLCAxLCAyMzEsIDEyMywgMjAsIDEsIDIxNiwgMjMxLCAyMCwgMSwgMjMzLCAyNTIsIDIwLCAxLCAyMTYsIDI0OCwgCisgICAgMjAsIDEsIDIyNywgMjM5LCAyMCwgMSwgMjIxLCAyNTIsIDIwLCAxLCAyNDQsIDE5MywgMjAsIDEsIDIzMywgMjU0LCAyMCwgCisgICAgMSwgMjM0LCAyNSwgMjAsIDM4LCAxNjQsIDIzNCwgNiwgMjAsIDM4LCAxNjQsIDIxNSwgMTExLCAyMCwgMjI4LCAxODMsIDIwLCAKKyAgICAyNDMsIDIzMCwgMjE4LCAxMzAsIDIwLCAyNDksIDIyNywgMjAsIDI0OSwgMjIwLCAyMCwgMjIwLCAxNTEsIDIwLCAyMjQsIAorICAgIDE0LCA3OCwgNTgsIDEsIDI1MCwgOTcsIDEzOCwgMjEwLCAyNTQsIDIyNSwgNjIsIDU4LCAxLCAyNTAsIDk3LCAxMzgsIDIxMSwgCisgICAgNzAsIDIyNSwgNjIsIDU4LCAxLCAyNTAsIDk3LCAxMzgsIDIxMCwgMjU0LCAyMjAsIDg1LCA1OCwgMSwgMjUwLCA5NywgMTM4LCAKKyAgICAyMTEsIDcwLCAyMjAsIDg1LCA1OCwgMSwgMjUwLCA5NywgMTM4LCAyMTAsIDI1NCwgMjI0LCAzMSwgNTgsIDEsIDI1MCwgOTcsIAorICAgIDEzOCwgMjExLCA3MCwgMjI0LCAzMSwgNTgsIDEsIDI1MCwgOTcsIDEzOCwgMjEwLCAyNTQsIDIyMiwgMTQxLCA1OCwgMSwgCisgICAgMjUwLCA5NywgMTM4LCAyMTEsIDcwLCAyMjIsIDE0MSwgNTgsIDEsIDI0NSwgMjEsIDI0NiwgMTE5LCAxMzgsIDEzMCwgNTgsIAorICAgIDEsIDEyNSwgMjQ2LCAxMTksIDEzOCwgMTMwLCA1OCwgMSwgMjMwLCAyMjYsIDI0NiwgMTE5LCAxMzgsIDEzMCwgNTgsIDEsIAorICAgIDEyMSwgMjQ2LCAxMTksIDEzOCwgMTMwLCA1OCwgMSwgMjQ1LCAyMCwgMjQ2LCAxMTksIDEzOCwgMTMwLCA1OCwgMSwgMjQ1LCAKKyAgICAyMSwgMjQ2LCAxMTksIDIzMywgNDAsIDEzOCwgMTMwLCA1OCwgMSwgMTI1LCAyNDYsIDExOSwgMjMzLCA0MCwgMTM4LCAxMzAsIAorICAgIDU4LCAxLCAyMzAsIDIyNiwgMjQ2LCAxMTksIDIzMywgNDAsIDEzOCwgMTMwLCA1OCwgMSwgMTIxLCAyNDYsIDExOSwgMjMzLCAKKyAgICA0MCwgMTM4LCAxMzAsIDU4LCAxLCAyNDUsIDIwLCAyNDYsIDExOSwgMjMzLCA0MCwgMTM4LCAxMzAsIDU4LCAxLCAyNDUsIAorICAgIDIxLCAyMzMsIDQwLCAxMzgsIDEzMCwgNTgsIDEsIDEyNSwgMjMzLCA0MCwgMTM4LCAxMzAsIDU4LCAxLCAyMzAsIDIyNiwgCisgICAgMjMzLCA0MCwgMTM4LCAxMzAsIDU4LCAxLCAxMjEsIDIzMywgNDAsIDEzOCwgMTMwLCA1OCwgMSwgMjQ1LCAyMCwgMjMzLCAKKyAgICA0MCwgMTM4LCAxMzAsIDU4LCAxLCA1OSwgNjcsIDEzMCwgNTgsIDEsIDU5LCAyMTksIDk2LCA1OCwgMSwgNTksIDIwMywgCisgICAgMTMwLCA1OCwgMSwgMjMyLCAxMDksIDQ0LCAyNDksIDE2MiwgMjU0LCAxMTAsIDU4LCAxLCAyMjMsIDE1OCwgMTIwLCA3NCwgCisgICAgNTgsIDEsIDIyMywgMTU4LCAxMjQsIDc0LCA1OCwgMSwgMjIzLCAxNTgsIDI0NSwgMzIsIDc4LCA1OCwgMSwgMjIzLCAxNTgsIAorICAgIDIzNSwgMTk0LCAyNDUsIDMyLCA3OCwgNTgsIDEsIDEyMSwgMjM1LCAxOTQsIDI0NSwgMzIsIDc4LCA1OCwgMSwgMjE4LCAKKyAgICAxMTIsIDIyLCAxMjUsIDIxNiwgMzEsIDU4LCAxLCAyMTgsIDExMiwgMjIsIDEyMSwgMjE2LCAzMSwgNywgNiwgMSwgMjQ1LCAKKyAgICAyMDAsIDI1NCwgMTcxLCA3LCA0LCAxLCAyNDUsIDIwMCwgMjU0LCAxNzEsIDcsIDYsIDEsIDI0NSwgMjAwLCAyNTQsIDE5NywgCisgICAgNywgNCwgMSwgMjQ1LCAyMDAsIDI1NCwgMTk3LCA3LCA2LCAxLCAyNDEsIDIwOCwgNywgNCwgMSwgMjQxLCAyMDgsIDcsIDYsIAorICAgIDEsIDIxNSwgNDAsIDcsIDQsIDEsIDIxNSwgNDAsIDcsIDYsIDEsIDIxNSwgMjMwLCA3LCA0LCAxLCAyMTUsIDIzMCwgNywgNiwgCisgICAgMSwgMjQ5LCAxMTEsIDcsIDQsIDEsIDI0OSwgMTExLCA3LCA2LCAxLCAyNDksIDExMiwgMiwgMjQ5LCAyMjAsIDcsIDQsIDEsIAorICAgIDI0OSwgMTEyLCAyLCAyNDksIDIyMCwgNywgMSwgNCwgNiwgMjQ1LCA3LCA3LCAxLCA0LCA2LCAyMjIsIDkyLCA3LCA2LCAxLCAKKyAgICAyNTUsIDc0LCA3LCA0LCAxLCAyNTUsIDc0LCA3LCA2LCAxLCAyNTQsIDc0LCA3LCA0LCAxLCAyNTQsIDc0LCA3LCA2LCAxLCAKKyAgICAyNTMsIDE5MywgNywgNCwgMSwgMjUzLCAxOTMsIDcsIDYsIDEsIDI1MywgMTc3LCA3LCA0LCAxLCAyNTMsIDE3NywgNywgNiwgCisgICAgMSwgMjUzLCAxNzgsIDIsIDIwMywgMTMwLCA3LCA0LCAxLCAyNTMsIDE3OCwgMiwgMjAzLCAxMzAsIDcsIDYsIDEsIDI1MywgCisgICAgMTY4LCA3LCA0LCAxLCAyNTMsIDE2OCwgNywgNiwgMSwgMjIzLCA1MCwgMjUxLCA2OCwgMiwgMjQ3LCAxMjEsIDcsIDQsIDEsIAorICAgIDIyMywgNTAsIDI1MSwgNjgsIDIsIDI0NywgMTIxLCA3LCA2LCAxLCAyMzUsIDI1LCAyLCA5MSwgNywgNCwgMSwgMjM1LCAyNSwgCisgICAgMiwgOTEsIDcsIDYsIDEsIDIzNSwgMjUsIDIsIDI0OCwgMCwgOTEsIDcsIDQsIDEsIDIzNSwgMjUsIDIsIDI0OCwgMCwgOTEsIAorICAgIDcsIDYsIDEsIDIzNSwgMjUsIDIsIDIxOCwgMTA0LCAyMiwgMjQ4LCAwLCA5MSwgNywgNCwgMSwgMjM1LCAyNSwgMiwgMjE4LCAKKyAgICAxMDQsIDIyLCAyNDgsIDAsIDkxLCA3LCA2LCAxLCAyNTEsIDEzNiwgMTU2LCA3LCA0LCAxLCAyNTEsIDEzNiwgMTU2LCA3LCAKKyAgICA2LCAxLCAyMzMsIDE1MCwgMiwgMTI1LCA5MSwgNywgNCwgMSwgMjMzLCAxNTAsIDIsIDEyNSwgOTEsIDcsIDYsIDEsIDE0NCwgCisgICAgMiwgMTk5LCAyMTgsIDEwNCwgMjI2LCAxMjEsIDcsIDQsIDEsIDE0NCwgMiwgMTk5LCAyMTgsIDEwNCwgMjI2LCAxMjEsIDcsIAorICAgIDYsIDEsIDE0NCwgMiwgMjMyLCAxMjQsIDcsIDQsIDEsIDE0NCwgMiwgMjMyLCAxMjQsIDcsIDYsIDEsIDIyNiwgMTg0LCA3LCAKKyAgICA0LCAxLCAyMjYsIDE4NCwgNywgNiwgMSwgMjI2LCAxMDcsIDIsIDIxOCwgMTA0LCAyMTYsIDE0MCwgMjQ4LCA0MCwgNywgNCwgCisgICAgMSwgMjI2LCAxMDcsIDIsIDIxOCwgMTA0LCAyMTYsIDE0MCwgMjQ4LCA0MCwgNywgNiwgMSwgMjI2LCAxMDcsIDIsIDI0NCwgCisgICAgNTQsIDcsIDQsIDEsIDIyNiwgMTA3LCAyLCAyNDQsIDU0LCA3LCA2LCAxLCAyMjYsIDEwNywgMiwgMjE4LCAyMzAsIDIxNywgCisgICAgNzgsIDcsIDQsIDEsIDIyNiwgMTA3LCAyLCAyMTgsIDIzMCwgMjE3LCA3OCwgNywgNiwgMSwgMjI0LCA5OCwgMiwgMjE4LCAKKyAgICAxMDQsIDIxNiwgMTQwLCAyNDgsIDQwLCA3LCA0LCAxLCAyMjQsIDk4LCAyLCAyMTgsIDEwNCwgMjE2LCAxNDAsIDI0OCwgNDAsIAorICAgIDcsIDYsIDEsIDIyNCwgOTgsIDIsIDI0OCwgMCwgOTEsIDcsIDQsIDEsIDIyNCwgOTgsIDIsIDI0OCwgMCwgOTEsIDcsIDYsIAorICAgIDEsIDIyMywgMjI1LCAyMjIsIDE4NywgNywgNCwgMSwgMjIzLCAyMjUsIDIyMiwgMTg3LCA3LCA2LCAxLCAyMjIsIDEzMSwgCisgICAgMjIyLCAxODcsIDcsIDQsIDEsIDIyMiwgMTMxLCAyMjIsIDE4NywgNywgNiwgMSwgMjE0LCAxMDYsIDIsIDI0OCwgMCwgOTEsIAorICAgIDcsIDQsIDEsIDIxNCwgMTA2LCAyLCAyNDgsIDAsIDkxLCA3LCA2LCAxLCAyMTIsIDEwNiwgNywgNCwgMSwgMjEyLCAxMDYsIAorICAgIDcsIDYsIDEsIDIxMywgMTQ1LCAyMTAsIDE1OSwgNywgNCwgMSwgMjEzLCAxNDUsIDIxMCwgMTU5LCA3LCA2LCAxLCAyMTYsIAorICAgIDE1MywgMiwgOTEsIDcsIDQsIDEsIDIxNiwgMTUzLCAyLCA5MSwgNywgNiwgMSwgMjE2LCAxNTMsIDIsIDIxOCwgMTA0LCAKKyAgICAyMTYsIDE0MCwgMjQ4LCA0MCwgNywgNCwgMSwgMjE2LCAxNTMsIDIsIDIxOCwgMTA0LCAyMTYsIDE0MCwgMjQ4LCA0MCwgNywgCisgICAgNiwgMSwgMjEzLCAyNDUsIDcsIDQsIDEsIDIxMywgMjQ1LCA3LCA2LCAxLCAyNDUsIDY2LCA3LCA0LCAxLCAyNDUsIDY2LCA3LCAKKyAgICA2LCAxLCAyMzUsIDE3MiwgNywgNCwgMSwgMjM1LCAxNzIsIDcsIDYsIDEsIDI0OSwgMjA4LCA3LCA0LCAxLCAyNDksIDIwOCwgCisgICAgNTgsIDEsIDIxNCwgMTMzLCA3LCA0LCAxLCAyNDYsIDcwLCA3LCA0LCAxLCAyMzIsIDg1LCA3LCA0LCAxLCAyMzAsIDgxLCA3LCAKKyAgICA0LCAxLCAyMjcsIDIwMiwgNywgNCwgMSwgMjIyLCAxMzAsIDcsIDEsIDQsIDYsIDIyMiwgMTMwLCA3LCA0LCAxLCAyMTUsIAorICAgIDEwOSwgNywgNCwgMSwgMjE0LCAxOTcsIDcsIDYsIDEsIDIzNSwgMjE0LCAyNDksIDYxLCA3LCA0LCAxLCAyMzUsIDIxNCwgCisgICAgMjQ5LCA2MSwgNywgNiwgMSwgMjM1LCAyMTQsIDI0NSwgNywgNywgNCwgMSwgMjM1LCAyMTQsIDI0NSwgNywgNywgNiwgMSwgCisgICAgMjM1LCAyMTQsIDI0MywgMjAzLCA3LCA2LCAxLCAyMTUsIDk0LCAyMzUsIDIxNCwgMjQzLCAyMDMsIDcsIDQsIDEsIDIxNSwgCisgICAgOTQsIDIzNSwgMjE0LCAyNDMsIDIwMywgNywgNiwgMSwgMjE1LCA5NCwgMTU2LCA3LCA0LCAxLCAyMTUsIDk0LCAxNTYsIDcsIAorICAgIDYsIDEsIDIzNSwgMjE0LCAxNTMsIDcsIDQsIDEsIDIzNSwgMjE0LCAxNTMsIDcsIDYsIDEsIDIzNSwgMjE0LCAyMjIsIDkyLCAKKyAgICA3LCA0LCAxLCAyMzUsIDIxNCwgMjIyLCA5MiwgNywgNiwgMSwgMjM1LCAyMTQsIDIxNywgMTUzLCA3LCA0LCAxLCAyMzUsIAorICAgIDIxNCwgMjE3LCAxNTMsIDU4LCAxLCAxMjEsIDI1MCwgMzIsIDI1NSwgMTUsIDU4LCAxLCAyNDksIDIyNywgNTgsIDEsIDIxOSwgCisgICAgMjUyLCAyNDUsIDk5LCA1MCwgNywgNiwgMSwgMjIyLCAwLCA3LCA0LCAxLCAyMjIsIDAsIDcsIDYsIDEsIDIxNSwgOTQsIAorICAgIDI0MiwgNjEsIDcsIDQsIDEsIDIzMywgMTUwLCAyLCAyMjMsIDU2LCAyNDEsIDUzLCAyMiwgMjUyLCA0MiwgNywgNiwgMSwgCisgICAgMjMwLCAyNywgMiwgMjQ4LCA0MCwgNywgNCwgMSwgMjMwLCAyNywgMiwgMjQ4LCA0MCwgNywgNiwgMSwgMjUxLCA2OCwgMiwgCisgICAgMTMwLCA3LCA0LCAxLCAyNTEsIDY4LCAyLCAxMzAsIDcsIDYsIDEsIDI0MywgMjA0LCAyLCAyMjYsIDI0OSwgOTEsIDcsIDQsIAorICAgIDEsIDI0MywgMjA0LCAyLCAyMjYsIDI0OSwgOTEsIDcsIDYsIDEsIDIzNSwgMjUsIDIsIDIyNiwgMjQ5LCA5MSwgNywgNCwgMSwgCisgICAgMjM1LCAyNSwgMiwgMjI2LCAyNDksIDkxLCA3LCA2LCAxLCAyMzAsIDI3LCAyLCAyMjYsIDI0OSwgOTEsIDcsIDQsIDEsIAorICAgIDIzMCwgMjcsIDIsIDIyNiwgMjQ5LCA5MSwgNywgNiwgMSwgMjIzLCAyMjUsIDIsIDIyNiwgMjQ5LCA5MSwgNywgNCwgMSwgCisgICAgMjIzLCAyMjUsIDIsIDIyNiwgMjQ5LCA5MSwgNywgNiwgMSwgMjIyLCA5MywgMiwgMjI2LCAyNDksIDkxLCA3LCA0LCAxLCAKKyAgICAyMjIsIDkzLCAyLCAyMjYsIDI0OSwgOTEsIDcsIDYsIDEsIDI0MiwgNjIsIDIsIDEwMywgNTgsIDEsIDYsIDI0MiwgNjIsIDIsIAorICAgIDkxLCA1OCwgMSwgNCwgMjcsIDIyNiwgMjM1LCA3LCAxLCA0LCA2LCAyMTUsIDk0LCAxOTMsIDcsIDI0NSwgMTA0LCAxLCAKKyAgICAyMjMsIDUwLCAyNDUsIDcsIDcsIDI0NSwgMTA0LCAxLCAyMjMsIDUwLCAyMjYsIDEwNiwgNywgMjQ1LCAxMDQsIDEsIDIzNSwgCisgICAgMTk0LCAxOTMsIDcsIDI0NSwgMTA0LCAxLCAyNDAsIDE1NSwgMjMyLCAxMzAsIDcsIDI0NSwgMTA0LCAxLCAyNTQsIDI0LCAKKyAgICAxOTMsIDIxNywgMjMxLCAyMjksIDIxNSwgMSwgNjEsIDIxNywgMjMxLCAyMjksIDIxNSwgMSwgNzMsIDIxNywgMjMxLCAyMjksIAorICAgIDIxNSwgNSwgMjQ2LCA0OSwgMjE3LCAyMzEsIDIyOSwgMjE1LCAxLCA3MCwgMjE3LCAyMzEsIDIyOSwgMjE1LCAxLCA3NSwgCisgICAgMjE3LCAyMzEsIDIyOSwgMjE1LCAxLCA3NiwgMjE3LCAyMzEsIDIyOSwgMjE1LCA1LCAyNDEsIDI1NCwgMjE3LCAyMzEsIAorICAgIDIyOSwgMjE1LCAxLCAyMzQsIDI5LCAyMTcsIDIzMSwgMjI5LCAyMTUsIDEsIDIzNCwgMTA2LCAyMTcsIDIzMSwgMjI5LCAKKyAgICAyMTUsIDEsIDI0MiwgMTc1LCAyMTcsIDIzMSwgMjI5LCAyMTUsIDEsIDI0MiwgMjI1LCAyMTcsIDIzMSwgMjI5LCAyMTUsIDUsIAorICAgIDI1NCwgNzYsIDIxNywgMjMxLCAyMjksIDIxNSwgMSwgMjQ5LCAyMzksIDIxNywgMjMxLCAyMjksIDIxNSwgMSwgMjUwLCA4NywgCisgICAgMjE3LCAyMzEsIDIyOSwgMjE1LCAxLCAyMzUsIDY5LCAyMTcsIDIzMSwgMjI5LCAyMTUsIDEsIDIzNSwgMTEwLCAyMTcsIAorICAgIDIzMSwgMjI5LCAyMTUsIDEsIDIxNSwgMTM0LCAyMTcsIDIzMSwgMjI5LCAyMTUsIDEsIDIxNSwgMTQwLCAyMTcsIDIzMSwgCisgICAgMjI5LCAyMTUsIDEsIDI0OCwgMTA2LCAyMTcsIDIzMSwgMjI5LCAyMTUsIDEsIDI0OCwgMTE1LCAyMTcsIDIzMSwgMjI5LCAKKyAgICAyMTUsIDEsIDExMSwgMjE3LCAyMzEsIDIyOSwgMjE1LCAxLCAyMTYsIDE1NywgMjE3LCAyMzEsIDIyOSwgMjE1LCAxLCAyNDcsIAorICAgIDE0NiwgMjE3LCAyMzEsIDIyOSwgMjE1LCAxLCAyNDgsIDgsIDIxNywgMjMxLCAyMjksIDIxNSwgMSwgMjI4LCA3NSwgMjE3LCAKKyAgICAyMzEsIDIyOSwgMjE1LCAxLCAyMjUsIDE3LCAyMTcsIDIzMSwgMjI5LCAyMTUsIDEsIDIyNSwgMTIyLCAyMTcsIDIzMSwgCisgICAgMjI5LCAyMTUsIDEsIDI1MSwgMjA2LCAyMTcsIDIzMSwgMjI5LCAyMTUsIDEsIDI1MiwgMTEsIDIxNywgMjMxLCAyMjksIAorICAgIDIxNSwgMSwgMjMwLCAxNjIsIDIxNywgMjMxLCAyMjksIDIxNSwgMSwgMjIyLCAyMTIsIDIxNywgMjMxLCAyMjksIDIxNSwgMSwgCisgICAgMjMyLCAxNTcsIDIxNywgMjMxLCAyMjksIDIxNSwgMSwgMjIyLCAxNjYsIDIxNywgMjMxLCAyMjksIDIxNSwgMSwgMjE5LCAKKyAgICA1OSwgMjE3LCAyMzEsIDIyOSwgMjE1LCAxLCAyNDEsIDY5LCAyMTcsIDIzMSwgMjI5LCAyMTUsIDI1LCA1LCA2MSwgMjE3LCAKKyAgICAyMzEsIDIyOSwgMjE1LCAyNSwgNSwgNzMsIDIxNywgMjMxLCAyMjksIDIxNSwgMjUsIDUsIDcwLCAyMTcsIDIzMSwgMjI5LCAKKyAgICAyMTUsIDI1LCA1LCA3NSwgMjE3LCAyMzEsIDIyOSwgMjE1LCAyNSwgNSwgMjI2LCAxODQsIDIxNywgMjMxLCAyMjksIDIxNSwgCisgICAgMjI1LCAxMywgMjMxLCAxNTksIDIxNywgMjMxLCAyMjksIDIxNSwgMjI1LCAxMywgMjMxLCAxNTgsIDIxNywgMjMxLCAyMjksIAorICAgIDIxNSwgMjI1LCAxMywgMjMxLCAxNTcsIDIxNywgMjMxLCAyMjksIDIxNSwgMjI1LCAxMywgMjMxLCAxNTYsIDIyOCwgNTcsIAorICAgIDIzNSwgMjQxLCAyNDQsIDMsIDEyMywgMjI0LCAyMiwgMjI4LCA1NywgMjM1LCAyNDEsIDI0NCwgMywgMTIzLCAyNDIsIDI4LCAKKyAgICAyMjgsIDU3LCAyMzUsIDI0MSwgMjQ0LCAzLCAxMzQsIDIyNCwgMjAsIDIyOCwgNTcsIDIzNSwgMjQxLCAyNDQsIDMsIDEyMywgCisgICAgMjE5LCAxMTgsIDIyOCwgNTcsIDIzNSwgMjQxLCAyNDQsIDMsIDEyMywgMjQ1LCAxODksIDIyOCwgNTcsIDIzNSwgMjQxLCAKKyAgICAyNDQsIDMsIDEzNCwgMjE5LCAxMTcsIDIyOCwgNTcsIDIzNSwgMjQxLCAyMjQsIDIzLCA3OCwgMjI4LCA1NywgMjM1LCAyNDEsIAorICAgIDIyNSwgNDEsIDc4LCAyMjgsIDU3LCAyMzUsIDI0MSwgMjIyLCAxMTksIDc4LCAyMjgsIDU3LCAyMzUsIDI0MSwgMjI0LCAyNCwgCisgICAgNzgsIDIyNSwgMTQ1LCAxLCAxNzYsIDIyNSwgMTQ1LCAxLCAyMzQsIDEzMywgMjI1LCAxNDUsIDEsIDI0MywgMTM2LCAyMjUsIAorICAgIDE0NSwgMSwgMjI5LCA3OCwgMjI1LCAxNDUsIDEsIDI1MSwgMzQsIDIyNSwgMTQ1LCAxLCAyNTAsIDE1OCwgMjI1LCAxNDUsIAorICAgIDEsIDIzNSwgMTQyLCAyMjUsIDE0NSwgMSwgMjI3LCAxNjYsIDIyNSwgMTQ1LCAxLCAyMTcsIDEwNiwgMjI1LCAxNDUsIDEsIAorICAgIDIxNiwgMjA5LCAyMjUsIDE0NSwgMSwgMjQ4LCAyMjIsIDIyNSwgMTQ1LCAxLCAxOTcsIDIyNSwgMTQ1LCAxLCAxOTAsIDIyNSwgCisgICAgMTQ1LCAxLCAyMjUsIDE0OCwgMjI1LCAxNDUsIDEsIDI1MiwgMTkyLCAyMjUsIDE0NSwgMSwgMTg1LCAyMjUsIDE0NSwgMSwgCisgICAgMjE1LCAxODQsIDIyNSwgMTQ1LCAxLCAyMTUsIDE3NiwgMjI1LCAxNDUsIDEsIDI0NiwgMzksIDIyNSwgMTQ1LCAxLCAyMTIsIAorICAgIDY1LCAyMjUsIDE0NSwgMSwgMjEwLCA4MiwgMjI1LCAxNDUsIDEsIDIxMCwgMTE2LCAyMjUsIDE0NSwgMSwgNCwgNjEsIDIyNSwgCisgICAgMTQ1LCAxLCAxOTEsIDIyNSwgMTQ1LCAxLCAyMDUsIDIyNSwgMTQ1LCAxLCAyMzMsIDEzNiwgMjI1LCAxNDUsIDEsIDIyMCwgCisgICAgMTAzLCAyMjUsIDE0NSwgMSwgMjA2LCAyMjUsIDE0NSwgMSwgMTYyLCAyMjUsIDE0NSwgMSwgNjEsIDIyNSwgMTQ1LCAxLCAKKyAgICA3MywgMjI1LCAxNDUsIDEsIDcwLCAyMjUsIDE0NSwgMSwgNzUsIDIyNSwgMTQ1LCAxLCA3NiwgMjI1LCAxNDUsIDEsIDIyNCwgCisgICAgODksIDIyNSwgMTQ1LCAxLCAyMTEsIDE2NSwgMjI1LCAxNDUsIDEsIDI0NCwgMTk3LCAyMjUsIDE0NSwgMSwgMjQzLCAzMCwgCisgICAgMjI1LCAxNDUsIDEsIDI0NSwgMjEwLCAyMjUsIDE0NSwgMjE4LCA3NCwgMSwgMjEyLCA2NSwgMjI1LCAxNDUsIDIxOCwgNzQsIAorICAgIDEsIDE5MSwgMjI1LCAxNDUsIDEsIDIxNSwgMTU3LCAyMjUsIDE0NSwgMSwgMjE1LCAxNDUsIDIyNSwgMTQ1LCAxLCAyNDgsIAorICAgIDEzNiwgMjI1LCAxNDUsIDEsIDIyOCwgMTExLCAyMjUsIDE0NSwgMSwgMjU0LCAxNDIsIDE5MSwgMjI1LCAxNDUsIDEsIDIxMywgCisgICAgMTM0LCAyMjAsIDEwMywgMjI1LCAxNDUsIDEsIDIxMywgMTM1LCAxNjIsIDIyNSwgMTQ1LCAxLCAyNTMsIDIyNCwgMjQ0LCAKKyAgICAxOTcsIDIyNSwgMTQ1LCAyMTgsIDc0LCAxLCAyMDUsIDIyNSwgMTQ1LCAyMTgsIDI2LCAxLCAyMDUsIDIyNSwgMTQ1LCAxLCAKKyAgICAyNTEsIDAsIDIyNSwgMTQ1LCAyMTksIDE1NiwgMjQxLCAyMzcsIDc4LCAyMjUsIDE0NSwgNTIsIDI0MSwgMjM3LCA3OCwgCisgICAgMjI1LCAxNDUsIDE2NCwgMjIwLCA5NiwgMjI1LCAxNDUsIDE2NCwgNTIsIDIyMCwgOTYsIDE3OSwgNSwgMjU0LCA3NiwgMTc5LCAKKyAgICA1LCAyMTMsIDE0NywgMTc5LCAxLCA2MSwgMTc5LCAxLCAyNTUsIDc0LCAxNzksIDEsIDczLCAxNzksIDEsIDIzNiwgMzQsIAorICAgIDE3OSwgMSwgNzAsIDE3OSwgMSwgMjE0LCAxMTgsIDE3OSwgMSwgMTQ5LCAxNTMsIDE3OSwgMSwgMTQ5LCAyMjIsIDE4MSwgCisgICAgMTc5LCAxLCAxNDksIDE1NiwgMTc5LCAxLCAxNDksIDIzMiwgMTg2LCAxNzksIDEsIDc1LCAxNzksIDEsIDI0NSwgMjEwLCAKKyAgICAxNzksIDEsIDI1NCwgMjAyLCAxNzksIDEsIDc2LCAxNzksIDEsIDIyNiwgMTg0LCAxNzksIDEsIDI1MywgMTkzLCAxNzksIDEsIAorICAgIDE3NiwgMTc5LCAxLCAyMzQsIDEzMywgMTc5LCAxLCAyNDMsIDEzNiwgMTc5LCAxLCAyNDIsIDI1MCwgMTc5LCAxLCAyMjksIAorICAgIDc4LCAxNzksIDEsIDI1MSwgMzQsIDE3OSwgMSwgMjUwLCAxNTgsIDE3OSwgMSwgMjM1LCAxNDIsIDE3OSwgMSwgMjM1LCAKKyAgICAxMTUsIDE3OSwgMSwgMjI3LCAxNjYsIDE3OSwgMSwgMjE1LCAxNTcsIDE3OSwgMSwgMjE1LCAxNDUsIDE3OSwgMSwgMjQ4LCAKKyAgICAxMzYsIDE3OSwgMSwgMjQ4LCAxMjAsIDE3OSwgMSwgMjI4LCAxMTEsIDE3OSwgMSwgMjE3LCAxMDYsIDE3OSwgMSwgMjE2LCAKKyAgICAyMDksIDE3OSwgMSwgMjQ4LCAyMjIsIDE3OSwgMSwgMjQ4LCAyNiwgMTc5LCAxLCAxOTcsIDE3OSwgMSwgMTkwLCAxNzksIDEsIAorICAgIDIyNSwgMTQ4LCAxNzksIDEsIDI1MiwgMTkyLCAxNzksIDEsIDI1MiwgMTksIDE3OSwgMSwgMTg1LCAxNzksIDEsIDE5MSwgCisgICAgMTc5LCAxLCAyMDUsIDE3OSwgMSwgMjMzLCAxMzYsIDE3OSwgMSwgMjE0LCAyNywgMTc5LCAxLCAyMjAsIDEwMywgMTc5LCAxLCAKKyAgICAyMTgsIDIyNCwgMTc5LCAxLCAyMDYsIDE3OSwgMSwgMTYyLCAxNzksIDEsIDIzMiwgMTg1LCAxNzksIDExNiwgNSwgMjQyLCAKKyAgICA0NSwgMTc5LCAyNSwgNSwgMjU1LCA3NCwgMTc5LCAyNSwgNSwgNzMsIDE3OSwgMjUsIDUsIDIzNiwgMzQsIDE3OSwgMjUsIDUsIAogICAgIDcwLCAxNzksIDI1LCA1LCAyMTQsIDExOCwgMTc5LCAyNSwgNSwgMTQ5LCAxNTMsIDE3OSwgMjUsIDUsIDE0OSwgMjIyLCAKLSAgICAxODAsIDE3OSwgMjUsIDUsIDE0OSwgMTU2LCAxNzksIDI1LCA1LCAxNDksIDIzMiwgMTg1LCAxNzksIDI1LCA1LCA3NSwgCi0gICAgMTc5LCAyNSwgNSwgMjQ1LCAyMDksIDE3OSwgMjUsIDUsIDI1NCwgMjAxLCAxNzksIDI1LCA1LCA3NiwgMTc5LCAyNSwgNSwgCi0gICAgMjI2LCAxODMsIDE3OSwgMjUsIDUsIDI1MywgMTkyLCAxNzksIDUsIDIxMywgMTUyLCAxNzksIDI0OCwgMTc4LCAxNzksIDUyLCAKLSAgICAyNDgsIDE3OCwgMTc5LCAyMSwgMjEwLCA4NiwgMTc5LCAyMSwgMTEwLCAxNzksIDIxLCAxMDUsIDE3OSwgMjEsIDE1OCwgCisgICAgMTgxLCAxNzksIDI1LCA1LCAxNDksIDE1NiwgMTc5LCAyNSwgNSwgMTQ5LCAyMzIsIDE4NiwgMTc5LCAyNSwgNSwgNzUsIAorICAgIDE3OSwgMjUsIDUsIDI0NSwgMjEwLCAxNzksIDI1LCA1LCAyNTQsIDIwMiwgMTc5LCAyNSwgNSwgNzYsIDE3OSwgMjUsIDUsIAorICAgIDIyNiwgMTg0LCAxNzksIDI1LCA1LCAyNTMsIDE5MywgMTc5LCA1LCAyMTMsIDE1MiwgMTc5LCAyNDgsIDE3OSwgMTc5LCA1MiwgCisgICAgMjQ4LCAxNzksIDE3OSwgMjEsIDIxMCwgODYsIDE3OSwgMjEsIDExMCwgMTc5LCAyMSwgMTA1LCAxNzksIDIxLCAxNTgsIAogICAgIDE3OSwgMjEsIDE2MSwgMTc5LCAyMSwgMTg5LCAxNzksIDIxLCAxOTQsIDE3OSwgMjEsIDE5OCwgMTc5LCAyMSwgMTk1LCAKICAgICAxNzksIDIxLCAyMDAsIDM4LCA4NCwgMjEsIDIxMCwgODYsIDM4LCA4NCwgMjEsIDExMCwgMzgsIDg0LCAyMSwgMTA1LCAzOCwgCiAgICAgODQsIDIxLCAxNTgsIDM4LCA4NCwgMjEsIDE2MSwgMzgsIDg0LCAyMSwgMTg5LCAzOCwgODQsIDIxLCAxOTQsIDM4LCA4NCwgCiAgICAgMjEsIDE5OCwgMzgsIDg0LCAyMSwgMTk1LCAzOCwgODQsIDIxLCAyMDAsIDM4LCA4NCwgMSwgNjEsIDM4LCA4NCwgMSwgNzAsIAogICAgIDM4LCA4NCwgMSwgMTc2LCAzOCwgODQsIDEsIDE5NywgMzgsIDg0LCAxLCAxOTAsIDM4LCA4NCwgMSwgMjA1LCAzOCwgODQsIAotICAgIDEsIDIxMywgMTc2LCAzOCwgODQsIDUsIDI1MywgMTc1LCA4NCwgNSwgMjE5LCAxNywgMjUwLCAyNTUsIDg0LCA1LCAyNTEsIAotICAgIDAsIDIxMywgMTUyLCA4NCwgNSwgNTIsIDI1MSwgMCwgMjEzLCAxNTIsIDg0LCA1LCAyNTEsIDAsIDEwNSwgODQsIDUsIDI1MSwgCi0gICAgMCwgMTU4LCA4NCwgNSwgMjUxLCAwLCAyNTMsIDE3NSwgODQsIDUsIDIyNCwgMTI0LCA4NCwgMjQzLCAxMDAsIDI0NCwgMTAzLCAKLSAgICA4NCwgMjUwLCAyMzgsIDg0LCAyNDEsIDIzMCwgMjM0LCAxODgsIDIzMiwgMjQyLCAyMSwgMjEwLCA4NiwgMjM0LCAxODgsIAotICAgIDIzMiwgMjQyLCAyMSwgMTEwLCAyMzQsIDE4OCwgMjMyLCAyNDIsIDIxLCAxMDUsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMjEsIAotICAgIDE1OCwgMjM0LCAxODgsIDIzMiwgMjQyLCAyMSwgMTYxLCAyMzQsIDE4OCwgMjMyLCAyNDIsIDIxLCAxODksIDIzNCwgMTg4LCAKLSAgICAyMzIsIDI0MiwgMjEsIDE5NCwgMjM0LCAxODgsIDIzMiwgMjQyLCAyMSwgMTk4LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDIxLCAKLSAgICAxOTUsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMjEsIDIwMCwgMjM0LCAxODgsIDIzMiwgMjQyLCAxLCAxNzYsIDIzNCwgMTg4LCAKLSAgICAyMzIsIDI0MiwgMSwgMjM0LCAxMzIsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjQzLCAxMzUsIDIzNCwgMTg4LCAyMzIsIAotICAgIDI0MiwgMSwgMjI5LCA3NywgMjM0LCAxODgsIDIzMiwgMjQyLCAxLCAyMDYsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjIwLCAKLSAgICAxMDIsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjEwLCAxMTYsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjI3LCAxNjUsIAotICAgIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjE3LCAxMDUsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjQwLCAyMjYsIDIzNCwgCi0gICAgMTg4LCAyMzIsIDI0MiwgMSwgMTk3LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDE5MCwgMjM0LCAxODgsIDIzMiwgMjQyLCAxLCAKLSAgICAyMjUsIDE0NywgMjM0LCAxODgsIDIzMiwgMjQyLCAxLCAxODQsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjQ4LCAyMjEsIAotICAgIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjUyLCAxOTEsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjA1LCAyMzQsIDE4OCwgCi0gICAgMjMyLCAyNDIsIDEsIDE5MSwgMjM0LCAxODgsIDIzMiwgMjQyLCAxLCAyMzMsIDEzNSwgMjM0LCAxODgsIDIzMiwgMjQyLCAxLCAKLSAgICAyMTIsIDY1LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDIxNiwgMjA4LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDE2MiwgCi0gICAgMjM0LCAxODgsIDIzMiwgMjQyLCAxLCAyMTQsIDI3LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDI1MSwgMzMsIDIzNCwgMTg4LCAKLSAgICAyMzIsIDI0MiwgMSwgNjEsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjI2LCAyMzQsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgCi0gICAgNzMsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjI2LCAxODMsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMjUsIDIxNCwgMjE0LCAKLSAgICAyMzQsIDE4OCwgMjMyLCAyNDIsIDI1LCA3NSwgMjM0LCAxODgsIDIzMiwgMjQyLCAyNSwgNzAsIDIzNCwgMTg4LCAyMzIsIAotICAgIDI0MiwgMjUsIDI0NSwgMjA5LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDI1LCA3NiwgMjM0LCAxODgsIDIzMiwgMjQyLCAxMzgsIAotICAgIDIyNSwgMzAsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMTM4LCAyNTEsIDEyLCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEzOCwgMjUxLCAKLSAgICAxMywgMjI1LCAzMCwgMjM0LCAxODgsIDIzMiwgMjQyLCA1LCAyNDksIDc3LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDUsIDIxOSwgCi0gICAgMTk5LCAyMjMsIDkzLCAxLCAxNzYsIDIyMywgOTMsIDEsIDI0MywgMTM1LCAyMjMsIDkzLCAxLCAyMjksIDc3LCAyMjMsIDkzLCAKLSAgICAxLCAyMTcsIDEwNSwgMjIzLCA5MywgMSwgMjQ4LCAyMjEsIDIyMywgOTMsIDEsIDE5NywgMjIzLCA5MywgMSwgMTkwLCAyMjMsIAotICAgIDkzLCAxLCAyNTIsIDE5MSwgMjIzLCA5MywgMSwgMTg0LCAyMjMsIDkzLCAxLCAyNTEsIDMzLCAyMjMsIDkzLCAxLCAyMzUsIAotICAgIDE0MSwgMjIzLCA5MywgMSwgMjI3LCAxNjUsIDIyMywgOTMsIDEsIDIwNiwgMjIzLCA5MywgMSwgMjA1LCAyMjMsIDkzLCAxLCAKLSAgICAyMzMsIDEzNSwgMjIzLCA5MywgMSwgMTkxLCAyMjMsIDkzLCAxLCAyMTIsIDY1LCAyMjMsIDkzLCAxLCAxNjIsIDIyMywgOTMsIAotICAgIDEsIDIzMSwgMTI0LCAyMjMsIDkzLCAxLCAyMjksIDU2LCAyMjMsIDkzLCAxLCAyMjksIDE0OCwgMjIzLCA5MywgMSwgMjI3LCAKLSAgICAxMzUsIDIyMywgOTMsIDEsIDYxLCAyMjMsIDkzLCAyNSwgNSwgNzMsIDIyMywgOTMsIDI1LCA1LCA3MCwgMjIzLCA5MywgMjUsIAotICAgIDUsIDc1LCAyMjMsIDkzLCAyNSwgNSwgMjU0LCAyMDEsIDIyMywgOTMsIDI1LCA1LCA3NiwgMjIzLCA5MywgMjUsIDUsIDI1MywgCi0gICAgMTkyLCAyMjMsIDkzLCAyNSwgNSwgMjQ1LCA1NSwgMjIzLCA5MywgMjUsIDUsIDI0NSwgMjMzLCAyMjMsIDkzLCAxMTYsIDUsIAotICAgIDIyOSwgNzksIDIyMywgOTMsIDExNiwgNSwgMjMwLCAyNSwgMjIzLCA5MywgMTE2LCA1LCAxNTMsIDIyMywgOTMsIDExNiwgNSwgCi0gICAgMjQyLCA2MCwgMjIzLCA5MywgMjEzLCAxNTIsIDIyMywgOTMsIDIyMSwgMTczLCA3OCwgMjQsIDEwMCwgMjE2LCA5NywgMjQsIAotICAgIDEwMCwgMjE2LCA5NiwgMjQsIDEwMCwgMjE2LCA5NCwgMjQsIDEwMCwgMjE2LCA5OSwgMjQsIDEwMCwgMjIzLCAyMSwgMjQsIAotICAgIDEwMCwgMjIzLCA1LCAyNCwgMTAwLCAyMjMsIDAsIDI0LCAxMDAsIDIyMywgMiwgMjQsIDEwMCwgMjIzLCAxOCwgMjQsIDEwMCwgCi0gICAgMjIzLCAxMSwgMjQsIDEwMCwgMjIzLCA0LCAyNCwgMTAwLCAyMjMsIDIzLCAyNCwgMTAwLCAyMjMsIDYsIDI0LCAxMDAsIAotICAgIDIyMywgMjUsIDI0LCAxMDAsIDIyMywgMjIsIDI0LCAxMDAsIDIzMCwgMjEzLCAyNCwgMTAwLCAyMzAsIDIwNCwgMjQsIDEwMCwgCi0gICAgMjMwLCAyMDcsIDI0LCAxMDAsIDIyNSwgODAsIDI0LCAxMDAsIDIyNSwgOTEsIDI0LCAxMDAsIDIyNSwgOTIsIDI0LCAxMDAsIAotICAgIDIxOCwgMjA3LCAyNCwgMTAwLCAyMzYsIDQ2LCAyNCwgMTAwLCAyMzYsIDUzLCAyNCwgMTAwLCAyMTgsIDIxOCwgMjQsIDEwMCwgCi0gICAgMjE4LCAyMDUsIDI0LCAxMDAsIDIyNSwgMTMwLCAyNCwgMTAwLCAyNDEsIDE2NywgMjQsIDEwMCwgMjE4LCAyMDIsIDE1NSwgCi0gICAgNSwgMjI2LCAyNywgMTU1LCA1LCAyNTAsIDE4NywgMTU1LCA1LCAyMzMsIDY2LCAxNTUsIDUsIDIxMSwgMjQzLCAxNTUsIDEsIAotICAgIDYxLCAxNTUsIDEsIDI0MCwgMTU0LCAyMzQsIDE5MSwgMTU1LCAxLCA3MywgMTU1LCAxLCAyMzYsIDMzLCAxNTUsIDEsIDcwLCAKLSAgICAxNTUsIDEsIDIyNiwgOTAsIDI1MCwgMTYzLCAxNTUsIDEsIDIyOSwgNzgsIDIzMywgMjgsIDE1NSwgMSwgMjI5LCA3OCwgCi0gICAgMjMzLCAyOSwgMjIzLCAxNDIsIDE1NSwgMSwgNzUsIDE1NSwgMSwgMjU0LCAyMDEsIDE1NSwgMSwgNzYsIDE1NSwgMSwgMTc2LCAKLSAgICAxNTUsIDEsIDIzNSwgMTMsIDIyMSwgMjI4LCAxNTUsIDEsIDIzNSwgMTMsIDIzMCwgNjYsIDE1NSwgMSwgMjQzLCAxMzUsIAotICAgIDE1NSwgMSwgMjQzLCAxMzYsIDIzMCwgNjYsIDE1NSwgMSwgMjI5LCA3NywgMTU1LCAxLCAyNTEsIDMzLCAxNTUsIDEsIDI1MSwgCi0gICAgMzQsIDIzMCwgNjYsIDE1NSwgMSwgMjM1LCAxNDEsIDE1NSwgMSwgMjI3LCAxNjYsIDIzMCwgNjYsIDE1NSwgMSwgMjM1LCAKLSAgICAxNDIsIDIzMSwgMjA3LCAxNTUsIDEsIDIyNywgMTY1LCAxNTUsIDEsIDIxNSwgMTU2LCAxNTUsIDEsIDIxNSwgMTU3LCAyMzEsIAotICAgIDIwNywgMTU1LCAxLCAyNDgsIDEzNSwgMTU1LCAxLCAyNDgsIDEzNiwgMjMxLCAyMDcsIDE1NSwgMSwgMjI5LCAyMjksIDIzMCwgCi0gICAgNjYsIDE1NSwgMSwgMjE3LCAxMDUsIDE1NSwgMSwgMjE3LCAxMDYsIDIzMCwgNjYsIDE1NSwgMSwgMjQ4LCAyMjEsIDE1NSwgCi0gICAgMSwgMjQ4LCAyMjIsIDIzMSwgMjA3LCAxNTUsIDEsIDE5NywgMTU1LCAxLCAxOTAsIDE1NSwgMSwgMjI2LCA5MCwgMjMwLCAKLSAgICA2NiwgMTU1LCAxLCAyNTIsIDE5MSwgMTU1LCAxLCAyNTIsIDE5MiwgMjMwLCA2NiwgMTU1LCAxLCAxODQsIDE1NSwgMSwgCi0gICAgMTkxLCAxNTUsIDEsIDIwNSwgMTU1LCAxLCAyMjMsIDE4OCwgMjU0LCAyMTAsIDE1NSwgMSwgMjMzLCAxMzUsIDE1NSwgMSwgCi0gICAgMjEyLCA2NSwgMTU1LCAxLCAyMjIsIDM0LCAyMzAsIDY2LCAxNTUsIDEsIDIyMiwgMzQsIDIzMSwgMjA3LCAxNTUsIDEsIAotICAgIDIwNiwgMTU1LCAxLCAxNjIsIDE1NSwgNSwgMjUwLCAxODgsIDIxNiwgMjUwLCAxNTUsIDI1LCA1LCAyMTcsIDQ3LCAxNTUsIAotICAgIDI1LCA1LCAyMTYsIDM1LCAxNTUsIDI1LCA1LCAyMTEsIDE5MCwgMTU1LCAyNSwgNSwgMjExLCAxOTEsIDIzMSwgNjksIDE1NSwgCi0gICAgMjUsIDUsIDIxOCwgNDcsIDE1NSwgMjUsIDUsIDIxOCwgNDgsIDIzMSwgNTcsIDE1NSwgMjUsIDUsIDIxNywgNjUsIDE1NSwgCi0gICAgMjUsIDUsIDI0NywgMTk0LCAyMzAsIDY1LCAxNTUsIDI1LCA1LCAyMjUsIDE4NCwgMTU1LCAxMTYsIDUsIDIzNCwgMTU4LCAKLSAgICAxNTUsIDExNiwgNSwgMjI1LCAxOTYsIDE1NSwgMTE2LCA1LCAyNTEsIDE5LCAxNTUsIDIyNiwgNDAsIDE1NSwgNDMsIDIyMywgCi0gICAgNjksIDE1NSwgNDQsIDIyMywgNjksIDE1NSwgMjI2LCA3OSwgMjU0LCAxMTcsIDE1NSwgMjI2LCA3OSwgMjMxLCAyMjQsIAotICAgIDE1NSwgMjI2LCA3OSwgMjMyLCA4OCwgMTU1LCAyMjYsIDc5LCAyMTEsIDIzOCwgMTU1LCAyMjYsIDc5LCAyMjYsIDQxLCAKLSAgICAxNTUsIDIyNiwgNzksIDIzMiwgMjA1LCAxNTUsIDIyNiwgNzksIDIzMiwgODIsIDE1NSwgMjI2LCA3OSwgMjU0LCAyNDksIAotICAgIDE1NSwgMjI2LCA3OSwgMjU0LCAyNTAsIDI1NCwgMjQ5LCAxNTUsIDIyNiwgNzksIDIyNSwgNTEsIDE1NSwgMjE1LCA5NCwgCi0gICAgMjI2LCA3OSwgMjI1LCA1MSwgMTU1LCAyMjYsIDM2LCAxNTUsIDIxLCAyMTAsIDg2LCAxNTUsIDIxLCAxMTAsIDE1NSwgMjEsIAorICAgIDEsIDIxMywgMTc2LCAzOCwgODQsIDUsIDI1MywgMTc2LCA4NCwgNSwgMjE5LCAxOCwgMjUxLCAwLCA4NCwgNSwgMjUxLCAxLCAKKyAgICAyMTMsIDE1MiwgODQsIDUsIDUyLCAyNTEsIDEsIDIxMywgMTUyLCA4NCwgNSwgMjUxLCAxLCAxMDUsIDg0LCA1LCAyNTEsIDEsIAorICAgIDE1OCwgODQsIDUsIDI1MSwgMSwgMjUzLCAxNzYsIDg0LCA1LCAyMjQsIDEyNSwgODQsIDI0MywgMTAxLCAyNDQsIDEwNCwgCisgICAgODQsIDI1MCwgMjM5LCA4NCwgMjQxLCAyMzEsIDIzNCwgMTg5LCAyMzIsIDI0MywgMjEsIDIxMCwgODYsIDIzNCwgMTg5LCAKKyAgICAyMzIsIDI0MywgMjEsIDExMCwgMjM0LCAxODksIDIzMiwgMjQzLCAyMSwgMTA1LCAyMzQsIDE4OSwgMjMyLCAyNDMsIDIxLCAKKyAgICAxNTgsIDIzNCwgMTg5LCAyMzIsIDI0MywgMjEsIDE2MSwgMjM0LCAxODksIDIzMiwgMjQzLCAyMSwgMTg5LCAyMzQsIDE4OSwgCisgICAgMjMyLCAyNDMsIDIxLCAxOTQsIDIzNCwgMTg5LCAyMzIsIDI0MywgMjEsIDE5OCwgMjM0LCAxODksIDIzMiwgMjQzLCAyMSwgCisgICAgMTk1LCAyMzQsIDE4OSwgMjMyLCAyNDMsIDIxLCAyMDAsIDIzNCwgMTg5LCAyMzIsIDI0MywgMSwgMTc2LCAyMzQsIDE4OSwgCisgICAgMjMyLCAyNDMsIDEsIDIzNCwgMTMzLCAyMzQsIDE4OSwgMjMyLCAyNDMsIDEsIDI0MywgMTM2LCAyMzQsIDE4OSwgMjMyLCAKKyAgICAyNDMsIDEsIDIyOSwgNzgsIDIzNCwgMTg5LCAyMzIsIDI0MywgMSwgMjA2LCAyMzQsIDE4OSwgMjMyLCAyNDMsIDEsIDIyMCwgCisgICAgMTAzLCAyMzQsIDE4OSwgMjMyLCAyNDMsIDEsIDIxMCwgMTE2LCAyMzQsIDE4OSwgMjMyLCAyNDMsIDEsIDIyNywgMTY2LCAKKyAgICAyMzQsIDE4OSwgMjMyLCAyNDMsIDEsIDIxNywgMTA2LCAyMzQsIDE4OSwgMjMyLCAyNDMsIDEsIDI0MCwgMjI3LCAyMzQsIAorICAgIDE4OSwgMjMyLCAyNDMsIDEsIDE5NywgMjM0LCAxODksIDIzMiwgMjQzLCAxLCAxOTAsIDIzNCwgMTg5LCAyMzIsIDI0MywgMSwgCisgICAgMjI1LCAxNDgsIDIzNCwgMTg5LCAyMzIsIDI0MywgMSwgMTg1LCAyMzQsIDE4OSwgMjMyLCAyNDMsIDEsIDI0OCwgMjIyLCAKKyAgICAyMzQsIDE4OSwgMjMyLCAyNDMsIDEsIDI1MiwgMTkyLCAyMzQsIDE4OSwgMjMyLCAyNDMsIDEsIDIwNSwgMjM0LCAxODksIAorICAgIDIzMiwgMjQzLCAxLCAxOTEsIDIzNCwgMTg5LCAyMzIsIDI0MywgMSwgMjMzLCAxMzYsIDIzNCwgMTg5LCAyMzIsIDI0MywgMSwgCisgICAgMjEyLCA2NSwgMjM0LCAxODksIDIzMiwgMjQzLCAxLCAyMTYsIDIwOSwgMjM0LCAxODksIDIzMiwgMjQzLCAxLCAxNjIsIAorICAgIDIzNCwgMTg5LCAyMzIsIDI0MywgMSwgMjE0LCAyNywgMjM0LCAxODksIDIzMiwgMjQzLCAxLCAyNTEsIDM0LCAyMzQsIDE4OSwgCisgICAgMjMyLCAyNDMsIDEsIDYxLCAyMzQsIDE4OSwgMjMyLCAyNDMsIDEsIDIyNiwgMjM1LCAyMzQsIDE4OSwgMjMyLCAyNDMsIDEsIAorICAgIDczLCAyMzQsIDE4OSwgMjMyLCAyNDMsIDEsIDIyNiwgMTg0LCAyMzQsIDE4OSwgMjMyLCAyNDMsIDI1LCAyMTQsIDIxNCwgCisgICAgMjM0LCAxODksIDIzMiwgMjQzLCAyNSwgNzUsIDIzNCwgMTg5LCAyMzIsIDI0MywgMjUsIDcwLCAyMzQsIDE4OSwgMjMyLCAKKyAgICAyNDMsIDI1LCAyNDUsIDIxMCwgMjM0LCAxODksIDIzMiwgMjQzLCAyNSwgNzYsIDIzNCwgMTg5LCAyMzIsIDI0MywgMTM4LCAKKyAgICAyMjUsIDMxLCAyMzQsIDE4OSwgMjMyLCAyNDMsIDEzOCwgMjUxLCAxMywgMjM0LCAxODksIDIzMiwgMjQzLCAxMzgsIDI1MSwgCisgICAgMTQsIDIyNSwgMzEsIDIzNCwgMTg5LCAyMzIsIDI0MywgNSwgMjQ5LCA3OCwgMjM0LCAxODksIDIzMiwgMjQzLCA1LCAyMTksIAorICAgIDIwMCwgMjIzLCA5NCwgMSwgMTc2LCAyMjMsIDk0LCAxLCAyNDMsIDEzNiwgMjIzLCA5NCwgMSwgMjI5LCA3OCwgMjIzLCA5NCwgCisgICAgMSwgMjE3LCAxMDYsIDIyMywgOTQsIDEsIDI0OCwgMjIyLCAyMjMsIDk0LCAxLCAxOTcsIDIyMywgOTQsIDEsIDE5MCwgMjIzLCAKKyAgICA5NCwgMSwgMjUyLCAxOTIsIDIyMywgOTQsIDEsIDE4NSwgMjIzLCA5NCwgMSwgMjUxLCAzNCwgMjIzLCA5NCwgMSwgMjM1LCAKKyAgICAxNDIsIDIyMywgOTQsIDEsIDIyNywgMTY2LCAyMjMsIDk0LCAxLCAyMDYsIDIyMywgOTQsIDEsIDIwNSwgMjIzLCA5NCwgMSwgCisgICAgMjMzLCAxMzYsIDIyMywgOTQsIDEsIDE5MSwgMjIzLCA5NCwgMSwgMjEyLCA2NSwgMjIzLCA5NCwgMSwgMTYyLCAyMjMsIDk0LCAKKyAgICAxLCAyMzEsIDEyNSwgMjIzLCA5NCwgMSwgMjI5LCA1NywgMjIzLCA5NCwgMSwgMjI5LCAxNDksIDIyMywgOTQsIDEsIDIyNywgCisgICAgMTM2LCAyMjMsIDk0LCAxLCA2MSwgMjIzLCA5NCwgMjUsIDUsIDczLCAyMjMsIDk0LCAyNSwgNSwgNzAsIDIyMywgOTQsIDI1LCAKKyAgICA1LCA3NSwgMjIzLCA5NCwgMjUsIDUsIDI1NCwgMjAyLCAyMjMsIDk0LCAyNSwgNSwgNzYsIDIyMywgOTQsIDI1LCA1LCAyNTMsIAorICAgIDE5MywgMjIzLCA5NCwgMjUsIDUsIDI0NSwgNTYsIDIyMywgOTQsIDI1LCA1LCAyNDUsIDIzNCwgMjIzLCA5NCwgMTE2LCA1LCAKKyAgICAyMjksIDgwLCAyMjMsIDk0LCAxMTYsIDUsIDIzMCwgMjYsIDIyMywgOTQsIDExNiwgNSwgMTUzLCAyMjMsIDk0LCAxMTYsIDUsIAorICAgIDI0MiwgNjEsIDIyMywgOTQsIDIxMywgMTUyLCAyMjMsIDk0LCAyMjEsIDE3NCwgNzgsIDI0LCAxMDAsIDIxNiwgOTgsIDI0LCAKKyAgICAxMDAsIDIxNiwgOTcsIDI0LCAxMDAsIDIxNiwgOTUsIDI0LCAxMDAsIDIxNiwgMTAwLCAyNCwgMTAwLCAyMjMsIDIyLCAyNCwgCisgICAgMTAwLCAyMjMsIDYsIDI0LCAxMDAsIDIyMywgMSwgMjQsIDEwMCwgMjIzLCAzLCAyNCwgMTAwLCAyMjMsIDE5LCAyNCwgMTAwLCAKKyAgICAyMjMsIDEyLCAyNCwgMTAwLCAyMjMsIDUsIDI0LCAxMDAsIDIyMywgMjQsIDI0LCAxMDAsIDIyMywgNywgMjQsIDEwMCwgCisgICAgMjIzLCAyNiwgMjQsIDEwMCwgMjIzLCAyMywgMjQsIDEwMCwgMjMwLCAyMTQsIDI0LCAxMDAsIDIzMCwgMjA1LCAyNCwgMTAwLCAKKyAgICAyMzAsIDIwOCwgMjQsIDEwMCwgMjI1LCA4MSwgMjQsIDEwMCwgMjI1LCA5MiwgMjQsIDEwMCwgMjI1LCA5MywgMjQsIDEwMCwgCisgICAgMjE4LCAyMDgsIDI0LCAxMDAsIDIzNiwgNDcsIDI0LCAxMDAsIDIzNiwgNTQsIDI0LCAxMDAsIDIxOCwgMjE5LCAyNCwgMTAwLCAKKyAgICAyMTgsIDIwNiwgMjQsIDEwMCwgMjI1LCAxMzEsIDI0LCAxMDAsIDI0MSwgMTY4LCAyNCwgMTAwLCAyMTgsIDIwMywgMTU1LCAKKyAgICA1LCAyMjYsIDI4LCAxNTUsIDUsIDI1MCwgMTg4LCAxNTUsIDUsIDIzMywgNjcsIDE1NSwgNSwgMjExLCAyNDMsIDE1NSwgMSwgCisgICAgNjEsIDE1NSwgMSwgMjQwLCAxNTUsIDIzNCwgMTkyLCAxNTUsIDEsIDczLCAxNTUsIDEsIDIzNiwgMzQsIDE1NSwgMSwgNzAsIAorICAgIDE1NSwgMSwgMjI2LCA5MSwgMjUwLCAxNjQsIDE1NSwgMSwgMjI5LCA3OSwgMjMzLCAyOSwgMTU1LCAxLCAyMjksIDc5LCAKKyAgICAyMzMsIDMwLCAyMjMsIDE0MywgMTU1LCAxLCA3NSwgMTU1LCAxLCAyNTQsIDIwMiwgMTU1LCAxLCA3NiwgMTU1LCAxLCAxNzYsIAorICAgIDE1NSwgMSwgMjM1LCAxNCwgMjIxLCAyMjksIDE1NSwgMSwgMjM1LCAxNCwgMjMwLCA2NywgMTU1LCAxLCAyNDMsIDEzNiwgCisgICAgMTU1LCAxLCAyNDMsIDEzNywgMjMwLCA2NywgMTU1LCAxLCAyMjksIDc4LCAxNTUsIDEsIDI1MSwgMzQsIDE1NSwgMSwgMjUxLCAKKyAgICAzNSwgMjMwLCA2NywgMTU1LCAxLCAyMzUsIDE0MiwgMTU1LCAxLCAyMjcsIDE2NywgMjMwLCA2NywgMTU1LCAxLCAyMzUsIAorICAgIDE0MywgMjMxLCAyMDgsIDE1NSwgMSwgMjI3LCAxNjYsIDE1NSwgMSwgMjE1LCAxNTcsIDE1NSwgMSwgMjE1LCAxNTgsIDIzMSwgCisgICAgMjA4LCAxNTUsIDEsIDI0OCwgMTM2LCAxNTUsIDEsIDI0OCwgMTM3LCAyMzEsIDIwOCwgMTU1LCAxLCAyMjksIDIzMCwgMjMwLCAKKyAgICA2NywgMTU1LCAxLCAyMTcsIDEwNiwgMTU1LCAxLCAyMTcsIDEwNywgMjMwLCA2NywgMTU1LCAxLCAyNDgsIDIyMiwgMTU1LCAKKyAgICAxLCAyNDgsIDIyMywgMjMxLCAyMDgsIDE1NSwgMSwgMTk3LCAxNTUsIDEsIDE5MCwgMTU1LCAxLCAyMjYsIDkxLCAyMzAsIAorICAgIDY3LCAxNTUsIDEsIDI1MiwgMTkyLCAxNTUsIDEsIDI1MiwgMTkzLCAyMzAsIDY3LCAxNTUsIDEsIDE4NSwgMTU1LCAxLCAKKyAgICAxOTEsIDE1NSwgMSwgMjA1LCAxNTUsIDEsIDIyMywgMTg5LCAyNTQsIDIxMSwgMTU1LCAxLCAyMzMsIDEzNiwgMTU1LCAxLCAKKyAgICAyMTIsIDY1LCAxNTUsIDEsIDIyMiwgMzUsIDIzMCwgNjcsIDE1NSwgMSwgMjIyLCAzNSwgMjMxLCAyMDgsIDE1NSwgMSwgCisgICAgMjA2LCAxNTUsIDEsIDE2MiwgMTU1LCA1LCAyNTAsIDE4OSwgMjE2LCAyNTEsIDE1NSwgMjUsIDUsIDIxNywgNDgsIDE1NSwgCisgICAgMjUsIDUsIDIxNiwgMzYsIDE1NSwgMjUsIDUsIDIxMSwgMTkwLCAxNTUsIDI1LCA1LCAyMTEsIDE5MSwgMjMxLCA3MCwgMTU1LCAKKyAgICAyNSwgNSwgMjE4LCA0OCwgMTU1LCAyNSwgNSwgMjE4LCA0OSwgMjMxLCA1OCwgMTU1LCAyNSwgNSwgMjE3LCA2NiwgMTU1LCAKKyAgICAyNSwgNSwgMjQ3LCAxOTUsIDIzMCwgNjYsIDE1NSwgMjUsIDUsIDIyNSwgMTg1LCAxNTUsIDExNiwgNSwgMjM0LCAxNTksIAorICAgIDE1NSwgMTE2LCA1LCAyMjUsIDE5NywgMTU1LCAxMTYsIDUsIDI1MSwgMjAsIDE1NSwgMjI2LCA0MSwgMTU1LCA0MywgMjIzLCAKKyAgICA3MCwgMTU1LCA0NCwgMjIzLCA3MCwgMTU1LCAyMjYsIDgwLCAyNTQsIDExOCwgMTU1LCAyMjYsIDgwLCAyMzEsIDIyNSwgCisgICAgMTU1LCAyMjYsIDgwLCAyMzIsIDg5LCAxNTUsIDIyNiwgODAsIDIxMSwgMjM4LCAxNTUsIDIyNiwgODAsIDIyNiwgNDIsIAorICAgIDE1NSwgMjI2LCA4MCwgMjMyLCAyMDYsIDE1NSwgMjI2LCA4MCwgMjMyLCA4MywgMTU1LCAyMjYsIDgwLCAyNTQsIDI1MCwgCisgICAgMTU1LCAyMjYsIDgwLCAyNTQsIDI1MSwgMjU0LCAyNTAsIDE1NSwgMjI2LCA4MCwgMjI1LCA1MiwgMTU1LCAyMTUsIDk0LCAKKyAgICAyMjYsIDgwLCAyMjUsIDUyLCAxNTUsIDIyNiwgMzcsIDE1NSwgMjEsIDIxMCwgODYsIDE1NSwgMjEsIDExMCwgMTU1LCAyMSwgCiAgICAgMTA1LCAxNTUsIDIxLCAxNTgsIDE1NSwgMjEsIDE2MSwgMTU1LCAyMSwgMTg5LCAxNTUsIDIxLCAxOTQsIDE1NSwgMjEsIAotICAgIDE5OCwgMTU1LCAyMSwgMTk1LCAxNTUsIDIxLCAyMDAsIDE1NSwgMjI2LCA3OSwgMjE2LCA2OSwgMjE1LCAxMDYsIDE1NSwgCi0gICAgMjI2LCA3OSwgMjM1LCAxNjcsIDE3MiwgMSwgNjEsIDE3MiwgMSwgNzMsIDE3MiwgMSwgNzAsIDE3MiwgMSwgNzUsIDE3MiwgCi0gICAgMSwgMjU0LCAyMDEsIDE3MiwgMSwgNzYsIDE3MiwgMSwgMTc2LCAxNzIsIDEsIDIzNCwgMTMyLCAxNzIsIDEsIDI0MywgMTM1LCAKLSAgICAxNzIsIDEsIDI0MiwgMjQ5LCAxNzIsIDEsIDIyOCwgMjQ1LCAxNzIsIDEsIDIyOSwgNzcsIDE3MiwgMSwgMjUwLCAxNTcsIAotICAgIDE3MiwgMSwgMjUwLCAxMTIsIDE3MiwgMSwgMjM1LCAxNDEsIDE3MiwgMSwgMjM1LCAxMTQsIDE3MiwgMSwgMjI4LCAyMzUsIAotICAgIDE3MiwgMSwgMjI4LCAyMzcsIDE3MiwgMSwgMjI4LCAyMzYsIDE3MiwgMSwgMjE3LCAxMDUsIDE3MiwgMSwgMjE2LCAyMDgsIAotICAgIDE3MiwgMSwgMjQ4LCAyMjEsIDE3MiwgMSwgMjQ4LCAyNSwgMTcyLCAxLCAyMjcsIDIwNywgMTcyLCAxLCAxOTcsIDE3MiwgMSwgCi0gICAgMjQ4LCAxMzUsIDE3MiwgMSwgMTkwLCAxNzIsIDEsIDIyNCwgMjIwLCAxNzIsIDEsIDIyNSwgMTQ3LCAxNzIsIDEsIDI1MiwgCi0gICAgMTkxLCAxNzIsIDEsIDI1MiwgMTgsIDE3MiwgMSwgMjMwLCA5NSwgMTcyLCAxLCAxODQsIDE3MiwgMSwgMjUyLCAxMTEsIAotICAgIDE3MiwgMSwgMTkxLCAxNzIsIDEsIDIwNSwgMTcyLCAxLCAyMzMsIDEzNSwgMTcyLCAxLCAyMTQsIDI3LCAxNzIsIDEsIDIxOCwgCi0gICAgMjIzLCAxNzIsIDEsIDIwNiwgMTcyLCAxLCAxNjIsIDE3MiwgMjUsIDUsIDI1NSwgNzMsIDE3MiwgMjUsIDUsIDczLCAxNzIsIAotICAgIDI1LCA1LCAyMzYsIDMzLCAxNzIsIDI1LCA1LCAyNDUsIDE5NSwgMTcyLCAyNSwgNSwgNzAsIDE3MiwgMjUsIDUsIDIyNiwgCi0gICAgMjM0LCAxNzIsIDI1LCA1LCA3NiwgMTcyLCAyNSwgNSwgMjU0LCAyMDEsIDE3MiwgMjUsIDUsIDI1MywgMTkyLCAxNzIsIDI1LCAKLSAgICA1LCAyMTQsIDIxNCwgMTcyLCAxMTYsIDUsIDE5MSwgMTcyLCAxMTYsIDUsIDIwNSwgMTcyLCAxMTYsIDUsIDIzMywgMTM1LCAKLSAgICAxNzIsIDExNiwgNSwgMjEyLCA2NSwgMTcyLCAxLCA0MCwgMjM1LCAyMywgMTcyLCAxLCA0MCwgMjQzLCAyMDIsIDE3MiwgMSwgCi0gICAgNDAsIDIyOSwgNzksIDE3MiwgMTE2LCA1LCA0MCwgMjI5LCA3OSwgMTcyLCAxLCA0MCwgMjUwLCAxNTgsIDE3MiwgMSwgNDAsIAotICAgIDIxNywgMTUyLCAxNzIsIDEsIDQwLCAyMzAsIDI1LCAxNzIsIDEsIDQwLCAyMjYsIDEwNSwgMTcyLCAxLCA0MCwgMjExLCAKLSAgICAxMTcsIDE3MiwgMSwgNDAsIDE1MywgMTcyLCAxLCA0MCwgMTU2LCAxNzIsIDEsIDQwLCAyMTgsIDIyNiwgMTcyLCAxMTYsIDUsIAotICAgIDQwLCAxOTMsIDE3MiwgMTE2LCA1LCA0MCwgMjQyLCA2MCwgMTcyLCAyMSwgMjEwLCA4NiwgMTcyLCAyMSwgMTEwLCAxNzIsIAorICAgIDE5OCwgMTU1LCAyMSwgMTk1LCAxNTUsIDIxLCAyMDAsIDE1NSwgMjI2LCA4MCwgMjE2LCA3MCwgMjE1LCAxMDcsIDE1NSwgCisgICAgMjI2LCA4MCwgMjM1LCAxNjgsIDE3MiwgMSwgNjEsIDE3MiwgMSwgNzMsIDE3MiwgMSwgNzAsIDE3MiwgMSwgNzUsIDE3MiwgCisgICAgMSwgMjU0LCAyMDIsIDE3MiwgMSwgNzYsIDE3MiwgMSwgMTc2LCAxNzIsIDEsIDIzNCwgMTMzLCAxNzIsIDEsIDI0MywgMTM2LCAKKyAgICAxNzIsIDEsIDI0MiwgMjUwLCAxNzIsIDEsIDIyOCwgMjQ2LCAxNzIsIDEsIDIyOSwgNzgsIDE3MiwgMSwgMjUwLCAxNTgsIAorICAgIDE3MiwgMSwgMjUwLCAxMTMsIDE3MiwgMSwgMjM1LCAxNDIsIDE3MiwgMSwgMjM1LCAxMTUsIDE3MiwgMSwgMjI4LCAyMzYsIAorICAgIDE3MiwgMSwgMjI4LCAyMzgsIDE3MiwgMSwgMjI4LCAyMzcsIDE3MiwgMSwgMjE3LCAxMDYsIDE3MiwgMSwgMjE2LCAyMDksIAorICAgIDE3MiwgMSwgMjQ4LCAyMjIsIDE3MiwgMSwgMjQ4LCAyNiwgMTcyLCAxLCAyMjcsIDIwOCwgMTcyLCAxLCAxOTcsIDE3MiwgMSwgCisgICAgMjQ4LCAxMzYsIDE3MiwgMSwgMTkwLCAxNzIsIDEsIDIyNCwgMjIxLCAxNzIsIDEsIDIyNSwgMTQ4LCAxNzIsIDEsIDI1MiwgCisgICAgMTkyLCAxNzIsIDEsIDI1MiwgMTksIDE3MiwgMSwgMjMwLCA5NiwgMTcyLCAxLCAxODUsIDE3MiwgMSwgMjUyLCAxMTIsIAorICAgIDE3MiwgMSwgMTkxLCAxNzIsIDEsIDIwNSwgMTcyLCAxLCAyMzMsIDEzNiwgMTcyLCAxLCAyMTQsIDI3LCAxNzIsIDEsIDIxOCwgCisgICAgMjI0LCAxNzIsIDEsIDIwNiwgMTcyLCAxLCAxNjIsIDE3MiwgMjUsIDUsIDI1NSwgNzQsIDE3MiwgMjUsIDUsIDczLCAxNzIsIAorICAgIDI1LCA1LCAyMzYsIDM0LCAxNzIsIDI1LCA1LCAyNDUsIDE5NiwgMTcyLCAyNSwgNSwgNzAsIDE3MiwgMjUsIDUsIDIyNiwgCisgICAgMjM1LCAxNzIsIDI1LCA1LCA3NiwgMTcyLCAyNSwgNSwgMjU0LCAyMDIsIDE3MiwgMjUsIDUsIDI1MywgMTkzLCAxNzIsIDI1LCAKKyAgICA1LCAyMTQsIDIxNCwgMTcyLCAxMTYsIDUsIDE5MSwgMTcyLCAxMTYsIDUsIDIwNSwgMTcyLCAxMTYsIDUsIDIzMywgMTM2LCAKKyAgICAxNzIsIDExNiwgNSwgMjEyLCA2NSwgMTcyLCAxLCA0MCwgMjM1LCAyNCwgMTcyLCAxLCA0MCwgMjQzLCAyMDMsIDE3MiwgMSwgCisgICAgNDAsIDIyOSwgODAsIDE3MiwgMTE2LCA1LCA0MCwgMjI5LCA4MCwgMTcyLCAxLCA0MCwgMjUwLCAxNTksIDE3MiwgMSwgNDAsIAorICAgIDIxNywgMTUzLCAxNzIsIDEsIDQwLCAyMzAsIDI2LCAxNzIsIDEsIDQwLCAyMjYsIDEwNiwgMTcyLCAxLCA0MCwgMjExLCAKKyAgICAxMTcsIDE3MiwgMSwgNDAsIDE1MywgMTcyLCAxLCA0MCwgMTU2LCAxNzIsIDEsIDQwLCAyMTgsIDIyNywgMTcyLCAxMTYsIDUsIAorICAgIDQwLCAxOTMsIDE3MiwgMTE2LCA1LCA0MCwgMjQyLCA2MSwgMTcyLCAyMSwgMjEwLCA4NiwgMTcyLCAyMSwgMTEwLCAxNzIsIAogICAgIDIxLCAxMDUsIDE3MiwgMjEsIDE1OCwgMTcyLCAyMSwgMTYxLCAxNzIsIDIxLCAxODksIDE3MiwgMjEsIDE5NCwgMTcyLCAyMSwgCi0gICAgMTk4LCAxNzIsIDIxLCAxOTUsIDE3MiwgMjEsIDIwMCwgMTcyLCAyMjQsIDE0MSwgMjE4LCAyNTEsIDE3MiwgMjI0LCAxNDEsIAotICAgIDI0OCwgMTc4LCAxNzIsIDIyNCwgMTQxLCA1MiwgMjQ4LCAxNzgsIDE3MiwgMjI0LCAxNDEsIDIxNSwgMjExLCAyNDgsIDE3OCwgCi0gICAgNjgsIDEsIDIzNCwgMTI2LCAyNDMsIDEzNSwgNjgsIDEsIDIzNCwgMTI2LCAyNTEsIDMzLCA2OCwgMSwgMjM0LCAxMjYsIAotICAgIDI1MCwgMTU3LCA2OCwgMSwgMjM0LCAxMjYsIDIzNSwgMTQxLCA2OCwgMSwgMjM0LCAxMjYsIDIzNSwgMTE0LCA2OCwgMSwgCi0gICAgMjM0LCAxMjYsIDIyNywgMTY1LCA2OCwgMSwgMjM0LCAxMjYsIDIxNSwgMTU2LCA2OCwgMSwgMjM0LCAxMjYsIDIxNSwgMTQ0LCAKLSAgICA2OCwgMSwgMjM0LCAxMjYsIDI0OCwgMTM1LCA2OCwgMSwgMjM0LCAxMjYsIDI0OCwgMTE5LCA2OCwgMSwgMjM0LCAxMjYsIAotICAgIDI0OCwgMjUsIDY4LCAxLCAyMzQsIDEyNiwgMTk3LCA2OCwgMSwgMjM0LCAxMjYsIDIwNiwgNjgsIDEsIDIzNCwgMTI2LCAKLSAgICAxNjIsIDY4LCAxLCAyMzQsIDEyNiwgMjQxLCAxODksIDY4LCAxLCAyMzQsIDEyNiwgMjQ0LCAxOTYsIDY4LCA1OCwgMSwgCi0gICAgMjM0LCAxMjYsIDIyMywgMTA5LCA2OCwgMSwgMjM0LCAxMjYsIDIxMSwgMTY1LCA2OCwgMSwgMjM0LCAxMjYsIDIxMCwgMTE2LCAKLSAgICA2OCwgMSwgMjM0LCAxMjYsIDIwNSwgNjgsIDIzMiwgMTQ1LCAyMzQsIDEyNiwgMjI2LCAyNTMsIDY4LCAyMzIsIDE0NSwgCi0gICAgMjM0LCAxMjYsIDIyNCwgNDMsIDY4LCAyMzIsIDE0NSwgMjM0LCAxMjYsIDI0MSwgMTIxLCA2OCwgMTYsIDI1NCwgMTkwLCAKLSAgICAyNDUsIDMwLCA2OCwgMTYsIDI1NCwgMTkwLCAxMTAsIDY4LCAxNiwgMjU0LCAxOTAsIDEwNSwgNjgsIDEsIDI1NCwgMTkwLCAKLSAgICAyMDUsIDY4LCA1LCAyMjYsIDIzLCAyMzQsIDIxMywgMjE2LCAzMCwgMzksIDIwOCwgMSwgMTIxLCAyMzQsIDI4LCAzOSwgCi0gICAgMjA4LCAxLCAxMjUsIDIzNCwgMjgsIDM5LCAyMDgsIDEsIDEyMSwgMjM0LCAxMDUsIDM5LCAyMDgsIDEsIDEyNSwgMjM0LCAKLSAgICAxMDUsIDM5LCAyMDgsIDEsIDEyMSwgMjM0LCAxMTQsIDM5LCAyMDgsIDEsIDEyNSwgMjM0LCAxMTQsIDM5LCAyMDgsIDEsIAotICAgIDEyMSwgMjQyLCAxNzQsIDM5LCAyMDgsIDEsIDEyNSwgMjQyLCAxNzQsIDM5LCAyMDgsIDEsIDEyMSwgMjI5LCA0LCAzOSwgCi0gICAgMjA4LCAxLCAxMjUsIDIyOSwgNCwgMzksIDIwOCwgMSwgMTIxLCAyNDksIDIzOCwgMzksIDIwOCwgMSwgMTI1LCAyNDksIAotICAgIDIzOCwgMzksIDIwOCwgMSwgMTIxLCAyNTAsIDg2LCAzOSwgMjA4LCAxLCAxMjUsIDI1MCwgODYsIDM5LCAyMDgsIDEsIDEyMSwgCi0gICAgMjE5LCA1OCwgMzksIDIwOCwgMSwgMTI1LCAyMTksIDU4LCAzOSwgMjA4LCAxLCAxMjEsIDIyNywgMTM0LCAzOSwgMjA4LCAxLCAKLSAgICAxMjUsIDIyNywgMTM0LCAzOSwgMjA4LCAxLCAxMjEsIDI0NywgMTQ1LCAzOSwgMjA4LCAxLCAxMjUsIDI0NywgMTQ1LCAzOSwgCi0gICAgMjA4LCAxLCAxMjEsIDExMSwgMzksIDIwOCwgMSwgMTI1LCAxMTEsIDM5LCAyMDgsIDEsIDEyMSwgMjE2LCAxNTYsIDM5LCAKLSAgICAyMDgsIDEsIDEyNSwgMjE2LCAxNTYsIDM5LCAyMDgsIDEsIDEyMSwgMjI4LCA3NCwgMzksIDIwOCwgMSwgMTI1LCAyMjgsIAotICAgIDc0LCAzOSwgMjA4LCAxLCAxMjEsIDI1MSwgMjA1LCAzOSwgMjA4LCAxLCAxMjUsIDI1MSwgMjA1LCAzOSwgMjA4LCAxLCAKLSAgICAxMjEsIDIyNSwgMTYsIDM5LCAyMDgsIDEsIDEyNSwgMjI1LCAxNiwgMzksIDIwOCwgMSwgMTIxLCAyMjUsIDEyMSwgMzksIAotICAgIDIwOCwgMSwgMTI1LCAyMjUsIDEyMSwgMzksIDIwOCwgMSwgMTIxLCAyNDQsIDQzLCAzOSwgMjA4LCAxLCAxMjUsIDI0NCwgCi0gICAgNDMsIDM5LCAyMDgsIDEsIDEyMSwgMjMwLCAxNjEsIDM5LCAyMDgsIDEsIDEyNSwgMjMwLCAxNjEsIDM5LCAyMDgsIDEsIAotICAgIDEyMSwgMjEwLCAyNDQsIDM5LCAyMDgsIDEsIDEyNSwgMjEwLCAyNDQsIDM5LCAyMDgsIDEsIDEyMSwgMjIyLCAyMTEsIDM5LCAKLSAgICAyMDgsIDEsIDEyNSwgMjIyLCAyMTEsIDM5LCAyMDgsIDEsIDEyMSwgMjMyLCAxNTYsIDM5LCAyMDgsIDEsIDEyNSwgMjMyLCAKLSAgICAxNTYsIDM5LCAyMDgsIDEsIDEyMSwgMjEzLCAxMzgsIDM5LCAyMDgsIDEsIDEyNSwgMjEzLCAxMzgsIDM5LCAyMDgsIDEsIAotICAgIDEyMSwgMjQxLCA2OCwgMzksIDIwOCwgMSwgMTI1LCAyNDEsIDY4LCAzOSwgMjA4LCAxLCAxMjEsIDc2LCAzOSwgMjA4LCAxLCAKLSAgICAxMjUsIDc2LCAzOSwgMjA4LCAyMzEsIDIwNCwgMjM0LCAyMzAsIDM5LCAyMDgsIDI1LCAyNTUsIDczLCAzOSwgMjA4LCAyNSwgCisgICAgMTk4LCAxNzIsIDIxLCAxOTUsIDE3MiwgMjEsIDIwMCwgMTcyLCAyMjQsIDE0MiwgMjE4LCAyNTIsIDE3MiwgMjI0LCAxNDIsIAorICAgIDI0OCwgMTc5LCAxNzIsIDIyNCwgMTQyLCA1MiwgMjQ4LCAxNzksIDE3MiwgMjI0LCAxNDIsIDIxNSwgMjEyLCAyNDgsIDE3OSwgCisgICAgNjgsIDEsIDIzNCwgMTI3LCAyNDMsIDEzNiwgNjgsIDEsIDIzNCwgMTI3LCAyNTEsIDM0LCA2OCwgMSwgMjM0LCAxMjcsIAorICAgIDI1MCwgMTU4LCA2OCwgMSwgMjM0LCAxMjcsIDIzNSwgMTQyLCA2OCwgMSwgMjM0LCAxMjcsIDIzNSwgMTE1LCA2OCwgMSwgCisgICAgMjM0LCAxMjcsIDIyNywgMTY2LCA2OCwgMSwgMjM0LCAxMjcsIDIxNSwgMTU3LCA2OCwgMSwgMjM0LCAxMjcsIDIxNSwgMTQ1LCAKKyAgICA2OCwgMSwgMjM0LCAxMjcsIDI0OCwgMTM2LCA2OCwgMSwgMjM0LCAxMjcsIDI0OCwgMTIwLCA2OCwgMSwgMjM0LCAxMjcsIAorICAgIDI0OCwgMjYsIDY4LCAxLCAyMzQsIDEyNywgMTk3LCA2OCwgMSwgMjM0LCAxMjcsIDIwNiwgNjgsIDEsIDIzNCwgMTI3LCAKKyAgICAxNjIsIDY4LCAxLCAyMzQsIDEyNywgMjQxLCAxOTAsIDY4LCAxLCAyMzQsIDEyNywgMjQ0LCAxOTcsIDY4LCA1OCwgMSwgCisgICAgMjM0LCAxMjcsIDIyMywgMTEwLCA2OCwgMSwgMjM0LCAxMjcsIDIxMSwgMTY1LCA2OCwgMSwgMjM0LCAxMjcsIDIxMCwgMTE2LCAKKyAgICA2OCwgMSwgMjM0LCAxMjcsIDIwNSwgNjgsIDIzMiwgMTQ2LCAyMzQsIDEyNywgMjI2LCAyNTQsIDY4LCAyMzIsIDE0NiwgCisgICAgMjM0LCAxMjcsIDIyNCwgNDQsIDY4LCAyMzIsIDE0NiwgMjM0LCAxMjcsIDI0MSwgMTIyLCA2OCwgMTYsIDI1NCwgMTkxLCAKKyAgICAyNDUsIDMxLCA2OCwgMTYsIDI1NCwgMTkxLCAxMTAsIDY4LCAxNiwgMjU0LCAxOTEsIDEwNSwgNjgsIDEsIDI1NCwgMTkxLCAKKyAgICAyMDUsIDY4LCA1LCAyMjYsIDI0LCAyMzQsIDIxNCwgMjE2LCAzMSwgMzksIDIwOCwgMSwgMTIxLCAyMzQsIDI5LCAzOSwgCisgICAgMjA4LCAxLCAxMjUsIDIzNCwgMjksIDM5LCAyMDgsIDEsIDEyMSwgMjM0LCAxMDYsIDM5LCAyMDgsIDEsIDEyNSwgMjM0LCAKKyAgICAxMDYsIDM5LCAyMDgsIDEsIDEyMSwgMjM0LCAxMTUsIDM5LCAyMDgsIDEsIDEyNSwgMjM0LCAxMTUsIDM5LCAyMDgsIDEsIAorICAgIDEyMSwgMjQyLCAxNzUsIDM5LCAyMDgsIDEsIDEyNSwgMjQyLCAxNzUsIDM5LCAyMDgsIDEsIDEyMSwgMjI5LCA1LCAzOSwgCisgICAgMjA4LCAxLCAxMjUsIDIyOSwgNSwgMzksIDIwOCwgMSwgMTIxLCAyNDksIDIzOSwgMzksIDIwOCwgMSwgMTI1LCAyNDksIAorICAgIDIzOSwgMzksIDIwOCwgMSwgMTIxLCAyNTAsIDg3LCAzOSwgMjA4LCAxLCAxMjUsIDI1MCwgODcsIDM5LCAyMDgsIDEsIDEyMSwgCisgICAgMjE5LCA1OSwgMzksIDIwOCwgMSwgMTI1LCAyMTksIDU5LCAzOSwgMjA4LCAxLCAxMjEsIDIyNywgMTM1LCAzOSwgMjA4LCAxLCAKKyAgICAxMjUsIDIyNywgMTM1LCAzOSwgMjA4LCAxLCAxMjEsIDI0NywgMTQ2LCAzOSwgMjA4LCAxLCAxMjUsIDI0NywgMTQ2LCAzOSwgCisgICAgMjA4LCAxLCAxMjEsIDExMSwgMzksIDIwOCwgMSwgMTI1LCAxMTEsIDM5LCAyMDgsIDEsIDEyMSwgMjE2LCAxNTcsIDM5LCAKKyAgICAyMDgsIDEsIDEyNSwgMjE2LCAxNTcsIDM5LCAyMDgsIDEsIDEyMSwgMjI4LCA3NSwgMzksIDIwOCwgMSwgMTI1LCAyMjgsIAorICAgIDc1LCAzOSwgMjA4LCAxLCAxMjEsIDI1MSwgMjA2LCAzOSwgMjA4LCAxLCAxMjUsIDI1MSwgMjA2LCAzOSwgMjA4LCAxLCAKKyAgICAxMjEsIDIyNSwgMTcsIDM5LCAyMDgsIDEsIDEyNSwgMjI1LCAxNywgMzksIDIwOCwgMSwgMTIxLCAyMjUsIDEyMiwgMzksIAorICAgIDIwOCwgMSwgMTI1LCAyMjUsIDEyMiwgMzksIDIwOCwgMSwgMTIxLCAyNDQsIDQ0LCAzOSwgMjA4LCAxLCAxMjUsIDI0NCwgCisgICAgNDQsIDM5LCAyMDgsIDEsIDEyMSwgMjMwLCAxNjIsIDM5LCAyMDgsIDEsIDEyNSwgMjMwLCAxNjIsIDM5LCAyMDgsIDEsIAorICAgIDEyMSwgMjEwLCAyNDQsIDM5LCAyMDgsIDEsIDEyNSwgMjEwLCAyNDQsIDM5LCAyMDgsIDEsIDEyMSwgMjIyLCAyMTIsIDM5LCAKKyAgICAyMDgsIDEsIDEyNSwgMjIyLCAyMTIsIDM5LCAyMDgsIDEsIDEyMSwgMjMyLCAxNTcsIDM5LCAyMDgsIDEsIDEyNSwgMjMyLCAKKyAgICAxNTcsIDM5LCAyMDgsIDEsIDEyMSwgMjEzLCAxMzgsIDM5LCAyMDgsIDEsIDEyNSwgMjEzLCAxMzgsIDM5LCAyMDgsIDEsIAorICAgIDEyMSwgMjQxLCA2OSwgMzksIDIwOCwgMSwgMTI1LCAyNDEsIDY5LCAzOSwgMjA4LCAxLCAxMjEsIDc2LCAzOSwgMjA4LCAxLCAKKyAgICAxMjUsIDc2LCAzOSwgMjA4LCAyMzEsIDIwNSwgMjM0LCAyMzEsIDM5LCAyMDgsIDI1LCAyNTUsIDc0LCAzOSwgMjA4LCAyNSwgCiAgICAgNzMsIDM5LCAyMDgsIDI1LCAyMTQsIDIxNCwgMzksIDIwOCwgMjUsIDcwLCAzOSwgMjA4LCAyNSwgNzUsIDM5LCAyMDgsIDI1LCAKLSAgICA3NiwgMzksIDIwOCwgMjMxLCAyMDQsIDIzNCwgMTA4LCAzOSwgMjA4LCAyNSwgMjQwLCAxMTksIDM5LCAyMDgsIDI1LCAyMTQsIAotICAgIDIxMywgMzksIDIwOCwgMjUsIDIxNCwgMjI5LCAzOSwgMjA4LCAyNSwgMjUzLCAxOTAsIDM5LCAyMDgsIDI1LCAyNTMsIDE2NywgCi0gICAgMzksIDIwOCwgMjUsIDI1NCwgMTIzLCAzOSwgMjA4LCAyNSwgMjU0LCAxMzYsIDM5LCAyMDgsIDEzOCwgMjMxLCAyMDQsIAotICAgIDI0NSwgMTgwLCAzOSwgMjA4LCAxMzgsIDIzMSwgMjA0LCAyMjcsIDIwNiwgMzksIDIwOCwgMTM4LCAyMzEsIDIwNCwgMjE2LCAKLSAgICAxNTYsIDM5LCAyMDgsIDEzOCwgMjMxLCAyMDQsIDIxOSwgNDIsIDM5LCAyMDgsIDE2LCAyMzQsIDEzLCAzOSwgMjA4LCAxNiwgCi0gICAgMjI3LCAyMDYsIDM5LCAyMDgsIDE2LCAyMjEsIDI1MywgMzksIDIwOCwgMTYsIDI0MSwgNjksIDI0MSwgNjQsIDM5LCAyMDgsIAotICAgIDE2LCAyMzQsIDIyLCAyMzQsIDIxLCAxODYsIDE4NSwgMSwgNzUsIDE4NiwgMTg1LCAxLCA3NiwgMTg2LCAxODUsIDEsIDI1MCwgCi0gICAgMTU3LCAxODYsIDE4NSwgMSwgMjI3LCAxNjUsIDE4NiwgMTg1LCAxLCAyMTUsIDE1NiwgMTg2LCAxODUsIDEsIDIxNSwgMTQ0LCAKLSAgICAxODYsIDE4NSwgMSwgMjQ4LCAxMzUsIDE4NiwgMTg1LCAxLCAyNDgsIDExOSwgMTg2LCAxODUsIDEsIDIyOCwgMTEwLCAxODYsIAotICAgIDE4NSwgMSwgMjIwLCAxMDIsIDE4NiwgMTg1LCAxLCAyMTgsIDIyMywgMTg2LCAxODUsIDI1LCA1LCAyMzYsIDMzLCAxODYsIAotICAgIDE4NSwgMjUsIDUsIDIxNCwgMTE4LCAxODYsIDE4NSwgMjUsIDUsIDI1NSwgMzcsIDE4NiwgMTg1LCAyNSwgNSwgMjUzLCAKLSAgICAxOTIsIDE4NiwgMTg1LCAyNSwgNSwgMjU1LCAzMCwgMTg2LCAxODUsIDI1MCwgMTI1LCAxODYsIDE4NSwgMjU0LCAyMDYsIAotICAgIDIzNCwgOTgsIDE4NiwgMTg1LCAyNTQsIDEwMywgMTg2LCAxODUsIDMsIDIyMywgNzQsIDc4LCAxODYsIDE4NSwgMjExLCAKLSAgICAyMDksIDIyMywgNzQsIDc4LCAxODYsIDE4NSwgMjUsIDUsIDIxMywgMTQ3LCAxODYsIDE4NSwgMjEzLCAxNTIsIDI5LCAzLCAKLSAgICAyMTUsIDEzNywgMjksIDMsIDIxNSwgMTQwLCAyOSwgMywgMjE1LCAxNDMsIDI5LCAzLCAyMTUsIDE0MSwgMjksIDMsIDIxNSwgCi0gICAgMTQyLCAyOSwgMywgMjE1LCAxMzksIDI5LCAzLCAyNDgsIDExMywgMjksIDMsIDI0OCwgMTE1LCAyOSwgMywgMjQ4LCAxMTgsIAotICAgIDI5LCAzLCAyNDgsIDExNiwgMjksIDMsIDI0OCwgMTE3LCAyOSwgMywgMjQ4LCAxMTQsIDI5LCAzLCAyNDYsIDI4LCAyOSwgMywgCi0gICAgMjQ2LCAzMSwgMjksIDMsIDI0NiwgMzcsIDI5LCAzLCAyNDYsIDM1LCAyOSwgMywgMjQ2LCAzNiwgMjksIDMsIDI0NiwgMjksIAotICAgIDI5LCAzLCAyNTAsIDIwNCwgMjksIDMsIDI1MCwgMTk4LCAyOSwgMywgMjUwLCAyMDAsIDI5LCAzLCAyNTAsIDIwMywgMjksIAotICAgIDMsIDI1MCwgMjAxLCAyOSwgMywgMjUwLCAyMDIsIDI5LCAzLCAyNTAsIDE5OSwgMjksIDMsIDI1MiwgMTExLCAyOSwgMywgCi0gICAgMjUyLCA5MCwgMjksIDMsIDI1MiwgMTAyLCAyOSwgMywgMjUyLCAxMTAsIDI5LCAzLCAyNTIsIDEwNSwgMjksIDMsIDI1MiwgCi0gICAgMTA2LCAyOSwgMywgMjUyLCA5NCwgMTg2LCAxODUsIDEsIDIzNCwgMTksIDE4NiwgMTg1LCAxLCAyMjEsIDI1MywgMTg2LCAKLSAgICAxODUsIDEsIDIzMywgMTA5LCAxODYsIDE4NSwgMSwgMjMwLCAxNzIsIDE4NiwgMTg1LCAxLCAxOTAsIDE4NiwgMTg1LCAxLCAKLSAgICAxOTcsIDE4NiwgMTg1LCAxLCAyNTAsIDEwMiwgMTg2LCAxODUsIDEsIDIxNiwgOTAsIDE4NiwgMTg1LCAxLCAyMzQsIDEwMSwgCi0gICAgMTg2LCAxODUsIDEsIDIyOCwgMjUwLCAxODYsIDE4NSwgMSwgMjE2LCAxNTAsIDE4NiwgMTg1LCAxLCAyMTIsIDYwLCAxODYsIAotICAgIDE4NSwgMSwgMjExLCA2OSwgMTg2LCAxODUsIDEsIDI0MCwgMjE2LCAxODYsIDE4NSwgMSwgMjE0LCAxOTAsIDE4NiwgMTg1LCAKLSAgICAxLCA3MywgMTg2LCAxODUsIDEsIDIyNSwgMTQyLCAxODYsIDE4NSwgMSwgMjUzLCAyMDIsIDE4NiwgMTg1LCAxLCAyNDIsIAotICAgIDE2NywgMTg2LCAxODUsIDEsIDIzNSwgMTEyLCAxODYsIDE4NSwgMSwgMjIzLCAxNjYsIDE4NiwgMTg1LCAxLCAyNTIsIDE5MSwgCi0gICAgMTg2LCAxODUsIDEsIDIzNSwgMTAwLCAxODYsIDE4NSwgMSwgMjQ3LCAyMTksIDE4NiwgMTg1LCAxLCAyNDIsIDIyMSwgMTg2LCAKLSAgICAxODUsIDEsIDI0OCwgNSwgMTg2LCAxODUsIDEsIDI1MiwgMTYsIDE4NiwgMTg1LCAxLCAyMzQsIDIwLCAyMzIsIDEyOCwgCi0gICAgMTg2LCAxODUsIDEsIDIzMywgMTEwLCAyMzIsIDEyOCwgMTg2LCAxODUsIDEsIDIzMCwgMTczLCAyMzIsIDEyOCwgMTg2LCAKLSAgICAxODUsIDEsIDIyNiwgOTAsIDIzMiwgMTI4LCAxODYsIDE4NSwgMSwgMjI5LCAyMjksIDIzMiwgMTI4LCAxODYsIDE4NSwgMSwgCi0gICAgMjE2LCA5MSwgMjMyLCAxMjgsIDE4NiwgMTg1LCAxLCAyMjgsIDI1MSwgMjMyLCAxMjgsIDE4NiwgMTg1LCAxLCAyNDAsIAotICAgIDE1NCwgMjMyLCAxMjgsIDE4NiwgMTg1LCAyNSwgNSwgMjI2LCAxOTUsIDE4NiwgMTg1LCAyNSwgNSwgMjM1LCAyNTMsIDE4NiwgCi0gICAgMTg1LCAyNSwgNSwgMjU0LCAxMjIsIDE4NiwgMTg1LCAyNSwgNSwgMjExLCAzOCwgMTg2LCAxODUsIDI1LCA1LCAyMTksIDMyLCAKLSAgICAxODYsIDE4NSwgMjUsIDUsIDIxNCwgMTg3LCAxODYsIDE4NSwgMjUsIDUsIDI1MCwgMTIzLCAxODYsIDE4NSwgMjUsIDUsIAotICAgIDIyNywgMTkxLCAxODYsIDE4NSwgMjUwLCAxMjQsIDE4NiwgMTg1LCAyMzIsIDg1LCAyMzUsIDE1MCwgMTg2LCAxODUsIDI1NCwgCi0gICAgNDYsIDIzNSwgMTUwLCAxODYsIDE4NSwgMjEsIDIxMCwgODYsIDE4NiwgMTg1LCAyMSwgMTEwLCAxODYsIDE4NSwgMjEsIAotICAgIDEwNSwgMTg2LCAxODUsIDIxLCAxNTgsIDE4NiwgMTg1LCAyMSwgMTYxLCAxODYsIDE4NSwgMjEsIDE4OSwgMTg2LCAxODUsIAotICAgIDIxLCAxOTQsIDE4NiwgMTg1LCAyMSwgMTk4LCAxODYsIDE4NSwgMjEsIDE5NSwgMTg2LCAxODUsIDIxLCAyMDAsIDI0LCAKLSAgICAxNDMsIDIyNywgNzcsIDI0LCAxNDMsIDIyNywgODIsIDI0LCAxNDMsIDIxMCwgMjQzLCAyNCwgMTQzLCAyMTAsIDI0MiwgMjQsIAorICAgIDc2LCAzOSwgMjA4LCAyMzEsIDIwNSwgMjM0LCAxMDksIDM5LCAyMDgsIDI1LCAyNDAsIDEyMCwgMzksIDIwOCwgMjUsIDIxNCwgCisgICAgMjEzLCAzOSwgMjA4LCAyNSwgMjE0LCAyMjksIDM5LCAyMDgsIDI1LCAyNTMsIDE5MSwgMzksIDIwOCwgMjUsIDI1MywgMTY4LCAKKyAgICAzOSwgMjA4LCAyNSwgMjU0LCAxMjQsIDM5LCAyMDgsIDI1LCAyNTQsIDEzNywgMzksIDIwOCwgMTM4LCAyMzEsIDIwNSwgCisgICAgMjQ1LCAxODEsIDM5LCAyMDgsIDEzOCwgMjMxLCAyMDUsIDIyNywgMjA3LCAzOSwgMjA4LCAxMzgsIDIzMSwgMjA1LCAyMTYsIAorICAgIDE1NywgMzksIDIwOCwgMTM4LCAyMzEsIDIwNSwgMjE5LCA0MywgMzksIDIwOCwgMTYsIDIzNCwgMTQsIDM5LCAyMDgsIDE2LCAKKyAgICAyMjcsIDIwNywgMzksIDIwOCwgMTYsIDIyMSwgMjU0LCAzOSwgMjA4LCAxNiwgMjQxLCA3MCwgMjQxLCA2NSwgMzksIDIwOCwgCisgICAgMTYsIDIzNCwgMjMsIDIzNCwgMjIsIDE4NywgMTg2LCAxLCA3NSwgMTg3LCAxODYsIDEsIDc2LCAxODcsIDE4NiwgMSwgMjUwLCAKKyAgICAxNTgsIDE4NywgMTg2LCAxLCAyMjcsIDE2NiwgMTg3LCAxODYsIDEsIDIxNSwgMTU3LCAxODcsIDE4NiwgMSwgMjE1LCAxNDUsIAorICAgIDE4NywgMTg2LCAxLCAyNDgsIDEzNiwgMTg3LCAxODYsIDEsIDI0OCwgMTIwLCAxODcsIDE4NiwgMSwgMjI4LCAxMTEsIDE4NywgCisgICAgMTg2LCAxLCAyMjAsIDEwMywgMTg3LCAxODYsIDEsIDIxOCwgMjI0LCAxODcsIDE4NiwgMjUsIDUsIDIzNiwgMzQsIDE4NywgCisgICAgMTg2LCAyNSwgNSwgMjE0LCAxMTgsIDE4NywgMTg2LCAyNSwgNSwgMjU1LCAzOCwgMTg3LCAxODYsIDI1LCA1LCAyNTMsIAorICAgIDE5MywgMTg3LCAxODYsIDI1LCA1LCAyNTUsIDMxLCAxODcsIDE4NiwgMjUwLCAxMjYsIDE4NywgMTg2LCAyNTQsIDIwNywgCisgICAgMjM0LCA5OSwgMTg3LCAxODYsIDI1NCwgMTA0LCAxODcsIDE4NiwgMywgMjIzLCA3NSwgNzgsIDE4NywgMTg2LCAyMTEsIAorICAgIDIwOSwgMjIzLCA3NSwgNzgsIDE4NywgMTg2LCAyNSwgNSwgMjEzLCAxNDcsIDE4NywgMTg2LCAyMTMsIDE1MiwgMjksIDMsIAorICAgIDIxNSwgMTM4LCAyOSwgMywgMjE1LCAxNDEsIDI5LCAzLCAyMTUsIDE0NCwgMjksIDMsIDIxNSwgMTQyLCAyOSwgMywgMjE1LCAKKyAgICAxNDMsIDI5LCAzLCAyMTUsIDE0MCwgMjksIDMsIDI0OCwgMTE0LCAyOSwgMywgMjQ4LCAxMTYsIDI5LCAzLCAyNDgsIDExOSwgCisgICAgMjksIDMsIDI0OCwgMTE3LCAyOSwgMywgMjQ4LCAxMTgsIDI5LCAzLCAyNDgsIDExNSwgMjksIDMsIDI0NiwgMjksIDI5LCAzLCAKKyAgICAyNDYsIDMyLCAyOSwgMywgMjQ2LCAzOCwgMjksIDMsIDI0NiwgMzYsIDI5LCAzLCAyNDYsIDM3LCAyOSwgMywgMjQ2LCAzMCwgCisgICAgMjksIDMsIDI1MCwgMjA1LCAyOSwgMywgMjUwLCAxOTksIDI5LCAzLCAyNTAsIDIwMSwgMjksIDMsIDI1MCwgMjA0LCAyOSwgCisgICAgMywgMjUwLCAyMDIsIDI5LCAzLCAyNTAsIDIwMywgMjksIDMsIDI1MCwgMjAwLCAyOSwgMywgMjUyLCAxMTIsIDI5LCAzLCAKKyAgICAyNTIsIDkxLCAyOSwgMywgMjUyLCAxMDMsIDI5LCAzLCAyNTIsIDExMSwgMjksIDMsIDI1MiwgMTA2LCAyOSwgMywgMjUyLCAKKyAgICAxMDcsIDI5LCAzLCAyNTIsIDk1LCAxODcsIDE4NiwgMSwgMjM0LCAyMCwgMTg3LCAxODYsIDEsIDIyMSwgMjU0LCAxODcsIAorICAgIDE4NiwgMSwgMjMzLCAxMTAsIDE4NywgMTg2LCAxLCAyMzAsIDE3MywgMTg3LCAxODYsIDEsIDE5MCwgMTg3LCAxODYsIDEsIAorICAgIDE5NywgMTg3LCAxODYsIDEsIDI1MCwgMTAzLCAxODcsIDE4NiwgMSwgMjE2LCA5MSwgMTg3LCAxODYsIDEsIDIzNCwgMTAyLCAKKyAgICAxODcsIDE4NiwgMSwgMjI4LCAyNTEsIDE4NywgMTg2LCAxLCAyMTYsIDE1MSwgMTg3LCAxODYsIDEsIDIxMiwgNjAsIDE4NywgCisgICAgMTg2LCAxLCAyMTEsIDY5LCAxODcsIDE4NiwgMSwgMjQwLCAyMTcsIDE4NywgMTg2LCAxLCAyMTQsIDE5MCwgMTg3LCAxODYsIAorICAgIDEsIDczLCAxODcsIDE4NiwgMSwgMjI1LCAxNDMsIDE4NywgMTg2LCAxLCAyNTMsIDIwMywgMTg3LCAxODYsIDEsIDI0MiwgCisgICAgMTY4LCAxODcsIDE4NiwgMSwgMjM1LCAxMTMsIDE4NywgMTg2LCAxLCAyMjMsIDE2NywgMTg3LCAxODYsIDEsIDI1MiwgMTkyLCAKKyAgICAxODcsIDE4NiwgMSwgMjM1LCAxMDEsIDE4NywgMTg2LCAxLCAyNDcsIDIyMCwgMTg3LCAxODYsIDEsIDI0MiwgMjIyLCAxODcsIAorICAgIDE4NiwgMSwgMjQ4LCA2LCAxODcsIDE4NiwgMSwgMjUyLCAxNywgMTg3LCAxODYsIDEsIDIzNCwgMjEsIDIzMiwgMTI5LCAKKyAgICAxODcsIDE4NiwgMSwgMjMzLCAxMTEsIDIzMiwgMTI5LCAxODcsIDE4NiwgMSwgMjMwLCAxNzQsIDIzMiwgMTI5LCAxODcsIAorICAgIDE4NiwgMSwgMjI2LCA5MSwgMjMyLCAxMjksIDE4NywgMTg2LCAxLCAyMjksIDIzMCwgMjMyLCAxMjksIDE4NywgMTg2LCAxLCAKKyAgICAyMTYsIDkyLCAyMzIsIDEyOSwgMTg3LCAxODYsIDEsIDIyOCwgMjUyLCAyMzIsIDEyOSwgMTg3LCAxODYsIDEsIDI0MCwgCisgICAgMTU1LCAyMzIsIDEyOSwgMTg3LCAxODYsIDI1LCA1LCAyMjYsIDE5NiwgMTg3LCAxODYsIDI1LCA1LCAyMzUsIDI1NCwgMTg3LCAKKyAgICAxODYsIDI1LCA1LCAyNTQsIDEyMywgMTg3LCAxODYsIDI1LCA1LCAyMTEsIDM4LCAxODcsIDE4NiwgMjUsIDUsIDIxOSwgMzMsIAorICAgIDE4NywgMTg2LCAyNSwgNSwgMjE0LCAxODcsIDE4NywgMTg2LCAyNSwgNSwgMjUwLCAxMjQsIDE4NywgMTg2LCAyNSwgNSwgCisgICAgMjI3LCAxOTIsIDE4NywgMTg2LCAyNTAsIDEyNSwgMTg3LCAxODYsIDIzMiwgODYsIDIzNSwgMTUxLCAxODcsIDE4NiwgMjU0LCAKKyAgICA0NywgMjM1LCAxNTEsIDE4NywgMTg2LCAyMSwgMjEwLCA4NiwgMTg3LCAxODYsIDIxLCAxMTAsIDE4NywgMTg2LCAyMSwgCisgICAgMTA1LCAxODcsIDE4NiwgMjEsIDE1OCwgMTg3LCAxODYsIDIxLCAxNjEsIDE4NywgMTg2LCAyMSwgMTg5LCAxODcsIDE4NiwgCisgICAgMjEsIDE5NCwgMTg3LCAxODYsIDIxLCAxOTgsIDE4NywgMTg2LCAyMSwgMTk1LCAxODcsIDE4NiwgMjEsIDIwMCwgMjQsIAorICAgIDE0MywgMjI3LCA3OCwgMjQsIDE0MywgMjI3LCA4MywgMjQsIDE0MywgMjEwLCAyNDMsIDI0LCAxNDMsIDIxMCwgMjQyLCAyNCwgCiAgICAgMTQzLCAyMTAsIDI0MSwgMjQsIDE0MywgMjE1LCAyMywgMjQsIDE0MywgMjE1LCAyNiwgMjQsIDE0MywgMjEwLCAyMTAsIDI0LCAKLSAgICAxNDMsIDIxMCwgMjA2LCAyNCwgMTQzLCAyNDUsIDU0LCAyNCwgMTQzLCAyNDUsIDUyLCAyNCwgMTQzLCAyNDUsIDUzLCAyNCwgCi0gICAgMTQzLCAyNDUsIDUwLCAyNCwgMTQzLCAyNDAsIDE0NCwgMjQsIDE0MywgMjQwLCAxNDMsIDI0LCAxNDMsIDI0MCwgMTQxLCAKLSAgICAyNCwgMTQzLCAyNDAsIDE0MiwgMjQsIDE0MywgMjQwLCAxNDcsIDI0LCAxNDMsIDI0MCwgMTQwLCAyNCwgMTQzLCAyNDAsIAotICAgIDEzOSwgMjQsIDE0MywgMjQwLCAxNDksIDI0LCAxNDMsIDI1NCwgMzMsIDI0LCAxNDMsIDI1NCwgMzIsIDI0LCA5MCwgMjI4LCAKLSAgICAyMTksIDI0LCA5MCwgMjI4LCAyMjUsIDI0LCA5MCwgMjE4LCAyMDQsIDI0LCA5MCwgMjE4LCAyMDMsIDI0LCA5MCwgMjE2LCAKLSAgICA5NiwgMjQsIDkwLCAyMTYsIDk0LCAyNCwgOTAsIDIxNiwgOTMsIDI0LCA5MCwgMjE2LCA5OSwgMjQsIDkwLCAyMTYsIDEwMCwgCi0gICAgMjQsIDkwLCAyMTYsIDkyLCAyNCwgOTAsIDIyMywgNSwgMjQsIDkwLCAyMjMsIDIwLCAyNCwgOTAsIDIxOCwgMjEwLCAyNCwgCi0gICAgOTAsIDIyMywgMTcsIDI0LCA5MCwgMjIzLCA3LCAyNCwgOTAsIDIyMywgOSwgMjQsIDkwLCAyMjIsIDI1MiwgMjQsIDkwLCAKLSAgICAyMjIsIDI1MywgMjQsIDkwLCAyMzQsIDIxOCwgMjQsIDkwLCAyMzAsIDIxMiwgMjQsIDkwLCAyMzAsIDIwNiwgMjQsIDkwLCAKLSAgICAyMTgsIDIxNCwgMjQsIDkwLCAyMzAsIDIwOSwgMjQsIDkwLCAyMzAsIDIxNSwgMjQsIDkwLCAyMjUsIDc2LCAyNCwgOTAsIAotICAgIDIyNSwgODUsIDI0LCA5MCwgMjI1LCA4OSwgMjQsIDkwLCAyMTgsIDIxMiwgMjQsIDkwLCAyMjUsIDc5LCAyNCwgOTAsIDIyNSwgCi0gICAgOTMsIDI0LCA5MCwgMjI1LCA5NCwgMjQsIDkwLCAyMTksIDE0MCwgMjQsIDkwLCAyMTksIDE0MywgMjQsIDkwLCAyMTgsIAotICAgIDIwOCwgMjQsIDkwLCAyMTgsIDIwNiwgMjQsIDkwLCAyMTksIDEzOCwgMjQsIDkwLCAyMTksIDE0NiwgMjQsIDkwLCAyMTksIAotICAgIDE0NywgMjQsIDkwLCAyMTksIDEzMiwgMjQsIDkwLCAyMTksIDE0NSwgMjQsIDkwLCAyMjYsIDMwLCAyNCwgOTAsIDIyNiwgCi0gICAgMzEsIDI0LCA5MCwgMjExLCAyNCwgMjQsIDkwLCAyMTEsIDI1LCAyNCwgOTAsIDI1MCwgNDQsIDI0LCA5MCwgMjUwLCA0MywgCi0gICAgMjQsIDkwLCAyMTgsIDIxOSwgMjQsIDkwLCAyMjUsIDEyOCwgMjQsIDkwLCAyMjUsIDEyNywgOSwgMTQsIDIzOCwgMjQsIDksIAotICAgIDE0LCAyMzgsIDIzLCA5LCAxNCwgMjM4LCAyMiwgOSwgMTQsIDIzOCwgMjEsIDksIDE0LCAyMzgsIDIwLCA5LCAxNCwgMjM4LCAKLSAgICAxOSwgOSwgMTQsIDIzOCwgMTgsIDksIDE0LCAyMzgsIDE3LCA5LCAxNCwgMjM4LCAxNiwgOSwgMTQsIDIzOCwgMTUsIDksIAotICAgIDE0LCAyMzgsIDE0LCA5LCAxNCwgMjM4LCAxMywgOSwgMTQsIDIzOCwgMTIsIDksIDE0LCAyMzgsIDExLCA5LCAxNCwgMjM4LCAKLSAgICAxMCwgOSwgMTQsIDIzOCwgOSwgOSwgMTQsIDIzOCwgOCwgOSwgMTQsIDIzOCwgNywgOSwgMTQsIDIzOCwgNiwgOSwgMTQsIAotICAgIDIzOCwgNSwgOSwgMTQsIDIzOCwgNCwgOSwgMTQsIDIzOCwgMywgOSwgMTQsIDIzOCwgMiwgOSwgMTQsIDIzOCwgMSwgOSwgCi0gICAgMTQsIDIzOCwgMCwgOSwgMTQsIDIzNywgMjU1LCA5LCAxNCwgMjM3LCAyNTQsIDksIDE0LCAyMzcsIDI1MywgOSwgMTQsIAotICAgIDIzNywgMjUyLCA5LCAxNCwgMjM3LCAyNTEsIDksIDE0LCAyMzcsIDI1MCwgOSwgMTQsIDIzNywgMjQ5LCA5LCAxNCwgMjM3LCAKLSAgICAyNDgsIDksIDE0LCAyMzcsIDI0NywgOSwgMTQsIDIzNywgMjQ2LCA5LCAxNCwgMjM3LCAyNDUsIDksIDE0LCAyMzcsIDI0NCwgCi0gICAgOSwgMTQsIDIzNywgMjQzLCA5LCAxNCwgMjM3LCAyNDIsIDksIDE0LCAyMzcsIDI0MSwgOSwgMTQsIDIzNywgMjQwLCA5LCAKLSAgICAxNCwgMjM3LCAyMzksIDksIDE0LCAyMzcsIDIzOCwgOSwgMTQsIDIzNywgMjM3LCA5LCAxNCwgMjM3LCAyMzYsIDksIDE0LCAKLSAgICAyMzcsIDIzNSwgOSwgMTQsIDIzNywgMjM0LCA5LCAxNCwgMjM3LCAyMzMsIDksIDE0LCAyMzcsIDIzMiwgOSwgMTQsIDIzNywgCi0gICAgMjMxLCA5LCAxNCwgMjM3LCAyMzAsIDksIDE0LCAyMzcsIDIyOSwgOSwgMTQsIDIzNywgMjI4LCA5LCAxNCwgMjM3LCAyMjcsIAotICAgIDksIDE0LCAyMzcsIDIyNiwgOSwgMTQsIDIzNywgMjI1LCA5LCAxNCwgMjM3LCAyMjQsIDksIDE0LCAyMzcsIDIyMywgOSwgCi0gICAgMTQsIDIzNywgMjIyLCA5LCAxNCwgMjM3LCAyMjEsIDksIDE0LCAyMzcsIDIyMCwgOSwgMTQsIDIzNywgMjE5LCA5LCAxNCwgCi0gICAgMjM3LCAyMTgsIDksIDE0LCAyMzcsIDIxNywgOSwgMTQsIDIzNywgMjE2LCA5LCAxNCwgMjM3LCAyMTUsIDksIDE0LCAyMzcsIAotICAgIDIxNCwgOSwgMTQsIDIzNywgMjEzLCA5LCAxNCwgMjM3LCAyMTIsIDksIDE0LCAyMzcsIDIxMSwgOSwgMTQsIDIzNywgMjEwLCAKLSAgICA5LCAxNCwgMjM3LCAyMDksIDksIDE0LCAyMzcsIDIwOCwgOSwgMTQsIDIzNywgMjA3LCA5LCAxNCwgMjM3LCAyMDYsIDksIAotICAgIDE0LCAyMzcsIDIwNSwgOSwgMTQsIDIzNywgMjA0LCA5LCAxNCwgMjM3LCAyMDMsIDksIDE0LCAyMzcsIDIwMiwgOSwgMTQsIAotICAgIDIzNywgMjAxLCA5LCAxNCwgMjM3LCAyMDAsIDksIDE0LCAyMzcsIDE5OSwgOSwgMTQsIDIzNywgMTk4LCA5LCAxNCwgMjM3LCAKLSAgICAxOTcsIDksIDE0LCAyMzcsIDE5NiwgOSwgMTQsIDIzNywgMTk1LCA5LCAxNCwgMjM3LCAxOTQsIDksIDE0LCAyMzcsIDE5MywgCi0gICAgOSwgMTQsIDIzNywgMTkyLCA5LCAxNCwgMjM3LCAxOTEsIDksIDE0LCAyMzcsIDE5MCwgOSwgMTQsIDIzNywgMTg5LCA5LCAKLSAgICAxNCwgMjM3LCAxODgsIDksIDE0LCAyMzcsIDE4NywgOSwgMTQsIDIzNywgMTg2LCA5LCAxNCwgMjM3LCAxODUsIDksIDE0LCAKLSAgICAyMzcsIDE4NCwgOSwgMTQsIDIzNywgMTgzLCA5LCAxNCwgMjM3LCAxODIsIDksIDE0LCAyMzcsIDE4MSwgOSwgMTQsIDIzNywgCi0gICAgMTgwLCA5LCAxNCwgMjM3LCAxNzksIDksIDE0LCAyMzcsIDE3OCwgOSwgMTQsIDIzNywgMTc3LCA5LCAxNCwgMjM3LCAxNzYsIAotICAgIDksIDE0LCAyMzcsIDE3NSwgOSwgMTQsIDIzNywgMTc0LCA5LCAxNCwgMjM3LCAxNzMsIDksIDE0LCAyMzcsIDE3MiwgOSwgCi0gICAgMTQsIDIzNywgMTcxLCA5LCAxNCwgMjM3LCAxNzAsIDksIDE0LCAyMzcsIDE2OSwgOSwgMTQsIDIzNywgMTY4LCA5LCAxNCwgCi0gICAgMjM3LCAxNjcsIDksIDE0LCAyMzcsIDE2NiwgOSwgMTQsIDIzNywgMTY1LCA5LCAxNCwgMjM3LCAxNjQsIDksIDE0LCAyMzcsIAotICAgIDE2MywgOSwgMTQsIDIzNywgMTYyLCA5LCAxNCwgMjM3LCAxNjEsIDksIDE0LCAyMzcsIDE2MCwgOSwgMTQsIDIzNywgMTU5LCAKLSAgICA5LCAxNCwgMjM3LCAxNTgsIDksIDE0LCAyMzcsIDE1NywgOSwgMTQsIDIzNywgMTU2LCA5LCAxNCwgMjM3LCAxNTUsIDksIAotICAgIDE0LCAyMzcsIDE1NCwgOSwgMTQsIDIzNywgMTUzLCA5LCAxNCwgMjM3LCAxNTIsIDksIDE0LCAyMzcsIDE1MSwgOSwgMTQsIAotICAgIDIzNywgMTUwLCA5LCAxNCwgMjM3LCAxNDksIDksIDE0LCAyMzcsIDE0OCwgOSwgMTQsIDIzNywgMTQ3LCA5LCAxNCwgMjM3LCAKLSAgICAxNDYsIDksIDE0LCAyMzcsIDE0NSwgOSwgMTQsIDIzNywgMTQ0LCA5LCAxNCwgMjM3LCAxNDMsIDksIDE0LCAyMzcsIDE0MiwgCi0gICAgOSwgMTQsIDIzNywgMTQxLCA5LCAxNCwgMjM3LCAxNDAsIDksIDE0LCAyMzcsIDEzOSwgOSwgMTQsIDIzNywgMTM4LCA5LCAKLSAgICAxNCwgMjM3LCAxMzcsIDksIDE0LCAyMzcsIDEzNiwgOSwgMTQsIDIzNywgMTM1LCA5LCAxNCwgMjM3LCAxMzQsIDksIDE0LCAKLSAgICAyMzcsIDEzMywgOSwgMTQsIDIzNywgMTMyLCA5LCAxNCwgMjM3LCAxMzEsIDksIDE0LCAyMzcsIDEzMCwgOSwgMTQsIDIzNywgCi0gICAgMTI5LCA5LCAxNCwgMjM3LCAxMjgsIDksIDE0LCAyMzcsIDEyNywgOSwgMTQsIDIzNywgMTI2LCA5LCAxNCwgMjM3LCAxMjUsIAotICAgIDksIDE0LCAyMzcsIDEyNCwgOSwgMTQsIDIzNywgMTIzLCA5LCAxNCwgMjM3LCAxMjIsIDksIDE0LCAyMzcsIDEyMSwgOSwgCi0gICAgMTQsIDIzNywgMTIwLCA5LCAxNCwgMjM3LCAxMTksIDksIDE0LCAyMzcsIDExOCwgOSwgMTQsIDIzNywgMTE3LCA5LCAxNCwgCi0gICAgMjM3LCAxMTYsIDksIDE0LCAyMzcsIDExNSwgOSwgMTQsIDIzNywgMTE0LCA5LCAxNCwgMjM3LCAxMTMsIDksIDE0LCAyMzcsIAotICAgIDExMiwgOSwgMTQsIDIzNywgMTExLCA5LCAxNCwgMjM3LCAxMTAsIDksIDE0LCAyMzcsIDEwOSwgOSwgMTQsIDIzNywgMTA4LCAKLSAgICA5LCAxNCwgMjM3LCAxMDcsIDksIDE0LCAyMzcsIDEwNiwgOSwgMTQsIDIzNywgMTA1LCA5LCAxNCwgMjM3LCAxMDQsIDksIAotICAgIDE0LCAyMzcsIDEwMywgOSwgMTQsIDIzNywgMTAyLCA5LCAxNCwgMjM3LCAxMDEsIDksIDE0LCAyMzcsIDEwMCwgOSwgMTQsIAotICAgIDIzNywgOTksIDksIDE0LCAyMzcsIDk4LCA5LCAxNCwgMjM3LCA5NywgOSwgMTQsIDIzNywgOTYsIDksIDE0LCAyMzcsIDk1LCAKLSAgICA5LCAxNCwgMjM3LCA5NCwgOSwgMTQsIDIzNywgOTMsIDksIDE0LCAyMzcsIDkyLCA5LCAxNCwgMjM3LCA5MSwgOSwgMTQsIAotICAgIDIzNywgOTAsIDksIDE0LCAyMzcsIDg5LCA5LCAxNCwgMjM3LCA4OCwgOSwgMTQsIDIzNywgODcsIDksIDE0LCAyMzcsIDg2LCAKLSAgICA5LCAxNCwgMjM3LCA4NSwgOSwgMTQsIDIzNywgODQsIDksIDE0LCAyMzcsIDgzLCA5LCAxNCwgMjM3LCA4MiwgOSwgMTQsIAotICAgIDIzNywgODEsIDksIDE0LCAyMzcsIDgwLCA5LCAxNCwgMjM3LCA3OSwgOSwgMTQsIDIzNywgNzgsIDksIDE0LCAyMzcsIDc3LCAKLSAgICA5LCAxNCwgMjM3LCA3NiwgOSwgMTQsIDIzNywgNzUsIDksIDE0LCAyMzcsIDc0LCA5LCAxNCwgMjM3LCA3MywgOSwgMTQsIAotICAgIDIzNywgNzIsIDksIDE0LCAyMzcsIDcxLCA5LCAxNCwgMjM3LCA3MCwgOSwgMTQsIDIzNywgNjksIDksIDE0LCAyMzcsIDY4LCAKLSAgICA5LCAxNCwgMjM3LCA2NywgOSwgMTQsIDIzNywgNjYsIDksIDE0LCAyMzcsIDY1LCA5LCAxNCwgMjM3LCA2NCwgOSwgMTQsIAotICAgIDIzNywgNjMsIDksIDE0LCAyMzcsIDYyLCA5LCAxNCwgMjM3LCA2MSwgOSwgMTQsIDIzNywgNjAsIDksIDE0LCAyMzcsIDU5LCAKLSAgICA5LCAxNCwgMjM3LCA1OCwgOSwgMTQsIDIzNywgNTcsIDksIDE0LCAyMzcsIDU2LCA5LCAxNCwgMjM3LCA1NSwgOSwgMTQsIAotICAgIDIzNywgNTQsIDksIDE0LCAyMzcsIDUzLCA5LCAxNCwgMjM3LCA1MiwgOSwgMTQsIDIzNywgNTEsIDksIDE0LCAyMzcsIDUwLCAKLSAgICA5LCAxNCwgMjM3LCA0OSwgOSwgMTQsIDIzNywgNDgsIDksIDE0LCAyMzcsIDQ3LCA5LCAxNCwgMjM3LCA0NiwgOSwgMTQsIAotICAgIDIzNywgNDUsIDksIDE0LCAyMzcsIDQ0LCA5LCAxNCwgMjM3LCA0MywgOSwgMTQsIDIzNywgNDIsIDksIDE0LCAyMzcsIDQxLCAKLSAgICA5LCAxNCwgMjM3LCA0MCwgOSwgMTQsIDIzNywgMzksIDksIDE0LCAyMzcsIDM4LCA5LCAxNCwgMjM3LCAzNywgOSwgMTQsIAotICAgIDIzNywgMzYsIDksIDE0LCAyMzcsIDM1LCA5LCAxNCwgMjM3LCAzNCwgOSwgMTQsIDIzNywgMzMsIDksIDE0LCAyMzcsIDMyLCAKLSAgICA5LCAxNCwgMjM3LCAzMSwgOSwgMTQsIDIzNywgMzAsIDksIDE0LCAyMzcsIDI5LCA5LCAxNCwgMjM3LCAyOCwgOSwgMTQsIAotICAgIDIzNywgMjcsIDksIDE0LCAyMzcsIDI2LCA5LCAxNCwgMjM3LCAyNSwgOSwgMTQsIDIzNywgMjQsIDksIDE0LCAyMzcsIDIzLCAKLSAgICA5LCAxNCwgMjM3LCAyMiwgOSwgMTQsIDIzNywgMjEsIDksIDE0LCAyMzcsIDIwLCA5LCAxNCwgMjM3LCAxOSwgOSwgMTQsIAotICAgIDIzNywgMTgsIDksIDE0LCAyMzcsIDE3LCA5LCAxNCwgMjM3LCAxNiwgOSwgMTQsIDIzNywgMTUsIDksIDE0LCAyMzcsIDE0LCAKLSAgICA5LCAxNCwgMjM3LCAxMywgOSwgMTQsIDIzNywgMTIsIDksIDE0LCAyMzcsIDExLCA5LCAxNCwgMjM3LCAxMCwgOSwgMTQsIAotICAgIDIzNywgOSwgOSwgMTQsIDIzNywgOCwgOSwgMTQsIDIzNywgNywgOSwgMTQsIDIzNywgNiwgOSwgMTQsIDIzNywgNSwgOSwgCi0gICAgMTQsIDIzNywgNCwgOSwgMTQsIDIzNywgMywgOSwgMTQsIDIzNywgMiwgOSwgMTQsIDIzNywgMSwgOSwgMTQsIDIzNywgMCwgCi0gICAgOSwgMTQsIDIzNiwgMjU1LCA5LCAxNCwgMjM2LCAyNTQsIDksIDE0LCAyMzYsIDI1MywgOSwgMTQsIDIzNiwgMjUyLCA5LCAKLSAgICAxNCwgMjM2LCAyNTEsIDksIDE0LCAyMzYsIDI1MCwgOSwgMTQsIDIzNiwgMjQ5LCA5LCAxNCwgMjM2LCAyNDgsIDksIDE0LCAKLSAgICAyMzYsIDI0NywgOSwgMTQsIDIzNiwgMjQ2LCA5LCAxNCwgMjM2LCAyNDUsIDksIDE0LCAyMzYsIDI0NCwgOSwgMTQsIDIzNiwgCi0gICAgMjQzLCA5LCAxNCwgMjM2LCAyNDIsIDksIDE0LCAyMzYsIDI0MSwgOSwgMTQsIDIzNiwgMjQwLCA5LCAxNCwgMjM2LCAyMzksIAotICAgIDksIDE0LCAyMzYsIDIzOCwgOSwgMTQsIDIzNiwgMjM3LCA5LCAxNCwgMjM2LCAyMzYsIDksIDE0LCAyMzYsIDIzNSwgOSwgCi0gICAgMTQsIDIzNiwgMjM0LCA5LCAxNCwgMjM2LCAyMzMsIDksIDE0LCAyMzYsIDIzMiwgOSwgMTQsIDIzNiwgMjMxLCA5LCAxNCwgCi0gICAgMjM2LCAyMzAsIDksIDE0LCAyMzYsIDIyOSwgOSwgMTQsIDIzNiwgMjI4LCA5LCAxNCwgMjM2LCAyMjcsIDksIDE0LCAyMzYsIAotICAgIDIyNiwgOSwgMTQsIDIzNiwgMjI1LCA5LCAxNCwgMjM2LCAyMjQsIDksIDE0LCAyMzYsIDIyMywgOSwgMTQsIDIzNiwgMjIyLCAKLSAgICA5LCAxNCwgMjM2LCAyMjEsIDksIDE0LCAyMzYsIDIyMCwgOSwgMTQsIDIzNiwgMjE5LCA5LCAxNCwgMjM2LCAyMTgsIDksIAotICAgIDE0LCAyMzYsIDIxNywgOSwgMTQsIDIzNiwgMjE2LCA5LCAxNCwgMjM2LCAyMTUsIDksIDE0LCAyMzYsIDIxNCwgOSwgMTQsIAotICAgIDIzNiwgMjEzLCA5LCAxNCwgMjM2LCAyMTIsIDksIDE0LCAyMzYsIDIxMSwgOSwgMTQsIDIzNiwgMjEwLCA5LCAxNCwgMjM2LCAKLSAgICAyMDksIDksIDE0LCAyMzYsIDIwOCwgOSwgMTQsIDIzNiwgMjA3LCA5LCAxNCwgMjM2LCAyMDYsIDksIDE0LCAyMzYsIDIwNSwgCi0gICAgOSwgMTQsIDIzNiwgMjA0LCA5LCAxNCwgMjM2LCAyMDMsIDksIDE0LCAyMzYsIDIwMiwgOSwgMTQsIDIzNiwgMjAxLCA5LCAKLSAgICAxNCwgMjM2LCAyMDAsIDksIDE0LCAyMzYsIDE5OSwgOSwgMTQsIDIzNiwgMTk4LCA5LCAxNCwgMjM2LCAxOTcsIDksIDE0LCAKLSAgICAyMzYsIDE5NiwgOSwgMTQsIDIzNiwgMTk1LCA5LCAxNCwgMjM2LCAxOTQsIDksIDE0LCAyMzYsIDE5MywgOSwgMTQsIDIzNiwgCi0gICAgMTkyLCA5LCAxNCwgMjM2LCAxOTEsIDksIDE0LCAyMzYsIDE5MCwgOSwgMTQsIDIzNiwgMTg5LCA5LCAxNCwgMjM2LCAxODgsIAotICAgIDksIDE0LCAyMzYsIDE4NywgOSwgMTQsIDIzNiwgMTg2LCA5LCAxNCwgMjM2LCAxODUsIDksIDE0LCAyMzYsIDE4NCwgOSwgCi0gICAgMTQsIDIzNiwgMTgzLCA5LCAxNCwgMjM2LCAxODIsIDksIDE0LCAyMzYsIDE4MSwgOSwgMTQsIDIzNiwgMTgwLCA5LCAxNCwgCi0gICAgMjM2LCAxNzksIDksIDE0LCAyMzYsIDE3OCwgOSwgMTQsIDIzNiwgMTc3LCA5LCAxNCwgMjM2LCAxNzYsIDksIDE0LCAyMzYsIAotICAgIDE3NSwgOSwgMTQsIDIzNiwgMTc0LCA5LCAxNCwgMjM2LCAxNzMsIDksIDE0LCAyMzYsIDE3MiwgOSwgMTQsIDIzNiwgMTcxLCAKLSAgICA5LCAxNCwgMjM2LCAxNzAsIDksIDE0LCAyMzYsIDE2OSwgOSwgMTQsIDIzNiwgMTY4LCA5LCAxNCwgMjM2LCAxNjcsIDksIAotICAgIDE0LCAyMzYsIDE2NiwgOSwgMTQsIDIzNiwgMTY1LCA5LCAxNCwgMjM2LCAxNjQsIDksIDE0LCAyMzYsIDE2MywgOSwgMTQsIAotICAgIDIzNiwgMTYyLCA5LCAxNCwgMjM2LCAxNjEsIDksIDE0LCAyMzYsIDE2MCwgOSwgMTQsIDIzNiwgMTU5LCA5LCAxNCwgMjM2LCAKLSAgICAxNTgsIDksIDE0LCAyMzYsIDE1NywgOSwgMTQsIDIzNiwgMTU2LCA5LCAxNCwgMjM2LCAxNTUsIDksIDE0LCAyMzYsIDE1NCwgCi0gICAgOSwgMTQsIDIzNiwgMTUzLCA5LCAxNCwgMjM2LCAxNTIsIDksIDE0LCAyMzYsIDE1MSwgOSwgMTQsIDIzNiwgMTUwLCA5LCAKLSAgICAxNCwgMjM2LCAxNDksIDksIDE0LCAyMzYsIDE0OCwgOSwgMTQsIDIzNiwgMTQ3LCA5LCAxNCwgMjM2LCAxNDYsIDksIDE0LCAKLSAgICAyMzYsIDE0NSwgOSwgMTQsIDIzNiwgMTQ0LCA5LCAxNCwgMjM2LCAxNDMsIDksIDE0LCAyMzYsIDE0MiwgOSwgMTQsIDIzNiwgCi0gICAgMTQxLCA5LCAxNCwgMjM2LCAxNDAsIDksIDE0LCAyMzYsIDEzOSwgOSwgMTQsIDIzNiwgMTM4LCA5LCAxNCwgMjM2LCAxMzcsIAotICAgIDksIDE0LCAyMzYsIDEzNiwgOSwgMTQsIDIzNiwgMTM1LCA5LCAxNCwgMjM2LCAxMzQsIDksIDE0LCAyMzYsIDEzMywgOSwgCi0gICAgMTQsIDIzNiwgMTMyLCA5LCAxNCwgMjM2LCAxMzEsIDksIDE0LCAyMzYsIDEzMCwgOSwgMTQsIDIzNiwgMTI5LCA5LCAxNCwgCi0gICAgMjM2LCAxMjgsIDksIDE0LCAyMzYsIDEyNywgOSwgMTQsIDIzNiwgMTI2LCA5LCAxNCwgMjM2LCAxMjUsIDksIDE0LCAyMzYsIAotICAgIDEyNCwgOSwgMTQsIDIzNiwgMTIzLCA5LCAxNCwgMjM2LCAxMjIsIDksIDE0LCAyMzYsIDEyMSwgOSwgMTQsIDIzNiwgMTIwLCAKLSAgICA5LCAxNCwgMjM2LCAxMTksIDksIDE0LCAyMzYsIDExOCwgOSwgMTQsIDIzNiwgMTE3LCA5LCAxNCwgMjM2LCAxMTYsIDksIAotICAgIDE0LCAyMzYsIDExNSwgOSwgMTQsIDIzNiwgMTE0LCA5LCAxNCwgMjM2LCAxMTMsIDksIDE0LCAyMzYsIDExMiwgOSwgMTQsIAotICAgIDIzNiwgMTExLCA5LCAxNCwgMjM2LCAxMTAsIDksIDE0LCAyMzYsIDEwOSwgOSwgMTQsIDIzNiwgMTA4LCA5LCAxNCwgMjM2LCAKLSAgICAxMDcsIDksIDE0LCAyMzYsIDEwNiwgOSwgMTQsIDIzNiwgMTA1LCA5LCAxNCwgMjM2LCAxMDQsIDksIDE0LCAyMzYsIDEwMywgCi0gICAgOSwgMTQsIDIzNiwgMTAyLCA5LCAxNCwgMjM2LCAxMDEsIDksIDE0LCAyMzYsIDEwMCwgOSwgMTQsIDIzNiwgOTksIDksIDE0LCAKLSAgICAyMzYsIDk4LCA5LCAxNCwgMjM2LCA5NywgOSwgMTQsIDIzNiwgOTYsIDksIDE0LCAyMzYsIDk1LCA5LCAxNCwgMjM2LCA5NCwgCi0gICAgOSwgMTQsIDIzNiwgOTMsIDksIDE0LCAyMzYsIDkyLCA5LCAxNCwgMjM2LCA5MSwgOSwgMTQsIDIzNiwgOTAsIDksIDE0LCAKLSAgICAyMzYsIDg5LCA5LCAxNCwgMjM2LCA4OCwgOSwgMTQsIDIzNiwgODcsIDksIDE0LCAyMzYsIDg2LCA5LCAxNCwgMjM2LCA4NSwgCi0gICAgOSwgMTQsIDIzNiwgODQsIDksIDE0LCAyMzYsIDgzLCA5LCAxNCwgMjM2LCA4MiwgOSwgMTQsIDIzNiwgODEsIDksIDE0LCAKLSAgICAyMzYsIDgwLCA5LCAxNCwgMjM2LCA3OSwgOSwgMTQsIDIzNiwgNzgsIDksIDE0LCAyMzYsIDc3LCA5LCAxNCwgMjM2LCA3NiwgCi0gICAgOSwgMTQsIDIzNiwgNzUsIDksIDE0LCAyMzYsIDc0LCA5LCAxNCwgMjM2LCA3MywgOSwgMTQsIDIzNiwgNzIsIDksIDE0LCAKLSAgICAyMzYsIDcxLCA5LCAxNCwgMjM2LCA3MCwgOSwgMTQsIDIzNiwgNjksIDksIDE0LCAyMzYsIDY4LCA5LCAxNCwgMjM2LCA2NywgCi0gICAgOSwgMTQsIDIzNiwgNjYsIDksIDE0LCAyMzYsIDY1LCA3LCA0LCAyNywgMjQ0LCAxMjUsIDcsIDQsIDI3LCAyNDQsIDEyMSwgCi0gICAgNywgNCwgMjcsIDI0NCwgNzYsIDcsIDQsIDI3LCAyNDQsIDEyNCwgNywgNCwgMjcsIDI0NCwgMTIzLCA3LCA0LCAyNywgMTk5LCAKLSAgICAyMjIsIDkyLCAyMTcsIDE1MiwgNywgNCwgMjcsIDIxOCwgMTY4LCAxNTAsIDQsIDI3LCAyMzEsIDU5LCAyMjgsIDM5LCAxNTAsIAotICAgIDQsIDI3LCAyMzEsIDU5LCAyNDUsIDIxMywgMTUwLCA0LCAyNywgMjMxLCA1OSwgMjM1LCAyMjcsIDE1MCwgNCwgMjcsIDIxMywgCi0gICAgMTgwLCAyMjgsIDM5LCAxNTAsIDQsIDI3LCAyMzEsIDU5LCAyMTEsIDE2MCwgOTQsIDEsIDIxMCwgMjM0LCAyLCAyNDEsIAotICAgIDE1OCwgOTQsIDIyNSwgMTEsIDIzNSwgNTAsIDIxNCwgMTEsIDk0LCAyNywgMjExLCA2LCAyMTAsIDIzNCwgMjEwLCAyMzQsIAotICAgIDIyNSwgMjM5LCA5NCwgMSwgMjU0LCAxMzksIDI1MywgMTYyLCA5NCwgMSwgMjExLCAyNDcsIDI1NCwgMTcwLCA5NCwgMSwgCi0gICAgMjExLCAyNDcsIDI0OCwgMTg5LCA5NCwgMSwgMjExLCAyNDcsIDI0MSwgMjM4LCA5NCwgMSwgMjExLCAyNDcsIDIzNCwgMjUwLCAKLSAgICA5NCwgMSwgMjExLCAyNDcsIDIzMywgOTQsIDk0LCAxLCAyMTEsIDI0NywgNDAsIDIzMSwgNjUsIDk0LCAxLCAyMTEsIDI0NywgCi0gICAgMjIzLCA2NywgOTQsIDEsIDIxMSwgMjQ3LCAyMTcsIDM4LCA5NCwgMSwgMjU0LCAxMzksIDk2LCA1MCwgOTQsIDEsIDIyMCwgCi0gICAgMjEsIDIsIDIyMCwgMjEsIDI0NywgMTIwLCA5NCwgMSwgMjIwLCAyMSwgMiwgMjE5LCAxNTksIDI0NywgMTIwLCA5NCwgMSwgCi0gICAgMjIwLCAyMSwgMiwgMjQ4LCAyMDgsIDIyLCAyMjAsIDIxLCAyNDcsIDEyMCwgOTQsIDEsIDIyMCwgMjEsIDIsIDI0OCwgMjA4LCAKLSAgICAyMiwgMjE5LCAxNTksIDI0NywgMTIwLCA5NCwgMSwgMTEyLCAyLCAyMjUsIDIzOSwgOTQsIDEsIDExMiwgMiwgMjI0LCA3NiwgCi0gICAgOTQsIDEsIDExMiwgMiwgMjMxLCAxNzEsIDk0LCAxLCAyNTIsIDI5LCAyLCAyNDgsIDIwNywgOTQsIDEsIDI0MiwgMjAyLCAyLCAKLSAgICAyNDgsIDIwNywgOTQsIDEsIDI0OCwgMTkwLCAyLCAyNDgsIDIwNywgOTQsIDEsIDI0MSwgMjM5LCAyLCAyMzEsIDE3MSwgOTQsIAotICAgIDEsIDIxNCwgNCwgMiwgMjQ4LCAyMDcsIDk0LCAxLCAyMTAsIDk4LCAyLCAyNDgsIDIwNywgOTQsIDEsIDIxNiwgMjMxLCAyLCAKLSAgICAyNDgsIDIwNywgOTQsIDEsIDIxMCwgMjM0LCAyLCAyNDgsIDIwNywgOTQsIDEsIDQwLCAyMzQsIDI1MSwgMiwgMjQ4LCAyMDcsIAotICAgIDk0LCAxLCAyMzQsIDI1MSwgMiwgMjQ4LCAyMDcsIDk0LCAxLCAyMzMsIDk1LCAyLCAyNDgsIDIwNywgOTQsIDEsIDIzMSwgCi0gICAgNjYsIDIsIDI0OCwgMjA3LCA5NCwgMSwgMjI3LCAxOTUsIDIsIDI0OCwgMjA3LCA5NCwgMSwgMjIxLCAyNTAsIDIsIDI0OCwgCi0gICAgMjA3LCA5NCwgMSwgNDAsIDIyNSwgMjIyLCAyLCAyNDgsIDIwNywgOTQsIDEsIDIyNSwgMjIyLCAyLCAyNDgsIDIwNywgOTQsIAotICAgIDEsIDIxNSwgMTgwLCAyLCAyNDgsIDIwNywgOTQsIDEsIDIyNCwgNDAsIDIsIDI0OCwgMjA3LCA5NCwgMSwgMjIzLCA2OCwgMiwgCi0gICAgMjQ4LCAyMDcsIDk0LCAxLCAyMjAsIDIxLCAyLCAyNDgsIDIwNywgOTQsIDEsIDIxNywgMzksIDIsIDI0OCwgMjA3LCA5NCwgCi0gICAgMSwgMjE0LCA0LCAyLCAyNDEsIDYxLCA5NCwgMSwgMjUyLCAyOSwgMiwgMjIzLCAxNjksIDk0LCAxLCAyMzQsIDI1MSwgMiwgCi0gICAgMjIzLCAxNjksIDk0LCAxLCAyMjUsIDIyMiwgMiwgMjIzLCAxNjksIDk0LCAyNywgMTEyLCAyMzMsIDk0LCAxMCwgMSwgMTEyLCAKLSAgICAyMTIsIDQ3LCA1MywgMTcsIDEwLCAxLCAxMTIsIDIxMiwgNDcsIDQwLCAxNywgMTAsIDEsIDI1MiwgNjUsIDUzLCAxNywgMTAsIAotICAgIDEsIDI1MiwgNjUsIDQwLCAxNywgMTAsIDEsIDI1MiwgNjUsIDY1LCAxNywgMTAsIDEsIDI1MiwgNjUsIDE0NywgMTcsIDEwLCAKLSAgICAxLCAyMjUsIDIwNiwgNTMsIDE3LCAxMCwgMSwgMjI1LCAyMDYsIDQwLCAxNywgMTAsIDEsIDIyNSwgMjA2LCA2NSwgMTcsIAotICAgIDEwLCAxLCAyMjUsIDIwNiwgMTQ3LCAxNywgMTAsIDEsIDI1MiwgNTMsIDUzLCAxNywgMTAsIDEsIDI1MiwgNTMsIDQwLCAxNywgCi0gICAgMTAsIDEsIDI1MiwgNTMsIDY1LCAxNywgMTAsIDEsIDI1MiwgNTMsIDE0NywgMTcsIDEwLCAxLCAyMTUsIDE0NywgNTMsIDE3LCAKLSAgICAxMCwgMSwgMjE1LCAxNDcsIDQwLCAxNywgMTAsIDEsIDIxNSwgMTQ3LCA2NSwgMTcsIDEwLCAxLCAyMTUsIDE0NywgMTQ3LCAKLSAgICAxNywgMTAsIDEsIDIxNywgNiwgNTMsIDE3LCAxMCwgMSwgMjE3LCA2LCA0MCwgMTcsIDEwLCAxLCAyMTcsIDYsIDY1LCAxNywgCi0gICAgMTAsIDEsIDIxNywgNiwgMTQ3LCAxNywgMTAsIDEsIDIxNSwgMTQ5LCA1MywgMTcsIDEwLCAxLCAyMTUsIDE0OSwgNDAsIDE3LCAKLSAgICAxMCwgMSwgMjE1LCAxNDksIDY1LCAxNywgMTAsIDEsIDIxNSwgMTQ5LCAxNDcsIDE3LCAxMCwgMSwgMjEzLCAyNDksIDUzLCAKKyAgICAxNDMsIDIxMCwgMjA2LCAyNCwgMTQzLCAyNDUsIDU1LCAyNCwgMTQzLCAyNDUsIDUzLCAyNCwgMTQzLCAyNDUsIDU0LCAyNCwgCisgICAgMTQzLCAyNDUsIDUxLCAyNCwgMTQzLCAyNDAsIDE0NSwgMjQsIDE0MywgMjQwLCAxNDQsIDI0LCAxNDMsIDI0MCwgMTQyLCAKKyAgICAyNCwgMTQzLCAyNDAsIDE0MywgMjQsIDE0MywgMjQwLCAxNDgsIDI0LCAxNDMsIDI0MCwgMTQxLCAyNCwgMTQzLCAyNDAsIAorICAgIDE0MCwgMjQsIDE0MywgMjQwLCAxNTAsIDI0LCAxNDMsIDI1NCwgMzQsIDI0LCAxNDMsIDI1NCwgMzMsIDI0LCA5MCwgMjI4LCAKKyAgICAyMjAsIDI0LCA5MCwgMjI4LCAyMjYsIDI0LCA5MCwgMjE4LCAyMDUsIDI0LCA5MCwgMjE4LCAyMDQsIDI0LCA5MCwgMjE2LCAKKyAgICA5NywgMjQsIDkwLCAyMTYsIDk1LCAyNCwgOTAsIDIxNiwgOTQsIDI0LCA5MCwgMjE2LCAxMDAsIDI0LCA5MCwgMjE2LCAxMDEsIAorICAgIDI0LCA5MCwgMjE2LCA5MywgMjQsIDkwLCAyMjMsIDYsIDI0LCA5MCwgMjIzLCAyMSwgMjQsIDkwLCAyMTgsIDIxMSwgMjQsIAorICAgIDkwLCAyMjMsIDE4LCAyNCwgOTAsIDIyMywgOCwgMjQsIDkwLCAyMjMsIDEwLCAyNCwgOTAsIDIyMiwgMjUzLCAyNCwgOTAsIAorICAgIDIyMiwgMjU0LCAyNCwgOTAsIDIzNCwgMjE5LCAyNCwgOTAsIDIzMCwgMjEzLCAyNCwgOTAsIDIzMCwgMjA3LCAyNCwgOTAsIAorICAgIDIxOCwgMjE1LCAyNCwgOTAsIDIzMCwgMjEwLCAyNCwgOTAsIDIzMCwgMjE2LCAyNCwgOTAsIDIyNSwgNzcsIDI0LCA5MCwgCisgICAgMjI1LCA4NiwgMjQsIDkwLCAyMjUsIDkwLCAyNCwgOTAsIDIxOCwgMjEzLCAyNCwgOTAsIDIyNSwgODAsIDI0LCA5MCwgMjI1LCAKKyAgICA5NCwgMjQsIDkwLCAyMjUsIDk1LCAyNCwgOTAsIDIxOSwgMTQxLCAyNCwgOTAsIDIxOSwgMTQ0LCAyNCwgOTAsIDIxOCwgCisgICAgMjA5LCAyNCwgOTAsIDIxOCwgMjA3LCAyNCwgOTAsIDIxOSwgMTM5LCAyNCwgOTAsIDIxOSwgMTQ3LCAyNCwgOTAsIDIxOSwgCisgICAgMTQ4LCAyNCwgOTAsIDIxOSwgMTMzLCAyNCwgOTAsIDIxOSwgMTQ2LCAyNCwgOTAsIDIyNiwgMzEsIDI0LCA5MCwgMjI2LCAKKyAgICAzMiwgMjQsIDkwLCAyMTEsIDI0LCAyNCwgOTAsIDIxMSwgMjUsIDI0LCA5MCwgMjUwLCA0NSwgMjQsIDkwLCAyNTAsIDQ0LCAKKyAgICAyNCwgOTAsIDIxOCwgMjIwLCAyNCwgOTAsIDIyNSwgMTI5LCAyNCwgOTAsIDIyNSwgMTI4LCA5LCAxNCwgMjM4LCAyNSwgOSwgCisgICAgMTQsIDIzOCwgMjQsIDksIDE0LCAyMzgsIDIzLCA5LCAxNCwgMjM4LCAyMiwgOSwgMTQsIDIzOCwgMjEsIDksIDE0LCAyMzgsIAorICAgIDIwLCA5LCAxNCwgMjM4LCAxOSwgOSwgMTQsIDIzOCwgMTgsIDksIDE0LCAyMzgsIDE3LCA5LCAxNCwgMjM4LCAxNiwgOSwgCisgICAgMTQsIDIzOCwgMTUsIDksIDE0LCAyMzgsIDE0LCA5LCAxNCwgMjM4LCAxMywgOSwgMTQsIDIzOCwgMTIsIDksIDE0LCAyMzgsIAorICAgIDExLCA5LCAxNCwgMjM4LCAxMCwgOSwgMTQsIDIzOCwgOSwgOSwgMTQsIDIzOCwgOCwgOSwgMTQsIDIzOCwgNywgOSwgMTQsIAorICAgIDIzOCwgNiwgOSwgMTQsIDIzOCwgNSwgOSwgMTQsIDIzOCwgNCwgOSwgMTQsIDIzOCwgMywgOSwgMTQsIDIzOCwgMiwgOSwgCisgICAgMTQsIDIzOCwgMSwgOSwgMTQsIDIzOCwgMCwgOSwgMTQsIDIzNywgMjU1LCA5LCAxNCwgMjM3LCAyNTQsIDksIDE0LCAyMzcsIAorICAgIDI1MywgOSwgMTQsIDIzNywgMjUyLCA5LCAxNCwgMjM3LCAyNTEsIDksIDE0LCAyMzcsIDI1MCwgOSwgMTQsIDIzNywgMjQ5LCAKKyAgICA5LCAxNCwgMjM3LCAyNDgsIDksIDE0LCAyMzcsIDI0NywgOSwgMTQsIDIzNywgMjQ2LCA5LCAxNCwgMjM3LCAyNDUsIDksIAorICAgIDE0LCAyMzcsIDI0NCwgOSwgMTQsIDIzNywgMjQzLCA5LCAxNCwgMjM3LCAyNDIsIDksIDE0LCAyMzcsIDI0MSwgOSwgMTQsIAorICAgIDIzNywgMjQwLCA5LCAxNCwgMjM3LCAyMzksIDksIDE0LCAyMzcsIDIzOCwgOSwgMTQsIDIzNywgMjM3LCA5LCAxNCwgMjM3LCAKKyAgICAyMzYsIDksIDE0LCAyMzcsIDIzNSwgOSwgMTQsIDIzNywgMjM0LCA5LCAxNCwgMjM3LCAyMzMsIDksIDE0LCAyMzcsIDIzMiwgCisgICAgOSwgMTQsIDIzNywgMjMxLCA5LCAxNCwgMjM3LCAyMzAsIDksIDE0LCAyMzcsIDIyOSwgOSwgMTQsIDIzNywgMjI4LCA5LCAKKyAgICAxNCwgMjM3LCAyMjcsIDksIDE0LCAyMzcsIDIyNiwgOSwgMTQsIDIzNywgMjI1LCA5LCAxNCwgMjM3LCAyMjQsIDksIDE0LCAKKyAgICAyMzcsIDIyMywgOSwgMTQsIDIzNywgMjIyLCA5LCAxNCwgMjM3LCAyMjEsIDksIDE0LCAyMzcsIDIyMCwgOSwgMTQsIDIzNywgCisgICAgMjE5LCA5LCAxNCwgMjM3LCAyMTgsIDksIDE0LCAyMzcsIDIxNywgOSwgMTQsIDIzNywgMjE2LCA5LCAxNCwgMjM3LCAyMTUsIAorICAgIDksIDE0LCAyMzcsIDIxNCwgOSwgMTQsIDIzNywgMjEzLCA5LCAxNCwgMjM3LCAyMTIsIDksIDE0LCAyMzcsIDIxMSwgOSwgCisgICAgMTQsIDIzNywgMjEwLCA5LCAxNCwgMjM3LCAyMDksIDksIDE0LCAyMzcsIDIwOCwgOSwgMTQsIDIzNywgMjA3LCA5LCAxNCwgCisgICAgMjM3LCAyMDYsIDksIDE0LCAyMzcsIDIwNSwgOSwgMTQsIDIzNywgMjA0LCA5LCAxNCwgMjM3LCAyMDMsIDksIDE0LCAyMzcsIAorICAgIDIwMiwgOSwgMTQsIDIzNywgMjAxLCA5LCAxNCwgMjM3LCAyMDAsIDksIDE0LCAyMzcsIDE5OSwgOSwgMTQsIDIzNywgMTk4LCAKKyAgICA5LCAxNCwgMjM3LCAxOTcsIDksIDE0LCAyMzcsIDE5NiwgOSwgMTQsIDIzNywgMTk1LCA5LCAxNCwgMjM3LCAxOTQsIDksIAorICAgIDE0LCAyMzcsIDE5MywgOSwgMTQsIDIzNywgMTkyLCA5LCAxNCwgMjM3LCAxOTEsIDksIDE0LCAyMzcsIDE5MCwgOSwgMTQsIAorICAgIDIzNywgMTg5LCA5LCAxNCwgMjM3LCAxODgsIDksIDE0LCAyMzcsIDE4NywgOSwgMTQsIDIzNywgMTg2LCA5LCAxNCwgMjM3LCAKKyAgICAxODUsIDksIDE0LCAyMzcsIDE4NCwgOSwgMTQsIDIzNywgMTgzLCA5LCAxNCwgMjM3LCAxODIsIDksIDE0LCAyMzcsIDE4MSwgCisgICAgOSwgMTQsIDIzNywgMTgwLCA5LCAxNCwgMjM3LCAxNzksIDksIDE0LCAyMzcsIDE3OCwgOSwgMTQsIDIzNywgMTc3LCA5LCAKKyAgICAxNCwgMjM3LCAxNzYsIDksIDE0LCAyMzcsIDE3NSwgOSwgMTQsIDIzNywgMTc0LCA5LCAxNCwgMjM3LCAxNzMsIDksIDE0LCAKKyAgICAyMzcsIDE3MiwgOSwgMTQsIDIzNywgMTcxLCA5LCAxNCwgMjM3LCAxNzAsIDksIDE0LCAyMzcsIDE2OSwgOSwgMTQsIDIzNywgCisgICAgMTY4LCA5LCAxNCwgMjM3LCAxNjcsIDksIDE0LCAyMzcsIDE2NiwgOSwgMTQsIDIzNywgMTY1LCA5LCAxNCwgMjM3LCAxNjQsIAorICAgIDksIDE0LCAyMzcsIDE2MywgOSwgMTQsIDIzNywgMTYyLCA5LCAxNCwgMjM3LCAxNjEsIDksIDE0LCAyMzcsIDE2MCwgOSwgCisgICAgMTQsIDIzNywgMTU5LCA5LCAxNCwgMjM3LCAxNTgsIDksIDE0LCAyMzcsIDE1NywgOSwgMTQsIDIzNywgMTU2LCA5LCAxNCwgCisgICAgMjM3LCAxNTUsIDksIDE0LCAyMzcsIDE1NCwgOSwgMTQsIDIzNywgMTUzLCA5LCAxNCwgMjM3LCAxNTIsIDksIDE0LCAyMzcsIAorICAgIDE1MSwgOSwgMTQsIDIzNywgMTUwLCA5LCAxNCwgMjM3LCAxNDksIDksIDE0LCAyMzcsIDE0OCwgOSwgMTQsIDIzNywgMTQ3LCAKKyAgICA5LCAxNCwgMjM3LCAxNDYsIDksIDE0LCAyMzcsIDE0NSwgOSwgMTQsIDIzNywgMTQ0LCA5LCAxNCwgMjM3LCAxNDMsIDksIAorICAgIDE0LCAyMzcsIDE0MiwgOSwgMTQsIDIzNywgMTQxLCA5LCAxNCwgMjM3LCAxNDAsIDksIDE0LCAyMzcsIDEzOSwgOSwgMTQsIAorICAgIDIzNywgMTM4LCA5LCAxNCwgMjM3LCAxMzcsIDksIDE0LCAyMzcsIDEzNiwgOSwgMTQsIDIzNywgMTM1LCA5LCAxNCwgMjM3LCAKKyAgICAxMzQsIDksIDE0LCAyMzcsIDEzMywgOSwgMTQsIDIzNywgMTMyLCA5LCAxNCwgMjM3LCAxMzEsIDksIDE0LCAyMzcsIDEzMCwgCisgICAgOSwgMTQsIDIzNywgMTI5LCA5LCAxNCwgMjM3LCAxMjgsIDksIDE0LCAyMzcsIDEyNywgOSwgMTQsIDIzNywgMTI2LCA5LCAKKyAgICAxNCwgMjM3LCAxMjUsIDksIDE0LCAyMzcsIDEyNCwgOSwgMTQsIDIzNywgMTIzLCA5LCAxNCwgMjM3LCAxMjIsIDksIDE0LCAKKyAgICAyMzcsIDEyMSwgOSwgMTQsIDIzNywgMTIwLCA5LCAxNCwgMjM3LCAxMTksIDksIDE0LCAyMzcsIDExOCwgOSwgMTQsIDIzNywgCisgICAgMTE3LCA5LCAxNCwgMjM3LCAxMTYsIDksIDE0LCAyMzcsIDExNSwgOSwgMTQsIDIzNywgMTE0LCA5LCAxNCwgMjM3LCAxMTMsIAorICAgIDksIDE0LCAyMzcsIDExMiwgOSwgMTQsIDIzNywgMTExLCA5LCAxNCwgMjM3LCAxMTAsIDksIDE0LCAyMzcsIDEwOSwgOSwgCisgICAgMTQsIDIzNywgMTA4LCA5LCAxNCwgMjM3LCAxMDcsIDksIDE0LCAyMzcsIDEwNiwgOSwgMTQsIDIzNywgMTA1LCA5LCAxNCwgCisgICAgMjM3LCAxMDQsIDksIDE0LCAyMzcsIDEwMywgOSwgMTQsIDIzNywgMTAyLCA5LCAxNCwgMjM3LCAxMDEsIDksIDE0LCAyMzcsIAorICAgIDEwMCwgOSwgMTQsIDIzNywgOTksIDksIDE0LCAyMzcsIDk4LCA5LCAxNCwgMjM3LCA5NywgOSwgMTQsIDIzNywgOTYsIDksIAorICAgIDE0LCAyMzcsIDk1LCA5LCAxNCwgMjM3LCA5NCwgOSwgMTQsIDIzNywgOTMsIDksIDE0LCAyMzcsIDkyLCA5LCAxNCwgMjM3LCAKKyAgICA5MSwgOSwgMTQsIDIzNywgOTAsIDksIDE0LCAyMzcsIDg5LCA5LCAxNCwgMjM3LCA4OCwgOSwgMTQsIDIzNywgODcsIDksIAorICAgIDE0LCAyMzcsIDg2LCA5LCAxNCwgMjM3LCA4NSwgOSwgMTQsIDIzNywgODQsIDksIDE0LCAyMzcsIDgzLCA5LCAxNCwgMjM3LCAKKyAgICA4MiwgOSwgMTQsIDIzNywgODEsIDksIDE0LCAyMzcsIDgwLCA5LCAxNCwgMjM3LCA3OSwgOSwgMTQsIDIzNywgNzgsIDksIAorICAgIDE0LCAyMzcsIDc3LCA5LCAxNCwgMjM3LCA3NiwgOSwgMTQsIDIzNywgNzUsIDksIDE0LCAyMzcsIDc0LCA5LCAxNCwgMjM3LCAKKyAgICA3MywgOSwgMTQsIDIzNywgNzIsIDksIDE0LCAyMzcsIDcxLCA5LCAxNCwgMjM3LCA3MCwgOSwgMTQsIDIzNywgNjksIDksIAorICAgIDE0LCAyMzcsIDY4LCA5LCAxNCwgMjM3LCA2NywgOSwgMTQsIDIzNywgNjYsIDksIDE0LCAyMzcsIDY1LCA5LCAxNCwgMjM3LCAKKyAgICA2NCwgOSwgMTQsIDIzNywgNjMsIDksIDE0LCAyMzcsIDYyLCA5LCAxNCwgMjM3LCA2MSwgOSwgMTQsIDIzNywgNjAsIDksIAorICAgIDE0LCAyMzcsIDU5LCA5LCAxNCwgMjM3LCA1OCwgOSwgMTQsIDIzNywgNTcsIDksIDE0LCAyMzcsIDU2LCA5LCAxNCwgMjM3LCAKKyAgICA1NSwgOSwgMTQsIDIzNywgNTQsIDksIDE0LCAyMzcsIDUzLCA5LCAxNCwgMjM3LCA1MiwgOSwgMTQsIDIzNywgNTEsIDksIAorICAgIDE0LCAyMzcsIDUwLCA5LCAxNCwgMjM3LCA0OSwgOSwgMTQsIDIzNywgNDgsIDksIDE0LCAyMzcsIDQ3LCA5LCAxNCwgMjM3LCAKKyAgICA0NiwgOSwgMTQsIDIzNywgNDUsIDksIDE0LCAyMzcsIDQ0LCA5LCAxNCwgMjM3LCA0MywgOSwgMTQsIDIzNywgNDIsIDksIAorICAgIDE0LCAyMzcsIDQxLCA5LCAxNCwgMjM3LCA0MCwgOSwgMTQsIDIzNywgMzksIDksIDE0LCAyMzcsIDM4LCA5LCAxNCwgMjM3LCAKKyAgICAzNywgOSwgMTQsIDIzNywgMzYsIDksIDE0LCAyMzcsIDM1LCA5LCAxNCwgMjM3LCAzNCwgOSwgMTQsIDIzNywgMzMsIDksIAorICAgIDE0LCAyMzcsIDMyLCA5LCAxNCwgMjM3LCAzMSwgOSwgMTQsIDIzNywgMzAsIDksIDE0LCAyMzcsIDI5LCA5LCAxNCwgMjM3LCAKKyAgICAyOCwgOSwgMTQsIDIzNywgMjcsIDksIDE0LCAyMzcsIDI2LCA5LCAxNCwgMjM3LCAyNSwgOSwgMTQsIDIzNywgMjQsIDksIAorICAgIDE0LCAyMzcsIDIzLCA5LCAxNCwgMjM3LCAyMiwgOSwgMTQsIDIzNywgMjEsIDksIDE0LCAyMzcsIDIwLCA5LCAxNCwgMjM3LCAKKyAgICAxOSwgOSwgMTQsIDIzNywgMTgsIDksIDE0LCAyMzcsIDE3LCA5LCAxNCwgMjM3LCAxNiwgOSwgMTQsIDIzNywgMTUsIDksIAorICAgIDE0LCAyMzcsIDE0LCA5LCAxNCwgMjM3LCAxMywgOSwgMTQsIDIzNywgMTIsIDksIDE0LCAyMzcsIDExLCA5LCAxNCwgMjM3LCAKKyAgICAxMCwgOSwgMTQsIDIzNywgOSwgOSwgMTQsIDIzNywgOCwgOSwgMTQsIDIzNywgNywgOSwgMTQsIDIzNywgNiwgOSwgMTQsIAorICAgIDIzNywgNSwgOSwgMTQsIDIzNywgNCwgOSwgMTQsIDIzNywgMywgOSwgMTQsIDIzNywgMiwgOSwgMTQsIDIzNywgMSwgOSwgCisgICAgMTQsIDIzNywgMCwgOSwgMTQsIDIzNiwgMjU1LCA5LCAxNCwgMjM2LCAyNTQsIDksIDE0LCAyMzYsIDI1MywgOSwgMTQsIAorICAgIDIzNiwgMjUyLCA5LCAxNCwgMjM2LCAyNTEsIDksIDE0LCAyMzYsIDI1MCwgOSwgMTQsIDIzNiwgMjQ5LCA5LCAxNCwgMjM2LCAKKyAgICAyNDgsIDksIDE0LCAyMzYsIDI0NywgOSwgMTQsIDIzNiwgMjQ2LCA5LCAxNCwgMjM2LCAyNDUsIDksIDE0LCAyMzYsIDI0NCwgCisgICAgOSwgMTQsIDIzNiwgMjQzLCA5LCAxNCwgMjM2LCAyNDIsIDksIDE0LCAyMzYsIDI0MSwgOSwgMTQsIDIzNiwgMjQwLCA5LCAKKyAgICAxNCwgMjM2LCAyMzksIDksIDE0LCAyMzYsIDIzOCwgOSwgMTQsIDIzNiwgMjM3LCA5LCAxNCwgMjM2LCAyMzYsIDksIDE0LCAKKyAgICAyMzYsIDIzNSwgOSwgMTQsIDIzNiwgMjM0LCA5LCAxNCwgMjM2LCAyMzMsIDksIDE0LCAyMzYsIDIzMiwgOSwgMTQsIDIzNiwgCisgICAgMjMxLCA5LCAxNCwgMjM2LCAyMzAsIDksIDE0LCAyMzYsIDIyOSwgOSwgMTQsIDIzNiwgMjI4LCA5LCAxNCwgMjM2LCAyMjcsIAorICAgIDksIDE0LCAyMzYsIDIyNiwgOSwgMTQsIDIzNiwgMjI1LCA5LCAxNCwgMjM2LCAyMjQsIDksIDE0LCAyMzYsIDIyMywgOSwgCisgICAgMTQsIDIzNiwgMjIyLCA5LCAxNCwgMjM2LCAyMjEsIDksIDE0LCAyMzYsIDIyMCwgOSwgMTQsIDIzNiwgMjE5LCA5LCAxNCwgCisgICAgMjM2LCAyMTgsIDksIDE0LCAyMzYsIDIxNywgOSwgMTQsIDIzNiwgMjE2LCA5LCAxNCwgMjM2LCAyMTUsIDksIDE0LCAyMzYsIAorICAgIDIxNCwgOSwgMTQsIDIzNiwgMjEzLCA5LCAxNCwgMjM2LCAyMTIsIDksIDE0LCAyMzYsIDIxMSwgOSwgMTQsIDIzNiwgMjEwLCAKKyAgICA5LCAxNCwgMjM2LCAyMDksIDksIDE0LCAyMzYsIDIwOCwgOSwgMTQsIDIzNiwgMjA3LCA5LCAxNCwgMjM2LCAyMDYsIDksIAorICAgIDE0LCAyMzYsIDIwNSwgOSwgMTQsIDIzNiwgMjA0LCA5LCAxNCwgMjM2LCAyMDMsIDksIDE0LCAyMzYsIDIwMiwgOSwgMTQsIAorICAgIDIzNiwgMjAxLCA5LCAxNCwgMjM2LCAyMDAsIDksIDE0LCAyMzYsIDE5OSwgOSwgMTQsIDIzNiwgMTk4LCA5LCAxNCwgMjM2LCAKKyAgICAxOTcsIDksIDE0LCAyMzYsIDE5NiwgOSwgMTQsIDIzNiwgMTk1LCA5LCAxNCwgMjM2LCAxOTQsIDksIDE0LCAyMzYsIDE5MywgCisgICAgOSwgMTQsIDIzNiwgMTkyLCA5LCAxNCwgMjM2LCAxOTEsIDksIDE0LCAyMzYsIDE5MCwgOSwgMTQsIDIzNiwgMTg5LCA5LCAKKyAgICAxNCwgMjM2LCAxODgsIDksIDE0LCAyMzYsIDE4NywgOSwgMTQsIDIzNiwgMTg2LCA5LCAxNCwgMjM2LCAxODUsIDksIDE0LCAKKyAgICAyMzYsIDE4NCwgOSwgMTQsIDIzNiwgMTgzLCA5LCAxNCwgMjM2LCAxODIsIDksIDE0LCAyMzYsIDE4MSwgOSwgMTQsIDIzNiwgCisgICAgMTgwLCA5LCAxNCwgMjM2LCAxNzksIDksIDE0LCAyMzYsIDE3OCwgOSwgMTQsIDIzNiwgMTc3LCA5LCAxNCwgMjM2LCAxNzYsIAorICAgIDksIDE0LCAyMzYsIDE3NSwgOSwgMTQsIDIzNiwgMTc0LCA5LCAxNCwgMjM2LCAxNzMsIDksIDE0LCAyMzYsIDE3MiwgOSwgCisgICAgMTQsIDIzNiwgMTcxLCA5LCAxNCwgMjM2LCAxNzAsIDksIDE0LCAyMzYsIDE2OSwgOSwgMTQsIDIzNiwgMTY4LCA5LCAxNCwgCisgICAgMjM2LCAxNjcsIDksIDE0LCAyMzYsIDE2NiwgOSwgMTQsIDIzNiwgMTY1LCA5LCAxNCwgMjM2LCAxNjQsIDksIDE0LCAyMzYsIAorICAgIDE2MywgOSwgMTQsIDIzNiwgMTYyLCA5LCAxNCwgMjM2LCAxNjEsIDksIDE0LCAyMzYsIDE2MCwgOSwgMTQsIDIzNiwgMTU5LCAKKyAgICA5LCAxNCwgMjM2LCAxNTgsIDksIDE0LCAyMzYsIDE1NywgOSwgMTQsIDIzNiwgMTU2LCA5LCAxNCwgMjM2LCAxNTUsIDksIAorICAgIDE0LCAyMzYsIDE1NCwgOSwgMTQsIDIzNiwgMTUzLCA5LCAxNCwgMjM2LCAxNTIsIDksIDE0LCAyMzYsIDE1MSwgOSwgMTQsIAorICAgIDIzNiwgMTUwLCA5LCAxNCwgMjM2LCAxNDksIDksIDE0LCAyMzYsIDE0OCwgOSwgMTQsIDIzNiwgMTQ3LCA5LCAxNCwgMjM2LCAKKyAgICAxNDYsIDksIDE0LCAyMzYsIDE0NSwgOSwgMTQsIDIzNiwgMTQ0LCA5LCAxNCwgMjM2LCAxNDMsIDksIDE0LCAyMzYsIDE0MiwgCisgICAgOSwgMTQsIDIzNiwgMTQxLCA5LCAxNCwgMjM2LCAxNDAsIDksIDE0LCAyMzYsIDEzOSwgOSwgMTQsIDIzNiwgMTM4LCA5LCAKKyAgICAxNCwgMjM2LCAxMzcsIDksIDE0LCAyMzYsIDEzNiwgOSwgMTQsIDIzNiwgMTM1LCA5LCAxNCwgMjM2LCAxMzQsIDksIDE0LCAKKyAgICAyMzYsIDEzMywgOSwgMTQsIDIzNiwgMTMyLCA5LCAxNCwgMjM2LCAxMzEsIDksIDE0LCAyMzYsIDEzMCwgOSwgMTQsIDIzNiwgCisgICAgMTI5LCA5LCAxNCwgMjM2LCAxMjgsIDksIDE0LCAyMzYsIDEyNywgOSwgMTQsIDIzNiwgMTI2LCA5LCAxNCwgMjM2LCAxMjUsIAorICAgIDksIDE0LCAyMzYsIDEyNCwgOSwgMTQsIDIzNiwgMTIzLCA5LCAxNCwgMjM2LCAxMjIsIDksIDE0LCAyMzYsIDEyMSwgOSwgCisgICAgMTQsIDIzNiwgMTIwLCA5LCAxNCwgMjM2LCAxMTksIDksIDE0LCAyMzYsIDExOCwgOSwgMTQsIDIzNiwgMTE3LCA5LCAxNCwgCisgICAgMjM2LCAxMTYsIDksIDE0LCAyMzYsIDExNSwgOSwgMTQsIDIzNiwgMTE0LCA5LCAxNCwgMjM2LCAxMTMsIDksIDE0LCAyMzYsIAorICAgIDExMiwgOSwgMTQsIDIzNiwgMTExLCA5LCAxNCwgMjM2LCAxMTAsIDksIDE0LCAyMzYsIDEwOSwgOSwgMTQsIDIzNiwgMTA4LCAKKyAgICA5LCAxNCwgMjM2LCAxMDcsIDksIDE0LCAyMzYsIDEwNiwgOSwgMTQsIDIzNiwgMTA1LCA5LCAxNCwgMjM2LCAxMDQsIDksIAorICAgIDE0LCAyMzYsIDEwMywgOSwgMTQsIDIzNiwgMTAyLCA5LCAxNCwgMjM2LCAxMDEsIDksIDE0LCAyMzYsIDEwMCwgOSwgMTQsIAorICAgIDIzNiwgOTksIDksIDE0LCAyMzYsIDk4LCA5LCAxNCwgMjM2LCA5NywgOSwgMTQsIDIzNiwgOTYsIDksIDE0LCAyMzYsIDk1LCAKKyAgICA5LCAxNCwgMjM2LCA5NCwgOSwgMTQsIDIzNiwgOTMsIDksIDE0LCAyMzYsIDkyLCA5LCAxNCwgMjM2LCA5MSwgOSwgMTQsIAorICAgIDIzNiwgOTAsIDksIDE0LCAyMzYsIDg5LCA5LCAxNCwgMjM2LCA4OCwgOSwgMTQsIDIzNiwgODcsIDksIDE0LCAyMzYsIDg2LCAKKyAgICA5LCAxNCwgMjM2LCA4NSwgOSwgMTQsIDIzNiwgODQsIDksIDE0LCAyMzYsIDgzLCA5LCAxNCwgMjM2LCA4MiwgOSwgMTQsIAorICAgIDIzNiwgODEsIDksIDE0LCAyMzYsIDgwLCA5LCAxNCwgMjM2LCA3OSwgOSwgMTQsIDIzNiwgNzgsIDksIDE0LCAyMzYsIDc3LCAKKyAgICA5LCAxNCwgMjM2LCA3NiwgOSwgMTQsIDIzNiwgNzUsIDksIDE0LCAyMzYsIDc0LCA5LCAxNCwgMjM2LCA3MywgOSwgMTQsIAorICAgIDIzNiwgNzIsIDksIDE0LCAyMzYsIDcxLCA5LCAxNCwgMjM2LCA3MCwgOSwgMTQsIDIzNiwgNjksIDksIDE0LCAyMzYsIDY4LCAKKyAgICA5LCAxNCwgMjM2LCA2NywgOSwgMTQsIDIzNiwgNjYsIDcsIDQsIDI3LCAyNDQsIDEyNiwgNywgNCwgMjcsIDI0NCwgMTIyLCAKKyAgICA3LCA0LCAyNywgMjQ0LCA3NywgNywgNCwgMjcsIDI0NCwgMTI1LCA3LCA0LCAyNywgMjQ0LCAxMjQsIDcsIDQsIDI3LCAxOTksIAorICAgIDIyMiwgOTMsIDIxNywgMTUzLCA3LCA0LCAyNywgMjE4LCAxNjksIDE1MCwgNCwgMjcsIDIzMSwgNjAsIDIyOCwgNDAsIDE1MCwgCisgICAgNCwgMjcsIDIzMSwgNjAsIDI0NSwgMjE0LCAxNTAsIDQsIDI3LCAyMzEsIDYwLCAyMzUsIDIyOCwgMTUwLCA0LCAyNywgMjEzLCAKKyAgICAxODAsIDIyOCwgNDAsIDE1MCwgNCwgMjcsIDIzMSwgNjAsIDIxMSwgMTYwLCA5NCwgMSwgMjEwLCAyMzQsIDIsIDI0MSwgCisgICAgMTU5LCA5NCwgMjI1LCAxMiwgMjM1LCA1MSwgMjE0LCAxMSwgOTQsIDI3LCAyMTEsIDYsIDIxMCwgMjM0LCAyMTAsIDIzNCwgCisgICAgMjI1LCAyNDAsIDk0LCAxLCAyNTQsIDE0MCwgMjUzLCAxNjMsIDk0LCAxLCAyMTEsIDI0NywgMjU0LCAxNzEsIDk0LCAxLCAKKyAgICAyMTEsIDI0NywgMjQ4LCAxOTAsIDk0LCAxLCAyMTEsIDI0NywgMjQxLCAyMzksIDk0LCAxLCAyMTEsIDI0NywgMjM0LCAyNTEsIAorICAgIDk0LCAxLCAyMTEsIDI0NywgMjMzLCA5NSwgOTQsIDEsIDIxMSwgMjQ3LCA0MCwgMjMxLCA2NiwgOTQsIDEsIDIxMSwgMjQ3LCAKKyAgICAyMjMsIDY4LCA5NCwgMSwgMjExLCAyNDcsIDIxNywgMzksIDk0LCAxLCAyNTQsIDE0MCwgOTYsIDUwLCA5NCwgMSwgMjIwLCAKKyAgICAyMiwgMiwgMjIwLCAyMiwgMjQ3LCAxMjEsIDk0LCAxLCAyMjAsIDIyLCAyLCAyMTksIDE2MCwgMjQ3LCAxMjEsIDk0LCAxLCAKKyAgICAyMjAsIDIyLCAyLCAyNDgsIDIwOSwgMjIsIDIyMCwgMjIsIDI0NywgMTIxLCA5NCwgMSwgMjIwLCAyMiwgMiwgMjQ4LCAyMDksIAorICAgIDIyLCAyMTksIDE2MCwgMjQ3LCAxMjEsIDk0LCAxLCAxMTIsIDIsIDIyNSwgMjQwLCA5NCwgMSwgMTEyLCAyLCAyMjQsIDc3LCAKKyAgICA5NCwgMSwgMTEyLCAyLCAyMzEsIDE3MiwgOTQsIDEsIDI1MiwgMzAsIDIsIDI0OCwgMjA4LCA5NCwgMSwgMjQyLCAyMDMsIDIsIAorICAgIDI0OCwgMjA4LCA5NCwgMSwgMjQ4LCAxOTEsIDIsIDI0OCwgMjA4LCA5NCwgMSwgMjQxLCAyNDAsIDIsIDIzMSwgMTcyLCA5NCwgCisgICAgMSwgMjE0LCA0LCAyLCAyNDgsIDIwOCwgOTQsIDEsIDIxMCwgOTgsIDIsIDI0OCwgMjA4LCA5NCwgMSwgMjE2LCAyMzIsIDIsIAorICAgIDI0OCwgMjA4LCA5NCwgMSwgMjEwLCAyMzQsIDIsIDI0OCwgMjA4LCA5NCwgMSwgNDAsIDIzNCwgMjUyLCAyLCAyNDgsIDIwOCwgCisgICAgOTQsIDEsIDIzNCwgMjUyLCAyLCAyNDgsIDIwOCwgOTQsIDEsIDIzMywgOTYsIDIsIDI0OCwgMjA4LCA5NCwgMSwgMjMxLCAKKyAgICA2NywgMiwgMjQ4LCAyMDgsIDk0LCAxLCAyMjcsIDE5NiwgMiwgMjQ4LCAyMDgsIDk0LCAxLCAyMjEsIDI1MSwgMiwgMjQ4LCAKKyAgICAyMDgsIDk0LCAxLCA0MCwgMjI1LCAyMjMsIDIsIDI0OCwgMjA4LCA5NCwgMSwgMjI1LCAyMjMsIDIsIDI0OCwgMjA4LCA5NCwgCisgICAgMSwgMjE1LCAxODEsIDIsIDI0OCwgMjA4LCA5NCwgMSwgMjI0LCA0MSwgMiwgMjQ4LCAyMDgsIDk0LCAxLCAyMjMsIDY5LCAyLCAKKyAgICAyNDgsIDIwOCwgOTQsIDEsIDIyMCwgMjIsIDIsIDI0OCwgMjA4LCA5NCwgMSwgMjE3LCA0MCwgMiwgMjQ4LCAyMDgsIDk0LCAKKyAgICAxLCAyMTQsIDQsIDIsIDI0MSwgNjIsIDk0LCAxLCAyNTIsIDMwLCAyLCAyMjMsIDE3MCwgOTQsIDEsIDIzNCwgMjUyLCAyLCAKKyAgICAyMjMsIDE3MCwgOTQsIDEsIDIyNSwgMjIzLCAyLCAyMjMsIDE3MCwgOTQsIDI3LCAxMTIsIDIzMywgOTUsIDEwLCAxLCAxMTIsIAorICAgIDIxMiwgNDcsIDUzLCAxNywgMTAsIDEsIDExMiwgMjEyLCA0NywgNDAsIDE3LCAxMCwgMSwgMjUyLCA2NiwgNTMsIDE3LCAxMCwgCisgICAgMSwgMjUyLCA2NiwgNDAsIDE3LCAxMCwgMSwgMjUyLCA2NiwgNjUsIDE3LCAxMCwgMSwgMjUyLCA2NiwgMTQ3LCAxNywgMTAsIAorICAgIDEsIDIyNSwgMjA3LCA1MywgMTcsIDEwLCAxLCAyMjUsIDIwNywgNDAsIDE3LCAxMCwgMSwgMjI1LCAyMDcsIDY1LCAxNywgCisgICAgMTAsIDEsIDIyNSwgMjA3LCAxNDcsIDE3LCAxMCwgMSwgMjUyLCA1NCwgNTMsIDE3LCAxMCwgMSwgMjUyLCA1NCwgNDAsIDE3LCAKKyAgICAxMCwgMSwgMjUyLCA1NCwgNjUsIDE3LCAxMCwgMSwgMjUyLCA1NCwgMTQ3LCAxNywgMTAsIDEsIDIxNSwgMTQ4LCA1MywgMTcsIAorICAgIDEwLCAxLCAyMTUsIDE0OCwgNDAsIDE3LCAxMCwgMSwgMjE1LCAxNDgsIDY1LCAxNywgMTAsIDEsIDIxNSwgMTQ4LCAxNDcsIAorICAgIDE3LCAxMCwgMSwgMjE3LCA3LCA1MywgMTcsIDEwLCAxLCAyMTcsIDcsIDQwLCAxNywgMTAsIDEsIDIxNywgNywgNjUsIDE3LCAKKyAgICAxMCwgMSwgMjE3LCA3LCAxNDcsIDE3LCAxMCwgMSwgMjE1LCAxNTAsIDUzLCAxNywgMTAsIDEsIDIxNSwgMTUwLCA0MCwgMTcsIAorICAgIDEwLCAxLCAyMTUsIDE1MCwgNjUsIDE3LCAxMCwgMSwgMjE1LCAxNTAsIDE0NywgMTcsIDEwLCAxLCAyMTMsIDI0OSwgNTMsIAogICAgIDE3LCAxMCwgMSwgMjEzLCAyNDksIDQwLCAxNywgMTAsIDEsIDIxMywgMjQ5LCA2NSwgMTcsIDEwLCAxLCAyMTMsIDI0OSwgCi0gICAgMTQ3LCAxNywgMTAsIDEsIDIyNSwgMjA0LCA1MywgMTcsIDEwLCAxLCAyMjUsIDIwNCwgNDAsIDE3LCAxMCwgMSwgMjI1LCAKLSAgICAyMDQsIDY1LCAxNywgMTAsIDEsIDIyNSwgMjA0LCAxNDcsIDE3LCAxMCwgMSwgMjQ2LCA0NCwgNTMsIDE3LCAxMCwgMSwgCi0gICAgMjQ2LCA0NCwgNDAsIDE3LCAxMCwgMSwgMjQ2LCA0NCwgNjUsIDE3LCAxMCwgMSwgMjQ2LCA0NCwgMTQ3LCAxNywgMTAsIDEsIAotICAgIDIyNywgMTU0LCA1MywgMTcsIDEwLCAxLCAyMjcsIDE1NCwgNDAsIDE3LCAxMCwgMSwgMjI3LCAxNTQsIDY1LCAxNywgMTAsIAotICAgIDEsIDIyNywgMTU0LCAxNDcsIDE3LCAxMCwgMSwgMjE3LCAyNywgNTMsIDE3LCAxMCwgMSwgMjE3LCAyNywgNDAsIDE3LCAxMCwgCi0gICAgMSwgMjE3LCAyNywgNjUsIDE3LCAxMCwgMSwgMjE3LCAyNywgMTQ3LCAxNywgMTAsIDEsIDIxNywgMjUsIDUzLCAxNywgMTAsIAotICAgIDEsIDIxNywgMjUsIDQwLCAxNywgMTAsIDEsIDIxNywgMjUsIDY1LCAxNywgMTAsIDEsIDIxNywgMjUsIDE0NywgMTcsIDEwLCAKLSAgICAxLCAyNDgsIDEzMywgNTMsIDE3LCAxMCwgMSwgMjQ4LCAxMzMsIDQwLCAxNywgMTAsIDEsIDI0OCwgMjAyLCA1MywgMTcsIAotICAgIDEwLCAxLCAyNDgsIDIwMiwgNDAsIDE3LCAxMCwgMSwgMjQ2LCA3MSwgNTMsIDE3LCAxMCwgMSwgMjQ2LCA3MSwgNDAsIDE3LCAKLSAgICAxMCwgMSwgMjQ4LCAxMzEsIDUzLCAxNywgMTAsIDEsIDI0OCwgMTMxLCA0MCwgMTcsIDEwLCAxLCAyMzUsIDEyMSwgNTMsIAotICAgIDE3LCAxMCwgMSwgMjM1LCAxMjEsIDQwLCAxNywgMTAsIDEsIDIyMiwgMTcyLCA1MywgMTcsIDEwLCAxLCAyMjIsIDE3MiwgCi0gICAgNDAsIDE3LCAxMCwgMSwgMjM0LCAxNzUsIDUzLCAxNywgMTAsIDEsIDIzNCwgMTc1LCA0MCwgMTcsIDEwLCAxLCAyMzQsIAotICAgIDE3NSwgNjUsIDE3LCAxMCwgMSwgMjM0LCAxNzUsIDE0NywgMTcsIDEwLCAxLCAyNDMsIDEyMywgNTMsIDE3LCAxMCwgMSwgCi0gICAgMjQzLCAxMjMsIDQwLCAxNywgMTAsIDEsIDI0MywgMTIzLCA2NSwgMTcsIDEwLCAxLCAyNDMsIDEyMywgMTQ3LCAxNywgMTAsIAotICAgIDEsIDI0MiwgMTAyLCA1MywgMTcsIDEwLCAxLCAyNDIsIDEwMiwgNDAsIDE3LCAxMCwgMSwgMjQyLCAxMDIsIDY1LCAxNywgCi0gICAgMTAsIDEsIDI0MiwgMTAyLCAxNDcsIDE3LCAxMCwgMSwgMjI5LCAzLCA1MywgMTcsIDEwLCAxLCAyMjksIDMsIDQwLCAxNywgCi0gICAgMTAsIDEsIDIyOSwgMywgNjUsIDE3LCAxMCwgMSwgMjI5LCAzLCAxNDcsIDE3LCAxMCwgMSwgMjI4LCA2MywgMjQyLCAyMTksIAotICAgIDUzLCAxNywgMTAsIDEsIDIyOCwgNjMsIDI0MiwgMjE5LCA0MCwgMTcsIDEwLCAxLCAyMjIsIDIxNSwgNTMsIDE3LCAxMCwgMSwgCi0gICAgMjIyLCAyMTUsIDQwLCAxNywgMTAsIDEsIDIyMiwgMjE1LCA2NSwgMTcsIDEwLCAxLCAyMjIsIDIxNSwgMTQ3LCAxNywgMTAsIAotICAgIDEsIDI0MSwgMjE5LCAyLCA3OSwgNzcsIDUzLCAxNywgMTAsIDEsIDI0MSwgMjE5LCAyLCA3OSwgNzcsIDQwLCAxNywgMTAsIAotICAgIDEsIDI0MSwgMjE5LCAyNDIsIDE3MiwgNTMsIDE3LCAxMCwgMSwgMjQxLCAyMTksIDI0MiwgMTcyLCA0MCwgMTcsIDEwLCAxLCAKLSAgICAyNDEsIDIxOSwgMjQyLCAxNzIsIDY1LCAxNywgMTAsIDEsIDI0MSwgMjE5LCAyNDIsIDE3MiwgMTQ3LCAxNywgMTAsIDEsIAotICAgIDI0MSwgMjE5LCAyNDcsIDE0MiwgNTMsIDE3LCAxMCwgMSwgMjQxLCAyMTksIDI0NywgMTQyLCA0MCwgMTcsIDEwLCAxLCAKLSAgICAyNDEsIDIxOSwgMjQ3LCAxNDIsIDY1LCAxNywgMTAsIDEsIDI0MSwgMjE5LCAyNDcsIDE0MiwgMTQ3LCAxNywgMTAsIDEsIAotICAgIDc5LCAyNTIsIDEzMywgNTMsIDE3LCAxMCwgMSwgNzksIDI1MiwgMTMzLCA0MCwgMTcsIDEwLCAxLCA3OSwgMjUyLCAxMzMsIAotICAgIDIsIDIwMiwgNzcsIDUzLCAxNywgMTAsIDEsIDc5LCAyNTIsIDEzMywgMiwgMjAyLCA3NywgNDAsIDE3LCAxMCwgMTYsIDU5LCAKKyAgICAxNDcsIDE3LCAxMCwgMSwgMjI1LCAyMDUsIDUzLCAxNywgMTAsIDEsIDIyNSwgMjA1LCA0MCwgMTcsIDEwLCAxLCAyMjUsIAorICAgIDIwNSwgNjUsIDE3LCAxMCwgMSwgMjI1LCAyMDUsIDE0NywgMTcsIDEwLCAxLCAyNDYsIDQ1LCA1MywgMTcsIDEwLCAxLCAKKyAgICAyNDYsIDQ1LCA0MCwgMTcsIDEwLCAxLCAyNDYsIDQ1LCA2NSwgMTcsIDEwLCAxLCAyNDYsIDQ1LCAxNDcsIDE3LCAxMCwgMSwgCisgICAgMjI3LCAxNTUsIDUzLCAxNywgMTAsIDEsIDIyNywgMTU1LCA0MCwgMTcsIDEwLCAxLCAyMjcsIDE1NSwgNjUsIDE3LCAxMCwgCisgICAgMSwgMjI3LCAxNTUsIDE0NywgMTcsIDEwLCAxLCAyMTcsIDI4LCA1MywgMTcsIDEwLCAxLCAyMTcsIDI4LCA0MCwgMTcsIDEwLCAKKyAgICAxLCAyMTcsIDI4LCA2NSwgMTcsIDEwLCAxLCAyMTcsIDI4LCAxNDcsIDE3LCAxMCwgMSwgMjE3LCAyNiwgNTMsIDE3LCAxMCwgCisgICAgMSwgMjE3LCAyNiwgNDAsIDE3LCAxMCwgMSwgMjE3LCAyNiwgNjUsIDE3LCAxMCwgMSwgMjE3LCAyNiwgMTQ3LCAxNywgMTAsIAorICAgIDEsIDI0OCwgMTM0LCA1MywgMTcsIDEwLCAxLCAyNDgsIDEzNCwgNDAsIDE3LCAxMCwgMSwgMjQ4LCAyMDMsIDUzLCAxNywgCisgICAgMTAsIDEsIDI0OCwgMjAzLCA0MCwgMTcsIDEwLCAxLCAyNDYsIDcyLCA1MywgMTcsIDEwLCAxLCAyNDYsIDcyLCA0MCwgMTcsIAorICAgIDEwLCAxLCAyNDgsIDEzMiwgNTMsIDE3LCAxMCwgMSwgMjQ4LCAxMzIsIDQwLCAxNywgMTAsIDEsIDIzNSwgMTIyLCA1MywgCisgICAgMTcsIDEwLCAxLCAyMzUsIDEyMiwgNDAsIDE3LCAxMCwgMSwgMjIyLCAxNzMsIDUzLCAxNywgMTAsIDEsIDIyMiwgMTczLCAKKyAgICA0MCwgMTcsIDEwLCAxLCAyMzQsIDE3NiwgNTMsIDE3LCAxMCwgMSwgMjM0LCAxNzYsIDQwLCAxNywgMTAsIDEsIDIzNCwgCisgICAgMTc2LCA2NSwgMTcsIDEwLCAxLCAyMzQsIDE3NiwgMTQ3LCAxNywgMTAsIDEsIDI0MywgMTI0LCA1MywgMTcsIDEwLCAxLCAKKyAgICAyNDMsIDEyNCwgNDAsIDE3LCAxMCwgMSwgMjQzLCAxMjQsIDY1LCAxNywgMTAsIDEsIDI0MywgMTI0LCAxNDcsIDE3LCAxMCwgCisgICAgMSwgMjQyLCAxMDMsIDUzLCAxNywgMTAsIDEsIDI0MiwgMTAzLCA0MCwgMTcsIDEwLCAxLCAyNDIsIDEwMywgNjUsIDE3LCAKKyAgICAxMCwgMSwgMjQyLCAxMDMsIDE0NywgMTcsIDEwLCAxLCAyMjksIDQsIDUzLCAxNywgMTAsIDEsIDIyOSwgNCwgNDAsIDE3LCAKKyAgICAxMCwgMSwgMjI5LCA0LCA2NSwgMTcsIDEwLCAxLCAyMjksIDQsIDE0NywgMTcsIDEwLCAxLCAyMjgsIDY0LCAyNDIsIDIyMCwgCisgICAgNTMsIDE3LCAxMCwgMSwgMjI4LCA2NCwgMjQyLCAyMjAsIDQwLCAxNywgMTAsIDEsIDIyMiwgMjE2LCA1MywgMTcsIDEwLCAxLCAKKyAgICAyMjIsIDIxNiwgNDAsIDE3LCAxMCwgMSwgMjIyLCAyMTYsIDY1LCAxNywgMTAsIDEsIDIyMiwgMjE2LCAxNDcsIDE3LCAxMCwgCisgICAgMSwgMjQxLCAyMjAsIDIsIDc5LCA3NywgNTMsIDE3LCAxMCwgMSwgMjQxLCAyMjAsIDIsIDc5LCA3NywgNDAsIDE3LCAxMCwgCisgICAgMSwgMjQxLCAyMjAsIDI0MiwgMTczLCA1MywgMTcsIDEwLCAxLCAyNDEsIDIyMCwgMjQyLCAxNzMsIDQwLCAxNywgMTAsIDEsIAorICAgIDI0MSwgMjIwLCAyNDIsIDE3MywgNjUsIDE3LCAxMCwgMSwgMjQxLCAyMjAsIDI0MiwgMTczLCAxNDcsIDE3LCAxMCwgMSwgCisgICAgMjQxLCAyMjAsIDI0NywgMTQzLCA1MywgMTcsIDEwLCAxLCAyNDEsIDIyMCwgMjQ3LCAxNDMsIDQwLCAxNywgMTAsIDEsIAorICAgIDI0MSwgMjIwLCAyNDcsIDE0MywgNjUsIDE3LCAxMCwgMSwgMjQxLCAyMjAsIDI0NywgMTQzLCAxNDcsIDE3LCAxMCwgMSwgCisgICAgNzksIDI1MiwgMTM0LCA1MywgMTcsIDEwLCAxLCA3OSwgMjUyLCAxMzQsIDQwLCAxNywgMTAsIDEsIDc5LCAyNTIsIDEzNCwgCisgICAgMiwgMjAyLCA3NywgNTMsIDE3LCAxMCwgMSwgNzksIDI1MiwgMTM0LCAyLCAyMDIsIDc3LCA0MCwgMTcsIDEwLCAxNiwgNTksIAogICAgIDQ4LCAxMCwgMTYsIDU5LCA1MSwgMTAsIDE2LCAxMTMsIDE3MCwgNDgsIDEwLCAxNiwgMTEzLCAxNzAsIDUxLCAxMCwgMTYsIAotICAgIDEzNCwgMTcwLCA0OCwgMTAsIDE2LCAxMzQsIDE3MCwgNTEsIDEwLCAxNiwgMTM0LCAxNzAsIDIyNSwgNywgMjQ2LCAxMDQsIAotICAgIDQ4LCAxMCwgMTYsIDEzNCwgMTcwLCAyMjUsIDcsIDI0NiwgMTA0LCA1MSwgMTAsIDE2LCAyNDQsIDExLCAxNzAsIDQ4LCAxMCwgCi0gICAgMTYsIDI0NCwgMTEsIDE3MCwgNTEsIDEwLCAxNiwgNTIsIDY3LCAyNTIsIDE0MSwgNTEsIDEwLCAxNiwgMTEzLCAxNzAsIAotICAgIDIxMywgMTg5LCA0OCwgMTAsIDE2LCAxMTMsIDE3MCwgMjEzLCAxODksIDUxLCAxMCwgMTYsIDIyMiwgMjMzLCAxMCwgMTYsIAotICAgIDQsIDIxNywgODEsIDQ4LCAxMCwgMTYsIDQsIDIxNywgODEsIDUxLCAxMCwgMSwgMjI5LCA4MCwgNTMsIDE3LCAxMCwgMSwgCi0gICAgMjI5LCA4MCwgNDAsIDE3LCAxMCwgMSwgMjI5LCA4MCwgNjUsIDE3LCAxMCwgMSwgMjI5LCA4MCwgMTQ3LCAxNywgMTAsIDEsIAotICAgIDEwNCwgNTMsIDE3LCAxMCwgMSwgMTA0LCA0MCwgMTcsIDEwLCAxLCAyMjYsIDIzNSwgNTMsIDE3LCAxMCwgMSwgMjI2LCAKLSAgICAyMzUsIDQwLCAxNywgMTAsIDEsIDIxMCwgMjEzLCA1MywgMTcsIDEwLCAxLCAyMTAsIDIxMywgNDAsIDE3LCAxMCwgMSwgCisgICAgMTM0LCAxNzAsIDQ4LCAxMCwgMTYsIDEzNCwgMTcwLCA1MSwgMTAsIDE2LCAxMzQsIDE3MCwgMjI1LCA4LCAyNDYsIDEwNSwgCisgICAgNDgsIDEwLCAxNiwgMTM0LCAxNzAsIDIyNSwgOCwgMjQ2LCAxMDUsIDUxLCAxMCwgMTYsIDI0NCwgMTIsIDE3MCwgNDgsIDEwLCAKKyAgICAxNiwgMjQ0LCAxMiwgMTcwLCA1MSwgMTAsIDE2LCA1MiwgNjcsIDI1MiwgMTQyLCA1MSwgMTAsIDE2LCAxMTMsIDE3MCwgCisgICAgMjEzLCAxODksIDQ4LCAxMCwgMTYsIDExMywgMTcwLCAyMTMsIDE4OSwgNTEsIDEwLCAxNiwgMjIyLCAyMzQsIDEwLCAxNiwgCisgICAgNCwgMjE3LCA4MiwgNDgsIDEwLCAxNiwgNCwgMjE3LCA4MiwgNTEsIDEwLCAxLCAyMjksIDgxLCA1MywgMTcsIDEwLCAxLCAKKyAgICAyMjksIDgxLCA0MCwgMTcsIDEwLCAxLCAyMjksIDgxLCA2NSwgMTcsIDEwLCAxLCAyMjksIDgxLCAxNDcsIDE3LCAxMCwgMSwgCisgICAgMTA0LCA1MywgMTcsIDEwLCAxLCAxMDQsIDQwLCAxNywgMTAsIDEsIDIyNiwgMjM2LCA1MywgMTcsIDEwLCAxLCAyMjYsIAorICAgIDIzNiwgNDAsIDE3LCAxMCwgMSwgMjEwLCAyMTMsIDUzLCAxNywgMTAsIDEsIDIxMCwgMjEzLCA0MCwgMTcsIDEwLCAxLCAKICAgICAxMDQsIDIsIDIwMiwgNzcsIDUzLCAxNywgMTAsIDEsIDIxNCwgMCwgNTMsIDE3LCAxMCwgMSwgMjE0LCAwLCA0MCwgMTcsIAotICAgIDEwLCAxLCAyMzQsIDczLCAyMjYsIDIzNSwgNTMsIDE3LCAxMCwgMSwgMjM0LCA3MywgMjI2LCAyMzUsIDQwLCAxNywgMTAsIAotICAgIDEsIDIzNCwgNzMsIDIxMCwgMjEzLCA1MywgMTcsIDEwLCAxLCAyMzQsIDczLCAyMTAsIDIxMywgNDAsIDE3LCAxMCwgMSwgCisgICAgMTAsIDEsIDIzNCwgNzQsIDIyNiwgMjM2LCA1MywgMTcsIDEwLCAxLCAyMzQsIDc0LCAyMjYsIDIzNiwgNDAsIDE3LCAxMCwgCisgICAgMSwgMjM0LCA3NCwgMjEwLCAyMTMsIDUzLCAxNywgMTAsIDEsIDIzNCwgNzQsIDIxMCwgMjEzLCA0MCwgMTcsIDEwLCAxLCAKICAgICAxNjAsIDUzLCAxNywgMTAsIDEsIDE2MCwgNDAsIDE3LCAxMCwgMSwgMTYwLCA2NSwgMTcsIDEwLCAxLCAxNjAsIDE0NywgMTcsIAotICAgIDEwLCAxLCAyMTQsIDIwNywgMjM0LCAxODYsIDIzNCwgNzMsIDExMiwgMjMxLCAxOTMsIDY1LCAxNywgMTAsIDEsIDIxNCwgCi0gICAgMjA3LCAyMzQsIDE4NiwgMjM0LCA3MywgMTEyLCAyMzEsIDE5MywgMTQ3LCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgCisgICAgMTAsIDEsIDIxNCwgMjA3LCAyMzQsIDE4NywgMjM0LCA3NCwgMTEyLCAyMzEsIDE5NCwgNjUsIDE3LCAxMCwgMSwgMjE0LCAKKyAgICAyMDcsIDIzNCwgMTg3LCAyMzQsIDc0LCAxMTIsIDIzMSwgMTk0LCAxNDcsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAKICAgICAyLCAxMTIsIDUzLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMTEyLCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIAotICAgIDIwMiwgNzcsIDIsIDI1NCwgMjQ0LCA1MywgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDI1NCwgMjQ0LCA0MCwgCisgICAgMjAyLCA3NywgMiwgMjU0LCAyNDUsIDUzLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjU0LCAyNDUsIDQwLCAKICAgICAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjEyLCAzMSwgNTMsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAKICAgICAyLCAyMTIsIDMxLCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDEwNCwgNTMsIDE3LCAxMCwgMjcsIDc5LCAKLSAgICAyLCAyMDIsIDc3LCAyLCAxMDQsIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjI2LCAyMzUsIDUzLCAxNywgCi0gICAgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjI2LCAyMzUsIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgCisgICAgMiwgMjAyLCA3NywgMiwgMTA0LCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDIyNiwgMjM2LCA1MywgMTcsIAorICAgIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDIyNiwgMjM2LCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIAogICAgIDIxMCwgMjEzLCA1MywgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDIxMCwgMjEzLCA0MCwgMTcsIDEwLCAyNywgCiAgICAgNzksIDIsIDIwMiwgNzcsIDIsIDE2MCwgNTMsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCAxNjAsIDQwLCAxNywgCi0gICAgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMTYwLCA2NSwgMTcsIDEwLCAyNywgMjE0LCAyMDcsIDIzNCwgNzMsIDc5LCAyLCAKLSAgICAyMDIsIDc3LCAyLCAxMTIsIDIzMSwgMTkzLCA1MywgMTcsIDEwLCAyNywgMjE0LCAyMDcsIDIzNCwgNzMsIDc5LCAyLCAyMDIsIAotICAgIDc3LCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjE0LCAyMDcsIDIzNCwgNzMsIDc5LCAyLCAyMDIsIDc3LCAKLSAgICAyLCAxMTIsIDIzMSwgMTkzLCA2NSwgMTcsIDEwLCAxLCAyNDQsIDE2OCwgNzksIDUzLCAxNywgMTAsIDEsIDI0NCwgMTY4LCAKLSAgICA3OSwgNDAsIDE3LCAxMCwgMSwgMjQ0LCAxNjgsIDc5LCA2NSwgMTcsIDEwLCAxLCAyNDQsIDE2OCwgNzksIDE0NywgMTcsIAorICAgIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDE2MCwgNjUsIDE3LCAxMCwgMjcsIDIxNCwgMjA3LCAyMzQsIDc0LCA3OSwgMiwgCisgICAgMjAyLCA3NywgMiwgMTEyLCAyMzEsIDE5NCwgNTMsIDE3LCAxMCwgMjcsIDIxNCwgMjA3LCAyMzQsIDc0LCA3OSwgMiwgMjAyLCAKKyAgICA3NywgMiwgMTEyLCAyMzEsIDE5NCwgNDAsIDE3LCAxMCwgMjcsIDIxNCwgMjA3LCAyMzQsIDc0LCA3OSwgMiwgMjAyLCA3NywgCisgICAgMiwgMTEyLCAyMzEsIDE5NCwgNjUsIDE3LCAxMCwgMSwgMjQ0LCAxNjksIDc5LCA1MywgMTcsIDEwLCAxLCAyNDQsIDE2OSwgCisgICAgNzksIDQwLCAxNywgMTAsIDEsIDI0NCwgMTY5LCA3OSwgNjUsIDE3LCAxMCwgMSwgMjQ0LCAxNjksIDc5LCAxNDcsIDE3LCAKICAgICAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCAxNTEsIDUzLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMTIyLCAKICAgICA1MywgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIAotICAgIDExMiwgMjMxLCAxOTMsIDUzLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAKLSAgICAyNTIsIDU1LCAyLCAxNTEsIDUzLCAxNywgMTAsIDI3LCAyNTIsIDU1LCAyLCAxMjIsIDUzLCAxNywgMTAsIDI3LCAyNTIsIAotICAgIDU1LCAyLCAyMzQsIDEzMCwgNTMsIDE3LCAxMCwgMjcsIDI1MiwgNTUsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjUyLCA1NSwgCi0gICAgMiwgMTEyLCAyMzEsIDE5MywgNTMsIDE3LCAxMCwgMjcsIDI1MiwgNTUsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgMjE3LCA4LCAKLSAgICAyLCAxNTEsIDUzLCAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDIxNywgOCwgMiwgMjM0LCAKLSAgICAxMzAsIDUzLCAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCAxMTIsIDIzMSwgCi0gICAgMTkzLCA1MywgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDIxNiwgMTkzLCAyLCAxNTEsIDUzLCAKLSAgICAxNywgMTAsIDI3LCAyMTYsIDE5MywgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyMTYsIDE5MywgMiwgMTEyLCAyMzEsIDE5MywgCi0gICAgNTMsIDE3LCAxMCwgMjcsIDIxNiwgMTkzLCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDE1MSwgMiwgMTIyLCA1MywgMTcsIDEwLCAKKyAgICAxMTIsIDIzMSwgMTk0LCA1MywgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgCisgICAgMjUyLCA1NiwgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgMjUyLCA1NiwgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgMjUyLCAKKyAgICA1NiwgMiwgMjM0LCAxMzEsIDUzLCAxNywgMTAsIDI3LCAyNTIsIDU2LCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDI1MiwgNTYsIAorICAgIDIsIDExMiwgMjMxLCAxOTQsIDUzLCAxNywgMTAsIDI3LCAyNTIsIDU2LCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDIxNywgOSwgCisgICAgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgMjE3LCA5LCAyLCAxMjIsIDUzLCAxNywgMTAsIDI3LCAyMTcsIDksIDIsIDIzNCwgCisgICAgMTMxLCA1MywgMTcsIDEwLCAyNywgMjE3LCA5LCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDIxNywgOSwgMiwgMTEyLCAyMzEsIAorICAgIDE5NCwgNTMsIDE3LCAxMCwgMjcsIDIxNywgOSwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyMTYsIDE5NCwgMiwgMTUxLCA1MywgCisgICAgMTcsIDEwLCAyNywgMjE2LCAxOTQsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjE2LCAxOTQsIDIsIDExMiwgMjMxLCAxOTQsIAorICAgIDUzLCAxNywgMTAsIDI3LCAyMTYsIDE5NCwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAxNTEsIDIsIDEyMiwgNTMsIDE3LCAxMCwgCiAgICAgMjcsIDE1MSwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAxMjIsIDIsIDE1MSwgNTMsIDE3LCAxMCwgMjcsIDEyMiwgMiwgNjYsIAotICAgIDUzLCAxNywgMTAsIDI3LCAyMzQsIDEzMCwgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgMjM0LCAxMzAsIDIsIDEyMiwgNTMsIAotICAgIDE3LCAxMCwgMjcsIDIzNCwgMTMwLCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAyLCAxNTEsIDUzLCAxNywgCi0gICAgMTAsIDI3LCAyMjEsIDE2NywgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIDIzNCwgMTMwLCA1MywgMTcsIAotICAgIDEwLCAyNywgMjIxLCAxNjcsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjIyLCAyNywgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgCi0gICAgMjIyLCAyNywgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyNDgsIDIxNywgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgMjQ4LCAKLSAgICAyMTcsIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDI0OCwgMjE3LCAyLCAyMzQsIDEzMCwgNTMsIDE3LCAxMCwgMjcsIDI0OCwgCi0gICAgMjE3LCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDIxNywgODEsIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDIxNywgODEsIDIsIAotICAgIDY2LCA1MywgMTcsIDEwLCAyNywgMjEwLCAxMTIsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjU0LCAxOTcsIDIsIDE1MSwgCi0gICAgNTMsIDE3LCAxMCwgMjcsIDI1NCwgMTk3LCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDI0MiwgMjQ1LCAyLCAxNTEsIDUzLCAKLSAgICAxNywgMTAsIDI3LCAyNDIsIDI0NSwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyNDQsIDE0MywgMiwgMTUxLCA1MywgMTcsIAotICAgIDEwLCAyNywgMjQ0LCAxNDMsIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDI0NCwgMTQzLCAyLCAyMzQsIDEzMCwgNTMsIDE3LCAKLSAgICAxMCwgMjcsIDI0NCwgMTQzLCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDI0NCwgMTQzLCAyLCAxMTIsIDIzMSwgMTkzLCA1MywgCi0gICAgMTcsIDEwLCAyNywgMjQ0LCAxNDMsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgMjI0LCA4MiwgMiwgMTIyLCA1MywgMTcsIDEwLCAKLSAgICAyNywgMjI0LCA4MiwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyMjQsIDgyLCAyLCAxMTIsIDIzMSwgMTkzLCA1MywgMTcsIAotICAgIDEwLCAyNywgMjI0LCA4MiwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgMTEyLCA1MywgMTcsIDEwLCAyNywgCi0gICAgMjM0LCAyNTEsIDIsIDE1MSwgNTMsIDE3LCAxMCwgMjcsIDIzNCwgMjUxLCAyLCAxMjIsIDUzLCAxNywgMTAsIDI3LCAyMzQsIAotICAgIDI1MSwgMiwgMjM0LCAxMzAsIDUzLCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgMjMzLCAxMDMsIDUzLCAxNywgMTAsIDI3LCAKLSAgICAyMzQsIDI1MSwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgMTEyLCAyMzEsIDE5MywgNTMsIDE3LCAxMCwgCi0gICAgMjcsIDIzNCwgMjUxLCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxNTEsIDUzLCAxNywgMTAsIDI3LCAKLSAgICAyMzMsIDEwMywgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDIzNCwgMTMwLCA1MywgMTcsIDEwLCAyNywgCi0gICAgMjMzLCAxMDMsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDExMiwgMjMxLCAxOTMsIDUzLCAxNywgMTAsIAotICAgIDI3LCAyMzMsIDEwMywgMiwgNzksIDUzLCAxNywgMTAsIDI3LCA2NiwgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgNjYsIDIsIAotICAgIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDY2LCAyLCAyMzQsIDEzMCwgNTMsIDE3LCAxMCwgMjcsIDY2LCAyLCA2NiwgNTMsIDE3LCAKLSAgICAxMCwgMjcsIDY2LCAyLCAxMTIsIDIzMSwgMTkzLCA1MywgMTcsIDEwLCAyNywgNjYsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgCi0gICAgMjI4LCA2MywgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgMjI4LCAKLSAgICA2MywgMiwgMjM0LCAxMzAsIDUzLCAxNywgMTAsIDI3LCAyMjgsIDYzLCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIAotICAgIDIsIDExMiwgMjMxLCAxOTMsIDUzLCAxNywgMTAsIDI3LCAyMjgsIDYzLCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDI0MSwgCi0gICAgMjE5LCAyLCAxNTEsIDUzLCAxNywgMTAsIDI3LCAyNDEsIDIxOSwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyNDEsIDIxOSwgCi0gICAgMiwgMTEyLCAyMzEsIDE5MywgNTMsIDE3LCAxMCwgMjcsIDI0MSwgMjE5LCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDc5LCAyLCAKLSAgICAxNTEsIDUzLCAxNywgMTAsIDI3LCA3OSwgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgNzksIDIsIDIzNCwgMTMwLCA1MywgMTcsIAotICAgIDEwLCAyNywgNzksIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgNzksIDIsIDExMiwgMjMxLCAxOTMsIDUzLCAxNywgMTAsIDI3LCAKLSAgICA3OSwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyMTYsIDIwMywgMiwgMjE4LCAyMywgMTEyLCA1MywgMTcsIDEwLCAyNywgCi0gICAgMjIzLCA5NiwgMiwgMjE4LCAyMywgMTEyLCA1MywgMTcsIDEwLCAyNywgMTEyLCAyMzEsIDE5MywgMiwgMjE4LCAyMywgMTEyLCAKLSAgICA1MywgMTcsIDEwLCAyNywgMjIwLCA5NCwgMiwgMjQ4LCAxODMsIDUzLCAxNywgMTAsIDI3LCAyMjAsIDk0LCAyLCAyMzQsIAotICAgIDIwNCwgNTMsIDE3LCAxMCwgMjcsIDIyMCwgOTQsIDIsIDI0NCwgMTY2LCA1MywgMTcsIDEwLCAyNywgMjIwLCA5NCwgMiwgCi0gICAgMjQ4LCAxODUsIDUzLCAxNywgMTAsIDI3LCAyMjAsIDk0LCAyLCAyMzQsIDIwNiwgNTMsIDE3LCAxMCwgMjcsIDIyMCwgOTQsIAotICAgIDIsIDIxOCwgMjMsIDExMiwgNTMsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCAyMjMsIDk2LCA0MCwgMTcsIDEwLCAKKyAgICA1MywgMTcsIDEwLCAyNywgMjM0LCAxMzEsIDIsIDE1MSwgNTMsIDE3LCAxMCwgMjcsIDIzNCwgMTMxLCAyLCAxMjIsIDUzLCAKKyAgICAxNywgMTAsIDI3LCAyMzQsIDEzMSwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyMjEsIDE2OCwgMiwgMTUxLCA1MywgMTcsIAorICAgIDEwLCAyNywgMjIxLCAxNjgsIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDIyMSwgMTY4LCAyLCAyMzQsIDEzMSwgNTMsIDE3LCAKKyAgICAxMCwgMjcsIDIyMSwgMTY4LCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDIyMiwgMjgsIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIAorICAgIDIyMiwgMjgsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjQ4LCAyMTgsIDIsIDE1MSwgNTMsIDE3LCAxMCwgMjcsIDI0OCwgCisgICAgMjE4LCAyLCAxMjIsIDUzLCAxNywgMTAsIDI3LCAyNDgsIDIxOCwgMiwgMjM0LCAxMzEsIDUzLCAxNywgMTAsIDI3LCAyNDgsIAorICAgIDIxOCwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyMTcsIDgyLCAyLCAxMjIsIDUzLCAxNywgMTAsIDI3LCAyMTcsIDgyLCAyLCAKKyAgICA2NiwgNTMsIDE3LCAxMCwgMjcsIDIxMCwgMTEyLCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDI1NCwgMTk4LCAyLCAxNTEsIAorICAgIDUzLCAxNywgMTAsIDI3LCAyNTQsIDE5OCwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyNDIsIDI0NiwgMiwgMTUxLCA1MywgCisgICAgMTcsIDEwLCAyNywgMjQyLCAyNDYsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjQ0LCAxNDQsIDIsIDE1MSwgNTMsIDE3LCAKKyAgICAxMCwgMjcsIDI0NCwgMTQ0LCAyLCAxMjIsIDUzLCAxNywgMTAsIDI3LCAyNDQsIDE0NCwgMiwgMjM0LCAxMzEsIDUzLCAxNywgCisgICAgMTAsIDI3LCAyNDQsIDE0NCwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyNDQsIDE0NCwgMiwgMTEyLCAyMzEsIDE5NCwgNTMsIAorICAgIDE3LCAxMCwgMjcsIDI0NCwgMTQ0LCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDIyNCwgODMsIDIsIDEyMiwgNTMsIDE3LCAxMCwgCisgICAgMjcsIDIyNCwgODMsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjI0LCA4MywgMiwgMTEyLCAyMzEsIDE5NCwgNTMsIDE3LCAKKyAgICAxMCwgMjcsIDIyNCwgODMsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgMjM0LCAyNTIsIDIsIDExMiwgNTMsIDE3LCAxMCwgMjcsIAorICAgIDIzNCwgMjUyLCAyLCAxNTEsIDUzLCAxNywgMTAsIDI3LCAyMzQsIDI1MiwgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgMjM0LCAKKyAgICAyNTIsIDIsIDIzNCwgMTMxLCA1MywgMTcsIDEwLCAyNywgMjM0LCAyNTIsIDIsIDIzMywgMTA0LCA1MywgMTcsIDEwLCAyNywgCisgICAgMjM0LCAyNTIsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjM0LCAyNTIsIDIsIDExMiwgMjMxLCAxOTQsIDUzLCAxNywgMTAsIAorICAgIDI3LCAyMzQsIDI1MiwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyMzMsIDEwNCwgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgCisgICAgMjMzLCAxMDQsIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDIzMywgMTA0LCAyLCAyMzQsIDEzMSwgNTMsIDE3LCAxMCwgMjcsIAorICAgIDIzMywgMTA0LCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDIzMywgMTA0LCAyLCAxMTIsIDIzMSwgMTk0LCA1MywgMTcsIDEwLCAKKyAgICAyNywgMjMzLCAxMDQsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgNjYsIDIsIDE1MSwgNTMsIDE3LCAxMCwgMjcsIDY2LCAyLCAKKyAgICAxMjIsIDUzLCAxNywgMTAsIDI3LCA2NiwgMiwgMjM0LCAxMzEsIDUzLCAxNywgMTAsIDI3LCA2NiwgMiwgNjYsIDUzLCAxNywgCisgICAgMTAsIDI3LCA2NiwgMiwgMTEyLCAyMzEsIDE5NCwgNTMsIDE3LCAxMCwgMjcsIDY2LCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIAorICAgIDIyOCwgNjQsIDIsIDE1MSwgNTMsIDE3LCAxMCwgMjcsIDIyOCwgNjQsIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDIyOCwgCisgICAgNjQsIDIsIDIzNCwgMTMxLCA1MywgMTcsIDEwLCAyNywgMjI4LCA2NCwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyMjgsIDY0LCAKKyAgICAyLCAxMTIsIDIzMSwgMTk0LCA1MywgMTcsIDEwLCAyNywgMjI4LCA2NCwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyNDEsIAorICAgIDIyMCwgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgMjQxLCAyMjAsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjQxLCAyMjAsIAorICAgIDIsIDExMiwgMjMxLCAxOTQsIDUzLCAxNywgMTAsIDI3LCAyNDEsIDIyMCwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCA3OSwgMiwgCisgICAgMTUxLCA1MywgMTcsIDEwLCAyNywgNzksIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMzQsIDEzMSwgNTMsIDE3LCAKKyAgICAxMCwgMjcsIDc5LCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDc5LCAyLCAxMTIsIDIzMSwgMTk0LCA1MywgMTcsIDEwLCAyNywgCisgICAgNzksIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgMjE2LCAyMDQsIDIsIDIxOCwgMjQsIDExMiwgNTMsIDE3LCAxMCwgMjcsIAorICAgIDIyMywgOTcsIDIsIDIxOCwgMjQsIDExMiwgNTMsIDE3LCAxMCwgMjcsIDExMiwgMjMxLCAxOTQsIDIsIDIxOCwgMjQsIDExMiwgCisgICAgNTMsIDE3LCAxMCwgMjcsIDIyMCwgOTUsIDIsIDI0OCwgMTg0LCA1MywgMTcsIDEwLCAyNywgMjIwLCA5NSwgMiwgMjM0LCAKKyAgICAyMDUsIDUzLCAxNywgMTAsIDI3LCAyMjAsIDk1LCAyLCAyNDQsIDE2NywgNTMsIDE3LCAxMCwgMjcsIDIyMCwgOTUsIDIsIAorICAgIDI0OCwgMTg2LCA1MywgMTcsIDEwLCAyNywgMjIwLCA5NSwgMiwgMjM0LCAyMDcsIDUzLCAxNywgMTAsIDI3LCAyMjAsIDk1LCAKKyAgICAyLCAyMTgsIDI0LCAxMTIsIDUzLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjIzLCA5NywgNDAsIDE3LCAxMCwgCiAgICAgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCAyMTAsIDEwOSwgNDAsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCA2NiwgCi0gICAgNDAsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCAyMjgsIDYzLCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgCi0gICAgNzcsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgNzksIDQwLCAxNywgMTAsIAotICAgIDI3LCAyNTIsIDU1LCAyLCAyMjMsIDk2LCA0MCwgMTcsIDEwLCAyNywgMjUyLCA1NSwgMiwgMjEwLCAxMDksIDQwLCAxNywgCi0gICAgMTAsIDI3LCAyNTIsIDU1LCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDI1MiwgNTUsIDIsIDIyOCwgNjMsIDQwLCAxNywgMTAsIAotICAgIDI3LCAyNTIsIDU1LCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjUyLCA1NSwgMiwgNzksIDQwLCAxNywgCi0gICAgMTAsIDI3LCAyMTcsIDgsIDIsIDIyMywgOTYsIDQwLCAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDIxMCwgMTA5LCA0MCwgMTcsIAotICAgIDEwLCAyNywgMjE3LCA4LCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDIxNywgOCwgMiwgMjI4LCA2MywgNDAsIDE3LCAxMCwgCi0gICAgMjcsIDIxNywgOCwgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDIxNywgOCwgMiwgNzksIDQwLCAxNywgMTAsIAotICAgIDI3LCAyMTYsIDE5MywgMiwgMjIzLCA5NiwgNDAsIDE3LCAxMCwgMjcsIDIxNiwgMTkzLCAyLCAyMTAsIDEwOSwgNDAsIDE3LCAKLSAgICAxMCwgMjcsIDIxNiwgMTkzLCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDIxNiwgMTkzLCAyLCAyMjgsIDYzLCA0MCwgMTcsIAotICAgIDEwLCAyNywgMjE2LCAxOTMsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyMTYsIDE5MywgMiwgNzksIDQwLCAKLSAgICAxNywgMTAsIDI3LCAyNDQsIDE0MywgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDI0NCwgMTQzLCAyLCA3OSwgCi0gICAgNDAsIDE3LCAxMCwgMjcsIDIyNCwgODIsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyMjQsIDgyLCAyLCAKLSAgICA3OSwgNDAsIDE3LCAxMCwgMjcsIDIzNCwgMjUxLCAyLCAxMTIsIDQwLCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgMjMzLCAKLSAgICAxMDMsIDQwLCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgMTEyLCAKLSAgICAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDIzNCwgMjUxLCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAKLSAgICA2NiwgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIAorICAgIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjI4LCA2NCwgNDAsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIAorICAgIDc3LCAyLCAxMTIsIDIzMSwgMTk0LCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDc5LCA0MCwgMTcsIDEwLCAKKyAgICAyNywgMjUyLCA1NiwgMiwgMjIzLCA5NywgNDAsIDE3LCAxMCwgMjcsIDI1MiwgNTYsIDIsIDIxMCwgMTA5LCA0MCwgMTcsIAorICAgIDEwLCAyNywgMjUyLCA1NiwgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyNTIsIDU2LCAyLCAyMjgsIDY0LCA0MCwgMTcsIDEwLCAKKyAgICAyNywgMjUyLCA1NiwgMiwgMTEyLCAyMzEsIDE5NCwgNDAsIDE3LCAxMCwgMjcsIDI1MiwgNTYsIDIsIDc5LCA0MCwgMTcsIAorICAgIDEwLCAyNywgMjE3LCA5LCAyLCAyMjMsIDk3LCA0MCwgMTcsIDEwLCAyNywgMjE3LCA5LCAyLCAyMTAsIDEwOSwgNDAsIDE3LCAKKyAgICAxMCwgMjcsIDIxNywgOSwgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyMTcsIDksIDIsIDIyOCwgNjQsIDQwLCAxNywgMTAsIAorICAgIDI3LCAyMTcsIDksIDIsIDExMiwgMjMxLCAxOTQsIDQwLCAxNywgMTAsIDI3LCAyMTcsIDksIDIsIDc5LCA0MCwgMTcsIDEwLCAKKyAgICAyNywgMjE2LCAxOTQsIDIsIDIyMywgOTcsIDQwLCAxNywgMTAsIDI3LCAyMTYsIDE5NCwgMiwgMjEwLCAxMDksIDQwLCAxNywgCisgICAgMTAsIDI3LCAyMTYsIDE5NCwgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyMTYsIDE5NCwgMiwgMjI4LCA2NCwgNDAsIDE3LCAKKyAgICAxMCwgMjcsIDIxNiwgMTk0LCAyLCAxMTIsIDIzMSwgMTk0LCA0MCwgMTcsIDEwLCAyNywgMjE2LCAxOTQsIDIsIDc5LCA0MCwgCisgICAgMTcsIDEwLCAyNywgMjQ0LCAxNDQsIDIsIDExMiwgMjMxLCAxOTQsIDQwLCAxNywgMTAsIDI3LCAyNDQsIDE0NCwgMiwgNzksIAorICAgIDQwLCAxNywgMTAsIDI3LCAyMjQsIDgzLCAyLCAxMTIsIDIzMSwgMTk0LCA0MCwgMTcsIDEwLCAyNywgMjI0LCA4MywgMiwgCisgICAgNzksIDQwLCAxNywgMTAsIDI3LCAyMzQsIDI1MiwgMiwgMTEyLCA0MCwgMTcsIDEwLCAyNywgMjM0LCAyNTIsIDIsIDIzMywgCisgICAgMTA0LCA0MCwgMTcsIDEwLCAyNywgMjM0LCAyNTIsIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjM0LCAyNTIsIDIsIDExMiwgCisgICAgMjMxLCAxOTQsIDQwLCAxNywgMTAsIDI3LCAyMzQsIDI1MiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwNCwgMiwgCisgICAgNjYsIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwNCwgMiwgMTEyLCAyMzEsIDE5NCwgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTA0LCAKICAgICAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDY2LCAyLCAxMTIsIDQwLCAxNywgMTAsIDI3LCA2NiwgMiwgNjYsIDQwLCAxNywgMTAsIAotICAgIDI3LCAyMjgsIDYzLCAyLCAyMjMsIDk2LCA0MCwgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgMjEwLCAxMDksIDQwLCAxNywgCi0gICAgMTAsIDI3LCAyMjgsIDYzLCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIDIsIDIyOCwgNjMsIDQwLCAxNywgMTAsIAotICAgIDI3LCAyMjgsIDYzLCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgNzksIDQwLCAxNywgCi0gICAgMTAsIDI3LCAxMTIsIDIzMSwgMTkzLCAyLCAyMTgsIDIzLCAxMTIsIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgMjIzLCA5NiwgCisgICAgMjcsIDIyOCwgNjQsIDIsIDIyMywgOTcsIDQwLCAxNywgMTAsIDI3LCAyMjgsIDY0LCAyLCAyMTAsIDEwOSwgNDAsIDE3LCAKKyAgICAxMCwgMjcsIDIyOCwgNjQsIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjI4LCA2NCwgMiwgMjI4LCA2NCwgNDAsIDE3LCAxMCwgCisgICAgMjcsIDIyOCwgNjQsIDIsIDExMiwgMjMxLCAxOTQsIDQwLCAxNywgMTAsIDI3LCAyMjgsIDY0LCAyLCA3OSwgNDAsIDE3LCAKKyAgICAxMCwgMjcsIDExMiwgMjMxLCAxOTQsIDIsIDIxOCwgMjQsIDExMiwgNDAsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMjMsIDk3LCAKICAgICA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDIxMCwgMTA5LCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDY2LCA0MCwgMTcsIDEwLCAKLSAgICAyNywgNzksIDIsIDIyOCwgNjMsIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIAorICAgIDI3LCA3OSwgMiwgMjI4LCA2NCwgNDAsIDE3LCAxMCwgMjcsIDc5LCAyLCAxMTIsIDIzMSwgMTk0LCA0MCwgMTcsIDEwLCAyNywgCiAgICAgNzksIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDc5LCAyLCAKLSAgICAyMDIsIDc3LCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjM0LCAxMzAsIDY1LCAxNywgMTAsIAotICAgIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjQxLCAyMTksIAotICAgIDY1LCAxNywgMTAsIDI3LCAyNTIsIDU1LCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyNTIsIDU1LCAyLCAxMjIsIDY1LCAxNywgCi0gICAgMTAsIDI3LCAyNTIsIDU1LCAyLCAyMzQsIDEzMCwgNjUsIDE3LCAxMCwgMjcsIDI1MiwgNTUsIDIsIDY2LCA2NSwgMTcsIDEwLCAKLSAgICAyNywgMjUyLCA1NSwgMiwgMjQxLCAyMTksIDY1LCAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIAotICAgIDIxNywgOCwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCAyMzQsIDEzMCwgNjUsIDE3LCAxMCwgMjcsIDIxNywgCi0gICAgOCwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDI0MSwgMjE5LCA2NSwgMTcsIDEwLCAyNywgMjE2LCAxOTMsIAorICAgIDIwMiwgNzcsIDIsIDEyMiwgNjUsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCAyMzQsIDEzMSwgNjUsIDE3LCAxMCwgCisgICAgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCAyNDEsIDIyMCwgCisgICAgNjUsIDE3LCAxMCwgMjcsIDI1MiwgNTYsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDI1MiwgNTYsIDIsIDEyMiwgNjUsIDE3LCAKKyAgICAxMCwgMjcsIDI1MiwgNTYsIDIsIDIzNCwgMTMxLCA2NSwgMTcsIDEwLCAyNywgMjUyLCA1NiwgMiwgNjYsIDY1LCAxNywgMTAsIAorICAgIDI3LCAyNTIsIDU2LCAyLCAyNDEsIDIyMCwgNjUsIDE3LCAxMCwgMjcsIDIxNywgOSwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgCisgICAgMjE3LCA5LCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCAyMTcsIDksIDIsIDIzNCwgMTMxLCA2NSwgMTcsIDEwLCAyNywgMjE3LCAKKyAgICA5LCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIxNywgOSwgMiwgMjQxLCAyMjAsIDY1LCAxNywgMTAsIDI3LCAyMTYsIDE5NCwgCiAgICAgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAxNTEsIDIsIDEyMiwgNjUsIDE3LCAxMCwgMjcsIDE1MSwgMiwgNjYsIDY1LCAxNywgCiAgICAgMTAsIDI3LCAxMjIsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDEyMiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMzQsIAotICAgIDEzMCwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjM0LCAxMzAsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjIxLCAxNjcsIAotICAgIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgCi0gICAgMjM0LCAxMzAsIDY1LCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMjIsIDI3LCAyLCAKLSAgICAxMjIsIDY1LCAxNywgMTAsIDI3LCAyMjIsIDI3LCAyLCAyMzQsIDEzMCwgNjUsIDE3LCAxMCwgMjcsIDIyMiwgMjcsIDIsIAotICAgIDY2LCA2NSwgMTcsIDEwLCAyNywgMjQ4LCAyMTcsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDI0OCwgMjE3LCAyLCAxMjIsIAotICAgIDY1LCAxNywgMTAsIDI3LCAyNDgsIDIxNywgMiwgMjM0LCAxMzAsIDY1LCAxNywgMTAsIDI3LCAyNDgsIDIxNywgMiwgNjYsIAotICAgIDY1LCAxNywgMTAsIDI3LCAyMTcsIDgxLCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCAyMTAsIDExMiwgMiwgNjYsIDY1LCAxNywgCi0gICAgMTAsIDI3LCAyNTQsIDE5NywgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjU0LCAxOTcsIDIsIDY2LCA2NSwgMTcsIDEwLCAKLSAgICAyNywgMjQyLCAyNDUsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDI0MiwgMjQ1LCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIAotICAgIDI0NCwgMTQzLCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyNDQsIDE0MywgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjQ0LCAKLSAgICAxNDMsIDIsIDIzNCwgMTMwLCA2NSwgMTcsIDEwLCAyNywgMjQ0LCAxNDMsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjI0LCAKLSAgICA4MiwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjI0LCA4MiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgCi0gICAgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjM0LCAyNTEsIDIsIDEyMiwgNjUsIDE3LCAxMCwgMjcsIDIzNCwgMjUxLCAyLCAyMzQsIAotICAgIDEzMCwgNjUsIDE3LCAxMCwgMjcsIDIzNCwgMjUxLCAyLCAyMzMsIDEwMywgNjUsIDE3LCAxMCwgMjcsIDIzNCwgMjUxLCAyLCAKLSAgICA2NiwgNjUsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyMzMsIDEwMywgMiwgMTIyLCAKLSAgICA2NSwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDIzNCwgMTMwLCA2NSwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDY2LCAKLSAgICA2NSwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDI0MSwgMjE5LCA2NSwgMTcsIDEwLCAyNywgNjYsIDIsIDE1MSwgNjUsIAotICAgIDE3LCAxMCwgMjcsIDY2LCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCA2NiwgMiwgMjM0LCAxMzAsIDY1LCAxNywgMTAsIDI3LCAKLSAgICA2NiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMjgsIDYzLCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyMjgsIDYzLCAyLCAKLSAgICAxMjIsIDY1LCAxNywgMTAsIDI3LCAyMjgsIDYzLCAyLCAyMzQsIDEzMCwgNjUsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIDIsIAotICAgIDY2LCA2NSwgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgMjQxLCAyMTksIDY1LCAxNywgMTAsIDI3LCAyNDEsIDIxOSwgMiwgCi0gICAgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjQxLCAyMTksIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjQxLCAyMTksIDIsIDIxOCwgCi0gICAgMjMsIDExMiwgNjUsIDE3LCAxMCwgMjcsIDc5LCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCA3OSwgMiwgMTIyLCA2NSwgMTcsIAotICAgIDEwLCAyNywgNzksIDIsIDIzNCwgMTMwLCA2NSwgMTcsIDEwLCAyNywgNzksIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgNzksIAotICAgIDIsIDI0MSwgMjE5LCA2NSwgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDY2LCAxNDcsIDE3LCAxMCwgMjcsIDc5LCAKLSAgICAyLCAyMDIsIDc3LCAyLCAyNDEsIDIxOSwgMTQ3LCAxNywgMTAsIDI3LCAyNTIsIDU1LCAyLCA2NiwgMTQ3LCAxNywgMTAsIAotICAgIDI3LCAyNTIsIDU1LCAyLCAyNDEsIDIxOSwgMTQ3LCAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDY2LCAxNDcsIDE3LCAxMCwgCi0gICAgMjcsIDIxNywgOCwgMiwgMjQxLCAyMTksIDE0NywgMTcsIDEwLCAyNywgMjE2LCAxOTMsIDIsIDY2LCAxNDcsIDE3LCAxMCwgCi0gICAgMjcsIDIxNiwgMTkzLCAyLCAyNDEsIDIxOSwgMTQ3LCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgNjYsIDE0NywgMTcsIDEwLCAKLSAgICAyNywgMjIxLCAxNjcsIDIsIDI0MSwgMjE5LCAxNDcsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIDY2LCAxNDcsIDE3LCAxMCwgCi0gICAgMjcsIDIyMCwgNjAsIDIsIDI0MSwgMjE5LCAxNDcsIDE3LCAxMCwgMjcsIDIzNCwgMjUxLCAyLCAyMzMsIDEwMywgMTQ3LCAKLSAgICAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgNjYsIDE0NywgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDY2LCAxNDcsIDE3LCAKLSAgICAxMCwgMjcsIDIyOCwgNjMsIDIsIDY2LCAxNDcsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIDIsIDI0MSwgMjE5LCAxNDcsIDE3LCAKLSAgICAxMCwgMjcsIDc5LCAyLCA2NiwgMTQ3LCAxNywgMTAsIDI3LCA3OSwgMiwgMjQxLCAyMTksIDE0NywgMTcsIDEwLCAyNywgCi0gICAgMjIwLCA5NCwgMiwgMjQ0LCAxNjYsIDE0NywgMTcsIDEwLCAyNywgMjIwLCA5NCwgMiwgMjQ4LCAxODUsIDE0NywgMTcsIDEwLCAKLSAgICAyNywgMjIwLCA5NCwgMiwgMjM0LCAyMDYsIDE0NywgMTcsIDEwLCAyNywgMjE3LCA4MSwgMiwgMTEyLCAyMzEsIDE5MywgNTMsIAotICAgIDE3LCAxMCwgMjcsIDIxNywgODEsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgMjU0LCAxOTcsIDIsIDExMiwgMjMxLCAxOTMsIAotICAgIDUzLCAxNywgMTAsIDI3LCAyNTQsIDE5NywgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyNDIsIDI0NSwgMiwgMTEyLCAyMzEsIAotICAgIDE5MywgNTMsIDE3LCAxMCwgMjcsIDI0MiwgMjQ1LCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAyLCAxMTIsIAotICAgIDIzMSwgMTkzLCA1MywgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgCi0gICAgMTEyLCAyMzEsIDE5MywgNTMsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgMTIyLCAyLCAKLSAgICAxMTIsIDIzMSwgMTkzLCA1MywgMTcsIDEwLCAyNywgMTIyLCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDE1MSwgMiwgMTEyLCAKLSAgICAyMzEsIDE5MywgNTMsIDE3LCAxMCwgMjcsIDE1MSwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyMzQsIDEzMCwgMiwgMTEyLCAKLSAgICAyMzEsIDE5MywgNTMsIDE3LCAxMCwgMjcsIDIzNCwgMTMwLCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDIyMiwgMjcsIDIsIAotICAgIDExMiwgMjMxLCAxOTMsIDUzLCAxNywgMTAsIDI3LCAyMjIsIDI3LCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDI0OCwgMjE3LCAKLSAgICAyLCAxMTIsIDIzMSwgMTkzLCA1MywgMTcsIDEwLCAyNywgMjQ4LCAyMTcsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgMjIwLCAKLSAgICA2MCwgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgCi0gICAgMjM0LCAxMzAsIDUzLCAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIAotICAgIDIyMywgOTYsIDUzLCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgMjIzLCA5NiwgNTMsIDE3LCAxMCwgMjcsIDIyMiwgMjcsIAotICAgIDIsIDIyMywgOTYsIDUzLCAxNywgMTAsIDI3LCAyNDgsIDIxNywgMiwgMjIzLCA5NiwgNTMsIDE3LCAxMCwgMjcsIDIxNywgCi0gICAgODEsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyMTcsIDgxLCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIAotICAgIDI1NCwgMTk3LCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjU0LCAxOTcsIDIsIDc5LCA0MCwgMTcsIDEwLCAKLSAgICAyNywgMjQyLCAyNDUsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyNDIsIDI0NSwgMiwgNzksIDQwLCAxNywgCi0gICAgMTAsIDI3LCAyMjEsIDE2NywgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAyLCA3OSwgNDAsIAotICAgIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCA3OSwgCi0gICAgNDAsIDE3LCAxMCwgMjcsIDEyMiwgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDEyMiwgMiwgNzksIDQwLCAKLSAgICAxNywgMTAsIDI3LCAxNTEsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAxNTEsIDIsIDc5LCA0MCwgMTcsIAotICAgIDEwLCAyNywgMjM0LCAxMzAsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyMzQsIDEzMCwgMiwgNzksIDQwLCAKLSAgICAxNywgMTAsIDI3LCAyMjIsIDI3LCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjIyLCAyNywgMiwgNzksIAotICAgIDQwLCAxNywgMTAsIDI3LCAyNDgsIDIxNywgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDI0OCwgMjE3LCAyLCAKLSAgICA3OSwgNDAsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIDE1MSwgNDAsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIDEyMiwgNDAsIAotICAgIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIDIzNCwgMTMwLCA0MCwgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgNjYsIDQwLCAxNywgCi0gICAgMTAsIDI3LCAyMjAsIDYwLCAyLCAyMjMsIDk2LCA0MCwgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIDIyMywgOTYsIDQwLCAKLSAgICAxNywgMTAsIDI3LCAyMjIsIDI3LCAyLCAyMjMsIDk2LCA0MCwgMTcsIDEwLCAyNywgMjQ4LCAyMTcsIDIsIDIyMywgOTYsIAotICAgIDQwLCAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCAxMjIsIDY1LCAxNywgCi0gICAgMTAsIDI3LCAyMjAsIDYwLCAyLCAyMzQsIDEzMCwgNjUsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIDY2LCA2NSwgMTcsIDEwLCAKLSAgICAyNywgMjIxLCAxNjcsIDIsIDI0MSwgMjE5LCA2NSwgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgMjQxLCAyMTksIDY1LCAxNywgCi0gICAgMTAsIDI3LCAyMTcsIDgxLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAyLCAxNTEsIDE0NywgMTcsIDEwLCAKLSAgICAyNywgMjIxLCAxNjcsIDIsIDEyMiwgMTQ3LCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgMjM0LCAxMzAsIDE0NywgMTcsIAotICAgIDEwLCAyNywgMjIwLCA2MCwgMiwgMTUxLCAxNDcsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIDEyMiwgMTQ3LCAxNywgMTAsIAotICAgIDI3LCAyMjAsIDYwLCAyLCAyMzQsIDEzMCwgMTQ3LCAxNywgMTAsIDI3LCAyMTcsIDgxLCAyLCA2NiwgMTQ3LCAxNywgMTAsIAotICAgIDI3LCAyMTAsIDExMiwgMiwgNjYsIDE0NywgMTcsIDEwLCAyNywgMTEyLCAyLCAyNDQsIDE2NCwgNDAsIDE3LCAxMCwgMjcsIAotICAgIDExMiwgMiwgMjQ0LCAxNjQsIDUzLCAxNywgMjI2LCAxNDYsIDQzLCAyMjYsIDMsIDIyNiwgMTQ2LCA0NCwgMjI2LCAzLCAxMCwgCi0gICAgMjcsIDIxNywgOCwgMiwgMTUxLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIxNywgOCwgMiwgMTIyLCAyLCAxNTEsIDQwLCAKLSAgICAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDEyMiwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCAxMjIsIDIsIAotICAgIDY2LCA2NSwgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCAyMzQsIDEzMCwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMTcsIDgsIAotICAgIDIsIDY2LCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDY2LCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCAKLSAgICAyMTcsIDgsIDIsIDY2LCAyLCAyMzQsIDEzMCwgNjUsIDE3LCAxMCwgMjcsIDE1MSwgMiwgNjYsIDIsIDEyMiwgNDAsIDE3LCAKKyAgICAxMzEsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDIzNCwgMTMxLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyMSwgMTY4LCAKKyAgICAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyMjEsIDE2OCwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjIxLCAxNjgsIDIsIAorICAgIDIzNCwgMTMxLCA2NSwgMTcsIDEwLCAyNywgMjIxLCAxNjgsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjIyLCAyOCwgMiwgCisgICAgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjIyLCAyOCwgMiwgMjM0LCAxMzEsIDY1LCAxNywgMTAsIDI3LCAyMjIsIDI4LCAyLCAKKyAgICA2NiwgNjUsIDE3LCAxMCwgMjcsIDI0OCwgMjE4LCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyNDgsIDIxOCwgMiwgMTIyLCAKKyAgICA2NSwgMTcsIDEwLCAyNywgMjQ4LCAyMTgsIDIsIDIzNCwgMTMxLCA2NSwgMTcsIDEwLCAyNywgMjQ4LCAyMTgsIDIsIDY2LCAKKyAgICA2NSwgMTcsIDEwLCAyNywgMjE3LCA4MiwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjEwLCAxMTIsIDIsIDY2LCA2NSwgMTcsIAorICAgIDEwLCAyNywgMjU0LCAxOTgsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDI1NCwgMTk4LCAyLCA2NiwgNjUsIDE3LCAxMCwgCisgICAgMjcsIDI0MiwgMjQ2LCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyNDIsIDI0NiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAKKyAgICAyNDQsIDE0NCwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjQ0LCAxNDQsIDIsIDEyMiwgNjUsIDE3LCAxMCwgMjcsIDI0NCwgCisgICAgMTQ0LCAyLCAyMzQsIDEzMSwgNjUsIDE3LCAxMCwgMjcsIDI0NCwgMTQ0LCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyNCwgCisgICAgODMsIDIsIDEyMiwgNjUsIDE3LCAxMCwgMjcsIDIyNCwgODMsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjM0LCAyNTIsIDIsIAorICAgIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDIzNCwgMjUyLCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCAyMzQsIDI1MiwgMiwgMjM0LCAKKyAgICAxMzEsIDY1LCAxNywgMTAsIDI3LCAyMzQsIDI1MiwgMiwgMjMzLCAxMDQsIDY1LCAxNywgMTAsIDI3LCAyMzQsIDI1MiwgMiwgCisgICAgNjYsIDY1LCAxNywgMTAsIDI3LCAyMzMsIDEwNCwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjMzLCAxMDQsIDIsIDEyMiwgCisgICAgNjUsIDE3LCAxMCwgMjcsIDIzMywgMTA0LCAyLCAyMzQsIDEzMSwgNjUsIDE3LCAxMCwgMjcsIDIzMywgMTA0LCAyLCA2NiwgCisgICAgNjUsIDE3LCAxMCwgMjcsIDIzMywgMTA0LCAyLCAyNDEsIDIyMCwgNjUsIDE3LCAxMCwgMjcsIDY2LCAyLCAxNTEsIDY1LCAKKyAgICAxNywgMTAsIDI3LCA2NiwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgNjYsIDIsIDIzNCwgMTMxLCA2NSwgMTcsIDEwLCAyNywgCisgICAgNjYsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjI4LCA2NCwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjI4LCA2NCwgMiwgCisgICAgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjI4LCA2NCwgMiwgMjM0LCAxMzEsIDY1LCAxNywgMTAsIDI3LCAyMjgsIDY0LCAyLCAKKyAgICA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyOCwgNjQsIDIsIDI0MSwgMjIwLCA2NSwgMTcsIDEwLCAyNywgMjQxLCAyMjAsIDIsIAorICAgIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDI0MSwgMjIwLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDI0MSwgMjIwLCAyLCAyMTgsIAorICAgIDI0LCAxMTIsIDY1LCAxNywgMTAsIDI3LCA3OSwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgNzksIDIsIDEyMiwgNjUsIDE3LCAKKyAgICAxMCwgMjcsIDc5LCAyLCAyMzQsIDEzMSwgNjUsIDE3LCAxMCwgMjcsIDc5LCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDc5LCAKKyAgICAyLCAyNDEsIDIyMCwgNjUsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCA2NiwgMTQ3LCAxNywgMTAsIDI3LCA3OSwgCisgICAgMiwgMjAyLCA3NywgMiwgMjQxLCAyMjAsIDE0NywgMTcsIDEwLCAyNywgMjUyLCA1NiwgMiwgNjYsIDE0NywgMTcsIDEwLCAKKyAgICAyNywgMjUyLCA1NiwgMiwgMjQxLCAyMjAsIDE0NywgMTcsIDEwLCAyNywgMjE3LCA5LCAyLCA2NiwgMTQ3LCAxNywgMTAsIAorICAgIDI3LCAyMTcsIDksIDIsIDI0MSwgMjIwLCAxNDcsIDE3LCAxMCwgMjcsIDIxNiwgMTk0LCAyLCA2NiwgMTQ3LCAxNywgMTAsIAorICAgIDI3LCAyMTYsIDE5NCwgMiwgMjQxLCAyMjAsIDE0NywgMTcsIDEwLCAyNywgMjIxLCAxNjgsIDIsIDY2LCAxNDcsIDE3LCAxMCwgCisgICAgMjcsIDIyMSwgMTY4LCAyLCAyNDEsIDIyMCwgMTQ3LCAxNywgMTAsIDI3LCAyMjAsIDYxLCAyLCA2NiwgMTQ3LCAxNywgMTAsIAorICAgIDI3LCAyMjAsIDYxLCAyLCAyNDEsIDIyMCwgMTQ3LCAxNywgMTAsIDI3LCAyMzQsIDI1MiwgMiwgMjMzLCAxMDQsIDE0NywgCisgICAgMTcsIDEwLCAyNywgMjM0LCAyNTIsIDIsIDY2LCAxNDcsIDE3LCAxMCwgMjcsIDIzMywgMTA0LCAyLCA2NiwgMTQ3LCAxNywgCisgICAgMTAsIDI3LCAyMjgsIDY0LCAyLCA2NiwgMTQ3LCAxNywgMTAsIDI3LCAyMjgsIDY0LCAyLCAyNDEsIDIyMCwgMTQ3LCAxNywgCisgICAgMTAsIDI3LCA3OSwgMiwgNjYsIDE0NywgMTcsIDEwLCAyNywgNzksIDIsIDI0MSwgMjIwLCAxNDcsIDE3LCAxMCwgMjcsIAorICAgIDIyMCwgOTUsIDIsIDI0NCwgMTY3LCAxNDcsIDE3LCAxMCwgMjcsIDIyMCwgOTUsIDIsIDI0OCwgMTg2LCAxNDcsIDE3LCAxMCwgCisgICAgMjcsIDIyMCwgOTUsIDIsIDIzNCwgMjA3LCAxNDcsIDE3LCAxMCwgMjcsIDIxNywgODIsIDIsIDExMiwgMjMxLCAxOTQsIDUzLCAKKyAgICAxNywgMTAsIDI3LCAyMTcsIDgyLCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDI1NCwgMTk4LCAyLCAxMTIsIDIzMSwgMTk0LCAKKyAgICA1MywgMTcsIDEwLCAyNywgMjU0LCAxOTgsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgMjQyLCAyNDYsIDIsIDExMiwgMjMxLCAKKyAgICAxOTQsIDUzLCAxNywgMTAsIDI3LCAyNDIsIDI0NiwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyMjEsIDE2OCwgMiwgMTEyLCAKKyAgICAyMzEsIDE5NCwgNTMsIDE3LCAxMCwgMjcsIDIyMSwgMTY4LCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDIyMCwgNjEsIDIsIAorICAgIDExMiwgMjMxLCAxOTQsIDUzLCAxNywgMTAsIDI3LCAyMjAsIDYxLCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDEyMiwgMiwgCisgICAgMTEyLCAyMzEsIDE5NCwgNTMsIDE3LCAxMCwgMjcsIDEyMiwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAxNTEsIDIsIDExMiwgCisgICAgMjMxLCAxOTQsIDUzLCAxNywgMTAsIDI3LCAxNTEsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgMjM0LCAxMzEsIDIsIDExMiwgCisgICAgMjMxLCAxOTQsIDUzLCAxNywgMTAsIDI3LCAyMzQsIDEzMSwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyMjIsIDI4LCAyLCAKKyAgICAxMTIsIDIzMSwgMTk0LCA1MywgMTcsIDEwLCAyNywgMjIyLCAyOCwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyNDgsIDIxOCwgCisgICAgMiwgMTEyLCAyMzEsIDE5NCwgNTMsIDE3LCAxMCwgMjcsIDI0OCwgMjE4LCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDIyMCwgCisgICAgNjEsIDIsIDE1MSwgNTMsIDE3LCAxMCwgMjcsIDIyMCwgNjEsIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDIyMCwgNjEsIDIsIAorICAgIDIzNCwgMTMxLCA1MywgMTcsIDEwLCAyNywgMjIwLCA2MSwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyMjAsIDYxLCAyLCAKKyAgICAyMjMsIDk3LCA1MywgMTcsIDEwLCAyNywgMjIxLCAxNjgsIDIsIDIyMywgOTcsIDUzLCAxNywgMTAsIDI3LCAyMjIsIDI4LCAKKyAgICAyLCAyMjMsIDk3LCA1MywgMTcsIDEwLCAyNywgMjQ4LCAyMTgsIDIsIDIyMywgOTcsIDUzLCAxNywgMTAsIDI3LCAyMTcsIAorICAgIDgyLCAyLCAxMTIsIDIzMSwgMTk0LCA0MCwgMTcsIDEwLCAyNywgMjE3LCA4MiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAKKyAgICAyNTQsIDE5OCwgMiwgMTEyLCAyMzEsIDE5NCwgNDAsIDE3LCAxMCwgMjcsIDI1NCwgMTk4LCAyLCA3OSwgNDAsIDE3LCAxMCwgCisgICAgMjcsIDI0MiwgMjQ2LCAyLCAxMTIsIDIzMSwgMTk0LCA0MCwgMTcsIDEwLCAyNywgMjQyLCAyNDYsIDIsIDc5LCA0MCwgMTcsIAorICAgIDEwLCAyNywgMjIxLCAxNjgsIDIsIDExMiwgMjMxLCAxOTQsIDQwLCAxNywgMTAsIDI3LCAyMjEsIDE2OCwgMiwgNzksIDQwLCAKKyAgICAxNywgMTAsIDI3LCAyMjAsIDYxLCAyLCAxMTIsIDIzMSwgMTk0LCA0MCwgMTcsIDEwLCAyNywgMjIwLCA2MSwgMiwgNzksIAorICAgIDQwLCAxNywgMTAsIDI3LCAxMjIsIDIsIDExMiwgMjMxLCAxOTQsIDQwLCAxNywgMTAsIDI3LCAxMjIsIDIsIDc5LCA0MCwgCisgICAgMTcsIDEwLCAyNywgMTUxLCAyLCAxMTIsIDIzMSwgMTk0LCA0MCwgMTcsIDEwLCAyNywgMTUxLCAyLCA3OSwgNDAsIDE3LCAKKyAgICAxMCwgMjcsIDIzNCwgMTMxLCAyLCAxMTIsIDIzMSwgMTk0LCA0MCwgMTcsIDEwLCAyNywgMjM0LCAxMzEsIDIsIDc5LCA0MCwgCisgICAgMTcsIDEwLCAyNywgMjIyLCAyOCwgMiwgMTEyLCAyMzEsIDE5NCwgNDAsIDE3LCAxMCwgMjcsIDIyMiwgMjgsIDIsIDc5LCAKKyAgICA0MCwgMTcsIDEwLCAyNywgMjQ4LCAyMTgsIDIsIDExMiwgMjMxLCAxOTQsIDQwLCAxNywgMTAsIDI3LCAyNDgsIDIxOCwgMiwgCisgICAgNzksIDQwLCAxNywgMTAsIDI3LCAyMjAsIDYxLCAyLCAxNTEsIDQwLCAxNywgMTAsIDI3LCAyMjAsIDYxLCAyLCAxMjIsIDQwLCAKKyAgICAxNywgMTAsIDI3LCAyMjAsIDYxLCAyLCAyMzQsIDEzMSwgNDAsIDE3LCAxMCwgMjcsIDIyMCwgNjEsIDIsIDY2LCA0MCwgMTcsIAorICAgIDEwLCAyNywgMjIwLCA2MSwgMiwgMjIzLCA5NywgNDAsIDE3LCAxMCwgMjcsIDIyMSwgMTY4LCAyLCAyMjMsIDk3LCA0MCwgCisgICAgMTcsIDEwLCAyNywgMjIyLCAyOCwgMiwgMjIzLCA5NywgNDAsIDE3LCAxMCwgMjcsIDI0OCwgMjE4LCAyLCAyMjMsIDk3LCAKKyAgICA0MCwgMTcsIDEwLCAyNywgMjIwLCA2MSwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjIwLCA2MSwgMiwgMTIyLCA2NSwgMTcsIAorICAgIDEwLCAyNywgMjIwLCA2MSwgMiwgMjM0LCAxMzEsIDY1LCAxNywgMTAsIDI3LCAyMjAsIDYxLCAyLCA2NiwgNjUsIDE3LCAxMCwgCisgICAgMjcsIDIyMSwgMTY4LCAyLCAyNDEsIDIyMCwgNjUsIDE3LCAxMCwgMjcsIDIyMCwgNjEsIDIsIDI0MSwgMjIwLCA2NSwgMTcsIAorICAgIDEwLCAyNywgMjE3LCA4MiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMjEsIDE2OCwgMiwgMTUxLCAxNDcsIDE3LCAxMCwgCisgICAgMjcsIDIyMSwgMTY4LCAyLCAxMjIsIDE0NywgMTcsIDEwLCAyNywgMjIxLCAxNjgsIDIsIDIzNCwgMTMxLCAxNDcsIDE3LCAKKyAgICAxMCwgMjcsIDIyMCwgNjEsIDIsIDE1MSwgMTQ3LCAxNywgMTAsIDI3LCAyMjAsIDYxLCAyLCAxMjIsIDE0NywgMTcsIDEwLCAKKyAgICAyNywgMjIwLCA2MSwgMiwgMjM0LCAxMzEsIDE0NywgMTcsIDEwLCAyNywgMjE3LCA4MiwgMiwgNjYsIDE0NywgMTcsIDEwLCAKKyAgICAyNywgMjEwLCAxMTIsIDIsIDY2LCAxNDcsIDE3LCAxMCwgMjcsIDExMiwgMiwgMjQ0LCAxNjUsIDQwLCAxNywgMTAsIDI3LCAKKyAgICAxMTIsIDIsIDI0NCwgMTY1LCA1MywgMTcsIDIyNiwgMTQ3LCA0MywgMjI2LCA0LCAyMjYsIDE0NywgNDQsIDIyNiwgNCwgMTAsIAorICAgIDI3LCAyMTcsIDksIDIsIDE1MSwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMTcsIDksIDIsIDEyMiwgMiwgMTUxLCA0MCwgCisgICAgMTcsIDEwLCAyNywgMjE3LCA5LCAyLCAxMjIsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDIxNywgOSwgMiwgMTIyLCAyLCAKKyAgICA2NiwgNjUsIDE3LCAxMCwgMjcsIDIxNywgOSwgMiwgMjM0LCAxMzEsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjE3LCA5LCAKKyAgICAyLCA2NiwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjE3LCA5LCAyLCA2NiwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgCisgICAgMjE3LCA5LCAyLCA2NiwgMiwgMjM0LCAxMzEsIDY1LCAxNywgMTAsIDI3LCAxNTEsIDIsIDY2LCAyLCAxMjIsIDQwLCAxNywgCiAgICAgMTAsIDI3LCAxNTEsIDIsIDY2LCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCAxMjIsIDIsIDY2LCAyLCA3OSwgNDAsIDE3LCAKLSAgICAxMCwgMjcsIDEyMiwgMiwgNjYsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgMTIyLCAKLSAgICAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgMTUxLCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCAyMjEsIAotICAgIDE2NywgMiwgMTUxLCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIDY2LCAyLCAxMjIsIAotICAgIDQwLCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgNjYsIDIsIDEyMiwgNjUsIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAyLCA2NiwgCi0gICAgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIDY2LCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAKLSAgICAyLCA2NiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMjIsIDI3LCAyLCAxMjIsIDIsIDEyMiwgNDAsIDE3LCAxMCwgMjcsIAotICAgIDIyMiwgMjcsIDIsIDEyMiwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjIyLCAyNywgMiwgNjYsIDIsIDY2LCA0MCwgMTcsIAotICAgIDEwLCAyNywgMjIwLCA2MCwgMiwgMTIyLCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIDEyMiwgMiwgNjYsIAotICAgIDY1LCAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCAxNTEsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgNjYsIAotICAgIDIsIDIzNCwgMTMwLCA0MCwgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgNjYsIDIsIDIzNCwgMTMwLCA2NSwgMTcsIDEwLCAyNywgCi0gICAgMjIwLCA2MCwgMiwgNjYsIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgNjYsIDIsIDY2LCA2NSwgMTcsIDEwLCAKLSAgICAyNywgMjQ4LCAyMTcsIDIsIDEyMiwgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDI0OCwgMjE3LCAyLCAyMzQsIAotICAgIDEzMCwgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyNDgsIDIxNywgMiwgMjM0LCAxMzAsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgCi0gICAgMjE3LCA4MSwgMiwgNjYsIDIsIDEyMiwgNDAsIDE3LCAxMCwgMjcsIDIxNywgODEsIDIsIDY2LCAyLCAxMjIsIDY1LCAxNywgCi0gICAgMTAsIDI3LCAyMTcsIDgxLCAyLCA2NiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMTcsIDgxLCAyLCA2NiwgMiwgNzksIDQwLCAKLSAgICAxNywgMTAsIDI3LCAyNTQsIDE5NywgMiwgMTUxLCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDI1NCwgMTk3LCAyLCA2NiwgMiwgCi0gICAgNjYsIDQwLCAxNywgMTAsIDI3LCAyNTQsIDE5NywgMiwgNjYsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjU0LCAxOTcsIDIsIAotICAgIDY2LCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjQyLCAyNDUsIDIsIDY2LCAyLCA2NiwgNDAsIDE3LCAxMCwgCi0gICAgMjcsIDI0MiwgMjQ1LCAyLCA2NiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyNDIsIDI0NSwgMiwgNjYsIDIsIDExMiwgMjMxLCAKLSAgICAxOTMsIDQwLCAxNywgMTAsIDI3LCAyNDQsIDE0MywgMiwgMjM0LCAxMzAsIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjQ0LCAKLSAgICAxNDMsIDIsIDIzNCwgMTMwLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyNCwgODIsIDIsIDY2LCAyLCAxMjIsIDQwLCAxNywgCi0gICAgMTAsIDI3LCAyMjQsIDgyLCAyLCA2NiwgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwMywgMiwgMTIyLCAyLCA2NiwgCi0gICAgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxMjIsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIAotICAgIDEyMiwgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxNTEsIDIsIDE1MSwgNjUsIDE3LCAKLSAgICAxMCwgMjcsIDIzMywgMTAzLCAyLCAxNTEsIDIsIDE1MSwgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAyMzQsIDEzMCwgCi0gICAgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwMywgMiwgMjM0LCAxMzAsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjMzLCAKLSAgICAxMDMsIDIsIDY2LCAyLCAxMjIsIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwMywgMiwgNjYsIDIsIDEyMiwgNjUsIDE3LCAxMCwgCisgICAgMTAsIDI3LCAxMjIsIDIsIDY2LCAyLCAxMTIsIDIzMSwgMTk0LCA0MCwgMTcsIDEwLCAyNywgMjIxLCAxNjgsIDIsIDEyMiwgCisgICAgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjIxLCAxNjgsIDIsIDE1MSwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjIxLCAKKyAgICAxNjgsIDIsIDE1MSwgMiwgMTEyLCAyMzEsIDE5NCwgNDAsIDE3LCAxMCwgMjcsIDIyMSwgMTY4LCAyLCA2NiwgMiwgMTIyLCAKKyAgICA0MCwgMTcsIDEwLCAyNywgMjIxLCAxNjgsIDIsIDY2LCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCAyMjEsIDE2OCwgMiwgNjYsIAorICAgIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDIyMSwgMTY4LCAyLCA2NiwgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyMjEsIDE2OCwgCisgICAgMiwgNjYsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjIyLCAyOCwgMiwgMTIyLCAyLCAxMjIsIDQwLCAxNywgMTAsIDI3LCAKKyAgICAyMjIsIDI4LCAyLCAxMjIsIDIsIDEyMiwgNjUsIDE3LCAxMCwgMjcsIDIyMiwgMjgsIDIsIDY2LCAyLCA2NiwgNDAsIDE3LCAKKyAgICAxMCwgMjcsIDIyMCwgNjEsIDIsIDEyMiwgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyMjAsIDYxLCAyLCAxMjIsIDIsIDY2LCAKKyAgICA2NSwgMTcsIDEwLCAyNywgMjIwLCA2MSwgMiwgMTUxLCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDIyMCwgNjEsIDIsIDY2LCAKKyAgICAyLCAyMzQsIDEzMSwgNDAsIDE3LCAxMCwgMjcsIDIyMCwgNjEsIDIsIDY2LCAyLCAyMzQsIDEzMSwgNjUsIDE3LCAxMCwgMjcsIAorICAgIDIyMCwgNjEsIDIsIDY2LCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDIyMCwgNjEsIDIsIDY2LCAyLCA2NiwgNjUsIDE3LCAxMCwgCisgICAgMjcsIDI0OCwgMjE4LCAyLCAxMjIsIDIsIDExMiwgMjMxLCAxOTQsIDQwLCAxNywgMTAsIDI3LCAyNDgsIDIxOCwgMiwgMjM0LCAKKyAgICAxMzEsIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjQ4LCAyMTgsIDIsIDIzNCwgMTMxLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIAorICAgIDIxNywgODIsIDIsIDY2LCAyLCAxMjIsIDQwLCAxNywgMTAsIDI3LCAyMTcsIDgyLCAyLCA2NiwgMiwgMTIyLCA2NSwgMTcsIAorICAgIDEwLCAyNywgMjE3LCA4MiwgMiwgNjYsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjE3LCA4MiwgMiwgNjYsIDIsIDc5LCA0MCwgCisgICAgMTcsIDEwLCAyNywgMjU0LCAxOTgsIDIsIDE1MSwgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyNTQsIDE5OCwgMiwgNjYsIDIsIAorICAgIDY2LCA0MCwgMTcsIDEwLCAyNywgMjU0LCAxOTgsIDIsIDY2LCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDI1NCwgMTk4LCAyLCAKKyAgICA2NiwgMiwgMTEyLCAyMzEsIDE5NCwgNDAsIDE3LCAxMCwgMjcsIDI0MiwgMjQ2LCAyLCA2NiwgMiwgNjYsIDQwLCAxNywgMTAsIAorICAgIDI3LCAyNDIsIDI0NiwgMiwgNjYsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjQyLCAyNDYsIDIsIDY2LCAyLCAxMTIsIDIzMSwgCisgICAgMTk0LCA0MCwgMTcsIDEwLCAyNywgMjQ0LCAxNDQsIDIsIDIzNCwgMTMxLCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDI0NCwgCisgICAgMTQ0LCAyLCAyMzQsIDEzMSwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMjQsIDgzLCAyLCA2NiwgMiwgMTIyLCA0MCwgMTcsIAorICAgIDEwLCAyNywgMjI0LCA4MywgMiwgNjYsIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDQsIDIsIDEyMiwgMiwgNjYsIAorICAgIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwNCwgMiwgMTIyLCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTA0LCAyLCAKKyAgICAxMjIsIDIsIDExMiwgMjMxLCAxOTQsIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwNCwgMiwgMTUxLCAyLCAxNTEsIDY1LCAxNywgCisgICAgMTAsIDI3LCAyMzMsIDEwNCwgMiwgMTUxLCAyLCAxNTEsIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwNCwgMiwgMjM0LCAxMzEsIAorICAgIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDQsIDIsIDIzNCwgMTMxLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIzMywgCisgICAgMTA0LCAyLCA2NiwgMiwgMTIyLCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDQsIDIsIDY2LCAyLCAxMjIsIDY1LCAxNywgMTAsIAogICAgIDI3LCA2NiwgMiwgMTIyLCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCA2NiwgMiwgMTIyLCAyLCA2NiwgNjUsIDE3LCAxMCwgCiAgICAgMjcsIDY2LCAyLCAxMjIsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgNjYsIDIsIDE1MSwgMiwgMTIyLCA2NSwgMTcsIDEwLCAKLSAgICAyNywgNjYsIDIsIDE1MSwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCA2NiwgMiwgMjM0LCAxMzAsIDIsIDE1MSwgNjUsIDE3LCAKLSAgICAxMCwgMjcsIDY2LCAyLCAyMzQsIDEzMCwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCA2NiwgMiwgMTUxLCAyLCAyMzQsIDEzMCwgCi0gICAgNjUsIDE3LCAxMCwgMjcsIDI0MSwgMjE5LCAyLCA2NiwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjQxLCAyMTksIDIsIDY2LCAKLSAgICAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIDIsIDEyMiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMjgsIDYzLCAKLSAgICAyLCAxMjIsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyMjgsIDYzLCAyLCAxNTEsIDIsIDY2LCA0MCwgMTcsIAotICAgIDEwLCAyNywgMjI4LCA2MywgMiwgMTUxLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIDIsIDE1MSwgMiwgMTEyLCAKLSAgICAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIDIsIDY2LCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIAotICAgIDIsIDY2LCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDY2LCAyLCA2NiwgNDAsIDE3LCAxMCwgCi0gICAgMjcsIDc5LCAyLCA2NiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyNTIsIDU1LCAyLCAyMzQsIDEzMCwgMiwgNzksIDQwLCAKLSAgICAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDE1MSwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDE1MSwgMiwgCi0gICAgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDIxNywgOCwgMiwgMjM0LCAxMzAsIDIsIDc5LCA0MCwgMTcsIDEwLCAKLSAgICAyNywgMjE3LCA4LCAyLCAyMzQsIDEzMCwgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDIxNywgOCwgMiwgNjYsIAotICAgIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCA2NiwgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIAotICAgIDE1MSwgMiwgNjYsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMTUxLCAyLCAxMjIsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgCi0gICAgMTAsIDI3LCAxNTEsIDIsIDY2LCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIDIzNCwgCi0gICAgMTMwLCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjIyLCAyNywgMiwgMTIyLCAyLCA3OSwgNDAsIDE3LCAKLSAgICAxMCwgMjcsIDIyMCwgNjAsIDIsIDEyMiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyNDgsIDIxNywgMiwgMTIyLCAyLCA3OSwgCi0gICAgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxNTEsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDY2LCAKKyAgICAyNywgNjYsIDIsIDE1MSwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCA2NiwgMiwgMjM0LCAxMzEsIDIsIDE1MSwgNjUsIDE3LCAKKyAgICAxMCwgMjcsIDY2LCAyLCAyMzQsIDEzMSwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCA2NiwgMiwgMTUxLCAyLCAyMzQsIDEzMSwgCisgICAgNjUsIDE3LCAxMCwgMjcsIDI0MSwgMjIwLCAyLCA2NiwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjQxLCAyMjAsIDIsIDY2LCAKKyAgICAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyOCwgNjQsIDIsIDEyMiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMjgsIDY0LCAKKyAgICAyLCAxMjIsIDIsIDExMiwgMjMxLCAxOTQsIDQwLCAxNywgMTAsIDI3LCAyMjgsIDY0LCAyLCAxNTEsIDIsIDY2LCA0MCwgMTcsIAorICAgIDEwLCAyNywgMjI4LCA2NCwgMiwgMTUxLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyOCwgNjQsIDIsIDE1MSwgMiwgMTEyLCAKKyAgICAyMzEsIDE5NCwgNDAsIDE3LCAxMCwgMjcsIDIyOCwgNjQsIDIsIDY2LCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDIyOCwgNjQsIAorICAgIDIsIDY2LCAyLCAxMTIsIDIzMSwgMTk0LCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDY2LCAyLCA2NiwgNDAsIDE3LCAxMCwgCisgICAgMjcsIDc5LCAyLCA2NiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyNTIsIDU2LCAyLCAyMzQsIDEzMSwgMiwgNzksIDQwLCAKKyAgICAxNywgMTAsIDI3LCAyMTcsIDksIDIsIDE1MSwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyMTcsIDksIDIsIDE1MSwgMiwgCisgICAgMTEyLCAyMzEsIDE5NCwgNDAsIDE3LCAxMCwgMjcsIDIxNywgOSwgMiwgMjM0LCAxMzEsIDIsIDc5LCA0MCwgMTcsIDEwLCAKKyAgICAyNywgMjE3LCA5LCAyLCAyMzQsIDEzMSwgMiwgMTEyLCAyMzEsIDE5NCwgNDAsIDE3LCAxMCwgMjcsIDIxNywgOSwgMiwgNjYsIAorICAgIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjE3LCA5LCAyLCA2NiwgMiwgMTEyLCAyMzEsIDE5NCwgNDAsIDE3LCAxMCwgMjcsIAorICAgIDE1MSwgMiwgNjYsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMTUxLCAyLCAxMjIsIDIsIDExMiwgMjMxLCAxOTQsIDQwLCAxNywgCisgICAgMTAsIDI3LCAxNTEsIDIsIDY2LCAyLCAxMTIsIDIzMSwgMTk0LCA0MCwgMTcsIDEwLCAyNywgMjIxLCAxNjgsIDIsIDIzNCwgCisgICAgMTMxLCAyLCAxMTIsIDIzMSwgMTk0LCA0MCwgMTcsIDEwLCAyNywgMjIyLCAyOCwgMiwgMTIyLCAyLCA3OSwgNDAsIDE3LCAKKyAgICAxMCwgMjcsIDIyMCwgNjEsIDIsIDEyMiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyNDgsIDIxOCwgMiwgMTIyLCAyLCA3OSwgCisgICAgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTA0LCAyLCAxNTEsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDQsIDIsIDY2LCAKICAgICAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDc5LCAyLCAxMjIsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDE1MSwgMiwgCiAgICAgNzksIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgNjYsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgNjYsIDIsIDY2LCAyLCA3OSwgCi0gICAgNDAsIDE3LCAxMCwgMjcsIDIyNCwgODIsIDIsIDY2LCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIDIsIDEyMiwgCi0gICAgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyMjQsIDgyLCAyLCA2NiwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIAotICAgIDIsIDEyMiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyNTQsIDE5NywgMiwgNjYsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgCi0gICAgMjM0LCAyNTEsIDIsIDY2LCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIDIsIDE1MSwgMiwgMTIyLCA2NSwgMTcsIAotICAgIDEwLCAyNywgNjYsIDIsIDIzNCwgMTMwLCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxNTEsIDIsIDY2LCAKLSAgICA2NSwgMTcsIDEwLCAyNywgMjM0LCAyNTEsIDIsIDY2LCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxNTEsIAotICAgIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgMTUxLCAyLCAxMjIsIDQwLCAxNywgMTAsIDI3LCAxNTEsIDIsIAorICAgIDQwLCAxNywgMTAsIDI3LCAyMjQsIDgzLCAyLCA2NiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyMjgsIDY0LCAyLCAxMjIsIAorICAgIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjI0LCA4MywgMiwgNjYsIDIsIDEyMiwgNjUsIDE3LCAxMCwgMjcsIDIzMywgMTA0LCAKKyAgICAyLCAxMjIsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjU0LCAxOTgsIDIsIDY2LCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIAorICAgIDIzNCwgMjUyLCAyLCA2NiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyMjgsIDY0LCAyLCAxNTEsIDIsIDEyMiwgNjUsIDE3LCAKKyAgICAxMCwgMjcsIDY2LCAyLCAyMzQsIDEzMSwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwNCwgMiwgMTUxLCAyLCA2NiwgCisgICAgNjUsIDE3LCAxMCwgMjcsIDIzNCwgMjUyLCAyLCA2NiwgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwNCwgMiwgMTUxLCAKKyAgICAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDIyOCwgNjQsIDIsIDE1MSwgMiwgMTIyLCA0MCwgMTcsIDEwLCAyNywgMTUxLCAyLCAKICAgICAxMjIsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMTIyLCAyLCAxNTEsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgNjYsIDIsIAotICAgIDE1MSwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyNDQsIDE0MywgMiwgNjYsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjUyLCAKLSAgICA1NSwgMiwgMTIyLCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDIzNCwgMjUxLCAyLCA2NiwgMiwgNjYsIDY1LCAxNywgMTAsIAotICAgIDI3LCAyNTQsIDE5NywgMiwgMTUxLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyMiwgMjcsIDIsIDY2LCAyLCA2NiwgNjUsIAotICAgIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAyLCAyMzQsIDEzMCwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyMjgsIDYzLCAyLCAKLSAgICAxNTEsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjIyLCA0LCAyMTQsIDEyOCwgMjUzLCAyMzgsIDIzNCwgNCwgMjE4LCAxMzAsIAotICAgIDUsIDUzLCAxNywgMTAsIDI3LCAyMjQsIDc4LCAyMTQsIDEyOCwgMjUzLCAyMzgsIDIzNCwgNCwgMjE4LCAxMzAsIDUsIDUzLCAKLSAgICAxNywgMTAsIDI3LCAyNTQsIDE1MywgNTMsIDE3LCAxMCwgMjcsIDI1NCwgMTgzLCA1MywgMTcsIDEwLCAyNywgMjMwLCAxNTMsIAotICAgIDUzLCAxNywgMTAsIDI3LCAyMjIsIDUsIDUzLCAxNywgMTAsIDI3LCAyMjMsIDE0MywgNTMsIDE3LCAxMCwgMjcsIDI1NCwgCi0gICAgMTcyLCA1MywgMTcsIDEwLCAyNywgMjEyLCA0OSwgNTMsIDE3LCAxMCwgMjcsIDIyMiwgNCwgNTMsIDE3LCAxMCwgMjcsIAotICAgIDIyMiwgMywgMjU0LCAxNzIsIDIxMiwgNDgsIDEwLCAyNywgMjM1LCAxMzQsIDIyMywgMzQsIDUwLCAxMCwgMjcsIDI1MSwgCi0gICAgMjMwLCAyNTQsIDM5LCAyNTQsIDQwLCA0NSwgMjIxLCAxNTYsIDQ1LCAyMjEsIDQ1LCA0NSwgMjIwLCAyMzMsIDQ1LCAyMjAsIAotICAgIDIyMiwgNDUsIDIyMCwgMjExLCA0NSwgMjIwLCAyMDAsIDQ1LCAyMjAsIDE4OSwgNDUsIDIyMCwgMTc4LCA0NSwgMjIwLCAKLSAgICAxNjcsIDQ1LCAyMjEsIDE1NSwgNDUsIDIyMSwgMTQ0LCA0NSwgMjIxLCAxMzMsIDQ1LCAyMjEsIDEyMiwgNDUsIDIyMSwgCi0gICAgMTExLCA0NSwgMjIxLCAxMDAsIDQ1LCAyMjEsIDg5LCAyMjQsIDE5NCwgMjQ0LCAyMCwgMzEsIDY3LCAyNDksIDIxOSwgMjI0LCAKLSAgICAxOTQsIDI0NCwgMjAsIDMxLCA2NywgMTA5LCAyNDksIDIxOSwgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgMTA5LCAyNDMsIAotICAgIDIyOSwgMjE4LCAxMjksIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDI0OSwgMjI2LCAyMjQsIDE5NCwgMjQ0LCAyMCwgCi0gICAgMzEsIDY3LCAyMjAsIDE1MCwgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgMjQ1LCAzMSwgNzgsIDIyNCwgMTk0LCAyNDQsIAotICAgIDIwLCAzMSwgNjcsIDIyNCwgMTMsIDc4LCAyMjQsIDE5NCwgMjQ0LCAyMCwgMzEsIDY3LCA0MywgNzEsIDIzMywgMjAsIDEyNywgCi0gICAgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgNDQsIDcxLCAyMzMsIDIwLCAyNTEsIDE1NiwgMjI0LCAxOTQsIDI0NCwgMjAsIAotICAgIDMxLCA2NywgMjAzLCAyNDUsIDE2MywgMzgsIDI3LCA0MywgMjQyLCAyNywgMzgsIDI3LCA0NCwgMjQyLCAyNywgMzgsIDUyLCAKLSAgICAyMTYsIDg5LCA0MywgMjQyLCAyNywgMzgsIDUyLCAyMTYsIDg5LCA0NCwgMjQyLCAyNywgMzgsIDIzMSwgMjMzLCA0MywgCi0gICAgMjQyLCAyNywgMzgsIDIzMSwgMjMzLCA0NCwgMjQyLCAyNywgMzgsIDI0OSwgMTk3LCAyMzEsIDIzMiwgMjI0LCAxOTQsIAotICAgIDI0NCwgMjAsIDMxLCA2NywgMTEzLCA1OSwgMjMzLCA1NiwgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgMjQ1LCAxNjAsIAotICAgIDI0OCwgMTU2LCAyMjQsIDE5NCwgMjQ0LCAyMCwgMzEsIDY3LCAyNDUsIDE1MSwgMjQ4LCAxNTYsIDIyNCwgMTk0LCAyNDQsIAotICAgIDIwLCAzMSwgNjcsIDEyMSwgMjMyLCAyMTMsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDIxMiwgMzIsIDEyMSwgMjMyLCAKLSAgICAyMTMsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDQzLCAyMjYsIDMsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIAotICAgIDQ0LCAyMjYsIDMsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDQzLCAyNDksIDk5LCAxMjcsIDIyNCwgMTk0LCAyNDQsIAotICAgIDIwLCAzMSwgNjcsIDQ0LCAyNDksIDk5LCAxMjcsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDQzLCAyMTYsIDYsIDIyMCwgCi0gICAgNTMsIDEyNywgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgNDQsIDIxNiwgNiwgMjIwLCA1MywgMTI3LCAyMjQsIDE5NCwgCi0gICAgMjQ0LCAyMCwgMzEsIDY3LCA0MywgODUsIDIzMywgMjAsIDEyNywgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgNDQsIDg1LCAKLSAgICAyMzMsIDIwLCAxMjcsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDQzLCA1MiwgMjU0LCAxMTAsIDEyNywgMjI0LCAxOTQsIAotICAgIDI0NCwgMjAsIDMxLCA2NywgNDQsIDUyLCAyNTQsIDExMCwgMTI3LCAyMjQsIDE5NCwgMjQ0LCAyMCwgMzEsIDY3LCA0MywgCi0gICAgMjU0LCAxMTAsIDEyNywgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgNDQsIDI1NCwgMTEwLCAxMjcsIDIyNCwgMTk0LCAKLSAgICAyNDQsIDIwLCAzMSwgNjcsIDQzLCAyNDksIDE2MSwgMTI3LCAyMjQsIDE5NCwgMjQ0LCAyMCwgMzEsIDY3LCA0NCwgMjQ5LCAKLSAgICAxNjEsIDEyNywgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgNDMsIDcxLCAyNDksIDE2MSwgMTI3LCAyMjQsIDE5NCwgCi0gICAgMjQ0LCAyMCwgMzEsIDY3LCA0NCwgNzEsIDI0OSwgMTYxLCAxMjcsIDIyMCwgMTMxLCAyNDcsIDEyMCwgNzEsIDIyMCwgMTMxLCAKLSAgICAyNDcsIDEyMCwgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgNDMsIDQyLCAxMjcsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgCi0gICAgNjcsIDQ0LCA0MiwgMTI3LCAyNDgsIDE1NSwgMjI2LCAxMTksIDI1MCwgMTcyLCAyMjYsIDExOSwgMjEyLCAzMiwgMjI2LCAKLSAgICAxMTksIDUyLCAyMTIsIDMyLCAyMjYsIDExOSwgMjQ4LCAxNTUsIDEyMSwgMjMyLCAyMTMsIDI1MCwgMTcyLCAxMjEsIDIzMiwgCi0gICAgMjEzLCAyMTIsIDMyLCAxMjEsIDIzMiwgMjEzLCA0LCAyNDksIDIxOSwgNCwgMTA5LCAyNDksIDIxOSwgNCwgMjQzLCAyMjksIAotICAgIDIxOCwgMTI5LCA0LCAyMjAsIDE1MCwgNCwgMjQ5LCAyMjYsIDQsIDIyNCwgMTMsIDc4LCA0LCAyNDUsIDMxLCA3OCwgNCwgCi0gICAgMjQ1LCAxNjAsIDI0OCwgMTU2LCA0LCA0MywgMjI2LCAzLCA0LCA0NCwgMjI2LCAzLCA0LCA0MywgMjQ5LCA5OSwgMTI3LCA0LCAKLSAgICA0NCwgMjQ5LCA5OSwgMTI3LCA0LCA0MywgMjE2LCA2LCAyMjAsIDUzLCAxMjcsIDQsIDQ0LCAyMTYsIDYsIDIyMCwgNTMsIAotICAgIDEyNywgNCwgNTQsIDUwLCA0LCAyNTQsIDEyNiwgNCwgMjUzLCAyMTYsIDQsIDk2LCA1MCwgNCwgMjQwLCAxNjcsIDQsIDIzMywgCi0gICAgMTUsIDUwLCA0LCAyNDIsIDEzMCwgNTAsIDQsIDI0NSwgOTgsIDUwLCA0LCAyMjMsIDUwLCAyMTksIDQ2LCA0LCAyNDcsIAotICAgIDEzMiwgNTAsIDQsIDIyNSwgMTgyLCA1MCwgNCwgMjQ5LCAyMTcsIDI1MywgMjA2LCAxMCwgMjQ0LCAxNjQsIDUzLCAxNywgCi0gICAgMTAsIDIxNywgNDQsIDIsIDI0NCwgMTY0LCA0OCwgMTAsIDI0OCwgMTgzLCA1MywgMTcsIDEwLCAyMTcsIDc4LCAyNDQsIDEsIAotICAgIDEwLCAyMzQsIDIwNCwgNTMsIDE3LCAxMCwgMjQ0LCAxNjYsIDUzLCAxNywgMTAsIDI0NCwgMTY2LCAxNDcsIDE3LCAxMCwgCi0gICAgMjQ4LCAxODUsIDUzLCAxNywgMTAsIDI0OCwgMTg1LCAxNDcsIDE3LCAxMCwgMjM0LCAyMDYsIDUzLCAxNywgMTAsIDIzNCwgCi0gICAgMjA2LCAxNDcsIDE3LCAxMCwgMjIwLCA5NCwgNTMsIDE3LCAxMCwgMjIwLCA5NCwgMTQ3LCAxNywgMTAsIDIxOCwgNDYsIDUzLCAKLSAgICAxNywgMTAsIDIxOCwgNDYsIDE0NywgMTcsIDEwLCAxLCAyMDIsIDUzLCAxNywgMTAsIDEsIDExMiwgMiwgMjMxLCAyMjgsIAotICAgIDc3LCA1MywgMTcsIDEwLCAxLCAxMTIsIDIsIDIzMSwgMjI4LCA3NywgNDAsIDE3LCAxMCwgMSwgMTEyLCAyLCAyMDIsIDc3LCAKLSAgICA1MywgMTcsIDEwLCAxLCAxMTIsIDIsIDIwMiwgNzcsIDQwLCAxNywgMTAsIDEsIDIxMiwgMzEsIDIsIDIwMiwgNzcsIDUzLCAKLSAgICAxNywgMTAsIDEsIDIxMiwgMzEsIDIsIDIwMiwgNzcsIDQwLCAxNywgMTAsIDEsIDExMiwgMiwgMjAyLCAyNTIsIDQzLCA1MywgCi0gICAgMTcsIDEwLCAxLCAxMTIsIDIsIDIwMiwgMjUyLCA0MywgNDAsIDE3LCAxMCwgMSwgNzksIDIsIDIwMiwgNzcsIDUzLCAxNywgCi0gICAgMTAsIDEsIDc5LCAyLCAyMDIsIDc3LCA0MCwgMTcsIDEwLCAxLCA3OSwgMiwgMjAyLCA3NywgNjUsIDE3LCAxMCwgMSwgNzksIAotICAgIDIsIDIwMiwgNzcsIDE0NywgMTcsIDEwLCAxLCAxMTIsIDUzLCAxNywgMTAsIDEsIDExMiwgNDAsIDE3LCAxMCwgMSwgMjUyLCAKLSAgICA1NSwgNTMsIDE3LCAxMCwgMSwgMjUyLCA1NSwgNDAsIDE3LCAxMCwgMSwgMjUyLCA1NSwgNjUsIDE3LCAxMCwgMSwgMjUyLCAKLSAgICA1NSwgMTQ3LCAxNywgMTAsIDEsIDIxNywgOCwgMjMxLCAxNjUsIDUzLCAxNywgMTAsIDEsIDIxNywgOCwgMjMxLCAxNjUsIAotICAgIDQwLCAxNywgMTAsIDEsIDIxNywgOCwgNTMsIDE3LCAxMCwgMSwgMjE3LCA4LCA0MCwgMTcsIDEwLCAxLCAyMTcsIDgsIDY1LCAKLSAgICAxNywgMTAsIDEsIDIxNywgOCwgMTQ3LCAxNywgMTAsIDEsIDIxNiwgMTkzLCA1MywgMTcsIDEwLCAxLCAyMTYsIDE5MywgNDAsIAotICAgIDE3LCAxMCwgMSwgMjE2LCAxOTMsIDY1LCAxNywgMTAsIDEsIDIxNiwgMTkzLCAxNDcsIDE3LCAxMCwgMSwgMTUxLCA1MywgCi0gICAgMTcsIDEwLCAxLCAxNTEsIDQwLCAxNywgMTAsIDEsIDE1MSwgNjUsIDE3LCAxMCwgMSwgMTUxLCAxNDcsIDE3LCAxMCwgMSwgCi0gICAgMTIyLCA1MywgMTcsIDEwLCAxLCAxMjIsIDQwLCAxNywgMTAsIDEsIDEyMiwgNjUsIDE3LCAxMCwgMSwgMTIyLCAxNDcsIDE3LCAKLSAgICAxMCwgMSwgMjM0LCAxMzAsIDUzLCAxNywgMTAsIDEsIDIzNCwgMTMwLCA0MCwgMTcsIDEwLCAxLCAyMzQsIDEzMCwgNjUsIAotICAgIDE3LCAxMCwgMSwgMjM0LCAxMzAsIDE0NywgMTcsIDEwLCAxLCAyNDgsIDE5NiwgNTMsIDE3LCAxMCwgMSwgMjQ4LCAxOTYsIAotICAgIDQwLCAxNywgMTAsIDEsIDIxNiwgMjAzLCA1MywgMTcsIDEwLCAxLCAyMTYsIDIwMywgNDAsIDE3LCAxMCwgMSwgMjIzLCA5NiwgCi0gICAgNTMsIDE3LCAxMCwgMSwgMjIzLCA5NiwgNDAsIDE3LCAxMCwgMSwgMjEwLCAxMDksIDUzLCAxNywgMTAsIDEsIDIxMCwgMTA5LCAKLSAgICA0MCwgMTcsIDEwLCAxLCAyMjEsIDE2NywgNTMsIDE3LCAxMCwgMSwgMjIxLCAxNjcsIDQwLCAxNywgMTAsIDEsIDIyMSwgCi0gICAgMTY3LCA2NSwgMTcsIDEwLCAxLCAyMjEsIDE2NywgMTQ3LCAxNywgMTAsIDEsIDIyMCwgNjAsIDUzLCAxNywgMTAsIDEsIAotICAgIDIyMCwgNjAsIDQwLCAxNywgMTAsIDEsIDIyMCwgNjAsIDY1LCAxNywgMTAsIDEsIDIyMCwgNjAsIDE0NywgMTcsIDEwLCAxLCAKLSAgICAyMjIsIDI3LCA1MywgMTcsIDEwLCAxLCAyMjIsIDI3LCA0MCwgMTcsIDEwLCAxLCAyMjIsIDI3LCA2NSwgMTcsIDEwLCAxLCAKLSAgICAyMjIsIDI3LCAxNDcsIDE3LCAxMCwgMSwgMjQ4LCAyMTcsIDUzLCAxNywgMTAsIDEsIDI0OCwgMjE3LCA0MCwgMTcsIDEwLCAKLSAgICAxLCAyNDgsIDIxNywgNjUsIDE3LCAxMCwgMSwgMjQ4LCAyMTcsIDE0NywgMTcsIDEwLCAxLCAyMTcsIDgxLCA1MywgMTcsIAotICAgIDEwLCAxLCAyMTcsIDgxLCA0MCwgMTcsIDEwLCAxLCAyMTcsIDgxLCA2NSwgMTcsIDEwLCAxLCAyMTcsIDgxLCAxNDcsIDE3LCAKLSAgICAxMCwgMSwgMjEwLCAxMTIsIDUzLCAxNywgMTAsIDEsIDIxMCwgMTEyLCA0MCwgMTcsIDEwLCAxLCAyMTAsIDExMiwgNjUsIAotICAgIDE3LCAxMCwgMSwgMjEwLCAxMTIsIDE0NywgMTcsIDEwLCAxLCAyNTQsIDE5NywgNTMsIDE3LCAxMCwgMSwgMjU0LCAxOTcsIAotICAgIDQwLCAxNywgMTAsIDEsIDI1NCwgMTk3LCA2NSwgMTcsIDEwLCAxLCAyNTQsIDE5NywgMTQ3LCAxNywgMTAsIDEsIDI0MiwgCi0gICAgMjQ1LCA1MywgMTcsIDEwLCAxLCAyNDIsIDI0NSwgNDAsIDE3LCAxMCwgMSwgMjQyLCAyNDUsIDY1LCAxNywgMTAsIDEsIAotICAgIDI0MiwgMjQ1LCAxNDcsIDE3LCAxMCwgMSwgMjQ0LCAxNDMsIDUzLCAxNywgMTAsIDEsIDI0NCwgMTQzLCA0MCwgMTcsIDEwLCAKLSAgICAxLCAyNDQsIDE0MywgNjUsIDE3LCAxMCwgMSwgMjQ0LCAxNDMsIDE0NywgMTcsIDEwLCAxLCAyMjQsIDgyLCA1MywgMTcsIAotICAgIDEwLCAxLCAyMjQsIDgyLCA0MCwgMTcsIDEwLCAxLCAyMjQsIDgyLCA2NSwgMTcsIDEwLCAxLCAyMjQsIDgyLCAxNDcsIDE3LCAKLSAgICAxMCwgMSwgMjM0LCAyNTEsIDUzLCAxNywgMTAsIDEsIDIzNCwgMjUxLCA0MCwgMTcsIDEwLCAxLCAyMzQsIDI1MSwgNjUsIAotICAgIDE3LCAxMCwgMSwgMjM0LCAyNTEsIDE0NywgMTcsIDEwLCAxLCAyMzMsIDEwMywgNTMsIDE3LCAxMCwgMSwgMjMzLCAxMDMsIAotICAgIDQwLCAxNywgMTAsIDEsIDIzMywgMTAzLCA2NSwgMTcsIDEwLCAxLCAyMzMsIDEwMywgMTQ3LCAxNywgMTAsIDEsIDY2LCA1MywgCi0gICAgMTcsIDEwLCAxLCA2NiwgNDAsIDE3LCAxMCwgMSwgNjYsIDY1LCAxNywgMTAsIDEsIDY2LCAxNDcsIDE3LCAxMCwgMSwgMjI4LCAKLSAgICA2MywgNTMsIDE3LCAxMCwgMSwgMjI4LCA2MywgNDAsIDE3LCAxMCwgMSwgMjI4LCA2MywgNjUsIDE3LCAxMCwgMSwgMjI4LCAKLSAgICA2MywgMTQ3LCAxNywgMTAsIDEsIDI0MSwgMjE5LCA1MywgMTcsIDEwLCAxLCAyNDEsIDIxOSwgNDAsIDE3LCAxMCwgMSwgCi0gICAgMjQxLCAyMTksIDY1LCAxNywgMTAsIDEsIDI0MSwgMjE5LCAxNDcsIDE3LCAxMCwgMSwgMjEyLCAzMSwgNTMsIDE3LCAxMCwgCi0gICAgMSwgMjEyLCAzMSwgNDAsIDE3LCAxMCwgMSwgMTEyLCAyMzEsIDE5MywgNTMsIDE3LCAxMCwgMSwgMTEyLCAyMzEsIDE5MywgCi0gICAgNDAsIDE3LCAxMCwgMSwgNzksIDUzLCAxNywgMTAsIDEsIDc5LCA0MCwgMTcsIDEwLCAxLCA3OSwgNjUsIDE3LCAxMCwgMSwgCi0gICAgNzksIDE0NywgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDExMiwgMiwgMjMxLCAyMjgsIDc3LCA1MywgMTcsIDEwLCAyNywgCi0gICAgMjMzLCAxMDMsIDIsIDExMiwgMiwgMjMxLCAyMjgsIDc3LCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDExMiwgMiwgCi0gICAgMjAyLCA3NywgNTMsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxMTIsIDIsIDIwMiwgNzcsIDQwLCAxNywgMTAsIDI3LCAKLSAgICAyMzMsIDEwMywgMiwgMTEyLCAyLCAyMDIsIDI1MiwgNDMsIDUzLCAxNywgMTAsIDI3LCAyMzMsIDEwMywgMiwgMTEyLCAyLCAKLSAgICAyMDIsIDI1MiwgNDMsIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwMywgMiwgMTEyLCA1MywgMTcsIDEwLCAyNywgMjMzLCAxMDMsIAotICAgIDIsIDExMiwgNDAsIDE3LCAyMTAsIDg3LCAyMTEsIDI0NSwgMjI4LCA3MywgMjE5LCAxOCwgMTI2LCAyNDUsIDMxLCA3OCwgCi0gICAgMTI2LCAyMjMsIDI1NCwgNzgsIDEyNiwgNTQsIDUwLCAxMjYsIDI0NywgMTMyLCA1MCwgMTI2LCAyMjUsIDE4MiwgNTAsIAotICAgIDEyNiwgMjU0LCAxMjYsIDEyNiwgMjU0LCA1NywgMTI2LCA0MywgMjI2LCAzLCAxMjYsIDQ0LCAyMjYsIDMsIDEyNiwgMjUzLCAKLSAgICAyMTYsIDEyNiwgOTYsIDUwLCAxMjYsIDI0OSwgMjE5LCAxMjYsIDI0MCwgMTY3LCAxMjYsIDI0MywgMjI5LCAyMTgsIDEyOSwgCi0gICAgMTI2LCAyMTksIDQ2LCAxMjYsIDIxLCAyMTAsIDg2LCAxMjYsIDIxLCAxMTAsIDEyNiwgMjEsIDEwNSwgMTI2LCAyMSwgMTU4LCAKLSAgICAxMjYsIDIxLCAxNjEsIDEyNiwgMjEsIDE4OSwgMTI2LCAyMSwgMTk0LCAxMjYsIDIxLCAxOTgsIDEyNiwgMjEsIDE5NSwgCi0gICAgMTI2LCAyMSwgMjAwLCAxMjYsIDI0OSwgMjI2LCAxMjYsIDIyMCwgMTUwLCAxMjYsIDIzMywgMTUsIDUwLCAxMjYsIDI0NSwgCi0gICAgOTgsIDUwLCAxMjYsIDI0MiwgMTMwLCA1MCwgMTI2LCAyMjQsIDEzLCA3OCwgMTI2LCAyNDksIDIxNywgMjUzLCAyMDYsIAotICAgIDEyNiwgNywgNiwgMSwgNjEsIDEyNiwgNywgNiwgMSwgMjUzLCAxNTgsIDEyNiwgNywgNiwgMSwgMjUxLCA2NiwgMTI2LCA3LCAKLSAgICA2LCAxLCAyNDksIDYwLCAxMjYsIDcsIDYsIDEsIDc1LCAxMjYsIDcsIDYsIDEsIDI0NSwgNiwgMTI2LCA3LCA2LCAxLCAyNDMsIAotICAgIDIwMiwgMTI2LCA3LCA2LCAxLCAyNDIsIDYwLCAxMjYsIDcsIDYsIDEsIDczLCAxMjYsIDcsIDYsIDEsIDIzNSwgMTQ0LCAKLSAgICAxMjYsIDcsIDYsIDEsIDIzNSwgMjMsIDEyNiwgNywgNiwgMSwgMTU2LCAxMjYsIDcsIDYsIDEsIDE5MywgMTI2LCA3LCA2LCAKLSAgICAxLCAyMzAsIDI1LCAxMjYsIDcsIDYsIDEsIDc2LCAxMjYsIDcsIDYsIDEsIDIyNiwgMTA1LCAxMjYsIDcsIDYsIDEsIDIyNCwgCi0gICAgOTYsIDEyNiwgNywgNiwgMSwgMTUzLCAxMjYsIDcsIDYsIDEsIDIyMiwgOTEsIDEyNiwgNywgNiwgMSwgMjE3LCAxNTIsIAotICAgIDEyNiwgNywgNiwgMSwgNzAsIDEyNiwgNywgNiwgMSwgMjE0LCAxMDUsIDEyNiwgNywgNiwgMSwgMjEyLCA5OCwgMTI2LCA3LCAKLSAgICA2LCAxLCAyMTEsIDE3OCwgMTI2LCA3LCA2LCAxLCAyMTEsIDExNywgMTI2LCA3LCA2LCAxLCAyMTAsIDE1OSwgMTI2LCA0MywgCi0gICAgNDIsIDEyNywgMTI2LCAyMjMsIDUwLCAyMTksIDQ2LCAxMjYsIDQ0LCA0MiwgMTI3LCAxMjYsIDI1MCwgMzEsIDI1NSwgMTQsIAotICAgIDEyNiwgMTIxLCAyMzIsIDIxMywgMTI2LCAyNDIsIDEzNywgMjU1LCAxNCwgMTI2LCA3LCA0LCAxLCA2MSwgMTI2LCA3LCA0LCAKLSAgICAxLCAyNTMsIDE1OCwgMTI2LCA3LCA0LCAxLCAyNTEsIDY2LCAxMjYsIDcsIDQsIDEsIDI0OSwgNjAsIDEyNiwgNywgNCwgMSwgCi0gICAgNzUsIDEyNiwgNywgNCwgMSwgMjQ1LCA2LCAxMjYsIDcsIDQsIDEsIDI0MywgMjAyLCAxMjYsIDcsIDQsIDEsIDI0MiwgNjAsIAotICAgIDEyNiwgNywgNCwgMSwgNzMsIDEyNiwgNywgNCwgMSwgMjM1LCAxNDQsIDEyNiwgNywgNCwgMSwgMjM1LCAyMywgMTI2LCA3LCAKLSAgICA0LCAxLCAxNTYsIDEyNiwgNywgNCwgMSwgMTkzLCAxMjYsIDcsIDQsIDEsIDIzMCwgMjUsIDEyNiwgNywgNCwgMSwgNzYsIAotICAgIDEyNiwgNywgNCwgMSwgMjI2LCAxMDUsIDEyNiwgNywgNCwgMSwgMjI0LCA5NiwgMTI2LCA3LCA0LCAxLCAxNTMsIDEyNiwgNywgCi0gICAgNCwgMSwgMjIyLCA5MSwgMTI2LCA3LCA0LCAxLCAyMTcsIDE1MiwgMTI2LCA3LCA0LCAxLCA3MCwgMTI2LCA3LCA0LCAxLCAKLSAgICAyMTQsIDEwNSwgMTI2LCA3LCA0LCAxLCAyMTIsIDk4LCAxMjYsIDcsIDQsIDEsIDIxMSwgMTc4LCAxMjYsIDcsIDQsIDEsIAotICAgIDIxMSwgMTE3LCAxMjYsIDcsIDQsIDEsIDIxMCwgMTU5LCAxMjYsIDQzLCAyNDksIDk5LCAxMjcsIDEyNiwgNjcsIDIzMiwgCi0gICAgMjEzLCAxMjYsIDQ0LCAyNDksIDk5LCAxMjcsIDEyNiwgMTgyLCAxMjYsIDQzLCA3MSwgMjI2LCAzLCAxMjYsIDQ0LCA3MSwgCi0gICAgMjI2LCAzLCAxMDEsIDEwOSwgMjQzLCAyMjksIDIxOCwgMTI5LCAxMDEsIDQzLCAyNDksIDE2MSwgMTI3LCAxMDEsIDQ0LCAKLSAgICAyNDksIDE2MSwgMTI3LCAxMDEsIDEwOSwgMjQ5LCAyMTksIDEwMSwgNTYsIDIzMCwgMjI0LCAyNDcsIDEyMCwgMTAxLCA1NiwgCi0gICAgMSwgMjExLCAyMjcsIDEwMSwgNTYsIDEsIDQsIDYxLCAxMDEsIDU2LCAxLCA0LCA3MywgMTAxLCA1NiwgMSwgNCwgNzAsIAotICAgIDEwMSwgNTYsIDEsIDQsIDc1LCAxMDEsIDU2LCAxLCA0LCA3NiwgMTAxLCA1NiwgMSwgNCwgMTkxLCAxMDEsIDU2LCAxLCA0LCAKLSAgICAyMTAsIDIxMiwgMTAxLCA1NiwgMSwgNCwgMjEwLCAyNDQsIDEwMSwgNTYsIDEsIDQsIDIxNSwgMTE4LCAxMDEsIDIzNCwgCi0gICAgMjAxLCAyMjQsIDE3MywgMjE5LCAzMSwgNzgsIDEwMSwgNTYsIDEsIDYxLCAxMDEsIDU2LCAxLCA3MywgMTAxLCA1NiwgMSwgCi0gICAgNzAsIDEwMSwgNTYsIDEsIDc1LCAxMDEsIDU2LCAxLCA3NiwgMTAxLCA1NiwgMSwgMTc2LCAxMDEsIDU2LCAxLCAyMzQsIDkyLCAKLSAgICAxMDEsIDU2LCAxLCAyMzMsIDIxNywgMTAxLCA1NiwgMSwgMjM0LCAxODIsIDEwMSwgNTYsIDEsIDIzNCwgMjgsIDEwMSwgNTYsIAotICAgIDEsIDIwNiwgMTAxLCA1NiwgMSwgMjE5LCAxOTEsIDEwMSwgNTYsIDEsIDIxOCwgODMsIDEwMSwgNTYsIDEsIDIyMSwgMTgxLCAKLSAgICAxMDEsIDU2LCAxLCAyMTksIDU4LCAxMDEsIDU2LCAxLCAyMTcsIDEwNSwgMTAxLCA1NiwgMSwgMjE2LCAxMTcsIDEwMSwgNTYsIAotICAgIDEsIDIxNSwgMTE4LCAxMDEsIDU2LCAxLCAyMTcsIDIyLCAxMDEsIDU2LCAxLCAxMTEsIDEwMSwgNTYsIDEsIDE5NywgMTAxLCAKLSAgICA1NiwgMSwgMjI4LCAyMzMsIDEwMSwgNTYsIDEsIDIyNywgMjM3LCAxMDEsIDU2LCAxLCAyMjksIDEwNywgMTAxLCA1NiwgMSwgCi0gICAgMjI4LCA3NCwgMTAxLCA1NiwgMSwgMTYyLCAxMDEsIDU2LCAxLCAyNDEsIDE4MCwgMTAxLCA1NiwgMSwgMjQwLCAyMjIsIAotICAgIDEwMSwgNTYsIDEsIDI0MSwgMjM4LCAxMDEsIDU2LCAxLCAyNDEsIDY4LCAxMDEsIDU2LCAxLCAxODQsIDEwMSwgNTYsIDEsIAotICAgIDIzMCwgMjMwLCAxMDEsIDU2LCAxLCAyMzAsIDEwMiwgMTAxLCA1NiwgMSwgMjMxLCA5MSwgMTAxLCA1NiwgMSwgMjMwLCAKLSAgICAxNjEsIDEwMSwgNTYsIDEsIDE5MSwgMTAxLCA1NiwgMSwgMjEwLCAyMTIsIDEwMSwgNTYsIDEsIDIxMCwgMjQ0LCAxMDEsIAotICAgIDU2LCAxLCAyMDUsIDEwMSwgNTYsIDEsIDIyMywgMzUsIDEwMSwgNTYsIDEsIDIyMiwgMTQwLCAxMDEsIDU2LCAxLCAyMjMsIAotICAgIDEyOCwgMTAxLCA1NiwgMSwgMjIyLCAyMTEsIDEwMSwgNTYsIDEsIDIxMiwgNjUsIDEwMSwgNTYsIDEsIDIzMCwgMjUsIDEwMSwgCi0gICAgNTYsIDIxMywgMTM1LCAyMTksIDMxLCA3OCwgMTAxLCA1NiwgMjIwLCAxNTUsIDIxOSwgMzEsIDc4LCAxMDEsIDI0LCAyNDQsIAotICAgIDEwMywgMTAxLCAyNCwgMSwgMjM0LCA1OCwgMTAxLCAyNCwgMSwgMjE4LCAyMTUsIDEwMSwgMjQsIDEsIDIzNCwgNTEsIDEwMSwgCi0gICAgMjQsIDEsIDIyOCwgMjI2LCAxMDEsIDI0LCAxLCAyMjgsIDIyNCwgMTAxLCAyNCwgMSwgMjI4LCAyMjMsIDEwMSwgMjQsIDEsIAotICAgIDIxNiwgMTAxLCAxMDEsIDI0LCAxLCAyMTgsIDIwNCwgMTAxLCAyNCwgMSwgMjIzLCAyNiwgMTAxLCAyNCwgMSwgMjIzLCAyMSwgCi0gICAgMTAxLCAyNCwgMSwgMjIzLCAxOCwgMTAxLCAyNCwgMSwgMjIzLCAxMSwgMTAxLCAyNCwgMSwgMjIzLCA2LCAxMDEsIDI0LCAxLCAKLSAgICAyMjMsIDEsIDEwMSwgMjQsIDEsIDIyMywgMTIsIDEwMSwgMjQsIDEsIDIyMywgMjQsIDEwMSwgMjQsIDEsIDIzMCwgMjE3LCAKLSAgICAxMDEsIDI0LCAxLCAyMjUsIDk1LCAxMDEsIDI0LCAxLCAyMTgsIDIxMiwgMTAxLCAyNCwgMSwgMjI1LCA4NCwgMTAxLCAyNCwgCi0gICAgMSwgMjE5LCAxNDgsIDEwMSwgMjQsIDEsIDIxOCwgMjA5LCAxMDEsIDI0LCAxLCAyMzYsIDU2LCAxMDEsIDI0LCAxLCAyNTAsIAotICAgIDQ2LCAxMDEsIDI0LCAxLCAyMTgsIDIxOSwgMTAxLCAyNCwgMSwgMjUwLCAxMDYsIDEwMSwgMjQsIDEsIDIzNCwgMTEwLCAKLSAgICAxMDEsIDI0LCAxLCAyMTYsIDE3MywgMTAxLCAyNCwgMSwgMjI1LCAxMzEsIDEwMSwgMjQsIDEsIDI0MSwgMTcyLCAxMDEsIAotICAgIDI0LCAxLCA2MSwgMTAxLCAyNCwgMSwgMjU0LCAyNDMsIDEwMSwgMjQsIDEsIDE5MSwgMTAxLCAyNCwgMSwgMjExLCA5MiwgCi0gICAgMTAxLCAyNCwgMSwgMjQ1LCAxMTcsIDEwMSwgMjQsIDEsIDc1LCAxMDEsIDI0LCAxLCAyMTEsIDM2LCAxMDEsIDI0LCAxLCAKLSAgICAyMTEsIDQ3LCAxMDEsIDI0LCAxLCA3NiwgMTAxLCAyNCwgMSwgMjEyLCA2NSwgMTAxLCAyNCwgMSwgMjEyLCA2MiwgMTAxLCAKLSAgICAyNCwgMSwgMjI2LCAyMzQsIDEwMSwgMjQsIDEsIDIxMCwgMjQ0LCAxMDEsIDI0LCAxLCA3MCwgMTAxLCAyNCwgMSwgMjEyLCAKLSAgICAxMSwgMTAxLCAyNCwgMSwgMjEyLCAyMiwgMTAxLCAyNCwgMSwgMjExLCAyNTAsIDEwMSwgMjQsIDEsIDIxMCwgMjEyLCAxMDEsIAotICAgIDI0LCAxLCAyNDUsIDU1LCAxMDEsIDI0LCAxLCAyMTEsIDgsIDEwMSwgMjQsIDEsIDczLCAxMjYsIDI1MCwgMTc2LCA1MCwgCi0gICAgMTI2LCAyMjQsIDIyOCwgNTAsIDEyNiwgMjI4LCA1MiwgNTAsIDEyNiwgMjMxLCAyMzIsIDEyNiwgMjUxLCAxMzUsIDEzMCwgCi0gICAgMTI2LCAyMTEsIDQwLCA1MCwgMTI2LCAyMTEsIDIxNywgNTAsIDEwMSwgMjQ0LCAxOCwgMTkyLCAyMTMsIDIzOSwgMTAxLCAKLSAgICAxNDAsIDc0LCAxMDEsIDIxNCwgMTUzLCA3NCwgMTAxLCA5NywgNzQsIDEwMSwgMjQ2LCAxMDQsIDc0LCAxMDEsIDg1LCAyMTgsIAotICAgIDIzNCwgMTAxLCA3MSwgMjUwLCAzNSwgMjM1LCAyMDQsIDI1NCwgOTksIDI1NCwgMTIwLCAyMzUsIDIwNCwgMjU0LCA5OSwgCi0gICAgMjIwLCAxMzcsIDIzNSwgMjA0LCAyNTQsIDk5LCAyMTYsIDIzNiwgMjI2LCAyNDksIDIyMywgNzIsIDI1MCwgMTQyLCAyMjMsIAotICAgIDcyLCAyNTAsIDE0MiwgNjIsIDU3LCAzLCAyNTMsIDE0MiwgNjEsIDYyLCA1NywgMywgMjUzLCAxMTEsIDc1LCA2MiwgNTcsIAotICAgIDMsIDI1MywgMTIwLCA3MywgNjIsIDU3LCAzLCAyNTMsIDg4LCA3NiwgNjIsIDU3LCAzLCAyNTMsIDEzOCwgNzAsIDYyLCA1NywgCi0gICAgMywgMjUzLCAxNTcsIDI0OCwgMjIxLCA2MiwgNTcsIDMsIDI1MywgMTA0LCAyNDgsIDkwLCA2MiwgNTcsIDMsIDI1MywgMTQ0LCAKLSAgICAyNDgsIDMsIDYyLCA1NywgMywgMjUzLCAxMzQsIDI0NywgMTQ1LCA2MiwgNTcsIDMsIDI1MywgOTgsIDI0NiwgNzgsIDYyLCAKLSAgICA1NywgMywgMjUzLCA5MiwgMjM1LCAxNDEsIDYyLCA1NywgMywgMjUzLCAxMDMsIDIzNSwgMTI2LCA2MiwgNTcsIDMsIDI1MywgCi0gICAgMTEzLCAyMzUsIDY4LCA2MiwgNTcsIDMsIDI1MywgODQsIDIzNSwgNTEsIDYyLCA1NywgMywgMjUzLCA3MiwgMTc2LCA2MiwgCi0gICAgNTcsIDMsIDI1MywgMTA1LCAyMzQsIDE4MiwgNjIsIDU3LCAzLCAyNTMsIDgyLCAyMzQsIDkyLCA2MiwgNTcsIDMsIDI1MywgCi0gICAgNzksIDIzNCwgMjgsIDYyLCA1NywgMywgMjUzLCA2OCwgMjMzLCAyMTcsIDYyLCA1NywgMywgMjUzLCA2OSwgMTg0LCA2MiwgCi0gICAgNTcsIDMsIDI1MywgMTM1LCAyMzEsIDkxLCA2MiwgNTcsIDMsIDI1MywgNzYsIDIzMCwgMjMwLCA2MiwgNTcsIDMsIDI1MywgCi0gICAgMTMzLCAyMzAsIDE2MSwgNjIsIDU3LCAzLCAyNTMsIDEyNSwgMjMwLCAxMDIsIDYyLCA1NywgMywgMjUzLCAxNDYsIDE5NywgCi0gICAgNjIsIDU3LCAzLCAyNTMsIDEyNCwgMjI5LCAxMDcsIDYyLCA1NywgMywgMjUzLCAxMTgsIDIyOCwgMjMzLCA2MiwgNTcsIDMsIAotICAgIDI1MywgOTcsIDIyOCwgNzQsIDYyLCA1NywgMywgMjUzLCA5NCwgMjI3LCAyMzcsIDYyLCA1NywgMywgMjUzLCAxNTMsIDE5MCwgCi0gICAgNjIsIDU3LCAzLCAyNTMsIDc3LCAyMjUsIDIyMSwgNjIsIDU3LCAzLCAyNTMsIDExMCwgMjI1LCAxMDgsIDYyLCA1NywgMywgCi0gICAgMjUzLCAxMzcsIDIyNSwgMTYsIDYyLCA1NywgMywgMjUzLCA5OSwgMjI0LCAxNTAsIDYyLCA1NywgMywgMjUzLCAxMzIsIAotICAgIDIyNCwgODgsIDYyLCA1NywgMywgMjUzLCA3MSwgMjI0LCA2OSwgNjIsIDU3LCAzLCAyNTMsIDEyNywgMjI0LCA1MywgNjIsIAotICAgIDU3LCAzLCAyNTMsIDExNiwgMjI0LCA0MiwgNjIsIDU3LCAzLCAyNTMsIDg5LCAyMDUsIDYyLCA1NywgMywgMjUzLCAxMjEsIAotICAgIDIyMywgMTI4LCA2MiwgNTcsIDMsIDI1MywgOTYsIDIyMywgMzUsIDYyLCA1NywgMywgMjUzLCAxNTUsIDIyMiwgMjExLCA2MiwgCi0gICAgNTcsIDMsIDI1MywgMTIyLCAyMjIsIDE0MCwgNjIsIDU3LCAzLCAyNTMsIDExNywgMjA2LCA2MiwgNTcsIDMsIDI1MywgMTQwLCAKLSAgICAyMjEsIDE4MSwgNjIsIDU3LCAzLCAyNTMsIDEwOCwgMjE5LCAxOTEsIDYyLCA1NywgMywgMjUzLCAxMzYsIDIxOSwgNTgsIAotICAgIDYyLCA1NywgMywgMjUzLCA5MSwgMjE4LCA4MywgNjIsIDU3LCAzLCAyNTMsIDkwLCAyMTcsIDEwNSwgNjIsIDU3LCAzLCAKLSAgICAyNTMsIDE1MSwgMjE3LCAyMiwgNjIsIDU3LCAzLCAyNTMsIDExMiwgMjE2LCAxMTcsIDYyLCA1NywgMywgMjUzLCAxNDksIAotICAgIDExMSwgNjIsIDU3LCAzLCAyNTMsIDgwLCAyMTUsIDExOCwgNjIsIDU3LCAzLCAyNTMsIDk1LCAyMTIsIDY1LCA2MiwgNTcsIAotICAgIDMsIDI1MywgNzQsIDIxMiwgMjIsIDYyLCA1NywgMywgMjUzLCAxMDksIDIxMSwgMjUwLCA2MiwgNTcsIDMsIDI1MywgMTA3LCAKLSAgICAyMTEsIDIyNywgNjIsIDU3LCAzLCAyNTMsIDEzMSwgMjEwLCAxMTYsIDYyLCA1NywgMywgMjUzLCA3NSwgMjEwLCA5NCwgNjIsIAotICAgIDU3LCAzLCAyNTMsIDEyOCwgMjEwLCAyMywgNjIsIDU3LCAzLCAyNTMsIDEyMywgMjU1LCA3NSwgNjIsIDU3LCAzLCAyNTMsIAotICAgIDEwNiwgMjU1LCA3NCwgNjIsIDU3LCAzLCAyNTMsIDY1LCAyNTMsIDE5MiwgNjIsIDU3LCAzLCAyNTMsIDc4LCAyNDYsIDQ2LCAKLSAgICA2MiwgNTcsIDMsIDI1MywgNjEsIDI0NiwgNDUsIDYyLCA1NywgMywgMjUzLCAxMDEsIDIyNywgMTc0LCA2MiwgNTcsIDMsIAotICAgIDI1MywgMTE5LCAyMjQsIDE0OCwgNjIsIDU3LCAzLCAyNTMsIDg3LCAyMjQsIDE1MiwgNjIsIDU3LCAzLCAyNTMsIDczLCAKLSAgICAyMjMsIDE4NiwgNjIsIDU3LCAzLCAyNTMsIDExNSwgMjIzLCAxODUsIDYyLCA1NywgMywgMjUzLCA4MSwgMjIyLCAyMTAsIAotICAgIDYyLCA1NywgMywgMjUzLCA4MywgMjE3LCAxMDIsIDYyLCA1NywgMywgMjUzLCA2MywgMjE1LCA3OCwgNjIsIDU3LCAzLCAKLSAgICAyNTMsIDYwLCAxMDUsIDYyLCA1NywgMTYsIDI1MywgMTMwLCA2MiwgNTcsIDE2LCAyNTMsIDEyOSwgNjIsIDU3LCAxNiwgCi0gICAgMjUzLCAxMjYsIDYyLCA1NywgMTYsIDI1MywgMTE0LCA2MiwgNTcsIDE2LCAyNTMsIDEwMiwgNjIsIDU3LCAxNiwgMjUzLCAKLSAgICAxMDAsIDYyLCA1NywgMTYsIDI1MywgOTMsIDYyLCA1NywgMTYsIDI1MywgODYsIDYyLCA1NywgMTYsIDI1MywgODUsIDYyLCAKLSAgICA1NywgMTYsIDI1MywgNzAsIDYyLCA1NywgMTYsIDI1MywgNjcsIDYyLCA1NywgMTYsIDI1MywgNjYsIDYyLCA1NywgMTYsIAotICAgIDI1MywgNjQsIDYyLCA1NywgMTYsIDI1MywgNjIsIDYyLCA1NywgMTA2LCAyNTMsIDU5LCAyMzEsIDE4NSwgNjIsIDU3LCAKLSAgICAxMDYsIDI1MywgNTgsIDIxMSwgMjIxLCA2MiwgNTcsIDEwNiwgMjUzLCA1NywgMjQ4LCA3NCwgNjIsIDU3LCAxMDYsIDI1MywgCi0gICAgNTYsIDI0NSwgOTUsIDYyLCA1NywgMTA2LCAyNTMsIDU1LCAyMzEsIDE1OSwgNjIsIDU3LCAxMDYsIDI1MywgNTQsIDIxOCwgCi0gICAgMTYyLCA2MiwgNTcsIDEwNiwgMjUzLCA1MywgMjQ1LCAzNywgNjIsIDU3LCAxMDYsIDI1MywgNTIsIDIyMywgMTUzLCA2MiwgCi0gICAgNTcsIDEwNiwgMjUzLCA1MSwgMjIwLCA2MiwgNjIsIDU3LCAxMDYsIDI1MywgNTAsIDI0MSwgMjM3LCA2MiwgNTcsIDEwNiwgCi0gICAgMjUzLCA0OSwgMjE5LCAyNSwgNjIsIDU3LCAxMDYsIDI1MywgNDgsIDI1MSwgMjAzLCA2MiwgNTcsIDEwNiwgMjUzLCA0NywgCi0gICAgMjQ5LCAxNDUsIDYyLCA1NywgMTA2LCAyNTMsIDQ2LCAyNTEsIDExNSwgNjIsIDU3LCAxMDYsIDI1MywgNDUsIDIxMiwgMiwgCi0gICAgNjIsIDU3LCAxMDYsIDI1MywgNDQsIDI1MiwgMTM2LCA2MiwgNTcsIDEwNiwgMjUzLCA0MywgMjI2LCAyMDUsIDYyLCA1NywgCi0gICAgMTA2LCAyNTMsIDQyLCAyMTgsIDI1NCwgNjIsIDU3LCAxMDYsIDI1MywgNDEsIDI0OSwgNjgsIDYyLCA1NywgMjMwLCAxNDIsIAotICAgIDI1MywgNDAsIDIzNCwgMjI0LCA2MiwgNTcsIDIzMCwgMTQyLCAyNTMsIDM5LCAyMzQsIDIzMiwgNjIsIDU3LCAxMDYsIDI1MywgCi0gICAgMzgsIDIyNiwgMjE4LCA2MiwgNTcsIDEwNiwgMjUzLCAzNywgMjExLCAyMzYsIDYyLCA1NywgMTA2LCAyNTMsIDM2LCA2MiwgCi0gICAgNTcsIDIzMCwgMTQyLCAyNTMsIDM1LCAyNTQsIDE3LCA2MiwgNTcsIDIzMCwgMTQyLCAyNTMsIDM0LCAyMzEsIDUyLCA2MiwgCi0gICAgNTcsIDEwNiwgMjUzLCAzMywgMjUxLCAxMzQsIDYyLCA1NywgMTA2LCAyNTMsIDMyLCAyNDIsIDE2NiwgNjIsIDU3LCAxMDYsIAotICAgIDI1MywgMzEsIDYyLCA1NywgMTA2LCAyNTMsIDMwLCAyMTEsIDIxMiwgNjIsIDU3LCAxMDYsIDI1MywgMjksIDYyLCA1NywgCi0gICAgMTA2LCAyNTMsIDI4LCA2MiwgNTcsIDEwNiwgMjUzLCAyNywgMjQwLCAyNDgsIDYyLCA1NywgMTA2LCAyNTMsIDI2LCA2MiwgCi0gICAgNTcsIDEwNiwgMjUzLCAyNSwgNjIsIDU3LCAxMDYsIDI1MywgMjQsIDYyLCA1NywgMjMwLCAxNDIsIDI1MywgMjIsIDIxNSwgCi0gICAgOTIsIDYyLCA1NywgMTA2LCAyNTMsIDIxLCA2MiwgNTcsIDEwNiwgMjUzLCAyMCwgNjIsIDU3LCAxMDYsIDI1MywgMTksIAotICAgIDI0OSwgMjUwLCA2MiwgNTcsIDEwNiwgMjUzLCAxOCwgNjIsIDU3LCAxMDYsIDI1MywgMTcsIDYyLCA1NywgMTA2LCAyNTMsIAotICAgIDE2LCAyNDMsIDkzLCA2MiwgNTcsIDEwNiwgMjUzLCAxNSwgMjU0LCA0LCA2MiwgNTcsIDEwNiwgMjUzLCAxNCwgNjIsIDU3LCAKLSAgICAxMDYsIDI1MywgMTMsIDYyLCA1NywgMTA2LCAyNTMsIDEyLCA2MiwgNTcsIDEwNiwgMjUzLCAxMSwgNjIsIDU3LCAxMDYsIAotICAgIDI1MywgMTAsIDYyLCA1NywgMTA2LCAyNTMsIDksIDYyLCA1NywgMTA2LCAyNTMsIDgsIDYyLCA1NywgMTA2LCAyNTMsIDcsIAotICAgIDYyLCA1NywgMTA2LCAyNTMsIDYsIDYyLCA1NywgMTA2LCAyNTMsIDUsIDIzMCwgMTM0LCA2MiwgNTcsIDEwNiwgMjUzLCA0LCAKLSAgICA2MiwgNTcsIDEwNiwgMjUzLCAzLCAyMTUsIDIzNSwgNjIsIDU3LCAxMDYsIDI1MywgMiwgNjIsIDU3LCAxMDYsIDI1MywgMSwgCi0gICAgNjIsIDU3LCAxMDYsIDI1MywgMCwgNjIsIDU3LCAxMDYsIDI1MiwgMjU1LCA2MiwgNTcsIDEwNiwgMjUyLCAyNTQsIDYyLCAKLSAgICA1NywgMTA2LCAyNTIsIDI1MywgNjIsIDU3LCAxMDYsIDI1MiwgMjUyLCA2MiwgNTcsIDEwNiwgMjUyLCAyNTEsIDYyLCA1NywgCi0gICAgMTA2LCAyNTIsIDI1MCwgNjIsIDU3LCAxMDYsIDI1MiwgMjQ5LCA2MiwgNTcsIDEwNiwgMjUyLCAyNDgsIDYyLCA1NywgMTA2LCAKLSAgICAyNTIsIDI0NywgMjQxLCAyMTEsIDYyLCA1NywgMTA2LCAyNTIsIDIyNiwgMjQ0LCAyOCwgNjIsIDU3LCAxMDYsIDI1MiwgCi0gICAgMjIzLCAyNTIsIDExNiwgNjIsIDU3LCAxMDYsIDI1MiwgMjE4LCAyMTksIDUsIDYyLCA1NywgMTA2LCAyNTIsIDIxNywgNzQsIAotICAgIDYyLCA1NywgMTA2LCAyNTIsIDIxNiwgNjIsIDU3LCAxMDYsIDI1MiwgMjE1LCAyMTcsIDIzNiwgNjIsIDU3LCAxMDYsIDI1MiwgCi0gICAgMjE0LCA2MiwgNTcsIDEwNiwgMjUyLCAyMTMsIDYyLCA1NywgMTA2LCAyNTIsIDIxMiwgMjExLCAyNTQsIDI1MCwgMTM5LCAKLSAgICA2MiwgNTcsIDEwNiwgMjUyLCAyMTEsIDI1MCwgMTM5LCA2MiwgNTcsIDEwNiwgMjUyLCAyMTAsIDI1MCwgMTQwLCAyNDMsIAotICAgIDI1NSwgNjIsIDU3LCAxMDYsIDI1MiwgMjA5LCAyMTIsIDAsIDYyLCA1NywgMTA2LCAyNTIsIDIwOCwgNjIsIDU3LCAxMDYsIAotICAgIDI1MiwgMjA3LCA2MiwgNTcsIDIzMCwgMTQyLCAyNTIsIDIwNiwgMjQ3LCAxOTgsIDYyLCA1NywgMTA2LCAyNTIsIDIwNSwgCi0gICAgNjIsIDU3LCAxMDYsIDI1MiwgMjA0LCA2MiwgNTcsIDEwNiwgMjUyLCAyMDIsIDYyLCA1NywgMTA2LCAyNTIsIDIwMSwgNjIsIAotICAgIDU3LCAxMDYsIDI1MiwgMjAwLCA2MiwgNTcsIDEwNiwgMjUyLCAxOTksIDI0OCwgMTU5LCA2MiwgNTcsIDEwNiwgMjUyLCAKLSAgICAxOTgsIDYyLCA1NywgMTA2LCAyNTIsIDE5NywgNjIsIDU3LCAxMDYsIDI1MiwgMTk2LCA2MiwgNTcsIDEwNiwgMjUyLCAxOTUsIAotICAgIDYyLCA1NywgMTA2LCAyNTIsIDE5NCwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTMsIDIzLCA2MiwgNTcsIDEwNiwgMjEzLCAKLSAgICAxODYsIDI1MiwgMjQ2LCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjQ1LCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIAotICAgIDI1MiwgMjQ0LCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjQzLCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgCi0gICAgMjQyLCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjQxLCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjQwLCAKLSAgICA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjM5LCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjM4LCA2MiwgNTcsIAotICAgIDEwNiwgMjEzLCAxODYsIDI1MiwgMjM3LCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjM2LCA2MiwgNTcsIDEwNiwgCi0gICAgMjEzLCAxODYsIDI1MiwgMjM1LCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjM0LCA2MiwgNTcsIDEwNiwgMjEzLCAKLSAgICAxODYsIDI1MiwgMjMzLCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjMyLCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIAotICAgIDI1MiwgMjMxLCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjMwLCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgCi0gICAgMjI5LCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjI4LCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjI3LCAKLSAgICA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjI1LCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjI0LCA2MiwgNTcsIAotICAgIDEwNiwgMjEzLCAxODYsIDI1MiwgMjIyLCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjIxLCA2MiwgNTcsIDEwNiwgCi0gICAgMjEzLCAxODYsIDI1MiwgMjIwLCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMjE5LCA2MiwgNTcsIDEwNiwgMjEzLCAKLSAgICAxODYsIDI1MiwgMjAzLCA2MiwgNTcsIDEwNiwgMjEzLCAxODYsIDI1MiwgMTkzLCAyNTQsIDIzNiwgMjExLCAyMDksIDIyMCwgCi0gICAgMTM4LCAyMzIsIDIxMywgMjU0LCAyMzYsIDIxMSwgMjA5LCAyMjAsIDEzOCwgMjQ3LCAxMjAsIDI1NCwgMjM2LCAyNTAsIAotICAgIDEzMCwgNzgsIDI1NCwgMjM2LCA1NCwgMTEwLCAyNTQsIDIzNiwgNTQsIDEwNSwgMjU0LCAyMzYsIDU0LCAxNTgsIDI1NCwgCi0gICAgMjM2LCA1NCwgMTYxLCAyNTQsIDIzNiwgNTQsIDE4OSwgMjU0LCAyMzYsIDU0LCAxOTQsIDI1NCwgMjM2LCA1NCwgMTk4LCAKLSAgICAyNTQsIDIzNiwgNTQsIDE5NSwgMjU0LCAyMzYsIDU0LCAyMDAsIDI1NCwgMjM2LCA1NCwgMjE2LCAyNDcsIDI1NCwgMjM2LCAKLSAgICA1NCwgMjE1LCA3MywgMjU0LCAyMzYsIDU0LCAyMTYsIDE2MiwgMjU0LCAyMzYsIDU0LCAyNDQsIDE1LCAyNTQsIDIzNiwgNTQsIAotICAgIDI0NCwgMTE0LCAyNTQsIDIzNiwgNTQsIDIxOSwgMTExLCAyNTQsIDIzNiwgNTQsIDIyMCwgMTE2LCAyNTQsIDIzNiwgNTQsIAotICAgIDI0NSwgMTg0LCAyNTQsIDIzNiwgNTQsIDIyOCwgMTk1LCAyNTQsIDIzNiwgNTQsIDEyMywgMjQwLCAyMTAsIDI1NCwgMjM2LCAKLSAgICA1NCwgMTEzLCAyNDAsIDIxMCwgMjU0LCAyMzYsIDU0LCAxMzQsIDI0MCwgMjEwLCAyNTQsIDIzNiwgNTQsIDI0NCwgMTEsIAotICAgIDI0MCwgMjEwLCAyNTQsIDIzNiwgNTQsIDI0NCwgODEsIDI0MCwgMjEwLCAyNTQsIDIzNiwgNTQsIDIxOSwgMTI1LCAyNDAsIAotICAgIDIxMCwgMjU0LCAyMzYsIDU0LCAyMjAsIDEyMiwgMjQwLCAyMTAsIDI1NCwgMjM2LCA1NCwgMjQ1LCAxOTMsIDI0MCwgMjEwLCAKLSAgICAyNTQsIDIzNiwgNTQsIDIyOCwgMjAwLCAyNDAsIDIxMCwgMjU0LCAyMzYsIDU0LCAxMjMsIDIxNiwgMTQ3LCAyNTQsIDIzNiwgCi0gICAgNTQsIDExMywgMjE2LCAxNDcsIDI1NCwgMjM2LCA1NCwgMTM0LCAyMTYsIDE0NywgMjU0LCAyMzYsIDU0LCAyNDQsIDExLCAKLSAgICAyMTYsIDE0NywgMjU0LCAyMzYsIDU0LCAyNDQsIDgxLCAyMTYsIDE0NywgMjU0LCAyMzYsIDU0LCAyMTksIDEyNSwgMjE2LCAKLSAgICAxNDcsIDI1NCwgMjM2LCA1NCwgMjIwLCAxMjIsIDIxNiwgMTQ3LCAyNTQsIDIzNiwgNTQsIDI0NSwgMTkzLCAyMTYsIDE0NywgCi0gICAgMjU0LCAyMzYsIDU0LCAyMjgsIDIwMCwgMjE2LCAxNDcsIDI1NCwgMjM2LCA1NCwgMjE2LCAyNDgsIDIxNiwgMTQ3LCAyNTQsIAotICAgIDIzNiwgNTQsIDIxNSwgNzQsIDIxNiwgMTQ3LCAyNTQsIDIzNiwgNTQsIDIxNiwgMTYzLCAyMTYsIDE0NywgMjU0LCAyMzYsIAotICAgIDU0LCAyNDQsIDE2LCAyMTYsIDE0NywgMjU0LCAyMzYsIDU0LCAyNDQsIDExNSwgMjE2LCAxNDcsIDI1NCwgMjM2LCA1NCwgCi0gICAgMjE5LCAxMTIsIDIxNiwgMTQ3LCAyNTQsIDIzNiwgNTQsIDIyMCwgMTE3LCAyMTYsIDE0NywgMjU0LCAyMzYsIDU0LCAyNDUsIAotICAgIDE4NSwgMjE2LCAxNDcsIDI1NCwgMjM2LCA1NCwgMjI4LCAxOTYsIDIxNiwgMTQ3LCAyNTQsIDIzNiwgMjEyLCAxNCwgMjUyLCAKLSAgICAxMjgsIDIxNCwgMTczLCAyNTQsIDIzNiwgMjEyLCAxNCwgMjQ0LCA5MiwgMjE4LCA1OSwgMjU0LCAyMzYsIDIxMiwgMTQsIAotICAgIDIyMSwgMTc2LCAyMTgsIDU5LCAyNTQsIDIzNiwgMjEyLCAxNCwgMjE2LCAxNjksIDIxOCwgNTksIDI1NCwgMjM2LCAyMTIsIAotICAgIDE0LCAyNDQsIDQsIDIxOCwgNTksIDI1NCwgMjM2LCAyNDYsIDgxLCAyMzEsIDkwLCAyNDQsIDkyLCAyMTgsIDU5LCAyNTQsIAotICAgIDIzNiwgMjMyLCAxOTksIDIzMSwgOTAsIDI0NCwgOTIsIDIxOCwgNTksIDI1NCwgMjM2LCAyMzEsIDkwLCAyMjEsIDE3NiwgCi0gICAgMjE4LCA1OSwgMjU0LCAyMzYsIDIzMSwgOTAsIDIxNiwgMTY5LCAyMTgsIDU5LCAyNiwgMjU1LCA2LCAyNTMsIDE5NCwgMTIzLCAKLSAgICAyMjQsIDIxLCAyNiwgMjU1LCA2LCAyNTMsIDE5NCwgMTIzLCAyNDIsIDI3LCAyNiwgMjU1LCA2LCAyNTMsIDE5NCwgMTIzLCAKLSAgICAyNDYsIDEwMCwgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDE4OSwgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDI0NCwgMTE0LCAyNiwgCi0gICAgMjU1LCA2LCAyNTMsIDE5NCwgMjQ0LCA4MSwgMjQwLCAyMTAsIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAyNDQsIDgxLCAyMTYsIAotICAgIDE0NywgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDI0NCwgMTE1LCAyMTYsIDE0NywgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDI0NCwgCi0gICAgODEsIDIxNywgNjcsIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAyMTYsIDI0OCwgMjE3LCA2NywgMjYsIDI1NSwgNiwgMjUzLCAKLSAgICAxOTQsIDI0NCwgMTE1LCAyMTcsIDY3LCAyNiwgMjU1LCA2LCAyNTMsIDE5NCwgMTIzLCAyNDAsIDIxMSwgMjE3LCA2NywgMjYsIAotICAgIDI1NSwgNiwgMjUzLCAxOTQsIDI0NCwgODEsIDI0MCwgMjExLCAyMTcsIDY3LCAyNiwgMjU1LCA2LCAyNTMsIDE5NCwgMTIzLCAKLSAgICAyMTYsIDE0OCwgMjE3LCA2NywgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDI0NCwgODEsIDIxNiwgMTQ4LCAyMTcsIDY3LCAyNiwgCi0gICAgMjU1LCA2LCAyNTMsIDE5NCwgMjQ0LCA4MSwgMjE4LCAxNTAsIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAyMTYsIDI0OCwgMjE4LCAKLSAgICAxNTAsIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAyNDQsIDExNSwgMjE4LCAxNTAsIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAxMjMsIAotICAgIDI0MCwgMjExLCAyMTgsIDE1MCwgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDI0NCwgODEsIDI0MCwgMjExLCAyMTgsIDE1MCwgCi0gICAgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDEyMywgMjE2LCAxNDgsIDIxOCwgMTUwLCAyNiwgMjU1LCA2LCAyNTMsIDE5NCwgMjE2LCAKLSAgICAyNDgsIDIxNiwgMTQ4LCAyMTgsIDE1MCwgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDI0NCwgMTE1LCAyMTYsIDE0OCwgMjE4LCAKLSAgICAxNTAsIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAyMTYsIDI0OCwgMjMwLCAxNjQsIDI2LCAyNTUsIDYsIDI0MSwgMjA1LCAxMjMsIAotICAgIDIyNSwgMzEsIDI2LCAyNTUsIDYsIDIxNiwgMTgxLCAxMTAsIDI2LCAyNTUsIDYsIDI0MSwgMjAxLCAxMTAsIDI2LCAyNTUsIAotICAgIDYsIDI0NSwgMTA0LCAxMDUsIDI2LCAyNTUsIDYsIDIxNiwgMTgxLCAxMDUsIDI2LCAyNTUsIDYsIDI0OSwgNjUsIDExMywgCi0gICAgMjQ2LCA5OSwgMjYsIDI1NSwgNiwgMjQ1LCAxMDQsIDExMywgMjQ2LCA5OSwgMjYsIDI1NSwgNiwgMjE1LCAyMDMsIDE4OSwgCi0gICAgMjYsIDI1NSwgNiwgMjE1LCAyMDMsIDIxNiwgMjQ3LCAyNiwgMjU1LCA2LCAyMTUsIDIwMywgMjE2LCAyNDgsIDI1NCwgMTQxLCAKLSAgICAxNywgMjYsIDI1NSwgNiwgMjQxLCAyMDEsIDIxNiwgMjQ3LCAyNiwgMjU1LCA2LCAyMzEsIDQxLCAyMTYsIDI0NywgMjYsIAotICAgIDI1NSwgNiwgMjE2LCAxODEsIDIxNiwgMjQ3LCAyNiwgMjU1LCA2LCAyMTYsIDE4MSwgMjE2LCAxNjIsIDI2LCAyNTUsIDYsIAotICAgIDIxNSwgMjAzLCAyNDQsIDExNCwgMjYsIDI1NSwgNiwgMjE1LCAyMDMsIDI0NCwgMTE1LCAyNTQsIDE0MSwgMTcsIDI2LCAKLSAgICAyNTUsIDYsIDI0MSwgMjAxLCAyNDQsIDExNCwgMjYsIDI1NSwgNiwgMjE2LCAxODEsIDI0NCwgMTE0LCAyNiwgMjU1LCA2LCAKLSAgICAyMTYsIDE4MSwgMTIzLCAyNDAsIDIxMCwgMjYsIDI1NSwgNiwgMjE2LCAxODEsIDEzNCwgMjQwLCAyMTAsIDI2LCAyNTUsIDYsIAotICAgIDI0NSwgMTA0LCAyNDQsIDgxLCAyNDAsIDIxMCwgMjYsIDI1NSwgNiwgMjE1LCAyMDMsIDI0NCwgODEsIDI0MCwgMjEwLCAyNiwgCi0gICAgMjU1LCA2LCAyMTYsIDE4MSwgMjQ0LCA4MSwgMjQwLCAyMTAsIDI2LCAyNTUsIDYsIDI1MCwgMjI3LCAyNDQsIDgxLCAyNDAsIAotICAgIDIxMCwgMjYsIDI1NSwgNiwgMjI5LCAxODIsIDI0NCwgODEsIDI0MCwgMjEwLCAyNiwgMjU1LCA2LCAyMTYsIDE4MSwgMTIzLCAKLSAgICAyMTYsIDE0NywgMjYsIDI1NSwgNiwgMjE2LCAxODEsIDI0NCwgODEsIDIxNiwgMTQ3LCAyNiwgMjU1LCA2LCAyNDgsIDU3LCAKLSAgICAyNDQsIDgxLCAyMzAsIDE2NCwgMjYsIDI1NSwgNiwgMjE4LCAxMTgsIDI0NCwgMTE1LCAyMzAsIDE2NCwgMjYsIDEyMywgCi0gICAgMTYzLCA1MCwgMjYsIDEyMywgMTYzLCA1LCAyNTQsIDE0MSwgMTcsIDI2LCAxMTMsIDIxNiwgMTY3LCA1MCwgMjYsIDEzNCwgCi0gICAgMjI0LCAyMCwgNTAsIDI2LCAyMTEsIDQ1LCA1MCwgMjYsIDIxNywgNjgsIDUwLCAyNiwgMjQ2LCAxMDEsIDUwLCAyNiwgMjI2LCAKLSAgICAyNDYsIDUwLCAyNiwgMTEzLCAyMjYsIDI0NSwgNTAsIDI2LCAxMzQsIDIyNiwgMjQ1LCA1MCwgMjYsIDI0NCwgMTEsIDIyNiwgCi0gICAgMjQ1LCA1MCwgMjYsIDI0NCwgODEsIDIyNiwgMjQ1LCA1MCwgMjYsIDIzMSwgMzUsIDUwLCAyNiwgMjMzLCAxNTcsIDI1MiwgCi0gICAgMTI4LCA1MCwgMjYsIDIzMiwgMTk0LCA1MCwgMjYsIDIyNiwgMTMxLCA1MCwgMjYsIDIxMSwgMTU5LCA1MCwgMjYsIDI1MywgCi0gICAgMjQzLCA1MCwgMjYsIDI1NCwgMCwgNTAsIDI2LCAyNDIsIDE0NCwgNTAsIDI2LCAyMTUsIDE4NiwgMjUyLCAxMjgsIDUwLCAKLSAgICAyNiwgMjEwLCA4NywgNTAsIDIyMiwgMTk4LCAyMjAsIDExMywgNTAsIDIyMiwgMTk4LCAyMTQsIDE4NSwgNTAsIDIyMiwgCi0gICAgMTk4LCAyMjAsIDE0MiwgNTAsIDIyMiwgMTk4LCAyMjAsIDExMSwgNTAsIDIyMiwgMTk4LCAyNDcsIDIxMywgMjIwLCAxMTEsIAotICAgIDUwLCAyMjIsIDE5OCwgMjE5LCAxNjgsIDUwLCAyMjIsIDE5OCwgMjQ4LCA1MywgNTAsIDIyMiwgMTk4LCAyMjQsIDYsIDUwLCAKLSAgICAyMjIsIDE5OCwgMjIwLCAxMjksIDUwLCAyMjIsIDE5OCwgMjQ2LCA2MCwgNTAsIDIyMiwgMTk4LCAyNTMsIDIzOCwgNTAsIAotICAgIDIyMiwgMTk4LCAyNTAsIDE3MSwgNTAsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjI1LCAyMTMsIDIyNSwgMTQzLCAyNDcsIAotICAgIDE5MSwgNSwgMjI1LCAyNCwgMjQxLCAyMzUsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjE3LCA0NSwgMjQxLCAyMzUsIDIyNSwgCi0gICAgMTQzLCAyNDcsIDE5MSwgNSwgMjUwLCAyNDcsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjUwLCAxMDEsIDIyNSwgMTQzLCAKLSAgICAyNDcsIDE5MSwgNSwgMjExLCAyMjEsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjQxLCAyMTEsIDIyNSwgMTQzLCAyNDcsIAotICAgIDE5MSwgNSwgMjQzLCA4NSwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyMTYsIDExNiwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAKLSAgICA3NCwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyNTEsIDE2OSwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyMjAsIDI5LCAyMjUsIAotICAgIDE0MywgMjQ3LCAxOTEsIDUsIDI0OSwgMjQ0LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDIzMSwgMTg0LCAyMjUsIDE0MywgCi0gICAgMjQ3LCAxOTEsIDUsIDIzMSwgMTM2LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDIyMSwgMjE2LCAyMjUsIDE0MywgMjQ3LCAKLSAgICAxOTEsIDUsIDIzMiwgMjM3LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDI1MSwgMTg4LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIAotICAgIDI1MCwgMjMxLCAyMjUsIDM1LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDI0NywgMTMzLCAyMjUsIDE0MywgMjQ3LCAxOTEsIAotICAgIDUsIDI0OSwgMjIzLCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDIxOSwgODcsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjQ5LCAKLSAgICAyMjQsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjUyLCA2MywgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyMjAsIDE2LCAyMjUsIAotICAgIDE0MywgMjQ3LCAxOTEsIDUsIDI0MCwgMjQ4LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDI0MSwgMTc4LCAyMjUsIDE0MywgCi0gICAgMjQ3LCAxOTEsIDUsIDI1MSwgMTEyLCAyMzMsIDM2LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDI1MCwgMjI0LCAyMjUsIAotICAgIDE0MywgMjQ3LCAxOTEsIDUsIDIyMywgMTUzLCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDI0NSwgMjMwLCAyMjUsIDE0MywgCi0gICAgMjQ3LCAxOTEsIDUsIDI0NiwgMTA3LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDIxNSwgMTA1LCAyMjUsIDE0MywgMjQ3LCAKLSAgICAxOTEsIDUsIDI1MiwgNjYsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjI1LCAzNiwgMjE1LCAyMzUsIDIyNSwgMTQzLCAyNDcsIAotICAgIDE5MSwgNSwgMjEzLCAxNTksIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjI2LCAxOCwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAKLSAgICAyMjIsIDE5MCwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyMzIsIDIyNCwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyMjYsIAotICAgIDExNSwgMjUyLCAxODQsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjQ0LCA0OCwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAKLSAgICAyNDIsIDEzOCwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyMTgsIDExOSwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCA0LCAyNTMsIAotICAgIDE2OCwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyMTIsIDMyLCAyNTIsIDE0OCwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAzOCwgCi0gICAgMjI2LCAyNDgsIDkxLCAyMzIsIDYwLCAxLCA2MSwgMjMyLCA2MCwgMSwgNzUsIDIzMiwgNjAsIDEsIDI1MywgMTU4LCAyMzIsIAotICAgIDYwLCAxLCAyNTIsIDE5LCAyMzIsIDYwLCAxLCAyNDMsIDIwMiwgMjMyLCA2MCwgMSwgMjQ5LCA2MCwgMjMyLCA2MCwgMSwgCi0gICAgNzMsIDIzMiwgNjAsIDEsIDIxMiwgOTgsIDIzMiwgNjAsIDEsIDIxMCwgMTU5LCAyMzIsIDYwLCAxLCAyMTYsIDIxMCwgMjMyLCAKLSAgICA2MCwgMSwgMjM1LCAxNDQsIDIzMiwgNjAsIDEsIDIzNSwgMjMsIDIzMiwgNjAsIDEsIDIyNCwgOTYsIDIzMiwgNjAsIDEsIAotICAgIDE1NiwgMjMyLCA2MCwgMSwgMTkzLCAyMzIsIDYwLCAxLCAyMzAsIDI1LCAyMzIsIDYwLCAxLCAyMzAsIDE2NiwgMjMyLCA2MCwgCi0gICAgMSwgMjI4LCAxMTEsIDIzMiwgNjAsIDEsIDcwLCAyMzIsIDYwLCAxLCAyMjYsIDEwNSwgMjMyLCA2MCwgMSwgMjM0LCA0NywgCi0gICAgMjMyLCA2MCwgMSwgMTUzLCAyMzIsIDYwLCAxLCAyMjIsIDkxLCAyMzIsIDYwLCAxLCAyMTcsIDE1MiwgMjMyLCA2MCwgMSwgCi0gICAgMjE1LCAxNTksIDIzMiwgNjAsIDEsIDI1NCwgMTIzLCAyMzIsIDYwLCAxLCAyNDUsIDE1MCwgMjMyLCA2MCwgMSwgMjQyLCAKLSAgICA2MCwgMjMyLCA2MCwgMSwgMjExLCAxNzgsIDI1MCwgMjM3LCAxLCA2MSwgMjUwLCAyMzcsIDEsIDIyNiwgOTEsIDI1MCwgCi0gICAgMjM3LCAxLCAyNDksIDYwLCAyNTAsIDIzNywgMSwgMTU2LCAyNTAsIDIzNywgMSwgMjE0LCAxMTYsIDI1MCwgMjM3LCAxLCAKLSAgICAxNTMsIDI1MCwgMjM3LCAxLCAyMzMsIDYyLCAyNTAsIDIzNywgMSwgMjU1LCA3NSwgMjUwLCAyMzcsIDEsIDIyNCwgOTYsIAotICAgIDI1MCwgMjM3LCAxLCAyNTMsIDE1OCwgMjUwLCAyMzcsIDEsIDE5MywgMjUwLCAyMzcsIDEsIDc2LCAyNTAsIDIzNywgMSwgCi0gICAgMjQ4LCAyMjMsIDI1MCwgMjM3LCAxLCAyMTcsIDE1MiwgMjUwLCAyMzcsIDEsIDIyMCwgMTA0LCAyNTAsIDIzNywgMSwgMjIwLCAKLSAgICAxMDMsIDI1MCwgMjM3LCAxLCAyMjIsIDkxLCAyNTAsIDIzNywgMSwgMjUxLCA2NSwgMjUwLCAyMzcsIDEsIDcwLCAyNTAsIAotICAgIDIzNywgMSwgMjI4LCAxMTEsIDI1MCwgMjM3LCAxLCAyMTEsIDE3OCwgMjUwLCAyMzcsIDEsIDIzMCwgMjUsIDI1MCwgMjM3LCAKLSAgICAxLCAyMTUsIDE1OCwgMjUwLCAyMzcsIDEsIDIyNiwgMTA1LCAyNTAsIDIzNywgMSwgMjE4LCAyMjYsIDI1MCwgMjM3LCAxLCAKLSAgICA3MywgMjUwLCAyMzcsIDEsIDc1LCAyNTAsIDIzNywgMSwgMjE0LCAxMTMsIDI1MCwgMjM3LCAxLCAyMzUsIDIzLCAyNTAsIAotICAgIDIzNywgMSwgMjM1LCAxNCwgMjUwLCAyMzcsIDEsIDIyOSwgMTUwLCAyNTAsIDIzNywgMSwgMjE0LCAxMTgsIDI1MCwgMjM3LCAKLSAgICAxLCAyNDMsIDIwMiwgMjUwLCAyMzcsIDEsIDI0MywgMTM3LCAyNTAsIDIzNywgMSwgMjE4LCAxNjgsIDI1MCwgMjM3LCAxLCAKLSAgICAyMTgsIDE2NywgMjUwLCAyMzcsIDEsIDIyOSwgNzksIDI1MCwgMjM3LCAxLCAyMzYsIDMzLCAyNTAsIDIzNywgMSwgMjUxLCAKLSAgICA2NCwgMjUwLCAyMzcsIDEsIDIxNSwgMTU5LCAyNTAsIDIzNywgMSwgMjE0LCAxMTUsIDI1MCwgMjM3LCAxLCAyMjIsIDE4MCwgCi0gICAgMjUwLCAyMzcsIDEsIDIzMSwgMTI5LCAyNTAsIDIzNywgMSwgMjMxLCAxMjgsIDI1MCwgMjM3LCAxLCAyMzEsIDEyNywgMjUwLCAKLSAgICAyMzcsIDEsIDIzMSwgMTI2LCAyNTAsIDIzNywgMSwgMjMzLCA2MSwgMjUwLCAyMzcsIDEsIDI0NSwgMjM0LCAyNTAsIDIzNywgCi0gICAgMSwgMjE0LCAxMTQsIDU1LCAzMiwgMSwgNjEsIDU1LCAzMiwgMSwgMjUyLCA3NSwgNTUsIDMyLCAxLCAyMzQsIDE4MiwgNTUsIAotICAgIDMyLCAxLCAyNDgsIDkwLCA1NSwgMzIsIDEsIDc1LCA1NSwgMzIsIDEsIDIxMywgMjU1LCA1NSwgMzIsIDEsIDIxMCwgOTQsIAotICAgIDU1LCAzMiwgMSwgMjQxLCAyMzgsIDU1LCAzMiwgMSwgMjE2LCAxOTUsIDU1LCAzMiwgMSwgNzMsIDU1LCAzMiwgMSwgMTc2LCAKLSAgICA1NSwgMzIsIDEsIDI0NSwgMTc0LCA1NSwgMzIsIDEsIDI0NSwgMTU5LCA1NSwgMzIsIDEsIDI0NSwgMTUwLCA1NSwgMzIsIDEsIAotICAgIDI0NSwgNzUsIDU1LCAzMiwgMSwgNzYsIDU1LCAzMiwgMSwgMjI1LCAyMjEsIDU1LCAzMiwgMSwgMjIwLCA2MywgNTUsIDMyLCAKLSAgICAxLCAyMzMsIDIxNywgNTUsIDMyLCAxLCAyNDUsIDkyLCA1NSwgMzIsIDEsIDI0NSwgODIsIDU1LCAzMiwgMSwgMjE3LCAyMiwgCi0gICAgNTUsIDMyLCAxLCA3MCwgNTUsIDMyLCAxLCAyNDUsIDE3NywgNTUsIDMyLCAxLCAyMjUsIDEzNiwgNTUsIDMyLCAxLCAyMzQsIAotICAgIDExOSwgNTUsIDMyLCAxLCAyNDUsIDIwMiwgNTUsIDMyLCAxLCAyNDUsIDg0LCA1NSwgMzIsIDEsIDI1MCwgMTMxLCA1NSwgCi0gICAgMzIsIDEsIDIzNiwgMzMsIDU1LCAzMiwgMSwgMjE0LCAxMTgsIDU1LCAzMiwgMjI3LCAxOTgsIDExMCwgNTUsIDMyLCAyMjcsIAotICAgIDE5OCwgMTg5LCA1NSwgMzIsIDIyNywgMTk4LCAyMTYsIDI0NywgNTUsIDMyLCAyMjcsIDE5OCwgMjQ0LCAxMTQsIDI0MiwgCi0gICAgMTUzLCAxLCAyNTQsIDIwNCwgMjQyLCAxNTMsIDEsIDI1MiwgMTYzLCAyNDIsIDE1MywgMSwgMjQyLCAyMTEsIDI0MiwgMTUzLCAKLSAgICAxLCAyNDgsIDIwNCwgMjQyLCAxNTMsIDEsIDI1NCwgMjAwLCAyNDIsIDE1MywgMSwgMjI0LCA3OSwgMjQyLCAxNTMsIDEsIAotICAgIDIzNSwgMTU1LCAyNDIsIDE1MywgMSwgMjQyLCAzOSwgMjQyLCAxNTMsIDEsIDIxNiwgMTU4LCAyNDIsIDE1MywgMSwgMjQ1LCAKLSAgICAxODMsIDI0MiwgMTUzLCAxLCAyMzMsIDE5MCwgMjQyLCAxNTMsIDEsIDIzMywgMTEzLCAyNDIsIDE1MywgMSwgMjMxLCAxNzksIAotICAgIDI0MiwgMTUzLCAxLCAyMjksIDE4NCwgMjQyLCAxNTMsIDEsIDIzNSwgMTE5LCAyNDIsIDE1MywgMSwgMjE0LCAxMzYsIDI0MiwgCi0gICAgMTUzLCAxLCAyMjYsIDY5LCAyNDIsIDE1MywgMSwgMjI4LCAxOTUsIDI0MiwgMTUzLCAxLCAyMjMsIDE2NSwgMjQyLCAxNTMsIAotICAgIDEsIDIyMSwgMjE4LCAyNDIsIDE1MywgMSwgMjE3LCA0LCAyNDIsIDE1MywgMSwgMjExLCAyMzQsIDI0MiwgMTUzLCAxLCAKLSAgICAyNDQsIDE3OCwgMjQyLCAxNTMsIDEsIDIzNiwgMzcsIDI0MiwgMTUzLCAxLCAyNDAsIDE5OSwgMjQyLCAxNTMsIDEsIDIyNiwgCi0gICAgMTM5LCAyNDIsIDE1MywgMSwgMjI4LCAyMDAsIDI0MCwgMjEwLCAyMTQsIDIwOSwgMSwgMjU0LCAxNDcsIDIxNCwgMjA5LCAxLCAKLSAgICAyNTIsIDI2LCAyMTQsIDIwOSwgMSwgMjQzLCAxMDgsIDIxNCwgMjA5LCAxLCAyMzQsIDEzMiwgMjE0LCAyMDksIDEsIDI0OCwgCi0gICAgNTQsIDIxNCwgMjA5LCAxLCAyNDEsIDY4LCAyMTQsIDIwOSwgMSwgMjExLCAyMjcsIDIxNCwgMjA5LCAxLCAyMTAsIDg1LCAKLSAgICAyMTQsIDIwOSwgMSwgMjQwLCAyNDEsIDIxNCwgMjA5LCAxLCAyMTYsIDIzMCwgMjE0LCAyMDksIDEsIDIxMCwgMjMzLCAyMTQsIAotICAgIDIwOSwgMSwgMjM0LCAyNTAsIDIxNCwgMjA5LCAxLCAyMjAsIDIwLCAyMTQsIDIwOSwgMSwgMjMzLCA5OCwgMjE0LCAyMDksIAotICAgIDEsIDIzMSwgNjUsIDIxNCwgMjA5LCAxLCAyNDgsIDIxLCAyMTQsIDIwOSwgMSwgMjI3LCAxOTQsIDIxNCwgMjA5LCAxLCAKLSAgICAyMTAsIDEzLCAyMTQsIDIwOSwgMSwgMjIxLCAyNDgsIDIxNCwgMjA5LCAxLCAyNTQsIDE5NiwgMjE0LCAyMDksIDEsIDIyNCwgCi0gICAgMTUwLCAyMTQsIDIwOSwgMSwgMjIyLCAyNSwgMjE0LCAyMDksIDEsIDIyNCwgMzUsIDIxNCwgMjA5LCAxLCAyMjMsIDE0NCwgCi0gICAgMjE0LCAyMDksIDEsIDIxNiwgMTk5LCAyMTQsIDIwOSwgMSwgMjQyLCAyNDQsIDIxNCwgMjA5LCAxLCAxMTEsIDIxNCwgMjA5LCAKLSAgICAxLCA3MywgMjE0LCAyMDksIDEsIDcwLCAyMTQsIDIwOSwgMSwgMjE4LCAxNzksIDIxNCwgMjA5LCAyMTEsIDIwOSwgMjQ3LCAKLSAgICAxNzIsIDU1LCAyMjUsIDE2OSwgNSwgNjEsIDU1LCAyMjUsIDE2OSwgNSwgNzMsIDU1LCAyMjUsIDE2OSwgNSwgNzAsIDU1LCAKLSAgICAyMjUsIDE2OSwgNSwgMTc2LCA1NSwgMjI1LCAxNjksIDUsIDIzMywgMjE3LCA1NSwgMjI1LCAxNjksIDUsIDI0MywgMTM1LCAKLSAgICA1NSwgMjI1LCAxNjksIDUsIDI0MiwgMTEzLCA1NSwgMjI1LCAxNjksIDUsIDIxMSwgMTY1LCA1NSwgMjI1LCAxNjksIDUsIAotICAgIDI1MSwgMzMsIDU1LCAyMjUsIDE2OSwgNSwgMjM1LCAxNDEsIDU1LCAyMjUsIDE2OSwgNSwgMjM1LCAxMDgsIDU1LCAyMjUsIAotICAgIDE2OSwgNSwgMjE3LCAxMDUsIDU1LCAyMjUsIDE2OSwgNSwgMjE1LCAxMTgsIDU1LCAyMjUsIDE2OSwgNSwgMjQ4LCAyMjEsIAotICAgIDU1LCAyMjUsIDE2OSwgNSwgMjQ4LCAzLCA1NSwgMjI1LCAxNjksIDUsIDI0NiwgNzgsIDU1LCAyMjUsIDE2OSwgNSwgMjE2LCAKLSAgICAyMDgsIDU1LCAyMjUsIDE2OSwgNSwgMTkwLCA1NSwgMjI1LCAxNjksIDUsIDI1MiwgMTkxLCA1NSwgMjI1LCAxNjksIDUsIAotICAgIDI0NCwgMTk2LCA1NSwgMjI1LCAxNjksIDUsIDE5NywgNTUsIDIyNSwgMTY5LCA1LCAyMjcsIDIzNywgNTUsIDIyNSwgMTY5LCAKLSAgICA1LCAxODQsIDU1LCAyMjUsIDE2OSwgNSwgMjMwLCAyMzAsIDU1LCAyMjUsIDE2OSwgNSwgMjMwLCAxMDIsIDU1LCAyMjUsIAotICAgIDE2OSwgNSwgMTkxLCA1NSwgMjI1LCAxNjksIDUsIDIxNCwgMjcsIDU1LCAyMjUsIDE2OSwgNSwgMjEzLCAxNzYsIDU1LCAKLSAgICAyMjUsIDE2OSwgNSwgMjA1LCA1NSwgMjI1LCAxNjksIDUsIDIyMiwgMTQwLCA1NSwgMjI1LCAxNjksIDUsIDIzMywgMTM1LCAKLSAgICA1NSwgMjI1LCAxNjksIDUsIDIwNiwgNTUsIDIyNSwgMTY5LCA1LCAyMTAsIDExNiwgNTUsIDIyNSwgMTY5LCA1LCAyMjAsIAotICAgIDEwMiwgNTUsIDIyNSwgMTY5LCA1LCAyMTgsIDIyMywgNTUsIDIyNSwgMTY5LCA1LCAxNjIsIDU1LCAyMjUsIDE2OSwgNSwgCi0gICAgMjUzLCAxODYsIDU1LCAyMjUsIDE2OSwgNSwgMjUzLCAxODUsIDU1LCAyMjUsIDE2OSwgNSwgMjUzLCAxODQsIDU1LCAyMjUsIAotICAgIDE2OSwgNSwgMjExLCAxNDIsIDU1LCAyMjUsIDE2OSwgNSwgMjQ4LCAyMDAsIDU1LCAyMjUsIDE2OSwgNSwgMjQ4LCAxOTksIAotICAgIDU1LCAyMjUsIDE2OSwgNSwgMjUyLCAxNzAsIDU1LCAyMjUsIDE2OSwgNSwgMjUxLCA4NSwgNTUsIDIyNSwgMTY5LCAyMTEsIAotICAgIDIwOSwgMjQ3LCAxNzIsIDU1LCAyMjUsIDE2OSwgNTQsIDExMCwgNTUsIDIyNSwgMTY5LCA1NCwgMTA1LCA1NSwgMjI1LCAKLSAgICAxNjksIDU0LCAyMTYsIDI0NywgNTUsIDIyNSwgMTY5LCA1NCwgMjE1LCA3MywgNTUsIDIyNSwgMTY5LCA1NCwgMjQwLCAyMTAsIAorICAgIDE1MSwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyNDQsIDE0NCwgMiwgNjYsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjUyLCAKKyAgICA1NiwgMiwgMTIyLCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDIzNCwgMjUyLCAyLCA2NiwgMiwgNjYsIDY1LCAxNywgMTAsIAorICAgIDI3LCAyNTQsIDE5OCwgMiwgMTUxLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyMiwgMjgsIDIsIDY2LCAyLCA2NiwgNjUsIAorICAgIDE3LCAxMCwgMjcsIDIyMSwgMTY4LCAyLCAyMzQsIDEzMSwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyMjgsIDY0LCAyLCAKKyAgICAxNTEsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjIyLCA1LCAyMTQsIDEyOCwgMjUzLCAyMzksIDIzNCwgNSwgMjE4LCAxMzEsIAorICAgIDUsIDUzLCAxNywgMTAsIDI3LCAyMjQsIDc5LCAyMTQsIDEyOCwgMjUzLCAyMzksIDIzNCwgNSwgMjE4LCAxMzEsIDUsIDUzLCAKKyAgICAxNywgMTAsIDI3LCAyNTQsIDE1NCwgNTMsIDE3LCAxMCwgMjcsIDI1NCwgMTg0LCA1MywgMTcsIDEwLCAyNywgMjMwLCAxNTQsIAorICAgIDUzLCAxNywgMTAsIDI3LCAyMjIsIDYsIDUzLCAxNywgMTAsIDI3LCAyMjMsIDE0NCwgNTMsIDE3LCAxMCwgMjcsIDI1NCwgCisgICAgMTczLCA1MywgMTcsIDEwLCAyNywgMjEyLCA0OSwgNTMsIDE3LCAxMCwgMjcsIDIyMiwgNSwgNTMsIDE3LCAxMCwgMjcsIAorICAgIDIyMiwgNCwgMjU0LCAxNzMsIDIxMiwgNDgsIDEwLCAyNywgMjM1LCAxMzUsIDIyMywgMzUsIDUwLCAxMCwgMjcsIDI1MSwgCisgICAgMjMxLCAyNTQsIDQwLCAyNTQsIDQxLCA0NSwgMjIxLCAxNTcsIDQ1LCAyMjEsIDQ2LCA0NSwgMjIwLCAyMzQsIDQ1LCAyMjAsIAorICAgIDIyMywgNDUsIDIyMCwgMjEyLCA0NSwgMjIwLCAyMDEsIDQ1LCAyMjAsIDE5MCwgNDUsIDIyMCwgMTc5LCA0NSwgMjIwLCAKKyAgICAxNjgsIDQ1LCAyMjEsIDE1NiwgNDUsIDIyMSwgMTQ1LCA0NSwgMjIxLCAxMzQsIDQ1LCAyMjEsIDEyMywgNDUsIDIyMSwgCisgICAgMTEyLCA0NSwgMjIxLCAxMDEsIDQ1LCAyMjEsIDkwLCAyMjQsIDE5NSwgMjQ0LCAyMSwgMzEsIDY3LCAyNDksIDIyMCwgMjI0LCAKKyAgICAxOTUsIDI0NCwgMjEsIDMxLCA2NywgMTA5LCAyNDksIDIyMCwgMjI0LCAxOTUsIDI0NCwgMjEsIDMxLCA2NywgMTA5LCAyNDMsIAorICAgIDIzMCwgMjE4LCAxMzAsIDIyNCwgMTk1LCAyNDQsIDIxLCAzMSwgNjcsIDI0OSwgMjI3LCAyMjQsIDE5NSwgMjQ0LCAyMSwgCisgICAgMzEsIDY3LCAyMjAsIDE1MSwgMjI0LCAxOTUsIDI0NCwgMjEsIDMxLCA2NywgMjQ1LCAzMiwgNzgsIDIyNCwgMTk1LCAyNDQsIAorICAgIDIxLCAzMSwgNjcsIDIyNCwgMTQsIDc4LCAyMjQsIDE5NSwgMjQ0LCAyMSwgMzEsIDY3LCA0MywgNzEsIDIzMywgMjEsIDEyNywgCisgICAgMjI0LCAxOTUsIDI0NCwgMjEsIDMxLCA2NywgNDQsIDcxLCAyMzMsIDIxLCAyNTEsIDE1NywgMjI0LCAxOTUsIDI0NCwgMjEsIAorICAgIDMxLCA2NywgMjAzLCAyNDUsIDE2NCwgMzgsIDI3LCA0MywgMjQyLCAyOCwgMzgsIDI3LCA0NCwgMjQyLCAyOCwgMzgsIDUyLCAKKyAgICAyMTYsIDkwLCA0MywgMjQyLCAyOCwgMzgsIDUyLCAyMTYsIDkwLCA0NCwgMjQyLCAyOCwgMzgsIDIzMSwgMjM0LCA0MywgCisgICAgMjQyLCAyOCwgMzgsIDIzMSwgMjM0LCA0NCwgMjQyLCAyOCwgMzgsIDI0OSwgMTk4LCAyMzEsIDIzMywgMjI0LCAxOTUsIAorICAgIDI0NCwgMjEsIDMxLCA2NywgMTEzLCA1OSwgMjMzLCA1NywgMjI0LCAxOTUsIDI0NCwgMjEsIDMxLCA2NywgMjQ1LCAxNjEsIAorICAgIDI0OCwgMTU3LCAyMjQsIDE5NSwgMjQ0LCAyMSwgMzEsIDY3LCAyNDUsIDE1MiwgMjQ4LCAxNTcsIDIyNCwgMTk1LCAyNDQsIAorICAgIDIxLCAzMSwgNjcsIDEyMSwgMjMyLCAyMTQsIDIyNCwgMTk1LCAyNDQsIDIxLCAzMSwgNjcsIDIxMiwgMzIsIDEyMSwgMjMyLCAKKyAgICAyMTQsIDIyNCwgMTk1LCAyNDQsIDIxLCAzMSwgNjcsIDQzLCAyMjYsIDQsIDIyNCwgMTk1LCAyNDQsIDIxLCAzMSwgNjcsIAorICAgIDQ0LCAyMjYsIDQsIDIyNCwgMTk1LCAyNDQsIDIxLCAzMSwgNjcsIDQzLCAyNDksIDEwMCwgMTI3LCAyMjQsIDE5NSwgMjQ0LCAKKyAgICAyMSwgMzEsIDY3LCA0NCwgMjQ5LCAxMDAsIDEyNywgMjI0LCAxOTUsIDI0NCwgMjEsIDMxLCA2NywgNDMsIDIxNiwgNywgCisgICAgMjIwLCA1NCwgMTI3LCAyMjQsIDE5NSwgMjQ0LCAyMSwgMzEsIDY3LCA0NCwgMjE2LCA3LCAyMjAsIDU0LCAxMjcsIDIyNCwgCisgICAgMTk1LCAyNDQsIDIxLCAzMSwgNjcsIDQzLCA4NSwgMjMzLCAyMSwgMTI3LCAyMjQsIDE5NSwgMjQ0LCAyMSwgMzEsIDY3LCAKKyAgICA0NCwgODUsIDIzMywgMjEsIDEyNywgMjI0LCAxOTUsIDI0NCwgMjEsIDMxLCA2NywgNDMsIDUyLCAyNTQsIDExMSwgMTI3LCAKKyAgICAyMjQsIDE5NSwgMjQ0LCAyMSwgMzEsIDY3LCA0NCwgNTIsIDI1NCwgMTExLCAxMjcsIDIyNCwgMTk1LCAyNDQsIDIxLCAzMSwgCisgICAgNjcsIDQzLCAyNTQsIDExMSwgMTI3LCAyMjQsIDE5NSwgMjQ0LCAyMSwgMzEsIDY3LCA0NCwgMjU0LCAxMTEsIDEyNywgMjI0LCAKKyAgICAxOTUsIDI0NCwgMjEsIDMxLCA2NywgNDMsIDI0OSwgMTYyLCAxMjcsIDIyNCwgMTk1LCAyNDQsIDIxLCAzMSwgNjcsIDQ0LCAKKyAgICAyNDksIDE2MiwgMTI3LCAyMjQsIDE5NSwgMjQ0LCAyMSwgMzEsIDY3LCA0MywgNzEsIDI0OSwgMTYyLCAxMjcsIDIyNCwgCisgICAgMTk1LCAyNDQsIDIxLCAzMSwgNjcsIDQ0LCA3MSwgMjQ5LCAxNjIsIDEyNywgMjIwLCAxMzIsIDI0NywgMTIxLCA3MSwgMjIwLCAKKyAgICAxMzIsIDI0NywgMTIxLCAyMjQsIDE5NSwgMjQ0LCAyMSwgMzEsIDY3LCA0MywgNDIsIDEyNywgMjI0LCAxOTUsIDI0NCwgMjEsIAorICAgIDMxLCA2NywgNDQsIDQyLCAxMjcsIDI0OCwgMTU2LCAyMjYsIDEyMCwgMjUwLCAxNzMsIDIyNiwgMTIwLCAyMTIsIDMyLCAKKyAgICAyMjYsIDEyMCwgNTIsIDIxMiwgMzIsIDIyNiwgMTIwLCAyNDgsIDE1NiwgMTIxLCAyMzIsIDIxNCwgMjUwLCAxNzMsIDEyMSwgCisgICAgMjMyLCAyMTQsIDIxMiwgMzIsIDEyMSwgMjMyLCAyMTQsIDQsIDI0OSwgMjIwLCA0LCAxMDksIDI0OSwgMjIwLCA0LCAyNDMsIAorICAgIDIzMCwgMjE4LCAxMzAsIDQsIDIyMCwgMTUxLCA0LCAyNDksIDIyNywgNCwgMjI0LCAxNCwgNzgsIDQsIDI0NSwgMzIsIDc4LCAKKyAgICA0LCAyNDUsIDE2MSwgMjQ4LCAxNTcsIDQsIDQzLCAyMjYsIDQsIDQsIDQ0LCAyMjYsIDQsIDQsIDQzLCAyNDksIDEwMCwgCisgICAgMTI3LCA0LCA0NCwgMjQ5LCAxMDAsIDEyNywgNCwgNDMsIDIxNiwgNywgMjIwLCA1NCwgMTI3LCA0LCA0NCwgMjE2LCA3LCAKKyAgICAyMjAsIDU0LCAxMjcsIDQsIDU0LCA1MCwgNCwgMjU0LCAxMjcsIDQsIDI1MywgMjE3LCA0LCA5NiwgNTAsIDQsIDI0MCwgCisgICAgMTY4LCA0LCAyMzMsIDE2LCA1MCwgNCwgMjQyLCAxMzEsIDUwLCA0LCAyNDUsIDk5LCA1MCwgNCwgMjIzLCA1MSwgMjE5LCAKKyAgICA0NywgNCwgMjQ3LCAxMzMsIDUwLCA0LCAyMjUsIDE4MywgNTAsIDQsIDI0OSwgMjE4LCAyNTMsIDIwNywgMTAsIDI0NCwgCisgICAgMTY1LCA1MywgMTcsIDEwLCAyMTcsIDQ1LCAyLCAyNDQsIDE2NSwgNDgsIDEwLCAyNDgsIDE4NCwgNTMsIDE3LCAxMCwgMjE3LCAKKyAgICA3OSwgMjQ0LCAyLCAxMCwgMjM0LCAyMDUsIDUzLCAxNywgMTAsIDI0NCwgMTY3LCA1MywgMTcsIDEwLCAyNDQsIDE2NywgCisgICAgMTQ3LCAxNywgMTAsIDI0OCwgMTg2LCA1MywgMTcsIDEwLCAyNDgsIDE4NiwgMTQ3LCAxNywgMTAsIDIzNCwgMjA3LCA1MywgCisgICAgMTcsIDEwLCAyMzQsIDIwNywgMTQ3LCAxNywgMTAsIDIyMCwgOTUsIDUzLCAxNywgMTAsIDIyMCwgOTUsIDE0NywgMTcsIDEwLCAKKyAgICAyMTgsIDQ3LCA1MywgMTcsIDEwLCAyMTgsIDQ3LCAxNDcsIDE3LCAxMCwgMSwgMjAyLCA1MywgMTcsIDEwLCAxLCAxMTIsIDIsIAorICAgIDIzMSwgMjI5LCA3NywgNTMsIDE3LCAxMCwgMSwgMTEyLCAyLCAyMzEsIDIyOSwgNzcsIDQwLCAxNywgMTAsIDEsIDExMiwgMiwgCisgICAgMjAyLCA3NywgNTMsIDE3LCAxMCwgMSwgMTEyLCAyLCAyMDIsIDc3LCA0MCwgMTcsIDEwLCAxLCAyMTIsIDMxLCAyLCAyMDIsIAorICAgIDc3LCA1MywgMTcsIDEwLCAxLCAyMTIsIDMxLCAyLCAyMDIsIDc3LCA0MCwgMTcsIDEwLCAxLCAxMTIsIDIsIDIwMiwgMjUyLCAKKyAgICA0NCwgNTMsIDE3LCAxMCwgMSwgMTEyLCAyLCAyMDIsIDI1MiwgNDQsIDQwLCAxNywgMTAsIDEsIDc5LCAyLCAyMDIsIDc3LCAKKyAgICA1MywgMTcsIDEwLCAxLCA3OSwgMiwgMjAyLCA3NywgNDAsIDE3LCAxMCwgMSwgNzksIDIsIDIwMiwgNzcsIDY1LCAxNywgMTAsIAorICAgIDEsIDc5LCAyLCAyMDIsIDc3LCAxNDcsIDE3LCAxMCwgMSwgMTEyLCA1MywgMTcsIDEwLCAxLCAxMTIsIDQwLCAxNywgMTAsIAorICAgIDEsIDI1MiwgNTYsIDUzLCAxNywgMTAsIDEsIDI1MiwgNTYsIDQwLCAxNywgMTAsIDEsIDI1MiwgNTYsIDY1LCAxNywgMTAsIAorICAgIDEsIDI1MiwgNTYsIDE0NywgMTcsIDEwLCAxLCAyMTcsIDksIDIzMSwgMTY2LCA1MywgMTcsIDEwLCAxLCAyMTcsIDksIDIzMSwgCisgICAgMTY2LCA0MCwgMTcsIDEwLCAxLCAyMTcsIDksIDUzLCAxNywgMTAsIDEsIDIxNywgOSwgNDAsIDE3LCAxMCwgMSwgMjE3LCA5LCAKKyAgICA2NSwgMTcsIDEwLCAxLCAyMTcsIDksIDE0NywgMTcsIDEwLCAxLCAyMTYsIDE5NCwgNTMsIDE3LCAxMCwgMSwgMjE2LCAxOTQsIAorICAgIDQwLCAxNywgMTAsIDEsIDIxNiwgMTk0LCA2NSwgMTcsIDEwLCAxLCAyMTYsIDE5NCwgMTQ3LCAxNywgMTAsIDEsIDE1MSwgCisgICAgNTMsIDE3LCAxMCwgMSwgMTUxLCA0MCwgMTcsIDEwLCAxLCAxNTEsIDY1LCAxNywgMTAsIDEsIDE1MSwgMTQ3LCAxNywgMTAsIAorICAgIDEsIDEyMiwgNTMsIDE3LCAxMCwgMSwgMTIyLCA0MCwgMTcsIDEwLCAxLCAxMjIsIDY1LCAxNywgMTAsIDEsIDEyMiwgMTQ3LCAKKyAgICAxNywgMTAsIDEsIDIzNCwgMTMxLCA1MywgMTcsIDEwLCAxLCAyMzQsIDEzMSwgNDAsIDE3LCAxMCwgMSwgMjM0LCAxMzEsIAorICAgIDY1LCAxNywgMTAsIDEsIDIzNCwgMTMxLCAxNDcsIDE3LCAxMCwgMSwgMjQ4LCAxOTcsIDUzLCAxNywgMTAsIDEsIDI0OCwgCisgICAgMTk3LCA0MCwgMTcsIDEwLCAxLCAyMTYsIDIwNCwgNTMsIDE3LCAxMCwgMSwgMjE2LCAyMDQsIDQwLCAxNywgMTAsIDEsIAorICAgIDIyMywgOTcsIDUzLCAxNywgMTAsIDEsIDIyMywgOTcsIDQwLCAxNywgMTAsIDEsIDIxMCwgMTA5LCA1MywgMTcsIDEwLCAxLCAKKyAgICAyMTAsIDEwOSwgNDAsIDE3LCAxMCwgMSwgMjIxLCAxNjgsIDUzLCAxNywgMTAsIDEsIDIyMSwgMTY4LCA0MCwgMTcsIDEwLCAKKyAgICAxLCAyMjEsIDE2OCwgNjUsIDE3LCAxMCwgMSwgMjIxLCAxNjgsIDE0NywgMTcsIDEwLCAxLCAyMjAsIDYxLCA1MywgMTcsIAorICAgIDEwLCAxLCAyMjAsIDYxLCA0MCwgMTcsIDEwLCAxLCAyMjAsIDYxLCA2NSwgMTcsIDEwLCAxLCAyMjAsIDYxLCAxNDcsIDE3LCAKKyAgICAxMCwgMSwgMjIyLCAyOCwgNTMsIDE3LCAxMCwgMSwgMjIyLCAyOCwgNDAsIDE3LCAxMCwgMSwgMjIyLCAyOCwgNjUsIDE3LCAKKyAgICAxMCwgMSwgMjIyLCAyOCwgMTQ3LCAxNywgMTAsIDEsIDI0OCwgMjE4LCA1MywgMTcsIDEwLCAxLCAyNDgsIDIxOCwgNDAsIAorICAgIDE3LCAxMCwgMSwgMjQ4LCAyMTgsIDY1LCAxNywgMTAsIDEsIDI0OCwgMjE4LCAxNDcsIDE3LCAxMCwgMSwgMjE3LCA4MiwgCisgICAgNTMsIDE3LCAxMCwgMSwgMjE3LCA4MiwgNDAsIDE3LCAxMCwgMSwgMjE3LCA4MiwgNjUsIDE3LCAxMCwgMSwgMjE3LCA4MiwgCisgICAgMTQ3LCAxNywgMTAsIDEsIDIxMCwgMTEyLCA1MywgMTcsIDEwLCAxLCAyMTAsIDExMiwgNDAsIDE3LCAxMCwgMSwgMjEwLCAKKyAgICAxMTIsIDY1LCAxNywgMTAsIDEsIDIxMCwgMTEyLCAxNDcsIDE3LCAxMCwgMSwgMjU0LCAxOTgsIDUzLCAxNywgMTAsIDEsIAorICAgIDI1NCwgMTk4LCA0MCwgMTcsIDEwLCAxLCAyNTQsIDE5OCwgNjUsIDE3LCAxMCwgMSwgMjU0LCAxOTgsIDE0NywgMTcsIDEwLCAKKyAgICAxLCAyNDIsIDI0NiwgNTMsIDE3LCAxMCwgMSwgMjQyLCAyNDYsIDQwLCAxNywgMTAsIDEsIDI0MiwgMjQ2LCA2NSwgMTcsIAorICAgIDEwLCAxLCAyNDIsIDI0NiwgMTQ3LCAxNywgMTAsIDEsIDI0NCwgMTQ0LCA1MywgMTcsIDEwLCAxLCAyNDQsIDE0NCwgNDAsIAorICAgIDE3LCAxMCwgMSwgMjQ0LCAxNDQsIDY1LCAxNywgMTAsIDEsIDI0NCwgMTQ0LCAxNDcsIDE3LCAxMCwgMSwgMjI0LCA4MywgCisgICAgNTMsIDE3LCAxMCwgMSwgMjI0LCA4MywgNDAsIDE3LCAxMCwgMSwgMjI0LCA4MywgNjUsIDE3LCAxMCwgMSwgMjI0LCA4MywgCisgICAgMTQ3LCAxNywgMTAsIDEsIDIzNCwgMjUyLCA1MywgMTcsIDEwLCAxLCAyMzQsIDI1MiwgNDAsIDE3LCAxMCwgMSwgMjM0LCAKKyAgICAyNTIsIDY1LCAxNywgMTAsIDEsIDIzNCwgMjUyLCAxNDcsIDE3LCAxMCwgMSwgMjMzLCAxMDQsIDUzLCAxNywgMTAsIDEsIAorICAgIDIzMywgMTA0LCA0MCwgMTcsIDEwLCAxLCAyMzMsIDEwNCwgNjUsIDE3LCAxMCwgMSwgMjMzLCAxMDQsIDE0NywgMTcsIDEwLCAKKyAgICAxLCA2NiwgNTMsIDE3LCAxMCwgMSwgNjYsIDQwLCAxNywgMTAsIDEsIDY2LCA2NSwgMTcsIDEwLCAxLCA2NiwgMTQ3LCAxNywgCisgICAgMTAsIDEsIDIyOCwgNjQsIDUzLCAxNywgMTAsIDEsIDIyOCwgNjQsIDQwLCAxNywgMTAsIDEsIDIyOCwgNjQsIDY1LCAxNywgCisgICAgMTAsIDEsIDIyOCwgNjQsIDE0NywgMTcsIDEwLCAxLCAyNDEsIDIyMCwgNTMsIDE3LCAxMCwgMSwgMjQxLCAyMjAsIDQwLCAKKyAgICAxNywgMTAsIDEsIDI0MSwgMjIwLCA2NSwgMTcsIDEwLCAxLCAyNDEsIDIyMCwgMTQ3LCAxNywgMTAsIDEsIDIxMiwgMzEsIAorICAgIDUzLCAxNywgMTAsIDEsIDIxMiwgMzEsIDQwLCAxNywgMTAsIDEsIDExMiwgMjMxLCAxOTQsIDUzLCAxNywgMTAsIDEsIDExMiwgCisgICAgMjMxLCAxOTQsIDQwLCAxNywgMTAsIDEsIDc5LCA1MywgMTcsIDEwLCAxLCA3OSwgNDAsIDE3LCAxMCwgMSwgNzksIDY1LCAKKyAgICAxNywgMTAsIDEsIDc5LCAxNDcsIDE3LCAxMCwgMjcsIDIzMywgMTA0LCAyLCAxMTIsIDIsIDIzMSwgMjI5LCA3NywgNTMsIAorICAgIDE3LCAxMCwgMjcsIDIzMywgMTA0LCAyLCAxMTIsIDIsIDIzMSwgMjI5LCA3NywgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTA0LCAKKyAgICAyLCAxMTIsIDIsIDIwMiwgNzcsIDUzLCAxNywgMTAsIDI3LCAyMzMsIDEwNCwgMiwgMTEyLCAyLCAyMDIsIDc3LCA0MCwgMTcsIAorICAgIDEwLCAyNywgMjMzLCAxMDQsIDIsIDExMiwgMiwgMjAyLCAyNTIsIDQ0LCA1MywgMTcsIDEwLCAyNywgMjMzLCAxMDQsIDIsIAorICAgIDExMiwgMiwgMjAyLCAyNTIsIDQ0LCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDQsIDIsIDExMiwgNTMsIDE3LCAxMCwgMjcsIAorICAgIDIzMywgMTA0LCAyLCAxMTIsIDQwLCAxNywgMjEwLCA4NywgMjExLCAyNDUsIDIyOCwgNzQsIDIxOSwgMTksIDEyNiwgMjQ1LCAKKyAgICAzMiwgNzgsIDEyNiwgMjIzLCAyNTUsIDc4LCAxMjYsIDU0LCA1MCwgMTI2LCAyNDcsIDEzMywgNTAsIDEyNiwgMjI1LCAxODMsIAorICAgIDUwLCAxMjYsIDI1NCwgMTI3LCAxMjYsIDI1NCwgNTgsIDEyNiwgNDMsIDIyNiwgNCwgMTI2LCA0NCwgMjI2LCA0LCAxMjYsIAorICAgIDI1MywgMjE3LCAxMjYsIDk2LCA1MCwgMTI2LCAyNDksIDIyMCwgMTI2LCAyNDAsIDE2OCwgMTI2LCAyNDMsIDIzMCwgMjE4LCAKKyAgICAxMzAsIDEyNiwgMjE5LCA0NywgMTI2LCAyMSwgMjEwLCA4NiwgMTI2LCAyMSwgMTEwLCAxMjYsIDIxLCAxMDUsIDEyNiwgMjEsIAorICAgIDE1OCwgMTI2LCAyMSwgMTYxLCAxMjYsIDIxLCAxODksIDEyNiwgMjEsIDE5NCwgMTI2LCAyMSwgMTk4LCAxMjYsIDIxLCAKKyAgICAxOTUsIDEyNiwgMjEsIDIwMCwgMTI2LCAyNDksIDIyNywgMTI2LCAyMjAsIDE1MSwgMTI2LCAyMzMsIDE2LCA1MCwgMTI2LCAKKyAgICAyNDUsIDk5LCA1MCwgMTI2LCAyNDIsIDEzMSwgNTAsIDEyNiwgMjI0LCAxNCwgNzgsIDEyNiwgMjQ5LCAyMTgsIDI1MywgCisgICAgMjA3LCAxMjYsIDcsIDYsIDEsIDYxLCAxMjYsIDcsIDYsIDEsIDI1MywgMTU5LCAxMjYsIDcsIDYsIDEsIDI1MSwgNjcsIAorICAgIDEyNiwgNywgNiwgMSwgMjQ5LCA2MSwgMTI2LCA3LCA2LCAxLCA3NSwgMTI2LCA3LCA2LCAxLCAyNDUsIDcsIDEyNiwgNywgNiwgCisgICAgMSwgMjQzLCAyMDMsIDEyNiwgNywgNiwgMSwgMjQyLCA2MSwgMTI2LCA3LCA2LCAxLCA3MywgMTI2LCA3LCA2LCAxLCAyMzUsIAorICAgIDE0NSwgMTI2LCA3LCA2LCAxLCAyMzUsIDI0LCAxMjYsIDcsIDYsIDEsIDE1NiwgMTI2LCA3LCA2LCAxLCAxOTMsIDEyNiwgNywgCisgICAgNiwgMSwgMjMwLCAyNiwgMTI2LCA3LCA2LCAxLCA3NiwgMTI2LCA3LCA2LCAxLCAyMjYsIDEwNiwgMTI2LCA3LCA2LCAxLCAKKyAgICAyMjQsIDk3LCAxMjYsIDcsIDYsIDEsIDE1MywgMTI2LCA3LCA2LCAxLCAyMjIsIDkyLCAxMjYsIDcsIDYsIDEsIDIxNywgCisgICAgMTUzLCAxMjYsIDcsIDYsIDEsIDcwLCAxMjYsIDcsIDYsIDEsIDIxNCwgMTA1LCAxMjYsIDcsIDYsIDEsIDIxMiwgOTgsIAorICAgIDEyNiwgNywgNiwgMSwgMjExLCAxNzgsIDEyNiwgNywgNiwgMSwgMjExLCAxMTcsIDEyNiwgNywgNiwgMSwgMjEwLCAxNTksIAorICAgIDEyNiwgNDMsIDQyLCAxMjcsIDEyNiwgMjIzLCA1MSwgMjE5LCA0NywgMTI2LCA0NCwgNDIsIDEyNywgMTI2LCAyNTAsIDMyLCAKKyAgICAyNTUsIDE1LCAxMjYsIDEyMSwgMjMyLCAyMTQsIDEyNiwgMjQyLCAxMzgsIDI1NSwgMTUsIDEyNiwgNywgNCwgMSwgNjEsIAorICAgIDEyNiwgNywgNCwgMSwgMjUzLCAxNTksIDEyNiwgNywgNCwgMSwgMjUxLCA2NywgMTI2LCA3LCA0LCAxLCAyNDksIDYxLCAKKyAgICAxMjYsIDcsIDQsIDEsIDc1LCAxMjYsIDcsIDQsIDEsIDI0NSwgNywgMTI2LCA3LCA0LCAxLCAyNDMsIDIwMywgMTI2LCA3LCAKKyAgICA0LCAxLCAyNDIsIDYxLCAxMjYsIDcsIDQsIDEsIDczLCAxMjYsIDcsIDQsIDEsIDIzNSwgMTQ1LCAxMjYsIDcsIDQsIDEsIAorICAgIDIzNSwgMjQsIDEyNiwgNywgNCwgMSwgMTU2LCAxMjYsIDcsIDQsIDEsIDE5MywgMTI2LCA3LCA0LCAxLCAyMzAsIDI2LCAKKyAgICAxMjYsIDcsIDQsIDEsIDc2LCAxMjYsIDcsIDQsIDEsIDIyNiwgMTA2LCAxMjYsIDcsIDQsIDEsIDIyNCwgOTcsIDEyNiwgNywgCisgICAgNCwgMSwgMTUzLCAxMjYsIDcsIDQsIDEsIDIyMiwgOTIsIDEyNiwgNywgNCwgMSwgMjE3LCAxNTMsIDEyNiwgNywgNCwgMSwgCisgICAgNzAsIDEyNiwgNywgNCwgMSwgMjE0LCAxMDUsIDEyNiwgNywgNCwgMSwgMjEyLCA5OCwgMTI2LCA3LCA0LCAxLCAyMTEsIAorICAgIDE3OCwgMTI2LCA3LCA0LCAxLCAyMTEsIDExNywgMTI2LCA3LCA0LCAxLCAyMTAsIDE1OSwgMTI2LCA0MywgMjQ5LCAxMDAsIAorICAgIDEyNywgMTI2LCA2NywgMjMyLCAyMTQsIDEyNiwgNDQsIDI0OSwgMTAwLCAxMjcsIDEyNiwgMTgzLCAxMjYsIDQzLCA3MSwgCisgICAgMjI2LCA0LCAxMjYsIDQ0LCA3MSwgMjI2LCA0LCAxMDEsIDEwOSwgMjQzLCAyMzAsIDIxOCwgMTMwLCAxMDEsIDQzLCAyNDksIAorICAgIDE2MiwgMTI3LCAxMDEsIDQ0LCAyNDksIDE2MiwgMTI3LCAxMDEsIDEwOSwgMjQ5LCAyMjAsIDEwMSwgNTYsIDIzMCwgMjI1LCAKKyAgICAyNDcsIDEyMSwgMTAxLCA1NiwgMSwgMjExLCAyMjcsIDEwMSwgNTYsIDEsIDQsIDYxLCAxMDEsIDU2LCAxLCA0LCA3MywgCisgICAgMTAxLCA1NiwgMSwgNCwgNzAsIDEwMSwgNTYsIDEsIDQsIDc1LCAxMDEsIDU2LCAxLCA0LCA3NiwgMTAxLCA1NiwgMSwgNCwgCisgICAgMTkxLCAxMDEsIDU2LCAxLCA0LCAyMTAsIDIxMiwgMTAxLCA1NiwgMSwgNCwgMjEwLCAyNDQsIDEwMSwgNTYsIDEsIDQsIAorICAgIDIxNSwgMTE5LCAxMDEsIDIzNCwgMjAyLCAyMjQsIDE3NCwgMjE5LCAzMiwgNzgsIDEwMSwgNTYsIDEsIDYxLCAxMDEsIDU2LCAKKyAgICAxLCA3MywgMTAxLCA1NiwgMSwgNzAsIDEwMSwgNTYsIDEsIDc1LCAxMDEsIDU2LCAxLCA3NiwgMTAxLCA1NiwgMSwgMTc2LCAKKyAgICAxMDEsIDU2LCAxLCAyMzQsIDkzLCAxMDEsIDU2LCAxLCAyMzMsIDIxOCwgMTAxLCA1NiwgMSwgMjM0LCAxODMsIDEwMSwgNTYsIAorICAgIDEsIDIzNCwgMjksIDEwMSwgNTYsIDEsIDIwNiwgMTAxLCA1NiwgMSwgMjE5LCAxOTIsIDEwMSwgNTYsIDEsIDIxOCwgODQsIAorICAgIDEwMSwgNTYsIDEsIDIyMSwgMTgyLCAxMDEsIDU2LCAxLCAyMTksIDU5LCAxMDEsIDU2LCAxLCAyMTcsIDEwNiwgMTAxLCA1NiwgCisgICAgMSwgMjE2LCAxMTgsIDEwMSwgNTYsIDEsIDIxNSwgMTE5LCAxMDEsIDU2LCAxLCAyMTcsIDIzLCAxMDEsIDU2LCAxLCAxMTEsIAorICAgIDEwMSwgNTYsIDEsIDE5NywgMTAxLCA1NiwgMSwgMjI4LCAyMzQsIDEwMSwgNTYsIDEsIDIyNywgMjM4LCAxMDEsIDU2LCAxLCAKKyAgICAyMjksIDEwOCwgMTAxLCA1NiwgMSwgMjI4LCA3NSwgMTAxLCA1NiwgMSwgMTYyLCAxMDEsIDU2LCAxLCAyNDEsIDE4MSwgCisgICAgMTAxLCA1NiwgMSwgMjQwLCAyMjMsIDEwMSwgNTYsIDEsIDI0MSwgMjM5LCAxMDEsIDU2LCAxLCAyNDEsIDY5LCAxMDEsIDU2LCAKKyAgICAxLCAxODUsIDEwMSwgNTYsIDEsIDIzMCwgMjMxLCAxMDEsIDU2LCAxLCAyMzAsIDEwMywgMTAxLCA1NiwgMSwgMjMxLCA5MiwgCisgICAgMTAxLCA1NiwgMSwgMjMwLCAxNjIsIDEwMSwgNTYsIDEsIDE5MSwgMTAxLCA1NiwgMSwgMjEwLCAyMTIsIDEwMSwgNTYsIDEsIAorICAgIDIxMCwgMjQ0LCAxMDEsIDU2LCAxLCAyMDUsIDEwMSwgNTYsIDEsIDIyMywgMzYsIDEwMSwgNTYsIDEsIDIyMiwgMTQxLCAKKyAgICAxMDEsIDU2LCAxLCAyMjMsIDEyOSwgMTAxLCA1NiwgMSwgMjIyLCAyMTIsIDEwMSwgNTYsIDEsIDIxMiwgNjUsIDEwMSwgNTYsIAorICAgIDEsIDIzMCwgMjYsIDEwMSwgNTYsIDIxMywgMTM1LCAyMTksIDMyLCA3OCwgMTAxLCA1NiwgMjIwLCAxNTYsIDIxOSwgMzIsIAorICAgIDc4LCAxMDEsIDI0LCAyNDQsIDEwNCwgMTAxLCAyNCwgMSwgMjM0LCA1OSwgMTAxLCAyNCwgMSwgMjE4LCAyMTYsIDEwMSwgCisgICAgMjQsIDEsIDIzNCwgNTIsIDEwMSwgMjQsIDEsIDIyOCwgMjI3LCAxMDEsIDI0LCAxLCAyMjgsIDIyNSwgMTAxLCAyNCwgMSwgCisgICAgMjI4LCAyMjQsIDEwMSwgMjQsIDEsIDIxNiwgMTAyLCAxMDEsIDI0LCAxLCAyMTgsIDIwNSwgMTAxLCAyNCwgMSwgMjIzLCAKKyAgICAyNywgMTAxLCAyNCwgMSwgMjIzLCAyMiwgMTAxLCAyNCwgMSwgMjIzLCAxOSwgMTAxLCAyNCwgMSwgMjIzLCAxMiwgMTAxLCAKKyAgICAyNCwgMSwgMjIzLCA3LCAxMDEsIDI0LCAxLCAyMjMsIDIsIDEwMSwgMjQsIDEsIDIyMywgMTMsIDEwMSwgMjQsIDEsIDIyMywgCisgICAgMjUsIDEwMSwgMjQsIDEsIDIzMCwgMjE4LCAxMDEsIDI0LCAxLCAyMjUsIDk2LCAxMDEsIDI0LCAxLCAyMTgsIDIxMywgMTAxLCAKKyAgICAyNCwgMSwgMjI1LCA4NSwgMTAxLCAyNCwgMSwgMjE5LCAxNDksIDEwMSwgMjQsIDEsIDIxOCwgMjEwLCAxMDEsIDI0LCAxLCAKKyAgICAyMzYsIDU3LCAxMDEsIDI0LCAxLCAyNTAsIDQ3LCAxMDEsIDI0LCAxLCAyMTgsIDIyMCwgMTAxLCAyNCwgMSwgMjUwLCAxMDcsIAorICAgIDEwMSwgMjQsIDEsIDIzNCwgMTExLCAxMDEsIDI0LCAxLCAyMTYsIDE3NCwgMTAxLCAyNCwgMSwgMjI1LCAxMzIsIDEwMSwgCisgICAgMjQsIDEsIDI0MSwgMTczLCAxMDEsIDI0LCAxLCA2MSwgMTAxLCAyNCwgMSwgMjU0LCAyNDQsIDEwMSwgMjQsIDEsIDE5MSwgCisgICAgMTAxLCAyNCwgMSwgMjExLCA5MiwgMTAxLCAyNCwgMSwgMjQ1LCAxMTgsIDEwMSwgMjQsIDEsIDc1LCAxMDEsIDI0LCAxLCAKKyAgICAyMTEsIDM2LCAxMDEsIDI0LCAxLCAyMTEsIDQ3LCAxMDEsIDI0LCAxLCA3NiwgMTAxLCAyNCwgMSwgMjEyLCA2NSwgMTAxLCAKKyAgICAyNCwgMSwgMjEyLCA2MiwgMTAxLCAyNCwgMSwgMjI2LCAyMzUsIDEwMSwgMjQsIDEsIDIxMCwgMjQ0LCAxMDEsIDI0LCAxLCAKKyAgICA3MCwgMTAxLCAyNCwgMSwgMjEyLCAxMSwgMTAxLCAyNCwgMSwgMjEyLCAyMiwgMTAxLCAyNCwgMSwgMjExLCAyNTAsIDEwMSwgCisgICAgMjQsIDEsIDIxMCwgMjEyLCAxMDEsIDI0LCAxLCAyNDUsIDU2LCAxMDEsIDI0LCAxLCAyMTEsIDgsIDEwMSwgMjQsIDEsIDczLCAKKyAgICAxMjYsIDI1MCwgMTc3LCA1MCwgMTI2LCAyMjQsIDIyOSwgNTAsIDEyNiwgMjI4LCA1MywgNTAsIDEyNiwgMjMxLCAyMzMsIAorICAgIDEyNiwgMjUxLCAxMzYsIDEzMCwgMTI2LCAyMTEsIDQwLCA1MCwgMTI2LCAyMTEsIDIxNywgNTAsIDEwMSwgMjQ0LCAxOSwgCisgICAgMTkyLCAyMTMsIDIzOSwgMTAxLCAxNDAsIDc0LCAxMDEsIDIxNCwgMTUzLCA3NCwgMTAxLCA5NywgNzQsIDEwMSwgMjQ2LCAKKyAgICAxMDUsIDc0LCAxMDEsIDg1LCAyMTgsIDIzNSwgMTAxLCA3MSwgMjUwLCAzNiwgMjM1LCAyMDUsIDI1NCwgMTAwLCAyNTQsIAorICAgIDEyMSwgMjM1LCAyMDUsIDI1NCwgMTAwLCAyMjAsIDEzOCwgMjM1LCAyMDUsIDI1NCwgMTAwLCAyMTYsIDIzNywgMjI2LCAKKyAgICAyNTAsIDIyMywgNzMsIDI1MCwgMTQzLCAyMjMsIDczLCAyNTAsIDE0MywgNjIsIDU3LCAzLCAyNTMsIDE0MywgNjEsIDYyLCAKKyAgICA1NywgMywgMjUzLCAxMTIsIDc1LCA2MiwgNTcsIDMsIDI1MywgMTIxLCA3MywgNjIsIDU3LCAzLCAyNTMsIDg5LCA3NiwgNjIsIAorICAgIDU3LCAzLCAyNTMsIDEzOSwgNzAsIDYyLCA1NywgMywgMjUzLCAxNTgsIDI0OCwgMjIyLCA2MiwgNTcsIDMsIDI1MywgMTA1LCAKKyAgICAyNDgsIDkxLCA2MiwgNTcsIDMsIDI1MywgMTQ1LCAyNDgsIDQsIDYyLCA1NywgMywgMjUzLCAxMzUsIDI0NywgMTQ2LCA2MiwgCisgICAgNTcsIDMsIDI1MywgOTksIDI0NiwgNzksIDYyLCA1NywgMywgMjUzLCA5MywgMjM1LCAxNDIsIDYyLCA1NywgMywgMjUzLCAKKyAgICAxMDQsIDIzNSwgMTI3LCA2MiwgNTcsIDMsIDI1MywgMTE0LCAyMzUsIDY5LCA2MiwgNTcsIDMsIDI1MywgODUsIDIzNSwgNTIsIAorICAgIDYyLCA1NywgMywgMjUzLCA3MywgMTc2LCA2MiwgNTcsIDMsIDI1MywgMTA2LCAyMzQsIDE4MywgNjIsIDU3LCAzLCAyNTMsIAorICAgIDgzLCAyMzQsIDkzLCA2MiwgNTcsIDMsIDI1MywgODAsIDIzNCwgMjksIDYyLCA1NywgMywgMjUzLCA2OSwgMjMzLCAyMTgsIAorICAgIDYyLCA1NywgMywgMjUzLCA3MCwgMTg1LCA2MiwgNTcsIDMsIDI1MywgMTM2LCAyMzEsIDkyLCA2MiwgNTcsIDMsIDI1MywgCisgICAgNzcsIDIzMCwgMjMxLCA2MiwgNTcsIDMsIDI1MywgMTM0LCAyMzAsIDE2MiwgNjIsIDU3LCAzLCAyNTMsIDEyNiwgMjMwLCAKKyAgICAxMDMsIDYyLCA1NywgMywgMjUzLCAxNDcsIDE5NywgNjIsIDU3LCAzLCAyNTMsIDEyNSwgMjI5LCAxMDgsIDYyLCA1NywgMywgCisgICAgMjUzLCAxMTksIDIyOCwgMjM0LCA2MiwgNTcsIDMsIDI1MywgOTgsIDIyOCwgNzUsIDYyLCA1NywgMywgMjUzLCA5NSwgMjI3LCAKKyAgICAyMzgsIDYyLCA1NywgMywgMjUzLCAxNTQsIDE5MCwgNjIsIDU3LCAzLCAyNTMsIDc4LCAyMjUsIDIyMiwgNjIsIDU3LCAzLCAKKyAgICAyNTMsIDExMSwgMjI1LCAxMDksIDYyLCA1NywgMywgMjUzLCAxMzgsIDIyNSwgMTcsIDYyLCA1NywgMywgMjUzLCAxMDAsIAorICAgIDIyNCwgMTUxLCA2MiwgNTcsIDMsIDI1MywgMTMzLCAyMjQsIDg5LCA2MiwgNTcsIDMsIDI1MywgNzIsIDIyNCwgNzAsIDYyLCAKKyAgICA1NywgMywgMjUzLCAxMjgsIDIyNCwgNTQsIDYyLCA1NywgMywgMjUzLCAxMTcsIDIyNCwgNDMsIDYyLCA1NywgMywgMjUzLCAKKyAgICA5MCwgMjA1LCA2MiwgNTcsIDMsIDI1MywgMTIyLCAyMjMsIDEyOSwgNjIsIDU3LCAzLCAyNTMsIDk3LCAyMjMsIDM2LCA2MiwgCisgICAgNTcsIDMsIDI1MywgMTU2LCAyMjIsIDIxMiwgNjIsIDU3LCAzLCAyNTMsIDEyMywgMjIyLCAxNDEsIDYyLCA1NywgMywgMjUzLCAKKyAgICAxMTgsIDIwNiwgNjIsIDU3LCAzLCAyNTMsIDE0MSwgMjIxLCAxODIsIDYyLCA1NywgMywgMjUzLCAxMDksIDIxOSwgMTkyLCAKKyAgICA2MiwgNTcsIDMsIDI1MywgMTM3LCAyMTksIDU5LCA2MiwgNTcsIDMsIDI1MywgOTIsIDIxOCwgODQsIDYyLCA1NywgMywgCisgICAgMjUzLCA5MSwgMjE3LCAxMDYsIDYyLCA1NywgMywgMjUzLCAxNTIsIDIxNywgMjMsIDYyLCA1NywgMywgMjUzLCAxMTMsIAorICAgIDIxNiwgMTE4LCA2MiwgNTcsIDMsIDI1MywgMTUwLCAxMTEsIDYyLCA1NywgMywgMjUzLCA4MSwgMjE1LCAxMTksIDYyLCA1NywgCisgICAgMywgMjUzLCA5NiwgMjEyLCA2NSwgNjIsIDU3LCAzLCAyNTMsIDc1LCAyMTIsIDIyLCA2MiwgNTcsIDMsIDI1MywgMTEwLCAKKyAgICAyMTEsIDI1MCwgNjIsIDU3LCAzLCAyNTMsIDEwOCwgMjExLCAyMjcsIDYyLCA1NywgMywgMjUzLCAxMzIsIDIxMCwgMTE2LCAKKyAgICA2MiwgNTcsIDMsIDI1MywgNzYsIDIxMCwgOTQsIDYyLCA1NywgMywgMjUzLCAxMjksIDIxMCwgMjMsIDYyLCA1NywgMywgCisgICAgMjUzLCAxMjQsIDI1NSwgNzYsIDYyLCA1NywgMywgMjUzLCAxMDcsIDI1NSwgNzUsIDYyLCA1NywgMywgMjUzLCA2NiwgMjUzLCAKKyAgICAxOTMsIDYyLCA1NywgMywgMjUzLCA3OSwgMjQ2LCA0NywgNjIsIDU3LCAzLCAyNTMsIDYyLCAyNDYsIDQ2LCA2MiwgNTcsIDMsIAorICAgIDI1MywgMTAyLCAyMjcsIDE3NSwgNjIsIDU3LCAzLCAyNTMsIDEyMCwgMjI0LCAxNDksIDYyLCA1NywgMywgMjUzLCA4OCwgCisgICAgMjI0LCAxNTMsIDYyLCA1NywgMywgMjUzLCA3NCwgMjIzLCAxODcsIDYyLCA1NywgMywgMjUzLCAxMTYsIDIyMywgMTg2LCAKKyAgICA2MiwgNTcsIDMsIDI1MywgODIsIDIyMiwgMjExLCA2MiwgNTcsIDMsIDI1MywgODQsIDIxNywgMTAzLCA2MiwgNTcsIDMsIAorICAgIDI1MywgNjQsIDIxNSwgNzgsIDYyLCA1NywgMywgMjUzLCA2MSwgMTA1LCA2MiwgNTcsIDE2LCAyNTMsIDEzMSwgNjIsIDU3LCAKKyAgICAxNiwgMjUzLCAxMzAsIDYyLCA1NywgMTYsIDI1MywgMTI3LCA2MiwgNTcsIDE2LCAyNTMsIDExNSwgNjIsIDU3LCAxNiwgCisgICAgMjUzLCAxMDMsIDYyLCA1NywgMTYsIDI1MywgMTAxLCA2MiwgNTcsIDE2LCAyNTMsIDk0LCA2MiwgNTcsIDE2LCAyNTMsIDg3LCAKKyAgICA2MiwgNTcsIDE2LCAyNTMsIDg2LCA2MiwgNTcsIDE2LCAyNTMsIDcxLCA2MiwgNTcsIDE2LCAyNTMsIDY4LCA2MiwgNTcsIAorICAgIDE2LCAyNTMsIDY3LCA2MiwgNTcsIDE2LCAyNTMsIDY1LCA2MiwgNTcsIDE2LCAyNTMsIDYzLCA2MiwgNTcsIDEwNiwgMjUzLCAKKyAgICA2MCwgMjMxLCAxODYsIDYyLCA1NywgMTA2LCAyNTMsIDU5LCAyMTEsIDIyMSwgNjIsIDU3LCAxMDYsIDI1MywgNTgsIDI0OCwgCisgICAgNzUsIDYyLCA1NywgMTA2LCAyNTMsIDU3LCAyNDUsIDk2LCA2MiwgNTcsIDEwNiwgMjUzLCA1NiwgMjMxLCAxNjAsIDYyLCAKKyAgICA1NywgMTA2LCAyNTMsIDU1LCAyMTgsIDE2MywgNjIsIDU3LCAxMDYsIDI1MywgNTQsIDI0NSwgMzgsIDYyLCA1NywgMTA2LCAKKyAgICAyNTMsIDUzLCAyMjMsIDE1NCwgNjIsIDU3LCAxMDYsIDI1MywgNTIsIDIyMCwgNjMsIDYyLCA1NywgMTA2LCAyNTMsIDUxLCAKKyAgICAyNDEsIDIzOCwgNjIsIDU3LCAxMDYsIDI1MywgNTAsIDIxOSwgMjYsIDYyLCA1NywgMTA2LCAyNTMsIDQ5LCAyNTEsIDIwNCwgCisgICAgNjIsIDU3LCAxMDYsIDI1MywgNDgsIDI0OSwgMTQ2LCA2MiwgNTcsIDEwNiwgMjUzLCA0NywgMjUxLCAxMTYsIDYyLCA1NywgCisgICAgMTA2LCAyNTMsIDQ2LCAyMTIsIDIsIDYyLCA1NywgMTA2LCAyNTMsIDQ1LCAyNTIsIDEzNywgNjIsIDU3LCAxMDYsIDI1MywgCisgICAgNDQsIDIyNiwgMjA2LCA2MiwgNTcsIDEwNiwgMjUzLCA0MywgMjE4LCAyNTUsIDYyLCA1NywgMTA2LCAyNTMsIDQyLCAyNDksIAorICAgIDY5LCA2MiwgNTcsIDIzMCwgMTQzLCAyNTMsIDQxLCAyMzQsIDIyNSwgNjIsIDU3LCAyMzAsIDE0MywgMjUzLCA0MCwgMjM0LCAKKyAgICAyMzMsIDYyLCA1NywgMTA2LCAyNTMsIDM5LCAyMjYsIDIxOSwgNjIsIDU3LCAxMDYsIDI1MywgMzgsIDIxMSwgMjM2LCA2MiwgCisgICAgNTcsIDEwNiwgMjUzLCAzNywgNjIsIDU3LCAyMzAsIDE0MywgMjUzLCAzNiwgMjU0LCAxOCwgNjIsIDU3LCAyMzAsIDE0MywgCisgICAgMjUzLCAzNSwgMjMxLCA1MywgNjIsIDU3LCAxMDYsIDI1MywgMzQsIDI1MSwgMTM1LCA2MiwgNTcsIDEwNiwgMjUzLCAzMywgCisgICAgMjQyLCAxNjcsIDYyLCA1NywgMTA2LCAyNTMsIDMyLCA2MiwgNTcsIDEwNiwgMjUzLCAzMSwgMjExLCAyMTIsIDYyLCA1NywgCisgICAgMTA2LCAyNTMsIDMwLCA2MiwgNTcsIDEwNiwgMjUzLCAyOSwgNjIsIDU3LCAxMDYsIDI1MywgMjgsIDI0MCwgMjQ5LCA2MiwgCisgICAgNTcsIDEwNiwgMjUzLCAyNywgNjIsIDU3LCAxMDYsIDI1MywgMjYsIDYyLCA1NywgMTA2LCAyNTMsIDI1LCA2MiwgNTcsIAorICAgIDIzMCwgMTQzLCAyNTMsIDIzLCAyMTUsIDkyLCA2MiwgNTcsIDEwNiwgMjUzLCAyMiwgNjIsIDU3LCAxMDYsIDI1MywgMjEsIAorICAgIDYyLCA1NywgMTA2LCAyNTMsIDIwLCAyNDksIDI1MSwgNjIsIDU3LCAxMDYsIDI1MywgMTksIDYyLCA1NywgMTA2LCAyNTMsIAorICAgIDE4LCA2MiwgNTcsIDEwNiwgMjUzLCAxNywgMjQzLCA5NCwgNjIsIDU3LCAxMDYsIDI1MywgMTYsIDI1NCwgNSwgNjIsIDU3LCAKKyAgICAxMDYsIDI1MywgMTUsIDYyLCA1NywgMTA2LCAyNTMsIDE0LCA2MiwgNTcsIDEwNiwgMjUzLCAxMywgNjIsIDU3LCAxMDYsIAorICAgIDI1MywgMTIsIDYyLCA1NywgMTA2LCAyNTMsIDExLCA2MiwgNTcsIDEwNiwgMjUzLCAxMCwgNjIsIDU3LCAxMDYsIDI1MywgOSwgCisgICAgNjIsIDU3LCAxMDYsIDI1MywgOCwgNjIsIDU3LCAxMDYsIDI1MywgNywgNjIsIDU3LCAxMDYsIDI1MywgNiwgMjMwLCAxMzUsIAorICAgIDYyLCA1NywgMTA2LCAyNTMsIDUsIDYyLCA1NywgMTA2LCAyNTMsIDQsIDIxNSwgMjM2LCA2MiwgNTcsIDEwNiwgMjUzLCAzLCAKKyAgICA2MiwgNTcsIDEwNiwgMjUzLCAyLCA2MiwgNTcsIDEwNiwgMjUzLCAxLCA2MiwgNTcsIDEwNiwgMjUzLCAwLCA2MiwgNTcsIAorICAgIDEwNiwgMjUyLCAyNTUsIDYyLCA1NywgMTA2LCAyNTIsIDI1NCwgNjIsIDU3LCAxMDYsIDI1MiwgMjUzLCA2MiwgNTcsIDEwNiwgCisgICAgMjUyLCAyNTIsIDYyLCA1NywgMTA2LCAyNTIsIDI1MSwgNjIsIDU3LCAxMDYsIDI1MiwgMjUwLCA2MiwgNTcsIDEwNiwgMjUyLCAKKyAgICAyNDksIDYyLCA1NywgMTA2LCAyNTIsIDI0OCwgMjQxLCAyMTIsIDYyLCA1NywgMTA2LCAyNTIsIDIyNywgMjQ0LCAyOSwgNjIsIAorICAgIDU3LCAxMDYsIDI1MiwgMjI0LCAyNTIsIDExNywgNjIsIDU3LCAxMDYsIDI1MiwgMjE5LCAyMTksIDYsIDYyLCA1NywgMTA2LCAKKyAgICAyNTIsIDIxOCwgNzQsIDYyLCA1NywgMTA2LCAyNTIsIDIxNywgNjIsIDU3LCAxMDYsIDI1MiwgMjE2LCAyMTcsIDIzNywgNjIsIAorICAgIDU3LCAxMDYsIDI1MiwgMjE1LCA2MiwgNTcsIDEwNiwgMjUyLCAyMTQsIDYyLCA1NywgMTA2LCAyNTIsIDIxMywgMjExLCAKKyAgICAyNTQsIDI1MCwgMTQwLCA2MiwgNTcsIDEwNiwgMjUyLCAyMTIsIDI1MCwgMTQwLCA2MiwgNTcsIDEwNiwgMjUyLCAyMTEsIAorICAgIDI1MCwgMTQxLCAyNDQsIDAsIDYyLCA1NywgMTA2LCAyNTIsIDIxMCwgMjEyLCAwLCA2MiwgNTcsIDEwNiwgMjUyLCAyMDksIAorICAgIDYyLCA1NywgMTA2LCAyNTIsIDIwOCwgNjIsIDU3LCAyMzAsIDE0MywgMjUyLCAyMDcsIDI0NywgMTk5LCA2MiwgNTcsIDEwNiwgCisgICAgMjUyLCAyMDYsIDYyLCA1NywgMTA2LCAyNTIsIDIwNSwgNjIsIDU3LCAxMDYsIDI1MiwgMjAzLCA2MiwgNTcsIDEwNiwgMjUyLCAKKyAgICAyMDIsIDYyLCA1NywgMTA2LCAyNTIsIDIwMSwgNjIsIDU3LCAxMDYsIDI1MiwgMjAwLCAyNDgsIDE2MCwgNjIsIDU3LCAxMDYsIAorICAgIDI1MiwgMTk5LCA2MiwgNTcsIDEwNiwgMjUyLCAxOTgsIDYyLCA1NywgMTA2LCAyNTIsIDE5NywgNjIsIDU3LCAxMDYsIDI1MiwgCisgICAgMTk2LCA2MiwgNTcsIDEwNiwgMjUyLCAxOTUsIDYyLCA1NywgMTA2LCAyMTMsIDE4NiwgMjUzLCAyNCwgNjIsIDU3LCAxMDYsIAorICAgIDIxMywgMTg2LCAyNTIsIDI0NywgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDI0NiwgNjIsIDU3LCAxMDYsIDIxMywgCisgICAgMTg2LCAyNTIsIDI0NSwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDI0NCwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAKKyAgICAyNTIsIDI0MywgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDI0MiwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIAorICAgIDI0MSwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDI0MCwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIzOSwgCisgICAgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIzOCwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIzNywgNjIsIDU3LCAKKyAgICAxMDYsIDIxMywgMTg2LCAyNTIsIDIzNiwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIzNSwgNjIsIDU3LCAxMDYsIAorICAgIDIxMywgMTg2LCAyNTIsIDIzNCwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIzMywgNjIsIDU3LCAxMDYsIDIxMywgCisgICAgMTg2LCAyNTIsIDIzMiwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIzMSwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAKKyAgICAyNTIsIDIzMCwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIyOSwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIAorICAgIDIyOCwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIyNiwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIyNSwgCisgICAgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIyMywgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIyMiwgNjIsIDU3LCAKKyAgICAxMDYsIDIxMywgMTg2LCAyNTIsIDIyMSwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIyMCwgNjIsIDU3LCAxMDYsIAorICAgIDIxMywgMTg2LCAyNTIsIDIwNCwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDE5NCwgMjU0LCAyMzcsIDIxMSwgMjA5LCAKKyAgICAyMjAsIDEzOSwgMjMyLCAyMTQsIDI1NCwgMjM3LCAyMTEsIDIwOSwgMjIwLCAxMzksIDI0NywgMTIxLCAyNTQsIDIzNywgCisgICAgMjUwLCAxMzEsIDc4LCAyNTQsIDIzNywgNTQsIDExMCwgMjU0LCAyMzcsIDU0LCAxMDUsIDI1NCwgMjM3LCA1NCwgMTU4LCAKKyAgICAyNTQsIDIzNywgNTQsIDE2MSwgMjU0LCAyMzcsIDU0LCAxODksIDI1NCwgMjM3LCA1NCwgMTk0LCAyNTQsIDIzNywgNTQsIAorICAgIDE5OCwgMjU0LCAyMzcsIDU0LCAxOTUsIDI1NCwgMjM3LCA1NCwgMjAwLCAyNTQsIDIzNywgNTQsIDIxNiwgMjQ4LCAyNTQsIAorICAgIDIzNywgNTQsIDIxNSwgNzMsIDI1NCwgMjM3LCA1NCwgMjE2LCAxNjMsIDI1NCwgMjM3LCA1NCwgMjQ0LCAxNiwgMjU0LCAKKyAgICAyMzcsIDU0LCAyNDQsIDExNSwgMjU0LCAyMzcsIDU0LCAyMTksIDExMiwgMjU0LCAyMzcsIDU0LCAyMjAsIDExNywgMjU0LCAKKyAgICAyMzcsIDU0LCAyNDUsIDE4NSwgMjU0LCAyMzcsIDU0LCAyMjgsIDE5NiwgMjU0LCAyMzcsIDU0LCAxMjMsIDI0MCwgMjExLCAKKyAgICAyNTQsIDIzNywgNTQsIDExMywgMjQwLCAyMTEsIDI1NCwgMjM3LCA1NCwgMTM0LCAyNDAsIDIxMSwgMjU0LCAyMzcsIDU0LCAKKyAgICAyNDQsIDEyLCAyNDAsIDIxMSwgMjU0LCAyMzcsIDU0LCAyNDQsIDgyLCAyNDAsIDIxMSwgMjU0LCAyMzcsIDU0LCAyMTksIAorICAgIDEyNiwgMjQwLCAyMTEsIDI1NCwgMjM3LCA1NCwgMjIwLCAxMjMsIDI0MCwgMjExLCAyNTQsIDIzNywgNTQsIDI0NSwgMTk0LCAKKyAgICAyNDAsIDIxMSwgMjU0LCAyMzcsIDU0LCAyMjgsIDIwMSwgMjQwLCAyMTEsIDI1NCwgMjM3LCA1NCwgMTIzLCAyMTYsIDE0OCwgCisgICAgMjU0LCAyMzcsIDU0LCAxMTMsIDIxNiwgMTQ4LCAyNTQsIDIzNywgNTQsIDEzNCwgMjE2LCAxNDgsIDI1NCwgMjM3LCA1NCwgCisgICAgMjQ0LCAxMiwgMjE2LCAxNDgsIDI1NCwgMjM3LCA1NCwgMjQ0LCA4MiwgMjE2LCAxNDgsIDI1NCwgMjM3LCA1NCwgMjE5LCAKKyAgICAxMjYsIDIxNiwgMTQ4LCAyNTQsIDIzNywgNTQsIDIyMCwgMTIzLCAyMTYsIDE0OCwgMjU0LCAyMzcsIDU0LCAyNDUsIDE5NCwgCisgICAgMjE2LCAxNDgsIDI1NCwgMjM3LCA1NCwgMjI4LCAyMDEsIDIxNiwgMTQ4LCAyNTQsIDIzNywgNTQsIDIxNiwgMjQ5LCAyMTYsIAorICAgIDE0OCwgMjU0LCAyMzcsIDU0LCAyMTUsIDc0LCAyMTYsIDE0OCwgMjU0LCAyMzcsIDU0LCAyMTYsIDE2NCwgMjE2LCAxNDgsIAorICAgIDI1NCwgMjM3LCA1NCwgMjQ0LCAxNywgMjE2LCAxNDgsIDI1NCwgMjM3LCA1NCwgMjQ0LCAxMTYsIDIxNiwgMTQ4LCAyNTQsIAorICAgIDIzNywgNTQsIDIxOSwgMTEzLCAyMTYsIDE0OCwgMjU0LCAyMzcsIDU0LCAyMjAsIDExOCwgMjE2LCAxNDgsIDI1NCwgMjM3LCAKKyAgICA1NCwgMjQ1LCAxODYsIDIxNiwgMTQ4LCAyNTQsIDIzNywgNTQsIDIyOCwgMTk3LCAyMTYsIDE0OCwgMjU0LCAyMzcsIDIxMiwgCisgICAgMTQsIDI1MiwgMTI5LCAyMTQsIDE3MywgMjU0LCAyMzcsIDIxMiwgMTQsIDI0NCwgOTMsIDIxOCwgNjAsIDI1NCwgMjM3LCAKKyAgICAyMTIsIDE0LCAyMjEsIDE3NywgMjE4LCA2MCwgMjU0LCAyMzcsIDIxMiwgMTQsIDIxNiwgMTcwLCAyMTgsIDYwLCAyNTQsIAorICAgIDIzNywgMjEyLCAxNCwgMjQ0LCA1LCAyMTgsIDYwLCAyNTQsIDIzNywgMjQ2LCA4MiwgMjMxLCA5MSwgMjQ0LCA5MywgMjE4LCAKKyAgICA2MCwgMjU0LCAyMzcsIDIzMiwgMjAwLCAyMzEsIDkxLCAyNDQsIDkzLCAyMTgsIDYwLCAyNTQsIDIzNywgMjMxLCA5MSwgCisgICAgMjIxLCAxNzcsIDIxOCwgNjAsIDI1NCwgMjM3LCAyMzEsIDkxLCAyMTYsIDE3MCwgMjE4LCA2MCwgMjYsIDI1NSwgNywgMjUzLCAKKyAgICAxOTUsIDEyMywgMjI0LCAyMiwgMjYsIDI1NSwgNywgMjUzLCAxOTUsIDEyMywgMjQyLCAyOCwgMjYsIDI1NSwgNywgMjUzLCAKKyAgICAxOTUsIDEyMywgMjQ2LCAxMDEsIDI2LCAyNTUsIDcsIDI1MywgMTk1LCAxODksIDI2LCAyNTUsIDcsIDI1MywgMTk1LCAyNDQsIAorICAgIDExNSwgMjYsIDI1NSwgNywgMjUzLCAxOTUsIDI0NCwgODIsIDI0MCwgMjExLCAyNiwgMjU1LCA3LCAyNTMsIDE5NSwgMjQ0LCAKKyAgICA4MiwgMjE2LCAxNDgsIDI2LCAyNTUsIDcsIDI1MywgMTk1LCAyNDQsIDExNiwgMjE2LCAxNDgsIDI2LCAyNTUsIDcsIDI1MywgCisgICAgMTk1LCAyNDQsIDgyLCAyMTcsIDY4LCAyNiwgMjU1LCA3LCAyNTMsIDE5NSwgMjE2LCAyNDksIDIxNywgNjgsIDI2LCAyNTUsIAorICAgIDcsIDI1MywgMTk1LCAyNDQsIDExNiwgMjE3LCA2OCwgMjYsIDI1NSwgNywgMjUzLCAxOTUsIDEyMywgMjQwLCAyMTIsIDIxNywgCisgICAgNjgsIDI2LCAyNTUsIDcsIDI1MywgMTk1LCAyNDQsIDgyLCAyNDAsIDIxMiwgMjE3LCA2OCwgMjYsIDI1NSwgNywgMjUzLCAKKyAgICAxOTUsIDEyMywgMjE2LCAxNDksIDIxNywgNjgsIDI2LCAyNTUsIDcsIDI1MywgMTk1LCAyNDQsIDgyLCAyMTYsIDE0OSwgCisgICAgMjE3LCA2OCwgMjYsIDI1NSwgNywgMjUzLCAxOTUsIDI0NCwgODIsIDIxOCwgMTUxLCAyNiwgMjU1LCA3LCAyNTMsIDE5NSwgCisgICAgMjE2LCAyNDksIDIxOCwgMTUxLCAyNiwgMjU1LCA3LCAyNTMsIDE5NSwgMjQ0LCAxMTYsIDIxOCwgMTUxLCAyNiwgMjU1LCA3LCAKKyAgICAyNTMsIDE5NSwgMTIzLCAyNDAsIDIxMiwgMjE4LCAxNTEsIDI2LCAyNTUsIDcsIDI1MywgMTk1LCAyNDQsIDgyLCAyNDAsIAorICAgIDIxMiwgMjE4LCAxNTEsIDI2LCAyNTUsIDcsIDI1MywgMTk1LCAxMjMsIDIxNiwgMTQ5LCAyMTgsIDE1MSwgMjYsIDI1NSwgNywgCisgICAgMjUzLCAxOTUsIDIxNiwgMjQ5LCAyMTYsIDE0OSwgMjE4LCAxNTEsIDI2LCAyNTUsIDcsIDI1MywgMTk1LCAyNDQsIDExNiwgCisgICAgMjE2LCAxNDksIDIxOCwgMTUxLCAyNiwgMjU1LCA3LCAyNTMsIDE5NSwgMjE2LCAyNDksIDIzMCwgMTY1LCAyNiwgMjU1LCA3LCAKKyAgICAyNDEsIDIwNiwgMTIzLCAyMjUsIDMyLCAyNiwgMjU1LCA3LCAyMTYsIDE4MiwgMTEwLCAyNiwgMjU1LCA3LCAyNDEsIDIwMiwgCisgICAgMTEwLCAyNiwgMjU1LCA3LCAyNDUsIDEwNSwgMTA1LCAyNiwgMjU1LCA3LCAyMTYsIDE4MiwgMTA1LCAyNiwgMjU1LCA3LCAKKyAgICAyNDksIDY2LCAxMTMsIDI0NiwgMTAwLCAyNiwgMjU1LCA3LCAyNDUsIDEwNSwgMTEzLCAyNDYsIDEwMCwgMjYsIDI1NSwgNywgCisgICAgMjE1LCAyMDQsIDE4OSwgMjYsIDI1NSwgNywgMjE1LCAyMDQsIDIxNiwgMjQ4LCAyNiwgMjU1LCA3LCAyMTUsIDIwNCwgMjE2LCAKKyAgICAyNDksIDI1NCwgMTQyLCAxNywgMjYsIDI1NSwgNywgMjQxLCAyMDIsIDIxNiwgMjQ4LCAyNiwgMjU1LCA3LCAyMzEsIDQyLCAKKyAgICAyMTYsIDI0OCwgMjYsIDI1NSwgNywgMjE2LCAxODIsIDIxNiwgMjQ4LCAyNiwgMjU1LCA3LCAyMTYsIDE4MiwgMjE2LCAxNjMsIAorICAgIDI2LCAyNTUsIDcsIDIxNSwgMjA0LCAyNDQsIDExNSwgMjYsIDI1NSwgNywgMjE1LCAyMDQsIDI0NCwgMTE2LCAyNTQsIDE0MiwgCisgICAgMTcsIDI2LCAyNTUsIDcsIDI0MSwgMjAyLCAyNDQsIDExNSwgMjYsIDI1NSwgNywgMjE2LCAxODIsIDI0NCwgMTE1LCAyNiwgCisgICAgMjU1LCA3LCAyMTYsIDE4MiwgMTIzLCAyNDAsIDIxMSwgMjYsIDI1NSwgNywgMjE2LCAxODIsIDEzNCwgMjQwLCAyMTEsIDI2LCAKKyAgICAyNTUsIDcsIDI0NSwgMTA1LCAyNDQsIDgyLCAyNDAsIDIxMSwgMjYsIDI1NSwgNywgMjE1LCAyMDQsIDI0NCwgODIsIDI0MCwgCisgICAgMjExLCAyNiwgMjU1LCA3LCAyMTYsIDE4MiwgMjQ0LCA4MiwgMjQwLCAyMTEsIDI2LCAyNTUsIDcsIDI1MCwgMjI4LCAyNDQsIAorICAgIDgyLCAyNDAsIDIxMSwgMjYsIDI1NSwgNywgMjI5LCAxODMsIDI0NCwgODIsIDI0MCwgMjExLCAyNiwgMjU1LCA3LCAyMTYsIAorICAgIDE4MiwgMTIzLCAyMTYsIDE0OCwgMjYsIDI1NSwgNywgMjE2LCAxODIsIDI0NCwgODIsIDIxNiwgMTQ4LCAyNiwgMjU1LCA3LCAKKyAgICAyNDgsIDU4LCAyNDQsIDgyLCAyMzAsIDE2NSwgMjYsIDI1NSwgNywgMjE4LCAxMTksIDI0NCwgMTE2LCAyMzAsIDE2NSwgMjYsIAorICAgIDEyMywgMTYzLCA1MCwgMjYsIDEyMywgMTYzLCA1LCAyNTQsIDE0MiwgMTcsIDI2LCAxMTMsIDIxNiwgMTY4LCA1MCwgMjYsIAorICAgIDEzNCwgMjI0LCAyMSwgNTAsIDI2LCAyMTEsIDQ1LCA1MCwgMjYsIDIxNywgNjksIDUwLCAyNiwgMjQ2LCAxMDIsIDUwLCAyNiwgCisgICAgMjI2LCAyNDcsIDUwLCAyNiwgMTEzLCAyMjYsIDI0NiwgNTAsIDI2LCAxMzQsIDIyNiwgMjQ2LCA1MCwgMjYsIDI0NCwgMTIsIAorICAgIDIyNiwgMjQ2LCA1MCwgMjYsIDI0NCwgODIsIDIyNiwgMjQ2LCA1MCwgMjYsIDIzMSwgMzYsIDUwLCAyNiwgMjMzLCAxNTgsIAorICAgIDI1MiwgMTI5LCA1MCwgMjYsIDIzMiwgMTk1LCA1MCwgMjYsIDIyNiwgMTMyLCA1MCwgMjYsIDIxMSwgMTU5LCA1MCwgMjYsIAorICAgIDI1MywgMjQ0LCA1MCwgMjYsIDI1NCwgMSwgNTAsIDI2LCAyNDIsIDE0NSwgNTAsIDI2LCAyMTUsIDE4NywgMjUyLCAxMjksIAorICAgIDUwLCAyNiwgMjEwLCA4NywgNTAsIDIyMiwgMTk5LCAyMjAsIDExNCwgNTAsIDIyMiwgMTk5LCAyMTQsIDE4NSwgNTAsIDIyMiwgCisgICAgMTk5LCAyMjAsIDE0MywgNTAsIDIyMiwgMTk5LCAyMjAsIDExMiwgNTAsIDIyMiwgMTk5LCAyNDcsIDIxNCwgMjIwLCAxMTIsIAorICAgIDUwLCAyMjIsIDE5OSwgMjE5LCAxNjksIDUwLCAyMjIsIDE5OSwgMjQ4LCA1NCwgNTAsIDIyMiwgMTk5LCAyMjQsIDcsIDUwLCAKKyAgICAyMjIsIDE5OSwgMjIwLCAxMzAsIDUwLCAyMjIsIDE5OSwgMjQ2LCA2MSwgNTAsIDIyMiwgMTk5LCAyNTMsIDIzOSwgNTAsIAorICAgIDIyMiwgMTk5LCAyNTAsIDE3MiwgNTAsIDIyNSwgMTQ0LCAyNDcsIDE5MiwgNSwgMjI1LCAyMTQsIDIyNSwgMTQ0LCAyNDcsIAorICAgIDE5MiwgNSwgMjI1LCAyNSwgMjQxLCAyMzYsIDIyNSwgMTQ0LCAyNDcsIDE5MiwgNSwgMjE3LCA0NiwgMjQxLCAyMzYsIDIyNSwgCisgICAgMTQ0LCAyNDcsIDE5MiwgNSwgMjUwLCAyNDgsIDIyNSwgMTQ0LCAyNDcsIDE5MiwgNSwgMjUwLCAxMDIsIDIyNSwgMTQ0LCAKKyAgICAyNDcsIDE5MiwgNSwgMjExLCAyMjEsIDIyNSwgMTQ0LCAyNDcsIDE5MiwgNSwgMjQxLCAyMTIsIDIyNSwgMTQ0LCAyNDcsIAorICAgIDE5MiwgNSwgMjQzLCA4NiwgMjI1LCAxNDQsIDI0NywgMTkyLCA1LCAyMTYsIDExNywgMjI1LCAxNDQsIDI0NywgMTkyLCA1LCAKKyAgICA3NCwgMjI1LCAxNDQsIDI0NywgMTkyLCA1LCAyNTEsIDE3MCwgMjI1LCAxNDQsIDI0NywgMTkyLCA1LCAyMjAsIDMwLCAyMjUsIAorICAgIDE0NCwgMjQ3LCAxOTIsIDUsIDI0OSwgMjQ1LCAyMjUsIDE0NCwgMjQ3LCAxOTIsIDUsIDIzMSwgMTg1LCAyMjUsIDE0NCwgCisgICAgMjQ3LCAxOTIsIDUsIDIzMSwgMTM3LCAyMjUsIDE0NCwgMjQ3LCAxOTIsIDUsIDIyMSwgMjE3LCAyMjUsIDE0NCwgMjQ3LCAKKyAgICAxOTIsIDUsIDIzMiwgMjM4LCAyMjUsIDE0NCwgMjQ3LCAxOTIsIDUsIDI1MSwgMTg5LCAyMjUsIDE0NCwgMjQ3LCAxOTIsIDUsIAorICAgIDI1MCwgMjMyLCAyMjUsIDM2LCAyMjUsIDE0NCwgMjQ3LCAxOTIsIDUsIDI0NywgMTM0LCAyMjUsIDE0NCwgMjQ3LCAxOTIsIAorICAgIDUsIDI0OSwgMjI0LCAyMjUsIDE0NCwgMjQ3LCAxOTIsIDUsIDIxOSwgODgsIDIyNSwgMTQ0LCAyNDcsIDE5MiwgNSwgMjQ5LCAKKyAgICAyMjUsIDIyNSwgMTQ0LCAyNDcsIDE5MiwgNSwgMjUyLCA2NCwgMjI1LCAxNDQsIDI0NywgMTkyLCA1LCAyMjAsIDE3LCAyMjUsIAorICAgIDE0NCwgMjQ3LCAxOTIsIDUsIDI0MCwgMjQ5LCAyMjUsIDE0NCwgMjQ3LCAxOTIsIDUsIDI0MSwgMTc5LCAyMjUsIDE0NCwgCisgICAgMjQ3LCAxOTIsIDUsIDI1MSwgMTEzLCAyMzMsIDM3LCAyMjUsIDE0NCwgMjQ3LCAxOTIsIDUsIDI1MCwgMjI1LCAyMjUsIAorICAgIDE0NCwgMjQ3LCAxOTIsIDUsIDIyMywgMTU0LCAyMjUsIDE0NCwgMjQ3LCAxOTIsIDUsIDI0NSwgMjMxLCAyMjUsIDE0NCwgCisgICAgMjQ3LCAxOTIsIDUsIDI0NiwgMTA4LCAyMjUsIDE0NCwgMjQ3LCAxOTIsIDUsIDIxNSwgMTA2LCAyMjUsIDE0NCwgMjQ3LCAKKyAgICAxOTIsIDUsIDI1MiwgNjcsIDIyNSwgMTQ0LCAyNDcsIDE5MiwgNSwgMjI1LCAzNywgMjE1LCAyMzYsIDIyNSwgMTQ0LCAyNDcsIAorICAgIDE5MiwgNSwgMjEzLCAxNTksIDIyNSwgMTQ0LCAyNDcsIDE5MiwgNSwgMjI2LCAxOSwgMjI1LCAxNDQsIDI0NywgMTkyLCA1LCAKKyAgICAyMjIsIDE5MSwgMjI1LCAxNDQsIDI0NywgMTkyLCA1LCAyMzIsIDIyNSwgMjI1LCAxNDQsIDI0NywgMTkyLCA1LCAyMjYsIAorICAgIDExNiwgMjUyLCAxODUsIDIyNSwgMTQ0LCAyNDcsIDE5MiwgNSwgMjQ0LCA0OSwgMjI1LCAxNDQsIDI0NywgMTkyLCA1LCAKKyAgICAyNDIsIDEzOSwgMjI1LCAxNDQsIDI0NywgMTkyLCA1LCAyMTgsIDEyMCwgMjI1LCAxNDQsIDI0NywgMTkyLCA1LCA0LCAyNTMsIAorICAgIDE2OSwgMjI1LCAxNDQsIDI0NywgMTkyLCA1LCAyMTIsIDMyLCAyNTIsIDE0OSwgMjI1LCAxNDQsIDI0NywgMTkyLCA1LCAzOCwgCisgICAgMjI2LCAyNDksIDkxLCAyMzIsIDYxLCAxLCA2MSwgMjMyLCA2MSwgMSwgNzUsIDIzMiwgNjEsIDEsIDI1MywgMTU5LCAyMzIsIAorICAgIDYxLCAxLCAyNTIsIDIwLCAyMzIsIDYxLCAxLCAyNDMsIDIwMywgMjMyLCA2MSwgMSwgMjQ5LCA2MSwgMjMyLCA2MSwgMSwgCisgICAgNzMsIDIzMiwgNjEsIDEsIDIxMiwgOTgsIDIzMiwgNjEsIDEsIDIxMCwgMTU5LCAyMzIsIDYxLCAxLCAyMTYsIDIxMSwgMjMyLCAKKyAgICA2MSwgMSwgMjM1LCAxNDUsIDIzMiwgNjEsIDEsIDIzNSwgMjQsIDIzMiwgNjEsIDEsIDIyNCwgOTcsIDIzMiwgNjEsIDEsIAorICAgIDE1NiwgMjMyLCA2MSwgMSwgMTkzLCAyMzIsIDYxLCAxLCAyMzAsIDI2LCAyMzIsIDYxLCAxLCAyMzAsIDE2NywgMjMyLCA2MSwgCisgICAgMSwgMjI4LCAxMTIsIDIzMiwgNjEsIDEsIDcwLCAyMzIsIDYxLCAxLCAyMjYsIDEwNiwgMjMyLCA2MSwgMSwgMjM0LCA0OCwgCisgICAgMjMyLCA2MSwgMSwgMTUzLCAyMzIsIDYxLCAxLCAyMjIsIDkyLCAyMzIsIDYxLCAxLCAyMTcsIDE1MywgMjMyLCA2MSwgMSwgCisgICAgMjE1LCAxNjAsIDIzMiwgNjEsIDEsIDI1NCwgMTI0LCAyMzIsIDYxLCAxLCAyNDUsIDE1MSwgMjMyLCA2MSwgMSwgMjQyLCAKKyAgICA2MSwgMjMyLCA2MSwgMSwgMjExLCAxNzgsIDI1MCwgMjM4LCAxLCA2MSwgMjUwLCAyMzgsIDEsIDIyNiwgOTIsIDI1MCwgCisgICAgMjM4LCAxLCAyNDksIDYxLCAyNTAsIDIzOCwgMSwgMTU2LCAyNTAsIDIzOCwgMSwgMjE0LCAxMTYsIDI1MCwgMjM4LCAxLCAKKyAgICAxNTMsIDI1MCwgMjM4LCAxLCAyMzMsIDYzLCAyNTAsIDIzOCwgMSwgMjU1LCA3NiwgMjUwLCAyMzgsIDEsIDIyNCwgOTcsIAorICAgIDI1MCwgMjM4LCAxLCAyNTMsIDE1OSwgMjUwLCAyMzgsIDEsIDE5MywgMjUwLCAyMzgsIDEsIDc2LCAyNTAsIDIzOCwgMSwgCisgICAgMjQ4LCAyMjQsIDI1MCwgMjM4LCAxLCAyMTcsIDE1MywgMjUwLCAyMzgsIDEsIDIyMCwgMTA1LCAyNTAsIDIzOCwgMSwgMjIwLCAKKyAgICAxMDQsIDI1MCwgMjM4LCAxLCAyMjIsIDkyLCAyNTAsIDIzOCwgMSwgMjUxLCA2NiwgMjUwLCAyMzgsIDEsIDcwLCAyNTAsIAorICAgIDIzOCwgMSwgMjI4LCAxMTIsIDI1MCwgMjM4LCAxLCAyMTEsIDE3OCwgMjUwLCAyMzgsIDEsIDIzMCwgMjYsIDI1MCwgMjM4LCAKKyAgICAxLCAyMTUsIDE1OSwgMjUwLCAyMzgsIDEsIDIyNiwgMTA2LCAyNTAsIDIzOCwgMSwgMjE4LCAyMjcsIDI1MCwgMjM4LCAxLCAKKyAgICA3MywgMjUwLCAyMzgsIDEsIDc1LCAyNTAsIDIzOCwgMSwgMjE0LCAxMTMsIDI1MCwgMjM4LCAxLCAyMzUsIDI0LCAyNTAsIAorICAgIDIzOCwgMSwgMjM1LCAxNSwgMjUwLCAyMzgsIDEsIDIyOSwgMTUxLCAyNTAsIDIzOCwgMSwgMjE0LCAxMTgsIDI1MCwgMjM4LCAKKyAgICAxLCAyNDMsIDIwMywgMjUwLCAyMzgsIDEsIDI0MywgMTM4LCAyNTAsIDIzOCwgMSwgMjE4LCAxNjksIDI1MCwgMjM4LCAxLCAKKyAgICAyMTgsIDE2OCwgMjUwLCAyMzgsIDEsIDIyOSwgODAsIDI1MCwgMjM4LCAxLCAyMzYsIDM0LCAyNTAsIDIzOCwgMSwgMjUxLCAKKyAgICA2NSwgMjUwLCAyMzgsIDEsIDIxNSwgMTYwLCAyNTAsIDIzOCwgMSwgMjE0LCAxMTUsIDI1MCwgMjM4LCAxLCAyMjIsIDE4MSwgCisgICAgMjUwLCAyMzgsIDEsIDIzMSwgMTMwLCAyNTAsIDIzOCwgMSwgMjMxLCAxMjksIDI1MCwgMjM4LCAxLCAyMzEsIDEyOCwgMjUwLCAKKyAgICAyMzgsIDEsIDIzMSwgMTI3LCAyNTAsIDIzOCwgMSwgMjMzLCA2MiwgMjUwLCAyMzgsIDEsIDI0NSwgMjM1LCAyNTAsIDIzOCwgCisgICAgMSwgMjE0LCAxMTQsIDU1LCAzMiwgMSwgNjEsIDU1LCAzMiwgMSwgMjUyLCA3NiwgNTUsIDMyLCAxLCAyMzQsIDE4MywgNTUsIAorICAgIDMyLCAxLCAyNDgsIDkxLCA1NSwgMzIsIDEsIDc1LCA1NSwgMzIsIDEsIDIxMywgMjU1LCA1NSwgMzIsIDEsIDIxMCwgOTQsIAorICAgIDU1LCAzMiwgMSwgMjQxLCAyMzksIDU1LCAzMiwgMSwgMjE2LCAxOTYsIDU1LCAzMiwgMSwgNzMsIDU1LCAzMiwgMSwgMTc2LCAKKyAgICA1NSwgMzIsIDEsIDI0NSwgMTc1LCA1NSwgMzIsIDEsIDI0NSwgMTYwLCA1NSwgMzIsIDEsIDI0NSwgMTUxLCA1NSwgMzIsIDEsIAorICAgIDI0NSwgNzYsIDU1LCAzMiwgMSwgNzYsIDU1LCAzMiwgMSwgMjI1LCAyMjIsIDU1LCAzMiwgMSwgMjIwLCA2NCwgNTUsIDMyLCAKKyAgICAxLCAyMzMsIDIxOCwgNTUsIDMyLCAxLCAyNDUsIDkzLCA1NSwgMzIsIDEsIDI0NSwgODMsIDU1LCAzMiwgMSwgMjE3LCAyMywgCisgICAgNTUsIDMyLCAxLCA3MCwgNTUsIDMyLCAxLCAyNDUsIDE3OCwgNTUsIDMyLCAxLCAyMjUsIDEzNywgNTUsIDMyLCAxLCAyMzQsIAorICAgIDEyMCwgNTUsIDMyLCAxLCAyNDUsIDIwMywgNTUsIDMyLCAxLCAyNDUsIDg1LCA1NSwgMzIsIDEsIDI1MCwgMTMyLCA1NSwgCisgICAgMzIsIDEsIDIzNiwgMzQsIDU1LCAzMiwgMSwgMjE0LCAxMTgsIDU1LCAzMiwgMjI3LCAxOTksIDExMCwgNTUsIDMyLCAyMjcsIAorICAgIDE5OSwgMTg5LCA1NSwgMzIsIDIyNywgMTk5LCAyMTYsIDI0OCwgNTUsIDMyLCAyMjcsIDE5OSwgMjQ0LCAxMTUsIDI0MiwgCisgICAgMTU0LCAxLCAyNTQsIDIwNSwgMjQyLCAxNTQsIDEsIDI1MiwgMTY0LCAyNDIsIDE1NCwgMSwgMjQyLCAyMTIsIDI0MiwgMTU0LCAKKyAgICAxLCAyNDgsIDIwNSwgMjQyLCAxNTQsIDEsIDI1NCwgMjAxLCAyNDIsIDE1NCwgMSwgMjI0LCA4MCwgMjQyLCAxNTQsIDEsIAorICAgIDIzNSwgMTU2LCAyNDIsIDE1NCwgMSwgMjQyLCA0MCwgMjQyLCAxNTQsIDEsIDIxNiwgMTU5LCAyNDIsIDE1NCwgMSwgMjQ1LCAKKyAgICAxODQsIDI0MiwgMTU0LCAxLCAyMzMsIDE5MSwgMjQyLCAxNTQsIDEsIDIzMywgMTE0LCAyNDIsIDE1NCwgMSwgMjMxLCAxODAsIAorICAgIDI0MiwgMTU0LCAxLCAyMjksIDE4NSwgMjQyLCAxNTQsIDEsIDIzNSwgMTIwLCAyNDIsIDE1NCwgMSwgMjE0LCAxMzYsIDI0MiwgCisgICAgMTU0LCAxLCAyMjYsIDcwLCAyNDIsIDE1NCwgMSwgMjI4LCAxOTYsIDI0MiwgMTU0LCAxLCAyMjMsIDE2NiwgMjQyLCAxNTQsIAorICAgIDEsIDIyMSwgMjE5LCAyNDIsIDE1NCwgMSwgMjE3LCA1LCAyNDIsIDE1NCwgMSwgMjExLCAyMzQsIDI0MiwgMTU0LCAxLCAKKyAgICAyNDQsIDE3OSwgMjQyLCAxNTQsIDEsIDIzNiwgMzgsIDI0MiwgMTU0LCAxLCAyNDAsIDIwMCwgMjQyLCAxNTQsIDEsIDIyNiwgCisgICAgMTQwLCAyNDIsIDE1NCwgMSwgMjI4LCAyMDEsIDI0MCwgMjExLCAyMTQsIDIwOSwgMSwgMjU0LCAxNDgsIDIxNCwgMjA5LCAxLCAKKyAgICAyNTIsIDI3LCAyMTQsIDIwOSwgMSwgMjQzLCAxMDksIDIxNCwgMjA5LCAxLCAyMzQsIDEzMywgMjE0LCAyMDksIDEsIDI0OCwgCisgICAgNTUsIDIxNCwgMjA5LCAxLCAyNDEsIDY5LCAyMTQsIDIwOSwgMSwgMjExLCAyMjcsIDIxNCwgMjA5LCAxLCAyMTAsIDg1LCAKKyAgICAyMTQsIDIwOSwgMSwgMjQwLCAyNDIsIDIxNCwgMjA5LCAxLCAyMTYsIDIzMSwgMjE0LCAyMDksIDEsIDIxMCwgMjMzLCAyMTQsIAorICAgIDIwOSwgMSwgMjM0LCAyNTEsIDIxNCwgMjA5LCAxLCAyMjAsIDIxLCAyMTQsIDIwOSwgMSwgMjMzLCA5OSwgMjE0LCAyMDksIAorICAgIDEsIDIzMSwgNjYsIDIxNCwgMjA5LCAxLCAyNDgsIDIyLCAyMTQsIDIwOSwgMSwgMjI3LCAxOTUsIDIxNCwgMjA5LCAxLCAKKyAgICAyMTAsIDEzLCAyMTQsIDIwOSwgMSwgMjIxLCAyNDksIDIxNCwgMjA5LCAxLCAyNTQsIDE5NywgMjE0LCAyMDksIDEsIDIyNCwgCisgICAgMTUxLCAyMTQsIDIwOSwgMSwgMjIyLCAyNiwgMjE0LCAyMDksIDEsIDIyNCwgMzYsIDIxNCwgMjA5LCAxLCAyMjMsIDE0NSwgCisgICAgMjE0LCAyMDksIDEsIDIxNiwgMjAwLCAyMTQsIDIwOSwgMSwgMjQyLCAyNDUsIDIxNCwgMjA5LCAxLCAxMTEsIDIxNCwgMjA5LCAKKyAgICAxLCA3MywgMjE0LCAyMDksIDEsIDcwLCAyMTQsIDIwOSwgMSwgMjE4LCAxODAsIDIxNCwgMjA5LCAyMTEsIDIwOSwgMjQ3LCAKKyAgICAxNzMsIDU1LCAyMjUsIDE3MCwgNSwgNjEsIDU1LCAyMjUsIDE3MCwgNSwgNzMsIDU1LCAyMjUsIDE3MCwgNSwgNzAsIDU1LCAKKyAgICAyMjUsIDE3MCwgNSwgMTc2LCA1NSwgMjI1LCAxNzAsIDUsIDIzMywgMjE4LCA1NSwgMjI1LCAxNzAsIDUsIDI0MywgMTM2LCAKKyAgICA1NSwgMjI1LCAxNzAsIDUsIDI0MiwgMTE0LCA1NSwgMjI1LCAxNzAsIDUsIDIxMSwgMTY1LCA1NSwgMjI1LCAxNzAsIDUsIAorICAgIDI1MSwgMzQsIDU1LCAyMjUsIDE3MCwgNSwgMjM1LCAxNDIsIDU1LCAyMjUsIDE3MCwgNSwgMjM1LCAxMDksIDU1LCAyMjUsIAorICAgIDE3MCwgNSwgMjE3LCAxMDYsIDU1LCAyMjUsIDE3MCwgNSwgMjE1LCAxMTksIDU1LCAyMjUsIDE3MCwgNSwgMjQ4LCAyMjIsIAorICAgIDU1LCAyMjUsIDE3MCwgNSwgMjQ4LCA0LCA1NSwgMjI1LCAxNzAsIDUsIDI0NiwgNzksIDU1LCAyMjUsIDE3MCwgNSwgMjE2LCAKKyAgICAyMDksIDU1LCAyMjUsIDE3MCwgNSwgMTkwLCA1NSwgMjI1LCAxNzAsIDUsIDI1MiwgMTkyLCA1NSwgMjI1LCAxNzAsIDUsIAorICAgIDI0NCwgMTk3LCA1NSwgMjI1LCAxNzAsIDUsIDE5NywgNTUsIDIyNSwgMTcwLCA1LCAyMjcsIDIzOCwgNTUsIDIyNSwgMTcwLCAKKyAgICA1LCAxODUsIDU1LCAyMjUsIDE3MCwgNSwgMjMwLCAyMzEsIDU1LCAyMjUsIDE3MCwgNSwgMjMwLCAxMDMsIDU1LCAyMjUsIAorICAgIDE3MCwgNSwgMTkxLCA1NSwgMjI1LCAxNzAsIDUsIDIxNCwgMjcsIDU1LCAyMjUsIDE3MCwgNSwgMjEzLCAxNzYsIDU1LCAKKyAgICAyMjUsIDE3MCwgNSwgMjA1LCA1NSwgMjI1LCAxNzAsIDUsIDIyMiwgMTQxLCA1NSwgMjI1LCAxNzAsIDUsIDIzMywgMTM2LCAKKyAgICA1NSwgMjI1LCAxNzAsIDUsIDIwNiwgNTUsIDIyNSwgMTcwLCA1LCAyMTAsIDExNiwgNTUsIDIyNSwgMTcwLCA1LCAyMjAsIAorICAgIDEwMywgNTUsIDIyNSwgMTcwLCA1LCAyMTgsIDIyNCwgNTUsIDIyNSwgMTcwLCA1LCAxNjIsIDU1LCAyMjUsIDE3MCwgNSwgCisgICAgMjUzLCAxODcsIDU1LCAyMjUsIDE3MCwgNSwgMjUzLCAxODYsIDU1LCAyMjUsIDE3MCwgNSwgMjUzLCAxODUsIDU1LCAyMjUsIAorICAgIDE3MCwgNSwgMjExLCAxNDIsIDU1LCAyMjUsIDE3MCwgNSwgMjQ4LCAyMDEsIDU1LCAyMjUsIDE3MCwgNSwgMjQ4LCAyMDAsIAorICAgIDU1LCAyMjUsIDE3MCwgNSwgMjUyLCAxNzEsIDU1LCAyMjUsIDE3MCwgNSwgMjUxLCA4NiwgNTUsIDIyNSwgMTcwLCAyMTEsIAorICAgIDIwOSwgMjQ3LCAxNzMsIDU1LCAyMjUsIDE3MCwgNTQsIDExMCwgNTUsIDIyNSwgMTcwLCA1NCwgMTA1LCA1NSwgMjI1LCAKKyAgICAxNzAsIDU0LCAyMTYsIDI0OCwgNTUsIDIyNSwgMTcwLCA1NCwgMjE1LCA3MywgNTUsIDIyNSwgMTcwLCA1NCwgMjQwLCAyMTEsIAogICAgIDE4MSwgNiwgMSwgMTk5LCA3MywgMTgxLCA2LCAxLCAxOTksIDc1LCAxODEsIDYsIDEsIDE5OSwgNjEsIDE4MSwgNiwgMSwgCi0gICAgMTk5LCAyNTQsIDIwOSwgMTgxLCA2LCAxLCAxOTksIDc2LCAxODEsIDYsIDEsIDE5OSwgMjI2LCAxODMsIDE4MSwgNiwgMSwgCi0gICAgMjE5LCAyNTEsIDczLCAxODEsIDYsIDEsIDIxOSwgMjUxLCA3NSwgMTgxLCA2LCAxLCAyMTksIDI1MSwgNjEsIDE4MSwgNiwgCi0gICAgMSwgMjE5LCAyNTEsIDI1NCwgMjA5LCAxODEsIDYsIDEsIDIxOSwgMjUxLCA3NiwgMTgxLCA2LCAxLCAyMTksIDI1MSwgMjI2LCAKLSAgICAxODMsIDE4MSwgNiwgMSwgMjUzLCAxNjcsIDE4MSwgNiwgMSwgMjI2LCAxMTYsIDE4MSwgNiwgMSwgMjExLCAxOTUsIDE4MSwgCi0gICAgNiwgMSwgMjExLCA0NCwgMTgxLCA2LCAxLCAyNDIsIDYwLCAxODEsIDYsIDEsIDIyNSwgMjExLCAxODEsIDYsIDEsIDI1MiwgCi0gICAgNjYsIDE4MSwgNiwgMSwgMjE3LCAxMSwgMTgxLCA2LCAxLCAyNDgsIDc3LCAxODEsIDYsIDEsIDI1MCwgMTI4LCAxODEsIDYsIAotICAgIDEsIDIzNSwgMTI0LCAxODEsIDYsIDEsIDIzNCwgMTg5LCAxODEsIDYsIDEsIDI0MywgODMsIDE4MSwgNiwgMSwgMjQ1LCAKLSAgICAyMDIsIDE4MSwgNiwgMSwgMjEzLCAyNTAsIDE4MSwgNiwgMSwgMjQ1LCA1OSwgMTgxLCA2LCAxLCAyMTYsIDE5NCwgMTgxLCAKLSAgICA2LCAxLCAyNDUsIDgyLCAxODEsIDYsIDEsIDIxMCwgOTIsIDE4MSwgNiwgMSwgMjQ1LCA3NSwgMTgxLCA2LCAxLCAyMTAsIAotICAgIDczLCAxODEsIDYsIDEsIDI0NSwgOTIsIDE4MSwgNiwgMSwgMjQ1LCAxNzQsIDE4MSwgNiwgMSwgMjQ1LCAxNTksIDE4MSwgNiwgCi0gICAgMSwgMjQ1LCAxNTAsIDE4MSwgNiwgMSwgMjQ1LCAxMzgsIDE4MSwgNiwgMSwgMjI2LCAyMTksIDE4MSwgNiwgMSwgMjQ1LCAKLSAgICAzOCwgMTgxLCA0LCAxLCAxOTksIDczLCAxODEsIDQsIDEsIDE5OSwgNzUsIDE4MSwgNCwgMSwgMTk5LCA2MSwgMTgxLCA0LCAKLSAgICAxLCAxOTksIDI1NCwgMjA5LCAxODEsIDQsIDEsIDE5OSwgNzYsIDE4MSwgNCwgMSwgMTk5LCAyMjYsIDE4MywgMTgxLCA0LCAKLSAgICAxLCAyMTksIDI1MSwgNzMsIDE4MSwgNCwgMSwgMjE5LCAyNTEsIDc1LCAxODEsIDQsIDEsIDIxOSwgMjUxLCA2MSwgMTgxLCAKLSAgICA0LCAxLCAyMTksIDI1MSwgMjU0LCAyMDksIDE4MSwgNCwgMSwgMjE5LCAyNTEsIDc2LCAxODEsIDQsIDEsIDIxOSwgMjUxLCAKLSAgICAyMjYsIDE4MywgMTgxLCA0LCAxLCAyNTMsIDE2NywgMTgxLCA0LCAxLCAyMjYsIDExNiwgMTgxLCA0LCAxLCAyMTEsIDE5NSwgCi0gICAgMTgxLCA0LCAxLCAyMTEsIDQ0LCAxODEsIDQsIDEsIDI0MiwgNjAsIDE4MSwgNCwgMSwgMjI1LCAyMTEsIDE4MSwgNCwgMSwgCi0gICAgMjUyLCA2NiwgMTgxLCA0LCAxLCAyMTcsIDExLCAxODEsIDQsIDEsIDI0OCwgNzcsIDE4MSwgNCwgMSwgMjUwLCAxMjgsIAotICAgIDE4MSwgNCwgMSwgMjM1LCAxMjQsIDE4MSwgNCwgMSwgMjM0LCAxODksIDE4MSwgNCwgMSwgMjQzLCA4MywgMTgxLCA0LCAxLCAKLSAgICAyNDUsIDIwMiwgMTgxLCA0LCAxLCAyMTMsIDI1MCwgMTgxLCA0LCAxLCAyNDUsIDU5LCAxODEsIDQsIDEsIDIxNiwgMTk0LCAKLSAgICAxODEsIDQsIDEsIDI0NSwgODIsIDE4MSwgNCwgMSwgMjEwLCA5MiwgMTgxLCA0LCAxLCAyNDUsIDc1LCAxODEsIDQsIDEsIAotICAgIDIxMCwgNzMsIDE4MSwgNCwgMSwgMjQ1LCA5MiwgMTgxLCA0LCAxLCAyNDUsIDE3NCwgMTgxLCA0LCAxLCAyNDUsIDE1OSwgCi0gICAgMTgxLCA0LCAxLCAyNDUsIDE1MCwgMTgxLCA0LCAxLCAyNDUsIDEzOCwgMTgxLCA0LCAxLCAyMjYsIDIxOSwgMTgxLCA0LCAxLCAKLSAgICAyNDUsIDM4LCAyMjAsIDY5LCAxLCAyMjUsIDIwOSwgMjIwLCA2OSwgMSwgMjE2LCA1LCAyMjAsIDY5LCAxLCAyMzQsIDkxLCAKLSAgICAyMjAsIDY5LCAxLCAyNDQsIDE0NywgMjIwLCA2OSwgMSwgMjE2LCAxNzIsIDIyMCwgNjksIDEsIDIxOSwgNTgsIDIyMCwgNjksIAotICAgIDEsIDIxOCwgMTQsIDIyMCwgNjksIDEsIDI1MCwgNjEsIDIyMCwgNjksIDEsIDIxMSwgNDYsIDIyMCwgNjksIDEsIDI0MCwgCi0gICAgMjA5LCAyMjAsIDY5LCAxLCAyNTIsIDUsIDIyMCwgNjksIDEsIDI0OCwgODksIDIyMCwgNjksIDEsIDI0MywgMTIxLCAyMjAsIAotICAgIDY5LCAxLCAyMTMsIDEyMywgMjIwLCA2OSwgMSwgMjE2LCAxNzYsIDIyMCwgNjksIDEsIDIxMCwgMjEsIDIyMCwgNjksIDEsIAotICAgIDIzMSwgODksIDIyMCwgNjksIDEsIDIzNSwgNDksIDIyMCwgNjksIDEsIDIxMSwgMjI1LCAyMjAsIDY5LCAxLCAyNDIsIDQ4LCAKLSAgICAyMjAsIDY5LCAxLCAyMzIsIDE0MiwgMjIwLCA2OSwgMSwgMjMwLCAxODksIDIyMCwgNjksIDEsIDIzNiwgNDAsIDIyMCwgNjksIAotICAgIDEsIDI0NSwgMjAxLCAyMjAsIDY5LCAxLCAyNTMsIDIzMSwgMjIwLCA2OSwgMSwgMjU0LCAyNDcsIDIyMCwgNjksIDEsIDIyNiwgCi0gICAgMTk2LCAyMjAsIDY5LCAxLCAyMTEsIDIxMiwgMjIwLCA2OSwgMSwgMjI2LCAxMzAsIDIyMCwgNjksIDEsIDI1NCwgMjA5LCAKLSAgICAyMjAsIDY5LCAxLCAyMjIsIDIwOCwgMjIwLCA2OSwgMSwgMjI3LCAxOTQsIDIyMCwgNjksIDEsIDI0NSwgMjE3LCAyMjAsIAotICAgIDY5LCAxLCAyNTQsIDIxNCwgMjIwLCA2OSwgMSwgMjQwLCAxMTEsIDIyMCwgNjksIDEsIDIxNCwgMTYzLCAyMjAsIDY5LCAxLCAKLSAgICAyMjYsIDI1NCwgMjIwLCA2OSwgMSwgMjI2LCAxNzYsIDIyMCwgNjksIDEsIDIyNiwgMjE4LCAyMjAsIDY5LCAxLCAyNTMsIAotICAgIDE3MCwgMjIwLCA2OSwgMSwgMjU0LCAxOSwgMjIwLCA2OSwgMSwgMjI2LCAxNTgsIDIyMCwgNjksIDEsIDI1NCwgMTkyLCAKLSAgICAyMjAsIDY5LCAxLCAyNDUsIDg2LCAyMjAsIDY5LCAxLCAyNTMsIDI1MywgMjIwLCA2OSwgMSwgMjQ1LCAyMjcsIDIyMCwgNjksIAotICAgIDEsIDI0MCwgMTE4LCAyMjAsIDY5LCAxLCAyMTEsIDEzLCAyMjYsIDE0MSwgMSwgMjU0LCAxNzAsIDIyNiwgMTQxLCAxLCAKLSAgICAyNTIsIDE5MSwgMjI2LCAxNDEsIDEsIDIxNywgMTA1LCAyMjYsIDE0MSwgMSwgMjM1LCAxNDEsIDIyNiwgMTQxLCAxLCAyMTEsIAotICAgIDE2NSwgMjI2LCAxNDEsIDEsIDIzNCwgMTMyLCAyMjYsIDE0MSwgMSwgMjQ4LCA3NiwgMjI2LCAxNDEsIDEsIDIwNSwgMjI2LCAKLSAgICAxNDEsIDEsIDIwNiwgMjI2LCAxNDEsIDEsIDIyMCwgMjYsIDIyNiwgMTQxLCAxLCAyNDgsIDI1LCAyMjYsIDE0MSwgMSwgCi0gICAgMjUwLCAyMTUsIDIyNiwgMTQxLCAxLCAyNDMsIDEzNSwgMjI2LCAxNDEsIDEsIDI0NCwgMTk2LCAyMjYsIDE0MSwgMSwgMjI0LCAKLSAgICA4NiwgMjI2LCAxNDEsIDEsIDIzNSwgOSwgMjI2LCAxNDEsIDEsIDIzMywgMTMwLCAyMjYsIDE0MSwgMSwgMjMwLCAyMDAsIAotICAgIDIyNiwgMTQxLCAxLCAyMjcsIDE3OCwgMjI2LCAxNDEsIDEsIDIxMiwgMzAsIDIyNiwgMTQxLCAxLCAxNjIsIDIyNiwgMTQxLCAKLSAgICAxLCAxOTEsIDIyNiwgMTQxLCAxLCA2MSwgMjI2LCAxNDEsIDEsIDc1LCAyMjYsIDE0MSwgMSwgNzMsIDIyNiwgMTQxLCAxLCAKLSAgICA3NiwgMjI2LCAxNDEsIDEsIDcwLCAyMjYsIDE0MSwgMSwgMjU1LCA3MywgMjI2LCAxNDEsIDEsIDI0NSwgMjA5LCAyMjYsIAotICAgIDE0MSwgMSwgMjI2LCAxODMsIDIyNiwgMTQxLCAyMSwgMjEwLCA4NiwgMjI2LCAxNDEsIDIxLCAxMTAsIDIyNiwgMTQxLCAyMSwgCi0gICAgMTA1LCAyMjYsIDE0MSwgMjEsIDE1OCwgMjI2LCAxNDEsIDIxLCAxNjEsIDIyNiwgMTQxLCAyMSwgMTg5LCAyMjYsIDE0MSwgCi0gICAgMjEsIDE5NCwgMjI2LCAxNDEsIDIxLCAxOTgsIDIyNiwgMTQxLCAyMSwgMTk1LCAyMjYsIDE0MSwgMjEsIDIwMCwgMjQ5LCAKLSAgICA2NywgMywgNjEsIDI0OSwgNjcsIDMsIDc1LCAyNDksIDY3LCAzLCA3MywgMjQ5LCA2NywgMywgNzYsIDI0OSwgNjcsIDMsIAotICAgIDcwLCAyNDksIDY3LCAzLCAyMzUsIDE0MSwgMjQ5LCA2NywgMywgMjM1LCA2OCwgMjQ5LCA2NywgMywgMTc2LCAyNDksIDY3LCAKLSAgICAzLCAyMzQsIDE4MiwgMjQ5LCA2NywgMywgMjM0LCA5MiwgMjQ5LCA2NywgMywgMjM0LCAyOCwgMjQ5LCA2NywgMywgMjMzLCAKLSAgICAyMTcsIDI0OSwgNjcsIDMsIDIzMywgMTM1LCAyNDksIDY3LCAzLCAyMzMsIDU4LCAyNDksIDY3LCAzLCAyMzIsIDI0MSwgCi0gICAgMjQ5LCA2NywgMywgMjMyLCAxNTYsIDI0OSwgNjcsIDMsIDIzMiwgOTgsIDI0OSwgNjcsIDMsIDE4NCwgMjQ5LCA2NywgMywgCi0gICAgMjMxLCA5MSwgMjQ5LCA2NywgMywgMjMwLCAyMzAsIDI0OSwgNjcsIDMsIDIzMCwgMTYxLCAyNDksIDY3LCAzLCAyMzAsIAotICAgIDEwMiwgMjQ5LCA2NywgMywgMTk3LCAyNDksIDY3LCAzLCAyMjksIDEwNywgMjQ5LCA2NywgMywgMjI4LCAyMzMsIDI0OSwgCi0gICAgNjcsIDMsIDIyOCwgNzQsIDI0OSwgNjcsIDMsIDIyNywgMjM3LCAyNDksIDY3LCAzLCAxOTAsIDI0OSwgNjcsIDMsIDIyNSwgCi0gICAgMjIxLCAyNDksIDY3LCAzLCAyMjUsIDEwOCwgMjQ5LCA2NywgMywgMjI1LCAxNiwgMjQ5LCA2NywgMywgMjI0LCAxNTAsIAotICAgIDI0OSwgNjcsIDMsIDIwNSwgMjQ5LCA2NywgMywgMjIzLCAxMjgsIDI0OSwgNjcsIDMsIDIyMywgMzUsIDI0OSwgNjcsIDMsIAotICAgIDIyMiwgMjExLCAyNDksIDY3LCAzLCAyMjIsIDE0MCwgMjQ5LCA2NywgMywgMjA2LCAyNDksIDY3LCAzLCAyMjEsIDE4MSwgCi0gICAgMjQ5LCA2NywgMywgMjE5LCAxOTEsIDI0OSwgNjcsIDMsIDIxOSwgNTgsIDI0OSwgNjcsIDMsIDIxOCwgODMsIDI0OSwgNjcsIAotICAgIDMsIDIxNywgMTA1LCAyNDksIDY3LCAzLCAyMTcsIDIyLCAyNDksIDY3LCAzLCAyMTYsIDExNywgMjQ5LCA2NywgMywgMTExLCAKLSAgICAyNDksIDY3LCAzLCAyMTUsIDExOCwgMjQ5LCA2NywgMywgMjEyLCA2NSwgMjQ5LCA2NywgMywgMjEyLCAyMiwgMjQ5LCA2NywgCi0gICAgMywgMjExLCAyNTAsIDI0OSwgNjcsIDMsIDIxMSwgMjI3LCAyNDksIDY3LCAzLCAyMTEsIDE2NSwgMjQ5LCA2NywgMywgMjExLCAKLSAgICAxNjIsIDI0OSwgNjcsIDMsIDIxMCwgMTE2LCAyNDksIDY3LCAzLCAyMTAsIDIzLCAyMzYsIDEsIDI1NCwgMjcsIDEsIDI1NCwgCi0gICAgMTY4LCAyMzYsIDEsIDI1NCwgMjcsIDEsIDI1MiwgMjUsIDIzNiwgMSwgMjU0LCAyNywgMSwgMjQyLCAyMDEsIDIzNiwgMSwgCi0gICAgMjU0LCAyNywgMSwgMjQ4LCAxODgsIDIzNiwgMSwgMjU0LCAyNywgMSwgMjQxLCAyMzgsIDIzNiwgMSwgMjU0LCAyNywgMSwgCi0gICAgMjEyLCAzMCwgMjM2LCAxLCAyNTQsIDI3LCAxLCAyMTAsIDk3LCAyMzYsIDEsIDI1NCwgMjcsIDEsIDI0MSwgMTk1LCAyMzYsIAotICAgIDEsIDI1NCwgMjcsIDEsIDIxNiwgMjI2LCAyMzYsIDEsIDI1NCwgMjcsIDEsIDIxMCwgMjMyLCAyMzYsIDEsIDI1NCwgMjcsIAotICAgIDEsIDIzNCwgMjI1LCAyMzYsIDEsIDI1NCwgMjcsIDEsIDIzMywgOTMsIDIzNiwgMSwgMjU0LCAyNywgMSwgMjMxLCA2NSwgCi0gICAgMjM2LCAxLCAyNTQsIDI3LCAxLCAyMjcsIDE5NCwgMjM2LCAxLCAyNTQsIDI3LCAxLCAyMjEsIDI0OSwgMjM2LCAxLCAyNTQsIAotICAgIDI3LCAxLCAyNTMsIDE2MiwgMjM2LCAxLCAyNTQsIDI3LCAxLCAyMjUsIDIyMSwgMjM2LCAxLCAyNTQsIDI3LCAxLCAyMjIsIAotICAgIDI0LCAyMzYsIDEsIDI1NCwgMjcsIDEsIDIyNCwgMzQsIDIzNiwgMSwgMjU0LCAyNywgMSwgMjIzLCA2NywgMjM2LCAxLCAKLSAgICAyNTQsIDI3LCAxLCAyMjAsIDIwLCAyMzYsIDEsIDI1NCwgMjcsIDEsIDIxNywgMzYsIDIzNiwgMSwgMjU0LCAyNywgMjIxLCAKLSAgICAxNzMsIDUwLCAyMzYsIDEsIDI1NCwgMjcsIDU0LCAxMTAsIDIzNiwgMSwgMjU0LCAyNywgNTQsIDEwNSwgMjM2LCAxLCAyNTQsIAotICAgIDI3LCA1NCwgMTU4LCAyMzYsIDEsIDI1NCwgMjcsIDU0LCAyMTYsIDI0NywgMjM2LCAxLCAyNTQsIDI3LCA1NCwgMjE1LCA3MywgCi0gICAgMjM2LCAxLCAyNTQsIDI3LCA1NCwgMTIzLCAyNDAsIDIxMCwgMjM2LCAxLCAyNTQsIDI3LCA1NCwgMTIzLCAyMTYsIDE0NywgCi0gICAgMjM2LCAxLCAyNTQsIDI3LCA1NCwgMjE2LCAyNDgsIDIxNiwgMTQ3LCAyMjUsIDExOSwgMSwgMjU0LCAxNjUsIDIyNSwgMTE5LCAKLSAgICAxLCAyNTIsIDI4LCAyMjUsIDExOSwgMSwgMjQzLCAxMDksIDIyNSwgMTE5LCAxLCAyNDgsIDU2LCAyMjUsIDExOSwgMSwgCi0gICAgMjQxLCAyMzgsIDIyNSwgMTE5LCAxLCAyMTIsIDM3LCAyMjUsIDExOSwgMSwgMjEwLCAxMTAsIDIyNSwgMTE5LCAxLCAyNDEsIAotICAgIDE5NywgMjI1LCAxMTksIDEsIDIxNiwgMjMwLCAyMjUsIDExOSwgMSwgMjEwLCAyMzMsIDIyNSwgMTE5LCAxLCAyMzQsIDI1MCwgCi0gICAgMjI1LCAxMTksIDEsIDIzMywgOTksIDIyNSwgMTE5LCAxLCAyMzEsIDY1LCAyMjUsIDExOSwgMSwgMjI3LCAxOTQsIDIyNSwgCi0gICAgMTE5LCAxLCAyMjAsIDE0NCwgMjI1LCAxMTksIDEsIDI1NCwgMTk2LCAyMjUsIDExOSwgMSwgMjI1LCAyMjEsIDIyNSwgMTE5LCAKLSAgICAxLCAyMjIsIDI1LCAyMjUsIDExOSwgMSwgMjI0LCAzOSwgMjI1LCAxMTksIDEsIDIyMiwgMTg5LCAyMjUsIDExOSwgMSwgCi0gICAgMjIwLCAyMCwgMjI1LCAxMTksIDEsIDIxNywgNDEsIDIyNSwgMTE5LCA1NCwgMTEwLCAyMjUsIDExOSwgNTQsIDIxNiwgMjQ3LCAKLSAgICAyMjUsIDExOSwgNTQsIDIxNSwgNzMsIDIyNSwgMTE5LCA1NCwgMTIzLCAyNDAsIDIxMCwgMjI1LCAxMTksIDU0LCAxMDUsIAotICAgIDIyNSwgMTE5LCA1NCwgMTU4LCAyMjUsIDExOSwgMjExLCAyMDksIDIyMCwgMTM3LCAyMzIsIDU5LCAxLCA2MSwgMjMyLCA1OSwgCi0gICAgMSwgMjUzLCAxNTgsIDIzMiwgNTksIDEsIDI0MywgMjAyLCAyMzIsIDU5LCAxLCAyNDksIDYwLCAyMzIsIDU5LCAxLCA3NSwgCi0gICAgMjMyLCA1OSwgMSwgMjE0LCAxMDUsIDIzMiwgNTksIDEsIDczLCAyMzIsIDU5LCAxLCAyMTEsIDExNywgMjMyLCA1OSwgMSwgCi0gICAgMjM1LCAyMywgMjMyLCA1OSwgMSwgMTU2LCAyMzIsIDU5LCAxLCAxOTMsIDIzMiwgNTksIDEsIDIzMCwgMjUsIDIzMiwgNTksIAotICAgIDEsIDc2LCAyMzIsIDU5LCAxLCAxNTMsIDIzMiwgNTksIDEsIDIxOCwgMjI2LCAyMzIsIDU5LCAxLCAyMTcsIDE1MiwgMjMyLCAKLSAgICA1OSwgMSwgNzAsIDIzMiwgNTksIDEsIDI0NSwgNiwgMjMyLCA1OSwgMSwgMjI0LCA5NiwgMjMyLCA1OSwgMSwgMjIyLCA5MSwgCi0gICAgMjMyLCA1OSwgMSwgMjE1LCAxNTksIDIzMiwgNTksIDEsIDI1NCwgMTIzLCAyMzIsIDU5LCAxLCAyNDUsIDE1MCwgMjMyLCAKLSAgICA1OSwgMSwgMjMyLCA2MiwgMjMyLCA1OSwgMSwgMjI4LCAxMTEsIDIzMiwgNTksIDEsIDI1MSwgNjYsIDIzMiwgNTksIDIxNSwgCi0gICAgMjIyLCA3OCwgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDYxLCAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgNzUsIDIzMSwgNDgsIAotICAgIDI0MSwgMTc0LCAxLCA3MywgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDc2LCAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgMTkxLCAKLSAgICAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgMjEyLCA2NSwgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDI1MiwgMTkxLCAyMzEsIDQ4LCAKLSAgICAyNDEsIDE3NCwgMSwgMjUyLCAxOTAsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAxOTAsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAKLSAgICAxODQsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAxOTcsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAyMjksIDIyOCwgMjMxLCA0OCwgCi0gICAgMjQxLCAxNzQsIDEsIDIyOSwgMTA3LCAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgMjI5LCAxMDYsIDIzMSwgNDgsIDI0MSwgMTc0LCAKLSAgICAxLCAyMDUsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAyMjMsIDE4NywgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDIzMywgMTM1LCAKLSAgICAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgMjM0LCAxMzIsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAyNDEsIDE4OSwgMjMxLCA0OCwgCi0gICAgMjQxLCAxNzQsIDEsIDIwNiwgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDIyMiwgMzMsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAKLSAgICAyMjEsIDE4MSwgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDE3NiwgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDIyNCwgODgsIDIzMSwgCi0gICAgNDgsIDI0MSwgMTc0LCAxLCAyMTcsIDEwNSwgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDIxNywgMTA0LCAyMzEsIDQ4LCAyNDEsIAotICAgIDE3NCwgMSwgMjE3LCAyMiwgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDIxNywgMjEsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAKLSAgICAxMTEsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAyNDgsIDIyMSwgMjMxLCA0OCwgMjQxLCAxNzQsIDE2LCAyMTMsIDE3MCwgCi0gICAgMjMxLCA0OCwgMjQxLCAxNzQsIDE2LCAyMTMsIDE2OSwgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgNjEsIDIzMSwgNDgsIDI0OSwgCi0gICAgOTQsIDEsIDc1LCAyMzEsIDQ4LCAyNDksIDk0LCAxLCA3MywgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgNzYsIDIzMSwgNDgsIAotICAgIDI0OSwgOTQsIDEsIDE5MSwgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgMjEyLCA2NSwgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgMjUyLCAKLSAgICAxOTEsIDIzMSwgNDgsIDI0OSwgOTQsIDEsIDE5MCwgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgMTg0LCAyMzEsIDQ4LCAyNDksIAotICAgIDk0LCAxLCAxOTcsIDIzMSwgNDgsIDI0OSwgOTQsIDEsIDIyOSwgMTA3LCAyMzEsIDQ4LCAyNDksIDk0LCAxLCAyMDUsIDIzMSwgCi0gICAgNDgsIDI0OSwgOTQsIDEsIDIzMywgMTM1LCAyMzEsIDQ4LCAyNDksIDk0LCAxLCAyMzQsIDEzMiwgMjMxLCA0OCwgMjQ5LCAKLSAgICA5NCwgMSwgMjQxLCAxODksIDIzMSwgNDgsIDI0OSwgOTQsIDEsIDIwNiwgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgMjU0LCAyMywgCi0gICAgMjA2LCAyMzEsIDQ4LCAyNDksIDk0LCAxLCAyMjEsIDE4MSwgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgMTc2LCAyMzEsIDQ4LCAKLSAgICAyNDksIDk0LCAxLCAyMjQsIDg4LCAyMzEsIDQ4LCAyNDksIDk0LCAxLCAyMTcsIDEwNSwgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgCi0gICAgMjE3LCAyMiwgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgMTExLCAyMzEsIDQ4LCAyNDksIDk0LCAxLCAyNDgsIDIyMSwgMjMxLCAKLSAgICA0OCwgMjQ5LCA5NCwgMjMyLCAxNDUsIDIyMiwgMjE3LCAyMzEsIDQ4LCAyNDksIDk0LCAyMzIsIDE0NSwgMjM2LCA2LCAyMzQsIAotICAgIDEyMCwgMSwgNjEsIDIzNCwgMTIwLCAyNSwgNSwgNzMsIDIzNCwgMTIwLCAyNSwgNSwgNzAsIDIzNCwgMTIwLCAyNSwgNSwgCi0gICAgMTQ5LCAxNTMsIDIzNCwgMTIwLCAyNSwgNSwgNzUsIDIzNCwgMTIwLCAyNSwgNSwgNzYsIDIzNCwgMTIwLCAyNSwgMjMzLCAKLSAgICAyMywgNzgsIDIzNCwgMTIwLCA1LCA1MiwgMjIyLCAyMzQsIDUxLCAyMzQsIDEyMCwgNSwgMjU0LCA3NSwgMjM0LCAxMjAsIDUsIAotICAgIDIxMywgMTQ3LCAyMzQsIDEyMCwgMSwgMTc2LCAyMzQsIDEyMCwgMSwgMjM0LCAxMzIsIDIzNCwgMTIwLCAxLCAyNDMsIDEzNSwgCi0gICAgMjM0LCAxMjAsIDEsIDI0MiwgMjQ5LCAyMzQsIDEyMCwgMSwgMjUxLCAzMywgMjM0LCAxMjAsIDEsIDI1MCwgMTU3LCAyMzQsIAotICAgIDEyMCwgMSwgMjM1LCAxNDEsIDIzNCwgMTIwLCAxLCAyMjcsIDE2NSwgMjM0LCAxMjAsIDEsIDIxNSwgMTU2LCAyMzQsIDEyMCwgCi0gICAgMSwgMjE1LCAxNDQsIDIzNCwgMTIwLCAxLCAyNDgsIDEzNSwgMjM0LCAxMjAsIDEsIDI0OCwgMTE5LCAyMzQsIDEyMCwgMSwgCi0gICAgMjI4LCAxMTAsIDIzNCwgMTIwLCAxLCAyMTcsIDEwNSwgMjM0LCAxMjAsIDEsIDIxNiwgMjA4LCAyMzQsIDEyMCwgMSwgMjQ4LCAKLSAgICAyMjEsIDIzNCwgMTIwLCAxLCAyNDgsIDI1LCAyMzQsIDEyMCwgMSwgMTk3LCAyMzQsIDEyMCwgMSwgMTkwLCAyMzQsIDEyMCwgCi0gICAgMSwgMjI1LCAxNDcsIDIzNCwgMTIwLCAxLCAyNTIsIDE5MSwgMjM0LCAxMjAsIDEsIDI1MiwgMTgsIDIzNCwgMTIwLCAxLCAKLSAgICAxODQsIDIzNCwgMTIwLCAxLCAxOTEsIDIzNCwgMTIwLCAxLCAyMDUsIDIzNCwgMTIwLCAxLCAyMzMsIDEzNSwgMjM0LCAxMjAsIAotICAgIDEsIDIxNCwgMjcsIDIzNCwgMTIwLCAxLCAyMjAsIDEwMiwgMjM0LCAxMjAsIDEsIDIxOCwgMjIzLCAyMzQsIDEyMCwgMSwgCi0gICAgMjA2LCAyMzQsIDEyMCwgMSwgMjEwLCAxMTYsIDIzNCwgMTIwLCAxLCAxNjIsIDIzNCwgMTIwLCAxLCAyMzQsIDQ2LCAyMzQsIAotICAgIDEyMCwgMSwgMjE1LCAxMjQsIDIzNCwgMTIwLCA1LCAyNTIsIDE0MSwgNDgsIDIzNCwgMTIwLCA1LCAyNTAsIDIyMSwgMjM0LCAKLSAgICAxMjAsIDUsIDU5LCA1MSwgMjM0LCAxMjAsIDIxMywgMTUyLCAyMzQsIDEyMCwgMjEsIDExMCwgMjM0LCAxMjAsIDIxLCAxMDUsIAotICAgIDIzNCwgMTIwLCAyMSwgMTU4LCAyMzQsIDEyMCwgMjEsIDE2MSwgMjM0LCAxMjAsIDU0LCAyMTYsIDI0NywgMjM0LCAxMjAsIAotICAgIDU0LCAyMTUsIDczLCAyMzQsIDEyMCwgNTQsIDEyMywgMjQwLCAyMTAsIDIzNCwgMTIwLCA1NCwgMTIzLCAyMTYsIDE0NywgCi0gICAgMjM0LCAxMjAsIDIyNCwgMTQxLCAyNDcsIDEyMCwgMjM0LCAxMjAsIDIyNCwgMTQxLCA0LCAyNTAsIDM1LCAyMzQsIDEyMCwgCi0gICAgMjI0LCAxNDEsIDI1MCwgMzUsIDIzNCwgMTIwLCAyMjQsIDE0MSwgMjQ5LCAxMzcsIDEzMCwgMjM0LCAxMjAsIDIyNCwgMTQxLCAKLSAgICAyMzEsIDE4MCwgMjM0LCAxMjAsIDIyNCwgMTQxLCAyMzIsIDExNSwgMjM0LCAxMjAsIDIyNCwgMTQxLCAyNDgsIDE3OCwgCi0gICAgMjM0LCAxMjAsIDIyNCwgMTQxLCA1MiwgMjQ4LCAxNzgsIDIzNCwgMTIwLCAyMjQsIDE0MSwgMjMyLCAyMDcsIDU1LCAyMTksIAotICAgIDI4LCAyNTQsIDM4LCAxLCAyNDEsIDIzOCwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDIzMywgOTMsIDU1LCAyMTksIDI4LCAKLSAgICAyNTQsIDM4LCAxLCAyNDEsIDE5NSwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDIzMSwgNjUsIDU1LCAyMTksIDI4LCAyNTQsIAotICAgIDM4LCAxLCAyMjQsIDM0LCA1NSwgMjE5LCAyOCwgMjU0LCAzOCwgMSwgMjEyLCAzMCwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIAotICAgIDEsIDIyMCwgMjAsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyMjMsIDY3LCA1NSwgMjE5LCAyOCwgMjU0LCAzOCwgMSwgCi0gICAgMjUyLCAyNSwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDIxNywgMzYsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyMjEsIAotICAgIDIyNiwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDIzNCwgMjI1LCA1NSwgMjE5LCAyOCwgMjU0LCAzOCwgMSwgMjI3LCAKLSAgICAxOTQsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyMzQsIDExNiwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDIyMiwgMjQsIAotICAgIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyMjEsIDI0OSwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDI0NCwgMTU0LCA1NSwgCi0gICAgMjE5LCAyOCwgMjU0LCAzOCwgMSwgMjU0LCAxNzAsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyNTMsIDE2MSwgNTUsIAotICAgIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDI0OCwgMjIsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyNDIsIDIwMSwgNTUsIDIxOSwgCi0gICAgMjgsIDI1NCwgMzgsIDEsIDI0OCwgMTg4LCA1NSwgMjE5LCAyOCwgMjU0LCAzOCwgMSwgMjQyLCAyMzgsIDU1LCAyMTksIDI4LCAKLSAgICAyNTQsIDM4LCAxLCAyMTYsIDIyNiwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDIxMCwgOTYsIDU1LCAyMTksIDI4LCAyNTQsIAotICAgIDM4LCAxLCAyNDgsIDE5LCA1NSwgMjE5LCAyOCwgMjU0LCAzOCwgMSwgMjEwLCAyMzIsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAKLSAgICAxLCAyMTYsIDE5NywgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDIxNiwgMTc4LCA1NSwgMjE5LCAyOCwgMjU0LCAzOCwgNTQsIAotICAgIDExMCwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDU0LCAyNDQsIDExNCwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEzMiwgMjM1LCAKLSAgICAyMzgsIDI1MywgMTcyLCAxLCA2MSwgMjUzLCAxNzIsIDEsIDI1NSwgNzMsIDI1MywgMTcyLCAxLCAyNTQsIDczLCAyNTMsIAotICAgIDE3MiwgMSwgMjU1LCAzMiwgMjUzLCAxNzIsIDEsIDI1NCwgMTIzLCAyNTMsIDE3MiwgMSwgMjU1LCAzMywgMjUzLCAxNzIsIAotICAgIDEsIDI1NCwgMjQzLCAyNTMsIDE3MiwgMSwgMjU0LCAyMzksIDI1MywgMTcyLCAxLCA3NSwgMjUzLCAxNzIsIDEsIDI0NSwgCi0gICAgMjA5LCAyNTMsIDE3MiwgMSwgNzYsIDI1MywgMTcyLCAxLCAyMjYsIDE4MywgMjUzLCAxNzIsIDEsIDczLCAyNTMsIDE3MiwgCi0gICAgMSwgMjM2LCAzMywgMjUzLCAxNzIsIDEsIDcwLCAyNTMsIDE3MiwgMSwgMjE0LCAxMTgsIDI1MywgMTcyLCAxLCAyMzQsIAotICAgIDE4MiwgMjUzLCAxNzIsIDEsIDIxMSwgMTYyLCAyNTMsIDE3MiwgMSwgMjExLCAxMjgsIDI1MywgMTcyLCAxLCAyMTEsIDEzNywgCi0gICAgMjUzLCAxNzIsIDEsIDI0MywgNjIsIDI1MywgMTcyLCAxLCAyNDMsIDI0LCAyNTMsIDE3MiwgMSwgMjQyLCAyMzYsIDI1MywgCi0gICAgMTcyLCAxLCAyNTAsIDE5MCwgMjUzLCAxNzIsIDEsIDIzNSwgMTI2LCAyNTMsIDE3MiwgMSwgMjE3LCAyMiwgMjUzLCAxNzIsIAotICAgIDEsIDIxNiwgMTk1LCAyNTMsIDE3MiwgMSwgMjQ4LCA5MCwgMjUzLCAxNzIsIDEsIDI0OCwgMTcsIDI1MywgMTcyLCAxLCAKLSAgICAyMTUsIDE1MSwgMjUzLCAxNzIsIDEsIDIyNSwgMjIxLCAyNTMsIDE3MiwgMSwgMjQ0LCAxNTQsIDI1MywgMTcyLCAxLCAyNTIsIAotICAgIDc1LCAyNTMsIDE3MiwgMSwgMjUyLCAxNCwgMjUzLCAxNzIsIDEsIDIyOSwgNjQsIDI1MywgMTcyLCAxLCAyMjgsIDIzOSwgCi0gICAgMjUzLCAxNzIsIDEsIDIyOCwgMjQwLCAyNTMsIDE3MiwgMSwgMjI5LCAxMDcsIDI1MywgMTcyLCAxLCAyMjcsIDE1NiwgMjUzLCAKLSAgICAxNzIsIDEsIDIyOCwgMTA1LCAyNTMsIDE3MiwgMSwgMjMxLCA5MSwgMjUzLCAxNzIsIDEsIDI0MSwgMTE2LCAyNTMsIDE3MiwgCi0gICAgMSwgMjEwLCAxNjYsIDI1MywgMTcyLCAxLCAyMTEsIDQ3LCAyNTMsIDE3MiwgMSwgMjEzLCAyNTUsIDI1MywgMTcyLCAxLCAKLSAgICAyMjMsIDEyOCwgMjUzLCAxNzIsIDEsIDIzMywgNTgsIDI1MywgMTcyLCAxLCAyMjEsIDE4MSwgMjUzLCAxNzIsIDEsIDIxMCwgCi0gICAgOTQsIDI1MywgMTcyLCAxLCAyMjAsIDYzLCAyNTMsIDE3MiwgMSwgMjEwLCA3NCwgMjUzLCAxNzIsIDEsIDIxOSwgMTk4LCAKLSAgICAyNTMsIDE3MiwgMSwgMjE4LCAxOTMsIDI1MywgMTcyLCAxLCAyNDEsIDIzOCwgMjUzLCAxNzIsIDI1NSwgMjEsIDc4LCAyMTYsIAotICAgIDc5LCAxMTMsIDE3MCwgMTE3LCAxMjMsIDU5LCAyMjQsIDE0MCwgNCwgMTEzLCAxNzAsIDExNywgMTIzLCA1OSwgMjI0LCAKLSAgICAxNDAsIDIzMywgODUsIDExMywgMTcwLCAxMTcsIDEyMywgNTksIDIyNCwgMTQwLCAyMzMsIDg1LCAxMjMsIDU5LCAxMTcsIAotICAgIDExMywgMTcwLCAyMjQsIDE0MCwgMjMzLCA4NSwgMTEzLCAyMjIsIDIzMiwgMTE3LCAxMjMsIDIyMiwgMjM0LCAyMjQsIDE0MCwgCi0gICAgMjMzLCA4NSwgMTIzLCAyMjIsIDIzNCwgMTE3LCAxMTMsIDIyMiwgMjMyLCAyMjQsIDE0MCwgMjM1LCAyMTgsIDIyNSwgMjU0LCAKLSAgICAxLCAyNTQsIDE2OCwgMjM1LCAyMTgsIDIyNSwgMjU0LCAxLCAyNTIsIDI1LCAyMzUsIDIxOCwgMjI1LCAyNTQsIDEsIDI0MiwgCi0gICAgMjAxLCAyMzUsIDIxOCwgMjI1LCAyNTQsIDEsIDI0OCwgMTg4LCAyMzUsIDIxOCwgMjI1LCAyNTQsIDEsIDI0MSwgMjM4LCAKLSAgICAyMzUsIDIxOCwgMjI1LCAyNTQsIDEsIDIxMiwgMzAsIDIzNSwgMjE4LCAyMjUsIDI1NCwgMSwgMjEwLCA5NywgMjM1LCAyMTgsIAotICAgIDIyNSwgMjU0LCAxLCAyNDEsIDE5NSwgMjM1LCAyMTgsIDIyNSwgMjU0LCAxLCAyMTYsIDIyNiwgMjM1LCAyMTgsIDIyNSwgCi0gICAgMjU0LCAxLCAyMTAsIDIzMiwgMjM1LCAyMTgsIDIyNSwgMjU0LCAxLCAyMzQsIDIyNSwgMjM1LCAyMTgsIDIyNSwgMjU0LCAxLCAKLSAgICAyMzMsIDkzLCAyMzUsIDIxOCwgMjI1LCAyNTQsIDEsIDIzMSwgNjUsIDIzNSwgMjE4LCAyMjUsIDI1NCwgMSwgMjI3LCAxOTQsIAotICAgIDIzNSwgMjE4LCAyMjUsIDI1NCwgMSwgMjIxLCAyNDksIDIzNSwgMjE4LCAyMjUsIDI1NCwgMSwgMjUzLCAxNjIsIDIzNSwgCi0gICAgMjE4LCAyMjUsIDI1NCwgMSwgMjI1LCAyMjEsIDIzNSwgMjE4LCAyMjUsIDI1NCwgMSwgMjIyLCAyNCwgMjM1LCAyMTgsIAotICAgIDIyNSwgMjU0LCAxLCAyMjQsIDM0LCAyMzUsIDIxOCwgMjI1LCAyNTQsIDEsIDIyMywgNjcsIDIzNSwgMjE4LCAyMjUsIDI1NCwgCi0gICAgMSwgMjIwLCAyMCwgMjM1LCAyMTgsIDIyNSwgMjU0LCAxLCAyMTcsIDM2LCAyMzUsIDIxOCwgMjI1LCAyNTQsIDU0LCAxMTAsIAotICAgIDIzNSwgMjE4LCAyMjUsIDI1NCwgNTQsIDEwNSwgMjM1LCAyMTgsIDIyNSwgMjU0LCA1NCwgMTU4LCAyMzUsIDIxOCwgMjI1LCAKLSAgICAyNTQsIDU0LCAxNjEsIDIzNSwgMjE4LCAyMjUsIDI1NCwgNTQsIDIxNiwgMjQ3LCAyMzUsIDIxOCwgMjI1LCAyNTQsIDU0LCAKLSAgICAyMTUsIDczLCAyMzUsIDIxOCwgMjI1LCAyNTQsIDU0LCAxMjMsIDI0MCwgMjEwLCAyMzUsIDIxOCwgMjI1LCAyNTQsIDU0LCAKLSAgICAxMjMsIDIxNiwgMTQ3LCAyMzUsIDIxOCwgMjI2LCA3MiwgMSwgMjU0LCAxNjgsIDIzNSwgMjE4LCAyMjYsIDcyLCAxLCAyNTIsIAotICAgIDI1LCAyMzUsIDIxOCwgMjI2LCA3MiwgMSwgMjQyLCAyMDEsIDIzNSwgMjE4LCAyMjYsIDcyLCAxLCAyNDgsIDE4OCwgMjM1LCAKLSAgICAyMTgsIDIyNiwgNzIsIDEsIDI0MSwgMjM4LCAyMzUsIDIxOCwgMjI2LCA3MiwgMSwgMjEyLCAyOSwgMjM1LCAyMTgsIDIyNiwgCi0gICAgNzIsIDEsIDIxMCwgOTcsIDIzNSwgMjE4LCAyMjYsIDcyLCAxLCAyNDEsIDE5NSwgMjM1LCAyMTgsIDIyNiwgNzIsIDEsIAotICAgIDIxNiwgMjI2LCAyMzUsIDIxOCwgMjI2LCA3MiwgMSwgMjEwLCAyMzIsIDIzNSwgMjE4LCAyMjYsIDcyLCAxLCAyMzQsIDIyNSwgCi0gICAgMjM1LCAyMTgsIDIyNiwgNzIsIDEsIDIzMywgOTMsIDIzNSwgMjE4LCAyMjYsIDcyLCAxLCAyMzEsIDY0LCAyMzUsIDIxOCwgCi0gICAgMjI2LCA3MiwgMSwgMjI3LCAxOTQsIDIzNSwgMjE4LCAyMjYsIDcyLCAxLCAyMjEsIDI0OSwgMjM1LCAyMTgsIDIyNiwgNzIsIAotICAgIDEsIDIyNSwgMjIxLCAyMzUsIDIxOCwgMjI2LCA3MiwgMSwgMjIyLCAyNCwgMjM1LCAyMTgsIDIyNiwgNzIsIDEsIDIyMCwgCi0gICAgMjAsIDIzNSwgMjE4LCAyMjYsIDcyLCAxLCAyMTcsIDM2LCAyMzUsIDIxOCwgMjI2LCA3MiwgNTQsIDExMCwgMjM1LCAyMTgsIAotICAgIDIyNiwgNzIsIDU0LCAxMDUsIDIzNSwgMjE4LCAyMjYsIDcyLCA1NCwgMTU4LCAyMzUsIDIxOCwgMjI2LCA3MiwgNTQsIDE2MSwgCi0gICAgMjM1LCAyMTgsIDIyNiwgNzIsIDU0LCAyMTYsIDI0NywgMjM1LCAyMTgsIDIyNiwgNzIsIDU0LCAyMTUsIDczLCAyMzUsIAotICAgIDIxOCwgMjI2LCA3MiwgNTQsIDEyMywgMjQwLCAyMTAsIDIzNSwgMjE4LCAyMjYsIDcyLCA1NCwgMTIzLCAyMTYsIDE0NywgCi0gICAgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDYxLCA1NSwgMjAxLCAxLCAyMTEsIDM3LCA2MSwgNTUsIDIwMSwgMSwgMjExLCAzNywgCi0gICAgMjU0LCAyNDMsIDU1LCAyMDEsIDEsIDIyNiwgMTQ5LCA3MywgNTUsIDIwMSwgMSwgMjExLCAzNywgNzMsIDU1LCAyMDEsIDEsIAotICAgIDIxMSwgMzcsIDc1LCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgNzYsIDU1LCAyMDEsIDEsIDIyNiwgMTQ5LCAyMjYsIDIzNCwgCi0gICAgNTUsIDIwMSwgMSwgMjExLCAzNywgMjI2LCAyMzQsIDU1LCAyMDEsIDEsIDIyNiwgMTQ5LCAyNTUsIDI1LCA1NSwgMjAxLCAxLCAKLSAgICAyMTEsIDM3LCAyNTUsIDI1LCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjU0LCAyNDIsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIAotICAgIDI1NCwgMjQyLCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjU0LCAyMTYsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1NCwgMjE2LCAKLSAgICA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjU0LCAyMzcsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1NCwgMjM3LCA1NSwgMjAxLCAKLSAgICAxLCAyMjYsIDE0OSwgMjU0LCAyNTUsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1NCwgMjU1LCA1NSwgMjAxLCAxLCAyMjYsIAotICAgIDE0OSwgMjU0LCAyNDEsIDU1LCAyMDEsIDEsIDIyNiwgMTQ5LCAyNDUsIDEyLCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNDUsIAotICAgIDEyLCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjUzLCAxNjcsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1MywgMTY3LCA1NSwgCi0gICAgMjAxLCAxLCAyMjYsIDE0OSwgMjU0LCAyMjQsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1NCwgMjI0LCA1NSwgMjAxLCAxLCAKLSAgICAyMjYsIDE0OSwgMjU0LCAyMzUsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1NCwgMjM1LCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgCi0gICAgMjI2LCAyMzMsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDIyNiwgMjMzLCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjU0LCAxNzgsIAotICAgIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1NCwgMTc4LCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjU0LCAyMzQsIDU1LCAyMDEsIAotICAgIDEsIDIyNiwgMTQ5LCAyNDUsIDE2MSwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI0NSwgMTU5LCA1NSwgMjAxLCAxLCAyMjYsIAotICAgIDE0OSwgMjU0LCAxMjMsIDU1LCAyMDEsIDEsIDIyNiwgMTQ5LCAyNTQsIDIzMiwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjU0LCAKLSAgICAyMzIsIDU1LCAyMDEsIDEsIDIyNiwgMTQ5LCAyNDUsIDEzMSwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjQ1LCAxMzEsIDU1LCAKLSAgICAyMDEsIDEsIDIyNiwgMTQ5LCAyNDUsIDE0NywgNTUsIDIwMSwgMSwgMjExLCAzNywgMjQ1LCAxNDcsIDU1LCAyMDEsIDEsIAotICAgIDIyNiwgMTQ5LCAyNDUsIDExOCwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjQ1LCAxMTgsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIAotICAgIDI1NCwgMTE1LCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjQ1LCAxMzgsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1NCwgMjMxLCAKLSAgICA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjQ1LCAxMDgsIDU1LCAyMDEsIDEsIDIyNiwgMTQ5LCAyMjYsIDE3NSwgNTUsIDIwMSwgCi0gICAgMSwgMjI2LCAxNDksIDI0MCwgMTEzLCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjQ1LCAyMTUsIDU1LCAyMDEsIDEsIDIxMSwgCi0gICAgMzcsIDI0NSwgMjE1LCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjU0LCA0NSwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjU0LCAKLSAgICA0NSwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDIzNSwgMTgxLCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyMzUsIDE4MSwgNTUsIAotICAgIDIwMSwgMSwgMjI2LCAxNDksIDIyNiwgMTU5LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyMjYsIDE1OSwgNTUsIDIwMSwgMSwgCi0gICAgMjI2LCAxNDksIDI1NCwgNDEsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1NCwgNDEsIDU1LCAyMDEsIDEsIDIyNiwgMTQ5LCAKLSAgICAyNTQsIDIzMCwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI1MywgMjM3LCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjU0LCAyMjgsIAotICAgIDU1LCAyMDEsIDEsIDIyNiwgMTQ5LCAyNTMsIDIzMSwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjUzLCAyMzEsIDU1LCAyMDEsIAotICAgIDEsIDIyNiwgMTQ5LCAyNDUsIDc1LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNDUsIDc1LCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgCi0gICAgMjUzLCAyMDYsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1MywgMjA2LCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjU0LCAyMjUsIAotICAgIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1NCwgMjI1LCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjI2LCAxNDAsIDU1LCAyMDEsIAotICAgIDEsIDIyNiwgMTQ5LCAyNTIsIDEyNSwgMjIyLCAxMjcsIDIxLCAxMTAsIDIyMiwgMTI3LCAyMSwgMTA1LCAyMjIsIDEyNywgCi0gICAgMjEsIDE1OCwgMjIyLCAxMjcsIDIxLCAxNjEsIDIyMiwgMTI3LCAyMSwgMTg5LCAyMjIsIDEyNywgMjEsIDE5NCwgMjIyLCAKLSAgICAxMjcsIDIxLCAxOTgsIDIyMiwgMTI3LCAyMSwgMTk1LCAyMjIsIDEyNywgMjEsIDIwMCwgMjIyLCAxMjcsIDU0LCAyMTYsIAotICAgIDI0NywgMjIyLCAxMjcsIDU0LCAyMTUsIDczLCAyMjIsIDEyNywgNTQsIDIxNiwgMTYyLCAyMjIsIDEyNywgNTQsIDI0NCwgCi0gICAgMTUsIDIyMiwgMTI3LCA1NCwgMjQ0LCAxMTQsIDIyMiwgMTI3LCA1NCwgMjE5LCAxMTEsIDIyMiwgMTI3LCA1NCwgMjIwLCAKLSAgICAxMTYsIDIyMiwgMTI3LCA1NCwgMjQ1LCAxODQsIDIyMiwgMTI3LCA1NCwgMjI4LCAxOTUsIDIyMiwgMTI3LCA1NCwgMTIzLCAKLSAgICAyNDAsIDIxMCwgMjIyLCAxMjcsIDU0LCAxMTMsIDI0MCwgMjEwLCAyMjIsIDEyNywgNTQsIDEzNCwgMjQwLCAyMTAsIDIyMiwgCi0gICAgMTI3LCA1NCwgMjQ0LCAxMSwgMjQwLCAyMTAsIDIyMiwgMTI3LCA1NCwgMjQ0LCA4MSwgMjQwLCAyMTAsIDIyMiwgMTI3LCAKLSAgICA1NCwgMjE5LCAxMjUsIDI0MCwgMjEwLCAyMjIsIDEyNywgNTQsIDIyMCwgMTIyLCAyNDAsIDIxMCwgMjIyLCAxMjcsIDU0LCAKLSAgICAyNDUsIDE5MywgMjQwLCAyMTAsIDIyMiwgMTI3LCA1NCwgMjI4LCAyMDAsIDI0MCwgMjEwLCAyMjIsIDEyNywgMjQ0LCAyLCAKLSAgICAxMjMsIDI0MiwgMjcsIDIyMiwgMTI3LCAyNDQsIDIsIDEyMywgMjI0LCAyMSwgMjIyLCAxMjcsIDI0NCwgMiwgMTIzLCAyMTYsIAotICAgIDE2OCwgMjIyLCAxMjcsIDI0NCwgMiwgMTEzLCAyMTYsIDE2NiwgMTE4LCA1LCAyNTAsIDI1NSwgMTE4LCA1LCAyNTQsIDc1LCAKLSAgICAxMTgsIDUsIDIxMywgMTQ3LCAxMTgsIDUsIDIzNSwgMTAyLCAxMTgsIDUsIDIxNCwgMTYxLCAxMTgsIDEsIDYxLCAxMTgsIDEsIAotICAgIDI1NSwgNzMsIDExOCwgMSwgNzMsIDExOCwgMSwgMjM2LCAzMywgMTE4LCAxLCA3MCwgMTE4LCAxLCAyMTQsIDExOCwgMTE4LCAKLSAgICAxLCAxNDksIDE1MywgMTE4LCAxLCAxNDksIDIyMiwgMTgwLCAxMTgsIDEsIDE0OSwgMTU2LCAxMTgsIDEsIDE0OSwgMjMyLCAKLSAgICAxODUsIDExOCwgMSwgNzUsIDExOCwgMSwgMjU0LCAyMDEsIDExOCwgMSwgNzYsIDExOCwgMSwgMjUzLCAxOTIsIDExOCwgMSwgCi0gICAgMTc2LCAxMTgsIDEsIDIzNCwgMTMyLCAxMTgsIDEsIDI0MywgMTM1LCAxMTgsIDEsIDI0MiwgMjQ5LCAxMTgsIDEsIDIyOSwgCi0gICAgNzcsIDExOCwgMSwgMjUxLCAzMywgMTE4LCAxLCAyNTAsIDE1NywgMTE4LCAxLCAyMzUsIDE0MSwgMTE4LCAxLCAyMzUsIAotICAgIDExNCwgMTE4LCAxLCAyMjcsIDE2NSwgMTE4LCAxLCAyMTUsIDE1NiwgMTE4LCAxLCAyMTUsIDE0NCwgMTE4LCAxLCAyNDgsIAotICAgIDEzNSwgMTE4LCAxLCAyNDgsIDExOSwgMTE4LCAxLCAyMjgsIDExMCwgMTE4LCAxLCAyMTcsIDEwNSwgMTE4LCAxLCAyMTYsIAotICAgIDIwOCwgMTE4LCAxLCAyNDgsIDIyMSwgMTE4LCAxLCAyNDgsIDI1LCAxMTgsIDEsIDE5NywgMTE4LCAxLCAxOTAsIDExOCwgMSwgCi0gICAgMjI1LCAxNDcsIDExOCwgMSwgMjUyLCAxOTEsIDExOCwgMSwgMjUyLCAxOCwgMTE4LCAxLCAxODQsIDExOCwgMSwgMTkxLCAKLSAgICAxMTgsIDEsIDIwNSwgMTE4LCAxLCAyMzMsIDEzNSwgMTE4LCAxLCAyMTQsIDI3LCAxMTgsIDEsIDIyMCwgMTAyLCAxMTgsIDEsIAotICAgIDIxOCwgMjIzLCAxMTgsIDEsIDIwNiwgMTE4LCAxLCAxNjIsIDExOCwgMSwgMjMyLCAxODQsIDExOCwgMSwgNTUsIDM2LCAKLSAgICAyMzIsIDE3NSwgMTE4LCAxLCA1NSwgMzYsIDIyMiwgMTc5LCAxMTgsIDEsIDU1LCAzNiwgMjI4LCA5MiwgMTE4LCAyNSwgNSwgCi0gICAgMjU1LCA3MywgMTE4LCAyNSwgNSwgMjUyLCAxNSwgMjU1LCA3MywgMTE4LCAyNSwgNSwgNzMsIDExOCwgMjUsIDUsIDIzNiwgCi0gICAgMzMsIDExOCwgMjUsIDUsIDcwLCAxMTgsIDI1LCA1LCAyMTQsIDExOCwgMTE4LCAyNSwgNSwgMTQ5LCAxNTMsIDExOCwgMjUsIAotICAgIDUsIDE0OSwgMjIyLCAxODAsIDExOCwgMjUsIDUsIDE0OSwgMTU2LCAxMTgsIDI1LCA1LCAxNDksIDIzMiwgMTg1LCAxMTgsIAotICAgIDI1LCA1LCA3NSwgMTE4LCAyNSwgNSwgMjU0LCAyMDEsIDExOCwgMjUsIDUsIDc2LCAxMTgsIDI1LCA1LCAyNTMsIDE5MiwgCi0gICAgMTE4LCAyMTMsIDE1MiwgMTE4LCAyNDgsIDE3OCwgMTE4LCA1MiwgMjQ4LCAxNzgsIDExOCwgMjI0LCAxNDEsIDI0NywgMTIwLCAKLSAgICAxMTgsIDIyNCwgMTQxLCA1MiwgMjQ3LCAxMjAsIDExOCwgMjI0LCAxNDEsIDIzMiwgMjEzLCAxMTgsIDIyNCwgMTQxLCAyNDksIAotICAgIDEzNywgMTMwLCAxMTgsIDIyNCwgMTQxLCAyMzIsIDExNSwgMTE4LCA1NCwgMTEwLCAxMTgsIDU0LCAxMDUsIDExOCwgNTQsIAorICAgIDE5OSwgMjU0LCAyMTAsIDE4MSwgNiwgMSwgMTk5LCA3NiwgMTgxLCA2LCAxLCAxOTksIDIyNiwgMTg0LCAxODEsIDYsIDEsIAorICAgIDIxOSwgMjUyLCA3MywgMTgxLCA2LCAxLCAyMTksIDI1MiwgNzUsIDE4MSwgNiwgMSwgMjE5LCAyNTIsIDYxLCAxODEsIDYsIAorICAgIDEsIDIxOSwgMjUyLCAyNTQsIDIxMCwgMTgxLCA2LCAxLCAyMTksIDI1MiwgNzYsIDE4MSwgNiwgMSwgMjE5LCAyNTIsIDIyNiwgCisgICAgMTg0LCAxODEsIDYsIDEsIDI1MywgMTY4LCAxODEsIDYsIDEsIDIyNiwgMTE3LCAxODEsIDYsIDEsIDIxMSwgMTk1LCAxODEsIAorICAgIDYsIDEsIDIxMSwgNDQsIDE4MSwgNiwgMSwgMjQyLCA2MSwgMTgxLCA2LCAxLCAyMjUsIDIxMiwgMTgxLCA2LCAxLCAyNTIsIAorICAgIDY3LCAxODEsIDYsIDEsIDIxNywgMTIsIDE4MSwgNiwgMSwgMjQ4LCA3OCwgMTgxLCA2LCAxLCAyNTAsIDEyOSwgMTgxLCA2LCAKKyAgICAxLCAyMzUsIDEyNSwgMTgxLCA2LCAxLCAyMzQsIDE5MCwgMTgxLCA2LCAxLCAyNDMsIDg0LCAxODEsIDYsIDEsIDI0NSwgCisgICAgMjAzLCAxODEsIDYsIDEsIDIxMywgMjUwLCAxODEsIDYsIDEsIDI0NSwgNjAsIDE4MSwgNiwgMSwgMjE2LCAxOTUsIDE4MSwgCisgICAgNiwgMSwgMjQ1LCA4MywgMTgxLCA2LCAxLCAyMTAsIDkyLCAxODEsIDYsIDEsIDI0NSwgNzYsIDE4MSwgNiwgMSwgMjEwLCAKKyAgICA3MywgMTgxLCA2LCAxLCAyNDUsIDkzLCAxODEsIDYsIDEsIDI0NSwgMTc1LCAxODEsIDYsIDEsIDI0NSwgMTYwLCAxODEsIDYsIAorICAgIDEsIDI0NSwgMTUxLCAxODEsIDYsIDEsIDI0NSwgMTM5LCAxODEsIDYsIDEsIDIyNiwgMjIwLCAxODEsIDYsIDEsIDI0NSwgCisgICAgMzksIDE4MSwgNCwgMSwgMTk5LCA3MywgMTgxLCA0LCAxLCAxOTksIDc1LCAxODEsIDQsIDEsIDE5OSwgNjEsIDE4MSwgNCwgCisgICAgMSwgMTk5LCAyNTQsIDIxMCwgMTgxLCA0LCAxLCAxOTksIDc2LCAxODEsIDQsIDEsIDE5OSwgMjI2LCAxODQsIDE4MSwgNCwgCisgICAgMSwgMjE5LCAyNTIsIDczLCAxODEsIDQsIDEsIDIxOSwgMjUyLCA3NSwgMTgxLCA0LCAxLCAyMTksIDI1MiwgNjEsIDE4MSwgCisgICAgNCwgMSwgMjE5LCAyNTIsIDI1NCwgMjEwLCAxODEsIDQsIDEsIDIxOSwgMjUyLCA3NiwgMTgxLCA0LCAxLCAyMTksIDI1MiwgCisgICAgMjI2LCAxODQsIDE4MSwgNCwgMSwgMjUzLCAxNjgsIDE4MSwgNCwgMSwgMjI2LCAxMTcsIDE4MSwgNCwgMSwgMjExLCAxOTUsIAorICAgIDE4MSwgNCwgMSwgMjExLCA0NCwgMTgxLCA0LCAxLCAyNDIsIDYxLCAxODEsIDQsIDEsIDIyNSwgMjEyLCAxODEsIDQsIDEsIAorICAgIDI1MiwgNjcsIDE4MSwgNCwgMSwgMjE3LCAxMiwgMTgxLCA0LCAxLCAyNDgsIDc4LCAxODEsIDQsIDEsIDI1MCwgMTI5LCAKKyAgICAxODEsIDQsIDEsIDIzNSwgMTI1LCAxODEsIDQsIDEsIDIzNCwgMTkwLCAxODEsIDQsIDEsIDI0MywgODQsIDE4MSwgNCwgMSwgCisgICAgMjQ1LCAyMDMsIDE4MSwgNCwgMSwgMjEzLCAyNTAsIDE4MSwgNCwgMSwgMjQ1LCA2MCwgMTgxLCA0LCAxLCAyMTYsIDE5NSwgCisgICAgMTgxLCA0LCAxLCAyNDUsIDgzLCAxODEsIDQsIDEsIDIxMCwgOTIsIDE4MSwgNCwgMSwgMjQ1LCA3NiwgMTgxLCA0LCAxLCAKKyAgICAyMTAsIDczLCAxODEsIDQsIDEsIDI0NSwgOTMsIDE4MSwgNCwgMSwgMjQ1LCAxNzUsIDE4MSwgNCwgMSwgMjQ1LCAxNjAsIAorICAgIDE4MSwgNCwgMSwgMjQ1LCAxNTEsIDE4MSwgNCwgMSwgMjQ1LCAxMzksIDE4MSwgNCwgMSwgMjI2LCAyMjAsIDE4MSwgNCwgMSwgCisgICAgMjQ1LCAzOSwgMjIwLCA3MCwgMSwgMjI1LCAyMTAsIDIyMCwgNzAsIDEsIDIxNiwgNiwgMjIwLCA3MCwgMSwgMjM0LCA5MiwgCisgICAgMjIwLCA3MCwgMSwgMjQ0LCAxNDgsIDIyMCwgNzAsIDEsIDIxNiwgMTczLCAyMjAsIDcwLCAxLCAyMTksIDU5LCAyMjAsIDcwLCAKKyAgICAxLCAyMTgsIDE1LCAyMjAsIDcwLCAxLCAyNTAsIDYyLCAyMjAsIDcwLCAxLCAyMTEsIDQ2LCAyMjAsIDcwLCAxLCAyNDAsIAorICAgIDIxMCwgMjIwLCA3MCwgMSwgMjUyLCA2LCAyMjAsIDcwLCAxLCAyNDgsIDkwLCAyMjAsIDcwLCAxLCAyNDMsIDEyMiwgMjIwLCAKKyAgICA3MCwgMSwgMjEzLCAxMjMsIDIyMCwgNzAsIDEsIDIxNiwgMTc3LCAyMjAsIDcwLCAxLCAyMTAsIDIxLCAyMjAsIDcwLCAxLCAKKyAgICAyMzEsIDkwLCAyMjAsIDcwLCAxLCAyMzUsIDUwLCAyMjAsIDcwLCAxLCAyMTEsIDIyNSwgMjIwLCA3MCwgMSwgMjQyLCA0OSwgCisgICAgMjIwLCA3MCwgMSwgMjMyLCAxNDMsIDIyMCwgNzAsIDEsIDIzMCwgMTkwLCAyMjAsIDcwLCAxLCAyMzYsIDQxLCAyMjAsIDcwLCAKKyAgICAxLCAyNDUsIDIwMiwgMjIwLCA3MCwgMSwgMjUzLCAyMzIsIDIyMCwgNzAsIDEsIDI1NCwgMjQ4LCAyMjAsIDcwLCAxLCAyMjYsIAorICAgIDE5NywgMjIwLCA3MCwgMSwgMjExLCAyMTIsIDIyMCwgNzAsIDEsIDIyNiwgMTMxLCAyMjAsIDcwLCAxLCAyNTQsIDIxMCwgCisgICAgMjIwLCA3MCwgMSwgMjIyLCAyMDksIDIyMCwgNzAsIDEsIDIyNywgMTk1LCAyMjAsIDcwLCAxLCAyNDUsIDIxOCwgMjIwLCAKKyAgICA3MCwgMSwgMjU0LCAyMTUsIDIyMCwgNzAsIDEsIDI0MCwgMTEyLCAyMjAsIDcwLCAxLCAyMTQsIDE2MywgMjIwLCA3MCwgMSwgCisgICAgMjI2LCAyNTUsIDIyMCwgNzAsIDEsIDIyNiwgMTc3LCAyMjAsIDcwLCAxLCAyMjYsIDIxOSwgMjIwLCA3MCwgMSwgMjUzLCAKKyAgICAxNzEsIDIyMCwgNzAsIDEsIDI1NCwgMjAsIDIyMCwgNzAsIDEsIDIyNiwgMTU5LCAyMjAsIDcwLCAxLCAyNTQsIDE5MywgCisgICAgMjIwLCA3MCwgMSwgMjQ1LCA4NywgMjIwLCA3MCwgMSwgMjUzLCAyNTQsIDIyMCwgNzAsIDEsIDI0NSwgMjI4LCAyMjAsIDcwLCAKKyAgICAxLCAyNDAsIDExOSwgMjIwLCA3MCwgMSwgMjExLCAxMywgMjI2LCAxNDIsIDEsIDI1NCwgMTcxLCAyMjYsIDE0MiwgMSwgCisgICAgMjUyLCAxOTIsIDIyNiwgMTQyLCAxLCAyMTcsIDEwNiwgMjI2LCAxNDIsIDEsIDIzNSwgMTQyLCAyMjYsIDE0MiwgMSwgMjExLCAKKyAgICAxNjUsIDIyNiwgMTQyLCAxLCAyMzQsIDEzMywgMjI2LCAxNDIsIDEsIDI0OCwgNzcsIDIyNiwgMTQyLCAxLCAyMDUsIDIyNiwgCisgICAgMTQyLCAxLCAyMDYsIDIyNiwgMTQyLCAxLCAyMjAsIDI3LCAyMjYsIDE0MiwgMSwgMjQ4LCAyNiwgMjI2LCAxNDIsIDEsIAorICAgIDI1MCwgMjE2LCAyMjYsIDE0MiwgMSwgMjQzLCAxMzYsIDIyNiwgMTQyLCAxLCAyNDQsIDE5NywgMjI2LCAxNDIsIDEsIDIyNCwgCisgICAgODcsIDIyNiwgMTQyLCAxLCAyMzUsIDEwLCAyMjYsIDE0MiwgMSwgMjMzLCAxMzEsIDIyNiwgMTQyLCAxLCAyMzAsIDIwMSwgCisgICAgMjI2LCAxNDIsIDEsIDIyNywgMTc5LCAyMjYsIDE0MiwgMSwgMjEyLCAzMCwgMjI2LCAxNDIsIDEsIDE2MiwgMjI2LCAxNDIsIAorICAgIDEsIDE5MSwgMjI2LCAxNDIsIDEsIDYxLCAyMjYsIDE0MiwgMSwgNzUsIDIyNiwgMTQyLCAxLCA3MywgMjI2LCAxNDIsIDEsIAorICAgIDc2LCAyMjYsIDE0MiwgMSwgNzAsIDIyNiwgMTQyLCAxLCAyNTUsIDc0LCAyMjYsIDE0MiwgMSwgMjQ1LCAyMTAsIDIyNiwgCisgICAgMTQyLCAxLCAyMjYsIDE4NCwgMjI2LCAxNDIsIDIxLCAyMTAsIDg2LCAyMjYsIDE0MiwgMjEsIDExMCwgMjI2LCAxNDIsIDIxLCAKKyAgICAxMDUsIDIyNiwgMTQyLCAyMSwgMTU4LCAyMjYsIDE0MiwgMjEsIDE2MSwgMjI2LCAxNDIsIDIxLCAxODksIDIyNiwgMTQyLCAKKyAgICAyMSwgMTk0LCAyMjYsIDE0MiwgMjEsIDE5OCwgMjI2LCAxNDIsIDIxLCAxOTUsIDIyNiwgMTQyLCAyMSwgMjAwLCAyNDksIAorICAgIDY4LCAzLCA2MSwgMjQ5LCA2OCwgMywgNzUsIDI0OSwgNjgsIDMsIDczLCAyNDksIDY4LCAzLCA3NiwgMjQ5LCA2OCwgMywgCisgICAgNzAsIDI0OSwgNjgsIDMsIDIzNSwgMTQyLCAyNDksIDY4LCAzLCAyMzUsIDY5LCAyNDksIDY4LCAzLCAxNzYsIDI0OSwgNjgsIAorICAgIDMsIDIzNCwgMTgzLCAyNDksIDY4LCAzLCAyMzQsIDkzLCAyNDksIDY4LCAzLCAyMzQsIDI5LCAyNDksIDY4LCAzLCAyMzMsIAorICAgIDIxOCwgMjQ5LCA2OCwgMywgMjMzLCAxMzYsIDI0OSwgNjgsIDMsIDIzMywgNTksIDI0OSwgNjgsIDMsIDIzMiwgMjQyLCAKKyAgICAyNDksIDY4LCAzLCAyMzIsIDE1NywgMjQ5LCA2OCwgMywgMjMyLCA5OSwgMjQ5LCA2OCwgMywgMTg1LCAyNDksIDY4LCAzLCAKKyAgICAyMzEsIDkyLCAyNDksIDY4LCAzLCAyMzAsIDIzMSwgMjQ5LCA2OCwgMywgMjMwLCAxNjIsIDI0OSwgNjgsIDMsIDIzMCwgCisgICAgMTAzLCAyNDksIDY4LCAzLCAxOTcsIDI0OSwgNjgsIDMsIDIyOSwgMTA4LCAyNDksIDY4LCAzLCAyMjgsIDIzNCwgMjQ5LCAKKyAgICA2OCwgMywgMjI4LCA3NSwgMjQ5LCA2OCwgMywgMjI3LCAyMzgsIDI0OSwgNjgsIDMsIDE5MCwgMjQ5LCA2OCwgMywgMjI1LCAKKyAgICAyMjIsIDI0OSwgNjgsIDMsIDIyNSwgMTA5LCAyNDksIDY4LCAzLCAyMjUsIDE3LCAyNDksIDY4LCAzLCAyMjQsIDE1MSwgCisgICAgMjQ5LCA2OCwgMywgMjA1LCAyNDksIDY4LCAzLCAyMjMsIDEyOSwgMjQ5LCA2OCwgMywgMjIzLCAzNiwgMjQ5LCA2OCwgMywgCisgICAgMjIyLCAyMTIsIDI0OSwgNjgsIDMsIDIyMiwgMTQxLCAyNDksIDY4LCAzLCAyMDYsIDI0OSwgNjgsIDMsIDIyMSwgMTgyLCAKKyAgICAyNDksIDY4LCAzLCAyMTksIDE5MiwgMjQ5LCA2OCwgMywgMjE5LCA1OSwgMjQ5LCA2OCwgMywgMjE4LCA4NCwgMjQ5LCA2OCwgCisgICAgMywgMjE3LCAxMDYsIDI0OSwgNjgsIDMsIDIxNywgMjMsIDI0OSwgNjgsIDMsIDIxNiwgMTE4LCAyNDksIDY4LCAzLCAxMTEsIAorICAgIDI0OSwgNjgsIDMsIDIxNSwgMTE5LCAyNDksIDY4LCAzLCAyMTIsIDY1LCAyNDksIDY4LCAzLCAyMTIsIDIyLCAyNDksIDY4LCAKKyAgICAzLCAyMTEsIDI1MCwgMjQ5LCA2OCwgMywgMjExLCAyMjcsIDI0OSwgNjgsIDMsIDIxMSwgMTY1LCAyNDksIDY4LCAzLCAyMTEsIAorICAgIDE2MiwgMjQ5LCA2OCwgMywgMjEwLCAxMTYsIDI0OSwgNjgsIDMsIDIxMCwgMjMsIDIzNiwgMiwgMjU0LCAyOCwgMSwgMjU0LCAKKyAgICAxNjksIDIzNiwgMiwgMjU0LCAyOCwgMSwgMjUyLCAyNiwgMjM2LCAyLCAyNTQsIDI4LCAxLCAyNDIsIDIwMiwgMjM2LCAyLCAKKyAgICAyNTQsIDI4LCAxLCAyNDgsIDE4OSwgMjM2LCAyLCAyNTQsIDI4LCAxLCAyNDEsIDIzOSwgMjM2LCAyLCAyNTQsIDI4LCAxLCAKKyAgICAyMTIsIDMwLCAyMzYsIDIsIDI1NCwgMjgsIDEsIDIxMCwgOTcsIDIzNiwgMiwgMjU0LCAyOCwgMSwgMjQxLCAxOTYsIDIzNiwgCisgICAgMiwgMjU0LCAyOCwgMSwgMjE2LCAyMjcsIDIzNiwgMiwgMjU0LCAyOCwgMSwgMjEwLCAyMzIsIDIzNiwgMiwgMjU0LCAyOCwgCisgICAgMSwgMjM0LCAyMjYsIDIzNiwgMiwgMjU0LCAyOCwgMSwgMjMzLCA5NCwgMjM2LCAyLCAyNTQsIDI4LCAxLCAyMzEsIDY2LCAKKyAgICAyMzYsIDIsIDI1NCwgMjgsIDEsIDIyNywgMTk1LCAyMzYsIDIsIDI1NCwgMjgsIDEsIDIyMSwgMjUwLCAyMzYsIDIsIDI1NCwgCisgICAgMjgsIDEsIDI1MywgMTYzLCAyMzYsIDIsIDI1NCwgMjgsIDEsIDIyNSwgMjIyLCAyMzYsIDIsIDI1NCwgMjgsIDEsIDIyMiwgCisgICAgMjUsIDIzNiwgMiwgMjU0LCAyOCwgMSwgMjI0LCAzNSwgMjM2LCAyLCAyNTQsIDI4LCAxLCAyMjMsIDY4LCAyMzYsIDIsIAorICAgIDI1NCwgMjgsIDEsIDIyMCwgMjEsIDIzNiwgMiwgMjU0LCAyOCwgMSwgMjE3LCAzNywgMjM2LCAyLCAyNTQsIDI4LCAyMjEsIAorICAgIDE3NCwgNTAsIDIzNiwgMiwgMjU0LCAyOCwgNTQsIDExMCwgMjM2LCAyLCAyNTQsIDI4LCA1NCwgMTA1LCAyMzYsIDIsIDI1NCwgCisgICAgMjgsIDU0LCAxNTgsIDIzNiwgMiwgMjU0LCAyOCwgNTQsIDIxNiwgMjQ4LCAyMzYsIDIsIDI1NCwgMjgsIDU0LCAyMTUsIDczLCAKKyAgICAyMzYsIDIsIDI1NCwgMjgsIDU0LCAxMjMsIDI0MCwgMjExLCAyMzYsIDIsIDI1NCwgMjgsIDU0LCAxMjMsIDIxNiwgMTQ4LCAKKyAgICAyMzYsIDIsIDI1NCwgMjgsIDU0LCAyMTYsIDI0OSwgMjE2LCAxNDgsIDIyNSwgMTIwLCAxLCAyNTQsIDE2NiwgMjI1LCAxMjAsIAorICAgIDEsIDI1MiwgMjksIDIyNSwgMTIwLCAxLCAyNDMsIDExMCwgMjI1LCAxMjAsIDEsIDI0OCwgNTcsIDIyNSwgMTIwLCAxLCAKKyAgICAyNDEsIDIzOSwgMjI1LCAxMjAsIDEsIDIxMiwgMzcsIDIyNSwgMTIwLCAxLCAyMTAsIDExMCwgMjI1LCAxMjAsIDEsIDI0MSwgCisgICAgMTk4LCAyMjUsIDEyMCwgMSwgMjE2LCAyMzEsIDIyNSwgMTIwLCAxLCAyMTAsIDIzMywgMjI1LCAxMjAsIDEsIDIzNCwgMjUxLCAKKyAgICAyMjUsIDEyMCwgMSwgMjMzLCAxMDAsIDIyNSwgMTIwLCAxLCAyMzEsIDY2LCAyMjUsIDEyMCwgMSwgMjI3LCAxOTUsIDIyNSwgCisgICAgMTIwLCAxLCAyMjAsIDE0NSwgMjI1LCAxMjAsIDEsIDI1NCwgMTk3LCAyMjUsIDEyMCwgMSwgMjI1LCAyMjIsIDIyNSwgMTIwLCAKKyAgICAxLCAyMjIsIDI2LCAyMjUsIDEyMCwgMSwgMjI0LCA0MCwgMjI1LCAxMjAsIDEsIDIyMiwgMTkwLCAyMjUsIDEyMCwgMSwgCisgICAgMjIwLCAyMSwgMjI1LCAxMjAsIDEsIDIxNywgNDIsIDIyNSwgMTIwLCA1NCwgMTEwLCAyMjUsIDEyMCwgNTQsIDIxNiwgMjQ4LCAKKyAgICAyMjUsIDEyMCwgNTQsIDIxNSwgNzMsIDIyNSwgMTIwLCA1NCwgMTIzLCAyNDAsIDIxMSwgMjI1LCAxMjAsIDU0LCAxMDUsIAorICAgIDIyNSwgMTIwLCA1NCwgMTU4LCAyMjUsIDEyMCwgMjExLCAyMDksIDIyMCwgMTM4LCAyMzIsIDYwLCAxLCA2MSwgMjMyLCA2MCwgCisgICAgMSwgMjUzLCAxNTksIDIzMiwgNjAsIDEsIDI0MywgMjAzLCAyMzIsIDYwLCAxLCAyNDksIDYxLCAyMzIsIDYwLCAxLCA3NSwgCisgICAgMjMyLCA2MCwgMSwgMjE0LCAxMDUsIDIzMiwgNjAsIDEsIDczLCAyMzIsIDYwLCAxLCAyMTEsIDExNywgMjMyLCA2MCwgMSwgCisgICAgMjM1LCAyNCwgMjMyLCA2MCwgMSwgMTU2LCAyMzIsIDYwLCAxLCAxOTMsIDIzMiwgNjAsIDEsIDIzMCwgMjYsIDIzMiwgNjAsIAorICAgIDEsIDc2LCAyMzIsIDYwLCAxLCAxNTMsIDIzMiwgNjAsIDEsIDIxOCwgMjI3LCAyMzIsIDYwLCAxLCAyMTcsIDE1MywgMjMyLCAKKyAgICA2MCwgMSwgNzAsIDIzMiwgNjAsIDEsIDI0NSwgNywgMjMyLCA2MCwgMSwgMjI0LCA5NywgMjMyLCA2MCwgMSwgMjIyLCA5MiwgCisgICAgMjMyLCA2MCwgMSwgMjE1LCAxNjAsIDIzMiwgNjAsIDEsIDI1NCwgMTI0LCAyMzIsIDYwLCAxLCAyNDUsIDE1MSwgMjMyLCAKKyAgICA2MCwgMSwgMjMyLCA2MywgMjMyLCA2MCwgMSwgMjI4LCAxMTIsIDIzMiwgNjAsIDEsIDI1MSwgNjcsIDIzMiwgNjAsIDIxNSwgCisgICAgMjIzLCA3OCwgMjMxLCA0OSwgMjQxLCAxNzUsIDEsIDYxLCAyMzEsIDQ5LCAyNDEsIDE3NSwgMSwgNzUsIDIzMSwgNDksIAorICAgIDI0MSwgMTc1LCAxLCA3MywgMjMxLCA0OSwgMjQxLCAxNzUsIDEsIDc2LCAyMzEsIDQ5LCAyNDEsIDE3NSwgMSwgMTkxLCAKKyAgICAyMzEsIDQ5LCAyNDEsIDE3NSwgMSwgMjEyLCA2NSwgMjMxLCA0OSwgMjQxLCAxNzUsIDEsIDI1MiwgMTkyLCAyMzEsIDQ5LCAKKyAgICAyNDEsIDE3NSwgMSwgMjUyLCAxOTEsIDIzMSwgNDksIDI0MSwgMTc1LCAxLCAxOTAsIDIzMSwgNDksIDI0MSwgMTc1LCAxLCAKKyAgICAxODUsIDIzMSwgNDksIDI0MSwgMTc1LCAxLCAxOTcsIDIzMSwgNDksIDI0MSwgMTc1LCAxLCAyMjksIDIyOSwgMjMxLCA0OSwgCisgICAgMjQxLCAxNzUsIDEsIDIyOSwgMTA4LCAyMzEsIDQ5LCAyNDEsIDE3NSwgMSwgMjI5LCAxMDcsIDIzMSwgNDksIDI0MSwgMTc1LCAKKyAgICAxLCAyMDUsIDIzMSwgNDksIDI0MSwgMTc1LCAxLCAyMjMsIDE4OCwgMjMxLCA0OSwgMjQxLCAxNzUsIDEsIDIzMywgMTM2LCAKKyAgICAyMzEsIDQ5LCAyNDEsIDE3NSwgMSwgMjM0LCAxMzMsIDIzMSwgNDksIDI0MSwgMTc1LCAxLCAyNDEsIDE5MCwgMjMxLCA0OSwgCisgICAgMjQxLCAxNzUsIDEsIDIwNiwgMjMxLCA0OSwgMjQxLCAxNzUsIDEsIDIyMiwgMzQsIDIzMSwgNDksIDI0MSwgMTc1LCAxLCAKKyAgICAyMjEsIDE4MiwgMjMxLCA0OSwgMjQxLCAxNzUsIDEsIDE3NiwgMjMxLCA0OSwgMjQxLCAxNzUsIDEsIDIyNCwgODksIDIzMSwgCisgICAgNDksIDI0MSwgMTc1LCAxLCAyMTcsIDEwNiwgMjMxLCA0OSwgMjQxLCAxNzUsIDEsIDIxNywgMTA1LCAyMzEsIDQ5LCAyNDEsIAorICAgIDE3NSwgMSwgMjE3LCAyMywgMjMxLCA0OSwgMjQxLCAxNzUsIDEsIDIxNywgMjIsIDIzMSwgNDksIDI0MSwgMTc1LCAxLCAKKyAgICAxMTEsIDIzMSwgNDksIDI0MSwgMTc1LCAxLCAyNDgsIDIyMiwgMjMxLCA0OSwgMjQxLCAxNzUsIDE2LCAyMTMsIDE3MCwgCisgICAgMjMxLCA0OSwgMjQxLCAxNzUsIDE2LCAyMTMsIDE2OSwgMjMxLCA0OSwgMjQ5LCA5NSwgMSwgNjEsIDIzMSwgNDksIDI0OSwgCisgICAgOTUsIDEsIDc1LCAyMzEsIDQ5LCAyNDksIDk1LCAxLCA3MywgMjMxLCA0OSwgMjQ5LCA5NSwgMSwgNzYsIDIzMSwgNDksIAorICAgIDI0OSwgOTUsIDEsIDE5MSwgMjMxLCA0OSwgMjQ5LCA5NSwgMSwgMjEyLCA2NSwgMjMxLCA0OSwgMjQ5LCA5NSwgMSwgMjUyLCAKKyAgICAxOTIsIDIzMSwgNDksIDI0OSwgOTUsIDEsIDE5MCwgMjMxLCA0OSwgMjQ5LCA5NSwgMSwgMTg1LCAyMzEsIDQ5LCAyNDksIAorICAgIDk1LCAxLCAxOTcsIDIzMSwgNDksIDI0OSwgOTUsIDEsIDIyOSwgMTA4LCAyMzEsIDQ5LCAyNDksIDk1LCAxLCAyMDUsIDIzMSwgCisgICAgNDksIDI0OSwgOTUsIDEsIDIzMywgMTM2LCAyMzEsIDQ5LCAyNDksIDk1LCAxLCAyMzQsIDEzMywgMjMxLCA0OSwgMjQ5LCAKKyAgICA5NSwgMSwgMjQxLCAxOTAsIDIzMSwgNDksIDI0OSwgOTUsIDEsIDIwNiwgMjMxLCA0OSwgMjQ5LCA5NSwgMSwgMjU0LCAyNCwgCisgICAgMjA2LCAyMzEsIDQ5LCAyNDksIDk1LCAxLCAyMjEsIDE4MiwgMjMxLCA0OSwgMjQ5LCA5NSwgMSwgMTc2LCAyMzEsIDQ5LCAKKyAgICAyNDksIDk1LCAxLCAyMjQsIDg5LCAyMzEsIDQ5LCAyNDksIDk1LCAxLCAyMTcsIDEwNiwgMjMxLCA0OSwgMjQ5LCA5NSwgMSwgCisgICAgMjE3LCAyMywgMjMxLCA0OSwgMjQ5LCA5NSwgMSwgMTExLCAyMzEsIDQ5LCAyNDksIDk1LCAxLCAyNDgsIDIyMiwgMjMxLCAKKyAgICA0OSwgMjQ5LCA5NSwgMjMyLCAxNDYsIDIyMiwgMjE4LCAyMzEsIDQ5LCAyNDksIDk1LCAyMzIsIDE0NiwgMjM2LCA3LCAyMzQsIAorICAgIDEyMSwgMSwgNjEsIDIzNCwgMTIxLCAyNSwgNSwgNzMsIDIzNCwgMTIxLCAyNSwgNSwgNzAsIDIzNCwgMTIxLCAyNSwgNSwgCisgICAgMTQ5LCAxNTMsIDIzNCwgMTIxLCAyNSwgNSwgNzUsIDIzNCwgMTIxLCAyNSwgNSwgNzYsIDIzNCwgMTIxLCAyNSwgMjMzLCAKKyAgICAyNCwgNzgsIDIzNCwgMTIxLCA1LCA1MiwgMjIyLCAyMzUsIDUxLCAyMzQsIDEyMSwgNSwgMjU0LCA3NiwgMjM0LCAxMjEsIDUsIAorICAgIDIxMywgMTQ3LCAyMzQsIDEyMSwgMSwgMTc2LCAyMzQsIDEyMSwgMSwgMjM0LCAxMzMsIDIzNCwgMTIxLCAxLCAyNDMsIDEzNiwgCisgICAgMjM0LCAxMjEsIDEsIDI0MiwgMjUwLCAyMzQsIDEyMSwgMSwgMjUxLCAzNCwgMjM0LCAxMjEsIDEsIDI1MCwgMTU4LCAyMzQsIAorICAgIDEyMSwgMSwgMjM1LCAxNDIsIDIzNCwgMTIxLCAxLCAyMjcsIDE2NiwgMjM0LCAxMjEsIDEsIDIxNSwgMTU3LCAyMzQsIDEyMSwgCisgICAgMSwgMjE1LCAxNDUsIDIzNCwgMTIxLCAxLCAyNDgsIDEzNiwgMjM0LCAxMjEsIDEsIDI0OCwgMTIwLCAyMzQsIDEyMSwgMSwgCisgICAgMjI4LCAxMTEsIDIzNCwgMTIxLCAxLCAyMTcsIDEwNiwgMjM0LCAxMjEsIDEsIDIxNiwgMjA5LCAyMzQsIDEyMSwgMSwgMjQ4LCAKKyAgICAyMjIsIDIzNCwgMTIxLCAxLCAyNDgsIDI2LCAyMzQsIDEyMSwgMSwgMTk3LCAyMzQsIDEyMSwgMSwgMTkwLCAyMzQsIDEyMSwgCisgICAgMSwgMjI1LCAxNDgsIDIzNCwgMTIxLCAxLCAyNTIsIDE5MiwgMjM0LCAxMjEsIDEsIDI1MiwgMTksIDIzNCwgMTIxLCAxLCAKKyAgICAxODUsIDIzNCwgMTIxLCAxLCAxOTEsIDIzNCwgMTIxLCAxLCAyMDUsIDIzNCwgMTIxLCAxLCAyMzMsIDEzNiwgMjM0LCAxMjEsIAorICAgIDEsIDIxNCwgMjcsIDIzNCwgMTIxLCAxLCAyMjAsIDEwMywgMjM0LCAxMjEsIDEsIDIxOCwgMjI0LCAyMzQsIDEyMSwgMSwgCisgICAgMjA2LCAyMzQsIDEyMSwgMSwgMjEwLCAxMTYsIDIzNCwgMTIxLCAxLCAxNjIsIDIzNCwgMTIxLCAxLCAyMzQsIDQ3LCAyMzQsIAorICAgIDEyMSwgMSwgMjE1LCAxMjUsIDIzNCwgMTIxLCA1LCAyNTIsIDE0MiwgNDgsIDIzNCwgMTIxLCA1LCAyNTAsIDIyMiwgMjM0LCAKKyAgICAxMjEsIDUsIDU5LCA1MSwgMjM0LCAxMjEsIDIxMywgMTUyLCAyMzQsIDEyMSwgMjEsIDExMCwgMjM0LCAxMjEsIDIxLCAxMDUsIAorICAgIDIzNCwgMTIxLCAyMSwgMTU4LCAyMzQsIDEyMSwgMjEsIDE2MSwgMjM0LCAxMjEsIDU0LCAyMTYsIDI0OCwgMjM0LCAxMjEsIAorICAgIDU0LCAyMTUsIDczLCAyMzQsIDEyMSwgNTQsIDEyMywgMjQwLCAyMTEsIDIzNCwgMTIxLCA1NCwgMTIzLCAyMTYsIDE0OCwgCisgICAgMjM0LCAxMjEsIDIyNCwgMTQyLCAyNDcsIDEyMSwgMjM0LCAxMjEsIDIyNCwgMTQyLCA0LCAyNTAsIDM2LCAyMzQsIDEyMSwgCisgICAgMjI0LCAxNDIsIDI1MCwgMzYsIDIzNCwgMTIxLCAyMjQsIDE0MiwgMjQ5LCAxMzgsIDEzMCwgMjM0LCAxMjEsIDIyNCwgMTQyLCAKKyAgICAyMzEsIDE4MSwgMjM0LCAxMjEsIDIyNCwgMTQyLCAyMzIsIDExNiwgMjM0LCAxMjEsIDIyNCwgMTQyLCAyNDgsIDE3OSwgCisgICAgMjM0LCAxMjEsIDIyNCwgMTQyLCA1MiwgMjQ4LCAxNzksIDIzNCwgMTIxLCAyMjQsIDE0MiwgMjMyLCAyMDgsIDU1LCAyMTksIAorICAgIDI5LCAyNTQsIDM5LCAxLCAyNDEsIDIzOSwgNTUsIDIxOSwgMjksIDI1NCwgMzksIDEsIDIzMywgOTQsIDU1LCAyMTksIDI5LCAKKyAgICAyNTQsIDM5LCAxLCAyNDEsIDE5NiwgNTUsIDIxOSwgMjksIDI1NCwgMzksIDEsIDIzMSwgNjYsIDU1LCAyMTksIDI5LCAyNTQsIAorICAgIDM5LCAxLCAyMjQsIDM1LCA1NSwgMjE5LCAyOSwgMjU0LCAzOSwgMSwgMjEyLCAzMCwgNTUsIDIxOSwgMjksIDI1NCwgMzksIAorICAgIDEsIDIyMCwgMjEsIDU1LCAyMTksIDI5LCAyNTQsIDM5LCAxLCAyMjMsIDY4LCA1NSwgMjE5LCAyOSwgMjU0LCAzOSwgMSwgCisgICAgMjUyLCAyNiwgNTUsIDIxOSwgMjksIDI1NCwgMzksIDEsIDIxNywgMzcsIDU1LCAyMTksIDI5LCAyNTQsIDM5LCAxLCAyMjEsIAorICAgIDIyNywgNTUsIDIxOSwgMjksIDI1NCwgMzksIDEsIDIzNCwgMjI2LCA1NSwgMjE5LCAyOSwgMjU0LCAzOSwgMSwgMjI3LCAKKyAgICAxOTUsIDU1LCAyMTksIDI5LCAyNTQsIDM5LCAxLCAyMzQsIDExNywgNTUsIDIxOSwgMjksIDI1NCwgMzksIDEsIDIyMiwgMjUsIAorICAgIDU1LCAyMTksIDI5LCAyNTQsIDM5LCAxLCAyMjEsIDI1MCwgNTUsIDIxOSwgMjksIDI1NCwgMzksIDEsIDI0NCwgMTU1LCA1NSwgCisgICAgMjE5LCAyOSwgMjU0LCAzOSwgMSwgMjU0LCAxNzEsIDU1LCAyMTksIDI5LCAyNTQsIDM5LCAxLCAyNTMsIDE2MiwgNTUsIAorICAgIDIxOSwgMjksIDI1NCwgMzksIDEsIDI0OCwgMjMsIDU1LCAyMTksIDI5LCAyNTQsIDM5LCAxLCAyNDIsIDIwMiwgNTUsIDIxOSwgCisgICAgMjksIDI1NCwgMzksIDEsIDI0OCwgMTg5LCA1NSwgMjE5LCAyOSwgMjU0LCAzOSwgMSwgMjQyLCAyMzksIDU1LCAyMTksIDI5LCAKKyAgICAyNTQsIDM5LCAxLCAyMTYsIDIyNywgNTUsIDIxOSwgMjksIDI1NCwgMzksIDEsIDIxMCwgOTYsIDU1LCAyMTksIDI5LCAyNTQsIAorICAgIDM5LCAxLCAyNDgsIDIwLCA1NSwgMjE5LCAyOSwgMjU0LCAzOSwgMSwgMjEwLCAyMzIsIDU1LCAyMTksIDI5LCAyNTQsIDM5LCAKKyAgICAxLCAyMTYsIDE5OCwgNTUsIDIxOSwgMjksIDI1NCwgMzksIDEsIDIxNiwgMTc5LCA1NSwgMjE5LCAyOSwgMjU0LCAzOSwgNTQsIAorICAgIDExMCwgNTUsIDIxOSwgMjksIDI1NCwgMzksIDU0LCAyNDQsIDExNSwgNTUsIDIxOSwgMjksIDI1NCwgMzksIDEzMiwgMjM1LCAKKyAgICAyMzksIDI1MywgMTczLCAxLCA2MSwgMjUzLCAxNzMsIDEsIDI1NSwgNzQsIDI1MywgMTczLCAxLCAyNTQsIDc0LCAyNTMsIAorICAgIDE3MywgMSwgMjU1LCAzMywgMjUzLCAxNzMsIDEsIDI1NCwgMTI0LCAyNTMsIDE3MywgMSwgMjU1LCAzNCwgMjUzLCAxNzMsIAorICAgIDEsIDI1NCwgMjQ0LCAyNTMsIDE3MywgMSwgMjU0LCAyNDAsIDI1MywgMTczLCAxLCA3NSwgMjUzLCAxNzMsIDEsIDI0NSwgCisgICAgMjEwLCAyNTMsIDE3MywgMSwgNzYsIDI1MywgMTczLCAxLCAyMjYsIDE4NCwgMjUzLCAxNzMsIDEsIDczLCAyNTMsIDE3MywgCisgICAgMSwgMjM2LCAzNCwgMjUzLCAxNzMsIDEsIDcwLCAyNTMsIDE3MywgMSwgMjE0LCAxMTgsIDI1MywgMTczLCAxLCAyMzQsIAorICAgIDE4MywgMjUzLCAxNzMsIDEsIDIxMSwgMTYyLCAyNTMsIDE3MywgMSwgMjExLCAxMjgsIDI1MywgMTczLCAxLCAyMTEsIDEzNywgCisgICAgMjUzLCAxNzMsIDEsIDI0MywgNjMsIDI1MywgMTczLCAxLCAyNDMsIDI1LCAyNTMsIDE3MywgMSwgMjQyLCAyMzcsIDI1MywgCisgICAgMTczLCAxLCAyNTAsIDE5MSwgMjUzLCAxNzMsIDEsIDIzNSwgMTI3LCAyNTMsIDE3MywgMSwgMjE3LCAyMywgMjUzLCAxNzMsIAorICAgIDEsIDIxNiwgMTk2LCAyNTMsIDE3MywgMSwgMjQ4LCA5MSwgMjUzLCAxNzMsIDEsIDI0OCwgMTgsIDI1MywgMTczLCAxLCAKKyAgICAyMTUsIDE1MiwgMjUzLCAxNzMsIDEsIDIyNSwgMjIyLCAyNTMsIDE3MywgMSwgMjQ0LCAxNTUsIDI1MywgMTczLCAxLCAyNTIsIAorICAgIDc2LCAyNTMsIDE3MywgMSwgMjUyLCAxNSwgMjUzLCAxNzMsIDEsIDIyOSwgNjUsIDI1MywgMTczLCAxLCAyMjgsIDI0MCwgCisgICAgMjUzLCAxNzMsIDEsIDIyOCwgMjQxLCAyNTMsIDE3MywgMSwgMjI5LCAxMDgsIDI1MywgMTczLCAxLCAyMjcsIDE1NywgMjUzLCAKKyAgICAxNzMsIDEsIDIyOCwgMTA2LCAyNTMsIDE3MywgMSwgMjMxLCA5MiwgMjUzLCAxNzMsIDEsIDI0MSwgMTE3LCAyNTMsIDE3MywgCisgICAgMSwgMjEwLCAxNjYsIDI1MywgMTczLCAxLCAyMTEsIDQ3LCAyNTMsIDE3MywgMSwgMjEzLCAyNTUsIDI1MywgMTczLCAxLCAKKyAgICAyMjMsIDEyOSwgMjUzLCAxNzMsIDEsIDIzMywgNTksIDI1MywgMTczLCAxLCAyMjEsIDE4MiwgMjUzLCAxNzMsIDEsIDIxMCwgCisgICAgOTQsIDI1MywgMTczLCAxLCAyMjAsIDY0LCAyNTMsIDE3MywgMSwgMjEwLCA3NCwgMjUzLCAxNzMsIDEsIDIxOSwgMTk5LCAKKyAgICAyNTMsIDE3MywgMSwgMjE4LCAxOTQsIDI1MywgMTczLCAxLCAyNDEsIDIzOSwgMjUzLCAxNzMsIDI1NSwgMjIsIDc4LCAyMTYsIAorICAgIDgwLCAxMTMsIDE3MCwgMTE3LCAxMjMsIDU5LCAyMjQsIDE0MSwgNCwgMTEzLCAxNzAsIDExNywgMTIzLCA1OSwgMjI0LCAKKyAgICAxNDEsIDIzMywgODYsIDExMywgMTcwLCAxMTcsIDEyMywgNTksIDIyNCwgMTQxLCAyMzMsIDg2LCAxMjMsIDU5LCAxMTcsIAorICAgIDExMywgMTcwLCAyMjQsIDE0MSwgMjMzLCA4NiwgMTEzLCAyMjIsIDIzMywgMTE3LCAxMjMsIDIyMiwgMjM1LCAyMjQsIDE0MSwgCisgICAgMjMzLCA4NiwgMTIzLCAyMjIsIDIzNSwgMTE3LCAxMTMsIDIyMiwgMjMzLCAyMjQsIDE0MSwgMjM1LCAyMTksIDIyNSwgMjU1LCAKKyAgICAxLCAyNTQsIDE2OSwgMjM1LCAyMTksIDIyNSwgMjU1LCAxLCAyNTIsIDI2LCAyMzUsIDIxOSwgMjI1LCAyNTUsIDEsIDI0MiwgCisgICAgMjAyLCAyMzUsIDIxOSwgMjI1LCAyNTUsIDEsIDI0OCwgMTg5LCAyMzUsIDIxOSwgMjI1LCAyNTUsIDEsIDI0MSwgMjM5LCAKKyAgICAyMzUsIDIxOSwgMjI1LCAyNTUsIDEsIDIxMiwgMzAsIDIzNSwgMjE5LCAyMjUsIDI1NSwgMSwgMjEwLCA5NywgMjM1LCAyMTksIAorICAgIDIyNSwgMjU1LCAxLCAyNDEsIDE5NiwgMjM1LCAyMTksIDIyNSwgMjU1LCAxLCAyMTYsIDIyNywgMjM1LCAyMTksIDIyNSwgCisgICAgMjU1LCAxLCAyMTAsIDIzMiwgMjM1LCAyMTksIDIyNSwgMjU1LCAxLCAyMzQsIDIyNiwgMjM1LCAyMTksIDIyNSwgMjU1LCAxLCAKKyAgICAyMzMsIDk0LCAyMzUsIDIxOSwgMjI1LCAyNTUsIDEsIDIzMSwgNjYsIDIzNSwgMjE5LCAyMjUsIDI1NSwgMSwgMjI3LCAxOTUsIAorICAgIDIzNSwgMjE5LCAyMjUsIDI1NSwgMSwgMjIxLCAyNTAsIDIzNSwgMjE5LCAyMjUsIDI1NSwgMSwgMjUzLCAxNjMsIDIzNSwgCisgICAgMjE5LCAyMjUsIDI1NSwgMSwgMjI1LCAyMjIsIDIzNSwgMjE5LCAyMjUsIDI1NSwgMSwgMjIyLCAyNSwgMjM1LCAyMTksIAorICAgIDIyNSwgMjU1LCAxLCAyMjQsIDM1LCAyMzUsIDIxOSwgMjI1LCAyNTUsIDEsIDIyMywgNjgsIDIzNSwgMjE5LCAyMjUsIDI1NSwgCisgICAgMSwgMjIwLCAyMSwgMjM1LCAyMTksIDIyNSwgMjU1LCAxLCAyMTcsIDM3LCAyMzUsIDIxOSwgMjI1LCAyNTUsIDU0LCAxMTAsIAorICAgIDIzNSwgMjE5LCAyMjUsIDI1NSwgNTQsIDEwNSwgMjM1LCAyMTksIDIyNSwgMjU1LCA1NCwgMTU4LCAyMzUsIDIxOSwgMjI1LCAKKyAgICAyNTUsIDU0LCAxNjEsIDIzNSwgMjE5LCAyMjUsIDI1NSwgNTQsIDIxNiwgMjQ4LCAyMzUsIDIxOSwgMjI1LCAyNTUsIDU0LCAKKyAgICAyMTUsIDczLCAyMzUsIDIxOSwgMjI1LCAyNTUsIDU0LCAxMjMsIDI0MCwgMjExLCAyMzUsIDIxOSwgMjI1LCAyNTUsIDU0LCAKKyAgICAxMjMsIDIxNiwgMTQ4LCAyMzUsIDIxOSwgMjI2LCA3MywgMSwgMjU0LCAxNjksIDIzNSwgMjE5LCAyMjYsIDczLCAxLCAyNTIsIAorICAgIDI2LCAyMzUsIDIxOSwgMjI2LCA3MywgMSwgMjQyLCAyMDIsIDIzNSwgMjE5LCAyMjYsIDczLCAxLCAyNDgsIDE4OSwgMjM1LCAKKyAgICAyMTksIDIyNiwgNzMsIDEsIDI0MSwgMjM5LCAyMzUsIDIxOSwgMjI2LCA3MywgMSwgMjEyLCAyOSwgMjM1LCAyMTksIDIyNiwgCisgICAgNzMsIDEsIDIxMCwgOTcsIDIzNSwgMjE5LCAyMjYsIDczLCAxLCAyNDEsIDE5NiwgMjM1LCAyMTksIDIyNiwgNzMsIDEsIAorICAgIDIxNiwgMjI3LCAyMzUsIDIxOSwgMjI2LCA3MywgMSwgMjEwLCAyMzIsIDIzNSwgMjE5LCAyMjYsIDczLCAxLCAyMzQsIDIyNiwgCisgICAgMjM1LCAyMTksIDIyNiwgNzMsIDEsIDIzMywgOTQsIDIzNSwgMjE5LCAyMjYsIDczLCAxLCAyMzEsIDY1LCAyMzUsIDIxOSwgCisgICAgMjI2LCA3MywgMSwgMjI3LCAxOTUsIDIzNSwgMjE5LCAyMjYsIDczLCAxLCAyMjEsIDI1MCwgMjM1LCAyMTksIDIyNiwgNzMsIAorICAgIDEsIDIyNSwgMjIyLCAyMzUsIDIxOSwgMjI2LCA3MywgMSwgMjIyLCAyNSwgMjM1LCAyMTksIDIyNiwgNzMsIDEsIDIyMCwgCisgICAgMjEsIDIzNSwgMjE5LCAyMjYsIDczLCAxLCAyMTcsIDM3LCAyMzUsIDIxOSwgMjI2LCA3MywgNTQsIDExMCwgMjM1LCAyMTksIAorICAgIDIyNiwgNzMsIDU0LCAxMDUsIDIzNSwgMjE5LCAyMjYsIDczLCA1NCwgMTU4LCAyMzUsIDIxOSwgMjI2LCA3MywgNTQsIDE2MSwgCisgICAgMjM1LCAyMTksIDIyNiwgNzMsIDU0LCAyMTYsIDI0OCwgMjM1LCAyMTksIDIyNiwgNzMsIDU0LCAyMTUsIDczLCAyMzUsIAorICAgIDIxOSwgMjI2LCA3MywgNTQsIDEyMywgMjQwLCAyMTEsIDIzNSwgMjE5LCAyMjYsIDczLCA1NCwgMTIzLCAyMTYsIDE0OCwgCisgICAgNTUsIDIwMSwgMSwgMjI2LCAxNTAsIDYxLCA1NSwgMjAxLCAxLCAyMTEsIDM3LCA2MSwgNTUsIDIwMSwgMSwgMjExLCAzNywgCisgICAgMjU0LCAyNDQsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCA3MywgNTUsIDIwMSwgMSwgMjExLCAzNywgNzMsIDU1LCAyMDEsIDEsIAorICAgIDIxMSwgMzcsIDc1LCA1NSwgMjAxLCAxLCAyMjYsIDE1MCwgNzYsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAyMjYsIDIzNSwgCisgICAgNTUsIDIwMSwgMSwgMjExLCAzNywgMjI2LCAyMzUsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAyNTUsIDI2LCA1NSwgMjAxLCAxLCAKKyAgICAyMTEsIDM3LCAyNTUsIDI2LCA1NSwgMjAxLCAxLCAyMjYsIDE1MCwgMjU0LCAyNDMsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIAorICAgIDI1NCwgMjQzLCA1NSwgMjAxLCAxLCAyMjYsIDE1MCwgMjU0LCAyMTcsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1NCwgMjE3LCAKKyAgICA1NSwgMjAxLCAxLCAyMjYsIDE1MCwgMjU0LCAyMzgsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1NCwgMjM4LCA1NSwgMjAxLCAKKyAgICAxLCAyMjYsIDE1MCwgMjU1LCAwLCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTUsIDAsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAKKyAgICAyNTQsIDI0MiwgNTUsIDIwMSwgMSwgMjI2LCAxNTAsIDI0NSwgMTMsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI0NSwgMTMsIAorICAgIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAyNTMsIDE2OCwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjUzLCAxNjgsIDU1LCAyMDEsIAorICAgIDEsIDIyNiwgMTUwLCAyNTQsIDIyNSwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjU0LCAyMjUsIDU1LCAyMDEsIDEsIDIyNiwgCisgICAgMTUwLCAyNTQsIDIzNiwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjU0LCAyMzYsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAyMjYsIAorICAgIDIzNCwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjI2LCAyMzQsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAyNTQsIDE3OSwgNTUsIAorICAgIDIwMSwgMSwgMjExLCAzNywgMjU0LCAxNzksIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAyNTQsIDIzNSwgNTUsIDIwMSwgMSwgCisgICAgMjI2LCAxNTAsIDI0NSwgMTYyLCA1NSwgMjAxLCAxLCAyMjYsIDE1MCwgMjQ1LCAxNjAsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAKKyAgICAyNTQsIDEyNCwgNTUsIDIwMSwgMSwgMjI2LCAxNTAsIDI1NCwgMjMzLCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTQsIDIzMywgCisgICAgNTUsIDIwMSwgMSwgMjI2LCAxNTAsIDI0NSwgMTMyLCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNDUsIDEzMiwgNTUsIDIwMSwgCisgICAgMSwgMjI2LCAxNTAsIDI0NSwgMTQ4LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNDUsIDE0OCwgNTUsIDIwMSwgMSwgMjI2LCAKKyAgICAxNTAsIDI0NSwgMTE5LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNDUsIDExOSwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjU0LCAKKyAgICAxMTYsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAyNDUsIDEzOSwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjU0LCAyMzIsIDU1LCAKKyAgICAyMDEsIDEsIDIyNiwgMTUwLCAyNDUsIDEwOSwgNTUsIDIwMSwgMSwgMjI2LCAxNTAsIDIyNiwgMTc2LCA1NSwgMjAxLCAxLCAKKyAgICAyMjYsIDE1MCwgMjQwLCAxMTQsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAyNDUsIDIxNiwgNTUsIDIwMSwgMSwgMjExLCAzNywgCisgICAgMjQ1LCAyMTYsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAyNTQsIDQ2LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTQsIDQ2LCAKKyAgICA1NSwgMjAxLCAxLCAyMjYsIDE1MCwgMjM1LCAxODIsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDIzNSwgMTgyLCA1NSwgMjAxLCAKKyAgICAxLCAyMjYsIDE1MCwgMjI2LCAxNjAsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDIyNiwgMTYwLCA1NSwgMjAxLCAxLCAyMjYsIAorICAgIDE1MCwgMjU0LCA0MiwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjU0LCA0MiwgNTUsIDIwMSwgMSwgMjI2LCAxNTAsIDI1NCwgCisgICAgMjMxLCA1NSwgMjAxLCAxLCAyMjYsIDE1MCwgMjUzLCAyMzgsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAyNTQsIDIyOSwgNTUsIAorICAgIDIwMSwgMSwgMjI2LCAxNTAsIDI1MywgMjMyLCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTMsIDIzMiwgNTUsIDIwMSwgMSwgCisgICAgMjI2LCAxNTAsIDI0NSwgNzYsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI0NSwgNzYsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAKKyAgICAyNTMsIDIwNywgNTUsIDIwMSwgMSwgMjExLCAzNywgMjUzLCAyMDcsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAyNTQsIDIyNiwgCisgICAgNTUsIDIwMSwgMSwgMjExLCAzNywgMjU0LCAyMjYsIDU1LCAyMDEsIDEsIDIyNiwgMTUwLCAyMjYsIDE0MSwgNTUsIDIwMSwgCisgICAgMSwgMjI2LCAxNTAsIDI1MiwgMTI2LCAyMjIsIDEyOCwgMjEsIDExMCwgMjIyLCAxMjgsIDIxLCAxMDUsIDIyMiwgMTI4LCAKKyAgICAyMSwgMTU4LCAyMjIsIDEyOCwgMjEsIDE2MSwgMjIyLCAxMjgsIDIxLCAxODksIDIyMiwgMTI4LCAyMSwgMTk0LCAyMjIsIAorICAgIDEyOCwgMjEsIDE5OCwgMjIyLCAxMjgsIDIxLCAxOTUsIDIyMiwgMTI4LCAyMSwgMjAwLCAyMjIsIDEyOCwgNTQsIDIxNiwgCisgICAgMjQ4LCAyMjIsIDEyOCwgNTQsIDIxNSwgNzMsIDIyMiwgMTI4LCA1NCwgMjE2LCAxNjMsIDIyMiwgMTI4LCA1NCwgMjQ0LCAKKyAgICAxNiwgMjIyLCAxMjgsIDU0LCAyNDQsIDExNSwgMjIyLCAxMjgsIDU0LCAyMTksIDExMiwgMjIyLCAxMjgsIDU0LCAyMjAsIAorICAgIDExNywgMjIyLCAxMjgsIDU0LCAyNDUsIDE4NSwgMjIyLCAxMjgsIDU0LCAyMjgsIDE5NiwgMjIyLCAxMjgsIDU0LCAxMjMsIAorICAgIDI0MCwgMjExLCAyMjIsIDEyOCwgNTQsIDExMywgMjQwLCAyMTEsIDIyMiwgMTI4LCA1NCwgMTM0LCAyNDAsIDIxMSwgMjIyLCAKKyAgICAxMjgsIDU0LCAyNDQsIDEyLCAyNDAsIDIxMSwgMjIyLCAxMjgsIDU0LCAyNDQsIDgyLCAyNDAsIDIxMSwgMjIyLCAxMjgsIAorICAgIDU0LCAyMTksIDEyNiwgMjQwLCAyMTEsIDIyMiwgMTI4LCA1NCwgMjIwLCAxMjMsIDI0MCwgMjExLCAyMjIsIDEyOCwgNTQsIAorICAgIDI0NSwgMTk0LCAyNDAsIDIxMSwgMjIyLCAxMjgsIDU0LCAyMjgsIDIwMSwgMjQwLCAyMTEsIDIyMiwgMTI4LCAyNDQsIDMsIAorICAgIDEyMywgMjQyLCAyOCwgMjIyLCAxMjgsIDI0NCwgMywgMTIzLCAyMjQsIDIyLCAyMjIsIDEyOCwgMjQ0LCAzLCAxMjMsIDIxNiwgCisgICAgMTY5LCAyMjIsIDEyOCwgMjQ0LCAzLCAxMTMsIDIxNiwgMTY3LCAxMTgsIDUsIDI1MSwgMCwgMTE4LCA1LCAyNTQsIDc2LCAKKyAgICAxMTgsIDUsIDIxMywgMTQ3LCAxMTgsIDUsIDIzNSwgMTAzLCAxMTgsIDUsIDIxNCwgMTYxLCAxMTgsIDEsIDYxLCAxMTgsIDEsIAorICAgIDI1NSwgNzQsIDExOCwgMSwgNzMsIDExOCwgMSwgMjM2LCAzNCwgMTE4LCAxLCA3MCwgMTE4LCAxLCAyMTQsIDExOCwgMTE4LCAKKyAgICAxLCAxNDksIDE1MywgMTE4LCAxLCAxNDksIDIyMiwgMTgxLCAxMTgsIDEsIDE0OSwgMTU2LCAxMTgsIDEsIDE0OSwgMjMyLCAKKyAgICAxODYsIDExOCwgMSwgNzUsIDExOCwgMSwgMjU0LCAyMDIsIDExOCwgMSwgNzYsIDExOCwgMSwgMjUzLCAxOTMsIDExOCwgMSwgCisgICAgMTc2LCAxMTgsIDEsIDIzNCwgMTMzLCAxMTgsIDEsIDI0MywgMTM2LCAxMTgsIDEsIDI0MiwgMjUwLCAxMTgsIDEsIDIyOSwgCisgICAgNzgsIDExOCwgMSwgMjUxLCAzNCwgMTE4LCAxLCAyNTAsIDE1OCwgMTE4LCAxLCAyMzUsIDE0MiwgMTE4LCAxLCAyMzUsIAorICAgIDExNSwgMTE4LCAxLCAyMjcsIDE2NiwgMTE4LCAxLCAyMTUsIDE1NywgMTE4LCAxLCAyMTUsIDE0NSwgMTE4LCAxLCAyNDgsIAorICAgIDEzNiwgMTE4LCAxLCAyNDgsIDEyMCwgMTE4LCAxLCAyMjgsIDExMSwgMTE4LCAxLCAyMTcsIDEwNiwgMTE4LCAxLCAyMTYsIAorICAgIDIwOSwgMTE4LCAxLCAyNDgsIDIyMiwgMTE4LCAxLCAyNDgsIDI2LCAxMTgsIDEsIDE5NywgMTE4LCAxLCAxOTAsIDExOCwgMSwgCisgICAgMjI1LCAxNDgsIDExOCwgMSwgMjUyLCAxOTIsIDExOCwgMSwgMjUyLCAxOSwgMTE4LCAxLCAxODUsIDExOCwgMSwgMTkxLCAKKyAgICAxMTgsIDEsIDIwNSwgMTE4LCAxLCAyMzMsIDEzNiwgMTE4LCAxLCAyMTQsIDI3LCAxMTgsIDEsIDIyMCwgMTAzLCAxMTgsIDEsIAorICAgIDIxOCwgMjI0LCAxMTgsIDEsIDIwNiwgMTE4LCAxLCAxNjIsIDExOCwgMSwgMjMyLCAxODUsIDExOCwgMSwgNTUsIDM2LCAKKyAgICAyMzIsIDE3NiwgMTE4LCAxLCA1NSwgMzYsIDIyMiwgMTgwLCAxMTgsIDEsIDU1LCAzNiwgMjI4LCA5MywgMTE4LCAyNSwgNSwgCisgICAgMjU1LCA3NCwgMTE4LCAyNSwgNSwgMjUyLCAxNiwgMjU1LCA3NCwgMTE4LCAyNSwgNSwgNzMsIDExOCwgMjUsIDUsIDIzNiwgCisgICAgMzQsIDExOCwgMjUsIDUsIDcwLCAxMTgsIDI1LCA1LCAyMTQsIDExOCwgMTE4LCAyNSwgNSwgMTQ5LCAxNTMsIDExOCwgMjUsIAorICAgIDUsIDE0OSwgMjIyLCAxODEsIDExOCwgMjUsIDUsIDE0OSwgMTU2LCAxMTgsIDI1LCA1LCAxNDksIDIzMiwgMTg2LCAxMTgsIAorICAgIDI1LCA1LCA3NSwgMTE4LCAyNSwgNSwgMjU0LCAyMDIsIDExOCwgMjUsIDUsIDc2LCAxMTgsIDI1LCA1LCAyNTMsIDE5MywgCisgICAgMTE4LCAyMTMsIDE1MiwgMTE4LCAyNDgsIDE3OSwgMTE4LCA1MiwgMjQ4LCAxNzksIDExOCwgMjI0LCAxNDIsIDI0NywgMTIxLCAKKyAgICAxMTgsIDIyNCwgMTQyLCA1MiwgMjQ3LCAxMjEsIDExOCwgMjI0LCAxNDIsIDIzMiwgMjE0LCAxMTgsIDIyNCwgMTQyLCAyNDksIAorICAgIDEzOCwgMTMwLCAxMTgsIDIyNCwgMTQyLCAyMzIsIDExNiwgMTE4LCA1NCwgMTEwLCAxMTgsIDU0LCAxMDUsIDExOCwgNTQsIAogICAgIDE1OCwgMTE4LCA1NCwgMTYxLCAxMTgsIDU0LCAxODksIDExOCwgNTQsIDE5NCwgMTE4LCA1NCwgMTk4LCAxMTgsIDU0LCAKLSAgICAxOTUsIDExOCwgNTQsIDIwMCwgMTE4LCA1NCwgMjE2LCAyNDcsIDExOCwgNTQsIDIxNSwgNzMsIDExOCwgNTQsIDIxNiwgCi0gICAgMTYyLCAxMTgsIDU0LCAyNDQsIDE1LCAxMTgsIDU0LCAyNDQsIDExNCwgMTE4LCA1NCwgMjE5LCAxMTEsIDExOCwgNTQsIAotICAgIDIyMCwgMTE2LCAxMTgsIDU0LCAyNDUsIDE4NCwgMTE4LCA1NCwgMjI4LCAxOTUsIDExOCwgNTQsIDEyMywgMjQwLCAyMTAsIAotICAgIDExOCwgNTQsIDEyMywgMjE2LCAxNDcsIDExOCwgMjEsIDIxMCwgODYsIDExOCwgMjEsIDExMCwgMTE4LCAyMSwgMTA1LCAKKyAgICAxOTUsIDExOCwgNTQsIDIwMCwgMTE4LCA1NCwgMjE2LCAyNDgsIDExOCwgNTQsIDIxNSwgNzMsIDExOCwgNTQsIDIxNiwgCisgICAgMTYzLCAxMTgsIDU0LCAyNDQsIDE2LCAxMTgsIDU0LCAyNDQsIDExNSwgMTE4LCA1NCwgMjE5LCAxMTIsIDExOCwgNTQsIAorICAgIDIyMCwgMTE3LCAxMTgsIDU0LCAyNDUsIDE4NSwgMTE4LCA1NCwgMjI4LCAxOTYsIDExOCwgNTQsIDEyMywgMjQwLCAyMTEsIAorICAgIDExOCwgNTQsIDEyMywgMjE2LCAxNDgsIDExOCwgMjEsIDIxMCwgODYsIDExOCwgMjEsIDExMCwgMTE4LCAyMSwgMTA1LCAKICAgICAxMTgsIDIxLCAxNTgsIDExOCwgMjEsIDE2MSwgMTE4LCAyMSwgMTg5LCAxMTgsIDIxLCAxOTQsIDExOCwgMjEsIDE5OCwgCi0gICAgMTE4LCAyMSwgMTk1LCAxMTgsIDIxLCAyMDAsIDIzNCwgMjQ0LCA1LCAyNTAsIDI1NSwgMjM0LCAyNDQsIDUsIDI1NCwgNzUsIAotICAgIDIzNCwgMjQ0LCA1LCAyMTMsIDE0NywgMjM0LCAyNDQsIDEsIDYxLCAyMzQsIDI0NCwgMSwgMjU1LCA3MywgMjM0LCAyNDQsIAotICAgIDEsIDczLCAyMzQsIDI0NCwgMSwgMjM2LCAzMywgMjM0LCAyNDQsIDEsIDcwLCAyMzQsIDI0NCwgMSwgMjE0LCAxMTgsIDIzNCwgCi0gICAgMjQ0LCAxLCA3NSwgMjM0LCAyNDQsIDEsIDI1NCwgMjAxLCAyMzQsIDI0NCwgMSwgNzYsIDIzNCwgMjQ0LCAxLCAyNTMsIAotICAgIDE5MiwgMjM0LCAyNDQsIDEsIDE3NiwgMjM0LCAyNDQsIDEsIDIzNCwgMTMyLCAyMzQsIDI0NCwgMSwgMjQzLCAxMzUsIDIzNCwgCi0gICAgMjQ0LCAxLCAyNDIsIDI0OSwgMjM0LCAyNDQsIDEsIDIyOSwgNzcsIDIzNCwgMjQ0LCAxLCAyNTEsIDMzLCAyMzQsIDI0NCwgCi0gICAgMSwgMjUwLCAxNTcsIDIzNCwgMjQ0LCAxLCAyMzUsIDE0MSwgMjM0LCAyNDQsIDEsIDIzNSwgMTE0LCAyMzQsIDI0NCwgMSwgCi0gICAgMjI3LCAxNjUsIDIzNCwgMjQ0LCAxLCAyMTUsIDE1NiwgMjM0LCAyNDQsIDEsIDIxNSwgMTQ0LCAyMzQsIDI0NCwgMSwgMjQ4LCAKLSAgICAxMzUsIDIzNCwgMjQ0LCAxLCAyNDgsIDEyNCwgMjM0LCAyNDQsIDEsIDI0OCwgMTE5LCAyMzQsIDI0NCwgMSwgMjIzLCAzOSwgCi0gICAgMjM0LCAyNDQsIDEsIDIyOCwgMTEwLCAyMzQsIDI0NCwgMSwgMjE3LCAxMDUsIDIzNCwgMjQ0LCAxLCAyMTYsIDIwOCwgMjM0LCAKLSAgICAyNDQsIDEsIDI0OCwgMjIxLCAyMzQsIDI0NCwgMSwgMjQ4LCAyNSwgMjM0LCAyNDQsIDEsIDE5NywgMjM0LCAyNDQsIDEsIAotICAgIDE5MCwgMjM0LCAyNDQsIDEsIDIyNSwgMTQ3LCAyMzQsIDI0NCwgMSwgMjUyLCAxOTEsIDIzNCwgMjQ0LCAxLCAyNTIsIDE4LCAKLSAgICAyMzQsIDI0NCwgMSwgMTg0LCAyMzQsIDI0NCwgMSwgMTkxLCAyMzQsIDI0NCwgMSwgMjA1LCAyMzQsIDI0NCwgMSwgMjMzLCAKLSAgICAxMzUsIDIzNCwgMjQ0LCAxLCAyMTQsIDI3LCAyMzQsIDI0NCwgMSwgMjIwLCAxMDIsIDIzNCwgMjQ0LCAxLCAyMTgsIDIyMywgCi0gICAgMjM0LCAyNDQsIDEsIDIwNiwgMjM0LCAyNDQsIDEsIDE2MiwgMjM0LCAyNDQsIDI1LCA1LCAyNTUsIDczLCAyMzQsIDI0NCwgCi0gICAgMjUsIDUsIDczLCAyMzQsIDI0NCwgMjUsIDUsIDIzNiwgMzMsIDIzNCwgMjQ0LCAyNSwgNSwgNzAsIDIzNCwgMjQ0LCAyNSwgCi0gICAgNSwgMjE0LCAxMTgsIDIzNCwgMjQ0LCAyNSwgNSwgNzUsIDIzNCwgMjQ0LCAyNSwgNSwgMjU0LCAyMDEsIDIzNCwgMjQ0LCAKLSAgICAyNSwgNSwgNzYsIDIzNCwgMjQ0LCAyNSwgNSwgMjUzLCAxOTIsIDIzNCwgMjQ0LCA1LCAyMTMsIDE1MiwgMjM0LCAyNDQsIDUsIAotICAgIDIyNywgMjA1LCAyMzQsIDI0NCwgMjU1LCAyMSwgNTAsIDIzNCwgMjQ0LCAyNDUsIDEyMSwgNTAsIDIzNCwgMjQ0LCA1NCwgCi0gICAgNTAsIDIzNCwgMjQ0LCAyMjEsIDE3MywgNzgsIDIzNCwgMjQ0LCA1MiwgMjIxLCAxNzMsIDc4LCAyMzQsIDI0NCwgMjQ4LCAKLSAgICAxNzgsIDIzNCwgMjQ0LCA1MiwgMjQ4LCAxNzgsIDIxOSwgMzYsIDIxOSwgNDQsIDEsIDIyMiwgMTgsIDIxOSwgMzYsIDIxOSwgCi0gICAgNDQsIDEsIDIxNywgODAsIDIxOSwgMzYsIDIxOSwgNDQsIDEsIDI1MiwgMTY4LCAyMTksIDM2LCAyMTksIDQ0LCAxLCAyNTEsIAotICAgIDIzLCAyMTksIDM2LCAyMTksIDQ0LCAxLCAyNDgsIDIwMywgMjE5LCAzNiwgMjE5LCA0NCwgMSwgMjQzLCAxMjAsIDIxOSwgCi0gICAgMzYsIDIxOSwgNDQsIDEsIDIzMSwgMjEwLCAyMTksIDM2LCAyMTksIDQ0LCAxLCAyMjksIDc0LCAyMTksIDM2LCAyMTksIDQ0LCAKLSAgICAxLCAyMzMsIDExMiwgMjE5LCAzNiwgMjE5LCA0NCwgMSwgMjI5LCAyMTMsIDIxOSwgMzYsIDIxOSwgNDQsIDEsIDIxNCwgMjQsIAotICAgIDIxOSwgMzYsIDIxOSwgNDQsIDEsIDIyNiwgNzMsIDIxOSwgMzYsIDIxOSwgNDQsIDEsIDIxMSwgODQsIDIxOSwgMzYsIDIxOSwgCi0gICAgNDQsIDEsIDIyMywgMTY4LCAyMTksIDM2LCAyMTksIDQ0LCAxLCAyNDIsIDM3LCAyMTksIDM2LCAyMTksIDQ0LCAxLCAyMzQsIAotICAgIDI0OCwgMjE5LCAzNiwgMjE5LCA0NCwgMSwgMjM1LCAxMzYsIDIxOSwgMzYsIDIxOSwgNDQsIDEsIDIyNywgMTYyLCAyMTksIAotICAgIDM2LCAyMTksIDQ0LCAxLCAyNTQsIDIwOSwgMjE5LCAzNiwgMjE5LCA0NCwgMSwgMjQ1LCAyMDcsIDIxOSwgMzYsIDIxOSwgCi0gICAgNDQsIDEsIDIzNiwgMzQsIDIxOSwgMzYsIDIxOSwgNDQsIDEsIDIxNCwgMjA4LCAyMTksIDM2LCAyMTksIDQ0LCAxLCAyMjYsIAotICAgIDIyMiwgMjE5LCAzNiwgMjE5LCA0NCwgMSwgMjQ1LCAxOTcsIDIxOSwgMzYsIDIxOSwgNDQsIDEsIDIzMSwgMjIzLCAyMTksIAotICAgIDM2LCAyMTksIDQ0LCAyMSwgMjEwLCA4NiwgMjE5LCAzNiwgMjE5LCA0NCwgMjEsIDExMCwgMjE5LCAzNiwgMjE5LCA0NCwgCi0gICAgMjEsIDEwNSwgMjE5LCAzNiwgMjE5LCA0NCwgMjEsIDE1OCwgMjE5LCAzNiwgMjE5LCA0NCwgMjEsIDE2MSwgMjE5LCAzNiwgCi0gICAgMjE5LCA0NCwgMjEsIDE4OSwgMjE5LCAzNiwgMjE5LCA0NCwgMjEsIDE5NCwgMjE5LCAzNiwgMjE5LCA0NCwgMjEsIDE5OCwgCi0gICAgMjE5LCAzNiwgMjE5LCA0NCwgMjEsIDE5NSwgMjE5LCAzNiwgMjE5LCA0NCwgMjEsIDIwMCwgMjUwLCAxNTEsIDUsIDI1MCwgCi0gICAgMjU1LCAyNTAsIDE1MSwgNSwgMjU0LCA3NSwgMjUwLCAxNTEsIDUsIDIxMywgMTQ3LCAyNTAsIDE1MSwgMSwgMjU1LCA3MywgCi0gICAgMjUwLCAxNTEsIDEsIDczLCAyNTAsIDE1MSwgMSwgNzAsIDI1MCwgMTUxLCAxLCA3NSwgMjUwLCAxNTEsIDEsIDIzNSwgMTAsIAotICAgIDI1MCwgMTUxLCAxLCAyMzQsIDEzMSwgMjUwLCAxNTEsIDEsIDI0MywgMTMyLCAyNTAsIDE1MSwgMSwgMjQyLCAyNDgsIDI1MCwgCi0gICAgMTUxLCAxLCAyMjksIDc2LCAyNTAsIDE1MSwgMSwgMjUxLCAzMiwgMjUwLCAxNTEsIDEsIDI1MCwgMTU2LCAyNTAsIDE1MSwgCi0gICAgMSwgMjM1LCAxNDAsIDI1MCwgMTUxLCAxLCAyMzUsIDExMywgMjUwLCAxNTEsIDEsIDIyNywgMTY0LCAyNTAsIDE1MSwgMSwgCi0gICAgMjE1LCAxNTUsIDI1MCwgMTUxLCAxLCAyMTUsIDE0MywgMjUwLCAxNTEsIDEsIDI0OCwgMTM0LCAyNTAsIDE1MSwgMSwgMjQ4LCAKLSAgICAxMTgsIDI1MCwgMTUxLCAxLCAyMjgsIDEwOSwgMjUwLCAxNTEsIDEsIDIxNywgMTAxLCAyNTAsIDE1MSwgMSwgMjE2LCAyMDcsIAotICAgIDI1MCwgMTUxLCAxLCAyNDgsIDIyMCwgMjUwLCAxNTEsIDEsIDI0OCwgMjQsIDI1MCwgMTUxLCAxLCAyMjksIDIyNSwgMjUwLCAKLSAgICAxNTEsIDEsIDIyNiwgODksIDI1MCwgMTUxLCAxLCAyMjUsIDE0NiwgMjUwLCAxNTEsIDEsIDI1MiwgMTg5LCAyNTAsIDE1MSwgCi0gICAgMSwgMjUyLCAxNywgMjUwLCAxNTEsIDEsIDIzMSwgMjM3LCAyNTAsIDE1MSwgMSwgMjEwLCAxNjcsIDI1MCwgMTUxLCAxLCAKLSAgICAyMTEsIDEwMywgMjUwLCAxNTEsIDEsIDIyMywgMTg0LCAyNTAsIDE1MSwgMSwgMjMzLCAxMzQsIDI1MCwgMTUxLCAxLCAyMTIsIAotICAgIDY0LCAyNTAsIDE1MSwgMSwgMjIyLCAzMSwgMjUwLCAxNTEsIDEsIDI0MiwgNDYsIDI1MCwgMTUxLCAyNSwgNSwgNjEsIDI1MCwgCi0gICAgMTUxLCAyNSwgNSwgNzMsIDI1MCwgMTUxLCAyNSwgNSwgMjM2LCAzMywgMjUwLCAxNTEsIDI1LCA1LCA3MCwgMjUwLCAxNTEsIAotICAgIDI1LCA1LCAyMTQsIDExOCwgMjUwLCAxNTEsIDI1LCA1LCA3NSwgMjUwLCAxNTEsIDI1LCA1LCAyNTQsIDIwMSwgMjUwLCAKLSAgICAxNTEsIDI1LCA1LCA3NiwgMjUwLCAxNTEsIDI1LCA1LCAyNTMsIDE5MiwgMjUwLCAxNTEsIDI1LCA1LCAyMjYsIDIxOSwgCi0gICAgMjUwLCAxNTEsIDE0NCwgNzgsIDI1MCwgMTUxLCAyNTMsIDE5MywgNzgsIDI1MCwgMTUxLCAyMTMsIDE1MiwgMjUwLCAxNTEsIAotICAgIDIzMSwgMjM1LCAyNTAsIDE1MSwgMjEsIDIxMCwgODYsIDI1MCwgMTUxLCAyMSwgMTEwLCAyNTAsIDE1MSwgMjEsIDEwNSwgCi0gICAgMjUwLCAxNTEsIDIxLCAxNTgsIDI1MCwgMTUxLCAyMSwgMTYxLCAyNTAsIDE1MSwgMjEsIDE4OSwgMjUwLCAxNTEsIDIxLCAKLSAgICAxOTQsIDI1MCwgMTUxLCAyMSwgMTk4LCAyNTAsIDE1MSwgMjEsIDE5NSwgMjUwLCAxNTEsIDIxLCAyMDAsIDI1MCwgMTUxLCAKLSAgICAyMjEsIDE3MywgNzgsIDI1MCwgMTUxLCAyNDgsIDE3OCwgMjUwLCAxNTEsIDUyLCAyNDgsIDE3OCwgMjUwLCAxNTEsIDIyNCwgCi0gICAgMTMsIDc4LCAxNzQsIDUsIDI1MCwgMjU1LCAxNzQsIDUsIDI1NCwgNzUsIDE3NCwgNSwgMjEzLCAxNDcsIDE3NCwgMSwgNjEsIAotICAgIDE3NCwgMSwgMjU1LCA3MywgMTc0LCAxLCA3MywgMTc0LCAxLCAyMzYsIDMzLCAxNzQsIDEsIDcwLCAxNzQsIDEsIDIxNCwgCi0gICAgMTE4LCAxNzQsIDEsIDE0OSwgMTUzLCAxNzQsIDEsIDE0OSwgMjIyLCAxODAsIDE3NCwgMSwgMTQ5LCAxNTYsIDE3NCwgMSwgCi0gICAgMTQ5LCAyMzIsIDE4NSwgMTc0LCAxLCA3NSwgMTc0LCAxLCAyNTQsIDIwMSwgMTc0LCAxLCA3NiwgMTc0LCAxLCAyNTMsIAotICAgIDE5MiwgMTc0LCAxLCAxNzYsIDE3NCwgMSwgMjM0LCAxMzIsIDE3NCwgMSwgMjQzLCAxMzUsIDE3NCwgMSwgMjQyLCAyNDksIAotICAgIDE3NCwgMSwgMjI5LCA3NywgMTc0LCAxLCAyNTEsIDMzLCAxNzQsIDEsIDI1MCwgMTU3LCAxNzQsIDEsIDIzNSwgMTQxLCAKLSAgICAxNzQsIDEsIDIzNSwgMTE0LCAxNzQsIDEsIDIyNywgMTY1LCAxNzQsIDEsIDIxNSwgMTU2LCAxNzQsIDEsIDIxNSwgMTQ0LCAKLSAgICAxNzQsIDEsIDI0OCwgMTM1LCAxNzQsIDEsIDI0OCwgMTE5LCAxNzQsIDEsIDIyOCwgMTEwLCAxNzQsIDEsIDIxNywgMTA1LCAKLSAgICAxNzQsIDEsIDIxNiwgMjA4LCAxNzQsIDEsIDI0OCwgMjIxLCAxNzQsIDEsIDI0OCwgMjUsIDE3NCwgMSwgMTk3LCAxNzQsIDEsIAotICAgIDE5MCwgMTc0LCAxLCAyMjUsIDE0NywgMTc0LCAxLCAyNTIsIDE5MSwgMTc0LCAxLCAyNTIsIDE4LCAxNzQsIDEsIDE4NCwgCi0gICAgMTc0LCAxLCAxOTEsIDE3NCwgMSwgMjA1LCAxNzQsIDEsIDIzMywgMTM1LCAxNzQsIDEsIDIzMiwgMTg0LCAxNzQsIDEsIAotICAgIDIxNCwgMjcsIDE3NCwgMSwgMjIwLCAxMDIsIDE3NCwgMSwgMjE4LCAyMjMsIDE3NCwgMSwgMjA2LCAxNzQsIDEsIDE2MiwgCi0gICAgMTc0LCAyNSwgNSwgMjU1LCA3MywgMTc0LCAyNSwgNSwgNzMsIDE3NCwgMjUsIDUsIDIzNiwgMzMsIDE3NCwgMjUsIDUsIDcwLCAKLSAgICAxNzQsIDI1LCA1LCAyMTQsIDExOCwgMTc0LCAyNSwgNSwgMTQ5LCAxNTMsIDE3NCwgMjUsIDUsIDE0OSwgMjIyLCAxODAsIAotICAgIDE3NCwgMjUsIDUsIDE0OSwgMTU2LCAxNzQsIDI1LCA1LCAxNDksIDIzMiwgMTg1LCAxNzQsIDI1LCA1LCA3NSwgMTc0LCAyNSwgCi0gICAgNSwgMjU0LCAyMDEsIDE3NCwgMjUsIDUsIDc2LCAxNzQsIDI1LCA1LCAyNTMsIDE5MiwgMTc0LCA1LCAyMTMsIDE1MiwgMTc0LCAKLSAgICA1LCAyNTMsIDE3NSwgMTc0LCA1LCAyMzUsIDEwMiwgMTc0LCA1LCAyMTQsIDE2MSwgMTc0LCAyMjYsIDIwNCwgMTc0LCAyNDgsIAotICAgIDE3OCwgMTc0LCA1MiwgMjQ4LCAxNzgsIDE3NCwgMjU1LCAyMSwgNTAsIDE3NCwgMjIwLCAxMzcsIDE3NCwgMjEsIDIxMCwgCisgICAgMTE4LCAyMSwgMTk1LCAxMTgsIDIxLCAyMDAsIDIzNCwgMjQ1LCA1LCAyNTEsIDAsIDIzNCwgMjQ1LCA1LCAyNTQsIDc2LCAKKyAgICAyMzQsIDI0NSwgNSwgMjEzLCAxNDcsIDIzNCwgMjQ1LCAxLCA2MSwgMjM0LCAyNDUsIDEsIDI1NSwgNzQsIDIzNCwgMjQ1LCAKKyAgICAxLCA3MywgMjM0LCAyNDUsIDEsIDIzNiwgMzQsIDIzNCwgMjQ1LCAxLCA3MCwgMjM0LCAyNDUsIDEsIDIxNCwgMTE4LCAyMzQsIAorICAgIDI0NSwgMSwgNzUsIDIzNCwgMjQ1LCAxLCAyNTQsIDIwMiwgMjM0LCAyNDUsIDEsIDc2LCAyMzQsIDI0NSwgMSwgMjUzLCAKKyAgICAxOTMsIDIzNCwgMjQ1LCAxLCAxNzYsIDIzNCwgMjQ1LCAxLCAyMzQsIDEzMywgMjM0LCAyNDUsIDEsIDI0MywgMTM2LCAyMzQsIAorICAgIDI0NSwgMSwgMjQyLCAyNTAsIDIzNCwgMjQ1LCAxLCAyMjksIDc4LCAyMzQsIDI0NSwgMSwgMjUxLCAzNCwgMjM0LCAyNDUsIAorICAgIDEsIDI1MCwgMTU4LCAyMzQsIDI0NSwgMSwgMjM1LCAxNDIsIDIzNCwgMjQ1LCAxLCAyMzUsIDExNSwgMjM0LCAyNDUsIDEsIAorICAgIDIyNywgMTY2LCAyMzQsIDI0NSwgMSwgMjE1LCAxNTcsIDIzNCwgMjQ1LCAxLCAyMTUsIDE0NSwgMjM0LCAyNDUsIDEsIDI0OCwgCisgICAgMTM2LCAyMzQsIDI0NSwgMSwgMjQ4LCAxMjUsIDIzNCwgMjQ1LCAxLCAyNDgsIDEyMCwgMjM0LCAyNDUsIDEsIDIyMywgNDAsIAorICAgIDIzNCwgMjQ1LCAxLCAyMjgsIDExMSwgMjM0LCAyNDUsIDEsIDIxNywgMTA2LCAyMzQsIDI0NSwgMSwgMjE2LCAyMDksIDIzNCwgCisgICAgMjQ1LCAxLCAyNDgsIDIyMiwgMjM0LCAyNDUsIDEsIDI0OCwgMjYsIDIzNCwgMjQ1LCAxLCAxOTcsIDIzNCwgMjQ1LCAxLCAKKyAgICAxOTAsIDIzNCwgMjQ1LCAxLCAyMjUsIDE0OCwgMjM0LCAyNDUsIDEsIDI1MiwgMTkyLCAyMzQsIDI0NSwgMSwgMjUyLCAxOSwgCisgICAgMjM0LCAyNDUsIDEsIDE4NSwgMjM0LCAyNDUsIDEsIDE5MSwgMjM0LCAyNDUsIDEsIDIwNSwgMjM0LCAyNDUsIDEsIDIzMywgCisgICAgMTM2LCAyMzQsIDI0NSwgMSwgMjE0LCAyNywgMjM0LCAyNDUsIDEsIDIyMCwgMTAzLCAyMzQsIDI0NSwgMSwgMjE4LCAyMjQsIAorICAgIDIzNCwgMjQ1LCAxLCAyMDYsIDIzNCwgMjQ1LCAxLCAxNjIsIDIzNCwgMjQ1LCAyNSwgNSwgMjU1LCA3NCwgMjM0LCAyNDUsIAorICAgIDI1LCA1LCA3MywgMjM0LCAyNDUsIDI1LCA1LCAyMzYsIDM0LCAyMzQsIDI0NSwgMjUsIDUsIDcwLCAyMzQsIDI0NSwgMjUsIAorICAgIDUsIDIxNCwgMTE4LCAyMzQsIDI0NSwgMjUsIDUsIDc1LCAyMzQsIDI0NSwgMjUsIDUsIDI1NCwgMjAyLCAyMzQsIDI0NSwgCisgICAgMjUsIDUsIDc2LCAyMzQsIDI0NSwgMjUsIDUsIDI1MywgMTkzLCAyMzQsIDI0NSwgNSwgMjEzLCAxNTIsIDIzNCwgMjQ1LCA1LCAKKyAgICAyMjcsIDIwNiwgMjM0LCAyNDUsIDI1NSwgMjIsIDUwLCAyMzQsIDI0NSwgMjQ1LCAxMjIsIDUwLCAyMzQsIDI0NSwgNTQsIAorICAgIDUwLCAyMzQsIDI0NSwgMjIxLCAxNzQsIDc4LCAyMzQsIDI0NSwgNTIsIDIyMSwgMTc0LCA3OCwgMjM0LCAyNDUsIDI0OCwgCisgICAgMTc5LCAyMzQsIDI0NSwgNTIsIDI0OCwgMTc5LCAyMTksIDM3LCAyMTksIDQ1LCAxLCAyMjIsIDE5LCAyMTksIDM3LCAyMTksIAorICAgIDQ1LCAxLCAyMTcsIDgxLCAyMTksIDM3LCAyMTksIDQ1LCAxLCAyNTIsIDE2OSwgMjE5LCAzNywgMjE5LCA0NSwgMSwgMjUxLCAKKyAgICAyNCwgMjE5LCAzNywgMjE5LCA0NSwgMSwgMjQ4LCAyMDQsIDIxOSwgMzcsIDIxOSwgNDUsIDEsIDI0MywgMTIxLCAyMTksIAorICAgIDM3LCAyMTksIDQ1LCAxLCAyMzEsIDIxMSwgMjE5LCAzNywgMjE5LCA0NSwgMSwgMjI5LCA3NSwgMjE5LCAzNywgMjE5LCA0NSwgCisgICAgMSwgMjMzLCAxMTMsIDIxOSwgMzcsIDIxOSwgNDUsIDEsIDIyOSwgMjE0LCAyMTksIDM3LCAyMTksIDQ1LCAxLCAyMTQsIDI0LCAKKyAgICAyMTksIDM3LCAyMTksIDQ1LCAxLCAyMjYsIDc0LCAyMTksIDM3LCAyMTksIDQ1LCAxLCAyMTEsIDg0LCAyMTksIDM3LCAyMTksIAorICAgIDQ1LCAxLCAyMjMsIDE2OSwgMjE5LCAzNywgMjE5LCA0NSwgMSwgMjQyLCAzOCwgMjE5LCAzNywgMjE5LCA0NSwgMSwgMjM0LCAKKyAgICAyNDksIDIxOSwgMzcsIDIxOSwgNDUsIDEsIDIzNSwgMTM3LCAyMTksIDM3LCAyMTksIDQ1LCAxLCAyMjcsIDE2MywgMjE5LCAKKyAgICAzNywgMjE5LCA0NSwgMSwgMjU0LCAyMTAsIDIxOSwgMzcsIDIxOSwgNDUsIDEsIDI0NSwgMjA4LCAyMTksIDM3LCAyMTksIAorICAgIDQ1LCAxLCAyMzYsIDM1LCAyMTksIDM3LCAyMTksIDQ1LCAxLCAyMTQsIDIwOCwgMjE5LCAzNywgMjE5LCA0NSwgMSwgMjI2LCAKKyAgICAyMjMsIDIxOSwgMzcsIDIxOSwgNDUsIDEsIDI0NSwgMTk4LCAyMTksIDM3LCAyMTksIDQ1LCAxLCAyMzEsIDIyNCwgMjE5LCAKKyAgICAzNywgMjE5LCA0NSwgMjEsIDIxMCwgODYsIDIxOSwgMzcsIDIxOSwgNDUsIDIxLCAxMTAsIDIxOSwgMzcsIDIxOSwgNDUsIAorICAgIDIxLCAxMDUsIDIxOSwgMzcsIDIxOSwgNDUsIDIxLCAxNTgsIDIxOSwgMzcsIDIxOSwgNDUsIDIxLCAxNjEsIDIxOSwgMzcsIAorICAgIDIxOSwgNDUsIDIxLCAxODksIDIxOSwgMzcsIDIxOSwgNDUsIDIxLCAxOTQsIDIxOSwgMzcsIDIxOSwgNDUsIDIxLCAxOTgsIAorICAgIDIxOSwgMzcsIDIxOSwgNDUsIDIxLCAxOTUsIDIxOSwgMzcsIDIxOSwgNDUsIDIxLCAyMDAsIDI1MCwgMTUyLCA1LCAyNTEsIAorICAgIDAsIDI1MCwgMTUyLCA1LCAyNTQsIDc2LCAyNTAsIDE1MiwgNSwgMjEzLCAxNDcsIDI1MCwgMTUyLCAxLCAyNTUsIDc0LCAKKyAgICAyNTAsIDE1MiwgMSwgNzMsIDI1MCwgMTUyLCAxLCA3MCwgMjUwLCAxNTIsIDEsIDc1LCAyNTAsIDE1MiwgMSwgMjM1LCAxMSwgCisgICAgMjUwLCAxNTIsIDEsIDIzNCwgMTMyLCAyNTAsIDE1MiwgMSwgMjQzLCAxMzMsIDI1MCwgMTUyLCAxLCAyNDIsIDI0OSwgMjUwLCAKKyAgICAxNTIsIDEsIDIyOSwgNzcsIDI1MCwgMTUyLCAxLCAyNTEsIDMzLCAyNTAsIDE1MiwgMSwgMjUwLCAxNTcsIDI1MCwgMTUyLCAKKyAgICAxLCAyMzUsIDE0MSwgMjUwLCAxNTIsIDEsIDIzNSwgMTE0LCAyNTAsIDE1MiwgMSwgMjI3LCAxNjUsIDI1MCwgMTUyLCAxLCAKKyAgICAyMTUsIDE1NiwgMjUwLCAxNTIsIDEsIDIxNSwgMTQ0LCAyNTAsIDE1MiwgMSwgMjQ4LCAxMzUsIDI1MCwgMTUyLCAxLCAyNDgsIAorICAgIDExOSwgMjUwLCAxNTIsIDEsIDIyOCwgMTEwLCAyNTAsIDE1MiwgMSwgMjE3LCAxMDIsIDI1MCwgMTUyLCAxLCAyMTYsIDIwOCwgCisgICAgMjUwLCAxNTIsIDEsIDI0OCwgMjIxLCAyNTAsIDE1MiwgMSwgMjQ4LCAyNSwgMjUwLCAxNTIsIDEsIDIyOSwgMjI2LCAyNTAsIAorICAgIDE1MiwgMSwgMjI2LCA5MCwgMjUwLCAxNTIsIDEsIDIyNSwgMTQ3LCAyNTAsIDE1MiwgMSwgMjUyLCAxOTAsIDI1MCwgMTUyLCAKKyAgICAxLCAyNTIsIDE4LCAyNTAsIDE1MiwgMSwgMjMxLCAyMzgsIDI1MCwgMTUyLCAxLCAyMTAsIDE2NywgMjUwLCAxNTIsIDEsIAorICAgIDIxMSwgMTAzLCAyNTAsIDE1MiwgMSwgMjIzLCAxODUsIDI1MCwgMTUyLCAxLCAyMzMsIDEzNSwgMjUwLCAxNTIsIDEsIDIxMiwgCisgICAgNjQsIDI1MCwgMTUyLCAxLCAyMjIsIDMyLCAyNTAsIDE1MiwgMSwgMjQyLCA0NywgMjUwLCAxNTIsIDI1LCA1LCA2MSwgMjUwLCAKKyAgICAxNTIsIDI1LCA1LCA3MywgMjUwLCAxNTIsIDI1LCA1LCAyMzYsIDM0LCAyNTAsIDE1MiwgMjUsIDUsIDcwLCAyNTAsIDE1MiwgCisgICAgMjUsIDUsIDIxNCwgMTE4LCAyNTAsIDE1MiwgMjUsIDUsIDc1LCAyNTAsIDE1MiwgMjUsIDUsIDI1NCwgMjAyLCAyNTAsIAorICAgIDE1MiwgMjUsIDUsIDc2LCAyNTAsIDE1MiwgMjUsIDUsIDI1MywgMTkzLCAyNTAsIDE1MiwgMjUsIDUsIDIyNiwgMjIwLCAKKyAgICAyNTAsIDE1MiwgMTQ0LCA3OCwgMjUwLCAxNTIsIDI1MywgMTk0LCA3OCwgMjUwLCAxNTIsIDIxMywgMTUyLCAyNTAsIDE1MiwgCisgICAgMjMxLCAyMzYsIDI1MCwgMTUyLCAyMSwgMjEwLCA4NiwgMjUwLCAxNTIsIDIxLCAxMTAsIDI1MCwgMTUyLCAyMSwgMTA1LCAKKyAgICAyNTAsIDE1MiwgMjEsIDE1OCwgMjUwLCAxNTIsIDIxLCAxNjEsIDI1MCwgMTUyLCAyMSwgMTg5LCAyNTAsIDE1MiwgMjEsIAorICAgIDE5NCwgMjUwLCAxNTIsIDIxLCAxOTgsIDI1MCwgMTUyLCAyMSwgMTk1LCAyNTAsIDE1MiwgMjEsIDIwMCwgMjUwLCAxNTIsIAorICAgIDIyMSwgMTc0LCA3OCwgMjUwLCAxNTIsIDI0OCwgMTc5LCAyNTAsIDE1MiwgNTIsIDI0OCwgMTc5LCAyNTAsIDE1MiwgMjI0LCAKKyAgICAxNCwgNzgsIDE3NCwgNSwgMjUxLCAwLCAxNzQsIDUsIDI1NCwgNzYsIDE3NCwgNSwgMjEzLCAxNDcsIDE3NCwgMSwgNjEsIAorICAgIDE3NCwgMSwgMjU1LCA3NCwgMTc0LCAxLCA3MywgMTc0LCAxLCAyMzYsIDM0LCAxNzQsIDEsIDcwLCAxNzQsIDEsIDIxNCwgCisgICAgMTE4LCAxNzQsIDEsIDE0OSwgMTUzLCAxNzQsIDEsIDE0OSwgMjIyLCAxODEsIDE3NCwgMSwgMTQ5LCAxNTYsIDE3NCwgMSwgCisgICAgMTQ5LCAyMzIsIDE4NiwgMTc0LCAxLCA3NSwgMTc0LCAxLCAyNTQsIDIwMiwgMTc0LCAxLCA3NiwgMTc0LCAxLCAyNTMsIAorICAgIDE5MywgMTc0LCAxLCAxNzYsIDE3NCwgMSwgMjM0LCAxMzMsIDE3NCwgMSwgMjQzLCAxMzYsIDE3NCwgMSwgMjQyLCAyNTAsIAorICAgIDE3NCwgMSwgMjI5LCA3OCwgMTc0LCAxLCAyNTEsIDM0LCAxNzQsIDEsIDI1MCwgMTU4LCAxNzQsIDEsIDIzNSwgMTQyLCAKKyAgICAxNzQsIDEsIDIzNSwgMTE1LCAxNzQsIDEsIDIyNywgMTY2LCAxNzQsIDEsIDIxNSwgMTU3LCAxNzQsIDEsIDIxNSwgMTQ1LCAKKyAgICAxNzQsIDEsIDI0OCwgMTM2LCAxNzQsIDEsIDI0OCwgMTIwLCAxNzQsIDEsIDIyOCwgMTExLCAxNzQsIDEsIDIxNywgMTA2LCAKKyAgICAxNzQsIDEsIDIxNiwgMjA5LCAxNzQsIDEsIDI0OCwgMjIyLCAxNzQsIDEsIDI0OCwgMjYsIDE3NCwgMSwgMTk3LCAxNzQsIDEsIAorICAgIDE5MCwgMTc0LCAxLCAyMjUsIDE0OCwgMTc0LCAxLCAyNTIsIDE5MiwgMTc0LCAxLCAyNTIsIDE5LCAxNzQsIDEsIDE4NSwgCisgICAgMTc0LCAxLCAxOTEsIDE3NCwgMSwgMjA1LCAxNzQsIDEsIDIzMywgMTM2LCAxNzQsIDEsIDIzMiwgMTg1LCAxNzQsIDEsIAorICAgIDIxNCwgMjcsIDE3NCwgMSwgMjIwLCAxMDMsIDE3NCwgMSwgMjE4LCAyMjQsIDE3NCwgMSwgMjA2LCAxNzQsIDEsIDE2MiwgCisgICAgMTc0LCAyNSwgNSwgMjU1LCA3NCwgMTc0LCAyNSwgNSwgNzMsIDE3NCwgMjUsIDUsIDIzNiwgMzQsIDE3NCwgMjUsIDUsIDcwLCAKKyAgICAxNzQsIDI1LCA1LCAyMTQsIDExOCwgMTc0LCAyNSwgNSwgMTQ5LCAxNTMsIDE3NCwgMjUsIDUsIDE0OSwgMjIyLCAxODEsIAorICAgIDE3NCwgMjUsIDUsIDE0OSwgMTU2LCAxNzQsIDI1LCA1LCAxNDksIDIzMiwgMTg2LCAxNzQsIDI1LCA1LCA3NSwgMTc0LCAyNSwgCisgICAgNSwgMjU0LCAyMDIsIDE3NCwgMjUsIDUsIDc2LCAxNzQsIDI1LCA1LCAyNTMsIDE5MywgMTc0LCA1LCAyMTMsIDE1MiwgMTc0LCAKKyAgICA1LCAyNTMsIDE3NiwgMTc0LCA1LCAyMzUsIDEwMywgMTc0LCA1LCAyMTQsIDE2MSwgMTc0LCAyMjYsIDIwNSwgMTc0LCAyNDgsIAorICAgIDE3OSwgMTc0LCA1MiwgMjQ4LCAxNzksIDE3NCwgMjU1LCAyMiwgNTAsIDE3NCwgMjIwLCAxMzgsIDE3NCwgMjEsIDIxMCwgCiAgICAgODYsIDE3NCwgMjEsIDExMCwgMTc0LCAyMSwgMTA1LCAxNzQsIDIxLCAxNTgsIDE3NCwgMjEsIDE2MSwgMTc0LCAyMSwgMTg5LCAKLSAgICAxNzQsIDIxLCAxOTQsIDE3NCwgMjEsIDE5OCwgMTc0LCAyMSwgMTk1LCAxNzQsIDIxLCAyMDAsIDIxNywgNjksIDEsIDYxLCAKLSAgICAyMTcsIDY5LCAxLCAyNTUsIDczLCAyMTcsIDY5LCAxLCA3MywgMjE3LCA2OSwgMSwgMjM2LCAzMywgMjE3LCA2OSwgMSwgNzAsIAotICAgIDIxNywgNjksIDEsIDIxNCwgMTE4LCAyMTcsIDY5LCAxLCA3NSwgMjE3LCA2OSwgMSwgMjU0LCAyMDEsIDIxNywgNjksIDEsIAotICAgIDc2LCAyMTcsIDY5LCAxLCAyNTMsIDE5MiwgMjE3LCA2OSwgMSwgMTc2LCAyMTcsIDY5LCAxLCAyMzQsIDEzMiwgMjE3LCA2OSwgCi0gICAgMSwgMjQzLCAxMzUsIDIxNywgNjksIDEsIDI0MiwgMjQ5LCAyMTcsIDY5LCAxLCAyMjksIDc3LCAyMTcsIDY5LCAxLCAyNTEsIAotICAgIDMzLCAyMTcsIDY5LCAxLCAyNTAsIDE1NywgMjE3LCA2OSwgMSwgMjM1LCAxNDEsIDIxNywgNjksIDEsIDIzNSwgMTE0LCAKLSAgICAyMTcsIDY5LCAxLCAyMjcsIDE2NSwgMjE3LCA2OSwgMSwgMjE1LCAxNTYsIDIxNywgNjksIDEsIDIxNSwgMTQ0LCAyMTcsIAotICAgIDY5LCAxLCAyNDgsIDEzNSwgMjE3LCA2OSwgMSwgMjQ4LCAxMTksIDIxNywgNjksIDEsIDIyOCwgMTEwLCAyMTcsIDY5LCAxLCAKLSAgICAyMTcsIDEwNSwgMjE3LCA2OSwgMSwgMjE2LCAyMDgsIDIxNywgNjksIDEsIDI0OCwgMjIxLCAyMTcsIDY5LCAxLCAyNDgsIAotICAgIDI1LCAyMTcsIDY5LCAxLCAxOTcsIDIxNywgNjksIDEsIDE5MCwgMjE3LCA2OSwgMSwgMjI1LCAxNDcsIDIxNywgNjksIDEsIAotICAgIDI1MiwgMTkxLCAyMTcsIDY5LCAxLCAyNTIsIDE4LCAyMTcsIDY5LCAxLCAxODQsIDIxNywgNjksIDEsIDE5MSwgMjE3LCA2OSwgCi0gICAgMSwgMjA1LCAyMTcsIDY5LCAxLCAyMzMsIDEzNSwgMjE3LCA2OSwgMSwgMjE0LCAyNywgMjE3LCA2OSwgMSwgMjIwLCAxMDIsIAotICAgIDIxNywgNjksIDEsIDIwNiwgMjE3LCA2OSwgMSwgMTYyLCAyMTcsIDY5LCAxLCAyMjIsIDE3OSwgMjE3LCA2OSwgNSwgMjU0LCAKLSAgICA3NSwgMjE3LCA2OSwgNSwgMjEzLCAxNDcsIDIxNywgNjksIDI1LCA1LCAyNTUsIDczLCAyMTcsIDY5LCAyNSwgNSwgNzMsIAotICAgIDIxNywgNjksIDI1LCA1LCAyMzYsIDMzLCAyMTcsIDY5LCAyNSwgNSwgNzAsIDIxNywgNjksIDI1LCA1LCAyMTQsIDExOCwgCi0gICAgMjE3LCA2OSwgMjUsIDUsIDc1LCAyMTcsIDY5LCAyNSwgNSwgMjU0LCAyMDEsIDIxNywgNjksIDI1LCA1LCA3NiwgMjE3LCAKLSAgICA2OSwgMjUsIDUsIDI1MywgMTkyLCAyMTcsIDY5LCA1LCAyMTMsIDE1MiwgMjE3LCA2OSwgNSwgMjI3LCAyMDUsIDIxNywgNjksIAotICAgIDIxLCAyMTAsIDg2LCAyMTcsIDY5LCAyMSwgMTEwLCAyMTcsIDY5LCAyMSwgMTA1LCAyMTcsIDY5LCAyMSwgMTU4LCAyMTcsIAotICAgIDY5LCAyMSwgMTYxLCAyMTcsIDY5LCAyMSwgMTg5LCAyMTcsIDY5LCAyMSwgMTk0LCAyMTcsIDY5LCAyMSwgMTk4LCAyMTcsIAotICAgIDY5LCAyMSwgMTk1LCAyMTcsIDY5LCAyMSwgMjAwLCAxNSwgNSwgNjEsIDE1LCA1LCAxMTUsIDMwLCA2MSwgMTUsIDUsIDExNSwgCi0gICAgMzAsIDI1MiwgMTc2LCAxNSwgNSwgMTE1LCAzMCwgMjQzLCAxMDUsIDIxNiwgMjM5LCAxNSwgNSwgMTE1LCAzMCwgMTYyLCAKLSAgICAxNSwgNSwgMTE1LCAzMCwgMjM2LCAzNSwgMTUsIDUsIDExNSwgMzAsIDIzMywgMTE2LCAyNDIsIDk0LCAxNSwgNSwgMTE1LCAKLSAgICAzMCwgMjMwLCA2MSwgMTUsIDUsIDExNSwgMzAsIDIyMiwgMjEsIDE1LCA1LCAyNTUsIDc1LCAxNSwgNSwgMjU1LCAyNSwgMTUsIAotICAgIDUsIDI1NSwgMjYsIDMwLCAyNTMsIDIyOSwgMTUsIDUsIDI1NSwgMjYsIDMwLCAyNDYsIDY3LCAyNDIsIDk0LCAxNSwgNSwgCi0gICAgMjU1LCAyNiwgMzAsIDI0MywgMTE4LCAxNSwgNSwgMjU1LCAyNiwgMzAsIDI0MywgMTA1LCAyMTYsIDIzOSwgMTUsIDUsIAotICAgIDI1NSwgMjYsIDMwLCAxNjIsIDE1LCA1LCAyNTUsIDI2LCAzMCwgMjM2LCAzNiwgMjQyLCA5NCwgMTUsIDUsIDI1NSwgMjYsIAotICAgIDMwLCAyMzYsIDksIDE1LCA1LCAyNTUsIDI2LCAzMCwgMjMzLCAxMTcsIDE1LCA1LCAyNTUsIDI2LCAzMCwgMjIwLCA0OCwgCi0gICAgMTUsIDUsIDI1NSwgMjYsIDMwLCAxMDQsIDk2LCAxMDQsIDk2LCA3MCwgMTUsIDUsIDI1NSwgMjYsIDI0MiwgOTQsIDE1LCA1LCAKLSAgICAyNTUsIDIzLCAxNSwgNSwgMjU1LCAyNCwgMzAsIDI1MiwgMTYwLCAxNSwgNSwgMjU1LCAyNCwgMzAsIDI0MywgMTA1LCAyMTYsIAotICAgIDIzOSwgMTUsIDUsIDI1NSwgMjQsIDMwLCAyMzEsIDkyLCA5NiwgMjQ1LCAxNTAsIDE1LCA1LCAyNTUsIDI0LCAzMCwgMjIwLCAKLSAgICAxMDAsIDE1LCA1LCAyNTUsIDI0LCAzMCwgMjE3LCA3MiwgMTUsIDUsIDI1NCwgMjU1LCAxNSwgNSwgMjU0LCAxODYsIDE1LCAKLSAgICA1LCAyNTQsIDE4NywgMzAsIDI0NSwgODcsIDE1LCA1LCAyNTQsIDE4NywgMzAsIDIyMCwgMTAsIDk2LCAyNDIsIDE5MCwgMTUsIAotICAgIDUsIDI1NCwgMTc4LCAxNSwgNSwgMjU0LCAxNzksIDMwLCAyNTQsIDE3OCwgMTUsIDUsIDI1NCwgMTc5LCAzMCwgMjQ3LCAKLSAgICAyMTYsIDE1LCA1LCAyNTQsIDE3OSwgMzAsIDI0MiwgMTkwLCAxNSwgNSwgMjU0LCAxNzksIDMwLCAxNjIsIDE1LCA1LCAyNTQsIAotICAgIDE3OSwgMzAsIDIzNCwgMjU1LCAxNSwgNSwgMjU0LCAxNzksIDMwLCAyMzQsIDkyLCAxNSwgNSwgMjU0LCAxNzksIDMwLCAKLSAgICAyMjAsIDYzLCAxNSwgNSwgMjU0LCAxNzksIDMwLCAyMTQsIDEyNiwgMTUsIDUsIDI1NCwgMTc1LCAxNSwgNSwgMjU0LCAxNjgsIAotICAgIDE1LCA1LCAyNTQsIDEzMiwgMTUsIDUsIDI1NCwgMTMzLCAzMCwgMjIwLCA2MywgMTUsIDUsIDI1NCwgMTIzLCAxNSwgNSwgCi0gICAgMjU0LCAxMjQsIDExNywgMjU0LCAxMjMsIDE1LCA1LCAyNTQsIDEyNCwgMTM0LCAyMTYsIDg1LCAxNSwgNSwgMjU0LCAxMjQsIAotICAgIDk2LCAyMjksIDIxNywgMjI2LCAxNjQsIDI1NCwgMTI0LCA5NiwgMjI5LCAyMTYsIDE1LCA1LCAyNTQsIDEyNCwgOTYsIDIyOSwgCi0gICAgMjE3LCAyMTgsIDIzMywgMTUsIDUsIDI1NCwgOTQsIDE1LCA1LCAyNTQsIDY3LCAxNSwgNSwgMjU0LCAzNSwgMTUsIDUsIAotICAgIDI1NCwgMzYsIDMwLCAyMzMsIDE5NiwgMTUsIDUsIDI1NCwgOCwgMTUsIDUsIDI1MywgMjM2LCAxNSwgNSwgMjUzLCAyMzEsIAotICAgIDE1LCA1LCAyNTMsIDIzMiwgMjEwLCA0MCwgMjE2LCAyMzksIDE1LCA1LCAyNTMsIDIzMiwgMjM1LCAzLCAyMTYsIDIzOSwgCi0gICAgMTUsIDUsIDI1MywgMjMyLCAxMTcsIDI1MywgMjMyLCAyMTUsIDExNCwgMTE3LCAyMTUsIDExNCwgMjE1LCAxMTQsIDExNywgCi0gICAgMjE1LCAxMTQsIDIyNiwgMjEsIDE1LCA1LCAyNTMsIDIzMiwgMTE3LCAyNTMsIDIzMiwgMTE3LCAyNTMsIDIzMSwgMTUsIDUsIAotICAgIDI1MywgMjMyLCAxMTcsIDI1MywgMjMyLCAxMTcsIDI1MywgMjMyLCAyNDksIDEyNSwgMjUzLCAyMzIsIDExNywgMjUzLCAKLSAgICAyMzIsIDExNywgMjUzLCAyMzEsIDE1LCA1LCAyNTMsIDIyOSwgMTUsIDUsIDI1MywgMjI2LCAxNSwgNSwgMjUyLCAxOTEsIAotICAgIDE1LCA1LCAyNTIsIDE3NiwgMTUsIDUsIDI1MiwgMTcxLCAxNSwgNSwgMjUyLCAxNjcsIDE1LCA1LCAyNTIsIDE2MSwgMTUsIAotICAgIDUsIDI1MiwgMTYyLCAxMTcsIDI1MiwgMTYxLCAxNSwgNSwgMjUyLCAxNjAsIDE1LCA1LCAxMzAsIDE1LCA1LCAyNTIsIDE0MCwgCi0gICAgMTUsIDUsIDI1MiwgNiwgMTUsIDUsIDI1MiwgNywgMzAsIDYxLCAxNSwgNSwgMjUyLCA3LCAzMCwgMjQzLCA5NiwgMTUsIDUsIAotICAgIDI1MiwgNywgMzAsIDIzNiwgMzYsIDI0MiwgOTQsIDE1LCA1LCAyNTEsIDEyNSwgMTUsIDUsIDI1MSwgMTI2LCAxMTcsIDI1MSwgCi0gICAgMTI2LCAyNTUsIDI1LCAxNSwgNSwgMjUxLCAxMjYsIDExNywgMjUxLCAxMjYsIDIxNCwgMTkwLCAxNSwgNSwgMjUxLCAxMjYsIAotICAgIDI0OSwgMTI1LCAyNTEsIDEyNSwgMTUsIDUsIDI1MSwgMTA5LCAxNSwgNSwgMjUxLCAxMTAsIDExNywgMjUxLCAxMDksIDE1LCAKLSAgICA1LCAyNTEsIDk4LCAxNSwgNSwgMjUxLCA5NywgMTUsIDUsIDI0OCwgMjIxLCAxNSwgNSwgMjQ4LCAyMTIsIDE1LCA1LCAyNDgsIAotICAgIDIxMywgMjM0LCA2NiwgMzAsIDExNSwgOTYsIDIzMSwgMTQ3LCAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgNjYsIDMwLCAyNTQsIAotICAgIDEzMiwgMTUsIDUsIDI0OCwgMjEzLCAyMzQsIDY2LCAzMCwgMjUyLCAxNjAsIDE1LCA1LCAyNDgsIDIxMywgMjM0LCA2NiwgCi0gICAgMzAsIDI1MiwgNiwgMTUsIDUsIDI0OCwgMjEzLCAyMzQsIDY2LCAzMCwgMjQzLCAxMzUsIDE1LCA1LCAyNDgsIDIxMywgMjM0LCAKLSAgICA2NiwgMzAsIDI0MywgMTM2LCA5NiwgMjMxLCAxNDcsIDE1LCA1LCAyNDgsIDIxMywgMjM0LCA2NiwgMzAsIDI0MiwgMjE0LCAKLSAgICAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgNjYsIDMwLCAyNDIsIDE5NywgMTUsIDUsIDI0OCwgMjEzLCAyMzQsIDY2LCAzMCwgCi0gICAgMjQyLCAxMDMsIDE1LCA1LCAyNDgsIDIxMywgMjM0LCA2NiwgMzAsIDE2MiwgMTUsIDUsIDI0OCwgMjEzLCAyMzQsIDY2LCAKLSAgICAzMCwgMjM1LCAxNzksIDE1LCA1LCAyNDgsIDIxMywgMjM0LCA2NiwgMzAsIDIzNSwgMTgwLCA5NiwgMjMyLCA5OCwgMTUsIDUsIAotICAgIDI0OCwgMjEzLCAyMzQsIDY2LCAzMCwgMjM0LCAyNDIsIDE1LCA1LCAyNDgsIDIxMywgMjM0LCA2NiwgMzAsIDIzMywgMTM1LCAKLSAgICAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgNjYsIDMwLCAyMzIsIDk4LCAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgNjYsIDMwLCAyMzIsIAotICAgIDk5LCA5NiwgMjMxLCAxNDYsIDE1LCA1LCAyNDgsIDIxMywgMjM0LCA2NiwgMzAsIDIzMiwgODQsIDE1LCA1LCAyNDgsIDIxMywgCi0gICAgMjM0LCA2NiwgMzAsIDIyOSwgMTA3LCAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgNjYsIDMwLCAyMjYsIDIyLCA5NiwgMjI2LCAKLSAgICAyMSwgMTUsIDUsIDI0OCwgMjEzLCAyMzQsIDY2LCAzMCwgMjE5LCAxOTEsIDE1LCA1LCAyNDgsIDIxMywgMjM0LCA2NiwgMzAsIAotICAgIDIxNywgNzIsIDE1LCA1LCAyNDgsIDIxMywgMjM0LCA2NiwgMzAsIDIxNCwgMjMxLCA5NiwgMjQyLCAxOTcsIDE1LCA1LCAKLSAgICAyNDgsIDIxMywgMjM0LCA2NiwgMzAsIDIxNCwgMTI2LCAxNSwgNSwgMjQ4LCAxODcsIDE1LCA1LCAyNDgsIDE2NiwgMTUsIDUsIAotICAgIDI0OCwgMTY1LCAxNSwgNSwgMjQ4LCAxNjQsIDE1LCA1LCAyNDgsIDMsIDE1LCA1LCAyNDcsIDI0MiwgMTUsIDUsIDI0NywgCi0gICAgMjE3LCAxNSwgNSwgMjQ3LCAyMTgsIDMwLCAyMjAsIDYzLCAxNSwgNSwgMjQ3LCAyMTYsIDE1LCA1LCAyNDcsIDIwNiwgMTUsIAotICAgIDUsIDI0NywgMjA3LCAyMzQsIDIwOCwgMTA0LCAyNDIsIDk1LCAyNDcsIDE4NywgMTUsIDUsIDI0NywgMTg3LCAxNSwgNSwgCi0gICAgMjQ2LCA3OCwgMTUsIDUsIDI0NiwgNzksIDExNywgMjQ2LCA3OCwgMTUsIDUsIDI0NiwgNzksIDI0MiwgOTQsIDE1LCA1LCAKLSAgICAyNDYsIDc5LCAyMjAsIDQ1LCAxNSwgNSwgMjQ2LCA3NiwgMTUsIDUsIDI0NiwgNzcsIDMwLCAyNDUsIDcyLCAxNSwgNSwgCi0gICAgMjQ2LCA3NSwgMTUsIDUsIDI0NiwgNzQsIDE1LCA1LCAyNDYsIDczLCAxNSwgNSwgMjQ2LCA3MiwgMTUsIDUsIDI0NiwgNjgsIAotICAgIDE1LCA1LCAyNDYsIDY2LCAxNSwgNSwgMjQ2LCA2NywgMjQyLCA5NCwgMTUsIDUsIDI0NiwgNjcsIDI0MiwgOTUsIDI0MiwgCi0gICAgOTQsIDE1LCA1LCAyNDYsIDY1LCAxNSwgNSwgMjQ2LCA1OCwgMTUsIDUsIDc1LCAxNSwgNSwgMTYwLCAzMCwgMjI2LCAyMSwgCi0gICAgMTUsIDUsIDE2MCwgMTE3LCAxNjAsIDIyNywgMTk1LCAxMTcsIDIyNywgMTk0LCAxNSwgNSwgMjQ1LCAyMzQsIDE1LCA1LCAKLSAgICAyNDUsIDIzNSwgMzAsIDExNSwgOTYsIDI0MiwgNDksIDk2LCAyNDgsIDIyMSwgMTUsIDUsIDI0NSwgMjM1LCAzMCwgMjQzLCAKLSAgICA5NiwgMTUsIDUsIDI0NSwgMjM1LCAzMCwgMjMwLCAyMzAsIDE1LCA1LCAyNDUsIDIzNSwgMzAsIDIyMiwgOCwgMTUsIDUsIAotICAgIDI0NSwgMjM1LCAzMCwgMjIwLCA2MywgMTUsIDUsIDI0NSwgMjM1LCAzMCwgNzAsIDE1LCA1LCAyNDUsIDIxMSwgMTUsIDUsIAotICAgIDI0NSwgMjAwLCAxNSwgNSwgMjQ1LCAxNzQsIDE1LCA1LCAyNDUsIDE1MCwgMTUsIDUsIDI0NSwgMTUxLCAzMCwgMjQzLCAKLSAgICAxMDQsIDE1LCA1LCAyNDUsIDE1MSwgMzAsIDI0MywgMTA1LCAyMTYsIDIzOSwgMTUsIDUsIDI0NSwgMTUxLCAzMCwgMjMxLCAKLSAgICA5MSwgMTUsIDUsIDI0NSwgMTUxLCAyNDksIDEyNSwgMjQ1LCAxNTAsIDE1LCA1LCAyNDUsIDE1MSwgMjI2LCAxNjQsIDI0NSwgCi0gICAgMTUwLCAxNSwgNSwgMjQ1LCAxNTEsIDIxOCwgMjMzLCAxNSwgNSwgMjQ1LCA4OSwgMTUsIDUsIDI0NSwgODcsIDE1LCA1LCAKLSAgICAyNDUsIDcyLCAxNSwgNSwgMjQ1LCAxMCwgMTUsIDUsIDI0NSwgMTEsIDMwLCA2MSwgMTUsIDUsIDI0NSwgMTEsIDMwLCAxMTUsIAotICAgIDk2LCAyMzMsIDEwNCwgMTUsIDUsIDI0NSwgMTEsIDMwLCAxMTUsIDk2LCAyMzMsIDEwNSwgMzAsIDIzMywgMTA0LCAxNSwgNSwgCi0gICAgMjQ1LCAxMSwgMzAsIDI1NCwgMTIzLCAxNSwgNSwgMjQ1LCAxMSwgMzAsIDI1MiwgMTc2LCAxNSwgNSwgMjQ1LCAxMSwgMzAsIAotICAgIDI0NiwgNjcsIDI0MiwgOTQsIDE1LCA1LCAyNDUsIDExLCAzMCwgMjQ2LCA2NywgMjQyLCA5NSwgMjQyLCA5NCwgMTUsIDUsIAotICAgIDI0NSwgMTEsIDMwLCAxNjIsIDE1LCA1LCAyNDUsIDExLCAzMCwgMjQyLCA0OSwgMjQyLCA5NCwgMTUsIDUsIDI0NSwgMTEsIAotICAgIDMwLCAyMzYsIDM2LCAyNDIsIDk0LCAxNSwgNSwgMjQ1LCAxMSwgMzAsIDIzNCwgMjA3LCAxNSwgNSwgMjQ1LCAxMSwgMzAsIAotICAgIDIzNCwgMjA4LCAyMTgsIDIzMywgMTUsIDUsIDI0NSwgMTEsIDMwLCAyMzMsIDIxNSwgMTUsIDUsIDI0NSwgMTEsIDMwLCAKLSAgICAyMzMsIDEzNSwgMTUsIDUsIDI0NSwgMTEsIDMwLCAyMzMsIDEwNSwgMzAsIDIzMywgMTA0LCAxNSwgNSwgMjQ1LCAxMSwgMzAsIAotICAgIDIzMiwgMjQxLCAxNSwgNSwgMjQ1LCAxMSwgMzAsIDIzMiwgOTgsIDE1LCA1LCAyNDUsIDExLCAzMCwgMjE0LCAyMzAsIDE1LCAKLSAgICA1LCAyNDUsIDExLCAzMCwgMjE0LCAyMTksIDE1LCA1LCAyNDMsIDEzNSwgMTUsIDUsIDI0MywgMTM2LCAyNDIsIDk0LCAxNSwgCi0gICAgNSwgMjQzLCAxMzMsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDExNSwgOTYsIDI0OCwgMjIyLCA5NiwgMTYyLCAxNSwgNSwgMjQzLCAKLSAgICAxMzQsIDMwLCAxMTUsIDk2LCAxNjIsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDExNSwgOTYsIDIzNiwgMzUsIDE1LCA1LCAyNDMsIAotICAgIDEzNCwgMzAsIDI1NSwgMjQsIDIxNiwgMjQwLCA5NiwgMjE3LCA5MywgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjU0LCAxMjMsIAotICAgIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDI1MywgMjMxLCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNTMsIDIzMCwgOTYsIDI0MywgCi0gICAgMTE4LCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNTIsIDE3NiwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjUyLCAxNDEsIDk2LCAKLSAgICAyMDUsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDI1MSwgOTgsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDI1MSwgOTksIDk2LCAyMDUsIAotICAgIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDI0OCwgMjIxLCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNDgsIDMsIDE1LCA1LCAyNDMsIAotICAgIDEzNCwgMzAsIDI0NywgMjE4LCAzMCwgMjIwLCA2MywgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjQ2LCA3NiwgMTUsIDUsIDI0MywgCi0gICAgMTM0LCAzMCwgMjQ1LCAxNzQsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDI0NSwgMTc1LCA5NiwgMjMzLCAxMzUsIDE1LCA1LCAKLSAgICAyNDMsIDEzNCwgMzAsIDI0NSwgMTUwLCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNDUsIDE1MSwgMzAsIDI0MywgMTA1LCAyMTYsIAotICAgIDIzOSwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjQzLCAxMDUsIDIxNiwgMjM5LCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNDMsIAotICAgIDk2LCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNDIsIDIxNCwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjQyLCAyMTIsIDE1LCA1LCAKLSAgICAyNDMsIDEzNCwgMzAsIDI0MiwgMjEzLCA5NiwgNjEsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDI0MiwgMTk4LCA5NiwgMjE4LCAKLSAgICA4MywgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjQyLCA0OSwgOTYsIDIzMiwgOTksIDk2LCAyNDUsIDcyLCAxNSwgNSwgMjQzLCAKLSAgICAxMzQsIDMwLCAyNDIsIDMwLCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNDIsIDMxLCA5NiwgMjMzLCAxMzUsIDE1LCA1LCAyNDMsIAotICAgIDEzNCwgMzAsIDI0MSwgMTgxLCA5NiwgMjMyLCAyNDEsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDI0MCwgMjE4LCAxNSwgNSwgCi0gICAgMjQzLCAxMzQsIDMwLCAyMzYsIDM2LCAyNDIsIDk0LCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyMzUsIDE2NiwgOTYsIDI0MCwgCi0gICAgMjIzLCA5NiwgMjUzLCAyMzEsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDIzNCwgMjQyLCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAKLSAgICAyMzQsIDIwNywgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjM0LCA4OSwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjM0LCA5MCwgOTYsIAotICAgIDIzMywgMTA0LCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyMzMsIDIxNiwgOTYsIDI1NCwgMTIzLCAxNSwgNSwgMjQzLCAxMzQsIAotICAgIDMwLCAyMzMsIDEzNSwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjMxLCA5MiwgOTYsIDI0NSwgMTUwLCAxNSwgNSwgMjQzLCAKLSAgICAxMzQsIDMwLCAyMzAsIDIzMCwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjI3LCAxOTQsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIAotICAgIDIyNywgMTk1LCAxMTcsIDIyNywgMTk0LCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAxOTAsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIAotICAgIDIyMiwgOCwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjIxLCAyMzEsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDIyMCwgNjMsIDE1LCAKLSAgICA1LCAyNDMsIDEzNCwgMzAsIDIyMCwgNjQsIDk2LCAyMTUsIDk4LCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyMjAsIDMwLCAxNSwgCi0gICAgNSwgMjQzLCAxMzQsIDMwLCAyMTgsIDQzLCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyMTcsIDcyLCAxNSwgNSwgMjQzLCAxMzQsIAotICAgIDMwLCA3MCwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjE0LCAyMTksIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDIxNCwgMjIwLCA5NiwgCi0gICAgMjQ2LCA3OCwgMTUsIDUsIDI0MywgMTM0LCAxMTcsIDI0MywgMTMzLCAxNSwgNSwgMjQzLCAxMjgsIDE1LCA1LCAyNDMsIAotICAgIDEyOSwgMjQ5LCAxMjUsIDI0MywgMTI4LCAxNSwgNSwgMjQzLCAxMjYsIDE1LCA1LCAyNDMsIDEyNywgMTE3LCAyNDMsIDEyNywgCi0gICAgMjQzLCA5NywgMTE3LCAyNDMsIDk2LCAxNSwgNSwgMjQzLCAxMTgsIDE1LCA1LCAyNDMsIDExOSwgMjQzLCAxMjcsIDExNywgCi0gICAgMjQzLCAxMjcsIDI0MywgOTcsIDExNywgMjQzLCA5NiwgMTUsIDUsIDI0MywgMTE3LCAxNSwgNSwgMjQzLCAxMTUsIDE1LCA1LCAKLSAgICAyNDMsIDEwNiwgMTUsIDUsIDI0MywgMTA0LCAxNSwgNSwgMjQzLCAxMDUsIDIxNiwgMjM5LCAxNSwgNSwgMjQzLCAxMDUsIAotICAgIDExNywgMjQzLCAxMDQsIDE1LCA1LCAyNDMsIDEwNSwgMjQ5LCAxMjUsIDI0MywgMTA0LCAxNSwgNSwgMjQzLCA5NiwgMTUsIAotICAgIDUsIDI0MywgOTUsIDE1LCA1LCAyNDMsIDkwLCAxNSwgNSwgMjQzLCAzNiwgMTUsIDUsIDI0MywgMzcsIDMwLCAyMzMsIDE5NiwgCi0gICAgMTUsIDUsIDI0MiwgMjE0LCAxNSwgNSwgMjQyLCAyMTUsIDMwLCA3NSwgMTUsIDUsIDI0MiwgMjE1LCAzMCwgNzAsIDE1LCA1LCAKLSAgICAyNDIsIDIxNSwgMjQ5LCAxMjUsIDI0MiwgMjE0LCAxNSwgNSwgMjQyLCAyMTIsIDE1LCA1LCAyNDIsIDIxMywgMTE3LCAyNDIsIAotICAgIDIxMiwgMTUsIDUsIDI0MiwgMjEzLCAyNDksIDEyNSwgMjQyLCAyMTIsIDE1LCA1LCAyNDIsIDIwOSwgMTUsIDUsIDI0MiwgCi0gICAgMTk3LCAxNSwgNSwgMjQyLCAxOTgsIDI0MiwgOTQsIDE1LCA1LCAyNDIsIDE5NSwgMTUsIDUsIDI0MiwgMTk2LCAzMCwgMTE1LCAKLSAgICA5NiwgMjM2LCAzNSwgMTUsIDUsIDI0MiwgMTk2LCAzMCwgMjQzLCAxMDUsIDIxNiwgMjM5LCAxNSwgNSwgMjQyLCAxOTYsIAotICAgIDMwLCAyMzYsIDM1LCAxNSwgNSwgMjQyLCAxOTYsIDMwLCAyMzIsIDk5LCA5NiwgMjM2LCAzNSwgMTUsIDUsIDI0MiwgMTk2LCAKLSAgICAzMCwgMTkwLCAxNSwgNSwgMjQyLCAxOTIsIDE1LCA1LCAyNDIsIDE5MCwgMTUsIDUsIDI0MiwgMTkxLCAyNDksIDEyNSwgCi0gICAgMjQyLCAxOTAsIDE1LCA1LCAyNDIsIDE5MSwgMzAsIDI1MiwgMTc2LCAxNSwgNSwgMjQyLCAxOTEsIDMwLCAyMTcsIDcyLCAKLSAgICAxNSwgNSwgMjQyLCAxOTEsIDIxNiwgMjM5LCAxNSwgNSwgMjQyLCAxMTMsIDE1LCA1LCAyNDIsIDExNCwgMjQ5LCAxMjUsIAotICAgIDI0MiwgMTEzLCAxNSwgNSwgMjQyLCAxMTEsIDE1LCA1LCAyNDIsIDExMiwgMzAsIDIzNCwgMjQyLCAxNSwgNSwgMjQyLCAKLSAgICAxMTIsIDMwLCAyMzQsIDI0MywgMzAsIDIzNiwgMzYsIDI0MiwgOTQsIDE1LCA1LCAyNDIsIDExMiwgMzAsIDIyNywgMTk0LCAKLSAgICAxNSwgNSwgMjQyLCAxMTIsIDMwLCAyMjIsIDksIDk2LCAyMTUsIDExMywgMTUsIDUsIDI0MiwgMTEyLCAyNDIsIDk0LCAxNSwgCi0gICAgNSwgMjQyLCAxMDMsIDE1LCA1LCAyNDIsIDEwNCwgMzAsIDExNSwgOTYsIDIzMywgMTk2LCAxNSwgNSwgMjQyLCAxMDQsIDMwLCAKLSAgICAyMzMsIDE5NiwgMTUsIDUsIDI0MiwgMTA0LCAxMTcsIDI0MiwgMTA0LCAyMzIsIDkxLCAxNSwgNSwgMjQyLCA5OCwgMTUsIDUsIAotICAgIDI0MiwgOTYsIDE1LCA1LCAyNDIsIDk3LCAzMCwgMjIwLCA2MywgMTUsIDUsIDI0MiwgODgsIDE1LCA1LCAyNDIsIDg3LCAxNSwgCi0gICAgNSwgMjQyLCA4NCwgMTUsIDUsIDI0MiwgODMsIDE1LCA1LCAxNjIsIDE1LCA1LCAyNDIsIDQ5LCAyMTYsIDIzOSwgMTUsIDUsIAotICAgIDI0MiwgNDksIDI0MiwgOTQsIDE1LCA1LCAyNDIsIDMwLCAxNSwgNSwgMjQxLCAxODAsIDE1LCA1LCAyNDEsIDE4MSwgMzAsIAotICAgIDI1MywgMjMxLCAxNSwgNSwgMjQxLCAxODEsIDMwLCAyNTMsIDIyOSwgMTUsIDUsIDI0MSwgMTgxLCAzMCwgMjUyLCAxNzYsIAotICAgIDE1LCA1LCAyNDEsIDE4MSwgMzAsIDI0NywgMTg3LCAxNSwgNSwgMjQxLCAxODEsIDMwLCAyNDMsIDEyNiwgMTUsIDUsIDI0MSwgCi0gICAgMTgxLCAzMCwgMjM0LCA4MSwgMTUsIDUsIDI0MSwgMTgxLCAzMCwgMjI3LCAxOTQsIDE1LCA1LCAyNDEsIDE4MSwgMzAsIAotICAgIDIyMCwgNjMsIDE1LCA1LCAyNDEsIDE4MSwgMzAsIDcwLCAxNSwgNSwgMjQwLCAyMjIsIDE1LCA1LCAyNDAsIDIxOCwgMTUsIAotICAgIDUsIDI0MCwgMjE5LCAzMCwgMjU0LCAxMjMsIDE1LCA1LCAyNDAsIDIxOSwgMzAsIDI0MiwgMzAsIDE1LCA1LCAyNDAsIDIxOSwgCi0gICAgMzAsIDIzNCwgMjA3LCAxNSwgNSwgMjQwLCAyMTksIDMwLCAyMzIsIDE5NywgMTUsIDUsIDI0MCwgMjE5LCAzMCwgMjE0LCAKLSAgICAyMTksIDE1LCA1LCAyNDAsIDIxNSwgMTUsIDUsIDczLCAxNSwgNSwgMjQwLCAxNTQsIDYxLCAxNSwgNSwgMjQwLCAxMTUsIAotICAgIDE1LCA1LCAyMzYsIDYzLCAxNSwgNSwgMjM2LCA2NCwgMTE3LCAyMzYsIDY0LCAyNTEsIDk4LCAxNSwgNSwgMjM2LCA2NCwgCi0gICAgMTE3LCAyMzYsIDY0LCAyMTgsIDIzMywgMTUsIDUsIDIzNiwgMzgsIDE1LCA1LCAyMzYsIDM1LCAxNSwgNSwgMjM2LCAzNiwgCi0gICAgMjQ3LCAyNDIsIDE1LCA1LCAyMzYsIDM2LCAyMjMsIDM1LCAxNSwgNSwgMjM2LCAzNiwgMTE3LCAyMzYsIDM2LCAyMjAsIDE0LCAKLSAgICAxMTcsIDIyMCwgMTQsIDIxNCwgMjIwLCAxMTcsIDIxNCwgMjE5LCAxNSwgNSwgMjM2LCAzNiwgMjQyLCA5NCwgMTUsIDUsIAotICAgIDIzNiwgMjcsIDE1LCA1LCAyMzYsIDI4LCAzMCwgMjQzLCAxMDUsIDIxNiwgMjM5LCAxNSwgNSwgMjM2LCAyNiwgMTUsIDUsIAotICAgIDIzNiwgMTYsIDE1LCA1LCAyMzYsIDE3LCAzMCwgMjE3LCA3MiwgMTUsIDUsIDIzNiwgMTcsIDI0OSwgMTI1LCAyMzYsIDE2LCAKLSAgICAxNSwgNSwgMjM2LCAxNywgMjI2LCAxNjQsIDIzNiwgMTYsIDE1LCA1LCAyMzYsIDE3LCAyMTgsIDIzMywgMTUsIDUsIDIzNiwgCi0gICAgOSwgMTUsIDUsIDIzNSwgMjU1LCAxNSwgNSwgMjM1LCAxNzksIDE1LCA1LCAyMzUsIDE2NSwgMTUsIDUsIDE3NiwgMTUsIDUsIAotICAgIDIzNSwgMTMsIDMwLCA2MSwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyNTQsIDI1NSwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyNTUsIAotICAgIDAsIDk2LCAyMzMsIDIxNSwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyNTMsIDIyOSwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyNTIsIAotICAgIDE3NiwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyNTIsIDE2MCwgMTUsIDUsIDIzNSwgMTMsIDMwLCAxMzAsIDE1LCA1LCAyMzUsIAotICAgIDEzLCAzMCwgMjUyLCA2LCAxNSwgNSwgMjM1LCAxMywgMzAsIDI0NSwgODcsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjQ1LCA3MiwgCi0gICAgMTUsIDUsIDIzNSwgMTMsIDMwLCAyNDMsIDEzNSwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyNDMsIDExOCwgMTUsIDUsIDIzNSwgCi0gICAgMTMsIDMwLCAyNDMsIDEwNSwgMjE2LCAyMzksIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjQzLCA5NiwgMTUsIDUsIDIzNSwgMTMsIAotICAgIDMwLCAyNDMsIDk3LCA5NiwgMjIwLCAxMDEsIDk2LCA2MSwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyNDIsIDIxNCwgMTUsIDUsIAotICAgIDIzNSwgMTMsIDMwLCAyNDIsIDE5NywgMTUsIDUsIDIzNSwgMTMsIDMwLCAyNDIsIDE5MSwgOTYsIDIyMSwgMjMxLCAxNSwgNSwgCi0gICAgMjM1LCAxMywgMzAsIDI0MiwgMTkxLCAyNDksIDEyNSwgMjQyLCAxOTAsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjQyLCAxMTMsIAotICAgIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjQyLCA4NywgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMzYsIDM1LCAxNSwgNSwgMjM1LCAxMywgCi0gICAgMzAsIDIzNiwgMTYsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjM0LCAyNDIsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjM0LCA5MiwgCi0gICAgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMzQsIDg5LCAxNSwgNSwgMjM1LCAxMywgMzAsIDIzMiwgMjQxLCAxNSwgNSwgMjM1LCAKLSAgICAxMywgMzAsIDIzMiwgOTgsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjMxLCA5MSwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMzEsIAotICAgIDkyLCA5NiwgMjQ2LCA3OCwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMzEsIDkyLCA5NiwgMjQyLCAyMTQsIDE1LCA1LCAyMzUsIAotICAgIDEzLCAzMCwgMjMxLCA5MiwgOTYsIDIxNywgMjIsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjMwLCAyMzAsIDE1LCA1LCAyMzUsIAotICAgIDEzLCAzMCwgMjMwLCAyMzEsIDk2LCAyMjcsIDE4OSwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMjksIDEwNywgMTUsIDUsIDIzNSwgCi0gICAgMTMsIDMwLCAyMjcsIDE5NCwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMjUsIDEwOCwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMjIsIAotICAgIDE0MCwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMDYsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjIxLCAyMzEsIDE1LCA1LCAyMzUsIAotICAgIDEzLCAzMCwgMjIwLCAxMDIsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjIwLCA2MywgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMjAsIAotICAgIDMwLCAxNSwgNSwgMjM1LCAxMywgMzAsIDIxOSwgMjI1LCAxNSwgNSwgMjM1LCAxMywgMzAsIDIxOSwgMTgyLCAxNSwgNSwgCi0gICAgMjM1LCAxMywgMzAsIDIxOCwgNTEsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjE3LCA1MCwgMTUsIDUsIDIzNSwgMTMsIDMwLCAKLSAgICA3MCwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMTQsIDIzMCwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMTQsIDIxOSwgMTUsIDUsIAotICAgIDIzNSwgMTMsIDMwLCAyMTQsIDE5MywgMzAsIDE5MCwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMTQsIDEyNiwgMTUsIDUsIDIzNSwgCi0gICAgMTMsIDMwLCAyMTAsIDQ0LCAxNSwgNSwgMjM1LCAxMSwgMTUsIDUsIDIzNSwgMTIsIDI0OSwgMTI1LCAyMzUsIDExLCAxNSwgCi0gICAgNSwgMjM1LCA0LCAxNSwgNSwgMjM1LCAxLCAxNSwgNSwgMjM0LCAyNTUsIDE1LCA1LCAyMzQsIDI1NCwgMTUsIDUsIDIzNCwgCi0gICAgMjUyLCAxNSwgNSwgMjM0LCAyNTMsIDExNywgMjM0LCAyNTIsIDE1LCA1LCAyMzQsIDI0MiwgMTUsIDUsIDIzNCwgMjQzLCAKLSAgICAzMCwgMjM2LCAzNiwgMjQyLCA5NCwgMTUsIDUsIDIzNCwgMjM4LCAxNSwgNSwgMjM0LCAyMzksIDMwLCAyNTIsIDE3NiwgMTUsIAotICAgIDUsIDIzNCwgMjM5LCAyNDksIDEyNSwgMjM0LCAyMzgsIDE1LCA1LCAyMzQsIDIzNiwgMTUsIDUsIDIzNCwgMjM1LCAxNSwgNSwgCi0gICAgMjM0LCAyMDcsIDE1LCA1LCAyMzQsIDIwOCwgMjMzLCAxMTgsIDMwLCAxMDQsIDExNywgMjMzLCAxMTgsIDMwLCA3MCwgMTUsIAotICAgIDUsIDIzNCwgMjA4LCAxMTcsIDIzNCwgMjA4LCAyMzMsIDExOCwgMzAsIDEwNCwgMTE3LCAyMzMsIDExOCwgMzAsIDcwLCAxNSwgCi0gICAgNSwgMjM0LCAxNTcsIDE1LCA1LCAyMzQsIDkyLCAxNSwgNSwgMjM0LCA5MywgMzAsIDI1MiwgMTc2LCAxNSwgNSwgMjM0LCAKLSAgICA5MywgMzAsIDcwLCAxNSwgNSwgMjM0LCA5MywgMzAsIDIxNCwgMjE5LCAxNSwgNSwgMjM0LCA4OSwgMTUsIDUsIDIzNCwgODEsIAotICAgIDE1LCA1LCAyMzQsIDY4LCAxNSwgNSwgMjM0LCA2NywgMTUsIDUsIDIzNCwgNjUsIDE1LCA1LCAyMzQsIDY2LCAxMTcsIDIzNCwgCi0gICAgNjUsIDE1LCA1LCAyMzMsIDIxNywgMTUsIDUsIDIzMywgMjE4LCAxMTcsIDI0MSwgMTgxLCAzMCwgMjUzLCAyMzAsIDIzMywgCi0gICAgMjE4LCAxMTcsIDI0MSwgMTgxLCAzMCwgMjUzLCAyMjksIDE1LCA1LCAyMzMsIDIxNSwgMTUsIDUsIDIzMywgMjEzLCAxNSwgCi0gICAgNSwgMjMzLCAyMTQsIDIxNCwgMTIsIDE3LCAxNSwgNSwgMjMzLCAyMTIsIDE1LCA1LCAyMzMsIDIwOSwgMTUsIDUsIDIzMywgCi0gICAgMjEwLCAyNDIsIDk0LCAxNSwgNSwgMjMzLCAyMDgsIDE1LCA1LCAyMzMsIDE5NiwgMTUsIDUsIDIzMywgMTk3LCAyMjYsIAotICAgIDE2NCwgMjMzLCAxOTYsIDE1LCA1LCAyMzMsIDE5MSwgMTUsIDUsIDIzMywgMTcyLCAxNSwgNSwgMjMzLCAxMzUsIDE1LCA1LCAKLSAgICAyMzMsIDExNywgMTUsIDUsIDIzMywgMTE4LCAzMCwgNjEsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDExNSwgOTYsIDI0OCwgCi0gICAgMjIyLCA5NiwgMTYyLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAxMTUsIDk2LCAyNDMsIDk2LCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAKLSAgICAxMTUsIDk2LCAyMzMsIDEwNCwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjU0LCAxNzgsIDE1LCA1LCAyMzMsIDExOCwgMzAsIAotICAgIDI1NCwgMTIzLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyNTMsIDIzMiwgMjEwLCA0MCwgMjE2LCAyMzksIDE1LCA1LCAyMzMsIAotICAgIDExOCwgMzAsIDI1MiwgMTc2LCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyNTIsIDYsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDI0OCwgCi0gICAgMTY2LCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyNDUsIDE1MCwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjQzLCAxMzUsIDE1LCA1LCAKLSAgICAyMzMsIDExOCwgMzAsIDI0MywgOTYsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDI0MiwgMTAzLCAxNSwgNSwgMjMzLCAxMTgsIAotICAgIDMwLCAyNDIsIDEwNCwgOTYsIDI0MiwgMTAzLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAxNjIsIDE1LCA1LCAyMzMsIDExOCwgCi0gICAgMzAsIDI0MiwgMzAsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDI0MSwgMTgxLCAzMCwgMjI3LCAxOTQsIDE1LCA1LCAyMzMsIAotICAgIDExOCwgMzAsIDIzNiwgMzYsIDI0MiwgOTQsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDIzNiwgMTYsIDE1LCA1LCAyMzMsIDExOCwgCi0gICAgMzAsIDIzNiwgMTcsIDk2LCAxNjIsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDIzNiwgMTcsIDk2LCAyMzIsIDk4LCAxNSwgNSwgCi0gICAgMjMzLCAxMTgsIDMwLCAyMzQsIDkyLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyMzQsIDgxLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAKLSAgICAyMzMsIDIxNSwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjMzLCAyMDksIDE1LCA1LCAyMzMsIDExOCwgMzAsIDIzMywgMjEwLCAKLSAgICA5NiwgMjQxLCAxODEsIDk2LCA2MSwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjMzLCAxMTcsIDE1LCA1LCAyMzMsIDExOCwgMzAsIAotICAgIDIzMiwgMTk3LCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyMzIsIDk4LCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyMzIsIDg2LCAxNSwgCi0gICAgNSwgMjMzLCAxMTgsIDMwLCAyMzEsIDkxLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyMzEsIDkyLCA5NiwgMjQ1LCAxNTAsIDE1LCAKLSAgICA1LCAyMzMsIDExOCwgMzAsIDIzMCwgNjEsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDIyOSwgMTA3LCAxNSwgNSwgMjMzLCAxMTgsIAotICAgIDMwLCAyMjAsIDY0LCA5NiwgMjE4LCA0MywgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjIwLCAxMCwgOTYsIDI0MiwgMTkxLCA5NiwgCi0gICAgMjQ1LCA4NywgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjIwLCAxMCwgOTYsIDI0MiwgMTkxLCAyMTYsIDIzOSwgMTUsIDUsIAotICAgIDIzMywgMTE4LCAzMCwgMjE5LCAyMjMsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDIxOSwgMjI0LCA5NiwgMjE5LCAyMjMsIDE1LCAKLSAgICA1LCAyMzMsIDExOCwgMzAsIDIxOCwgNDMsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDIxNywgODQsIDE1LCA1LCAyMzMsIDExOCwgCi0gICAgMzAsIDIxNywgNzIsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDIxNywgMjMsIDk2LCAxMTUsIDk2LCAyMTgsIDg0LCA5NiwgMTk3LCAKLSAgICAxNSwgNSwgMjMzLCAxMTgsIDMwLCA3MCwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMTA0LCA5NiwgNjEsIDE1LCA1LCAyMzMsIAotICAgIDExOCwgMzAsIDEwNCwgOTYsIDEwNCwgOTYsIDcwLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyMTQsIDIzMSwgOTYsIDI1MywgCi0gICAgMjMxLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyMTQsIDIxOSwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjE0LCAxMjYsIDE1LCA1LCAKLSAgICAyMzMsIDExOCwgMjE4LCAyMzMsIDE1LCA1LCAyMzMsIDExNSwgMTUsIDUsIDIzMywgMTE2LCAzMCwgMjIwLCA2MywgMTUsIDUsIAotICAgIDIzMywgMTE2LCAzMCwgMjIwLCA2NCwgOTYsIDIxOCwgNDMsIDE1LCA1LCAyMzMsIDExNiwgMjQyLCA5NCwgMTUsIDUsIDIzMywgCi0gICAgMTE2LCAyNDIsIDk1LCAxMTcsIDIzMywgMTE2LCAyNDIsIDk1LCAyMjAsIDYzLCAxNSwgNSwgMjMzLCAxMTEsIDE1LCA1LCAKLSAgICAyMzMsIDEwNCwgMTUsIDUsIDIzMywgMTA1LCAzMCwgMjMzLCAxMDQsIDE1LCA1LCAyMzMsIDEwMiwgMTUsIDUsIDIzMywgCi0gICAgMTAzLCAzMCwgMjMzLCAxOTYsIDE1LCA1LCAyMzMsIDEwMywgMzAsIDIzMywgMTk3LCA5NiwgMjIyLCAxNDAsIDE1LCA1LCAKLSAgICAyMzIsIDI0MSwgMTUsIDUsIDIzMiwgMjI2LCAxNSwgNSwgMjMyLCAyMTYsIDE1LCA1LCAyMzIsIDE5NywgMTUsIDUsIDIzMiwgCi0gICAgOTgsIDE1LCA1LCAyMzIsIDk5LCAzMCwgMjUyLCAxNzYsIDE1LCA1LCAyMzIsIDk2LCAxNSwgNSwgMjMyLCA5NywgMzAsIAotICAgIDI1NCwgMTc4LCAxNSwgNSwgMjMyLCA5NywgMzAsIDI1MiwgMTc2LCAxNSwgNSwgMjMyLCA5NywgMzAsIDI0NSwgNzIsIDE1LCAKLSAgICA1LCAyMzIsIDk3LCAzMCwgMjQ1LCA3MywgMjE2LCAyMzksIDE1LCA1LCAyMzIsIDk3LCAzMCwgMjQzLCAxMDUsIDIxNiwgCi0gICAgMjM5LCAxNSwgNSwgMjMyLCA5NywgMzAsIDI0MSwgMTgxLCAzMCwgMjUyLCAxNzYsIDE1LCA1LCAyMzIsIDk3LCAzMCwgMjM2LCAKLSAgICAxNiwgMTUsIDUsIDIzMiwgOTcsIDMwLCAyMzUsIDEsIDE1LCA1LCAyMzIsIDk3LCAzMCwgMjM0LCAyNTUsIDE1LCA1LCAyMzIsIAotICAgIDk3LCAzMCwgMjM1LCAwLCA5NiwgMjUzLCAyMzEsIDE1LCA1LCAyMzIsIDk3LCAzMCwgMjM0LCA5MiwgMTUsIDUsIDIzMiwgCi0gICAgOTcsIDMwLCAyMzMsIDEzNiwgOTYsIDI1MywgMjMxLCAxNSwgNSwgMjMyLCA5NywgMzAsIDIzMywgMTE3LCAxNSwgNSwgMjMyLCAKLSAgICA5NywgMzAsIDIzMSwgOTIsIDk2LCAyNDUsIDE1MCwgMTUsIDUsIDIzMiwgOTcsIDMwLCAyMjksIDEwNywgMTUsIDUsIDIzMiwgCi0gICAgOTcsIDMwLCAyMjcsIDIzNywgMTUsIDUsIDIzMiwgOTcsIDMwLCAyMTksIDE5MiwgOTYsIDI1MywgMjMxLCAxNSwgNSwgMjMyLCAKLSAgICA5NywgMzAsIDIxOSwgMTc0LCA5NiwgMjUxLCAxMjUsIDE1LCA1LCAyMzIsIDk3LCAzMCwgMjE1LCAxMTMsIDE1LCA1LCAyMzIsIAotICAgIDk3LCAyMTYsIDIzOSwgMTUsIDUsIDIzMiwgOTcsIDI0OSwgMTI1LCAyMzIsIDk2LCAxNSwgNSwgMjMyLCA5NywgMjI2LCAKLSAgICAxNjQsIDIzMiwgOTYsIDE1LCA1LCAyMzIsIDk3LCAyMTgsIDIzMywgMTUsIDUsIDIzMiwgOTcsIDIyMCwgNDUsIDE1LCA1LCAKLSAgICAyMzIsIDk1LCAxNSwgNSwgMjMyLCA5MSwgMTUsIDUsIDIzMiwgOTIsIDExNywgMjMyLCA5MSwgMTUsIDUsIDIzMiwgOTIsIAotICAgIDIyNiwgMTY0LCAyMzIsIDkxLCAxNSwgNSwgMjMyLCA5MiwgMjIwLCA0NSwgMTUsIDUsIDIzMiwgODksIDE1LCA1LCAyMzIsIAotICAgIDg2LCAxNSwgNSwgMjMyLCA4NCwgMTUsIDUsIDIzMiwgODUsIDExNywgMjMyLCA4NCwgMTUsIDUsIDIzMiwgODUsIDExNywgCi0gICAgMjMyLCA4NSwgMjQzLCA5NywgMTE3LCAyNDMsIDk2LCAxNSwgNSwgMTg0LCAxNSwgNSwgMjMxLCAyMzksIDMwLCAyMTcsIDcyLCAKLSAgICAxNSwgNSwgMjMxLCAyMzksIDI0MiwgOTQsIDE1LCA1LCAyMzEsIDIzOCwgMTUsIDUsIDIzMSwgMjEwLCAxNSwgNSwgMjMxLCAKLSAgICAxNjYsIDE1LCA1LCAyMzEsIDE0NywgMTUsIDUsIDIzMSwgMTQ2LCAxNSwgNSwgMjMxLCA5MSwgMTUsIDUsIDIzMSwgNDcsIAotICAgIDE1LCA1LCAyMzAsIDIzMCwgMTUsIDUsIDIzMCwgMTg4LCAxNSwgNSwgMjMwLCAxMDIsIDE1LCA1LCAyMzAsIDEwMywgMTE3LCAKLSAgICAyMzAsIDEwMiwgMTUsIDUsIDIzMCwgOTMsIDE1LCA1LCAyMzAsIDk0LCAyNDIsIDk0LCAxNSwgNSwgMjMwLCA3OCwgMTUsIDUsIAotICAgIDIzMCwgNjQsIDE1LCA1LCAyMzAsIDYxLCAxNSwgNSwgMjMwLCA2MiwgMzAsIDYxLCAxNSwgNSwgMjMwLCA2MiwgMzAsIDIzMywgCi0gICAgMTk2LCAxNSwgNSwgMjMwLCA2MiwgMzAsIDIxMCwgMTE2LCAxNSwgNSwgMjMwLCA2MiwgMTE3LCAyMzAsIDYxLCAxNSwgNSwgCi0gICAgMjMwLCA2MiwgMTE3LCAyMzAsIDYyLCAzMCwgMTE1LCA5NiwgMTk3LCAxNSwgNSwgMjMwLCA2MiwgMjQ5LCAxMjUsIDIzMCwgCi0gICAgNjEsIDE1LCA1LCAyMzAsIDU5LCAxNSwgNSwgMjMwLCA2MCwgMzAsIDYxLCAxNSwgNSwgMjMwLCA2MCwgMzAsIDExNSwgOTYsIAotICAgIDI0OCwgMywgMTUsIDUsIDIzMCwgNjAsIDMwLCAyNDgsIDMsIDE1LCA1LCAyMzAsIDYwLCAyNDIsIDk0LCAxNSwgNSwgMTk3LCAKLSAgICAxNSwgNSwgMjI5LCAyMjcsIDE1LCA1LCAyMjksIDIxNiwgMTUsIDUsIDIyOSwgMjE3LCAyMzUsIDE5MiwgMTUsIDUsIDIyOSwgCi0gICAgMjE3LCAzMCwgMjE5LCAyMjYsIDIxNiwgMjM5LCAxNSwgNSwgMjI5LCAyMTcsIDIyNiwgMTY0LCAyMjksIDIxNiwgMTUsIDUsIAotICAgIDIyOSwgMjE1LCAxNSwgNSwgMjI5LCAyMDgsIDIyNywgMTgwLCAxNSwgNSwgMjI5LCAyMDcsIDE1LCA1LCAyMjksIDIwNiwgCi0gICAgMTUsIDUsIDIyOSwgMTA3LCAxNSwgNSwgMjI5LCAxMDgsIDMwLCA2MSwgMTUsIDUsIDIyOSwgMTA4LCAzMCwgMjE0LCAyMTksIAotICAgIDE1LCA1LCAyMjksIDEwOCwgMjIwLCA0NSwgMTUsIDUsIDIyOCwgMjMzLCAxNSwgNSwgMjI4LCAyMzQsIDMwLCA3NSwgMTUsIAotICAgIDUsIDIyOCwgMjMyLCAxNSwgNSwgMjI4LCAyMDMsIDE1LCA1LCAyMjgsIDIwNCwgMzAsIDI0MywgMTA1LCAyMTYsIDIzOSwgCi0gICAgMTUsIDUsIDIyOCwgMjA0LCAzMCwgMjQzLCA5NywgOTYsIDI0MywgMTA1LCAyMTYsIDIzOSwgMTUsIDUsIDIyOCwgMjAxLCAKLSAgICAxNSwgNSwgMjI4LCAyMDIsIDMwLCAyNTQsIDEyMywgMTUsIDUsIDIyOCwgMjAyLCAzMCwgMjUzLCAyMzEsIDE1LCA1LCAyMjgsIAotICAgIDIwMiwgMzAsIDI1MywgMjMyLCA5NiwgMjUzLCAyMzEsIDE1LCA1LCAyMjgsIDIwMiwgMzAsIDI0MiwgMTAzLCAxNSwgNSwgCi0gICAgMjI4LCAyMDIsIDMwLCAyMzEsIDkyLCA5NiwgMjQzLCAxMDUsIDIxNiwgMjM5LCAxNSwgNSwgMjI4LCAyMDIsIDMwLCAyMjksIAotICAgIDEwNywgMTUsIDUsIDIyOCwgMjAyLCAzMCwgMjI3LCAxOTQsIDE1LCA1LCAyMjgsIDIwMiwgMzAsIDIyMCwgNjMsIDE1LCA1LCAKLSAgICAyMjgsIDIwMiwgMzAsIDIyMCwgNjQsIDk2LCAxMTUsIDI1NCwgMTIzLCAxNSwgNSwgMjI4LCAyMDIsIDMwLCAyMjAsIDY0LCAKLSAgICA5NiwgMjUzLCAyMzEsIDE1LCA1LCAyMjgsIDIwMiwgMzAsIDIyMCwgNjQsIDk2LCAyNTMsIDIzMiwgOTYsIDI1MywgMjMxLCAKLSAgICAxNSwgNSwgMjI4LCAyMDIsIDMwLCAyMTQsIDIzMSwgOTYsIDI1MywgMjMxLCAxNSwgNSwgMjI4LCAyMDIsIDMwLCAyMTQsIAotICAgIDEyNiwgMTUsIDUsIDIyOCwgMTkwLCAxNSwgNSwgMjI3LCAyMzcsIDE1LCA1LCAyMjcsIDIxMCwgMTUsIDUsIDIyNywgMTk0LCAKLSAgICAxNSwgNSwgMjI3LCAxOTUsIDIzMywgMTE2LCAzMCwgMjQzLCA5NiwgMTUsIDUsIDIyNywgMTk1LCAyMzMsIDExNiwgMzAsIAotICAgIDIzMSwgMTQ3LCAxNSwgNSwgMjI3LCAxOTUsIDIzMywgMTE2LCAzMCwgMjIyLCA4LCAxNSwgNSwgMjI3LCAxOTUsIDIzMywgCi0gICAgMTE2LCAzMCwgMjIyLCA5LCAxMTcsIDIyNywgMTk1LCAyMzMsIDExNiwgMzAsIDIyMiwgOCwgMTUsIDUsIDIyNywgMTk1LCAKLSAgICAyMzMsIDExNiwgMzAsIDIxNCwgMTI2LCAxNSwgNSwgMjI3LCAxOTUsIDIxNiwgMjM5LCAxNSwgNSwgMjI3LCAxOTUsIDExNywgCi0gICAgMjI3LCAxOTQsIDE1LCA1LCAyMjcsIDE5NSwgMjQ5LCAxMjUsIDIyNywgMTk0LCAxNSwgNSwgMjI3LCAxOTUsIDI0OSwgMTI1LCAKLSAgICAyMjcsIDE5NSwgMjMzLCAxMTYsIDExNywgMjMzLCAxMTUsIDE1LCA1LCAyMjcsIDE4OSwgMTUsIDUsIDIyNywgMTkwLCAyNTUsIAotICAgIDI0LCAzMCwgMjUzLCAyMjYsIDE1LCA1LCAyMjcsIDE5MCwgMjU1LCAyNCwgMzAsIDI1MiwgNiwgMTUsIDUsIDIyNywgMTkwLCAKLSAgICAyNTUsIDI0LCAzMCwgMjQ2LCA3NCwgMTUsIDUsIDIyNywgMTkwLCAyNTUsIDI0LCAzMCwgMjQyLCAxMDMsIDE1LCA1LCAyMjcsIAotICAgIDE5MCwgMjU1LCAyNCwgMzAsIDIzNiwgMzYsIDI0MiwgOTQsIDE1LCA1LCAyMjcsIDE5MCwgMjU1LCAyNCwgMzAsIDIzNCwgCi0gICAgMjU1LCAxNSwgNSwgMjI3LCAxOTAsIDI1NSwgMjQsIDMwLCAyMzMsIDEzNSwgMTUsIDUsIDIyNywgMTkwLCAyNTUsIDI0LCAKLSAgICAzMCwgMjI5LCAxMDcsIDE1LCA1LCAyMjcsIDE5MCwgMjU1LCAyNCwgMzAsIDIxOSwgMTcxLCAxNSwgNSwgMjI3LCAxOTAsIAotICAgIDI1NSwgMjQsIDMwLCAyMTQsIDIzMCwgMTUsIDUsIDIyNywgMTkwLCAyMzQsIDY2LCAzMCwgMjUyLCA2LCAxNSwgNSwgMjI3LCAKLSAgICAxOTAsIDIzNCwgNjYsIDMwLCAyNTIsIDcsIDcwLCAxNSwgNSwgMTkwLCAxNSwgNSwgMjI2LCA4MCwgMTUsIDUsIDIyNiwgNDcsIAotICAgIDE1LCA1LCAyMjYsIDIxLCAxNSwgNSwgMjI1LCAxNjEsIDE1LCA1LCAyMjUsIDEwOCwgMTUsIDUsIDIyNSwgMTA5LCAzMCwgCi0gICAgNjEsIDE1LCA1LCAyMjUsIDEwOSwgMzAsIDI1NSwgMjUsIDE1LCA1LCAyMjUsIDEwOSwgMzAsIDI1MiwgNiwgMTUsIDUsIAotICAgIDIyNSwgMTA5LCAzMCwgMjUxLCAxMjUsIDE1LCA1LCAyMjUsIDEwOSwgMzAsIDc1LCAxNSwgNSwgMjI1LCAxMDksIDMwLCA3MywgCi0gICAgMTUsIDUsIDIyNSwgMTA5LCAzMCwgMjQwLCAxMTUsIDE1LCA1LCAyMjUsIDEwOSwgMzAsIDcwLCAxNSwgNSwgMjI1LCAxMDksIAotICAgIDMwLCAyMTQsIDIzMCwgMTUsIDUsIDIyNSwgMTA5LCAyNDksIDEyNSwgMjI1LCAxMDgsIDE1LCA1LCAyMjUsIDUzLCAxNSwgNSwgCi0gICAgMjI1LCA1NCwgMzAsIDIzNCwgMjM4LCAxNSwgNSwgMjI1LCA1NCwgMzAsIDIxNCwgMjE5LCAxNSwgNSwgMjI1LCA1NCwgMzAsIAotICAgIDIxMCwgMTE2LCAxNSwgNSwgMjI1LCA1NCwgMjI2LCAxNjQsIDIyNSwgNTMsIDE1LCA1LCAyMDUsIDE1LCA1LCAyMjMsIDE4MiwgCi0gICAgMTUsIDUsIDIyMywgMzUsIDE1LCA1LCAyMjIsIDE0MCwgMTUsIDUsIDIwNiwgMTUsIDUsIDIyMiwgMjIsIDIyNywgMTgwLCAKLSAgICAxNSwgNSwgMjIyLCAyMSwgMTUsIDUsIDIyMiwgMjIsIDMwLCA2MSwgMTUsIDUsIDIyMiwgMjIsIDMwLCAyNDYsIDc4LCAxNSwgCi0gICAgNSwgMjIyLCAyMiwgMzAsIDI0NiwgNzYsIDE1LCA1LCAyMjIsIDIyLCAzMCwgMTYyLCAxNSwgNSwgMjIyLCAyMiwgMzAsIAotICAgIDIzNCwgMjQyLCAxNSwgNSwgMjIyLCAyMiwgMzAsIDIzMywgMTk2LCAxNSwgNSwgMjIyLCAyMiwgMzAsIDIzMiwgODQsIDE1LCAKLSAgICA1LCAyMjIsIDIyLCAzMCwgMjMwLCAyMzAsIDE1LCA1LCAyMjIsIDIyLCAzMCwgMjI3LCAxOTQsIDE1LCA1LCAyMjIsIDIyLCAKLSAgICAzMCwgMjIyLCA4LCAxNSwgNSwgMjIyLCAyMiwgMzAsIDIyMCwgMzAsIDE1LCA1LCAyMjIsIDIyLCAzMCwgMjE3LCA5MywgMTUsIAotICAgIDUsIDIyMiwgMjIsIDMwLCAyMTQsIDIzMCwgMTUsIDUsIDIyMiwgMjIsIDMwLCAyMTQsIDIyNSwgMTUsIDUsIDIyMiwgMjIsIAotICAgIDMwLCAyMTQsIDE5NywgMTUsIDUsIDIyMiwgMjIsIDMwLCAyMTQsIDE1MCwgMTUsIDUsIDIyMiwgMjIsIDMwLCAyMTQsIDEyNiwgCi0gICAgMTUsIDUsIDIyMiwgMjIsIDExNywgMjIyLCAyMSwgMTUsIDUsIDIyMiwgMjIsIDI0MiwgOTQsIDE1LCA1LCAyMjIsIDgsIDE1LCAKLSAgICA1LCAyMjIsIDksIDIzMywgMTE4LCAzMCwgMjUzLCAyMjksIDE1LCA1LCAyMjEsIDIzOSwgMTUsIDUsIDIyMSwgMjMxLCAxNSwgCi0gICAgNSwgMjIwLCAxMDIsIDE1LCA1LCAyMjAsIDEwMCwgMTUsIDUsIDIyMCwgMTAxLCAzMCwgNjEsIDE1LCA1LCAyMjAsIDEwMSwgCi0gICAgMzAsIDI1MiwgMTc2LCAxNSwgNSwgMjIwLCAxMDEsIDMwLCAyNDIsIDE5MCwgMTUsIDUsIDIyMCwgMTAxLCAzMCwgMjI5LCAKLSAgICAxMDcsIDE1LCA1LCAyMjAsIDEwMSwgMzAsIDIxOSwgMjIzLCAxNSwgNSwgMjIwLCAxMDEsIDMwLCAyMTUsIDk4LCAxNSwgNSwgCi0gICAgMjIwLCAxMDEsIDMwLCA3MCwgMTUsIDUsIDIyMCwgMTAxLCAzMCwgMTA0LCA5NiwgNjEsIDE1LCA1LCAyMjAsIDk5LCAxNSwgCi0gICAgNSwgMjIwLCA5NywgMTUsIDUsIDIyMCwgNzgsIDE1LCA1LCAyMjAsIDYzLCAxNSwgNSwgMjIwLCA2NCwgMjQwLCAyMjIsIDE1LCAKLSAgICA1LCAyMjAsIDY0LCAxMTcsIDIyMCwgNjQsIDI0MywgMTI3LCAxMTcsIDI0MywgMTI3LCAyNDMsIDk3LCAxMTcsIDI0MywgOTYsIAotICAgIDE1LCA1LCAyMjAsIDY0LCAxMTcsIDIyMCwgNjQsIDIxNywgOTQsIDExNywgMjE3LCA5NCwgMjQzLCA5NywgMTE3LCAyNDMsIAotICAgIDk2LCAxNSwgNSwgMjIwLCA1NiwgMTUsIDUsIDIyMCwgNTEsIDE1LCA1LCAyMjAsIDQ4LCAxNSwgNSwgMjIwLCA0NywgMTUsIAotICAgIDUsIDIyMCwgNDQsIDE1LCA1LCAyMjAsIDMwLCAxNSwgNSwgMjIwLCAzMSwgMzAsIDYxLCAxNSwgNSwgMjIwLCAzMSwgMzAsIAotICAgIDIzNiwgMTYsIDE1LCA1LCAyMjAsIDI0LCAxNSwgNSwgMjIwLCAyNSwgMzAsIDYxLCAxNSwgNSwgMjIwLCAyNSwgMzAsIDI1MiwgCi0gICAgMTYxLCAxNSwgNSwgMjIwLCAyNSwgMzAsIDI1MSwgMTA5LCAxNSwgNSwgMjIwLCAyNSwgMzAsIDI0NywgMjA2LCAxNSwgNSwgCi0gICAgMjIwLCAyNSwgMzAsIDI0MywgOTYsIDE1LCA1LCAyMjAsIDI1LCAzMCwgMjM2LCAzNSwgMTUsIDUsIDIyMCwgMjUsIDMwLCAKLSAgICAyMzYsIDM2LCAyNDIsIDk0LCAxNSwgNSwgMjIwLCAyNSwgMzAsIDIzMywgMTkxLCAxNSwgNSwgMjIwLCAyNSwgMzAsIDIzMiwgCi0gICAgODYsIDE1LCA1LCAyMjAsIDI1LCAzMCwgMjMwLCA5MywgMTUsIDUsIDIyMCwgMjUsIDMwLCAyMjIsIDgsIDE1LCA1LCAyMjAsIAotICAgIDE4LCAxNSwgNSwgMjIwLCAxMywgMTUsIDUsIDIyMCwgMTQsIDIxNiwgMjM5LCAxNSwgNSwgMjIwLCAxNCwgMTE3LCAyMjAsIAotICAgIDE0LCAyNTEsIDk5LCAxMTcsIDI1MSwgOTgsIDE1LCA1LCAyMjAsIDksIDE1LCA1LCAyMTksIDIyNSwgMTUsIDUsIDIxOSwgCi0gICAgMjI2LCAxMTcsIDIzNSwgMTkzLCAyMTksIDIyNSwgMTUsIDUsIDIxOSwgMjIzLCAxNSwgNSwgMjE5LCAyMjIsIDE1LCA1LCAKLSAgICAyMTksIDE5MSwgMTUsIDUsIDIxOSwgMTkyLCAyNDIsIDk0LCAxNSwgNSwgMjE5LCAxODIsIDE1LCA1LCAyMTksIDE4MCwgMTUsIAotICAgIDUsIDIxOSwgMTgxLCAxMTcsIDIxOSwgMTgxLCAyMTksIDIyMywgMTUsIDUsIDIxOSwgMTczLCAxNSwgNSwgMjE5LCAxNzEsIAotICAgIDE1LCA1LCAyMTgsIDgzLCAxNSwgNSwgMjE4LCA4NCwgMTE3LCAyMTgsIDgzLCAxNSwgNSwgMjE4LCA1NCwgMTUsIDUsIDIxOCwgCi0gICAgNTMsIDE1LCA1LCAyMTgsIDUxLCAxNSwgNSwgMjE4LCA0MywgMTUsIDUsIDIxOCwgNDIsIDE1LCA1LCAyMTgsIDE3LCAxNSwgCi0gICAgNSwgMjE4LCAxNiwgMTUsIDUsIDIxNywgMTA1LCAxNSwgNSwgMjE3LCAxMDYsIDI1MywgMjE2LCAxNSwgNSwgMjE3LCAxMDYsIAotICAgIDMwLCAyNDEsIDE4MCwgMTUsIDUsIDIxNywgMTA2LCAzMCwgMjMwLCAyMzAsIDE1LCA1LCAyMTcsIDEwNiwgMjQyLCA5NCwgCi0gICAgMTUsIDUsIDIxNywgOTMsIDE1LCA1LCAyMTcsIDk0LCAxMTcsIDIxNywgOTQsIDIyOCwgMjM0LCAxMTcsIDIyOCwgMjM0LCAKLSAgICAyNDcsIDE4OCwgMTE3LCAyNDcsIDE4NywgMTUsIDUsIDIxNywgOTQsIDIxOCwgMjMzLCAxNSwgNSwgMjE3LCA4NCwgMTUsIDUsIAotICAgIDEyOSwgMzAsIDI1MiwgNiwgMTUsIDUsIDEyOSwgMzAsIDI0MiwgMTAzLCAxNSwgNSwgMTI5LCAzMCwgMjIwLCA2MywgMTUsIAotICAgIDUsIDEyOSwgMzAsIDIxOSwgMjI1LCAxNSwgNSwgMTI5LCAzMCwgMjE1LCAxMTMsIDE1LCA1LCAxMjksIDMwLCAyMTQsIDIxOSwgCi0gICAgMTUsIDUsIDIxNywgNzIsIDE1LCA1LCAyMTcsIDUwLCAxNSwgNSwgMjE3LCAyMiwgMTUsIDUsIDIxNywgMjMsIDI0MiwgOTQsIAotICAgIDE1LCA1LCAyMTYsIDExNywgMTUsIDUsIDIxNiwgMTE4LCAyMTYsIDIzOSwgMTUsIDUsIDIxNiwgOTAsIDE1LCA1LCAyMTYsIAotICAgIDcyLCAxNSwgNSwgMjE2LCA3MywgMzAsIDIxNywgNzIsIDE1LCA1LCAyMTYsIDczLCAxMTcsIDIxNiwgNzIsIDE1LCA1LCAKLSAgICAyMTYsIDczLCAxMTcsIDIxNiwgNzMsIDI0MywgMTI3LCAxMTcsIDI0MywgMTI3LCAyNDMsIDk3LCAxMTcsIDI0MywgOTYsIAotICAgIDE1LCA1LCAyMTUsIDExOCwgMTUsIDUsIDIxNSwgMTEzLCAxNSwgNSwgMjE1LCAxMTEsIDE1LCA1LCAyMTUsIDEwOCwgMTUsIAotICAgIDUsIDIxNSwgOTgsIDE1LCA1LCAyMTUsIDk5LCAxMTcsIDIxNSwgOTksIDIxMCwgMTE3LCAxMTcsIDIxMCwgMTE2LCAxNSwgNSwgCi0gICAgNzAsIDE1LCA1LCAxMDQsIDI0MiwgMTAzLCAxNSwgNSwgMTA0LCAxMDQsIDcwLCAxNSwgNSwgMTA0LCAxMTcsIDEwNCwgMjI2LCAKLSAgICA5MCwgMTE3LCAyMjYsIDkwLCAyNDMsIDk3LCAxMTcsIDI0MywgOTYsIDE1LCA1LCAxMDQsIDExNywgMTA0LCAyMTgsIDE4LCAKLSAgICAxMTcsIDIxOCwgMTcsIDE1LCA1LCAxMDQsIDExNywgMTA0LCAxMDQsIDIyMywgNDksIDExNywgMTA0LCAyMjMsIDQ4LCAxNSwgCi0gICAgNSwgMjE0LCAyMzAsIDE1LCA1LCAyMTQsIDIyNSwgMTUsIDUsIDIxNCwgMjE5LCAxNSwgNSwgMjE0LCAyMjAsIDIzMywgMTkxLCAKLSAgICAxNSwgNSwgMjE0LCAyMjAsIDMwLCAyNTIsIDE3NiwgMTUsIDUsIDIxNCwgMjIwLCAzMCwgMjMwLCAyMzAsIDE1LCA1LCAyMTQsIAotICAgIDIyMCwgMzAsIDEwNCwgOTYsIDEwNCwgOTYsIDcwLCAxNSwgNSwgMjE0LCAyMjAsIDMwLCAxMDQsIDk2LCAxMDQsIDk2LCAKLSAgICAxMDQsIDI0MiwgOTQsIDE1LCA1LCAyMTQsIDIyMCwgMjQyLCA5NCwgMTUsIDUsIDIxNCwgMjIwLCAyMjAsIDQ1LCAxNSwgNSwgCi0gICAgMjE0LCAyMjAsIDIyMCwgNDYsIDMwLCAyNTIsIDE3NiwgMTUsIDUsIDIxNCwgMjE1LCAxNSwgNSwgMjE0LCAxOTcsIDE1LCA1LCAKLSAgICAyMTQsIDE5OCwgMzAsIDIzMywgMTE3LCAxNSwgNSwgMjE0LCAxOTgsIDMwLCAyMzEsIDkyLCA5NiwgMjQ4LCAyMjEsIDE1LCAKLSAgICA1LCAyMTQsIDE5OCwgMzAsIDIyMCwgMTAwLCAxNSwgNSwgMjE0LCAxOTgsIDMwLCA3MCwgMTUsIDUsIDIxNCwgMTk2LCAxNSwgCi0gICAgNSwgMjE0LCAxOTIsIDE1LCA1LCAyMTQsIDE5MywgMzAsIDIzNCwgMjA3LCAxNSwgNSwgMjE0LCAxOTMsIDMwLCAxOTAsIDE1LCAKLSAgICA1LCAyMTQsIDE5MCwgMTUsIDUsIDIxNCwgMTkxLCAyNDIsIDk0LCAxNSwgNSwgMjE0LCAxNTAsIDE1LCA1LCAyMTQsIDE1MSwgCi0gICAgMjQ5LCAxMjUsIDIxNCwgMTUwLCAxNSwgNSwgMjE0LCAxNTEsIDIyMCwgNDUsIDE1LCA1LCAyMTQsIDE0OCwgMTUsIDUsIAotICAgIDIxNCwgMTQ5LCAzMCwgMTE1LCA5NiwgMTYyLCAxNSwgNSwgMjE0LCAxNDksIDMwLCAxMTUsIDk2LCAxOTcsIDE1LCA1LCAKLSAgICAyMTQsIDE0OSwgMzAsIDI1NCwgMTc4LCAxNSwgNSwgMjE0LCAxNDksIDMwLCAxNjIsIDE1LCA1LCAyMTQsIDE0OSwgMzAsIAotICAgIDIyNywgMTk0LCAxNSwgNSwgMjE0LCAxNDksIDMwLCAyMTQsIDIzMCwgMTUsIDUsIDIxNCwgMTQ5LCAzMCwgMjE0LCAyMzEsIAotICAgIDk2LCAyNTMsIDIzMSwgMTUsIDUsIDIxNCwgMTQ5LCAzMCwgMjE0LCAyMzEsIDk2LCAyNTIsIDYsIDE1LCA1LCAyMTQsIDE0NywgCi0gICAgMTUsIDUsIDIxNCwgMTQ0LCAxNSwgNSwgMjE0LCAxNDMsIDE1LCA1LCAyMTQsIDEzOSwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgCi0gICAgNjEsIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDI1MywgMjI2LCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAxMzAsIDE1LCA1LCAyMTQsIAotICAgIDE0MCwgMzAsIDI0NiwgNjgsIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDI0MywgMTM1LCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAKLSAgICAyNDMsIDExOCwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMjQzLCAxMDUsIDIxNiwgMjM5LCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAKLSAgICAyNDMsIDk2LCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAyNDIsIDExMywgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMTYyLCAxNSwgNSwgCi0gICAgMjE0LCAxNDAsIDMwLCAyMzYsIDM1LCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAyMzYsIDE2LCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAKLSAgICAyMzUsIDE2NSwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMjM0LCA5MiwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMjMyLCA4NCwgMTUsIAotICAgIDUsIDIxNCwgMTQwLCAzMCwgMjMwLCAxODgsIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDE5MCwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgCi0gICAgMjIwLCA2MywgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMjE5LCAxODAsIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDIxNSwgMTE4LCAKLSAgICAxNSwgNSwgMjE0LCAxNDAsIDMwLCAxMDQsIDk2LCAyNDIsIDEwMywgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMjE0LCAyMTksIAorICAgIDE3NCwgMjEsIDE5NCwgMTc0LCAyMSwgMTk4LCAxNzQsIDIxLCAxOTUsIDE3NCwgMjEsIDIwMCwgMjE3LCA3MCwgMSwgNjEsIAorICAgIDIxNywgNzAsIDEsIDI1NSwgNzQsIDIxNywgNzAsIDEsIDczLCAyMTcsIDcwLCAxLCAyMzYsIDM0LCAyMTcsIDcwLCAxLCA3MCwgCisgICAgMjE3LCA3MCwgMSwgMjE0LCAxMTgsIDIxNywgNzAsIDEsIDc1LCAyMTcsIDcwLCAxLCAyNTQsIDIwMiwgMjE3LCA3MCwgMSwgCisgICAgNzYsIDIxNywgNzAsIDEsIDI1MywgMTkzLCAyMTcsIDcwLCAxLCAxNzYsIDIxNywgNzAsIDEsIDIzNCwgMTMzLCAyMTcsIDcwLCAKKyAgICAxLCAyNDMsIDEzNiwgMjE3LCA3MCwgMSwgMjQyLCAyNTAsIDIxNywgNzAsIDEsIDIyOSwgNzgsIDIxNywgNzAsIDEsIDI1MSwgCisgICAgMzQsIDIxNywgNzAsIDEsIDI1MCwgMTU4LCAyMTcsIDcwLCAxLCAyMzUsIDE0MiwgMjE3LCA3MCwgMSwgMjM1LCAxMTUsIAorICAgIDIxNywgNzAsIDEsIDIyNywgMTY2LCAyMTcsIDcwLCAxLCAyMTUsIDE1NywgMjE3LCA3MCwgMSwgMjE1LCAxNDUsIDIxNywgCisgICAgNzAsIDEsIDI0OCwgMTM2LCAyMTcsIDcwLCAxLCAyNDgsIDEyMCwgMjE3LCA3MCwgMSwgMjI4LCAxMTEsIDIxNywgNzAsIDEsIAorICAgIDIxNywgMTA2LCAyMTcsIDcwLCAxLCAyMTYsIDIwOSwgMjE3LCA3MCwgMSwgMjQ4LCAyMjIsIDIxNywgNzAsIDEsIDI0OCwgCisgICAgMjYsIDIxNywgNzAsIDEsIDE5NywgMjE3LCA3MCwgMSwgMTkwLCAyMTcsIDcwLCAxLCAyMjUsIDE0OCwgMjE3LCA3MCwgMSwgCisgICAgMjUyLCAxOTIsIDIxNywgNzAsIDEsIDI1MiwgMTksIDIxNywgNzAsIDEsIDE4NSwgMjE3LCA3MCwgMSwgMTkxLCAyMTcsIDcwLCAKKyAgICAxLCAyMDUsIDIxNywgNzAsIDEsIDIzMywgMTM2LCAyMTcsIDcwLCAxLCAyMTQsIDI3LCAyMTcsIDcwLCAxLCAyMjAsIDEwMywgCisgICAgMjE3LCA3MCwgMSwgMjA2LCAyMTcsIDcwLCAxLCAxNjIsIDIxNywgNzAsIDEsIDIyMiwgMTgwLCAyMTcsIDcwLCA1LCAyNTQsIAorICAgIDc2LCAyMTcsIDcwLCA1LCAyMTMsIDE0NywgMjE3LCA3MCwgMjUsIDUsIDI1NSwgNzQsIDIxNywgNzAsIDI1LCA1LCA3MywgCisgICAgMjE3LCA3MCwgMjUsIDUsIDIzNiwgMzQsIDIxNywgNzAsIDI1LCA1LCA3MCwgMjE3LCA3MCwgMjUsIDUsIDIxNCwgMTE4LCAKKyAgICAyMTcsIDcwLCAyNSwgNSwgNzUsIDIxNywgNzAsIDI1LCA1LCAyNTQsIDIwMiwgMjE3LCA3MCwgMjUsIDUsIDc2LCAyMTcsIAorICAgIDcwLCAyNSwgNSwgMjUzLCAxOTMsIDIxNywgNzAsIDUsIDIxMywgMTUyLCAyMTcsIDcwLCA1LCAyMjcsIDIwNiwgMjE3LCA3MCwgCisgICAgMjEsIDIxMCwgODYsIDIxNywgNzAsIDIxLCAxMTAsIDIxNywgNzAsIDIxLCAxMDUsIDIxNywgNzAsIDIxLCAxNTgsIDIxNywgCisgICAgNzAsIDIxLCAxNjEsIDIxNywgNzAsIDIxLCAxODksIDIxNywgNzAsIDIxLCAxOTQsIDIxNywgNzAsIDIxLCAxOTgsIDIxNywgCisgICAgNzAsIDIxLCAxOTUsIDIxNywgNzAsIDIxLCAyMDAsIDE1LCA1LCA2MSwgMTUsIDUsIDExNSwgMzAsIDYxLCAxNSwgNSwgMTE1LCAKKyAgICAzMCwgMjUyLCAxNzcsIDE1LCA1LCAxMTUsIDMwLCAyNDMsIDEwNiwgMjE2LCAyNDAsIDE1LCA1LCAxMTUsIDMwLCAxNjIsIAorICAgIDE1LCA1LCAxMTUsIDMwLCAyMzYsIDM2LCAxNSwgNSwgMTE1LCAzMCwgMjMzLCAxMTcsIDI0MiwgOTUsIDE1LCA1LCAxMTUsIAorICAgIDMwLCAyMzAsIDYyLCAxNSwgNSwgMTE1LCAzMCwgMjIyLCAyMiwgMTUsIDUsIDI1NSwgNzYsIDE1LCA1LCAyNTUsIDI2LCAxNSwgCisgICAgNSwgMjU1LCAyNywgMzAsIDI1MywgMjMwLCAxNSwgNSwgMjU1LCAyNywgMzAsIDI0NiwgNjgsIDI0MiwgOTUsIDE1LCA1LCAKKyAgICAyNTUsIDI3LCAzMCwgMjQzLCAxMTksIDE1LCA1LCAyNTUsIDI3LCAzMCwgMjQzLCAxMDYsIDIxNiwgMjQwLCAxNSwgNSwgCisgICAgMjU1LCAyNywgMzAsIDE2MiwgMTUsIDUsIDI1NSwgMjcsIDMwLCAyMzYsIDM3LCAyNDIsIDk1LCAxNSwgNSwgMjU1LCAyNywgCisgICAgMzAsIDIzNiwgMTAsIDE1LCA1LCAyNTUsIDI3LCAzMCwgMjMzLCAxMTgsIDE1LCA1LCAyNTUsIDI3LCAzMCwgMjIwLCA0OSwgCisgICAgMTUsIDUsIDI1NSwgMjcsIDMwLCAxMDQsIDk2LCAxMDQsIDk2LCA3MCwgMTUsIDUsIDI1NSwgMjcsIDI0MiwgOTUsIDE1LCA1LCAKKyAgICAyNTUsIDI0LCAxNSwgNSwgMjU1LCAyNSwgMzAsIDI1MiwgMTYxLCAxNSwgNSwgMjU1LCAyNSwgMzAsIDI0MywgMTA2LCAyMTYsIAorICAgIDI0MCwgMTUsIDUsIDI1NSwgMjUsIDMwLCAyMzEsIDkzLCA5NiwgMjQ1LCAxNTEsIDE1LCA1LCAyNTUsIDI1LCAzMCwgMjIwLCAKKyAgICAxMDEsIDE1LCA1LCAyNTUsIDI1LCAzMCwgMjE3LCA3MywgMTUsIDUsIDI1NSwgMCwgMTUsIDUsIDI1NCwgMTg3LCAxNSwgNSwgCisgICAgMjU0LCAxODgsIDMwLCAyNDUsIDg4LCAxNSwgNSwgMjU0LCAxODgsIDMwLCAyMjAsIDExLCA5NiwgMjQyLCAxOTEsIDE1LCA1LCAKKyAgICAyNTQsIDE3OSwgMTUsIDUsIDI1NCwgMTgwLCAzMCwgMjU0LCAxNzksIDE1LCA1LCAyNTQsIDE4MCwgMzAsIDI0NywgMjE3LCAKKyAgICAxNSwgNSwgMjU0LCAxODAsIDMwLCAyNDIsIDE5MSwgMTUsIDUsIDI1NCwgMTgwLCAzMCwgMTYyLCAxNSwgNSwgMjU0LCAxODAsIAorICAgIDMwLCAyMzUsIDAsIDE1LCA1LCAyNTQsIDE4MCwgMzAsIDIzNCwgOTMsIDE1LCA1LCAyNTQsIDE4MCwgMzAsIDIyMCwgNjQsIAorICAgIDE1LCA1LCAyNTQsIDE4MCwgMzAsIDIxNCwgMTI2LCAxNSwgNSwgMjU0LCAxNzYsIDE1LCA1LCAyNTQsIDE2OSwgMTUsIDUsIAorICAgIDI1NCwgMTMzLCAxNSwgNSwgMjU0LCAxMzQsIDMwLCAyMjAsIDY0LCAxNSwgNSwgMjU0LCAxMjQsIDE1LCA1LCAyNTQsIDEyNSwgCisgICAgMTE3LCAyNTQsIDEyNCwgMTUsIDUsIDI1NCwgMTI1LCAxMzQsIDIxNiwgODYsIDE1LCA1LCAyNTQsIDEyNSwgOTYsIDIyOSwgCisgICAgMjE4LCAyMjYsIDE2NSwgMjU0LCAxMjUsIDk2LCAyMjksIDIxNywgMTUsIDUsIDI1NCwgMTI1LCA5NiwgMjI5LCAyMTgsIAorICAgIDIxOCwgMjM0LCAxNSwgNSwgMjU0LCA5NSwgMTUsIDUsIDI1NCwgNjgsIDE1LCA1LCAyNTQsIDM2LCAxNSwgNSwgMjU0LCAzNywgCisgICAgMzAsIDIzMywgMTk3LCAxNSwgNSwgMjU0LCA5LCAxNSwgNSwgMjUzLCAyMzcsIDE1LCA1LCAyNTMsIDIzMiwgMTUsIDUsIAorICAgIDI1MywgMjMzLCAyMTAsIDQwLCAyMTYsIDI0MCwgMTUsIDUsIDI1MywgMjMzLCAyMzUsIDQsIDIxNiwgMjQwLCAxNSwgNSwgCisgICAgMjUzLCAyMzMsIDExNywgMjUzLCAyMzMsIDIxNSwgMTE1LCAxMTcsIDIxNSwgMTE1LCAyMTUsIDExNSwgMTE3LCAyMTUsIAorICAgIDExNSwgMjI2LCAyMiwgMTUsIDUsIDI1MywgMjMzLCAxMTcsIDI1MywgMjMzLCAxMTcsIDI1MywgMjMyLCAxNSwgNSwgMjUzLCAKKyAgICAyMzMsIDExNywgMjUzLCAyMzMsIDExNywgMjUzLCAyMzMsIDI0OSwgMTI2LCAyNTMsIDIzMywgMTE3LCAyNTMsIDIzMywgCisgICAgMTE3LCAyNTMsIDIzMiwgMTUsIDUsIDI1MywgMjMwLCAxNSwgNSwgMjUzLCAyMjcsIDE1LCA1LCAyNTIsIDE5MiwgMTUsIDUsIAorICAgIDI1MiwgMTc3LCAxNSwgNSwgMjUyLCAxNzIsIDE1LCA1LCAyNTIsIDE2OCwgMTUsIDUsIDI1MiwgMTYyLCAxNSwgNSwgMjUyLCAKKyAgICAxNjMsIDExNywgMjUyLCAxNjIsIDE1LCA1LCAyNTIsIDE2MSwgMTUsIDUsIDEzMCwgMTUsIDUsIDI1MiwgMTQxLCAxNSwgNSwgCisgICAgMjUyLCA3LCAxNSwgNSwgMjUyLCA4LCAzMCwgNjEsIDE1LCA1LCAyNTIsIDgsIDMwLCAyNDMsIDk3LCAxNSwgNSwgMjUyLCA4LCAKKyAgICAzMCwgMjM2LCAzNywgMjQyLCA5NSwgMTUsIDUsIDI1MSwgMTI2LCAxNSwgNSwgMjUxLCAxMjcsIDExNywgMjUxLCAxMjcsIAorICAgIDI1NSwgMjYsIDE1LCA1LCAyNTEsIDEyNywgMTE3LCAyNTEsIDEyNywgMjE0LCAxOTAsIDE1LCA1LCAyNTEsIDEyNywgMjQ5LCAKKyAgICAxMjYsIDI1MSwgMTI2LCAxNSwgNSwgMjUxLCAxMTAsIDE1LCA1LCAyNTEsIDExMSwgMTE3LCAyNTEsIDExMCwgMTUsIDUsIAorICAgIDI1MSwgOTksIDE1LCA1LCAyNTEsIDk4LCAxNSwgNSwgMjQ4LCAyMjIsIDE1LCA1LCAyNDgsIDIxMywgMTUsIDUsIDI0OCwgCisgICAgMjE0LCAyMzQsIDY3LCAzMCwgMTE1LCA5NiwgMjMxLCAxNDgsIDE1LCA1LCAyNDgsIDIxNCwgMjM0LCA2NywgMzAsIDI1NCwgCisgICAgMTMzLCAxNSwgNSwgMjQ4LCAyMTQsIDIzNCwgNjcsIDMwLCAyNTIsIDE2MSwgMTUsIDUsIDI0OCwgMjE0LCAyMzQsIDY3LCAKKyAgICAzMCwgMjUyLCA3LCAxNSwgNSwgMjQ4LCAyMTQsIDIzNCwgNjcsIDMwLCAyNDMsIDEzNiwgMTUsIDUsIDI0OCwgMjE0LCAyMzQsIAorICAgIDY3LCAzMCwgMjQzLCAxMzcsIDk2LCAyMzEsIDE0OCwgMTUsIDUsIDI0OCwgMjE0LCAyMzQsIDY3LCAzMCwgMjQyLCAyMTUsIAorICAgIDE1LCA1LCAyNDgsIDIxNCwgMjM0LCA2NywgMzAsIDI0MiwgMTk4LCAxNSwgNSwgMjQ4LCAyMTQsIDIzNCwgNjcsIDMwLCAKKyAgICAyNDIsIDEwNCwgMTUsIDUsIDI0OCwgMjE0LCAyMzQsIDY3LCAzMCwgMTYyLCAxNSwgNSwgMjQ4LCAyMTQsIDIzNCwgNjcsIAorICAgIDMwLCAyMzUsIDE4MCwgMTUsIDUsIDI0OCwgMjE0LCAyMzQsIDY3LCAzMCwgMjM1LCAxODEsIDk2LCAyMzIsIDk5LCAxNSwgNSwgCisgICAgMjQ4LCAyMTQsIDIzNCwgNjcsIDMwLCAyMzQsIDI0MywgMTUsIDUsIDI0OCwgMjE0LCAyMzQsIDY3LCAzMCwgMjMzLCAxMzYsIAorICAgIDE1LCA1LCAyNDgsIDIxNCwgMjM0LCA2NywgMzAsIDIzMiwgOTksIDE1LCA1LCAyNDgsIDIxNCwgMjM0LCA2NywgMzAsIDIzMiwgCisgICAgMTAwLCA5NiwgMjMxLCAxNDcsIDE1LCA1LCAyNDgsIDIxNCwgMjM0LCA2NywgMzAsIDIzMiwgODUsIDE1LCA1LCAyNDgsIAorICAgIDIxNCwgMjM0LCA2NywgMzAsIDIyOSwgMTA4LCAxNSwgNSwgMjQ4LCAyMTQsIDIzNCwgNjcsIDMwLCAyMjYsIDIzLCA5NiwgCisgICAgMjI2LCAyMiwgMTUsIDUsIDI0OCwgMjE0LCAyMzQsIDY3LCAzMCwgMjE5LCAxOTIsIDE1LCA1LCAyNDgsIDIxNCwgMjM0LCAKKyAgICA2NywgMzAsIDIxNywgNzMsIDE1LCA1LCAyNDgsIDIxNCwgMjM0LCA2NywgMzAsIDIxNCwgMjMxLCA5NiwgMjQyLCAxOTgsIAorICAgIDE1LCA1LCAyNDgsIDIxNCwgMjM0LCA2NywgMzAsIDIxNCwgMTI2LCAxNSwgNSwgMjQ4LCAxODgsIDE1LCA1LCAyNDgsIDE2NywgCisgICAgMTUsIDUsIDI0OCwgMTY2LCAxNSwgNSwgMjQ4LCAxNjUsIDE1LCA1LCAyNDgsIDQsIDE1LCA1LCAyNDcsIDI0MywgMTUsIDUsIAorICAgIDI0NywgMjE4LCAxNSwgNSwgMjQ3LCAyMTksIDMwLCAyMjAsIDY0LCAxNSwgNSwgMjQ3LCAyMTcsIDE1LCA1LCAyNDcsIDIwNywgCisgICAgMTUsIDUsIDI0NywgMjA4LCAyMzQsIDIwOSwgMTA0LCAyNDIsIDk2LCAyNDcsIDE4OCwgMTUsIDUsIDI0NywgMTg4LCAxNSwgCisgICAgNSwgMjQ2LCA3OSwgMTUsIDUsIDI0NiwgODAsIDExNywgMjQ2LCA3OSwgMTUsIDUsIDI0NiwgODAsIDI0MiwgOTUsIDE1LCA1LCAKKyAgICAyNDYsIDgwLCAyMjAsIDQ2LCAxNSwgNSwgMjQ2LCA3NywgMTUsIDUsIDI0NiwgNzgsIDMwLCAyNDUsIDczLCAxNSwgNSwgCisgICAgMjQ2LCA3NiwgMTUsIDUsIDI0NiwgNzUsIDE1LCA1LCAyNDYsIDc0LCAxNSwgNSwgMjQ2LCA3MywgMTUsIDUsIDI0NiwgNjksIAorICAgIDE1LCA1LCAyNDYsIDY3LCAxNSwgNSwgMjQ2LCA2OCwgMjQyLCA5NSwgMTUsIDUsIDI0NiwgNjgsIDI0MiwgOTYsIDI0MiwgCisgICAgOTUsIDE1LCA1LCAyNDYsIDY2LCAxNSwgNSwgMjQ2LCA1OSwgMTUsIDUsIDc1LCAxNSwgNSwgMTYwLCAzMCwgMjI2LCAyMiwgCisgICAgMTUsIDUsIDE2MCwgMTE3LCAxNjAsIDIyNywgMTk2LCAxMTcsIDIyNywgMTk1LCAxNSwgNSwgMjQ1LCAyMzUsIDE1LCA1LCAKKyAgICAyNDUsIDIzNiwgMzAsIDExNSwgOTYsIDI0MiwgNTAsIDk2LCAyNDgsIDIyMiwgMTUsIDUsIDI0NSwgMjM2LCAzMCwgMjQzLCAKKyAgICA5NywgMTUsIDUsIDI0NSwgMjM2LCAzMCwgMjMwLCAyMzEsIDE1LCA1LCAyNDUsIDIzNiwgMzAsIDIyMiwgOSwgMTUsIDUsIAorICAgIDI0NSwgMjM2LCAzMCwgMjIwLCA2NCwgMTUsIDUsIDI0NSwgMjM2LCAzMCwgNzAsIDE1LCA1LCAyNDUsIDIxMiwgMTUsIDUsIAorICAgIDI0NSwgMjAxLCAxNSwgNSwgMjQ1LCAxNzUsIDE1LCA1LCAyNDUsIDE1MSwgMTUsIDUsIDI0NSwgMTUyLCAzMCwgMjQzLCAKKyAgICAxMDUsIDE1LCA1LCAyNDUsIDE1MiwgMzAsIDI0MywgMTA2LCAyMTYsIDI0MCwgMTUsIDUsIDI0NSwgMTUyLCAzMCwgMjMxLCAKKyAgICA5MiwgMTUsIDUsIDI0NSwgMTUyLCAyNDksIDEyNiwgMjQ1LCAxNTEsIDE1LCA1LCAyNDUsIDE1MiwgMjI2LCAxNjUsIDI0NSwgCisgICAgMTUxLCAxNSwgNSwgMjQ1LCAxNTIsIDIxOCwgMjM0LCAxNSwgNSwgMjQ1LCA5MCwgMTUsIDUsIDI0NSwgODgsIDE1LCA1LCAKKyAgICAyNDUsIDczLCAxNSwgNSwgMjQ1LCAxMSwgMTUsIDUsIDI0NSwgMTIsIDMwLCA2MSwgMTUsIDUsIDI0NSwgMTIsIDMwLCAxMTUsIAorICAgIDk2LCAyMzMsIDEwNSwgMTUsIDUsIDI0NSwgMTIsIDMwLCAxMTUsIDk2LCAyMzMsIDEwNiwgMzAsIDIzMywgMTA1LCAxNSwgNSwgCisgICAgMjQ1LCAxMiwgMzAsIDI1NCwgMTI0LCAxNSwgNSwgMjQ1LCAxMiwgMzAsIDI1MiwgMTc3LCAxNSwgNSwgMjQ1LCAxMiwgMzAsIAorICAgIDI0NiwgNjgsIDI0MiwgOTUsIDE1LCA1LCAyNDUsIDEyLCAzMCwgMjQ2LCA2OCwgMjQyLCA5NiwgMjQyLCA5NSwgMTUsIDUsIAorICAgIDI0NSwgMTIsIDMwLCAxNjIsIDE1LCA1LCAyNDUsIDEyLCAzMCwgMjQyLCA1MCwgMjQyLCA5NSwgMTUsIDUsIDI0NSwgMTIsIAorICAgIDMwLCAyMzYsIDM3LCAyNDIsIDk1LCAxNSwgNSwgMjQ1LCAxMiwgMzAsIDIzNCwgMjA4LCAxNSwgNSwgMjQ1LCAxMiwgMzAsIAorICAgIDIzNCwgMjA5LCAyMTgsIDIzNCwgMTUsIDUsIDI0NSwgMTIsIDMwLCAyMzMsIDIxNiwgMTUsIDUsIDI0NSwgMTIsIDMwLCAKKyAgICAyMzMsIDEzNiwgMTUsIDUsIDI0NSwgMTIsIDMwLCAyMzMsIDEwNiwgMzAsIDIzMywgMTA1LCAxNSwgNSwgMjQ1LCAxMiwgMzAsIAorICAgIDIzMiwgMjQyLCAxNSwgNSwgMjQ1LCAxMiwgMzAsIDIzMiwgOTksIDE1LCA1LCAyNDUsIDEyLCAzMCwgMjE0LCAyMzAsIDE1LCAKKyAgICA1LCAyNDUsIDEyLCAzMCwgMjE0LCAyMTksIDE1LCA1LCAyNDMsIDEzNiwgMTUsIDUsIDI0MywgMTM3LCAyNDIsIDk1LCAxNSwgCisgICAgNSwgMjQzLCAxMzQsIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDExNSwgOTYsIDI0OCwgMjIzLCA5NiwgMTYyLCAxNSwgNSwgMjQzLCAKKyAgICAxMzUsIDMwLCAxMTUsIDk2LCAxNjIsIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDExNSwgOTYsIDIzNiwgMzYsIDE1LCA1LCAyNDMsIAorICAgIDEzNSwgMzAsIDI1NSwgMjUsIDIxNiwgMjQxLCA5NiwgMjE3LCA5NCwgMTUsIDUsIDI0MywgMTM1LCAzMCwgMjU0LCAxMjQsIAorICAgIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDI1MywgMjMyLCAxNSwgNSwgMjQzLCAxMzUsIDMwLCAyNTMsIDIzMSwgOTYsIDI0MywgCisgICAgMTE5LCAxNSwgNSwgMjQzLCAxMzUsIDMwLCAyNTIsIDE3NywgMTUsIDUsIDI0MywgMTM1LCAzMCwgMjUyLCAxNDIsIDk2LCAKKyAgICAyMDUsIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDI1MSwgOTksIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDI1MSwgMTAwLCA5NiwgCisgICAgMjA1LCAxNSwgNSwgMjQzLCAxMzUsIDMwLCAyNDgsIDIyMiwgMTUsIDUsIDI0MywgMTM1LCAzMCwgMjQ4LCA0LCAxNSwgNSwgCisgICAgMjQzLCAxMzUsIDMwLCAyNDcsIDIxOSwgMzAsIDIyMCwgNjQsIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDI0NiwgNzcsIDE1LCA1LCAKKyAgICAyNDMsIDEzNSwgMzAsIDI0NSwgMTc1LCAxNSwgNSwgMjQzLCAxMzUsIDMwLCAyNDUsIDE3NiwgOTYsIDIzMywgMTM2LCAxNSwgCisgICAgNSwgMjQzLCAxMzUsIDMwLCAyNDUsIDE1MSwgMTUsIDUsIDI0MywgMTM1LCAzMCwgMjQ1LCAxNTIsIDMwLCAyNDMsIDEwNiwgCisgICAgMjE2LCAyNDAsIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDI0MywgMTA2LCAyMTYsIDI0MCwgMTUsIDUsIDI0MywgMTM1LCAzMCwgCisgICAgMjQzLCA5NywgMTUsIDUsIDI0MywgMTM1LCAzMCwgMjQyLCAyMTUsIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDI0MiwgMjEzLCAKKyAgICAxNSwgNSwgMjQzLCAxMzUsIDMwLCAyNDIsIDIxNCwgOTYsIDYxLCAxNSwgNSwgMjQzLCAxMzUsIDMwLCAyNDIsIDE5OSwgOTYsIAorICAgIDIxOCwgODQsIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDI0MiwgNTAsIDk2LCAyMzIsIDEwMCwgOTYsIDI0NSwgNzMsIDE1LCA1LCAKKyAgICAyNDMsIDEzNSwgMzAsIDI0MiwgMzEsIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDI0MiwgMzIsIDk2LCAyMzMsIDEzNiwgMTUsIDUsIAorICAgIDI0MywgMTM1LCAzMCwgMjQxLCAxODIsIDk2LCAyMzIsIDI0MiwgMTUsIDUsIDI0MywgMTM1LCAzMCwgMjQwLCAyMTksIDE1LCAKKyAgICA1LCAyNDMsIDEzNSwgMzAsIDIzNiwgMzcsIDI0MiwgOTUsIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDIzNSwgMTY3LCA5NiwgCisgICAgMjQwLCAyMjQsIDk2LCAyNTMsIDIzMiwgMTUsIDUsIDI0MywgMTM1LCAzMCwgMjM0LCAyNDMsIDE1LCA1LCAyNDMsIDEzNSwgCisgICAgMzAsIDIzNCwgMjA4LCAxNSwgNSwgMjQzLCAxMzUsIDMwLCAyMzQsIDkwLCAxNSwgNSwgMjQzLCAxMzUsIDMwLCAyMzQsIDkxLCAKKyAgICA5NiwgMjMzLCAxMDUsIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDIzMywgMjE3LCA5NiwgMjU0LCAxMjQsIDE1LCA1LCAyNDMsIAorICAgIDEzNSwgMzAsIDIzMywgMTM2LCAxNSwgNSwgMjQzLCAxMzUsIDMwLCAyMzEsIDkzLCA5NiwgMjQ1LCAxNTEsIDE1LCA1LCAKKyAgICAyNDMsIDEzNSwgMzAsIDIzMCwgMjMxLCAxNSwgNSwgMjQzLCAxMzUsIDMwLCAyMjcsIDE5NSwgMTUsIDUsIDI0MywgMTM1LCAKKyAgICAzMCwgMjI3LCAxOTYsIDExNywgMjI3LCAxOTUsIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDE5MCwgMTUsIDUsIDI0MywgMTM1LCAKKyAgICAzMCwgMjIyLCA5LCAxNSwgNSwgMjQzLCAxMzUsIDMwLCAyMjEsIDIzMiwgMTUsIDUsIDI0MywgMTM1LCAzMCwgMjIwLCA2NCwgCisgICAgMTUsIDUsIDI0MywgMTM1LCAzMCwgMjIwLCA2NSwgOTYsIDIxNSwgOTksIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDIyMCwgMzEsIAorICAgIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDIxOCwgNDQsIDE1LCA1LCAyNDMsIDEzNSwgMzAsIDIxNywgNzMsIDE1LCA1LCAyNDMsIAorICAgIDEzNSwgMzAsIDcwLCAxNSwgNSwgMjQzLCAxMzUsIDMwLCAyMTQsIDIxOSwgMTUsIDUsIDI0MywgMTM1LCAzMCwgMjE0LCAKKyAgICAyMjAsIDk2LCAyNDYsIDc5LCAxNSwgNSwgMjQzLCAxMzUsIDExNywgMjQzLCAxMzQsIDE1LCA1LCAyNDMsIDEyOSwgMTUsIDUsIAorICAgIDI0MywgMTMwLCAyNDksIDEyNiwgMjQzLCAxMjksIDE1LCA1LCAyNDMsIDEyNywgMTUsIDUsIDI0MywgMTI4LCAxMTcsIDI0MywgCisgICAgMTI4LCAyNDMsIDk4LCAxMTcsIDI0MywgOTcsIDE1LCA1LCAyNDMsIDExOSwgMTUsIDUsIDI0MywgMTIwLCAyNDMsIDEyOCwgCisgICAgMTE3LCAyNDMsIDEyOCwgMjQzLCA5OCwgMTE3LCAyNDMsIDk3LCAxNSwgNSwgMjQzLCAxMTgsIDE1LCA1LCAyNDMsIDExNiwgCisgICAgMTUsIDUsIDI0MywgMTA3LCAxNSwgNSwgMjQzLCAxMDUsIDE1LCA1LCAyNDMsIDEwNiwgMjE2LCAyNDAsIDE1LCA1LCAyNDMsIAorICAgIDEwNiwgMTE3LCAyNDMsIDEwNSwgMTUsIDUsIDI0MywgMTA2LCAyNDksIDEyNiwgMjQzLCAxMDUsIDE1LCA1LCAyNDMsIDk3LCAKKyAgICAxNSwgNSwgMjQzLCA5NiwgMTUsIDUsIDI0MywgOTEsIDE1LCA1LCAyNDMsIDM3LCAxNSwgNSwgMjQzLCAzOCwgMzAsIDIzMywgCisgICAgMTk3LCAxNSwgNSwgMjQyLCAyMTUsIDE1LCA1LCAyNDIsIDIxNiwgMzAsIDc1LCAxNSwgNSwgMjQyLCAyMTYsIDMwLCA3MCwgCisgICAgMTUsIDUsIDI0MiwgMjE2LCAyNDksIDEyNiwgMjQyLCAyMTUsIDE1LCA1LCAyNDIsIDIxMywgMTUsIDUsIDI0MiwgMjE0LCAKKyAgICAxMTcsIDI0MiwgMjEzLCAxNSwgNSwgMjQyLCAyMTQsIDI0OSwgMTI2LCAyNDIsIDIxMywgMTUsIDUsIDI0MiwgMjEwLCAxNSwgCisgICAgNSwgMjQyLCAxOTgsIDE1LCA1LCAyNDIsIDE5OSwgMjQyLCA5NSwgMTUsIDUsIDI0MiwgMTk2LCAxNSwgNSwgMjQyLCAxOTcsIAorICAgIDMwLCAxMTUsIDk2LCAyMzYsIDM2LCAxNSwgNSwgMjQyLCAxOTcsIDMwLCAyNDMsIDEwNiwgMjE2LCAyNDAsIDE1LCA1LCAKKyAgICAyNDIsIDE5NywgMzAsIDIzNiwgMzYsIDE1LCA1LCAyNDIsIDE5NywgMzAsIDIzMiwgMTAwLCA5NiwgMjM2LCAzNiwgMTUsIDUsIAorICAgIDI0MiwgMTk3LCAzMCwgMTkwLCAxNSwgNSwgMjQyLCAxOTMsIDE1LCA1LCAyNDIsIDE5MSwgMTUsIDUsIDI0MiwgMTkyLCAKKyAgICAyNDksIDEyNiwgMjQyLCAxOTEsIDE1LCA1LCAyNDIsIDE5MiwgMzAsIDI1MiwgMTc3LCAxNSwgNSwgMjQyLCAxOTIsIDMwLCAKKyAgICAyMTcsIDczLCAxNSwgNSwgMjQyLCAxOTIsIDIxNiwgMjQwLCAxNSwgNSwgMjQyLCAxMTQsIDE1LCA1LCAyNDIsIDExNSwgCisgICAgMjQ5LCAxMjYsIDI0MiwgMTE0LCAxNSwgNSwgMjQyLCAxMTIsIDE1LCA1LCAyNDIsIDExMywgMzAsIDIzNCwgMjQzLCAxNSwgCisgICAgNSwgMjQyLCAxMTMsIDMwLCAyMzQsIDI0NCwgMzAsIDIzNiwgMzcsIDI0MiwgOTUsIDE1LCA1LCAyNDIsIDExMywgMzAsIAorICAgIDIyNywgMTk1LCAxNSwgNSwgMjQyLCAxMTMsIDMwLCAyMjIsIDEwLCA5NiwgMjE1LCAxMTQsIDE1LCA1LCAyNDIsIDExMywgCisgICAgMjQyLCA5NSwgMTUsIDUsIDI0MiwgMTA0LCAxNSwgNSwgMjQyLCAxMDUsIDMwLCAxMTUsIDk2LCAyMzMsIDE5NywgMTUsIDUsIAorICAgIDI0MiwgMTA1LCAzMCwgMjMzLCAxOTcsIDE1LCA1LCAyNDIsIDEwNSwgMTE3LCAyNDIsIDEwNSwgMjMyLCA5MiwgMTUsIDUsIAorICAgIDI0MiwgOTksIDE1LCA1LCAyNDIsIDk3LCAxNSwgNSwgMjQyLCA5OCwgMzAsIDIyMCwgNjQsIDE1LCA1LCAyNDIsIDg5LCAxNSwgCisgICAgNSwgMjQyLCA4OCwgMTUsIDUsIDI0MiwgODUsIDE1LCA1LCAyNDIsIDg0LCAxNSwgNSwgMTYyLCAxNSwgNSwgMjQyLCA1MCwgCisgICAgMjE2LCAyNDAsIDE1LCA1LCAyNDIsIDUwLCAyNDIsIDk1LCAxNSwgNSwgMjQyLCAzMSwgMTUsIDUsIDI0MSwgMTgxLCAxNSwgCisgICAgNSwgMjQxLCAxODIsIDMwLCAyNTMsIDIzMiwgMTUsIDUsIDI0MSwgMTgyLCAzMCwgMjUzLCAyMzAsIDE1LCA1LCAyNDEsIAorICAgIDE4MiwgMzAsIDI1MiwgMTc3LCAxNSwgNSwgMjQxLCAxODIsIDMwLCAyNDcsIDE4OCwgMTUsIDUsIDI0MSwgMTgyLCAzMCwgCisgICAgMjQzLCAxMjcsIDE1LCA1LCAyNDEsIDE4MiwgMzAsIDIzNCwgODIsIDE1LCA1LCAyNDEsIDE4MiwgMzAsIDIyNywgMTk1LCAKKyAgICAxNSwgNSwgMjQxLCAxODIsIDMwLCAyMjAsIDY0LCAxNSwgNSwgMjQxLCAxODIsIDMwLCA3MCwgMTUsIDUsIDI0MCwgMjIzLCAKKyAgICAxNSwgNSwgMjQwLCAyMTksIDE1LCA1LCAyNDAsIDIyMCwgMzAsIDI1NCwgMTI0LCAxNSwgNSwgMjQwLCAyMjAsIDMwLCAyNDIsIAorICAgIDMxLCAxNSwgNSwgMjQwLCAyMjAsIDMwLCAyMzQsIDIwOCwgMTUsIDUsIDI0MCwgMjIwLCAzMCwgMjMyLCAxOTgsIDE1LCA1LCAKKyAgICAyNDAsIDIyMCwgMzAsIDIxNCwgMjE5LCAxNSwgNSwgMjQwLCAyMTYsIDE1LCA1LCA3MywgMTUsIDUsIDI0MCwgMTU1LCA2MSwgCisgICAgMTUsIDUsIDI0MCwgMTE2LCAxNSwgNSwgMjM2LCA2NCwgMTUsIDUsIDIzNiwgNjUsIDExNywgMjM2LCA2NSwgMjUxLCA5OSwgCisgICAgMTUsIDUsIDIzNiwgNjUsIDExNywgMjM2LCA2NSwgMjE4LCAyMzQsIDE1LCA1LCAyMzYsIDM5LCAxNSwgNSwgMjM2LCAzNiwgCisgICAgMTUsIDUsIDIzNiwgMzcsIDI0NywgMjQzLCAxNSwgNSwgMjM2LCAzNywgMjIzLCAzNiwgMTUsIDUsIDIzNiwgMzcsIDExNywgCisgICAgMjM2LCAzNywgMjIwLCAxNSwgMTE3LCAyMjAsIDE1LCAyMTQsIDIyMCwgMTE3LCAyMTQsIDIxOSwgMTUsIDUsIDIzNiwgMzcsIAorICAgIDI0MiwgOTUsIDE1LCA1LCAyMzYsIDI4LCAxNSwgNSwgMjM2LCAyOSwgMzAsIDI0MywgMTA2LCAyMTYsIDI0MCwgMTUsIDUsIAorICAgIDIzNiwgMjcsIDE1LCA1LCAyMzYsIDE3LCAxNSwgNSwgMjM2LCAxOCwgMzAsIDIxNywgNzMsIDE1LCA1LCAyMzYsIDE4LCAKKyAgICAyNDksIDEyNiwgMjM2LCAxNywgMTUsIDUsIDIzNiwgMTgsIDIyNiwgMTY1LCAyMzYsIDE3LCAxNSwgNSwgMjM2LCAxOCwgCisgICAgMjE4LCAyMzQsIDE1LCA1LCAyMzYsIDEwLCAxNSwgNSwgMjM2LCAwLCAxNSwgNSwgMjM1LCAxODAsIDE1LCA1LCAyMzUsIAorICAgIDE2NiwgMTUsIDUsIDE3NiwgMTUsIDUsIDIzNSwgMTQsIDMwLCA2MSwgMTUsIDUsIDIzNSwgMTQsIDMwLCAyNTUsIDAsIDE1LCAKKyAgICA1LCAyMzUsIDE0LCAzMCwgMjU1LCAxLCA5NiwgMjMzLCAyMTYsIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjUzLCAyMzAsIDE1LCAKKyAgICA1LCAyMzUsIDE0LCAzMCwgMjUyLCAxNzcsIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjUyLCAxNjEsIDE1LCA1LCAyMzUsIDE0LCAKKyAgICAzMCwgMTMwLCAxNSwgNSwgMjM1LCAxNCwgMzAsIDI1MiwgNywgMTUsIDUsIDIzNSwgMTQsIDMwLCAyNDUsIDg4LCAxNSwgNSwgCisgICAgMjM1LCAxNCwgMzAsIDI0NSwgNzMsIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjQzLCAxMzYsIDE1LCA1LCAyMzUsIDE0LCAzMCwgCisgICAgMjQzLCAxMTksIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjQzLCAxMDYsIDIxNiwgMjQwLCAxNSwgNSwgMjM1LCAxNCwgMzAsIAorICAgIDI0MywgOTcsIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjQzLCA5OCwgOTYsIDIyMCwgMTAyLCA5NiwgNjEsIDE1LCA1LCAyMzUsIAorICAgIDE0LCAzMCwgMjQyLCAyMTUsIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjQyLCAxOTgsIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjQyLCAKKyAgICAxOTIsIDk2LCAyMjEsIDIzMiwgMTUsIDUsIDIzNSwgMTQsIDMwLCAyNDIsIDE5MiwgMjQ5LCAxMjYsIDI0MiwgMTkxLCAxNSwgCisgICAgNSwgMjM1LCAxNCwgMzAsIDI0MiwgMTE0LCAxNSwgNSwgMjM1LCAxNCwgMzAsIDI0MiwgODgsIDE1LCA1LCAyMzUsIDE0LCAKKyAgICAzMCwgMjM2LCAzNiwgMTUsIDUsIDIzNSwgMTQsIDMwLCAyMzYsIDE3LCAxNSwgNSwgMjM1LCAxNCwgMzAsIDIzNCwgMjQzLCAKKyAgICAxNSwgNSwgMjM1LCAxNCwgMzAsIDIzNCwgOTMsIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjM0LCA5MCwgMTUsIDUsIDIzNSwgMTQsIAorICAgIDMwLCAyMzIsIDI0MiwgMTUsIDUsIDIzNSwgMTQsIDMwLCAyMzIsIDk5LCAxNSwgNSwgMjM1LCAxNCwgMzAsIDIzMSwgOTIsIAorICAgIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjMxLCA5MywgOTYsIDI0NiwgNzksIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjMxLCA5MywgCisgICAgOTYsIDI0MiwgMjE1LCAxNSwgNSwgMjM1LCAxNCwgMzAsIDIzMSwgOTMsIDk2LCAyMTcsIDIzLCAxNSwgNSwgMjM1LCAxNCwgCisgICAgMzAsIDIzMCwgMjMxLCAxNSwgNSwgMjM1LCAxNCwgMzAsIDIzMCwgMjMyLCA5NiwgMjI3LCAxOTAsIDE1LCA1LCAyMzUsIDE0LCAKKyAgICAzMCwgMjI5LCAxMDgsIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjI3LCAxOTUsIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjI1LCAxMDksIAorICAgIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjIyLCAxNDEsIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjA2LCAxNSwgNSwgMjM1LCAxNCwgCisgICAgMzAsIDIyMSwgMjMyLCAxNSwgNSwgMjM1LCAxNCwgMzAsIDIyMCwgMTAzLCAxNSwgNSwgMjM1LCAxNCwgMzAsIDIyMCwgNjQsIAorICAgIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjIwLCAzMSwgMTUsIDUsIDIzNSwgMTQsIDMwLCAyMTksIDIyNiwgMTUsIDUsIDIzNSwgCisgICAgMTQsIDMwLCAyMTksIDE4MywgMTUsIDUsIDIzNSwgMTQsIDMwLCAyMTgsIDUyLCAxNSwgNSwgMjM1LCAxNCwgMzAsIDIxNywgCisgICAgNTEsIDE1LCA1LCAyMzUsIDE0LCAzMCwgNzAsIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjE0LCAyMzAsIDE1LCA1LCAyMzUsIDE0LCAKKyAgICAzMCwgMjE0LCAyMTksIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjE0LCAxOTMsIDMwLCAxOTAsIDE1LCA1LCAyMzUsIDE0LCAzMCwgCisgICAgMjE0LCAxMjYsIDE1LCA1LCAyMzUsIDE0LCAzMCwgMjEwLCA0NCwgMTUsIDUsIDIzNSwgMTIsIDE1LCA1LCAyMzUsIDEzLCAKKyAgICAyNDksIDEyNiwgMjM1LCAxMiwgMTUsIDUsIDIzNSwgNSwgMTUsIDUsIDIzNSwgMiwgMTUsIDUsIDIzNSwgMCwgMTUsIDUsIAorICAgIDIzNCwgMjU1LCAxNSwgNSwgMjM0LCAyNTMsIDE1LCA1LCAyMzQsIDI1NCwgMTE3LCAyMzQsIDI1MywgMTUsIDUsIDIzNCwgCisgICAgMjQzLCAxNSwgNSwgMjM0LCAyNDQsIDMwLCAyMzYsIDM3LCAyNDIsIDk1LCAxNSwgNSwgMjM0LCAyMzksIDE1LCA1LCAyMzQsIAorICAgIDI0MCwgMzAsIDI1MiwgMTc3LCAxNSwgNSwgMjM0LCAyNDAsIDI0OSwgMTI2LCAyMzQsIDIzOSwgMTUsIDUsIDIzNCwgMjM3LCAKKyAgICAxNSwgNSwgMjM0LCAyMzYsIDE1LCA1LCAyMzQsIDIwOCwgMTUsIDUsIDIzNCwgMjA5LCAyMzMsIDExOSwgMzAsIDEwNCwgCisgICAgMTE3LCAyMzMsIDExOSwgMzAsIDcwLCAxNSwgNSwgMjM0LCAyMDksIDExNywgMjM0LCAyMDksIDIzMywgMTE5LCAzMCwgMTA0LCAKKyAgICAxMTcsIDIzMywgMTE5LCAzMCwgNzAsIDE1LCA1LCAyMzQsIDE1OCwgMTUsIDUsIDIzNCwgOTMsIDE1LCA1LCAyMzQsIDk0LCAKKyAgICAzMCwgMjUyLCAxNzcsIDE1LCA1LCAyMzQsIDk0LCAzMCwgNzAsIDE1LCA1LCAyMzQsIDk0LCAzMCwgMjE0LCAyMTksIDE1LCAKKyAgICA1LCAyMzQsIDkwLCAxNSwgNSwgMjM0LCA4MiwgMTUsIDUsIDIzNCwgNjksIDE1LCA1LCAyMzQsIDY4LCAxNSwgNSwgMjM0LCAKKyAgICA2NiwgMTUsIDUsIDIzNCwgNjcsIDExNywgMjM0LCA2NiwgMTUsIDUsIDIzMywgMjE4LCAxNSwgNSwgMjMzLCAyMTksIDExNywgCisgICAgMjQxLCAxODIsIDMwLCAyNTMsIDIzMSwgMjMzLCAyMTksIDExNywgMjQxLCAxODIsIDMwLCAyNTMsIDIzMCwgMTUsIDUsIAorICAgIDIzMywgMjE2LCAxNSwgNSwgMjMzLCAyMTQsIDE1LCA1LCAyMzMsIDIxNSwgMjE0LCAxMiwgMTcsIDE1LCA1LCAyMzMsIDIxMywgCisgICAgMTUsIDUsIDIzMywgMjEwLCAxNSwgNSwgMjMzLCAyMTEsIDI0MiwgOTUsIDE1LCA1LCAyMzMsIDIwOSwgMTUsIDUsIDIzMywgCisgICAgMTk3LCAxNSwgNSwgMjMzLCAxOTgsIDIyNiwgMTY1LCAyMzMsIDE5NywgMTUsIDUsIDIzMywgMTkyLCAxNSwgNSwgMjMzLCAKKyAgICAxNzMsIDE1LCA1LCAyMzMsIDEzNiwgMTUsIDUsIDIzMywgMTE4LCAxNSwgNSwgMjMzLCAxMTksIDMwLCA2MSwgMTUsIDUsIAorICAgIDIzMywgMTE5LCAzMCwgMTE1LCA5NiwgMjQ4LCAyMjMsIDk2LCAxNjIsIDE1LCA1LCAyMzMsIDExOSwgMzAsIDExNSwgOTYsIAorICAgIDI0MywgOTcsIDE1LCA1LCAyMzMsIDExOSwgMzAsIDExNSwgOTYsIDIzMywgMTA1LCAxNSwgNSwgMjMzLCAxMTksIDMwLCAKKyAgICAyNTQsIDE3OSwgMTUsIDUsIDIzMywgMTE5LCAzMCwgMjU0LCAxMjQsIDE1LCA1LCAyMzMsIDExOSwgMzAsIDI1MywgMjMzLCAKKyAgICAyMTAsIDQwLCAyMTYsIDI0MCwgMTUsIDUsIDIzMywgMTE5LCAzMCwgMjUyLCAxNzcsIDE1LCA1LCAyMzMsIDExOSwgMzAsIAorICAgIDI1MiwgNywgMTUsIDUsIDIzMywgMTE5LCAzMCwgMjQ4LCAxNjcsIDE1LCA1LCAyMzMsIDExOSwgMzAsIDI0NSwgMTUxLCAxNSwgCisgICAgNSwgMjMzLCAxMTksIDMwLCAyNDMsIDEzNiwgMTUsIDUsIDIzMywgMTE5LCAzMCwgMjQzLCA5NywgMTUsIDUsIDIzMywgMTE5LCAKKyAgICAzMCwgMjQyLCAxMDQsIDE1LCA1LCAyMzMsIDExOSwgMzAsIDI0MiwgMTA1LCA5NiwgMjQyLCAxMDQsIDE1LCA1LCAyMzMsIAorICAgIDExOSwgMzAsIDE2MiwgMTUsIDUsIDIzMywgMTE5LCAzMCwgMjQyLCAzMSwgMTUsIDUsIDIzMywgMTE5LCAzMCwgMjQxLCAKKyAgICAxODIsIDMwLCAyMjcsIDE5NSwgMTUsIDUsIDIzMywgMTE5LCAzMCwgMjM2LCAzNywgMjQyLCA5NSwgMTUsIDUsIDIzMywgCisgICAgMTE5LCAzMCwgMjM2LCAxNywgMTUsIDUsIDIzMywgMTE5LCAzMCwgMjM2LCAxOCwgOTYsIDE2MiwgMTUsIDUsIDIzMywgMTE5LCAKKyAgICAzMCwgMjM2LCAxOCwgOTYsIDIzMiwgOTksIDE1LCA1LCAyMzMsIDExOSwgMzAsIDIzNCwgOTMsIDE1LCA1LCAyMzMsIDExOSwgCisgICAgMzAsIDIzNCwgODIsIDE1LCA1LCAyMzMsIDExOSwgMzAsIDIzMywgMjE2LCAxNSwgNSwgMjMzLCAxMTksIDMwLCAyMzMsIAorICAgIDIxMCwgMTUsIDUsIDIzMywgMTE5LCAzMCwgMjMzLCAyMTEsIDk2LCAyNDEsIDE4MiwgOTYsIDYxLCAxNSwgNSwgMjMzLCAKKyAgICAxMTksIDMwLCAyMzMsIDExOCwgMTUsIDUsIDIzMywgMTE5LCAzMCwgMjMyLCAxOTgsIDE1LCA1LCAyMzMsIDExOSwgMzAsIAorICAgIDIzMiwgOTksIDE1LCA1LCAyMzMsIDExOSwgMzAsIDIzMiwgODcsIDE1LCA1LCAyMzMsIDExOSwgMzAsIDIzMSwgOTIsIDE1LCAKKyAgICA1LCAyMzMsIDExOSwgMzAsIDIzMSwgOTMsIDk2LCAyNDUsIDE1MSwgMTUsIDUsIDIzMywgMTE5LCAzMCwgMjMwLCA2MiwgMTUsIAorICAgIDUsIDIzMywgMTE5LCAzMCwgMjI5LCAxMDgsIDE1LCA1LCAyMzMsIDExOSwgMzAsIDIyMCwgNjUsIDk2LCAyMTgsIDQ0LCAxNSwgCisgICAgNSwgMjMzLCAxMTksIDMwLCAyMjAsIDExLCA5NiwgMjQyLCAxOTIsIDk2LCAyNDUsIDg4LCAxNSwgNSwgMjMzLCAxMTksIDMwLCAKKyAgICAyMjAsIDExLCA5NiwgMjQyLCAxOTIsIDIxNiwgMjQwLCAxNSwgNSwgMjMzLCAxMTksIDMwLCAyMTksIDIyNCwgMTUsIDUsIAorICAgIDIzMywgMTE5LCAzMCwgMjE5LCAyMjUsIDk2LCAyMTksIDIyNCwgMTUsIDUsIDIzMywgMTE5LCAzMCwgMjE4LCA0NCwgMTUsIAorICAgIDUsIDIzMywgMTE5LCAzMCwgMjE3LCA4NSwgMTUsIDUsIDIzMywgMTE5LCAzMCwgMjE3LCA3MywgMTUsIDUsIDIzMywgMTE5LCAKKyAgICAzMCwgMjE3LCAyNCwgOTYsIDExNSwgOTYsIDIxOCwgODUsIDk2LCAxOTcsIDE1LCA1LCAyMzMsIDExOSwgMzAsIDcwLCAxNSwgCisgICAgNSwgMjMzLCAxMTksIDMwLCAxMDQsIDk2LCA2MSwgMTUsIDUsIDIzMywgMTE5LCAzMCwgMTA0LCA5NiwgMTA0LCA5NiwgNzAsIAorICAgIDE1LCA1LCAyMzMsIDExOSwgMzAsIDIxNCwgMjMxLCA5NiwgMjUzLCAyMzIsIDE1LCA1LCAyMzMsIDExOSwgMzAsIDIxNCwgCisgICAgMjE5LCAxNSwgNSwgMjMzLCAxMTksIDMwLCAyMTQsIDEyNiwgMTUsIDUsIDIzMywgMTE5LCAyMTgsIDIzNCwgMTUsIDUsIAorICAgIDIzMywgMTE2LCAxNSwgNSwgMjMzLCAxMTcsIDMwLCAyMjAsIDY0LCAxNSwgNSwgMjMzLCAxMTcsIDMwLCAyMjAsIDY1LCA5NiwgCisgICAgMjE4LCA0NCwgMTUsIDUsIDIzMywgMTE3LCAyNDIsIDk1LCAxNSwgNSwgMjMzLCAxMTcsIDI0MiwgOTYsIDExNywgMjMzLCAKKyAgICAxMTcsIDI0MiwgOTYsIDIyMCwgNjQsIDE1LCA1LCAyMzMsIDExMiwgMTUsIDUsIDIzMywgMTA1LCAxNSwgNSwgMjMzLCAxMDYsIAorICAgIDMwLCAyMzMsIDEwNSwgMTUsIDUsIDIzMywgMTAzLCAxNSwgNSwgMjMzLCAxMDQsIDMwLCAyMzMsIDE5NywgMTUsIDUsIDIzMywgCisgICAgMTA0LCAzMCwgMjMzLCAxOTgsIDk2LCAyMjIsIDE0MSwgMTUsIDUsIDIzMiwgMjQyLCAxNSwgNSwgMjMyLCAyMjcsIDE1LCA1LCAKKyAgICAyMzIsIDIxNywgMTUsIDUsIDIzMiwgMTk4LCAxNSwgNSwgMjMyLCA5OSwgMTUsIDUsIDIzMiwgMTAwLCAzMCwgMjUyLCAxNzcsIAorICAgIDE1LCA1LCAyMzIsIDk3LCAxNSwgNSwgMjMyLCA5OCwgMzAsIDI1NCwgMTc5LCAxNSwgNSwgMjMyLCA5OCwgMzAsIDI1MiwgCisgICAgMTc3LCAxNSwgNSwgMjMyLCA5OCwgMzAsIDI0NSwgNzMsIDE1LCA1LCAyMzIsIDk4LCAzMCwgMjQ1LCA3NCwgMjE2LCAyNDAsIAorICAgIDE1LCA1LCAyMzIsIDk4LCAzMCwgMjQzLCAxMDYsIDIxNiwgMjQwLCAxNSwgNSwgMjMyLCA5OCwgMzAsIDI0MSwgMTgyLCAzMCwgCisgICAgMjUyLCAxNzcsIDE1LCA1LCAyMzIsIDk4LCAzMCwgMjM2LCAxNywgMTUsIDUsIDIzMiwgOTgsIDMwLCAyMzUsIDIsIDE1LCA1LCAKKyAgICAyMzIsIDk4LCAzMCwgMjM1LCAwLCAxNSwgNSwgMjMyLCA5OCwgMzAsIDIzNSwgMSwgOTYsIDI1MywgMjMyLCAxNSwgNSwgCisgICAgMjMyLCA5OCwgMzAsIDIzNCwgOTMsIDE1LCA1LCAyMzIsIDk4LCAzMCwgMjMzLCAxMzcsIDk2LCAyNTMsIDIzMiwgMTUsIDUsIAorICAgIDIzMiwgOTgsIDMwLCAyMzMsIDExOCwgMTUsIDUsIDIzMiwgOTgsIDMwLCAyMzEsIDkzLCA5NiwgMjQ1LCAxNTEsIDE1LCA1LCAKKyAgICAyMzIsIDk4LCAzMCwgMjI5LCAxMDgsIDE1LCA1LCAyMzIsIDk4LCAzMCwgMjI3LCAyMzgsIDE1LCA1LCAyMzIsIDk4LCAzMCwgCisgICAgMjE5LCAxOTMsIDk2LCAyNTMsIDIzMiwgMTUsIDUsIDIzMiwgOTgsIDMwLCAyMTksIDE3NSwgOTYsIDI1MSwgMTI2LCAxNSwgCisgICAgNSwgMjMyLCA5OCwgMzAsIDIxNSwgMTE0LCAxNSwgNSwgMjMyLCA5OCwgMjE2LCAyNDAsIDE1LCA1LCAyMzIsIDk4LCAyNDksIAorICAgIDEyNiwgMjMyLCA5NywgMTUsIDUsIDIzMiwgOTgsIDIyNiwgMTY1LCAyMzIsIDk3LCAxNSwgNSwgMjMyLCA5OCwgMjE4LCAKKyAgICAyMzQsIDE1LCA1LCAyMzIsIDk4LCAyMjAsIDQ2LCAxNSwgNSwgMjMyLCA5NiwgMTUsIDUsIDIzMiwgOTIsIDE1LCA1LCAyMzIsIAorICAgIDkzLCAxMTcsIDIzMiwgOTIsIDE1LCA1LCAyMzIsIDkzLCAyMjYsIDE2NSwgMjMyLCA5MiwgMTUsIDUsIDIzMiwgOTMsIDIyMCwgCisgICAgNDYsIDE1LCA1LCAyMzIsIDkwLCAxNSwgNSwgMjMyLCA4NywgMTUsIDUsIDIzMiwgODUsIDE1LCA1LCAyMzIsIDg2LCAxMTcsIAorICAgIDIzMiwgODUsIDE1LCA1LCAyMzIsIDg2LCAxMTcsIDIzMiwgODYsIDI0MywgOTgsIDExNywgMjQzLCA5NywgMTUsIDUsIDE4NSwgCisgICAgMTUsIDUsIDIzMSwgMjQwLCAzMCwgMjE3LCA3MywgMTUsIDUsIDIzMSwgMjQwLCAyNDIsIDk1LCAxNSwgNSwgMjMxLCAyMzksIAorICAgIDE1LCA1LCAyMzEsIDIxMSwgMTUsIDUsIDIzMSwgMTY3LCAxNSwgNSwgMjMxLCAxNDgsIDE1LCA1LCAyMzEsIDE0NywgMTUsIAorICAgIDUsIDIzMSwgOTIsIDE1LCA1LCAyMzEsIDQ4LCAxNSwgNSwgMjMwLCAyMzEsIDE1LCA1LCAyMzAsIDE4OSwgMTUsIDUsIDIzMCwgCisgICAgMTAzLCAxNSwgNSwgMjMwLCAxMDQsIDExNywgMjMwLCAxMDMsIDE1LCA1LCAyMzAsIDk0LCAxNSwgNSwgMjMwLCA5NSwgMjQyLCAKKyAgICA5NSwgMTUsIDUsIDIzMCwgNzksIDE1LCA1LCAyMzAsIDY1LCAxNSwgNSwgMjMwLCA2MiwgMTUsIDUsIDIzMCwgNjMsIDMwLCAKKyAgICA2MSwgMTUsIDUsIDIzMCwgNjMsIDMwLCAyMzMsIDE5NywgMTUsIDUsIDIzMCwgNjMsIDMwLCAyMTAsIDExNiwgMTUsIDUsIAorICAgIDIzMCwgNjMsIDExNywgMjMwLCA2MiwgMTUsIDUsIDIzMCwgNjMsIDExNywgMjMwLCA2MywgMzAsIDExNSwgOTYsIDE5NywgCisgICAgMTUsIDUsIDIzMCwgNjMsIDI0OSwgMTI2LCAyMzAsIDYyLCAxNSwgNSwgMjMwLCA2MCwgMTUsIDUsIDIzMCwgNjEsIDMwLCAKKyAgICA2MSwgMTUsIDUsIDIzMCwgNjEsIDMwLCAxMTUsIDk2LCAyNDgsIDQsIDE1LCA1LCAyMzAsIDYxLCAzMCwgMjQ4LCA0LCAxNSwgCisgICAgNSwgMjMwLCA2MSwgMjQyLCA5NSwgMTUsIDUsIDE5NywgMTUsIDUsIDIyOSwgMjI4LCAxNSwgNSwgMjI5LCAyMTcsIDE1LCA1LCAKKyAgICAyMjksIDIxOCwgMjM1LCAxOTMsIDE1LCA1LCAyMjksIDIxOCwgMzAsIDIxOSwgMjI3LCAyMTYsIDI0MCwgMTUsIDUsIDIyOSwgCisgICAgMjE4LCAyMjYsIDE2NSwgMjI5LCAyMTcsIDE1LCA1LCAyMjksIDIxNiwgMTUsIDUsIDIyOSwgMjA5LCAyMjcsIDE4MSwgMTUsIAorICAgIDUsIDIyOSwgMjA4LCAxNSwgNSwgMjI5LCAyMDcsIDE1LCA1LCAyMjksIDEwOCwgMTUsIDUsIDIyOSwgMTA5LCAzMCwgNjEsIAorICAgIDE1LCA1LCAyMjksIDEwOSwgMzAsIDIxNCwgMjE5LCAxNSwgNSwgMjI5LCAxMDksIDIyMCwgNDYsIDE1LCA1LCAyMjgsIDIzNCwgCisgICAgMTUsIDUsIDIyOCwgMjM1LCAzMCwgNzUsIDE1LCA1LCAyMjgsIDIzMywgMTUsIDUsIDIyOCwgMjA0LCAxNSwgNSwgMjI4LCAKKyAgICAyMDUsIDMwLCAyNDMsIDEwNiwgMjE2LCAyNDAsIDE1LCA1LCAyMjgsIDIwNSwgMzAsIDI0MywgOTgsIDk2LCAyNDMsIDEwNiwgCisgICAgMjE2LCAyNDAsIDE1LCA1LCAyMjgsIDIwMiwgMTUsIDUsIDIyOCwgMjAzLCAzMCwgMjU0LCAxMjQsIDE1LCA1LCAyMjgsIAorICAgIDIwMywgMzAsIDI1MywgMjMyLCAxNSwgNSwgMjI4LCAyMDMsIDMwLCAyNTMsIDIzMywgOTYsIDI1MywgMjMyLCAxNSwgNSwgCisgICAgMjI4LCAyMDMsIDMwLCAyNDIsIDEwNCwgMTUsIDUsIDIyOCwgMjAzLCAzMCwgMjMxLCA5MywgOTYsIDI0MywgMTA2LCAyMTYsIAorICAgIDI0MCwgMTUsIDUsIDIyOCwgMjAzLCAzMCwgMjI5LCAxMDgsIDE1LCA1LCAyMjgsIDIwMywgMzAsIDIyNywgMTk1LCAxNSwgNSwgCisgICAgMjI4LCAyMDMsIDMwLCAyMjAsIDY0LCAxNSwgNSwgMjI4LCAyMDMsIDMwLCAyMjAsIDY1LCA5NiwgMTE1LCAyNTQsIDEyNCwgCisgICAgMTUsIDUsIDIyOCwgMjAzLCAzMCwgMjIwLCA2NSwgOTYsIDI1MywgMjMyLCAxNSwgNSwgMjI4LCAyMDMsIDMwLCAyMjAsIDY1LCAKKyAgICA5NiwgMjUzLCAyMzMsIDk2LCAyNTMsIDIzMiwgMTUsIDUsIDIyOCwgMjAzLCAzMCwgMjE0LCAyMzEsIDk2LCAyNTMsIDIzMiwgCisgICAgMTUsIDUsIDIyOCwgMjAzLCAzMCwgMjE0LCAxMjYsIDE1LCA1LCAyMjgsIDE5MSwgMTUsIDUsIDIyNywgMjM4LCAxNSwgNSwgCisgICAgMjI3LCAyMTEsIDE1LCA1LCAyMjcsIDE5NSwgMTUsIDUsIDIyNywgMTk2LCAyMzMsIDExNywgMzAsIDI0MywgOTcsIDE1LCA1LCAKKyAgICAyMjcsIDE5NiwgMjMzLCAxMTcsIDMwLCAyMzEsIDE0OCwgMTUsIDUsIDIyNywgMTk2LCAyMzMsIDExNywgMzAsIDIyMiwgOSwgCisgICAgMTUsIDUsIDIyNywgMTk2LCAyMzMsIDExNywgMzAsIDIyMiwgMTAsIDExNywgMjI3LCAxOTYsIDIzMywgMTE3LCAzMCwgMjIyLCAKKyAgICA5LCAxNSwgNSwgMjI3LCAxOTYsIDIzMywgMTE3LCAzMCwgMjE0LCAxMjYsIDE1LCA1LCAyMjcsIDE5NiwgMjE2LCAyNDAsIAorICAgIDE1LCA1LCAyMjcsIDE5NiwgMTE3LCAyMjcsIDE5NSwgMTUsIDUsIDIyNywgMTk2LCAyNDksIDEyNiwgMjI3LCAxOTUsIDE1LCAKKyAgICA1LCAyMjcsIDE5NiwgMjQ5LCAxMjYsIDIyNywgMTk2LCAyMzMsIDExNywgMTE3LCAyMzMsIDExNiwgMTUsIDUsIDIyNywgCisgICAgMTkwLCAxNSwgNSwgMjI3LCAxOTEsIDI1NSwgMjUsIDMwLCAyNTMsIDIyNywgMTUsIDUsIDIyNywgMTkxLCAyNTUsIDI1LCAKKyAgICAzMCwgMjUyLCA3LCAxNSwgNSwgMjI3LCAxOTEsIDI1NSwgMjUsIDMwLCAyNDYsIDc1LCAxNSwgNSwgMjI3LCAxOTEsIDI1NSwgCisgICAgMjUsIDMwLCAyNDIsIDEwNCwgMTUsIDUsIDIyNywgMTkxLCAyNTUsIDI1LCAzMCwgMjM2LCAzNywgMjQyLCA5NSwgMTUsIDUsIAorICAgIDIyNywgMTkxLCAyNTUsIDI1LCAzMCwgMjM1LCAwLCAxNSwgNSwgMjI3LCAxOTEsIDI1NSwgMjUsIDMwLCAyMzMsIDEzNiwgCisgICAgMTUsIDUsIDIyNywgMTkxLCAyNTUsIDI1LCAzMCwgMjI5LCAxMDgsIDE1LCA1LCAyMjcsIDE5MSwgMjU1LCAyNSwgMzAsIAorICAgIDIxOSwgMTcyLCAxNSwgNSwgMjI3LCAxOTEsIDI1NSwgMjUsIDMwLCAyMTQsIDIzMCwgMTUsIDUsIDIyNywgMTkxLCAyMzQsIAorICAgIDY3LCAzMCwgMjUyLCA3LCAxNSwgNSwgMjI3LCAxOTEsIDIzNCwgNjcsIDMwLCAyNTIsIDgsIDcwLCAxNSwgNSwgMTkwLCAxNSwgCisgICAgNSwgMjI2LCA4MSwgMTUsIDUsIDIyNiwgNDgsIDE1LCA1LCAyMjYsIDIyLCAxNSwgNSwgMjI1LCAxNjIsIDE1LCA1LCAyMjUsIAorICAgIDEwOSwgMTUsIDUsIDIyNSwgMTEwLCAzMCwgNjEsIDE1LCA1LCAyMjUsIDExMCwgMzAsIDI1NSwgMjYsIDE1LCA1LCAyMjUsIAorICAgIDExMCwgMzAsIDI1MiwgNywgMTUsIDUsIDIyNSwgMTEwLCAzMCwgMjUxLCAxMjYsIDE1LCA1LCAyMjUsIDExMCwgMzAsIDc1LCAKKyAgICAxNSwgNSwgMjI1LCAxMTAsIDMwLCA3MywgMTUsIDUsIDIyNSwgMTEwLCAzMCwgMjQwLCAxMTYsIDE1LCA1LCAyMjUsIDExMCwgCisgICAgMzAsIDcwLCAxNSwgNSwgMjI1LCAxMTAsIDMwLCAyMTQsIDIzMCwgMTUsIDUsIDIyNSwgMTEwLCAyNDksIDEyNiwgMjI1LCAKKyAgICAxMDksIDE1LCA1LCAyMjUsIDU0LCAxNSwgNSwgMjI1LCA1NSwgMzAsIDIzNCwgMjM5LCAxNSwgNSwgMjI1LCA1NSwgMzAsIAorICAgIDIxNCwgMjE5LCAxNSwgNSwgMjI1LCA1NSwgMzAsIDIxMCwgMTE2LCAxNSwgNSwgMjI1LCA1NSwgMjI2LCAxNjUsIDIyNSwgCisgICAgNTQsIDE1LCA1LCAyMDUsIDE1LCA1LCAyMjMsIDE4MywgMTUsIDUsIDIyMywgMzYsIDE1LCA1LCAyMjIsIDE0MSwgMTUsIDUsIAorICAgIDIwNiwgMTUsIDUsIDIyMiwgMjMsIDIyNywgMTgxLCAxNSwgNSwgMjIyLCAyMiwgMTUsIDUsIDIyMiwgMjMsIDMwLCA2MSwgCisgICAgMTUsIDUsIDIyMiwgMjMsIDMwLCAyNDYsIDc5LCAxNSwgNSwgMjIyLCAyMywgMzAsIDI0NiwgNzcsIDE1LCA1LCAyMjIsIDIzLCAKKyAgICAzMCwgMTYyLCAxNSwgNSwgMjIyLCAyMywgMzAsIDIzNCwgMjQzLCAxNSwgNSwgMjIyLCAyMywgMzAsIDIzMywgMTk3LCAxNSwgCisgICAgNSwgMjIyLCAyMywgMzAsIDIzMiwgODUsIDE1LCA1LCAyMjIsIDIzLCAzMCwgMjMwLCAyMzEsIDE1LCA1LCAyMjIsIDIzLCAKKyAgICAzMCwgMjI3LCAxOTUsIDE1LCA1LCAyMjIsIDIzLCAzMCwgMjIyLCA5LCAxNSwgNSwgMjIyLCAyMywgMzAsIDIyMCwgMzEsIAorICAgIDE1LCA1LCAyMjIsIDIzLCAzMCwgMjE3LCA5NCwgMTUsIDUsIDIyMiwgMjMsIDMwLCAyMTQsIDIzMCwgMTUsIDUsIDIyMiwgCisgICAgMjMsIDMwLCAyMTQsIDIyNSwgMTUsIDUsIDIyMiwgMjMsIDMwLCAyMTQsIDE5NywgMTUsIDUsIDIyMiwgMjMsIDMwLCAyMTQsIAorICAgIDE1MCwgMTUsIDUsIDIyMiwgMjMsIDMwLCAyMTQsIDEyNiwgMTUsIDUsIDIyMiwgMjMsIDExNywgMjIyLCAyMiwgMTUsIDUsIAorICAgIDIyMiwgMjMsIDI0MiwgOTUsIDE1LCA1LCAyMjIsIDksIDE1LCA1LCAyMjIsIDEwLCAyMzMsIDExOSwgMzAsIDI1MywgMjMwLCAKKyAgICAxNSwgNSwgMjIxLCAyNDAsIDE1LCA1LCAyMjEsIDIzMiwgMTUsIDUsIDIyMCwgMTAzLCAxNSwgNSwgMjIwLCAxMDEsIDE1LCAKKyAgICA1LCAyMjAsIDEwMiwgMzAsIDYxLCAxNSwgNSwgMjIwLCAxMDIsIDMwLCAyNTIsIDE3NywgMTUsIDUsIDIyMCwgMTAyLCAzMCwgCisgICAgMjQyLCAxOTEsIDE1LCA1LCAyMjAsIDEwMiwgMzAsIDIyOSwgMTA4LCAxNSwgNSwgMjIwLCAxMDIsIDMwLCAyMTksIDIyNCwgCisgICAgMTUsIDUsIDIyMCwgMTAyLCAzMCwgMjE1LCA5OSwgMTUsIDUsIDIyMCwgMTAyLCAzMCwgNzAsIDE1LCA1LCAyMjAsIDEwMiwgCisgICAgMzAsIDEwNCwgOTYsIDYxLCAxNSwgNSwgMjIwLCAxMDAsIDE1LCA1LCAyMjAsIDk4LCAxNSwgNSwgMjIwLCA3OSwgMTUsIDUsIAorICAgIDIyMCwgNjQsIDE1LCA1LCAyMjAsIDY1LCAyNDAsIDIyMywgMTUsIDUsIDIyMCwgNjUsIDExNywgMjIwLCA2NSwgMjQzLCAKKyAgICAxMjgsIDExNywgMjQzLCAxMjgsIDI0MywgOTgsIDExNywgMjQzLCA5NywgMTUsIDUsIDIyMCwgNjUsIDExNywgMjIwLCA2NSwgCisgICAgMjE3LCA5NSwgMTE3LCAyMTcsIDk1LCAyNDMsIDk4LCAxMTcsIDI0MywgOTcsIDE1LCA1LCAyMjAsIDU3LCAxNSwgNSwgMjIwLCAKKyAgICA1MiwgMTUsIDUsIDIyMCwgNDksIDE1LCA1LCAyMjAsIDQ4LCAxNSwgNSwgMjIwLCA0NSwgMTUsIDUsIDIyMCwgMzEsIDE1LCAKKyAgICA1LCAyMjAsIDMyLCAzMCwgNjEsIDE1LCA1LCAyMjAsIDMyLCAzMCwgMjM2LCAxNywgMTUsIDUsIDIyMCwgMjUsIDE1LCA1LCAKKyAgICAyMjAsIDI2LCAzMCwgNjEsIDE1LCA1LCAyMjAsIDI2LCAzMCwgMjUyLCAxNjIsIDE1LCA1LCAyMjAsIDI2LCAzMCwgMjUxLCAKKyAgICAxMTAsIDE1LCA1LCAyMjAsIDI2LCAzMCwgMjQ3LCAyMDcsIDE1LCA1LCAyMjAsIDI2LCAzMCwgMjQzLCA5NywgMTUsIDUsIAorICAgIDIyMCwgMjYsIDMwLCAyMzYsIDM2LCAxNSwgNSwgMjIwLCAyNiwgMzAsIDIzNiwgMzcsIDI0MiwgOTUsIDE1LCA1LCAyMjAsIAorICAgIDI2LCAzMCwgMjMzLCAxOTIsIDE1LCA1LCAyMjAsIDI2LCAzMCwgMjMyLCA4NywgMTUsIDUsIDIyMCwgMjYsIDMwLCAyMzAsIAorICAgIDk0LCAxNSwgNSwgMjIwLCAyNiwgMzAsIDIyMiwgOSwgMTUsIDUsIDIyMCwgMTksIDE1LCA1LCAyMjAsIDE0LCAxNSwgNSwgCisgICAgMjIwLCAxNSwgMjE2LCAyNDAsIDE1LCA1LCAyMjAsIDE1LCAxMTcsIDIyMCwgMTUsIDI1MSwgMTAwLCAxMTcsIDI1MSwgOTksIAorICAgIDE1LCA1LCAyMjAsIDEwLCAxNSwgNSwgMjE5LCAyMjYsIDE1LCA1LCAyMTksIDIyNywgMTE3LCAyMzUsIDE5NCwgMjE5LCAKKyAgICAyMjYsIDE1LCA1LCAyMTksIDIyNCwgMTUsIDUsIDIxOSwgMjIzLCAxNSwgNSwgMjE5LCAxOTIsIDE1LCA1LCAyMTksIDE5MywgCisgICAgMjQyLCA5NSwgMTUsIDUsIDIxOSwgMTgzLCAxNSwgNSwgMjE5LCAxODEsIDE1LCA1LCAyMTksIDE4MiwgMTE3LCAyMTksIAorICAgIDE4MiwgMjE5LCAyMjQsIDE1LCA1LCAyMTksIDE3NCwgMTUsIDUsIDIxOSwgMTcyLCAxNSwgNSwgMjE4LCA4NCwgMTUsIDUsIAorICAgIDIxOCwgODUsIDExNywgMjE4LCA4NCwgMTUsIDUsIDIxOCwgNTUsIDE1LCA1LCAyMTgsIDU0LCAxNSwgNSwgMjE4LCA1MiwgCisgICAgMTUsIDUsIDIxOCwgNDQsIDE1LCA1LCAyMTgsIDQzLCAxNSwgNSwgMjE4LCAxOCwgMTUsIDUsIDIxOCwgMTcsIDE1LCA1LCAKKyAgICAyMTcsIDEwNiwgMTUsIDUsIDIxNywgMTA3LCAyNTMsIDIxNywgMTUsIDUsIDIxNywgMTA3LCAzMCwgMjQxLCAxODEsIDE1LCAKKyAgICA1LCAyMTcsIDEwNywgMzAsIDIzMCwgMjMxLCAxNSwgNSwgMjE3LCAxMDcsIDI0MiwgOTUsIDE1LCA1LCAyMTcsIDk0LCAxNSwgCisgICAgNSwgMjE3LCA5NSwgMTE3LCAyMTcsIDk1LCAyMjgsIDIzNSwgMTE3LCAyMjgsIDIzNSwgMjQ3LCAxODksIDExNywgMjQ3LCAKKyAgICAxODgsIDE1LCA1LCAyMTcsIDk1LCAyMTgsIDIzNCwgMTUsIDUsIDIxNywgODUsIDE1LCA1LCAxMjksIDMwLCAyNTIsIDcsIAorICAgIDE1LCA1LCAxMjksIDMwLCAyNDIsIDEwNCwgMTUsIDUsIDEyOSwgMzAsIDIyMCwgNjQsIDE1LCA1LCAxMjksIDMwLCAyMTksIAorICAgIDIyNiwgMTUsIDUsIDEyOSwgMzAsIDIxNSwgMTE0LCAxNSwgNSwgMTI5LCAzMCwgMjE0LCAyMTksIDE1LCA1LCAyMTcsIDczLCAKKyAgICAxNSwgNSwgMjE3LCA1MSwgMTUsIDUsIDIxNywgMjMsIDE1LCA1LCAyMTcsIDI0LCAyNDIsIDk1LCAxNSwgNSwgMjE2LCAxMTgsIAorICAgIDE1LCA1LCAyMTYsIDExOSwgMjE2LCAyNDAsIDE1LCA1LCAyMTYsIDkxLCAxNSwgNSwgMjE2LCA3MywgMTUsIDUsIDIxNiwgCisgICAgNzQsIDMwLCAyMTcsIDczLCAxNSwgNSwgMjE2LCA3NCwgMTE3LCAyMTYsIDczLCAxNSwgNSwgMjE2LCA3NCwgMTE3LCAyMTYsIAorICAgIDc0LCAyNDMsIDEyOCwgMTE3LCAyNDMsIDEyOCwgMjQzLCA5OCwgMTE3LCAyNDMsIDk3LCAxNSwgNSwgMjE1LCAxMTksIDE1LCAKKyAgICA1LCAyMTUsIDExNCwgMTUsIDUsIDIxNSwgMTEyLCAxNSwgNSwgMjE1LCAxMDksIDE1LCA1LCAyMTUsIDk5LCAxNSwgNSwgCisgICAgMjE1LCAxMDAsIDExNywgMjE1LCAxMDAsIDIxMCwgMTE3LCAxMTcsIDIxMCwgMTE2LCAxNSwgNSwgNzAsIDE1LCA1LCAxMDQsIAorICAgIDI0MiwgMTA0LCAxNSwgNSwgMTA0LCAxMDQsIDcwLCAxNSwgNSwgMTA0LCAxMTcsIDEwNCwgMjI2LCA5MSwgMTE3LCAyMjYsIAorICAgIDkxLCAyNDMsIDk4LCAxMTcsIDI0MywgOTcsIDE1LCA1LCAxMDQsIDExNywgMTA0LCAyMTgsIDE5LCAxMTcsIDIxOCwgMTgsIAorICAgIDE1LCA1LCAxMDQsIDExNywgMTA0LCAxMDQsIDIyMywgNTAsIDExNywgMTA0LCAyMjMsIDQ5LCAxNSwgNSwgMjE0LCAyMzAsIAorICAgIDE1LCA1LCAyMTQsIDIyNSwgMTUsIDUsIDIxNCwgMjE5LCAxNSwgNSwgMjE0LCAyMjAsIDIzMywgMTkyLCAxNSwgNSwgMjE0LCAKKyAgICAyMjAsIDMwLCAyNTIsIDE3NywgMTUsIDUsIDIxNCwgMjIwLCAzMCwgMjMwLCAyMzEsIDE1LCA1LCAyMTQsIDIyMCwgMzAsIAorICAgIDEwNCwgOTYsIDEwNCwgOTYsIDcwLCAxNSwgNSwgMjE0LCAyMjAsIDMwLCAxMDQsIDk2LCAxMDQsIDk2LCAxMDQsIDI0MiwgCisgICAgOTUsIDE1LCA1LCAyMTQsIDIyMCwgMjQyLCA5NSwgMTUsIDUsIDIxNCwgMjIwLCAyMjAsIDQ2LCAxNSwgNSwgMjE0LCAyMjAsIAorICAgIDIyMCwgNDcsIDMwLCAyNTIsIDE3NywgMTUsIDUsIDIxNCwgMjE1LCAxNSwgNSwgMjE0LCAxOTcsIDE1LCA1LCAyMTQsIDE5OCwgCisgICAgMzAsIDIzMywgMTE4LCAxNSwgNSwgMjE0LCAxOTgsIDMwLCAyMzEsIDkzLCA5NiwgMjQ4LCAyMjIsIDE1LCA1LCAyMTQsIAorICAgIDE5OCwgMzAsIDIyMCwgMTAxLCAxNSwgNSwgMjE0LCAxOTgsIDMwLCA3MCwgMTUsIDUsIDIxNCwgMTk2LCAxNSwgNSwgMjE0LCAKKyAgICAxOTIsIDE1LCA1LCAyMTQsIDE5MywgMzAsIDIzNCwgMjA4LCAxNSwgNSwgMjE0LCAxOTMsIDMwLCAxOTAsIDE1LCA1LCAyMTQsIAorICAgIDE5MCwgMTUsIDUsIDIxNCwgMTkxLCAyNDIsIDk1LCAxNSwgNSwgMjE0LCAxNTAsIDE1LCA1LCAyMTQsIDE1MSwgMjQ5LCAKKyAgICAxMjYsIDIxNCwgMTUwLCAxNSwgNSwgMjE0LCAxNTEsIDIyMCwgNDYsIDE1LCA1LCAyMTQsIDE0OCwgMTUsIDUsIDIxNCwgCisgICAgMTQ5LCAzMCwgMTE1LCA5NiwgMTYyLCAxNSwgNSwgMjE0LCAxNDksIDMwLCAxMTUsIDk2LCAxOTcsIDE1LCA1LCAyMTQsIAorICAgIDE0OSwgMzAsIDI1NCwgMTc5LCAxNSwgNSwgMjE0LCAxNDksIDMwLCAxNjIsIDE1LCA1LCAyMTQsIDE0OSwgMzAsIDIyNywgCisgICAgMTk1LCAxNSwgNSwgMjE0LCAxNDksIDMwLCAyMTQsIDIzMCwgMTUsIDUsIDIxNCwgMTQ5LCAzMCwgMjE0LCAyMzEsIDk2LCAKKyAgICAyNTMsIDIzMiwgMTUsIDUsIDIxNCwgMTQ5LCAzMCwgMjE0LCAyMzEsIDk2LCAyNTIsIDcsIDE1LCA1LCAyMTQsIDE0NywgMTUsIAorICAgIDUsIDIxNCwgMTQ0LCAxNSwgNSwgMjE0LCAxNDMsIDE1LCA1LCAyMTQsIDEzOSwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgNjEsIAorICAgIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDI1MywgMjI3LCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAxMzAsIDE1LCA1LCAyMTQsIDE0MCwgCisgICAgMzAsIDI0NiwgNjksIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDI0MywgMTM2LCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAyNDMsIAorICAgIDExOSwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMjQzLCAxMDYsIDIxNiwgMjQwLCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAyNDMsIAorICAgIDk3LCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAyNDIsIDExNCwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMTYyLCAxNSwgNSwgMjE0LCAKKyAgICAxNDAsIDMwLCAyMzYsIDM2LCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAyMzYsIDE3LCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAyMzUsIAorICAgIDE2NiwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMjM0LCA5MywgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMjMyLCA4NSwgMTUsIDUsIAorICAgIDIxNCwgMTQwLCAzMCwgMjMwLCAxODksIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDE5MCwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgCisgICAgMjIwLCA2NCwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMjE5LCAxODEsIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDIxNSwgMTE5LCAKKyAgICAxNSwgNSwgMjE0LCAxNDAsIDMwLCAxMDQsIDk2LCAyNDIsIDEwNCwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMjE0LCAyMTksIAogICAgIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDIxNCwgMTM3LCAxNSwgNSwgMjE0LCAxMzcsIDE1LCA1LCAyMTQsIDEzOCwgMzAsIDcwLCAKLSAgICAxNSwgNSwgMjE0LCAxMjYsIDE1LCA1LCAyMTQsIDEyNywgMzAsIDYxLCAxNSwgNSwgMjE0LCAxMjcsIDMwLCAyMzMsIDIxNywgCi0gICAgMTUsIDUsIDIxNCwgMTI3LCAzMCwgMjMzLCAxOTYsIDE1LCA1LCAyMTQsIDEyNywgMzAsIDIxNywgNzIsIDE1LCA1LCAyMTQsIAorICAgIDE1LCA1LCAyMTQsIDEyNiwgMTUsIDUsIDIxNCwgMTI3LCAzMCwgNjEsIDE1LCA1LCAyMTQsIDEyNywgMzAsIDIzMywgMjE4LCAKKyAgICAxNSwgNSwgMjE0LCAxMjcsIDMwLCAyMzMsIDE5NywgMTUsIDUsIDIxNCwgMTI3LCAzMCwgMjE3LCA3MywgMTUsIDUsIDIxNCwgCiAgICAgMTIyLCAxNSwgNSwgMjE0LCAxMjUsIDE1LCA1LCAyMTQsIDEyMywgMTUsIDUsIDIxNCwgMTE5LCAxNSwgNSwgMjE0LCAxMDgsIAotICAgIDE1LCA1LCAyMTQsIDEwOSwgMzAsIDIzNCwgMjA3LCAxNSwgNSwgMjE0LCAxMDcsIDE1LCA1LCAyMTAsIDExNiwgMTUsIDUsIAotICAgIDIxMCwgMTE3LCAyMTYsIDIzOSwgMTUsIDUsIDIxMCwgMTE3LCA5MiwgMzAsIDIzMywgMTk2LCAxNSwgNSwgMjEwLCAxMTMsIAorICAgIDE1LCA1LCAyMTQsIDEwOSwgMzAsIDIzNCwgMjA4LCAxNSwgNSwgMjE0LCAxMDcsIDE1LCA1LCAyMTAsIDExNiwgMTUsIDUsIAorICAgIDIxMCwgMTE3LCAyMTYsIDI0MCwgMTUsIDUsIDIxMCwgMTE3LCA5MiwgMzAsIDIzMywgMTk3LCAxNSwgNSwgMjEwLCAxMTMsIAogICAgIDE1LCA1LCAyMTAsIDEwNiwgMTUsIDUsIDIxMCwgOTMsIDE1LCA1LCAyMTAsIDQ0LCAxNSwgNSwgMjEwLCA0NSwgMTE3LCAKLSAgICAyMTAsIDQ0LCAxNSwgNSwgMjEwLCA0MywgMTUsIDUsIDIxMCwgNDEsIDE1LCA1LCAyMTAsIDQyLCAyMzUsIDMsIDIxNiwgCi0gICAgMjM5LCAxNSwgNSwgMjEwLCAzNiwgMTUsIDUsIDIxMCwgMjgsIDE1LCA1LCAyMTAsIDEzLCAxNSwgNSwgMjEwLCAxMSwgMTUsIAorICAgIDIxMCwgNDQsIDE1LCA1LCAyMTAsIDQzLCAxNSwgNSwgMjEwLCA0MSwgMTUsIDUsIDIxMCwgNDIsIDIzNSwgNCwgMjE2LCAKKyAgICAyNDAsIDE1LCA1LCAyMTAsIDM2LCAxNSwgNSwgMjEwLCAyOCwgMTUsIDUsIDIxMCwgMTMsIDE1LCA1LCAyMTAsIDExLCAxNSwgCiAgICAgNSwgMjEwLCAxMiwgMzAsIDYxLCAxNSwgNSwgMjEwLCAxMCwgMTUsIDUsIDIxMCwgOSwgMTUsIDEzMiwgNSwgMTEzLCAyNTMsIAotICAgIDIzMSwgMTUsIDEzMiwgNSwgMTM0LCAyNTMsIDIzMSwgMTUsIDEzMiwgNSwgMjQ0LCAxMSwgMjUzLCAyMzEsIDE1LCAxMzIsIAotICAgIDUsIDI0NCwgODEsIDI1MywgMjMxLCAxNSwgMTMyLCA1LCAyMTksIDEyNSwgMjUzLCAyMzEsIDE1LCAxMzIsIDUsIDIyMCwgCi0gICAgMTIyLCAyNTMsIDIzMSwgMTUsIDEzMiwgNSwgMjQ1LCAxOTMsIDI1MywgMjMxLCAxNSwgMTMyLCA1LCAyMjgsIDIwMCwgMjUzLCAKLSAgICAyMzEsIDE1LCAxMzIsIDUsIDEzNCwgMjQ3LCAxODcsIDE1LCAxMzIsIDUsIDI0NCwgMTEsIDI0NywgMTg3LCAxNSwgMTMyLCAKLSAgICA1LCAyNDQsIDgxLCAyNDcsIDE4NywgMTUsIDEzMiwgNSwgMjE5LCAxMjUsIDI0NywgMTg3LCAxNSwgMTMyLCA1LCAyMjAsIAotICAgIDEyMiwgMjQ3LCAxODcsIDE1LCAxMzIsIDUsIDI0NSwgMTkzLCAyNDcsIDE4NywgMTUsIDEzMiwgNSwgMjI4LCAyMDAsIDI0NywgCi0gICAgMTg3LCAxNSwgMTMyLCA1LCAyNDQsIDExLCA3MCwgMTUsIDEzMiwgNSwgMjQ0LCA4MSwgNzAsIDE1LCAxMzIsIDUsIDIxOSwgCi0gICAgMTI1LCA3MCwgMTUsIDEzMiwgNSwgMjIwLCAxMjIsIDcwLCAxNSwgMTMyLCA1LCAyNDUsIDE5MywgNzAsIDE1LCAxMzIsIDUsIAotICAgIDIyOCwgMjAwLCA3MCwgMTUsIDEzMiwgNSwgMTIzLCAyNDMsIDM4LCAxNSwgMTMyLCA1LCAxMTMsIDI0MywgMzgsIDE1LCAKLSAgICAxMzIsIDUsIDEzNCwgMjQzLCAzOCwgMTUsIDEzMiwgNSwgMjQ0LCAxMSwgMjQzLCAzOCwgMTUsIDEzMiwgNSwgMjQ0LCA4MSwgCi0gICAgMjQzLCAzOCwgMTUsIDEzMiwgNSwgMjE5LCAxMjUsIDI0MywgMzgsIDE1LCAxMzIsIDUsIDIyMCwgMTIyLCAyNDMsIDM4LCAKLSAgICAxNSwgMTMyLCA1LCAyNDUsIDE5MywgMjQzLCAzOCwgMTUsIDEzMiwgNSwgMjI4LCAyMDAsIDI0MywgMzgsIDE1LCAxMzIsIDUsIAotICAgIDEyMywgMjQzLCAzNSwgMTUsIDEzMiwgNSwgMTEzLCAyNDMsIDM1LCAxNSwgMTMyLCA1LCAxMzQsIDI0MywgMzUsIDE1LCAKLSAgICAxMzIsIDUsIDI0NCwgMTEsIDI0MywgMzUsIDE1LCAxMzIsIDUsIDI0NCwgODEsIDI0MywgMzUsIDE1LCAxMzIsIDUsIDExMywgCi0gICAgMjIwLCA3OCwgMTUsIDEzMiwgNSwgMTM0LCAyMjAsIDc4LCAxNSwgMTMyLCA1LCAxMzQsIDIyMCwgNzksIDIxNCwgMTIsIDE3LCAKLSAgICAxNSwgMTMyLCA1LCAyNDQsIDExLCAyMjAsIDc4LCAxNSwgMTMyLCA1LCAyNDQsIDgxLCAyMjAsIDc4LCAxNSwgMTMyLCA1LCAKLSAgICAyMTksIDEyNSwgMjIwLCA3OCwgMTUsIDEzMiwgNSwgMjIwLCAxMjIsIDIyMCwgNzgsIDE1LCAxMzIsIDUsIDI0NSwgMTkzLCAKLSAgICAyMjAsIDc4LCAxNSwgMTMyLCA1LCAyMjgsIDIwMCwgMjIwLCA3OCwgMTUsIDEzMiwgNSwgMTIzLCAyMjAsIDczLCAxNSwgCi0gICAgMTMyLCA1LCAxMTMsIDIyMCwgNzMsIDE1LCAxMzIsIDUsIDEzNCwgMjIwLCA3MywgMTUsIDEzMiwgNSwgMTM0LCAyMjAsIDc0LCAKLSAgICAyMTQsIDEyLCAxNywgMTUsIDEzMiwgNSwgMjQ0LCAxMSwgMjIwLCA3MywgMTUsIDEzMiwgNSwgMjQ0LCA4MSwgMjIwLCA3MywgCi0gICAgMTUsIDEzMiwgNSwgMjIwLCA3OSwgMzAsIDI0MywgMTE5LCA5NiwgMjQ3LCAxODcsIDE1LCAxMzIsIDUsIDIyMCwgNzksIDMwLCAKLSAgICAyNDMsIDExOSwgOTYsIDIzMCwgMTg4LCAxNSwgMTMyLCA1LCAxMjMsIDI1MSwgOTUsIDE1LCAxMzIsIDUsIDExMywgMjUxLCAKLSAgICA5NSwgMTUsIDEzMiwgNSwgMTM0LCAyNTEsIDk1LCAxNSwgMTMyLCA1LCAxMzQsIDI1MSwgOTYsIDIxNCwgMTIsIDE3LCAxNSwgCi0gICAgMTMyLCA1LCAyNDQsIDExLCAyNTEsIDk1LCAxNSwgMTMyLCA1LCAyNDQsIDgxLCAyNTEsIDk1LCAxNSwgMTMyLCA1LCAxMzQsIAotICAgIDIxNCwgMTIsIDI0NCwgMjAsIDI0NSwgNzQsIDE1LCAxMzIsIDUsIDEzNCwgMjE0LCAxMiwgMjQ0LCAyMCwgMjQ1LCA3MSwgCi0gICAgMTUsIDEzMiwgNSwgMjQ0LCAxMSwgMjE0LCAxMiwgMjQ0LCAyMCwgMjMyLCAyMTcsIDE1LCAxMzIsIDUsIDI0NCwgMTEsIAotICAgIDIxNCwgMTIsIDI0NCwgMjAsIDIzMiwgMjE1LCAxNSwgMTMyLCA1LCAyNDQsIDExLCAyMTQsIDEyLCAyNDQsIDIwLCAyMzIsIAotICAgIDIxOCwgNjEsIDE1LCAxMzIsIDUsIDI0NCwgMTEsIDIxNCwgMTIsIDI0NCwgMjAsIDIzMiwgMjE4LCAyNTMsIDE1OCwgMTUsIAotICAgIDEzMiwgNSwgMjE5LCAxMjUsIDIxNCwgMTIsIDI0NCwgMjAsIDI1MywgMjI4LCAxNSwgMTMyLCA1LCAyMjAsIDEyMiwgMjE0LCAKLSAgICAxMiwgMjQ0LCAyMCwgMjM2LCA4LCAxNSwgMTMyLCA1LCAyMjAsIDEyMiwgMjE0LCAxMiwgMjQ0LCAyMCwgMjM2LCAxMCwgNjEsIAotICAgIDE1LCAxMzIsIDUsIDIyMCwgMTIyLCAyMTQsIDEyLCAyNDQsIDIwLCAyMzYsIDEwLCAyNTMsIDE1OCwgMTUsIDEzMiwgNSwgCi0gICAgMjQ1LCAxOTMsIDIxNCwgMTIsIDI0NCwgMjAsIDIxNCwgMTIxLCAxNSwgMTMyLCA1LCAyNDUsIDE5MywgMjE0LCAxMiwgMjQ0LCAKLSAgICAyMCwgMjE0LCAxMjAsIDE1LCAxMzIsIDUsIDIyOCwgMjAwLCAyMTQsIDEyLCAyNDQsIDIwLCAyMzYsIDI0LCAxNSwgMTMyLCAKLSAgICA1LCAyMjgsIDIwMCwgMjE0LCAxMiwgMjQ0LCAyMCwgMjM2LCAyMywgMTUsIDEzMiwgNSwgMjI4LCAyMDAsIDIxNCwgMTIsIAotICAgIDI0NCwgMjAsIDIzNiwgMjIsIDE1LCAxMzIsIDUsIDIyOCwgMjAwLCAyMTQsIDEyLCAyNDQsIDIwLCAyMzYsIDI1LCA2MSwgCi0gICAgMTUsIDEzMiwgNSwgMTEzLCAyNTMsIDIzMiwgMjE2LCAyMzksIDE1LCAxMzIsIDUsIDEzNCwgMjUzLCAyMzIsIDIxNiwgMjM5LCAKLSAgICAxNSwgMTMyLCA1LCAyNDQsIDExLCAyNTMsIDIzMiwgMjE2LCAyMzksIDE1LCAxMzIsIDUsIDI0NCwgODEsIDI1MywgMjMyLCAKLSAgICAyMTYsIDIzOSwgMTUsIDEzMiwgNSwgMjE5LCAxMjUsIDI1MywgMjMyLCAyMTYsIDIzOSwgMTUsIDEzMiwgNSwgMTIzLCAyNTIsIAotICAgIDE1MCwgMTUsIDEzMiwgNSwgMTEzLCAyNTIsIDE1MCwgMTUsIDEzMiwgNSwgMTM0LCAyNTIsIDE1MCwgMTUsIDEzMiwgNSwgCi0gICAgMjQ0LCAxMSwgMjUyLCAxNTAsIDE1LCAxMzIsIDUsIDI0NCwgMTEsIDI1MiwgMTUxLCAyMTQsIDEyLCAxNywgMTUsIDEzMiwgCi0gICAgNSwgMjQ0LCA4MSwgMjUyLCAxNTAsIDE1LCAxMzIsIDUsIDI0NCwgODEsIDI1MiwgMTUxLCAyMTQsIDEyLCAxNywgMTUsIAotICAgIDEzMiwgNSwgMjI4LCAyMTAsIDE1LCAxMzIsIDUsIDIyOCwgMjExLCAxNSwgMTMyLCA1LCAxMjMsIDI0NSwgNzAsIDE1LCAKLSAgICAxMzIsIDUsIDExMywgMjQ1LCA3MCwgMTUsIDEzMiwgNSwgMTIzLCAyMTYsIDE2OSwgMjQ3LCAxODcsIDE1LCAxMzIsIDUsIAotICAgIDExMywgMjE2LCAxNjcsIDI0NywgMTg3LCAxNSwgMTMyLCA1LCAyNDQsIDgxLCAyMTksIDExNCwgMjQ3LCAxODcsIDE1LCAKLSAgICAxMzIsIDUsIDEyMywgMjE2LCAxNjksIDIxNCwgMTIsIDI0NCwgMjAsIDYxLCAxNSwgMTMyLCA1LCAxMTMsIDIxNiwgMTY3LCAKLSAgICAyMTQsIDEyLCAyNDQsIDIwLCA2MSwgMTUsIDEzMiwgNSwgMTIzLCAyNDUsIDE4OSwgMjUzLCAyMzEsIDE1LCAxMzIsIDUsIAotICAgIDEyMywgMjI0LCAyMiwgMjUzLCAyMzEsIDE1LCAxMzIsIDUsIDU1LCAyNTMsIDIxOSwgMTIzLCAyMTksIDExNSwgMTUsIDEzMiwgCi0gICAgNSwgNTUsIDI1MywgMjE5LCAxMjMsIDIyNCwgMjEsIDE1LCAyMjQsIDE0MSwgNSwgNTUsIDI1MywgMjE5LCAyMTEsIDIwOSwgCi0gICAgMjQ3LCAxNzIsIDE1LCAyMjQsIDE0MSwgNSwgNjcsIDI0OSwgMjI2LCAxNSwgMjI0LCAxNDEsIDUsIDI0NywgMjU1LCAyNDksIAotICAgIDIyNiwgMTUsIDIyNCwgMTQxLCA1LCAyNDcsIDI1NSwgMjE1LCAyMjEsIDEyLCAxMywgMjU1LCAxNTUsIDEyLCAxMywgMjU1LCAKLSAgICAxNTQsIDEyLCAxMywgMjU1LCAxNTMsIDEyLCAxMywgMjU1LCAxNTIsIDEyLCAxMywgMjU1LCAxNTEsIDEyLCAxMywgMjU1LCAKLSAgICAxNTAsIDEyLCAxMywgMjU1LCAxNDksIDEyLCAxMywgMjU1LCAxNDgsIDEyLCAxMywgMjU1LCAxNDcsIDEyLCAxMywgMjU1LCAKLSAgICAxNDYsIDEyLCAxMywgMjU1LCAxNDUsIDEyLCAxMywgMjU1LCAxNDQsIDEyLCAxMywgMjU1LCAxNDMsIDEyLCAxMywgMjU1LCAKLSAgICAxNDIsIDEyLCAxMywgMjU1LCAxNDEsIDEyLCAxMywgMjU1LCAxNDAsIDEyLCAxMywgMjU1LCAxMzksIDEyLCAxMywgMjU1LCAKLSAgICAxMzgsIDEyLCAxMywgMjU1LCAxMzcsIDEyLCAxMywgMjU1LCAxMzYsIDEyLCAxMywgMjU1LCAxMzUsIDEyLCAxMywgMjU1LCAKLSAgICAxMzQsIDEyLCAxMywgMjU1LCAxMzMsIDEyLCAxMywgMjU1LCAxMzIsIDEyLCAxMywgMjU1LCAxMzEsIDEyLCAxMywgMjU1LCAKLSAgICAxMzAsIDEyLCAxMywgMjU1LCAxMjksIDEyLCAxMywgMjU1LCAxMjgsIDEyLCAxMywgMjU1LCAxMjcsIDEyLCAxMywgMjU1LCAKLSAgICAxMjYsIDEyLCAxMywgMjU1LCAxMjUsIDEyLCAxMywgMjU1LCAxMjQsIDEyLCAxMywgMjU1LCAxMjMsIDEyLCAxMywgMjU1LCAKLSAgICAxMjIsIDEyLCAxMywgMjU1LCAxMjEsIDEyLCAxMywgMjU1LCAxMjAsIDEyLCAxMywgMjU1LCAxMTksIDEyLCAxMywgMjU1LCAKLSAgICAxMTgsIDEyLCAxMywgMjU1LCAxMTcsIDEyLCAxMywgMjU1LCAxMTYsIDEyLCAxMywgMjU1LCAxMTUsIDEyLCAxMywgMjU1LCAKLSAgICAxMTQsIDEyLCAxMywgMjU1LCAxMTMsIDEyLCAxMywgMjU1LCAxMTIsIDEyLCAxMywgMjU1LCAxMTEsIDEyLCAxMywgMjU1LCAKLSAgICAxMTAsIDEyLCAxMywgMjU1LCAxMDksIDEyLCAxMywgMjU1LCAxMDgsIDEyLCAxMywgMjU1LCAxMDcsIDEyLCAxMywgMjU1LCAKLSAgICAxMDYsIDEyLCAxMywgMjU1LCAxMDUsIDEyLCAxMywgMjU1LCAxMDQsIDEyLCAxMywgMjU1LCAxMDMsIDEyLCAxMywgMjU1LCAKLSAgICAxMDIsIDEyLCAxMywgMjU1LCAxMDEsIDEyLCAxMywgMjU1LCAxMDAsIDEyLCAxMywgMjU1LCA5OSwgMTIsIDEzLCAyNTUsIAotICAgIDk4LCAxMiwgMTMsIDI1NSwgOTcsIDEyLCAxMywgMjU1LCA5NiwgMTIsIDEzLCAyNTUsIDk1LCAxMiwgMTMsIDI1NSwgOTQsIAotICAgIDEyLCAxMywgMjU1LCA5MywgMTIsIDEzLCAyNTUsIDkyLCAxMiwgMTMsIDI1NSwgOTEsIDEyLCAxMywgMjU1LCA5MCwgMTIsIAotICAgIDEzLCAyNTUsIDg5LCAxMiwgMTMsIDI1NSwgODgsIDEyLCAxMywgMjU1LCA4NywgMTIsIDEzLCAyNTUsIDg2LCAxMiwgMTMsIAotICAgIDI1NSwgODUsIDEyLCAxMywgMjU1LCA4NCwgMTIsIDEzLCAyNTUsIDgzLCAxMiwgMTMsIDI1NSwgODIsIDEyLCAxMywgMjU1LCAKLSAgICA4MSwgMTIsIDEzLCAyNTUsIDgwLCAxMiwgMTMsIDI1NSwgNzksIDEyLCAxMywgMjU1LCA3OCwgMTIsIDEzLCAyNTUsIDc3LCAKLSAgICAxMiwgMTMsIDI1NSwgNzYsIDEyLCAxMywgMjUzLCAxNTYsIDEyLCAxMywgMjUzLCAxNTQsIDEyLCAxMywgMjUzLCAxNTIsIAotICAgIDEyLCAxMywgMjUzLCAxNTAsIDEyLCAxMywgMjUzLCAxNDgsIDEyLCAxMywgMjUzLCAxNDcsIDEyLCAxMywgMjUzLCAxNDUsIAotICAgIDEyLCAxMywgMjUzLCAxNDMsIDEyLCAxMywgMjUzLCAxNDEsIDEyLCAxMywgMjUzLCAxMzksIDEyLCAxMywgMjUxLCA2MiwgCi0gICAgMTIsIDEzLCAyNTEsIDYxLCAxMiwgMTMsIDI1MSwgNjAsIDEyLCAxMywgMjUxLCA1OSwgMTIsIDEzLCAyNTEsIDU4LCAxMiwgCi0gICAgMTMsIDI1MSwgNTcsIDEyLCAxMywgMjUxLCA1NiwgMTIsIDEzLCAyNTEsIDU1LCAxMiwgMTMsIDI1MSwgNTQsIDEyLCAxMywgCi0gICAgMjUxLCA1MywgMTIsIDEzLCAyNTEsIDUyLCAxMiwgMTMsIDI1MSwgNTEsIDEyLCAxMywgMjUxLCA1MCwgMTIsIDEzLCAyNTEsIAotICAgIDQ5LCAxMiwgMTMsIDI1MSwgNDgsIDEyLCAxMywgMjUxLCA0NywgMTIsIDEzLCAyNTEsIDQ2LCAxMiwgMTMsIDI1MSwgNDUsIAotICAgIDEyLCAxMywgMjUxLCA0NCwgMTIsIDEzLCAyNTEsIDQzLCAxMiwgMTMsIDI1MSwgNDIsIDEyLCAxMywgMjUxLCA0MSwgMTIsIAotICAgIDEzLCAyNTEsIDQwLCAxMiwgMTMsIDI1MSwgMzksIDEyLCAxMywgMjUxLCAzOCwgMTIsIDEzLCAyNTEsIDM3LCAxMiwgMTMsIAotICAgIDI1MSwgMzYsIDEyLCAxMywgMjUxLCAzNSwgMTIsIDEzLCAyNDksIDU5LCAxMiwgMTMsIDI0OSwgNTgsIDEyLCAxMywgMjQ5LCAKLSAgICA1NywgMTIsIDEzLCAyNDksIDU2LCAxMiwgMTMsIDI0OSwgNTUsIDEyLCAxMywgMjQ5LCA1NCwgMTIsIDEzLCAyNDksIDUzLCAKLSAgICAxMiwgMTMsIDI0OSwgNTIsIDEyLCAxMywgMjQ5LCA1MSwgMTIsIDEzLCAyNDksIDUwLCAxMiwgMTMsIDI0OSwgNDksIDEyLCAKLSAgICAxMywgMjQ5LCA0OCwgMTIsIDEzLCAyNDksIDQ3LCAxMiwgMTMsIDI0OSwgNDYsIDEyLCAxMywgMjQ5LCA0NSwgMTIsIDEzLCAKLSAgICAyNDksIDQ0LCAxMiwgMTMsIDI0OSwgNDMsIDEyLCAxMywgMjQ5LCA0MiwgMTIsIDEzLCAyNDksIDQxLCAxMiwgMTMsIDI0OSwgCi0gICAgNDAsIDEyLCAxMywgMjQ5LCAzOSwgMTIsIDEzLCAyNDksIDM4LCAxMiwgMTMsIDI0OSwgMzcsIDEyLCAxMywgMjQ5LCAzNiwgCi0gICAgMTIsIDEzLCAyNDksIDM1LCAxMiwgMTMsIDI0OSwgMzQsIDEyLCAxMywgMjQ5LCAzMywgMTIsIDEzLCAyNDksIDMyLCAxMiwgCi0gICAgMTMsIDI0OSwgMzEsIDEyLCAxMywgMjQ5LCAzMCwgMTIsIDEzLCAyNDksIDI5LCAxMiwgMTMsIDI0OSwgMjgsIDEyLCAxMywgCi0gICAgMjQ5LCAyNywgMTIsIDEzLCAyNDksIDI2LCAxMiwgMTMsIDI0OSwgMjUsIDEyLCAxMywgMjQ5LCAyNCwgMTIsIDEzLCAyNDksIAotICAgIDIzLCAxMiwgMTMsIDI0OSwgMjIsIDEyLCAxMywgMjQ5LCAyMSwgMTIsIDEzLCAyNDksIDIwLCAxMiwgMTMsIDI0OSwgMTksIAotICAgIDEyLCAxMywgMjQ5LCAxOCwgMTIsIDEzLCAyNDksIDE3LCAxMiwgMTMsIDI0OSwgMTYsIDEyLCAxMywgMjQ5LCAxNSwgMTIsIAotICAgIDEzLCAyNDksIDE0LCAxMiwgMTMsIDI0OSwgMTMsIDEyLCAxMywgMjQ5LCAxMiwgMTIsIDEzLCAyNDksIDExLCAxMiwgMTMsIAotICAgIDI0OSwgMTAsIDEyLCAxMywgMjQ5LCA5LCAxMiwgMTMsIDI0OSwgOCwgMTIsIDEzLCAyNDksIDcsIDEyLCAxMywgMjQ5LCA2LCAKLSAgICAxMiwgMTMsIDI0OSwgNSwgMTIsIDEzLCAyNDksIDQsIDEyLCAxMywgMjQ5LCAzLCAxMiwgMTMsIDI0OSwgMiwgMTIsIDEzLCAKLSAgICAyNDksIDEsIDEyLCAxMywgMjQ5LCAwLCAxMiwgMTMsIDI0OCwgMjU1LCAxMiwgMTMsIDI0OCwgMjU0LCAxMiwgMTMsIDI0OCwgCi0gICAgMjUzLCAxMiwgMTMsIDI0OCwgMjUyLCAxMiwgMTMsIDI0OCwgMjUxLCAxMiwgMTMsIDI0OCwgMjUwLCAxMiwgMTMsIDI0OCwgCi0gICAgMjQ5LCAxMiwgMTMsIDI0OCwgMjQ4LCAxMiwgMTMsIDI0OCwgMjQ3LCAxMiwgMTMsIDI0OCwgMjQ2LCAxMiwgMTMsIDI0OCwgCi0gICAgMjQ1LCAxMiwgMTMsIDI0OCwgMjQ0LCAxMiwgMTMsIDI0OCwgMjQzLCAxMiwgMTMsIDI0OCwgMjQyLCAxMiwgMTMsIDI0OCwgCi0gICAgMjQxLCAxMiwgMTMsIDI0OCwgMjQwLCAxMiwgMTMsIDI0OCwgMjM5LCAxMiwgMTMsIDI0OCwgMjM4LCAxMiwgMTMsIDI0OCwgCi0gICAgMjM3LCAxMiwgMTMsIDI0OCwgMjM2LCAxMiwgMTMsIDI0OCwgMjM1LCAxMiwgMTMsIDI0OCwgMjM0LCAxMiwgMTMsIDI0OCwgCi0gICAgMjMzLCAxMiwgMTMsIDI0OCwgMjMyLCAxMiwgMTMsIDI0OCwgMjMxLCAxMiwgMTMsIDI0OCwgMjMwLCAxMiwgMTMsIDI0OCwgCi0gICAgMjI5LCAxMiwgMTMsIDI0OCwgMjI4LCAxMiwgMTMsIDI0OCwgMjI3LCAxMiwgMTMsIDI0OCwgMjI2LCAxMiwgMTMsIDI0OCwgCi0gICAgMjI1LCAxMiwgMTMsIDI0OCwgMjI0LCAxMiwgMTMsIDI0NiwgMjMsIDEyLCAxMywgMjQ2LCAyMiwgMTIsIDEzLCAyNDYsIDIxLCAKLSAgICAxMiwgMTMsIDI0NiwgMjAsIDEyLCAxMywgMjQ2LCAxOSwgMTIsIDEzLCAyNDYsIDE4LCAxMiwgMTMsIDI0NiwgMTcsIDEyLCAKLSAgICAxMywgMjQ2LCAxNiwgMTIsIDEzLCAyNDYsIDE1LCAxMiwgMTMsIDI0NiwgMTQsIDEyLCAxMywgMjQ2LCAxMywgMTIsIDEzLCAKLSAgICAyNDYsIDEyLCAxMiwgMTMsIDI0NiwgMTEsIDEyLCAxMywgMjQ2LCAxMCwgMTIsIDEzLCAyNDYsIDksIDEyLCAxMywgMjQ2LCAKLSAgICA4LCAxMiwgMTMsIDI0NiwgNywgMTIsIDEzLCAyNDYsIDYsIDEyLCAxMywgMjQ2LCA1LCAxMiwgMTMsIDI0NiwgNCwgMTIsIAotICAgIDEzLCAyNDYsIDMsIDEyLCAxMywgMjQ2LCAyLCAxMiwgMTMsIDI0NiwgMSwgMTIsIDEzLCAyNDYsIDAsIDEyLCAxMywgMjQ1LCAKLSAgICAyNTUsIDEyLCAxMywgMjQ1LCAyNTQsIDEyLCAxMywgMjQ1LCAyNTMsIDEyLCAxMywgMjQ1LCAyNTIsIDEyLCAxMywgMjQ1LCAKLSAgICAyNTEsIDEyLCAxMywgMjQ1LCAyNTAsIDEyLCAxMywgMjQ1LCAyNDksIDEyLCAxMywgMjQ1LCAyNDgsIDEyLCAxMywgMjQ1LCAKLSAgICAyNDcsIDEyLCAxMywgMjQ1LCAyNDYsIDEyLCAxMywgMjQ1LCAyNDUsIDEyLCAxMywgMjQ1LCAyNDQsIDEyLCAxMywgMjQ1LCAKLSAgICAyNDMsIDEyLCAxMywgMjQ1LCAyNDIsIDEyLCAxMywgMjQ1LCAyNDEsIDEyLCAxMywgMjQ1LCAyNDAsIDEyLCAxMywgMjQ1LCAKLSAgICAyMzksIDEyLCAxMywgMjQ1LCAyMzgsIDEyLCAxMywgMjQ1LCAyMzcsIDEyLCAxMywgMjQ1LCAyMzYsIDEyLCAxMywgMjQ1LCAKLSAgICA1LCAxMiwgMTMsIDI0NSwgNCwgMTIsIDEzLCAyNDUsIDMsIDEyLCAxMywgMjQ1LCAyLCAxMiwgMTMsIDI0NSwgMSwgMTIsIAotICAgIDEzLCAyNDUsIDAsIDEyLCAxMywgMjQ0LCAyNTUsIDEyLCAxMywgMjQ0LCAyNTQsIDEyLCAxMywgMjQ0LCAyNTMsIDEyLCAxMywgCi0gICAgMjQ0LCAyNTIsIDEyLCAxMywgMjQ0LCAyNTEsIDEyLCAxMywgMjQ0LCAyNTAsIDEyLCAxMywgMjQ0LCAyNDksIDEyLCAxMywgCi0gICAgMjQ0LCAyNDgsIDEyLCAxMywgMjQ0LCAyNDcsIDEyLCAxMywgMjQ0LCAyNDYsIDEyLCAxMywgMjQ0LCAyNDUsIDEyLCAxMywgCi0gICAgMjQ0LCAyNDQsIDEyLCAxMywgMjQ0LCAyNDMsIDEyLCAxMywgMjQ0LCAyNDIsIDEyLCAxMywgMjQ0LCAyNDEsIDEyLCAxMywgCi0gICAgMjQ0LCAyNDAsIDEyLCAxMywgMjQ0LCAyMzksIDEyLCAxMywgMjQ0LCAyMzgsIDEyLCAxMywgMjQ0LCAyMzcsIDEyLCAxMywgCi0gICAgMjQ0LCAyMzYsIDEyLCAxMywgMjQ0LCAyMzUsIDEyLCAxMywgMjQ0LCAyMzQsIDEyLCAxMywgMjQ0LCAyMzMsIDEyLCAxMywgCi0gICAgMjQ0LCAyMzIsIDEyLCAxMywgMjQ0LCAyMzEsIDEyLCAxMywgMjQ0LCAyMzAsIDEyLCAxMywgMjQ0LCAyMjksIDEyLCAxMywgCi0gICAgMjQ0LCAyMjgsIDEyLCAxMywgMjQ0LCAyMjcsIDEyLCAxMywgMjQ0LCAyMjYsIDEyLCAxMywgMjQ0LCAyMjUsIDEyLCAxMywgCi0gICAgMjQ0LCAyMjQsIDEyLCAxMywgMjQ0LCAyMjMsIDEyLCAxMywgMjQ0LCAyMjIsIDEyLCAxMywgMjQ0LCAyMjEsIDEyLCAxMywgCi0gICAgMjQ0LCAyMjAsIDEyLCAxMywgMjQ0LCAyMTksIDEyLCAxMywgMjQ0LCAyMTgsIDEyLCAxMywgMjQ0LCAyMTcsIDEyLCAxMywgCi0gICAgMjQ0LCAyMTYsIDEyLCAxMywgMjQ0LCAyMTUsIDEyLCAxMywgMjQ0LCAyMTQsIDEyLCAxMywgMjQ0LCAyMTMsIDEyLCAxMywgCi0gICAgMjQ0LCAyMTIsIDEyLCAxMywgMjQ0LCAyMTEsIDEyLCAxMywgMjQ0LCAyMTAsIDEyLCAxMywgMjQ0LCAyMDksIDEyLCAxMywgCi0gICAgMjQ0LCAyMDgsIDEyLCAxMywgMjQ0LCAyMDcsIDEyLCAxMywgMjQ0LCAyMDYsIDEyLCAxMywgMjQ0LCAyMDUsIDEyLCAxMywgCi0gICAgMjQ0LCAyMDQsIDEyLCAxMywgMjQ0LCAyMDMsIDEyLCAxMywgMjQ0LCAyMDIsIDEyLCAxMywgMjQ0LCAyMDEsIDEyLCAxMywgCi0gICAgMjQ0LCAyMDAsIDEyLCAxMywgMjQ0LCAxOTksIDEyLCAxMywgMjQ0LCAxOTgsIDEyLCAxMywgMjQ0LCAxOTcsIDEyLCAxMywgCi0gICAgMjQzLCAyMDEsIDEyLCAxMywgMjQzLCAyMDAsIDEyLCAxMywgMjQzLCAxOTksIDEyLCAxMywgMjQzLCAxOTgsIDEyLCAxMywgCi0gICAgMjQzLCAxOTcsIDEyLCAxMywgMjQzLCAxOTYsIDEyLCAxMywgMjQzLCAxOTUsIDEyLCAxMywgMjQzLCAxOTQsIDEyLCAxMywgCi0gICAgMjQzLCAxOTMsIDEyLCAxMywgMjQzLCAxOTIsIDEyLCAxMywgMjQzLCAxOTEsIDEyLCAxMywgMjQzLCAxOTAsIDEyLCAxMywgCi0gICAgMjQzLCAxODksIDEyLCAxMywgMjQzLCAxODgsIDEyLCAxMywgMjQzLCAxODcsIDEyLCAxMywgMjQzLCAxODYsIDEyLCAxMywgCi0gICAgMjQzLCAxODUsIDEyLCAxMywgMjQzLCAxODQsIDEyLCAxMywgMjQzLCAxODMsIDEyLCAxMywgMjQzLCAxODIsIDEyLCAxMywgCi0gICAgMjQzLCAxODEsIDEyLCAxMywgMjQzLCAxODAsIDEyLCAxMywgMjQzLCAxNzksIDEyLCAxMywgMjQzLCAxNzgsIDEyLCAxMywgCi0gICAgMjQzLCAxNzcsIDEyLCAxMywgMjQzLCAxNzYsIDEyLCAxMywgMjQzLCAxNzUsIDEyLCAxMywgMjQzLCAxNzQsIDEyLCAxMywgCi0gICAgMjQzLCAxNzMsIDEyLCAxMywgMjQzLCAxNzIsIDEyLCAxMywgMjQzLCAxNzEsIDEyLCAxMywgMjQzLCAxNzAsIDEyLCAxMywgCi0gICAgMjQzLCAxNjksIDEyLCAxMywgMjQzLCAxNjgsIDEyLCAxMywgMjQzLCAxNjcsIDEyLCAxMywgMjQzLCAxNjYsIDEyLCAxMywgCi0gICAgMjQzLCAxNjUsIDEyLCAxMywgMjQzLCAxNjQsIDEyLCAxMywgMjQzLCAxNjMsIDEyLCAxMywgMjQzLCAxNjIsIDEyLCAxMywgCi0gICAgMjQzLCAxNjEsIDEyLCAxMywgMjQzLCAxNjAsIDEyLCAxMywgMjQzLCAxNTksIDEyLCAxMywgMjQzLCAxNTgsIDEyLCAxMywgCi0gICAgMjQzLCAxNTcsIDEyLCAxMywgMjQzLCAxNTYsIDEyLCAxMywgMjQzLCAxNTUsIDEyLCAxMywgMjQzLCAxNTQsIDEyLCAxMywgCi0gICAgMjQzLCAxNTMsIDEyLCAxMywgMjQzLCAxNTIsIDEyLCAxMywgMjQzLCAxNTEsIDEyLCAxMywgMjQzLCAxNTAsIDEyLCAxMywgCi0gICAgMjQzLCAxNDksIDEyLCAxMywgMjQzLCAxNDgsIDEyLCAxMywgMjQzLCAxNDcsIDEyLCAxMywgMjQzLCAxNDYsIDEyLCAxMywgCi0gICAgMjQzLCAxNDUsIDEyLCAxMywgMjQzLCAxNDQsIDEyLCAxMywgMjQzLCAxNDMsIDEyLCAxMywgMjQzLCAxNDIsIDEyLCAxMywgCi0gICAgMjQzLCAxNDEsIDEyLCAxMywgMjQzLCAxNDAsIDEyLCAxMywgMjQzLCAxMzksIDEyLCAxMywgMjQzLCAxMzgsIDEyLCAxMywgCi0gICAgMjQyLCA1OCwgMTIsIDEzLCAyNDIsIDU3LCAxMiwgMTMsIDI0MiwgNTYsIDEyLCAxMywgMjQyLCA1NSwgMTIsIDEzLCAyNDIsIAotICAgIDU0LCAxMiwgMTMsIDI0MiwgNTMsIDEyLCAxMywgMjQyLCA1MiwgMTIsIDEzLCAyNDIsIDUxLCAxMiwgMTMsIDI0MiwgNTAsIAotICAgIDEyLCAxMywgMjQwLCAxMzgsIDEyLCAxMywgMjQwLCAxMzcsIDEyLCAxMywgMjQwLCAxMzYsIDEyLCAxMywgMjQwLCAxMzUsIAotICAgIDEyLCAxMywgMjQwLCAxMzQsIDEyLCAxMywgMjQwLCAxMzMsIDEyLCAxMywgMjQwLCAxMzIsIDEyLCAxMywgMjQwLCAxMzEsIAotICAgIDEyLCAxMywgMjQwLCAxMzAsIDEyLCAxMywgMjQwLCAxMjksIDEyLCAxMywgMjQwLCAxMjgsIDEyLCAxMywgMjQwLCAxMjcsIAotICAgIDEyLCAxMywgMjQwLCAxMjYsIDEyLCAxMywgMjQwLCAxMjUsIDEyLCAxMywgMjQwLCAxMjQsIDEyLCAxMywgMjQwLCAxMjMsIAotICAgIDEyLCAxMywgMjQwLCAxMjIsIDEyLCAxMywgMjQwLCAxMjEsIDEyLCAxMywgMjQwLCAxMjAsIDEyLCAxMywgMjM1LCAyMiwgCi0gICAgMTIsIDEzLCAyMzUsIDIxLCAxMiwgMTMsIDIzNSwgMjAsIDEyLCAxMywgMjM1LCAxOSwgMTIsIDEzLCAyMzUsIDE4LCAxMiwgCi0gICAgMTMsIDIzNSwgMTcsIDEyLCAxMywgMjM1LCAxNiwgMTIsIDEzLCAyMzUsIDE1LCAxMiwgMTMsIDIzMywgMTQ2LCAxMiwgMTMsIAotICAgIDIzMywgMTQ1LCAxMiwgMTMsIDIzMywgMTQ0LCAxMiwgMTMsIDIzMywgMTQzLCAxMiwgMTMsIDIzMywgMTQyLCAxMiwgMTMsIAotICAgIDIzMywgMTQxLCAxMiwgMTMsIDIzMywgMTQwLCAxMiwgMTMsIDIzMywgMTM5LCAxMiwgMTMsIDIzMywgMTM4LCAxMiwgMTMsIAotICAgIDIzMywgMTM3LCAxMiwgMTMsIDIzMiwgNDksIDEyLCAxMywgMjMyLCA0OCwgMTIsIDEzLCAyMzIsIDQ3LCAxMiwgMTMsIDIzMiwgCi0gICAgNDYsIDEyLCAxMywgMjMyLCA0NSwgMTIsIDEzLCAyMzIsIDQ0LCAxMiwgMTMsIDIzMiwgNDMsIDEyLCAxMywgMjMyLCA0MiwgCi0gICAgMTIsIDEzLCAyMzIsIDQxLCAxMiwgMTMsIDIzMiwgNDAsIDEyLCAxMywgMjMyLCAzOSwgMTIsIDEzLCAyMzIsIDM4LCAxMiwgCi0gICAgMTMsIDIzMiwgMzcsIDEyLCAxMywgMjMyLCAzNiwgMTIsIDEzLCAyMzIsIDM1LCAxMiwgMTMsIDIzMiwgMzQsIDEyLCAxMywgCi0gICAgMjMyLCAzMywgMTIsIDEzLCAyMzIsIDMyLCAxMiwgMTMsIDIzMiwgMzEsIDEyLCAxMywgMjMyLCAzMCwgMTIsIDEzLCAyMzIsIAotICAgIDI5LCAxMiwgMTMsIDIzMiwgMjgsIDEyLCAxMywgMjMyLCAyNywgMTIsIDEzLCAyMzIsIDI2LCAxMiwgMTMsIDIzMiwgMjUsIAotICAgIDEyLCAxMywgMjMyLCAyNCwgMTIsIDEzLCAyMzIsIDIzLCAxMiwgMTMsIDIzMiwgMjIsIDEyLCAxMywgMjMyLCAyMSwgMTIsIAotICAgIDEzLCAyMzIsIDIwLCAxMiwgMTMsIDIzMiwgMTksIDEyLCAxMywgMjMyLCAxOCwgMTIsIDEzLCAyMzIsIDE3LCAxMiwgMTMsIAotICAgIDIzMiwgMTYsIDEyLCAxMywgMjMyLCAxNSwgMTIsIDEzLCAyMzIsIDE0LCAxMiwgMTMsIDIzMiwgMTMsIDEyLCAxMywgMjMyLCAKLSAgICAxMiwgMTIsIDEzLCAyMzIsIDExLCAxMiwgMTMsIDIzMiwgMTAsIDEyLCAxMywgMjMyLCA5LCAxMiwgMTMsIDIzMiwgOCwgMTIsIAotICAgIDEzLCAyMzIsIDcsIDEyLCAxMywgMjMyLCA2LCAxMiwgMTMsIDIzMiwgNSwgMTIsIDEzLCAyMzIsIDQsIDEyLCAxMywgMjMyLCAKLSAgICAzLCAxMiwgMTMsIDIzMiwgMiwgMTIsIDEzLCAyMzIsIDEsIDEyLCAxMywgMjMyLCAwLCAxMiwgMTMsIDIzMSwgMjU1LCAxMiwgCi0gICAgMTMsIDIzMSwgMjU0LCAxMiwgMTMsIDIzMSwgMjUzLCAxMiwgMTMsIDIzMSwgMjUyLCAxMiwgMTMsIDIzMSwgMjUxLCAxMiwgCi0gICAgMTMsIDIzMSwgMjUwLCAxMiwgMTMsIDIzMSwgMjQ5LCAxMiwgMTMsIDIzMSwgMjQ4LCAxMiwgMTMsIDIzMSwgMjQ3LCAxMiwgCi0gICAgMTMsIDIzMSwgMjQ2LCAxMiwgMTMsIDIzMSwgMjQ1LCAxMiwgMTMsIDIzMSwgMjQ0LCAxMiwgMTMsIDIzMSwgMjQzLCAxMiwgCi0gICAgMTMsIDIzMSwgMjQyLCAxMiwgMTMsIDIzMSwgMjQxLCAxMiwgMTMsIDIzMSwgMjQwLCAxMiwgMTMsIDIzMCwgMjIsIDEyLCAKLSAgICAxMywgMjMwLCAyMSwgMTIsIDEzLCAyMzAsIDIwLCAxMiwgMTMsIDIzMCwgMTksIDEyLCAxMywgMjMwLCAxOCwgMTIsIDEzLCAKLSAgICAyMzAsIDE3LCAxMiwgMTMsIDIzMCwgMTYsIDEyLCAxMywgMjMwLCAxNSwgMTIsIDEzLCAyMzAsIDE0LCAxMiwgMTMsIDIzMCwgCi0gICAgMTMsIDEyLCAxMywgMjMwLCAxMiwgMTIsIDEzLCAyMzAsIDExLCAxMiwgMTMsIDIzMCwgMTAsIDEyLCAxMywgMjMwLCA5LCAKLSAgICAxMiwgMTMsIDIzMCwgOCwgMTIsIDEzLCAyMzAsIDcsIDEyLCAxMywgMjMwLCA2LCAxMiwgMTMsIDIzMCwgNSwgMTIsIDEzLCAKLSAgICAyMzAsIDQsIDEyLCAxMywgMjMwLCAzLCAxMiwgMTMsIDIzMCwgMiwgMTIsIDEzLCAyMzAsIDEsIDEyLCAxMywgMjMwLCAwLCAKLSAgICAxMiwgMTMsIDIyOSwgMjU1LCAxMiwgMTMsIDIyOSwgMjU0LCAxMiwgMTMsIDIyOSwgMjUzLCAxMiwgMTMsIDIyOSwgMjUyLCAKLSAgICAxMiwgMTMsIDIyOSwgMjUxLCAxMiwgMTMsIDIyOSwgMjUwLCAxMiwgMTMsIDIyOSwgMjQ5LCAxMiwgMTMsIDIyOSwgMjQ4LCAKLSAgICAxMiwgMTMsIDIyOSwgMjQ3LCAxMiwgMTMsIDIyOSwgMjQ2LCAxMiwgMTMsIDIyOSwgMjQ1LCAxMiwgMTMsIDIyOSwgMjQ0LCAKLSAgICAxMiwgMTMsIDIyOSwgMjQzLCAxMiwgMTMsIDIyOSwgMjQyLCAxMiwgMTMsIDIyOSwgMjQxLCAxMiwgMTMsIDIyOSwgMjQwLCAKLSAgICAxMiwgMTMsIDIyOSwgMjM5LCAxMiwgMTMsIDIyOSwgMjM4LCAxMiwgMTMsIDIyOSwgMjM3LCAxMiwgMTMsIDIyOSwgMjM2LCAKLSAgICAxMiwgMTMsIDIyOSwgMjM1LCAxMiwgMTMsIDIyOSwgMjM0LCAxMiwgMTMsIDIyOSwgMjMzLCAxMiwgMTMsIDIyOSwgMjMyLCAKLSAgICAxMiwgMTMsIDIyOSwgMjMxLCAxMiwgMTMsIDIyOSwgMjMwLCAxMiwgMTMsIDIyOCwgMTM0LCAxMiwgMTMsIDIyOCwgMTMzLCAKLSAgICAxMiwgMTMsIDIyOCwgMTMyLCAxMiwgMTMsIDIyOCwgMTMxLCAxMiwgMTMsIDIyOCwgMTMwLCAxMiwgMTMsIDIyOCwgMTI5LCAKLSAgICAxMiwgMTMsIDIyOCwgMTI4LCAxMiwgMTMsIDIyOCwgMTI3LCAxMiwgMTMsIDIyOCwgMTI2LCAxMiwgMTMsIDIyOCwgMTI1LCAKLSAgICAxMiwgMTMsIDIyOCwgMTI0LCAxMiwgMTMsIDIyOCwgMTIzLCAxMiwgMTMsIDIyOCwgMTIyLCAxMiwgMTMsIDIyOCwgMTIxLCAKLSAgICAxMiwgMTMsIDIyOCwgMTIwLCAxMiwgMTMsIDIyOCwgMTE5LCAxMiwgMTMsIDIyOCwgMTE4LCAxMiwgMTMsIDIyOCwgMTE3LCAKLSAgICAxMiwgMTMsIDIyOCwgMTE2LCAxMiwgMTMsIDIyOCwgMTE1LCAxMiwgMTMsIDIyOCwgMTE0LCAxMiwgMTMsIDIyOCwgMTEzLCAKLSAgICAxMiwgMTMsIDIyNywgMjM2LCAxMiwgMTMsIDIyNywgMjM1LCAxMiwgMTMsIDIyNywgMjM0LCAxMiwgMTMsIDIyNywgMjMzLCAKLSAgICAxMiwgMTMsIDIyNywgMjMyLCAxMiwgMTMsIDIyNywgMjMxLCAxMiwgMTMsIDIyNywgMjMwLCAxMiwgMTMsIDIyNywgMjI5LCAKLSAgICAxMiwgMTMsIDIyNywgMjI4LCAxMiwgMTMsIDIyNywgMjI3LCAxMiwgMTMsIDIyNywgMjI2LCAxMiwgMTMsIDIyNywgMjI1LCAKLSAgICAxMiwgMTMsIDIyNywgMjI0LCAxMiwgMTMsIDIyNywgMjIzLCAxMiwgMTMsIDIyNywgMjIyLCAxMiwgMTMsIDIyNywgMjIxLCAKLSAgICAxMiwgMTMsIDIyNywgMjIwLCAxMiwgMTMsIDIyNywgMjE5LCAxMiwgMTMsIDIyNywgMjE4LCAxMiwgMTMsIDIyNywgMjE3LCAKLSAgICAxMiwgMTMsIDIyNywgMjE2LCAxMiwgMTMsIDIyNywgMjE1LCAxMiwgMTMsIDIyNywgMjE0LCAxMiwgMTMsIDIyNywgMjEzLCAKLSAgICAxMiwgMTMsIDIyNywgMjEyLCAxMiwgMTMsIDIyNywgMjExLCAxMiwgMTMsIDIyNywgNzYsIDEyLCAxMywgMjI3LCA3NSwgMTIsIAotICAgIDEzLCAyMjcsIDc0LCAxMiwgMTMsIDIyNywgNzMsIDEyLCAxMywgMjI3LCA3MiwgMTIsIDEzLCAyMjcsIDcxLCAxMiwgMTMsIAotICAgIDIyNywgNzAsIDEyLCAxMywgMjI3LCA2OSwgMTIsIDEzLCAyMjcsIDY4LCAxMiwgMTMsIDIyNywgNjcsIDEyLCAxMywgMjI3LCAKLSAgICA2NiwgMTIsIDEzLCAyMjcsIDY1LCAxMiwgMTMsIDIyNywgNjQsIDEyLCAxMywgMjI3LCA2MywgMTIsIDEzLCAyMjcsIDYyLCAKLSAgICAxMiwgMTMsIDIyNywgNjEsIDEyLCAxMywgMjI3LCA2MCwgMTIsIDEzLCAyMjcsIDU5LCAxMiwgMTMsIDIyNywgNTgsIDEyLCAKLSAgICAxMywgMjI3LCA1NywgMTIsIDEzLCAyMjcsIDU2LCAxMiwgMTMsIDIyNywgNTUsIDEyLCAxMywgMjI3LCA1NCwgMTIsIDEzLCAKLSAgICAyMjcsIDUzLCAxMiwgMTMsIDIyNywgNTIsIDEyLCAxMywgMjI3LCA1MSwgMTIsIDEzLCAyMjcsIDUwLCAxMiwgMTMsIDIyNywgCi0gICAgNDksIDEyLCAxMywgMjI3LCA0OCwgMTIsIDEzLCAyMjcsIDQ3LCAxMiwgMTMsIDIyNywgNDYsIDEyLCAxMywgMjI3LCA0NSwgCi0gICAgMTIsIDEzLCAyMjcsIDQ0LCAxMiwgMTMsIDIyNywgNDMsIDEyLCAxMywgMjI3LCA0MiwgMTIsIDEzLCAyMjcsIDQxLCAxMiwgCi0gICAgMTMsIDIyNywgNDAsIDEyLCAxMywgMjI3LCAzOSwgMTIsIDEzLCAyMjcsIDM4LCAxMiwgMTMsIDIyNywgMzcsIDEyLCAxMywgCi0gICAgMjI3LCAzNiwgMTIsIDEzLCAyMjcsIDM1LCAxMiwgMTMsIDIyNywgMzQsIDEyLCAxMywgMjI3LCAzMywgMTIsIDEzLCAyMjcsIAotICAgIDMyLCAxMiwgMTMsIDIyNywgMzEsIDEyLCAxMywgMjI3LCAzMCwgMTIsIDEzLCAyMjcsIDI5LCAxMiwgMTMsIDIyNywgMjgsIAotICAgIDEyLCAxMywgMjI3LCAyNywgMTIsIDEzLCAyMjcsIDI2LCAxMiwgMTMsIDIyNywgMjUsIDEyLCAxMywgMjI3LCAyNCwgMTIsIAotICAgIDEzLCAyMjcsIDIzLCAxMiwgMTMsIDIyNywgMjIsIDEyLCAxMywgMjI3LCAyMSwgMTIsIDEzLCAyMjcsIDIwLCAxMiwgMTMsIAotICAgIDIyNywgMTksIDEyLCAxMywgMjI3LCAxOCwgMTIsIDEzLCAyMjcsIDE3LCAxMiwgMTMsIDIyNywgMTYsIDEyLCAxMywgMjI3LCAKLSAgICAxNSwgMTIsIDEzLCAyMjcsIDE0LCAxMiwgMTMsIDIyNywgMTMsIDEyLCAxMywgMjI3LCAxMiwgMTIsIDEzLCAyMjcsIDExLCAKLSAgICAxMiwgMTMsIDIyNywgMTAsIDEyLCAxMywgMjI3LCA5LCAxMiwgMTMsIDIyNywgOCwgMTIsIDEzLCAyMjcsIDcsIDEyLCAxMywgCi0gICAgMjI3LCA2LCAxMiwgMTMsIDIyNywgNSwgMTIsIDEzLCAyMjcsIDQsIDEyLCAxMywgMjI3LCAzLCAxMiwgMTMsIDIyNywgMiwgCi0gICAgMTIsIDEzLCAyMjYsIDEwNCwgMTIsIDEzLCAyMjYsIDEwMywgMTIsIDEzLCAyMjYsIDEwMiwgMTIsIDEzLCAyMjYsIDEwMSwgCi0gICAgMTIsIDEzLCAyMjYsIDEwMCwgMTIsIDEzLCAyMjYsIDk5LCAxMiwgMTMsIDIyNiwgOTgsIDEyLCAxMywgMjI2LCA5NywgMTIsIAotICAgIDEzLCAyMjYsIDk2LCAxMiwgMTMsIDIyNiwgOTUsIDEyLCAxMywgMjI2LCA5NCwgMTIsIDEzLCAyMjYsIDkzLCAxMiwgMTMsIAotICAgIDIyNiwgOTIsIDEyLCAxMywgMjI0LCA5NSwgMTIsIDEzLCAyMjQsIDk0LCAxMiwgMTMsIDIyNCwgOTMsIDEyLCAxMywgMjI0LCAKLSAgICA5MiwgMTIsIDEzLCAyMjQsIDkxLCAxMiwgMTMsIDIyNCwgOTAsIDEyLCAxMywgMjI0LCA4OSwgMTIsIDEzLCAyMjMsIDIyMiwgCi0gICAgMTIsIDEzLCAyMjMsIDIyMSwgMTIsIDEzLCAyMjMsIDIyMCwgMTIsIDEzLCAyMjMsIDIxOSwgMTIsIDEzLCAyMjMsIDIxOCwgCi0gICAgMTIsIDEzLCAyMjMsIDIxNywgMTIsIDEzLCAyMjMsIDIxNiwgMTIsIDEzLCAyMjMsIDIxNSwgMTIsIDEzLCAyMjMsIDIxNCwgCi0gICAgMTIsIDEzLCAyMjMsIDIxMywgMTIsIDEzLCAyMjMsIDIxMiwgMTIsIDEzLCAyMjMsIDIxMSwgMTIsIDEzLCAyMjMsIDIxMCwgCi0gICAgMTIsIDEzLCAyMjMsIDIwOSwgMTIsIDEzLCAyMjMsIDIwOCwgMTIsIDEzLCAyMjMsIDIwNywgMTIsIDEzLCAyMjMsIDIwNiwgCi0gICAgMTIsIDEzLCAyMjMsIDIwNSwgMTIsIDEzLCAyMjMsIDIwNCwgMTIsIDEzLCAyMjMsIDIwMywgMTIsIDEzLCAyMjMsIDIwMiwgCi0gICAgMTIsIDEzLCAyMjMsIDIwMSwgMTIsIDEzLCAyMjMsIDIwMCwgMTIsIDEzLCAyMjMsIDE5OSwgMTIsIDEzLCAyMjMsIDE5OCwgCi0gICAgMTIsIDEzLCAyMjMsIDE5NywgMTIsIDEzLCAyMjMsIDE5NiwgMTIsIDEzLCAyMjMsIDE5NSwgMTIsIDEzLCAyMjMsIDE5NCwgCi0gICAgMTIsIDEzLCAyMjMsIDE5MywgMTIsIDEzLCAyMjMsIDE5MiwgMTIsIDEzLCAyMjMsIDE5MSwgMTIsIDEzLCAyMjMsIDE5MCwgCi0gICAgMTIsIDEzLCAyMjMsIDE4OSwgMTIsIDEzLCAyMjIsIDg4LCAxMiwgMTMsIDIyMiwgODcsIDEyLCAxMywgMjIyLCA4NiwgMTIsIAotICAgIDEzLCAyMjIsIDg1LCAxMiwgMTMsIDIyMiwgODQsIDEyLCAxMywgMjIyLCA4MywgMTIsIDEzLCAyMjIsIDgyLCAxMiwgMTMsIAotICAgIDIyMiwgODEsIDEyLCAxMywgMjIyLCA4MCwgMTIsIDEzLCAyMjIsIDc5LCAxMiwgMTMsIDIyMiwgNzgsIDEyLCAxMywgMjIyLCAKLSAgICA3NywgMTIsIDEzLCAyMjIsIDc2LCAxMiwgMTMsIDIyMiwgNzUsIDEyLCAxMywgMjIyLCA3NCwgMTIsIDEzLCAyMjIsIDczLCAKLSAgICAxMiwgMTMsIDIyMiwgNzIsIDEyLCAxMywgMjIyLCA3MSwgMTIsIDEzLCAyMjIsIDcwLCAxMiwgMTMsIDIyMiwgNjksIDEyLCAKLSAgICAxMywgMjIyLCA2OCwgMTIsIDEzLCAyMjIsIDY3LCAxMiwgMTMsIDIyMiwgNjYsIDEyLCAxMywgMjIyLCA2NSwgMTIsIDEzLCAKLSAgICAyMjIsIDY0LCAxMiwgMTMsIDIyMiwgNjMsIDEyLCAxMywgMjIyLCA2MiwgMTIsIDEzLCAyMjIsIDYxLCAxMiwgMTMsIDIyMiwgCi0gICAgNjAsIDEyLCAxMywgMjIyLCA1OSwgMTIsIDEzLCAyMjIsIDU4LCAxMiwgMTMsIDIyMiwgNTcsIDEyLCAxMywgMjIyLCA1NiwgCi0gICAgMTIsIDEzLCAyMjIsIDU1LCAxMiwgMTMsIDIyMiwgNTQsIDEyLCAxMywgMjIyLCA1MywgMTIsIDEzLCAyMjIsIDUyLCAxMiwgCi0gICAgMTMsIDIyMiwgNTEsIDEyLCAxMywgMjIyLCA1MCwgMTIsIDEzLCAyMjIsIDQ5LCAxMiwgMTMsIDIyMiwgNDgsIDEyLCAxMywgCi0gICAgMjIyLCA0NywgMTIsIDEzLCAyMjIsIDQ2LCAxMiwgMTMsIDIyMiwgNDUsIDEyLCAxMywgMjIyLCA0NCwgMTIsIDEzLCAyMjIsIAotICAgIDQzLCAxMiwgMTMsIDIyMiwgNDIsIDEyLCAxMywgMjIyLCA0MSwgMTIsIDEzLCAyMjIsIDQwLCAxMiwgMTMsIDIyMiwgMzksIAotICAgIDEyLCAxMywgMjIyLCAzOCwgMTIsIDEzLCAyMjIsIDM3LCAxMiwgMTMsIDIyMiwgMzYsIDEyLCAxMywgMjIyLCAzNSwgMTIsIAotICAgIDEzLCAyMTcsIDE1MCwgMTIsIDEzLCAyMTcsIDE0OSwgMTIsIDEzLCAyMTcsIDE0OCwgMTIsIDEzLCAyMTcsIDE0NywgMTIsIAotICAgIDEzLCAyMTcsIDE0NiwgMTIsIDEzLCAyMTcsIDE0NSwgMTIsIDEzLCAyMTcsIDE0NCwgMTIsIDEzLCAyMTcsIDE0MywgMTIsIAotICAgIDEzLCAyMTcsIDE0MiwgMTIsIDEzLCAyMTcsIDE0MSwgMTIsIDEzLCAyMTcsIDE0MCwgMTIsIDEzLCAyMTcsIDEzOSwgMTIsIAotICAgIDEzLCAyMTcsIDEzOCwgMTIsIDEzLCAyMTcsIDEzNywgMTIsIDEzLCAyMTcsIDEzNiwgMTIsIDEzLCAyMTcsIDEzNSwgMTIsIAotICAgIDEzLCAyMTcsIDEzNCwgMTIsIDEzLCAyMTcsIDEzMywgMTIsIDEzLCAyMTcsIDEzMiwgMTIsIDEzLCAyMTcsIDEzMSwgMTIsIAotICAgIDEzLCAyMTcsIDEzMCwgMTIsIDEzLCAyMTcsIDEyOSwgMTIsIDEzLCAyMTcsIDEyOCwgMTIsIDEzLCAyMTcsIDEyNywgMTIsIAotICAgIDEzLCAyMTcsIDEyNiwgMTIsIDEzLCAyMTcsIDEyNSwgMTIsIDEzLCAyMTcsIDEyNCwgMTIsIDEzLCAyMTcsIDEyMywgMTIsIAotICAgIDEzLCAyMTcsIDEyMiwgMTIsIDEzLCAyMTcsIDEyMSwgMTIsIDEzLCAyMTcsIDEyMCwgMTIsIDEzLCAyMTcsIDExOSwgMTIsIAotICAgIDEzLCAyMTcsIDExOCwgMTIsIDEzLCAyMTcsIDExNywgMTIsIDEzLCAyMTcsIDExNiwgMTIsIDEzLCAyMTcsIDExNSwgMTIsIAotICAgIDEzLCAyMTcsIDExNCwgMTIsIDEzLCAyMTcsIDExMywgMTIsIDEzLCAyMTcsIDExMiwgMTIsIDEzLCAyMTcsIDExMSwgMTIsIAotICAgIDEzLCAyMTcsIDExMCwgMTIsIDEzLCAyMTcsIDEwOSwgMTIsIDEzLCAyMTcsIDEwOCwgMTIsIDEzLCAyMTcsIDEwNywgMTIsIAorICAgIDIzMiwgMTUsIDEzMiwgNSwgMTM0LCAyNTMsIDIzMiwgMTUsIDEzMiwgNSwgMjQ0LCAxMiwgMjUzLCAyMzIsIDE1LCAxMzIsIAorICAgIDUsIDI0NCwgODIsIDI1MywgMjMyLCAxNSwgMTMyLCA1LCAyMTksIDEyNiwgMjUzLCAyMzIsIDE1LCAxMzIsIDUsIDIyMCwgCisgICAgMTIzLCAyNTMsIDIzMiwgMTUsIDEzMiwgNSwgMjQ1LCAxOTQsIDI1MywgMjMyLCAxNSwgMTMyLCA1LCAyMjgsIDIwMSwgMjUzLCAKKyAgICAyMzIsIDE1LCAxMzIsIDUsIDEzNCwgMjQ3LCAxODgsIDE1LCAxMzIsIDUsIDI0NCwgMTIsIDI0NywgMTg4LCAxNSwgMTMyLCAKKyAgICA1LCAyNDQsIDgyLCAyNDcsIDE4OCwgMTUsIDEzMiwgNSwgMjE5LCAxMjYsIDI0NywgMTg4LCAxNSwgMTMyLCA1LCAyMjAsIAorICAgIDEyMywgMjQ3LCAxODgsIDE1LCAxMzIsIDUsIDI0NSwgMTk0LCAyNDcsIDE4OCwgMTUsIDEzMiwgNSwgMjI4LCAyMDEsIDI0NywgCisgICAgMTg4LCAxNSwgMTMyLCA1LCAyNDQsIDEyLCA3MCwgMTUsIDEzMiwgNSwgMjQ0LCA4MiwgNzAsIDE1LCAxMzIsIDUsIDIxOSwgCisgICAgMTI2LCA3MCwgMTUsIDEzMiwgNSwgMjIwLCAxMjMsIDcwLCAxNSwgMTMyLCA1LCAyNDUsIDE5NCwgNzAsIDE1LCAxMzIsIDUsIAorICAgIDIyOCwgMjAxLCA3MCwgMTUsIDEzMiwgNSwgMTIzLCAyNDMsIDM5LCAxNSwgMTMyLCA1LCAxMTMsIDI0MywgMzksIDE1LCAKKyAgICAxMzIsIDUsIDEzNCwgMjQzLCAzOSwgMTUsIDEzMiwgNSwgMjQ0LCAxMiwgMjQzLCAzOSwgMTUsIDEzMiwgNSwgMjQ0LCA4MiwgCisgICAgMjQzLCAzOSwgMTUsIDEzMiwgNSwgMjE5LCAxMjYsIDI0MywgMzksIDE1LCAxMzIsIDUsIDIyMCwgMTIzLCAyNDMsIDM5LCAKKyAgICAxNSwgMTMyLCA1LCAyNDUsIDE5NCwgMjQzLCAzOSwgMTUsIDEzMiwgNSwgMjI4LCAyMDEsIDI0MywgMzksIDE1LCAxMzIsIDUsIAorICAgIDEyMywgMjQzLCAzNiwgMTUsIDEzMiwgNSwgMTEzLCAyNDMsIDM2LCAxNSwgMTMyLCA1LCAxMzQsIDI0MywgMzYsIDE1LCAKKyAgICAxMzIsIDUsIDI0NCwgMTIsIDI0MywgMzYsIDE1LCAxMzIsIDUsIDI0NCwgODIsIDI0MywgMzYsIDE1LCAxMzIsIDUsIDExMywgCisgICAgMjIwLCA3OSwgMTUsIDEzMiwgNSwgMTM0LCAyMjAsIDc5LCAxNSwgMTMyLCA1LCAxMzQsIDIyMCwgODAsIDIxNCwgMTIsIDE3LCAKKyAgICAxNSwgMTMyLCA1LCAyNDQsIDEyLCAyMjAsIDc5LCAxNSwgMTMyLCA1LCAyNDQsIDgyLCAyMjAsIDc5LCAxNSwgMTMyLCA1LCAKKyAgICAyMTksIDEyNiwgMjIwLCA3OSwgMTUsIDEzMiwgNSwgMjIwLCAxMjMsIDIyMCwgNzksIDE1LCAxMzIsIDUsIDI0NSwgMTk0LCAKKyAgICAyMjAsIDc5LCAxNSwgMTMyLCA1LCAyMjgsIDIwMSwgMjIwLCA3OSwgMTUsIDEzMiwgNSwgMTIzLCAyMjAsIDc0LCAxNSwgCisgICAgMTMyLCA1LCAxMTMsIDIyMCwgNzQsIDE1LCAxMzIsIDUsIDEzNCwgMjIwLCA3NCwgMTUsIDEzMiwgNSwgMTM0LCAyMjAsIDc1LCAKKyAgICAyMTQsIDEyLCAxNywgMTUsIDEzMiwgNSwgMjQ0LCAxMiwgMjIwLCA3NCwgMTUsIDEzMiwgNSwgMjQ0LCA4MiwgMjIwLCA3NCwgCisgICAgMTUsIDEzMiwgNSwgMjIwLCA4MCwgMzAsIDI0MywgMTIwLCA5NiwgMjQ3LCAxODgsIDE1LCAxMzIsIDUsIDIyMCwgODAsIDMwLCAKKyAgICAyNDMsIDEyMCwgOTYsIDIzMCwgMTg5LCAxNSwgMTMyLCA1LCAxMjMsIDI1MSwgOTYsIDE1LCAxMzIsIDUsIDExMywgMjUxLCAKKyAgICA5NiwgMTUsIDEzMiwgNSwgMTM0LCAyNTEsIDk2LCAxNSwgMTMyLCA1LCAxMzQsIDI1MSwgOTcsIDIxNCwgMTIsIDE3LCAxNSwgCisgICAgMTMyLCA1LCAyNDQsIDEyLCAyNTEsIDk2LCAxNSwgMTMyLCA1LCAyNDQsIDgyLCAyNTEsIDk2LCAxNSwgMTMyLCA1LCAxMzQsIAorICAgIDIxNCwgMTIsIDI0NCwgMjEsIDI0NSwgNzUsIDE1LCAxMzIsIDUsIDEzNCwgMjE0LCAxMiwgMjQ0LCAyMSwgMjQ1LCA3MiwgCisgICAgMTUsIDEzMiwgNSwgMjQ0LCAxMiwgMjE0LCAxMiwgMjQ0LCAyMSwgMjMyLCAyMTgsIDE1LCAxMzIsIDUsIDI0NCwgMTIsIAorICAgIDIxNCwgMTIsIDI0NCwgMjEsIDIzMiwgMjE2LCAxNSwgMTMyLCA1LCAyNDQsIDEyLCAyMTQsIDEyLCAyNDQsIDIxLCAyMzIsIAorICAgIDIxOSwgNjEsIDE1LCAxMzIsIDUsIDI0NCwgMTIsIDIxNCwgMTIsIDI0NCwgMjEsIDIzMiwgMjE5LCAyNTMsIDE1OSwgMTUsIAorICAgIDEzMiwgNSwgMjE5LCAxMjYsIDIxNCwgMTIsIDI0NCwgMjEsIDI1MywgMjI5LCAxNSwgMTMyLCA1LCAyMjAsIDEyMywgMjE0LCAKKyAgICAxMiwgMjQ0LCAyMSwgMjM2LCA5LCAxNSwgMTMyLCA1LCAyMjAsIDEyMywgMjE0LCAxMiwgMjQ0LCAyMSwgMjM2LCAxMSwgNjEsIAorICAgIDE1LCAxMzIsIDUsIDIyMCwgMTIzLCAyMTQsIDEyLCAyNDQsIDIxLCAyMzYsIDExLCAyNTMsIDE1OSwgMTUsIDEzMiwgNSwgCisgICAgMjQ1LCAxOTQsIDIxNCwgMTIsIDI0NCwgMjEsIDIxNCwgMTIxLCAxNSwgMTMyLCA1LCAyNDUsIDE5NCwgMjE0LCAxMiwgMjQ0LCAKKyAgICAyMSwgMjE0LCAxMjAsIDE1LCAxMzIsIDUsIDIyOCwgMjAxLCAyMTQsIDEyLCAyNDQsIDIxLCAyMzYsIDI1LCAxNSwgMTMyLCAKKyAgICA1LCAyMjgsIDIwMSwgMjE0LCAxMiwgMjQ0LCAyMSwgMjM2LCAyNCwgMTUsIDEzMiwgNSwgMjI4LCAyMDEsIDIxNCwgMTIsIAorICAgIDI0NCwgMjEsIDIzNiwgMjMsIDE1LCAxMzIsIDUsIDIyOCwgMjAxLCAyMTQsIDEyLCAyNDQsIDIxLCAyMzYsIDI2LCA2MSwgCisgICAgMTUsIDEzMiwgNSwgMTEzLCAyNTMsIDIzMywgMjE2LCAyNDAsIDE1LCAxMzIsIDUsIDEzNCwgMjUzLCAyMzMsIDIxNiwgMjQwLCAKKyAgICAxNSwgMTMyLCA1LCAyNDQsIDEyLCAyNTMsIDIzMywgMjE2LCAyNDAsIDE1LCAxMzIsIDUsIDI0NCwgODIsIDI1MywgMjMzLCAKKyAgICAyMTYsIDI0MCwgMTUsIDEzMiwgNSwgMjE5LCAxMjYsIDI1MywgMjMzLCAyMTYsIDI0MCwgMTUsIDEzMiwgNSwgMTIzLCAyNTIsIAorICAgIDE1MSwgMTUsIDEzMiwgNSwgMTEzLCAyNTIsIDE1MSwgMTUsIDEzMiwgNSwgMTM0LCAyNTIsIDE1MSwgMTUsIDEzMiwgNSwgCisgICAgMjQ0LCAxMiwgMjUyLCAxNTEsIDE1LCAxMzIsIDUsIDI0NCwgMTIsIDI1MiwgMTUyLCAyMTQsIDEyLCAxNywgMTUsIDEzMiwgCisgICAgNSwgMjQ0LCA4MiwgMjUyLCAxNTEsIDE1LCAxMzIsIDUsIDI0NCwgODIsIDI1MiwgMTUyLCAyMTQsIDEyLCAxNywgMTUsIAorICAgIDEzMiwgNSwgMjI4LCAyMTEsIDE1LCAxMzIsIDUsIDIyOCwgMjEyLCAxNSwgMTMyLCA1LCAxMjMsIDI0NSwgNzEsIDE1LCAKKyAgICAxMzIsIDUsIDExMywgMjQ1LCA3MSwgMTUsIDEzMiwgNSwgMTIzLCAyMTYsIDE3MCwgMjQ3LCAxODgsIDE1LCAxMzIsIDUsIAorICAgIDExMywgMjE2LCAxNjgsIDI0NywgMTg4LCAxNSwgMTMyLCA1LCAyNDQsIDgyLCAyMTksIDExNSwgMjQ3LCAxODgsIDE1LCAKKyAgICAxMzIsIDUsIDEyMywgMjE2LCAxNzAsIDIxNCwgMTIsIDI0NCwgMjEsIDYxLCAxNSwgMTMyLCA1LCAxMTMsIDIxNiwgMTY4LCAKKyAgICAyMTQsIDEyLCAyNDQsIDIxLCA2MSwgMTUsIDEzMiwgNSwgMTIzLCAyNDUsIDE5MCwgMjUzLCAyMzIsIDE1LCAxMzIsIDUsIAorICAgIDEyMywgMjI0LCAyMywgMjUzLCAyMzIsIDE1LCAxMzIsIDUsIDU1LCAyNTMsIDIyMCwgMTIzLCAyMTksIDExNiwgMTUsIDEzMiwgCisgICAgNSwgNTUsIDI1MywgMjIwLCAxMjMsIDIyNCwgMjIsIDE1LCAyMjQsIDE0MiwgNSwgNTUsIDI1MywgMjIwLCAyMTEsIDIwOSwgCisgICAgMjQ3LCAxNzMsIDE1LCAyMjQsIDE0MiwgNSwgNjcsIDI0OSwgMjI3LCAxNSwgMjI0LCAxNDIsIDUsIDI0OCwgMCwgMjQ5LCAKKyAgICAyMjcsIDE1LCAyMjQsIDE0MiwgNSwgMjQ4LCAwLCAyMTUsIDIyMiwgMTIsIDEzLCAyNTUsIDE1NiwgMTIsIDEzLCAyNTUsIAorICAgIDE1NSwgMTIsIDEzLCAyNTUsIDE1NCwgMTIsIDEzLCAyNTUsIDE1MywgMTIsIDEzLCAyNTUsIDE1MiwgMTIsIDEzLCAyNTUsIAorICAgIDE1MSwgMTIsIDEzLCAyNTUsIDE1MCwgMTIsIDEzLCAyNTUsIDE0OSwgMTIsIDEzLCAyNTUsIDE0OCwgMTIsIDEzLCAyNTUsIAorICAgIDE0NywgMTIsIDEzLCAyNTUsIDE0NiwgMTIsIDEzLCAyNTUsIDE0NSwgMTIsIDEzLCAyNTUsIDE0NCwgMTIsIDEzLCAyNTUsIAorICAgIDE0MywgMTIsIDEzLCAyNTUsIDE0MiwgMTIsIDEzLCAyNTUsIDE0MSwgMTIsIDEzLCAyNTUsIDE0MCwgMTIsIDEzLCAyNTUsIAorICAgIDEzOSwgMTIsIDEzLCAyNTUsIDEzOCwgMTIsIDEzLCAyNTUsIDEzNywgMTIsIDEzLCAyNTUsIDEzNiwgMTIsIDEzLCAyNTUsIAorICAgIDEzNSwgMTIsIDEzLCAyNTUsIDEzNCwgMTIsIDEzLCAyNTUsIDEzMywgMTIsIDEzLCAyNTUsIDEzMiwgMTIsIDEzLCAyNTUsIAorICAgIDEzMSwgMTIsIDEzLCAyNTUsIDEzMCwgMTIsIDEzLCAyNTUsIDEyOSwgMTIsIDEzLCAyNTUsIDEyOCwgMTIsIDEzLCAyNTUsIAorICAgIDEyNywgMTIsIDEzLCAyNTUsIDEyNiwgMTIsIDEzLCAyNTUsIDEyNSwgMTIsIDEzLCAyNTUsIDEyNCwgMTIsIDEzLCAyNTUsIAorICAgIDEyMywgMTIsIDEzLCAyNTUsIDEyMiwgMTIsIDEzLCAyNTUsIDEyMSwgMTIsIDEzLCAyNTUsIDEyMCwgMTIsIDEzLCAyNTUsIAorICAgIDExOSwgMTIsIDEzLCAyNTUsIDExOCwgMTIsIDEzLCAyNTUsIDExNywgMTIsIDEzLCAyNTUsIDExNiwgMTIsIDEzLCAyNTUsIAorICAgIDExNSwgMTIsIDEzLCAyNTUsIDExNCwgMTIsIDEzLCAyNTUsIDExMywgMTIsIDEzLCAyNTUsIDExMiwgMTIsIDEzLCAyNTUsIAorICAgIDExMSwgMTIsIDEzLCAyNTUsIDExMCwgMTIsIDEzLCAyNTUsIDEwOSwgMTIsIDEzLCAyNTUsIDEwOCwgMTIsIDEzLCAyNTUsIAorICAgIDEwNywgMTIsIDEzLCAyNTUsIDEwNiwgMTIsIDEzLCAyNTUsIDEwNSwgMTIsIDEzLCAyNTUsIDEwNCwgMTIsIDEzLCAyNTUsIAorICAgIDEwMywgMTIsIDEzLCAyNTUsIDEwMiwgMTIsIDEzLCAyNTUsIDEwMSwgMTIsIDEzLCAyNTUsIDEwMCwgMTIsIDEzLCAyNTUsIAorICAgIDk5LCAxMiwgMTMsIDI1NSwgOTgsIDEyLCAxMywgMjU1LCA5NywgMTIsIDEzLCAyNTUsIDk2LCAxMiwgMTMsIDI1NSwgOTUsIAorICAgIDEyLCAxMywgMjU1LCA5NCwgMTIsIDEzLCAyNTUsIDkzLCAxMiwgMTMsIDI1NSwgOTIsIDEyLCAxMywgMjU1LCA5MSwgMTIsIAorICAgIDEzLCAyNTUsIDkwLCAxMiwgMTMsIDI1NSwgODksIDEyLCAxMywgMjU1LCA4OCwgMTIsIDEzLCAyNTUsIDg3LCAxMiwgMTMsIAorICAgIDI1NSwgODYsIDEyLCAxMywgMjU1LCA4NSwgMTIsIDEzLCAyNTUsIDg0LCAxMiwgMTMsIDI1NSwgODMsIDEyLCAxMywgMjU1LCAKKyAgICA4MiwgMTIsIDEzLCAyNTUsIDgxLCAxMiwgMTMsIDI1NSwgODAsIDEyLCAxMywgMjU1LCA3OSwgMTIsIDEzLCAyNTUsIDc4LCAKKyAgICAxMiwgMTMsIDI1NSwgNzcsIDEyLCAxMywgMjUzLCAxNTcsIDEyLCAxMywgMjUzLCAxNTUsIDEyLCAxMywgMjUzLCAxNTMsIAorICAgIDEyLCAxMywgMjUzLCAxNTEsIDEyLCAxMywgMjUzLCAxNDksIDEyLCAxMywgMjUzLCAxNDgsIDEyLCAxMywgMjUzLCAxNDYsIAorICAgIDEyLCAxMywgMjUzLCAxNDQsIDEyLCAxMywgMjUzLCAxNDIsIDEyLCAxMywgMjUzLCAxNDAsIDEyLCAxMywgMjUxLCA2MywgCisgICAgMTIsIDEzLCAyNTEsIDYyLCAxMiwgMTMsIDI1MSwgNjEsIDEyLCAxMywgMjUxLCA2MCwgMTIsIDEzLCAyNTEsIDU5LCAxMiwgCisgICAgMTMsIDI1MSwgNTgsIDEyLCAxMywgMjUxLCA1NywgMTIsIDEzLCAyNTEsIDU2LCAxMiwgMTMsIDI1MSwgNTUsIDEyLCAxMywgCisgICAgMjUxLCA1NCwgMTIsIDEzLCAyNTEsIDUzLCAxMiwgMTMsIDI1MSwgNTIsIDEyLCAxMywgMjUxLCA1MSwgMTIsIDEzLCAyNTEsIAorICAgIDUwLCAxMiwgMTMsIDI1MSwgNDksIDEyLCAxMywgMjUxLCA0OCwgMTIsIDEzLCAyNTEsIDQ3LCAxMiwgMTMsIDI1MSwgNDYsIAorICAgIDEyLCAxMywgMjUxLCA0NSwgMTIsIDEzLCAyNTEsIDQ0LCAxMiwgMTMsIDI1MSwgNDMsIDEyLCAxMywgMjUxLCA0MiwgMTIsIAorICAgIDEzLCAyNTEsIDQxLCAxMiwgMTMsIDI1MSwgNDAsIDEyLCAxMywgMjUxLCAzOSwgMTIsIDEzLCAyNTEsIDM4LCAxMiwgMTMsIAorICAgIDI1MSwgMzcsIDEyLCAxMywgMjUxLCAzNiwgMTIsIDEzLCAyNDksIDYwLCAxMiwgMTMsIDI0OSwgNTksIDEyLCAxMywgMjQ5LCAKKyAgICA1OCwgMTIsIDEzLCAyNDksIDU3LCAxMiwgMTMsIDI0OSwgNTYsIDEyLCAxMywgMjQ5LCA1NSwgMTIsIDEzLCAyNDksIDU0LCAKKyAgICAxMiwgMTMsIDI0OSwgNTMsIDEyLCAxMywgMjQ5LCA1MiwgMTIsIDEzLCAyNDksIDUxLCAxMiwgMTMsIDI0OSwgNTAsIDEyLCAKKyAgICAxMywgMjQ5LCA0OSwgMTIsIDEzLCAyNDksIDQ4LCAxMiwgMTMsIDI0OSwgNDcsIDEyLCAxMywgMjQ5LCA0NiwgMTIsIDEzLCAKKyAgICAyNDksIDQ1LCAxMiwgMTMsIDI0OSwgNDQsIDEyLCAxMywgMjQ5LCA0MywgMTIsIDEzLCAyNDksIDQyLCAxMiwgMTMsIDI0OSwgCisgICAgNDEsIDEyLCAxMywgMjQ5LCA0MCwgMTIsIDEzLCAyNDksIDM5LCAxMiwgMTMsIDI0OSwgMzgsIDEyLCAxMywgMjQ5LCAzNywgCisgICAgMTIsIDEzLCAyNDksIDM2LCAxMiwgMTMsIDI0OSwgMzUsIDEyLCAxMywgMjQ5LCAzNCwgMTIsIDEzLCAyNDksIDMzLCAxMiwgCisgICAgMTMsIDI0OSwgMzIsIDEyLCAxMywgMjQ5LCAzMSwgMTIsIDEzLCAyNDksIDMwLCAxMiwgMTMsIDI0OSwgMjksIDEyLCAxMywgCisgICAgMjQ5LCAyOCwgMTIsIDEzLCAyNDksIDI3LCAxMiwgMTMsIDI0OSwgMjYsIDEyLCAxMywgMjQ5LCAyNSwgMTIsIDEzLCAyNDksIAorICAgIDI0LCAxMiwgMTMsIDI0OSwgMjMsIDEyLCAxMywgMjQ5LCAyMiwgMTIsIDEzLCAyNDksIDIxLCAxMiwgMTMsIDI0OSwgMjAsIAorICAgIDEyLCAxMywgMjQ5LCAxOSwgMTIsIDEzLCAyNDksIDE4LCAxMiwgMTMsIDI0OSwgMTcsIDEyLCAxMywgMjQ5LCAxNiwgMTIsIAorICAgIDEzLCAyNDksIDE1LCAxMiwgMTMsIDI0OSwgMTQsIDEyLCAxMywgMjQ5LCAxMywgMTIsIDEzLCAyNDksIDEyLCAxMiwgMTMsIAorICAgIDI0OSwgMTEsIDEyLCAxMywgMjQ5LCAxMCwgMTIsIDEzLCAyNDksIDksIDEyLCAxMywgMjQ5LCA4LCAxMiwgMTMsIDI0OSwgNywgCisgICAgMTIsIDEzLCAyNDksIDYsIDEyLCAxMywgMjQ5LCA1LCAxMiwgMTMsIDI0OSwgNCwgMTIsIDEzLCAyNDksIDMsIDEyLCAxMywgCisgICAgMjQ5LCAyLCAxMiwgMTMsIDI0OSwgMSwgMTIsIDEzLCAyNDksIDAsIDEyLCAxMywgMjQ4LCAyNTUsIDEyLCAxMywgMjQ4LCAKKyAgICAyNTQsIDEyLCAxMywgMjQ4LCAyNTMsIDEyLCAxMywgMjQ4LCAyNTIsIDEyLCAxMywgMjQ4LCAyNTEsIDEyLCAxMywgMjQ4LCAKKyAgICAyNTAsIDEyLCAxMywgMjQ4LCAyNDksIDEyLCAxMywgMjQ4LCAyNDgsIDEyLCAxMywgMjQ4LCAyNDcsIDEyLCAxMywgMjQ4LCAKKyAgICAyNDYsIDEyLCAxMywgMjQ4LCAyNDUsIDEyLCAxMywgMjQ4LCAyNDQsIDEyLCAxMywgMjQ4LCAyNDMsIDEyLCAxMywgMjQ4LCAKKyAgICAyNDIsIDEyLCAxMywgMjQ4LCAyNDEsIDEyLCAxMywgMjQ4LCAyNDAsIDEyLCAxMywgMjQ4LCAyMzksIDEyLCAxMywgMjQ4LCAKKyAgICAyMzgsIDEyLCAxMywgMjQ4LCAyMzcsIDEyLCAxMywgMjQ4LCAyMzYsIDEyLCAxMywgMjQ4LCAyMzUsIDEyLCAxMywgMjQ4LCAKKyAgICAyMzQsIDEyLCAxMywgMjQ4LCAyMzMsIDEyLCAxMywgMjQ4LCAyMzIsIDEyLCAxMywgMjQ4LCAyMzEsIDEyLCAxMywgMjQ4LCAKKyAgICAyMzAsIDEyLCAxMywgMjQ4LCAyMjksIDEyLCAxMywgMjQ4LCAyMjgsIDEyLCAxMywgMjQ4LCAyMjcsIDEyLCAxMywgMjQ4LCAKKyAgICAyMjYsIDEyLCAxMywgMjQ4LCAyMjUsIDEyLCAxMywgMjQ2LCAyNCwgMTIsIDEzLCAyNDYsIDIzLCAxMiwgMTMsIDI0NiwgMjIsIAorICAgIDEyLCAxMywgMjQ2LCAyMSwgMTIsIDEzLCAyNDYsIDIwLCAxMiwgMTMsIDI0NiwgMTksIDEyLCAxMywgMjQ2LCAxOCwgMTIsIAorICAgIDEzLCAyNDYsIDE3LCAxMiwgMTMsIDI0NiwgMTYsIDEyLCAxMywgMjQ2LCAxNSwgMTIsIDEzLCAyNDYsIDE0LCAxMiwgMTMsIAorICAgIDI0NiwgMTMsIDEyLCAxMywgMjQ2LCAxMiwgMTIsIDEzLCAyNDYsIDExLCAxMiwgMTMsIDI0NiwgMTAsIDEyLCAxMywgMjQ2LCAKKyAgICA5LCAxMiwgMTMsIDI0NiwgOCwgMTIsIDEzLCAyNDYsIDcsIDEyLCAxMywgMjQ2LCA2LCAxMiwgMTMsIDI0NiwgNSwgMTIsIAorICAgIDEzLCAyNDYsIDQsIDEyLCAxMywgMjQ2LCAzLCAxMiwgMTMsIDI0NiwgMiwgMTIsIDEzLCAyNDYsIDEsIDEyLCAxMywgMjQ2LCAKKyAgICAwLCAxMiwgMTMsIDI0NSwgMjU1LCAxMiwgMTMsIDI0NSwgMjU0LCAxMiwgMTMsIDI0NSwgMjUzLCAxMiwgMTMsIDI0NSwgCisgICAgMjUyLCAxMiwgMTMsIDI0NSwgMjUxLCAxMiwgMTMsIDI0NSwgMjUwLCAxMiwgMTMsIDI0NSwgMjQ5LCAxMiwgMTMsIDI0NSwgCisgICAgMjQ4LCAxMiwgMTMsIDI0NSwgMjQ3LCAxMiwgMTMsIDI0NSwgMjQ2LCAxMiwgMTMsIDI0NSwgMjQ1LCAxMiwgMTMsIDI0NSwgCisgICAgMjQ0LCAxMiwgMTMsIDI0NSwgMjQzLCAxMiwgMTMsIDI0NSwgMjQyLCAxMiwgMTMsIDI0NSwgMjQxLCAxMiwgMTMsIDI0NSwgCisgICAgMjQwLCAxMiwgMTMsIDI0NSwgMjM5LCAxMiwgMTMsIDI0NSwgMjM4LCAxMiwgMTMsIDI0NSwgMjM3LCAxMiwgMTMsIDI0NSwgCisgICAgNiwgMTIsIDEzLCAyNDUsIDUsIDEyLCAxMywgMjQ1LCA0LCAxMiwgMTMsIDI0NSwgMywgMTIsIDEzLCAyNDUsIDIsIDEyLCAKKyAgICAxMywgMjQ1LCAxLCAxMiwgMTMsIDI0NSwgMCwgMTIsIDEzLCAyNDQsIDI1NSwgMTIsIDEzLCAyNDQsIDI1NCwgMTIsIDEzLCAKKyAgICAyNDQsIDI1MywgMTIsIDEzLCAyNDQsIDI1MiwgMTIsIDEzLCAyNDQsIDI1MSwgMTIsIDEzLCAyNDQsIDI1MCwgMTIsIDEzLCAKKyAgICAyNDQsIDI0OSwgMTIsIDEzLCAyNDQsIDI0OCwgMTIsIDEzLCAyNDQsIDI0NywgMTIsIDEzLCAyNDQsIDI0NiwgMTIsIDEzLCAKKyAgICAyNDQsIDI0NSwgMTIsIDEzLCAyNDQsIDI0NCwgMTIsIDEzLCAyNDQsIDI0MywgMTIsIDEzLCAyNDQsIDI0MiwgMTIsIDEzLCAKKyAgICAyNDQsIDI0MSwgMTIsIDEzLCAyNDQsIDI0MCwgMTIsIDEzLCAyNDQsIDIzOSwgMTIsIDEzLCAyNDQsIDIzOCwgMTIsIDEzLCAKKyAgICAyNDQsIDIzNywgMTIsIDEzLCAyNDQsIDIzNiwgMTIsIDEzLCAyNDQsIDIzNSwgMTIsIDEzLCAyNDQsIDIzNCwgMTIsIDEzLCAKKyAgICAyNDQsIDIzMywgMTIsIDEzLCAyNDQsIDIzMiwgMTIsIDEzLCAyNDQsIDIzMSwgMTIsIDEzLCAyNDQsIDIzMCwgMTIsIDEzLCAKKyAgICAyNDQsIDIyOSwgMTIsIDEzLCAyNDQsIDIyOCwgMTIsIDEzLCAyNDQsIDIyNywgMTIsIDEzLCAyNDQsIDIyNiwgMTIsIDEzLCAKKyAgICAyNDQsIDIyNSwgMTIsIDEzLCAyNDQsIDIyNCwgMTIsIDEzLCAyNDQsIDIyMywgMTIsIDEzLCAyNDQsIDIyMiwgMTIsIDEzLCAKKyAgICAyNDQsIDIyMSwgMTIsIDEzLCAyNDQsIDIyMCwgMTIsIDEzLCAyNDQsIDIxOSwgMTIsIDEzLCAyNDQsIDIxOCwgMTIsIDEzLCAKKyAgICAyNDQsIDIxNywgMTIsIDEzLCAyNDQsIDIxNiwgMTIsIDEzLCAyNDQsIDIxNSwgMTIsIDEzLCAyNDQsIDIxNCwgMTIsIDEzLCAKKyAgICAyNDQsIDIxMywgMTIsIDEzLCAyNDQsIDIxMiwgMTIsIDEzLCAyNDQsIDIxMSwgMTIsIDEzLCAyNDQsIDIxMCwgMTIsIDEzLCAKKyAgICAyNDQsIDIwOSwgMTIsIDEzLCAyNDQsIDIwOCwgMTIsIDEzLCAyNDQsIDIwNywgMTIsIDEzLCAyNDQsIDIwNiwgMTIsIDEzLCAKKyAgICAyNDQsIDIwNSwgMTIsIDEzLCAyNDQsIDIwNCwgMTIsIDEzLCAyNDQsIDIwMywgMTIsIDEzLCAyNDQsIDIwMiwgMTIsIDEzLCAKKyAgICAyNDQsIDIwMSwgMTIsIDEzLCAyNDQsIDIwMCwgMTIsIDEzLCAyNDQsIDE5OSwgMTIsIDEzLCAyNDQsIDE5OCwgMTIsIDEzLCAKKyAgICAyNDMsIDIwMiwgMTIsIDEzLCAyNDMsIDIwMSwgMTIsIDEzLCAyNDMsIDIwMCwgMTIsIDEzLCAyNDMsIDE5OSwgMTIsIDEzLCAKKyAgICAyNDMsIDE5OCwgMTIsIDEzLCAyNDMsIDE5NywgMTIsIDEzLCAyNDMsIDE5NiwgMTIsIDEzLCAyNDMsIDE5NSwgMTIsIDEzLCAKKyAgICAyNDMsIDE5NCwgMTIsIDEzLCAyNDMsIDE5MywgMTIsIDEzLCAyNDMsIDE5MiwgMTIsIDEzLCAyNDMsIDE5MSwgMTIsIDEzLCAKKyAgICAyNDMsIDE5MCwgMTIsIDEzLCAyNDMsIDE4OSwgMTIsIDEzLCAyNDMsIDE4OCwgMTIsIDEzLCAyNDMsIDE4NywgMTIsIDEzLCAKKyAgICAyNDMsIDE4NiwgMTIsIDEzLCAyNDMsIDE4NSwgMTIsIDEzLCAyNDMsIDE4NCwgMTIsIDEzLCAyNDMsIDE4MywgMTIsIDEzLCAKKyAgICAyNDMsIDE4MiwgMTIsIDEzLCAyNDMsIDE4MSwgMTIsIDEzLCAyNDMsIDE4MCwgMTIsIDEzLCAyNDMsIDE3OSwgMTIsIDEzLCAKKyAgICAyNDMsIDE3OCwgMTIsIDEzLCAyNDMsIDE3NywgMTIsIDEzLCAyNDMsIDE3NiwgMTIsIDEzLCAyNDMsIDE3NSwgMTIsIDEzLCAKKyAgICAyNDMsIDE3NCwgMTIsIDEzLCAyNDMsIDE3MywgMTIsIDEzLCAyNDMsIDE3MiwgMTIsIDEzLCAyNDMsIDE3MSwgMTIsIDEzLCAKKyAgICAyNDMsIDE3MCwgMTIsIDEzLCAyNDMsIDE2OSwgMTIsIDEzLCAyNDMsIDE2OCwgMTIsIDEzLCAyNDMsIDE2NywgMTIsIDEzLCAKKyAgICAyNDMsIDE2NiwgMTIsIDEzLCAyNDMsIDE2NSwgMTIsIDEzLCAyNDMsIDE2NCwgMTIsIDEzLCAyNDMsIDE2MywgMTIsIDEzLCAKKyAgICAyNDMsIDE2MiwgMTIsIDEzLCAyNDMsIDE2MSwgMTIsIDEzLCAyNDMsIDE2MCwgMTIsIDEzLCAyNDMsIDE1OSwgMTIsIDEzLCAKKyAgICAyNDMsIDE1OCwgMTIsIDEzLCAyNDMsIDE1NywgMTIsIDEzLCAyNDMsIDE1NiwgMTIsIDEzLCAyNDMsIDE1NSwgMTIsIDEzLCAKKyAgICAyNDMsIDE1NCwgMTIsIDEzLCAyNDMsIDE1MywgMTIsIDEzLCAyNDMsIDE1MiwgMTIsIDEzLCAyNDMsIDE1MSwgMTIsIDEzLCAKKyAgICAyNDMsIDE1MCwgMTIsIDEzLCAyNDMsIDE0OSwgMTIsIDEzLCAyNDMsIDE0OCwgMTIsIDEzLCAyNDMsIDE0NywgMTIsIDEzLCAKKyAgICAyNDMsIDE0NiwgMTIsIDEzLCAyNDMsIDE0NSwgMTIsIDEzLCAyNDMsIDE0NCwgMTIsIDEzLCAyNDMsIDE0MywgMTIsIDEzLCAKKyAgICAyNDMsIDE0MiwgMTIsIDEzLCAyNDMsIDE0MSwgMTIsIDEzLCAyNDMsIDE0MCwgMTIsIDEzLCAyNDMsIDEzOSwgMTIsIDEzLCAKKyAgICAyNDIsIDU5LCAxMiwgMTMsIDI0MiwgNTgsIDEyLCAxMywgMjQyLCA1NywgMTIsIDEzLCAyNDIsIDU2LCAxMiwgMTMsIDI0MiwgCisgICAgNTUsIDEyLCAxMywgMjQyLCA1NCwgMTIsIDEzLCAyNDIsIDUzLCAxMiwgMTMsIDI0MiwgNTIsIDEyLCAxMywgMjQyLCA1MSwgCisgICAgMTIsIDEzLCAyNDAsIDEzOSwgMTIsIDEzLCAyNDAsIDEzOCwgMTIsIDEzLCAyNDAsIDEzNywgMTIsIDEzLCAyNDAsIDEzNiwgCisgICAgMTIsIDEzLCAyNDAsIDEzNSwgMTIsIDEzLCAyNDAsIDEzNCwgMTIsIDEzLCAyNDAsIDEzMywgMTIsIDEzLCAyNDAsIDEzMiwgCisgICAgMTIsIDEzLCAyNDAsIDEzMSwgMTIsIDEzLCAyNDAsIDEzMCwgMTIsIDEzLCAyNDAsIDEyOSwgMTIsIDEzLCAyNDAsIDEyOCwgCisgICAgMTIsIDEzLCAyNDAsIDEyNywgMTIsIDEzLCAyNDAsIDEyNiwgMTIsIDEzLCAyNDAsIDEyNSwgMTIsIDEzLCAyNDAsIDEyNCwgCisgICAgMTIsIDEzLCAyNDAsIDEyMywgMTIsIDEzLCAyNDAsIDEyMiwgMTIsIDEzLCAyNDAsIDEyMSwgMTIsIDEzLCAyMzUsIDIzLCAKKyAgICAxMiwgMTMsIDIzNSwgMjIsIDEyLCAxMywgMjM1LCAyMSwgMTIsIDEzLCAyMzUsIDIwLCAxMiwgMTMsIDIzNSwgMTksIDEyLCAKKyAgICAxMywgMjM1LCAxOCwgMTIsIDEzLCAyMzUsIDE3LCAxMiwgMTMsIDIzNSwgMTYsIDEyLCAxMywgMjMzLCAxNDcsIDEyLCAxMywgCisgICAgMjMzLCAxNDYsIDEyLCAxMywgMjMzLCAxNDUsIDEyLCAxMywgMjMzLCAxNDQsIDEyLCAxMywgMjMzLCAxNDMsIDEyLCAxMywgCisgICAgMjMzLCAxNDIsIDEyLCAxMywgMjMzLCAxNDEsIDEyLCAxMywgMjMzLCAxNDAsIDEyLCAxMywgMjMzLCAxMzksIDEyLCAxMywgCisgICAgMjMzLCAxMzgsIDEyLCAxMywgMjMyLCA1MCwgMTIsIDEzLCAyMzIsIDQ5LCAxMiwgMTMsIDIzMiwgNDgsIDEyLCAxMywgMjMyLCAKKyAgICA0NywgMTIsIDEzLCAyMzIsIDQ2LCAxMiwgMTMsIDIzMiwgNDUsIDEyLCAxMywgMjMyLCA0NCwgMTIsIDEzLCAyMzIsIDQzLCAKKyAgICAxMiwgMTMsIDIzMiwgNDIsIDEyLCAxMywgMjMyLCA0MSwgMTIsIDEzLCAyMzIsIDQwLCAxMiwgMTMsIDIzMiwgMzksIDEyLCAKKyAgICAxMywgMjMyLCAzOCwgMTIsIDEzLCAyMzIsIDM3LCAxMiwgMTMsIDIzMiwgMzYsIDEyLCAxMywgMjMyLCAzNSwgMTIsIDEzLCAKKyAgICAyMzIsIDM0LCAxMiwgMTMsIDIzMiwgMzMsIDEyLCAxMywgMjMyLCAzMiwgMTIsIDEzLCAyMzIsIDMxLCAxMiwgMTMsIDIzMiwgCisgICAgMzAsIDEyLCAxMywgMjMyLCAyOSwgMTIsIDEzLCAyMzIsIDI4LCAxMiwgMTMsIDIzMiwgMjcsIDEyLCAxMywgMjMyLCAyNiwgCisgICAgMTIsIDEzLCAyMzIsIDI1LCAxMiwgMTMsIDIzMiwgMjQsIDEyLCAxMywgMjMyLCAyMywgMTIsIDEzLCAyMzIsIDIyLCAxMiwgCisgICAgMTMsIDIzMiwgMjEsIDEyLCAxMywgMjMyLCAyMCwgMTIsIDEzLCAyMzIsIDE5LCAxMiwgMTMsIDIzMiwgMTgsIDEyLCAxMywgCisgICAgMjMyLCAxNywgMTIsIDEzLCAyMzIsIDE2LCAxMiwgMTMsIDIzMiwgMTUsIDEyLCAxMywgMjMyLCAxNCwgMTIsIDEzLCAyMzIsIAorICAgIDEzLCAxMiwgMTMsIDIzMiwgMTIsIDEyLCAxMywgMjMyLCAxMSwgMTIsIDEzLCAyMzIsIDEwLCAxMiwgMTMsIDIzMiwgOSwgCisgICAgMTIsIDEzLCAyMzIsIDgsIDEyLCAxMywgMjMyLCA3LCAxMiwgMTMsIDIzMiwgNiwgMTIsIDEzLCAyMzIsIDUsIDEyLCAxMywgCisgICAgMjMyLCA0LCAxMiwgMTMsIDIzMiwgMywgMTIsIDEzLCAyMzIsIDIsIDEyLCAxMywgMjMyLCAxLCAxMiwgMTMsIDIzMiwgMCwgCisgICAgMTIsIDEzLCAyMzEsIDI1NSwgMTIsIDEzLCAyMzEsIDI1NCwgMTIsIDEzLCAyMzEsIDI1MywgMTIsIDEzLCAyMzEsIDI1MiwgCisgICAgMTIsIDEzLCAyMzEsIDI1MSwgMTIsIDEzLCAyMzEsIDI1MCwgMTIsIDEzLCAyMzEsIDI0OSwgMTIsIDEzLCAyMzEsIDI0OCwgCisgICAgMTIsIDEzLCAyMzEsIDI0NywgMTIsIDEzLCAyMzEsIDI0NiwgMTIsIDEzLCAyMzEsIDI0NSwgMTIsIDEzLCAyMzEsIDI0NCwgCisgICAgMTIsIDEzLCAyMzEsIDI0MywgMTIsIDEzLCAyMzEsIDI0MiwgMTIsIDEzLCAyMzEsIDI0MSwgMTIsIDEzLCAyMzAsIDIzLCAKKyAgICAxMiwgMTMsIDIzMCwgMjIsIDEyLCAxMywgMjMwLCAyMSwgMTIsIDEzLCAyMzAsIDIwLCAxMiwgMTMsIDIzMCwgMTksIDEyLCAKKyAgICAxMywgMjMwLCAxOCwgMTIsIDEzLCAyMzAsIDE3LCAxMiwgMTMsIDIzMCwgMTYsIDEyLCAxMywgMjMwLCAxNSwgMTIsIDEzLCAKKyAgICAyMzAsIDE0LCAxMiwgMTMsIDIzMCwgMTMsIDEyLCAxMywgMjMwLCAxMiwgMTIsIDEzLCAyMzAsIDExLCAxMiwgMTMsIDIzMCwgCisgICAgMTAsIDEyLCAxMywgMjMwLCA5LCAxMiwgMTMsIDIzMCwgOCwgMTIsIDEzLCAyMzAsIDcsIDEyLCAxMywgMjMwLCA2LCAxMiwgCisgICAgMTMsIDIzMCwgNSwgMTIsIDEzLCAyMzAsIDQsIDEyLCAxMywgMjMwLCAzLCAxMiwgMTMsIDIzMCwgMiwgMTIsIDEzLCAyMzAsIAorICAgIDEsIDEyLCAxMywgMjMwLCAwLCAxMiwgMTMsIDIyOSwgMjU1LCAxMiwgMTMsIDIyOSwgMjU0LCAxMiwgMTMsIDIyOSwgMjUzLCAKKyAgICAxMiwgMTMsIDIyOSwgMjUyLCAxMiwgMTMsIDIyOSwgMjUxLCAxMiwgMTMsIDIyOSwgMjUwLCAxMiwgMTMsIDIyOSwgMjQ5LCAKKyAgICAxMiwgMTMsIDIyOSwgMjQ4LCAxMiwgMTMsIDIyOSwgMjQ3LCAxMiwgMTMsIDIyOSwgMjQ2LCAxMiwgMTMsIDIyOSwgMjQ1LCAKKyAgICAxMiwgMTMsIDIyOSwgMjQ0LCAxMiwgMTMsIDIyOSwgMjQzLCAxMiwgMTMsIDIyOSwgMjQyLCAxMiwgMTMsIDIyOSwgMjQxLCAKKyAgICAxMiwgMTMsIDIyOSwgMjQwLCAxMiwgMTMsIDIyOSwgMjM5LCAxMiwgMTMsIDIyOSwgMjM4LCAxMiwgMTMsIDIyOSwgMjM3LCAKKyAgICAxMiwgMTMsIDIyOSwgMjM2LCAxMiwgMTMsIDIyOSwgMjM1LCAxMiwgMTMsIDIyOSwgMjM0LCAxMiwgMTMsIDIyOSwgMjMzLCAKKyAgICAxMiwgMTMsIDIyOSwgMjMyLCAxMiwgMTMsIDIyOSwgMjMxLCAxMiwgMTMsIDIyOCwgMTM1LCAxMiwgMTMsIDIyOCwgMTM0LCAKKyAgICAxMiwgMTMsIDIyOCwgMTMzLCAxMiwgMTMsIDIyOCwgMTMyLCAxMiwgMTMsIDIyOCwgMTMxLCAxMiwgMTMsIDIyOCwgMTMwLCAKKyAgICAxMiwgMTMsIDIyOCwgMTI5LCAxMiwgMTMsIDIyOCwgMTI4LCAxMiwgMTMsIDIyOCwgMTI3LCAxMiwgMTMsIDIyOCwgMTI2LCAKKyAgICAxMiwgMTMsIDIyOCwgMTI1LCAxMiwgMTMsIDIyOCwgMTI0LCAxMiwgMTMsIDIyOCwgMTIzLCAxMiwgMTMsIDIyOCwgMTIyLCAKKyAgICAxMiwgMTMsIDIyOCwgMTIxLCAxMiwgMTMsIDIyOCwgMTIwLCAxMiwgMTMsIDIyOCwgMTE5LCAxMiwgMTMsIDIyOCwgMTE4LCAKKyAgICAxMiwgMTMsIDIyOCwgMTE3LCAxMiwgMTMsIDIyOCwgMTE2LCAxMiwgMTMsIDIyOCwgMTE1LCAxMiwgMTMsIDIyOCwgMTE0LCAKKyAgICAxMiwgMTMsIDIyNywgMjM3LCAxMiwgMTMsIDIyNywgMjM2LCAxMiwgMTMsIDIyNywgMjM1LCAxMiwgMTMsIDIyNywgMjM0LCAKKyAgICAxMiwgMTMsIDIyNywgMjMzLCAxMiwgMTMsIDIyNywgMjMyLCAxMiwgMTMsIDIyNywgMjMxLCAxMiwgMTMsIDIyNywgMjMwLCAKKyAgICAxMiwgMTMsIDIyNywgMjI5LCAxMiwgMTMsIDIyNywgMjI4LCAxMiwgMTMsIDIyNywgMjI3LCAxMiwgMTMsIDIyNywgMjI2LCAKKyAgICAxMiwgMTMsIDIyNywgMjI1LCAxMiwgMTMsIDIyNywgMjI0LCAxMiwgMTMsIDIyNywgMjIzLCAxMiwgMTMsIDIyNywgMjIyLCAKKyAgICAxMiwgMTMsIDIyNywgMjIxLCAxMiwgMTMsIDIyNywgMjIwLCAxMiwgMTMsIDIyNywgMjE5LCAxMiwgMTMsIDIyNywgMjE4LCAKKyAgICAxMiwgMTMsIDIyNywgMjE3LCAxMiwgMTMsIDIyNywgMjE2LCAxMiwgMTMsIDIyNywgMjE1LCAxMiwgMTMsIDIyNywgMjE0LCAKKyAgICAxMiwgMTMsIDIyNywgMjEzLCAxMiwgMTMsIDIyNywgMjEyLCAxMiwgMTMsIDIyNywgNzcsIDEyLCAxMywgMjI3LCA3NiwgMTIsIAorICAgIDEzLCAyMjcsIDc1LCAxMiwgMTMsIDIyNywgNzQsIDEyLCAxMywgMjI3LCA3MywgMTIsIDEzLCAyMjcsIDcyLCAxMiwgMTMsIAorICAgIDIyNywgNzEsIDEyLCAxMywgMjI3LCA3MCwgMTIsIDEzLCAyMjcsIDY5LCAxMiwgMTMsIDIyNywgNjgsIDEyLCAxMywgMjI3LCAKKyAgICA2NywgMTIsIDEzLCAyMjcsIDY2LCAxMiwgMTMsIDIyNywgNjUsIDEyLCAxMywgMjI3LCA2NCwgMTIsIDEzLCAyMjcsIDYzLCAKKyAgICAxMiwgMTMsIDIyNywgNjIsIDEyLCAxMywgMjI3LCA2MSwgMTIsIDEzLCAyMjcsIDYwLCAxMiwgMTMsIDIyNywgNTksIDEyLCAKKyAgICAxMywgMjI3LCA1OCwgMTIsIDEzLCAyMjcsIDU3LCAxMiwgMTMsIDIyNywgNTYsIDEyLCAxMywgMjI3LCA1NSwgMTIsIDEzLCAKKyAgICAyMjcsIDU0LCAxMiwgMTMsIDIyNywgNTMsIDEyLCAxMywgMjI3LCA1MiwgMTIsIDEzLCAyMjcsIDUxLCAxMiwgMTMsIDIyNywgCisgICAgNTAsIDEyLCAxMywgMjI3LCA0OSwgMTIsIDEzLCAyMjcsIDQ4LCAxMiwgMTMsIDIyNywgNDcsIDEyLCAxMywgMjI3LCA0NiwgCisgICAgMTIsIDEzLCAyMjcsIDQ1LCAxMiwgMTMsIDIyNywgNDQsIDEyLCAxMywgMjI3LCA0MywgMTIsIDEzLCAyMjcsIDQyLCAxMiwgCisgICAgMTMsIDIyNywgNDEsIDEyLCAxMywgMjI3LCA0MCwgMTIsIDEzLCAyMjcsIDM5LCAxMiwgMTMsIDIyNywgMzgsIDEyLCAxMywgCisgICAgMjI3LCAzNywgMTIsIDEzLCAyMjcsIDM2LCAxMiwgMTMsIDIyNywgMzUsIDEyLCAxMywgMjI3LCAzNCwgMTIsIDEzLCAyMjcsIAorICAgIDMzLCAxMiwgMTMsIDIyNywgMzIsIDEyLCAxMywgMjI3LCAzMSwgMTIsIDEzLCAyMjcsIDMwLCAxMiwgMTMsIDIyNywgMjksIAorICAgIDEyLCAxMywgMjI3LCAyOCwgMTIsIDEzLCAyMjcsIDI3LCAxMiwgMTMsIDIyNywgMjYsIDEyLCAxMywgMjI3LCAyNSwgMTIsIAorICAgIDEzLCAyMjcsIDI0LCAxMiwgMTMsIDIyNywgMjMsIDEyLCAxMywgMjI3LCAyMiwgMTIsIDEzLCAyMjcsIDIxLCAxMiwgMTMsIAorICAgIDIyNywgMjAsIDEyLCAxMywgMjI3LCAxOSwgMTIsIDEzLCAyMjcsIDE4LCAxMiwgMTMsIDIyNywgMTcsIDEyLCAxMywgMjI3LCAKKyAgICAxNiwgMTIsIDEzLCAyMjcsIDE1LCAxMiwgMTMsIDIyNywgMTQsIDEyLCAxMywgMjI3LCAxMywgMTIsIDEzLCAyMjcsIDEyLCAKKyAgICAxMiwgMTMsIDIyNywgMTEsIDEyLCAxMywgMjI3LCAxMCwgMTIsIDEzLCAyMjcsIDksIDEyLCAxMywgMjI3LCA4LCAxMiwgMTMsIAorICAgIDIyNywgNywgMTIsIDEzLCAyMjcsIDYsIDEyLCAxMywgMjI3LCA1LCAxMiwgMTMsIDIyNywgNCwgMTIsIDEzLCAyMjcsIDMsIAorICAgIDEyLCAxMywgMjI2LCAxMDUsIDEyLCAxMywgMjI2LCAxMDQsIDEyLCAxMywgMjI2LCAxMDMsIDEyLCAxMywgMjI2LCAxMDIsIAorICAgIDEyLCAxMywgMjI2LCAxMDEsIDEyLCAxMywgMjI2LCAxMDAsIDEyLCAxMywgMjI2LCA5OSwgMTIsIDEzLCAyMjYsIDk4LCAxMiwgCisgICAgMTMsIDIyNiwgOTcsIDEyLCAxMywgMjI2LCA5NiwgMTIsIDEzLCAyMjYsIDk1LCAxMiwgMTMsIDIyNiwgOTQsIDEyLCAxMywgCisgICAgMjI2LCA5MywgMTIsIDEzLCAyMjQsIDk2LCAxMiwgMTMsIDIyNCwgOTUsIDEyLCAxMywgMjI0LCA5NCwgMTIsIDEzLCAyMjQsIAorICAgIDkzLCAxMiwgMTMsIDIyNCwgOTIsIDEyLCAxMywgMjI0LCA5MSwgMTIsIDEzLCAyMjQsIDkwLCAxMiwgMTMsIDIyMywgMjIzLCAKKyAgICAxMiwgMTMsIDIyMywgMjIyLCAxMiwgMTMsIDIyMywgMjIxLCAxMiwgMTMsIDIyMywgMjIwLCAxMiwgMTMsIDIyMywgMjE5LCAKKyAgICAxMiwgMTMsIDIyMywgMjE4LCAxMiwgMTMsIDIyMywgMjE3LCAxMiwgMTMsIDIyMywgMjE2LCAxMiwgMTMsIDIyMywgMjE1LCAKKyAgICAxMiwgMTMsIDIyMywgMjE0LCAxMiwgMTMsIDIyMywgMjEzLCAxMiwgMTMsIDIyMywgMjEyLCAxMiwgMTMsIDIyMywgMjExLCAKKyAgICAxMiwgMTMsIDIyMywgMjEwLCAxMiwgMTMsIDIyMywgMjA5LCAxMiwgMTMsIDIyMywgMjA4LCAxMiwgMTMsIDIyMywgMjA3LCAKKyAgICAxMiwgMTMsIDIyMywgMjA2LCAxMiwgMTMsIDIyMywgMjA1LCAxMiwgMTMsIDIyMywgMjA0LCAxMiwgMTMsIDIyMywgMjAzLCAKKyAgICAxMiwgMTMsIDIyMywgMjAyLCAxMiwgMTMsIDIyMywgMjAxLCAxMiwgMTMsIDIyMywgMjAwLCAxMiwgMTMsIDIyMywgMTk5LCAKKyAgICAxMiwgMTMsIDIyMywgMTk4LCAxMiwgMTMsIDIyMywgMTk3LCAxMiwgMTMsIDIyMywgMTk2LCAxMiwgMTMsIDIyMywgMTk1LCAKKyAgICAxMiwgMTMsIDIyMywgMTk0LCAxMiwgMTMsIDIyMywgMTkzLCAxMiwgMTMsIDIyMywgMTkyLCAxMiwgMTMsIDIyMywgMTkxLCAKKyAgICAxMiwgMTMsIDIyMywgMTkwLCAxMiwgMTMsIDIyMiwgODksIDEyLCAxMywgMjIyLCA4OCwgMTIsIDEzLCAyMjIsIDg3LCAxMiwgCisgICAgMTMsIDIyMiwgODYsIDEyLCAxMywgMjIyLCA4NSwgMTIsIDEzLCAyMjIsIDg0LCAxMiwgMTMsIDIyMiwgODMsIDEyLCAxMywgCisgICAgMjIyLCA4MiwgMTIsIDEzLCAyMjIsIDgxLCAxMiwgMTMsIDIyMiwgODAsIDEyLCAxMywgMjIyLCA3OSwgMTIsIDEzLCAyMjIsIAorICAgIDc4LCAxMiwgMTMsIDIyMiwgNzcsIDEyLCAxMywgMjIyLCA3NiwgMTIsIDEzLCAyMjIsIDc1LCAxMiwgMTMsIDIyMiwgNzQsIAorICAgIDEyLCAxMywgMjIyLCA3MywgMTIsIDEzLCAyMjIsIDcyLCAxMiwgMTMsIDIyMiwgNzEsIDEyLCAxMywgMjIyLCA3MCwgMTIsIAorICAgIDEzLCAyMjIsIDY5LCAxMiwgMTMsIDIyMiwgNjgsIDEyLCAxMywgMjIyLCA2NywgMTIsIDEzLCAyMjIsIDY2LCAxMiwgMTMsIAorICAgIDIyMiwgNjUsIDEyLCAxMywgMjIyLCA2NCwgMTIsIDEzLCAyMjIsIDYzLCAxMiwgMTMsIDIyMiwgNjIsIDEyLCAxMywgMjIyLCAKKyAgICA2MSwgMTIsIDEzLCAyMjIsIDYwLCAxMiwgMTMsIDIyMiwgNTksIDEyLCAxMywgMjIyLCA1OCwgMTIsIDEzLCAyMjIsIDU3LCAKKyAgICAxMiwgMTMsIDIyMiwgNTYsIDEyLCAxMywgMjIyLCA1NSwgMTIsIDEzLCAyMjIsIDU0LCAxMiwgMTMsIDIyMiwgNTMsIDEyLCAKKyAgICAxMywgMjIyLCA1MiwgMTIsIDEzLCAyMjIsIDUxLCAxMiwgMTMsIDIyMiwgNTAsIDEyLCAxMywgMjIyLCA0OSwgMTIsIDEzLCAKKyAgICAyMjIsIDQ4LCAxMiwgMTMsIDIyMiwgNDcsIDEyLCAxMywgMjIyLCA0NiwgMTIsIDEzLCAyMjIsIDQ1LCAxMiwgMTMsIDIyMiwgCisgICAgNDQsIDEyLCAxMywgMjIyLCA0MywgMTIsIDEzLCAyMjIsIDQyLCAxMiwgMTMsIDIyMiwgNDEsIDEyLCAxMywgMjIyLCA0MCwgCisgICAgMTIsIDEzLCAyMjIsIDM5LCAxMiwgMTMsIDIyMiwgMzgsIDEyLCAxMywgMjIyLCAzNywgMTIsIDEzLCAyMjIsIDM2LCAxMiwgCisgICAgMTMsIDIxNywgMTUxLCAxMiwgMTMsIDIxNywgMTUwLCAxMiwgMTMsIDIxNywgMTQ5LCAxMiwgMTMsIDIxNywgMTQ4LCAxMiwgCisgICAgMTMsIDIxNywgMTQ3LCAxMiwgMTMsIDIxNywgMTQ2LCAxMiwgMTMsIDIxNywgMTQ1LCAxMiwgMTMsIDIxNywgMTQ0LCAxMiwgCisgICAgMTMsIDIxNywgMTQzLCAxMiwgMTMsIDIxNywgMTQyLCAxMiwgMTMsIDIxNywgMTQxLCAxMiwgMTMsIDIxNywgMTQwLCAxMiwgCisgICAgMTMsIDIxNywgMTM5LCAxMiwgMTMsIDIxNywgMTM4LCAxMiwgMTMsIDIxNywgMTM3LCAxMiwgMTMsIDIxNywgMTM2LCAxMiwgCisgICAgMTMsIDIxNywgMTM1LCAxMiwgMTMsIDIxNywgMTM0LCAxMiwgMTMsIDIxNywgMTMzLCAxMiwgMTMsIDIxNywgMTMyLCAxMiwgCisgICAgMTMsIDIxNywgMTMxLCAxMiwgMTMsIDIxNywgMTMwLCAxMiwgMTMsIDIxNywgMTI5LCAxMiwgMTMsIDIxNywgMTI4LCAxMiwgCisgICAgMTMsIDIxNywgMTI3LCAxMiwgMTMsIDIxNywgMTI2LCAxMiwgMTMsIDIxNywgMTI1LCAxMiwgMTMsIDIxNywgMTI0LCAxMiwgCisgICAgMTMsIDIxNywgMTIzLCAxMiwgMTMsIDIxNywgMTIyLCAxMiwgMTMsIDIxNywgMTIxLCAxMiwgMTMsIDIxNywgMTIwLCAxMiwgCisgICAgMTMsIDIxNywgMTE5LCAxMiwgMTMsIDIxNywgMTE4LCAxMiwgMTMsIDIxNywgMTE3LCAxMiwgMTMsIDIxNywgMTE2LCAxMiwgCisgICAgMTMsIDIxNywgMTE1LCAxMiwgMTMsIDIxNywgMTE0LCAxMiwgMTMsIDIxNywgMTEzLCAxMiwgMTMsIDIxNywgMTEyLCAxMiwgCisgICAgMTMsIDIxNywgMTExLCAxMiwgMTMsIDIxNywgMTEwLCAxMiwgMTMsIDIxNywgMTA5LCAxMiwgMTMsIDIxNywgMTA4LCAxMiwgCiAgICAgMTMsIDIxNSwgMjIsIDEyLCAxMywgMjE1LCAyMSwgMTIsIDEzLCAyMTUsIDIwLCAxMiwgMTMsIDIxNSwgMTksIDEyLCAxMywgCiAgICAgMjE1LCAxOCwgMTIsIDEzLCAyMTUsIDE3LCAxMiwgMTMsIDIxNSwgMTYsIDEyLCAxMywgMjE1LCAxNSwgMTIsIDEzLCAyMTUsIAogICAgIDE0LCAxMiwgMTMsIDIxNSwgMTMsIDEyLCAxMywgMjE1LCAxMiwgMTIsIDEzLCAyMTUsIDExLCAxMiwgMTMsIDIxNSwgMTAsIApAQCAtMTIxNzQsMTY0OSArMTIxNzUsMTY1MCBAQAogICAgIDIxMCwgMTMxLCAxMiwgMTMsIDIxMCwgMTMwLCAxMiwgMTMsIDIxMCwgMTI5LCAxMiwgMTMsIDIxMCwgMTI4LCAxMiwgMTMsIAogICAgIDIxMCwgMTI3LCAxMiwgMTMsIDIxMCwgMTI2LCAxMiwgMTMsIDIxMCwgMTI1LCAxMiwgMTMsIDIxMCwgMTI0LCAxMiwgMTMsIAogICAgIDIxMCwgMTIzLCAxMiwgMTMsIDIxMCwgMTIyLCAxMiwgMTMsIDIxMCwgMTIxLCAxMiwgMTMsIDIxMCwgMTIwLCAxMiwgMTMsIAotICAgIDIxMCwgMTE5LCAxMiwgMTMsIDIxMCwgMTE4LCAxMiwgMTMsIDI1NSwgNzIsIDEyLCAxMywgMjU1LCA3MSwgMTIsIDEzLCAKLSAgICAyNTUsIDcwLCAxMiwgMTMsIDI1NSwgNjksIDEyLCAxMywgMjU1LCA2OCwgMTIsIDEzLCAyNTUsIDY3LCAxMiwgMTMsIDI1NSwgCi0gICAgNjYsIDEyLCAxMywgMjU1LCA2NSwgMTIsIDEzLCAyNTUsIDY0LCAxMiwgMTMsIDI1NSwgNjMsIDEyLCAxMywgMjU1LCA2MiwgCi0gICAgMTIsIDEzLCAyNTUsIDYxLCAxMiwgMTMsIDI1NSwgNjAsIDEyLCAxMywgMjU1LCA1OSwgMTIsIDEzLCAyNTUsIDU4LCAxMiwgCi0gICAgMTMsIDI1NSwgNTcsIDEyLCAxMywgMjU1LCA1NiwgMTIsIDEzLCAyNTUsIDU1LCAxMiwgMTMsIDI1NSwgNTQsIDEyLCAxMywgCi0gICAgMjU1LCA1MywgMTIsIDEzLCAyNTUsIDUyLCAxMiwgMTMsIDI1NSwgNTEsIDEyLCAxMywgMjU1LCA1MCwgMTIsIDEzLCAyNTUsIAotICAgIDQ5LCAxMiwgMTMsIDI1NSwgNDgsIDEyLCAxMywgMjU1LCA0NywgMTIsIDEzLCAyNTUsIDQ2LCAxMiwgMTMsIDI1NSwgNDUsIAotICAgIDEyLCAxMywgMjU1LCA0NCwgMTIsIDEzLCAyNTUsIDQzLCAxMiwgMTMsIDI1NSwgNDIsIDEyLCAxMywgMjU1LCA0MSwgMTIsIAotICAgIDEzLCAyNTUsIDQwLCAxMiwgMTMsIDI1NSwgMzksIDIwLCAxLCAxNjcsIDIyOSwgMTIsIDIzMSwgMTYsIDIwLCAxLCAxNjcsIAotICAgIDI0MywgNzAsIDI0NCwgMzYsIDIwLCAxLCAxNjcsIDIyNCwgMjUxLCAyMzEsIDE3LCAyMjUsIDU3LCAyMCwgMSwgMTY3LCAKLSAgICAyMjQsIDI1MSwgMjMxLCAxNywgMjI1LCA1OCwgMjAsIDEsIDE2NywgMjI5LCAyMjYsIDIzMSwgMTYsIDIwLCAxLCAxNjcsIAotICAgIDIxOSwgMjIxLCAyMCwgMSwgMTY3LCAyMTYsIDY2LCAyMzEsIDE2LCAyMCwgMSwgMTY3LCAyMjcsIDExOCwgMjMxLCAxNiwgCi0gICAgMjAsIDEsIDE2NywgMjIwLCAxOSwgMjI2LCA5MCwgMjI4LCAxNjksIDIwLCAxLCAxNjcsIDIyNCwgMjUxLCAyMjYsIDkwLCAKLSAgICAyMjgsIDE3MCwgMjI1LCA1NywgMjAsIDEsIDE2NywgMjI0LCAyNTEsIDIyNiwgOTAsIDIyOCwgMTcwLCAyMjUsIDU4LCAyMCwgCi0gICAgMSwgMTY3LCAyMzEsIDIxOCwgMjAsIDEsIDE2NywgMjE1LCAxMTksIDIzMSwgMjE5LCAyMCwgMSwgMTY3LCAyMjksIDcxLCAKLSAgICAyMCwgMSwgMTY3LCAyMzEsIDIxNSwgMjAsIDEsIDE2NywgMjMxLCAxNzYsIDIwLCAxLCAxNjcsIDIzMCwgNDgsIDIwLCAxLCAKLSAgICAxNjcsIDIyMCwgMTI0LCAyMCwgMSwgMTY3LCAyMjcsIDI0MSwgMjAsIDEsIDE2NywgMjM0LCAxNDksIDIwLCAxLCAxNjcsIAotICAgIDIyOCwgMTM4LCAyMCwgMSwgMTY3LCAyMTgsIDQsIDIwLCAxLCAxNjcsIDIyOSwgMTEsIDIwLCAxLCAxNjcsIDIzMywgODcsIAotICAgIDIwLCAxLCAxNjcsIDIzMywgMTIsIDIzMywgMTg5LCAyMCwgMSwgMTY3LCAyMjcsIDI0OCwgMjMxLCAyNCwgMjAsIDEsIDE2NywgCi0gICAgMjMxLCAyMjIsIDIwLCAxLCAxNjcsIDIyNSwgMjQ2LCAyMCwgMSwgMTY3LCAyNDIsIDIzMSwgMjAsIDEsIDE2NywgMjI2LCAKLSAgICA1MCwgMjAsIDEsIDE2NywgMjMwLCAxNTEsIDIyOSwgNDUsIDIwLCAxLCAxNjcsIDIyNywgOTksIDIzMSwgMjcsIDIwLCAxLCAKLSAgICAxNjcsIDEwNCwgMjEwLCAxODgsIDIyOSwgMjIwLCAyMCwgMSwgMTY3LCAyNDIsIDIzMiwgMjAsIDEsIDE2NywgMjI3LCAyNDgsIAotICAgIDIyNywgMjQ5LCAyMCwgMSwgMTY3LCAyMTksIDEyOCwgMjAsIDEsIDE2NywgMjMxLCA5LCAyMCwgMSwgMTY3LCAyMzEsIDMwLCAKLSAgICAyMCwgMSwgMTY3LCAyMzAsIDEzMCwgMjAsIDEsIDE2NywgMjM0LCAyNDksIDIwLCAxLCAxNjcsIDIyNiwgOTAsIDIzMywgNDcsIAotICAgIDIwLCAxLCAxNjcsIDIyOSwgMTQ5LCAyMzMsIDQ3LCAyMCwgMSwgMTY3LCAyMjUsIDE1OCwgMjAsIDEsIDE2NywgMjMxLCAKLSAgICAyMTYsIDIwLCAxLCAxNjcsIDIyOCwgMjA3LCAyMCwgMSwgMTY3LCAyMjQsIDEzNCwgMjAsIDEsIDE2NywgMjE1LCAxMTYsIAotICAgIDIwLCAxLCAxNjcsIDIzMiwgOTQsIDIwLCAxLCAxNjcsIDIxOSwgNDEsIDIwLCAxLCAxNjcsIDIxNiwgMjE2LCAyMCwgMSwgCi0gICAgMTY3LCAyMzEsIDIxMywgMjAsIDEsIDE2NywgMjM0LCAxNTYsIDIwLCAxLCAxNjcsIDIyOSwgMTQ1LCAyMCwgMSwgMTY3LCAKLSAgICAyMzMsIDIwMSwgMjAsIDEsIDE2NywgMjMwLCAxMzEsIDIwLCAxLCAxNjcsIDIxOSwgMjE4LCAyMCwgMSwgMTY3LCAyMzIsIAotICAgIDEzOCwgMjAsIDEsIDE2NywgMjQ0LCA5MywgMjAsIDEsIDE2NywgMjIyLCAxOTksIDIwLCAxLCAxNjcsIDIzMywgMjQxLCAyMCwgCi0gICAgMSwgMTY3LCAyMTksIDM3LCAyMCwgMSwgMTY3LCAyMzEsIDE3MywgMjI1LCA5OSwgMjAsIDEsIDE2NywgMjIwLCAxMiwgMjAsIAotICAgIDEsIDE2NywgMjI3LCAyNDcsIDIwLCAxLCAxNjcsIDIxOSwgMjUzLCAyMjgsIDIsIDIxMCwgMTk2LCAyMCwgMSwgMTY3LCAKLSAgICAyMjcsIDEzOCwgMjMwLCAxNDgsIDIwLCAxLCAxNjcsIDIyNiwgODUsIDIwLCAxLCAxNjcsIDIyOCwgMTM5LCAyMCwgMSwgCi0gICAgMTY3LCAyMTQsIDE3MCwgMjAsIDEsIDE2NywgMjI5LCA0OCwgMjAsIDEsIDE2NywgMjMxLCAyMTIsIDIwLCAxLCAxNjcsIAotICAgIDIyOCwgMTgxLCAyMCwgMSwgMTY3LCAyMzEsIDExOSwgMjAsIDEsIDE2NywgMjI3LCAxNTEsIDIwLCAxLCAxNjcsIDIxNiwgCi0gICAgMjIwLCAyMCwgMSwgMTY3LCAyMTksIDM0LCAyMCwgMSwgMTY3LCAyMjYsIDg2LCAyMCwgMSwgMTY3LCAyMjgsIDYsIDIwLCAxLCAKLSAgICAxNjcsIDIzMSwgMjIwLCAyMCwgMSwgMTY3LCAyMjcsIDE0OCwgMjAsIDEsIDE2NywgMjM0LCAyMTYsIDIwLCAxLCAxNjcsIAotICAgIDIyOCwgOSwgMjAsIDEsIDE2NywgMjEzLCAyNTAsIDIwLCAxLCAxNjcsIDIzMiwgOTgsIDIwLCAxLCAxNjcsIDIyOSwgOTgsIAotICAgIDIwLCAxLCAxNjcsIDIyOSwgMTk2LCAyMCwgMSwgMTY3LCAyMzEsIDExOCwgMjAsIDEsIDIyNSwgMTM4LCAyMjgsIDQsIDIwLCAKLSAgICAxLCAyMjUsIDEzOCwgMjE1LCAxMTksIDIzMSwgMjE3LCAyMCwgMSwgMjI1LCAxMzgsIDIxOSwgMTg1LCAyMCwgMSwgMjI1LCAKLSAgICAxMzgsIDIyMCwgMTI4LCAyMTUsIDExOCwgMjAsIDEsIDIyNSwgMTM4LCAyMzIsIDE0MCwgMjI3LCAyNDQsIDIwLCAxLCAyMjUsIAotICAgIDEzOCwgMjMxLCAxMjUsIDIzMSwgMjIxLCAyMCwgMSwgMjI1LCAxMzgsIDIzNCwgODcsIDIwLCAxLCAyMjUsIDEzOCwgMjExLCAKLSAgICAxNSwgMjAsIDEsIDIyNSwgMTM4LCAyMzEsIDEyMCwgMjAsIDEsIDIyNSwgMTM4LCAyMzQsIDIzNywgMjAsIDEsIDIyNSwgCi0gICAgMTM4LCAyMjUsIDIwOCwgMjAsIDEsIDIyNSwgMTM4LCAyMTEsIDg5LCAyMzMsIDQ3LCAyMCwgMSwgMjI1LCAxMzgsIDIzMywgCi0gICAgMTAzLCAyMjgsIDIsIDIyNywgMTYwLCAyMCwgMSwgMjI1LCAxMzgsIDIyNywgMjQyLCAyMjAsIDM4LCAyMCwgMSwgMjI1LCAKLSAgICAxMzgsIDIyOSwgMTE2LCAyMjgsIDE4NCwgMjAsIDEsIDIyNSwgMTM4LCAyNDIsIDIyOSwgMjAsIDEsIDIyNSwgMTM4LCAyMjUsIAotICAgIDQ5LCAyMCwgMSwgMjI1LCAxMzgsIDIxNSwgMTE5LCAyMjgsIDAsIDIwLCAxLCAyMjUsIDEzOCwgMjIwLCA0MywgMjI4LCAKLSAgICAxNzksIDIwLCAxLCAyMjUsIDEzOCwgMjIwLCAzOSwgMjAsIDEsIDIyNSwgMTM4LCAyMzEsIDE3LCAyMTYsIDIxOSwgMjAsIDEsIAotICAgIDIyNSwgMTM4LCAyMzEsIDEwNywgMjMxLCAxMjEsIDIwLCAxLCAyMjUsIDEzOCwgMjI3LCAxNDksIDIyNywgMjQ0LCAyMCwgMSwgCi0gICAgMjI1LCAxMzgsIDIzNCwgMTQ1LCAyMCwgMSwgMjI1LCAxMzgsIDI0MiwgMjMwLCAyMCwgMSwgMjI1LCAxMzgsIDIzNCwgMTQxLCAKLSAgICAyMCwgMSwgMjI1LCAxMzgsIDIzMywgMTI5LCAyMCwgMSwgMjI1LCAxMzgsIDIyNSwgMjQ5LCAyMCwgMSwgMjI1LCAxMzgsIAotICAgIDIxMywgMTgyLCAyMCwgMSwgMjI1LCAxMzgsIDIyOSwgMTMsIDIzMCwgNDYsIDIwLCAxLCAyMjUsIDEzOCwgMjI5LCA0NywgCi0gICAgMjMxLCAxMDMsIDIwLCAxLCAyMjUsIDEzOCwgMjExLCAxOTMsIDIwLCAxLCAyMjUsIDEzOCwgMjIyLCAxMSwgMjAsIDEsIAotICAgIDIyNSwgMTM4LCAyMTcsIDk3LCAyMCwgMSwgMjI1LCAxMzgsIDIzMSwgMjksIDIwLCAxLCAyMjUsIDEzOCwgMjI5LCAzMiwgCi0gICAgMjAsIDEsIDIyNSwgMTM4LCAyMjksIDMzLCAyMzMsIDg0LCAyMCwgMSwgMjI1LCAxMzgsIDIzMSwgMTksIDIwLCAxLCAyMjUsIAotICAgIDEzOCwgMjE4LCA1MiwgMjAsIDEsIDIyNSwgMTM4LCAyMzEsIDExMSwgMjAsIDEsIDIyNSwgMTM4LCAyMzAsIDEzMywgMjAsIAotICAgIDEsIDIyNSwgMTM4LCAyMjcsIDE2MywgMjAsIDEsIDIyNSwgMTM4LCAyMjQsIDEzOCwgMjAsIDEsIDIyNSwgMTM4LCAyMzEsIAotICAgIDI4LCAyMjksIDQ5LCAyMCwgMSwgMjI1LCAxMzgsIDI0NCwgMTI2LCAyMCwgMSwgMjI1LCAxMzgsIDIzMSwgOTgsIDIwLCAxLCAKLSAgICAyMjUsIDEzOCwgMjQ0LCAxNDcsIDIwLCAxLCAyMjUsIDEzOCwgMjM0LCAxNTMsIDIwLCAxLCAyMjUsIDEzOCwgMjMxLCAyMzksIAotICAgIDIyOCwgMTczLCAyMCwgMSwgMjI1LCAxMzgsIDIzMSwgMjM5LCAyMjgsIDE0OSwgMjAsIDEsIDIyNSwgMTM4LCAyMzMsIDExLCAKLSAgICAyMCwgMSwgMjI1LCAxMzgsIDIyOSwgNTUsIDIwLCAxLCAyMjUsIDEzOCwgMjI4LCAxMSwgMjAsIDEsIDIyNSwgMTM4LCAxODQsIAotICAgIDIwLCAxLCAyMjUsIDEzOCwgMjM0LCA3NCwgMjAsIDEsIDIyNSwgMTM4LCAyMjksIDEsIDIwLCAxLCAxMzcsIDIyOSwgMTIsIAotICAgIDIzMSwgMjE5LCAyMCwgMSwgMTM3LCAyMjcsIDExNywgMjAsIDEsIDEzNywgMjEwLCAxOTYsIDIwLCAxLCAxMzcsIDIxMiwgCi0gICAgNTMsIDIwLCAxLCAxMzcsIDIyOSwgNDgsIDIwLCAxLCAxMzcsIDIyOSwgMTM3LCAyMCwgMSwgMTM3LCAyMjksIDE5LCAyMCwgCi0gICAgMSwgMTM3LCAyNDIsIDIzOSwgMjAsIDEsIDEzNywgMjMxLCAxMTUsIDIwLCAxLCAxMzcsIDI0MywgNzcsIDIwLCAxLCAxMzcsIAotICAgIDIyNywgMTQwLCAyMzAsIDE3MCwgMjMxLCAzMSwgMjAsIDEsIDEzNywgMjI3LCAyNDAsIDIzMSwgMTA2LCAyMCwgMSwgMTM3LCAKLSAgICAyMzEsIDExMiwgMjAsIDEsIDEzNywgMjI1LCA1NSwgMjAsIDEsIDEzNywgMjI5LCAxMjIsIDIwLCAxLCAxMzcsIDIzMSwgCi0gICAgMTIzLCAyNTEsIDI5LCAyMCwgMSwgMTM3LCAyMzQsIDE0MywgMjAsIDEsIDEzNywgMjQyLCAyNDAsIDIwLCAxLCAxMzcsIAotICAgIDIzNCwgMTUwLCAyMCwgMSwgMTM3LCAyMTAsIDIxMywgMjMwLCA3NiwgMjAsIDEsIDEzNywgMjI3LCAxMTEsIDIwLCAxLCAKLSAgICAxMzcsIDIzMSwgMTAwLCAyMCwgMSwgMTM3LCAyMjgsIDEwLCAyMCwgMSwgMTM3LCAyMzEsIDEwNiwgMjAsIDEsIDEzNywgCi0gICAgMjExLCAxNiwgMjAsIDEsIDEzNywgMjMzLCAyNDksIDIwLCAxLCAxMzcsIDIzNSwgMTAsIDIwLCAxLCAxMzcsIDIyMCwgMTIzLCAKLSAgICAyMCwgMSwgMTM3LCAyMjksIDEzMSwgMjAsIDEsIDEzNywgMjE3LCA5NSwgMjAsIDEsIDEzNywgMjI4LCAxNTMsIDIwLCAxLCAKLSAgICAxMzcsIDIxNiwgNjYsIDIxMCwgMTk4LCAyMCwgMSwgMTM3LCAyMTgsIDc5LCAyMCwgMSwgMTM3LCAyMjksIDM5LCAyMjcsIAotICAgIDE2MCwgMjAsIDEsIDEzNywgMjEzLCAxODEsIDIwLCAxLCAxMzcsIDIyOSwgMTk5LCAyMCwgMSwgMTM3LCAyMzEsIDIzOSwgCi0gICAgMjM0LCAxNTIsIDIwLCAxLCAxMzcsIDIyNywgMjQ5LCAyMCwgMSwgMTM3LCAyMjksIDM0LCAyMCwgMSwgMTM3LCAyMzMsIDg4LCAKLSAgICAyMCwgMSwgMTM3LCAyMzEsIDEwOCwgMjAsIDEsIDEzNywgMjMxLCA4LCAyMCwgMSwgMTM3LCAyMjcsIDI0MywgMjAsIDEsIAotICAgIDEzNywgMjE2LCAyMTUsIDIwLCAxLCAxMzcsIDIyOSwgMzYsIDIwLCAxLCAxMzcsIDI0MywgMjMzLCAyMCwgMSwgMTM3LCAKLSAgICAyMjksIDEzNiwgMjAsIDEsIDEzNywgMjI4LCAxMiwgMjAsIDEsIDEzNywgMjI4LCA4LCAyMCwgMSwgMTM3LCAyNTEsIDEwNywgCi0gICAgMjAsIDEsIDEzNywgMjEzLCAxODMsIDIwLCAxLCAxMzcsIDIzMSwgMTEzLCAyMCwgMSwgMTM3LCAyMjIsIDE0MCwgMjAsIDEsIAotICAgIDEzNywgMjI4LCAxODMsIDIwLCAxLCAxMzcsIDIzMywgMTAyLCAyMCwgMSwgMTM3LCAyMTYsIDY0LCAyMCwgMSwgMTM3LCAKLSAgICAyMjcsIDI1MCwgMjI5LCAxLCAyMCwgMSwgMTM3LCAyMjgsIDE3NSwgMjAsIDEsIDEzNywgMjM0LCAxNTYsIDIwLCAxLCAxMzcsIAotICAgIDIyOSwgNDAsIDIwLCAxLCAxMzcsIDIzMSwgMjEyLCAyMCwgMSwgMTM3LCAyMzEsIDEwMSwgMjAsIDEsIDEzNywgMjMyLCA5OCwgCi0gICAgMjAsIDEsIDEzNywgMjMzLCAxODksIDIwLCAxLCAxMzcsIDIyOCwgMTgxLCAyMCwgMSwgMTM3LCAyMjksIDEsIDIwLCAxLCAKLSAgICAxMzcsIDIxMSwgMTg0LCAyMCwgMSwgMTM3LCAyMjksIDM3LCAyMCwgMSwgMTM3LCAyMjcsIDI1MywgMjAsIDEsIDEzNywgCi0gICAgMjI3LCAyNDUsIDIwLCAxLCAxMzcsIDIzMywgMjAzLCAyMjgsIDEzOSwgMjAsIDEsIDEzNywgMjI3LCAyNTEsIDIwLCAxLCAKLSAgICAxMzcsIDIyOSwgMTQ0LCAyMCwgMSwgMTM3LCAyMzEsIDIzOSwgMjI4LCAwLCAyMCwgMSwgMTM3LCAyMTEsIDEwMywgMjAsIDEsIAotICAgIDEzNywgMjI5LCAxNDMsIDIwLCAxLCAxMzcsIDIxOSwgMjIwLCAyMCwgMSwgMTM3LCAyMjAsIDEyNiwgMjAsIDEsIDEzNywgCi0gICAgMjMxLCAxMDksIDIwLCAxLCAxMzcsIDIzMSwgMjE5LCAyMCwgMSwgMTM3LCAyMzEsIDExOSwgMjAsIDEsIDEzNywgMjM0LCAKLSAgICAxNDQsIDIwLCAxLCAxMzcsIDIzMSwgMTEwLCAyMCwgMSwgMTM3LCAyMzQsIDE0OCwgMjAsIDEsIDEzNywgMjMxLCAxMjMsIAotICAgIDIyNSwgMTAzLCAyMCwgMSwgMTM3LCAyMTAsIDE3OSwgMjAsIDEsIDEzNywgMjI4LCAxNzEsIDIwLCAxLCAxMzcsIDIzMCwgCi0gICAgMjIwLCAyMCwgMSwgMTM3LCAyMzAsIDEwMCwgMjAsIDEsIDEzNywgMjIwLCAxNSwgMjAsIDEsIDEzNywgMjM0LCAxNjYsIAotICAgIDIzMywgNzAsIDIwLCAxLCAxMzcsIDIzNCwgMTY2LCAyNDQsIDE2MCwgMjAsIDEsIDEzNywgMjI5LCA2OSwgMjAsIDEsIDEzNywgCi0gICAgMjI5LCAxOTYsIDIwLCAxLCAxMzcsIDIzMiwgMjAwLCAyMCwgMSwgMTM3LCAyMjUsIDY1LCAyMCwgMSwgMTM3LCAyMjUsIAotICAgIDE5OSwgMjAsIDEsIDEzNywgMjE2LCAyMzAsIDIwLCAxLCAxMDcsIDIzMSwgOTksIDIwLCAxLCAxMDcsIDIxMiwgNTEsIDIwLCAKLSAgICAxLCAxMDcsIDIyOCwgMTY5LCAyMCwgMSwgMTA3LCAyMzEsIDE2LCAyMCwgMSwgMTA3LCAyMjgsIDE2NywgMjAsIDEsIDEwNywgCi0gICAgMjMyLCAyMzUsIDIwLCAxLCAxMDcsIDIyOCwgMTcyLCAyMCwgMSwgMTA3LCAyMjgsIDcsIDIwLCAxLCAxMDcsIDIyOSwgNTQsIAotICAgIDIwLCAxLCAxMDcsIDIyNywgMTYwLCAyMCwgMSwgMTA3LCAyMTEsIDE5NCwgMjAsIDEsIDEwNywgMjI5LCA5LCAyMCwgMSwgCi0gICAgMTA3LCAyMjAsIDYxLCAyMCwgMSwgMTA3LCAyMjksIDIwLCAyMCwgMSwgMTA3LCAyMzQsIDE1MSwgMjAsIDEsIDEwNywgMjE2LCAKLSAgICAyMTcsIDIwLCAxLCAxMDcsIDIyMCwgNDEsIDIwLCAxLCAxMDcsIDIyOCwgMTgwLCAyMCwgMSwgMTA3LCAyMTgsIDUyLCAyMCwgCi0gICAgMSwgMTA3LCAyMzQsIDE1NiwgMjAsIDEsIDEwNywgMjExLCA5MSwgMjAsIDEsIDEwNywgMjMzLCAyMDQsIDIwLCAxLCAxMDcsIAotICAgIDIyMSwgMjM0LCAyMCwgMSwgMTA3LCAyMzEsIDIxLCAyMCwgMSwgMTA3LCAyMjksIDEzNSwgMjAsIDEsIDEwNywgMjMxLCAKLSAgICAxODgsIDIwLCAxLCAxMDcsIDIzMSwgMjcsIDIwLCAxLCAxMDcsIDIyMCwgMTI1LCAyMCwgMSwgMTA3LCAyMTEsIDM5LCAyMCwgCi0gICAgMSwgMTA3LCAyMjgsIDE3NCwgMjAsIDEsIDEwNywgMjM0LCAxNDcsIDIzMSwgMTAyLCAyMCwgMSwgMTA3LCAyMjksIDE2LCAKLSAgICAyMCwgMSwgMTA3LCAyMTUsIDExOCwgMjAsIDEsIDEwNywgMjQyLCAyNDgsIDIwLCAxLCAxMDcsIDIyOSwgNiwgMjAsIDEsIAotICAgIDEwNywgMjQ0LCAxMjcsIDIwLCAxLCAxMDcsIDIyOSwgMTM5LCAyMCwgMSwgMTA3LCAyMzEsIDAsIDIwLCAxLCAxMDcsIDIzMywgCi0gICAgNSwgMjAsIDEsIDEwNywgMjI5LCAxMjEsIDIwLCAxLCAxMDcsIDIzMCwgMTQ3LCAyMCwgMSwgMTA3LCAyMzEsIDQsIDIwLCAxLCAKLSAgICAxMDcsIDIyNCwgMTE4LCAyMCwgMSwgMTA3LCAyMzEsIDIsIDIwLCAxLCAxMDcsIDIzMSwgMTgsIDIwLCAxLCAxMDcsIDIzMiwgCi0gICAgODQsIDIwLCAxLCAxMDcsIDIyNywgMjU1LCAyMCwgMSwgMTA3LCAyMzEsIDEyMiwgMjAsIDEsIDEwNywgMjMzLCAxODAsIDIwLCAKLSAgICAxLCAxMDcsIDIyNywgMTUxLCAyMCwgMSwgMTA3LCAyMTYsIDIyMCwgMjAsIDEsIDEwNywgMjE5LCAzNCwgMjAsIDEsIDEwNywgCi0gICAgMjEwLCAxNzksIDIwLCAxLCAxMDcsIDIzNCwgMTQ4LCAyMCwgMSwgMTA3LCAyMjMsIDE3MCwgMjAsIDEsIDEwNywgMjE3LCAKLSAgICAxMCwgMjAsIDEsIDEwNywgMjI5LCAxNywgMjAsIDEsIDEwNywgMjMxLCAyMywgMjAsIDEsIDEwNywgMjI3LCAyNTQsIDIwLCAKLSAgICAxLCAxMDcsIDIzNCwgMTQ2LCAyMCwgMSwgMTA3LCAyMjUsIDU5LCAyMCwgMSwgMTA3LCAyMjUsIDE1MiwgMjAsIDEsIDEwNywgCi0gICAgMjI3LCAxMjcsIDIwLCAxLCAxMDcsIDIzMywgMTEsIDIwLCAxLCAxMDcsIDIyOSwgNTUsIDIwLCAxLCAxMDcsIDIzMSwgMjAsIAotICAgIDIwLCAxLCAxMDcsIDIyOSwgMjksIDIwLCAxLCAxMDcsIDIxMCwgMTkzLCAyMCwgMSwgMTA3LCAyMjYsIDIxLCAyMCwgMSwgCi0gICAgMTA3LCAyMTAsIDE5MiwgMjAsIDEsIDEwNywgMjI5LCAxNDQsIDIwLCAxLCAxMDcsIDIyNywgMjQ0LCAyMCwgMSwgMTA3LCAKLSAgICAyMTgsIDgxLCAyMCwgMSwgMTA3LCAyMzMsIDIwOCwgMjAsIDEsIDEwNywgMjI5LCA0NCwgMjAsIDEsIDEwNywgMjI5LCAxNCwgCi0gICAgMjAsIDEsIDEwNywgMjE1LCAxMDIsIDIwLCAxLCAxMDcsIDIzMSwgMzEsIDIwLCAxLCAxMDcsIDIzMywgMTk4LCAyMCwgMSwgCi0gICAgMTA3LCAyMjcsIDI1MiwgMjAsIDEsIDEwNywgMjE2LCAyMTgsIDIwLCAxLCAxMDcsIDIzMSwgMjE0LCAyMCwgMSwgMTA3LCAKLSAgICAyMjksIDUzLCAyMCwgMSwgMTA3LCAyMzMsIDQsIDIwLCAxLCAxMDcsIDIyOSwgMzUsIDIwLCAxLCAxMDcsIDIyOCwgMSwgMjAsIAotICAgIDEsIDEwNywgMjI4LCAxNTMsIDIwLCAxLCAxMDcsIDI0MiwgMjMzLCAyMCwgMSwgMTA3LCAyMzMsIDIxNywgMjAsIDEsIDEwNywgCi0gICAgMjIzLCA4NCwgMjI2LCAyMDksIDIwLCAxLCAxMDcsIDIxNywgODYsIDIwLCAxLCAxMDcsIDIxNiwgMTAsIDIwLCAxLCAxMDcsIAotICAgIDIyNywgMTQ4LCAyMCwgMSwgMTA3LCAyMjIsIDIzOSwgMjAsIDEsIDEwNywgMjMzLCA0OSwgMjAsIDEsIDEwNywgMjMxLCA3OSwgCi0gICAgMjAsIDEsIDEwNywgMTkzLCAyMCwgMSwgMTA3LCAyMTgsIDQsIDIwLCAxLCAxMDcsIDIzMCwgMTAyLCAyMCwgMSwgMTA3LCAKLSAgICAyMjAsIDI3LCAyMCwgMSwgMTA3LCAyMjAsIDM3LCAyMCwgMSwgMTA3LCAyMzMsIDE1NSwgMjAsIDEsIDEwNywgMjI3LCAyMzcsIAotICAgIDIwLCAxLCAxMDcsIDIxOSwgMjI1LCAyMCwgMSwgMTA3LCAyMjcsIDI0NiwgMjAsIDEsIDEwNywgMjI1LCAyMTEsIDIwLCAxLCAKLSAgICAxMDcsIDIyOCwgMjMzLCAyMCwgMSwgMTA3LCAyMTksIDI1MiwgMjAsIDEsIDEwNywgMjI0LCAxMzMsIDIwLCAxLCAxMDcsIAotICAgIDIzMCwgNDYsIDIwLCAxLCAxMDcsIDIzMiwgMTE5LCAyMCwgMSwgMTA3LCAyMjMsIDg0LCAyMzAsIDk2LCAyMCwgMSwgMTA3LCAKLSAgICAyMTYsIDExNywgMjAsIDEsIDEwNywgMjI3LCAyMzgsIDIwLCAxLCAxMDcsIDIzMSwgMTIzLCAxOTgsIDIwLCAxLCAxMDcsIAotICAgIDIyMSwgMjMyLCAyMCwgMSwgMTA3LCAyNDQsIDE5NSwgMjAsIDEsIDgyLCAyMjksIDE0MywgMjAsIDEsIDgyLCAyMTYsIDE2LCAKLSAgICAyMCwgMSwgODIsIDIzMSwgMTEyLCAyMCwgMSwgODIsIDIzMywgODgsIDIwLCAxLCA4MiwgMjEzLCAxMjgsIDIwLCAxLCA4MiwgCi0gICAgMjMyLCAxMjUsIDIwLCAxLCA4MiwgMjI2LCA4OSwgMjAsIDEsIDgyLCAyMTksIDQ1LCAyMCwgMSwgODIsIDIyMywgMTQ1LCAKLSAgICAyMCwgMSwgODIsIDIyOCwgMywgMjAsIDEsIDgyLCAyMjksIDExNCwgMjAsIDEsIDgyLCAyMjQsIDE0NywgMjAsIDEsIDgyLCAKLSAgICAyMTcsIDYyLCAyMCwgMSwgODIsIDIyOSwgMjIsIDIwLCAxLCA4MiwgMjMzLCAyNDUsIDIwLCAxLCA4MiwgMjExLCAxODcsIAotICAgIDIwLCAxLCA4MiwgMjIxLCAxNzAsIDIwLCAxLCA4MiwgMjI5LCA0NSwgMjAsIDEsIDgyLCAyMjYsIDg2LCAyMCwgMSwgODIsIAotICAgIDIxNiwgMTcsIDIwLCAxLCA4MiwgMjMzLCAyMDIsIDIwLCAxLCA4MiwgMjMyLCAxMzksIDIwLCAxLCA4MiwgMjI4LCA2LCAyMCwgCi0gICAgMSwgODIsIDIyOCwgMjU0LCAyMCwgMSwgODIsIDIzMSwgMjIwLCAyMCwgMSwgODIsIDIyOSwgMTUsIDIwLCAxLCA4MiwgMjI4LCAKLSAgICAyNTMsIDIwLCAxLCA4MiwgMjI4LCA1LCAyMCwgMSwgODIsIDIyMiwgMjM3LCAyMCwgMSwgODIsIDIyOCwgMTcxLCAyMCwgMSwgCi0gICAgODIsIDIyNSwgMjEwLCAyMCwgMSwgODIsIDIyMiwgMzEsIDIwLCAxLCA4MiwgMjI5LCAzMCwgMjAsIDEsIDgyLCAyMzEsIDEwLCAKLSAgICAyMCwgMSwgODIsIDI0MiwgMjI3LCAyMCwgMSwgODIsIDIyOSwgMTgsIDIwLCAxLCA4MiwgMjI4LCAxODIsIDIwLCAxLCA4MiwgCi0gICAgMjMxLCAxNzIsIDIwLCAxLCA4MiwgMjMyLCAxMjEsIDIwLCAxLCA4MiwgMjI5LCA1MCwgMjAsIDEsIDgyLCAyMjksIDEyNywgCi0gICAgMjAsIDEsIDgyLCAyMTcsIDg1LCAyMjcsIDI0NCwgMjAsIDEsIDgyLCAyMjAsIDEyNywgMjAsIDEsIDgyLCAyMjQsIDE0MywgCi0gICAgMjAsIDEsIDgyLCAyMjksIDE0NywgMjE5LCA1MSwgMjAsIDEsIDgyLCAyMjksIDM4LCAyMjcsIDE2MCwgMjAsIDEsIDgyLCAKLSAgICAyMTEsIDQsIDIwLCAxLCA4MiwgMjQyLCAyMjgsIDIwLCAxLCA4MiwgMjE1LCAxMTcsIDIwLCAxLCA4MiwgMjExLCAxOSwgMjAsIAotICAgIDEsIDgyLCAyMjUsIDE2LCAyMCwgMSwgODIsIDIxNSwgMTA3LCAyMCwgMSwgODIsIDIzNCwgMTU0LCAyMCwgMSwgODIsIDIxOCwgCi0gICAgODAsIDIwLCAxLCA4MiwgMjE2LCAyMTksIDIwLCAxLCA4MiwgMjEzLCAxODQsIDIwLCAxLCA4MiwgMjEyLCA2LCAyMCwgMSwgCi0gICAgODIsIDIzMywgMTMyLCAyMCwgMSwgODIsIDIyNCwgMTUwLCAyMCwgMSwgODIsIDIxNywgOTYsIDIwLCAxLCA4MiwgMjQyLCAKLSAgICAyNDcsIDIwLCAxLCA4MiwgMjI5LCA1OSwgMjAsIDEsIDgyLCAyMjAsIDQwLCAyMCwgMSwgODIsIDIzMSwgNSwgMjAsIDEsIAotICAgIDgyLCAyMzEsIDExNiwgMjAsIDEsIDgyLCAyMjcsIDExNSwgMjAsIDEsIDgyLCAyMjgsIDEzNiwgMjAsIDEsIDgyLCAyNDMsIAotICAgIDczLCAyMCwgMSwgODIsIDIxNSwgMTA4LCAyMCwgMSwgODIsIDIzMywgMjExLCAyMCwgMSwgODIsIDIxMSwgNjcsIDIwLCAxLCAKLSAgICA4MiwgMjI3LCAxNDksIDI1MCwgMTYsIDIwLCAxLCA4MiwgMjEwLCAyNTAsIDIwLCAxLCA4MiwgMjMxLCAyMiwgMjAsIDEsIAotICAgIDgyLCAyMjksIDEzMiwgMjAsIDEsIDgyLCAyMjUsIDEwMCwgMjAsIDEsIDgyLCAyMTAsIDE5NywgMjAsIDEsIDgyLCAyMzMsIAotICAgIDYsIDIwLCAxLCA4MiwgMjQzLCAyMzMsIDIwLCAxLCA4MiwgMjQzLCA3MiwgMjAsIDEsIDgyLCAyMjksIDgsIDIwLCAxLCA4MiwgCi0gICAgMjM0LCAxNTYsIDIwLCAxLCA4MiwgMjMxLCAyMjMsIDIwLCAxLCA4MiwgMjI5LCAyMSwgMjAsIDEsIDgyLCAyNDIsIDIzNCwgCi0gICAgMjAsIDEsIDgyLCAyNDQsIDE5NiwgMjAsIDEsIDgyLCAyMjcsIDIzOSwgMjAsIDEsIDgyLCAyMjUsIDE1MywgMjAsIDEsIDgyLCAKLSAgICAyMTEsIDE3LCAyMCwgMSwgODIsIDIyOSwgNDYsIDIwLCAxLCA4MiwgMjI3LCAxNDksIDI1MiwgMjMsIDIwLCAxLCA4MiwgCi0gICAgMjI3LCA5NSwgMjAsIDEsIDgyLCAyMjQsIDI0NywgMjAsIDEsIDgyLCAyMzAsIDIyMCwgMjAsIDEsIDgyLCAyNDMsIDIzMSwgCi0gICAgMjAsIDEsIDgyLCAyMjksIDIyMCwgMjAsIDEsIDgyLCAyMzAsIDEwMCwgMjAsIDEsIDgyLCAyNDIsIDIzMywgMjAsIDEsIDgyLCAKLSAgICAyNDMsIDIzNSwgNzMsIDIwLCAxLCA4MiwgMjMwLCA0NywgMjAsIDEsIDgyLCAyMjQsIDE0NiwgMjAsIDEsIDgyLCAyMjksIAotICAgIDEwLCAyMCwgMSwgODIsIDIzMywgMTg5LCAyMCwgMSwgODIsIDIyNSwgOTcsIDIwLCAxLCA4MiwgMjI3LCAyNDcsIDIwLCAxLCAKLSAgICA4MiwgMjExLCAxOCwgMjAsIDEsIDgyLCAyMjksIDMxLCAyMCwgMSwgODIsIDIyNiwgOTAsIDIyNSwgMTg3LCAyMCwgMSwgODIsIAotICAgIDI0MywgMjM1LCAyNTEsIDE1LCAyMCwgMSwgODIsIDI0NCwgMzcsIDIwLCAxLCA4MiwgMjI4LCAxNzYsIDIwLCAxLCA4MiwgCi0gICAgNjEsIDIwLCAxLCA4MiwgMjE2LCAxMCwgMjAsIDEsIDgyLCA3NiwgMjAsIDEsIDgyLCA3MywgMjAsIDEsIDgyLCAyMzMsIDg2LCAKLSAgICAyMCwgMSwgODIsIDIyNiwgOTAsIDIyNSwgMjMsIDIwLCAxLCA4MiwgMjE3LCAxMDEsIDIwLCAxLCA4MiwgMjE3LCA1MSwgMjAsIAotICAgIDEsIDgyLCAyMjksIDE0NywgMjMwLCAzNCwgMjQwLCAyMzQsIDIwLCAxLCA4MiwgMjIwLCAxNSwgMjAsIDEsIDgyLCAyMTEsIAotICAgIDE0LCAyMCwgMSwgODIsIDIyOCwgMjQ3LCAyMCwgMSwgODIsIDIxMCwgMjAyLCAyMCwgMSwgODIsIDIxMCwgMjI3LCAyMTcsIAotICAgIDI0MCwgMjAsIDEsIDgyLCAyMTAsIDIyNywgMjQ5LCAxNDcsIDIwLCAxLCA4MiwgMjEwLCAxODcsIDIwLCAxLCA4MiwgMjEwLCAKLSAgICAxOTUsIDIwLCAxLCA4MiwgMjM0LCAxNDIsIDIwLCAxLCA4MiwgMjI1LCAxNTEsIDIwLCAxLCA4MiwgMjI4LCAxNzcsIDI0NSwgCi0gICAgMTAyLCAyMCwgMSwgODIsIDIyNCwgMTQ0LCAyMCwgMSwgODIsIDIxMSwgMTkyLCAyMCwgMSwgODIsIDI0NCwgMTQ3LCAyMCwgCi0gICAgMSwgODIsIDIxMywgMjUwLCAyMCwgMSwgODIsIDIzMiwgOTgsIDIwLCAxLCA4MiwgMjMwLCAyMzAsIDIwLCAxLCA4MiwgMjIzLCAKLSAgICA1MSwgMjAsIDEsIDgyLCAyMjMsIDE3MSwgMjAsIDEsIDgyLCAyMjgsIDI0NiwgMjAsIDEsIDgyLCAyMjksIDc3LCAyMCwgMSwgCi0gICAgODIsIDIyMCwgNywgMjAsIDEsIDgyLCAyMTksIDI1MiwgMjAsIDEsIDgyLCAyNDMsIDIzNSwgMjIzLCA4NiwgMjAsIDEsIDgyLCAKLSAgICAxOTcsIDIwLCAxLCA4MiwgMjI1LCAxMDgsIDIwLCAxLCA4MiwgMjMyLCAxMTksIDIwLCAxLCA4MiwgMjM0LCAyOCwgMjAsIDEsIAotICAgIDgyLCAyMzEsIDU4LCAyMCwgMSwgODIsIDE4NCwgMjAsIDEsIDgyLCAyMzEsIDE2OSwgMjAsIDEsIDgyLCAyMTYsIDIyMSwgCi0gICAgMjAsIDEsIDgyLCAyMzQsIDkyLCAyMCwgMSwgODIsIDIzMCwgMTUwLCAyMCwgMSwgODIsIDIxNiwgMjQ3LCAyMCwgMSwgODIsIAotICAgIDI0NCwgMTY5LCAyMCwgMSwgODIsIDI0MiwgMjIzLCAyMCwgMSwgMjI1LCAxMzcsIDE3NiwgMjAsIDEsIDIyNSwgMTM3LCA3MCwgCi0gICAgMjAsIDEsIDIyNSwgMTM3LCAyMzMsIDIxNywgMjAsIDEsIDIyNSwgMTM3LCAyNDUsIDIwOSwgMjAsIDEsIDIyNSwgMTM3LCAKLSAgICAyMjMsIDEwOCwgMjAsIDEsIDIyNSwgMTM3LCAyMTcsIDg2LCAyMCwgMSwgMjI1LCAxMzcsIDIyNywgMTQ4LCAyMCwgMSwgCi0gICAgMjI1LCAxMzcsIDIzMywgMTM1LCAyMCwgMSwgMjI1LCAxMzcsIDIyMiwgMjM5LCAyMCwgMSwgMjI1LCAxMzcsIDIyMywgMjksIAotICAgIDIwLCAxLCAyMjUsIDEzNywgMjMxLCA3OSwgMjAsIDEsIDIyNSwgMTM3LCAyMTcsIDEwMSwgMjAsIDEsIDIyNSwgMTM3LCAKLSAgICAyMjksIDE0NiwgMjAsIDEsIDIyNSwgMTM3LCAyMjgsIDE4MywgMjAsIDEsIDIyNSwgMTM3LCAxOTMsIDIwLCAxLCAyMjUsIAotICAgIDEzNywgMjE4LCA0LCAyMCwgMSwgMjI1LCAxMzcsIDIyMCwgMjcsIDIwLCAxLCAyMjUsIDEzNywgMjE5LCAxOTEsIDIwLCAxLCAKLSAgICAyMjUsIDEzNywgMjIwLCAxMjMsIDIwLCAxLCAyMjUsIDEzNywgMjMzLCAxNTUsIDIwLCAxLCAyMjUsIDEzNywgMjM0LCAxNTYsIAotICAgIDIwLCAxLCAyMjUsIDEzNywgMjI3LCAyMDksIDIwLCAxLCAyMjUsIDEzNywgMjI3LCAyMzcsIDIwLCAxLCAyMjUsIDEzNywgCi0gICAgMjI4LCAxNTQsIDIwLCAxLCAyMjUsIDEzNywgMjEwLCAyMjYsIDIwLCAxLCAyMjUsIDEzNywgMjE5LCAyMjUsIDIwLCAxLCAKLSAgICAyMjUsIDEzNywgMTkxLCAyMCwgMSwgMjI1LCAxMzcsIDIyOCwgOSwgMjAsIDEsIDIyNSwgMTM3LCAyMjUsIDE1MSwgMjAsIDEsIAotICAgIDIyNSwgMTM3LCAyMjcsIDI0NiwgMjAsIDEsIDIyNSwgMTM3LCAyMTEsIDE5MiwgMjAsIDEsIDIyNSwgMTM3LCAyMjUsIDIxMSwgCi0gICAgMjAsIDEsIDIyNSwgMTM3LCAyMjIsIDE0MCwgMjAsIDEsIDIyNSwgMTM3LCAyMjgsIDIzMywgMjAsIDEsIDIyNSwgMTM3LCAKLSAgICAyMjMsIDUxLCAyMCwgMSwgMjI1LCAxMzcsIDIzNCwgMTY1LCAyMCwgMSwgMjI1LCAxMzcsIDIyOSwgNywgMjAsIDEsIDIyNSwgCi0gICAgMTM3LCAyMjksIDU2LCAyMCwgMSwgMjI1LCAxMzcsIDIyMCwgNywgMjAsIDEsIDIyNSwgMTM3LCAyMjQsIDE0NywgMjAsIDEsIAotICAgIDIyNSwgMTM3LCAyNDQsIDM3LCAyMCwgMSwgMjI1LCAxMzcsIDIxMiwgNjUsIDIwLCAxLCAyMjUsIDEzNywgMjMyLCAyNDEsIAotICAgIDIwLCAxLCAyMjUsIDEzNywgMjMyLCAxMTksIDIwLCAxLCAyMjUsIDEzNywgMjM0LCAyOCwgMjAsIDEsIDIyNSwgMTM3LCAKLSAgICAyMzEsIDExNCwgMjAsIDEsIDIyNSwgMTM3LCAyMjMsIDgzLCAyMCwgMSwgMjI1LCAxMzcsIDE4NCwgMjAsIDEsIDIyNSwgCi0gICAgMTM3LCAyMzAsIDE2MSwgMjAsIDEsIDIyNSwgMTM3LCAyMzEsIDEyMiwgMjAsIDEsIDIyNSwgMTM3LCAyMTYsIDIzMCwgMjAsIAotICAgIDEsIDIyNSwgMTM3LCAyMzMsIDI1MSwgMjAsIDEsIDIyNSwgMTM3LCAyMjEsIDI1MSwgMjAsIDEsIDIyNSwgMTM3LCAyMTIsIAotICAgIDExNSwgOTUsIDEsIDE5MCwgOTUsIDEsIDI1MiwgMTkxLCA5NSwgMSwgOCwgMTkwLCA5NSwgMSwgMjI1LCA0MiwgOTUsIDEsIAotICAgIDE4NCwgOTUsIDEsIDIzMCwgMjMzLCA5NSwgMSwgMjU0LCAyMywgMTg0LCA5NSwgMSwgMjQ0LCAxOTYsIDk1LCAxLCAyMTQsIAotICAgIDI3LCA5NSwgMSwgMjEzLCAxNzcsIDk1LCAxLCAyMTcsIDEwNSwgOTUsIDEsIDI0OCwgMjIxLCA5NSwgMSwgOCwgMjE1LCAKLSAgICAxNTYsIDk1LCAxLCA4LCAyMTcsIDEwNSwgOTUsIDEsIDIxNSwgMTU2LCA5NSwgMSwgMjQ4LCAxMzUsIDk1LCAxLCAxOTcsIAotICAgIDk1LCAxLCAyMjgsIDIzNywgOTUsIDEsIDgsIDIyOCwgMTEwLCA5NSwgMSwgMjU0LCAyMywgMTk3LCA5NSwgMSwgMjI4LCAKLSAgICAxMTAsIDk1LCAxLCAyMjgsIDk2LCA5NSwgMSwgMjMzLCAxMzUsIDk1LCAxLCAyMzIsIDYxLCA5NSwgMSwgMjMyLCAyNTQsIAotICAgIDk1LCAxLCAyMzIsIDI0MywgOTUsIDEsIDIxNiwgNTYsIDk1LCAxLCAyNDcsIDE1MywgOTUsIDEsIDIxNiwgNDgsIDk1LCAxLCAKLSAgICAyNDcsIDE1MiwgOTUsIDEsIDE3NiwgOTUsIDEsIDI0MywgMTM1LCA5NSwgMSwgOCwgMTc2LCA5NSwgMSwgMjI0LCA4OCwgOTUsIAotICAgIDEsIDIyNCwgNjYsIDk1LCAxLCAyMjksIDc3LCA5NSwgMSwgMjI5LCAyOCwgOTUsIDEsIDI1NCwgMjMsIDIyOSwgNzcsIDk1LCAKLSAgICAxLCAxNjIsIDk1LCAxLCAyMTEsIDE2NSwgOTUsIDEsIDI0MiwgMjQ5LCA5NSwgMSwgMjQyLCAyMjYsIDk1LCAxLCAyMTUsIAotICAgIDE2NSwgOTUsIDEsIDI0NiwgMjYsIDk1LCAxLCAyMjcsIDE2NSwgOTUsIDEsIDIyNywgMTUwLCA5NSwgMSwgMjE1LCAxNzUsIAotICAgIDk1LCAxLCAyNDYsIDMzLCA5NSwgMSwgOCwgMjE1LCAxNzUsIDk1LCAxLCA4LCAyNDYsIDMzLCA5NSwgMSwgMjIzLCAxMDYsIAotICAgIDIxNSwgMTc1LCA5NSwgMSwgMjIwLCAxMDIsIDk1LCAxLCAyMTgsIDIyMywgOTUsIDEsIDIxMCwgODIsIDk1LCAxLCAyMTAsIAotICAgIDE0LCA5NSwgMSwgMjE1LCAxODMsIDk1LCAxLCAyNDYsIDM4LCA5NSwgMSwgOCwgMjE1LCAxODMsIDk1LCAxLCAyMDYsIDk1LCAKLSAgICAxLCAyMTAsIDExNiwgOTUsIDEsIDIxMCwgMTUsIDk1LCAxLCAyMDksIDI0MywgOTUsIDEsIDIwOSwgMjIzLCA5NSwgMSwgCi0gICAgMjU0LCAyMywgMjA5LCAyNDMsIDk1LCAxLCAyMDksIDIxNSwgOTUsIDEsIDIwOSwgMjIyLCA5NSwgMSwgMjEyLCA2NSwgOTUsIAotICAgIDEsIDI1NCwgMjA5LCA5NSwgMSwgMjQxLCAxODksIDk1LCAxLCAyMjksIDE5MiwgOTUsIDUsIDI1MywgMjIyLCA5NSwgNSwgCi0gICAgMjIzLCAxMDYsIDIxMywgMTMzLCA5NSwgNSwgMjIzLCAxMDYsIDI1MywgMjIyLCA5NSwgMjUsIDUsIDYxLCA5NSwgMjUsIDUsIAotICAgIDI1NSwgNzMsIDk1LCAyNSwgNSwgMjU0LCAyMDUsIDk1LCAyNSwgNSwgMjU0LCAxMjMsIDk1LCAyNSwgNSwgMjU0LCAxMTUsIAotICAgIDk1LCAyNSwgNSwgNzYsIDk1LCAyNSwgNSwgMjI2LCAxODMsIDk1LCAyNSwgNSwgMjExLCAyMjcsIDk1LCAyNSwgNSwgMjEyLCAKLSAgICA5OCwgOTUsIDI1LCA1LCA3NSwgOTUsIDI1LCA1LCAyNDUsIDE1MCwgOTUsIDI1LCA1LCAyNDUsIDEzOCwgOTUsIDI1LCA1LCAKLSAgICAyMjYsIDIzMiwgOTUsIDI1LCA1LCA3MywgOTUsIDI1LCA1LCAyNDAsIDExOSwgOTUsIDI1LCA1LCAyNDAsIDExOCwgOTUsIAotICAgIDI1LCA1LCAyNDAsIDExNywgOTUsIDI1LCA1LCAyMzUsIDE4OSwgOTUsIDI1LCA1LCAyMzYsIDYwLCA5NSwgMjUsIDUsIDIzNiwgCi0gICAgMzMsIDk1LCAyNSwgNSwgMjM1LCAxNTYsIDk1LCAyNSwgNSwgMjM1LCAyMzEsIDk1LCAyNSwgNSwgNzAsIDk1LCAyNSwgNSwgCisgICAgMjEwLCAxMTksIDEyLCAxMywgMjEwLCAxMTgsIDEyLCAxMywgMjU1LCA3MywgMTIsIDEzLCAyNTUsIDcyLCAxMiwgMTMsIAorICAgIDI1NSwgNzEsIDEyLCAxMywgMjU1LCA3MCwgMTIsIDEzLCAyNTUsIDY5LCAxMiwgMTMsIDI1NSwgNjgsIDEyLCAxMywgMjU1LCAKKyAgICA2NywgMTIsIDEzLCAyNTUsIDY2LCAxMiwgMTMsIDI1NSwgNjUsIDEyLCAxMywgMjU1LCA2NCwgMTIsIDEzLCAyNTUsIDYzLCAKKyAgICAxMiwgMTMsIDI1NSwgNjIsIDEyLCAxMywgMjU1LCA2MSwgMTIsIDEzLCAyNTUsIDYwLCAxMiwgMTMsIDI1NSwgNTksIDEyLCAKKyAgICAxMywgMjU1LCA1OCwgMTIsIDEzLCAyNTUsIDU3LCAxMiwgMTMsIDI1NSwgNTYsIDEyLCAxMywgMjU1LCA1NSwgMTIsIDEzLCAKKyAgICAyNTUsIDU0LCAxMiwgMTMsIDI1NSwgNTMsIDEyLCAxMywgMjU1LCA1MiwgMTIsIDEzLCAyNTUsIDUxLCAxMiwgMTMsIDI1NSwgCisgICAgNTAsIDEyLCAxMywgMjU1LCA0OSwgMTIsIDEzLCAyNTUsIDQ4LCAxMiwgMTMsIDI1NSwgNDcsIDEyLCAxMywgMjU1LCA0NiwgCisgICAgMTIsIDEzLCAyNTUsIDQ1LCAxMiwgMTMsIDI1NSwgNDQsIDEyLCAxMywgMjU1LCA0MywgMTIsIDEzLCAyNTUsIDQyLCAxMiwgCisgICAgMTMsIDI1NSwgNDEsIDEyLCAxMywgMjU1LCA0MCwgMjAsIDEsIDE2NywgMjI5LCAxMywgMjMxLCAxNywgMjAsIDEsIDE2NywgCisgICAgMjQzLCA3MSwgMjQ0LCAzNywgMjAsIDEsIDE2NywgMjI0LCAyNTIsIDIzMSwgMTgsIDIyNSwgNTgsIDIwLCAxLCAxNjcsIAorICAgIDIyNCwgMjUyLCAyMzEsIDE4LCAyMjUsIDU5LCAyMCwgMSwgMTY3LCAyMjksIDIyNywgMjMxLCAxNywgMjAsIDEsIDE2NywgCisgICAgMjE5LCAyMjIsIDIwLCAxLCAxNjcsIDIxNiwgNjcsIDIzMSwgMTcsIDIwLCAxLCAxNjcsIDIyNywgMTE5LCAyMzEsIDE3LCAKKyAgICAyMCwgMSwgMTY3LCAyMjAsIDIwLCAyMjYsIDkxLCAyMjgsIDE3MCwgMjAsIDEsIDE2NywgMjI0LCAyNTIsIDIyNiwgOTEsIAorICAgIDIyOCwgMTcxLCAyMjUsIDU4LCAyMCwgMSwgMTY3LCAyMjQsIDI1MiwgMjI2LCA5MSwgMjI4LCAxNzEsIDIyNSwgNTksIDIwLCAKKyAgICAxLCAxNjcsIDIzMSwgMjE5LCAyMCwgMSwgMTY3LCAyMTUsIDEyMCwgMjMxLCAyMjAsIDIwLCAxLCAxNjcsIDIyOSwgNzIsIAorICAgIDIwLCAxLCAxNjcsIDIzMSwgMjE2LCAyMCwgMSwgMTY3LCAyMzEsIDE3NywgMjAsIDEsIDE2NywgMjMwLCA0OSwgMjAsIDEsIAorICAgIDE2NywgMjIwLCAxMjUsIDIwLCAxLCAxNjcsIDIyNywgMjQyLCAyMCwgMSwgMTY3LCAyMzQsIDE1MCwgMjAsIDEsIDE2NywgCisgICAgMjI4LCAxMzksIDIwLCAxLCAxNjcsIDIxOCwgNSwgMjAsIDEsIDE2NywgMjI5LCAxMiwgMjAsIDEsIDE2NywgMjMzLCA4OCwgCisgICAgMjAsIDEsIDE2NywgMjMzLCAxMywgMjMzLCAxOTAsIDIwLCAxLCAxNjcsIDIyNywgMjQ5LCAyMzEsIDI1LCAyMCwgMSwgMTY3LCAKKyAgICAyMzEsIDIyMywgMjAsIDEsIDE2NywgMjI1LCAyNDcsIDIwLCAxLCAxNjcsIDI0MiwgMjMyLCAyMCwgMSwgMTY3LCAyMjYsIAorICAgIDUxLCAyMCwgMSwgMTY3LCAyMzAsIDE1MiwgMjI5LCA0NiwgMjAsIDEsIDE2NywgMjI3LCAxMDAsIDIzMSwgMjgsIDIwLCAxLCAKKyAgICAxNjcsIDEwNCwgMjEwLCAxODgsIDIyOSwgMjIxLCAyMCwgMSwgMTY3LCAyNDIsIDIzMywgMjAsIDEsIDE2NywgMjI3LCAyNDksIAorICAgIDIyNywgMjUwLCAyMCwgMSwgMTY3LCAyMTksIDEyOSwgMjAsIDEsIDE2NywgMjMxLCAxMCwgMjAsIDEsIDE2NywgMjMxLCAzMSwgCisgICAgMjAsIDEsIDE2NywgMjMwLCAxMzEsIDIwLCAxLCAxNjcsIDIzNCwgMjUwLCAyMCwgMSwgMTY3LCAyMjYsIDkxLCAyMzMsIDQ4LCAKKyAgICAyMCwgMSwgMTY3LCAyMjksIDE1MCwgMjMzLCA0OCwgMjAsIDEsIDE2NywgMjI1LCAxNTksIDIwLCAxLCAxNjcsIDIzMSwgCisgICAgMjE3LCAyMCwgMSwgMTY3LCAyMjgsIDIwOCwgMjAsIDEsIDE2NywgMjI0LCAxMzUsIDIwLCAxLCAxNjcsIDIxNSwgMTE3LCAKKyAgICAyMCwgMSwgMTY3LCAyMzIsIDk1LCAyMCwgMSwgMTY3LCAyMTksIDQyLCAyMCwgMSwgMTY3LCAyMTYsIDIxNywgMjAsIDEsIAorICAgIDE2NywgMjMxLCAyMTQsIDIwLCAxLCAxNjcsIDIzNCwgMTU3LCAyMCwgMSwgMTY3LCAyMjksIDE0NiwgMjAsIDEsIDE2NywgCisgICAgMjMzLCAyMDIsIDIwLCAxLCAxNjcsIDIzMCwgMTMyLCAyMCwgMSwgMTY3LCAyMTksIDIxOSwgMjAsIDEsIDE2NywgMjMyLCAKKyAgICAxMzksIDIwLCAxLCAxNjcsIDI0NCwgOTQsIDIwLCAxLCAxNjcsIDIyMiwgMjAwLCAyMCwgMSwgMTY3LCAyMzMsIDI0MiwgMjAsIAorICAgIDEsIDE2NywgMjE5LCAzOCwgMjAsIDEsIDE2NywgMjMxLCAxNzQsIDIyNSwgMTAwLCAyMCwgMSwgMTY3LCAyMjAsIDEzLCAyMCwgCisgICAgMSwgMTY3LCAyMjcsIDI0OCwgMjAsIDEsIDE2NywgMjE5LCAyNTQsIDIyOCwgMywgMjEwLCAxOTYsIDIwLCAxLCAxNjcsIAorICAgIDIyNywgMTM5LCAyMzAsIDE0OSwgMjAsIDEsIDE2NywgMjI2LCA4NiwgMjAsIDEsIDE2NywgMjI4LCAxNDAsIDIwLCAxLCAKKyAgICAxNjcsIDIxNCwgMTcwLCAyMCwgMSwgMTY3LCAyMjksIDQ5LCAyMCwgMSwgMTY3LCAyMzEsIDIxMywgMjAsIDEsIDE2NywgCisgICAgMjI4LCAxODIsIDIwLCAxLCAxNjcsIDIzMSwgMTIwLCAyMCwgMSwgMTY3LCAyMjcsIDE1MiwgMjAsIDEsIDE2NywgMjE2LCAKKyAgICAyMjEsIDIwLCAxLCAxNjcsIDIxOSwgMzUsIDIwLCAxLCAxNjcsIDIyNiwgODcsIDIwLCAxLCAxNjcsIDIyOCwgNywgMjAsIDEsIAorICAgIDE2NywgMjMxLCAyMjEsIDIwLCAxLCAxNjcsIDIyNywgMTQ5LCAyMCwgMSwgMTY3LCAyMzQsIDIxNywgMjAsIDEsIDE2NywgCisgICAgMjI4LCAxMCwgMjAsIDEsIDE2NywgMjEzLCAyNTAsIDIwLCAxLCAxNjcsIDIzMiwgOTksIDIwLCAxLCAxNjcsIDIyOSwgOTksIAorICAgIDIwLCAxLCAxNjcsIDIyOSwgMTk3LCAyMCwgMSwgMTY3LCAyMzEsIDExOSwgMjAsIDEsIDIyNSwgMTM5LCAyMjgsIDUsIDIwLCAKKyAgICAxLCAyMjUsIDEzOSwgMjE1LCAxMjAsIDIzMSwgMjE4LCAyMCwgMSwgMjI1LCAxMzksIDIxOSwgMTg2LCAyMCwgMSwgMjI1LCAKKyAgICAxMzksIDIyMCwgMTI5LCAyMTUsIDExOSwgMjAsIDEsIDIyNSwgMTM5LCAyMzIsIDE0MSwgMjI3LCAyNDUsIDIwLCAxLCAyMjUsIAorICAgIDEzOSwgMjMxLCAxMjYsIDIzMSwgMjIyLCAyMCwgMSwgMjI1LCAxMzksIDIzNCwgODgsIDIwLCAxLCAyMjUsIDEzOSwgMjExLCAKKyAgICAxNSwgMjAsIDEsIDIyNSwgMTM5LCAyMzEsIDEyMSwgMjAsIDEsIDIyNSwgMTM5LCAyMzQsIDIzOCwgMjAsIDEsIDIyNSwgCisgICAgMTM5LCAyMjUsIDIwOSwgMjAsIDEsIDIyNSwgMTM5LCAyMTEsIDg5LCAyMzMsIDQ4LCAyMCwgMSwgMjI1LCAxMzksIDIzMywgCisgICAgMTA0LCAyMjgsIDMsIDIyNywgMTYxLCAyMCwgMSwgMjI1LCAxMzksIDIyNywgMjQzLCAyMjAsIDM5LCAyMCwgMSwgMjI1LCAKKyAgICAxMzksIDIyOSwgMTE3LCAyMjgsIDE4NSwgMjAsIDEsIDIyNSwgMTM5LCAyNDIsIDIzMCwgMjAsIDEsIDIyNSwgMTM5LCAyMjUsIAorICAgIDUwLCAyMCwgMSwgMjI1LCAxMzksIDIxNSwgMTIwLCAyMjgsIDEsIDIwLCAxLCAyMjUsIDEzOSwgMjIwLCA0NCwgMjI4LCAKKyAgICAxODAsIDIwLCAxLCAyMjUsIDEzOSwgMjIwLCA0MCwgMjAsIDEsIDIyNSwgMTM5LCAyMzEsIDE4LCAyMTYsIDIyMCwgMjAsIDEsIAorICAgIDIyNSwgMTM5LCAyMzEsIDEwOCwgMjMxLCAxMjIsIDIwLCAxLCAyMjUsIDEzOSwgMjI3LCAxNTAsIDIyNywgMjQ1LCAyMCwgMSwgCisgICAgMjI1LCAxMzksIDIzNCwgMTQ2LCAyMCwgMSwgMjI1LCAxMzksIDI0MiwgMjMxLCAyMCwgMSwgMjI1LCAxMzksIDIzNCwgMTQyLCAKKyAgICAyMCwgMSwgMjI1LCAxMzksIDIzMywgMTMwLCAyMCwgMSwgMjI1LCAxMzksIDIyNSwgMjUwLCAyMCwgMSwgMjI1LCAxMzksIAorICAgIDIxMywgMTgyLCAyMCwgMSwgMjI1LCAxMzksIDIyOSwgMTQsIDIzMCwgNDcsIDIwLCAxLCAyMjUsIDEzOSwgMjI5LCA0OCwgCisgICAgMjMxLCAxMDQsIDIwLCAxLCAyMjUsIDEzOSwgMjExLCAxOTMsIDIwLCAxLCAyMjUsIDEzOSwgMjIyLCAxMiwgMjAsIDEsIAorICAgIDIyNSwgMTM5LCAyMTcsIDk4LCAyMCwgMSwgMjI1LCAxMzksIDIzMSwgMzAsIDIwLCAxLCAyMjUsIDEzOSwgMjI5LCAzMywgCisgICAgMjAsIDEsIDIyNSwgMTM5LCAyMjksIDM0LCAyMzMsIDg1LCAyMCwgMSwgMjI1LCAxMzksIDIzMSwgMjAsIDIwLCAxLCAyMjUsIAorICAgIDEzOSwgMjE4LCA1MywgMjAsIDEsIDIyNSwgMTM5LCAyMzEsIDExMiwgMjAsIDEsIDIyNSwgMTM5LCAyMzAsIDEzNCwgMjAsIAorICAgIDEsIDIyNSwgMTM5LCAyMjcsIDE2NCwgMjAsIDEsIDIyNSwgMTM5LCAyMjQsIDEzOSwgMjAsIDEsIDIyNSwgMTM5LCAyMzEsIAorICAgIDI5LCAyMjksIDUwLCAyMCwgMSwgMjI1LCAxMzksIDI0NCwgMTI3LCAyMCwgMSwgMjI1LCAxMzksIDIzMSwgOTksIDIwLCAxLCAKKyAgICAyMjUsIDEzOSwgMjQ0LCAxNDgsIDIwLCAxLCAyMjUsIDEzOSwgMjM0LCAxNTQsIDIwLCAxLCAyMjUsIDEzOSwgMjMxLCAyNDAsIAorICAgIDIyOCwgMTc0LCAyMCwgMSwgMjI1LCAxMzksIDIzMSwgMjQwLCAyMjgsIDE1MCwgMjAsIDEsIDIyNSwgMTM5LCAyMzMsIDEyLCAKKyAgICAyMCwgMSwgMjI1LCAxMzksIDIyOSwgNTYsIDIwLCAxLCAyMjUsIDEzOSwgMjI4LCAxMiwgMjAsIDEsIDIyNSwgMTM5LCAxODUsIAorICAgIDIwLCAxLCAyMjUsIDEzOSwgMjM0LCA3NSwgMjAsIDEsIDIyNSwgMTM5LCAyMjksIDIsIDIwLCAxLCAxMzcsIDIyOSwgMTMsIAorICAgIDIzMSwgMjIwLCAyMCwgMSwgMTM3LCAyMjcsIDExOCwgMjAsIDEsIDEzNywgMjEwLCAxOTYsIDIwLCAxLCAxMzcsIDIxMiwgCisgICAgNTMsIDIwLCAxLCAxMzcsIDIyOSwgNDksIDIwLCAxLCAxMzcsIDIyOSwgMTM4LCAyMCwgMSwgMTM3LCAyMjksIDIwLCAyMCwgCisgICAgMSwgMTM3LCAyNDIsIDI0MCwgMjAsIDEsIDEzNywgMjMxLCAxMTYsIDIwLCAxLCAxMzcsIDI0MywgNzgsIDIwLCAxLCAxMzcsIAorICAgIDIyNywgMTQxLCAyMzAsIDE3MSwgMjMxLCAzMiwgMjAsIDEsIDEzNywgMjI3LCAyNDEsIDIzMSwgMTA3LCAyMCwgMSwgMTM3LCAKKyAgICAyMzEsIDExMywgMjAsIDEsIDEzNywgMjI1LCA1NiwgMjAsIDEsIDEzNywgMjI5LCAxMjMsIDIwLCAxLCAxMzcsIDIzMSwgCisgICAgMTI0LCAyNTEsIDMwLCAyMCwgMSwgMTM3LCAyMzQsIDE0NCwgMjAsIDEsIDEzNywgMjQyLCAyNDEsIDIwLCAxLCAxMzcsIAorICAgIDIzNCwgMTUxLCAyMCwgMSwgMTM3LCAyMTAsIDIxMywgMjMwLCA3NywgMjAsIDEsIDEzNywgMjI3LCAxMTIsIDIwLCAxLCAKKyAgICAxMzcsIDIzMSwgMTAxLCAyMCwgMSwgMTM3LCAyMjgsIDExLCAyMCwgMSwgMTM3LCAyMzEsIDEwNywgMjAsIDEsIDEzNywgCisgICAgMjExLCAxNiwgMjAsIDEsIDEzNywgMjMzLCAyNTAsIDIwLCAxLCAxMzcsIDIzNSwgMTEsIDIwLCAxLCAxMzcsIDIyMCwgMTI0LCAKKyAgICAyMCwgMSwgMTM3LCAyMjksIDEzMiwgMjAsIDEsIDEzNywgMjE3LCA5NiwgMjAsIDEsIDEzNywgMjI4LCAxNTQsIDIwLCAxLCAKKyAgICAxMzcsIDIxNiwgNjcsIDIxMCwgMTk4LCAyMCwgMSwgMTM3LCAyMTgsIDgwLCAyMCwgMSwgMTM3LCAyMjksIDQwLCAyMjcsIAorICAgIDE2MSwgMjAsIDEsIDEzNywgMjEzLCAxODEsIDIwLCAxLCAxMzcsIDIyOSwgMjAwLCAyMCwgMSwgMTM3LCAyMzEsIDI0MCwgCisgICAgMjM0LCAxNTMsIDIwLCAxLCAxMzcsIDIyNywgMjUwLCAyMCwgMSwgMTM3LCAyMjksIDM1LCAyMCwgMSwgMTM3LCAyMzMsIDg5LCAKKyAgICAyMCwgMSwgMTM3LCAyMzEsIDEwOSwgMjAsIDEsIDEzNywgMjMxLCA5LCAyMCwgMSwgMTM3LCAyMjcsIDI0NCwgMjAsIDEsIAorICAgIDEzNywgMjE2LCAyMTYsIDIwLCAxLCAxMzcsIDIyOSwgMzcsIDIwLCAxLCAxMzcsIDI0MywgMjM0LCAyMCwgMSwgMTM3LCAKKyAgICAyMjksIDEzNywgMjAsIDEsIDEzNywgMjI4LCAxMywgMjAsIDEsIDEzNywgMjI4LCA5LCAyMCwgMSwgMTM3LCAyNTEsIDEwOCwgCisgICAgMjAsIDEsIDEzNywgMjEzLCAxODMsIDIwLCAxLCAxMzcsIDIzMSwgMTE0LCAyMCwgMSwgMTM3LCAyMjIsIDE0MSwgMjAsIDEsIAorICAgIDEzNywgMjI4LCAxODQsIDIwLCAxLCAxMzcsIDIzMywgMTAzLCAyMCwgMSwgMTM3LCAyMTYsIDY1LCAyMCwgMSwgMTM3LCAKKyAgICAyMjcsIDI1MSwgMjI5LCAyLCAyMCwgMSwgMTM3LCAyMjgsIDE3NiwgMjAsIDEsIDEzNywgMjM0LCAxNTcsIDIwLCAxLCAxMzcsIAorICAgIDIyOSwgNDEsIDIwLCAxLCAxMzcsIDIzMSwgMjEzLCAyMCwgMSwgMTM3LCAyMzEsIDEwMiwgMjAsIDEsIDEzNywgMjMyLCA5OSwgCisgICAgMjAsIDEsIDEzNywgMjMzLCAxOTAsIDIwLCAxLCAxMzcsIDIyOCwgMTgyLCAyMCwgMSwgMTM3LCAyMjksIDIsIDIwLCAxLCAKKyAgICAxMzcsIDIxMSwgMTg0LCAyMCwgMSwgMTM3LCAyMjksIDM4LCAyMCwgMSwgMTM3LCAyMjcsIDI1NCwgMjAsIDEsIDEzNywgCisgICAgMjI3LCAyNDYsIDIwLCAxLCAxMzcsIDIzMywgMjA0LCAyMjgsIDE0MCwgMjAsIDEsIDEzNywgMjI3LCAyNTIsIDIwLCAxLCAKKyAgICAxMzcsIDIyOSwgMTQ1LCAyMCwgMSwgMTM3LCAyMzEsIDI0MCwgMjI4LCAxLCAyMCwgMSwgMTM3LCAyMTEsIDEwMywgMjAsIDEsIAorICAgIDEzNywgMjI5LCAxNDQsIDIwLCAxLCAxMzcsIDIxOSwgMjIxLCAyMCwgMSwgMTM3LCAyMjAsIDEyNywgMjAsIDEsIDEzNywgCisgICAgMjMxLCAxMTAsIDIwLCAxLCAxMzcsIDIzMSwgMjIwLCAyMCwgMSwgMTM3LCAyMzEsIDEyMCwgMjAsIDEsIDEzNywgMjM0LCAKKyAgICAxNDUsIDIwLCAxLCAxMzcsIDIzMSwgMTExLCAyMCwgMSwgMTM3LCAyMzQsIDE0OSwgMjAsIDEsIDEzNywgMjMxLCAxMjQsIAorICAgIDIyNSwgMTA0LCAyMCwgMSwgMTM3LCAyMTAsIDE3OSwgMjAsIDEsIDEzNywgMjI4LCAxNzIsIDIwLCAxLCAxMzcsIDIzMCwgCisgICAgMjIxLCAyMCwgMSwgMTM3LCAyMzAsIDEwMSwgMjAsIDEsIDEzNywgMjIwLCAxNiwgMjAsIDEsIDEzNywgMjM0LCAxNjcsIAorICAgIDIzMywgNzEsIDIwLCAxLCAxMzcsIDIzNCwgMTY3LCAyNDQsIDE2MSwgMjAsIDEsIDEzNywgMjI5LCA3MCwgMjAsIDEsIDEzNywgCisgICAgMjI5LCAxOTcsIDIwLCAxLCAxMzcsIDIzMiwgMjAxLCAyMCwgMSwgMTM3LCAyMjUsIDY2LCAyMCwgMSwgMTM3LCAyMjUsIAorICAgIDIwMCwgMjAsIDEsIDEzNywgMjE2LCAyMzEsIDIwLCAxLCAxMDcsIDIzMSwgMTAwLCAyMCwgMSwgMTA3LCAyMTIsIDUxLCAyMCwgCisgICAgMSwgMTA3LCAyMjgsIDE3MCwgMjAsIDEsIDEwNywgMjMxLCAxNywgMjAsIDEsIDEwNywgMjI4LCAxNjgsIDIwLCAxLCAxMDcsIAorICAgIDIzMiwgMjM2LCAyMCwgMSwgMTA3LCAyMjgsIDE3MywgMjAsIDEsIDEwNywgMjI4LCA4LCAyMCwgMSwgMTA3LCAyMjksIDU1LCAKKyAgICAyMCwgMSwgMTA3LCAyMjcsIDE2MSwgMjAsIDEsIDEwNywgMjExLCAxOTQsIDIwLCAxLCAxMDcsIDIyOSwgMTAsIDIwLCAxLCAKKyAgICAxMDcsIDIyMCwgNjIsIDIwLCAxLCAxMDcsIDIyOSwgMjEsIDIwLCAxLCAxMDcsIDIzNCwgMTUyLCAyMCwgMSwgMTA3LCAyMTYsIAorICAgIDIxOCwgMjAsIDEsIDEwNywgMjIwLCA0MiwgMjAsIDEsIDEwNywgMjI4LCAxODEsIDIwLCAxLCAxMDcsIDIxOCwgNTMsIDIwLCAKKyAgICAxLCAxMDcsIDIzNCwgMTU3LCAyMCwgMSwgMTA3LCAyMTEsIDkxLCAyMCwgMSwgMTA3LCAyMzMsIDIwNSwgMjAsIDEsIDEwNywgCisgICAgMjIxLCAyMzUsIDIwLCAxLCAxMDcsIDIzMSwgMjIsIDIwLCAxLCAxMDcsIDIyOSwgMTM2LCAyMCwgMSwgMTA3LCAyMzEsIAorICAgIDE4OSwgMjAsIDEsIDEwNywgMjMxLCAyOCwgMjAsIDEsIDEwNywgMjIwLCAxMjYsIDIwLCAxLCAxMDcsIDIxMSwgMzksIDIwLCAKKyAgICAxLCAxMDcsIDIyOCwgMTc1LCAyMCwgMSwgMTA3LCAyMzQsIDE0OCwgMjMxLCAxMDMsIDIwLCAxLCAxMDcsIDIyOSwgMTcsIAorICAgIDIwLCAxLCAxMDcsIDIxNSwgMTE5LCAyMCwgMSwgMTA3LCAyNDIsIDI0OSwgMjAsIDEsIDEwNywgMjI5LCA3LCAyMCwgMSwgCisgICAgMTA3LCAyNDQsIDEyOCwgMjAsIDEsIDEwNywgMjI5LCAxNDAsIDIwLCAxLCAxMDcsIDIzMSwgMSwgMjAsIDEsIDEwNywgMjMzLCAKKyAgICA2LCAyMCwgMSwgMTA3LCAyMjksIDEyMiwgMjAsIDEsIDEwNywgMjMwLCAxNDgsIDIwLCAxLCAxMDcsIDIzMSwgNSwgMjAsIDEsIAorICAgIDEwNywgMjI0LCAxMTksIDIwLCAxLCAxMDcsIDIzMSwgMywgMjAsIDEsIDEwNywgMjMxLCAxOSwgMjAsIDEsIDEwNywgMjMyLCAKKyAgICA4NSwgMjAsIDEsIDEwNywgMjI4LCAwLCAyMCwgMSwgMTA3LCAyMzEsIDEyMywgMjAsIDEsIDEwNywgMjMzLCAxODEsIDIwLCAKKyAgICAxLCAxMDcsIDIyNywgMTUyLCAyMCwgMSwgMTA3LCAyMTYsIDIyMSwgMjAsIDEsIDEwNywgMjE5LCAzNSwgMjAsIDEsIDEwNywgCisgICAgMjEwLCAxNzksIDIwLCAxLCAxMDcsIDIzNCwgMTQ5LCAyMCwgMSwgMTA3LCAyMjMsIDE3MSwgMjAsIDEsIDEwNywgMjE3LCAKKyAgICAxMSwgMjAsIDEsIDEwNywgMjI5LCAxOCwgMjAsIDEsIDEwNywgMjMxLCAyNCwgMjAsIDEsIDEwNywgMjI3LCAyNTUsIDIwLCAKKyAgICAxLCAxMDcsIDIzNCwgMTQ3LCAyMCwgMSwgMTA3LCAyMjUsIDYwLCAyMCwgMSwgMTA3LCAyMjUsIDE1MywgMjAsIDEsIDEwNywgCisgICAgMjI3LCAxMjgsIDIwLCAxLCAxMDcsIDIzMywgMTIsIDIwLCAxLCAxMDcsIDIyOSwgNTYsIDIwLCAxLCAxMDcsIDIzMSwgMjEsIAorICAgIDIwLCAxLCAxMDcsIDIyOSwgMzAsIDIwLCAxLCAxMDcsIDIxMCwgMTkzLCAyMCwgMSwgMTA3LCAyMjYsIDIyLCAyMCwgMSwgCisgICAgMTA3LCAyMTAsIDE5MiwgMjAsIDEsIDEwNywgMjI5LCAxNDUsIDIwLCAxLCAxMDcsIDIyNywgMjQ1LCAyMCwgMSwgMTA3LCAKKyAgICAyMTgsIDgyLCAyMCwgMSwgMTA3LCAyMzMsIDIwOSwgMjAsIDEsIDEwNywgMjI5LCA0NSwgMjAsIDEsIDEwNywgMjI5LCAxNSwgCisgICAgMjAsIDEsIDEwNywgMjE1LCAxMDMsIDIwLCAxLCAxMDcsIDIzMSwgMzIsIDIwLCAxLCAxMDcsIDIzMywgMTk5LCAyMCwgMSwgCisgICAgMTA3LCAyMjcsIDI1MywgMjAsIDEsIDEwNywgMjE2LCAyMTksIDIwLCAxLCAxMDcsIDIzMSwgMjE1LCAyMCwgMSwgMTA3LCAKKyAgICAyMjksIDU0LCAyMCwgMSwgMTA3LCAyMzMsIDUsIDIwLCAxLCAxMDcsIDIyOSwgMzYsIDIwLCAxLCAxMDcsIDIyOCwgMiwgMjAsIAorICAgIDEsIDEwNywgMjI4LCAxNTQsIDIwLCAxLCAxMDcsIDI0MiwgMjM0LCAyMCwgMSwgMTA3LCAyMzMsIDIxOCwgMjAsIDEsIDEwNywgCisgICAgMjIzLCA4NSwgMjI2LCAyMTAsIDIwLCAxLCAxMDcsIDIxNywgODcsIDIwLCAxLCAxMDcsIDIxNiwgMTEsIDIwLCAxLCAxMDcsIAorICAgIDIyNywgMTQ5LCAyMCwgMSwgMTA3LCAyMjIsIDI0MCwgMjAsIDEsIDEwNywgMjMzLCA1MCwgMjAsIDEsIDEwNywgMjMxLCA4MCwgCisgICAgMjAsIDEsIDEwNywgMTkzLCAyMCwgMSwgMTA3LCAyMTgsIDUsIDIwLCAxLCAxMDcsIDIzMCwgMTAzLCAyMCwgMSwgMTA3LCAKKyAgICAyMjAsIDI4LCAyMCwgMSwgMTA3LCAyMjAsIDM4LCAyMCwgMSwgMTA3LCAyMzMsIDE1NiwgMjAsIDEsIDEwNywgMjI3LCAyMzgsIAorICAgIDIwLCAxLCAxMDcsIDIxOSwgMjI2LCAyMCwgMSwgMTA3LCAyMjcsIDI0NywgMjAsIDEsIDEwNywgMjI1LCAyMTIsIDIwLCAxLCAKKyAgICAxMDcsIDIyOCwgMjM0LCAyMCwgMSwgMTA3LCAyMTksIDI1MywgMjAsIDEsIDEwNywgMjI0LCAxMzQsIDIwLCAxLCAxMDcsIAorICAgIDIzMCwgNDcsIDIwLCAxLCAxMDcsIDIzMiwgMTIwLCAyMCwgMSwgMTA3LCAyMjMsIDg1LCAyMzAsIDk3LCAyMCwgMSwgMTA3LCAKKyAgICAyMTYsIDExOCwgMjAsIDEsIDEwNywgMjI3LCAyMzksIDIwLCAxLCAxMDcsIDIzMSwgMTI0LCAxOTgsIDIwLCAxLCAxMDcsIAorICAgIDIyMSwgMjMzLCAyMCwgMSwgMTA3LCAyNDQsIDE5NiwgMjAsIDEsIDgyLCAyMjksIDE0NCwgMjAsIDEsIDgyLCAyMTYsIDE3LCAKKyAgICAyMCwgMSwgODIsIDIzMSwgMTEzLCAyMCwgMSwgODIsIDIzMywgODksIDIwLCAxLCA4MiwgMjEzLCAxMjgsIDIwLCAxLCA4MiwgCisgICAgMjMyLCAxMjYsIDIwLCAxLCA4MiwgMjI2LCA5MCwgMjAsIDEsIDgyLCAyMTksIDQ2LCAyMCwgMSwgODIsIDIyMywgMTQ2LCAKKyAgICAyMCwgMSwgODIsIDIyOCwgNCwgMjAsIDEsIDgyLCAyMjksIDExNSwgMjAsIDEsIDgyLCAyMjQsIDE0OCwgMjAsIDEsIDgyLCAKKyAgICAyMTcsIDYzLCAyMCwgMSwgODIsIDIyOSwgMjMsIDIwLCAxLCA4MiwgMjMzLCAyNDYsIDIwLCAxLCA4MiwgMjExLCAxODcsIAorICAgIDIwLCAxLCA4MiwgMjIxLCAxNzEsIDIwLCAxLCA4MiwgMjI5LCA0NiwgMjAsIDEsIDgyLCAyMjYsIDg3LCAyMCwgMSwgODIsIAorICAgIDIxNiwgMTgsIDIwLCAxLCA4MiwgMjMzLCAyMDMsIDIwLCAxLCA4MiwgMjMyLCAxNDAsIDIwLCAxLCA4MiwgMjI4LCA3LCAyMCwgCisgICAgMSwgODIsIDIyOCwgMjU1LCAyMCwgMSwgODIsIDIzMSwgMjIxLCAyMCwgMSwgODIsIDIyOSwgMTYsIDIwLCAxLCA4MiwgMjI4LCAKKyAgICAyNTQsIDIwLCAxLCA4MiwgMjI4LCA2LCAyMCwgMSwgODIsIDIyMiwgMjM4LCAyMCwgMSwgODIsIDIyOCwgMTcyLCAyMCwgMSwgCisgICAgODIsIDIyNSwgMjExLCAyMCwgMSwgODIsIDIyMiwgMzIsIDIwLCAxLCA4MiwgMjI5LCAzMSwgMjAsIDEsIDgyLCAyMzEsIDExLCAKKyAgICAyMCwgMSwgODIsIDI0MiwgMjI4LCAyMCwgMSwgODIsIDIyOSwgMTksIDIwLCAxLCA4MiwgMjI4LCAxODMsIDIwLCAxLCA4MiwgCisgICAgMjMxLCAxNzMsIDIwLCAxLCA4MiwgMjMyLCAxMjIsIDIwLCAxLCA4MiwgMjI5LCA1MSwgMjAsIDEsIDgyLCAyMjksIDEyOCwgCisgICAgMjAsIDEsIDgyLCAyMTcsIDg2LCAyMjcsIDI0NSwgMjAsIDEsIDgyLCAyMjAsIDEyOCwgMjAsIDEsIDgyLCAyMjQsIDE0NCwgCisgICAgMjAsIDEsIDgyLCAyMjksIDE0OCwgMjE5LCA1MiwgMjAsIDEsIDgyLCAyMjksIDM5LCAyMjcsIDE2MSwgMjAsIDEsIDgyLCAKKyAgICAyMTEsIDQsIDIwLCAxLCA4MiwgMjQyLCAyMjksIDIwLCAxLCA4MiwgMjE1LCAxMTgsIDIwLCAxLCA4MiwgMjExLCAxOSwgMjAsIAorICAgIDEsIDgyLCAyMjUsIDE3LCAyMCwgMSwgODIsIDIxNSwgMTA4LCAyMCwgMSwgODIsIDIzNCwgMTU1LCAyMCwgMSwgODIsIDIxOCwgCisgICAgODEsIDIwLCAxLCA4MiwgMjE2LCAyMjAsIDIwLCAxLCA4MiwgMjEzLCAxODQsIDIwLCAxLCA4MiwgMjEyLCA2LCAyMCwgMSwgCisgICAgODIsIDIzMywgMTMzLCAyMCwgMSwgODIsIDIyNCwgMTUxLCAyMCwgMSwgODIsIDIxNywgOTcsIDIwLCAxLCA4MiwgMjQyLCAKKyAgICAyNDgsIDIwLCAxLCA4MiwgMjI5LCA2MCwgMjAsIDEsIDgyLCAyMjAsIDQxLCAyMCwgMSwgODIsIDIzMSwgNiwgMjAsIDEsIAorICAgIDgyLCAyMzEsIDExNywgMjAsIDEsIDgyLCAyMjcsIDExNiwgMjAsIDEsIDgyLCAyMjgsIDEzNywgMjAsIDEsIDgyLCAyNDMsIAorICAgIDc0LCAyMCwgMSwgODIsIDIxNSwgMTA5LCAyMCwgMSwgODIsIDIzMywgMjEyLCAyMCwgMSwgODIsIDIxMSwgNjcsIDIwLCAxLCAKKyAgICA4MiwgMjI3LCAxNTAsIDI1MCwgMTcsIDIwLCAxLCA4MiwgMjEwLCAyNTAsIDIwLCAxLCA4MiwgMjMxLCAyMywgMjAsIDEsIAorICAgIDgyLCAyMjksIDEzMywgMjAsIDEsIDgyLCAyMjUsIDEwMSwgMjAsIDEsIDgyLCAyMTAsIDE5NywgMjAsIDEsIDgyLCAyMzMsIAorICAgIDcsIDIwLCAxLCA4MiwgMjQzLCAyMzQsIDIwLCAxLCA4MiwgMjQzLCA3MywgMjAsIDEsIDgyLCAyMjksIDksIDIwLCAxLCA4MiwgCisgICAgMjM0LCAxNTcsIDIwLCAxLCA4MiwgMjMxLCAyMjQsIDIwLCAxLCA4MiwgMjI5LCAyMiwgMjAsIDEsIDgyLCAyNDIsIDIzNSwgCisgICAgMjAsIDEsIDgyLCAyNDQsIDE5NywgMjAsIDEsIDgyLCAyMjcsIDI0MCwgMjAsIDEsIDgyLCAyMjUsIDE1NCwgMjAsIDEsIDgyLCAKKyAgICAyMTEsIDE3LCAyMCwgMSwgODIsIDIyOSwgNDcsIDIwLCAxLCA4MiwgMjI3LCAxNTAsIDI1MiwgMjQsIDIwLCAxLCA4MiwgCisgICAgMjI3LCA5NiwgMjAsIDEsIDgyLCAyMjQsIDI0OCwgMjAsIDEsIDgyLCAyMzAsIDIyMSwgMjAsIDEsIDgyLCAyNDMsIDIzMiwgCisgICAgMjAsIDEsIDgyLCAyMjksIDIyMSwgMjAsIDEsIDgyLCAyMzAsIDEwMSwgMjAsIDEsIDgyLCAyNDIsIDIzNCwgMjAsIDEsIDgyLCAKKyAgICAyNDMsIDIzNiwgNzMsIDIwLCAxLCA4MiwgMjMwLCA0OCwgMjAsIDEsIDgyLCAyMjQsIDE0NywgMjAsIDEsIDgyLCAyMjksIAorICAgIDExLCAyMCwgMSwgODIsIDIzMywgMTkwLCAyMCwgMSwgODIsIDIyNSwgOTgsIDIwLCAxLCA4MiwgMjI3LCAyNDgsIDIwLCAxLCAKKyAgICA4MiwgMjExLCAxOCwgMjAsIDEsIDgyLCAyMjksIDMyLCAyMCwgMSwgODIsIDIyNiwgOTEsIDIyNSwgMTg4LCAyMCwgMSwgODIsIAorICAgIDI0MywgMjM2LCAyNTEsIDE2LCAyMCwgMSwgODIsIDI0NCwgMzgsIDIwLCAxLCA4MiwgMjI4LCAxNzcsIDIwLCAxLCA4MiwgCisgICAgNjEsIDIwLCAxLCA4MiwgMjE2LCAxMSwgMjAsIDEsIDgyLCA3NiwgMjAsIDEsIDgyLCA3MywgMjAsIDEsIDgyLCAyMzMsIDg3LCAKKyAgICAyMCwgMSwgODIsIDIyNiwgOTEsIDIyNSwgMjQsIDIwLCAxLCA4MiwgMjE3LCAxMDIsIDIwLCAxLCA4MiwgMjE3LCA1MiwgMjAsIAorICAgIDEsIDgyLCAyMjksIDE0OCwgMjMwLCAzNSwgMjQwLCAyMzUsIDIwLCAxLCA4MiwgMjIwLCAxNiwgMjAsIDEsIDgyLCAyMTEsIAorICAgIDE0LCAyMCwgMSwgODIsIDIyOCwgMjQ4LCAyMCwgMSwgODIsIDIxMCwgMjAyLCAyMCwgMSwgODIsIDIxMCwgMjI3LCAyMTcsIAorICAgIDI0MSwgMjAsIDEsIDgyLCAyMTAsIDIyNywgMjQ5LCAxNDgsIDIwLCAxLCA4MiwgMjEwLCAxODcsIDIwLCAxLCA4MiwgMjEwLCAKKyAgICAxOTUsIDIwLCAxLCA4MiwgMjM0LCAxNDMsIDIwLCAxLCA4MiwgMjI1LCAxNTIsIDIwLCAxLCA4MiwgMjI4LCAxNzgsIDI0NSwgCisgICAgMTAzLCAyMCwgMSwgODIsIDIyNCwgMTQ1LCAyMCwgMSwgODIsIDIxMSwgMTkyLCAyMCwgMSwgODIsIDI0NCwgMTQ4LCAyMCwgCisgICAgMSwgODIsIDIxMywgMjUwLCAyMCwgMSwgODIsIDIzMiwgOTksIDIwLCAxLCA4MiwgMjMwLCAyMzEsIDIwLCAxLCA4MiwgMjIzLCAKKyAgICA1MiwgMjAsIDEsIDgyLCAyMjMsIDE3MiwgMjAsIDEsIDgyLCAyMjgsIDI0NywgMjAsIDEsIDgyLCAyMjksIDc4LCAyMCwgMSwgCisgICAgODIsIDIyMCwgOCwgMjAsIDEsIDgyLCAyMTksIDI1MywgMjAsIDEsIDgyLCAyNDMsIDIzNiwgMjIzLCA4NywgMjAsIDEsIDgyLCAKKyAgICAxOTcsIDIwLCAxLCA4MiwgMjI1LCAxMDksIDIwLCAxLCA4MiwgMjMyLCAxMjAsIDIwLCAxLCA4MiwgMjM0LCAyOSwgMjAsIDEsIAorICAgIDgyLCAyMzEsIDU5LCAyMCwgMSwgODIsIDE4NSwgMjAsIDEsIDgyLCAyMzEsIDE3MCwgMjAsIDEsIDgyLCAyMTYsIDIyMiwgCisgICAgMjAsIDEsIDgyLCAyMzQsIDkzLCAyMCwgMSwgODIsIDIzMCwgMTUxLCAyMCwgMSwgODIsIDIxNiwgMjQ4LCAyMCwgMSwgODIsIAorICAgIDI0NCwgMTcwLCAyMCwgMSwgODIsIDI0MiwgMjI0LCAyMCwgMSwgMjI1LCAxMzgsIDE3NiwgMjAsIDEsIDIyNSwgMTM4LCA3MCwgCisgICAgMjAsIDEsIDIyNSwgMTM4LCAyMzMsIDIxOCwgMjAsIDEsIDIyNSwgMTM4LCAyNDUsIDIxMCwgMjAsIDEsIDIyNSwgMTM4LCAKKyAgICAyMjMsIDEwOSwgMjAsIDEsIDIyNSwgMTM4LCAyMTcsIDg3LCAyMCwgMSwgMjI1LCAxMzgsIDIyNywgMTQ5LCAyMCwgMSwgCisgICAgMjI1LCAxMzgsIDIzMywgMTM2LCAyMCwgMSwgMjI1LCAxMzgsIDIyMiwgMjQwLCAyMCwgMSwgMjI1LCAxMzgsIDIyMywgMzAsIAorICAgIDIwLCAxLCAyMjUsIDEzOCwgMjMxLCA4MCwgMjAsIDEsIDIyNSwgMTM4LCAyMTcsIDEwMiwgMjAsIDEsIDIyNSwgMTM4LCAKKyAgICAyMjksIDE0NywgMjAsIDEsIDIyNSwgMTM4LCAyMjgsIDE4NCwgMjAsIDEsIDIyNSwgMTM4LCAxOTMsIDIwLCAxLCAyMjUsIAorICAgIDEzOCwgMjE4LCA1LCAyMCwgMSwgMjI1LCAxMzgsIDIyMCwgMjgsIDIwLCAxLCAyMjUsIDEzOCwgMjE5LCAxOTIsIDIwLCAxLCAKKyAgICAyMjUsIDEzOCwgMjIwLCAxMjQsIDIwLCAxLCAyMjUsIDEzOCwgMjMzLCAxNTYsIDIwLCAxLCAyMjUsIDEzOCwgMjM0LCAxNTcsIAorICAgIDIwLCAxLCAyMjUsIDEzOCwgMjI3LCAyMTAsIDIwLCAxLCAyMjUsIDEzOCwgMjI3LCAyMzgsIDIwLCAxLCAyMjUsIDEzOCwgCisgICAgMjI4LCAxNTUsIDIwLCAxLCAyMjUsIDEzOCwgMjEwLCAyMjYsIDIwLCAxLCAyMjUsIDEzOCwgMjE5LCAyMjYsIDIwLCAxLCAKKyAgICAyMjUsIDEzOCwgMTkxLCAyMCwgMSwgMjI1LCAxMzgsIDIyOCwgMTAsIDIwLCAxLCAyMjUsIDEzOCwgMjI1LCAxNTIsIDIwLCAKKyAgICAxLCAyMjUsIDEzOCwgMjI3LCAyNDcsIDIwLCAxLCAyMjUsIDEzOCwgMjExLCAxOTIsIDIwLCAxLCAyMjUsIDEzOCwgMjI1LCAKKyAgICAyMTIsIDIwLCAxLCAyMjUsIDEzOCwgMjIyLCAxNDEsIDIwLCAxLCAyMjUsIDEzOCwgMjI4LCAyMzQsIDIwLCAxLCAyMjUsIAorICAgIDEzOCwgMjIzLCA1MiwgMjAsIDEsIDIyNSwgMTM4LCAyMzQsIDE2NiwgMjAsIDEsIDIyNSwgMTM4LCAyMjksIDgsIDIwLCAxLCAKKyAgICAyMjUsIDEzOCwgMjI5LCA1NywgMjAsIDEsIDIyNSwgMTM4LCAyMjAsIDgsIDIwLCAxLCAyMjUsIDEzOCwgMjI0LCAxNDgsIAorICAgIDIwLCAxLCAyMjUsIDEzOCwgMjQ0LCAzOCwgMjAsIDEsIDIyNSwgMTM4LCAyMTIsIDY1LCAyMCwgMSwgMjI1LCAxMzgsIDIzMiwgCisgICAgMjQyLCAyMCwgMSwgMjI1LCAxMzgsIDIzMiwgMTIwLCAyMCwgMSwgMjI1LCAxMzgsIDIzNCwgMjksIDIwLCAxLCAyMjUsIAorICAgIDEzOCwgMjMxLCAxMTUsIDIwLCAxLCAyMjUsIDEzOCwgMjIzLCA4NCwgMjAsIDEsIDIyNSwgMTM4LCAxODUsIDIwLCAxLCAKKyAgICAyMjUsIDEzOCwgMjMwLCAxNjIsIDIwLCAxLCAyMjUsIDEzOCwgMjMxLCAxMjMsIDIwLCAxLCAyMjUsIDEzOCwgMjE2LCAyMzEsIAorICAgIDIwLCAxLCAyMjUsIDEzOCwgMjMzLCAyNTIsIDIwLCAxLCAyMjUsIDEzOCwgMjIxLCAyNTIsIDIwLCAxLCAyMjUsIDEzOCwgCisgICAgMjEyLCAxMTUsIDk1LCAxLCAxOTAsIDk1LCAxLCAyNTIsIDE5MiwgOTUsIDEsIDgsIDE5MCwgOTUsIDEsIDIyNSwgNDMsIDk1LCAKKyAgICAxLCAxODUsIDk1LCAxLCAyMzAsIDIzNCwgOTUsIDEsIDI1NCwgMjQsIDE4NSwgOTUsIDEsIDI0NCwgMTk3LCA5NSwgMSwgCisgICAgMjE0LCAyNywgOTUsIDEsIDIxMywgMTc3LCA5NSwgMSwgMjE3LCAxMDYsIDk1LCAxLCAyNDgsIDIyMiwgOTUsIDEsIDgsIAorICAgIDIxNSwgMTU3LCA5NSwgMSwgOCwgMjE3LCAxMDYsIDk1LCAxLCAyMTUsIDE1NywgOTUsIDEsIDI0OCwgMTM2LCA5NSwgMSwgCisgICAgMTk3LCA5NSwgMSwgMjI4LCAyMzgsIDk1LCAxLCA4LCAyMjgsIDExMSwgOTUsIDEsIDI1NCwgMjQsIDE5NywgOTUsIDEsIAorICAgIDIyOCwgMTExLCA5NSwgMSwgMjI4LCA5NywgOTUsIDEsIDIzMywgMTM2LCA5NSwgMSwgMjMyLCA2MiwgOTUsIDEsIDIzMiwgCisgICAgMjU1LCA5NSwgMSwgMjMyLCAyNDQsIDk1LCAxLCAyMTYsIDU3LCA5NSwgMSwgMjQ3LCAxNTQsIDk1LCAxLCAyMTYsIDQ5LCAKKyAgICA5NSwgMSwgMjQ3LCAxNTMsIDk1LCAxLCAxNzYsIDk1LCAxLCAyNDMsIDEzNiwgOTUsIDEsIDgsIDE3NiwgOTUsIDEsIDIyNCwgCisgICAgODksIDk1LCAxLCAyMjQsIDY3LCA5NSwgMSwgMjI5LCA3OCwgOTUsIDEsIDIyOSwgMjksIDk1LCAxLCAyNTQsIDI0LCAyMjksIAorICAgIDc4LCA5NSwgMSwgMTYyLCA5NSwgMSwgMjExLCAxNjUsIDk1LCAxLCAyNDIsIDI1MCwgOTUsIDEsIDI0MiwgMjI3LCA5NSwgMSwgCisgICAgMjE1LCAxNjYsIDk1LCAxLCAyNDYsIDI3LCA5NSwgMSwgMjI3LCAxNjYsIDk1LCAxLCAyMjcsIDE1MSwgOTUsIDEsIDIxNSwgCisgICAgMTc2LCA5NSwgMSwgMjQ2LCAzNCwgOTUsIDEsIDgsIDIxNSwgMTc2LCA5NSwgMSwgOCwgMjQ2LCAzNCwgOTUsIDEsIDIyMywgCisgICAgMTA3LCAyMTUsIDE3NiwgOTUsIDEsIDIyMCwgMTAzLCA5NSwgMSwgMjE4LCAyMjQsIDk1LCAxLCAyMTAsIDgyLCA5NSwgMSwgCisgICAgMjEwLCAxNCwgOTUsIDEsIDIxNSwgMTg0LCA5NSwgMSwgMjQ2LCAzOSwgOTUsIDEsIDgsIDIxNSwgMTg0LCA5NSwgMSwgMjA2LCAKKyAgICA5NSwgMSwgMjEwLCAxMTYsIDk1LCAxLCAyMTAsIDE1LCA5NSwgMSwgMjA5LCAyNDMsIDk1LCAxLCAyMDksIDIyMywgOTUsIDEsIAorICAgIDI1NCwgMjQsIDIwOSwgMjQzLCA5NSwgMSwgMjA5LCAyMTUsIDk1LCAxLCAyMDksIDIyMiwgOTUsIDEsIDIxMiwgNjUsIDk1LCAKKyAgICAxLCAyNTQsIDIxMCwgOTUsIDEsIDI0MSwgMTkwLCA5NSwgMSwgMjI5LCAxOTMsIDk1LCA1LCAyNTMsIDIyMywgOTUsIDUsIAorICAgIDIyMywgMTA3LCAyMTMsIDEzMywgOTUsIDUsIDIyMywgMTA3LCAyNTMsIDIyMywgOTUsIDI1LCA1LCA2MSwgOTUsIDI1LCA1LCAKKyAgICAyNTUsIDc0LCA5NSwgMjUsIDUsIDI1NCwgMjA2LCA5NSwgMjUsIDUsIDI1NCwgMTI0LCA5NSwgMjUsIDUsIDI1NCwgMTE2LCAKKyAgICA5NSwgMjUsIDUsIDc2LCA5NSwgMjUsIDUsIDIyNiwgMTg0LCA5NSwgMjUsIDUsIDIxMSwgMjI3LCA5NSwgMjUsIDUsIDIxMiwgCisgICAgOTgsIDk1LCAyNSwgNSwgNzUsIDk1LCAyNSwgNSwgMjQ1LCAxNTEsIDk1LCAyNSwgNSwgMjQ1LCAxMzksIDk1LCAyNSwgNSwgCisgICAgMjI2LCAyMzMsIDk1LCAyNSwgNSwgNzMsIDk1LCAyNSwgNSwgMjQwLCAxMjAsIDk1LCAyNSwgNSwgMjQwLCAxMTksIDk1LCAKKyAgICAyNSwgNSwgMjQwLCAxMTgsIDk1LCAyNSwgNSwgMjM1LCAxOTAsIDk1LCAyNSwgNSwgMjM2LCA2MSwgOTUsIDI1LCA1LCAyMzYsIAorICAgIDM0LCA5NSwgMjUsIDUsIDIzNSwgMTU3LCA5NSwgMjUsIDUsIDIzNSwgMjMyLCA5NSwgMjUsIDUsIDcwLCA5NSwgMjUsIDUsIAogICAgIDIxNCwgMjI5LCA5NSwgMjUsIDUsIDIxNCwgMjI4LCA5NSwgMjUsIDUsIDIxNCwgMjI3LCA5NSwgMjUsIDUsIDIxNCwgMTE4LCAKICAgICA5NSwgMjUsIDUsIDIxNCwgMjExLCA5NSwgMjUsIDUsIDIxNCwgMTc4LCA5NSwgMjUsIDUsIDIxMSwgMTE3LCA5NSwgMjUsIDUsIAotICAgIDIxMSwgOCwgOTUsIDI1LCA1LCAyNTQsIDI0MywgOTUsIDI1LCA1LCAyNTQsIDIzOSwgOTUsIDI1LCA1LCAyNDUsIDg2LCA5NSwgCi0gICAgMjUsIDUsIDIyMiwgMTgzLCAyNDUsIDg2LCA5NSwgMjUsIDUsIDI0NSwgOTIsIDk1LCAyNSwgNSwgMjIyLCAxODMsIDI0NSwgCi0gICAgOTIsIDk1LCAyNSwgNSwgMjU0LCAyMDEsIDk1LCAyNSwgNSwgMjQ1LCAxOTUsIDk1LCAyNSwgNSwgMjUzLCAxOTIsIDk1LCAKLSAgICAyNSwgNSwgMjI2LCAxMzQsIDk1LCAyNSwgNSwgMjMwLCAyNSwgOTUsIDI1LCA1LCAyMjksIDc5LCA5NSwgMTM4LCAyMjIsIAotICAgIDI1MSwgOTUsIDEzOCwgMjE2LCAxNCwgMjIyLCAyNTEsIDk1LCAxMzgsIDQ4LCA5NSwgMTM4LCA1MSwgOTUsIDEsIDIxNiwgCi0gICAgMjgsIDk1LCAxLCAyMTYsIDI3LCA5NSwgMSwgMjE2LCAyNiwgOTUsIDEsIDIxNiwgMjUsIDk1LCAxLCAyMTYsIDI0LCA5NSwgCi0gICAgMSwgMjE2LCAyMywgOTUsIDEsIDIxNiwgMjIsIDk1LCAxLCAyMjMsIDEwNiwgMjE2LCAyOSwgOTUsIDEsIDIyMywgMTA2LCAKLSAgICAyMTYsIDI4LCA5NSwgMSwgMjIzLCAxMDYsIDIxNiwgMjYsIDk1LCAxLCAyMjMsIDEwNiwgMjE2LCAyNSwgOTUsIDEsIDIyMywgCi0gICAgMTA2LCAyMTYsIDI0LCA5NSwgMSwgMjIzLCAxMDYsIDIxNiwgMjIsIDU2LCAxLCAyNTQsIDIzLCA3NSwgMTQxLCAxLCAyNTQsIAotICAgIDIzLCAyMTEsIDQ3LCA0OSwgMjgsIDE2LCAyMjQsIDE1NCwgNDksIDI4LCAxNiwgMjQ4LCAxNTgsIDQ5LCAyOCwgMTYsIDIyNSwgCi0gICAgMTc1LCA0OSwgMjgsIDE2LCAyMjYsIDExMywgMjQ1LCAxNzgsIDQ5LCAyOCwgMTYsIDIyNiwgMTEzLCAyNDcsIDIwMSwgNDksIAotICAgIDI4LCAxNiwgMjE0LCAxNiwgMjQ1LCAxNzgsIDQ5LCAyOCwgMTYsIDIxNCwgMTYsIDI0NywgMjAxLCA0OSwgMjgsIDE2LCAKLSAgICAyMzQsIDE5NywgNDksIDI4LCAxNiwgMjE3LCAxNjksIDQ5LCAyOCwgMTYsIDIyNiwgOSwgNDksIDI4LCAxNiwgMjEwLCAyMTcsIAotICAgIDQ5LCAyOCwgMTYsIDIxMCwgMjE4LCAyNDcsIDIwMSwgNDksIDI4LCAxNiwgMjMzLCAyMzQsIDQ5LCAyOCwgMTYsIDI1NCwgCi0gICAgNjgsIDI0NSwgMTc4LCA0OSwgMjgsIDE2LCAyNDUsIDI2LCAyNDUsIDE3OCwgNDksIDI4LCAxNiwgMjE3LCAyLCA0OSwgMjgsIAotICAgIDE2LCAyMzQsIDE2MSwgNDksIDI4LCAxNiwgMjU0LCA1OCwgNDksIDI4LCAxNiwgMjU0LCA1OSwgMjQ3LCAyMDEsIDQ5LCAyOCwgCi0gICAgMTYsIDIxNywgMTc1LCA0OSwgMjgsIDE2LCAyMTYsIDE1OSwgNDksIDI4LCAxNiwgMjI2LCAyMDYsIDI1NCwgMjEsIDQ5LCAKLSAgICAyOCwgMTYsIDI0MiwgMTU5LCAyNTQsIDIxLCA0OSwgMjgsIDE2LCAyMjQsIDE1MywgNDksIDI4LCAxNiwgMjUwLCAxNDksIAotICAgIDQ5LCAyOCwgMTYsIDIxNCwgNiwgNDksIDI4LCAxNiwgMjM1LCAxNjQsIDI1NCwgMjEsIDQ5LCAyOCwgMTYsIDIzNCwgMTYzLCAKLSAgICAyNTQsIDIxLCA0OSwgMjgsIDE2LCAyMzQsIDE2MiwgMjU0LCAyMSwgNDksIDI4LCAxNiwgMjIxLCAyMTMsIDQ5LCAyOCwgMTYsIAotICAgIDIyNiwgMCwgNDksIDI4LCAxNiwgMjE4LCAxNDYsIDI1NCwgNjEsIDQ5LCAyOCwgMTYsIDIyNiwgMTEyLCAyNTQsIDIxLCA0OSwgCi0gICAgMjgsIDE2LCAyMTQsIDE1LCAyNTQsIDIxLCA0OSwgMjgsIDE2LCAyNTQsIDYyLCAyNTQsIDIxLCA0OSwgMjgsIDE2LCAyNTQsIAotICAgIDU2LCA0OSwgMjgsIDE2LCAyMzQsIDM3LCA0OSwgMjgsIDE2LCAyMjMsIDQ2LCA0OSwgMjgsIDE2LCAyMjUsIDEwNiwgMjU0LCAKLSAgICAyMSwgNDksIDI4LCAxNiwgMjE2LCA4MywgNDksIDI4LCAxNiwgMjU0LCAxMjEsIDQ5LCAyOCwgMTYsIDIyMSwgMTU5LCA0OSwgCi0gICAgMjgsIDE2LCAyMTcsIDE3OCwgMjU0LCAyMSwgNDksIDI4LCAxNiwgMjE3LCAxNzgsIDIzMSwgNDAsIDIxOCwgMTQ0LCA0OSwgCi0gICAgMjgsIDE2LCAyMjYsIDEwNywgMjU0LCAyMSwgNDksIDI4LCAxNiwgMjE2LCAxOTAsIDQ5LCAyOCwgMTYsIDIzMywgMjcsIDQ5LCAKLSAgICAyOCwgMTYsIDI0NiwgNDEsIDQ5LCAyOCwgMTYsIDIxNSwgMjI3LCA0OSwgMjgsIDE2LCAyMTYsIDIzMiwgNDksIDI4LCAxNiwgCi0gICAgMjMzLCAyMzcsIDQ5LCAyOCwgMTYsIDI1NCwgNjgsIDI0NSwgMjYsIDIyOSwgOTUsIDQ5LCAyOCwgMTYsIDI0MywgMjM2LCAKLSAgICAyNTQsIDIxLCA0OSwgMjgsIDE2LCAyMzYsIDEyLCA0OSwgMjgsIDE2LCAyMTUsIDE5OSwgMjU0LCAyMSwgNDksIDI4LCAxNiwgCi0gICAgMjM0LCAyMDAsIDIxNSwgMTk4LCA0OSwgMjgsIDE2LCAyMjUsIDIwMCwgNDksIDI4LCAxNiwgMjI0LCAxNTgsIDQ5LCAyOCwgCi0gICAgMTYsIDIzNCwgMTEsIDQ5LCAyOCwgMTYsIDI1MCwgODAsIDI1NCwgMjEsIDQ5LCAyOCwgMTYsIDIyMywgMTQ2LCA0OSwgMjgsIAotICAgIDE2LCAyMjYsIDEyLCAyNTQsIDIxLCA0OSwgMjgsIDE2LCAyMjYsIDEwLCAyNTQsIDIxLCA0OSwgMjgsIDE2LCAyNDAsIDEwOSwgCi0gICAgNDksIDI4LCAxNiwgMjI5LCAyMDMsIDQ5LCAyOCwgMTYsIDIyNSwgMTU2LCA0OSwgMjgsIDE2LCAyMzQsIDEyLCAyNTQsIAotICAgIDE0OSwgNDksIDI4LCAxNiwgMjE1LCAxOTksIDI1NCwgMTQ5LCA0OSwgMjgsIDE2LCAyMTgsIDEyMywgNDksIDI4LCAxNiwgCi0gICAgMjQyLCAxMjMsIDQ5LCAyOCwgMTYsIDIzNSwgMTY0LCAyMjksIDk1LCA0OSwgMjgsIDE2LCAyMjYsIDIwNiwgMjI5LCA5NSwgCi0gICAgNDksIDI4LCAxNiwgMjI2LCAxMTMsIDIyOSwgOTUsIDQ5LCAyOCwgMTYsIDIyNSwgMTU1LCA0OSwgMjgsIDE2LCAyMzMsIAotICAgIDI1NCwgNDksIDI4LCAxNiwgMjI1LCAxNTQsIDQ5LCAyOCwgMTYsIDIzMywgMjM2LCA0OSwgMjgsIDE2LCAyMjUsIDIwMSwgCi0gICAgMjI5LCA5NSwgNDksIDI4LCAxNiwgMjM0LCAxNjIsIDIyOSwgOTYsIDI1NCwgOTYsIDQ5LCAyOCwgMTYsIDIzNCwgMTYzLCAKLSAgICAyMjksIDk2LCAyNTQsIDk2LCA0OSwgMjgsIDE2LCAyMTAsIDIxNSwgNDksIDI4LCAxNiwgMjU0LCA1OSwgMjI5LCA5NSwgNDksIAotICAgIDI4LCAxNiwgMjU0LCA2MCwgMjE3LCAxNzYsIDIyOSwgOTUsIDQ5LCAyOCwgMTYsIDIxMCwgMjE2LCA0OSwgMjgsIDE2LCAKLSAgICAyMzMsIDIzNSwgNDksIDI4LCAxNiwgMjQ1LCAxNzMsIDQ5LCAyOCwgMTYsIDI1MCwgMTUwLCA0OSwgMjgsIDE2LCAyMzAsIAotICAgIDE5OCwgMjM1LCAxNjMsIDQ5LCAyOCwgMTYsIDIxNCwgMTYsIDIyOSwgOTUsIDQ5LCAyOCwgMTYsIDIyNSwgMTA2LCAyMjksIAotICAgIDk1LCA0OSwgMjgsIDE2LCAyMjQsIDE1OSwgMjI5LCA5NSwgNDksIDI4LCAxNiwgMjI2LCAyMDMsIDQ5LCAyOCwgMTYsIDI1NCwgCi0gICAgODQsIDQ5LCAyOCwgMTYsIDIzMiwgNTgsIDQ5LCAyOCwgMTYsIDIyNiwgMTAsIDIyOSwgOTUsIDQ5LCAyOCwgMTYsIDIyNiwgCi0gICAgMTIsIDIyOSwgOTUsIDQ5LCAyOCwgMTYsIDI0NSwgNjAsIDIyNiwgMTEsIDQ5LCAyOCwgMTYsIDIzMywgMTUzLCA0OSwgMjgsIAotICAgIDE2LCAyNTQsIDg1LCA0OSwgMjgsIDE2LCAyMTUsIDE5OSwgMjI5LCA5NSwgNDksIDI4LCAxNiwgMjQ1LCAxNzYsIDQ5LCAyOCwgCi0gICAgMTYsIDIxNywgMTc4LCAyMjksIDk1LCA0OSwgMjgsIDE2LCAyMTcsIDE3MCwgNDksIDI4LCAxNiwgMjUwLCA4MCwgMjI5LCAKLSAgICA5NSwgNDksIDI4LCAxNiwgMjQ1LCAxMDYsIDQ5LCAyOCwgMTYsIDIyMSwgMTYwLCAyMjksIDk1LCA0OSwgMjgsIDE2LCAyMTEsIAotICAgIDE1MSwgMjM0LCAzNywgNDksIDI4LCAxNiwgMjE1LCAxOTYsIDQ5LCAyOCwgMTYsIDIyNCwgMTYwLCA0OSwgMjgsIDE2LCAKLSAgICAyMTUsIDIwMCwgNDksIDI4LCAxNiwgMjE1LCAxOTcsIDQ5LCAyOCwgMTYsIDIyNCwgMTU3LCA0OSwgMjgsIDE2LCAyMTUsIAotICAgIDE5NSwgNDksIDI4LCAxNiwgMjI0LCAxNTYsIDQ5LCAyOCwgMTYsIDI0MiwgMTU4LCA0OSwgMjgsIDE2LCAyNTQsIDE0LCA0OSwgCi0gICAgMjgsIDE2LCAyNDUsIDYwLCAyNTQsIDE0LCA0OSwgMjgsIDE2LCAyMjYsIDEwNywgMjI5LCA5NSwgNDksIDI4LCAxNiwgMjE2LCAKLSAgICAxODksIDI0NSwgNjksIDQ5LCAyOCwgMTYsIDIxNiwgMTg5LCAyNDUsIDI1LCA0OSwgMjgsIDE2LCAyMTYsIDE5MSwgMjU0LCAKLSAgICA2MywgNDksIDI4LCAxNiwgMjE2LCAxODQsIDIzNCwgMjQ3LCAyNTQsIDU1LCA0OSwgMjgsIDE2LCAyMzQsIDE5OSwgNDksIAotICAgIDI4LCAxNiwgMjQ1LCAxMzksIDQ5LCAyOCwgMTYsIDIxMSwgMTEsIDIzNCwgMTk2LCA0OSwgMjgsIDE2LCAyMTEsIDExLCAKLSAgICAyNTQsIDk2LCA0OSwgMjgsIDE2LCAyMTgsIDE0NSwgNDksIDI4LCAxNiwgMjM0LCAzOCwgMjU0LCA5NiwgNDksIDI4LCAxNiwgCi0gICAgMjQ3LCAyMDIsIDI1NCwgMjEsIDQ5LCAyOCwgMTYsIDIzMywgMjM4LCAyNTQsIDIxLCA0OSwgMjgsIDE2LCAyMzMsIDIzOCwgCi0gICAgMjU0LCAxNDksIDQ5LCAyOCwgMTYsIDIzMywgMjM4LCAyMjksIDk1LCA0OSwgMjgsIDE2LCAyNTQsIDYyLCAyMjksIDk1LCAKLSAgICA0OSwgMjgsIDE2LCAyNTQsIDY0LCA0OSwgMjgsIDE2LCAyNDcsIDIwMSwgNDksIDI4LCAxNiwgMjE1LCAyMTAsIDQ5LCAyOCwgCi0gICAgMTYsIDIxNiwgMjI0LCA0OSwgMjgsIDE2LCAyMzQsIDIsIDQ5LCAyOCwgMTYsIDIzMywgMzIsIDI0NSwgMTM0LCAyNTAsIDcxLCAKLSAgICA0OSwgMjgsIDE2LCAyMzMsIDMyLCAyNDYsIDQyLCAyNTAsIDcyLCA0OSwgMjgsIDE2LCAyMzMsIDMyLCAyMTUsIDIxMiwgCi0gICAgMjUwLCA3MiwgNDksIDI4LCAxNiwgMjMzLCAzMiwgMjE2LCAyMzQsIDI1MCwgNzIsIDQ5LCAyOCwgMTYsIDIzMywgMzIsIAotICAgIDIzNiwgNywgMjUwLCA3MSwgNDksIDI4LCAxNiwgMjQyLCAxNTksIDIyOSwgOTYsIDI1NCwgOTYsIDQ5LCAyOCwgMTYsIDI0MiwgCi0gICAgMTU5LCAyMjYsIDEsIDI1NCwgMTAsIDQ5LCAyOCwgMTYsIDI0MiwgMTU5LCAyMjYsIDEsIDI0OCwgMjksIDQ5LCAyOCwgMTYsIAotICAgIDI0NywgMjI1LCA0OSwgMjgsIDE2LCAyNDcsIDIyNiwgMjI2LCAxLCAyNTQsIDExLCAyMzQsIDE5NiwgNDksIDI4LCAxNiwgCi0gICAgMjQ3LCAyMjYsIDIyNiwgMSwgMjU0LCAxMSwgMjU0LCA5NiwgNDksIDI4LCAxNiwgMjQ3LCAyMjYsIDIyNiwgMSwgMjQ4LCAKLSAgICAyOSwgNDksIDI4LCAxNiwgMjE1LCAyMTYsIDQ5LCAyOCwgMTYsIDI1NCwgMTUsIDQ5LCAyOCwgMTYsIDIzNiwgMTQsIDQ5LCAKLSAgICAyOCwgMTYsIDI0NywgMjQ2LCA0OSwgMjgsIDE2LCAyNTQsIDIxMSwgMjI1LCAwLCAyNTQsIDE2LCA0OSwgMjgsIDE2LCAyNTQsIAotICAgIDIxMSwgMjU0LCAxMywgNDksIDI4LCAxNiwgMjU0LCAyMTEsIDI1NCwgMTYsIDQ5LCAyOCwgMTYsIDI1NCwgMjExLCAyMzEsIAotICAgIDM0LCA0OSwgMjgsIDE2LCAyNTQsIDIxMSwgMjMxLCA0NSwgNDksIDI4LCAxNiwgMjU0LCAyMTEsIDI0MiwgMTYwLCA0OSwgCi0gICAgMjgsIDE2LCAyNTQsIDIxMSwgMjQyLCAxNTcsIDQ5LCAyOCwgMTYsIDI1NCwgMjExLCAyMjUsIDAsIDI0MiwgMTYwLCA0OSwgCi0gICAgMjgsIDE2LCAyMzEsIDE1MSwgMjI0LCAxNjUsIDI0MCwgMTA3LCA0OSwgMjgsIDE2LCAyMzEsIDE1MSwgMjU0LCAxNTEsIAotICAgIDIyNCwgMTY1LCAyNDAsIDEwNywgNDksIDI4LCAxNiwgMjMxLCAxNTEsIDI0OCwgMjgsIDI0MCwgMTA3LCA0OSwgMjgsIDE2LCAKLSAgICAyMzEsIDE1MSwgMjU0LCAxNTEsIDI0OCwgMjgsIDI0MCwgMTA3LCA0OSwgMjgsIDE2LCAyMzEsIDE1MSwgMjE1LCAyMDUsIAotICAgIDI0MCwgMTA3LCA0OSwgMjgsIDE2LCAyMzEsIDE1MSwgMjE1LCAyMTcsIDQ5LCAyOCwgMTYsIDIzMSwgMTUxLCAyMTYsIDIyOCwgCi0gICAgMjQwLCAxMDcsIDQ5LCAyOCwgMTYsIDIzMSwgMTUxLCAyMTYsIDIyOCwgMjMzLCAzNSwgMjQwLCAxMDcsIDQ5LCAyOCwgMTYsIAotICAgIDIzMSwgMTUxLCAyMzMsIDM1LCAyNDAsIDEwNywgNDksIDI4LCAxNiwgMjMxLCAxNTEsIDIyNSwgMzksIDI0MCwgMTA3LCA0OSwgCi0gICAgMjgsIDE2LCAyMzUsIDE2OSwgMjE2LCAyNTEsIDI0MCwgMTA4LCA0OSwgMjgsIDE2LCAyNTQsIDYwLCAyMTYsIDI1MSwgMjQwLCAKLSAgICAxMDgsIDQ5LCAyOCwgMTYsIDI0NCwgMTcyLCAyMTYsIDIyNSwgNDksIDI4LCAxNiwgMjQ0LCAxNzIsIDIzMCwgMTQzLCA0OSwgCi0gICAgMjgsIDE2LCAyNDQsIDE3MiwgMjQ3LCAyMzAsIDQ5LCAyOCwgMTYsIDIzMSwgMTUxLCAyMTQsIDEwLCAyNDAsIDEwNywgNDksIAotICAgIDI4LCAxNiwgMjMxLCAxNTEsIDIyNCwgMTY0LCAyNDAsIDEwNywgNDksIDI4LCAxNiwgMjMxLCAxNTEsIDIyNSwgMzksIDIxNiwgCi0gICAgMjI4LCAyNDAsIDEwNywgNDksIDI4LCAxNiwgMjQyLCAxNTUsIDIzMCwgMjYsIDI1NCwgNjMsIDQ5LCAyOCwgMTYsIDI0MiwgCi0gICAgMTU1LCAyMzAsIDI2LCAyNDcsIDIwMCwgNDksIDI4LCAxNiwgMjQ1LCAxNDgsIDIzNCwgMjQ3LCAyNDMsIDIzNiwgMjEzLCAKLSAgICAxMjQsIDQ5LCAyOCwgMTYsIDIzNiwgMTMsIDQ5LCAyOCwgMTYsIDIzNiwgMTEsIDQ5LCAyOCwgMTYsIDI0MywgMjM2LCAyNTQsIAotICAgIDIyLCAyNDgsIDI3LCAyNDAsIDEwNiwgNDksIDI4LCAxNiwgMjQzLCAyMzYsIDI0NywgMjQ0LCAxOTAsIDQ5LCAyOCwgMTYsIAotICAgIDI0MywgMjM2LCAyNDcsIDI0NCwgMjI5LCAyMDMsIDQ5LCAyOCwgMTYsIDI0MywgMjM2LCAyMjksIDE5OCwgMjQwLCAxMDcsIAotICAgIDQ5LCAyOCwgMTYsIDI0MywgMjM2LCAyNDcsIDI0NCwgMjQ4LCAzLCA0OSwgMjgsIDE2LCAyNDMsIDIzNiwgMjE5LCAxMDIsIAotICAgIDI0NywgMjQzLCAyNDgsIDMsIDQ5LCAyOCwgMTYsIDI0MywgMjM2LCAyNDcsIDI0NCwgMjM0LCAxODIsIDQ5LCAyOCwgMTYsIAotICAgIDI0MywgMjM2LCAyNDcsIDI0NCwgMjEwLCAyMywgNDksIDI4LCAxNiwgMjQzLCAyMzYsIDI0NywgMjQ0LCAyMjgsIDIzNCwgCi0gICAgMjM0LCAxOTYsIDQ5LCAyOCwgMTYsIDI0MywgMjM2LCAyNDcsIDI0NCwgMjI4LCAyMzQsIDI1NCwgOTYsIDQ5LCAyOCwgMTYsIAotICAgIDI0MywgMjM2LCAyMzEsIDE5MSwgMjUwLCA3MywgMjQ3LCAyMzAsIDQ5LCAyOCwgMTYsIDI0MywgMjM2LCAyMzEsIDE5MSwgCi0gICAgMjUwLCA3MywgMjMwLCAxNDMsIDQ5LCAyOCwgMTYsIDI0NCwgMTIyLCAyMTksIDEwMiwgMjUwLCA3MywgMjE0LCA5LCA0OSwgCi0gICAgMjgsIDE2LCAyNDMsIDIzNiwgMjE5LCAxMDIsIDI1MCwgNzMsIDIxNywgMTc5LCA0OSwgMjgsIDE2LCAyNDMsIDIzNiwgMjI5LCAKLSAgICA5NywgNDksIDI4LCAxNiwgMjUwLCA3NCwgMjA5LCAyNDksIDQ5LCAyOCwgMTYsIDI1MCwgNzQsIDIzNCwgMzYsIDQ5LCAyOCwgCi0gICAgMTYsIDI1MCwgNzQsIDIxOSwgOSwgNDksIDI4LCAxNiwgMjQzLCAyMzYsIDI0MCwgMTU0LCAyMTEsIDEwLCAyMTYsIDIyOSwgCi0gICAgNDksIDI4LCAxNiwgMjQzLCAyMzYsIDI0NSwgMTQ5LCAyNTQsIDg2LCA0OSwgMjgsIDE2LCAyMTEsIDEwLCAyMTUsIDIwNiwgCi0gICAgNDksIDI4LCAxNiwgMjQ3LCAyMzgsIDIxNSwgMjA2LCA0OSwgMjgsIDE2LCAyNDcsIDIzOCwgMjE2LCAyMjksIDQ5LCAyOCwgCi0gICAgMTYsIDI0NywgMjM4LCAyNTQsIDY1LCAyNDYsIDQyLCAyNDcsIDEzOSwgNDksIDI4LCAxNiwgMjQ3LCAyMzgsIDIzMCwgMTQxLCAKLSAgICAyMTYsIDIzMywgMjQ3LCAxMzksIDQ5LCAyOCwgMTYsIDI0NywgMjM4LCAyNDcsIDIyMiwgMjQ1LCAzNiwgMjQ3LCAxMzksIAotICAgIDQ5LCAyOCwgMTYsIDI0NywgMjM4LCAyMTUsIDIxNCwgMjI2LCAyMTEsIDI0NywgMTM5LCA0OSwgMjgsIDE2LCAyMTEsIDEwLCAKLSAgICAyNTQsIDY1LCAyNDYsIDQyLCAyNDcsIDEzOSwgNDksIDI4LCAxNiwgMjExLCAxMCwgMjMwLCAxNDEsIDIxNiwgMjMzLCAyNDcsIAotICAgIDEzOSwgNDksIDI4LCAxNiwgMjExLCAxMCwgMjQ3LCAyMjIsIDI0NSwgMzYsIDI0NywgMTM5LCA0OSwgMjgsIDE2LCAyMTEsIAotICAgIDEwLCAyMTUsIDIxNCwgMjI2LCAyMTEsIDI0NywgMTM5LCA0OSwgMjgsIDE2LCAyNDMsIDQ5LCAyNDcsIDIzNywgNDksIDI4LCAKLSAgICAxNiwgMjQzLCA0OSwgMjExLCA5LCA0OSwgMjgsIDE2LCAyNDcsIDI0NSwgMjU0LCA2NSwgMjMwLCAxOTksIDQ5LCAyOCwgMTYsIAotICAgIDI0NywgMjQ1LCAyNTQsIDY1LCAyMzEsIDczLCA0OSwgMjgsIDE2LCAyNDcsIDI0NSwgMjQ3LCAyMDEsIDQ5LCAyOCwgMTYsIAotICAgIDI0NywgMjQ1LCAyMTYsIDE4MiwgNDksIDI4LCAxNiwgMjE5LCAxNjMsIDIxNiwgMTgyLCA0OSwgMjgsIDE2LCAyMTksIDE2MywgCi0gICAgMjE2LCAxODMsIDI0NywgMTg2LCA0OSwgMjgsIDE2LCAyMTksIDE2MywgMjE2LCAxODMsIDIxNSwgMjA3LCA0OSwgMjgsIDE2LCAKLSAgICAyMTksIDE2MywgMjE2LCAxODMsIDIxNiwgMjIyLCA0OSwgMjgsIDE2LCAyMTksIDE2MywgMjUzLCAyNDQsIDQ5LCAyOCwgMTYsIAotICAgIDIxOSwgMTYzLCAyNTMsIDI0NSwgMjQ3LCAxODYsIDQ5LCAyOCwgMTYsIDIxOSwgMTYzLCAyNTMsIDI0NSwgMjE1LCAyMDcsIAotICAgIDQ5LCAyOCwgMTYsIDIxOSwgMTYzLCAyNTMsIDI0NSwgMjE2LCAyMjIsIDQ5LCAyOCwgMTYsIDI0NywgMjIzLCAyNDMsIDMwLCAKLSAgICA0OSwgMjgsIDE2LCAyNDcsIDIyOSwgMjI2LCAxMzQsIDQ5LCAyOCwgMTYsIDIxOCwgMTM3LCA0OSwgMjgsIDE2LCAyNTQsIDcsIAotICAgIDE5MCwgNDksIDI4LCAxNiwgMjU0LCA3LCAyMTMsIDEyNCwgNDksIDI4LCAxNiwgMjU0LCA3LCAyNDMsIDEzNSwgNDksIDI4LCAKLSAgICAxNiwgMjU0LCA3LCAyNDgsIDMsIDQ5LCAyOCwgMTYsIDI1NCwgNywgMjM0LCAxODIsIDQ5LCAyOCwgMTYsIDI1NCwgNywgCi0gICAgMjEwLCAyMywgNDksIDI4LCAxNiwgMjU0LCA3LCAyMjgsIDIzMywgNDksIDI4LCAxNiwgMjM0LCAxNjIsIDIyOSwgOTYsIAotICAgIDIzMSwgNDQsIDQ5LCAyOCwgMTYsIDIzNCwgMTYzLCAyMjksIDk2LCAyMzEsIDQ0LCA0OSwgMjgsIDE2LCAyMzQsIDE2MiwgCi0gICAgMjI5LCA5NiwgMjM0LCAxOTYsIDQ5LCAyOCwgMTYsIDIzNCwgMTYzLCAyMjksIDk2LCAyMzQsIDE5NiwgNDksIDI4LCAxNiwgCi0gICAgMjM0LCAzOCwgMjM0LCAxOTYsIDQ5LCAyOCwgMTYsIDI0MiwgMTU5LCAyMjksIDk2LCAyMzQsIDE5NiwgMjgsIDE2LCAyMTksIAotICAgIDE1NSwgMjUyLCAxMzUsIDI4LCAxNiwgNTIsIDI1MiwgMTM1LCAyOCwgMTYsIDQwLCAyNTIsIDEzNSwgMjgsIDE2LCAyMjMsIAotICAgIDUwLCA0MCwgMjUyLCAxMzUsIDI4LCAxNiwgMjQ4LCAxNTUsIDI1MiwgMTM1LCAyOCwgMTYsIDIxOSwgMjUxLCAyNTIsIDEzNSwgCi0gICAgMjgsIDE2LCA0MywgMjIzLCA3NywgNTAsIDI4LCAxNiwgNDQsIDIyMywgNzcsIDUwLCAyOCwgMTYsIDIyMywgNzcsIDI0NywgCi0gICAgMTE4LCAyOCwgMTYsIDI0OCwgMTk2LCAyMjEsIDE2MywgMjgsIDE2LCAyNDgsIDIyMiwgMjUwLCAyNDksIDI4LCAxNiwgMjIxLCAKLSAgICAxNjMsIDI4LCAxNiwgMjQ5LCAyMzQsIDI4LCAxNiwgMjIzLCA3NSwgMjQ0LCAxMTEsIDI4LCAxNiwgMjIzLCA3NSwgMjQ0LCAKLSAgICAxMTAsIDI4LCAxNiwgMjIzLCA3NSwgMjQ0LCAxMDksIDI4LCAxNiwgMjQ0LCAxMzEsIDI4LCAxNiwgMjQ0LCAxMzIsIDUxLCAKLSAgICAyOCwgMTYsIDI1MSwgMTQ4LCA3OCwgMjgsIDE2LCAyNTEsIDI0LCAyOCwgMTYsIDI1MSwgMTU5LCAyOCwgMTYsIDEyNywgMjgsIAotICAgIDE2LCAyMjYsIDE5MywgMjE4LCAxNjMsIDI4LCAxNiwgMjE1LCA1NywgMjE4LCAxNjMsIDI4LCAxNiwgMjE2LCAxNDIsIDIxOCwgCi0gICAgMTYzLCAyOCwgMTYsIDI0NCwgMTAsIDIxOCwgMTYzLCAyOCwgMTYsIDI0NCwgODAsIDIxOCwgMTYzLCAyOCwgMTYsIDIxOSwgCi0gICAgMTI0LCAyMTgsIDE2MywgMjgsIDE2LCAyMTksIDEyMiwgMjQzLCAyNTAsIDI4LCAxNiwgMjQ0LCA4LCAyNDMsIDI1MCwgMjgsIAotICAgIDE2LCAyNDMsIDIwMywgMjUwLCAxNCwgMjgsIDE2LCAyNDMsIDIwMywgMjUwLCAxNSwgMjI2LCAxMzYsIDI1NCwgMTQyLCAyOCwgCi0gICAgMTYsIDI0MywgMjAzLCAyNTAsIDE1LCAyMjYsIDEzNiwgMjUyLCAxMjIsIDI4LCAxNiwgMjUxLCA2NywgMjUwLCAxNCwgMjgsIAotICAgIDE2LCAyNDUsIDcsIDI1MCwgMTQsIDI4LCAxNiwgMjQ1LCA3LCAyNTAsIDE1LCAyMjYsIDEzNiwgMjU0LCAxNDIsIDI4LCAxNiwgCi0gICAgMjQ1LCA3LCAyNTAsIDE1LCAyMjYsIDEzNiwgMjUyLCAxMjIsIDI4LCAxNiwgMjQ2LCA4MywgMjUwLCAxMywgMjgsIDE2LCAKLSAgICAyNDYsIDgzLCAyNTAsIDEyLCAyOCwgMTYsIDIzMCwgODUsIDIzMSwgOTAsIDIyMywgNjEsIDI4LCAxNiwgNTIsIDIyMCwgNzUsIAotICAgIDI4LCAxNiwgNTIsIDI0NCwgNjUsIDI4LCAxNiwgMjQ0LCA2NiwgMjE0LCAxNjMsIDI4LCAxNiwgMjQ0LCA2NiwgMjQ2LCAKLSAgICAxMDYsIDI4LCAxNiwgMjI5LCAxODgsIDIxNCwgMTYzLCAyOCwgMTYsIDIyOSwgMTg4LCAyNDYsIDEwNiwgMjgsIDE2LCAyMjAsIAotICAgIDc2LCAyMTQsIDE2MywgMjgsIDE2LCAyMjAsIDc2LCAyNDYsIDEwNiwgMjgsIDE2LCAyMjQsIDIyLCAxMzgsIDIyMCwgNzUsIAotICAgIDI4LCAxNiwgMjI0LCAyMiwgMTM4LCAyNDQsIDY1LCAyOCwgMTYsIDI0OSwgMjE2LCAyMTYsIDg3LCAyOCwgMTYsIDI0OSwgCi0gICAgODUsIDIxNiwgODcsIDI4LCAxNiwgMjI2LCAxMzYsIDI1NCwgMTQyLCAyOCwgMTYsIDIyNiwgMTM2LCAyNTIsIDEyMiwgMjgsIAotICAgIDE2LCAyMjQsIDQsIDI1NCwgMTQyLCAyOCwgMTYsIDIyNCwgNCwgMjUyLCAxMjIsIDI4LCAxNiwgMjMwLCA4OCwgMjIzLCA2MSwgCi0gICAgMjgsIDE2LCAyMTEsIDI1MSwgMjIzLCA2MSwgMjgsIDE2LCAxNjMsIDIyMywgNjEsIDI4LCAxNiwgMjI0LCAyMiwgMjIzLCAKLSAgICA2MSwgMjgsIDE2LCAyNDUsIDE4OSwgMjIzLCA2MSwgMjgsIDE2LCAyMTksIDExOCwgMjIzLCA2MSwgMjgsIDE2LCAyMTYsIAotICAgIDE2MCwgMjIzLCA2MSwgMjgsIDE2LCAyMTksIDExMCwgMjIzLCA2MSwgMjgsIDE2LCAxMjMsIDI0MCwgMjExLCAyMTUsIDcxLCAKLSAgICAyMjMsIDYxLCAyOCwgMTYsIDIxMSwgMTc5LCAyMjgsIDQzLCAyOCwgMTYsIDk2LCAyMjgsIDQzLCAyOCwgMTYsIDI1MCwgMzYsIAotICAgIDIxMSwgMTc5LCAyMjgsIDQzLCAyOCwgMTYsIDQyLCAyMjgsIDQ0LCAyMTEsIDI1MywgMjgsIDE2LCA0MiwgMjI4LCA0NCwgCi0gICAgMjUxLCAyMjEsIDI4LCAxNiwgMjE1LCAyMjYsIDIyOCwgNDQsIDEyMCwgMjExLCAyNTMsIDI4LCAxNiwgMjE1LCAyMjYsIAotICAgIDIyOCwgNDQsIDEyMCwgMjUxLCAyMjEsIDI4LCAxNiwgMjE1LCAyMjYsIDIyOCwgNDQsIDQzLCAyMTEsIDI1MywgMjgsIDE2LCAKLSAgICAyMTUsIDIyNiwgMjI4LCA0NCwgNDMsIDI1MSwgMjIxLCAyOCwgMTYsIDIxNSwgMjI2LCAyMjgsIDQ0LCA0NCwgMjExLCAyNTMsIAotICAgIDI4LCAxNiwgMjE1LCAyMjYsIDIyOCwgNDQsIDQ0LCAyNTEsIDIyMSwgMjgsIDE2LCAyMTUsIDIyNiwgMjI4LCA0NCwgMTI0LCAKLSAgICAyMTEsIDI1MywgMjgsIDE2LCAyMTUsIDIyNiwgMjI4LCA0NCwgMTI0LCAyNTEsIDIyMSwgMjgsIDE2LCAyMTUsIDIyNiwgCi0gICAgMjI4LCA0NCwgMTIwLCA0NCwgMjExLCAyNTMsIDI4LCAxNiwgMjE1LCAyMjYsIDIyOCwgNDQsIDEyMCwgNDQsIDI1MSwgMjIxLCAKLSAgICAyOCwgMTYsIDIzMCwgMTI5LCAyMjgsIDQ0LCAyMTEsIDI1MywgMjgsIDE2LCAyMzAsIDEyOSwgMjI4LCA0NCwgMjUxLCAyMjEsIAotICAgIDI4LCAxNiwgMjE1LCAyMjMsIDIyOCwgNDQsIDEyNCwgMjExLCAyNTMsIDI4LCAxNiwgMjE1LCAyMjMsIDIyOCwgNDQsIDEyNCwgCi0gICAgMjUxLCAyMjEsIDI4LCAxNiwgMjI2LCA0LCAyMjgsIDQzLCAyOCwgMTYsIDIxMywgMTMyLCAyMjgsIDQzLCAyOCwgMTYsIAotICAgIDIyOCwgNDQsIDI1MSwgMjIxLCAyOCwgMTYsIDIyNywgMjAzLCAyMjgsIDQzLCAyOCwgMTYsIDI0OSwgMjQxLCAyMjgsIDQ0LCAKLSAgICAyMTEsIDI1MywgMjgsIDE2LCAyNDksIDI0MSwgMjI4LCA0NCwgMjUxLCAyMjEsIDI4LCAxNiwgMjUxLCAxNDYsIDI4LCAxNiwgCi0gICAgMjExLCAyNTEsIDIyOCwgNDcsIDI4LCAxNiwgMTYzLCAyMjgsIDQ3LCAyOCwgMTYsIDIyNCwgMjIsIDIyOCwgNDcsIDI4LCAKLSAgICAxNiwgMjQ1LCAxODksIDIyOCwgNDcsIDI4LCAxNiwgMjE5LCAxMTgsIDIyOCwgNDcsIDI4LCAxNiwgMjE2LCAxNjAsIDIyOCwgCi0gICAgNDcsIDI4LCAxNiwgMjE5LCAxMTAsIDIyOCwgNDcsIDI4LCAxNiwgMTIzLCAyNDAsIDIxMSwgMjE1LCA3MSwgMjI4LCA0NywgCi0gICAgMjgsIDE2LCAzOCwgMjE4LCAxMzksIDI4LCAxNiwgMzgsIDIxOCwgMjQwLCAyMTgsIDEzOSwgMjgsIDE2LCAzOCwgMjE1LCAKLSAgICAyMzQsIDI4LCAxNiwgMzgsIDIxNSwgMjMzLCAyOCwgMTYsIDM4LCAyMTUsIDIzMiwgMjgsIDE2LCAyNDQsIDEwMSwgMjE1LCAKLSAgICAyMzQsIDI4LCAxNiwgMjQ0LCAxMDEsIDIxNSwgMjMzLCAyOCwgMTYsIDI0NCwgMTAxLCAyMTUsIDIzMiwgMjgsIDE2LCAzOCwgCi0gICAgMjUzLCAxODksIDI0NywgMTIwLCAyOCwgMTYsIDM4LCAyNDQsIDcyLCAyOCwgMTYsIDM4LCAyNDQsIDcxLCAyOCwgMTYsIDM4LCAKLSAgICAyNDQsIDcwLCAyOCwgMTYsIDM4LCAyNDQsIDY5LCAyOCwgMTYsIDM4LCAyNDQsIDY4LCAyOCwgMTYsIDI1MiwgNTgsIDI1MiwgCi0gICAgNzQsIDI4LCAxNiwgMjQ1LCAxNDMsIDI1MiwgNzQsIDI4LCAxNiwgMjUyLCA1OCwgMjE2LCAxMTEsIDI4LCAxNiwgMjQ1LCAKLSAgICAxNDMsIDIxNiwgMTExLCAyOCwgMTYsIDI1MiwgNTgsIDIxOSwgODAsIDI4LCAxNiwgMjQ1LCAxNDMsIDIxOSwgODAsIDI4LCAKLSAgICAxNiwgMjUyLCA1OCwgMjI1LCAxMTUsIDI4LCAxNiwgMjQ1LCAxNDMsIDIyNSwgMTE1LCAyOCwgMTYsIDM4LCAyNTUsIDE0LCAKLSAgICAyOCwgMTYsIDM4LCAyMTgsIDE2NSwgMjgsIDE2LCAzOCwgMjE2LCAyMzgsIDI4LCAxNiwgMzgsIDIxOCwgMTY2LCAyOCwgMTYsIAotICAgIDM4LCAyMzEsIDE2MiwgMjgsIDE2LCAzOCwgMjMxLCAxNjEsIDI4LCAxNiwgMzgsIDI1NSwgMTMsIDI4LCAxNiwgMzgsIDIzMiwgCi0gICAgMTEyLCAyOCwgMTYsIDI1MywgMjU0LCAyMTQsIDE2MywgMjgsIDE2LCAyNTMsIDI1NCwgMjQ2LCAxMDYsIDI4LCAxNiwgMzgsIAotICAgIDI0NywgMTM1LCAyOCwgMTYsIDM4LCAyMjIsIDIzMSwgMjgsIDE2LCAzOCwgMjQ0LCA1OCwgMjgsIDE2LCAzOCwgMjE5LCA3NiwgCi0gICAgMjgsIDE2LCAzOCwgMjUyLCAzOCwgMjgsIDE2LCAzOCwgNTIsIDIxNiwgMTksIDI4LCAxNiwgMzgsIDIxNSwgMjExLCAyMTYsIAotICAgIDE5LCAyOCwgMTYsIDIyMiwgMjM1LCAyOCwgMTYsIDIxOCwgNzUsIDI4LCAxNiwgMjEwLCAxNTksIDI4LCAxNiwgMjI1LCAKLSAgICAxMDcsIDI4LCAxNiwgMjMxLCAyNSwgMjgsIDE2LCAyNDQsIDE3LCAyOCwgMTYsIDI0OSwgMTM4LCAyOCwgMTYsIDI0OCwgNzgsIAotICAgIDI4LCAxNiwgMjQyLCAxNTAsIDIyOCwgNDgsIDIxOSwgOTUsIDI4LCAxNiwgMjQyLCAxNTAsIDIyOCwgNDgsIDIyOCwgNzUsIAotICAgIDIxOSwgOTUsIDI4LCAxNiwgMjE2LCAwLCAyOCwgMTYsIDIxNSwgOTUsIDI4LCAxNiwgMjM1LCAxOTMsIDIxNSwgOTUsIDI4LCAKLSAgICAxNiwgMjE1LCA5NiwgMjE5LCA5NSwgMjgsIDE2LCAyMTUsIDk2LCAyMTQsIDE2MywgMjgsIDE2LCAyMjYsIDE0OCwgMjE4LCAKLSAgICAxMDIsIDI4LCAxNiwgMjI2LCAxNDgsIDIxOCwgOTksIDI4LCAxNiwgMjI2LCAxNDgsIDIxOCwgOTgsIDI4LCAxNiwgMjI2LCAKLSAgICAxNDgsIDIxOCwgOTcsIDI4LCAxNiwgMjI2LCAxNDgsIDIxOCwgOTYsIDI4LCAxNiwgMjI2LCAxNDgsIDIxOCwgOTUsIDI4LCAKLSAgICAxNiwgMjI2LCAxNDgsIDIxOCwgOTQsIDI4LCAxNiwgMjI2LCAxNDgsIDIxOCwgOTMsIDI4LCAxNiwgMjI2LCAxNDgsIDIxOCwgCi0gICAgOTIsIDI4LCAxNiwgMjI2LCAxNDgsIDIxOCwgMTAxLCAyOCwgMTYsIDIyNiwgMTQ4LCAyMTgsIDEwMCwgMjgsIDE2LCAyNDEsIAotICAgIDI0NSwgMjgsIDE2LCAyMjksIDEwNSwgMjgsIDE2LCAyNDUsIDE0MywgNjQsIDIxOCwgMTMzLCAyOCwgMTYsIDI0OCwgNzEsIAotICAgIDIxOSwgOTUsIDI4LCAxNiwgMzgsIDEyNCwgMjUxLCAxNjksIDI4LCAxNiwgMzgsIDEyMCwgMjUxLCAxNjksIDI4LCAxNiwgCi0gICAgMzgsIDI0MiwgMCwgMjgsIDE2LCAzOCwgMjE5LCA2NywgMjI1LCA0MywgMjgsIDE2LCAyMjUsIDIxNiwgNzgsIDI4LCAxNiwgCi0gICAgMjI1LCAyMTYsIDEyMCwgNzgsIDI4LCAxNiwgMTYzLCAyMjUsIDIxNiwgNzgsIDI4LCAxNiwgMjQyLCAxODIsIDIxNCwgMTYzLCAKLSAgICAyOCwgMTYsIDI0MiwgMTgyLCAyNDYsIDEwNiwgMjgsIDE2LCAyLCAyNDQsIDEwMCwgMjgsIDE2LCAyNDgsIDE4MCwgMjgsIAotICAgIDE2LCAyNDgsIDE4MSwgMjU0LCAxNTQsIDI4LCAxNiwgMjMxLCAxMzMsIDI4LCAxNiwgMjMyLCAxMjksIDI4LCAxNiwgMjUxLCAKLSAgICAxNDMsIDI4LCAxNiwgMjIwLCAxNTQsIDIxMSwgMjUzLCAyOCwgMTYsIDIyMCwgMTU0LCAyNTEsIDIyMSwgMjgsIDE2LCAyMzAsIAotICAgIDE4NCwgMjgsIDE2LCAyMzAsIDE4NSwgMjUxLCAyMjEsIDI4LCAxNiwgMjIwLCAxNDgsIDIxMSwgMjUzLCAyOCwgMTYsIDIyMCwgCi0gICAgMTQ4LCAyNTEsIDIyMSwgMjgsIDE2LCAyNDMsIDIyMCwgMjExLCAyNTMsIDI4LCAxNiwgMjQzLCAyMjAsIDI1MSwgMjIxLCAKLSAgICAyOCwgMTYsIDIzMiwgMTMwLCAyMjUsIDE4MCwgMjIzLCA2MSwgMjgsIDE2LCAyMzIsIDEzMCwgMjM2LCA0LCAyMjMsIDYxLCAKLSAgICAyOCwgMTYsIDI1MSwgMTQ0LCAyMjMsIDYxLCAyOCwgMTYsIDIyMCwgMTU0LCAyMjMsIDYxLCAyOCwgMTYsIDIzMCwgMTg1LCAKLSAgICAyMjMsIDYxLCAyOCwgMTYsIDIyMCwgMTQ4LCAyMjMsIDYxLCAyOCwgMTYsIDIxNiwgMjQ5LCAyMjUsIDE3OCwgMjQ5LCAxMDcsIAotICAgIDIyNCwgMTc0LCAyMjUsIDE3OSwgMjgsIDE2LCAyMTYsIDI0OSwgMjI1LCAxNzgsIDI0OSwgMTA3LCAyMjQsIDE3NCwgMjM2LCAKLSAgICAzLCAyOCwgMTYsIDIxNiwgMjQ5LCAyMjUsIDE3OCwgMjQ5LCAxMDcsIDIyNCwgMTc0LCAyMjUsIDE4MCwgMjQ3LCAyMTEsIAotICAgIDI4LCAxNiwgMjE2LCAyNDksIDIzNiwgMiwgMjQ5LCAxMDcsIDIyNCwgMTc0LCAyMjUsIDE3OSwgMjgsIDE2LCAyMTYsIDI0OSwgCi0gICAgMjM2LCAyLCAyNDksIDEwNywgMjI0LCAxNzQsIDIzNiwgMywgMjgsIDE2LCAyMTYsIDI0OSwgMjM2LCAyLCAyNDksIDEwNywgCi0gICAgMjI0LCAxNzQsIDIzNiwgNCwgMjQ3LCAyMTEsIDI4LCAxNiwgMjE2LCAyNDksIDIzNiwgMiwgMjQ5LCAxMDcsIDIyNCwgMTc0LCAKLSAgICAyMzYsIDQsIDI0NywgMjEwLCAyOCwgMTYsIDIxNiwgMjQ5LCAyMzYsIDIsIDI0OSwgMTA3LCAyMjQsIDE3NCwgMjM2LCA0LCAKLSAgICAyNDcsIDIwOSwgMjgsIDE2LCAyNDksIDEzMywgMjgsIDE2LCAyNDIsIDEyNiwgMjUxLCA2NywgMjUwLCAxNCwgMjgsIDE2LCAKLSAgICAyNDIsIDEyNiwgMjQ1LCA3LCAyNTAsIDE0LCAyOCwgMTYsIDQyLCAyNTMsIDE1OCwgMjgsIDE2LCAyMTMsIDE1MSwgMjgsIAotICAgIDE2LCAyMjUsIDE0LCAyOCwgMTYsIDI1MCwgNSwgMjgsIDE2LCAyMjEsIDIwMywgMjgsIDE2LCAyNTAsIDksIDI4LCAxNiwgCi0gICAgMjE2LCA3LCAyOCwgMTYsIDIyNCwgMjQyLCAyOCwgMTYsIDIyNCwgMjQzLCAyNDQsIDYwLCAyOCwgMTYsIDIyMSwgMjA0LCAKLSAgICAyNDQsIDYwLCAyOCwgMTYsIDIxNiwgOCwgMjIzLCA1OCwgMjgsIDE2LCAyMjUsIDE2MywgMjE4LCA2NiwgMjYsIDIxMywgCi0gICAgMTM3LCAxODcsIDIxNywgMjI5LCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAyMTgsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIAotICAgIDIwOCwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgMjAxLCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAxOTMsIDI2LCAyMTMsIAotICAgIDEzNywgMTg3LCAyMTcsIDE4NywgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgMTg2LCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAKLSAgICAxODUsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIDE4NCwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgMjI4LCAyNiwgMjEzLCAKLSAgICAxMzcsIDE4NywgMjE3LCAyMjcsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIDIyNiwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgCi0gICAgMjI1LCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAyMjQsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIDIyMywgMjYsIDIxMywgCi0gICAgMTM3LCAxODcsIDIxNywgMjIyLCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAyMjEsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIAotICAgIDIyMCwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgMjE5LCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAyMTcsIDI2LCAyMTMsIAotICAgIDEzNywgMTg3LCAyMTcsIDIxNiwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgMjE1LCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAKLSAgICAyMTQsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIDIxMywgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgMTkyLCAyNiwgMjEzLCAKLSAgICAxMzcsIDE4NywgMjE3LCAxOTEsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIDE5MCwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgCi0gICAgMTg5LCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAxODgsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDIyOSwgMjYsIDIzNSwgCi0gICAgMjE0LCAxODcsIDIxNywgMjE4LCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAyMDEsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIAotICAgIDE5MywgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMTg2LCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAxODUsIDI2LCAyMzUsIAotICAgIDIxNCwgMTg3LCAyMTcsIDIyNywgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMjI2LCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAKLSAgICAyMjUsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDIyNCwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMjIxLCAyNiwgMjM1LCAKLSAgICAyMTQsIDE4NywgMjE3LCAyMjAsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDIxOSwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgCi0gICAgMjE0LCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAyMTMsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDIxMiwgMjYsIDIzNSwgCi0gICAgMjE0LCAxODcsIDIxNywgMjExLCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAyMTAsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIAotICAgIDIwOSwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMjA3LCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAyMDYsIDI2LCAyMzUsIAotICAgIDIxNCwgMTg3LCAyMTcsIDIwNSwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMjA0LCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAKLSAgICAyMDMsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDIwMiwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMjAwLCAyNiwgMjM1LCAKLSAgICAyMTQsIDE4NywgMjE3LCAxOTksIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDE5OCwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgCi0gICAgMTk3LCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAxOTYsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDE5NSwgMjYsIDIzNSwgCi0gICAgMjE0LCAxODcsIDIxNywgMTk0LCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAxOTIsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIAotICAgIDE5MSwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMTkwLCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAxODksIDI2LCAyMzUsIAotICAgIDIxNCwgMTg3LCAyMTcsIDE4OCwgMzgsIDI2LCAyOCwgMjE1LCAyMDgsIDM4LCAyNiwgMjgsIDIxNiwgMjIzLCAzOCwgMjYsIAotICAgIDI4LCAyMjUsIDE4OCwgMjYsIDI4LCAyMzMsIDMxLCAyMzAsIDE0MiwgMzEsIDI0NSwgMjIzLCAyNDcsIDIyNCwgMzEsIDI0MSwgCi0gICAgMjIyLCAyNDUsIDIyMywgMjQ3LCAyMjQsIDMxLCAyNDAsIDIxNCwgMjQ1LCAyMjMsIDI0NywgMjI0LCAzMSwgMjQ1LCAyMjIsIAotICAgIDI0MSwgMjIzLCAyNDcsIDIyNCwgMzEsIDI0NSwgMjIyLCAyNDAsIDIxMywgMjQ3LCAyMjQsIDMxLCAyNDUsIDIyMywgMTgwLCAKLSAgICAzMSwgMjUwLCAxNzQsIDE4MCwgMzEsIDI0MywgMjI5LCAyNTAsIDM1LCAxODAsIDMxLCAyMzAsIDE3NywgMTgwLCAzMSwgCi0gICAgMjUyLCAxMzAsIDE4MCwgMzEsIDIzNCwgMTc5LCAyMTksIDc5LCAxODAsIDMxLCAyNDksIDE3OSwgMTgwLCAzMSwgMjUzLCAKLSAgICAyMzMsIDE4MCwgMzEsIDIyNiwgMTYzLCAxODAsIDMxLCAyNTEsIDE1MywgMjI2LCAxMzAsIDE4MCwgMzEsIDI0OCwgNzMsIAotICAgIDE3NywgMjQ3LCAxNzksIDE4MCwgMzEsIDI0NywgMTc2LCAxODAsIDMxLCAyMTAsIDIyMiwgMTgwLCAzMSwgMjM1LCAyNDcsIAotICAgIDE4MCwgMzEsIDIyNSwgMTk3LCAxODAsIDMxLCAyMjMsIDEyNywgMTgwLCAzMSwgMjQ5LCAxODksIDE4MCwgMzEsIDI0MSwgCi0gICAgNjAsIDI1MiwgMTg0LCAxODAsIDMxLCAyMTIsIDU5LCAxODAsIDMxLCAyNDQsIDM5LCAxODAsIDMxLCAyNTQsIDI0NiwgMTgwLCAKLSAgICAzMSwgMjIzLCA4OSwgMTgwLCAzMSwgMjIzLCA2NSwgMTgwLCAzMSwgMjQ1LCAyMjEsIDE4MCwgMzEsIDIzNSwgNTMsIDE4MCwgCi0gICAgMzEsIDI0OSwgMTg0LCAxODAsIDMxLCAyNDUsIDE0MiwgMTgwLCAzMSwgMjQ2LCA1MiwgMTgwLCAzMSwgMjUwLCAxNDUsIAotICAgIDE4MCwgMzEsIDI0OCwgODIsIDE4MCwgMzEsIDIzLCAyMjMsIDY0LCAxODAsIDMxLCAyMjYsIDgxLCAxODAsIDMxLCAyMzMsIAotICAgIDM0LCAxODAsIDMxLCAyNDksIDI1NCwgMTgwLCAzMSwgMjM0LCA3NywgMTgwLCAzMSwgMjQzLCA4NiwgMTgwLCAzMSwgMjE4LCAKLSAgICAxMTIsIDE4MCwgMzEsIDIyNCwgMTMwLCAxODAsIDMxLCAyNDMsIDIyOCwgMTgwLCAzMSwgMjIzLCA2NiwgMTgwLCAzMSwgCi0gICAgMjMzLCA3MSwgMTc3LCAyMzAsIDE1NywgMTgwLCAzMSwgMjIzLCA2MiwgMTgwLCAzMSwgMjQyLCAxNjgsIDIxNiwgNDIsIAotICAgIDIzMSwgNzYsIDE4MCwgMzEsIDI0NSwgMTQ0LCAxODAsIDMxLCAyMTgsIDEyNCwgMTgwLCAzMSwgMjQyLCAxMjgsIDE4MCwgCi0gICAgMzEsIDI0NSwgMTM2LCAxODAsIDMxLCAyMjUsIDIzNSwgMTgwLCAzMSwgMjIyLCAyMjUsIDE4MCwgMzEsIDI0NCwgNTksIAotICAgIDE4MCwgMzEsIDIxNCwgOCwgMTc3LCAyMTIsIDQ0LCAxODAsIDMxLCAyNDksIDE5MywgMTgwLCAzMSwgMjMxLCA4OSwgMTgwLCAKLSAgICAzMSwgMjQ1LCA2MSwgMTgwLCAzMSwgMjE0LCAxNzIsIDE4MCwgMzEsIDI0NywgMjEyLCAxODAsIDMxLCAyNTAsIDAsIDIzMCwgCi0gICAgMTEwLCAxODAsIDMxLCAyNDIsIDEwNiwgMTgwLCAzMSwgMjQzLCA4NywgMjM1LCAyNTUsIDE4MCwgMzEsIDIzMSwgMTQxLCAKLSAgICAxODAsIDMxLCAyNTUsIDEwLCAxODAsIDMxLCAyNDUsIDE1NywgMTgwLCAzMSwgMjQ2LCAxMDksIDE4MCwgMzEsIDIxMiwgNDIsIAotICAgIDE4MCwgMzEsIDIxOSwgMTUwLCAxODAsIDMxLCAyMzUsIDIyMiwgMTgwLCAzMSwgMjQ4LCA0MiwgMTgwLCAzMSwgMjQ4LCAKLSAgICAxNjAsIDE4MCwgMzEsIDI0NywgMjA4LCAxODAsIDMxLCAyNDUsIDI5LCAxODAsIDMxLCAyMjAsIDExNSwgMTgwLCAzMSwgCi0gICAgMjE4LCAxMjgsIDE4MCwgMzEsIDI0MiwgMiwgMTgwLCAzMSwgMjQ5LCAyMTIsIDE4MCwgMzEsIDI0OSwgMjUxLCAxODAsIDMxLCAKLSAgICAyNDQsIDE3NywgMTgwLCAzMSwgMjU0LCAyMTIsIDE4MCwgMzEsIDI0OSwgMjExLCAxODAsIDMxLCAyMjYsIDE5NywgMjE2LCAKLSAgICAxOTYsIDIxMywgMjQyLCAxODAsIDMxLCAyNDcsIDIzMiwgMTgwLCAzMSwgMjMzLCAxMjQsIDE4MCwgMzEsIDI0NCwgMTMsIAotICAgIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE0LCAxNzQsIDIxLCAxMTAsIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE0LCAxNzQsIDIxLCAKLSAgICAxMDUsIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE0LCAxNzQsIDIxLCAxNTgsIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE0LCAxNzQsIAotICAgIDIxLCAxNjEsIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE0LCAxNzQsIDIxLCAxODksIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE0LCAKLSAgICAxNzQsIDIxLCAxOTQsIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE0LCAxNzQsIDIxLCAxOTgsIDI0OSwgMTQ5LCAyMjIsIDIwMiwgCi0gICAgMjE0LCAxNzQsIDIxLCAxOTUsIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE0LCAxNzQsIDIxLCAyMDAsIDI0OSwgMTQ5LCAyMjIsIAotICAgIDIwMiwgMjE2LCAyNDMsIDIxLCAxMTAsIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE2LCAyNDMsIDIxLCAxMDUsIDI0OSwgMTQ5LCAKLSAgICAyMjIsIDIwMiwgMjE2LCAyNDMsIDIxLCAxNTgsIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE2LCAyNDMsIDIxLCAxNjEsIDI0OSwgCi0gICAgMTQ5LCAyMjIsIDIwMiwgMjE2LCAyNDMsIDIxLCAxODksIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE2LCAyNDMsIDIxLCAxOTQsIAotICAgIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE2LCAyNDMsIDIxLCAxOTgsIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE2LCAyNDMsIDIxLCAKLSAgICAxOTUsIDI0OSwgMTQ5LCAyMjIsIDIwMiwgMjE2LCAyNDMsIDIxLCAyMDAsIDExLCAyMywgNiwgNjEsIDExLCAyMywgNiwgCi0gICAgMjUzLCAxNTgsIDExLCAyMywgNiwgMjUxLCA2NiwgMTEsIDIzLCA2LCAyNDksIDYwLCAxMSwgMjMsIDYsIDc1LCAxMSwgMjMsIAotICAgIDYsIDI0NSwgNiwgMTEsIDIzLCA2LCAyNDMsIDIwMiwgMTEsIDIzLCA2LCAyNDIsIDYwLCAxMSwgMjMsIDYsIDczLCAxMSwgCi0gICAgMjMsIDYsIDIzNSwgMTQ0LCAxMSwgMjMsIDYsIDIzNSwgMjMsIDExLCAyMywgNiwgMTU2LCAxMSwgMjMsIDYsIDE5MywgMTEsIAotICAgIDIzLCA2LCAyMzAsIDI1LCAxMSwgMjMsIDYsIDc2LCAxMSwgMjMsIDYsIDIyNiwgMTA1LCAxMSwgMjMsIDYsIDIyNCwgOTYsIAotICAgIDExLCAyMywgNiwgMTUzLCAxMSwgMjMsIDYsIDIyMiwgOTEsIDExLCAyMywgNiwgMjE3LCAxNTIsIDExLCAyMywgNiwgNzAsIAotICAgIDExLCAyMywgNiwgMjE0LCAxMDUsIDExLCAyMywgNiwgMjEyLCA5OCwgMTEsIDIzLCA2LCAyMTEsIDE3OCwgMTEsIDIzLCA2LCAKLSAgICAyMTEsIDExNywgMTEsIDIzLCA2LCAyMTAsIDE1OSwgMTEsIDIzLCA0LCA2MSwgMTEsIDIzLCA0LCAyNTMsIDE1OCwgMTEsIAotICAgIDIzLCA0LCAyNTEsIDY2LCAxMSwgMjMsIDQsIDI0OSwgNjAsIDExLCAyMywgNCwgNzUsIDExLCAyMywgNCwgMjQ1LCA2LCAxMSwgCi0gICAgMjMsIDQsIDI0MywgMjAyLCAxMSwgMjMsIDQsIDI0MiwgNjAsIDExLCAyMywgNCwgNzMsIDExLCAyMywgNCwgMjM1LCAxNDQsIAotICAgIDExLCAyMywgNCwgMjM1LCAyMywgMTEsIDIzLCA0LCAxNTYsIDExLCAyMywgNCwgMTkzLCAxMSwgMjMsIDQsIDIzMCwgMjUsIAotICAgIDExLCAyMywgNCwgNzYsIDExLCAyMywgNCwgMjI2LCAxMDUsIDExLCAyMywgNCwgMjI0LCA5NiwgMTEsIDIzLCA0LCAxNTMsIAotICAgIDExLCAyMywgNCwgMjIyLCA5MSwgMTEsIDIzLCA0LCAyMTcsIDE1MiwgMTEsIDIzLCA0LCA3MCwgMTEsIDIzLCA0LCAyMTQsIAotICAgIDEwNSwgMTEsIDIzLCA0LCAyMTIsIDk4LCAxMSwgMjMsIDQsIDIxMSwgMTc4LCAxMSwgMjMsIDQsIDIxMSwgMTE3LCAxMSwgCi0gICAgMjMsIDQsIDIxMCwgMTU5LCAxMSwgMzIsIDYsIDYxLCAxMSwgMzIsIDYsIDI1MywgMTU4LCAxMSwgMzIsIDYsIDI1MSwgNjYsIAotICAgIDExLCAzMiwgNiwgMjQ5LCA2MCwgMTEsIDMyLCA2LCA3NSwgMTEsIDMyLCA2LCAyNDUsIDYsIDExLCAzMiwgNiwgMjQzLCAKLSAgICAyMDIsIDExLCAzMiwgNiwgMjQyLCA2MCwgMTEsIDMyLCA2LCA3MywgMTEsIDMyLCA2LCAyMzUsIDE0NCwgMTEsIDMyLCA2LCAKLSAgICAyMzUsIDIzLCAxMSwgMzIsIDYsIDE1NiwgMTEsIDMyLCA2LCAxOTMsIDExLCAzMiwgNiwgMjMwLCAyNSwgMTEsIDMyLCA2LCAKLSAgICA3NiwgMTEsIDMyLCA2LCAyMjYsIDEwNSwgMTEsIDMyLCA2LCAyMjQsIDk2LCAxMSwgMzIsIDYsIDE1MywgMTEsIDMyLCA2LCAKLSAgICAyMjIsIDkxLCAxMSwgMzIsIDYsIDIxNywgMTUyLCAxMSwgMzIsIDYsIDcwLCAxMSwgMzIsIDYsIDIxNCwgMTA1LCAxMSwgMzIsIAotICAgIDYsIDIxMiwgOTgsIDExLCAzMiwgNiwgMjExLCAxNzgsIDExLCAzMiwgNiwgMjExLCAxMTcsIDExLCAzMiwgNiwgMjEwLCAKLSAgICAxNTksIDExLCAzMiwgNCwgNjEsIDExLCAzMiwgNCwgMjUzLCAxNTgsIDExLCAzMiwgNCwgMjUxLCA2NiwgMTEsIDMyLCA0LCAKLSAgICAyNDksIDYwLCAxMSwgMzIsIDQsIDc1LCAxMSwgMzIsIDQsIDI0NSwgNiwgMTEsIDMyLCA0LCAyNDMsIDIwMiwgMTEsIDMyLCAKLSAgICA0LCA3MywgMTEsIDMyLCA0LCAyMzUsIDE0NCwgMTEsIDMyLCA0LCAyMzUsIDIzLCAxMSwgMzIsIDQsIDE1NiwgMTEsIDMyLCAKLSAgICA0LCAxOTMsIDExLCAzMiwgNCwgMjMwLCAyNSwgMTEsIDMyLCA0LCA3NiwgMTEsIDMyLCA0LCAyMjYsIDEwNSwgMTEsIDMyLCAKLSAgICA0LCAyMjQsIDk2LCAxMSwgMzIsIDQsIDE1MywgMTEsIDMyLCA0LCAyMjIsIDkxLCAxMSwgMzIsIDQsIDIxNywgMTUyLCAxMSwgCi0gICAgMzIsIDQsIDcwLCAxMSwgMzIsIDQsIDIxNCwgMTA1LCAxMSwgMzIsIDQsIDIxMiwgOTgsIDExLCAzMiwgNCwgMjExLCAxNzgsIAotICAgIDExLCAzMiwgNCwgMjExLCAxMTcsIDExLCAzMiwgNCwgMjEwLCAxNTksIDExLCAyMywgMzIsIDYsIDYxLCAxMSwgMjMsIDMyLCAKLSAgICA2LCAyNTMsIDE1OCwgMTEsIDIzLCAzMiwgNiwgMjUxLCA2NiwgMTEsIDIzLCAzMiwgNiwgMjQ5LCA2MCwgMTEsIDIzLCAzMiwgCi0gICAgNiwgNzUsIDExLCAyMywgMzIsIDYsIDI0NSwgNiwgMTEsIDIzLCAzMiwgNiwgMjQzLCAyMDIsIDExLCAyMywgMzIsIDYsIAotICAgIDI0MiwgNjAsIDExLCAyMywgMzIsIDYsIDczLCAxMSwgMjMsIDMyLCA2LCAyMzUsIDE0NCwgMTEsIDIzLCAzMiwgNiwgMjM1LCAKLSAgICAyMywgMTEsIDIzLCAzMiwgNiwgMTU2LCAxMSwgMjMsIDMyLCA2LCAxOTMsIDExLCAyMywgMzIsIDYsIDIzMCwgMjUsIDExLCAKLSAgICAyMywgMzIsIDYsIDc2LCAxMSwgMjMsIDMyLCA2LCAyMjYsIDEwNSwgMTEsIDIzLCAzMiwgNiwgMjI0LCA5NiwgMTEsIDIzLCAKLSAgICAzMiwgNiwgMTUzLCAxMSwgMjMsIDMyLCA2LCAyMjIsIDkxLCAxMSwgMjMsIDMyLCA2LCAyMTcsIDE1MiwgMTEsIDIzLCAzMiwgCi0gICAgNiwgNzAsIDExLCAyMywgMzIsIDYsIDIxNCwgMTA1LCAxMSwgMjMsIDMyLCA2LCAyMTIsIDk4LCAxMSwgMjMsIDMyLCA2LCAKLSAgICAyMTEsIDE3OCwgMTEsIDIzLCAzMiwgNiwgMjExLCAxMTcsIDExLCAyMywgMzIsIDYsIDIxMCwgMTU5LCAxMSwgMjMsIDMyLCAKLSAgICA0LCA2MSwgMTEsIDIzLCAzMiwgNCwgMjUzLCAxNTgsIDExLCAyMywgMzIsIDQsIDI1MSwgNjYsIDExLCAyMywgMzIsIDQsIAotICAgIDI0OSwgNjAsIDExLCAyMywgMzIsIDQsIDc1LCAxMSwgMjMsIDMyLCA0LCAyNDUsIDYsIDExLCAyMywgMzIsIDQsIDI0MywgCi0gICAgMjAyLCAxMSwgMjMsIDMyLCA0LCAyNDIsIDYwLCAxMSwgMjMsIDMyLCA0LCA3MywgMTEsIDIzLCAzMiwgNCwgMjM1LCAxNDQsIAotICAgIDExLCAyMywgMzIsIDQsIDIzNSwgMjMsIDExLCAyMywgMzIsIDQsIDE1NiwgMTEsIDIzLCAzMiwgNCwgMTkzLCAxMSwgMjMsIAotICAgIDMyLCA0LCAyMzAsIDI1LCAxMSwgMjMsIDMyLCA0LCA3NiwgMTEsIDIzLCAzMiwgNCwgMjI2LCAxMDUsIDExLCAyMywgMzIsIAotICAgIDQsIDIyNCwgOTYsIDExLCAyMywgMzIsIDQsIDE1MywgMTEsIDIzLCAzMiwgNCwgMjIyLCA5MSwgMTEsIDIzLCAzMiwgNCwgCi0gICAgMjE3LCAxNTIsIDExLCAyMywgMzIsIDQsIDcwLCAxMSwgMjMsIDMyLCA0LCAyMTQsIDEwNSwgMTEsIDIzLCAzMiwgNCwgMjEyLCAKLSAgICA5OCwgMTEsIDIzLCAzMiwgNCwgMjExLCAxNzgsIDExLCAyMywgMzIsIDQsIDIxMSwgMTE3LCAxMSwgMjMsIDMyLCA0LCAyMTAsIAotICAgIDE1OSwgMTEsIDExOSwgNiwgNjEsIDExLCAxMTksIDYsIDI1MSwgNjYsIDExLCAxMTksIDYsIDI0OSwgNjAsIDExLCAxMTksIAotICAgIDYsIDI0MywgMjAyLCAxMSwgMTE5LCA2LCAyMzUsIDE0NCwgMTEsIDExOSwgNiwgMjM1LCAyMywgMTEsIDExOSwgNiwgMjMwLCAKLSAgICAyNSwgMTEsIDExOSwgNiwgNzYsIDExLCAxMTksIDYsIDIyNiwgMTA1LCAxMSwgMTE5LCA2LCAyMjQsIDk2LCAxMSwgMTE5LCAKLSAgICA2LCAyMjIsIDkxLCAxMSwgMTE5LCA2LCAyMTcsIDE1MiwgMTEsIDExOSwgNiwgNzAsIDExLCAxMTksIDYsIDIxNCwgMTA1LCAKLSAgICAxMSwgMTE5LCA2LCAyMTIsIDk4LCAxMSwgMTE5LCA2LCAyMTEsIDE3OCwgMTEsIDExOSwgNiwgMjExLCAxMTcsIDExLCAxMTksIAotICAgIDYsIDIxMCwgMTU5LCAxMSwgMTE5LCA0LCA2MSwgMTEsIDExOSwgNCwgMjUzLCAxNTgsIDExLCAxMTksIDQsIDI1MSwgNjYsIAotICAgIDExLCAxMTksIDQsIDI0OSwgNjAsIDExLCAxMTksIDQsIDI0NSwgNiwgMTEsIDExOSwgNCwgMjQyLCA2MCwgMTEsIDExOSwgNCwgCi0gICAgNzMsIDExLCAxMTksIDQsIDIzNSwgMTQ0LCAxMSwgMTE5LCA0LCAyMzUsIDIzLCAxMSwgMTE5LCA0LCAxNTYsIDExLCAxMTksIAotICAgIDQsIDE5MywgMTEsIDExOSwgNCwgMjMwLCAyNSwgMTEsIDExOSwgNCwgMjI2LCAxMDUsIDExLCAxMTksIDQsIDIyNCwgOTYsIAotICAgIDExLCAxMTksIDQsIDE1MywgMTEsIDExOSwgNCwgMjIyLCA5MSwgMTEsIDExOSwgNCwgMjE3LCAxNTIsIDExLCAxMTksIDQsIAotICAgIDcwLCAxMSwgMTE5LCA0LCAyMTQsIDEwNSwgMTEsIDExOSwgNCwgMjEyLCA5OCwgMTEsIDExOSwgNCwgMjExLCAxNzgsIDExLCAKLSAgICAxMTksIDQsIDIxMSwgMTE3LCAxMSwgMTE5LCA0LCAyMTAsIDE1OSwgMTEsIDIzLCAxMTksIDYsIDYxLCAxMSwgMjMsIDExOSwgCi0gICAgNiwgMjUzLCAxNTgsIDExLCAyMywgMTE5LCA2LCAyNTEsIDY2LCAxMSwgMjMsIDExOSwgNiwgMjQ5LCA2MCwgMTEsIDIzLCAKLSAgICAxMTksIDYsIDc1LCAxMSwgMjMsIDExOSwgNiwgMjQ1LCA2LCAxMSwgMjMsIDExOSwgNiwgMjQzLCAyMDIsIDExLCAyMywgCi0gICAgMTE5LCA2LCAyNDIsIDYwLCAxMSwgMjMsIDExOSwgNiwgNzMsIDExLCAyMywgMTE5LCA2LCAyMzUsIDE0NCwgMTEsIDIzLCAKLSAgICAxMTksIDYsIDIzNSwgMjMsIDExLCAyMywgMTE5LCA2LCAxNTYsIDExLCAyMywgMTE5LCA2LCAxOTMsIDExLCAyMywgMTE5LCAKLSAgICA2LCAyMzAsIDI1LCAxMSwgMjMsIDExOSwgNiwgNzYsIDExLCAyMywgMTE5LCA2LCAyMjYsIDEwNSwgMTEsIDIzLCAxMTksIDYsIAotICAgIDIyNCwgOTYsIDExLCAyMywgMTE5LCA2LCAxNTMsIDExLCAyMywgMTE5LCA2LCAyMjIsIDkxLCAxMSwgMjMsIDExOSwgNiwgCi0gICAgMjE3LCAxNTIsIDExLCAyMywgMTE5LCA2LCA3MCwgMTEsIDIzLCAxMTksIDYsIDIxNCwgMTA1LCAxMSwgMjMsIDExOSwgNiwgCi0gICAgMjEyLCA5OCwgMTEsIDIzLCAxMTksIDYsIDIxMSwgMTc4LCAxMSwgMjMsIDExOSwgNiwgMjExLCAxMTcsIDExLCAyMywgMTE5LCAKLSAgICA2LCAyMTAsIDE1OSwgMTEsIDIzLCAxMTksIDQsIDYxLCAxMSwgMjMsIDExOSwgNCwgMjUzLCAxNTgsIDExLCAyMywgMTE5LCAKLSAgICA0LCAyNTEsIDY2LCAxMSwgMjMsIDExOSwgNCwgMjQ5LCA2MCwgMTEsIDIzLCAxMTksIDQsIDc1LCAxMSwgMjMsIDExOSwgNCwgCi0gICAgMjQ1LCA2LCAxMSwgMjMsIDExOSwgNCwgMjQzLCAyMDIsIDExLCAyMywgMTE5LCA0LCAyNDIsIDYwLCAxMSwgMjMsIDExOSwgCi0gICAgNCwgNzMsIDExLCAyMywgMTE5LCA0LCAyMzUsIDE0NCwgMTEsIDIzLCAxMTksIDQsIDIzNSwgMjMsIDExLCAyMywgMTE5LCA0LCAKLSAgICAxNTYsIDExLCAyMywgMTE5LCA0LCAxOTMsIDExLCAyMywgMTE5LCA0LCAyMzAsIDI1LCAxMSwgMjMsIDExOSwgNCwgNzYsIAotICAgIDExLCAyMywgMTE5LCA0LCAyMjYsIDEwNSwgMTEsIDIzLCAxMTksIDQsIDIyNCwgOTYsIDExLCAyMywgMTE5LCA0LCAxNTMsIAotICAgIDExLCAyMywgMTE5LCA0LCAyMjIsIDkxLCAxMSwgMjMsIDExOSwgNCwgMjE3LCAxNTIsIDExLCAyMywgMTE5LCA0LCA3MCwgCi0gICAgMTEsIDIzLCAxMTksIDQsIDIxNCwgMTA1LCAxMSwgMjMsIDExOSwgNCwgMjEyLCA5OCwgMTEsIDIzLCAxMTksIDQsIDIxMSwgCi0gICAgMTc4LCAxMSwgMjMsIDExOSwgNCwgMjExLCAxMTcsIDExLCAyMywgMTE5LCA0LCAyMTAsIDE1OSwgMTEsIDEzMywgNiwgNjEsIAotICAgIDExLCAxMzMsIDYsIDI1MywgMTU4LCAxMSwgMTMzLCA2LCAyNDksIDYwLCAxMSwgMTMzLCA2LCA3NSwgMTEsIDEzMywgNiwgCi0gICAgMjQ1LCA2LCAxMSwgMTMzLCA2LCAyNDMsIDIwMiwgMTEsIDEzMywgNiwgMjM1LCAxNDQsIDExLCAxMzMsIDYsIDIzNSwgMjMsIAotICAgIDExLCAxMzMsIDYsIDE1NiwgMTEsIDEzMywgNiwgMTkzLCAxMSwgMTMzLCA2LCAyMzAsIDI1LCAxMSwgMTMzLCA2LCA3NiwgCi0gICAgMTEsIDEzMywgNiwgMjI2LCAxMDUsIDExLCAxMzMsIDYsIDIyNCwgOTYsIDExLCAxMzMsIDYsIDIyMiwgOTEsIDExLCAxMzMsIAotICAgIDYsIDIxNywgMTUyLCAxMSwgMTMzLCA2LCA3MCwgMTEsIDEzMywgNiwgMjE0LCAxMDUsIDExLCAxMzMsIDYsIDIxMiwgOTgsIAotICAgIDExLCAxMzMsIDYsIDIxMSwgMTc4LCAxMSwgMTMzLCA2LCAyMTEsIDExNywgMTEsIDEzMywgNCwgNjEsIDExLCAxMzMsIDQsIAotICAgIDI1MywgMTU4LCAxMSwgMTMzLCA0LCAyNTEsIDY2LCAxMSwgMTMzLCA0LCAyNDksIDYwLCAxMSwgMTMzLCA0LCA3NSwgMTEsIAotICAgIDEzMywgNCwgMjQ1LCA2LCAxMSwgMTMzLCA0LCAyNDMsIDIwMiwgMTEsIDEzMywgNCwgMjQyLCA2MCwgMTEsIDEzMywgNCwgCi0gICAgNzMsIDExLCAxMzMsIDQsIDIzNSwgMTQ0LCAxMSwgMTMzLCA0LCAyMzUsIDIzLCAxMSwgMTMzLCA0LCAxNTYsIDExLCAxMzMsIAotICAgIDQsIDE5MywgMTEsIDEzMywgNCwgMjMwLCAyNSwgMTEsIDEzMywgNCwgNzYsIDExLCAxMzMsIDQsIDIyNiwgMTA1LCAxMSwgCi0gICAgMTMzLCA0LCAyMjQsIDk2LCAxMSwgMTMzLCA0LCAxNTMsIDExLCAxMzMsIDQsIDIyMiwgOTEsIDExLCAxMzMsIDQsIDIxNywgCi0gICAgMTUyLCAxMSwgMTMzLCA0LCA3MCwgMTEsIDEzMywgNCwgMjE0LCAxMDUsIDExLCAxMzMsIDQsIDIxMiwgOTgsIDExLCAxMzMsIAotICAgIDQsIDIxMSwgMTc4LCAxMSwgMTMzLCA0LCAyMTEsIDExNywgMTEsIDEzMywgNCwgMjEwLCAxNTksIDExLCAxMzksIDYsIDYxLCAKLSAgICAxMSwgMTM5LCA2LCAyNTMsIDE1OCwgMTEsIDEzOSwgNiwgMjQ5LCA2MCwgMTEsIDEzOSwgNiwgNzUsIDExLCAxMzksIDYsIAotICAgIDI0NSwgNiwgMTEsIDEzOSwgNiwgMjQzLCAyMDIsIDExLCAxMzksIDYsIDczLCAxMSwgMTM5LCA2LCAyMzUsIDE0NCwgMTEsIAotICAgIDEzOSwgNiwgMjM1LCAyMywgMTEsIDEzOSwgNiwgMTU2LCAxMSwgMTM5LCA2LCAxOTMsIDExLCAxMzksIDYsIDc2LCAxMSwgCi0gICAgMTM5LCA2LCAyMjIsIDkxLCAxMSwgMTM5LCA2LCAyMTcsIDE1MiwgMTEsIDEzOSwgNiwgNzAsIDExLCAxMzksIDYsIDIxNCwgCi0gICAgMTA1LCAxMSwgMTM5LCA2LCAyMTIsIDk4LCAxMSwgMTM5LCA2LCAyMTEsIDE3OCwgMTEsIDEzOSwgNiwgMjExLCAxMTcsIDExLCAKLSAgICAxMzksIDQsIDYxLCAxMSwgMTM5LCA0LCAyNTMsIDE1OCwgMTEsIDEzOSwgNCwgMjUxLCA2NiwgMTEsIDEzOSwgNCwgMjQ5LCAKLSAgICA2MCwgMTEsIDEzOSwgNCwgNzUsIDExLCAxMzksIDQsIDI0NSwgNiwgMTEsIDEzOSwgNCwgMjQzLCAyMDIsIDExLCAxMzksIDQsIAotICAgIDI0MiwgNjAsIDExLCAxMzksIDQsIDczLCAxMSwgMTM5LCA0LCAyMzUsIDE0NCwgMTEsIDEzOSwgNCwgMjM1LCAyMywgMTEsIAotICAgIDEzOSwgNCwgMTU2LCAxMSwgMTM5LCA0LCAxOTMsIDExLCAxMzksIDQsIDIzMCwgMjUsIDExLCAxMzksIDQsIDc2LCAxMSwgCi0gICAgMTM5LCA0LCAyMjYsIDEwNSwgMTEsIDEzOSwgNCwgMjI0LCA5NiwgMTEsIDEzOSwgNCwgMTUzLCAxMSwgMTM5LCA0LCAyMjIsIAotICAgIDkxLCAxMSwgMTM5LCA0LCAyMTcsIDE1MiwgMTEsIDEzOSwgNCwgNzAsIDExLCAxMzksIDQsIDIxNCwgMTA1LCAxMSwgMTM5LCAKLSAgICA0LCAyMTIsIDk4LCAxMSwgMTM5LCA0LCAyMTEsIDE3OCwgMTEsIDEzOSwgNCwgMjExLCAxMTcsIDExLCAxMzksIDQsIDIxMCwgCi0gICAgMTU5LCAxMSwgMjMsIDEzMywgNiwgNjEsIDExLCAyMywgMTMzLCA2LCAyNTMsIDE1OCwgMTEsIDIzLCAxMzMsIDYsIDI1MSwgCi0gICAgNjYsIDExLCAyMywgMTMzLCA2LCAyNDksIDYwLCAxMSwgMjMsIDEzMywgNiwgNzUsIDExLCAyMywgMTMzLCA2LCAyNDUsIDYsIAotICAgIDExLCAyMywgMTMzLCA2LCAyNDMsIDIwMiwgMTEsIDIzLCAxMzMsIDYsIDI0MiwgNjAsIDExLCAyMywgMTMzLCA2LCA3MywgCi0gICAgMTEsIDIzLCAxMzMsIDYsIDIzNSwgMTQ0LCAxMSwgMjMsIDEzMywgNiwgMjM1LCAyMywgMTEsIDIzLCAxMzMsIDYsIDE1NiwgCi0gICAgMTEsIDIzLCAxMzMsIDYsIDE5MywgMTEsIDIzLCAxMzMsIDYsIDIzMCwgMjUsIDExLCAyMywgMTMzLCA2LCA3NiwgMTEsIDIzLCAKLSAgICAxMzMsIDYsIDIyNiwgMTA1LCAxMSwgMjMsIDEzMywgNiwgMjI0LCA5NiwgMTEsIDIzLCAxMzMsIDYsIDE1MywgMTEsIDIzLCAKLSAgICAxMzMsIDYsIDIyMiwgOTEsIDExLCAyMywgMTMzLCA2LCAyMTcsIDE1MiwgMTEsIDIzLCAxMzMsIDYsIDcwLCAxMSwgMjMsIAotICAgIDEzMywgNiwgMjE0LCAxMDUsIDExLCAyMywgMTMzLCA2LCAyMTIsIDk4LCAxMSwgMjMsIDEzMywgNiwgMjExLCAxNzgsIDExLCAKLSAgICAyMywgMTMzLCA2LCAyMTEsIDExNywgMTEsIDIzLCAxMzMsIDYsIDIxMCwgMTU5LCAxMSwgMjMsIDEzMywgNCwgNjEsIDExLCAKLSAgICAyMywgMTMzLCA0LCAyNTMsIDE1OCwgMTEsIDIzLCAxMzMsIDQsIDI1MSwgNjYsIDExLCAyMywgMTMzLCA0LCAyNDksIDYwLCAKLSAgICAxMSwgMjMsIDEzMywgNCwgNzUsIDExLCAyMywgMTMzLCA0LCAyNDUsIDYsIDExLCAyMywgMTMzLCA0LCAyNDMsIDIwMiwgMTEsIAotICAgIDIzLCAxMzMsIDQsIDI0MiwgNjAsIDExLCAyMywgMTMzLCA0LCA3MywgMTEsIDIzLCAxMzMsIDQsIDIzNSwgMTQ0LCAxMSwgCi0gICAgMjMsIDEzMywgNCwgMjM1LCAyMywgMTEsIDIzLCAxMzMsIDQsIDE1NiwgMTEsIDIzLCAxMzMsIDQsIDE5MywgMTEsIDIzLCAKLSAgICAxMzMsIDQsIDIzMCwgMjUsIDExLCAyMywgMTMzLCA0LCA3NiwgMTEsIDIzLCAxMzMsIDQsIDIyNiwgMTA1LCAxMSwgMjMsIAotICAgIDEzMywgNCwgMjI0LCA5NiwgMTEsIDIzLCAxMzMsIDQsIDE1MywgMTEsIDIzLCAxMzMsIDQsIDIyMiwgOTEsIDExLCAyMywgCi0gICAgMTMzLCA0LCAyMTcsIDE1MiwgMTEsIDIzLCAxMzMsIDQsIDcwLCAxMSwgMjMsIDEzMywgNCwgMjE0LCAxMDUsIDExLCAyMywgCi0gICAgMTMzLCA0LCAyMTIsIDk4LCAxMSwgMjMsIDEzMywgNCwgMjExLCAxNzgsIDExLCAyMywgMTMzLCA0LCAyMTEsIDExNywgMTEsIAotICAgIDIzLCAxMzMsIDQsIDIxMCwgMTU5LCAxMSwgMzUsIDYsIDYxLCAxMSwgMzUsIDYsIDI1MywgMTU4LCAxMSwgMzUsIDYsIDI1MSwgCi0gICAgNjYsIDExLCAzNSwgNiwgMjQ5LCA2MCwgMTEsIDM1LCA2LCA3NSwgMTEsIDM1LCA2LCAyNDUsIDYsIDExLCAzNSwgNiwgMjQzLCAKLSAgICAyMDIsIDExLCAzNSwgNiwgMjQyLCA2MCwgMTEsIDM1LCA2LCA3MywgMTEsIDM1LCA2LCAyMzUsIDE0NCwgMTEsIDM1LCA2LCAKLSAgICAyMzUsIDIzLCAxMSwgMzUsIDYsIDE1NiwgMTEsIDM1LCA2LCAxOTMsIDExLCAzNSwgNiwgMjMwLCAyNSwgMTEsIDM1LCA2LCAKLSAgICA3NiwgMTEsIDM1LCA2LCAyMjYsIDEwNSwgMTEsIDM1LCA2LCAyMjQsIDk2LCAxMSwgMzUsIDYsIDE1MywgMTEsIDM1LCA2LCAKLSAgICAyMjIsIDkxLCAxMSwgMzUsIDYsIDIxNywgMTUyLCAxMSwgMzUsIDYsIDcwLCAxMSwgMzUsIDYsIDIxNCwgMTA1LCAxMSwgMzUsIAotICAgIDYsIDIxMiwgOTgsIDExLCAzNSwgNiwgMjExLCAxNzgsIDExLCAzNSwgNiwgMjExLCAxMTcsIDExLCAzNSwgNiwgMjEwLCAKLSAgICAxNTksIDExLCAzNSwgNCwgNjEsIDExLCAzNSwgNCwgMjUzLCAxNTgsIDExLCAzNSwgNCwgMjUxLCA2NiwgMTEsIDM1LCA0LCAKLSAgICAyNDksIDYwLCAxMSwgMzUsIDQsIDc1LCAxMSwgMzUsIDQsIDI0NSwgNiwgMTEsIDM1LCA0LCAyNDMsIDIwMiwgMTEsIDM1LCAKLSAgICA0LCAyNDIsIDYwLCAxMSwgMzUsIDQsIDczLCAxMSwgMzUsIDQsIDIzNSwgMTQ0LCAxMSwgMzUsIDQsIDIzNSwgMjMsIDExLCAKLSAgICAzNSwgNCwgMTU2LCAxMSwgMzUsIDQsIDE5MywgMTEsIDM1LCA0LCAyMzAsIDI1LCAxMSwgMzUsIDQsIDc2LCAxMSwgMzUsIDQsIAotICAgIDIyNiwgMTA1LCAxMSwgMzUsIDQsIDIyNCwgOTYsIDExLCAzNSwgNCwgMTUzLCAxMSwgMzUsIDQsIDIyMiwgOTEsIDExLCAzNSwgCi0gICAgNCwgMjE3LCAxNTIsIDExLCAzNSwgNCwgNzAsIDExLCAzNSwgNCwgMjE0LCAxMDUsIDExLCAzNSwgNCwgMjEyLCA5OCwgMTEsIAotICAgIDM1LCA0LCAyMTEsIDE3OCwgMTEsIDM1LCA0LCAyMTEsIDExNywgMTEsIDM1LCA0LCAyMTAsIDE1OSwgMTEsIDM1LCAyMywgNiwgCi0gICAgNjEsIDExLCAzNSwgMjMsIDYsIDI1MywgMTU4LCAxMSwgMzUsIDIzLCA2LCAyNTEsIDY2LCAxMSwgMzUsIDIzLCA2LCAyNDksIAotICAgIDYwLCAxMSwgMzUsIDIzLCA2LCA3NSwgMTEsIDM1LCAyMywgNiwgMjQ1LCA2LCAxMSwgMzUsIDIzLCA2LCAyNDMsIDIwMiwgCi0gICAgMTEsIDM1LCAyMywgNiwgMjQyLCA2MCwgMTEsIDM1LCAyMywgNiwgNzMsIDExLCAzNSwgMjMsIDYsIDIzNSwgMTQ0LCAxMSwgCi0gICAgMzUsIDIzLCA2LCAyMzUsIDIzLCAxMSwgMzUsIDIzLCA2LCAxNTYsIDExLCAzNSwgMjMsIDYsIDE5MywgMTEsIDM1LCAyMywgCi0gICAgNiwgMjMwLCAyNSwgMTEsIDM1LCAyMywgNiwgNzYsIDExLCAzNSwgMjMsIDYsIDIyNiwgMTA1LCAxMSwgMzUsIDIzLCA2LCAKLSAgICAyMjQsIDk2LCAxMSwgMzUsIDIzLCA2LCAxNTMsIDExLCAzNSwgMjMsIDYsIDIyMiwgOTEsIDExLCAzNSwgMjMsIDYsIDIxNywgCi0gICAgMTUyLCAxMSwgMzUsIDIzLCA2LCA3MCwgMTEsIDM1LCAyMywgNiwgMjE0LCAxMDUsIDExLCAzNSwgMjMsIDYsIDIxMiwgOTgsIAotICAgIDExLCAzNSwgMjMsIDYsIDIxMSwgMTc4LCAxMSwgMzUsIDIzLCA2LCAyMTEsIDExNywgMTEsIDM1LCAyMywgNiwgMjEwLCAKLSAgICAxNTksIDExLCAzNSwgMjMsIDQsIDYxLCAxMSwgMzUsIDIzLCA0LCAyNTMsIDE1OCwgMTEsIDM1LCAyMywgNCwgMjUxLCA2NiwgCi0gICAgMTEsIDM1LCAyMywgNCwgMjQ5LCA2MCwgMTEsIDM1LCAyMywgNCwgNzUsIDExLCAzNSwgMjMsIDQsIDI0NSwgNiwgMTEsIDM1LCAKLSAgICAyMywgNCwgMjQzLCAyMDIsIDExLCAzNSwgMjMsIDQsIDI0MiwgNjAsIDExLCAzNSwgMjMsIDQsIDczLCAxMSwgMzUsIDIzLCAKLSAgICA0LCAyMzUsIDE0NCwgMTEsIDM1LCAyMywgNCwgMjM1LCAyMywgMTEsIDM1LCAyMywgNCwgMTU2LCAxMSwgMzUsIDIzLCA0LCAKLSAgICAxOTMsIDExLCAzNSwgMjMsIDQsIDIzMCwgMjUsIDExLCAzNSwgMjMsIDQsIDc2LCAxMSwgMzUsIDIzLCA0LCAyMjYsIDEwNSwgCi0gICAgMTEsIDM1LCAyMywgNCwgMjI0LCA5NiwgMTEsIDM1LCAyMywgNCwgMTUzLCAxMSwgMzUsIDIzLCA0LCAyMjIsIDkxLCAxMSwgCi0gICAgMzUsIDIzLCA0LCAyMTcsIDE1MiwgMTEsIDM1LCAyMywgNCwgNzAsIDExLCAzNSwgMjMsIDQsIDIxNCwgMTA1LCAxMSwgMzUsIAotICAgIDIzLCA0LCAyMTIsIDk4LCAxMSwgMzUsIDIzLCA0LCAyMTEsIDE3OCwgMTEsIDM1LCAyMywgNCwgMjExLCAxMTcsIDExLCAzNSwgCi0gICAgMjMsIDQsIDIxMCwgMTU5LCAxMSwgMzUsIDMyLCA2LCA2MSwgMTEsIDM1LCAzMiwgNiwgMjUzLCAxNTgsIDExLCAzNSwgMzIsIAotICAgIDYsIDI1MSwgNjYsIDExLCAzNSwgMzIsIDYsIDI0OSwgNjAsIDExLCAzNSwgMzIsIDYsIDc1LCAxMSwgMzUsIDMyLCA2LCAKLSAgICAyNDUsIDYsIDExLCAzNSwgMzIsIDYsIDI0MywgMjAyLCAxMSwgMzUsIDMyLCA2LCAyNDIsIDYwLCAxMSwgMzUsIDMyLCA2LCAKLSAgICA3MywgMTEsIDM1LCAzMiwgNiwgMjM1LCAxNDQsIDExLCAzNSwgMzIsIDYsIDIzNSwgMjMsIDExLCAzNSwgMzIsIDYsIDE1NiwgCi0gICAgMTEsIDM1LCAzMiwgNiwgMTkzLCAxMSwgMzUsIDMyLCA2LCAyMzAsIDI1LCAxMSwgMzUsIDMyLCA2LCA3NiwgMTEsIDM1LCAKLSAgICAzMiwgNiwgMjI2LCAxMDUsIDExLCAzNSwgMzIsIDYsIDIyNCwgOTYsIDExLCAzNSwgMzIsIDYsIDE1MywgMTEsIDM1LCAzMiwgCi0gICAgNiwgMjIyLCA5MSwgMTEsIDM1LCAzMiwgNiwgMjE3LCAxNTIsIDExLCAzNSwgMzIsIDYsIDcwLCAxMSwgMzUsIDMyLCA2LCAKLSAgICAyMTQsIDEwNSwgMTEsIDM1LCAzMiwgNiwgMjEyLCA5OCwgMTEsIDM1LCAzMiwgNiwgMjExLCAxNzgsIDExLCAzNSwgMzIsIDYsIAotICAgIDIxMSwgMTE3LCAxMSwgMzUsIDMyLCA2LCAyMTAsIDE1OSwgMTEsIDM1LCAzMiwgNCwgNjEsIDExLCAzNSwgMzIsIDQsIDI1MywgCi0gICAgMTU4LCAxMSwgMzUsIDMyLCA0LCAyNTEsIDY2LCAxMSwgMzUsIDMyLCA0LCAyNDksIDYwLCAxMSwgMzUsIDMyLCA0LCA3NSwgCi0gICAgMTEsIDM1LCAzMiwgNCwgMjQ1LCA2LCAxMSwgMzUsIDMyLCA0LCAyNDMsIDIwMiwgMTEsIDM1LCAzMiwgNCwgMjQyLCA2MCwgCi0gICAgMTEsIDM1LCAzMiwgNCwgNzMsIDExLCAzNSwgMzIsIDQsIDIzNSwgMTQ0LCAxMSwgMzUsIDMyLCA0LCAyMzUsIDIzLCAxMSwgCi0gICAgMzUsIDMyLCA0LCAxNTYsIDExLCAzNSwgMzIsIDQsIDE5MywgMTEsIDM1LCAzMiwgNCwgMjMwLCAyNSwgMTEsIDM1LCAzMiwgCi0gICAgNCwgNzYsIDExLCAzNSwgMzIsIDQsIDIyNiwgMTA1LCAxMSwgMzUsIDMyLCA0LCAyMjQsIDk2LCAxMSwgMzUsIDMyLCA0LCAKLSAgICAxNTMsIDExLCAzNSwgMzIsIDQsIDIyMiwgOTEsIDExLCAzNSwgMzIsIDQsIDIxNywgMTUyLCAxMSwgMzUsIDMyLCA0LCA3MCwgCi0gICAgMTEsIDM1LCAzMiwgNCwgMjE0LCAxMDUsIDExLCAzNSwgMzIsIDQsIDIxMiwgOTgsIDExLCAzNSwgMzIsIDQsIDIxMSwgMTc4LCAKLSAgICAxMSwgMzUsIDMyLCA0LCAyMTEsIDExNywgMTEsIDM1LCAzMiwgNCwgMjEwLCAxNTksIDExLCAzNSwgMjMsIDMyLCA2LCA2MSwgCi0gICAgMTEsIDM1LCAyMywgMzIsIDYsIDI1MywgMTU4LCAxMSwgMzUsIDIzLCAzMiwgNiwgMjUxLCA2NiwgMTEsIDM1LCAyMywgMzIsIAotICAgIDYsIDI0OSwgNjAsIDExLCAzNSwgMjMsIDMyLCA2LCA3NSwgMTEsIDM1LCAyMywgMzIsIDYsIDI0NSwgNiwgMTEsIDM1LCAyMywgCi0gICAgMzIsIDYsIDI0MywgMjAyLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjQyLCA2MCwgMTEsIDM1LCAyMywgMzIsIDYsIDczLCAxMSwgCi0gICAgMzUsIDIzLCAzMiwgNiwgMjM1LCAxNDQsIDExLCAzNSwgMjMsIDMyLCA2LCAyMzUsIDIzLCAxMSwgMzUsIDIzLCAzMiwgNiwgCi0gICAgMTU2LCAxMSwgMzUsIDIzLCAzMiwgNiwgMTkzLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjMwLCAyNSwgMTEsIDM1LCAyMywgMzIsIAotICAgIDYsIDc2LCAxMSwgMzUsIDIzLCAzMiwgNiwgMjI2LCAxMDUsIDExLCAzNSwgMjMsIDMyLCA2LCAyMjQsIDk2LCAxMSwgMzUsIAotICAgIDIzLCAzMiwgNiwgMTUzLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjIyLCA5MSwgMTEsIDM1LCAyMywgMzIsIDYsIDIxNywgMTUyLCAKLSAgICAxMSwgMzUsIDIzLCAzMiwgNiwgNzAsIDExLCAzNSwgMjMsIDMyLCA2LCAyMTQsIDEwNSwgMTEsIDM1LCAyMywgMzIsIDYsIAotICAgIDIxMiwgOTgsIDExLCAzNSwgMjMsIDMyLCA2LCAyMTEsIDE3OCwgMTEsIDM1LCAyMywgMzIsIDYsIDIxMSwgMTE3LCAxMSwgCi0gICAgMzUsIDIzLCAzMiwgNiwgMjEwLCAxNTksIDExLCAzNSwgMjMsIDMyLCA0LCA2MSwgMTEsIDM1LCAyMywgMzIsIDQsIDI1MywgCi0gICAgMTU4LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjUxLCA2NiwgMTEsIDM1LCAyMywgMzIsIDQsIDI0OSwgNjAsIDExLCAzNSwgMjMsIAotICAgIDMyLCA0LCA3NSwgMTEsIDM1LCAyMywgMzIsIDQsIDI0NSwgNiwgMTEsIDM1LCAyMywgMzIsIDQsIDI0MywgMjAyLCAxMSwgCi0gICAgMzUsIDIzLCAzMiwgNCwgMjQyLCA2MCwgMTEsIDM1LCAyMywgMzIsIDQsIDczLCAxMSwgMzUsIDIzLCAzMiwgNCwgMjM1LCAKLSAgICAxNDQsIDExLCAzNSwgMjMsIDMyLCA0LCAyMzUsIDIzLCAxMSwgMzUsIDIzLCAzMiwgNCwgMTU2LCAxMSwgMzUsIDIzLCAzMiwgCi0gICAgNCwgMTkzLCAxMSwgMzUsIDIzLCAzMiwgNCwgMjMwLCAyNSwgMTEsIDM1LCAyMywgMzIsIDQsIDc2LCAxMSwgMzUsIDIzLCAKLSAgICAzMiwgNCwgMjI2LCAxMDUsIDExLCAzNSwgMjMsIDMyLCA0LCAyMjQsIDk2LCAxMSwgMzUsIDIzLCAzMiwgNCwgMTUzLCAxMSwgCi0gICAgMzUsIDIzLCAzMiwgNCwgMjIyLCA5MSwgMTEsIDM1LCAyMywgMzIsIDQsIDIxNywgMTUyLCAxMSwgMzUsIDIzLCAzMiwgNCwgCi0gICAgNzAsIDExLCAzNSwgMjMsIDMyLCA0LCAyMTQsIDEwNSwgMTEsIDM1LCAyMywgMzIsIDQsIDIxMiwgOTgsIDExLCAzNSwgMjMsIAotICAgIDMyLCA0LCAyMTEsIDE3OCwgMTEsIDM1LCAyMywgMzIsIDQsIDIxMSwgMTE3LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjEwLCAKLSAgICAxNTksIDExLCAyMzAsIDEzOCwgNiwgNjEsIDExLCAyMzAsIDEzOCwgNiwgMjUzLCAxNTgsIDExLCAyMzAsIDEzOCwgNiwgCi0gICAgMjUxLCA2NiwgMTEsIDIzMCwgMTM4LCA2LCAyNDksIDYwLCAxMSwgMjMwLCAxMzgsIDYsIDc1LCAxMSwgMjMwLCAxMzgsIDYsIAotICAgIDI0NSwgNiwgMTEsIDIzMCwgMTM4LCA2LCAyNDMsIDIwMiwgMTEsIDIzMCwgMTM4LCA2LCAyNDIsIDYwLCAxMSwgMjMwLCAKLSAgICAxMzgsIDYsIDczLCAxMSwgMjMwLCAxMzgsIDYsIDIzNSwgMTQ0LCAxMSwgMjMwLCAxMzgsIDYsIDIzNSwgMjMsIDExLCAyMzAsIAotICAgIDEzOCwgNiwgMTU2LCAxMSwgMjMwLCAxMzgsIDYsIDE5MywgMTEsIDIzMCwgMTM4LCA2LCAyMzAsIDI1LCAxMSwgMjMwLCAKLSAgICAxMzgsIDYsIDc2LCAxMSwgMjMwLCAxMzgsIDYsIDIyNiwgMTA1LCAxMSwgMjMwLCAxMzgsIDYsIDIyNCwgOTYsIDExLCAyMzAsIAotICAgIDEzOCwgNiwgMTUzLCAxMSwgMjMwLCAxMzgsIDYsIDIyMiwgOTEsIDExLCAyMzAsIDEzOCwgNiwgMjE3LCAxNTIsIDExLCAKLSAgICAyMzAsIDEzOCwgNiwgNzAsIDExLCAyMzAsIDEzOCwgNiwgMjE0LCAxMDUsIDExLCAyMzAsIDEzOCwgNiwgMjEyLCA5OCwgMTEsIAotICAgIDIzMCwgMTM4LCA2LCAyMTEsIDE3OCwgMTEsIDIzMCwgMTM4LCA2LCAyMTEsIDExNywgMTEsIDIzMCwgMTM4LCA2LCAyMTAsIAotICAgIDE1OSwgMTEsIDIzMCwgMTM4LCA0LCA2MSwgMTEsIDIzMCwgMTM4LCA0LCAyNTMsIDE1OCwgMTEsIDIzMCwgMTM4LCA0LCAKLSAgICAyNTEsIDY2LCAxMSwgMjMwLCAxMzgsIDQsIDI0OSwgNjAsIDExLCAyMzAsIDEzOCwgNCwgNzUsIDExLCAyMzAsIDEzOCwgNCwgCi0gICAgMjQ1LCA2LCAxMSwgMjMwLCAxMzgsIDQsIDI0MywgMjAyLCAxMSwgMjMwLCAxMzgsIDQsIDI0MiwgNjAsIDExLCAyMzAsIAotICAgIDEzOCwgNCwgNzMsIDExLCAyMzAsIDEzOCwgNCwgMjM1LCAxNDQsIDExLCAyMzAsIDEzOCwgNCwgMjM1LCAyMywgMTEsIDIzMCwgCi0gICAgMTM4LCA0LCAxNTYsIDExLCAyMzAsIDEzOCwgNCwgMTkzLCAxMSwgMjMwLCAxMzgsIDQsIDIzMCwgMjUsIDExLCAyMzAsIAotICAgIDEzOCwgNCwgNzYsIDExLCAyMzAsIDEzOCwgNCwgMjI2LCAxMDUsIDExLCAyMzAsIDEzOCwgNCwgMjI0LCA5NiwgMTEsIDIzMCwgCi0gICAgMTM4LCA0LCAxNTMsIDExLCAyMzAsIDEzOCwgNCwgMjIyLCA5MSwgMTEsIDIzMCwgMTM4LCA0LCAyMTcsIDE1MiwgMTEsIAotICAgIDIzMCwgMTM4LCA0LCA3MCwgMTEsIDIzMCwgMTM4LCA0LCAyMTQsIDEwNSwgMTEsIDIzMCwgMTM4LCA0LCAyMTIsIDk4LCAxMSwgCi0gICAgMjMwLCAxMzgsIDQsIDIxMSwgMTc4LCAxMSwgMjMwLCAxMzgsIDQsIDIxMSwgMTE3LCAxMSwgMjMwLCAxMzgsIDQsIDIxMCwgCi0gICAgMTU5LCAxMSwgMzIsIDQsIDI0NywgMTE5LCA3MywgMTEsIDMyLCA0LCAyNDcsIDExOSwgMjM1LCAxNDQsIDExLCAyMywgNiwgCi0gICAgMjU0LCAxNDMsIDExLCAyMywgNiwgMjUyLCAyNiwgMTEsIDIzLCA2LCAyNDMsIDEwNywgMTEsIDIzLCA2LCAyNDgsIDU0LCAKLSAgICAxMSwgMjMsIDYsIDI0NSwgMTAwLCAxMSwgMjMsIDYsIDIxMCwgODUsIDExLCAyMywgNiwgMjQ1LCA2MywgMTEsIDIzLCA2LCAKLSAgICAyMTYsIDE3OSwgMTEsIDIzLCA2LCAyMzUsIDE4NSwgMTEsIDIzLCA2LCAyMzQsIDIyMiwgMTEsIDIzLCA2LCAyMzMsIDk4LCAKLSAgICAxMSwgMjMsIDYsIDIzMCwgMTAyLCAxMSwgMjMsIDYsIDIyNywgMjM3LCAxMSwgMjMsIDYsIDIxMSwgMTU3LCAxMSwgMjMsIDYsIAotICAgIDIyNiwgMTk5LCAxMSwgMjMsIDYsIDIyNSwgMTA4LCAxMSwgMjMsIDYsIDIyMywgMzcsIDExLCAyMywgNiwgMjE2LCAxODAsIAotICAgIDg3LCAxMSwgMjMsIDYsIDIxOSwgMTc3LCAxMSwgMjMsIDYsIDIxNywgNDEsIDExLCAyMywgNiwgMjE0LCAxNTcsIDExLCAyMywgCi0gICAgNiwgMjI1LCAxMzMsIDExLCAyMywgNiwgMjUwLCAxMTAsIDExLCAyMywgNiwgMjI0LCAxNjEsIDExLCAyMywgNiwgMjI2LCAKLSAgICAyMDEsIDExLCAyMywgMjI5LCAyMjEsIDExLCAyMywgNCwgMjU0LCAxNDMsIDExLCAyMywgNCwgMjUyLCAyNiwgMTEsIDIzLCAKLSAgICA0LCAyNDMsIDEwNywgMTEsIDIzLCA0LCAyNDgsIDU0LCAxMSwgMjMsIDQsIDI0NSwgMTAwLCAxMSwgMjMsIDQsIDIxMCwgODUsIAotICAgIDExLCAyMywgNCwgMjQ1LCA2MywgMTEsIDIzLCA0LCAyMTYsIDE3OSwgMTEsIDIzLCA0LCAyMzUsIDE4NSwgMTEsIDIzLCA0LCAKLSAgICAyMzQsIDIyMiwgMTEsIDIzLCA0LCAyMzMsIDk4LCAxMSwgMjMsIDQsIDIzMCwgMTAyLCAxMSwgMjMsIDQsIDIyNywgMjM3LCAKLSAgICAxMSwgMjMsIDQsIDIxMSwgMTU3LCAxMSwgMjMsIDQsIDIyNiwgMTk5LCAxMSwgMjMsIDQsIDIyNSwgMTA4LCAxMSwgMjMsIDQsIAotICAgIDIyMywgMzcsIDExLCAyMywgNCwgNDAsIDIxOSwgMTc3LCAxMSwgMjMsIDQsIDIxOSwgMTc3LCAxMSwgMjMsIDQsIDIxNywgCi0gICAgNDEsIDExLCAyMywgNCwgMjE0LCAxNTcsIDExLCAyMywgNCwgMjI1LCAxMzMsIDExLCAyMywgNCwgMjUwLCAxMTAsIDExLCAKLSAgICAyMywgNCwgMjI0LCAxNjEsIDExLCAyMywgNCwgMjI2LCAyMDEsIDExLCAyMywgMjI1LCAyNTMsIDI0NywgMjMzLCAxMSwgMjMsIAotICAgIDI0NSwgMTAxLCA4NywgMTEsIDIzLCAyMTYsIDE4MCwgODcsIDExLCAyMywgMjM0LCAyMjMsIDg3LCAxMSwgMjMsIDIyNSwgCi0gICAgMTM0LCA4NywgMTEsIDIzLCAyMjMsIDM4LCA4NywgMTEsIDIzLCAyMjUsIDEwOSwgODcsIDExLCAzMiwgNiwgMjU0LCAxNDMsIAotICAgIDExLCAzMiwgNiwgMjUyLCAyNiwgMTEsIDMyLCA2LCAyNDMsIDEwNywgMTEsIDMyLCA2LCAyNDgsIDU0LCAxMSwgMzIsIDYsIAotICAgIDI0NSwgMTAwLCAxMSwgMzIsIDYsIDIxMCwgODUsIDExLCAzMiwgNiwgMjQ1LCA2MywgMTEsIDMyLCA2LCAyMTYsIDE3OSwgCi0gICAgMTEsIDMyLCA2LCAyMzUsIDE4NSwgMTEsIDMyLCA2LCAyMzQsIDIyMiwgMTEsIDMyLCA2LCAyMzMsIDk4LCAxMSwgMzIsIDYsIAotICAgIDIzMCwgMTAyLCAxMSwgMzIsIDYsIDIyNywgMjM3LCAxMSwgMzIsIDYsIDIxMSwgMTU3LCAxMSwgMzIsIDYsIDIyNiwgMTk5LCAKLSAgICAxMSwgMzIsIDYsIDIyNSwgMTA4LCAxMSwgMzIsIDYsIDIyMywgMzcsIDExLCAzMiwgNiwgMjE2LCAxODAsIDg3LCAxMSwgMzIsIAotICAgIDYsIDIxOSwgMTc3LCAxMSwgMzIsIDYsIDIxNywgNDEsIDExLCAzMiwgNiwgMjE0LCAxNTcsIDExLCAzMiwgNiwgMjI1LCAKLSAgICAxMzMsIDExLCAzMiwgNiwgMjUwLCAxMTAsIDExLCAzMiwgNiwgMjI0LCAxNjEsIDExLCAzMiwgNiwgMjI2LCAyMDEsIDExLCAKLSAgICAzMiwgMjI5LCAyMjEsIDExLCAzMiwgNCwgMjU0LCAxNDMsIDExLCAzMiwgNCwgMjUyLCAyNiwgMTEsIDMyLCA0LCAyNDMsIAotICAgIDEwNywgMTEsIDMyLCA0LCAyNDgsIDU0LCAxMSwgMzIsIDQsIDI0NSwgMTAwLCAxMSwgMzIsIDQsIDIxMCwgODUsIDExLCAzMiwgCi0gICAgNCwgMjQ1LCA2MywgMTEsIDMyLCA0LCAyMTYsIDE3OSwgMTEsIDMyLCA0LCAyMzUsIDE4NSwgMTEsIDMyLCA0LCAyMzQsIAotICAgIDIyMiwgMTEsIDMyLCA0LCAyMzMsIDk4LCAxMSwgMzIsIDQsIDIzMCwgMTAyLCAxMSwgMzIsIDQsIDIyNywgMjM3LCAxMSwgCi0gICAgMzIsIDQsIDIxMSwgMTU3LCAxMSwgMzIsIDQsIDIyNiwgMTk5LCAxMSwgMzIsIDQsIDIyNSwgMTA4LCAxMSwgMzIsIDQsIAotICAgIDIyMywgMzcsIDExLCAzMiwgNCwgNDAsIDIxOSwgMTc3LCAxMSwgMzIsIDQsIDIxOSwgMTc3LCAxMSwgMzIsIDQsIDIxNywgCi0gICAgNDEsIDExLCAzMiwgNCwgMjE0LCAxNTcsIDExLCAzMiwgNCwgMjI1LCAxMzMsIDExLCAzMiwgNCwgMjUwLCAxMTAsIDExLCAKLSAgICAzMiwgNCwgMjI0LCAxNjEsIDExLCAzMiwgNCwgMjI2LCAyMDEsIDExLCAzMiwgMjI1LCAyNTMsIDI0NywgMjMzLCAxMSwgMzIsIAotICAgIDI0NSwgMTAxLCA4NywgMTEsIDMyLCAyMTYsIDE4MCwgODcsIDExLCAzMiwgMjM0LCAyMjMsIDg3LCAxMSwgMzIsIDIyNSwgCi0gICAgMTM0LCA4NywgMTEsIDMyLCAyMjMsIDM4LCA4NywgMTEsIDMyLCAyMjUsIDEwOSwgODcsIDExLCAyMywgMzIsIDYsIDI1NCwgCi0gICAgMTQzLCAxMSwgMjMsIDMyLCA2LCAyNTIsIDI2LCAxMSwgMjMsIDMyLCA2LCAyNDMsIDEwNywgMTEsIDIzLCAzMiwgNiwgMjQ4LCAKLSAgICA1NCwgMTEsIDIzLCAzMiwgNiwgMjQ1LCAxMDAsIDExLCAyMywgMzIsIDYsIDIxMCwgODUsIDExLCAyMywgMzIsIDYsIDI0NSwgCi0gICAgNjMsIDExLCAyMywgMzIsIDYsIDIxNiwgMTc5LCAxMSwgMjMsIDMyLCA2LCAyMzUsIDE4NSwgMTEsIDIzLCAzMiwgNiwgMjM0LCAKLSAgICAyMjIsIDExLCAyMywgMzIsIDYsIDIzMywgOTgsIDExLCAyMywgMzIsIDYsIDIzMCwgMTAyLCAxMSwgMjMsIDMyLCA2LCAyMjcsIAotICAgIDIzNywgMTEsIDIzLCAzMiwgNiwgMjExLCAxNTcsIDExLCAyMywgMzIsIDYsIDIyNiwgMTk5LCAxMSwgMjMsIDMyLCA2LCAKLSAgICAyMjUsIDEwOCwgMTEsIDIzLCAzMiwgNiwgMjIzLCAzNywgMTEsIDIzLCAzMiwgNiwgMjE2LCAxODAsIDg3LCAxMSwgMjMsIAotICAgIDMyLCA2LCAyMTksIDE3NywgMTEsIDIzLCAzMiwgNiwgMjE3LCA0MSwgMTEsIDIzLCAzMiwgNiwgMjE0LCAxNTcsIDExLCAyMywgCi0gICAgMzIsIDYsIDIyNSwgMTMzLCAxMSwgMjMsIDMyLCA2LCAyNTAsIDExMCwgMTEsIDIzLCAzMiwgNiwgMjI0LCAxNjEsIDExLCAKLSAgICAyMywgMzIsIDYsIDIyNiwgMjAxLCAxMSwgMjMsIDMyLCAyMjksIDIyMSwgMTEsIDIzLCAzMiwgNCwgMjU0LCAxNDMsIDExLCAKLSAgICAyMywgMzIsIDQsIDI1MiwgMjYsIDExLCAyMywgMzIsIDQsIDI0MywgMTA3LCAxMSwgMjMsIDMyLCA0LCAyNDgsIDU0LCAxMSwgCi0gICAgMjMsIDMyLCA0LCAyNDUsIDEwMCwgMTEsIDIzLCAzMiwgNCwgMjEwLCA4NSwgMTEsIDIzLCAzMiwgNCwgMjQ1LCA2MywgMTEsIAotICAgIDIzLCAzMiwgNCwgMjE2LCAxNzksIDExLCAyMywgMzIsIDQsIDIzNSwgMTg1LCAxMSwgMjMsIDMyLCA0LCAyMzQsIDIyMiwgCi0gICAgMTEsIDIzLCAzMiwgNCwgMjMzLCA5OCwgMTEsIDIzLCAzMiwgNCwgMjMwLCAxMDIsIDExLCAyMywgMzIsIDQsIDIyNywgMjM3LCAKLSAgICAxMSwgMjMsIDMyLCA0LCAyMTEsIDE1NywgMTEsIDIzLCAzMiwgNCwgMjI2LCAxOTksIDExLCAyMywgMzIsIDQsIDIyNSwgCi0gICAgMTA4LCAxMSwgMjMsIDMyLCA0LCAyMjMsIDM3LCAxMSwgMjMsIDMyLCA0LCA0MCwgMjE5LCAxNzcsIDExLCAyMywgMzIsIDQsIAotICAgIDIxOSwgMTc3LCAxMSwgMjMsIDMyLCA0LCAyMTcsIDQxLCAxMSwgMjMsIDMyLCA0LCAyMTQsIDE1NywgMTEsIDIzLCAzMiwgNCwgCi0gICAgMjI1LCAxMzMsIDExLCAyMywgMzIsIDQsIDI1MCwgMTEwLCAxMSwgMjMsIDMyLCA0LCAyMjQsIDE2MSwgMTEsIDIzLCAzMiwgCi0gICAgNCwgMjI2LCAyMDEsIDExLCAyMywgMzIsIDIyNSwgMjUzLCAyNDcsIDIzMywgMTEsIDIzLCAzMiwgMjQ1LCAxMDEsIDg3LCAKLSAgICAxMSwgMjMsIDMyLCAyMTYsIDE4MCwgODcsIDExLCAyMywgMzIsIDIzNCwgMjIzLCA4NywgMTEsIDIzLCAzMiwgMjI1LCAxMzQsIAotICAgIDg3LCAxMSwgMjMsIDMyLCAyMjMsIDM4LCA4NywgMTEsIDIzLCAzMiwgMjI1LCAxMDksIDg3LCAxMSwgMzUsIDIzLCA2LCAKLSAgICAyNTQsIDE0MywgMTEsIDM1LCAyMywgNiwgMjUyLCAyNiwgMTEsIDM1LCAyMywgNiwgMjQzLCAxMDcsIDExLCAzNSwgMjMsIDYsIAotICAgIDI0OCwgNTQsIDExLCAzNSwgMjMsIDYsIDI0NSwgMTAwLCAxMSwgMzUsIDIzLCA2LCAyMTAsIDg1LCAxMSwgMzUsIDIzLCA2LCAKLSAgICAyNDUsIDYzLCAxMSwgMzUsIDIzLCA2LCAyMTYsIDE3OSwgMTEsIDM1LCAyMywgNiwgMjM1LCAxODUsIDExLCAzNSwgMjMsIDYsIAotICAgIDIzNCwgMjIyLCAxMSwgMzUsIDIzLCA2LCAyMzMsIDk4LCAxMSwgMzUsIDIzLCA2LCAyMzAsIDEwMiwgMTEsIDM1LCAyMywgNiwgCi0gICAgMjI3LCAyMzcsIDExLCAzNSwgMjMsIDYsIDIxMSwgMTU3LCAxMSwgMzUsIDIzLCA2LCAyMjYsIDE5OSwgMTEsIDM1LCAyMywgCi0gICAgNiwgMjI1LCAxMDgsIDExLCAzNSwgMjMsIDYsIDIyMywgMzcsIDExLCAzNSwgMjMsIDYsIDIxNiwgMTgwLCA4NywgMTEsIDM1LCAKLSAgICAyMywgNiwgMjE5LCAxNzcsIDExLCAzNSwgMjMsIDYsIDIxNywgNDEsIDExLCAzNSwgMjMsIDYsIDIxNCwgMTU3LCAxMSwgMzUsIAotICAgIDIzLCA2LCAyMjUsIDEzMywgMTEsIDM1LCAyMywgNiwgMjUwLCAxMTAsIDExLCAzNSwgMjMsIDYsIDIyNCwgMTYxLCAxMSwgCi0gICAgMzUsIDIzLCA2LCAyMjYsIDIwMSwgMTEsIDM1LCAyMywgMjI5LCAyMjEsIDExLCAzNSwgMjMsIDQsIDI1NCwgMTQzLCAxMSwgCi0gICAgMzUsIDIzLCA0LCAyNTIsIDI2LCAxMSwgMzUsIDIzLCA0LCAyNDMsIDEwNywgMTEsIDM1LCAyMywgNCwgMjQ4LCA1NCwgMTEsIAotICAgIDM1LCAyMywgNCwgMjQ1LCAxMDAsIDExLCAzNSwgMjMsIDQsIDIxMCwgODUsIDExLCAzNSwgMjMsIDQsIDI0NSwgNjMsIDExLCAKLSAgICAzNSwgMjMsIDQsIDIxNiwgMTc5LCAxMSwgMzUsIDIzLCA0LCAyMzUsIDE4NSwgMTEsIDM1LCAyMywgNCwgMjM0LCAyMjIsIAotICAgIDExLCAzNSwgMjMsIDQsIDIzMywgOTgsIDExLCAzNSwgMjMsIDQsIDIzMCwgMTAyLCAxMSwgMzUsIDIzLCA0LCAyMjcsIDIzNywgCi0gICAgMTEsIDM1LCAyMywgNCwgMjExLCAxNTcsIDExLCAzNSwgMjMsIDQsIDIyNiwgMTk5LCAxMSwgMzUsIDIzLCA0LCAyMjUsIAotICAgIDEwOCwgMTEsIDM1LCAyMywgNCwgMjIzLCAzNywgMTEsIDM1LCAyMywgNCwgNDAsIDIxOSwgMTc3LCAxMSwgMzUsIDIzLCA0LCAKLSAgICAyMTksIDE3NywgMTEsIDM1LCAyMywgNCwgMjE3LCA0MSwgMTEsIDM1LCAyMywgNCwgMjE0LCAxNTcsIDExLCAzNSwgMjMsIDQsIAotICAgIDIyNSwgMTMzLCAxMSwgMzUsIDIzLCA0LCAyNTAsIDExMCwgMTEsIDM1LCAyMywgNCwgMjI0LCAxNjEsIDExLCAzNSwgMjMsIAotICAgIDQsIDIyNiwgMjAxLCAxMSwgMzUsIDIzLCAyMjUsIDI1MywgMjQ3LCAyMzMsIDExLCAzNSwgMjMsIDI0NSwgMTAxLCA4NywgCi0gICAgMTEsIDM1LCAyMywgMjE2LCAxODAsIDg3LCAxMSwgMzUsIDIzLCAyMzQsIDIyMywgODcsIDExLCAzNSwgMjMsIDIyNSwgMTM0LCAKLSAgICA4NywgMTEsIDM1LCAyMywgMjIzLCAzOCwgODcsIDExLCAzNSwgMjMsIDIyNSwgMTA5LCA4NywgMTEsIDM1LCAyMywgMzIsIDYsIAotICAgIDI1NCwgMTQzLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjUyLCAyNiwgMTEsIDM1LCAyMywgMzIsIDYsIDI0MywgMTA3LCAxMSwgCi0gICAgMzUsIDIzLCAzMiwgNiwgMjQ4LCA1NCwgMTEsIDM1LCAyMywgMzIsIDYsIDI0NSwgMTAwLCAxMSwgMzUsIDIzLCAzMiwgNiwgCi0gICAgMjEwLCA4NSwgMTEsIDM1LCAyMywgMzIsIDYsIDI0NSwgNjMsIDExLCAzNSwgMjMsIDMyLCA2LCAyMTYsIDE3OSwgMTEsIDM1LCAKLSAgICAyMywgMzIsIDYsIDIzNSwgMTg1LCAxMSwgMzUsIDIzLCAzMiwgNiwgMjM0LCAyMjIsIDExLCAzNSwgMjMsIDMyLCA2LCAyMzMsIAotICAgIDk4LCAxMSwgMzUsIDIzLCAzMiwgNiwgMjMwLCAxMDIsIDExLCAzNSwgMjMsIDMyLCA2LCAyMjcsIDIzNywgMTEsIDM1LCAyMywgCi0gICAgMzIsIDYsIDIxMSwgMTU3LCAxMSwgMzUsIDIzLCAzMiwgNiwgMjI2LCAxOTksIDExLCAzNSwgMjMsIDMyLCA2LCAyMjUsIAotICAgIDEwOCwgMTEsIDM1LCAyMywgMzIsIDYsIDIyMywgMzcsIDExLCAzNSwgMjMsIDMyLCA2LCAyMTYsIDE4MCwgODcsIDExLCAzNSwgCi0gICAgMjMsIDMyLCA2LCAyMTksIDE3NywgMTEsIDM1LCAyMywgMzIsIDYsIDIxNywgNDEsIDExLCAzNSwgMjMsIDMyLCA2LCAyMTQsIAotICAgIDE1NywgMTEsIDM1LCAyMywgMzIsIDYsIDIyNSwgMTMzLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjUwLCAxMTAsIDExLCAzNSwgCi0gICAgMjMsIDMyLCA2LCAyMjQsIDE2MSwgMTEsIDM1LCAyMywgMzIsIDYsIDIyNiwgMjAxLCAxMSwgMzUsIDIzLCAzMiwgMjI5LCAKLSAgICAyMjEsIDExLCAzNSwgMjMsIDMyLCA0LCAyNTQsIDE0MywgMTEsIDM1LCAyMywgMzIsIDQsIDI1MiwgMjYsIDExLCAzNSwgMjMsIAotICAgIDMyLCA0LCAyNDMsIDEwNywgMTEsIDM1LCAyMywgMzIsIDQsIDI0OCwgNTQsIDExLCAzNSwgMjMsIDMyLCA0LCAyNDUsIDEwMCwgCi0gICAgMTEsIDM1LCAyMywgMzIsIDQsIDIxMCwgODUsIDExLCAzNSwgMjMsIDMyLCA0LCAyNDUsIDYzLCAxMSwgMzUsIDIzLCAzMiwgCi0gICAgNCwgMjE2LCAxNzksIDExLCAzNSwgMjMsIDMyLCA0LCAyMzUsIDE4NSwgMTEsIDM1LCAyMywgMzIsIDQsIDIzNCwgMjIyLCAKLSAgICAxMSwgMzUsIDIzLCAzMiwgNCwgMjMzLCA5OCwgMTEsIDM1LCAyMywgMzIsIDQsIDIzMCwgMTAyLCAxMSwgMzUsIDIzLCAzMiwgCi0gICAgNCwgMjI3LCAyMzcsIDExLCAzNSwgMjMsIDMyLCA0LCAyMTEsIDE1NywgMTEsIDM1LCAyMywgMzIsIDQsIDIyNiwgMTk5LCAKLSAgICAxMSwgMzUsIDIzLCAzMiwgNCwgMjI1LCAxMDgsIDExLCAzNSwgMjMsIDMyLCA0LCAyMjMsIDM3LCAxMSwgMzUsIDIzLCAzMiwgCi0gICAgNCwgNDAsIDIxOSwgMTc3LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjE5LCAxNzcsIDExLCAzNSwgMjMsIDMyLCA0LCAyMTcsIDQxLCAKLSAgICAxMSwgMzUsIDIzLCAzMiwgNCwgMjE0LCAxNTcsIDExLCAzNSwgMjMsIDMyLCA0LCAyMjUsIDEzMywgMTEsIDM1LCAyMywgMzIsIAotICAgIDQsIDI1MCwgMTEwLCAxMSwgMzUsIDIzLCAzMiwgNCwgMjI0LCAxNjEsIDExLCAzNSwgMjMsIDMyLCA0LCAyMjYsIDIwMSwgCi0gICAgMTEsIDM1LCAyMywgMzIsIDIyNSwgMjUzLCAyNDcsIDIzMywgMTEsIDM1LCAyMywgMzIsIDI0NSwgMTAxLCA4NywgMTEsIDM1LCAKLSAgICAyMywgMzIsIDIxNiwgMTgwLCA4NywgMTEsIDM1LCAyMywgMzIsIDIzNCwgMjIzLCA4NywgMTEsIDM1LCAyMywgMzIsIDIyNSwgCi0gICAgMTM0LCA4NywgMTEsIDM1LCAyMywgMzIsIDIyMywgMzgsIDg3LCAxMSwgMzUsIDIzLCAzMiwgMjI1LCAxMDksIDg3LCAxMSwgCi0gICAgMjMsIDYsIDI0NywgMjI3LCAxMSwgMjMsIDQsIDI0NywgMjI3LCAxMSwgMjMsIDIxLCAyMTAsIDg2LCAxMSwgMjMsIDIxLCAKLSAgICAxMTAsIDExLCAyMywgMjEsIDEwNSwgMTEsIDIzLCAyMSwgMTU4LCAxMSwgMjMsIDIxLCAxNjEsIDExLCAyMywgMjEsIDE4OSwgCi0gICAgMTEsIDIzLCAyMSwgMTk0LCAxMSwgMjMsIDIxLCAxOTgsIDExLCAyMywgMjEsIDE5NSwgMTEsIDIzLCAyMSwgMjAwLCAxMSwgCi0gICAgMTM5LCAyMSwgMjEwLCA4NiwgMTEsIDEzOSwgMjEsIDExMCwgMTEsIDEzOSwgMjEsIDEwNSwgMTEsIDEzOSwgMjEsIDE1OCwgCi0gICAgMTEsIDEzOSwgMjEsIDE2MSwgMTEsIDEzOSwgMjEsIDE4OSwgMTEsIDEzOSwgMjEsIDE5NCwgMTEsIDEzOSwgMjEsIDE5OCwgCi0gICAgMTEsIDEzOSwgMjEsIDE5NSwgMTEsIDEzOSwgMjEsIDIwMCwgMTEsIDM1LCAyMSwgMjEwLCA4NiwgMTEsIDM1LCAyMSwgMTEwLCAKLSAgICAxMSwgMzUsIDIxLCAxMDUsIDExLCAzNSwgMjEsIDE1OCwgMTEsIDM1LCAyMSwgMTYxLCAxMSwgMzUsIDIxLCAxODksIDExLCAKLSAgICAzNSwgMjEsIDE5NCwgMTEsIDM1LCAyMSwgMTk4LCAxMSwgMzUsIDIxLCAxOTUsIDExLCAzNSwgMjEsIDIwMCwgMTEsIDM1LCAKLSAgICAyMywgMjEsIDIxMCwgODYsIDExLCAzNSwgMjMsIDIxLCAxMTAsIDExLCAzNSwgMjMsIDIxLCAxMDUsIDExLCAzNSwgMjMsIAotICAgIDIxLCAxNTgsIDExLCAzNSwgMjMsIDIxLCAxNjEsIDExLCAzNSwgMjMsIDIxLCAxODksIDExLCAzNSwgMjMsIDIxLCAxOTQsIAotICAgIDExLCAzNSwgMjMsIDIxLCAxOTgsIDExLCAzNSwgMjMsIDIxLCAxOTUsIDExLCAzNSwgMjMsIDIxLCAyMDAsIDExLCAyMzAsIAotICAgIDEzOCwgMjEsIDIxMCwgODYsIDExLCAyMzAsIDEzOCwgMjEsIDExMCwgMTEsIDIzMCwgMTM4LCAyMSwgMTA1LCAxMSwgMjMwLCAKLSAgICAxMzgsIDIxLCAxNTgsIDExLCAyMzAsIDEzOCwgMjEsIDE2MSwgMTEsIDIzMCwgMTM4LCAyMSwgMTg5LCAxMSwgMjMwLCAxMzgsIAotICAgIDIxLCAxOTQsIDExLCAyMzAsIDEzOCwgMjEsIDE5OCwgMTEsIDIzMCwgMTM4LCAyMSwgMTk1LCAxMSwgMjMwLCAxMzgsIDIxLCAKLSAgICAyMDAsIDEwLCAxMSwgMjU0LCAxNzAsIDEwLCAxMSwgMjUyLCA1NCwgMTAsIDExLCAyMzUsIDEyMywgMTAsIDExLCAyNDgsIAotICAgIDE5NSwgMTAsIDExLCAyMTIsIDMwLCAxMCwgMTEsIDIxMCwgMTA4LCAxMCwgMTEsIDI0MiwgMzcsIDEwLCAxMSwgMjE3LCA4MCwgCi0gICAgMTAsIDExLCAyMTEsIDQzLCAxMCwgMTEsIDIzNCwgMjUwLCAxMCwgMTEsIDIzMywgMTAyLCAxMCwgMTEsIDIzMSwgNzgsIDEwLCAKLSAgICAxMSwgMjI4LCA2MiwgMTAsIDExLCAyMjEsIDE2NiwgMTAsIDExLCAyNTQsIDE5NiwgMTAsIDExLCAyNDQsIDE0MiwgMTAsIAotICAgIDExLCAyMjIsIDI2LCAxMCwgMTEsIDIyNCwgODEsIDEwLCAxMSwgMjIzLCA5NSwgMTAsIDExLCAyMjAsIDU5LCAxMCwgMTEsIAotICAgIDIxNywgNywgMTAsIDExLCAyMTYsIDE5MiwgMTAsIDExLCAyMzQsIDEyOSwgMTAsIDExLCAyMTYsIDIwMiwgMTAsIDExLCAKLSAgICAyNDgsIDIxNiwgMTAsIDExLCAyMTAsIDExMSwgMTAsIDExLCAyNDIsIDI0NCwgMTAsIDExLCAyNDcsIDExOSwgMjUyLCA1NCwgCi0gICAgMTAsIDExLCAyNDcsIDExOSwgMjI4LCA2MiwgMTAsIDExLCAyNDcsIDExOSwgMjQ0LCAxNDIsIDEwLCAxMSwgMjQ3LCAxMTksIAotICAgIDIyNCwgODEsIDEwLCAxMSwgNjUsIDI1MiwgNTQsIDEwLCAxMSwgNjUsIDIzNSwgMTIzLCAxMCwgMTEsIDY1LCAyNDEsIDIxOCwgCi0gICAgMTAsIDExLCA2NSwgMjQyLCAzNywgMTAsIDExLCA2NSwgMjExLCA0MywgMTAsIDExLCA2NSwgMjM0LCAyNTAsIDEwLCAxMSwgCi0gICAgNjUsIDIzMywgMTAyLCAxMCwgMTEsIDY1LCAyMzEsIDc4LCAxMCwgMTEsIDY1LCAyMjgsIDYyLCAxMCwgMTEsIDY1LCAyMjEsIAotICAgIDE2NiwgMTAsIDExLCA2NSwgMjU0LCAxOTYsIDEwLCAxMSwgNjUsIDI0NCwgMTQyLCAxMCwgMTEsIDY1LCAyMjIsIDI2LCAxMCwgCi0gICAgMTEsIDY1LCAyMjQsIDgxLCAxMCwgMTEsIDY1LCAyMjAsIDU5LCAxMCwgMTEsIDY1LCAyMTcsIDcsIDEwLCAxMSwgNjUsIAotICAgIDIxNiwgMTkyLCAxMCwgMTEsIDY1LCAyMzQsIDEyOSwgMTAsIDExLCA2NSwgMjQ4LCAyMTYsIDEwLCAxMSwgNjUsIDI0MiwgCi0gICAgMjQ0LCAxMCwgMTEsIDIxNywgNzYsIDIzNSwgMTIzLCAxMCwgMTEsIDIxNywgNzYsIDI0MiwgMzcsIDEwLCAxMSwgMjE3LCAKLSAgICA3NiwgMjExLCA0MywgMTAsIDExLCAyMTcsIDc2LCAyMzMsIDEwMiwgMTAsIDExLCAyMTcsIDc2LCAyMjgsIDYyLCAxMCwgMTEsIAotICAgIDIxNywgNzYsIDIyMSwgMTY2LCAxMCwgMTEsIDIxNywgNzYsIDI1NCwgMTk2LCAxMCwgMTEsIDIxNywgNzYsIDIyMiwgMjYsIAotICAgIDEwLCAxMSwgMjE3LCA3NiwgMjI0LCA4MSwgMTAsIDExLCAyMTcsIDc2LCAyMjAsIDU5LCAxMCwgMTEsIDIxNywgNzYsIDIzNCwgCi0gICAgMTI5LCAxMCwgMTEsIDIxNywgNzYsIDI0OCwgMjE2LCAxMCwgMTEsIDIxNywgNzYsIDI0MiwgMjQ0LCAxMCwgMTEsIDIxNywgCi0gICAgNzYsIDI0NywgMTE5LCAyMjgsIDYyLCAxMCwgMTEsIDIxNywgNzYsIDI0NywgMTE5LCAyMjQsIDgxLCAxMCwgMTEsIDIxOCwgCi0gICAgMTEwLCAyNTIsIDU0LCAxMCwgMTEsIDIxOCwgMTEwLCAyMzUsIDEyMywgMTAsIDExLCAyMTgsIDExMCwgMjQxLCAyMTgsIDEwLCAKLSAgICAxMSwgMjE4LCAxMTAsIDI0MiwgMzcsIDEwLCAxMSwgMjE4LCAxMTAsIDIxNywgODAsIDEwLCAxMSwgMjE4LCAxMTAsIDIxMSwgCi0gICAgNDMsIDEwLCAxMSwgMjE4LCAxMTAsIDIzNCwgMjUwLCAxMCwgMTEsIDIxOCwgMTEwLCAyMzEsIDc4LCAxMCwgMTEsIDIxOCwgCi0gICAgMTEwLCAyMjgsIDYyLCAxMCwgMTEsIDIxOCwgMTEwLCAyMjEsIDE2NiwgMTAsIDExLCAyMTgsIDExMCwgMjU0LCAxOTYsIDEwLCAKLSAgICAxMSwgMjE4LCAxMTAsIDI0NCwgMTQyLCAxMCwgMTEsIDIxOCwgMTEwLCAyMjIsIDI2LCAxMCwgMTEsIDIxOCwgMTEwLCAyMjQsIAotICAgIDgxLCAxMCwgMTEsIDIxOCwgMTEwLCAyMjAsIDU5LCAxMCwgMTEsIDIxOCwgMTEwLCAyMTcsIDcsIDEwLCAxMSwgMjE4LCAKLSAgICAxMTAsIDIxNiwgMTkyLCAxMCwgMTEsIDIxOCwgMTEwLCAyMzQsIDEyOSwgMTAsIDExLCAyMTgsIDExMCwgMjQ4LCAyMTYsIAotICAgIDEwLCAxMSwgMjE4LCAxMTAsIDIxMCwgMTExLCAxMCwgMTEsIDIxOCwgMTEwLCAyNDIsIDI0NCwgMTAsIDExLCAyMTgsIDExMCwgCi0gICAgMjQ3LCAxMTksIDI1MiwgNTQsIDEwLCAxMSwgMjE4LCAxMTAsIDI0NywgMTE5LCAyNDQsIDE0MiwgMTAsIDExLCAyMzIsIAotICAgIDEyMiwgMjU0LCAxNzAsIDEwLCAxMSwgMjMyLCAxMjIsIDI1MiwgNTQsIDEwLCAxMSwgMjMyLCAxMjIsIDIzNSwgMTIzLCAxMCwgCi0gICAgMTEsIDIzMiwgMTIyLCAyNDgsIDE5NSwgMTAsIDExLCAyMzIsIDEyMiwgMjQxLCAyMTgsIDEwLCAxMSwgMjMyLCAxMjIsIAotICAgIDIxMiwgMzAsIDEwLCAxMSwgMjMyLCAxMjIsIDIxMCwgMTA4LCAxMCwgMTEsIDIzMiwgMTIyLCAyNDIsIDM3LCAxMCwgMTEsIAotICAgIDIzMiwgMTIyLCAyMTcsIDgwLCAxMCwgMTEsIDIzMiwgMTIyLCAyMTEsIDQzLCAxMCwgMTEsIDIzMiwgMTIyLCAyMzMsIDEwMiwgCi0gICAgMTAsIDExLCAyMzIsIDEyMiwgMjMxLCA3OCwgMTAsIDExLCAyMzIsIDEyMiwgMjI4LCA2MiwgMTAsIDExLCAyMzIsIDEyMiwgCi0gICAgMjIxLCAxNjYsIDEwLCAxMSwgMjMyLCAxMjIsIDI1NCwgMTk2LCAxMCwgMTEsIDIzMiwgMTIyLCAyNDQsIDE0MiwgMTAsIDExLCAKLSAgICAyMzIsIDEyMiwgMjIyLCAyNiwgMTAsIDExLCAyMzIsIDEyMiwgMjI0LCA4MSwgMTAsIDExLCAyMzIsIDEyMiwgMjIzLCA5NSwgCi0gICAgMTAsIDExLCAyMzIsIDEyMiwgMjIwLCA1OSwgMTAsIDExLCAyMzIsIDEyMiwgMjE3LCA3LCAxMCwgMTEsIDIzMiwgMTIyLCAKLSAgICAyMTYsIDE5MiwgMTAsIDExLCAyMzIsIDEyMiwgMjM0LCAxMjksIDEwLCAxMSwgMjMyLCAxMjIsIDIxNiwgMjAyLCAxMCwgMTEsIAotICAgIDIzMiwgMTIyLCAyNDgsIDIxNiwgMTAsIDExLCAyMzIsIDEyMiwgMjEwLCAxMTEsIDEwLCAxMSwgMjMyLCAxMjIsIDI0MiwgCi0gICAgMjQ0LCAxMCwgMTEsIDEzOSwgMjUyLCA1NCwgMTAsIDExLCAxMzksIDIzNSwgMTIzLCAxMCwgMTEsIDEzOSwgMjQ4LCAxOTUsIAotICAgIDEwLCAxMSwgMTM5LCAyMTIsIDMwLCAxMCwgMTEsIDEzOSwgMjEwLCAxMDgsIDEwLCAxMSwgMTM5LCAyNDIsIDM3LCAxMCwgCi0gICAgMTEsIDEzOSwgMjE3LCA4MCwgMTAsIDExLCAxMzksIDIxMSwgNDMsIDEwLCAxMSwgMTM5LCAyMzMsIDEwMiwgMTAsIDExLCAKLSAgICAxMzksIDIzMSwgNzgsIDEwLCAxMSwgMTM5LCAyMjgsIDYyLCAxMCwgMTEsIDEzOSwgMjIxLCAxNjYsIDEwLCAxMSwgMTM5LCAKLSAgICAyNTQsIDE5NiwgMTAsIDExLCAxMzksIDI0NCwgMTQyLCAxMCwgMTEsIDEzOSwgMjIyLCAyNiwgMTAsIDExLCAxMzksIDIyNCwgCi0gICAgODEsIDEwLCAxMSwgMTM5LCAyMjMsIDk1LCAxMCwgMTEsIDEzOSwgMjIwLCA1OSwgMTAsIDExLCAxMzksIDIxNywgNywgMTAsIAotICAgIDExLCAxMzksIDIxNiwgMTkyLCAxMCwgMTEsIDEzOSwgMjM0LCAxMjksIDEwLCAxMSwgMTM5LCAyMTYsIDIwMiwgMTAsIDExLCAKLSAgICAxMzksIDI0OCwgMjE2LCAxMCwgMTEsIDEzOSwgMjEwLCAxMTEsIDEwLCAxMSwgMTM5LCAyNDIsIDI0NCwgMTAsIDExLCAyMjYsIAotICAgIDE2OCwgNjYsIDIsIDEyMiwgMiwgMjE3LCA0MywgMTAsIDExLCAyMjYsIDE2OCwgMTIyLCAyLCAyNDgsIDE5NSwgMjMxLCAKLSAgICAyMDUsIDg2LCAyNDUsIDIyMCwgMjExLCAyMzksIDIzMSwgMjA1LCA4NiwgMjE5LCAyOCwgMjExLCAyMzksIDIzMSwgMjA1LCAKLSAgICA4NiwgMjEyLCA5LCAyMTEsIDIzOSwgMjMxLCAyMDUsIDg2LCAyMjgsIDU2LCAyMTEsIDIzOSwgMjMxLCAyMDUsIDg2LCAyMjMsIAotICAgIDExMSwgMjQ2LCA5NiwgMjMxLCAyMDUsIDg2LCAyNDIsIDEyNywgMjQ2LCA5NiwgMjMxLCAyMDUsIDg2LCA3MSwgMjQ2LCA5NiwgCi0gICAgMjMxLCAyMDUsIDg2LCAxMjMsIDY0LCAyNTAsIDE0MSwgMjMxLCAyMDUsIDg2LCAxMTMsIDY0LCAyNTAsIDE0MSwgMjMxLCAKLSAgICAyMDUsIDg2LCAxMzQsIDY0LCAyNTAsIDE0MSwgMjMxLCAyMDUsIDg2LCAyNDQsIDExLCA2NCwgMjUwLCAxNDEsIDIzMSwgCi0gICAgMjA1LCA4NiwgMjQ0LCA4MSwgNjQsIDI1MCwgMTQxLCAyMzEsIDIwNSwgODYsIDIxOSwgMTI1LCA2NCwgMjUwLCAxNDEsIAotICAgIDIzMSwgMjA1LCA4NiwgMjIwLCAxMjIsIDY0LCAyNTAsIDE0MSwgMjMxLCAyMDUsIDg2LCAyNDUsIDE5MywgNjQsIDI1MCwgCi0gICAgMTQxLCAyMzEsIDIwNSwgODYsIDIyOCwgMjAwLCA2NCwgMjUwLCAxNDEsIDIzMSwgMjA1LCA4NiwgMTIzLCA2NCwgMjUyLCAKLSAgICAxNTMsIDIzMSwgMjA1LCA4NiwgMTEzLCA2NCwgMjUyLCAxNTMsIDIzMSwgMjA1LCA4NiwgMTM0LCA2NCwgMjUyLCAxNTMsIAotICAgIDIzMSwgMjA1LCA4NiwgMjQ0LCAxMSwgNjQsIDI1MiwgMTUzLCAyMzEsIDIwNSwgODYsIDI0NCwgODEsIDY0LCAyNTIsIDE1MywgCi0gICAgMjMxLCAyMDUsIDg2LCAyMTksIDEyNSwgNjQsIDI1MiwgMTUzLCAyMzEsIDIwNSwgODYsIDIyMCwgMTIyLCA2NCwgMjUyLCAKLSAgICAxNTMsIDIzMSwgMjA1LCA4NiwgMjQ1LCAxOTMsIDY0LCAyNTIsIDE1MywgMjMxLCAyMDUsIDg2LCAyMjgsIDIwMCwgNjQsIAotICAgIDI1MiwgMTUzLCAyMzEsIDIwNSwgODYsIDEyMywgNjQsIDI1MCwgMzQsIDIzMSwgMjA1LCA4NiwgMTEzLCA2NCwgMjUwLCAzNCwgCi0gICAgMjMxLCAyMDUsIDg2LCAxMzQsIDY0LCAyNTAsIDM0LCAyMzEsIDIwNSwgODYsIDI0NCwgMTEsIDY0LCAyNTAsIDM0LCAyMzEsIAotICAgIDIwNSwgODYsIDI0NCwgODEsIDY0LCAyNTAsIDM0LCAyMzEsIDIwNSwgODYsIDIxOSwgMTI1LCA2NCwgMjUwLCAzNCwgMjMxLCAKLSAgICAyMDUsIDg2LCAyMjAsIDEyMiwgNjQsIDI1MCwgMzQsIDIzMSwgMjA1LCA4NiwgMjQ1LCAxOTMsIDY0LCAyNTAsIDM0LCAyMzEsIAotICAgIDIwNSwgODYsIDIyOCwgMjAwLCA2NCwgMjUwLCAzNCwgMjMxLCAyMDUsIDg2LCAyMjUsIDI1LCAyMzEsIDIwNSwgODYsIDIyNiwgCi0gICAgMTU2LCAyMzEsIDIwNSwgODYsIDI1MiwgMTU0LCAyMzEsIDIwNSwgODYsIDI1MCwgNzAsIDIzMSwgMjA1LCA4NiwgMjE4LCAKLSAgICAyMzksIDIzMSwgMjA1LCA4NiwgMjE4LCAzOSwgMjMxLCAyMDUsIDg2LCAyNTMsIDE3OSwgMjMxLCAyMDUsIDg2LCAyMTEsIAotICAgIDIzMiwgMjMxLCAyMDUsIDg2LCAyMzUsIDYyLCAyMzEsIDIwNSwgODYsIDI1MiwgMTg0LCAxMzEsIDg2LCAyMDMsIDI1MiwgCi0gICAgMTg0LCAxMzEsIDg2LCAyNDEsIDQzLCAxMzEsIDg2LCAyNDEsIDQyLCAxMzEsIDg2LCAyNDEsIDQxLCAxMzEsIDg2LCAyNDEsIAotICAgIDQwLCAxMzEsIDg2LCAyNDEsIDM5LCAxMzEsIDg2LCAyNDEsIDM4LCAxMzEsIDg2LCAyNDEsIDM3LCAxMzEsIDg2LCAyNDEsIAotICAgIDM2LCAxMzEsIDg2LCAyNDEsIDM1LCAxMzEsIDg2LCAyNDEsIDM0LCAxMzEsIDg2LCAyNDEsIDMzLCAxMzEsIDg2LCAyNDEsIAotICAgIDMyLCAxMzEsIDg2LCAyNDEsIDMxLCAxMzEsIDg2LCAyNDEsIDMwLCAxMzEsIDg2LCAyNDEsIDI5LCAxMzEsIDg2LCAyNDEsIAotICAgIDI4LCAxMzEsIDg2LCAyNDEsIDI3LCAxMzEsIDg2LCAyNDEsIDI2LCAxMzEsIDg2LCAyNDEsIDI1LCAxMzEsIDg2LCAyNDEsIAotICAgIDI0LCAxMzEsIDg2LCAyNDEsIDIzLCAxMzEsIDg2LCAyNDEsIDIyLCAxMzEsIDg2LCAyNDEsIDIxLCAxMzEsIDg2LCAyNDEsIAotICAgIDIwLCAxMzEsIDg2LCAyNDEsIDE5LCAxMzEsIDg2LCAyNDEsIDE4LCAxMzEsIDg2LCAyNDEsIDE3LCAxMzEsIDg2LCAyNDEsIAotICAgIDE2LCAxMzEsIDg2LCAyNDEsIDE1LCAxMzEsIDg2LCAyNDEsIDE0LCAxMzEsIDg2LCAyNDEsIDEzLCAxMzEsIDg2LCAyNDEsIAotICAgIDEyLCAxMzEsIDg2LCAyNDEsIDExLCAxMzEsIDg2LCAyNDEsIDEwLCAxMzEsIDg2LCAyNDEsIDksIDEzMSwgODYsIDI0MSwgOCwgCi0gICAgMTMxLCA4NiwgMjQxLCA3LCAxMzEsIDg2LCAyNDEsIDYsIDEzMSwgODYsIDI0MSwgNSwgMTMxLCA4NiwgMjQxLCA0LCAxMzEsIAotICAgIDg2LCAyNDEsIDMsIDEzMSwgODYsIDI0MSwgMiwgMTMxLCA4NiwgMjQxLCAxLCAxMzEsIDg2LCAyNDEsIDAsIDEzMSwgODYsIAotICAgIDI0MCwgMjU1LCAxMzEsIDg2LCAyNDAsIDI1NCwgMTMxLCA4NiwgMjQwLCAyNTMsIDEzMSwgODYsIDI0MCwgMjUyLCAxMzEsIAotICAgIDg2LCAyNDAsIDI1MSwgMTMxLCA4NiwgNjcsIDI1MiwgMTg0LCAxMzEsIDg2LCAyMTMsIDIzOCwgMTMxLCA4NiwgMjEzLCAKLSAgICAyMzcsIDEzMSwgODYsIDIxMywgMjM2LCAxMzEsIDg2LCAyMTMsIDIzNSwgMTMxLCA4NiwgMjEzLCAyMzQsIDEzMSwgODYsIAotICAgIDIxMywgMjMzLCAxMzEsIDg2LCAyMTMsIDIzMiwgMTMxLCA4NiwgMjEzLCAyMzEsIDEzMSwgODYsIDIxMywgMjMwLCAxMzEsIAotICAgIDg2LCAyMTMsIDIyOSwgMTMxLCA4NiwgMjEzLCAyMjgsIDEzMSwgODYsIDIxMywgMjI3LCAxMzEsIDg2LCAyMTMsIDIyNiwgCi0gICAgMTMxLCA4NiwgMjEzLCAyMjUsIDEzMSwgODYsIDIxMywgMjI0LCAxMzEsIDg2LCAyMTMsIDIyMywgMTMxLCA4NiwgMjEzLCAKLSAgICAyMjIsIDEzMSwgODYsIDIxMywgMjIxLCAxMzEsIDg2LCAyMTMsIDIyMCwgMTMxLCA4NiwgMjEzLCAyMTksIDEzMSwgODYsIAotICAgIDIxMywgMjE4LCAxMzEsIDg2LCAyMTMsIDIxNywgMTMxLCA4NiwgMjEzLCAyMTYsIDEzMSwgODYsIDIxMywgMjE1LCAxMzEsIAotICAgIDg2LCAyMTMsIDIxNCwgMTMxLCA4NiwgMjEzLCAyMTMsIDEzMSwgODYsIDIxMywgMjEyLCAxMzEsIDg2LCAyMTMsIDIxMSwgCi0gICAgMTMxLCA4NiwgMjEzLCAyMTAsIDEzMSwgODYsIDIxMywgMjA5LCAxMzEsIDg2LCAyMTMsIDIwOCwgMTMxLCA4NiwgMjEzLCAKLSAgICAyMDcsIDEzMSwgODYsIDIxMywgMjA2LCAxMzEsIDg2LCAyMTMsIDIwNSwgMTMxLCA4NiwgMjEzLCAyMDQsIDEzMSwgODYsIAotICAgIDIxMywgMjAzLCAxMzEsIDg2LCAyMTMsIDIwMiwgMTMxLCA4NiwgMjEzLCAyMDEsIDEzMSwgODYsIDIxMywgMjAwLCAxMzEsIAotICAgIDg2LCAyMTMsIDE5OSwgMTMxLCA4NiwgMjEzLCAxOTgsIDEzMSwgODYsIDIxMywgMTk3LCAxMzEsIDg2LCAyMTMsIDE5NiwgCi0gICAgMTMxLCA4NiwgMjEzLCAxOTUsIDEzMSwgODYsIDIxMywgMTk0LCAxMzEsIDg2LCAyMTMsIDE5MywgMTMxLCA4NiwgMjEzLCAKLSAgICAxOTIsIDEzMSwgODYsIDIxMywgMTkxLCAxMzEsIDg2LCAyMTMsIDE5MCwgMjI1LCAzMywgMjUwLCAyNDMsIDI1MiwgMTg0LCAKLSAgICAyMjUsIDMzLCAyNTAsIDI0MywgMjU1LCA5LCA2NCwgMjE5LCAxNSwgMjI1LCAzMywgMjUwLCAyNDMsIDExMywgNjQsIDIxOSwgCi0gICAgMTUsIDIyNSwgMzMsIDI1MCwgMjQzLCAxMzQsIDY0LCAyMTksIDE1LCAyMjUsIDMzLCAyNTAsIDI0MywgMjQ0LCAxMSwgNjQsIAotICAgIDIxOSwgMTUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyNDQsIDgxLCA2NCwgMjE5LCAxNSwgMjI1LCAzMywgMjUwLCAyNDMsIDIxOSwgCi0gICAgMTI1LCA2NCwgMjE5LCAxNSwgMjI1LCAzMywgMjUwLCAyNDMsIDIyMCwgMTIyLCA2NCwgMjE5LCAxNSwgMjI1LCAzMywgMjUwLCAKLSAgICAyNDMsIDI0NSwgMTkzLCA2NCwgMjE5LCAxNSwgMjI1LCAzMywgMjUwLCAyNDMsIDIyOCwgMjAwLCA2NCwgMjE5LCAxNSwgCi0gICAgMjI1LCAzMywgMjUwLCAyNDMsIDIxNiwgMjQ4LCA2NCwgMjE5LCAxNSwgMjI1LCAzMywgMjUwLCAyNDMsIDIzNSwgMTM5LCAKLSAgICA2NCwgMjE5LCAxNSwgMjI1LCAzMywgMjUwLCAyNDMsIDIzNCwgMzEsIDY0LCAyMTksIDE1LCAyMjUsIDMzLCAyNTAsIDI0MywgCi0gICAgMjI0LCAxNSwgNjQsIDIxOSwgMTUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMzQsIDc5LCA2NCwgMjE5LCAxNSwgMjI1LCAzMywgCi0gICAgMjUwLCAyNDMsIDI1NSwgOSwgNjQsIDI0MSwgMjI1LCAyMjUsIDMzLCAyNTAsIDI0MywgMTEzLCA2NCwgMjQxLCAyMjUsIAotICAgIDIyNSwgMzMsIDI1MCwgMjQzLCAxMzQsIDY0LCAyNDEsIDIyNSwgMjI1LCAzMywgMjUwLCAyNDMsIDI0NCwgMTEsIDY0LCAKLSAgICAyNDEsIDIyNSwgMjI1LCAzMywgMjUwLCAyNDMsIDI0NCwgODEsIDY0LCAyNDEsIDIyNSwgMjI1LCAzMywgMjUwLCAyNDMsIAotICAgIDIxOSwgMTI1LCA2NCwgMjQxLCAyMjUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMjAsIDEyMiwgNjQsIDI0MSwgMjI1LCAyMjUsIAotICAgIDMzLCAyNTAsIDI0MywgMjQ1LCAxOTMsIDY0LCAyNDEsIDIyNSwgMjI1LCAzMywgMjUwLCAyNDMsIDIyOCwgMjAwLCA2NCwgCi0gICAgMjQxLCAyMjUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMTYsIDI0OCwgNjQsIDI0MSwgMjI1LCAyMjUsIDMzLCAyNTAsIDI0MywgCi0gICAgMjM1LCAxMzksIDY0LCAyNDEsIDIyNSwgMjI1LCAzMywgMjUwLCAyNDMsIDIzNCwgMzEsIDY0LCAyNDEsIDIyNSwgMjI1LCAKLSAgICAzMywgMjUwLCAyNDMsIDIyNCwgMTUsIDY0LCAyNDEsIDIyNSwgMjI1LCAzMywgMjUwLCAyNDMsIDIzNCwgNzksIDY0LCAyNDEsIAotICAgIDIyNSwgMjI1LCAzMywgMjUwLCAyNDMsIDI1NSwgOSwgNjQsIDI0NywgMjQ3LCAyMjUsIDMzLCAyNTAsIDI0MywgMTEzLCA2NCwgCi0gICAgMjQ3LCAyNDcsIDIyNSwgMzMsIDI1MCwgMjQzLCAxMzQsIDY0LCAyNDcsIDI0NywgMjI1LCAzMywgMjUwLCAyNDMsIDI0NCwgCi0gICAgMTEsIDY0LCAyNDcsIDI0NywgMjI1LCAzMywgMjUwLCAyNDMsIDI0NCwgODEsIDY0LCAyNDcsIDI0NywgMjI1LCAzMywgMjUwLCAKLSAgICAyNDMsIDIxOSwgMTI1LCA2NCwgMjQ3LCAyNDcsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMjAsIDEyMiwgNjQsIDI0NywgMjQ3LCAKLSAgICAyMjUsIDMzLCAyNTAsIDI0MywgMjQ1LCAxOTMsIDY0LCAyNDcsIDI0NywgMjI1LCAzMywgMjUwLCAyNDMsIDIyOCwgMjAwLCAKLSAgICA2NCwgMjQ3LCAyNDcsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMTYsIDI0OCwgNjQsIDI0NywgMjQ3LCAyMjUsIDMzLCAyNTAsIAotICAgIDI0MywgMjM1LCAxMzksIDY0LCAyNDcsIDI0NywgMjI1LCAzMywgMjUwLCAyNDMsIDIzNCwgMzEsIDY0LCAyNDcsIDI0NywgCi0gICAgMjI1LCAzMywgMjUwLCAyNDMsIDIyNCwgMTUsIDY0LCAyNDcsIDI0NywgMjI1LCAzMywgMjUwLCAyNDMsIDIzNCwgNzksIDY0LCAKLSAgICAyNDcsIDI0NywgMjI1LCAzMywgMjUwLCAyNDMsIDg1LCAyMzUsIDYyLCAyMjUsIDMzLCAyNTAsIDI0MywgMjU1LCA5LCA2NCwgCi0gICAgMjQ5LCAyNDIsIDIyNSwgMzMsIDI1MCwgMjQzLCAxMTMsIDY0LCAyNDksIDI0MiwgMjI1LCAzMywgMjUwLCAyNDMsIDEzNCwgCi0gICAgNjQsIDI0OSwgMjQyLCAyMjUsIDMzLCAyNTAsIDI0MywgMjQ0LCAxMSwgNjQsIDI0OSwgMjQyLCAyMjUsIDMzLCAyNTAsIAotICAgIDI0MywgMjQ0LCA4MSwgNjQsIDI0OSwgMjQyLCAyMjUsIDMzLCAyNTAsIDI0MywgMjE5LCAxMjUsIDY0LCAyNDksIDI0MiwgCi0gICAgMjI1LCAzMywgMjUwLCAyNDMsIDIyMCwgMTIyLCA2NCwgMjQ5LCAyNDIsIDIyNSwgMzMsIDI1MCwgMjQzLCAyNDUsIDE5MywgCi0gICAgNjQsIDI0OSwgMjQyLCAyMjUsIDMzLCAyNTAsIDI0MywgMjI4LCAyMDAsIDY0LCAyNDksIDI0MiwgMjI1LCAzMywgMjUwLCAKLSAgICAyNDMsIDIxNiwgMjQ4LCA2NCwgMjQ5LCAyNDIsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMzUsIDEzOSwgNjQsIDI0OSwgMjQyLCAKLSAgICAyMjUsIDMzLCAyNTAsIDI0MywgMjM0LCAzMSwgNjQsIDI0OSwgMjQyLCAyMjUsIDMzLCAyNTAsIDI0MywgMjI0LCAxNSwgNjQsIAotICAgIDI0OSwgMjQyLCAyMjUsIDMzLCAyNTAsIDI0MywgMjM0LCA3OSwgNjQsIDI0OSwgMjQyLCAyMjUsIDMzLCAyNTAsIDI0MywgCi0gICAgNzEsIDIzNSwgNjIsIDIxLCAyMTAsIDg3LCAyNDMsIDIyOSwgMjE4LCAxMjksIDIxLCAyMTAsIDg3LCAyNDksIDIxOSwgMjEsIAotICAgIDEyMywgMjQ5LCAyMTksIDIxLCAxMTMsIDI0OSwgMjE5LCAyMSwgMTM0LCAyNDksIDIxOSwgMjEsIDI0NCwgMTEsIDI0OSwgCi0gICAgMjE5LCAyMSwgMjQ0LCA4MSwgMjQ5LCAyMTksIDIxLCAyMTksIDEyNSwgMjQ5LCAyMTksIDIxLCAyMjAsIDEyMiwgMjQ5LCAKLSAgICAyMTksIDIxLCAyNDUsIDE5MywgMjQ5LCAyMTksIDIxLCAyMjgsIDIwMCwgMjQ5LCAyMTksIDg4LCA3LCA2LCAxLCA2MSwgODgsIAotICAgIDcsIDYsIDEsIDI1MywgMTU4LCA4OCwgNywgNiwgMSwgMjUxLCA2NiwgODgsIDcsIDYsIDEsIDI0OSwgNjAsIDg4LCA3LCA2LCAKLSAgICAxLCA3NSwgODgsIDcsIDYsIDEsIDI0NSwgNiwgODgsIDcsIDYsIDEsIDI0MywgMjAyLCA4OCwgNywgNiwgMSwgMjQyLCA2MCwgCi0gICAgODgsIDcsIDYsIDEsIDczLCA4OCwgNywgNiwgMSwgMjM1LCAxNDQsIDg4LCA3LCA2LCAxLCAyMzUsIDIzLCA4OCwgNywgNiwgCi0gICAgMSwgMTU2LCA4OCwgNywgNiwgMSwgMTkzLCA4OCwgNywgNiwgMSwgMjMwLCAyNSwgODgsIDcsIDYsIDEsIDc2LCA4OCwgNywgCi0gICAgNiwgMSwgMjI2LCAxMDUsIDg4LCA3LCA2LCAxLCAyMjQsIDk2LCA4OCwgNywgNiwgMSwgMTUzLCA4OCwgNywgNiwgMSwgMjIyLCAKLSAgICA5MSwgODgsIDcsIDYsIDEsIDIxNywgMTUyLCA4OCwgNywgNiwgMSwgNzAsIDg4LCA3LCA2LCAxLCAyMTQsIDEwNSwgODgsIDcsIAotICAgIDYsIDEsIDIxMiwgOTgsIDg4LCA3LCA2LCAxLCAyMTEsIDE3OCwgODgsIDcsIDYsIDEsIDIxMSwgMTE3LCA4OCwgNywgNiwgMSwgCi0gICAgMjEwLCAxNTksIDIxNiwgNiwgMjIwLCA1MywgMjUxLCAxNTcsIDcsIDYsIDEsIDIyMiwgOTEsIDM3LCAzMiwgNywgNiwgMSwgCi0gICAgMjUxLCA2NiwgMzcsIDMyLCA3LCA2LCAxLCAxNTMsIDM3LCAyNTAsIDE5MSwgMzcsIDIxMSwgMTgwLCA5MiwgNywgNiwgMSwgCi0gICAgNjEsIDkyLCA3LCA2LCAxLCAyNTMsIDE1OCwgOTIsIDcsIDYsIDEsIDI1MSwgNjYsIDkyLCA3LCA2LCAxLCAyNDksIDYwLCAKLSAgICA5MiwgNywgNiwgMSwgNzUsIDkyLCA3LCA2LCAxLCAyNDUsIDYsIDkyLCA3LCA2LCAxLCAyNDMsIDIwMiwgOTIsIDcsIDYsIDEsIAotICAgIDI0MiwgNjAsIDkyLCA3LCA2LCAxLCA3MywgOTIsIDcsIDYsIDEsIDIzNSwgMTQ0LCA5MiwgNywgNiwgMSwgMjM1LCAyMywgCi0gICAgOTIsIDcsIDYsIDEsIDE1NiwgOTIsIDcsIDYsIDEsIDE5MywgOTIsIDcsIDYsIDEsIDIzMCwgMjUsIDkyLCA3LCA2LCAxLCAKLSAgICA3NiwgOTIsIDcsIDYsIDEsIDIyNiwgMTA1LCA5MiwgNywgNiwgMSwgMjI0LCA5NiwgOTIsIDcsIDYsIDEsIDE1MywgOTIsIDcsIAotICAgIDYsIDEsIDIyMiwgOTEsIDkyLCA3LCA2LCAxLCAyMTcsIDE1MiwgOTIsIDcsIDYsIDEsIDcwLCA5MiwgNywgNiwgMSwgMjE0LCAKLSAgICAxMDUsIDkyLCA3LCA2LCAxLCAyMTIsIDk4LCA5MiwgNywgNiwgMSwgMjExLCAxNzgsIDkyLCA3LCA2LCAxLCAyMTEsIDExNywgCi0gICAgOTIsIDcsIDYsIDEsIDIxMCwgMTU5LCA5MiwgMjQwLCAyMDEsIDkyLCAyMzAsIDQ5LCA5MiwgMjIxLCAxODMsIDkyLCAyMTgsIAotICAgIDIyNiwgOTIsIDIyNCwgMjE4LCA5MiwgMjEyLCAyMywgMTUyLCAzNywgNywgNiwgMSwgNjEsIDE1MiwgMzcsIDcsIDYsIDEsIAotICAgIDI1MywgMTU4LCAxNTIsIDM3LCA3LCA2LCAxLCAyNTEsIDY2LCAxNTIsIDM3LCA3LCA2LCAxLCAyNDksIDYwLCAxNTIsIDM3LCAKLSAgICA3LCA2LCAxLCA3NSwgMTUyLCAzNywgNywgNiwgMSwgMjQ1LCA2LCAxNTIsIDM3LCA3LCA2LCAxLCAyNDMsIDIwMiwgMTUyLCAKLSAgICAzNywgNywgNiwgMSwgMjQyLCA2MCwgMTUyLCAzNywgNywgNiwgMSwgNzMsIDE1MiwgMzcsIDcsIDYsIDEsIDIzNSwgMTQ0LCAKLSAgICAxNTIsIDM3LCA3LCA2LCAxLCAyMzUsIDIzLCAxNTIsIDM3LCA3LCA2LCAxLCAxNTYsIDE1MiwgMzcsIDcsIDYsIDEsIDE5MywgCi0gICAgMTUyLCAzNywgNywgNiwgMSwgMjMwLCAyNSwgMTUyLCAzNywgNywgNiwgMSwgNzYsIDE1MiwgMzcsIDcsIDYsIDEsIDIyNiwgCi0gICAgMTA1LCAxNTIsIDM3LCA3LCA2LCAxLCAyMjQsIDk2LCAxNTIsIDM3LCA3LCA2LCAxLCAxNTMsIDE1MiwgMzcsIDcsIDYsIDEsIAotICAgIDIyMiwgOTEsIDE1MiwgMzcsIDcsIDYsIDEsIDIxNywgMTUyLCAxNTIsIDM3LCA3LCA2LCAxLCA3MCwgMTUyLCAzNywgNywgNiwgCi0gICAgMSwgMjE0LCAxMDUsIDE1MiwgMzcsIDcsIDYsIDEsIDIxMiwgOTgsIDE1MiwgMzcsIDcsIDYsIDEsIDIxMSwgMTc4LCAxNTIsIAotICAgIDM3LCA3LCA2LCAxLCAyMTEsIDExNywgMTUyLCAzNywgNywgNiwgMSwgMjEwLCAxNTksIDIyMywgMTU3LCAyMzEsIDk3LCA1MCwgCi0gICAgMjIzLCAxNTcsIDIzMSwgOTQsIDUwLCAxNTIsIDkyLCA3LCA2LCAxLCA2MSwgMTUyLCA5MiwgNywgNiwgMSwgMjUzLCAxNTgsIAotICAgIDE1MiwgOTIsIDcsIDYsIDEsIDI1MSwgNjYsIDE1MiwgOTIsIDcsIDYsIDEsIDI0OSwgNjAsIDE1MiwgOTIsIDcsIDYsIDEsIAotICAgIDc1LCAxNTIsIDkyLCA3LCA2LCAxLCAyNDUsIDYsIDE1MiwgOTIsIDcsIDYsIDEsIDI0MywgMjAyLCAxNTIsIDkyLCA3LCA2LCAKLSAgICAxLCAyNDIsIDYwLCAxNTIsIDkyLCA3LCA2LCAxLCA3MywgMTUyLCA5MiwgNywgNiwgMSwgMjM1LCAxNDQsIDE1MiwgOTIsIDcsIAotICAgIDYsIDEsIDIzNSwgMjMsIDE1MiwgOTIsIDcsIDYsIDEsIDE1NiwgMTUyLCA5MiwgNywgNiwgMSwgMTkzLCAxNTIsIDkyLCA3LCAKLSAgICA2LCAxLCAyMzAsIDI1LCAxNTIsIDkyLCA3LCA2LCAxLCA3NiwgMTUyLCA5MiwgNywgNiwgMSwgMjI2LCAxMDUsIDE1MiwgOTIsIAotICAgIDcsIDYsIDEsIDIyNCwgOTYsIDE1MiwgOTIsIDcsIDYsIDEsIDE1MywgMTUyLCA5MiwgNywgNiwgMSwgMjIyLCA5MSwgMTUyLCAKLSAgICA5MiwgNywgNiwgMSwgMjE3LCAxNTIsIDE1MiwgOTIsIDcsIDYsIDEsIDcwLCAxNTIsIDkyLCA3LCA2LCAxLCAyMTQsIDEwNSwgCi0gICAgMTUyLCA5MiwgNywgNiwgMSwgMjEyLCA5OCwgMTUyLCA5MiwgNywgNiwgMSwgMjExLCAxNzgsIDE1MiwgOTIsIDcsIDYsIDEsIAotICAgIDIxMSwgMTE3LCAxNTIsIDkyLCA3LCA2LCAxLCAyMTAsIDE1OSwgMjQ5LCAxMjgsIDE1MiwgOTIsIDcsIDYsIDEsIDIyNiwgCi0gICAgMTA1LCAxNTIsIDkyLCAyNDAsIDExMywgMTUyLCA5MiwgMTkwLCAxNTIsIDkyLCAyMDYsIDE1MiwgOTIsIDI1NSwgMjUsIAotICAgIDE1MiwgOTIsIDIxMiwgMjMsIDQyLCAyNDcsIDE2NCwgOTIsIDI1MCwgMjMsIDkyLCAyNDksIDE3MCwgOTIsIDI0MywgMjUyLCAKLSAgICA5MiwgMjQwLCAxMDUsIDkyLCAyMjksIDg2LCA5MiwgMjI5LCA3OSwgOTIsIDIyNiwgMjE0LCA5MiwgMjE5LCAzNSwgOTIsIAotICAgIDEyMCwgMiwgMjQ1LCAzMSwgNzgsIDkyLCAyMTMsIDExOSwgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgNjEsIDIyMywgCi0gICAgMTAzLCAyMzUsIDIzOSwgMTYsIDEsIDI1MywgMTU4LCAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCAyNTEsIDY2LCAyMjMsIAotICAgIDEwMywgMjM1LCAyMzksIDE2LCAxLCAyNDksIDYwLCAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCA3NSwgMjIzLCAxMDMsIAotICAgIDIzNSwgMjM5LCAxNiwgMSwgMjQ1LCA2LCAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCAyNDMsIDIwMiwgMjIzLCAxMDMsIAotICAgIDIzNSwgMjM5LCAxNiwgMSwgMjQyLCA2MCwgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgNzMsIDIyMywgMTAzLCAyMzUsIAotICAgIDIzOSwgMTYsIDEsIDIzNSwgMTQ0LCAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCAyMzUsIDIzLCAyMjMsIDEwMywgMjM1LCAKLSAgICAyMzksIDE2LCAxLCAxNTYsIDIyMywgMTAzLCAyMzUsIDIzOSwgMTYsIDEsIDE5MywgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgCi0gICAgMSwgMjMwLCAyNSwgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgNzYsIDIyMywgMTAzLCAyMzUsIDIzOSwgMTYsIDEsIAotICAgIDIyNiwgMTA1LCAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCAyMjQsIDk2LCAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCAKLSAgICAxNTMsIDIyMywgMTAzLCAyMzUsIDIzOSwgMTYsIDEsIDIyMiwgOTEsIDIyMywgMTAzLCAyMzUsIDIzOSwgMTYsIDEsIDIxNywgCi0gICAgMTUyLCAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCA3MCwgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgMjE0LCAxMDUsIAotICAgIDIyMywgMTAzLCAyMzUsIDIzOSwgMTYsIDEsIDIxMiwgOTgsIDIyMywgMTAzLCAyMzUsIDIzOSwgMTYsIDEsIDIxMSwgMTc4LCAKLSAgICAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCAyMTEsIDExNywgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgMjEwLCAxNTksIAotICAgIDQyLCAxNDEsIDI0MSwgNjMsIDkyLCA1NiwgMjM0LCAxOCwgOTIsIDU2LCAyMDYsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA1MCwgCi0gICAgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDU0LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNjIsIDkyLCA1NiwgMjQ4LCA5MCwgOTIsIAotICAgIDksIDIxNCwgMTc3LCAyMzgsIDY5LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNTYsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCAyOCwgCi0gICAgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDU1LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNjgsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCAKLSAgICA0MiwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDM1LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNDQsIDkyLCA5LCAyMTQsIDE3NywgCi0gICAgMjM4LCA2NSwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDUxLCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNjcsIDkyLCA5LCAyMTQsIAotICAgIDE3NywgMjM4LCA0MywgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDY2LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgMjksIDkyLCA5LCAKLSAgICAyMTQsIDE3NywgMjM4LCAzNCwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDI3LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNTcsIAotICAgIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA1OSwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDM3LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgCi0gICAgNDgsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA0NiwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDcyLCA5MiwgOSwgMjE0LCAxNzcsIAotICAgIDIzOCwgNzEsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCAyNSwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDUyLCA5MiwgOSwgMjE0LCAKLSAgICAxNzcsIDIzOCwgNzAsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA2MSwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDQ3LCA5MiwgOSwgCi0gICAgMjE0LCAxNzcsIDIzOCwgMjYsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA0OSwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDMxLCAKLSAgICA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgMzAsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA2MCwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIAotICAgIDM4LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNDAsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA0MSwgOTIsIDksIDIxNCwgMTc3LCAKLSAgICAyMzgsIDMzLCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNjQsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA1OCwgMjE2LCA2LCAyMjAsIAotICAgIDUzLCAyNTEsIDE1NywgOSwgMjE0LCAxNzcsIDIzOCwgMzksIDIxNiwgNiwgMjIwLCA1MywgMjUxLCAxNTcsIDksIDIxNCwgCi0gICAgMTc3LCAyMzgsIDcxLCAyMTYsIDYsIDIyMCwgNTMsIDI1MSwgMTU3LCA5LCAyMTQsIDE3NywgMjM4LCA2OSwgMjE2LCA2LCAKLSAgICAyMjAsIDUzLCAyNTEsIDE1NywgOSwgMjE0LCAxNzcsIDIzOCwgNTMsIDIxNiwgNiwgMjIwLCA1MywgMjUxLCAxNTcsIDksIAotICAgIDIxNCwgMTc3LCAyMzgsIDM2LCAyMTYsIDYsIDIyMCwgNTMsIDI1MSwgMTU3LCA5LCAyMTQsIDE3NywgMjM4LCA0OSwgMjE2LCAKLSAgICA2LCAyMjAsIDUzLCAyNTEsIDE1NywgOSwgMjE0LCAxNzcsIDIzOCwgMzIsIDIxNiwgNiwgMjIwLCA1MywgMjUxLCAxNTcsIDksIAotICAgIDIxNCwgMTc3LCAyMzgsIDYzLCAyMTYsIDYsIDIyMCwgNTMsIDI1MSwgMTU3LCA5LCAyMTQsIDE3NywgMjM4LCA0NSwgMzcsIAotICAgIDE1NCwgMjU0LCAyNDUsIDM3LCAxNTQsIDI1NSwgMTIsIDI0OSwgNzEsIDI0NCwgNDIsIDI1MCwgMCwgMjE0LCAxOTQsIDIyOCwgCi0gICAgMjEzLCAyLCAyMTgsIDE1MywgMjE4LCAzMywgMTE3LCAyMzAsIDExNCwgMjE4LCAzMiwgMjUwLCAyNiwgMjUzLCAyMDcsIAotICAgIDI0NiwgNTQsIDIxOCwgMzEsIDExNywgMjUxLCAxMTgsIDIyMywgMTU4LCAyNTEsIDE0MCwgMjUzLCAyMDcsIDIyOCwgMjEyLCAKLSAgICAyMTIsIDQxLCAyMTIsIDM1LCAyMTMsIDEzMSwgMjMwLCAxOTUsIDIxMiwgMjUsIDI0NSwgMjI0LCAyNDIsIDE4MSwgMjQ1LCAKLSAgICA0NSwgMjQ1LCAyMjQsIDI0MiwgMTgxLCAyNTQsIDEyOCwgMjQ1LCAyMjQsIDI0MiwgMTgxLCAyNTMsIDIyNSwgMjQyLCAxODEsIAotICAgIDIsIDIzMSwgNTEsIDE2NiwgMjMwLCAxMjksIDg3LCAyMTIsIDI3LCAyNDksIDEzNywgMjMwLCAxMjksIDg3LCAyNDQsIDkyLCAKLSAgICAyMjQsIDIyLCAyMzAsIDEyOSwgODcsIDIxMiwgMjcsIDI0MiwgMjEwLCAyMzAsIDEyOSwgODcsIDI0MywgMjI5LCAyMzAsIAotICAgIDEyOSwgODcsIDIxMiwgNTIsIDI0MiwgMjEwLCAyMzAsIDEyOSwgODcsIDIzMywgODAsIDIyNCwgMjIsIDIzMCwgMTI5LCA4NywgCi0gICAgMjEyLCA1MiwgMjQ5LCAxMzcsIDIzMCwgMTI5LCA4NywgMjQ5LCAxMzcsIDIzMCwgMTI4LCAxNjYsIDIzMCwgMTI5LCAyLCAKLSAgICAyNDQsIDE5MCwgMjQ0LCA5MiwgMjI0LCAyMiwgMjMwLCAxMjksIDIsIDI0NCwgMTkwLCAyMzMsIDgwLCAyMjQsIDIyLCAyMzAsIAotICAgIDEyOSwgMiwgMjQ0LCAxOTAsIDI0MywgMjI5LCAyMzAsIDEyOSwgMiwgMjQ0LCAxOTAsIDIxOCwgMzgsIDIsIDI0NCwgMTkwLCAKLSAgICAyNDIsIDE3OSwgMjE4LCAxNTYsIDIxOSwgMjU1LCAyMTgsIDE1NiwgMjUwLCAxMTYsIDIyMSwgMTY4LCAyNDUsIDM5LCAyMTUsIAotICAgIDIzNSwgMjQ4LCA4NCwgMjE1LCAyMzUsIDIyNiwgNTksIDIxNSwgMjM1LCAyNTEsIDI3LCAyMTUsIDEwOSwgMjUwLCAxMTgsIAotICAgIDI1MSwgMjEwLCAyMjIsIDE5MSwgMjQxLCAxNzksIDIxOCwgMzYsIDI1MSwgMjEwLCAyNDUsIDIyOCwgNjQsIDIzMSwgMTk0LCAKLSAgICAyNDUsIDIyOCwgNjQsIDIyMywgMzEsIDI0MSwgMjA0LCAyNDQsIDExLCAyMzMsIDU0LCAyNDksIDI0NiwgMjMxLCAxNzAsIAotICAgIDIzMywgNTMsIDI0NCwgMTc2LCAyMzMsIDUzLCAyMzMsIDU0LCAyNDQsIDQ3LCAyMzYsIDAsIDIxMSwgMjM5LCAyMzAsIDU4LCAKLSAgICAyMTYsIDM0LCAyNTMsIDE5MSwgMjQyLCAxNDMsIDIzMSwgNjcsIDIxMiwgMzksIDIxNywgNTcsIDIzMywgMjYsIDI1MiwgCi0gICAgMTQ5LCAyMjUsIDYyLCAyMjMsIDExMSwgMjU0LCA1NCwgMjQyLCAxMjcsIDI1NCwgNTQsIDIyNSwgMjE3LCAyMjUsIDIxOCwgCi0gICAgMjUwLCAxMTksIDIxOCwgMTE0LCAyNDIsIDIzLCAyMTksIDkwLCA2NCwgMjI1LCA0NCwgMjMxLCA4NywgMjI2LCAxOTcsIAotICAgIDI1MSwgMTk0LCAyMjQsIDIyOSwgMjMzLCAzNiwgMjIzLCAzMiwgMjQ5LCAxNDIsIDIyMywgMzIsIDI1MiwgMTU5LCAyNDksIAotICAgIDE3MywgMjIzLCAzMSwgMjQ5LCA5NSwgMjIsIDIyMywgMzEsIDIxOCwgMTQxLCAyNTEsIDE2NywgMjE5LCAxNCwgMjUxLCAKLSAgICAxNTEsIDI0MywgMjUxLCAyNDMsIDI0NywgMjIyLCAyMDcsIDIxNywgMjQ2LCAyMjQsIDIzMSwgMjQ4LCAxNzUsIDIyNiwgCi0gICAgMjM2LCAyMTgsIDcsIDI0MywgMjQ4LCAyMTksIDIzMCwgMjQ0LCA5MSwgMjUxLCAyMSwgMiwgMjE3LCAyMzksIDI0OCwgMzUsIAotICAgIDIxOSwgNTIsIDI0MCwgMTEyLCAyNDksIDE0MSwgMjIwLCA3MCwgMjQwLCAxMTEsIDI0MCwgMTEyLCAyNDksIDE0MSwgMjQ2LCAKLSAgICAxMDgsIDI0OSwgMTcyLCAyNTAsIDg0LCAxMzAsIDI1MCwgMjU0LCAyMzIsIDE0MSwgMjQ5LCA4OCwgMjQxLCA1NSwgMjI0LCAKLSAgICAyMzMsIDIxOSwgMjQwLCAyNTIsIDM2LCAyNTEsIDE2MywgMjI0LCAyMzQsIDY0LCAyNDQsIDMzLCAyNDksIDE3MSwgMjQ0LCAKLSAgICAyNCwgMjIsIDIzNCwgMzIsIDIxNywgMTksIDIxMSwgMjMwLCAyNDIsIDEzLCAyMjIsIDEyLCAyNTEsIDE3NywgMjIsIDI0OSwgCi0gICAgMTAyLCAyMTEsIDIzNywgMjQyLCAxODQsIDI0OSwgMjM1LCAyNDIsIDE4NCwgMjE1LCAxOTMsIDI0NiwgOTAsIDI1MiwgNjIsIAotICAgIDIzMCwgOTMsIDI1MCwgNywgMjUyLCA2MiwgMjMwLCA5MiwgMjUyLCAxODcsIDI1MSwgMTc2LCAyMjMsIDMzLCAyMTEsIDIwMSwgCi0gICAgMjI0LCAxOTUsIDI1MSwgMjM1LCAyNTEsIDIwLCAyMzUsIDEzOCwgMjUwLCA3NywgMjE1LCAyMzUsIDI0NCwgMTYyLCAyNTAsIAotICAgIDc2LCAyNDQsIDk0LCAyNDQsIDk1LCAyMTksIDEyLCAyNTIsIDE1OCwgMjI1LCAyNTAsIDIyNCwgMjQ0LCAyNDksIDIwNCwgCi0gICAgMjUyLCAxNTksIDIxNywgNTksIDIxNSwgMjM1LCAyNDksIDEyOCwgMjQ0LCA2NywgMjI1LCA2MywgMjQ4LCA4MSwgMjM1LCAKLSAgICAxMzEsIDI0NywgMTMxLCAyNTAsIDIzMiwgMjE4LCAxMTMsIDIxMSwgMjQwLCAyNTAsIDk4LCAyMzAsIDEyOSwgMjEzLCAxNjQsIAotICAgIDI1MCwgMTYyLCAyMjEsIDE5OSwgMjIxLCAyMjQsIDI0MiwgMTQ4LCAyNTAsIDI1MSwgMjUwLCAyMzMsIDI0MCwgMjQ1LCAKLSAgICAyNDQsIDEzMCwgMjEyLCAwLCAyMjIsIDIwMCwgMjQ5LCAyMzYsIDI0NCwgODYsIDIyNSwgMiwgMjIsIDI0NCwgOTAsIDIzMCwgCi0gICAgMjI3LCAyMzAsIDEwOCwgMjUxLCAxMCwgMjUwLCAzOSwgMjQxLCAyMzIsIDI1MywgMjQxLCAyMjYsIDYyLCAyMTYsIDE0LCAKLSAgICAyNDEsIDI1MSwgMjUwLCAyOSwgMjE2LCAyNDIsIDIxNiwgMTEzLCAyNTAsIDIwLCAyNTEsIDIwMiwgMjI1LCAxNzcsIDI1MywgCi0gICAgMjQwLCAyMTMsIDE3MiwgMjQzLCAxMTAsIDI0NywgMTk3LCAyNDEsIDE1NiwgMjE5LCA4NCwgMjMxLCAyMzQsIDI1MSwgMjQ1LCAKLSAgICAyNDMsIDExMSwgMjQ3LCAyNDAsIDI1MSwgMTY2LCAyNDQsIDUyLCAyMjUsIDMzLCAyNTAsIDI0MSwgMjgsIDIyOCwgNDcsIAotICAgIDIzMCwgODUsIDI4LCAyMjgsIDQyLCAyMjEsIDIxMiwgMjQyLCA5OSwgMjgsIDIzNCwgMTM3LCAyMTUsIDE5MCwgMjEzLCAKLSAgICAxNTQsIDI4LCAyMjEsIDE5MiwgMjIyLCAxMjQsIDIyMCwgMTEsIDIsIDIyMSwgMjI3LCAyMTYsIDI0NCwgMjIzLCAxNzgsIAotICAgIDIyLCAyNTIsIDE1OSwgMjE5LCAxMDUsIDIyLCAyMTksIDEwNSwgMjUxLCAxODcsIDI1MiwgMTIzLCAyMiwgMjQxLCA0OSwgCi0gICAgMjUwLCAxMjAsIDI0NCwgNzMsIDIxOSwgNjMsIDIyMiwgMTI1LCAyMTgsIDEyLCAyMTUsIDE5NCwgMjQwLCAyNDYsIDIyMywgCi0gICAgMTc5LCAyNTQsIDEyOSwgMjQ0LCAzMSwgMjIyLCAxMzYsIDI0NCwgMzEsIDIxNywgMjQxLCAyNDAsIDIzNSwgMjUxLCAxMTksIAotICAgIDI0MCwgMjM1LCAyLCAyNDMsIDk0LCAyMjYsIDIyOSwgMjUxLCAxMTksIDIzNSwgMTMxLCAyMjQsIDIzOSwgMjI2LCAyMjgsIAotICAgIDI0NSwgNDQsIDIyNCwgMjM5LCAyMjYsIDIyOCwgMjQwLCAyNDQsIDI1MiwgMTQ1LCAyNTMsIDE4MSwgMjE2LCAyNTIsIDIzMSwgCi0gICAgMjM0LCAyNDAsIDI0MCwgMjMyLCAxMTEsIDI0MCwgMjQwLCAyNDksIDE3NiwgMjE4LCAxMjUsIDIyMSwgMTk4LCAyNDgsIDQzLCAKLSAgICAyMTgsIDEyNSwgMjQ0LCAxODAsIDIzNSwgMTQ5LCAyMzMsIDg5LCAyMzUsIDEzMSwgMjUwLCAyMjYsIDI0NSwgNDQsIDI1MCwgCi0gICAgMjI2LCAyMjMsIDE0MSwgMjMwLCAxMTIsIDIyNiwgMTE0LCAyMTIsIDQxLCAyNTEsIDEyMywgMjQ5LCAxNDUsIDIxNiwgMTA2LCAKLSAgICAyMzMsIDE4LCAyMjMsIDE4MCwgMjUwLCAyMjQsIDI0NiwgOTYsIDI0OSwgMTM1LCAyMTIsIDMsIDIxOSwgNzAsIDIxOSwgNjgsIAotICAgIDI0MCwgMjQ1LCAyMjMsIDE1MywgMjQyLCAxNzAsIDIyMCwgNTcsIDIzMCwgMTQ1LCAyMjIsIDE5NCwgMjUwLCAxMDgsIDI0NywgCi0gICAgMTM2LCAyMjUsIDczLCAyNTEsIDIwMywgMjQ1LCAxNjksIDIyNiwgMjM4LCAyMTgsIDI1MiwgMjIwLCA1MiwgMjUxLCAxMjIsIAotICAgIDI1NCwgOTIsIDI0MSwgNTQsIDIzMywgMTIxLCAyNTIsIDYwLCAyNDQsIDkwLCAyMTUsIDE5MywgMjQ0LCA5MCwgMjUxLCAKLSAgICAyMDksIDIxNSwgOTEsIDI0MSwgMjQ5LCAyNTAsIDEwOSwgMjUyLCAxODcsIDI1MCwgMTA5LCAyNDMsIDI0MiwgMjUyLCAxODcsIAotICAgIDI1MCwgMTA5LCAyNTEsIDIzNywgMjI1LCAxOTUsIDIzNCwgMjYsIDIyNCwgMjQ4LCAyNDYsIDg3LCAyNTEsIDExLCAyNTIsIAotICAgIDE3NywgMjUxLCAxMSwgMjQ3LCAxMzAsIDIzMCwgMTEzLCAyNDQsIDE5MCwgMjQ5LCAxNDYsIDI0NCwgMTkwLCAyMTYsIDEwNywgCi0gICAgMjQ0LCAxOTAsIDIyMywgMTgxLCAyNDQsIDE5MCwgMjUwLCAyMjUsIDI0NCwgMTkwLCAyNDYsIDk3LCAyNDQsIDE5MCwgMjE4LCAKLSAgICAyNDEsIDIxMiwgMywgMjQwLCAyNDYsIDI0NCwgMTkwLCAyMzAsIDE0NiwgMjQ0LCAxOTAsIDI0NywgMTM3LCAyNDQsIDE5MCwgCi0gICAgMjI1LCA3NCwgMjQ0LCAxOTAsIDI0MywgMjQ1LCAyNDQsIDE5MCwgMjQyLCAyMCwgMjQ0LCAxOTAsIDIxMSwgMjI0LCAyNDQsIAotICAgIDE5MCwgMjUyLCA3MSwgMjQ0LCAxOTAsIDIyNiwgNDUsIDI0NCwgMTkwLCAyMjUsIDc0LCAyMjgsIDUzLCAyMjUsIDIzMiwgCi0gICAgMjI0LCAxODYsIDI0NSwgMTMsIDI0NSwgMjI3LCAyMjgsIDUzLCAyMzAsIDExMCwgMjE2LCAxOSwgNzEsIDEyMCwgMjI1LCA3LCAKLSAgICAyNTIsIDE4MiwgMjM1LCAyNDIsIDcxLCAxMjQsIDIyNSwgNywgMjUyLCAxODIsIDIzNSwgMjQyLCA3MSwgNDMsIDIyNSwgNywgCi0gICAgMjUyLCAxODIsIDIzNSwgMjQyLCA3MSwgNDQsIDIyNSwgNywgMjUyLCAxODIsIDIzNSwgMjQyLCAyNDQsIDg0LCAyNDIsIDE2LCAKLSAgICA1MCwgMjEyLCAzMywgMjQyLCAxNiwgNTAsIDIyNiwgMjE1LCAyNDIsIDE2LCA1MCwgMjE2LCAxMzUsIDEyMCwgNTAsIDIxNiwgCi0gICAgMTM1LCAxMjQsIDUwLCAyNTAsIDE5LCAyNDIsIDExLCA1MCwgMjA0LCAyNDIsIDExLCA1MCwgMjQ5LCAxMjMsIDIxMSwgMjIwLCAKLSAgICAyNDEsIDI1MSwgMjQ1LCAxNCwgMjI5LCAxMDQsIDIxNywgMTUxLCAyMzUsIDEyNSwgMjQ2LCA5MiwgMjM0LCA4MiwgMjUxLCAKLSAgICAyNDcsIDIxMSwgMjIwLCAyNDksIDI0OSwgMjI0LCAxMjcsIDI0MiwgMTQsIDIyNCwgMjMwLCAyMzEsIDE3NywgMjIwLCA0LCAKLSAgICAyNTMsIDIwMywgMjIwLCA0LCAyNDEsIDE2NCwgMjIwLCA0LCAyMTEsIDIyMCwgMjIxLCAyNDAsIDIxMSwgMjIwLCAyNTEsIAotICAgIDE4NiwgMjQ0LCAyOSwgMjUxLCA5MCwgMjM2LCAwLCAyMTksIDE2OSwgMjUxLCA4OSwgMjM2LCAwLCAyMTksIDE2OSwgMjUxLCAKLSAgICAxNjIsIDI0MiwgMTk0LCAyMzEsIDE4NSwgMjExLCAyMjEsIDI0NCwgMTc0LCAyMzEsIDE4NiwgMjIsIDIxMSwgMjIyLCAyNDEsIAotICAgIDYwLCAyNDIsIDEwLCAxMTMsIDIzMSwgNTksIDI0MSwgNjAsIDI0MiwgMTAsIDExMywgMjExLCAyMTksIDI0MSwgNjAsIDI0MiwgCi0gICAgMTAsIDIyNCwgMjU1LCAyMjYsIDIyNywgMjExLCAyMjIsIDIsIDI1MSwgMTA2LCAyNDUsIDIyNSwgMjUxLCAxNDEsIDIsIAotICAgIDIxMywgMjQ2LCAyMjUsIDE2OCwgMiwgMjUxLCAyMTIsIDI0MiwgMzQsIDIzMSwgMTg2LCAyLCAyNDIsIDExMCwgMjI1LCAKLSAgICAxMDksIDIzMSwgMTc0LCAyMzEsIDE4NiwgMiwgMjE1LCA5NywgMjI2LCAyMDgsIDIzMSwgMTg1LCAyMjYsIDIwOCwgMjExLCAKLSAgICAyMjEsIDI1MiwgMTg2LCAyNDksIDE5MCwgMjExLCAyMDUsIDIyNCwgMTg5LCAyMzUsIDEzMSwgMjI2LCAyMjMsIDIzNSwgCi0gICAgMTMxLCAyNDIsIDE2OSwgMjQyLCAyMjIsIDI1MiwgMTg3LCAyNTQsIDExMywgMjQ1LCAxOCwgMjU0LCAxNjAsIDI1NCwgMTYxLCAKLSAgICAyMzAsIDEzNiwgMjM2LCA1LCAyMTksIDEwMCwgMjM1LCAyMzIsIDI0OCwgMzQsIDIyNSwgMTY3LCAyNDIsIDEwNSwgMjQ4LCAKLSAgICAxNzksIDIzMiwgMjAxLCAyMjksIDIxMSwgMjI0LCAyNTQsIDI0NCwgMTkxLCAyMzEsIDE0MiwgMjQyLCAzMywgMjUyLCAxMzgsIAotICAgIDIyNSwgMSwgMjE3LCAxNzEsIDIyNSwgNjYsIDIzNCwgNjQsIDc4LCAyMzIsIDExMSwgMjMzLCAxMCwgMjIyLCAyMzMsIDI0MywgCi0gICAgNTQsIDIxOCwgMTMxLCAyMzQsIDYzLCAyNTEsIDE3MSwgMjQ5LCAxNDgsIDIsIDI0MSwgMjI3LCAyMTIsIDE5LCAyNTIsIDY5LCAKLSAgICAyNDEsIDIyNywgMjUxLCAxMzUsIDI0MSwgMjI3LCAxMTMsIDI0MSwgMjI1LCAyMTksIDEwLCAyNDEsIDIyNywgMjQyLCAxMjAsIAotICAgIDI0MSwgMjI3LCAyNDEsIDIyOCwgMiwgNzQsIDI1MSwgMjA4LCAyNDEsIDIyNywgMjQyLCAxMjcsIDI0MSwgMjI3LCAyMTEsIAotICAgIDQyLCAyNDEsIDIyNywgMjI0LCAxMjgsIDI0MSwgMjI3LCAyNDEsIDIyOCwgMiwgMjIzLCAzMywgMjIzLCA0NCwgMjQxLCAKLSAgICAyMjUsIDI0MSwgMjI4LCAyNDgsIDgxLCAyNDcsIDI0OSwgMjIwLCA4MiwgMiwgMTE1LCA1OSwgMjM1LCAyMTUsIDI0NSwgCi0gICAgMTcyLCAxOTIsIDI1MSwgMTE2LCAyNTQsIDExMiwgODcsIDI1MSwgMTk1LCAyMTksIDkyLCA4NywgMjQ5LCAyMjgsIDg3LCAKLSAgICAyMTgsIDI0NiwgMjE3LCAyNDgsIDg3LCAyNDYsIDg1LCAyNDgsIDE1NywgODcsIDIyNSwgNjcsIDY0LCAyMjQsIDI0OSwgCi0gICAgMjQ0LCA2MSwgMjUyLCAzLCAyNDcsIDE2NSwgODcsIDIxOSwgMywgMjUyLCAxNTgsIDIxNiwgMTQ5LCAyNTIsIDE1OCwgNzEsIAotICAgIDI0NCwgNTEsIDI0MCwgMjExLCAyMjUsIDUsIDg3LCAyMzAsIDE0OSwgMjUyLCAxNzIsIDI0OSwgOTgsIDI0NSwgMzIsIDExNCwgCi0gICAgMjQ3LCAxMzIsIDUwLCAyNDksIDEzOSwgMjUwLCAyNDIsIDI1MiwgMTQ0LCAyLCAyMTEsIDQwLCA1MCwgMjUyLCAxNDQsIDIsIAotICAgIDI0NywgMTMyLCA1MCwgMjUyLCAxNDQsIDIsIDI0NSwgNDcsIDUwLCAyNTIsIDE0NCwgMiwgMjI0LCAyMjgsIDUwLCAyMzAsIAotICAgIDE0OSwgMiwgMjExLCAyMzUsIDI1MCwgMTM4LCAyLCAyMTQsIDE1MywgMjE1LCAyMzEsIDIyLCAyMTEsIDQwLCA1MCwgMjIxLCAKLSAgICAxNzgsIDIyNSwgMTY2LCAyNDksIDIwOCwgMjUxLCAxMzksIDIzMCwgMTg2LCAyNDQsIDU2LCAyNDcsIDE4NSwgMjI2LCAxNjEsIAotICAgIDI0NywgMTkwLCAyNDYsIDQ5LCAyNDQsIDEwNywgMjQ0LCA0MCwgMjA0LCAyNDQsIDEwNywgMjQ0LCA0MCwgMjI2LCA3NiwgMiwgCi0gICAgMjQ5LCAxMDAsIDIyNiwgNzYsIDI0NCwgMTgzLCAyMTQsIDE2MywgMjUxLCAxNiwgMjE3LCAxOCwgMjUxLCAxNiwgMjUwLCAKLSAgICAyNDMsIDIzNSwgMjQyLCAyNTAsIDEzOCwgMiwgMjE0LCAxNTMsIDIxNSwgMjMwLCAyNTAsIDEzOCwgMiwgMjQ2LCAxMDQsIAotICAgIDIxNSwgMjMwLCAyNTIsIDE0MSwgMjUwLCAxMzcsIDI1MCwgNiwgMjI0LCAxMjMsIDIyMiwgMTg1LCAyMjQsIDEyMywgMjI2LCAKLSAgICAxOSwgMjE4LCAxMjEsIDIyMiwgMTMxLCAyMTUsIDIyMiwgMjIyLCAxMzEsIDI1MSwgMTkxLCAyMTcsIDkxLCAyMzMsIDUxLCAKLSAgICAyMjgsIDQ1LCAyMjgsIDQ2LCAyLCAyNDgsIDgwLCAyNDksIDE0NywgMjUwLCAwLCAyNTEsIDE5MiwgMjA0LCAyNTEsIDE5MiwgCi0gICAgMjQyLCAxMjcsIDI1MSwgMTkyLCAyNTEsIDIwOCwgMjUxLCAxOTIsIDIyNiwgMTU3LCAyNTEsIDE5MiwgMjUxLCAxODksIAotICAgIDIyOSwgMjA1LCAyNTIsIDE3NSwgMjIxLCAxODYsIDIzMSwgNjAsIDIxNywgMSwgMjIzLCAxMjMsIDIyNiwgNzQsIDI0NCwgCi0gICAgMTU5LCAyMzEsIDIzNCwgMjIxLCAyMjMsIDI1NCwgODksIDIyNCwgMTQ1LCAyNTQsIDI1MiwgMjMyLCAxMTMsIDI1MCwgMTI3LCAKLSAgICAyMzEsIDcyLCAyMjYsIDEyOSwgMjE1LCAyMzgsIDIzNSwgMjUyLCAyMTUsIDIzOCwgMjI2LCA4MiwgMjQ2LCAyNCwgODcsIAotICAgIDIzNSwgMjQ5LCAyNDUsIDExOSwgMjQ1LCAxMjAsIDIsIDI0NiwgMTA0LCA4MCwgNDgsIDI1MCwgMCwgMjMxLCAyMDAsIDIsIAotICAgIDIzMiwgMTA3LCAyNDQsIDczLCAyNTAsIDAsIDIzMSwgMjAwLCAyLCAyMjMsIDE1NywgMjQ0LCA3MywgMjA0LCAyMzEsIDIwMCwgCi0gICAgMiwgMjIzLCAxNTcsIDI0NCwgNzMsIDIwNCwgMjMxLCAyMDAsIDIsIDIzMiwgMTA3LCAyNDQsIDczLCAyMjQsIDIzNiwgMjI0LCAKLSAgICAyMzcsIDI0MCwgMjQ4LCAyMjksIDg0LCAyMzAsIDE1OSwgMjI1LCAxMTcsIDIzMCwgMTU5LCAyMjUsIDExOCwgMiwgOTcsIAotICAgIDgwLCAyNTMsIDIwNywgMjMzLCA0NiwgMjEzLCAxNzUsIDIzMCwgMTU4LCAyMzAsIDE1OSwgMjI1LCAxMTgsIDIyNiwgMjMwLCAKLSAgICAyMjgsIDc1LCAyMzAsIDE1OSwgMjI1LCAxMTYsIDI1NCwgOTAsIDIsIDI1MiwgMTI5LCAyNTEsIDEwLCAyMTMsIDE3MiwgCi0gICAgMjUxLCAxMCwgMjE2LCAyNTQsIDIyMywgMTczLCAyMTMsIDE3MSwgMjE1LCA2MCwgOTcsIDI1MywgMjQ3LCAyNTAsIDIsIDk3LCAKLSAgICAyMiwgMTQwLCAyMDQsIDI1MCwgMzYsIDI1MywgMjQ3LCAyNTAsIDIsIDk3LCAyMiwgMTQwLCAyMDQsIDI1MCwgMzYsIDI1MywgCi0gICAgMjQ4LCAyLCAzNywgMTIzLCAyMjYsIDEyMCwgMjUwLCAyLCAyNDYsIDEwNCwgMjIsIDIxNCwgMTUzLCAyMDQsIDI1MCwgMzYsIAotICAgIDI1MywgMjQ3LCAyNTQsIDg4LCAyNDYsIDEwNCwgMjIsIDIxNCwgMTUzLCAyMDQsIDI1MCwgMzYsIDI1MywgMjQ3LCAxMjEsIAotICAgIDI1MSwgMTM4LCA4NywgMTI1LCAyNTEsIDEzOCwgODcsIDIxOSwgNywgMiwgMjUxLCA0LCA5MSwgMjE5LCA2LCAyMTksIDcsIAotICAgIDIsIDEyMywgMjE5LCAzMSwgMjEyLCAzNSwgMjE5LCA3LCAyLCAxMzQsIDIxOSwgMzEsIDIxMiwgMzQsIDI1MiwgMTE1LCAKLSAgICAyNDUsIDE3MiwgMjI1LCAyNywgMjMzLCA0MiwgMjMxLCAyMTEsIDI0MiwgMTg0LCAyMjIsIDI0NywgMjMxLCAyMTEsIDI0MiwgCi0gICAgMTg0LCAyMzIsIDE1MiwgMiwgMjM1LCAyMjUsIDIyNSwgMTk5LCAyNTAsIDAsIDIzMiwgMTUyLCAyLCAyMzQsIDEzOCwgMjM0LCAKLSAgICAxMzgsIDIzMiwgMTUxLCAyMDQsIDIzMiwgMTUxLCAyNTIsIDQ0LCAyNTIsIDQ1LCAyLCAyNTEsIDQsIDkxLCAyNTEsIDE5MCwgCi0gICAgMjMyLCAyMDQsIDg3LCAyMjMsIDE3NCwgMjUxLCA4NiwgMjUyLCAxODUsIDIsIDE0MCwgODAsIDQ4LCAyNDUsIDE0MywgMiwgCi0gICAgMTQwLCA4MCwgNDgsIDIyNiwgMTk3LCAyLCAyNDUsIDMxLCAxNjQsIDIsIDQzLCA0NCwgODAsIDQ4LCAyMTksIDM5LCAyLCAKLSAgICA5NywgODAsIDQ4LCAyMTYsIDE0LCAyLCAyMTQsIDE1MywgODAsIDQ4LCAyMjgsIDc1LCAxMjMsIDIxNCwgMTg0LCAyNDUsIAotICAgIDE5MSwgODcsIDIzNCwgMTM2LCAyMTYsIDI0NywgMjM1LCAyMTksIDE2LCAzMSwgNywgNiwgMjMzLCA5LCAyMzUsIDIxOSwgCi0gICAgMTYsIDMxLCA3LCA0LCAyMzMsIDksIDIzNSwgMjE5LCAxNiwgMzEsIDIyNywgMTk5LCAyMzUsIDIxOSwgMTYsIDMxLCAyMTcsIAotICAgIDE4MywgMjM1LCAyMTksIDE2LCAzMSwgNywgMjMzLCA5LCAyNDQsIDk2LCAyNDUsIDE3MiwgMjE2LCA5LCAyMTEsIDE5OSwgCi0gICAgMjQyLCAyMSwgMjI3LCAxODIsIDIyLCAyNTEsIDE5NywgMjQxLCA2NiwgMjI1LCA1MCwgMjMwLCAyMjYsIDIxNiwgMjU1LCAKLSAgICAyNDksIDExNCwgMjUyLCAxNTksIDIxOSwgMTI1LCAyMjUsIDksIDIxOCwgMTU3LCAyLCAyMzAsIDIyNCwgMjQ3LCAxMjAsIAotICAgIDIzNSwgMTMxLCAxNiwgMzEsIDI1MiwgNTcsIDIxNSwgMjIwLCAyNDUsIDE1NiwgODUsIDQyLCAyNTEsIDg2LCA3MSwgNDIsIAotICAgIDI1MSwgODYsIDIzMywgODUsIDIyMywgMTExLCAyNTAsIDM1LCAyMzMsIDg1LCAyNTEsIDIwOCwgMjUwLCAzNSwgMjMzLCA4NSwgCi0gICAgMjI2LCAxNTcsIDI0NywgMjQ4LCAyMzMsIDg1LCAyNTEsIDIwOCwgMjQ3LCAyNDgsIDQsIDIyNiwgMTU3LCAyNDcsIDI0OCwgCi0gICAgNCwgMjUxLCAyMDgsIDI0NywgMjQ4LCAyMTQsIDE2MiwgMjIzLCAxMTEsIDIxNSwgMjI1LCAyNDYsIDEwNSwgMjIzLCAxMTEsIAotICAgIDIxNSwgMjI1LCAyMTQsIDE2MiwgNCwgMjIzLCAxMTEsIDIxNSwgMjI1LCAyNDYsIDEwNSwgNCwgMjIzLCAxMTEsIDIxNSwgCi0gICAgMjI1LCAzNywgMjQ5LCAxMzEsIDIyNCwgMjUyLCAyNDksIDEzMSwgMjI0LCAyNTMsIDIsIDI0MiwgMjYsIDUxLCAyNDksIAotICAgIDEzMSwgMjI0LCAyNTIsIDIyOCwgNDksIDQzLCAyMjAsIDE1MywgMiwgMTM0LCAyNDcsIDExOCwgMjUwLCA0LCAyNDQsIDE5MSwgCi0gICAgMTIzLCAyMjYsIDI0MiwgMjUwLCA0LCAyNDQsIDE5MSwgMTEzLCAyMjYsIDI0MiwgMjUwLCA0LCAyNDQsIDE5MSwgMTM0LCAKLSAgICAyMjYsIDI0MiwgMjUwLCA0LCAyNDQsIDE5MSwgMjQ0LCAxMSwgMjI2LCAyNDIsIDI1MCwgNCwgMjQ0LCAxOTEsIDI0NCwgODEsIAotICAgIDIyNiwgMjQyLCAyNTAsIDQsIDI0NCwgMTkxLCAyMTksIDEyNSwgMjI2LCAyNDIsIDI1MCwgNCwgMjQ0LCAxOTEsIDIyMCwgCi0gICAgMTIyLCAyMjYsIDI0MiwgMjUwLCA0LCAyNDQsIDE5MSwgMjQ1LCAxOTMsIDIyNiwgMjQyLCAyNTAsIDQsIDI0NCwgMTkxLCAKLSAgICAyMjgsIDIwMCwgMjI2LCAyNDIsIDI1MCwgNCwgMjQ0LCAxOTEsIDIxNiwgMjQ4LCAyMjYsIDI0MiwgMjUwLCA0LCAyNDQsIAotICAgIDE5MSwgMjQ1LCAxNjgsIDIyNiwgMjQyLCAyNTAsIDQsIDI0NCwgMTkxLCAyMTUsIDc3LCAyMjYsIDI0MiwgMjUwLCA0LCAKLSAgICAyNDQsIDE5MSwgMjI2LCAxOTIsIDI1MCwgNCwgMjQ0LCAxOTEsIDIxNSwgNTYsIDI1MCwgNCwgMjQ0LCAxOTEsIDIxNiwgCi0gICAgMTQwLCAyNTAsIDQsIDI0NCwgMTkxLCAyNDQsIDcsIDI1MCwgNCwgMjQ0LCAxOTEsIDI0NCwgNzksIDI1MCwgNCwgMjQ0LCAKLSAgICAxOTEsIDIxOSwgMTIxLCAyNTAsIDQsIDI0NCwgMTkxLCAyMjAsIDEyMSwgMjUwLCA0LCAyNDQsIDE5MSwgMjQ1LCAxOTIsIAotICAgIDI1MCwgNCwgMjQ0LCAxOTEsIDIyOCwgMTk5LCAyNTAsIDQsIDI0NCwgMTkxLCAyMTYsIDI0NiwgMjUwLCA0LCAyNDQsIDE5MSwgCi0gICAgMjQ1LCAxNjYsIDI1MCwgNCwgMjQ0LCAxOTEsIDIxNSwgNzUsIDIzMCwgMTE3LCAyNDMsIDIzMCwgMjE2LCAzNiwgMjE2LCAyLCAKLSAgICAyMTgsIDE0OCwgNjQsIDIzMiwgMjM5LCAyMTksIDE3MCwgNjQsIDIzNSwgMTMyLCAyMzAsIDEwNiwgMjQyLCAxMjQsIDI0NCwgCi0gICAgMTkwLCAyNDIsIDEyNCwgMjQ0LCAxOTEsIDIsIDIxOSwgNzQsIDI0NSwgMTMsIDI0NCwgMTkxLCAyLCAyMTcsIDE0LCA2NCwgCi0gICAgMjM1LCA1MywgMjE5LCA3NCwgMjQ0LCAxOTEsIDIsIDIwNCwgMjMwLCAxMTAsIDIxOSwgNzQsIDI0NCwgMTkxLCAyLCAyMDQsIAotICAgIDIzMCwgMTExLCAyMiwgMjE5LCA3NCwgMjQ1LCAxMywgMjE5LCA3NCwgMjQ0LCAxOTEsIDIsIDIwNCwgMjMwLCAxMTEsIDIyLCAKLSAgICAyNDksIDIzMCwgMjE3LCAyNDcsIDIxOSwgNzQsIDI0NCwgMTkxLCAyLCAyMDQsIDIzMCwgMTExLCAyMiwgMjE2LCAxMDQsIAotICAgIDI0NSwgMTMsIDIxOSwgNzQsIDI0NCwgMTkxLCAyLCAyNDIsIDI1LCAyMTksIDc0LCAyNDQsIDE5MSwgMiwgMjQwLCAyNDcsIAotICAgIDIxMSwgMjMzLCAyNDQsIDE5MCwgMjE5LCA3NCwgMjQ0LCAxOTEsIDIsIDIxOSwgNzQsIDI0NSwgMTMsIDI0NCwgMTkxLCAKLSAgICAyMjEsIDIxNywgMjQ4LCA2MiwgMjQ0LCAzMywgMjIzLCA4OCwgMjQ0LCAxOTAsIDIxOSwgNzQsIDI0NCwgMTkxLCAyLCAyNDEsIAotICAgIDIyNiwgMjQ1LCAxMywgMjE5LCA3NCwgMjQ0LCAxOTEsIDIsIDIxOCwgMzQsIDIxOSwgNzMsIDI0NCwgMTkwLCAyMjksIDg3LCAKLSAgICAyNDQsIDE5MCwgMjQ1LCAyMywgMjQ0LCAxOTAsIDIxNCwgMTg4LCAyNDQsIDE5MCwgMjQ0LCAxOTEsIDIsIDI0OSwgMjMwLCAKLSAgICAyMTcsIDI0NywgMjI1LCAxOTIsIDI0NCwgMTkwLCAyNDksIDIwMSwgMjQ0LCAxOTAsIDI0OSwgMjAyLCAyNDQsIDE5MCwgCi0gICAgMjM0LCA2MiwgMjQ0LCAxOTAsIDI0NCwgMTkxLCAyMTYsIDEzNywgMTE1LCAyMzQsIDYzLCAyMzQsIDYyLCAyNDQsIDE5MSwgCi0gICAgMiwgMjE5LCA3NCwgMjQ1LCAxMywgMjM0LCA2MiwgMjQ0LCAxOTEsIDIsIDI1MCwgMCwgMjQ1LCAxMywgMjQ0LCAxOTEsIDIsIAotICAgIDIxOCwgODgsIDIxNiwgMTksIDI0NCwgMTkxLCAyLCAyMTgsIDg4LCAyMTYsIDIwLCAyMiwgMjExLCAyMzMsIDI0NSwgMTUsIAotICAgIDI0NCwgMTkxLCAyLCAyMTgsIDg4LCAyMTYsIDIwLCAyMiwgMjE2LCAxMDQsIDI0NSwgMTMsIDI0NywgMTkyLCAyNDQsIDE5MCwgCi0gICAgMjExLCAyMDQsIDI0NCwgMTkwLCAyNTQsIDEwOCwgMjQ0LCAxOTAsIDIyNCwgMjI3LCAyNDQsIDE5MCwgMjQ5LCAxMTYsIAotICAgIDI0NCwgMTkwLCAyMjUsIDE3MCwgMjQ0LCAxOTAsIDI0NCwgMTkxLCAyLCAyMzIsIDEyNiwgNjQsIDIxNSwgMjA0LCAyNDcsIAotICAgIDE5MiwgMjUxLCA4OCwgMjIzLCA4OCwgMjQ0LCAxOTAsIDI0MywgMjM5LCAyNDQsIDE5MSwgMiwgMjA0LCAyMzAsIDExMCwgCi0gICAgMjU0LCAxMDYsIDI0NCwgMTkwLCAyNDQsIDE1MiwgMjQ0LCAxOTAsIDIxMiwgMjAsIDI0NCwgMTkwLCAyMTksIDkxLCAyNDQsIAotICAgIDE5MCwgMjE2LCA3MSwgMjQ0LCAxOTAsIDI0MiwgMTI1LCAyNDQsIDE5MCwgMjMyLCAxMTQsIDI0OSwgMTE2LCAyNDQsIDE5MCwgCi0gICAgMjQ0LCAxOTEsIDIsIDIwNCwgMjMwLCAxMTAsIDI0MCwgMjAzLCAyNDQsIDE5MCwgMjQ0LCAxOTEsIDIsIDIwNCwgMjMwLCAKLSAgICAxMTEsIDIyLCAyNDksIDIzMCwgMjE3LCAyNDcsIDI0NCwgMTkxLCAyMjEsIDE5MCwgMjM2LCAwLCAyNDQsIDE1MywgMjUzLCAKLSAgICAyMTMsIDI0NCwgMTkwLCAyNDQsIDQ5LCAyNDQsIDE5MCwgMjE5LCA5MiwgMjQ0LCAxOTAsIDI0NywgMTY1LCAyNDQsIDE5MCwgCi0gICAgMjQ0LCAxOTEsIDIxMSwgMjMwLCAyMzAsIDExMCwgMjQ0LCAxOTEsIDIsIDIzMSwgODQsIDIzMSwgMTQ0LCAyNDIsIDEyNCwgCi0gICAgMjUwLCAyMjUsIDI0NCwgMTkxLCAyLCAyMTksIDc0LCAyNDUsIDEzLCAyNTAsIDIyNSwgMjQ0LCAxOTEsIDIsIDIxNywgMTQsIAotICAgIDY0LCAyMzUsIDUzLCAyMTksIDc0LCAyNTAsIDIyNSwgMjQ0LCAxOTEsIDIsIDIwNCwgMjMwLCAxMTAsIDIxOSwgNzQsIDI1MCwgCi0gICAgMjI1LCAyNDQsIDE5MSwgMiwgMjQxLCAyMjYsIDI0NSwgMTMsIDI1MCwgMjI1LCAyNDQsIDE5MSwgMiwgMjExLCAxOTYsIAotICAgIDIxOSwgNzUsIDIzNCwgNjIsIDI1MCwgMjI1LCAyNDQsIDE5MSwgMiwgMjUwLCAwLCAyNDUsIDEzLCAyMjQsIDIyNywgMjUwLCAKLSAgICAyMjUsIDI0NCwgMTkwLCAyNDksIDExNiwgMjUwLCAyMjUsIDI0NCwgMTkwLCAyMTIsIDIwLCAyNTAsIDIyNSwgMjQ0LCAxOTAsIAotICAgIDI0NCwgMTkxLCAyLCAyMjgsIDc1LCAyNDIsIDE2MywgMjQzLCAzNCwgMjQ0LCAxOTEsIDIsIDIyNiwgMjE1LCAyNDMsIDM0LCAKLSAgICAyMjUsIDE2OCwgMjUxLCAxNjgsIDI0OCwgNzUsIDIyMSwgMTY5LCAyMzAsIDE0NSwgMjQxLCAyMjksIDIzMCwgMTQ1LCAyMTksIAotICAgIDgsIDIzMCwgMTQ1LCAyNDIsIDUsIDIyNSwgMTY4LCAyMjMsIDE1NiwgMTIzLCAyNDIsIDE1LCAyMjUsIDE2OCwgMjIzLCAKLSAgICAxNTYsIDI1MSwgMTc4LCAyNDIsIDExLCAyMzYsIDAsIDI1MCwgMTc5LCAyMjUsIDE2OCwgMjQzLCAyMzgsIDIyNSwgMTY4LCAKLSAgICAyLCAyMjQsIDIyNywgMjQ0LCAxOTAsIDIyNSwgMTY4LCAyLCAyNDQsIDQxLCAyNDIsIDEwLCAyMjIsIDIwMywgMjQxLCAyMTQsIAotICAgIDIxOCwgMTQzLCAyMzIsIDE0OSwgMjIzLCAxNjIsIDI1MCwgMjQ0LCAyNDEsIDE2MiwgMjE1LCAyNDgsIDI0MSwgMTYyLCAKLSAgICAyMTUsIDI0OSwgMiwgMjUxLCAxMTQsIDIyOCwgNTMsIDIxNSwgMjQ4LCAyMzEsIDMyLCAxOTIsIDIyMywgMTYzLCAyMTgsIAotICAgIDE0OSwgMjE1LCAyNDYsIDIxNSwgMjQ3LCAyNTAsIDI0NCwgMjUxLCA5MiwgMjI2LCAxOTQsIDI1MSwgOTIsIDIxNSwgMjAxLCAKLSAgICAyNTEsIDkzLCAyMTgsIDEyOSwgMjMwLCAxODcsIDI1NCwgMTMwLCAyNDQsIDk3LCAyNDUsIDEzNywgMjI0LCAyNTUsIDI1MCwgCi0gICAgMjQ0LCAyMjYsIDE5NCwgMjI0LCAyNTUsIDI1MCwgMjQ0LCAyMTcsIDMyLCAyMjYsIDE5NCwgMjE3LCAzMiwgMjUzLCAxODAsIAotICAgIDIyNiwgMTk0LCAyNTMsIDE4MCwgMjIzLCAxMTgsIDIxMywgMjQ3LCAyNDgsIDU4LCAyMTUsIDE5MiwgMjUzLCAyNDIsIDIzMiwgCi0gICAgMTE3LCAyMTUsIDI1NCwgMjMwLCAxMzksIDIzMCwgMTE2LCAyMjMsIDE2MSwgMjE4LCA2LCAyMjMsIDE2MSwgMjMwLCAxMTYsIAotICAgIDI1MSwgMjgsIDI1NCwgMjI5LCAyMTUsIDI0NSwgMjIwLCAxNiwgMjIyLCAxODIsIDIxOSwgMSwgMjAzLCAyMTUsIDI1MiwgCi0gICAgMjMyLCAyMzAsIDY3LCAyMTUsIDI1MiwgMjMyLCAyMzAsIDI0OSwgMTkwLCA1MCwgMjI0LCAyNTUsIDI1MCwgMjI5LCAyMjMsIAotICAgIDQ0LCAyMzIsIDIzMCwgMjE1LCAyMjIsIDI0NCwgNzQsIDIyNiwgMTk3LCAyMjQsIDIzOCwgMjQ3LCAxMjMsIDIyOCwgNzUsIAotICAgIDI0NSwgMTI1LCA1MCwgMjE5LCA3MiwgODcsIDIyOCwgNzUsIDIxOSwgNzIsIDg3LCAyMjQsIDEyMiwgMjMyLCAxOTMsIDIzNiwgCi0gICAgMCwgMjM1LCAxNTcsIDIyNSwgNDEsIDg3LCAyNDcsIDE0NiwgMjI4LCA1MiwgMjMyLCAxOTMsIDg3LCAyMjQsIDIzMiwgMjEyLCAKLSAgICA0MSwgODcsIDIyOCwgNjYsIDIxMiwgNDEsIDg3LCAyNTIsIDIsIDIyOCwgNzUsIDI1MiwgMSwgMjUyLCAwLCAyMzAsIDExNiwgCi0gICAgMjUyLCAwLCAyMjUsIDIxMywgMjI4LCA3NSwgMjI1LCAyMTIsIDI1MCwgMTAwLCAyNDksIDEyNCwgMjMxLCA1NiwgODcsIAotICAgIDIxMSwgMjE4LCA4NywgMjIzLCA1OSwgMjUyLCAxODcsIDg3LCAyMTYsIDM3LCAyMTIsIDQxLCAyNDksIDI1MywgMjE5LCAKLSAgICAyMzQsIDI1MiwgMTE4LCAyNTIsIDExNiwgMjI1LCAyNDIsIDI0OSwgMTc3LCAyNDksIDg2LCAyNTIsIDE2OSwgMjUwLCAyMiwgCi0gICAgNDMsIDIzMiwgOTAsIDEwOCwgMTYsIDMxLCAyMjQsIDMsIDEwOCwgMTYsIDMxLCAyNTQsIDE5MiwgMTA4LCAxNiwgMzEsIAotICAgIDI0NCwgOTYsIDEwOCwgMTYsIDMxLCAyNDUsIDIyMywgMTA4LCAxNiwgMzEsIDIxMiwgNDAsIDEwOCwgMTYsIDMxLCAyNTQsIAotICAgIDQzLCAxMDgsIDE2LCAzMSwgMjU0LCA0NCwgMjIzLCAxMDUsIDEwOCwgMTYsIDMxLCAyNTQsIDQ0LCAyMjMsIDEwNCwgMTA4LCAKLSAgICAxNiwgMzEsIDI1NCwgNDQsIDIxMywgMTQzLCAxMDgsIDE2LCAzMSwgMjU0LCA0NCwgMjEzLCAxNDIsIDEwOCwgMTYsIDMxLCAKKyAgICAyMTEsIDgsIDk1LCAyNSwgNSwgMjU0LCAyNDQsIDk1LCAyNSwgNSwgMjU0LCAyNDAsIDk1LCAyNSwgNSwgMjQ1LCA4NywgOTUsIAorICAgIDI1LCA1LCAyMjIsIDE4NCwgMjQ1LCA4NywgOTUsIDI1LCA1LCAyNDUsIDkzLCA5NSwgMjUsIDUsIDIyMiwgMTg0LCAyNDUsIAorICAgIDkzLCA5NSwgMjUsIDUsIDI1NCwgMjAyLCA5NSwgMjUsIDUsIDI0NSwgMTk2LCA5NSwgMjUsIDUsIDI1MywgMTkzLCA5NSwgCisgICAgMjUsIDUsIDIyNiwgMTM1LCA5NSwgMjUsIDUsIDIzMCwgMjYsIDk1LCAyNSwgNSwgMjI5LCA4MCwgOTUsIDEzOCwgMjIyLCAKKyAgICAyNTIsIDk1LCAxMzgsIDIxNiwgMTUsIDIyMiwgMjUyLCA5NSwgMTM4LCA0OCwgOTUsIDEzOCwgNTEsIDk1LCAxLCAyMTYsIAorICAgIDI5LCA5NSwgMSwgMjE2LCAyOCwgOTUsIDEsIDIxNiwgMjcsIDk1LCAxLCAyMTYsIDI2LCA5NSwgMSwgMjE2LCAyNSwgOTUsIAorICAgIDEsIDIxNiwgMjQsIDk1LCAxLCAyMTYsIDIzLCA5NSwgMSwgMjIzLCAxMDcsIDIxNiwgMzAsIDk1LCAxLCAyMjMsIDEwNywgCisgICAgMjE2LCAyOSwgOTUsIDEsIDIyMywgMTA3LCAyMTYsIDI3LCA5NSwgMSwgMjIzLCAxMDcsIDIxNiwgMjYsIDk1LCAxLCAyMjMsIAorICAgIDEwNywgMjE2LCAyNSwgOTUsIDEsIDIyMywgMTA3LCAyMTYsIDIzLCA1NiwgMSwgMjU0LCAyNCwgNzUsIDE0MSwgMSwgMjU0LCAKKyAgICAyNCwgMjExLCA0NywgNDksIDI4LCAxNiwgMjI0LCAxNTUsIDQ5LCAyOCwgMTYsIDI0OCwgMTU5LCA0OSwgMjgsIDE2LCAyMjUsIAorICAgIDE3NiwgNDksIDI4LCAxNiwgMjI2LCAxMTQsIDI0NSwgMTc5LCA0OSwgMjgsIDE2LCAyMjYsIDExNCwgMjQ3LCAyMDIsIDQ5LCAKKyAgICAyOCwgMTYsIDIxNCwgMTYsIDI0NSwgMTc5LCA0OSwgMjgsIDE2LCAyMTQsIDE2LCAyNDcsIDIwMiwgNDksIDI4LCAxNiwgCisgICAgMjM0LCAxOTgsIDQ5LCAyOCwgMTYsIDIxNywgMTcwLCA0OSwgMjgsIDE2LCAyMjYsIDEwLCA0OSwgMjgsIDE2LCAyMTAsIAorICAgIDIxNywgNDksIDI4LCAxNiwgMjEwLCAyMTgsIDI0NywgMjAyLCA0OSwgMjgsIDE2LCAyMzMsIDIzNSwgNDksIDI4LCAxNiwgCisgICAgMjU0LCA2OSwgMjQ1LCAxNzksIDQ5LCAyOCwgMTYsIDI0NSwgMjcsIDI0NSwgMTc5LCA0OSwgMjgsIDE2LCAyMTcsIDMsIDQ5LCAKKyAgICAyOCwgMTYsIDIzNCwgMTYyLCA0OSwgMjgsIDE2LCAyNTQsIDU5LCA0OSwgMjgsIDE2LCAyNTQsIDYwLCAyNDcsIDIwMiwgNDksIAorICAgIDI4LCAxNiwgMjE3LCAxNzYsIDQ5LCAyOCwgMTYsIDIxNiwgMTYwLCA0OSwgMjgsIDE2LCAyMjYsIDIwNywgMjU0LCAyMiwgCisgICAgNDksIDI4LCAxNiwgMjQyLCAxNjAsIDI1NCwgMjIsIDQ5LCAyOCwgMTYsIDIyNCwgMTU0LCA0OSwgMjgsIDE2LCAyNTAsIAorICAgIDE1MCwgNDksIDI4LCAxNiwgMjE0LCA2LCA0OSwgMjgsIDE2LCAyMzUsIDE2NSwgMjU0LCAyMiwgNDksIDI4LCAxNiwgMjM0LCAKKyAgICAxNjQsIDI1NCwgMjIsIDQ5LCAyOCwgMTYsIDIzNCwgMTYzLCAyNTQsIDIyLCA0OSwgMjgsIDE2LCAyMjEsIDIxNCwgNDksIAorICAgIDI4LCAxNiwgMjI2LCAxLCA0OSwgMjgsIDE2LCAyMTgsIDE0NywgMjU0LCA2MiwgNDksIDI4LCAxNiwgMjI2LCAxMTMsIDI1NCwgCisgICAgMjIsIDQ5LCAyOCwgMTYsIDIxNCwgMTUsIDI1NCwgMjIsIDQ5LCAyOCwgMTYsIDI1NCwgNjMsIDI1NCwgMjIsIDQ5LCAyOCwgCisgICAgMTYsIDI1NCwgNTcsIDQ5LCAyOCwgMTYsIDIzNCwgMzgsIDQ5LCAyOCwgMTYsIDIyMywgNDcsIDQ5LCAyOCwgMTYsIDIyNSwgCisgICAgMTA3LCAyNTQsIDIyLCA0OSwgMjgsIDE2LCAyMTYsIDg0LCA0OSwgMjgsIDE2LCAyNTQsIDEyMiwgNDksIDI4LCAxNiwgMjIxLCAKKyAgICAxNjAsIDQ5LCAyOCwgMTYsIDIxNywgMTc5LCAyNTQsIDIyLCA0OSwgMjgsIDE2LCAyMTcsIDE3OSwgMjMxLCA0MSwgMjE4LCAKKyAgICAxNDUsIDQ5LCAyOCwgMTYsIDIyNiwgMTA4LCAyNTQsIDIyLCA0OSwgMjgsIDE2LCAyMTYsIDE5MSwgNDksIDI4LCAxNiwgCisgICAgMjMzLCAyOCwgNDksIDI4LCAxNiwgMjQ2LCA0MiwgNDksIDI4LCAxNiwgMjE1LCAyMjgsIDQ5LCAyOCwgMTYsIDIxNiwgMjMzLCAKKyAgICA0OSwgMjgsIDE2LCAyMzMsIDIzOCwgNDksIDI4LCAxNiwgMjU0LCA2OSwgMjQ1LCAyNywgMjI5LCA5NiwgNDksIDI4LCAxNiwgCisgICAgMjQzLCAyMzcsIDI1NCwgMjIsIDQ5LCAyOCwgMTYsIDIzNiwgMTMsIDQ5LCAyOCwgMTYsIDIxNSwgMjAwLCAyNTQsIDIyLCAKKyAgICA0OSwgMjgsIDE2LCAyMzQsIDIwMSwgMjE1LCAxOTksIDQ5LCAyOCwgMTYsIDIyNSwgMjAxLCA0OSwgMjgsIDE2LCAyMjQsIAorICAgIDE1OSwgNDksIDI4LCAxNiwgMjM0LCAxMiwgNDksIDI4LCAxNiwgMjUwLCA4MSwgMjU0LCAyMiwgNDksIDI4LCAxNiwgMjIzLCAKKyAgICAxNDcsIDQ5LCAyOCwgMTYsIDIyNiwgMTMsIDI1NCwgMjIsIDQ5LCAyOCwgMTYsIDIyNiwgMTEsIDI1NCwgMjIsIDQ5LCAyOCwgCisgICAgMTYsIDI0MCwgMTEwLCA0OSwgMjgsIDE2LCAyMjksIDIwNCwgNDksIDI4LCAxNiwgMjI1LCAxNTcsIDQ5LCAyOCwgMTYsIAorICAgIDIzNCwgMTMsIDI1NCwgMTUwLCA0OSwgMjgsIDE2LCAyMTUsIDIwMCwgMjU0LCAxNTAsIDQ5LCAyOCwgMTYsIDIxOCwgMTI0LCAKKyAgICA0OSwgMjgsIDE2LCAyNDIsIDEyNCwgNDksIDI4LCAxNiwgMjM1LCAxNjUsIDIyOSwgOTYsIDQ5LCAyOCwgMTYsIDIyNiwgCisgICAgMjA3LCAyMjksIDk2LCA0OSwgMjgsIDE2LCAyMjYsIDExNCwgMjI5LCA5NiwgNDksIDI4LCAxNiwgMjI1LCAxNTYsIDQ5LCAKKyAgICAyOCwgMTYsIDIzMywgMjU1LCA0OSwgMjgsIDE2LCAyMjUsIDE1NSwgNDksIDI4LCAxNiwgMjMzLCAyMzcsIDQ5LCAyOCwgMTYsIAorICAgIDIyNSwgMjAyLCAyMjksIDk2LCA0OSwgMjgsIDE2LCAyMzQsIDE2MywgMjI5LCA5NywgMjU0LCA5NywgNDksIDI4LCAxNiwgCisgICAgMjM0LCAxNjQsIDIyOSwgOTcsIDI1NCwgOTcsIDQ5LCAyOCwgMTYsIDIxMCwgMjE1LCA0OSwgMjgsIDE2LCAyNTQsIDYwLCAKKyAgICAyMjksIDk2LCA0OSwgMjgsIDE2LCAyNTQsIDYxLCAyMTcsIDE3NywgMjI5LCA5NiwgNDksIDI4LCAxNiwgMjEwLCAyMTYsIAorICAgIDQ5LCAyOCwgMTYsIDIzMywgMjM2LCA0OSwgMjgsIDE2LCAyNDUsIDE3NCwgNDksIDI4LCAxNiwgMjUwLCAxNTEsIDQ5LCAyOCwgCisgICAgMTYsIDIzMCwgMTk5LCAyMzUsIDE2NCwgNDksIDI4LCAxNiwgMjE0LCAxNiwgMjI5LCA5NiwgNDksIDI4LCAxNiwgMjI1LCAKKyAgICAxMDcsIDIyOSwgOTYsIDQ5LCAyOCwgMTYsIDIyNCwgMTYwLCAyMjksIDk2LCA0OSwgMjgsIDE2LCAyMjYsIDIwNCwgNDksIAorICAgIDI4LCAxNiwgMjU0LCA4NSwgNDksIDI4LCAxNiwgMjMyLCA1OSwgNDksIDI4LCAxNiwgMjI2LCAxMSwgMjI5LCA5NiwgNDksIAorICAgIDI4LCAxNiwgMjI2LCAxMywgMjI5LCA5NiwgNDksIDI4LCAxNiwgMjQ1LCA2MSwgMjI2LCAxMiwgNDksIDI4LCAxNiwgMjMzLCAKKyAgICAxNTQsIDQ5LCAyOCwgMTYsIDI1NCwgODYsIDQ5LCAyOCwgMTYsIDIxNSwgMjAwLCAyMjksIDk2LCA0OSwgMjgsIDE2LCAyNDUsIAorICAgIDE3NywgNDksIDI4LCAxNiwgMjE3LCAxNzksIDIyOSwgOTYsIDQ5LCAyOCwgMTYsIDIxNywgMTcxLCA0OSwgMjgsIDE2LCAKKyAgICAyNTAsIDgxLCAyMjksIDk2LCA0OSwgMjgsIDE2LCAyNDUsIDEwNywgNDksIDI4LCAxNiwgMjIxLCAxNjEsIDIyOSwgOTYsIAorICAgIDQ5LCAyOCwgMTYsIDIxMSwgMTUxLCAyMzQsIDM4LCA0OSwgMjgsIDE2LCAyMTUsIDE5NywgNDksIDI4LCAxNiwgMjI0LCAKKyAgICAxNjEsIDQ5LCAyOCwgMTYsIDIxNSwgMjAxLCA0OSwgMjgsIDE2LCAyMTUsIDE5OCwgNDksIDI4LCAxNiwgMjI0LCAxNTgsIAorICAgIDQ5LCAyOCwgMTYsIDIxNSwgMTk2LCA0OSwgMjgsIDE2LCAyMjQsIDE1NywgNDksIDI4LCAxNiwgMjQyLCAxNTksIDQ5LCAyOCwgCisgICAgMTYsIDI1NCwgMTUsIDQ5LCAyOCwgMTYsIDI0NSwgNjEsIDI1NCwgMTUsIDQ5LCAyOCwgMTYsIDIyNiwgMTA4LCAyMjksIDk2LCAKKyAgICA0OSwgMjgsIDE2LCAyMTYsIDE5MCwgMjQ1LCA3MCwgNDksIDI4LCAxNiwgMjE2LCAxOTAsIDI0NSwgMjYsIDQ5LCAyOCwgMTYsIAorICAgIDIxNiwgMTkyLCAyNTQsIDY0LCA0OSwgMjgsIDE2LCAyMTYsIDE4NSwgMjM0LCAyNDgsIDI1NCwgNTYsIDQ5LCAyOCwgMTYsIAorICAgIDIzNCwgMjAwLCA0OSwgMjgsIDE2LCAyNDUsIDE0MCwgNDksIDI4LCAxNiwgMjExLCAxMSwgMjM0LCAxOTcsIDQ5LCAyOCwgCisgICAgMTYsIDIxMSwgMTEsIDI1NCwgOTcsIDQ5LCAyOCwgMTYsIDIxOCwgMTQ2LCA0OSwgMjgsIDE2LCAyMzQsIDM5LCAyNTQsIDk3LCAKKyAgICA0OSwgMjgsIDE2LCAyNDcsIDIwMywgMjU0LCAyMiwgNDksIDI4LCAxNiwgMjMzLCAyMzksIDI1NCwgMjIsIDQ5LCAyOCwgMTYsIAorICAgIDIzMywgMjM5LCAyNTQsIDE1MCwgNDksIDI4LCAxNiwgMjMzLCAyMzksIDIyOSwgOTYsIDQ5LCAyOCwgMTYsIDI1NCwgNjMsIAorICAgIDIyOSwgOTYsIDQ5LCAyOCwgMTYsIDI1NCwgNjUsIDQ5LCAyOCwgMTYsIDI0NywgMjAyLCA0OSwgMjgsIDE2LCAyMTUsIDIxMSwgCisgICAgNDksIDI4LCAxNiwgMjE2LCAyMjUsIDQ5LCAyOCwgMTYsIDIzNCwgMywgNDksIDI4LCAxNiwgMjMzLCAzMywgMjQ1LCAxMzUsIAorICAgIDI1MCwgNzIsIDQ5LCAyOCwgMTYsIDIzMywgMzMsIDI0NiwgNDMsIDI1MCwgNzMsIDQ5LCAyOCwgMTYsIDIzMywgMzMsIDIxNSwgCisgICAgMjEzLCAyNTAsIDczLCA0OSwgMjgsIDE2LCAyMzMsIDMzLCAyMTYsIDIzNSwgMjUwLCA3MywgNDksIDI4LCAxNiwgMjMzLCAKKyAgICAzMywgMjM2LCA4LCAyNTAsIDcyLCA0OSwgMjgsIDE2LCAyNDIsIDE2MCwgMjI5LCA5NywgMjU0LCA5NywgNDksIDI4LCAxNiwgCisgICAgMjQyLCAxNjAsIDIyNiwgMiwgMjU0LCAxMSwgNDksIDI4LCAxNiwgMjQyLCAxNjAsIDIyNiwgMiwgMjQ4LCAzMCwgNDksIDI4LCAKKyAgICAxNiwgMjQ3LCAyMjYsIDQ5LCAyOCwgMTYsIDI0NywgMjI3LCAyMjYsIDIsIDI1NCwgMTIsIDIzNCwgMTk3LCA0OSwgMjgsIAorICAgIDE2LCAyNDcsIDIyNywgMjI2LCAyLCAyNTQsIDEyLCAyNTQsIDk3LCA0OSwgMjgsIDE2LCAyNDcsIDIyNywgMjI2LCAyLCAKKyAgICAyNDgsIDMwLCA0OSwgMjgsIDE2LCAyMTUsIDIxNywgNDksIDI4LCAxNiwgMjU0LCAxNiwgNDksIDI4LCAxNiwgMjM2LCAxNSwgCisgICAgNDksIDI4LCAxNiwgMjQ3LCAyNDcsIDQ5LCAyOCwgMTYsIDI1NCwgMjEyLCAyMjUsIDEsIDI1NCwgMTcsIDQ5LCAyOCwgMTYsIAorICAgIDI1NCwgMjEyLCAyNTQsIDE0LCA0OSwgMjgsIDE2LCAyNTQsIDIxMiwgMjU0LCAxNywgNDksIDI4LCAxNiwgMjU0LCAyMTIsIAorICAgIDIzMSwgMzUsIDQ5LCAyOCwgMTYsIDI1NCwgMjEyLCAyMzEsIDQ2LCA0OSwgMjgsIDE2LCAyNTQsIDIxMiwgMjQyLCAxNjEsIAorICAgIDQ5LCAyOCwgMTYsIDI1NCwgMjEyLCAyNDIsIDE1OCwgNDksIDI4LCAxNiwgMjU0LCAyMTIsIDIyNSwgMSwgMjQyLCAxNjEsIAorICAgIDQ5LCAyOCwgMTYsIDIzMSwgMTUyLCAyMjQsIDE2NiwgMjQwLCAxMDgsIDQ5LCAyOCwgMTYsIDIzMSwgMTUyLCAyNTQsIDE1MiwgCisgICAgMjI0LCAxNjYsIDI0MCwgMTA4LCA0OSwgMjgsIDE2LCAyMzEsIDE1MiwgMjQ4LCAyOSwgMjQwLCAxMDgsIDQ5LCAyOCwgMTYsIAorICAgIDIzMSwgMTUyLCAyNTQsIDE1MiwgMjQ4LCAyOSwgMjQwLCAxMDgsIDQ5LCAyOCwgMTYsIDIzMSwgMTUyLCAyMTUsIDIwNiwgCisgICAgMjQwLCAxMDgsIDQ5LCAyOCwgMTYsIDIzMSwgMTUyLCAyMTUsIDIxOCwgNDksIDI4LCAxNiwgMjMxLCAxNTIsIDIxNiwgMjI5LCAKKyAgICAyNDAsIDEwOCwgNDksIDI4LCAxNiwgMjMxLCAxNTIsIDIxNiwgMjI5LCAyMzMsIDM2LCAyNDAsIDEwOCwgNDksIDI4LCAxNiwgCisgICAgMjMxLCAxNTIsIDIzMywgMzYsIDI0MCwgMTA4LCA0OSwgMjgsIDE2LCAyMzEsIDE1MiwgMjI1LCA0MCwgMjQwLCAxMDgsIDQ5LCAKKyAgICAyOCwgMTYsIDIzNSwgMTcwLCAyMTYsIDI1MiwgMjQwLCAxMDksIDQ5LCAyOCwgMTYsIDI1NCwgNjEsIDIxNiwgMjUyLCAyNDAsIAorICAgIDEwOSwgNDksIDI4LCAxNiwgMjQ0LCAxNzMsIDIxNiwgMjI2LCA0OSwgMjgsIDE2LCAyNDQsIDE3MywgMjMwLCAxNDQsIDQ5LCAKKyAgICAyOCwgMTYsIDI0NCwgMTczLCAyNDcsIDIzMSwgNDksIDI4LCAxNiwgMjMxLCAxNTIsIDIxNCwgMTAsIDI0MCwgMTA4LCA0OSwgCisgICAgMjgsIDE2LCAyMzEsIDE1MiwgMjI0LCAxNjUsIDI0MCwgMTA4LCA0OSwgMjgsIDE2LCAyMzEsIDE1MiwgMjI1LCA0MCwgMjE2LCAKKyAgICAyMjksIDI0MCwgMTA4LCA0OSwgMjgsIDE2LCAyNDIsIDE1NiwgMjMwLCAyNywgMjU0LCA2NCwgNDksIDI4LCAxNiwgMjQyLCAKKyAgICAxNTYsIDIzMCwgMjcsIDI0NywgMjAxLCA0OSwgMjgsIDE2LCAyNDUsIDE0OSwgMjM0LCAyNDgsIDI0MywgMjM3LCAyMTMsIAorICAgIDEyNCwgNDksIDI4LCAxNiwgMjM2LCAxNCwgNDksIDI4LCAxNiwgMjM2LCAxMiwgNDksIDI4LCAxNiwgMjQzLCAyMzcsIDI1NCwgCisgICAgMjMsIDI0OCwgMjgsIDI0MCwgMTA3LCA0OSwgMjgsIDE2LCAyNDMsIDIzNywgMjQ3LCAyNDUsIDE5MCwgNDksIDI4LCAxNiwgCisgICAgMjQzLCAyMzcsIDI0NywgMjQ1LCAyMjksIDIwNCwgNDksIDI4LCAxNiwgMjQzLCAyMzcsIDIyOSwgMTk5LCAyNDAsIDEwOCwgCisgICAgNDksIDI4LCAxNiwgMjQzLCAyMzcsIDI0NywgMjQ1LCAyNDgsIDQsIDQ5LCAyOCwgMTYsIDI0MywgMjM3LCAyMTksIDEwMywgCisgICAgMjQ3LCAyNDQsIDI0OCwgNCwgNDksIDI4LCAxNiwgMjQzLCAyMzcsIDI0NywgMjQ1LCAyMzQsIDE4MywgNDksIDI4LCAxNiwgCisgICAgMjQzLCAyMzcsIDI0NywgMjQ1LCAyMTAsIDIzLCA0OSwgMjgsIDE2LCAyNDMsIDIzNywgMjQ3LCAyNDUsIDIyOCwgMjM1LCAKKyAgICAyMzQsIDE5NywgNDksIDI4LCAxNiwgMjQzLCAyMzcsIDI0NywgMjQ1LCAyMjgsIDIzNSwgMjU0LCA5NywgNDksIDI4LCAxNiwgCisgICAgMjQzLCAyMzcsIDIzMSwgMTkyLCAyNTAsIDc0LCAyNDcsIDIzMSwgNDksIDI4LCAxNiwgMjQzLCAyMzcsIDIzMSwgMTkyLCAKKyAgICAyNTAsIDc0LCAyMzAsIDE0NCwgNDksIDI4LCAxNiwgMjQ0LCAxMjMsIDIxOSwgMTAzLCAyNTAsIDc0LCAyMTQsIDksIDQ5LCAKKyAgICAyOCwgMTYsIDI0MywgMjM3LCAyMTksIDEwMywgMjUwLCA3NCwgMjE3LCAxODAsIDQ5LCAyOCwgMTYsIDI0MywgMjM3LCAyMjksIAorICAgIDk4LCA0OSwgMjgsIDE2LCAyNTAsIDc1LCAyMDksIDI0OSwgNDksIDI4LCAxNiwgMjUwLCA3NSwgMjM0LCAzNywgNDksIDI4LCAKKyAgICAxNiwgMjUwLCA3NSwgMjE5LCAxMCwgNDksIDI4LCAxNiwgMjQzLCAyMzcsIDI0MCwgMTU1LCAyMTEsIDEwLCAyMTYsIDIzMCwgCisgICAgNDksIDI4LCAxNiwgMjQzLCAyMzcsIDI0NSwgMTUwLCAyNTQsIDg3LCA0OSwgMjgsIDE2LCAyMTEsIDEwLCAyMTUsIDIwNywgCisgICAgNDksIDI4LCAxNiwgMjQ3LCAyMzksIDIxNSwgMjA3LCA0OSwgMjgsIDE2LCAyNDcsIDIzOSwgMjE2LCAyMzAsIDQ5LCAyOCwgCisgICAgMTYsIDI0NywgMjM5LCAyNTQsIDY2LCAyNDYsIDQzLCAyNDcsIDE0MCwgNDksIDI4LCAxNiwgMjQ3LCAyMzksIDIzMCwgMTQyLCAKKyAgICAyMTYsIDIzNCwgMjQ3LCAxNDAsIDQ5LCAyOCwgMTYsIDI0NywgMjM5LCAyNDcsIDIyMywgMjQ1LCAzNywgMjQ3LCAxNDAsIAorICAgIDQ5LCAyOCwgMTYsIDI0NywgMjM5LCAyMTUsIDIxNSwgMjI2LCAyMTIsIDI0NywgMTQwLCA0OSwgMjgsIDE2LCAyMTEsIDEwLCAKKyAgICAyNTQsIDY2LCAyNDYsIDQzLCAyNDcsIDE0MCwgNDksIDI4LCAxNiwgMjExLCAxMCwgMjMwLCAxNDIsIDIxNiwgMjM0LCAyNDcsIAorICAgIDE0MCwgNDksIDI4LCAxNiwgMjExLCAxMCwgMjQ3LCAyMjMsIDI0NSwgMzcsIDI0NywgMTQwLCA0OSwgMjgsIDE2LCAyMTEsIAorICAgIDEwLCAyMTUsIDIxNSwgMjI2LCAyMTIsIDI0NywgMTQwLCA0OSwgMjgsIDE2LCAyNDMsIDUwLCAyNDcsIDIzOCwgNDksIDI4LCAKKyAgICAxNiwgMjQzLCA1MCwgMjExLCA5LCA0OSwgMjgsIDE2LCAyNDcsIDI0NiwgMjU0LCA2NiwgMjMwLCAyMDAsIDQ5LCAyOCwgMTYsIAorICAgIDI0NywgMjQ2LCAyNTQsIDY2LCAyMzEsIDc0LCA0OSwgMjgsIDE2LCAyNDcsIDI0NiwgMjQ3LCAyMDIsIDQ5LCAyOCwgMTYsIAorICAgIDI0NywgMjQ2LCAyMTYsIDE4MywgNDksIDI4LCAxNiwgMjE5LCAxNjQsIDIxNiwgMTgzLCA0OSwgMjgsIDE2LCAyMTksIDE2NCwgCisgICAgMjE2LCAxODQsIDI0NywgMTg3LCA0OSwgMjgsIDE2LCAyMTksIDE2NCwgMjE2LCAxODQsIDIxNSwgMjA4LCA0OSwgMjgsIDE2LCAKKyAgICAyMTksIDE2NCwgMjE2LCAxODQsIDIxNiwgMjIzLCA0OSwgMjgsIDE2LCAyMTksIDE2NCwgMjUzLCAyNDUsIDQ5LCAyOCwgMTYsIAorICAgIDIxOSwgMTY0LCAyNTMsIDI0NiwgMjQ3LCAxODcsIDQ5LCAyOCwgMTYsIDIxOSwgMTY0LCAyNTMsIDI0NiwgMjE1LCAyMDgsIAorICAgIDQ5LCAyOCwgMTYsIDIxOSwgMTY0LCAyNTMsIDI0NiwgMjE2LCAyMjMsIDQ5LCAyOCwgMTYsIDI0NywgMjI0LCAyNDMsIDMxLCAKKyAgICA0OSwgMjgsIDE2LCAyNDcsIDIzMCwgMjI2LCAxMzUsIDQ5LCAyOCwgMTYsIDIxOCwgMTM4LCA0OSwgMjgsIDE2LCAyNTQsIDgsIAorICAgIDE5MCwgNDksIDI4LCAxNiwgMjU0LCA4LCAyMTMsIDEyNCwgNDksIDI4LCAxNiwgMjU0LCA4LCAyNDMsIDEzNiwgNDksIDI4LCAKKyAgICAxNiwgMjU0LCA4LCAyNDgsIDQsIDQ5LCAyOCwgMTYsIDI1NCwgOCwgMjM0LCAxODMsIDQ5LCAyOCwgMTYsIDI1NCwgOCwgCisgICAgMjEwLCAyMywgNDksIDI4LCAxNiwgMjU0LCA4LCAyMjgsIDIzNCwgNDksIDI4LCAxNiwgMjM0LCAxNjMsIDIyOSwgOTcsIAorICAgIDIzMSwgNDUsIDQ5LCAyOCwgMTYsIDIzNCwgMTY0LCAyMjksIDk3LCAyMzEsIDQ1LCA0OSwgMjgsIDE2LCAyMzQsIDE2MywgCisgICAgMjI5LCA5NywgMjM0LCAxOTcsIDQ5LCAyOCwgMTYsIDIzNCwgMTY0LCAyMjksIDk3LCAyMzQsIDE5NywgNDksIDI4LCAxNiwgCisgICAgMjM0LCAzOSwgMjM0LCAxOTcsIDQ5LCAyOCwgMTYsIDI0MiwgMTYwLCAyMjksIDk3LCAyMzQsIDE5NywgMjgsIDE2LCAyMTksIAorICAgIDE1NiwgMjUyLCAxMzYsIDI4LCAxNiwgNTIsIDI1MiwgMTM2LCAyOCwgMTYsIDQwLCAyNTIsIDEzNiwgMjgsIDE2LCAyMjMsIAorICAgIDUxLCA0MCwgMjUyLCAxMzYsIDI4LCAxNiwgMjQ4LCAxNTYsIDI1MiwgMTM2LCAyOCwgMTYsIDIxOSwgMjUyLCAyNTIsIDEzNiwgCisgICAgMjgsIDE2LCA0MywgMjIzLCA3OCwgNTAsIDI4LCAxNiwgNDQsIDIyMywgNzgsIDUwLCAyOCwgMTYsIDIyMywgNzgsIDI0NywgCisgICAgMTE5LCAyOCwgMTYsIDI0OCwgMTk3LCAyMjEsIDE2NCwgMjgsIDE2LCAyNDgsIDIyMywgMjUwLCAyNTAsIDI4LCAxNiwgMjIxLCAKKyAgICAxNjQsIDI4LCAxNiwgMjQ5LCAyMzUsIDI4LCAxNiwgMjIzLCA3NiwgMjQ0LCAxMTIsIDI4LCAxNiwgMjIzLCA3NiwgMjQ0LCAKKyAgICAxMTEsIDI4LCAxNiwgMjIzLCA3NiwgMjQ0LCAxMTAsIDI4LCAxNiwgMjQ0LCAxMzIsIDI4LCAxNiwgMjQ0LCAxMzMsIDUxLCAKKyAgICAyOCwgMTYsIDI1MSwgMTQ5LCA3OCwgMjgsIDE2LCAyNTEsIDI1LCAyOCwgMTYsIDI1MSwgMTYwLCAyOCwgMTYsIDEyNywgMjgsIAorICAgIDE2LCAyMjYsIDE5NCwgMjE4LCAxNjQsIDI4LCAxNiwgMjE1LCA1NywgMjE4LCAxNjQsIDI4LCAxNiwgMjE2LCAxNDMsIDIxOCwgCisgICAgMTY0LCAyOCwgMTYsIDI0NCwgMTEsIDIxOCwgMTY0LCAyOCwgMTYsIDI0NCwgODEsIDIxOCwgMTY0LCAyOCwgMTYsIDIxOSwgCisgICAgMTI1LCAyMTgsIDE2NCwgMjgsIDE2LCAyMTksIDEyMywgMjQzLCAyNTEsIDI4LCAxNiwgMjQ0LCA5LCAyNDMsIDI1MSwgMjgsIAorICAgIDE2LCAyNDMsIDIwNCwgMjUwLCAxNSwgMjgsIDE2LCAyNDMsIDIwNCwgMjUwLCAxNiwgMjI2LCAxMzcsIDI1NCwgMTQzLCAyOCwgCisgICAgMTYsIDI0MywgMjA0LCAyNTAsIDE2LCAyMjYsIDEzNywgMjUyLCAxMjMsIDI4LCAxNiwgMjUxLCA2OCwgMjUwLCAxNSwgMjgsIAorICAgIDE2LCAyNDUsIDgsIDI1MCwgMTUsIDI4LCAxNiwgMjQ1LCA4LCAyNTAsIDE2LCAyMjYsIDEzNywgMjU0LCAxNDMsIDI4LCAxNiwgCisgICAgMjQ1LCA4LCAyNTAsIDE2LCAyMjYsIDEzNywgMjUyLCAxMjMsIDI4LCAxNiwgMjQ2LCA4NCwgMjUwLCAxNCwgMjgsIDE2LCAKKyAgICAyNDYsIDg0LCAyNTAsIDEzLCAyOCwgMTYsIDIzMCwgODYsIDIzMSwgOTEsIDIyMywgNjIsIDI4LCAxNiwgNTIsIDIyMCwgNzYsIAorICAgIDI4LCAxNiwgNTIsIDI0NCwgNjYsIDI4LCAxNiwgMjQ0LCA2NywgMjE0LCAxNjMsIDI4LCAxNiwgMjQ0LCA2NywgMjQ2LCAKKyAgICAxMDcsIDI4LCAxNiwgMjI5LCAxODksIDIxNCwgMTYzLCAyOCwgMTYsIDIyOSwgMTg5LCAyNDYsIDEwNywgMjgsIDE2LCAyMjAsIAorICAgIDc3LCAyMTQsIDE2MywgMjgsIDE2LCAyMjAsIDc3LCAyNDYsIDEwNywgMjgsIDE2LCAyMjQsIDIzLCAxMzgsIDIyMCwgNzYsIAorICAgIDI4LCAxNiwgMjI0LCAyMywgMTM4LCAyNDQsIDY2LCAyOCwgMTYsIDI0OSwgMjE3LCAyMTYsIDg4LCAyOCwgMTYsIDI0OSwgCisgICAgODYsIDIxNiwgODgsIDI4LCAxNiwgMjI2LCAxMzcsIDI1NCwgMTQzLCAyOCwgMTYsIDIyNiwgMTM3LCAyNTIsIDEyMywgMjgsIAorICAgIDE2LCAyMjQsIDUsIDI1NCwgMTQzLCAyOCwgMTYsIDIyNCwgNSwgMjUyLCAxMjMsIDI4LCAxNiwgMjMwLCA4OSwgMjIzLCA2MiwgCisgICAgMjgsIDE2LCAyMTEsIDI1MSwgMjIzLCA2MiwgMjgsIDE2LCAxNjMsIDIyMywgNjIsIDI4LCAxNiwgMjI0LCAyMywgMjIzLCAKKyAgICA2MiwgMjgsIDE2LCAyNDUsIDE5MCwgMjIzLCA2MiwgMjgsIDE2LCAyMTksIDExOSwgMjIzLCA2MiwgMjgsIDE2LCAyMTYsIAorICAgIDE2MSwgMjIzLCA2MiwgMjgsIDE2LCAyMTksIDExMSwgMjIzLCA2MiwgMjgsIDE2LCAxMjMsIDI0MCwgMjEyLCAyMTUsIDcxLCAKKyAgICAyMjMsIDYyLCAyOCwgMTYsIDIxMSwgMTc5LCAyMjgsIDQ0LCAyOCwgMTYsIDk2LCAyMjgsIDQ0LCAyOCwgMTYsIDI1MCwgMzcsIAorICAgIDIxMSwgMTc5LCAyMjgsIDQ0LCAyOCwgMTYsIDQyLCAyMjgsIDQ1LCAyMTEsIDI1MywgMjgsIDE2LCA0MiwgMjI4LCA0NSwgCisgICAgMjUxLCAyMjIsIDI4LCAxNiwgMjE1LCAyMjcsIDIyOCwgNDUsIDEyMCwgMjExLCAyNTMsIDI4LCAxNiwgMjE1LCAyMjcsIAorICAgIDIyOCwgNDUsIDEyMCwgMjUxLCAyMjIsIDI4LCAxNiwgMjE1LCAyMjcsIDIyOCwgNDUsIDQzLCAyMTEsIDI1MywgMjgsIDE2LCAKKyAgICAyMTUsIDIyNywgMjI4LCA0NSwgNDMsIDI1MSwgMjIyLCAyOCwgMTYsIDIxNSwgMjI3LCAyMjgsIDQ1LCA0NCwgMjExLCAyNTMsIAorICAgIDI4LCAxNiwgMjE1LCAyMjcsIDIyOCwgNDUsIDQ0LCAyNTEsIDIyMiwgMjgsIDE2LCAyMTUsIDIyNywgMjI4LCA0NSwgMTI0LCAKKyAgICAyMTEsIDI1MywgMjgsIDE2LCAyMTUsIDIyNywgMjI4LCA0NSwgMTI0LCAyNTEsIDIyMiwgMjgsIDE2LCAyMTUsIDIyNywgCisgICAgMjI4LCA0NSwgMTIwLCA0NCwgMjExLCAyNTMsIDI4LCAxNiwgMjE1LCAyMjcsIDIyOCwgNDUsIDEyMCwgNDQsIDI1MSwgMjIyLCAKKyAgICAyOCwgMTYsIDIzMCwgMTMwLCAyMjgsIDQ1LCAyMTEsIDI1MywgMjgsIDE2LCAyMzAsIDEzMCwgMjI4LCA0NSwgMjUxLCAyMjIsIAorICAgIDI4LCAxNiwgMjE1LCAyMjQsIDIyOCwgNDUsIDEyNCwgMjExLCAyNTMsIDI4LCAxNiwgMjE1LCAyMjQsIDIyOCwgNDUsIDEyNCwgCisgICAgMjUxLCAyMjIsIDI4LCAxNiwgMjI2LCA1LCAyMjgsIDQ0LCAyOCwgMTYsIDIxMywgMTMyLCAyMjgsIDQ0LCAyOCwgMTYsIAorICAgIDIyOCwgNDUsIDI1MSwgMjIyLCAyOCwgMTYsIDIyNywgMjA0LCAyMjgsIDQ0LCAyOCwgMTYsIDI0OSwgMjQyLCAyMjgsIDQ1LCAKKyAgICAyMTEsIDI1MywgMjgsIDE2LCAyNDksIDI0MiwgMjI4LCA0NSwgMjUxLCAyMjIsIDI4LCAxNiwgMjUxLCAxNDcsIDI4LCAxNiwgCisgICAgMjExLCAyNTEsIDIyOCwgNDgsIDI4LCAxNiwgMTYzLCAyMjgsIDQ4LCAyOCwgMTYsIDIyNCwgMjMsIDIyOCwgNDgsIDI4LCAKKyAgICAxNiwgMjQ1LCAxOTAsIDIyOCwgNDgsIDI4LCAxNiwgMjE5LCAxMTksIDIyOCwgNDgsIDI4LCAxNiwgMjE2LCAxNjEsIDIyOCwgCisgICAgNDgsIDI4LCAxNiwgMjE5LCAxMTEsIDIyOCwgNDgsIDI4LCAxNiwgMTIzLCAyNDAsIDIxMiwgMjE1LCA3MSwgMjI4LCA0OCwgCisgICAgMjgsIDE2LCAzOCwgMjE4LCAxNDAsIDI4LCAxNiwgMzgsIDIxOCwgMjQxLCAyMTgsIDE0MCwgMjgsIDE2LCAzOCwgMjE1LCAKKyAgICAyMzUsIDI4LCAxNiwgMzgsIDIxNSwgMjM0LCAyOCwgMTYsIDM4LCAyMTUsIDIzMywgMjgsIDE2LCAyNDQsIDEwMiwgMjE1LCAKKyAgICAyMzUsIDI4LCAxNiwgMjQ0LCAxMDIsIDIxNSwgMjM0LCAyOCwgMTYsIDI0NCwgMTAyLCAyMTUsIDIzMywgMjgsIDE2LCAzOCwgCisgICAgMjUzLCAxOTAsIDI0NywgMTIxLCAyOCwgMTYsIDM4LCAyNDQsIDczLCAyOCwgMTYsIDM4LCAyNDQsIDcyLCAyOCwgMTYsIDM4LCAKKyAgICAyNDQsIDcxLCAyOCwgMTYsIDM4LCAyNDQsIDcwLCAyOCwgMTYsIDM4LCAyNDQsIDY5LCAyOCwgMTYsIDI1MiwgNTksIDI1MiwgCisgICAgNzUsIDI4LCAxNiwgMjQ1LCAxNDQsIDI1MiwgNzUsIDI4LCAxNiwgMjUyLCA1OSwgMjE2LCAxMTIsIDI4LCAxNiwgMjQ1LCAKKyAgICAxNDQsIDIxNiwgMTEyLCAyOCwgMTYsIDI1MiwgNTksIDIxOSwgODEsIDI4LCAxNiwgMjQ1LCAxNDQsIDIxOSwgODEsIDI4LCAKKyAgICAxNiwgMjUyLCA1OSwgMjI1LCAxMTYsIDI4LCAxNiwgMjQ1LCAxNDQsIDIyNSwgMTE2LCAyOCwgMTYsIDM4LCAyNTUsIDE1LCAKKyAgICAyOCwgMTYsIDM4LCAyMTgsIDE2NiwgMjgsIDE2LCAzOCwgMjE2LCAyMzksIDI4LCAxNiwgMzgsIDIxOCwgMTY3LCAyOCwgMTYsIAorICAgIDM4LCAyMzEsIDE2MywgMjgsIDE2LCAzOCwgMjMxLCAxNjIsIDI4LCAxNiwgMzgsIDI1NSwgMTQsIDI4LCAxNiwgMzgsIDIzMiwgCisgICAgMTEzLCAyOCwgMTYsIDI1MywgMjU1LCAyMTQsIDE2MywgMjgsIDE2LCAyNTMsIDI1NSwgMjQ2LCAxMDcsIDI4LCAxNiwgMzgsIAorICAgIDI0NywgMTM2LCAyOCwgMTYsIDM4LCAyMjIsIDIzMiwgMjgsIDE2LCAzOCwgMjQ0LCA1OSwgMjgsIDE2LCAzOCwgMjE5LCA3NywgCisgICAgMjgsIDE2LCAzOCwgMjUyLCAzOSwgMjgsIDE2LCAzOCwgNTIsIDIxNiwgMjAsIDI4LCAxNiwgMzgsIDIxNSwgMjEyLCAyMTYsIAorICAgIDIwLCAyOCwgMTYsIDIyMiwgMjM2LCAyOCwgMTYsIDIxOCwgNzYsIDI4LCAxNiwgMjEwLCAxNTksIDI4LCAxNiwgMjI1LCAKKyAgICAxMDgsIDI4LCAxNiwgMjMxLCAyNiwgMjgsIDE2LCAyNDQsIDE4LCAyOCwgMTYsIDI0OSwgMTM5LCAyOCwgMTYsIDI0OCwgNzksIAorICAgIDI4LCAxNiwgMjQyLCAxNTEsIDIyOCwgNDksIDIxOSwgOTYsIDI4LCAxNiwgMjQyLCAxNTEsIDIyOCwgNDksIDIyOCwgNzYsIAorICAgIDIxOSwgOTYsIDI4LCAxNiwgMjE2LCAxLCAyOCwgMTYsIDIxNSwgOTUsIDI4LCAxNiwgMjM1LCAxOTQsIDIxNSwgOTUsIDI4LCAKKyAgICAxNiwgMjE1LCA5NiwgMjE5LCA5NiwgMjgsIDE2LCAyMTUsIDk2LCAyMTQsIDE2MywgMjgsIDE2LCAyMjYsIDE0OSwgMjE4LCAKKyAgICAxMDMsIDI4LCAxNiwgMjI2LCAxNDksIDIxOCwgMTAwLCAyOCwgMTYsIDIyNiwgMTQ5LCAyMTgsIDk5LCAyOCwgMTYsIDIyNiwgCisgICAgMTQ5LCAyMTgsIDk4LCAyOCwgMTYsIDIyNiwgMTQ5LCAyMTgsIDk3LCAyOCwgMTYsIDIyNiwgMTQ5LCAyMTgsIDk2LCAyOCwgCisgICAgMTYsIDIyNiwgMTQ5LCAyMTgsIDk1LCAyOCwgMTYsIDIyNiwgMTQ5LCAyMTgsIDk0LCAyOCwgMTYsIDIyNiwgMTQ5LCAyMTgsIAorICAgIDkzLCAyOCwgMTYsIDIyNiwgMTQ5LCAyMTgsIDEwMiwgMjgsIDE2LCAyMjYsIDE0OSwgMjE4LCAxMDEsIDI4LCAxNiwgMjQxLCAKKyAgICAyNDYsIDI4LCAxNiwgMjI5LCAxMDYsIDI4LCAxNiwgMjQ1LCAxNDQsIDY0LCAyMTgsIDEzNCwgMjgsIDE2LCAyNDgsIDcyLCAKKyAgICAyMTksIDk2LCAyOCwgMTYsIDM4LCAxMjQsIDI1MSwgMTcwLCAyOCwgMTYsIDM4LCAxMjAsIDI1MSwgMTcwLCAyOCwgMTYsIAorICAgIDM4LCAyNDIsIDEsIDI4LCAxNiwgMzgsIDIxOSwgNjgsIDIyNSwgNDQsIDI4LCAxNiwgMjI1LCAyMTcsIDc4LCAyOCwgMTYsIAorICAgIDIyNSwgMjE3LCAxMjAsIDc4LCAyOCwgMTYsIDE2MywgMjI1LCAyMTcsIDc4LCAyOCwgMTYsIDI0MiwgMTgzLCAyMTQsIDE2MywgCisgICAgMjgsIDE2LCAyNDIsIDE4MywgMjQ2LCAxMDcsIDI4LCAxNiwgMiwgMjQ0LCAxMDEsIDI4LCAxNiwgMjQ4LCAxODEsIDI4LCAKKyAgICAxNiwgMjQ4LCAxODIsIDI1NCwgMTU1LCAyOCwgMTYsIDIzMSwgMTM0LCAyOCwgMTYsIDIzMiwgMTMwLCAyOCwgMTYsIDI1MSwgCisgICAgMTQ0LCAyOCwgMTYsIDIyMCwgMTU1LCAyMTEsIDI1MywgMjgsIDE2LCAyMjAsIDE1NSwgMjUxLCAyMjIsIDI4LCAxNiwgMjMwLCAKKyAgICAxODUsIDI4LCAxNiwgMjMwLCAxODYsIDI1MSwgMjIyLCAyOCwgMTYsIDIyMCwgMTQ5LCAyMTEsIDI1MywgMjgsIDE2LCAyMjAsIAorICAgIDE0OSwgMjUxLCAyMjIsIDI4LCAxNiwgMjQzLCAyMjEsIDIxMSwgMjUzLCAyOCwgMTYsIDI0MywgMjIxLCAyNTEsIDIyMiwgCisgICAgMjgsIDE2LCAyMzIsIDEzMSwgMjI1LCAxODEsIDIyMywgNjIsIDI4LCAxNiwgMjMyLCAxMzEsIDIzNiwgNSwgMjIzLCA2MiwgCisgICAgMjgsIDE2LCAyNTEsIDE0NSwgMjIzLCA2MiwgMjgsIDE2LCAyMjAsIDE1NSwgMjIzLCA2MiwgMjgsIDE2LCAyMzAsIDE4NiwgCisgICAgMjIzLCA2MiwgMjgsIDE2LCAyMjAsIDE0OSwgMjIzLCA2MiwgMjgsIDE2LCAyMTYsIDI1MCwgMjI1LCAxNzksIDI0OSwgMTA4LCAKKyAgICAyMjQsIDE3NSwgMjI1LCAxODAsIDI4LCAxNiwgMjE2LCAyNTAsIDIyNSwgMTc5LCAyNDksIDEwOCwgMjI0LCAxNzUsIDIzNiwgCisgICAgNCwgMjgsIDE2LCAyMTYsIDI1MCwgMjI1LCAxNzksIDI0OSwgMTA4LCAyMjQsIDE3NSwgMjI1LCAxODEsIDI0NywgMjEyLCAKKyAgICAyOCwgMTYsIDIxNiwgMjUwLCAyMzYsIDMsIDI0OSwgMTA4LCAyMjQsIDE3NSwgMjI1LCAxODAsIDI4LCAxNiwgMjE2LCAyNTAsIAorICAgIDIzNiwgMywgMjQ5LCAxMDgsIDIyNCwgMTc1LCAyMzYsIDQsIDI4LCAxNiwgMjE2LCAyNTAsIDIzNiwgMywgMjQ5LCAxMDgsIAorICAgIDIyNCwgMTc1LCAyMzYsIDUsIDI0NywgMjEyLCAyOCwgMTYsIDIxNiwgMjUwLCAyMzYsIDMsIDI0OSwgMTA4LCAyMjQsIDE3NSwgCisgICAgMjM2LCA1LCAyNDcsIDIxMSwgMjgsIDE2LCAyMTYsIDI1MCwgMjM2LCAzLCAyNDksIDEwOCwgMjI0LCAxNzUsIDIzNiwgNSwgCisgICAgMjQ3LCAyMTAsIDI4LCAxNiwgMjQ5LCAxMzQsIDI4LCAxNiwgMjQyLCAxMjcsIDI1MSwgNjgsIDI1MCwgMTUsIDI4LCAxNiwgCisgICAgMjQyLCAxMjcsIDI0NSwgOCwgMjUwLCAxNSwgMjgsIDE2LCA0MiwgMjUzLCAxNTksIDI4LCAxNiwgMjEzLCAxNTEsIDI4LCAKKyAgICAxNiwgMjI1LCAxNSwgMjgsIDE2LCAyNTAsIDYsIDI4LCAxNiwgMjIxLCAyMDQsIDI4LCAxNiwgMjUwLCAxMCwgMjgsIDE2LCAKKyAgICAyMTYsIDgsIDI4LCAxNiwgMjI0LCAyNDMsIDI4LCAxNiwgMjI0LCAyNDQsIDI0NCwgNjEsIDI4LCAxNiwgMjIxLCAyMDUsIAorICAgIDI0NCwgNjEsIDI4LCAxNiwgMjE2LCA5LCAyMjMsIDU5LCAyOCwgMTYsIDIyNSwgMTY0LCAyMTgsIDY3LCAyNiwgMjEzLCAKKyAgICAxMzcsIDE4OCwgMjE3LCAyMzAsIDI2LCAyMTMsIDEzNywgMTg4LCAyMTcsIDIxOSwgMjYsIDIxMywgMTM3LCAxODgsIDIxNywgCisgICAgMjA5LCAyNiwgMjEzLCAxMzcsIDE4OCwgMjE3LCAyMDIsIDI2LCAyMTMsIDEzNywgMTg4LCAyMTcsIDE5NCwgMjYsIDIxMywgCisgICAgMTM3LCAxODgsIDIxNywgMTg4LCAyNiwgMjEzLCAxMzcsIDE4OCwgMjE3LCAxODcsIDI2LCAyMTMsIDEzNywgMTg4LCAyMTcsIAorICAgIDE4NiwgMjYsIDIxMywgMTM3LCAxODgsIDIxNywgMTg1LCAyNiwgMjEzLCAxMzcsIDE4OCwgMjE3LCAyMjksIDI2LCAyMTMsIAorICAgIDEzNywgMTg4LCAyMTcsIDIyOCwgMjYsIDIxMywgMTM3LCAxODgsIDIxNywgMjI3LCAyNiwgMjEzLCAxMzcsIDE4OCwgMjE3LCAKKyAgICAyMjYsIDI2LCAyMTMsIDEzNywgMTg4LCAyMTcsIDIyNSwgMjYsIDIxMywgMTM3LCAxODgsIDIxNywgMjI0LCAyNiwgMjEzLCAKKyAgICAxMzcsIDE4OCwgMjE3LCAyMjMsIDI2LCAyMTMsIDEzNywgMTg4LCAyMTcsIDIyMiwgMjYsIDIxMywgMTM3LCAxODgsIDIxNywgCisgICAgMjIxLCAyNiwgMjEzLCAxMzcsIDE4OCwgMjE3LCAyMjAsIDI2LCAyMTMsIDEzNywgMTg4LCAyMTcsIDIxOCwgMjYsIDIxMywgCisgICAgMTM3LCAxODgsIDIxNywgMjE3LCAyNiwgMjEzLCAxMzcsIDE4OCwgMjE3LCAyMTYsIDI2LCAyMTMsIDEzNywgMTg4LCAyMTcsIAorICAgIDIxNSwgMjYsIDIxMywgMTM3LCAxODgsIDIxNywgMjE0LCAyNiwgMjEzLCAxMzcsIDE4OCwgMjE3LCAxOTMsIDI2LCAyMTMsIAorICAgIDEzNywgMTg4LCAyMTcsIDE5MiwgMjYsIDIxMywgMTM3LCAxODgsIDIxNywgMTkxLCAyNiwgMjEzLCAxMzcsIDE4OCwgMjE3LCAKKyAgICAxOTAsIDI2LCAyMTMsIDEzNywgMTg4LCAyMTcsIDE4OSwgMjYsIDIzNSwgMjE1LCAxODgsIDIxNywgMjMwLCAyNiwgMjM1LCAKKyAgICAyMTUsIDE4OCwgMjE3LCAyMTksIDI2LCAyMzUsIDIxNSwgMTg4LCAyMTcsIDIwMiwgMjYsIDIzNSwgMjE1LCAxODgsIDIxNywgCisgICAgMTk0LCAyNiwgMjM1LCAyMTUsIDE4OCwgMjE3LCAxODcsIDI2LCAyMzUsIDIxNSwgMTg4LCAyMTcsIDE4NiwgMjYsIDIzNSwgCisgICAgMjE1LCAxODgsIDIxNywgMjI4LCAyNiwgMjM1LCAyMTUsIDE4OCwgMjE3LCAyMjcsIDI2LCAyMzUsIDIxNSwgMTg4LCAyMTcsIAorICAgIDIyNiwgMjYsIDIzNSwgMjE1LCAxODgsIDIxNywgMjI1LCAyNiwgMjM1LCAyMTUsIDE4OCwgMjE3LCAyMjIsIDI2LCAyMzUsIAorICAgIDIxNSwgMTg4LCAyMTcsIDIyMSwgMjYsIDIzNSwgMjE1LCAxODgsIDIxNywgMjIwLCAyNiwgMjM1LCAyMTUsIDE4OCwgMjE3LCAKKyAgICAyMTUsIDI2LCAyMzUsIDIxNSwgMTg4LCAyMTcsIDIxNCwgMjYsIDIzNSwgMjE1LCAxODgsIDIxNywgMjEzLCAyNiwgMjM1LCAKKyAgICAyMTUsIDE4OCwgMjE3LCAyMTIsIDI2LCAyMzUsIDIxNSwgMTg4LCAyMTcsIDIxMSwgMjYsIDIzNSwgMjE1LCAxODgsIDIxNywgCisgICAgMjEwLCAyNiwgMjM1LCAyMTUsIDE4OCwgMjE3LCAyMDgsIDI2LCAyMzUsIDIxNSwgMTg4LCAyMTcsIDIwNywgMjYsIDIzNSwgCisgICAgMjE1LCAxODgsIDIxNywgMjA2LCAyNiwgMjM1LCAyMTUsIDE4OCwgMjE3LCAyMDUsIDI2LCAyMzUsIDIxNSwgMTg4LCAyMTcsIAorICAgIDIwNCwgMjYsIDIzNSwgMjE1LCAxODgsIDIxNywgMjAzLCAyNiwgMjM1LCAyMTUsIDE4OCwgMjE3LCAyMDEsIDI2LCAyMzUsIAorICAgIDIxNSwgMTg4LCAyMTcsIDIwMCwgMjYsIDIzNSwgMjE1LCAxODgsIDIxNywgMTk5LCAyNiwgMjM1LCAyMTUsIDE4OCwgMjE3LCAKKyAgICAxOTgsIDI2LCAyMzUsIDIxNSwgMTg4LCAyMTcsIDE5NywgMjYsIDIzNSwgMjE1LCAxODgsIDIxNywgMTk2LCAyNiwgMjM1LCAKKyAgICAyMTUsIDE4OCwgMjE3LCAxOTUsIDI2LCAyMzUsIDIxNSwgMTg4LCAyMTcsIDE5MywgMjYsIDIzNSwgMjE1LCAxODgsIDIxNywgCisgICAgMTkyLCAyNiwgMjM1LCAyMTUsIDE4OCwgMjE3LCAxOTEsIDI2LCAyMzUsIDIxNSwgMTg4LCAyMTcsIDE5MCwgMjYsIDIzNSwgCisgICAgMjE1LCAxODgsIDIxNywgMTg5LCAzOCwgMjYsIDI4LCAyMTUsIDIwOSwgMzgsIDI2LCAyOCwgMjE2LCAyMjQsIDM4LCAyNiwgCisgICAgMjgsIDIyNSwgMTg5LCAyNiwgMjgsIDIzMywgMzIsIDIzMCwgMTQzLCAzMSwgMjQ1LCAyMjQsIDI0NywgMjI1LCAzMSwgMjQxLCAKKyAgICAyMjMsIDI0NSwgMjI0LCAyNDcsIDIyNSwgMzEsIDI0MCwgMjE1LCAyNDUsIDIyNCwgMjQ3LCAyMjUsIDMxLCAyNDUsIDIyMywgCisgICAgMjQxLCAyMjQsIDI0NywgMjI1LCAzMSwgMjQ1LCAyMjMsIDI0MCwgMjE0LCAyNDcsIDIyNSwgMzEsIDI0NSwgMjI0LCAxODAsIAorICAgIDMxLCAyNTAsIDE3NSwgMTgwLCAzMSwgMjQzLCAyMzAsIDI1MCwgMzYsIDE4MCwgMzEsIDIzMCwgMTc4LCAxODAsIDMxLCAKKyAgICAyNTIsIDEzMSwgMTgwLCAzMSwgMjM0LCAxODAsIDIxOSwgODAsIDE4MCwgMzEsIDI0OSwgMTgwLCAxODAsIDMxLCAyNTMsIAorICAgIDIzNCwgMTgwLCAzMSwgMjI2LCAxNjQsIDE4MCwgMzEsIDI1MSwgMTU0LCAyMjYsIDEzMSwgMTgwLCAzMSwgMjQ4LCA3NCwgCisgICAgMTc3LCAyNDcsIDE4MCwgMTgwLCAzMSwgMjQ3LCAxNzcsIDE4MCwgMzEsIDIxMCwgMjIyLCAxODAsIDMxLCAyMzUsIDI0OCwgCisgICAgMTgwLCAzMSwgMjI1LCAxOTgsIDE4MCwgMzEsIDIyMywgMTI4LCAxODAsIDMxLCAyNDksIDE5MCwgMTgwLCAzMSwgMjQxLCAKKyAgICA2MSwgMjUyLCAxODUsIDE4MCwgMzEsIDIxMiwgNTksIDE4MCwgMzEsIDI0NCwgNDAsIDE4MCwgMzEsIDI1NCwgMjQ3LCAxODAsIAorICAgIDMxLCAyMjMsIDkwLCAxODAsIDMxLCAyMjMsIDY2LCAxODAsIDMxLCAyNDUsIDIyMiwgMTgwLCAzMSwgMjM1LCA1NCwgMTgwLCAKKyAgICAzMSwgMjQ5LCAxODUsIDE4MCwgMzEsIDI0NSwgMTQzLCAxODAsIDMxLCAyNDYsIDUzLCAxODAsIDMxLCAyNTAsIDE0NiwgCisgICAgMTgwLCAzMSwgMjQ4LCA4MywgMTgwLCAzMSwgMjMsIDIyMywgNjUsIDE4MCwgMzEsIDIyNiwgODIsIDE4MCwgMzEsIDIzMywgCisgICAgMzUsIDE4MCwgMzEsIDI0OSwgMjU1LCAxODAsIDMxLCAyMzQsIDc4LCAxODAsIDMxLCAyNDMsIDg3LCAxODAsIDMxLCAyMTgsIAorICAgIDExMywgMTgwLCAzMSwgMjI0LCAxMzEsIDE4MCwgMzEsIDI0MywgMjI5LCAxODAsIDMxLCAyMjMsIDY3LCAxODAsIDMxLCAKKyAgICAyMzMsIDcyLCAxNzcsIDIzMCwgMTU4LCAxODAsIDMxLCAyMjMsIDYzLCAxODAsIDMxLCAyNDIsIDE2OSwgMjE2LCA0MywgCisgICAgMjMxLCA3NywgMTgwLCAzMSwgMjQ1LCAxNDUsIDE4MCwgMzEsIDIxOCwgMTI1LCAxODAsIDMxLCAyNDIsIDEyOSwgMTgwLCAKKyAgICAzMSwgMjQ1LCAxMzcsIDE4MCwgMzEsIDIyNSwgMjM2LCAxODAsIDMxLCAyMjIsIDIyNiwgMTgwLCAzMSwgMjQ0LCA2MCwgCisgICAgMTgwLCAzMSwgMjE0LCA4LCAxNzcsIDIxMiwgNDQsIDE4MCwgMzEsIDI0OSwgMTk0LCAxODAsIDMxLCAyMzEsIDkwLCAxODAsIAorICAgIDMxLCAyNDUsIDYyLCAxODAsIDMxLCAyMTQsIDE3MiwgMTgwLCAzMSwgMjQ3LCAyMTMsIDE4MCwgMzEsIDI1MCwgMSwgMjMwLCAKKyAgICAxMTEsIDE4MCwgMzEsIDI0MiwgMTA3LCAxODAsIDMxLCAyNDMsIDg4LCAyMzYsIDAsIDE4MCwgMzEsIDIzMSwgMTQyLCAxODAsIAorICAgIDMxLCAyNTUsIDExLCAxODAsIDMxLCAyNDUsIDE1OCwgMTgwLCAzMSwgMjQ2LCAxMTAsIDE4MCwgMzEsIDIxMiwgNDIsIDE4MCwgCisgICAgMzEsIDIxOSwgMTUxLCAxODAsIDMxLCAyMzUsIDIyMywgMTgwLCAzMSwgMjQ4LCA0MywgMTgwLCAzMSwgMjQ4LCAxNjEsIAorICAgIDE4MCwgMzEsIDI0NywgMjA5LCAxODAsIDMxLCAyNDUsIDMwLCAxODAsIDMxLCAyMjAsIDExNiwgMTgwLCAzMSwgMjE4LCAKKyAgICAxMjksIDE4MCwgMzEsIDI0MiwgMywgMTgwLCAzMSwgMjQ5LCAyMTMsIDE4MCwgMzEsIDI0OSwgMjUyLCAxODAsIDMxLCAyNDQsIAorICAgIDE3OCwgMTgwLCAzMSwgMjU0LCAyMTMsIDE4MCwgMzEsIDI0OSwgMjEyLCAxODAsIDMxLCAyMjYsIDE5OCwgMjE2LCAxOTcsIAorICAgIDIxMywgMjQyLCAxODAsIDMxLCAyNDcsIDIzMywgMTgwLCAzMSwgMjMzLCAxMjUsIDE4MCwgMzEsIDI0NCwgMTQsIDI0OSwgCisgICAgMTUwLCAyMjIsIDIwMywgMjE0LCAxNzQsIDIxLCAxMTAsIDI0OSwgMTUwLCAyMjIsIDIwMywgMjE0LCAxNzQsIDIxLCAxMDUsIAorICAgIDI0OSwgMTUwLCAyMjIsIDIwMywgMjE0LCAxNzQsIDIxLCAxNTgsIDI0OSwgMTUwLCAyMjIsIDIwMywgMjE0LCAxNzQsIDIxLCAKKyAgICAxNjEsIDI0OSwgMTUwLCAyMjIsIDIwMywgMjE0LCAxNzQsIDIxLCAxODksIDI0OSwgMTUwLCAyMjIsIDIwMywgMjE0LCAxNzQsIAorICAgIDIxLCAxOTQsIDI0OSwgMTUwLCAyMjIsIDIwMywgMjE0LCAxNzQsIDIxLCAxOTgsIDI0OSwgMTUwLCAyMjIsIDIwMywgMjE0LCAKKyAgICAxNzQsIDIxLCAxOTUsIDI0OSwgMTUwLCAyMjIsIDIwMywgMjE0LCAxNzQsIDIxLCAyMDAsIDI0OSwgMTUwLCAyMjIsIDIwMywgCisgICAgMjE2LCAyNDQsIDIxLCAxMTAsIDI0OSwgMTUwLCAyMjIsIDIwMywgMjE2LCAyNDQsIDIxLCAxMDUsIDI0OSwgMTUwLCAyMjIsIAorICAgIDIwMywgMjE2LCAyNDQsIDIxLCAxNTgsIDI0OSwgMTUwLCAyMjIsIDIwMywgMjE2LCAyNDQsIDIxLCAxNjEsIDI0OSwgMTUwLCAKKyAgICAyMjIsIDIwMywgMjE2LCAyNDQsIDIxLCAxODksIDI0OSwgMTUwLCAyMjIsIDIwMywgMjE2LCAyNDQsIDIxLCAxOTQsIDI0OSwgCisgICAgMTUwLCAyMjIsIDIwMywgMjE2LCAyNDQsIDIxLCAxOTgsIDI0OSwgMTUwLCAyMjIsIDIwMywgMjE2LCAyNDQsIDIxLCAxOTUsIAorICAgIDI0OSwgMTUwLCAyMjIsIDIwMywgMjE2LCAyNDQsIDIxLCAyMDAsIDExLCAyMywgNiwgNjEsIDExLCAyMywgNiwgMjUzLCAKKyAgICAxNTksIDExLCAyMywgNiwgMjUxLCA2NywgMTEsIDIzLCA2LCAyNDksIDYxLCAxMSwgMjMsIDYsIDc1LCAxMSwgMjMsIDYsIAorICAgIDI0NSwgNywgMTEsIDIzLCA2LCAyNDMsIDIwMywgMTEsIDIzLCA2LCAyNDIsIDYxLCAxMSwgMjMsIDYsIDczLCAxMSwgMjMsIAorICAgIDYsIDIzNSwgMTQ1LCAxMSwgMjMsIDYsIDIzNSwgMjQsIDExLCAyMywgNiwgMTU2LCAxMSwgMjMsIDYsIDE5MywgMTEsIDIzLCAKKyAgICA2LCAyMzAsIDI2LCAxMSwgMjMsIDYsIDc2LCAxMSwgMjMsIDYsIDIyNiwgMTA2LCAxMSwgMjMsIDYsIDIyNCwgOTcsIDExLCAKKyAgICAyMywgNiwgMTUzLCAxMSwgMjMsIDYsIDIyMiwgOTIsIDExLCAyMywgNiwgMjE3LCAxNTMsIDExLCAyMywgNiwgNzAsIDExLCAKKyAgICAyMywgNiwgMjE0LCAxMDUsIDExLCAyMywgNiwgMjEyLCA5OCwgMTEsIDIzLCA2LCAyMTEsIDE3OCwgMTEsIDIzLCA2LCAyMTEsIAorICAgIDExNywgMTEsIDIzLCA2LCAyMTAsIDE1OSwgMTEsIDIzLCA0LCA2MSwgMTEsIDIzLCA0LCAyNTMsIDE1OSwgMTEsIDIzLCA0LCAKKyAgICAyNTEsIDY3LCAxMSwgMjMsIDQsIDI0OSwgNjEsIDExLCAyMywgNCwgNzUsIDExLCAyMywgNCwgMjQ1LCA3LCAxMSwgMjMsIDQsIAorICAgIDI0MywgMjAzLCAxMSwgMjMsIDQsIDI0MiwgNjEsIDExLCAyMywgNCwgNzMsIDExLCAyMywgNCwgMjM1LCAxNDUsIDExLCAyMywgCisgICAgNCwgMjM1LCAyNCwgMTEsIDIzLCA0LCAxNTYsIDExLCAyMywgNCwgMTkzLCAxMSwgMjMsIDQsIDIzMCwgMjYsIDExLCAyMywgCisgICAgNCwgNzYsIDExLCAyMywgNCwgMjI2LCAxMDYsIDExLCAyMywgNCwgMjI0LCA5NywgMTEsIDIzLCA0LCAxNTMsIDExLCAyMywgCisgICAgNCwgMjIyLCA5MiwgMTEsIDIzLCA0LCAyMTcsIDE1MywgMTEsIDIzLCA0LCA3MCwgMTEsIDIzLCA0LCAyMTQsIDEwNSwgMTEsIAorICAgIDIzLCA0LCAyMTIsIDk4LCAxMSwgMjMsIDQsIDIxMSwgMTc4LCAxMSwgMjMsIDQsIDIxMSwgMTE3LCAxMSwgMjMsIDQsIDIxMCwgCisgICAgMTU5LCAxMSwgMzIsIDYsIDYxLCAxMSwgMzIsIDYsIDI1MywgMTU5LCAxMSwgMzIsIDYsIDI1MSwgNjcsIDExLCAzMiwgNiwgCisgICAgMjQ5LCA2MSwgMTEsIDMyLCA2LCA3NSwgMTEsIDMyLCA2LCAyNDUsIDcsIDExLCAzMiwgNiwgMjQzLCAyMDMsIDExLCAzMiwgCisgICAgNiwgMjQyLCA2MSwgMTEsIDMyLCA2LCA3MywgMTEsIDMyLCA2LCAyMzUsIDE0NSwgMTEsIDMyLCA2LCAyMzUsIDI0LCAxMSwgCisgICAgMzIsIDYsIDE1NiwgMTEsIDMyLCA2LCAxOTMsIDExLCAzMiwgNiwgMjMwLCAyNiwgMTEsIDMyLCA2LCA3NiwgMTEsIDMyLCA2LCAKKyAgICAyMjYsIDEwNiwgMTEsIDMyLCA2LCAyMjQsIDk3LCAxMSwgMzIsIDYsIDE1MywgMTEsIDMyLCA2LCAyMjIsIDkyLCAxMSwgMzIsIAorICAgIDYsIDIxNywgMTUzLCAxMSwgMzIsIDYsIDcwLCAxMSwgMzIsIDYsIDIxNCwgMTA1LCAxMSwgMzIsIDYsIDIxMiwgOTgsIDExLCAKKyAgICAzMiwgNiwgMjExLCAxNzgsIDExLCAzMiwgNiwgMjExLCAxMTcsIDExLCAzMiwgNiwgMjEwLCAxNTksIDExLCAzMiwgNCwgNjEsIAorICAgIDExLCAzMiwgNCwgMjUzLCAxNTksIDExLCAzMiwgNCwgMjUxLCA2NywgMTEsIDMyLCA0LCAyNDksIDYxLCAxMSwgMzIsIDQsIAorICAgIDc1LCAxMSwgMzIsIDQsIDI0NSwgNywgMTEsIDMyLCA0LCAyNDMsIDIwMywgMTEsIDMyLCA0LCA3MywgMTEsIDMyLCA0LCAKKyAgICAyMzUsIDE0NSwgMTEsIDMyLCA0LCAyMzUsIDI0LCAxMSwgMzIsIDQsIDE1NiwgMTEsIDMyLCA0LCAxOTMsIDExLCAzMiwgNCwgCisgICAgMjMwLCAyNiwgMTEsIDMyLCA0LCA3NiwgMTEsIDMyLCA0LCAyMjYsIDEwNiwgMTEsIDMyLCA0LCAyMjQsIDk3LCAxMSwgMzIsIAorICAgIDQsIDE1MywgMTEsIDMyLCA0LCAyMjIsIDkyLCAxMSwgMzIsIDQsIDIxNywgMTUzLCAxMSwgMzIsIDQsIDcwLCAxMSwgMzIsIAorICAgIDQsIDIxNCwgMTA1LCAxMSwgMzIsIDQsIDIxMiwgOTgsIDExLCAzMiwgNCwgMjExLCAxNzgsIDExLCAzMiwgNCwgMjExLCAKKyAgICAxMTcsIDExLCAzMiwgNCwgMjEwLCAxNTksIDExLCAyMywgMzIsIDYsIDYxLCAxMSwgMjMsIDMyLCA2LCAyNTMsIDE1OSwgMTEsIAorICAgIDIzLCAzMiwgNiwgMjUxLCA2NywgMTEsIDIzLCAzMiwgNiwgMjQ5LCA2MSwgMTEsIDIzLCAzMiwgNiwgNzUsIDExLCAyMywgCisgICAgMzIsIDYsIDI0NSwgNywgMTEsIDIzLCAzMiwgNiwgMjQzLCAyMDMsIDExLCAyMywgMzIsIDYsIDI0MiwgNjEsIDExLCAyMywgCisgICAgMzIsIDYsIDczLCAxMSwgMjMsIDMyLCA2LCAyMzUsIDE0NSwgMTEsIDIzLCAzMiwgNiwgMjM1LCAyNCwgMTEsIDIzLCAzMiwgCisgICAgNiwgMTU2LCAxMSwgMjMsIDMyLCA2LCAxOTMsIDExLCAyMywgMzIsIDYsIDIzMCwgMjYsIDExLCAyMywgMzIsIDYsIDc2LCAKKyAgICAxMSwgMjMsIDMyLCA2LCAyMjYsIDEwNiwgMTEsIDIzLCAzMiwgNiwgMjI0LCA5NywgMTEsIDIzLCAzMiwgNiwgMTUzLCAxMSwgCisgICAgMjMsIDMyLCA2LCAyMjIsIDkyLCAxMSwgMjMsIDMyLCA2LCAyMTcsIDE1MywgMTEsIDIzLCAzMiwgNiwgNzAsIDExLCAyMywgCisgICAgMzIsIDYsIDIxNCwgMTA1LCAxMSwgMjMsIDMyLCA2LCAyMTIsIDk4LCAxMSwgMjMsIDMyLCA2LCAyMTEsIDE3OCwgMTEsIDIzLCAKKyAgICAzMiwgNiwgMjExLCAxMTcsIDExLCAyMywgMzIsIDYsIDIxMCwgMTU5LCAxMSwgMjMsIDMyLCA0LCA2MSwgMTEsIDIzLCAzMiwgCisgICAgNCwgMjUzLCAxNTksIDExLCAyMywgMzIsIDQsIDI1MSwgNjcsIDExLCAyMywgMzIsIDQsIDI0OSwgNjEsIDExLCAyMywgMzIsIAorICAgIDQsIDc1LCAxMSwgMjMsIDMyLCA0LCAyNDUsIDcsIDExLCAyMywgMzIsIDQsIDI0MywgMjAzLCAxMSwgMjMsIDMyLCA0LCAKKyAgICAyNDIsIDYxLCAxMSwgMjMsIDMyLCA0LCA3MywgMTEsIDIzLCAzMiwgNCwgMjM1LCAxNDUsIDExLCAyMywgMzIsIDQsIDIzNSwgCisgICAgMjQsIDExLCAyMywgMzIsIDQsIDE1NiwgMTEsIDIzLCAzMiwgNCwgMTkzLCAxMSwgMjMsIDMyLCA0LCAyMzAsIDI2LCAxMSwgCisgICAgMjMsIDMyLCA0LCA3NiwgMTEsIDIzLCAzMiwgNCwgMjI2LCAxMDYsIDExLCAyMywgMzIsIDQsIDIyNCwgOTcsIDExLCAyMywgCisgICAgMzIsIDQsIDE1MywgMTEsIDIzLCAzMiwgNCwgMjIyLCA5MiwgMTEsIDIzLCAzMiwgNCwgMjE3LCAxNTMsIDExLCAyMywgMzIsIAorICAgIDQsIDcwLCAxMSwgMjMsIDMyLCA0LCAyMTQsIDEwNSwgMTEsIDIzLCAzMiwgNCwgMjEyLCA5OCwgMTEsIDIzLCAzMiwgNCwgCisgICAgMjExLCAxNzgsIDExLCAyMywgMzIsIDQsIDIxMSwgMTE3LCAxMSwgMjMsIDMyLCA0LCAyMTAsIDE1OSwgMTEsIDExOSwgNiwgCisgICAgNjEsIDExLCAxMTksIDYsIDI1MSwgNjcsIDExLCAxMTksIDYsIDI0OSwgNjEsIDExLCAxMTksIDYsIDI0MywgMjAzLCAxMSwgCisgICAgMTE5LCA2LCAyMzUsIDE0NSwgMTEsIDExOSwgNiwgMjM1LCAyNCwgMTEsIDExOSwgNiwgMjMwLCAyNiwgMTEsIDExOSwgNiwgCisgICAgNzYsIDExLCAxMTksIDYsIDIyNiwgMTA2LCAxMSwgMTE5LCA2LCAyMjQsIDk3LCAxMSwgMTE5LCA2LCAyMjIsIDkyLCAxMSwgCisgICAgMTE5LCA2LCAyMTcsIDE1MywgMTEsIDExOSwgNiwgNzAsIDExLCAxMTksIDYsIDIxNCwgMTA1LCAxMSwgMTE5LCA2LCAyMTIsIAorICAgIDk4LCAxMSwgMTE5LCA2LCAyMTEsIDE3OCwgMTEsIDExOSwgNiwgMjExLCAxMTcsIDExLCAxMTksIDYsIDIxMCwgMTU5LCAxMSwgCisgICAgMTE5LCA0LCA2MSwgMTEsIDExOSwgNCwgMjUzLCAxNTksIDExLCAxMTksIDQsIDI1MSwgNjcsIDExLCAxMTksIDQsIDI0OSwgCisgICAgNjEsIDExLCAxMTksIDQsIDI0NSwgNywgMTEsIDExOSwgNCwgMjQyLCA2MSwgMTEsIDExOSwgNCwgNzMsIDExLCAxMTksIDQsIAorICAgIDIzNSwgMTQ1LCAxMSwgMTE5LCA0LCAyMzUsIDI0LCAxMSwgMTE5LCA0LCAxNTYsIDExLCAxMTksIDQsIDE5MywgMTEsIDExOSwgCisgICAgNCwgMjMwLCAyNiwgMTEsIDExOSwgNCwgMjI2LCAxMDYsIDExLCAxMTksIDQsIDIyNCwgOTcsIDExLCAxMTksIDQsIDE1MywgCisgICAgMTEsIDExOSwgNCwgMjIyLCA5MiwgMTEsIDExOSwgNCwgMjE3LCAxNTMsIDExLCAxMTksIDQsIDcwLCAxMSwgMTE5LCA0LCAKKyAgICAyMTQsIDEwNSwgMTEsIDExOSwgNCwgMjEyLCA5OCwgMTEsIDExOSwgNCwgMjExLCAxNzgsIDExLCAxMTksIDQsIDIxMSwgCisgICAgMTE3LCAxMSwgMTE5LCA0LCAyMTAsIDE1OSwgMTEsIDIzLCAxMTksIDYsIDYxLCAxMSwgMjMsIDExOSwgNiwgMjUzLCAxNTksIAorICAgIDExLCAyMywgMTE5LCA2LCAyNTEsIDY3LCAxMSwgMjMsIDExOSwgNiwgMjQ5LCA2MSwgMTEsIDIzLCAxMTksIDYsIDc1LCAxMSwgCisgICAgMjMsIDExOSwgNiwgMjQ1LCA3LCAxMSwgMjMsIDExOSwgNiwgMjQzLCAyMDMsIDExLCAyMywgMTE5LCA2LCAyNDIsIDYxLCAKKyAgICAxMSwgMjMsIDExOSwgNiwgNzMsIDExLCAyMywgMTE5LCA2LCAyMzUsIDE0NSwgMTEsIDIzLCAxMTksIDYsIDIzNSwgMjQsIAorICAgIDExLCAyMywgMTE5LCA2LCAxNTYsIDExLCAyMywgMTE5LCA2LCAxOTMsIDExLCAyMywgMTE5LCA2LCAyMzAsIDI2LCAxMSwgCisgICAgMjMsIDExOSwgNiwgNzYsIDExLCAyMywgMTE5LCA2LCAyMjYsIDEwNiwgMTEsIDIzLCAxMTksIDYsIDIyNCwgOTcsIDExLCAKKyAgICAyMywgMTE5LCA2LCAxNTMsIDExLCAyMywgMTE5LCA2LCAyMjIsIDkyLCAxMSwgMjMsIDExOSwgNiwgMjE3LCAxNTMsIDExLCAKKyAgICAyMywgMTE5LCA2LCA3MCwgMTEsIDIzLCAxMTksIDYsIDIxNCwgMTA1LCAxMSwgMjMsIDExOSwgNiwgMjEyLCA5OCwgMTEsIAorICAgIDIzLCAxMTksIDYsIDIxMSwgMTc4LCAxMSwgMjMsIDExOSwgNiwgMjExLCAxMTcsIDExLCAyMywgMTE5LCA2LCAyMTAsIDE1OSwgCisgICAgMTEsIDIzLCAxMTksIDQsIDYxLCAxMSwgMjMsIDExOSwgNCwgMjUzLCAxNTksIDExLCAyMywgMTE5LCA0LCAyNTEsIDY3LCAKKyAgICAxMSwgMjMsIDExOSwgNCwgMjQ5LCA2MSwgMTEsIDIzLCAxMTksIDQsIDc1LCAxMSwgMjMsIDExOSwgNCwgMjQ1LCA3LCAxMSwgCisgICAgMjMsIDExOSwgNCwgMjQzLCAyMDMsIDExLCAyMywgMTE5LCA0LCAyNDIsIDYxLCAxMSwgMjMsIDExOSwgNCwgNzMsIDExLCAKKyAgICAyMywgMTE5LCA0LCAyMzUsIDE0NSwgMTEsIDIzLCAxMTksIDQsIDIzNSwgMjQsIDExLCAyMywgMTE5LCA0LCAxNTYsIDExLCAKKyAgICAyMywgMTE5LCA0LCAxOTMsIDExLCAyMywgMTE5LCA0LCAyMzAsIDI2LCAxMSwgMjMsIDExOSwgNCwgNzYsIDExLCAyMywgCisgICAgMTE5LCA0LCAyMjYsIDEwNiwgMTEsIDIzLCAxMTksIDQsIDIyNCwgOTcsIDExLCAyMywgMTE5LCA0LCAxNTMsIDExLCAyMywgCisgICAgMTE5LCA0LCAyMjIsIDkyLCAxMSwgMjMsIDExOSwgNCwgMjE3LCAxNTMsIDExLCAyMywgMTE5LCA0LCA3MCwgMTEsIDIzLCAKKyAgICAxMTksIDQsIDIxNCwgMTA1LCAxMSwgMjMsIDExOSwgNCwgMjEyLCA5OCwgMTEsIDIzLCAxMTksIDQsIDIxMSwgMTc4LCAxMSwgCisgICAgMjMsIDExOSwgNCwgMjExLCAxMTcsIDExLCAyMywgMTE5LCA0LCAyMTAsIDE1OSwgMTEsIDEzMywgNiwgNjEsIDExLCAxMzMsIAorICAgIDYsIDI1MywgMTU5LCAxMSwgMTMzLCA2LCAyNDksIDYxLCAxMSwgMTMzLCA2LCA3NSwgMTEsIDEzMywgNiwgMjQ1LCA3LCAxMSwgCisgICAgMTMzLCA2LCAyNDMsIDIwMywgMTEsIDEzMywgNiwgMjM1LCAxNDUsIDExLCAxMzMsIDYsIDIzNSwgMjQsIDExLCAxMzMsIDYsIAorICAgIDE1NiwgMTEsIDEzMywgNiwgMTkzLCAxMSwgMTMzLCA2LCAyMzAsIDI2LCAxMSwgMTMzLCA2LCA3NiwgMTEsIDEzMywgNiwgCisgICAgMjI2LCAxMDYsIDExLCAxMzMsIDYsIDIyNCwgOTcsIDExLCAxMzMsIDYsIDIyMiwgOTIsIDExLCAxMzMsIDYsIDIxNywgMTUzLCAKKyAgICAxMSwgMTMzLCA2LCA3MCwgMTEsIDEzMywgNiwgMjE0LCAxMDUsIDExLCAxMzMsIDYsIDIxMiwgOTgsIDExLCAxMzMsIDYsIAorICAgIDIxMSwgMTc4LCAxMSwgMTMzLCA2LCAyMTEsIDExNywgMTEsIDEzMywgNCwgNjEsIDExLCAxMzMsIDQsIDI1MywgMTU5LCAxMSwgCisgICAgMTMzLCA0LCAyNTEsIDY3LCAxMSwgMTMzLCA0LCAyNDksIDYxLCAxMSwgMTMzLCA0LCA3NSwgMTEsIDEzMywgNCwgMjQ1LCA3LCAKKyAgICAxMSwgMTMzLCA0LCAyNDMsIDIwMywgMTEsIDEzMywgNCwgMjQyLCA2MSwgMTEsIDEzMywgNCwgNzMsIDExLCAxMzMsIDQsIAorICAgIDIzNSwgMTQ1LCAxMSwgMTMzLCA0LCAyMzUsIDI0LCAxMSwgMTMzLCA0LCAxNTYsIDExLCAxMzMsIDQsIDE5MywgMTEsIDEzMywgCisgICAgNCwgMjMwLCAyNiwgMTEsIDEzMywgNCwgNzYsIDExLCAxMzMsIDQsIDIyNiwgMTA2LCAxMSwgMTMzLCA0LCAyMjQsIDk3LCAKKyAgICAxMSwgMTMzLCA0LCAxNTMsIDExLCAxMzMsIDQsIDIyMiwgOTIsIDExLCAxMzMsIDQsIDIxNywgMTUzLCAxMSwgMTMzLCA0LCAKKyAgICA3MCwgMTEsIDEzMywgNCwgMjE0LCAxMDUsIDExLCAxMzMsIDQsIDIxMiwgOTgsIDExLCAxMzMsIDQsIDIxMSwgMTc4LCAxMSwgCisgICAgMTMzLCA0LCAyMTEsIDExNywgMTEsIDEzMywgNCwgMjEwLCAxNTksIDExLCAxMzksIDYsIDYxLCAxMSwgMTM5LCA2LCAyNTMsIAorICAgIDE1OSwgMTEsIDEzOSwgNiwgMjQ5LCA2MSwgMTEsIDEzOSwgNiwgNzUsIDExLCAxMzksIDYsIDI0NSwgNywgMTEsIDEzOSwgNiwgCisgICAgMjQzLCAyMDMsIDExLCAxMzksIDYsIDczLCAxMSwgMTM5LCA2LCAyMzUsIDE0NSwgMTEsIDEzOSwgNiwgMjM1LCAyNCwgMTEsIAorICAgIDEzOSwgNiwgMTU2LCAxMSwgMTM5LCA2LCAxOTMsIDExLCAxMzksIDYsIDc2LCAxMSwgMTM5LCA2LCAyMjIsIDkyLCAxMSwgCisgICAgMTM5LCA2LCAyMTcsIDE1MywgMTEsIDEzOSwgNiwgNzAsIDExLCAxMzksIDYsIDIxNCwgMTA1LCAxMSwgMTM5LCA2LCAyMTIsIAorICAgIDk4LCAxMSwgMTM5LCA2LCAyMTEsIDE3OCwgMTEsIDEzOSwgNiwgMjExLCAxMTcsIDExLCAxMzksIDQsIDYxLCAxMSwgMTM5LCAKKyAgICA0LCAyNTMsIDE1OSwgMTEsIDEzOSwgNCwgMjUxLCA2NywgMTEsIDEzOSwgNCwgMjQ5LCA2MSwgMTEsIDEzOSwgNCwgNzUsIAorICAgIDExLCAxMzksIDQsIDI0NSwgNywgMTEsIDEzOSwgNCwgMjQzLCAyMDMsIDExLCAxMzksIDQsIDI0MiwgNjEsIDExLCAxMzksIAorICAgIDQsIDczLCAxMSwgMTM5LCA0LCAyMzUsIDE0NSwgMTEsIDEzOSwgNCwgMjM1LCAyNCwgMTEsIDEzOSwgNCwgMTU2LCAxMSwgCisgICAgMTM5LCA0LCAxOTMsIDExLCAxMzksIDQsIDIzMCwgMjYsIDExLCAxMzksIDQsIDc2LCAxMSwgMTM5LCA0LCAyMjYsIDEwNiwgCisgICAgMTEsIDEzOSwgNCwgMjI0LCA5NywgMTEsIDEzOSwgNCwgMTUzLCAxMSwgMTM5LCA0LCAyMjIsIDkyLCAxMSwgMTM5LCA0LCAKKyAgICAyMTcsIDE1MywgMTEsIDEzOSwgNCwgNzAsIDExLCAxMzksIDQsIDIxNCwgMTA1LCAxMSwgMTM5LCA0LCAyMTIsIDk4LCAxMSwgCisgICAgMTM5LCA0LCAyMTEsIDE3OCwgMTEsIDEzOSwgNCwgMjExLCAxMTcsIDExLCAxMzksIDQsIDIxMCwgMTU5LCAxMSwgMjMsIAorICAgIDEzMywgNiwgNjEsIDExLCAyMywgMTMzLCA2LCAyNTMsIDE1OSwgMTEsIDIzLCAxMzMsIDYsIDI1MSwgNjcsIDExLCAyMywgCisgICAgMTMzLCA2LCAyNDksIDYxLCAxMSwgMjMsIDEzMywgNiwgNzUsIDExLCAyMywgMTMzLCA2LCAyNDUsIDcsIDExLCAyMywgMTMzLCAKKyAgICA2LCAyNDMsIDIwMywgMTEsIDIzLCAxMzMsIDYsIDI0MiwgNjEsIDExLCAyMywgMTMzLCA2LCA3MywgMTEsIDIzLCAxMzMsIDYsIAorICAgIDIzNSwgMTQ1LCAxMSwgMjMsIDEzMywgNiwgMjM1LCAyNCwgMTEsIDIzLCAxMzMsIDYsIDE1NiwgMTEsIDIzLCAxMzMsIDYsIAorICAgIDE5MywgMTEsIDIzLCAxMzMsIDYsIDIzMCwgMjYsIDExLCAyMywgMTMzLCA2LCA3NiwgMTEsIDIzLCAxMzMsIDYsIDIyNiwgCisgICAgMTA2LCAxMSwgMjMsIDEzMywgNiwgMjI0LCA5NywgMTEsIDIzLCAxMzMsIDYsIDE1MywgMTEsIDIzLCAxMzMsIDYsIDIyMiwgCisgICAgOTIsIDExLCAyMywgMTMzLCA2LCAyMTcsIDE1MywgMTEsIDIzLCAxMzMsIDYsIDcwLCAxMSwgMjMsIDEzMywgNiwgMjE0LCAKKyAgICAxMDUsIDExLCAyMywgMTMzLCA2LCAyMTIsIDk4LCAxMSwgMjMsIDEzMywgNiwgMjExLCAxNzgsIDExLCAyMywgMTMzLCA2LCAKKyAgICAyMTEsIDExNywgMTEsIDIzLCAxMzMsIDYsIDIxMCwgMTU5LCAxMSwgMjMsIDEzMywgNCwgNjEsIDExLCAyMywgMTMzLCA0LCAKKyAgICAyNTMsIDE1OSwgMTEsIDIzLCAxMzMsIDQsIDI1MSwgNjcsIDExLCAyMywgMTMzLCA0LCAyNDksIDYxLCAxMSwgMjMsIDEzMywgCisgICAgNCwgNzUsIDExLCAyMywgMTMzLCA0LCAyNDUsIDcsIDExLCAyMywgMTMzLCA0LCAyNDMsIDIwMywgMTEsIDIzLCAxMzMsIDQsIAorICAgIDI0MiwgNjEsIDExLCAyMywgMTMzLCA0LCA3MywgMTEsIDIzLCAxMzMsIDQsIDIzNSwgMTQ1LCAxMSwgMjMsIDEzMywgNCwgCisgICAgMjM1LCAyNCwgMTEsIDIzLCAxMzMsIDQsIDE1NiwgMTEsIDIzLCAxMzMsIDQsIDE5MywgMTEsIDIzLCAxMzMsIDQsIDIzMCwgCisgICAgMjYsIDExLCAyMywgMTMzLCA0LCA3NiwgMTEsIDIzLCAxMzMsIDQsIDIyNiwgMTA2LCAxMSwgMjMsIDEzMywgNCwgMjI0LCAKKyAgICA5NywgMTEsIDIzLCAxMzMsIDQsIDE1MywgMTEsIDIzLCAxMzMsIDQsIDIyMiwgOTIsIDExLCAyMywgMTMzLCA0LCAyMTcsIAorICAgIDE1MywgMTEsIDIzLCAxMzMsIDQsIDcwLCAxMSwgMjMsIDEzMywgNCwgMjE0LCAxMDUsIDExLCAyMywgMTMzLCA0LCAyMTIsIAorICAgIDk4LCAxMSwgMjMsIDEzMywgNCwgMjExLCAxNzgsIDExLCAyMywgMTMzLCA0LCAyMTEsIDExNywgMTEsIDIzLCAxMzMsIDQsIAorICAgIDIxMCwgMTU5LCAxMSwgMzUsIDYsIDYxLCAxMSwgMzUsIDYsIDI1MywgMTU5LCAxMSwgMzUsIDYsIDI1MSwgNjcsIDExLCAzNSwgCisgICAgNiwgMjQ5LCA2MSwgMTEsIDM1LCA2LCA3NSwgMTEsIDM1LCA2LCAyNDUsIDcsIDExLCAzNSwgNiwgMjQzLCAyMDMsIDExLCAKKyAgICAzNSwgNiwgMjQyLCA2MSwgMTEsIDM1LCA2LCA3MywgMTEsIDM1LCA2LCAyMzUsIDE0NSwgMTEsIDM1LCA2LCAyMzUsIDI0LCAKKyAgICAxMSwgMzUsIDYsIDE1NiwgMTEsIDM1LCA2LCAxOTMsIDExLCAzNSwgNiwgMjMwLCAyNiwgMTEsIDM1LCA2LCA3NiwgMTEsIAorICAgIDM1LCA2LCAyMjYsIDEwNiwgMTEsIDM1LCA2LCAyMjQsIDk3LCAxMSwgMzUsIDYsIDE1MywgMTEsIDM1LCA2LCAyMjIsIDkyLCAKKyAgICAxMSwgMzUsIDYsIDIxNywgMTUzLCAxMSwgMzUsIDYsIDcwLCAxMSwgMzUsIDYsIDIxNCwgMTA1LCAxMSwgMzUsIDYsIDIxMiwgCisgICAgOTgsIDExLCAzNSwgNiwgMjExLCAxNzgsIDExLCAzNSwgNiwgMjExLCAxMTcsIDExLCAzNSwgNiwgMjEwLCAxNTksIDExLCAKKyAgICAzNSwgNCwgNjEsIDExLCAzNSwgNCwgMjUzLCAxNTksIDExLCAzNSwgNCwgMjUxLCA2NywgMTEsIDM1LCA0LCAyNDksIDYxLCAKKyAgICAxMSwgMzUsIDQsIDc1LCAxMSwgMzUsIDQsIDI0NSwgNywgMTEsIDM1LCA0LCAyNDMsIDIwMywgMTEsIDM1LCA0LCAyNDIsIAorICAgIDYxLCAxMSwgMzUsIDQsIDczLCAxMSwgMzUsIDQsIDIzNSwgMTQ1LCAxMSwgMzUsIDQsIDIzNSwgMjQsIDExLCAzNSwgNCwgCisgICAgMTU2LCAxMSwgMzUsIDQsIDE5MywgMTEsIDM1LCA0LCAyMzAsIDI2LCAxMSwgMzUsIDQsIDc2LCAxMSwgMzUsIDQsIDIyNiwgCisgICAgMTA2LCAxMSwgMzUsIDQsIDIyNCwgOTcsIDExLCAzNSwgNCwgMTUzLCAxMSwgMzUsIDQsIDIyMiwgOTIsIDExLCAzNSwgNCwgCisgICAgMjE3LCAxNTMsIDExLCAzNSwgNCwgNzAsIDExLCAzNSwgNCwgMjE0LCAxMDUsIDExLCAzNSwgNCwgMjEyLCA5OCwgMTEsIDM1LCAKKyAgICA0LCAyMTEsIDE3OCwgMTEsIDM1LCA0LCAyMTEsIDExNywgMTEsIDM1LCA0LCAyMTAsIDE1OSwgMTEsIDM1LCAyMywgNiwgNjEsIAorICAgIDExLCAzNSwgMjMsIDYsIDI1MywgMTU5LCAxMSwgMzUsIDIzLCA2LCAyNTEsIDY3LCAxMSwgMzUsIDIzLCA2LCAyNDksIDYxLCAKKyAgICAxMSwgMzUsIDIzLCA2LCA3NSwgMTEsIDM1LCAyMywgNiwgMjQ1LCA3LCAxMSwgMzUsIDIzLCA2LCAyNDMsIDIwMywgMTEsIAorICAgIDM1LCAyMywgNiwgMjQyLCA2MSwgMTEsIDM1LCAyMywgNiwgNzMsIDExLCAzNSwgMjMsIDYsIDIzNSwgMTQ1LCAxMSwgMzUsIAorICAgIDIzLCA2LCAyMzUsIDI0LCAxMSwgMzUsIDIzLCA2LCAxNTYsIDExLCAzNSwgMjMsIDYsIDE5MywgMTEsIDM1LCAyMywgNiwgCisgICAgMjMwLCAyNiwgMTEsIDM1LCAyMywgNiwgNzYsIDExLCAzNSwgMjMsIDYsIDIyNiwgMTA2LCAxMSwgMzUsIDIzLCA2LCAyMjQsIAorICAgIDk3LCAxMSwgMzUsIDIzLCA2LCAxNTMsIDExLCAzNSwgMjMsIDYsIDIyMiwgOTIsIDExLCAzNSwgMjMsIDYsIDIxNywgMTUzLCAKKyAgICAxMSwgMzUsIDIzLCA2LCA3MCwgMTEsIDM1LCAyMywgNiwgMjE0LCAxMDUsIDExLCAzNSwgMjMsIDYsIDIxMiwgOTgsIDExLCAKKyAgICAzNSwgMjMsIDYsIDIxMSwgMTc4LCAxMSwgMzUsIDIzLCA2LCAyMTEsIDExNywgMTEsIDM1LCAyMywgNiwgMjEwLCAxNTksIAorICAgIDExLCAzNSwgMjMsIDQsIDYxLCAxMSwgMzUsIDIzLCA0LCAyNTMsIDE1OSwgMTEsIDM1LCAyMywgNCwgMjUxLCA2NywgMTEsIAorICAgIDM1LCAyMywgNCwgMjQ5LCA2MSwgMTEsIDM1LCAyMywgNCwgNzUsIDExLCAzNSwgMjMsIDQsIDI0NSwgNywgMTEsIDM1LCAyMywgCisgICAgNCwgMjQzLCAyMDMsIDExLCAzNSwgMjMsIDQsIDI0MiwgNjEsIDExLCAzNSwgMjMsIDQsIDczLCAxMSwgMzUsIDIzLCA0LCAKKyAgICAyMzUsIDE0NSwgMTEsIDM1LCAyMywgNCwgMjM1LCAyNCwgMTEsIDM1LCAyMywgNCwgMTU2LCAxMSwgMzUsIDIzLCA0LCAxOTMsIAorICAgIDExLCAzNSwgMjMsIDQsIDIzMCwgMjYsIDExLCAzNSwgMjMsIDQsIDc2LCAxMSwgMzUsIDIzLCA0LCAyMjYsIDEwNiwgMTEsIAorICAgIDM1LCAyMywgNCwgMjI0LCA5NywgMTEsIDM1LCAyMywgNCwgMTUzLCAxMSwgMzUsIDIzLCA0LCAyMjIsIDkyLCAxMSwgMzUsIAorICAgIDIzLCA0LCAyMTcsIDE1MywgMTEsIDM1LCAyMywgNCwgNzAsIDExLCAzNSwgMjMsIDQsIDIxNCwgMTA1LCAxMSwgMzUsIDIzLCAKKyAgICA0LCAyMTIsIDk4LCAxMSwgMzUsIDIzLCA0LCAyMTEsIDE3OCwgMTEsIDM1LCAyMywgNCwgMjExLCAxMTcsIDExLCAzNSwgMjMsIAorICAgIDQsIDIxMCwgMTU5LCAxMSwgMzUsIDMyLCA2LCA2MSwgMTEsIDM1LCAzMiwgNiwgMjUzLCAxNTksIDExLCAzNSwgMzIsIDYsIAorICAgIDI1MSwgNjcsIDExLCAzNSwgMzIsIDYsIDI0OSwgNjEsIDExLCAzNSwgMzIsIDYsIDc1LCAxMSwgMzUsIDMyLCA2LCAyNDUsIAorICAgIDcsIDExLCAzNSwgMzIsIDYsIDI0MywgMjAzLCAxMSwgMzUsIDMyLCA2LCAyNDIsIDYxLCAxMSwgMzUsIDMyLCA2LCA3MywgCisgICAgMTEsIDM1LCAzMiwgNiwgMjM1LCAxNDUsIDExLCAzNSwgMzIsIDYsIDIzNSwgMjQsIDExLCAzNSwgMzIsIDYsIDE1NiwgMTEsIAorICAgIDM1LCAzMiwgNiwgMTkzLCAxMSwgMzUsIDMyLCA2LCAyMzAsIDI2LCAxMSwgMzUsIDMyLCA2LCA3NiwgMTEsIDM1LCAzMiwgNiwgCisgICAgMjI2LCAxMDYsIDExLCAzNSwgMzIsIDYsIDIyNCwgOTcsIDExLCAzNSwgMzIsIDYsIDE1MywgMTEsIDM1LCAzMiwgNiwgMjIyLCAKKyAgICA5MiwgMTEsIDM1LCAzMiwgNiwgMjE3LCAxNTMsIDExLCAzNSwgMzIsIDYsIDcwLCAxMSwgMzUsIDMyLCA2LCAyMTQsIDEwNSwgCisgICAgMTEsIDM1LCAzMiwgNiwgMjEyLCA5OCwgMTEsIDM1LCAzMiwgNiwgMjExLCAxNzgsIDExLCAzNSwgMzIsIDYsIDIxMSwgMTE3LCAKKyAgICAxMSwgMzUsIDMyLCA2LCAyMTAsIDE1OSwgMTEsIDM1LCAzMiwgNCwgNjEsIDExLCAzNSwgMzIsIDQsIDI1MywgMTU5LCAxMSwgCisgICAgMzUsIDMyLCA0LCAyNTEsIDY3LCAxMSwgMzUsIDMyLCA0LCAyNDksIDYxLCAxMSwgMzUsIDMyLCA0LCA3NSwgMTEsIDM1LCAKKyAgICAzMiwgNCwgMjQ1LCA3LCAxMSwgMzUsIDMyLCA0LCAyNDMsIDIwMywgMTEsIDM1LCAzMiwgNCwgMjQyLCA2MSwgMTEsIDM1LCAKKyAgICAzMiwgNCwgNzMsIDExLCAzNSwgMzIsIDQsIDIzNSwgMTQ1LCAxMSwgMzUsIDMyLCA0LCAyMzUsIDI0LCAxMSwgMzUsIDMyLCAKKyAgICA0LCAxNTYsIDExLCAzNSwgMzIsIDQsIDE5MywgMTEsIDM1LCAzMiwgNCwgMjMwLCAyNiwgMTEsIDM1LCAzMiwgNCwgNzYsIAorICAgIDExLCAzNSwgMzIsIDQsIDIyNiwgMTA2LCAxMSwgMzUsIDMyLCA0LCAyMjQsIDk3LCAxMSwgMzUsIDMyLCA0LCAxNTMsIDExLCAKKyAgICAzNSwgMzIsIDQsIDIyMiwgOTIsIDExLCAzNSwgMzIsIDQsIDIxNywgMTUzLCAxMSwgMzUsIDMyLCA0LCA3MCwgMTEsIDM1LCAKKyAgICAzMiwgNCwgMjE0LCAxMDUsIDExLCAzNSwgMzIsIDQsIDIxMiwgOTgsIDExLCAzNSwgMzIsIDQsIDIxMSwgMTc4LCAxMSwgMzUsIAorICAgIDMyLCA0LCAyMTEsIDExNywgMTEsIDM1LCAzMiwgNCwgMjEwLCAxNTksIDExLCAzNSwgMjMsIDMyLCA2LCA2MSwgMTEsIDM1LCAKKyAgICAyMywgMzIsIDYsIDI1MywgMTU5LCAxMSwgMzUsIDIzLCAzMiwgNiwgMjUxLCA2NywgMTEsIDM1LCAyMywgMzIsIDYsIDI0OSwgCisgICAgNjEsIDExLCAzNSwgMjMsIDMyLCA2LCA3NSwgMTEsIDM1LCAyMywgMzIsIDYsIDI0NSwgNywgMTEsIDM1LCAyMywgMzIsIDYsIAorICAgIDI0MywgMjAzLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjQyLCA2MSwgMTEsIDM1LCAyMywgMzIsIDYsIDczLCAxMSwgMzUsIDIzLCAKKyAgICAzMiwgNiwgMjM1LCAxNDUsIDExLCAzNSwgMjMsIDMyLCA2LCAyMzUsIDI0LCAxMSwgMzUsIDIzLCAzMiwgNiwgMTU2LCAxMSwgCisgICAgMzUsIDIzLCAzMiwgNiwgMTkzLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjMwLCAyNiwgMTEsIDM1LCAyMywgMzIsIDYsIDc2LCAKKyAgICAxMSwgMzUsIDIzLCAzMiwgNiwgMjI2LCAxMDYsIDExLCAzNSwgMjMsIDMyLCA2LCAyMjQsIDk3LCAxMSwgMzUsIDIzLCAzMiwgCisgICAgNiwgMTUzLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjIyLCA5MiwgMTEsIDM1LCAyMywgMzIsIDYsIDIxNywgMTUzLCAxMSwgMzUsIAorICAgIDIzLCAzMiwgNiwgNzAsIDExLCAzNSwgMjMsIDMyLCA2LCAyMTQsIDEwNSwgMTEsIDM1LCAyMywgMzIsIDYsIDIxMiwgOTgsIAorICAgIDExLCAzNSwgMjMsIDMyLCA2LCAyMTEsIDE3OCwgMTEsIDM1LCAyMywgMzIsIDYsIDIxMSwgMTE3LCAxMSwgMzUsIDIzLCAzMiwgCisgICAgNiwgMjEwLCAxNTksIDExLCAzNSwgMjMsIDMyLCA0LCA2MSwgMTEsIDM1LCAyMywgMzIsIDQsIDI1MywgMTU5LCAxMSwgMzUsIAorICAgIDIzLCAzMiwgNCwgMjUxLCA2NywgMTEsIDM1LCAyMywgMzIsIDQsIDI0OSwgNjEsIDExLCAzNSwgMjMsIDMyLCA0LCA3NSwgCisgICAgMTEsIDM1LCAyMywgMzIsIDQsIDI0NSwgNywgMTEsIDM1LCAyMywgMzIsIDQsIDI0MywgMjAzLCAxMSwgMzUsIDIzLCAzMiwgCisgICAgNCwgMjQyLCA2MSwgMTEsIDM1LCAyMywgMzIsIDQsIDczLCAxMSwgMzUsIDIzLCAzMiwgNCwgMjM1LCAxNDUsIDExLCAzNSwgCisgICAgMjMsIDMyLCA0LCAyMzUsIDI0LCAxMSwgMzUsIDIzLCAzMiwgNCwgMTU2LCAxMSwgMzUsIDIzLCAzMiwgNCwgMTkzLCAxMSwgCisgICAgMzUsIDIzLCAzMiwgNCwgMjMwLCAyNiwgMTEsIDM1LCAyMywgMzIsIDQsIDc2LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjI2LCAKKyAgICAxMDYsIDExLCAzNSwgMjMsIDMyLCA0LCAyMjQsIDk3LCAxMSwgMzUsIDIzLCAzMiwgNCwgMTUzLCAxMSwgMzUsIDIzLCAzMiwgCisgICAgNCwgMjIyLCA5MiwgMTEsIDM1LCAyMywgMzIsIDQsIDIxNywgMTUzLCAxMSwgMzUsIDIzLCAzMiwgNCwgNzAsIDExLCAzNSwgCisgICAgMjMsIDMyLCA0LCAyMTQsIDEwNSwgMTEsIDM1LCAyMywgMzIsIDQsIDIxMiwgOTgsIDExLCAzNSwgMjMsIDMyLCA0LCAyMTEsIAorICAgIDE3OCwgMTEsIDM1LCAyMywgMzIsIDQsIDIxMSwgMTE3LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjEwLCAxNTksIDExLCAyMzAsIAorICAgIDEzOSwgNiwgNjEsIDExLCAyMzAsIDEzOSwgNiwgMjUzLCAxNTksIDExLCAyMzAsIDEzOSwgNiwgMjUxLCA2NywgMTEsIDIzMCwgCisgICAgMTM5LCA2LCAyNDksIDYxLCAxMSwgMjMwLCAxMzksIDYsIDc1LCAxMSwgMjMwLCAxMzksIDYsIDI0NSwgNywgMTEsIDIzMCwgCisgICAgMTM5LCA2LCAyNDMsIDIwMywgMTEsIDIzMCwgMTM5LCA2LCAyNDIsIDYxLCAxMSwgMjMwLCAxMzksIDYsIDczLCAxMSwgMjMwLCAKKyAgICAxMzksIDYsIDIzNSwgMTQ1LCAxMSwgMjMwLCAxMzksIDYsIDIzNSwgMjQsIDExLCAyMzAsIDEzOSwgNiwgMTU2LCAxMSwgCisgICAgMjMwLCAxMzksIDYsIDE5MywgMTEsIDIzMCwgMTM5LCA2LCAyMzAsIDI2LCAxMSwgMjMwLCAxMzksIDYsIDc2LCAxMSwgMjMwLCAKKyAgICAxMzksIDYsIDIyNiwgMTA2LCAxMSwgMjMwLCAxMzksIDYsIDIyNCwgOTcsIDExLCAyMzAsIDEzOSwgNiwgMTUzLCAxMSwgCisgICAgMjMwLCAxMzksIDYsIDIyMiwgOTIsIDExLCAyMzAsIDEzOSwgNiwgMjE3LCAxNTMsIDExLCAyMzAsIDEzOSwgNiwgNzAsIDExLCAKKyAgICAyMzAsIDEzOSwgNiwgMjE0LCAxMDUsIDExLCAyMzAsIDEzOSwgNiwgMjEyLCA5OCwgMTEsIDIzMCwgMTM5LCA2LCAyMTEsIAorICAgIDE3OCwgMTEsIDIzMCwgMTM5LCA2LCAyMTEsIDExNywgMTEsIDIzMCwgMTM5LCA2LCAyMTAsIDE1OSwgMTEsIDIzMCwgMTM5LCAKKyAgICA0LCA2MSwgMTEsIDIzMCwgMTM5LCA0LCAyNTMsIDE1OSwgMTEsIDIzMCwgMTM5LCA0LCAyNTEsIDY3LCAxMSwgMjMwLCAxMzksIAorICAgIDQsIDI0OSwgNjEsIDExLCAyMzAsIDEzOSwgNCwgNzUsIDExLCAyMzAsIDEzOSwgNCwgMjQ1LCA3LCAxMSwgMjMwLCAxMzksIAorICAgIDQsIDI0MywgMjAzLCAxMSwgMjMwLCAxMzksIDQsIDI0MiwgNjEsIDExLCAyMzAsIDEzOSwgNCwgNzMsIDExLCAyMzAsIDEzOSwgCisgICAgNCwgMjM1LCAxNDUsIDExLCAyMzAsIDEzOSwgNCwgMjM1LCAyNCwgMTEsIDIzMCwgMTM5LCA0LCAxNTYsIDExLCAyMzAsIAorICAgIDEzOSwgNCwgMTkzLCAxMSwgMjMwLCAxMzksIDQsIDIzMCwgMjYsIDExLCAyMzAsIDEzOSwgNCwgNzYsIDExLCAyMzAsIDEzOSwgCisgICAgNCwgMjI2LCAxMDYsIDExLCAyMzAsIDEzOSwgNCwgMjI0LCA5NywgMTEsIDIzMCwgMTM5LCA0LCAxNTMsIDExLCAyMzAsIAorICAgIDEzOSwgNCwgMjIyLCA5MiwgMTEsIDIzMCwgMTM5LCA0LCAyMTcsIDE1MywgMTEsIDIzMCwgMTM5LCA0LCA3MCwgMTEsIDIzMCwgCisgICAgMTM5LCA0LCAyMTQsIDEwNSwgMTEsIDIzMCwgMTM5LCA0LCAyMTIsIDk4LCAxMSwgMjMwLCAxMzksIDQsIDIxMSwgMTc4LCAKKyAgICAxMSwgMjMwLCAxMzksIDQsIDIxMSwgMTE3LCAxMSwgMjMwLCAxMzksIDQsIDIxMCwgMTU5LCAxMSwgMzIsIDQsIDI0NywgCisgICAgMTIwLCA3MywgMTEsIDMyLCA0LCAyNDcsIDEyMCwgMjM1LCAxNDUsIDExLCAyMywgNiwgMjU0LCAxNDQsIDExLCAyMywgNiwgCisgICAgMjUyLCAyNywgMTEsIDIzLCA2LCAyNDMsIDEwOCwgMTEsIDIzLCA2LCAyNDgsIDU1LCAxMSwgMjMsIDYsIDI0NSwgMTAxLCAKKyAgICAxMSwgMjMsIDYsIDIxMCwgODUsIDExLCAyMywgNiwgMjQ1LCA2NCwgMTEsIDIzLCA2LCAyMTYsIDE4MCwgMTEsIDIzLCA2LCAKKyAgICAyMzUsIDE4NiwgMTEsIDIzLCA2LCAyMzQsIDIyMywgMTEsIDIzLCA2LCAyMzMsIDk5LCAxMSwgMjMsIDYsIDIzMCwgMTAzLCAKKyAgICAxMSwgMjMsIDYsIDIyNywgMjM4LCAxMSwgMjMsIDYsIDIxMSwgMTU3LCAxMSwgMjMsIDYsIDIyNiwgMjAwLCAxMSwgMjMsIDYsIAorICAgIDIyNSwgMTA5LCAxMSwgMjMsIDYsIDIyMywgMzgsIDExLCAyMywgNiwgMjE2LCAxODEsIDg3LCAxMSwgMjMsIDYsIDIxOSwgCisgICAgMTc4LCAxMSwgMjMsIDYsIDIxNywgNDIsIDExLCAyMywgNiwgMjE0LCAxNTcsIDExLCAyMywgNiwgMjI1LCAxMzQsIDExLCAKKyAgICAyMywgNiwgMjUwLCAxMTEsIDExLCAyMywgNiwgMjI0LCAxNjIsIDExLCAyMywgNiwgMjI2LCAyMDIsIDExLCAyMywgMjI5LCAKKyAgICAyMjIsIDExLCAyMywgNCwgMjU0LCAxNDQsIDExLCAyMywgNCwgMjUyLCAyNywgMTEsIDIzLCA0LCAyNDMsIDEwOCwgMTEsIAorICAgIDIzLCA0LCAyNDgsIDU1LCAxMSwgMjMsIDQsIDI0NSwgMTAxLCAxMSwgMjMsIDQsIDIxMCwgODUsIDExLCAyMywgNCwgMjQ1LCAKKyAgICA2NCwgMTEsIDIzLCA0LCAyMTYsIDE4MCwgMTEsIDIzLCA0LCAyMzUsIDE4NiwgMTEsIDIzLCA0LCAyMzQsIDIyMywgMTEsIAorICAgIDIzLCA0LCAyMzMsIDk5LCAxMSwgMjMsIDQsIDIzMCwgMTAzLCAxMSwgMjMsIDQsIDIyNywgMjM4LCAxMSwgMjMsIDQsIDIxMSwgCisgICAgMTU3LCAxMSwgMjMsIDQsIDIyNiwgMjAwLCAxMSwgMjMsIDQsIDIyNSwgMTA5LCAxMSwgMjMsIDQsIDIyMywgMzgsIDExLCAKKyAgICAyMywgNCwgNDAsIDIxOSwgMTc4LCAxMSwgMjMsIDQsIDIxOSwgMTc4LCAxMSwgMjMsIDQsIDIxNywgNDIsIDExLCAyMywgNCwgCisgICAgMjE0LCAxNTcsIDExLCAyMywgNCwgMjI1LCAxMzQsIDExLCAyMywgNCwgMjUwLCAxMTEsIDExLCAyMywgNCwgMjI0LCAxNjIsIAorICAgIDExLCAyMywgNCwgMjI2LCAyMDIsIDExLCAyMywgMjI1LCAyNTQsIDI0NywgMjM0LCAxMSwgMjMsIDI0NSwgMTAyLCA4NywgCisgICAgMTEsIDIzLCAyMTYsIDE4MSwgODcsIDExLCAyMywgMjM0LCAyMjQsIDg3LCAxMSwgMjMsIDIyNSwgMTM1LCA4NywgMTEsIDIzLCAKKyAgICAyMjMsIDM5LCA4NywgMTEsIDIzLCAyMjUsIDExMCwgODcsIDExLCAzMiwgNiwgMjU0LCAxNDQsIDExLCAzMiwgNiwgMjUyLCAKKyAgICAyNywgMTEsIDMyLCA2LCAyNDMsIDEwOCwgMTEsIDMyLCA2LCAyNDgsIDU1LCAxMSwgMzIsIDYsIDI0NSwgMTAxLCAxMSwgMzIsIAorICAgIDYsIDIxMCwgODUsIDExLCAzMiwgNiwgMjQ1LCA2NCwgMTEsIDMyLCA2LCAyMTYsIDE4MCwgMTEsIDMyLCA2LCAyMzUsIDE4NiwgCisgICAgMTEsIDMyLCA2LCAyMzQsIDIyMywgMTEsIDMyLCA2LCAyMzMsIDk5LCAxMSwgMzIsIDYsIDIzMCwgMTAzLCAxMSwgMzIsIDYsIAorICAgIDIyNywgMjM4LCAxMSwgMzIsIDYsIDIxMSwgMTU3LCAxMSwgMzIsIDYsIDIyNiwgMjAwLCAxMSwgMzIsIDYsIDIyNSwgMTA5LCAKKyAgICAxMSwgMzIsIDYsIDIyMywgMzgsIDExLCAzMiwgNiwgMjE2LCAxODEsIDg3LCAxMSwgMzIsIDYsIDIxOSwgMTc4LCAxMSwgMzIsIAorICAgIDYsIDIxNywgNDIsIDExLCAzMiwgNiwgMjE0LCAxNTcsIDExLCAzMiwgNiwgMjI1LCAxMzQsIDExLCAzMiwgNiwgMjUwLCAKKyAgICAxMTEsIDExLCAzMiwgNiwgMjI0LCAxNjIsIDExLCAzMiwgNiwgMjI2LCAyMDIsIDExLCAzMiwgMjI5LCAyMjIsIDExLCAzMiwgCisgICAgNCwgMjU0LCAxNDQsIDExLCAzMiwgNCwgMjUyLCAyNywgMTEsIDMyLCA0LCAyNDMsIDEwOCwgMTEsIDMyLCA0LCAyNDgsIDU1LCAKKyAgICAxMSwgMzIsIDQsIDI0NSwgMTAxLCAxMSwgMzIsIDQsIDIxMCwgODUsIDExLCAzMiwgNCwgMjQ1LCA2NCwgMTEsIDMyLCA0LCAKKyAgICAyMTYsIDE4MCwgMTEsIDMyLCA0LCAyMzUsIDE4NiwgMTEsIDMyLCA0LCAyMzQsIDIyMywgMTEsIDMyLCA0LCAyMzMsIDk5LCAKKyAgICAxMSwgMzIsIDQsIDIzMCwgMTAzLCAxMSwgMzIsIDQsIDIyNywgMjM4LCAxMSwgMzIsIDQsIDIxMSwgMTU3LCAxMSwgMzIsIDQsIAorICAgIDIyNiwgMjAwLCAxMSwgMzIsIDQsIDIyNSwgMTA5LCAxMSwgMzIsIDQsIDIyMywgMzgsIDExLCAzMiwgNCwgNDAsIDIxOSwgCisgICAgMTc4LCAxMSwgMzIsIDQsIDIxOSwgMTc4LCAxMSwgMzIsIDQsIDIxNywgNDIsIDExLCAzMiwgNCwgMjE0LCAxNTcsIDExLCAKKyAgICAzMiwgNCwgMjI1LCAxMzQsIDExLCAzMiwgNCwgMjUwLCAxMTEsIDExLCAzMiwgNCwgMjI0LCAxNjIsIDExLCAzMiwgNCwgCisgICAgMjI2LCAyMDIsIDExLCAzMiwgMjI1LCAyNTQsIDI0NywgMjM0LCAxMSwgMzIsIDI0NSwgMTAyLCA4NywgMTEsIDMyLCAyMTYsIAorICAgIDE4MSwgODcsIDExLCAzMiwgMjM0LCAyMjQsIDg3LCAxMSwgMzIsIDIyNSwgMTM1LCA4NywgMTEsIDMyLCAyMjMsIDM5LCA4NywgCisgICAgMTEsIDMyLCAyMjUsIDExMCwgODcsIDExLCAyMywgMzIsIDYsIDI1NCwgMTQ0LCAxMSwgMjMsIDMyLCA2LCAyNTIsIDI3LCAKKyAgICAxMSwgMjMsIDMyLCA2LCAyNDMsIDEwOCwgMTEsIDIzLCAzMiwgNiwgMjQ4LCA1NSwgMTEsIDIzLCAzMiwgNiwgMjQ1LCAxMDEsIAorICAgIDExLCAyMywgMzIsIDYsIDIxMCwgODUsIDExLCAyMywgMzIsIDYsIDI0NSwgNjQsIDExLCAyMywgMzIsIDYsIDIxNiwgMTgwLCAKKyAgICAxMSwgMjMsIDMyLCA2LCAyMzUsIDE4NiwgMTEsIDIzLCAzMiwgNiwgMjM0LCAyMjMsIDExLCAyMywgMzIsIDYsIDIzMywgOTksIAorICAgIDExLCAyMywgMzIsIDYsIDIzMCwgMTAzLCAxMSwgMjMsIDMyLCA2LCAyMjcsIDIzOCwgMTEsIDIzLCAzMiwgNiwgMjExLCAKKyAgICAxNTcsIDExLCAyMywgMzIsIDYsIDIyNiwgMjAwLCAxMSwgMjMsIDMyLCA2LCAyMjUsIDEwOSwgMTEsIDIzLCAzMiwgNiwgCisgICAgMjIzLCAzOCwgMTEsIDIzLCAzMiwgNiwgMjE2LCAxODEsIDg3LCAxMSwgMjMsIDMyLCA2LCAyMTksIDE3OCwgMTEsIDIzLCAKKyAgICAzMiwgNiwgMjE3LCA0MiwgMTEsIDIzLCAzMiwgNiwgMjE0LCAxNTcsIDExLCAyMywgMzIsIDYsIDIyNSwgMTM0LCAxMSwgMjMsIAorICAgIDMyLCA2LCAyNTAsIDExMSwgMTEsIDIzLCAzMiwgNiwgMjI0LCAxNjIsIDExLCAyMywgMzIsIDYsIDIyNiwgMjAyLCAxMSwgCisgICAgMjMsIDMyLCAyMjksIDIyMiwgMTEsIDIzLCAzMiwgNCwgMjU0LCAxNDQsIDExLCAyMywgMzIsIDQsIDI1MiwgMjcsIDExLCAKKyAgICAyMywgMzIsIDQsIDI0MywgMTA4LCAxMSwgMjMsIDMyLCA0LCAyNDgsIDU1LCAxMSwgMjMsIDMyLCA0LCAyNDUsIDEwMSwgMTEsIAorICAgIDIzLCAzMiwgNCwgMjEwLCA4NSwgMTEsIDIzLCAzMiwgNCwgMjQ1LCA2NCwgMTEsIDIzLCAzMiwgNCwgMjE2LCAxODAsIDExLCAKKyAgICAyMywgMzIsIDQsIDIzNSwgMTg2LCAxMSwgMjMsIDMyLCA0LCAyMzQsIDIyMywgMTEsIDIzLCAzMiwgNCwgMjMzLCA5OSwgMTEsIAorICAgIDIzLCAzMiwgNCwgMjMwLCAxMDMsIDExLCAyMywgMzIsIDQsIDIyNywgMjM4LCAxMSwgMjMsIDMyLCA0LCAyMTEsIDE1NywgCisgICAgMTEsIDIzLCAzMiwgNCwgMjI2LCAyMDAsIDExLCAyMywgMzIsIDQsIDIyNSwgMTA5LCAxMSwgMjMsIDMyLCA0LCAyMjMsIDM4LCAKKyAgICAxMSwgMjMsIDMyLCA0LCA0MCwgMjE5LCAxNzgsIDExLCAyMywgMzIsIDQsIDIxOSwgMTc4LCAxMSwgMjMsIDMyLCA0LCAyMTcsIAorICAgIDQyLCAxMSwgMjMsIDMyLCA0LCAyMTQsIDE1NywgMTEsIDIzLCAzMiwgNCwgMjI1LCAxMzQsIDExLCAyMywgMzIsIDQsIDI1MCwgCisgICAgMTExLCAxMSwgMjMsIDMyLCA0LCAyMjQsIDE2MiwgMTEsIDIzLCAzMiwgNCwgMjI2LCAyMDIsIDExLCAyMywgMzIsIDIyNSwgCisgICAgMjU0LCAyNDcsIDIzNCwgMTEsIDIzLCAzMiwgMjQ1LCAxMDIsIDg3LCAxMSwgMjMsIDMyLCAyMTYsIDE4MSwgODcsIDExLCAKKyAgICAyMywgMzIsIDIzNCwgMjI0LCA4NywgMTEsIDIzLCAzMiwgMjI1LCAxMzUsIDg3LCAxMSwgMjMsIDMyLCAyMjMsIDM5LCA4NywgCisgICAgMTEsIDIzLCAzMiwgMjI1LCAxMTAsIDg3LCAxMSwgMzUsIDIzLCA2LCAyNTQsIDE0NCwgMTEsIDM1LCAyMywgNiwgMjUyLCAKKyAgICAyNywgMTEsIDM1LCAyMywgNiwgMjQzLCAxMDgsIDExLCAzNSwgMjMsIDYsIDI0OCwgNTUsIDExLCAzNSwgMjMsIDYsIDI0NSwgCisgICAgMTAxLCAxMSwgMzUsIDIzLCA2LCAyMTAsIDg1LCAxMSwgMzUsIDIzLCA2LCAyNDUsIDY0LCAxMSwgMzUsIDIzLCA2LCAyMTYsIAorICAgIDE4MCwgMTEsIDM1LCAyMywgNiwgMjM1LCAxODYsIDExLCAzNSwgMjMsIDYsIDIzNCwgMjIzLCAxMSwgMzUsIDIzLCA2LCAKKyAgICAyMzMsIDk5LCAxMSwgMzUsIDIzLCA2LCAyMzAsIDEwMywgMTEsIDM1LCAyMywgNiwgMjI3LCAyMzgsIDExLCAzNSwgMjMsIDYsIAorICAgIDIxMSwgMTU3LCAxMSwgMzUsIDIzLCA2LCAyMjYsIDIwMCwgMTEsIDM1LCAyMywgNiwgMjI1LCAxMDksIDExLCAzNSwgMjMsIAorICAgIDYsIDIyMywgMzgsIDExLCAzNSwgMjMsIDYsIDIxNiwgMTgxLCA4NywgMTEsIDM1LCAyMywgNiwgMjE5LCAxNzgsIDExLCAzNSwgCisgICAgMjMsIDYsIDIxNywgNDIsIDExLCAzNSwgMjMsIDYsIDIxNCwgMTU3LCAxMSwgMzUsIDIzLCA2LCAyMjUsIDEzNCwgMTEsIDM1LCAKKyAgICAyMywgNiwgMjUwLCAxMTEsIDExLCAzNSwgMjMsIDYsIDIyNCwgMTYyLCAxMSwgMzUsIDIzLCA2LCAyMjYsIDIwMiwgMTEsIAorICAgIDM1LCAyMywgMjI5LCAyMjIsIDExLCAzNSwgMjMsIDQsIDI1NCwgMTQ0LCAxMSwgMzUsIDIzLCA0LCAyNTIsIDI3LCAxMSwgCisgICAgMzUsIDIzLCA0LCAyNDMsIDEwOCwgMTEsIDM1LCAyMywgNCwgMjQ4LCA1NSwgMTEsIDM1LCAyMywgNCwgMjQ1LCAxMDEsIDExLCAKKyAgICAzNSwgMjMsIDQsIDIxMCwgODUsIDExLCAzNSwgMjMsIDQsIDI0NSwgNjQsIDExLCAzNSwgMjMsIDQsIDIxNiwgMTgwLCAxMSwgCisgICAgMzUsIDIzLCA0LCAyMzUsIDE4NiwgMTEsIDM1LCAyMywgNCwgMjM0LCAyMjMsIDExLCAzNSwgMjMsIDQsIDIzMywgOTksIDExLCAKKyAgICAzNSwgMjMsIDQsIDIzMCwgMTAzLCAxMSwgMzUsIDIzLCA0LCAyMjcsIDIzOCwgMTEsIDM1LCAyMywgNCwgMjExLCAxNTcsIAorICAgIDExLCAzNSwgMjMsIDQsIDIyNiwgMjAwLCAxMSwgMzUsIDIzLCA0LCAyMjUsIDEwOSwgMTEsIDM1LCAyMywgNCwgMjIzLCAzOCwgCisgICAgMTEsIDM1LCAyMywgNCwgNDAsIDIxOSwgMTc4LCAxMSwgMzUsIDIzLCA0LCAyMTksIDE3OCwgMTEsIDM1LCAyMywgNCwgMjE3LCAKKyAgICA0MiwgMTEsIDM1LCAyMywgNCwgMjE0LCAxNTcsIDExLCAzNSwgMjMsIDQsIDIyNSwgMTM0LCAxMSwgMzUsIDIzLCA0LCAyNTAsIAorICAgIDExMSwgMTEsIDM1LCAyMywgNCwgMjI0LCAxNjIsIDExLCAzNSwgMjMsIDQsIDIyNiwgMjAyLCAxMSwgMzUsIDIzLCAyMjUsIAorICAgIDI1NCwgMjQ3LCAyMzQsIDExLCAzNSwgMjMsIDI0NSwgMTAyLCA4NywgMTEsIDM1LCAyMywgMjE2LCAxODEsIDg3LCAxMSwgCisgICAgMzUsIDIzLCAyMzQsIDIyNCwgODcsIDExLCAzNSwgMjMsIDIyNSwgMTM1LCA4NywgMTEsIDM1LCAyMywgMjIzLCAzOSwgODcsIAorICAgIDExLCAzNSwgMjMsIDIyNSwgMTEwLCA4NywgMTEsIDM1LCAyMywgMzIsIDYsIDI1NCwgMTQ0LCAxMSwgMzUsIDIzLCAzMiwgNiwgCisgICAgMjUyLCAyNywgMTEsIDM1LCAyMywgMzIsIDYsIDI0MywgMTA4LCAxMSwgMzUsIDIzLCAzMiwgNiwgMjQ4LCA1NSwgMTEsIDM1LCAKKyAgICAyMywgMzIsIDYsIDI0NSwgMTAxLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjEwLCA4NSwgMTEsIDM1LCAyMywgMzIsIDYsIDI0NSwgCisgICAgNjQsIDExLCAzNSwgMjMsIDMyLCA2LCAyMTYsIDE4MCwgMTEsIDM1LCAyMywgMzIsIDYsIDIzNSwgMTg2LCAxMSwgMzUsIDIzLCAKKyAgICAzMiwgNiwgMjM0LCAyMjMsIDExLCAzNSwgMjMsIDMyLCA2LCAyMzMsIDk5LCAxMSwgMzUsIDIzLCAzMiwgNiwgMjMwLCAxMDMsIAorICAgIDExLCAzNSwgMjMsIDMyLCA2LCAyMjcsIDIzOCwgMTEsIDM1LCAyMywgMzIsIDYsIDIxMSwgMTU3LCAxMSwgMzUsIDIzLCAzMiwgCisgICAgNiwgMjI2LCAyMDAsIDExLCAzNSwgMjMsIDMyLCA2LCAyMjUsIDEwOSwgMTEsIDM1LCAyMywgMzIsIDYsIDIyMywgMzgsIDExLCAKKyAgICAzNSwgMjMsIDMyLCA2LCAyMTYsIDE4MSwgODcsIDExLCAzNSwgMjMsIDMyLCA2LCAyMTksIDE3OCwgMTEsIDM1LCAyMywgMzIsIAorICAgIDYsIDIxNywgNDIsIDExLCAzNSwgMjMsIDMyLCA2LCAyMTQsIDE1NywgMTEsIDM1LCAyMywgMzIsIDYsIDIyNSwgMTM0LCAxMSwgCisgICAgMzUsIDIzLCAzMiwgNiwgMjUwLCAxMTEsIDExLCAzNSwgMjMsIDMyLCA2LCAyMjQsIDE2MiwgMTEsIDM1LCAyMywgMzIsIDYsIAorICAgIDIyNiwgMjAyLCAxMSwgMzUsIDIzLCAzMiwgMjI5LCAyMjIsIDExLCAzNSwgMjMsIDMyLCA0LCAyNTQsIDE0NCwgMTEsIDM1LCAKKyAgICAyMywgMzIsIDQsIDI1MiwgMjcsIDExLCAzNSwgMjMsIDMyLCA0LCAyNDMsIDEwOCwgMTEsIDM1LCAyMywgMzIsIDQsIDI0OCwgCisgICAgNTUsIDExLCAzNSwgMjMsIDMyLCA0LCAyNDUsIDEwMSwgMTEsIDM1LCAyMywgMzIsIDQsIDIxMCwgODUsIDExLCAzNSwgMjMsIAorICAgIDMyLCA0LCAyNDUsIDY0LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjE2LCAxODAsIDExLCAzNSwgMjMsIDMyLCA0LCAyMzUsIDE4NiwgCisgICAgMTEsIDM1LCAyMywgMzIsIDQsIDIzNCwgMjIzLCAxMSwgMzUsIDIzLCAzMiwgNCwgMjMzLCA5OSwgMTEsIDM1LCAyMywgMzIsIAorICAgIDQsIDIzMCwgMTAzLCAxMSwgMzUsIDIzLCAzMiwgNCwgMjI3LCAyMzgsIDExLCAzNSwgMjMsIDMyLCA0LCAyMTEsIDE1NywgCisgICAgMTEsIDM1LCAyMywgMzIsIDQsIDIyNiwgMjAwLCAxMSwgMzUsIDIzLCAzMiwgNCwgMjI1LCAxMDksIDExLCAzNSwgMjMsIDMyLCAKKyAgICA0LCAyMjMsIDM4LCAxMSwgMzUsIDIzLCAzMiwgNCwgNDAsIDIxOSwgMTc4LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjE5LCAxNzgsIAorICAgIDExLCAzNSwgMjMsIDMyLCA0LCAyMTcsIDQyLCAxMSwgMzUsIDIzLCAzMiwgNCwgMjE0LCAxNTcsIDExLCAzNSwgMjMsIDMyLCAKKyAgICA0LCAyMjUsIDEzNCwgMTEsIDM1LCAyMywgMzIsIDQsIDI1MCwgMTExLCAxMSwgMzUsIDIzLCAzMiwgNCwgMjI0LCAxNjIsIAorICAgIDExLCAzNSwgMjMsIDMyLCA0LCAyMjYsIDIwMiwgMTEsIDM1LCAyMywgMzIsIDIyNSwgMjU0LCAyNDcsIDIzNCwgMTEsIDM1LCAKKyAgICAyMywgMzIsIDI0NSwgMTAyLCA4NywgMTEsIDM1LCAyMywgMzIsIDIxNiwgMTgxLCA4NywgMTEsIDM1LCAyMywgMzIsIDIzNCwgCisgICAgMjI0LCA4NywgMTEsIDM1LCAyMywgMzIsIDIyNSwgMTM1LCA4NywgMTEsIDM1LCAyMywgMzIsIDIyMywgMzksIDg3LCAxMSwgCisgICAgMzUsIDIzLCAzMiwgMjI1LCAxMTAsIDg3LCAxMSwgMjMsIDYsIDI0NywgMjI4LCAxMSwgMjMsIDQsIDI0NywgMjI4LCAxMSwgCisgICAgMjMsIDIxLCAyMTAsIDg2LCAxMSwgMjMsIDIxLCAxMTAsIDExLCAyMywgMjEsIDEwNSwgMTEsIDIzLCAyMSwgMTU4LCAxMSwgCisgICAgMjMsIDIxLCAxNjEsIDExLCAyMywgMjEsIDE4OSwgMTEsIDIzLCAyMSwgMTk0LCAxMSwgMjMsIDIxLCAxOTgsIDExLCAyMywgCisgICAgMjEsIDE5NSwgMTEsIDIzLCAyMSwgMjAwLCAxMSwgMTM5LCAyMSwgMjEwLCA4NiwgMTEsIDEzOSwgMjEsIDExMCwgMTEsIAorICAgIDEzOSwgMjEsIDEwNSwgMTEsIDEzOSwgMjEsIDE1OCwgMTEsIDEzOSwgMjEsIDE2MSwgMTEsIDEzOSwgMjEsIDE4OSwgMTEsIAorICAgIDEzOSwgMjEsIDE5NCwgMTEsIDEzOSwgMjEsIDE5OCwgMTEsIDEzOSwgMjEsIDE5NSwgMTEsIDEzOSwgMjEsIDIwMCwgMTEsIAorICAgIDM1LCAyMSwgMjEwLCA4NiwgMTEsIDM1LCAyMSwgMTEwLCAxMSwgMzUsIDIxLCAxMDUsIDExLCAzNSwgMjEsIDE1OCwgMTEsIAorICAgIDM1LCAyMSwgMTYxLCAxMSwgMzUsIDIxLCAxODksIDExLCAzNSwgMjEsIDE5NCwgMTEsIDM1LCAyMSwgMTk4LCAxMSwgMzUsIAorICAgIDIxLCAxOTUsIDExLCAzNSwgMjEsIDIwMCwgMTEsIDM1LCAyMywgMjEsIDIxMCwgODYsIDExLCAzNSwgMjMsIDIxLCAxMTAsIAorICAgIDExLCAzNSwgMjMsIDIxLCAxMDUsIDExLCAzNSwgMjMsIDIxLCAxNTgsIDExLCAzNSwgMjMsIDIxLCAxNjEsIDExLCAzNSwgCisgICAgMjMsIDIxLCAxODksIDExLCAzNSwgMjMsIDIxLCAxOTQsIDExLCAzNSwgMjMsIDIxLCAxOTgsIDExLCAzNSwgMjMsIDIxLCAKKyAgICAxOTUsIDExLCAzNSwgMjMsIDIxLCAyMDAsIDExLCAyMzAsIDEzOSwgMjEsIDIxMCwgODYsIDExLCAyMzAsIDEzOSwgMjEsIAorICAgIDExMCwgMTEsIDIzMCwgMTM5LCAyMSwgMTA1LCAxMSwgMjMwLCAxMzksIDIxLCAxNTgsIDExLCAyMzAsIDEzOSwgMjEsIDE2MSwgCisgICAgMTEsIDIzMCwgMTM5LCAyMSwgMTg5LCAxMSwgMjMwLCAxMzksIDIxLCAxOTQsIDExLCAyMzAsIDEzOSwgMjEsIDE5OCwgMTEsIAorICAgIDIzMCwgMTM5LCAyMSwgMTk1LCAxMSwgMjMwLCAxMzksIDIxLCAyMDAsIDEwLCAxMSwgMjU0LCAxNzEsIDEwLCAxMSwgMjUyLCAKKyAgICA1NSwgMTAsIDExLCAyMzUsIDEyNCwgMTAsIDExLCAyNDgsIDE5NiwgMTAsIDExLCAyMTIsIDMwLCAxMCwgMTEsIDIxMCwgCisgICAgMTA4LCAxMCwgMTEsIDI0MiwgMzgsIDEwLCAxMSwgMjE3LCA4MSwgMTAsIDExLCAyMTEsIDQzLCAxMCwgMTEsIDIzNCwgMjUxLCAKKyAgICAxMCwgMTEsIDIzMywgMTAzLCAxMCwgMTEsIDIzMSwgNzksIDEwLCAxMSwgMjI4LCA2MywgMTAsIDExLCAyMjEsIDE2NywgMTAsIAorICAgIDExLCAyNTQsIDE5NywgMTAsIDExLCAyNDQsIDE0MywgMTAsIDExLCAyMjIsIDI3LCAxMCwgMTEsIDIyNCwgODIsIDEwLCAxMSwgCisgICAgMjIzLCA5NiwgMTAsIDExLCAyMjAsIDYwLCAxMCwgMTEsIDIxNywgOCwgMTAsIDExLCAyMTYsIDE5MywgMTAsIDExLCAyMzQsIAorICAgIDEzMCwgMTAsIDExLCAyMTYsIDIwMywgMTAsIDExLCAyNDgsIDIxNywgMTAsIDExLCAyMTAsIDExMSwgMTAsIDExLCAyNDIsIAorICAgIDI0NSwgMTAsIDExLCAyNDcsIDEyMCwgMjUyLCA1NSwgMTAsIDExLCAyNDcsIDEyMCwgMjI4LCA2MywgMTAsIDExLCAyNDcsIAorICAgIDEyMCwgMjQ0LCAxNDMsIDEwLCAxMSwgMjQ3LCAxMjAsIDIyNCwgODIsIDEwLCAxMSwgNjUsIDI1MiwgNTUsIDEwLCAxMSwgCisgICAgNjUsIDIzNSwgMTI0LCAxMCwgMTEsIDY1LCAyNDEsIDIxOSwgMTAsIDExLCA2NSwgMjQyLCAzOCwgMTAsIDExLCA2NSwgMjExLCAKKyAgICA0MywgMTAsIDExLCA2NSwgMjM0LCAyNTEsIDEwLCAxMSwgNjUsIDIzMywgMTAzLCAxMCwgMTEsIDY1LCAyMzEsIDc5LCAxMCwgCisgICAgMTEsIDY1LCAyMjgsIDYzLCAxMCwgMTEsIDY1LCAyMjEsIDE2NywgMTAsIDExLCA2NSwgMjU0LCAxOTcsIDEwLCAxMSwgNjUsIAorICAgIDI0NCwgMTQzLCAxMCwgMTEsIDY1LCAyMjIsIDI3LCAxMCwgMTEsIDY1LCAyMjQsIDgyLCAxMCwgMTEsIDY1LCAyMjAsIDYwLCAKKyAgICAxMCwgMTEsIDY1LCAyMTcsIDgsIDEwLCAxMSwgNjUsIDIxNiwgMTkzLCAxMCwgMTEsIDY1LCAyMzQsIDEzMCwgMTAsIDExLCAKKyAgICA2NSwgMjQ4LCAyMTcsIDEwLCAxMSwgNjUsIDI0MiwgMjQ1LCAxMCwgMTEsIDIxNywgNzcsIDIzNSwgMTI0LCAxMCwgMTEsIAorICAgIDIxNywgNzcsIDI0MiwgMzgsIDEwLCAxMSwgMjE3LCA3NywgMjExLCA0MywgMTAsIDExLCAyMTcsIDc3LCAyMzMsIDEwMywgCisgICAgMTAsIDExLCAyMTcsIDc3LCAyMjgsIDYzLCAxMCwgMTEsIDIxNywgNzcsIDIyMSwgMTY3LCAxMCwgMTEsIDIxNywgNzcsIAorICAgIDI1NCwgMTk3LCAxMCwgMTEsIDIxNywgNzcsIDIyMiwgMjcsIDEwLCAxMSwgMjE3LCA3NywgMjI0LCA4MiwgMTAsIDExLCAKKyAgICAyMTcsIDc3LCAyMjAsIDYwLCAxMCwgMTEsIDIxNywgNzcsIDIzNCwgMTMwLCAxMCwgMTEsIDIxNywgNzcsIDI0OCwgMjE3LCAKKyAgICAxMCwgMTEsIDIxNywgNzcsIDI0MiwgMjQ1LCAxMCwgMTEsIDIxNywgNzcsIDI0NywgMTIwLCAyMjgsIDYzLCAxMCwgMTEsIAorICAgIDIxNywgNzcsIDI0NywgMTIwLCAyMjQsIDgyLCAxMCwgMTEsIDIxOCwgMTExLCAyNTIsIDU1LCAxMCwgMTEsIDIxOCwgMTExLCAKKyAgICAyMzUsIDEyNCwgMTAsIDExLCAyMTgsIDExMSwgMjQxLCAyMTksIDEwLCAxMSwgMjE4LCAxMTEsIDI0MiwgMzgsIDEwLCAxMSwgCisgICAgMjE4LCAxMTEsIDIxNywgODEsIDEwLCAxMSwgMjE4LCAxMTEsIDIxMSwgNDMsIDEwLCAxMSwgMjE4LCAxMTEsIDIzNCwgMjUxLCAKKyAgICAxMCwgMTEsIDIxOCwgMTExLCAyMzEsIDc5LCAxMCwgMTEsIDIxOCwgMTExLCAyMjgsIDYzLCAxMCwgMTEsIDIxOCwgMTExLCAKKyAgICAyMjEsIDE2NywgMTAsIDExLCAyMTgsIDExMSwgMjU0LCAxOTcsIDEwLCAxMSwgMjE4LCAxMTEsIDI0NCwgMTQzLCAxMCwgMTEsIAorICAgIDIxOCwgMTExLCAyMjIsIDI3LCAxMCwgMTEsIDIxOCwgMTExLCAyMjQsIDgyLCAxMCwgMTEsIDIxOCwgMTExLCAyMjAsIDYwLCAKKyAgICAxMCwgMTEsIDIxOCwgMTExLCAyMTcsIDgsIDEwLCAxMSwgMjE4LCAxMTEsIDIxNiwgMTkzLCAxMCwgMTEsIDIxOCwgMTExLCAKKyAgICAyMzQsIDEzMCwgMTAsIDExLCAyMTgsIDExMSwgMjQ4LCAyMTcsIDEwLCAxMSwgMjE4LCAxMTEsIDIxMCwgMTExLCAxMCwgMTEsIAorICAgIDIxOCwgMTExLCAyNDIsIDI0NSwgMTAsIDExLCAyMTgsIDExMSwgMjQ3LCAxMjAsIDI1MiwgNTUsIDEwLCAxMSwgMjE4LCAKKyAgICAxMTEsIDI0NywgMTIwLCAyNDQsIDE0MywgMTAsIDExLCAyMzIsIDEyMywgMjU0LCAxNzEsIDEwLCAxMSwgMjMyLCAxMjMsIAorICAgIDI1MiwgNTUsIDEwLCAxMSwgMjMyLCAxMjMsIDIzNSwgMTI0LCAxMCwgMTEsIDIzMiwgMTIzLCAyNDgsIDE5NiwgMTAsIDExLCAKKyAgICAyMzIsIDEyMywgMjQxLCAyMTksIDEwLCAxMSwgMjMyLCAxMjMsIDIxMiwgMzAsIDEwLCAxMSwgMjMyLCAxMjMsIDIxMCwgCisgICAgMTA4LCAxMCwgMTEsIDIzMiwgMTIzLCAyNDIsIDM4LCAxMCwgMTEsIDIzMiwgMTIzLCAyMTcsIDgxLCAxMCwgMTEsIDIzMiwgCisgICAgMTIzLCAyMTEsIDQzLCAxMCwgMTEsIDIzMiwgMTIzLCAyMzMsIDEwMywgMTAsIDExLCAyMzIsIDEyMywgMjMxLCA3OSwgMTAsIAorICAgIDExLCAyMzIsIDEyMywgMjI4LCA2MywgMTAsIDExLCAyMzIsIDEyMywgMjIxLCAxNjcsIDEwLCAxMSwgMjMyLCAxMjMsIDI1NCwgCisgICAgMTk3LCAxMCwgMTEsIDIzMiwgMTIzLCAyNDQsIDE0MywgMTAsIDExLCAyMzIsIDEyMywgMjIyLCAyNywgMTAsIDExLCAyMzIsIAorICAgIDEyMywgMjI0LCA4MiwgMTAsIDExLCAyMzIsIDEyMywgMjIzLCA5NiwgMTAsIDExLCAyMzIsIDEyMywgMjIwLCA2MCwgMTAsIAorICAgIDExLCAyMzIsIDEyMywgMjE3LCA4LCAxMCwgMTEsIDIzMiwgMTIzLCAyMTYsIDE5MywgMTAsIDExLCAyMzIsIDEyMywgMjM0LCAKKyAgICAxMzAsIDEwLCAxMSwgMjMyLCAxMjMsIDIxNiwgMjAzLCAxMCwgMTEsIDIzMiwgMTIzLCAyNDgsIDIxNywgMTAsIDExLCAyMzIsIAorICAgIDEyMywgMjEwLCAxMTEsIDEwLCAxMSwgMjMyLCAxMjMsIDI0MiwgMjQ1LCAxMCwgMTEsIDEzOSwgMjUyLCA1NSwgMTAsIDExLCAKKyAgICAxMzksIDIzNSwgMTI0LCAxMCwgMTEsIDEzOSwgMjQ4LCAxOTYsIDEwLCAxMSwgMTM5LCAyMTIsIDMwLCAxMCwgMTEsIDEzOSwgCisgICAgMjEwLCAxMDgsIDEwLCAxMSwgMTM5LCAyNDIsIDM4LCAxMCwgMTEsIDEzOSwgMjE3LCA4MSwgMTAsIDExLCAxMzksIDIxMSwgCisgICAgNDMsIDEwLCAxMSwgMTM5LCAyMzMsIDEwMywgMTAsIDExLCAxMzksIDIzMSwgNzksIDEwLCAxMSwgMTM5LCAyMjgsIDYzLCAKKyAgICAxMCwgMTEsIDEzOSwgMjIxLCAxNjcsIDEwLCAxMSwgMTM5LCAyNTQsIDE5NywgMTAsIDExLCAxMzksIDI0NCwgMTQzLCAxMCwgCisgICAgMTEsIDEzOSwgMjIyLCAyNywgMTAsIDExLCAxMzksIDIyNCwgODIsIDEwLCAxMSwgMTM5LCAyMjMsIDk2LCAxMCwgMTEsIAorICAgIDEzOSwgMjIwLCA2MCwgMTAsIDExLCAxMzksIDIxNywgOCwgMTAsIDExLCAxMzksIDIxNiwgMTkzLCAxMCwgMTEsIDEzOSwgCisgICAgMjM0LCAxMzAsIDEwLCAxMSwgMTM5LCAyMTYsIDIwMywgMTAsIDExLCAxMzksIDI0OCwgMjE3LCAxMCwgMTEsIDEzOSwgMjEwLCAKKyAgICAxMTEsIDEwLCAxMSwgMTM5LCAyNDIsIDI0NSwgMTAsIDExLCAyMjYsIDE2OSwgNjYsIDIsIDEyMiwgMiwgMjE3LCA0NCwgMTAsIAorICAgIDExLCAyMjYsIDE2OSwgMTIyLCAyLCAyNDgsIDE5NiwgMjMxLCAyMDYsIDg2LCAyNDUsIDIyMSwgMjExLCAyMzksIDIzMSwgCisgICAgMjA2LCA4NiwgMjE5LCAyOSwgMjExLCAyMzksIDIzMSwgMjA2LCA4NiwgMjEyLCA5LCAyMTEsIDIzOSwgMjMxLCAyMDYsIDg2LCAKKyAgICAyMjgsIDU3LCAyMTEsIDIzOSwgMjMxLCAyMDYsIDg2LCAyMjMsIDExMiwgMjQ2LCA5NywgMjMxLCAyMDYsIDg2LCAyNDIsIAorICAgIDEyOCwgMjQ2LCA5NywgMjMxLCAyMDYsIDg2LCA3MSwgMjQ2LCA5NywgMjMxLCAyMDYsIDg2LCAxMjMsIDY0LCAyNTAsIDE0MiwgCisgICAgMjMxLCAyMDYsIDg2LCAxMTMsIDY0LCAyNTAsIDE0MiwgMjMxLCAyMDYsIDg2LCAxMzQsIDY0LCAyNTAsIDE0MiwgMjMxLCAKKyAgICAyMDYsIDg2LCAyNDQsIDEyLCA2NCwgMjUwLCAxNDIsIDIzMSwgMjA2LCA4NiwgMjQ0LCA4MiwgNjQsIDI1MCwgMTQyLCAyMzEsIAorICAgIDIwNiwgODYsIDIxOSwgMTI2LCA2NCwgMjUwLCAxNDIsIDIzMSwgMjA2LCA4NiwgMjIwLCAxMjMsIDY0LCAyNTAsIDE0MiwgCisgICAgMjMxLCAyMDYsIDg2LCAyNDUsIDE5NCwgNjQsIDI1MCwgMTQyLCAyMzEsIDIwNiwgODYsIDIyOCwgMjAxLCA2NCwgMjUwLCAKKyAgICAxNDIsIDIzMSwgMjA2LCA4NiwgMTIzLCA2NCwgMjUyLCAxNTQsIDIzMSwgMjA2LCA4NiwgMTEzLCA2NCwgMjUyLCAxNTQsIAorICAgIDIzMSwgMjA2LCA4NiwgMTM0LCA2NCwgMjUyLCAxNTQsIDIzMSwgMjA2LCA4NiwgMjQ0LCAxMiwgNjQsIDI1MiwgMTU0LCAKKyAgICAyMzEsIDIwNiwgODYsIDI0NCwgODIsIDY0LCAyNTIsIDE1NCwgMjMxLCAyMDYsIDg2LCAyMTksIDEyNiwgNjQsIDI1MiwgCisgICAgMTU0LCAyMzEsIDIwNiwgODYsIDIyMCwgMTIzLCA2NCwgMjUyLCAxNTQsIDIzMSwgMjA2LCA4NiwgMjQ1LCAxOTQsIDY0LCAKKyAgICAyNTIsIDE1NCwgMjMxLCAyMDYsIDg2LCAyMjgsIDIwMSwgNjQsIDI1MiwgMTU0LCAyMzEsIDIwNiwgODYsIDEyMywgNjQsIAorICAgIDI1MCwgMzUsIDIzMSwgMjA2LCA4NiwgMTEzLCA2NCwgMjUwLCAzNSwgMjMxLCAyMDYsIDg2LCAxMzQsIDY0LCAyNTAsIDM1LCAKKyAgICAyMzEsIDIwNiwgODYsIDI0NCwgMTIsIDY0LCAyNTAsIDM1LCAyMzEsIDIwNiwgODYsIDI0NCwgODIsIDY0LCAyNTAsIDM1LCAKKyAgICAyMzEsIDIwNiwgODYsIDIxOSwgMTI2LCA2NCwgMjUwLCAzNSwgMjMxLCAyMDYsIDg2LCAyMjAsIDEyMywgNjQsIDI1MCwgMzUsIAorICAgIDIzMSwgMjA2LCA4NiwgMjQ1LCAxOTQsIDY0LCAyNTAsIDM1LCAyMzEsIDIwNiwgODYsIDIyOCwgMjAxLCA2NCwgMjUwLCAzNSwgCisgICAgMjMxLCAyMDYsIDg2LCAyMjUsIDI2LCAyMzEsIDIwNiwgODYsIDIyNiwgMTU3LCAyMzEsIDIwNiwgODYsIDI1MiwgMTU1LCAKKyAgICAyMzEsIDIwNiwgODYsIDI1MCwgNzEsIDIzMSwgMjA2LCA4NiwgMjE4LCAyNDAsIDIzMSwgMjA2LCA4NiwgMjE4LCA0MCwgCisgICAgMjMxLCAyMDYsIDg2LCAyNTMsIDE4MCwgMjMxLCAyMDYsIDg2LCAyMTEsIDIzMiwgMjMxLCAyMDYsIDg2LCAyMzUsIDYzLCAKKyAgICAyMzEsIDIwNiwgODYsIDI1MiwgMTg1LCAxMzEsIDg2LCAyMDMsIDI1MiwgMTg1LCAxMzEsIDg2LCAyNDEsIDQ0LCAxMzEsIAorICAgIDg2LCAyNDEsIDQzLCAxMzEsIDg2LCAyNDEsIDQyLCAxMzEsIDg2LCAyNDEsIDQxLCAxMzEsIDg2LCAyNDEsIDQwLCAxMzEsIAorICAgIDg2LCAyNDEsIDM5LCAxMzEsIDg2LCAyNDEsIDM4LCAxMzEsIDg2LCAyNDEsIDM3LCAxMzEsIDg2LCAyNDEsIDM2LCAxMzEsIAorICAgIDg2LCAyNDEsIDM1LCAxMzEsIDg2LCAyNDEsIDM0LCAxMzEsIDg2LCAyNDEsIDMzLCAxMzEsIDg2LCAyNDEsIDMyLCAxMzEsIAorICAgIDg2LCAyNDEsIDMxLCAxMzEsIDg2LCAyNDEsIDMwLCAxMzEsIDg2LCAyNDEsIDI5LCAxMzEsIDg2LCAyNDEsIDI4LCAxMzEsIAorICAgIDg2LCAyNDEsIDI3LCAxMzEsIDg2LCAyNDEsIDI2LCAxMzEsIDg2LCAyNDEsIDI1LCAxMzEsIDg2LCAyNDEsIDI0LCAxMzEsIAorICAgIDg2LCAyNDEsIDIzLCAxMzEsIDg2LCAyNDEsIDIyLCAxMzEsIDg2LCAyNDEsIDIxLCAxMzEsIDg2LCAyNDEsIDIwLCAxMzEsIAorICAgIDg2LCAyNDEsIDE5LCAxMzEsIDg2LCAyNDEsIDE4LCAxMzEsIDg2LCAyNDEsIDE3LCAxMzEsIDg2LCAyNDEsIDE2LCAxMzEsIAorICAgIDg2LCAyNDEsIDE1LCAxMzEsIDg2LCAyNDEsIDE0LCAxMzEsIDg2LCAyNDEsIDEzLCAxMzEsIDg2LCAyNDEsIDEyLCAxMzEsIAorICAgIDg2LCAyNDEsIDExLCAxMzEsIDg2LCAyNDEsIDEwLCAxMzEsIDg2LCAyNDEsIDksIDEzMSwgODYsIDI0MSwgOCwgMTMxLCA4NiwgCisgICAgMjQxLCA3LCAxMzEsIDg2LCAyNDEsIDYsIDEzMSwgODYsIDI0MSwgNSwgMTMxLCA4NiwgMjQxLCA0LCAxMzEsIDg2LCAyNDEsIAorICAgIDMsIDEzMSwgODYsIDI0MSwgMiwgMTMxLCA4NiwgMjQxLCAxLCAxMzEsIDg2LCAyNDEsIDAsIDEzMSwgODYsIDI0MCwgMjU1LCAKKyAgICAxMzEsIDg2LCAyNDAsIDI1NCwgMTMxLCA4NiwgMjQwLCAyNTMsIDEzMSwgODYsIDI0MCwgMjUyLCAxMzEsIDg2LCA2NywgCisgICAgMjUyLCAxODUsIDEzMSwgODYsIDIxMywgMjM4LCAxMzEsIDg2LCAyMTMsIDIzNywgMTMxLCA4NiwgMjEzLCAyMzYsIDEzMSwgCisgICAgODYsIDIxMywgMjM1LCAxMzEsIDg2LCAyMTMsIDIzNCwgMTMxLCA4NiwgMjEzLCAyMzMsIDEzMSwgODYsIDIxMywgMjMyLCAKKyAgICAxMzEsIDg2LCAyMTMsIDIzMSwgMTMxLCA4NiwgMjEzLCAyMzAsIDEzMSwgODYsIDIxMywgMjI5LCAxMzEsIDg2LCAyMTMsIAorICAgIDIyOCwgMTMxLCA4NiwgMjEzLCAyMjcsIDEzMSwgODYsIDIxMywgMjI2LCAxMzEsIDg2LCAyMTMsIDIyNSwgMTMxLCA4NiwgCisgICAgMjEzLCAyMjQsIDEzMSwgODYsIDIxMywgMjIzLCAxMzEsIDg2LCAyMTMsIDIyMiwgMTMxLCA4NiwgMjEzLCAyMjEsIDEzMSwgCisgICAgODYsIDIxMywgMjIwLCAxMzEsIDg2LCAyMTMsIDIxOSwgMTMxLCA4NiwgMjEzLCAyMTgsIDEzMSwgODYsIDIxMywgMjE3LCAKKyAgICAxMzEsIDg2LCAyMTMsIDIxNiwgMTMxLCA4NiwgMjEzLCAyMTUsIDEzMSwgODYsIDIxMywgMjE0LCAxMzEsIDg2LCAyMTMsIAorICAgIDIxMywgMTMxLCA4NiwgMjEzLCAyMTIsIDEzMSwgODYsIDIxMywgMjExLCAxMzEsIDg2LCAyMTMsIDIxMCwgMTMxLCA4NiwgCisgICAgMjEzLCAyMDksIDEzMSwgODYsIDIxMywgMjA4LCAxMzEsIDg2LCAyMTMsIDIwNywgMTMxLCA4NiwgMjEzLCAyMDYsIDEzMSwgCisgICAgODYsIDIxMywgMjA1LCAxMzEsIDg2LCAyMTMsIDIwNCwgMTMxLCA4NiwgMjEzLCAyMDMsIDEzMSwgODYsIDIxMywgMjAyLCAKKyAgICAxMzEsIDg2LCAyMTMsIDIwMSwgMTMxLCA4NiwgMjEzLCAyMDAsIDEzMSwgODYsIDIxMywgMTk5LCAxMzEsIDg2LCAyMTMsIAorICAgIDE5OCwgMTMxLCA4NiwgMjEzLCAxOTcsIDEzMSwgODYsIDIxMywgMTk2LCAxMzEsIDg2LCAyMTMsIDE5NSwgMTMxLCA4NiwgCisgICAgMjEzLCAxOTQsIDEzMSwgODYsIDIxMywgMTkzLCAxMzEsIDg2LCAyMTMsIDE5MiwgMTMxLCA4NiwgMjEzLCAxOTEsIDEzMSwgCisgICAgODYsIDIxMywgMTkwLCAyMjUsIDM0LCAyNTAsIDI0NCwgMjUyLCAxODUsIDIyNSwgMzQsIDI1MCwgMjQ0LCAyNTUsIDEwLCAKKyAgICA2NCwgMjE5LCAxNiwgMjI1LCAzNCwgMjUwLCAyNDQsIDExMywgNjQsIDIxOSwgMTYsIDIyNSwgMzQsIDI1MCwgMjQ0LCAxMzQsIAorICAgIDY0LCAyMTksIDE2LCAyMjUsIDM0LCAyNTAsIDI0NCwgMjQ0LCAxMiwgNjQsIDIxOSwgMTYsIDIyNSwgMzQsIDI1MCwgMjQ0LCAKKyAgICAyNDQsIDgyLCA2NCwgMjE5LCAxNiwgMjI1LCAzNCwgMjUwLCAyNDQsIDIxOSwgMTI2LCA2NCwgMjE5LCAxNiwgMjI1LCAzNCwgCisgICAgMjUwLCAyNDQsIDIyMCwgMTIzLCA2NCwgMjE5LCAxNiwgMjI1LCAzNCwgMjUwLCAyNDQsIDI0NSwgMTk0LCA2NCwgMjE5LCAKKyAgICAxNiwgMjI1LCAzNCwgMjUwLCAyNDQsIDIyOCwgMjAxLCA2NCwgMjE5LCAxNiwgMjI1LCAzNCwgMjUwLCAyNDQsIDIxNiwgCisgICAgMjQ5LCA2NCwgMjE5LCAxNiwgMjI1LCAzNCwgMjUwLCAyNDQsIDIzNSwgMTQwLCA2NCwgMjE5LCAxNiwgMjI1LCAzNCwgMjUwLCAKKyAgICAyNDQsIDIzNCwgMzIsIDY0LCAyMTksIDE2LCAyMjUsIDM0LCAyNTAsIDI0NCwgMjI0LCAxNiwgNjQsIDIxOSwgMTYsIDIyNSwgCisgICAgMzQsIDI1MCwgMjQ0LCAyMzQsIDgwLCA2NCwgMjE5LCAxNiwgMjI1LCAzNCwgMjUwLCAyNDQsIDI1NSwgMTAsIDY0LCAyNDEsIAorICAgIDIyNiwgMjI1LCAzNCwgMjUwLCAyNDQsIDExMywgNjQsIDI0MSwgMjI2LCAyMjUsIDM0LCAyNTAsIDI0NCwgMTM0LCA2NCwgCisgICAgMjQxLCAyMjYsIDIyNSwgMzQsIDI1MCwgMjQ0LCAyNDQsIDEyLCA2NCwgMjQxLCAyMjYsIDIyNSwgMzQsIDI1MCwgMjQ0LCAKKyAgICAyNDQsIDgyLCA2NCwgMjQxLCAyMjYsIDIyNSwgMzQsIDI1MCwgMjQ0LCAyMTksIDEyNiwgNjQsIDI0MSwgMjI2LCAyMjUsIAorICAgIDM0LCAyNTAsIDI0NCwgMjIwLCAxMjMsIDY0LCAyNDEsIDIyNiwgMjI1LCAzNCwgMjUwLCAyNDQsIDI0NSwgMTk0LCA2NCwgCisgICAgMjQxLCAyMjYsIDIyNSwgMzQsIDI1MCwgMjQ0LCAyMjgsIDIwMSwgNjQsIDI0MSwgMjI2LCAyMjUsIDM0LCAyNTAsIDI0NCwgCisgICAgMjE2LCAyNDksIDY0LCAyNDEsIDIyNiwgMjI1LCAzNCwgMjUwLCAyNDQsIDIzNSwgMTQwLCA2NCwgMjQxLCAyMjYsIDIyNSwgCisgICAgMzQsIDI1MCwgMjQ0LCAyMzQsIDMyLCA2NCwgMjQxLCAyMjYsIDIyNSwgMzQsIDI1MCwgMjQ0LCAyMjQsIDE2LCA2NCwgMjQxLCAKKyAgICAyMjYsIDIyNSwgMzQsIDI1MCwgMjQ0LCAyMzQsIDgwLCA2NCwgMjQxLCAyMjYsIDIyNSwgMzQsIDI1MCwgMjQ0LCAyNTUsIAorICAgIDEwLCA2NCwgMjQ3LCAyNDgsIDIyNSwgMzQsIDI1MCwgMjQ0LCAxMTMsIDY0LCAyNDcsIDI0OCwgMjI1LCAzNCwgMjUwLCAKKyAgICAyNDQsIDEzNCwgNjQsIDI0NywgMjQ4LCAyMjUsIDM0LCAyNTAsIDI0NCwgMjQ0LCAxMiwgNjQsIDI0NywgMjQ4LCAyMjUsIAorICAgIDM0LCAyNTAsIDI0NCwgMjQ0LCA4MiwgNjQsIDI0NywgMjQ4LCAyMjUsIDM0LCAyNTAsIDI0NCwgMjE5LCAxMjYsIDY0LCAKKyAgICAyNDcsIDI0OCwgMjI1LCAzNCwgMjUwLCAyNDQsIDIyMCwgMTIzLCA2NCwgMjQ3LCAyNDgsIDIyNSwgMzQsIDI1MCwgMjQ0LCAKKyAgICAyNDUsIDE5NCwgNjQsIDI0NywgMjQ4LCAyMjUsIDM0LCAyNTAsIDI0NCwgMjI4LCAyMDEsIDY0LCAyNDcsIDI0OCwgMjI1LCAKKyAgICAzNCwgMjUwLCAyNDQsIDIxNiwgMjQ5LCA2NCwgMjQ3LCAyNDgsIDIyNSwgMzQsIDI1MCwgMjQ0LCAyMzUsIDE0MCwgNjQsIAorICAgIDI0NywgMjQ4LCAyMjUsIDM0LCAyNTAsIDI0NCwgMjM0LCAzMiwgNjQsIDI0NywgMjQ4LCAyMjUsIDM0LCAyNTAsIDI0NCwgCisgICAgMjI0LCAxNiwgNjQsIDI0NywgMjQ4LCAyMjUsIDM0LCAyNTAsIDI0NCwgMjM0LCA4MCwgNjQsIDI0NywgMjQ4LCAyMjUsIDM0LCAKKyAgICAyNTAsIDI0NCwgODUsIDIzNSwgNjMsIDIyNSwgMzQsIDI1MCwgMjQ0LCAyNTUsIDEwLCA2NCwgMjQ5LCAyNDMsIDIyNSwgMzQsIAorICAgIDI1MCwgMjQ0LCAxMTMsIDY0LCAyNDksIDI0MywgMjI1LCAzNCwgMjUwLCAyNDQsIDEzNCwgNjQsIDI0OSwgMjQzLCAyMjUsIAorICAgIDM0LCAyNTAsIDI0NCwgMjQ0LCAxMiwgNjQsIDI0OSwgMjQzLCAyMjUsIDM0LCAyNTAsIDI0NCwgMjQ0LCA4MiwgNjQsIDI0OSwgCisgICAgMjQzLCAyMjUsIDM0LCAyNTAsIDI0NCwgMjE5LCAxMjYsIDY0LCAyNDksIDI0MywgMjI1LCAzNCwgMjUwLCAyNDQsIDIyMCwgCisgICAgMTIzLCA2NCwgMjQ5LCAyNDMsIDIyNSwgMzQsIDI1MCwgMjQ0LCAyNDUsIDE5NCwgNjQsIDI0OSwgMjQzLCAyMjUsIDM0LCAKKyAgICAyNTAsIDI0NCwgMjI4LCAyMDEsIDY0LCAyNDksIDI0MywgMjI1LCAzNCwgMjUwLCAyNDQsIDIxNiwgMjQ5LCA2NCwgMjQ5LCAKKyAgICAyNDMsIDIyNSwgMzQsIDI1MCwgMjQ0LCAyMzUsIDE0MCwgNjQsIDI0OSwgMjQzLCAyMjUsIDM0LCAyNTAsIDI0NCwgMjM0LCAKKyAgICAzMiwgNjQsIDI0OSwgMjQzLCAyMjUsIDM0LCAyNTAsIDI0NCwgMjI0LCAxNiwgNjQsIDI0OSwgMjQzLCAyMjUsIDM0LCAyNTAsIAorICAgIDI0NCwgMjM0LCA4MCwgNjQsIDI0OSwgMjQzLCAyMjUsIDM0LCAyNTAsIDI0NCwgNzEsIDIzNSwgNjMsIDIxLCAyMTAsIDg3LCAKKyAgICAyNDMsIDIzMCwgMjE4LCAxMzAsIDIxLCAyMTAsIDg3LCAyNDksIDIyMCwgMjEsIDEyMywgMjQ5LCAyMjAsIDIxLCAxMTMsIAorICAgIDI0OSwgMjIwLCAyMSwgMTM0LCAyNDksIDIyMCwgMjEsIDI0NCwgMTIsIDI0OSwgMjIwLCAyMSwgMjQ0LCA4MiwgMjQ5LCAKKyAgICAyMjAsIDIxLCAyMTksIDEyNiwgMjQ5LCAyMjAsIDIxLCAyMjAsIDEyMywgMjQ5LCAyMjAsIDIxLCAyNDUsIDE5NCwgMjQ5LCAKKyAgICAyMjAsIDIxLCAyMjgsIDIwMSwgMjQ5LCAyMjAsIDg4LCA3LCA2LCAxLCA2MSwgODgsIDcsIDYsIDEsIDI1MywgMTU5LCA4OCwgCisgICAgNywgNiwgMSwgMjUxLCA2NywgODgsIDcsIDYsIDEsIDI0OSwgNjEsIDg4LCA3LCA2LCAxLCA3NSwgODgsIDcsIDYsIDEsIAorICAgIDI0NSwgNywgODgsIDcsIDYsIDEsIDI0MywgMjAzLCA4OCwgNywgNiwgMSwgMjQyLCA2MSwgODgsIDcsIDYsIDEsIDczLCA4OCwgCisgICAgNywgNiwgMSwgMjM1LCAxNDUsIDg4LCA3LCA2LCAxLCAyMzUsIDI0LCA4OCwgNywgNiwgMSwgMTU2LCA4OCwgNywgNiwgMSwgCisgICAgMTkzLCA4OCwgNywgNiwgMSwgMjMwLCAyNiwgODgsIDcsIDYsIDEsIDc2LCA4OCwgNywgNiwgMSwgMjI2LCAxMDYsIDg4LCA3LCAKKyAgICA2LCAxLCAyMjQsIDk3LCA4OCwgNywgNiwgMSwgMTUzLCA4OCwgNywgNiwgMSwgMjIyLCA5MiwgODgsIDcsIDYsIDEsIDIxNywgCisgICAgMTUzLCA4OCwgNywgNiwgMSwgNzAsIDg4LCA3LCA2LCAxLCAyMTQsIDEwNSwgODgsIDcsIDYsIDEsIDIxMiwgOTgsIDg4LCA3LCAKKyAgICA2LCAxLCAyMTEsIDE3OCwgODgsIDcsIDYsIDEsIDIxMSwgMTE3LCA4OCwgNywgNiwgMSwgMjEwLCAxNTksIDIxNiwgNywgCisgICAgMjIwLCA1NCwgMjUxLCAxNTgsIDcsIDYsIDEsIDIyMiwgOTIsIDM3LCAzMiwgNywgNiwgMSwgMjUxLCA2NywgMzcsIDMyLCA3LCAKKyAgICA2LCAxLCAxNTMsIDM3LCAyNTAsIDE5MiwgMzcsIDIxMSwgMTgwLCA5MiwgNywgNiwgMSwgNjEsIDkyLCA3LCA2LCAxLCAyNTMsIAorICAgIDE1OSwgOTIsIDcsIDYsIDEsIDI1MSwgNjcsIDkyLCA3LCA2LCAxLCAyNDksIDYxLCA5MiwgNywgNiwgMSwgNzUsIDkyLCA3LCAKKyAgICA2LCAxLCAyNDUsIDcsIDkyLCA3LCA2LCAxLCAyNDMsIDIwMywgOTIsIDcsIDYsIDEsIDI0MiwgNjEsIDkyLCA3LCA2LCAxLCAKKyAgICA3MywgOTIsIDcsIDYsIDEsIDIzNSwgMTQ1LCA5MiwgNywgNiwgMSwgMjM1LCAyNCwgOTIsIDcsIDYsIDEsIDE1NiwgOTIsIDcsIAorICAgIDYsIDEsIDE5MywgOTIsIDcsIDYsIDEsIDIzMCwgMjYsIDkyLCA3LCA2LCAxLCA3NiwgOTIsIDcsIDYsIDEsIDIyNiwgMTA2LCAKKyAgICA5MiwgNywgNiwgMSwgMjI0LCA5NywgOTIsIDcsIDYsIDEsIDE1MywgOTIsIDcsIDYsIDEsIDIyMiwgOTIsIDkyLCA3LCA2LCAKKyAgICAxLCAyMTcsIDE1MywgOTIsIDcsIDYsIDEsIDcwLCA5MiwgNywgNiwgMSwgMjE0LCAxMDUsIDkyLCA3LCA2LCAxLCAyMTIsIAorICAgIDk4LCA5MiwgNywgNiwgMSwgMjExLCAxNzgsIDkyLCA3LCA2LCAxLCAyMTEsIDExNywgOTIsIDcsIDYsIDEsIDIxMCwgMTU5LCAKKyAgICA5MiwgMjQwLCAyMDIsIDkyLCAyMzAsIDUwLCA5MiwgMjIxLCAxODQsIDkyLCAyMTgsIDIyNywgOTIsIDIyNCwgMjE5LCA5MiwgCisgICAgMjEyLCAyMywgMTUyLCAzNywgNywgNiwgMSwgNjEsIDE1MiwgMzcsIDcsIDYsIDEsIDI1MywgMTU5LCAxNTIsIDM3LCA3LCA2LCAKKyAgICAxLCAyNTEsIDY3LCAxNTIsIDM3LCA3LCA2LCAxLCAyNDksIDYxLCAxNTIsIDM3LCA3LCA2LCAxLCA3NSwgMTUyLCAzNywgNywgCisgICAgNiwgMSwgMjQ1LCA3LCAxNTIsIDM3LCA3LCA2LCAxLCAyNDMsIDIwMywgMTUyLCAzNywgNywgNiwgMSwgMjQyLCA2MSwgMTUyLCAKKyAgICAzNywgNywgNiwgMSwgNzMsIDE1MiwgMzcsIDcsIDYsIDEsIDIzNSwgMTQ1LCAxNTIsIDM3LCA3LCA2LCAxLCAyMzUsIDI0LCAKKyAgICAxNTIsIDM3LCA3LCA2LCAxLCAxNTYsIDE1MiwgMzcsIDcsIDYsIDEsIDE5MywgMTUyLCAzNywgNywgNiwgMSwgMjMwLCAyNiwgCisgICAgMTUyLCAzNywgNywgNiwgMSwgNzYsIDE1MiwgMzcsIDcsIDYsIDEsIDIyNiwgMTA2LCAxNTIsIDM3LCA3LCA2LCAxLCAyMjQsIAorICAgIDk3LCAxNTIsIDM3LCA3LCA2LCAxLCAxNTMsIDE1MiwgMzcsIDcsIDYsIDEsIDIyMiwgOTIsIDE1MiwgMzcsIDcsIDYsIDEsIAorICAgIDIxNywgMTUzLCAxNTIsIDM3LCA3LCA2LCAxLCA3MCwgMTUyLCAzNywgNywgNiwgMSwgMjE0LCAxMDUsIDE1MiwgMzcsIDcsIAorICAgIDYsIDEsIDIxMiwgOTgsIDE1MiwgMzcsIDcsIDYsIDEsIDIxMSwgMTc4LCAxNTIsIDM3LCA3LCA2LCAxLCAyMTEsIDExNywgCisgICAgMTUyLCAzNywgNywgNiwgMSwgMjEwLCAxNTksIDIyMywgMTU4LCAyMzEsIDk4LCA1MCwgMjIzLCAxNTgsIDIzMSwgOTUsIDUwLCAKKyAgICAxNTIsIDkyLCA3LCA2LCAxLCA2MSwgMTUyLCA5MiwgNywgNiwgMSwgMjUzLCAxNTksIDE1MiwgOTIsIDcsIDYsIDEsIDI1MSwgCisgICAgNjcsIDE1MiwgOTIsIDcsIDYsIDEsIDI0OSwgNjEsIDE1MiwgOTIsIDcsIDYsIDEsIDc1LCAxNTIsIDkyLCA3LCA2LCAxLCAKKyAgICAyNDUsIDcsIDE1MiwgOTIsIDcsIDYsIDEsIDI0MywgMjAzLCAxNTIsIDkyLCA3LCA2LCAxLCAyNDIsIDYxLCAxNTIsIDkyLCAKKyAgICA3LCA2LCAxLCA3MywgMTUyLCA5MiwgNywgNiwgMSwgMjM1LCAxNDUsIDE1MiwgOTIsIDcsIDYsIDEsIDIzNSwgMjQsIDE1MiwgCisgICAgOTIsIDcsIDYsIDEsIDE1NiwgMTUyLCA5MiwgNywgNiwgMSwgMTkzLCAxNTIsIDkyLCA3LCA2LCAxLCAyMzAsIDI2LCAxNTIsIAorICAgIDkyLCA3LCA2LCAxLCA3NiwgMTUyLCA5MiwgNywgNiwgMSwgMjI2LCAxMDYsIDE1MiwgOTIsIDcsIDYsIDEsIDIyNCwgOTcsIAorICAgIDE1MiwgOTIsIDcsIDYsIDEsIDE1MywgMTUyLCA5MiwgNywgNiwgMSwgMjIyLCA5MiwgMTUyLCA5MiwgNywgNiwgMSwgMjE3LCAKKyAgICAxNTMsIDE1MiwgOTIsIDcsIDYsIDEsIDcwLCAxNTIsIDkyLCA3LCA2LCAxLCAyMTQsIDEwNSwgMTUyLCA5MiwgNywgNiwgMSwgCisgICAgMjEyLCA5OCwgMTUyLCA5MiwgNywgNiwgMSwgMjExLCAxNzgsIDE1MiwgOTIsIDcsIDYsIDEsIDIxMSwgMTE3LCAxNTIsIDkyLCAKKyAgICA3LCA2LCAxLCAyMTAsIDE1OSwgMjQ5LCAxMjksIDE1MiwgOTIsIDcsIDYsIDEsIDIyNiwgMTA2LCAxNTIsIDkyLCAyNDAsIAorICAgIDExNCwgMTUyLCA5MiwgMTkwLCAxNTIsIDkyLCAyMDYsIDE1MiwgOTIsIDI1NSwgMjYsIDE1MiwgOTIsIDIxMiwgMjMsIDQyLCAKKyAgICAyNDcsIDE2NSwgOTIsIDI1MCwgMjQsIDkyLCAyNDksIDE3MSwgOTIsIDI0MywgMjUzLCA5MiwgMjQwLCAxMDYsIDkyLCAyMjksIAorICAgIDg3LCA5MiwgMjI5LCA4MCwgOTIsIDIyNiwgMjE1LCA5MiwgMjE5LCAzNiwgOTIsIDEyMCwgMiwgMjQ1LCAzMiwgNzgsIDkyLCAKKyAgICAyMTMsIDExOSwgMjIzLCAxMDQsIDIzNSwgMjQwLCAxNiwgMSwgNjEsIDIyMywgMTA0LCAyMzUsIDI0MCwgMTYsIDEsIDI1MywgCisgICAgMTU5LCAyMjMsIDEwNCwgMjM1LCAyNDAsIDE2LCAxLCAyNTEsIDY3LCAyMjMsIDEwNCwgMjM1LCAyNDAsIDE2LCAxLCAyNDksIAorICAgIDYxLCAyMjMsIDEwNCwgMjM1LCAyNDAsIDE2LCAxLCA3NSwgMjIzLCAxMDQsIDIzNSwgMjQwLCAxNiwgMSwgMjQ1LCA3LCAKKyAgICAyMjMsIDEwNCwgMjM1LCAyNDAsIDE2LCAxLCAyNDMsIDIwMywgMjIzLCAxMDQsIDIzNSwgMjQwLCAxNiwgMSwgMjQyLCA2MSwgCisgICAgMjIzLCAxMDQsIDIzNSwgMjQwLCAxNiwgMSwgNzMsIDIyMywgMTA0LCAyMzUsIDI0MCwgMTYsIDEsIDIzNSwgMTQ1LCAyMjMsIAorICAgIDEwNCwgMjM1LCAyNDAsIDE2LCAxLCAyMzUsIDI0LCAyMjMsIDEwNCwgMjM1LCAyNDAsIDE2LCAxLCAxNTYsIDIyMywgMTA0LCAKKyAgICAyMzUsIDI0MCwgMTYsIDEsIDE5MywgMjIzLCAxMDQsIDIzNSwgMjQwLCAxNiwgMSwgMjMwLCAyNiwgMjIzLCAxMDQsIDIzNSwgCisgICAgMjQwLCAxNiwgMSwgNzYsIDIyMywgMTA0LCAyMzUsIDI0MCwgMTYsIDEsIDIyNiwgMTA2LCAyMjMsIDEwNCwgMjM1LCAyNDAsIAorICAgIDE2LCAxLCAyMjQsIDk3LCAyMjMsIDEwNCwgMjM1LCAyNDAsIDE2LCAxLCAxNTMsIDIyMywgMTA0LCAyMzUsIDI0MCwgMTYsIAorICAgIDEsIDIyMiwgOTIsIDIyMywgMTA0LCAyMzUsIDI0MCwgMTYsIDEsIDIxNywgMTUzLCAyMjMsIDEwNCwgMjM1LCAyNDAsIDE2LCAKKyAgICAxLCA3MCwgMjIzLCAxMDQsIDIzNSwgMjQwLCAxNiwgMSwgMjE0LCAxMDUsIDIyMywgMTA0LCAyMzUsIDI0MCwgMTYsIDEsIAorICAgIDIxMiwgOTgsIDIyMywgMTA0LCAyMzUsIDI0MCwgMTYsIDEsIDIxMSwgMTc4LCAyMjMsIDEwNCwgMjM1LCAyNDAsIDE2LCAxLCAKKyAgICAyMTEsIDExNywgMjIzLCAxMDQsIDIzNSwgMjQwLCAxNiwgMSwgMjEwLCAxNTksIDQyLCAxNDEsIDI0MSwgNjQsIDkyLCA1NiwgCisgICAgMjM0LCAxOSwgOTIsIDU2LCAyMDYsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA1MSwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDU1LCAKKyAgICA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNjMsIDkyLCA1NiwgMjQ4LCA5MSwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDcwLCA5MiwgCisgICAgOSwgMjE0LCAxNzcsIDIzOCwgNTcsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCAyOSwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDU2LCAKKyAgICA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNjksIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA0MywgOTIsIDksIDIxNCwgMTc3LCAyMzgsIAorICAgIDM2LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNDUsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA2NiwgOTIsIDksIDIxNCwgMTc3LCAKKyAgICAyMzgsIDUyLCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNjgsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA0NCwgOTIsIDksIDIxNCwgCisgICAgMTc3LCAyMzgsIDY3LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgMzAsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCAzNSwgOTIsIDksIAorICAgIDIxNCwgMTc3LCAyMzgsIDI4LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNTgsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA2MCwgCisgICAgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDM4LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNDksIDkyLCA5LCAyMTQsIDE3NywgMjM4LCAKKyAgICA0NywgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDczLCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNzIsIDkyLCA5LCAyMTQsIDE3NywgCisgICAgMjM4LCAyNiwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDUzLCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNzEsIDkyLCA5LCAyMTQsIAorICAgIDE3NywgMjM4LCA2MiwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDQ4LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgMjcsIDkyLCA5LCAKKyAgICAyMTQsIDE3NywgMjM4LCA1MCwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDMyLCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgMzEsIAorICAgIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA2MSwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDM5LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgCisgICAgNDEsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA0MiwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDM0LCA5MiwgOSwgMjE0LCAxNzcsIAorICAgIDIzOCwgNjUsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA1OSwgMjE2LCA3LCAyMjAsIDU0LCAyNTEsIDE1OCwgOSwgMjE0LCAKKyAgICAxNzcsIDIzOCwgNDAsIDIxNiwgNywgMjIwLCA1NCwgMjUxLCAxNTgsIDksIDIxNCwgMTc3LCAyMzgsIDcyLCAyMTYsIDcsIAorICAgIDIyMCwgNTQsIDI1MSwgMTU4LCA5LCAyMTQsIDE3NywgMjM4LCA3MCwgMjE2LCA3LCAyMjAsIDU0LCAyNTEsIDE1OCwgOSwgCisgICAgMjE0LCAxNzcsIDIzOCwgNTQsIDIxNiwgNywgMjIwLCA1NCwgMjUxLCAxNTgsIDksIDIxNCwgMTc3LCAyMzgsIDM3LCAyMTYsIAorICAgIDcsIDIyMCwgNTQsIDI1MSwgMTU4LCA5LCAyMTQsIDE3NywgMjM4LCA1MCwgMjE2LCA3LCAyMjAsIDU0LCAyNTEsIDE1OCwgOSwgCisgICAgMjE0LCAxNzcsIDIzOCwgMzMsIDIxNiwgNywgMjIwLCA1NCwgMjUxLCAxNTgsIDksIDIxNCwgMTc3LCAyMzgsIDY0LCAyMTYsIAorICAgIDcsIDIyMCwgNTQsIDI1MSwgMTU4LCA5LCAyMTQsIDE3NywgMjM4LCA0NiwgMzcsIDE1NCwgMjU0LCAyNDYsIDM3LCAxNTQsIAorICAgIDI1NSwgMTMsIDI0OSwgNzIsIDI0NCwgNDMsIDI1MCwgMSwgMjE0LCAxOTQsIDIyOCwgMjE0LCAyLCAyMTgsIDE1NCwgMjE4LCAKKyAgICAzNCwgMTE3LCAyMzAsIDExNSwgMjE4LCAzMywgMjUwLCAyNywgMjUzLCAyMDgsIDI0NiwgNTUsIDIxOCwgMzIsIDExNywgCisgICAgMjUxLCAxMTksIDIyMywgMTU5LCAyNTEsIDE0MSwgMjUzLCAyMDgsIDIyOCwgMjEzLCAyMTIsIDQxLCAyMTIsIDM1LCAyMTMsIAorICAgIDEzMSwgMjMwLCAxOTYsIDIxMiwgMjUsIDI0NSwgMjI1LCAyNDIsIDE4MiwgMjQ1LCA0NiwgMjQ1LCAyMjUsIDI0MiwgMTgyLCAKKyAgICAyNTQsIDEyOSwgMjQ1LCAyMjUsIDI0MiwgMTgyLCAyNTMsIDIyNiwgMjQyLCAxODIsIDIsIDIzMSwgNTIsIDE2NiwgMjMwLCAKKyAgICAxMzAsIDg3LCAyMTIsIDI3LCAyNDksIDEzOCwgMjMwLCAxMzAsIDg3LCAyNDQsIDkzLCAyMjQsIDIzLCAyMzAsIDEzMCwgODcsIAorICAgIDIxMiwgMjcsIDI0MiwgMjExLCAyMzAsIDEzMCwgODcsIDI0MywgMjMwLCAyMzAsIDEzMCwgODcsIDIxMiwgNTIsIDI0MiwgCisgICAgMjExLCAyMzAsIDEzMCwgODcsIDIzMywgODEsIDIyNCwgMjMsIDIzMCwgMTMwLCA4NywgMjEyLCA1MiwgMjQ5LCAxMzgsIAorICAgIDIzMCwgMTMwLCA4NywgMjQ5LCAxMzgsIDIzMCwgMTI5LCAxNjYsIDIzMCwgMTMwLCAyLCAyNDQsIDE5MSwgMjQ0LCA5MywgCisgICAgMjI0LCAyMywgMjMwLCAxMzAsIDIsIDI0NCwgMTkxLCAyMzMsIDgxLCAyMjQsIDIzLCAyMzAsIDEzMCwgMiwgMjQ0LCAxOTEsIAorICAgIDI0MywgMjMwLCAyMzAsIDEzMCwgMiwgMjQ0LCAxOTEsIDIxOCwgMzksIDIsIDI0NCwgMTkxLCAyNDIsIDE4MCwgMjE4LCAKKyAgICAxNTcsIDIyMCwgMCwgMjE4LCAxNTcsIDI1MCwgMTE3LCAyMjEsIDE2OSwgMjQ1LCA0MCwgMjE1LCAyMzYsIDI0OCwgODUsIAorICAgIDIxNSwgMjM2LCAyMjYsIDYwLCAyMTUsIDIzNiwgMjUxLCAyOCwgMjE1LCAxMTAsIDI1MCwgMTE5LCAyNTEsIDIxMSwgMjIyLCAKKyAgICAxOTIsIDI0MSwgMTgwLCAyMTgsIDM3LCAyNTEsIDIxMSwgMjQ1LCAyMjksIDY0LCAyMzEsIDE5NSwgMjQ1LCAyMjksIDY0LCAKKyAgICAyMjMsIDMyLCAyNDEsIDIwNSwgMjQ0LCAxMiwgMjMzLCA1NSwgMjQ5LCAyNDcsIDIzMSwgMTcxLCAyMzMsIDU0LCAyNDQsIAorICAgIDE3NywgMjMzLCA1NCwgMjMzLCA1NSwgMjQ0LCA0OCwgMjM2LCAxLCAyMTEsIDIzOSwgMjMwLCA1OSwgMjE2LCAzNSwgMjUzLCAKKyAgICAxOTIsIDI0MiwgMTQ0LCAyMzEsIDY4LCAyMTIsIDM5LCAyMTcsIDU4LCAyMzMsIDI3LCAyNTIsIDE1MCwgMjI1LCA2MywgCisgICAgMjIzLCAxMTIsIDI1NCwgNTUsIDI0MiwgMTI4LCAyNTQsIDU1LCAyMjUsIDIxOCwgMjI1LCAyMTksIDI1MCwgMTIwLCAyMTgsIAorICAgIDExNSwgMjQyLCAyNCwgMjE5LCA5MSwgNjQsIDIyNSwgNDUsIDIzMSwgODgsIDIyNiwgMTk4LCAyNTEsIDE5NSwgMjI0LCAKKyAgICAyMzAsIDIzMywgMzcsIDIyMywgMzMsIDI0OSwgMTQzLCAyMjMsIDMzLCAyNTIsIDE2MCwgMjQ5LCAxNzQsIDIyMywgMzIsIAorICAgIDI0OSwgOTYsIDIyLCAyMjMsIDMyLCAyMTgsIDE0MiwgMjUxLCAxNjgsIDIxOSwgMTUsIDI1MSwgMTUyLCAyNDMsIDI1MiwgCisgICAgMjQzLCAyNDgsIDIyMiwgMjA4LCAyMTcsIDI0NywgMjI0LCAyMzIsIDI0OCwgMTc2LCAyMjYsIDIzNywgMjE4LCA4LCAyNDMsIAorICAgIDI0OSwgMjE5LCAyMzEsIDI0NCwgOTIsIDI1MSwgMjIsIDIsIDIxNywgMjQwLCAyNDgsIDM2LCAyMTksIDUzLCAyNDAsIDExMywgCisgICAgMjQ5LCAxNDIsIDIyMCwgNzEsIDI0MCwgMTEyLCAyNDAsIDExMywgMjQ5LCAxNDIsIDI0NiwgMTA5LCAyNDksIDE3MywgMjUwLCAKKyAgICA4NSwgMTMwLCAyNTAsIDI1NSwgMjMyLCAxNDIsIDI0OSwgODksIDI0MSwgNTYsIDIyNCwgMjM0LCAyMTksIDI0MSwgMjUyLCAKKyAgICAzNywgMjUxLCAxNjQsIDIyNCwgMjM1LCA2NCwgMjQ0LCAzNCwgMjQ5LCAxNzIsIDI0NCwgMjUsIDIyLCAyMzQsIDMzLCAyMTcsIAorICAgIDIwLCAyMTEsIDIzMCwgMjQyLCAxNCwgMjIyLCAxMywgMjUxLCAxNzgsIDIyLCAyNDksIDEwMywgMjExLCAyMzcsIDI0MiwgCisgICAgMTg1LCAyNDksIDIzNiwgMjQyLCAxODUsIDIxNSwgMTk0LCAyNDYsIDkxLCAyNTIsIDYzLCAyMzAsIDk0LCAyNTAsIDgsIAorICAgIDI1MiwgNjMsIDIzMCwgOTMsIDI1MiwgMTg4LCAyNTEsIDE3NywgMjIzLCAzNCwgMjExLCAyMDEsIDIyNCwgMTk2LCAyNTEsIAorICAgIDIzNiwgMjUxLCAyMSwgMjM1LCAxMzksIDI1MCwgNzgsIDIxNSwgMjM2LCAyNDQsIDE2MywgMjUwLCA3NywgMjQ0LCA5NSwgCisgICAgMjQ0LCA5NiwgMjE5LCAxMywgMjUyLCAxNTksIDIyNSwgMjUxLCAyMjQsIDI0NSwgMjQ5LCAyMDUsIDI1MiwgMTYwLCAyMTcsIAorICAgIDYwLCAyMTUsIDIzNiwgMjQ5LCAxMjksIDI0NCwgNjgsIDIyNSwgNjQsIDI0OCwgODIsIDIzNSwgMTMyLCAyNDcsIDEzMiwgCisgICAgMjUwLCAyMzMsIDIxOCwgMTE0LCAyMTEsIDI0MCwgMjUwLCA5OSwgMjMwLCAxMzAsIDIxMywgMTY0LCAyNTAsIDE2MywgMjIxLCAKKyAgICAyMDAsIDIyMSwgMjI1LCAyNDIsIDE0OSwgMjUwLCAyNTIsIDI1MCwgMjM0LCAyNDAsIDI0NiwgMjQ0LCAxMzEsIDIxMiwgMCwgCisgICAgMjIyLCAyMDEsIDI0OSwgMjM3LCAyNDQsIDg3LCAyMjUsIDMsIDIyLCAyNDQsIDkxLCAyMzAsIDIyOCwgMjMwLCAxMDksIAorICAgIDI1MSwgMTEsIDI1MCwgNDAsIDI0MSwgMjMzLCAyNTMsIDI0MiwgMjI2LCA2MywgMjE2LCAxNSwgMjQxLCAyNTIsIDI1MCwgCisgICAgMzAsIDIxNiwgMjQzLCAyMTYsIDExNCwgMjUwLCAyMSwgMjUxLCAyMDMsIDIyNSwgMTc4LCAyNTMsIDI0MSwgMjEzLCAxNzIsIAorICAgIDI0MywgMTExLCAyNDcsIDE5OCwgMjQxLCAxNTcsIDIxOSwgODUsIDIzMSwgMjM1LCAyNTEsIDI0NiwgMjQzLCAxMTIsIDI0NywgCisgICAgMjQxLCAyNTEsIDE2NywgMjQ0LCA1MywgMjI1LCAzNCwgMjUwLCAyNDIsIDI4LCAyMjgsIDQ4LCAyMzAsIDg2LCAyOCwgMjI4LCAKKyAgICA0MywgMjIxLCAyMTMsIDI0MiwgMTAwLCAyOCwgMjM0LCAxMzgsIDIxNSwgMTkxLCAyMTMsIDE1NCwgMjgsIDIyMSwgMTkzLCAKKyAgICAyMjIsIDEyNSwgMjIwLCAxMiwgMiwgMjIxLCAyMjgsIDIxNiwgMjQ1LCAyMjMsIDE3OSwgMjIsIDI1MiwgMTYwLCAyMTksIAorICAgIDEwNiwgMjIsIDIxOSwgMTA2LCAyNTEsIDE4OCwgMjUyLCAxMjQsIDIyLCAyNDEsIDUwLCAyNTAsIDEyMSwgMjQ0LCA3NCwgCisgICAgMjE5LCA2NCwgMjIyLCAxMjYsIDIxOCwgMTMsIDIxNSwgMTk1LCAyNDAsIDI0NywgMjIzLCAxODAsIDI1NCwgMTMwLCAyNDQsIAorICAgIDMyLCAyMjIsIDEzNywgMjQ0LCAzMiwgMjE3LCAyNDIsIDI0MCwgMjM2LCAyNTEsIDEyMCwgMjQwLCAyMzYsIDIsIDI0MywgCisgICAgOTUsIDIyNiwgMjMwLCAyNTEsIDEyMCwgMjM1LCAxMzIsIDIyNCwgMjQwLCAyMjYsIDIyOSwgMjQ1LCA0NSwgMjI0LCAyNDAsIAorICAgIDIyNiwgMjI5LCAyNDAsIDI0NSwgMjUyLCAxNDYsIDI1MywgMTgyLCAyMTYsIDI1MywgMjMxLCAyMzUsIDI0MCwgMjQxLCAKKyAgICAyMzIsIDExMiwgMjQwLCAyNDEsIDI0OSwgMTc3LCAyMTgsIDEyNiwgMjIxLCAxOTksIDI0OCwgNDQsIDIxOCwgMTI2LCAyNDQsIAorICAgIDE4MSwgMjM1LCAxNTAsIDIzMywgOTAsIDIzNSwgMTMyLCAyNTAsIDIyNywgMjQ1LCA0NSwgMjUwLCAyMjcsIDIyMywgMTQyLCAKKyAgICAyMzAsIDExMywgMjI2LCAxMTUsIDIxMiwgNDEsIDI1MSwgMTI0LCAyNDksIDE0NiwgMjE2LCAxMDcsIDIzMywgMTksIDIyMywgCisgICAgMTgxLCAyNTAsIDIyNSwgMjQ2LCA5NywgMjQ5LCAxMzYsIDIxMiwgMywgMjE5LCA3MSwgMjE5LCA2OSwgMjQwLCAyNDYsIAorICAgIDIyMywgMTU0LCAyNDIsIDE3MSwgMjIwLCA1OCwgMjMwLCAxNDYsIDIyMiwgMTk1LCAyNTAsIDEwOSwgMjQ3LCAxMzcsIDIyNSwgCisgICAgNzQsIDI1MSwgMjA0LCAyNDUsIDE3MCwgMjI2LCAyMzksIDIxOCwgMjUzLCAyMjAsIDUzLCAyNTEsIDEyMywgMjU0LCA5MywgCisgICAgMjQxLCA1NSwgMjMzLCAxMjIsIDI1MiwgNjEsIDI0NCwgOTEsIDIxNSwgMTk0LCAyNDQsIDkxLCAyNTEsIDIxMCwgMjE1LCAKKyAgICA5MSwgMjQxLCAyNTAsIDI1MCwgMTEwLCAyNTIsIDE4OCwgMjUwLCAxMTAsIDI0MywgMjQzLCAyNTIsIDE4OCwgMjUwLCAxMTAsIAorICAgIDI1MSwgMjM4LCAyMjUsIDE5NiwgMjM0LCAyNywgMjI0LCAyNDksIDI0NiwgODgsIDI1MSwgMTIsIDI1MiwgMTc4LCAyNTEsIAorICAgIDEyLCAyNDcsIDEzMSwgMjMwLCAxMTQsIDI0NCwgMTkxLCAyNDksIDE0NywgMjQ0LCAxOTEsIDIxNiwgMTA4LCAyNDQsIDE5MSwgCisgICAgMjIzLCAxODIsIDI0NCwgMTkxLCAyNTAsIDIyNiwgMjQ0LCAxOTEsIDI0NiwgOTgsIDI0NCwgMTkxLCAyMTgsIDI0MiwgMjEyLCAKKyAgICAzLCAyNDAsIDI0NywgMjQ0LCAxOTEsIDIzMCwgMTQ3LCAyNDQsIDE5MSwgMjQ3LCAxMzgsIDI0NCwgMTkxLCAyMjUsIDc1LCAKKyAgICAyNDQsIDE5MSwgMjQzLCAyNDYsIDI0NCwgMTkxLCAyNDIsIDIxLCAyNDQsIDE5MSwgMjExLCAyMjQsIDI0NCwgMTkxLCAyNTIsIAorICAgIDcyLCAyNDQsIDE5MSwgMjI2LCA0NiwgMjQ0LCAxOTEsIDIyNSwgNzUsIDIyOCwgNTQsIDIyNSwgMjMzLCAyMjQsIDE4NywgCisgICAgMjQ1LCAxNCwgMjQ1LCAyMjgsIDIyOCwgNTQsIDIzMCwgMTExLCAyMTYsIDIwLCA3MSwgMTIwLCAyMjUsIDgsIDI1MiwgMTgzLCAKKyAgICAyMzUsIDI0MywgNzEsIDEyNCwgMjI1LCA4LCAyNTIsIDE4MywgMjM1LCAyNDMsIDcxLCA0MywgMjI1LCA4LCAyNTIsIDE4MywgCisgICAgMjM1LCAyNDMsIDcxLCA0NCwgMjI1LCA4LCAyNTIsIDE4MywgMjM1LCAyNDMsIDI0NCwgODUsIDI0MiwgMTcsIDUwLCAyMTIsIAorICAgIDMzLCAyNDIsIDE3LCA1MCwgMjI2LCAyMTYsIDI0MiwgMTcsIDUwLCAyMTYsIDEzNiwgMTIwLCA1MCwgMjE2LCAxMzYsIDEyNCwgCisgICAgNTAsIDI1MCwgMjAsIDI0MiwgMTIsIDUwLCAyMDQsIDI0MiwgMTIsIDUwLCAyNDksIDEyNCwgMjExLCAyMjAsIDI0MSwgMjUyLCAKKyAgICAyNDUsIDE1LCAyMjksIDEwNSwgMjE3LCAxNTIsIDIzNSwgMTI2LCAyNDYsIDkzLCAyMzQsIDgzLCAyNTEsIDI0OCwgMjExLCAKKyAgICAyMjAsIDI0OSwgMjUwLCAyMjQsIDEyOCwgMjQyLCAxNSwgMjI0LCAyMzEsIDIzMSwgMTc4LCAyMjAsIDUsIDI1MywgMjA0LCAKKyAgICAyMjAsIDUsIDI0MSwgMTY1LCAyMjAsIDUsIDIxMSwgMjIwLCAyMjEsIDI0MSwgMjExLCAyMjAsIDI1MSwgMTg3LCAyNDQsIAorICAgIDMwLCAyNTEsIDkxLCAyMzYsIDEsIDIxOSwgMTcwLCAyNTEsIDkwLCAyMzYsIDEsIDIxOSwgMTcwLCAyNTEsIDE2MywgMjQyLCAKKyAgICAxOTUsIDIzMSwgMTg2LCAyMTEsIDIyMSwgMjQ0LCAxNzUsIDIzMSwgMTg3LCAyMiwgMjExLCAyMjIsIDI0MSwgNjEsIDI0MiwgCisgICAgMTEsIDExMywgMjMxLCA2MCwgMjQxLCA2MSwgMjQyLCAxMSwgMTEzLCAyMTEsIDIxOSwgMjQxLCA2MSwgMjQyLCAxMSwgMjI1LCAKKyAgICAwLCAyMjYsIDIyOCwgMjExLCAyMjIsIDIsIDI1MSwgMTA3LCAyNDUsIDIyNiwgMjUxLCAxNDIsIDIsIDIxMywgMjQ2LCAyMjUsIAorICAgIDE2OSwgMiwgMjUxLCAyMTMsIDI0MiwgMzUsIDIzMSwgMTg3LCAyLCAyNDIsIDExMSwgMjI1LCAxMTAsIDIzMSwgMTc1LCAKKyAgICAyMzEsIDE4NywgMiwgMjE1LCA5OCwgMjI2LCAyMDksIDIzMSwgMTg2LCAyMjYsIDIwOSwgMjExLCAyMjEsIDI1MiwgMTg3LCAKKyAgICAyNDksIDE5MSwgMjExLCAyMDUsIDIyNCwgMTkwLCAyMzUsIDEzMiwgMjI2LCAyMjQsIDIzNSwgMTMyLCAyNDIsIDE3MCwgCisgICAgMjQyLCAyMjMsIDI1MiwgMTg4LCAyNTQsIDExNCwgMjQ1LCAxOSwgMjU0LCAxNjEsIDI1NCwgMTYyLCAyMzAsIDEzNywgMjM2LCAKKyAgICA2LCAyMTksIDEwMSwgMjM1LCAyMzMsIDI0OCwgMzUsIDIyNSwgMTY4LCAyNDIsIDEwNiwgMjQ4LCAxODAsIDIzMiwgMjAyLCAKKyAgICAyMjksIDIxMiwgMjI0LCAyNTUsIDI0NCwgMTkyLCAyMzEsIDE0MywgMjQyLCAzNCwgMjUyLCAxMzksIDIyNSwgMiwgMjE3LCAKKyAgICAxNzIsIDIyNSwgNjcsIDIzNCwgNjUsIDc4LCAyMzIsIDExMiwgMjMzLCAxMSwgMjIyLCAyMzQsIDI0MywgNTUsIDIxOCwgCisgICAgMTMyLCAyMzQsIDY0LCAyNTEsIDE3MiwgMjQ5LCAxNDksIDIsIDI0MSwgMjI4LCAyMTIsIDE5LCAyNTIsIDcwLCAyNDEsIAorICAgIDIyOCwgMjUxLCAxMzYsIDI0MSwgMjI4LCAxMTMsIDI0MSwgMjI2LCAyMTksIDExLCAyNDEsIDIyOCwgMjQyLCAxMjEsIDI0MSwgCisgICAgMjI4LCAyNDEsIDIyOSwgMiwgNzQsIDI1MSwgMjA5LCAyNDEsIDIyOCwgMjQyLCAxMjgsIDI0MSwgMjI4LCAyMTEsIDQyLCAKKyAgICAyNDEsIDIyOCwgMjI0LCAxMjksIDI0MSwgMjI4LCAyNDEsIDIyOSwgMiwgMjIzLCAzNCwgMjIzLCA0NSwgMjQxLCAyMjYsIAorICAgIDI0MSwgMjI5LCAyNDgsIDgyLCAyNDcsIDI1MCwgMjIwLCA4MywgMiwgMTE1LCA1OSwgMjM1LCAyMTYsIDI0NSwgMTczLCAKKyAgICAxOTIsIDI1MSwgMTE3LCAyNTQsIDExMywgODcsIDI1MSwgMTk2LCAyMTksIDkzLCA4NywgMjQ5LCAyMjksIDg3LCAyMTgsIAorICAgIDI0NywgMjE3LCAyNDksIDg3LCAyNDYsIDg2LCAyNDgsIDE1OCwgODcsIDIyNSwgNjgsIDY0LCAyMjQsIDI1MCwgMjQ0LCA2MiwgCisgICAgMjUyLCA0LCAyNDcsIDE2NiwgODcsIDIxOSwgNCwgMjUyLCAxNTksIDIxNiwgMTUwLCAyNTIsIDE1OSwgNzEsIDI0NCwgNTIsIAorICAgIDI0MCwgMjEyLCAyMjUsIDYsIDg3LCAyMzAsIDE1MCwgMjUyLCAxNzMsIDI0OSwgOTksIDI0NSwgMzMsIDExNCwgMjQ3LCAKKyAgICAxMzMsIDUwLCAyNDksIDE0MCwgMjUwLCAyNDMsIDI1MiwgMTQ1LCAyLCAyMTEsIDQwLCA1MCwgMjUyLCAxNDUsIDIsIDI0NywgCisgICAgMTMzLCA1MCwgMjUyLCAxNDUsIDIsIDI0NSwgNDgsIDUwLCAyNTIsIDE0NSwgMiwgMjI0LCAyMjksIDUwLCAyMzAsIDE1MCwgCisgICAgMiwgMjExLCAyMzUsIDI1MCwgMTM5LCAyLCAyMTQsIDE1MywgMjE1LCAyMzIsIDIyLCAyMTEsIDQwLCA1MCwgMjIxLCAxNzksIAorICAgIDIyNSwgMTY3LCAyNDksIDIwOSwgMjUxLCAxNDAsIDIzMCwgMTg3LCAyNDQsIDU3LCAyNDcsIDE4NiwgMjI2LCAxNjIsIDI0NywgCisgICAgMTkxLCAyNDYsIDUwLCAyNDQsIDEwOCwgMjQ0LCA0MSwgMjA0LCAyNDQsIDEwOCwgMjQ0LCA0MSwgMjI2LCA3NywgMiwgMjQ5LCAKKyAgICAxMDEsIDIyNiwgNzcsIDI0NCwgMTg0LCAyMTQsIDE2MywgMjUxLCAxNywgMjE3LCAxOSwgMjUxLCAxNywgMjUwLCAyNDQsIAorICAgIDIzNSwgMjQzLCAyNTAsIDEzOSwgMiwgMjE0LCAxNTMsIDIxNSwgMjMxLCAyNTAsIDEzOSwgMiwgMjQ2LCAxMDUsIDIxNSwgCisgICAgMjMxLCAyNTIsIDE0MiwgMjUwLCAxMzgsIDI1MCwgNywgMjI0LCAxMjQsIDIyMiwgMTg2LCAyMjQsIDEyNCwgMjI2LCAyMCwgCisgICAgMjE4LCAxMjIsIDIyMiwgMTMyLCAyMTUsIDIyMywgMjIyLCAxMzIsIDI1MSwgMTkyLCAyMTcsIDkyLCAyMzMsIDUyLCAyMjgsIAorICAgIDQ2LCAyMjgsIDQ3LCAyLCAyNDgsIDgxLCAyNDksIDE0OCwgMjUwLCAxLCAyNTEsIDE5MywgMjA0LCAyNTEsIDE5MywgMjQyLCAKKyAgICAxMjgsIDI1MSwgMTkzLCAyNTEsIDIwOSwgMjUxLCAxOTMsIDIyNiwgMTU4LCAyNTEsIDE5MywgMjUxLCAxOTAsIDIyOSwgCisgICAgMjA2LCAyNTIsIDE3NiwgMjIxLCAxODcsIDIzMSwgNjEsIDIxNywgMiwgMjIzLCAxMjQsIDIyNiwgNzUsIDI0NCwgMTYwLCAKKyAgICAyMzEsIDIzNSwgMjIxLCAyMjQsIDI1NCwgOTAsIDIyNCwgMTQ2LCAyNTQsIDI1MywgMjMyLCAxMTQsIDI1MCwgMTI4LCAyMzEsIAorICAgIDczLCAyMjYsIDEzMCwgMjE1LCAyMzksIDIzNSwgMjUzLCAyMTUsIDIzOSwgMjI2LCA4MywgMjQ2LCAyNSwgODcsIDIzNSwgCisgICAgMjUwLCAyNDUsIDEyMCwgMjQ1LCAxMjEsIDIsIDI0NiwgMTA1LCA4MCwgNDgsIDI1MCwgMSwgMjMxLCAyMDEsIDIsIDIzMiwgCisgICAgMTA4LCAyNDQsIDc0LCAyNTAsIDEsIDIzMSwgMjAxLCAyLCAyMjMsIDE1OCwgMjQ0LCA3NCwgMjA0LCAyMzEsIDIwMSwgMiwgCisgICAgMjIzLCAxNTgsIDI0NCwgNzQsIDIwNCwgMjMxLCAyMDEsIDIsIDIzMiwgMTA4LCAyNDQsIDc0LCAyMjQsIDIzNywgMjI0LCAKKyAgICAyMzgsIDI0MCwgMjQ5LCAyMjksIDg1LCAyMzAsIDE2MCwgMjI1LCAxMTgsIDIzMCwgMTYwLCAyMjUsIDExOSwgMiwgOTcsIAorICAgIDgwLCAyNTMsIDIwOCwgMjMzLCA0NywgMjEzLCAxNzUsIDIzMCwgMTU5LCAyMzAsIDE2MCwgMjI1LCAxMTksIDIyNiwgMjMxLCAKKyAgICAyMjgsIDc2LCAyMzAsIDE2MCwgMjI1LCAxMTcsIDI1NCwgOTEsIDIsIDI1MiwgMTMwLCAyNTEsIDExLCAyMTMsIDE3MiwgCisgICAgMjUxLCAxMSwgMjE2LCAyNTUsIDIyMywgMTc0LCAyMTMsIDE3MSwgMjE1LCA2MCwgOTcsIDI1MywgMjQ4LCAyNTAsIDMsIDk3LCAKKyAgICAyMiwgMTQwLCAyMDQsIDI1MCwgMzcsIDI1MywgMjQ4LCAyNTAsIDMsIDk3LCAyMiwgMTQwLCAyMDQsIDI1MCwgMzcsIDI1MywgCisgICAgMjQ5LCAyLCAzNywgMTIzLCAyMjYsIDEyMSwgMjUwLCAzLCAyNDYsIDEwNSwgMjIsIDIxNCwgMTUzLCAyMDQsIDI1MCwgMzcsIAorICAgIDI1MywgMjQ4LCAyNTQsIDg5LCAyNDYsIDEwNSwgMjIsIDIxNCwgMTUzLCAyMDQsIDI1MCwgMzcsIDI1MywgMjQ4LCAxMjEsIAorICAgIDI1MSwgMTM5LCA4NywgMTI1LCAyNTEsIDEzOSwgODcsIDIxOSwgOCwgMiwgMjUxLCA1LCA5MSwgMjE5LCA3LCAyMTksIDgsIAorICAgIDIsIDEyMywgMjE5LCAzMiwgMjEyLCAzNSwgMjE5LCA4LCAyLCAxMzQsIDIxOSwgMzIsIDIxMiwgMzQsIDI1MiwgMTE2LCAKKyAgICAyNDUsIDE3MywgMjI1LCAyOCwgMjMzLCA0MywgMjMxLCAyMTIsIDI0MiwgMTg1LCAyMjIsIDI0OCwgMjMxLCAyMTIsIDI0MiwgCisgICAgMTg1LCAyMzIsIDE1MywgMiwgMjM1LCAyMjYsIDIyNSwgMjAwLCAyNTAsIDEsIDIzMiwgMTUzLCAyLCAyMzQsIDEzOSwgMjM0LCAKKyAgICAxMzksIDIzMiwgMTUyLCAyMDQsIDIzMiwgMTUyLCAyNTIsIDQ1LCAyNTIsIDQ2LCAyLCAyNTEsIDUsIDkxLCAyNTEsIDE5MSwgCisgICAgMjMyLCAyMDUsIDg3LCAyMjMsIDE3NSwgMjUxLCA4NywgMjUyLCAxODYsIDIsIDE0MCwgODAsIDQ4LCAyNDUsIDE0NCwgMiwgCisgICAgMTQwLCA4MCwgNDgsIDIyNiwgMTk4LCAyLCAyNDUsIDMyLCAxNjQsIDIsIDQzLCA0NCwgODAsIDQ4LCAyMTksIDQwLCAyLCAKKyAgICA5NywgODAsIDQ4LCAyMTYsIDE1LCAyLCAyMTQsIDE1MywgODAsIDQ4LCAyMjgsIDc2LCAxMjMsIDIxNCwgMTg0LCAyNDUsIAorICAgIDE5MiwgODcsIDIzNCwgMTM3LCAyMTYsIDI0OCwgMjM1LCAyMjAsIDE2LCAzMSwgNywgNiwgMjMzLCAxMCwgMjM1LCAyMjAsIAorICAgIDE2LCAzMSwgNywgNCwgMjMzLCAxMCwgMjM1LCAyMjAsIDE2LCAzMSwgMjI3LCAyMDAsIDIzNSwgMjIwLCAxNiwgMzEsIDIxNywgCisgICAgMTg0LCAyMzUsIDIyMCwgMTYsIDMxLCA3LCAyMzMsIDEwLCAyNDQsIDk3LCAyNDUsIDE3MywgMjE2LCAxMCwgMjExLCAxOTksIAorICAgIDI0MiwgMjIsIDIyNywgMTgzLCAyMiwgMjUxLCAxOTgsIDI0MSwgNjcsIDIyNSwgNTEsIDIzMCwgMjI3LCAyMTcsIDAsIDI0OSwgCisgICAgMTE1LCAyNTIsIDE2MCwgMjE5LCAxMjYsIDIyNSwgMTAsIDIxOCwgMTU4LCAyLCAyMzAsIDIyNSwgMjQ3LCAxMjEsIDIzNSwgCisgICAgMTMyLCAxNiwgMzEsIDI1MiwgNTgsIDIxNSwgMjIxLCAyNDUsIDE1NywgODUsIDQyLCAyNTEsIDg3LCA3MSwgNDIsIDI1MSwgCisgICAgODcsIDIzMywgODYsIDIyMywgMTEyLCAyNTAsIDM2LCAyMzMsIDg2LCAyNTEsIDIwOSwgMjUwLCAzNiwgMjMzLCA4NiwgMjI2LCAKKyAgICAxNTgsIDI0NywgMjQ5LCAyMzMsIDg2LCAyNTEsIDIwOSwgMjQ3LCAyNDksIDQsIDIyNiwgMTU4LCAyNDcsIDI0OSwgNCwgCisgICAgMjUxLCAyMDksIDI0NywgMjQ5LCAyMTQsIDE2MiwgMjIzLCAxMTIsIDIxNSwgMjI2LCAyNDYsIDEwNiwgMjIzLCAxMTIsIAorICAgIDIxNSwgMjI2LCAyMTQsIDE2MiwgNCwgMjIzLCAxMTIsIDIxNSwgMjI2LCAyNDYsIDEwNiwgNCwgMjIzLCAxMTIsIDIxNSwgCisgICAgMjI2LCAzNywgMjQ5LCAxMzIsIDIyNCwgMjUzLCAyNDksIDEzMiwgMjI0LCAyNTQsIDIsIDI0MiwgMjcsIDUxLCAyNDksIAorICAgIDEzMiwgMjI0LCAyNTMsIDIyOCwgNTAsIDQzLCAyMjAsIDE1NCwgMiwgMTM0LCAyNDcsIDExOSwgMjUwLCA1LCAyNDQsIDE5MiwgCisgICAgMTIzLCAyMjYsIDI0MywgMjUwLCA1LCAyNDQsIDE5MiwgMTEzLCAyMjYsIDI0MywgMjUwLCA1LCAyNDQsIDE5MiwgMTM0LCAKKyAgICAyMjYsIDI0MywgMjUwLCA1LCAyNDQsIDE5MiwgMjQ0LCAxMiwgMjI2LCAyNDMsIDI1MCwgNSwgMjQ0LCAxOTIsIDI0NCwgODIsIAorICAgIDIyNiwgMjQzLCAyNTAsIDUsIDI0NCwgMTkyLCAyMTksIDEyNiwgMjI2LCAyNDMsIDI1MCwgNSwgMjQ0LCAxOTIsIDIyMCwgCisgICAgMTIzLCAyMjYsIDI0MywgMjUwLCA1LCAyNDQsIDE5MiwgMjQ1LCAxOTQsIDIyNiwgMjQzLCAyNTAsIDUsIDI0NCwgMTkyLCAKKyAgICAyMjgsIDIwMSwgMjI2LCAyNDMsIDI1MCwgNSwgMjQ0LCAxOTIsIDIxNiwgMjQ5LCAyMjYsIDI0MywgMjUwLCA1LCAyNDQsIAorICAgIDE5MiwgMjQ1LCAxNjksIDIyNiwgMjQzLCAyNTAsIDUsIDI0NCwgMTkyLCAyMTUsIDc3LCAyMjYsIDI0MywgMjUwLCA1LCAKKyAgICAyNDQsIDE5MiwgMjI2LCAxOTMsIDI1MCwgNSwgMjQ0LCAxOTIsIDIxNSwgNTYsIDI1MCwgNSwgMjQ0LCAxOTIsIDIxNiwgCisgICAgMTQxLCAyNTAsIDUsIDI0NCwgMTkyLCAyNDQsIDgsIDI1MCwgNSwgMjQ0LCAxOTIsIDI0NCwgODAsIDI1MCwgNSwgMjQ0LCAKKyAgICAxOTIsIDIxOSwgMTIyLCAyNTAsIDUsIDI0NCwgMTkyLCAyMjAsIDEyMiwgMjUwLCA1LCAyNDQsIDE5MiwgMjQ1LCAxOTMsIAorICAgIDI1MCwgNSwgMjQ0LCAxOTIsIDIyOCwgMjAwLCAyNTAsIDUsIDI0NCwgMTkyLCAyMTYsIDI0NywgMjUwLCA1LCAyNDQsIDE5MiwgCisgICAgMjQ1LCAxNjcsIDI1MCwgNSwgMjQ0LCAxOTIsIDIxNSwgNzUsIDIzMCwgMTE4LCAyNDMsIDIzMSwgMjE2LCAzNywgMjE2LCAzLCAKKyAgICAyMTgsIDE0OSwgNjQsIDIzMiwgMjQwLCAyMTksIDE3MSwgNjQsIDIzNSwgMTMzLCAyMzAsIDEwNywgMjQyLCAxMjUsIDI0NCwgCisgICAgMTkxLCAyNDIsIDEyNSwgMjQ0LCAxOTIsIDIsIDIxOSwgNzUsIDI0NSwgMTQsIDI0NCwgMTkyLCAyLCAyMTcsIDE1LCA2NCwgCisgICAgMjM1LCA1NCwgMjE5LCA3NSwgMjQ0LCAxOTIsIDIsIDIwNCwgMjMwLCAxMTEsIDIxOSwgNzUsIDI0NCwgMTkyLCAyLCAyMDQsIAorICAgIDIzMCwgMTEyLCAyMiwgMjE5LCA3NSwgMjQ1LCAxNCwgMjE5LCA3NSwgMjQ0LCAxOTIsIDIsIDIwNCwgMjMwLCAxMTIsIDIyLCAKKyAgICAyNDksIDIzMSwgMjE3LCAyNDgsIDIxOSwgNzUsIDI0NCwgMTkyLCAyLCAyMDQsIDIzMCwgMTEyLCAyMiwgMjE2LCAxMDUsIAorICAgIDI0NSwgMTQsIDIxOSwgNzUsIDI0NCwgMTkyLCAyLCAyNDIsIDI2LCAyMTksIDc1LCAyNDQsIDE5MiwgMiwgMjQwLCAyNDgsIAorICAgIDIxMSwgMjMzLCAyNDQsIDE5MSwgMjE5LCA3NSwgMjQ0LCAxOTIsIDIsIDIxOSwgNzUsIDI0NSwgMTQsIDI0NCwgMTkyLCAKKyAgICAyMjEsIDIxOCwgMjQ4LCA2MywgMjQ0LCAzNCwgMjIzLCA4OSwgMjQ0LCAxOTEsIDIxOSwgNzUsIDI0NCwgMTkyLCAyLCAyNDEsIAorICAgIDIyNywgMjQ1LCAxNCwgMjE5LCA3NSwgMjQ0LCAxOTIsIDIsIDIxOCwgMzUsIDIxOSwgNzQsIDI0NCwgMTkxLCAyMjksIDg4LCAKKyAgICAyNDQsIDE5MSwgMjQ1LCAyNCwgMjQ0LCAxOTEsIDIxNCwgMTg4LCAyNDQsIDE5MSwgMjQ0LCAxOTIsIDIsIDI0OSwgMjMxLCAKKyAgICAyMTcsIDI0OCwgMjI1LCAxOTMsIDI0NCwgMTkxLCAyNDksIDIwMiwgMjQ0LCAxOTEsIDI0OSwgMjAzLCAyNDQsIDE5MSwgCisgICAgMjM0LCA2MywgMjQ0LCAxOTEsIDI0NCwgMTkyLCAyMTYsIDEzOCwgMTE1LCAyMzQsIDY0LCAyMzQsIDYzLCAyNDQsIDE5MiwgCisgICAgMiwgMjE5LCA3NSwgMjQ1LCAxNCwgMjM0LCA2MywgMjQ0LCAxOTIsIDIsIDI1MCwgMSwgMjQ1LCAxNCwgMjQ0LCAxOTIsIDIsIAorICAgIDIxOCwgODksIDIxNiwgMjAsIDI0NCwgMTkyLCAyLCAyMTgsIDg5LCAyMTYsIDIxLCAyMiwgMjExLCAyMzMsIDI0NSwgMTYsIAorICAgIDI0NCwgMTkyLCAyLCAyMTgsIDg5LCAyMTYsIDIxLCAyMiwgMjE2LCAxMDUsIDI0NSwgMTQsIDI0NywgMTkzLCAyNDQsIDE5MSwgCisgICAgMjExLCAyMDQsIDI0NCwgMTkxLCAyNTQsIDEwOSwgMjQ0LCAxOTEsIDIyNCwgMjI4LCAyNDQsIDE5MSwgMjQ5LCAxMTcsIAorICAgIDI0NCwgMTkxLCAyMjUsIDE3MSwgMjQ0LCAxOTEsIDI0NCwgMTkyLCAyLCAyMzIsIDEyNywgNjQsIDIxNSwgMjA1LCAyNDcsIAorICAgIDE5MywgMjUxLCA4OSwgMjIzLCA4OSwgMjQ0LCAxOTEsIDI0MywgMjQwLCAyNDQsIDE5MiwgMiwgMjA0LCAyMzAsIDExMSwgCisgICAgMjU0LCAxMDcsIDI0NCwgMTkxLCAyNDQsIDE1MywgMjQ0LCAxOTEsIDIxMiwgMjAsIDI0NCwgMTkxLCAyMTksIDkyLCAyNDQsIAorICAgIDE5MSwgMjE2LCA3MiwgMjQ0LCAxOTEsIDI0MiwgMTI2LCAyNDQsIDE5MSwgMjMyLCAxMTUsIDI0OSwgMTE3LCAyNDQsIDE5MSwgCisgICAgMjQ0LCAxOTIsIDIsIDIwNCwgMjMwLCAxMTEsIDI0MCwgMjA0LCAyNDQsIDE5MSwgMjQ0LCAxOTIsIDIsIDIwNCwgMjMwLCAKKyAgICAxMTIsIDIyLCAyNDksIDIzMSwgMjE3LCAyNDgsIDI0NCwgMTkyLCAyMjEsIDE5MSwgMjM2LCAxLCAyNDQsIDE1NCwgMjUzLCAKKyAgICAyMTQsIDI0NCwgMTkxLCAyNDQsIDUwLCAyNDQsIDE5MSwgMjE5LCA5MywgMjQ0LCAxOTEsIDI0NywgMTY2LCAyNDQsIDE5MSwgCisgICAgMjQ0LCAxOTIsIDIxMSwgMjMwLCAyMzAsIDExMSwgMjQ0LCAxOTIsIDIsIDIzMSwgODUsIDIzMSwgMTQ1LCAyNDIsIDEyNSwgCisgICAgMjUwLCAyMjYsIDI0NCwgMTkyLCAyLCAyMTksIDc1LCAyNDUsIDE0LCAyNTAsIDIyNiwgMjQ0LCAxOTIsIDIsIDIxNywgMTUsIAorICAgIDY0LCAyMzUsIDU0LCAyMTksIDc1LCAyNTAsIDIyNiwgMjQ0LCAxOTIsIDIsIDIwNCwgMjMwLCAxMTEsIDIxOSwgNzUsIDI1MCwgCisgICAgMjI2LCAyNDQsIDE5MiwgMiwgMjQxLCAyMjcsIDI0NSwgMTQsIDI1MCwgMjI2LCAyNDQsIDE5MiwgMiwgMjExLCAxOTYsIAorICAgIDIxOSwgNzYsIDIzNCwgNjMsIDI1MCwgMjI2LCAyNDQsIDE5MiwgMiwgMjUwLCAxLCAyNDUsIDE0LCAyMjQsIDIyOCwgMjUwLCAKKyAgICAyMjYsIDI0NCwgMTkxLCAyNDksIDExNywgMjUwLCAyMjYsIDI0NCwgMTkxLCAyMTIsIDIwLCAyNTAsIDIyNiwgMjQ0LCAxOTEsIAorICAgIDI0NCwgMTkyLCAyLCAyMjgsIDc2LCAyNDIsIDE2NCwgMjQzLCAzNSwgMjQ0LCAxOTIsIDIsIDIyNiwgMjE2LCAyNDMsIDM1LCAKKyAgICAyMjUsIDE2OSwgMjUxLCAxNjksIDI0OCwgNzYsIDIyMSwgMTcwLCAyMzAsIDE0NiwgMjQxLCAyMzAsIDIzMCwgMTQ2LCAyMTksIAorICAgIDksIDIzMCwgMTQ2LCAyNDIsIDYsIDIyNSwgMTY5LCAyMjMsIDE1NywgMTIzLCAyNDIsIDE2LCAyMjUsIDE2OSwgMjIzLCAKKyAgICAxNTcsIDI1MSwgMTc5LCAyNDIsIDEyLCAyMzYsIDEsIDI1MCwgMTgwLCAyMjUsIDE2OSwgMjQzLCAyMzksIDIyNSwgMTY5LCAKKyAgICAyLCAyMjQsIDIyOCwgMjQ0LCAxOTEsIDIyNSwgMTY5LCAyLCAyNDQsIDQyLCAyNDIsIDExLCAyMjIsIDIwNCwgMjQxLCAyMTUsIAorICAgIDIxOCwgMTQ0LCAyMzIsIDE1MCwgMjIzLCAxNjMsIDI1MCwgMjQ1LCAyNDEsIDE2MywgMjE1LCAyNDksIDI0MSwgMTYzLCAKKyAgICAyMTUsIDI1MCwgMiwgMjUxLCAxMTUsIDIyOCwgNTQsIDIxNSwgMjQ5LCAyMzEsIDMzLCAxOTIsIDIyMywgMTY0LCAyMTgsIAorICAgIDE1MCwgMjE1LCAyNDcsIDIxNSwgMjQ4LCAyNTAsIDI0NSwgMjUxLCA5MywgMjI2LCAxOTUsIDI1MSwgOTMsIDIxNSwgMjAyLCAKKyAgICAyNTEsIDk0LCAyMTgsIDEzMCwgMjMwLCAxODgsIDI1NCwgMTMxLCAyNDQsIDk4LCAyNDUsIDEzOCwgMjI1LCAwLCAyNTAsIAorICAgIDI0NSwgMjI2LCAxOTUsIDIyNSwgMCwgMjUwLCAyNDUsIDIxNywgMzMsIDIyNiwgMTk1LCAyMTcsIDMzLCAyNTMsIDE4MSwgCisgICAgMjI2LCAxOTUsIDI1MywgMTgxLCAyMjMsIDExOSwgMjEzLCAyNDcsIDI0OCwgNTksIDIxNSwgMTkzLCAyNTMsIDI0MywgMjMyLCAKKyAgICAxMTgsIDIxNSwgMjU1LCAyMzAsIDE0MCwgMjMwLCAxMTcsIDIyMywgMTYyLCAyMTgsIDcsIDIyMywgMTYyLCAyMzAsIDExNywgCisgICAgMjUxLCAyOSwgMjU0LCAyMzAsIDIxNSwgMjQ2LCAyMjAsIDE3LCAyMjIsIDE4MywgMjE5LCAyLCAyMDMsIDIxNSwgMjUzLCAKKyAgICAyMzIsIDIzMSwgNjcsIDIxNSwgMjUzLCAyMzIsIDIzMSwgMjQ5LCAxOTEsIDUwLCAyMjUsIDAsIDI1MCwgMjMwLCAyMjMsIAorICAgIDQ1LCAyMzIsIDIzMSwgMjE1LCAyMjMsIDI0NCwgNzUsIDIyNiwgMTk4LCAyMjQsIDIzOSwgMjQ3LCAxMjQsIDIyOCwgNzYsIAorICAgIDI0NSwgMTI2LCA1MCwgMjE5LCA3MywgODcsIDIyOCwgNzYsIDIxOSwgNzMsIDg3LCAyMjQsIDEyMywgMjMyLCAxOTQsIDIzNiwgCisgICAgMSwgMjM1LCAxNTgsIDIyNSwgNDIsIDg3LCAyNDcsIDE0NywgMjI4LCA1MywgMjMyLCAxOTQsIDg3LCAyMjQsIDIzMywgMjEyLCAKKyAgICA0MSwgODcsIDIyOCwgNjcsIDIxMiwgNDEsIDg3LCAyNTIsIDMsIDIyOCwgNzYsIDI1MiwgMiwgMjUyLCAxLCAyMzAsIDExNywgCisgICAgMjUyLCAxLCAyMjUsIDIxNCwgMjI4LCA3NiwgMjI1LCAyMTMsIDI1MCwgMTAxLCAyNDksIDEyNSwgMjMxLCA1NywgODcsIAorICAgIDIxMSwgMjE4LCA4NywgMjIzLCA2MCwgMjUyLCAxODgsIDg3LCAyMTYsIDM4LCAyMTIsIDQxLCAyNDksIDI1NCwgMjE5LCAKKyAgICAyMzUsIDI1MiwgMTE5LCAyNTIsIDExNywgMjI1LCAyNDMsIDI0OSwgMTc4LCAyNDksIDg3LCAyNTIsIDE3MCwgMjUwLCAyMywgCisgICAgNDMsIDIzMiwgOTEsIDEwOCwgMTYsIDMxLCAyMjQsIDQsIDEwOCwgMTYsIDMxLCAyNTQsIDE5MywgMTA4LCAxNiwgMzEsIAorICAgIDI0NCwgOTcsIDEwOCwgMTYsIDMxLCAyNDUsIDIyNCwgMTA4LCAxNiwgMzEsIDIxMiwgNDAsIDEwOCwgMTYsIDMxLCAyNTQsIAorICAgIDQ0LCAxMDgsIDE2LCAzMSwgMjU0LCA0NSwgMjIzLCAxMDYsIDEwOCwgMTYsIDMxLCAyNTQsIDQ1LCAyMjMsIDEwNSwgMTA4LCAKKyAgICAxNiwgMzEsIDI1NCwgNDUsIDIxMywgMTQzLCAxMDgsIDE2LCAzMSwgMjU0LCA0NSwgMjEzLCAxNDIsIDEwOCwgMTYsIDMxLCAKICAgICAyMTMsIDE1NywgMTA4LCAxNiwgMzEsIDIxMywgMTU2LCAxMDgsIDE2LCAzMSwgMjEzLCAxNTUsIDEwOCwgMTYsIDMxLCAyMTgsIAotICAgIDQ0LCAxMDgsIDE2LCAzMSwgMjI1LCAxMjUsIDIxOCwgNDQsIDEwOCwgMTYsIDMxLCA4NSwgMjE4LCA0NCwgMTA4LCAxNiwgCi0gICAgMzEsIDIzMSwgNTUsIDIxOCwgNzEsIDEwOCwgMTYsIDMxLCAyMzEsIDU1LCAyMTgsIDcwLCAxMDgsIDE2LCAzMSwgMjMxLCAKLSAgICA1NSwgMjE4LCA2OSwgMTA4LCAxNiwgMzEsIDI1MCwgMzgsIDEwOCwgMTYsIDMxLCAyMjIsIDEsIDEwOCwgMTYsIDMxLCAyMjgsIAotICAgIDE4OCwgMTA4LCAxNiwgMzEsIDIxMywgMTQxLCAxMDgsIDE2LCAzMSwgMjEzLCAxNDAsIDEwOCwgMTYsIDMxLCAyMjIsIDIwNCwgCi0gICAgMjIyLCAxLCAxMDgsIDE2LCAzMSwgMjIyLCAyMDQsIDIyMiwgMCwgMTA4LCAxNiwgMzEsIDI0MiwgMTY2LCAxMDgsIDE2LCAKLSAgICAzMSwgMjE5LCAxNjYsIDEwOCwgMTYsIDMxLCAyMzUsIDE3NywgMjI2LCAxNTMsIDEwOCwgMTYsIDMxLCAyMzUsIDE3NywgCi0gICAgMjI2LCAxNTIsIDEwOCwgMTYsIDMxLCAyNDksIDEzNCwgNjQsIDIzNSwgMTc2LCAxMDgsIDE2LCAzMSwgMjIzLCAxMDEsIDY0LCAKLSAgICAyMzUsIDE3NiwgMTA4LCAxNiwgMzEsIDI0OSwgMTY4LCAyMjYsIDE1MywgMTA4LCAxNiwgMzEsIDIzNSwgMTc1LCAyMjYsIAotICAgIDE1MywgMTA4LCAxNiwgMzEsIDIxOCwgNzIsIDY0LCAyNDksIDE2NywgMTA4LCAxNiwgMzEsIDI0OSwgMTM0LCA2NCwgMjQ5LCAKLSAgICAxNjcsIDEwOCwgMTYsIDMxLCAyNDksIDEzNCwgNjQsIDI0OSwgMTY2LCAxMDgsIDE2LCAzMSwgMjQ5LCAxNjgsIDI1NCwgODMsIAotICAgIDEwOCwgMTYsIDMxLCAyMjIsIDIsIDY0LCAyNDksIDE2OCwgMjU0LCA4MywgMTA4LCAxNiwgMzEsIDIxOCwgNzIsIDY0LCAKLSAgICAyMjIsIDIsIDY0LCAyNDksIDE2NywgMTA4LCAxNiwgMzEsIDIxMywgMjQzLCAxMDgsIDE2LCAzMSwgMjE2LCA4NCwgMjI2LCAKLSAgICAxNTMsIDEwOCwgMTYsIDMxLCAyMzMsIDU3LCAyMjYsIDE1MywgMTA4LCAxNiwgMzEsIDI1NCwgODIsIDIyNiwgMTUzLCAxMDgsIAotICAgIDE2LCAzMSwgMjE4LCA3MiwgNjQsIDI1NCwgODEsIDEwOCwgMTYsIDMxLCAyMjIsIDIsIDY0LCAyNTQsIDgxLCAxMDgsIDE2LCAKLSAgICAzMSwgMjE4LCA3MiwgNjQsIDIyMiwgMiwgNjQsIDI1NCwgODEsIDEwOCwgMTYsIDMxLCAyMTMsIDE1OCwgNjQsIDI1NCwgODEsIAotICAgIDEwOCwgMTYsIDMxLCAyMjMsIDEwMSwgNjQsIDI1NCwgODEsIDEwOCwgMTYsIDMxLCAyMjMsIDEwMSwgNjQsIDI1NCwgODAsIAotICAgIDEwOCwgMTYsIDMxLCAyMjMsIDEwMCwgMTA4LCAxNiwgMzEsIDIyMywgOTksIDEwOCwgMTYsIDMxLCAyMjMsIDk4LCAxMDgsIAotICAgIDE2LCAzMSwgMjIzLCA5NywgMTA4LCAxNiwgMzEsIDI1NCwgMTU3LCAxMDgsIDE2LCAzMSwgMjU0LCAxNTYsIDEwOCwgMTYsIAotICAgIDMxLCAyMzEsIDE2MywgMTA4LCAxNiwgMzEsIDIyMiwgNywgMTA4LCAxNiwgMzEsIDI1MywgMjQ2LCAxMDgsIDE2LCAzMSwgCi0gICAgMjIzLCAxMjUsIDEwOCwgMTYsIDMxLCAyMjMsIDEyNCwgMTA4LCAxNiwgMzEsIDI1MywgMTgzLCAxMDgsIDE2LCAzMSwgMjUxLCAKLSAgICAyMjksIDIyNiwgMTUzLCAxMDgsIDE2LCAzMSwgMjE3LCA0OSwgMTA4LCAxNiwgMzEsIDIxNywgNDgsIDEwOCwgMTYsIDMxLCAKLSAgICAyMjQsIDgsIDIzMiwgMjIyLCAxMDgsIDE2LCAzMSwgMjUxLCAxODMsIDEwOCwgMTYsIDMxLCAyNTEsIDE4MiwgMTA4LCAxNiwgCi0gICAgMzEsIDI1MSwgMTgxLCAxMDgsIDE2LCAzMSwgMjU0LCAxMzgsIDEwOCwgMTYsIDMxLCAyMjYsIDIxOCwgMTA4LCAxNiwgMzEsIAotICAgIDIxOCwgMjQ4LCAxMDgsIDE2LCAzMSwgMjE2LCA4MiwgMTA4LCAxNiwgMzEsIDI0MiwgOTYsIDEwOCwgMTYsIDMxLCAyMTIsIAotICAgIDI4LCAxMDgsIDE2LCAzMSwgMjI0LCAyMjYsIDEwOCwgMTYsIDMxLCAyNTEsIDE0LCAxMDgsIDE2LCAzMSwgMjE1LCA4NiwgCi0gICAgMTA4LCAxNiwgMzEsIDI1MCwgMjQ2LCAyMzAsIDEyMiwgMTA4LCAxNiwgMzEsIDIyMSwgMjAyLCA2NCwgMjM1LCA1NSwgMTA4LCAKLSAgICAxNiwgMzEsIDI1MSwgMjUsIDEwOCwgMTYsIDMxLCAyMTUsIDIxOSwgMTA4LCAxNiwgMzEsIDIxOCwgMTU0LCAyMTUsIDIxOSwgCi0gICAgMTA4LCAxNiwgMzEsIDIzMiwgMTQ4LCAxMDgsIDE2LCAzMSwgMjE5LCA1NiwgMTA4LCAxNiwgMzEsIDIxNCwgMTQyLCAxMDgsIAotICAgIDE2LCAzMSwgMjQwLCAyNDYsIDI0NiwgNjQsIDEwOCwgMTYsIDMxLCAyNTMsIDIyNywgMTA4LCAxNiwgMzEsIDIyNCwgMjM0LCAKLSAgICAyNTMsIDIyNywgMTA4LCAxNiwgMzEsIDI1MSwgMTQyLCAxMDgsIDE2LCAzMSwgMjI0LCAyMjUsIDI1MSwgMTQyLCAxMDgsIAotICAgIDE2LCAzMSwgMjU0LCAxMzUsIDEwOCwgMTYsIDMxLCAyMTgsIDExNywgMjE4LCAyNiwgMjE4LCAxMTYsIDEwOCwgMTYsIDMxLCAKLSAgICAyMTgsIDExNywgMjE4LCAyNiwgMjE4LCAxMTUsIDEwOCwgMTYsIDMxLCAyMTgsIDY4LCAxMDgsIDE2LCAzMSwgMjI0LCAyMDAsIAotICAgIDEwOCwgMTYsIDMxLCAyNDcsIDE4MSwgMTA4LCAxNiwgMzEsIDI0NywgMTgzLCAxMDgsIDE2LCAzMSwgMjQ3LCAxODIsIDEwOCwgCi0gICAgMTYsIDMxLCAyMjQsIDEzMSwgMTA4LCAxNiwgMzEsIDIyNCwgMTIwLCAxMDgsIDE2LCAzMSwgMjQ5LCAxMjIsIDEwOCwgMTYsIAotICAgIDMxLCAyNDksIDEyMSwgMTA4LCAxNiwgMzEsIDI0OSwgMTIwLCAxMDgsIDE2LCAzMSwgMjQ5LCAxMTksIDEwOCwgMTYsIDMxLCAKLSAgICAyNDksIDExOCwgMTA4LCAxNiwgMzEsIDI1NCwgMTY5LCAxMDgsIDE2LCAzMSwgMjUyLCAxMTksIDY0LCAyMzEsIDE0OSwgCi0gICAgMTA4LCAxNiwgMzEsIDI1MiwgMTE5LCA2NCwgMjE0LCAxNywgMTA4LCAxNiwgMzEsIDIyMywgNTcsIDEwOCwgMTYsIDMxLCAKLSAgICAyNDAsIDIzOCwgMTA4LCAxNiwgMzEsIDIyOCwgMjEyLCAxMDgsIDE2LCAzMSwgMjQ4LCAxNDUsIDEwOCwgMTYsIDMxLCAyMzAsIAotICAgIDEzNCwgMTA4LCAxNiwgMzEsIDE2MywgMjQ2LCA5NCwgMTA4LCAxNiwgMzEsIDE2MywgMjI2LCAxMzIsIDksIDE0LCAyNDAsIAotICAgIDEwMiwgOSwgMTQsIDI0MCwgMTAxLCA5LCAxNCwgMjQwLCAxMDAsIDksIDE0LCAyNDAsIDk5LCA5LCAxNCwgMjQwLCA5OCwgOSwgCi0gICAgMTQsIDI0MCwgOTcsIDksIDE0LCAyNDAsIDk2LCA5LCAxNCwgMjQwLCA5NSwgOSwgMTQsIDI0MCwgOTQsIDksIDE0LCAyNDAsIAotICAgIDkzLCA5LCAxNCwgMjQwLCA5MiwgOSwgMTQsIDI0MCwgOTEsIDksIDE0LCAyNDAsIDkwLCA5LCAxNCwgMjQwLCA4OSwgOSwgCi0gICAgMTQsIDI0MCwgODgsIDksIDE0LCAyNDAsIDg3LCA5LCAxNCwgMjQwLCA4NiwgOSwgMTQsIDI0MCwgODUsIDksIDE0LCAyNDAsIAotICAgIDg0LCA5LCAxNCwgMjQwLCA4MywgOSwgMTQsIDI0MCwgODIsIDksIDE0LCAyNDAsIDgxLCA5LCAxNCwgMjQwLCA4MCwgOSwgCi0gICAgMTQsIDI0MCwgNzksIDksIDE0LCAyNDAsIDc4LCA5LCAxNCwgMjQwLCA3NywgOSwgMTQsIDI0MCwgNzYsIDksIDE0LCAyNDAsIAotICAgIDc1LCA5LCAxNCwgMjQwLCA3NCwgOSwgMTQsIDI0MCwgNzMsIDksIDE0LCAyNDAsIDcyLCA5LCAxNCwgMjQwLCA3MSwgOSwgCi0gICAgMTQsIDI0MCwgNzAsIDksIDE0LCAyNDAsIDY5LCA5LCAxNCwgMjQwLCA2OCwgOSwgMTQsIDI0MCwgNjcsIDksIDE0LCAyNDAsIAotICAgIDY2LCA5LCAxNCwgMjQwLCA2NSwgOSwgMTQsIDI0MCwgNjQsIDksIDE0LCAyNDAsIDYzLCA5LCAxNCwgMjQwLCA2MiwgOSwgCi0gICAgMTQsIDI0MCwgNjEsIDksIDE0LCAyNDAsIDYwLCA5LCAxNCwgMjQwLCA1OSwgOSwgMTQsIDI0MCwgNTgsIDksIDE0LCAyNDAsIAotICAgIDU3LCA5LCAxNCwgMjQwLCA1NiwgOSwgMTQsIDI0MCwgNTUsIDksIDE0LCAyNDAsIDU0LCA5LCAxNCwgMjQwLCA1MywgOSwgCi0gICAgMTQsIDI0MCwgNTIsIDksIDE0LCAyNDAsIDUxLCA5LCAxNCwgMjQwLCA1MCwgOSwgMTQsIDI0MCwgNDksIDksIDE0LCAyNDAsIAotICAgIDQ4LCA5LCAxNCwgMjQwLCA0NywgOSwgMTQsIDI0MCwgNDYsIDksIDE0LCAyNDAsIDQ1LCA5LCAxNCwgMjQwLCA0NCwgOSwgCi0gICAgMTQsIDI0MCwgNDMsIDksIDE0LCAyNDAsIDQyLCA5LCAxNCwgMjQwLCA0MSwgOSwgMTQsIDI0MCwgNDAsIDksIDE0LCAyNDAsIAotICAgIDM5LCA5LCAxNCwgMjQwLCAzOCwgOSwgMTQsIDI0MCwgMzcsIDksIDE0LCAyNDAsIDM2LCA5LCAxNCwgMjQwLCAzNSwgOSwgCi0gICAgMTQsIDI0MCwgMzQsIDksIDE0LCAyNDAsIDMzLCA5LCAxNCwgMjQwLCAzMiwgOSwgMTQsIDI0MCwgMzEsIDksIDE0LCAyNDAsIAotICAgIDMwLCA5LCAxNCwgMjQwLCAyOSwgOSwgMTQsIDI0MCwgMjgsIDksIDE0LCAyNDAsIDI3LCA5LCAxNCwgMjQwLCAyNiwgOSwgCi0gICAgMTQsIDI0MCwgMjUsIDksIDE0LCAyNDAsIDI0LCA5LCAxNCwgMjQwLCAyMywgOSwgMTQsIDI0MCwgMjIsIDksIDE0LCAyNDAsIAotICAgIDIxLCA5LCAxNCwgMjQwLCAyMCwgOSwgMTQsIDI0MCwgMTksIDksIDE0LCAyNDAsIDE4LCA5LCAxNCwgMjQwLCAxNywgOSwgCi0gICAgMTQsIDI0MCwgMTYsIDksIDE0LCAyNDAsIDE1LCA5LCAxNCwgMjQwLCAxNCwgOSwgMTQsIDI0MCwgMTMsIDksIDE0LCAyNDAsIAotICAgIDEyLCA5LCAxNCwgMjQwLCAxMSwgOSwgMTQsIDI0MCwgMTAsIDksIDE0LCAyNDAsIDksIDksIDE0LCAyNDAsIDgsIDksIDE0LCAKLSAgICAyNDAsIDcsIDksIDE0LCAyNDAsIDYsIDksIDE0LCAyNDAsIDUsIDksIDE0LCAyNDAsIDQsIDksIDE0LCAyNDAsIDMsIDksIAotICAgIDE0LCAyNDAsIDIsIDksIDE0LCAyNDAsIDEsIDksIDE0LCAyNDAsIDAsIDksIDE0LCAyMzksIDI1NSwgOSwgMTQsIDIzOSwgCi0gICAgMjU0LCA5LCAxNCwgMjM5LCAyNTMsIDksIDE0LCAyMzksIDI1MiwgOSwgMTQsIDIzOSwgMjUxLCA5LCAxNCwgMjM5LCAyNTAsIAotICAgIDksIDE0LCAyMzksIDI0OSwgOSwgMTQsIDIzOSwgMjQ4LCA5LCAxNCwgMjM5LCAyNDcsIDksIDE0LCAyMzksIDI0NiwgOSwgCi0gICAgMTQsIDIzOSwgMjQ1LCA5LCAxNCwgMjM5LCAyNDQsIDksIDE0LCAyMzksIDI0MywgOSwgMTQsIDIzOSwgMjQyLCA5LCAxNCwgCi0gICAgMjM5LCAyNDEsIDksIDE0LCAyMzksIDI0MCwgOSwgMTQsIDIzOSwgMjM5LCA5LCAxNCwgMjM5LCAyMzgsIDksIDE0LCAyMzksIAotICAgIDIzNywgOSwgMTQsIDIzOSwgMjM2LCA5LCAxNCwgMjM5LCAyMzUsIDksIDE0LCAyMzksIDIzNCwgOSwgMTQsIDIzOSwgMjMzLCAKLSAgICA5LCAxNCwgMjM5LCAyMzIsIDksIDE0LCAyMzksIDIzMSwgOSwgMTQsIDIzOSwgMjMwLCA5LCAxNCwgMjM5LCAyMjksIDksIAotICAgIDE0LCAyMzksIDIyOCwgOSwgMTQsIDIzOSwgMjI3LCA5LCAxNCwgMjM5LCAyMjYsIDksIDE0LCAyMzksIDIyNSwgOSwgMTQsIAotICAgIDIzOSwgMjI0LCA5LCAxNCwgMjM5LCAyMjMsIDksIDE0LCAyMzksIDIyMiwgOSwgMTQsIDIzOSwgMjIxLCA5LCAxNCwgMjM5LCAKLSAgICAyMjAsIDksIDE0LCAyMzksIDIxOSwgOSwgMTQsIDIzOSwgMjE4LCA5LCAxNCwgMjM5LCAyMTcsIDksIDE0LCAyMzksIDIxNiwgCi0gICAgOSwgMTQsIDIzOSwgMjE1LCA5LCAxNCwgMjM5LCAyMTQsIDksIDE0LCAyMzksIDIxMywgOSwgMTQsIDIzOSwgMjEyLCA5LCAKLSAgICAxNCwgMjM5LCAyMTEsIDksIDE0LCAyMzksIDIxMCwgOSwgMTQsIDIzOSwgMjA5LCA5LCAxNCwgMjM5LCAyMDgsIDksIDE0LCAKLSAgICAyMzksIDIwNywgOSwgMTQsIDIzOSwgMjA2LCA5LCAxNCwgMjM5LCAyMDUsIDksIDE0LCAyMzksIDIwNCwgOSwgMTQsIDIzOSwgCi0gICAgMjAzLCA5LCAxNCwgMjM5LCAyMDIsIDksIDE0LCAyMzksIDIwMSwgOSwgMTQsIDIzOSwgMjAwLCA5LCAxNCwgMjM5LCAxOTksIAotICAgIDksIDE0LCAyMzksIDE5OCwgOSwgMTQsIDIzOSwgMTk3LCA5LCAxNCwgMjM5LCAxOTYsIDksIDE0LCAyMzksIDE5NSwgOSwgCi0gICAgMTQsIDIzOSwgMTk0LCA5LCAxNCwgMjM5LCAxOTMsIDksIDE0LCAyMzksIDE5MiwgOSwgMTQsIDIzOSwgMTkxLCA5LCAxNCwgCi0gICAgMjM5LCAxOTAsIDksIDE0LCAyMzksIDE4OSwgOSwgMTQsIDIzOSwgMTg4LCA5LCAxNCwgMjM5LCAxODcsIDksIDE0LCAyMzksIAotICAgIDE4NiwgOSwgMTQsIDIzOSwgMTg1LCA5LCAxNCwgMjM5LCAxODQsIDksIDE0LCAyMzksIDE4MywgOSwgMTQsIDIzOSwgMTgyLCAKLSAgICA5LCAxNCwgMjM5LCAxODEsIDksIDE0LCAyMzksIDE4MCwgOSwgMTQsIDIzOSwgMTc5LCA5LCAxNCwgMjM5LCAxNzgsIDksIAotICAgIDE0LCAyMzksIDE3NywgOSwgMTQsIDIzOSwgMTc2LCA5LCAxNCwgMjM5LCAxNzUsIDksIDE0LCAyMzksIDE3NCwgOSwgMTQsIAotICAgIDIzOSwgMTczLCA5LCAxNCwgMjM5LCAxNzIsIDksIDE0LCAyMzksIDE3MSwgOSwgMTQsIDIzOSwgMTcwLCA5LCAxNCwgMjM5LCAKLSAgICAxNjksIDksIDE0LCAyMzksIDE2OCwgOSwgMTQsIDIzOSwgMTY3LCA5LCAxNCwgMjM5LCAxNjYsIDksIDE0LCAyMzksIDE2NSwgCi0gICAgOSwgMTQsIDIzOSwgMTY0LCA5LCAxNCwgMjM5LCAxNjMsIDksIDE0LCAyMzksIDE2MiwgOSwgMTQsIDIzOSwgMTYxLCA5LCAKLSAgICAxNCwgMjM5LCAxNjAsIDksIDE0LCAyMzksIDE1OSwgOSwgMTQsIDIzOSwgMTU4LCA5LCAxNCwgMjM5LCAxNTcsIDksIDE0LCAKLSAgICAyMzksIDE1NiwgOSwgMTQsIDIzOSwgMTU1LCA5LCAxNCwgMjM5LCAxNTQsIDksIDE0LCAyMzksIDE1MywgOSwgMTQsIDIzOSwgCi0gICAgMTUyLCA5LCAxNCwgMjM5LCAxNTEsIDksIDE0LCAyMzksIDE1MCwgOSwgMTQsIDIzOSwgMTQ5LCA5LCAxNCwgMjM5LCAxNDgsIAotICAgIDksIDE0LCAyMzksIDE0NywgOSwgMTQsIDIzOSwgMTQ2LCA5LCAxNCwgMjM5LCAxNDUsIDksIDE0LCAyMzksIDE0NCwgOSwgCi0gICAgMTQsIDIzOSwgMTQzLCA5LCAxNCwgMjM5LCAxNDIsIDksIDE0LCAyMzksIDE0MSwgOSwgMTQsIDIzOSwgMTQwLCA5LCAxNCwgCi0gICAgMjM5LCAxMzksIDksIDE0LCAyMzksIDEzOCwgOSwgMTQsIDIzOSwgMTM3LCA5LCAxNCwgMjM5LCAxMzYsIDksIDE0LCAyMzksIAotICAgIDEzNSwgOSwgMTQsIDIzOSwgMTM0LCA5LCAxNCwgMjM5LCAxMzMsIDksIDE0LCAyMzksIDEzMiwgOSwgMTQsIDIzOSwgMTMxLCAKLSAgICA5LCAxNCwgMjM5LCAxMzAsIDksIDE0LCAyMzksIDEyOSwgOSwgMTQsIDIzOSwgMTI4LCA5LCAxNCwgMjM5LCAxMjcsIDksIAotICAgIDE0LCAyMzksIDEyNiwgOSwgMTQsIDIzOSwgMTI1LCA5LCAxNCwgMjM5LCAxMjQsIDksIDE0LCAyMzksIDEyMywgOSwgMTQsIAotICAgIDIzOSwgMTIyLCA5LCAxNCwgMjM5LCAxMjEsIDksIDE0LCAyMzksIDEyMCwgOSwgMTQsIDIzOSwgMTE5LCA5LCAxNCwgMjM5LCAKLSAgICAxMTgsIDksIDE0LCAyMzksIDExNywgOSwgMTQsIDIzOSwgMTE2LCA5LCAxNCwgMjM5LCAxMTUsIDksIDE0LCAyMzksIDExNCwgCi0gICAgOSwgMTQsIDIzOSwgMTEzLCA5LCAxNCwgMjM5LCAxMTIsIDksIDE0LCAyMzksIDExMSwgOSwgMTQsIDIzOSwgMTEwLCA5LCAKLSAgICAxNCwgMjM5LCAxMDksIDksIDE0LCAyMzksIDEwOCwgOSwgMTQsIDIzOSwgMTA3LCA5LCAxNCwgMjM5LCAxMDYsIDksIDE0LCAKLSAgICAyMzksIDEwNSwgOSwgMTQsIDIzOSwgMTA0LCA5LCAxNCwgMjM5LCAxMDMsIDksIDE0LCAyMzksIDEwMiwgOSwgMTQsIDIzOSwgCi0gICAgMTAxLCA5LCAxNCwgMjM5LCAxMDAsIDksIDE0LCAyMzksIDk5LCA5LCAxNCwgMjM5LCA5OCwgOSwgMTQsIDIzOSwgOTcsIDksIAotICAgIDE0LCAyMzksIDk2LCA5LCAxNCwgMjM5LCA5NSwgOSwgMTQsIDIzOSwgOTQsIDksIDE0LCAyMzksIDkzLCA5LCAxNCwgMjM5LCAKLSAgICA5MiwgOSwgMTQsIDIzOSwgOTEsIDksIDE0LCAyMzksIDkwLCA5LCAxNCwgMjM5LCA4OSwgOSwgMTQsIDIzOSwgODgsIDksIAotICAgIDE0LCAyMzksIDg3LCA5LCAxNCwgMjM5LCA4NiwgOSwgMTQsIDIzOSwgODUsIDksIDE0LCAyMzksIDg0LCA5LCAxNCwgMjM5LCAKLSAgICA4MywgOSwgMTQsIDIzOSwgODIsIDksIDE0LCAyMzksIDgxLCA5LCAxNCwgMjM5LCA4MCwgOSwgMTQsIDIzOSwgNzksIDksIAotICAgIDE0LCAyMzksIDc4LCA5LCAxNCwgMjM5LCA3NywgOSwgMTQsIDIzOSwgNzYsIDksIDE0LCAyMzksIDc1LCA5LCAxNCwgMjM5LCAKLSAgICA3NCwgOSwgMTQsIDIzOSwgNzMsIDksIDE0LCAyMzksIDcyLCA5LCAxNCwgMjM5LCA3MSwgOSwgMTQsIDIzOSwgNzAsIDksIAotICAgIDE0LCAyMzksIDY5LCA5LCAxNCwgMjM5LCA2OCwgOSwgMTQsIDIzOSwgNjcsIDksIDE0LCAyMzksIDY2LCA5LCAxNCwgMjM5LCAKLSAgICA2NSwgOSwgMTQsIDIzOSwgNjQsIDksIDE0LCAyMzksIDYzLCA5LCAxNCwgMjM5LCA2MiwgOSwgMTQsIDIzOSwgNjEsIDksIAotICAgIDE0LCAyMzksIDYwLCA5LCAxNCwgMjM5LCA1OSwgOSwgMTQsIDIzOSwgNTgsIDksIDE0LCAyMzksIDU3LCA5LCAxNCwgMjM5LCAKLSAgICA1NiwgOSwgMTQsIDIzOSwgNTUsIDksIDE0LCAyMzksIDU0LCA5LCAxNCwgMjM5LCA1MywgOSwgMTQsIDIzOSwgNTIsIDksIAotICAgIDE0LCAyMzksIDUxLCA5LCAxNCwgMjM5LCA1MCwgOSwgMTQsIDIzOSwgNDksIDksIDE0LCAyMzksIDQ4LCA5LCAxNCwgMjM5LCAKLSAgICA0NywgOSwgMTQsIDIzOSwgNDYsIDksIDE0LCAyMzksIDQ1LCA5LCAxNCwgMjM5LCA0NCwgOSwgMTQsIDIzOSwgNDMsIDksIAotICAgIDE0LCAyMzksIDQyLCA5LCAxNCwgMjM5LCA0MSwgOSwgMTQsIDIzOSwgNDAsIDksIDE0LCAyMzksIDM5LCA5LCAxNCwgMjM5LCAKLSAgICAzOCwgOSwgMTQsIDIzOSwgMzcsIDksIDE0LCAyMzksIDM2LCA5LCAxNCwgMjM5LCAzNSwgOSwgMTQsIDIzOSwgMzQsIDksIAotICAgIDE0LCAyMzksIDMzLCA5LCAxNCwgMjM5LCAzMiwgOSwgMTQsIDIzOSwgMzEsIDksIDE0LCAyMzksIDMwLCA5LCAxNCwgMjM5LCAKLSAgICAyOSwgOSwgMTQsIDIzOSwgMjgsIDksIDE0LCAyMzksIDI3LCA5LCAxNCwgMjM5LCAyNiwgOSwgMTQsIDIzOSwgMjUsIDksIAotICAgIDE0LCAyMzksIDI0LCA5LCAxNCwgMjM5LCAyMywgOSwgMTQsIDIzOSwgMjIsIDksIDE0LCAyMzksIDIxLCA5LCAxNCwgMjM5LCAKLSAgICAyMCwgOSwgMTQsIDIzOSwgMTksIDksIDE0LCAyMzksIDE4LCA5LCAxNCwgMjM5LCAxNywgOSwgMTQsIDIzOSwgMTYsIDksIAotICAgIDE0LCAyMzksIDE1LCA5LCAxNCwgMjM5LCAxNCwgOSwgMTQsIDIzOSwgMTMsIDksIDE0LCAyMzksIDEyLCA5LCAxNCwgMjM5LCAKLSAgICAxMSwgOSwgMTQsIDIzOSwgMTAsIDksIDE0LCAyMzksIDksIDksIDE0LCAyMzksIDgsIDksIDE0LCAyMzksIDcsIDksIDE0LCAKLSAgICAyMzksIDYsIDksIDE0LCAyMzksIDUsIDksIDE0LCAyMzksIDQsIDksIDE0LCAyMzksIDMsIDksIDE0LCAyMzksIDIsIDksIAotICAgIDE0LCAyMzksIDEsIDksIDE0LCAyMzksIDAsIDksIDE0LCAyMzgsIDI1NSwgOSwgMTQsIDIzOCwgMjU0LCA5LCAxNCwgMjM4LCAKLSAgICAyNTMsIDksIDE0LCAyMzgsIDI1MiwgOSwgMTQsIDIzOCwgMjUxLCA5LCAxNCwgMjM4LCAyNTAsIDksIDE0LCAyMzgsIDI0OSwgCi0gICAgOSwgMTQsIDIzOCwgMjQ4LCA5LCAxNCwgMjM4LCAyNDcsIDksIDE0LCAyMzgsIDI0NiwgOSwgMTQsIDIzOCwgMjQ1LCA5LCAKLSAgICAxNCwgMjM4LCAyNDQsIDksIDE0LCAyMzgsIDI0MywgOSwgMTQsIDIzOCwgMjQyLCA5LCAxNCwgMjM4LCAyNDEsIDksIDE0LCAKLSAgICAyMzgsIDI0MCwgOSwgMTQsIDIzOCwgMjM5LCA5LCAxNCwgMjM4LCAyMzgsIDksIDE0LCAyMzgsIDIzNywgOSwgMTQsIDIzOCwgCi0gICAgMjM2LCA5LCAxNCwgMjM4LCAyMzUsIDksIDE0LCAyMzgsIDIzNCwgOSwgMTQsIDIzOCwgMjMzLCA5LCAxNCwgMjM4LCAyMzIsIAotICAgIDksIDE0LCAyMzgsIDIzMSwgOSwgMTQsIDIzOCwgMjMwLCA5LCAxNCwgMjM4LCAyMjksIDksIDE0LCAyMzgsIDIyOCwgOSwgCi0gICAgMTQsIDIzOCwgMjI3LCA5LCAxNCwgMjM4LCAyMjYsIDksIDE0LCAyMzgsIDIyNSwgOSwgMTQsIDIzOCwgMjI0LCA5LCAxNCwgCi0gICAgMjM4LCAyMjMsIDksIDE0LCAyMzgsIDIyMiwgOSwgMTQsIDIzOCwgMjIxLCA5LCAxNCwgMjM4LCAyMjAsIDksIDE0LCAyMzgsIAotICAgIDIxOSwgOSwgMTQsIDIzOCwgMjE4LCA5LCAxNCwgMjM4LCAyMTcsIDksIDE0LCAyMzgsIDIxNiwgOSwgMTQsIDIzOCwgMjE1LCAKLSAgICA5LCAxNCwgMjM4LCAyMTQsIDksIDE0LCAyMzgsIDIxMywgOSwgMTQsIDIzOCwgMjEyLCA5LCAxNCwgMjM4LCAyMTEsIDksIAotICAgIDE0LCAyMzgsIDIxMCwgOSwgMTQsIDIzOCwgMjA5LCA5LCAxNCwgMjM4LCAyMDgsIDksIDE0LCAyMzgsIDIwNywgOSwgMTQsIAotICAgIDIzOCwgMjA2LCA5LCAxNCwgMjM4LCAyMDUsIDksIDE0LCAyMzgsIDIwNCwgOSwgMTQsIDIzOCwgMjAzLCA5LCAxNCwgMjM4LCAKLSAgICAyMDIsIDksIDE0LCAyMzgsIDIwMSwgOSwgMTQsIDIzOCwgMjAwLCA5LCAxNCwgMjM4LCAxOTksIDksIDE0LCAyMzgsIDE5OCwgCi0gICAgOSwgMTQsIDIzOCwgMTk3LCA5LCAxNCwgMjM4LCAxOTYsIDksIDE0LCAyMzgsIDE5NSwgOSwgMTQsIDIzOCwgMTk0LCA5LCAKLSAgICAxNCwgMjM4LCAxOTMsIDksIDE0LCAyMzgsIDE5MiwgOSwgMTQsIDIzOCwgMTkxLCA5LCAxNCwgMjM4LCAxOTAsIDksIDE0LCAKLSAgICAyMzgsIDE4OSwgOSwgMTQsIDIzOCwgMTg4LCA5LCAxNCwgMjM4LCAxODcsIDksIDE0LCAyMzgsIDE4NiwgOSwgMTQsIDIzOCwgCi0gICAgMTg1LCA5LCAxNCwgMjM4LCAxODQsIDksIDE0LCAyMzgsIDE4MywgOSwgMTQsIDIzOCwgMTgyLCA5LCAxNCwgMjM4LCAxODEsIAotICAgIDksIDE0LCAyMzgsIDE4MCwgOSwgMTQsIDIzOCwgMTc5LCA5LCAxNCwgMjM4LCAxNzgsIDksIDE0LCAyMzgsIDE3NywgOSwgCi0gICAgMTQsIDIzOCwgMTc2LCA5LCAxNCwgMjM4LCAxNzUsIDksIDE0LCAyMzgsIDE3NCwgOSwgMTQsIDIzOCwgMTczLCA5LCAxNCwgCi0gICAgMjM4LCAxNzIsIDksIDE0LCAyMzgsIDE3MSwgOSwgMTQsIDIzOCwgMTcwLCA5LCAxNCwgMjM4LCAxNjksIDksIDE0LCAyMzgsIAotICAgIDE2OCwgOSwgMTQsIDIzOCwgMTY3LCA5LCAxNCwgMjM4LCAxNjYsIDksIDE0LCAyMzgsIDE2NSwgOSwgMTQsIDIzOCwgMTY0LCAKLSAgICA5LCAxNCwgMjM4LCAxNjMsIDksIDE0LCAyMzgsIDE2MiwgOSwgMTQsIDIzOCwgMTYxLCA5LCAxNCwgMjM4LCAxNjAsIDksIAotICAgIDE0LCAyMzgsIDE1OSwgOSwgMTQsIDIzOCwgMTU4LCA5LCAxNCwgMjM4LCAxNTcsIDksIDE0LCAyMzgsIDE1NiwgOSwgMTQsIAotICAgIDIzOCwgMTU1LCA5LCAxNCwgMjM4LCAxNTQsIDksIDE0LCAyMzgsIDE1MywgOSwgMTQsIDIzOCwgMTUyLCA5LCAxNCwgMjM4LCAKLSAgICAxNTEsIDksIDE0LCAyMzgsIDE1MCwgOSwgMTQsIDIzOCwgMTQ5LCA5LCAxNCwgMjM4LCAxNDgsIDksIDE0LCAyMzgsIDE0NywgCi0gICAgOSwgMTQsIDIzOCwgMTQ2LCA5LCAxNCwgMjM4LCAxNDUsIDksIDE0LCAyMzgsIDE0NCwgOSwgMTQsIDIzOCwgMTQzLCA5LCAKLSAgICAxNCwgMjM4LCAxNDIsIDksIDE0LCAyMzgsIDE0MSwgOSwgMTQsIDIzOCwgMTQwLCA5LCAxNCwgMjM4LCAxMzksIDksIDE0LCAKLSAgICAyMzgsIDEzOCwgOSwgMTQsIDIzOCwgMTM3LCA5LCAxNCwgMjM4LCAxMzYsIDksIDE0LCAyMzgsIDEzNSwgOSwgMTQsIDIzOCwgCi0gICAgMTM0LCA5LCAxNCwgMjM4LCAxMzMsIDksIDE0LCAyMzgsIDEzMiwgOSwgMTQsIDIzOCwgMTMxLCA5LCAxNCwgMjM4LCAxMzAsIAotICAgIDksIDE0LCAyMzgsIDEyOSwgOSwgMTQsIDIzOCwgMTI4LCA5LCAxNCwgMjM4LCAxMjcsIDksIDE0LCAyMzgsIDEyNiwgOSwgCi0gICAgMTQsIDIzOCwgMTI1LCA5LCAxNCwgMjM4LCAxMjQsIDksIDE0LCAyMzgsIDEyMywgOSwgMTQsIDIzOCwgMTIyLCA5LCAxNCwgCi0gICAgMjM4LCAxMjEsIDksIDE0LCAyMzgsIDEyMCwgOSwgMTQsIDIzOCwgMTE5LCA5LCAxNCwgMjM4LCAxMTgsIDksIDE0LCAyMzgsIAotICAgIDExNywgOSwgMTQsIDIzOCwgMTE2LCA5LCAxNCwgMjM4LCAxMTUsIDksIDE0LCAyMzgsIDExNCwgOSwgMTQsIDIzOCwgMTEzLCAKLSAgICA5LCAxNCwgMjM4LCAxMTIsIDksIDE0LCAyMzgsIDExMSwgOSwgMTQsIDIzOCwgMTEwLCA5LCAxNCwgMjM4LCAxMDksIDksIAotICAgIDE0LCAyMzgsIDEwOCwgOSwgMTQsIDIzOCwgMTA3LCA5LCAxNCwgMjM4LCAxMDYsIDksIDE0LCAyMzgsIDEwNSwgOSwgMTQsIAotICAgIDIzOCwgMTA0LCA5LCAxNCwgMjM4LCAxMDMsIDksIDE0LCAyMzgsIDEwMiwgOSwgMTQsIDIzOCwgMTAxLCA5LCAxNCwgMjM4LCAKLSAgICAxMDAsIDksIDE0LCAyMzgsIDk5LCA5LCAxNCwgMjM4LCA5OCwgOSwgMTQsIDIzOCwgOTcsIDksIDE0LCAyMzgsIDk2LCA5LCAKLSAgICAxNCwgMjM4LCA5NSwgOSwgMTQsIDIzOCwgOTQsIDksIDE0LCAyMzgsIDkzLCA5LCAxNCwgMjM4LCA5MiwgOSwgMTQsIDIzOCwgCi0gICAgOTEsIDksIDE0LCAyMzgsIDkwLCA5LCAxNCwgMjM4LCA4OSwgOSwgMTQsIDIzOCwgODgsIDksIDE0LCAyMzgsIDg3LCA5LCAKLSAgICAxNCwgMjM4LCA4NiwgOSwgMTQsIDIzOCwgODUsIDksIDE0LCAyMzgsIDg0LCA5LCAxNCwgMjM4LCA4MywgOSwgMTQsIDIzOCwgCi0gICAgODIsIDksIDE0LCAyMzgsIDgxLCA5LCAxNCwgMjM4LCA4MCwgOSwgMTQsIDIzOCwgNzksIDksIDE0LCAyMzgsIDc4LCA5LCAKLSAgICAxNCwgMjM4LCA3NywgOSwgMTQsIDIzOCwgNzYsIDksIDE0LCAyMzgsIDc1LCA5LCAxNCwgMjM4LCA3NCwgOSwgMTQsIDIzOCwgCi0gICAgNzMsIDIzMywgOTAsIDIxNywgODQsIDEyOSwgMjE5LCAxOCwgMTI5LCAyNDUsIDMxLCA3OCwgMTI5LCAyMjMsIDI1NCwgNzgsIAotICAgIDEyOSwgNTQsIDUwLCAxMjksIDI0NywgMTMyLCA1MCwgMTI5LCAyMjUsIDE4MiwgNTAsIDEyOSwgMjU0LCAxMjYsIDEyOSwgCi0gICAgMjU0LCA1NywgMTI5LCA0MywgMjI2LCAzLCAxMjksIDQ0LCAyMjYsIDMsIDEyOSwgMjUzLCAyMTYsIDEyOSwgOTYsIDUwLCAKLSAgICAxMjksIDI0OSwgMjE5LCAxMjksIDI0MCwgMTY3LCAxMjksIDI0MywgMjI5LCAyMTgsIDEyOSwgMTI5LCAyMTksIDQ2LCAxMjksIAotICAgIDIxLCAyMTAsIDg2LCAxMjksIDIxLCAxMTAsIDEyOSwgMjEsIDEwNSwgMTI5LCAyMSwgMTU4LCAxMjksIDIxLCAxNjEsIDEyOSwgCi0gICAgMjEsIDE4OSwgMTI5LCAyMSwgMTk0LCAxMjksIDIxLCAxOTgsIDEyOSwgMjEsIDE5NSwgMTI5LCAyMSwgMjAwLCAxMjksIAotICAgIDI0OSwgMjI2LCAxMjksIDIyMCwgMTUwLCAxMjksIDIzMywgMTUsIDUwLCAxMjksIDI0NSwgOTgsIDUwLCAxMjksIDI0MiwgCi0gICAgMTMwLCA1MCwgMTI5LCAyMjQsIDEzLCA3OCwgMTI5LCAyNDksIDIxNywgMjUzLCAyMDYsIDEyOSwgNywgNiwgMSwgNjEsIAotICAgIDEyOSwgNywgNiwgMSwgMjUzLCAxNTgsIDEyOSwgNywgNiwgMSwgMjUxLCA2NiwgMTI5LCA3LCA2LCAxLCAyNDksIDYwLCAKLSAgICAxMjksIDcsIDYsIDEsIDc1LCAxMjksIDcsIDYsIDEsIDI0NSwgNiwgMTI5LCA3LCA2LCAxLCAyNDMsIDIwMiwgMTI5LCA3LCAKLSAgICA2LCAxLCAyNDIsIDYwLCAxMjksIDcsIDYsIDEsIDczLCAxMjksIDcsIDYsIDEsIDIzNSwgMTQ0LCAxMjksIDcsIDYsIDEsIAotICAgIDIzNSwgMjMsIDEyOSwgNywgNiwgMSwgMTU2LCAxMjksIDcsIDYsIDEsIDE5MywgMTI5LCA3LCA2LCAxLCAyMzAsIDI1LCAKLSAgICAxMjksIDcsIDYsIDEsIDc2LCAxMjksIDcsIDYsIDEsIDIyNiwgMTA1LCAxMjksIDcsIDYsIDEsIDIyNCwgOTYsIDEyOSwgNywgCi0gICAgNiwgMSwgMTUzLCAxMjksIDcsIDYsIDEsIDIyMiwgOTEsIDEyOSwgNywgNiwgMSwgMjE3LCAxNTIsIDEyOSwgNywgNiwgMSwgCisgICAgNDUsIDEwOCwgMTYsIDMxLCAyMjUsIDEyNiwgMjE4LCA0NSwgMTA4LCAxNiwgMzEsIDg1LCAyMTgsIDQ1LCAxMDgsIDE2LCAKKyAgICAzMSwgMjMxLCA1NiwgMjE4LCA3MiwgMTA4LCAxNiwgMzEsIDIzMSwgNTYsIDIxOCwgNzEsIDEwOCwgMTYsIDMxLCAyMzEsIAorICAgIDU2LCAyMTgsIDcwLCAxMDgsIDE2LCAzMSwgMjUwLCAzOSwgMTA4LCAxNiwgMzEsIDIyMiwgMiwgMTA4LCAxNiwgMzEsIDIyOCwgCisgICAgMTg5LCAxMDgsIDE2LCAzMSwgMjEzLCAxNDEsIDEwOCwgMTYsIDMxLCAyMTMsIDE0MCwgMTA4LCAxNiwgMzEsIDIyMiwgMjA1LCAKKyAgICAyMjIsIDIsIDEwOCwgMTYsIDMxLCAyMjIsIDIwNSwgMjIyLCAxLCAxMDgsIDE2LCAzMSwgMjQyLCAxNjcsIDEwOCwgMTYsIAorICAgIDMxLCAyMTksIDE2NywgMTA4LCAxNiwgMzEsIDIzNSwgMTc4LCAyMjYsIDE1NCwgMTA4LCAxNiwgMzEsIDIzNSwgMTc4LCAKKyAgICAyMjYsIDE1MywgMTA4LCAxNiwgMzEsIDI0OSwgMTM1LCA2NCwgMjM1LCAxNzcsIDEwOCwgMTYsIDMxLCAyMjMsIDEwMiwgNjQsIAorICAgIDIzNSwgMTc3LCAxMDgsIDE2LCAzMSwgMjQ5LCAxNjksIDIyNiwgMTU0LCAxMDgsIDE2LCAzMSwgMjM1LCAxNzYsIDIyNiwgCisgICAgMTU0LCAxMDgsIDE2LCAzMSwgMjE4LCA3MywgNjQsIDI0OSwgMTY4LCAxMDgsIDE2LCAzMSwgMjQ5LCAxMzUsIDY0LCAyNDksIAorICAgIDE2OCwgMTA4LCAxNiwgMzEsIDI0OSwgMTM1LCA2NCwgMjQ5LCAxNjcsIDEwOCwgMTYsIDMxLCAyNDksIDE2OSwgMjU0LCA4NCwgCisgICAgMTA4LCAxNiwgMzEsIDIyMiwgMywgNjQsIDI0OSwgMTY5LCAyNTQsIDg0LCAxMDgsIDE2LCAzMSwgMjE4LCA3MywgNjQsIAorICAgIDIyMiwgMywgNjQsIDI0OSwgMTY4LCAxMDgsIDE2LCAzMSwgMjEzLCAyNDMsIDEwOCwgMTYsIDMxLCAyMTYsIDg1LCAyMjYsIAorICAgIDE1NCwgMTA4LCAxNiwgMzEsIDIzMywgNTgsIDIyNiwgMTU0LCAxMDgsIDE2LCAzMSwgMjU0LCA4MywgMjI2LCAxNTQsIDEwOCwgCisgICAgMTYsIDMxLCAyMTgsIDczLCA2NCwgMjU0LCA4MiwgMTA4LCAxNiwgMzEsIDIyMiwgMywgNjQsIDI1NCwgODIsIDEwOCwgMTYsIAorICAgIDMxLCAyMTgsIDczLCA2NCwgMjIyLCAzLCA2NCwgMjU0LCA4MiwgMTA4LCAxNiwgMzEsIDIxMywgMTU4LCA2NCwgMjU0LCA4MiwgCisgICAgMTA4LCAxNiwgMzEsIDIyMywgMTAyLCA2NCwgMjU0LCA4MiwgMTA4LCAxNiwgMzEsIDIyMywgMTAyLCA2NCwgMjU0LCA4MSwgCisgICAgMTA4LCAxNiwgMzEsIDIyMywgMTAxLCAxMDgsIDE2LCAzMSwgMjIzLCAxMDAsIDEwOCwgMTYsIDMxLCAyMjMsIDk5LCAxMDgsIAorICAgIDE2LCAzMSwgMjIzLCA5OCwgMTA4LCAxNiwgMzEsIDI1NCwgMTU4LCAxMDgsIDE2LCAzMSwgMjU0LCAxNTcsIDEwOCwgMTYsIAorICAgIDMxLCAyMzEsIDE2NCwgMTA4LCAxNiwgMzEsIDIyMiwgOCwgMTA4LCAxNiwgMzEsIDI1MywgMjQ3LCAxMDgsIDE2LCAzMSwgCisgICAgMjIzLCAxMjYsIDEwOCwgMTYsIDMxLCAyMjMsIDEyNSwgMTA4LCAxNiwgMzEsIDI1MywgMTg0LCAxMDgsIDE2LCAzMSwgMjUxLCAKKyAgICAyMzAsIDIyNiwgMTU0LCAxMDgsIDE2LCAzMSwgMjE3LCA1MCwgMTA4LCAxNiwgMzEsIDIxNywgNDksIDEwOCwgMTYsIDMxLCAKKyAgICAyMjQsIDksIDIzMiwgMjIzLCAxMDgsIDE2LCAzMSwgMjUxLCAxODQsIDEwOCwgMTYsIDMxLCAyNTEsIDE4MywgMTA4LCAxNiwgCisgICAgMzEsIDI1MSwgMTgyLCAxMDgsIDE2LCAzMSwgMjU0LCAxMzksIDEwOCwgMTYsIDMxLCAyMjYsIDIxOSwgMTA4LCAxNiwgMzEsIAorICAgIDIxOCwgMjQ5LCAxMDgsIDE2LCAzMSwgMjE2LCA4MywgMTA4LCAxNiwgMzEsIDI0MiwgOTcsIDEwOCwgMTYsIDMxLCAyMTIsIAorICAgIDI4LCAxMDgsIDE2LCAzMSwgMjI0LCAyMjcsIDEwOCwgMTYsIDMxLCAyNTEsIDE1LCAxMDgsIDE2LCAzMSwgMjE1LCA4NiwgCisgICAgMTA4LCAxNiwgMzEsIDI1MCwgMjQ3LCAyMzAsIDEyMywgMTA4LCAxNiwgMzEsIDIyMSwgMjAzLCA2NCwgMjM1LCA1NiwgMTA4LCAKKyAgICAxNiwgMzEsIDI1MSwgMjYsIDEwOCwgMTYsIDMxLCAyMTUsIDIyMCwgMTA4LCAxNiwgMzEsIDIxOCwgMTU1LCAyMTUsIDIyMCwgCisgICAgMTA4LCAxNiwgMzEsIDIzMiwgMTQ5LCAxMDgsIDE2LCAzMSwgMjE5LCA1NywgMTA4LCAxNiwgMzEsIDIxNCwgMTQyLCAxMDgsIAorICAgIDE2LCAzMSwgMjQwLCAyNDcsIDI0NiwgNjUsIDEwOCwgMTYsIDMxLCAyNTMsIDIyOCwgMTA4LCAxNiwgMzEsIDIyNCwgMjM1LCAKKyAgICAyNTMsIDIyOCwgMTA4LCAxNiwgMzEsIDI1MSwgMTQzLCAxMDgsIDE2LCAzMSwgMjI0LCAyMjYsIDI1MSwgMTQzLCAxMDgsIAorICAgIDE2LCAzMSwgMjU0LCAxMzYsIDEwOCwgMTYsIDMxLCAyMTgsIDExOCwgMjE4LCAyNywgMjE4LCAxMTcsIDEwOCwgMTYsIDMxLCAKKyAgICAyMTgsIDExOCwgMjE4LCAyNywgMjE4LCAxMTYsIDEwOCwgMTYsIDMxLCAyMTgsIDY5LCAxMDgsIDE2LCAzMSwgMjI0LCAyMDEsIAorICAgIDEwOCwgMTYsIDMxLCAyNDcsIDE4MiwgMTA4LCAxNiwgMzEsIDI0NywgMTg0LCAxMDgsIDE2LCAzMSwgMjQ3LCAxODMsIDEwOCwgCisgICAgMTYsIDMxLCAyMjQsIDEzMiwgMTA4LCAxNiwgMzEsIDIyNCwgMTIxLCAxMDgsIDE2LCAzMSwgMjQ5LCAxMjMsIDEwOCwgMTYsIAorICAgIDMxLCAyNDksIDEyMiwgMTA4LCAxNiwgMzEsIDI0OSwgMTIxLCAxMDgsIDE2LCAzMSwgMjQ5LCAxMjAsIDEwOCwgMTYsIDMxLCAKKyAgICAyNDksIDExOSwgMTA4LCAxNiwgMzEsIDI1NCwgMTcwLCAxMDgsIDE2LCAzMSwgMjUyLCAxMjAsIDY0LCAyMzEsIDE1MCwgCisgICAgMTA4LCAxNiwgMzEsIDI1MiwgMTIwLCA2NCwgMjE0LCAxNywgMTA4LCAxNiwgMzEsIDIyMywgNTgsIDEwOCwgMTYsIDMxLCAKKyAgICAyNDAsIDIzOSwgMTA4LCAxNiwgMzEsIDIyOCwgMjEzLCAxMDgsIDE2LCAzMSwgMjQ4LCAxNDYsIDEwOCwgMTYsIDMxLCAyMzAsIAorICAgIDEzNSwgMTA4LCAxNiwgMzEsIDE2MywgMjQ2LCA5NSwgMTA4LCAxNiwgMzEsIDE2MywgMjI2LCAxMzMsIDksIDE0LCAyNDAsIAorICAgIDEwMywgOSwgMTQsIDI0MCwgMTAyLCA5LCAxNCwgMjQwLCAxMDEsIDksIDE0LCAyNDAsIDEwMCwgOSwgMTQsIDI0MCwgOTksIAorICAgIDksIDE0LCAyNDAsIDk4LCA5LCAxNCwgMjQwLCA5NywgOSwgMTQsIDI0MCwgOTYsIDksIDE0LCAyNDAsIDk1LCA5LCAxNCwgCisgICAgMjQwLCA5NCwgOSwgMTQsIDI0MCwgOTMsIDksIDE0LCAyNDAsIDkyLCA5LCAxNCwgMjQwLCA5MSwgOSwgMTQsIDI0MCwgOTAsIAorICAgIDksIDE0LCAyNDAsIDg5LCA5LCAxNCwgMjQwLCA4OCwgOSwgMTQsIDI0MCwgODcsIDksIDE0LCAyNDAsIDg2LCA5LCAxNCwgCisgICAgMjQwLCA4NSwgOSwgMTQsIDI0MCwgODQsIDksIDE0LCAyNDAsIDgzLCA5LCAxNCwgMjQwLCA4MiwgOSwgMTQsIDI0MCwgODEsIAorICAgIDksIDE0LCAyNDAsIDgwLCA5LCAxNCwgMjQwLCA3OSwgOSwgMTQsIDI0MCwgNzgsIDksIDE0LCAyNDAsIDc3LCA5LCAxNCwgCisgICAgMjQwLCA3NiwgOSwgMTQsIDI0MCwgNzUsIDksIDE0LCAyNDAsIDc0LCA5LCAxNCwgMjQwLCA3MywgOSwgMTQsIDI0MCwgNzIsIAorICAgIDksIDE0LCAyNDAsIDcxLCA5LCAxNCwgMjQwLCA3MCwgOSwgMTQsIDI0MCwgNjksIDksIDE0LCAyNDAsIDY4LCA5LCAxNCwgCisgICAgMjQwLCA2NywgOSwgMTQsIDI0MCwgNjYsIDksIDE0LCAyNDAsIDY1LCA5LCAxNCwgMjQwLCA2NCwgOSwgMTQsIDI0MCwgNjMsIAorICAgIDksIDE0LCAyNDAsIDYyLCA5LCAxNCwgMjQwLCA2MSwgOSwgMTQsIDI0MCwgNjAsIDksIDE0LCAyNDAsIDU5LCA5LCAxNCwgCisgICAgMjQwLCA1OCwgOSwgMTQsIDI0MCwgNTcsIDksIDE0LCAyNDAsIDU2LCA5LCAxNCwgMjQwLCA1NSwgOSwgMTQsIDI0MCwgNTQsIAorICAgIDksIDE0LCAyNDAsIDUzLCA5LCAxNCwgMjQwLCA1MiwgOSwgMTQsIDI0MCwgNTEsIDksIDE0LCAyNDAsIDUwLCA5LCAxNCwgCisgICAgMjQwLCA0OSwgOSwgMTQsIDI0MCwgNDgsIDksIDE0LCAyNDAsIDQ3LCA5LCAxNCwgMjQwLCA0NiwgOSwgMTQsIDI0MCwgNDUsIAorICAgIDksIDE0LCAyNDAsIDQ0LCA5LCAxNCwgMjQwLCA0MywgOSwgMTQsIDI0MCwgNDIsIDksIDE0LCAyNDAsIDQxLCA5LCAxNCwgCisgICAgMjQwLCA0MCwgOSwgMTQsIDI0MCwgMzksIDksIDE0LCAyNDAsIDM4LCA5LCAxNCwgMjQwLCAzNywgOSwgMTQsIDI0MCwgMzYsIAorICAgIDksIDE0LCAyNDAsIDM1LCA5LCAxNCwgMjQwLCAzNCwgOSwgMTQsIDI0MCwgMzMsIDksIDE0LCAyNDAsIDMyLCA5LCAxNCwgCisgICAgMjQwLCAzMSwgOSwgMTQsIDI0MCwgMzAsIDksIDE0LCAyNDAsIDI5LCA5LCAxNCwgMjQwLCAyOCwgOSwgMTQsIDI0MCwgMjcsIAorICAgIDksIDE0LCAyNDAsIDI2LCA5LCAxNCwgMjQwLCAyNSwgOSwgMTQsIDI0MCwgMjQsIDksIDE0LCAyNDAsIDIzLCA5LCAxNCwgCisgICAgMjQwLCAyMiwgOSwgMTQsIDI0MCwgMjEsIDksIDE0LCAyNDAsIDIwLCA5LCAxNCwgMjQwLCAxOSwgOSwgMTQsIDI0MCwgMTgsIAorICAgIDksIDE0LCAyNDAsIDE3LCA5LCAxNCwgMjQwLCAxNiwgOSwgMTQsIDI0MCwgMTUsIDksIDE0LCAyNDAsIDE0LCA5LCAxNCwgCisgICAgMjQwLCAxMywgOSwgMTQsIDI0MCwgMTIsIDksIDE0LCAyNDAsIDExLCA5LCAxNCwgMjQwLCAxMCwgOSwgMTQsIDI0MCwgOSwgCisgICAgOSwgMTQsIDI0MCwgOCwgOSwgMTQsIDI0MCwgNywgOSwgMTQsIDI0MCwgNiwgOSwgMTQsIDI0MCwgNSwgOSwgMTQsIDI0MCwgCisgICAgNCwgOSwgMTQsIDI0MCwgMywgOSwgMTQsIDI0MCwgMiwgOSwgMTQsIDI0MCwgMSwgOSwgMTQsIDI0MCwgMCwgOSwgMTQsIAorICAgIDIzOSwgMjU1LCA5LCAxNCwgMjM5LCAyNTQsIDksIDE0LCAyMzksIDI1MywgOSwgMTQsIDIzOSwgMjUyLCA5LCAxNCwgMjM5LCAKKyAgICAyNTEsIDksIDE0LCAyMzksIDI1MCwgOSwgMTQsIDIzOSwgMjQ5LCA5LCAxNCwgMjM5LCAyNDgsIDksIDE0LCAyMzksIDI0NywgCisgICAgOSwgMTQsIDIzOSwgMjQ2LCA5LCAxNCwgMjM5LCAyNDUsIDksIDE0LCAyMzksIDI0NCwgOSwgMTQsIDIzOSwgMjQzLCA5LCAKKyAgICAxNCwgMjM5LCAyNDIsIDksIDE0LCAyMzksIDI0MSwgOSwgMTQsIDIzOSwgMjQwLCA5LCAxNCwgMjM5LCAyMzksIDksIDE0LCAKKyAgICAyMzksIDIzOCwgOSwgMTQsIDIzOSwgMjM3LCA5LCAxNCwgMjM5LCAyMzYsIDksIDE0LCAyMzksIDIzNSwgOSwgMTQsIDIzOSwgCisgICAgMjM0LCA5LCAxNCwgMjM5LCAyMzMsIDksIDE0LCAyMzksIDIzMiwgOSwgMTQsIDIzOSwgMjMxLCA5LCAxNCwgMjM5LCAyMzAsIAorICAgIDksIDE0LCAyMzksIDIyOSwgOSwgMTQsIDIzOSwgMjI4LCA5LCAxNCwgMjM5LCAyMjcsIDksIDE0LCAyMzksIDIyNiwgOSwgCisgICAgMTQsIDIzOSwgMjI1LCA5LCAxNCwgMjM5LCAyMjQsIDksIDE0LCAyMzksIDIyMywgOSwgMTQsIDIzOSwgMjIyLCA5LCAxNCwgCisgICAgMjM5LCAyMjEsIDksIDE0LCAyMzksIDIyMCwgOSwgMTQsIDIzOSwgMjE5LCA5LCAxNCwgMjM5LCAyMTgsIDksIDE0LCAyMzksIAorICAgIDIxNywgOSwgMTQsIDIzOSwgMjE2LCA5LCAxNCwgMjM5LCAyMTUsIDksIDE0LCAyMzksIDIxNCwgOSwgMTQsIDIzOSwgMjEzLCAKKyAgICA5LCAxNCwgMjM5LCAyMTIsIDksIDE0LCAyMzksIDIxMSwgOSwgMTQsIDIzOSwgMjEwLCA5LCAxNCwgMjM5LCAyMDksIDksIAorICAgIDE0LCAyMzksIDIwOCwgOSwgMTQsIDIzOSwgMjA3LCA5LCAxNCwgMjM5LCAyMDYsIDksIDE0LCAyMzksIDIwNSwgOSwgMTQsIAorICAgIDIzOSwgMjA0LCA5LCAxNCwgMjM5LCAyMDMsIDksIDE0LCAyMzksIDIwMiwgOSwgMTQsIDIzOSwgMjAxLCA5LCAxNCwgMjM5LCAKKyAgICAyMDAsIDksIDE0LCAyMzksIDE5OSwgOSwgMTQsIDIzOSwgMTk4LCA5LCAxNCwgMjM5LCAxOTcsIDksIDE0LCAyMzksIDE5NiwgCisgICAgOSwgMTQsIDIzOSwgMTk1LCA5LCAxNCwgMjM5LCAxOTQsIDksIDE0LCAyMzksIDE5MywgOSwgMTQsIDIzOSwgMTkyLCA5LCAKKyAgICAxNCwgMjM5LCAxOTEsIDksIDE0LCAyMzksIDE5MCwgOSwgMTQsIDIzOSwgMTg5LCA5LCAxNCwgMjM5LCAxODgsIDksIDE0LCAKKyAgICAyMzksIDE4NywgOSwgMTQsIDIzOSwgMTg2LCA5LCAxNCwgMjM5LCAxODUsIDksIDE0LCAyMzksIDE4NCwgOSwgMTQsIDIzOSwgCisgICAgMTgzLCA5LCAxNCwgMjM5LCAxODIsIDksIDE0LCAyMzksIDE4MSwgOSwgMTQsIDIzOSwgMTgwLCA5LCAxNCwgMjM5LCAxNzksIAorICAgIDksIDE0LCAyMzksIDE3OCwgOSwgMTQsIDIzOSwgMTc3LCA5LCAxNCwgMjM5LCAxNzYsIDksIDE0LCAyMzksIDE3NSwgOSwgCisgICAgMTQsIDIzOSwgMTc0LCA5LCAxNCwgMjM5LCAxNzMsIDksIDE0LCAyMzksIDE3MiwgOSwgMTQsIDIzOSwgMTcxLCA5LCAxNCwgCisgICAgMjM5LCAxNzAsIDksIDE0LCAyMzksIDE2OSwgOSwgMTQsIDIzOSwgMTY4LCA5LCAxNCwgMjM5LCAxNjcsIDksIDE0LCAyMzksIAorICAgIDE2NiwgOSwgMTQsIDIzOSwgMTY1LCA5LCAxNCwgMjM5LCAxNjQsIDksIDE0LCAyMzksIDE2MywgOSwgMTQsIDIzOSwgMTYyLCAKKyAgICA5LCAxNCwgMjM5LCAxNjEsIDksIDE0LCAyMzksIDE2MCwgOSwgMTQsIDIzOSwgMTU5LCA5LCAxNCwgMjM5LCAxNTgsIDksIAorICAgIDE0LCAyMzksIDE1NywgOSwgMTQsIDIzOSwgMTU2LCA5LCAxNCwgMjM5LCAxNTUsIDksIDE0LCAyMzksIDE1NCwgOSwgMTQsIAorICAgIDIzOSwgMTUzLCA5LCAxNCwgMjM5LCAxNTIsIDksIDE0LCAyMzksIDE1MSwgOSwgMTQsIDIzOSwgMTUwLCA5LCAxNCwgMjM5LCAKKyAgICAxNDksIDksIDE0LCAyMzksIDE0OCwgOSwgMTQsIDIzOSwgMTQ3LCA5LCAxNCwgMjM5LCAxNDYsIDksIDE0LCAyMzksIDE0NSwgCisgICAgOSwgMTQsIDIzOSwgMTQ0LCA5LCAxNCwgMjM5LCAxNDMsIDksIDE0LCAyMzksIDE0MiwgOSwgMTQsIDIzOSwgMTQxLCA5LCAKKyAgICAxNCwgMjM5LCAxNDAsIDksIDE0LCAyMzksIDEzOSwgOSwgMTQsIDIzOSwgMTM4LCA5LCAxNCwgMjM5LCAxMzcsIDksIDE0LCAKKyAgICAyMzksIDEzNiwgOSwgMTQsIDIzOSwgMTM1LCA5LCAxNCwgMjM5LCAxMzQsIDksIDE0LCAyMzksIDEzMywgOSwgMTQsIDIzOSwgCisgICAgMTMyLCA5LCAxNCwgMjM5LCAxMzEsIDksIDE0LCAyMzksIDEzMCwgOSwgMTQsIDIzOSwgMTI5LCA5LCAxNCwgMjM5LCAxMjgsIAorICAgIDksIDE0LCAyMzksIDEyNywgOSwgMTQsIDIzOSwgMTI2LCA5LCAxNCwgMjM5LCAxMjUsIDksIDE0LCAyMzksIDEyNCwgOSwgCisgICAgMTQsIDIzOSwgMTIzLCA5LCAxNCwgMjM5LCAxMjIsIDksIDE0LCAyMzksIDEyMSwgOSwgMTQsIDIzOSwgMTIwLCA5LCAxNCwgCisgICAgMjM5LCAxMTksIDksIDE0LCAyMzksIDExOCwgOSwgMTQsIDIzOSwgMTE3LCA5LCAxNCwgMjM5LCAxMTYsIDksIDE0LCAyMzksIAorICAgIDExNSwgOSwgMTQsIDIzOSwgMTE0LCA5LCAxNCwgMjM5LCAxMTMsIDksIDE0LCAyMzksIDExMiwgOSwgMTQsIDIzOSwgMTExLCAKKyAgICA5LCAxNCwgMjM5LCAxMTAsIDksIDE0LCAyMzksIDEwOSwgOSwgMTQsIDIzOSwgMTA4LCA5LCAxNCwgMjM5LCAxMDcsIDksIAorICAgIDE0LCAyMzksIDEwNiwgOSwgMTQsIDIzOSwgMTA1LCA5LCAxNCwgMjM5LCAxMDQsIDksIDE0LCAyMzksIDEwMywgOSwgMTQsIAorICAgIDIzOSwgMTAyLCA5LCAxNCwgMjM5LCAxMDEsIDksIDE0LCAyMzksIDEwMCwgOSwgMTQsIDIzOSwgOTksIDksIDE0LCAyMzksIAorICAgIDk4LCA5LCAxNCwgMjM5LCA5NywgOSwgMTQsIDIzOSwgOTYsIDksIDE0LCAyMzksIDk1LCA5LCAxNCwgMjM5LCA5NCwgOSwgCisgICAgMTQsIDIzOSwgOTMsIDksIDE0LCAyMzksIDkyLCA5LCAxNCwgMjM5LCA5MSwgOSwgMTQsIDIzOSwgOTAsIDksIDE0LCAyMzksIAorICAgIDg5LCA5LCAxNCwgMjM5LCA4OCwgOSwgMTQsIDIzOSwgODcsIDksIDE0LCAyMzksIDg2LCA5LCAxNCwgMjM5LCA4NSwgOSwgCisgICAgMTQsIDIzOSwgODQsIDksIDE0LCAyMzksIDgzLCA5LCAxNCwgMjM5LCA4MiwgOSwgMTQsIDIzOSwgODEsIDksIDE0LCAyMzksIAorICAgIDgwLCA5LCAxNCwgMjM5LCA3OSwgOSwgMTQsIDIzOSwgNzgsIDksIDE0LCAyMzksIDc3LCA5LCAxNCwgMjM5LCA3NiwgOSwgCisgICAgMTQsIDIzOSwgNzUsIDksIDE0LCAyMzksIDc0LCA5LCAxNCwgMjM5LCA3MywgOSwgMTQsIDIzOSwgNzIsIDksIDE0LCAyMzksIAorICAgIDcxLCA5LCAxNCwgMjM5LCA3MCwgOSwgMTQsIDIzOSwgNjksIDksIDE0LCAyMzksIDY4LCA5LCAxNCwgMjM5LCA2NywgOSwgCisgICAgMTQsIDIzOSwgNjYsIDksIDE0LCAyMzksIDY1LCA5LCAxNCwgMjM5LCA2NCwgOSwgMTQsIDIzOSwgNjMsIDksIDE0LCAyMzksIAorICAgIDYyLCA5LCAxNCwgMjM5LCA2MSwgOSwgMTQsIDIzOSwgNjAsIDksIDE0LCAyMzksIDU5LCA5LCAxNCwgMjM5LCA1OCwgOSwgCisgICAgMTQsIDIzOSwgNTcsIDksIDE0LCAyMzksIDU2LCA5LCAxNCwgMjM5LCA1NSwgOSwgMTQsIDIzOSwgNTQsIDksIDE0LCAyMzksIAorICAgIDUzLCA5LCAxNCwgMjM5LCA1MiwgOSwgMTQsIDIzOSwgNTEsIDksIDE0LCAyMzksIDUwLCA5LCAxNCwgMjM5LCA0OSwgOSwgCisgICAgMTQsIDIzOSwgNDgsIDksIDE0LCAyMzksIDQ3LCA5LCAxNCwgMjM5LCA0NiwgOSwgMTQsIDIzOSwgNDUsIDksIDE0LCAyMzksIAorICAgIDQ0LCA5LCAxNCwgMjM5LCA0MywgOSwgMTQsIDIzOSwgNDIsIDksIDE0LCAyMzksIDQxLCA5LCAxNCwgMjM5LCA0MCwgOSwgCisgICAgMTQsIDIzOSwgMzksIDksIDE0LCAyMzksIDM4LCA5LCAxNCwgMjM5LCAzNywgOSwgMTQsIDIzOSwgMzYsIDksIDE0LCAyMzksIAorICAgIDM1LCA5LCAxNCwgMjM5LCAzNCwgOSwgMTQsIDIzOSwgMzMsIDksIDE0LCAyMzksIDMyLCA5LCAxNCwgMjM5LCAzMSwgOSwgCisgICAgMTQsIDIzOSwgMzAsIDksIDE0LCAyMzksIDI5LCA5LCAxNCwgMjM5LCAyOCwgOSwgMTQsIDIzOSwgMjcsIDksIDE0LCAyMzksIAorICAgIDI2LCA5LCAxNCwgMjM5LCAyNSwgOSwgMTQsIDIzOSwgMjQsIDksIDE0LCAyMzksIDIzLCA5LCAxNCwgMjM5LCAyMiwgOSwgCisgICAgMTQsIDIzOSwgMjEsIDksIDE0LCAyMzksIDIwLCA5LCAxNCwgMjM5LCAxOSwgOSwgMTQsIDIzOSwgMTgsIDksIDE0LCAyMzksIAorICAgIDE3LCA5LCAxNCwgMjM5LCAxNiwgOSwgMTQsIDIzOSwgMTUsIDksIDE0LCAyMzksIDE0LCA5LCAxNCwgMjM5LCAxMywgOSwgCisgICAgMTQsIDIzOSwgMTIsIDksIDE0LCAyMzksIDExLCA5LCAxNCwgMjM5LCAxMCwgOSwgMTQsIDIzOSwgOSwgOSwgMTQsIDIzOSwgCisgICAgOCwgOSwgMTQsIDIzOSwgNywgOSwgMTQsIDIzOSwgNiwgOSwgMTQsIDIzOSwgNSwgOSwgMTQsIDIzOSwgNCwgOSwgMTQsIAorICAgIDIzOSwgMywgOSwgMTQsIDIzOSwgMiwgOSwgMTQsIDIzOSwgMSwgOSwgMTQsIDIzOSwgMCwgOSwgMTQsIDIzOCwgMjU1LCA5LCAKKyAgICAxNCwgMjM4LCAyNTQsIDksIDE0LCAyMzgsIDI1MywgOSwgMTQsIDIzOCwgMjUyLCA5LCAxNCwgMjM4LCAyNTEsIDksIDE0LCAKKyAgICAyMzgsIDI1MCwgOSwgMTQsIDIzOCwgMjQ5LCA5LCAxNCwgMjM4LCAyNDgsIDksIDE0LCAyMzgsIDI0NywgOSwgMTQsIDIzOCwgCisgICAgMjQ2LCA5LCAxNCwgMjM4LCAyNDUsIDksIDE0LCAyMzgsIDI0NCwgOSwgMTQsIDIzOCwgMjQzLCA5LCAxNCwgMjM4LCAyNDIsIAorICAgIDksIDE0LCAyMzgsIDI0MSwgOSwgMTQsIDIzOCwgMjQwLCA5LCAxNCwgMjM4LCAyMzksIDksIDE0LCAyMzgsIDIzOCwgOSwgCisgICAgMTQsIDIzOCwgMjM3LCA5LCAxNCwgMjM4LCAyMzYsIDksIDE0LCAyMzgsIDIzNSwgOSwgMTQsIDIzOCwgMjM0LCA5LCAxNCwgCisgICAgMjM4LCAyMzMsIDksIDE0LCAyMzgsIDIzMiwgOSwgMTQsIDIzOCwgMjMxLCA5LCAxNCwgMjM4LCAyMzAsIDksIDE0LCAyMzgsIAorICAgIDIyOSwgOSwgMTQsIDIzOCwgMjI4LCA5LCAxNCwgMjM4LCAyMjcsIDksIDE0LCAyMzgsIDIyNiwgOSwgMTQsIDIzOCwgMjI1LCAKKyAgICA5LCAxNCwgMjM4LCAyMjQsIDksIDE0LCAyMzgsIDIyMywgOSwgMTQsIDIzOCwgMjIyLCA5LCAxNCwgMjM4LCAyMjEsIDksIAorICAgIDE0LCAyMzgsIDIyMCwgOSwgMTQsIDIzOCwgMjE5LCA5LCAxNCwgMjM4LCAyMTgsIDksIDE0LCAyMzgsIDIxNywgOSwgMTQsIAorICAgIDIzOCwgMjE2LCA5LCAxNCwgMjM4LCAyMTUsIDksIDE0LCAyMzgsIDIxNCwgOSwgMTQsIDIzOCwgMjEzLCA5LCAxNCwgMjM4LCAKKyAgICAyMTIsIDksIDE0LCAyMzgsIDIxMSwgOSwgMTQsIDIzOCwgMjEwLCA5LCAxNCwgMjM4LCAyMDksIDksIDE0LCAyMzgsIDIwOCwgCisgICAgOSwgMTQsIDIzOCwgMjA3LCA5LCAxNCwgMjM4LCAyMDYsIDksIDE0LCAyMzgsIDIwNSwgOSwgMTQsIDIzOCwgMjA0LCA5LCAKKyAgICAxNCwgMjM4LCAyMDMsIDksIDE0LCAyMzgsIDIwMiwgOSwgMTQsIDIzOCwgMjAxLCA5LCAxNCwgMjM4LCAyMDAsIDksIDE0LCAKKyAgICAyMzgsIDE5OSwgOSwgMTQsIDIzOCwgMTk4LCA5LCAxNCwgMjM4LCAxOTcsIDksIDE0LCAyMzgsIDE5NiwgOSwgMTQsIDIzOCwgCisgICAgMTk1LCA5LCAxNCwgMjM4LCAxOTQsIDksIDE0LCAyMzgsIDE5MywgOSwgMTQsIDIzOCwgMTkyLCA5LCAxNCwgMjM4LCAxOTEsIAorICAgIDksIDE0LCAyMzgsIDE5MCwgOSwgMTQsIDIzOCwgMTg5LCA5LCAxNCwgMjM4LCAxODgsIDksIDE0LCAyMzgsIDE4NywgOSwgCisgICAgMTQsIDIzOCwgMTg2LCA5LCAxNCwgMjM4LCAxODUsIDksIDE0LCAyMzgsIDE4NCwgOSwgMTQsIDIzOCwgMTgzLCA5LCAxNCwgCisgICAgMjM4LCAxODIsIDksIDE0LCAyMzgsIDE4MSwgOSwgMTQsIDIzOCwgMTgwLCA5LCAxNCwgMjM4LCAxNzksIDksIDE0LCAyMzgsIAorICAgIDE3OCwgOSwgMTQsIDIzOCwgMTc3LCA5LCAxNCwgMjM4LCAxNzYsIDksIDE0LCAyMzgsIDE3NSwgOSwgMTQsIDIzOCwgMTc0LCAKKyAgICA5LCAxNCwgMjM4LCAxNzMsIDksIDE0LCAyMzgsIDE3MiwgOSwgMTQsIDIzOCwgMTcxLCA5LCAxNCwgMjM4LCAxNzAsIDksIAorICAgIDE0LCAyMzgsIDE2OSwgOSwgMTQsIDIzOCwgMTY4LCA5LCAxNCwgMjM4LCAxNjcsIDksIDE0LCAyMzgsIDE2NiwgOSwgMTQsIAorICAgIDIzOCwgMTY1LCA5LCAxNCwgMjM4LCAxNjQsIDksIDE0LCAyMzgsIDE2MywgOSwgMTQsIDIzOCwgMTYyLCA5LCAxNCwgMjM4LCAKKyAgICAxNjEsIDksIDE0LCAyMzgsIDE2MCwgOSwgMTQsIDIzOCwgMTU5LCA5LCAxNCwgMjM4LCAxNTgsIDksIDE0LCAyMzgsIDE1NywgCisgICAgOSwgMTQsIDIzOCwgMTU2LCA5LCAxNCwgMjM4LCAxNTUsIDksIDE0LCAyMzgsIDE1NCwgOSwgMTQsIDIzOCwgMTUzLCA5LCAKKyAgICAxNCwgMjM4LCAxNTIsIDksIDE0LCAyMzgsIDE1MSwgOSwgMTQsIDIzOCwgMTUwLCA5LCAxNCwgMjM4LCAxNDksIDksIDE0LCAKKyAgICAyMzgsIDE0OCwgOSwgMTQsIDIzOCwgMTQ3LCA5LCAxNCwgMjM4LCAxNDYsIDksIDE0LCAyMzgsIDE0NSwgOSwgMTQsIDIzOCwgCisgICAgMTQ0LCA5LCAxNCwgMjM4LCAxNDMsIDksIDE0LCAyMzgsIDE0MiwgOSwgMTQsIDIzOCwgMTQxLCA5LCAxNCwgMjM4LCAxNDAsIAorICAgIDksIDE0LCAyMzgsIDEzOSwgOSwgMTQsIDIzOCwgMTM4LCA5LCAxNCwgMjM4LCAxMzcsIDksIDE0LCAyMzgsIDEzNiwgOSwgCisgICAgMTQsIDIzOCwgMTM1LCA5LCAxNCwgMjM4LCAxMzQsIDksIDE0LCAyMzgsIDEzMywgOSwgMTQsIDIzOCwgMTMyLCA5LCAxNCwgCisgICAgMjM4LCAxMzEsIDksIDE0LCAyMzgsIDEzMCwgOSwgMTQsIDIzOCwgMTI5LCA5LCAxNCwgMjM4LCAxMjgsIDksIDE0LCAyMzgsIAorICAgIDEyNywgOSwgMTQsIDIzOCwgMTI2LCA5LCAxNCwgMjM4LCAxMjUsIDksIDE0LCAyMzgsIDEyNCwgOSwgMTQsIDIzOCwgMTIzLCAKKyAgICA5LCAxNCwgMjM4LCAxMjIsIDksIDE0LCAyMzgsIDEyMSwgOSwgMTQsIDIzOCwgMTIwLCA5LCAxNCwgMjM4LCAxMTksIDksIAorICAgIDE0LCAyMzgsIDExOCwgOSwgMTQsIDIzOCwgMTE3LCA5LCAxNCwgMjM4LCAxMTYsIDksIDE0LCAyMzgsIDExNSwgOSwgMTQsIAorICAgIDIzOCwgMTE0LCA5LCAxNCwgMjM4LCAxMTMsIDksIDE0LCAyMzgsIDExMiwgOSwgMTQsIDIzOCwgMTExLCA5LCAxNCwgMjM4LCAKKyAgICAxMTAsIDksIDE0LCAyMzgsIDEwOSwgOSwgMTQsIDIzOCwgMTA4LCA5LCAxNCwgMjM4LCAxMDcsIDksIDE0LCAyMzgsIDEwNiwgCisgICAgOSwgMTQsIDIzOCwgMTA1LCA5LCAxNCwgMjM4LCAxMDQsIDksIDE0LCAyMzgsIDEwMywgOSwgMTQsIDIzOCwgMTAyLCA5LCAKKyAgICAxNCwgMjM4LCAxMDEsIDksIDE0LCAyMzgsIDEwMCwgOSwgMTQsIDIzOCwgOTksIDksIDE0LCAyMzgsIDk4LCA5LCAxNCwgCisgICAgMjM4LCA5NywgOSwgMTQsIDIzOCwgOTYsIDksIDE0LCAyMzgsIDk1LCA5LCAxNCwgMjM4LCA5NCwgOSwgMTQsIDIzOCwgOTMsIAorICAgIDksIDE0LCAyMzgsIDkyLCA5LCAxNCwgMjM4LCA5MSwgOSwgMTQsIDIzOCwgOTAsIDksIDE0LCAyMzgsIDg5LCA5LCAxNCwgCisgICAgMjM4LCA4OCwgOSwgMTQsIDIzOCwgODcsIDksIDE0LCAyMzgsIDg2LCA5LCAxNCwgMjM4LCA4NSwgOSwgMTQsIDIzOCwgODQsIAorICAgIDksIDE0LCAyMzgsIDgzLCA5LCAxNCwgMjM4LCA4MiwgOSwgMTQsIDIzOCwgODEsIDksIDE0LCAyMzgsIDgwLCA5LCAxNCwgCisgICAgMjM4LCA3OSwgOSwgMTQsIDIzOCwgNzgsIDksIDE0LCAyMzgsIDc3LCA5LCAxNCwgMjM4LCA3NiwgOSwgMTQsIDIzOCwgNzUsIAorICAgIDksIDE0LCAyMzgsIDc0LCAyMzMsIDkxLCAyMTcsIDg1LCAxMjksIDIxOSwgMTksIDEyOSwgMjQ1LCAzMiwgNzgsIDEyOSwgCisgICAgMjIzLCAyNTUsIDc4LCAxMjksIDU0LCA1MCwgMTI5LCAyNDcsIDEzMywgNTAsIDEyOSwgMjI1LCAxODMsIDUwLCAxMjksIAorICAgIDI1NCwgMTI3LCAxMjksIDI1NCwgNTgsIDEyOSwgNDMsIDIyNiwgNCwgMTI5LCA0NCwgMjI2LCA0LCAxMjksIDI1MywgMjE3LCAKKyAgICAxMjksIDk2LCA1MCwgMTI5LCAyNDksIDIyMCwgMTI5LCAyNDAsIDE2OCwgMTI5LCAyNDMsIDIzMCwgMjE4LCAxMzAsIDEyOSwgCisgICAgMjE5LCA0NywgMTI5LCAyMSwgMjEwLCA4NiwgMTI5LCAyMSwgMTEwLCAxMjksIDIxLCAxMDUsIDEyOSwgMjEsIDE1OCwgMTI5LCAKKyAgICAyMSwgMTYxLCAxMjksIDIxLCAxODksIDEyOSwgMjEsIDE5NCwgMTI5LCAyMSwgMTk4LCAxMjksIDIxLCAxOTUsIDEyOSwgMjEsIAorICAgIDIwMCwgMTI5LCAyNDksIDIyNywgMTI5LCAyMjAsIDE1MSwgMTI5LCAyMzMsIDE2LCA1MCwgMTI5LCAyNDUsIDk5LCA1MCwgCisgICAgMTI5LCAyNDIsIDEzMSwgNTAsIDEyOSwgMjI0LCAxNCwgNzgsIDEyOSwgMjQ5LCAyMTgsIDI1MywgMjA3LCAxMjksIDcsIDYsIAorICAgIDEsIDYxLCAxMjksIDcsIDYsIDEsIDI1MywgMTU5LCAxMjksIDcsIDYsIDEsIDI1MSwgNjcsIDEyOSwgNywgNiwgMSwgMjQ5LCAKKyAgICA2MSwgMTI5LCA3LCA2LCAxLCA3NSwgMTI5LCA3LCA2LCAxLCAyNDUsIDcsIDEyOSwgNywgNiwgMSwgMjQzLCAyMDMsIDEyOSwgCisgICAgNywgNiwgMSwgMjQyLCA2MSwgMTI5LCA3LCA2LCAxLCA3MywgMTI5LCA3LCA2LCAxLCAyMzUsIDE0NSwgMTI5LCA3LCA2LCAxLCAKKyAgICAyMzUsIDI0LCAxMjksIDcsIDYsIDEsIDE1NiwgMTI5LCA3LCA2LCAxLCAxOTMsIDEyOSwgNywgNiwgMSwgMjMwLCAyNiwgCisgICAgMTI5LCA3LCA2LCAxLCA3NiwgMTI5LCA3LCA2LCAxLCAyMjYsIDEwNiwgMTI5LCA3LCA2LCAxLCAyMjQsIDk3LCAxMjksIDcsIAorICAgIDYsIDEsIDE1MywgMTI5LCA3LCA2LCAxLCAyMjIsIDkyLCAxMjksIDcsIDYsIDEsIDIxNywgMTUzLCAxMjksIDcsIDYsIDEsIAogICAgIDcwLCAxMjksIDcsIDYsIDEsIDIxNCwgMTA1LCAxMjksIDcsIDYsIDEsIDIxMiwgOTgsIDEyOSwgNywgNiwgMSwgMjExLCAKICAgICAxNzgsIDEyOSwgNywgNiwgMSwgMjExLCAxMTcsIDEyOSwgNywgNiwgMSwgMjEwLCAxNTksIDEyOSwgNDMsIDQyLCAxMjcsIAotICAgIDEyOSwgMjIzLCA1MCwgMjE5LCA0NiwgMTI5LCA0NCwgNDIsIDEyNywgMTI5LCAyNTAsIDMxLCAyNTUsIDE0LCAxMjksIDEyMSwgCi0gICAgMjMyLCAyMTMsIDEyOSwgMjQyLCAxMzcsIDI1NSwgMTQsIDEyOSwgNywgNCwgMSwgNjEsIDEyOSwgNywgNCwgMSwgMjUzLCAKLSAgICAxNTgsIDEyOSwgNywgNCwgMSwgMjUxLCA2NiwgMTI5LCA3LCA0LCAxLCAyNDksIDYwLCAxMjksIDcsIDQsIDEsIDc1LCAxMjksIAotICAgIDcsIDQsIDEsIDI0NSwgNiwgMTI5LCA3LCA0LCAxLCAyNDMsIDIwMiwgMTI5LCA3LCA0LCAxLCAyNDIsIDYwLCAxMjksIDcsIAotICAgIDQsIDEsIDczLCAxMjksIDcsIDQsIDEsIDIzNSwgMTQ0LCAxMjksIDcsIDQsIDEsIDIzNSwgMjMsIDEyOSwgNywgNCwgMSwgCi0gICAgMTU2LCAxMjksIDcsIDQsIDEsIDE5MywgMTI5LCA3LCA0LCAxLCAyMzAsIDI1LCAxMjksIDcsIDQsIDEsIDc2LCAxMjksIDcsIAotICAgIDQsIDEsIDIyNiwgMTA1LCAxMjksIDcsIDQsIDEsIDIyNCwgOTYsIDEyOSwgNywgNCwgMSwgMTUzLCAxMjksIDcsIDQsIDEsIAotICAgIDIyMiwgOTEsIDEyOSwgNywgNCwgMSwgMjE3LCAxNTIsIDEyOSwgNywgNCwgMSwgNzAsIDEyOSwgNywgNCwgMSwgMjE0LCAKKyAgICAxMjksIDIyMywgNTEsIDIxOSwgNDcsIDEyOSwgNDQsIDQyLCAxMjcsIDEyOSwgMjUwLCAzMiwgMjU1LCAxNSwgMTI5LCAxMjEsIAorICAgIDIzMiwgMjE0LCAxMjksIDI0MiwgMTM4LCAyNTUsIDE1LCAxMjksIDcsIDQsIDEsIDYxLCAxMjksIDcsIDQsIDEsIDI1MywgCisgICAgMTU5LCAxMjksIDcsIDQsIDEsIDI1MSwgNjcsIDEyOSwgNywgNCwgMSwgMjQ5LCA2MSwgMTI5LCA3LCA0LCAxLCA3NSwgMTI5LCAKKyAgICA3LCA0LCAxLCAyNDUsIDcsIDEyOSwgNywgNCwgMSwgMjQzLCAyMDMsIDEyOSwgNywgNCwgMSwgMjQyLCA2MSwgMTI5LCA3LCAKKyAgICA0LCAxLCA3MywgMTI5LCA3LCA0LCAxLCAyMzUsIDE0NSwgMTI5LCA3LCA0LCAxLCAyMzUsIDI0LCAxMjksIDcsIDQsIDEsIAorICAgIDE1NiwgMTI5LCA3LCA0LCAxLCAxOTMsIDEyOSwgNywgNCwgMSwgMjMwLCAyNiwgMTI5LCA3LCA0LCAxLCA3NiwgMTI5LCA3LCAKKyAgICA0LCAxLCAyMjYsIDEwNiwgMTI5LCA3LCA0LCAxLCAyMjQsIDk3LCAxMjksIDcsIDQsIDEsIDE1MywgMTI5LCA3LCA0LCAxLCAKKyAgICAyMjIsIDkyLCAxMjksIDcsIDQsIDEsIDIxNywgMTUzLCAxMjksIDcsIDQsIDEsIDcwLCAxMjksIDcsIDQsIDEsIDIxNCwgCiAgICAgMTA1LCAxMjksIDcsIDQsIDEsIDIxMiwgOTgsIDEyOSwgNywgNCwgMSwgMjExLCAxNzgsIDEyOSwgNywgNCwgMSwgMjExLCAKLSAgICAxMTcsIDEyOSwgNywgNCwgMSwgMjEwLCAxNTksIDEyOSwgNDMsIDI0OSwgOTksIDEyNywgMTI5LCA2NywgMjMyLCAyMTMsIAotICAgIDEyOSwgNDQsIDI0OSwgOTksIDEyNywgMTI5LCAxODIsIDI1MSwgNiwgMjE3LCA4NCwgNDUsIDIyMSwgNzgsIDQ1LCAyMjEsIAotICAgIDY3LCA0NSwgMjIxLCA1NiwgNDUsIDIyMSwgNDQsIDQ1LCAyMjEsIDMzLCA0NSwgMjIxLCAyMiwgNDUsIDIyMSwgMTEsIDQ1LCAKLSAgICAyMjEsIDAsIDQ1LCAyMjAsIDI0NSwgNDUsIDIyMCwgMjM3LCA0NSwgMjIwLCAyMzYsIDQ1LCAyMjAsIDIzNSwgNDUsIDIyMCwgCi0gICAgMjM0LCA0NSwgMjIwLCAyMzIsIDQ1LCAyMjAsIDIzMSwgNDUsIDIyMCwgMjMwLCA0NSwgMjIwLCAyMjksIDQ1LCAyMjAsIAotICAgIDIyOCwgNDUsIDIyMCwgMjI3LCA0NSwgMjIwLCAyMjYsIDQ1LCAyMjAsIDIyNSwgNDUsIDIyMCwgMjI0LCA0NSwgMjIwLCAKLSAgICAyMjMsIDQ1LCAyMjAsIDIyMSwgNDUsIDIyMCwgMjIwLCA0NSwgMjIwLCAyMTksIDQ1LCAyMjAsIDIxOCwgNDUsIDIyMCwgCi0gICAgMjE3LCA0NSwgMjIwLCAyMTYsIDQ1LCAyMjAsIDIxNSwgNDUsIDIyMCwgMjE0LCA0NSwgMjIwLCAyMTMsIDQ1LCAyMjAsIAotICAgIDIxMiwgNDUsIDIyMCwgMjEwLCA0NSwgMjIwLCAyMDksIDQ1LCAyMjAsIDIwOCwgNDUsIDIyMCwgMjA3LCA0NSwgMjIwLCAKLSAgICAyMDYsIDQ1LCAyMjAsIDIwNSwgNDUsIDIyMCwgMjA0LCA0NSwgMjIwLCAyMDMsIDQ1LCAyMjAsIDIwMiwgNDUsIDIyMCwgCi0gICAgMjAxLCA0NSwgMjIwLCAxOTksIDQ1LCAyMjAsIDE5OCwgNDUsIDIyMCwgMTk3LCA0NSwgMjIwLCAxOTYsIDQ1LCAyMjAsIAotICAgIDE5NSwgNDUsIDIyMCwgMTk0LCA0NSwgMjIwLCAxOTMsIDQ1LCAyMjAsIDE5MiwgNDUsIDIyMCwgMTkxLCA0NSwgMjIwLCAKLSAgICAxOTAsIDQ1LCAyMjAsIDE4OCwgNDUsIDIyMCwgMTg3LCA0NSwgMjIwLCAxODYsIDQ1LCAyMjAsIDE4NSwgNDUsIDIyMCwgCi0gICAgMTg0LCA0NSwgMjIwLCAxODMsIDQ1LCAyMjAsIDE4MiwgNDUsIDIyMCwgMTgxLCA0NSwgMjIwLCAxODAsIDQ1LCAyMjAsIAotICAgIDE3OSwgNDUsIDIyMCwgMTc3LCA0NSwgMjIwLCAxNzYsIDQ1LCAyMjAsIDE3NSwgNDUsIDIyMCwgMTc0LCA0NSwgMjIwLCAKLSAgICAxNzMsIDQ1LCAyMjAsIDE3MiwgNDUsIDIyMCwgMTcxLCA0NSwgMjIwLCAxNzAsIDQ1LCAyMjAsIDE2OSwgNDUsIDIyMCwgCi0gICAgMTY4LCA0NSwgMjIwLCAxNjYsIDQ1LCAyMjAsIDE2NSwgNDUsIDIyMCwgMTY0LCA0NSwgMjIwLCAxNjMsIDQ1LCAyMjAsIAotICAgIDE2MiwgNDUsIDIyMCwgMTYxLCA0NSwgMjIwLCAxNjAsIDQ1LCAyMjAsIDE1OSwgNDUsIDIyMCwgMTU4LCA0NSwgMjIwLCAKLSAgICAxNTcsIDQ1LCAyMjEsIDE1NCwgNDUsIDIyMSwgMTUzLCA0NSwgMjIxLCAxNTIsIDQ1LCAyMjEsIDE1MSwgNDUsIDIyMSwgCi0gICAgMTUwLCA0NSwgMjIxLCAxNDksIDQ1LCAyMjEsIDE0OCwgNDUsIDIyMSwgMTQ3LCA0NSwgMjIxLCAxNDYsIDQ1LCAyMjEsIAotICAgIDE0NSwgNDUsIDIyMSwgMTQzLCA0NSwgMjIxLCAxNDIsIDQ1LCAyMjEsIDE0MSwgNDUsIDIyMSwgMTQwLCA0NSwgMjIxLCAKLSAgICAxMzksIDQ1LCAyMjEsIDEzOCwgNDUsIDIyMSwgMTM3LCA0NSwgMjIxLCAxMzYsIDQ1LCAyMjEsIDEzNSwgNDUsIDIyMSwgCi0gICAgMTM0LCA0NSwgMjIxLCAxMzIsIDQ1LCAyMjEsIDEzMSwgNDUsIDIyMSwgMTMwLCA0NSwgMjIxLCAxMjksIDQ1LCAyMjEsIAotICAgIDEyOCwgNDUsIDIyMSwgMTI3LCA0NSwgMjIxLCAxMjYsIDQ1LCAyMjEsIDEyNSwgNDUsIDIyMSwgMTI0LCA0NSwgMjIxLCAKLSAgICAxMjMsIDQ1LCAyMjEsIDEyMSwgNDUsIDIyMSwgMTIwLCA0NSwgMjIxLCAxMTksIDQ1LCAyMjEsIDExOCwgNDUsIDIyMSwgCi0gICAgMTE3LCA0NSwgMjIxLCAxMTYsIDQ1LCAyMjEsIDExNSwgNDUsIDIyMSwgMTE0LCA0NSwgMjIxLCAxMTMsIDQ1LCAyMjEsIAotICAgIDExMiwgNDUsIDIyMSwgMTEwLCA0NSwgMjIxLCAxMDksIDQ1LCAyMjEsIDEwOCwgNDUsIDIyMSwgMTA3LCA0NSwgMjIxLCAKLSAgICAxMDYsIDQ1LCAyMjEsIDEwNSwgNDUsIDIyMSwgMTA0LCA0NSwgMjIxLCAxMDMsIDQ1LCAyMjEsIDEwMiwgNDUsIDIyMSwgCi0gICAgMTAxLCA0NSwgMjIxLCA5OSwgNDUsIDIyMSwgOTgsIDQ1LCAyMjEsIDk3LCA0NSwgMjIxLCA5NiwgNDUsIDIyMSwgOTUsIDQ1LCAKLSAgICAyMjEsIDk0LCA0NSwgMjIxLCA5MywgNDUsIDIyMSwgOTIsIDQ1LCAyMjEsIDkxLCA0NSwgMjIxLCA5MCwgNDUsIDIyMSwgODgsIAotICAgIDQ1LCAyMjEsIDg3LCA0NSwgMjIxLCA4NiwgNDUsIDIyMSwgODUsIDQ1LCAyMjEsIDg0LCA0NSwgMjIxLCA4MywgNDUsIDIyMSwgCi0gICAgODIsIDQ1LCAyMjEsIDgxLCA0NSwgMjIxLCA4MCwgNDUsIDIyMSwgNzksIDQ1LCAyMjEsIDc3LCA0NSwgMjIxLCA3NiwgNDUsIAotICAgIDIyMSwgNzUsIDQ1LCAyMjEsIDc0LCA0NSwgMjIxLCA3MywgNDUsIDIyMSwgNzIsIDQ1LCAyMjEsIDcxLCA0NSwgMjIxLCA3MCwgCi0gICAgNDUsIDIyMSwgNjksIDQ1LCAyMjEsIDY4LCA0NSwgMjIxLCA2NiwgNDUsIDIyMSwgNjUsIDQ1LCAyMjEsIDY0LCA0NSwgMjIxLCAKLSAgICA2MywgNDUsIDIyMSwgNjIsIDQ1LCAyMjEsIDYxLCA0NSwgMjIxLCA2MCwgNDUsIDIyMSwgNTksIDQ1LCAyMjEsIDU4LCA0NSwgCi0gICAgMjIxLCA1NywgNDUsIDIyMSwgNTUsIDQ1LCAyMjEsIDU0LCA0NSwgMjIxLCA1MywgNDUsIDIyMSwgNTIsIDQ1LCAyMjEsIDUxLCAKLSAgICA0NSwgMjIxLCA1MCwgNDUsIDIyMSwgNDksIDQ1LCAyMjEsIDQ4LCA0NSwgMjIxLCA0NywgNDUsIDIyMSwgNDYsIDQ1LCAyMjEsIAotICAgIDQzLCA0NSwgMjIxLCA0MiwgNDUsIDIyMSwgNDEsIDQ1LCAyMjEsIDQwLCA0NSwgMjIxLCAzOSwgNDUsIDIyMSwgMzgsIDQ1LCAKLSAgICAyMjEsIDM3LCA0NSwgMjIxLCAzNiwgNDUsIDIyMSwgMzUsIDQ1LCAyMjEsIDM0LCA0NSwgMjIxLCAzMiwgNDUsIDIyMSwgMzEsIAotICAgIDQ1LCAyMjEsIDMwLCA0NSwgMjIxLCAyOSwgNDUsIDIyMSwgMjgsIDQ1LCAyMjEsIDI3LCA0NSwgMjIxLCAyNiwgNDUsIDIyMSwgCi0gICAgMjUsIDQ1LCAyMjEsIDI0LCA0NSwgMjIxLCAyMywgNDUsIDIyMSwgMjEsIDQ1LCAyMjEsIDIwLCA0NSwgMjIxLCAxOSwgNDUsIAotICAgIDIyMSwgMTgsIDQ1LCAyMjEsIDE3LCA0NSwgMjIxLCAxNiwgNDUsIDIyMSwgMTUsIDQ1LCAyMjEsIDE0LCA0NSwgMjIxLCAxMywgCi0gICAgNDUsIDIyMSwgMTIsIDQ1LCAyMjEsIDEwLCA0NSwgMjIxLCA5LCA0NSwgMjIxLCA4LCA0NSwgMjIxLCA3LCA0NSwgMjIxLCA2LCAKLSAgICA0NSwgMjIxLCA1LCA0NSwgMjIxLCA0LCA0NSwgMjIxLCAzLCA0NSwgMjIxLCAyLCA0NSwgMjIxLCAxLCA0NSwgMjIwLCAyNTUsIAotICAgIDQ1LCAyMjAsIDI1NCwgNDUsIDIyMCwgMjUzLCA0NSwgMjIwLCAyNTIsIDQ1LCAyMjAsIDI1MSwgNDUsIDIyMCwgMjUwLCA0NSwgCi0gICAgMjIwLCAyNDksIDQ1LCAyMjAsIDI0OCwgNDUsIDIyMCwgMjQ3LCA0NSwgMjIwLCAyNDYsIDQ1LCAyMjAsIDI0NCwgNDUsIAotICAgIDIyMCwgMjQzLCA0NSwgMjIwLCAyNDIsIDQ1LCAyMjAsIDI0MSwgNDUsIDIyMCwgMjQwLCA0NSwgMjIwLCAyMzksIDQ1LCAKLSAgICAyMjAsIDIzOCwgMjI3LCAyMDIsIDIyNywgMjA0LCAyMTgsIDE1MiwgNjQsIDI0MSwgMjMzLCAyMTksIDQ4LCAyMTgsIDE1MiwgCi0gICAgNjQsIDIxNiwgMjEyLCAyMTgsIDg1LCAyNDUsIDE0MywgNjQsIDIxNiwgMjEyLCAyNDUsIDU2LCAyNDUsIDE0MywgNjQsIAotICAgIDIxNSwgMjQzLCAyNDUsIDEwOSwgMjQ1LCAxMzIsIDI0NSwgMTMzLCAyNTUsIDcsIDI1NSwgOCwgMjU0LCAxNjcsIDI1MiwgCi0gICAgNDcsIDI1MiwgMTc5LCAyNTEsIDEzMSwgMTM1LCAyMTcsIDg5LCAyMDMsIDIxNywgODksIDI0MCwgMjI3LCAyMTcsIDkzLCAKLSAgICAyMzIsIDIxNCwgMjQ0LCAxNDUsIDE2NiwgMjMyLCAyMTMsIDI0NSwgMTQzLCA2NCwgMjMyLCAyMTMsIDIzMywgMCwgMjI4LCAKLSAgICAxMzUsIDI0NSwgMTEyLCAyMzIsIDIxNCwgMjE3LCA4OSwgNjcsIDIxNywgODksIDIxMiwgMTE4LCAyNDQsIDIwLCAyNDQsIAotICAgIDE0NSwgMjQ0LCAxMjUsIDI1MCwgMjMwLCAyMjMsIDUzLCAyNDksIDE0MywgMjIwLCAyOCwgMjI2LCAxMzAsIDIzMiwgMTUwLCAKLSAgICAxMTAsIDIxOSwgNTgsIDIyMCwgMjgsIDIzNSwgMjU1LCAyMzIsIDE1MCwgMjEwLCA4NiwgMjE5LCAxOTEsIDI0OCwgMTUxLCAKLSAgICAyMzIsIDIwNCwgMjQ1LCA3NywgMjQ3LCAxNTUsIDI0OCwgMzEsIDI0OSwgMTc4LCAxMTAsIDI0OCwgMTQxLCAyNDgsIDMxLCAKLSAgICAyNDksIDE3OCwgMTA1LCAyNDgsIDE0MCwgMjQ4LCAzMSwgMjQ5LCAxNzgsIDE1OCwgMjQ4LCAxMzksIDI0OCwgMzEsIDI0OSwgCi0gICAgMTc4LCAxNjEsIDI0OCwgMTM4LCAxNTIsIDI1NSwgNywgMjI5LCAyMDksIDIxNywgMTc3LCAyMzYsIDYyLCAyMTcsIDE4MCwgCi0gICAgMjQ1LCAxNDMsIDY0LCAyMTUsIDI0NCwgMjUxLCAyMTMsIDI0NSwgNjIsIDI1MSwgNSwgMjUxLCA3LCAyNDUsIDE0MywgNjQsIAotICAgIDIzMSwgODEsIDI0NSwgMTEwLCAyMTgsIDYxLCAyMTgsIDc4LCAyNDUsIDc3LCAyNDUsIDc4LCAyMzUsIDIzMiwgMjIwLCAKLSAgICAxMzgsIDE2MSwgMjQ0LCAxMDcsIDIyMCwgMTM3LCAyNDMsIDIzNywgMjM1LCAyMzIsIDIyMCwgMTM4LCAxNTgsIDI0MiwgCi0gICAgMTIxLCAyMjAsIDEzNywgMjQyLCAxMTgsIDIzNSwgMjMyLCAyMjAsIDEzOCwgMTA1LCAyMjMsIDEyMSwgMjIwLCAxMzcsIAotICAgIDIyMiwgMTQ1LCAyMzUsIDIzMiwgMjIwLCAxMzgsIDExMCwgMjE0LCAxNzQsIDIyMCwgMTM3LCAyMTQsIDEzMywgMjE5LCAyMSwgCi0gICAgMjQ4LCA2MywgMjQ4LCA2NSwgMjI2LCA3OCwgMjUwLCAxNDIsIDIyNiwgODAsIDEyNSwgMjI2LCAyNDAsIDIyNCwgMTkzLCAKLSAgICAyNDEsIDQ3LCAyNTEsIDE1MCwgMjI1LCAxNzMsIDI0MSwgMjAzLCAyNTEsIDE2MSwgMjI4LCA3NSwgMjUxLCAxNTAsIDI0MSwgCi0gICAgMjAzLCAyMjksIDE3NSwgMjM1LCAyNDIsIDIzNSwgMjQ0LCAyMjksIDgyLCAyMzIsIDIxMywgMjI5LCA5OSwgMjE4LCAxNTIsIAotICAgIDY0LCAyMjEsIDE1OCwgMjU0LCAxOCwgMjE4LCAyMjMsIDI0NSwgMTQzLCA2NCwgMjIxLCAxNTgsIDI1NCwgMTgsIDI0NSwgCi0gICAgODAsIDEzNSwgMjE3LCA5MCwgMjIwLCAxMjcsIDIwMywgMjE3LCA5MCwgMjIwLCAxMjcsIDI0MCwgMjI0LCAxMzUsIDIxNywgCi0gICAgOTAsIDIsIDIzNSwgMzUsIDIwMywgMjE3LCA5MCwgMiwgMjM1LCAzNSwgMjQwLCAyMjUsIDIzMiwgMjE0LCAyMTcsIDkwLCAKLSAgICAyMjAsIDEyNywgNjcsIDIxNywgOTAsIDIyMCwgMTI3LCAyMTIsIDExNywgMjI1LCAyNTMsIDIzMiwgMjE0LCAyNDQsIDE0LCAKLSAgICAyMjUsIDI1MywgMjMyLCAyMTQsIDI0NiwgMTA2LCAyMjUsIDMyLCAyMjUsIDI1MywgMjMyLCAyMTQsIDI1MiwgMTc4LCAyMjUsIAotICAgIDI1MywgMjMyLCAyMTQsIDIxNCwgMTYzLCAyMjUsIDI4LCAyMjMsIDUwLCAyMzIsIDIxNCwgMjQ0LCAxNDUsIDIyMywgNTAsIAotICAgIDIzNSwgMjQyLCAyMjMsIDM1LCAyMTksIDE1NSwgMjIwLCAyOCwgMTA1LCAyMTksIDE1MiwgMjE4LCAyMjUsIDIxOSwgMTU1LCAKLSAgICAyMjAsIDI4LCAxNTgsIDIxOSwgMTUxLCAyMTgsIDIyNCwgMjQ4LCAzMSwgMjQ5LCAxNzgsIDIxOCwgMTA1LCAyNDgsIDEzNywgCi0gICAgMjI0LCAxODMsIDIxNCwgMTMyLCAxMTAsIDIyNCwgMTgzLCAyMTQsIDEzMCwgMjI0LCAxNDksIDIyNCwgMTgzLCAyMTQsIAotICAgIDEzMiwgMTA1LCAyMjQsIDE4MywgMjE0LCAxMjksIDIyNCwgMTQ4LCAyMjAsIDEyOCwgMjE1LCAyNDIsIDIxOCwgMTUxLCAKLSAgICAyMTgsIDg5LCAyNTEsIDYsIDI1MCwgMTQyLCAyNTAsIDIwOSwgMjMxLCA0MywgMjEyLCA1OSwgMjMwLCA0MywgMjE4LCAxNTIsIAotICAgIDY0LCAyNDIsIDEwNywgMjU0LCAxOCwgMjE4LCAxNTIsIDY0LCAyMjQsIDE2NiwgMjU0LCAxOCwgMjE5LCAyMCwgMjQ1LCAKLSAgICAxNDMsIDY0LCAyNDIsIDEwNywgMjU0LCAxOCwgMjQ1LCAxNDMsIDY0LCAyMjQsIDE2NiwgMjU0LCAxOCwgMjQ1LCAxMDcsIAotICAgIDIxOCwgMTUyLCA2NCwgMjE4LCAxMDUsIDIxOSwgMzUsIDIxOSwgMTU1LCAyNDIsIDE0MSwgMTM1LCAyMzUsIDE5NSwgMjIwLCAKLSAgICAxMDcsIDIxOSwgMTU1LCAxMzUsIDIzNSwgMTk1LCAyMjEsIDE5NCwgMjQ5LCAxNzgsIDIyMCwgMTM1LCAyMzUsIDE5NSwgCi0gICAgMjQ5LCAxMTMsIDIxOCwgMTA2LCAyMTYsIDIzNiwgMjE4LCAxNjgsIDIyNiwgMTY5LCAyMTcsIDE2NywgMjQ5LCAyMTgsIAotICAgIDIyNiwgMTQyLCAyMjQsIDE4NCwgMjMxLCA0MiwgMjI1LCAxOSwgMjU0LCA1MywgMjI0LCAxNzgsIDI0OSwgMjE4LCAyNTQsIAotICAgIDY5LCAyMjksIDE2MywgMjE5LCAyMDAsIDcsIDYsIDEsIDI0MiwgMjQ5LCA3LCA0LCAxLCAyNDIsIDI0OSwgMjUwLCAxNTksIAotICAgIDE2NSwgMSwgMjMyLCAxNzUsIDIwOSwgMjA5LCAxLCAyNDQsIDQ0LCAyNDQsIDM2LCAyMDksIDIwOSwgMSwgMjQ0LCA0NCwgCi0gICAgMjQ0LCAxNTcsIDIwOSwgMjA5LCAxLCAyMjIsIDIxMSwgMjA5LCAyMDksIDEsIDIzMiwgMTU2LCA2MywgMTY0LCAyNTEsIAotICAgIDIyMywgMjIwLCAzLCAyNDIsIDIxNSwgMjMwLCAyNDgsIDIyMywgNDEsIDI0MywgMjE2LCAyNDMsIDIxNSwgMjQzLCAyMTQsIAotICAgIDIzMCwgNDUsIDIwOSwgMjUxLCAyMDksIDI1MiwgMjA5LCAyNTQsIDIzMiwgMTAyLCAyMjIsIDIxOSwgMjMyLCAxMDMsIDIyMiwgCi0gICAgMjIwLCAyMjUsIDIyMywgMjMyLCAxMDEsIDIyMiwgMjE4LCAyMjgsIDEwNiwgMjMwLCAxNjUsIDIxMSwgMjI5LCAyMTIsIDE1LCAKLSAgICAyNDUsIDE2MiwgMjQzLCAyMjYsIDIzMCwgMjI5LCAyMjYsIDE5NywgMjE0LCAxMzQsIDg3LCAyMzAsIDIyOSwgMjQ4LCAxNTcsIAotICAgIDg3LCA4LCAzLCAyMzUsIDE1OCwgNzgsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDQ0LCA3MSwgMjMzLCAyMCwgMTI3LCAKLSAgICAyMTMsIDExOCwgMjEzLCA3LCAyMTIsIDE5NSwgMjEyLCAxODQsIDIxMiwgMTczLCAyMTIsIDE2MiwgMjEyLCAxNTEsIDIxMiwgCi0gICAgMTQwLCAyMTIsIDEyOSwgMjEzLCAxMTcsIDIxMywgMTA2LCAyMTMsIDk1LCAyMTMsIDg0LCAyMTMsIDczLCAyMTMsIDYyLCAKLSAgICAyMTMsIDUxLCAyNTEsIDcxLCAyMjYsIDE1NSwgNzgsIDI1MSwgMTk2LCAyMDksIDI1MywgNDksIDI4LCAxNiwgMjQzLCAyMzYsIAotICAgIDIxOSwgMTAyLCAyNTAsIDczLCAyMTQsIDksIDIxMywgNDAsIDIxMywgMjksIDIxMywgMTgsIDIxMywgNiwgMjEyLCAyNTEsIAotICAgIDIxMiwgMjQwLCAyMTIsIDIyOSwgMjEyLCAyMTgsIDIxMiwgMjA3LCAyMTIsIDE5OSwgMjEyLCAxOTgsIDIxMiwgMTk3LCAKLSAgICAyMTIsIDE5NiwgMjEyLCAxOTQsIDIxMiwgMTkzLCAyMTIsIDE5MiwgMjEyLCAxOTEsIDIxMiwgMTkwLCAyMTIsIDE4OSwgCi0gICAgMjEyLCAxODgsIDIxMiwgMTg3LCAyMTIsIDE4NiwgMjEyLCAxODUsIDIxMiwgMTgzLCAyMTIsIDE4MiwgMjEyLCAxODEsIAotICAgIDIxMiwgMTgwLCAyMTIsIDE3OSwgMjEyLCAxNzgsIDIxMiwgMTc3LCAyMTIsIDE3NiwgMjEyLCAxNzUsIDIxMiwgMTc0LCAKLSAgICAyMTIsIDE3MiwgMjEyLCAxNzEsIDIxMiwgMTcwLCAyMTIsIDE2OSwgMjEyLCAxNjgsIDIxMiwgMTY3LCAyMTIsIDE2NiwgCi0gICAgMjEyLCAxNjUsIDIxMiwgMTY0LCAyMTIsIDE2MywgMjEyLCAxNjEsIDIxMiwgMTYwLCAyMTIsIDE1OSwgMjEyLCAxNTgsIAotICAgIDIxMiwgMTU3LCAyMTIsIDE1NiwgMjEyLCAxNTUsIDIxMiwgMTU0LCAyMTIsIDE1MywgMjEyLCAxNTIsIDIxMiwgMTUwLCAKLSAgICAyMTIsIDE0OSwgMjEyLCAxNDgsIDIxMiwgMTQ3LCAyMTIsIDE0NiwgMjEyLCAxNDUsIDIxMiwgMTQ0LCAyMTIsIDE0MywgCi0gICAgMjEyLCAxNDIsIDIxMiwgMTQxLCAyMTIsIDEzOSwgMjEyLCAxMzgsIDIxMiwgMTM3LCAyMTIsIDEzNiwgMjEyLCAxMzUsIAotICAgIDIxMiwgMTM0LCAyMTIsIDEzMywgMjEyLCAxMzIsIDIxMiwgMTMxLCAyMTIsIDEzMCwgMjEyLCAxMjgsIDIxMiwgMTI3LCAKLSAgICAyMTIsIDEyNiwgMjEyLCAxMjUsIDIxMiwgMTI0LCAyMTIsIDEyMywgMjEyLCAxMjIsIDIxMiwgMTIxLCAyMTIsIDEyMCwgCi0gICAgMjEyLCAxMTksIDIxMywgMTE2LCAyMTMsIDExNSwgMjEzLCAxMTQsIDIxMywgMTEzLCAyMTMsIDExMiwgMjEzLCAxMTEsIAotICAgIDIxMywgMTEwLCAyMTMsIDEwOSwgMjEzLCAxMDgsIDIxMywgMTA3LCAyMTMsIDEwNSwgMjEzLCAxMDQsIDIxMywgMTAzLCAKLSAgICAyMTMsIDEwMiwgMjEzLCAxMDEsIDIxMywgMTAwLCAyMTMsIDk5LCAyMTMsIDk4LCAyMTMsIDk3LCAyMTMsIDk2LCAyMTMsIAotICAgIDk0LCAyMTMsIDkzLCAyMTMsIDkyLCAyMTMsIDkxLCAyMTMsIDkwLCAyMTMsIDg5LCAyMTMsIDg4LCAyMTMsIDg3LCAyMTMsIAotICAgIDg2LCAyMTMsIDg1LCAyMTMsIDgzLCAyMTMsIDgyLCAyMTMsIDgxLCAyMTMsIDgwLCAyMTMsIDc5LCAyMTMsIDc4LCAyMTMsIAotICAgIDc3LCAyMTMsIDc2LCAyMTMsIDc1LCAyMTMsIDc0LCAyMTMsIDcyLCAyMTMsIDcxLCAyMTMsIDcwLCAyMTMsIDY5LCAyMTMsIAotICAgIDY4LCAyMTMsIDY3LCAyMTMsIDY2LCAyMTMsIDY1LCAyMTMsIDY0LCAyMTMsIDYzLCAyMTMsIDYxLCAyMTMsIDYwLCAyMTMsIAotICAgIDU5LCAyMTMsIDU4LCAyMTMsIDU3LCAyMTMsIDU2LCAyMTMsIDU1LCAyMTMsIDU0LCAyMTMsIDUzLCAyMTMsIDUyLCAyMTMsIAotICAgIDUwLCAyMTMsIDQ5LCAyMTMsIDQ4LCAyMTMsIDQ3LCAyMTMsIDQ2LCAyMTMsIDQ1LCAyMTMsIDQ0LCAyMTMsIDQzLCAyMTMsIAotICAgIDQyLCAyMTMsIDQxLCAyMTMsIDM5LCAyMTMsIDM4LCAyMTMsIDM3LCAyMTMsIDM2LCAyMTMsIDM1LCAyMTMsIDM0LCAyMTMsIAotICAgIDMzLCAyMTMsIDMyLCAyMTMsIDMxLCAyMTMsIDMwLCAyMTMsIDI4LCAyMTMsIDI3LCAyMTMsIDI2LCAyMTMsIDI1LCAyMTMsIAotICAgIDI0LCAyMTMsIDIzLCAyMTMsIDIyLCAyMTMsIDIxLCAyMTMsIDIwLCAyMTMsIDE5LCAyMTMsIDE3LCAyMTMsIDE2LCAyMTMsIAotICAgIDE1LCAyMTMsIDE0LCAyMTMsIDEzLCAyMTMsIDEyLCAyMTMsIDExLCAyMTMsIDEwLCAyMTMsIDksIDIxMywgOCwgMjEzLCA1LCAKLSAgICAyMTMsIDQsIDIxMywgMywgMjEzLCAyLCAyMTMsIDEsIDIxMywgMCwgMjEyLCAyNTUsIDIxMiwgMjU0LCAyMTIsIDI1MywgCi0gICAgMjEyLCAyNTIsIDIxMiwgMjUwLCAyMTIsIDI0OSwgMjEyLCAyNDgsIDIxMiwgMjQ3LCAyMTIsIDI0NiwgMjEyLCAyNDUsIAotICAgIDIxMiwgMjQ0LCAyMTIsIDI0MywgMjEyLCAyNDIsIDIxMiwgMjQxLCAyMTIsIDIzOSwgMjEyLCAyMzgsIDIxMiwgMjM3LCAKLSAgICAyMTIsIDIzNiwgMjEyLCAyMzUsIDIxMiwgMjM0LCAyMTIsIDIzMywgMjEyLCAyMzIsIDIxMiwgMjMxLCAyMTIsIDIzMCwgCi0gICAgMjEyLCAyMjgsIDIxMiwgMjI3LCAyMTIsIDIyNiwgMjEyLCAyMjUsIDIxMiwgMjI0LCAyMTIsIDIyMywgMjEyLCAyMjIsIAotICAgIDIxMiwgMjIxLCAyMTIsIDIyMCwgMjEyLCAyMTksIDIxMiwgMjE3LCAyMTIsIDIxNiwgMjEyLCAyMTUsIDIxMiwgMjE0LCAKLSAgICAyMTIsIDIxMywgMjEyLCAyMTIsIDIxMiwgMjExLCAyMTIsIDIxMCwgMjEyLCAyMDksIDIxMiwgMjA4LCAyMTIsIDIwNiwgCi0gICAgMjEyLCAyMDUsIDIxMiwgMjA0LCAyMTIsIDIwMywgMjEyLCAyMDIsIDIxMiwgMjAxLCAyMTIsIDIwMCwgNywgNiwgMSwgMTE1LCAKLSAgICAyLCAyMzEsIDIzMywgMjIsIDI0MiwgMTM2LCA3LCA0LCAxLCAxMTUsIDIsIDIzMSwgMjMzLCAyMiwgMjQyLCAxMzYsIDcsIDYsIAotICAgIDEsIDE2MCwgMiwgNjcsIDIzMiwgMjE0LCA1MSwgNywgNCwgMSwgMTYwLCAyLCA2NywgMjMyLCAyMTQsIDUxLCA3LCA2LCAxLCAKLSAgICAxNjAsIDIsIDY3LCAyMzIsIDIxNCwgMjUyLCA0MywgMjIsIDI0MiwgMTM2LCA3LCA0LCAxLCAxNjAsIDIsIDY3LCAyMzIsIAotICAgIDIxNCwgMjUyLCA0MywgMjIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxNjAsIDIsIDY3LCAyMzIsIDIxNCwgMjUyLCA0MywgMjIsIAotICAgIDE0MiwgNywgNCwgMSwgMTYwLCAyLCA2NywgMjMyLCAyMTQsIDI1MiwgNDMsIDIyLCAxNDIsIDcsIDYsIDEsIDE2MCwgMiwgCi0gICAgMjUwLCAzMSwgMjIsIDIzMSwgMjMyLCA3LCA0LCAxLCAxNjAsIDIsIDI1MCwgMzEsIDIyLCAyMzEsIDIzMiwgNywgNiwgMSwgCi0gICAgMTYwLCAyLCAyNTAsIDMxLCAyMiwgMjUwLCAyMzQsIDcsIDQsIDEsIDE2MCwgMiwgMjUwLCAzMSwgMjIsIDI1MCwgMjM0LCA3LCAKLSAgICA2LCAxLCAyNDAsIDE1NCwgMiwgMjMxLCAyMzMsIDIyLCAyNDIsIDEzNiwgNywgNCwgMSwgMjQwLCAxNTQsIDIsIDIzMSwgCi0gICAgMjMzLCAyMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDI0MCwgMTU0LCAyLCA1OSwgNzcsIDIyLCAxNDIsIDcsIDQsIDEsIDIyOSwgCi0gICAgODAsIDIsIDIxNiwgODksIDQ4LCA3LCA2LCAxLCAxNDQsIDIsIDY3LCAyMzIsIDIxNCwgNTEsIDcsIDQsIDEsIDE0NCwgMiwgCi0gICAgNjcsIDIzMiwgMjE0LCA1MSwgNywgNiwgMSwgMTQ0LCAyLCA2NywgMjMyLCAyMTQsIDI1MiwgNDMsIDIyLCAyNDIsIDEzNiwgCi0gICAgNywgNCwgMSwgMTQ0LCAyLCA2NywgMjMyLCAyMTQsIDI1MiwgNDMsIDIyLCAyNDIsIDEzNiwgNywgNiwgMSwgMTQ0LCAyLCAKLSAgICA2NywgMjMyLCAyMTQsIDI1MiwgNDMsIDIyLCAxNDIsIDcsIDQsIDEsIDE0NCwgMiwgNjcsIDIzMiwgMjE0LCAyNTIsIDQzLCAKLSAgICAyMiwgMTQyLCA3LCA2LCAxLCAyMjIsIDkyLCAyLCA2NywgMjMyLCAyMTQsIDUxLCA3LCA0LCAxLCAyMjIsIDkyLCAyLCA2NywgCi0gICAgMjMyLCAyMTQsIDUxLCA3LCA2LCAxLCAxMDQsIDIsIDIzMSwgMjMzLCAyMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDEwNCwgMiwgCi0gICAgMjMxLCAyMzMsIDIyLCAyNDIsIDEzNiwgNywgNiwgMSwgMTE1LCAyLCAyMjYsIDIyNSwgMjIsIDE0MiwgNywgNCwgMSwgMTE1LCAKLSAgICAyLCAyMjYsIDIyNSwgMjIsIDE0MiwgNywgNiwgMSwgMTE1LCAyLCAyMjYsIDIyNSwgMjIsIDE4MiwgNywgNCwgMSwgMTE1LCAKLSAgICAyLCAyMjYsIDIyNSwgMjIsIDE4MiwgNywgNiwgMSwgMTYwLCAyLCAyMjYsIDIyNSwgMjIsIDE0MiwgNywgNCwgMSwgMTYwLCAKLSAgICAyLCAyMjYsIDIyNSwgMjIsIDE0MiwgNywgNiwgMSwgMTYwLCAyLCAyMjYsIDIyNSwgMjIsIDE4MiwgNywgNCwgMSwgMTYwLCAKLSAgICAyLCAyMjYsIDIyNSwgMjIsIDE4MiwgNywgNiwgMSwgMTYwLCAyLCA1OSwgNzcsIDIyLCAxNDIsIDcsIDQsIDEsIDE2MCwgMiwgCi0gICAgNTksIDc3LCAyMiwgMTQyLCA3LCA2LCAxLCAxNjAsIDIsIDU5LCA3NywgMjIsIDE4MiwgNywgNCwgMSwgMTYwLCAyLCA1OSwgCi0gICAgNzcsIDIyLCAxODIsIDcsIDQsIDEsIDI0MCwgMTU0LCAyLCA1OSwgNzcsIDIyLCAyNDIsIDEzNiwgNywgNCwgMSwgMjQwLCAKLSAgICAxNTQsIDIsIDU5LCA3NywgMjIsIDE4MiwgNywgNiwgMSwgMjQwLCAxNTQsIDIsIDIyNiwgMjI1LCAyMiwgMTQyLCA3LCA0LCAKLSAgICAxLCAyNDAsIDE1NCwgMiwgMjI2LCAyMjUsIDIyLCA1OSwgNzcsIDIyLCAxNDIsIDcsIDYsIDEsIDI0MCwgMTU0LCAyLCAyMjYsIAotICAgIDIyNSwgMjIsIDE4MiwgNywgNCwgMSwgMjQwLCAxNTQsIDIsIDIyNiwgMjI1LCAyMiwgNTksIDc3LCAyMiwgMTgyLCA3LCA2LCAKLSAgICAxLCAyMzUsIDE0NSwgMiwgMTgyLCA3LCA0LCAxLCAyMzUsIDE0NSwgMiwgNTksIDc3LCAyMiwgMTgyLCA3LCA2LCAxLCAyMzMsIAotICAgIDE0OSwgMiwgMTgyLCA3LCA0LCAxLCAyMzMsIDE0OSwgMiwgMTgyLCA3LCA2LCAxLCAyMzIsIDUwLCAyLCAxODIsIDcsIDQsIAotICAgIDEsIDIzMiwgNTAsIDIsIDE4MiwgNywgNiwgMSwgMjIzLCAyMjQsIDIsIDE4MiwgNywgNCwgMSwgMjIzLCAyMjQsIDIsIDE4MiwgCi0gICAgNywgNiwgMSwgMTA0LCAyLCAyMjYsIDIyNSwgMjIsIDE0MiwgNywgNCwgMSwgMTA0LCAyLCAyMjYsIDIyNSwgMjIsIDE0MiwgCi0gICAgNywgNiwgMSwgMTA0LCAyLCAyMjYsIDIyNSwgMjIsIDE4MiwgNywgNCwgMSwgMTA0LCAyLCAyMjYsIDIyNSwgMjIsIDE4MiwgCi0gICAgNywgNiwgMSwgMTA0LCAyLCAyMzEsIDIzMywgMjIsIDE0MiwgNywgNCwgMSwgMTA0LCAyLCAyMzEsIDIzMywgMjIsIDE0MiwgCi0gICAgNywgNiwgMSwgMTA0LCAyLCAyMzEsIDIzMywgMjIsIDE4MiwgNywgNCwgMSwgMTA0LCAyLCAyMzEsIDIzMywgMjIsIDE4MiwgCi0gICAgNywgNCwgMSwgMjU0LCAyNDQsIDIsIDI0MiwgMTM2LCA3LCA0LCAxLCAyMDQsIDE0NCwgMiwgMjQyLCAxMzYsIDcsIDQsIDEsIAotICAgIDIwNCwgMTQ0LCAyLCAxNDIsIDcsIDQsIDEsIDIxNSwgOTQsIDIxNCwgMTA2LCAyLCAyNDIsIDEzNiwgNywgNCwgMSwgMjE1LCAKLSAgICA5NCwgMjE0LCAxMDYsIDIsIDE0MiwgNywgNCwgMSwgMjIxLCAxOTYsIDIsIDI0MiwgMTM2LCA3LCA0LCAxLCAyMjEsIDE5NiwgCi0gICAgMiwgMTQyLCA3LCA0LCAxLCAyNDEsIDUxLCAyMjEsIDE5NiwgMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDI0MSwgNTEsIDIyMSwgCi0gICAgMTk2LCAyLCAxNDIsIDE0NiwgMSwgMjM0LCAxMDksIDM2LCAxMTYsIDIzNSwgMjMsIDM2LCAxMTYsIDIyOSwgNzksIDM2LCAKLSAgICAxMTYsIDI1MSwgNjYsIDM2LCAxMTYsIDIyNywgMTY3LCAzNiwgMTE2LCAyMTUsIDE1OSwgMzYsIDExNiwgMjI4LCAxMTEsIAotICAgIDM2LCAxMTYsIDIxNywgMTUyLCAzNiwgMTE2LCAyMzAsIDI1LCAzNiwgMTE2LCAyMjYsIDEwNSwgMzYsIDExNiwgMTkzLCAzNiwgCi0gICAgMTE2LCAyMTEsIDExNywgMzYsIDExNiwgMTUzLCAzNiwgMTE2LCAxNTYsIDM2LCAxMTYsIDIxNCwgMTA1LCAzNiwgMTE2LCAKLSAgICAyMzIsIDE3NiwgMzYsIDExNiwgMjMyLCAxODUsIDM2LCAxMTYsIDIyMiwgMTgwLCAzNiwgMTE2LCAyMjgsIDkzLCAzNiwgCi0gICAgMTE2LCAyMzUsIDE0NCwgMzYsIDExNiwgMjIwLCAxMDQsIDM2LCAxMTYsIDIxOCwgMjI2LCAzNiwgMTE2LCAyMjIsIDkxLCAKLSAgICAzNiwgMTE2LCAyNDIsIDYwLCAzNiwgMTE2LCAyMzMsIDIzMiwgMzYsIDMsIDIzNSwgMTAsIDM2LCAzLCAyMzQsIDkyLCAzNiwgCi0gICAgMywgMjM0LCA4MywgMzYsIDMsIDIzMywgMjE3LCAzNiwgMywgMjMzLCAxODgsIDM2LCAzLCAyMzQsIDE4MiwgMzYsIDMsIAotICAgIDIzNCwgMTgxLCAzNiwgMywgMjM0LCAyNDYsIDM2LCAzLCAyMzQsIDI4LCAzNiwgMywgMjM0LCAxMCwgMzYsIDMsIDIzNCwgCi0gICAgMTk1LCAzNiwgMywgMjI5LCA3NiwgMzYsIDMsIDIyOSwgMjcsIDM2LCAzLCAyMjksIDIzLCAzNiwgMywgMjI4LCAyNDgsIDM2LCAKLSAgICAzLCAyMjgsIDI0MSwgMzYsIDMsIDIyOSwgNjQsIDM2LCAzLCAyMjksIDYyLCAzNiwgMywgMjI5LCA3MywgMzYsIDMsIDIyOSwgCi0gICAgNCwgMzYsIDMsIDIyOCwgMjU1LCAzNiwgMywgMjI5LCA2NiwgMzYsIDMsIDI1MSwgMzIsIDM2LCAzLCAyNTAsIDUxLCAzNiwgCi0gICAgMywgMjUwLCA0MSwgMzYsIDMsIDI0OSwgMTEyLCAzNiwgMywgMjQ5LCA4MywgMzYsIDMsIDI1MCwgMTkwLCAzNiwgMywgMjUwLCAKLSAgICAxODIsIDM2LCAzLCAyNTEsIDIyLCAzNiwgMywgMjQ5LCAyMzgsIDM2LCAzLCAyNDksIDE3NCwgMzYsIDMsIDI1MCwgMjIyLCAKLSAgICAzNiwgMywgMjI3LCAxNjQsIDM2LCAzLCAyMjcsIDE0OCwgMzYsIDMsIDIyNywgMTQzLCAzNiwgMywgMjI3LCAxMjgsIDM2LCAKLSAgICAzLCAyMjcsIDEyMSwgMzYsIDMsIDIyNywgMTU2LCAzNiwgMywgMjI3LCAxNTUsIDM2LCAzLCAyMjcsIDE2MSwgMzYsIDMsIAotICAgIDIyNywgMTM0LCAzNiwgMywgMjI3LCAxMzIsIDM2LCAzLCAyMjcsIDE1OSwgMzYsIDMsIDIxNSwgMTU1LCAzNiwgMywgMjE1LCAKLSAgICAxMzUsIDM2LCAzLCAyMTUsIDEzNCwgMzYsIDMsIDIxNSwgMTIzLCAzNiwgMywgMjE1LCAxMjAsIDM2LCAzLCAyMTUsIDE1MSwgCi0gICAgMzYsIDMsIDIxNSwgMTUwLCAzNiwgMywgMjE1LCAxNTQsIDM2LCAzLCAyMTUsIDEzMywgMzYsIDMsIDIxNSwgMTMyLCAzNiwgCi0gICAgMywgMjE1LCAxNTMsIDM2LCAzLCAyMjgsIDEwOSwgMzYsIDMsIDIyOCwgOTUsIDM2LCAzLCAyMjgsIDk0LCAzNiwgMywgMjI4LCAKLSAgICA3OCwgMzYsIDMsIDIyOCwgNzcsIDM2LCAzLCAyMjgsIDEwNSwgMzYsIDMsIDIyOCwgMTA0LCAzNiwgMywgMjI4LCAxMDgsIAotICAgIDM2LCAzLCAyMjgsIDgwLCAzNiwgMywgMjI4LCA3OSwgMzYsIDMsIDIyOCwgMTA3LCAzNiwgMywgMjE3LCAxMDEsIDM2LCAzLCAKLSAgICAyMTYsIDExNywgMzYsIDMsIDIxNiwgMTAzLCAzNiwgMywgMjE1LCAxMTgsIDM2LCAzLCAyMTUsIDg1LCAzNiwgMywgMjE3LCAKLSAgICAyMiwgMzYsIDMsIDIxNywgMTEsIDM2LCAzLCAyMTcsIDc5LCAzNiwgMywgMTExLCAzNiwgMywgMjE2LCAxNywgMzYsIDMsIAotICAgIDIxNywgNDEsIDM2LCAzLCAyMjksIDIyNSwgMzYsIDMsIDIyOCwgMjMzLCAzNiwgMywgMjI4LCAyMDgsIDM2LCAzLCAyMjcsIAotICAgIDIzNywgMzYsIDMsIDIyNywgMTc5LCAzNiwgMywgMjI5LCAxMDcsIDM2LCAzLCAyMjksIDEwMywgMzYsIDMsIDIyOSwgMjEyLCAKLSAgICAzNiwgMywgMjI4LCA3NCwgMzYsIDMsIDIyOCwgNjQsIDM2LCAzLCAyMjksIDE4NywgMzYsIDMsIDIyNiwgODksIDM2LCAzLCAKLSAgICAyMjUsIDEwOCwgMzYsIDMsIDIyNSwgNzEsIDM2LCAzLCAyMjQsIDE1MCwgMzYsIDMsIDIyNCwgMTE5LCAzNiwgMywgMjI1LCAKLSAgICAyMjEsIDM2LCAzLCAyMjUsIDIxMSwgMzYsIDMsIDIyNiwgNzEsIDM2LCAzLCAyMjUsIDE2LCAzNiwgMywgMjI0LCAyNDksIAotICAgIDM2LCAzLCAyMjUsIDIzNCwgMzYsIDMsIDIzMSwgMjM3LCAzNiwgMywgMjMwLCAyMzAsIDM2LCAzLCAyMzAsIDIwMSwgMzYsIAotICAgIDMsIDIzMCwgMTAyLCAzNiwgMywgMjMwLCA1NCwgMzYsIDMsIDIzMSwgOTEsIDM2LCAzLCAyMzEsIDgwLCAzNiwgMywgMjMxLCAKLSAgICAyMDMsIDM2LCAzLCAyMzAsIDE2MSwgMzYsIDMsIDIzMCwgMTMyLCAzNiwgMywgMjMxLCAxMzUsIDM2LCAzLCAyMTEsIDEwMywgCi0gICAgMzYsIDMsIDIxMSwgOCwgMzYsIDMsIDIxMCwgMjU1LCAzNiwgMywgMjEwLCAyMTIsIDM2LCAzLCAyMTAsIDE4MSwgMzYsIDMsIAotICAgIDIxMSwgNDcsIDM2LCAzLCAyMTEsIDQ0LCAzNiwgMywgMjExLCA4MiwgMzYsIDMsIDIxMCwgMjQ0LCAzNiwgMywgMjEwLCAKLSAgICAyMjksIDM2LCAzLCAyMTEsIDU1LCAzNiwgMywgMjIzLCAxODQsIDM2LCAzLCAyMjMsIDM1LCAzNiwgMywgMjIyLCAyMzksIAotICAgIDM2LCAzLCAyMjIsIDE0MCwgMzYsIDMsIDIyMiwgMTEyLCAzNiwgMywgMjIzLCAxMjgsIDM2LCAzLCAyMjMsIDEwOCwgMzYsIAotICAgIDMsIDIyMywgMTY2LCAzNiwgMywgMjIyLCAyMTEsIDM2LCAzLCAyMjIsIDE5NywgMzYsIDMsIDIyMywgMTM2LCAzNiwgMywgCi0gICAgMjMzLCAxMzQsIDM2LCAzLCAyMzIsIDI0MSwgMzYsIDMsIDIzMiwgMjI3LCAzNiwgMywgMjMyLCA5OCwgMzYsIDMsIDIzMiwgCi0gICAgNzMsIDM2LCAzLCAyMzMsIDU4LCAzNiwgMywgMjMzLCA1MCwgMzYsIDMsIDIzMywgMTA5LCAzNiwgMywgMjMyLCAxNTYsIDM2LCAKLSAgICAzLCAyMzIsIDEyNywgMzYsIDMsIDIzMywgNzQsIDM2LCAzLCAyMTQsIDI2LCAzNiwgMywgMjEzLCAxNzYsIDM2LCAzLCAyMTMsIAotICAgIDE2MiwgMzYsIDMsIDIxMiwgMTE2LCAzNiwgMywgMjEyLCAxMDksIDM2LCAzLCAyMTMsIDI1NSwgMzYsIDMsIDIxMywgMjUwLCAKLSAgICAzNiwgMywgMjE0LCAyMywgMzYsIDMsIDIxMywgMTM4LCAzNiwgMywgMjEzLCAxMjcsIDM2LCAzLCAyMTQsIDUsIDM2LCAzLCAKLSAgICAyMzIsIDE3NCwgMzYsIDMsIDIzMiwgMTY5LCAzNiwgMywgMjMyLCAxNjgsIDM2LCAzLCAyMzIsIDE2NSwgMzYsIDMsIDIzMiwgCi0gICAgMTY0LCAzNiwgMywgMjMyLCAxNzEsIDM2LCAzLCAyMzIsIDE3MCwgMzYsIDMsIDIzMiwgMTczLCAzNiwgMywgMjMyLCAxNjcsIAotICAgIDM2LCAzLCAyMzIsIDE2NiwgMzYsIDMsIDIzMiwgMTcyLCAzNiwgMywgMjMyLCAxODMsIDM2LCAzLCAyMzIsIDE3OCwgMzYsIAotICAgIDMsIDIzMiwgMTc3LCAzNiwgMywgMjMyLCAxNjEsIDM2LCAzLCAyMzIsIDE2MCwgMzYsIDMsIDIzMiwgMTgwLCAzNiwgMywgCi0gICAgMjMyLCAxNzksIDM2LCAzLCAyMzIsIDE4MiwgMzYsIDMsIDIzMiwgMTYzLCAzNiwgMywgMjMyLCAxNjIsIDM2LCAzLCAyMzIsIAotICAgIDE4MSwgMzYsIDMsIDIyMiwgMTc4LCAzNiwgMywgMjIyLCAxNjcsIDM2LCAzLCAyMjIsIDE2NiwgMzYsIDMsIDIyMiwgMTYwLCAKLSAgICAzNiwgMywgMjIyLCAxNTMsIDM2LCAzLCAyMjIsIDE3NCwgMzYsIDMsIDIyMiwgMTczLCAzNiwgMywgMjIyLCAxNzcsIDM2LCAKLSAgICAzLCAyMjIsIDE2NSwgMzYsIDMsIDIyMiwgMTY0LCAzNiwgMywgMjIyLCAxNzYsIDM2LCAzLCAyMjgsIDkxLCAzNiwgMywgCi0gICAgMjI4LCA4NiwgMzYsIDMsIDIyOCwgODUsIDM2LCAzLCAyMjgsIDgyLCAzNiwgMywgMjI4LCA4MSwgMzYsIDMsIDIyOCwgODgsIAotICAgIDM2LCAzLCAyMjgsIDg3LCAzNiwgMywgMjI4LCA5MCwgMzYsIDMsIDIyOCwgODQsIDM2LCAzLCAyMjgsIDgzLCAzNiwgMywgCi0gICAgMjI4LCA4OSwgMzYsIDMsIDIzNSwgMTQwLCAzNiwgMywgMjM1LCAxMDgsIDM2LCAzLCAyMzUsIDEwMSwgMzYsIDMsIDIzNSwgCi0gICAgNTEsIDM2LCAzLCAyMzUsIDMzLCAzNiwgMywgMjM1LCAxMjYsIDM2LCAzLCAyMzUsIDEyNCwgMzYsIDMsIDIzNSwgMTM1LCAKLSAgICAzNiwgMywgMjM1LCA2OCwgMzYsIDMsIDIzNSwgNTksIDM2LCAzLCAyMzUsIDEyOSwgMzYsIDMsIDIyMCwgOTgsIDM2LCAzLCAKLSAgICAyMjAsIDMyLCAzNiwgMywgMjIwLCAyNywgMzYsIDMsIDIxOSwgMjI1LCAzNiwgMywgMjE5LCAyMTAsIDM2LCAzLCAyMjAsIAotICAgIDYzLCAzNiwgMywgMjIwLCA2MSwgMzYsIDMsIDIyMCwgOTAsIDM2LCAzLCAyMjAsIDcsIDM2LCAzLCAyMjAsIDEsIDM2LCAzLCAKLSAgICAyMjAsIDcxLCAzNiwgMywgMjE4LCAyMjIsIDM2LCAzLCAyMTgsIDE5MiwgMzYsIDMsIDIxOCwgMTg4LCAzNiwgMywgMjE4LCAKLSAgICAxNzksIDM2LCAzLCAyMTgsIDE3NiwgMzYsIDMsIDIxOCwgMTk3LCAzNiwgMywgMjE4LCAxOTYsIDM2LCAzLCAyMTgsIDIyMSwgCi0gICAgMzYsIDMsIDIxOCwgMTg0LCAzNiwgMywgMjE4LCAxODMsIDM2LCAzLCAyMTgsIDE5OSwgMzYsIDMsIDIyMiwgMzEsIDM2LCAzLCAKLSAgICAyMTksIDE5MSwgMzYsIDMsIDIxOSwgMTc1LCAzNiwgMywgMjE4LCA4MywgMzYsIDMsIDIxOCwgNCwgMzYsIDMsIDIyMSwgCi0gICAgMTgxLCAzNiwgMywgMjIxLCAxNzAsIDM2LCAzLCAyMjIsIDE3LCAzNiwgMywgMjE5LCA1OCwgMzYsIDMsIDIxOSwgNDAsIDM2LCAKLSAgICAzLCAyMjEsIDIxOSwgMzYsIDMsIDI0MiwgNDYsIDM2LCAzLCAyNDEsIDE4MCwgMzYsIDMsIDI0MSwgMTYxLCAzNiwgMywgCi0gICAgMjQwLCAyMjIsIDM2LCAzLCAyNDAsIDIwMiwgMzYsIDMsIDI0MSwgMjM4LCAzNiwgMywgMjQxLCAyMjAsIDM2LCAzLCAyNDIsIAotICAgIDM2LCAzNiwgMywgMjQxLCA2OCwgMzYsIDMsIDI0MSwgNTMsIDM2LCAzLCAyNDEsIDI0NiwgMzYsIDMsIDIzMywgMjMxLCAzNiwgCi0gICAgMywgMjMzLCAyMzAsIDM2LCAzLCAyMzMsIDIyNSwgMzYsIDMsIDIzMywgMjI0LCAzNiwgMywgMjMzLCAyMjEsIDM2LCAzLCAKLSAgICAyMzMsIDIyMCwgMzYsIDMsIDIzMywgMjI3LCAzNiwgMywgMjMzLCAyMjYsIDM2LCAzLCAyMzMsIDIyOSwgMzYsIDMsIDIzMywgCi0gICAgMjIzLCAzNiwgMywgMjMzLCAyMjIsIDM2LCAzLCAyMzMsIDIyOCwgMzYsIDMsIDIxOSwgMjMxLCAxNzUsIDExNiwgNSwgMjExLCAKLSAgICA2OCwgMTc1LCAxMTYsIDUsIDIyMywgMTU1LCAxNzUsIDExNiwgNSwgMjIzLCA3OCwgOTgsIDEsIDIxNSwgMjgsIDY5LCAxMTYsIAotICAgIDUsIDI0OSwgMjMzLCAxNzYsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyMzQsIDEzMiwgNjksIDExNiwgNSwgMjQ5LCAyMzMsIAotICAgIDIzNCwgMjgsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyMzQsIDEwNSwgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDIyOSwgNCwgCi0gICAgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDI1MSwgMzMsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyNTAsIDE1NywgNjksIDExNiwgCi0gICAgNSwgMjQ5LCAyMzMsIDI0OSwgMjM4LCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjUwLCA4NiwgNjksIDExNiwgNSwgMjQ5LCAKLSAgICAyMzMsIDIyNywgMTM0LCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjQ4LCAyMjEsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyMTUsIAotICAgIDE0NCwgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDI0NywgMTQ1LCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjE1LCAxMzksIDY5LCAKLSAgICAxMTYsIDUsIDI0OSwgMjMzLCAxOTcsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyMTcsIDEwNSwgNjksIDExNiwgNSwgMjQ5LCAKLSAgICAyMzMsIDIxNiwgMjA4LCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMTExLCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjE2LCAxNTYsIAotICAgIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyMjgsIDc0LCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjUyLCAxOTEsIDY5LCAxMTYsIAotICAgIDUsIDI0OSwgMjMzLCAyMjUsIDE0NywgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDIyNSwgMTYsIDY5LCAxMTYsIDUsIDI0OSwgCi0gICAgMjMzLCAyMjUsIDEyMSwgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDIzMCwgMTYxLCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjEwLCAKLSAgICAyNDQsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyMjIsIDIxMSwgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDIzMiwgMTU2LCA2OSwgCi0gICAgMTE2LCA1LCAyNDksIDIzMywgMjEzLCAxMzgsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyMjAsIDEwMiwgNjksIDExNiwgNSwgCi0gICAgMjQ5LCAyMzMsIDIxOCwgMjIzLCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjA2LCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMTYyLCAKLSAgICA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjMzLCAxMzUsIDY5LCAyNSwgNSwgMjQ5LCAyMzMsIDIyNCwgODgsIDY5LCAyMzUsIAotICAgIDI0MywgMjUsIDUsIDI0OSwgMjMzLCAyMjQsIDMwLCA2OSwgMjM1LCAyNDMsIDI1LCA1LCAyNDksIDIzMywgMjIyLCAxMDAsIAotICAgIDY5LCAyMzUsIDI0MywgMjUsIDUsIDI0OSwgMjMzLCAyMjIsIDkzLCA2OSwgMjM1LCAyNDMsIDI1LCA1LCAyNDksIDIzMywgCi0gICAgMjI0LCA2OSwgNjksIDI1LCA1LCAyMjYsIDIwNCwgNjksIDI1LCA1LCAyNTUsIDM0LCAxNDEsIDEsIDI1MSwgMjU1LCAyMjksIAotICAgIDc3LCAxNDEsIDEsIDI1MSwgMjU1LCAyMjksIDI3LCAxNDEsIDEsIDI1MSwgMjU1LCAyMjgsIDI0OCwgMTQxLCAxLCAyNTEsIAotICAgIDI1NSwgMjI5LCA2NCwgMTQxLCAxLCAyNTEsIDI1NSwgMjI5LCA0LCA1NiwgMSwgMjUxLCAyNTUsIDIyOSwgNzcsIDU2LCAxLCAKLSAgICAyNTEsIDI1NSwgMjI5LCAyNywgNTYsIDEsIDI1MSwgMjU1LCAyMjgsIDI0OCwgNTYsIDEsIDI1MSwgMjU1LCAyMjksIDY0LCAKLSAgICA1NiwgMSwgMjUxLCAyNTUsIDIyOSwgNCwgNTYsIDEsIDI1NCwgMTk0LCAyNTAsIDE5MCwgNTYsIDEsIDI1NCwgMTk0LCAyMTUsIAotICAgIDExOCwgNTYsIDEsIDI1NCwgMTk0LCAxMTEsIDU2LCAxLCAyNTQsIDE5NCwgMjI2LCAxMDUsIDU4LCAxLCAyNDUsIDIwLCAKLSAgICAyNDUsIDE5LCAyNDksIDE4MiwgMTM4LCAxMzAsIDU4LCAxLCAyNDUsIDE5LCAyNDUsIDIwLCAyNDksIDE4MiwgMTM4LCAxMzAsIAorICAgIDExNywgMTI5LCA3LCA0LCAxLCAyMTAsIDE1OSwgMTI5LCA0MywgMjQ5LCAxMDAsIDEyNywgMTI5LCA2NywgMjMyLCAyMTQsIAorICAgIDEyOSwgNDQsIDI0OSwgMTAwLCAxMjcsIDEyOSwgMTgzLCAyNTEsIDcsIDIxNywgODUsIDQ1LCAyMjEsIDc5LCA0NSwgMjIxLCAKKyAgICA2OCwgNDUsIDIyMSwgNTcsIDQ1LCAyMjEsIDQ1LCA0NSwgMjIxLCAzNCwgNDUsIDIyMSwgMjMsIDQ1LCAyMjEsIDEyLCA0NSwgCisgICAgMjIxLCAxLCA0NSwgMjIwLCAyNDYsIDQ1LCAyMjAsIDIzOCwgNDUsIDIyMCwgMjM3LCA0NSwgMjIwLCAyMzYsIDQ1LCAyMjAsIAorICAgIDIzNSwgNDUsIDIyMCwgMjMzLCA0NSwgMjIwLCAyMzIsIDQ1LCAyMjAsIDIzMSwgNDUsIDIyMCwgMjMwLCA0NSwgMjIwLCAKKyAgICAyMjksIDQ1LCAyMjAsIDIyOCwgNDUsIDIyMCwgMjI3LCA0NSwgMjIwLCAyMjYsIDQ1LCAyMjAsIDIyNSwgNDUsIDIyMCwgCisgICAgMjI0LCA0NSwgMjIwLCAyMjIsIDQ1LCAyMjAsIDIyMSwgNDUsIDIyMCwgMjIwLCA0NSwgMjIwLCAyMTksIDQ1LCAyMjAsIAorICAgIDIxOCwgNDUsIDIyMCwgMjE3LCA0NSwgMjIwLCAyMTYsIDQ1LCAyMjAsIDIxNSwgNDUsIDIyMCwgMjE0LCA0NSwgMjIwLCAKKyAgICAyMTMsIDQ1LCAyMjAsIDIxMSwgNDUsIDIyMCwgMjEwLCA0NSwgMjIwLCAyMDksIDQ1LCAyMjAsIDIwOCwgNDUsIDIyMCwgCisgICAgMjA3LCA0NSwgMjIwLCAyMDYsIDQ1LCAyMjAsIDIwNSwgNDUsIDIyMCwgMjA0LCA0NSwgMjIwLCAyMDMsIDQ1LCAyMjAsIAorICAgIDIwMiwgNDUsIDIyMCwgMjAwLCA0NSwgMjIwLCAxOTksIDQ1LCAyMjAsIDE5OCwgNDUsIDIyMCwgMTk3LCA0NSwgMjIwLCAKKyAgICAxOTYsIDQ1LCAyMjAsIDE5NSwgNDUsIDIyMCwgMTk0LCA0NSwgMjIwLCAxOTMsIDQ1LCAyMjAsIDE5MiwgNDUsIDIyMCwgCisgICAgMTkxLCA0NSwgMjIwLCAxODksIDQ1LCAyMjAsIDE4OCwgNDUsIDIyMCwgMTg3LCA0NSwgMjIwLCAxODYsIDQ1LCAyMjAsIAorICAgIDE4NSwgNDUsIDIyMCwgMTg0LCA0NSwgMjIwLCAxODMsIDQ1LCAyMjAsIDE4MiwgNDUsIDIyMCwgMTgxLCA0NSwgMjIwLCAKKyAgICAxODAsIDQ1LCAyMjAsIDE3OCwgNDUsIDIyMCwgMTc3LCA0NSwgMjIwLCAxNzYsIDQ1LCAyMjAsIDE3NSwgNDUsIDIyMCwgCisgICAgMTc0LCA0NSwgMjIwLCAxNzMsIDQ1LCAyMjAsIDE3MiwgNDUsIDIyMCwgMTcxLCA0NSwgMjIwLCAxNzAsIDQ1LCAyMjAsIAorICAgIDE2OSwgNDUsIDIyMCwgMTY3LCA0NSwgMjIwLCAxNjYsIDQ1LCAyMjAsIDE2NSwgNDUsIDIyMCwgMTY0LCA0NSwgMjIwLCAKKyAgICAxNjMsIDQ1LCAyMjAsIDE2MiwgNDUsIDIyMCwgMTYxLCA0NSwgMjIwLCAxNjAsIDQ1LCAyMjAsIDE1OSwgNDUsIDIyMCwgCisgICAgMTU4LCA0NSwgMjIxLCAxNTUsIDQ1LCAyMjEsIDE1NCwgNDUsIDIyMSwgMTUzLCA0NSwgMjIxLCAxNTIsIDQ1LCAyMjEsIAorICAgIDE1MSwgNDUsIDIyMSwgMTUwLCA0NSwgMjIxLCAxNDksIDQ1LCAyMjEsIDE0OCwgNDUsIDIyMSwgMTQ3LCA0NSwgMjIxLCAKKyAgICAxNDYsIDQ1LCAyMjEsIDE0NCwgNDUsIDIyMSwgMTQzLCA0NSwgMjIxLCAxNDIsIDQ1LCAyMjEsIDE0MSwgNDUsIDIyMSwgCisgICAgMTQwLCA0NSwgMjIxLCAxMzksIDQ1LCAyMjEsIDEzOCwgNDUsIDIyMSwgMTM3LCA0NSwgMjIxLCAxMzYsIDQ1LCAyMjEsIAorICAgIDEzNSwgNDUsIDIyMSwgMTMzLCA0NSwgMjIxLCAxMzIsIDQ1LCAyMjEsIDEzMSwgNDUsIDIyMSwgMTMwLCA0NSwgMjIxLCAKKyAgICAxMjksIDQ1LCAyMjEsIDEyOCwgNDUsIDIyMSwgMTI3LCA0NSwgMjIxLCAxMjYsIDQ1LCAyMjEsIDEyNSwgNDUsIDIyMSwgCisgICAgMTI0LCA0NSwgMjIxLCAxMjIsIDQ1LCAyMjEsIDEyMSwgNDUsIDIyMSwgMTIwLCA0NSwgMjIxLCAxMTksIDQ1LCAyMjEsIAorICAgIDExOCwgNDUsIDIyMSwgMTE3LCA0NSwgMjIxLCAxMTYsIDQ1LCAyMjEsIDExNSwgNDUsIDIyMSwgMTE0LCA0NSwgMjIxLCAKKyAgICAxMTMsIDQ1LCAyMjEsIDExMSwgNDUsIDIyMSwgMTEwLCA0NSwgMjIxLCAxMDksIDQ1LCAyMjEsIDEwOCwgNDUsIDIyMSwgCisgICAgMTA3LCA0NSwgMjIxLCAxMDYsIDQ1LCAyMjEsIDEwNSwgNDUsIDIyMSwgMTA0LCA0NSwgMjIxLCAxMDMsIDQ1LCAyMjEsIAorICAgIDEwMiwgNDUsIDIyMSwgMTAwLCA0NSwgMjIxLCA5OSwgNDUsIDIyMSwgOTgsIDQ1LCAyMjEsIDk3LCA0NSwgMjIxLCA5NiwgCisgICAgNDUsIDIyMSwgOTUsIDQ1LCAyMjEsIDk0LCA0NSwgMjIxLCA5MywgNDUsIDIyMSwgOTIsIDQ1LCAyMjEsIDkxLCA0NSwgMjIxLCAKKyAgICA4OSwgNDUsIDIyMSwgODgsIDQ1LCAyMjEsIDg3LCA0NSwgMjIxLCA4NiwgNDUsIDIyMSwgODUsIDQ1LCAyMjEsIDg0LCA0NSwgCisgICAgMjIxLCA4MywgNDUsIDIyMSwgODIsIDQ1LCAyMjEsIDgxLCA0NSwgMjIxLCA4MCwgNDUsIDIyMSwgNzgsIDQ1LCAyMjEsIDc3LCAKKyAgICA0NSwgMjIxLCA3NiwgNDUsIDIyMSwgNzUsIDQ1LCAyMjEsIDc0LCA0NSwgMjIxLCA3MywgNDUsIDIyMSwgNzIsIDQ1LCAyMjEsIAorICAgIDcxLCA0NSwgMjIxLCA3MCwgNDUsIDIyMSwgNjksIDQ1LCAyMjEsIDY3LCA0NSwgMjIxLCA2NiwgNDUsIDIyMSwgNjUsIDQ1LCAKKyAgICAyMjEsIDY0LCA0NSwgMjIxLCA2MywgNDUsIDIyMSwgNjIsIDQ1LCAyMjEsIDYxLCA0NSwgMjIxLCA2MCwgNDUsIDIyMSwgNTksIAorICAgIDQ1LCAyMjEsIDU4LCA0NSwgMjIxLCA1NiwgNDUsIDIyMSwgNTUsIDQ1LCAyMjEsIDU0LCA0NSwgMjIxLCA1MywgNDUsIDIyMSwgCisgICAgNTIsIDQ1LCAyMjEsIDUxLCA0NSwgMjIxLCA1MCwgNDUsIDIyMSwgNDksIDQ1LCAyMjEsIDQ4LCA0NSwgMjIxLCA0NywgNDUsIAorICAgIDIyMSwgNDQsIDQ1LCAyMjEsIDQzLCA0NSwgMjIxLCA0MiwgNDUsIDIyMSwgNDEsIDQ1LCAyMjEsIDQwLCA0NSwgMjIxLCAzOSwgCisgICAgNDUsIDIyMSwgMzgsIDQ1LCAyMjEsIDM3LCA0NSwgMjIxLCAzNiwgNDUsIDIyMSwgMzUsIDQ1LCAyMjEsIDMzLCA0NSwgMjIxLCAKKyAgICAzMiwgNDUsIDIyMSwgMzEsIDQ1LCAyMjEsIDMwLCA0NSwgMjIxLCAyOSwgNDUsIDIyMSwgMjgsIDQ1LCAyMjEsIDI3LCA0NSwgCisgICAgMjIxLCAyNiwgNDUsIDIyMSwgMjUsIDQ1LCAyMjEsIDI0LCA0NSwgMjIxLCAyMiwgNDUsIDIyMSwgMjEsIDQ1LCAyMjEsIDIwLCAKKyAgICA0NSwgMjIxLCAxOSwgNDUsIDIyMSwgMTgsIDQ1LCAyMjEsIDE3LCA0NSwgMjIxLCAxNiwgNDUsIDIyMSwgMTUsIDQ1LCAyMjEsIAorICAgIDE0LCA0NSwgMjIxLCAxMywgNDUsIDIyMSwgMTEsIDQ1LCAyMjEsIDEwLCA0NSwgMjIxLCA5LCA0NSwgMjIxLCA4LCA0NSwgCisgICAgMjIxLCA3LCA0NSwgMjIxLCA2LCA0NSwgMjIxLCA1LCA0NSwgMjIxLCA0LCA0NSwgMjIxLCAzLCA0NSwgMjIxLCAyLCA0NSwgCisgICAgMjIxLCAwLCA0NSwgMjIwLCAyNTUsIDQ1LCAyMjAsIDI1NCwgNDUsIDIyMCwgMjUzLCA0NSwgMjIwLCAyNTIsIDQ1LCAyMjAsIAorICAgIDI1MSwgNDUsIDIyMCwgMjUwLCA0NSwgMjIwLCAyNDksIDQ1LCAyMjAsIDI0OCwgNDUsIDIyMCwgMjQ3LCA0NSwgMjIwLCAKKyAgICAyNDUsIDQ1LCAyMjAsIDI0NCwgNDUsIDIyMCwgMjQzLCA0NSwgMjIwLCAyNDIsIDQ1LCAyMjAsIDI0MSwgNDUsIDIyMCwgCisgICAgMjQwLCA0NSwgMjIwLCAyMzksIDIyNywgMjAzLCAyMjcsIDIwNSwgMjE4LCAxNTMsIDY0LCAyNDEsIDIzNCwgMjE5LCA0OSwgCisgICAgMjE4LCAxNTMsIDY0LCAyMTYsIDIxMywgMjE4LCA4NiwgMjQ1LCAxNDQsIDY0LCAyMTYsIDIxMywgMjQ1LCA1NywgMjQ1LCAKKyAgICAxNDQsIDY0LCAyMTUsIDI0NCwgMjQ1LCAxMTAsIDI0NSwgMTMzLCAyNDUsIDEzNCwgMjU1LCA4LCAyNTUsIDksIDI1NCwgCisgICAgMTY4LCAyNTIsIDQ4LCAyNTIsIDE4MCwgMjUxLCAxMzIsIDEzNSwgMjE3LCA5MCwgMjAzLCAyMTcsIDkwLCAyNDAsIDIyOCwgCisgICAgMjE3LCA5NCwgMjMyLCAyMTUsIDI0NCwgMTQ2LCAxNjYsIDIzMiwgMjE0LCAyNDUsIDE0NCwgNjQsIDIzMiwgMjE0LCAyMzMsIAorICAgIDEsIDIyOCwgMTM2LCAyNDUsIDExMywgMjMyLCAyMTUsIDIxNywgOTAsIDY3LCAyMTcsIDkwLCAyMTIsIDExOCwgMjQ0LCAyMSwgCisgICAgMjQ0LCAxNDYsIDI0NCwgMTI2LCAyNTAsIDIzMSwgMjIzLCA1NCwgMjQ5LCAxNDQsIDIyMCwgMjksIDIyNiwgMTMxLCAyMzIsIAorICAgIDE1MSwgMTEwLCAyMTksIDU5LCAyMjAsIDI5LCAyMzYsIDAsIDIzMiwgMTUxLCAyMTAsIDg2LCAyMTksIDE5MiwgMjQ4LCAKKyAgICAxNTIsIDIzMiwgMjA1LCAyNDUsIDc4LCAyNDcsIDE1NiwgMjQ4LCAzMiwgMjQ5LCAxNzksIDExMCwgMjQ4LCAxNDIsIDI0OCwgCisgICAgMzIsIDI0OSwgMTc5LCAxMDUsIDI0OCwgMTQxLCAyNDgsIDMyLCAyNDksIDE3OSwgMTU4LCAyNDgsIDE0MCwgMjQ4LCAzMiwgCisgICAgMjQ5LCAxNzksIDE2MSwgMjQ4LCAxMzksIDE1MiwgMjU1LCA4LCAyMjksIDIxMCwgMjE3LCAxNzgsIDIzNiwgNjMsIDIxNywgCisgICAgMTgxLCAyNDUsIDE0NCwgNjQsIDIxNSwgMjQ1LCAyNTEsIDIxNCwgMjQ1LCA2MywgMjUxLCA2LCAyNTEsIDgsIDI0NSwgMTQ0LCAKKyAgICA2NCwgMjMxLCA4MiwgMjQ1LCAxMTEsIDIxOCwgNjIsIDIxOCwgNzksIDI0NSwgNzgsIDI0NSwgNzksIDIzNSwgMjMzLCAyMjAsIAorICAgIDEzOSwgMTYxLCAyNDQsIDEwOCwgMjIwLCAxMzgsIDI0MywgMjM4LCAyMzUsIDIzMywgMjIwLCAxMzksIDE1OCwgMjQyLCAKKyAgICAxMjIsIDIyMCwgMTM4LCAyNDIsIDExOSwgMjM1LCAyMzMsIDIyMCwgMTM5LCAxMDUsIDIyMywgMTIyLCAyMjAsIDEzOCwgCisgICAgMjIyLCAxNDYsIDIzNSwgMjMzLCAyMjAsIDEzOSwgMTEwLCAyMTQsIDE3NCwgMjIwLCAxMzgsIDIxNCwgMTMzLCAyMTksIDIyLCAKKyAgICAyNDgsIDY0LCAyNDgsIDY2LCAyMjYsIDc5LCAyNTAsIDE0MywgMjI2LCA4MSwgMTI1LCAyMjYsIDI0MSwgMjI0LCAxOTQsIAorICAgIDI0MSwgNDgsIDI1MSwgMTUxLCAyMjUsIDE3NCwgMjQxLCAyMDQsIDI1MSwgMTYyLCAyMjgsIDc2LCAyNTEsIDE1MSwgMjQxLCAKKyAgICAyMDQsIDIyOSwgMTc2LCAyMzUsIDI0MywgMjM1LCAyNDUsIDIyOSwgODMsIDIzMiwgMjE0LCAyMjksIDEwMCwgMjE4LCAxNTMsIAorICAgIDY0LCAyMjEsIDE1OSwgMjU0LCAxOSwgMjE4LCAyMjQsIDI0NSwgMTQ0LCA2NCwgMjIxLCAxNTksIDI1NCwgMTksIDI0NSwgCisgICAgODEsIDEzNSwgMjE3LCA5MSwgMjIwLCAxMjgsIDIwMywgMjE3LCA5MSwgMjIwLCAxMjgsIDI0MCwgMjI1LCAxMzUsIDIxNywgCisgICAgOTEsIDIsIDIzNSwgMzYsIDIwMywgMjE3LCA5MSwgMiwgMjM1LCAzNiwgMjQwLCAyMjYsIDIzMiwgMjE1LCAyMTcsIDkxLCAKKyAgICAyMjAsIDEyOCwgNjcsIDIxNywgOTEsIDIyMCwgMTI4LCAyMTIsIDExNywgMjI1LCAyNTQsIDIzMiwgMjE1LCAyNDQsIDE1LCAKKyAgICAyMjUsIDI1NCwgMjMyLCAyMTUsIDI0NiwgMTA3LCAyMjUsIDMzLCAyMjUsIDI1NCwgMjMyLCAyMTUsIDI1MiwgMTc5LCAyMjUsIAorICAgIDI1NCwgMjMyLCAyMTUsIDIxNCwgMTYzLCAyMjUsIDI5LCAyMjMsIDUxLCAyMzIsIDIxNSwgMjQ0LCAxNDYsIDIyMywgNTEsIAorICAgIDIzNSwgMjQzLCAyMjMsIDM2LCAyMTksIDE1NiwgMjIwLCAyOSwgMTA1LCAyMTksIDE1MywgMjE4LCAyMjYsIDIxOSwgMTU2LCAKKyAgICAyMjAsIDI5LCAxNTgsIDIxOSwgMTUyLCAyMTgsIDIyNSwgMjQ4LCAzMiwgMjQ5LCAxNzksIDIxOCwgMTA2LCAyNDgsIDEzOCwgCisgICAgMjI0LCAxODQsIDIxNCwgMTMyLCAxMTAsIDIyNCwgMTg0LCAyMTQsIDEzMCwgMjI0LCAxNTAsIDIyNCwgMTg0LCAyMTQsIAorICAgIDEzMiwgMTA1LCAyMjQsIDE4NCwgMjE0LCAxMjksIDIyNCwgMTQ5LCAyMjAsIDEyOSwgMjE1LCAyNDMsIDIxOCwgMTUyLCAKKyAgICAyMTgsIDkwLCAyNTEsIDcsIDI1MCwgMTQzLCAyNTAsIDIxMCwgMjMxLCA0NCwgMjEyLCA1OSwgMjMwLCA0NCwgMjE4LCAxNTMsIAorICAgIDY0LCAyNDIsIDEwOCwgMjU0LCAxOSwgMjE4LCAxNTMsIDY0LCAyMjQsIDE2NywgMjU0LCAxOSwgMjE5LCAyMSwgMjQ1LCAKKyAgICAxNDQsIDY0LCAyNDIsIDEwOCwgMjU0LCAxOSwgMjQ1LCAxNDQsIDY0LCAyMjQsIDE2NywgMjU0LCAxOSwgMjQ1LCAxMDgsIAorICAgIDIxOCwgMTUzLCA2NCwgMjE4LCAxMDYsIDIxOSwgMzYsIDIxOSwgMTU2LCAyNDIsIDE0MiwgMTM1LCAyMzUsIDE5NiwgMjIwLCAKKyAgICAxMDgsIDIxOSwgMTU2LCAxMzUsIDIzNSwgMTk2LCAyMjEsIDE5NSwgMjQ5LCAxNzksIDIyMCwgMTM2LCAyMzUsIDE5NiwgCisgICAgMjQ5LCAxMTQsIDIxOCwgMTA3LCAyMTYsIDIzNywgMjE4LCAxNjksIDIyNiwgMTcwLCAyMTcsIDE2OCwgMjQ5LCAyMTksIAorICAgIDIyNiwgMTQzLCAyMjQsIDE4NSwgMjMxLCA0MywgMjI1LCAyMCwgMjU0LCA1NCwgMjI0LCAxNzksIDI0OSwgMjE5LCAyNTQsIAorICAgIDcwLCAyMjksIDE2NCwgMjE5LCAyMDEsIDcsIDYsIDEsIDI0MiwgMjUwLCA3LCA0LCAxLCAyNDIsIDI1MCwgMjUwLCAxNjAsIAorICAgIDE4MiwgMjE4LCA2OCwgMjQ5LCAyMjgsIDIxOSwgMTA3LCAyMzMsIDQ3LCAxNjUsIDEsIDIzMiwgMTc2LCAyMDksIDIwOSwgMSwgCisgICAgMjQ0LCA0NSwgMjQ0LCAzNywgMjA5LCAyMDksIDEsIDI0NCwgNDUsIDI0NCwgMTU4LCAyMDksIDIwOSwgMSwgMjIyLCAyMTIsIAorICAgIDIwOSwgMjA5LCAxLCAyMzIsIDE1NywgNjMsIDE2NCwgMjUxLCAyMjQsIDIyMCwgNCwgMjQyLCAyMTYsIDIzMCwgMjQ5LCAKKyAgICAyMjMsIDQyLCAyNDMsIDIxNywgMjQzLCAyMTYsIDI0MywgMjE1LCAyMzAsIDQ2LCAyMDksIDI1MSwgMjA5LCAyNTIsIDIwOSwgCisgICAgMjU0LCAyMzIsIDEwMywgMjIyLCAyMjAsIDIzMiwgMTA0LCAyMjIsIDIyMSwgMjI1LCAyMjQsIDIzMiwgMTAyLCAyMjIsIAorICAgIDIxOSwgMjI4LCAxMDcsIDIzMCwgMTY2LCAyMTEsIDIyOSwgMjEyLCAxNSwgMjQ1LCAxNjMsIDI0MywgMjI3LCAyMzAsIDIzMCwgCisgICAgMjI2LCAxOTgsIDIxNCwgMTM0LCA4NywgMjMwLCAyMzAsIDI0OCwgMTU4LCA4NywgOCwgMywgMjM1LCAxNTksIDc4LCAyMjQsIAorICAgIDE5NSwgMjQ0LCAyMSwgMzEsIDY3LCA0NCwgNzEsIDIzMywgMjEsIDEyNywgMjEzLCAxMTgsIDIxMywgNywgMjEyLCAxOTUsIAorICAgIDIxMiwgMTg0LCAyMTIsIDE3MywgMjEyLCAxNjIsIDIxMiwgMTUxLCAyMTIsIDE0MCwgMjEyLCAxMjksIDIxMywgMTE3LCAKKyAgICAyMTMsIDEwNiwgMjEzLCA5NSwgMjEzLCA4NCwgMjEzLCA3MywgMjEzLCA2MiwgMjEzLCA1MSwgMjUxLCA3MiwgMjI2LCAxNTYsIAorICAgIDc4LCAyNTEsIDE5NywgMjA5LCAyNTMsIDQ5LCAyOCwgMTYsIDI0MywgMjM3LCAyMTksIDEwMywgMjUwLCA3NCwgMjE0LCA5LCAKKyAgICAyMTMsIDQwLCAyMTMsIDI5LCAyMTMsIDE4LCAyMTMsIDYsIDIxMiwgMjUxLCAyMTIsIDI0MCwgMjEyLCAyMjksIDIxMiwgCisgICAgMjE4LCAyMTIsIDIwNywgMjEyLCAxOTksIDIxMiwgMTk4LCAyMTIsIDE5NywgMjEyLCAxOTYsIDIxMiwgMTk0LCAyMTIsIAorICAgIDE5MywgMjEyLCAxOTIsIDIxMiwgMTkxLCAyMTIsIDE5MCwgMjEyLCAxODksIDIxMiwgMTg4LCAyMTIsIDE4NywgMjEyLCAKKyAgICAxODYsIDIxMiwgMTg1LCAyMTIsIDE4MywgMjEyLCAxODIsIDIxMiwgMTgxLCAyMTIsIDE4MCwgMjEyLCAxNzksIDIxMiwgCisgICAgMTc4LCAyMTIsIDE3NywgMjEyLCAxNzYsIDIxMiwgMTc1LCAyMTIsIDE3NCwgMjEyLCAxNzIsIDIxMiwgMTcxLCAyMTIsIAorICAgIDE3MCwgMjEyLCAxNjksIDIxMiwgMTY4LCAyMTIsIDE2NywgMjEyLCAxNjYsIDIxMiwgMTY1LCAyMTIsIDE2NCwgMjEyLCAKKyAgICAxNjMsIDIxMiwgMTYxLCAyMTIsIDE2MCwgMjEyLCAxNTksIDIxMiwgMTU4LCAyMTIsIDE1NywgMjEyLCAxNTYsIDIxMiwgCisgICAgMTU1LCAyMTIsIDE1NCwgMjEyLCAxNTMsIDIxMiwgMTUyLCAyMTIsIDE1MCwgMjEyLCAxNDksIDIxMiwgMTQ4LCAyMTIsIAorICAgIDE0NywgMjEyLCAxNDYsIDIxMiwgMTQ1LCAyMTIsIDE0NCwgMjEyLCAxNDMsIDIxMiwgMTQyLCAyMTIsIDE0MSwgMjEyLCAKKyAgICAxMzksIDIxMiwgMTM4LCAyMTIsIDEzNywgMjEyLCAxMzYsIDIxMiwgMTM1LCAyMTIsIDEzNCwgMjEyLCAxMzMsIDIxMiwgCisgICAgMTMyLCAyMTIsIDEzMSwgMjEyLCAxMzAsIDIxMiwgMTI4LCAyMTIsIDEyNywgMjEyLCAxMjYsIDIxMiwgMTI1LCAyMTIsIAorICAgIDEyNCwgMjEyLCAxMjMsIDIxMiwgMTIyLCAyMTIsIDEyMSwgMjEyLCAxMjAsIDIxMiwgMTE5LCAyMTMsIDExNiwgMjEzLCAKKyAgICAxMTUsIDIxMywgMTE0LCAyMTMsIDExMywgMjEzLCAxMTIsIDIxMywgMTExLCAyMTMsIDExMCwgMjEzLCAxMDksIDIxMywgCisgICAgMTA4LCAyMTMsIDEwNywgMjEzLCAxMDUsIDIxMywgMTA0LCAyMTMsIDEwMywgMjEzLCAxMDIsIDIxMywgMTAxLCAyMTMsIAorICAgIDEwMCwgMjEzLCA5OSwgMjEzLCA5OCwgMjEzLCA5NywgMjEzLCA5NiwgMjEzLCA5NCwgMjEzLCA5MywgMjEzLCA5MiwgMjEzLCAKKyAgICA5MSwgMjEzLCA5MCwgMjEzLCA4OSwgMjEzLCA4OCwgMjEzLCA4NywgMjEzLCA4NiwgMjEzLCA4NSwgMjEzLCA4MywgMjEzLCAKKyAgICA4MiwgMjEzLCA4MSwgMjEzLCA4MCwgMjEzLCA3OSwgMjEzLCA3OCwgMjEzLCA3NywgMjEzLCA3NiwgMjEzLCA3NSwgMjEzLCAKKyAgICA3NCwgMjEzLCA3MiwgMjEzLCA3MSwgMjEzLCA3MCwgMjEzLCA2OSwgMjEzLCA2OCwgMjEzLCA2NywgMjEzLCA2NiwgMjEzLCAKKyAgICA2NSwgMjEzLCA2NCwgMjEzLCA2MywgMjEzLCA2MSwgMjEzLCA2MCwgMjEzLCA1OSwgMjEzLCA1OCwgMjEzLCA1NywgMjEzLCAKKyAgICA1NiwgMjEzLCA1NSwgMjEzLCA1NCwgMjEzLCA1MywgMjEzLCA1MiwgMjEzLCA1MCwgMjEzLCA0OSwgMjEzLCA0OCwgMjEzLCAKKyAgICA0NywgMjEzLCA0NiwgMjEzLCA0NSwgMjEzLCA0NCwgMjEzLCA0MywgMjEzLCA0MiwgMjEzLCA0MSwgMjEzLCAzOSwgMjEzLCAKKyAgICAzOCwgMjEzLCAzNywgMjEzLCAzNiwgMjEzLCAzNSwgMjEzLCAzNCwgMjEzLCAzMywgMjEzLCAzMiwgMjEzLCAzMSwgMjEzLCAKKyAgICAzMCwgMjEzLCAyOCwgMjEzLCAyNywgMjEzLCAyNiwgMjEzLCAyNSwgMjEzLCAyNCwgMjEzLCAyMywgMjEzLCAyMiwgMjEzLCAKKyAgICAyMSwgMjEzLCAyMCwgMjEzLCAxOSwgMjEzLCAxNywgMjEzLCAxNiwgMjEzLCAxNSwgMjEzLCAxNCwgMjEzLCAxMywgMjEzLCAKKyAgICAxMiwgMjEzLCAxMSwgMjEzLCAxMCwgMjEzLCA5LCAyMTMsIDgsIDIxMywgNSwgMjEzLCA0LCAyMTMsIDMsIDIxMywgMiwgCisgICAgMjEzLCAxLCAyMTMsIDAsIDIxMiwgMjU1LCAyMTIsIDI1NCwgMjEyLCAyNTMsIDIxMiwgMjUyLCAyMTIsIDI1MCwgMjEyLCAKKyAgICAyNDksIDIxMiwgMjQ4LCAyMTIsIDI0NywgMjEyLCAyNDYsIDIxMiwgMjQ1LCAyMTIsIDI0NCwgMjEyLCAyNDMsIDIxMiwgCisgICAgMjQyLCAyMTIsIDI0MSwgMjEyLCAyMzksIDIxMiwgMjM4LCAyMTIsIDIzNywgMjEyLCAyMzYsIDIxMiwgMjM1LCAyMTIsIAorICAgIDIzNCwgMjEyLCAyMzMsIDIxMiwgMjMyLCAyMTIsIDIzMSwgMjEyLCAyMzAsIDIxMiwgMjI4LCAyMTIsIDIyNywgMjEyLCAKKyAgICAyMjYsIDIxMiwgMjI1LCAyMTIsIDIyNCwgMjEyLCAyMjMsIDIxMiwgMjIyLCAyMTIsIDIyMSwgMjEyLCAyMjAsIDIxMiwgCisgICAgMjE5LCAyMTIsIDIxNywgMjEyLCAyMTYsIDIxMiwgMjE1LCAyMTIsIDIxNCwgMjEyLCAyMTMsIDIxMiwgMjEyLCAyMTIsIAorICAgIDIxMSwgMjEyLCAyMTAsIDIxMiwgMjA5LCAyMTIsIDIwOCwgMjEyLCAyMDYsIDIxMiwgMjA1LCAyMTIsIDIwNCwgMjEyLCAKKyAgICAyMDMsIDIxMiwgMjAyLCAyMTIsIDIwMSwgMjEyLCAyMDAsIDcsIDYsIDEsIDExNSwgMiwgMjMxLCAyMzQsIDIyLCAyNDIsIAorICAgIDEzNywgNywgNCwgMSwgMTE1LCAyLCAyMzEsIDIzNCwgMjIsIDI0MiwgMTM3LCA3LCA2LCAxLCAxNjAsIDIsIDY3LCAyMzIsIAorICAgIDIxNSwgNTEsIDcsIDQsIDEsIDE2MCwgMiwgNjcsIDIzMiwgMjE1LCA1MSwgNywgNiwgMSwgMTYwLCAyLCA2NywgMjMyLCAKKyAgICAyMTUsIDI1MiwgNDQsIDIyLCAyNDIsIDEzNywgNywgNCwgMSwgMTYwLCAyLCA2NywgMjMyLCAyMTUsIDI1MiwgNDQsIDIyLCAKKyAgICAyNDIsIDEzNywgNywgNiwgMSwgMTYwLCAyLCA2NywgMjMyLCAyMTUsIDI1MiwgNDQsIDIyLCAxNDIsIDcsIDQsIDEsIDE2MCwgCisgICAgMiwgNjcsIDIzMiwgMjE1LCAyNTIsIDQ0LCAyMiwgMTQyLCA3LCA2LCAxLCAxNjAsIDIsIDI1MCwgMzIsIDIyLCAyMzEsIAorICAgIDIzMywgNywgNCwgMSwgMTYwLCAyLCAyNTAsIDMyLCAyMiwgMjMxLCAyMzMsIDcsIDYsIDEsIDE2MCwgMiwgMjUwLCAzMiwgCisgICAgMjIsIDI1MCwgMjM1LCA3LCA0LCAxLCAxNjAsIDIsIDI1MCwgMzIsIDIyLCAyNTAsIDIzNSwgNywgNiwgMSwgMjQwLCAxNTUsIAorICAgIDIsIDIzMSwgMjM0LCAyMiwgMjQyLCAxMzcsIDcsIDQsIDEsIDI0MCwgMTU1LCAyLCAyMzEsIDIzNCwgMjIsIDI0MiwgMTM3LCAKKyAgICA3LCA0LCAxLCAyNDAsIDE1NSwgMiwgNTksIDc3LCAyMiwgMTQyLCA3LCA0LCAxLCAyMjksIDgxLCAyLCAyMTYsIDkwLCA0OCwgCisgICAgNywgNiwgMSwgMTQ0LCAyLCA2NywgMjMyLCAyMTUsIDUxLCA3LCA0LCAxLCAxNDQsIDIsIDY3LCAyMzIsIDIxNSwgNTEsIDcsIAorICAgIDYsIDEsIDE0NCwgMiwgNjcsIDIzMiwgMjE1LCAyNTIsIDQ0LCAyMiwgMjQyLCAxMzcsIDcsIDQsIDEsIDE0NCwgMiwgNjcsIAorICAgIDIzMiwgMjE1LCAyNTIsIDQ0LCAyMiwgMjQyLCAxMzcsIDcsIDYsIDEsIDE0NCwgMiwgNjcsIDIzMiwgMjE1LCAyNTIsIDQ0LCAKKyAgICAyMiwgMTQyLCA3LCA0LCAxLCAxNDQsIDIsIDY3LCAyMzIsIDIxNSwgMjUyLCA0NCwgMjIsIDE0MiwgNywgNiwgMSwgMjIyLCAKKyAgICA5MywgMiwgNjcsIDIzMiwgMjE1LCA1MSwgNywgNCwgMSwgMjIyLCA5MywgMiwgNjcsIDIzMiwgMjE1LCA1MSwgNywgNiwgMSwgCisgICAgMTA0LCAyLCAyMzEsIDIzNCwgMjIsIDI0MiwgMTM3LCA3LCA0LCAxLCAxMDQsIDIsIDIzMSwgMjM0LCAyMiwgMjQyLCAxMzcsIAorICAgIDcsIDYsIDEsIDExNSwgMiwgMjI2LCAyMjYsIDIyLCAxNDIsIDcsIDQsIDEsIDExNSwgMiwgMjI2LCAyMjYsIDIyLCAxNDIsIAorICAgIDcsIDYsIDEsIDExNSwgMiwgMjI2LCAyMjYsIDIyLCAxODMsIDcsIDQsIDEsIDExNSwgMiwgMjI2LCAyMjYsIDIyLCAxODMsIAorICAgIDcsIDYsIDEsIDE2MCwgMiwgMjI2LCAyMjYsIDIyLCAxNDIsIDcsIDQsIDEsIDE2MCwgMiwgMjI2LCAyMjYsIDIyLCAxNDIsIAorICAgIDcsIDYsIDEsIDE2MCwgMiwgMjI2LCAyMjYsIDIyLCAxODMsIDcsIDQsIDEsIDE2MCwgMiwgMjI2LCAyMjYsIDIyLCAxODMsIAorICAgIDcsIDYsIDEsIDE2MCwgMiwgNTksIDc3LCAyMiwgMTQyLCA3LCA0LCAxLCAxNjAsIDIsIDU5LCA3NywgMjIsIDE0MiwgNywgNiwgCisgICAgMSwgMTYwLCAyLCA1OSwgNzcsIDIyLCAxODMsIDcsIDQsIDEsIDE2MCwgMiwgNTksIDc3LCAyMiwgMTgzLCA3LCA0LCAxLCAKKyAgICAyNDAsIDE1NSwgMiwgNTksIDc3LCAyMiwgMjQyLCAxMzcsIDcsIDQsIDEsIDI0MCwgMTU1LCAyLCA1OSwgNzcsIDIyLCAxODMsIAorICAgIDcsIDYsIDEsIDI0MCwgMTU1LCAyLCAyMjYsIDIyNiwgMjIsIDE0MiwgNywgNCwgMSwgMjQwLCAxNTUsIDIsIDIyNiwgMjI2LCAKKyAgICAyMiwgNTksIDc3LCAyMiwgMTQyLCA3LCA2LCAxLCAyNDAsIDE1NSwgMiwgMjI2LCAyMjYsIDIyLCAxODMsIDcsIDQsIDEsIAorICAgIDI0MCwgMTU1LCAyLCAyMjYsIDIyNiwgMjIsIDU5LCA3NywgMjIsIDE4MywgNywgNiwgMSwgMjM1LCAxNDYsIDIsIDE4MywgNywgCisgICAgNCwgMSwgMjM1LCAxNDYsIDIsIDU5LCA3NywgMjIsIDE4MywgNywgNiwgMSwgMjMzLCAxNTAsIDIsIDE4MywgNywgNCwgMSwgCisgICAgMjMzLCAxNTAsIDIsIDE4MywgNywgNiwgMSwgMjMyLCA1MSwgMiwgMTgzLCA3LCA0LCAxLCAyMzIsIDUxLCAyLCAxODMsIDcsIAorICAgIDYsIDEsIDIyMywgMjI1LCAyLCAxODMsIDcsIDQsIDEsIDIyMywgMjI1LCAyLCAxODMsIDcsIDYsIDEsIDEwNCwgMiwgMjI2LCAKKyAgICAyMjYsIDIyLCAxNDIsIDcsIDQsIDEsIDEwNCwgMiwgMjI2LCAyMjYsIDIyLCAxNDIsIDcsIDYsIDEsIDEwNCwgMiwgMjI2LCAKKyAgICAyMjYsIDIyLCAxODMsIDcsIDQsIDEsIDEwNCwgMiwgMjI2LCAyMjYsIDIyLCAxODMsIDcsIDYsIDEsIDEwNCwgMiwgMjMxLCAKKyAgICAyMzQsIDIyLCAxNDIsIDcsIDQsIDEsIDEwNCwgMiwgMjMxLCAyMzQsIDIyLCAxNDIsIDcsIDYsIDEsIDEwNCwgMiwgMjMxLCAKKyAgICAyMzQsIDIyLCAxODMsIDcsIDQsIDEsIDEwNCwgMiwgMjMxLCAyMzQsIDIyLCAxODMsIDcsIDQsIDEsIDI1NCwgMjQ1LCAyLCAKKyAgICAyNDIsIDEzNywgNywgNCwgMSwgMjA0LCAxNDQsIDIsIDI0MiwgMTM3LCA3LCA0LCAxLCAyMDQsIDE0NCwgMiwgMTQyLCA3LCAKKyAgICA0LCAxLCAyMTUsIDk0LCAyMTQsIDEwNiwgMiwgMjQyLCAxMzcsIDcsIDQsIDEsIDIxNSwgOTQsIDIxNCwgMTA2LCAyLCAxNDIsIAorICAgIDcsIDQsIDEsIDIyMSwgMTk3LCAyLCAyNDIsIDEzNywgNywgNCwgMSwgMjIxLCAxOTcsIDIsIDE0MiwgNywgNCwgMSwgMjQxLCAKKyAgICA1MiwgMjIxLCAxOTcsIDIsIDI0MiwgMTM3LCA3LCA0LCAxLCAyNDEsIDUyLCAyMjEsIDE5NywgMiwgMTQyLCAxNDYsIDEsIAorICAgIDIzNCwgMTEwLCAzNiwgMTE2LCAyMzUsIDI0LCAzNiwgMTE2LCAyMjksIDgwLCAzNiwgMTE2LCAyNTEsIDY3LCAzNiwgMTE2LCAKKyAgICAyMjcsIDE2OCwgMzYsIDExNiwgMjE1LCAxNjAsIDM2LCAxMTYsIDIyOCwgMTEyLCAzNiwgMTE2LCAyMTcsIDE1MywgMzYsIAorICAgIDExNiwgMjMwLCAyNiwgMzYsIDExNiwgMjI2LCAxMDYsIDM2LCAxMTYsIDE5MywgMzYsIDExNiwgMjExLCAxMTcsIDM2LCAKKyAgICAxMTYsIDE1MywgMzYsIDExNiwgMTU2LCAzNiwgMTE2LCAyMTQsIDEwNSwgMzYsIDExNiwgMjMyLCAxNzcsIDM2LCAxMTYsIAorICAgIDIzMiwgMTg2LCAzNiwgMTE2LCAyMjIsIDE4MSwgMzYsIDExNiwgMjI4LCA5NCwgMzYsIDExNiwgMjM1LCAxNDUsIDM2LCAKKyAgICAxMTYsIDIyMCwgMTA1LCAzNiwgMTE2LCAyMTgsIDIyNywgMzYsIDExNiwgMjIyLCA5MiwgMzYsIDExNiwgMjQyLCA2MSwgMzYsIAorICAgIDExNiwgMjMzLCAyMzMsIDM2LCAzLCAyMzUsIDExLCAzNiwgMywgMjM0LCA5MywgMzYsIDMsIDIzNCwgODQsIDM2LCAzLCAKKyAgICAyMzMsIDIxOCwgMzYsIDMsIDIzMywgMTg5LCAzNiwgMywgMjM0LCAxODMsIDM2LCAzLCAyMzQsIDE4MiwgMzYsIDMsIDIzNCwgCisgICAgMjQ3LCAzNiwgMywgMjM0LCAyOSwgMzYsIDMsIDIzNCwgMTEsIDM2LCAzLCAyMzQsIDE5NiwgMzYsIDMsIDIyOSwgNzcsIDM2LCAKKyAgICAzLCAyMjksIDI4LCAzNiwgMywgMjI5LCAyNCwgMzYsIDMsIDIyOCwgMjQ5LCAzNiwgMywgMjI4LCAyNDIsIDM2LCAzLCAyMjksIAorICAgIDY1LCAzNiwgMywgMjI5LCA2MywgMzYsIDMsIDIyOSwgNzQsIDM2LCAzLCAyMjksIDUsIDM2LCAzLCAyMjksIDAsIDM2LCAzLCAKKyAgICAyMjksIDY3LCAzNiwgMywgMjUxLCAzMywgMzYsIDMsIDI1MCwgNTIsIDM2LCAzLCAyNTAsIDQyLCAzNiwgMywgMjQ5LCAxMTMsIAorICAgIDM2LCAzLCAyNDksIDg0LCAzNiwgMywgMjUwLCAxOTEsIDM2LCAzLCAyNTAsIDE4MywgMzYsIDMsIDI1MSwgMjMsIDM2LCAzLCAKKyAgICAyNDksIDIzOSwgMzYsIDMsIDI0OSwgMTc1LCAzNiwgMywgMjUwLCAyMjMsIDM2LCAzLCAyMjcsIDE2NSwgMzYsIDMsIDIyNywgCisgICAgMTQ5LCAzNiwgMywgMjI3LCAxNDQsIDM2LCAzLCAyMjcsIDEyOSwgMzYsIDMsIDIyNywgMTIyLCAzNiwgMywgMjI3LCAxNTcsIAorICAgIDM2LCAzLCAyMjcsIDE1NiwgMzYsIDMsIDIyNywgMTYyLCAzNiwgMywgMjI3LCAxMzUsIDM2LCAzLCAyMjcsIDEzMywgMzYsIAorICAgIDMsIDIyNywgMTYwLCAzNiwgMywgMjE1LCAxNTYsIDM2LCAzLCAyMTUsIDEzNiwgMzYsIDMsIDIxNSwgMTM1LCAzNiwgMywgCisgICAgMjE1LCAxMjQsIDM2LCAzLCAyMTUsIDEyMSwgMzYsIDMsIDIxNSwgMTUyLCAzNiwgMywgMjE1LCAxNTEsIDM2LCAzLCAyMTUsIAorICAgIDE1NSwgMzYsIDMsIDIxNSwgMTM0LCAzNiwgMywgMjE1LCAxMzMsIDM2LCAzLCAyMTUsIDE1NCwgMzYsIDMsIDIyOCwgMTEwLCAKKyAgICAzNiwgMywgMjI4LCA5NiwgMzYsIDMsIDIyOCwgOTUsIDM2LCAzLCAyMjgsIDc5LCAzNiwgMywgMjI4LCA3OCwgMzYsIDMsIAorICAgIDIyOCwgMTA2LCAzNiwgMywgMjI4LCAxMDUsIDM2LCAzLCAyMjgsIDEwOSwgMzYsIDMsIDIyOCwgODEsIDM2LCAzLCAyMjgsIAorICAgIDgwLCAzNiwgMywgMjI4LCAxMDgsIDM2LCAzLCAyMTcsIDEwMiwgMzYsIDMsIDIxNiwgMTE4LCAzNiwgMywgMjE2LCAxMDQsIAorICAgIDM2LCAzLCAyMTUsIDExOSwgMzYsIDMsIDIxNSwgODUsIDM2LCAzLCAyMTcsIDIzLCAzNiwgMywgMjE3LCAxMiwgMzYsIDMsIAorICAgIDIxNywgODAsIDM2LCAzLCAxMTEsIDM2LCAzLCAyMTYsIDE4LCAzNiwgMywgMjE3LCA0MiwgMzYsIDMsIDIyOSwgMjI2LCAzNiwgCisgICAgMywgMjI4LCAyMzQsIDM2LCAzLCAyMjgsIDIwOSwgMzYsIDMsIDIyNywgMjM4LCAzNiwgMywgMjI3LCAxODAsIDM2LCAzLCAKKyAgICAyMjksIDEwOCwgMzYsIDMsIDIyOSwgMTA0LCAzNiwgMywgMjI5LCAyMTMsIDM2LCAzLCAyMjgsIDc1LCAzNiwgMywgMjI4LCAKKyAgICA2NSwgMzYsIDMsIDIyOSwgMTg4LCAzNiwgMywgMjI2LCA5MCwgMzYsIDMsIDIyNSwgMTA5LCAzNiwgMywgMjI1LCA3MiwgMzYsIAorICAgIDMsIDIyNCwgMTUxLCAzNiwgMywgMjI0LCAxMjAsIDM2LCAzLCAyMjUsIDIyMiwgMzYsIDMsIDIyNSwgMjEyLCAzNiwgMywgCisgICAgMjI2LCA3MiwgMzYsIDMsIDIyNSwgMTcsIDM2LCAzLCAyMjQsIDI1MCwgMzYsIDMsIDIyNSwgMjM1LCAzNiwgMywgMjMxLCAKKyAgICAyMzgsIDM2LCAzLCAyMzAsIDIzMSwgMzYsIDMsIDIzMCwgMjAyLCAzNiwgMywgMjMwLCAxMDMsIDM2LCAzLCAyMzAsIDU1LCAKKyAgICAzNiwgMywgMjMxLCA5MiwgMzYsIDMsIDIzMSwgODEsIDM2LCAzLCAyMzEsIDIwNCwgMzYsIDMsIDIzMCwgMTYyLCAzNiwgMywgCisgICAgMjMwLCAxMzMsIDM2LCAzLCAyMzEsIDEzNiwgMzYsIDMsIDIxMSwgMTAzLCAzNiwgMywgMjExLCA4LCAzNiwgMywgMjEwLCAKKyAgICAyNTUsIDM2LCAzLCAyMTAsIDIxMiwgMzYsIDMsIDIxMCwgMTgxLCAzNiwgMywgMjExLCA0NywgMzYsIDMsIDIxMSwgNDQsIAorICAgIDM2LCAzLCAyMTEsIDgyLCAzNiwgMywgMjEwLCAyNDQsIDM2LCAzLCAyMTAsIDIyOSwgMzYsIDMsIDIxMSwgNTUsIDM2LCAzLCAKKyAgICAyMjMsIDE4NSwgMzYsIDMsIDIyMywgMzYsIDM2LCAzLCAyMjIsIDI0MCwgMzYsIDMsIDIyMiwgMTQxLCAzNiwgMywgMjIyLCAKKyAgICAxMTMsIDM2LCAzLCAyMjMsIDEyOSwgMzYsIDMsIDIyMywgMTA5LCAzNiwgMywgMjIzLCAxNjcsIDM2LCAzLCAyMjIsIDIxMiwgCisgICAgMzYsIDMsIDIyMiwgMTk4LCAzNiwgMywgMjIzLCAxMzcsIDM2LCAzLCAyMzMsIDEzNSwgMzYsIDMsIDIzMiwgMjQyLCAzNiwgCisgICAgMywgMjMyLCAyMjgsIDM2LCAzLCAyMzIsIDk5LCAzNiwgMywgMjMyLCA3NCwgMzYsIDMsIDIzMywgNTksIDM2LCAzLCAyMzMsIAorICAgIDUxLCAzNiwgMywgMjMzLCAxMTAsIDM2LCAzLCAyMzIsIDE1NywgMzYsIDMsIDIzMiwgMTI4LCAzNiwgMywgMjMzLCA3NSwgCisgICAgMzYsIDMsIDIxNCwgMjYsIDM2LCAzLCAyMTMsIDE3NiwgMzYsIDMsIDIxMywgMTYyLCAzNiwgMywgMjEyLCAxMTYsIDM2LCAzLCAKKyAgICAyMTIsIDEwOSwgMzYsIDMsIDIxMywgMjU1LCAzNiwgMywgMjEzLCAyNTAsIDM2LCAzLCAyMTQsIDIzLCAzNiwgMywgMjEzLCAKKyAgICAxMzgsIDM2LCAzLCAyMTMsIDEyNywgMzYsIDMsIDIxNCwgNSwgMzYsIDMsIDIzMiwgMTc1LCAzNiwgMywgMjMyLCAxNzAsIAorICAgIDM2LCAzLCAyMzIsIDE2OSwgMzYsIDMsIDIzMiwgMTY2LCAzNiwgMywgMjMyLCAxNjUsIDM2LCAzLCAyMzIsIDE3MiwgMzYsIAorICAgIDMsIDIzMiwgMTcxLCAzNiwgMywgMjMyLCAxNzQsIDM2LCAzLCAyMzIsIDE2OCwgMzYsIDMsIDIzMiwgMTY3LCAzNiwgMywgCisgICAgMjMyLCAxNzMsIDM2LCAzLCAyMzIsIDE4NCwgMzYsIDMsIDIzMiwgMTc5LCAzNiwgMywgMjMyLCAxNzgsIDM2LCAzLCAyMzIsIAorICAgIDE2MiwgMzYsIDMsIDIzMiwgMTYxLCAzNiwgMywgMjMyLCAxODEsIDM2LCAzLCAyMzIsIDE4MCwgMzYsIDMsIDIzMiwgMTgzLCAKKyAgICAzNiwgMywgMjMyLCAxNjQsIDM2LCAzLCAyMzIsIDE2MywgMzYsIDMsIDIzMiwgMTgyLCAzNiwgMywgMjIyLCAxNzksIDM2LCAKKyAgICAzLCAyMjIsIDE2OCwgMzYsIDMsIDIyMiwgMTY3LCAzNiwgMywgMjIyLCAxNjEsIDM2LCAzLCAyMjIsIDE1NCwgMzYsIDMsIAorICAgIDIyMiwgMTc1LCAzNiwgMywgMjIyLCAxNzQsIDM2LCAzLCAyMjIsIDE3OCwgMzYsIDMsIDIyMiwgMTY2LCAzNiwgMywgMjIyLCAKKyAgICAxNjUsIDM2LCAzLCAyMjIsIDE3NywgMzYsIDMsIDIyOCwgOTIsIDM2LCAzLCAyMjgsIDg3LCAzNiwgMywgMjI4LCA4NiwgMzYsIAorICAgIDMsIDIyOCwgODMsIDM2LCAzLCAyMjgsIDgyLCAzNiwgMywgMjI4LCA4OSwgMzYsIDMsIDIyOCwgODgsIDM2LCAzLCAyMjgsIAorICAgIDkxLCAzNiwgMywgMjI4LCA4NSwgMzYsIDMsIDIyOCwgODQsIDM2LCAzLCAyMjgsIDkwLCAzNiwgMywgMjM1LCAxNDEsIDM2LCAKKyAgICAzLCAyMzUsIDEwOSwgMzYsIDMsIDIzNSwgMTAyLCAzNiwgMywgMjM1LCA1MiwgMzYsIDMsIDIzNSwgMzQsIDM2LCAzLCAyMzUsIAorICAgIDEyNywgMzYsIDMsIDIzNSwgMTI1LCAzNiwgMywgMjM1LCAxMzYsIDM2LCAzLCAyMzUsIDY5LCAzNiwgMywgMjM1LCA2MCwgCisgICAgMzYsIDMsIDIzNSwgMTMwLCAzNiwgMywgMjIwLCA5OSwgMzYsIDMsIDIyMCwgMzMsIDM2LCAzLCAyMjAsIDI4LCAzNiwgMywgCisgICAgMjE5LCAyMjYsIDM2LCAzLCAyMTksIDIxMSwgMzYsIDMsIDIyMCwgNjQsIDM2LCAzLCAyMjAsIDYyLCAzNiwgMywgMjIwLCAKKyAgICA5MSwgMzYsIDMsIDIyMCwgOCwgMzYsIDMsIDIyMCwgMiwgMzYsIDMsIDIyMCwgNzIsIDM2LCAzLCAyMTgsIDIyMywgMzYsIDMsIAorICAgIDIxOCwgMTkzLCAzNiwgMywgMjE4LCAxODksIDM2LCAzLCAyMTgsIDE4MCwgMzYsIDMsIDIxOCwgMTc3LCAzNiwgMywgMjE4LCAKKyAgICAxOTgsIDM2LCAzLCAyMTgsIDE5NywgMzYsIDMsIDIxOCwgMjIyLCAzNiwgMywgMjE4LCAxODUsIDM2LCAzLCAyMTgsIDE4NCwgCisgICAgMzYsIDMsIDIxOCwgMjAwLCAzNiwgMywgMjIyLCAzMiwgMzYsIDMsIDIxOSwgMTkyLCAzNiwgMywgMjE5LCAxNzYsIDM2LCAzLCAKKyAgICAyMTgsIDg0LCAzNiwgMywgMjE4LCA1LCAzNiwgMywgMjIxLCAxODIsIDM2LCAzLCAyMjEsIDE3MSwgMzYsIDMsIDIyMiwgMTgsIAorICAgIDM2LCAzLCAyMTksIDU5LCAzNiwgMywgMjE5LCA0MSwgMzYsIDMsIDIyMSwgMjIwLCAzNiwgMywgMjQyLCA0NywgMzYsIDMsIAorICAgIDI0MSwgMTgxLCAzNiwgMywgMjQxLCAxNjIsIDM2LCAzLCAyNDAsIDIyMywgMzYsIDMsIDI0MCwgMjAzLCAzNiwgMywgMjQxLCAKKyAgICAyMzksIDM2LCAzLCAyNDEsIDIyMSwgMzYsIDMsIDI0MiwgMzcsIDM2LCAzLCAyNDEsIDY5LCAzNiwgMywgMjQxLCA1NCwgMzYsIAorICAgIDMsIDI0MSwgMjQ3LCAzNiwgMywgMjMzLCAyMzIsIDM2LCAzLCAyMzMsIDIzMSwgMzYsIDMsIDIzMywgMjI2LCAzNiwgMywgCisgICAgMjMzLCAyMjUsIDM2LCAzLCAyMzMsIDIyMiwgMzYsIDMsIDIzMywgMjIxLCAzNiwgMywgMjMzLCAyMjgsIDM2LCAzLCAyMzMsIAorICAgIDIyNywgMzYsIDMsIDIzMywgMjMwLCAzNiwgMywgMjMzLCAyMjQsIDM2LCAzLCAyMzMsIDIyMywgMzYsIDMsIDIzMywgMjI5LCAKKyAgICAzNiwgMywgMjE5LCAyMzIsIDE3NSwgMTE2LCA1LCAyMTEsIDY4LCAxNzUsIDExNiwgNSwgMjIzLCAxNTYsIDE3NSwgMTE2LCAKKyAgICA1LCAyMjMsIDc5LCA5OCwgMSwgMjE1LCAyOCwgNjksIDExNiwgNSwgMjQ5LCAyMzQsIDE3NiwgNjksIDExNiwgNSwgMjQ5LCAKKyAgICAyMzQsIDIzNCwgMTMzLCA2OSwgMTE2LCA1LCAyNDksIDIzNCwgMjM0LCAyOSwgNjksIDExNiwgNSwgMjQ5LCAyMzQsIDIzNCwgCisgICAgMTA2LCA2OSwgMTE2LCA1LCAyNDksIDIzNCwgMjI5LCA1LCA2OSwgMTE2LCA1LCAyNDksIDIzNCwgMjUxLCAzNCwgNjksIAorICAgIDExNiwgNSwgMjQ5LCAyMzQsIDI1MCwgMTU4LCA2OSwgMTE2LCA1LCAyNDksIDIzNCwgMjQ5LCAyMzksIDY5LCAxMTYsIDUsIAorICAgIDI0OSwgMjM0LCAyNTAsIDg3LCA2OSwgMTE2LCA1LCAyNDksIDIzNCwgMjI3LCAxMzUsIDY5LCAxMTYsIDUsIDI0OSwgMjM0LCAKKyAgICAyNDgsIDIyMiwgNjksIDExNiwgNSwgMjQ5LCAyMzQsIDIxNSwgMTQ1LCA2OSwgMTE2LCA1LCAyNDksIDIzNCwgMjQ3LCAxNDYsIAorICAgIDY5LCAxMTYsIDUsIDI0OSwgMjM0LCAyMTUsIDE0MCwgNjksIDExNiwgNSwgMjQ5LCAyMzQsIDE5NywgNjksIDExNiwgNSwgCisgICAgMjQ5LCAyMzQsIDIxNywgMTA2LCA2OSwgMTE2LCA1LCAyNDksIDIzNCwgMjE2LCAyMDksIDY5LCAxMTYsIDUsIDI0OSwgMjM0LCAKKyAgICAxMTEsIDY5LCAxMTYsIDUsIDI0OSwgMjM0LCAyMTYsIDE1NywgNjksIDExNiwgNSwgMjQ5LCAyMzQsIDIyOCwgNzUsIDY5LCAKKyAgICAxMTYsIDUsIDI0OSwgMjM0LCAyNTIsIDE5MiwgNjksIDExNiwgNSwgMjQ5LCAyMzQsIDIyNSwgMTQ4LCA2OSwgMTE2LCA1LCAKKyAgICAyNDksIDIzNCwgMjI1LCAxNywgNjksIDExNiwgNSwgMjQ5LCAyMzQsIDIyNSwgMTIyLCA2OSwgMTE2LCA1LCAyNDksIDIzNCwgCisgICAgMjMwLCAxNjIsIDY5LCAxMTYsIDUsIDI0OSwgMjM0LCAyMTAsIDI0NCwgNjksIDExNiwgNSwgMjQ5LCAyMzQsIDIyMiwgMjEyLCAKKyAgICA2OSwgMTE2LCA1LCAyNDksIDIzNCwgMjMyLCAxNTcsIDY5LCAxMTYsIDUsIDI0OSwgMjM0LCAyMTMsIDEzOCwgNjksIDExNiwgCisgICAgNSwgMjQ5LCAyMzQsIDIyMCwgMTAzLCA2OSwgMTE2LCA1LCAyNDksIDIzNCwgMjE4LCAyMjQsIDY5LCAxMTYsIDUsIDI0OSwgCisgICAgMjM0LCAyMDYsIDY5LCAxMTYsIDUsIDI0OSwgMjM0LCAxNjIsIDY5LCAxMTYsIDUsIDI0OSwgMjM0LCAyMzMsIDEzNiwgNjksIAorICAgIDI1LCA1LCAyNDksIDIzNCwgMjI0LCA4OSwgNjksIDIzNSwgMjQ0LCAyNSwgNSwgMjQ5LCAyMzQsIDIyNCwgMzEsIDY5LCAKKyAgICAyMzUsIDI0NCwgMjUsIDUsIDI0OSwgMjM0LCAyMjIsIDEwMSwgNjksIDIzNSwgMjQ0LCAyNSwgNSwgMjQ5LCAyMzQsIDIyMiwgCisgICAgOTQsIDY5LCAyMzUsIDI0NCwgMjUsIDUsIDI0OSwgMjM0LCAyMjQsIDcwLCA2OSwgMjUsIDUsIDIyNiwgMjA1LCA2OSwgMjUsIAorICAgIDUsIDI1NSwgMzUsIDE0MSwgMSwgMjUyLCAwLCAyMjksIDc4LCAxNDEsIDEsIDI1MiwgMCwgMjI5LCAyOCwgMTQxLCAxLCAKKyAgICAyNTIsIDAsIDIyOCwgMjQ5LCAxNDEsIDEsIDI1MiwgMCwgMjI5LCA2NSwgMTQxLCAxLCAyNTIsIDAsIDIyOSwgNSwgNTYsIDEsIAorICAgIDI1MiwgMCwgMjI5LCA3OCwgNTYsIDEsIDI1MiwgMCwgMjI5LCAyOCwgNTYsIDEsIDI1MiwgMCwgMjI4LCAyNDksIDU2LCAxLCAKKyAgICAyNTIsIDAsIDIyOSwgNjUsIDU2LCAxLCAyNTIsIDAsIDIyOSwgNSwgNTYsIDEsIDI1NCwgMTk1LCAyNTAsIDE5MSwgNTYsIDEsIAorICAgIDI1NCwgMTk1LCAyMTUsIDExOSwgNTYsIDEsIDI1NCwgMTk1LCAxMTEsIDU2LCAxLCAyNTQsIDE5NSwgMjI2LCAxMDYsIDU4LCAKKyAgICAxLCAyNDUsIDIxLCAyNDUsIDIwLCAyNDksIDE4MywgMTM4LCAxMzAsIDU4LCAxLCAyNDUsIDIwLCAyNDUsIDIxLCAyNDksIAorICAgIDE4MywgMTM4LCAxMzAsIAogfTsKIAogc3RhdGljIHVuc2lnbmVkIGNoYXIgcGhyYXNlYm9va19vZmZzZXQxW10gPSB7CkBAIC0xNTA0MCwyMDQ0ICsxNTA0MiwyMDQ0IEBACiAgICAgMzkyNTEsIDM5MjU4LCAzOTI2NSwgMzkyNzIsIDM5Mjc5LCAzOTI4NSwgMzkyOTEsIDM5Mjk4LCAzOTMwNSwgMzkzMTIsIDAsIAogICAgIDAsIDAsIDM5MzE5LCAzOTMyMiwgMzkzMjUsIDM5MzI4LCAzOTMzMywgMzkzMzYsIDM5MzM5LCAzOTM0MiwgMzkzNDUsIAogICAgIDM5MzQ4LCAzOTM1MSwgMzkzNTUsIDM5MzU4LCAzOTM2MSwgMzkzNjQsIDM5MzY3LCAzOTM3MCwgMzkzNzUsIDM5Mzc4LCAKLSAgICAzOTM4MSwgMzkzODQsIDM5Mzg3LCAzOTM5MCwgMzkzOTUsIDM5Mzk4LCAzOTQwMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzk0MDYsIDM5NDExLCAzOTQxNiwgMzk0MjMsIAotICAgIDM5NDMxLCAzOTQzNiwgMzk0NDEsIDM5NDQ1LCAzOTQ0OSwgMzk0NTQsIDM5NDYxLCAzOTQ2OCwgMzk0NzIsIDM5NDc3LCAKLSAgICAzOTQ4MiwgMzk0ODcsIDM5NDkyLCAzOTQ5OSwgMzk1MDQsIDM5NTA5LCAzOTUxNCwgMzk1MjMsIDM5NTMwLCAzOTUzNywgCi0gICAgMzk1NDEsIDM5NTQ2LCAzOTU1MiwgMzk1NTcsIDM5NTY0LCAzOTU3MywgMzk1ODIsIDM5NTg2LCAzOTU5MCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzk1OTQsIDM5NTk4LCAzOTYwNiwgMzk2MTAsIDM5NjE0LCAKLSAgICAzOTYxOSwgMzk2MjMsIDM5NjI3LCAzOTYzMSwgMzk2MzMsIDM5NjM3LCAzOTY0MSwgMzk2NDUsIDM5NjUwLCAzOTY1NCwgCi0gICAgMzk2NTgsIDM5NjY2LCAzOTY2OSwgMzk2NzMsIDM5Njc2LCAzOTY3OSwgMzk2ODUsIDM5Njg5LCAzOTY5MiwgMzk2OTgsIAotICAgIDM5NzAyLCAzOTcwNiwgMzk3MTAsIDM5NzEzLCAzOTcxNywgMzk3MjAsIDM5NzI0LCAzOTcyNiwgMzk3MjksIDM5NzMyLCAKLSAgICAzOTczNiwgMzk3MzgsIDM5NzQyLCAzOTc0NSwgMzk3NDgsIDM5NzUzLCAzOTc1OCwgMzk3NjUsIDM5NzY4LCAzOTc3MSwgCi0gICAgMzk3NzUsIDM5NzgwLCAzOTc4MywgMzk3ODYsIDM5Nzg5LCAzOTc5MywgMzk3OTgsIDM5ODAxLCAzOTgwNCwgMzk4MDYsIAotICAgIDM5ODA5LCAzOTgxMiwgMzk4MTUsIDM5ODE5LCAzOTgyNCwgMzk4MjcsIDM5ODMxLCAzOTgzNSwgMzk4MzksIDM5ODQzLCAKLSAgICAzOTg0OCwgMzk4NTQsIDM5ODU5LCAzOTg2NCwgMzk4NzAsIDM5ODc1LCAzOTg4MCwgMzk4ODQsIDM5ODg4LCAzOTg5MywgCi0gICAgMzk4OTcsIDM5OTAxLCAzOTkwNCwgMzk5MDYsIDM5OTExLCAzOTkxNywgMzk5MjQsIDM5OTMxLCAzOTkzOCwgMzk5NDUsIAotICAgIDM5OTUyLCAzOTk1OSwgMzk5NjYsIDM5OTczLCAzOTk4MSwgMzk5ODgsIDM5OTk2LCA0MDAwMywgNDAwMTAsIDQwMDE4LCAKLSAgICA0MDAyNiwgNDAwMzEsIDQwMDM2LCA0MDA0MSwgNDAwNDYsIDQwMDUxLCA0MDA1NiwgNDAwNjEsIDQwMDY2LCA0MDA3MSwgCi0gICAgNDAwNzYsIDQwMDgyLCA0MDA4OCwgNDAwOTQsIDQwMTAwLCA0MDEwNywgNDAxMTUsIDQwMTIyLCA0MDEyOCwgNDAxMzQsIAotICAgIDQwMTQwLCA0MDE0NiwgNDAxNTIsIDQwMTU4LCA0MDE2NCwgNDAxNzAsIDQwMTc2LCA0MDE4MywgNDAxOTAsIDQwMTk3LCAKLSAgICA0MDIwNCwgNDAyMTIsIDQwMjIxLCA0MDIyOSwgNDAyNDAsIDQwMjQ4LCA0MDI1NiwgNDAyNjUsIDQwMjcyLCA0MDI4MSwgCi0gICAgNDAyOTAsIDQwMjk4LCA0MDMwNywgMCwgMCwgMCwgMCwgMCwgMCwgNDAzMTUsIDQwMzE3LCA0MDMyMCwgNDAzMjIsIDQwMzI1LCAKLSAgICA0MDMyOCwgNDAzMzEsIDQwMzM2LCA0MDM0MSwgNDAzNDYsIDQwMzUxLCA0MDM1NSwgNDAzNTksIDQwMzYzLCA0MDM2NywgCi0gICAgNDAzNzIsIDQwMzc4LCA0MDM4MywgNDAzODksIDQwMzk0LCA0MDM5OSwgNDA0MDQsIDQwNDEwLCA0MDQxNSwgNDA0MjEsIAotICAgIDQwNDI3LCA0MDQzMSwgNDA0MzUsIDQwNDQwLCA0MDQ0NSwgNDA0NTAsIDQwNDU1LCA0MDQ2MCwgNDA0NjgsIDQwNDc2LCAKLSAgICA0MDQ4NCwgNDA0OTIsIDQwNDk5LCA0MDUwNywgNDA1MTQsIDQwNTIxLCA0MDUzMCwgNDA1NDIsIDQwNTQ4LCA0MDU1NCwgCi0gICAgNDA1NjIsIDQwNTcwLCA0MDU3OSwgNDA1ODgsIDQwNTk2LCA0MDYwNCwgNDA2MTMsIDQwNjIyLCA0MDYyNywgNDA2MzUsIAotICAgIDQwNjQwLCA0MDY0NSwgNDA2NTEsIDQwNjU2LCA0MDY2MiwgNDA2NjksIDQwNjc2LCA0MDY4MSwgNDA2ODcsIDQwNjkyLCAKLSAgICA0MDY5NSwgNDA2OTksIDQwNzAyLCA0MDcwNiwgNDA3MTAsIDQwNzE0LCA0MDcyMCwgNDA3MjYsIDQwNzMyLCA0MDczOCwgCi0gICAgNDA3NDIsIDQwNzQ2LCA0MDc1MCwgNDA3NTQsIDQwNzYwLCA0MDc2NiwgNDA3NzAsIDQwNzc1LCA0MDc3OSwgNDA3ODQsIAotICAgIDQwNzg5LCA0MDc5NCwgNDA3OTcsIDQwODAxLCA0MDgwNCwgNDA4MDgsIDQwODE1LCA0MDgyMywgNDA4MzQsIDQwODQ1LCAKLSAgICA0MDg1MCwgNDA4NTksIDQwODY2LCA0MDg3NSwgNDA4ODQsIDQwODg4LCA0MDg5NCwgNDA5MDIsIDQwOTA2LCA0MDkxMSwgCi0gICAgNDA5MTYsIDQwOTIyLCA0MDkyOCwgNDA5MzQsIDQwOTQxLCA0MDk0NSwgNDA5NDksIDQwOTU0LCA0MDk1NywgNDA5NTksIAotICAgIDQwOTYzLCA0MDk2NywgNDA5NzUsIDQwOTc5LCA0MDk4MSwgNDA5ODMsIDQwOTg3LCA0MDk5NSwgNDEwMDAsIDQxMDA2LCAKLSAgICA0MTAxNiwgNDEwMjMsIDQxMDI4LCA0MTAzMiwgNDEwMzYsIDQxMDQwLCA0MTA0MywgNDEwNDYsIDQxMDQ5LCA0MTA1MywgCi0gICAgNDEwNTcsIDQxMDYxLCA0MTA2NSwgNDEwNjksIDQxMDcyLCA0MTA3NiwgNDEwODAsIDQxMDgzLCA0MTA4NSwgNDEwODgsIAotICAgIDQxMDkwLCA0MTA5NCwgNDEwOTgsIDQxMTAwLCA0MTEwNiwgNDExMDksIDQxMTE0LCA0MTExOCwgNDExMjIsIDQxMTI0LCAKLSAgICA0MTEyNiwgNDExMjgsIDQxMTMxLCA0MTEzNSwgNDExMzksIDQxMTQzLCA0MTE0NywgNDExNTEsIDQxMTU3LCA0MTE2MywgCi0gICAgNDExNjUsIDQxMTY3LCA0MTE2OSwgNDExNzEsIDQxMTc0LCA0MTE3NiwgNDExODAsIDQxMTgyLCA0MTE4NiwgNDExODksIAotICAgIDQxMTk1LCA0MTE5OSwgNDEyMDMsIDQxMjA2LCA0MTIwOSwgNDEyMTMsIDQxMjE5LCA0MTIyMywgNDEyMzMsIDQxMjQzLCAKLSAgICA0MTI0NywgNDEyNTMsIDQxMjU5LCA0MTI2MiwgNDEyNjYsIDQxMjY5LCA0MTI3NCwgNDEyNzgsIDQxMjg0LCA0MTI4OCwgCi0gICAgNDEzMDAsIDQxMzA4LCA0MTMxMiwgNDEzMTYsIDQxMzIyLCA0MTMyNiwgNDEzMjksIDQxMzMxLCA0MTMzNCwgNDEzMzgsIAotICAgIDQxMzQyLCA0MTM0OSwgNDEzNTMsIDQxMzU3LCA0MTM2MSwgNDEzNjQsIDQxMzY5LCA0MTM3NCwgNDEzNzksIDQxMzg0LCAKLSAgICA0MTM4OSwgNDEzOTQsIDQxNDAyLCA0MTQxMCwgNDE0MTQsIDQxNDE4LCA0MTQyMCwgNDE0MjUsIDQxNDI5LCA0MTQzMywgCi0gICAgNDE0NDEsIDQxNDQ5LCA0MTQ1NSwgNDE0NjEsIDQxNDcwLCA0MTQ3OSwgNDE0ODQsIDQxNDg5LCA0MTQ5NywgNDE1MDUsIAotICAgIDQxNTA3LCA0MTUwOSwgNDE1MTQsIDQxNTE5LCA0MTUyNSwgNDE1MzEsIDQxNTM3LCA0MTU0MywgNDE1NDcsIDQxNTUxLCAKLSAgICA0MTU1OCwgNDE1NjUsIDQxNTcxLCA0MTU3NywgNDE1ODcsIDQxNTk3LCA0MTYwNSwgNDE2MTMsIDQxNjE1LCA0MTYxOSwgCi0gICAgNDE2MjMsIDQxNjI4LCA0MTYzMywgNDE2NDAsIDQxNjQ3LCA0MTY1MCwgNDE2NTMsIDQxNjU2LCA0MTY1OSwgNDE2NjIsIAotICAgIDQxNjY3LCA0MTY3MSwgNDE2NzYsIDQxNjgxLCA0MTY4NCwgNDE2ODcsIDQxNjkwLCA0MTY5MywgNDE2OTYsIDQxNzAwLCAKLSAgICA0MTcwMywgNDE3MDYsIDQxNzA5LCA0MTcxMiwgNDE3MTQsIDQxNzE2LCA0MTcxOCwgNDE3MjAsIDQxNzI4LCA0MTczNiwgCi0gICAgNDE3NDIsIDQxNzQ2LCA0MTc1MiwgNDE3NjIsIDQxNzY4LCA0MTc3NCwgNDE3ODAsIDQxNzg4LCA0MTc5NiwgNDE4MDcsIAotICAgIDQxODExLCA0MTgxNSwgNDE4MTcsIDQxODIzLCA0MTgyNSwgNDE4MjcsIDQxODI5LCA0MTgzMSwgNDE4MzcsIDQxODQwLCAKLSAgICA0MTg0NiwgNDE4NTIsIDQxODU2LCA0MTg2MCwgNDE4NjQsIDQxODY3LCA0MTg3MSwgNDE4NzUsIDQxODc3LCA0MTg4NiwgCi0gICAgNDE4OTUsIDQxOTAwLCA0MTkwNSwgNDE5MTEsIDQxOTE3LCA0MTkyMywgNDE5MjYsIDQxOTI5LCA0MTkzMiwgNDE5MzUsIAotICAgIDQxOTM3LCA0MTk0MiwgNDE5NDcsIDQxOTUyLCA0MTk1OCwgNDE5NjQsIDQxOTcyLCA0MTk4MCwgNDE5ODYsIDQxOTkyLCAKLSAgICA0MTk5OCwgNDIwMDQsIDQyMDEzLCA0MjAyMiwgNDIwMzEsIDQyMDQwLCA0MjA0OSwgNDIwNTgsIDQyMDY3LCA0MjA3NiwgCi0gICAgNDIwODUsIDQyMDk0LCA0MjEwMiwgNDIxMTQsIDQyMTI0LCA0MjEzOSwgNDIxNDIsIDQyMTQ3LCA0MjE1MywgNDIxNTksIAotICAgIDQyMTY2LCA0MjE4MCwgNDIxOTUsIDQyMjAxLCA0MjIwNywgNDIyMTQsIDQyMjIwLCA0MjIyOCwgNDIyMzQsIDQyMjQ3LCAKLSAgICA0MjI2MSwgNDIyNjYsIDQyMjcyLCA0MjI3OSwgNDIyODIsIDQyMjg1LCA0MjI4NywgNDIyOTAsIDQyMjkzLCA0MjI5NSwgCi0gICAgNDIyOTcsIDQyMzAxLCA0MjMwNCwgNDIzMDcsIDQyMzEwLCA0MjMxMywgNDIzMTgsIDQyMzIzLCA0MjMyOCwgNDIzMzMsIAotICAgIDQyMzM4LCA0MjM0MSwgNDIzNDMsIDQyMzQ1LCA0MjM0NywgNDIzNTEsIDQyMzU1LCA0MjM1OSwgNDIzNjUsIDQyMzcwLCAKLSAgICA0MjM3MiwgNDIzNzQsIDQyMzc5LCA0MjM4NCwgNDIzODksIDQyMzk0LCA0MjM5OSwgNDI0MDQsIDQyNDA2LCA0MjQwOCwgCi0gICAgNDI0MTcsIDQyNDIxLCA0MjQyOSwgNDI0MzgsIDQyNDQwLCA0MjQ0NSwgNDI0NTAsIDQyNDU4LCA0MjQ2MiwgNDI0NjQsIAotICAgIDQyNDY4LCA0MjQ3MCwgNDI0NzQsIDQyNDc4LCA0MjQ4MiwgNDI0ODQsIDQyNDg2LCA0MjQ4OCwgNDI0OTUsIDQyNTA0LCAKLSAgICA0MjUxMywgNDI1MjIsIDQyNTMxLCA0MjU0MCwgNDI1NDksIDQyNTU4LCA0MjU2NywgNDI1NzUsIDQyNTgzLCA0MjU5MiwgCi0gICAgNDI2MDEsIDQyNjEwLCA0MjYxOSwgNDI2MjcsIDQyNjM1LCA0MjY0NCwgNDI2NTMsIDQyNjYyLCA0MjY3MiwgNDI2ODEsIAotICAgIDQyNjkxLCA0MjcwMCwgNDI3MTAsIDQyNzE5LCA0MjcyOSwgNDI3MzksIDQyNzQ4LCA0Mjc1OCwgNDI3NjcsIDQyNzc3LCAKLSAgICA0Mjc4NiwgNDI3OTYsIDQyODA1LCA0MjgxNCwgNDI4MjMsIDQyODMyLCA0Mjg0MSwgNDI4NTEsIDQyODYwLCA0Mjg2OSwgCi0gICAgNDI4NzgsIDQyODg4LCA0Mjg5NywgNDI5MDYsIDQyOTE1LCA0MjkyNCwgNDI5MzQsIDQyOTQ0LCA0Mjk1MywgNDI5NjIsIAotICAgIDQyOTcwLCA0Mjk3OCwgNDI5ODUsIDQyOTkzLCA0MzAwMiwgNDMwMTMsIDQzMDIyLCA0MzAzMSwgNDMwNDAsIDQzMDQ3LCAKLSAgICA0MzA1NCwgNDMwNjEsIDQzMDcwLCA0MzA3OSwgNDMwODgsIDQzMDk3LCA0MzEwNCwgNDMxMDksIDQzMTE4LCA0MzEyMywgCi0gICAgNDMxMjYsIDQzMTM0LCA0MzEzNywgNDMxNDIsIDQzMTQ3LCA0MzE1MCwgNDMxNTMsIDQzMTYxLCA0MzE2NCwgNDMxNjksIAotICAgIDQzMTcyLCA0MzE3OSwgNDMxODQsIDQzMTkyLCA0MzE5NSwgNDMxOTgsIDQzMjAxLCA0MzIwNiwgNDMyMTEsIDQzMjE0LCAKLSAgICA0MzIxNywgNDMyMjUsIDQzMjI4LCA0MzIzNSwgNDMyNDIsIDQzMjQ2LCA0MzI1MCwgNDMyNTUsIDQzMjYwLCA0MzI2NiwgCi0gICAgNDMyNzEsIDQzMjc3LCA0MzI4MywgNDMyODgsIDQzMjk0LCA0MzMwMiwgNDMzMDgsIDQzMzE2LCA0MzMyNCwgNDMzMzAsIAotICAgIDQzMzM4LCA0MzM0NiwgNDMzNTUsIDQzMzYzLCA0MzM2OSwgNDMzNzcsIDQzMzg2LCA0MzM5NCwgNDMzOTgsIDQzNDAzLCAKLSAgICA0MzQxNiwgNDM0MjksIDQzNDMzLCA0MzQzNywgNDM0NDEsIDQzNDQ1LCA0MzQ1NSwgNDM0NTksIDQzNDY0LCA0MzQ2OSwgCi0gICAgNDM0NzQsIDQzNDc5LCA0MzQ4NCwgNDM0ODksIDQzNDk5LCA0MzUwOSwgNDM1MTcsIDQzNTI3LCA0MzUzNywgNDM1NDUsIAotICAgIDQzNTU1LCA0MzU2NSwgNDM1NzMsIDQzNTgzLCA0MzU5MywgNDM2MDEsIDQzNjA5LCA0MzYxOSwgNDM2MjksIDQzNjMyLCAKLSAgICA0MzYzNSwgNDM2MzgsIDQzNjQzLCA0MzY0NywgNDM2NTMsIDQzNjYwLCA0MzY2NywgNDM2NzUsIDQzNjgyLCA0MzY4NiwgCi0gICAgNDM2OTAsIDQzNjk0LCA0MzY5OCwgNDM3MDAsIDQzNzA0LCA0MzcwOCwgNDM3MTMsIDQzNzE4LCA0MzcyNSwgNDM3MzIsIAotICAgIDQzNzM1LCA0Mzc0MiwgNDM3NDQsIDQzNzQ2LCA0Mzc1MCwgNDM3NTQsIDQzNzU5LCA0Mzc2NSwgNDM3NzEsIDQzNzc3LCAKLSAgICA0Mzc4MywgNDM3OTIsIDQzODAxLCA0MzgxMCwgNDM4MTQsIDQzODE2LCA0MzgyMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgNDM4MjcsIDQzODMxLCA0MzgzOCwgNDM4NDUsIDQzODUyLCA0Mzg1OSwgNDM4NjMsIDQzODY3LCAKLSAgICA0Mzg3MSwgNDM4NzUsIDQzODgwLCA0Mzg4NiwgNDM4OTEsIDQzODk3LCA0MzkwMywgNDM5MDksIDQzOTE1LCA0MzkyMywgCi0gICAgNDM5MzAsIDQzOTM3LCA0Mzk0NCwgNDM5NTEsIDQzOTU2LCA0Mzk2MiwgNDM5NzEsIDQzOTc1LCA0Mzk4MiwgNDM5ODYsIAotICAgIDQzOTkwLCA0Mzk5NiwgNDQwMDIsIDQ0MDA4LCA0NDAxNCwgNDQwMTgsIDQ0MDIyLCA0NDAyNSwgNDQwMjgsIDQ0MDMyLCAKLSAgICA0NDAzOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNDQwNDYsIDQ0MDQ5LCA0NDA1MywgNDQwNTcsIDQ0MDYzLCA0NDA2OSwgNDQwNzUsIDQ0MDgzLCA0NDA5MCwgCi0gICAgNDQwOTQsIDQ0MTAyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCA0NDEwNywgNDQxMTAsIDQ0MTEzLCA0NDExNiwgNDQxMTksIDQ0MTIyLCA0NDEyNSwgNDQxMjgsIDQ0MTMxLCA0NDEzNCwgCi0gICAgNDQxMzgsIDQ0MTQyLCA0NDE0NiwgNDQxNTAsIDQ0MTU0LCA0NDE1OCwgNDQxNjIsIDQ0MTY2LCA0NDE3MCwgNDQxNzQsIAotICAgIDQ0MTc4LCA0NDE4MSwgNDQxODQsIDQ0MTg3LCA0NDE5MCwgNDQxOTMsIDQ0MTk2LCA0NDE5OSwgNDQyMDIsIDQ0MjA1LCAKLSAgICA0NDIwOSwgNDQyMTMsIDQ0MjE3LCA0NDIyMSwgNDQyMjUsIDQ0MjI5LCA0NDIzMywgNDQyMzcsIDQ0MjQxLCA0NDI0NSwgCi0gICAgNDQyNDksIDQ0MjU1LCA0NDI2MSwgNDQyNjcsIDQ0Mjc0LCA0NDI4MSwgNDQyODgsIDQ0Mjk1LCA0NDMwMiwgNDQzMDksIAotICAgIDQ0MzE2LCA0NDMyMywgNDQzMzAsIDQ0MzM3LCA0NDM0NCwgNDQzNTEsIDQ0MzU4LCA0NDM2NSwgNDQzNzIsIDQ0Mzc5LCAKLSAgICA0NDM4NiwgNDQzOTEsIDQ0Mzk3LCA0NDQwMywgNDQ0MDksIDQ0NDE0LCA0NDQyMCwgNDQ0MjYsIDQ0NDMyLCA0NDQzNywgCi0gICAgNDQ0NDMsIDQ0NDQ5LCA0NDQ1NCwgNDQ0NTksIDQ0NDY1LCA0NDQ3MCwgNDQ0NzYsIDQ0NDgyLCA0NDQ4NywgNDQ0OTMsIAotICAgIDQ0NDk5LCA0NDUwNCwgNDQ1MTAsIDQ0NTE2LCA0NDUyMiwgNDQ1MjgsIDQ0NTM0LCA0NDUzOSwgNDQ1NDUsIDQ0NTUxLCAKLSAgICA0NDU1NywgNDQ1NjIsIDQ0NTY4LCA0NDU3NCwgNDQ1ODAsIDQ0NTg1LCA0NDU5MSwgNDQ1OTcsIDQ0NjAyLCA0NDYwNywgCi0gICAgNDQ2MTMsIDQ0NjE4LCA0NDYyNCwgNDQ2MzAsIDQ0NjM1LCA0NDY0MSwgNDQ2NDcsIDQ0NjUyLCA0NDY1OCwgNDQ2NjQsIAotICAgIDQ0NjcwLCA0NDY3NiwgNDQ2ODIsIDQ0Njg3LCA0NDY5MywgNDQ2OTksIDQ0NzA1LCA0NDcxMCwgNDQ3MTYsIDQ0NzIyLCAKLSAgICA0NDcyOCwgNDQ3MzMsIDQ0NzM5LCA0NDc0NSwgNDQ3NTAsIDQ0NzU1LCA0NDc2MSwgNDQ3NjYsIDQ0NzcyLCA0NDc3OCwgCi0gICAgNDQ3ODMsIDQ0Nzg5LCA0NDc5NSwgNDQ4MDAsIDQ0ODA2LCA0NDgxMiwgNDQ4MTgsIDQ0ODI0LCA0NDgzMCwgNDQ4MzQsIAotICAgIDQ0ODM5LCA0NDg0NCwgNDQ4NDksIDQ0ODU0LCA0NDg1OSwgNDQ4NjQsIDQ0ODY5LCA0NDg3NCwgNDQ4NzksIDQ0ODg0LCAKLSAgICA0NDg4OCwgNDQ4OTIsIDQ0ODk2LCA0NDkwMCwgNDQ5MDQsIDQ0OTA4LCA0NDkxMiwgNDQ5MTYsIDQ0OTIwLCA0NDkyNSwgCi0gICAgNDQ5MzAsIDQ0OTM1LCA0NDk0MCwgNDQ5NDUsIDQ0OTUwLCA0NDk1OSwgNDQ5NjgsIDQ0OTc3LCA0NDk4NiwgNDQ5OTUsIAotICAgIDQ1MDA0LCA0NTAxMywgNDUwMjIsIDQ1MDI5LCA0NTAzNywgNDUwNDUsIDQ1MDUyLCA0NTA1OSwgNDUwNjcsIDQ1MDc1LCAKLSAgICA0NTA4MiwgNDUwODksIDQ1MDk3LCA0NTEwNSwgNDUxMTIsIDQ1MTE5LCA0NTEyNywgNDUxMzUsIDQ1MTQyLCA0NTE0OSwgCi0gICAgNDUxNTcsIDQ1MTY2LCA0NTE3NSwgNDUxODMsIDQ1MTkyLCA0NTIwMSwgNDUyMDgsIDQ1MjE1LCA0NTIyMywgNDUyMzIsIAotICAgIDQ1MjQxLCA0NTI0OSwgNDUyNTgsIDQ1MjY3LCA0NTI3NCwgNDUyODEsIDQ1MjkwLCA0NTI5OSwgNDUzMDcsIDQ1MzE1LCAKLSAgICA0NTMyNCwgNDUzMzMsIDQ1MzQwLCA0NTM0NywgNDUzNTYsIDQ1MzY1LCA0NTM3MywgNDUzODEsIDQ1MzkwLCA0NTM5OSwgCi0gICAgNDU0MDYsIDQ1NDEzLCA0NTQyMiwgNDU0MzEsIDQ1NDM5LCA0NTQ0OCwgNDU0NTcsIDQ1NDY1LCA0NTQ3NSwgNDU0ODUsIAotICAgIDQ1NDk1LCA0NTUwNSwgNDU1MTQsIDQ1NTIzLCA0NTUzMiwgNDU1NDEsIDQ1NTQ4LCA0NTU1NiwgNDU1NjQsIDQ1NTcyLCAKLSAgICA0NTU4MCwgNDU1ODUsIDQ1NTkwLCA0NTU5OSwgNDU2MDcsIDQ1NjE0LCA0NTYyMywgNDU2MzEsIDQ1NjM4LCA0NTY0NywgCi0gICAgNDU2NTUsIDQ1NjYyLCA0NTY3MSwgNDU2NzksIDQ1Njg2LCA0NTY5NSwgNDU3MDMsIDQ1NzEwLCA0NTcxOSwgNDU3MjcsIAotICAgIDQ1NzM0LCA0NTc0MywgNDU3NTEsIDQ1NzU4LCA0NTc2NywgNDU3NzUsIDQ1NzgyLCA0NTc5MSwgNDU3OTksIDQ1ODA2LCAKLSAgICA0NTgxNSwgNDU4MjQsIDQ1ODMzLCA0NTg0MiwgNDU4NTYsIDQ1ODcwLCA0NTg3NywgNDU4ODIsIDQ1ODg3LCA0NTg5MiwgCi0gICAgNDU4OTcsIDQ1OTAyLCA0NTkwNywgNDU5MTIsIDQ1OTE3LCA0NTkyNSwgNDU5MzMsIDQ1OTQxLCA0NTk0OSwgNDU5NTQsIAotICAgIDQ1OTYxLCA0NTk2OCwgNDU5NzUsIDQ1OTgwLCA0NTk4OCwgNDU5OTUsIDQ2MDAzLCA0NjAwNywgNDYwMTQsIDQ2MDIwLCAKLSAgICA0NjAyNywgNDYwMzEsIDQ2MDM3LCA0NjA0MywgNDYwNDksIDQ2MDUzLCA0NjA1NiwgNDYwNjAsIDQ2MDY0LCA0NjA3MSwgCi0gICAgNDYwNzcsIDQ2MDgzLCA0NjA4OSwgNDYwOTUsIDQ2MTA5LCA0NjExOSwgNDYxMzMsIDQ2MTQ3LCA0NjE1MywgNDYxNjMsIAotICAgIDQ2MTc3LCA0NjE4MCwgNDYxODMsIDQ2MTkwLCA0NjE5OCwgNDYyMDMsIDQ2MjA4LCA0NjIxNiwgNDYyMjgsIDQ2MjQwLCAKLSAgICA0NjI0OCwgNDYyNTIsIDQ2MjU2LCA0NjI1OSwgNDYyNjIsIDQ2MjY2LCA0NjI3MCwgNDYyNzMsIDQ2Mjc2LCA0NjI4MSwgCi0gICAgNDYyODYsIDQ2MjkyLCA0NjI5OCwgNDYzMDMsIDQ2MzA4LCA0NjMxNCwgNDYzMjAsIDQ2MzI1LCA0NjMzMCwgNDYzMzUsIAotICAgIDQ2MzQwLCA0NjM0NiwgNDYzNTIsIDQ2MzU3LCA0NjM2MiwgNDYzNjgsIDQ2Mzc0LCA0NjM3OSwgNDYzODQsIDQ2Mzg3LCAKLSAgICA0NjM5MCwgNDYzOTksIDQ2NDAxLCA0NjQwMywgNDY0MDYsIDQ2NDEwLCA0NjQxNiwgNDY0MTgsIDQ2NDIxLCA0NjQyOCwgCi0gICAgNDY0MzUsIDQ2NDQzLCA0NjQ1MSwgNDY0NjEsIDQ2NDc1LCA0NjQ4MCwgNDY0ODUsIDQ2NDg5LCA0NjQ5NCwgNDY1MDIsIAotICAgIDQ2NTEwLCA0NjUxOSwgNDY1MjgsIDQ2NTM3LCA0NjU0NiwgNDY1NTEsIDQ2NTU2LCA0NjU2MiwgNDY1NjgsIDQ2NTc0LCAKLSAgICA0NjU4MCwgNDY1ODMsIDQ2NTg5LCA0NjU5NSwgNDY2MDUsIDQ2NjE1LCA0NjYyMywgNDY2MzEsIDQ2NjQwLCA0NjY0OSwgCi0gICAgNDY2NTMsIDQ2NjYxLCA0NjY2OSwgNDY2NzcsIDQ2Njg1LCA0NjY5NCwgNDY3MDMsIDQ2NzEyLCA0NjcyMSwgNDY3MjYsIAotICAgIDQ2NzMxLCA0NjczNiwgNDY3NDEsIDQ2NzQ2LCA0Njc1MiwgNDY3NTgsIDQ2NzYzLCA0Njc2OSwgNDY3NzEsIDQ2NzczLCAKLSAgICA0Njc3NSwgNDY3NzcsIDQ2NzgwLCA0Njc4MywgNDY3ODUsIDQ2Nzg3LCA0Njc4OSwgNDY3OTMsIDQ2Nzk3LCA0Njc5OSwgCi0gICAgNDY4MDEsIDQ2ODA0LCA0NjgwNywgNDY4MTEsIDQ2ODE3LCA0NjgyMywgNDY4MjUsIDQ2ODMyLCA0NjgzNiwgNDY4NDEsIAotICAgIDQ2ODQ2LCA0Njg0OCwgNDY4NTgsIDQ2ODY0LCA0Njg3MCwgNDY4NzYsIDQ2ODgyLCA0Njg4OCwgNDY4OTQsIDQ2ODk5LCAKLSAgICA0NjkwMiwgNDY5MDUsIDQ2OTA4LCA0NjkxMCwgNDY5MTIsIDQ2OTE2LCA0NjkyMCwgNDY5MjUsIDQ2OTMwLCA0NjkzNSwgCi0gICAgNDY5MzgsIDQ2OTQyLCA0Njk0NywgNDY5NTAsIDQ2OTU0LCA0Njk1OSwgNDY5NjQsIDQ2OTY5LCA0Njk3NCwgNDY5NzksIAotICAgIDQ2OTg0LCA0Njk4OSwgNDY5OTQsIDQ2OTk5LCA0NzAwNCwgNDcwMDksIDQ3MDE0LCA0NzAyMCwgNDcwMjYsIDQ3MDMyLCAKLSAgICA0NzAzNCwgNDcwMzcsIDQ3MDM5LCA0NzA0MiwgNDcwNDQsIDQ3MDQ2LCA0NzA0OCwgNDcwNTAsIDQ3MDUyLCA0NzA1NCwgCi0gICAgNDcwNTYsIDQ3MDU4LCA0NzA2MCwgNDcwNjIsIDQ3MDY0LCA0NzA2NiwgNDcwNjgsIDQ3MDcwLCA0NzA3MiwgNDcwNzQsIAotICAgIDQ3MDc2LCA0NzA4MSwgNDcwODYsIDQ3MDkxLCA0NzA5NiwgNDcxMDEsIDQ3MTA2LCA0NzExMSwgNDcxMTYsIDQ3MTIxLCAKLSAgICA0NzEyNiwgNDcxMzEsIDQ3MTM2LCA0NzE0MSwgNDcxNDYsIDQ3MTUxLCA0NzE1NiwgNDcxNjEsIDQ3MTY2LCA0NzE3MSwgCi0gICAgNDcxNzYsIDQ3MTgwLCA0NzE4NCwgNDcxODgsIDQ3MTk0LCA0NzIwMCwgNDcyMDUsIDQ3MjEwLCA0NzIxNSwgNDcyMjAsIAotICAgIDQ3MjI1LCA0NzIzMCwgNDcyMzgsIDQ3MjQ2LCA0NzI1NCwgNDcyNjIsIDQ3MjcwLCA0NzI3OCwgNDcyODYsIDQ3Mjk0LCAKLSAgICA0NzMwMCwgNDczMDUsIDQ3MzEwLCA0NzMxNSwgNDczMTgsIDQ3MzIyLCA0NzMyNiwgNDczMzAsIDQ3MzM0LCA0NzMzOCwgCi0gICAgNDczNDIsIDQ3MzQ5LCA0NzM1NiwgNDczNjQsIDQ3MzcyLCA0NzM3NywgNDczODIsIDQ3Mzg5LCA0NzM5NiwgNDc0MDMsIAotICAgIDQ3NDEwLCA0NzQxMywgNDc0MTYsIDQ3NDIxLCA0NzQyMywgNDc0MjcsIDQ3NDMyLCA0NzQzNCwgNDc0MzYsIDQ3NDM4LCAKLSAgICA0NzQ0MCwgNDc0NDUsIDQ3NDQ4LCA0NzQ1MCwgNDc0NTUsIDQ3NDYyLCA0NzQ2OSwgNDc0NzIsIDQ3NDc2LCA0NzQ4MSwgCi0gICAgNDc0ODYsIDQ3NDk0LCA0NzUwMCwgNDc1MDYsIDQ3NTE4LCA0NzUyNSwgNDc1MzIsIDQ3NTM3LCA0NzU0MiwgNDc1NDgsIAotICAgIDQ3NTUxLCA0NzU1NCwgNDc1NTksIDQ3NTYxLCA0NzU2NSwgNDc1NjcsIDQ3NTY5LCA0NzU3MSwgNDc1NzMsIDQ3NTc1LCAKLSAgICA0NzU3NywgNDc1ODIsIDQ3NTg0LCA0NzU4NiwgNDc1ODgsIDQ3NTkwLCA0NzU5NCwgNDc1OTYsIDQ3NTk5LCA0NzYwNCwgCi0gICAgNDc2MDksIDQ3NjE0LCA0NzYxOSwgNDc2MjUsIDQ3NjMxLCA0NzYzMywgNDc2MzYsIDQ3NjQzLCA0NzY1MCwgNDc2NTcsIAotICAgIDQ3NjY0LCA0NzY2OCwgNDc2NzIsIDQ3Njc0LCA0NzY3NiwgNDc2ODAsIDQ3Njg2LCA0NzY5MSwgNDc2OTMsIDQ3Njk3LCAKLSAgICA0NzcwNiwgNDc3MTQsIDQ3NzIyLCA0NzcyOCwgNDc3MzQsIDQ3NzM5LCA0Nzc0NSwgNDc3NTAsIDQ3NzUzLCA0Nzc2NywgCi0gICAgNDc3NzAsIDQ3Nzc1LCA0Nzc4MCwgNDc3ODYsIDQ3Nzk2LCA0Nzc5OCwgNDc4MDQsIDQ3ODEwLCA0NzgxNCwgNDc4MjEsIAotICAgIDQ3ODI1LCA0NzgyNywgNDc4MjksIDQ3ODMzLCA0NzgzOSwgNDc4NDQsIDQ3ODUwLCA0Nzg1MiwgNDc4NTgsIDQ3ODYwLCAKLSAgICA0Nzg2NiwgNDc4NjgsIDQ3ODcwLCA0Nzg3NSwgNDc4NzcsIDQ3ODgxLCA0Nzg4NiwgNDc4ODgsIDQ3ODkzLCA0Nzg5OCwgCi0gICAgNDc5MDIsIDQ3OTA5LCAwLCA0NzkxOSwgNDc5MjUsIDQ3OTI4LCA0NzkzNCwgNDc5MzcsIDQ3OTQyLCA0Nzk0NywgNDc5NTEsIAotICAgIDQ3OTUzLCA0Nzk1NSwgNDc5NTksIDQ3OTYzLCA0Nzk2NywgNDc5NzEsIDQ3OTc2LCA0Nzk3OCwgNDc5ODMsIDQ3OTg2LCAKLSAgICA0Nzk4OSwgNDc5OTIsIDQ3OTk2LCA0ODAwMCwgNDgwMDUsIDQ4MDA5LCA0ODAxNCwgNDgwMTksIDQ4MDIzLCA0ODAyOCwgCi0gICAgNDgwMzQsIDQ4MDM3LCA0ODA0MywgNDgwNDgsIDQ4MDUyLCA0ODA1NywgNDgwNjMsIDQ4MDY5LCA0ODA3NiwgNDgwODIsIAotICAgIDQ4MDg5LCA0ODA5NiwgNDgwOTgsIDQ4MTA1LCA0ODEwOSwgNDgxMTUsIDQ4MTIxLCA0ODEyNiwgNDgxMzIsIDQ4MTM2LCAKLSAgICA0ODE0MSwgNDgxNDQsIDQ4MTQ5LCA0ODE1NSwgNDgxNjIsIDQ4MTcwLCA0ODE3NywgNDgxODYsIDQ4MTk2LCA0ODIwMywgCi0gICAgNDgyMDksIDQ4MjEzLCA0ODIyMCwgNDgyMjUsIDQ4MjM0LCA0ODIzNywgNDgyNDAsIDQ4MjQ5LCA0ODI1OSwgNDgyNjYsIAotICAgIDQ4MjY4LCA0ODI3NCwgNDgyNzksIDQ4MjgxLCA0ODI4NCwgNDgyODgsIDQ4Mjk2LCA0ODMwNSwgNDgzMDgsIDQ4MzEzLCAKLSAgICA0ODMxOCwgNDgzMjYsIDQ4MzM0LCA0ODM0MiwgNDgzNTAsIDQ4MzU2LCA0ODM2MiwgNDgzNjgsIDQ4Mzc2LCA0ODM4MSwgCi0gICAgNDgzODQsIDQ4Mzg4LCA0ODM5MSwgNDg0MDMsIDQ4NDEzLCA0ODQyNCwgNDg0MzMsIDQ4NDQ0LCA0ODQ1NCwgNDg0NjMsIAotICAgIDQ4NDY5LCA0ODQ3NywgNDg0ODEsIDQ4NDg5LCA0ODQ5MywgNDg1MDEsIDQ4NTA4LCA0ODUxNSwgNDg1MjQsIDQ4NTMzLCAKLSAgICA0ODU0MywgNDg1NTMsIDQ4NTYzLCA0ODU3MywgNDg1ODIsIDQ4NTkxLCA0ODYwMSwgNDg2MTEsIDQ4NjIwLCA0ODYyOSwgCi0gICAgNDg2MzUsIDQ4NjQxLCA0ODY0NywgNDg2NTMsIDQ4NjU5LCA0ODY2NSwgNDg2NzEsIDQ4Njc3LCA0ODY4MywgNDg2OTAsIAotICAgIDQ4Njk2LCA0ODcwMiwgNDg3MDgsIDQ4NzE0LCA0ODcyMCwgNDg3MjYsIDQ4NzMyLCA0ODczOCwgNDg3NDQsIDQ4NzUxLCAKLSAgICA0ODc1OCwgNDg3NjUsIDQ4NzcyLCA0ODc3OSwgNDg3ODYsIDQ4NzkzLCA0ODgwMCwgNDg4MDcsIDQ4ODE0LCA0ODgyMiwgCi0gICAgNDg4MjcsIDQ4ODMwLCA0ODgzNCwgNDg4MzgsIDQ4ODQ0LCA0ODg0NywgNDg4NTMsIDQ4ODU5LCA0ODg2NCwgNDg4NjgsIAotICAgIDQ4ODczLCA0ODg3OSwgNDg4ODYsIDQ4ODg5LCA0ODg5NiwgNDg5MDMsIDQ4OTA3LCA0ODkxNiwgNDg5MjUsIDQ4OTMwLCAKLSAgICA0ODkzNiwgNDg5NDEsIDQ4OTQ2LCA0ODk1MywgNDg5NjAsIDQ4OTY4LCA0ODk3NiwgNDg5ODUsIDQ4OTg5LCA0ODk5OCwgCi0gICAgNDkwMDMsIDQ5MDA3LCA0OTAxNCwgNDkwMTgsIDQ5MDI1LCA0OTAzMywgNDkwMzgsIDQ5MDQ2LCA0OTA1MCwgNDkwNTUsIAotICAgIDQ5MDU5LCA0OTA2NCwgNDkwNjgsIDQ5MDczLCA0OTA3OCwgNDkwODcsIDQ5MDg5LCA0OTA5MiwgNDkwOTUsIDQ5MTAyLCAKLSAgICA0OTEwOSwgNDkxMTQsIDQ5MTIyLCA0OTEyOCwgNDkxMzQsIDQ5MTM5LCA0OTE0MiwgNDkxNDcsIDQ5MTUyLCA0OTE1NywgCi0gICAgNDkxNjUsIDQ5MTY5LCA0OTE3NiwgNDkxODQsIDQ5MTkyLCA0OTE5NywgNDkyMDIsIDQ5MjA4LCA0OTIxMywgNDkyMTgsIAotICAgIDQ5MjI0LCA0OTIyOSwgNDkyMzIsIDQ5MjM2LCA0OTI0MCwgNDkyNDcsIDQ5MjU2LCA0OTI2MSwgNDkyNzAsIDQ5Mjc5LCAKLSAgICA0OTI4NSwgNDkyOTEsIDQ5Mjk2LCA0OTMwMSwgNDkzMDYsIDQ5MzExLCA0OTMxNywgNDkzMjMsIDQ5MzMxLCA0OTMzOSwgCi0gICAgNDkzNDUsIDQ5MzUxLCA0OTM1NiwgNDkzNjEsIDQ5MzY4LCA0OTM3NSwgNDkzODEsIDQ5Mzg0LCA0OTM4NywgNDkzOTEsIAotICAgIDQ5Mzk1LCA0OTM5OSwgNDk0MDQsIDQ5NDEwLCA0OTQxNiwgNDk0MjMsIDQ5NDMwLCA0OTQzNSwgNDk0MzksIDQ5NDQzLCAKLSAgICA0OTQ0NywgNDk0NTEsIDQ5NDU1LCA0OTQ1OSwgNDk0NjMsIDQ5NDY3LCA0OTQ3MSwgNDk0NzUsIDQ5NDc5LCA0OTQ4MywgCi0gICAgNDk0ODcsIDQ5NDkxLCA0OTQ5NSwgNDk0OTksIDQ5NTAzLCA0OTUwNywgNDk1MTEsIDQ5NTE1LCA0OTUxOSwgNDk1MjMsIAotICAgIDQ5NTI3LCA0OTUzMSwgNDk1MzUsIDQ5NTM5LCA0OTU0MywgNDk1NDcsIDQ5NTUxLCA0OTU1NSwgNDk1NTksIDQ5NTYzLCAKLSAgICA0OTU2NywgNDk1NzEsIDQ5NTc1LCA0OTU3OSwgNDk1ODMsIDQ5NTg3LCA0OTU5MSwgNDk1OTUsIDQ5NTk5LCA0OTYwMywgCi0gICAgNDk2MDcsIDQ5NjExLCA0OTYxNSwgNDk2MTksIDQ5NjIzLCA0OTYyNywgNDk2MzEsIDQ5NjM1LCA0OTYzOSwgNDk2NDMsIAotICAgIDQ5NjQ3LCA0OTY1MSwgNDk2NTUsIDQ5NjU5LCA0OTY2MywgNDk2NjcsIDQ5NjcxLCA0OTY3NSwgNDk2NzksIDQ5NjgzLCAKLSAgICA0OTY4NywgNDk2OTEsIDQ5Njk1LCA0OTY5OSwgNDk3MDMsIDQ5NzA3LCA0OTcxMSwgNDk3MTUsIDQ5NzE5LCA0OTcyMywgCi0gICAgNDk3MjcsIDQ5NzMxLCA0OTczNSwgNDk3MzksIDQ5NzQzLCA0OTc0NywgNDk3NTEsIDQ5NzU1LCA0OTc1OSwgNDk3NjMsIAotICAgIDQ5NzY3LCA0OTc3MSwgNDk3NzUsIDQ5Nzc5LCA0OTc4MywgNDk3ODcsIDQ5NzkxLCA0OTc5NSwgNDk3OTksIDQ5ODAzLCAKLSAgICA0OTgwNywgNDk4MTEsIDQ5ODE1LCA0OTgxOSwgNDk4MjMsIDQ5ODI3LCA0OTgzMSwgNDk4MzUsIDQ5ODM5LCA0OTg0MywgCi0gICAgNDk4NDcsIDQ5ODUxLCA0OTg1NSwgNDk4NTksIDQ5ODYzLCA0OTg2NywgNDk4NzEsIDQ5ODc1LCA0OTg3OSwgNDk4ODMsIAotICAgIDQ5ODg3LCA0OTg5MSwgNDk4OTUsIDQ5ODk5LCA0OTkwMywgNDk5MDcsIDQ5OTExLCA0OTkxNSwgNDk5MTksIDQ5OTIzLCAKLSAgICA0OTkyNywgNDk5MzEsIDQ5OTM1LCA0OTkzOSwgNDk5NDMsIDQ5OTQ3LCA0OTk1MSwgNDk5NTUsIDQ5OTU5LCA0OTk2MywgCi0gICAgNDk5NjcsIDQ5OTcxLCA0OTk3NSwgNDk5NzksIDQ5OTgzLCA0OTk4NywgNDk5OTEsIDQ5OTk1LCA0OTk5OSwgNTAwMDMsIAotICAgIDUwMDA3LCA1MDAxMSwgNTAwMTUsIDUwMDE5LCA1MDAyMywgNTAwMjcsIDUwMDMxLCA1MDAzNSwgNTAwMzksIDUwMDQzLCAKLSAgICA1MDA0NywgNTAwNTEsIDUwMDU1LCA1MDA1OSwgNTAwNjMsIDUwMDY3LCA1MDA3MSwgNTAwNzUsIDUwMDc5LCA1MDA4MywgCi0gICAgNTAwODcsIDUwMDkxLCA1MDA5NSwgNTAwOTksIDUwMTAzLCA1MDEwNywgNTAxMTEsIDUwMTE1LCA1MDExOSwgNTAxMjMsIAotICAgIDUwMTI3LCA1MDEzMSwgNTAxMzUsIDUwMTM5LCA1MDE0MywgNTAxNDcsIDUwMTUxLCA1MDE1NSwgNTAxNTksIDUwMTYzLCAKLSAgICA1MDE2NywgNTAxNzEsIDUwMTc1LCA1MDE3OSwgNTAxODMsIDUwMTg3LCA1MDE5MSwgNTAxOTUsIDUwMTk5LCA1MDIwMywgCi0gICAgNTAyMDcsIDUwMjExLCA1MDIxNSwgNTAyMTksIDUwMjIzLCA1MDIyNywgNTAyMzEsIDUwMjM1LCA1MDIzOSwgNTAyNDMsIAotICAgIDUwMjQ3LCA1MDI1MSwgNTAyNTUsIDUwMjU5LCA1MDI2MywgNTAyNjcsIDUwMjcxLCA1MDI3NSwgNTAyNzksIDUwMjgzLCAKLSAgICA1MDI4NywgNTAyOTEsIDUwMjk1LCA1MDI5OSwgNTAzMDMsIDUwMzA3LCA1MDMxMSwgNTAzMTUsIDUwMzE5LCA1MDMyMywgCi0gICAgNTAzMjcsIDUwMzMxLCA1MDMzNSwgNTAzMzksIDUwMzQzLCA1MDM0NywgNTAzNTEsIDUwMzU1LCA1MDM1OSwgNTAzNjMsIAotICAgIDUwMzY3LCA1MDM3MSwgNTAzNzUsIDUwMzc5LCA1MDM4MywgNTAzODcsIDUwMzkxLCA1MDM5NSwgNTAzOTksIDUwNDAzLCAKLSAgICA1MDQwNywgNTA0MTEsIDUwNDE1LCA1MDQxOSwgNTA0MjMsIDUwNDI3LCA1MDQzMSwgNTA0MzUsIDUwNDM5LCA1MDQ0MywgCi0gICAgNTA0NDcsIDUwNDUxLCA1MDQ1NSwgNTA0NTksIDUwNDY2LCA1MDQ3NCwgNTA0ODAsIDUwNDg2LCA1MDQ5MywgNTA1MDAsIAotICAgIDUwNTA2LCA1MDUxMiwgNTA1MTgsIDUwNTI0LCA1MDUyOSwgNTA1MzQsIDUwNTM5LCA1MDU0NCwgNTA1NTAsIDUwNTU2LCAKLSAgICA1MDU2NCwgNTA1NzEsIDUwNTc3LCA1MDU4MywgNTA1OTEsIDUwNjAwLCA1MDYwNywgNTA2MTcsIDUwNjI4LCA1MDYzMSwgCi0gICAgNTA2MzQsIDUwNjM4LCA1MDY0MiwgNTA2NDksIDUwNjU2LCA1MDY2NywgNTA2NzgsIDUwNjg4LCA1MDY5OCwgNTA3MDUsIAotICAgIDUwNzEyLCA1MDcxOSwgNTA3MjYsIDUwNzM3LCA1MDc0OCwgNTA3NTksIDUwNzcwLCA1MDc4MCwgNTA3OTAsIDUwODAyLCAKLSAgICA1MDgxNCwgNTA4MjUsIDUwODM2LCA1MDg0OCwgNTA4NjAsIDUwODY5LCA1MDg3OSwgNTA4ODksIDUwOTAwLCA1MDkxMSwgCi0gICAgNTA5MTgsIDUwOTI1LCA1MDkzMiwgNTA5MzksIDUwOTQ5LCA1MDk1OSwgNTA5NjcsIDUwOTc1LCA1MDk4MiwgNTA5ODksIAotICAgIDUwOTk2LCA1MTAwMywgNTEwMTAsIDUxMDE1LCA1MTAyMCwgNTEwMjYsIDUxMDM0LCA1MTA0NCwgNTEwNTQsIDUxMDY0LCAKLSAgICA1MTA3NCwgNTEwODQsIDUxMDk0LCA1MTEwNCwgNTExMTQsIDUxMTI0LCA1MTEzNCwgNTExNDQsIDUxMTU1LCA1MTE2NiwgCi0gICAgNTExNzYsIDUxMTg2LCA1MTE5NywgNTEyMDgsIDUxMjE4LCA1MTIyOCwgNTEyMzksIDUxMjUwLCA1MTI2MCwgNTEyNzAsIAotICAgIDUxMjgxLCA1MTI5MiwgNTEzMDgsIDUxMzI3LCA1MTM0MywgNTEzNjIsIDUxMzc4LCA1MTM5NCwgNTE0MTAsIDUxNDI2LCAKLSAgICA1MTQzNywgNTE0NDksIDUxNDYwLCA1MTQ3MiwgNTE0OTEsIDUxNTEwLCA1MTUxOCwgNTE1MjQsIDUxNTMxLCA1MTUzOCwgCi0gICAgNTE1NDUsIDUxNTUyLCA1MTU1NywgNTE1NjMsIDUxNTY4LCA1MTU3MywgNTE1NzksIDUxNTg0LCA1MTU4OSwgNTE1OTQsIAotICAgIDUxNTk5LCA1MTYwNCwgNTE2MTEsIDUxNjE2LCA1MTYyMywgNTE2MjgsIDUxNjMzLCA1MTYzNywgNTE2NDEsIDUxNjQ4LCAKLSAgICA1MTY1NSwgNTE2NjIsIDUxNjY5LCA1MTY3NiwgNTE2ODMsIDUxNjk2LCA1MTcwOSwgNTE3MjIsIDUxNzM1LCA1MTc0MywgCi0gICAgNTE3NTEsIDUxNzU3LCA1MTc2MywgNTE3NzAsIDUxNzc3LCA1MTc4NCwgNTE3OTEsIDUxNzk1LCA1MTgwMCwgNTE4MDgsIAotICAgIDUxODE2LCA1MTgyNCwgNTE4MzEsIDUxODM1LCA1MTg0MywgNTE4NTEsIDUxODU1LCA1MTg1OSwgNTE4NjQsIDUxODcxLCAKLSAgICA1MTg3OSwgNTE4ODcsIDUxOTA2LCA1MTkyNSwgNTE5NDQsIDUxOTYzLCA1MTk4MiwgNTIwMDEsIDUyMDIwLCA1MjAzOSwgCi0gICAgNTIwNDUsIDUyMDUyLCA1MjA2MSwgNTIwNjksIDUyMDc3LCA1MjA4MiwgNTIwODUsIDUyMDg4LCA1MjA5MywgNTIwOTYsIAotICAgIDUyMTE1LCA1MjEyMiwgNTIxMjgsIDUyMTM0LCA1MjEzOCwgNTIxNDEsIDUyMTQ0LCA1MjE0NywgNTIxNTksIDUyMTcyLCAKLSAgICA1MjE3OSwgNTIxODYsIDUyMTg5LCA1MjE5MywgNTIxOTYsIDUyMjAxLCA1MjIwNiwgNTIyMTEsIDUyMjE3LCA1MjIyNiwgCi0gICAgNTIyMzMsIDUyMjQwLCA1MjI0OCwgNTIyNTUsIDUyMjYyLCA1MjI2NSwgNTIyNzEsIDUyMjc3LCA1MjI4MCwgNTIyODMsIAotICAgIDUyMjg4LCA1MjI5MywgNTIyOTksIDUyMzA1LCA1MjMwOSwgNTIzMTQsIDUyMzIxLCA1MjMyNSwgNTIzMzEsIDUyMzM1LCAKLSAgICA1MjMzOSwgNTIzNDcsIDUyMzU5LCA1MjM2OCwgNTIzNzIsIDUyMzc0LCA1MjM4MywgNTIzOTIsIDUyMzk4LCA1MjQwMSwgCi0gICAgNTI0MDcsIDUyNDEzLCA1MjQxOCwgNTI0MjMsIDUyNDI4LCA1MjQzMywgNTI0MzgsIDUyNDQzLCA1MjQ0NSwgNTI0NTEsIAotICAgIDUyNDU2LCA1MjQ2MywgNTI0NjcsIDUyNDczLCA1MjQ3NiwgNTI0ODAsIDUyNDg3LCA1MjQ5NCwgNTI0OTYsIDUyNDk4LCAKLSAgICA1MjUwNCwgNTI1MTAsIDUyNTE2LCA1MjUyNSwgNTI1MzQsIDUyNTQxLCA1MjU0OCwgNTI1NTQsIDUyNTYwLCA1MjU2NSwgCi0gICAgNTI1NzAsIDUyNTc1LCA1MjU4MSwgNTI1ODcsIDUyNTkyLCA1MjU5OSwgNTI2MDMsIDUyNjA3LCA1MjYyMCwgNTI2MzMsIAotICAgIDUyNjQ1LCA1MjY1NCwgNTI2NjAsIDUyNjY3LCA1MjY3MiwgNTI2NzcsIDUyNjgyLCA1MjY4NywgNTI2OTIsIDUyNjk0LCAKLSAgICA1MjcwMSwgNTI3MDgsIDUyNzE1LCA1MjcyMiwgNTI3MjksIDUyNzM3LCA1Mjc0MywgNTI3NDgsIDUyNzU0LCA1Mjc2MCwgCi0gICAgNTI3NjYsIDUyNzczLCA1Mjc3OSwgNTI3ODcsIDUyNzk1LCA1MjgwMywgNTI4MTEsIDUyODE4LCA1MjgyNCwgNTI4MzAsIAotICAgIDUyODM5LCA1Mjg0MywgNTI4NTIsIDUyODYxLCA1Mjg3MCwgNTI4NzgsIDUyODgyLCA1Mjg4OCwgNTI4OTUsIDUyOTAyLCAKLSAgICA1MjkwNiwgNTI5MTIsIDUyOTE5LCA1MjkyNCwgNTI5MjksIDUyOTM1LCA1Mjk0MCwgNTI5NDUsIDUyOTUyLCA1Mjk1OSwgCi0gICAgNTI5NjQsIDUyOTY5LCA1Mjk3NywgNTI5ODUsIDUyOTk1LCA1MzAwNSwgNTMwMTIsIDUzMDE5LCA1MzAyMywgNTMwMjcsIAotICAgIDUzMDM5LCA1MzA0NSwgNTMwNTEsIDUzMDU2LCA1MzA2MSwgNTMwNjgsIDUzMDc1LCA1MzA4MSwgNTMwODcsIDUzMDk2LCAKLSAgICA1MzEwNCwgNTMxMTIsIDUzMTE5LCA1MzEyNiwgNTMxMzMsIDUzMTM5LCA1MzE0NiwgNTMxNTIsIDUzMTU5LCA1MzE2NiwgCi0gICAgNTMxNzMsIDUzMTgwLCA1MzE4NiwgNTMxOTEsIDUzMjAwLCA1MzIxMCwgNTMyMTcsIDUzMjI2LCA1MzIzMiwgNTMyMzcsIAotICAgIDUzMjQyLCA1MzI1MiwgNTMyNTgsIDUzMjY0LCA1MzI3MCwgNTMyNzgsIDUzMjgzLCA1MzI5MCwgNTMyOTcsIDUzMzA4LCAKLSAgICA1MzMxNSwgNTMzMjIsIDUzMzI5LCA1MzMzNiwgNTMzNDMsIDUzMzUwLCA1MzM1NywgNTMzNjksIDUzMzgxLCA1MzM5MiwgCi0gICAgNTM0MDMsIDUzNDE2LCA1MzQyOSwgNTM0MzQsIDUzNDM5LCA1MzQ0OCwgNTM0NTcsIDUzNDY0LCA1MzQ3MSwgNTM0ODAsIAotICAgIDUzNDg5LCA1MzQ5NywgNTM1MDUsIDUzNTEzLCA1MzUyMSwgNTM1MzEsIDUzNTQxLCA1MzU1NSwgNTM1NjksIDUzNTc3LCAKLSAgICA1MzU4NSwgNTM1OTcsIDUzNjA5LCA1MzYxNywgNTM2MjUsIDUzNjM1LCA1MzY0NSwgNTM2NTAsIDUzNjU1LCA1MzY2NCwgCi0gICAgNTM2NzMsIDUzNjc4LCA1MzY4MywgNTM2OTEsIDUzNjk3LCA1MzcwMywgNTM3MTEsIDUzNzE5LCA1MzczMiwgNTM3NDUsIAotICAgIDUzNzQ5LCA1Mzc1MywgNTM3NjAsIDUzNzY3LCA1Mzc3NCwgNTM3ODIsIDUzNzkwLCA1Mzc5OSwgNTM4MDgsIDUzODE0LCAKLSAgICA1MzgyMCwgNTM4MjcsIDUzODM0LCA1Mzg0MSwgNTM4NDgsIDUzODU3LCA1Mzg2NiwgNTM4NjksIDUzODcyLCA1Mzg3NywgCi0gICAgNTM4ODIsIDUzODg4LCA1Mzg5NCwgNTM5MDEsIDUzOTA4LCA1MzkxOCwgNTM5MjgsIDUzOTM1LCA1Mzk0MiwgNTM5NTAsIAotICAgIDUzOTU4LCA1Mzk2NiwgNTM5NzQsIDUzOTgyLCA1Mzk5MCwgNTM5OTYsIDU0MDAyLCA1NDAwNiwgNTQwMTAsIDU0MDE3LCAKLSAgICA1NDAyNCwgNTQwMjksIDU0MDM0LCA1NDAzOSwgNTQwNDQsIDU0MDUwLCA1NDA2NCwgNTQwNzEsIDU0MDc4LCA1NDA4MiwgCi0gICAgNTQwODQsIDU0MDg2LCA1NDA5MSwgNTQwOTYsIDU0MTAxLCA1NDEwNiwgNTQxMTQsIDU0MTIxLCA1NDEyOCwgNTQxMzYsIAotICAgIDU0MTQ4LCA1NDE1NiwgNTQxNjQsIDU0MTc1LCA1NDE3OSwgNTQxODMsIDU0MTg5LCA1NDE5NywgNTQyMTAsIDU0MjE3LCAKLSAgICA1NDIyNCwgNTQyMzEsIDU0MjM2LCA1NDI0MywgNTQyNTIsIDU0MjYwLCA1NDI2NiwgNTQyNzIsIDU0Mjc4LCA1NDI4NywgCi0gICAgNTQyOTYsIDU0MzA0LCA1NDMxMywgNTQzMTgsIDU0MzIxLCA1NDMyNiwgNTQzMzIsIDU0MzM4LCA1NDM0NCwgNTQzNTAsIAotICAgIDU0MzU0LCA1NDM1NywgNTQzNjEsIDU0MzY1LCA1NDM3MSwgNTQzNzcsIDU0MzgzLCA1NDM4OSwgNTQzOTMsIDU0Mzk3LCAKLSAgICA1NDQwNCwgNTQ0MTEsIDU0NDE4LCA1NDQyNSwgNTQ0MzIsIDU0NDM5LCA1NDQ0OSwgNTQ0NTksIDU0NDY2LCA1NDQ3MywgCi0gICAgNTQ0ODEsIDU0NDg5LCA1NDQ5MywgNTQ0OTgsIDU0NTAzLCA1NDUwOSwgNTQ1MTUsIDU0NTE4LCA1NDUyMSwgNTQ1MjQsIAotICAgIDU0NTI3LCA1NDUzMSwgNTQ1MzYsIDU0NTQxLCA1NDU0NiwgNTQ1NTEsIDU0NTU2LCA1NDU2MCwgNTQ1NjQsIDU0NTY4LCAKLSAgICA1NDU3MiwgNTQ1NzYsIDU0NTgwLCA1NDU4NCwgNTQ1OTAsIDU0NTk0LCA1NDYwMCwgNTQ2MDUsIDU0NjEyLCA1NDYyMCwgCi0gICAgNTQ2MjcsIDU0NjM1LCA1NDY0MiwgNTQ2NTAsIDU0NjU5LCA1NDY2NiwgNTQ2NzYsIDU0Njg3LCA1NDY5MywgNTQ3MDIsIAotICAgIDU0NzA4LCA1NDcxNywgNTQ3MjYsIDU0NzMyLCA1NDczOCwgNTQ3NDIsIDU0NzQ2LCA1NDc1NSwgNTQ3NjQsIDU0NzcxLCAKLSAgICA1NDc3OCwgNTQ3ODcsIDAsIDAsIDAsIDU0Nzk2LCA1NDgwMSwgNTQ4MDUsIDU0ODA5LCA1NDgxNCwgNTQ4MTksIDU0ODI0LCAKLSAgICA1NDgzMiwgNTQ4NDAsIDU0ODQzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAzOTM4MSwgMzkzODQsIDM5Mzg3LCAzOTM5MCwgMzkzOTUsIDM5Mzk4LCAzOTQwMSwgMzk0MDYsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM5NDExLCAzOTQxNiwgMzk0MjEsIDM5NDI4LCAKKyAgICAzOTQzNiwgMzk0NDEsIDM5NDQ2LCAzOTQ1MCwgMzk0NTQsIDM5NDU5LCAzOTQ2NiwgMzk0NzMsIDM5NDc3LCAzOTQ4MiwgCisgICAgMzk0ODcsIDM5NDkyLCAzOTQ5NywgMzk1MDQsIDM5NTA5LCAzOTUxNCwgMzk1MTksIDM5NTI4LCAzOTUzNSwgMzk1NDIsIAorICAgIDM5NTQ2LCAzOTU1MSwgMzk1NTcsIDM5NTYyLCAzOTU2OSwgMzk1NzgsIDM5NTg3LCAzOTU5MSwgMzk1OTUsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM5NTk5LCAzOTYwMywgMzk2MTEsIDM5NjE1LCAzOTYxOSwgCisgICAgMzk2MjQsIDM5NjI4LCAzOTYzMiwgMzk2MzYsIDM5NjM4LCAzOTY0MiwgMzk2NDYsIDM5NjUwLCAzOTY1NSwgMzk2NTksIAorICAgIDM5NjYzLCAzOTY3MSwgMzk2NzQsIDM5Njc4LCAzOTY4MSwgMzk2ODQsIDM5NjkwLCAzOTY5NCwgMzk2OTcsIDM5NzAzLCAKKyAgICAzOTcwNywgMzk3MTEsIDM5NzE1LCAzOTcxOCwgMzk3MjIsIDM5NzI1LCAzOTcyOSwgMzk3MzEsIDM5NzM0LCAzOTczNywgCisgICAgMzk3NDEsIDM5NzQzLCAzOTc0NywgMzk3NTAsIDM5NzUzLCAzOTc1OCwgMzk3NjMsIDM5NzcwLCAzOTc3MywgMzk3NzYsIAorICAgIDM5NzgwLCAzOTc4NSwgMzk3ODgsIDM5NzkxLCAzOTc5NCwgMzk3OTgsIDM5ODAzLCAzOTgwNiwgMzk4MDksIDM5ODExLCAKKyAgICAzOTgxNCwgMzk4MTcsIDM5ODIwLCAzOTgyNCwgMzk4MjksIDM5ODMyLCAzOTgzNiwgMzk4NDAsIDM5ODQ0LCAzOTg0OCwgCisgICAgMzk4NTMsIDM5ODU5LCAzOTg2NCwgMzk4NjksIDM5ODc1LCAzOTg4MCwgMzk4ODUsIDM5ODg5LCAzOTg5MywgMzk4OTgsIAorICAgIDM5OTAyLCAzOTkwNiwgMzk5MDksIDM5OTExLCAzOTkxNiwgMzk5MjIsIDM5OTI5LCAzOTkzNiwgMzk5NDMsIDM5OTUwLCAKKyAgICAzOTk1NywgMzk5NjQsIDM5OTcxLCAzOTk3OCwgMzk5ODYsIDM5OTkzLCA0MDAwMSwgNDAwMDgsIDQwMDE1LCA0MDAyMywgCisgICAgNDAwMzEsIDQwMDM2LCA0MDA0MSwgNDAwNDYsIDQwMDUxLCA0MDA1NiwgNDAwNjEsIDQwMDY2LCA0MDA3MSwgNDAwNzYsIAorICAgIDQwMDgxLCA0MDA4NywgNDAwOTMsIDQwMDk5LCA0MDEwNSwgNDAxMTIsIDQwMTIwLCA0MDEyNywgNDAxMzMsIDQwMTM5LCAKKyAgICA0MDE0NSwgNDAxNTEsIDQwMTU3LCA0MDE2MywgNDAxNjksIDQwMTc1LCA0MDE4MSwgNDAxODgsIDQwMTk1LCA0MDIwMiwgCisgICAgNDAyMDksIDQwMjE3LCA0MDIyNiwgNDAyMzQsIDQwMjQ1LCA0MDI1MywgNDAyNjEsIDQwMjcwLCA0MDI3NywgNDAyODYsIAorICAgIDQwMjk1LCA0MDMwMywgNDAzMTIsIDAsIDAsIDAsIDAsIDAsIDAsIDQwMzIwLCA0MDMyMiwgNDAzMjUsIDQwMzI3LCA0MDMzMCwgCisgICAgNDAzMzMsIDQwMzM2LCA0MDM0MSwgNDAzNDYsIDQwMzUxLCA0MDM1NiwgNDAzNjAsIDQwMzY0LCA0MDM2OCwgNDAzNzIsIAorICAgIDQwMzc3LCA0MDM4MywgNDAzODgsIDQwMzk0LCA0MDM5OSwgNDA0MDQsIDQwNDA5LCA0MDQxNSwgNDA0MjAsIDQwNDI2LCAKKyAgICA0MDQzMiwgNDA0MzYsIDQwNDQwLCA0MDQ0NSwgNDA0NTAsIDQwNDU1LCA0MDQ2MCwgNDA0NjUsIDQwNDczLCA0MDQ4MSwgCisgICAgNDA0ODksIDQwNDk3LCA0MDUwNCwgNDA1MTIsIDQwNTE5LCA0MDUyNiwgNDA1MzUsIDQwNTQ3LCA0MDU1MywgNDA1NTksIAorICAgIDQwNTY3LCA0MDU3NSwgNDA1ODQsIDQwNTkzLCA0MDYwMSwgNDA2MDksIDQwNjE4LCA0MDYyNywgNDA2MzIsIDQwNjQwLCAKKyAgICA0MDY0NSwgNDA2NTAsIDQwNjU2LCA0MDY2MSwgNDA2NjcsIDQwNjc0LCA0MDY4MSwgNDA2ODYsIDQwNjkyLCA0MDY5NywgCisgICAgNDA3MDAsIDQwNzA0LCA0MDcwNywgNDA3MTEsIDQwNzE1LCA0MDcxOSwgNDA3MjUsIDQwNzMxLCA0MDczNywgNDA3NDMsIAorICAgIDQwNzQ3LCA0MDc1MSwgNDA3NTUsIDQwNzU5LCA0MDc2NSwgNDA3NzEsIDQwNzc1LCA0MDc4MCwgNDA3ODQsIDQwNzg5LCAKKyAgICA0MDc5NCwgNDA3OTksIDQwODAyLCA0MDgwNiwgNDA4MDksIDQwODEzLCA0MDgyMCwgNDA4MjgsIDQwODM5LCA0MDg1MCwgCisgICAgNDA4NTUsIDQwODY0LCA0MDg3MSwgNDA4ODAsIDQwODg5LCA0MDg5MywgNDA4OTksIDQwOTA3LCA0MDkxMSwgNDA5MTYsIAorICAgIDQwOTIxLCA0MDkyNywgNDA5MzMsIDQwOTM5LCA0MDk0NiwgNDA5NTAsIDQwOTU0LCA0MDk1OSwgNDA5NjIsIDQwOTY0LCAKKyAgICA0MDk2OCwgNDA5NzIsIDQwOTgwLCA0MDk4NCwgNDA5ODYsIDQwOTg4LCA0MDk5MiwgNDEwMDAsIDQxMDA1LCA0MTAxMSwgCisgICAgNDEwMjEsIDQxMDI4LCA0MTAzMywgNDEwMzcsIDQxMDQxLCA0MTA0NSwgNDEwNDgsIDQxMDUxLCA0MTA1NCwgNDEwNTgsIAorICAgIDQxMDYyLCA0MTA2NiwgNDEwNzAsIDQxMDc0LCA0MTA3NywgNDEwODEsIDQxMDg1LCA0MTA4OCwgNDEwOTAsIDQxMDkzLCAKKyAgICA0MTA5NSwgNDEwOTksIDQxMTAzLCA0MTEwNSwgNDExMTEsIDQxMTE0LCA0MTExOSwgNDExMjMsIDQxMTI3LCA0MTEyOSwgCisgICAgNDExMzEsIDQxMTMzLCA0MTEzNiwgNDExNDAsIDQxMTQ0LCA0MTE0OCwgNDExNTIsIDQxMTU2LCA0MTE2MiwgNDExNjgsIAorICAgIDQxMTcwLCA0MTE3MiwgNDExNzQsIDQxMTc2LCA0MTE3OSwgNDExODEsIDQxMTg1LCA0MTE4NywgNDExOTEsIDQxMTk0LCAKKyAgICA0MTIwMCwgNDEyMDQsIDQxMjA4LCA0MTIxMSwgNDEyMTQsIDQxMjE4LCA0MTIyNCwgNDEyMjgsIDQxMjM4LCA0MTI0OCwgCisgICAgNDEyNTIsIDQxMjU4LCA0MTI2NCwgNDEyNjcsIDQxMjcxLCA0MTI3NCwgNDEyNzksIDQxMjgzLCA0MTI4OSwgNDEyOTMsIAorICAgIDQxMzA1LCA0MTMxMywgNDEzMTcsIDQxMzIxLCA0MTMyNywgNDEzMzEsIDQxMzM0LCA0MTMzNiwgNDEzMzksIDQxMzQzLCAKKyAgICA0MTM0NywgNDEzNTQsIDQxMzU4LCA0MTM2MiwgNDEzNjYsIDQxMzY5LCA0MTM3NCwgNDEzNzksIDQxMzg0LCA0MTM4OSwgCisgICAgNDEzOTQsIDQxMzk5LCA0MTQwNywgNDE0MTUsIDQxNDE5LCA0MTQyMywgNDE0MjUsIDQxNDMwLCA0MTQzNCwgNDE0MzgsIAorICAgIDQxNDQ2LCA0MTQ1NCwgNDE0NjAsIDQxNDY2LCA0MTQ3NSwgNDE0ODQsIDQxNDg5LCA0MTQ5NCwgNDE1MDIsIDQxNTEwLCAKKyAgICA0MTUxMiwgNDE1MTQsIDQxNTE5LCA0MTUyNCwgNDE1MzAsIDQxNTM2LCA0MTU0MiwgNDE1NDgsIDQxNTUyLCA0MTU1NiwgCisgICAgNDE1NjMsIDQxNTcwLCA0MTU3NiwgNDE1ODIsIDQxNTkyLCA0MTYwMiwgNDE2MTAsIDQxNjE4LCA0MTYyMCwgNDE2MjQsIAorICAgIDQxNjI4LCA0MTYzMywgNDE2MzgsIDQxNjQ1LCA0MTY1MiwgNDE2NTUsIDQxNjU4LCA0MTY2MSwgNDE2NjQsIDQxNjY3LCAKKyAgICA0MTY3MiwgNDE2NzYsIDQxNjgxLCA0MTY4NiwgNDE2ODksIDQxNjkyLCA0MTY5NSwgNDE2OTgsIDQxNzAxLCA0MTcwNSwgCisgICAgNDE3MDgsIDQxNzExLCA0MTcxNCwgNDE3MTcsIDQxNzE5LCA0MTcyMSwgNDE3MjMsIDQxNzI1LCA0MTczMywgNDE3NDEsIAorICAgIDQxNzQ3LCA0MTc1MSwgNDE3NTcsIDQxNzY3LCA0MTc3MywgNDE3NzksIDQxNzg1LCA0MTc5MywgNDE4MDEsIDQxODEyLCAKKyAgICA0MTgxNiwgNDE4MjAsIDQxODIyLCA0MTgyOCwgNDE4MzAsIDQxODMyLCA0MTgzNCwgNDE4MzYsIDQxODQyLCA0MTg0NSwgCisgICAgNDE4NTEsIDQxODU3LCA0MTg2MSwgNDE4NjUsIDQxODY5LCA0MTg3MiwgNDE4NzYsIDQxODgwLCA0MTg4MiwgNDE4OTEsIAorICAgIDQxOTAwLCA0MTkwNSwgNDE5MTAsIDQxOTE2LCA0MTkyMiwgNDE5MjgsIDQxOTMxLCA0MTkzNCwgNDE5MzcsIDQxOTQwLCAKKyAgICA0MTk0MiwgNDE5NDcsIDQxOTUyLCA0MTk1NywgNDE5NjMsIDQxOTY5LCA0MTk3NywgNDE5ODUsIDQxOTkxLCA0MTk5NywgCisgICAgNDIwMDMsIDQyMDA5LCA0MjAxOCwgNDIwMjcsIDQyMDM2LCA0MjA0NSwgNDIwNTQsIDQyMDYzLCA0MjA3MiwgNDIwODEsIAorICAgIDQyMDkwLCA0MjA5OSwgNDIxMDcsIDQyMTE5LCA0MjEyOSwgNDIxNDQsIDQyMTQ3LCA0MjE1MiwgNDIxNTgsIDQyMTY0LCAKKyAgICA0MjE3MSwgNDIxODUsIDQyMjAwLCA0MjIwNiwgNDIyMTIsIDQyMjE5LCA0MjIyNSwgNDIyMzMsIDQyMjM5LCA0MjI1MiwgCisgICAgNDIyNjYsIDQyMjcxLCA0MjI3NywgNDIyODQsIDQyMjg3LCA0MjI5MCwgNDIyOTIsIDQyMjk1LCA0MjI5OCwgNDIzMDAsIAorICAgIDQyMzAyLCA0MjMwNiwgNDIzMDksIDQyMzEyLCA0MjMxNSwgNDIzMTgsIDQyMzIzLCA0MjMyOCwgNDIzMzMsIDQyMzM4LCAKKyAgICA0MjM0MywgNDIzNDYsIDQyMzQ4LCA0MjM1MCwgNDIzNTIsIDQyMzU2LCA0MjM2MCwgNDIzNjQsIDQyMzcwLCA0MjM3NSwgCisgICAgNDIzNzcsIDQyMzc5LCA0MjM4NCwgNDIzODksIDQyMzk0LCA0MjM5OSwgNDI0MDQsIDQyNDA5LCA0MjQxMSwgNDI0MTMsIAorICAgIDQyNDIyLCA0MjQyNiwgNDI0MzQsIDQyNDQzLCA0MjQ0NSwgNDI0NTAsIDQyNDU1LCA0MjQ2MywgNDI0NjcsIDQyNDY5LCAKKyAgICA0MjQ3MywgNDI0NzUsIDQyNDc5LCA0MjQ4MywgNDI0ODcsIDQyNDg5LCA0MjQ5MSwgNDI0OTMsIDQyNTAwLCA0MjUwOSwgCisgICAgNDI1MTgsIDQyNTI3LCA0MjUzNiwgNDI1NDUsIDQyNTU0LCA0MjU2MywgNDI1NzIsIDQyNTgwLCA0MjU4OCwgNDI1OTcsIAorICAgIDQyNjA2LCA0MjYxNSwgNDI2MjQsIDQyNjMyLCA0MjY0MCwgNDI2NDksIDQyNjU4LCA0MjY2NywgNDI2NzcsIDQyNjg2LCAKKyAgICA0MjY5NiwgNDI3MDUsIDQyNzE1LCA0MjcyNCwgNDI3MzQsIDQyNzQ0LCA0Mjc1MywgNDI3NjMsIDQyNzcyLCA0Mjc4MiwgCisgICAgNDI3OTEsIDQyODAxLCA0MjgxMCwgNDI4MTksIDQyODI4LCA0MjgzNywgNDI4NDYsIDQyODU2LCA0Mjg2NSwgNDI4NzQsIAorICAgIDQyODgzLCA0Mjg5MywgNDI5MDIsIDQyOTExLCA0MjkyMCwgNDI5MjksIDQyOTM5LCA0Mjk0OSwgNDI5NTgsIDQyOTY3LCAKKyAgICA0Mjk3NSwgNDI5ODMsIDQyOTkwLCA0Mjk5OCwgNDMwMDcsIDQzMDE4LCA0MzAyNywgNDMwMzYsIDQzMDQ1LCA0MzA1MiwgCisgICAgNDMwNTksIDQzMDY2LCA0MzA3NSwgNDMwODQsIDQzMDkzLCA0MzEwMiwgNDMxMDksIDQzMTE0LCA0MzEyMywgNDMxMjgsIAorICAgIDQzMTMxLCA0MzEzOSwgNDMxNDIsIDQzMTQ3LCA0MzE1MiwgNDMxNTUsIDQzMTU4LCA0MzE2NiwgNDMxNjksIDQzMTc0LCAKKyAgICA0MzE3NywgNDMxODQsIDQzMTg5LCA0MzE5NywgNDMyMDAsIDQzMjAzLCA0MzIwNiwgNDMyMTEsIDQzMjE2LCA0MzIxOSwgCisgICAgNDMyMjIsIDQzMjMwLCA0MzIzMywgNDMyNDAsIDQzMjQ3LCA0MzI1MSwgNDMyNTUsIDQzMjYwLCA0MzI2NSwgNDMyNzEsIAorICAgIDQzMjc2LCA0MzI4MiwgNDMyODgsIDQzMjkzLCA0MzI5OSwgNDMzMDcsIDQzMzEzLCA0MzMyMSwgNDMzMjksIDQzMzM1LCAKKyAgICA0MzM0MywgNDMzNTEsIDQzMzYwLCA0MzM2OCwgNDMzNzQsIDQzMzgyLCA0MzM5MSwgNDMzOTksIDQzNDAzLCA0MzQwOCwgCisgICAgNDM0MjEsIDQzNDM0LCA0MzQzOCwgNDM0NDIsIDQzNDQ2LCA0MzQ1MCwgNDM0NjAsIDQzNDY0LCA0MzQ2OSwgNDM0NzQsIAorICAgIDQzNDc5LCA0MzQ4NCwgNDM0ODksIDQzNDk0LCA0MzUwNCwgNDM1MTQsIDQzNTIyLCA0MzUzMiwgNDM1NDIsIDQzNTUwLCAKKyAgICA0MzU2MCwgNDM1NzAsIDQzNTc4LCA0MzU4OCwgNDM1OTgsIDQzNjA2LCA0MzYxNCwgNDM2MjQsIDQzNjM0LCA0MzYzNywgCisgICAgNDM2NDAsIDQzNjQzLCA0MzY0OCwgNDM2NTIsIDQzNjU4LCA0MzY2NSwgNDM2NzIsIDQzNjgwLCA0MzY4NywgNDM2OTEsIAorICAgIDQzNjk1LCA0MzY5OSwgNDM3MDMsIDQzNzA1LCA0MzcwOSwgNDM3MTMsIDQzNzE4LCA0MzcyMywgNDM3MzAsIDQzNzM3LCAKKyAgICA0Mzc0MCwgNDM3NDcsIDQzNzQ5LCA0Mzc1MSwgNDM3NTUsIDQzNzU5LCA0Mzc2NCwgNDM3NzAsIDQzNzc2LCA0Mzc4MiwgCisgICAgNDM3ODgsIDQzNzk3LCA0MzgwNiwgNDM4MTUsIDQzODE5LCA0MzgyMSwgNDM4MjUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDQzODMyLCA0MzgzNiwgNDM4NDMsIDQzODUwLCA0Mzg1NywgNDM4NjQsIDQzODY4LCA0Mzg3MiwgCisgICAgNDM4NzYsIDQzODgwLCA0Mzg4NSwgNDM4OTEsIDQzODk2LCA0MzkwMiwgNDM5MDgsIDQzOTE0LCA0MzkyMCwgNDM5MjgsIAorICAgIDQzOTM1LCA0Mzk0MiwgNDM5NDksIDQzOTU2LCA0Mzk2MSwgNDM5NjcsIDQzOTc2LCA0Mzk4MCwgNDM5ODcsIDQzOTkxLCAKKyAgICA0Mzk5NSwgNDQwMDEsIDQ0MDA3LCA0NDAxMywgNDQwMTksIDQ0MDIzLCA0NDAyNywgNDQwMzAsIDQ0MDMzLCA0NDAzNywgCisgICAgNDQwNDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDQ0MDUxLCA0NDA1NCwgNDQwNTgsIDQ0MDYyLCA0NDA2OCwgNDQwNzQsIDQ0MDgwLCA0NDA4OCwgNDQwOTUsIAorICAgIDQ0MDk5LCA0NDEwNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgNDQxMTIsIDQ0MTE1LCA0NDExOCwgNDQxMjEsIDQ0MTI0LCA0NDEyNywgNDQxMzAsIDQ0MTMzLCA0NDEzNiwgNDQxMzksIAorICAgIDQ0MTQzLCA0NDE0NywgNDQxNTEsIDQ0MTU1LCA0NDE1OSwgNDQxNjMsIDQ0MTY3LCA0NDE3MSwgNDQxNzUsIDQ0MTc5LCAKKyAgICA0NDE4MywgNDQxODYsIDQ0MTg5LCA0NDE5MiwgNDQxOTUsIDQ0MTk4LCA0NDIwMSwgNDQyMDQsIDQ0MjA3LCA0NDIxMCwgCisgICAgNDQyMTQsIDQ0MjE4LCA0NDIyMiwgNDQyMjYsIDQ0MjMwLCA0NDIzNCwgNDQyMzgsIDQ0MjQyLCA0NDI0NiwgNDQyNTAsIAorICAgIDQ0MjU0LCA0NDI2MCwgNDQyNjYsIDQ0MjcyLCA0NDI3OSwgNDQyODYsIDQ0MjkzLCA0NDMwMCwgNDQzMDcsIDQ0MzE0LCAKKyAgICA0NDMyMSwgNDQzMjgsIDQ0MzM1LCA0NDM0MiwgNDQzNDksIDQ0MzU2LCA0NDM2MywgNDQzNzAsIDQ0Mzc3LCA0NDM4NCwgCisgICAgNDQzOTEsIDQ0Mzk2LCA0NDQwMiwgNDQ0MDgsIDQ0NDE0LCA0NDQxOSwgNDQ0MjUsIDQ0NDMxLCA0NDQzNywgNDQ0NDIsIAorICAgIDQ0NDQ4LCA0NDQ1NCwgNDQ0NTksIDQ0NDY0LCA0NDQ3MCwgNDQ0NzUsIDQ0NDgxLCA0NDQ4NywgNDQ0OTIsIDQ0NDk4LCAKKyAgICA0NDUwNCwgNDQ1MDksIDQ0NTE1LCA0NDUyMSwgNDQ1MjcsIDQ0NTMzLCA0NDUzOSwgNDQ1NDQsIDQ0NTUwLCA0NDU1NiwgCisgICAgNDQ1NjIsIDQ0NTY3LCA0NDU3MywgNDQ1NzksIDQ0NTg1LCA0NDU5MCwgNDQ1OTYsIDQ0NjAyLCA0NDYwNywgNDQ2MTIsIAorICAgIDQ0NjE4LCA0NDYyMywgNDQ2MjksIDQ0NjM1LCA0NDY0MCwgNDQ2NDYsIDQ0NjUyLCA0NDY1NywgNDQ2NjMsIDQ0NjY5LCAKKyAgICA0NDY3NSwgNDQ2ODEsIDQ0Njg3LCA0NDY5MiwgNDQ2OTgsIDQ0NzA0LCA0NDcxMCwgNDQ3MTUsIDQ0NzIxLCA0NDcyNywgCisgICAgNDQ3MzMsIDQ0NzM4LCA0NDc0NCwgNDQ3NTAsIDQ0NzU1LCA0NDc2MCwgNDQ3NjYsIDQ0NzcxLCA0NDc3NywgNDQ3ODMsIAorICAgIDQ0Nzg4LCA0NDc5NCwgNDQ4MDAsIDQ0ODA1LCA0NDgxMSwgNDQ4MTcsIDQ0ODIzLCA0NDgyOSwgNDQ4MzUsIDQ0ODM5LCAKKyAgICA0NDg0NCwgNDQ4NDksIDQ0ODU0LCA0NDg1OSwgNDQ4NjQsIDQ0ODY5LCA0NDg3NCwgNDQ4NzksIDQ0ODg0LCA0NDg4OSwgCisgICAgNDQ4OTMsIDQ0ODk3LCA0NDkwMSwgNDQ5MDUsIDQ0OTA5LCA0NDkxMywgNDQ5MTcsIDQ0OTIxLCA0NDkyNSwgNDQ5MzAsIAorICAgIDQ0OTM1LCA0NDk0MCwgNDQ5NDUsIDQ0OTUwLCA0NDk1NSwgNDQ5NjQsIDQ0OTczLCA0NDk4MiwgNDQ5OTEsIDQ1MDAwLCAKKyAgICA0NTAwOSwgNDUwMTgsIDQ1MDI3LCA0NTAzNCwgNDUwNDIsIDQ1MDUwLCA0NTA1NywgNDUwNjQsIDQ1MDcyLCA0NTA4MCwgCisgICAgNDUwODcsIDQ1MDk0LCA0NTEwMiwgNDUxMTAsIDQ1MTE3LCA0NTEyNCwgNDUxMzIsIDQ1MTQwLCA0NTE0NywgNDUxNTQsIAorICAgIDQ1MTYyLCA0NTE3MSwgNDUxODAsIDQ1MTg4LCA0NTE5NywgNDUyMDYsIDQ1MjEzLCA0NTIyMCwgNDUyMjgsIDQ1MjM3LCAKKyAgICA0NTI0NiwgNDUyNTQsIDQ1MjYzLCA0NTI3MiwgNDUyNzksIDQ1Mjg2LCA0NTI5NSwgNDUzMDQsIDQ1MzEyLCA0NTMyMCwgCisgICAgNDUzMjksIDQ1MzM4LCA0NTM0NSwgNDUzNTIsIDQ1MzYxLCA0NTM3MCwgNDUzNzgsIDQ1Mzg2LCA0NTM5NSwgNDU0MDQsIAorICAgIDQ1NDExLCA0NTQxOCwgNDU0MjcsIDQ1NDM2LCA0NTQ0NCwgNDU0NTMsIDQ1NDYyLCA0NTQ3MCwgNDU0ODAsIDQ1NDkwLCAKKyAgICA0NTUwMCwgNDU1MTAsIDQ1NTE5LCA0NTUyOCwgNDU1MzcsIDQ1NTQ2LCA0NTU1MywgNDU1NjEsIDQ1NTY5LCA0NTU3NywgCisgICAgNDU1ODUsIDQ1NTkwLCA0NTU5NSwgNDU2MDQsIDQ1NjEyLCA0NTYxOSwgNDU2MjgsIDQ1NjM2LCA0NTY0MywgNDU2NTIsIAorICAgIDQ1NjYwLCA0NTY2NywgNDU2NzYsIDQ1Njg0LCA0NTY5MSwgNDU3MDAsIDQ1NzA4LCA0NTcxNSwgNDU3MjQsIDQ1NzMyLCAKKyAgICA0NTczOSwgNDU3NDgsIDQ1NzU2LCA0NTc2MywgNDU3NzIsIDQ1NzgwLCA0NTc4NywgNDU3OTYsIDQ1ODA0LCA0NTgxMSwgCisgICAgNDU4MjAsIDQ1ODI5LCA0NTgzOCwgNDU4NDcsIDQ1ODYxLCA0NTg3NSwgNDU4ODIsIDQ1ODg3LCA0NTg5MiwgNDU4OTcsIAorICAgIDQ1OTAyLCA0NTkwNywgNDU5MTIsIDQ1OTE3LCA0NTkyMiwgNDU5MzAsIDQ1OTM4LCA0NTk0NiwgNDU5NTQsIDQ1OTU5LCAKKyAgICA0NTk2NiwgNDU5NzMsIDQ1OTgwLCA0NTk4NSwgNDU5OTMsIDQ2MDAwLCA0NjAwOCwgNDYwMTIsIDQ2MDE5LCA0NjAyNSwgCisgICAgNDYwMzIsIDQ2MDM2LCA0NjA0MiwgNDYwNDgsIDQ2MDU0LCA0NjA1OCwgNDYwNjEsIDQ2MDY1LCA0NjA2OSwgNDYwNzYsIAorICAgIDQ2MDgyLCA0NjA4OCwgNDYwOTQsIDQ2MTAwLCA0NjExNCwgNDYxMjQsIDQ2MTM4LCA0NjE1MiwgNDYxNTgsIDQ2MTY4LCAKKyAgICA0NjE4MiwgNDYxODUsIDQ2MTg4LCA0NjE5NSwgNDYyMDMsIDQ2MjA4LCA0NjIxMywgNDYyMjEsIDQ2MjMzLCA0NjI0NSwgCisgICAgNDYyNTMsIDQ2MjU3LCA0NjI2MSwgNDYyNjQsIDQ2MjY3LCA0NjI3MSwgNDYyNzUsIDQ2Mjc4LCA0NjI4MSwgNDYyODYsIAorICAgIDQ2MjkxLCA0NjI5NywgNDYzMDMsIDQ2MzA4LCA0NjMxMywgNDYzMTksIDQ2MzI1LCA0NjMzMCwgNDYzMzUsIDQ2MzQwLCAKKyAgICA0NjM0NSwgNDYzNTEsIDQ2MzU3LCA0NjM2MiwgNDYzNjcsIDQ2MzczLCA0NjM3OSwgNDYzODQsIDQ2Mzg5LCA0NjM5MiwgCisgICAgNDYzOTUsIDQ2NDA0LCA0NjQwNiwgNDY0MDgsIDQ2NDExLCA0NjQxNSwgNDY0MjEsIDQ2NDIzLCA0NjQyNiwgNDY0MzMsIAorICAgIDQ2NDQwLCA0NjQ0OCwgNDY0NTYsIDQ2NDY2LCA0NjQ4MCwgNDY0ODUsIDQ2NDkwLCA0NjQ5NCwgNDY0OTksIDQ2NTA3LCAKKyAgICA0NjUxNSwgNDY1MjQsIDQ2NTMzLCA0NjU0MiwgNDY1NTEsIDQ2NTU2LCA0NjU2MSwgNDY1NjcsIDQ2NTczLCA0NjU3OSwgCisgICAgNDY1ODUsIDQ2NTg4LCA0NjU5NCwgNDY2MDAsIDQ2NjEwLCA0NjYyMCwgNDY2MjgsIDQ2NjM2LCA0NjY0NSwgNDY2NTQsIAorICAgIDQ2NjU4LCA0NjY2NiwgNDY2NzQsIDQ2NjgyLCA0NjY5MCwgNDY2OTksIDQ2NzA4LCA0NjcxNywgNDY3MjYsIDQ2NzMxLCAKKyAgICA0NjczNiwgNDY3NDEsIDQ2NzQ2LCA0Njc1MSwgNDY3NTcsIDQ2NzYzLCA0Njc2OCwgNDY3NzQsIDQ2Nzc2LCA0Njc3OCwgCisgICAgNDY3ODAsIDQ2NzgyLCA0Njc4NSwgNDY3ODgsIDQ2NzkwLCA0Njc5MiwgNDY3OTQsIDQ2Nzk4LCA0NjgwMiwgNDY4MDQsIAorICAgIDQ2ODA2LCA0NjgwOSwgNDY4MTIsIDQ2ODE2LCA0NjgyMiwgNDY4MjgsIDQ2ODMwLCA0NjgzNywgNDY4NDEsIDQ2ODQ2LCAKKyAgICA0Njg1MSwgNDY4NTMsIDQ2ODYzLCA0Njg2OSwgNDY4NzUsIDQ2ODgxLCA0Njg4NywgNDY4OTMsIDQ2ODk5LCA0NjkwNCwgCisgICAgNDY5MDcsIDQ2OTEwLCA0NjkxMywgNDY5MTUsIDQ2OTE3LCA0NjkyMSwgNDY5MjUsIDQ2OTMwLCA0NjkzNSwgNDY5NDAsIAorICAgIDQ2OTQzLCA0Njk0NywgNDY5NTIsIDQ2OTU1LCA0Njk1OSwgNDY5NjQsIDQ2OTY5LCA0Njk3NCwgNDY5NzksIDQ2OTg0LCAKKyAgICA0Njk4OSwgNDY5OTQsIDQ2OTk5LCA0NzAwNCwgNDcwMDksIDQ3MDE0LCA0NzAxOSwgNDcwMjUsIDQ3MDMxLCA0NzAzNywgCisgICAgNDcwMzksIDQ3MDQyLCA0NzA0NCwgNDcwNDcsIDQ3MDQ5LCA0NzA1MSwgNDcwNTMsIDQ3MDU1LCA0NzA1NywgNDcwNTksIAorICAgIDQ3MDYxLCA0NzA2MywgNDcwNjUsIDQ3MDY3LCA0NzA2OSwgNDcwNzEsIDQ3MDczLCA0NzA3NSwgNDcwNzcsIDQ3MDc5LCAKKyAgICA0NzA4MSwgNDcwODYsIDQ3MDkxLCA0NzA5NiwgNDcxMDEsIDQ3MTA2LCA0NzExMSwgNDcxMTYsIDQ3MTIxLCA0NzEyNiwgCisgICAgNDcxMzEsIDQ3MTM2LCA0NzE0MSwgNDcxNDYsIDQ3MTUxLCA0NzE1NiwgNDcxNjEsIDQ3MTY2LCA0NzE3MSwgNDcxNzYsIAorICAgIDQ3MTgxLCA0NzE4NSwgNDcxODksIDQ3MTkzLCA0NzE5OSwgNDcyMDUsIDQ3MjEwLCA0NzIxNSwgNDcyMjAsIDQ3MjI1LCAKKyAgICA0NzIzMCwgNDcyMzUsIDQ3MjQzLCA0NzI1MSwgNDcyNTksIDQ3MjY3LCA0NzI3NSwgNDcyODMsIDQ3MjkxLCA0NzI5OSwgCisgICAgNDczMDUsIDQ3MzEwLCA0NzMxNSwgNDczMjAsIDQ3MzIzLCA0NzMyNywgNDczMzEsIDQ3MzM1LCA0NzMzOSwgNDczNDMsIAorICAgIDQ3MzQ3LCA0NzM1NCwgNDczNjEsIDQ3MzY5LCA0NzM3NywgNDczODIsIDQ3Mzg3LCA0NzM5NCwgNDc0MDEsIDQ3NDA4LCAKKyAgICA0NzQxNSwgNDc0MTgsIDQ3NDIxLCA0NzQyNiwgNDc0MjgsIDQ3NDMyLCA0NzQzNywgNDc0MzksIDQ3NDQxLCA0NzQ0MywgCisgICAgNDc0NDUsIDQ3NDUwLCA0NzQ1MywgNDc0NTUsIDQ3NDYwLCA0NzQ2NywgNDc0NzQsIDQ3NDc3LCA0NzQ4MSwgNDc0ODYsIAorICAgIDQ3NDkxLCA0NzQ5OSwgNDc1MDUsIDQ3NTExLCA0NzUyMywgNDc1MzAsIDQ3NTM3LCA0NzU0MiwgNDc1NDcsIDQ3NTUzLCAKKyAgICA0NzU1NiwgNDc1NTksIDQ3NTY0LCA0NzU2NiwgNDc1NzAsIDQ3NTcyLCA0NzU3NCwgNDc1NzYsIDQ3NTc4LCA0NzU4MCwgCisgICAgNDc1ODIsIDQ3NTg3LCA0NzU4OSwgNDc1OTEsIDQ3NTkzLCA0NzU5NSwgNDc1OTksIDQ3NjAxLCA0NzYwNCwgNDc2MDksIAorICAgIDQ3NjE0LCA0NzYxOSwgNDc2MjQsIDQ3NjMwLCA0NzYzNiwgNDc2MzgsIDQ3NjQxLCA0NzY0OCwgNDc2NTUsIDQ3NjYyLCAKKyAgICA0NzY2OSwgNDc2NzMsIDQ3Njc3LCA0NzY3OSwgNDc2ODEsIDQ3Njg1LCA0NzY5MSwgNDc2OTYsIDQ3Njk4LCA0NzcwMiwgCisgICAgNDc3MTEsIDQ3NzE5LCA0NzcyNywgNDc3MzMsIDQ3NzM5LCA0Nzc0NCwgNDc3NTAsIDQ3NzU1LCA0Nzc1OCwgNDc3NzIsIAorICAgIDQ3Nzc1LCA0Nzc4MCwgNDc3ODUsIDQ3NzkxLCA0NzgwMSwgNDc4MDMsIDQ3ODA5LCA0NzgxNSwgNDc4MTksIDQ3ODI2LCAKKyAgICA0NzgzMCwgNDc4MzIsIDQ3ODM0LCA0NzgzOCwgNDc4NDQsIDQ3ODQ5LCA0Nzg1NSwgNDc4NTcsIDQ3ODYzLCA0Nzg2NSwgCisgICAgNDc4NzEsIDQ3ODczLCA0Nzg3NSwgNDc4ODAsIDQ3ODgyLCA0Nzg4NiwgNDc4OTEsIDQ3ODkzLCA0Nzg5OCwgNDc5MDMsIAorICAgIDQ3OTA3LCA0NzkxNCwgMCwgNDc5MjQsIDQ3OTMwLCA0NzkzMywgNDc5MzksIDQ3OTQyLCA0Nzk0NywgNDc5NTIsIDQ3OTU2LCAKKyAgICA0Nzk1OCwgNDc5NjAsIDQ3OTY0LCA0Nzk2OCwgNDc5NzIsIDQ3OTc2LCA0Nzk4MSwgNDc5ODMsIDQ3OTg4LCA0Nzk5MSwgCisgICAgNDc5OTQsIDQ3OTk3LCA0ODAwMSwgNDgwMDUsIDQ4MDEwLCA0ODAxNCwgNDgwMTksIDQ4MDI0LCA0ODAyOCwgNDgwMzMsIAorICAgIDQ4MDM5LCA0ODA0MiwgNDgwNDgsIDQ4MDUzLCA0ODA1NywgNDgwNjIsIDQ4MDY4LCA0ODA3NCwgNDgwODEsIDQ4MDg3LCAKKyAgICA0ODA5NCwgNDgxMDEsIDQ4MTAzLCA0ODExMCwgNDgxMTQsIDQ4MTIwLCA0ODEyNiwgNDgxMzEsIDQ4MTM3LCA0ODE0MSwgCisgICAgNDgxNDYsIDQ4MTQ5LCA0ODE1NCwgNDgxNjAsIDQ4MTY3LCA0ODE3NSwgNDgxODIsIDQ4MTkxLCA0ODIwMSwgNDgyMDgsIAorICAgIDQ4MjE0LCA0ODIxOCwgNDgyMjUsIDQ4MjMwLCA0ODIzOSwgNDgyNDIsIDQ4MjQ1LCA0ODI1NCwgNDgyNjQsIDQ4MjcxLCAKKyAgICA0ODI3MywgNDgyNzksIDQ4Mjg0LCA0ODI4NiwgNDgyODksIDQ4MjkzLCA0ODMwMSwgNDgzMTAsIDQ4MzEzLCA0ODMxOCwgCisgICAgNDgzMjMsIDQ4MzMxLCA0ODMzOSwgNDgzNDcsIDQ4MzU1LCA0ODM2MSwgNDgzNjcsIDQ4MzczLCA0ODM4MSwgNDgzODYsIAorICAgIDQ4Mzg5LCA0ODM5MywgNDgzOTYsIDQ4NDA4LCA0ODQxOCwgNDg0MjksIDQ4NDM4LCA0ODQ0OSwgNDg0NTksIDQ4NDY4LCAKKyAgICA0ODQ3NCwgNDg0ODIsIDQ4NDg2LCA0ODQ5NCwgNDg0OTgsIDQ4NTA2LCA0ODUxMywgNDg1MjAsIDQ4NTI5LCA0ODUzOCwgCisgICAgNDg1NDgsIDQ4NTU4LCA0ODU2OCwgNDg1NzgsIDQ4NTg3LCA0ODU5NiwgNDg2MDYsIDQ4NjE2LCA0ODYyNSwgNDg2MzQsIAorICAgIDQ4NjQwLCA0ODY0NiwgNDg2NTIsIDQ4NjU4LCA0ODY2NCwgNDg2NzAsIDQ4Njc2LCA0ODY4MiwgNDg2ODgsIDQ4Njk1LCAKKyAgICA0ODcwMSwgNDg3MDcsIDQ4NzEzLCA0ODcxOSwgNDg3MjUsIDQ4NzMxLCA0ODczNywgNDg3NDMsIDQ4NzQ5LCA0ODc1NiwgCisgICAgNDg3NjMsIDQ4NzcwLCA0ODc3NywgNDg3ODQsIDQ4NzkxLCA0ODc5OCwgNDg4MDUsIDQ4ODEyLCA0ODgxOSwgNDg4MjcsIAorICAgIDQ4ODMyLCA0ODgzNSwgNDg4MzksIDQ4ODQzLCA0ODg0OSwgNDg4NTIsIDQ4ODU4LCA0ODg2NCwgNDg4NjksIDQ4ODczLCAKKyAgICA0ODg3OCwgNDg4ODQsIDQ4ODkxLCA0ODg5NCwgNDg5MDEsIDQ4OTA4LCA0ODkxMiwgNDg5MjEsIDQ4OTMwLCA0ODkzNSwgCisgICAgNDg5NDEsIDQ4OTQ2LCA0ODk1MSwgNDg5NTgsIDQ4OTY1LCA0ODk3MywgNDg5ODEsIDQ4OTkwLCA0ODk5NCwgNDkwMDMsIAorICAgIDQ5MDA4LCA0OTAxMiwgNDkwMTksIDQ5MDIzLCA0OTAzMCwgNDkwMzgsIDQ5MDQzLCA0OTA1MSwgNDkwNTUsIDQ5MDYwLCAKKyAgICA0OTA2NCwgNDkwNjksIDQ5MDczLCA0OTA3OCwgNDkwODMsIDQ5MDkyLCA0OTA5NCwgNDkwOTcsIDQ5MTAwLCA0OTEwNywgCisgICAgNDkxMTQsIDQ5MTE5LCA0OTEyNywgNDkxMzMsIDQ5MTM5LCA0OTE0NCwgNDkxNDcsIDQ5MTUyLCA0OTE1NywgNDkxNjIsIAorICAgIDQ5MTcwLCA0OTE3NCwgNDkxODEsIDQ5MTg5LCA0OTE5NywgNDkyMDIsIDQ5MjA3LCA0OTIxMywgNDkyMTgsIDQ5MjIzLCAKKyAgICA0OTIyOSwgNDkyMzQsIDQ5MjM3LCA0OTI0MSwgNDkyNDUsIDQ5MjUyLCA0OTI2MSwgNDkyNjYsIDQ5Mjc1LCA0OTI4NCwgCisgICAgNDkyOTAsIDQ5Mjk2LCA0OTMwMSwgNDkzMDYsIDQ5MzExLCA0OTMxNiwgNDkzMjIsIDQ5MzI4LCA0OTMzNiwgNDkzNDQsIAorICAgIDQ5MzUwLCA0OTM1NiwgNDkzNjEsIDQ5MzY2LCA0OTM3MywgNDkzODAsIDQ5Mzg2LCA0OTM4OSwgNDkzOTIsIDQ5Mzk2LCAKKyAgICA0OTQwMCwgNDk0MDQsIDQ5NDA5LCA0OTQxNSwgNDk0MjEsIDQ5NDI4LCA0OTQzNSwgNDk0NDAsIDQ5NDQ0LCA0OTQ0OCwgCisgICAgNDk0NTIsIDQ5NDU2LCA0OTQ2MCwgNDk0NjQsIDQ5NDY4LCA0OTQ3MiwgNDk0NzYsIDQ5NDgwLCA0OTQ4NCwgNDk0ODgsIAorICAgIDQ5NDkyLCA0OTQ5NiwgNDk1MDAsIDQ5NTA0LCA0OTUwOCwgNDk1MTIsIDQ5NTE2LCA0OTUyMCwgNDk1MjQsIDQ5NTI4LCAKKyAgICA0OTUzMiwgNDk1MzYsIDQ5NTQwLCA0OTU0NCwgNDk1NDgsIDQ5NTUyLCA0OTU1NiwgNDk1NjAsIDQ5NTY0LCA0OTU2OCwgCisgICAgNDk1NzIsIDQ5NTc2LCA0OTU4MCwgNDk1ODQsIDQ5NTg4LCA0OTU5MiwgNDk1OTYsIDQ5NjAwLCA0OTYwNCwgNDk2MDgsIAorICAgIDQ5NjEyLCA0OTYxNiwgNDk2MjAsIDQ5NjI0LCA0OTYyOCwgNDk2MzIsIDQ5NjM2LCA0OTY0MCwgNDk2NDQsIDQ5NjQ4LCAKKyAgICA0OTY1MiwgNDk2NTYsIDQ5NjYwLCA0OTY2NCwgNDk2NjgsIDQ5NjcyLCA0OTY3NiwgNDk2ODAsIDQ5Njg0LCA0OTY4OCwgCisgICAgNDk2OTIsIDQ5Njk2LCA0OTcwMCwgNDk3MDQsIDQ5NzA4LCA0OTcxMiwgNDk3MTYsIDQ5NzIwLCA0OTcyNCwgNDk3MjgsIAorICAgIDQ5NzMyLCA0OTczNiwgNDk3NDAsIDQ5NzQ0LCA0OTc0OCwgNDk3NTIsIDQ5NzU2LCA0OTc2MCwgNDk3NjQsIDQ5NzY4LCAKKyAgICA0OTc3MiwgNDk3NzYsIDQ5NzgwLCA0OTc4NCwgNDk3ODgsIDQ5NzkyLCA0OTc5NiwgNDk4MDAsIDQ5ODA0LCA0OTgwOCwgCisgICAgNDk4MTIsIDQ5ODE2LCA0OTgyMCwgNDk4MjQsIDQ5ODI4LCA0OTgzMiwgNDk4MzYsIDQ5ODQwLCA0OTg0NCwgNDk4NDgsIAorICAgIDQ5ODUyLCA0OTg1NiwgNDk4NjAsIDQ5ODY0LCA0OTg2OCwgNDk4NzIsIDQ5ODc2LCA0OTg4MCwgNDk4ODQsIDQ5ODg4LCAKKyAgICA0OTg5MiwgNDk4OTYsIDQ5OTAwLCA0OTkwNCwgNDk5MDgsIDQ5OTEyLCA0OTkxNiwgNDk5MjAsIDQ5OTI0LCA0OTkyOCwgCisgICAgNDk5MzIsIDQ5OTM2LCA0OTk0MCwgNDk5NDQsIDQ5OTQ4LCA0OTk1MiwgNDk5NTYsIDQ5OTYwLCA0OTk2NCwgNDk5NjgsIAorICAgIDQ5OTcyLCA0OTk3NiwgNDk5ODAsIDQ5OTg0LCA0OTk4OCwgNDk5OTIsIDQ5OTk2LCA1MDAwMCwgNTAwMDQsIDUwMDA4LCAKKyAgICA1MDAxMiwgNTAwMTYsIDUwMDIwLCA1MDAyNCwgNTAwMjgsIDUwMDMyLCA1MDAzNiwgNTAwNDAsIDUwMDQ0LCA1MDA0OCwgCisgICAgNTAwNTIsIDUwMDU2LCA1MDA2MCwgNTAwNjQsIDUwMDY4LCA1MDA3MiwgNTAwNzYsIDUwMDgwLCA1MDA4NCwgNTAwODgsIAorICAgIDUwMDkyLCA1MDA5NiwgNTAxMDAsIDUwMTA0LCA1MDEwOCwgNTAxMTIsIDUwMTE2LCA1MDEyMCwgNTAxMjQsIDUwMTI4LCAKKyAgICA1MDEzMiwgNTAxMzYsIDUwMTQwLCA1MDE0NCwgNTAxNDgsIDUwMTUyLCA1MDE1NiwgNTAxNjAsIDUwMTY0LCA1MDE2OCwgCisgICAgNTAxNzIsIDUwMTc2LCA1MDE4MCwgNTAxODQsIDUwMTg4LCA1MDE5MiwgNTAxOTYsIDUwMjAwLCA1MDIwNCwgNTAyMDgsIAorICAgIDUwMjEyLCA1MDIxNiwgNTAyMjAsIDUwMjI0LCA1MDIyOCwgNTAyMzIsIDUwMjM2LCA1MDI0MCwgNTAyNDQsIDUwMjQ4LCAKKyAgICA1MDI1MiwgNTAyNTYsIDUwMjYwLCA1MDI2NCwgNTAyNjgsIDUwMjcyLCA1MDI3NiwgNTAyODAsIDUwMjg0LCA1MDI4OCwgCisgICAgNTAyOTIsIDUwMjk2LCA1MDMwMCwgNTAzMDQsIDUwMzA4LCA1MDMxMiwgNTAzMTYsIDUwMzIwLCA1MDMyNCwgNTAzMjgsIAorICAgIDUwMzMyLCA1MDMzNiwgNTAzNDAsIDUwMzQ0LCA1MDM0OCwgNTAzNTIsIDUwMzU2LCA1MDM2MCwgNTAzNjQsIDUwMzY4LCAKKyAgICA1MDM3MiwgNTAzNzYsIDUwMzgwLCA1MDM4NCwgNTAzODgsIDUwMzkyLCA1MDM5NiwgNTA0MDAsIDUwNDA0LCA1MDQwOCwgCisgICAgNTA0MTIsIDUwNDE2LCA1MDQyMCwgNTA0MjQsIDUwNDI4LCA1MDQzMiwgNTA0MzYsIDUwNDQwLCA1MDQ0NCwgNTA0NDgsIAorICAgIDUwNDUyLCA1MDQ1NiwgNTA0NjAsIDUwNDY0LCA1MDQ3MSwgNTA0NzksIDUwNDg1LCA1MDQ5MSwgNTA0OTgsIDUwNTA1LCAKKyAgICA1MDUxMSwgNTA1MTcsIDUwNTIzLCA1MDUyOSwgNTA1MzQsIDUwNTM5LCA1MDU0NCwgNTA1NDksIDUwNTU1LCA1MDU2MSwgCisgICAgNTA1NjksIDUwNTc2LCA1MDU4MiwgNTA1ODgsIDUwNTk2LCA1MDYwNSwgNTA2MTIsIDUwNjIyLCA1MDYzMywgNTA2MzYsIAorICAgIDUwNjM5LCA1MDY0MywgNTA2NDcsIDUwNjU0LCA1MDY2MSwgNTA2NzIsIDUwNjgzLCA1MDY5MywgNTA3MDMsIDUwNzEwLCAKKyAgICA1MDcxNywgNTA3MjQsIDUwNzMxLCA1MDc0MiwgNTA3NTMsIDUwNzY0LCA1MDc3NSwgNTA3ODUsIDUwNzk1LCA1MDgwNywgCisgICAgNTA4MTksIDUwODMwLCA1MDg0MSwgNTA4NTMsIDUwODY1LCA1MDg3NCwgNTA4ODQsIDUwODk0LCA1MDkwNSwgNTA5MTYsIAorICAgIDUwOTIzLCA1MDkzMCwgNTA5MzcsIDUwOTQ0LCA1MDk1NCwgNTA5NjQsIDUwOTcyLCA1MDk4MCwgNTA5ODcsIDUwOTk0LCAKKyAgICA1MTAwMSwgNTEwMDgsIDUxMDE1LCA1MTAyMCwgNTEwMjUsIDUxMDMxLCA1MTAzOSwgNTEwNDksIDUxMDU5LCA1MTA2OSwgCisgICAgNTEwNzksIDUxMDg5LCA1MTA5OSwgNTExMDksIDUxMTE5LCA1MTEyOSwgNTExMzksIDUxMTQ5LCA1MTE2MCwgNTExNzEsIAorICAgIDUxMTgxLCA1MTE5MSwgNTEyMDIsIDUxMjEzLCA1MTIyMywgNTEyMzMsIDUxMjQ0LCA1MTI1NSwgNTEyNjUsIDUxMjc1LCAKKyAgICA1MTI4NiwgNTEyOTcsIDUxMzEzLCA1MTMzMiwgNTEzNDgsIDUxMzY3LCA1MTM4MywgNTEzOTksIDUxNDE1LCA1MTQzMSwgCisgICAgNTE0NDIsIDUxNDU0LCA1MTQ2NSwgNTE0NzcsIDUxNDk2LCA1MTUxNSwgNTE1MjMsIDUxNTI5LCA1MTUzNiwgNTE1NDMsIAorICAgIDUxNTUwLCA1MTU1NywgNTE1NjIsIDUxNTY4LCA1MTU3MywgNTE1NzgsIDUxNTg0LCA1MTU4OSwgNTE1OTQsIDUxNTk5LCAKKyAgICA1MTYwNCwgNTE2MDksIDUxNjE2LCA1MTYyMSwgNTE2MjgsIDUxNjMzLCA1MTYzOCwgNTE2NDIsIDUxNjQ2LCA1MTY1MywgCisgICAgNTE2NjAsIDUxNjY3LCA1MTY3NCwgNTE2ODEsIDUxNjg4LCA1MTcwMSwgNTE3MTQsIDUxNzI3LCA1MTc0MCwgNTE3NDgsIAorICAgIDUxNzU2LCA1MTc2MiwgNTE3NjgsIDUxNzc1LCA1MTc4MiwgNTE3ODksIDUxNzk2LCA1MTgwMCwgNTE4MDUsIDUxODEzLCAKKyAgICA1MTgyMSwgNTE4MjksIDUxODM2LCA1MTg0MCwgNTE4NDgsIDUxODU2LCA1MTg2MCwgNTE4NjQsIDUxODY5LCA1MTg3NiwgCisgICAgNTE4ODQsIDUxODkyLCA1MTkxMSwgNTE5MzAsIDUxOTQ5LCA1MTk2OCwgNTE5ODcsIDUyMDA2LCA1MjAyNSwgNTIwNDQsIAorICAgIDUyMDUwLCA1MjA1NywgNTIwNjYsIDUyMDc0LCA1MjA4MiwgNTIwODcsIDUyMDkwLCA1MjA5MywgNTIwOTgsIDUyMTAxLCAKKyAgICA1MjEyMCwgNTIxMjcsIDUyMTMzLCA1MjEzOSwgNTIxNDMsIDUyMTQ2LCA1MjE0OSwgNTIxNTIsIDUyMTY0LCA1MjE3NywgCisgICAgNTIxODQsIDUyMTkxLCA1MjE5NCwgNTIxOTgsIDUyMjAxLCA1MjIwNiwgNTIyMTEsIDUyMjE2LCA1MjIyMiwgNTIyMzEsIAorICAgIDUyMjM4LCA1MjI0NSwgNTIyNTMsIDUyMjYwLCA1MjI2NywgNTIyNzAsIDUyMjc2LCA1MjI4MiwgNTIyODUsIDUyMjg4LCAKKyAgICA1MjI5MywgNTIyOTgsIDUyMzA0LCA1MjMxMCwgNTIzMTQsIDUyMzE5LCA1MjMyNiwgNTIzMzAsIDUyMzM2LCA1MjM0MCwgCisgICAgNTIzNDQsIDUyMzUyLCA1MjM2NCwgNTIzNzMsIDUyMzc3LCA1MjM3OSwgNTIzODgsIDUyMzk3LCA1MjQwMywgNTI0MDYsIAorICAgIDUyNDEyLCA1MjQxOCwgNTI0MjMsIDUyNDI4LCA1MjQzMywgNTI0MzgsIDUyNDQzLCA1MjQ0OCwgNTI0NTAsIDUyNDU2LCAKKyAgICA1MjQ2MSwgNTI0NjgsIDUyNDcyLCA1MjQ3OCwgNTI0ODEsIDUyNDg1LCA1MjQ5MiwgNTI0OTksIDUyNTAxLCA1MjUwMywgCisgICAgNTI1MDksIDUyNTE1LCA1MjUyMSwgNTI1MzAsIDUyNTM5LCA1MjU0NiwgNTI1NTMsIDUyNTU5LCA1MjU2NSwgNTI1NzAsIAorICAgIDUyNTc1LCA1MjU4MCwgNTI1ODYsIDUyNTkyLCA1MjU5NywgNTI2MDQsIDUyNjA4LCA1MjYxMiwgNTI2MjUsIDUyNjM4LCAKKyAgICA1MjY1MCwgNTI2NTksIDUyNjY1LCA1MjY3MiwgNTI2NzcsIDUyNjgyLCA1MjY4NywgNTI2OTIsIDUyNjk3LCA1MjY5OSwgCisgICAgNTI3MDYsIDUyNzEzLCA1MjcyMCwgNTI3MjcsIDUyNzM0LCA1Mjc0MiwgNTI3NDgsIDUyNzUzLCA1Mjc1OSwgNTI3NjUsIAorICAgIDUyNzcxLCA1Mjc3OCwgNTI3ODQsIDUyNzkyLCA1MjgwMCwgNTI4MDgsIDUyODE2LCA1MjgyMywgNTI4MjksIDUyODM1LCAKKyAgICA1Mjg0NCwgNTI4NDgsIDUyODU3LCA1Mjg2NiwgNTI4NzUsIDUyODgzLCA1Mjg4NywgNTI4OTMsIDUyOTAwLCA1MjkwNywgCisgICAgNTI5MTEsIDUyOTE3LCA1MjkyNCwgNTI5MjksIDUyOTM0LCA1Mjk0MCwgNTI5NDUsIDUyOTUwLCA1Mjk1NywgNTI5NjQsIAorICAgIDUyOTY5LCA1Mjk3NCwgNTI5ODIsIDUyOTkwLCA1MzAwMCwgNTMwMTAsIDUzMDE3LCA1MzAyNCwgNTMwMjgsIDUzMDMyLCAKKyAgICA1MzA0NCwgNTMwNTAsIDUzMDU2LCA1MzA2MSwgNTMwNjYsIDUzMDczLCA1MzA4MCwgNTMwODYsIDUzMDkyLCA1MzEwMSwgCisgICAgNTMxMDksIDUzMTE3LCA1MzEyNCwgNTMxMzEsIDUzMTM4LCA1MzE0NCwgNTMxNTEsIDUzMTU3LCA1MzE2NCwgNTMxNzEsIAorICAgIDUzMTc4LCA1MzE4NSwgNTMxOTEsIDUzMTk2LCA1MzIwNSwgNTMyMTUsIDUzMjIyLCA1MzIzMSwgNTMyMzcsIDUzMjQyLCAKKyAgICA1MzI0NywgNTMyNTcsIDUzMjYzLCA1MzI2OSwgNTMyNzUsIDUzMjgzLCA1MzI4OCwgNTMyOTUsIDUzMzAyLCA1MzMxMywgCisgICAgNTMzMjAsIDUzMzI3LCA1MzMzNCwgNTMzNDEsIDUzMzQ4LCA1MzM1NSwgNTMzNjIsIDUzMzc0LCA1MzM4NiwgNTMzOTcsIAorICAgIDUzNDA4LCA1MzQyMSwgNTM0MzQsIDUzNDM5LCA1MzQ0NCwgNTM0NTMsIDUzNDYyLCA1MzQ2OSwgNTM0NzYsIDUzNDg1LCAKKyAgICA1MzQ5NCwgNTM1MDIsIDUzNTEwLCA1MzUxOCwgNTM1MjYsIDUzNTM2LCA1MzU0NiwgNTM1NjAsIDUzNTc0LCA1MzU4MiwgCisgICAgNTM1OTAsIDUzNjAyLCA1MzYxNCwgNTM2MjIsIDUzNjMwLCA1MzY0MCwgNTM2NTAsIDUzNjU1LCA1MzY2MCwgNTM2NjksIAorICAgIDUzNjc4LCA1MzY4MywgNTM2ODgsIDUzNjk2LCA1MzcwMiwgNTM3MDgsIDUzNzE2LCA1MzcyNCwgNTM3MzcsIDUzNzUwLCAKKyAgICA1Mzc1NCwgNTM3NTgsIDUzNzY1LCA1Mzc3MiwgNTM3NzksIDUzNzg3LCA1Mzc5NSwgNTM4MDQsIDUzODEzLCA1MzgxOSwgCisgICAgNTM4MjUsIDUzODMyLCA1MzgzOSwgNTM4NDYsIDUzODUzLCA1Mzg2MiwgNTM4NzEsIDUzODc0LCA1Mzg3NywgNTM4ODIsIAorICAgIDUzODg3LCA1Mzg5MywgNTM4OTksIDUzOTA2LCA1MzkxMywgNTM5MjMsIDUzOTMzLCA1Mzk0MCwgNTM5NDcsIDUzOTU1LCAKKyAgICA1Mzk2MywgNTM5NzEsIDUzOTc5LCA1Mzk4NywgNTM5OTUsIDU0MDAxLCA1NDAwNywgNTQwMTEsIDU0MDE1LCA1NDAyMiwgCisgICAgNTQwMjksIDU0MDM0LCA1NDAzOSwgNTQwNDQsIDU0MDQ5LCA1NDA1NSwgNTQwNjksIDU0MDc2LCA1NDA4MywgNTQwODcsIAorICAgIDU0MDg5LCA1NDA5MSwgNTQwOTYsIDU0MTAxLCA1NDEwNiwgNTQxMTEsIDU0MTE5LCA1NDEyNiwgNTQxMzMsIDU0MTQxLCAKKyAgICA1NDE1MywgNTQxNjEsIDU0MTY5LCA1NDE4MCwgNTQxODQsIDU0MTg4LCA1NDE5NCwgNTQyMDIsIDU0MjE1LCA1NDIyMiwgCisgICAgNTQyMjksIDU0MjM2LCA1NDI0MSwgNTQyNDgsIDU0MjU3LCA1NDI2NSwgNTQyNzEsIDU0Mjc3LCA1NDI4MywgNTQyOTIsIAorICAgIDU0MzAxLCA1NDMwOSwgNTQzMTgsIDU0MzIzLCA1NDMyNiwgNTQzMzEsIDU0MzM3LCA1NDM0MywgNTQzNDksIDU0MzU1LCAKKyAgICA1NDM1OSwgNTQzNjIsIDU0MzY2LCA1NDM3MCwgNTQzNzYsIDU0MzgyLCA1NDM4OCwgNTQzOTQsIDU0Mzk4LCA1NDQwMiwgCisgICAgNTQ0MDksIDU0NDE2LCA1NDQyMywgNTQ0MzAsIDU0NDM3LCA1NDQ0NCwgNTQ0NTQsIDU0NDY0LCA1NDQ3MSwgNTQ0NzgsIAorICAgIDU0NDg2LCA1NDQ5NCwgNTQ0OTgsIDU0NTAzLCA1NDUwOCwgNTQ1MTQsIDU0NTIwLCA1NDUyMywgNTQ1MjYsIDU0NTI5LCAKKyAgICA1NDUzMiwgNTQ1MzYsIDU0NTQxLCA1NDU0NiwgNTQ1NTEsIDU0NTU2LCA1NDU2MSwgNTQ1NjUsIDU0NTY5LCA1NDU3MywgCisgICAgNTQ1NzcsIDU0NTgxLCA1NDU4NSwgNTQ1ODksIDU0NTk1LCA1NDU5OSwgNTQ2MDUsIDU0NjEwLCA1NDYxNywgNTQ2MjUsIAorICAgIDU0NjMyLCA1NDY0MCwgNTQ2NDcsIDU0NjU1LCA1NDY2NCwgNTQ2NzEsIDU0NjgxLCA1NDY5MiwgNTQ2OTgsIDU0NzA3LCAKKyAgICA1NDcxMywgNTQ3MjIsIDU0NzMxLCA1NDczNywgNTQ3NDMsIDU0NzQ3LCA1NDc1MSwgNTQ3NjAsIDU0NzY5LCA1NDc3NiwgCisgICAgNTQ3ODMsIDU0NzkyLCAwLCAwLCAwLCA1NDgwMSwgNTQ4MDYsIDU0ODEwLCA1NDgxNCwgNTQ4MTksIDU0ODI0LCA1NDgyOSwgCisgICAgNTQ4MzcsIDU0ODQ1LCA1NDg0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNTQ4NDcsIDU0ODUyLCA1NDg1NywgNTQ4NjIsIDU0ODY3LCA1NDg3MiwgNTQ4NzcsIDU0ODgyLCAKLSAgICA1NDg4NywgNTQ4OTIsIDU0ODk3LCA1NDkwMywgNTQ5MDcsIDU0OTEyLCA1NDkxNywgNTQ5MjIsIDU0OTI3LCA1NDkzMiwgCi0gICAgNTQ5MzcsIDU0OTQyLCA1NDk0NywgNTQ5NTIsIDU0OTU3LCA1NDk2MiwgNTQ5NjcsIDU0OTcyLCA1NDk3NywgNTQ5ODIsIAotICAgIDU0OTg3LCA1NDk5MiwgNTQ5OTcsIDU1MDAyLCA1NTAwNywgNTUwMTIsIDU1MDE3LCA1NTAyMywgNTUwMjgsIDU1MDM0LCAKLSAgICA1NTA0MywgNTUwNDgsIDU1MDU2LCA1NTA2MywgNTUwNzIsIDU1MDc3LCA1NTA4MiwgNTUwODcsIDU1MDkzLCAwLCA1NTEwMCwgCi0gICAgNTUxMDUsIDU1MTEwLCA1NTExNSwgNTUxMjAsIDU1MTI1LCA1NTEzMCwgNTUxMzUsIDU1MTQwLCA1NTE0NSwgNTUxNTAsIAotICAgIDU1MTU2LCA1NTE2MCwgNTUxNjUsIDU1MTcwLCA1NTE3NSwgNTUxODAsIDU1MTg1LCA1NTE5MCwgNTUxOTUsIDU1MjAwLCAKLSAgICA1NTIwNSwgNTUyMTAsIDU1MjE1LCA1NTIyMCwgNTUyMjUsIDU1MjMwLCA1NTIzNSwgNTUyNDAsIDU1MjQ1LCA1NTI1MCwgCi0gICAgNTUyNTUsIDU1MjYwLCA1NTI2NSwgNTUyNzAsIDU1Mjc2LCA1NTI4MSwgNTUyODcsIDU1Mjk2LCA1NTMwMSwgNTUzMDksIAotICAgIDU1MzE2LCA1NTMyNSwgNTUzMzAsIDU1MzM1LCA1NTM0MCwgNTUzNDYsIDAsIDU1MzUzLCA1NTM2MSwgNTUzNjksIDU1Mzc4LCAKLSAgICA1NTM4NSwgNTUzOTMsIDU1Mzk5LCA1NTQwOCwgNTU0MTYsIDU1NDI0LCA1NTQzMiwgNTU0NDAsIDU1NDQ4LCA1NTQ1NiwgCi0gICAgNTU0NjEsIDU1NDY4LCA1NTQ3NCwgNTU0ODEsIDU1NDg5LCA1NTQ5NiwgNTU1MDMsIDU1NTExLCA1NTUxNywgNTU1MjMsIAotICAgIDU1NTMwLCA1NTUzNywgNTU1NDcsIDU1NTU3LCA1NTU2NCwgNTU1NzEsIDU1NTc2LCA1NTU4NiwgNTU1OTYsIDU1NjAxLCAKLSAgICA1NTYwNiwgNTU2MTEsIDU1NjE2LCA1NTYyMSwgNTU2MjYsIDU1NjMxLCA1NTYzNiwgNTU2NDEsIDU1NjQ2LCA1NTY1MSwgCi0gICAgNTU2NTYsIDU1NjYxLCA1NTY2NiwgNTU2NzEsIDU1Njc2LCA1NTY4MSwgNTU2ODYsIDU1NjkxLCA1NTY5NiwgNTU3MDEsIAotICAgIDU1NzA2LCA1NTcxMSwgNTU3MTYsIDU1NzIxLCA1NTcyNiwgNTU3MzEsIDU1NzM2LCA1NTc0MSwgNTU3NDYsIDU1NzUwLCAKLSAgICA1NTc1NCwgNTU3NTksIDU1NzY0LCA1NTc2OSwgNTU3NzQsIDU1Nzc5LCA1NTc4NCwgNTU3ODksIDU1Nzk0LCA1NTc5OSwgCi0gICAgNTU4MDQsIDU1ODA5LCA1NTgxNCwgNTU4MTksIDU1ODI0LCA1NTgyOSwgNTU4MzQsIDU1ODM5LCA1NTg0NCwgNTU4NTEsIAotICAgIDU1ODU4LCA1NTg2NSwgNTU4NzIsIDU1ODc5LCA1NTg4NiwgNTU4OTMsIDU1OTAwLCA1NTkwNywgNTU5MTQsIDU1OTIxLCAKLSAgICA1NTkyOCwgNTU5MzUsIDU1OTQyLCA1NTk0NywgNTU5NTIsIDU1OTU5LCA1NTk2NiwgNTU5NzMsIDU1OTgwLCA1NTk4NywgCi0gICAgNTU5OTQsIDU2MDAxLCA1NjAwOCwgNTYwMTUsIDU2MDIyLCA1NjAyOSwgNTYwMzYsIDU2MDQyLCA1NjA0OCwgNTYwNTQsIAotICAgIDU2MDYwLCA1NjA2NywgNTYwNzQsIDU2MDgxLCA1NjA4OCwgNTYwOTUsIDU2MTAyLCA1NjEwOSwgNTYxMTYsIDU2MTIzLCAKLSAgICA1NjEzMCwgNTYxMzgsIDU2MTQ2LCA1NjE1NCwgNTYxNjIsIDU2MTcwLCA1NjE3OCwgNTYxODYsIDU2MTk0LCA1NjE5OCwgCi0gICAgNTYyMDQsIDU2MjEwLCA1NjIxNCwgNTYyMjAsIDU2MjI2LCA1NjIzMiwgNTYyMzksIDU2MjQ2LCA1NjI1MywgNTYyNjAsIAotICAgIDU2MjY1LCA1NjI3MSwgNTYyNzcsIDU2Mjg0LCAwLCAwLCAwLCAwLCAwLCA1NjI5MSwgNTYyOTksIDU2MzA4LCA1NjMxNywgCi0gICAgNTYzMjUsIDU2MzMxLCA1NjMzNiwgNTYzNDEsIDU2MzQ2LCA1NjM1MSwgNTYzNTYsIDU2MzYxLCA1NjM2NiwgNTYzNzEsIAotICAgIDU2Mzc2LCA1NjM4MSwgNTYzODYsIDU2MzkxLCA1NjM5NiwgNTY0MDEsIDU2NDA2LCA1NjQxMSwgNTY0MTYsIDU2NDIxLCAKLSAgICA1NjQyNiwgNTY0MzEsIDU2NDM2LCA1NjQ0MSwgNTY0NDYsIDU2NDUxLCA1NjQ1NiwgNTY0NjEsIDU2NDY2LCA1NjQ3MSwgCi0gICAgNTY0NzYsIDU2NDgxLCA1NjQ4NiwgNTY0OTEsIDU2NDk2LCA1NjUwMSwgNTY1MDYsIDU2NTExLCA1NjUxNiwgNTY1MjEsIAotICAgIDU2NTI2LCAwLCA1NjUzMSwgMCwgMCwgMCwgMCwgMCwgNTY1MzYsIDAsIDAsIDU2NTQxLCA1NjU0NSwgNTY1NTAsIDU2NTU1LCAKLSAgICA1NjU2MCwgNTY1NjUsIDU2NTc0LCA1NjU3OSwgNTY1ODQsIDU2NTg5LCA1NjU5NCwgNTY1OTksIDU2NjA0LCA1NjYwOSwgCi0gICAgNTY2MTQsIDU2NjIxLCA1NjYyNiwgNTY2MzEsIDU2NjQwLCA1NjY0NywgNTY2NTIsIDU2NjU3LCA1NjY2MiwgNTY2NjksIAotICAgIDU2Njc0LCA1NjY4MSwgNTY2ODYsIDU2NjkxLCA1NjY5OCwgNTY3MDUsIDU2NzEwLCA1NjcxNSwgNTY3MjAsIDU2NzI3LCAKLSAgICA1NjczNCwgNTY3MzksIDU2NzQ0LCA1Njc0OSwgNTY3NTQsIDU2NzU5LCA1Njc2NiwgNTY3NzMsIDU2Nzc4LCA1Njc4MywgCi0gICAgNTY3ODgsIDU2NzkzLCA1Njc5OCwgNTY4MDMsIDU2ODA4LCA1NjgxMywgNTY4MTgsIDU2ODIzLCA1NjgyOCwgNTY4MzUsIAotICAgIDU2ODQwLCA1Njg0NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTY4NTAsIDU2ODU3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCA1Njg2MiwgNTY4NjcsIDU2ODcxLCA1Njg3NSwgNTY4NzksIDU2ODgzLCA1Njg4NywgNTY4OTEsIAotICAgIDU2ODk1LCA1Njg5OSwgNTY5MDMsIDU2OTA3LCA1NjkxMywgNTY5MTcsIDU2OTIxLCA1NjkyNSwgNTY5MjksIDU2OTMzLCAKLSAgICA1NjkzNywgNTY5NDEsIDU2OTQ1LCA1Njk0OSwgNTY5NTMsIDU2OTU3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA1Njk2MSwgNTY5NjUsIDU2OTY5LCA1Njk3MywgNTY5NzcsIDU2OTgxLCA1Njk4NSwgMCwgNTY5ODksIDU2OTkzLCA1Njk5NywgCi0gICAgNTcwMDEsIDU3MDA1LCA1NzAwOSwgNTcwMTMsIDAsIDU3MDE3LCA1NzAyMSwgNTcwMjUsIDU3MDI5LCA1NzAzMywgNTcwMzcsIAotICAgIDU3MDQxLCAwLCA1NzA0NSwgNTcwNDksIDU3MDUzLCA1NzA1NywgNTcwNjEsIDU3MDY1LCA1NzA2OSwgMCwgNTcwNzMsIAotICAgIDU3MDc3LCA1NzA4MSwgNTcwODUsIDU3MDg5LCA1NzA5MywgNTcwOTcsIDAsIDU3MTAxLCA1NzEwNSwgNTcxMDksIDU3MTEzLCAKLSAgICA1NzExNywgNTcxMjEsIDU3MTI1LCAwLCA1NzEyOSwgNTcxMzMsIDU3MTM3LCA1NzE0MSwgNTcxNDUsIDU3MTQ5LCA1NzE1MywgCi0gICAgMCwgNTcxNTcsIDU3MTYxLCA1NzE2NSwgNTcxNjksIDU3MTczLCA1NzE3NywgNTcxODEsIDAsIDU3MTg1LCA1NzE5MCwgCi0gICAgNTcxOTUsIDU3MjAwLCA1NzIwNSwgNTcyMTAsIDU3MjE1LCA1NzIxOSwgNTcyMjQsIDU3MjI5LCA1NzIzNCwgNTcyMzgsIAotICAgIDU3MjQzLCA1NzI0OCwgNTcyNTMsIDU3MjU4LCA1NzI2MiwgNTcyNjcsIDU3MjcyLCA1NzI3NywgNTcyODIsIDU3Mjg3LCAKLSAgICA1NzI5MiwgNTcyOTYsIDU3MzAxLCA1NzMwNiwgNTczMTMsIDU3MzE4LCA1NzMyMywgNTczMjksIDU3MzM2LCA1NzM0MywgCi0gICAgNTczNTIsIDU3MzU5LCA1NzM2OCwgNTczNzIsIDU3Mzc2LCA1NzM4MiwgNTczODgsIDU3Mzk0LCA1NzQwMiwgNTc0MDgsIAotICAgIDU3NDEyLCA1NzQxNiwgNTc0MjAsIDU3NDI2LCA1NzQzMiwgNTc0MzYsIDU3NDM4LCA1NzQ0MiwgNTc0NDgsIDU3NDUwLCAKLSAgICA1NzQ1NCwgNTc0NTgsIDU3NDYyLCA1NzQ2OCwgNTc0NzMsIDU3NDc3LCA1NzQ4MSwgNTc0ODYsIDU3NDkyLCA1NzQ5NywgCi0gICAgNTc1MDIsIDU3NTA3LCA1NzUxMiwgNTc1MTksIDU3NTI2LCA1NzUzMSwgNTc1MzYsIDU3NTQxLCA1NzU0NiwgNTc1NTEsIAotICAgIDU3NTU2LCA1NzU2MCwgNTc1NjQsIDU3NTcxLCA1NzU3OCwgNTc1ODQsIDU3NTg4LCA1NzU5MywgNTc1OTUsIDU3NTk5LCAKLSAgICA1NzYwNywgNTc2MTEsIDU3NjE1LCA1NzYxOSwgNTc2MjMsIDU3NjI5LCA1NzYzNSwgNTc2MzksIDU3NjQ1LCA1NzY0OSwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgNTQ4NTIsIDU0ODU3LCA1NDg2MiwgNTQ4NjcsIDU0ODcyLCA1NDg3NywgNTQ4ODIsIDU0ODg3LCAKKyAgICA1NDg5MiwgNTQ4OTcsIDU0OTAyLCA1NDkwOCwgNTQ5MTIsIDU0OTE3LCA1NDkyMiwgNTQ5MjcsIDU0OTMyLCA1NDkzNywgCisgICAgNTQ5NDIsIDU0OTQ3LCA1NDk1MiwgNTQ5NTcsIDU0OTYyLCA1NDk2NywgNTQ5NzIsIDU0OTc3LCA1NDk4MiwgNTQ5ODcsIAorICAgIDU0OTkyLCA1NDk5NywgNTUwMDIsIDU1MDA3LCA1NTAxMiwgNTUwMTcsIDU1MDIyLCA1NTAyOCwgNTUwMzMsIDU1MDM5LCAKKyAgICA1NTA0OCwgNTUwNTMsIDU1MDYxLCA1NTA2OCwgNTUwNzcsIDU1MDgyLCA1NTA4NywgNTUwOTIsIDU1MDk4LCAwLCA1NTEwNSwgCisgICAgNTUxMTAsIDU1MTE1LCA1NTEyMCwgNTUxMjUsIDU1MTMwLCA1NTEzNSwgNTUxNDAsIDU1MTQ1LCA1NTE1MCwgNTUxNTUsIAorICAgIDU1MTYxLCA1NTE2NSwgNTUxNzAsIDU1MTc1LCA1NTE4MCwgNTUxODUsIDU1MTkwLCA1NTE5NSwgNTUyMDAsIDU1MjA1LCAKKyAgICA1NTIxMCwgNTUyMTUsIDU1MjIwLCA1NTIyNSwgNTUyMzAsIDU1MjM1LCA1NTI0MCwgNTUyNDUsIDU1MjUwLCA1NTI1NSwgCisgICAgNTUyNjAsIDU1MjY1LCA1NTI3MCwgNTUyNzUsIDU1MjgxLCA1NTI4NiwgNTUyOTIsIDU1MzAxLCA1NTMwNiwgNTUzMTQsIAorICAgIDU1MzIxLCA1NTMzMCwgNTUzMzUsIDU1MzQwLCA1NTM0NSwgNTUzNTEsIDAsIDU1MzU4LCA1NTM2NiwgNTUzNzQsIDU1MzgzLCAKKyAgICA1NTM5MCwgNTUzOTgsIDU1NDA0LCA1NTQxMywgNTU0MjEsIDU1NDI5LCA1NTQzNywgNTU0NDUsIDU1NDUzLCA1NTQ2MSwgCisgICAgNTU0NjYsIDU1NDczLCA1NTQ3OSwgNTU0ODYsIDU1NDk0LCA1NTUwMSwgNTU1MDgsIDU1NTE2LCA1NTUyMiwgNTU1MjgsIAorICAgIDU1NTM1LCA1NTU0MiwgNTU1NTIsIDU1NTYyLCA1NTU2OSwgNTU1NzYsIDU1NTgxLCA1NTU5MSwgNTU2MDEsIDU1NjA2LCAKKyAgICA1NTYxMSwgNTU2MTYsIDU1NjIxLCA1NTYyNiwgNTU2MzEsIDU1NjM2LCA1NTY0MSwgNTU2NDYsIDU1NjUxLCA1NTY1NiwgCisgICAgNTU2NjEsIDU1NjY2LCA1NTY3MSwgNTU2NzYsIDU1NjgxLCA1NTY4NiwgNTU2OTEsIDU1Njk2LCA1NTcwMSwgNTU3MDYsIAorICAgIDU1NzExLCA1NTcxNiwgNTU3MjEsIDU1NzI2LCA1NTczMSwgNTU3MzYsIDU1NzQxLCA1NTc0NiwgNTU3NTEsIDU1NzU1LCAKKyAgICA1NTc1OSwgNTU3NjQsIDU1NzY5LCA1NTc3NCwgNTU3NzksIDU1Nzg0LCA1NTc4OSwgNTU3OTQsIDU1Nzk5LCA1NTgwNCwgCisgICAgNTU4MDksIDU1ODE0LCA1NTgxOSwgNTU4MjQsIDU1ODI5LCA1NTgzNCwgNTU4MzksIDU1ODQ0LCA1NTg0OSwgNTU4NTYsIAorICAgIDU1ODYzLCA1NTg3MCwgNTU4NzcsIDU1ODg0LCA1NTg5MSwgNTU4OTgsIDU1OTA1LCA1NTkxMiwgNTU5MTksIDU1OTI2LCAKKyAgICA1NTkzMywgNTU5NDAsIDU1OTQ3LCA1NTk1MiwgNTU5NTcsIDU1OTY0LCA1NTk3MSwgNTU5NzgsIDU1OTg1LCA1NTk5MiwgCisgICAgNTU5OTksIDU2MDA2LCA1NjAxMywgNTYwMjAsIDU2MDI3LCA1NjAzNCwgNTYwNDEsIDU2MDQ3LCA1NjA1MywgNTYwNTksIAorICAgIDU2MDY1LCA1NjA3MiwgNTYwNzksIDU2MDg2LCA1NjA5MywgNTYxMDAsIDU2MTA3LCA1NjExNCwgNTYxMjEsIDU2MTI4LCAKKyAgICA1NjEzNSwgNTYxNDMsIDU2MTUxLCA1NjE1OSwgNTYxNjcsIDU2MTc1LCA1NjE4MywgNTYxOTEsIDU2MTk5LCA1NjIwMywgCisgICAgNTYyMDksIDU2MjE1LCA1NjIxOSwgNTYyMjUsIDU2MjMxLCA1NjIzNywgNTYyNDQsIDU2MjUxLCA1NjI1OCwgNTYyNjUsIAorICAgIDU2MjcwLCA1NjI3NiwgNTYyODIsIDU2Mjg5LCAwLCAwLCAwLCAwLCAwLCA1NjI5NiwgNTYzMDQsIDU2MzEzLCA1NjMyMiwgCisgICAgNTYzMzAsIDU2MzM2LCA1NjM0MSwgNTYzNDYsIDU2MzUxLCA1NjM1NiwgNTYzNjEsIDU2MzY2LCA1NjM3MSwgNTYzNzYsIAorICAgIDU2MzgxLCA1NjM4NiwgNTYzOTEsIDU2Mzk2LCA1NjQwMSwgNTY0MDYsIDU2NDExLCA1NjQxNiwgNTY0MjEsIDU2NDI2LCAKKyAgICA1NjQzMSwgNTY0MzYsIDU2NDQxLCA1NjQ0NiwgNTY0NTEsIDU2NDU2LCA1NjQ2MSwgNTY0NjYsIDU2NDcxLCA1NjQ3NiwgCisgICAgNTY0ODEsIDU2NDg2LCA1NjQ5MSwgNTY0OTYsIDU2NTAxLCA1NjUwNiwgNTY1MTEsIDU2NTE2LCA1NjUyMSwgNTY1MjYsIAorICAgIDU2NTMxLCAwLCA1NjUzNiwgMCwgMCwgMCwgMCwgMCwgNTY1NDEsIDAsIDAsIDU2NTQ2LCA1NjU1MCwgNTY1NTUsIDU2NTYwLCAKKyAgICA1NjU2NSwgNTY1NzAsIDU2NTc5LCA1NjU4NCwgNTY1ODksIDU2NTk0LCA1NjU5OSwgNTY2MDQsIDU2NjA5LCA1NjYxNCwgCisgICAgNTY2MTksIDU2NjI2LCA1NjYzMSwgNTY2MzYsIDU2NjQ1LCA1NjY1MiwgNTY2NTcsIDU2NjYyLCA1NjY2NywgNTY2NzQsIAorICAgIDU2Njc5LCA1NjY4NiwgNTY2OTEsIDU2Njk2LCA1NjcwMywgNTY3MTAsIDU2NzE1LCA1NjcyMCwgNTY3MjUsIDU2NzMyLCAKKyAgICA1NjczOSwgNTY3NDQsIDU2NzQ5LCA1Njc1NCwgNTY3NTksIDU2NzY0LCA1Njc3MSwgNTY3NzgsIDU2NzgzLCA1Njc4OCwgCisgICAgNTY3OTMsIDU2Nzk4LCA1NjgwMywgNTY4MDgsIDU2ODEzLCA1NjgxOCwgNTY4MjMsIDU2ODI4LCA1NjgzMywgNTY4NDAsIAorICAgIDU2ODQ1LCA1Njg1MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTY4NTUsIDU2ODYyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCA1Njg2NywgNTY4NzIsIDU2ODc2LCA1Njg4MCwgNTY4ODQsIDU2ODg4LCA1Njg5MiwgNTY4OTYsIAorICAgIDU2OTAwLCA1NjkwNCwgNTY5MDgsIDU2OTEyLCA1NjkxOCwgNTY5MjIsIDU2OTI2LCA1NjkzMCwgNTY5MzQsIDU2OTM4LCAKKyAgICA1Njk0MiwgNTY5NDYsIDU2OTUwLCA1Njk1NCwgNTY5NTgsIDU2OTYyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICA1Njk2NiwgNTY5NzAsIDU2OTc0LCA1Njk3OCwgNTY5ODIsIDU2OTg2LCA1Njk5MCwgMCwgNTY5OTQsIDU2OTk4LCA1NzAwMiwgCisgICAgNTcwMDYsIDU3MDEwLCA1NzAxNCwgNTcwMTgsIDAsIDU3MDIyLCA1NzAyNiwgNTcwMzAsIDU3MDM0LCA1NzAzOCwgNTcwNDIsIAorICAgIDU3MDQ2LCAwLCA1NzA1MCwgNTcwNTQsIDU3MDU4LCA1NzA2MiwgNTcwNjYsIDU3MDcwLCA1NzA3NCwgMCwgNTcwNzgsIAorICAgIDU3MDgyLCA1NzA4NiwgNTcwOTAsIDU3MDk0LCA1NzA5OCwgNTcxMDIsIDAsIDU3MTA2LCA1NzExMCwgNTcxMTQsIDU3MTE4LCAKKyAgICA1NzEyMiwgNTcxMjYsIDU3MTMwLCAwLCA1NzEzNCwgNTcxMzgsIDU3MTQyLCA1NzE0NiwgNTcxNTAsIDU3MTU0LCA1NzE1OCwgCisgICAgMCwgNTcxNjIsIDU3MTY2LCA1NzE3MCwgNTcxNzQsIDU3MTc4LCA1NzE4MiwgNTcxODYsIDAsIDU3MTkwLCA1NzE5NSwgCisgICAgNTcyMDAsIDU3MjA1LCA1NzIxMCwgNTcyMTUsIDU3MjIwLCA1NzIyNCwgNTcyMjksIDU3MjM0LCA1NzIzOSwgNTcyNDMsIAorICAgIDU3MjQ4LCA1NzI1MywgNTcyNTgsIDU3MjYzLCA1NzI2NywgNTcyNzIsIDU3Mjc3LCA1NzI4MiwgNTcyODcsIDU3MjkyLCAKKyAgICA1NzI5NywgNTczMDEsIDU3MzA2LCA1NzMxMSwgNTczMTgsIDU3MzIzLCA1NzMyOCwgNTczMzQsIDU3MzQxLCA1NzM0OCwgCisgICAgNTczNTcsIDU3MzY0LCA1NzM3MywgNTczNzcsIDU3MzgxLCA1NzM4NywgNTczOTMsIDU3Mzk5LCA1NzQwNywgNTc0MTMsIAorICAgIDU3NDE3LCA1NzQyMSwgNTc0MjUsIDU3NDMxLCA1NzQzNywgNTc0NDEsIDU3NDQzLCA1NzQ0NywgNTc0NTMsIDU3NDU1LCAKKyAgICA1NzQ1OSwgNTc0NjMsIDU3NDY3LCA1NzQ3MywgNTc0NzgsIDU3NDgyLCA1NzQ4NiwgNTc0OTEsIDU3NDk3LCA1NzUwMiwgCisgICAgNTc1MDcsIDU3NTEyLCA1NzUxNywgNTc1MjQsIDU3NTMxLCA1NzUzNiwgNTc1NDEsIDU3NTQ2LCA1NzU1MSwgNTc1NTYsIAorICAgIDU3NTYxLCA1NzU2NSwgNTc1NjksIDU3NTc2LCA1NzU4MywgNTc1ODksIDU3NTkzLCA1NzU5OCwgNTc2MDAsIDU3NjA0LCAKKyAgICA1NzYxMiwgNTc2MTYsIDU3NjIwLCA1NzYyNCwgNTc2MjgsIDU3NjM0LCA1NzY0MCwgNTc2NDQsIDU3NjUwLCA1NzY1NCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTc2NTMsIDU3NjU3LCAKLSAgICA1NzY2MSwgNTc2NjYsIDU3NjcxLCA1NzY3NiwgNTc2ODAsIDU3Njg0LCA1NzY4OCwgNTc2OTMsIDU3Njk4LCA1NzcwMiwgCi0gICAgNTc3MDYsIDU3NzEwLCA1NzcxNCwgNTc3MTksIDU3NzI0LCA1NzcyOSwgNTc3MzQsIDU3NzM4LCA1Nzc0MiwgNTc3NDcsIAotICAgIDU3NzUyLCA1Nzc1NywgNTc3NjIsIDU3NzY2LCAwLCA1Nzc3MCwgNTc3NzQsIDU3Nzc4LCA1Nzc4MiwgNTc3ODYsIDU3NzkwLCAKLSAgICA1Nzc5NCwgNTc3OTksIDU3ODA0LCA1NzgwOCwgNTc4MTMsIDU3ODE4LCA1NzgyNywgNTc4MzEsIDU3ODM1LCA1NzgzOSwgCi0gICAgNTc4NDYsIDU3ODUwLCA1Nzg1NSwgNTc4NjAsIDU3ODY0LCA1Nzg2OCwgNTc4NzQsIDU3ODc5LCA1Nzg4NCwgNTc4ODksIAotICAgIDU3ODk0LCA1Nzg5OCwgNTc5MDIsIDU3OTA2LCA1NzkxMCwgNTc5MTQsIDU3OTE5LCA1NzkyNCwgNTc5MjgsIDU3OTMyLCAKLSAgICA1NzkzNywgNTc5NDIsIDU3OTQ3LCA1Nzk1MSwgNTc5NTUsIDU3OTYwLCA1Nzk2NSwgNTc5NzEsIDU3OTc3LCA1Nzk4MSwgCi0gICAgNTc5ODcsIDU3OTkzLCA1Nzk5NywgNTgwMDMsIDU4MDA5LCA1ODAxNCwgNTgwMTksIDU4MDIzLCA1ODAyOSwgNTgwMzMsIAotICAgIDU4MDM3LCA1ODA0MywgNTgwNDksIDU4MDU0LCA1ODA1OSwgNTgwNjMsIDU4MDY3LCA1ODA3NSwgNTgwODEsIDU4MDg3LCAKLSAgICA1ODA5MywgNTgwOTgsIDU4MTAzLCA1ODEwOCwgNTgxMTQsIDU4MTE4LCA1ODEyNCwgNTgxMjgsIDU4MTMyLCA1ODEzOCwgCi0gICAgNTgxNDQsIDU4MTUwLCA1ODE1NiwgNTgxNjIsIDU4MTY4LCA1ODE3NCwgNTgxODAsIDU4MTg2LCA1ODE5MiwgNTgxOTgsIAotICAgIDU4MjA0LCA1ODIwOCwgNTgyMTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU4MjIwLCA1ODIyMywgCi0gICAgNTgyMjcsIDU4MjMxLCA1ODIzNSwgNTgyMzksIDU4MjQyLCA1ODI0NSwgNTgyNDksIDU4MjUzLCA1ODI1NywgNTgyNjEsIAotICAgIDU4MjY0LCA1ODI2OSwgNTgyNzMsIDU4Mjc3LCA1ODI4MSwgNTgyODYsIDU4MjkwLCA1ODI5NCwgNTgyOTgsIDU4MzAyLCAKLSAgICA1ODMwOCwgNTgzMTQsIDU4MzE4LCA1ODMyMiwgNTgzMjYsIDU4MzMwLCA1ODMzNCwgNTgzMzgsIDU4MzQyLCA1ODM0NiwgCi0gICAgNTgzNTAsIDU4MzU0LCA1ODM1OCwgNTgzNjQsIDU4MzY4LCA1ODM3MiwgNTgzNzYsIDU4MzgwLCA1ODM4NCwgNTgzODgsIAotICAgIDU4MzkyLCA1ODM5NiwgNTg0MDAsIDU4NDA0LCA1ODQwOCwgNTg0MTIsIDU4NDE2LCA1ODQyMCwgNTg0MjQsIDU4NDI4LCAKLSAgICA1ODQzNCwgNTg0NDAsIDU4NDQ1LCA1ODQ1MCwgNTg0NTQsIDU4NDU4LCA1ODQ2MiwgNTg0NjYsIDU4NDcwLCA1ODQ3NCwgCi0gICAgNTg0NzgsIDU4NDgyLCA1ODQ4NiwgNTg0OTAsIDU4NDk0LCA1ODQ5OCwgNTg1MDIsIDU4NTA2LCA1ODUxMCwgNTg1MTQsIAotICAgIDU4NTE4LCA1ODUyMiwgNTg1MjYsIDU4NTMwLCA1ODUzNCwgNTg1MzgsIDU4NTQyLCA1ODU0NiwgNTg1NTIsIDU4NTU2LCAKLSAgICA1ODU2MCwgNTg1NjQsIDU4NTY4LCA1ODU3MiwgNTg1NzYsIDU4NTgwLCA1ODU4NCwgNTg1ODksIDU4NTk2LCA1ODYwMCwgCi0gICAgNTg2MDQsIDU4NjA4LCA1ODYxMiwgNTg2MTYsIDU4NjIwLCA1ODYyNCwgNTg2MjgsIDU4NjMyLCA1ODYzNiwgNTg2NDAsIAotICAgIDU4NjQ0LCA1ODY1MSwgNTg2NTUsIDU4NjYxLCA1ODY2NSwgNTg2NjksIDU4NjczLCA1ODY3NywgNTg2ODEsIDU4Njg0LCAKLSAgICA1ODY4OCwgNTg2OTIsIDU4Njk2LCA1ODcwMCwgNTg3MDQsIDU4NzA4LCA1ODcxMiwgNTg3MTYsIDU4NzIwLCA1ODcyNCwgCi0gICAgNTg3MjgsIDU4NzMyLCA1ODczNiwgNTg3NDAsIDU4NzQ0LCA1ODc0OCwgNTg3NTIsIDU4NzU2LCA1ODc2MCwgNTg3NjQsIAotICAgIDU4NzY4LCA1ODc3MiwgNTg3NzYsIDU4NzgwLCA1ODc4NCwgNTg3ODgsIDU4NzkyLCA1ODc5NiwgNTg4MDAsIDU4ODA0LCAKLSAgICA1ODgwOCwgNTg4MTIsIDU4ODE4LCA1ODgyMiwgNTg4MjYsIDU4ODMwLCA1ODgzNCwgNTg4MzgsIDU4ODQyLCA1ODg0NiwgCi0gICAgNTg4NTAsIDU4ODU0LCA1ODg1OCwgNTg4NjIsIDU4ODY2LCA1ODg3MCwgNTg4NzQsIDU4ODc4LCA1ODg4MiwgNTg4ODYsIAotICAgIDU4ODkwLCA1ODg5NCwgNTg4OTgsIDU4OTAyLCA1ODkwNiwgNTg5MTAsIDU4OTE0LCA1ODkxOCwgNTg5MjIsIDU4OTI2LCAKLSAgICA1ODkzNCwgNTg5MzgsIDU4OTQyLCA1ODk0NiwgNTg5NTAsIDU4OTU0LCA1ODk2MCwgNTg5NjQsIDU4OTY4LCA1ODk3MiwgCi0gICAgNTg5NzYsIDU4OTgwLCA1ODk4NCwgNTg5ODgsIDU4OTkyLCA1ODk5NiwgNTkwMDAsIDU5MDA0LCA1OTAwOCwgNTkwMTIsIAotICAgIDU5MDE4LCA1OTAyMiwgNTkwMjYsIDU5MDMwLCA1OTAzNCwgNTkwMzgsIDU5MDQyLCA1OTA0NiwgNTkwNTAsIDU5MDU0LCAKLSAgICA1OTA1OCwgNTkwNjIsIDU5MDY2LCA1OTA3MCwgNTkwNzQsIDU5MDc4LCA1OTA4MiwgNTkwODYsIDU5MDkwLCA1OTA5NCwgCi0gICAgNTkwOTgsIDU5MTAyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCA1OTEwNiwgNTkxMTUsIDU5MTIzLCA1OTEzNSwgNTkxNDYsIDU5MTU0LCA1OTE2MywgNTkxNzIsIAotICAgIDU5MTgyLCA1OTE5NCwgNTkyMDYsIDU5MjE4LCAwLCAwLCAwLCAwLCA1OTIyNCwgNTkyMjcsIDU5MjMwLCA1OTIzNSwgCi0gICAgNTkyMzgsIDU5MjQ1LCA1OTI0OSwgNTkyNTMsIDU5MjU3LCA1OTI2MSwgNTkyNjUsIDU5MjcwLCA1OTI3NSwgNTkyNzksIAotICAgIDU5MjgzLCA1OTI4OCwgNTkyOTMsIDU5Mjk4LCA1OTMwMywgNTkzMDYsIDU5MzA5LCA1OTMxNSwgNTkzMjEsIDU5MzI2LCAKLSAgICA1OTMzMSwgNTkzMzgsIDU5MzQ1LCA1OTM0OSwgNTkzNTMsIDU5MzU3LCA1OTM2NSwgNTkzNzEsIDU5Mzc4LCA1OTM4MywgCi0gICAgNTkzODgsIDU5MzkzLCA1OTM5OCwgNTk0MDMsIDU5NDA4LCA1OTQxMywgNTk0MTgsIDU5NDIzLCA1OTQyOCwgNTk0MzMsIAotICAgIDU5NDM4LCA1OTQ0MywgNTk0NDgsIDU5NDU0LCA1OTQ1OSwgNTk0NjMsIDU5NDY5LCA1OTQ4MCwgNTk0OTAsIDU5NTA1LCAKLSAgICA1OTUxNSwgNTk1MTksIDU5NTI5LCA1OTUzNSwgNTk1NDEsIDU5NTQ3LCA1OTU1MiwgNTk1NTUsIDU5NTYwLCA1OTU2NCwgMCwgCi0gICAgNTk1NzAsIDU5NTc0LCA1OTU3NywgNTk1ODEsIDU5NTg0LCA1OTU4OCwgNTk1OTEsIDU5NTk1LCA1OTU5OCwgNTk2MDIsIAotICAgIDU5NjA1LCA1OTYwOCwgNTk2MTIsIDU5NjE2LCA1OTYyMCwgNTk2MjQsIDU5NjI4LCA1OTYzMiwgNTk2MzYsIDU5NjQwLCAKLSAgICA1OTY0NCwgNTk2NDcsIDU5NjUxLCA1OTY1NSwgNTk2NTksIDU5NjYzLCA1OTY2NywgNTk2NzEsIDU5Njc1LCA1OTY3OSwgCi0gICAgNTk2ODMsIDU5Njg3LCA1OTY5MSwgNTk2OTUsIDU5Njk5LCA1OTcwNCwgNTk3MDgsIDU5NzEyLCA1OTcxNiwgNTk3MjAsIAotICAgIDU5NzIzLCA1OTcyNywgNTk3MzAsIDU5NzM0LCA1OTczOCwgNTk3NDIsIDU5NzQ2LCA1OTc0OSwgNTk3NTMsIDU5NzU2LCAKLSAgICA1OTc2MCwgNTk3NjQsIDU5NzY4LCA1OTc3MiwgNTk3NzYsIDU5NzgwLCA1OTc4NCwgNTk3ODgsIDU5NzkyLCA1OTc5NiwgCi0gICAgNTk4MDAsIDU5ODA0LCA1OTgwNywgNTk4MTEsIDU5ODE1LCA1OTgxOSwgNTk4MjMsIDU5ODI3LCA1OTgzMCwgNTk4MzUsIAotICAgIDU5ODM5LCA1OTg0NCwgNTk4NDgsIDU5ODUxLCA1OTg1NSwgNTk4NTksIDU5ODYzLCA1OTg2NywgNTk4NzIsIDU5ODc2LCAKLSAgICA1OTg4MCwgNTk4ODQsIDU5ODg4LCA1OTg5MiwgNTk4OTYsIDU5OTAwLCAwLCAwLCA1OTkwNSwgNTk5MTMsIDU5OTIxLCAKLSAgICA1OTkyOCwgNTk5MzUsIDU5OTM5LCA1OTk0NSwgNTk5NTAsIDU5OTU1LCA1OTk1OSwgNTk5NjIsIDU5OTY2LCA1OTk2OSwgCi0gICAgNTk5NzMsIDU5OTc2LCA1OTk4MCwgNTk5ODMsIDU5OTg3LCA1OTk5MCwgNTk5OTMsIDU5OTk3LCA2MDAwMSwgNjAwMDUsIAotICAgIDYwMDA5LCA2MDAxMywgNjAwMTcsIDYwMDIxLCA2MDAyNSwgNjAwMjksIDYwMDMyLCA2MDAzNiwgNjAwNDAsIDYwMDQ0LCAKLSAgICA2MDA0OCwgNjAwNTIsIDYwMDU2LCA2MDA2MCwgNjAwNjQsIDYwMDY4LCA2MDA3MiwgNjAwNzYsIDYwMDgwLCA2MDA4NCwgCi0gICAgNjAwODksIDYwMDkzLCA2MDA5NywgNjAxMDEsIDYwMTA1LCA2MDEwOCwgNjAxMTIsIDYwMTE1LCA2MDExOSwgNjAxMjMsIAotICAgIDYwMTI3LCA2MDEzMSwgNjAxMzQsIDYwMTM4LCA2MDE0MSwgNjAxNDUsIDYwMTQ5LCA2MDE1MywgNjAxNTcsIDYwMTYxLCAKLSAgICA2MDE2NSwgNjAxNjksIDYwMTczLCA2MDE3NywgNjAxODEsIDYwMTg1LCA2MDE4OSwgNjAxOTIsIDYwMTk2LCA2MDIwMCwgCi0gICAgNjAyMDQsIDYwMjA4LCA2MDIxMiwgNjAyMTUsIDYwMjIwLCA2MDIyNCwgNjAyMjksIDYwMjMzLCA2MDIzNiwgNjAyNDAsIAotICAgIDYwMjQ0LCA2MDI0OCwgNjAyNTIsIDYwMjU3LCA2MDI2MSwgNjAyNjUsIDYwMjY5LCA2MDI3MywgNjAyNzcsIDYwMjgxLCAKLSAgICA2MDI4NSwgNjAyOTAsIDYwMjk0LCA2MDI5OCwgNjAzMDIsIDYwMzA2LCA2MDMxMSwgNjAzMTgsIDYwMzIyLCA2MDMyOCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgNjAzMzMsIDYwMzM4LCA2MDM0MywgNjAzNDcsIDYwMzUyLCA2MDM1NywgNjAzNjIsIDYwMzY3LCAKLSAgICA2MDM3MSwgNjAzNzYsIDYwMzgxLCA2MDM4NiwgNjAzOTEsIDYwMzk2LCA2MDQwMSwgNjA0MDYsIDYwNDExLCA2MDQxNiwgCi0gICAgNjA0MjAsIDYwNDI1LCA2MDQzMCwgNjA0MzUsIDYwNDM5LCA2MDQ0MywgNjA0NDcsIDYwNDUyLCA2MDQ1NywgNjA0NjIsIAotICAgIDYwNDY3LCA2MDQ3MiwgNjA0NzcsIDYwNDgyLCA2MDQ4NywgNjA0OTIsIDYwNDk3LCA2MDUwMSwgNjA1MDUsIDYwNTEwLCAKLSAgICA2MDUxNSwgNjA1MjAsIDYwNTI1LCAwLCAwLCAwLCA2MDUzMCwgNjA1MzQsIDYwNTM4LCA2MDU0MiwgNjA1NDYsIDYwNTUwLCAKLSAgICA2MDU1NCwgNjA1NTgsIDYwNTYyLCA2MDU2NiwgNjA1NzAsIDYwNTc0LCA2MDU3OCwgNjA1ODIsIDYwNTg2LCA2MDU5MCwgCi0gICAgNjA1OTQsIDYwNTk4LCA2MDYwMiwgNjA2MDYsIDYwNjEwLCA2MDYxNCwgNjA2MTgsIDYwNjIyLCA2MDYyNiwgNjA2MzAsIAotICAgIDYwNjM0LCA2MDYzOCwgNjA2NDIsIDYwNjQ2LCA2MDY1MCwgNjA2NTMsIDYwNjU3LCA2MDY2MCwgNjA2NjQsIDYwNjY4LCAKLSAgICA2MDY3MSwgNjA2NzUsIDYwNjc5LCA2MDY4MiwgNjA2ODYsIDYwNjkwLCA2MDY5NCwgNjA2OTgsIDYwNzAxLCA2MDcwNSwgCi0gICAgNjA3MDksIDYwNzEzLCA2MDcxNywgNjA3MjEsIDYwNzI1LCA2MDcyOCwgNjA3MzEsIDYwNzM1LCA2MDczOSwgNjA3NDMsIAotICAgIDYwNzQ3LCA2MDc1MSwgNjA3NTUsIDYwNzU5LCA2MDc2MywgNjA3NjcsIDYwNzcxLCA2MDc3NSwgNjA3NzksIDYwNzgzLCAKLSAgICA2MDc4NywgNjA3OTEsIDYwNzk1LCA2MDc5OSwgNjA4MDMsIDYwODA3LCA2MDgxMSwgNjA4MTUsIDYwODE5LCA2MDgyMywgCi0gICAgNjA4MjcsIDYwODMxLCA2MDgzNSwgNjA4MzksIDYwODQzLCA2MDg0NywgNjA4NTEsIDYwODU1LCA2MDg1OSwgNjA4NjMsIAotICAgIDYwODY3LCA2MDg3MSwgNjA4NzUsIDYwODc5LCA2MDg4MywgNjA4ODcsIDYwODkxLCA2MDg5NSwgMCwgNjA4OTksIDYwOTA1LCAKLSAgICA2MDkxMSwgNjA5MTYsIDYwOTIxLCA2MDkyNiwgNjA5MzIsIDYwOTM4LCA2MDk0NCwgNjA5NTAsIDYwOTU2LCA2MDk2MiwgCi0gICAgNjA5NjgsIDYwOTc0LCA2MDk4MCwgNjA5ODYsIDYwOTkyLCA2MDk5NywgNjEwMDIsIDYxMDA3LCA2MTAxMiwgNjEwMTcsIAotICAgIDYxMDIyLCA2MTAyNywgNjEwMzIsIDYxMDM3LCA2MTA0MiwgNjEwNDcsIDYxMDUyLCA2MTA1NywgNjEwNjIsIDYxMDY3LCAKLSAgICA2MTA3MiwgNjEwNzcsIDYxMDgyLCA2MTA4NywgNjEwOTIsIDYxMDk4LCA2MTEwNCwgNjExMTAsIDYxMTE2LCA2MTEyMSwgCi0gICAgNjExMjYsIDAsIDAsIDAsIDAsIDAsIDYxMTMxLCA2MTEzNiwgNjExNDEsIDYxMTQ2LCA2MTE1MSwgNjExNTYsIDYxMTYxLCAKLSAgICA2MTE2NiwgNjExNzEsIDYxMTc2LCA2MTE4MSwgNjExODYsIDYxMTkxLCA2MTE5NiwgNjEyMDEsIDYxMjA2LCA2MTIxMSwgCi0gICAgNjEyMTYsIDYxMjIxLCA2MTIyNiwgNjEyMzEsIDYxMjM2LCA2MTI0MSwgNjEyNDYsIDYxMjUxLCA2MTI1NiwgNjEyNjEsIAotICAgIDYxMjY2LCA2MTI3MSwgNjEyNzYsIDYxMjgxLCA2MTI4NiwgNjEyOTEsIDYxMjk2LCA2MTMwMSwgNjEzMDYsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYxMzExLCA2MTMxNiwgNjEzMjEsIDYxMzI2LCA2MTMzMCwgNjEzMzUsIAotICAgIDYxMzM5LCA2MTM0NCwgNjEzNDksIDYxMzU0LCA2MTM1OSwgNjEzNjQsIDYxMzY4LCA2MTM3MywgNjEzNzgsIDYxMzgzLCAKLSAgICA2MTM4OCwgNjEzOTIsIDYxMzk2LCA2MTQwMCwgNjE0MDQsIDYxNDA4LCA2MTQxMiwgNjE0MTYsIDYxNDIwLCA2MTQyNCwgCi0gICAgNjE0MjgsIDYxNDMyLCA2MTQzNiwgNjE0NDAsIDYxNDQ0LCA2MTQ0OSwgNjE0NTQsIDYxNDU5LCA2MTQ2NCwgNjE0NjksIAotICAgIDYxNDc0LCA2MTQ3OSwgNjE0ODQsIDYxNDg5LCA2MTQ5NCwgNjE0OTksIDYxNTA0LCA2MTUwOSwgNjE1MTQsIDYxNTE5LCAKLSAgICA2MTUyNSwgMCwgNjE1MzIsIDYxNTM1LCA2MTUzOCwgNjE1NDEsIDYxNTQ0LCA2MTU0NywgNjE1NTAsIDYxNTUzLCA2MTU1NiwgCi0gICAgNjE1NTksIDYxNTYzLCA2MTU2NywgNjE1NzEsIDYxNTc1LCA2MTU3OSwgNjE1ODMsIDYxNTg3LCA2MTU5MSwgNjE1OTUsIAotICAgIDYxNTk5LCA2MTYwMywgNjE2MDcsIDYxNjExLCA2MTYxNSwgNjE2MTksIDYxNjIzLCA2MTYyNywgNjE2MzEsIDYxNjM1LCAKLSAgICA2MTYzOSwgNjE2NDMsIDYxNjQ3LCA2MTY1MSwgNjE2NTUsIDYxNjU5LCA2MTY2MywgNjE2NjcsIDYxNjcxLCA2MTY3NSwgCi0gICAgNjE2NzksIDYxNjgzLCA2MTY5MiwgNjE3MDEsIDYxNzEwLCA2MTcxOSwgNjE3MjgsIDYxNzM3LCA2MTc0NiwgNjE3NTUsIAotICAgIDYxNzU4LCA2MTc2MywgNjE3NjgsIDYxNzczLCA2MTc3OCwgNjE3ODMsIDYxNzg4LCA2MTc5MywgNjE3OTgsIDYxODAzLCAKLSAgICA2MTgwNywgNjE4MTIsIDYxODE3LCA2MTgyMiwgNjE4MjcsIDYxODMyLCA2MTgzNiwgNjE4NDAsIDYxODQ0LCA2MTg0OCwgCi0gICAgNjE4NTIsIDYxODU2LCA2MTg2MCwgNjE4NjQsIDYxODY4LCA2MTg3MiwgNjE4NzYsIDYxODgwLCA2MTg4NCwgNjE4ODgsIAotICAgIDYxODkzLCA2MTg5OCwgNjE5MDMsIDYxOTA4LCA2MTkxMywgNjE5MTgsIDYxOTIzLCA2MTkyOCwgNjE5MzMsIDYxOTM4LCAKLSAgICA2MTk0MywgNjE5NDgsIDYxOTUzLCA2MTk1OCwgNjE5NjQsIDYxOTcwLCA2MTk3NSwgNjE5ODAsIDYxOTgzLCA2MTk4NiwgCi0gICAgNjE5ODksIDYxOTkyLCA2MTk5NSwgNjE5OTgsIDYyMDAxLCA2MjAwNCwgNjIwMDcsIDYyMDExLCA2MjAxNSwgNjIwMTksIAotICAgIDYyMDIzLCA2MjAyNywgNjIwMzEsIDYyMDM1LCA2MjAzOSwgNjIwNDMsIDYyMDQ3LCA2MjA1MSwgNjIwNTUsIDYyMDU5LCAKLSAgICA2MjA2MywgNjIwNjcsIDYyMDcxLCA2MjA3NSwgNjIwNzksIDYyMDgzLCA2MjA4NywgNjIwOTEsIDYyMDk1LCA2MjA5OSwgCi0gICAgNjIxMDMsIDYyMTA3LCA2MjExMSwgNjIxMTUsIDYyMTE5LCA2MjEyMywgNjIxMjcsIDYyMTMxLCA2MjEzNSwgNjIxMzksIAotICAgIDYyMTQzLCA2MjE0NywgNjIxNTEsIDYyMTU1LCA2MjE1OSwgNjIxNjMsIDYyMTY3LCA2MjE3MiwgNjIxNzcsIDYyMTgyLCAKLSAgICA2MjE4NywgNjIxOTEsIDYyMTk2LCA2MjIwMSwgNjIyMDYsIDYyMjExLCA2MjIxNiwgNjIyMjEsIDYyMjI2LCA2MjIzMSwgCi0gICAgNjIyMzYsIDYyMjQwLCA2MjI0NywgNjIyNTQsIDYyMjYxLCA2MjI2OCwgNjIyNzUsIDYyMjgyLCA2MjI4OSwgNjIyOTYsIAotICAgIDYyMzAzLCA2MjMxMCwgNjIzMTcsIDYyMzI0LCA2MjMyNywgNjIzMzAsIDYyMzMzLCA2MjMzOCwgNjIzNDEsIDYyMzQ0LCAKLSAgICA2MjM0NywgNjIzNTAsIDYyMzUzLCA2MjM1NiwgNjIzNjAsIDYyMzY0LCA2MjM2OCwgNjIzNzIsIDYyMzc1LCA2MjM3OSwgCi0gICAgNjIzODMsIDYyMzg3LCA2MjM5MSwgNjIzOTUsIDYyMzk5LCA2MjQwMywgNjI0MDcsIDYyNDEwLCA2MjQxMywgNjI0MTcsIAotICAgIDYyNDIxLCA2MjQyNSwgNjI0MjksIDYyNDMyLCA2MjQzNiwgNjI0NDAsIDYyNDQ0LCA2MjQ0OCwgNjI0NTEsIDYyNDU1LCAKLSAgICA2MjQ1OSwgNjI0NjMsIDYyNDY3LCA2MjQ3MCwgNjI0NzQsIDYyNDc4LCA2MjQ4MSwgNjI0ODUsIDYyNDg5LCA2MjQ5MywgCi0gICAgNjI0OTcsIDYyNTAxLCA2MjUwNSwgNjI1MDksIDAsIDYyNTEzLCA2MjUxNiwgNjI1MTksIDYyNTIyLCA2MjUyNSwgNjI1MjgsIAotICAgIDYyNTMxLCA2MjUzNCwgNjI1MzcsIDYyNTQwLCA2MjU0MywgNjI1NDYsIDYyNTQ5LCA2MjU1MiwgNjI1NTUsIDYyNTU4LCAKLSAgICA2MjU2MSwgNjI1NjQsIDYyNTY3LCA2MjU3MCwgNjI1NzMsIDYyNTc2LCA2MjU3OSwgNjI1ODIsIDYyNTg1LCA2MjU4OCwgCi0gICAgNjI1OTEsIDYyNTk0LCA2MjU5NywgNjI2MDAsIDYyNjAzLCA2MjYwNiwgNjI2MDksIDYyNjEyLCA2MjYxNSwgNjI2MTgsIAotICAgIDYyNjIxLCA2MjYyNCwgNjI2MjcsIDYyNjMwLCA2MjYzMywgNjI2MzYsIDYyNjM5LCA2MjY0MiwgNjI2NDUsIDYyNjQ4LCAKLSAgICA2MjY1MSwgNjI2NTQsIDYyNjU3LCA2MjY2MCwgNjI2NjMsIDYyNjY2LCA2MjY2OSwgNjI2NzIsIDYyNjc1LCA2MjY3OCwgCi0gICAgNjI2ODEsIDYyNjg0LCA2MjY4NywgNjI2OTAsIDYyNjkzLCA2MjY5NiwgNjI2OTksIDYyNzAyLCA2MjcwNSwgNjI3MDgsIAotICAgIDYyNzExLCA2MjcxNCwgNjI3MTcsIDYyNzIwLCA2MjcyMywgNjI3MjYsIDYyNzI5LCA2MjczMiwgNjI3MzUsIDYyNzM4LCAKLSAgICA2Mjc0MSwgNjI3NDQsIDYyNzQ3LCA2Mjc1MCwgNjI3NTMsIDYyNzU2LCA2Mjc1OSwgNjI3NjIsIDYyNzY1LCA2Mjc2OCwgCi0gICAgNjI3NzEsIDYyNzc0LCA2Mjc3NywgNjI3ODYsIDYyNzk0LCA2MjgwMiwgNjI4MTAsIDYyODE4LCA2MjgyNiwgNjI4MzQsIAotICAgIDYyODQyLCA2Mjg1MCwgNjI4NTgsIDYyODY3LCA2Mjg3NiwgNjI4ODUsIDYyODk0LCA2MjkwMywgNjI5MTIsIDYyOTIxLCAKLSAgICA2MjkzMCwgNjI5MzksIDYyOTQ4LCA2Mjk1NywgNjI5NjYsIDYyOTc1LCA2Mjk4NCwgNjI5OTMsIDYyOTk2LCA2Mjk5OSwgCi0gICAgNjMwMDIsIDYzMDA0LCA2MzAwNywgNjMwMTAsIDYzMDEzLCA2MzAxOCwgNjMwMjMsIDYzMDI2LCA2MzAzMywgNjMwNDAsIAotICAgIDYzMDQ3LCA2MzA1NCwgNjMwNTcsIDYzMDYyLCA2MzA2NCwgNjMwNjgsIDYzMDcwLCA2MzA3MiwgNjMwNzUsIDYzMDc4LCAKLSAgICA2MzA4MSwgNjMwODQsIDYzMDg3LCA2MzA5MCwgNjMwOTMsIDYzMDk4LCA2MzEwMywgNjMxMDYsIDYzMTA5LCA2MzExMiwgCi0gICAgNjMxMTUsIDYzMTE4LCA2MzEyMSwgNjMxMjQsIDYzMTI4LCA2MzEzMSwgNjMxMzQsIDYzMTM3LCA2MzE0MCwgNjMxNDMsIAotICAgIDYzMTQ3LCA2MzE1MCwgNjMxNTMsIDYzMTU2LCA2MzE2MSwgNjMxNjYsIDYzMTcxLCA2MzE3NiwgNjMxODEsIDYzMTg2LCAKLSAgICA2MzE5MSwgNjMxOTYsIDYzMjAyLCA2MzIxMCwgNjMyMTIsIDYzMjE1LCA2MzIxOCwgNjMyMjEsIDYzMjI0LCA2MzIzMCwgCi0gICAgNjMyMzgsIDYzMjQxLCA2MzI0NCwgNjMyNDksIDYzMjUyLCA2MzI1NSwgNjMyNTgsIDYzMjYzLCA2MzI2NiwgNjMyNjksIAotICAgIDYzMjc0LCA2MzI3NywgNjMyODAsIDYzMjg1LCA2MzI4OCwgNjMyOTEsIDYzMjk2LCA2MzMwMSwgNjMzMDYsIDYzMzA5LCAKLSAgICA2MzMxMiwgNjMzMTUsIDYzMzE4LCA2MzMyNCwgNjMzMjcsIDYzMzMwLCA2MzMzMywgNjMzMzUsIDYzMzM4LCA2MzM0MSwgCi0gICAgNjMzNDQsIDYzMzQ5LCA2MzM1MiwgNjMzNTUsIDYzMzU4LCA2MzM2MSwgNjMzNjQsIDYzMzY5LCA2MzM3MiwgNjMzNzUsIAotICAgIDYzMzc4LCA2MzM4MSwgNjMzODQsIDYzMzg3LCA2MzM5MCwgNjMzOTMsIDYzMzk2LCA2MzQwMSwgNjM0MDUsIDYzNDEzLCAKLSAgICA2MzQyMSwgNjM0MjksIDYzNDM3LCA2MzQ0NSwgNjM0NTMsIDYzNDYxLCA2MzQ2OSwgNjM0NzcsIDYzNDg2LCA2MzQ5NSwgCi0gICAgNjM1MDQsIDYzNTEzLCA2MzUyMiwgNjM1MzEsIDYzNTQwLCA2MzU0OSwgNjM1NTgsIDYzNTY3LCA2MzU3NiwgNjM1ODUsIAotICAgIDYzNTk0LCA2MzYwMywgNjM2MTIsIDYzNjIxLCA2MzYzMCwgNjM2MzksIDYzNjQ4LCA2MzY1NywgNjM2NjYsIDYzNjc1LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NzY1OCwgNTc2NjIsIAorICAgIDU3NjY2LCA1NzY3MSwgNTc2NzYsIDU3NjgxLCA1NzY4NSwgNTc2ODksIDU3NjkzLCA1NzY5OCwgNTc3MDMsIDU3NzA3LCAKKyAgICA1NzcxMSwgNTc3MTUsIDU3NzE5LCA1NzcyNCwgNTc3MjksIDU3NzM0LCA1NzczOSwgNTc3NDMsIDU3NzQ3LCA1Nzc1MiwgCisgICAgNTc3NTcsIDU3NzYyLCA1Nzc2NywgNTc3NzEsIDAsIDU3Nzc1LCA1Nzc3OSwgNTc3ODMsIDU3Nzg3LCA1Nzc5MSwgNTc3OTUsIAorICAgIDU3Nzk5LCA1NzgwNCwgNTc4MDksIDU3ODEzLCA1NzgxOCwgNTc4MjMsIDU3ODMyLCA1NzgzNiwgNTc4NDAsIDU3ODQ0LCAKKyAgICA1Nzg1MSwgNTc4NTUsIDU3ODYwLCA1Nzg2NSwgNTc4NjksIDU3ODczLCA1Nzg3OSwgNTc4ODQsIDU3ODg5LCA1Nzg5NCwgCisgICAgNTc4OTksIDU3OTAzLCA1NzkwNywgNTc5MTEsIDU3OTE1LCA1NzkxOSwgNTc5MjQsIDU3OTI5LCA1NzkzMywgNTc5MzcsIAorICAgIDU3OTQyLCA1Nzk0NywgNTc5NTIsIDU3OTU2LCA1Nzk2MCwgNTc5NjUsIDU3OTcwLCA1Nzk3NiwgNTc5ODIsIDU3OTg2LCAKKyAgICA1Nzk5MiwgNTc5OTgsIDU4MDAyLCA1ODAwOCwgNTgwMTQsIDU4MDE5LCA1ODAyNCwgNTgwMjgsIDU4MDM0LCA1ODAzOCwgCisgICAgNTgwNDIsIDU4MDQ4LCA1ODA1NCwgNTgwNTksIDU4MDY0LCA1ODA2OCwgNTgwNzIsIDU4MDgwLCA1ODA4NiwgNTgwOTIsIAorICAgIDU4MDk4LCA1ODEwMywgNTgxMDgsIDU4MTEzLCA1ODExOSwgNTgxMjMsIDU4MTI5LCA1ODEzMywgNTgxMzcsIDU4MTQzLCAKKyAgICA1ODE0OSwgNTgxNTUsIDU4MTYxLCA1ODE2NywgNTgxNzMsIDU4MTc5LCA1ODE4NSwgNTgxOTEsIDU4MTk3LCA1ODIwMywgCisgICAgNTgyMDksIDU4MjEzLCA1ODIxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTgyMjUsIDU4MjI4LCAKKyAgICA1ODIzMiwgNTgyMzYsIDU4MjQwLCA1ODI0NCwgNTgyNDcsIDU4MjUwLCA1ODI1NCwgNTgyNTgsIDU4MjYyLCA1ODI2NiwgCisgICAgNTgyNjksIDU4Mjc0LCA1ODI3OCwgNTgyODIsIDU4Mjg2LCA1ODI5MSwgNTgyOTUsIDU4Mjk5LCA1ODMwMywgNTgzMDcsIAorICAgIDU4MzEzLCA1ODMxOSwgNTgzMjMsIDU4MzI3LCA1ODMzMSwgNTgzMzUsIDU4MzM5LCA1ODM0MywgNTgzNDcsIDU4MzUxLCAKKyAgICA1ODM1NSwgNTgzNTksIDU4MzYzLCA1ODM2OSwgNTgzNzMsIDU4Mzc3LCA1ODM4MSwgNTgzODUsIDU4Mzg5LCA1ODM5MywgCisgICAgNTgzOTcsIDU4NDAxLCA1ODQwNSwgNTg0MDksIDU4NDEzLCA1ODQxNywgNTg0MjEsIDU4NDI1LCA1ODQyOSwgNTg0MzMsIAorICAgIDU4NDM5LCA1ODQ0NSwgNTg0NTAsIDU4NDU1LCA1ODQ1OSwgNTg0NjMsIDU4NDY3LCA1ODQ3MSwgNTg0NzUsIDU4NDc5LCAKKyAgICA1ODQ4MywgNTg0ODcsIDU4NDkxLCA1ODQ5NSwgNTg0OTksIDU4NTAzLCA1ODUwNywgNTg1MTEsIDU4NTE1LCA1ODUxOSwgCisgICAgNTg1MjMsIDU4NTI3LCA1ODUzMSwgNTg1MzUsIDU4NTM5LCA1ODU0MywgNTg1NDcsIDU4NTUxLCA1ODU1NywgNTg1NjEsIAorICAgIDU4NTY1LCA1ODU2OSwgNTg1NzMsIDU4NTc3LCA1ODU4MSwgNTg1ODUsIDU4NTg5LCA1ODU5NCwgNTg2MDEsIDU4NjA1LCAKKyAgICA1ODYwOSwgNTg2MTMsIDU4NjE3LCA1ODYyMSwgNTg2MjUsIDU4NjI5LCA1ODYzMywgNTg2MzcsIDU4NjQxLCA1ODY0NSwgCisgICAgNTg2NDksIDU4NjU2LCA1ODY2MCwgNTg2NjYsIDU4NjcwLCA1ODY3NCwgNTg2NzgsIDU4NjgyLCA1ODY4NiwgNTg2ODksIAorICAgIDU4NjkzLCA1ODY5NywgNTg3MDEsIDU4NzA1LCA1ODcwOSwgNTg3MTMsIDU4NzE3LCA1ODcyMSwgNTg3MjUsIDU4NzI5LCAKKyAgICA1ODczMywgNTg3MzcsIDU4NzQxLCA1ODc0NSwgNTg3NDksIDU4NzUzLCA1ODc1NywgNTg3NjEsIDU4NzY1LCA1ODc2OSwgCisgICAgNTg3NzMsIDU4Nzc3LCA1ODc4MSwgNTg3ODUsIDU4Nzg5LCA1ODc5MywgNTg3OTcsIDU4ODAxLCA1ODgwNSwgNTg4MDksIAorICAgIDU4ODEzLCA1ODgxNywgNTg4MjMsIDU4ODI3LCA1ODgzMSwgNTg4MzUsIDU4ODM5LCA1ODg0MywgNTg4NDcsIDU4ODUxLCAKKyAgICA1ODg1NSwgNTg4NTksIDU4ODYzLCA1ODg2NywgNTg4NzEsIDU4ODc1LCA1ODg3OSwgNTg4ODMsIDU4ODg3LCA1ODg5MSwgCisgICAgNTg4OTUsIDU4ODk5LCA1ODkwMywgNTg5MDcsIDU4OTExLCA1ODkxNSwgNTg5MTksIDU4OTIzLCA1ODkyNywgNTg5MzEsIAorICAgIDU4OTM5LCA1ODk0MywgNTg5NDcsIDU4OTUxLCA1ODk1NSwgNTg5NTksIDU4OTY1LCA1ODk2OSwgNTg5NzMsIDU4OTc3LCAKKyAgICA1ODk4MSwgNTg5ODUsIDU4OTg5LCA1ODk5MywgNTg5OTcsIDU5MDAxLCA1OTAwNSwgNTkwMDksIDU5MDEzLCA1OTAxNywgCisgICAgNTkwMjMsIDU5MDI3LCA1OTAzMSwgNTkwMzUsIDU5MDM5LCA1OTA0MywgNTkwNDcsIDU5MDUxLCA1OTA1NSwgNTkwNTksIAorICAgIDU5MDYzLCA1OTA2NywgNTkwNzEsIDU5MDc1LCA1OTA3OSwgNTkwODMsIDU5MDg3LCA1OTA5MSwgNTkwOTUsIDU5MDk5LCAKKyAgICA1OTEwMywgNTkxMDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDU5MTExLCA1OTEyMCwgNTkxMjgsIDU5MTQwLCA1OTE1MSwgNTkxNTksIDU5MTY4LCA1OTE3NywgCisgICAgNTkxODcsIDU5MTk5LCA1OTIxMSwgNTkyMjMsIDAsIDAsIDAsIDAsIDU5MjI5LCA1OTIzMiwgNTkyMzUsIDU5MjQwLCAKKyAgICA1OTI0MywgNTkyNTAsIDU5MjU0LCA1OTI1OCwgNTkyNjIsIDU5MjY2LCA1OTI3MCwgNTkyNzUsIDU5MjgwLCA1OTI4NCwgCisgICAgNTkyODgsIDU5MjkzLCA1OTI5OCwgNTkzMDMsIDU5MzA4LCA1OTMxMSwgNTkzMTQsIDU5MzIwLCA1OTMyNiwgNTkzMzEsIAorICAgIDU5MzM2LCA1OTM0MywgNTkzNTAsIDU5MzU0LCA1OTM1OCwgNTkzNjIsIDU5MzcwLCA1OTM3NiwgNTkzODMsIDU5Mzg4LCAKKyAgICA1OTM5MywgNTkzOTgsIDU5NDAzLCA1OTQwOCwgNTk0MTMsIDU5NDE4LCA1OTQyMywgNTk0MjgsIDU5NDMzLCA1OTQzOCwgCisgICAgNTk0NDMsIDU5NDQ4LCA1OTQ1MywgNTk0NTksIDU5NDY0LCA1OTQ2OCwgNTk0NzQsIDU5NDg1LCA1OTQ5NSwgNTk1MTAsIAorICAgIDU5NTIwLCA1OTUyNCwgNTk1MzQsIDU5NTQwLCA1OTU0NiwgNTk1NTIsIDU5NTU3LCA1OTU2MCwgNTk1NjUsIDU5NTY5LCAwLCAKKyAgICA1OTU3NSwgNTk1NzksIDU5NTgyLCA1OTU4NiwgNTk1ODksIDU5NTkzLCA1OTU5NiwgNTk2MDAsIDU5NjAzLCA1OTYwNywgCisgICAgNTk2MTAsIDU5NjEzLCA1OTYxNywgNTk2MjEsIDU5NjI1LCA1OTYyOSwgNTk2MzMsIDU5NjM3LCA1OTY0MSwgNTk2NDUsIAorICAgIDU5NjQ5LCA1OTY1MiwgNTk2NTYsIDU5NjYwLCA1OTY2NCwgNTk2NjgsIDU5NjcyLCA1OTY3NiwgNTk2ODAsIDU5Njg0LCAKKyAgICA1OTY4OCwgNTk2OTIsIDU5Njk2LCA1OTcwMCwgNTk3MDQsIDU5NzA5LCA1OTcxMywgNTk3MTcsIDU5NzIxLCA1OTcyNSwgCisgICAgNTk3MjgsIDU5NzMyLCA1OTczNSwgNTk3MzksIDU5NzQzLCA1OTc0NywgNTk3NTEsIDU5NzU0LCA1OTc1OCwgNTk3NjEsIAorICAgIDU5NzY1LCA1OTc2OSwgNTk3NzMsIDU5Nzc3LCA1OTc4MSwgNTk3ODUsIDU5Nzg5LCA1OTc5MywgNTk3OTcsIDU5ODAxLCAKKyAgICA1OTgwNSwgNTk4MDksIDU5ODEyLCA1OTgxNiwgNTk4MjAsIDU5ODI0LCA1OTgyOCwgNTk4MzIsIDU5ODM1LCA1OTg0MCwgCisgICAgNTk4NDQsIDU5ODQ5LCA1OTg1MywgNTk4NTYsIDU5ODYwLCA1OTg2NCwgNTk4NjgsIDU5ODcyLCA1OTg3NywgNTk4ODEsIAorICAgIDU5ODg1LCA1OTg4OSwgNTk4OTMsIDU5ODk3LCA1OTkwMSwgNTk5MDUsIDAsIDAsIDU5OTEwLCA1OTkxOCwgNTk5MjYsIAorICAgIDU5OTMzLCA1OTk0MCwgNTk5NDQsIDU5OTUwLCA1OTk1NSwgNTk5NjAsIDU5OTY0LCA1OTk2NywgNTk5NzEsIDU5OTc0LCAKKyAgICA1OTk3OCwgNTk5ODEsIDU5OTg1LCA1OTk4OCwgNTk5OTIsIDU5OTk1LCA1OTk5OCwgNjAwMDIsIDYwMDA2LCA2MDAxMCwgCisgICAgNjAwMTQsIDYwMDE4LCA2MDAyMiwgNjAwMjYsIDYwMDMwLCA2MDAzNCwgNjAwMzcsIDYwMDQxLCA2MDA0NSwgNjAwNDksIAorICAgIDYwMDUzLCA2MDA1NywgNjAwNjEsIDYwMDY1LCA2MDA2OSwgNjAwNzMsIDYwMDc3LCA2MDA4MSwgNjAwODUsIDYwMDg5LCAKKyAgICA2MDA5NCwgNjAwOTgsIDYwMTAyLCA2MDEwNiwgNjAxMTAsIDYwMTEzLCA2MDExNywgNjAxMjAsIDYwMTI0LCA2MDEyOCwgCisgICAgNjAxMzIsIDYwMTM2LCA2MDEzOSwgNjAxNDMsIDYwMTQ2LCA2MDE1MCwgNjAxNTQsIDYwMTU4LCA2MDE2MiwgNjAxNjYsIAorICAgIDYwMTcwLCA2MDE3NCwgNjAxNzgsIDYwMTgyLCA2MDE4NiwgNjAxOTAsIDYwMTk0LCA2MDE5NywgNjAyMDEsIDYwMjA1LCAKKyAgICA2MDIwOSwgNjAyMTMsIDYwMjE3LCA2MDIyMCwgNjAyMjUsIDYwMjI5LCA2MDIzNCwgNjAyMzgsIDYwMjQxLCA2MDI0NSwgCisgICAgNjAyNDksIDYwMjUzLCA2MDI1NywgNjAyNjIsIDYwMjY2LCA2MDI3MCwgNjAyNzQsIDYwMjc4LCA2MDI4MiwgNjAyODYsIAorICAgIDYwMjkwLCA2MDI5NSwgNjAyOTksIDYwMzAzLCA2MDMwNywgNjAzMTEsIDYwMzE2LCA2MDMyMywgNjAzMjcsIDYwMzMzLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA2MDMzOCwgNjAzNDMsIDYwMzQ4LCA2MDM1MiwgNjAzNTcsIDYwMzYyLCA2MDM2NywgNjAzNzIsIAorICAgIDYwMzc2LCA2MDM4MSwgNjAzODYsIDYwMzkxLCA2MDM5NiwgNjA0MDEsIDYwNDA2LCA2MDQxMSwgNjA0MTYsIDYwNDIxLCAKKyAgICA2MDQyNSwgNjA0MzAsIDYwNDM1LCA2MDQ0MCwgNjA0NDQsIDYwNDQ4LCA2MDQ1MiwgNjA0NTcsIDYwNDYyLCA2MDQ2NywgCisgICAgNjA0NzIsIDYwNDc3LCA2MDQ4MiwgNjA0ODcsIDYwNDkyLCA2MDQ5NywgNjA1MDIsIDYwNTA2LCA2MDUxMCwgNjA1MTUsIAorICAgIDYwNTIwLCA2MDUyNSwgNjA1MzAsIDAsIDAsIDAsIDYwNTM1LCA2MDUzOSwgNjA1NDMsIDYwNTQ3LCA2MDU1MSwgNjA1NTUsIAorICAgIDYwNTU5LCA2MDU2MywgNjA1NjcsIDYwNTcxLCA2MDU3NSwgNjA1NzksIDYwNTgzLCA2MDU4NywgNjA1OTEsIDYwNTk1LCAKKyAgICA2MDU5OSwgNjA2MDMsIDYwNjA3LCA2MDYxMSwgNjA2MTUsIDYwNjE5LCA2MDYyMywgNjA2MjcsIDYwNjMxLCA2MDYzNSwgCisgICAgNjA2MzksIDYwNjQzLCA2MDY0NywgNjA2NTEsIDYwNjU1LCA2MDY1OCwgNjA2NjIsIDYwNjY1LCA2MDY2OSwgNjA2NzMsIAorICAgIDYwNjc2LCA2MDY4MCwgNjA2ODQsIDYwNjg3LCA2MDY5MSwgNjA2OTUsIDYwNjk5LCA2MDcwMywgNjA3MDYsIDYwNzEwLCAKKyAgICA2MDcxNCwgNjA3MTgsIDYwNzIyLCA2MDcyNiwgNjA3MzAsIDYwNzMzLCA2MDczNiwgNjA3NDAsIDYwNzQ0LCA2MDc0OCwgCisgICAgNjA3NTIsIDYwNzU2LCA2MDc2MCwgNjA3NjQsIDYwNzY4LCA2MDc3MiwgNjA3NzYsIDYwNzgwLCA2MDc4NCwgNjA3ODgsIAorICAgIDYwNzkyLCA2MDc5NiwgNjA4MDAsIDYwODA0LCA2MDgwOCwgNjA4MTIsIDYwODE2LCA2MDgyMCwgNjA4MjQsIDYwODI4LCAKKyAgICA2MDgzMiwgNjA4MzYsIDYwODQwLCA2MDg0NCwgNjA4NDgsIDYwODUyLCA2MDg1NiwgNjA4NjAsIDYwODY0LCA2MDg2OCwgCisgICAgNjA4NzIsIDYwODc2LCA2MDg4MCwgNjA4ODQsIDYwODg4LCA2MDg5MiwgNjA4OTYsIDYwOTAwLCAwLCA2MDkwNCwgNjA5MTAsIAorICAgIDYwOTE2LCA2MDkyMSwgNjA5MjYsIDYwOTMxLCA2MDkzNywgNjA5NDMsIDYwOTQ5LCA2MDk1NSwgNjA5NjEsIDYwOTY3LCAKKyAgICA2MDk3MywgNjA5NzksIDYwOTg1LCA2MDk5MSwgNjA5OTcsIDYxMDAyLCA2MTAwNywgNjEwMTIsIDYxMDE3LCA2MTAyMiwgCisgICAgNjEwMjcsIDYxMDMyLCA2MTAzNywgNjEwNDIsIDYxMDQ3LCA2MTA1MiwgNjEwNTcsIDYxMDYyLCA2MTA2NywgNjEwNzIsIAorICAgIDYxMDc3LCA2MTA4MiwgNjEwODcsIDYxMDkyLCA2MTA5NywgNjExMDMsIDYxMTA5LCA2MTExNSwgNjExMjEsIDYxMTI2LCAKKyAgICA2MTEzMSwgMCwgMCwgMCwgMCwgMCwgNjExMzYsIDYxMTQxLCA2MTE0NiwgNjExNTEsIDYxMTU2LCA2MTE2MSwgNjExNjYsIAorICAgIDYxMTcxLCA2MTE3NiwgNjExODEsIDYxMTg2LCA2MTE5MSwgNjExOTYsIDYxMjAxLCA2MTIwNiwgNjEyMTEsIDYxMjE2LCAKKyAgICA2MTIyMSwgNjEyMjYsIDYxMjMxLCA2MTIzNiwgNjEyNDEsIDYxMjQ2LCA2MTI1MSwgNjEyNTYsIDYxMjYxLCA2MTI2NiwgCisgICAgNjEyNzEsIDYxMjc2LCA2MTI4MSwgNjEyODYsIDYxMjkxLCA2MTI5NiwgNjEzMDEsIDYxMzA2LCA2MTMxMSwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjEzMTYsIDYxMzIxLCA2MTMyNiwgNjEzMzEsIDYxMzM1LCA2MTM0MCwgCisgICAgNjEzNDQsIDYxMzQ5LCA2MTM1NCwgNjEzNTksIDYxMzY0LCA2MTM2OSwgNjEzNzMsIDYxMzc4LCA2MTM4MywgNjEzODgsIAorICAgIDYxMzkzLCA2MTM5NywgNjE0MDEsIDYxNDA1LCA2MTQwOSwgNjE0MTMsIDYxNDE3LCA2MTQyMSwgNjE0MjUsIDYxNDI5LCAKKyAgICA2MTQzMywgNjE0MzcsIDYxNDQxLCA2MTQ0NSwgNjE0NDksIDYxNDU0LCA2MTQ1OSwgNjE0NjQsIDYxNDY5LCA2MTQ3NCwgCisgICAgNjE0NzksIDYxNDg0LCA2MTQ4OSwgNjE0OTQsIDYxNDk5LCA2MTUwNCwgNjE1MDksIDYxNTE0LCA2MTUxOSwgNjE1MjQsIAorICAgIDYxNTMwLCAwLCA2MTUzNywgNjE1NDAsIDYxNTQzLCA2MTU0NiwgNjE1NDksIDYxNTUyLCA2MTU1NSwgNjE1NTgsIDYxNTYxLCAKKyAgICA2MTU2NCwgNjE1NjgsIDYxNTcyLCA2MTU3NiwgNjE1ODAsIDYxNTg0LCA2MTU4OCwgNjE1OTIsIDYxNTk2LCA2MTYwMCwgCisgICAgNjE2MDQsIDYxNjA4LCA2MTYxMiwgNjE2MTYsIDYxNjIwLCA2MTYyNCwgNjE2MjgsIDYxNjMyLCA2MTYzNiwgNjE2NDAsIAorICAgIDYxNjQ0LCA2MTY0OCwgNjE2NTIsIDYxNjU2LCA2MTY2MCwgNjE2NjQsIDYxNjY4LCA2MTY3MiwgNjE2NzYsIDYxNjgwLCAKKyAgICA2MTY4NCwgNjE2ODgsIDYxNjk3LCA2MTcwNiwgNjE3MTUsIDYxNzI0LCA2MTczMywgNjE3NDIsIDYxNzUxLCA2MTc2MCwgCisgICAgNjE3NjMsIDYxNzY4LCA2MTc3MywgNjE3NzgsIDYxNzgzLCA2MTc4OCwgNjE3OTMsIDYxNzk4LCA2MTgwMywgNjE4MDgsIAorICAgIDYxODEyLCA2MTgxNywgNjE4MjIsIDYxODI3LCA2MTgzMiwgNjE4MzcsIDYxODQxLCA2MTg0NSwgNjE4NDksIDYxODUzLCAKKyAgICA2MTg1NywgNjE4NjEsIDYxODY1LCA2MTg2OSwgNjE4NzMsIDYxODc3LCA2MTg4MSwgNjE4ODUsIDYxODg5LCA2MTg5MywgCisgICAgNjE4OTgsIDYxOTAzLCA2MTkwOCwgNjE5MTMsIDYxOTE4LCA2MTkyMywgNjE5MjgsIDYxOTMzLCA2MTkzOCwgNjE5NDMsIAorICAgIDYxOTQ4LCA2MTk1MywgNjE5NTgsIDYxOTYzLCA2MTk2OSwgNjE5NzUsIDYxOTgwLCA2MTk4NSwgNjE5ODgsIDYxOTkxLCAKKyAgICA2MTk5NCwgNjE5OTcsIDYyMDAwLCA2MjAwMywgNjIwMDYsIDYyMDA5LCA2MjAxMiwgNjIwMTYsIDYyMDIwLCA2MjAyNCwgCisgICAgNjIwMjgsIDYyMDMyLCA2MjAzNiwgNjIwNDAsIDYyMDQ0LCA2MjA0OCwgNjIwNTIsIDYyMDU2LCA2MjA2MCwgNjIwNjQsIAorICAgIDYyMDY4LCA2MjA3MiwgNjIwNzYsIDYyMDgwLCA2MjA4NCwgNjIwODgsIDYyMDkyLCA2MjA5NiwgNjIxMDAsIDYyMTA0LCAKKyAgICA2MjEwOCwgNjIxMTIsIDYyMTE2LCA2MjEyMCwgNjIxMjQsIDYyMTI4LCA2MjEzMiwgNjIxMzYsIDYyMTQwLCA2MjE0NCwgCisgICAgNjIxNDgsIDYyMTUyLCA2MjE1NiwgNjIxNjAsIDYyMTY0LCA2MjE2OCwgNjIxNzIsIDYyMTc3LCA2MjE4MiwgNjIxODcsIAorICAgIDYyMTkyLCA2MjE5NiwgNjIyMDEsIDYyMjA2LCA2MjIxMSwgNjIyMTYsIDYyMjIxLCA2MjIyNiwgNjIyMzEsIDYyMjM2LCAKKyAgICA2MjI0MSwgNjIyNDUsIDYyMjUyLCA2MjI1OSwgNjIyNjYsIDYyMjczLCA2MjI4MCwgNjIyODcsIDYyMjk0LCA2MjMwMSwgCisgICAgNjIzMDgsIDYyMzE1LCA2MjMyMiwgNjIzMjksIDYyMzMyLCA2MjMzNSwgNjIzMzgsIDYyMzQzLCA2MjM0NiwgNjIzNDksIAorICAgIDYyMzUyLCA2MjM1NSwgNjIzNTgsIDYyMzYxLCA2MjM2NSwgNjIzNjksIDYyMzczLCA2MjM3NywgNjIzODAsIDYyMzg0LCAKKyAgICA2MjM4OCwgNjIzOTIsIDYyMzk2LCA2MjQwMCwgNjI0MDQsIDYyNDA4LCA2MjQxMiwgNjI0MTUsIDYyNDE4LCA2MjQyMiwgCisgICAgNjI0MjYsIDYyNDMwLCA2MjQzNCwgNjI0MzcsIDYyNDQxLCA2MjQ0NSwgNjI0NDksIDYyNDUzLCA2MjQ1NiwgNjI0NjAsIAorICAgIDYyNDY0LCA2MjQ2OCwgNjI0NzIsIDYyNDc1LCA2MjQ3OSwgNjI0ODMsIDYyNDg2LCA2MjQ5MCwgNjI0OTQsIDYyNDk4LCAKKyAgICA2MjUwMiwgNjI1MDYsIDYyNTEwLCA2MjUxNCwgMCwgNjI1MTgsIDYyNTIxLCA2MjUyNCwgNjI1MjcsIDYyNTMwLCA2MjUzMywgCisgICAgNjI1MzYsIDYyNTM5LCA2MjU0MiwgNjI1NDUsIDYyNTQ4LCA2MjU1MSwgNjI1NTQsIDYyNTU3LCA2MjU2MCwgNjI1NjMsIAorICAgIDYyNTY2LCA2MjU2OSwgNjI1NzIsIDYyNTc1LCA2MjU3OCwgNjI1ODEsIDYyNTg0LCA2MjU4NywgNjI1OTAsIDYyNTkzLCAKKyAgICA2MjU5NiwgNjI1OTksIDYyNjAyLCA2MjYwNSwgNjI2MDgsIDYyNjExLCA2MjYxNCwgNjI2MTcsIDYyNjIwLCA2MjYyMywgCisgICAgNjI2MjYsIDYyNjI5LCA2MjYzMiwgNjI2MzUsIDYyNjM4LCA2MjY0MSwgNjI2NDQsIDYyNjQ3LCA2MjY1MCwgNjI2NTMsIAorICAgIDYyNjU2LCA2MjY1OSwgNjI2NjIsIDYyNjY1LCA2MjY2OCwgNjI2NzEsIDYyNjc0LCA2MjY3NywgNjI2ODAsIDYyNjgzLCAKKyAgICA2MjY4NiwgNjI2ODksIDYyNjkyLCA2MjY5NSwgNjI2OTgsIDYyNzAxLCA2MjcwNCwgNjI3MDcsIDYyNzEwLCA2MjcxMywgCisgICAgNjI3MTYsIDYyNzE5LCA2MjcyMiwgNjI3MjUsIDYyNzI4LCA2MjczMSwgNjI3MzQsIDYyNzM3LCA2Mjc0MCwgNjI3NDMsIAorICAgIDYyNzQ2LCA2Mjc0OSwgNjI3NTIsIDYyNzU1LCA2Mjc1OCwgNjI3NjEsIDYyNzY0LCA2Mjc2NywgNjI3NzAsIDYyNzczLCAKKyAgICA2Mjc3NiwgNjI3NzksIDYyNzgyLCA2Mjc5MSwgNjI3OTksIDYyODA3LCA2MjgxNSwgNjI4MjMsIDYyODMxLCA2MjgzOSwgCisgICAgNjI4NDcsIDYyODU1LCA2Mjg2MywgNjI4NzIsIDYyODgxLCA2Mjg5MCwgNjI4OTksIDYyOTA4LCA2MjkxNywgNjI5MjYsIAorICAgIDYyOTM1LCA2Mjk0NCwgNjI5NTMsIDYyOTYyLCA2Mjk3MSwgNjI5ODAsIDYyOTg5LCA2Mjk5OCwgNjMwMDEsIDYzMDA0LCAKKyAgICA2MzAwNywgNjMwMDksIDYzMDEyLCA2MzAxNSwgNjMwMTgsIDYzMDIzLCA2MzAyOCwgNjMwMzEsIDYzMDM4LCA2MzA0NSwgCisgICAgNjMwNTIsIDYzMDU5LCA2MzA2MiwgNjMwNjcsIDYzMDY5LCA2MzA3MywgNjMwNzUsIDYzMDc3LCA2MzA4MCwgNjMwODMsIAorICAgIDYzMDg2LCA2MzA4OSwgNjMwOTIsIDYzMDk1LCA2MzA5OCwgNjMxMDMsIDYzMTA4LCA2MzExMSwgNjMxMTQsIDYzMTE3LCAKKyAgICA2MzEyMCwgNjMxMjMsIDYzMTI2LCA2MzEyOSwgNjMxMzMsIDYzMTM2LCA2MzEzOSwgNjMxNDIsIDYzMTQ1LCA2MzE0OCwgCisgICAgNjMxNTIsIDYzMTU1LCA2MzE1OCwgNjMxNjEsIDYzMTY2LCA2MzE3MSwgNjMxNzYsIDYzMTgxLCA2MzE4NiwgNjMxOTEsIAorICAgIDYzMTk2LCA2MzIwMSwgNjMyMDcsIDYzMjE1LCA2MzIxNywgNjMyMjAsIDYzMjIzLCA2MzIyNiwgNjMyMjksIDYzMjM1LCAKKyAgICA2MzI0MywgNjMyNDYsIDYzMjQ5LCA2MzI1NCwgNjMyNTcsIDYzMjYwLCA2MzI2MywgNjMyNjgsIDYzMjcxLCA2MzI3NCwgCisgICAgNjMyNzksIDYzMjgyLCA2MzI4NSwgNjMyOTAsIDYzMjkzLCA2MzI5NiwgNjMzMDEsIDYzMzA2LCA2MzMxMSwgNjMzMTQsIAorICAgIDYzMzE3LCA2MzMyMCwgNjMzMjMsIDYzMzI5LCA2MzMzMiwgNjMzMzUsIDYzMzM4LCA2MzM0MCwgNjMzNDMsIDYzMzQ2LCAKKyAgICA2MzM0OSwgNjMzNTQsIDYzMzU3LCA2MzM2MCwgNjMzNjMsIDYzMzY2LCA2MzM2OSwgNjMzNzQsIDYzMzc3LCA2MzM4MCwgCisgICAgNjMzODMsIDYzMzg2LCA2MzM4OSwgNjMzOTIsIDYzMzk1LCA2MzM5OCwgNjM0MDEsIDYzNDA2LCA2MzQxMCwgNjM0MTgsIAorICAgIDYzNDI2LCA2MzQzNCwgNjM0NDIsIDYzNDUwLCA2MzQ1OCwgNjM0NjYsIDYzNDc0LCA2MzQ4MiwgNjM0OTEsIDYzNTAwLCAKKyAgICA2MzUwOSwgNjM1MTgsIDYzNTI3LCA2MzUzNiwgNjM1NDUsIDYzNTU0LCA2MzU2MywgNjM1NzIsIDYzNTgxLCA2MzU5MCwgCisgICAgNjM1OTksIDYzNjA4LCA2MzYxNywgNjM2MjYsIDYzNjM1LCA2MzY0NCwgNjM2NTMsIDYzNjYyLCA2MzY3MSwgNjM2ODAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYzNjc4LCA2MzY4NywgNjM2OTYsIDYzNzA3LCAKLSAgICA2MzcxNCwgNjM3MTksIDYzNzI0LCA2MzczMSwgNjM3MzgsIDYzNzQ0LCA2Mzc0OSwgNjM3NTQsIDYzNzU5LCA2Mzc2NCwgCi0gICAgNjM3NzEsIDYzNzc2LCA2Mzc4MSwgNjM3ODYsIDYzNzk3LCA2MzgwMiwgNjM4MDcsIDYzODE0LCA2MzgxOSwgNjM4MjYsIAotICAgIDYzODMxLCA2MzgzNiwgNjM4NDMsIDYzODUwLCA2Mzg1NywgNjM4NjYsIDYzODc1LCA2Mzg4MCwgNjM4ODUsIDYzODkwLCAKLSAgICA2Mzg5NywgNjM5MDIsIDYzOTEyLCA2MzkxOSwgNjM5MjQsIDYzOTI5LCA2MzkzNCwgNjM5MzksIDYzOTQ0LCA2Mzk0OSwgCi0gICAgNjM5NTgsIDYzOTY1LCA2Mzk3MiwgNjM5NzcsIDYzOTg0LCA2Mzk4OSwgNjM5OTYsIDY0MDA1LCA2NDAxNiwgNjQwMjEsIAotICAgIDY0MDMwLCA2NDAzNSwgNjQwNDIsIDY0MDUxLCA2NDA2MCwgNjQwNjUsIDY0MDcwLCA2NDA3NywgNjQwODMsIDY0MDkwLCAKLSAgICA2NDA5NywgNjQxMDEsIDY0MTA1LCA2NDEwOCwgNjQxMTIsIDY0MTE2LCA2NDEyMCwgNjQxMjQsIDY0MTI4LCA2NDEzMiwgCi0gICAgNjQxMzYsIDY0MTM5LCA2NDE0MywgNjQxNDcsIDY0MTUxLCA2NDE1NSwgNjQxNTksIDY0MTYzLCA2NDE2NiwgNjQxNzAsIAotICAgIDY0MTc0LCA2NDE3NywgNjQxODEsIDY0MTg1LCA2NDE4OSwgNjQxOTMsIDY0MTk3LCA2NDIwMSwgNjQyMDUsIDY0MjA5LCAKLSAgICA2NDIxMywgNjQyMTcsIDY0MjIxLCA2NDIyNSwgNjQyMjksIDY0MjMzLCA2NDIzNywgNjQyNDEsIDY0MjQ1LCA2NDI0OSwgCi0gICAgNjQyNTMsIDY0MjU3LCA2NDI2MSwgNjQyNjUsIDY0MjY5LCA2NDI3MywgNjQyNzcsIDY0MjgxLCA2NDI4NSwgNjQyODksIAotICAgIDY0MjkzLCA2NDI5NywgNjQzMDEsIDY0MzA1LCA2NDMwOSwgNjQzMTMsIDY0MzE3LCA2NDMyMSwgNjQzMjUsIDY0MzI5LCAKLSAgICA2NDMzMywgNjQzMzcsIDY0MzQxLCA2NDM0NSwgNjQzNDksIDY0MzUzLCA2NDM1NiwgNjQzNjAsIDY0MzY0LCA2NDM2OCwgCi0gICAgNjQzNzIsIDY0Mzc2LCA2NDM4MCwgNjQzODQsIDY0Mzg4LCA2NDM5MiwgNjQzOTYsIDY0NDAwLCA2NDQwNCwgNjQ0MDgsIAotICAgIDY0NDEyLCA2NDQxNiwgNjQ0MjAsIDY0NDI0LCA2NDQyOCwgNjQ0MzIsIDY0NDM2LCA2NDQ0MCwgNjQ0NDQsIDY0NDQ4LCAKLSAgICA2NDQ1MiwgNjQ0NTYsIDY0NDYwLCA2NDQ2NCwgNjQ0NjgsIDY0NDcyLCA2NDQ3NiwgNjQ0ODAsIDY0NDg0LCA2NDQ4OCwgCi0gICAgNjQ0OTIsIDY0NDk2LCA2NDUwMCwgNjQ1MDQsIDY0NTA4LCA2NDUxMiwgNjQ1MTYsIDY0NTIwLCA2NDUyNCwgNjQ1MjgsIAotICAgIDY0NTMyLCA2NDUzNiwgNjQ1NDAsIDY0NTQ0LCA2NDU0OCwgNjQ1NTIsIDY0NTU2LCA2NDU2MCwgNjQ1NjQsIDY0NTY4LCAKLSAgICA2NDU3MiwgNjQ1NzYsIDY0NTgwLCA2NDU4NCwgNjQ1ODgsIDY0NTkyLCA2NDU5NiwgNjQ2MDAsIDY0NjA0LCA2NDYwOCwgCi0gICAgNjQ2MTIsIDY0NjE2LCA2NDYyMCwgNjQ2MjQsIDY0NjI4LCA2NDYzMiwgNjQ2MzYsIDY0NjQwLCA2NDY0NCwgNjQ2NDgsIAotICAgIDY0NjUyLCA2NDY1NiwgNjQ2NjAsIDY0NjY0LCA2NDY2OCwgNjQ2NzIsIDY0Njc2LCA2NDY4MCwgNjQ2ODQsIDY0Njg4LCAKLSAgICA2NDY5MiwgNjQ2OTYsIDY0NzAwLCA2NDcwNCwgNjQ3MDgsIDY0NzEyLCA2NDcxNiwgNjQ3MjAsIDY0NzI0LCA2NDcyOCwgCi0gICAgNjQ3MzIsIDY0NzM2LCA2NDc0MCwgNjQ3NDQsIDY0NzQ4LCA2NDc1MiwgNjQ3NTYsIDY0NzYwLCA2NDc2NCwgNjQ3NjgsIAotICAgIDY0NzcyLCA2NDc3NiwgNjQ3ODAsIDY0Nzg0LCA2NDc4OCwgNjQ3OTIsIDY0Nzk2LCA2NDgwMCwgNjQ4MDQsIDY0ODA4LCAKLSAgICA2NDgxMiwgNjQ4MTYsIDY0ODIwLCA2NDgyNCwgNjQ4MjcsIDY0ODMxLCA2NDgzNSwgNjQ4MzksIDY0ODQzLCA2NDg0NywgCi0gICAgNjQ4NTEsIDY0ODU1LCA2NDg1OSwgNjQ4NjMsIDY0ODY3LCA2NDg3MSwgNjQ4NzUsIDY0ODc5LCA2NDg4MywgNjQ4ODcsIAotICAgIDY0ODkxLCA2NDg5NSwgNjQ4OTksIDY0OTAzLCA2NDkwNywgNjQ5MTEsIDY0OTE1LCA2NDkxOSwgNjQ5MjMsIDY0OTI3LCAKLSAgICA2NDkzMSwgNjQ5MzUsIDY0OTM5LCA2NDk0MywgNjQ5NDcsIDY0OTUxLCA2NDk1NSwgNjQ5NTksIDY0OTYzLCA2NDk2NywgCi0gICAgNjQ5NzEsIDY0OTc1LCA2NDk3OSwgNjQ5ODMsIDY0OTg3LCA2NDk5MSwgNjQ5OTUsIDY0OTk5LCA2NTAwMywgNjUwMDcsIAotICAgIDY1MDExLCA2NTAxNSwgNjUwMTksIDY1MDIzLCA2NTAyNywgNjUwMzEsIDY1MDM1LCA2NTAzOSwgNjUwNDMsIDY1MDQ3LCAKLSAgICA2NTA1MSwgNjUwNTUsIDY1MDU5LCA2NTA2MywgNjUwNjcsIDY1MDcxLCA2NTA3NSwgNjUwNzksIDY1MDgzLCA2NTA4NywgCi0gICAgNjUwOTEsIDY1MDk1LCA2NTA5OSwgNjUxMDMsIDY1MTA3LCA2NTExMSwgNjUxMTUsIDY1MTE5LCA2NTEyMywgNjUxMjcsIAotICAgIDY1MTMxLCA2NTEzNSwgNjUxMzksIDY1MTQzLCA2NTE0NywgNjUxNTEsIDY1MTU1LCA2NTE1OSwgNjUxNjMsIDY1MTY3LCAKLSAgICA2NTE3MSwgNjUxNzUsIDY1MTc5LCA2NTE4MywgNjUxODcsIDY1MTkxLCA2NTE5NSwgNjUxOTksIDY1MjAzLCA2NTIwNywgCi0gICAgNjUyMTEsIDY1MjE1LCA2NTIxOSwgNjUyMjMsIDY1MjI3LCA2NTIzMSwgNjUyMzUsIDY1MjM5LCA2NTI0MywgNjUyNDcsIAotICAgIDY1MjUxLCA2NTI1NSwgNjUyNTksIDY1MjYzLCA2NTI2NywgNjUyNzEsIDY1Mjc1LCA2NTI3OSwgNjUyODMsIDY1Mjg3LCAKLSAgICA2NTI5MCwgNjUyOTQsIDY1Mjk4LCA2NTMwMiwgNjUzMDYsIDY1MzEwLCA2NTMxNCwgNjUzMTgsIDY1MzIyLCA2NTMyNiwgCi0gICAgNjUzMzAsIDY1MzM0LCA2NTMzOCwgNjUzNDIsIDY1MzQ2LCA2NTM1MCwgNjUzNTQsIDY1MzU4LCA2NTM2MiwgNjUzNjYsIAotICAgIDY1MzcwLCA2NTM3NCwgNjUzNzgsIDY1MzgyLCA2NTM4NiwgNjUzOTAsIDY1Mzk0LCA2NTM5OCwgNjU0MDIsIDY1NDA2LCAKLSAgICA2NTQxMCwgNjU0MTQsIDY1NDE4LCA2NTQyMiwgNjU0MjYsIDY1NDMwLCA2NTQzNCwgNjU0MzgsIDY1NDQyLCA2NTQ0NiwgCi0gICAgNjU0NTAsIDY1NDU0LCA2NTQ1OCwgNjU0NjIsIDY1NDY2LCA2NTQ3MCwgNjU0NzQsIDY1NDc4LCA2NTQ4MiwgNjU0ODYsIAotICAgIDY1NDkwLCA2NTQ5NCwgNjU0OTgsIDY1NTAyLCA2NTUwNiwgNjU1MTAsIDY1NTE0LCA2NTUxOCwgNjU1MjIsIDY1NTI2LCAKLSAgICA2NTUzMCwgNjU1MzQsIDY1NTM4LCA2NTU0MiwgNjU1NDYsIDY1NTUwLCA2NTU1NCwgNjU1NTgsIDY1NTYyLCA2NTU2NiwgCi0gICAgNjU1NzAsIDY1NTc0LCA2NTU3OCwgNjU1ODIsIDY1NTg2LCA2NTU5MCwgNjU1OTQsIDY1NTk4LCA2NTYwMiwgNjU2MDYsIAotICAgIDY1NjEwLCA2NTYxNCwgNjU2MTgsIDY1NjIyLCA2NTYyNiwgNjU2MzAsIDY1NjM0LCA2NTYzOCwgNjU2NDIsIDY1NjQ2LCAKLSAgICA2NTY0OSwgNjU2NTMsIDY1NjU3LCA2NTY2MSwgNjU2NjUsIDY1NjY5LCA2NTY3MywgNjU2NzcsIDY1NjgxLCA2NTY4NSwgCi0gICAgNjU2ODksIDY1NjkzLCA2NTY5NywgNjU3MDEsIDY1NzA1LCA2NTcwOSwgNjU3MTMsIDY1NzE3LCA2NTcyMSwgNjU3MjUsIAotICAgIDY1NzI5LCA2NTczMywgNjU3MzcsIDY1NzQxLCA2NTc0NSwgNjU3NDksIDY1NzUzLCA2NTc1NywgNjU3NjEsIDY1NzY1LCAKLSAgICA2NTc2OSwgNjU3NzMsIDY1Nzc3LCA2NTc4MSwgNjU3ODUsIDY1Nzg5LCA2NTc5MywgNjU3OTcsIDY1ODAxLCA2NTgwNSwgCi0gICAgNjU4MDksIDY1ODEzLCA2NTgxNywgNjU4MjEsIDY1ODI1LCA2NTgyOSwgNjU4MzMsIDY1ODM3LCA2NTg0MSwgNjU4NDUsIAotICAgIDY1ODQ5LCA2NTg1MywgNjU4NTcsIDY1ODYxLCA2NTg2NSwgNjU4NjksIDY1ODczLCA2NTg3NywgNjU4ODEsIDY1ODg1LCAKLSAgICA2NTg4OSwgNjU4OTMsIDY1ODk3LCA2NTkwMSwgNjU5MDUsIDY1OTA5LCA2NTkxMywgNjU5MTcsIDY1OTIxLCA2NTkyNSwgCi0gICAgNjU5MjksIDY1OTMzLCA2NTkzNywgNjU5NDEsIDY1OTQ1LCA2NTk0OSwgNjU5NTMsIDY1OTU3LCA2NTk2MSwgNjU5NjUsIAotICAgIDY1OTY5LCA2NTk3MywgNjU5NzcsIDY1OTgxLCA2NTk4NSwgNjU5ODksIDY1OTkzLCA2NTk5NywgNjYwMDEsIDY2MDA1LCAKLSAgICA2NjAwOSwgNjYwMTMsIDY2MDE3LCA2NjAyMSwgNjYwMjUsIDY2MDI5LCA2NjAzMywgNjYwMzcsIDY2MDQxLCA2NjA0NSwgCi0gICAgNjYwNDksIDY2MDUzLCA2NjA1NywgNjYwNjEsIDY2MDY1LCA2NjA2OSwgNjYwNzMsIDY2MDc3LCA2NjA4MSwgNjYwODUsIAotICAgIDY2MDg5LCA2NjA5MywgNjYwOTcsIDY2MTAxLCA2NjEwNSwgNjYxMDksIDY2MTEzLCA2NjExNywgNjYxMjEsIDY2MTI1LCAKLSAgICA2NjEyOSwgNjYxMzMsIDY2MTM3LCA2NjE0MSwgNjYxNDQsIDY2MTQ4LCA2NjE1MiwgNjYxNTYsIDY2MTYwLCA2NjE2NCwgCi0gICAgNjYxNjgsIDY2MTcyLCA2NjE3NiwgNjYxODAsIDY2MTg0LCA2NjE4OCwgNjYxOTIsIDY2MTk2LCA2NjIwMCwgNjYyMDQsIAotICAgIDY2MjA4LCA2NjIxMiwgNjYyMTYsIDY2MjIwLCA2NjIyNCwgNjYyMjgsIDY2MjMyLCA2NjIzNiwgNjYyNDAsIDY2MjQ0LCAKLSAgICA2NjI0OCwgNjYyNTIsIDY2MjU2LCA2NjI2MCwgNjYyNjQsIDY2MjY4LCA2NjI3MiwgNjYyNzYsIDY2MjgwLCA2NjI4NCwgCi0gICAgNjYyODgsIDY2MjkyLCA2NjI5NiwgNjYzMDAsIDY2MzA0LCA2NjMwOCwgNjYzMTIsIDY2MzE2LCA2NjMyMCwgNjYzMjQsIAotICAgIDY2MzI4LCA2NjMzMiwgNjYzMzYsIDY2MzQwLCA2NjM0NCwgNjYzNDgsIDY2MzUyLCA2NjM1NiwgNjYzNjAsIDY2MzY0LCAKLSAgICA2NjM2OCwgNjYzNzIsIDY2Mzc2LCA2NjM4MCwgNjYzODQsIDY2Mzg4LCA2NjM5MiwgNjYzOTYsIDY2NDAwLCA2NjQwNCwgCi0gICAgNjY0MDgsIDY2NDEyLCA2NjQxNiwgNjY0MjAsIDY2NDI0LCA2NjQyOCwgNjY0MzIsIDY2NDM2LCA2NjQ0MCwgNjY0NDQsIAotICAgIDY2NDQ4LCA2NjQ1MiwgNjY0NTYsIDY2NDYwLCA2NjQ2NCwgNjY0NjgsIDY2NDcyLCA2NjQ3NiwgNjY0ODAsIDY2NDg0LCAKLSAgICA2NjQ4OCwgNjY0OTIsIDY2NDk2LCA2NjUwMCwgNjY1MDQsIDY2NTA4LCA2NjUxMiwgNjY1MTYsIDY2NTIwLCA2NjUyNCwgCi0gICAgNjY1MjgsIDY2NTMyLCA2NjUzNiwgNjY1NDAsIDY2NTQ0LCA2NjU0OCwgNjY1NTIsIDY2NTU2LCA2NjU2MCwgNjY1NjQsIAotICAgIDY2NTY4LCA2NjU3MiwgNjY1NzYsIDY2NTgwLCA2NjU4NCwgNjY1ODgsIDY2NTkyLCA2NjU5NiwgNjY1OTksIDY2NjAzLCAKLSAgICA2NjYwNywgNjY2MTEsIDY2NjE1LCA2NjYxOSwgNjY2MjMsIDY2NjI3LCA2NjYzMSwgNjY2MzUsIDY2NjM5LCA2NjY0MywgCi0gICAgNjY2NDcsIDY2NjUxLCA2NjY1NSwgNjY2NTksIDY2NjYzLCA2NjY2NywgNjY2NzEsIDY2Njc1LCA2NjY3OSwgNjY2ODMsIAotICAgIDY2Njg3LCA2NjY5MSwgNjY2OTUsIDY2Njk5LCA2NjcwMywgNjY3MDcsIDY2NzExLCA2NjcxNSwgNjY3MTksIDY2NzIzLCAKLSAgICA2NjcyNywgNjY3MzEsIDY2NzM1LCA2NjczOSwgNjY3NDMsIDY2NzQ3LCA2Njc1MSwgNjY3NTUsIDY2NzU5LCA2Njc2MywgCi0gICAgNjY3NjcsIDY2NzcxLCA2Njc3NSwgNjY3NzksIDY2NzgzLCA2Njc4NywgNjY3OTEsIDY2Nzk1LCA2Njc5OSwgNjY4MDMsIAotICAgIDY2ODA3LCA2NjgxMSwgNjY4MTUsIDY2ODE5LCA2NjgyMywgNjY4MjcsIDY2ODMxLCA2NjgzNSwgNjY4MzksIDY2ODQzLCAKLSAgICA2Njg0NywgNjY4NTEsIDY2ODU1LCA2Njg1OSwgNjY4NjMsIDY2ODY3LCA2Njg3MSwgNjY4NzUsIDY2ODc5LCA2Njg4MywgCi0gICAgNjY4ODcsIDY2ODkxLCA2Njg5NSwgNjY4OTksIDY2OTAzLCA2NjkwNywgNjY5MTEsIDY2OTE1LCA2NjkxOSwgNjY5MjMsIAotICAgIDY2OTI3LCA2NjkzMSwgNjY5MzUsIDY2OTM5LCA2Njk0MywgNjY5NDcsIDY2OTUxLCA2Njk1NSwgNjY5NTksIDY2OTYzLCAKLSAgICA2Njk2NywgNjY5NzEsIDY2OTc1LCA2Njk3OSwgNjY5ODMsIDY2OTg3LCA2Njk5MSwgNjY5OTUsIDY2OTk5LCA2NzAwMywgCi0gICAgNjcwMDcsIDY3MDExLCA2NzAxNSwgNjcwMTksIDY3MDIzLCA2NzAyNywgNjcwMzEsIDY3MDM1LCA2NzAzOSwgNjcwNDMsIAotICAgIDY3MDQ3LCA2NzA1MSwgNjcwNTUsIDY3MDU5LCA2NzA2MywgNjcwNjcsIDY3MDcxLCA2NzA3NSwgNjcwNzksIDY3MDgzLCAKLSAgICA2NzA4NywgNjcwOTEsIDY3MDk1LCA2NzA5OSwgNjcxMDMsIDY3MTA3LCA2NzExMSwgNjcxMTUsIDY3MTE5LCA2NzEyMywgCi0gICAgNjcxMjcsIDY3MTMxLCA2NzEzNSwgNjcxMzksIDY3MTQzLCA2NzE0NywgNjcxNTEsIDY3MTU1LCA2NzE1OSwgNjcxNjMsIAotICAgIDY3MTY3LCA2NzE3MSwgNjcxNzUsIDY3MTc5LCA2NzE4MywgNjcxODcsIDY3MTkxLCA2NzE5NSwgNjcxOTksIDY3MjAyLCAKLSAgICA2NzIwNiwgNjcyMTAsIDY3MjE0LCA2NzIxOCwgNjcyMjIsIDY3MjI2LCA2NzIzMCwgNjcyMzMsIDY3MjM3LCA2NzI0MSwgCi0gICAgNjcyNDUsIDY3MjQ5LCA2NzI1MywgNjcyNTcsIDY3MjYxLCA2NzI2NSwgNjcyNjksIDY3MjczLCA2NzI3NywgNjcyODEsIAotICAgIDY3Mjg1LCA2NzI4OSwgNjcyOTMsIDY3Mjk3LCA2NzMwMSwgNjczMDUsIDY3MzA5LCA2NzMxMywgNjczMTcsIDY3MzIxLCAKLSAgICA2NzMyNSwgNjczMjksIDY3MzMzLCA2NzMzNywgNjczNDEsIDY3MzQ1LCA2NzM0OSwgNjczNTMsIDY3MzU3LCA2NzM2MSwgCi0gICAgNjczNjUsIDY3MzY5LCA2NzM3MywgNjczNzcsIDY3MzgxLCA2NzM4NSwgNjczODksIDY3MzkzLCA2NzM5NywgNjc0MDEsIAotICAgIDY3NDA1LCA2NzQwOSwgNjc0MTMsIDY3NDE3LCA2NzQyMSwgNjc0MjUsIDY3NDI5LCA2NzQzMywgNjc0MzcsIDY3NDQxLCAKLSAgICA2NzQ0NSwgNjc0NDksIDY3NDUzLCA2NzQ1NywgNjc0NjEsIDY3NDY1LCA2NzQ2OSwgNjc0NzMsIDY3NDc3LCA2NzQ4MSwgCi0gICAgNjc0ODUsIDY3NDg5LCA2NzQ5MywgNjc0OTcsIDY3NTAxLCA2NzUwNSwgNjc1MDksIDY3NTEzLCA2NzUxNywgNjc1MjEsIAotICAgIDY3NTI1LCA2NzUyOSwgNjc1MzMsIDY3NTM3LCA2NzU0MSwgNjc1NDUsIDY3NTQ5LCA2NzU1MywgNjc1NTcsIDY3NTYxLCAKLSAgICA2NzU2NSwgNjc1NjksIDY3NTczLCA2NzU3NywgNjc1ODEsIDY3NTg1LCA2NzU4OSwgNjc1OTMsIDY3NTk3LCA2NzYwMSwgCi0gICAgNjc2MDUsIDY3NjA5LCA2NzYxMywgNjc2MTcsIDY3NjIxLCA2NzYyNSwgNjc2MjksIDY3NjMzLCA2NzYzNywgNjc2NDEsIAotICAgIDY3NjQ1LCA2NzY0OSwgNjc2NTMsIDY3NjU3LCA2NzY2MSwgNjc2NjUsIDY3NjY5LCA2NzY3MywgNjc2NzcsIDY3NjgxLCAKLSAgICA2NzY4NSwgNjc2ODksIDY3NjkzLCA2NzY5NywgNjc3MDEsIDY3NzA1LCA2NzcwOSwgNjc3MTMsIDY3NzE3LCA2NzcyMSwgCi0gICAgNjc3MjUsIDY3NzI5LCA2NzczMywgNjc3MzcsIDY3NzQxLCA2Nzc0NSwgNjc3NDksIDY3NzUzLCA2Nzc1NywgNjc3NjEsIAotICAgIDY3NzY1LCA2Nzc2OSwgNjc3NzMsIDY3Nzc3LCA2Nzc4MSwgNjc3ODUsIDY3Nzg5LCA2Nzc5MywgNjc3OTcsIDY3ODAxLCAKLSAgICA2NzgwNSwgNjc4MDksIDY3ODEzLCA2NzgxNywgNjc4MjEsIDY3ODI1LCA2NzgyOSwgNjc4MzMsIDY3ODM3LCA2Nzg0MSwgCi0gICAgNjc4NDUsIDY3ODQ5LCA2Nzg1MywgNjc4NTcsIDY3ODYxLCA2Nzg2NSwgNjc4NjksIDY3ODczLCA2Nzg3NywgNjc4ODEsIAotICAgIDY3ODg1LCA2Nzg4OSwgNjc4OTMsIDY3ODk3LCA2NzkwMSwgNjc5MDUsIDY3OTA5LCA2NzkxMywgNjc5MTcsIDY3OTIxLCAKLSAgICA2NzkyNSwgNjc5MjksIDY3OTMzLCA2NzkzNywgNjc5NDEsIDY3OTQ1LCA2Nzk0OSwgNjc5NTMsIDY3OTU3LCA2Nzk2MCwgCi0gICAgNjc5NjQsIDY3OTY4LCA2Nzk3MiwgNjc5NzYsIDY3OTgwLCA2Nzk4NCwgNjc5ODgsIDY3OTkyLCA2Nzk5NiwgNjgwMDAsIAotICAgIDY4MDA0LCA2ODAwOCwgNjgwMTIsIDY4MDE2LCA2ODAyMCwgNjgwMjQsIDY4MDI4LCA2ODAzMiwgNjgwMzYsIDY4MDQwLCAKLSAgICA2ODA0NCwgNjgwNDgsIDY4MDUyLCA2ODA1NiwgNjgwNjAsIDY4MDY0LCA2ODA2OCwgNjgwNzIsIDY4MDc2LCA2ODA4MCwgCi0gICAgNjgwODQsIDY4MDg4LCA2ODA5MiwgNjgwOTYsIDY4MTAwLCA2ODEwNCwgNjgxMDgsIDY4MTEyLCA2ODExNiwgNjgxMjAsIAotICAgIDY4MTI0LCA2ODEyOCwgNjgxMzIsIDY4MTM2LCA2ODE0MCwgNjgxNDQsIDY4MTQ4LCA2ODE1MiwgNjgxNTYsIDY4MTYwLCAKLSAgICA2ODE2NCwgNjgxNjgsIDY4MTcyLCA2ODE3NiwgNjgxODAsIDY4MTg0LCA2ODE4OCwgNjgxOTIsIDY4MTk2LCA2ODIwMCwgCi0gICAgNjgyMDQsIDY4MjA4LCA2ODIxMiwgNjgyMTYsIDY4MjIwLCA2ODIyNCwgNjgyMjgsIDY4MjMyLCA2ODIzNiwgNjgyNDAsIAotICAgIDY4MjQ0LCA2ODI0OCwgNjgyNTIsIDY4MjU2LCA2ODI2MCwgNjgyNjQsIDY4MjY4LCA2ODI3MiwgNjgyNzYsIDY4MjgwLCAKLSAgICA2ODI4NCwgNjgyODgsIDY4MjkyLCA2ODI5NiwgNjgzMDAsIDY4MzA0LCA2ODMwOCwgNjgzMTIsIDY4MzE2LCA2ODMyMCwgCi0gICAgNjgzMjQsIDY4MzI4LCA2ODMzMiwgNjgzMzYsIDY4MzQwLCA2ODM0NCwgNjgzNDgsIDY4MzUyLCA2ODM1NiwgNjgzNjAsIAotICAgIDY4MzY0LCA2ODM2OCwgNjgzNzIsIDY4Mzc2LCA2ODM4MCwgNjgzODQsIDY4Mzg4LCA2ODM5MiwgNjgzOTYsIDY4NDAwLCAKLSAgICA2ODQwNCwgNjg0MDgsIDY4NDEyLCA2ODQxNiwgNjg0MjAsIDY4NDI0LCA2ODQyOCwgNjg0MzIsIDY4NDM2LCA2ODQ0MCwgCi0gICAgNjg0NDQsIDY4NDQ4LCA2ODQ1MiwgNjg0NTYsIDY4NDYwLCA2ODQ2NCwgNjg0NjgsIDY4NDcyLCA2ODQ3NiwgNjg0ODAsIAotICAgIDY4NDg0LCA2ODQ4OCwgNjg0OTIsIDY4NDk2LCA2ODUwMCwgNjg1MDQsIDY4NTA4LCA2ODUxMiwgNjg1MTYsIDY4NTIwLCAKLSAgICA2ODUyNCwgNjg1MjgsIDY4NTMyLCA2ODUzNiwgNjg1NDAsIDY4NTQ0LCA2ODU0OCwgNjg1NTIsIDY4NTU2LCA2ODU2MCwgCi0gICAgNjg1NjQsIDY4NTY4LCA2ODU3MiwgNjg1NzYsIDY4NTgwLCA2ODU4NCwgNjg1ODgsIDY4NTkyLCA2ODU5NiwgNjg2MDAsIAotICAgIDY4NjA0LCA2ODYwOCwgNjg2MTIsIDY4NjE2LCA2ODYyMCwgNjg2MjQsIDY4NjI4LCA2ODYzMiwgNjg2MzYsIDY4NjQwLCAKLSAgICA2ODY0NCwgNjg2NDgsIDY4NjUyLCA2ODY1NiwgNjg2NjAsIDY4NjY0LCA2ODY2OCwgNjg2NzIsIDY4Njc2LCA2ODY4MCwgCi0gICAgNjg2ODQsIDY4Njg4LCA2ODY5MiwgNjg2OTYsIDY4NzAwLCA2ODcwNCwgNjg3MDgsIDY4NzEyLCA2ODcxNiwgNjg3MjAsIAotICAgIDY4NzI0LCA2ODcyOCwgNjg3MzIsIDY4NzM2LCA2ODc0MCwgMCwgMCwgMCwgNjg3NDQsIDY4NzQ4LCA2ODc1MiwgNjg3NTYsIAotICAgIDY4NzYwLCA2ODc2NCwgNjg3NjgsIDY4NzcyLCA2ODc3NiwgNjg3ODAsIDY4Nzg0LCA2ODc4OCwgNjg3OTIsIDY4Nzk2LCAKLSAgICA2ODgwMCwgNjg4MDQsIDY4ODA4LCA2ODgxMiwgNjg4MTYsIDY4ODIwLCA2ODgyNCwgNjg4MjgsIDY4ODMyLCA2ODgzNiwgCi0gICAgNjg4NDAsIDY4ODQ0LCA2ODg0OCwgNjg4NTIsIDY4ODU2LCA2ODg2MCwgNjg4NjQsIDY4ODY4LCA2ODg3MiwgNjg4NzYsIAotICAgIDY4ODgwLCA2ODg4NCwgNjg4ODgsIDY4ODkyLCA2ODg5NiwgNjg5MDAsIDY4OTA0LCA2ODkwOCwgNjg5MTIsIDY4OTE2LCAKLSAgICA2ODkyMCwgNjg5MjQsIDY4OTI4LCA2ODkzMiwgNjg5MzYsIDY4OTQwLCA2ODk0NCwgNjg5NDgsIDY4OTUyLCA2ODk1NiwgCi0gICAgNjg5NjAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDY4OTY0LCA2ODk2OSwgNjg5NzMsIDY4OTc4LCA2ODk4MywgCi0gICAgNjg5ODgsIDY4OTkzLCA2ODk5OCwgNjkwMDIsIDY5MDA3LCA2OTAxMiwgNjkwMTcsIDY5MDIyLCA2OTAyNywgNjkwMzIsIAotICAgIDY5MDM3LCA2OTA0MSwgNjkwNDUsIDY5MDUwLCA2OTA1NCwgNjkwNTksIDY5MDY0LCA2OTA2OSwgNjkwNzMsIDY5MDc4LCAKLSAgICA2OTA4MywgNjkwODgsIDY5MDkzLCA2OTA5OCwgNjkxMDIsIDY5MTA3LCA2OTExMSwgNjkxMTYsIDY5MTIwLCA2OTEyNSwgCi0gICAgNjkxMjksIDY5MTMzLCA2OTEzNywgNjkxNDIsIDY5MTQ3LCA2OTE1MiwgNjkxNjAsIDY5MTY4LCA2OTE3NiwgNjkxODQsIAotICAgIDY5MTkxLCA2OTE5OSwgNjkyMDUsIDY5MjEzLCA2OTIxNywgNjkyMjEsIDY5MjI1LCA2OTIyOSwgNjkyMzMsIDY5MjM3LCAKLSAgICA2OTI0MSwgNjkyNDUsIDY5MjQ5LCA2OTI1MywgNjkyNTcsIDY5MjYxLCA2OTI2NSwgNjkyNjksIDY5MjczLCA2OTI3NywgCi0gICAgNjkyODEsIDY5Mjg1LCA2OTI4OSwgNjkyOTMsIDY5Mjk3LCA2OTMwMSwgNjkzMDUsIDY5MzA5LCA2OTMxMywgNjkzMTcsIAotICAgIDY5MzIxLCA2OTMyNSwgNjkzMjksIDY5MzMzLCA2OTMzNywgNjkzNDEsIDY5MzQ1LCA2OTM0OSwgNjkzNTMsIDY5MzU3LCAKLSAgICA2OTM2MCwgNjkzNjQsIDY5MzY4LCA2OTM3MiwgNjkzNzYsIDY5MzgwLCA2OTM4NCwgNjkzODgsIDY5MzkyLCA2OTM5NiwgCi0gICAgNjk0MDAsIDY5NDA0LCA2OTQwOCwgNjk0MTIsIDY5NDE2LCA2OTQyMCwgNjk0MjQsIDY5NDI4LCA2OTQzMiwgNjk0MzYsIAotICAgIDY5NDQwLCA2OTQ0NCwgNjk0NDgsIDY5NDUyLCA2OTQ1NiwgNjk0NjAsIDY5NDY0LCA2OTQ2OCwgNjk0NzIsIDY5NDc2LCAKLSAgICA2OTQ4MCwgNjk0ODQsIDY5NDg4LCA2OTQ5MiwgNjk0OTYsIDY5NTAwLCA2OTUwNCwgNjk1MDcsIDY5NTExLCA2OTUxNSwgCi0gICAgNjk1MTgsIDY5NTIyLCA2OTUyNiwgNjk1MzAsIDY5NTMzLCA2OTUzNywgNjk1NDEsIDY5NTQ1LCA2OTU0OSwgNjk1NTMsIAotICAgIDY5NTU3LCA2OTU2MSwgNjk1NjUsIDY5NTY5LCA2OTU3MywgNjk1NzcsIDY5NTgxLCA2OTU4NSwgNjk1ODksIDY5NTkyLCAKLSAgICA2OTU5NiwgNjk2MDAsIDY5NjAzLCA2OTYwNywgNjk2MTEsIDY5NjE1LCA2OTYxOSwgNjk2MjMsIDY5NjI3LCA2OTYzMCwgCi0gICAgNjk2MzMsIDY5NjM3LCA2OTY0MSwgNjk2NDUsIDY5NjQ4LCA2OTY1MSwgNjk2NTUsIDY5NjU5LCA2OTY2MywgNjk2NjcsIAotICAgIDY5NjcxLCA2OTY3NSwgNjk2NzksIDY5NjgzLCA2OTY4NywgNjk2OTEsIDY5Njk1LCA2OTY5OSwgNjk3MDMsIDY5NzA3LCAKLSAgICA2OTcxMSwgNjk3MTUsIDY5NzE5LCA2OTcyMywgNjk3MjcsIDY5NzMxLCA2OTczNSwgNjk3MzksIDY5NzQzLCA2OTc0NywgCi0gICAgNjk3NTEsIDY5NzU1LCA2OTc1OSwgNjk3NjMsIDY5NzY3LCA2OTc3MSwgNjk3NzUsIDY5Nzc5LCA2OTc4MywgNjk3ODcsIAotICAgIDY5NzkxLCA2OTc5NSwgNjk3OTksIDY5ODAyLCA2OTgwNiwgNjk4MTAsIDY5ODE0LCA2OTgxOCwgNjk4MjIsIDY5ODI2LCAKLSAgICA2OTgzMCwgNjk4MzQsIDY5ODM4LCA2OTg0MiwgNjk4NDYsIDY5ODUwLCA2OTg1NCwgNjk4NTgsIDY5ODYyLCA2OTg2NiwgCi0gICAgNjk4NzAsIDY5ODc0LCA2OTg3OCwgNjk4ODIsIDY5ODg2LCA2OTg5MCwgNjk4OTQsIDY5ODk4LCA2OTkwMiwgNjk5MDYsIAotICAgIDY5OTEwLCA2OTkxNCwgNjk5MTgsIDY5OTIyLCA2OTkyNiwgNjk5MzAsIDY5OTM0LCA2OTkzOCwgNjk5NDIsIDY5OTQ2LCAKLSAgICA2OTk0OSwgNjk5NTMsIDY5OTU3LCA2OTk2MSwgNjk5NjUsIDY5OTY5LCA2OTk3MywgNjk5NzcsIDY5OTgxLCA2OTk4NSwgCi0gICAgNjk5ODksIDY5OTkzLCA2OTk5NywgNzAwMDEsIDcwMDA1LCA3MDAwOSwgNzAwMTMsIDcwMDE2LCA3MDAyMCwgNzAwMjQsIAotICAgIDcwMDI4LCA3MDAzMiwgNzAwMzYsIDcwMDQwLCA3MDA0NCwgNzAwNDgsIDcwMDUyLCA3MDA1NiwgNzAwNjAsIDcwMDY0LCAKLSAgICA3MDA2OCwgNzAwNzIsIDcwMDc2LCA3MDA4MCwgNzAwODQsIDcwMDg4LCA3MDA5MiwgNzAwOTYsIDcwMTAwLCA3MDEwMywgCi0gICAgNzAxMDcsIDcwMTExLCA3MDExNSwgNzAxMTksIDcwMTIzLCA3MDEyNywgNzAxMzEsIDcwMTM1LCA3MDEzOSwgNzAxNDMsIAotICAgIDcwMTQ3LCA3MDE1MSwgNzAxNTUsIDcwMTU5LCA3MDE2MywgNzAxNjcsIDcwMTcxLCA3MDE3NSwgNzAxNzksIDcwMTgzLCAKLSAgICA3MDE4NywgNzAxOTEsIDcwMTk1LCA3MDE5OSwgNzAyMDMsIDcwMjA3LCA3MDIxMSwgNzAyMTUsIDcwMjE5LCA3MDIyMywgCi0gICAgNzAyMjcsIDcwMjMxLCA3MDIzNSwgNzAyMzksIDcwMjQzLCA3MDI0NywgNzAyNTEsIDcwMjU1LCA3MDI1OSwgNzAyNjMsIAotICAgIDcwMjY3LCA3MDI3MSwgNzAyNzUsIDcwMjc4LCA3MDI4MywgNzAyODcsIDcwMjkzLCA3MDI5OCwgNzAzMDQsIDcwMzA4LCAKLSAgICA3MDMxMiwgNzAzMTYsIDcwMzIwLCA3MDMyNCwgNzAzMjgsIDcwMzMyLCA3MDMzNiwgNzAzNDAsIDcwMzQ0LCA3MDM0OCwgCi0gICAgNzAzNTIsIDcwMzU2LCA3MDM2MCwgNzAzNjMsIDcwMzY2LCA3MDM2OSwgNzAzNzIsIDcwMzc1LCA3MDM3OCwgNzAzODEsIAotICAgIDcwMzg0LCA3MDM4NywgNzAzOTIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDcwMzk4LCA3MDQwMywgNzA0MDgsIDcwNDEzLCA3MDQxOCwgNzA0MjUsIDcwNDMyLCA3MDQzNywgNzA0NDIsIAotICAgIDcwNDQ3LCA3MDQ1MiwgNzA0NTksIDcwNDY2LCA3MDQ3MywgNzA0ODAsIDcwNDg3LCA3MDQ5NCwgNzA1MDQsIDcwNTE0LCAKLSAgICA3MDUyMSwgNzA1MjgsIDcwNTM1LCA3MDU0MiwgNzA1NDgsIDcwNTU0LCA3MDU2MywgNzA1NzIsIDcwNTc5LCA3MDU4NiwgCi0gICAgNzA1OTcsIDcwNjA4LCA3MDYxMywgNzA2MTgsIDcwNjI1LCA3MDYzMiwgNzA2MzksIDcwNjQ2LCA3MDY1MywgNzA2NjAsIAotICAgIDcwNjY3LCA3MDY3NCwgNzA2ODAsIDcwNjg2LCA3MDY5MiwgNzA2OTgsIDcwNzA1LCA3MDcxMiwgNzA3MTcsIDcwNzIxLCAKLSAgICA3MDcyOCwgNzA3MzUsIDcwNzQyLCA3MDc0NiwgNzA3NTMsIDcwNzU3LCA3MDc2MiwgNzA3NjYsIDcwNzcyLCA3MDc3NywgCi0gICAgNzA3ODMsIDcwNzg4LCA3MDc5MiwgNzA3OTYsIDcwNzk5LCA3MDgwMiwgNzA4MDcsIDcwODEyLCA3MDgxNywgNzA4MjIsIAotICAgIDcwODI3LCA3MDgzMiwgNzA4MzcsIDcwODQyLCA3MDg0NywgNzA4NTIsIDcwODYxLCA3MDg3MCwgNzA4NzUsIDcwODgwLCAKLSAgICA3MDg4NSwgNzA4OTAsIDcwODk1LCA3MDkwMCwgNzA5MDUsIDcwOTEwLCA3MDkxNSwgNzA5MjAsIDcwOTI1LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCA3MDkzMCwgNzA5MzYsIDcwOTM5LCA3MDk0MiwgNzA5NDUsIDcwOTQ5LCA3MDk1MywgNzA5NTcsIAotICAgIDcwOTYxLCA3MDk2NCwgNzA5NjgsIDcwOTcxLCA3MDk3NSwgNzA5NzgsIDcwOTgyLCA3MDk4NiwgNzA5OTAsIDcwOTk0LCAKLSAgICA3MDk5OCwgNzEwMDIsIDcxMDA2LCA3MTAwOSwgNzEwMTMsIDcxMDE3LCA3MTAyMSwgNzEwMjUsIDcxMDI5LCA3MTAzMywgCi0gICAgNzEwMzcsIDcxMDQxLCA3MTA0NSwgNzEwNDksIDcxMDUzLCA3MTA1NywgNzEwNjEsIDcxMDY1LCA3MTA2OCwgNzEwNzIsIAotICAgIDcxMDc2LCA3MTA4MCwgNzEwODQsIDcxMDg4LCA3MTA5MiwgNzEwOTYsIDcxMTAwLCA3MTEwNCwgNzExMDgsIDcxMTEyLCAKLSAgICA3MTExNiwgNzExMjAsIDcxMTI0LCA3MTEyOCwgNzExMzIsIDcxMTM2LCA3MTE0MCwgNzExNDQsIDcxMTQ4LCA3MTE1MiwgCi0gICAgNzExNTYsIDcxMTYwLCA3MTE2NCwgNzExNjcsIDcxMTcxLCA3MTE3NSwgNzExNzksIDcxMTgzLCA3MTE4NywgNzExOTEsIAotICAgIDcxMTk1LCA3MTE5OCwgNzEyMDIsIDcxMjA2LCA3MTIxMCwgNzEyMTQsIDcxMjE4LCA3MTIyMiwgNzEyMjYsIDcxMjMwLCAKLSAgICA3MTIzNCwgNzEyMzgsIDcxMjQyLCA3MTI0NiwgNzEyNTEsIDcxMjU2LCA3MTI1OSwgNzEyNjQsIDcxMjY3LCA3MTI3MCwgCi0gICAgNzEyNzMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcxMjc3LCA3MTI4NiwgNzEyOTUsIDcxMzA0LCA3MTMxMywgNzEzMjIsIAotICAgIDcxMzMxLCA3MTM0MCwgNzEzNDksIDcxMzU3LCA3MTM2NCwgNzEzNzIsIDcxMzc5LCA3MTM4NywgNzEzOTcsIDcxNDA2LCAKLSAgICA3MTQxNiwgNzE0MjUsIDcxNDM1LCA3MTQ0MywgNzE0NTAsIDcxNDU4LCA3MTQ2NSwgNzE0NzMsIDcxNDc4LCA3MTQ4MywgCi0gICAgNzE0ODgsIDcxNDk3LCA3MTUwMywgNzE1MDksIDcxNTE2LCA3MTUyNSwgNzE1MzMsIDcxNTQxLCA3MTU0OSwgNzE1NTYsIAotICAgIDcxNTYzLCA3MTU3MCwgNzE1NzcsIDcxNTgyLCA3MTU4NywgNzE1OTIsIDcxNTk3LCA3MTYwMiwgNzE2MDcsIDcxNjEyLCAKLSAgICA3MTYxNywgNzE2MjUsIDcxNjMzLCA3MTYzOSwgNzE2NDUsIDcxNjUwLCA3MTY1NSwgNzE2NjAsIDcxNjY1LCA3MTY3MCwgCi0gICAgNzE2NzUsIDcxNjgwLCA3MTY4NSwgNzE2OTMsIDcxNzAxLCA3MTcwNiwgNzE3MTEsIDcxNzIxLCA3MTczMSwgNzE3MzgsIAotICAgIDcxNzQ1LCA3MTc1NCwgNzE3NjMsIDcxNzc1LCA3MTc4NywgNzE3OTMsIDcxNzk5LCA3MTgwNywgNzE4MTUsIDcxODI1LCAKLSAgICA3MTgzNSwgNzE4NDIsIDcxODQ5LCA3MTg1NCwgNzE4NTksIDcxODcxLCA3MTg4MywgNzE4OTEsIDcxODk5LCA3MTkwOSwgCi0gICAgNzE5MTksIDcxOTMxLCA3MTk0MywgNzE5NTIsIDcxOTYxLCA3MTk2OCwgNzE5NzUsIDcxOTgyLCA3MTk4OSwgNzE5OTgsIAotICAgIDcyMDA3LCA3MjAxMiwgNzIwMTcsIDcyMDI0LCA3MjAzMSwgNzIwMzgsIDcyMDQ1LCA3MjA1NywgNzIwNjksIDcyMDc0LCAKLSAgICA3MjA3OSwgNzIwODQsIDcyMDg5LCA3MjA5NCwgNzIwOTksIDcyMTA0LCA3MjEwOSwgNzIxMTMsIDcyMTE4LCA3MjEyMywgCi0gICAgNzIxMjgsIDcyMTMzLCA3MjEzOCwgNzIxNDQsIDcyMTQ5LCA3MjE1NCwgNzIxNjEsIDcyMTY4LCA3MjE3NSwgNzIxODIsIAotICAgIDcyMTg5LCA3MjE5OCwgNzIyMDcsIDcyMjEzLCA3MjIxOSwgNzIyMjUsIDcyMjMxLCA3MjIzOCwgNzIyNDUsIDcyMjUyLCAKLSAgICA3MjI1OSwgNzIyNjYsIDcyMjcwLCA3MjI3NywgNzIyODIsIDcyMjg3LCA3MjI5NCwgMCwgNzIzMDcsIDcyMzE1LCA3MjMyMywgCi0gICAgNzIzMzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcyMzM3LCA3MjM0NiwgNzIzNTUsIDcyMzY0LCAKLSAgICA3MjM3MywgNzIzODIsIDcyMzkxLCA3MjQwMCwgNzI0MDksIDcyNDE4LCA3MjQyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjM2ODMsIDYzNjkyLCA2MzcwMSwgNjM3MTIsIAorICAgIDYzNzE5LCA2MzcyNCwgNjM3MjksIDYzNzM2LCA2Mzc0MywgNjM3NDksIDYzNzU0LCA2Mzc1OSwgNjM3NjQsIDYzNzY5LCAKKyAgICA2Mzc3NiwgNjM3ODEsIDYzNzg2LCA2Mzc5MSwgNjM4MDIsIDYzODA3LCA2MzgxMiwgNjM4MTksIDYzODI0LCA2MzgzMSwgCisgICAgNjM4MzYsIDYzODQxLCA2Mzg0OCwgNjM4NTUsIDYzODYyLCA2Mzg3MSwgNjM4ODAsIDYzODg1LCA2Mzg5MCwgNjM4OTUsIAorICAgIDYzOTAyLCA2MzkwNywgNjM5MTcsIDYzOTI0LCA2MzkyOSwgNjM5MzQsIDYzOTM5LCA2Mzk0NCwgNjM5NDksIDYzOTU0LCAKKyAgICA2Mzk2MywgNjM5NzAsIDYzOTc3LCA2Mzk4MiwgNjM5ODksIDYzOTk0LCA2NDAwMSwgNjQwMTAsIDY0MDIxLCA2NDAyNiwgCisgICAgNjQwMzUsIDY0MDQwLCA2NDA0NywgNjQwNTYsIDY0MDY1LCA2NDA3MCwgNjQwNzUsIDY0MDgyLCA2NDA4OCwgNjQwOTUsIAorICAgIDY0MTAyLCA2NDEwNiwgNjQxMTAsIDY0MTEzLCA2NDExNywgNjQxMjEsIDY0MTI1LCA2NDEyOSwgNjQxMzMsIDY0MTM3LCAKKyAgICA2NDE0MSwgNjQxNDQsIDY0MTQ4LCA2NDE1MiwgNjQxNTYsIDY0MTYwLCA2NDE2NCwgNjQxNjgsIDY0MTcxLCA2NDE3NSwgCisgICAgNjQxNzksIDY0MTgyLCA2NDE4NiwgNjQxOTAsIDY0MTk0LCA2NDE5OCwgNjQyMDIsIDY0MjA2LCA2NDIxMCwgNjQyMTQsIAorICAgIDY0MjE4LCA2NDIyMiwgNjQyMjYsIDY0MjMwLCA2NDIzNCwgNjQyMzgsIDY0MjQyLCA2NDI0NiwgNjQyNTAsIDY0MjU0LCAKKyAgICA2NDI1OCwgNjQyNjIsIDY0MjY2LCA2NDI3MCwgNjQyNzQsIDY0Mjc4LCA2NDI4MiwgNjQyODYsIDY0MjkwLCA2NDI5NCwgCisgICAgNjQyOTgsIDY0MzAyLCA2NDMwNiwgNjQzMTAsIDY0MzE0LCA2NDMxOCwgNjQzMjIsIDY0MzI2LCA2NDMzMCwgNjQzMzQsIAorICAgIDY0MzM4LCA2NDM0MiwgNjQzNDYsIDY0MzUwLCA2NDM1NCwgNjQzNTgsIDY0MzYxLCA2NDM2NSwgNjQzNjksIDY0MzczLCAKKyAgICA2NDM3NywgNjQzODEsIDY0Mzg1LCA2NDM4OSwgNjQzOTMsIDY0Mzk3LCA2NDQwMSwgNjQ0MDUsIDY0NDA5LCA2NDQxMywgCisgICAgNjQ0MTcsIDY0NDIxLCA2NDQyNSwgNjQ0MjksIDY0NDMzLCA2NDQzNywgNjQ0NDEsIDY0NDQ1LCA2NDQ0OSwgNjQ0NTMsIAorICAgIDY0NDU3LCA2NDQ2MSwgNjQ0NjUsIDY0NDY5LCA2NDQ3MywgNjQ0NzcsIDY0NDgxLCA2NDQ4NSwgNjQ0ODksIDY0NDkzLCAKKyAgICA2NDQ5NywgNjQ1MDEsIDY0NTA1LCA2NDUwOSwgNjQ1MTMsIDY0NTE3LCA2NDUyMSwgNjQ1MjUsIDY0NTI5LCA2NDUzMywgCisgICAgNjQ1MzcsIDY0NTQxLCA2NDU0NSwgNjQ1NDksIDY0NTUzLCA2NDU1NywgNjQ1NjEsIDY0NTY1LCA2NDU2OSwgNjQ1NzMsIAorICAgIDY0NTc3LCA2NDU4MSwgNjQ1ODUsIDY0NTg5LCA2NDU5MywgNjQ1OTcsIDY0NjAxLCA2NDYwNSwgNjQ2MDksIDY0NjEzLCAKKyAgICA2NDYxNywgNjQ2MjEsIDY0NjI1LCA2NDYyOSwgNjQ2MzMsIDY0NjM3LCA2NDY0MSwgNjQ2NDUsIDY0NjQ5LCA2NDY1MywgCisgICAgNjQ2NTcsIDY0NjYxLCA2NDY2NSwgNjQ2NjksIDY0NjczLCA2NDY3NywgNjQ2ODEsIDY0Njg1LCA2NDY4OSwgNjQ2OTMsIAorICAgIDY0Njk3LCA2NDcwMSwgNjQ3MDUsIDY0NzA5LCA2NDcxMywgNjQ3MTcsIDY0NzIxLCA2NDcyNSwgNjQ3MjksIDY0NzMzLCAKKyAgICA2NDczNywgNjQ3NDEsIDY0NzQ1LCA2NDc0OSwgNjQ3NTMsIDY0NzU3LCA2NDc2MSwgNjQ3NjUsIDY0NzY5LCA2NDc3MywgCisgICAgNjQ3NzcsIDY0NzgxLCA2NDc4NSwgNjQ3ODksIDY0NzkzLCA2NDc5NywgNjQ4MDEsIDY0ODA1LCA2NDgwOSwgNjQ4MTMsIAorICAgIDY0ODE3LCA2NDgyMSwgNjQ4MjUsIDY0ODI5LCA2NDgzMiwgNjQ4MzYsIDY0ODQwLCA2NDg0NCwgNjQ4NDgsIDY0ODUyLCAKKyAgICA2NDg1NiwgNjQ4NjAsIDY0ODY0LCA2NDg2OCwgNjQ4NzIsIDY0ODc2LCA2NDg4MCwgNjQ4ODQsIDY0ODg4LCA2NDg5MiwgCisgICAgNjQ4OTYsIDY0OTAwLCA2NDkwNCwgNjQ5MDgsIDY0OTEyLCA2NDkxNiwgNjQ5MjAsIDY0OTI0LCA2NDkyOCwgNjQ5MzIsIAorICAgIDY0OTM2LCA2NDk0MCwgNjQ5NDQsIDY0OTQ4LCA2NDk1MiwgNjQ5NTYsIDY0OTYwLCA2NDk2NCwgNjQ5NjgsIDY0OTcyLCAKKyAgICA2NDk3NiwgNjQ5ODAsIDY0OTg0LCA2NDk4OCwgNjQ5OTIsIDY0OTk2LCA2NTAwMCwgNjUwMDQsIDY1MDA4LCA2NTAxMiwgCisgICAgNjUwMTYsIDY1MDIwLCA2NTAyNCwgNjUwMjgsIDY1MDMyLCA2NTAzNiwgNjUwNDAsIDY1MDQ0LCA2NTA0OCwgNjUwNTIsIAorICAgIDY1MDU2LCA2NTA2MCwgNjUwNjQsIDY1MDY4LCA2NTA3MiwgNjUwNzYsIDY1MDgwLCA2NTA4NCwgNjUwODgsIDY1MDkyLCAKKyAgICA2NTA5NiwgNjUxMDAsIDY1MTA0LCA2NTEwOCwgNjUxMTIsIDY1MTE2LCA2NTEyMCwgNjUxMjQsIDY1MTI4LCA2NTEzMiwgCisgICAgNjUxMzYsIDY1MTQwLCA2NTE0NCwgNjUxNDgsIDY1MTUyLCA2NTE1NiwgNjUxNjAsIDY1MTY0LCA2NTE2OCwgNjUxNzIsIAorICAgIDY1MTc2LCA2NTE4MCwgNjUxODQsIDY1MTg4LCA2NTE5MiwgNjUxOTYsIDY1MjAwLCA2NTIwNCwgNjUyMDgsIDY1MjEyLCAKKyAgICA2NTIxNiwgNjUyMjAsIDY1MjI0LCA2NTIyOCwgNjUyMzIsIDY1MjM2LCA2NTI0MCwgNjUyNDQsIDY1MjQ4LCA2NTI1MiwgCisgICAgNjUyNTYsIDY1MjYwLCA2NTI2NCwgNjUyNjgsIDY1MjcyLCA2NTI3NiwgNjUyODAsIDY1Mjg0LCA2NTI4OCwgNjUyOTIsIAorICAgIDY1Mjk1LCA2NTI5OSwgNjUzMDMsIDY1MzA3LCA2NTMxMSwgNjUzMTUsIDY1MzE5LCA2NTMyMywgNjUzMjcsIDY1MzMxLCAKKyAgICA2NTMzNSwgNjUzMzksIDY1MzQzLCA2NTM0NywgNjUzNTEsIDY1MzU1LCA2NTM1OSwgNjUzNjMsIDY1MzY3LCA2NTM3MSwgCisgICAgNjUzNzUsIDY1Mzc5LCA2NTM4MywgNjUzODcsIDY1MzkxLCA2NTM5NSwgNjUzOTksIDY1NDAzLCA2NTQwNywgNjU0MTEsIAorICAgIDY1NDE1LCA2NTQxOSwgNjU0MjMsIDY1NDI3LCA2NTQzMSwgNjU0MzUsIDY1NDM5LCA2NTQ0MywgNjU0NDcsIDY1NDUxLCAKKyAgICA2NTQ1NSwgNjU0NTksIDY1NDYzLCA2NTQ2NywgNjU0NzEsIDY1NDc1LCA2NTQ3OSwgNjU0ODMsIDY1NDg3LCA2NTQ5MSwgCisgICAgNjU0OTUsIDY1NDk5LCA2NTUwMywgNjU1MDcsIDY1NTExLCA2NTUxNSwgNjU1MTksIDY1NTIzLCA2NTUyNywgNjU1MzEsIAorICAgIDY1NTM1LCA2NTUzOSwgNjU1NDMsIDY1NTQ3LCA2NTU1MSwgNjU1NTUsIDY1NTU5LCA2NTU2MywgNjU1NjcsIDY1NTcxLCAKKyAgICA2NTU3NSwgNjU1NzksIDY1NTgzLCA2NTU4NywgNjU1OTEsIDY1NTk1LCA2NTU5OSwgNjU2MDMsIDY1NjA3LCA2NTYxMSwgCisgICAgNjU2MTUsIDY1NjE5LCA2NTYyMywgNjU2MjcsIDY1NjMxLCA2NTYzNSwgNjU2MzksIDY1NjQzLCA2NTY0NywgNjU2NTEsIAorICAgIDY1NjU0LCA2NTY1OCwgNjU2NjIsIDY1NjY2LCA2NTY3MCwgNjU2NzQsIDY1Njc4LCA2NTY4MiwgNjU2ODYsIDY1NjkwLCAKKyAgICA2NTY5NCwgNjU2OTgsIDY1NzAyLCA2NTcwNiwgNjU3MTAsIDY1NzE0LCA2NTcxOCwgNjU3MjIsIDY1NzI2LCA2NTczMCwgCisgICAgNjU3MzQsIDY1NzM4LCA2NTc0MiwgNjU3NDYsIDY1NzUwLCA2NTc1NCwgNjU3NTgsIDY1NzYyLCA2NTc2NiwgNjU3NzAsIAorICAgIDY1Nzc0LCA2NTc3OCwgNjU3ODIsIDY1Nzg2LCA2NTc5MCwgNjU3OTQsIDY1Nzk4LCA2NTgwMiwgNjU4MDYsIDY1ODEwLCAKKyAgICA2NTgxNCwgNjU4MTgsIDY1ODIyLCA2NTgyNiwgNjU4MzAsIDY1ODM0LCA2NTgzOCwgNjU4NDIsIDY1ODQ2LCA2NTg1MCwgCisgICAgNjU4NTQsIDY1ODU4LCA2NTg2MiwgNjU4NjYsIDY1ODcwLCA2NTg3NCwgNjU4NzgsIDY1ODgyLCA2NTg4NiwgNjU4OTAsIAorICAgIDY1ODk0LCA2NTg5OCwgNjU5MDIsIDY1OTA2LCA2NTkxMCwgNjU5MTQsIDY1OTE4LCA2NTkyMiwgNjU5MjYsIDY1OTMwLCAKKyAgICA2NTkzNCwgNjU5MzgsIDY1OTQyLCA2NTk0NiwgNjU5NTAsIDY1OTU0LCA2NTk1OCwgNjU5NjIsIDY1OTY2LCA2NTk3MCwgCisgICAgNjU5NzQsIDY1OTc4LCA2NTk4MiwgNjU5ODYsIDY1OTkwLCA2NTk5NCwgNjU5OTgsIDY2MDAyLCA2NjAwNiwgNjYwMTAsIAorICAgIDY2MDE0LCA2NjAxOCwgNjYwMjIsIDY2MDI2LCA2NjAzMCwgNjYwMzQsIDY2MDM4LCA2NjA0MiwgNjYwNDYsIDY2MDUwLCAKKyAgICA2NjA1NCwgNjYwNTgsIDY2MDYyLCA2NjA2NiwgNjYwNzAsIDY2MDc0LCA2NjA3OCwgNjYwODIsIDY2MDg2LCA2NjA5MCwgCisgICAgNjYwOTQsIDY2MDk4LCA2NjEwMiwgNjYxMDYsIDY2MTEwLCA2NjExNCwgNjYxMTgsIDY2MTIyLCA2NjEyNiwgNjYxMzAsIAorICAgIDY2MTM0LCA2NjEzOCwgNjYxNDIsIDY2MTQ2LCA2NjE0OSwgNjYxNTMsIDY2MTU3LCA2NjE2MSwgNjYxNjUsIDY2MTY5LCAKKyAgICA2NjE3MywgNjYxNzcsIDY2MTgxLCA2NjE4NSwgNjYxODksIDY2MTkzLCA2NjE5NywgNjYyMDEsIDY2MjA1LCA2NjIwOSwgCisgICAgNjYyMTMsIDY2MjE3LCA2NjIyMSwgNjYyMjUsIDY2MjI5LCA2NjIzMywgNjYyMzcsIDY2MjQxLCA2NjI0NSwgNjYyNDksIAorICAgIDY2MjUzLCA2NjI1NywgNjYyNjEsIDY2MjY1LCA2NjI2OSwgNjYyNzMsIDY2Mjc3LCA2NjI4MSwgNjYyODUsIDY2Mjg5LCAKKyAgICA2NjI5MywgNjYyOTcsIDY2MzAxLCA2NjMwNSwgNjYzMDksIDY2MzEzLCA2NjMxNywgNjYzMjEsIDY2MzI1LCA2NjMyOSwgCisgICAgNjYzMzMsIDY2MzM3LCA2NjM0MSwgNjYzNDUsIDY2MzQ5LCA2NjM1MywgNjYzNTcsIDY2MzYxLCA2NjM2NSwgNjYzNjksIAorICAgIDY2MzczLCA2NjM3NywgNjYzODEsIDY2Mzg1LCA2NjM4OSwgNjYzOTMsIDY2Mzk3LCA2NjQwMSwgNjY0MDUsIDY2NDA5LCAKKyAgICA2NjQxMywgNjY0MTcsIDY2NDIxLCA2NjQyNSwgNjY0MjksIDY2NDMzLCA2NjQzNywgNjY0NDEsIDY2NDQ1LCA2NjQ0OSwgCisgICAgNjY0NTMsIDY2NDU3LCA2NjQ2MSwgNjY0NjUsIDY2NDY5LCA2NjQ3MywgNjY0NzcsIDY2NDgxLCA2NjQ4NSwgNjY0ODksIAorICAgIDY2NDkzLCA2NjQ5NywgNjY1MDEsIDY2NTA1LCA2NjUwOSwgNjY1MTMsIDY2NTE3LCA2NjUyMSwgNjY1MjUsIDY2NTI5LCAKKyAgICA2NjUzMywgNjY1MzcsIDY2NTQxLCA2NjU0NSwgNjY1NDksIDY2NTUzLCA2NjU1NywgNjY1NjEsIDY2NTY1LCA2NjU2OSwgCisgICAgNjY1NzMsIDY2NTc3LCA2NjU4MSwgNjY1ODUsIDY2NTg5LCA2NjU5MywgNjY1OTcsIDY2NjAxLCA2NjYwNCwgNjY2MDgsIAorICAgIDY2NjEyLCA2NjYxNiwgNjY2MjAsIDY2NjI0LCA2NjYyOCwgNjY2MzIsIDY2NjM2LCA2NjY0MCwgNjY2NDQsIDY2NjQ4LCAKKyAgICA2NjY1MiwgNjY2NTYsIDY2NjYwLCA2NjY2NCwgNjY2NjgsIDY2NjcyLCA2NjY3NiwgNjY2ODAsIDY2Njg0LCA2NjY4OCwgCisgICAgNjY2OTIsIDY2Njk2LCA2NjcwMCwgNjY3MDQsIDY2NzA4LCA2NjcxMiwgNjY3MTYsIDY2NzIwLCA2NjcyNCwgNjY3MjgsIAorICAgIDY2NzMyLCA2NjczNiwgNjY3NDAsIDY2NzQ0LCA2Njc0OCwgNjY3NTIsIDY2NzU2LCA2Njc2MCwgNjY3NjQsIDY2NzY4LCAKKyAgICA2Njc3MiwgNjY3NzYsIDY2NzgwLCA2Njc4NCwgNjY3ODgsIDY2NzkyLCA2Njc5NiwgNjY4MDAsIDY2ODA0LCA2NjgwOCwgCisgICAgNjY4MTIsIDY2ODE2LCA2NjgyMCwgNjY4MjQsIDY2ODI4LCA2NjgzMiwgNjY4MzYsIDY2ODQwLCA2Njg0NCwgNjY4NDgsIAorICAgIDY2ODUyLCA2Njg1NiwgNjY4NjAsIDY2ODY0LCA2Njg2OCwgNjY4NzIsIDY2ODc2LCA2Njg4MCwgNjY4ODQsIDY2ODg4LCAKKyAgICA2Njg5MiwgNjY4OTYsIDY2OTAwLCA2NjkwNCwgNjY5MDgsIDY2OTEyLCA2NjkxNiwgNjY5MjAsIDY2OTI0LCA2NjkyOCwgCisgICAgNjY5MzIsIDY2OTM2LCA2Njk0MCwgNjY5NDQsIDY2OTQ4LCA2Njk1MiwgNjY5NTYsIDY2OTYwLCA2Njk2NCwgNjY5NjgsIAorICAgIDY2OTcyLCA2Njk3NiwgNjY5ODAsIDY2OTg0LCA2Njk4OCwgNjY5OTIsIDY2OTk2LCA2NzAwMCwgNjcwMDQsIDY3MDA4LCAKKyAgICA2NzAxMiwgNjcwMTYsIDY3MDIwLCA2NzAyNCwgNjcwMjgsIDY3MDMyLCA2NzAzNiwgNjcwNDAsIDY3MDQ0LCA2NzA0OCwgCisgICAgNjcwNTIsIDY3MDU2LCA2NzA2MCwgNjcwNjQsIDY3MDY4LCA2NzA3MiwgNjcwNzYsIDY3MDgwLCA2NzA4NCwgNjcwODgsIAorICAgIDY3MDkyLCA2NzA5NiwgNjcxMDAsIDY3MTA0LCA2NzEwOCwgNjcxMTIsIDY3MTE2LCA2NzEyMCwgNjcxMjQsIDY3MTI4LCAKKyAgICA2NzEzMiwgNjcxMzYsIDY3MTQwLCA2NzE0NCwgNjcxNDgsIDY3MTUyLCA2NzE1NiwgNjcxNjAsIDY3MTY0LCA2NzE2OCwgCisgICAgNjcxNzIsIDY3MTc2LCA2NzE4MCwgNjcxODQsIDY3MTg4LCA2NzE5MiwgNjcxOTYsIDY3MjAwLCA2NzIwNCwgNjcyMDcsIAorICAgIDY3MjExLCA2NzIxNSwgNjcyMTksIDY3MjIzLCA2NzIyNywgNjcyMzEsIDY3MjM1LCA2NzIzOCwgNjcyNDIsIDY3MjQ2LCAKKyAgICA2NzI1MCwgNjcyNTQsIDY3MjU4LCA2NzI2MiwgNjcyNjYsIDY3MjcwLCA2NzI3NCwgNjcyNzgsIDY3MjgyLCA2NzI4NiwgCisgICAgNjcyOTAsIDY3Mjk0LCA2NzI5OCwgNjczMDIsIDY3MzA2LCA2NzMxMCwgNjczMTQsIDY3MzE4LCA2NzMyMiwgNjczMjYsIAorICAgIDY3MzMwLCA2NzMzNCwgNjczMzgsIDY3MzQyLCA2NzM0NiwgNjczNTAsIDY3MzU0LCA2NzM1OCwgNjczNjIsIDY3MzY2LCAKKyAgICA2NzM3MCwgNjczNzQsIDY3Mzc4LCA2NzM4MiwgNjczODYsIDY3MzkwLCA2NzM5NCwgNjczOTgsIDY3NDAyLCA2NzQwNiwgCisgICAgNjc0MTAsIDY3NDE0LCA2NzQxOCwgNjc0MjIsIDY3NDI2LCA2NzQzMCwgNjc0MzQsIDY3NDM4LCA2NzQ0MiwgNjc0NDYsIAorICAgIDY3NDUwLCA2NzQ1NCwgNjc0NTgsIDY3NDYyLCA2NzQ2NiwgNjc0NzAsIDY3NDc0LCA2NzQ3OCwgNjc0ODIsIDY3NDg2LCAKKyAgICA2NzQ5MCwgNjc0OTQsIDY3NDk4LCA2NzUwMiwgNjc1MDYsIDY3NTEwLCA2NzUxNCwgNjc1MTgsIDY3NTIyLCA2NzUyNiwgCisgICAgNjc1MzAsIDY3NTM0LCA2NzUzOCwgNjc1NDIsIDY3NTQ2LCA2NzU1MCwgNjc1NTQsIDY3NTU4LCA2NzU2MiwgNjc1NjYsIAorICAgIDY3NTcwLCA2NzU3NCwgNjc1NzgsIDY3NTgyLCA2NzU4NiwgNjc1OTAsIDY3NTk0LCA2NzU5OCwgNjc2MDIsIDY3NjA2LCAKKyAgICA2NzYxMCwgNjc2MTQsIDY3NjE4LCA2NzYyMiwgNjc2MjYsIDY3NjMwLCA2NzYzNCwgNjc2MzgsIDY3NjQyLCA2NzY0NiwgCisgICAgNjc2NTAsIDY3NjU0LCA2NzY1OCwgNjc2NjIsIDY3NjY2LCA2NzY3MCwgNjc2NzQsIDY3Njc4LCA2NzY4MiwgNjc2ODYsIAorICAgIDY3NjkwLCA2NzY5NCwgNjc2OTgsIDY3NzAyLCA2NzcwNiwgNjc3MTAsIDY3NzE0LCA2NzcxOCwgNjc3MjIsIDY3NzI2LCAKKyAgICA2NzczMCwgNjc3MzQsIDY3NzM4LCA2Nzc0MiwgNjc3NDYsIDY3NzUwLCA2Nzc1NCwgNjc3NTgsIDY3NzYyLCA2Nzc2NiwgCisgICAgNjc3NzAsIDY3Nzc0LCA2Nzc3OCwgNjc3ODIsIDY3Nzg2LCA2Nzc5MCwgNjc3OTQsIDY3Nzk4LCA2NzgwMiwgNjc4MDYsIAorICAgIDY3ODEwLCA2NzgxNCwgNjc4MTgsIDY3ODIyLCA2NzgyNiwgNjc4MzAsIDY3ODM0LCA2NzgzOCwgNjc4NDIsIDY3ODQ2LCAKKyAgICA2Nzg1MCwgNjc4NTQsIDY3ODU4LCA2Nzg2MiwgNjc4NjYsIDY3ODcwLCA2Nzg3NCwgNjc4NzgsIDY3ODgyLCA2Nzg4NiwgCisgICAgNjc4OTAsIDY3ODk0LCA2Nzg5OCwgNjc5MDIsIDY3OTA2LCA2NzkxMCwgNjc5MTQsIDY3OTE4LCA2NzkyMiwgNjc5MjYsIAorICAgIDY3OTMwLCA2NzkzNCwgNjc5MzgsIDY3OTQyLCA2Nzk0NiwgNjc5NTAsIDY3OTU0LCA2Nzk1OCwgNjc5NjIsIDY3OTY1LCAKKyAgICA2Nzk2OSwgNjc5NzMsIDY3OTc3LCA2Nzk4MSwgNjc5ODUsIDY3OTg5LCA2Nzk5MywgNjc5OTcsIDY4MDAxLCA2ODAwNSwgCisgICAgNjgwMDksIDY4MDEzLCA2ODAxNywgNjgwMjEsIDY4MDI1LCA2ODAyOSwgNjgwMzMsIDY4MDM3LCA2ODA0MSwgNjgwNDUsIAorICAgIDY4MDQ5LCA2ODA1MywgNjgwNTcsIDY4MDYxLCA2ODA2NSwgNjgwNjksIDY4MDczLCA2ODA3NywgNjgwODEsIDY4MDg1LCAKKyAgICA2ODA4OSwgNjgwOTMsIDY4MDk3LCA2ODEwMSwgNjgxMDUsIDY4MTA5LCA2ODExMywgNjgxMTcsIDY4MTIxLCA2ODEyNSwgCisgICAgNjgxMjksIDY4MTMzLCA2ODEzNywgNjgxNDEsIDY4MTQ1LCA2ODE0OSwgNjgxNTMsIDY4MTU3LCA2ODE2MSwgNjgxNjUsIAorICAgIDY4MTY5LCA2ODE3MywgNjgxNzcsIDY4MTgxLCA2ODE4NSwgNjgxODksIDY4MTkzLCA2ODE5NywgNjgyMDEsIDY4MjA1LCAKKyAgICA2ODIwOSwgNjgyMTMsIDY4MjE3LCA2ODIyMSwgNjgyMjUsIDY4MjI5LCA2ODIzMywgNjgyMzcsIDY4MjQxLCA2ODI0NSwgCisgICAgNjgyNDksIDY4MjUzLCA2ODI1NywgNjgyNjEsIDY4MjY1LCA2ODI2OSwgNjgyNzMsIDY4Mjc3LCA2ODI4MSwgNjgyODUsIAorICAgIDY4Mjg5LCA2ODI5MywgNjgyOTcsIDY4MzAxLCA2ODMwNSwgNjgzMDksIDY4MzEzLCA2ODMxNywgNjgzMjEsIDY4MzI1LCAKKyAgICA2ODMyOSwgNjgzMzMsIDY4MzM3LCA2ODM0MSwgNjgzNDUsIDY4MzQ5LCA2ODM1MywgNjgzNTcsIDY4MzYxLCA2ODM2NSwgCisgICAgNjgzNjksIDY4MzczLCA2ODM3NywgNjgzODEsIDY4Mzg1LCA2ODM4OSwgNjgzOTMsIDY4Mzk3LCA2ODQwMSwgNjg0MDUsIAorICAgIDY4NDA5LCA2ODQxMywgNjg0MTcsIDY4NDIxLCA2ODQyNSwgNjg0MjksIDY4NDMzLCA2ODQzNywgNjg0NDEsIDY4NDQ1LCAKKyAgICA2ODQ0OSwgNjg0NTMsIDY4NDU3LCA2ODQ2MSwgNjg0NjUsIDY4NDY5LCA2ODQ3MywgNjg0NzcsIDY4NDgxLCA2ODQ4NSwgCisgICAgNjg0ODksIDY4NDkzLCA2ODQ5NywgNjg1MDEsIDY4NTA1LCA2ODUwOSwgNjg1MTMsIDY4NTE3LCA2ODUyMSwgNjg1MjUsIAorICAgIDY4NTI5LCA2ODUzMywgNjg1MzcsIDY4NTQxLCA2ODU0NSwgNjg1NDksIDY4NTUzLCA2ODU1NywgNjg1NjEsIDY4NTY1LCAKKyAgICA2ODU2OSwgNjg1NzMsIDY4NTc3LCA2ODU4MSwgNjg1ODUsIDY4NTg5LCA2ODU5MywgNjg1OTcsIDY4NjAxLCA2ODYwNSwgCisgICAgNjg2MDksIDY4NjEzLCA2ODYxNywgNjg2MjEsIDY4NjI1LCA2ODYyOSwgNjg2MzMsIDY4NjM3LCA2ODY0MSwgNjg2NDUsIAorICAgIDY4NjQ5LCA2ODY1MywgNjg2NTcsIDY4NjYxLCA2ODY2NSwgNjg2NjksIDY4NjczLCA2ODY3NywgNjg2ODEsIDY4Njg1LCAKKyAgICA2ODY4OSwgNjg2OTMsIDY4Njk3LCA2ODcwMSwgNjg3MDUsIDY4NzA5LCA2ODcxMywgNjg3MTcsIDY4NzIxLCA2ODcyNSwgCisgICAgNjg3MjksIDY4NzMzLCA2ODczNywgNjg3NDEsIDY4NzQ1LCAwLCAwLCAwLCA2ODc0OSwgNjg3NTMsIDY4NzU3LCA2ODc2MSwgCisgICAgNjg3NjUsIDY4NzY5LCA2ODc3MywgNjg3NzcsIDY4NzgxLCA2ODc4NSwgNjg3ODksIDY4NzkzLCA2ODc5NywgNjg4MDEsIAorICAgIDY4ODA1LCA2ODgwOSwgNjg4MTMsIDY4ODE3LCA2ODgyMSwgNjg4MjUsIDY4ODI5LCA2ODgzMywgNjg4MzcsIDY4ODQxLCAKKyAgICA2ODg0NSwgNjg4NDksIDY4ODUzLCA2ODg1NywgNjg4NjEsIDY4ODY1LCA2ODg2OSwgNjg4NzMsIDY4ODc3LCA2ODg4MSwgCisgICAgNjg4ODUsIDY4ODg5LCA2ODg5MywgNjg4OTcsIDY4OTAxLCA2ODkwNSwgNjg5MDksIDY4OTEzLCA2ODkxNywgNjg5MjEsIAorICAgIDY4OTI1LCA2ODkyOSwgNjg5MzMsIDY4OTM3LCA2ODk0MSwgNjg5NDUsIDY4OTQ5LCA2ODk1MywgNjg5NTcsIDY4OTYxLCAKKyAgICA2ODk2NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjg5NjksIDY4OTc0LCA2ODk3OCwgNjg5ODMsIDY4OTg4LCAKKyAgICA2ODk5MywgNjg5OTgsIDY5MDAzLCA2OTAwNywgNjkwMTIsIDY5MDE3LCA2OTAyMiwgNjkwMjcsIDY5MDMyLCA2OTAzNywgCisgICAgNjkwNDIsIDY5MDQ2LCA2OTA1MCwgNjkwNTUsIDY5MDU5LCA2OTA2NCwgNjkwNjksIDY5MDc0LCA2OTA3OCwgNjkwODMsIAorICAgIDY5MDg4LCA2OTA5MywgNjkwOTgsIDY5MTAzLCA2OTEwNywgNjkxMTIsIDY5MTE2LCA2OTEyMSwgNjkxMjUsIDY5MTMwLCAKKyAgICA2OTEzNCwgNjkxMzgsIDY5MTQyLCA2OTE0NywgNjkxNTIsIDY5MTU3LCA2OTE2NSwgNjkxNzMsIDY5MTgxLCA2OTE4OSwgCisgICAgNjkxOTYsIDY5MjA0LCA2OTIxMCwgNjkyMTgsIDY5MjIyLCA2OTIyNiwgNjkyMzAsIDY5MjM0LCA2OTIzOCwgNjkyNDIsIAorICAgIDY5MjQ2LCA2OTI1MCwgNjkyNTQsIDY5MjU4LCA2OTI2MiwgNjkyNjYsIDY5MjcwLCA2OTI3NCwgNjkyNzgsIDY5MjgyLCAKKyAgICA2OTI4NiwgNjkyOTAsIDY5Mjk0LCA2OTI5OCwgNjkzMDIsIDY5MzA2LCA2OTMxMCwgNjkzMTQsIDY5MzE4LCA2OTMyMiwgCisgICAgNjkzMjYsIDY5MzMwLCA2OTMzNCwgNjkzMzgsIDY5MzQyLCA2OTM0NiwgNjkzNTAsIDY5MzU0LCA2OTM1OCwgNjkzNjIsIAorICAgIDY5MzY1LCA2OTM2OSwgNjkzNzMsIDY5Mzc3LCA2OTM4MSwgNjkzODUsIDY5Mzg5LCA2OTM5MywgNjkzOTcsIDY5NDAxLCAKKyAgICA2OTQwNSwgNjk0MDksIDY5NDEzLCA2OTQxNywgNjk0MjEsIDY5NDI1LCA2OTQyOSwgNjk0MzMsIDY5NDM3LCA2OTQ0MSwgCisgICAgNjk0NDUsIDY5NDQ5LCA2OTQ1MywgNjk0NTcsIDY5NDYxLCA2OTQ2NSwgNjk0NjksIDY5NDczLCA2OTQ3NywgNjk0ODEsIAorICAgIDY5NDg1LCA2OTQ4OSwgNjk0OTMsIDY5NDk3LCA2OTUwMSwgNjk1MDUsIDY5NTA5LCA2OTUxMiwgNjk1MTYsIDY5NTIwLCAKKyAgICA2OTUyMywgNjk1MjcsIDY5NTMxLCA2OTUzNSwgNjk1MzgsIDY5NTQyLCA2OTU0NiwgNjk1NTAsIDY5NTU0LCA2OTU1OCwgCisgICAgNjk1NjIsIDY5NTY2LCA2OTU3MCwgNjk1NzQsIDY5NTc4LCA2OTU4MiwgNjk1ODYsIDY5NTkwLCA2OTU5NCwgNjk1OTcsIAorICAgIDY5NjAxLCA2OTYwNSwgNjk2MDgsIDY5NjEyLCA2OTYxNiwgNjk2MjAsIDY5NjI0LCA2OTYyOCwgNjk2MzIsIDY5NjM1LCAKKyAgICA2OTYzOCwgNjk2NDIsIDY5NjQ2LCA2OTY1MCwgNjk2NTMsIDY5NjU2LCA2OTY2MCwgNjk2NjQsIDY5NjY4LCA2OTY3MiwgCisgICAgNjk2NzYsIDY5NjgwLCA2OTY4NCwgNjk2ODgsIDY5NjkyLCA2OTY5NiwgNjk3MDAsIDY5NzA0LCA2OTcwOCwgNjk3MTIsIAorICAgIDY5NzE2LCA2OTcyMCwgNjk3MjQsIDY5NzI4LCA2OTczMiwgNjk3MzYsIDY5NzQwLCA2OTc0NCwgNjk3NDgsIDY5NzUyLCAKKyAgICA2OTc1NiwgNjk3NjAsIDY5NzY0LCA2OTc2OCwgNjk3NzIsIDY5Nzc2LCA2OTc4MCwgNjk3ODQsIDY5Nzg4LCA2OTc5MiwgCisgICAgNjk3OTYsIDY5ODAwLCA2OTgwNCwgNjk4MDcsIDY5ODExLCA2OTgxNSwgNjk4MTksIDY5ODIzLCA2OTgyNywgNjk4MzEsIAorICAgIDY5ODM1LCA2OTgzOSwgNjk4NDMsIDY5ODQ3LCA2OTg1MSwgNjk4NTUsIDY5ODU5LCA2OTg2MywgNjk4NjcsIDY5ODcxLCAKKyAgICA2OTg3NSwgNjk4NzksIDY5ODgzLCA2OTg4NywgNjk4OTEsIDY5ODk1LCA2OTg5OSwgNjk5MDMsIDY5OTA3LCA2OTkxMSwgCisgICAgNjk5MTUsIDY5OTE5LCA2OTkyMywgNjk5MjcsIDY5OTMxLCA2OTkzNSwgNjk5MzksIDY5OTQzLCA2OTk0NywgNjk5NTEsIAorICAgIDY5OTU0LCA2OTk1OCwgNjk5NjIsIDY5OTY2LCA2OTk3MCwgNjk5NzQsIDY5OTc4LCA2OTk4MiwgNjk5ODYsIDY5OTkwLCAKKyAgICA2OTk5NCwgNjk5OTgsIDcwMDAyLCA3MDAwNiwgNzAwMTAsIDcwMDE0LCA3MDAxOCwgNzAwMjEsIDcwMDI1LCA3MDAyOSwgCisgICAgNzAwMzMsIDcwMDM3LCA3MDA0MSwgNzAwNDUsIDcwMDQ5LCA3MDA1MywgNzAwNTcsIDcwMDYxLCA3MDA2NSwgNzAwNjksIAorICAgIDcwMDczLCA3MDA3NywgNzAwODEsIDcwMDg1LCA3MDA4OSwgNzAwOTMsIDcwMDk3LCA3MDEwMSwgNzAxMDUsIDcwMTA4LCAKKyAgICA3MDExMiwgNzAxMTYsIDcwMTIwLCA3MDEyNCwgNzAxMjgsIDcwMTMyLCA3MDEzNiwgNzAxNDAsIDcwMTQ0LCA3MDE0OCwgCisgICAgNzAxNTIsIDcwMTU2LCA3MDE2MCwgNzAxNjQsIDcwMTY4LCA3MDE3MiwgNzAxNzYsIDcwMTgwLCA3MDE4NCwgNzAxODgsIAorICAgIDcwMTkyLCA3MDE5NiwgNzAyMDAsIDcwMjA0LCA3MDIwOCwgNzAyMTIsIDcwMjE2LCA3MDIyMCwgNzAyMjQsIDcwMjI4LCAKKyAgICA3MDIzMiwgNzAyMzYsIDcwMjQwLCA3MDI0NCwgNzAyNDgsIDcwMjUyLCA3MDI1NiwgNzAyNjAsIDcwMjY0LCA3MDI2OCwgCisgICAgNzAyNzIsIDcwMjc2LCA3MDI4MCwgNzAyODMsIDcwMjg4LCA3MDI5MiwgNzAyOTgsIDcwMzAzLCA3MDMwOSwgNzAzMTMsIAorICAgIDcwMzE3LCA3MDMyMSwgNzAzMjUsIDcwMzI5LCA3MDMzMywgNzAzMzcsIDcwMzQxLCA3MDM0NSwgNzAzNDksIDcwMzUzLCAKKyAgICA3MDM1NywgNzAzNjEsIDcwMzY1LCA3MDM2OCwgNzAzNzEsIDcwMzc0LCA3MDM3NywgNzAzODAsIDcwMzgzLCA3MDM4NiwgCisgICAgNzAzODksIDcwMzkyLCA3MDM5NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgNzA0MDMsIDcwNDA4LCA3MDQxMywgNzA0MTgsIDcwNDIzLCA3MDQzMCwgNzA0MzcsIDcwNDQyLCA3MDQ0NywgCisgICAgNzA0NTIsIDcwNDU3LCA3MDQ2NCwgNzA0NzEsIDcwNDc4LCA3MDQ4NSwgNzA0OTIsIDcwNDk5LCA3MDUwOSwgNzA1MTksIAorICAgIDcwNTI2LCA3MDUzMywgNzA1NDAsIDcwNTQ3LCA3MDU1MywgNzA1NTksIDcwNTY4LCA3MDU3NywgNzA1ODQsIDcwNTkxLCAKKyAgICA3MDYwMiwgNzA2MTMsIDcwNjE4LCA3MDYyMywgNzA2MzAsIDcwNjM3LCA3MDY0NCwgNzA2NTEsIDcwNjU4LCA3MDY2NSwgCisgICAgNzA2NzIsIDcwNjc5LCA3MDY4NSwgNzA2OTEsIDcwNjk3LCA3MDcwMywgNzA3MTAsIDcwNzE3LCA3MDcyMiwgNzA3MjYsIAorICAgIDcwNzMzLCA3MDc0MCwgNzA3NDcsIDcwNzUxLCA3MDc1OCwgNzA3NjIsIDcwNzY3LCA3MDc3MSwgNzA3NzcsIDcwNzgyLCAKKyAgICA3MDc4OCwgNzA3OTMsIDcwNzk3LCA3MDgwMSwgNzA4MDQsIDcwODA3LCA3MDgxMiwgNzA4MTcsIDcwODIyLCA3MDgyNywgCisgICAgNzA4MzIsIDcwODM3LCA3MDg0MiwgNzA4NDcsIDcwODUyLCA3MDg1NywgNzA4NjYsIDcwODc1LCA3MDg4MCwgNzA4ODUsIAorICAgIDcwODkwLCA3MDg5NSwgNzA5MDAsIDcwOTA1LCA3MDkxMCwgNzA5MTUsIDcwOTIwLCA3MDkyNSwgNzA5MzAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDcwOTM1LCA3MDk0MSwgNzA5NDQsIDcwOTQ3LCA3MDk1MCwgNzA5NTQsIDcwOTU4LCA3MDk2MiwgCisgICAgNzA5NjYsIDcwOTY5LCA3MDk3MywgNzA5NzYsIDcwOTgwLCA3MDk4MywgNzA5ODcsIDcwOTkxLCA3MDk5NSwgNzA5OTksIAorICAgIDcxMDAzLCA3MTAwNywgNzEwMTEsIDcxMDE0LCA3MTAxOCwgNzEwMjIsIDcxMDI2LCA3MTAzMCwgNzEwMzQsIDcxMDM4LCAKKyAgICA3MTA0MiwgNzEwNDYsIDcxMDUwLCA3MTA1NCwgNzEwNTgsIDcxMDYyLCA3MTA2NiwgNzEwNzAsIDcxMDczLCA3MTA3NywgCisgICAgNzEwODEsIDcxMDg1LCA3MTA4OSwgNzEwOTMsIDcxMDk3LCA3MTEwMSwgNzExMDUsIDcxMTA5LCA3MTExMywgNzExMTcsIAorICAgIDcxMTIxLCA3MTEyNSwgNzExMjksIDcxMTMzLCA3MTEzNywgNzExNDEsIDcxMTQ1LCA3MTE0OSwgNzExNTMsIDcxMTU3LCAKKyAgICA3MTE2MSwgNzExNjUsIDcxMTY5LCA3MTE3MiwgNzExNzYsIDcxMTgwLCA3MTE4NCwgNzExODgsIDcxMTkyLCA3MTE5NiwgCisgICAgNzEyMDAsIDcxMjAzLCA3MTIwNywgNzEyMTEsIDcxMjE1LCA3MTIxOSwgNzEyMjMsIDcxMjI3LCA3MTIzMSwgNzEyMzUsIAorICAgIDcxMjM5LCA3MTI0MywgNzEyNDcsIDcxMjUxLCA3MTI1NiwgNzEyNjEsIDcxMjY0LCA3MTI2OSwgNzEyNzIsIDcxMjc1LCAKKyAgICA3MTI3OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzEyODIsIDcxMjkxLCA3MTMwMCwgNzEzMDksIDcxMzE4LCA3MTMyNywgCisgICAgNzEzMzYsIDcxMzQ1LCA3MTM1NCwgNzEzNjIsIDcxMzY5LCA3MTM3NywgNzEzODQsIDcxMzkyLCA3MTQwMiwgNzE0MTEsIAorICAgIDcxNDIxLCA3MTQzMCwgNzE0NDAsIDcxNDQ4LCA3MTQ1NSwgNzE0NjMsIDcxNDcwLCA3MTQ3OCwgNzE0ODMsIDcxNDg4LCAKKyAgICA3MTQ5MywgNzE1MDIsIDcxNTA4LCA3MTUxNCwgNzE1MjEsIDcxNTMwLCA3MTUzOCwgNzE1NDYsIDcxNTU0LCA3MTU2MSwgCisgICAgNzE1NjgsIDcxNTc1LCA3MTU4MiwgNzE1ODcsIDcxNTkyLCA3MTU5NywgNzE2MDIsIDcxNjA3LCA3MTYxMiwgNzE2MTcsIAorICAgIDcxNjIyLCA3MTYzMCwgNzE2MzgsIDcxNjQ0LCA3MTY1MCwgNzE2NTUsIDcxNjYwLCA3MTY2NSwgNzE2NzAsIDcxNjc1LCAKKyAgICA3MTY4MCwgNzE2ODUsIDcxNjkwLCA3MTY5OCwgNzE3MDYsIDcxNzExLCA3MTcxNiwgNzE3MjYsIDcxNzM2LCA3MTc0MywgCisgICAgNzE3NTAsIDcxNzU5LCA3MTc2OCwgNzE3ODAsIDcxNzkyLCA3MTc5OCwgNzE4MDQsIDcxODEyLCA3MTgyMCwgNzE4MzAsIAorICAgIDcxODQwLCA3MTg0NywgNzE4NTQsIDcxODU5LCA3MTg2NCwgNzE4NzYsIDcxODg4LCA3MTg5NiwgNzE5MDQsIDcxOTE0LCAKKyAgICA3MTkyNCwgNzE5MzYsIDcxOTQ4LCA3MTk1NywgNzE5NjYsIDcxOTczLCA3MTk4MCwgNzE5ODcsIDcxOTk0LCA3MjAwMywgCisgICAgNzIwMTIsIDcyMDE3LCA3MjAyMiwgNzIwMjksIDcyMDM2LCA3MjA0MywgNzIwNTAsIDcyMDYyLCA3MjA3NCwgNzIwNzksIAorICAgIDcyMDg0LCA3MjA4OSwgNzIwOTQsIDcyMDk5LCA3MjEwNCwgNzIxMDksIDcyMTE0LCA3MjExOCwgNzIxMjMsIDcyMTI4LCAKKyAgICA3MjEzMywgNzIxMzgsIDcyMTQzLCA3MjE0OSwgNzIxNTQsIDcyMTU5LCA3MjE2NiwgNzIxNzMsIDcyMTgwLCA3MjE4NywgCisgICAgNzIxOTQsIDcyMjAzLCA3MjIxMiwgNzIyMTgsIDcyMjI0LCA3MjIzMCwgNzIyMzYsIDcyMjQzLCA3MjI1MCwgNzIyNTcsIAorICAgIDcyMjY0LCA3MjI3MSwgNzIyNzUsIDcyMjgyLCA3MjI4NywgNzIyOTIsIDcyMjk5LCAwLCA3MjMxMiwgNzIzMjAsIDcyMzI4LCAKKyAgICA3MjMzNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzIzNDIsIDcyMzUxLCA3MjM2MCwgNzIzNjksIAorICAgIDcyMzc4LCA3MjM4NywgNzIzOTYsIDcyNDA1LCA3MjQxNCwgNzI0MjMsIDcyNDMyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3MjQzNCwgCi0gICAgNzI0NDEsIDcyNDQ3LCA3MjQ1NCwgNzI0NjIsIDcyNDcwLCA3MjQ3NywgNzI0ODUsIDcyNDkyLCA3MjQ5OCwgNzI1MDQsIAotICAgIDcyNTExLCA3MjUxNywgNzI1MjMsIDcyNTI5LCA3MjUzNiwgNzI1NDMsIDcyNTUwLCA3MjU1NywgNzI1NjQsIDcyNTcxLCAKLSAgICA3MjU3OCwgNzI1ODUsIDcyNTkyLCA3MjU5OSwgNzI2MDYsIDcyNjEzLCA3MjYyMCwgNzI2MjcsIDcyNjMzLCA3MjY0MCwgCi0gICAgNzI2NDcsIDcyNjU0LCA3MjY2MSwgNzI2NjgsIDcyNjc1LCA3MjY4MiwgNzI2ODksIDcyNjk2LCA3MjcwMywgNzI3MTAsIAotICAgIDcyNzE3LCA3MjcyNCwgNzI3MzEsIDcyNzM4LCA3Mjc0NSwgNzI3NTIsIDcyNzU5LCA3Mjc2NywgNzI3NzUsIDcyNzgzLCAKLSAgICA3Mjc5MSwgMCwgMCwgMCwgMCwgNzI3OTksIDcyODA4LCA3MjgxNywgNzI4MjYsIDcyODM1LCA3Mjg0NCwgNzI4NTMsIAotICAgIDcyODYwLCA3Mjg2NywgNzI4NzQsIDAsIDAsIDAsIDAsIDAsIDAsIDcyODgxLCA3Mjg4NSwgNzI4OTAsIDcyODk1LCA3MjkwMCwgCi0gICAgNzI5MDUsIDcyOTEwLCA3MjkxNSwgNzI5MjAsIDcyOTI1LCA3MjkzMCwgNzI5MzUsIDcyOTM5LCA3Mjk0MywgNzI5NDgsIAotICAgIDcyOTUzLCA3Mjk1NywgNzI5NjIsIDcyOTY3LCA3Mjk3MiwgNzI5NzcsIDcyOTgyLCA3Mjk4NywgNzI5OTIsIDcyOTk2LCAKLSAgICA3MzAwMCwgNzMwMDUsIDczMDEwLCA3MzAxNCwgNzMwMTgsIDczMDIyLCA3MzAyNiwgNzMwMzAsIDczMDM0LCA3MzAzOCwgCi0gICAgNzMwNDMsIDczMDQ4LCA3MzA1MywgNzMwNTgsIDczMDYzLCA3MzA3MCwgNzMwNzYsIDczMDgxLCA3MzA4NiwgNzMwOTEsIAotICAgIDczMDk2LCA3MzEwMiwgNzMxMDksIDczMTE1LCA3MzEyMiwgNzMxMjgsIDczMTM0LCA3MzEzOSwgNzMxNDYsIDczMTUyLCAKLSAgICA3MzE1NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzMxNjMsIDczMTY3LCA3MzE3MSwgNzMxNzQsIDczMTc4LCA3MzE4MSwgCi0gICAgNzMxODUsIDczMTg4LCA3MzE5MiwgNzMxOTYsIDczMjAxLCA3MzIwNSwgNzMyMTAsIDczMjEzLCA3MzIxNywgNzMyMjEsIAotICAgIDczMjI0LCA3MzIyOCwgNzMyMzIsIDczMjM1LCA3MzIzOSwgNzMyNDMsIDczMjQ3LCA3MzI1MSwgNzMyNTUsIDczMjU5LCAKLSAgICA3MzI2MywgNzMyNjcsIDczMjcxLCA3MzI3NSwgNzMyNzksIDczMjgzLCA3MzI4NywgNzMyOTEsIDczMjk1LCA3MzI5OSwgCi0gICAgNzMzMDMsIDczMzA3LCA3MzMxMCwgNzMzMTMsIDczMzE3LCA3MzMyMSwgNzMzMjUsIDczMzI4LCA3MzMzMSwgNzMzMzQsIAotICAgIDczMzM4LCA3MzM0MiwgNzMzNDYsIDczMzUwLCA3MzM1MywgNzMzNTYsIDczMzYwLCA3MzM2NSwgNzMzNzAsIDczMzc0LCAKLSAgICA3MzM3OSwgNzMzODMsIDczMzg4LCA3MzM5MywgNzMzOTksIDczNDA0LCA3MzQxMCwgNzM0MTQsIDczNDE5LCA3MzQyNCwgCi0gICAgNzM0MjgsIDczNDMzLCA3MzQzOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzM0NDIsIDczNDQ1LCA3MzQ0OSwgCi0gICAgNzM0NTMsIDczNDU2LCA3MzQ1OSwgNzM0NjIsIDczNDY1LCA3MzQ2OCwgNzM0NzEsIDczNDc0LCA3MzQ3NywgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNzM0ODAsIDczNDg1LCA3MzQ4OSwgNzM0OTMsIDczNDk3LCA3MzUwMSwgNzM1MDUsIDczNTA5LCA3MzUxMywgCi0gICAgNzM1MTcsIDczNTIxLCA3MzUyNSwgNzM1MjksIDczNTMzLCA3MzUzNywgNzM1NDEsIDczNTQ1LCA3MzU1MCwgNzM1NTUsIAotICAgIDczNTYxLCA3MzU2NywgNzM1NzQsIDczNTc5LCA3MzU4NCwgNzM1OTAsIDczNTk0LCA3MzU5OSwgNzM2MDIsIDAsIDAsIDAsIAotICAgIDAsIDczNjA1LCA3MzYxMiwgNzM2MTgsIDczNjI0LCA3MzYzMCwgNzM2MzYsIDczNjQyLCA3MzY0OCwgNzM2NTQsIDczNjYwLCAKLSAgICA3MzY2NiwgNzM2NzIsIDczNjc5LCA3MzY4NiwgNzM2OTMsIDczNjk5LCA3MzcwNiwgNzM3MTMsIDczNzIwLCA3MzcyNywgCi0gICAgNzM3MzQsIDczNzQwLCA3Mzc0NiwgNzM3NTMsIDczNzU5LCA3Mzc2NiwgNzM3NzMsIDczNzc5LCA3Mzc4NSwgNzM3OTIsIAotICAgIDczNzk5LCA3MzgwNiwgNzM4MTIsIDczODE5LCA3MzgyNiwgNzM4MzIsIDczODM5LCA3Mzg0NSwgNzM4NTIsIDczODU5LCAKLSAgICA3Mzg2NSwgNzM4NzEsIDczODc4LCA3Mzg4NCwgNzM4OTEsIDczODk4LCA3MzkwNywgNzM5MTQsIDczOTIxLCA3MzkyNSwgCi0gICAgNzM5MzAsIDczOTM1LCA3Mzk0MCwgNzM5NDUsIDczOTQ5LCA3Mzk1MywgNzM5NTgsIDczOTYyLCA3Mzk2NywgNzM5NzIsIAotICAgIDczOTc3LCA3Mzk4MSwgNzM5ODUsIDczOTkwLCA3Mzk5NCwgNzM5OTksIDc0MDAzLCA3NDAwOCwgNzQwMTMsIDc0MDE4LCAKLSAgICA3NDAyMywgNzQwMjcsIDc0MDMyLCA3NDAzNywgNzQwNDIsIDc0MDQ4LCA3NDA1MywgNzQwNTksIDc0MDY1LCA3NDA3MSwgCi0gICAgNzQwNzcsIDc0MDgzLCA3NDA4OCwgNzQwOTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDc0MDk4LCAKLSAgICA3NDEwMywgNzQxMDcsIDc0MTExLCA3NDExNSwgNzQxMTksIDc0MTIzLCA3NDEyNywgNzQxMzEsIDc0MTM1LCA3NDEzOSwgCi0gICAgNzQxNDMsIDc0MTQ3LCA3NDE1MSwgNzQxNTUsIDc0MTU5LCA3NDE2MywgNzQxNjcsIDc0MTcxLCA3NDE3NSwgNzQxNzksIAotICAgIDc0MTgzLCA3NDE4NywgNzQxOTEsIDc0MTk1LCA3NDE5OSwgNzQyMDMsIDc0MjA3LCA3NDIxMSwgNzQyMTUsIDAsIDAsIDAsIAotICAgIDc0MjE5LCA3NDIyMywgNzQyMjcsIDc0MjMxLCA3NDIzNSwgNzQyMzgsIDc0MjQ0LCA3NDI0NywgNzQyNTEsIDc0MjU0LCAKLSAgICA3NDI2MCwgNzQyNjYsIDc0Mjc0LCA3NDI3NywgNzQyODEsIDc0Mjg0LCA3NDI4NywgNzQyOTMsIDc0Mjk5LCA3NDMwMywgCi0gICAgNzQzMDksIDc0MzEzLCA3NDMxNywgNzQzMjMsIDc0MzI3LCA3NDMzMywgNzQzMzksIDc0MzQzLCA3NDM0NywgNzQzNTMsIAotICAgIDc0MzU3LCA3NDM2MywgNzQzNjksIDc0MzczLCA3NDM3OSwgNzQzODMsIDc0Mzg5LCA3NDM5MiwgNzQzOTUsIDc0NDAxLCAKLSAgICA3NDQwNSwgNzQ0MTEsIDc0NDE0LCA3NDQxNywgNzQ0MjAsIDc0NDI2LCA3NDQzMCwgNzQ0MzQsIDc0NDQwLCA3NDQ0NiwgCi0gICAgNzQ0NDksIDc0NDUyLCA3NDQ1OCwgNzQ0NjMsIDc0NDY4LCA3NDQ3MywgNzQ0ODAsIDc0NDg1LCA3NDQ5MiwgNzQ0OTcsIAotICAgIDc0NTA0LCA3NDUwOSwgNzQ1MTQsIDc0NTE5LCA3NDUyNCwgNzQ1MjcsIDc0NTMxLCA3NDUzNSwgNzQ1NDAsIDc0NTQ1LCAKLSAgICA3NDU1MCwgNzQ1NTUsIDc0NTYwLCA3NDU2NSwgNzQ1NzAsIDc0NTc1LCA3NDU4MiwgNzQ1ODcsIDAsIDc0NTk0LCA3NDU5NywgCi0gICAgNzQ2MDEsIDc0NjA0LCA3NDYwNywgNzQ2MTAsIDc0NjEzLCA3NDYxNiwgNzQ2MTksIDc0NjIyLCA3NDYyNSwgMCwgMCwgMCwgCi0gICAgMCwgNzQ2MjgsIDc0NjM1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3NDY0MCwgNzQ2NDMsIDc0NjQ2LCA3NDY0OSwgNzQ2NTIsIAotICAgIDc0NjU2LCA3NDY1OSwgNzQ2NjIsIDc0NjY2LCA3NDY3MCwgNzQ2NzQsIDc0Njc4LCA3NDY4MiwgNzQ2ODYsIDc0NjkwLCAKLSAgICA3NDY5NCwgNzQ2OTgsIDc0NzAyLCA3NDcwNiwgNzQ3MTAsIDc0NzE0LCA3NDcxOCwgNzQ3MjIsIDc0NzI2LCA3NDczMCwgCi0gICAgNzQ3MzMsIDc0NzM3LCA3NDc0MCwgNzQ3NDQsIDc0NzQ4LCA3NDc1MiwgNzQ3NTYsIDc0NzYwLCA3NDc2MywgNzQ3NjcsIAotICAgIDc0NzcwLCA3NDc3MywgNzQ3NzcsIDc0NzgxLCA3NDc4NSwgNzQ3ODgsIDc0NzkxLCA3NDc5NiwgNzQ4MDAsIDc0ODA1LCAKLSAgICA3NDgxMCwgNzQ4MTQsIDc0ODE5LCA3NDgyMywgNzQ4MjgsIDc0ODMzLCA3NDgzOCwgNzQ4NDIsIDc0ODQ2LCA3NDg1MSwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzQ4NTYsIDc0ODYxLCA3NDg2NiwgNzQ4NzEsIDc0ODc3LCA3NDg4MiwgNzQ4ODcsIAotICAgIDc0ODkyLCA3NDg5NywgNzQ5MDIsIDc0OTA2LCA3NDkxMCwgNzQ5MTUsIDc0OTIwLCAwLCAwLCA3NDkyNiwgNzQ5MzAsIAotICAgIDc0OTMzLCA3NDkzNiwgNzQ5MzksIDc0OTQyLCA3NDk0NSwgNzQ5NDgsIDc0OTUxLCA3NDk1NCwgMCwgMCwgNzQ5NTcsIAotICAgIDc0OTYyLCA3NDk2NywgNzQ5NzMsIDc0OTgwLCA3NDk4NiwgNzQ5OTIsIDc0OTk4LCA3NTAwNCwgNzUwMTAsIDc1MDE2LCAKLSAgICA3NTAyMiwgNzUwMjgsIDc1MDM0LCA3NTA0MCwgNzUwNDYsIDc1MDUxLCA3NTA1NiwgNzUwNjEsIDc1MDY3LCA3NTA3MywgCi0gICAgNzUwODAsIDc1MDg2LCA3NTA5MiwgNzUwOTcsIDc1MTA0LCA3NTExMSwgNzUxMTgsIDc1MTI0LCA3NTEyOSwgNzUxMzQsIAotICAgIDc1MTM5LCAwLCAwLCAwLCAwLCA3NTE0NywgNzUxNTMsIDc1MTU5LCA3NTE2NSwgNzUxNzEsIDc1MTc3LCA3NTE4MywgCi0gICAgNzUxODksIDc1MTk1LCA3NTIwMSwgNzUyMDcsIDc1MjEzLCA3NTIxOSwgNzUyMjUsIDc1MjMxLCA3NTIzNywgNzUyNDMsIAotICAgIDc1MjQ5LCA3NTI1NSwgNzUyNjEsIDc1MjY3LCA3NTI3MiwgNzUyNzcsIDc1MjgzLCA3NTI4OSwgNzUyOTUsIDc1MzAxLCAKLSAgICA3NTMwNywgNzUzMTMsIDc1MzE5LCA3NTMyNSwgNzUzMzEsIDc1MzM3LCA3NTM0MywgNzUzNDksIDc1MzU1LCA3NTM2MSwgCi0gICAgNzUzNjcsIDc1MzczLCA3NTM3OSwgNzUzODUsIDc1MzkxLCA3NTM5NywgNzU0MDMsIDc1NDA5LCA3NTQxNSwgNzU0MjEsIAotICAgIDc1NDI2LCA3NTQzMSwgNzU0MzcsIDc1NDQyLCA3NTQ0NiwgNzU0NTEsIDc1NDU1LCA3NTQ1OSwgNzU0NjMsIDc1NDY5LCAKLSAgICA3NTQ3NCwgNzU0NzksIDc1NDg0LCA3NTQ4OSwgNzU0OTQsIDc1NDk5LCA3NTUwNCwgNzU1MTEsIDc1NTE4LCA3NTUyNSwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzI0MzksIAorICAgIDcyNDQ2LCA3MjQ1MiwgNzI0NTksIDcyNDY3LCA3MjQ3NSwgNzI0ODIsIDcyNDkwLCA3MjQ5NywgNzI1MDMsIDcyNTA5LCAKKyAgICA3MjUxNiwgNzI1MjIsIDcyNTI4LCA3MjUzNCwgNzI1NDEsIDcyNTQ4LCA3MjU1NSwgNzI1NjIsIDcyNTY5LCA3MjU3NiwgCisgICAgNzI1ODMsIDcyNTkwLCA3MjU5NywgNzI2MDQsIDcyNjExLCA3MjYxOCwgNzI2MjUsIDcyNjMyLCA3MjYzOCwgNzI2NDUsIAorICAgIDcyNjUyLCA3MjY1OSwgNzI2NjYsIDcyNjczLCA3MjY4MCwgNzI2ODcsIDcyNjk0LCA3MjcwMSwgNzI3MDgsIDcyNzE1LCAKKyAgICA3MjcyMiwgNzI3MjksIDcyNzM2LCA3Mjc0MywgNzI3NTAsIDcyNzU3LCA3Mjc2NCwgNzI3NzIsIDcyNzgwLCA3Mjc4OCwgCisgICAgNzI3OTYsIDAsIDAsIDAsIDAsIDcyODA0LCA3MjgxMywgNzI4MjIsIDcyODMxLCA3Mjg0MCwgNzI4NDksIDcyODU4LCAKKyAgICA3Mjg2NSwgNzI4NzIsIDcyODc5LCAwLCAwLCAwLCAwLCAwLCAwLCA3Mjg4NiwgNzI4OTAsIDcyODk1LCA3MjkwMCwgNzI5MDUsIAorICAgIDcyOTEwLCA3MjkxNSwgNzI5MjAsIDcyOTI1LCA3MjkzMCwgNzI5MzUsIDcyOTQwLCA3Mjk0NCwgNzI5NDgsIDcyOTUzLCAKKyAgICA3Mjk1OCwgNzI5NjIsIDcyOTY3LCA3Mjk3MiwgNzI5NzcsIDcyOTgyLCA3Mjk4NywgNzI5OTIsIDcyOTk3LCA3MzAwMSwgCisgICAgNzMwMDUsIDczMDEwLCA3MzAxNSwgNzMwMTksIDczMDIzLCA3MzAyNywgNzMwMzEsIDczMDM1LCA3MzAzOSwgNzMwNDMsIAorICAgIDczMDQ4LCA3MzA1MywgNzMwNTgsIDczMDYzLCA3MzA2OCwgNzMwNzUsIDczMDgxLCA3MzA4NiwgNzMwOTEsIDczMDk2LCAKKyAgICA3MzEwMSwgNzMxMDcsIDczMTE0LCA3MzEyMCwgNzMxMjcsIDczMTMzLCA3MzEzOSwgNzMxNDQsIDczMTUxLCA3MzE1NywgCisgICAgNzMxNjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDczMTY4LCA3MzE3MiwgNzMxNzYsIDczMTc5LCA3MzE4MywgNzMxODYsIAorICAgIDczMTkwLCA3MzE5MywgNzMxOTcsIDczMjAxLCA3MzIwNiwgNzMyMTAsIDczMjE1LCA3MzIxOCwgNzMyMjIsIDczMjI2LCAKKyAgICA3MzIyOSwgNzMyMzMsIDczMjM3LCA3MzI0MCwgNzMyNDQsIDczMjQ4LCA3MzI1MiwgNzMyNTYsIDczMjYwLCA3MzI2NCwgCisgICAgNzMyNjgsIDczMjcyLCA3MzI3NiwgNzMyODAsIDczMjg0LCA3MzI4OCwgNzMyOTIsIDczMjk2LCA3MzMwMCwgNzMzMDQsIAorICAgIDczMzA4LCA3MzMxMiwgNzMzMTUsIDczMzE4LCA3MzMyMiwgNzMzMjYsIDczMzMwLCA3MzMzMywgNzMzMzYsIDczMzM5LCAKKyAgICA3MzM0MywgNzMzNDcsIDczMzUxLCA3MzM1NSwgNzMzNTgsIDczMzYxLCA3MzM2NSwgNzMzNzAsIDczMzc1LCA3MzM3OSwgCisgICAgNzMzODQsIDczMzg4LCA3MzM5MywgNzMzOTgsIDczNDA0LCA3MzQwOSwgNzM0MTUsIDczNDE5LCA3MzQyNCwgNzM0MjksIAorICAgIDczNDMzLCA3MzQzOCwgNzM0NDMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDczNDQ3LCA3MzQ1MCwgNzM0NTQsIAorICAgIDczNDU4LCA3MzQ2MSwgNzM0NjQsIDczNDY3LCA3MzQ3MCwgNzM0NzMsIDczNDc2LCA3MzQ3OSwgNzM0ODIsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDczNDg1LCA3MzQ5MCwgNzM0OTQsIDczNDk4LCA3MzUwMiwgNzM1MDYsIDczNTEwLCA3MzUxNCwgNzM1MTgsIAorICAgIDczNTIyLCA3MzUyNiwgNzM1MzAsIDczNTM0LCA3MzUzOCwgNzM1NDIsIDczNTQ2LCA3MzU1MCwgNzM1NTUsIDczNTYwLCAKKyAgICA3MzU2NiwgNzM1NzIsIDczNTc5LCA3MzU4NCwgNzM1ODksIDczNTk1LCA3MzU5OSwgNzM2MDQsIDczNjA3LCAwLCAwLCAwLCAKKyAgICAwLCA3MzYxMCwgNzM2MTcsIDczNjIzLCA3MzYyOSwgNzM2MzUsIDczNjQxLCA3MzY0NywgNzM2NTMsIDczNjU5LCA3MzY2NSwgCisgICAgNzM2NzEsIDczNjc3LCA3MzY4NCwgNzM2OTEsIDczNjk4LCA3MzcwNCwgNzM3MTEsIDczNzE4LCA3MzcyNSwgNzM3MzIsIAorICAgIDczNzM5LCA3Mzc0NSwgNzM3NTEsIDczNzU4LCA3Mzc2NCwgNzM3NzEsIDczNzc4LCA3Mzc4NCwgNzM3OTAsIDczNzk3LCAKKyAgICA3MzgwNCwgNzM4MTEsIDczODE3LCA3MzgyNCwgNzM4MzEsIDczODM3LCA3Mzg0NCwgNzM4NTAsIDczODU3LCA3Mzg2NCwgCisgICAgNzM4NzAsIDczODc2LCA3Mzg4MywgNzM4ODksIDczODk2LCA3MzkwMywgNzM5MTIsIDczOTE5LCA3MzkyNiwgNzM5MzAsIAorICAgIDczOTM1LCA3Mzk0MCwgNzM5NDUsIDczOTUwLCA3Mzk1NCwgNzM5NTgsIDczOTYzLCA3Mzk2NywgNzM5NzIsIDczOTc3LCAKKyAgICA3Mzk4MiwgNzM5ODYsIDczOTkwLCA3Mzk5NSwgNzM5OTksIDc0MDA0LCA3NDAwOCwgNzQwMTMsIDc0MDE4LCA3NDAyMywgCisgICAgNzQwMjgsIDc0MDMyLCA3NDAzNywgNzQwNDIsIDc0MDQ3LCA3NDA1MywgNzQwNTgsIDc0MDY0LCA3NDA3MCwgNzQwNzYsIAorICAgIDc0MDgyLCA3NDA4OCwgNzQwOTMsIDc0MDk5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3NDEwMywgCisgICAgNzQxMDgsIDc0MTEyLCA3NDExNiwgNzQxMjAsIDc0MTI0LCA3NDEyOCwgNzQxMzIsIDc0MTM2LCA3NDE0MCwgNzQxNDQsIAorICAgIDc0MTQ4LCA3NDE1MiwgNzQxNTYsIDc0MTYwLCA3NDE2NCwgNzQxNjgsIDc0MTcyLCA3NDE3NiwgNzQxODAsIDc0MTg0LCAKKyAgICA3NDE4OCwgNzQxOTIsIDc0MTk2LCA3NDIwMCwgNzQyMDQsIDc0MjA4LCA3NDIxMiwgNzQyMTYsIDc0MjIwLCAwLCAwLCAwLCAKKyAgICA3NDIyNCwgNzQyMjgsIDc0MjMyLCA3NDIzNiwgNzQyNDAsIDc0MjQzLCA3NDI0OSwgNzQyNTIsIDc0MjU2LCA3NDI1OSwgCisgICAgNzQyNjUsIDc0MjcxLCA3NDI3OSwgNzQyODIsIDc0Mjg2LCA3NDI4OSwgNzQyOTIsIDc0Mjk4LCA3NDMwNCwgNzQzMDgsIAorICAgIDc0MzE0LCA3NDMxOCwgNzQzMjIsIDc0MzI4LCA3NDMzMiwgNzQzMzgsIDc0MzQ0LCA3NDM0OCwgNzQzNTIsIDc0MzU4LCAKKyAgICA3NDM2MiwgNzQzNjgsIDc0Mzc0LCA3NDM3OCwgNzQzODQsIDc0Mzg4LCA3NDM5NCwgNzQzOTcsIDc0NDAwLCA3NDQwNiwgCisgICAgNzQ0MTAsIDc0NDE2LCA3NDQxOSwgNzQ0MjIsIDc0NDI1LCA3NDQzMSwgNzQ0MzUsIDc0NDM5LCA3NDQ0NSwgNzQ0NTEsIAorICAgIDc0NDU0LCA3NDQ1NywgNzQ0NjMsIDc0NDY4LCA3NDQ3MywgNzQ0NzgsIDc0NDg1LCA3NDQ5MCwgNzQ0OTcsIDc0NTAyLCAKKyAgICA3NDUwOSwgNzQ1MTQsIDc0NTE5LCA3NDUyNCwgNzQ1MjksIDc0NTMyLCA3NDUzNiwgNzQ1NDAsIDc0NTQ1LCA3NDU1MCwgCisgICAgNzQ1NTUsIDc0NTYwLCA3NDU2NSwgNzQ1NzAsIDc0NTc1LCA3NDU4MCwgNzQ1ODcsIDc0NTkyLCAwLCA3NDU5OSwgNzQ2MDIsIAorICAgIDc0NjA2LCA3NDYwOSwgNzQ2MTIsIDc0NjE1LCA3NDYxOCwgNzQ2MjEsIDc0NjI0LCA3NDYyNywgNzQ2MzAsIDAsIDAsIDAsIAorICAgIDAsIDc0NjMzLCA3NDY0MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzQ2NDUsIDc0NjQ4LCA3NDY1MSwgNzQ2NTQsIDc0NjU3LCAKKyAgICA3NDY2MSwgNzQ2NjQsIDc0NjY3LCA3NDY3MSwgNzQ2NzUsIDc0Njc5LCA3NDY4MywgNzQ2ODcsIDc0NjkxLCA3NDY5NSwgCisgICAgNzQ2OTksIDc0NzAzLCA3NDcwNywgNzQ3MTEsIDc0NzE1LCA3NDcxOSwgNzQ3MjMsIDc0NzI3LCA3NDczMSwgNzQ3MzUsIAorICAgIDc0NzM4LCA3NDc0MiwgNzQ3NDUsIDc0NzQ5LCA3NDc1MywgNzQ3NTcsIDc0NzYxLCA3NDc2NSwgNzQ3NjgsIDc0NzcyLCAKKyAgICA3NDc3NSwgNzQ3NzgsIDc0NzgyLCA3NDc4NiwgNzQ3OTAsIDc0NzkzLCA3NDc5NiwgNzQ4MDEsIDc0ODA1LCA3NDgxMCwgCisgICAgNzQ4MTUsIDc0ODE5LCA3NDgyNCwgNzQ4MjgsIDc0ODMzLCA3NDgzOCwgNzQ4NDMsIDc0ODQ3LCA3NDg1MSwgNzQ4NTYsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDc0ODYxLCA3NDg2NiwgNzQ4NzEsIDc0ODc2LCA3NDg4MiwgNzQ4ODcsIDc0ODkyLCAKKyAgICA3NDg5NywgNzQ5MDIsIDc0OTA3LCA3NDkxMSwgNzQ5MTUsIDc0OTIwLCA3NDkyNSwgMCwgMCwgNzQ5MzEsIDc0OTM1LCAKKyAgICA3NDkzOCwgNzQ5NDEsIDc0OTQ0LCA3NDk0NywgNzQ5NTAsIDc0OTUzLCA3NDk1NiwgNzQ5NTksIDAsIDAsIDc0OTYyLCAKKyAgICA3NDk2NywgNzQ5NzIsIDc0OTc4LCA3NDk4NSwgNzQ5OTEsIDc0OTk3LCA3NTAwMywgNzUwMDksIDc1MDE1LCA3NTAyMSwgCisgICAgNzUwMjcsIDc1MDMzLCA3NTAzOSwgNzUwNDUsIDc1MDUxLCA3NTA1NiwgNzUwNjEsIDc1MDY2LCA3NTA3MiwgNzUwNzgsIAorICAgIDc1MDg1LCA3NTA5MSwgNzUwOTcsIDc1MTAyLCA3NTEwOSwgNzUxMTYsIDc1MTIzLCA3NTEyOSwgNzUxMzQsIDc1MTM5LCAKKyAgICA3NTE0NCwgMCwgMCwgMCwgMCwgNzUxNTIsIDc1MTU4LCA3NTE2NCwgNzUxNzAsIDc1MTc2LCA3NTE4MiwgNzUxODgsIAorICAgIDc1MTk0LCA3NTIwMCwgNzUyMDYsIDc1MjEyLCA3NTIxOCwgNzUyMjQsIDc1MjMwLCA3NTIzNiwgNzUyNDIsIDc1MjQ4LCAKKyAgICA3NTI1NCwgNzUyNjAsIDc1MjY2LCA3NTI3MiwgNzUyNzcsIDc1MjgyLCA3NTI4OCwgNzUyOTQsIDc1MzAwLCA3NTMwNiwgCisgICAgNzUzMTIsIDc1MzE4LCA3NTMyNCwgNzUzMzAsIDc1MzM2LCA3NTM0MiwgNzUzNDgsIDc1MzU0LCA3NTM2MCwgNzUzNjYsIAorICAgIDc1MzcyLCA3NTM3OCwgNzUzODQsIDc1MzkwLCA3NTM5NiwgNzU0MDIsIDc1NDA4LCA3NTQxNCwgNzU0MjAsIDc1NDI2LCAKKyAgICA3NTQzMSwgNzU0MzYsIDc1NDQyLCA3NTQ0NywgNzU0NTEsIDc1NDU2LCA3NTQ2MCwgNzU0NjQsIDc1NDY4LCA3NTQ3NCwgCisgICAgNzU0NzksIDc1NDg0LCA3NTQ4OSwgNzU0OTQsIDc1NDk5LCA3NTUwNCwgNzU1MDksIDc1NTE2LCA3NTUyMywgNzU1MzAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDc1NTMyLCA3NTUzNywgNzU1NDIsIDc1NTQ3LCA3NTU1NCwgNzU1NjEsIDc1NTY1LCA3NTU2OSwgNzU1NzQsIDc1NTc5LCAKLSAgICA3NTU4NCwgNzU1ODksIDc1NTk0LCA3NTU5OSwgNzU2MDQsIDc1NjA5LCA3NTYxNCwgNzU2MjAsIDc1NjI2LCA3NTYzMiwgCi0gICAgNzU2MzgsIDc1NjQ0LCA3NTY0OCwgNzU2NTQsIDc1NjU4LCA3NTY2NCwgNzU2NzEsIDc1Njc3LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCA3NTY4MSwgNzU2ODUsIDc1Njg5LCA3NTY5MywgNzU2OTcsIDc1NzAxLCAwLCAwLCA3NTcwNSwgNzU3MDksIAotICAgIDc1NzEzLCA3NTcxNywgNzU3MjEsIDc1NzI1LCAwLCAwLCA3NTcyOSwgNzU3MzMsIDc1NzM3LCA3NTc0MSwgNzU3NDUsIAotICAgIDc1NzQ5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3NTc1MywgNzU3NTcsIDc1NzYxLCA3NTc2NSwgNzU3NjksIAotICAgIDc1NzczLCA3NTc3NywgMCwgNzU3ODEsIDc1Nzg1LCA3NTc4OSwgNzU3OTMsIDc1Nzk3LCA3NTgwMSwgNzU4MDUsIDAsIDAsIAorICAgIDc1NTM3LCA3NTU0MiwgNzU1NDcsIDc1NTUyLCA3NTU1OSwgNzU1NjYsIDc1NTcwLCA3NTU3NCwgNzU1NzksIDc1NTg0LCAKKyAgICA3NTU4OSwgNzU1OTQsIDc1NTk5LCA3NTYwNCwgNzU2MDksIDc1NjE0LCA3NTYxOSwgNzU2MjUsIDc1NjMxLCA3NTYzNywgCisgICAgNzU2NDMsIDc1NjQ5LCA3NTY1MywgNzU2NTksIDc1NjYzLCA3NTY2OSwgNzU2NzYsIDc1NjgyLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA3NTY4NiwgNzU2OTAsIDc1Njk0LCA3NTY5OCwgNzU3MDIsIDc1NzA2LCAwLCAwLCA3NTcxMCwgNzU3MTQsIAorICAgIDc1NzE4LCA3NTcyMiwgNzU3MjYsIDc1NzMwLCAwLCAwLCA3NTczNCwgNzU3MzgsIDc1NzQyLCA3NTc0NiwgNzU3NTAsIAorICAgIDc1NzU0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3NTc1OCwgNzU3NjIsIDc1NzY2LCA3NTc3MCwgNzU3NzQsIAorICAgIDc1Nzc4LCA3NTc4MiwgMCwgNzU3ODYsIDc1NzkwLCA3NTc5NCwgNzU3OTgsIDc1ODAyLCA3NTgwNiwgNzU4MTAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDc1ODA5LCA3NTgxNCwgNzU4MTksIDc1ODI0LCA3NTgyOSwgNzU4MzMsIDc1ODM3LCA3NTg0MiwgNzU4NDcsIDc1ODUyLCAKLSAgICA3NTg1NywgNzU4NjIsIDc1ODY3LCA3NTg3MiwgNzU4NzcsIDc1ODgyLCA3NTg4NiwgNzU4OTEsIDc1ODk2LCA3NTkwMSwgCi0gICAgNzU5MDYsIDc1OTExLCA3NTkxNiwgNzU5MjEsIDc1OTI2LCA3NTkzMSwgNzU5MzYsIDc1OTQxLCA3NTk0OCwgNzU5NTUsIAotICAgIDc1OTYyLCA3NTk2OSwgNzU5NzYsIDc1OTgzLCA3NTk5MCwgNzU5OTcsIDc2MDAzLCA3NjAwOSwgNzYwMTUsIDc2MDIxLCAKLSAgICA3NjAyNywgNzYwMzMsIDc2MDM5LCA3NjA0NSwgNzYwNDksIDc2MDU1LCAwLCAwLCA3NjA2MSwgNzYwNjYsIDc2MDcwLCAKLSAgICA3NjA3NCwgNzYwNzgsIDc2MDgyLCA3NjA4NiwgNzYwOTAsIDc2MDk0LCA3NjA5OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNzU4MTQsIDc1ODE5LCA3NTgyNCwgNzU4MjksIDc1ODM0LCA3NTgzOCwgNzU4NDIsIDc1ODQ3LCA3NTg1MiwgNzU4NTcsIAorICAgIDc1ODYyLCA3NTg2NywgNzU4NzIsIDc1ODc3LCA3NTg4MiwgNzU4ODcsIDc1ODkxLCA3NTg5NiwgNzU5MDEsIDc1OTA2LCAKKyAgICA3NTkxMSwgNzU5MTYsIDc1OTIxLCA3NTkyNiwgNzU5MzEsIDc1OTM2LCA3NTk0MSwgNzU5NDYsIDc1OTUzLCA3NTk2MCwgCisgICAgNzU5NjcsIDc1OTc0LCA3NTk4MSwgNzU5ODgsIDc1OTk1LCA3NjAwMiwgNzYwMDgsIDc2MDE0LCA3NjAyMCwgNzYwMjYsIAorICAgIDc2MDMyLCA3NjAzOCwgNzYwNDQsIDc2MDUwLCA3NjA1NCwgNzYwNjAsIDAsIDAsIDc2MDY2LCA3NjA3MSwgNzYwNzUsIAorICAgIDc2MDc5LCA3NjA4MywgNzYwODcsIDc2MDkxLCA3NjA5NSwgNzYwOTksIDc2MTAzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3NjEwMiwgCi0gICAgNzYxMDYsIDc2MTEwLCA3NjExNCwgNzYxMTgsIDc2MTIyLCA3NjEyNiwgNzYxMzAsIDc2MTM0LCA3NjEzOCwgNzYxNDIsIAotICAgIDc2MTQ2LCA3NjE1MCwgNzYxNTQsIDc2MTU4LCA3NjE2MiwgNzYxNjYsIDc2MTcwLCA3NjE3NCwgNzYxNzgsIDc2MTgyLCAKLSAgICA3NjE4NiwgNzYxOTAsIDAsIDAsIDAsIDAsIDc2MTk0LCA3NjE5OCwgNzYyMDIsIDc2MjA2LCA3NjIxMCwgNzYyMTQsIAotICAgIDc2MjE4LCA3NjIyMiwgNzYyMjYsIDc2MjMwLCA3NjIzNCwgNzYyMzgsIDc2MjQyLCA3NjI0NiwgNzYyNTAsIDc2MjU0LCAKLSAgICA3NjI1OCwgNzYyNjIsIDc2MjY2LCA3NjI3MCwgNzYyNzQsIDc2Mjc4LCA3NjI4MiwgNzYyODYsIDc2MjkwLCA3NjI5NCwgCi0gICAgNzYyOTgsIDc2MzAyLCA3NjMwNiwgNzYzMTAsIDc2MzE0LCA3NjMxOCwgNzYzMjIsIDc2MzI2LCA3NjMzMCwgNzYzMzQsIAotICAgIDc2MzM4LCA3NjM0MiwgNzYzNDYsIDc2MzUwLCA3NjM1NCwgNzYzNTgsIDc2MzYyLCA3NjM2NiwgNzYzNzAsIDc2Mzc0LCAKLSAgICA3NjM3OCwgNzYzODIsIDc2Mzg2LCAwLCAwLCAwLCAwLCA3NjM5MCwgNzYzOTQsIDc2Mzk4LCA3NjQwMiwgNzY0MDYsIAotICAgIDc2NDEwLCA3NjQxNCwgNzY0MTgsIDc2NDIyLCA3NjQyNiwgNzY0MzAsIDc2NDM0LCA3NjQzOCwgNzY0NDIsIDc2NDQ2LCAKLSAgICA3NjQ1MCwgNzY0NTQsIDc2NDU4LCA3NjQ2MiwgNzY0NjYsIDc2NDcwLCA3NjQ3NCwgNzY0NzgsIDc2NDgyLCA3NjQ4NiwgCi0gICAgNzY0OTAsIDc2NDk0LCA3NjQ5OCwgNzY1MDIsIDc2NTA2LCA3NjUxMCwgNzY1MTQsIDc2NTE4LCA3NjUyMiwgNzY1MjYsIAotICAgIDc2NTMwLCA3NjUzNCwgNzY1MzgsIDc2NTQyLCA3NjU0NiwgNzY1NTAsIDc2NTU0LCA3NjU1OCwgNzY1NjIsIDc2NTY2LCAKLSAgICA3NjU3MCwgNzY1NzQsIDc2NTc4LCA3NjU4MiwgNzY1ODYsIDc2NTkwLCA3NjU5NCwgNzY1OTgsIDc2NjAyLCA3NjYwNiwgCi0gICAgNzY2MTAsIDc2NjE0LCA3NjYxOCwgNzY2MjIsIDc2NjI2LCA3NjYzMCwgNzY2MzQsIDc2NjM4LCA3NjY0MiwgNzY2NDYsIAotICAgIDc2NjUwLCA3NjY1NCwgNzY2NTgsIDc2NjYyLCA3NjY2NiwgNzY2NzAsIDc2Njc0LCA3NjY3OCwgNzY2ODIsIDc2Njg2LCAKLSAgICA3NjY5MCwgNzY2OTQsIDc2Njk4LCA3NjcwMiwgNzY3MDYsIDc2NzEwLCA3NjcxNCwgNzY3MTgsIDc2NzIyLCA3NjcyNiwgCi0gICAgNzY3MzAsIDc2NzM0LCA3NjczOCwgNzY3NDIsIDc2NzQ2LCA3Njc1MCwgNzY3NTQsIDc2NzU4LCA3Njc2MiwgNzY3NjYsIAotICAgIDc2NzcwLCA3Njc3NCwgNzY3NzgsIDc2NzgyLCA3Njc4NiwgNzY3OTAsIDc2Nzk0LCA3Njc5OCwgNzY4MDIsIDc2ODA2LCAKLSAgICA3NjgxMCwgNzY4MTQsIDc2ODE4LCA3NjgyMiwgNzY4MjYsIDc2ODMwLCA3NjgzNCwgNzY4MzgsIDc2ODQyLCA3Njg0NiwgCi0gICAgNzY4NTAsIDc2ODU0LCA3Njg1OCwgNzY4NjIsIDc2ODY2LCA3Njg3MCwgNzY4NzQsIDc2ODc4LCA3Njg4MiwgNzY4ODYsIAotICAgIDc2ODkwLCA3Njg5NCwgNzY4OTgsIDc2OTAyLCA3NjkwNiwgNzY5MTAsIDc2OTE0LCA3NjkxOCwgNzY5MjIsIDc2OTI2LCAKLSAgICA3NjkzMCwgNzY5MzQsIDc2OTM4LCA3Njk0MiwgNzY5NDYsIDc2OTUwLCA3Njk1NCwgNzY5NTgsIDc2OTYyLCA3Njk2NiwgCi0gICAgNzY5NzAsIDc2OTc0LCA3Njk3OCwgNzY5ODIsIDc2OTg2LCA3Njk5MCwgNzY5OTQsIDc2OTk4LCA3NzAwMiwgNzcwMDYsIAotICAgIDc3MDEwLCA3NzAxNCwgNzcwMTgsIDc3MDIyLCA3NzAyNiwgNzcwMzAsIDc3MDM0LCA3NzAzOCwgNzcwNDIsIDc3MDQ2LCAKLSAgICA3NzA1MCwgNzcwNTQsIDc3MDU4LCA3NzA2MiwgNzcwNjYsIDc3MDcwLCA3NzA3NCwgNzcwNzgsIDc3MDgyLCA3NzA4NiwgCi0gICAgNzcwOTAsIDc3MDk0LCA3NzA5OCwgNzcxMDIsIDc3MTA2LCA3NzExMCwgNzcxMTQsIDc3MTE4LCA3NzEyMiwgNzcxMjYsIAotICAgIDc3MTMwLCA3NzEzNCwgNzcxMzgsIDc3MTQyLCA3NzE0NiwgNzcxNTAsIDc3MTU0LCA3NzE1OCwgNzcxNjIsIDc3MTY2LCAKLSAgICA3NzE3MCwgNzcxNzQsIDc3MTc4LCA3NzE4MiwgNzcxODYsIDc3MTkwLCA3NzE5NCwgNzcxOTgsIDc3MjAyLCA3NzIwNiwgCi0gICAgNzcyMTAsIDc3MjE0LCA3NzIxOCwgNzcyMjIsIDc3MjI2LCA3NzIzMCwgNzcyMzQsIDc3MjM4LCA3NzI0MiwgNzcyNDYsIAotICAgIDc3MjUwLCA3NzI1NCwgNzcyNTgsIDc3MjYyLCA3NzI2NiwgNzcyNzAsIDc3Mjc0LCA3NzI3OCwgNzcyODIsIDc3Mjg2LCAKLSAgICA3NzI5MCwgNzcyOTQsIDc3Mjk4LCA3NzMwMiwgNzczMDYsIDc3MzEwLCA3NzMxNCwgNzczMTgsIDc3MzIyLCA3NzMyNiwgCi0gICAgNzczMzAsIDc3MzM0LCA3NzMzOCwgNzczNDIsIDc3MzQ2LCA3NzM1MCwgNzczNTQsIDc3MzU4LCA3NzM2MiwgNzczNjYsIAotICAgIDc3MzcwLCA3NzM3NCwgNzczNzgsIDc3MzgyLCA3NzM4NiwgNzczOTAsIDc3Mzk0LCA3NzM5OCwgNzc0MDIsIDc3NDA2LCAKLSAgICA3NzQxMCwgNzc0MTQsIDc3NDE4LCA3NzQyMiwgNzc0MjYsIDc3NDMwLCA3NzQzNCwgNzc0MzgsIDc3NDQyLCA3NzQ0NiwgCi0gICAgNzc0NTAsIDc3NDU0LCA3NzQ1OCwgNzc0NjIsIDc3NDY2LCA3NzQ3MCwgNzc0NzQsIDc3NDc4LCA3NzQ4MiwgNzc0ODYsIAotICAgIDc3NDkwLCA3NzQ5NCwgNzc0OTgsIDc3NTAyLCA3NzUwNiwgNzc1MTAsIDc3NTE0LCA3NzUxOCwgNzc1MjIsIDc3NTI2LCAKLSAgICA3NzUzMCwgNzc1MzQsIDc3NTM4LCA3NzU0MiwgNzc1NDYsIDc3NTUwLCA3NzU1NCwgNzc1NTgsIDc3NTYyLCA3NzU2NiwgCi0gICAgNzc1NzAsIDc3NTc0LCA3NzU3OCwgNzc1ODIsIDc3NTg2LCA3NzU5MCwgNzc1OTQsIDc3NTk4LCA3NzYwMiwgNzc2MDYsIAotICAgIDc3NjEwLCA3NzYxNCwgNzc2MTgsIDc3NjIyLCA3NzYyNiwgNzc2MzAsIDc3NjM0LCA3NzYzOCwgNzc2NDIsIDc3NjQ2LCAKLSAgICA3NzY1MCwgNzc2NTQsIDc3NjU4LCA3NzY2MiwgNzc2NjYsIDc3NjcwLCA3NzY3NCwgNzc2NzgsIDc3NjgyLCA3NzY4NiwgCi0gICAgNzc2OTAsIDc3Njk0LCA3NzY5OCwgNzc3MDIsIDc3NzA2LCA3NzcxMCwgNzc3MTQsIDc3NzE4LCA3NzcyMiwgNzc3MjYsIAotICAgIDc3NzMwLCA3NzczNCwgNzc3MzgsIDc3NzQyLCA3Nzc0NiwgNzc3NTAsIDc3NzU0LCA3Nzc1OCwgNzc3NjIsIDc3NzY2LCAKLSAgICA3Nzc3MCwgNzc3NzQsIDc3Nzc4LCA3Nzc4MiwgNzc3ODYsIDc3NzkwLCA3Nzc5NCwgNzc3OTgsIDc3ODAyLCA3NzgwNiwgCi0gICAgNzc4MTAsIDc3ODE0LCA3NzgxOCwgNzc4MjIsIDc3ODI2LCA3NzgzMCwgNzc4MzQsIDc3ODM4LCA3Nzg0MiwgNzc4NDYsIAotICAgIDc3ODUwLCAwLCAwLCA3Nzg1NCwgNzc4NTgsIDc3ODYyLCA3Nzg2NiwgNzc4NzAsIDc3ODc0LCA3Nzg3OCwgNzc4ODIsIAotICAgIDc3ODg2LCA3Nzg5MCwgNzc4OTQsIDc3ODk4LCA3NzkwMiwgNzc5MDYsIDc3OTEwLCA3NzkxNCwgNzc5MTgsIDc3OTIyLCAKLSAgICA3NzkyNiwgNzc5MzAsIDc3OTM0LCA3NzkzOCwgNzc5NDIsIDc3OTQ2LCA3Nzk1MCwgNzc5NTQsIDc3OTU4LCA3Nzk2MiwgCi0gICAgNzc5NjYsIDc3OTcwLCA3Nzk3NCwgNzc5NzgsIDc3OTgyLCA3Nzk4NiwgNzc5OTAsIDc3OTk0LCA3Nzk5OCwgNzgwMDIsIAotICAgIDc4MDA2LCA3ODAxMCwgNzgwMTQsIDc4MDE4LCA3ODAyMiwgNzgwMjYsIDc4MDMwLCA3ODAzNCwgNzgwMzgsIDc4MDQyLCAKLSAgICA3ODA0NiwgNzgwNTAsIDc4MDU0LCA3ODA1OCwgNzgwNjIsIDc4MDY2LCA3ODA3MCwgNzgwNzQsIDc4MDc4LCA3ODA4MiwgCi0gICAgNzgwODYsIDc4MDkwLCA3ODA5NCwgNzgwOTgsIDc4MTAyLCA3ODEwNiwgNzgxMTAsIDc4MTE0LCA3ODExOCwgNzgxMjIsIAotICAgIDc4MTI2LCA3ODEzMCwgNzgxMzQsIDc4MTM4LCA3ODE0MiwgNzgxNDYsIDc4MTUwLCA3ODE1NCwgNzgxNTgsIDc4MTYyLCAKLSAgICA3ODE2NiwgNzgxNzAsIDc4MTc0LCA3ODE3OCwgNzgxODIsIDc4MTg2LCA3ODE5MCwgNzgxOTQsIDc4MTk4LCA3ODIwMiwgCi0gICAgNzgyMDYsIDc4MjEwLCA3ODIxNCwgNzgyMTgsIDc4MjIyLCA3ODIyNiwgNzgyMzAsIDc4MjM0LCA3ODIzOCwgNzgyNDIsIAotICAgIDc4MjQ2LCA3ODI1MCwgNzgyNTQsIDc4MjU4LCA3ODI2MiwgNzgyNjYsIDc4MjcwLCA3ODI3NCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzYxMDcsIAorICAgIDc2MTExLCA3NjExNSwgNzYxMTksIDc2MTIzLCA3NjEyNywgNzYxMzEsIDc2MTM1LCA3NjEzOSwgNzYxNDMsIDc2MTQ3LCAKKyAgICA3NjE1MSwgNzYxNTUsIDc2MTU5LCA3NjE2MywgNzYxNjcsIDc2MTcxLCA3NjE3NSwgNzYxNzksIDc2MTgzLCA3NjE4NywgCisgICAgNzYxOTEsIDc2MTk1LCAwLCAwLCAwLCAwLCA3NjE5OSwgNzYyMDMsIDc2MjA3LCA3NjIxMSwgNzYyMTUsIDc2MjE5LCAKKyAgICA3NjIyMywgNzYyMjcsIDc2MjMxLCA3NjIzNSwgNzYyMzksIDc2MjQzLCA3NjI0NywgNzYyNTEsIDc2MjU1LCA3NjI1OSwgCisgICAgNzYyNjMsIDc2MjY3LCA3NjI3MSwgNzYyNzUsIDc2Mjc5LCA3NjI4MywgNzYyODcsIDc2MjkxLCA3NjI5NSwgNzYyOTksIAorICAgIDc2MzAzLCA3NjMwNywgNzYzMTEsIDc2MzE1LCA3NjMxOSwgNzYzMjMsIDc2MzI3LCA3NjMzMSwgNzYzMzUsIDc2MzM5LCAKKyAgICA3NjM0MywgNzYzNDcsIDc2MzUxLCA3NjM1NSwgNzYzNTksIDc2MzYzLCA3NjM2NywgNzYzNzEsIDc2Mzc1LCA3NjM3OSwgCisgICAgNzYzODMsIDc2Mzg3LCA3NjM5MSwgMCwgMCwgMCwgMCwgNzYzOTUsIDc2Mzk5LCA3NjQwMywgNzY0MDcsIDc2NDExLCAKKyAgICA3NjQxNSwgNzY0MTksIDc2NDIzLCA3NjQyNywgNzY0MzEsIDc2NDM1LCA3NjQzOSwgNzY0NDMsIDc2NDQ3LCA3NjQ1MSwgCisgICAgNzY0NTUsIDc2NDU5LCA3NjQ2MywgNzY0NjcsIDc2NDcxLCA3NjQ3NSwgNzY0NzksIDc2NDgzLCA3NjQ4NywgNzY0OTEsIAorICAgIDc2NDk1LCA3NjQ5OSwgNzY1MDMsIDc2NTA3LCA3NjUxMSwgNzY1MTUsIDc2NTE5LCA3NjUyMywgNzY1MjcsIDc2NTMxLCAKKyAgICA3NjUzNSwgNzY1MzksIDc2NTQzLCA3NjU0NywgNzY1NTEsIDc2NTU1LCA3NjU1OSwgNzY1NjMsIDc2NTY3LCA3NjU3MSwgCisgICAgNzY1NzUsIDc2NTc5LCA3NjU4MywgNzY1ODcsIDc2NTkxLCA3NjU5NSwgNzY1OTksIDc2NjAzLCA3NjYwNywgNzY2MTEsIAorICAgIDc2NjE1LCA3NjYxOSwgNzY2MjMsIDc2NjI3LCA3NjYzMSwgNzY2MzUsIDc2NjM5LCA3NjY0MywgNzY2NDcsIDc2NjUxLCAKKyAgICA3NjY1NSwgNzY2NTksIDc2NjYzLCA3NjY2NywgNzY2NzEsIDc2Njc1LCA3NjY3OSwgNzY2ODMsIDc2Njg3LCA3NjY5MSwgCisgICAgNzY2OTUsIDc2Njk5LCA3NjcwMywgNzY3MDcsIDc2NzExLCA3NjcxNSwgNzY3MTksIDc2NzIzLCA3NjcyNywgNzY3MzEsIAorICAgIDc2NzM1LCA3NjczOSwgNzY3NDMsIDc2NzQ3LCA3Njc1MSwgNzY3NTUsIDc2NzU5LCA3Njc2MywgNzY3NjcsIDc2NzcxLCAKKyAgICA3Njc3NSwgNzY3NzksIDc2NzgzLCA3Njc4NywgNzY3OTEsIDc2Nzk1LCA3Njc5OSwgNzY4MDMsIDc2ODA3LCA3NjgxMSwgCisgICAgNzY4MTUsIDc2ODE5LCA3NjgyMywgNzY4MjcsIDc2ODMxLCA3NjgzNSwgNzY4MzksIDc2ODQzLCA3Njg0NywgNzY4NTEsIAorICAgIDc2ODU1LCA3Njg1OSwgNzY4NjMsIDc2ODY3LCA3Njg3MSwgNzY4NzUsIDc2ODc5LCA3Njg4MywgNzY4ODcsIDc2ODkxLCAKKyAgICA3Njg5NSwgNzY4OTksIDc2OTAzLCA3NjkwNywgNzY5MTEsIDc2OTE1LCA3NjkxOSwgNzY5MjMsIDc2OTI3LCA3NjkzMSwgCisgICAgNzY5MzUsIDc2OTM5LCA3Njk0MywgNzY5NDcsIDc2OTUxLCA3Njk1NSwgNzY5NTksIDc2OTYzLCA3Njk2NywgNzY5NzEsIAorICAgIDc2OTc1LCA3Njk3OSwgNzY5ODMsIDc2OTg3LCA3Njk5MSwgNzY5OTUsIDc2OTk5LCA3NzAwMywgNzcwMDcsIDc3MDExLCAKKyAgICA3NzAxNSwgNzcwMTksIDc3MDIzLCA3NzAyNywgNzcwMzEsIDc3MDM1LCA3NzAzOSwgNzcwNDMsIDc3MDQ3LCA3NzA1MSwgCisgICAgNzcwNTUsIDc3MDU5LCA3NzA2MywgNzcwNjcsIDc3MDcxLCA3NzA3NSwgNzcwNzksIDc3MDgzLCA3NzA4NywgNzcwOTEsIAorICAgIDc3MDk1LCA3NzA5OSwgNzcxMDMsIDc3MTA3LCA3NzExMSwgNzcxMTUsIDc3MTE5LCA3NzEyMywgNzcxMjcsIDc3MTMxLCAKKyAgICA3NzEzNSwgNzcxMzksIDc3MTQzLCA3NzE0NywgNzcxNTEsIDc3MTU1LCA3NzE1OSwgNzcxNjMsIDc3MTY3LCA3NzE3MSwgCisgICAgNzcxNzUsIDc3MTc5LCA3NzE4MywgNzcxODcsIDc3MTkxLCA3NzE5NSwgNzcxOTksIDc3MjAzLCA3NzIwNywgNzcyMTEsIAorICAgIDc3MjE1LCA3NzIxOSwgNzcyMjMsIDc3MjI3LCA3NzIzMSwgNzcyMzUsIDc3MjM5LCA3NzI0MywgNzcyNDcsIDc3MjUxLCAKKyAgICA3NzI1NSwgNzcyNTksIDc3MjYzLCA3NzI2NywgNzcyNzEsIDc3Mjc1LCA3NzI3OSwgNzcyODMsIDc3Mjg3LCA3NzI5MSwgCisgICAgNzcyOTUsIDc3Mjk5LCA3NzMwMywgNzczMDcsIDc3MzExLCA3NzMxNSwgNzczMTksIDc3MzIzLCA3NzMyNywgNzczMzEsIAorICAgIDc3MzM1LCA3NzMzOSwgNzczNDMsIDc3MzQ3LCA3NzM1MSwgNzczNTUsIDc3MzU5LCA3NzM2MywgNzczNjcsIDc3MzcxLCAKKyAgICA3NzM3NSwgNzczNzksIDc3MzgzLCA3NzM4NywgNzczOTEsIDc3Mzk1LCA3NzM5OSwgNzc0MDMsIDc3NDA3LCA3NzQxMSwgCisgICAgNzc0MTUsIDc3NDE5LCA3NzQyMywgNzc0MjcsIDc3NDMxLCA3NzQzNSwgNzc0MzksIDc3NDQzLCA3NzQ0NywgNzc0NTEsIAorICAgIDc3NDU1LCA3NzQ1OSwgNzc0NjMsIDc3NDY3LCA3NzQ3MSwgNzc0NzUsIDc3NDc5LCA3NzQ4MywgNzc0ODcsIDc3NDkxLCAKKyAgICA3NzQ5NSwgNzc0OTksIDc3NTAzLCA3NzUwNywgNzc1MTEsIDc3NTE1LCA3NzUxOSwgNzc1MjMsIDc3NTI3LCA3NzUzMSwgCisgICAgNzc1MzUsIDc3NTM5LCA3NzU0MywgNzc1NDcsIDc3NTUxLCA3NzU1NSwgNzc1NTksIDc3NTYzLCA3NzU2NywgNzc1NzEsIAorICAgIDc3NTc1LCA3NzU3OSwgNzc1ODMsIDc3NTg3LCA3NzU5MSwgNzc1OTUsIDc3NTk5LCA3NzYwMywgNzc2MDcsIDc3NjExLCAKKyAgICA3NzYxNSwgNzc2MTksIDc3NjIzLCA3NzYyNywgNzc2MzEsIDc3NjM1LCA3NzYzOSwgNzc2NDMsIDc3NjQ3LCA3NzY1MSwgCisgICAgNzc2NTUsIDc3NjU5LCA3NzY2MywgNzc2NjcsIDc3NjcxLCA3NzY3NSwgNzc2NzksIDc3NjgzLCA3NzY4NywgNzc2OTEsIAorICAgIDc3Njk1LCA3NzY5OSwgNzc3MDMsIDc3NzA3LCA3NzcxMSwgNzc3MTUsIDc3NzE5LCA3NzcyMywgNzc3MjcsIDc3NzMxLCAKKyAgICA3NzczNSwgNzc3MzksIDc3NzQzLCA3Nzc0NywgNzc3NTEsIDc3NzU1LCA3Nzc1OSwgNzc3NjMsIDc3NzY3LCA3Nzc3MSwgCisgICAgNzc3NzUsIDc3Nzc5LCA3Nzc4MywgNzc3ODcsIDc3NzkxLCA3Nzc5NSwgNzc3OTksIDc3ODAzLCA3NzgwNywgNzc4MTEsIAorICAgIDc3ODE1LCA3NzgxOSwgNzc4MjMsIDc3ODI3LCA3NzgzMSwgNzc4MzUsIDc3ODM5LCA3Nzg0MywgNzc4NDcsIDc3ODUxLCAKKyAgICA3Nzg1NSwgMCwgMCwgNzc4NTksIDc3ODYzLCA3Nzg2NywgNzc4NzEsIDc3ODc1LCA3Nzg3OSwgNzc4ODMsIDc3ODg3LCAKKyAgICA3Nzg5MSwgNzc4OTUsIDc3ODk5LCA3NzkwMywgNzc5MDcsIDc3OTExLCA3NzkxNSwgNzc5MTksIDc3OTIzLCA3NzkyNywgCisgICAgNzc5MzEsIDc3OTM1LCA3NzkzOSwgNzc5NDMsIDc3OTQ3LCA3Nzk1MSwgNzc5NTUsIDc3OTU5LCA3Nzk2MywgNzc5NjcsIAorICAgIDc3OTcxLCA3Nzk3NSwgNzc5NzksIDc3OTgzLCA3Nzk4NywgNzc5OTEsIDc3OTk1LCA3Nzk5OSwgNzgwMDMsIDc4MDA3LCAKKyAgICA3ODAxMSwgNzgwMTUsIDc4MDE5LCA3ODAyMywgNzgwMjcsIDc4MDMxLCA3ODAzNSwgNzgwMzksIDc4MDQzLCA3ODA0NywgCisgICAgNzgwNTEsIDc4MDU1LCA3ODA1OSwgNzgwNjMsIDc4MDY3LCA3ODA3MSwgNzgwNzUsIDc4MDc5LCA3ODA4MywgNzgwODcsIAorICAgIDc4MDkxLCA3ODA5NSwgNzgwOTksIDc4MTAzLCA3ODEwNywgNzgxMTEsIDc4MTE1LCA3ODExOSwgNzgxMjMsIDc4MTI3LCAKKyAgICA3ODEzMSwgNzgxMzUsIDc4MTM5LCA3ODE0MywgNzgxNDcsIDc4MTUxLCA3ODE1NSwgNzgxNTksIDc4MTYzLCA3ODE2NywgCisgICAgNzgxNzEsIDc4MTc1LCA3ODE3OSwgNzgxODMsIDc4MTg3LCA3ODE5MSwgNzgxOTUsIDc4MTk5LCA3ODIwMywgNzgyMDcsIAorICAgIDc4MjExLCA3ODIxNSwgNzgyMTksIDc4MjIzLCA3ODIyNywgNzgyMzEsIDc4MjM1LCA3ODIzOSwgNzgyNDMsIDc4MjQ3LCAKKyAgICA3ODI1MSwgNzgyNTUsIDc4MjU5LCA3ODI2MywgNzgyNjcsIDc4MjcxLCA3ODI3NSwgNzgyNzksIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDc4Mjc4LCA3ODI4MywgNzgyODgsIDc4MjkzLCA3ODI5OCwgNzgzMDMsIDc4MzExLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3ODMxNiwgNzgzMjMsIDc4MzMwLCA3ODMzNywgNzgzNDQsIDAsIAotICAgIDAsIDAsIDAsIDAsIDc4MzUxLCA3ODM1OCwgNzgzNjUsIDc4Mzc1LCA3ODM4MSwgNzgzODcsIDc4MzkzLCA3ODM5OSwgCi0gICAgNzg0MDUsIDc4NDExLCA3ODQxOCwgNzg0MjQsIDc4NDMwLCA3ODQzNiwgNzg0NDUsIDc4NDU0LCA3ODQ2NiwgNzg0NzgsIAotICAgIDc4NDg0LCA3ODQ5MCwgNzg0OTYsIDc4NTAzLCA3ODUxMCwgNzg1MTcsIDc4NTI0LCA3ODUzMSwgMCwgNzg1MzgsIDc4NTQ1LCAKLSAgICA3ODU1MiwgNzg1NjAsIDc4NTY3LCAwLCA3ODU3NCwgMCwgNzg1ODEsIDc4NTg4LCAwLCA3ODU5NSwgNzg2MDMsIDAsIAotICAgIDc4NjEwLCA3ODYxNywgNzg2MjQsIDc4NjMxLCA3ODYzOCwgNzg2NDUsIDc4NjUyLCA3ODY1OSwgNzg2NjYsIDc4NjczLCAKLSAgICA3ODY3OCwgNzg2ODUsIDc4NjkyLCA3ODY5OCwgNzg3MDQsIDc4NzEwLCA3ODcxNiwgNzg3MjIsIDc4NzI4LCA3ODczNCwgCi0gICAgNzg3NDAsIDc4NzQ2LCA3ODc1MiwgNzg3NTgsIDc4NzY0LCA3ODc3MCwgNzg3NzYsIDc4NzgyLCA3ODc4OCwgNzg3OTQsIAotICAgIDc4ODAwLCA3ODgwNiwgNzg4MTIsIDc4ODE4LCA3ODgyNCwgNzg4MzAsIDc4ODM2LCA3ODg0MiwgNzg4NDgsIDc4ODU0LCAKLSAgICA3ODg2MCwgNzg4NjYsIDc4ODcyLCA3ODg3OCwgNzg4ODQsIDc4ODkwLCA3ODg5NiwgNzg5MDIsIDc4OTA4LCA3ODkxNCwgCi0gICAgNzg5MjAsIDc4OTI2LCA3ODkzMiwgNzg5MzgsIDc4OTQ0LCA3ODk1MCwgNzg5NTYsIDc4OTYyLCA3ODk2OCwgNzg5NzQsIAotICAgIDc4OTgwLCA3ODk4NiwgNzg5OTIsIDc4OTk4LCA3OTAwNCwgNzkwMTAsIDc5MDE2LCA3OTAyMiwgNzkwMjgsIDc5MDM0LCAKLSAgICA3OTA0MCwgNzkwNDYsIDc5MDUyLCA3OTA1OCwgNzkwNjQsIDc5MDcwLCA3OTA3NiwgNzkwODIsIDc5MDg4LCA3OTA5NCwgCi0gICAgNzkxMDAsIDc5MTA2LCA3OTExMiwgNzkxMTgsIDc5MTI0LCA3OTEzMCwgNzkxMzYsIDc5MTQyLCA3OTE0OCwgNzkxNTYsIAotICAgIDc5MTY0LCA3OTE3MCwgNzkxNzYsIDc5MTgyLCA3OTE4OCwgNzkxOTcsIDc5MjA2LCA3OTIxNCwgNzkyMjIsIDc5MjMwLCAKLSAgICA3OTIzOCwgNzkyNDYsIDc5MjU0LCA3OTI2MiwgNzkyNzAsIDc5Mjc3LCA3OTI4NCwgNzkyOTQsIDc5MzA0LCA3OTMwOCwgCi0gICAgNzkzMTIsIDc5MzE3LCA3OTMyMiwgNzkzMjcsIDc5MzMyLCA3OTM0MSwgNzkzNTAsIDc5MzU2LCA3OTM2MiwgNzkzNjksIAotICAgIDc5Mzc2LCA3OTM4MywgNzkzODcsIDc5MzkzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCA3OTM5OSwgNzk0MDUsIDc5NDExLCA3OTQxNywgNzk0MjMsIDc5NDI4LCA3OTQzMywgNzk0MzksIDc5NDQ1LCAKLSAgICA3OTQ1MSwgNzk0NTcsIDc5NDY1LCA3OTQ3MSwgNzk0NzcsIDc5NDg1LCA3OTQ5MywgNzk1MDEsIDc5NTA5LCA3OTUxNCwgCi0gICAgNzk1MTksIDc5NTI0LCA3OTUyOSwgNzk1NDIsIDc5NTU1LCA3OTU2NSwgNzk1NzUsIDc5NTg2LCA3OTU5NywgNzk2MDgsIAotICAgIDc5NjE5LCA3OTYyOSwgNzk2MzksIDc5NjUwLCA3OTY2MSwgNzk2NzIsIDc5NjgzLCA3OTY5MywgNzk3MDMsIDc5NzEzLCAKLSAgICA3OTcyOSwgNzk3NDUsIDc5NzYxLCA3OTc2OCwgNzk3NzUsIDc5NzgyLCA3OTc4OSwgNzk3OTksIDc5ODA5LCA3OTgxOSwgCi0gICAgNzk4MzEsIDc5ODQxLCA3OTg0OSwgNzk4NTcsIDc5ODY2LCA3OTg3NCwgNzk4ODQsIDc5ODkyLCA3OTkwMCwgNzk5MDgsIAotICAgIDc5OTE3LCA3OTkyNSwgNzk5MzUsIDc5OTQzLCA3OTk1MSwgNzk5NTksIDc5OTY5LCA3OTk3NywgNzk5ODQsIDc5OTkxLCAKLSAgICA3OTk5OCwgODAwMDUsIDgwMDEzLCA4MDAyMSwgODAwMjksIDgwMDM3LCA4MDA0NSwgODAwNTQsIDgwMDYyLCA4MDA3MCwgCi0gICAgODAwNzgsIDgwMDg2LCA4MDA5NCwgODAxMDMsIDgwMTExLCA4MDExOSwgODAxMjcsIDgwMTM1LCA4MDE0MywgODAxNTEsIAotICAgIDgwMTU5LCA4MDE2NywgODAxNzUsIDgwMTgzLCA4MDE5MiwgODAyMDAsIDgwMjEwLCA4MDIxOCwgODAyMjYsIDgwMjM0LCAKLSAgICA4MDI0NCwgODAyNTIsIDgwMjYwLCA4MDI2OCwgODAyNzYsIDgwMjg1LCA4MDI5NCwgODAzMDIsIDgwMzEyLCA4MDMyMCwgCi0gICAgODAzMjgsIDgwMzM2LCA4MDM0NSwgODAzNTMsIDgwMzYzLCA4MDM3MSwgODAzNzgsIDgwMzg1LCA4MDM5MywgODA0MDAsIAotICAgIDgwNDA5LCA4MDQxNiwgODA0MjQsIDgwNDMyLCA4MDQ0MSwgODA0NDksIDgwNDU5LCA4MDQ2NywgODA0NzUsIDgwNDgzLCAKLSAgICA4MDQ5MywgODA1MDEsIDgwNTA4LCA4MDUxNSwgODA1MjMsIDgwNTMwLCA4MDUzOSwgODA1NDYsIDgwNTU2LCA4MDU2NiwgCi0gICAgODA1NzcsIDgwNTg2LCA4MDU5NSwgODA2MDQsIDgwNjEzLCA4MDYyMiwgODA2MzIsIDgwNjQzLCA4MDY1NCwgODA2NjQsIAotICAgIDgwNjc1LCA4MDY4NywgODA2OTcsIDgwNzA2LCA4MDcxNSwgODA3MjMsIDgwNzMyLCA4MDc0MiwgODA3NTAsIDgwNzU5LCAKLSAgICA4MDc2OCwgODA3NzYsIDgwNzg1LCA4MDc5NSwgODA4MDMsIDgwODEyLCA4MDgyMSwgODA4MjksIDgwODM4LCA4MDg0OCwgCi0gICAgODA4NTYsIDgwODY2LCA4MDg3NCwgODA4ODQsIDgwODkyLCA4MDkwMCwgODA5MDksIDgwOTE3LCA4MDkyNywgODA5MzUsIAotICAgIDgwOTQzLCA4MDk1MywgODA5NjEsIDgwOTY4LCA4MDk3NSwgODA5ODQsIDgwOTkzLCA4MTAwMSwgODEwMTAsIDgxMDIwLCAKLSAgICA4MTAyOCwgODEwMzksIDgxMDQ3LCA4MTA1NSwgODEwNjIsIDgxMDcwLCA4MTA3OSwgODEwODYsIDgxMDk2LCA4MTEwNiwgCi0gICAgODExMTcsIDgxMTI3LCA4MTEzOCwgODExNDYsIDgxMTU0LCA4MTE2MywgODExNzEsIDgxMTgwLCA4MTE4OCwgODExOTYsIAotICAgIDgxMjA1LCA4MTIxMywgODEyMjIsIDgxMjMwLCA4MTIzNywgODEyNDQsIDgxMjUxLCA4MTI1OCwgODEyNjYsIDgxMjc0LCAKLSAgICA4MTI4MiwgODEyOTAsIDgxMjk5LCA4MTMwNywgODEzMTUsIDgxMzI0LCA4MTMzMiwgODEzNDAsIDgxMzQ4LCA4MTM1NywgCi0gICAgODEzNjUsIDgxMzczLCA4MTM4MSwgODEzODksIDgxMzk3LCA4MTQwNSwgODE0MTMsIDgxNDIxLCA4MTQyOSwgODE0MzgsIAotICAgIDgxNDQ2LCA4MTQ1NCwgODE0NjIsIDgxNDcwLCA4MTQ3OCwgODE0ODcsIDgxNDk2LCA4MTUwNCwgODE1MTIsIDgxNTIwLCAKLSAgICA4MTUyOSwgODE1MzcsIDgxNTQ2LCA4MTU1MywgODE1NjAsIDgxNTY4LCA4MTU3NSwgODE1ODMsIDgxNTkxLCA4MTYwMCwgCi0gICAgODE2MDgsIDgxNjE3LCA4MTYyNSwgODE2MzMsIDgxNjQzLCA4MTY1MCwgODE2NTcsIDgxNjY1LCA4MTY3MiwgODE2ODAsIAotICAgIDgxNjkwLCA4MTcwMSwgODE3MDksIDgxNzE4LCA4MTcyNiwgODE3MzUsIDgxNzQzLCA4MTc1MiwgODE3NjAsIDgxNzY5LCAKLSAgICA4MTc3NywgODE3ODYsIDgxNzk1LCA4MTgwMywgODE4MTEsIDgxODE5LCA4MTgyOCwgODE4MzUsIDgxODQzLCA4MTg1MiwgCi0gICAgODE4NjEsIDgxODcwLCA4MTg4MCwgODE4ODgsIDgxODk4LCA4MTkwNiwgODE5MTYsIDgxOTI0LCA4MTkzNCwgODE5NDIsIAotICAgIDgxOTUyLCA4MTk2MCwgODE5NjksIDgxOTc2LCA4MTk4NSwgODE5OTIsIDgyMDAyLCA4MjAxMCwgODIwMjAsIDgyMDI4LCAKLSAgICA4MjAzOCwgODIwNDYsIDgyMDU0LCA4MjA2MiwgODIwNzEsIDgyMDc5LCA4MjA4OCwgODIwOTcsIDgyMTA2LCA4MjExNSwgCi0gICAgODIxMjUsIDgyMTMzLCA4MjE0MywgODIxNTEsIDgyMTYxLCA4MjE2OSwgODIxNzksIDgyMTg3LCA4MjE5NywgODIyMDUsIAotICAgIDgyMjE0LCA4MjIyMSwgODIyMzAsIDgyMjM3LCA4MjI0NywgODIyNTUsIDgyMjY1LCA4MjI3MywgODIyODMsIDgyMjkxLCAKLSAgICA4MjI5OSwgODIzMDcsIDgyMzE2LCA4MjMyNCwgODIzMzMsIDgyMzQyLCA4MjM1MSwgODIzNjAsIDgyMzY4LCA4MjM3NiwgCi0gICAgODIzODUsIDgyMzkzLCA4MjQwMiwgODI0MTEsIDgyNDE5LCA4MjQyNywgODI0MzUsIDgyNDQ0LCA4MjQ1MiwgODI0NjAsIAotICAgIDgyNDY5LCA4MjQ3NywgODI0ODUsIDgyNDkzLCA4MjUwMSwgODI1MDYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDgyNTExLCA4MjUyMSwgODI1MzEsIDgyNTQxLCA4MjU1MSwgODI1NjIsIDgyNTcyLCA4MjU4MiwgCi0gICAgODI1OTMsIDgyNjAyLCA4MjYxMSwgODI2MjAsIDgyNjMxLCA4MjY0MSwgODI2NTEsIDgyNjYzLCA4MjY3MywgODI2ODMsIAotICAgIDgyNjkzLCA4MjcwMywgODI3MTMsIDgyNzIzLCA4MjczMywgODI3NDMsIDgyNzUzLCA4Mjc2MywgODI3NzMsIDgyNzg0LCAKLSAgICA4Mjc5NSwgODI4MDUsIDgyODE1LCA4MjgyNywgODI4MzgsIDgyODQ5LCA4Mjg1OSwgODI4NjksIDgyODc5LCA4Mjg4OSwgCi0gICAgODI4OTksIDgyOTA5LCA4MjkxOSwgODI5MzEsIDgyOTQxLCA4Mjk1MSwgODI5NjMsIDgyOTc0LCA4Mjk4NSwgODI5OTUsIAotICAgIDgzMDA1LCA4MzAxNSwgODMwMjUsIDgzMDM3LCA4MzA0NywgODMwNTcsIDgzMDY4LCA4MzA3OSwgODMwODksIDgzMDk5LCAKLSAgICA4MzEwOCwgODMxMTcsIDgzMTI2LCA4MzEzNSwgODMxNDQsIDgzMTU0LCAwLCAwLCA4MzE2NCwgODMxNzQsIDgzMTg0LCAKLSAgICA4MzE5NCwgODMyMDQsIDgzMjE2LCA4MzIyNiwgODMyMzYsIDgzMjQ4LCA4MzI1OCwgODMyNzAsIDgzMjc5LCA4MzI4OCwgCi0gICAgODMyOTksIDgzMzA5LCA4MzMyMSwgODMzMzIsIDgzMzQ1LCA4MzM1NSwgODMzNjcsIDgzMzc2LCA4MzM4NywgODMzOTgsIAotICAgIDgzNDExLCA4MzQyMSwgODM0MzEsIDgzNDQxLCA4MzQ1MSwgODM0NjEsIDgzNDcwLCA4MzQ3OSwgODM0ODgsIDgzNDk3LCAKLSAgICA4MzUwNywgODM1MTcsIDgzNTI3LCA4MzUzNywgODM1NDcsIDgzNTU3LCA4MzU2NywgODM1NzcsIDgzNTg3LCA4MzU5NywgCi0gICAgODM2MDcsIDgzNjE3LCA4MzYyNiwgODM2MzUsIDgzNjQ0LCA4MzY1NCwgODM2NjQsIDgzNjc0LCA4MzY4NCwgODM2OTQsIAotICAgIDgzNzA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4MzcxNSwgODM3MzAsIAotICAgIDgzNzQ1LCA4Mzc1MSwgODM3NTcsIDgzNzYzLCA4Mzc2OSwgODM3NzUsIDgzNzgxLCA4Mzc4NywgODM3OTMsIDgzODAxLCAKLSAgICA4MzgwNSwgODM4MDgsIDAsIDAsIDgzODE2LCA4MzgxOSwgODM4MjIsIDgzODI1LCA4MzgyOCwgODM4MzEsIDgzODM0LCAKLSAgICA4MzgzNywgODM4NDAsIDgzODQzLCA4Mzg0NiwgODM4NDksIDgzODUyLCA4Mzg1NSwgODM4NTgsIDgzODYxLCA4Mzg2NCwgCi0gICAgODM4NzIsIDgzODgxLCA4Mzg5MiwgODM5MDAsIDgzOTA4LCA4MzkxNywgODM5MjYsIDgzOTM3LCA4Mzk0OSwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgODM5NTgsIDgzOTYzLCA4Mzk2OCwgODM5NzUsIDgzOTgyLCA4Mzk4OCwgODM5OTQsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDgzOTk5LCA4NDAwOSwgODQwMTksIDg0MDI5LCA4NDAzOCwgODQwNDksIDg0MDU4LCA4NDA2NywgCi0gICAgODQwNzcsIDg0MDg3LCA4NDA5OSwgODQxMTEsIDg0MTIyLCA4NDEzMywgODQxNDQsIDg0MTU1LCA4NDE2NSwgODQxNzUsIAotICAgIDg0MTg1LCA4NDE5NSwgODQyMDYsIDg0MjE3LCA4NDIyMSwgODQyMjYsIDg0MjM1LCA4NDI0NCwgODQyNDgsIDg0MjUyLCAKLSAgICA4NDI1NiwgODQyNjEsIDg0MjY2LCA4NDI3MSwgODQyNzYsIDg0Mjc5LCA4NDI4MywgMCwgODQyODgsIDg0MjkxLCA4NDI5NCwgCi0gICAgODQyOTgsIDg0MzAyLCA4NDMwNywgODQzMTEsIDg0MzE1LCA4NDMyMCwgODQzMjUsIDg0MzMyLCA4NDMzOSwgODQzNDIsIAotICAgIDg0MzQ1LCA4NDM0OCwgODQzNTEsIDg0MzU0LCA4NDM1OCwgODQzNjIsIDAsIDg0MzY2LCA4NDM3MSwgODQzNzUsIDg0Mzc5LCAKLSAgICAwLCAwLCAwLCAwLCA4NDM4NCwgODQzODksIDg0Mzk2LCA4NDQwMSwgODQ0MDYsIDAsIDg0NDExLCA4NDQxNiwgODQ0MjEsIAotICAgIDg0NDI2LCA4NDQzMSwgODQ0MzYsIDg0NDQxLCA4NDQ0NiwgODQ0NTEsIDg0NDU2LCA4NDQ2MSwgODQ0NjYsIDg0NDc1LCAKLSAgICA4NDQ4NCwgODQ0OTIsIDg0NTAwLCA4NDUwOSwgODQ1MTgsIDg0NTI3LCA4NDUzNiwgODQ1NDQsIDg0NTUyLCA4NDU2MCwgCi0gICAgODQ1NjgsIDg0NTczLCA4NDU3OCwgODQ1ODQsIDg0NTkwLCA4NDU5NiwgODQ2MDIsIDg0NjEwLCA4NDYxOCwgODQ2MjQsIAotICAgIDg0NjMwLCA4NDYzNiwgODQ2NDIsIDg0NjQ4LCA4NDY1NCwgODQ2NjAsIDg0NjY2LCA4NDY3MSwgODQ2NzYsIDg0NjgxLCAKLSAgICA4NDY4NiwgODQ2OTEsIDg0Njk2LCA4NDcwMSwgODQ3MDYsIDg0NzEyLCA4NDcxOCwgODQ3MjQsIDg0NzMwLCA4NDczNiwgCi0gICAgODQ3NDIsIDg0NzQ4LCA4NDc1NCwgODQ3NjAsIDg0NzY2LCA4NDc3MiwgODQ3NzgsIDg0Nzg0LCA4NDc5MCwgODQ3OTYsIAotICAgIDg0ODAyLCA4NDgwOCwgODQ4MTQsIDg0ODIwLCA4NDgyNiwgODQ4MzIsIDg0ODM4LCA4NDg0NCwgODQ4NTAsIDg0ODU2LCAKLSAgICA4NDg2MiwgODQ4NjgsIDg0ODc0LCA4NDg4MCwgODQ4ODYsIDg0ODkyLCA4NDg5OCwgODQ5MDQsIDg0OTEwLCA4NDkxNiwgCi0gICAgODQ5MjIsIDg0OTI4LCA4NDkzNCwgODQ5NDAsIDg0OTQ2LCA4NDk1MiwgODQ5NTgsIDg0OTY0LCA4NDk3MCwgODQ5NzYsIAotICAgIDg0OTgyLCA4NDk4OCwgODQ5OTQsIDg1MDAwLCA4NTAwNiwgODUwMTIsIDg1MDE4LCA4NTAyNCwgODUwMzAsIDg1MDM2LCAKLSAgICA4NTA0MiwgODUwNDgsIDg1MDU0LCA4NTA2MCwgODUwNjYsIDg1MDcxLCA4NTA3NiwgODUwODEsIDg1MDg2LCA4NTA5MiwgCi0gICAgODUwOTgsIDg1MTA0LCA4NTExMCwgODUxMTYsIDg1MTIyLCA4NTEyOCwgODUxMzQsIDg1MTQwLCA4NTE0NiwgODUxNTMsIAotICAgIDg1MTYwLCA4NTE2NSwgODUxNzAsIDg1MTc1LCA4NTE4MCwgODUxOTIsIDg1MjA0LCA4NTIxNSwgODUyMjYsIDg1MjM4LCAKLSAgICA4NTI1MCwgODUyNTgsIDAsIDAsIDg1MjY2LCAwLCA4NTI3NCwgODUyNzgsIDg1MjgyLCA4NTI4NSwgODUyODksIDg1MjkzLCAKLSAgICA4NTI5NiwgODUyOTksIDg1MzAzLCA4NTMwNywgODUzMTAsIDg1MzEzLCA4NTMxNiwgODUzMTksIDg1MzI0LCA4NTMyNywgCi0gICAgODUzMzEsIDg1MzM0LCA4NTMzNywgODUzNDAsIDg1MzQzLCA4NTM0NiwgODUzNDksIDg1MzUyLCA4NTM1NSwgODUzNTgsIAotICAgIDg1MzYxLCA4NTM2NCwgODUzNjgsIDg1MzcyLCA4NTM3NiwgODUzODAsIDg1Mzg1LCA4NTM5MCwgODUzOTYsIDg1NDAyLCAKLSAgICA4NTQwOCwgODU0MTMsIDg1NDE5LCA4NTQyNSwgODU0MzEsIDg1NDM2LCA4NTQ0MiwgODU0NDgsIDg1NDUzLCA4NTQ1OCwgCi0gICAgODU0NjQsIDg1NDY5LCA4NTQ3NSwgODU0ODEsIDg1NDg2LCA4NTQ5MiwgODU0OTgsIDg1NTAzLCA4NTUwOSwgODU1MTUsIAotICAgIDg1NTIxLCA4NTUyNywgODU1MzMsIDg1NTM3LCA4NTU0MiwgODU1NDYsIDg1NTUxLCA4NTU1NSwgODU1NjAsIDg1NTY1LCAKLSAgICA4NTU3MSwgODU1NzcsIDg1NTgzLCA4NTU4OCwgODU1OTQsIDg1NjAwLCA4NTYwNiwgODU2MTEsIDg1NjE3LCA4NTYyMywgCi0gICAgODU2MjgsIDg1NjMzLCA4NTYzOSwgODU2NDQsIDg1NjUwLCA4NTY1NiwgODU2NjEsIDg1NjY3LCA4NTY3MywgODU2NzgsIAotICAgIDg1Njg0LCA4NTY5MCwgODU2OTYsIDg1NzAyLCA4NTcwOCwgODU3MTMsIDg1NzE3LCA4NTcyMiwgODU3MjQsIDg1NzI5LCAKLSAgICA4NTczNCwgODU3NDAsIDg1NzQ1LCA4NTc1MCwgODU3NTQsIDg1NzYwLCA4NTc2NSwgODU3NzAsIDg1Nzc1LCA4NTc4MCwgCi0gICAgODU3ODUsIDg1NzkwLCA4NTc5NSwgODU4MDEsIDg1ODA3LCA4NTgxMywgODU4MjEsIDg1ODI1LCA4NTgyOSwgODU4MzMsIAotICAgIDg1ODM3LCA4NTg0MSwgODU4NDUsIDg1ODUwLCA4NTg1NSwgODU4NjAsIDg1ODY1LCA4NTg2OSwgODU4NzQsIDg1ODc5LCAKLSAgICA4NTg4NCwgODU4ODksIDg1ODk0LCA4NTg5OSwgODU5MDQsIDg1OTA5LCA4NTkxMywgODU5MTcsIDg1OTIyLCA4NTkyNywgCi0gICAgODU5MzIsIDg1OTM3LCA4NTk0MSwgODU5NDYsIDg1OTUxLCA4NTk1NiwgODU5NjEsIDg1OTY1LCA4NTk3MCwgODU5NzUsIAotICAgIDg1OTgwLCA4NTk4NSwgODU5ODksIDg1OTk0LCA4NTk5OSwgODYwMDMsIDg2MDA4LCA4NjAxMywgODYwMTgsIDg2MDIzLCAKLSAgICA4NjAyOCwgODYwMzMsIDg2MDQwLCA4NjA0NywgODYwNTEsIDg2MDU2LCA4NjA2MSwgODYwNjYsIDg2MDcxLCA4NjA3NiwgCi0gICAgODYwODEsIDg2MDg2LCA4NjA5MSwgODYwOTYsIDg2MTAxLCA4NjEwNiwgODYxMTEsIDg2MTE2LCA4NjEyMSwgODYxMjYsIAotICAgIDg2MTMxLCA4NjEzNiwgODYxNDEsIDg2MTQ2LCA4NjE1MSwgODYxNTYsIDg2MTYxLCA4NjE2NiwgODYxNzEsIDg2MTc2LCAKLSAgICA4NjE4MSwgODYxODYsIDg2MTkxLCA4NjE5NiwgMCwgMCwgMCwgODYyMDEsIDg2MjA1LCA4NjIxMCwgODYyMTQsIDg2MjE5LCAKLSAgICA4NjIyNCwgMCwgMCwgODYyMjgsIDg2MjMzLCA4NjIzOCwgODYyNDIsIDg2MjQ3LCA4NjI1MiwgMCwgMCwgODYyNTcsIAotICAgIDg2MjYyLCA4NjI2NiwgODYyNzEsIDg2Mjc2LCA4NjI4MSwgMCwgMCwgODYyODYsIDg2MjkxLCA4NjI5NiwgMCwgMCwgMCwgCi0gICAgODYzMDAsIDg2MzA0LCA4NjMwOCwgODYzMTIsIDg2MzE1LCA4NjMxOSwgODYzMjMsIDAsIDg2MzI3LCA4NjMzMywgODYzMzYsIAotICAgIDg2MzQwLCA4NjM0MywgODYzNDcsIDg2MzUxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4NjM1NSwgODYzNjEsIAotICAgIDg2MzY3LCA4NjM3MywgODYzNzksIDAsIDAsIDg2MzgzLCA4NjM4OSwgODYzOTUsIDg2NDAxLCA4NjQwNywgODY0MTMsIAotICAgIDg2NDIwLCA4NjQyNywgODY0MzQsIDg2NDQxLCA4NjQ0OCwgODY0NTUsIDAsIDg2NDYyLCA4NjQ2OSwgODY0NzYsIDg2NDgyLCAKLSAgICA4NjQ4OSwgODY0OTYsIDg2NTAzLCA4NjUxMCwgODY1MTYsIDg2NTIzLCA4NjUzMCwgODY1MzcsIDg2NTQ0LCA4NjU1MCwgCi0gICAgODY1NTcsIDg2NTY0LCA4NjU3MSwgODY1NzgsIDg2NTg0LCA4NjU5MSwgODY1OTgsIDg2NjA1LCA4NjYxMiwgODY2MTksIAotICAgIDg2NjI2LCA4NjYzMywgMCwgODY2NDAsIDg2NjQ2LCA4NjY1MywgODY2NjAsIDg2NjY3LCA4NjY3NCwgODY2ODAsIDg2Njg3LCAKLSAgICA4NjY5NCwgODY3MDEsIDg2NzA4LCA4NjcxNSwgODY3MjIsIDg2NzI5LCA4NjczNSwgODY3NDIsIDg2NzQ5LCA4Njc1NiwgCi0gICAgODY3NjMsIDAsIDg2NzcwLCA4Njc3NywgMCwgODY3ODQsIDg2NzkxLCA4Njc5OCwgODY4MDUsIDg2ODEyLCA4NjgxOSwgCi0gICAgODY4MjYsIDg2ODMzLCA4Njg0MCwgODY4NDcsIDg2ODU0LCA4Njg2MSwgODY4NjgsIDg2ODc1LCA4Njg4MiwgMCwgMCwgCi0gICAgODY4ODgsIDg2ODkzLCA4Njg5OCwgODY5MDMsIDg2OTA4LCA4NjkxMywgODY5MTgsIDg2OTIzLCA4NjkyOCwgODY5MzMsIAotICAgIDg2OTM4LCA4Njk0MywgODY5NDgsIDg2OTUzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4Njk1OCwgODY5NjUsIAotICAgIDg2OTcyLCA4Njk3OSwgODY5ODYsIDg2OTkzLCA4NzAwMCwgODcwMDcsIDg3MDE0LCA4NzAyMSwgODcwMjgsIDg3MDM1LCAKLSAgICA4NzA0MiwgODcwNDksIDg3MDU2LCA4NzA2MywgODcwNzAsIDg3MDc3LCA4NzA4NCwgODcwOTEsIDg3MDk5LCA4NzEwNywgCi0gICAgODcxMTQsIDg3MTIxLCA4NzEyNiwgODcxMzQsIDg3MTQyLCA4NzE0OSwgODcxNTYsIDg3MTYxLCA4NzE2OCwgODcxNzMsIAotICAgIDg3MTc4LCA4NzE4NSwgODcxOTAsIDg3MTk1LCA4NzIwMCwgODcyMDgsIDg3MjEzLCA4NzIxOCwgODcyMjUsIDg3MjMwLCAKLSAgICA4NzIzNSwgODcyNDIsIDg3MjQ5LCA4NzI1NCwgODcyNTksIDg3MjY0LCA4NzI2OSwgODcyNzQsIDg3Mjc5LCA4NzI4NCwgCi0gICAgODcyODksIDg3Mjk0LCA4NzMwMSwgODczMDYsIDg3MzEzLCA4NzMxOCwgODczMjMsIDg3MzI4LCA4NzMzMywgODczMzgsIAotICAgIDg3MzQzLCA4NzM0OCwgODczNTMsIDg3MzU4LCA4NzM2MywgODczNjgsIDg3Mzc1LCA4NzM4MiwgODczODksIDg3Mzk2LCAKLSAgICA4NzQwMiwgODc0MDcsIDg3NDE0LCA4NzQxOSwgODc0MjQsIDg3NDMzLCA4NzQ0MCwgODc0NDksIDg3NDU2LCA4NzQ2MSwgCi0gICAgODc0NjYsIDg3NDc0LCA4NzQ3OSwgODc0ODQsIDg3NDg5LCA4NzQ5NCwgODc0OTksIDg3NTA2LCA4NzUxMSwgODc1MTYsIAotICAgIDg3NTIxLCA4NzUyNiwgODc1MzEsIDg3NTM4LCA4NzU0NSwgODc1NTIsIDg3NTU5LCA4NzU2NiwgODc1NzMsIDg3NTgwLCAKLSAgICA4NzU4NywgODc1OTQsIDg3NjAxLCA4NzYwOCwgODc2MTUsIDg3NjIyLCA4NzYyOSwgODc2MzYsIDg3NjQzLCA4NzY1MCwgCi0gICAgODc2NTcsIDg3NjY0LCA4NzY3MSwgODc2NzgsIDg3Njg1LCA4NzY5MiwgODc2OTksIDg3NzA2LCA4NzcxMywgODc3MjAsIAotICAgIDg3NzI3LCAwLCAwLCAwLCAwLCAwLCA4NzczNCwgODc3NDIsIDg3NzUwLCAwLCAwLCAwLCAwLCA4Nzc1NSwgODc3NTksIAotICAgIDg3NzYzLCA4Nzc2NywgODc3NzEsIDg3Nzc1LCA4Nzc3OSwgODc3ODMsIDg3Nzg3LCA4Nzc5MSwgODc3OTYsIDg3ODAxLCAKLSAgICA4NzgwNiwgODc4MTEsIDg3ODE2LCA4NzgyMSwgODc4MjYsIDg3ODMxLCA4NzgzNiwgODc4NDIsIDg3ODQ4LCA4Nzg1NCwgCi0gICAgODc4NjEsIDg3ODY4LCA4Nzg3NSwgODc4ODIsIDg3ODg5LCA4Nzg5NiwgODc5MDIsIDg3OTA4LCA4NzkxNCwgODc5MjEsIAotICAgIDg3OTI4LCA4NzkzNSwgODc5NDIsIDg3OTQ5LCA4Nzk1NiwgODc5NjMsIDg3OTcwLCA4Nzk3NywgODc5ODQsIDg3OTkxLCAKLSAgICA4Nzk5OCwgODgwMDUsIDg4MDEyLCAwLCAwLCAwLCA4ODAxOSwgODgwMjcsIDg4MDM1LCA4ODA0MywgODgwNTEsIDg4MDU5LCAKLSAgICA4ODA2OSwgODgwNzksIDg4MDg3LCA4ODA5NSwgODgxMDMsIDg4MTExLCA4ODExOSwgODgxMjUsIDg4MTMyLCA4ODE0MSwgCi0gICAgODgxNTAsIDg4MTU5LCA4ODE2OCwgODgxNzcsIDg4MTg2LCA4ODE5NiwgODgyMDcsIDg4MjE3LCA4ODIyOCwgODgyMzcsIAotICAgIDg4MjQ2LCA4ODI1NSwgODgyNjUsIDg4Mjc2LCA4ODI4NiwgODgyOTcsIDg4MzA4LCA4ODMxNywgODgzMjUsIDg4MzMxLCAKLSAgICA4ODMzNywgODgzNDMsIDg4MzQ5LCA4ODM1NywgODgzNjUsIDg4MzcxLCA4ODM3OCwgODgzODgsIDg4Mzk1LCA4ODQwMiwgCi0gICAgODg0MDksIDg4NDE2LCA4ODQyMywgODg0MzMsIDg4NDQwLCA4ODQ0NywgODg0NTUsIDg4NDYzLCA4ODQ3MiwgODg0ODEsIAotICAgIDg4NDkwLCA4ODQ5OSwgODg1MDgsIDg4NTE2LCA4ODUyNSwgODg1MzQsIDg4NTQzLCA4ODU0NywgODg1NTQsIDg4NTU5LCAKLSAgICA4ODU2NCwgODg1NjgsIDg4NTcyLCA4ODU3NiwgODg1ODAsIDg4NTg1LCA4ODU5MCwgODg1OTYsIDg4NjAyLCA4ODYwNiwgCi0gICAgODg2MTIsIDg4NjE2LCA4ODYyMCwgODg2MjQsIDg4NjI4LCA4ODYzMiwgODg2MzYsIDg4NjQyLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA4ODY0NiwgODg2NTEsIDg4NjU2LCA4ODY2MSwgODg2NjYsIDg4NjczLCA4ODY3OCwgODg2ODMsIDg4Njg4LCA4ODY5MywgCi0gICAgODg2OTgsIDg4NzAzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3ODI4MywgNzgyODgsIDc4MjkzLCA3ODI5OCwgNzgzMDMsIDc4MzA4LCA3ODMxNiwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzgzMjEsIDc4MzI4LCA3ODMzNSwgNzgzNDIsIDc4MzQ5LCAwLCAKKyAgICAwLCAwLCAwLCAwLCA3ODM1NiwgNzgzNjMsIDc4MzcwLCA3ODM4MCwgNzgzODYsIDc4MzkyLCA3ODM5OCwgNzg0MDQsIAorICAgIDc4NDEwLCA3ODQxNiwgNzg0MjMsIDc4NDI5LCA3ODQzNSwgNzg0NDEsIDc4NDUwLCA3ODQ1OSwgNzg0NzEsIDc4NDgzLCAKKyAgICA3ODQ4OSwgNzg0OTUsIDc4NTAxLCA3ODUwOCwgNzg1MTUsIDc4NTIyLCA3ODUyOSwgNzg1MzYsIDAsIDc4NTQzLCA3ODU1MCwgCisgICAgNzg1NTcsIDc4NTY1LCA3ODU3MiwgMCwgNzg1NzksIDAsIDc4NTg2LCA3ODU5MywgMCwgNzg2MDAsIDc4NjA4LCAwLCAKKyAgICA3ODYxNSwgNzg2MjIsIDc4NjI5LCA3ODYzNiwgNzg2NDMsIDc4NjUwLCA3ODY1NywgNzg2NjQsIDc4NjcxLCA3ODY3OCwgCisgICAgNzg2ODMsIDc4NjkwLCA3ODY5NywgNzg3MDMsIDc4NzA5LCA3ODcxNSwgNzg3MjEsIDc4NzI3LCA3ODczMywgNzg3MzksIAorICAgIDc4NzQ1LCA3ODc1MSwgNzg3NTcsIDc4NzYzLCA3ODc2OSwgNzg3NzUsIDc4NzgxLCA3ODc4NywgNzg3OTMsIDc4Nzk5LCAKKyAgICA3ODgwNSwgNzg4MTEsIDc4ODE3LCA3ODgyMywgNzg4MjksIDc4ODM1LCA3ODg0MSwgNzg4NDcsIDc4ODUzLCA3ODg1OSwgCisgICAgNzg4NjUsIDc4ODcxLCA3ODg3NywgNzg4ODMsIDc4ODg5LCA3ODg5NSwgNzg5MDEsIDc4OTA3LCA3ODkxMywgNzg5MTksIAorICAgIDc4OTI1LCA3ODkzMSwgNzg5MzcsIDc4OTQzLCA3ODk0OSwgNzg5NTUsIDc4OTYxLCA3ODk2NywgNzg5NzMsIDc4OTc5LCAKKyAgICA3ODk4NSwgNzg5OTEsIDc4OTk3LCA3OTAwMywgNzkwMDksIDc5MDE1LCA3OTAyMSwgNzkwMjcsIDc5MDMzLCA3OTAzOSwgCisgICAgNzkwNDUsIDc5MDUxLCA3OTA1NywgNzkwNjMsIDc5MDY5LCA3OTA3NSwgNzkwODEsIDc5MDg3LCA3OTA5MywgNzkwOTksIAorICAgIDc5MTA1LCA3OTExMSwgNzkxMTcsIDc5MTIzLCA3OTEyOSwgNzkxMzUsIDc5MTQxLCA3OTE0NywgNzkxNTMsIDc5MTYxLCAKKyAgICA3OTE2OSwgNzkxNzUsIDc5MTgxLCA3OTE4NywgNzkxOTMsIDc5MjAyLCA3OTIxMSwgNzkyMTksIDc5MjI3LCA3OTIzNSwgCisgICAgNzkyNDMsIDc5MjUxLCA3OTI1OSwgNzkyNjcsIDc5Mjc1LCA3OTI4MiwgNzkyODksIDc5Mjk5LCA3OTMwOSwgNzkzMTMsIAorICAgIDc5MzE3LCA3OTMyMiwgNzkzMjcsIDc5MzMyLCA3OTMzNywgNzkzNDYsIDc5MzU1LCA3OTM2MSwgNzkzNjcsIDc5Mzc0LCAKKyAgICA3OTM4MSwgNzkzODgsIDc5MzkyLCA3OTM5OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgNzk0MDQsIDc5NDEwLCA3OTQxNiwgNzk0MjIsIDc5NDI4LCA3OTQzMywgNzk0MzgsIDc5NDQ0LCA3OTQ1MCwgCisgICAgNzk0NTYsIDc5NDYyLCA3OTQ3MCwgNzk0NzYsIDc5NDgyLCA3OTQ5MCwgNzk0OTgsIDc5NTA2LCA3OTUxNCwgNzk1MTksIAorICAgIDc5NTI0LCA3OTUyOSwgNzk1MzQsIDc5NTQ3LCA3OTU2MCwgNzk1NzAsIDc5NTgwLCA3OTU5MSwgNzk2MDIsIDc5NjEzLCAKKyAgICA3OTYyNCwgNzk2MzQsIDc5NjQ0LCA3OTY1NSwgNzk2NjYsIDc5Njc3LCA3OTY4OCwgNzk2OTgsIDc5NzA4LCA3OTcxOCwgCisgICAgNzk3MzQsIDc5NzUwLCA3OTc2NiwgNzk3NzMsIDc5NzgwLCA3OTc4NywgNzk3OTQsIDc5ODA0LCA3OTgxNCwgNzk4MjQsIAorICAgIDc5ODM2LCA3OTg0NiwgNzk4NTQsIDc5ODYyLCA3OTg3MSwgNzk4NzksIDc5ODg5LCA3OTg5NywgNzk5MDUsIDc5OTEzLCAKKyAgICA3OTkyMiwgNzk5MzAsIDc5OTQwLCA3OTk0OCwgNzk5NTYsIDc5OTY0LCA3OTk3NCwgNzk5ODIsIDc5OTg5LCA3OTk5NiwgCisgICAgODAwMDMsIDgwMDEwLCA4MDAxOCwgODAwMjYsIDgwMDM0LCA4MDA0MiwgODAwNTAsIDgwMDU5LCA4MDA2NywgODAwNzUsIAorICAgIDgwMDgzLCA4MDA5MSwgODAwOTksIDgwMTA4LCA4MDExNiwgODAxMjQsIDgwMTMyLCA4MDE0MCwgODAxNDgsIDgwMTU2LCAKKyAgICA4MDE2NCwgODAxNzIsIDgwMTgwLCA4MDE4OCwgODAxOTcsIDgwMjA1LCA4MDIxNSwgODAyMjMsIDgwMjMxLCA4MDIzOSwgCisgICAgODAyNDksIDgwMjU3LCA4MDI2NSwgODAyNzMsIDgwMjgxLCA4MDI5MCwgODAyOTksIDgwMzA3LCA4MDMxNywgODAzMjUsIAorICAgIDgwMzMzLCA4MDM0MSwgODAzNTAsIDgwMzU4LCA4MDM2OCwgODAzNzYsIDgwMzgzLCA4MDM5MCwgODAzOTgsIDgwNDA1LCAKKyAgICA4MDQxNCwgODA0MjEsIDgwNDI5LCA4MDQzNywgODA0NDYsIDgwNDU0LCA4MDQ2NCwgODA0NzIsIDgwNDgwLCA4MDQ4OCwgCisgICAgODA0OTgsIDgwNTA2LCA4MDUxMywgODA1MjAsIDgwNTI4LCA4MDUzNSwgODA1NDQsIDgwNTUxLCA4MDU2MSwgODA1NzEsIAorICAgIDgwNTgyLCA4MDU5MSwgODA2MDAsIDgwNjA5LCA4MDYxOCwgODA2MjcsIDgwNjM3LCA4MDY0OCwgODA2NTksIDgwNjY5LCAKKyAgICA4MDY4MCwgODA2OTIsIDgwNzAyLCA4MDcxMSwgODA3MjAsIDgwNzI4LCA4MDczNywgODA3NDcsIDgwNzU1LCA4MDc2NCwgCisgICAgODA3NzMsIDgwNzgxLCA4MDc5MCwgODA4MDAsIDgwODA4LCA4MDgxNywgODA4MjYsIDgwODM0LCA4MDg0MywgODA4NTMsIAorICAgIDgwODYxLCA4MDg3MSwgODA4NzksIDgwODg5LCA4MDg5NywgODA5MDUsIDgwOTE0LCA4MDkyMiwgODA5MzIsIDgwOTQwLCAKKyAgICA4MDk0OCwgODA5NTgsIDgwOTY2LCA4MDk3MywgODA5ODAsIDgwOTg5LCA4MDk5OCwgODEwMDYsIDgxMDE1LCA4MTAyNSwgCisgICAgODEwMzMsIDgxMDQ0LCA4MTA1MiwgODEwNjAsIDgxMDY3LCA4MTA3NSwgODEwODQsIDgxMDkxLCA4MTEwMSwgODExMTEsIAorICAgIDgxMTIyLCA4MTEzMiwgODExNDMsIDgxMTUxLCA4MTE1OSwgODExNjgsIDgxMTc2LCA4MTE4NSwgODExOTMsIDgxMjAxLCAKKyAgICA4MTIxMCwgODEyMTgsIDgxMjI3LCA4MTIzNSwgODEyNDIsIDgxMjQ5LCA4MTI1NiwgODEyNjMsIDgxMjcxLCA4MTI3OSwgCisgICAgODEyODcsIDgxMjk1LCA4MTMwNCwgODEzMTIsIDgxMzIwLCA4MTMyOSwgODEzMzcsIDgxMzQ1LCA4MTM1MywgODEzNjIsIAorICAgIDgxMzcwLCA4MTM3OCwgODEzODYsIDgxMzk0LCA4MTQwMiwgODE0MTAsIDgxNDE4LCA4MTQyNiwgODE0MzQsIDgxNDQzLCAKKyAgICA4MTQ1MSwgODE0NTksIDgxNDY3LCA4MTQ3NSwgODE0ODMsIDgxNDkyLCA4MTUwMSwgODE1MDksIDgxNTE3LCA4MTUyNSwgCisgICAgODE1MzQsIDgxNTQyLCA4MTU1MSwgODE1NTgsIDgxNTY1LCA4MTU3MywgODE1ODAsIDgxNTg4LCA4MTU5NiwgODE2MDUsIAorICAgIDgxNjEzLCA4MTYyMiwgODE2MzAsIDgxNjM4LCA4MTY0OCwgODE2NTUsIDgxNjYyLCA4MTY3MCwgODE2NzcsIDgxNjg1LCAKKyAgICA4MTY5NSwgODE3MDYsIDgxNzE0LCA4MTcyMywgODE3MzEsIDgxNzQwLCA4MTc0OCwgODE3NTcsIDgxNzY1LCA4MTc3NCwgCisgICAgODE3ODIsIDgxNzkxLCA4MTgwMCwgODE4MDgsIDgxODE2LCA4MTgyNCwgODE4MzMsIDgxODQwLCA4MTg0OCwgODE4NTcsIAorICAgIDgxODY2LCA4MTg3NSwgODE4ODUsIDgxODkzLCA4MTkwMywgODE5MTEsIDgxOTIxLCA4MTkyOSwgODE5MzksIDgxOTQ3LCAKKyAgICA4MTk1NywgODE5NjUsIDgxOTc0LCA4MTk4MSwgODE5OTAsIDgxOTk3LCA4MjAwNywgODIwMTUsIDgyMDI1LCA4MjAzMywgCisgICAgODIwNDMsIDgyMDUxLCA4MjA1OSwgODIwNjcsIDgyMDc2LCA4MjA4NCwgODIwOTMsIDgyMTAyLCA4MjExMSwgODIxMjAsIAorICAgIDgyMTMwLCA4MjEzOCwgODIxNDgsIDgyMTU2LCA4MjE2NiwgODIxNzQsIDgyMTg0LCA4MjE5MiwgODIyMDIsIDgyMjEwLCAKKyAgICA4MjIxOSwgODIyMjYsIDgyMjM1LCA4MjI0MiwgODIyNTIsIDgyMjYwLCA4MjI3MCwgODIyNzgsIDgyMjg4LCA4MjI5NiwgCisgICAgODIzMDQsIDgyMzEyLCA4MjMyMSwgODIzMjksIDgyMzM4LCA4MjM0NywgODIzNTYsIDgyMzY1LCA4MjM3MywgODIzODEsIAorICAgIDgyMzkwLCA4MjM5OCwgODI0MDcsIDgyNDE2LCA4MjQyNCwgODI0MzIsIDgyNDQwLCA4MjQ0OSwgODI0NTcsIDgyNDY1LCAKKyAgICA4MjQ3NCwgODI0ODIsIDgyNDkwLCA4MjQ5OCwgODI1MDYsIDgyNTExLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCA4MjUxNiwgODI1MjYsIDgyNTM2LCA4MjU0NiwgODI1NTYsIDgyNTY3LCA4MjU3NywgODI1ODcsIAorICAgIDgyNTk4LCA4MjYwNywgODI2MTYsIDgyNjI1LCA4MjYzNiwgODI2NDYsIDgyNjU2LCA4MjY2OCwgODI2NzgsIDgyNjg4LCAKKyAgICA4MjY5OCwgODI3MDgsIDgyNzE4LCA4MjcyOCwgODI3MzgsIDgyNzQ4LCA4Mjc1OCwgODI3NjgsIDgyNzc4LCA4Mjc4OSwgCisgICAgODI4MDAsIDgyODEwLCA4MjgyMCwgODI4MzIsIDgyODQzLCA4Mjg1NCwgODI4NjQsIDgyODc0LCA4Mjg4NCwgODI4OTQsIAorICAgIDgyOTA0LCA4MjkxNCwgODI5MjQsIDgyOTM2LCA4Mjk0NiwgODI5NTYsIDgyOTY4LCA4Mjk3OSwgODI5OTAsIDgzMDAwLCAKKyAgICA4MzAxMCwgODMwMjAsIDgzMDMwLCA4MzA0MiwgODMwNTIsIDgzMDYyLCA4MzA3MywgODMwODQsIDgzMDk0LCA4MzEwNCwgCisgICAgODMxMTMsIDgzMTIyLCA4MzEzMSwgODMxNDAsIDgzMTQ5LCA4MzE1OSwgMCwgMCwgODMxNjksIDgzMTc5LCA4MzE4OSwgCisgICAgODMxOTksIDgzMjA5LCA4MzIyMSwgODMyMzEsIDgzMjQxLCA4MzI1MywgODMyNjMsIDgzMjc1LCA4MzI4NCwgODMyOTMsIAorICAgIDgzMzA0LCA4MzMxNCwgODMzMjYsIDgzMzM3LCA4MzM1MCwgODMzNjAsIDgzMzcyLCA4MzM4MSwgODMzOTIsIDgzNDAzLCAKKyAgICA4MzQxNiwgODM0MjYsIDgzNDM2LCA4MzQ0NiwgODM0NTYsIDgzNDY2LCA4MzQ3NSwgODM0ODQsIDgzNDkzLCA4MzUwMiwgCisgICAgODM1MTIsIDgzNTIyLCA4MzUzMiwgODM1NDIsIDgzNTUyLCA4MzU2MiwgODM1NzIsIDgzNTgyLCA4MzU5MiwgODM2MDIsIAorICAgIDgzNjEyLCA4MzYyMiwgODM2MzEsIDgzNjQwLCA4MzY0OSwgODM2NTksIDgzNjY5LCA4MzY3OSwgODM2ODksIDgzNjk5LCAKKyAgICA4MzcxMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODM3MjAsIDgzNzM1LCAKKyAgICA4Mzc1MCwgODM3NTYsIDgzNzYyLCA4Mzc2OCwgODM3NzQsIDgzNzgwLCA4Mzc4NiwgODM3OTIsIDgzNzk4LCA4MzgwNiwgCisgICAgODM4MTAsIDgzODEzLCAwLCAwLCA4MzgyMSwgODM4MjQsIDgzODI3LCA4MzgzMCwgODM4MzMsIDgzODM2LCA4MzgzOSwgCisgICAgODM4NDIsIDgzODQ1LCA4Mzg0OCwgODM4NTEsIDgzODU0LCA4Mzg1NywgODM4NjAsIDgzODYzLCA4Mzg2NiwgODM4NjksIAorICAgIDgzODc3LCA4Mzg4NiwgODM4OTcsIDgzOTA1LCA4MzkxMywgODM5MjIsIDgzOTMxLCA4Mzk0MiwgODM5NTQsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDgzOTYzLCA4Mzk2OCwgODM5NzMsIDgzOTgwLCA4Mzk4NywgODM5OTMsIDgzOTk5LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA4NDAwNCwgODQwMTQsIDg0MDI0LCA4NDAzNCwgODQwNDMsIDg0MDU0LCA4NDA2MywgODQwNzIsIAorICAgIDg0MDgyLCA4NDA5MiwgODQxMDQsIDg0MTE2LCA4NDEyNywgODQxMzgsIDg0MTQ5LCA4NDE2MCwgODQxNzAsIDg0MTgwLCAKKyAgICA4NDE5MCwgODQyMDAsIDg0MjExLCA4NDIyMiwgODQyMjYsIDg0MjMxLCA4NDI0MCwgODQyNDksIDg0MjUzLCA4NDI1NywgCisgICAgODQyNjEsIDg0MjY2LCA4NDI3MSwgODQyNzYsIDg0MjgxLCA4NDI4NCwgODQyODgsIDAsIDg0MjkzLCA4NDI5NiwgODQyOTksIAorICAgIDg0MzAzLCA4NDMwNywgODQzMTIsIDg0MzE2LCA4NDMyMCwgODQzMjUsIDg0MzMwLCA4NDMzNywgODQzNDQsIDg0MzQ3LCAKKyAgICA4NDM1MCwgODQzNTMsIDg0MzU2LCA4NDM1OSwgODQzNjMsIDg0MzY3LCAwLCA4NDM3MSwgODQzNzYsIDg0MzgwLCA4NDM4NCwgCisgICAgMCwgMCwgMCwgMCwgODQzODksIDg0Mzk0LCA4NDQwMSwgODQ0MDYsIDg0NDExLCAwLCA4NDQxNiwgODQ0MjEsIDg0NDI2LCAKKyAgICA4NDQzMSwgODQ0MzYsIDg0NDQxLCA4NDQ0NiwgODQ0NTEsIDg0NDU2LCA4NDQ2MSwgODQ0NjYsIDg0NDcxLCA4NDQ4MCwgCisgICAgODQ0ODksIDg0NDk3LCA4NDUwNSwgODQ1MTQsIDg0NTIzLCA4NDUzMiwgODQ1NDEsIDg0NTQ5LCA4NDU1NywgODQ1NjUsIAorICAgIDg0NTczLCA4NDU3OCwgODQ1ODMsIDg0NTg5LCA4NDU5NSwgODQ2MDEsIDg0NjA3LCA4NDYxNSwgODQ2MjMsIDg0NjI5LCAKKyAgICA4NDYzNSwgODQ2NDEsIDg0NjQ3LCA4NDY1MywgODQ2NTksIDg0NjY1LCA4NDY3MSwgODQ2NzYsIDg0NjgxLCA4NDY4NiwgCisgICAgODQ2OTEsIDg0Njk2LCA4NDcwMSwgODQ3MDYsIDg0NzExLCA4NDcxNywgODQ3MjMsIDg0NzI5LCA4NDczNSwgODQ3NDEsIAorICAgIDg0NzQ3LCA4NDc1MywgODQ3NTksIDg0NzY1LCA4NDc3MSwgODQ3NzcsIDg0NzgzLCA4NDc4OSwgODQ3OTUsIDg0ODAxLCAKKyAgICA4NDgwNywgODQ4MTMsIDg0ODE5LCA4NDgyNSwgODQ4MzEsIDg0ODM3LCA4NDg0MywgODQ4NDksIDg0ODU1LCA4NDg2MSwgCisgICAgODQ4NjcsIDg0ODczLCA4NDg3OSwgODQ4ODUsIDg0ODkxLCA4NDg5NywgODQ5MDMsIDg0OTA5LCA4NDkxNSwgODQ5MjEsIAorICAgIDg0OTI3LCA4NDkzMywgODQ5MzksIDg0OTQ1LCA4NDk1MSwgODQ5NTcsIDg0OTYzLCA4NDk2OSwgODQ5NzUsIDg0OTgxLCAKKyAgICA4NDk4NywgODQ5OTMsIDg0OTk5LCA4NTAwNSwgODUwMTEsIDg1MDE3LCA4NTAyMywgODUwMjksIDg1MDM1LCA4NTA0MSwgCisgICAgODUwNDcsIDg1MDUzLCA4NTA1OSwgODUwNjUsIDg1MDcxLCA4NTA3NiwgODUwODEsIDg1MDg2LCA4NTA5MSwgODUwOTcsIAorICAgIDg1MTAzLCA4NTEwOSwgODUxMTUsIDg1MTIxLCA4NTEyNywgODUxMzMsIDg1MTM5LCA4NTE0NSwgODUxNTEsIDg1MTU4LCAKKyAgICA4NTE2NSwgODUxNzAsIDg1MTc1LCA4NTE4MCwgODUxODUsIDg1MTk3LCA4NTIwOSwgODUyMjAsIDg1MjMxLCA4NTI0MywgCisgICAgODUyNTUsIDg1MjYzLCAwLCAwLCA4NTI3MSwgMCwgODUyNzksIDg1MjgzLCA4NTI4NywgODUyOTAsIDg1Mjk0LCA4NTI5OCwgCisgICAgODUzMDEsIDg1MzA0LCA4NTMwOCwgODUzMTIsIDg1MzE1LCA4NTMxOCwgODUzMjEsIDg1MzI0LCA4NTMyOSwgODUzMzIsIAorICAgIDg1MzM2LCA4NTMzOSwgODUzNDIsIDg1MzQ1LCA4NTM0OCwgODUzNTEsIDg1MzU0LCA4NTM1NywgODUzNjAsIDg1MzYzLCAKKyAgICA4NTM2NiwgODUzNjksIDg1MzczLCA4NTM3NywgODUzODEsIDg1Mzg1LCA4NTM5MCwgODUzOTUsIDg1NDAxLCA4NTQwNywgCisgICAgODU0MTMsIDg1NDE4LCA4NTQyNCwgODU0MzAsIDg1NDM2LCA4NTQ0MSwgODU0NDcsIDg1NDUzLCA4NTQ1OCwgODU0NjMsIAorICAgIDg1NDY5LCA4NTQ3NCwgODU0ODAsIDg1NDg2LCA4NTQ5MSwgODU0OTcsIDg1NTAzLCA4NTUwOCwgODU1MTQsIDg1NTIwLCAKKyAgICA4NTUyNiwgODU1MzIsIDg1NTM4LCA4NTU0MiwgODU1NDcsIDg1NTUxLCA4NTU1NiwgODU1NjAsIDg1NTY1LCA4NTU3MCwgCisgICAgODU1NzYsIDg1NTgyLCA4NTU4OCwgODU1OTMsIDg1NTk5LCA4NTYwNSwgODU2MTEsIDg1NjE2LCA4NTYyMiwgODU2MjgsIAorICAgIDg1NjMzLCA4NTYzOCwgODU2NDQsIDg1NjQ5LCA4NTY1NSwgODU2NjEsIDg1NjY2LCA4NTY3MiwgODU2NzgsIDg1NjgzLCAKKyAgICA4NTY4OSwgODU2OTUsIDg1NzAxLCA4NTcwNywgODU3MTMsIDg1NzE4LCA4NTcyMiwgODU3MjcsIDg1NzI5LCA4NTczNCwgCisgICAgODU3MzksIDg1NzQ1LCA4NTc1MCwgODU3NTUsIDg1NzU5LCA4NTc2NSwgODU3NzAsIDg1Nzc1LCA4NTc4MCwgODU3ODUsIAorICAgIDg1NzkwLCA4NTc5NSwgODU4MDAsIDg1ODA2LCA4NTgxMiwgODU4MTgsIDg1ODI2LCA4NTgzMCwgODU4MzQsIDg1ODM4LCAKKyAgICA4NTg0MiwgODU4NDYsIDg1ODUwLCA4NTg1NSwgODU4NjAsIDg1ODY1LCA4NTg3MCwgODU4NzQsIDg1ODc5LCA4NTg4NCwgCisgICAgODU4ODksIDg1ODk0LCA4NTg5OSwgODU5MDQsIDg1OTA5LCA4NTkxNCwgODU5MTgsIDg1OTIyLCA4NTkyNywgODU5MzIsIAorICAgIDg1OTM3LCA4NTk0MiwgODU5NDYsIDg1OTUxLCA4NTk1NiwgODU5NjEsIDg1OTY2LCA4NTk3MCwgODU5NzUsIDg1OTgwLCAKKyAgICA4NTk4NSwgODU5OTAsIDg1OTk0LCA4NTk5OSwgODYwMDQsIDg2MDA4LCA4NjAxMywgODYwMTgsIDg2MDIzLCA4NjAyOCwgCisgICAgODYwMzMsIDg2MDM4LCA4NjA0NSwgODYwNTIsIDg2MDU2LCA4NjA2MSwgODYwNjYsIDg2MDcxLCA4NjA3NiwgODYwODEsIAorICAgIDg2MDg2LCA4NjA5MSwgODYwOTYsIDg2MTAxLCA4NjEwNiwgODYxMTEsIDg2MTE2LCA4NjEyMSwgODYxMjYsIDg2MTMxLCAKKyAgICA4NjEzNiwgODYxNDEsIDg2MTQ2LCA4NjE1MSwgODYxNTYsIDg2MTYxLCA4NjE2NiwgODYxNzEsIDg2MTc2LCA4NjE4MSwgCisgICAgODYxODYsIDg2MTkxLCA4NjE5NiwgODYyMDEsIDAsIDAsIDAsIDg2MjA2LCA4NjIxMCwgODYyMTUsIDg2MjE5LCA4NjIyNCwgCisgICAgODYyMjksIDAsIDAsIDg2MjMzLCA4NjIzOCwgODYyNDMsIDg2MjQ3LCA4NjI1MiwgODYyNTcsIDAsIDAsIDg2MjYyLCAKKyAgICA4NjI2NywgODYyNzEsIDg2Mjc2LCA4NjI4MSwgODYyODYsIDAsIDAsIDg2MjkxLCA4NjI5NiwgODYzMDEsIDAsIDAsIDAsIAorICAgIDg2MzA1LCA4NjMwOSwgODYzMTMsIDg2MzE3LCA4NjMyMCwgODYzMjQsIDg2MzI4LCAwLCA4NjMzMiwgODYzMzgsIDg2MzQxLCAKKyAgICA4NjM0NSwgODYzNDgsIDg2MzUyLCA4NjM1NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODYzNjAsIDg2MzY2LCAKKyAgICA4NjM3MiwgODYzNzgsIDg2Mzg0LCAwLCAwLCA4NjM4OCwgODYzOTQsIDg2NDAwLCA4NjQwNiwgODY0MTIsIDg2NDE4LCAKKyAgICA4NjQyNSwgODY0MzIsIDg2NDM5LCA4NjQ0NiwgODY0NTMsIDg2NDYwLCAwLCA4NjQ2NywgODY0NzQsIDg2NDgxLCA4NjQ4NywgCisgICAgODY0OTQsIDg2NTAxLCA4NjUwOCwgODY1MTUsIDg2NTIxLCA4NjUyOCwgODY1MzUsIDg2NTQyLCA4NjU0OSwgODY1NTUsIAorICAgIDg2NTYyLCA4NjU2OSwgODY1NzYsIDg2NTgzLCA4NjU4OSwgODY1OTYsIDg2NjAzLCA4NjYxMCwgODY2MTcsIDg2NjI0LCAKKyAgICA4NjYzMSwgODY2MzgsIDAsIDg2NjQ1LCA4NjY1MSwgODY2NTgsIDg2NjY1LCA4NjY3MiwgODY2NzksIDg2Njg1LCA4NjY5MiwgCisgICAgODY2OTksIDg2NzA2LCA4NjcxMywgODY3MjAsIDg2NzI3LCA4NjczNCwgODY3NDAsIDg2NzQ3LCA4Njc1NCwgODY3NjEsIAorICAgIDg2NzY4LCAwLCA4Njc3NSwgODY3ODIsIDAsIDg2Nzg5LCA4Njc5NiwgODY4MDMsIDg2ODEwLCA4NjgxNywgODY4MjQsIAorICAgIDg2ODMxLCA4NjgzOCwgODY4NDUsIDg2ODUyLCA4Njg1OSwgODY4NjYsIDg2ODczLCA4Njg4MCwgODY4ODcsIDAsIDAsIAorICAgIDg2ODkzLCA4Njg5OCwgODY5MDMsIDg2OTA4LCA4NjkxMywgODY5MTgsIDg2OTIzLCA4NjkyOCwgODY5MzMsIDg2OTM4LCAKKyAgICA4Njk0MywgODY5NDgsIDg2OTUzLCA4Njk1OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODY5NjMsIDg2OTcwLCAKKyAgICA4Njk3NywgODY5ODQsIDg2OTkxLCA4Njk5OCwgODcwMDUsIDg3MDEyLCA4NzAxOSwgODcwMjYsIDg3MDMzLCA4NzA0MCwgCisgICAgODcwNDcsIDg3MDU0LCA4NzA2MSwgODcwNjgsIDg3MDc1LCA4NzA4MiwgODcwODksIDg3MDk2LCA4NzEwNCwgODcxMTIsIAorICAgIDg3MTE5LCA4NzEyNiwgODcxMzEsIDg3MTM5LCA4NzE0NywgODcxNTQsIDg3MTYxLCA4NzE2NiwgODcxNzMsIDg3MTc4LCAKKyAgICA4NzE4MywgODcxOTAsIDg3MTk1LCA4NzIwMCwgODcyMDUsIDg3MjEzLCA4NzIxOCwgODcyMjMsIDg3MjMwLCA4NzIzNSwgCisgICAgODcyNDAsIDg3MjQ3LCA4NzI1NCwgODcyNTksIDg3MjY0LCA4NzI2OSwgODcyNzQsIDg3Mjc5LCA4NzI4NCwgODcyODksIAorICAgIDg3Mjk0LCA4NzI5OSwgODczMDYsIDg3MzExLCA4NzMxOCwgODczMjMsIDg3MzI4LCA4NzMzMywgODczMzgsIDg3MzQzLCAKKyAgICA4NzM0OCwgODczNTMsIDg3MzU4LCA4NzM2MywgODczNjgsIDg3MzczLCA4NzM4MCwgODczODcsIDg3Mzk0LCA4NzQwMSwgCisgICAgODc0MDcsIDg3NDEyLCA4NzQxOSwgODc0MjQsIDg3NDI5LCA4NzQzOCwgODc0NDUsIDg3NDU0LCA4NzQ2MSwgODc0NjYsIAorICAgIDg3NDcxLCA4NzQ3OSwgODc0ODQsIDg3NDg5LCA4NzQ5NCwgODc0OTksIDg3NTA0LCA4NzUxMSwgODc1MTYsIDg3NTIxLCAKKyAgICA4NzUyNiwgODc1MzEsIDg3NTM2LCA4NzU0MywgODc1NTAsIDg3NTU3LCA4NzU2NCwgODc1NzEsIDg3NTc4LCA4NzU4NSwgCisgICAgODc1OTIsIDg3NTk5LCA4NzYwNiwgODc2MTMsIDg3NjIwLCA4NzYyNywgODc2MzQsIDg3NjQxLCA4NzY0OCwgODc2NTUsIAorICAgIDg3NjYyLCA4NzY2OSwgODc2NzYsIDg3NjgzLCA4NzY5MCwgODc2OTcsIDg3NzA0LCA4NzcxMSwgODc3MTgsIDg3NzI1LCAKKyAgICA4NzczMiwgMCwgMCwgMCwgMCwgMCwgODc3MzksIDg3NzQ3LCA4Nzc1NSwgMCwgMCwgMCwgMCwgODc3NjAsIDg3NzY0LCAKKyAgICA4Nzc2OCwgODc3NzIsIDg3Nzc2LCA4Nzc4MCwgODc3ODQsIDg3Nzg4LCA4Nzc5MiwgODc3OTYsIDg3ODAxLCA4NzgwNiwgCisgICAgODc4MTEsIDg3ODE2LCA4NzgyMSwgODc4MjYsIDg3ODMxLCA4NzgzNiwgODc4NDEsIDg3ODQ3LCA4Nzg1MywgODc4NTksIAorICAgIDg3ODY2LCA4Nzg3MywgODc4ODAsIDg3ODg3LCA4Nzg5NCwgODc5MDEsIDg3OTA3LCA4NzkxMywgODc5MTksIDg3OTI2LCAKKyAgICA4NzkzMywgODc5NDAsIDg3OTQ3LCA4Nzk1NCwgODc5NjEsIDg3OTY4LCA4Nzk3NSwgODc5ODIsIDg3OTg5LCA4Nzk5NiwgCisgICAgODgwMDMsIDg4MDEwLCA4ODAxNywgMCwgMCwgMCwgODgwMjQsIDg4MDMyLCA4ODA0MCwgODgwNDgsIDg4MDU2LCA4ODA2NCwgCisgICAgODgwNzQsIDg4MDg0LCA4ODA5MiwgODgxMDAsIDg4MTA4LCA4ODExNiwgODgxMjQsIDg4MTMwLCA4ODEzNywgODgxNDYsIAorICAgIDg4MTU1LCA4ODE2NCwgODgxNzMsIDg4MTgyLCA4ODE5MSwgODgyMDEsIDg4MjEyLCA4ODIyMiwgODgyMzMsIDg4MjQyLCAKKyAgICA4ODI1MSwgODgyNjAsIDg4MjcwLCA4ODI4MSwgODgyOTEsIDg4MzAyLCA4ODMxMywgODgzMjIsIDg4MzMwLCA4ODMzNiwgCisgICAgODgzNDIsIDg4MzQ4LCA4ODM1NCwgODgzNjIsIDg4MzcwLCA4ODM3NiwgODgzODMsIDg4MzkzLCA4ODQwMCwgODg0MDcsIAorICAgIDg4NDE0LCA4ODQyMSwgODg0MjgsIDg4NDM4LCA4ODQ0NSwgODg0NTIsIDg4NDYwLCA4ODQ2OCwgODg0NzcsIDg4NDg2LCAKKyAgICA4ODQ5NSwgODg1MDQsIDg4NTEzLCA4ODUyMSwgODg1MzAsIDg4NTM5LCA4ODU0OCwgODg1NTIsIDg4NTU5LCA4ODU2NCwgCisgICAgODg1NjksIDg4NTczLCA4ODU3NywgODg1ODEsIDg4NTg1LCA4ODU5MCwgODg1OTUsIDg4NjAxLCA4ODYwNywgODg2MTEsIAorICAgIDg4NjE3LCA4ODYyMSwgODg2MjUsIDg4NjI5LCA4ODYzMywgODg2MzcsIDg4NjQxLCA4ODY0NywgMCwgMCwgMCwgMCwgMCwgCisgICAgODg2NTEsIDg4NjU2LCA4ODY2MSwgODg2NjYsIDg4NjcxLCA4ODY3OCwgODg2ODMsIDg4Njg4LCA4ODY5MywgODg2OTgsIAorICAgIDg4NzAzLCA4ODcwOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODg3MDgsIDg4NzE1LCA4ODcyNCwgODg3MzMsIDg4NzQwLCA4ODc0NywgODg3NTQsIAotICAgIDg4NzYxLCA4ODc2OCwgODg3NzUsIDg4NzgxLCA4ODc4OCwgODg3OTUsIDg4ODAyLCA4ODgwOSwgODg4MTYsIDg4ODIzLCAKLSAgICA4ODgzMCwgODg4MzcsIDg4ODQ2LCA4ODg1MywgODg4NjAsIDg4ODY3LCA4ODg3NCwgODg4ODEsIDg4ODg4LCA4ODg5NSwgCi0gICAgODg5MDIsIDg4OTExLCA4ODkxOCwgODg5MjUsIDg4OTMyLCA4ODkzOSwgODg5NDYsIDg4OTUzLCA4ODk2MiwgODg5NjksIAotICAgIDg4OTc2LCA4ODk4MywgODg5OTAsIDg4OTk5LCA4OTAwNiwgODkwMTMsIDg5MDIwLCA4OTAyOCwgODkwMzcsIDAsIDAsIAotICAgIDg5MDQ2LCA4OTA1MCwgODkwNTQsIDg5MDU5LCA4OTA2NCwgODkwNjksIDg5MDc0LCA4OTA3OCwgODkwODMsIDg5MDg4LCAKLSAgICA4OTA5MywgODkwOTgsIDg5MTAzLCA4OTEwOCwgODkxMTIsIDg5MTE2LCA4OTEyMSwgODkxMjYsIDg5MTMxLCA4OTEzNSwgCi0gICAgODkxNDAsIDg5MTQ1LCA4OTE0OSwgODkxNTQsIDg5MTU5LCA4OTE2NCwgODkxNjksIDg5MTc0LCA4OTE3OSwgMCwgMCwgMCwgCi0gICAgODkxODQsIDg5MTg4LCA4OTE5MywgODkxOTgsIDg5MjAyLCA4OTIwNywgODkyMTEsIDg5MjE2LCA4OTIyMSwgODkyMjYsIAotICAgIDg5MjMxLCA4OTIzNSwgODkyMzksIDg5MjQ0LCA4OTI0OSwgODkyNTQsIDg5MjU5LCA4OTI2NCwgODkyNjksIDg5MjczLCAKLSAgICA4OTI3OCwgODkyODMsIDg5Mjg4LCA4OTI5MywgODkyOTgsIDg5MzAzLCA4OTMwNywgODkzMTEsIDg5MzE2LCA4OTMyMSwgCi0gICAgODkzMjYsIDg5MzMxLCA4OTMzNiwgODkzNDEsIDg5MzQ2LCA4OTM1MSwgODkzNTYsIDg5MzYxLCA4OTM2NiwgODkzNzEsIAotICAgIDg5Mzc2LCA4OTM4MSwgODkzODYsIDg5MzkxLCA4OTM5NiwgODk0MDEsIDg5NDA2LCA4OTQxMSwgODk0MTYsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDg4NzEzLCA4ODcyMCwgODg3MjksIDg4NzM4LCA4ODc0NSwgODg3NTIsIDg4NzU5LCAKKyAgICA4ODc2NiwgODg3NzMsIDg4NzgwLCA4ODc4NiwgODg3OTMsIDg4ODAwLCA4ODgwNywgODg4MTQsIDg4ODIxLCA4ODgyOCwgCisgICAgODg4MzUsIDg4ODQyLCA4ODg1MSwgODg4NTgsIDg4ODY1LCA4ODg3MiwgODg4NzksIDg4ODg2LCA4ODg5MywgODg5MDAsIAorICAgIDg4OTA3LCA4ODkxNiwgODg5MjMsIDg4OTMwLCA4ODkzNywgODg5NDQsIDg4OTUxLCA4ODk1OCwgODg5NjcsIDg4OTc0LCAKKyAgICA4ODk4MSwgODg5ODgsIDg4OTk1LCA4OTAwNCwgODkwMTEsIDg5MDE4LCA4OTAyNSwgODkwMzMsIDg5MDQyLCAwLCAwLCAKKyAgICA4OTA1MSwgODkwNTUsIDg5MDU5LCA4OTA2NCwgODkwNjksIDg5MDc0LCA4OTA3OSwgODkwODMsIDg5MDg4LCA4OTA5MywgCisgICAgODkwOTgsIDg5MTAzLCA4OTEwOCwgODkxMTMsIDg5MTE3LCA4OTEyMSwgODkxMjYsIDg5MTMxLCA4OTEzNiwgODkxNDAsIAorICAgIDg5MTQ1LCA4OTE1MCwgODkxNTQsIDg5MTU5LCA4OTE2NCwgODkxNjksIDg5MTc0LCA4OTE3OSwgODkxODQsIDAsIDAsIDAsIAorICAgIDg5MTg5LCA4OTE5MywgODkxOTgsIDg5MjAzLCA4OTIwNywgODkyMTIsIDg5MjE2LCA4OTIyMSwgODkyMjYsIDg5MjMxLCAKKyAgICA4OTIzNiwgODkyNDAsIDg5MjQ0LCA4OTI0OSwgODkyNTQsIDg5MjU5LCA4OTI2NCwgODkyNjksIDg5Mjc0LCA4OTI3OCwgCisgICAgODkyODMsIDg5Mjg4LCA4OTI5MywgODkyOTgsIDg5MzAzLCA4OTMwOCwgODkzMTIsIDg5MzE2LCA4OTMyMSwgODkzMjYsIAorICAgIDg5MzMxLCA4OTMzNiwgODkzNDEsIDg5MzQ2LCA4OTM1MSwgODkzNTYsIDg5MzYxLCA4OTM2NiwgODkzNzEsIDg5Mzc2LCAKKyAgICA4OTM4MSwgODkzODYsIDg5MzkxLCA4OTM5NiwgODk0MDEsIDg5NDA2LCA4OTQxMSwgODk0MTYsIDg5NDIxLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4OTQyMSwgODk0MjUsIAotICAgIDg5NDMwLCA4OTQzNSwgODk0NDAsIDg5NDQ0LCA4OTQ0OSwgODk0NTQsIDg5NDU5LCA4OTQ2NCwgODk0NjgsIDg5NDcyLCAKLSAgICA4OTQ3NywgODk0ODIsIDg5NDg3LCA4OTQ5MiwgODk0OTYsIDg5NTAxLCA4OTUwNiwgODk1MTEsIDg5NTE2LCA4OTUyMSwgCi0gICAgODk1MjYsIDg5NTMwLCA4OTUzNSwgODk1NDAsIDg5NTQ1LCA4OTU1MCwgODk1NTUsIDg5NTYwLCA4OTU2NSwgMCwgODk1NzAsIAotICAgIDg5NTc1LCA4OTU4MCwgODk1ODYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDg5NTkyLCA4OTU5NywgCi0gICAgODk2MDIsIDg5NjA3LCA4OTYxMiwgODk2MTcsIDg5NjIyLCA4OTYyNywgODk2MzIsIDg5NjM3LCA4OTY0MiwgODk2NDcsIAotICAgIDg5NjUyLCA4OTY1NywgODk2NjIsIDg5NjY3LCA4OTY3MiwgODk2NzcsIDg5NjgyLCA4OTY4NywgODk2OTIsIDg5Njk3LCAKLSAgICA4OTcwMiwgODk3MDcsIDg5NzEyLCA4OTcxNywgODk3MjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDg5NDI2LCA4OTQzMCwgCisgICAgODk0MzUsIDg5NDQwLCA4OTQ0NSwgODk0NDksIDg5NDU0LCA4OTQ1OSwgODk0NjQsIDg5NDY5LCA4OTQ3MywgODk0NzcsIAorICAgIDg5NDgyLCA4OTQ4NywgODk0OTIsIDg5NDk3LCA4OTUwMSwgODk1MDYsIDg5NTExLCA4OTUxNiwgODk1MjEsIDg5NTI2LCAKKyAgICA4OTUzMSwgODk1MzUsIDg5NTQwLCA4OTU0NSwgODk1NTAsIDg5NTU1LCA4OTU2MCwgODk1NjUsIDg5NTcwLCAwLCA4OTU3NSwgCisgICAgODk1ODAsIDg5NTg1LCA4OTU5MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODk1OTcsIDg5NjAyLCAKKyAgICA4OTYwNywgODk2MTIsIDg5NjE3LCA4OTYyMiwgODk2MjcsIDg5NjMyLCA4OTYzNywgODk2NDIsIDg5NjQ3LCA4OTY1MiwgCisgICAgODk2NTcsIDg5NjYyLCA4OTY2NywgODk2NzIsIDg5Njc3LCA4OTY4MiwgODk2ODcsIDg5NjkyLCA4OTY5NywgODk3MDIsIAorICAgIDg5NzA3LCA4OTcxMiwgODk3MTcsIDg5NzIyLCA4OTcyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODk3MjksIDg5NzM0LCA4OTczOSwgCi0gICAgODk3NDQsIDg5NzQ5LCA4OTc1NCwgODk3NTksIDg5NzY0LCA4OTc2OSwgODk3NzQsIDg5Nzc5LCA4OTc4NCwgODk3ODksIAotICAgIDg5Nzk0LCA4OTc5OSwgODk4MDQsIDg5ODA5LCA4OTgxNCwgODk4MTksIDg5ODI0LCA4OTgyOSwgODk4MzQsIDg5ODM5LCAKLSAgICA4OTg0NCwgODk4NDksIDg5ODU0LCA4OTg1OSwgODk4NjMsIDg5ODY3LCA4OTg3MSwgMCwgODk4NzYsIDg5ODgyLCA4OTg4NywgCi0gICAgODk4OTIsIDg5ODk3LCA4OTkwMiwgODk5MDgsIDg5OTE0LCA4OTkyMCwgODk5MjYsIDg5OTMyLCA4OTkzOCwgODk5NDQsIAotICAgIDg5OTUwLCA4OTk1NiwgODk5NjIsIDg5OTY4LCA4OTk3NCwgODk5ODAsIDg5OTg1LCA4OTk5MSwgODk5OTcsIDkwMDAyLCAKLSAgICA5MDAwOCwgOTAwMTMsIDkwMDE5LCA5MDAyNSwgOTAwMzAsIDkwMDM2LCA5MDA0MiwgOTAwNDcsIDkwMDUzLCA5MDA1OSwgCi0gICAgOTAwNjQsIDkwMDcwLCA5MDA3NiwgOTAwODIsIDAsIDAsIDAsIDAsIDkwMDg3LCA5MDA5MywgOTAwOTksIDkwMTA1LCAKLSAgICA5MDExMSwgOTAxMTcsIDkwMTIzLCA5MDEyOSwgOTAxMzUsIDkwMTQyLCA5MDE0NywgOTAxNTIsIDkwMTU4LCA5MDE2NCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODk3MzQsIDg5NzM5LCA4OTc0NCwgCisgICAgODk3NDksIDg5NzU0LCA4OTc1OSwgODk3NjQsIDg5NzY5LCA4OTc3NCwgODk3NzksIDg5Nzg0LCA4OTc4OSwgODk3OTQsIAorICAgIDg5Nzk5LCA4OTgwNCwgODk4MDksIDg5ODE0LCA4OTgxOSwgODk4MjQsIDg5ODI5LCA4OTgzNCwgODk4MzksIDg5ODQ0LCAKKyAgICA4OTg0OSwgODk4NTQsIDg5ODU5LCA4OTg2NCwgODk4NjgsIDg5ODcyLCA4OTg3NiwgMCwgODk4ODEsIDg5ODg3LCA4OTg5MiwgCisgICAgODk4OTcsIDg5OTAyLCA4OTkwNywgODk5MTMsIDg5OTE5LCA4OTkyNSwgODk5MzEsIDg5OTM3LCA4OTk0MywgODk5NDksIAorICAgIDg5OTU1LCA4OTk2MSwgODk5NjcsIDg5OTczLCA4OTk3OSwgODk5ODUsIDg5OTkwLCA4OTk5NiwgOTAwMDIsIDkwMDA3LCAKKyAgICA5MDAxMywgOTAwMTgsIDkwMDI0LCA5MDAzMCwgOTAwMzUsIDkwMDQxLCA5MDA0NywgOTAwNTIsIDkwMDU4LCA5MDA2NCwgCisgICAgOTAwNjksIDkwMDc1LCA5MDA4MSwgOTAwODcsIDAsIDAsIDAsIDAsIDkwMDkyLCA5MDA5OCwgOTAxMDQsIDkwMTEwLCAKKyAgICA5MDExNiwgOTAxMjIsIDkwMTI4LCA5MDEzNCwgOTAxNDAsIDkwMTQ3LCA5MDE1MiwgOTAxNTcsIDkwMTYzLCA5MDE2OSwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTAxNzAsIDkwMTc1LCA5MDE4MCwgCi0gICAgOTAxODUsIDkwMTkxLCA5MDE5NiwgOTAyMDIsIDkwMjA4LCA5MDIxNCwgOTAyMjAsIDkwMjI3LCA5MDIzMywgOTAyNDAsIAotICAgIDkwMjQ1LCA5MDI1MCwgOTAyNTUsIDkwMjYwLCA5MDI2NSwgOTAyNzAsIDkwMjc1LCA5MDI4MCwgOTAyODUsIDkwMjkwLCAKLSAgICA5MDI5NSwgOTAzMDAsIDkwMzA1LCA5MDMxMCwgOTAzMTUsIDkwMzIwLCA5MDMyNSwgOTAzMzAsIDkwMzM1LCA5MDM0MCwgCi0gICAgOTAzNDUsIDkwMzUwLCA5MDM1NSwgOTAzNjAsIDkwMzY1LCA5MDM3MCwgOTAzNzUsIDkwMzgwLCA5MDM4NSwgOTAzOTAsIAotICAgIDkwMzk1LCA5MDQwMSwgOTA0MDYsIDkwNDEyLCA5MDQxOCwgOTA0MjQsIDkwNDMwLCA5MDQzNywgOTA0NDMsIDkwNDUwLCAKLSAgICA5MDQ1NSwgOTA0NjAsIDkwNDY1LCA5MDQ3MCwgOTA0NzUsIDkwNDgwLCA5MDQ4NSwgOTA0OTAsIDkwNDk1LCA5MDUwMCwgCi0gICAgOTA1MDUsIDkwNTEwLCA5MDUxNSwgOTA1MjAsIDkwNTI1LCA5MDUzMCwgOTA1MzUsIDkwNTQwLCA5MDU0NSwgOTA1NTAsIAotICAgIDkwNTU1LCA5MDU2MCwgOTA1NjUsIDkwNTcwLCA5MDU3NSwgOTA1ODAsIDkwNTg1LCA5MDU5MCwgOTA1OTUsIDkwNjAwLCAKLSAgICA5MDYwNSwgOTA2MTAsIDkwNjE1LCA5MDYyMCwgOTA2MjUsIDkwNjMwLCA5MDYzNSwgOTA2NDAsIDkwNjQ1LCA5MDY1MCwgCi0gICAgOTA2NTUsIDkwNjYwLCA5MDY2NSwgOTA2NzAsIDkwNjc1LCA5MDY4MCwgOTA2ODUsIDkwNjkwLCA5MDY5NSwgOTA3MDAsIAotICAgIDkwNzA1LCA5MDcxMCwgOTA3MTUsIDkwNzIwLCA5MDcyNSwgOTA3MzAsIDkwNzM1LCA5MDc0MCwgOTA3NDUsIDkwNzUwLCAKLSAgICA5MDc1NSwgOTA3NjAsIDkwNzY1LCA5MDc3MCwgOTA3NzUsIDkwNzgwLCA5MDc4NSwgOTA3OTAsIDkwNzk1LCA5MDgwMCwgCi0gICAgOTA4MDUsIDkwODEwLCA5MDgxNSwgOTA4MjAsIDkwODI1LCA5MDgzMCwgOTA4MzUsIDkwODQwLCA5MDg0NSwgOTA4NTAsIAotICAgIDkwODU1LCA5MDg2MCwgOTA4NjUsIDkwODY5LCA5MDg3MywgOTA4NzgsIDkwODgzLCA5MDg4OCwgOTA4OTMsIDkwODk4LCAKLSAgICA5MDkwMywgOTA5MDgsIDkwOTEzLCA5MDkxOCwgOTA5MjMsIDkwOTI4LCA5MDkzMiwgOTA5MzYsIDkwOTQwLCA5MDk0NCwgCi0gICAgOTA5NDgsIDkwOTUyLCA5MDk1NiwgOTA5NjEsIDkwOTY2LCAwLCAwLCA5MDk3MSwgOTA5NzYsIDkwOTgwLCA5MDk4NCwgCi0gICAgOTA5ODgsIDkwOTkyLCA5MDk5NiwgOTEwMDAsIDkxMDA0LCA5MTAwOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTAxNzUsIDkwMTgwLCA5MDE4NSwgCisgICAgOTAxOTAsIDkwMTk2LCA5MDIwMSwgOTAyMDcsIDkwMjEzLCA5MDIxOSwgOTAyMjUsIDkwMjMyLCA5MDIzOCwgOTAyNDUsIAorICAgIDkwMjUwLCA5MDI1NSwgOTAyNjAsIDkwMjY1LCA5MDI3MCwgOTAyNzUsIDkwMjgwLCA5MDI4NSwgOTAyOTAsIDkwMjk1LCAKKyAgICA5MDMwMCwgOTAzMDUsIDkwMzEwLCA5MDMxNSwgOTAzMjAsIDkwMzI1LCA5MDMzMCwgOTAzMzUsIDkwMzQwLCA5MDM0NSwgCisgICAgOTAzNTAsIDkwMzU1LCA5MDM2MCwgOTAzNjUsIDkwMzcwLCA5MDM3NSwgOTAzODAsIDkwMzg1LCA5MDM5MCwgOTAzOTUsIAorICAgIDkwNDAwLCA5MDQwNiwgOTA0MTEsIDkwNDE3LCA5MDQyMywgOTA0MjksIDkwNDM1LCA5MDQ0MiwgOTA0NDgsIDkwNDU1LCAKKyAgICA5MDQ2MCwgOTA0NjUsIDkwNDcwLCA5MDQ3NSwgOTA0ODAsIDkwNDg1LCA5MDQ5MCwgOTA0OTUsIDkwNTAwLCA5MDUwNSwgCisgICAgOTA1MTAsIDkwNTE1LCA5MDUyMCwgOTA1MjUsIDkwNTMwLCA5MDUzNSwgOTA1NDAsIDkwNTQ1LCA5MDU1MCwgOTA1NTUsIAorICAgIDkwNTYwLCA5MDU2NSwgOTA1NzAsIDkwNTc1LCA5MDU4MCwgOTA1ODUsIDkwNTkwLCA5MDU5NSwgOTA2MDAsIDkwNjA1LCAKKyAgICA5MDYxMCwgOTA2MTUsIDkwNjIwLCA5MDYyNSwgOTA2MzAsIDkwNjM1LCA5MDY0MCwgOTA2NDUsIDkwNjUwLCA5MDY1NSwgCisgICAgOTA2NjAsIDkwNjY1LCA5MDY3MCwgOTA2NzUsIDkwNjgwLCA5MDY4NSwgOTA2OTAsIDkwNjk1LCA5MDcwMCwgOTA3MDUsIAorICAgIDkwNzEwLCA5MDcxNSwgOTA3MjAsIDkwNzI1LCA5MDczMCwgOTA3MzUsIDkwNzQwLCA5MDc0NSwgOTA3NTAsIDkwNzU1LCAKKyAgICA5MDc2MCwgOTA3NjUsIDkwNzcwLCA5MDc3NSwgOTA3ODAsIDkwNzg1LCA5MDc5MCwgOTA3OTUsIDkwODAwLCA5MDgwNSwgCisgICAgOTA4MTAsIDkwODE1LCA5MDgyMCwgOTA4MjUsIDkwODMwLCA5MDgzNSwgOTA4NDAsIDkwODQ1LCA5MDg1MCwgOTA4NTUsIAorICAgIDkwODYwLCA5MDg2NSwgOTA4NzAsIDkwODc0LCA5MDg3OCwgOTA4ODMsIDkwODg4LCA5MDg5MywgOTA4OTgsIDkwOTAzLCAKKyAgICA5MDkwOCwgOTA5MTMsIDkwOTE4LCA5MDkyMywgOTA5MjgsIDkwOTMzLCA5MDkzNywgOTA5NDEsIDkwOTQ1LCA5MDk0OSwgCisgICAgOTA5NTMsIDkwOTU3LCA5MDk2MSwgOTA5NjYsIDkwOTcxLCAwLCAwLCA5MDk3NiwgOTA5ODEsIDkwOTg1LCA5MDk4OSwgCisgICAgOTA5OTMsIDkwOTk3LCA5MTAwMSwgOTEwMDUsIDkxMDA5LCA5MTAxMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgOTEwMTIsIDkxMDE2LCA5MTAyMCwgOTEwMjQsIDkxMDI4LCA5MTAzMiwgMCwgMCwgOTEwMzcsIDAsIAotICAgIDkxMDQyLCA5MTA0NiwgOTEwNTEsIDkxMDU2LCA5MTA2MSwgOTEwNjYsIDkxMDcxLCA5MTA3NiwgOTEwODEsIDkxMDg2LCAKLSAgICA5MTA5MSwgOTEwOTUsIDkxMTAwLCA5MTEwNSwgOTExMTAsIDkxMTE1LCA5MTExOSwgOTExMjQsIDkxMTI5LCA5MTEzNCwgCi0gICAgOTExMzksIDkxMTQzLCA5MTE0OCwgOTExNTMsIDkxMTU4LCA5MTE2MywgOTExNjcsIDkxMTcyLCA5MTE3NywgOTExODIsIAotICAgIDkxMTg3LCA5MTE5MSwgOTExOTYsIDkxMjAxLCA5MTIwNiwgOTEyMTEsIDkxMjE2LCA5MTIyMSwgOTEyMjYsIDkxMjMwLCAKLSAgICA5MTIzNSwgOTEyNDAsIDkxMjQ1LCA5MTI1MCwgMCwgOTEyNTUsIDkxMjYwLCAwLCAwLCAwLCA5MTI2NSwgMCwgMCwgOTEyNzAsIAotICAgIDkxMjc1LCA5MTI4MiwgOTEyODksIDkxMjk2LCA5MTMwMywgOTEzMTAsIDkxMzE3LCA5MTMyNCwgOTEzMzEsIDkxMzM4LCAKLSAgICA5MTM0NSwgOTEzNTIsIDkxMzU5LCA5MTM2NiwgOTEzNzMsIDkxMzgwLCA5MTM4NywgOTEzOTQsIDkxNDAxLCA5MTQwOCwgCi0gICAgOTE0MTUsIDkxNDIyLCAwLCA5MTQyOSwgOTE0MzYsIDkxNDQyLCA5MTQ0OCwgOTE0NTQsIDkxNDYxLCA5MTQ2OCwgOTE0NzYsIAotICAgIDkxNDg0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5MTQ5MywgOTE0OTgsIDkxNTAzLCA5MTUwOCwgOTE1MTMsIDkxNTE4LCAKLSAgICA5MTUyMywgOTE1MjgsIDkxNTMzLCA5MTUzOCwgOTE1NDMsIDkxNTQ4LCA5MTU1MywgOTE1NTgsIDkxNTYzLCA5MTU2OCwgCi0gICAgOTE1NzMsIDkxNTc4LCA5MTU4MywgOTE1ODgsIDkxNTkzLCA5MTU5OCwgOTE2MDMsIDkxNjA3LCA5MTYxMiwgOTE2MTcsIAotICAgIDkxNjIzLCA5MTYyNywgMCwgMCwgMCwgOTE2MzEsIDkxNjM3LCA5MTY0MSwgOTE2NDYsIDkxNjUxLCA5MTY1NiwgOTE2NjAsIAotICAgIDkxNjY1LCA5MTY2OSwgOTE2NzQsIDkxNjc5LCA5MTY4MywgOTE2ODcsIDkxNjkyLCA5MTY5NiwgOTE3MDAsIDkxNzA1LCAKLSAgICA5MTcxMCwgOTE3MTQsIDkxNzE5LCA5MTcyNCwgOTE3MjksIDkxNzM0LCA5MTczOSwgOTE3NDQsIDkxNzQ5LCA5MTc1NCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgOTE3NTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDkxMDE3LCA5MTAyMSwgOTEwMjUsIDkxMDI5LCA5MTAzMywgOTEwMzcsIDAsIDAsIDkxMDQyLCAwLCAKKyAgICA5MTA0NywgOTEwNTEsIDkxMDU2LCA5MTA2MSwgOTEwNjYsIDkxMDcxLCA5MTA3NiwgOTEwODEsIDkxMDg2LCA5MTA5MSwgCisgICAgOTEwOTYsIDkxMTAwLCA5MTEwNSwgOTExMTAsIDkxMTE1LCA5MTEyMCwgOTExMjQsIDkxMTI5LCA5MTEzNCwgOTExMzksIAorICAgIDkxMTQ0LCA5MTE0OCwgOTExNTMsIDkxMTU4LCA5MTE2MywgOTExNjgsIDkxMTcyLCA5MTE3NywgOTExODIsIDkxMTg3LCAKKyAgICA5MTE5MiwgOTExOTYsIDkxMjAxLCA5MTIwNiwgOTEyMTEsIDkxMjE2LCA5MTIyMSwgOTEyMjYsIDkxMjMxLCA5MTIzNSwgCisgICAgOTEyNDAsIDkxMjQ1LCA5MTI1MCwgOTEyNTUsIDAsIDkxMjYwLCA5MTI2NSwgMCwgMCwgMCwgOTEyNzAsIDAsIDAsIDkxMjc1LCAKKyAgICA5MTI4MCwgOTEyODcsIDkxMjk0LCA5MTMwMSwgOTEzMDgsIDkxMzE1LCA5MTMyMiwgOTEzMjksIDkxMzM2LCA5MTM0MywgCisgICAgOTEzNTAsIDkxMzU3LCA5MTM2NCwgOTEzNzEsIDkxMzc4LCA5MTM4NSwgOTEzOTIsIDkxMzk5LCA5MTQwNiwgOTE0MTMsIAorICAgIDkxNDIwLCA5MTQyNywgMCwgOTE0MzQsIDkxNDQxLCA5MTQ0NywgOTE0NTMsIDkxNDU5LCA5MTQ2NiwgOTE0NzMsIDkxNDgxLCAKKyAgICA5MTQ4OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTE0OTgsIDkxNTAzLCA5MTUwOCwgOTE1MTMsIDkxNTE4LCA5MTUyMywgCisgICAgOTE1MjgsIDkxNTMzLCA5MTUzOCwgOTE1NDMsIDkxNTQ4LCA5MTU1MywgOTE1NTgsIDkxNTYzLCA5MTU2OCwgOTE1NzMsIAorICAgIDkxNTc4LCA5MTU4MywgOTE1ODgsIDkxNTkzLCA5MTU5OCwgOTE2MDMsIDkxNjA4LCA5MTYxMiwgOTE2MTcsIDkxNjIyLCAKKyAgICA5MTYyOCwgOTE2MzIsIDAsIDAsIDAsIDkxNjM2LCA5MTY0MiwgOTE2NDYsIDkxNjUxLCA5MTY1NiwgOTE2NjEsIDkxNjY1LCAKKyAgICA5MTY3MCwgOTE2NzQsIDkxNjc5LCA5MTY4NCwgOTE2ODgsIDkxNjkyLCA5MTY5NywgOTE3MDEsIDkxNzA1LCA5MTcxMCwgCisgICAgOTE3MTUsIDkxNzE5LCA5MTcyNCwgOTE3MjksIDkxNzM0LCA5MTczOSwgOTE3NDQsIDkxNzQ5LCA5MTc1NCwgOTE3NTksIDAsIAorICAgIDAsIDAsIDAsIDAsIDkxNzY0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5MTc2NCwgCi0gICAgOTE3NzAsIDkxNzc2LCA5MTc4MiwgOTE3ODgsIDkxNzk0LCA5MTgwMSwgOTE4MDgsIDkxODE1LCA5MTgyMSwgOTE4MjcsIAotICAgIDkxODMzLCA5MTg0MCwgOTE4NDcsIDkxODU0LCA5MTg2MCwgOTE4NjcsIDkxODc0LCA5MTg4MSwgOTE4ODgsIDkxODk0LCAKLSAgICA5MTkwMSwgOTE5MDgsIDkxOTE0LCA5MTkyMSwgOTE5MjgsIDkxOTM1LCA5MTk0MiwgOTE5NDksIDkxOTU1LCA5MTk2MiwgCi0gICAgOTE5NjksIDkxOTc2LCA5MTk4MiwgOTE5ODgsIDkxOTk0LCA5MjAwMCwgOTIwMDYsIDkyMDEzLCA5MjAyMCwgOTIwMjYsIAotICAgIDkyMDMyLCA5MjAzOCwgOTIwNDUsIDkyMDUxLCA5MjA1OCwgOTIwNjUsIDkyMDcyLCA5MjA3OCwgOTIwODYsIDkyMDkzLCAKLSAgICA5MjA5OSwgOTIxMDYsIDkyMTEzLCA5MjEyMCwgOTIxMjYsIDAsIDAsIDAsIDAsIDAsIDAsIDkyMTMzLCA5MjE0MSwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTE3NjksIAorICAgIDkxNzc1LCA5MTc4MSwgOTE3ODcsIDkxNzkzLCA5MTc5OSwgOTE4MDYsIDkxODEzLCA5MTgyMCwgOTE4MjYsIDkxODMyLCAKKyAgICA5MTgzOCwgOTE4NDUsIDkxODUyLCA5MTg1OSwgOTE4NjUsIDkxODcyLCA5MTg3OSwgOTE4ODYsIDkxODkzLCA5MTg5OSwgCisgICAgOTE5MDYsIDkxOTEzLCA5MTkxOSwgOTE5MjYsIDkxOTMzLCA5MTk0MCwgOTE5NDcsIDkxOTU0LCA5MTk2MCwgOTE5NjcsIAorICAgIDkxOTc0LCA5MTk4MSwgOTE5ODcsIDkxOTkzLCA5MTk5OSwgOTIwMDUsIDkyMDExLCA5MjAxOCwgOTIwMjUsIDkyMDMxLCAKKyAgICA5MjAzNywgOTIwNDMsIDkyMDUwLCA5MjA1NiwgOTIwNjMsIDkyMDcwLCA5MjA3NywgOTIwODMsIDkyMDkxLCA5MjA5OCwgCisgICAgOTIxMDQsIDkyMTExLCA5MjExOCwgOTIxMjUsIDkyMTMxLCAwLCAwLCAwLCAwLCAwLCAwLCA5MjEzOCwgOTIxNDYsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDkyMTQ5LCA5MjE1MywgOTIxNTgsIDkyMTYzLCAwLCAKLSAgICA5MjE2OSwgOTIxNzQsIDAsIDAsIDAsIDAsIDAsIDkyMTc5LCA5MjE4NSwgOTIxOTIsIDkyMTk3LCA5MjIwMiwgOTIyMDYsIAotICAgIDkyMjExLCA5MjIxNiwgMCwgOTIyMjEsIDkyMjI2LCA5MjIzMSwgMCwgOTIyMzYsIDkyMjQxLCA5MjI0NiwgOTIyNTEsIAotICAgIDkyMjU2LCA5MjI2MSwgOTIyNjYsIDkyMjcxLCA5MjI3NiwgOTIyODEsIDkyMjg2LCA5MjI5MCwgOTIyOTQsIDkyMjk5LCAKLSAgICA5MjMwNCwgOTIzMDksIDkyMzEzLCA5MjMxNywgOTIzMjEsIDkyMzI2LCA5MjMzMSwgOTIzMzYsIDkyMzQxLCA5MjM0NSwgCi0gICAgOTIzNTAsIDkyMzU0LCA5MjM1OSwgMCwgMCwgMCwgMCwgOTIzNjQsIDkyMzcwLCA5MjM3NSwgMCwgMCwgMCwgMCwgOTIzODAsIAotICAgIDkyMzg0LCA5MjM4OCwgOTIzOTIsIDkyMzk2LCA5MjQwMCwgOTI0MDUsIDkyNDEwLCA5MjQxNiwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgOTI0MjIsIDkyNDI4LCA5MjQzNSwgOTI0NDEsIDkyNDQ4LCA5MjQ1NCwgOTI0NjAsIDkyNDY2LCA5MjQ3MywgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgOTI0NzksIDkyNDg3LCA5MjQ5NSwgOTI1MDMsIDkyNTExLCA5MjUxOSwgOTI1MjcsIDkyNTM1LCAKLSAgICA5MjU0MywgOTI1NTEsIDkyNTU5LCA5MjU2NywgOTI1NzUsIDkyNTgzLCA5MjU5MSwgOTI1OTksIDkyNjA3LCA5MjYxNSwgCi0gICAgOTI2MjMsIDkyNjMxLCA5MjYzOSwgOTI2NDcsIDkyNjU1LCA5MjY2MywgOTI2NzEsIDkyNjc5LCA5MjY4NywgOTI2OTUsIAotICAgIDkyNzAzLCA5MjcxMSwgOTI3MTgsIDkyNzI2LCA5MjczNCwgOTI3MzgsIDkyNzQzLCA5Mjc0OCwgOTI3NTMsIDkyNzU4LCAKLSAgICA5Mjc2MywgOTI3NjgsIDkyNzczLCA5Mjc3NywgOTI3ODIsIDkyNzg2LCA5Mjc5MSwgOTI3OTUsIDkyODAwLCA5MjgwNCwgCi0gICAgOTI4MDksIDkyODE0LCA5MjgxOSwgOTI4MjQsIDkyODI5LCA5MjgzNCwgOTI4MzksIDkyODQ0LCA5Mjg0OSwgOTI4NTQsIAotICAgIDkyODU5LCA5Mjg2NCwgOTI4NjksIDkyODc0LCA5Mjg3OSwgOTI4ODQsIDkyODg5LCA5Mjg5NCwgOTI4OTksIDkyOTA0LCAKLSAgICA5MjkwOSwgOTI5MTQsIDkyOTE5LCA5MjkyNCwgOTI5MjksIDkyOTM0LCA5MjkzOSwgOTI5NDQsIDkyOTQ5LCA5Mjk1NCwgCi0gICAgOTI5NTksIDkyOTY0LCA5Mjk2OSwgOTI5NzQsIDkyOTc5LCA5Mjk4NCwgOTI5ODksIDkyOTk0LCAwLCAwLCAwLCA5Mjk5OSwgCi0gICAgOTMwMDQsIDkzMDEzLCA5MzAyMSwgOTMwMzAsIDkzMDM5LCA5MzA1MCwgOTMwNjEsIDkzMDY4LCA5MzA3NSwgOTMwODIsIAotICAgIDkzMDg5LCA5MzA5NiwgOTMxMDMsIDkzMTEwLCA5MzExNywgOTMxMjQsIDkzMTMxLCA5MzEzOCwgOTMxNDUsIDkzMTUyLCAKLSAgICA5MzE1OSwgOTMxNjYsIDkzMTczLCA5MzE4MCwgOTMxODcsIDkzMTk0LCA5MzIwMSwgOTMyMDgsIDAsIDAsIDkzMjE1LCAKLSAgICA5MzIyMSwgOTMyMjcsIDkzMjMzLCA5MzIzOSwgOTMyNDYsIDkzMjUzLCA5MzI2MSwgOTMyNjksIDkzMjc2LCA5MzI4MywgCi0gICAgOTMyOTAsIDkzMjk3LCA5MzMwNCwgOTMzMTEsIDkzMzE4LCA5MzMyNSwgOTMzMzIsIDkzMzM5LCA5MzM0NiwgOTMzNTMsIAotICAgIDkzMzYwLCA5MzM2NywgOTMzNzQsIDkzMzgxLCA5MzM4OCwgOTMzOTUsIDAsIDAsIDAsIDAsIDAsIDkzNDAyLCA5MzQwOCwgCi0gICAgOTM0MTQsIDkzNDIwLCA5MzQyNiwgOTM0MzMsIDkzNDQwLCA5MzQ0OCwgOTM0NTYsIDkzNDYyLCA5MzQ2OCwgOTM0NzUsIAotICAgIDkzNDgxLCA5MzQ4NywgOTM0OTMsIDkzNDk5LCA5MzUwNiwgOTM1MTMsIDkzNTIwLCA5MzUyNywgOTM1MzQsIDkzNTQxLCAKLSAgICA5MzU0OCwgOTM1NTUsIDkzNTYyLCA5MzU2OSwgOTM1NzYsIDkzNTgzLCA5MzU5MCwgOTM1OTcsIDkzNjA0LCA5MzYxMSwgCi0gICAgOTM2MTgsIDkzNjI1LCA5MzYzMiwgOTM2MzksIDkzNjQ2LCA5MzY1MywgOTM2NjAsIDkzNjY3LCA5MzY3NCwgOTM2ODEsIAotICAgIDkzNjg4LCA5MzY5NSwgOTM3MDIsIDkzNzA5LCA5MzcxNiwgOTM3MjMsIDkzNzMwLCA5MzczNywgOTM3NDQsIDkzNzUxLCAKLSAgICA5Mzc1OCwgOTM3NjUsIDkzNzcyLCA5Mzc3OSwgOTM3ODYsIDkzNzkzLCA5MzgwMCwgOTM4MDcsIDkzODE0LCA5MzgyMSwgCi0gICAgOTM4MjgsIDkzODM1LCA5Mzg0MiwgOTM4NDksIDkzODU2LCA5Mzg2MywgOTM4NzAsIDkzODc3LCA5Mzg4NCwgOTM4OTEsIAotICAgIDkzODk4LCA5MzkwNSwgOTM5MTIsIDkzOTE5LCA5MzkyNiwgOTM5MzMsIDkzOTQwLCA5Mzk0NywgOTM5NTQsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDkyMTU0LCA5MjE1OCwgOTIxNjMsIDkyMTY4LCAwLCAKKyAgICA5MjE3NCwgOTIxNzksIDAsIDAsIDAsIDAsIDAsIDkyMTg0LCA5MjE5MCwgOTIxOTcsIDkyMjAyLCA5MjIwNywgOTIyMTEsIAorICAgIDkyMjE2LCA5MjIyMSwgMCwgOTIyMjYsIDkyMjMxLCA5MjIzNiwgMCwgOTIyNDEsIDkyMjQ2LCA5MjI1MSwgOTIyNTYsIAorICAgIDkyMjYxLCA5MjI2NiwgOTIyNzEsIDkyMjc2LCA5MjI4MSwgOTIyODYsIDkyMjkxLCA5MjI5NSwgOTIyOTksIDkyMzA0LCAKKyAgICA5MjMwOSwgOTIzMTQsIDkyMzE4LCA5MjMyMiwgOTIzMjYsIDkyMzMxLCA5MjMzNiwgOTIzNDEsIDkyMzQ2LCA5MjM1MCwgCisgICAgOTIzNTUsIDkyMzU5LCA5MjM2NCwgMCwgMCwgMCwgMCwgOTIzNjksIDkyMzc1LCA5MjM4MCwgMCwgMCwgMCwgMCwgOTIzODUsIAorICAgIDkyMzg5LCA5MjM5MywgOTIzOTcsIDkyNDAxLCA5MjQwNSwgOTI0MTAsIDkyNDE1LCA5MjQyMSwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgOTI0MjcsIDkyNDMzLCA5MjQ0MCwgOTI0NDYsIDkyNDUzLCA5MjQ1OSwgOTI0NjUsIDkyNDcxLCA5MjQ3OCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgOTI0ODQsIDkyNDkyLCA5MjUwMCwgOTI1MDgsIDkyNTE2LCA5MjUyNCwgOTI1MzIsIDkyNTQwLCAKKyAgICA5MjU0OCwgOTI1NTYsIDkyNTY0LCA5MjU3MiwgOTI1ODAsIDkyNTg4LCA5MjU5NiwgOTI2MDQsIDkyNjEyLCA5MjYyMCwgCisgICAgOTI2MjgsIDkyNjM2LCA5MjY0NCwgOTI2NTIsIDkyNjYwLCA5MjY2OCwgOTI2NzYsIDkyNjg0LCA5MjY5MiwgOTI3MDAsIAorICAgIDkyNzA4LCA5MjcxNiwgOTI3MjMsIDkyNzMxLCA5MjczOSwgOTI3NDMsIDkyNzQ4LCA5Mjc1MywgOTI3NTgsIDkyNzYzLCAKKyAgICA5Mjc2OCwgOTI3NzMsIDkyNzc4LCA5Mjc4MiwgOTI3ODcsIDkyNzkxLCA5Mjc5NiwgOTI4MDAsIDkyODA1LCA5MjgwOSwgCisgICAgOTI4MTQsIDkyODE5LCA5MjgyNCwgOTI4MjksIDkyODM0LCA5MjgzOSwgOTI4NDQsIDkyODQ5LCA5Mjg1NCwgOTI4NTksIAorICAgIDkyODY0LCA5Mjg2OSwgOTI4NzQsIDkyODc5LCA5Mjg4NCwgOTI4ODksIDkyODk0LCA5Mjg5OSwgOTI5MDQsIDkyOTA5LCAKKyAgICA5MjkxNCwgOTI5MTksIDkyOTI0LCA5MjkyOSwgOTI5MzQsIDkyOTM5LCA5Mjk0NCwgOTI5NDksIDkyOTU0LCA5Mjk1OSwgCisgICAgOTI5NjQsIDkyOTY5LCA5Mjk3NCwgOTI5NzksIDkyOTg0LCA5Mjk4OSwgOTI5OTQsIDkyOTk5LCAwLCAwLCAwLCA5MzAwNCwgCisgICAgOTMwMDksIDkzMDE4LCA5MzAyNiwgOTMwMzUsIDkzMDQ0LCA5MzA1NSwgOTMwNjYsIDkzMDczLCA5MzA4MCwgOTMwODcsIAorICAgIDkzMDk0LCA5MzEwMSwgOTMxMDgsIDkzMTE1LCA5MzEyMiwgOTMxMjksIDkzMTM2LCA5MzE0MywgOTMxNTAsIDkzMTU3LCAKKyAgICA5MzE2NCwgOTMxNzEsIDkzMTc4LCA5MzE4NSwgOTMxOTIsIDkzMTk5LCA5MzIwNiwgOTMyMTMsIDAsIDAsIDkzMjIwLCAKKyAgICA5MzIyNiwgOTMyMzIsIDkzMjM4LCA5MzI0NCwgOTMyNTEsIDkzMjU4LCA5MzI2NiwgOTMyNzQsIDkzMjgxLCA5MzI4OCwgCisgICAgOTMyOTUsIDkzMzAyLCA5MzMwOSwgOTMzMTYsIDkzMzIzLCA5MzMzMCwgOTMzMzcsIDkzMzQ0LCA5MzM1MSwgOTMzNTgsIAorICAgIDkzMzY1LCA5MzM3MiwgOTMzNzksIDkzMzg2LCA5MzM5MywgOTM0MDAsIDAsIDAsIDAsIDAsIDAsIDkzNDA3LCA5MzQxMywgCisgICAgOTM0MTksIDkzNDI1LCA5MzQzMSwgOTM0MzgsIDkzNDQ1LCA5MzQ1MywgOTM0NjEsIDkzNDY3LCA5MzQ3MywgOTM0ODAsIAorICAgIDkzNDg2LCA5MzQ5MiwgOTM0OTgsIDkzNTA0LCA5MzUxMSwgOTM1MTgsIDkzNTI1LCA5MzUzMiwgOTM1MzksIDkzNTQ2LCAKKyAgICA5MzU1MywgOTM1NjAsIDkzNTY3LCA5MzU3NCwgOTM1ODEsIDkzNTg4LCA5MzU5NSwgOTM2MDIsIDkzNjA5LCA5MzYxNiwgCisgICAgOTM2MjMsIDkzNjMwLCA5MzYzNywgOTM2NDQsIDkzNjUxLCA5MzY1OCwgOTM2NjUsIDkzNjcyLCA5MzY3OSwgOTM2ODYsIAorICAgIDkzNjkzLCA5MzcwMCwgOTM3MDcsIDkzNzE0LCA5MzcyMSwgOTM3MjgsIDkzNzM1LCA5Mzc0MiwgOTM3NDksIDkzNzU2LCAKKyAgICA5Mzc2MywgOTM3NzAsIDkzNzc3LCA5Mzc4NCwgOTM3OTEsIDkzNzk4LCA5MzgwNSwgOTM4MTIsIDkzODE5LCA5MzgyNiwgCisgICAgOTM4MzMsIDkzODQwLCA5Mzg0NywgOTM4NTQsIDkzODYxLCA5Mzg2OCwgOTM4NzUsIDkzODgyLCA5Mzg4OSwgOTM4OTYsIAorICAgIDkzOTAzLCA5MzkxMCwgOTM5MTcsIDkzOTI0LCA5MzkzMSwgOTM5MzgsIDkzOTQ1LCA5Mzk1MiwgOTM5NTksIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDkzOTYxLCA5Mzk2NSwgOTM5NjksIDkzOTczLCA5Mzk3NywgOTM5ODEsIDkzOTg1LCA5Mzk4OSwgCi0gICAgOTM5OTMsIDkzOTk3LCA5NDAwMiwgOTQwMDcsIDk0MDEyLCA5NDAxNywgOTQwMjIsIDk0MDI3LCA5NDAzMiwgOTQwMzcsIAotICAgIDk0MDQyLCA5NDA0OCwgOTQwNTQsIDk0MDYwLCA5NDA2NywgOTQwNzQsIDk0MDgxLCA5NDA4OCwgOTQwOTUsIDk0MTAyLCAKLSAgICA5NDEwOSwgOTQxMTYsIDk0MTIzLCAwLCA5NDEzMCwgOTQxMzQsIDk0MTM4LCA5NDE0MiwgOTQxNDYsIDk0MTUwLCA5NDE1MywgCi0gICAgOTQxNTcsIDk0MTYwLCA5NDE2NCwgOTQxNjcsIDk0MTcxLCA5NDE3NSwgOTQxODAsIDk0MTg0LCA5NDE4OSwgOTQxOTIsIAotICAgIDk0MTk2LCA5NDE5OSwgOTQyMDMsIDk0MjA2LCA5NDIxMCwgOTQyMTQsIDk0MjE4LCA5NDIyMiwgOTQyMjYsIDk0MjMwLCAKLSAgICA5NDIzNCwgOTQyMzgsIDk0MjQyLCA5NDI0NiwgOTQyNTAsIDk0MjU0LCA5NDI1OCwgOTQyNjIsIDk0MjY2LCA5NDI3MCwgCi0gICAgOTQyNzQsIDk0Mjc4LCA5NDI4MSwgOTQyODQsIDk0Mjg4LCA5NDI5MiwgOTQyOTYsIDk0Mjk5LCA5NDMwMiwgOTQzMDUsIAotICAgIDk0MzA5LCA5NDMxMywgOTQzMTcsIDk0MzIxLCA5NDMyNCwgOTQzMjcsIDk0MzMxLCA5NDMzNywgOTQzNDMsIDk0MzQ5LCAKLSAgICA5NDM1NCwgOTQzNjEsIDk0MzY1LCA5NDM3MCwgOTQzNzQsIDk0Mzc5LCA5NDM4NCwgOTQzOTAsIDk0Mzk1LCA5NDQwMSwgCi0gICAgOTQ0MDUsIDk0NDEwLCA5NDQxNCwgOTQ0MTksIDk0NDIyLCA5NDQyNSwgOTQ0MjksIDk0NDM0LCA5NDQ0MCwgOTQ0NDUsIAotICAgIDk0NDUxLCAwLCAwLCAwLCAwLCA5NDQ1NiwgOTQ0NTksIDk0NDYyLCA5NDQ2NSwgOTQ0NjgsIDk0NDcxLCA5NDQ3NCwgCi0gICAgOTQ0NzcsIDk0NDgwLCA5NDQ4MywgOTQ0ODcsIDk0NDkxLCA5NDQ5NSwgOTQ0OTksIDk0NTAzLCA5NDUwNywgOTQ1MTEsIAotICAgIDk0NTE1LCA5NDUxOSwgOTQ1MjQsIDk0NTI5LCA5NDUzMywgOTQ1MzYsIDk0NTM5LCA5NDU0MiwgOTQ1NDUsIDk0NTQ4LCAKLSAgICA5NDU1MSwgOTQ1NTQsIDk0NTU3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA5NDU2MCwgOTQ1NjUsIDk0NTcwLCA5NDU3NSwgOTQ1NzksIDk0NTg0LCA5NDU4OCwgOTQ1OTMsIDk0NTk3LCA5NDYwMiwgCi0gICAgOTQ2MDYsIDk0NjExLCA5NDYxNSwgOTQ2MjAsIDk0NjI0LCA5NDYyOSwgOTQ2MzQsIDk0NjM5LCA5NDY0NCwgOTQ2NDksIAotICAgIDk0NjU0LCA5NDY1OSwgOTQ2NjQsIDk0NjY5LCA5NDY3NCwgOTQ2NzksIDk0Njg0LCA5NDY4OSwgOTQ2OTQsIDk0Njk5LCAKLSAgICA5NDcwNCwgOTQ3MDksIDk0NzE0LCA5NDcxOSwgOTQ3MjQsIDk0NzI4LCA5NDczMiwgOTQ3MzcsIDk0NzQyLCA5NDc0NywgCi0gICAgOTQ3NTEsIDk0NzU1LCA5NDc1OSwgOTQ3NjQsIDk0NzY5LCA5NDc3NCwgOTQ3NzksIDk0NzgzLCA5NDc4NywgOTQ3OTMsIAotICAgIDk0Nzk4LCA5NDgwNCwgOTQ4MDksIDk0ODE1LCA5NDgyMCwgOTQ4MjYsIDk0ODMxLCA5NDgzNywgOTQ4NDIsIDk0ODQ3LCAKLSAgICA5NDg1MiwgOTQ4NTcsIDk0ODYxLCA5NDg2NiwgOTQ4NzIsIDk0ODc2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCA5NDg4MSwgOTQ4ODgsIDk0ODk1LCA5NDkwMiwgOTQ5MDksIDk0OTE2LCA5NDkyMywgOTQ5MzAsIAotICAgIDk0OTM3LCA5NDk0NCwgOTQ5NTEsIDk0OTU4LCA5NDk2NSwgOTQ5NzIsIDk0OTc5LCA5NDk4NiwgOTQ5OTMsIDk1MDAwLCAKLSAgICA5NTAwNywgOTUwMTQsIDk1MDIxLCA5NTAyOCwgOTUwMzUsIDk1MDQyLCA5NTA0OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgOTUwNTYsIDk1MDYzLCA5NTA2OSwgOTUwNzUsIDk1MDgxLCA5NTA4NywgOTUwOTMsIDk1MDk5LCA5NTEwNSwgOTUxMTEsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDk1MTE3LCA5NTEyMiwgOTUxMjcsIDk1MTMyLCA5NTEzNywgOTUxNDEsIDk1MTQ1LCA5NTE0OSwgCi0gICAgOTUxNTQsIDk1MTU5LCA5NTE2NCwgOTUxNjksIDk1MTc0LCA5NTE3OSwgOTUxODQsIDk1MTg5LCA5NTE5NCwgOTUxOTksIAotICAgIDk1MjA0LCA5NTIwOSwgOTUyMTQsIDk1MjE5LCA5NTIyNCwgOTUyMjksIDk1MjM0LCA5NTIzOSwgOTUyNDQsIDk1MjQ5LCAKLSAgICA5NTI1NCwgOTUyNTksIDk1MjY0LCA5NTI2OSwgOTUyNzQsIDk1Mjc5LCA5NTI4NCwgOTUyODksIDk1Mjk0LCA5NTI5OSwgCi0gICAgOTUzMDQsIDk1MzA5LCA5NTMxNCwgOTUzMTksIDk1MzI1LCA5NTMzMCwgOTUzMzYsIDk1MzQxLCA5NTM0NywgOTUzNTIsIAotICAgIDk1MzU4LCA5NTM2NCwgOTUzNjgsIDk1MzczLCA5NTM3NywgMCwgOTUzODEsIDk1Mzg2LCA5NTM5MCwgOTUzOTQsIDk1Mzk4LCAKLSAgICA5NTQwMiwgOTU0MDYsIDk1NDEwLCA5NTQxNCwgOTU0MTgsIDk1NDIyLCA5NTQyNywgOTU0MzEsIDk1NDM2LCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA5Mzk2NiwgOTM5NzAsIDkzOTc0LCA5Mzk3OCwgOTM5ODIsIDkzOTg2LCA5Mzk5MCwgOTM5OTQsIAorICAgIDkzOTk4LCA5NDAwMiwgOTQwMDcsIDk0MDEyLCA5NDAxNywgOTQwMjIsIDk0MDI3LCA5NDAzMiwgOTQwMzcsIDk0MDQyLCAKKyAgICA5NDA0NywgOTQwNTMsIDk0MDU5LCA5NDA2NSwgOTQwNzIsIDk0MDc5LCA5NDA4NiwgOTQwOTMsIDk0MTAwLCA5NDEwNywgCisgICAgOTQxMTQsIDk0MTIxLCA5NDEyOCwgMCwgOTQxMzUsIDk0MTM5LCA5NDE0MywgOTQxNDcsIDk0MTUxLCA5NDE1NSwgOTQxNTgsIAorICAgIDk0MTYyLCA5NDE2NSwgOTQxNjksIDk0MTcyLCA5NDE3NiwgOTQxODAsIDk0MTg1LCA5NDE4OSwgOTQxOTQsIDk0MTk3LCAKKyAgICA5NDIwMSwgOTQyMDQsIDk0MjA4LCA5NDIxMSwgOTQyMTUsIDk0MjE5LCA5NDIyMywgOTQyMjcsIDk0MjMxLCA5NDIzNSwgCisgICAgOTQyMzksIDk0MjQzLCA5NDI0NywgOTQyNTEsIDk0MjU1LCA5NDI1OSwgOTQyNjMsIDk0MjY3LCA5NDI3MSwgOTQyNzUsIAorICAgIDk0Mjc5LCA5NDI4MywgOTQyODYsIDk0Mjg5LCA5NDI5MywgOTQyOTcsIDk0MzAxLCA5NDMwNCwgOTQzMDcsIDk0MzEwLCAKKyAgICA5NDMxNCwgOTQzMTgsIDk0MzIyLCA5NDMyNiwgOTQzMjksIDk0MzMyLCA5NDMzNiwgOTQzNDIsIDk0MzQ4LCA5NDM1NCwgCisgICAgOTQzNTksIDk0MzY2LCA5NDM3MCwgOTQzNzUsIDk0Mzc5LCA5NDM4NCwgOTQzODksIDk0Mzk1LCA5NDQwMCwgOTQ0MDYsIAorICAgIDk0NDEwLCA5NDQxNSwgOTQ0MTksIDk0NDI0LCA5NDQyNywgOTQ0MzAsIDk0NDM0LCA5NDQzOSwgOTQ0NDUsIDk0NDUwLCAKKyAgICA5NDQ1NiwgMCwgMCwgMCwgMCwgOTQ0NjEsIDk0NDY0LCA5NDQ2NywgOTQ0NzAsIDk0NDczLCA5NDQ3NiwgOTQ0NzksIAorICAgIDk0NDgyLCA5NDQ4NSwgOTQ0ODgsIDk0NDkyLCA5NDQ5NiwgOTQ1MDAsIDk0NTA0LCA5NDUwOCwgOTQ1MTIsIDk0NTE2LCAKKyAgICA5NDUyMCwgOTQ1MjQsIDk0NTI5LCA5NDUzNCwgOTQ1MzgsIDk0NTQxLCA5NDU0NCwgOTQ1NDcsIDk0NTUwLCA5NDU1MywgCisgICAgOTQ1NTYsIDk0NTU5LCA5NDU2MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgOTQ1NjUsIDk0NTcwLCA5NDU3NSwgOTQ1ODAsIDk0NTg0LCA5NDU4OSwgOTQ1OTMsIDk0NTk4LCA5NDYwMiwgOTQ2MDcsIAorICAgIDk0NjExLCA5NDYxNiwgOTQ2MjAsIDk0NjI1LCA5NDYyOSwgOTQ2MzQsIDk0NjM5LCA5NDY0NCwgOTQ2NDksIDk0NjU0LCAKKyAgICA5NDY1OSwgOTQ2NjQsIDk0NjY5LCA5NDY3NCwgOTQ2NzksIDk0Njg0LCA5NDY4OSwgOTQ2OTQsIDk0Njk5LCA5NDcwNCwgCisgICAgOTQ3MDksIDk0NzE0LCA5NDcxOSwgOTQ3MjQsIDk0NzI5LCA5NDczMywgOTQ3MzcsIDk0NzQyLCA5NDc0NywgOTQ3NTIsIAorICAgIDk0NzU2LCA5NDc2MCwgOTQ3NjQsIDk0NzY5LCA5NDc3NCwgOTQ3NzksIDk0Nzg0LCA5NDc4OCwgOTQ3OTIsIDk0Nzk4LCAKKyAgICA5NDgwMywgOTQ4MDksIDk0ODE0LCA5NDgyMCwgOTQ4MjUsIDk0ODMxLCA5NDgzNiwgOTQ4NDIsIDk0ODQ3LCA5NDg1MiwgCisgICAgOTQ4NTcsIDk0ODYyLCA5NDg2NiwgOTQ4NzEsIDk0ODc3LCA5NDg4MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgOTQ4ODYsIDk0ODkzLCA5NDkwMCwgOTQ5MDcsIDk0OTE0LCA5NDkyMSwgOTQ5MjgsIDk0OTM1LCAKKyAgICA5NDk0MiwgOTQ5NDksIDk0OTU2LCA5NDk2MywgOTQ5NzAsIDk0OTc3LCA5NDk4NCwgOTQ5OTEsIDk0OTk4LCA5NTAwNSwgCisgICAgOTUwMTIsIDk1MDE5LCA5NTAyNiwgOTUwMzMsIDk1MDQwLCA5NTA0NywgOTUwNTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDk1MDYxLCA5NTA2OCwgOTUwNzQsIDk1MDgwLCA5NTA4NiwgOTUwOTIsIDk1MDk4LCA5NTEwNCwgOTUxMTAsIDk1MTE2LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA5NTEyMiwgOTUxMjcsIDk1MTMyLCA5NTEzNywgOTUxNDIsIDk1MTQ2LCA5NTE1MCwgOTUxNTQsIAorICAgIDk1MTU5LCA5NTE2NCwgOTUxNjksIDk1MTc0LCA5NTE3OSwgOTUxODQsIDk1MTg5LCA5NTE5NCwgOTUxOTksIDk1MjA0LCAKKyAgICA5NTIwOSwgOTUyMTQsIDk1MjE5LCA5NTIyNCwgOTUyMjksIDk1MjM0LCA5NTIzOSwgOTUyNDQsIDk1MjQ5LCA5NTI1NCwgCisgICAgOTUyNTksIDk1MjY0LCA5NTI2OSwgOTUyNzQsIDk1Mjc5LCA5NTI4NCwgOTUyODksIDk1Mjk0LCA5NTI5OSwgOTUzMDQsIAorICAgIDk1MzA5LCA5NTMxNCwgOTUzMTksIDk1MzI0LCA5NTMzMCwgOTUzMzUsIDk1MzQxLCA5NTM0NiwgOTUzNTIsIDk1MzU3LCAKKyAgICA5NTM2MywgOTUzNjksIDk1MzczLCA5NTM3OCwgOTUzODIsIDAsIDk1Mzg2LCA5NTM5MSwgOTUzOTUsIDk1Mzk5LCA5NTQwMywgCisgICAgOTU0MDcsIDk1NDExLCA5NTQxNSwgOTU0MTksIDk1NDIzLCA5NTQyNywgOTU0MzIsIDk1NDM2LCA5NTQ0MSwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTU0NDEsIDk1NDQ1LCA5NTQ0OSwgOTU0NTMsIDk1NDU2LCA5NTQ2MCwgCi0gICAgOTU0NjMsIDk1NDY3LCA5NTQ3MCwgOTU0NzQsIDk1NDc4LCA5NTQ4MywgOTU0ODcsIDk1NDkyLCA5NTQ5NSwgOTU0OTksIAotICAgIDk1NTAyLCA5NTUwNiwgOTU1MDksIDk1NTEzLCA5NTUxNywgOTU1MjEsIDk1NTI1LCA5NTUyOSwgOTU1MzMsIDk1NTM3LCAKLSAgICA5NTU0MSwgOTU1NDUsIDk1NTQ5LCA5NTU1MywgOTU1NTcsIDk1NTYxLCA5NTU2NSwgOTU1NjksIDk1NTczLCA5NTU3NywgCi0gICAgOTU1ODEsIDk1NTg0LCA5NTU4NywgOTU1OTEsIDk1NTk1LCA5NTU5OSwgOTU2MDIsIDk1NjA1LCA5NTYwOCwgOTU2MTIsIAotICAgIDk1NjE2LCA5NTYyMCwgOTU2MjQsIDk1NjI4LCA5NTYzMSwgOTU2MzQsIDk1NjM5LCA5NTY0MywgOTU2NDgsIDk1NjUyLCAKLSAgICA5NTY1NywgOTU2NjIsIDk1NjY4LCA5NTY3MywgOTU2NzksIDk1NjgzLCA5NTY4OCwgOTU2OTIsIDk1Njk3LCA5NTcwMSwgCi0gICAgOTU3MDUsIDk1NzA5LCA5NTcxMywgOTU3MTYsIDk1NzE5LCA5NTcyMywgOTU3MjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDk1NzMwLCA5NTczNCwgOTU3MzcsIDk1NzQwLCA5NTc0MywgOTU3NDYsIDk1NzQ5LCA5NTc1MiwgOTU3NTUsIDk1NzU4LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5NTQ0NiwgOTU0NTAsIDk1NDU0LCA5NTQ1OCwgOTU0NjEsIDk1NDY1LCAKKyAgICA5NTQ2OCwgOTU0NzIsIDk1NDc1LCA5NTQ3OSwgOTU0ODMsIDk1NDg4LCA5NTQ5MiwgOTU0OTcsIDk1NTAwLCA5NTUwNCwgCisgICAgOTU1MDcsIDk1NTExLCA5NTUxNCwgOTU1MTgsIDk1NTIyLCA5NTUyNiwgOTU1MzAsIDk1NTM0LCA5NTUzOCwgOTU1NDIsIAorICAgIDk1NTQ2LCA5NTU1MCwgOTU1NTQsIDk1NTU4LCA5NTU2MiwgOTU1NjYsIDk1NTcwLCA5NTU3NCwgOTU1NzgsIDk1NTgyLCAKKyAgICA5NTU4NiwgOTU1ODksIDk1NTkyLCA5NTU5NiwgOTU2MDAsIDk1NjA0LCA5NTYwNywgOTU2MTAsIDk1NjEzLCA5NTYxNywgCisgICAgOTU2MjEsIDk1NjI1LCA5NTYyOSwgOTU2MzMsIDk1NjM2LCA5NTYzOSwgOTU2NDQsIDk1NjQ4LCA5NTY1MywgOTU2NTcsIAorICAgIDk1NjYyLCA5NTY2NywgOTU2NzMsIDk1Njc4LCA5NTY4NCwgOTU2ODgsIDk1NjkzLCA5NTY5NywgOTU3MDIsIDk1NzA2LCAKKyAgICA5NTcxMCwgOTU3MTQsIDk1NzE4LCA5NTcyMSwgOTU3MjQsIDk1NzI4LCA5NTczMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgOTU3MzUsIDk1NzM5LCA5NTc0MiwgOTU3NDUsIDk1NzQ4LCA5NTc1MSwgOTU3NTQsIDk1NzU3LCA5NTc2MCwgOTU3NjMsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDk1NzYxLCA5NTc2NSwgOTU3NzAsIDk1Nzc0LCA5NTc3OSwgCi0gICAgOTU3ODMsIDk1Nzg4LCA5NTc5MiwgOTU3OTcsIDk1ODAxLCA5NTgwNiwgOTU4MTAsIDk1ODE1LCA5NTgyMCwgOTU4MjUsIAotICAgIDk1ODMwLCA5NTgzNSwgOTU4NDAsIDk1ODQ1LCA5NTg1MCwgOTU4NTUsIDk1ODYwLCA5NTg2NSwgOTU4NzAsIDk1ODc1LCAKLSAgICA5NTg4MCwgOTU4ODUsIDk1ODkwLCA5NTg5NSwgOTU5MDAsIDk1OTA0LCA5NTkwOCwgOTU5MTMsIDk1OTE4LCA5NTkyMywgCi0gICAgOTU5MjcsIDk1OTMxLCA5NTkzNSwgOTU5NDAsIDk1OTQ1LCA5NTk1MCwgOTU5NTQsIDk1OTU4LCA5NTk2MywgOTU5NjgsIAotICAgIDk1OTczLCA5NTk3OSwgOTU5ODQsIDk1OTkwLCA5NTk5NSwgOTYwMDEsIDk2MDA2LCA5NjAxMiwgOTYwMTcsIDk2MDIzLCAKLSAgICA5NjAyOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTYwMzMsIDk2MDM4LCA5NjA0MiwgOTYwNDYsIDk2MDUwLCA5NjA1NCwgCi0gICAgOTYwNTgsIDk2MDYyLCA5NjA2NiwgOTYwNzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDk1NzY2LCA5NTc3MCwgOTU3NzUsIDk1Nzc5LCA5NTc4NCwgCisgICAgOTU3ODgsIDk1NzkzLCA5NTc5NywgOTU4MDIsIDk1ODA2LCA5NTgxMSwgOTU4MTUsIDk1ODIwLCA5NTgyNSwgOTU4MzAsIAorICAgIDk1ODM1LCA5NTg0MCwgOTU4NDUsIDk1ODUwLCA5NTg1NSwgOTU4NjAsIDk1ODY1LCA5NTg3MCwgOTU4NzUsIDk1ODgwLCAKKyAgICA5NTg4NSwgOTU4OTAsIDk1ODk1LCA5NTkwMCwgOTU5MDUsIDk1OTA5LCA5NTkxMywgOTU5MTgsIDk1OTIzLCA5NTkyOCwgCisgICAgOTU5MzIsIDk1OTM2LCA5NTk0MCwgOTU5NDUsIDk1OTUwLCA5NTk1NSwgOTU5NTksIDk1OTYzLCA5NTk2OCwgOTU5NzMsIAorICAgIDk1OTc4LCA5NTk4NCwgOTU5ODksIDk1OTk1LCA5NjAwMCwgOTYwMDYsIDk2MDExLCA5NjAxNywgOTYwMjIsIDk2MDI4LCAKKyAgICA5NjAzMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTYwMzgsIDk2MDQzLCA5NjA0NywgOTYwNTEsIDk2MDU1LCA5NjA1OSwgCisgICAgOTYwNjMsIDk2MDY3LCA5NjA3MSwgOTYwNzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDk2MDc0LCA5NjA3NywgOTYwODIsIDk2MDg4LCAKLSAgICA5NjA5NiwgOTYxMDEsIDk2MTA3LCA5NjExNSwgOTYxMjEsIDk2MTI3LCA5NjEzMSwgOTYxMzUsIDk2MTQyLCA5NjE1MSwgCi0gICAgOTYxNTgsIDk2MTY3LCA5NjE3MywgOTYxODIsIDk2MTg5LCA5NjE5NiwgOTYyMDMsIDk2MjEzLCA5NjIxOSwgOTYyMjMsIAotICAgIDk2MjMwLCA5NjIzOSwgOTYyNDksIDk2MjU2LCA5NjI2MywgOTYyNjcsIDk2MjcxLCA5NjI3OCwgOTYyODgsIDk2MjkyLCAKLSAgICA5NjI5OSwgOTYzMDYsIDk2MzEzLCA5NjMxOSwgOTYzMjYsIDk2MzMzLCA5NjM0MCwgOTYzNDcsIDk2MzUxLCA5NjM1NSwgCi0gICAgOTYzNTksIDk2MzY2LCA5NjM3MCwgOTYzNzcsIDk2Mzg0LCA5NjM5OCwgOTY0MDcsIDk2NDExLCA5NjQxNSwgOTY0MTksIAotICAgIDk2NDI2LCA5NjQzMCwgOTY0MzQsIDk2NDM4LCA5NjQ0NiwgOTY0NTQsIDk2NDczLCA5NjQ4MywgOTY1MDMsIDk2NTA3LCAKLSAgICA5NjUxMSwgOTY1MTUsIDk2NTE5LCA5NjUyMywgOTY1MjcsIDk2NTMxLCA5NjUzOCwgOTY1NDIsIDk2NTQ1LCA5NjU0OSwgCi0gICAgOTY1NTMsIDk2NTU5LCA5NjU2NiwgOTY1NzUsIDk2NTc5LCA5NjU4OCwgOTY1OTcsIDk2NjA1LCA5NjYwOSwgOTY2MTYsIAotICAgIDk2NjIwLCA5NjYyNCwgOTY2MjgsIDk2NjMyLCA5NjY0MywgOTY2NTIsIDk2NjYxLCA5NjY3MCwgOTY2NzksIDk2NjkxLCAKLSAgICA5NjcwMCwgOTY3MDksIDk2NzE4LCA5NjcyNiwgOTY3MzUsIDk2NzQ3LCA5Njc1NiwgOTY3NjUsIDk2Nzc0LCA5Njc4NiwgCi0gICAgOTY3OTUsIDk2ODA0LCA5NjgxNiwgOTY4MjUsIDk2ODM0LCA5Njg0NiwgOTY4NTUsIDk2ODU5LCA5Njg2MywgOTY4NjcsIAotICAgIDk2ODcxLCA5Njg3NSwgOTY4NzksIDk2ODgzLCA5Njg5MCwgOTY4OTQsIDk2ODk4LCA5NjkwOSwgOTY5MTMsIDk2OTE3LCAKLSAgICA5NjkyNCwgOTY5MzAsIDk2OTM2LCA5Njk0MCwgOTY5NDcsIDk2OTUxLCA5Njk1NSwgOTY5NTksIDk2OTYzLCA5Njk2NywgCi0gICAgOTY5NzEsIDk2OTc3LCA5Njk4NSwgOTY5ODksIDk2OTkzLCA5Njk5NiwgOTcwMDIsIDk3MDEyLCA5NzAxNiwgOTcwMjgsIAotICAgIDk3MDM1LCA5NzA0MiwgOTcwNDksIDk3MDU2LCA5NzA2MiwgOTcwNjYsIDk3MDcwLCA5NzA3NCwgOTcwNzgsIDk3MDg1LCAKLSAgICA5NzA5NCwgOTcxMDEsIDk3MTA5LCA5NzExNywgOTcxMjMsIDk3MTI3LCA5NzEzMSwgOTcxMzUsIDk3MTM5LCA5NzE0NSwgCi0gICAgOTcxNTQsIDk3MTY2LCA5NzE3MywgOTcxODAsIDk3MTg5LCA5NzIwMCwgOTcyMDYsIDk3MjE1LCA5NzIyNCwgOTcyMzEsIAotICAgIDk3MjQwLCA5NzI0NywgOTcyNTQsIDk3MjY0LCA5NzI3MSwgOTcyNzgsIDk3Mjg1LCA5NzI5MiwgOTcyOTYsIDk3MzAyLCAKLSAgICA5NzMwNiwgOTczMTcsIDk3MzI1LCA5NzMzNCwgOTczNDYsIDk3MzUzLCA5NzM2MCwgOTczNzAsIDk3Mzc3LCA5NzM4NiwgCi0gICAgOTczOTMsIDk3NDAyLCA5NzQwOSwgOTc0MTYsIDk3NDI2LCA5NzQzMywgOTc0NDAsIDk3NDUwLCA5NzQ1NywgOTc0NjksIAotICAgIDk3NDc4LCA5NzQ4NSwgOTc0OTIsIDk3NDk5LCA5NzUwOCwgOTc1MTgsIDk3NTMxLCA5NzUzOCwgOTc1NDgsIDk3NTU4LCAKLSAgICA5NzU2NSwgOTc1NzQsIDk3NTg3LCA5NzU5NCwgOTc2MDEsIDk3NjA4LCA5NzYxOCwgOTc2MjgsIDk3NjM1LCA5NzY0NSwgCi0gICAgOTc2NTIsIDk3NjU5LCA5NzY2OSwgOTc2NzUsIDk3NjgyLCA5NzY4OSwgOTc2OTYsIDk3NzA2LCA5NzcxMywgOTc3MjAsIAotICAgIDk3NzI3LCA5NzczMywgOTc3NDAsIDk3NzUwLCA5Nzc1NywgOTc3NjEsIDk3NzY5LCA5Nzc3MywgOTc3ODUsIDk3Nzg5LCAKLSAgICA5NzgwMywgOTc4MDcsIDk3ODExLCA5NzgxNSwgOTc4MTksIDk3ODI1LCA5NzgzMiwgOTc4NDAsIDk3ODQ0LCA5Nzg0OCwgCi0gICAgOTc4NTIsIDk3ODU2LCA5Nzg2MywgOTc4NjcsIDk3ODczLCA5Nzg3OSwgOTc4ODcsIDk3ODkxLCA5Nzg5OCwgOTc5MDYsIAotICAgIDk3OTEwLCA5NzkxNCwgOTc5MjAsIDk3OTI0LCA5NzkzMywgOTc5NDIsIDk3OTQ5LCA5Nzk1OSwgOTc5NjUsIDk3OTY5LCAKLSAgICA5Nzk3MywgOTc5ODEsIDk3OTg4LCA5Nzk5NSwgOTgwMDEsIDk4MDA1LCA5ODAxMywgOTgwMTcsIDk4MDI0LCA5ODAzNiwgCi0gICAgOTgwNDMsIDk4MDUzLCA5ODA1OSwgOTgwNjMsIDk4MDcyLCA5ODA3OSwgOTgwODgsIDk4MDkyLCA5ODA5NiwgOTgxMDMsIAotICAgIDk4MTA3LCA5ODExMSwgOTgxMTUsIDk4MTE5LCA5ODEyMiwgOTgxMjgsIDk4MTM0LCA5ODEzOCwgOTgxNDIsIDk4MTQ5LCAKLSAgICA5ODE1NiwgOTgxNjMsIDk4MTcwLCA5ODE3NywgOTgxODQsIDk4MTkxLCA5ODE5OCwgOTgyMDQsIDk4MjA4LCA5ODIxMiwgCi0gICAgOTgyMTksIDk4MjI2LCA5ODIzMywgOTgyNDAsIDk4MjQ3LCA5ODI1MSwgOTgyNTQsIDk4MjU5LCA5ODI2MywgOTgyNjcsIAotICAgIDk4Mjc2LCA5ODI4NSwgOTgyODksIDk4MjkzLCA5ODI5OSwgOTgzMDUsIDk4MzIyLCA5ODMyOCwgOTgzMzIsIDk4MzQxLCAKLSAgICA5ODM0NSwgOTgzNDksIDk4MzU2LCA5ODM2NCwgOTgzNzIsIDk4Mzc4LCA5ODM4MiwgOTgzODYsIDk4MzkwLCA5ODM5NCwgCi0gICAgOTgzOTcsIDk4NDAzLCA5ODQxMCwgOTg0MjAsIDk4NDI3LCA5ODQzNCwgOTg0NDEsIDk4NDQ3LCA5ODQ1NCwgOTg0NjEsIAotICAgIDk4NDY4LCA5ODQ3NSwgOTg0ODIsIDk4NDkxLCA5ODQ5OCwgOTg1MTAsIDk4NTE3LCA5ODUyNCwgOTg1MzQsIDk4NTQ1LCAKLSAgICA5ODU1MiwgOTg1NTksIDk4NTY2LCA5ODU3MywgOTg1ODAsIDk4NTg3LCA5ODU5NCwgOTg2MDEsIDk4NjA4LCA5ODYxNSwgCi0gICAgOTg2MjUsIDk4NjM1LCA5ODY0NSwgOTg2NTIsIDk4NjYyLCA5ODY2OSwgOTg2NzYsIDk4NjgzLCA5ODY5MCwgOTg2OTYsIAotICAgIDk4NzAzLCA5ODcxMCwgOTg3MTcsIDk4NzI0LCA5ODczMSwgOTg3MzgsIDk4NzQ1LCA5ODc1MiwgOTg3NTgsIDk4NzY1LCAKLSAgICA5ODc3MiwgOTg3ODEsIDk4Nzg4LCA5ODc5NSwgOTg3OTksIDk4ODA3LCA5ODgxMSwgOTg4MTUsIDk4ODE5LCA5ODgyMywgCi0gICAgOTg4MjcsIDk4ODM0LCA5ODgzOCwgOTg4NDcsIDk4ODUxLCA5ODg1OCwgOTg4NjYsIDk4ODcwLCA5ODg3NCwgOTg4NzgsIAotICAgIDk4ODkxLCA5ODkwNywgOTg5MTEsIDk4OTE1LCA5ODkyMiwgOTg5MjgsIDk4OTM1LCA5ODkzOSwgOTg5NDMsIDk4OTQ3LCAKLSAgICA5ODk1MSwgOTg5NTUsIDk4OTYyLCA5ODk2NiwgOTg5ODQsIDk4OTg4LCA5ODk5MiwgOTg5OTksIDk5MDAzLCA5OTAwNywgCi0gICAgOTkwMTMsIDk5MDE3LCA5OTAyMSwgOTkwMjksIDk5MDMzLCA5OTAzNywgOTkwNDEsIDk5MDQ1LCA5OTA1MSwgOTkwNjIsIAotICAgIDk5MDcxLCA5OTA4MCwgOTkwODcsIDk5MDk0LCA5OTEwNSwgOTkxMTIsIDk5MTE5LCA5OTEyNiwgOTkxMzMsIDk5MTQwLCAKLSAgICA5OTE0NywgOTkxNTQsIDk5MTY0LCA5OTE3MCwgOTkxNzcsIDk5MTg3LCA5OTE5NiwgOTkyMDMsIDk5MjEyLCA5OTIyMiwgCi0gICAgOTkyMjksIDk5MjM2LCA5OTI0MywgOTkyNTAsIDk5MjYyLCA5OTI2OSwgOTkyNzYsIDk5MjgzLCA5OTI5MCwgOTkyOTcsIAotICAgIDk5MzA3LCA5OTMxNCwgOTkzMjEsIDk5MzMxLCA5OTM0NCwgOTkzNTYsIDk5MzYzLCA5OTM3MywgOTkzODAsIDk5Mzg3LCAKLSAgICA5OTM5NCwgOTk0MDgsIDk5NDE0LCA5OTQyMiwgOTk0MzIsIDk5NDQyLCA5OTQ0OSwgOTk0NTYsIDk5NDYyLCA5OTQ2NiwgCi0gICAgOTk0NzMsIDk5NDgzLCA5OTQ4OSwgOTk1MDIsIDk5NTA2LCA5OTUxMCwgOTk1MTcsIDk5NTIxLCA5OTUyOCwgOTk1MzgsIAotICAgIDk5NTQyLCA5OTU0NiwgOTk1NTAsIDk5NTU0LCA5OTU1OCwgOTk1NjUsIDk5NTY5LCA5OTU3NiwgOTk1ODMsIDk5NTkwLCAKLSAgICA5OTU5OSwgOTk2MDgsIDk5NjE4LCA5OTYyNSwgOTk2MzIsIDk5NjM5LCA5OTY0OSwgOTk2NTYsIDk5NjY2LCA5OTY3MywgCi0gICAgOTk2ODMsIDk5NjkwLCA5OTY5NywgOTk3MDcsIDk5NzE3LCA5OTcyNCwgOTk3MzAsIDk5NzM4LCA5OTc0NiwgOTk3NTIsIAotICAgIDk5NzU4LCA5OTc2MiwgOTk3NjYsIDk5NzczLCA5OTc4MSwgOTk3ODcsIDk5NzkxLCA5OTc5NSwgOTk3OTksIDk5ODA2LCAKLSAgICA5OTgxOCwgOTk4MjEsIDk5ODI4LCA5OTgzNCwgOTk4MzgsIDk5ODQyLCA5OTg0NiwgOTk4NTAsIDk5ODU0LCA5OTg1OCwgCi0gICAgOTk4NjIsIDk5ODY2LCA5OTg3MCwgOTk4NzQsIDk5ODgxLCA5OTg4NSwgOTk4OTEsIDk5ODk1LCA5OTg5OSwgOTk5MDMsIAotICAgIDk5OTA5LCA5OTkxNiwgOTk5MjMsIDk5OTMwLCA5OTk0MSwgOTk5NDksIDk5OTUzLCA5OTk1OSwgOTk5NjgsIDk5OTc1LCAKLSAgICA5OTk4MSwgOTk5ODQsIDk5OTg4LCA5OTk5MiwgOTk5OTgsIDEwMDAwNywgMTAwMDE1LCAxMDAwMTksIDEwMDAyNSwgCi0gICAgMTAwMDI5LCAxMDAwMzMsIDEwMDAzNywgMTAwMDQzLCAxMDAwNTAsIDEwMDA1NiwgMTAwMDYwLCAxMDAwNjYsIDEwMDA3MCwgCi0gICAgMTAwMDc0LCAxMDAwODMsIDEwMDA5NSwgMTAwMDk5LCAxMDAxMDYsIDEwMDExMywgMTAwMTIzLCAxMDAxMzAsIDEwMDE0MiwgCi0gICAgMTAwMTQ5LCAxMDAxNTYsIDEwMDE2MywgMTAwMTc0LCAxMDAxODQsIDEwMDE5NywgMTAwMjA3LCAxMDAyMTQsIDEwMDIxOCwgCi0gICAgMTAwMjIyLCAxMDAyMjYsIDEwMDIzMCwgMTAwMjM5LCAxMDAyNDgsIDEwMDI1NywgMTAwMjc0LCAxMDAyODMsIDEwMDI4OSwgCi0gICAgMTAwMjk2LCAxMDAzMDQsIDEwMDMxNywgMTAwMzIxLCAxMDAzMzAsIDEwMDMzOSwgMTAwMzQ4LCAxMDAzNTcsIDEwMDM2OCwgCi0gICAgMTAwMzc3LCAxMDAzODYsIDEwMDM5NSwgMTAwNDA0LCAxMDA0MTMsIDEwMDQyMiwgMTAwNDMyLCAxMDA0MzUsIDEwMDQzOSwgCi0gICAgMTAwNDQzLCAxMDA0NDcsIDEwMDQ1MSwgMTAwNDU1LCAxMDA0NjEsIDEwMDQ2OCwgMTAwNDc1LCAxMDA0ODIsIDEwMDQ4OCwgCi0gICAgMTAwNDk0LCAxMDA1MDEsIDEwMDUwNywgMTAwNTE0LCAxMDA1MjIsIDEwMDUyNiwgMTAwNTMzLCAxMDA1NDAsIDEwMDU0NywgCi0gICAgMTAwNTU1LCAxMDA1NTgsIDEwMDU2MiwgMTAwNTY2LCAxMDA1NzAsIDEwMDU3MywgMTAwNTc5LCAxMDA1ODMsIDEwMDU4OSwgCi0gICAgMTAwNTk2LCAxMDA2MDMsIDEwMDYwOSwgMTAwNjE2LCAxMDA2MjMsIDEwMDYzMCwgMTAwNjM3LCAxMDA2NDQsIDEwMDY1MSwgCi0gICAgMTAwNjU4LCAxMDA2NjUsIDEwMDY3MiwgMTAwNjc5LCAxMDA2ODYsIDEwMDY5MywgMTAwNzAwLCAxMDA3MDcsIDEwMDcxMywgCi0gICAgMTAwNzE3LCAxMDA3MjYsIDEwMDczMCwgMTAwNzM0LCAxMDA3MzgsIDEwMDc0MiwgMTAwNzQ4LCAxMDA3NTUsIDEwMDc2MiwgCi0gICAgMTAwNzY5LCAxMDA3NzYsIDEwMDc4MywgMTAwNzg5LCAxMDA3OTcsIDEwMDgwMSwgMTAwODA1LCAxMDA4MDksIDEwMDgxMywgCi0gICAgMTAwODE5LCAxMDA4MzYsIDEwMDg1MywgMTAwODU3LCAxMDA4NjEsIDEwMDg2NSwgMTAwODY5LCAxMDA4NzMsIDEwMDg3NywgCi0gICAgMTAwODgzLCAxMDA4OTAsIDEwMDg5NCwgMTAwOTAwLCAxMDA5MDcsIDEwMDkxNCwgMTAwOTIxLCAxMDA5MjgsIDEwMDkzNSwgCi0gICAgMTAwOTQ0LCAxMDA5NTEsIDEwMDk1OCwgMTAwOTY1LCAxMDA5NzIsIDEwMDk3NiwgMTAwOTgwLCAxMDA5ODYsIDEwMDk5OCwgCi0gICAgMTAxMDAyLCAxMDEwMDYsIDEwMTAxNSwgMTAxMDE5LCAxMDEwMjMsIDEwMTAyNywgMTAxMDMzLCAxMDEwMzcsIDEwMTA0MSwgCi0gICAgMTAxMDUwLCAxMDEwNTQsIDEwMTA1OCwgMTAxMDYyLCAxMDEwNjksIDEwMTA3MywgMTAxMDc3LCAxMDEwODEsIDEwMTA4NSwgCi0gICAgMTAxMDg5LCAxMDEwOTMsIDEwMTA5NywgMTAxMTAxLCAxMDExMDcsIDEwMTExNCwgMTAxMTIxLCAxMDExMjcsIDEwMTEzMSwgCi0gICAgMTAxMTQ4LCAxMDExNTQsIDEwMTE1OCwgMTAxMTY0LCAxMDExNzAsIDEwMTE3NiwgMTAxMTgyLCAxMDExODgsIDEwMTE5NCwgCi0gICAgMTAxMTk4LCAxMDEyMDIsIDEwMTIwNiwgMTAxMjEyLCAxMDEyMTYsIDEwMTIyMiwgMTAxMjI2LCAxMDEyMzAsIDEwMTIzNywgCi0gICAgMTAxMjQ0LCAxMDEyNjEsIDEwMTI2NSwgMTAxMjY5LCAxMDEyNzMsIDEwMTI3NywgMTAxMjgxLCAxMDEyOTMsIDEwMTI5NiwgCi0gICAgMTAxMzAxLCAxMDEzMDYsIDEwMTMyMSwgMTAxMzMxLCAxMDEzNDMsIDEwMTM0NywgMTAxMzUxLCAxMDEzNTUsIDEwMTM2MSwgCi0gICAgMTAxMzY4LCAxMDEzNzUsIDEwMTM4NSwgMTAxMzk3LCAxMDE0MDMsIDEwMTQwOSwgMTAxNDE4LCAxMDE0MjIsIDEwMTQyNiwgCi0gICAgMTAxNDMzLCAxMDE0NDMsIDEwMTQ1MCwgMTAxNDU2LCAxMDE0NjAsIDEwMTQ2NCwgMTAxNDcxLCAxMDE0NzcsIDEwMTQ4MSwgCi0gICAgMTAxNDg3LCAxMDE0OTEsIDEwMTQ5OSwgMTAxNTA1LCAxMDE1MDksIDEwMTUxNywgMTAxNTI1LCAxMDE1MzIsIDEwMTUzOCwgCi0gICAgMTAxNTQ1LCAxMDE1NTIsIDEwMTU2MiwgMTAxNTcyLCAxMDE1NzYsIDEwMTU4MCwgMTAxNTg0LCAxMDE1ODgsIDEwMTU5NCwgCi0gICAgMTAxNjAxLCAxMDE2MDcsIDEwMTYxNCwgMTAxNjIxLCAxMDE2MjgsIDEwMTYzNywgMTAxNjQ0LCAxMDE2NTEsIDEwMTY1NywgCi0gICAgMTAxNjY0LCAxMDE2NzEsIDEwMTY3OCwgMTAxNjg1LCAxMDE2OTIsIDEwMTY5OSwgMTAxNzA1LCAxMDE3MTIsIDEwMTcxOSwgCi0gICAgMTAxNzI2LCAxMDE3MzUsIDEwMTc0MiwgMTAxNzQ5LCAxMDE3NTMsIDEwMTc1OSwgMTAxNzYzLCAxMDE3NjksIDEwMTc3NiwgCi0gICAgMTAxNzgzLCAxMDE3OTAsIDEwMTc5NCwgMTAxNzk4LCAxMDE4MDIsIDEwMTgwNiwgMTAxODEwLCAxMDE4MTcsIDEwMTgyMSwgCi0gICAgMTAxODI1LCAxMDE4MzEsIDEwMTgzOSwgMTAxODQzLCAxMDE4NDcsIDEwMTg1MSwgMTAxODU1LCAxMDE4NjIsIDEwMTg2NiwgCi0gICAgMTAxODcwLCAxMDE4NzgsIDEwMTg4MiwgMTAxODg2LCAxMDE4OTAsIDEwMTg5NCwgMTAxOTAwLCAxMDE5MDQsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwMTkwOCwgMTAxOTE0LCAxMDE5MjAsIDEwMTkyNywgCi0gICAgMTAxOTM0LCAxMDE5NDEsIDEwMTk0OCwgMTAxOTU1LCAxMDE5NjIsIDEwMTk2OCwgMTAxOTc1LCAxMDE5ODIsIDEwMTk4OSwgCi0gICAgMTAxOTk2LCAxMDIwMDMsIDEwMjAxMCwgMTAyMDE2LCAxMDIwMjIsIDEwMjAyOCwgMTAyMDM0LCAxMDIwNDAsIDEwMjA0NiwgCi0gICAgMTAyMDUyLCAxMDIwNTgsIDEwMjA2NCwgMTAyMDcxLCAxMDIwNzgsIDEwMjA4NSwgMTAyMDkyLCAxMDIwOTksIDEwMjEwNiwgCi0gICAgMTAyMTEyLCAxMDIxMTgsIDEwMjEyNCwgMTAyMTMxLCAxMDIxMzgsIDEwMjE0NCwgMTAyMTUwLCAxMDIxNTksIDEwMjE2NiwgCi0gICAgMTAyMTczLCAxMDIxODAsIDEwMjE4NywgMTAyMTk0LCAxMDIyMDEsIDEwMjIwNywgMTAyMjEzLCAxMDIyMTksIDEwMjIyOCwgCi0gICAgMTAyMjM1LCAxMDIyNDIsIDEwMjI1MywgMTAyMjY0LCAxMDIyNzAsIDEwMjI3NiwgMTAyMjgyLCAxMDIyOTEsIDEwMjI5OCwgCi0gICAgMTAyMzA1LCAxMDIzMTUsIDEwMjMyNSwgMTAyMzM2LCAxMDIzNDcsIDEwMjM1OSwgMTAyMzcyLCAxMDIzODMsIDEwMjM5NCwgCi0gICAgMTAyNDA2LCAxMDI0MTksIDEwMjQzMCwgMTAyNDQxLCAxMDI0NTIsIDEwMjQ2MywgMTAyNDc0LCAxMDI0ODYsIDEwMjQ5NCwgCi0gICAgMTAyNTAyLCAxMDI1MTEsIDEwMjUyMCwgMTAyNTI5LCAxMDI1MzUsIDEwMjU0MSwgMTAyNTQ3LCAxMDI1NTQsIDEwMjU2NCwgCi0gICAgMTAyNTcxLCAxMDI1ODEsIDEwMjU4NiwgMTAyNTkxLCAxMDI1OTcsIDEwMjYwMywgMTAyNjExLCAxMDI2MTksIDEwMjYyOCwgCi0gICAgMTAyNjM5LCAxMDI2NTAsIDEwMjY1OCwgMTAyNjY2LCAxMDI2NzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDEwMjY4NCwgMTAyNjk1LCAxMDI3MDIsIDEwMjcxMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMTAyNzE4LCAxMDI3MjIsIDEwMjcyNiwgMTAyNzMwLCAxMDI3MzQsIDEwMjczOCwgMTAyNzQyLCAxMDI3NDYsIDEwMjc1MCwgCi0gICAgMTAyNzU0LCAxMDI3NTgsIDEwMjc2MiwgMTAyNzY2LCAxMDI3NzAsIDEwMjc3NCwgMTAyNzc4LCAxMDI3ODIsIDEwMjc4NiwgCi0gICAgMTAyNzkwLCAxMDI3OTQsIDEwMjc5OCwgMTAyODAyLCAxMDI4MDYsIDEwMjgxMCwgMTAyODE0LCAxMDI4MTgsIDEwMjgyMiwgCi0gICAgMTAyODI2LCAxMDI4MzAsIDEwMjgzNCwgMTAyODM4LCAxMDI4NDIsIDEwMjg0NiwgMTAyODUwLCAxMDI4NTQsIDEwMjg1OCwgCi0gICAgMTAyODYyLCAxMDI4NjYsIDEwMjg3MCwgMTAyODc0LCAxMDI4NzgsIDEwMjg4MiwgMTAyODg2LCAxMDI4OTAsIDEwMjg5NCwgCi0gICAgMTAyODk4LCAxMDI5MDIsIDEwMjkwNiwgMTAyOTEwLCAxMDI5MTQsIDEwMjkxOCwgMTAyOTIyLCAxMDI5MjYsIDEwMjkzMCwgCi0gICAgMTAyOTM0LCAxMDI5MzgsIDEwMjk0MiwgMTAyOTQ2LCAxMDI5NTAsIDEwMjk1NCwgMTAyOTU4LCAxMDI5NjIsIDEwMjk2NiwgCi0gICAgMTAyOTcwLCAxMDI5NzQsIDEwMjk3OCwgMTAyOTgyLCAxMDI5ODYsIDEwMjk5MCwgMTAyOTk0LCAxMDI5OTgsIDEwMzAwMiwgCi0gICAgMTAzMDA2LCAxMDMwMTAsIDEwMzAxNCwgMTAzMDE4LCAxMDMwMjIsIDEwMzAyNiwgMTAzMDMwLCAxMDMwMzQsIDEwMzAzOCwgCi0gICAgMTAzMDQyLCAxMDMwNDYsIDEwMzA1MCwgMTAzMDU0LCAxMDMwNTgsIDEwMzA2MiwgMTAzMDY2LCAxMDMwNzAsIDEwMzA3NCwgCi0gICAgMTAzMDc4LCAxMDMwODIsIDEwMzA4NiwgMTAzMDkwLCAxMDMwOTQsIDEwMzA5OCwgMTAzMTAyLCAxMDMxMDYsIDEwMzExMCwgCi0gICAgMTAzMTE0LCAxMDMxMTgsIDEwMzEyMiwgMTAzMTI2LCAxMDMxMzAsIDEwMzEzNCwgMTAzMTM4LCAxMDMxNDIsIDEwMzE0NiwgCi0gICAgMTAzMTUwLCAxMDMxNTQsIDEwMzE1OCwgMTAzMTYyLCAxMDMxNjYsIDEwMzE3MCwgMTAzMTc0LCAxMDMxNzgsIDEwMzE4MiwgCi0gICAgMTAzMTg2LCAxMDMxOTAsIDEwMzE5NCwgMTAzMTk4LCAxMDMyMDIsIDEwMzIwNiwgMTAzMjEwLCAxMDMyMTQsIDEwMzIxOCwgCi0gICAgMTAzMjIyLCAxMDMyMjYsIDEwMzIzMCwgMTAzMjM0LCAxMDMyMzgsIDEwMzI0MiwgMTAzMjQ2LCAxMDMyNTAsIDEwMzI1NCwgCi0gICAgMTAzMjU4LCAxMDMyNjIsIDEwMzI2NiwgMTAzMjcwLCAxMDMyNzQsIDEwMzI3OCwgMTAzMjgyLCAxMDMyODYsIDEwMzI5MCwgCi0gICAgMTAzMjk0LCAxMDMyOTgsIDEwMzMwMiwgMTAzMzA2LCAxMDMzMTAsIDEwMzMxNCwgMTAzMzE4LCAxMDMzMjIsIDEwMzMyNiwgCi0gICAgMTAzMzMwLCAxMDMzMzQsIDEwMzMzOCwgMTAzMzQyLCAxMDMzNDYsIDEwMzM1MCwgMTAzMzU0LCAxMDMzNTgsIDEwMzM2MiwgCi0gICAgMTAzMzY2LCAxMDMzNzAsIDEwMzM3NCwgMTAzMzc4LCAxMDMzODIsIDEwMzM4NiwgMTAzMzkwLCAxMDMzOTQsIDEwMzM5OCwgCi0gICAgMTAzNDAyLCAxMDM0MDYsIDEwMzQxMCwgMTAzNDE0LCAxMDM0MTgsIDEwMzQyMiwgMTAzNDI2LCAxMDM0MzAsIDEwMzQzNCwgCi0gICAgMTAzNDM4LCAxMDM0NDIsIDEwMzQ0NiwgMTAzNDUwLCAxMDM0NTQsIDEwMzQ1OCwgMTAzNDYyLCAxMDM0NjYsIDEwMzQ3MCwgCi0gICAgMTAzNDc0LCAxMDM0NzgsIDEwMzQ4MiwgMTAzNDg2LCAxMDM0OTAsIDEwMzQ5NCwgMTAzNDk4LCAxMDM1MDIsIDEwMzUwNiwgCi0gICAgMTAzNTEwLCAxMDM1MTQsIDEwMzUxOCwgMTAzNTIyLCAxMDM1MjYsIDEwMzUzMCwgMTAzNTM0LCAxMDM1MzgsIDEwMzU0MiwgCi0gICAgMTAzNTQ2LCAxMDM1NTAsIDEwMzU1NCwgMTAzNTU4LCAxMDM1NjIsIDEwMzU2NiwgMTAzNTcwLCAxMDM1NzQsIDEwMzU3OCwgCi0gICAgMTAzNTgyLCAxMDM1ODYsIDEwMzU5MCwgMTAzNTk0LCAxMDM1OTgsIDEwMzYwMiwgMTAzNjA2LCAxMDM2MTAsIDEwMzYxNCwgCi0gICAgMTAzNjE4LCAxMDM2MjIsIDEwMzYyNiwgMTAzNjMwLCAxMDM2MzQsIDEwMzYzOCwgMTAzNjQyLCAxMDM2NDYsIDEwMzY1MCwgCi0gICAgMTAzNjU0LCAxMDM2NTgsIDEwMzY2MiwgMTAzNjY2LCAxMDM2NzAsIDEwMzY3NCwgMTAzNjc4LCAxMDM2ODIsIDEwMzY4NiwgCi0gICAgMTAzNjkwLCAxMDM2OTQsIDEwMzY5OCwgMTAzNzAyLCAxMDM3MDYsIDEwMzcxMCwgMTAzNzE0LCAxMDM3MTgsIDEwMzcyMiwgCi0gICAgMTAzNzI2LCAxMDM3MzAsIDEwMzczNCwgMTAzNzM4LCAxMDM3NDIsIDEwMzc0NiwgMTAzNzUwLCAxMDM3NTQsIDEwMzc1OCwgCi0gICAgMTAzNzYyLCAxMDM3NjYsIDEwMzc3MCwgMTAzNzc0LCAxMDM3NzgsIDEwMzc4MiwgMTAzNzg2LCAxMDM3OTAsIDEwMzc5NCwgCi0gICAgMTAzNzk4LCAxMDM4MDIsIDEwMzgwNiwgMTAzODEwLCAxMDM4MTQsIDEwMzgxOCwgMTAzODIyLCAxMDM4MjYsIDEwMzgzMCwgCi0gICAgMTAzODM0LCAxMDM4MzgsIDEwMzg0MiwgMTAzODQ2LCAxMDM4NTAsIDEwMzg1NCwgMTAzODU4LCAxMDM4NjIsIDEwMzg2NiwgCi0gICAgMTAzODcwLCAxMDM4NzQsIDEwMzg3OCwgMTAzODgyLCAxMDM4ODYsIDEwMzg5MCwgMTAzODk0LCAxMDM4OTgsIDEwMzkwMiwgCi0gICAgMTAzOTA2LCAxMDM5MTAsIDEwMzkxNCwgMTAzOTE4LCAxMDM5MjIsIDEwMzkyNiwgMTAzOTMwLCAxMDM5MzQsIDEwMzkzOCwgCi0gICAgMTAzOTQyLCAxMDM5NDYsIDEwMzk1MCwgMTAzOTU0LCAxMDM5NTgsIDEwMzk2MiwgMTAzOTY2LCAxMDM5NzAsIDEwMzk3NCwgCi0gICAgMTAzOTc4LCAxMDM5ODIsIDEwMzk4NiwgMTAzOTkwLCAxMDM5OTQsIDEwMzk5OCwgMTA0MDAyLCAxMDQwMDYsIDEwNDAxMCwgCi0gICAgMTA0MDE0LCAxMDQwMTgsIDEwNDAyMiwgMTA0MDI2LCAxMDQwMzAsIDEwNDAzNCwgMTA0MDM4LCAxMDQwNDIsIDEwNDA0NiwgCi0gICAgMTA0MDUwLCAxMDQwNTQsIDEwNDA1OCwgMTA0MDYyLCAxMDQwNjYsIDEwNDA3MCwgMTA0MDc0LCAxMDQwNzgsIDEwNDA4MiwgCi0gICAgMTA0MDg2LCAxMDQwOTAsIDEwNDA5NCwgMTA0MDk4LCAxMDQxMDIsIDEwNDEwNiwgMTA0MTEwLCAxMDQxMTQsIDEwNDExOCwgCi0gICAgMTA0MTIyLCAxMDQxMjYsIDEwNDEzMCwgMTA0MTM0LCAxMDQxMzgsIDEwNDE0MiwgMTA0MTQ2LCAxMDQxNTAsIDEwNDE1NCwgCi0gICAgMTA0MTU4LCAxMDQxNjIsIDEwNDE2NiwgMTA0MTcwLCAxMDQxNzQsIDEwNDE3OCwgMTA0MTgyLCAxMDQxODYsIDEwNDE5MCwgCi0gICAgMTA0MTk0LCAxMDQxOTgsIDEwNDIwMiwgMTA0MjA2LCAxMDQyMTAsIDEwNDIxNCwgMTA0MjE4LCAxMDQyMjIsIDEwNDIyNiwgCi0gICAgMTA0MjMwLCAxMDQyMzQsIDEwNDIzOCwgMTA0MjQyLCAxMDQyNDYsIDEwNDI1MCwgMTA0MjU0LCAxMDQyNTgsIDEwNDI2MiwgCi0gICAgMTA0MjY2LCAxMDQyNzAsIDEwNDI3NCwgMTA0Mjc4LCAxMDQyODIsIDEwNDI4NiwgMTA0MjkwLCAxMDQyOTQsIDEwNDI5OCwgCi0gICAgMTA0MzAyLCAxMDQzMDYsIDEwNDMxMCwgMTA0MzE0LCAxMDQzMTgsIDEwNDMyMiwgMTA0MzI2LCAxMDQzMzAsIDEwNDMzNCwgCi0gICAgMTA0MzM4LCAxMDQzNDIsIDEwNDM0NiwgMTA0MzUwLCAxMDQzNTQsIDEwNDM1OCwgMTA0MzYyLCAxMDQzNjYsIDEwNDM3MCwgCi0gICAgMTA0Mzc0LCAxMDQzNzgsIDEwNDM4MiwgMTA0Mzg2LCAxMDQzOTAsIDEwNDM5NCwgMTA0Mzk4LCAxMDQ0MDIsIDEwNDQwNiwgCi0gICAgMTA0NDEwLCAxMDQ0MTQsIDEwNDQxOCwgMTA0NDIyLCAxMDQ0MjYsIDEwNDQzMCwgMTA0NDM0LCAxMDQ0MzgsIDEwNDQ0MiwgCi0gICAgMTA0NDQ2LCAxMDQ0NTAsIDEwNDQ1NCwgMTA0NDU4LCAxMDQ0NjIsIDEwNDQ2NiwgMTA0NDcwLCAxMDQ0NzQsIDEwNDQ3OCwgCi0gICAgMTA0NDgyLCAxMDQ0ODYsIDEwNDQ5MCwgMTA0NDk0LCAxMDQ0OTgsIDEwNDUwMiwgMTA0NTA2LCAxMDQ1MTAsIDEwNDUxNCwgCi0gICAgMTA0NTE4LCAxMDQ1MjIsIDEwNDUyNiwgMTA0NTMwLCAxMDQ1MzQsIDEwNDUzOCwgMTA0NTQyLCAxMDQ1NDYsIDEwNDU1MCwgCi0gICAgMTA0NTU0LCAxMDQ1NTgsIDEwNDU2MiwgMTA0NTY2LCAxMDQ1NzAsIDEwNDU3NCwgMTA0NTc4LCAxMDQ1ODIsIDEwNDU4NiwgCi0gICAgMTA0NTkwLCAxMDQ1OTQsIDEwNDU5OCwgMTA0NjAyLCAxMDQ2MDYsIDEwNDYxMCwgMTA0NjE0LCAxMDQ2MTgsIDEwNDYyMiwgCi0gICAgMTA0NjI2LCAxMDQ2MzAsIDEwNDYzNCwgMTA0NjM4LCAxMDQ2NDIsIDEwNDY0NiwgMTA0NjUwLCAxMDQ2NTQsIDEwNDY1OCwgCi0gICAgMTA0NjYyLCAxMDQ2NjYsIDEwNDY3MCwgMTA0Njc0LCAxMDQ2NzgsIDEwNDY4MiwgMTA0Njg2LCAxMDQ2OTAsIDEwNDY5NCwgCi0gICAgMTA0Njk4LCAxMDQ3MDIsIDEwNDcwNiwgMTA0NzEwLCAxMDQ3MTQsIDEwNDcxOCwgMTA0NzIyLCAxMDQ3MjYsIDEwNDczMCwgCi0gICAgMTA0NzM0LCAxMDQ3MzgsIDEwNDc0MiwgMTA0NzQ2LCAxMDQ3NTAsIDEwNDc1NCwgMTA0NzU4LCAxMDQ3NjIsIDEwNDc2NiwgCi0gICAgMTA0NzcwLCAxMDQ3NzQsIDEwNDc3OCwgMTA0NzgyLCAxMDQ3ODYsIDEwNDc5MCwgMTA0Nzk0LCAxMDQ3OTgsIDEwNDgwMiwgCi0gICAgMTA0ODA2LCAxMDQ4MTAsIDEwNDgxNCwgMTA0ODE4LCAxMDQ4MjIsIDEwNDgyNiwgMTA0ODMwLCAxMDQ4MzQsIDEwNDgzOCwgCi0gICAgMTA0ODQyLCAxMDQ4NDYsIDEwNDg1MCwgMTA0ODU0LCAxMDQ4NTgsIDEwNDg2MiwgMTA0ODY2LCAxMDQ4NzAsIDEwNDg3NCwgCi0gICAgMTA0ODc4LCAxMDQ4ODIsIDEwNDg4NiwgMTA0ODkwLCAxMDQ4OTQsIDEwNDg5OCwgMTA0OTAyLCAxMDQ5MDYsIDEwNDkxMCwgCi0gICAgMTA0OTE0LCAxMDQ5MTgsIDEwNDkyMiwgMTA0OTI2LCAxMDQ5MzAsIDEwNDkzNCwgMTA0OTM4LCAxMDQ5NDIsIDEwNDk0NiwgCi0gICAgMTA0OTUwLCAxMDQ5NTQsIDEwNDk1OCwgMTA0OTYyLCAxMDQ5NjYsIDEwNDk3MCwgMTA0OTc0LCAxMDQ5NzgsIDEwNDk4MiwgCi0gICAgMTA0OTg2LCAxMDQ5OTAsIDEwNDk5NCwgMTA0OTk4LCAxMDUwMDIsIDEwNTAwNiwgMTA1MDEwLCAxMDUwMTQsIDEwNTAxOCwgCi0gICAgMTA1MDIyLCAxMDUwMjYsIDEwNTAzMCwgMTA1MDM0LCAxMDUwMzgsIDEwNTA0MiwgMTA1MDQ2LCAxMDUwNTAsIDEwNTA1NCwgCi0gICAgMTA1MDU4LCAxMDUwNjIsIDEwNTA2NiwgMTA1MDcwLCAxMDUwNzQsIDEwNTA3OCwgMTA1MDgyLCAxMDUwODYsIDEwNTA5MCwgCi0gICAgMTA1MDk0LCAxMDUwOTgsIDEwNTEwMiwgMTA1MTA2LCAxMDUxMTAsIDEwNTExNCwgMTA1MTE4LCAxMDUxMjIsIDEwNTEyNiwgCi0gICAgMTA1MTMwLCAxMDUxMzQsIDEwNTEzOCwgMTA1MTQyLCAxMDUxNDYsIDEwNTE1MCwgMTA1MTU0LCAxMDUxNTgsIDEwNTE2MiwgCi0gICAgMTA1MTY2LCAxMDUxNzAsIDEwNTE3NCwgMTA1MTc4LCAxMDUxODIsIDEwNTE4NiwgMTA1MTkwLCAxMDUxOTQsIDEwNTE5OCwgCi0gICAgMTA1MjAyLCAxMDUyMDYsIDEwNTIxMCwgMTA1MjE0LCAxMDUyMTgsIDEwNTIyMiwgMTA1MjI2LCAxMDUyMzAsIDEwNTIzNCwgCi0gICAgMTA1MjM4LCAxMDUyNDIsIDEwNTI0NiwgMTA1MjUwLCAxMDUyNTQsIDEwNTI1OCwgMTA1MjYyLCAxMDUyNjYsIDEwNTI3MCwgCi0gICAgMTA1Mjc0LCAxMDUyNzgsIDEwNTI4MiwgMTA1Mjg2LCAxMDUyOTAsIDEwNTI5NCwgMTA1Mjk4LCAxMDUzMDIsIDEwNTMwNiwgCi0gICAgMTA1MzEwLCAxMDUzMTQsIDEwNTMxOCwgMTA1MzIyLCAxMDUzMjYsIDEwNTMzMCwgMTA1MzM0LCAxMDUzMzgsIDEwNTM0MiwgCi0gICAgMTA1MzQ2LCAxMDUzNTAsIDEwNTM1NCwgMTA1MzU4LCAxMDUzNjIsIDEwNTM2NiwgMTA1MzcwLCAxMDUzNzQsIDEwNTM3OCwgCi0gICAgMTA1MzgyLCAxMDUzODYsIDEwNTM5MCwgMTA1Mzk0LCAxMDUzOTgsIDEwNTQwMiwgMTA1NDA2LCAxMDU0MTAsIDEwNTQxNCwgCi0gICAgMTA1NDE4LCAxMDU0MjIsIDEwNTQyNiwgMTA1NDMwLCAxMDU0MzQsIDEwNTQzOCwgMTA1NDQyLCAxMDU0NDYsIDEwNTQ1MCwgCi0gICAgMTA1NDU0LCAxMDU0NTgsIDEwNTQ2MiwgMTA1NDY2LCAxMDU0NzAsIDEwNTQ3NCwgMTA1NDc4LCAxMDU0ODIsIDEwNTQ4NiwgCi0gICAgMTA1NDkwLCAxMDU0OTQsIDEwNTQ5OCwgMTA1NTAyLCAxMDU1MDYsIDEwNTUxMCwgMTA1NTE0LCAxMDU1MTgsIDEwNTUyMiwgCi0gICAgMTA1NTI2LCAxMDU1MzAsIDEwNTUzNCwgMTA1NTM4LCAxMDU1NDIsIDEwNTU0NiwgMTA1NTUwLCAxMDU1NTQsIDEwNTU1OCwgCi0gICAgMTA1NTYyLCAxMDU1NjYsIDEwNTU3MCwgMTA1NTc0LCAxMDU1NzgsIDEwNTU4MiwgMTA1NTg2LCAxMDU1OTAsIDEwNTU5NCwgCi0gICAgMTA1NTk4LCAxMDU2MDIsIDEwNTYwNiwgMTA1NjEwLCAxMDU2MTQsIDEwNTYxOCwgMTA1NjIyLCAxMDU2MjYsIDEwNTYzMCwgCi0gICAgMTA1NjM0LCAxMDU2MzgsIDEwNTY0MiwgMTA1NjQ2LCAxMDU2NTAsIDEwNTY1NCwgMTA1NjU4LCAxMDU2NjIsIDEwNTY2NiwgCi0gICAgMTA1NjcwLCAxMDU2NzQsIDEwNTY3OCwgMTA1NjgyLCAxMDU2ODYsIDEwNTY5MCwgMTA1Njk0LCAxMDU2OTgsIDEwNTcwMiwgCi0gICAgMTA1NzA2LCAxMDU3MTAsIDEwNTcxNCwgMTA1NzE4LCAxMDU3MjIsIDEwNTcyNiwgMTA1NzMwLCAxMDU3MzQsIDEwNTczOCwgCi0gICAgMTA1NzQyLCAxMDU3NDYsIDEwNTc1MCwgMTA1NzU0LCAxMDU3NTgsIDEwNTc2MiwgMTA1NzY2LCAxMDU3NzAsIDEwNTc3NCwgCi0gICAgMTA1Nzc4LCAxMDU3ODIsIDEwNTc4NiwgMTA1NzkwLCAxMDU3OTQsIDEwNTc5OCwgMTA1ODAyLCAxMDU4MDYsIDEwNTgxMCwgCi0gICAgMTA1ODE0LCAxMDU4MTgsIDEwNTgyMiwgMTA1ODI2LCAxMDU4MzAsIDEwNTgzNCwgMTA1ODM4LCAxMDU4NDIsIDEwNTg0NiwgCi0gICAgMTA1ODUwLCAxMDU4NTQsIDEwNTg1OCwgMTA1ODYyLCAxMDU4NjYsIDEwNTg3MCwgMTA1ODc0LCAxMDU4NzgsIDEwNTg4MiwgCi0gICAgMTA1ODg2LCAxMDU4OTAsIDEwNTg5NCwgMTA1ODk4LCAxMDU5MDIsIDEwNTkwNiwgMTA1OTEwLCAxMDU5MTQsIDEwNTkxOCwgCi0gICAgMTA1OTIyLCAxMDU5MjYsIDEwNTkzMCwgMTA1OTM0LCAxMDU5MzgsIDEwNTk0MiwgMTA1OTQ2LCAxMDU5NTAsIDEwNTk1NCwgCi0gICAgMTA1OTU4LCAxMDU5NjIsIDEwNTk2NiwgMTA1OTcwLCAxMDU5NzQsIDEwNTk3OCwgMTA1OTgyLCAxMDU5ODYsIDEwNTk5MCwgCi0gICAgMTA1OTk0LCAxMDU5OTgsIDEwNjAwMiwgMTA2MDA2LCAxMDYwMTAsIDEwNjAxNCwgMTA2MDE4LCAxMDYwMjIsIDEwNjAyNiwgCi0gICAgMTA2MDMwLCAxMDYwMzQsIDEwNjAzOCwgMTA2MDQyLCAxMDYwNDYsIDEwNjA1MCwgMTA2MDU0LCAxMDYwNTgsIDEwNjA2MiwgCi0gICAgMTA2MDY2LCAxMDYwNzAsIDEwNjA3NCwgMTA2MDc4LCAxMDYwODIsIDEwNjA4NiwgMTA2MDkwLCAxMDYwOTQsIDEwNjA5OCwgCi0gICAgMTA2MTAyLCAxMDYxMDYsIDEwNjExMCwgMTA2MTE0LCAxMDYxMTgsIDEwNjEyMiwgMTA2MTI2LCAxMDYxMzAsIDEwNjEzNCwgCi0gICAgMTA2MTM4LCAxMDYxNDIsIDEwNjE0NiwgMTA2MTUwLCAxMDYxNTQsIDEwNjE1OCwgMTA2MTYyLCAxMDYxNjYsIDEwNjE3MCwgCi0gICAgMTA2MTc0LCAxMDYxNzgsIDEwNjE4MiwgMTA2MTg2LCAxMDYxOTAsIDEwNjE5NCwgMTA2MTk4LCAxMDYyMDIsIDEwNjIwNiwgCi0gICAgMTA2MjEwLCAxMDYyMTQsIDEwNjIxOCwgMTA2MjIyLCAxMDYyMjYsIDEwNjIzMCwgMTA2MjM0LCAxMDYyMzgsIDEwNjI0MiwgCi0gICAgMTA2MjQ2LCAxMDYyNTAsIDEwNjI1NCwgMTA2MjU4LCAxMDYyNjIsIDEwNjI2NiwgMTA2MjcwLCAxMDYyNzQsIDEwNjI3OCwgCi0gICAgMTA2MjgyLCAxMDYyODYsIDEwNjI5MCwgMTA2Mjk0LCAxMDYyOTgsIDEwNjMwMiwgMTA2MzA2LCAxMDYzMTAsIDEwNjMxNCwgCi0gICAgMTA2MzE4LCAxMDYzMjIsIDEwNjMyNiwgMTA2MzMwLCAxMDYzMzQsIDEwNjMzOCwgMTA2MzQyLCAxMDYzNDYsIDEwNjM1MCwgCi0gICAgMTA2MzU0LCAxMDYzNTgsIDEwNjM2MiwgMTA2MzY2LCAxMDYzNzAsIDEwNjM3NCwgMTA2Mzc4LCAxMDYzODIsIDEwNjM4NiwgCi0gICAgMTA2MzkwLCAxMDYzOTQsIDEwNjM5OCwgMTA2NDAyLCAxMDY0MDYsIDEwNjQxMCwgMTA2NDE0LCAxMDY0MTgsIDEwNjQyMiwgCi0gICAgMTA2NDI2LCAxMDY0MzAsIDEwNjQzNCwgMTA2NDM4LCAxMDY0NDIsIDEwNjQ0NiwgMTA2NDUwLCAxMDY0NTQsIDEwNjQ1OCwgCi0gICAgMTA2NDYyLCAxMDY0NjYsIDEwNjQ3MCwgMTA2NDc0LCAxMDY0NzgsIDEwNjQ4MiwgMTA2NDg2LCAxMDY0OTAsIDEwNjQ5NCwgCi0gICAgMTA2NDk4LCAxMDY1MDIsIDEwNjUwNiwgMTA2NTEwLCAxMDY1MTQsIDEwNjUxOCwgMTA2NTIyLCAxMDY1MjYsIDEwNjUzMCwgCi0gICAgMTA2NTM0LCAxMDY1MzgsIDEwNjU0MiwgMTA2NTQ2LCAxMDY1NTAsIDEwNjU1NCwgMTA2NTU4LCAxMDY1NjIsIDEwNjU2NiwgCi0gICAgMTA2NTcwLCAxMDY1NzQsIDEwNjU3OCwgMTA2NTgyLCAxMDY1ODYsIDEwNjU5MCwgMTA2NTk0LCAxMDY1OTgsIDEwNjYwMiwgCi0gICAgMTA2NjA2LCAxMDY2MTAsIDEwNjYxNCwgMTA2NjE4LCAxMDY2MjIsIDEwNjYyNiwgMTA2NjMwLCAxMDY2MzQsIDEwNjYzOCwgCi0gICAgMTA2NjQyLCAxMDY2NDYsIDEwNjY1MCwgMTA2NjU0LCAxMDY2NTgsIDEwNjY2MiwgMTA2NjY2LCAxMDY2NzAsIDEwNjY3NCwgCi0gICAgMTA2Njc4LCAxMDY2ODIsIDEwNjY4NiwgMTA2NjkwLCAxMDY2OTQsIDEwNjY5OCwgMTA2NzAyLCAxMDY3MDYsIDEwNjcxMCwgCi0gICAgMTA2NzE0LCAxMDY3MTgsIDEwNjcyMiwgMTA2NzI2LCAxMDY3MzAsIDEwNjczNCwgMTA2NzM4LCAxMDY3NDIsIDEwNjc0NiwgCi0gICAgMTA2NzUwLCAxMDY3NTQsIDEwNjc1OCwgMTA2NzYyLCAxMDY3NjYsIDEwNjc3MCwgMTA2Nzc0LCAxMDY3NzgsIDEwNjc4MiwgCi0gICAgMTA2Nzg2LCAxMDY3OTAsIDEwNjc5NCwgMTA2Nzk4LCAxMDY4MDIsIDEwNjgwNiwgMTA2ODEwLCAxMDY4MTQsIDEwNjgxOCwgCi0gICAgMTA2ODIyLCAxMDY4MjYsIDEwNjgzMCwgMTA2ODM0LCAxMDY4MzgsIDEwNjg0MiwgMTA2ODQ2LCAxMDY4NTAsIDEwNjg1NCwgCi0gICAgMTA2ODU4LCAxMDY4NjIsIDEwNjg2NiwgMTA2ODcwLCAxMDY4NzQsIDEwNjg3OCwgMTA2ODgyLCAxMDY4ODYsIDEwNjg5MCwgCi0gICAgMTA2ODk0LCAxMDY4OTgsIDEwNjkwMiwgMTA2OTA2LCAxMDY5MTAsIDEwNjkxNCwgMTA2OTE4LCAxMDY5MjIsIDEwNjkyNiwgCi0gICAgMTA2OTMwLCAxMDY5MzQsIDEwNjkzOCwgMTA2OTQyLCAxMDY5NDYsIDEwNjk1MCwgMTA2OTU0LCAxMDY5NTgsIDEwNjk2MiwgCi0gICAgMTA2OTY2LCAxMDY5NzAsIDEwNjk3NCwgMTA2OTc4LCAxMDY5ODIsIDEwNjk4NiwgMTA2OTkwLCAxMDY5OTQsIDEwNjk5OCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTYwNzksIDk2MDgyLCA5NjA4NywgOTYwOTMsIAorICAgIDk2MTAxLCA5NjEwNiwgOTYxMTIsIDk2MTIwLCA5NjEyNiwgOTYxMzIsIDk2MTM2LCA5NjE0MCwgOTYxNDcsIDk2MTU2LCAKKyAgICA5NjE2MywgOTYxNzIsIDk2MTc4LCA5NjE4NywgOTYxOTQsIDk2MjAxLCA5NjIwOCwgOTYyMTgsIDk2MjI0LCA5NjIyOCwgCisgICAgOTYyMzUsIDk2MjQ0LCA5NjI1NCwgOTYyNjEsIDk2MjY4LCA5NjI3MiwgOTYyNzYsIDk2MjgzLCA5NjI5MywgOTYyOTcsIAorICAgIDk2MzA0LCA5NjMxMSwgOTYzMTgsIDk2MzI0LCA5NjMzMSwgOTYzMzgsIDk2MzQ1LCA5NjM1MiwgOTYzNTYsIDk2MzYwLCAKKyAgICA5NjM2NCwgOTYzNzEsIDk2Mzc1LCA5NjM4MiwgOTYzODksIDk2NDAzLCA5NjQxMiwgOTY0MTYsIDk2NDIwLCA5NjQyNCwgCisgICAgOTY0MzEsIDk2NDM1LCA5NjQzOSwgOTY0NDMsIDk2NDUxLCA5NjQ1OSwgOTY0NzgsIDk2NDg4LCA5NjUwOCwgOTY1MTIsIAorICAgIDk2NTE2LCA5NjUyMCwgOTY1MjQsIDk2NTI4LCA5NjUzMiwgOTY1MzYsIDk2NTQzLCA5NjU0NywgOTY1NTAsIDk2NTU0LCAKKyAgICA5NjU1OCwgOTY1NjQsIDk2NTcxLCA5NjU4MCwgOTY1ODQsIDk2NTkzLCA5NjYwMiwgOTY2MTAsIDk2NjE0LCA5NjYyMSwgCisgICAgOTY2MjUsIDk2NjI5LCA5NjYzMywgOTY2MzcsIDk2NjQ4LCA5NjY1NywgOTY2NjYsIDk2Njc1LCA5NjY4NCwgOTY2OTYsIAorICAgIDk2NzA1LCA5NjcxNCwgOTY3MjMsIDk2NzMxLCA5Njc0MCwgOTY3NTIsIDk2NzYxLCA5Njc3MCwgOTY3NzksIDk2NzkxLCAKKyAgICA5NjgwMCwgOTY4MDksIDk2ODIxLCA5NjgzMCwgOTY4MzksIDk2ODUxLCA5Njg2MCwgOTY4NjQsIDk2ODY4LCA5Njg3MiwgCisgICAgOTY4NzYsIDk2ODgwLCA5Njg4NCwgOTY4ODgsIDk2ODk1LCA5Njg5OSwgOTY5MDMsIDk2OTE0LCA5NjkxOCwgOTY5MjIsIAorICAgIDk2OTI5LCA5NjkzNSwgOTY5NDEsIDk2OTQ1LCA5Njk1MiwgOTY5NTYsIDk2OTYwLCA5Njk2NCwgOTY5NjgsIDk2OTcyLCAKKyAgICA5Njk3NiwgOTY5ODIsIDk2OTkwLCA5Njk5NCwgOTY5OTgsIDk3MDAxLCA5NzAwNywgOTcwMTcsIDk3MDIxLCA5NzAzMywgCisgICAgOTcwNDAsIDk3MDQ3LCA5NzA1NCwgOTcwNjEsIDk3MDY3LCA5NzA3MSwgOTcwNzUsIDk3MDc5LCA5NzA4MywgOTcwOTAsIAorICAgIDk3MDk5LCA5NzEwNiwgOTcxMTQsIDk3MTIyLCA5NzEyOCwgOTcxMzIsIDk3MTM2LCA5NzE0MCwgOTcxNDQsIDk3MTUwLCAKKyAgICA5NzE1OSwgOTcxNzEsIDk3MTc4LCA5NzE4NSwgOTcxOTQsIDk3MjA1LCA5NzIxMSwgOTcyMjAsIDk3MjI5LCA5NzIzNiwgCisgICAgOTcyNDUsIDk3MjUyLCA5NzI1OSwgOTcyNjksIDk3Mjc2LCA5NzI4MywgOTcyOTAsIDk3Mjk3LCA5NzMwMSwgOTczMDcsIAorICAgIDk3MzExLCA5NzMyMiwgOTczMzAsIDk3MzM5LCA5NzM1MSwgOTczNTgsIDk3MzY1LCA5NzM3NSwgOTczODIsIDk3MzkxLCAKKyAgICA5NzM5OCwgOTc0MDcsIDk3NDE0LCA5NzQyMSwgOTc0MzEsIDk3NDM4LCA5NzQ0NSwgOTc0NTUsIDk3NDYyLCA5NzQ3NCwgCisgICAgOTc0ODMsIDk3NDkwLCA5NzQ5NywgOTc1MDQsIDk3NTEzLCA5NzUyMywgOTc1MzYsIDk3NTQzLCA5NzU1MywgOTc1NjMsIAorICAgIDk3NTcwLCA5NzU3OSwgOTc1OTIsIDk3NTk5LCA5NzYwNiwgOTc2MTMsIDk3NjIzLCA5NzYzMywgOTc2NDAsIDk3NjUwLCAKKyAgICA5NzY1NywgOTc2NjQsIDk3Njc0LCA5NzY4MCwgOTc2ODcsIDk3Njk0LCA5NzcwMSwgOTc3MTEsIDk3NzE4LCA5NzcyNSwgCisgICAgOTc3MzIsIDk3NzM4LCA5Nzc0NSwgOTc3NTUsIDk3NzYyLCA5Nzc2NiwgOTc3NzQsIDk3Nzc4LCA5Nzc5MCwgOTc3OTQsIAorICAgIDk3ODA4LCA5NzgxMiwgOTc4MTYsIDk3ODIwLCA5NzgyNCwgOTc4MzAsIDk3ODM3LCA5Nzg0NSwgOTc4NDksIDk3ODUzLCAKKyAgICA5Nzg1NywgOTc4NjEsIDk3ODY4LCA5Nzg3MiwgOTc4NzgsIDk3ODg0LCA5Nzg5MiwgOTc4OTYsIDk3OTAzLCA5NzkxMSwgCisgICAgOTc5MTUsIDk3OTE5LCA5NzkyNSwgOTc5MjksIDk3OTM4LCA5Nzk0NywgOTc5NTQsIDk3OTY0LCA5Nzk3MCwgOTc5NzQsIAorICAgIDk3OTc4LCA5Nzk4NiwgOTc5OTMsIDk4MDAwLCA5ODAwNiwgOTgwMTAsIDk4MDE4LCA5ODAyMiwgOTgwMjksIDk4MDQxLCAKKyAgICA5ODA0OCwgOTgwNTgsIDk4MDY0LCA5ODA2OCwgOTgwNzcsIDk4MDg0LCA5ODA5MywgOTgwOTcsIDk4MTAxLCA5ODEwOCwgCisgICAgOTgxMTIsIDk4MTE2LCA5ODEyMCwgOTgxMjQsIDk4MTI3LCA5ODEzMywgOTgxMzksIDk4MTQzLCA5ODE0NywgOTgxNTQsIAorICAgIDk4MTYxLCA5ODE2OCwgOTgxNzUsIDk4MTgyLCA5ODE4OSwgOTgxOTYsIDk4MjAzLCA5ODIwOSwgOTgyMTMsIDk4MjE3LCAKKyAgICA5ODIyNCwgOTgyMzEsIDk4MjM4LCA5ODI0NSwgOTgyNTIsIDk4MjU2LCA5ODI1OSwgOTgyNjQsIDk4MjY4LCA5ODI3MiwgCisgICAgOTgyODEsIDk4MjkwLCA5ODI5NCwgOTgyOTgsIDk4MzA0LCA5ODMxMCwgOTgzMjcsIDk4MzMzLCA5ODMzNywgOTgzNDYsIAorICAgIDk4MzUwLCA5ODM1NCwgOTgzNjEsIDk4MzY5LCA5ODM3NywgOTgzODMsIDk4Mzg3LCA5ODM5MSwgOTgzOTUsIDk4Mzk5LCAKKyAgICA5ODQwMiwgOTg0MDgsIDk4NDE1LCA5ODQyNSwgOTg0MzIsIDk4NDM5LCA5ODQ0NiwgOTg0NTIsIDk4NDU5LCA5ODQ2NiwgCisgICAgOTg0NzMsIDk4NDgwLCA5ODQ4NywgOTg0OTYsIDk4NTAzLCA5ODUxNSwgOTg1MjIsIDk4NTI5LCA5ODUzOSwgOTg1NTAsIAorICAgIDk4NTU3LCA5ODU2NCwgOTg1NzEsIDk4NTc4LCA5ODU4NSwgOTg1OTIsIDk4NTk5LCA5ODYwNiwgOTg2MTMsIDk4NjIwLCAKKyAgICA5ODYzMCwgOTg2NDAsIDk4NjUwLCA5ODY1NywgOTg2NjcsIDk4Njc0LCA5ODY4MSwgOTg2ODgsIDk4Njk1LCA5ODcwMSwgCisgICAgOTg3MDgsIDk4NzE1LCA5ODcyMiwgOTg3MjksIDk4NzM2LCA5ODc0MywgOTg3NTAsIDk4NzU3LCA5ODc2MywgOTg3NzAsIAorICAgIDk4Nzc3LCA5ODc4NiwgOTg3OTMsIDk4ODAwLCA5ODgwNCwgOTg4MTIsIDk4ODE2LCA5ODgyMCwgOTg4MjQsIDk4ODI4LCAKKyAgICA5ODgzMiwgOTg4MzksIDk4ODQzLCA5ODg1MiwgOTg4NTYsIDk4ODYzLCA5ODg3MSwgOTg4NzUsIDk4ODc5LCA5ODg4MywgCisgICAgOTg4OTYsIDk4OTEyLCA5ODkxNiwgOTg5MjAsIDk4OTI3LCA5ODkzMywgOTg5NDAsIDk4OTQ0LCA5ODk0OCwgOTg5NTIsIAorICAgIDk4OTU2LCA5ODk2MCwgOTg5NjcsIDk4OTcxLCA5ODk4OSwgOTg5OTMsIDk4OTk3LCA5OTAwNCwgOTkwMDgsIDk5MDEyLCAKKyAgICA5OTAxOCwgOTkwMjIsIDk5MDI2LCA5OTAzNCwgOTkwMzgsIDk5MDQyLCA5OTA0NiwgOTkwNTAsIDk5MDU2LCA5OTA2NywgCisgICAgOTkwNzYsIDk5MDg1LCA5OTA5MiwgOTkwOTksIDk5MTEwLCA5OTExNywgOTkxMjQsIDk5MTMxLCA5OTEzOCwgOTkxNDUsIAorICAgIDk5MTUyLCA5OTE1OSwgOTkxNjksIDk5MTc1LCA5OTE4MiwgOTkxOTIsIDk5MjAxLCA5OTIwOCwgOTkyMTcsIDk5MjI3LCAKKyAgICA5OTIzNCwgOTkyNDEsIDk5MjQ4LCA5OTI1NSwgOTkyNjcsIDk5Mjc0LCA5OTI4MSwgOTkyODgsIDk5Mjk1LCA5OTMwMiwgCisgICAgOTkzMTIsIDk5MzE5LCA5OTMyNiwgOTkzMzYsIDk5MzQ5LCA5OTM2MSwgOTkzNjgsIDk5Mzc4LCA5OTM4NSwgOTkzOTIsIAorICAgIDk5Mzk5LCA5OTQxMywgOTk0MTksIDk5NDI3LCA5OTQzNywgOTk0NDcsIDk5NDU0LCA5OTQ2MSwgOTk0NjcsIDk5NDcxLCAKKyAgICA5OTQ3OCwgOTk0ODgsIDk5NDk0LCA5OTUwNywgOTk1MTEsIDk5NTE1LCA5OTUyMiwgOTk1MjYsIDk5NTMzLCA5OTU0MywgCisgICAgOTk1NDcsIDk5NTUxLCA5OTU1NSwgOTk1NTksIDk5NTYzLCA5OTU3MCwgOTk1NzQsIDk5NTgxLCA5OTU4OCwgOTk1OTUsIAorICAgIDk5NjA0LCA5OTYxMywgOTk2MjMsIDk5NjMwLCA5OTYzNywgOTk2NDQsIDk5NjU0LCA5OTY2MSwgOTk2NzEsIDk5Njc4LCAKKyAgICA5OTY4OCwgOTk2OTUsIDk5NzAyLCA5OTcxMiwgOTk3MjIsIDk5NzI5LCA5OTczNSwgOTk3NDMsIDk5NzUxLCA5OTc1NywgCisgICAgOTk3NjMsIDk5NzY3LCA5OTc3MSwgOTk3NzgsIDk5Nzg2LCA5OTc5MiwgOTk3OTYsIDk5ODAwLCA5OTgwNCwgOTk4MTEsIAorICAgIDk5ODIzLCA5OTgyNiwgOTk4MzMsIDk5ODM5LCA5OTg0MywgOTk4NDcsIDk5ODUxLCA5OTg1NSwgOTk4NTksIDk5ODYzLCAKKyAgICA5OTg2NywgOTk4NzEsIDk5ODc1LCA5OTg3OSwgOTk4ODYsIDk5ODkwLCA5OTg5NiwgOTk5MDAsIDk5OTA0LCA5OTkwOCwgCisgICAgOTk5MTQsIDk5OTIxLCA5OTkyOCwgOTk5MzUsIDk5OTQ2LCA5OTk1NCwgOTk5NTgsIDk5OTY0LCA5OTk3MywgOTk5ODAsIAorICAgIDk5OTg2LCA5OTk4OSwgOTk5OTMsIDk5OTk3LCAxMDAwMDMsIDEwMDAxMiwgMTAwMDIwLCAxMDAwMjQsIDEwMDAzMCwgCisgICAgMTAwMDM0LCAxMDAwMzgsIDEwMDA0MiwgMTAwMDQ4LCAxMDAwNTUsIDEwMDA2MSwgMTAwMDY1LCAxMDAwNzEsIDEwMDA3NSwgCisgICAgMTAwMDc5LCAxMDAwODgsIDEwMDEwMCwgMTAwMTA0LCAxMDAxMTEsIDEwMDExOCwgMTAwMTI4LCAxMDAxMzUsIDEwMDE0NywgCisgICAgMTAwMTU0LCAxMDAxNjEsIDEwMDE2OCwgMTAwMTc5LCAxMDAxODksIDEwMDIwMiwgMTAwMjEyLCAxMDAyMTksIDEwMDIyMywgCisgICAgMTAwMjI3LCAxMDAyMzEsIDEwMDIzNSwgMTAwMjQ0LCAxMDAyNTMsIDEwMDI2MiwgMTAwMjc5LCAxMDAyODgsIDEwMDI5NCwgCisgICAgMTAwMzAxLCAxMDAzMDksIDEwMDMyMiwgMTAwMzI2LCAxMDAzMzUsIDEwMDM0NCwgMTAwMzUzLCAxMDAzNjIsIDEwMDM3MywgCisgICAgMTAwMzgyLCAxMDAzOTEsIDEwMDQwMCwgMTAwNDA5LCAxMDA0MTgsIDEwMDQyNywgMTAwNDM3LCAxMDA0NDAsIDEwMDQ0NCwgCisgICAgMTAwNDQ4LCAxMDA0NTIsIDEwMDQ1NiwgMTAwNDYwLCAxMDA0NjYsIDEwMDQ3MywgMTAwNDgwLCAxMDA0ODcsIDEwMDQ5MywgCisgICAgMTAwNDk5LCAxMDA1MDYsIDEwMDUxMiwgMTAwNTE5LCAxMDA1MjcsIDEwMDUzMSwgMTAwNTM4LCAxMDA1NDUsIDEwMDU1MiwgCisgICAgMTAwNTYwLCAxMDA1NjMsIDEwMDU2NywgMTAwNTcxLCAxMDA1NzUsIDEwMDU3OCwgMTAwNTg0LCAxMDA1ODgsIDEwMDU5NCwgCisgICAgMTAwNjAxLCAxMDA2MDgsIDEwMDYxNCwgMTAwNjIxLCAxMDA2MjgsIDEwMDYzNSwgMTAwNjQyLCAxMDA2NDksIDEwMDY1NiwgCisgICAgMTAwNjYzLCAxMDA2NzAsIDEwMDY3NywgMTAwNjg0LCAxMDA2OTEsIDEwMDY5OCwgMTAwNzA1LCAxMDA3MTIsIDEwMDcxOCwgCisgICAgMTAwNzIyLCAxMDA3MzEsIDEwMDczNSwgMTAwNzM5LCAxMDA3NDMsIDEwMDc0NywgMTAwNzUzLCAxMDA3NjAsIDEwMDc2NywgCisgICAgMTAwNzc0LCAxMDA3ODEsIDEwMDc4OCwgMTAwNzk0LCAxMDA4MDIsIDEwMDgwNiwgMTAwODEwLCAxMDA4MTQsIDEwMDgxOCwgCisgICAgMTAwODI0LCAxMDA4NDEsIDEwMDg1OCwgMTAwODYyLCAxMDA4NjYsIDEwMDg3MCwgMTAwODc0LCAxMDA4NzgsIDEwMDg4MiwgCisgICAgMTAwODg4LCAxMDA4OTUsIDEwMDg5OSwgMTAwOTA1LCAxMDA5MTIsIDEwMDkxOSwgMTAwOTI2LCAxMDA5MzMsIDEwMDk0MCwgCisgICAgMTAwOTQ5LCAxMDA5NTYsIDEwMDk2MywgMTAwOTcwLCAxMDA5NzcsIDEwMDk4MSwgMTAwOTg1LCAxMDA5OTEsIDEwMTAwMywgCisgICAgMTAxMDA3LCAxMDEwMTEsIDEwMTAyMCwgMTAxMDI0LCAxMDEwMjgsIDEwMTAzMiwgMTAxMDM4LCAxMDEwNDIsIDEwMTA0NiwgCisgICAgMTAxMDU1LCAxMDEwNTksIDEwMTA2MywgMTAxMDY3LCAxMDEwNzQsIDEwMTA3OCwgMTAxMDgyLCAxMDEwODYsIDEwMTA5MCwgCisgICAgMTAxMDk0LCAxMDEwOTgsIDEwMTEwMiwgMTAxMTA2LCAxMDExMTIsIDEwMTExOSwgMTAxMTI2LCAxMDExMzIsIDEwMTEzNiwgCisgICAgMTAxMTUzLCAxMDExNTksIDEwMTE2MywgMTAxMTY5LCAxMDExNzUsIDEwMTE4MSwgMTAxMTg3LCAxMDExOTMsIDEwMTE5OSwgCisgICAgMTAxMjAzLCAxMDEyMDcsIDEwMTIxMSwgMTAxMjE3LCAxMDEyMjEsIDEwMTIyNywgMTAxMjMxLCAxMDEyMzUsIDEwMTI0MiwgCisgICAgMTAxMjQ5LCAxMDEyNjYsIDEwMTI3MCwgMTAxMjc0LCAxMDEyNzgsIDEwMTI4MiwgMTAxMjg2LCAxMDEyOTgsIDEwMTMwMSwgCisgICAgMTAxMzA2LCAxMDEzMTEsIDEwMTMyNiwgMTAxMzM2LCAxMDEzNDgsIDEwMTM1MiwgMTAxMzU2LCAxMDEzNjAsIDEwMTM2NiwgCisgICAgMTAxMzczLCAxMDEzODAsIDEwMTM5MCwgMTAxNDAyLCAxMDE0MDgsIDEwMTQxNCwgMTAxNDIzLCAxMDE0MjcsIDEwMTQzMSwgCisgICAgMTAxNDM4LCAxMDE0NDgsIDEwMTQ1NSwgMTAxNDYxLCAxMDE0NjUsIDEwMTQ2OSwgMTAxNDc2LCAxMDE0ODIsIDEwMTQ4NiwgCisgICAgMTAxNDkyLCAxMDE0OTYsIDEwMTUwNCwgMTAxNTEwLCAxMDE1MTQsIDEwMTUyMiwgMTAxNTMwLCAxMDE1MzcsIDEwMTU0MywgCisgICAgMTAxNTUwLCAxMDE1NTcsIDEwMTU2NywgMTAxNTc3LCAxMDE1ODEsIDEwMTU4NSwgMTAxNTg5LCAxMDE1OTMsIDEwMTU5OSwgCisgICAgMTAxNjA2LCAxMDE2MTIsIDEwMTYxOSwgMTAxNjI2LCAxMDE2MzMsIDEwMTY0MiwgMTAxNjQ5LCAxMDE2NTYsIDEwMTY2MiwgCisgICAgMTAxNjY5LCAxMDE2NzYsIDEwMTY4MywgMTAxNjkwLCAxMDE2OTcsIDEwMTcwNCwgMTAxNzEwLCAxMDE3MTcsIDEwMTcyNCwgCisgICAgMTAxNzMxLCAxMDE3NDAsIDEwMTc0NywgMTAxNzU0LCAxMDE3NTgsIDEwMTc2NCwgMTAxNzY4LCAxMDE3NzQsIDEwMTc4MSwgCisgICAgMTAxNzg4LCAxMDE3OTUsIDEwMTc5OSwgMTAxODAzLCAxMDE4MDcsIDEwMTgxMSwgMTAxODE1LCAxMDE4MjIsIDEwMTgyNiwgCisgICAgMTAxODMwLCAxMDE4MzYsIDEwMTg0NCwgMTAxODQ4LCAxMDE4NTIsIDEwMTg1NiwgMTAxODYwLCAxMDE4NjcsIDEwMTg3MSwgCisgICAgMTAxODc1LCAxMDE4ODMsIDEwMTg4NywgMTAxODkxLCAxMDE4OTUsIDEwMTg5OSwgMTAxOTA1LCAxMDE5MDksIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwMTkxMywgMTAxOTE5LCAxMDE5MjUsIDEwMTkzMiwgCisgICAgMTAxOTM5LCAxMDE5NDYsIDEwMTk1MywgMTAxOTYwLCAxMDE5NjcsIDEwMTk3MywgMTAxOTgwLCAxMDE5ODcsIDEwMTk5NCwgCisgICAgMTAyMDAxLCAxMDIwMDgsIDEwMjAxNSwgMTAyMDIxLCAxMDIwMjcsIDEwMjAzMywgMTAyMDM5LCAxMDIwNDUsIDEwMjA1MSwgCisgICAgMTAyMDU3LCAxMDIwNjMsIDEwMjA2OSwgMTAyMDc2LCAxMDIwODMsIDEwMjA5MCwgMTAyMDk3LCAxMDIxMDQsIDEwMjExMSwgCisgICAgMTAyMTE3LCAxMDIxMjMsIDEwMjEyOSwgMTAyMTM2LCAxMDIxNDMsIDEwMjE0OSwgMTAyMTU1LCAxMDIxNjQsIDEwMjE3MSwgCisgICAgMTAyMTc4LCAxMDIxODUsIDEwMjE5MiwgMTAyMTk5LCAxMDIyMDYsIDEwMjIxMiwgMTAyMjE4LCAxMDIyMjQsIDEwMjIzMywgCisgICAgMTAyMjQwLCAxMDIyNDcsIDEwMjI1OCwgMTAyMjY5LCAxMDIyNzUsIDEwMjI4MSwgMTAyMjg3LCAxMDIyOTYsIDEwMjMwMywgCisgICAgMTAyMzEwLCAxMDIzMjAsIDEwMjMzMCwgMTAyMzQxLCAxMDIzNTIsIDEwMjM2NCwgMTAyMzc3LCAxMDIzODgsIDEwMjM5OSwgCisgICAgMTAyNDExLCAxMDI0MjQsIDEwMjQzNSwgMTAyNDQ2LCAxMDI0NTcsIDEwMjQ2OCwgMTAyNDc5LCAxMDI0OTEsIDEwMjQ5OSwgCisgICAgMTAyNTA3LCAxMDI1MTYsIDEwMjUyNSwgMTAyNTM0LCAxMDI1NDAsIDEwMjU0NiwgMTAyNTUyLCAxMDI1NTksIDEwMjU2OSwgCisgICAgMTAyNTc2LCAxMDI1ODYsIDEwMjU5MSwgMTAyNTk2LCAxMDI2MDIsIDEwMjYwOCwgMTAyNjE2LCAxMDI2MjQsIDEwMjYzMywgCisgICAgMTAyNjQ0LCAxMDI2NTUsIDEwMjY2MywgMTAyNjcxLCAxMDI2ODAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDEwMjY4OSwgMTAyNzAwLCAxMDI3MDcsIDEwMjcxNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMTAyNzIzLCAxMDI3MjcsIDEwMjczMSwgMTAyNzM1LCAxMDI3MzksIDEwMjc0MywgMTAyNzQ3LCAxMDI3NTEsIDEwMjc1NSwgCisgICAgMTAyNzU5LCAxMDI3NjMsIDEwMjc2NywgMTAyNzcxLCAxMDI3NzUsIDEwMjc3OSwgMTAyNzgzLCAxMDI3ODcsIDEwMjc5MSwgCisgICAgMTAyNzk1LCAxMDI3OTksIDEwMjgwMywgMTAyODA3LCAxMDI4MTEsIDEwMjgxNSwgMTAyODE5LCAxMDI4MjMsIDEwMjgyNywgCisgICAgMTAyODMxLCAxMDI4MzUsIDEwMjgzOSwgMTAyODQzLCAxMDI4NDcsIDEwMjg1MSwgMTAyODU1LCAxMDI4NTksIDEwMjg2MywgCisgICAgMTAyODY3LCAxMDI4NzEsIDEwMjg3NSwgMTAyODc5LCAxMDI4ODMsIDEwMjg4NywgMTAyODkxLCAxMDI4OTUsIDEwMjg5OSwgCisgICAgMTAyOTAzLCAxMDI5MDcsIDEwMjkxMSwgMTAyOTE1LCAxMDI5MTksIDEwMjkyMywgMTAyOTI3LCAxMDI5MzEsIDEwMjkzNSwgCisgICAgMTAyOTM5LCAxMDI5NDMsIDEwMjk0NywgMTAyOTUxLCAxMDI5NTUsIDEwMjk1OSwgMTAyOTYzLCAxMDI5NjcsIDEwMjk3MSwgCisgICAgMTAyOTc1LCAxMDI5NzksIDEwMjk4MywgMTAyOTg3LCAxMDI5OTEsIDEwMjk5NSwgMTAyOTk5LCAxMDMwMDMsIDEwMzAwNywgCisgICAgMTAzMDExLCAxMDMwMTUsIDEwMzAxOSwgMTAzMDIzLCAxMDMwMjcsIDEwMzAzMSwgMTAzMDM1LCAxMDMwMzksIDEwMzA0MywgCisgICAgMTAzMDQ3LCAxMDMwNTEsIDEwMzA1NSwgMTAzMDU5LCAxMDMwNjMsIDEwMzA2NywgMTAzMDcxLCAxMDMwNzUsIDEwMzA3OSwgCisgICAgMTAzMDgzLCAxMDMwODcsIDEwMzA5MSwgMTAzMDk1LCAxMDMwOTksIDEwMzEwMywgMTAzMTA3LCAxMDMxMTEsIDEwMzExNSwgCisgICAgMTAzMTE5LCAxMDMxMjMsIDEwMzEyNywgMTAzMTMxLCAxMDMxMzUsIDEwMzEzOSwgMTAzMTQzLCAxMDMxNDcsIDEwMzE1MSwgCisgICAgMTAzMTU1LCAxMDMxNTksIDEwMzE2MywgMTAzMTY3LCAxMDMxNzEsIDEwMzE3NSwgMTAzMTc5LCAxMDMxODMsIDEwMzE4NywgCisgICAgMTAzMTkxLCAxMDMxOTUsIDEwMzE5OSwgMTAzMjAzLCAxMDMyMDcsIDEwMzIxMSwgMTAzMjE1LCAxMDMyMTksIDEwMzIyMywgCisgICAgMTAzMjI3LCAxMDMyMzEsIDEwMzIzNSwgMTAzMjM5LCAxMDMyNDMsIDEwMzI0NywgMTAzMjUxLCAxMDMyNTUsIDEwMzI1OSwgCisgICAgMTAzMjYzLCAxMDMyNjcsIDEwMzI3MSwgMTAzMjc1LCAxMDMyNzksIDEwMzI4MywgMTAzMjg3LCAxMDMyOTEsIDEwMzI5NSwgCisgICAgMTAzMjk5LCAxMDMzMDMsIDEwMzMwNywgMTAzMzExLCAxMDMzMTUsIDEwMzMxOSwgMTAzMzIzLCAxMDMzMjcsIDEwMzMzMSwgCisgICAgMTAzMzM1LCAxMDMzMzksIDEwMzM0MywgMTAzMzQ3LCAxMDMzNTEsIDEwMzM1NSwgMTAzMzU5LCAxMDMzNjMsIDEwMzM2NywgCisgICAgMTAzMzcxLCAxMDMzNzUsIDEwMzM3OSwgMTAzMzgzLCAxMDMzODcsIDEwMzM5MSwgMTAzMzk1LCAxMDMzOTksIDEwMzQwMywgCisgICAgMTAzNDA3LCAxMDM0MTEsIDEwMzQxNSwgMTAzNDE5LCAxMDM0MjMsIDEwMzQyNywgMTAzNDMxLCAxMDM0MzUsIDEwMzQzOSwgCisgICAgMTAzNDQzLCAxMDM0NDcsIDEwMzQ1MSwgMTAzNDU1LCAxMDM0NTksIDEwMzQ2MywgMTAzNDY3LCAxMDM0NzEsIDEwMzQ3NSwgCisgICAgMTAzNDc5LCAxMDM0ODMsIDEwMzQ4NywgMTAzNDkxLCAxMDM0OTUsIDEwMzQ5OSwgMTAzNTAzLCAxMDM1MDcsIDEwMzUxMSwgCisgICAgMTAzNTE1LCAxMDM1MTksIDEwMzUyMywgMTAzNTI3LCAxMDM1MzEsIDEwMzUzNSwgMTAzNTM5LCAxMDM1NDMsIDEwMzU0NywgCisgICAgMTAzNTUxLCAxMDM1NTUsIDEwMzU1OSwgMTAzNTYzLCAxMDM1NjcsIDEwMzU3MSwgMTAzNTc1LCAxMDM1NzksIDEwMzU4MywgCisgICAgMTAzNTg3LCAxMDM1OTEsIDEwMzU5NSwgMTAzNTk5LCAxMDM2MDMsIDEwMzYwNywgMTAzNjExLCAxMDM2MTUsIDEwMzYxOSwgCisgICAgMTAzNjIzLCAxMDM2MjcsIDEwMzYzMSwgMTAzNjM1LCAxMDM2MzksIDEwMzY0MywgMTAzNjQ3LCAxMDM2NTEsIDEwMzY1NSwgCisgICAgMTAzNjU5LCAxMDM2NjMsIDEwMzY2NywgMTAzNjcxLCAxMDM2NzUsIDEwMzY3OSwgMTAzNjgzLCAxMDM2ODcsIDEwMzY5MSwgCisgICAgMTAzNjk1LCAxMDM2OTksIDEwMzcwMywgMTAzNzA3LCAxMDM3MTEsIDEwMzcxNSwgMTAzNzE5LCAxMDM3MjMsIDEwMzcyNywgCisgICAgMTAzNzMxLCAxMDM3MzUsIDEwMzczOSwgMTAzNzQzLCAxMDM3NDcsIDEwMzc1MSwgMTAzNzU1LCAxMDM3NTksIDEwMzc2MywgCisgICAgMTAzNzY3LCAxMDM3NzEsIDEwMzc3NSwgMTAzNzc5LCAxMDM3ODMsIDEwMzc4NywgMTAzNzkxLCAxMDM3OTUsIDEwMzc5OSwgCisgICAgMTAzODAzLCAxMDM4MDcsIDEwMzgxMSwgMTAzODE1LCAxMDM4MTksIDEwMzgyMywgMTAzODI3LCAxMDM4MzEsIDEwMzgzNSwgCisgICAgMTAzODM5LCAxMDM4NDMsIDEwMzg0NywgMTAzODUxLCAxMDM4NTUsIDEwMzg1OSwgMTAzODYzLCAxMDM4NjcsIDEwMzg3MSwgCisgICAgMTAzODc1LCAxMDM4NzksIDEwMzg4MywgMTAzODg3LCAxMDM4OTEsIDEwMzg5NSwgMTAzODk5LCAxMDM5MDMsIDEwMzkwNywgCisgICAgMTAzOTExLCAxMDM5MTUsIDEwMzkxOSwgMTAzOTIzLCAxMDM5MjcsIDEwMzkzMSwgMTAzOTM1LCAxMDM5MzksIDEwMzk0MywgCisgICAgMTAzOTQ3LCAxMDM5NTEsIDEwMzk1NSwgMTAzOTU5LCAxMDM5NjMsIDEwMzk2NywgMTAzOTcxLCAxMDM5NzUsIDEwMzk3OSwgCisgICAgMTAzOTgzLCAxMDM5ODcsIDEwMzk5MSwgMTAzOTk1LCAxMDM5OTksIDEwNDAwMywgMTA0MDA3LCAxMDQwMTEsIDEwNDAxNSwgCisgICAgMTA0MDE5LCAxMDQwMjMsIDEwNDAyNywgMTA0MDMxLCAxMDQwMzUsIDEwNDAzOSwgMTA0MDQzLCAxMDQwNDcsIDEwNDA1MSwgCisgICAgMTA0MDU1LCAxMDQwNTksIDEwNDA2MywgMTA0MDY3LCAxMDQwNzEsIDEwNDA3NSwgMTA0MDc5LCAxMDQwODMsIDEwNDA4NywgCisgICAgMTA0MDkxLCAxMDQwOTUsIDEwNDA5OSwgMTA0MTAzLCAxMDQxMDcsIDEwNDExMSwgMTA0MTE1LCAxMDQxMTksIDEwNDEyMywgCisgICAgMTA0MTI3LCAxMDQxMzEsIDEwNDEzNSwgMTA0MTM5LCAxMDQxNDMsIDEwNDE0NywgMTA0MTUxLCAxMDQxNTUsIDEwNDE1OSwgCisgICAgMTA0MTYzLCAxMDQxNjcsIDEwNDE3MSwgMTA0MTc1LCAxMDQxNzksIDEwNDE4MywgMTA0MTg3LCAxMDQxOTEsIDEwNDE5NSwgCisgICAgMTA0MTk5LCAxMDQyMDMsIDEwNDIwNywgMTA0MjExLCAxMDQyMTUsIDEwNDIxOSwgMTA0MjIzLCAxMDQyMjcsIDEwNDIzMSwgCisgICAgMTA0MjM1LCAxMDQyMzksIDEwNDI0MywgMTA0MjQ3LCAxMDQyNTEsIDEwNDI1NSwgMTA0MjU5LCAxMDQyNjMsIDEwNDI2NywgCisgICAgMTA0MjcxLCAxMDQyNzUsIDEwNDI3OSwgMTA0MjgzLCAxMDQyODcsIDEwNDI5MSwgMTA0Mjk1LCAxMDQyOTksIDEwNDMwMywgCisgICAgMTA0MzA3LCAxMDQzMTEsIDEwNDMxNSwgMTA0MzE5LCAxMDQzMjMsIDEwNDMyNywgMTA0MzMxLCAxMDQzMzUsIDEwNDMzOSwgCisgICAgMTA0MzQzLCAxMDQzNDcsIDEwNDM1MSwgMTA0MzU1LCAxMDQzNTksIDEwNDM2MywgMTA0MzY3LCAxMDQzNzEsIDEwNDM3NSwgCisgICAgMTA0Mzc5LCAxMDQzODMsIDEwNDM4NywgMTA0MzkxLCAxMDQzOTUsIDEwNDM5OSwgMTA0NDAzLCAxMDQ0MDcsIDEwNDQxMSwgCisgICAgMTA0NDE1LCAxMDQ0MTksIDEwNDQyMywgMTA0NDI3LCAxMDQ0MzEsIDEwNDQzNSwgMTA0NDM5LCAxMDQ0NDMsIDEwNDQ0NywgCisgICAgMTA0NDUxLCAxMDQ0NTUsIDEwNDQ1OSwgMTA0NDYzLCAxMDQ0NjcsIDEwNDQ3MSwgMTA0NDc1LCAxMDQ0NzksIDEwNDQ4MywgCisgICAgMTA0NDg3LCAxMDQ0OTEsIDEwNDQ5NSwgMTA0NDk5LCAxMDQ1MDMsIDEwNDUwNywgMTA0NTExLCAxMDQ1MTUsIDEwNDUxOSwgCisgICAgMTA0NTIzLCAxMDQ1MjcsIDEwNDUzMSwgMTA0NTM1LCAxMDQ1MzksIDEwNDU0MywgMTA0NTQ3LCAxMDQ1NTEsIDEwNDU1NSwgCisgICAgMTA0NTU5LCAxMDQ1NjMsIDEwNDU2NywgMTA0NTcxLCAxMDQ1NzUsIDEwNDU3OSwgMTA0NTgzLCAxMDQ1ODcsIDEwNDU5MSwgCisgICAgMTA0NTk1LCAxMDQ1OTksIDEwNDYwMywgMTA0NjA3LCAxMDQ2MTEsIDEwNDYxNSwgMTA0NjE5LCAxMDQ2MjMsIDEwNDYyNywgCisgICAgMTA0NjMxLCAxMDQ2MzUsIDEwNDYzOSwgMTA0NjQzLCAxMDQ2NDcsIDEwNDY1MSwgMTA0NjU1LCAxMDQ2NTksIDEwNDY2MywgCisgICAgMTA0NjY3LCAxMDQ2NzEsIDEwNDY3NSwgMTA0Njc5LCAxMDQ2ODMsIDEwNDY4NywgMTA0NjkxLCAxMDQ2OTUsIDEwNDY5OSwgCisgICAgMTA0NzAzLCAxMDQ3MDcsIDEwNDcxMSwgMTA0NzE1LCAxMDQ3MTksIDEwNDcyMywgMTA0NzI3LCAxMDQ3MzEsIDEwNDczNSwgCisgICAgMTA0NzM5LCAxMDQ3NDMsIDEwNDc0NywgMTA0NzUxLCAxMDQ3NTUsIDEwNDc1OSwgMTA0NzYzLCAxMDQ3NjcsIDEwNDc3MSwgCisgICAgMTA0Nzc1LCAxMDQ3NzksIDEwNDc4MywgMTA0Nzg3LCAxMDQ3OTEsIDEwNDc5NSwgMTA0Nzk5LCAxMDQ4MDMsIDEwNDgwNywgCisgICAgMTA0ODExLCAxMDQ4MTUsIDEwNDgxOSwgMTA0ODIzLCAxMDQ4MjcsIDEwNDgzMSwgMTA0ODM1LCAxMDQ4MzksIDEwNDg0MywgCisgICAgMTA0ODQ3LCAxMDQ4NTEsIDEwNDg1NSwgMTA0ODU5LCAxMDQ4NjMsIDEwNDg2NywgMTA0ODcxLCAxMDQ4NzUsIDEwNDg3OSwgCisgICAgMTA0ODgzLCAxMDQ4ODcsIDEwNDg5MSwgMTA0ODk1LCAxMDQ4OTksIDEwNDkwMywgMTA0OTA3LCAxMDQ5MTEsIDEwNDkxNSwgCisgICAgMTA0OTE5LCAxMDQ5MjMsIDEwNDkyNywgMTA0OTMxLCAxMDQ5MzUsIDEwNDkzOSwgMTA0OTQzLCAxMDQ5NDcsIDEwNDk1MSwgCisgICAgMTA0OTU1LCAxMDQ5NTksIDEwNDk2MywgMTA0OTY3LCAxMDQ5NzEsIDEwNDk3NSwgMTA0OTc5LCAxMDQ5ODMsIDEwNDk4NywgCisgICAgMTA0OTkxLCAxMDQ5OTUsIDEwNDk5OSwgMTA1MDAzLCAxMDUwMDcsIDEwNTAxMSwgMTA1MDE1LCAxMDUwMTksIDEwNTAyMywgCisgICAgMTA1MDI3LCAxMDUwMzEsIDEwNTAzNSwgMTA1MDM5LCAxMDUwNDMsIDEwNTA0NywgMTA1MDUxLCAxMDUwNTUsIDEwNTA1OSwgCisgICAgMTA1MDYzLCAxMDUwNjcsIDEwNTA3MSwgMTA1MDc1LCAxMDUwNzksIDEwNTA4MywgMTA1MDg3LCAxMDUwOTEsIDEwNTA5NSwgCisgICAgMTA1MDk5LCAxMDUxMDMsIDEwNTEwNywgMTA1MTExLCAxMDUxMTUsIDEwNTExOSwgMTA1MTIzLCAxMDUxMjcsIDEwNTEzMSwgCisgICAgMTA1MTM1LCAxMDUxMzksIDEwNTE0MywgMTA1MTQ3LCAxMDUxNTEsIDEwNTE1NSwgMTA1MTU5LCAxMDUxNjMsIDEwNTE2NywgCisgICAgMTA1MTcxLCAxMDUxNzUsIDEwNTE3OSwgMTA1MTgzLCAxMDUxODcsIDEwNTE5MSwgMTA1MTk1LCAxMDUxOTksIDEwNTIwMywgCisgICAgMTA1MjA3LCAxMDUyMTEsIDEwNTIxNSwgMTA1MjE5LCAxMDUyMjMsIDEwNTIyNywgMTA1MjMxLCAxMDUyMzUsIDEwNTIzOSwgCisgICAgMTA1MjQzLCAxMDUyNDcsIDEwNTI1MSwgMTA1MjU1LCAxMDUyNTksIDEwNTI2MywgMTA1MjY3LCAxMDUyNzEsIDEwNTI3NSwgCisgICAgMTA1Mjc5LCAxMDUyODMsIDEwNTI4NywgMTA1MjkxLCAxMDUyOTUsIDEwNTI5OSwgMTA1MzAzLCAxMDUzMDcsIDEwNTMxMSwgCisgICAgMTA1MzE1LCAxMDUzMTksIDEwNTMyMywgMTA1MzI3LCAxMDUzMzEsIDEwNTMzNSwgMTA1MzM5LCAxMDUzNDMsIDEwNTM0NywgCisgICAgMTA1MzUxLCAxMDUzNTUsIDEwNTM1OSwgMTA1MzYzLCAxMDUzNjcsIDEwNTM3MSwgMTA1Mzc1LCAxMDUzNzksIDEwNTM4MywgCisgICAgMTA1Mzg3LCAxMDUzOTEsIDEwNTM5NSwgMTA1Mzk5LCAxMDU0MDMsIDEwNTQwNywgMTA1NDExLCAxMDU0MTUsIDEwNTQxOSwgCisgICAgMTA1NDIzLCAxMDU0MjcsIDEwNTQzMSwgMTA1NDM1LCAxMDU0MzksIDEwNTQ0MywgMTA1NDQ3LCAxMDU0NTEsIDEwNTQ1NSwgCisgICAgMTA1NDU5LCAxMDU0NjMsIDEwNTQ2NywgMTA1NDcxLCAxMDU0NzUsIDEwNTQ3OSwgMTA1NDgzLCAxMDU0ODcsIDEwNTQ5MSwgCisgICAgMTA1NDk1LCAxMDU0OTksIDEwNTUwMywgMTA1NTA3LCAxMDU1MTEsIDEwNTUxNSwgMTA1NTE5LCAxMDU1MjMsIDEwNTUyNywgCisgICAgMTA1NTMxLCAxMDU1MzUsIDEwNTUzOSwgMTA1NTQzLCAxMDU1NDcsIDEwNTU1MSwgMTA1NTU1LCAxMDU1NTksIDEwNTU2MywgCisgICAgMTA1NTY3LCAxMDU1NzEsIDEwNTU3NSwgMTA1NTc5LCAxMDU1ODMsIDEwNTU4NywgMTA1NTkxLCAxMDU1OTUsIDEwNTU5OSwgCisgICAgMTA1NjAzLCAxMDU2MDcsIDEwNTYxMSwgMTA1NjE1LCAxMDU2MTksIDEwNTYyMywgMTA1NjI3LCAxMDU2MzEsIDEwNTYzNSwgCisgICAgMTA1NjM5LCAxMDU2NDMsIDEwNTY0NywgMTA1NjUxLCAxMDU2NTUsIDEwNTY1OSwgMTA1NjYzLCAxMDU2NjcsIDEwNTY3MSwgCisgICAgMTA1Njc1LCAxMDU2NzksIDEwNTY4MywgMTA1Njg3LCAxMDU2OTEsIDEwNTY5NSwgMTA1Njk5LCAxMDU3MDMsIDEwNTcwNywgCisgICAgMTA1NzExLCAxMDU3MTUsIDEwNTcxOSwgMTA1NzIzLCAxMDU3MjcsIDEwNTczMSwgMTA1NzM1LCAxMDU3MzksIDEwNTc0MywgCisgICAgMTA1NzQ3LCAxMDU3NTEsIDEwNTc1NSwgMTA1NzU5LCAxMDU3NjMsIDEwNTc2NywgMTA1NzcxLCAxMDU3NzUsIDEwNTc3OSwgCisgICAgMTA1NzgzLCAxMDU3ODcsIDEwNTc5MSwgMTA1Nzk1LCAxMDU3OTksIDEwNTgwMywgMTA1ODA3LCAxMDU4MTEsIDEwNTgxNSwgCisgICAgMTA1ODE5LCAxMDU4MjMsIDEwNTgyNywgMTA1ODMxLCAxMDU4MzUsIDEwNTgzOSwgMTA1ODQzLCAxMDU4NDcsIDEwNTg1MSwgCisgICAgMTA1ODU1LCAxMDU4NTksIDEwNTg2MywgMTA1ODY3LCAxMDU4NzEsIDEwNTg3NSwgMTA1ODc5LCAxMDU4ODMsIDEwNTg4NywgCisgICAgMTA1ODkxLCAxMDU4OTUsIDEwNTg5OSwgMTA1OTAzLCAxMDU5MDcsIDEwNTkxMSwgMTA1OTE1LCAxMDU5MTksIDEwNTkyMywgCisgICAgMTA1OTI3LCAxMDU5MzEsIDEwNTkzNSwgMTA1OTM5LCAxMDU5NDMsIDEwNTk0NywgMTA1OTUxLCAxMDU5NTUsIDEwNTk1OSwgCisgICAgMTA1OTYzLCAxMDU5NjcsIDEwNTk3MSwgMTA1OTc1LCAxMDU5NzksIDEwNTk4MywgMTA1OTg3LCAxMDU5OTEsIDEwNTk5NSwgCisgICAgMTA1OTk5LCAxMDYwMDMsIDEwNjAwNywgMTA2MDExLCAxMDYwMTUsIDEwNjAxOSwgMTA2MDIzLCAxMDYwMjcsIDEwNjAzMSwgCisgICAgMTA2MDM1LCAxMDYwMzksIDEwNjA0MywgMTA2MDQ3LCAxMDYwNTEsIDEwNjA1NSwgMTA2MDU5LCAxMDYwNjMsIDEwNjA2NywgCisgICAgMTA2MDcxLCAxMDYwNzUsIDEwNjA3OSwgMTA2MDgzLCAxMDYwODcsIDEwNjA5MSwgMTA2MDk1LCAxMDYwOTksIDEwNjEwMywgCisgICAgMTA2MTA3LCAxMDYxMTEsIDEwNjExNSwgMTA2MTE5LCAxMDYxMjMsIDEwNjEyNywgMTA2MTMxLCAxMDYxMzUsIDEwNjEzOSwgCisgICAgMTA2MTQzLCAxMDYxNDcsIDEwNjE1MSwgMTA2MTU1LCAxMDYxNTksIDEwNjE2MywgMTA2MTY3LCAxMDYxNzEsIDEwNjE3NSwgCisgICAgMTA2MTc5LCAxMDYxODMsIDEwNjE4NywgMTA2MTkxLCAxMDYxOTUsIDEwNjE5OSwgMTA2MjAzLCAxMDYyMDcsIDEwNjIxMSwgCisgICAgMTA2MjE1LCAxMDYyMTksIDEwNjIyMywgMTA2MjI3LCAxMDYyMzEsIDEwNjIzNSwgMTA2MjM5LCAxMDYyNDMsIDEwNjI0NywgCisgICAgMTA2MjUxLCAxMDYyNTUsIDEwNjI1OSwgMTA2MjYzLCAxMDYyNjcsIDEwNjI3MSwgMTA2Mjc1LCAxMDYyNzksIDEwNjI4MywgCisgICAgMTA2Mjg3LCAxMDYyOTEsIDEwNjI5NSwgMTA2Mjk5LCAxMDYzMDMsIDEwNjMwNywgMTA2MzExLCAxMDYzMTUsIDEwNjMxOSwgCisgICAgMTA2MzIzLCAxMDYzMjcsIDEwNjMzMSwgMTA2MzM1LCAxMDYzMzksIDEwNjM0MywgMTA2MzQ3LCAxMDYzNTEsIDEwNjM1NSwgCisgICAgMTA2MzU5LCAxMDYzNjMsIDEwNjM2NywgMTA2MzcxLCAxMDYzNzUsIDEwNjM3OSwgMTA2MzgzLCAxMDYzODcsIDEwNjM5MSwgCisgICAgMTA2Mzk1LCAxMDYzOTksIDEwNjQwMywgMTA2NDA3LCAxMDY0MTEsIDEwNjQxNSwgMTA2NDE5LCAxMDY0MjMsIDEwNjQyNywgCisgICAgMTA2NDMxLCAxMDY0MzUsIDEwNjQzOSwgMTA2NDQzLCAxMDY0NDcsIDEwNjQ1MSwgMTA2NDU1LCAxMDY0NTksIDEwNjQ2MywgCisgICAgMTA2NDY3LCAxMDY0NzEsIDEwNjQ3NSwgMTA2NDc5LCAxMDY0ODMsIDEwNjQ4NywgMTA2NDkxLCAxMDY0OTUsIDEwNjQ5OSwgCisgICAgMTA2NTAzLCAxMDY1MDcsIDEwNjUxMSwgMTA2NTE1LCAxMDY1MTksIDEwNjUyMywgMTA2NTI3LCAxMDY1MzEsIDEwNjUzNSwgCisgICAgMTA2NTM5LCAxMDY1NDMsIDEwNjU0NywgMTA2NTUxLCAxMDY1NTUsIDEwNjU1OSwgMTA2NTYzLCAxMDY1NjcsIDEwNjU3MSwgCisgICAgMTA2NTc1LCAxMDY1NzksIDEwNjU4MywgMTA2NTg3LCAxMDY1OTEsIDEwNjU5NSwgMTA2NTk5LCAxMDY2MDMsIDEwNjYwNywgCisgICAgMTA2NjExLCAxMDY2MTUsIDEwNjYxOSwgMTA2NjIzLCAxMDY2MjcsIDEwNjYzMSwgMTA2NjM1LCAxMDY2MzksIDEwNjY0MywgCisgICAgMTA2NjQ3LCAxMDY2NTEsIDEwNjY1NSwgMTA2NjU5LCAxMDY2NjMsIDEwNjY2NywgMTA2NjcxLCAxMDY2NzUsIDEwNjY3OSwgCisgICAgMTA2NjgzLCAxMDY2ODcsIDEwNjY5MSwgMTA2Njk1LCAxMDY2OTksIDEwNjcwMywgMTA2NzA3LCAxMDY3MTEsIDEwNjcxNSwgCisgICAgMTA2NzE5LCAxMDY3MjMsIDEwNjcyNywgMTA2NzMxLCAxMDY3MzUsIDEwNjczOSwgMTA2NzQzLCAxMDY3NDcsIDEwNjc1MSwgCisgICAgMTA2NzU1LCAxMDY3NTksIDEwNjc2MywgMTA2NzY3LCAxMDY3NzEsIDEwNjc3NSwgMTA2Nzc5LCAxMDY3ODMsIDEwNjc4NywgCisgICAgMTA2NzkxLCAxMDY3OTUsIDEwNjc5OSwgMTA2ODAzLCAxMDY4MDcsIDEwNjgxMSwgMTA2ODE1LCAxMDY4MTksIDEwNjgyMywgCisgICAgMTA2ODI3LCAxMDY4MzEsIDEwNjgzNSwgMTA2ODM5LCAxMDY4NDMsIDEwNjg0NywgMTA2ODUxLCAxMDY4NTUsIDEwNjg1OSwgCisgICAgMTA2ODYzLCAxMDY4NjcsIDEwNjg3MSwgMTA2ODc1LCAxMDY4NzksIDEwNjg4MywgMTA2ODg3LCAxMDY4OTEsIDEwNjg5NSwgCisgICAgMTA2ODk5LCAxMDY5MDMsIDEwNjkwNywgMTA2OTExLCAxMDY5MTUsIDEwNjkxOSwgMTA2OTIzLCAxMDY5MjcsIDEwNjkzMSwgCisgICAgMTA2OTM1LCAxMDY5MzksIDEwNjk0MywgMTA2OTQ3LCAxMDY5NTEsIDEwNjk1NSwgMTA2OTU5LCAxMDY5NjMsIDEwNjk2NywgCisgICAgMTA2OTcxLCAxMDY5NzUsIDEwNjk3OSwgMTA2OTgzLCAxMDY5ODcsIDEwNjk5MSwgMTA2OTk1LCAxMDY5OTksIDEwNzAwMywgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA3MDAyLCAxMDcwMDksIDEwNzAxNiwgMTA3MDI1LCAxMDcwMzQsIAotICAgIDEwNzA0MSwgMTA3MDQ2LCAxMDcwNTMsIDEwNzA2MCwgMTA3MDY5LCAxMDcwODAsIDEwNzA5MSwgMTA3MDk2LCAxMDcxMDMsIAotICAgIDEwNzEwOCwgMTA3MTEzLCAxMDcxMTgsIDEwNzEyMywgMTA3MTI4LCAxMDcxMzMsIDEwNzEzOCwgMTA3MTQzLCAxMDcxNDgsIAotICAgIDEwNzE1MywgMTA3MTU4LCAxMDcxNjUsIDEwNzE3MiwgMTA3MTc3LCAxMDcxODIsIDEwNzE4NywgMTA3MTkyLCAxMDcxOTksIAotICAgIDEwNzIwNiwgMTA3MjE0LCAxMDcyMTksIDEwNzIyNiwgMTA3MjMxLCAxMDcyMzYsIDEwNzI0MSwgMTA3MjQ2LCAxMDcyNTEsIAotICAgIDEwNzI1OCwgMTA3MjY1LCAxMDcyNzAsIDEwNzI3NSwgMTA3MjgwLCAxMDcyODUsIDEwNzI5MCwgMTA3Mjk1LCAxMDczMDAsIAotICAgIDEwNzMwNSwgMTA3MzEwLCAxMDczMTUsIDEwNzMyMCwgMTA3MzI1LCAxMDczMzAsIDEwNzMzNSwgMTA3MzQwLCAxMDczNDUsIAotICAgIDEwNzM1MCwgMTA3MzU1LCAxMDczNjAsIDEwNzM2NywgMTA3MzcyLCAxMDczNzcsIDEwNzM4NiwgMTA3MzkzLCAxMDczOTgsIAotICAgIDEwNzQwMywgMTA3NDA4LCAxMDc0MTMsIDEwNzQxOCwgMTA3NDIzLCAxMDc0MjgsIDEwNzQzMywgMTA3NDM4LCAxMDc0NDMsIAotICAgIDEwNzQ0OCwgMTA3NDUzLCAxMDc0NTgsIDEwNzQ2MywgMTA3NDY4LCAxMDc0NzMsIDEwNzQ3OCwgMTA3NDgzLCAxMDc0ODgsIAotICAgIDEwNzQ5MywgMTA3NDk4LCAxMDc1MDQsIDEwNzUxMiwgMTA3NTE4LCAxMDc1MjYsIDEwNzUzNCwgMTA3NTQyLCAxMDc1NDgsIAotICAgIDEwNzU1NCwgMTA3NTYwLCAxMDc1NjYsIDEwNzU3MiwgMTA3NTgwLCAxMDc1OTAsIDEwNzU5OCwgMTA3NjA2LCAxMDc2MTIsIAotICAgIDEwNzYxOCwgMTA3NjI2LCAxMDc2MzQsIDEwNzY0MCwgMTA3NjQ4LCAxMDc2NTYsIDEwNzY2NCwgMTA3NjcwLCAxMDc2NzYsIAotICAgIDEwNzY4MiwgMTA3Njg4LCAxMDc2OTQsIDEwNzcwMCwgMTA3NzA4LCAxMDc3MTYsIDEwNzcyMiwgMTA3NzI4LCAxMDc3MzQsIAotICAgIDEwNzc0MCwgMTA3NzQ2LCAxMDc3NTQsIDEwNzc2MCwgMTA3NzY2LCAxMDc3NzIsIDEwNzc3OCwgMTA3Nzg0LCAxMDc3OTAsIAotICAgIDEwNzc5OCwgMTA3ODA0LCAxMDc4MTAsIDEwNzgxNiwgMTA3ODIyLCAxMDc4MzAsIDEwNzgzOCwgMTA3ODQ0LCAxMDc4NTAsIAotICAgIDEwNzg1NiwgMTA3ODYxLCAxMDc4NjcsIDEwNzg3MywgMTA3ODgwLCAxMDc4ODUsIDEwNzg5MCwgMTA3ODk1LCAxMDc5MDAsIAotICAgIDEwNzkwNSwgMTA3OTEwLCAxMDc5MTUsIDEwNzkyMCwgMTA3OTI1LCAxMDc5MzQsIDEwNzk0MSwgMTA3OTQ2LCAxMDc5NTEsIAotICAgIDEwNzk1NiwgMTA3OTYzLCAxMDc5NjgsIDEwNzk3MywgMTA3OTc4LCAxMDc5ODUsIDEwNzk5MCwgMTA3OTk1LCAxMDgwMDAsIAotICAgIDEwODAwNSwgMTA4MDEwLCAxMDgwMTUsIDEwODAyMCwgMTA4MDI1LCAxMDgwMzAsIDEwODAzNSwgMTA4MDQwLCAxMDgwNDcsIAotICAgIDEwODA1MiwgMTA4MDU5LCAxMDgwNjQsIDEwODA2OSwgMTA4MDc2LCAxMDgwODEsIDEwODA4NiwgMTA4MDkxLCAxMDgwOTYsIAotICAgIDEwODEwMSwgMTA4MTA2LCAxMDgxMTEsIDEwODExNiwgMTA4MTIxLCAxMDgxMjYsIDEwODEzMSwgMTA4MTM2LCAxMDgxNDEsIAotICAgIDEwODE0NiwgMTA4MTUxLCAxMDgxNTYsIDEwODE2MSwgMTA4MTY2LCAxMDgxNzEsIDEwODE3OCwgMTA4MTgzLCAxMDgxODgsIAotICAgIDEwODE5MywgMTA4MTk4LCAxMDgyMDMsIDEwODIwOCwgMTA4MjEzLCAxMDgyMTgsIDEwODIyMywgMTA4MjI4LCAxMDgyMzMsIAotICAgIDEwODIzOCwgMTA4MjQzLCAxMDgyNTAsIDEwODI1NSwgMTA4MjYwLCAxMDgyNjcsIDEwODI3MiwgMTA4Mjc3LCAxMDgyODIsIAotICAgIDEwODI4NywgMTA4MjkyLCAxMDgyOTcsIDEwODMwMiwgMTA4MzA3LCAxMDgzMTIsIDEwODMxNywgMTA4MzI0LCAxMDgzMjksIAotICAgIDEwODMzNCwgMTA4MzM5LCAxMDgzNDQsIDEwODM0OSwgMTA4MzU2LCAxMDgzNjMsIDEwODM2OCwgMTA4MzczLCAxMDgzNzgsIAotICAgIDEwODM4MywgMTA4Mzg4LCAxMDgzOTMsIDEwODM5OCwgMTA4NDAzLCAxMDg0MDgsIDEwODQxMywgMTA4NDE4LCAxMDg0MjMsIAotICAgIDEwODQyOCwgMTA4NDMzLCAxMDg0MzgsIDEwODQ0MywgMTA4NDQ4LCAxMDg0NTMsIDEwODQ1OCwgMTA4NDYzLCAxMDg0NjgsIAotICAgIDEwODQ3MywgMTA4NDc4LCAxMDg0ODMsIDEwODQ4OCwgMTA4NDkzLCAxMDg0OTgsIDEwODUwMywgMTA4NTA4LCAxMDg1MTMsIAotICAgIDEwODUxOCwgMTA4NTIzLCAxMDg1MjgsIDEwODUzMywgMTA4NTM4LCAxMDg1NDMsIDEwODU1MCwgMTA4NTU1LCAxMDg1NjAsIAotICAgIDEwODU2NSwgMTA4NTcwLCAxMDg1NzUsIDEwODU4MCwgMTA4NTg1LCAxMDg1OTAsIDEwODU5NSwgMTA4NjAwLCAxMDg2MDUsIAotICAgIDEwODYxMCwgMTA4NjE1LCAxMDg2MjAsIDEwODYyNSwgMTA4NjMwLCAxMDg2MzUsIDEwODY0MCwgMTA4NjQ1LCAxMDg2NTAsIAotICAgIDEwODY1NSwgMTA4NjYwLCAxMDg2NjUsIDEwODY3MCwgMTA4Njc1LCAxMDg2ODAsIDEwODY4NSwgMTA4NjkwLCAxMDg2OTUsIAotICAgIDEwODcwMCwgMTA4NzA1LCAxMDg3MTAsIDEwODcxNSwgMTA4NzIwLCAxMDg3MjUsIDEwODczMCwgMTA4NzM1LCAxMDg3NDAsIAotICAgIDEwODc0NSwgMTA4NzUwLCAxMDg3NTUsIDEwODc2MCwgMTA4NzY1LCAxMDg3NzAsIDEwODc3NSwgMTA4NzgwLCAxMDg3ODUsIAotICAgIDEwODc5MCwgMTA4Nzk1LCAxMDg4MDAsIDEwODgwNSwgMTA4ODEwLCAxMDg4MTUsIDEwODgyMCwgMTA4ODI1LCAxMDg4MzAsIAotICAgIDEwODgzNSwgMTA4ODQwLCAxMDg4NDcsIDEwODg1MiwgMTA4ODU3LCAxMDg4NjIsIDEwODg2NywgMTA4ODcyLCAxMDg4NzcsIAotICAgIDEwODg4MSwgMTA4ODg2LCAxMDg4OTEsIDEwODg5NiwgMTA4OTAxLCAxMDg5MDYsIDEwODkxMSwgMTA4OTE2LCAxMDg5MjEsIAotICAgIDEwODkyNiwgMTA4OTMxLCAxMDg5MzYsIDEwODk0MSwgMTA4OTQ2LCAxMDg5NTEsIDEwODk1OCwgMTA4OTYzLCAxMDg5NjgsIAotICAgIDEwODk3NCwgMTA4OTc5LCAxMDg5ODQsIDEwODk4OSwgMTA4OTk0LCAxMDg5OTksIDEwOTAwNCwgMTA5MDA5LCAxMDkwMTQsIAotICAgIDEwOTAxOSwgMTA5MDI0LCAxMDkwMjksIDEwOTAzNCwgMTA5MDM5LCAxMDkwNDQsIDEwOTA0OSwgMTA5MDU0LCAxMDkwNTksIAotICAgIDEwOTA2NCwgMTA5MDY5LCAxMDkwNzQsIDEwOTA3OSwgMTA5MDg0LCAxMDkwODksIDEwOTA5NCwgMTA5MDk5LCAxMDkxMDQsIAotICAgIDEwOTEwOSwgMTA5MTE0LCAxMDkxMTksIDEwOTEyNCwgMTA5MTI5LCAxMDkxMzQsIDEwOTEzOSwgMTA5MTQ0LCAxMDkxNDksIAotICAgIDEwOTE1NCwgMTA5MTU5LCAxMDkxNjQsIDEwOTE2OSwgMTA5MTc0LCAxMDkxNzksIDEwOTE4NCwgMTA5MTg5LCAxMDkxOTYsIAotICAgIDEwOTIwMSwgMTA5MjA2LCAxMDkyMTMsIDEwOTIyMCwgMTA5MjI1LCAxMDkyMzAsIDEwOTIzNSwgMTA5MjQwLCAxMDkyNDUsIAotICAgIDEwOTI1MCwgMTA5MjU1LCAxMDkyNjAsIDEwOTI2NSwgMTA5MjcwLCAxMDkyNzUsIDEwOTI4MCwgMTA5Mjg1LCAxMDkyOTAsIAotICAgIDEwOTI5NSwgMTA5MzAwLCAxMDkzMDUsIDEwOTMxMCwgMTA5MzE1LCAxMDkzMjAsIDEwOTMyNSwgMTA5MzMwLCAxMDkzMzUsIAotICAgIDEwOTM0MCwgMTA5MzQ1LCAxMDkzNTIsIDEwOTM1NywgMTA5MzYyLCAxMDkzNjcsIDEwOTM3MiwgMTA5Mzc3LCAxMDkzODIsIAotICAgIDEwOTM4NywgMTA5MzkyLCAxMDkzOTcsIDEwOTQwMiwgMTA5NDA3LCAxMDk0MTIsIDEwOTQxNywgMTA5NDIyLCAxMDk0MjcsIAotICAgIDEwOTQzMiwgMTA5NDM3LCAxMDk0NDIsIDEwOTQ0OSwgMTA5NDU0LCAxMDk0NTksIDEwOTQ2NCwgMTA5NDY5LCAxMDk0NzQsIAotICAgIDEwOTQ3OSwgMTA5NDg0LCAxMDk0OTAsIDEwOTQ5NSwgMTA5NTAwLCAxMDk1MDUsIDEwOTUxMCwgMTA5NTE1LCAxMDk1MjAsIAotICAgIDEwOTUyNSwgMTA5NTMwLCAxMDk1MzcsIDEwOTU0NCwgMTA5NTQ5LCAxMDk1NTQsIDEwOTU1OCwgMTA5NTYzLCAxMDk1NjcsIAotICAgIDEwOTU3MSwgMTA5NTc2LCAxMDk1ODMsIDEwOTU4OCwgMTA5NTkzLCAxMDk2MDIsIDEwOTYwNywgMTA5NjEyLCAxMDk2MTcsIAotICAgIDEwOTYyMiwgMTA5NjI5LCAxMDk2MzYsIDEwOTY0MSwgMTA5NjQ2LCAxMDk2NTEsIDEwOTY1NiwgMTA5NjYzLCAxMDk2NjgsIAotICAgIDEwOTY3MywgMTA5Njc4LCAxMDk2ODMsIDEwOTY4OCwgMTA5NjkzLCAxMDk2OTgsIDEwOTcwMywgMTA5NzA4LCAxMDk3MTMsIAotICAgIDEwOTcxOCwgMTA5NzIzLCAxMDk3MzAsIDEwOTczNCwgMTA5NzM5LCAxMDk3NDQsIDEwOTc0OSwgMTA5NzU0LCAxMDk3NTgsIAotICAgIDEwOTc2MywgMTA5NzY4LCAxMDk3NzMsIDEwOTc3OCwgMTA5NzgzLCAxMDk3ODgsIDEwOTc5MywgMTA5Nzk4LCAxMDk4MDMsIAotICAgIDEwOTgwOSwgMTA5ODE1LCAxMDk4MjEsIDEwOTgyNywgMTA5ODMzLCAxMDk4MzksIDEwOTg0NSwgMTA5ODUxLCAxMDk4NTcsIAotICAgIDEwOTg2MywgMTA5ODY5LCAxMDk4NzUsIDEwOTg4MCwgMTA5ODg2LCAxMDk4OTIsIDEwOTg5OCwgMTA5OTA0LCAxMDk5MTAsIAotICAgIDEwOTkxNiwgMTA5OTIyLCAxMDk5MjgsIDEwOTkzNCwgMTA5OTQwLCAxMDk5NDYsIDEwOTk1MSwgMTA5OTU3LCAxMDk5NjMsIAotICAgIDEwOTk2OSwgMTA5OTc1LCAxMDk5ODEsIDEwOTk4NywgMTA5OTkzLCAxMDk5OTksIDExMDAwNSwgMTEwMDExLCAxMTAwMTcsIAotICAgIDExMDAyMywgMTEwMDI5LCAxMTAwMzUsIDExMDA0MSwgMTEwMDQ3LCAxMTAwNTMsIDExMDA1OSwgMTEwMDY1LCAxMTAwNzEsIAotICAgIDExMDA3NiwgMTEwMDgyLCAxMTAwODgsIDExMDA5NCwgMTEwMTAwLCAxMTAxMDYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwNzAwNywgMTA3MDE0LCAxMDcwMjEsIDEwNzAzMCwgMTA3MDM5LCAKKyAgICAxMDcwNDYsIDEwNzA1MSwgMTA3MDU4LCAxMDcwNjUsIDEwNzA3NCwgMTA3MDg1LCAxMDcwOTYsIDEwNzEwMSwgMTA3MTA4LCAKKyAgICAxMDcxMTMsIDEwNzExOCwgMTA3MTIzLCAxMDcxMjgsIDEwNzEzMywgMTA3MTM4LCAxMDcxNDMsIDEwNzE0OCwgMTA3MTUzLCAKKyAgICAxMDcxNTgsIDEwNzE2MywgMTA3MTcwLCAxMDcxNzcsIDEwNzE4MiwgMTA3MTg3LCAxMDcxOTIsIDEwNzE5NywgMTA3MjA0LCAKKyAgICAxMDcyMTEsIDEwNzIxOSwgMTA3MjI0LCAxMDcyMzEsIDEwNzIzNiwgMTA3MjQxLCAxMDcyNDYsIDEwNzI1MSwgMTA3MjU2LCAKKyAgICAxMDcyNjMsIDEwNzI3MCwgMTA3Mjc1LCAxMDcyODAsIDEwNzI4NSwgMTA3MjkwLCAxMDcyOTUsIDEwNzMwMCwgMTA3MzA1LCAKKyAgICAxMDczMTAsIDEwNzMxNSwgMTA3MzIwLCAxMDczMjUsIDEwNzMzMCwgMTA3MzM1LCAxMDczNDAsIDEwNzM0NSwgMTA3MzUwLCAKKyAgICAxMDczNTUsIDEwNzM2MCwgMTA3MzY1LCAxMDczNzIsIDEwNzM3NywgMTA3MzgyLCAxMDczOTEsIDEwNzM5OCwgMTA3NDAzLCAKKyAgICAxMDc0MDgsIDEwNzQxMywgMTA3NDE4LCAxMDc0MjMsIDEwNzQyOCwgMTA3NDMzLCAxMDc0MzgsIDEwNzQ0MywgMTA3NDQ4LCAKKyAgICAxMDc0NTMsIDEwNzQ1OCwgMTA3NDYzLCAxMDc0NjgsIDEwNzQ3MywgMTA3NDc4LCAxMDc0ODMsIDEwNzQ4OCwgMTA3NDkzLCAKKyAgICAxMDc0OTgsIDEwNzUwMywgMTA3NTA5LCAxMDc1MTcsIDEwNzUyMywgMTA3NTMxLCAxMDc1MzksIDEwNzU0NywgMTA3NTUzLCAKKyAgICAxMDc1NTksIDEwNzU2NSwgMTA3NTcxLCAxMDc1NzcsIDEwNzU4NSwgMTA3NTk1LCAxMDc2MDMsIDEwNzYxMSwgMTA3NjE3LCAKKyAgICAxMDc2MjMsIDEwNzYzMSwgMTA3NjM5LCAxMDc2NDUsIDEwNzY1MywgMTA3NjYxLCAxMDc2NjksIDEwNzY3NSwgMTA3NjgxLCAKKyAgICAxMDc2ODcsIDEwNzY5MywgMTA3Njk5LCAxMDc3MDUsIDEwNzcxMywgMTA3NzIxLCAxMDc3MjcsIDEwNzczMywgMTA3NzM5LCAKKyAgICAxMDc3NDUsIDEwNzc1MSwgMTA3NzU5LCAxMDc3NjUsIDEwNzc3MSwgMTA3Nzc3LCAxMDc3ODMsIDEwNzc4OSwgMTA3Nzk1LCAKKyAgICAxMDc4MDMsIDEwNzgwOSwgMTA3ODE1LCAxMDc4MjEsIDEwNzgyNywgMTA3ODM1LCAxMDc4NDMsIDEwNzg0OSwgMTA3ODU1LCAKKyAgICAxMDc4NjEsIDEwNzg2NiwgMTA3ODcyLCAxMDc4NzgsIDEwNzg4NSwgMTA3ODkwLCAxMDc4OTUsIDEwNzkwMCwgMTA3OTA1LCAKKyAgICAxMDc5MTAsIDEwNzkxNSwgMTA3OTIwLCAxMDc5MjUsIDEwNzkzMCwgMTA3OTM5LCAxMDc5NDYsIDEwNzk1MSwgMTA3OTU2LCAKKyAgICAxMDc5NjEsIDEwNzk2OCwgMTA3OTczLCAxMDc5NzgsIDEwNzk4MywgMTA3OTkwLCAxMDc5OTUsIDEwODAwMCwgMTA4MDA1LCAKKyAgICAxMDgwMTAsIDEwODAxNSwgMTA4MDIwLCAxMDgwMjUsIDEwODAzMCwgMTA4MDM1LCAxMDgwNDAsIDEwODA0NSwgMTA4MDUyLCAKKyAgICAxMDgwNTcsIDEwODA2NCwgMTA4MDY5LCAxMDgwNzQsIDEwODA4MSwgMTA4MDg2LCAxMDgwOTEsIDEwODA5NiwgMTA4MTAxLCAKKyAgICAxMDgxMDYsIDEwODExMSwgMTA4MTE2LCAxMDgxMjEsIDEwODEyNiwgMTA4MTMxLCAxMDgxMzYsIDEwODE0MSwgMTA4MTQ2LCAKKyAgICAxMDgxNTEsIDEwODE1NiwgMTA4MTYxLCAxMDgxNjYsIDEwODE3MSwgMTA4MTc2LCAxMDgxODMsIDEwODE4OCwgMTA4MTkzLCAKKyAgICAxMDgxOTgsIDEwODIwMywgMTA4MjA4LCAxMDgyMTMsIDEwODIxOCwgMTA4MjIzLCAxMDgyMjgsIDEwODIzMywgMTA4MjM4LCAKKyAgICAxMDgyNDMsIDEwODI0OCwgMTA4MjU1LCAxMDgyNjAsIDEwODI2NSwgMTA4MjcyLCAxMDgyNzcsIDEwODI4MiwgMTA4Mjg3LCAKKyAgICAxMDgyOTIsIDEwODI5NywgMTA4MzAyLCAxMDgzMDcsIDEwODMxMiwgMTA4MzE3LCAxMDgzMjIsIDEwODMyOSwgMTA4MzM0LCAKKyAgICAxMDgzMzksIDEwODM0NCwgMTA4MzQ5LCAxMDgzNTQsIDEwODM2MSwgMTA4MzY4LCAxMDgzNzMsIDEwODM3OCwgMTA4MzgzLCAKKyAgICAxMDgzODgsIDEwODM5MywgMTA4Mzk4LCAxMDg0MDMsIDEwODQwOCwgMTA4NDEzLCAxMDg0MTgsIDEwODQyMywgMTA4NDI4LCAKKyAgICAxMDg0MzMsIDEwODQzOCwgMTA4NDQzLCAxMDg0NDgsIDEwODQ1MywgMTA4NDU4LCAxMDg0NjMsIDEwODQ2OCwgMTA4NDczLCAKKyAgICAxMDg0NzgsIDEwODQ4MywgMTA4NDg4LCAxMDg0OTMsIDEwODQ5OCwgMTA4NTAzLCAxMDg1MDgsIDEwODUxMywgMTA4NTE4LCAKKyAgICAxMDg1MjMsIDEwODUyOCwgMTA4NTMzLCAxMDg1MzgsIDEwODU0MywgMTA4NTQ4LCAxMDg1NTUsIDEwODU2MCwgMTA4NTY1LCAKKyAgICAxMDg1NzAsIDEwODU3NSwgMTA4NTgwLCAxMDg1ODUsIDEwODU5MCwgMTA4NTk1LCAxMDg2MDAsIDEwODYwNSwgMTA4NjEwLCAKKyAgICAxMDg2MTUsIDEwODYyMCwgMTA4NjI1LCAxMDg2MzAsIDEwODYzNSwgMTA4NjQwLCAxMDg2NDUsIDEwODY1MCwgMTA4NjU1LCAKKyAgICAxMDg2NjAsIDEwODY2NSwgMTA4NjcwLCAxMDg2NzUsIDEwODY4MCwgMTA4Njg1LCAxMDg2OTAsIDEwODY5NSwgMTA4NzAwLCAKKyAgICAxMDg3MDUsIDEwODcxMCwgMTA4NzE1LCAxMDg3MjAsIDEwODcyNSwgMTA4NzMwLCAxMDg3MzUsIDEwODc0MCwgMTA4NzQ1LCAKKyAgICAxMDg3NTAsIDEwODc1NSwgMTA4NzYwLCAxMDg3NjUsIDEwODc3MCwgMTA4Nzc1LCAxMDg3ODAsIDEwODc4NSwgMTA4NzkwLCAKKyAgICAxMDg3OTUsIDEwODgwMCwgMTA4ODA1LCAxMDg4MTAsIDEwODgxNSwgMTA4ODIwLCAxMDg4MjUsIDEwODgzMCwgMTA4ODM1LCAKKyAgICAxMDg4NDAsIDEwODg0NSwgMTA4ODUyLCAxMDg4NTcsIDEwODg2MiwgMTA4ODY3LCAxMDg4NzIsIDEwODg3NywgMTA4ODgyLCAKKyAgICAxMDg4ODYsIDEwODg5MSwgMTA4ODk2LCAxMDg5MDEsIDEwODkwNiwgMTA4OTExLCAxMDg5MTYsIDEwODkyMSwgMTA4OTI2LCAKKyAgICAxMDg5MzEsIDEwODkzNiwgMTA4OTQxLCAxMDg5NDYsIDEwODk1MSwgMTA4OTU2LCAxMDg5NjMsIDEwODk2OCwgMTA4OTczLCAKKyAgICAxMDg5NzksIDEwODk4NCwgMTA4OTg5LCAxMDg5OTQsIDEwODk5OSwgMTA5MDA0LCAxMDkwMDksIDEwOTAxNCwgMTA5MDE5LCAKKyAgICAxMDkwMjQsIDEwOTAyOSwgMTA5MDM0LCAxMDkwMzksIDEwOTA0NCwgMTA5MDQ5LCAxMDkwNTQsIDEwOTA1OSwgMTA5MDY0LCAKKyAgICAxMDkwNjksIDEwOTA3NCwgMTA5MDc5LCAxMDkwODQsIDEwOTA4OSwgMTA5MDk0LCAxMDkwOTksIDEwOTEwNCwgMTA5MTA5LCAKKyAgICAxMDkxMTQsIDEwOTExOSwgMTA5MTI0LCAxMDkxMjksIDEwOTEzNCwgMTA5MTM5LCAxMDkxNDQsIDEwOTE0OSwgMTA5MTU0LCAKKyAgICAxMDkxNTksIDEwOTE2NCwgMTA5MTY5LCAxMDkxNzQsIDEwOTE3OSwgMTA5MTg0LCAxMDkxODksIDEwOTE5NCwgMTA5MjAxLCAKKyAgICAxMDkyMDYsIDEwOTIxMSwgMTA5MjE4LCAxMDkyMjUsIDEwOTIzMCwgMTA5MjM1LCAxMDkyNDAsIDEwOTI0NSwgMTA5MjUwLCAKKyAgICAxMDkyNTUsIDEwOTI2MCwgMTA5MjY1LCAxMDkyNzAsIDEwOTI3NSwgMTA5MjgwLCAxMDkyODUsIDEwOTI5MCwgMTA5Mjk1LCAKKyAgICAxMDkzMDAsIDEwOTMwNSwgMTA5MzEwLCAxMDkzMTUsIDEwOTMyMCwgMTA5MzI1LCAxMDkzMzAsIDEwOTMzNSwgMTA5MzQwLCAKKyAgICAxMDkzNDUsIDEwOTM1MCwgMTA5MzU3LCAxMDkzNjIsIDEwOTM2NywgMTA5MzcyLCAxMDkzNzcsIDEwOTM4MiwgMTA5Mzg3LCAKKyAgICAxMDkzOTIsIDEwOTM5NywgMTA5NDAyLCAxMDk0MDcsIDEwOTQxMiwgMTA5NDE3LCAxMDk0MjIsIDEwOTQyNywgMTA5NDMyLCAKKyAgICAxMDk0MzcsIDEwOTQ0MiwgMTA5NDQ3LCAxMDk0NTQsIDEwOTQ1OSwgMTA5NDY0LCAxMDk0NjksIDEwOTQ3NCwgMTA5NDc5LCAKKyAgICAxMDk0ODQsIDEwOTQ4OSwgMTA5NDk1LCAxMDk1MDAsIDEwOTUwNSwgMTA5NTEwLCAxMDk1MTUsIDEwOTUyMCwgMTA5NTI1LCAKKyAgICAxMDk1MzAsIDEwOTUzNSwgMTA5NTQyLCAxMDk1NDksIDEwOTU1NCwgMTA5NTU5LCAxMDk1NjMsIDEwOTU2OCwgMTA5NTcyLCAKKyAgICAxMDk1NzYsIDEwOTU4MSwgMTA5NTg4LCAxMDk1OTMsIDEwOTU5OCwgMTA5NjA3LCAxMDk2MTIsIDEwOTYxNywgMTA5NjIyLCAKKyAgICAxMDk2MjcsIDEwOTYzNCwgMTA5NjQxLCAxMDk2NDYsIDEwOTY1MSwgMTA5NjU2LCAxMDk2NjEsIDEwOTY2OCwgMTA5NjczLCAKKyAgICAxMDk2NzgsIDEwOTY4MywgMTA5Njg4LCAxMDk2OTMsIDEwOTY5OCwgMTA5NzAzLCAxMDk3MDgsIDEwOTcxMywgMTA5NzE4LCAKKyAgICAxMDk3MjMsIDEwOTcyOCwgMTA5NzM1LCAxMDk3MzksIDEwOTc0NCwgMTA5NzQ5LCAxMDk3NTQsIDEwOTc1OSwgMTA5NzYzLCAKKyAgICAxMDk3NjgsIDEwOTc3MywgMTA5Nzc4LCAxMDk3ODMsIDEwOTc4OCwgMTA5NzkzLCAxMDk3OTgsIDEwOTgwMywgMTA5ODA4LCAKKyAgICAxMDk4MTQsIDEwOTgyMCwgMTA5ODI2LCAxMDk4MzIsIDEwOTgzOCwgMTA5ODQ0LCAxMDk4NTAsIDEwOTg1NiwgMTA5ODYyLCAKKyAgICAxMDk4NjgsIDEwOTg3NCwgMTA5ODgwLCAxMDk4ODUsIDEwOTg5MSwgMTA5ODk3LCAxMDk5MDMsIDEwOTkwOSwgMTA5OTE1LCAKKyAgICAxMDk5MjEsIDEwOTkyNywgMTA5OTMzLCAxMDk5MzksIDEwOTk0NSwgMTA5OTUxLCAxMDk5NTYsIDEwOTk2MiwgMTA5OTY4LCAKKyAgICAxMDk5NzQsIDEwOTk4MCwgMTA5OTg2LCAxMDk5OTIsIDEwOTk5OCwgMTEwMDA0LCAxMTAwMTAsIDExMDAxNiwgMTEwMDIyLCAKKyAgICAxMTAwMjgsIDExMDAzNCwgMTEwMDQwLCAxMTAwNDYsIDExMDA1MiwgMTEwMDU4LCAxMTAwNjQsIDExMDA3MCwgMTEwMDc2LCAKKyAgICAxMTAwODEsIDExMDA4NywgMTEwMDkzLCAxMTAwOTksIDExMDEwNSwgMTEwMTExLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMTAxMTIsIDExMDExNSwgMTEwMTE5LCAKLSAgICAxMTAxMjMsIDExMDEyNywgMTEwMTMwLCAxMTAxMzQsIDExMDEzOSwgMTEwMTQzLCAxMTAxNDcsIDExMDE1MSwgMTEwMTU1LCAKLSAgICAxMTAxNTksIDExMDE2NCwgMTEwMTY5LCAxMTAxNzMsIDExMDE3NywgMTEwMTgwLCAxMTAxODQsIDExMDE4OSwgMTEwMTk0LCAKLSAgICAxMTAxOTgsIDExMDIwMiwgMTEwMjA2LCAxMTAyMTAsIDExMDIxNCwgMTEwMjE4LCAxMTAyMjIsIDExMDIyNiwgMTEwMjMwLCAKLSAgICAxMTAyMzQsIDExMDIzNywgMTEwMjQxLCAxMTAyNDUsIDExMDI0OSwgMTEwMjUzLCAxMTAyNTcsIDExMDI2MSwgMTEwMjY3LCAKLSAgICAxMTAyNzAsIDExMDI3NCwgMTEwMjc4LCAxMTAyODIsIDExMDI4NiwgMTEwMjkwLCAxMTAyOTQsIDExMDI5OCwgMTEwMzAyLCAKLSAgICAxMTAzMDYsIDExMDMxMSwgMTEwMzE2LCAxMTAzMjIsIDExMDMyNiwgMTEwMzMwLCAxMTAzMzQsIDExMDMzOCwgMTEwMzQyLCAKLSAgICAxMTAzNDYsIDExMDM1MSwgMTEwMzU0LCAxMTAzNTgsIDExMDM2MiwgMTEwMzY2LCAxMTAzNzAsIDExMDM3NiwgMTEwMzgwLCAKLSAgICAxMTAzODQsIDExMDM4OCwgMTEwMzkyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMTAzOTYsIDExMDQwMCwgCi0gICAgMTEwNDA0LCAxMTA0MTAsIDExMDQxNiwgMTEwNDIwLCAxMTA0MjUsIDExMDQzMCwgMTEwNDM1LCAxMTA0NDAsIDExMDQ0NCwgCi0gICAgMTEwNDQ5LCAxMTA0NTQsIDExMDQ1OSwgMTEwNDYzLCAxMTA0NjgsIDExMDQ3MywgMTEwNDc4LCAxMTA0ODIsIDExMDQ4NywgCi0gICAgMTEwNDkyLCAxMTA0OTcsIDExMDUwMiwgMTEwNTA3LCAxMTA1MTIsIDExMDUxNywgMTEwNTIyLCAxMTA1MjYsIDExMDUzMSwgCi0gICAgMTEwNTM2LCAxMTA1NDEsIDExMDU0NiwgMTEwNTUxLCAxMTA1NTYsIDExMDU2MSwgMTEwNTY2LCAxMTA1NzEsIDExMDU3NiwgCi0gICAgMTEwNTgxLCAxMTA1ODgsIDExMDU5MywgMTEwNjAwLCAxMTA2MDUsIDExMDYxMCwgMTEwNjE1LCAxMTA2MjAsIDExMDYyNSwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTEwNjMwLCAxMTA2MzQsIDExMDY0MCwgCi0gICAgMTEwNjQzLCAxMTA2NDYsIDExMDY1MCwgMTEwNjU0LCAxMTA2NTgsIDExMDY2MiwgMTEwNjY2LCAxMTA2NzAsIDExMDY3NCwgCi0gICAgMTEwNjgwLCAxMTA2ODYsIDExMDY5MiwgMTEwNjk4LCAxMTA3MDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExMDExNywgMTEwMTIwLCAxMTAxMjQsIAorICAgIDExMDEyOCwgMTEwMTMyLCAxMTAxMzUsIDExMDEzOSwgMTEwMTQ0LCAxMTAxNDgsIDExMDE1MiwgMTEwMTU2LCAxMTAxNjAsIAorICAgIDExMDE2NCwgMTEwMTY5LCAxMTAxNzQsIDExMDE3OCwgMTEwMTgyLCAxMTAxODUsIDExMDE4OSwgMTEwMTk0LCAxMTAxOTksIAorICAgIDExMDIwMywgMTEwMjA3LCAxMTAyMTEsIDExMDIxNSwgMTEwMjE5LCAxMTAyMjMsIDExMDIyNywgMTEwMjMxLCAxMTAyMzUsIAorICAgIDExMDIzOSwgMTEwMjQyLCAxMTAyNDYsIDExMDI1MCwgMTEwMjU0LCAxMTAyNTgsIDExMDI2MiwgMTEwMjY2LCAxMTAyNzIsIAorICAgIDExMDI3NSwgMTEwMjc5LCAxMTAyODMsIDExMDI4NywgMTEwMjkxLCAxMTAyOTUsIDExMDI5OSwgMTEwMzAzLCAxMTAzMDcsIAorICAgIDExMDMxMSwgMTEwMzE2LCAxMTAzMjEsIDExMDMyNywgMTEwMzMxLCAxMTAzMzUsIDExMDMzOSwgMTEwMzQzLCAxMTAzNDcsIAorICAgIDExMDM1MSwgMTEwMzU2LCAxMTAzNTksIDExMDM2MywgMTEwMzY3LCAxMTAzNzEsIDExMDM3NSwgMTEwMzgxLCAxMTAzODUsIAorICAgIDExMDM4OSwgMTEwMzkzLCAxMTAzOTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExMDQwMSwgMTEwNDA1LCAKKyAgICAxMTA0MDksIDExMDQxNSwgMTEwNDIxLCAxMTA0MjUsIDExMDQzMCwgMTEwNDM1LCAxMTA0NDAsIDExMDQ0NSwgMTEwNDQ5LCAKKyAgICAxMTA0NTQsIDExMDQ1OSwgMTEwNDY0LCAxMTA0NjgsIDExMDQ3MywgMTEwNDc4LCAxMTA0ODMsIDExMDQ4NywgMTEwNDkyLCAKKyAgICAxMTA0OTcsIDExMDUwMiwgMTEwNTA3LCAxMTA1MTIsIDExMDUxNywgMTEwNTIyLCAxMTA1MjcsIDExMDUzMSwgMTEwNTM2LCAKKyAgICAxMTA1NDEsIDExMDU0NiwgMTEwNTUxLCAxMTA1NTYsIDExMDU2MSwgMTEwNTY2LCAxMTA1NzEsIDExMDU3NiwgMTEwNTgxLCAKKyAgICAxMTA1ODYsIDExMDU5MywgMTEwNTk4LCAxMTA2MDUsIDExMDYxMCwgMTEwNjE1LCAxMTA2MjAsIDExMDYyNSwgMTEwNjMwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMTA2MzUsIDExMDYzOSwgMTEwNjQ1LCAKKyAgICAxMTA2NDgsIDExMDY1MSwgMTEwNjU1LCAxMTA2NTksIDExMDY2MywgMTEwNjY3LCAxMTA2NzEsIDExMDY3NSwgMTEwNjc5LCAKKyAgICAxMTA2ODUsIDExMDY5MSwgMTEwNjk3LCAxMTA3MDMsIDExMDcwOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTEwNzEwLCAxMTA3MTUsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExMDcxNSwgMTEwNzIwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAxMTA3MjEsIDExMDcyNiwgMTEwNzMxLCAxMTA3MzYsIDExMDc0MywgMTEwNzUwLCAxMTA3NTcsIDExMDc2NCwgMTEwNzY5LCAKLSAgICAxMTA3NzQsIDExMDc3OSwgMTEwNzg0LCAxMTA3OTEsIDExMDc5NiwgMTEwODAzLCAxMTA4MTAsIDExMDgxNSwgMTEwODIwLCAKLSAgICAxMTA4MjUsIDExMDgzMiwgMTEwODM3LCAxMTA4NDIsIDExMDg0OSwgMTEwODU2LCAxMTA4NjEsIDExMDg2NiwgMTEwODcxLCAKLSAgICAxMTA4NzgsIDExMDg4NSwgMTEwODkyLCAxMTA4OTcsIDExMDkwMiwgMTEwOTA5LCAxMTA5MTYsIDExMDkyMywgMTEwOTMwLCAKLSAgICAxMTA5MzUsIDExMDk0MCwgMTEwOTQ1LCAxMTA5NTIsIDExMDk1NywgMTEwOTYyLCAxMTA5NjcsIDExMDk3NCwgMTEwOTgzLCAKLSAgICAxMTA5OTAsIDExMDk5NSwgMTExMDAwLCAxMTEwMDUsIDExMTAxMCwgMTExMDE1LCAxMTEwMjAsIDExMTAyOSwgMTExMDM2LCAKLSAgICAxMTEwNDEsIDExMTA0OCwgMTExMDU1LCAxMTEwNjAsIDExMTA2NSwgMTExMDcwLCAxMTEwNzcsIDExMTA4MiwgMTExMDg5LCAKLSAgICAxMTEwOTYsIDExMTEwMSwgMTExMTA2LCAxMTExMTEsIDExMTExOCwgMTExMTI1LCAxMTExMzAsIDExMTEzNSwgMTExMTQyLCAKLSAgICAxMTExNDksIDExMTE1NiwgMTExMTYxLCAxMTExNjYsIDExMTE3MSwgMTExMTc2LCAxMTExODMsIDExMTE5MiwgMTExMjAxLCAKLSAgICAxMTEyMDYsIDExMTIxMywgMTExMjIyLCAxMTEyMjcsIDExMTIzMiwgMTExMjM3LCAxMTEyNDIsIDExMTI0OSwgMTExMjU2LCAKLSAgICAxMTEyNjMsIDExMTI3MCwgMTExMjc1LCAxMTEyODAsIDExMTI4NSwgMTExMjkyLCAxMTEyOTksIDExMTMwNiwgMTExMzExLCAKLSAgICAxMTEzMTYsIDExMTMyMywgMTExMzI4LCAxMTEzMzUsIDExMTM0MCwgMTExMzQ3LCAxMTEzNTIsIDExMTM1OSwgMTExMzY2LCAKLSAgICAxMTEzNzEsIDExMTM3NiwgMTExMzgxLCAxMTEzODYsIDExMTM5MSwgMTExMzk2LCAxMTE0MDEsIDExMTQwNiwgMTExNDExLCAKLSAgICAxMTE0MTgsIDExMTQyNSwgMTExNDMyLCAxMTE0MzksIDExMTQ0NiwgMTExNDU1LCAxMTE0NjAsIDExMTQ2NSwgMTExNDcyLCAKLSAgICAxMTE0NzksIDExMTQ4NCwgMTExNDkxLCAxMTE0OTgsIDExMTUwNSwgMTExNTEyLCAxMTE1MTksIDExMTUyNiwgMTExNTMxLCAKLSAgICAxMTE1MzYsIDExMTU0MSwgMTExNTQ2LCAxMTE1NTEsIDExMTU2MCwgMTExNTY5LCAxMTE1NzgsIDExMTU4NywgMTExNTk2LCAKLSAgICAxMTE2MDUsIDExMTYxNCwgMTExNjIzLCAxMTE2MjgsIDExMTYzOSwgMTExNjUwLCAxMTE2NTksIDExMTY2NCwgMTExNjY5LCAKLSAgICAxMTE2NzQsIDExMTY3OSwgMTExNjg4LCAxMTE2OTUsIDExMTcwMiwgMTExNzA5LCAxMTE3MTYsIDExMTcyMywgMTExNzMwLCAKLSAgICAxMTE3MzksIDExMTc0OCwgMTExNzU5LCAxMTE3NjgsIDExMTc3OSwgMTExNzg4LCAxMTE3OTUsIDExMTgwNCwgMTExODE1LCAKLSAgICAxMTE4MjQsIDExMTgzMywgMTExODQyLCAxMTE4NTEsIDExMTg1OCwgMTExODY1LCAxMTE4NzIsIDExMTg4MSwgMTExODkwLCAKLSAgICAxMTE5MDEsIDExMTkxMCwgMTExOTE5LCAxMTE5MzAsIDExMTkzNSwgMTExOTQwLCAxMTE5NTEsIDExMTk1OSwgMTExOTY4LCAKLSAgICAxMTE5NzcsIDExMTk4NiwgMTExOTk3LCAxMTIwMDYsIDExMjAxNSwgMTEyMDI2LCAxMTIwMzcsIDExMjA0OCwgMTEyMDU5LCAKLSAgICAxMTIwNzAsIDExMjA4MSwgMTEyMDg4LCAxMTIwOTUsIDExMjEwMiwgMTEyMTA5LCAxMTIxMjAsIDExMjEyOSwgMTEyMTM2LCAKLSAgICAxMTIxNDMsIDExMjE1MCwgMTEyMTYxLCAxMTIxNzIsIDExMjE4MywgMTEyMTk0LCAxMTIyMDUsIDExMjIxNiwgMTEyMjI3LCAKLSAgICAxMTIyMzgsIDExMjI0NSwgMTEyMjUyLCAxMTIyNjEsIDExMjI3MCwgMTEyMjc3LCAxMTIyODQsIDExMjI5MSwgMTEyMzAwLCAKLSAgICAxMTIzMDksIDExMjMxOCwgMTEyMzI1LCAxMTIzMzQsIDExMjM0MywgMTEyMzUyLCAxMTIzNTksIDExMjM2NiwgMTEyMzcxLCAKLSAgICAxMTIzNzcsIDExMjM4NCwgMTEyMzkxLCAxMTIzOTgsIDExMjQwNSwgMTEyNDEyLCAxMTI0MTksIDExMjQyOCwgMTEyNDM3LCAKLSAgICAxMTI0NDYsIDExMjQ1NSwgMTEyNDYyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMTI0NzEsIDExMjQ3NywgCi0gICAgMTEyNDgyLCAxMTI0ODcsIDExMjQ5NCwgMTEyNTAwLCAxMTI1MDYsIDExMjUxMiwgMTEyNTE4LCAxMTI1MjQsIDExMjUzMCwgCi0gICAgMTEyNTM2LCAxMTI1NDAsIDExMjU0NCwgMTEyNTUwLCAxMTI1NTYsIDExMjU2MiwgMTEyNTY2LCAxMTI1NzEsIDExMjU3NiwgCi0gICAgMTEyNTgwLCAxMTI1ODQsIDExMjU4NywgMTEyNTkzLCAxMTI1OTksIDExMjYwNSwgMTEyNjExLCAxMTI2MTcsIDExMjYyMywgCi0gICAgMTEyNjI5LCAxMTI2MzUsIDExMjY0MSwgMTEyNjUxLCAxMTI2NjEsIDExMjY2NywgMTEyNjczLCAxMTI2ODMsIDExMjY5MywgCi0gICAgMTEyNjk5LCAwLCAwLCAxMTI3MDUsIDExMjcxMywgMTEyNzE4LCAxMTI3MjMsIDExMjcyOSwgMTEyNzM1LCAxMTI3NDEsIAotICAgIDExMjc0NywgMTEyNzUzLCAxMTI3NTksIDExMjc2NiwgMTEyNzczLCAxMTI3NzksIDExMjc4NSwgMTEyNzkxLCAxMTI3OTcsIAotICAgIDExMjgwMywgMTEyODA5LCAxMTI4MTUsIDExMjgyMSwgMTEyODI2LCAxMTI4MzIsIDExMjgzOCwgMTEyODQ0LCAxMTI4NTAsIAotICAgIDExMjg1NiwgMTEyODY1LCAxMTI4NzEsIDExMjg3NiwgMTEyODg0LCAxMTI4OTEsIDExMjg5OCwgMTEyOTA3LCAxMTI5MTYsIAotICAgIDExMjkyNSwgMTEyOTM0LCAxMTI5NDMsIDExMjk1MiwgMTEyOTYxLCAxMTI5NzAsIDExMjk4MCwgMTEyOTkwLCAxMTI5OTgsIAotICAgIDExMzAwNiwgMTEzMDE1LCAxMTMwMjQsIDExMzAzMCwgMTEzMDM2LCAxMTMwNDIsIDExMzA0OCwgMTEzMDU2LCAxMTMwNjQsIAotICAgIDExMzA2OCwgMTEzMDc0LCAxMTMwNzksIDExMzA4NSwgMTEzMDkxLCAxMTMwOTcsIDExMzEwMywgMTEzMTA5LCAxMTMxMTgsIAotICAgIDExMzEyMywgMTEzMTMwLCAxMTMxMzUsIDExMzE0MCwgMTEzMTQ1LCAxMTMxNTEsIDExMzE1NywgMTEzMTYzLCAxMTMxNzAsIAotICAgIDExMzE3NSwgMTEzMTgwLCAxMTMxODUsIDExMzE5MCwgMTEzMTk1LCAxMTMyMDEsIDExMzIwNywgMTEzMjEzLCAxMTMyMTksIAotICAgIDExMzIyNSwgMTEzMjMxLCAxMTMyMzcsIDExMzI0MywgMTEzMjQ4LCAxMTMyNTMsIDExMzI1OCwgMTEzMjYzLCAxMTMyNjgsIAotICAgIDExMzI3MywgMTEzMjc4LCAxMTMyODMsIDExMzI4OSwgMTEzMjk1LCAxMTMzMDAsIDExMzMwNSwgMTEzMzEwLCAxMTMzMTUsIAotICAgIDExMzMyMCwgMTEzMzI2LCAxMTMzMzMsIDExMzMzNywgMTEzMzQxLCAxMTMzNDUsIDExMzM0OSwgMTEzMzUzLCAxMTMzNTcsIAotICAgIDExMzM2MSwgMTEzMzY1LCAxMTMzNzMsIDExMzM4MywgMTEzMzg3LCAxMTMzOTEsIDExMzM5NywgMTEzNDAzLCAxMTM0MDksIAotICAgIDExMzQxNSwgMTEzNDIxLCAxMTM0MjcsIDExMzQzMywgMTEzNDM5LCAxMTM0NDUsIDExMzQ1MSwgMTEzNDU3LCAxMTM0NjMsIAotICAgIDExMzQ2OSwgMTEzNDc1LCAxMTM0NzksIDExMzQ4MywgMTEzNDkwLCAxMTM0OTYsIDExMzUwMiwgMTEzNTA4LCAxMTM1MTMsIAotICAgIDExMzUyMCwgMTEzNTI1LCAxMTM1MzEsIDExMzUzNywgMTEzNTQzLCAxMTM1NDksIDExMzU1NCwgMTEzNTU4LCAxMTM1NjQsIAotICAgIDExMzU2OCwgMTEzNTcyLCAxMTM1NzYsIDExMzU4MiwgMTEzNTg4LCAxMTM1OTIsIDExMzU5OCwgMTEzNjA0LCAxMTM2MTAsIAotICAgIDExMzYxNiwgMTEzNjIyLCAxMTM2MzAsIDExMzYzOCwgMTEzNjQ0LCAxMTM2NTAsIDExMzY1NiwgMTEzNjYyLCAxMTM2NzQsIAotICAgIDExMzY4NiwgMTEzNzAwLCAxMTM3MTIsIDExMzcyNCwgMTEzNzM4LCAxMTM3NTIsIDExMzc2NiwgMTEzNzcwLCAxMTM3NzgsIAotICAgIDExMzc4NiwgMTEzNzkxLCAxMTM3OTUsIDExMzc5OSwgMTEzODAzLCAxMTM4MDcsIDExMzgxMSwgMTEzODE1LCAxMTM4MTksIAotICAgIDExMzgyNSwgMTEzODMxLCAxMTM4MzcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExMzg0MywgMTEzODQ5LCAKLSAgICAxMTM4NTUsIDExMzg2MSwgMTEzODY3LCAxMTM4NzMsIDExMzg3OSwgMTEzODg1LCAxMTM4OTEsIDExMzg5NywgMTEzOTAzLCAKLSAgICAxMTM5MDksIDExMzkxNSwgMTEzOTIxLCAxMTM5MjcsIDExMzkzMywgMTEzOTM5LCAxMTM5NDUsIDExMzk1MSwgMTEzOTU3LCAKLSAgICAxMTM5NjMsIDExMzk2OSwgMTEzOTc1LCAxMTM5ODEsIDExMzk4NywgMTEzOTkzLCAxMTM5OTksIDExNDAwNSwgMTE0MDExLCAKLSAgICAxMTQwMTcsIDExNDAyMywgMTE0MDI5LCAxMTQwMzUsIDExNDA0MSwgMTE0MDQ3LCAxMTQwNTMsIDExNDA1OSwgMTE0MDY1LCAKLSAgICAxMTQwNzEsIDExNDA3NywgMTE0MDgzLCAxMTQwODksIDExNDA5NSwgMTE0MTAxLCAxMTQxMDcsIDExNDExMywgMTE0MTE5LCAKLSAgICAxMTQxMjUsIDExNDEzMSwgMTE0MTM3LCAxMTQxNDMsIDExNDE0OSwgMTE0MTU1LCAxMTQxNjEsIDExNDE2NywgMTE0MTczLCAKLSAgICAxMTQxNzksIDExNDE4NSwgMTE0MTkxLCAxMTQxOTcsIDExNDIwMywgMTE0MjA5LCAxMTQyMTUsIDExNDIyMSwgMTE0MjI3LCAKLSAgICAxMTQyMzMsIDExNDIzOSwgMTE0MjQ0LCAxMTQyNDksIDExNDI1NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMTEwNzI2LCAxMTA3MzEsIDExMDczNiwgMTEwNzQxLCAxMTA3NDgsIDExMDc1NSwgMTEwNzYyLCAxMTA3NjksIDExMDc3NCwgCisgICAgMTEwNzc5LCAxMTA3ODQsIDExMDc4OSwgMTEwNzk2LCAxMTA4MDEsIDExMDgwOCwgMTEwODE1LCAxMTA4MjAsIDExMDgyNSwgCisgICAgMTEwODMwLCAxMTA4MzcsIDExMDg0MiwgMTEwODQ3LCAxMTA4NTQsIDExMDg2MSwgMTEwODY2LCAxMTA4NzEsIDExMDg3NiwgCisgICAgMTEwODgzLCAxMTA4OTAsIDExMDg5NywgMTEwOTAyLCAxMTA5MDcsIDExMDkxNCwgMTEwOTIxLCAxMTA5MjgsIDExMDkzNSwgCisgICAgMTEwOTQwLCAxMTA5NDUsIDExMDk1MCwgMTEwOTU3LCAxMTA5NjIsIDExMDk2NywgMTEwOTcyLCAxMTA5NzksIDExMDk4OCwgCisgICAgMTEwOTk1LCAxMTEwMDAsIDExMTAwNSwgMTExMDEwLCAxMTEwMTUsIDExMTAyMCwgMTExMDI1LCAxMTEwMzQsIDExMTA0MSwgCisgICAgMTExMDQ2LCAxMTEwNTMsIDExMTA2MCwgMTExMDY1LCAxMTEwNzAsIDExMTA3NSwgMTExMDgyLCAxMTEwODcsIDExMTA5NCwgCisgICAgMTExMTAxLCAxMTExMDYsIDExMTExMSwgMTExMTE2LCAxMTExMjMsIDExMTEzMCwgMTExMTM1LCAxMTExNDAsIDExMTE0NywgCisgICAgMTExMTU0LCAxMTExNjEsIDExMTE2NiwgMTExMTcxLCAxMTExNzYsIDExMTE4MSwgMTExMTg4LCAxMTExOTcsIDExMTIwNiwgCisgICAgMTExMjExLCAxMTEyMTgsIDExMTIyNywgMTExMjMyLCAxMTEyMzcsIDExMTI0MiwgMTExMjQ3LCAxMTEyNTQsIDExMTI2MSwgCisgICAgMTExMjY4LCAxMTEyNzUsIDExMTI4MCwgMTExMjg1LCAxMTEyOTAsIDExMTI5NywgMTExMzA0LCAxMTEzMTEsIDExMTMxNiwgCisgICAgMTExMzIxLCAxMTEzMjgsIDExMTMzMywgMTExMzQwLCAxMTEzNDUsIDExMTM1MiwgMTExMzU3LCAxMTEzNjQsIDExMTM3MSwgCisgICAgMTExMzc2LCAxMTEzODEsIDExMTM4NiwgMTExMzkxLCAxMTEzOTYsIDExMTQwMSwgMTExNDA2LCAxMTE0MTEsIDExMTQxNiwgCisgICAgMTExNDIzLCAxMTE0MzAsIDExMTQzNywgMTExNDQ0LCAxMTE0NTEsIDExMTQ2MCwgMTExNDY1LCAxMTE0NzAsIDExMTQ3NywgCisgICAgMTExNDg0LCAxMTE0ODksIDExMTQ5NiwgMTExNTAzLCAxMTE1MTAsIDExMTUxNywgMTExNTI0LCAxMTE1MzEsIDExMTUzNiwgCisgICAgMTExNTQxLCAxMTE1NDYsIDExMTU1MSwgMTExNTU2LCAxMTE1NjUsIDExMTU3NCwgMTExNTgzLCAxMTE1OTIsIDExMTYwMSwgCisgICAgMTExNjEwLCAxMTE2MTksIDExMTYyOCwgMTExNjMzLCAxMTE2NDQsIDExMTY1NSwgMTExNjY0LCAxMTE2NjksIDExMTY3NCwgCisgICAgMTExNjc5LCAxMTE2ODQsIDExMTY5MywgMTExNzAwLCAxMTE3MDcsIDExMTcxNCwgMTExNzIxLCAxMTE3MjgsIDExMTczNSwgCisgICAgMTExNzQ0LCAxMTE3NTMsIDExMTc2NCwgMTExNzczLCAxMTE3ODQsIDExMTc5MywgMTExODAwLCAxMTE4MDksIDExMTgyMCwgCisgICAgMTExODI5LCAxMTE4MzgsIDExMTg0NywgMTExODU2LCAxMTE4NjMsIDExMTg3MCwgMTExODc3LCAxMTE4ODYsIDExMTg5NSwgCisgICAgMTExOTA2LCAxMTE5MTUsIDExMTkyNCwgMTExOTM1LCAxMTE5NDAsIDExMTk0NSwgMTExOTU2LCAxMTE5NjQsIDExMTk3MywgCisgICAgMTExOTgyLCAxMTE5OTEsIDExMjAwMiwgMTEyMDExLCAxMTIwMjAsIDExMjAzMSwgMTEyMDQyLCAxMTIwNTMsIDExMjA2NCwgCisgICAgMTEyMDc1LCAxMTIwODYsIDExMjA5MywgMTEyMTAwLCAxMTIxMDcsIDExMjExNCwgMTEyMTI1LCAxMTIxMzQsIDExMjE0MSwgCisgICAgMTEyMTQ4LCAxMTIxNTUsIDExMjE2NiwgMTEyMTc3LCAxMTIxODgsIDExMjE5OSwgMTEyMjEwLCAxMTIyMjEsIDExMjIzMiwgCisgICAgMTEyMjQzLCAxMTIyNTAsIDExMjI1NywgMTEyMjY2LCAxMTIyNzUsIDExMjI4MiwgMTEyMjg5LCAxMTIyOTYsIDExMjMwNSwgCisgICAgMTEyMzE0LCAxMTIzMjMsIDExMjMzMCwgMTEyMzM5LCAxMTIzNDgsIDExMjM1NywgMTEyMzY0LCAxMTIzNzEsIDExMjM3NiwgCisgICAgMTEyMzgyLCAxMTIzODksIDExMjM5NiwgMTEyNDAzLCAxMTI0MTAsIDExMjQxNywgMTEyNDI0LCAxMTI0MzMsIDExMjQ0MiwgCisgICAgMTEyNDUxLCAxMTI0NjAsIDExMjQ2NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTEyNDc2LCAxMTI0ODIsIAorICAgIDExMjQ4NywgMTEyNDkyLCAxMTI0OTksIDExMjUwNSwgMTEyNTExLCAxMTI1MTcsIDExMjUyMywgMTEyNTI5LCAxMTI1MzUsIAorICAgIDExMjU0MSwgMTEyNTQ1LCAxMTI1NDksIDExMjU1NSwgMTEyNTYxLCAxMTI1NjcsIDExMjU3MSwgMTEyNTc2LCAxMTI1ODEsIAorICAgIDExMjU4NSwgMTEyNTg5LCAxMTI1OTIsIDExMjU5OCwgMTEyNjA0LCAxMTI2MTAsIDExMjYxNiwgMTEyNjIyLCAxMTI2MjgsIAorICAgIDExMjYzNCwgMTEyNjQwLCAxMTI2NDYsIDExMjY1NiwgMTEyNjY2LCAxMTI2NzIsIDExMjY3OCwgMTEyNjg4LCAxMTI2OTgsIAorICAgIDExMjcwNCwgMCwgMCwgMTEyNzEwLCAxMTI3MTgsIDExMjcyMywgMTEyNzI4LCAxMTI3MzQsIDExMjc0MCwgMTEyNzQ2LCAKKyAgICAxMTI3NTIsIDExMjc1OCwgMTEyNzY0LCAxMTI3NzEsIDExMjc3OCwgMTEyNzg0LCAxMTI3OTAsIDExMjc5NiwgMTEyODAyLCAKKyAgICAxMTI4MDgsIDExMjgxNCwgMTEyODIwLCAxMTI4MjYsIDExMjgzMSwgMTEyODM3LCAxMTI4NDMsIDExMjg0OSwgMTEyODU1LCAKKyAgICAxMTI4NjEsIDExMjg3MCwgMTEyODc2LCAxMTI4ODEsIDExMjg4OSwgMTEyODk2LCAxMTI5MDMsIDExMjkxMiwgMTEyOTIxLCAKKyAgICAxMTI5MzAsIDExMjkzOSwgMTEyOTQ4LCAxMTI5NTcsIDExMjk2NiwgMTEyOTc1LCAxMTI5ODUsIDExMjk5NSwgMTEzMDAzLCAKKyAgICAxMTMwMTEsIDExMzAyMCwgMTEzMDI5LCAxMTMwMzUsIDExMzA0MSwgMTEzMDQ3LCAxMTMwNTMsIDExMzA2MSwgMTEzMDY5LCAKKyAgICAxMTMwNzMsIDExMzA3OSwgMTEzMDg0LCAxMTMwOTAsIDExMzA5NiwgMTEzMTAyLCAxMTMxMDgsIDExMzExNCwgMTEzMTIzLCAKKyAgICAxMTMxMjgsIDExMzEzNSwgMTEzMTQwLCAxMTMxNDUsIDExMzE1MCwgMTEzMTU2LCAxMTMxNjIsIDExMzE2OCwgMTEzMTc1LCAKKyAgICAxMTMxODAsIDExMzE4NSwgMTEzMTkwLCAxMTMxOTUsIDExMzIwMCwgMTEzMjA2LCAxMTMyMTIsIDExMzIxOCwgMTEzMjI0LCAKKyAgICAxMTMyMzAsIDExMzIzNiwgMTEzMjQyLCAxMTMyNDgsIDExMzI1MywgMTEzMjU4LCAxMTMyNjMsIDExMzI2OCwgMTEzMjczLCAKKyAgICAxMTMyNzgsIDExMzI4MywgMTEzMjg4LCAxMTMyOTQsIDExMzMwMCwgMTEzMzA1LCAxMTMzMTAsIDExMzMxNSwgMTEzMzIwLCAKKyAgICAxMTMzMjUsIDExMzMzMSwgMTEzMzM4LCAxMTMzNDIsIDExMzM0NiwgMTEzMzUwLCAxMTMzNTQsIDExMzM1OCwgMTEzMzYyLCAKKyAgICAxMTMzNjYsIDExMzM3MCwgMTEzMzc4LCAxMTMzODgsIDExMzM5MiwgMTEzMzk2LCAxMTM0MDIsIDExMzQwOCwgMTEzNDE0LCAKKyAgICAxMTM0MjAsIDExMzQyNiwgMTEzNDMyLCAxMTM0MzgsIDExMzQ0NCwgMTEzNDUwLCAxMTM0NTYsIDExMzQ2MiwgMTEzNDY4LCAKKyAgICAxMTM0NzQsIDExMzQ4MCwgMTEzNDg0LCAxMTM0ODgsIDExMzQ5NSwgMTEzNTAxLCAxMTM1MDcsIDExMzUxMywgMTEzNTE4LCAKKyAgICAxMTM1MjUsIDExMzUzMCwgMTEzNTM2LCAxMTM1NDIsIDExMzU0OCwgMTEzNTU0LCAxMTM1NTksIDExMzU2MywgMTEzNTY5LCAKKyAgICAxMTM1NzMsIDExMzU3NywgMTEzNTgxLCAxMTM1ODcsIDExMzU5MywgMTEzNTk3LCAxMTM2MDMsIDExMzYwOSwgMTEzNjE1LCAKKyAgICAxMTM2MjEsIDExMzYyNywgMTEzNjM1LCAxMTM2NDMsIDExMzY0OSwgMTEzNjU1LCAxMTM2NjEsIDExMzY2NywgMTEzNjc5LCAKKyAgICAxMTM2OTEsIDExMzcwNSwgMTEzNzE3LCAxMTM3MjksIDExMzc0MywgMTEzNzU3LCAxMTM3NzEsIDExMzc3NSwgMTEzNzgzLCAKKyAgICAxMTM3OTEsIDExMzc5NiwgMTEzODAwLCAxMTM4MDQsIDExMzgwOCwgMTEzODEyLCAxMTM4MTYsIDExMzgyMCwgMTEzODI0LCAKKyAgICAxMTM4MzAsIDExMzgzNiwgMTEzODQyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMTM4NDgsIDExMzg1NCwgCisgICAgMTEzODYwLCAxMTM4NjYsIDExMzg3MiwgMTEzODc4LCAxMTM4ODQsIDExMzg5MCwgMTEzODk2LCAxMTM5MDIsIDExMzkwOCwgCisgICAgMTEzOTE0LCAxMTM5MjAsIDExMzkyNiwgMTEzOTMyLCAxMTM5MzgsIDExMzk0NCwgMTEzOTUwLCAxMTM5NTYsIDExMzk2MiwgCisgICAgMTEzOTY4LCAxMTM5NzQsIDExMzk4MCwgMTEzOTg2LCAxMTM5OTIsIDExMzk5OCwgMTE0MDA0LCAxMTQwMTAsIDExNDAxNiwgCisgICAgMTE0MDIyLCAxMTQwMjgsIDExNDAzNCwgMTE0MDQwLCAxMTQwNDYsIDExNDA1MiwgMTE0MDU4LCAxMTQwNjQsIDExNDA3MCwgCisgICAgMTE0MDc2LCAxMTQwODIsIDExNDA4OCwgMTE0MDk0LCAxMTQxMDAsIDExNDEwNiwgMTE0MTEyLCAxMTQxMTgsIDExNDEyNCwgCisgICAgMTE0MTMwLCAxMTQxMzYsIDExNDE0MiwgMTE0MTQ4LCAxMTQxNTQsIDExNDE2MCwgMTE0MTY2LCAxMTQxNzIsIDExNDE3OCwgCisgICAgMTE0MTg0LCAxMTQxOTAsIDExNDE5NiwgMTE0MjAyLCAxMTQyMDgsIDExNDIxNCwgMTE0MjIwLCAxMTQyMjYsIDExNDIzMiwgCisgICAgMTE0MjM4LCAxMTQyNDQsIDExNDI0OSwgMTE0MjU0LCAxMTQyNTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDExNDI1OCwgMTE0MjYzLCAxMTQyNzAsIDExNDI3NywgMTE0Mjg0LCAxMTQyOTEsIDExNDI5NiwgMTE0MzAwLCAxMTQzMDYsIAotICAgIDExNDMxMCwgMTE0MzE0LCAxMTQzMjAsIDExNDMyNCwgMTE0MzI4LCAxMTQzMzIsIDExNDMzOCwgMTE0MzQ1LCAxMTQzNDksIAotICAgIDExNDM1MywgMTE0MzU3LCAxMTQzNjEsIDExNDM2NSwgMTE0MzY5LCAxMTQzNzUsIDExNDM3OSwgMTE0MzgzLCAxMTQzODcsIAotICAgIDExNDM5MSwgMTE0Mzk1LCAxMTQzOTksIDExNDQwMywgMTE0NDA3LCAxMTQ0MTEsIDExNDQxNSwgMTE0NDE5LCAxMTQ0MjMsIAotICAgIDExNDQyOCwgMTE0NDMyLCAxMTQ0MzYsIDExNDQ0MCwgMTE0NDQ0LCAxMTQ0NDgsIDExNDQ1MiwgMTE0NDU2LCAxMTQ0NjAsIAotICAgIDExNDQ2NCwgMTE0NDcxLCAxMTQ0NzUsIDExNDQ4MywgMTE0NDg3LCAxMTQ0OTEsIDExNDQ5NSwgMTE0NDk5LCAxMTQ1MDMsIAotICAgIDExNDUwNywgMTE0NTExLCAxMTQ1MTgsIDExNDUyMiwgMTE0NTI2LCAxMTQ1MzAsIDExNDUzNCwgMTE0NTM4LCAxMTQ1NDQsIAotICAgIDExNDU0OCwgMTE0NTU0LCAxMTQ1NTgsIDExNDU2MiwgMTE0NTY2LCAxMTQ1NzAsIDExNDU3NCwgMTE0NTc4LCAxMTQ1ODIsIAotICAgIDExNDU4NiwgMTE0NTkwLCAxMTQ1OTQsIDExNDU5OCwgMTE0NjAyLCAxMTQ2MDYsIDExNDYxMCwgMTE0NjE0LCAxMTQ2MTgsIAotICAgIDExNDYyMiwgMTE0NjI2LCAxMTQ2MzAsIDExNDYzOCwgMTE0NjQyLCAxMTQ2NDYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDExNDY1MCwgMTE0NjU4LCAxMTQ2NjYsIDExNDY3NCwgMTE0NjgyLCAxMTQ2OTAsIDExNDY5OCwgMTE0NzA2LCAKLSAgICAxMTQ3MTQsIDExNDcyMiwgMTE0NzMwLCAxMTQ3MzgsIDExNDc0NiwgMTE0NzU0LCAxMTQ3NjIsIDExNDc3MCwgMTE0Nzc4LCAKLSAgICAxMTQ3ODYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExNDc5NCwgMTE0Nzk4LCAxMTQ4MDMsIAotICAgIDExNDgwOCwgMTE0ODEzLCAxMTQ4MTcsIDExNDgyMiwgMTE0ODI3LCAxMTQ4MzIsIDExNDgzNiwgMTE0ODQxLCAxMTQ4NDYsIAotICAgIDExNDg1MCwgMTE0ODU0LCAxMTQ4NTksIDExNDg2MywgMTE0ODY4LCAxMTQ4NzMsIDExNDg3NywgMTE0ODgyLCAxMTQ4ODcsIAotICAgIDExNDg5MSwgMTE0ODk2LCAxMTQ5MDEsIDExNDkwNiwgMTE0OTExLCAxMTQ5MTYsIDExNDkyMCwgMTE0OTI1LCAxMTQ5MzAsIAotICAgIDExNDkzNSwgMTE0OTM5LCAxMTQ5NDQsIDExNDk0OSwgMTE0OTU0LCAxMTQ5NTgsIDExNDk2MywgMTE0OTY4LCAxMTQ5NzIsIAotICAgIDExNDk3NiwgMTE0OTgxLCAxMTQ5ODUsIDExNDk5MCwgMTE0OTk1LCAxMTQ5OTksIDExNTAwNCwgMTE1MDA5LCAxMTUwMTMsIAotICAgIDExNTAxOCwgMTE1MDIzLCAxMTUwMjgsIDExNTAzMywgMTE1MDM4LCAxMTUwNDIsIDExNTA0NywgMTE1MDUyLCAxMTUwNTcsIAotICAgIDExNTA2MSwgMTE1MDY2LCAxMTUwNzEsIDExNTA3NiwgMTE1MDgwLCAxMTUwODUsIDExNTA5MCwgMTE1MDk0LCAxMTUwOTgsIAotICAgIDExNTEwMywgMTE1MTA3LCAxMTUxMTIsIDExNTExNywgMTE1MTIxLCAxMTUxMjYsIDExNTEzMSwgMTE1MTM1LCAxMTUxNDAsIAotICAgIDExNTE0NSwgMTE1MTUwLCAxMTUxNTUsIDExNTE2MCwgMTE1MTY0LCAxMTUxNjksIDExNTE3NCwgMTE1MTc5LCAxMTUxODMsIAotICAgIDExNTE4OCwgMCwgMTE1MTkzLCAxMTUxOTcsIDExNTIwMiwgMTE1MjA3LCAxMTUyMTEsIDExNTIxNSwgMTE1MjIwLCAKLSAgICAxMTUyMjQsIDExNTIyOSwgMTE1MjM0LCAxMTUyMzgsIDExNTI0MywgMTE1MjQ4LCAxMTUyNTIsIDExNTI1NywgMTE1MjYyLCAKLSAgICAxMTUyNjcsIDExNTI3MiwgMTE1Mjc3LCAxMTUyODIsIDExNTI4OCwgMTE1Mjk0LCAxMTUzMDAsIDExNTMwNSwgMTE1MzExLCAKLSAgICAxMTUzMTcsIDExNTMyMywgMTE1MzI4LCAxMTUzMzQsIDExNTM0MCwgMTE1MzQ1LCAxMTUzNTAsIDExNTM1NiwgMTE1MzYxLCAKLSAgICAxMTUzNjcsIDExNTM3MywgMTE1Mzc4LCAxMTUzODQsIDExNTM5MCwgMTE1Mzk1LCAxMTU0MDEsIDExNTQwNywgMTE1NDEzLCAKLSAgICAxMTU0MTksIDExNTQyNSwgMTE1NDMwLCAxMTU0MzYsIDExNTQ0MiwgMTE1NDQ4LCAxMTU0NTMsIDExNTQ1OSwgMTE1NDY1LCAKLSAgICAxMTU0NzEsIDExNTQ3NiwgMTE1NDgyLCAxMTU0ODgsIDExNTQ5MywgMTE1NDk4LCAxMTU1MDQsIDExNTUwOSwgMTE1NTE1LCAKLSAgICAxMTU1MjEsIDExNTUyNiwgMTE1NTMyLCAxMTU1MzgsIDExNTU0MywgMTE1NTQ5LCAxMTU1NTUsIDExNTU2MSwgMTE1NTY3LCAKLSAgICAxMTU1NzMsIDAsIDExNTU3NywgMTE1NTgyLCAwLCAwLCAxMTU1ODcsIDAsIDAsIDExNTU5MiwgMTE1NTk3LCAwLCAwLCAKLSAgICAxMTU2MDIsIDExNTYwNywgMTE1NjExLCAxMTU2MTYsIDAsIDExNTYyMSwgMTE1NjI2LCAxMTU2MzEsIDExNTYzNSwgCi0gICAgMTE1NjQwLCAxMTU2NDUsIDExNTY1MCwgMTE1NjU1LCAxMTU2NjAsIDExNTY2NCwgMTE1NjY5LCAxMTU2NzQsIDAsIAotICAgIDExNTY3OSwgMCwgMTE1Njg0LCAxMTU2ODksIDExNTY5MywgMTE1Njk4LCAxMTU3MDMsIDExNTcwNywgMTE1NzExLCAwLCAKLSAgICAxMTU3MTYsIDExNTcyMSwgMTE1NzI2LCAxMTU3MzAsIDExNTczNSwgMTE1NzQwLCAxMTU3NDQsIDExNTc0OSwgMTE1NzU0LCAKLSAgICAxMTU3NTksIDExNTc2NCwgMTE1NzY5LCAxMTU3NzQsIDExNTc4MCwgMTE1Nzg2LCAxMTU3OTIsIDExNTc5NywgMTE1ODAzLCAKLSAgICAxMTU4MDksIDExNTgxNSwgMTE1ODIwLCAxMTU4MjYsIDExNTgzMiwgMTE1ODM3LCAxMTU4NDIsIDExNTg0OCwgMTE1ODUzLCAKLSAgICAxMTU4NTksIDExNTg2NSwgMTE1ODcwLCAxMTU4NzYsIDExNTg4MiwgMTE1ODg3LCAxMTU4OTMsIDExNTg5OSwgMTE1OTA1LCAKLSAgICAxMTU5MTEsIDExNTkxNywgMTE1OTIyLCAxMTU5MjgsIDExNTkzNCwgMTE1OTQwLCAxMTU5NDUsIDExNTk1MSwgMTE1OTU3LCAKLSAgICAxMTU5NjMsIDExNTk2OCwgMTE1OTc0LCAxMTU5ODAsIDExNTk4NSwgMTE1OTkwLCAxMTU5OTYsIDExNjAwMSwgMTE2MDA3LCAKLSAgICAxMTYwMTMsIDExNjAxOCwgMTE2MDI0LCAxMTYwMzAsIDExNjAzNSwgMTE2MDQxLCAxMTYwNDcsIDExNjA1MywgMTE2MDU5LCAKLSAgICAxMTYwNjUsIDExNjA2OSwgMCwgMTE2MDc0LCAxMTYwNzksIDExNjA4MywgMTE2MDg4LCAwLCAwLCAxMTYwOTMsIDExNjA5OCwgCi0gICAgMTE2MTAzLCAxMTYxMDcsIDExNjExMSwgMTE2MTE2LCAxMTYxMjAsIDExNjEyNSwgMCwgMTE2MTMwLCAxMTYxMzUsIAotICAgIDExNjE0MCwgMTE2MTQ0LCAxMTYxNDksIDExNjE1NCwgMTE2MTU5LCAwLCAxMTYxNjQsIDExNjE2OCwgMTE2MTczLCAKLSAgICAxMTYxNzgsIDExNjE4MywgMTE2MTg3LCAxMTYxOTIsIDExNjE5NywgMTE2MjAyLCAxMTYyMDYsIDExNjIxMSwgMTE2MjE2LCAKLSAgICAxMTYyMjAsIDExNjIyNCwgMTE2MjI5LCAxMTYyMzMsIDExNjIzOCwgMTE2MjQzLCAxMTYyNDcsIDExNjI1MiwgMTE2MjU3LCAKLSAgICAxMTYyNjEsIDExNjI2NiwgMTE2MjcxLCAxMTYyNzYsIDExNjI4MSwgMTE2Mjg2LCAxMTYyOTAsIDAsIDExNjI5NSwgCi0gICAgMTE2MzAwLCAxMTYzMDQsIDExNjMwOSwgMCwgMTE2MzE0LCAxMTYzMTgsIDExNjMyMywgMTE2MzI4LCAxMTYzMzIsIDAsIAotICAgIDExNjMzNiwgMCwgMCwgMCwgMTE2MzQwLCAxMTYzNDUsIDExNjM1MCwgMTE2MzU0LCAxMTYzNTksIDExNjM2NCwgMTE2MzY5LCAKLSAgICAwLCAxMTYzNzQsIDExNjM3OCwgMTE2MzgzLCAxMTYzODgsIDExNjM5MywgMTE2Mzk3LCAxMTY0MDIsIDExNjQwNywgCi0gICAgMTE2NDEyLCAxMTY0MTYsIDExNjQyMSwgMTE2NDI2LCAxMTY0MzAsIDExNjQzNCwgMTE2NDM5LCAxMTY0NDMsIDExNjQ0OCwgCi0gICAgMTE2NDUzLCAxMTY0NTcsIDExNjQ2MiwgMTE2NDY3LCAxMTY0NzEsIDExNjQ3NiwgMTE2NDgxLCAxMTY0ODYsIDExNjQ5MSwgCi0gICAgMTE2NDk2LCAxMTY1MDEsIDExNjUwNywgMTE2NTEzLCAxMTY1MTksIDExNjUyNCwgMTE2NTMwLCAxMTY1MzYsIDExNjU0MiwgCi0gICAgMTE2NTQ3LCAxMTY1NTMsIDExNjU1OSwgMTE2NTY0LCAxMTY1NjksIDExNjU3NSwgMTE2NTgwLCAxMTY1ODYsIDExNjU5MiwgCi0gICAgMTE2NTk3LCAxMTY2MDMsIDExNjYwOSwgMTE2NjE0LCAxMTY2MjAsIDExNjYyNiwgMTE2NjMyLCAxMTY2MzgsIDExNjY0NCwgCi0gICAgMTE2NjQ5LCAxMTY2NTUsIDExNjY2MSwgMTE2NjY3LCAxMTY2NzIsIDExNjY3OCwgMTE2Njg0LCAxMTY2OTAsIDExNjY5NSwgCi0gICAgMTE2NzAxLCAxMTY3MDcsIDExNjcxMiwgMTE2NzE3LCAxMTY3MjMsIDExNjcyOCwgMTE2NzM0LCAxMTY3NDAsIDExNjc0NSwgCi0gICAgMTE2NzUxLCAxMTY3NTcsIDExNjc2MiwgMTE2NzY4LCAxMTY3NzQsIDExNjc4MCwgMTE2Nzg2LCAxMTY3OTIsIDExNjc5NiwgCi0gICAgMTE2ODAxLCAxMTY4MDYsIDExNjgxMSwgMTE2ODE1LCAxMTY4MjAsIDExNjgyNSwgMTE2ODMwLCAxMTY4MzQsIDExNjgzOSwgCi0gICAgMTE2ODQ0LCAxMTY4NDgsIDExNjg1MiwgMTE2ODU3LCAxMTY4NjEsIDExNjg2NiwgMTE2ODcxLCAxMTY4NzUsIDExNjg4MCwgCi0gICAgMTE2ODg1LCAxMTY4ODksIDExNjg5NCwgMTE2ODk5LCAxMTY5MDQsIDExNjkwOSwgMTE2OTE0LCAxMTY5MTgsIDExNjkyMywgCi0gICAgMTE2OTI4LCAxMTY5MzMsIDExNjkzNywgMTE2OTQyLCAxMTY5NDcsIDExNjk1MiwgMTE2OTU2LCAxMTY5NjEsIDExNjk2NiwgCi0gICAgMTE2OTcwLCAxMTY5NzQsIDExNjk3OSwgMTE2OTgzLCAxMTY5ODgsIDExNjk5MywgMTE2OTk3LCAxMTcwMDIsIDExNzAwNywgCi0gICAgMTE3MDExLCAxMTcwMTYsIDExNzAyMSwgMTE3MDI2LCAxMTcwMzEsIDExNzAzNiwgMTE3MDQxLCAxMTcwNDcsIDExNzA1MywgCi0gICAgMTE3MDU5LCAxMTcwNjQsIDExNzA3MCwgMTE3MDc2LCAxMTcwODIsIDExNzA4NywgMTE3MDkzLCAxMTcwOTksIDExNzEwNCwgCi0gICAgMTE3MTA5LCAxMTcxMTUsIDExNzEyMCwgMTE3MTI2LCAxMTcxMzIsIDExNzEzNywgMTE3MTQzLCAxMTcxNDksIDExNzE1NCwgCi0gICAgMTE3MTYwLCAxMTcxNjYsIDExNzE3MiwgMTE3MTc4LCAxMTcxODQsIDExNzE4OSwgMTE3MTk1LCAxMTcyMDEsIDExNzIwNywgCi0gICAgMTE3MjEyLCAxMTcyMTgsIDExNzIyNCwgMTE3MjMwLCAxMTcyMzUsIDExNzI0MSwgMTE3MjQ3LCAxMTcyNTIsIDExNzI1NywgCi0gICAgMTE3MjYzLCAxMTcyNjgsIDExNzI3NCwgMTE3MjgwLCAxMTcyODUsIDExNzI5MSwgMTE3Mjk3LCAxMTczMDIsIDExNzMwOCwgCi0gICAgMTE3MzE0LCAxMTczMjAsIDExNzMyNiwgMTE3MzMyLCAxMTczMzcsIDExNzM0MywgMTE3MzQ5LCAxMTczNTUsIDExNzM2MCwgCi0gICAgMTE3MzY2LCAxMTczNzIsIDExNzM3OCwgMTE3MzgzLCAxMTczODksIDExNzM5NSwgMTE3NDAwLCAxMTc0MDUsIDExNzQxMSwgCi0gICAgMTE3NDE2LCAxMTc0MjIsIDExNzQyOCwgMTE3NDMzLCAxMTc0MzksIDExNzQ0NSwgMTE3NDUwLCAxMTc0NTYsIDExNzQ2MiwgCi0gICAgMTE3NDY4LCAxMTc0NzQsIDExNzQ4MCwgMTE3NDg1LCAxMTc0OTEsIDExNzQ5NywgMTE3NTAzLCAxMTc1MDgsIDExNzUxNCwgCi0gICAgMTE3NTIwLCAxMTc1MjYsIDExNzUzMSwgMTE3NTM3LCAxMTc1NDMsIDExNzU0OCwgMTE3NTUzLCAxMTc1NTksIDExNzU2NCwgCi0gICAgMTE3NTcwLCAxMTc1NzYsIDExNzU4MSwgMTE3NTg3LCAxMTc1OTMsIDExNzU5OCwgMTE3NjA0LCAxMTc2MTAsIDExNzYxNiwgCi0gICAgMTE3NjIyLCAxMTc2MjgsIDExNzYzNCwgMTE3NjQxLCAxMTc2NDgsIDExNzY1NSwgMTE3NjYxLCAxMTc2NjgsIDExNzY3NSwgCi0gICAgMTE3NjgyLCAxMTc2ODgsIDExNzY5NSwgMTE3NzAyLCAxMTc3MDgsIDExNzcxNCwgMTE3NzIxLCAxMTc3MjcsIDExNzczNCwgCi0gICAgMTE3NzQxLCAxMTc3NDcsIDExNzc1NCwgMTE3NzYxLCAxMTc3NjcsIDExNzc3NCwgMTE3NzgxLCAxMTc3ODgsIDExNzc5NSwgCi0gICAgMTE3ODAyLCAxMTc4MDgsIDExNzgxNSwgMTE3ODIyLCAxMTc4MjksIDExNzgzNSwgMTE3ODQyLCAxMTc4NDksIDExNzg1NiwgCi0gICAgMTE3ODYyLCAxMTc4NjksIDExNzg3NiwgMTE3ODgyLCAxMTc4ODgsIDExNzg5NSwgMTE3OTAxLCAxMTc5MDgsIDExNzkxNSwgCi0gICAgMTE3OTIxLCAxMTc5MjgsIDExNzkzNSwgMTE3OTQxLCAxMTc5NDgsIDExNzk1NSwgMTE3OTYyLCAxMTc5NjksIDExNzk3NiwgCi0gICAgMTE3OTgxLCAxMTc5ODcsIDExNzk5MywgMTE3OTk5LCAxMTgwMDQsIDExODAxMCwgMTE4MDE2LCAxMTgwMjIsIDExODAyNywgCi0gICAgMTE4MDMzLCAxMTgwMzksIDExODA0NCwgMTE4MDQ5LCAxMTgwNTUsIDExODA2MCwgMTE4MDY2LCAxMTgwNzIsIDExODA3NywgCi0gICAgMTE4MDgzLCAxMTgwODksIDExODA5NCwgMTE4MTAwLCAxMTgxMDYsIDExODExMiwgMTE4MTE4LCAxMTgxMjQsIDExODEyOSwgCi0gICAgMTE4MTM1LCAxMTgxNDEsIDExODE0NywgMTE4MTUyLCAxMTgxNTgsIDExODE2NCwgMTE4MTcwLCAxMTgxNzUsIDExODE4MSwgCi0gICAgMTE4MTg3LCAxMTgxOTIsIDExODE5NywgMTE4MjAzLCAxMTgyMDgsIDExODIxNCwgMTE4MjIwLCAxMTgyMjUsIDExODIzMSwgCi0gICAgMTE4MjM3LCAxMTgyNDIsIDExODI0OCwgMTE4MjU0LCAxMTgyNjAsIDExODI2NiwgMTE4MjcyLCAxMTgyNzgsIDAsIDAsIAotICAgIDExODI4NSwgMTE4MjkwLCAxMTgyOTUsIDExODMwMCwgMTE4MzA1LCAxMTgzMTAsIDExODMxNSwgMTE4MzIwLCAxMTgzMjUsIAotICAgIDExODMzMCwgMTE4MzM1LCAxMTgzNDAsIDExODM0NSwgMTE4MzUwLCAxMTgzNTUsIDExODM2MCwgMTE4MzY1LCAxMTgzNzAsIAotICAgIDExODM3NiwgMTE4MzgxLCAxMTgzODYsIDExODM5MSwgMTE4Mzk2LCAxMTg0MDEsIDExODQwNiwgMTE4NDExLCAxMTg0MTUsIAotICAgIDExODQyMCwgMTE4NDI1LCAxMTg0MzAsIDExODQzNSwgMTE4NDQwLCAxMTg0NDUsIDExODQ1MCwgMTE4NDU1LCAxMTg0NjAsIAotICAgIDExODQ2NSwgMTE4NDcwLCAxMTg0NzUsIDExODQ4MCwgMTE4NDg1LCAxMTg0OTAsIDExODQ5NSwgMTE4NTAwLCAxMTg1MDYsIAotICAgIDExODUxMSwgMTE4NTE2LCAxMTg1MjEsIDExODUyNiwgMTE4NTMxLCAxMTg1MzYsIDExODU0MSwgMTE4NTQ3LCAxMTg1NTIsIAotICAgIDExODU1NywgMTE4NTYyLCAxMTg1NjcsIDExODU3MiwgMTE4NTc3LCAxMTg1ODIsIDExODU4NywgMTE4NTkyLCAxMTg1OTcsIAotICAgIDExODYwMiwgMTE4NjA3LCAxMTg2MTIsIDExODYxNywgMTE4NjIyLCAxMTg2MjcsIDExODYzMiwgMTE4NjM3LCAxMTg2NDIsIAotICAgIDExODY0NywgMTE4NjUyLCAxMTg2NTcsIDExODY2MiwgMTE4NjY4LCAxMTg2NzMsIDExODY3OCwgMTE4NjgzLCAxMTg2ODgsIAotICAgIDExODY5MywgMTE4Njk4LCAxMTg3MDMsIDExODcwNywgMTE4NzEyLCAxMTg3MTcsIDExODcyMiwgMTE4NzI3LCAxMTg3MzIsIAotICAgIDExODczNywgMTE4NzQyLCAxMTg3NDcsIDExODc1MiwgMTE4NzU3LCAxMTg3NjIsIDExODc2NywgMTE4NzcyLCAxMTg3NzcsIAotICAgIDExODc4MiwgMTE4Nzg3LCAxMTg3OTIsIDExODc5OCwgMTE4ODAzLCAxMTg4MDgsIDExODgxMywgMTE4ODE4LCAxMTg4MjMsIAotICAgIDExODgyOCwgMTE4ODMzLCAxMTg4MzksIDExODg0NCwgMTE4ODQ5LCAxMTg4NTQsIDExODg1OSwgMTE4ODY0LCAxMTg4NjksIAotICAgIDExODg3NSwgMTE4ODgxLCAxMTg4ODcsIDExODg5MywgMTE4ODk5LCAxMTg5MDUsIDExODkxMSwgMTE4OTE3LCAxMTg5MjMsIAotICAgIDExODkyOSwgMTE4OTM1LCAxMTg5NDEsIDExODk0NywgMTE4OTUzLCAxMTg5NTksIDExODk2NSwgMTE4OTcxLCAxMTg5NzgsIAotICAgIDExODk4NCwgMTE4OTkwLCAxMTg5OTYsIDExOTAwMiwgMTE5MDA4LCAxMTkwMTQsIDExOTAyMCwgMTE5MDI1LCAxMTkwMzEsIAotICAgIDExOTAzNywgMTE5MDQzLCAxMTkwNDksIDExOTA1NSwgMTE5MDYxLCAxMTkwNjcsIDExOTA3MywgMTE5MDc5LCAxMTkwODUsIAotICAgIDExOTA5MSwgMTE5MDk3LCAxMTkxMDMsIDExOTEwOSwgMTE5MTE1LCAxMTkxMjEsIDExOTEyNywgMTE5MTM0LCAxMTkxNDAsIAotICAgIDExOTE0NiwgMTE5MTUyLCAxMTkxNTgsIDExOTE2NCwgMTE5MTcwLCAxMTkxNzYsIDExOTE4MywgMTE5MTg5LCAxMTkxOTUsIAotICAgIDExOTIwMSwgMTE5MjA3LCAxMTkyMTMsIDExOTIxOSwgMTE5MjI1LCAxMTkyMzEsIDExOTIzNywgMTE5MjQzLCAxMTkyNDksIAotICAgIDExOTI1NSwgMTE5MjYxLCAxMTkyNjcsIDExOTI3MywgMTE5Mjc5LCAxMTkyODUsIDExOTI5MSwgMTE5Mjk3LCAxMTkzMDMsIAotICAgIDExOTMwOSwgMTE5MzE1LCAxMTkzMjEsIDExOTMyOCwgMTE5MzM0LCAxMTkzNDAsIDExOTM0NiwgMTE5MzUyLCAxMTkzNTgsIAotICAgIDExOTM2NCwgMTE5MzcwLCAxMTkzNzUsIDExOTM4MSwgMTE5Mzg3LCAxMTkzOTMsIDExOTM5OSwgMTE5NDA1LCAxMTk0MTEsIAotICAgIDExOTQxNywgMTE5NDIzLCAxMTk0MjksIDExOTQzNSwgMTE5NDQxLCAxMTk0NDcsIDExOTQ1MywgMTE5NDU5LCAxMTk0NjUsIAotICAgIDExOTQ3MSwgMTE5NDc3LCAxMTk0ODQsIDExOTQ5MCwgMTE5NDk2LCAxMTk1MDIsIDExOTUwOCwgMTE5NTE0LCAxMTk1MjAsIAotICAgIDExOTUyNiwgMTE5NTMzLCAxMTk1MzksIDExOTU0NSwgMTE5NTUxLCAxMTk1NTcsIDExOTU2MywgMTE5NTY5LCAxMTk1NzYsIAotICAgIDExOTU4MywgMTE5NTkwLCAxMTk1OTcsIDExOTYwNCwgMTE5NjExLCAxMTk2MTgsIDExOTYyNSwgMTE5NjMyLCAxMTk2MzksIAotICAgIDExOTY0NiwgMTE5NjUzLCAxMTk2NjAsIDExOTY2NywgMTE5Njc0LCAxMTk2ODEsIDExOTY4OCwgMTE5Njk2LCAxMTk3MDMsIAotICAgIDExOTcxMCwgMTE5NzE3LCAxMTk3MjQsIDExOTczMSwgMTE5NzM4LCAxMTk3NDUsIDExOTc1MSwgMTE5NzU4LCAxMTk3NjUsIAotICAgIDExOTc3MiwgMTE5Nzc5LCAxMTk3ODYsIDExOTc5MywgMTE5ODAwLCAxMTk4MDcsIDExOTgxNCwgMTE5ODIxLCAxMTk4MjgsIAotICAgIDExOTgzNSwgMTE5ODQyLCAxMTk4NDksIDExOTg1NiwgMTE5ODYzLCAxMTk4NzAsIDExOTg3OCwgMTE5ODg1LCAxMTk4OTIsIAotICAgIDExOTg5OSwgMTE5OTA2LCAxMTk5MTMsIDExOTkyMCwgMTE5OTI3LCAxMTk5MzUsIDExOTk0MiwgMTE5OTQ5LCAxMTk5NTYsIAotICAgIDExOTk2MywgMTE5OTcwLCAxMTk5NzcsIDExOTk4MiwgMCwgMCwgMTE5OTg3LCAxMTk5OTIsIDExOTk5NiwgMTIwMDAwLCAKLSAgICAxMjAwMDQsIDEyMDAwOCwgMTIwMDEyLCAxMjAwMTYsIDEyMDAyMCwgMTIwMDI0LCAxMjAwMjgsIDEyMDAzMywgMTIwMDM3LCAKLSAgICAxMjAwNDEsIDEyMDA0NSwgMTIwMDQ5LCAxMjAwNTMsIDEyMDA1NywgMTIwMDYxLCAxMjAwNjUsIDEyMDA2OSwgMTIwMDc0LCAKLSAgICAxMjAwNzgsIDEyMDA4MiwgMTIwMDg2LCAxMjAwOTAsIDEyMDA5NCwgMTIwMDk4LCAxMjAxMDIsIDEyMDEwNiwgMTIwMTEwLCAKLSAgICAxMjAxMTYsIDEyMDEyMSwgMTIwMTI2LCAxMjAxMzEsIDEyMDEzNiwgMTIwMTQxLCAxMjAxNDYsIDEyMDE1MSwgMTIwMTU2LCAKLSAgICAxMjAxNjEsIDEyMDE2NywgMTIwMTcyLCAxMjAxNzcsIDEyMDE4MiwgMTIwMTg3LCAxMjAxOTIsIDEyMDE5NywgMTIwMjAyLCAKLSAgICAxMjAyMDcsIDEyMDIxMiwgMTIwMjE2LCAxMjAyMjAsIDEyMDIyNCwgMCwgMTIwMjI4LCAxMjAyMzIsIDEyMDIzNiwgCi0gICAgMTIwMjQwLCAxMjAyNDQsIDEyMDI0OCwgMTIwMjUyLCAxMjAyNTYsIDEyMDI2MCwgMTIwMjY0LCAxMjAyNjgsIDEyMDI3MiwgCi0gICAgMTIwMjc2LCAxMjAyODAsIDEyMDI4NCwgMTIwMjg4LCAxMjAyOTIsIDEyMDI5NiwgMTIwMzAwLCAxMjAzMDQsIDEyMDMwOCwgCi0gICAgMTIwMzEyLCAxMjAzMTYsIDEyMDMyMCwgMTIwMzI2LCAxMjAzMzIsIDEyMDMzOCwgMCwgMTIwMzQ0LCAxMjAzNDksIDAsIAotICAgIDEyMDM1NCwgMCwgMCwgMTIwMzU5LCAwLCAxMjAzNjQsIDEyMDM2OSwgMTIwMzc0LCAxMjAzNzksIDEyMDM4NCwgMTIwMzg5LCAKLSAgICAxMjAzOTQsIDEyMDM5OSwgMTIwNDA0LCAxMjA0MDksIDAsIDEyMDQxNCwgMTIwNDE5LCAxMjA0MjQsIDEyMDQyOSwgMCwgCi0gICAgMTIwNDM0LCAwLCAxMjA0MzksIDAsIDAsIDAsIDAsIDAsIDAsIDEyMDQ0NCwgMCwgMCwgMCwgMCwgMTIwNDUwLCAwLCAKLSAgICAxMjA0NTYsIDAsIDEyMDQ2MiwgMCwgMTIwNDY4LCAxMjA0NzQsIDEyMDQ4MCwgMCwgMTIwNDg2LCAxMjA0OTIsIDAsIAotICAgIDEyMDQ5OCwgMCwgMCwgMTIwNTA0LCAwLCAxMjA1MTAsIDAsIDEyMDUxNiwgMCwgMTIwNTIyLCAwLCAxMjA1MzAsIDAsIAotICAgIDEyMDUzOCwgMTIwNTQ0LCAwLCAxMjA1NTAsIDAsIDAsIDEyMDU1NiwgMTIwNTYyLCAxMjA1NjgsIDEyMDU3NCwgMCwgCi0gICAgMTIwNTgwLCAxMjA1ODYsIDEyMDU5MiwgMTIwNTk4LCAxMjA2MDQsIDEyMDYxMCwgMTIwNjE2LCAwLCAxMjA2MjIsIAotICAgIDEyMDYyOCwgMTIwNjM0LCAxMjA2NDAsIDAsIDEyMDY0NiwgMTIwNjUyLCAxMjA2NTgsIDEyMDY2NCwgMCwgMTIwNjcyLCAwLCAKLSAgICAxMjA2ODAsIDEyMDY4NiwgMTIwNjkyLCAxMjA2OTgsIDEyMDcwNCwgMTIwNzEwLCAxMjA3MTYsIDEyMDcyMiwgMTIwNzI4LCAKLSAgICAxMjA3MzQsIDAsIDEyMDc0MCwgMTIwNzQ2LCAxMjA3NTIsIDEyMDc1OCwgMTIwNzY0LCAxMjA3NzAsIDEyMDc3NiwgCi0gICAgMTIwNzgyLCAxMjA3ODgsIDEyMDc5NCwgMTIwODAwLCAxMjA4MDYsIDEyMDgxMiwgMTIwODE4LCAxMjA4MjQsIDEyMDgzMCwgCi0gICAgMTIwODM2LCAwLCAwLCAwLCAwLCAwLCAxMjA4NDIsIDEyMDg0NywgMTIwODUyLCAwLCAxMjA4NTcsIDEyMDg2MiwgMTIwODY3LCAKLSAgICAxMjA4NzIsIDEyMDg3NywgMCwgMTIwODgyLCAxMjA4ODcsIDEyMDg5MiwgMTIwODk3LCAxMjA5MDIsIDEyMDkwNywgCi0gICAgMTIwOTEyLCAxMjA5MTcsIDEyMDkyMiwgMTIwOTI3LCAxMjA5MzIsIDEyMDkzNywgMTIwOTQyLCAxMjA5NDcsIDEyMDk1MiwgCi0gICAgMTIwOTU3LCAxMjA5NjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDExNDI2MywgMTE0MjY4LCAxMTQyNzUsIDExNDI4MiwgMTE0Mjg5LCAxMTQyOTYsIDExNDMwMSwgMTE0MzA1LCAxMTQzMTEsIAorICAgIDExNDMxNSwgMTE0MzE5LCAxMTQzMjUsIDExNDMyOSwgMTE0MzMzLCAxMTQzMzcsIDExNDM0MywgMTE0MzUwLCAxMTQzNTQsIAorICAgIDExNDM1OCwgMTE0MzYyLCAxMTQzNjYsIDExNDM3MCwgMTE0Mzc0LCAxMTQzODAsIDExNDM4NCwgMTE0Mzg4LCAxMTQzOTIsIAorICAgIDExNDM5NiwgMTE0NDAwLCAxMTQ0MDQsIDExNDQwOCwgMTE0NDEyLCAxMTQ0MTYsIDExNDQyMCwgMTE0NDI0LCAxMTQ0MjgsIAorICAgIDExNDQzMywgMTE0NDM3LCAxMTQ0NDEsIDExNDQ0NSwgMTE0NDQ5LCAxMTQ0NTMsIDExNDQ1NywgMTE0NDYxLCAxMTQ0NjUsIAorICAgIDExNDQ2OSwgMTE0NDc2LCAxMTQ0ODAsIDExNDQ4OCwgMTE0NDkyLCAxMTQ0OTYsIDExNDUwMCwgMTE0NTA0LCAxMTQ1MDgsIAorICAgIDExNDUxMiwgMTE0NTE2LCAxMTQ1MjMsIDExNDUyNywgMTE0NTMxLCAxMTQ1MzUsIDExNDUzOSwgMTE0NTQzLCAxMTQ1NDksIAorICAgIDExNDU1MywgMTE0NTU5LCAxMTQ1NjMsIDExNDU2NywgMTE0NTcxLCAxMTQ1NzUsIDExNDU3OSwgMTE0NTgzLCAxMTQ1ODcsIAorICAgIDExNDU5MSwgMTE0NTk1LCAxMTQ1OTksIDExNDYwMywgMTE0NjA3LCAxMTQ2MTEsIDExNDYxNSwgMTE0NjE5LCAxMTQ2MjMsIAorICAgIDExNDYyNywgMTE0NjMxLCAxMTQ2MzUsIDExNDY0MywgMTE0NjQ3LCAxMTQ2NTEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDExNDY1NSwgMTE0NjYzLCAxMTQ2NzEsIDExNDY3OSwgMTE0Njg3LCAxMTQ2OTUsIDExNDcwMywgMTE0NzExLCAKKyAgICAxMTQ3MTksIDExNDcyNywgMTE0NzM1LCAxMTQ3NDMsIDExNDc1MSwgMTE0NzU5LCAxMTQ3NjcsIDExNDc3NSwgMTE0NzgzLCAKKyAgICAxMTQ3OTEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExNDc5OSwgMTE0ODAzLCAxMTQ4MDgsIAorICAgIDExNDgxMywgMTE0ODE4LCAxMTQ4MjIsIDExNDgyNywgMTE0ODMyLCAxMTQ4MzcsIDExNDg0MSwgMTE0ODQ2LCAxMTQ4NTEsIAorICAgIDExNDg1NSwgMTE0ODU5LCAxMTQ4NjQsIDExNDg2OCwgMTE0ODczLCAxMTQ4NzgsIDExNDg4MiwgMTE0ODg3LCAxMTQ4OTIsIAorICAgIDExNDg5NiwgMTE0OTAxLCAxMTQ5MDYsIDExNDkxMSwgMTE0OTE2LCAxMTQ5MjEsIDExNDkyNSwgMTE0OTMwLCAxMTQ5MzUsIAorICAgIDExNDk0MCwgMTE0OTQ0LCAxMTQ5NDksIDExNDk1NCwgMTE0OTU5LCAxMTQ5NjMsIDExNDk2OCwgMTE0OTczLCAxMTQ5NzcsIAorICAgIDExNDk4MSwgMTE0OTg2LCAxMTQ5OTAsIDExNDk5NSwgMTE1MDAwLCAxMTUwMDQsIDExNTAwOSwgMTE1MDE0LCAxMTUwMTgsIAorICAgIDExNTAyMywgMTE1MDI4LCAxMTUwMzMsIDExNTAzOCwgMTE1MDQzLCAxMTUwNDcsIDExNTA1MiwgMTE1MDU3LCAxMTUwNjIsIAorICAgIDExNTA2NiwgMTE1MDcxLCAxMTUwNzYsIDExNTA4MSwgMTE1MDg1LCAxMTUwOTAsIDExNTA5NSwgMTE1MDk5LCAxMTUxMDMsIAorICAgIDExNTEwOCwgMTE1MTEyLCAxMTUxMTcsIDExNTEyMiwgMTE1MTI2LCAxMTUxMzEsIDExNTEzNiwgMTE1MTQwLCAxMTUxNDUsIAorICAgIDExNTE1MCwgMTE1MTU1LCAxMTUxNjAsIDExNTE2NSwgMTE1MTY5LCAxMTUxNzQsIDExNTE3OSwgMTE1MTg0LCAxMTUxODgsIAorICAgIDExNTE5MywgMCwgMTE1MTk4LCAxMTUyMDIsIDExNTIwNywgMTE1MjEyLCAxMTUyMTYsIDExNTIyMCwgMTE1MjI1LCAKKyAgICAxMTUyMjksIDExNTIzNCwgMTE1MjM5LCAxMTUyNDMsIDExNTI0OCwgMTE1MjUzLCAxMTUyNTcsIDExNTI2MiwgMTE1MjY3LCAKKyAgICAxMTUyNzIsIDExNTI3NywgMTE1MjgyLCAxMTUyODcsIDExNTI5MywgMTE1Mjk5LCAxMTUzMDUsIDExNTMxMCwgMTE1MzE2LCAKKyAgICAxMTUzMjIsIDExNTMyOCwgMTE1MzMzLCAxMTUzMzksIDExNTM0NSwgMTE1MzUwLCAxMTUzNTUsIDExNTM2MSwgMTE1MzY2LCAKKyAgICAxMTUzNzIsIDExNTM3OCwgMTE1MzgzLCAxMTUzODksIDExNTM5NSwgMTE1NDAwLCAxMTU0MDYsIDExNTQxMiwgMTE1NDE4LCAKKyAgICAxMTU0MjQsIDExNTQzMCwgMTE1NDM1LCAxMTU0NDEsIDExNTQ0NywgMTE1NDUzLCAxMTU0NTgsIDExNTQ2NCwgMTE1NDcwLCAKKyAgICAxMTU0NzYsIDExNTQ4MSwgMTE1NDg3LCAxMTU0OTMsIDExNTQ5OCwgMTE1NTAzLCAxMTU1MDksIDExNTUxNCwgMTE1NTIwLCAKKyAgICAxMTU1MjYsIDExNTUzMSwgMTE1NTM3LCAxMTU1NDMsIDExNTU0OCwgMTE1NTU0LCAxMTU1NjAsIDExNTU2NiwgMTE1NTcyLCAKKyAgICAxMTU1NzgsIDAsIDExNTU4MiwgMTE1NTg3LCAwLCAwLCAxMTU1OTIsIDAsIDAsIDExNTU5NywgMTE1NjAyLCAwLCAwLCAKKyAgICAxMTU2MDcsIDExNTYxMiwgMTE1NjE2LCAxMTU2MjEsIDAsIDExNTYyNiwgMTE1NjMxLCAxMTU2MzYsIDExNTY0MCwgCisgICAgMTE1NjQ1LCAxMTU2NTAsIDExNTY1NSwgMTE1NjYwLCAxMTU2NjUsIDExNTY2OSwgMTE1Njc0LCAxMTU2NzksIDAsIAorICAgIDExNTY4NCwgMCwgMTE1Njg5LCAxMTU2OTQsIDExNTY5OCwgMTE1NzAzLCAxMTU3MDgsIDExNTcxMiwgMTE1NzE2LCAwLCAKKyAgICAxMTU3MjEsIDExNTcyNiwgMTE1NzMxLCAxMTU3MzUsIDExNTc0MCwgMTE1NzQ1LCAxMTU3NDksIDExNTc1NCwgMTE1NzU5LCAKKyAgICAxMTU3NjQsIDExNTc2OSwgMTE1Nzc0LCAxMTU3NzksIDExNTc4NSwgMTE1NzkxLCAxMTU3OTcsIDExNTgwMiwgMTE1ODA4LCAKKyAgICAxMTU4MTQsIDExNTgyMCwgMTE1ODI1LCAxMTU4MzEsIDExNTgzNywgMTE1ODQyLCAxMTU4NDcsIDExNTg1MywgMTE1ODU4LCAKKyAgICAxMTU4NjQsIDExNTg3MCwgMTE1ODc1LCAxMTU4ODEsIDExNTg4NywgMTE1ODkyLCAxMTU4OTgsIDExNTkwNCwgMTE1OTEwLCAKKyAgICAxMTU5MTYsIDExNTkyMiwgMTE1OTI3LCAxMTU5MzMsIDExNTkzOSwgMTE1OTQ1LCAxMTU5NTAsIDExNTk1NiwgMTE1OTYyLCAKKyAgICAxMTU5NjgsIDExNTk3MywgMTE1OTc5LCAxMTU5ODUsIDExNTk5MCwgMTE1OTk1LCAxMTYwMDEsIDExNjAwNiwgMTE2MDEyLCAKKyAgICAxMTYwMTgsIDExNjAyMywgMTE2MDI5LCAxMTYwMzUsIDExNjA0MCwgMTE2MDQ2LCAxMTYwNTIsIDExNjA1OCwgMTE2MDY0LCAKKyAgICAxMTYwNzAsIDExNjA3NCwgMCwgMTE2MDc5LCAxMTYwODQsIDExNjA4OCwgMTE2MDkzLCAwLCAwLCAxMTYwOTgsIDExNjEwMywgCisgICAgMTE2MTA4LCAxMTYxMTIsIDExNjExNiwgMTE2MTIxLCAxMTYxMjUsIDExNjEzMCwgMCwgMTE2MTM1LCAxMTYxNDAsIAorICAgIDExNjE0NSwgMTE2MTQ5LCAxMTYxNTQsIDExNjE1OSwgMTE2MTY0LCAwLCAxMTYxNjksIDExNjE3MywgMTE2MTc4LCAKKyAgICAxMTYxODMsIDExNjE4OCwgMTE2MTkyLCAxMTYxOTcsIDExNjIwMiwgMTE2MjA3LCAxMTYyMTEsIDExNjIxNiwgMTE2MjIxLCAKKyAgICAxMTYyMjUsIDExNjIyOSwgMTE2MjM0LCAxMTYyMzgsIDExNjI0MywgMTE2MjQ4LCAxMTYyNTIsIDExNjI1NywgMTE2MjYyLCAKKyAgICAxMTYyNjYsIDExNjI3MSwgMTE2Mjc2LCAxMTYyODEsIDExNjI4NiwgMTE2MjkxLCAxMTYyOTUsIDAsIDExNjMwMCwgCisgICAgMTE2MzA1LCAxMTYzMDksIDExNjMxNCwgMCwgMTE2MzE5LCAxMTYzMjMsIDExNjMyOCwgMTE2MzMzLCAxMTYzMzcsIDAsIAorICAgIDExNjM0MSwgMCwgMCwgMCwgMTE2MzQ1LCAxMTYzNTAsIDExNjM1NSwgMTE2MzU5LCAxMTYzNjQsIDExNjM2OSwgMTE2Mzc0LCAKKyAgICAwLCAxMTYzNzksIDExNjM4MywgMTE2Mzg4LCAxMTYzOTMsIDExNjM5OCwgMTE2NDAyLCAxMTY0MDcsIDExNjQxMiwgCisgICAgMTE2NDE3LCAxMTY0MjEsIDExNjQyNiwgMTE2NDMxLCAxMTY0MzUsIDExNjQzOSwgMTE2NDQ0LCAxMTY0NDgsIDExNjQ1MywgCisgICAgMTE2NDU4LCAxMTY0NjIsIDExNjQ2NywgMTE2NDcyLCAxMTY0NzYsIDExNjQ4MSwgMTE2NDg2LCAxMTY0OTEsIDExNjQ5NiwgCisgICAgMTE2NTAxLCAxMTY1MDYsIDExNjUxMiwgMTE2NTE4LCAxMTY1MjQsIDExNjUyOSwgMTE2NTM1LCAxMTY1NDEsIDExNjU0NywgCisgICAgMTE2NTUyLCAxMTY1NTgsIDExNjU2NCwgMTE2NTY5LCAxMTY1NzQsIDExNjU4MCwgMTE2NTg1LCAxMTY1OTEsIDExNjU5NywgCisgICAgMTE2NjAyLCAxMTY2MDgsIDExNjYxNCwgMTE2NjE5LCAxMTY2MjUsIDExNjYzMSwgMTE2NjM3LCAxMTY2NDMsIDExNjY0OSwgCisgICAgMTE2NjU0LCAxMTY2NjAsIDExNjY2NiwgMTE2NjcyLCAxMTY2NzcsIDExNjY4MywgMTE2Njg5LCAxMTY2OTUsIDExNjcwMCwgCisgICAgMTE2NzA2LCAxMTY3MTIsIDExNjcxNywgMTE2NzIyLCAxMTY3MjgsIDExNjczMywgMTE2NzM5LCAxMTY3NDUsIDExNjc1MCwgCisgICAgMTE2NzU2LCAxMTY3NjIsIDExNjc2NywgMTE2NzczLCAxMTY3NzksIDExNjc4NSwgMTE2NzkxLCAxMTY3OTcsIDExNjgwMSwgCisgICAgMTE2ODA2LCAxMTY4MTEsIDExNjgxNiwgMTE2ODIwLCAxMTY4MjUsIDExNjgzMCwgMTE2ODM1LCAxMTY4MzksIDExNjg0NCwgCisgICAgMTE2ODQ5LCAxMTY4NTMsIDExNjg1NywgMTE2ODYyLCAxMTY4NjYsIDExNjg3MSwgMTE2ODc2LCAxMTY4ODAsIDExNjg4NSwgCisgICAgMTE2ODkwLCAxMTY4OTQsIDExNjg5OSwgMTE2OTA0LCAxMTY5MDksIDExNjkxNCwgMTE2OTE5LCAxMTY5MjMsIDExNjkyOCwgCisgICAgMTE2OTMzLCAxMTY5MzgsIDExNjk0MiwgMTE2OTQ3LCAxMTY5NTIsIDExNjk1NywgMTE2OTYxLCAxMTY5NjYsIDExNjk3MSwgCisgICAgMTE2OTc1LCAxMTY5NzksIDExNjk4NCwgMTE2OTg4LCAxMTY5OTMsIDExNjk5OCwgMTE3MDAyLCAxMTcwMDcsIDExNzAxMiwgCisgICAgMTE3MDE2LCAxMTcwMjEsIDExNzAyNiwgMTE3MDMxLCAxMTcwMzYsIDExNzA0MSwgMTE3MDQ2LCAxMTcwNTIsIDExNzA1OCwgCisgICAgMTE3MDY0LCAxMTcwNjksIDExNzA3NSwgMTE3MDgxLCAxMTcwODcsIDExNzA5MiwgMTE3MDk4LCAxMTcxMDQsIDExNzEwOSwgCisgICAgMTE3MTE0LCAxMTcxMjAsIDExNzEyNSwgMTE3MTMxLCAxMTcxMzcsIDExNzE0MiwgMTE3MTQ4LCAxMTcxNTQsIDExNzE1OSwgCisgICAgMTE3MTY1LCAxMTcxNzEsIDExNzE3NywgMTE3MTgzLCAxMTcxODksIDExNzE5NCwgMTE3MjAwLCAxMTcyMDYsIDExNzIxMiwgCisgICAgMTE3MjE3LCAxMTcyMjMsIDExNzIyOSwgMTE3MjM1LCAxMTcyNDAsIDExNzI0NiwgMTE3MjUyLCAxMTcyNTcsIDExNzI2MiwgCisgICAgMTE3MjY4LCAxMTcyNzMsIDExNzI3OSwgMTE3Mjg1LCAxMTcyOTAsIDExNzI5NiwgMTE3MzAyLCAxMTczMDcsIDExNzMxMywgCisgICAgMTE3MzE5LCAxMTczMjUsIDExNzMzMSwgMTE3MzM3LCAxMTczNDIsIDExNzM0OCwgMTE3MzU0LCAxMTczNjAsIDExNzM2NSwgCisgICAgMTE3MzcxLCAxMTczNzcsIDExNzM4MywgMTE3Mzg4LCAxMTczOTQsIDExNzQwMCwgMTE3NDA1LCAxMTc0MTAsIDExNzQxNiwgCisgICAgMTE3NDIxLCAxMTc0MjcsIDExNzQzMywgMTE3NDM4LCAxMTc0NDQsIDExNzQ1MCwgMTE3NDU1LCAxMTc0NjEsIDExNzQ2NywgCisgICAgMTE3NDczLCAxMTc0NzksIDExNzQ4NSwgMTE3NDkwLCAxMTc0OTYsIDExNzUwMiwgMTE3NTA4LCAxMTc1MTMsIDExNzUxOSwgCisgICAgMTE3NTI1LCAxMTc1MzEsIDExNzUzNiwgMTE3NTQyLCAxMTc1NDgsIDExNzU1MywgMTE3NTU4LCAxMTc1NjQsIDExNzU2OSwgCisgICAgMTE3NTc1LCAxMTc1ODEsIDExNzU4NiwgMTE3NTkyLCAxMTc1OTgsIDExNzYwMywgMTE3NjA5LCAxMTc2MTUsIDExNzYyMSwgCisgICAgMTE3NjI3LCAxMTc2MzMsIDExNzYzOSwgMTE3NjQ2LCAxMTc2NTMsIDExNzY2MCwgMTE3NjY2LCAxMTc2NzMsIDExNzY4MCwgCisgICAgMTE3Njg3LCAxMTc2OTMsIDExNzcwMCwgMTE3NzA3LCAxMTc3MTMsIDExNzcxOSwgMTE3NzI2LCAxMTc3MzIsIDExNzczOSwgCisgICAgMTE3NzQ2LCAxMTc3NTIsIDExNzc1OSwgMTE3NzY2LCAxMTc3NzIsIDExNzc3OSwgMTE3Nzg2LCAxMTc3OTMsIDExNzgwMCwgCisgICAgMTE3ODA3LCAxMTc4MTMsIDExNzgyMCwgMTE3ODI3LCAxMTc4MzQsIDExNzg0MCwgMTE3ODQ3LCAxMTc4NTQsIDExNzg2MSwgCisgICAgMTE3ODY3LCAxMTc4NzQsIDExNzg4MSwgMTE3ODg3LCAxMTc4OTMsIDExNzkwMCwgMTE3OTA2LCAxMTc5MTMsIDExNzkyMCwgCisgICAgMTE3OTI2LCAxMTc5MzMsIDExNzk0MCwgMTE3OTQ2LCAxMTc5NTMsIDExNzk2MCwgMTE3OTY3LCAxMTc5NzQsIDExNzk4MSwgCisgICAgMTE3OTg2LCAxMTc5OTIsIDExNzk5OCwgMTE4MDA0LCAxMTgwMDksIDExODAxNSwgMTE4MDIxLCAxMTgwMjcsIDExODAzMiwgCisgICAgMTE4MDM4LCAxMTgwNDQsIDExODA0OSwgMTE4MDU0LCAxMTgwNjAsIDExODA2NSwgMTE4MDcxLCAxMTgwNzcsIDExODA4MiwgCisgICAgMTE4MDg4LCAxMTgwOTQsIDExODA5OSwgMTE4MTA1LCAxMTgxMTEsIDExODExNywgMTE4MTIzLCAxMTgxMjksIDExODEzNCwgCisgICAgMTE4MTQwLCAxMTgxNDYsIDExODE1MiwgMTE4MTU3LCAxMTgxNjMsIDExODE2OSwgMTE4MTc1LCAxMTgxODAsIDExODE4NiwgCisgICAgMTE4MTkyLCAxMTgxOTcsIDExODIwMiwgMTE4MjA4LCAxMTgyMTMsIDExODIxOSwgMTE4MjI1LCAxMTgyMzAsIDExODIzNiwgCisgICAgMTE4MjQyLCAxMTgyNDcsIDExODI1MywgMTE4MjU5LCAxMTgyNjUsIDExODI3MSwgMTE4Mjc3LCAxMTgyODMsIDAsIDAsIAorICAgIDExODI5MCwgMTE4Mjk1LCAxMTgzMDAsIDExODMwNSwgMTE4MzEwLCAxMTgzMTUsIDExODMyMCwgMTE4MzI1LCAxMTgzMzAsIAorICAgIDExODMzNSwgMTE4MzQwLCAxMTgzNDUsIDExODM1MCwgMTE4MzU1LCAxMTgzNjAsIDExODM2NSwgMTE4MzcwLCAxMTgzNzUsIAorICAgIDExODM4MSwgMTE4Mzg2LCAxMTgzOTEsIDExODM5NiwgMTE4NDAxLCAxMTg0MDYsIDExODQxMSwgMTE4NDE2LCAxMTg0MjAsIAorICAgIDExODQyNSwgMTE4NDMwLCAxMTg0MzUsIDExODQ0MCwgMTE4NDQ1LCAxMTg0NTAsIDExODQ1NSwgMTE4NDYwLCAxMTg0NjUsIAorICAgIDExODQ3MCwgMTE4NDc1LCAxMTg0ODAsIDExODQ4NSwgMTE4NDkwLCAxMTg0OTUsIDExODUwMCwgMTE4NTA1LCAxMTg1MTEsIAorICAgIDExODUxNiwgMTE4NTIxLCAxMTg1MjYsIDExODUzMSwgMTE4NTM2LCAxMTg1NDEsIDExODU0NiwgMTE4NTUyLCAxMTg1NTcsIAorICAgIDExODU2MiwgMTE4NTY3LCAxMTg1NzIsIDExODU3NywgMTE4NTgyLCAxMTg1ODcsIDExODU5MiwgMTE4NTk3LCAxMTg2MDIsIAorICAgIDExODYwNywgMTE4NjEyLCAxMTg2MTcsIDExODYyMiwgMTE4NjI3LCAxMTg2MzIsIDExODYzNywgMTE4NjQyLCAxMTg2NDcsIAorICAgIDExODY1MiwgMTE4NjU3LCAxMTg2NjIsIDExODY2NywgMTE4NjczLCAxMTg2NzgsIDExODY4MywgMTE4Njg4LCAxMTg2OTMsIAorICAgIDExODY5OCwgMTE4NzAzLCAxMTg3MDgsIDExODcxMiwgMTE4NzE3LCAxMTg3MjIsIDExODcyNywgMTE4NzMyLCAxMTg3MzcsIAorICAgIDExODc0MiwgMTE4NzQ3LCAxMTg3NTIsIDExODc1NywgMTE4NzYyLCAxMTg3NjcsIDExODc3MiwgMTE4Nzc3LCAxMTg3ODIsIAorICAgIDExODc4NywgMTE4NzkyLCAxMTg3OTcsIDExODgwMywgMTE4ODA4LCAxMTg4MTMsIDExODgxOCwgMTE4ODIzLCAxMTg4MjgsIAorICAgIDExODgzMywgMTE4ODM4LCAxMTg4NDQsIDExODg0OSwgMTE4ODU0LCAxMTg4NTksIDExODg2NCwgMTE4ODY5LCAxMTg4NzQsIAorICAgIDExODg4MCwgMTE4ODg2LCAxMTg4OTIsIDExODg5OCwgMTE4OTA0LCAxMTg5MTAsIDExODkxNiwgMTE4OTIyLCAxMTg5MjgsIAorICAgIDExODkzNCwgMTE4OTQwLCAxMTg5NDYsIDExODk1MiwgMTE4OTU4LCAxMTg5NjQsIDExODk3MCwgMTE4OTc2LCAxMTg5ODMsIAorICAgIDExODk4OSwgMTE4OTk1LCAxMTkwMDEsIDExOTAwNywgMTE5MDEzLCAxMTkwMTksIDExOTAyNSwgMTE5MDMwLCAxMTkwMzYsIAorICAgIDExOTA0MiwgMTE5MDQ4LCAxMTkwNTQsIDExOTA2MCwgMTE5MDY2LCAxMTkwNzIsIDExOTA3OCwgMTE5MDg0LCAxMTkwOTAsIAorICAgIDExOTA5NiwgMTE5MTAyLCAxMTkxMDgsIDExOTExNCwgMTE5MTIwLCAxMTkxMjYsIDExOTEzMiwgMTE5MTM5LCAxMTkxNDUsIAorICAgIDExOTE1MSwgMTE5MTU3LCAxMTkxNjMsIDExOTE2OSwgMTE5MTc1LCAxMTkxODEsIDExOTE4OCwgMTE5MTk0LCAxMTkyMDAsIAorICAgIDExOTIwNiwgMTE5MjEyLCAxMTkyMTgsIDExOTIyNCwgMTE5MjMwLCAxMTkyMzYsIDExOTI0MiwgMTE5MjQ4LCAxMTkyNTQsIAorICAgIDExOTI2MCwgMTE5MjY2LCAxMTkyNzIsIDExOTI3OCwgMTE5Mjg0LCAxMTkyOTAsIDExOTI5NiwgMTE5MzAyLCAxMTkzMDgsIAorICAgIDExOTMxNCwgMTE5MzIwLCAxMTkzMjYsIDExOTMzMywgMTE5MzM5LCAxMTkzNDUsIDExOTM1MSwgMTE5MzU3LCAxMTkzNjMsIAorICAgIDExOTM2OSwgMTE5Mzc1LCAxMTkzODAsIDExOTM4NiwgMTE5MzkyLCAxMTkzOTgsIDExOTQwNCwgMTE5NDEwLCAxMTk0MTYsIAorICAgIDExOTQyMiwgMTE5NDI4LCAxMTk0MzQsIDExOTQ0MCwgMTE5NDQ2LCAxMTk0NTIsIDExOTQ1OCwgMTE5NDY0LCAxMTk0NzAsIAorICAgIDExOTQ3NiwgMTE5NDgyLCAxMTk0ODksIDExOTQ5NSwgMTE5NTAxLCAxMTk1MDcsIDExOTUxMywgMTE5NTE5LCAxMTk1MjUsIAorICAgIDExOTUzMSwgMTE5NTM4LCAxMTk1NDQsIDExOTU1MCwgMTE5NTU2LCAxMTk1NjIsIDExOTU2OCwgMTE5NTc0LCAxMTk1ODEsIAorICAgIDExOTU4OCwgMTE5NTk1LCAxMTk2MDIsIDExOTYwOSwgMTE5NjE2LCAxMTk2MjMsIDExOTYzMCwgMTE5NjM3LCAxMTk2NDQsIAorICAgIDExOTY1MSwgMTE5NjU4LCAxMTk2NjUsIDExOTY3MiwgMTE5Njc5LCAxMTk2ODYsIDExOTY5MywgMTE5NzAxLCAxMTk3MDgsIAorICAgIDExOTcxNSwgMTE5NzIyLCAxMTk3MjksIDExOTczNiwgMTE5NzQzLCAxMTk3NTAsIDExOTc1NiwgMTE5NzYzLCAxMTk3NzAsIAorICAgIDExOTc3NywgMTE5Nzg0LCAxMTk3OTEsIDExOTc5OCwgMTE5ODA1LCAxMTk4MTIsIDExOTgxOSwgMTE5ODI2LCAxMTk4MzMsIAorICAgIDExOTg0MCwgMTE5ODQ3LCAxMTk4NTQsIDExOTg2MSwgMTE5ODY4LCAxMTk4NzUsIDExOTg4MywgMTE5ODkwLCAxMTk4OTcsIAorICAgIDExOTkwNCwgMTE5OTExLCAxMTk5MTgsIDExOTkyNSwgMTE5OTMyLCAxMTk5NDAsIDExOTk0NywgMTE5OTU0LCAxMTk5NjEsIAorICAgIDExOTk2OCwgMTE5OTc1LCAxMTk5ODIsIDExOTk4NywgMCwgMCwgMTE5OTkyLCAxMTk5OTcsIDEyMDAwMSwgMTIwMDA1LCAKKyAgICAxMjAwMDksIDEyMDAxMywgMTIwMDE3LCAxMjAwMjEsIDEyMDAyNSwgMTIwMDI5LCAxMjAwMzMsIDEyMDAzOCwgMTIwMDQyLCAKKyAgICAxMjAwNDYsIDEyMDA1MCwgMTIwMDU0LCAxMjAwNTgsIDEyMDA2MiwgMTIwMDY2LCAxMjAwNzAsIDEyMDA3NCwgMTIwMDc5LCAKKyAgICAxMjAwODMsIDEyMDA4NywgMTIwMDkxLCAxMjAwOTUsIDEyMDA5OSwgMTIwMTAzLCAxMjAxMDcsIDEyMDExMSwgMTIwMTE1LCAKKyAgICAxMjAxMjEsIDEyMDEyNiwgMTIwMTMxLCAxMjAxMzYsIDEyMDE0MSwgMTIwMTQ2LCAxMjAxNTEsIDEyMDE1NiwgMTIwMTYxLCAKKyAgICAxMjAxNjYsIDEyMDE3MiwgMTIwMTc3LCAxMjAxODIsIDEyMDE4NywgMTIwMTkyLCAxMjAxOTcsIDEyMDIwMiwgMTIwMjA3LCAKKyAgICAxMjAyMTIsIDEyMDIxNywgMTIwMjIxLCAxMjAyMjUsIDEyMDIyOSwgMCwgMTIwMjMzLCAxMjAyMzcsIDEyMDI0MSwgCisgICAgMTIwMjQ1LCAxMjAyNDksIDEyMDI1MywgMTIwMjU3LCAxMjAyNjEsIDEyMDI2NSwgMTIwMjY5LCAxMjAyNzMsIDEyMDI3NywgCisgICAgMTIwMjgxLCAxMjAyODUsIDEyMDI4OSwgMTIwMjkzLCAxMjAyOTcsIDEyMDMwMSwgMTIwMzA1LCAxMjAzMDksIDEyMDMxMywgCisgICAgMTIwMzE3LCAxMjAzMjEsIDEyMDMyNSwgMTIwMzMxLCAxMjAzMzcsIDEyMDM0MywgMCwgMTIwMzQ5LCAxMjAzNTQsIDAsIAorICAgIDEyMDM1OSwgMCwgMCwgMTIwMzY0LCAwLCAxMjAzNjksIDEyMDM3NCwgMTIwMzc5LCAxMjAzODQsIDEyMDM4OSwgMTIwMzk0LCAKKyAgICAxMjAzOTksIDEyMDQwNCwgMTIwNDA5LCAxMjA0MTQsIDAsIDEyMDQxOSwgMTIwNDI0LCAxMjA0MjksIDEyMDQzNCwgMCwgCisgICAgMTIwNDM5LCAwLCAxMjA0NDQsIDAsIDAsIDAsIDAsIDAsIDAsIDEyMDQ0OSwgMCwgMCwgMCwgMCwgMTIwNDU1LCAwLCAKKyAgICAxMjA0NjEsIDAsIDEyMDQ2NywgMCwgMTIwNDczLCAxMjA0NzksIDEyMDQ4NSwgMCwgMTIwNDkxLCAxMjA0OTcsIDAsIAorICAgIDEyMDUwMywgMCwgMCwgMTIwNTA5LCAwLCAxMjA1MTUsIDAsIDEyMDUyMSwgMCwgMTIwNTI3LCAwLCAxMjA1MzUsIDAsIAorICAgIDEyMDU0MywgMTIwNTQ5LCAwLCAxMjA1NTUsIDAsIDAsIDEyMDU2MSwgMTIwNTY3LCAxMjA1NzMsIDEyMDU3OSwgMCwgCisgICAgMTIwNTg1LCAxMjA1OTEsIDEyMDU5NywgMTIwNjAzLCAxMjA2MDksIDEyMDYxNSwgMTIwNjIxLCAwLCAxMjA2MjcsIAorICAgIDEyMDYzMywgMTIwNjM5LCAxMjA2NDUsIDAsIDEyMDY1MSwgMTIwNjU3LCAxMjA2NjMsIDEyMDY2OSwgMCwgMTIwNjc3LCAwLCAKKyAgICAxMjA2ODUsIDEyMDY5MSwgMTIwNjk3LCAxMjA3MDMsIDEyMDcwOSwgMTIwNzE1LCAxMjA3MjEsIDEyMDcyNywgMTIwNzMzLCAKKyAgICAxMjA3MzksIDAsIDEyMDc0NSwgMTIwNzUxLCAxMjA3NTcsIDEyMDc2MywgMTIwNzY5LCAxMjA3NzUsIDEyMDc4MSwgCisgICAgMTIwNzg3LCAxMjA3OTMsIDEyMDc5OSwgMTIwODA1LCAxMjA4MTEsIDEyMDgxNywgMTIwODIzLCAxMjA4MjksIDEyMDgzNSwgCisgICAgMTIwODQxLCAwLCAwLCAwLCAwLCAwLCAxMjA4NDcsIDEyMDg1MiwgMTIwODU3LCAwLCAxMjA4NjIsIDEyMDg2NywgMTIwODcyLCAKKyAgICAxMjA4NzcsIDEyMDg4MiwgMCwgMTIwODg3LCAxMjA4OTIsIDEyMDg5NywgMTIwOTAyLCAxMjA5MDcsIDEyMDkxMiwgCisgICAgMTIwOTE3LCAxMjA5MjIsIDEyMDkyNywgMTIwOTMyLCAxMjA5MzcsIDEyMDk0MiwgMTIwOTQ3LCAxMjA5NTIsIDEyMDk1NywgCisgICAgMTIwOTYyLCAxMjA5NjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyMDk2NywgMTIwOTc3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAxMjA5ODUsIDEyMDk5MiwgMTIwOTk5LCAxMjEwMDYsIDEyMTAxMywgMTIxMDIwLCAxMjEwMjcsIAotICAgIDEyMTAzMywgMTIxMDQwLCAxMjEwNDcsIDEyMTA1NCwgMTIxMDYyLCAxMjEwNzAsIDEyMTA3OCwgMTIxMDg2LCAxMjEwOTQsIAotICAgIDEyMTEwMiwgMTIxMTA5LCAxMjExMTYsIDEyMTEyMywgMTIxMTMxLCAxMjExMzksIDEyMTE0NywgMTIxMTU1LCAxMjExNjMsIAotICAgIDEyMTE3MSwgMTIxMTc4LCAxMjExODUsIDEyMTE5MiwgMTIxMjAwLCAxMjEyMDgsIDEyMTIxNiwgMTIxMjI0LCAxMjEyMzIsIAotICAgIDEyMTI0MCwgMTIxMjQ1LCAxMjEyNTAsIDEyMTI1NSwgMTIxMjYwLCAxMjEyNjUsIDEyMTI3MCwgMTIxMjc1LCAxMjEyODAsIAotICAgIDEyMTI4NSwgMCwgMCwgMCwgMCwgMTIxMjkwLCAxMjEyOTUsIDEyMTI5OSwgMTIxMzAzLCAxMjEzMDcsIDEyMTMxMSwgCi0gICAgMTIxMzE1LCAxMjEzMTksIDEyMTMyMywgMTIxMzI3LCAxMjEzMzEsIDEyMTMzNSwgMTIxMzM5LCAxMjEzNDMsIDEyMTM0NywgCi0gICAgMTIxMzUxLCAxMjEzNTUsIDEyMTM1OSwgMTIxMzYzLCAxMjEzNjcsIDEyMTM3MSwgMTIxMzc1LCAxMjEzNzksIDEyMTM4MywgCi0gICAgMTIxMzg3LCAxMjEzOTEsIDEyMTM5NSwgMTIxMzk5LCAxMjE0MDMsIDEyMTQwNywgMTIxNDExLCAxMjE0MTUsIDEyMTQxOSwgCi0gICAgMTIxNDIzLCAxMjE0MjcsIDEyMTQzMSwgMTIxNDM1LCAxMjE0MzksIDEyMTQ0MywgMTIxNDQ3LCAxMjE0NTEsIDEyMTQ1NSwgCi0gICAgMTIxNDU5LCAxMjE0NjMsIDEyMTQ2NywgMTIxNDcxLCAxMjE0NzUsIDEyMTQ3OSwgMTIxNDgzLCAxMjE0ODcsIDEyMTQ5MSwgCi0gICAgMTIxNDk2LCAxMjE1MDAsIDEyMTUwNCwgMTIxNTA4LCAxMjE1MTIsIDEyMTUxNiwgMTIxNTIwLCAxMjE1MjQsIDEyMTUyOCwgCi0gICAgMTIxNTMyLCAxMjE1MzYsIDEyMTU0MCwgMTIxNTQ0LCAxMjE1NDgsIDEyMTU1MiwgMTIxNTU2LCAxMjE1NjAsIDEyMTU2NCwgCi0gICAgMTIxNTY4LCAxMjE1NzIsIDEyMTU3NiwgMTIxNTgwLCAxMjE1ODQsIDEyMTU4OCwgMTIxNTkyLCAxMjE1OTYsIDEyMTYwMCwgCi0gICAgMTIxNjA0LCAxMjE2MDgsIDEyMTYxMiwgMTIxNjE2LCAxMjE2MjAsIDEyMTYyNCwgMTIxNjI4LCAxMjE2MzIsIDEyMTYzNiwgCi0gICAgMTIxNjQwLCAxMjE2NDQsIDEyMTY0OCwgMTIxNjUyLCAxMjE2NTYsIDEyMTY2MCwgMTIxNjY0LCAxMjE2NjgsIDEyMTY3MiwgCi0gICAgMTIxNjc2LCAxMjE2ODAsIDEyMTY4NCwgMTIxNjg4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAxMjE2OTIsIDEyMTY5OCwgMTIxNzA3LCAxMjE3MTUsIDEyMTcyMywgMTIxNzMyLCAxMjE3NDEsIDEyMTc1MCwgMTIxNzU5LCAKLSAgICAxMjE3NjgsIDEyMTc3NywgMTIxNzg2LCAxMjE3OTUsIDEyMTgwNCwgMTIxODEzLCAwLCAwLCAxMjE4MjIsIDEyMTgzMSwgCi0gICAgMTIxODM5LCAxMjE4NDcsIDEyMTg1NiwgMTIxODY1LCAxMjE4NzQsIDEyMTg4MywgMTIxODkyLCAxMjE5MDEsIDEyMTkxMCwgCi0gICAgMTIxOTE5LCAxMjE5MjgsIDEyMTkzNywgMCwgMCwgMTIxOTQ2LCAxMjE5NTUsIDEyMTk2MywgMTIxOTcxLCAxMjE5ODAsIAotICAgIDEyMTk4OSwgMTIxOTk4LCAxMjIwMDcsIDEyMjAxNiwgMTIyMDI1LCAxMjIwMzQsIDEyMjA0MywgMTIyMDUyLCAxMjIwNjEsIAotICAgIDEyMjA3MCwgMCwgMTIyMDc3LCAxMjIwODYsIDEyMjA5NCwgMTIyMTAyLCAxMjIxMTEsIDEyMjEyMCwgMTIyMTI5LCAKLSAgICAxMjIxMzgsIDEyMjE0NywgMTIyMTU2LCAxMjIxNjUsIDEyMjE3NCwgMTIyMTgzLCAxMjIxOTIsIDEyMjIwMSwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTIwOTcyLCAxMjA5ODIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDEyMDk5MCwgMTIwOTk3LCAxMjEwMDQsIDEyMTAxMSwgMTIxMDE4LCAxMjEwMjUsIDEyMTAzMiwgCisgICAgMTIxMDM4LCAxMjEwNDUsIDEyMTA1MiwgMTIxMDU5LCAxMjEwNjcsIDEyMTA3NSwgMTIxMDgzLCAxMjEwOTEsIDEyMTA5OSwgCisgICAgMTIxMTA3LCAxMjExMTQsIDEyMTEyMSwgMTIxMTI4LCAxMjExMzYsIDEyMTE0NCwgMTIxMTUyLCAxMjExNjAsIDEyMTE2OCwgCisgICAgMTIxMTc2LCAxMjExODMsIDEyMTE5MCwgMTIxMTk3LCAxMjEyMDUsIDEyMTIxMywgMTIxMjIxLCAxMjEyMjksIDEyMTIzNywgCisgICAgMTIxMjQ1LCAxMjEyNTAsIDEyMTI1NSwgMTIxMjYwLCAxMjEyNjUsIDEyMTI3MCwgMTIxMjc1LCAxMjEyODAsIDEyMTI4NSwgCisgICAgMTIxMjkwLCAwLCAwLCAwLCAwLCAxMjEyOTUsIDEyMTMwMCwgMTIxMzA0LCAxMjEzMDgsIDEyMTMxMiwgMTIxMzE2LCAKKyAgICAxMjEzMjAsIDEyMTMyNCwgMTIxMzI4LCAxMjEzMzIsIDEyMTMzNiwgMTIxMzQwLCAxMjEzNDQsIDEyMTM0OCwgMTIxMzUyLCAKKyAgICAxMjEzNTYsIDEyMTM2MCwgMTIxMzY0LCAxMjEzNjgsIDEyMTM3MiwgMTIxMzc2LCAxMjEzODAsIDEyMTM4NCwgMTIxMzg4LCAKKyAgICAxMjEzOTIsIDEyMTM5NiwgMTIxNDAwLCAxMjE0MDQsIDEyMTQwOCwgMTIxNDEyLCAxMjE0MTYsIDEyMTQyMCwgMTIxNDI0LCAKKyAgICAxMjE0MjgsIDEyMTQzMiwgMTIxNDM2LCAxMjE0NDAsIDEyMTQ0NCwgMTIxNDQ4LCAxMjE0NTIsIDEyMTQ1NiwgMTIxNDYwLCAKKyAgICAxMjE0NjQsIDEyMTQ2OCwgMTIxNDcyLCAxMjE0NzYsIDEyMTQ4MCwgMTIxNDg0LCAxMjE0ODgsIDEyMTQ5MiwgMTIxNDk2LCAKKyAgICAxMjE1MDEsIDEyMTUwNSwgMTIxNTA5LCAxMjE1MTMsIDEyMTUxNywgMTIxNTIxLCAxMjE1MjUsIDEyMTUyOSwgMTIxNTMzLCAKKyAgICAxMjE1MzcsIDEyMTU0MSwgMTIxNTQ1LCAxMjE1NDksIDEyMTU1MywgMTIxNTU3LCAxMjE1NjEsIDEyMTU2NSwgMTIxNTY5LCAKKyAgICAxMjE1NzMsIDEyMTU3NywgMTIxNTgxLCAxMjE1ODUsIDEyMTU4OSwgMTIxNTkzLCAxMjE1OTcsIDEyMTYwMSwgMTIxNjA1LCAKKyAgICAxMjE2MDksIDEyMTYxMywgMTIxNjE3LCAxMjE2MjEsIDEyMTYyNSwgMTIxNjI5LCAxMjE2MzMsIDEyMTYzNywgMTIxNjQxLCAKKyAgICAxMjE2NDUsIDEyMTY0OSwgMTIxNjUzLCAxMjE2NTcsIDEyMTY2MSwgMTIxNjY1LCAxMjE2NjksIDEyMTY3MywgMTIxNjc3LCAKKyAgICAxMjE2ODEsIDEyMTY4NSwgMTIxNjg5LCAxMjE2OTMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDEyMTY5NywgMTIxNzAzLCAxMjE3MTIsIDEyMTcyMCwgMTIxNzI4LCAxMjE3MzcsIDEyMTc0NiwgMTIxNzU1LCAxMjE3NjQsIAorICAgIDEyMTc3MywgMTIxNzgyLCAxMjE3OTEsIDEyMTgwMCwgMTIxODA5LCAxMjE4MTgsIDAsIDAsIDEyMTgyNywgMTIxODM2LCAKKyAgICAxMjE4NDQsIDEyMTg1MiwgMTIxODYxLCAxMjE4NzAsIDEyMTg3OSwgMTIxODg4LCAxMjE4OTcsIDEyMTkwNiwgMTIxOTE1LCAKKyAgICAxMjE5MjQsIDEyMTkzMywgMTIxOTQyLCAwLCAwLCAxMjE5NTEsIDEyMTk2MCwgMTIxOTY4LCAxMjE5NzYsIDEyMTk4NSwgCisgICAgMTIxOTk0LCAxMjIwMDMsIDEyMjAxMiwgMTIyMDIxLCAxMjIwMzAsIDEyMjAzOSwgMTIyMDQ4LCAxMjIwNTcsIDEyMjA2NiwgCisgICAgMTIyMDc1LCAwLCAxMjIwODIsIDEyMjA5MSwgMTIyMDk5LCAxMjIxMDcsIDEyMjExNiwgMTIyMTI1LCAxMjIxMzQsIAorICAgIDEyMjE0MywgMTIyMTUyLCAxMjIxNjEsIDEyMjE3MCwgMTIyMTc5LCAxMjIxODgsIDEyMjE5NywgMTIyMjA2LCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAxMjIyMDgsIDEyMjIxNSwgMTIyMjIwLCAxMjIyMjQsIDEyMjIyOCwgMTIyMjMyLCAxMjIyMzcsIAotICAgIDEyMjI0MiwgMTIyMjQ3LCAxMjIyNTIsIDEyMjI1NywgMCwgMCwgMCwgMCwgMCwgMTIyMjYyLCAxMjIyNjcsIDEyMjI3MywgCi0gICAgMTIyMjc5LCAxMjIyODUsIDEyMjI5MCwgMTIyMjk2LCAxMjIzMDIsIDEyMjMwOCwgMTIyMzEzLCAxMjIzMTksIDEyMjMyNSwgCi0gICAgMTIyMzMwLCAxMjIzMzUsIDEyMjM0MSwgMTIyMzQ2LCAxMjIzNTIsIDEyMjM1OCwgMTIyMzYzLCAxMjIzNjksIDEyMjM3NSwgCi0gICAgMTIyMzgwLCAxMjIzODYsIDEyMjM5MiwgMTIyMzk4LCAxMjI0MDQsIDEyMjQxMCwgMTIyNDIxLCAxMjI0MjgsIDEyMjQzNCwgCi0gICAgMTIyNDM3LCAwLCAxMjI0NDAsIDEyMjQ0NSwgMTIyNDUxLCAxMjI0NTcsIDEyMjQ2MywgMTIyNDY4LCAxMjI0NzQsIAotICAgIDEyMjQ4MCwgMTIyNDg2LCAxMjI0OTEsIDEyMjQ5NywgMTIyNTAzLCAxMjI1MDgsIDEyMjUxMywgMTIyNTE5LCAxMjI1MjQsIAotICAgIDEyMjUzMCwgMTIyNTM2LCAxMjI1NDEsIDEyMjU0NywgMTIyNTUzLCAxMjI1NTgsIDEyMjU2NCwgMTIyNTcwLCAxMjI1NzYsIAotICAgIDEyMjU4MiwgMTIyNTg4LCAxMjI1OTEsIDEyMjU5NCwgMTIyNTk3LCAxMjI2MDAsIDEyMjYwMywgMTIyNjA2LCAxMjI2MTIsIAotICAgIDEyMjYxOSwgMTIyNjI2LCAxMjI2MzMsIDEyMjYzOSwgMTIyNjQ2LCAxMjI2NTMsIDEyMjY2MCwgMTIyNjY2LCAxMjI2NzMsIAotICAgIDEyMjY4MCwgMTIyNjg2LCAxMjI2OTIsIDEyMjY5OSwgMTIyNzA1LCAxMjI3MTIsIDEyMjcxOSwgMTIyNzI1LCAxMjI3MzIsIAotICAgIDEyMjczOSwgMTIyNzQ1LCAxMjI3NTIsIDEyMjc1OSwgMTIyNzY2LCAxMjI3NzMsIDEyMjc4MCwgMTIyNzg1LCAwLCAwLCAwLCAKLSAgICAwLCAxMjI3OTAsIDEyMjc5NiwgMTIyODAzLCAxMjI4MTAsIDEyMjgxNywgMTIyODIzLCAxMjI4MzAsIDEyMjgzNywgCi0gICAgMTIyODQ0LCAxMjI4NTAsIDEyMjg1NywgMTIyODY0LCAxMjI4NzAsIDEyMjg3NiwgMTIyODgzLCAxMjI4ODksIDEyMjg5NiwgCi0gICAgMTIyOTAzLCAxMjI5MDksIDEyMjkxNiwgMTIyOTIzLCAxMjI5MjksIDEyMjkzNiwgMTIyOTQzLCAxMjI5NTAsIDEyMjk1NywgCi0gICAgMTIyOTY0LCAxMjI5NzMsIDEyMjk3NywgMTIyOTgwLCAxMjI5ODMsIDEyMjk4NywgMTIyOTkxLCAxMjI5OTQsIDEyMjk5NywgCi0gICAgMTIzMDAwLCAxMjMwMDMsIDEyMzAwNiwgMTIzMDA5LCAxMjMwMTIsIDEyMzAxNSwgMTIzMDE4LCAxMjMwMjQsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDEyMjIxMywgMTIyMjIwLCAxMjIyMjUsIDEyMjIyOSwgMTIyMjMzLCAxMjIyMzcsIDEyMjI0MiwgCisgICAgMTIyMjQ3LCAxMjIyNTIsIDEyMjI1NywgMTIyMjYyLCAwLCAwLCAwLCAwLCAwLCAxMjIyNjcsIDEyMjI3MiwgMTIyMjc4LCAKKyAgICAxMjIyODQsIDEyMjI5MCwgMTIyMjk1LCAxMjIzMDEsIDEyMjMwNywgMTIyMzEzLCAxMjIzMTgsIDEyMjMyNCwgMTIyMzMwLCAKKyAgICAxMjIzMzUsIDEyMjM0MCwgMTIyMzQ2LCAxMjIzNTEsIDEyMjM1NywgMTIyMzYzLCAxMjIzNjgsIDEyMjM3NCwgMTIyMzgwLCAKKyAgICAxMjIzODUsIDEyMjM5MSwgMTIyMzk3LCAxMjI0MDMsIDEyMjQwOSwgMTIyNDE1LCAxMjI0MjYsIDEyMjQzMywgMTIyNDM5LCAKKyAgICAxMjI0NDIsIDAsIDEyMjQ0NSwgMTIyNDUwLCAxMjI0NTYsIDEyMjQ2MiwgMTIyNDY4LCAxMjI0NzMsIDEyMjQ3OSwgCisgICAgMTIyNDg1LCAxMjI0OTEsIDEyMjQ5NiwgMTIyNTAyLCAxMjI1MDgsIDEyMjUxMywgMTIyNTE4LCAxMjI1MjQsIDEyMjUyOSwgCisgICAgMTIyNTM1LCAxMjI1NDEsIDEyMjU0NiwgMTIyNTUyLCAxMjI1NTgsIDEyMjU2MywgMTIyNTY5LCAxMjI1NzUsIDEyMjU4MSwgCisgICAgMTIyNTg3LCAxMjI1OTMsIDEyMjU5NiwgMTIyNTk5LCAxMjI2MDIsIDEyMjYwNSwgMTIyNjA4LCAxMjI2MTEsIDEyMjYxNywgCisgICAgMTIyNjI0LCAxMjI2MzEsIDEyMjYzOCwgMTIyNjQ0LCAxMjI2NTEsIDEyMjY1OCwgMTIyNjY1LCAxMjI2NzEsIDEyMjY3OCwgCisgICAgMTIyNjg1LCAxMjI2OTEsIDEyMjY5NywgMTIyNzA0LCAxMjI3MTAsIDEyMjcxNywgMTIyNzI0LCAxMjI3MzAsIDEyMjczNywgCisgICAgMTIyNzQ0LCAxMjI3NTAsIDEyMjc1NywgMTIyNzY0LCAxMjI3NzEsIDEyMjc3OCwgMTIyNzg1LCAxMjI3OTAsIDAsIDAsIDAsIAorICAgIDAsIDEyMjc5NSwgMTIyODAxLCAxMjI4MDgsIDEyMjgxNSwgMTIyODIyLCAxMjI4MjgsIDEyMjgzNSwgMTIyODQyLCAKKyAgICAxMjI4NDksIDEyMjg1NSwgMTIyODYyLCAxMjI4NjksIDEyMjg3NSwgMTIyODgxLCAxMjI4ODgsIDEyMjg5NCwgMTIyOTAxLCAKKyAgICAxMjI5MDgsIDEyMjkxNCwgMTIyOTIxLCAxMjI5MjgsIDEyMjkzNCwgMTIyOTQxLCAxMjI5NDgsIDEyMjk1NSwgMTIyOTYyLCAKKyAgICAxMjI5NjksIDEyMjk3OCwgMTIyOTgyLCAxMjI5ODUsIDEyMjk4OCwgMTIyOTkyLCAxMjI5OTYsIDEyMjk5OSwgMTIzMDAyLCAKKyAgICAxMjMwMDUsIDEyMzAwOCwgMTIzMDExLCAxMjMwMTQsIDEyMzAxNywgMTIzMDIwLCAxMjMwMjMsIDEyMzAyOSwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMTIzMDI3LCAxMjMwMzQsIDEyMzA0MiwgMTIzMDUwLCAxMjMwNTgsIDEyMzA2NSwgMTIzMDczLCAxMjMwODEsIDEyMzA4OSwgCi0gICAgMTIzMDk2LCAxMjMxMDQsIDEyMzExMiwgMTIzMTE5LCAxMjMxMjYsIDEyMzEzNCwgMTIzMTQxLCAxMjMxNDksIDEyMzE1NywgCi0gICAgMTIzMTY0LCAxMjMxNzIsIDEyMzE4MCwgMTIzMTg3LCAxMjMxOTUsIDEyMzIwMywgMTIzMjExLCAxMjMyMTksIDEyMzIyNywgCi0gICAgMTIzMjMxLCAxMjMyMzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyMzIzOCwgMTIzMjQ0LCAKLSAgICAxMjMyNTAsIDEyMzI1NiwgMTIzMjYwLCAxMjMyNjYsIDEyMzI3MiwgMTIzMjc4LCAxMjMyODQsIDEyMzI5MCwgMTIzMjk2LCAKLSAgICAxMjMzMDIsIDEyMzMwOCwgMTIzMzE0LCAxMjMzMjAsIDEyMzMyNiwgMTIzMzMyLCAxMjMzMzgsIDEyMzM0NCwgMTIzMzUwLCAKLSAgICAxMjMzNTYsIDEyMzM2MiwgMTIzMzY4LCAxMjMzNzQsIDEyMzM4MCwgMTIzMzg2LCAxMjMzOTIsIDEyMzM5OCwgMTIzNDA0LCAKLSAgICAxMjM0MTAsIDEyMzQxNiwgMTIzNDIyLCAxMjM0MjgsIDEyMzQzNCwgMTIzNDQwLCAxMjM0NDYsIDEyMzQ1MiwgMTIzNDU4LCAKLSAgICAxMjM0NjQsIDEyMzQ3MCwgMTIzNDc2LCAxMjM0ODIsIDEyMzQ4OCwgMCwgMCwgMCwgMCwgMCwgMTIzNDk0LCAxMjM1MDUsIAotICAgIDEyMzUxNiwgMTIzNTI3LCAxMjM1MzgsIDEyMzU0OSwgMTIzNTYwLCAxMjM1NzEsIDEyMzU4MiwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMTIzNTkzLCAxMjM1OTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDEyMzAzMiwgMTIzMDM5LCAxMjMwNDcsIDEyMzA1NSwgMTIzMDYzLCAxMjMwNzAsIDEyMzA3OCwgMTIzMDg2LCAxMjMwOTQsIAorICAgIDEyMzEwMSwgMTIzMTA5LCAxMjMxMTcsIDEyMzEyNCwgMTIzMTMxLCAxMjMxMzksIDEyMzE0NiwgMTIzMTU0LCAxMjMxNjIsIAorICAgIDEyMzE2OSwgMTIzMTc3LCAxMjMxODUsIDEyMzE5MiwgMTIzMjAwLCAxMjMyMDgsIDEyMzIxNiwgMTIzMjI0LCAxMjMyMzIsIAorICAgIDEyMzIzNiwgMTIzMjQwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjMyNDMsIDEyMzI0OSwgCisgICAgMTIzMjU1LCAxMjMyNjEsIDEyMzI2NSwgMTIzMjcxLCAxMjMyNzcsIDEyMzI4MywgMTIzMjg5LCAxMjMyOTUsIDEyMzMwMSwgCisgICAgMTIzMzA3LCAxMjMzMTMsIDEyMzMxOSwgMTIzMzI1LCAxMjMzMzEsIDEyMzMzNywgMTIzMzQzLCAxMjMzNDksIDEyMzM1NSwgCisgICAgMTIzMzYxLCAxMjMzNjcsIDEyMzM3MywgMTIzMzc5LCAxMjMzODUsIDEyMzM5MSwgMTIzMzk3LCAxMjM0MDMsIDEyMzQwOSwgCisgICAgMTIzNDE1LCAxMjM0MjEsIDEyMzQyNywgMTIzNDMzLCAxMjM0MzksIDEyMzQ0NSwgMTIzNDUxLCAxMjM0NTcsIDEyMzQ2MywgCisgICAgMTIzNDY5LCAxMjM0NzUsIDEyMzQ4MSwgMTIzNDg3LCAxMjM0OTMsIDAsIDAsIDAsIDAsIDAsIDEyMzQ5OSwgMTIzNTEwLCAKKyAgICAxMjM1MjEsIDEyMzUzMiwgMTIzNTQzLCAxMjM1NTQsIDEyMzU2NSwgMTIzNTc2LCAxMjM1ODcsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDEyMzU5OCwgMTIzNjAyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAxMjM2MDEsIDEyMzYwMywgMTIzNjA1LCAxMjM2MDksIDEyMzYxNCwgMTIzNjE5LCAxMjM2MjEsIAotICAgIDEyMzYyNywgMTIzNjMyLCAxMjM2MzQsIDEyMzY0MCwgMTIzNjQ0LCAxMjM2NDYsIDEyMzY1MCwgMTIzNjU2LCAxMjM2NjIsIAotICAgIDEyMzY2OCwgMTIzNjczLCAxMjM2NzcsIDEyMzY4NCwgMTIzNjkxLCAxMjM2OTgsIDEyMzcwMywgMTIzNzEwLCAxMjM3MTcsIAotICAgIDEyMzcyNCwgMTIzNzI4LCAxMjM3MzQsIDEyMzc0MywgMTIzNzUyLCAxMjM3NTksIDEyMzc2NCwgMTIzNzY4LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjM3NzIsIDEyMzc3NCwgMTIzNzc2LCAxMjM3ODAsIAotICAgIDEyMzc4NCwgMTIzNzg4LCAwLCAxMjM3OTAsIDEyMzc5MiwgMTIzNzk2LCAxMjM3OTgsIDEyMzgwMCwgMTIzODAyLCAKLSAgICAxMjM4MDQsIDEyMzgwOSwgMTIzODE0LCAxMjM4MTYsIDEyMzgyMiwgMTIzODI2LCAxMjM4MzAsIDEyMzgzOCwgMTIzODQwLCAKLSAgICAxMjM4NDIsIDEyMzg0NCwgMTIzODQ2LCAxMjM4NDgsIDEyMzg1MCwgMTIzODUyLCAxMjM4NTQsIDEyMzg1NiwgMTIzODU4LCAKLSAgICAxMjM4NjIsIDEyMzg2NiwgMTIzODY4LCAxMjM4NzAsIDEyMzg3MiwgMTIzODc0LCAxMjM4NzYsIDEyMzg4MSwgMTIzODg3LCAKLSAgICAxMjM4OTEsIDEyMzg5NSwgMTIzODk5LCAxMjM5MDMsIDEyMzkwOCwgMTIzOTEyLCAxMjM5MTQsIDEyMzkxNiwgMTIzOTIwLCAKLSAgICAxMjM5MjYsIDEyMzkyOCwgMTIzOTMwLCAxMjM5MzIsIDEyMzkzNiwgMTIzOTQ1LCAxMjM5NTEsIDEyMzk1NSwgMTIzOTU5LCAKLSAgICAxMjM5NjEsIDEyMzk2MywgMTIzOTY2LCAxMjM5NjgsIDEyMzk3MCwgMTIzOTcyLCAxMjM5NzYsIDEyMzk3OCwgMTIzOTgyLCAKLSAgICAxMjM5ODcsIDEyMzk4OSwgMTIzOTk0LCAxMjQwMDAsIDEyNDAwNywgMTI0MDExLCAxMjQwMTUsIDEyNDAxOSwgMTI0MDIzLCAKLSAgICAxMjQwMjksIDAsIDAsIDAsIDEyNDAzMywgMTI0MDM1LCAxMjQwMzksIDEyNDA0MywgMTI0MDQ1LCAxMjQwNDksIDEyNDA1MywgCi0gICAgMTI0MDU1LCAxMjQwNTksIDEyNDA2MSwgMTI0MDY1LCAxMjQwNjksIDEyNDA3MywgMTI0MDc3LCAxMjQwODEsIDEyNDA4NSwgCi0gICAgMTI0MDg5LCAxMjQwOTMsIDEyNDA5OSwgMTI0MTAzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAxMjQxMDcsIDEyNDExMSwgMTI0MTE1LCAxMjQxMTksIDEyNDEyNiwgMTI0MTI4LCAxMjQxMzIsIDEyNDEzNCwgMTI0MTM2LCAKLSAgICAxMjQxNDAsIDEyNDE0NCwgMTI0MTQ4LCAxMjQxNTAsIDEyNDE1NCwgMTI0MTU4LCAxMjQxNjIsIDEyNDE2NiwgMTI0MTcwLCAKLSAgICAxMjQxNzIsIDEyNDE3NiwgMTI0MTc4LCAxMjQxODQsIDEyNDE4NywgMTI0MTkyLCAxMjQxOTQsIDEyNDE5NiwgMTI0MTk5LCAKLSAgICAxMjQyMDEsIDEyNDIwMywgMTI0MjA2LCAxMjQyMTMsIDEyNDIyMCwgMTI0MjI3LCAxMjQyMzIsIDEyNDIzNiwgMTI0MjM4LCAKLSAgICAxMjQyNDAsIDAsIDEyNDI0MiwgMTI0MjQ0LCAxMjQyNDgsIDEyNDI1MiwgMTI0MjU2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjQyNTgsIDEyNDI2MiwgMTI0MjY3LCAxMjQyNzEsIAotICAgIDEyNDI3NywgMTI0MjgzLCAxMjQyODUsIDEyNDI4NywgMTI0MjkzLCAxMjQyOTUsIDEyNDI5OSwgMTI0MzAzLCAxMjQzMDUsIAotICAgIDEyNDMwOSwgMTI0MzExLCAxMjQzMTUsIDEyNDMxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMTI0MzIzLCAxMjQzMjUsIDEyNDMyNywgMTI0MzI5LCAxMjQzMzMsIDEyNDMzNSwgMTI0MzM3LCAxMjQzMzksIAotICAgIDEyNDM0MSwgMTI0MzQzLCAxMjQzNDUsIDEyNDM0NywgMTI0MzQ5LCAxMjQzNTEsIDEyNDM1MywgMTI0MzU1LCAxMjQzNTcsIAotICAgIDEyNDM1OSwgMTI0MzYxLCAxMjQzNjMsIDEyNDM2NSwgMTI0MzY3LCAxMjQzNjksIDEyNDM3MSwgMTI0MzczLCAxMjQzNzUsIAotICAgIDEyNDM3NywgMTI0MzgxLCAxMjQzODMsIDEyNDM4NSwgMTI0Mzg3LCAxMjQzOTEsIDEyNDM5MywgMTI0Mzk3LCAxMjQzOTksIAotICAgIDEyNDQwMSwgMTI0NDA1LCAxMjQ0MDksIDEyNDQxNSwgMTI0NDE3LCAxMjQ0MTksIDEyNDQyMSwgMTI0NDIzLCAxMjQ0MjcsIAotICAgIDEyNDQzMSwgMTI0NDMzLCAxMjQ0MzcsIDEyNDQ0MSwgMTI0NDQ1LCAxMjQ0NDksIDEyNDQ1MywgMTI0NDU3LCAxMjQ0NjEsIAotICAgIDEyNDQ2NSwgMTI0NDY5LCAxMjQ0NzMsIDEyNDQ3NywgMTI0NDgxLCAxMjQ0ODUsIDEyNDQ4OSwgMTI0NDkzLCAxMjQ0OTcsIAotICAgIDEyNDUwMSwgMCwgMTI0NTA1LCAwLCAxMjQ1MDcsIDEyNDUwOSwgMTI0NTExLCAxMjQ1MTMsIDEyNDUxNSwgMTI0NTIzLCAKLSAgICAxMjQ1MzEsIDEyNDUzOSwgMTI0NTQ3LCAxMjQ1NTIsIDEyNDU1NywgMTI0NTYyLCAxMjQ1NjYsIDEyNDU3MCwgMTI0NTc1LCAKLSAgICAxMjQ1NzksIDEyNDU4MSwgMTI0NTg1LCAxMjQ1ODcsIDEyNDU4OSwgMTI0NTkxLCAxMjQ1OTMsIDEyNDU5NSwgMTI0NTk3LCAKLSAgICAxMjQ1OTksIDEyNDYwMywgMTI0NjA1LCAxMjQ2MDcsIDEyNDYwOSwgMTI0NjEzLCAxMjQ2MTcsIDEyNDYyMSwgMTI0NjI1LCAKLSAgICAxMjQ2MjksIDEyNDYzMSwgMTI0NjM3LCAxMjQ2NDMsIDEyNDY0NSwgMTI0NjQ3LCAxMjQ2NDksIDEyNDY1MSwgMTI0NjUzLCAKLSAgICAxMjQ2NjIsIDEyNDY2OSwgMTI0Njc2LCAxMjQ2ODAsIDEyNDY4NywgMTI0NjkyLCAxMjQ2OTksIDEyNDcwOCwgMTI0NzEzLCAKLSAgICAxMjQ3MTcsIDEyNDcyMSwgMTI0NzIzLCAxMjQ3MjcsIDEyNDcyOSwgMTI0NzMzLCAxMjQ3MzcsIDEyNDczOSwgMTI0NzQzLCAKLSAgICAxMjQ3NDcsIDEyNDc1MSwgMTI0NzUzLCAxMjQ3NTUsIDEyNDc2MSwgMTI0NzYzLCAxMjQ3NjUsIDEyNDc2NywgMTI0NzcxLCAKLSAgICAxMjQ3NzUsIDEyNDc3NywgMTI0NzgxLCAxMjQ3ODMsIDEyNDc4NSwgMTI0Nzg4LCAxMjQ3OTIsIDEyNDc5NCwgMTI0Nzk4LCAKLSAgICAxMjQ4MDAsIDEyNDgwMiwgMTI0ODA3LCAxMjQ4MDksIDEyNDgxMywgMTI0ODE3LCAxMjQ4MjAsIDEyNDgyNCwgMTI0ODI4LCAKLSAgICAxMjQ4MzIsIDEyNDgzNiwgMTI0ODQwLCAxMjQ4NDQsIDEyNDg0OCwgMTI0ODUzLCAxMjQ4NTcsIDEyNDg2MSwgMTI0ODcwLCAKLSAgICAxMjQ4NzUsIDEyNDg3OCwgMTI0ODgwLCAxMjQ4ODMsIDEyNDg4NiwgMTI0ODkxLCAxMjQ4OTMsIDEyNDg5NiwgMTI0OTAxLCAKLSAgICAxMjQ5MDUsIDEyNDkwOCwgMTI0OTEyLCAxMjQ5MTYsIDEyNDkxOSwgMTI0OTI0LCAxMjQ5MjgsIDEyNDkzMiwgMTI0OTM2LCAKLSAgICAxMjQ5NDAsIDEyNDk0NiwgMTI0OTUyLCAxMjQ5NTgsIDEyNDk2NCwgMTI0OTY5LCAxMjQ5ODAsIDEyNDk4MiwgMTI0OTg2LCAKLSAgICAxMjQ5ODgsIDEyNDk5MCwgMTI0OTk0LCAxMjQ5OTgsIDEyNTAwMCwgMTI1MDA0LCAxMjUwMDksIDEyNTAxNCwgMTI1MDIwLCAKLSAgICAxMjUwMjIsIDEyNTAyNiwgMTI1MDMwLCAxMjUwMzcsIDEyNTA0NCwgMTI1MDQ4LCAxMjUwNTAsIDEyNTA1MiwgMTI1MDU2LCAKLSAgICAxMjUwNTgsIDEyNTA2MiwgMTI1MDY2LCAxMjUwNzAsIDEyNTA3MiwgMTI1MDc0LCAxMjUwODEsIDEyNTA4NSwgMTI1MDg4LCAKLSAgICAxMjUwOTIsIDEyNTA5NiwgMTI1MTAwLCAxMjUxMDIsIDEyNTEwNiwgMTI1MTA4LCAxMjUxMTAsIDEyNTExNCwgMTI1MTE2LCAKLSAgICAxMjUxMjAsIDEyNTEyNCwgMTI1MTMwLCAxMjUxMzQsIDEyNTEzOCwgMTI1MTQyLCAxMjUxNDQsIDEyNTE0NywgMTI1MTUxLCAKLSAgICAxMjUxNTgsIDEyNTE2NywgMTI1MTc2LCAxMjUxODQsIDEyNTE5MiwgMTI1MTk0LCAxMjUxOTgsIDEyNTIwMCwgMTI1MjA0LCAKLSAgICAxMjUyMTUsIDEyNTIxOSwgMTI1MjI1LCAxMjUyMzEsIDEyNTIzNiwgMCwgMTI1MjM4LCAxMjUyNDIsIDEyNTI0NCwgCi0gICAgMTI1MjQ2LCAwLCAwLCAwLCAxMjUyNDgsIDEyNTI1MywgMTI1MjYzLCAxMjUyNzgsIDEyNTI5MCwgMTI1MzAyLCAxMjUzMDYsIAotICAgIDEyNTMxMCwgMTI1MzE2LCAxMjUzMTgsIDEyNTMyNiwgMTI1MzM0LCAxMjUzMzYsIDEyNTM0MCwgMTI1MzQ2LCAxMjUzNTIsIAotICAgIDEyNTM1OSwgMTI1MzY2LCAxMjUzNjgsIDEyNTM3MCwgMTI1MzczLCAxMjUzNzUsIDEyNTM4MSwgMTI1MzgzLCAxMjUzODYsIAotICAgIDEyNTM5MCwgMTI1Mzk2LCAxMjU0MDIsIDEyNTQxMywgMTI1NDE5LCAxMjU0MjYsIDEyNTQzNCwgMTI1NDM4LCAxMjU0NDYsIAotICAgIDEyNTQ1NCwgMTI1NDYwLCAxMjU0NjYsIDEyNTQ3MywgMTI1NDc1LCAxMjU0NzksIDEyNTQ4MSwgMTI1NDgzLCAxMjU0ODgsIAotICAgIDEyNTQ5MCwgMTI1NDkyLCAxMjU0OTQsIDEyNTQ5NiwgMTI1NTAwLCAxMjU1MTEsIDEyNTUxNywgMTI1NTIxLCAxMjU1MjUsIAotICAgIDEyNTUyOSwgMTI1NTM1LCAxMjU1NDEsIDEyNTU0NywgMTI1NTUzLCAxMjU1NTgsIDEyNTU2MywgMTI1NTY5LCAxMjU1NzUsIAotICAgIDEyNTU4MiwgMCwgMCwgMTI1NTg5LCAxMjU1OTQsIDEyNTYwMiwgMTI1NjA2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAxMjU2MTUsIDEyNTYyMiwgMTI1NjI5LCAxMjU2MzYsIDEyNTY0NCwgMTI1NjUyLCAxMjU2NjAsIDEyNTY2OCwgCi0gICAgMTI1Njc2LCAxMjU2ODQsIDEyNTY5MiwgMTI1NzAwLCAxMjU3MDgsIDEyNTcxNCwgMTI1NzIwLCAxMjU3MjYsIDEyNTczMiwgCi0gICAgMTI1NzM4LCAxMjU3NDQsIDEyNTc1MCwgMTI1NzU2LCAxMjU3NjIsIDEyNTc2OCwgMTI1Nzc0LCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAxMjM2MDYsIDEyMzYwOCwgMTIzNjEwLCAxMjM2MTQsIDEyMzYxOSwgMTIzNjI0LCAxMjM2MjYsIAorICAgIDEyMzYzMiwgMTIzNjM3LCAxMjM2MzksIDEyMzY0NSwgMTIzNjQ5LCAxMjM2NTEsIDEyMzY1NSwgMTIzNjYxLCAxMjM2NjcsIAorICAgIDEyMzY3MywgMTIzNjc4LCAxMjM2ODIsIDEyMzY4OSwgMTIzNjk2LCAxMjM3MDMsIDEyMzcwOCwgMTIzNzE1LCAxMjM3MjIsIAorICAgIDEyMzcyOSwgMTIzNzMzLCAxMjM3MzksIDEyMzc0OCwgMTIzNzU3LCAxMjM3NjQsIDEyMzc2OSwgMTIzNzczLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjM3NzcsIDEyMzc3OSwgMTIzNzgxLCAxMjM3ODUsIAorICAgIDEyMzc4OSwgMTIzNzkzLCAwLCAxMjM3OTUsIDEyMzc5NywgMTIzODAxLCAxMjM4MDMsIDEyMzgwNSwgMTIzODA3LCAKKyAgICAxMjM4MDksIDEyMzgxNCwgMTIzODE5LCAxMjM4MjEsIDEyMzgyNywgMTIzODMxLCAxMjM4MzUsIDEyMzg0MywgMTIzODQ1LCAKKyAgICAxMjM4NDcsIDEyMzg0OSwgMTIzODUxLCAxMjM4NTMsIDEyMzg1NSwgMTIzODU3LCAxMjM4NTksIDEyMzg2MSwgMTIzODYzLCAKKyAgICAxMjM4NjcsIDEyMzg3MSwgMTIzODczLCAxMjM4NzUsIDEyMzg3NywgMTIzODc5LCAxMjM4ODEsIDEyMzg4NiwgMTIzODkyLCAKKyAgICAxMjM4OTYsIDEyMzkwMCwgMTIzOTA0LCAxMjM5MDgsIDEyMzkxMywgMTIzOTE3LCAxMjM5MTksIDEyMzkyMSwgMTIzOTI1LCAKKyAgICAxMjM5MzEsIDEyMzkzMywgMTIzOTM1LCAxMjM5MzcsIDEyMzk0MSwgMTIzOTUwLCAxMjM5NTYsIDEyMzk2MCwgMTIzOTY0LCAKKyAgICAxMjM5NjYsIDEyMzk2OCwgMTIzOTcxLCAxMjM5NzMsIDEyMzk3NSwgMTIzOTc3LCAxMjM5ODEsIDEyMzk4MywgMTIzOTg3LCAKKyAgICAxMjM5OTIsIDEyMzk5NCwgMTIzOTk5LCAxMjQwMDUsIDEyNDAxMiwgMTI0MDE2LCAxMjQwMjAsIDEyNDAyNCwgMTI0MDI4LCAKKyAgICAxMjQwMzQsIDAsIDAsIDAsIDEyNDAzOCwgMTI0MDQwLCAxMjQwNDQsIDEyNDA0OCwgMTI0MDUwLCAxMjQwNTQsIDEyNDA1OCwgCisgICAgMTI0MDYwLCAxMjQwNjQsIDEyNDA2NiwgMTI0MDcwLCAxMjQwNzQsIDEyNDA3OCwgMTI0MDgyLCAxMjQwODYsIDEyNDA5MCwgCisgICAgMTI0MDk0LCAxMjQwOTgsIDEyNDEwNCwgMTI0MTA4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAxMjQxMTIsIDEyNDExNiwgMTI0MTIwLCAxMjQxMjQsIDEyNDEzMSwgMTI0MTMzLCAxMjQxMzcsIDEyNDEzOSwgMTI0MTQxLCAKKyAgICAxMjQxNDUsIDEyNDE0OSwgMTI0MTUzLCAxMjQxNTUsIDEyNDE1OSwgMTI0MTYzLCAxMjQxNjcsIDEyNDE3MSwgMTI0MTc1LCAKKyAgICAxMjQxNzcsIDEyNDE4MSwgMTI0MTgzLCAxMjQxODksIDEyNDE5MiwgMTI0MTk3LCAxMjQxOTksIDEyNDIwMSwgMTI0MjA0LCAKKyAgICAxMjQyMDYsIDEyNDIwOCwgMTI0MjExLCAxMjQyMTgsIDEyNDIyNSwgMTI0MjMyLCAxMjQyMzcsIDEyNDI0MSwgMTI0MjQzLCAKKyAgICAxMjQyNDUsIDAsIDEyNDI0NywgMTI0MjQ5LCAxMjQyNTMsIDEyNDI1NywgMTI0MjYxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjQyNjMsIDEyNDI2NywgMTI0MjcyLCAxMjQyNzYsIAorICAgIDEyNDI4MiwgMTI0Mjg4LCAxMjQyOTAsIDEyNDI5MiwgMTI0Mjk4LCAxMjQzMDAsIDEyNDMwNCwgMTI0MzA4LCAxMjQzMTAsIAorICAgIDEyNDMxNCwgMTI0MzE2LCAxMjQzMjAsIDEyNDMyNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMTI0MzI4LCAxMjQzMzAsIDEyNDMzMiwgMTI0MzM0LCAxMjQzMzgsIDEyNDM0MCwgMTI0MzQyLCAxMjQzNDQsIAorICAgIDEyNDM0NiwgMTI0MzQ4LCAxMjQzNTAsIDEyNDM1MiwgMTI0MzU0LCAxMjQzNTYsIDEyNDM1OCwgMTI0MzYwLCAxMjQzNjIsIAorICAgIDEyNDM2NCwgMTI0MzY2LCAxMjQzNjgsIDEyNDM3MCwgMTI0MzcyLCAxMjQzNzQsIDEyNDM3NiwgMTI0Mzc4LCAxMjQzODAsIAorICAgIDEyNDM4MiwgMTI0Mzg2LCAxMjQzODgsIDEyNDM5MCwgMTI0MzkyLCAxMjQzOTYsIDEyNDM5OCwgMTI0NDAyLCAxMjQ0MDQsIAorICAgIDEyNDQwNiwgMTI0NDEwLCAxMjQ0MTQsIDEyNDQyMCwgMTI0NDIyLCAxMjQ0MjQsIDEyNDQyNiwgMTI0NDI4LCAxMjQ0MzIsIAorICAgIDEyNDQzNiwgMTI0NDM4LCAxMjQ0NDIsIDEyNDQ0NiwgMTI0NDUwLCAxMjQ0NTQsIDEyNDQ1OCwgMTI0NDYyLCAxMjQ0NjYsIAorICAgIDEyNDQ3MCwgMTI0NDc0LCAxMjQ0NzgsIDEyNDQ4MiwgMTI0NDg2LCAxMjQ0OTAsIDEyNDQ5NCwgMTI0NDk4LCAxMjQ1MDIsIAorICAgIDEyNDUwNiwgMCwgMTI0NTEwLCAwLCAxMjQ1MTIsIDEyNDUxNCwgMTI0NTE2LCAxMjQ1MTgsIDEyNDUyMCwgMTI0NTI4LCAKKyAgICAxMjQ1MzYsIDEyNDU0NCwgMTI0NTUyLCAxMjQ1NTcsIDEyNDU2MiwgMTI0NTY3LCAxMjQ1NzEsIDEyNDU3NSwgMTI0NTgwLCAKKyAgICAxMjQ1ODQsIDEyNDU4NiwgMTI0NTkwLCAxMjQ1OTIsIDEyNDU5NCwgMTI0NTk2LCAxMjQ1OTgsIDEyNDYwMCwgMTI0NjAyLCAKKyAgICAxMjQ2MDQsIDEyNDYwOCwgMTI0NjEwLCAxMjQ2MTIsIDEyNDYxNCwgMTI0NjE4LCAxMjQ2MjIsIDEyNDYyNiwgMTI0NjMwLCAKKyAgICAxMjQ2MzQsIDEyNDYzNiwgMTI0NjQyLCAxMjQ2NDgsIDEyNDY1MCwgMTI0NjUyLCAxMjQ2NTQsIDEyNDY1NiwgMTI0NjU4LCAKKyAgICAxMjQ2NjcsIDEyNDY3NCwgMTI0NjgxLCAxMjQ2ODUsIDEyNDY5MiwgMTI0Njk3LCAxMjQ3MDQsIDEyNDcxMywgMTI0NzE4LCAKKyAgICAxMjQ3MjIsIDEyNDcyNiwgMTI0NzI4LCAxMjQ3MzIsIDEyNDczNCwgMTI0NzM4LCAxMjQ3NDIsIDEyNDc0NCwgMTI0NzQ4LCAKKyAgICAxMjQ3NTIsIDEyNDc1NiwgMTI0NzU4LCAxMjQ3NjAsIDEyNDc2NiwgMTI0NzY4LCAxMjQ3NzAsIDEyNDc3MiwgMTI0Nzc2LCAKKyAgICAxMjQ3ODAsIDEyNDc4MiwgMTI0Nzg2LCAxMjQ3ODgsIDEyNDc5MCwgMTI0NzkzLCAxMjQ3OTcsIDEyNDc5OSwgMTI0ODAzLCAKKyAgICAxMjQ4MDUsIDEyNDgwNywgMTI0ODEyLCAxMjQ4MTQsIDEyNDgxOCwgMTI0ODIyLCAxMjQ4MjUsIDEyNDgyOSwgMTI0ODMzLCAKKyAgICAxMjQ4MzcsIDEyNDg0MSwgMTI0ODQ1LCAxMjQ4NDksIDEyNDg1MywgMTI0ODU4LCAxMjQ4NjIsIDEyNDg2NiwgMTI0ODc1LCAKKyAgICAxMjQ4ODAsIDEyNDg4MywgMTI0ODg1LCAxMjQ4ODgsIDEyNDg5MSwgMTI0ODk2LCAxMjQ4OTgsIDEyNDkwMSwgMTI0OTA2LCAKKyAgICAxMjQ5MTAsIDEyNDkxMywgMTI0OTE3LCAxMjQ5MjEsIDEyNDkyNCwgMTI0OTI5LCAxMjQ5MzMsIDEyNDkzNywgMTI0OTQxLCAKKyAgICAxMjQ5NDUsIDEyNDk1MSwgMTI0OTU3LCAxMjQ5NjMsIDEyNDk2OSwgMTI0OTc0LCAxMjQ5ODUsIDEyNDk4NywgMTI0OTkxLCAKKyAgICAxMjQ5OTMsIDEyNDk5NSwgMTI0OTk5LCAxMjUwMDMsIDEyNTAwNSwgMTI1MDA5LCAxMjUwMTQsIDEyNTAxOSwgMTI1MDI1LCAKKyAgICAxMjUwMjcsIDEyNTAzMSwgMTI1MDM1LCAxMjUwNDIsIDEyNTA0OSwgMTI1MDUzLCAxMjUwNTUsIDEyNTA1NywgMTI1MDYxLCAKKyAgICAxMjUwNjMsIDEyNTA2NywgMTI1MDcxLCAxMjUwNzUsIDEyNTA3NywgMTI1MDc5LCAxMjUwODYsIDEyNTA5MCwgMTI1MDkzLCAKKyAgICAxMjUwOTcsIDEyNTEwMSwgMTI1MTA1LCAxMjUxMDcsIDEyNTExMSwgMTI1MTEzLCAxMjUxMTUsIDEyNTExOSwgMTI1MTIxLCAKKyAgICAxMjUxMjUsIDEyNTEyOSwgMTI1MTM1LCAxMjUxMzksIDEyNTE0MywgMTI1MTQ3LCAxMjUxNDksIDEyNTE1MiwgMTI1MTU2LCAKKyAgICAxMjUxNjMsIDEyNTE3MiwgMTI1MTgxLCAxMjUxODksIDEyNTE5NywgMTI1MTk5LCAxMjUyMDMsIDEyNTIwNSwgMTI1MjA5LCAKKyAgICAxMjUyMjAsIDEyNTIyNCwgMTI1MjMwLCAxMjUyMzYsIDEyNTI0MSwgMCwgMTI1MjQzLCAxMjUyNDcsIDEyNTI0OSwgCisgICAgMTI1MjUxLCAwLCAwLCAwLCAxMjUyNTMsIDEyNTI1OCwgMTI1MjY4LCAxMjUyODMsIDEyNTI5NSwgMTI1MzA3LCAxMjUzMTEsIAorICAgIDEyNTMxNSwgMTI1MzIxLCAxMjUzMjMsIDEyNTMzMSwgMTI1MzM5LCAxMjUzNDEsIDEyNTM0NSwgMTI1MzUxLCAxMjUzNTcsIAorICAgIDEyNTM2NCwgMTI1MzcxLCAxMjUzNzMsIDEyNTM3NSwgMTI1Mzc4LCAxMjUzODAsIDEyNTM4NiwgMTI1Mzg4LCAxMjUzOTEsIAorICAgIDEyNTM5NSwgMTI1NDAxLCAxMjU0MDcsIDEyNTQxOCwgMTI1NDI0LCAxMjU0MzEsIDEyNTQzOSwgMTI1NDQzLCAxMjU0NTEsIAorICAgIDEyNTQ1OSwgMTI1NDY1LCAxMjU0NzEsIDEyNTQ3OCwgMTI1NDgwLCAxMjU0ODQsIDEyNTQ4NiwgMTI1NDg4LCAxMjU0OTMsIAorICAgIDEyNTQ5NSwgMTI1NDk3LCAxMjU0OTksIDEyNTUwMSwgMTI1NTA1LCAxMjU1MTYsIDEyNTUyMiwgMTI1NTI2LCAxMjU1MzAsIAorICAgIDEyNTUzNCwgMTI1NTQwLCAxMjU1NDYsIDEyNTU1MiwgMTI1NTU4LCAxMjU1NjMsIDEyNTU2OCwgMTI1NTc0LCAxMjU1ODAsIAorICAgIDEyNTU4NywgMCwgMCwgMTI1NTk0LCAxMjU1OTksIDEyNTYwNywgMTI1NjExLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAxMjU2MjAsIDEyNTYyNywgMTI1NjM0LCAxMjU2NDEsIDEyNTY0OSwgMTI1NjU3LCAxMjU2NjUsIDEyNTY3MywgCisgICAgMTI1NjgxLCAxMjU2ODksIDEyNTY5NywgMTI1NzA1LCAxMjU3MTMsIDEyNTcxOSwgMTI1NzI1LCAxMjU3MzEsIDEyNTczNywgCisgICAgMTI1NzQzLCAxMjU3NDksIDEyNTc1NSwgMTI1NzYxLCAxMjU3NjcsIDEyNTc3MywgMTI1Nzc5LCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjU3ODAsIAotICAgIDEyNTc4NCwgMTI1Nzg4LCAxMjU3OTMsIDEyNTc5OCwgMTI1ODAwLCAxMjU4MDQsIDEyNTgxMywgMTI1ODIxLCAxMjU4MjksIAotICAgIDEyNTg0MiwgMTI1ODU1LCAxMjU4NjgsIDEyNTg3NSwgMTI1ODgyLCAxMjU4ODYsIDEyNTg5NSwgMTI1OTAzLCAxMjU5MDcsIAotICAgIDEyNTkxNiwgMTI1OTIzLCAxMjU5MjcsIDEyNTkzMSwgMTI1OTM1LCAxMjU5MzksIDEyNTk0NiwgMTI1OTUwLCAxMjU5NTQsIAotICAgIDEyNTk1OCwgMTI1OTYyLCAxMjU5NjksIDEyNTk3OCwgMTI1OTg3LCAxMjU5OTQsIDEyNjAwNiwgMTI2MDE4LCAxMjYwMjIsIAotICAgIDEyNjAyNiwgMTI2MDMwLCAxMjYwMzQsIDEyNjAzOCwgMTI2MDQyLCAxMjYwNTAsIDEyNjA1OCwgMTI2MDY2LCAxMjYwNzAsIAotICAgIDEyNjA3NCwgMTI2MDc4LCAxMjYwODIsIDEyNjA4NiwgMTI2MDkwLCAxMjYwOTYsIDEyNjEwMiwgMTI2MTA2LCAxMjYxMTcsIAotICAgIDEyNjEyNSwgMTI2MTI5LCAxMjYxMzMsIDEyNjEzNywgMTI2MTQxLCAxMjYxNDcsIDEyNjE1NCwgMTI2MTY1LCAxMjYxNzUsIAotICAgIDEyNjE4NSwgMTI2MTk2LCAxMjYyMDUsIDEyNjIxNiwgMTI2MjIyLCAxMjYyMjgsIDAsIDAsIDAsIDAsIDEyNjIzNCwgCi0gICAgMTI2MjQzLCAxMjYyNTAsIDEyNjI1NiwgMTI2MjYwLCAxMjYyNjQsIDEyNjI2OCwgMTI2Mjc3LCAxMjYyODksIDEyNjI5MywgCi0gICAgMTI2MzAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjU3ODUsIAorICAgIDEyNTc4OSwgMTI1NzkzLCAxMjU3OTgsIDEyNTgwMywgMTI1ODA1LCAxMjU4MDksIDEyNTgxOCwgMTI1ODI2LCAxMjU4MzQsIAorICAgIDEyNTg0NywgMTI1ODYwLCAxMjU4NzMsIDEyNTg4MCwgMTI1ODg3LCAxMjU4OTEsIDEyNTkwMCwgMTI1OTA4LCAxMjU5MTIsIAorICAgIDEyNTkyMSwgMTI1OTI4LCAxMjU5MzIsIDEyNTkzNiwgMTI1OTQwLCAxMjU5NDQsIDEyNTk1MSwgMTI1OTU1LCAxMjU5NTksIAorICAgIDEyNTk2MywgMTI1OTY3LCAxMjU5NzQsIDEyNTk4MywgMTI1OTkyLCAxMjU5OTksIDEyNjAxMSwgMTI2MDIzLCAxMjYwMjcsIAorICAgIDEyNjAzMSwgMTI2MDM1LCAxMjYwMzksIDEyNjA0MywgMTI2MDQ3LCAxMjYwNTUsIDEyNjA2MywgMTI2MDcxLCAxMjYwNzUsIAorICAgIDEyNjA3OSwgMTI2MDgzLCAxMjYwODcsIDEyNjA5MSwgMTI2MDk1LCAxMjYxMDEsIDEyNjEwNywgMTI2MTExLCAxMjYxMjIsIAorICAgIDEyNjEzMCwgMTI2MTM0LCAxMjYxMzgsIDEyNjE0MiwgMTI2MTQ2LCAxMjYxNTIsIDEyNjE1OSwgMTI2MTcwLCAxMjYxODAsIAorICAgIDEyNjE5MCwgMTI2MjAxLCAxMjYyMTAsIDEyNjIyMSwgMTI2MjI3LCAxMjYyMzMsIDAsIDAsIDAsIDAsIDEyNjIzOSwgCisgICAgMTI2MjQ4LCAxMjYyNTUsIDEyNjI2MSwgMTI2MjY1LCAxMjYyNjksIDEyNjI3MywgMTI2MjgyLCAxMjYyOTQsIDEyNjI5OCwgCisgICAgMTI2MzA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAxMjYzMDcsIDEyNjMwOSwgMTI2MzExLCAxMjYzMTUsIDEyNjMxOSwgMTI2MzIzLCAxMjYzMzIsIDEyNjMzNCwgCi0gICAgMTI2MzM2LCAxMjYzMzksIDEyNjM0MSwgMTI2MzQzLCAxMjYzNDcsIDEyNjM0OSwgMTI2MzUzLCAxMjYzNTUsIDEyNjM1OSwgCi0gICAgMTI2MzYxLCAxMjYzNjMsIDEyNjM2NywgMTI2MzcxLCAxMjYzNzcsIDEyNjM3OSwgMTI2MzgzLCAxMjYzODUsIDEyNjM4OSwgCi0gICAgMTI2MzkzLCAxMjYzOTcsIDEyNjQwMSwgMTI2NDAzLCAxMjY0MDUsIDEyNjQwOSwgMTI2NDEzLCAxMjY0MTcsIDEyNjQyMSwgCi0gICAgMTI2NDIzLCAxMjY0MjUsIDEyNjQyNywgMTI2NDMyLCAxMjY0MzcsIDEyNjQ0MCwgMTI2NDQ4LCAxMjY0NTYsIDEyNjQ1OCwgCi0gICAgMTI2NDYzLCAxMjY0NjYsIDEyNjQ3MSwgMTI2NDgyLCAxMjY0ODksIDEyNjQ5NCwgMTI2NDk5LCAxMjY1MDEsIDEyNjUwNSwgCi0gICAgMTI2NTA3LCAxMjY1MTEsIDEyNjUxMywgMTI2NTE3LCAxMjY1MjEsIDEyNjUyNCwgMTI2NTI3LCAxMjY1MjksIDEyNjUzMiwgCi0gICAgMTI2NTM0LCAxMjY1MzgsIDEyNjU0MCwgMTI2NTQyLCAxMjY1NDQsIDEyNjU0OCwgMTI2NTUwLCAxMjY1NTQsIDAsIDAsIDAsIAorICAgIDAsIDAsIDEyNjMxMiwgMTI2MzE0LCAxMjYzMTYsIDEyNjMyMCwgMTI2MzI0LCAxMjYzMjgsIDEyNjMzNywgMTI2MzM5LCAKKyAgICAxMjYzNDEsIDEyNjM0NCwgMTI2MzQ2LCAxMjYzNDgsIDEyNjM1MiwgMTI2MzU0LCAxMjYzNTgsIDEyNjM2MCwgMTI2MzY0LCAKKyAgICAxMjYzNjYsIDEyNjM2OCwgMTI2MzcyLCAxMjYzNzYsIDEyNjM4MiwgMTI2Mzg0LCAxMjYzODgsIDEyNjM5MCwgMTI2Mzk0LCAKKyAgICAxMjYzOTgsIDEyNjQwMiwgMTI2NDA2LCAxMjY0MDgsIDEyNjQxMCwgMTI2NDE0LCAxMjY0MTgsIDEyNjQyMiwgMTI2NDI2LCAKKyAgICAxMjY0MjgsIDEyNjQzMCwgMTI2NDMyLCAxMjY0MzcsIDEyNjQ0MiwgMTI2NDQ1LCAxMjY0NTMsIDEyNjQ2MSwgMTI2NDYzLCAKKyAgICAxMjY0NjgsIDEyNjQ3MSwgMTI2NDc2LCAxMjY0ODcsIDEyNjQ5NCwgMTI2NDk5LCAxMjY1MDQsIDEyNjUwNiwgMTI2NTEwLCAKKyAgICAxMjY1MTIsIDEyNjUxNiwgMTI2NTE4LCAxMjY1MjIsIDEyNjUyNiwgMTI2NTI5LCAxMjY1MzIsIDEyNjUzNCwgMTI2NTM3LCAKKyAgICAxMjY1MzksIDEyNjU0MywgMTI2NTQ1LCAxMjY1NDcsIDEyNjU0OSwgMTI2NTUzLCAxMjY1NTUsIDEyNjU1OSwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTI2NTU3LCAxMjY1NjIsIDEyNjU2NywgMTI2NTcyLCAxMjY1NzcsIDEyNjU4MiwgCi0gICAgMTI2NTg3LCAxMjY1OTQsIDEyNjYwMSwgMTI2NjA4LCAxMjY2MTUsIDEyNjYyMCwgMTI2NjI1LCAxMjY2MzAsIDEyNjYzNSwgCi0gICAgMTI2NjQyLCAxMjY2NDgsIDEyNjY1NSwgMTI2NjYyLCAxMjY2NjksIDEyNjY3NCwgMTI2Njc5LCAxMjY2ODQsIDEyNjY4OSwgCi0gICAgMTI2Njk0LCAxMjY3MDEsIDEyNjcwOCwgMTI2NzEzLCAxMjY3MTgsIDEyNjcyNSwgMTI2NzMyLCAxMjY3NDAsIDEyNjc0OCwgCi0gICAgMTI2NzU1LCAxMjY3NjIsIDEyNjc3MCwgMTI2Nzc4LCAxMjY3ODYsIDEyNjc5MywgMTI2ODAzLCAxMjY4MTQsIDEyNjgxOSwgCi0gICAgMTI2ODI2LCAxMjY4MzMsIDEyNjg0MCwgMTI2ODQ4LCAxMjY4NTYsIDEyNjg2NywgMTI2ODc1LCAxMjY4ODMsIDEyNjg5MSwgCi0gICAgMTI2ODk2LCAxMjY5MDEsIDEyNjkwNiwgMTI2OTExLCAxMjY5MTYsIDEyNjkyMSwgMTI2OTI2LCAxMjY5MzEsIDEyNjkzNiwgCi0gICAgMTI2OTQxLCAxMjY5NDYsIDEyNjk1MSwgMTI2OTU4LCAxMjY5NjMsIDEyNjk2OCwgMTI2OTc1LCAxMjY5ODAsIDEyNjk4NSwgCi0gICAgMTI2OTkwLCAxMjY5OTUsIDEyNzAwMCwgMTI3MDA1LCAxMjcwMTAsIDEyNzAxNSwgMTI3MDIwLCAxMjcwMjUsIDEyNzAzMCwgCi0gICAgMTI3MDM1LCAxMjcwNDIsIDEyNzA1MCwgMTI3MDU1LCAxMjcwNjAsIDEyNzA2NywgMTI3MDcyLCAxMjcwNzcsIDEyNzA4MiwgCi0gICAgMTI3MDg5LCAxMjcwOTQsIDEyNzEwMSwgMTI3MTA2LCAxMjcxMTMsIDEyNzExOCwgMTI3MTI3LCAxMjcxMzYsIDEyNzE0MSwgCi0gICAgMTI3MTQ2LCAxMjcxNTEsIDEyNzE1NiwgMTI3MTYxLCAxMjcxNjYsIDEyNzE3MSwgMTI3MTc2LCAxMjcxODEsIDEyNzE4NiwgCi0gICAgMTI3MTkxLCAxMjcxOTYsIDEyNzIwMSwgMTI3MjA5LCAxMjcyMTcsIDEyNzIyMiwgMTI3MjI3LCAxMjcyMzIsIDEyNzIzNywgCi0gICAgMTI3MjQyLCAxMjcyNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyNzI1NCwgMTI3MjU4LCAKLSAgICAxMjcyNjIsIDEyNzI2NiwgMTI3MjcwLCAxMjcyNzQsIDEyNzI3OCwgMTI3MjgyLCAxMjcyODYsIDEyNzI5MCwgMTI3Mjk0LCAKLSAgICAxMjcyOTgsIDEyNzMwMiwgMTI3MzA2LCAxMjczMTAsIDEyNzMxNCwgMTI3MzE4LCAxMjczMjIsIDEyNzMyNiwgMTI3MzMwLCAKLSAgICAxMjczMzQsIDEyNzMzOCwgMTI3MzQyLCAxMjczNDYsIDEyNzM1MCwgMTI3MzU0LCAxMjczNTgsIDEyNzM2MiwgMTI3MzY2LCAKLSAgICAxMjczNzAsIDEyNzM3NCwgMTI3Mzc4LCAxMjczODIsIDEyNzM4NiwgMTI3MzkwLCAxMjczOTQsIDEyNzM5OCwgMTI3NDAyLCAKLSAgICAxMjc0MDYsIDEyNzQxMCwgMTI3NDE0LCAxMjc0MTgsIDEyNzQyMiwgMTI3NDI2LCAxMjc0MzAsIDEyNzQzNCwgMTI3NDM4LCAKLSAgICAxMjc0NDIsIDEyNzQ0NiwgMTI3NDUwLCAxMjc0NTQsIDEyNzQ1OCwgMTI3NDYyLCAxMjc0NjYsIDEyNzQ3MCwgMTI3NDc0LCAKLSAgICAxMjc0NzgsIDEyNzQ4MiwgMTI3NDg2LCAxMjc0OTAsIDEyNzQ5NCwgMTI3NDk4LCAxMjc1MDIsIDEyNzUwNiwgMTI3NTEwLCAKLSAgICAxMjc1MTQsIDEyNzUxOCwgMTI3NTIyLCAxMjc1MjYsIDEyNzUzMCwgMTI3NTM0LCAxMjc1MzgsIDEyNzU0MiwgMTI3NTQ2LCAKLSAgICAxMjc1NTAsIDEyNzU1NCwgMTI3NTU4LCAxMjc1NjIsIDEyNzU2NiwgMTI3NTcwLCAxMjc1NzQsIDEyNzU3OCwgMTI3NTgyLCAKLSAgICAxMjc1ODYsIDEyNzU5MCwgMTI3NTk0LCAxMjc1OTgsIDEyNzYwMiwgMTI3NjA2LCAxMjc2MTAsIDEyNzYxNCwgMTI3NjE4LCAKLSAgICAxMjc2MjIsIDEyNzYyNiwgMTI3NjMwLCAxMjc2MzQsIDEyNzYzOCwgMTI3NjQyLCAxMjc2NDYsIDEyNzY1MCwgMTI3NjU0LCAKLSAgICAxMjc2NTgsIDEyNzY2MiwgMTI3NjY2LCAxMjc2NzAsIDEyNzY3NCwgMTI3Njc4LCAxMjc2ODIsIDEyNzY4NiwgMTI3NjkwLCAKLSAgICAxMjc2OTQsIDEyNzY5OCwgMTI3NzAyLCAxMjc3MDYsIDEyNzcxMCwgMTI3NzE0LCAxMjc3MTgsIDEyNzcyMiwgMTI3NzI2LCAKLSAgICAxMjc3MzAsIDEyNzczNCwgMTI3NzM4LCAxMjc3NDIsIDEyNzc0NiwgMTI3NzUwLCAxMjc3NTQsIDEyNzc1OCwgMTI3NzYyLCAKLSAgICAxMjc3NjYsIDEyNzc3MCwgMTI3Nzc0LCAxMjc3NzgsIDEyNzc4MiwgMTI3Nzg2LCAxMjc3OTAsIDEyNzc5NCwgMTI3Nzk4LCAKLSAgICAxMjc4MDIsIDEyNzgwNiwgMTI3ODEwLCAxMjc4MTQsIDEyNzgxOCwgMTI3ODIyLCAxMjc4MjYsIDEyNzgzMCwgMTI3ODM0LCAKLSAgICAxMjc4MzgsIDEyNzg0MiwgMTI3ODQ2LCAxMjc4NTAsIDEyNzg1NCwgMTI3ODU4LCAxMjc4NjIsIDEyNzg2NiwgMTI3ODcwLCAKLSAgICAxMjc4NzQsIDEyNzg3OCwgMTI3ODgyLCAxMjc4ODYsIDEyNzg5MCwgMTI3ODk0LCAxMjc4OTgsIDEyNzkwMiwgMTI3OTA2LCAKLSAgICAxMjc5MTAsIDEyNzkxNCwgMTI3OTE4LCAxMjc5MjIsIDEyNzkyNiwgMTI3OTMwLCAxMjc5MzQsIDEyNzkzOCwgMTI3OTQyLCAKLSAgICAxMjc5NDYsIDEyNzk1MCwgMTI3OTU0LCAxMjc5NTgsIDEyNzk2MiwgMTI3OTY2LCAxMjc5NzAsIDEyNzk3NCwgMTI3OTc4LCAKLSAgICAxMjc5ODIsIDEyNzk4NiwgMTI3OTkwLCAxMjc5OTQsIDEyNzk5OCwgMTI4MDAyLCAxMjgwMDYsIDEyODAxMCwgMTI4MDE0LCAKLSAgICAxMjgwMTgsIDEyODAyMiwgMTI4MDI2LCAxMjgwMzAsIDEyODAzNCwgMTI4MDM4LCAxMjgwNDIsIDEyODA0NiwgMTI4MDUwLCAKLSAgICAxMjgwNTQsIDEyODA1OCwgMTI4MDYyLCAxMjgwNjYsIDEyODA3MCwgMTI4MDc0LCAxMjgwNzgsIDEyODA4MiwgMTI4MDg2LCAKLSAgICAxMjgwOTAsIDEyODA5NCwgMTI4MDk4LCAxMjgxMDIsIDEyODEwNiwgMTI4MTEwLCAxMjgxMTQsIDEyODExOCwgMTI4MTIyLCAKLSAgICAxMjgxMjYsIDEyODEzMCwgMTI4MTM0LCAxMjgxMzgsIDEyODE0MiwgMTI4MTQ2LCAxMjgxNTAsIDEyODE1NCwgMTI4MTU4LCAKLSAgICAxMjgxNjIsIDEyODE2NiwgMTI4MTcwLCAxMjgxNzQsIDEyODE3OCwgMTI4MTgyLCAxMjgxODYsIDEyODE5MCwgMTI4MTk0LCAKLSAgICAxMjgxOTgsIDEyODIwMiwgMTI4MjA2LCAxMjgyMTAsIDEyODIxNCwgMTI4MjE4LCAxMjgyMjIsIDEyODIyNiwgMTI4MjMwLCAKLSAgICAxMjgyMzQsIDEyODIzOCwgMTI4MjQyLCAxMjgyNDYsIDEyODI1MCwgMTI4MjU0LCAxMjgyNTgsIDEyODI2MiwgMTI4MjY2LCAKLSAgICAxMjgyNzAsIDEyODI3NCwgMTI4Mjc4LCAxMjgyODIsIDEyODI4NiwgMTI4MjkwLCAxMjgyOTQsIDEyODI5OCwgMTI4MzAyLCAKLSAgICAxMjgzMDYsIDEyODMxMCwgMTI4MzE0LCAxMjgzMTgsIDEyODMyMiwgMTI4MzI2LCAxMjgzMzAsIDEyODMzNCwgMTI4MzM4LCAKLSAgICAxMjgzNDIsIDEyODM0NiwgMTI4MzUwLCAxMjgzNTQsIDEyODM1OCwgMTI4MzYyLCAxMjgzNjYsIDEyODM3MCwgMTI4Mzc0LCAKLSAgICAxMjgzNzgsIDEyODM4MiwgMTI4Mzg2LCAxMjgzOTAsIDEyODM5NCwgMTI4Mzk4LCAxMjg0MDIsIDEyODQwNiwgMTI4NDEwLCAKLSAgICAxMjg0MTQsIDEyODQxOCwgMTI4NDIyLCAxMjg0MjYsIDEyODQzMCwgMTI4NDM0LCAxMjg0MzgsIDEyODQ0MiwgMTI4NDQ2LCAKLSAgICAxMjg0NTAsIDEyODQ1NCwgMTI4NDU4LCAxMjg0NjIsIDEyODQ2NiwgMTI4NDcwLCAxMjg0NzQsIDEyODQ3OCwgMTI4NDgyLCAKLSAgICAxMjg0ODYsIDEyODQ5MCwgMTI4NDk0LCAxMjg0OTgsIDEyODUwMiwgMTI4NTA2LCAxMjg1MTAsIDEyODUxNCwgMTI4NTE4LCAKLSAgICAxMjg1MjIsIDEyODUyNiwgMTI4NTMwLCAxMjg1MzQsIDEyODUzOCwgMTI4NTQyLCAxMjg1NDYsIDEyODU1MCwgMTI4NTU0LCAKLSAgICAxMjg1NTgsIDEyODU2MiwgMTI4NTY2LCAxMjg1NzAsIDEyODU3NCwgMTI4NTc4LCAxMjg1ODIsIDEyODU4NiwgMTI4NTkwLCAKLSAgICAxMjg1OTQsIDEyODU5OCwgMTI4NjAyLCAxMjg2MDYsIDEyODYxMCwgMTI4NjE0LCAxMjg2MTgsIDEyODYyMiwgMTI4NjI2LCAKLSAgICAxMjg2MzAsIDEyODYzNCwgMTI4NjM4LCAxMjg2NDIsIDEyODY0NiwgMTI4NjUwLCAxMjg2NTQsIDEyODY1OCwgMTI4NjYyLCAKLSAgICAxMjg2NjYsIDEyODY3MCwgMTI4Njc0LCAxMjg2NzgsIDEyODY4MiwgMTI4Njg2LCAxMjg2OTAsIDEyODY5NCwgMTI4Njk4LCAKLSAgICAxMjg3MDIsIDEyODcwNiwgMTI4NzEwLCAxMjg3MTQsIDEyODcxOCwgMTI4NzIyLCAxMjg3MjYsIDEyODczMCwgMTI4NzM0LCAKLSAgICAxMjg3MzgsIDEyODc0MiwgMTI4NzQ2LCAxMjg3NTAsIDEyODc1NCwgMTI4NzU4LCAxMjg3NjIsIDEyODc2NiwgMTI4NzcwLCAKLSAgICAxMjg3NzQsIDEyODc3OCwgMTI4NzgyLCAxMjg3ODYsIDEyODc5MCwgMTI4Nzk0LCAxMjg3OTgsIDEyODgwMiwgMTI4ODA2LCAKLSAgICAxMjg4MTAsIDEyODgxNCwgMTI4ODE4LCAxMjg4MjIsIDEyODgyNiwgMTI4ODMwLCAxMjg4MzQsIDEyODgzOCwgMTI4ODQyLCAKLSAgICAxMjg4NDYsIDEyODg1MCwgMTI4ODU0LCAxMjg4NTgsIDEyODg2MiwgMTI4ODY2LCAxMjg4NzAsIDEyODg3NCwgMTI4ODc4LCAKLSAgICAxMjg4ODIsIDEyODg4NiwgMTI4ODkwLCAxMjg4OTQsIDEyODg5OCwgMTI4OTAyLCAxMjg5MDYsIDEyODkxMCwgMTI4OTE0LCAKLSAgICAxMjg5MTgsIDEyODkyMiwgMTI4OTI2LCAxMjg5MzAsIDEyODkzNCwgMTI4OTM4LCAxMjg5NDIsIDEyODk0NiwgMTI4OTUwLCAKLSAgICAxMjg5NTQsIDEyODk1OCwgMTI4OTYyLCAxMjg5NjYsIDEyODk3MCwgMTI4OTc0LCAxMjg5NzgsIDEyODk4MiwgMTI4OTg2LCAKLSAgICAxMjg5OTAsIDEyODk5NCwgMTI4OTk4LCAxMjkwMDIsIDEyOTAwNiwgMTI5MDEwLCAxMjkwMTQsIDEyOTAxOCwgMTI5MDIyLCAKLSAgICAxMjkwMjYsIDEyOTAzMCwgMTI5MDM0LCAxMjkwMzgsIDEyOTA0MiwgMTI5MDQ2LCAxMjkwNTAsIDEyOTA1NCwgMTI5MDU4LCAKLSAgICAxMjkwNjIsIDEyOTA2NiwgMTI5MDcwLCAxMjkwNzQsIDEyOTA3OCwgMTI5MDgyLCAxMjkwODYsIDEyOTA5MCwgMTI5MDk0LCAKLSAgICAxMjkwOTgsIDEyOTEwMiwgMTI5MTA2LCAxMjkxMTAsIDEyOTExNCwgMTI5MTE4LCAxMjkxMjIsIDEyOTEyNiwgMTI5MTMwLCAKLSAgICAxMjkxMzQsIDEyOTEzOCwgMTI5MTQyLCAxMjkxNDYsIDEyOTE1MCwgMTI5MTU0LCAxMjkxNTgsIDEyOTE2MiwgMTI5MTY2LCAKLSAgICAxMjkxNzAsIDEyOTE3NCwgMTI5MTc4LCAxMjkxODIsIDEyOTE4NiwgMTI5MTkwLCAxMjkxOTQsIDEyOTE5OCwgMTI5MjAyLCAKLSAgICAxMjkyMDYsIDEyOTIxMCwgMTI5MjE0LCAxMjkyMTgsIDEyOTIyMiwgMTI5MjI2LCAxMjkyMzAsIDEyOTIzNCwgMTI5MjM4LCAKLSAgICAxMjkyNDIsIDEyOTI0NiwgMTI5MjUwLCAxMjkyNTQsIDEyOTI1OCwgMTI5MjYyLCAxMjkyNjYsIDEyOTI3MCwgMTI5Mjc0LCAKLSAgICAxMjkyNzgsIDEyOTI4MiwgMTI5Mjg2LCAxMjkyOTAsIDEyOTI5NCwgMTI5Mjk4LCAxMjkzMDIsIDEyOTMwNiwgMTI5MzEwLCAKLSAgICAxMjkzMTQsIDEyOTMxOCwgMTI5MzIyLCAxMjkzMjYsIDEyOTMzMCwgMTI5MzM0LCAxMjkzMzgsIDEyOTM0MiwgMTI5MzQ2LCAKLSAgICAxMjkzNTAsIDEyOTM1NCwgMTI5MzU4LCAxMjkzNjIsIDEyOTM2NiwgMTI5MzcwLCAxMjkzNzQsIDEyOTM3OCwgMTI5MzgyLCAKLSAgICAxMjkzODYsIDEyOTM5MCwgMTI5Mzk0LCAxMjkzOTgsIDEyOTQwMiwgMTI5NDA2LCAxMjk0MTAsIDEyOTQxNCwgMTI5NDE4LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjY1NjIsIDEyNjU2NywgMTI2NTcyLCAxMjY1NzcsIDEyNjU4MiwgMTI2NTg3LCAKKyAgICAxMjY1OTIsIDEyNjU5OSwgMTI2NjA2LCAxMjY2MTMsIDEyNjYyMCwgMTI2NjI1LCAxMjY2MzAsIDEyNjYzNSwgMTI2NjQwLCAKKyAgICAxMjY2NDcsIDEyNjY1MywgMTI2NjYwLCAxMjY2NjcsIDEyNjY3NCwgMTI2Njc5LCAxMjY2ODQsIDEyNjY4OSwgMTI2Njk0LCAKKyAgICAxMjY2OTksIDEyNjcwNiwgMTI2NzEzLCAxMjY3MTgsIDEyNjcyMywgMTI2NzMwLCAxMjY3MzcsIDEyNjc0NSwgMTI2NzUzLCAKKyAgICAxMjY3NjAsIDEyNjc2NywgMTI2Nzc1LCAxMjY3ODMsIDEyNjc5MSwgMTI2Nzk4LCAxMjY4MDgsIDEyNjgxOSwgMTI2ODI0LCAKKyAgICAxMjY4MzEsIDEyNjgzOCwgMTI2ODQ1LCAxMjY4NTMsIDEyNjg2MSwgMTI2ODcyLCAxMjY4ODAsIDEyNjg4OCwgMTI2ODk2LCAKKyAgICAxMjY5MDEsIDEyNjkwNiwgMTI2OTExLCAxMjY5MTYsIDEyNjkyMSwgMTI2OTI2LCAxMjY5MzEsIDEyNjkzNiwgMTI2OTQxLCAKKyAgICAxMjY5NDYsIDEyNjk1MSwgMTI2OTU2LCAxMjY5NjMsIDEyNjk2OCwgMTI2OTczLCAxMjY5ODAsIDEyNjk4NSwgMTI2OTkwLCAKKyAgICAxMjY5OTUsIDEyNzAwMCwgMTI3MDA1LCAxMjcwMTAsIDEyNzAxNSwgMTI3MDIwLCAxMjcwMjUsIDEyNzAzMCwgMTI3MDM1LCAKKyAgICAxMjcwNDAsIDEyNzA0NywgMTI3MDU1LCAxMjcwNjAsIDEyNzA2NSwgMTI3MDcyLCAxMjcwNzcsIDEyNzA4MiwgMTI3MDg3LCAKKyAgICAxMjcwOTQsIDEyNzA5OSwgMTI3MTA2LCAxMjcxMTEsIDEyNzExOCwgMTI3MTIzLCAxMjcxMzIsIDEyNzE0MSwgMTI3MTQ2LCAKKyAgICAxMjcxNTEsIDEyNzE1NiwgMTI3MTYxLCAxMjcxNjYsIDEyNzE3MSwgMTI3MTc2LCAxMjcxODEsIDEyNzE4NiwgMTI3MTkxLCAKKyAgICAxMjcxOTYsIDEyNzIwMSwgMTI3MjA2LCAxMjcyMTQsIDEyNzIyMiwgMTI3MjI3LCAxMjcyMzIsIDEyNzIzNywgMTI3MjQyLCAKKyAgICAxMjcyNDcsIDEyNzI1MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTI3MjU5LCAxMjcyNjMsIAorICAgIDEyNzI2NywgMTI3MjcxLCAxMjcyNzUsIDEyNzI3OSwgMTI3MjgzLCAxMjcyODcsIDEyNzI5MSwgMTI3Mjk1LCAxMjcyOTksIAorICAgIDEyNzMwMywgMTI3MzA3LCAxMjczMTEsIDEyNzMxNSwgMTI3MzE5LCAxMjczMjMsIDEyNzMyNywgMTI3MzMxLCAxMjczMzUsIAorICAgIDEyNzMzOSwgMTI3MzQzLCAxMjczNDcsIDEyNzM1MSwgMTI3MzU1LCAxMjczNTksIDEyNzM2MywgMTI3MzY3LCAxMjczNzEsIAorICAgIDEyNzM3NSwgMTI3Mzc5LCAxMjczODMsIDEyNzM4NywgMTI3MzkxLCAxMjczOTUsIDEyNzM5OSwgMTI3NDAzLCAxMjc0MDcsIAorICAgIDEyNzQxMSwgMTI3NDE1LCAxMjc0MTksIDEyNzQyMywgMTI3NDI3LCAxMjc0MzEsIDEyNzQzNSwgMTI3NDM5LCAxMjc0NDMsIAorICAgIDEyNzQ0NywgMTI3NDUxLCAxMjc0NTUsIDEyNzQ1OSwgMTI3NDYzLCAxMjc0NjcsIDEyNzQ3MSwgMTI3NDc1LCAxMjc0NzksIAorICAgIDEyNzQ4MywgMTI3NDg3LCAxMjc0OTEsIDEyNzQ5NSwgMTI3NDk5LCAxMjc1MDMsIDEyNzUwNywgMTI3NTExLCAxMjc1MTUsIAorICAgIDEyNzUxOSwgMTI3NTIzLCAxMjc1MjcsIDEyNzUzMSwgMTI3NTM1LCAxMjc1MzksIDEyNzU0MywgMTI3NTQ3LCAxMjc1NTEsIAorICAgIDEyNzU1NSwgMTI3NTU5LCAxMjc1NjMsIDEyNzU2NywgMTI3NTcxLCAxMjc1NzUsIDEyNzU3OSwgMTI3NTgzLCAxMjc1ODcsIAorICAgIDEyNzU5MSwgMTI3NTk1LCAxMjc1OTksIDEyNzYwMywgMTI3NjA3LCAxMjc2MTEsIDEyNzYxNSwgMTI3NjE5LCAxMjc2MjMsIAorICAgIDEyNzYyNywgMTI3NjMxLCAxMjc2MzUsIDEyNzYzOSwgMTI3NjQzLCAxMjc2NDcsIDEyNzY1MSwgMTI3NjU1LCAxMjc2NTksIAorICAgIDEyNzY2MywgMTI3NjY3LCAxMjc2NzEsIDEyNzY3NSwgMTI3Njc5LCAxMjc2ODMsIDEyNzY4NywgMTI3NjkxLCAxMjc2OTUsIAorICAgIDEyNzY5OSwgMTI3NzAzLCAxMjc3MDcsIDEyNzcxMSwgMTI3NzE1LCAxMjc3MTksIDEyNzcyMywgMTI3NzI3LCAxMjc3MzEsIAorICAgIDEyNzczNSwgMTI3NzM5LCAxMjc3NDMsIDEyNzc0NywgMTI3NzUxLCAxMjc3NTUsIDEyNzc1OSwgMTI3NzYzLCAxMjc3NjcsIAorICAgIDEyNzc3MSwgMTI3Nzc1LCAxMjc3NzksIDEyNzc4MywgMTI3Nzg3LCAxMjc3OTEsIDEyNzc5NSwgMTI3Nzk5LCAxMjc4MDMsIAorICAgIDEyNzgwNywgMTI3ODExLCAxMjc4MTUsIDEyNzgxOSwgMTI3ODIzLCAxMjc4MjcsIDEyNzgzMSwgMTI3ODM1LCAxMjc4MzksIAorICAgIDEyNzg0MywgMTI3ODQ3LCAxMjc4NTEsIDEyNzg1NSwgMTI3ODU5LCAxMjc4NjMsIDEyNzg2NywgMTI3ODcxLCAxMjc4NzUsIAorICAgIDEyNzg3OSwgMTI3ODgzLCAxMjc4ODcsIDEyNzg5MSwgMTI3ODk1LCAxMjc4OTksIDEyNzkwMywgMTI3OTA3LCAxMjc5MTEsIAorICAgIDEyNzkxNSwgMTI3OTE5LCAxMjc5MjMsIDEyNzkyNywgMTI3OTMxLCAxMjc5MzUsIDEyNzkzOSwgMTI3OTQzLCAxMjc5NDcsIAorICAgIDEyNzk1MSwgMTI3OTU1LCAxMjc5NTksIDEyNzk2MywgMTI3OTY3LCAxMjc5NzEsIDEyNzk3NSwgMTI3OTc5LCAxMjc5ODMsIAorICAgIDEyNzk4NywgMTI3OTkxLCAxMjc5OTUsIDEyNzk5OSwgMTI4MDAzLCAxMjgwMDcsIDEyODAxMSwgMTI4MDE1LCAxMjgwMTksIAorICAgIDEyODAyMywgMTI4MDI3LCAxMjgwMzEsIDEyODAzNSwgMTI4MDM5LCAxMjgwNDMsIDEyODA0NywgMTI4MDUxLCAxMjgwNTUsIAorICAgIDEyODA1OSwgMTI4MDYzLCAxMjgwNjcsIDEyODA3MSwgMTI4MDc1LCAxMjgwNzksIDEyODA4MywgMTI4MDg3LCAxMjgwOTEsIAorICAgIDEyODA5NSwgMTI4MDk5LCAxMjgxMDMsIDEyODEwNywgMTI4MTExLCAxMjgxMTUsIDEyODExOSwgMTI4MTIzLCAxMjgxMjcsIAorICAgIDEyODEzMSwgMTI4MTM1LCAxMjgxMzksIDEyODE0MywgMTI4MTQ3LCAxMjgxNTEsIDEyODE1NSwgMTI4MTU5LCAxMjgxNjMsIAorICAgIDEyODE2NywgMTI4MTcxLCAxMjgxNzUsIDEyODE3OSwgMTI4MTgzLCAxMjgxODcsIDEyODE5MSwgMTI4MTk1LCAxMjgxOTksIAorICAgIDEyODIwMywgMTI4MjA3LCAxMjgyMTEsIDEyODIxNSwgMTI4MjE5LCAxMjgyMjMsIDEyODIyNywgMTI4MjMxLCAxMjgyMzUsIAorICAgIDEyODIzOSwgMTI4MjQzLCAxMjgyNDcsIDEyODI1MSwgMTI4MjU1LCAxMjgyNTksIDEyODI2MywgMTI4MjY3LCAxMjgyNzEsIAorICAgIDEyODI3NSwgMTI4Mjc5LCAxMjgyODMsIDEyODI4NywgMTI4MjkxLCAxMjgyOTUsIDEyODI5OSwgMTI4MzAzLCAxMjgzMDcsIAorICAgIDEyODMxMSwgMTI4MzE1LCAxMjgzMTksIDEyODMyMywgMTI4MzI3LCAxMjgzMzEsIDEyODMzNSwgMTI4MzM5LCAxMjgzNDMsIAorICAgIDEyODM0NywgMTI4MzUxLCAxMjgzNTUsIDEyODM1OSwgMTI4MzYzLCAxMjgzNjcsIDEyODM3MSwgMTI4Mzc1LCAxMjgzNzksIAorICAgIDEyODM4MywgMTI4Mzg3LCAxMjgzOTEsIDEyODM5NSwgMTI4Mzk5LCAxMjg0MDMsIDEyODQwNywgMTI4NDExLCAxMjg0MTUsIAorICAgIDEyODQxOSwgMTI4NDIzLCAxMjg0MjcsIDEyODQzMSwgMTI4NDM1LCAxMjg0MzksIDEyODQ0MywgMTI4NDQ3LCAxMjg0NTEsIAorICAgIDEyODQ1NSwgMTI4NDU5LCAxMjg0NjMsIDEyODQ2NywgMTI4NDcxLCAxMjg0NzUsIDEyODQ3OSwgMTI4NDgzLCAxMjg0ODcsIAorICAgIDEyODQ5MSwgMTI4NDk1LCAxMjg0OTksIDEyODUwMywgMTI4NTA3LCAxMjg1MTEsIDEyODUxNSwgMTI4NTE5LCAxMjg1MjMsIAorICAgIDEyODUyNywgMTI4NTMxLCAxMjg1MzUsIDEyODUzOSwgMTI4NTQzLCAxMjg1NDcsIDEyODU1MSwgMTI4NTU1LCAxMjg1NTksIAorICAgIDEyODU2MywgMTI4NTY3LCAxMjg1NzEsIDEyODU3NSwgMTI4NTc5LCAxMjg1ODMsIDEyODU4NywgMTI4NTkxLCAxMjg1OTUsIAorICAgIDEyODU5OSwgMTI4NjAzLCAxMjg2MDcsIDEyODYxMSwgMTI4NjE1LCAxMjg2MTksIDEyODYyMywgMTI4NjI3LCAxMjg2MzEsIAorICAgIDEyODYzNSwgMTI4NjM5LCAxMjg2NDMsIDEyODY0NywgMTI4NjUxLCAxMjg2NTUsIDEyODY1OSwgMTI4NjYzLCAxMjg2NjcsIAorICAgIDEyODY3MSwgMTI4Njc1LCAxMjg2NzksIDEyODY4MywgMTI4Njg3LCAxMjg2OTEsIDEyODY5NSwgMTI4Njk5LCAxMjg3MDMsIAorICAgIDEyODcwNywgMTI4NzExLCAxMjg3MTUsIDEyODcxOSwgMTI4NzIzLCAxMjg3MjcsIDEyODczMSwgMTI4NzM1LCAxMjg3MzksIAorICAgIDEyODc0MywgMTI4NzQ3LCAxMjg3NTEsIDEyODc1NSwgMTI4NzU5LCAxMjg3NjMsIDEyODc2NywgMTI4NzcxLCAxMjg3NzUsIAorICAgIDEyODc3OSwgMTI4NzgzLCAxMjg3ODcsIDEyODc5MSwgMTI4Nzk1LCAxMjg3OTksIDEyODgwMywgMTI4ODA3LCAxMjg4MTEsIAorICAgIDEyODgxNSwgMTI4ODE5LCAxMjg4MjMsIDEyODgyNywgMTI4ODMxLCAxMjg4MzUsIDEyODgzOSwgMTI4ODQzLCAxMjg4NDcsIAorICAgIDEyODg1MSwgMTI4ODU1LCAxMjg4NTksIDEyODg2MywgMTI4ODY3LCAxMjg4NzEsIDEyODg3NSwgMTI4ODc5LCAxMjg4ODMsIAorICAgIDEyODg4NywgMTI4ODkxLCAxMjg4OTUsIDEyODg5OSwgMTI4OTAzLCAxMjg5MDcsIDEyODkxMSwgMTI4OTE1LCAxMjg5MTksIAorICAgIDEyODkyMywgMTI4OTI3LCAxMjg5MzEsIDEyODkzNSwgMTI4OTM5LCAxMjg5NDMsIDEyODk0NywgMTI4OTUxLCAxMjg5NTUsIAorICAgIDEyODk1OSwgMTI4OTYzLCAxMjg5NjcsIDEyODk3MSwgMTI4OTc1LCAxMjg5NzksIDEyODk4MywgMTI4OTg3LCAxMjg5OTEsIAorICAgIDEyODk5NSwgMTI4OTk5LCAxMjkwMDMsIDEyOTAwNywgMTI5MDExLCAxMjkwMTUsIDEyOTAxOSwgMTI5MDIzLCAxMjkwMjcsIAorICAgIDEyOTAzMSwgMTI5MDM1LCAxMjkwMzksIDEyOTA0MywgMTI5MDQ3LCAxMjkwNTEsIDEyOTA1NSwgMTI5MDU5LCAxMjkwNjMsIAorICAgIDEyOTA2NywgMTI5MDcxLCAxMjkwNzUsIDEyOTA3OSwgMTI5MDgzLCAxMjkwODcsIDEyOTA5MSwgMTI5MDk1LCAxMjkwOTksIAorICAgIDEyOTEwMywgMTI5MTA3LCAxMjkxMTEsIDEyOTExNSwgMTI5MTE5LCAxMjkxMjMsIDEyOTEyNywgMTI5MTMxLCAxMjkxMzUsIAorICAgIDEyOTEzOSwgMTI5MTQzLCAxMjkxNDcsIDEyOTE1MSwgMTI5MTU1LCAxMjkxNTksIDEyOTE2MywgMTI5MTY3LCAxMjkxNzEsIAorICAgIDEyOTE3NSwgMTI5MTc5LCAxMjkxODMsIDEyOTE4NywgMTI5MTkxLCAxMjkxOTUsIDEyOTE5OSwgMTI5MjAzLCAxMjkyMDcsIAorICAgIDEyOTIxMSwgMTI5MjE1LCAxMjkyMTksIDEyOTIyMywgMTI5MjI3LCAxMjkyMzEsIDEyOTIzNSwgMTI5MjM5LCAxMjkyNDMsIAorICAgIDEyOTI0NywgMTI5MjUxLCAxMjkyNTUsIDEyOTI1OSwgMTI5MjYzLCAxMjkyNjcsIDEyOTI3MSwgMTI5Mjc1LCAxMjkyNzksIAorICAgIDEyOTI4MywgMTI5Mjg3LCAxMjkyOTEsIDEyOTI5NSwgMTI5Mjk5LCAxMjkzMDMsIDEyOTMwNywgMTI5MzExLCAxMjkzMTUsIAorICAgIDEyOTMxOSwgMTI5MzIzLCAxMjkzMjcsIDEyOTMzMSwgMTI5MzM1LCAxMjkzMzksIDEyOTM0MywgMTI5MzQ3LCAxMjkzNTEsIAorICAgIDEyOTM1NSwgMTI5MzU5LCAxMjkzNjMsIDEyOTM2NywgMTI5MzcxLCAxMjkzNzUsIDEyOTM3OSwgMTI5MzgzLCAxMjkzODcsIAorICAgIDEyOTM5MSwgMTI5Mzk1LCAxMjkzOTksIDEyOTQwMywgMTI5NDA3LCAxMjk0MTEsIDEyOTQxNSwgMTI5NDE5LCAxMjk0MjMsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDEyOTQyMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTI5NDI2LCAxMjk0MjksIDEyOTQzMywgMTI5NDM3LCAxMjk0NDAsIAotICAgIDEyOTQ0NCwgMTI5NDQ4LCAxMjk0NTEsIDEyOTQ1NCwgMTI5NDU4LCAxMjk0NjIsIDEyOTQ2NSwgMTI5NDY4LCAxMjk0NzEsIAotICAgIDEyOTQ3NCwgMTI5NDc5LCAxMjk0ODIsIDEyOTQ4NiwgMTI5NDg5LCAxMjk0OTIsIDEyOTQ5NSwgMTI5NDk4LCAxMjk1MDEsIAotICAgIDEyOTUwNCwgMTI5NTA3LCAxMjk1MTAsIDEyOTUxMywgMTI5NTE2LCAxMjk1MTksIDEyOTUyMywgMTI5NTI3LCAxMjk1MzEsIAotICAgIDEyOTUzNSwgMTI5NTQwLCAxMjk1NDUsIDEyOTU1MSwgMTI5NTU3LCAxMjk1NjMsIDEyOTU2OCwgMTI5NTc0LCAxMjk1ODAsIAotICAgIDEyOTU4NiwgMTI5NTkxLCAxMjk1OTcsIDEyOTYwMywgMTI5NjA4LCAxMjk2MTMsIDEyOTYxOSwgMTI5NjI0LCAxMjk2MzAsIAotICAgIDEyOTYzNiwgMTI5NjQxLCAxMjk2NDcsIDEyOTY1MywgMTI5NjU4LCAxMjk2NjQsIDEyOTY3MCwgMTI5Njc2LCAxMjk2ODIsIAotICAgIDEyOTY4OCwgMTI5NjkyLCAxMjk2OTcsIDEyOTcwMSwgMTI5NzA2LCAxMjk3MTAsIDEyOTcxNSwgMTI5NzIwLCAxMjk3MjYsIAotICAgIDEyOTczMiwgMTI5NzM4LCAxMjk3NDMsIDEyOTc0OSwgMTI5NzU1LCAxMjk3NjEsIDEyOTc2NiwgMTI5NzcyLCAxMjk3NzgsIAotICAgIDEyOTc4MywgMTI5Nzg4LCAxMjk3OTQsIDEyOTc5OSwgMTI5ODA1LCAxMjk4MTEsIDEyOTgxNiwgMTI5ODIyLCAxMjk4MjgsIAotICAgIDEyOTgzMywgMTI5ODM5LCAxMjk4NDUsIDEyOTg1MSwgMTI5ODU3LCAxMjk4NjMsIDEyOTg2OCwgMTI5ODcyLCAxMjk4NzcsIAotICAgIDEyOTg3OSwgMTI5ODgzLCAxMjk4ODYsIDEyOTg4OSwgMTI5ODkyLCAxMjk4OTUsIDEyOTg5OCwgMTI5OTAxLCAxMjk5MDQsIAotICAgIDEyOTkwNywgMTI5OTEwLCAxMjk5MTMsIDEyOTkxNiwgMTI5OTE5LCAxMjk5MjIsIDEyOTkyNSwgMTI5OTI4LCAxMjk5MzEsIAotICAgIDEyOTkzNCwgMTI5OTM3LCAxMjk5NDAsIDEyOTk0MywgMTI5OTQ2LCAxMjk5NDksIDEyOTk1MiwgMTI5OTU1LCAxMjk5NTgsIAotICAgIDEyOTk2MSwgMTI5OTY0LCAxMjk5NjcsIDEyOTk3MCwgMTI5OTczLCAxMjk5NzYsIDEyOTk3OSwgMTI5OTgyLCAxMjk5ODUsIAotICAgIDEyOTk4OCwgMTI5OTkxLCAxMjk5OTQsIDEyOTk5NywgMTMwMDAwLCAxMzAwMDMsIDEzMDAwNiwgMTMwMDA5LCAxMzAwMTIsIAotICAgIDEzMDAxNSwgMTMwMDE4LCAxMzAwMjEsIDEzMDAyNCwgMTMwMDI3LCAxMzAwMzAsIDEzMDAzMywgMTMwMDM2LCAxMzAwMzksIAotICAgIDEzMDA0MiwgMTMwMDQ1LCAxMzAwNDgsIDEzMDA1MSwgMTMwMDU0LCAxMzAwNTcsIDEzMDA2MCwgMTMwMDYzLCAxMzAwNjYsIAotICAgIDEzMDA2OSwgMTMwMDcyLCAxMzAwNzUsIDEzMDA3OCwgMTMwMDgxLCAxMzAwODQsIDEzMDA4NywgMTMwMDkwLCAxMzAwOTMsIAotICAgIDEzMDA5NiwgMTMwMDk5LCAxMzAxMDIsIDEzMDEwNSwgMTMwMTA4LCAxMzAxMTEsIDEzMDExNCwgMTMwMTE3LCAxMzAxMjAsIAotICAgIDEzMDEyMywgMTMwMTI2LCAxMzAxMjksIDEzMDEzMiwgMTMwMTM1LCAxMzAxMzgsIDEzMDE0MSwgMTMwMTQ0LCAxMzAxNDcsIAotICAgIDEzMDE1MCwgMTMwMTUzLCAxMzAxNTYsIDEzMDE1OSwgMTMwMTYyLCAxMzAxNjUsIDEzMDE2OCwgMTMwMTcxLCAxMzAxNzQsIAotICAgIDEzMDE3NywgMTMwMTgwLCAxMzAxODMsIDEzMDE4NiwgMTMwMTg5LCAxMzAxOTIsIDEzMDE5NSwgMTMwMTk4LCAxMzAyMDEsIAotICAgIDEzMDIwNCwgMTMwMjA3LCAxMzAyMTAsIDEzMDIxMywgMTMwMjE2LCAxMzAyMTksIDEzMDIyMiwgMTMwMjI1LCAxMzAyMjgsIAotICAgIDEzMDIzMSwgMTMwMjM0LCAxMzAyMzcsIDEzMDI0MCwgMTMwMjQzLCAxMzAyNDYsIDEzMDI0OSwgMTMwMjUyLCAxMzAyNTUsIAotICAgIDEzMDI1OCwgMTMwMjYxLCAxMzAyNjQsIDEzMDI2NywgMTMwMjcwLCAxMzAyNzMsIDEzMDI3NiwgMTMwMjc5LCAxMzAyODIsIAotICAgIDEzMDI4NSwgMTMwMjg4LCAxMzAyOTEsIDEzMDI5NCwgMTMwMjk3LCAxMzAzMDAsIDEzMDMwMywgMTMwMzA2LCAxMzAzMDksIAotICAgIDEzMDMxMiwgMTMwMzE1LCAxMzAzMTgsIDEzMDMyMSwgMTMwMzI0LCAxMzAzMjcsIDEzMDMzMCwgMTMwMzMzLCAxMzAzMzYsIAotICAgIDEzMDMzOSwgMTMwMzQyLCAxMzAzNDUsIDEzMDM0OCwgMTMwMzUxLCAxMzAzNTQsIDEzMDM1NywgMTMwMzYwLCAxMzAzNjMsIAotICAgIDEzMDM2NiwgMTMwMzY5LCAxMzAzNzIsIDEzMDM3NSwgMTMwMzc4LCAxMzAzODEsIDEzMDM4NCwgMTMwMzg3LCAxMzAzOTAsIAotICAgIDEzMDM5MywgMTMwMzk2LCAxMzAzOTksIDEzMDQwMiwgMTMwNDA1LCAxMzA0MDgsIDEzMDQxMSwgMTMwNDE0LCAxMzA0MTcsIAotICAgIDEzMDQyMCwgMTMwNDIzLCAxMzA0MjYsIDEzMDQyOSwgMTMwNDMyLCAxMzA0MzUsIDEzMDQzOCwgMTMwNDQxLCAxMzA0NDQsIAotICAgIDEzMDQ0NywgMTMwNDUwLCAxMzA0NTMsIDEzMDQ1NiwgMTMwNDU5LCAxMzA0NjIsIDEzMDQ2NSwgMTMwNDY4LCAxMzA0NzEsIAotICAgIDEzMDQ3NCwgMTMwNDc3LCAxMzA0ODAsIDEzMDQ4MywgMTMwNDg2LCAxMzA0ODksIDEzMDQ5MiwgMTMwNDk1LCAxMzA0OTgsIAotICAgIDEzMDUwMSwgMTMwNTA0LCAxMzA1MDcsIDEzMDUxMCwgMTMwNTEzLCAxMzA1MTYsIDEzMDUxOSwgMTMwNTIyLCAxMzA1MjUsIAotICAgIDEzMDUyOCwgMTMwNTMxLCAxMzA1MzQsIDEzMDUzNywgMTMwNTQwLCAxMzA1NDMsIDEzMDU0NiwgMTMwNTQ5LCAxMzA1NTIsIAotICAgIDEzMDU1NSwgMTMwNTU4LCAxMzA1NjEsIDEzMDU2NCwgMTMwNTY3LCAxMzA1NzAsIDEzMDU3MywgMTMwNTc2LCAxMzA1NzksIAotICAgIDEzMDU4MiwgMTMwNTg1LCAxMzA1ODgsIDEzMDU5MSwgMTMwNTk0LCAxMzA1OTcsIDEzMDYwMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTMwNjAzLCAxMzA2MDUsIDEzMDYwNywgMTMwNjEyLCAxMzA2MTQsIAotICAgIDEzMDYxOSwgMTMwNjIxLCAxMzA2MjYsIDEzMDYyOCwgMTMwNjMzLCAxMzA2MzUsIDEzMDYzNywgMTMwNjM5LCAxMzA2NDEsIAotICAgIDEzMDY0MywgMTMwNjQ1LCAxMzA2NDcsIDEzMDY0OSwgMTMwNjUxLCAxMzA2NTQsIDEzMDY1NywgMTMwNjU5LCAxMzA2NjEsIAotICAgIDEzMDY2NSwgMTMwNjY4LCAxMzA2NzMsIDEzMDY3NSwgMTMwNjc3LCAxMzA2NzksIDEzMDY4MywgMTMwNjg2LCAxMzA2ODgsIAotICAgIDEzMDY5MiwgMTMwNjk0LCAxMzA2OTgsIDEzMDcwMCwgMTMwNzA0LCAxMzA3MDcsIDEzMDcwOSwgMTMwNzEzLCAxMzA3MTcsIAotICAgIDEzMDcxOSwgMTMwNzI1LCAxMzA3MjcsIDEzMDczMiwgMTMwNzM0LCAxMzA3MzksIDEzMDc0MSwgMTMwNzQ2LCAxMzA3NDgsIAotICAgIDEzMDc1MywgMTMwNzU1LCAxMzA3NTgsIDEzMDc2MCwgMTMwNzY0LCAxMzA3NjYsIDEzMDc3MywgMTMwNzc1LCAxMzA3NzcsIAotICAgIDEzMDc3OSwgMTMwNzg0LCAxMzA3ODYsIDEzMDc4OCwgMTMwNzkwLCAxMzA3OTIsIDEzMDc5NCwgMTMwNzk5LCAxMzA4MDMsIAotICAgIDEzMDgwNSwgMTMwODEwLCAxMzA4MTQsIDEzMDgxNiwgMTMwODIxLCAxMzA4MjUsIDEzMDgyNywgMTMwODMyLCAxMzA4MzYsIAotICAgIDEzMDgzOCwgMTMwODQwLCAxMzA4NDIsIDEzMDg0NCwgMTMwODQ4LCAxMzA4NTAsIDEzMDg1NSwgMTMwODU3LCAxMzA4NjMsIAotICAgIDEzMDg2NSwgMTMwODcxLCAxMzA4NzMsIDEzMDg3NSwgMTMwODc3LCAxMzA4ODEsIDEzMDg4MywgMTMwODkwLCAxMzA4OTIsIAotICAgIDEzMDg5OSwgMTMwOTAxLCAxMzA5MDYsIDEzMDkxMSwgMTMwOTEzLCAxMzA5MTksIDEzMDkyNSwgMTMwOTI3LCAxMzA5MzMsIAotICAgIDEzMDkzOCwgMTMwOTQwLCAxMzA5NDYsIDEzMDk1MiwgMTMwOTU0LCAxMzA5NjAsIDEzMDk2NiwgMTMwOTY4LCAxMzA5NzQsIAotICAgIDEzMDk3OCwgMTMwOTgwLCAxMzA5ODUsIDEzMDk4NywgMTMwOTg5LCAxMzA5OTQsIDEzMDk5NiwgMTMwOTk4LCAxMzEwMDQsIAotICAgIDEzMTAwNiwgMTMxMDExLCAxMzEwMTUsIDEzMTAxNywgMTMxMDIyLCAxMzEwMjYsIDEzMTAyOCwgMTMxMDM0LCAxMzEwMzYsIAotICAgIDEzMTA0MCwgMTMxMDQyLCAxMzEwNDYsIDEzMTA0OCwgMTMxMDU1LCAxMzEwNjIsIDEzMTA2NCwgMTMxMDcxLCAxMzEwNzgsIAotICAgIDEzMTA4MCwgMTMxMDg1LCAxMzEwODcsIDEzMTA5NCwgMTMxMDk2LCAxMzExMDEsIDEzMTEwMywgMTMxMTA5LCAxMzExMTEsIAotICAgIDEzMTExNSwgMTMxMTE3LCAxMzExMjMsIDEzMTEyNSwgMTMxMTI5LCAxMzExMzEsIDEzMTEzNywgMTMxMTM5LCAxMzExNDEsIAotICAgIDEzMTE0MywgMTMxMTQ4LCAxMzExNTMsIDEzMTE1NSwgMTMxMTU5LCAxMzExNjYsIDEzMTE3MywgMTMxMTc4LCAxMzExODMsIAotICAgIDEzMTE5NSwgMTMxMTk3LCAxMzExOTksIDEzMTIwMSwgMTMxMjAzLCAxMzEyMDUsIDEzMTIwNywgMTMxMjA5LCAxMzEyMTEsIAotICAgIDEzMTIxMywgMTMxMjE1LCAxMzEyMTcsIDEzMTIxOSwgMTMxMjIxLCAxMzEyMjMsIDEzMTIyNSwgMTMxMjI3LCAxMzEyMjksIAotICAgIDEzMTIzNSwgMTMxMjQyLCAxMzEyNDcsIDEzMTI1MiwgMTMxMjYzLCAxMzEyNjUsIDEzMTI2NywgMTMxMjY5LCAxMzEyNzEsIAotICAgIDEzMTI3MywgMTMxMjc1LCAxMzEyNzcsIDEzMTI3OSwgMTMxMjgxLCAxMzEyODMsIDEzMTI4NSwgMTMxMjg3LCAxMzEyODksIAotICAgIDEzMTI5MSwgMTMxMjkzLCAxMzEyOTUsIDEzMTMwMCwgMTMxMzAyLCAxMzEzMDQsIDEzMTMxNSwgMTMxMzE3LCAxMzEzMTksIAotICAgIDEzMTMyMSwgMTMxMzIzLCAxMzEzMjUsIDEzMTMyNywgMTMxMzI5LCAxMzEzMzEsIDEzMTMzMywgMTMxMzM1LCAxMzEzMzcsIAotICAgIDEzMTMzOSwgMTMxMzQxLCAxMzEzNDMsIDEzMTM0NSwgMTMxMzQ3LCAxMzEzNDksIDEzMTM1MSwgMTMxMzUzLCAxMzEzNTUsIAotICAgIDEzMTM1NywgMTMxMzU5LCAxMzEzNjEsIDEzMTM2MywgMTMxMzY1LCAxMzEzNjcsIDEzMTM2OSwgMTMxMzcxLCAxMzEzNzMsIAotICAgIDEzMTM3NSwgMTMxMzc3LCAxMzEzNzksIDEzMTM4MSwgMTMxMzgzLCAxMzEzODUsIDEzMTM4NywgMTMxMzg5LCAxMzEzOTEsIAotICAgIDEzMTM5MywgMTMxMzk1LCAxMzEzOTcsIDEzMTM5OSwgMTMxNDAxLCAxMzE0MDMsIDEzMTQwNSwgMTMxNDA3LCAxMzE0MDksIAotICAgIDEzMTQxMSwgMTMxNDEzLCAxMzE0MTUsIDEzMTQxNywgMTMxNDE5LCAxMzE0MjEsIDEzMTQyMywgMTMxNDI1LCAxMzE0MjcsIAotICAgIDEzMTQyOSwgMTMxNDMxLCAxMzE0MzMsIDEzMTQzNSwgMTMxNDM3LCAxMzE0MzksIDEzMTQ0MSwgMTMxNDQzLCAxMzE0NDUsIAotICAgIDEzMTQ0NywgMTMxNDQ5LCAxMzE0NTEsIDEzMTQ1MywgMTMxNDU1LCAxMzE0NTcsIDEzMTQ1OSwgMTMxNDYxLCAxMzE0NjMsIAotICAgIDEzMTQ2NSwgMTMxNDY3LCAxMzE0NjksIDEzMTQ3MSwgMTMxNDczLCAxMzE0NzUsIDEzMTQ3NywgMTMxNDc5LCAxMzE0ODEsIAotICAgIDEzMTQ4MywgMTMxNDg1LCAxMzE0ODcsIDEzMTQ4OSwgMTMxNDkxLCAxMzE0OTMsIDEzMTQ5NSwgMTMxNDk3LCAxMzE0OTksIAotICAgIDEzMTUwMSwgMTMxNTAzLCAxMzE1MDUsIDEzMTUwNywgMTMxNTA5LCAxMzE1MTEsIDEzMTUxMywgMTMxNTE1LCAxMzE1MTcsIAotICAgIDEzMTUxOSwgMTMxNTIxLCAxMzE1MjMsIDEzMTUyNSwgMTMxNTI3LCAxMzE1MjksIDEzMTUzMSwgMTMxNTMzLCAxMzE1MzUsIAotICAgIDEzMTUzNywgMTMxNTM5LCAxMzE1NDEsIDEzMTU0MywgMTMxNTQ1LCAxMzE1NDcsIDEzMTU0OSwgMTMxNTUxLCAxMzE1NTMsIAotICAgIDEzMTU1NSwgMTMxNTU3LCAxMzE1NTksIDEzMTU2MSwgMTMxNTYzLCAxMzE1NjUsIDEzMTU2NywgMTMxNTY5LCAxMzE1NzEsIAotICAgIDEzMTU3MywgMTMxNTc1LCAxMzE1NzcsIDEzMTU3OSwgMTMxNTgxLCAxMzE1ODMsIDEzMTU4NSwgMTMxNTg3LCAxMzE1ODksIAotICAgIDEzMTU5MSwgMTMxNTkzLCAxMzE1OTUsIDEzMTU5NywgMTMxNTk5LCAxMzE2MDEsIDEzMTYwMywgMTMxNjA1LCAxMzE2MDcsIAotICAgIDEzMTYwOSwgMTMxNjExLCAxMzE2MTMsIDEzMTYxNSwgMTMxNjE3LCAxMzE2MTksIDEzMTYyMSwgMTMxNjIzLCAxMzE2MjUsIAotICAgIDEzMTYyNywgMTMxNjI5LCAxMzE2MzEsIDEzMTYzMywgMTMxNjM1LCAxMzE2MzcsIDEzMTYzOSwgMTMxNjQxLCAxMzE2NDMsIAotICAgIDEzMTY0NSwgMTMxNjQ3LCAxMzE2NDksIDEzMTY1MSwgMTMxNjUzLCAxMzE2NTUsIDEzMTY1NywgMTMxNjU5LCAxMzE2NjEsIAotICAgIDEzMTY2MywgMTMxNjY1LCAxMzE2NjcsIDEzMTY2OSwgMTMxNjcxLCAxMzE2NzMsIDEzMTY3NSwgMTMxNjc3LCAxMzE2NzksIAotICAgIDEzMTY4MSwgMTMxNjgzLCAxMzE2ODUsIDEzMTY4NywgMTMxNjg5LCAxMzE2OTEsIDEzMTY5MywgMTMxNjk1LCAxMzE2OTcsIAotICAgIDEzMTY5OSwgMTMxNzAxLCAxMzE3MDMsIDEzMTcwNSwgMTMxNzA3LCAxMzE3MDksIDEzMTcxMSwgMTMxNzEzLCAxMzE3MTUsIAotICAgIDEzMTcxNywgMTMxNzE5LCAxMzE3MjEsIDEzMTcyMywgMTMxNzI1LCAxMzE3MjcsIDEzMTcyOSwgMTMxNzMxLCAxMzE3MzMsIAotICAgIDEzMTczNSwgMTMxNzM3LCAxMzE3MzksIDEzMTc0MSwgMTMxNzQzLCAxMzE3NDUsIDEzMTc0NywgMTMxNzQ5LCAxMzE3NTEsIAotICAgIDEzMTc1MywgMTMxNzU1LCAxMzE3NTcsIDEzMTc1OSwgMTMxNzYxLCAxMzE3NjMsIDEzMTc2NSwgMTMxNzY3LCAxMzE3NjksIAotICAgIDEzMTc3MSwgMTMxNzczLCAxMzE3NzUsIDEzMTc3NywgMTMxNzc5LCAxMzE3ODEsIDEzMTc4MywgMTMxNzg1LCAxMzE3ODcsIAotICAgIDEzMTc4OSwgMTMxNzkxLCAxMzE3OTMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDEyOTQyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTI5NDMxLCAxMjk0MzQsIDEyOTQzOCwgMTI5NDQyLCAxMjk0NDUsIAorICAgIDEyOTQ0OSwgMTI5NDUzLCAxMjk0NTYsIDEyOTQ1OSwgMTI5NDYzLCAxMjk0NjcsIDEyOTQ3MCwgMTI5NDczLCAxMjk0NzYsIAorICAgIDEyOTQ3OSwgMTI5NDg0LCAxMjk0ODcsIDEyOTQ5MSwgMTI5NDk0LCAxMjk0OTcsIDEyOTUwMCwgMTI5NTAzLCAxMjk1MDYsIAorICAgIDEyOTUwOSwgMTI5NTEyLCAxMjk1MTUsIDEyOTUxOCwgMTI5NTIxLCAxMjk1MjQsIDEyOTUyOCwgMTI5NTMyLCAxMjk1MzYsIAorICAgIDEyOTU0MCwgMTI5NTQ1LCAxMjk1NTAsIDEyOTU1NiwgMTI5NTYyLCAxMjk1NjgsIDEyOTU3MywgMTI5NTc5LCAxMjk1ODUsIAorICAgIDEyOTU5MSwgMTI5NTk2LCAxMjk2MDIsIDEyOTYwOCwgMTI5NjEzLCAxMjk2MTgsIDEyOTYyNCwgMTI5NjI5LCAxMjk2MzUsIAorICAgIDEyOTY0MSwgMTI5NjQ2LCAxMjk2NTIsIDEyOTY1OCwgMTI5NjYzLCAxMjk2NjksIDEyOTY3NSwgMTI5NjgxLCAxMjk2ODcsIAorICAgIDEyOTY5MywgMTI5Njk3LCAxMjk3MDIsIDEyOTcwNiwgMTI5NzExLCAxMjk3MTUsIDEyOTcyMCwgMTI5NzI1LCAxMjk3MzEsIAorICAgIDEyOTczNywgMTI5NzQzLCAxMjk3NDgsIDEyOTc1NCwgMTI5NzYwLCAxMjk3NjYsIDEyOTc3MSwgMTI5Nzc3LCAxMjk3ODMsIAorICAgIDEyOTc4OCwgMTI5NzkzLCAxMjk3OTksIDEyOTgwNCwgMTI5ODEwLCAxMjk4MTYsIDEyOTgyMSwgMTI5ODI3LCAxMjk4MzMsIAorICAgIDEyOTgzOCwgMTI5ODQ0LCAxMjk4NTAsIDEyOTg1NiwgMTI5ODYyLCAxMjk4NjgsIDEyOTg3MywgMTI5ODc3LCAxMjk4ODIsIAorICAgIDEyOTg4NCwgMTI5ODg4LCAxMjk4OTEsIDEyOTg5NCwgMTI5ODk3LCAxMjk5MDAsIDEyOTkwMywgMTI5OTA2LCAxMjk5MDksIAorICAgIDEyOTkxMiwgMTI5OTE1LCAxMjk5MTgsIDEyOTkyMSwgMTI5OTI0LCAxMjk5MjcsIDEyOTkzMCwgMTI5OTMzLCAxMjk5MzYsIAorICAgIDEyOTkzOSwgMTI5OTQyLCAxMjk5NDUsIDEyOTk0OCwgMTI5OTUxLCAxMjk5NTQsIDEyOTk1NywgMTI5OTYwLCAxMjk5NjMsIAorICAgIDEyOTk2NiwgMTI5OTY5LCAxMjk5NzIsIDEyOTk3NSwgMTI5OTc4LCAxMjk5ODEsIDEyOTk4NCwgMTI5OTg3LCAxMjk5OTAsIAorICAgIDEyOTk5MywgMTI5OTk2LCAxMjk5OTksIDEzMDAwMiwgMTMwMDA1LCAxMzAwMDgsIDEzMDAxMSwgMTMwMDE0LCAxMzAwMTcsIAorICAgIDEzMDAyMCwgMTMwMDIzLCAxMzAwMjYsIDEzMDAyOSwgMTMwMDMyLCAxMzAwMzUsIDEzMDAzOCwgMTMwMDQxLCAxMzAwNDQsIAorICAgIDEzMDA0NywgMTMwMDUwLCAxMzAwNTMsIDEzMDA1NiwgMTMwMDU5LCAxMzAwNjIsIDEzMDA2NSwgMTMwMDY4LCAxMzAwNzEsIAorICAgIDEzMDA3NCwgMTMwMDc3LCAxMzAwODAsIDEzMDA4MywgMTMwMDg2LCAxMzAwODksIDEzMDA5MiwgMTMwMDk1LCAxMzAwOTgsIAorICAgIDEzMDEwMSwgMTMwMTA0LCAxMzAxMDcsIDEzMDExMCwgMTMwMTEzLCAxMzAxMTYsIDEzMDExOSwgMTMwMTIyLCAxMzAxMjUsIAorICAgIDEzMDEyOCwgMTMwMTMxLCAxMzAxMzQsIDEzMDEzNywgMTMwMTQwLCAxMzAxNDMsIDEzMDE0NiwgMTMwMTQ5LCAxMzAxNTIsIAorICAgIDEzMDE1NSwgMTMwMTU4LCAxMzAxNjEsIDEzMDE2NCwgMTMwMTY3LCAxMzAxNzAsIDEzMDE3MywgMTMwMTc2LCAxMzAxNzksIAorICAgIDEzMDE4MiwgMTMwMTg1LCAxMzAxODgsIDEzMDE5MSwgMTMwMTk0LCAxMzAxOTcsIDEzMDIwMCwgMTMwMjAzLCAxMzAyMDYsIAorICAgIDEzMDIwOSwgMTMwMjEyLCAxMzAyMTUsIDEzMDIxOCwgMTMwMjIxLCAxMzAyMjQsIDEzMDIyNywgMTMwMjMwLCAxMzAyMzMsIAorICAgIDEzMDIzNiwgMTMwMjM5LCAxMzAyNDIsIDEzMDI0NSwgMTMwMjQ4LCAxMzAyNTEsIDEzMDI1NCwgMTMwMjU3LCAxMzAyNjAsIAorICAgIDEzMDI2MywgMTMwMjY2LCAxMzAyNjksIDEzMDI3MiwgMTMwMjc1LCAxMzAyNzgsIDEzMDI4MSwgMTMwMjg0LCAxMzAyODcsIAorICAgIDEzMDI5MCwgMTMwMjkzLCAxMzAyOTYsIDEzMDI5OSwgMTMwMzAyLCAxMzAzMDUsIDEzMDMwOCwgMTMwMzExLCAxMzAzMTQsIAorICAgIDEzMDMxNywgMTMwMzIwLCAxMzAzMjMsIDEzMDMyNiwgMTMwMzI5LCAxMzAzMzIsIDEzMDMzNSwgMTMwMzM4LCAxMzAzNDEsIAorICAgIDEzMDM0NCwgMTMwMzQ3LCAxMzAzNTAsIDEzMDM1MywgMTMwMzU2LCAxMzAzNTksIDEzMDM2MiwgMTMwMzY1LCAxMzAzNjgsIAorICAgIDEzMDM3MSwgMTMwMzc0LCAxMzAzNzcsIDEzMDM4MCwgMTMwMzgzLCAxMzAzODYsIDEzMDM4OSwgMTMwMzkyLCAxMzAzOTUsIAorICAgIDEzMDM5OCwgMTMwNDAxLCAxMzA0MDQsIDEzMDQwNywgMTMwNDEwLCAxMzA0MTMsIDEzMDQxNiwgMTMwNDE5LCAxMzA0MjIsIAorICAgIDEzMDQyNSwgMTMwNDI4LCAxMzA0MzEsIDEzMDQzNCwgMTMwNDM3LCAxMzA0NDAsIDEzMDQ0MywgMTMwNDQ2LCAxMzA0NDksIAorICAgIDEzMDQ1MiwgMTMwNDU1LCAxMzA0NTgsIDEzMDQ2MSwgMTMwNDY0LCAxMzA0NjcsIDEzMDQ3MCwgMTMwNDczLCAxMzA0NzYsIAorICAgIDEzMDQ3OSwgMTMwNDgyLCAxMzA0ODUsIDEzMDQ4OCwgMTMwNDkxLCAxMzA0OTQsIDEzMDQ5NywgMTMwNTAwLCAxMzA1MDMsIAorICAgIDEzMDUwNiwgMTMwNTA5LCAxMzA1MTIsIDEzMDUxNSwgMTMwNTE4LCAxMzA1MjEsIDEzMDUyNCwgMTMwNTI3LCAxMzA1MzAsIAorICAgIDEzMDUzMywgMTMwNTM2LCAxMzA1MzksIDEzMDU0MiwgMTMwNTQ1LCAxMzA1NDgsIDEzMDU1MSwgMTMwNTU0LCAxMzA1NTcsIAorICAgIDEzMDU2MCwgMTMwNTYzLCAxMzA1NjYsIDEzMDU2OSwgMTMwNTcyLCAxMzA1NzUsIDEzMDU3OCwgMTMwNTgxLCAxMzA1ODQsIAorICAgIDEzMDU4NywgMTMwNTkwLCAxMzA1OTMsIDEzMDU5NiwgMTMwNTk5LCAxMzA2MDIsIDEzMDYwNSwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTMwNjA4LCAxMzA2MTAsIDEzMDYxMiwgMTMwNjE3LCAxMzA2MTksIAorICAgIDEzMDYyNCwgMTMwNjI2LCAxMzA2MzEsIDEzMDYzMywgMTMwNjM4LCAxMzA2NDAsIDEzMDY0MiwgMTMwNjQ0LCAxMzA2NDYsIAorICAgIDEzMDY0OCwgMTMwNjUwLCAxMzA2NTIsIDEzMDY1NCwgMTMwNjU2LCAxMzA2NTksIDEzMDY2MiwgMTMwNjY0LCAxMzA2NjYsIAorICAgIDEzMDY3MCwgMTMwNjczLCAxMzA2NzgsIDEzMDY4MCwgMTMwNjgyLCAxMzA2ODQsIDEzMDY4OCwgMTMwNjkxLCAxMzA2OTMsIAorICAgIDEzMDY5NywgMTMwNjk5LCAxMzA3MDMsIDEzMDcwNSwgMTMwNzA5LCAxMzA3MTIsIDEzMDcxNCwgMTMwNzE4LCAxMzA3MjIsIAorICAgIDEzMDcyNCwgMTMwNzMwLCAxMzA3MzIsIDEzMDczNywgMTMwNzM5LCAxMzA3NDQsIDEzMDc0NiwgMTMwNzUxLCAxMzA3NTMsIAorICAgIDEzMDc1OCwgMTMwNzYwLCAxMzA3NjMsIDEzMDc2NSwgMTMwNzY5LCAxMzA3NzEsIDEzMDc3OCwgMTMwNzgwLCAxMzA3ODIsIAorICAgIDEzMDc4NCwgMTMwNzg5LCAxMzA3OTEsIDEzMDc5MywgMTMwNzk1LCAxMzA3OTcsIDEzMDc5OSwgMTMwODA0LCAxMzA4MDgsIAorICAgIDEzMDgxMCwgMTMwODE1LCAxMzA4MTksIDEzMDgyMSwgMTMwODI2LCAxMzA4MzAsIDEzMDgzMiwgMTMwODM3LCAxMzA4NDEsIAorICAgIDEzMDg0MywgMTMwODQ1LCAxMzA4NDcsIDEzMDg0OSwgMTMwODUzLCAxMzA4NTUsIDEzMDg2MCwgMTMwODYyLCAxMzA4NjgsIAorICAgIDEzMDg3MCwgMTMwODc2LCAxMzA4NzgsIDEzMDg4MCwgMTMwODgyLCAxMzA4ODYsIDEzMDg4OCwgMTMwODk1LCAxMzA4OTcsIAorICAgIDEzMDkwNCwgMTMwOTA2LCAxMzA5MTEsIDEzMDkxNiwgMTMwOTE4LCAxMzA5MjQsIDEzMDkzMCwgMTMwOTMyLCAxMzA5MzgsIAorICAgIDEzMDk0MywgMTMwOTQ1LCAxMzA5NTEsIDEzMDk1NywgMTMwOTU5LCAxMzA5NjUsIDEzMDk3MSwgMTMwOTczLCAxMzA5NzksIAorICAgIDEzMDk4MywgMTMwOTg1LCAxMzA5OTAsIDEzMDk5MiwgMTMwOTk0LCAxMzA5OTksIDEzMTAwMSwgMTMxMDAzLCAxMzEwMDksIAorICAgIDEzMTAxMSwgMTMxMDE2LCAxMzEwMjAsIDEzMTAyMiwgMTMxMDI3LCAxMzEwMzEsIDEzMTAzMywgMTMxMDM5LCAxMzEwNDEsIAorICAgIDEzMTA0NSwgMTMxMDQ3LCAxMzEwNTEsIDEzMTA1MywgMTMxMDYwLCAxMzEwNjcsIDEzMTA2OSwgMTMxMDc2LCAxMzEwODMsIAorICAgIDEzMTA4NSwgMTMxMDkwLCAxMzEwOTIsIDEzMTA5OSwgMTMxMTAxLCAxMzExMDYsIDEzMTEwOCwgMTMxMTE0LCAxMzExMTYsIAorICAgIDEzMTEyMCwgMTMxMTIyLCAxMzExMjgsIDEzMTEzMCwgMTMxMTM0LCAxMzExMzYsIDEzMTE0MiwgMTMxMTQ0LCAxMzExNDYsIAorICAgIDEzMTE0OCwgMTMxMTUzLCAxMzExNTgsIDEzMTE2MCwgMTMxMTY5LCAxMzExNzMsIDEzMTE4MCwgMTMxMTg3LCAxMzExOTIsIAorICAgIDEzMTE5NywgMTMxMjA5LCAxMzEyMTEsIDEzMTIxMywgMTMxMjE1LCAxMzEyMTcsIDEzMTIxOSwgMTMxMjIxLCAxMzEyMjMsIAorICAgIDEzMTIyNSwgMTMxMjI3LCAxMzEyMjksIDEzMTIzMSwgMTMxMjMzLCAxMzEyMzUsIDEzMTIzNywgMTMxMjM5LCAxMzEyNDEsIAorICAgIDEzMTI0MywgMTMxMjQ5LCAxMzEyNTYsIDEzMTI2MSwgMTMxMjY2LCAxMzEyNzcsIDEzMTI3OSwgMTMxMjgxLCAxMzEyODMsIAorICAgIDEzMTI4NSwgMTMxMjg3LCAxMzEyODksIDEzMTI5MSwgMTMxMjkzLCAxMzEyOTUsIDEzMTI5NywgMTMxMjk5LCAxMzEzMDEsIAorICAgIDEzMTMwMywgMTMxMzA1LCAxMzEzMDcsIDEzMTMwOSwgMTMxMzE0LCAxMzEzMTYsIDEzMTMxOCwgMTMxMzI5LCAxMzEzMzEsIAorICAgIDEzMTMzMywgMTMxMzM1LCAxMzEzMzcsIDEzMTMzOSwgMTMxMzQxLCAxMzEzNDMsIDEzMTM0NSwgMTMxMzQ3LCAxMzEzNDksIAorICAgIDEzMTM1MSwgMTMxMzUzLCAxMzEzNTUsIDEzMTM1NywgMTMxMzU5LCAxMzEzNjEsIDEzMTM2MywgMTMxMzY1LCAxMzEzNjcsIAorICAgIDEzMTM2OSwgMTMxMzcxLCAxMzEzNzMsIDEzMTM3NSwgMTMxMzc3LCAxMzEzNzksIDEzMTM4MSwgMTMxMzgzLCAxMzEzODUsIAorICAgIDEzMTM4NywgMTMxMzg5LCAxMzEzOTEsIDEzMTM5MywgMTMxMzk1LCAxMzEzOTcsIDEzMTM5OSwgMTMxNDAxLCAxMzE0MDMsIAorICAgIDEzMTQwNSwgMTMxNDA3LCAxMzE0MDksIDEzMTQxMSwgMTMxNDEzLCAxMzE0MTUsIDEzMTQxNywgMTMxNDE5LCAxMzE0MjEsIAorICAgIDEzMTQyMywgMTMxNDI1LCAxMzE0MjcsIDEzMTQyOSwgMTMxNDMxLCAxMzE0MzMsIDEzMTQzNSwgMTMxNDM3LCAxMzE0MzksIAorICAgIDEzMTQ0MSwgMTMxNDQzLCAxMzE0NDUsIDEzMTQ0NywgMTMxNDQ5LCAxMzE0NTEsIDEzMTQ1MywgMTMxNDU1LCAxMzE0NTcsIAorICAgIDEzMTQ1OSwgMTMxNDYxLCAxMzE0NjMsIDEzMTQ2NSwgMTMxNDY3LCAxMzE0NjksIDEzMTQ3MSwgMTMxNDczLCAxMzE0NzUsIAorICAgIDEzMTQ3NywgMTMxNDc5LCAxMzE0ODEsIDEzMTQ4MywgMTMxNDg1LCAxMzE0ODcsIDEzMTQ4OSwgMTMxNDkxLCAxMzE0OTMsIAorICAgIDEzMTQ5NSwgMTMxNDk3LCAxMzE0OTksIDEzMTUwMSwgMTMxNTAzLCAxMzE1MDUsIDEzMTUwNywgMTMxNTA5LCAxMzE1MTEsIAorICAgIDEzMTUxMywgMTMxNTE1LCAxMzE1MTcsIDEzMTUxOSwgMTMxNTIxLCAxMzE1MjMsIDEzMTUyNSwgMTMxNTI3LCAxMzE1MjksIAorICAgIDEzMTUzMSwgMTMxNTMzLCAxMzE1MzUsIDEzMTUzNywgMTMxNTM5LCAxMzE1NDEsIDEzMTU0MywgMTMxNTQ1LCAxMzE1NDcsIAorICAgIDEzMTU0OSwgMTMxNTUxLCAxMzE1NTMsIDEzMTU1NSwgMTMxNTU3LCAxMzE1NTksIDEzMTU2MSwgMTMxNTYzLCAxMzE1NjUsIAorICAgIDEzMTU2NywgMTMxNTY5LCAxMzE1NzEsIDEzMTU3MywgMTMxNTc1LCAxMzE1NzcsIDEzMTU3OSwgMTMxNTgxLCAxMzE1ODMsIAorICAgIDEzMTU4NSwgMTMxNTg3LCAxMzE1ODksIDEzMTU5MSwgMTMxNTkzLCAxMzE1OTUsIDEzMTU5NywgMTMxNTk5LCAxMzE2MDEsIAorICAgIDEzMTYwMywgMTMxNjA1LCAxMzE2MDcsIDEzMTYwOSwgMTMxNjExLCAxMzE2MTMsIDEzMTYxNSwgMTMxNjE3LCAxMzE2MTksIAorICAgIDEzMTYyMSwgMTMxNjIzLCAxMzE2MjUsIDEzMTYyNywgMTMxNjI5LCAxMzE2MzEsIDEzMTYzMywgMTMxNjM1LCAxMzE2MzcsIAorICAgIDEzMTYzOSwgMTMxNjQxLCAxMzE2NDMsIDEzMTY0NSwgMTMxNjQ3LCAxMzE2NDksIDEzMTY1MSwgMTMxNjUzLCAxMzE2NTUsIAorICAgIDEzMTY1NywgMTMxNjU5LCAxMzE2NjEsIDEzMTY2MywgMTMxNjY1LCAxMzE2NjcsIDEzMTY2OSwgMTMxNjcxLCAxMzE2NzMsIAorICAgIDEzMTY3NSwgMTMxNjc3LCAxMzE2NzksIDEzMTY4MSwgMTMxNjgzLCAxMzE2ODUsIDEzMTY4NywgMTMxNjg5LCAxMzE2OTEsIAorICAgIDEzMTY5MywgMTMxNjk1LCAxMzE2OTcsIDEzMTY5OSwgMTMxNzAxLCAxMzE3MDMsIDEzMTcwNSwgMTMxNzA3LCAxMzE3MDksIAorICAgIDEzMTcxMSwgMTMxNzEzLCAxMzE3MTUsIDEzMTcxNywgMTMxNzE5LCAxMzE3MjEsIDEzMTcyMywgMTMxNzI1LCAxMzE3MjcsIAorICAgIDEzMTcyOSwgMTMxNzMxLCAxMzE3MzMsIDEzMTczNSwgMTMxNzM3LCAxMzE3MzksIDEzMTc0MSwgMTMxNzQzLCAxMzE3NDUsIAorICAgIDEzMTc0NywgMTMxNzQ5LCAxMzE3NTEsIDEzMTc1MywgMTMxNzU1LCAxMzE3NTcsIDEzMTc1OSwgMTMxNzYxLCAxMzE3NjMsIAorICAgIDEzMTc2NSwgMTMxNzY3LCAxMzE3NjksIDEzMTc3MSwgMTMxNzczLCAxMzE3NzUsIDEzMTc3NywgMTMxNzc5LCAxMzE3ODEsIAorICAgIDEzMTc4MywgMTMxNzg1LCAxMzE3ODcsIDEzMTc4OSwgMTMxNzkxLCAxMzE3OTMsIDEzMTc5NSwgMTMxNzk3LCAxMzE3OTksIAorICAgIDEzMTgwMSwgMTMxODAzLCAxMzE4MDUsIDEzMTgwNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMTMxNzk1LCAxMzE4MDUsIDEzMTgxNSwgMTMxODI0LCAxMzE4MzMsIDEzMTg0NiwgMTMxODU5LCAxMzE4NzEsIDEzMTg4MywgCi0gICAgMTMxODkzLCAxMzE5MDMsIDEzMTkxMywgMTMxOTIzLCAxMzE5MzQsIDEzMTk0NSwgMTMxOTU1LCAxMzE5NjQsIDEzMTk3MywgCi0gICAgMTMxOTgyLCAxMzE5OTUsIDEzMjAwOCwgMTMyMDIwLCAxMzIwMzIsIDEzMjA0MiwgMTMyMDUyLCAxMzIwNjIsIDEzMjA3MiwgCi0gICAgMTMyMDgxLCAxMzIwOTAsIDEzMjA5OSwgMTMyMTA4LCAxMzIxMTcsIDEzMjEyNiwgMTMyMTM1LCAxMzIxNDQsIDEzMjE1MywgCi0gICAgMTMyMTYyLCAxMzIxNzEsIDEzMjE4MCwgMTMyMTkxLCAxMzIyMDEsIDEzMjIxMSwgMTMyMjI0LCAxMzIyMzQsIDEzMjI0NywgCi0gICAgMTMyMjU0LCAxMzIyNjQsIDEzMjI3MSwgMTMyMjc4LCAxMzIyODUsIDEzMjI5MiwgMTMyMjk5LCAxMzIzMDYsIDEzMjMxNSwgCi0gICAgMTMyMzI0LCAxMzIzMzMsIDEzMjM0MiwgMTMyMzUxLCAxMzIzNjAsIDEzMjM2OSwgMTMyMzc4LCAxMzIzODYsIDEzMjM5NCwgCi0gICAgMTMyNDAxLCAxMzI0MTEsIDEzMjQyMCwgMTMyNDI4LCAxMzI0MzUsIDEzMjQ0NSwgMTMyNDU0LCAxMzI0NTgsIDEzMjQ2MiwgCi0gICAgMTMyNDY2LCAxMzI0NzAsIDEzMjQ3NCwgMTMyNDc4LCAxMzI0ODIsIDEzMjQ4NiwgMTMyNDkwLCAxMzI0OTQsIDEzMjQ5NywgCi0gICAgMTMyNTAxLCAxMzI1MDQsIDEzMjUwNywgMTMyNTExLCAxMzI1MTUsIDEzMjUxOSwgMTMyNTIzLCAxMzI1MjcsIDEzMjUzMSwgCi0gICAgMTMyNTM1LCAxMzI1MzksIDEzMjU0MywgMTMyNTQ3LCAxMzI1NTEsIDEzMjU1NSwgMTMyNTU5LCAxMzI1NjMsIDEzMjU2NywgCi0gICAgMTMyNTcxLCAxMzI1NzUsIDEzMjU3OSwgMTMyNTgzLCAxMzI1ODcsIDEzMjU5MSwgMTMyNTk1LCAxMzI1OTksIDEzMjYwMywgCi0gICAgMTMyNjA3LCAxMzI2MTEsIDEzMjYxNSwgMTMyNjE5LCAxMzI2MjMsIDEzMjYyNywgMTMyNjMxLCAxMzI2MzUsIDEzMjYzOSwgCi0gICAgMTMyNjQzLCAxMzI2NDcsIDEzMjY1MSwgMTMyNjU1LCAxMzI2NTksIDEzMjY2MywgMTMyNjY3LCAxMzI2NzEsIDEzMjY3NSwgCi0gICAgMTMyNjc5LCAxMzI2ODMsIDEzMjY4NywgMTMyNjkxLCAxMzI2OTUsIDEzMjY5OSwgMTMyNzAzLCAxMzI3MDcsIDEzMjcxMSwgCi0gICAgMTMyNzE1LCAxMzI3MTksIDEzMjcyMywgMTMyNzI3LCAxMzI3MzEsIDEzMjczNSwgMTMyNzM5LCAxMzI3NDMsIDEzMjc0NywgCi0gICAgMTMyNzUxLCAxMzI3NTUsIDEzMjc1OSwgMTMyNzYzLCAxMzI3NjcsIDEzMjc3MSwgMTMyNzc1LCAxMzI3NzksIDEzMjc4MywgCi0gICAgMTMyNzg3LCAxMzI3OTEsIDEzMjc5NSwgMTMyNzk5LCAxMzI4MDMsIDEzMjgwNywgMTMyODExLCAxMzI4MTUsIDEzMjgxOSwgCi0gICAgMTMyODIzLCAxMzI4MjcsIDEzMjgzMSwgMTMyODM1LCAxMzI4MzksIDEzMjg0MywgMTMyODQ3LCAxMzI4NTAsIDEzMjg1NCwgCi0gICAgMTMyODU4LCAxMzI4NjIsIDEzMjg2NiwgMTMyODcwLCAxMzI4NzQsIDEzMjg3OCwgMTMyODgyLCAxMzI4ODYsIDEzMjg5MCwgCi0gICAgMTMyODk0LCAxMzI4OTgsIDEzMjkwMiwgMTMyOTA2LCAxMzI5MTAsIDEzMjkxNCwgMTMyOTE4LCAxMzI5MjIsIDEzMjkyNiwgCi0gICAgMTMyOTMwLCAxMzI5MzQsIDEzMjkzOCwgMTMyOTQyLCAxMzI5NDYsIDEzMjk1MCwgMTMyOTU0LCAxMzI5NTgsIDEzMjk2MiwgCi0gICAgMTMyOTY2LCAxMzI5NzAsIDEzMjk3NCwgMTMyOTc4LCAxMzI5ODIsIDEzMjk4NiwgMTMyOTkwLCAxMzI5OTQsIDEzMjk5OCwgCi0gICAgMTMzMDAyLCAxMzMwMDYsIDEzMzAxMCwgMTMzMDE0LCAxMzMwMTgsIDEzMzAyMiwgMTMzMDI2LCAxMzMwMzAsIDEzMzAzNCwgCi0gICAgMTMzMDM4LCAxMzMwNDIsIDEzMzA0NiwgMTMzMDUwLCAxMzMwNTQsIDEzMzA1OCwgMTMzMDYyLCAxMzMwNjYsIDEzMzA3MCwgCi0gICAgMTMzMDc0LCAxMzMwNzgsIDEzMzA4MiwgMTMzMDg2LCAxMzMwOTAsIDEzMzA5NCwgMTMzMDk4LCAxMzMxMDIsIDEzMzEwNiwgCi0gICAgMTMzMTEwLCAxMzMxMTQsIDEzMzExOCwgMTMzMTIyLCAxMzMxMjYsIDEzMzEzMCwgMTMzMTM0LCAxMzMxMzgsIDEzMzE0MiwgCi0gICAgMTMzMTQ2LCAxMzMxNTAsIDEzMzE1NCwgMTMzMTU4LCAxMzMxNjIsIDEzMzE2NiwgMTMzMTcwLCAxMzMxNzQsIDEzMzE3OCwgCi0gICAgMTMzMTgyLCAxMzMxODYsIDEzMzE5MCwgMTMzMTk0LCAxMzMxOTgsIDEzMzIwMiwgMTMzMjA2LCAxMzMyMTAsIDEzMzIxNCwgCi0gICAgMTMzMjE4LCAxMzMyMjIsIDEzMzIyNiwgMTMzMjMwLCAxMzMyMzQsIDEzMzIzOCwgMTMzMjQyLCAxMzMyNDYsIDEzMzI1MCwgCi0gICAgMTMzMjU0LCAxMzMyNTgsIDEzMzI2MiwgMTMzMjY2LCAxMzMyNzAsIDEzMzI3NCwgMTMzMjc4LCAxMzMyODIsIDEzMzI4NiwgCi0gICAgMTMzMjkwLCAxMzMyOTQsIDEzMzI5OCwgMTMzMzAyLCAxMzMzMDYsIDEzMzMxMCwgMTMzMzE0LCAxMzMzMTgsIDEzMzMyMiwgCi0gICAgMTMzMzI2LCAxMzMzMzAsIDEzMzMzNCwgMTMzMzM4LCAxMzMzNDIsIDEzMzM0NiwgMTMzMzUwLCAxMzMzNTQsIDEzMzM1OCwgCi0gICAgMTMzMzYyLCAxMzMzNjYsIDEzMzM3MCwgMTMzMzc0LCAxMzMzNzgsIDEzMzM4MiwgMTMzMzg2LCAxMzMzOTAsIDEzMzM5NCwgCi0gICAgMTMzMzk4LCAxMzM0MDIsIDEzMzQwNiwgMTMzNDEwLCAxMzM0MTQsIDEzMzQxOCwgMTMzNDIyLCAxMzM0MjYsIDEzMzQzMCwgCi0gICAgMTMzNDM0LCAxMzM0MzgsIDEzMzQ0MiwgMTMzNDQ2LCAxMzM0NTAsIDEzMzQ1NCwgMTMzNDU4LCAxMzM0NjIsIDEzMzQ2NiwgCi0gICAgMTMzNDcwLCAxMzM0NzQsIDEzMzQ3OCwgMTMzNDgyLCAxMzM0ODYsIDEzMzQ5MCwgMTMzNDk0LCAxMzM0OTgsIDEzMzUwMiwgCi0gICAgMTMzNTA2LCAxMzM1MTAsIDEzMzUxNCwgMTMzNTE4LCAxMzM1MjIsIDEzMzUyNiwgMTMzNTMwLCAxMzM1MzQsIDEzMzUzOCwgCi0gICAgMTMzNTQyLCAxMzM1NDYsIDEzMzU1MCwgMTMzNTU0LCAxMzM1NTgsIDEzMzU2MiwgMTMzNTY2LCAxMzM1NzAsIDEzMzU3NCwgCi0gICAgMTMzNTc4LCAxMzM1ODIsIDEzMzU4NiwgMTMzNTkwLCAxMzM1OTQsIDEzMzU5OCwgMTMzNjAyLCAxMzM2MDYsIDEzMzYxMCwgCi0gICAgMTMzNjE0LCAxMzM2MTksIDEzMzYyNCwgMTMzNjI5LCAxMzM2MzMsIDEzMzYzOSwgMTMzNjQ2LCAxMzM2NTMsIDEzMzY2MCwgCi0gICAgMTMzNjY3LCAxMzM2NzQsIDEzMzY4MSwgMTMzNjg4LCAxMzM2OTUsIDEzMzcwMiwgMTMzNzA5LCAxMzM3MTYsIDEzMzcyMywgCi0gICAgMTMzNzMwLCAxMzM3MzYsIDEzMzc0MywgMTMzNzUwLCAxMzM3NTYsIDEzMzc2MywgMTMzNzcwLCAxMzM3NzcsIDEzMzc4NCwgCi0gICAgMTMzNzkxLCAxMzM3OTgsIDEzMzgwNSwgMTMzODEyLCAxMzM4MTksIDEzMzgyNiwgMTMzODMzLCAxMzM4NDAsIDEzMzg0NywgCi0gICAgMTMzODUzLCAxMzM4NTksIDEzMzg2NiwgMTMzODczLCAxMzM4ODIsIDEzMzg5MSwgMTMzOTAwLCAxMzM5MDksIDEzMzkxNCwgCi0gICAgMTMzOTE5LCAxMzM5MjUsIDEzMzkzMSwgMTMzOTM3LCAxMzM5NDMsIDEzMzk0OSwgMTMzOTU1LCAxMzM5NjEsIDEzMzk2NywgCi0gICAgMTMzOTczLCAxMzM5NzksIDEzMzk4NSwgMTMzOTkxLCAxMzM5OTYsIDEzNDAwMiwgMTM0MDEyLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAxMzE4MDksIDEzMTgxOSwgMTMxODI5LCAxMzE4MzgsIDEzMTg0NywgMTMxODYwLCAxMzE4NzMsIDEzMTg4NSwgMTMxODk3LCAKKyAgICAxMzE5MDcsIDEzMTkxNywgMTMxOTI3LCAxMzE5MzcsIDEzMTk0OCwgMTMxOTU5LCAxMzE5NjksIDEzMTk3OCwgMTMxOTg3LCAKKyAgICAxMzE5OTYsIDEzMjAwOSwgMTMyMDIyLCAxMzIwMzQsIDEzMjA0NiwgMTMyMDU2LCAxMzIwNjYsIDEzMjA3NiwgMTMyMDg2LCAKKyAgICAxMzIwOTUsIDEzMjEwNCwgMTMyMTEzLCAxMzIxMjIsIDEzMjEzMSwgMTMyMTQwLCAxMzIxNDksIDEzMjE1OCwgMTMyMTY3LCAKKyAgICAxMzIxNzYsIDEzMjE4NSwgMTMyMTk0LCAxMzIyMDUsIDEzMjIxNSwgMTMyMjI1LCAxMzIyMzgsIDEzMjI0OCwgMTMyMjYxLCAKKyAgICAxMzIyNjgsIDEzMjI3OCwgMTMyMjg1LCAxMzIyOTIsIDEzMjI5OSwgMTMyMzA2LCAxMzIzMTMsIDEzMjMyMCwgMTMyMzI5LCAKKyAgICAxMzIzMzgsIDEzMjM0NywgMTMyMzU2LCAxMzIzNjUsIDEzMjM3NCwgMTMyMzgzLCAxMzIzOTIsIDEzMjQwMCwgMTMyNDA4LCAKKyAgICAxMzI0MTUsIDEzMjQyNSwgMTMyNDM0LCAxMzI0NDIsIDEzMjQ0OSwgMTMyNDU5LCAxMzI0NjgsIDEzMjQ3MiwgMTMyNDc2LCAKKyAgICAxMzI0ODAsIDEzMjQ4NCwgMTMyNDg4LCAxMzI0OTIsIDEzMjQ5NiwgMTMyNTAwLCAxMzI1MDQsIDEzMjUwOCwgMTMyNTExLCAKKyAgICAxMzI1MTUsIDEzMjUxOCwgMTMyNTIxLCAxMzI1MjUsIDEzMjUyOSwgMTMyNTMzLCAxMzI1MzcsIDEzMjU0MSwgMTMyNTQ1LCAKKyAgICAxMzI1NDksIDEzMjU1MywgMTMyNTU3LCAxMzI1NjEsIDEzMjU2NSwgMTMyNTY5LCAxMzI1NzMsIDEzMjU3NywgMTMyNTgxLCAKKyAgICAxMzI1ODUsIDEzMjU4OSwgMTMyNTkzLCAxMzI1OTcsIDEzMjYwMSwgMTMyNjA1LCAxMzI2MDksIDEzMjYxMywgMTMyNjE3LCAKKyAgICAxMzI2MjEsIDEzMjYyNSwgMTMyNjI5LCAxMzI2MzMsIDEzMjYzNywgMTMyNjQxLCAxMzI2NDUsIDEzMjY0OSwgMTMyNjUzLCAKKyAgICAxMzI2NTcsIDEzMjY2MSwgMTMyNjY1LCAxMzI2NjksIDEzMjY3MywgMTMyNjc3LCAxMzI2ODEsIDEzMjY4NSwgMTMyNjg5LCAKKyAgICAxMzI2OTMsIDEzMjY5NywgMTMyNzAxLCAxMzI3MDUsIDEzMjcwOSwgMTMyNzEzLCAxMzI3MTcsIDEzMjcyMSwgMTMyNzI1LCAKKyAgICAxMzI3MjksIDEzMjczMywgMTMyNzM3LCAxMzI3NDEsIDEzMjc0NSwgMTMyNzQ5LCAxMzI3NTMsIDEzMjc1NywgMTMyNzYxLCAKKyAgICAxMzI3NjUsIDEzMjc2OSwgMTMyNzczLCAxMzI3NzcsIDEzMjc4MSwgMTMyNzg1LCAxMzI3ODksIDEzMjc5MywgMTMyNzk3LCAKKyAgICAxMzI4MDEsIDEzMjgwNSwgMTMyODA5LCAxMzI4MTMsIDEzMjgxNywgMTMyODIxLCAxMzI4MjUsIDEzMjgyOSwgMTMyODMzLCAKKyAgICAxMzI4MzcsIDEzMjg0MSwgMTMyODQ1LCAxMzI4NDksIDEzMjg1MywgMTMyODU3LCAxMzI4NjEsIDEzMjg2NCwgMTMyODY4LCAKKyAgICAxMzI4NzIsIDEzMjg3NiwgMTMyODgwLCAxMzI4ODQsIDEzMjg4OCwgMTMyODkyLCAxMzI4OTYsIDEzMjkwMCwgMTMyOTA0LCAKKyAgICAxMzI5MDgsIDEzMjkxMiwgMTMyOTE2LCAxMzI5MjAsIDEzMjkyNCwgMTMyOTI4LCAxMzI5MzIsIDEzMjkzNiwgMTMyOTQwLCAKKyAgICAxMzI5NDQsIDEzMjk0OCwgMTMyOTUyLCAxMzI5NTYsIDEzMjk2MCwgMTMyOTY0LCAxMzI5NjgsIDEzMjk3MiwgMTMyOTc2LCAKKyAgICAxMzI5ODAsIDEzMjk4NCwgMTMyOTg4LCAxMzI5OTIsIDEzMjk5NiwgMTMzMDAwLCAxMzMwMDQsIDEzMzAwOCwgMTMzMDEyLCAKKyAgICAxMzMwMTYsIDEzMzAyMCwgMTMzMDI0LCAxMzMwMjgsIDEzMzAzMiwgMTMzMDM2LCAxMzMwNDAsIDEzMzA0NCwgMTMzMDQ4LCAKKyAgICAxMzMwNTIsIDEzMzA1NiwgMTMzMDYwLCAxMzMwNjQsIDEzMzA2OCwgMTMzMDcyLCAxMzMwNzYsIDEzMzA4MCwgMTMzMDg0LCAKKyAgICAxMzMwODgsIDEzMzA5MiwgMTMzMDk2LCAxMzMxMDAsIDEzMzEwNCwgMTMzMTA4LCAxMzMxMTIsIDEzMzExNiwgMTMzMTIwLCAKKyAgICAxMzMxMjQsIDEzMzEyOCwgMTMzMTMyLCAxMzMxMzYsIDEzMzE0MCwgMTMzMTQ0LCAxMzMxNDgsIDEzMzE1MiwgMTMzMTU2LCAKKyAgICAxMzMxNjAsIDEzMzE2NCwgMTMzMTY4LCAxMzMxNzIsIDEzMzE3NiwgMTMzMTgwLCAxMzMxODQsIDEzMzE4OCwgMTMzMTkyLCAKKyAgICAxMzMxOTYsIDEzMzIwMCwgMTMzMjA0LCAxMzMyMDgsIDEzMzIxMiwgMTMzMjE2LCAxMzMyMjAsIDEzMzIyNCwgMTMzMjI4LCAKKyAgICAxMzMyMzIsIDEzMzIzNiwgMTMzMjQwLCAxMzMyNDQsIDEzMzI0OCwgMTMzMjUyLCAxMzMyNTYsIDEzMzI2MCwgMTMzMjY0LCAKKyAgICAxMzMyNjgsIDEzMzI3MiwgMTMzMjc2LCAxMzMyODAsIDEzMzI4NCwgMTMzMjg4LCAxMzMyOTIsIDEzMzI5NiwgMTMzMzAwLCAKKyAgICAxMzMzMDQsIDEzMzMwOCwgMTMzMzEyLCAxMzMzMTYsIDEzMzMyMCwgMTMzMzI0LCAxMzMzMjgsIDEzMzMzMiwgMTMzMzM2LCAKKyAgICAxMzMzNDAsIDEzMzM0NCwgMTMzMzQ4LCAxMzMzNTIsIDEzMzM1NiwgMTMzMzYwLCAxMzMzNjQsIDEzMzM2OCwgMTMzMzcyLCAKKyAgICAxMzMzNzYsIDEzMzM4MCwgMTMzMzg0LCAxMzMzODgsIDEzMzM5MiwgMTMzMzk2LCAxMzM0MDAsIDEzMzQwNCwgMTMzNDA4LCAKKyAgICAxMzM0MTIsIDEzMzQxNiwgMTMzNDIwLCAxMzM0MjQsIDEzMzQyOCwgMTMzNDMyLCAxMzM0MzYsIDEzMzQ0MCwgMTMzNDQ0LCAKKyAgICAxMzM0NDgsIDEzMzQ1MiwgMTMzNDU2LCAxMzM0NjAsIDEzMzQ2NCwgMTMzNDY4LCAxMzM0NzIsIDEzMzQ3NiwgMTMzNDgwLCAKKyAgICAxMzM0ODQsIDEzMzQ4OCwgMTMzNDkyLCAxMzM0OTYsIDEzMzUwMCwgMTMzNTA0LCAxMzM1MDgsIDEzMzUxMiwgMTMzNTE2LCAKKyAgICAxMzM1MjAsIDEzMzUyNCwgMTMzNTI4LCAxMzM1MzIsIDEzMzUzNiwgMTMzNTQwLCAxMzM1NDQsIDEzMzU0OCwgMTMzNTUyLCAKKyAgICAxMzM1NTYsIDEzMzU2MCwgMTMzNTY0LCAxMzM1NjgsIDEzMzU3MiwgMTMzNTc2LCAxMzM1ODAsIDEzMzU4NCwgMTMzNTg4LCAKKyAgICAxMzM1OTIsIDEzMzU5NiwgMTMzNjAwLCAxMzM2MDQsIDEzMzYwOCwgMTMzNjEyLCAxMzM2MTYsIDEzMzYyMCwgMTMzNjI0LCAKKyAgICAxMzM2MjgsIDEzMzYzMywgMTMzNjM4LCAxMzM2NDMsIDEzMzY0NywgMTMzNjUzLCAxMzM2NjAsIDEzMzY2NywgMTMzNjc0LCAKKyAgICAxMzM2ODEsIDEzMzY4OCwgMTMzNjk1LCAxMzM3MDIsIDEzMzcwOSwgMTMzNzE2LCAxMzM3MjMsIDEzMzczMCwgMTMzNzM3LCAKKyAgICAxMzM3NDQsIDEzMzc1MCwgMTMzNzU3LCAxMzM3NjQsIDEzMzc3MCwgMTMzNzc3LCAxMzM3ODQsIDEzMzc5MSwgMTMzNzk4LCAKKyAgICAxMzM4MDUsIDEzMzgxMiwgMTMzODE5LCAxMzM4MjYsIDEzMzgzMywgMTMzODQwLCAxMzM4NDcsIDEzMzg1NCwgMTMzODYxLCAKKyAgICAxMzM4NjcsIDEzMzg3MywgMTMzODgwLCAxMzM4ODcsIDEzMzg5NiwgMTMzOTA1LCAxMzM5MTQsIDEzMzkyMywgMTMzOTI4LCAKKyAgICAxMzM5MzMsIDEzMzkzOSwgMTMzOTQ1LCAxMzM5NTEsIDEzMzk1NywgMTMzOTYzLCAxMzM5NjksIDEzMzk3NSwgMTMzOTgxLCAKKyAgICAxMzM5ODcsIDEzMzk5MywgMTMzOTk5LCAxMzQwMDUsIDEzNDAxMCwgMTM0MDE2LCAxMzQwMjYsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIApAQCAtMTcxMTcsOSArMTcxMTksOSBAQAogICAgIDY0MDY1LCA2NDA3MiwgNjQwNzEsIDYzLCA3MjMzLCA5MjIxMiwgMCwgNDE5MDQsIDY2MzksIDY0MDY0LCA5ODM3NjYsIAogICAgIDEyODM0NCwgMCwgMTE3NiwgMTE4OTU5LCAxMjc5MzAsIDgxNjIsIDEyODY2NywgOTgzODIyLCAwLCAxMjA1MTksIDY2Mzc2LCAKICAgICA2NjI0MiwgMTE0MTUsIDQzMzMsIDk4NTUsIDY0MTEyLCA2NDY0MiwgMCwgNTM4OCwgMCwgMCwgMCwgNzcxNCwgNjYyMjIsIAotICAgIDY5OTAyLCA3NzY4LCAwLCA0MTk5LCA2NDcwOCwgOTgzNDEzLCAwLCAwLCA4NzA4LCA5NTYwLCA2NDA3NywgNjQwNzYsIAorICAgIDY5OTAyLCA3NzY4LCAwLCA0MTk5LCA2NDcwOCwgOTgzNDE0LCAwLCAwLCA4NzA4LCA5NTYwLCA2NDA3NywgNjQwNzYsIAogICAgIDg5OTYsIDQ5OTIsIDQ0NzEsIDQyNjIyLCA2NDA3OSwgNjQwNzgsIDkyMTc5LCAwLCAxMjY1NzAsIDAsIDY0NjE1LCA0MTkxNSwgCi0gICAgMCwgMTIwNzUsIDcwMDYyLCAwLCA1MTc0LCA5ODMyMTUsIDAsIDEyNzU1NywgMzEyMywgMCwgMTI2ODUsIDEyNzkwNCwgCisgICAgMCwgMTIwNzUsIDcwMDYyLCAwLCA1MTc0LCA5ODMyMTYsIDAsIDEyNzU1NywgMzEyMywgMCwgMTI2ODUsIDEyNzkwNCwgCiAgICAgODQwOCwgNjQ3MDQsIDAsIDAsIDkyMjMsIDAsIDQxNjE2LCA2Nzk5OSwgNzM3OTcsIDAsIDExMTYsIDEyODIwNCwgNDMwNDksIAogICAgIDcxMzYsIDQzMDUwLCA4NTQ4LCAxMjA0ODUsIDAsIDExOTA2MSwgOTE3OTk5LCAwLCAxMzExNSwgNDM2NzUsIDY0MDkxLCAKICAgICA5MzIyLCAwLCAxMjA1OTUsIDY0MDk1LCA2NDA5NCwgODExMSwgNjYyNDcsIDQyMzMyLCA2NDA4OSwgNjQwODgsIDYxOTksIDAsIApAQCAtMTcxMjcsMTAgKzE3MTI5LDEwIEBACiAgICAgOTkyNywgNDEzMzUsIDQxMTgsIDE3OTcsIDAsIDQxMzM0LCAwLCA0NiwgNDM0NDgsIDEyNzg4MSwgMjk4LCAwLCAxMjgxMTQsIAogICAgIDAsIDQyNjI3LCAwLCAzMiwgNjE4NywgMTE5MDUyLCAxMTQ5NSwgMTE0NTksIDM2NjUsIDk4MzYwMCwgNDI4NzEsIDAsIAogICAgIDE5OTIzLCA3NDMzNSwgMCwgMTI3MTkyLCA2NjIzOSwgNDIyNjQsIDY0NDAzLCA0NDEyLCA3MjQwLCA5MjQ5NSwgMCwgCi0gICAgOTgzNDU4LCA2NTc1OCwgMTI3NTAsIDQxODEsIDg1NDQsIDAsIDEyMDE5OSwgOTE3ODk3LCAxMjAxOTgsIDY5ODA5LCA2MTgxLCAKKyAgICA5ODM0NTksIDY1NzU4LCAxMjc1MCwgNDE4MSwgODU0NCwgMCwgMTIwMTk5LCA5MTc4OTcsIDEyMDE5OCwgNjk4MDksIDYxODEsIAogICAgIDY1MDE0LCAwLCAwLCA5ODMxOTYsIDM2MzksIDExOTU4OCwgMCwgMCwgMTE4OTA0LCAxMDA3MywgMTIwMjA2LCAxMjg4NjIsIAogICAgIDEyNzE4NiwgNjg0MDksIDQyODQ0LCA3NDk4LCAxMDk4LCA5MjU2NSwgMTIwMjA1LCAwLCA5ODMxMTgsIDEwMjA3LCA4Nzg5LCAKLSAgICA5ODMyMjMsIDAsIDAsIDk4MzQ2NCwgOTIzNCwgMCwgNjE4MiwgOTgzNDY2LCA2NTA1OCwgMCwgOTgzNDcwLCA5ODM0NjcsIDAsIAorICAgIDk4MzIyNCwgMCwgMCwgOTgzNDY1LCA5MjM0LCAwLCA2MTgyLCA5ODM0NjcsIDY1MDU4LCAwLCA5ODM0NzEsIDk4MzQ2OCwgMCwgCiAgICAgNTQ3MSwgOTQ2MSwgNTU3MywgMTE4OTM2LCA1NDczLCA0NCwgMCwgNjYyNDQsIDk0MDcyLCAwLCA2NjIzOCwgMTI4NDQsIDAsIAogICAgIDE2MjIsIDc3NjcsIDE5MDAsIDQxMzM5LCAxMTQ1OCwgMCwgMCwgNjU4MSwgNTU3NiwgMCwgNjQ0MDUsIDQxMzM3LCAwLCAKICAgICA0MTYzMSwgODk0NywgNjgzOTAsIDEyNzg0NCwgNDE2OTQsIDAsIDAsIDc5MDgsIDAsIDEwNDA4LCA2NTc5LCAwLCA2NDYxOCwgCkBAIC0xNzE3Nyw3ICsxNzE3OSw3IEBACiAgICAgMTIwODQsIDEyNzMyNCwgMTI3MzIxLCA5MjI3OSwgMTI3MzE5LCAxMjczMjAsIDEyNzMxNywgMTI3MzE4LCAxMjczMTUsIAogICAgIDEyMjgzLCAxNjE2LCAzNzk1LCAwLCA4Nzk1LCA2NjI0NSwgMCwgMCwgMCwgMTEzOCwgNzM5MDUsIDEyNjc3LCAwLCAwLCAKICAgICAzMjM5LCAxMjczMTEsIDAsIDAsIDg0MzEsIDAsIDQyMTY0LCAwLCAxMTc3OCwgMTI2MjAsIDY4MjYsIDczNzczLCAxMTkwNzMsIAotICAgIDUwNDAsIDAsIDAsIDk4MzQzNSwgNzg0MjAsIDAsIDUwMzksIDAsIDc4NDE4LCAwLCA1MDM4LCAwLCAwLCAxMzE4NCwgCisgICAgNTA0MCwgMCwgMCwgOTgzNDM2LCA3ODQyMCwgMCwgNTAzOSwgMCwgNzg0MTgsIDAsIDUwMzgsIDAsIDAsIDEzMTg0LCAKICAgICA3NDI5MywgMCwgNjQ2NDgsIDAsIDkzNTksIDc4NDE2LCAwLCAxMjg3NzAsIDY1MTU3LCA2NjYyLCAwLCAwLCAzODYzLCAKICAgICA3MzkwOSwgNDgzNSwgNTUyNjYsIDQzNDMyLCAxMjc4MjIsIDQzMDksIDcxMjcsIDE5NDU2OSwgMCwgMTk0NTY4LCAxMzAxLCAKICAgICAwLCA0MjU4OSwgNTY5LCAwLCA3MzgxMywgNzExLCA0Mzg5LCA3MTMzLCAwLCA3Mzg4MCwgMTE2MTAsIDExMzY4LCAwLCAKQEAgLTE3MjAyLDE2ICsxNzIwNCwxNiBAQAogICAgIDYxODMsIDAsIDAsIDAsIDEyMDQ0OCwgNzYyMywgMTE4OTI1LCAxMTg4ODksIDkyMzUsIDEyNzYwLCA3NDE3NiwgNjk2NjIsIAogICAgIDY2NDQ1LCA0MzU0MCwgMTAwNjIsIDM3NDMsIDExNTE0LCAxMTA3OCwgMCwgMTIxMzYsIDAsIDEyNjU5NywgMTIwNDM1LCAwLCAKICAgICA3NzI2LCAwLCAxOTkyMiwgMjY3LCAzMzkzLCA0MjE5OCwgMTM3MSwgMTk0ODQ5LCA2OTIzMywgMjQ1OCwgMCwgNjIwMSwgMCwgCi0gICAgNDEwNzQsIDQyNjYsIDEwNjUyLCA0MTYxMiwgNDEwNzcsIDM0MDIsIDkwNTAsIDMzOTgsIDAsIDk4MzM0MCwgMCwgMzM5MSwgCisgICAgNDEwNzQsIDQyNjYsIDEwNjUyLCA0MTYxMiwgNDEwNzcsIDM0MDIsIDkwNTAsIDMzOTgsIDAsIDk4MzM0MSwgMCwgMzM5MSwgCiAgICAgNDEwNzUsIDI0NzYsIDAsIDEyODAxNywgMCwgMTA2MjUsIDAsIDEyNzY3LCAxMzAxNywgNzg3NDMsIDY0MjYxLCA2NDkzNCwgCi0gICAgMTI3NTM3LCAxMzAxNCwgMTMwMTMsIDAsIDY2NzMsIDAsIDAsIDAsIDEyNDM4LCAwLCA5ODMzMzQsIDAsIDk4Mzg3MSwgCisgICAgMTI3NTM3LCAxMzAxNCwgMTMwMTMsIDAsIDY2NzMsIDAsIDAsIDAsIDEyNDM4LCAwLCA5ODMzMzUsIDAsIDk4Mzg3MSwgCiAgICAgMTI2NjM4LCA5MDUzLCAxMzAxNSwgNzQ1MjMsIDAsIDcwNCwgNjYyMTUsIDYxOTUsIDk4MzgxOSwgNjY2MCwgNzg3NTgsIAotICAgIDkxNzc2MCwgOTE3NzkzLCA0MjIxMiwgMTI2MjksIDExNDM1LCAwLCA1NTI1NiwgNjU1MzgsIDAsIDEyNzk0MCwgOTgzMzMzLCAKKyAgICA5MTc3NjAsIDkxNzc5MywgNDIyMTIsIDEyNjI5LCAxMTQzNSwgMCwgNTUyNTYsIDY1NTM4LCAwLCAxMjc5NDAsIDk4MzMzNCwgCiAgICAgNzQ1NDcsIDEyNjU4NSwgNjU0NDgsIDc4MTAwLCAxMjk0OCwgMTE5MDAxLCAxOTUwMDIsIDExOTIzOCwgMTk1MDA0LCAKICAgICA3ODA5OSwgMTI3MDg1LCAwLCAxMjgzMjAsIDQyODcsIDgyNzYsIDQ5MDIsIDExMzEsIDAsIDc4NDU4LCA2NjcyOCwgMTgxNiwgCiAgICAgMCwgNDI1MzMsIDE2OCwgNDI4NDUsIDQ4OTgsIDY0Mjk4LCA5ODMxNDEsIDAsIDQ5MDEsIDE4MjEsIDAsIDU3OCwgMzY1MywgCiAgICAgMCwgNzkxLCA5MTYyLCA2OTc3LCAwLCA3ODg4OSwgNzQ1NjEsIDAsIDczNzMxLCA4MzU0LCA0MzU5MCwgMTE5MzAzLCAKLSAgICA5ODM0NDEsIDc1NTcsIDExOTMzOSwgMTE5MzAxLCA4MjM0LCA3MjQxLCAwLCAxMjA2NzEsIDExOTE2NywgMTk0OTk2LCAKKyAgICA5ODM0NDIsIDc1NTcsIDExOTMzOSwgMTE5MzAxLCA4MjM0LCA3MjQxLCAwLCAxMjA2NzEsIDExOTE2NywgMTk0OTk2LCAKICAgICAxMjgxMSwgNjU5MjUsIDM5NDYsIDc4MDc4LCAxMDk5OCwgNzgwODAsIDY3MywgMTk0ODY3LCA2NDM5NywgMTI4Mjc2LCAKICAgICA3NDU5OSwgNzg0NDksIDg4OTAsIDE5NDk3NywgMTk0OTc2LCAyNDQ4LCA3ODA4NSwgMTAyNjcsIDg0MjQsIDI0NTIsIAogICAgIDc4MDgzLCAxMjg4MjQsIDg3MjksIDc4NDU2LCAwLCA3ODQ1LCA5MTc5MTcsIDcxMzAyLCA0NDA4LCA0MTIyLCA2NzcyLCAKQEAgLTE3MjY3LDEyICsxNzI2OSwxMiBAQAogICAgIDE5NDU4NywgMCwgMTIxMSwgMCwgMCwgMCwgMTE4ODMyLCAxMjMxOCwgMCwgMCwgNjgwMDUsIDEwNjIyLCA5ODM3NzAsIDAsIAogICAgIDc4NjU0LCA2NTY2LCA3ODY1OSwgMCwgNzM3ODAsIDExOTE5NiwgNjQ4NjQsIDAsIDc4NjYwLCAwLCA4Mjg0LCAxMzA4MSwgMCwgCiAgICAgMzU4OSwgNDIwNTEsIDQwMzUsIDY0OTIsIDkyMjM2LCA0MjY1LCA2NjQyLCAzOTc3LCA3NDE4NiwgNDE3NzgsIDgzNiwgCi0gICAgMTE5MjE2LCAyNDg4LCAwLCA0NTgyLCAwLCAwLCA0MTc3NywgMTI5MjYsIDk4MzM2OSwgNzUyOCwgMTA1NTAsIDAsIDkyNzA2LCAKKyAgICAxMTkyMTYsIDI0ODgsIDAsIDQ1ODIsIDAsIDAsIDQxNzc3LCAxMjkyNiwgOTgzMzcwLCA3NTI4LCAxMDU1MCwgMCwgOTI3MDYsIAogICAgIDAsIDEwOTYxLCAwLCAxMzc0LCA2NDg3OCwgMTE5MDE0LCAwLCA0MjM4OSwgNDEzNzQsIDIyODYsIDAsIDc4NDkyLCA0MTM3NywgCiAgICAgMTI3OTA5LCAwLCA0MDAsIDEyNTk3LCAxMjA1ODYsIDAsIDAsIDY2NjEsIDk4MzE0NSwgNjQ4MjcsIDAsIDczODE3LCAzOTAsIAotICAgIDAsIDcxMzAxLCA5ODM4NTMsIDM0NzMsIDc3MTgsIDAsIDAsIDAsIDU1Mjg1LCAwLCAwLCAwLCAxMTk2OSwgOTgzMzgyLCAKLSAgICAxMjc4NDEsIDYzNjUsIDE4ODcsIDY3NjMsIDk4MzM2MiwgODA4MCwgNzAwNiwgMCwgOTgzMzYzLCA2NzU3LCA2NDM1MSwgCi0gICAgMTU0NCwgMCwgNjc2NiwgNjQ2NzcsIDEyMDcxNiwgOTgzMzY0LCA2MTQ2LCAwLCA3NzEsIDk4MzM2NSwgMCwgMTI4MTIsIAorICAgIDAsIDcxMzAxLCA5ODM4NTMsIDM0NzMsIDc3MTgsIDAsIDAsIDAsIDU1Mjg1LCAwLCAwLCAwLCAxMTk2OSwgOTgzMzgzLCAKKyAgICAxMjc4NDEsIDYzNjUsIDE4ODcsIDY3NjMsIDk4MzM2MywgODA4MCwgNzAwNiwgMCwgOTgzMzY0LCA2NzU3LCA2NDM1MSwgCisgICAgMTU0NCwgMCwgNjc2NiwgNjQ2NzcsIDEyMDcxNiwgOTgzMzY1LCA2MTQ2LCAwLCA3NzEsIDk4MzM2NiwgMCwgMTI4MTIsIAogICAgIDEzMTY4LCA0MjI3MiwgMTIyMDAsIDkxNzkyNywgNzkwNCwgMCwgOTUzLCAxMjkxNywgMTE5NTYwLCAxMjMwMCwgMCwgCiAgICAgMTE0OTEsIDk3MjQsIDEwMzQxLCA5ODM3NjQsIDk1MjQsIDc0OTAsIDExMzg5LCA3NDg5LCAzMzc5LCAwLCA3NDg3LCAwLCAKICAgICA0NzEsIDc0ODQsIDc0ODIsIDY3NTMsIDc0ODAsIDU3NjQsIDc0NzgsIDc0NzcsIDY1MDEsIDc0NzUsIDY5MTgsIDc0NzMsIApAQCAtMTcyODYsMTEgKzE3Mjg4LDExIEBACiAgICAgMTE4OTI4LCAxMTE4LCA3MTMzNCwgMCwgMCwgMTA4MSwgNzQzNiwgNjg0MjAsIDcyNTIsIDAsIDU5OTYsIDY5OTIxLCA0OTAzLCAKICAgICAwLCA0MTM4NiwgNTE2MiwgMTE5MTg5LCAxMzMwLCAwLCA3MTM5LCAwLCAxMjA0NywgNDEzODQsIDAsIDAsIDE4NDgsIDQzMzQsIAogICAgIDYzMjQsIDQxOTc1LCA2NDc3NywgMTA2NzQsIDEyMzA4LCAxMjE4NiwgMCwgMCwgOTgzNzMyLCAxMjcxNSwgNjgwMDIsIAotICAgIDk4MzQ3MSwgMTI2NjMwLCAyMDE4LCA2NjY3MiwgNDE5NzksIDY2Njg1LCAxMTkxNTcsIDY4MDAwLCA5MjQ2NCwgMCwgCisgICAgOTgzNDcyLCAxMjY2MzAsIDIwMTgsIDY2NjcyLCA0MTk3OSwgNjY2ODUsIDExOTE1NywgNjgwMDAsIDkyNDY0LCAwLCAKICAgICAxMjY5ODQsIDY4MDAxLCA5MzM0LCA5MjcwNSwgOTIzMTUsIDcwMTAxLCA3OTc1LCAwLCA3Nzk1NywgMCwgNjY2MjEsIDQ4ODQsIAogICAgIDY2NTk3LCA2OTczMiwgMCwgMCwgNjMxMywgNjU1MTMsIDY5ODU3LCAwLCAwLCAwLCAyMzQ1LCA0MzY5NywgNDYzLCAwLCAwLCAKLSAgICAxMTk2MDcsIDMxMTcsIDU0NjAsIDAsIDAsIDk4MzM3OSwgMCwgNDIyNzksIDE5NDU3NywgMCwgNzg0MTUsIDAsIDE5NTAwOCwgCi0gICAgOTgzMzc2LCAxMzI0OCwgMCwgMCwgMCwgMCwgMCwgMCwgNTY2MywgMCwgMCwgMCwgMCwgMjQ4MiwgMTQ3MSwgMCwgMCwgCisgICAgMTE5NjA3LCAzMTE3LCA1NDYwLCAwLCAwLCA5ODMzODAsIDAsIDQyMjc5LCAxOTQ1NzcsIDAsIDc4NDE1LCAwLCAxOTUwMDgsIAorICAgIDk4MzM3NywgMTMyNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDU2NjMsIDAsIDAsIDAsIDAsIDI0ODIsIDE0NzEsIDAsIDAsIAogICAgIDQyMjQ3LCAxMjM3OCwgNzM5MjUsIDY5NjY0LCAwLCAxMjM3NCwgMCwgMCwgMCwgOTgzNjg1LCAyNDYwLCAwLCAxMTk0NCwgCiAgICAgMTIzNzYsIDEyNzg2OCwgNjQ2NzksIDAsIDEyMzgwLCAxMDU1NywgNjQ0NzMsIDU4NzAsIDAsIDIwMjQsIDEyNzE4MCwgMCwgCiAgICAgMCwgNTM5LCAwLCAxMjc3NjUsIDk0MDUyLCAzODUzLCA2NTE4MCwgMTI3OTIzLCAxMjA3OTYsIDEyMDI0NSwgOTIzMjQsIDAsIApAQCAtMTcyOTgsMjAgKzE3MzAwLDIwIEBACiAgICAgNjk2MzMsIDEyMDA4OSwgMTI0NzAsIDAsIDc0MTg5LCAyNzQyLCAxMjQ3NiwgMTE3OTgsIDEwOTQ2LCAxMjczMTAsIDUwMDAsIAogICAgIDAsIDk4MzU3OSwgMCwgNjk2NzIsIDgyMTMsIDc0MDE3LCA3NzcxLCA2MTYxLCA2ODAxOCwgNjcwOSwgMCwgNzg4ODUsIAogICAgIDk4MzY5OSwgMTI3OTcxLCAxMjA1ODIsIDc4NTQ3LCAwLCAxMDMwMSwgMTAzMzMsIDEwMzk3LCAwLCAwLCA3Mzc5MSwgMCwgMCwgCi0gICAgMCwgMCwgMTE5MTIzLCA0MDE0LCAxMjg0MiwgNzM5NTIsIDEyMDE1LCAxMjcyOTAsIDgyNzUsIDM4OTMsIDk4MzI1NiwgMCwgCisgICAgMCwgMCwgMTE5MTIzLCA0MDE0LCAxMjg0MiwgNzM5NTIsIDEyMDE1LCAxMjcyOTAsIDgyNzUsIDM4OTMsIDk4MzI1NywgMCwgCiAgICAgMTIyMTAsIDcyMjEsIDQyMTQ3LCAwLCA3NDU1MCwgNzQ0NjUsIDY0NzQ3LCAxMTg4NDEsIDAsIDEyNTE2LCA0NDQ0LCAwLCAKICAgICA5MjI3MSwgNzQ1MzcsIDEwODkyLCA4MjMxLCAwLCA2NDczLCA0MTk2OCwgNzgzODgsIDQxOTczLCAzNTkxLCA0MTk2OSwgMCwgCiAgICAgMjQ1MywgMTI4NTQ5LCA5MjY2NiwgNjQ3MDUsIDAsIDAsIDEwMzQ5LCAxMDQxMywgNDM1OTEsIDQxOTYyLCAzMjAyLCAKICAgICA3NDM1MywgMCwgODMxNiwgMCwgMCwgOTQwNjAsIDY4NywgMCwgMCwgMCwgMTg0MCwgMCwgNjg2NzEsIDExOTgwOSwgNDg4MywgCiAgICAgMjg1LCA0NzIzLCA3MDA5OSwgOTI2OTIsIDQ0NTksIDc0NTc3LCA0MjkyMSwgNDE3MjAsIDExMDg5LCAyNDAsIDE5OTA2LCAwLCAKLSAgICA0MjMyMywgMCwgOTc0MywgMTIwMjMyLCAxMzEzNCwgMTI2NTM1LCAwLCAwLCAwLCAwLCA0MjYzNCwgOTgzMzM1LCA0MzQzNywgCisgICAgNDIzMjMsIDAsIDk3NDMsIDEyMDIzMiwgMTMxMzQsIDEyNjUzNSwgMCwgMCwgMCwgMCwgNDI2MzQsIDk4MzMzNiwgNDM0MzcsIAogICAgIDMwODEsIDExNDYzLCAxMjAxNTQsIDAsIDAsIDEwNDQ1LCAwLCAwLCA2NjcxNywgMjYxNCwgOTEyNSwgMTE5MDIzLCAxNzI5LCAKICAgICAwLCAxMjAyMzYsIDY1MjIxLCA2Mzg4MywgNDMzMzQsIDY0ODUyLCAwLCA2NTE5NCwgNjYyMDEsIDAsIDY2NTc4LCA1MDAxLCAKICAgICA0MTg3OSwgNzQ0MjcsIDQxMjEsIDUwMDMsIDg4NCwgNjY3MDAsIDYzODc5LCA0OTQzLCA1MTUwLCA3Mzg4OSwgNzQxODIsIAogICAgIDEyNzkxNSwgNjQzLCAzMDg2LCAwLCA0MjQ0OCwgNDIyOTksIDU4LCAwLCA5MTc5NTIsIDEyMDA4MywgNjM4NzMsIDg0OTEsIAogICAgIDAsIDAsIDAsIDQ1MzAsIDQyNDA5LCA3MTI2LCAxOTQ1NzUsIDI3MjEsIDEyMDA3NCwgMTE5MDk2LCAxOTkyOSwgMCwgCiAgICAgMTk0NTc0LCAwLCA0MjQyLCA0MjY0LCAxMjAwNzcsIDEyMDUzMCwgNjYxNzksIDQyNDEyLCA2NTk0MSwgMTMxMTQsIDY0NTIyLCAKLSAgICAxMDc0MCwgMzA5NCwgMCwgOTc1NCwgMTE5MTAyLCA0NDM3LCA3Mzk0OCwgMTI3MDc0LCA5ODMyMzIsIDU1MjgwLCA0MjE3NCwgCisgICAgMTA3NDAsIDMwOTQsIDAsIDk3NTQsIDExOTEwMiwgNDQzNywgNzM5NDgsIDEyNzA3NCwgOTgzMjMzLCA1NTI4MCwgNDIxNzQsIAogICAgIDE5NDkyNSwgNDI0MzAsIDAsIDAsIDQyMzU1LCA2NjAyNiwgNDMwNiwgNDEzODAsIDY4NDMyLCA5MjU4NiwgMCwgNjY2NjcsIAogICAgIDEyNzMwOSwgMCwgMTI2NTIxLCA0MjIwMCwgNDI1NjYsIDAsIDAsIDUwODgsIDY5NDgsIDAsIDg1MjQsIDAsIDAsIDEyMzg1LCAKICAgICAwLCAwLCA2OTY0NiwgMTM4NiwgNjQ1ODAsIDExNDgwLCA2MTE2LCA2NTAzOSwgNjUwMzgsIDEyMzkyLCA2NTAzNiwgODA2NCwgCkBAIC0xNzMzNyw3ICsxNzMzOSw3IEBACiAgICAgOTE3Nzc2LCA2NTE0OCwgMTI0MzMsIDkxNzc4MSwgMTI3Mjc2LCA5MTc3NzksIDEyNDMxLCA4NjY4LCAxMjQzNCwgOTgzODI2LCAKICAgICA5MTc3ODIsIDU5OTksIDAsIDc3MTIsIDEyNDMyLCAxMjgyNDMsIDQzNjUzLCAxNzI2LCAxMDE1LCAwLCA4MjEyLCAwLCAKICAgICAxMjgwMTQsIDQyNDIzLCAxMTkwNjYsIDAsIDEyODEwOCwgNjY3MDksIDAsIDg4MTEsIDkyNywgMCwgMCwgMTI0MzYsIAotICAgIDk4MzIzOSwgNDIwMjEsIDAsIDAsIDEyOTksIDEyMjQwLCA0MjM1MCwgNjUxNDMsIDAsIDE5NTAxNiwgMCwgNzgxOTcsIAorICAgIDk4MzI0MCwgNDIwMjEsIDAsIDAsIDEyOTksIDEyMjQwLCA0MjM1MCwgNjUxNDMsIDAsIDE5NTAxNiwgMCwgNzgxOTcsIAogICAgIDExMzQ4LCAwLCA3ODAzNywgOTE5NCwgOTgzMTg0LCAwLCAxOTkxNCwgMTIxNzksIDk4MzgwMywgMjI5NiwgMTk0OTIzLCAKICAgICA2MzgzNiwgNjM4MzIsIDkxNzc3MywgMTA5NjcsIDYzODE2LCAyNTk0LCAzNDQ0LCA2MzgxNywgNjQ2NTEsIDAsIDQxNTAzLCAKICAgICAxMjc0NzgsIDExMjY1LCAwLCAxMjA3NTYsIDE5NDkyMiwgMCwgNTY2NCwgMzk3MiwgMCwgMCwgMCwgMTI4NTA4LCAxMjQxNiwgCkBAIC0xNzM0OCw3ICsxNzM1MCw3IEBACiAgICAgOTE3MSwgMTI3NDEsIDExNDAwLCA3MTMwNSwgMTk0Nzk5LCAwLCAxMjgyMzksIDAsIDEyODg4MSwgMTE5NjA0LCAxMjc1MjMsIAogICAgIDEyMDE5MCwgMTk0NzczLCA2NzYwOCwgMTI4MjE0LCA0MjM2OCwgMCwgNzcxNSwgMzg4MSwgNDE0ODcsIDEyMTE4LCA0MjUxNCwgCiAgICAgNjg2NTEsIDAsIDk4Mzg4NiwgMzAwOSwgNDE0NzYsIDQxNDg5LCA2OTgyNSwgMzAwNywgMTQ0OCwgMzAxOCwgMTk0ODA5LCAKLSAgICAzODg5LCA4NTIxLCA1MDgzLCA1MDgyLCAxMTk4NTksIDEyMDE4NCwgODUxOSwgOTgzMjM1LCAzMDE0LCA1MDgxLCA2NTg1MywgCisgICAgMzg4OSwgODUyMSwgNTA4MywgNTA4MiwgMTE5ODU5LCAxMjAxODQsIDg1MTksIDk4MzIzNiwgMzAxNCwgNTA4MSwgNjU4NTMsIAogICAgIDEyMDcxNSwgMCwgNjgwMTQsIDY5OTUxLCA1MDc5LCA2NDgwMiwgNDIyMTAsIDQ1OTcsIDY1NTMyLCAxMTgyOCwgMTIwMTg1LCAKICAgICAxMjM3MSwgMCwgODQwNywgMCwgMTA4MDUsIDg1MTgsIDEwNzc5LCAxMjAxODgsIDcxMzAzLCA5ODM5MjQsIDEyMzY3LCAKICAgICA0MjE3MCwgMCwgOTI1NTcsIDYyOSwgMTkyNCwgMCwgMTIwMzcsIDc0MzY2LCA1OTg3LCA4NDYyLCA4MDA1LCAxMjM2NSwgCkBAIC0xNzQwMCw3ICsxNzQwMiw3IEBACiAgICAgOTU5NCwgMCwgMCwgNDM1MjcsIDAsIDcyNywgMTk0NzAzLCAxOTUwMjMsIDU4MDUsIDAsIDY3MjYsIDAsIDQyMTc2LCAKICAgICAxMjM3MCwgMTE2NTUsIDExOTA5NSwgMTA1OTEsIDIyODAsIDAsIDEyMzcyLCAxMjA2NDIsIDEyMDMwNywgMCwgOTIzNDMsIDAsIAogICAgIDEyMzY2LCAxMDk2MywgNjA2NiwgMTMyOSwgMCwgMzA1MiwgOTIyMCwgMCwgNjQ0NzgsIDE5NDcwMSwgMTA4MDMsIDQxMzIsIAotICAgIDEyMDMwNiwgNjg0NzQsIDkyNDczLCAwLCA5ODMzMDUsIDc0ODM3LCAxMjAxNTUsIDE0OTksIDAsIDgwNTUsIDQyNzQwLCAKKyAgICAxMjAzMDYsIDY4NDc0LCA5MjQ3MywgMCwgOTgzMzA2LCA3NDgzNywgMTIwMTU1LCAxNDk5LCAwLCA4MDU1LCA0Mjc0MCwgCiAgICAgNjM5NjUsIDAsIDYzOTYyLCA3NDA0MiwgODkyNCwgNDMxMjMsIDU5ODgsIDM2NjAsIDYzOTY5LCAxMTc4MSwgNDI3MTgsIAogICAgIDg3ODgsIDEzNTcsIDY0ODUxLCA2NTc0MywgMCwgODc3NCwgMCwgMTI3MDg2LCA5OTQxLCAxMjAxNzIsIDAsIDE5MzMsIAogICAgIDY5NjU1LCA5NTY0LCAwLCA5MjQzNSwgNzM4NjYsIDAsIDAsIDI0ODcsIDY3NjE0LCAzMTIxLCAxODA0LCAzMzExLCA2NzYxNSwgCkBAIC0xNzQ1Miw3ICsxNzQ1NCw3IEBACiAgICAgNjQ0MzYsIDM2MDEsIDE5NTA5NCwgMTI4MDczLCA5ODM1NjIsIDYwOSwgMTE1NTUsIDk4MzA5OSwgMTI0OTYsIDEyNzgzOSwgCiAgICAgNzQxODEsIDQzNDMsIDEyNTA1LCAwLCAxMjc4NjMsIDAsIDExMzc3LCAyMzksIDAsIDYzNywgMCwgMCwgNDI2NzEsIDAsIDAsIAogICAgIDAsIDQzNTY1LCA3MTMwNiwgMTI2NDkzLCAxMjY5NiwgMTI4MjU2LCAwLCA5NDA2MiwgMTI5MjksIDAsIDcxMiwgMCwgNDE5NywgCi0gICAgOTgzMjA0LCA0MjgxOCwgMTI2NjMyLCAwLCAxMjA0OTAsIDAsIDExOTEzNywgMTUwNiwgNDM1NjIsIDAsIDkyNDkxLCAwLCAKKyAgICA5ODMyMDUsIDQyODE4LCAxMjY2MzIsIDAsIDEyMDQ5MCwgMCwgMTE5MTM3LCAxNTA2LCA0MzU2MiwgMCwgOTI0OTEsIDAsIAogICAgIDEyNjUxLCAwLCA2NDYyOCwgNzQ1MTcsIDEyMDU4LCA3NDA4NCwgOTE3ODM4LCA3NDk0LCAwLCA0OTI0LCA2NTU5MiwgCiAgICAgMTE4ODQ0LCAwLCAxMjcwODgsIDM1NSwgOTcxOSwgMTI3MDg3LCAxMzA2NiwgNjQ3OTYsIDAsIDAsIDEyMDMzLCA0MjE3OCwgCiAgICAgMCwgNjk3NjAsIDQyNTcxLCA5MjYzNSwgMCwgMCwgMCwgMCwgMCwgMTI3MTc2LCAzMTc4LCAwLCAwLCA5MjcwNCwgMCwgCkBAIC0xNzQ4NSw3ICsxNzQ4Nyw3IEBACiAgICAgNjY0ODksIDIyNCwgMCwgNjg2NzAsIDkzMzIsIDQ5NjYsIDY4Njc3LCAwLCA2ODY0NCwgMCwgMzg0MSwgNjg2MzQsIDAsIAogICAgIDEwNzMyLCA2ODY0MCwgODUwLCA0OTcyLCAwLCAxMjg5MCwgMjkwOSwgNjg2MTksIDQ0MDA4LCA2ODYyNywgOTgzNzA5LCAKICAgICAxMTU0NCwgMTAyMDMsIDk2MDgsIDAsIDAsIDExOTYyLCAxOTQ2OTQsIDEyNTA3LCAxMTk2LCAxMjg2ODcsIDEyODMxMSwgCi0gICAgNzc3LCAxMjAxODcsIDQzNzUsIDY1MjcxLCA2NzY3OCwgMCwgMTIxOTgsIDAsIDY0ODI0LCAxMTkzNDMsIDk4MzIzMCwgCisgICAgNzc3LCAxMjAxODcsIDQzNzUsIDY1MjcxLCA2NzY3OCwgMCwgMTIxOTgsIDAsIDY0ODI0LCAxMTkzNDMsIDk4MzIzMSwgCiAgICAgOTQ1NCwgNjM3NzgsIDg2NTgsIDQyNTI4LCA3ODAwMCwgMjcwNSwgOTE3OTc1LCA0MTUyMCwgMCwgMCwgMTE5ODYsIDc3NjUsIAogICAgIDQyNTAyLCA4MjgwLCA3NDUyMCwgMjcwMSwgMCwgMTI3MDAyLCA1NzY3LCAwLCAwLCA5ODA5LCA4MzUzLCA2Mzc0NywgCiAgICAgNjY3MDEsIDYzNzcyLCA5ODM4MDUsIDYzNzQ1LCAxNzQ4LCA2Mzc3MCwgMCwgMCwgMCwgNjU1NDIsIDYzNzY2LCA1NTI0NCwgCkBAIC0xNzQ5NSw3ICsxNzQ5Nyw3IEBACiAgICAgMTA5OTYsIDkyMjQ3LCAxOTIyLCAwLCAxMjQ5OCwgMTA5ODcsIDY5OTM2LCA2OTkzOSwgMzg5NCwgNjU1NDMsIDAsIAogICAgIDE5NDg0MiwgOTgzNTg4LCA0OTMsIDAsIDQzMTk3LCAxNzE3LCA0MjI4LCA0NzksIDEwMzAzLCA3NDAyMCwgMCwgOTE3OTM1LCAKICAgICAxMDMzNSwgMzUyMCwgOTE3OTMyLCAxMjQ5MCwgNjQzMTUsIDAsIDEyNzAzOSwgMTI0OTMsIDYyMzMsIDQyNjgxLCAxMDAyLCAKLSAgICAxMjQ5MSwgMCwgNjQ5MTEsIDkyNjE1LCAyMDk2LCA2NTEyMCwgMCwgNzgyMTksIDk4MzA4MSwgMTE2MTEsIDExNjMyLCAKKyAgICAxMjQ5MSwgMCwgNjQ5MTEsIDkyNjE1LCAyMDk2LCA2NTEyMCwgMCwgNzgyMTksIDk4MzA4MSwgODM3OCwgMTE2MzIsIAogICAgIDEyNzA0MSwgNjYyMTMsIDYzODY0LCA2NjIyMSwgNjYyMjYsIDY2MjI5LCAxMzIxOCwgNjYyMzEsIDY2MjE2LCA4NTA3LCAKICAgICA2NjIzNiwgNjYyMTEsIDY2MjE4LCA5MjY3MiwgNjYyNDAsIDc4MDQxLCA2NjIzMywgODkyOCwgOTgzNTUyLCA3OTA5LCAKICAgICA2NjIzNCwgMTE2MDUsIDYzNzU5LCA5ODM2NDUsIDY2MjA4LCA3Mzk5OSwgNjM3OTksIDYzODAzLCAyNDQsIDExNTQyLCAKQEAgLTE3NTE1LDcgKzE3NTE3LDcgQEAKICAgICA5MzgyLCA5Mzc5LCA5MzgwLCA5Mzc3LCA5Mzc4LCA5Mzc1LCA5Mzc2LCAxNjgzLCA5Mzc0LCA5ODM3NjksIDkzNzIsIAogICAgIDEyNDQ0LCAwLCAwLCAxMzAxNiwgODIxMCwgOTgzOTQ5LCA0MjAyOSwgMTEwNzksIDEyMzMxLCA0MzQ1MSwgNDIwMzIsIAogICAgIDg3NDQsIDcyNiwgMCwgOTgzODI4LCA0MTU1LCAwLCAwLCA0MjAzMCwgNTAwNywgMTI1MjIsIDQzMDg4LCAwLCA0OTUxLCAKLSAgICAxMjc4MDUsIDEyNzI0MCwgMCwgOTkyMiwgNDMzMDksIDk4MzgzMiwgMTI1MjUsIDk4MzQ2MywgMTIwMTYsIDY1NzcwLCAKKyAgICAxMjc4MDUsIDEyNzI0MCwgMCwgOTkyMiwgNDMzMDksIDk4MzgzMiwgMTI1MjUsIDk4MzQ2NCwgMTIwMTYsIDY1NzcwLCAKICAgICA5NTQ4LCA2NzY2NSwgNDAzLCA3ODIzMCwgMTI1MDMsIDAsIDAsIDExMDMwLCAwLCA5MjU2NywgNjU2OTEsIDYzOTk4LCAKICAgICAxODE5LCAxMDQ5NiwgMCwgMCwgMTE5OTIwLCAwLCAxOTQ2NjgsIDAsIDEyNTA2LCAwLCAxMjIzMSwgMCwgMTI1MDAsIAogICAgIDQ0MDIzLCAxMjUwOSwgNjQzOTMsIDc4ODMwLCAzMzg5LCAxMDU4OSwgNjYwOCwgNDEwNDcsIDEyMDMyMSwgNzgzOTUsIApAQCAtMTc1NTcsNyArMTc1NTksNyBAQAogICAgIDEzMDQzLCA4MDU2LCA5MjQ5NCwgNjU2ODEsIDIwOCwgMTI3MzgyLCA0MTUxNCwgMCwgMCwgMCwgMTA2OTksIDY0MDgsIAogICAgIDkyMjI3LCA3ODI1LCA1NjYxLCAwLCAxMjA2MzAsIDM2MDMsIDQxMTA5LCAyMzk4LCAzNTQ4LCAxMjY1OTYsIDAsIDExOTkzMywgCiAgICAgMCwgMzExNSwgOTkxOCwgMCwgMTEzMjEsIDQyOTEyLCAwLCAwLCAxOTQ3MjYsIDQ4NzYsIDY1ODA0LCAwLCAwLCA0MzQ2OCwgCi0gICAgOTgzMjY2LCA0MTU1OCwgNDE0NzEsIDczOTUwLCA4MTU4LCA5OTQ0LCA0MTQ3MiwgMTIwMjk4LCAxMzA1MSwgNzg2ODksIAorICAgIDk4MzI2NywgNDE1NTgsIDQxNDcxLCA3Mzk1MCwgODE1OCwgOTk0NCwgNDE0NzIsIDEyMDI5OCwgMTMwNTEsIDc4Njg5LCAKICAgICAzMTQzLCAxOTQ2NzQsIDY3MDEsIDQxNTU5LCAxODk2LCA2NjI1NiwgMTMwNTIsIDE5NDY4MCwgNTY2NSwgMCwgMTE5MDcxLCAKICAgICA3MDI1LCA2Mzk3NCwgMCwgNzQzNTIsIDc0MTYxLCA0MTU0LCA5ODYzLCA0MzU1MCwgMTIzMTAsIDU2NjIsIDQyMzgyLCAKICAgICAxOTQ2ODYsIDczOTI0LCAxMTIxLCA3ODMxOSwgNjM5NTksIDAsIDk5NDIsIDEzMjMxLCAwLCA2NDc1MiwgNDczMiwgCkBAIC0xNzU4Nyw3ICsxNzU4OSw3IEBACiAgICAgNjE1MywgMjg2NywgMTk0NzA4LCA2NjMxMiwgNjk4LCAxMjgwMDcsIDE5NDYwNiwgMTAzNTYsIDcwMDE3LCAxOTQ3MTMsIAogICAgIDY1MSwgMTI2NDEsIDAsIDAsIDAsIDAsIDQxNTUyLCA2NTExNSwgNzg0NjUsIDc4NDY3LCA3ODQ2MywgNzg0NjQsIDEyODg1MSwgCiAgICAgNzg0NjEsIDE5NDY5NywgNzQzNTYsIDY0OTQ1LCA0NzE2LCA0MzI3NywgMCwgNzg0NzQsIDEyMzQwLCAxMjA1NjgsIDAsIAotICAgIDE5NDcwMCwgNTUyNjQsIDQxMjExLCAxMjA2NzYsIDg3MDMsIDU0NjIsIDkxNzYyOSwgOTgzNDg3LCAxMDEwMSwgMCwgCisgICAgMTk0NzAwLCA1NTI2NCwgNDEyMTEsIDEyMDY3NiwgODcwMywgNTQ2MiwgOTE3NjI5LCA5ODM0ODgsIDEwMTAxLCAwLCAKICAgICA3MDA0OSwgODQ3OSwgNDE1MSwgNDE5MzMsIDAsIDAsIDY2MjU0LCAxMjA4MjEsIDAsIDAsIDEyODY1NCwgMCwgMTE5MTk0LCAKICAgICA3NDA1MCwgOTI3MDEsIDAsIDAsIDAsIDAsIDAsIDEyMjc4LCAwLCAwLCAwLCAyNzAwLCAxMjU3NiwgNzg0MiwgMTI4OTksIDAsIAogICAgIDAsIDI2OTksIDAsIDczODQ1LCAyOTg1LCA5MjU2OCwgMTI2NDc1LCA5MTc4NDUsIDEyMTkyLCAxMTkzMTQsIDAsIDExOTMxMiwgCkBAIC0xNzYwMiw4ICsxNzYwNCw4IEBACiAgICAgOTYzMiwgOTIzMjMsIDc0NzYxLCA2NDMyMywgMTI3MzM1LCAwLCAwLCAwLCAzMTAsIDAsIDQxMjgxLCAxMDk3NiwgMCwgCiAgICAgNzEzMjUsIDAsIDc0MjY2LCAxMDA1NCwgNjQ5NywgODU3NCwgMCwgOTAxMiwgMTk5NTgsIDc0NDIwLCA2NTA4OSwgMTMyMTUsIAogICAgIDEyNzMwLCA2NTE2MywgNzQwNDQsIDM3NCwgNDMxOTUsIDgxNiwgMTIwMTYxLCAwLCAwLCA0MTkzNCwgNzQ2NSwgMCwgCi0gICAgMTI4MTY4LCA5ODMyNjAsIDQ3MTUsIDYxMDEsIDk0MTA2LCA0MTkzNiwgMCwgNDg3OSwgMCwgNjU0NDYsIDAsIDMwNywgCi0gICAgMTI3MTQ3LCA5NTg1LCA1Mzc0LCA5ODMyNTksIDEyODA1OSwgMCwgMCwgMTI2NjE4LCAxMjAzOTAsIDAsIDY1NTY3LCAKKyAgICAxMjgxNjgsIDk4MzI2MSwgNDcxNSwgNjEwMSwgOTQxMDYsIDQxOTM2LCAwLCA0ODc5LCAwLCA2NTQ0NiwgMCwgMzA3LCAKKyAgICAxMjcxNDcsIDk1ODUsIDUzNzQsIDk4MzI2MCwgMTI4MDU5LCAwLCAwLCAxMjY2MTgsIDEyMDM5MCwgMCwgNjU1NjcsIAogICAgIDEyMDYxNCwgMTkyOSwgMCwgMTIxNDIsIDAsIDEyMjM2LCA0MTQxOSwgMTk0NjE4LCAxMjA2MTAsIDEyOTgyLCAxOTQ2MjMsIAogICAgIDUzNzgsIDc4NzkxLCAxMjg2NzksIDQxNDIxLCAwLCA0NDYyLCAwLCAxMjY1OTksIDEyODA5MiwgODIxLCAwLCAyNDk4LCAKICAgICA1ODAwLCAxMjAxNTcsIDk4MzExNSwgMTc2MCwgMjQyMSwgNDQ2OSwgMjMyNCwgODI4LCAzNjExLCA3ODQwMCwgNzU3LCAKQEAgLTE3NjIwLDcgKzE3NjIyLDcgQEAKICAgICA3Nzk1MCwgMTk0NTc4LCA3MDc0LCA5MjY0OCwgMTk0NTc5LCAxOTQ1ODIsIDExNDE0LCAxMjg4NjgsIDI1MzEsIDEzMDM0LCAKICAgICAwLCAwLCA0MjExLCAxMjU5LCA3NTE3LCAwLCAwLCAxOTQ1NjEsIDQwOTk2LCAxMzAzNywgNzA5MiwgNjQxLCA1MjE5LCAKICAgICA5NDAzNCwgMTk0NTY2LCAxMTA2NCwgNDExMjksIDAsIDQyODUwLCAxMzAzNSwgOTA3NSwgOTIzODcsIDU0NjYsIDEyODE1MywgCi0gICAgMCwgNjQwOTgsIDY1NzkzLCA0NTM1LCAxOTQ1NzMsIDQyNzEsIDc4NDE3LCAxMjgzNTcsIDY3NjksIDQxNDEwLCA5ODM0NDQsIAorICAgIDAsIDY0MDk4LCA2NTc5MywgNDUzNSwgMTk0NTczLCA0MjcxLCA3ODQxNywgMTI4MzU3LCA2NzY5LCA0MTQxMCwgOTgzNDQ1LCAKICAgICA2NDI2MiwgNjc2NywgNDE0MDcsIDAsIDAsIDY3NTUsIDExODg2NCwgOTA0NiwgMTI3OTM0LCAxMjY2MDgsIDAsIDAsIDAsIDAsIAogICAgIDY3Njc1LCAwLCAwLCAwLCA2NDMzOCwgMjU2MywgMTMwMzMsIDI0NywgMTE4OTE1LCAwLCAxMjMzOCwgNDY1MSwgNjk4OTUsIAogICAgIDExMjcwLCAwLCAwLCAxMTkzMywgMCwgMCwgNDE5MDMsIDQzNDQ3LCAxMTAwMSwgMCwgNDIyNTUsIDAsIDkyNjYxLCA2OTgyMSwgCkBAIC0xNzY1MCw3ICsxNzY1Miw3IEBACiAgICAgMTA5MSwgMTI2MzgsIDc5NzcsIDQ1MDEsIDQxMDk5LCAwLCA2NjMwOSwgMCwgMCwgMTQ5NCwgOTgzMTQ2LCAxMjY2MTMsIDAsIAogICAgIDExNjkzLCAxMjY1MTMsIDEwNDk0LCA5MjY1NSwgNjU4NzIsIDEyMzYzLCAxMTM4NiwgMCwgMCwgMCwgMCwgNjQ1ODIsIDAsIAogICAgIDczNzk0LCAwLCA4MDIyLCAwLCAxMjA0NjIsIDc0MTA2LCAxMjQxMywgOTQwNjksIDkxNzk5NCwgOTE3OTkzLCA5MTc5OTUsIAotICAgIDU1NzAsIDE4ODEsIDcyMTAsIDAsIDEwMTIsIDQzNzUyLCAwLCAxMjA3MDksIDcyMDgsIDY2NDQyLCA1NTY5LCA5ODMyMzYsIAorICAgIDU1NzAsIDE4ODEsIDcyMTAsIDAsIDEwMTIsIDQzNzUyLCAwLCAxMjA3MDksIDcyMDgsIDY2NDQyLCA1NTY5LCA5ODMyMzcsIAogICAgIDQyMzM5LCAwLCA2MDYzLCAwLCA3ODM4MywgMTE5NTk0LCA2MDUzLCA2NTYwMiwgMCwgOTIyMDEsIDY0NzI3LCA5MTYwLCAKICAgICAxOTQ4MjcsIDAsIDAsIDkyMTgwLCAxMDUwMywgMTE4ODEwLCA2MDU1LCAzODcwLCA0Mjc5LCA4NDkwLCAxMjAxMTQsIDQzMTksIAogICAgIDY0Nzg2LCA4NjAyLCAxMjAxMTAsIDExMzI2LCA5MjIwNCwgOTgzMTE2LCAwLCAxMjAxMTksIDc4MzMzLCAxMjAxMTcsIApAQCAtMTc2NTgsNyArMTc2NjAsNyBAQAogICAgIDEyMDEwOCwgNDIwODUsIDEwMTA3LCA0MjE1OSwgNDI4NzAsIDEyMDEwMSwgNTg5LCA3MDUwLCA5ODM3OTEsIDQzMjgxLCAKICAgICAxMDIzMywgNDEyNjMsIDY2MjUxLCA2NTcyOSwgNjYyNTMsIDEyNjQ5NywgNzQwOTksIDQyNjQ1LCAwLCAxOTQ4MTUsIDg1ODMsIAogICAgIDAsIDU4NDcsIDY5MjgsIDEyODA3NCwgMCwgMCwgMCwgMCwgNjY1OTIsIDEyMjA0LCA5MTc5NjIsIDE5OTY2LCA3Nzg1NiwgCi0gICAgNDI1NjEsIDEyMDYyNiwgOTgzMjQ1LCAwLCA4MTIwLCAxMjA3MDEsIDAsIDAsIDEyODAxMiwgNDEwNjMsIDAsIDEwNjY0LCAwLCAKKyAgICA0MjU2MSwgMTIwNjI2LCA5ODMyNDYsIDAsIDgxMjAsIDEyMDcwMSwgMCwgMCwgMTI4MDEyLCA0MTA2MywgMCwgMTA2NjQsIDAsIAogICAgIDgzNjksIDAsIDQ1NTEsIDE5NDk2NCwgMzM2OSwgMCwgMCwgOTY3MywgNjYzMzQsIDY1NTgwLCAxMDQ3OCwgMTE4OTYwLCAKICAgICAxMjUxNywgNTU3LCA5NDU3LCAxMjAzNCwgOTgzNjYyLCA2MzU1LCAxMjUxOSwgNDEwMDQsIDAsIDE5NTAyNSwgNzQwOTQsIDAsIAogICAgIDAsIDc3OTcwLCA5ODM1NjAsIDAsIDEyODE3NSwgMTIxMTEsIDM5MjcsIDAsIDEyNTE1LCAxNDc0LCA2Nzg5MywgNTQ5MiwgCkBAIC0xNzY4MSw3ICsxNzY4Myw3IEBACiAgICAgNzM4OTgsIDExOTc5LCA3MDA1MSwgMTE4OTAwLCA5MTc4OTQsIDAsIDk2MzUsIDEyNjAwLCA4ODcxLCAwLCAwLCAwLCA2NDY5LCAKICAgICA3NDIyNywgMCwgNjUzMDQsIDQ2NzksIDEwMjMwLCA2NDMwMCwgNjQ4NjcsIDM0MjcsIDQyNDAsIDAsIDAsIDAsIDAsIAogICAgIDQyOTE2LCAwLCAwLCAwLCA3MjgyLCA3ODcyOCwgNjU3MzMsIDQ0NDUsIDEyNzEzOCwgMTI4MDgyLCAzNDk0LCA3NDYwNiwgCi0gICAgNjU1NSwgMCwgNzc5NzYsIDAsIDAsIDc4NTY2LCAwLCA5ODMxODksIDY1ODk4LCA5ODMyMzgsIDY1MzEyLCA1NDQ3LCAwLCAKKyAgICA2NTU1LCAwLCA3Nzk3NiwgMCwgMCwgNzg1NjYsIDAsIDk4MzE4OSwgNjU4OTgsIDk4MzIzOSwgNjUzMTIsIDU0NDcsIDAsIAogICAgIDEyODk1LCA2NTU5MywgNDAxMCwgMCwgNDExMDYsIDAsIDY0NDQ4LCAwLCA0MTEwNSwgMCwgNjU4MjAsIDYyMzIsIDAsIAogICAgIDEyODI4MCwgMCwgNDM2MDgsIDExOTA5MSwgMCwgNjUzOCwgNDMzNSwgNzgzNjQsIDM5NDEsIDQxMTIyLCAxMTA2MSwgCiAgICAgNzgzNjMsIDY0ODkyLCA5MTEzLCAxOTU0LCAxMjE1NSwgOTgzNjY1LCA0Mjg3OCwgMTE1MDAsIDAsIDAsIDc0NTc4LCAwLCAKQEAgLTE3Njk1LDkgKzE3Njk3LDkgQEAKICAgICAxMTQyOCwgMTczMCwgMjQ1NywgOTE3ODA4LCAxOTkxOCwgMTA0NjksIDAsIDAsIDc3MDMsIDg4NDAsIDgwMzUsIDAsIDAsIAogICAgIDkyMjMwLCAwLCA2MTI5LCAwLCAxMjg1MjgsIDEyODI2OCwgMCwgNzg3NCwgODY4MSwgMTE5MDkyLCAwLCAxMzEzNiwgMCwgMCwgCiAgICAgNzAxMDIsIDYzODg2LCAxMTg4ODEsIDk2MDUsIDcxMzA4LCAxMzIyMCwgMTI4Nzc2LCAxMjAyNzQsIDU1MTQsIDAsIDkyMjgsIAotICAgIDAsIDAsIDAsIDUyNDAsIDk4MTEsIDEwMDEyLCAzMDk2LCAwLCAwLCA5ODMzNDMsIDY2Njc2LCA2NTg3MywgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgNTI0MCwgOTgxMSwgMTAwMTIsIDMwOTYsIDAsIDAsIDk4MzM0NCwgNjY2NzYsIDY1ODczLCAwLCAwLCAwLCAKICAgICA5NTAxLCAwLCAxMjcyLCA2NDUzNiwgNjU0NjUsIDY0NjU0LCA3NDY3LCAwLCAxNDY3LCAxMDE1OCwgMTAwNDAsIDAsIDk1MTksIAotICAgIDAsIDkxNzgxMiwgMCwgMTE4ODk5LCAxMjE5MywgMCwgMCwgMCwgMCwgOTgzMzQ1LCAxOTkzNSwgMCwgOTIxNjIsIDY5Njc2LCAKKyAgICAwLCA5MTc4MTIsIDAsIDExODg5OSwgMTIxOTMsIDAsIDAsIDAsIDAsIDk4MzM0NiwgMTk5MzUsIDAsIDkyMTYyLCA2OTY3NiwgCiAgICAgMCwgMCwgMCwgNTI3NSwgMCwgMCwgODYzNywgMCwgMCwgMzc4OSwgNjM4ODAsIDExNDcxLCA0MzU1NCwgNjU4NjIsIDExNDc0LCAKICAgICA2NjMzMiwgNjY2MDMsIDEyODEzOCwgMjQyNiwgMTIwNDIsIDkyMTk0LCA5ODM5MDIsIDk1MzcsIDM5NjEsIDEyMTE1LCAKICAgICA3Nzk1MywgMjYwNSwgNDUwMCwgNjQ1NjEsIDU1MjI0LCA0OTgxLCAwLCAwLCA2Mzg3NiwgMTE2NjcsIDQyNjg2LCA3Nzk3MywgCkBAIC0xNzc0OCwxNCArMTc3NTAsMTQgQEAKICAgICA3MTQyLCAxMTk4ODEsIDEyMzUwLCA2NTU1NCwgMTE5ODgyLCAxMTk4NzcsIDExOTg3NiwgMTI3ODUsIDYzODYzLCA0Mzc5NSwgCiAgICAgNzc3MCwgMTA3MTIsIDY0ODUzLCAxMjY4NiwgMTE4OTE2LCA0MjM3NSwgMCwgMTI3MjM4LCA2NjM1MiwgMTA0NzAsIDAsIAogICAgIDExMDU5LCAxMDc5MSwgOTE3OTQ0LCA0NTAsIDExOTMyOCwgMCwgMTA0MzIsIDEyMDk3LCA1NDUwLCA2NDY5MSwgMTIzMywgMCwgCi0gICAgNDQwMDksIDc4Mjg0LCA2NjMzOCwgMCwgMCwgMTgzOSwgMTE4Nzk5LCA5ODMyMTcsIDEwOTI3LCAxNzAxLCA5ODM2NTUsIAorICAgIDQ0MDA5LCA3ODI4NCwgNjYzMzgsIDAsIDAsIDE4MzksIDExODc5OSwgOTgzMjE4LCAxMDkyNywgMTcwMSwgOTgzNjU1LCAKICAgICAyMzg4LCA0MTc0OSwgNDE3NjEsIDU0NTMsIDgzNjEsIDExOTg2NSwgNDE3NTgsIDU0NDQsIDQxNzYzLCA2NDg4OSwgNzE0MywgCiAgICAgOTI0OTMsIDc4Njc3LCAwLCA5MjQyOSwgNzgxNzQsIDY2NDMyLCA4ODAxLCAzMDUzLCA0MzQwLCA5ODMwNDQsIDAsIDY1ODEyLCAKICAgICA5MTc4MzEsIDAsIDQxODI0LCA2Nzk4NSwgMTIwMjAzLCAxOTQ4MDAsIDE5NDgwMywgNDI3MDAsIDE5NDgwNSwgMTI3OTgwLCAKICAgICAxOTQ4MDcsIDc4Njc2LCA5MjM1NiwgMTk0ODA4LCAwLCAwLCA0NDkzLCA0MzM2LCAwLCAyMzE0LCA0MzYwMiwgNzg4MjYsIAogICAgIDExOTMyNSwgMTk0ODExLCA0MjQzOSwgNjQ2MzgsIDQyMzI3LCA0MzUyOCwgNDQ4OSwgNzEzMzEsIDAsIDE5NDc5MywgMTkxMiwgCiAgICAgNDIzODUsIDEwMzA2LCAxMDM3MCwgMCwgMCwgODg2NywgMTAyNTAsIDEwMjU4LCAyNzEyLCAxNjM1LCA3ODgyMSwgMTQxMCwgCi0gICAgOTI2NzEsIDk4MzI0NCwgMTE4ODc4LCAwLCAwLCA5OTE5LCAxMjA1MjgsIDU1OSwgMTI4MTU3LCA0MTgyNSwgMTI3OTc1LCAKKyAgICA5MjY3MSwgOTgzMjQ1LCAxMTg4NzgsIDAsIDAsIDk5MTksIDEyMDUyOCwgNTU5LCAxMjgxNTcsIDQxODI1LCAxMjc5NzUsIAogICAgIDc4MTg4LCA0ODkyLCA3NDAxNiwgMTk0NzgxLCA2NTQyLCA0MTk1NywgMTI4ODY1LCA1Nzc3LCAwLCA3NTksIDY1NzQ5LCAKICAgICAyMDc5LCA2NTI0OCwgMTI3ODgsIDY0NDg3LCA2NDU1MiwgMCwgMTAyMjMsIDQyMDYyLCAwLCAwLCAxMjY1NzMsIDM2NjgsIAogICAgIDY1NzU0LCA0MzU2MCwgMTIyMjYsIDY3OTkxLCA2NTE0OSwgMjM0MCwgNDE5NTksIDE5NDc4NiwgMTk0Nzg1LCAxOTQ3ODgsIApAQCAtMTc3NjUsNyArMTc3NjcsNyBAQAogICAgIDQyODA5LCA0MjgwNywgMCwgMTIwMDQ2LCAxMDE5OCwgNDE1MCwgNjQzNzEsIDgzMTgsIDQxNzkwLCA2Nzk3NiwgNDE4OTgsIAogICAgIDIzNjAsIDQxNzk0LCA5MTc5NDIsIDcxMzE0LCAxMjc4MTgsIDAsIDAsIDI0MTgsIDk4MzA5OCwgMjQxMSwgMTEzMzYsIDc5OSwgCiAgICAgNjM4MjMsIDEwMjc2LCAxMDMwOCwgMTAzNzIsIDkxNzU0MSwgNDE3NzIsIDQyODEzLCAyMzE3LCAxMDI2MCwgMTE4OTgwLCAKLSAgICA1NTI4NCwgOTIyMDMsIDAsIDEwMzg0LCA5ODMyMTgsIDAsIDAsIDc3NTMsIDIzNTEsIDY2NTUsIDY0NDg5LCA2OTkzMSwgMCwgCisgICAgNTUyODQsIDkyMjAzLCAwLCAxMDM4NCwgOTgzMjE5LCAwLCAwLCA3NzUzLCAyMzUxLCA2NjU1LCA2NDQ4OSwgNjk5MzEsIDAsIAogICAgIDc3ODcyLCA0NDQzLCA0Mjc3OSwgMjMwLCAwLCAwLCA0MzU0OSwgNDg1NSwgNDIxNTAsIDY1NzM5LCA1NDQxLCA0MTg5NiwgCiAgICAgMTAyODgsIDEwMzIwLCAwLCA4NTUsIDcwNDYsIDYxMDksIDY1MDQ1LCA2MzgzOSwgNzgxOTgsIDIwNDksIDEwMDk4LCAwLCAKICAgICA3NDE0NSwgMTI3OTQzLCAxMDI2NCwgMTAyODAsIDkxODQsIDEwMzc2LCA3MDEzLCA0NDY3LCAwLCAwLCAwLCA0MTg4NywgMCwgCkBAIC0xNzc3Niw3ICsxNzc3OCw3IEBACiAgICAgNzgxNjcsIDEwMDg4LCA2NTQ4LCAwLCAxMjAxNTYsIDQzOTc4LCA4OTg4LCA4ODg4LCAwLCAwLCAwLCAwLCAxMDY2NiwgMCwgCiAgICAgNzM5MDIsIDY5NzQwLCAwLCAwLCA5OTc1LCAxMjgwMzksIDExOTkwMiwgNDY4OSwgODkzMiwgMCwgNjU1NjAsIDExOTIwOSwgCiAgICAgNzQ0NDEsIDc4ODEwLCAwLCAwLCA2Nzk4NywgMCwgMCwgMCwgNjc5ODksIDAsIDEwMDY1LCA4MjA3LCAwLCA5MjYxMywgCi0gICAgMTI4MDExLCAwLCA2NjIsIDAsIDkyNDQsIDE5NDg2MywgMCwgMTE5MjYxLCA5ODM0MjAsIDAsIDAsIDAsIDQxOTI5LCAwLCAwLCAKKyAgICAxMjgwMTEsIDAsIDY2MiwgMCwgOTI0NCwgMTk0ODYzLCAwLCAxMTkyNjEsIDk4MzQyMSwgMCwgMCwgMCwgNDE5MjksIDAsIDAsIAogICAgIDY2Njc0LCA0MTkyNiwgMTIwNDA4LCAxMjA0NDMsIDEwNTEzLCA2NDYzNywgMTk0ODYyLCA2ODAxMywgNTIsIDEzMTE4LCAKICAgICA2NDc1LCAwLCAxMjAzNDEsIDEyMDk1LCAxMDIyNSwgNDgxMiwgOTI1NzgsIDAsIDY3OTkyLCA3NDA4NSwgMCwgMzk3OCwgMCwgCiAgICAgOTE3OTQ1LCAxMjc4MjMsIDExNTgyLCAxMjA3NjEsIDEyMjgxLCAwLCA2NTQ0LCAxMzI0MSwgOTM5NjEsIDY5NzgyLCAKQEAgLTE3Nzg2LDcgKzE3Nzg4LDcgQEAKICAgICAxMjA0MTAsIDAsIDEyMDQ1MywgNjQ4MjEsIDk0NzgsIDI1MDgsIDkyNjgzLCAwLCAyMDIsIDEyODI0NiwgNzQxMzEsIDEyNDIsIAogICAgIDY1NTE0LCAwLCA2Mzk0MCwgMTI4NzA2LCA2NDUzMywgMTIwMTI5LCAwLCA2Nzg0MiwgMTE5OTAsIDkyNDMwLCA2MzkzOSwgCiAgICAgNDMzNzUsIDY1NDQwLCAyNTA0LCAwLCA3ODY3MSwgNjQ4MjksIDk4MzkwMSwgNjk0MywgOTE3OTM0LCA1ODU5LCAwLCAyODU4LCAKLSAgICA5ODMzNTMsIDc0Mjk0LCA5ODM5MDUsIDY5MjM5LCAwLCAxMTkwMjcsIDEyOTkyLCAyNzUzLCAxOTM2LCA3MDA3OCwgOTI1NzQsIAorICAgIDk4MzM1NCwgNzQyOTQsIDk4MzkwNSwgNjkyMzksIDAsIDExOTAyNywgMTI5OTIsIDI3NTMsIDE5MzYsIDcwMDc4LCA5MjU3NCwgCiAgICAgMjc1MSwgMTI2NjIsIDI3NjMsIDg5NTMsIDY0NzAxLCAxMDczMSwgMTI5MjIsIDcwNTIsIDkxNzgzOSwgMCwgMCwgMCwgCiAgICAgNjM5MjAsIDc0MTI4LCAyODU2LCAxMTk5MTAsIDQ3LCA2OTkwOCwgMTI2OTg2LCA2NTg1OCwgMCwgMCwgMCwgNzg5OSwgMCwgCiAgICAgODQxNywgNDM3OTgsIDcwNzIsIDAsIDAsIDQwMzMsIDEyODE2NCwgNDM5OTIsIDAsIDAsIDIxMiwgNjQ2MDAsIDE5MDMsIApAQCAtMTc3OTcsMTMgKzE3Nzk5LDEzIEBACiAgICAgMTI2MjQsIDAsIDE2NzMsIDQ4MTEsIDkyMzgzLCA1OTg2LCA5MzM4LCAzMDQ2LCA3NDQ4MCwgNTk4NSwgOTE3OTI4LCAKICAgICAxMTk1OTgsIDk4MjAsIDAsIDEyMTg3LCAwLCAwLCA1OTg0LCAwLCA0MzMwOCwgNDM5MywgNjc2NTAsIDAsIDAsIDAsIDAsIAogICAgIDc0ODI2LCA2NDczMywgMCwgMCwgMzQ5MSwgMCwgMCwgMTI4MjE5LCAzNTE0LCA2NTQ4NSwgMCwgNzQ5MiwgMCwgNzQ2MDUsIAotICAgIDkyNDgzLCA3NTE0LCA5ODMzNTksIDAsIDE5NDczMSwgNzUwMiwgNzU4NywgNjgzNTMsIDAsIDAsIDYzOTI1LCAwLCA3NjEwLCAKKyAgICA5MjQ4MywgNzUxNCwgOTgzMzYwLCAwLCAxOTQ3MzEsIDc1MDIsIDc1ODcsIDY4MzUzLCAwLCAwLCA2MzkyNSwgMCwgNzYxMCwgCiAgICAgMjE5LCAwLCAwLCA2OTIsIDQzNTg4LCA3NDQzMywgNDE2MzUsIDQzMjQxLCA5Njg4LCA3MTQ3LCA5NTM1LCAwLCA5Mzk5MSwgCiAgICAgMCwgNjQ1MzAsIDAsIDY0NjEwLCAxMTgwNCwgMCwgNzE0OSwgNzQ1MywgMCwgODAxMywgMCwgOTIzMDEsIDAsIDg4OTUsIAogICAgIDUyNTMsIDcwMDI1LCA1NDU4LCAwLCAyODY2LCAwLCAxMjc4NjAsIDY1MTExLCA2ODQzMywgNjcwMCwgMTIwNDg0LCAwLCAKICAgICAxMjA1ODMsIDAsIDg5NjIsIDc3OTYwLCA5NjQxLCA0MzY5NCwgNzA1OSwgOTgzNjY4LCAwLCA5NjA0LCA3ODcwMCwgNzQ0MSwgCiAgICAgNjM4MjYsIDY3OTcwLCAxMTg5NDEsIDY0MzkyLCAxOTQ3MzUsIDk4MzY3OCwgMjg0NCwgOTgzOTMyLCA0MTk3NCwgMCwgCi0gICAgMTIxMzksIDY3OTcxLCAwLCAwLCAzMzU4LCA2NTI5NSwgMCwgMzEwNCwgMTk0NzM0LCAwLCAxOTQ3NjUsIDk4MzIyNywgCisgICAgMTIxMzksIDY3OTcxLCAwLCAwLCAzMzU4LCA2NTI5NSwgMCwgMzEwNCwgMTk0NzM0LCAwLCAxOTQ3NjUsIDk4MzIyOCwgCiAgICAgNTMwOCwgMCwgMjkwLCAwLCAwLCAyODYyLCAyNzkyLCAxOTUwODgsIDk4MzA3MCwgMCwgMzI2OCwgNjY1OTEsIDAsIDY1NTIsIAogICAgIDQyMzY3LCA3MDM1LCAxMjA1NTgsIDAsIDAsIDE4MTQsIDAsIDEwMjQwLCA5MjMzOCwgNzQzMDUsIDAsIDc0NTI4LCA2NTkwMywgCiAgICAgMCwgNDI2NDYsIDc2MDYsIDI1OTEsIDI4MzcsIDQzNDEsIDc3OTU2LCA2NDQ4MiwgMTI3MzM3LCA4MTYzLCA2NTI3MCwgMCwgCkBAIC0xNzg2NCw3ICsxNzg2Niw3IEBACiAgICAgOTM5OTgsIDU1MDYsIDAsIDE5MTEsIDY2NjUyLCAwLCA5OTYxLCA4ODQ1LCA2NjY5OCwgMCwgMTA3OTIsIDg4ODksIDAsIAogICAgIDIwOTgsIDAsIDY0NzUxLCAwLCA2NjYyMiwgMCwgMCwgNzQzNjQsIDAsIDAsIDk4Mzc5NiwgNzQzNjUsIDc1NTIsIDAsIDAsIAogICAgIDY1Mzg0LCA3MjIzLCA0NTU5LCAwLCAxOTU2LCA0MzEzOCwgNzAyNCwgNjU3MjgsIDY0NTAxLCAxMjEwLCAxOTUwNzcsIAotICAgIDY1MTc1LCAxMDE4NCwgNDMxNDAsIDQzNjU0LCAwLCAwLCAwLCAzOCwgODUzMywgNjY2NjksIDExOTEyNCwgOTgzMjg1LCAKKyAgICA2NTE3NSwgMTAxODQsIDQzMTQwLCA0MzY1NCwgMCwgMCwgMCwgMzgsIDg1MzMsIDY2NjY5LCAxMTkxMjQsIDk4MzI4NiwgCiAgICAgOTgzNzgzLCAwLCA0MzU3LCAwLCAxMTk4MzcsIDkxNzg2MywgNzQyMzMsIDk5NjcsIDc4ODg0LCA0Mjg2MCwgMTE5ODM4LCAKICAgICAxMDk0MSwgNjU3MjEsIDY5NjIsIDAsIDAsIDExOTMyNCwgMCwgMTEwMTQsIDEyNzk3MiwgODk0MiwgMTIwMDAsIDY5MjI0LCAKICAgICA5MjI2NywgMTI4NTM2LCAxMTk3NCwgOTIyMTMsIDQyNzcyLCAxMjc1MTgsIDExNjUwLCA1MDEzLCA5MjY2MywgMTI2NTgzLCAKQEAgLTE3ODgyLDcgKzE3ODg0LDcgQEAKICAgICA0MTg2OSwgMTI2MTksIDAsIDEwMTU0LCA5ODMwNDMsIDc0NDM5LCAyMDM5LCAwLCA3NDQ2LCAxNjg0LCA2Mzk3OSwgMTA5NzQsIAogICAgIDQ1OCwgMTIwNjIwLCAwLCA2OTc5MSwgMTI3MTYxLCAxMTkxNiwgNjUwMTYsIDAsIDY5NjcxLCA0MjExNSwgOTgzMTMzLCAKICAgICAxMjI4OCwgNzgwNTcsIDAsIDE0OTMsIDQyMTExLCA3NTUzLCA0MDk3LCAxMjgxOTksIDEzMDgwLCAwLCA2NTgwOCwgNjYxMCwgCi0gICAgNjAzMCwgODA1OSwgNzUwOCwgMTMxMzEsIDAsIDk4MzQyMywgMCwgODc5NCwgNDEyNzgsIDQxNjI5LCAxMjE1NCwgMTI4MTkyLCAKKyAgICA2MDMwLCA4MDU5LCA3NTA4LCAxMzEzMSwgMCwgOTgzNDI0LCAwLCA4Nzk0LCA0MTI3OCwgNDE2MjksIDEyMTU0LCAxMjgxOTIsIAogICAgIDQxMjc3LCA2NDY1OCwgMCwgNjQzODAsIDY2MjUsIDc0MzU0LCAxOTkwNCwgMCwgMCwgMCwgNjUzNzEsIDcwNzgsIDAsIDgzMywgCiAgICAgMCwgNjM2OSwgMCwgMTA5NzksIDQxOTUzLCAwLCA0MTQzNCwgNjA2MiwgMCwgMCwgMTk5MTYsIDY5MTMsIDkzMywgMTM0MSwgCiAgICAgOTg0MiwgNjcyMCwgNjU3NDQsIDAsIDk4MzU5MiwgMTI4Mjk1LCAwLCA3NDA1LCAxMDEwNSwgNjU4MTAsIDAsIDQxNjMyLCAKQEAgLTE3ODk3LDcgKzE3ODk5LDcgQEAKICAgICA2NzQxLCA0MzA0NywgMCwgMTMxODAsIDEyODUxNywgNDE4LCA5MTc5NzIsIDY0NDk1LCAxMDI5NSwgMTAzMjcsIDEwMzkxLCAKICAgICA0MTc1MiwgNzQzMzksIDg2NDEsIDQxNDQ5LCAwLCA3NDEwMCwgMCwgMTA5MTEsIDY5NDIsIDAsIDEwMjQsIDQyODQ5LCAKICAgICA0MTc1MSwgNjk3NzYsIDg5NDEsIDk4MzU1NiwgNDU1NCwgMCwgOTAyMywgMTE2ODUsIDAsIDk5MjgsIDc4NjE3LCAwLCAKLSAgICAxMTQzNywgNDM3NDEsIDkyMTYzLCAxMjA3MDAsIDYzOTY3LCA5ODM0NzUsIDQxMjA2LCAxMjA3MjQsIDkwNDksIDQxMTg1LCAKKyAgICAxMTQzNywgNDM3NDEsIDkyMTYzLCAxMjA3MDAsIDYzOTY3LCA5ODM0NzYsIDQxMjA2LCAxMjA3MjQsIDkwNDksIDQxMTg1LCAKICAgICA0MzE2NiwgMCwgMTE2ODAsIDkyNjE5LCAxMTY4NiwgNzg1NDQsIDY1MjI0LCA0NTY1LCA0NjU1LCAxMTk1NTMsIDAsIAogICAgIDkyMTgzLCA2NDUyMywgMTAzNDMsIDEwNDA3LCAwLCA2NjY3MSwgMTE0NjYsIDAsIDEyODAwMywgNDI4OTAsIDc0MDEzLCAKICAgICAxMjA1MCwgNjgyMDEsIDI4NjAsIDAsIDAsIDAsIDQyNzkyLCA1NzQzLCAxMDQyNCwgMTIwNjUsIDQyODcyLCAwLCA5MjM0MiwgCkBAIC0xNzkxMyw3ICsxNzkxNSw3IEBACiAgICAgNDI2OTAsIDk4ODAsIDQyMDEwLCA3NDgyNCwgNjQ1ODksIDEwMTExLCA2NDg3NSwgMTI3ODgwLCA2ODM5OSwgNDM5OTgsIAogICAgIDExMzYwLCAwLCAwLCAwLCAxMTg4MjYsIDQyMTQ5LCAwLCAwLCAwLCA2NDk0MSwgNzc5MTksIDEyMDQyMSwgMTI4MDc3LCAwLCAKICAgICA1NTI0NywgNDExMCwgNjYwMDUsIDY5NTksIDEwOTI5LCAxMTkxMTAsIDAsIDY2NzAzLCA3NzkyMSwgODYxNywgNDE5ODIsIAotICAgIDYwMjUsIDY5MjQyLCA5ODMxNzYsIDAsIDAsIDAsIDk1OTcsIDQyMDk5LCA0MzE3MiwgOTgzMzY4LCAxMDExNywgOTgzMTY5LCAKKyAgICA2MDI1LCA2OTI0MiwgOTgzMTc2LCAwLCAwLCAwLCA5NTk3LCA0MjA5OSwgNDMxNzIsIDk4MzM2OSwgMTAxMTcsIDk4MzE2OSwgCiAgICAgOTIyOTcsIDQxNjM2LCAwLCAwLCAxMjA2ODEsIDgzMDEsIDAsIDAsIDE4NywgMCwgNjU2NjksIDEyODMzOSwgNDk2MywgMCwgCiAgICAgMTI3NTE3LCAwLCA4OTY0LCA2NTY3NiwgNzc3NSwgMCwgNDE5NDgsIDAsIDAsIDAsIDQxOTQyLCA2NTQ0OSwgMzE2MCwgCiAgICAgMTAwODEsIDEzMjI2LCA0MjEyMSwgNDI0NzUsIDQyNjYzLCAxMjgyMTAsIDQxNzY2LCAxMTkxMTQsIDY1ODgyLCA3ODg0OSwgCkBAIC0xNzkyOCwxNSArMTc5MzAsMTUgQEAKICAgICAxMDcxNiwgMCwgNDI4MjIsIDAsIDY0MzQsIDAsIDY5MzksIDc3NjYsIDY0MzIsIDEyODEwNiwgNjk5MzIsIDkxNiwgNzY5LCAKICAgICA0MTc0MiwgMTE5NjgsIDc0ODA1LCA2NDMzLCA1NTYzLCA1NDcsIDE5NDMsIDY0MzksIDU1NjAsIDQ5OTQsIDQ4NywgCiAgICAgMTI2NTM3LCA0NDk3LCAzNzU0LCAxMjcwNTYsIDEyMDQyNCwgOTAzOSwgMCwgNDE3NzYsIDAsIDg3MTYsIDE1OTUsIDQxNjE1LCAKLSAgICAwLCAwLCA3NDI2MCwgMCwgNDI4NTQsIDQzMjE5LCAxMjg3MDksIDk4MzQ1MiwgMTIxODUsIDEyODg3OSwgNzAwNzIsIAotICAgIDY4MzU1LCA2ODM1NywgMCwgNDI4NTYsIDg2MzQsIDAsIDk4MzM4OSwgNDIwOSwgMTIwNzAyLCAwLCA2NTg3OSwgNDE1MzgsIAotICAgIDY1NjEyLCAxMjc1NDMsIDY2OSwgNTY3OSwgMCwgNjk3ODYsIDkyNTQwLCAwLCA5ODM0NTYsIDU2NzgsIDExODIxLCAwLCAKLSAgICA2NzExLCA0NjAsIDAsIDAsIDk4MzQ1MywgMCwgMTIwNzQ3LCAwLCAwLCA3ODA1MCwgMTE5MDIyLCAwLCA5ODM0NTQsIDAsIAorICAgIDAsIDAsIDc0MjYwLCAwLCA0Mjg1NCwgNDMyMTksIDEyODcwOSwgOTgzNDUzLCAxMjE4NSwgMTI4ODc5LCA3MDA3MiwgCisgICAgNjgzNTUsIDY4MzU3LCAwLCA0Mjg1NiwgODYzNCwgMCwgOTgzMzkwLCA0MjA5LCAxMjA3MDIsIDAsIDY1ODc5LCA0MTUzOCwgCisgICAgNjU2MTIsIDEyNzU0MywgNjY5LCA1Njc5LCAwLCA2OTc4NiwgOTI1NDAsIDAsIDk4MzQ1NywgNTY3OCwgMTE4MjEsIDAsIAorICAgIDY3MTEsIDQ2MCwgMCwgMCwgOTgzNDU0LCAwLCAxMjA3NDcsIDAsIDAsIDc4MDUwLCAxMTkwMjIsIDAsIDk4MzQ1NSwgMCwgCiAgICAgNzc4MiwgOTA0NCwgNDk3NCwgMTE3NjAsIDc4NDk0LCA3NTc3LCA2NTcxMSwgNDE5MTIsIDEyMTYsIDAsIDEyODA3OSwgCi0gICAgNTc5MiwgMCwgMCwgNzg1MDEsIDAsIDI5MzMsIDEyMjQ0LCAwLCA1NjgzLCA5ODMzODQsIDAsIDc4MTE5LCAxNTQ5LCAwLCAwLCAKKyAgICA1NzkyLCAwLCAwLCA3ODUwMSwgMCwgMjkzMywgMTIyNDQsIDAsIDU2ODMsIDk4MzM4NSwgMCwgNzgxMTksIDE1NDksIDAsIDAsIAogICAgIDEyMDM5OCwgNTY4MiwgNjIwNiwgODY3MCwgMTAyNTYsIDU2ODAsIDY5OTM1LCAxMDAwMSwgMTI4NTEyLCA2OTc2OCwgMTQ0OSwgCiAgICAgMTAyNDEsIDc4MjkwLCAxMjgyMjgsIDAsIDEwNTUyLCA2NDM0MiwgNDE5MjIsIDEyODU0OCwgODU4NCwgNjgwMzAsIDU1NjcsIAotICAgIDI3MTcsIDAsIDAsIDU1NjQsIDQyODg2LCA0MTkwOCwgNDI4ODIsIDU1NjUsIDk4MzI0OCwgMTI4MDI2LCAwLCA2NTcwOCwgCisgICAgMjcxNywgMCwgMCwgNTU2NCwgNDI4ODYsIDQxOTA4LCA0Mjg4MiwgNTU2NSwgOTgzMjQ5LCAxMjgwMjYsIDAsIDY1NzA4LCAKICAgICA2NTcwOSwgNTU2NiwgNjk4MDMsIDY1NzA0LCA2NTcwNSwgMTE5MDQsIDQyODc1LCA0MzM3MywgNDI1MzksIDU5NDIsIDg0NjgsIAogICAgIDEyMDU2MSwgMTAzNjEsIDEwNDI1LCA2NTY5NywgNjU2OTgsIDY1Njk5LCAwLCA2NjU5OCwgMCwgNjQ2NjQsIDEwNjQ3LCAKICAgICA3ODcwMiwgNzg3MDMsIDc4NjkwLCA0NTcsIDc4NTAyLCA2NTcwMSwgMTkzNCwgNDMwMDYsIDExOTkwMywgODgwMiwgNzg3MTAsIApAQCAtMTc5NTAsMTIgKzE3OTUyLDEyIEBACiAgICAgMTE5NTcwLCA0MjIzOSwgODUzNiwgNzg3NDAsIDc4MzI0LCA3ODcyNiwgNzQ0MzIsIDcyNCwgMCwgMTQ1NSwgNzg3NDksIAogICAgIDcxODMsIDY0NTgzLCA3ODc0NywgNjg0NDMsIDQxNzUsIDc4NzQxLCA0MzYxNCwgNjk4MDEsIDkzOSwgMCwgNDM1MjAsIAogICAgIDY4NjEzLCA3NDU2OSwgOTE3OTU4LCAwLCA3ODc2MywgNzg3NjQsIDc4NzYwLCAxMDc4OCwgNjA4OCwgNzg3NTksIDc4NzU1LCAKLSAgICAxOTAsIDAsIDEyNTkzLCAwLCA4MTg4LCA2NDQwOCwgMCwgNDQxNywgOTgzMjExLCA5MjI2MSwgNjM3MCwgMCwgNzgyNywgCisgICAgMTkwLCAwLCAxMjU5MywgMCwgODE4OCwgNjQ0MDgsIDAsIDQ0MTcsIDk4MzIxMiwgOTIyNjEsIDYzNzAsIDAsIDc4MjcsIAogICAgIDY4NDQxLCA2OTY1LCAwLCAwLCAxMzIwMSwgMTI4MjA1LCA2OTg5NiwgMCwgNzQzODIsIDczNzgxLCA3OTE4LCA3Mzk4OCwgMCwgCi0gICAgMCwgOTE3ODg0LCAxNzI4LCAwLCA0Mzc2NCwgMTc4LCAxMjk3MiwgOTI2NzksIDAsIDkxNzg4NywgOTI1NjMsIDk4MzM3MywgCisgICAgMCwgOTE3ODg0LCAxNzI4LCAwLCA0Mzc2NCwgMTc4LCAxMjk3MiwgOTI2NzksIDAsIDkxNzg4NywgOTI1NjMsIDk4MzM3NCwgCiAgICAgMCwgNzgzMjcsIDEyMDQwNSwgNjU2OTAsIDAsIDAsIDExOTA1NCwgMCwgOTI1MiwgOTE3ODg5LCA0NjUyLCA2ODM3MSwgMCwgCiAgICAgMCwgMCwgMTMwNjUsIDk5MjMsIDEwODA2LCAwLCAxMTc2MywgNzAwMTYsIDEyMDY4OCwgNjcyMywgNzgxODcsIDAsIDY5OTMsIAotICAgIDAsIDAsIDgzMzMsIDAsIDAsIDExMzkwLCAwLCA3NDQ2NCwgMCwgOTIzMjAsIDc0MDgwLCA5ODMzMDcsIDY5OTExLCAxMTkxMCwgCisgICAgMCwgMCwgODMzMywgMCwgMCwgMTEzOTAsIDAsIDc0NDY0LCAwLCA5MjMyMCwgNzQwODAsIDk4MzMwOCwgNjk5MTEsIDExOTEwLCAKICAgICA5MjU1OSwgODI3OCwgODk2MywgNDAzNCwgMTI4NTYwLCAwLCA2NTM0NCwgMTIwNTE3LCA0MTc0NywgMCwgMCwgODY3NywgMCwgCiAgICAgMTI3MDcsIDkzNTAsIDY2MDM3LCAxMjgxODAsIDg4MzYsIDEyMzE1LCAxMjc0NywgODMwMCwgOTgzNzQxLCAwLCA3NDkxLCAKICAgICA4ODU2LCA3MTM2MSwgMCwgNDMxNTAsIDEyNzc2OCwgMTIwNDA0LCA2NTM4OSwgMTIwNDAyLCAxMjA0MDMsIDEwODEzLCAKQEAgLTE3OTgyLDI3ICsxNzk4NCwyNyBAQAogICAgIDExNiwgMTI5OTgsIDEyMiwgMTIxLCAxMjAsIDExMSwgMTEwLCAxMDksIDEwOCwgMTE1LCAxMTQsIDExMywgMTEyLCAxMDMsIAogICAgIDEwMiwgMTAxLCAxMDAsIDEwNywgMTA2LCAxMDUsIDEwNCwgNjQzNiwgNzM5NzQsIDUzNCwgNDEyMTIsIDc3OTMxLCAxNTM2LCAKICAgICA2NDA5MywgNzM5NzAsIDc3OTMwLCAxMjcxNTcsIDAsIDYwMjAsIDEyNzE2LCAxMjcxMTIsIDEyNzQ0LCA0NzUsIDEyMDM5NCwgCi0gICAgMTMyNjYsIDEyNzgxMywgMTI3MTExLCAwLCA3MzkyNiwgMCwgMTA2NDUsIDEyMTIsIDY1NDMsIDk4MzI5OSwgODEzNCwgCisgICAgMTMyNjYsIDEyNzgxMywgMTI3MTExLCAwLCA3MzkyNiwgMCwgMTA2NDUsIDEyMTIsIDY1NDMsIDk4MzMwMCwgODEzNCwgCiAgICAgMTI4MDI4LCAyOTEzLCA3Mzg3MCwgMTI3MTEzLCAxODY2LCAwLCAxOTUwOTUsIDAsIDg5MjMsIDE2NDUsIDEyMDU5LCAKICAgICA2NjU4NSwgNzEyOTcsIDMxOTYsIDAsIDAsIDU5MzUsIDEyNTAsIDEyNzA2NiwgODE3NCwgOTc4NywgNjczMywgOTg1OSwgCiAgICAgNzkxNiwgOTg2MSwgOTg2MCwgNTI1OCwgMTg4MiwgMTg5MiwgNjczMSwgMTA4ODIsIDQwNSwgMTE0NTQsIDczOTExLCAwLCAKICAgICAxMjg3ODEsIDQxMTY5LCA4OTM5LCA0MTI0NSwgMCwgNDExNzAsIDE0NTQsIDExMzY5LCA2NDc3LCAxMjE1NywgMCwgMCwgMCwgCi0gICAgNDExNzIsIDc4NTUsIDAsIDAsIDEwNDgwLCAwLCAwLCA3NzkzNiwgODI2NCwgMTI2MTAsIDk4MzMwMCwgNjQ1LCAxMjY2MTYsIAorICAgIDQxMTcyLCA3ODU1LCAwLCAwLCAxMDQ4MCwgMCwgMCwgNzc5MzYsIDgyNjQsIDEyNjEwLCA5ODMzMDEsIDY0NSwgMTI2NjE2LCAKICAgICA3NjA5LCA0MDk3MywgNjk5NDMsIDczODMzLCA2OTk0OCwgNTgyNCwgOTg0LCA3NzkxOCwgMTA2ODgsIDU4NTEsIDAsIDc3MjksIAogICAgIDczOTgyLCAxMjA1MTgsIDAsIDE5NTA4NiwgNDMzNjksIDAsIDEyODE0MCwgNjg0MTUsIDk4MzA5MywgNDUzOCwgMTIwNDA2LCAKLSAgICA0MzE0MSwgMCwgOTgzMjA4LCA3NDIxNCwgNzM4ODYsIDAsIDAsIDExODkwMiwgNDMwMDUsIDc4NDQ4LCA5NTUyLCAwLCAwLCAKKyAgICA0MzE0MSwgMCwgOTgzMjA5LCA3NDIxNCwgNzM4ODYsIDAsIDAsIDExODkwMiwgNDMwMDUsIDc4NDQ4LCA5NTUyLCAwLCAwLCAKICAgICA5ODMxNTksIDEyOTk3LCAwLCAwLCAwLCAwLCAyMzgxLCAxMjg4MywgMTA5OTQsIDEwNTI5LCA0MTkwNiwgMCwgMCwgMCwgCiAgICAgMTI0MjUsIDEwNjYxLCAxMDg1NiwgOTYxNCwgMjQyOCwgNDE0NzgsIDg1ODIsIDEwMDY0LCA3MzkzMCwgMCwgMCwgMCwgCi0gICAgNjQ4OTYsIDExOTE2MiwgMTk1MiwgOTIxODEsIDg0NTUsIDEwMDgyLCAxMTU3NSwgOTgzNDgyLCAxMTk1NjYsIDAsIDEyODA4LCAKKyAgICA2NDg5NiwgMTE5MTYyLCAxOTUyLCA5MjE4MSwgODQ1NSwgMTAwODIsIDExNTc1LCA5ODM0ODMsIDExOTU2NiwgMCwgMTI4MDgsIAogICAgIDEyMTgzLCA2MTQ1LCAxMTg5NTUsIDY0OTI5LCA5MjQzMywgMCwgOTgzMTkzLCA0MzE4NiwgNDI1MDksIDAsIDM5MjIsIAogICAgIDkxODcsIDk4MzYxNCwgMCwgMTAxOTEsIDExOTA1NywgMTE3NTIsIDMzNTMsIDkzNTgsIDAsIDcxMzY2LCA2NjY4MCwgCi0gICAgMTIwMDkwLCA4MjQ4LCA3OTMxLCA4NTU4LCA5Nzk1LCA2ODM4MCwgOTgzMjg5LCAwLCAxMjAwODIsIDEyMDA4MSwgMTIwMDg0LCAKKyAgICAxMjAwOTAsIDgyNDgsIDc5MzEsIDg1NTgsIDk3OTUsIDY4MzgwLCA5ODMyOTAsIDAsIDEyMDA4MiwgMTIwMDgxLCAxMjAwODQsIAogICAgIDQxMDI3LCAxMjAwODYsIDAsIDEyMDA4OCwgNzM2NiwgNzAxOSwgMTIwMDczLCAwLCAxMTc1MSwgMTIwMDc4LCA3ODI5NCwgCiAgICAgNjQ2NTcsIDg2NTcsIDEyMDA0OCwgODU5NCwgMTIwMDY4LCAwLCAwLCAxMjAwNjksIDEyMDA3MiwgMTIwMDcxLCAwLCAwLCAKICAgICA0MzE1NCwgNDEwMjksIDAsIDExMzMyLCA2NTM4MCwgNzcyOCwgOTQwNzcsIDExMjk0LCAwLCA2NjY2NSwgNzg1MSwgMCwgCiAgICAgODM3NSwgODY5OSwgMCwgNDI1MjQsIDAsIDkwODUsIDk0MDQxLCA3NTA0LCA5MzI3LCA2MTYwLCAxMjgwOTUsIDk4Mzg1NSwgCiAgICAgMCwgODA4OCwgMCwgNzQwMTIsIDkyNTAwLCAwLCA0NDM5LCA2OTI2LCA5ODMwNDcsIDEyOTI0LCAxMjgyMjcsIDQyMzY5LCAKLSAgICA0MzUwLCA2NTQ5MSwgNjUxNDUsIDkwNDEsIDQzNTU5LCA2NDU3NywgMTA4MjYsIDAsIDExMjk2LCA5ODMyNzUsIDAsIDAsIAorICAgIDQzNTAsIDY1NDkxLCA2NTE0NSwgOTA0MSwgNDM1NTksIDY0NTc3LCAxMDgyNiwgMCwgMTEyOTYsIDk4MzI3NiwgMCwgMCwgCiAgICAgNjU4MjUsIDk1NzcsIDY4MTk5LCAwLCA2NDY3MCwgOTgzMTIxLCA3ODA1NiwgNjc5MywgMTEyOTUsIDAsIDc4MDUzLCAKICAgICA3Mzg3MiwgMCwgMCwgMTA5MDIsIDAsIDAsIDc4MDcwLCA3ODA2OCwgMTA0NzIsIDI5OTUsIDAsIDAsIDY0NjgyLCAyMzcxLCAKICAgICA3ODA2OSwgMTIwODA4LCAyNTksIDEwMDksIDkyMTcxLCAyNDAyLCAyMzMzLCA2NDQwLCAxOTQ3NDEsIDAsIDY1MTI1LCAKQEAgLTE4MDE2LDEzICsxODAxOCwxMyBAQAogICAgIDExNzcyLCAxMzA0MSwgNTkyOCwgNDUyNSwgMTA2NTgsIDY1OTExLCAxMjY2LCAxMDE4MCwgMCwgMTI4NTg0LCAxMjYyMiwgMCwgCiAgICAgMCwgMCwgMTk0NzE0LCAxMjcxMzksIDEzMzEwLCA3NzMsIDE5OTMzLCAxNTM5LCAwLCAxMjY5ODMsIDQyNzMxLCA2Nzk3MiwgCiAgICAgMCwgMCwgMCwgMzA1MSwgNTg2MiwgNzgyMywgOTI0NzgsIDAsIDEyMDQxMSwgMzI1MCwgNDM5OTEsIDY5Njg3LCA2NjY0OSwgCi0gICAgOTUxMCwgNjYyMzcsIDk4MzI5NCwgMCwgNDEwNjYsIDY0NjczLCA5MTc5NjMsIDkxNzk2NCwgMCwgMzUwNSwgODcwNywgCisgICAgOTUxMCwgNjYyMzcsIDk4MzI5NSwgMCwgNDEwNjYsIDY0NjczLCA5MTc5NjMsIDkxNzk2NCwgMCwgMzUwNSwgODcwNywgCiAgICAgOTE3OTY4LCA2NzI1LCAxMjgwMTMsIDkxNzk3MSwgOTIzMTQsIDM0NzEsIDkxNzk3MCwgNTQ3OSwgODgyLCA2Njg2LCAKLSAgICAxMTk1ODQsIDExNjEzLCAxMjA3NzIsIDQyNzU0LCAwLCA5ODMyOTgsIDkyNjk2LCAwLCAwLCAwLCAxMjg1MjMsIDMyMjUsIAorICAgIDExOTU4NCwgMTE2MTMsIDEyMDc3MiwgNDI3NTQsIDAsIDk4MzI5OSwgOTI2OTYsIDAsIDAsIDAsIDEyODUyMywgMzIyNSwgCiAgICAgOTE3OTk2LCA0NDMzLCA0MTE1NiwgNDM5NzMsIDQzMTczLCAxNDQzLCA0MzgxLCAwLCAwLCAxMDkyNiwgMTE3NTYsIDExNzU3LCAKICAgICA2NDg3OSwgOTE3OTQ5LCA5MTc5NTAsIDEyNzg0OCwgMTMyMjcsIDAsIDEwMDIxLCA1MTYwLCAxMzg3LCAwLCA5MTc5NTMsIAogICAgIDQxNDE4LCAwLCA2NTkxNCwgNjcyMSwgMjE3LCA5MTc5NTUsIDkxNzk2MCwgOTE3OTYxLCAxMDQ0MywgMTA3ODksIDQxMTU4LCAKLSAgICAxMTkyNTcsIDQyNzQsIDk4MzI5MiwgNDE0ODMsIDAsIDQxMjUwLCAwLCA0MjE3OSwgMCwgNTkzMSwgMTE3NDQsIDY5MjMyLCAKKyAgICAxMTkyNTcsIDQyNzQsIDk4MzI5MywgNDE0ODMsIDAsIDQxMjUwLCAwLCA0MjE3OSwgMCwgNTkzMSwgMTE3NDQsIDY5MjMyLCAKICAgICAwLCA0MTI1MiwgNjY2ODIsIDAsIDExOTYzNywgNDEyNDksIDEzNjYsIDY0NjM1LCA2NTA0NywgMTI0NjYsIDAsIDAsIDQzOTcsIAogICAgIDEyODAzNywgMTI4MzM2LCA0MTI5NiwgOTU0NSwgNDEyOTEsIDEyODA0OSwgMCwgNDE0ODUsIDM1MTEsIDQxMjgyLCA1OTIzLCAKICAgICAxMDQwMCwgMCwgMTI4ODE4LCA3NjAsIDAsIDEyMDg4LCA1Nzg2LCAwLCA0MjI1NiwgMTE5ODY5LCAxMTk4NjAsIDQxNywgCkBAIC0xODAzMiw3ICsxODAzNCw3IEBACiAgICAgMTE5NTc2LCAwLCAwLCAxMzc1LCA2NjcwNSwgNDM1NzMsIDY1MjYwLCA0MjA2MywgMCwgNDI4MTEsIDEwMzEyLCA2OTg0NSwgCiAgICAgMTIwNzk0LCA3ODQwLCAwLCA0MzYzMCwgMTAyNTIsIDAsIDEyODEwNCwgNDMxODUsIDAsIDQzOTYsIDAsIDExOTg4MCwgCiAgICAgMTA3NjksIDk2NzYsIDExOTA0MSwgMCwgOTc1MywgMCwgODk0NCwgMCwgMCwgMTA0NzMsIDAsIDAsIDYwNzIsIDQzMDI1LCAKLSAgICAxMDI5OSwgMCwgMCwgMTIwNjA4LCA2NjMyNiwgOTgzNDM5LCAxMjc3OTQsIDAsIDQzODExLCA5MzMwLCAxMjA1OTYsIDcyMjIsIAorICAgIDEwMjk5LCAwLCAwLCAxMjA2MDgsIDY2MzI2LCA5ODM0NDAsIDEyNzc5NCwgMCwgNDM4MTEsIDkzMzAsIDEyMDU5NiwgNzIyMiwgCiAgICAgMTAyODMsIDEwMzE1LCAxMDM3OSwgNDk5NiwgOTgzNzczLCAxMzI4MSwgNjY1MTcsIDc4NjUsIDEwMDg3LCA3ODM0MywgMCwgCiAgICAgNzgzNDcsIDAsIDAsIDc1NjUsIDY2MzYzLCAxMjk1MiwgNjQ4MDYsIDQzMTgwLCA3NzkyOCwgNzQxNCwgNzc5MjksIDQzOTgyLCAKICAgICA3NDI4OCwgNjIyLCA3NDAyMywgODg1LCA0MzQwNSwgMTYwMiwgMCwgMCwgODUyLCAwLCAxMjE2MCwgMCwgMTAyMTIsIApAQCAtMTgwNjMsNyArMTgwNjUsNyBAQAogICAgIDc4MzAsIDExNjUxLCAxMzA5MywgNjQwMDIsIDAsIDY1NzQyLCAxMjg3NCwgMTE5NTk3LCAxMTU5MCwgMCwgNzQwNDgsIAogICAgIDEyODM1MCwgODU5NSwgMCwgOTE3OTQ3LCA0MzcwMywgMTMwOTcsIDAsIDY0NjQzLCAxMzI4MywgMTI2OTcsIDAsIDEyMzgxLCAKICAgICAzNDg4LCA1OTMzLCAxMDAzMywgNzM3MzgsIDY2MjQxLCA2NTU3MCwgMCwgMTIyOTcsIDExOTE1MywgMTk1NSwgMCwgNTM0OSwgCi0gICAgNDI1MzgsIDAsIDAsIDc0MTEsIDk0NjIsIDkxNzU1NCwgMCwgMCwgMCwgNDI3MzYsIDAsIDU3NTYsIDk4MzIxOSwgNzYzOCwgCisgICAgNDI1MzgsIDAsIDAsIDc0MTEsIDk0NjIsIDkxNzU1NCwgMCwgMCwgMCwgNDI3MzYsIDAsIDU3NTYsIDk4MzIyMCwgNzYzOCwgCiAgICAgNDE2NDIsIDQyNzY0LCAwLCA0MzEwOSwgNzYzNywgNTc1MiwgNzQwMzcsIDAsIDczODMyLCAxMjg4MjcsIDEyMDYzNSwgCiAgICAgMTI4MjMxLCA3ODMzNCwgMCwgNzYzNiwgNjUxNzEsIDkxMjQsIDAsIDc4ODkyLCAxMjA3OTgsIDI5MSwgMCwgMCwgMjAyNywgCiAgICAgNjYyMzAsIDEwMDgwLCA3ODEzNiwgMTA0MDMsIDAsIDQ2NDAsIDY0NzEzLCAxMDIyNCwgMTIwNDI5LCA0MjUxMiwgMTIwNDMxLCAKQEAgLTE4MTEwLDE0ICsxODExMiwxNCBAQAogICAgIDAsIDQ5MTYsIDAsIDM4MCwgMTA5NTgsIDY2NTYzLCA3Nzk1NSwgNjk3NzMsIDk3NzMsIDEzMTY3LCAxMjkxOCwgNDEwOTYsIAogICAgIDczOTgwLCA2OTI0NSwgNzgyNTQsIDkxNzg5MywgMTA2ODQsIDAsIDkxNzg5NiwgMCwgNzk0NiwgMTI1NDEsIDgxODIsIAogICAgIDY3NTg2LCA2OTc4MCwgMCwgMCwgMCwgMCwgOTAwNSwgMTIyNSwgNjYzMCwgMCwgMCwgMCwgNjgwMTEsIDg4NDcsIDAsIAotICAgIDY1ODc2LCA1NTM1LCA4MzI5LCA3NDU5MCwgOTgzMjA2LCA5MjYwOSwgMCwgMCwgMzEyNywgMjU5NSwgNjU3MTMsIDQyMDEzLCAKKyAgICA2NTg3NiwgNTUzNSwgODMyOSwgNzQ1OTAsIDk4MzIwNywgOTI2MDksIDAsIDAsIDMxMjcsIDI1OTUsIDY1NzEzLCA0MjAxMywgCiAgICAgOTgzODQ5LCA1NjA3LCA0MTA4OSwgMCwgMCwgNzQyNTYsIDI2NjUsIDExMzA0LCA0Mzc1MSwgNzQyMDAsIDQ5NzAsIDg3NjQsIAogICAgIDEyMDQ1OSwgODkzNCwgOTI3MjYsIDQxNTY2LCA0NDkyLCAwLCA2NTAxMSwgNDEwOTAsIDAsIDAsIDExODgsIDcyNTQsIAogICAgIDExMDAsIDAsIDEyODMwMSwgNDEwODEsIDI5MTIsIDExNzQ5LCA2OTc5MiwgMCwgNjgwMTksIDM1NzIsIDEwMDIzLCA0OTU5LCAKLSAgICAxMzA3OSwgMCwgOTgzMjY4LCA5NzI5LCAwLCAwLCAwLCA0MzM2MSwgMCwgMCwgMTE4MDMsIDc5OTYsIDk5MDcsIDQxNDUwLCAKLSAgICAxMzMwNCwgMTI4MjkwLCAxMjcyNjAsIDQxNDUxLCAwLCAxMTA5NSwgODI3MywgMTI3NTMzLCAzNDUxLCA5ODMzMDEsIDk3MiwgCi0gICAgNDE0NTMsIDk4MzQzNCwgMCwgNzM4ODMsIDY4MDIyLCA3Mzk0NSwgOTgzNzI2LCAyMjg4LCAxOTk1NSwgOTUzOCwgMCwgCi0gICAgNjk4MDcsIDAsIDAsIDAsIDAsIDExMzk2LCA5ODM0MzIsIDExMDE5LCAwLCAwLCAwLCA2ODAyMCwgNDEwNzgsIDcxMzY1LCAKKyAgICAxMzA3OSwgMCwgOTgzMjY5LCA5NzI5LCAwLCAwLCAwLCA0MzM2MSwgMCwgMCwgMTE4MDMsIDc5OTYsIDk5MDcsIDQxNDUwLCAKKyAgICAxMzMwNCwgMTI4MjkwLCAxMjcyNjAsIDQxNDUxLCAwLCAxMTA5NSwgODI3MywgMTI3NTMzLCAzNDUxLCA5ODMzMDIsIDk3MiwgCisgICAgNDE0NTMsIDk4MzQzNSwgMCwgNzM4ODMsIDY4MDIyLCA3Mzk0NSwgOTgzNzI2LCAyMjg4LCAxOTk1NSwgOTUzOCwgMCwgCisgICAgNjk4MDcsIDAsIDAsIDAsIDAsIDExMzk2LCA5ODM0MzMsIDExMDE5LCAwLCAwLCAwLCA2ODAyMCwgNDEwNzgsIDcxMzY1LCAKICAgICAyNjEsIDU5MjcsIDc3OTEsIDAsIDczNjIsIDAsIDEwNjk2LCAwLCA2MDczLCA5ODM4LCAxMTg5MjAsIDAsIDYwNzUsIAogICAgIDkzOTk1LCAyODIsIDEyNjUxMCwgNjQzNywgNzQwNzgsIDEyODAwMCwgOTgwMSwgMCwgNzQxNzcsIDAsIDAsIDM0NzQsIAogICAgIDExODc4NywgMCwgMTIwNjU1LCA2MDgxLCAwLCA3ODg3NCwgNzQwNzYsIDc4ODc5LCAwLCAwLCAwLCAwLCAwLCA4NzUxLCAKQEAgLTE4MTM4LDcgKzE4MTQwLDcgQEAKICAgICA0NTY0LCAwLCAwLCA3NDI3MSwgNzM3NTMsIDgzNzQsIDk4MzE1NiwgMCwgNjgyOSwgNTIyNSwgMTI4ODA3LCAxMjczODUsIDAsIAogICAgIDAsIDExOTYxNSwgMCwgNzQ3OTMsIDU2MjYsIDczODA3LCAxMTc3MSwgNzQwNzUsIDEyNzIzNiwgMTI4MDE5LCA0MjYxNCwgCiAgICAgNTM1MywgNTYyNSwgNzQxNzksIDAsIDAsIDEwMTAsIDY0NTcyLCA0MTc4MCwgNDI2MjMsIDY0Mjc3LCA2OTk0MiwgNjk1MiwgCi0gICAgOTgzMjY0LCAxMjA3NTIsIDc4NzYyLCAyNTkwLCA1NjI5LCA2NTU1MiwgNzU1MSwgMTAzMjUsIDU2MzIsIDEwNDcxLCAKKyAgICA5ODMyNjUsIDEyMDc1MiwgNzg3NjIsIDI1OTAsIDU2MjksIDY1NTUyLCA3NTUxLCAxMDMyNSwgNTYzMiwgMTA0NzEsIAogICAgIDEyMDAzOCwgMTIwMDI3LCAxMjAwMjgsIDEyMDAyNSwgNTYyOCwgMTIwMDMxLCA5NzAsIDEyMDAyOSwgNDc3MiwgMjQwMCwgCiAgICAgNTYyNywgMTIwMDE3LCAxMjAwMTgsIDEyMDAyMywgNjQyNzUsIDEyMDAyMSwgODc4NiwgMCwgMjAzLCAwLCAwLCAwLCAwLCAKICAgICA3ODM1MCwgMCwgNjQzNzgsIDQyMDU0LCAwLCAwLCA1NTQsIDExOTY0OSwgMTEzNTgsIDAsIDEyMTgyLCA0MjA0OCwgMTEwNjUsIApAQCAtMTgxNzUsMTAgKzE4MTc3LDEwIEBACiAgICAgNjEyLCAwLCA2NDQwMSwgNjY0NDgsIDY4Mzc2LCAwLCAxNjc0LCAwLCA1ODIzLCA5ODMxNjMsIDEyMjgwLCAwLCA1NDAsIAogICAgIDc0NTY0LCAxMTkwMTcsIDAsIDg0MzIsIDAsIDExMDczLCAwLCA2NDMxNiwgMCwgMCwgODIwLCA0MTc0MSwgMCwgMTIwNjY3LCAKICAgICAwLCA2NDY4NCwgMTI2OTkyLCAzMzU5LCA3ODAwLCA2OTkzNCwgNjUxNzcsIDYyMjYsIDM1MywgMTIzOTYsIDAsIDExOTYxMiwgCi0gICAgNjQ3NDIsIDEyODY4MiwgMTIwMjgyLCAwLCA5ODM0NDIsIDEyNDEyLCAxOTk0MSwgMCwgMTIwMjc3LCA3ODg0NywgMTg4NCwgCisgICAgNjQ3NDIsIDEyODY4MiwgMTIwMjgyLCAwLCA5ODM0NDMsIDEyNDEyLCAxOTk0MSwgMCwgMTIwMjc3LCA3ODg0NywgMTg4NCwgCiAgICAgOTQ4MSwgNDI0MTgsIDcwMDU5LCA0MTE1NywgMCwgMTE5NSwgNjQ4OTgsIDc5MjQsIDAsIDQxMTUxLCAyMDEwLCAwLCAKICAgICA0MTMyOCwgNDIzNDQsIDAsIDEyNDA5LCAwLCA0MzYwLCAxMjcwMDksIDk3MzksIDEyODU1MCwgNjk5MzMsIDczOTIxLCAwLCAKLSAgICA0MjUyMSwgODUzOSwgOTgzNzE2LCAwLCAxMTg5ODYsIDAsIDQ3ODgsIDAsIDY4MDIzLCA2NTczNCwgOTgzNDQ3LCA0Mzc5MCwgCisgICAgNDI1MjEsIDg1MzksIDk4MzcxNiwgMCwgMTE4OTg2LCAwLCA0Nzg4LCAwLCA2ODAyMywgNjU3MzQsIDk4MzQ0OCwgNDM3OTAsIAogICAgIDAsIDEzMDc1LCA3NDQyOSwgOTQwNjMsIDY0NTY5LCA0MzUzMiwgMTA4MzcsIDI0OTIsIDEyNzE5NywgMTE4OTAxLCA2ODYzNywgCiAgICAgNDExMzYsIDQzNzg1LCAxMTgxMywgOTY0OSwgNDExNTQsIDExOTYxNywgNTEyOCwgNDAzOCwgNDExNDMsIDY1NjA0LCAKICAgICA2NDg1OSwgNDE1OTIsIDY3NzEsIDE2NDgsIDU0MzUsIDkxNzgzNywgNjczNCwgNDEzNDMsIDExOTg0OCwgNjU0MzksIApAQCAtMTgyMTQsNyArMTgyMTYsNyBAQAogICAgIDQxNDYxLCAxMjg4MjMsIDAsIDEyNzkxMiwgMCwgODgxOSwgMTI2NjMsIDAsIDQxMTg0LCA3NDAxNCwgMjMyLCA3NDgzNSwgCiAgICAgMTIwNjQ2LCA5MTY4LCA2NTc4NiwgMCwgMCwgMCwgOTA5NCwgMCwgMTE3NTgsIDY4NDI1LCAwLCAxMDY0LCA0MjQ2NywgCiAgICAgMTI4MDQ0LCAxMDExNSwgMTk5MjQsIDkyNzExLCAwLCA3ODYyLCA2NDU1MSwgMTMyMjQsIDg1MTYsIDQxODYyLCA2NjY1MCwgCi0gICAgNzU2MSwgNzg2MTgsIDY5NzkzLCAxODc4LCAwLCA5ODMyNjEsIDI5MTEsIDAsIDQxMTc4LCA1NDI3LCA2NDgyMywgMCwgMCwgCisgICAgNzU2MSwgNzg2MTgsIDY5NzkzLCAxODc4LCAwLCA5ODMyNjIsIDI5MTEsIDAsIDQxMTc4LCA1NDI3LCA2NDgyMywgMCwgMCwgCiAgICAgMzc4NywgNDExNzQsIDAsIDQxNDU4LCAwLCA0MTQ2MywgNDI0MTMsIDExMjkyLCAyNDA2LCA3NzUsIDAsIDY1NTg0LCAKICAgICA2OTkyMywgNjA3NCwgOTYxOCwgMTI4NjY4LCA5ODM5NDMsIDQzNDQwLCAwLCAxOTQ5MDEsIDQxNDM2LCAzNjU2LCAwLCAKICAgICAxMjA2MDAsIDQxNDU2LCAwLCAxNTk5LCAxMTMzMywgMCwgNjcwMywgODUxMywgMCwgMTYxMywgMCwgNjg0NTYsIDEyNTk4LCAKQEAgLTE4MjM2LDcgKzE4MjM4LDcgQEAKICAgICA0MTI4NywgOTI2MTAsIDAsIDAsIDQyMjE5LCAxMjgyNTcsIDAsIDQxOTg3LCA0MTY3NiwgOTgzMDU5LCAxMjA4MjMsIAogICAgIDk4MzE0NCwgNDE2NzAsIDAsIDkyNTkwLCAyNzk2LCA1NTI5MSwgMTE2ODMsIDk5MDIsIDc0NTIxLCA2Nzk4OCwgMTE0NTEsIAogICAgIDk4MzExMSwgMTI4ODIyLCA0MjYzMSwgMjM1OSwgMCwgNjc4NDQsIDc0MTY0LCA0MTIzOCwgNTQ4LCAxMTQwNSwgMTMxMzMsIAotICAgIDY0MzY4LCA5ODMyMzMsIDEyODc5NSwgMCwgMzk3LCA0MzYyMiwgNDIxMzksIDk1NDcsIDk1OTAsIDEyODIzOCwgMTYxNCwgCisgICAgNjQzNjgsIDk4MzIzNCwgMTI4Nzk1LCAwLCAzOTcsIDQzNjIyLCA0MjEzOSwgOTU0NywgOTU5MCwgMTI4MjM4LCAxNjE0LCAKICAgICA0MzY2MSwgNjQzNTYsIDY2MzA3LCA2NjUxLCAxMzU4LCAwLCA0MjgsIDk2MjAsIDE0NjYsIDc4MTEyLCAxMDk4MiwgCiAgICAgMTE4ODMxLCAxMzMzLCA3MTA0LCA0MDcsIDY0MjUsIDEyODgzNCwgNzQyNTMsIDAsIDAsIDAsIDU4MDQsIDExOTc2LCA4NTU0LCAKICAgICA5MjcyMSwgMCwgMCwgOTA1NywgNDIyOTQsIDQxMjE4LCAwLCAwLCA3ODEzNywgMTg4MywgMTA5NTIsIDgwNDgsIDc4MTQyLCAKQEAgLTE4MjUwLDcgKzE4MjUyLDcgQEAKICAgICA2NjMxNSwgMjEwNiwgMTIwMjIyLCAxMTI3MywgMCwgNDMwMDQsIDc1NDEsIDAsIDAsIDk2MSwgNjQzMDcsIDY2MzI0LCAKICAgICA2NDkwNiwgMTI4NTkxLCAzMTA2LCA2NTkxNywgNDEyODQsIDE2OTYsIDAsIDg5MSwgMTIxMDUsIDAsIDQyNjI0LCAxMjgwMiwgCiAgICAgMzI2NCwgODgyNCwgMTMyNjgsIDQzMDAzLCAxMDkzNiwgMCwgMCwgMCwgMTk0ODI2LCA5MjY4OCwgMCwgMjMyMiwgMTIwMzcxLCAKLSAgICA5ODM1ODQsIDExNDQ5LCAxMjgxODcsIDQyODY4LCA0MTI4NSwgMzU0NywgMCwgMCwgMTI4NzkzLCA5ODMzOTAsIDQzMjE2LCAKKyAgICA5ODM1ODQsIDExNDQ5LCAxMjgxODcsIDQyODY4LCA0MTI4NSwgMzU0NywgMCwgMCwgMTI4NzkzLCA5ODMzOTEsIDQzMjE2LCAKICAgICA2MDg5LCA3ODY4MiwgMCwgMTIwNTc4LCA0MTcwLCAxMDI5LCAxMjc3NjEsIDEyNzAzNiwgMTE5MjI0LCA0MjM3NCwgMCwgCiAgICAgNzQ0LCAwLCAwLCAwLCA2NTgyMywgMTI3ODI2LCAwLCAzNTUxLCAwLCAwLCA0NjIzLCA1NTI2OCwgMCwgNDU5OCwgOTgzMTYyLCAKICAgICA2NTEzNiwgMTI3MTM2LCAwLCAwLCAxMDg1MSwgMCwgNjE3OSwgOTI2MDIsIDYxODAsIDAsIDExOTUyLCAxMjA3NzgsIApAQCAtMTgyNzcsOCArMTgyNzksOCBAQAogICAgIDYzNTIsIDQxODkyLCAwLCA3NTU1LCAxMzEwMywgNTQwOCwgMjgxNywgMTIxNCwgNjk5MTksIDkyMzM1LCA5ODMxMjUsIDAsIAogICAgIDAsIDAsIDEyNzE5NSwgNzk1NywgODY4OSwgNjQ3MjMsIDEwNTYsIDQyODk2LCA3NDE0NywgMTk0ODEzLCAwLCA1NTI4NiwgCiAgICAgNzA3MywgNjU4NTAsIDEyMzI3LCA5ODM5MzksIDExOTAyOCwgMCwgMCwgMCwgMjM0MSwgODQ1MCwgODQ4NCwgODQ3NCwgCi0gICAgOTgzMjUyLCAwLCA3MDA3OSwgODQ2MSwgMTI4MTAyLCAxMjE1MywgMTI3OTksIDAsIDQzNzA5LCA0MzcwOCwgOTQ1MSwgCi0gICAgNzU3MSwgMTMwNzMsIDAsIDAsIDY4MSwgOTgzMjQ2LCA3MDMsIDAsIDMyNzIsIDg3ODEsIDEyODk0LCA3MDA3NywgMTE3MDksIAorICAgIDk4MzI1MywgMCwgNzAwNzksIDg0NjEsIDEyODEwMiwgMTIxNTMsIDEyNzk5LCAwLCA0MzcwOSwgNDM3MDgsIDk0NTEsIAorICAgIDc1NzEsIDEzMDczLCAwLCAwLCA2ODEsIDk4MzI0NywgNzAzLCAwLCAzMjcyLCA4NzgxLCAxMjg5NCwgNzAwNzcsIDExNzA5LCAKICAgICA5MjI4OCwgNzQ0NDYsIDAsIDkyNTMyLCAwLCAxMTMzOCwgMTIwNzY4LCAzMjc2LCAwLCAwLCA2NTkyOCwgMCwgMCwgNjUwMjEsIAogICAgIDY0Nzk1LCA3NDU3NCwgMCwgMTAwNDcsIDc4ODE0LCAzMjYyLCA3ODgxMSwgNDI3MTEsIDAsIDAsIDY4NDc4LCAxNjMsIDU3NiwgCiAgICAgOTg5NSwgMTY1NSwgNzg4MTcsIDc0NTkxLCA3ODgxNSwgNzg4MTYsIDk4MzEyMiwgMCwgMCwgMCwgMTAwMzksIDAsIApAQCAtMTgyODgsNyArMTgyOTAsNyBAQAogICAgIDAsIDcxMzYyLCA0NjE5LCAxMTg5NTQsIDY2NTQsIDczNzY5LCA3NDQyNiwgMCwgMTIwNDAsIDY1Njg5LCAxMDEyOCwgCiAgICAgNjUxMTgsIDAsIDExOTE1MSwgNzQyMDUsIDkyNjUxLCAwLCAyNDAxLCA2ODE0NCwgODc5MiwgOTgzNjM5LCAwLCA2NTQ1NSwgCiAgICAgMCwgOTIyNDYsIDAsIDExOTEyOSwgMCwgMTI4ODYsIDEyNzkyMCwgNjY2MjQsIDAsIDQzNTU3LCAxMDMwMCwgMTAxNjEsIAotICAgIDEwMzk2LCA3NDEzNSwgOTgzNDQ1LCAxMTg5NDUsIDc4MTE4LCA3Mzg1MSwgMzAxMCwgNjQ0MSwgNzgxMjIsIDE0NTgsIAorICAgIDEwMzk2LCA3NDEzNSwgOTgzNDQ2LCAxMTg5NDUsIDc4MTE4LCA3Mzg1MSwgMzAxMCwgNjQ0MSwgNzgxMjIsIDE0NTgsIAogICAgIDQxNDc1LCAxMjg2NzIsIDkzOTc1LCAwLCAxMTQ3OSwgMCwgMTIwMzU2LCA2MzUwLCAxMjg2NCwgNjk2NzQsIDc4MTE0LCAKICAgICAxMDYxLCA2NDc4MCwgMjAwMSwgNDMxMTEsIDU1MjMwLCAxMjg2ODYsIDQwNTIsIDAsIDc2MjYsIDAsIDAsIDEwNDUsIDAsIAogICAgIDU2MzEsIDQxMTEzLCAwLCAwLCA0MzcwNywgNzQxMjcsIDAsIDAsIDg0ODYsIDAsIDczNzU4LCAyMzM1LCA0MzYyLCAKQEAgLTE4MzA0LDggKzE4MzA2LDggQEAKICAgICA5MjI0NSwgNDQwLCAwLCAxMzA4NSwgOTIzMywgNzQyMTYsIDAsIDAsIDk5NTcsIDEyODI4NSwgNjY0NDcsIDgwNDYsIAogICAgIDY0OTYzLCA2NTc3NywgMTAxMjUsIDc0MjEyLCA0MjgxOSwgMTA5MTAsIDAsIDE1MjEsIDk4OTYsIDkzOTY1LCAxMDQ4NywgCiAgICAgNjk4NzgsIDEyNTI3LCAwLCA3OTcwLCAwLCAxMjg2NjAsIDAsIDY1NzY5LCA1MjQzLCA5ODQ5LCA1MjM5LCA2NTc3MSwgCi0gICAgOTgzMjI5LCAwLCA1MjM3LCA2OTcxNCwgMCwgMTAxMDMsIDUyNDcsIDQ3NjksIDAsIDExODk3NywgMTI4NzMsIDIyODMsIAotICAgIDk4MzIzMSwgMCwgMzAwOCwgNDg5NiwgMCwgMTIwODcsIDAsIDU1MjMxLCA0MTEwMywgMCwgNjQ1NjUsIDQ3NzMsIDAsIAorICAgIDk4MzIzMCwgMCwgNTIzNywgNjk3MTQsIDAsIDEwMTAzLCA1MjQ3LCA0NzY5LCAwLCAxMTg5NzcsIDEyODczLCAyMjgzLCAKKyAgICA5ODMyMzIsIDAsIDMwMDgsIDQ4OTYsIDAsIDEyMDg3LCAwLCA1NTIzMSwgNDExMDMsIDAsIDY0NTY1LCA0NzczLCAwLCAKICAgICA5MjcxNywgNzAwNzQsIDQ3NzAsIDAsIDkxNzU2NywgODczMSwgNjUzNzgsIDEyNzM2MiwgMTIwNjE5LCA5MTIyLCAxMjgwMzMsIAogICAgIDEyNjYwMCwgNDc3NCwgMzAxOSwgOTk5NywgMTI4MzQsIDAsIDk0NTYsIDEwMjE1LCAxMjA1NDcsIDAsIDAsIDAsIDAsIAogICAgIDc0Nzc2LCA0MjgxLCA0NzY4LCAwLCA0MTUzNSwgNDA5OSwgOTAxNywgMCwgMCwgNzgwOTUsIDAsIDc4MDk2LCAwLCAwLCAwLCAKQEAgLTE4MzMzLDcgKzE4MzM1LDcgQEAKICAgICA0MTUyMSwgMTE4OTM0LCA0OTQsIDEzMjUwLCAwLCA2NTA5OCwgNjM2NCwgOTU2LCAwLCAxMjgzMCwgMTA0NjIsIDczNzQwLCAKICAgICA3MzczNCwgMCwgMCwgMCwgNjY0NDksIDEzMjYzLCA3NDI4MSwgNjkyMTcsIDEzMTcxLCAxMjc3OTYsIDAsIDAsIDkyMjk0LCAKICAgICAwLCAxMDQ0LCA0MTI3NiwgMCwgMCwgMCwgNDIwNjgsIDExNzk1LCAwLCAwLCAwLCAwLCA0MjQ1MCwgMzkwNywgMCwgNjQ1MjYsIAotICAgIDExODI5LCA2ODE5NywgMTIyOTUsIDAsIDExNDc1LCAwLCAzMDIwLCAxMTUzNywgMCwgNjY0NDEsIDk4MzQ0NiwgNzA5OCwgMCwgCisgICAgMTE4MjksIDY4MTk3LCAxMjI5NSwgMCwgMTE0NzUsIDAsIDMwMjAsIDExNTM3LCAwLCA2NjQ0MSwgOTgzNDQ3LCA3MDk4LCAwLCAKICAgICAwLCAxMDU3LCA1NjYsIDQyNjk2LCAwLCAzMDE2LCA0MjI3NCwgNDM0NjQsIDY2NDkwLCAxMjkyMSwgNjY1NzEsIDc4NDcyLCAKICAgICA5MjUxMCwgMzAwNiwgNDYyMCwgMTI3MjM3LCA5ODM1NzgsIDAsIDAsIDY0NjU5LCAwLCAxMjc3NDksIDU1MjUzLCA2MzU3LCAKICAgICA2MzYyLCA4NjI2LCA3MTMzNywgMjIxNiwgOTA5MCwgNjUzNzcsIDQxNTk2LCAwLCA0MjkyMCwgMTY5OCwgMCwgNjQ0NzcsIDAsIApAQCAtMTgzNjQsOSArMTgzNjYsOSBAQAogICAgIDQyMjQ5LCA3NjM5LCA0Mzk5NSwgNjc4NDUsIDQyNjQxLCA1NDU0LCAwLCAwLCAxOTQ5OTcsIDEyMDAwNSwgMCwgOTgzOTU3LCAKICAgICA1MDg0LCAwLCAwLCAxMTg4NjEsIDAsIDczMywgOTE3ODc2LCA3ODAxNCwgNzg0MzYsIDc4NDM1LCA0MTY3NywgMCwgOTIxOCwgCiAgICAgMTczMSwgMCwgOTgzNzM3LCAwLCA2Nzk5MCwgMCwgMCwgMCwgMTIwMDAxLCAxMjcwMTgsIDkyNDkyLCA1MTU1LCAxMjAwMDAsIAotICAgIDUzNTgsIDk4MzczNSwgMCwgOTE3NzY3LCA2NDQyNCwgOTgzMjI1LCAzODQwLCA2NDMxNCwgNDE0MzIsIDAsIDc4MzE1LCAKKyAgICA1MzU4LCA5ODM3MzUsIDAsIDkxNzc2NywgNjQ0MjQsIDk4MzIyNiwgMzg0MCwgNjQzMTQsIDQxNDMyLCAwLCA3ODMxNSwgCiAgICAgNjg0MzAsIDY3OTgwLCA0MzI1MywgNjU5NDMsIDAsIDMzNzEsIDEwOTg4LCAwLCA4NzcxLCAxNDc5LCAwLCAwLCAxMTA5LCAKLSAgICAxMTU4MCwgMCwgNjQ2MDEsIDEyMjA1LCAwLCAwLCA2NDUwNywgODg2OCwgMzk5LCA2Nzk3OCwgNzQ4NDIsIDk4MzI3NiwgCisgICAgMTE1ODAsIDAsIDY0NjAxLCAxMjIwNSwgMCwgMCwgNjQ1MDcsIDg4NjgsIDM5OSwgNjc5NzgsIDc0ODQyLCA5ODMyNzcsIAogICAgIDk4MzcxMiwgMTIxNDksIDEzMDg4LCA1NTEsIDAsIDEwMTU2LCAxMjExOSwgOTI1NzIsIDAsIDI1NDQsIDY1MDc0LCAKICAgICAxMTkyMTEsIDAsIDAsIDc4MDExLCAzNTEsIDExOTE0OSwgMCwgMCwgNTUyMjksIDAsIDc0MjY4LCAwLCAwLCAwLCA0MjM3NywgCiAgICAgMCwgMCwgMCwgOTgzOTE1LCAwLCA5MDEzLCA0MDU0LCAwLCA5ODM1NzAsIDAsIDAsIDczOTYwLCA1NTg1LCA2NTg4MSwgCkBAIC0xODQzOSwzMyArMTg0NDEsMzMgQEAKICAgICAwLCA0MzQzNSwgMCwgMCwgNDk5MywgMCwgNjE2OCwgMTA5MzQsIDE5NDYsIDc0MSwgMCwgNTQ5NCwgNDYzOSwgOTgzMTQ3LCAKICAgICAxOTkwLCA2NjU4OSwgNDQ5OCwgNzg2NjQsIDExOTE4MywgMCwgMCwgNjk3MzQsIDI5NjAsIDczNzc5LCAwLCA4OTY5LCAKICAgICAxMjgxMTcsIDQzNDI0LCAxMjcwNTksIDAsIDI5NTAsIDExOTU3OSwgNjIxMCwgNjU3NTMsIDM3MCwgMCwgMCwgMCwgNDk1MywgCi0gICAgOTgzNjczLCAwLCAwLCAwLCA2OTIzMCwgMCwgMCwgNjU2ODgsIDk4MzI0MCwgNTA2MywgMzUxNywgMjk2NCwgNDM2NjMsIAorICAgIDk4MzY3MywgMCwgMCwgMCwgNjkyMzAsIDAsIDAsIDY1Njg4LCA5ODMyNDEsIDUwNjMsIDM1MTcsIDI5NjQsIDQzNjYzLCAKICAgICA5MTc3NjIsIDYzNDQsIDc0NzkxLCAxMDU2NiwgMTAxNDQsIDY2MzMzLCA4MjUyLCA3MjksIDY2MDE2LCA3ODI1MywgMCwgCiAgICAgNzEzMTcsIDY0OTIzLCAxMjgwNDAsIDQzNjY5LCA5MDMyLCA3ODI2MywgNzgyNjQsIDAsIDQxMjE1LCAwLCA2NTg4MywgMCwgCiAgICAgOTE3Nzc0LCAxMjA2MDIsIDM3NjEsIDAsIDAsIDcwMDY4LCAwLCAxMjkxMiwgMTE5MDEyLCAzODUwLCAxMjgxOTEsIDAsIDAsIAogICAgIDAsIDAsIDkwOCwgMCwgODYxMSwgMCwgMCwgMTI3NTU1LCA0MzY5MSwgNDExOTcsIDAsIDg5NzgsIDEyMDU0MCwgMTE5MTM1LCAKICAgICA0MTU4NiwgMTA1MjcsIDAsIDkxNzg0OCwgMzg0OCwgNzg3MzksIDE5NDkzNywgMTI3NTM2LCA2NTI0MSwgNTMzNiwgCi0gICAgOTgzMjUxLCAxMjg3ODYsIDY2MywgMCwgMTA3ODAsIDAsIDAsIDc4NzY3LCA5ODMyNDksIDEyNzE2MywgNjgxOTMsIDM0NywgCisgICAgOTgzMjUyLCAxMjg3ODYsIDY2MywgMCwgMTA3ODAsIDAsIDAsIDc4NzY3LCA5ODMyNTAsIDEyNzE2MywgNjgxOTMsIDM0NywgCiAgICAgMCwgMCwgNzg3NzUsIDY0Njc1LCA0MTU4MiwgNzg3NzQsIDc4NzQ0LCA2NTU3OSwgMTI5ODAsIDc4NzY5LCAxMjE0MywgCiAgICAgNjk2NTcsIDc4NTEyLCAwLCA0MzQ0MSwgNDE4MDQsIDc4NTIzLCAwLCA3ODUyNSwgMCwgMTI4ODU5LCA0MTU4NCwgMTA2ODEsIAogICAgIDAsIDk4MzY4NiwgNzM5MzgsIDAsIDEyODAyMiwgNDgwMCwgNjY2NjEsIDAsIDY2MzA2LCA2NDcxNSwgNzg1MzQsIDk1MTgsIAotICAgIDY2MDksIDEwNDM0LCAwLCAxMTMxOSwgMTA5NywgMCwgOTE3ODUwLCA0MTczMCwgOTgzMjEyLCAwLCA3Mzg0NywgNzg3NjEsIAorICAgIDY2MDksIDEwNDM0LCAwLCAxMTMxOSwgMTA5NywgMCwgOTE3ODUwLCA0MTczMCwgOTgzMjEzLCAwLCA3Mzg0NywgNzg3NjEsIAogICAgIDY1MTcyLCA0MTcyOCwgNDE3MjEsIDAsIDAsIDAsIDQxMjAzLCA5MTc2MTIsIDEzMTEwLCA0MTcyNiwgOTgzODQ2LCAwLCAKICAgICAxMDAwLCA2OTY1MSwgMCwgNDExNDAsIDEyMDksIDczOTc4LCAwLCA3Mzc1MCwgMTA3MywgNjMyMSwgNzc4NzgsIDQxMTM4LCAKICAgICAwLCA2ODIxMywgMCwgMTIxNjcsIDExMTUsIDQxNjA1LCA5Nzk0LCAxMjcwNjIsIDY3NjcxLCA1NTI0OCwgMTIyMzcsIAogICAgIDc4Nzg3LCA2NjMxNCwgNjU4NywgOTI5MCwgNzg3ODIsIDc4NzgzLCA5MjMxLCA3ODc4MSwgMjk1OSwgNzkyNiwgMCwgMCwgMCwgCiAgICAgNjQzOTgsIDAsIDExOTk3MCwgMTIzMTEsIDk4MzcxOCwgNzg3OTYsIDc4Nzk4LCA3ODc5NCwgNzg3OTUsIDY4NDM0LCAKICAgICA3ODc5MywgNjY2NzAsIDAsIDAsIDEyMjkwLCAxMjAxNjksIDAsIDExOTg3MywgNDIxNDIsIDk5NjgsIDgyMDUsIDAsIDUxMzEsIAotICAgIDAsIDk2MjcsIDc4NTM2LCA3ODU0MiwgNzg1MzUsIDk4MzIxMCwgMTk0NCwgMTI0OCwgMTAxNDgsIDEyNzc1NSwgMTE5OTkwLCAKKyAgICAwLCA5NjI3LCA3ODUzNiwgNzg1NDIsIDc4NTM1LCA5ODMyMTEsIDE5NDQsIDEyNDgsIDEwMTQ4LCAxMjc3NTUsIDExOTk5MCwgCiAgICAgMTE5OTkxLCAxMjcwMSwgNzgzNzYsIDExMzA4LCAxMTk5OTUsIDAsIDExOTk5NywgMTE5OTk4LCA2NTMwNSwgNjUxMDAsIAogICAgIDQwMzEsIDQyNzk0LCAxMjAwMDMsIDcwNzUsIDgxNTQsIDExOTk4NSwgMTIwMDA3LCA0MTgxNywgNzM5MzQsIDQyMjc1LCAKICAgICAxMjAwMTEsIDEyMDAxMiwgNzg1MjYsIDEyMDAxNCwgMTIwMDE1LCA2MDQxLCAwLCA0MTg5OSwgMCwgODAwMiwgMCwgNDM2NCwgCiAgICAgMCwgMCwgNjQzMzIsIDAsIDc4MTMsIDkwNjQsIDExOTk4NiwgMTAxMjQsIDc1MjYsIDg2MDEsIDcyODEsIDc4NDU1LCA3Mjc5LCAKLSAgICAxMjA0MSwgMTQxOCwgMTA4ODUsIDEyNjczLCAwLCAwLCA5NjYwLCA5ODMyNzIsIDEzMDEyLCA0NTcxLCAwLCAwLCAxMjAxNjQsIAorICAgIDEyMDQxLCAxNDE4LCAxMDg4NSwgMTI2NzMsIDAsIDAsIDk2NjAsIDk4MzI3MywgMTMwMTIsIDQ1NzEsIDAsIDAsIDEyMDE2NCwgCiAgICAgMTIwNzgsIDI5NzAsIDAsIDEwOTMzLCAwLCA3Nzg3MCwgMCwgMTI3MDE1LCAwLCA0MTU5OSwgMCwgMTI4ODMxLCAwLCAKICAgICAxMjk1MCwgOTIxNjAsIDM0ODYsIDAsIDc4MzExLCA0MjM5LCAwLCAxMjc3OTksIDY2NTExLCAwLCAyNjM3LCA2NDYyOSwgCiAgICAgODQ2MCwgMTI3MDUzLCA4NDc2LCA5ODM5NjYsIDAsIDAsIDAsIDY1NjczLCAxMDE5LCA3ODQ5NSwgNDE0OCwgMCwgMTIyODksIAotICAgIDAsIDQzMTYsIDAsIDEzMTE5LCA4NDg4LCA1NDEyLCA2NjI0MywgOTkzNSwgMCwgNzM4NjQsIDk4MzIwMSwgNDE3MzQsIAorICAgIDAsIDQzMTYsIDAsIDEzMTE5LCA4NDg4LCA1NDEyLCA2NjI0MywgOTkzNSwgMCwgNzM4NjQsIDk4MzIwMiwgNDE3MzQsIAogICAgIDgyMDYsIDc0MDgxLCA5MTYzLCAzMjg2LCA5MDcyLCA1ODY3LCAxMzMwMiwgNzYyMiwgNzEyMCwgNDE3MzYsIDkyNTQ2LCAKICAgICA0MTczMSwgMCwgNzQwMCwgNTQxNiwgNjg2NjMsIDExODkyNCwgMTA4MTcsIDAsIDQxNTM5LCAxMjcyODQsIDAsIDczOTYzLCAKICAgICA0MTg1NSwgNDE4NjcsIDY1NTY0LCAxMTI3NywgNjU4OTIsIDExNTM2LCAxMDYyMCwgOTIyNzIsIDcxMTUsIDY2MDMwLCAKQEAgLTE4NDczLDggKzE4NDc1LDggQEAKICAgICA5MjUxMiwgMCwgNjYzNzcsIDY5NzgxLCAwLCA5ODM2OTAsIDc4NTExLCAzMTYxLCAyOTUsIDEyMDIwNywgMCwgOTIyMjMsIAogICAgIDEyNzg1NiwgNzg3NDIsIDkwMTYsIDQzNDU0LCA2MzkwMywgNjM5MDIsIDQzNjQxLCAwLCAzOTcxLCAwLCA3MDA2MywgMjk1MiwgCiAgICAgNzg3NjUsIDExMDM4LCAxMDkwMSwgNjM5MDAsIDYzODk5LCA2Mzg5OCwgOTQwNDMsIDY2NywgMTIzMzIsIDYzODg3LCA2MDg2LCAKLSAgICA0MTcyMiwgMCwgNTE3MiwgMCwgMCwgNDE1OSwgMCwgMCwgOTgxNSwgNjM4ODQsIDE5OTM0LCA2Mzg4MiwgNDExOTgsIDg1NTUsIAotICAgIDYzODc4LCA2Mzg3NywgNDI0NjAsIDYwNTAsIDQyNzA4LCA2Mzg4MSwgNjM4NzIsIDAsIDQyNDIxLCAwLCA0MTcyMywgCisgICAgNDE3MjIsIDAsIDUxNzIsIDAsIDk4MzI3MSwgNDE1OSwgMCwgMCwgOTgxNSwgNjM4ODQsIDE5OTM0LCA2Mzg4MiwgNDExOTgsIAorICAgIDg1NTUsIDYzODc4LCA2Mzg3NywgNDI0NjAsIDYwNTAsIDQyNzA4LCA2Mzg4MSwgNjM4NzIsIDAsIDQyNDIxLCAwLCA0MTcyMywgCiAgICAgNjM4NzUsIDYzODc0LCAxMTQ2MCwgNzQzMiwgMTkxMywgNDE5MTMsIDYzODUyLCAxMjY2MzYsIDAsIDQyMzQ4LCA3Mzg5MiwgCiAgICAgNjc1MiwgNDQ2LCA0MTkxMSwgMTI3OTA2LCA2Mzg1MSwgNjM4NTAsIDQxOTEwLCAwLCA2Mzg0NiwgMjk3MiwgMTI5MzIsIAogICAgIDcyNjIsIDAsIDYzODQ5LCA2Mzg0OCwgNjM4NDcsIDEyODA3MCwgNjU3MCwgODMwMiwgNzI1OSwgNjM4NDIsIDQxNzgsIApAQCAtMTg1MTUsNyArMTg1MTcsNyBAQAogICAgIDAsIDEwNTE1LCA0MTU4OSwgMTI4Njk4LCAwLCA2MjE4LCAwLCAxNDMwLCAwLCAwLCAxMjA2MDYsIDc4NzU0LCA1NDEzLCAKICAgICA3NjE5LCAzMjU1LCAzNDkzLCA3NDAzMiwgMTE1NDksIDEwNzM1LCA0MTc0MywgNzM5MzcsIDY4MDEsIDk4MzYyNCwgNDUxOCwgCiAgICAgMTA5OTAsIDY1MDczLCA1MTY3LCA0NDgxLCAzNzcxLCAxMjAxNTgsIDI3MTAsIDAsIDY5MjQzLCA0MTcyNCwgMCwgNDMwNzMsIAotICAgIDQxNjkwLCAxMjQ3OSwgOTgzNjI2LCAwLCAwLCA5ODM4MDksIDcwMDQ2LCAxNjI4LCAxMjcxNDksIDk4MzQ3OSwgOTgzNzIyLCAKKyAgICA0MTY5MCwgMTI0NzksIDk4MzYyNiwgMCwgMCwgOTgzODA5LCA3MDA0NiwgMTYyOCwgMTI3MTQ5LCA5ODM0ODAsIDk4MzcyMiwgCiAgICAgNjUyNjIsIDYzMzMsIDEwNzgzLCA0MjMxNSwgMCwgNjM4NTUsIDk0MDU2LCAwLCAwLCA1MzM5LCA3NDMyMywgMCwgMTMwMDQsIAogICAgIDAsIDQ0NTcsIDAsIDAsIDAsIDAsIDU2ODQsIDg2NzgsIDEwOTE0LCAwLCA1Njg5LCA2NTgwNywgMCwgNjg0NjQsIDEyNjMzLCAKICAgICAxMjg3MCwgNjk3MDUsIDY1MTgzLCA1Njg4LCAxMTkyNiwgNjAzMywgNjMxMCwgNTY4NiwgMCwgNzQyNTEsIDAsIDEyMDY0NywgCkBAIC0xODU0Miw3ICsxODU0NCw3IEBACiAgICAgNzM4NTksIDY1OTA0LCA3MzYzLCAxNjg2LCAwLCA3ODQwNiwgMTE0NjcsIDM2NjQsIDY1OTIxLCA2NDI5OSwgMTk0NjY0LCAwLCAKICAgICAwLCA0MzI0LCAxMjYsIDQyMjQ2LCAxMTkxNTIsIDAsIDc0Mzc4LCA2NTkyNiwgNzc0NCwgMTk0NjM2LCA3NDI3NywgNzQzMDIsIAogICAgIDc4MDUyLCA0MzgxNywgNjk2NiwgNDM4MjIsIDgxMzYsIDAsIDY1NjAwLCAxNjMzLCAwLCAwLCA0NzYyLCAxMTAzLCAwLCAwLCAKLSAgICA0NzY1LCA5ODM0ODQsIDEzMDc4LCAwLCA0NzYwLCA2MzgyNywgMjA1MCwgMTA4NzEsIDQzMTk5LCAxMTAyLCAwLCA0MjIzNiwgCisgICAgNDc2NSwgOTgzNDg1LCAxMzA3OCwgMCwgNDc2MCwgNjM4MjcsIDIwNTAsIDEwODcxLCA0MzE5OSwgMTEwMiwgMCwgNDIyMzYsIAogICAgIDEyODg2NywgMTk0NjY3LCAxMTU0NiwgNzQ3OTQsIDMzNywgMCwgNDI1OTEsIDg2MjcsIDEyMjc5LCAxMTExLCAwLCA5MjE2MSwgCiAgICAgNDcwNywgNjgyMDYsIDEwMTQzLCA3ODgzLCAxMjcwODEsIDc4ODAsIDQ1MjIsIDg2NDUsIDU3MDQsIDEzMDEwLCAwLCA4MzA0LCAKICAgICA5MTc1NjEsIDAsIDExOTU3NSwgMjI5MywgMCwgNjY2NTQsIDAsIDkyNjc2LCAwLCAxMzAwOCwgMCwgNDM4NSwgMCwgMTMwMTEsIApAQCAtMTg1NjYsNyArMTg1NjgsNyBAQAogICAgIDEzNDksIDYzNzUwLCA2Mzc0OSwgMCwgMCwgMCwgNjM3NTMsIDYzODAyLCA0MTA4NCwgMTIwNjIyLCA2ODEzMywgNDE5MzAsIAogICAgIDYzODA1LCA2MzgwNCwgNDM2MzIsIDYzODAxLCA0MTA4MiwgODE0MCwgNjM3OTgsIDYyNjAsIDAsIDAsIDk0MDc0LCA2Mzc5MywgCiAgICAgMTE5ODgsIDM4OTgsIDEyODI0MSwgMTAyMDEsIDEyMjM4LCA2Mzc5NSwgNDIxOTQsIDEwMzY3LCAxMjUyMSwgMTA0MzEsIAotICAgIDQyMTE0LCA0MTkzMiwgMTA2OCwgMCwgMTI1MjMsIDEyOTQ1LCA5ODMzMjEsIDQyMjAzLCA3OTUwLCAxMDgwNCwgNjM3NzEsIAorICAgIDQyMTE0LCA0MTkzMiwgMTA2OCwgMCwgMTI1MjMsIDEyOTQ1LCA5ODMzMjIsIDQyMjAzLCA3OTUwLCAxMDgwNCwgNjM3NzEsIAogICAgIDQyNzg3LCA0Mzg2LCAxMjIyNCwgNjk3MywgMjc5MywgMTI0NzUsIDAsIDAsIDYzNzY5LCA5NTMwLCA5ODMxMTksIDEyMjMyLCAKICAgICAxMzEzNSwgODU5NiwgNTY4MSwgNjM3NjIsIDQ1OTUsIDYzNzYwLCA3OTIsIDAsIDY0ODAzLCAwLCA4NzQyLCAwLCAxMTA1MywgCiAgICAgMTI4Nzk2LCA2Mzc0NCwgMTI4MTA3LCAwLCA3NTg4LCA2Mzc0OCwgMTY5MywgNjM3NDYsIDQzMjA0LCA1MDU1LCA2ODQyNiwgCkBAIC0xODU5NSw3ICsxODU5Nyw3IEBACiAgICAgNjU4MzUsIDAsIDIzNjUsIDc4NDEsIDAsIDQyODU1LCAxMTg4NTYsIDQyODY2LCAwLCAwLCAwLCA2NjQzOCwgNDE3ODUsIAogICAgIDEyNjE3LCA2NDE3MiwgMTMxNzMsIDQzNzIsIDExOTM1NCwgMCwgOTgzNTY4LCAwLCAwLCA5MjQwMiwgMTI4MDYyLCAxMjk2NSwgCiAgICAgMzg0LCA2NDUxMiwgMTA0MDQsIDEwMzQwLCAxMTkzNTIsIDE1NTYsIDUyNzQsIDEzMjEwLCAxMjAxMjUsIDEwMDE3LCA5NzMzLCAKLSAgICA0MTc4NywgOTgzMjM3LCAxMjY5OTQsIDQxMzczLCA3ODAzOSwgMTIzMDMsIDAsIDEzMjMyLCAxMzIzMywgMzQ5LCA0ODYzLCAKKyAgICA0MTc4NywgOTgzMjM4LCAxMjY5OTQsIDQxMzczLCA3ODAzOSwgMTIzMDMsIDAsIDEzMjMyLCAxMzIzMywgMzQ5LCA0ODYzLCAKICAgICA0MTM3MSwgMTE2NTYsIDAsIDEyMDcwMywgMTE5ODgzLCAxMjg2MSwgNDM5OCwgODU0MywgNjU2MTgsIDEyODAxOCwgMTA5NiwgCiAgICAgMCwgMCwgNDI2ODgsIDEyNDQxLCAxMjM1NSwgMTE5MzQ4LCAxMTkzNDcsIDQzMTgsIDEwNDUyLCAwLCA4MDMyLCAxMzI0MywgCiAgICAgMTMyMzcsIDEyNzE5LCAxMjY2NDYsIDExOTEwMSwgMCwgNjQ4ODQsIDExOTg3MiwgMTE5MzQ1LCA4NTk3LCAwLCAwLCA5ODY0LCAKQEAgLTE4NjIzLDcgKzE4NjI1LDcgQEAKICAgICA1ODQxLCA1ODM3LCA1NTIzNCwgMCwgMzEwNSwgMTI4MjksIDU4MzgsIDU3OTYsIDAsIDExOTU5MiwgNTc5MywgMCwgNTg2NiwgCiAgICAgNTc5NywgNDEwMTEsIDU4NjUsIDEyMDA5MSwgNzk1NiwgNTk4LCAwLCA2NDY0OSwgNTgwNiwgNDIzOTgsIDAsIDkwMzcsIAogICAgIDU2NzEsIDEyMDA0MSwgMCwgMCwgMCwgMTI4ODU1LCAwLCA4NDcsIDEyODI0MiwgOTUyOSwgMCwgNjY2NTcsIDY5ODAsIAotICAgIDc4NDgzLCAxMjAwMzUsIDc4NDg0LCA5ODM0ODMsIDAsIDEyMDAzMywgNzg0ODYsIDAsIDAsIDEyMDAzOSwgNDI2ODMsIDAsIAorICAgIDc4NDgzLCAxMjAwMzUsIDc4NDg0LCA5ODM0ODQsIDAsIDEyMDAzMywgNzg0ODYsIDAsIDAsIDEyMDAzOSwgNDI2ODMsIDAsIAogICAgIDk4MzA1NSwgNzExNCwgMCwgMCwgNDMxOTAsIDY1NDYzLCAxNTU0LCAwLCA0MjYxMSwgNDI1NjMsIDAsIDU2NTEsIDI5MjksIAogICAgIDY3OTIsIDQzMjAxLCAwLCAxOTk2MywgNTY5OCwgMCwgMCwgMCwgMCwgNTY0NCwgMTAyOTIsIDY1NTQ2LCA2OTcyNywgCiAgICAgNjgxNDEsIDgzNzIsIDAsIDY1MTE2LCAwLCAxMjAwMjIsIDEwMTc1LCAxMDM4OCwgNDI3OTksIDk0MTAwLCA0MTAxMywgCkBAIC0xODYzMSw3ICsxODYzMyw3IEBACiAgICAgNDI2MDgsIDc4NDY5LCA5ODg0LCA0NzU5LCAwLCAwLCAxMDI2NiwgNDEzNTksIDExNzAsIDQzMzY1LCA2OTgxMCwgNzM5MDgsIAogICAgIDE2MDksIDkwMiwgMCwgNjM5MzYsIDEyODg3NSwgMTE2NjEsIDgxMjIsIDU4MTgsIDAsIDAsIDM4NjEsIDk1NDAsIDExMDI4LCAKICAgICAyNTU0LCA1MTU4LCA1NzE0LCAyMjEzLCAwLCAwLCA4MDcsIDQzMDc5LCAwLCA3ODQ3NSwgOTc2LCA1NTExLCA2NDU1MywgMCwgCi0gICAgNDIxNTUsIDAsIDQxMzU2LCA3NDExMCwgMTE4ODAxLCAxMjY2MTQsIDAsIDg2NzYsIDk4MzI4MywgMCwgNTU4MiwgNDUxLCAKKyAgICA0MjE1NSwgMCwgNDEzNTYsIDc0MTEwLCAxMTg4MDEsIDEyNjYxNCwgMCwgODY3NiwgOTgzMjg0LCAwLCA1NTgyLCA0NTEsIAogICAgIDYzOTQxLCA1Nzk4LCA5MzQ5LCA0MjAxOCwgMTI3ODU4LCAwLCAwLCA0MzYwOSwgNTkwNiwgMTIwNTUzLCAxNDQwLCAwLCAKICAgICAxMjg4NTMsIDEyMDAxNiwgNzQyODMsIDExMDA1LCAwLCA2NjY1NiwgNjYwNDQsIDAsIDE5NDY5OCwgMCwgMCwgNDMzOTMsIAogICAgIDEwMDk0LCAwLCAxMTUyOSwgMTA4NTcsIDEyMDY0MywgNjY0MzYsIDY1NDYsIDkzLCA4MTAyLCAwLCA2ODQwNSwgMCwgMCwgCkBAIC0xODY2NSw3ICsxODY2Nyw3IEBACiAgICAgMCwgMTg2MiwgNjU4MDAsIDkxNTUsIDY2NjIzLCA5Nzg2LCA2NTA4MiwgNDE5MTksIDg1NzksIDQxOTE0LCA3OTgxLCAwLCAKICAgICA2NjAxNywgNDUwOCwgNjQ4ODMsIDkyNDU2LCA5MjUyMiwgMTI3ODE0LCAwLCA2NDU5MiwgNzQyNzYsIDEyMDA4MCwgNjc4NCwgCiAgICAgNzg3ODgsIDY4MTgxLCAwLCAwLCAwLCAxMjc1MzQsIDEyMTQ3LCA5MDI0LCA2NjM3OCwgNjY0NzIsIDk4MzkyMCwgNjQyODksIAotICAgIDY1Mjg5LCA3ODE1MSwgNjY2NTgsIDE5NDkyOSwgNjQ1MDksIDc4MTUyLCAwLCAxMjY1MDUsIDExMDUxLCA5ODMyODgsIDAsIAorICAgIDY1Mjg5LCA3ODE1MSwgNjY2NTgsIDE5NDkyOSwgNjQ1MDksIDc4MTUyLCAwLCAxMjY1MDUsIDExMDUxLCA5ODMyODksIDAsIAogICAgIDExMzU1LCA2NTg4NSwgMCwgMTI4MzEwLCA0MTIxNCwgMCwgMTIyOTksIDAsIDc1MDAsIDQ1MDYsIDc3NzMsIDAsIDAsIAogICAgIDk5NjMsIDY4NjQ5LCAxMjY2MDksIDQwNDAsIDEyMDU3MCwgNjE2NywgMCwgNjM5MjIsIDY1OTQsIDk4MzczMSwgMCwgMCwgCiAgICAgMzYyNCwgNDMwMzYsIDAsIDYzODcsIDYzOTkwLCAxOTk0NywgNjM5ODgsIDQxOTU1LCAwLCA2Mzk5MywgMTA0NDAsIDk2MTEsIApAQCAtMTg2ODAsNyArMTg2ODIsNyBAQAogICAgIDExOTYyNSwgNDI5MjIsIDQyMTAzLCA4NjI4LCA5ODEzLCAwLCA0MjQ1MywgMTYwNCwgOTU2NSwgMTA1MzksIDY5NzAxLCAKICAgICA2NTc2NCwgNDE0MTUsIDY1NzY3LCAwLCA4NDU3LCA0MjMwMSwgMTEzNzIsIDY0ODczLCAxMTk5MiwgMCwgMCwgNjM5ODAsIAogICAgIDExODAxLCAzNjIyLCA5ODMxMjQsIDY0MzM2LCAxMjAxNywgMTA0NjMsIDYzOTgxLCA0OTY3LCA2NDE4OSwgMTk2NiwgCi0gICAgNDM2MjgsIDAsIDk4MzI4NCwgMCwgMCwgNjM5NzEsIDQzNDcsIDQ0MTYsIDQyMDk4LCAxMTAwOSwgMTA2OTQsIDYzOTczLCAKKyAgICA0MzYyOCwgMCwgOTgzMjg1LCAwLCAwLCA2Mzk3MSwgNDM0NywgNDQxNiwgNDIwOTgsIDExMDA5LCAxMDY5NCwgNjM5NzMsIAogICAgIDQwMiwgMCwgMTMxNDcsIDEyODY5MiwgNDIxMDAsIDY0NjQ2LCAxMzIyOCwgMCwgNDE4NzUsIDM1MTUsIDc0MjUyLCAxMTgwNSwgCiAgICAgMCwgMTEzMDIsIDYyNTksIDQzMzk1LCAwLCAwLCAxOTQ2NzAsIDAsIDkyMzUxLCAwLCA3NDQyNSwgMTEyOTksIDE1NjEsIDAsIAogICAgIDkyMzU5LCA2NDk0MiwgOTgzNTU5LCAxOTQ3MzMsIDk4MzY3NywgMTk0NzMyLCAwLCA3NDMwMSwgMCwgMTEyODAsIDAsIApAQCAtMTg2OTEsNyArMTg2OTMsNyBAQAogICAgIDMzNTUsIDk1MDgsIDk4NjcsIDU3MjMsIDExNTIwLCA1NjExLCAwLCAzMzc3LCAwLCAwLCAwLCAwLCA3ODIyOCwgMCwgCiAgICAgOTgzNzUzLCA0MjY5MSwgOTE3ODg2LCAxMjcxOTgsIDc0NzY3LCAwLCAxMjcwNzUsIDEzNzksIDI0NiwgMCwgOTgzNzUyLCAKICAgICAzNzg4LCA5ODMxMDYsIDExMDQxLCA5MjU0OSwgNjYzMDQsIDAsIDAsIDg5MTcsIDQyNDAzLCAzMDEsIDAsIDAsIDAsIDAsIDAsIAotICAgIDk4MzY4OCwgMTA2NTYsIDAsIDY1MjE0LCAxMTkyNDIsIDQyNTY3LCA5MjIxNywgMTMxNjMsIDk4MzIwMiwgMTIwODMxLCAKKyAgICA5ODM2ODgsIDEwNjU2LCAwLCA2NTIxNCwgMTE5MjQyLCA0MjU2NywgOTIyMTcsIDEzMTYzLCA5ODMyMDMsIDEyMDgzMSwgCiAgICAgNzQ1OTcsIDMxODIsIDAsIDAsIDAsIDY1MDM0LCA2NTg4OSwgNDIxNjksIDQ3NTUsIDc0MjQ0LCAxOTQ2MjEsIDExNDQzLCAwLCAKICAgICA2NjMxOSwgNzQ1OTgsIDYwOCwgNjAwLCAwLCAxMjE5LCAzOTM0LCA2NDIwNiwgMTE0ODMsIDc0NTEwLCAwLCA3NDQ4NSwgCiAgICAgNDI0NDIsIDY1NDcwLCA5ODM4OTgsIDY0MjAyLCAxMzE2MCwgNzc1OSwgNDI0ODIsIDQ4NSwgMTI4MDA2LCAwLCA5ODI4LCAwLCAKQEAgLTE4NzAzLDE0ICsxODcwNSwxNCBAQAogICAgIDAsIDE5NDY3NSwgMTQwNiwgMCwgMCwgOTI2NTksIDAsIDY4MjIzLCA0MTQzLCAxOTQ2NzcsIDAsIDY1NzQ4LCA0MTQxLCAKICAgICA5NjgyLCA2NTI4NywgMTUwOCwgMTI3MDEzLCA4Nzc5LCAxMDU2OSwgODcyNSwgMTMyOTksIDY2NjM4LCA2NTc1MCwgNDIyNjMsIAogICAgIDQxNDUsIDYzODAsIDY1NzUxLCA2NjYxMywgNDM5OTQsIDY1NzM4LCA1NTI1MCwgOTE4NSwgOTU1MCwgMCwgNDM0MDMsIDAsIAotICAgIDAsIDAsIDY1NzM2LCA0MTk1MSwgNjQ4MTYsIDY1NzU2LCA5ODMyMDMsIDEyOTU1LCAxMDU5NiwgMjg4OCwgMTk0NjQ1LCAwLCAKKyAgICAwLCAwLCA2NTczNiwgNDE5NTEsIDY0ODE2LCA2NTc1NiwgOTgzMjA0LCAxMjk1NSwgMTA1OTYsIDI4ODgsIDE5NDY0NSwgMCwgCiAgICAgMCwgOTY1NywgOTAxOSwgMTk0NzY2LCAwLCAyODc4LCA1MzkwLCAwLCAxOTQ5NjEsIDAsIDY4Njc5LCA0MzU1MiwgNzUwMSwgCiAgICAgNjMyOCwgMCwgMTA0MjksIDEwMzY1LCAwLCAwLCA0MTk0NiwgNzUwMywgNTIzNSwgODAzLCA2ODM4MSwgMCwgMCwgODk4NiwgCiAgICAgMTI2NTQyLCAxMDYzMiwgMTE5MzQsIDExNDUyLCAxMzMyLCAwLCAwLCAxMjY2NDcsIDAsIDExODg4NywgMTc5MSwgNTE5MSwgCiAgICAgOTI4OCwgNjQ4MjIsIDI4OTIsIDAsIDQzMzk0LCA1NTUsIDAsIDAsIDY2NjQ2LCAwLCAxMTkwMDIsIDEzMTUxLCA3NDUxMiwgCiAgICAgNzI4OSwgNzQwNTUsIDY0MTYxLCA4ODU0LCA2NDE2MiwgNTg1OCwgNDE5MjcsIDEwNTgyLCAwLCAxNzg0LCAxMzYxLCAKICAgICAxOTUwNDcsIDAsIDc5MDUsIDAsIDY0ODY4LCAxMjg4MTMsIDEzMTU4LCA5MjE2NiwgNzIxMSwgMCwgOTM3MSwgNzM5NzMsIAotICAgIDkxNzU1MywgNjgyOCwgMTYyNSwgOTIzMDIsIDAsIDEzNDIsIDY4NDQwLCA2NDE3MSwgMTI2NzA0LCAxMDkwMywgOTgzNDg2LCAKKyAgICA5MTc1NTMsIDY4MjgsIDE2MjUsIDkyMzAyLCAwLCAxMzQyLCA2ODQ0MCwgNjQxNzEsIDEyNjcwNCwgMTA5MDMsIDk4MzQ4NywgCiAgICAgMCwgMCwgMCwgMCwgNDQ4MiwgNDE2MDYsIDAsIDEyODU2OSwgOTgzMTEyLCAwLCA2NDM4MSwgMCwgMCwgMTk1MDkwLCAKICAgICA0MjI0NSwgMTI2NDY3LCA0MTk3MiwgMCwgNDQ0LCAwLCA5MTI3LCA2NjY4NywgNjY2MTksIDEyNjQ4OSwgNzgwMjUsIDAsIAogICAgIDExMzQ5LCA0MDk5MSwgOTE3NTcwLCAwLCAxMTk1OTksIDEyMDgzMCwgMCwgMTE5NywgMTI4MjgyLCAxMTQ5LCAxOTQ5NzAsIApAQCAtMTg3MzYsMTAgKzE4NzM4LDEwIEBACiAgICAgNDczMSwgMCwgNjY2MjksIDAsIDAsIDEyNTUsIDQxNDksIDkyNDcsIDAsIDk5MTMsIDAsIDAsIDY0OTE0LCA5MTc3ODcsIAogICAgIDY1MTAxLCAwLCAxMTY5NCwgOTI0NzUsIDExNjkwLCA1ODM1LCAxMjcxNjQsIDY2NjI1LCAxMDg0MiwgNDEzNTQsIDQyMTIzLCAKICAgICA0MzA5NywgMTE2ODgsIDY2NjM0LCAxMDk0LCAxOTQsIDY0NjkyLCAwLCA4MTgwLCAwLCAwLCA5OTcyLCA3Mzg2NSwgNDUxOSwgCi0gICAgNjExNCwgMTA4OTgsIDQzMDcyLCAwLCAwLCA5Mzk2MCwgOTgzMzE0LCAxMjY1ODEsIDEwNjk1LCAwLCA3NTQwLCAwLCA4ODEsIAorICAgIDYxMTQsIDEwODk4LCA0MzA3MiwgMCwgMCwgOTM5NjAsIDk4MzMxNSwgMTI2NTgxLCAxMDY5NSwgMCwgNzU0MCwgMCwgODgxLCAKICAgICA3ODU3LCA2MDY3LCA2NTE2NCwgMCwgMCwgMCwgMTMzMTEsIDY4NDAzLCA0MTg1NywgNjQzMjEsIDgzNTksIDAsIDEyNjg5LCAKLSAgICAwLCAxOTQ1OTQsIDAsIDk4MzMwNCwgOTgzODcyLCA2ODE4MywgMCwgOTgzMzA2LCAxMjg3LCA1NDM2LCAwLCA5ODMzMDksIAotICAgIDc0MTQyLCA5MjMyOCwgNzQxNTIsIDExOTA3OCwgNjA1MSwgMTA0OTcsIDY5NjY4LCA4OTg1LCAxMjEwOSwgOTgzMzE1LCAwLCAKKyAgICAwLCAxOTQ1OTQsIDAsIDk4MzMwNSwgOTgzODcyLCA2ODE4MywgMCwgOTgzMzA3LCAxMjg3LCA1NDM2LCAwLCA5ODMzMTAsIAorICAgIDc0MTQyLCA5MjMyOCwgNzQxNTIsIDExOTA3OCwgNjA1MSwgMTA0OTcsIDY5NjY4LCA4OTg1LCAxMjEwOSwgOTgzMzE2LCAwLCAKICAgICAxMjcyNDIsIDAsIDAsIDM2NTIsIDEwNTM3LCAwLCAxMjc2LCAxMjA0NDAsIDY1NDksIDI3OSwgNzM3NDUsIDAsIDAsIDAsIAogICAgIDE0ODksIDAsIDAsIDAsIDM4OTksIDEwMDcsIDQyMTI0LCA5ODM1NTcsIDQyMTIyLCA5MjMzNywgOTIzNjcsIDAsIDExOTg1LCAKICAgICAxMzQ1LCA3ODYwMCwgMCwgMCwgODk1NiwgNDMwODMsIDk0MDU3LCA0MjEzOCwgNzg2MTAsIDAsIDEyMTUxLCA3ODYwOCwgCkBAIC0xODc1NCwxNCArMTg3NTYsMTQgQEAKICAgICA3ODYyNywgNzg2MjgsIDc4NjI1LCAyMzk5LCA2OTY5MywgODk5NCwgMTA5NDQsIDQxMjA4LCA5ODM3MDQsIDQxMTY4LCAKICAgICA4MTc4LCAwLCAzMzY3LCA5MjMzNCwgNDI1MTAsIDc4NjQxLCA3ODYzNiwgNjgwNCwgNzg2MzQsIDE5NDcsIDAsIDAsIAogICAgIDkyNjgxLCA0Mjc1OSwgMTEwNjgsIDE3MDUsIDkzMzEsIDAsIDc0Nzk4LCA5MTgxLCA2NTM1OSwgMCwgODAxNywgMTE5ODMxLCAKLSAgICA2NTA5NiwgNjY3MjAsIDAsIDQzNDc1LCAwLCA0OTA5LCAxMjEyNiwgMTI4NjczLCAxMjA2OTYsIDQ5MDQsIDk4MzMyNSwgCisgICAgNjUwOTYsIDY2NzIwLCAwLCA0MzQ3NSwgMCwgNDkwOSwgMTIxMjYsIDEyODY3MywgMTIwNjk2LCA0OTA0LCA5ODMzMjYsIAogICAgIDY5NjUwLCAxMzY1LCA5MjUzLCA0Mjc1NywgNDM0MzYsIDc0NjIsIDAsIDAsIDAsIDAsIDExOTU4NywgNjQ0MTUsIDAsIDAsIAogICAgIDUzOTgsIDAsIDEyNzM4NiwgOTM5NTMsIDAsIDAsIDExOTAxNSwgMCwgMCwgOTQ3NiwgMCwgOTgzNzY4LCAxMjc2MywgCiAgICAgMTI2NjAzLCAzNjI5LCAwLCAxMzAwNSwgMCwgMzYyOCwgMCwgMCwgOTI1MDIsIDM0NjksIDQyMTA3LCA0MjExNiwgOTE3NTc4LCAKICAgICA2NDgwOSwgMjkyOCwgNDkwNSwgOTg1MywgODUxLCA5MDQwLCAwLCA2NDY2NSwgNDMwODYsIDkxMTQsIDAsIDQyNTgzLCAKICAgICA5MzE1LCA0ODIyLCA0OTA2LCAzODUyLCAyODQ3LCAxMTk4MjEsIDMyMzYsIDExMzE3LCAxMjUxLCA3Nzc3LCA0MTg1MiwgCiAgICAgMTE0MTAsIDEwOTY0LCAwLCA0MzIyMiwgMTI2NDYsIDEyMDI2OSwgMTAyNTksIDk4NjUsIDY1ODIxLCAwLCA2MDE4LCAKLSAgICA5MjI5MCwgMCwgMTIyNzYsIDAsIDY4MzcyLCAwLCA5MjI1OSwgMTE5MjQ0LCAwLCA5ODMyMjQsIDEwNDY3LCAwLCAyNDQzLCAKKyAgICA5MjI5MCwgMCwgMTIyNzYsIDAsIDY4MzcyLCAwLCA5MjI1OSwgMTE5MjQ0LCAwLCA5ODMyMjUsIDEwNDY3LCAwLCAyNDQzLCAKICAgICAxMDkxOCwgNzgyMTcsIDExOTgyNSwgMTAwMSwgOTI0MSwgMTkyNywgMCwgMCwgNzM5ODcsIDEyNzg4NSwgMCwgMCwgCiAgICAgMTE4ODI4LCAxMjAyNzEsIDY1Njc4LCAxMjg2NywgMCwgODI2MCwgNzc5NDUsIDc1MTksIDExNTA1LCAxMjI3NCwgODkwNCwgCiAgICAgNTE4LCA2NTg1NywgMCwgMTI4Njc0LCAxMzIwNCwgNDM4NywgODU3LCAwLCA2NTM2OSwgMCwgOTIzMzYsIDQzMTI1LCAKQEAgLTE4Nzc3LDE5ICsxODc3OSwxOSBAQAogICAgIDc4Njk4LCA3ODY5NywgNzg2OTYsIDc4Njk1LCA4NzEwLCA0MjQ5NSwgMTE4OTU2LCAwLCA0MDUxLCAxMDQ2MCwgNDMzNjQsIAogICAgIDExODkxNywgMTM1NiwgMTIxNjEsIDQyNzEzLCAxMjg4NTcsIDEyNzI2OCwgMTYxOSwgOTcwMywgNDMxNTIsIDQyNDg5LCAKICAgICA0MjExMiwgMTI3OTc4LCAxODc1LCAxMDgwOCwgNDIxMDksIDEyMDI4NCwgNDE4NjAsIDY0ODYyLCAxMzMwNSwgNjQ5MDcsIAotICAgIDUyODksIDEzMTQ0LCAxMjg2NTgsIDAsIDU1NzUsIDk2NzUsIDAsIDU5NDAsIDIyNiwgMjY0OSwgNjMzNiwgOTgzMjY5LCAKKyAgICA1Mjg5LCAxMzE0NCwgMTI4NjU4LCAwLCA1NTc1LCA5Njc1LCAwLCA1OTQwLCAyMjYsIDI2NDksIDYzMzYsIDk4MzI3MCwgCiAgICAgMTE5ODMwLCA0MzIzNiwgMzM4MiwgNDI0NDksIDY0OTgsIDE2NTgsIDExOTM2LCA3ODIzMiwgMCwgMTEyNjksIDEwMTUxLCAKICAgICA3Mzc1OSwgNDMxMDAsIDY5ODg4LCA2NTUwOCwgMCwgMCwgMCwgODkzNSwgOTE3OTg1LCAwLCAwLCAwLCA2MTYsIDc0NzUzLCAKICAgICA2NTE3OCwgNDY4NCwgNzg3MDEsIDExOTY1MywgMCwgMTI2NTUxLCAwLCA2MDQ4LCA3NDQ2MCwgNDIxMTAsIDczOTY1LCAKICAgICAxMDg3MCwgODU1NywgMTEwNTQsIDY4NjY0LCAxMTkwNDksIDk2ODEsIDQ0NzUsIDAsIDQxMTQyLCAyMTAwLCAwLCAxMjA3MzEsIAotICAgIDYwMzUsIDAsIDc2NTEsIDEwMjk2LCA2NDQ0MywgMCwgOTgzMjg3LCA5MTc5ODcsIDAsIDExODk2NiwgNzQxNDQsIDQwOTk3LCAKKyAgICA2MDM1LCAwLCA3NjUxLCAxMDI5NiwgNjQ0NDMsIDAsIDk4MzI4OCwgOTE3OTg3LCAwLCAxMTg5NjYsIDc0MTQ0LCA0MDk5NywgCiAgICAgMCwgMTAzOTIsIDEwMzI4LCA0MDk5OCwgNDM0NjIsIDc0NDg4LCAwLCA5ODAwLCA4OTc5LCAwLCAxMzMwNywgNDEwMDAsIDAsIAogICAgIDExOTIzOSwgNjQ4NywgMzM4NiwgMCwgMTAzNDQsIDAsIDY1Mjk5LCA1Mzk0LCA0MzI0NiwgNzgyNDMsIDEwMjIwLCA2NjUwNSwgCiAgICAgNDEyMDAsIDEyODU4MywgNDQyNSwgMCwgMCwgMCwgNDMwNzQsIDczNzk5LCA5ODMyMDAsIDc4MTQ3LCAwLCAxMjE3MywgCiAgICAgNzg1NDUsIDAsIDEyNzAxMSwgNjUzMzgsIDAsIDAsIDExOTU4MiwgNDQ3NCwgMCwgNDMwOTMsIDEyODY0NCwgMTU4NywgMCwgCiAgICAgMTI3MzcyLCA2NDQ3NSwgMTI4MDk4LCAxMzY5LCA5ODM2NjMsIDk5NTksIDc5MjcsIDAsIDQ1NjAsIDAsIDAsIDkyMjc3LCAwLCAKICAgICA2NDk0OCwgNDQzMCwgNzQzNDcsIDQyNjAxLCA0NTE0LCA2NjQzNCwgOTM5NTUsIDgxOTQsIDY1NDYyLCAxMDYyNiwgMTA5NjUsIAotICAgIDAsIDg4OTMsIDk4MzI5MywgMTI1NDIsIDAsIDY1MzQxLCAwLCA2NTgyOSwgNzkyNSwgMTE5ODIyLCAxMDQ3NSwgMCwgMCwgCisgICAgMCwgODg5MywgOTgzMjk0LCAxMjU0MiwgMCwgNjUzNDEsIDAsIDY1ODI5LCA3OTI1LCAxMTk4MjIsIDEwNDc1LCAwLCAwLCAKICAgICAxMzUyLCAxMTA2OSwgNzcwNywgMTI3NTYwLCAxMjY0ODYsIDY1Mjc5LCAxMjcxMDIsIDY4MjA3LCAxMjcxMDAsIDcwOTksIAogICAgIDYwNDAsIDEyNzA5NywgMTAwNzEsIDAsIDkzMzYsIDQzNzUwLCAwLCA4ODk5LCA3Nzk4LCA2NDQ3NCwgNjQyNTksIDY5ODczLCAKICAgICA2NTE4OCwgNzgyMCwgNDMwMTgsIDEyNzA4MiwgMCwgNzc0NiwgMTQ5MiwgNzg1NTEsIDEwODg0LCA3Nzk4MiwgMCwgNTEyNywgCkBAIC0xODgxMSw3ICsxODgxMyw3IEBACiAgICAgNDA5ODgsIDkyNTkyLCA3NDgwOSwgNDE3MjcsIDAsIDQyODQ4LCAyMzk2LCA5MTc3NjYsIDAsIDc0MDE4LCA5MTc1MzgsIAogICAgIDY0OTQwLCA3MDI3LCAzODg2LCAwLCA0MjQ1NywgMTE5MDA4LCAwLCA5OTYsIDY4MTIzLCA5NDA1OCwgNDI0OSwgMCwgCiAgICAgOTE3NTk0LCAxMTcwNywgODIyMiwgMCwgNzkzOSwgOTI0NTQsIDkyNDYwLCAxMjc4MDEsIDkxNzU5MiwgMTI4MzU5LCA4NTM0LCAKLSAgICAxMjcxNTQsIDQwOTgzLCAwLCA5ODMyMzQsIDAsIDcyMDEsIDEyNTYxLCAwLCA0MjM3MSwgMTI1NTgsIDE1NDAsIDkxNzU0OSwgCisgICAgMTI3MTU0LCA0MDk4MywgMCwgOTgzMjM1LCAwLCA3MjAxLCAxMjU2MSwgMCwgNDIzNzEsIDEyNTU4LCAxNTQwLCA5MTc1NDksIAogICAgIDEwMDUyLCA0MDk4MiwgMCwgMCwgMTQ4OCwgMCwgMCwgMCwgOTE3NTU5LCAwLCAwLCAxNTYzLCAxMjgwMzQsIDk2MTksIAogICAgIDk4MzkzMSwgMCwgMCwgMTI3ODcyLCA3MTM2MywgNTgwMywgNzc5NywgNjA3MCwgMTAwMDYsIDAsIDI5MjIsIDYwODIsIDAsIAogICAgIDY1MDA5LCA5ODM5MzMsIDEyNTY3LCAxMjg3MDMsIDAsIDQxNDEyLCAwLCAwLCAzNjA3LCA5MjAwLCAxMDA0NiwgOTYxMiwgCkBAIC0xODgyMiwxMyArMTg4MjQsMTMgQEAKICAgICAxMjMyOCwgNTAxLCA5Mzk4NSwgMTA2MDEsIDAsIDU4MywgMCwgNDE5NzcsIDAsIDY2MDA0LCAxMTkzNTAsIDY1MDUsIAogICAgIDc0MDEwLCAwLCAxMzA2NCwgNTUyNjcsIDEyMDgxMCwgNjUwMCwgNTUyNiwgNjUwNDksIDAsIDczNzY0LCAwLCA5MjM3NiwgCiAgICAgMTI3NDUsIDk2NzgsIDAsIDEyMDU4NywgOTg2OSwgMTI4ODE1LCAxNzcxLCAwLCA4OTM2LCAwLCAwLCA0MjA4LCA3ODM0MSwgCi0gICAgNzg1NjcsIDc4MzQyLCAwLCA5ODM0NDgsIDc0MTAxLCAwLCAxMTc2MiwgMCwgOTI0MjIsIDc3OTk3LCA2ODAxMCwgNjY0NzUsIAorICAgIDc4NTY3LCA3ODM0MiwgMCwgOTgzNDQ5LCA3NDEwMSwgMCwgMTE3NjIsIDAsIDkyNDIyLCA3Nzk5NywgNjgwMTAsIDY2NDc1LCAKICAgICAwLCA1MDI3LCA3ODE3MiwgMTI4ODc4LCAwLCA1MDY5LCA3Mzg2MiwgNTAyOCwgOTg5NywgMCwgNzM3MzksIDUwMjYsIAotICAgIDk4MzI0NywgNjg2MzksIDYzMzEsIDEwMDc5LCA4OTMxLCAwLCAxNDE1LCA4ODY2LCA0MTkwMSwgNzQ3OTAsIDc4MTM4LCAKKyAgICA5ODMyNDgsIDY4NjM5LCA2MzMxLCAxMDA3OSwgODkzMSwgMCwgMTQxNSwgODg2NiwgNDE5MDEsIDc0NzkwLCA3ODEzOCwgCiAgICAgMTE5MzYxLCA5ODM1NjQsIDQzMTA2LCA1MDI5LCA2NTMwOSwgMTU4MCwgMzU5OCwgNjg0MjQsIDQxMDcwLCA3NzkwMywgMCwgCiAgICAgMzQ0MCwgNzgyMTUsIDE1NjIsIDEyODY1NiwgMTI3MTc1LCAxMTkzNTgsIDE3MTYsIDk4MzY3MCwgMTA2MDAsIDkxNzg2NywgCiAgICAgNjIwLCA0MTAwMSwgNjAyOCwgMCwgNDI4OTIsIDAsIDc0ODIyLCA1MDI0LCAxMjA4MjksIDQxMDAzLCAwLCA1MDI1LCAKLSAgICA2OTg5MiwgOTgzMjA3LCAwLCAxMTg4ODUsIDAsIDY1NTU3LCAwLCA3NDU0MSwgOTgzNTg3LCAxMTU5OSwgMTI4MjA5LCAKKyAgICA2OTg5MiwgOTgzMjA4LCAwLCAxMTg4ODUsIDAsIDY1NTU3LCAwLCA3NDU0MSwgOTgzNTg3LCAxMTU5OSwgMTI4MjA5LCAKICAgICAxMTYwMiwgNjI0MywgMTE1NzQsIDExNTgxLCAxMTU5NywgMTE1OTgsIDYyNTMsIDYxMDUsIDExNTg0LCA3NDE5NSwgMTE1NjksIAogICAgIDY1Mjc1LCA4OTA2LCAxMjcwOTYsIDU3NTUsIDI2MzYsIDAsIDEwODE1LCAxMTYxOSwgMjMwMSwgNDE1NDAsIDc4MTUsIAogICAgIDExNjE2LCA2OTc5LCAxMjA4MCwgNzcyMSwgMTE2MDQsIDc4NjksIDE1OTIsIDAsIDQyMTUyLCA3ODQ5OCwgNDEwNDgsIApAQCAtMTg5NDMsNyArMTg5NDUsNyBAQAogICAgIDEyMDM1NywgODQ1LCAwLCA0MTU2MCwgMTE5NzAsIDQ1NjIsIDkxNzkyMCwgMjkyNiwgOTE3OTE5LCA0NTY5LCA3NDEzMCwgMCwgCiAgICAgNDM0ODcsIDE5NDYzMCwgNjExLCA3NDEyOSwgNjQ4NzEsIDExODg5MSwgNjU2MjksIDAsIDE5NDg1OCwgMCwgMCwgMTI3NTQ1LCAKICAgICAxMjA1NDMsIDAsIDAsIDYyOTEsIDAsIDc4NjM5LCA0MTY2OSwgNzA5NCwgOTE3OTIxLCAwLCA5ODM1ODEsIDc0MDU0LCAKLSAgICAxMjc3NTQsIDE5NTAyOSwgMCwgODM5LCA5ODMzMTEsIDc2OTUsIDg3NjksIDY1MjQ2LCA0ODI5LCAxOTQ2NjMsIDQ4NTksIAorICAgIDEyNzc1NCwgMTk1MDI5LCAwLCA4MzksIDk4MzMxMiwgNzY5NSwgODc2OSwgNjUyNDYsIDQ4MjksIDE5NDY2MywgNDg1OSwgCiAgICAgNjQ0NjcsIDAsIDk4Mzk1NCwgMTE4OTk4LCA3MjA2LCAwLCA2NjQ3LCA0Mzk4NiwgMCwgNjk3NjYsIDAsIDY0NzY0LCA0MjEwLCAKICAgICA5ODM4NTQsIDEyNzkzNiwgODA0LCAwLCAwLCAxMjI5OCwgMCwgNjY2NTMsIDAsIDY0OTI0LCAxMDA5MSwgNzM5MzEsIDk0NjgsIAogICAgIDc0MjQ1LCAwLCAwLCA3NDI0NiwgOTI1MDMsIDEyODM5LCA2NDY2OSwgOTIyMDIsIDAsIDEyNzksIDE0MjUsIDYyMjQsIApAQCAtMTg5NjYsNyArMTg5NjgsNyBAQAogICAgIDE5OTM2LCA3ODMzLCAxMjA2OTEsIDAsIDQyNTk5LCA0MjU5NywgNDI3MDksIDEyMDQwOSwgMTI3MDQ0LCAwLCA4NTM3LCAwLCAKICAgICAwLCA5MzU0LCA5ODMxNjQsIDEyODgzMywgNDExOTksIDEwMTIxLCAyMDI4LCAwLCA5ODMxOTQsIDY5NzE1LCAwLCAzMDYyLCAKICAgICAwLCA3NDQ0NywgMTI2MDgsIDAsIDY2NDQwLCA3NTQ1LCA5NzAwLCAxMjU4MCwgOTIyMDUsIDEyMDc3NywgMTIwNTAyLCAKLSAgICA0MTE1NSwgMCwgNzQwNzEsIDAsIDk4MzQ0OSwgMTI3MTMsIDAsIDAsIDAsIDc4NzcyLCAwLCAxNzM0LCAwLCAwLCAxMjcwNDAsIAorICAgIDQxMTU1LCAwLCA3NDA3MSwgMCwgOTgzNDUwLCAxMjcxMywgMCwgMCwgMCwgNzg3NzIsIDAsIDE3MzQsIDAsIDAsIDEyNzA0MCwgCiAgICAgNjQ1OTQsIDI0NTYsIDIzMSwgMCwgNzQxNjcsIDU0MiwgMCwgMTE4Nzg2LCAwLCA5ODM5NzAsIDEyMzAsIDAsIDAsIDM1OTcsIAogICAgIDQ0NDYsIDEwNTg0LCA3NDIzNSwgOTIyMTUsIDQwMzcsIDEyNzkzOCwgODM1MiwgMCwgNTY4NywgMCwgNjQ1MTUsIDAsIAogICAgIDE5NDgwMSwgNTUyNjUsIDY3ODQ2LCA3ODQzNCwgOTcwNCwgMCwgMCwgNzAwODAsIDcxMzM4LCAwLCA4NjYwLCAxMjY0OTUsIApAQCAtMTg5ODYsNyArMTg5ODgsNyBAQAogICAgIDExOTE3MywgMCwgMCwgNzgwNSwgMCwgOTQwMDcsIDY5MzUsIDkyMjkyLCA3ODMyNSwgNzgzMjYsIDc4MzIzLCA0MzMyNywgCiAgICAgNDM5ODksIDExOTA0NiwgODQ5MiwgODI1MCwgODQ1OSwgMCwgODQ5NywgODQ5NiwgMCwgMCwgNzgzMzYsIDc4MzM5LCA5NTQzLCAKICAgICA3ODMzNSwgNzgzMzIsIDc3ODMyLCA2NTg0OSwgNzc4MzEsIDk4Mzk1MiwgMCwgMTI0NTEsIDAsIDg2ODQsIDAsIDYxMDIsIDAsIAotICAgIDUyOTgsIDAsIDUyOTQsIDAsIDAsIDk4MzQ1MSwgMTk1MDYyLCA5OTQ5LCAxMTk4MjYsIDQzNjE3LCAxMTkyMTUsIDAsIAorICAgIDUyOTgsIDAsIDUyOTQsIDAsIDAsIDk4MzQ1MiwgMTk1MDYyLCA5OTQ5LCAxMTk4MjYsIDQzNjE3LCAxMTkyMTUsIDAsIAogICAgIDEyMDczLCAwLCAwLCA3Nzg2MywgMTMxMDgsIDEyMDYxNywgMTE0MzksIDQxNDY4LCA5ODM3NDgsIDAsIDUyOTIsIDU1MjcyLCAKICAgICA5ODM4NzQsIDE5MzksIDUzMDIsIDM5NzAsIDkxNzg3OSwgMTI0NTUsIDE3OTMsIDAsIDAsIDAsIDY2NDMsIDkyNDc3LCAKICAgICA2NTI2MywgMCwgNzgzMzAsIDQxMjkzLCA3ODMyOCwgNjU5MjMsIDAsIDEzMjE5LCA5NTY5LCAwLCA3NDM4MywgMCwgNzQxOTcsIApAQCAtMTg5OTcsNyArMTg5OTksNyBAQAogICAgIDAsIDAsIDc4MDc0LCA2OTQ3LCA0MTE1MiwgODg3LCA5MjQ5LCA2NTY1LCA3ODUxMCwgNDE5OTAsIDc4NTA5LCA0MTgxMSwgCiAgICAgNzQ0NjYsIDkzOTY2LCA2NjcwLCA3Nzg4MiwgMCwgMCwgNDMwOTIsIDQzMzI1LCAwLCAxMDE2OCwgMCwgOTc4MSwgMTI4NjU1LCAKICAgICA5MTkwLCAwLCA5NjY2LCA4MjY5LCA2NTk0NCwgNzQwMDUsIDEzMDE5LCAxMTY3MCwgNjk4NjAsIDMxNSwgMTI4MTMsIAotICAgIDk4MzQ1MCwgNzg0MzIsIDc4MjU2LCA3ODM1MSwgNzgzNTIsIDAsIDk4MzY0OCwgMCwgMCwgMTM3OCwgOTUwOSwgMCwgMCwgCisgICAgOTgzNDUxLCA3ODQzMiwgNzgyNTYsIDc4MzUxLCA3ODM1MiwgMCwgOTgzNjQ4LCAwLCAwLCAxMzc4LCA5NTA5LCAwLCAwLCAKICAgICA3NDQ3NSwgMzA2NiwgOTIyMjAsIDY3ODQ3LCAwLCA5MjM1NSwgMCwgNzgzNjUsIDg3ODcsIDEyMDM3OSwgMTk0NjE2LCAKICAgICA0MTYxOCwgMTk0NjE1LCA3ODI2MSwgMTk0NjE0LCAwLCA2NDY1MiwgMCwgMTk0NjEyLCAwLCA3ODM2NiwgNDIwODgsIDAsIAogICAgIDE5NTA2MSwgNzE3NiwgNDM3NTYsIDEwMTM3LCA2MTIxLCAxMDk5NSwgNzgyNTksIDc0NTM0LCA4MTE5LCA2NDg3NCwgCkBAIC0xOTAxNiw3ICsxOTAxOCw3IEBACiAgICAgNTQ5LCAxNTcwLCAwLCAyODM1LCAwLCAxMDYyNCwgNDM2MjMsIDExMDcyLCAxMjcxOTEsIDAsIDAsIDEyNjA2LCA3ODQzMywgCiAgICAgMjgyNSwgMCwgMTA4MjUsIDgwNzksIDI4MjEsIDQxMDQ2LCA5MjMyNywgNzM2NSwgOTgzNzQ0LCAxMjA1OTMsIDEzMDcxLCAwLCAKICAgICA0NTIsIDQxMDQ5LCA0Mjg0MCwgNjM0NiwgMjgzMSwgNTQ2MSwgNzQ1OTYsIDExNDY1LCA1MjEyLCAwLCA2NDcwMywgCi0gICAgMTE5MTkxLCA0MjMwOCwgNzE4MSwgMCwgNDEzMzIsIDAsIDEyMzMzLCAwLCAxNjY4LCAwLCAwLCAwLCAxMTg3LCA5ODMzNzcsIAorICAgIDExOTE5MSwgNDIzMDgsIDcxODEsIDAsIDQxMzMyLCAwLCAxMjMzMywgMCwgMTY2OCwgMCwgMCwgMCwgMTE4NywgOTgzMzc4LCAKICAgICA0MjYyOCwgNzg1NzUsIDAsIDEyODc3NywgMCwgMzI0MCwgMTI4NTE4LCAxMjE5NCwgMCwgMTE1OTEsIDQxMDY1LCA1MzIzLCAKICAgICA4MTY2LCAwLCAwLCAwLCA3NDUzNSwgMTYyMywgNjUyOTcsIDEyODg1NiwgNTcxLCAwLCA0OTE4LCAwLCA1Mjg4LCAxMjcyOTUsIAogICAgIDg5MTYsIDY1MDQ4LCAxOTA5LCA4ODY0LCAwLCAwLCAxMDczNiwgOTI1MDgsIDExNTcxLCA3NjE1LCAxMjczMDAsIDkyMjk2LCAKQEAgLTE5MDMzLDcgKzE5MDM1LDcgQEAKICAgICA2NjAxMCwgMTE5NTUyLCA2MDc4LCA5OTU0LCAwLCAxNDc1LCAxMTkyNDcsIDk5MzgsIDYwODQsIDkxNzU0NiwgNDEwNjQsIAogICAgIDQxMDYyLCAwLCAwLCAzMjU2LCAxMDE4OSwgNDIwNzYsIDQzMjUyLCA3ODgyMywgOTE3OTA2LCA4NzI3LCAwLCA2NTg3NSwgMCwgCiAgICAgMCwgMTI3NzYyLCAxMDU2MiwgNzQyMTUsIDQzMDY1LCAwLCAwLCAzMjQ4LCA3NDI5NywgMzI2MSwgOTAxNSwgNzEzNTEsIDAsIAotICAgIDM2MzUsIDY0MzM3LCA5ODMyNzMsIDAsIDAsIDcxOTUsIDAsIDIwMDcsIDY0NDMxLCAwLCAwLCAwLCAwLCA2MzUsIDAsIDAsIAorICAgIDM2MzUsIDY0MzM3LCA5ODMyNzQsIDAsIDAsIDcxOTUsIDAsIDIwMDcsIDY0NDMxLCAwLCAwLCAwLCAwLCA2MzUsIDAsIDAsIAogICAgIDY1NjEzLCA3NzkwOSwgOTI0MjAsIDczOTk3LCAwLCAwLCAxMTkyMTgsIDc5ODQsIDg2MDAsIDc0NDM0LCAxMjc3NzAsIAogICAgIDQxNzYsIDcwMDUwLCAyMDM0LCA5MjU1MSwgMTIwODA1LCA2NTg5MSwgMTI3MDM4LCAwLCAzMTgsIDIwMzgsIDEyODg2MCwgCiAgICAgNzg1OTYsIDAsIDM2NDksIDEzMTQ5LCA0MjE0NSwgNDI3OTgsIDM2MzQsIDEyMDI5MSwgMTE4OTI3LCA2NzY3NywgMTIwMTI0LCAKQEAgLTE5MDQzLDEzICsxOTA0NSwxMyBAQAogICAgIDE5NDU2NywgMTI5ODksIDY2NDc0LCA5MzY4LCAxMjg0OCwgMTYyNCwgNDMyNzAsIDAsIDc0Mjc4LCAxMDgxOCwgMTI2NjQ0LCAKICAgICA5OTUzLCAwLCA3ODQyMSwgMTE5NCwgMzI0MiwgOTc2MSwgOTU1NSwgODU5OCwgMTIwMjk5LCA2MTY5LCAxMjg3MSwgMTU1MSwgCiAgICAgMjc5OCwgNjUxNzYsIDQ5NTgsIDQyNzUyLCAxMTkwMjUsIDAsIDY3ODc1LCAxMjAzMDEsIDM0OTUsIDY2NjQ4LCAxOTQ3NjgsIAotICAgIDAsIDY4MzY0LCA5ODMyMjIsIDQ4OTEsIDAsIDEwNjQxLCAwLCA3Mzc0NiwgMCwgNjgzNTIsIDAsIDczNzg3LCAxOTQ4MjksIAorICAgIDAsIDY4MzY0LCA5ODMyMjMsIDQ4OTEsIDAsIDEwNjQxLCAwLCA3Mzc0NiwgMCwgNjgzNTIsIDAsIDczNzg3LCAxOTQ4MjksIAogICAgIDE5NDYzMywgNzE5OSwgNjQ5NTUsIDAsIDAsIDAsIDAsIDAsIDQyNjg1LCA0MjY3OSwgMTkzLCAwLCAwLCAwLCA0MjY2NywgMCwgCi0gICAgNTI3MSwgOTIzMTgsIDkyNTE3LCAxMTg4ODIsIDEzNjIsIDEzMjk3LCAwLCAxMjgwOTQsIDAsIDk4MzMyMywgNzM3ODksIDAsIAotICAgIDY2NTgsIDQ0MjYsIDAsIDkyNjI4LCA5ODM4MzMsIDkyMzE5LCA3Mjc2LCA0MjE2MywgNTIyMCwgMCwgMCwgOTgzMzIyLCAKKyAgICA1MjcxLCA5MjMxOCwgOTI1MTcsIDExODg4MiwgMTM2MiwgMTMyOTcsIDAsIDEyODA5NCwgMCwgOTgzMzI0LCA3Mzc4OSwgMCwgCisgICAgNjY1OCwgNDQyNiwgMCwgOTI2MjgsIDk4MzgzMywgOTIzMTksIDcyNzYsIDQyMTYzLCA1MjIwLCAwLCAwLCA5ODMzMjMsIAogICAgIDI0MTYsIDMzMTAsIDQyNzAzLCAwLCAzNzksIDAsIDQzNzU1LCAwLCAwLCAzMjIzLCA2NTQ5MiwgMTI4NCwgMTk0NzcxLCAKICAgICA0NTQ5LCAwLCAwLCA5ODMxNTQsIDEyNzc2MywgMTA4MDcsIDk1NTgsIDE5NDYxMywgMCwgODUxNSwgODY4OCwgMTI4NjYsIAotICAgIDY1MzA4LCAzMjk0LCA5ODMzMjQsIDg1MjksIDEyODEwMSwgNDMzODUsIDc1NjQsIDAsIDQzMzI5LCAwLCA5MjQ1OCwgCisgICAgNjUzMDgsIDMyOTQsIDk4MzMyNSwgODUyOSwgMTI4MTAxLCA0MzM4NSwgNzU2NCwgMCwgNDMzMjksIDAsIDkyNDU4LCAKICAgICA3Mzc1NywgNjY0NTYsIDQyMzU5LCAwLCAyMDMxLCAwLCA3MjAyLCAwLCAxMjY3NiwgNDI3MjksIDkyMTk4LCAzMjE1LCAwLCAKICAgICA3NzEwLCAxNjEwLCA3MzgwMSwgMCwgMCwgNjU2ODIsIDAsIDEyMDUzNywgNjU5MjQsIDk5NzQsIDIyOCwgNjYzNTQsIDE1MDEsIAogICAgIDAsIDY0Mzk1LCA1MTc5LCA3MjAwLCA2MjI1LCAwLCA2NTc5NCwgMTcyNSwgNjU1MzMsIDgxOTYsIDc0NzYsIDc0Mzk5LCAwLCAKQEAgLTE5MDc2LDIwICsxOTA3OCwyMCBAQAogICAgIDEyNjQ2OSwgMTE5NDYsIDAsIDMyNTcsIDAsIDEyMzA3LCAxODQ1LCA5ODMxNTcsIDQzNTI2LCAwLCAwLCAxODg2LCA0MjM0MiwgCiAgICAgMTAwODksIDg3MCwgNzY0OCwgMzQ5OSwgODYwOSwgNzY1MiwgODc2LCA4NzEsIDg3NywgMCwgODc4LCA0MjAxNSwgODc5LCAKICAgICA0MzY5MiwgNDU2MywgMCwgMCwgNzU5MSwgNjU4ODcsIDg2NywgOTUyMCwgODcyLCAxMjY2MDcsIDg2OCwgODczLCA3NjQyLCAKLSAgICAwLCA4NjksIDg3NCwgNzY0NCwgMTIwNjc0LCA4NzUsIDc5MCwgMTI4MzAzLCAwLCAwLCAwLCA2NjE4MiwgOTgzMjUwLCAKLSAgICA1NDI5LCAxOTUwNTUsIDY2MTgwLCAxMjY0ODAsIDY2MTgxLCA2ODQ1MiwgOTgzMjgxLCA5ODMyNDIsIDQyMDY3LCAwLCAKKyAgICAwLCA4NjksIDg3NCwgNzY0NCwgMTIwNjc0LCA4NzUsIDc5MCwgMTI4MzAzLCAwLCAwLCAwLCA2NjE4MiwgOTgzMjUxLCAKKyAgICA1NDI5LCAxOTUwNTUsIDY2MTgwLCAxMjY0ODAsIDY2MTgxLCA2ODQ1MiwgOTgzMjgyLCA5ODMyNDMsIDQyMDY3LCAwLCAKICAgICA1NDMzLCAxMDY1NywgNzkxMSwgMTk0NjIyLCAxNTQ3LCA2NjE3NiwgNDIwMTIsIDEyMDU3NiwgNTQyNSwgNDk3NywgOTk5OSwgCiAgICAgNTMxNywgNTQyMywgNDYxMSwgMCwgNjc2MzcsIDAsIDk2NzksIDc0MTIyLCAwLCAwLCAwLCA2NjE5NCwgNDQxOCwgNjYxODQsIAogICAgIDQ2MjgsIDQyNDUsIDExOTY0OCwgMCwgMCwgMTg1MSwgMCwgMTI3MTg5LCAxMTkwOCwgMCwgOTM2MCwgMTE4ODk3LCAKLSAgICA5ODMyNzAsIDQyNzc2LCA2NjE4NywgMTI4MzcsIDg4MjksIDc3MTEsIDkyNzE0LCAwLCA5MjMyMSwgNDMzMTgsIDAsIDg4MDksIAotICAgIDY5ODgxLCAwLCA5ODMxNDIsIDEyMDYwNCwgOTgzMDUyLCA5ODM4NzMsIDAsIDk4MzI2MiwgMCwgMCwgNzQyNywgOTk1OCwgCisgICAgOTgzMjAxLCA0Mjc3NiwgNjYxODcsIDEyODM3LCA4ODI5LCA3NzExLCA5MjcxNCwgMCwgOTIzMjEsIDQzMzE4LCAwLCA4ODA5LCAKKyAgICA2OTg4MSwgMCwgOTgzMTQyLCAxMjA2MDQsIDk4MzA1MiwgOTgzODczLCAwLCA5ODMyNjMsIDAsIDAsIDc0MjcsIDk5NTgsIAogICAgIDQ1ODgsIDQzNjgwLCAwLCA3NDQ4NCwgMTk0OTY4LCAyNDMzLCAwLCAxMTk2MjIsIDMzNTIsIDc0MzYzLCA5ODM4NzYsIDAsIAogICAgIDc5MywgNzQ0MDQsIDAsIDMwNSwgNTY3LCA2NzY2MiwgODQyLCAxMjg1MTksIDgyMDgsIDAsIDQxNjk1LCAxNjQ3LCAKICAgICAxMTg4NzcsIDAsIDc4MzcsIDkxNzYyNSwgODE4LCA1MzM3LCAxOTQ2MjgsIDkxNzYyMSwgNDEzNzYsIDExOTk3OCwgCiAgICAgMTI2NTc2LCAxMjA1OTQsIDc0MDg2LCA5MTc2MTUsIDkxNzYxNCwgOTE3NjEzLCAxMDk3MywgNjYzNTksIDEzNzIsIAogICAgIDEyNzE3MiwgOTE3NjA4LCA0OTY5LCAxMjU0LCA5MTc2MDUsIDkxNzYwNCwgOTM5NjcsIDkxNzYwMiwgNjUyMjgsIDc4MjIxLCAKICAgICAxMjY2MTIsIDAsIDI4NDAsIDAsIDExOTk4MiwgOTgzOTMwLCAwLCAzMjQ1LCA5MDY4LCA2ODE5NCwgNjQ3MjUsIDAsIDAsIAotICAgIDEyOTkxLCAwLCAyNjUxLCA2ODAxNiwgOTgzMjU3LCA5MTc2MTEsIDEyNzAyNiwgMTI4ODgzLCAwLCAwLCA0MzY0OCwgCisgICAgMTI5OTEsIDAsIDI2NTEsIDY4MDE2LCA5ODMyNTgsIDkxNzYxMSwgMTI3MDI2LCAxMjg4ODMsIDAsIDAsIDQzNjQ4LCAKICAgICAxMjA4MTIsIDAsIDQzMzIyLCA5MjY2MiwgMCwgMCwgNjQzNzIsIDkyNjk4LCAzMjI2LCA2NTUsIDc1MiwgNzQ1NywgNzQ1NiwgCiAgICAgNzQ1MiwgMzI4NSwgMTI4Nzc5LCAxMjc4MjEsIDExOTk4OCwgNjU2MTAsIDIzOTEsIDAsIDkyMjQ4LCA2NzEsIDI1MCwgCiAgICAgNzQzNCwgNjE4LCA2NjgsIDYxMCwgNDI4MDAsIDc0MzEsIDExNTIsIDQyODAxLCA2NDAsIDEyMDY2NiwgNzQ0OCwgNzQzOSwgCkBAIC0xOTEwNiw3ICsxOTEwOCw3IEBACiAgICAgMTIwMjg1LCA3NDIyNSwgOTQxMTEsIDgyNjcsIDAsIDEyNzI2NSwgMCwgNzUxNiwgMCwgMjYyNSwgOTgzOTY4LCA4MDM0LCAKICAgICA3NDMwOSwgMCwgMzYzMSwgMTA5NTUsIDc4NTAsIDEyMDI5MywgODQxNiwgMCwgMCwgMCwgNDMzODQsIDEyNjYwLCAwLCAwLCAKICAgICAwLCA3NDg1MCwgNDEwNjksIDAsIDEyODE1NiwgMTIwOTksIDQzMTAsIDEwMDMyLCA2MjUyLCA3MTMsIDc5OTAsIDAsIDM5OTAsIAotICAgIDAsIDk4MzI1NCwgNjYzNjgsIDUwMTcsIDY0OTU2LCA3MDcxLCAwLCAxMTkxNDQsIDEwMzAsIDExODgwMCwgOTgzMTIwLCAKKyAgICAwLCA5ODMyNTUsIDY2MzY4LCA1MDE3LCA2NDk1NiwgNzA3MSwgMCwgMTE5MTQ0LCAxMDMwLCAxMTg4MDAsIDk4MzEyMCwgCiAgICAgOTUxMywgNDEwNTksIDkzNTcsIDAsIDE3NzMsIDAsIDEyMDM1MCwgMCwgNjMzOSwgNzc0NSwgOTg0NCwgMCwgNjQ2NTAsIDk0LCAKICAgICAxODgwLCA3NDc2NiwgOTgzODI5LCA4OTA4LCAwLCAxMjg3MDcsIDY1OTEzLCA3ODQ3MCwgMTA3NTIsIDEzMDAzLCAwLCAKICAgICAxMjY1NzIsIDQxMzA3LCA4NzMyLCAxMjAzMzgsIDAsIDE3NTcsIDY5NjQsIDQ2OTYsIDAsIDEyMDMzNSwgNjQ3ODUsIDczOTQsIApAQCAtMTkxMjUsMTcgKzE5MTI3LDE3IEBACiAgICAgNjUzMDIsIDQwOTg5LCAwLCAxOTQ2OTYsIDAsIDQyNzYwLCAwLCA5ODM1NjYsIDAsIDQwOTg3LCA0NjY3LCAwLCA5ODM5MjMsIAogICAgIDg4MjgsIDAsIDAsIDEyNDYsIDQ3NDYsIDAsIDAsIDExMDIxLCA0NzQ5LCA5MjY3NSwgMCwgOTIxLCA0NzQ0LCAwLCAxMjcwMiwgCiAgICAgMjQyLCAwLCAxNTY2LCA4MjE3LCAwLCA2NDY1MywgNzgzODYsIDEyODEyMSwgNzQwMzYsIDc0NTA1LCA0MzI3NCwgNTMxMywgCi0gICAgOTUxLCAwLCAwLCA5ODM4NTgsIDc2MDQsIDk4MzI4MiwgNDAwOSwgMTI3ODE2LCA5ODM3MDEsIDEyMDU2MiwgMCwgOTgzNzExLCAKKyAgICA5NTEsIDAsIDAsIDk4Mzg1OCwgNzYwNCwgOTgzMjgzLCA0MDA5LCAxMjc4MTYsIDk4MzcwMSwgMTIwNTYyLCAwLCA5ODM3MTEsIAogICAgIDY0ODYwLCAxMTkxMzgsIDExOTA2OSwgMCwgMTI3MzcwLCA0MDQ4LCA5ODM1OTgsIDAsIDcwMDI0LCAxNjQ2LCA3Nzg5MCwgCiAgICAgNjQ1MzQsIDczOTk1LCAxMjA3MDUsIDAsIDExOTg5MCwgMjU3OSwgMTE5OTA1LCAzMTc3LCAxMTM1NywgOTA5OSwgNDEwNywgCiAgICAgMzQ0MSwgMTE5ODk0LCAyOTc1LCA3NDQ0MiwgOTgyMiwgOTgzOTI2LCA1NTIyMCwgMTAwODQsIDczOTQzLCAxMTg4NDAsIDAsIAogICAgIDkxNzU2MiwgMTk0NjEwLCAzMzk5LCA5ODUxLCA5ODM3MDgsIDExOTA5LCA5MDU5LCAwLCA3Njg3LCAwLCA2Nzg5LCAwLCAwLCAKICAgICAwLCA3MTM2NywgMCwgMCwgMTc3NywgOTE1MSwgMTEzNywgNjk3NjcsIDc0OSwgNDIzNjYsIDAsIDUzODUsIDEyODU3NCwgCiAgICAgMTI4MjE4LCAwLCAwLCA1OTg5LCAwLCAwLCAxMjgwOTEsIDAsIDQxNjg1LCA2OTIyMywgMCwgOTc2OSwgNDE2ODQsIAotICAgIDk4MzIxNCwgNTE5LCAwLCAxMTc0MCwgNTc2NiwgMCwgMCwgMjYwMCwgODg0OCwgMTIwMTM4LCA0MTI5NywgMCwgMzY2NiwgCisgICAgOTgzMjE1LCA1MTksIDAsIDExNzQwLCA1NzY2LCAwLCAwLCAyNjAwLCA4ODQ4LCAxMjAxMzgsIDQxMjk3LCAwLCAzNjY2LCAKICAgICA3NDQ3MywgNDEzMDAsIDc0NDY4LCA2NTE2MCwgMCwgNjk2ODgsIDY5NzcxLCA3NDQ3OSwgMCwgNjU1OCwgMCwgMCwgNjk3NjUsIAogICAgIDEyMDc1MCwgMjUyLCAwLCA0MTMwMiwgMCwgMCwgMCwgNjk3NjMsIDAsIDExNzI5LCA4NzE5LCA5MDYwLCAwLCAxMjAxMzksIAotICAgIDEwNzYxLCAwLCAwLCAwLCAxMTg3OTIsIDExNzM0LCA5ODMyMjEsIDExNzMwLCAwLCA5NTkzLCA1NzU3LCAyNDAzLCA2NDgwOCwgCisgICAgMTA3NjEsIDAsIDAsIDAsIDExODc5MiwgMTE3MzQsIDk4MzIyMiwgMTE3MzAsIDAsIDk1OTMsIDU3NTcsIDI0MDMsIDY0ODA4LCAKICAgICA1NTI3NSwgMCwgMTE3MjgsIDQzNTcyLCAwLCAwLCA3NzY0LCA5ODM3MDUsIDExMDk0LCAxMjA4MjUsIDAsIDAsIDQyODIsIAogICAgIDgyOTgsIDAsIDAsIDAsIDAsIDAsIDY0NDQ5LCAwLCAxMjY2NTAsIDYzODU0LCA4NDU2LCAwLCA3NDc4MywgNjU2NzAsIDAsIAogICAgIDc4MjUwLCAwLCA3Nzc0LCAxMDYwNywgOTc5MiwgMCwgMCwgMCwgMCwgMTIwNzY0LCAwLCAxMDAxOSwgNzQ3NjIsIDAsIApAQCAtMTkxNTAsNDggKzE5MTUyLDQ4IEBACiAgICAgNzAwNjUsIDI1ODgsIDI5MTQsIDcwMTEsIDU1MjgxLCAwLCAyNDcxLCAxOTQ2MzEsIDI4ODMsIDI3NDksIDExOTU2MywgCiAgICAgNzM3NzQsIDEwOTEzLCAwLCAwLCA4NjY2LCA2NzUsIDQyNDkzLCAwLCA0MzU3MSwgMCwgNjIxOSwgMCwgOTk4MCwgNDEyMzIsIAogICAgIDEwOTI4LCAwLCA0MTE1MywgNDEyMjksIDExODk2NywgMCwgMzczOCwgOTQwMTYsIDAsIDEyNzExLCAzMTgxLCA2NjIxMiwgCi0gICAgNzQyODksIDY4NDcyLCA0Mjg1NywgODI2MiwgOTgzMzcxLCAwLCA5ODMyMjAsIDAsIDQyMzQ3LCAxMjA5MiwgOTYxNSwgCisgICAgNzQyODksIDY4NDcyLCA0Mjg1NywgODI2MiwgOTgzMzcyLCAwLCA5ODMyMjEsIDAsIDQyMzQ3LCAxMjA5MiwgOTYxNSwgCiAgICAgNzIzNCwgNzQwNDcsIDk4MzA4OCwgMCwgNDM3NDQsIDAsIDAsIDczODQ2LCAyOTM0LCAxMjcyMiwgMTIwNzYyLCA5MjIsIAogICAgIDQzOTgzLCA3NDUwNywgOTgzMTI2LCA3NDQ2MSwgMzIxOCwgMTIwNDcxLCA3NDI5MCwgMTIwNDY5LCA2NDU2MiwgMTIwNDc1LCAKICAgICA4NTY5LCAxMTQwNCwgMTE5MzIsIDczNzI4LCAzMjE0LCAxMjA0NjEsIDEyMDQ2OCwgMTIxMjgsIDMyMDcsIDY1NDg2LCAKICAgICA3ODcyOSwgMTkwMSwgNzg3MjcsIDEyNzMyNiwgMTIwNDYwLCA3NDI1LCAzMjA1LCA2ODAwMywgNzg3MzcsIDc4NzM2LCAKICAgICA3ODczNSwgNDMzODMsIDY5OTQwLCA2NTQ1OSwgMjYwNiwgNzg3MzAsIDczODk3LCAwLCAxMTQ5NiwgMTE3MywgMCwgNDEyNzIsIAotICAgIDExOTY2MSwgMCwgMCwgOTgzMzEzLCAxMjA3MzcsIDAsIDk4Mzk2MiwgOTgzMzEyLCAzNzgsIDI2MTAsIDAsIDY1MDc5LCAKLSAgICA5ODMzMTcsIDY1Njk1LCAxMjY1NTksIDM3LCA3MDY4LCAwLCAxMjA0ODAsIDEyMDQ3OSwgMzIwOSwgMTIwNDc3LCAwLCAKLSAgICAxMDYzOCwgOTc2OCwgNjk5NTIsIDExOTkwOSwgOTgzMzkxLCAwLCAwLCAwLCAwLCA2NTUxMCwgMCwgMCwgNTIzMywgCi0gICAgOTgzMzI3LCA2NDc5MiwgOTgzMzI2LCAwLCAxMjY2MzMsIDAsIDcwNjAsIDk4NDcsIDEyMDE0NCwgMTY4NSwgNTk1LCAwLCAKKyAgICAxMTk2NjEsIDAsIDAsIDk4MzMxNCwgMTIwNzM3LCAwLCA5ODM5NjIsIDk4MzMxMywgMzc4LCAyNjEwLCAwLCA2NTA3OSwgCisgICAgOTgzMzE4LCA2NTY5NSwgMTI2NTU5LCAzNywgNzA2OCwgMCwgMTIwNDgwLCAxMjA0NzksIDMyMDksIDEyMDQ3NywgMCwgCisgICAgMTA2MzgsIDk3NjgsIDY5OTUyLCAxMTk5MDksIDk4MzM5MiwgMCwgMCwgMCwgMCwgNjU1MTAsIDAsIDAsIDUyMzMsIAorICAgIDk4MzMyOCwgNjQ3OTIsIDk4MzMyNywgMCwgMTI2NjMzLCAwLCA3MDYwLCA5ODQ3LCAxMjAxNDQsIDE2ODUsIDU5NSwgMCwgCiAgICAgNzM5NzEsIDEyOTIsIDg5NDAsIDczODAsIDExMDg4LCAwLCAxMDAwNCwgMTI2OTk3LCAwLCA2NTQxLCAwLCAwLCAwLCAzMjQzLCAKICAgICA5MDE0LCA1NjA2LCAwLCA1MzgsIDY0NjIwLCA1NjAyLCA4NDY3LCA3NDM5MSwgNjU0NywgMTI4MTMyLCA4MjAzLCA3ODQ4OCwgCiAgICAgOTgzMDkwLCA4NDU4LCA2NTIxMSwgODQ5NSwgMTE5OTA0LCAwLCA5MTc1NTIsIDc3OSwgNzgzMTQsIDY0MzY3LCAyNDY1LCAKICAgICA2OTkwMSwgODE5MywgNTUyNzksIDk3MzAsIDkyODAsIDAsIDcwNjUsIDc0MTU1LCA0MzQ2LCAwLCA3Mzc5OCwgNTA0LCAwLCAKICAgICA5MjQxNCwgODk4MiwgMCwgMCwgMCwgNzgyLCAwLCAxMDg4MywgMCwgMTk0ODUyLCA3MzIsIDM3MzcsIDEyNzI1MywgMTU0OCwgCiAgICAgNjg2NTAsIDkyNTA3LCAxODMyLCA1NjA0LCA1NzM1LCA0MTE0MSwgMTE5MDIwLCA0Mzc2LCAwLCAxMTc4NywgMzc0NSwgMCwgCi0gICAgMCwgNDI4ODgsIDY1NzEyLCA5ODMyOTYsIDM4NjksIDExOTM3LCA1NzI1LCAxMjc1MzksIDE3ODMsIDY4NjQ4LCA1NzI4LCAwLCAKKyAgICAwLCA0Mjg4OCwgNjU3MTIsIDk4MzI5NywgMzg2OSwgMTE5MzcsIDU3MjUsIDEyNzUzOSwgMTc4MywgNjg2NDgsIDU3MjgsIDAsIAogICAgIDAsIDAsIDExOTE4LCA2NjU2NywgNTcyNCwgMCwgNTcyNywgNzg1MjEsIDAsIDAsIDc2NCwgMCwgMTI4MTE2LCA0MzUzMSwgMCwgCiAgICAgOTAzMywgMCwgNDI1MzIsIDYyMjMsIDExMDQyLCAxMjA3NDksIDExNDIzLCAwLCAxMTk4NjEsIDcxMzQ0LCA0MzQ2NSwgMCwgCiAgICAgMTI4MjY3LCA2NTU5LCA2NDU1NywgNzEzNDgsIDkyNjQ5LCAxMjA2NDgsIDQzMDE5LCA0MzQ3NywgMTAyMzgsIDc0NDkxLCAwLCAKICAgICA0MzM3NywgOTIyODIsIDcxMzQ2LCAxNDc4LCA5NzgzLCAxMTgyNSwgMjYwNywgNjQ3NDAsIDAsIDc3MzksIDc0NTQzLCAwLCAKICAgICAwLCAwLCA2MTMyLCAwLCA2Mzc2NSwgMCwgNzAwNTgsIDQxMTQ0LCAwLCA5MjQzOCwgNDM1MzcsIDY3NjEsIDEwMDkzLCAKICAgICA0MzY5LCA5MTc3OTEsIDAsIDk4MzE0OCwgODgyMCwgMzk0NywgMCwgMCwgMTE1MTUsIDUyNiwgMTI4MTAzLCA0MTI5NSwgCi0gICAgMTk0NjAzLCA5MTc3ODUsIDE5NDkzMiwgMCwgNzY4OCwgOTE3Nzg2LCA3Njg2LCA4Mjg4LCAxMTgxNSwgMCwgMCwgOTgzMzc0LCAKKyAgICAxOTQ2MDMsIDkxNzc4NSwgMTk0OTMyLCAwLCA3Njg4LCA5MTc3ODYsIDc2ODYsIDgyODgsIDExODE1LCAwLCAwLCA5ODMzNzUsIAogICAgIDE1NDMsIDM3MTMsIDQxMjIxLCAxMjQyMywgNDIyODEsIDkxNzc4OCwgNzQwMjQsIDEyMjkzLCAwLCA2NDM1NywgMTE3OTQsIAogICAgIDQyMDgyLCAwLCAxNzM3LCA4OTg3LCA0MjA4MSwgMCwgNzIwNSwgMCwgOTMzNSwgMTI4NTAsIDExOTg3MCwgNjU1MywgNzA1NSwgCiAgICAgMCwgODI3NywgMCwgMCwgNTQ3NSwgNzQ3OTUsIDY3ODAsIDAsIDAsIDEyOTkwLCAxMTYwLCA0MjA4NCwgMTE5NjUwLCAKICAgICA0MTIxNywgMTE5NjYwLCAxMDAxOCwgMzYwLCAwLCAwLCA2ODE3NiwgNTg2MywgMzEzNywgMCwgNDE0NywgOTgzMTcwLCAKLSAgICA0MTIxNiwgNzg0NCwgMjYxNiwgMTE5MTkwLCA2ODQ2MSwgNjUyMzQsIDk4MzI4NiwgMTMwNzYsIDMxMzUsIDk4MzI3OSwgCisgICAgNDEyMTYsIDc4NDQsIDI2MTYsIDExOTE5MCwgNjg0NjEsIDY1MjM0LCA5ODMyODcsIDEzMDc2LCAzMTM1LCA5ODMyODAsIAogICAgIDc4MTQzLCAxMTkxMzksIDMxNDIsIDkyNDUxLCA5NDA2OCwgMTA4MTksIDExOTU4MCwgMTAxODMsIDAsIDI2MDgsIDE0NzAsIAogICAgIDczOTY3LCA5NDAwOCwgNjIyNywgMCwgMTI3MTczLCA2OTc0MSwgOTgzNTgyLCA2MTYzLCA5ODM1NTgsIDAsIDEyNzMxNCwgMCwgCiAgICAgMCwgODYwMywgMCwgMTE5ODY2LCAzMzA2LCAxMDg3NiwgNDMzOTIsIDExOTU3MywgMTI3OTMxLCA1NzUxLCAwLCA2MjIyLCAwLCAKICAgICAwLCAxMjA4NiwgNzQwMywgMTYwMCwgNjQzMDksIDY0OTM5LCAwLCA2NDc4MywgOTI2NTgsIDExMzEwLCAwLCA4ODgyLCAwLCAKLSAgICAwLCAyNTcwLCA3MDIxLCAwLCAwLCA0MzExMCwgMCwgMTIzNCwgNjU0MCwgNjk3NCwgMCwgMCwgOTgzMjA5LCA1MDAyLCAwLCAKKyAgICAwLCAyNTcwLCA3MDIxLCAwLCAwLCA0MzExMCwgMCwgMTIzNCwgNjU0MCwgNjk3NCwgMCwgMCwgOTgzMjEwLCA1MDAyLCAwLCAKICAgICA0MTI4NiwgNjk5NDYsIDEyNzAxOSwgMCwgNDM1ODUsIDAsIDY1NTEsIDk4Mzk1MywgMTI4MjI5LCAwLCA0MTI4OSwgMCwgCi0gICAgMTk0NjAyLCAwLCA4OTc3LCA2MDIsIDEyMDgxNCwgMCwgMTI4Nzc4LCAxMjg2NjEsIDAsIDk4MzM2NywgNDEyNzksIDAsIDAsIAorICAgIDE5NDYwMiwgMCwgODk3NywgNjAyLCAxMjA4MTQsIDAsIDEyODc3OCwgMTI4NjYxLCAwLCA5ODMzNjgsIDQxMjc5LCAwLCAwLCAKICAgICAwLCAxMTA4MSwgNDM2MTUsIDAsIDAsIDAsIDk4MzYxMiwgMTI3MjcsIDAsIDAsIDc4Mzk3LCA5NDc1LCA3MTEyLCA2NTEwNSwgCiAgICAgMCwgOTYzMywgMTA4ODYsIDQzNTkyLCA3ODMxLCA5ODM4MjAsIDE5NDU3MSwgMCwgNzM5MTUsIDgwNzYsIDQzMDQ4LCA4MjkwLCAKICAgICA4MjkxLCA0MzA1MSwgOTI1NzAsIDAsIDI1OTYsIDQzNTg0LCAwLCAxMzExMywgMCwgMTI3NzU3LCAyMzkzLCA3MDU4LCAKICAgICA5MDg3LCA3NDA2NywgNjg2NzMsIDQxNTc0LCA3ODMzNywgMCwgNzQwNTgsIDYzNzYsIDAsIDAsIDAsIDAsIDk4NTQsIAogICAgIDEyNzc0OCwgNjQ2OTYsIDAsIDEyODIyMCwgMCwgNjk5NCwgMCwgMTcyMCwgMCwgMCwgMCwgNjUyOSwgNzA2MywgOTgzMTgyLCAKLSAgICAzNzUxLCA5MTIwLCA5ODM0NzcsIDAsIDE3OTgsIDcwOSwgMCwgMTM1NCwgMTg3NiwgMTMxNTIsIDY1NTcsIDEyNDMwLCAKKyAgICAzNzUxLCA5MTIwLCA5ODM0NzgsIDAsIDE3OTgsIDcwOSwgMCwgMTM1NCwgMTg3NiwgMTMxNTIsIDY1NTcsIDEyNDMwLCAKICAgICA4MTM3LCA5NDA5OCwgOTI2NDIsIDAsIDAsIDI0NSwgMTI4MDk3LCAxMTQ1NiwgNDEyMzMsIDcwNzAsIDAsIDk0MDQ2LCAKICAgICA2MTM2LCA5MTc2MDksIDY1Njc3LCA4NjgyLCA0MTIzNSwgOTI1OTUsIDQyMDQ1LCA5ODA0LCAxMTg5NjMsIDQzMiwgMzU5NSwgCiAgICAgMTk0OTQ1LCA2NTQzNywgMCwgNzQ0NTUsIDQyMzk5LCAwLCAwLCAxMjgyNzQsIDAsIDExOTY1OCwgMCwgMCwgMCwgNzc4OTQsIApAQCAtMTkyMDMsNyArMTkyMDUsNyBAQAogICAgIDM3MzMsIDExMzQ2LCAwLCAxMjA1NCwgMCwgNzQwOTgsIDQyODI3LCAwLCAxMzA5MSwgMCwgMCwgMCwgOTE3OTE1LCAwLCAKICAgICAxMjcwMjUsIDAsIDc0ODIxLCAwLCA5ODM3MjQsIDExOTA0MiwgMCwgMTI3ODY1LCAxMzA5MCwgNjY2NDMsIDAsIDEyNzAsIAogICAgIDExMzIsIDQyMzYwLCAwLCA3NDA5NiwgNjY2NTUsIDQyNTY5LCAxMjc4MjQsIDAsIDY0NzYxLCAwLCA0MTAyMSwgODUxMCwgCi0gICAgNDI0MzIsIDAsIDAsIDE5NDc4MiwgMCwgNjQ0OTYsIDc0MTA5LCA3MDAzMCwgOTkxNSwgMCwgOTgzMjE2LCA3MDYxLCAKKyAgICA0MjQzMiwgMCwgMCwgMTk0NzgyLCAwLCA2NDQ5NiwgNzQxMDksIDcwMDMwLCA5OTE1LCAwLCA5ODMyMTcsIDcwNjEsIAogICAgIDQxMzM2LCAzODU0LCA2OTcwMCwgMTMxNDEsIDY4NDEzLCA0MzQwMSwgNDIzMTksIDEzMDgyLCAwLCA3MDY3LCA2ODIyMSwgMCwgCiAgICAgMTI3MzgzLCAxMjcxNzEsIDAsIDAsIDEyNzc5NywgOTAyOSwgNDM1NDMsIDExOTMxNSwgMjM1MywgNjMwOCwgMCwgNzQ3OTIsIAogICAgIDI2MTEsIDExOTE4NiwgMCwgMCwgMCwgNDM2NjQsIDkyMzk5LCA2NjYyNywgMCwgNDQ4NCwgODUwOSwgMTE4OTc2LCAxMTA2NiwgCkBAIC0xOTIxNyw3ICsxOTIxOSw3IEBACiAgICAgMzk2LCA0MTU4MCwgNjgxNDYsIDAsIDEyOTAxLCA0MzA1OCwgMCwgMzQzLCA3MTI5LCA0MjY4MCwgNDEzNjAsIDc4MTU0LCAwLCAKICAgICA0NzQzLCAwLCAwLCA3NDA0MCwgNzQxMDgsIDg3NDMsIDE3MjQsIDE0MzMsIDExOTMyMiwgMCwgMzczOSwgNjI2MywgNzEzNDksIAogICAgIDAsIDM5NjQsIDY1OTIsIDAsIDEyODY5MywgNjYwNDAsIDAsIDQyNTY4LCA2OTgwNiwgMTI4MTEzLCAxNzc4LCAzOTU2LCAwLCAKLSAgICA0MjA3MCwgNjU2MywgNDMwNzUsIDkwMTgsIDk0MDA2LCA5ODMzODgsIDEyMDY3LCA0MTMxMiwgMCwgNTU0NywgNzQ1MzEsIAorICAgIDQyMDcwLCA2NTYzLCA0MzA3NSwgOTAxOCwgOTQwMDYsIDk4MzM4OSwgMTIwNjcsIDQxMzEyLCAwLCA1NTQ3LCA3NDUzMSwgCiAgICAgMTI3OTY5LCAwLCA4MTc1LCAwLCAyODQsIDgxMDgsIDkzNCwgMCwgNzQwMDEsIDE3MywgNjY0NjAsIDcxNzQsIDkyNzAzLCAKICAgICAxMTg4MjIsIDE3NTAsIDAsIDQzOTQsIDY4MzY4LCAxODA3LCA5ODM4NzksIDkyMjk4LCAwLCA1ODg5LCAwLCA3MTgwLCAwLCAKICAgICAxMTkxNDUsIDAsIDkxNzU1OCwgNDI0NzEsIDY5ODIsIDE3MjEsIDQ0MDIyLCA3ODkxLCA0MjI0MywgNDIxNjAsIDI1ODMsIApAQCAtMTkyMzgsMjYgKzE5MjQwLDI2IEBACiAgICAgMTI4NTQ0LCAwLCA1NTk2LCA1NTQ1LCA3Mjg4LCAyNTg2LCA2NDg4NywgMCwgNTIxNywgNzEzMzYsIDAsIDAsIDAsIDY0MjkzLCAKICAgICA2ODA5OCwgMjYzNSwgMCwgMCwgOTgzODM3LCAwLCA5ODM2MzIsIDc4MzUsIDcwMDQwLCAwLCAxOTQ5ODgsIDkyMjg1LCAKICAgICA2NDU1OCwgMTI3MTIyLCAwLCAxMjcxMjEsIDAsIDEyNzkxMywgMCwgNTc4NCwgOTgzMTAyLCAwLCAwLCA3MDAzMywgNDAxMSwgCi0gICAgOTE3NjE2LCA2ODEwMSwgMCwgNzg2NCwgNDI1NCwgNjUwOTUsIDk4MzQ4OCwgNTYwMCwgMzkwMywgMTI3MDgzLCAxMDQ0NywgCisgICAgOTE3NjE2LCA2ODEwMSwgMCwgNzg2NCwgNDI1NCwgNjUwOTUsIDk4MzQ4OSwgNTYwMCwgMzkwMywgMTI3MDgzLCAxMDQ0NywgCiAgICAgNTU5OCwgMTIwNywgMTIwNTIxLCA2NjY4OSwgMzUwMSwgNDI1ODIsIDQzNjAwLCAxOTQ3ODAsIDAsIDExMjQsIDU1OTcsIAotICAgIDE5NDc3OCwgMTk0NzcyLCA5MzIxLCA5ODM0NzYsIDk4MzQ3MywgOTgzNDc0LCAwLCAxNzE5LCA2ODM1NiwgNjgzNTQsIAotICAgIDk2NzEsIDExMjUsIDQzOTksIDEyNzQ3OSwgOTE3NjEwLCA5ODM0ODAsIDc2MzEsIDU0ODgsIDcxMjgsIDEyMDUzMiwgMCwgCisgICAgMTk0Nzc4LCAxOTQ3NzIsIDkzMjEsIDk4MzQ3NywgOTgzNDc0LCA5ODM0NzUsIDAsIDE3MTksIDY4MzU2LCA2ODM1NCwgCisgICAgOTY3MSwgMTEyNSwgNDM5OSwgMTI3NDc5LCA5MTc2MTAsIDk4MzQ4MSwgNzYzMSwgNTQ4OCwgNzEyOCwgMTIwNTMyLCAwLCAKICAgICA1NDkxLCAwLCA4OTM3LCA0MzA0NCwgMjYwNCwgNzQxODcsIDU0OTAsIDQzMDQ2LCA1NDg5LCA3MjEyLCAxMTc2OCwgNDMwNDMsIAogICAgIDYzMDAsIDAsIDcxMjIsIDAsIDQzOTAsIDQ1NCwgNDEzOTcsIDAsIDk4NzUsIDc1OTMsIDE5NDc5MSwgOTIyNzQsIDExODkxMywgCiAgICAgNzIwNywgMCwgNjU5MDEsIDIzOTQsIDI1NzUsIDAsIDM3NDYsIDExMDE2LCA2NTc1MiwgMTIwMDM3LCAwLCA0MzQyMywgCiAgICAgMTI4NjgzLCAxMTk4OSwgMCwgMCwgMCwgMCwgMCwgODI0OSwgMTI4MTcyLCAwLCA3ODUzMSwgNjY0MCwgNzQ4MDYsIDI1OTgsIAotICAgIDUxMywgMCwgNjU4NiwgODY1NiwgMCwgMTIwNzEwLCA2NTAwOCwgMCwgMTk0Nzg0LCAxOTQ5ODksIDE5NDc5NSwgOTgzNDY1LCAKLSAgICA5MjUxNSwgNjg0NzUsIDkzOTczLCAwLCAwLCA3ODYzNywgMTI2NDcsIDAsIDEyODA0MywgNjk4OTMsIDEwMzYsIDk4MzQ2OSwgCi0gICAgOTI0MTksIDE3MjMsIDEyODA1NiwgNzQyMTcsIDAsIDQxNTc5LCAyNDQ0LCAwLCAxMDcwNSwgNzM4NzYsIDk4MzQ2MSwgCi0gICAgNzQ0ODYsIDk4MzQ1OSwgNzQwLCAxMTkyMjIsIDE5NDk3OCwgMTk0OTg0LCAwLCA0MjM4LCAxMTA3MSwgOTQ1OSwgNjg0MzcsIAorICAgIDUxMywgMCwgNjU4NiwgODY1NiwgMCwgMTIwNzEwLCA2NTAwOCwgMCwgMTk0Nzg0LCAxOTQ5ODksIDE5NDc5NSwgOTgzNDY2LCAKKyAgICA5MjUxNSwgNjg0NzUsIDkzOTczLCAwLCAwLCA3ODYzNywgMTI2NDcsIDAsIDEyODA0MywgNjk4OTMsIDEwMzYsIDk4MzQ3MCwgCisgICAgOTI0MTksIDE3MjMsIDEyODA1NiwgNzQyMTcsIDAsIDQxNTc5LCAyNDQ0LCAwLCAxMDcwNSwgNzM4NzYsIDk4MzQ2MiwgCisgICAgNzQ0ODYsIDk4MzQ2MCwgNzQwLCAxMTkyMjIsIDE5NDk3OCwgMTk0OTg0LCAwLCA0MjM4LCAxMTA3MSwgOTQ1OSwgNjg0MzcsIAogICAgIDc4MTQwLCA3ODEzOSwgMTk0OTg1LCA4MTIxLCAxMDQzOCwgNzQ0ODcsIDQyNTc0LCAxMzI4NSwgNTUyNjMsIDExOTA3LCAKICAgICAxOTUwMDAsIDU2OTAsIDkyMjU1LCA5Mzk5MiwgMCwgNDMxODEsIDEzMDk1LCAwLCAxMjc4NTcsIDY0NDk4LCAwLCA5NTA2LCAKICAgICA2OTc4LCAxOTQ5OTMsIDc3OTkyLCAwLCAwLCAxOTQ5OTIsIDAsIDEyNzg0NSwgMTEyMiwgMzE3LCAwLCAwLCAwLCAwLCAKICAgICAxOTIwLCAwLCAxMDE3MywgODI3LCAwLCAwLCA3ODM3OCwgMTIwMTI2LCA1MjIzLCAxMzA0LCAwLCAxMTk1NjQsIDUyMjYsIAogICAgIDEyNjAyLCA5NDA0NCwgMCwgOTMyOSwgNzc1OCwgOTIzOSwgNDExNzMsIDUyMjQsIDU0ODcsIDEyMjIsIDU2OTIsIDQxNzI1LCAKICAgICA2OTIyOSwgOTY3NCwgNTY5NSwgNDE3MTEsIDY0NjI3LCAxOTkwOSwgMCwgNzQ2MDQsIDU2OTEsIDI4NywgODY2LCAyMzMsIAotICAgIDEyNzQ5MCwgOTgzNDMzLCA0MjgxNiwgOTQwMzYsIDY1MTQwLCA3NDc5NywgMCwgODgzMCwgNjU2OCwgNDIzMDAsIDEwNTI0LCAKLSAgICA0MTE3NSwgOTgzNDQwLCA5ODM0MzcsIDk4MzQzOCwgNTI5NiwgOTgzNDM2LCA0MjQ5MiwgNDM0MDIsIDkyNDY2LCAzMzAyLCAKKyAgICAxMjc0OTAsIDk4MzQzNCwgNDI4MTYsIDk0MDM2LCA2NTE0MCwgNzQ3OTcsIDAsIDg4MzAsIDY1NjgsIDQyMzAwLCAxMDUyNCwgCisgICAgNDExNzUsIDk4MzQ0MSwgOTgzNDM4LCA5ODM0MzksIDUyOTYsIDk4MzQzNywgNDI0OTIsIDQzNDAyLCA5MjQ2NiwgMzMwMiwgCiAgICAgMCwgMCwgNjUxNiwgNjUxNSwgNjUxNCwgNjUxMywgNjUxMiwgMCwgNzg1NiwgODY5MCwgMCwgMCwgMTIxMjIsIDExOTYwMiwgCiAgICAgNDM5NzYsIDAsIDE3ODUsIDY5OTI1LCA2ODYyMiwgNjUxNTMsIDE5NDgxMCwgNTEzOCwgMCwgMCwgMTE4ODY5LCAwLCA0NTQwLCAKICAgICA0MTE4MSwgMCwgNjIwMCwgMCwgNTEzNCwgMCwgMzIyLCA0NjQzLCA1MTMyLCAwLCA2Mzg5LCAxMjg1MzMsIDUxNDMsIDAsIApAQCAtMTkyNzUsMTQgKzE5Mjc3LDE0IEBACiAgICAgNTE5OCwgNDM0OSwgMTAzOTAsIDc0MjAyLCA1MTk2LCA0MzIyNCwgNjExMywgNDIwMDksIDUyMDUsIDAsIDQzMzA3LCAwLCAKICAgICAxMTg5NzMsIDAsIDEyMTM0LCAwLCAwLCAxMTg4NDMsIDkxMjYsIDQzNSwgMCwgMTIwMTQsIDEwMzc3LCA4MDkzLCA5MDc5LCAKICAgICAzMjAzLCAxOTIsIDY1MTA5LCAzMzg1LCAwLCA2NDQzMCwgNTM4MywgMTAyOTQsIDEwMzI2LCAxMjgxNzgsIDU3MzgsIAotICAgIDk4MzIxMywgMzMzNiwgNzgzNTUsIDUzNjEsIDM2MjMsIDQxMTU5LCAwLCA2ODExMiwgNzg3MiwgODU4MSwgMCwgMTI2MCwgCisgICAgOTgzMjE0LCAzMzM2LCA3ODM1NSwgNTM2MSwgMzYyMywgNDExNTksIDAsIDY4MTEyLCA3ODcyLCA4NTgxLCAwLCAxMjYwLCAKICAgICAzMTQ5LCA1MzU5LCAxMjAxMzQsIDAsIDc5MTQsIDUzNTcsIDkyMTcwLCAxMjg2NTksIDI2MjQsIDUzNjQsIDAsIDExNDMxLCAKICAgICAxMjAwMzAsIDkxMDEsIDExMDU4LCA3ODI4OCwgMCwgNzgyOTMsIDQyMjcxLCA3ODI4OSwgNDI5MTcsIDEyMDc5MywgMCwgCiAgICAgNjU1NjYsIDY3MTcsIDEwNjE5LCA0MzM2MCwgNzgzODUsIDc4Mzg0LCAxMTgzMiwgNzgzODIsIDc4MzgxLCA3ODM4MCwgCiAgICAgNzgzNzksIDkzMTksIDcwOTcsIDExOTA1NSwgNzc5MDYsIDMyMzIsIDczODI0LCA3NDU4MSwgMTIwNjMyLCAwLCAwLCAKICAgICA0MTg4OSwgOTI0NTMsIDAsIDExNjEsIDQxODk1LCA3NDEwMywgOTcwMSwgODYyMiwgMCwgMCwgNzM4MTksIDEyMDU4OCwgCiAgICAgNTAxMiwgNzc5MTIsIDQxMzYyLCA2OTg2MiwgNzgyOTYsIDExOTIxLCAwLCAxMTc2OSwgMCwgNjg2MDksIDQxMzY0LCAwLCAKLSAgICA3NDIyOCwgNDEzNTIsIDQxMzYxLCAwLCA0MTM2NiwgMCwgMzM1NiwgMCwgOTE3LCA2ODQyMiwgMTE5OTE1LCA3MTM0LCAKKyAgICA3NDIyOCwgNDEzNTIsIDQxMzYxLCAwLCA0MTM2NiwgMCwgMzM1NiwgMTE2MTEsIDkxNywgNjg0MjIsIDExOTkxNSwgNzEzNCwgCiAgICAgODE5OSwgNzgzODksIDExOTkxNywgNjc3LCAxMTk5MTYsIDAsIDExOTkzMiwgMTI3MTY5LCAwLCAwLCAwLCAzMzQ5LCAKICAgICA3NDEyNSwgNzAyMiwgODkyNywgNDczOSwgMCwgNTgwMiwgMCwgODYxNSwgMCwgMCwgNDkxLCAxMjg4MTksIDEwMTkwLCAKICAgICAxMjA2OTgsIDY1ODM3LCAxMjg4MjAsIDg0MjYsIDExMDkyLCA5ODkxLCAwLCA0MjQ5NywgNzExMywgNzU4NiwgNDIzMDUsIApAQCAtMTkzMjMsNyArMTkzMjUsNyBAQAogICAgIDAsIDc4NjIxLCAxOTQ2NzIsIDY5MjUsIDAsIDAsIDkxNzkyOSwgMCwgMTE1NjgsIDk4MzY2NCwgNDMzNjcsIDY0NTc5LCAKICAgICA5MTc5MzAsIDc4NTIsIDAsIDAsIDY3NTQsIDYzMTIsIDAsIDY0NjcyLCA2NTI5NiwgMCwgMTE4OTU3LCAwLCA0MTYsIAogICAgIDEyMjk2LCA2ODQ1NywgNzM4MzQsIDY4MTc3LCAxMTA1MCwgMTA5ODQsIDkyMjA4LCAwLCAwLCA5MjE4MiwgMCwgOTgzNjA1LCAKLSAgICA5NTMyLCA2NjM1NSwgMCwgOTgzMjI4LCA5MTc5MjUsIDY0MzQzLCAxOTUwMzIsIDEyODI4MSwgMTk1MDMxLCAwLCAxOTUwMzAsIAorICAgIDk1MzIsIDY2MzU1LCAwLCA5ODMyMjksIDkxNzkyNSwgNjQzNDMsIDE5NTAzMiwgMTI4MjgxLCAxOTUwMzEsIDAsIDE5NTAzMCwgCiAgICAgMTk1MDU3LCAxMTQ0NSwgMCwgMjExMiwgMTk1MDU2LCAxMjg4MTQsIDEwMTg1LCAxMDIxLCAxMjgxMzAsIDk1MDcsIDEwMjEwLCAKICAgICA3NDU0NCwgODAyMywgMTIwMCwgMTIyNDMsIDc4MDAxLCA1MjgyLCA3ODAwMywgOTYyNCwgMTE1NDUsIDAsIDEyMDQ5MywgCiAgICAgMzM0MywgNDQyNCwgMTEwNDcsIDE4ODUsIDQzMjY4LCAzODk2LCA3ODQ0NCwgNjY0OTcsIDI5NDcsIDM5MiwgNzg5NCwgCkBAIC0xOTM1OCw0MyArMTkzNjAsNDMgQEAKICAgICA2NjQ1NCwgOTU5MiwgNDI4NTEsIDEyNjk5MywgMTU0MiwgOTIzMDMsIDAsIDAsIDAsIDAsIDc0MzExLCA3ODQ5NywgMCwgCiAgICAgMTAxODEsIDAsIDQzNjI0LCAwLCA3Nzc5LCAwLCAxMDE5NSwgOTQ3OSwgNjAyOSwgMCwgOTIyNjgsIDk2ODksIDAsIDY1NTc3LCAKICAgICA4OTkzLCA2NjM1OCwgMCwgNDIzNzgsIDMzNjgsIDYwNiwgMTI3MDMwLCA3Njk3LCA2OTIzNywgNjk3ODcsIDIwMzAsIDAsIAotICAgIDYwMjcsIDgzNzAsIDQzMjIsIDAsIDY1MjA3LCAwLCA5ODMzMzEsIDk4MzMzMCwgOTgzMzI5LCA5ODMzMjgsIDI3MzUsIAorICAgIDYwMjcsIDgzNzAsIDQzMjIsIDAsIDY1MjA3LCAwLCA5ODMzMzIsIDk4MzMzMSwgOTgzMzMwLCA5ODMzMjksIDI3MzUsIAogICAgIDQyODMxLCA3NzkzNSwgMTI3MTIwLCA3NDg2NiwgODg4MSwgMTE5MDQ3LCAwLCAwLCA3Mzk0NiwgMCwgMCwgMCwgNjgxNDAsIAogICAgIDk4MzkxOSwgOTU3NiwgMTI4ODcyLCAzMzQ3LCA0MTYwLCA1MTU0LCA1NTI4OCwgMzc5NCwgNjY1NjQsIDg1MzAsIDEyNzA2MywgCiAgICAgNzcwOSwgNDExMTIsIDk4MzEzMiwgNjY1NjAsIDQyMDQxLCA0NTcyLCAxMjg3NiwgNjY1NjEsIDk4Mzc0OSwgNjc1OCwgCi0gICAgOTgzOTE3LCAxNjE1LCA1ODU1LCA4MDksIDAsIDkyMjgzLCAxMjgzMTYsIDEyODAwNCwgNTc5OSwgOTgzMzIwLCA3MDEwMCwgCi0gICAgOTgzMzE4LCA3MjYwLCA5ODMzMTYsIDQzMDMxLCA2NDQyNSwgNjUxMjgsIDc4ODE5LCA2NDM4NiwgNjUyNTcsIDAsIDY4NjE2LCAKKyAgICA5ODM5MTcsIDE2MTUsIDU4NTUsIDgwOSwgMCwgOTIyODMsIDEyODMxNiwgMTI4MDA0LCA1Nzk5LCA5ODMzMjEsIDcwMTAwLCAKKyAgICA5ODMzMTksIDcyNjAsIDk4MzMxNywgNDMwMzEsIDY0NDI1LCA2NTEyOCwgNzg4MTksIDY0Mzg2LCA2NTI1NywgMCwgNjg2MTYsIAogICAgIDEyMDYwNywgOTM0NywgMTI4MDY3LCA2NTMyLCAwLCAwLCAwLCAxMjcwNjAsIDY1ODI4LCAwLCAyODMsIDY4NjY1LCA3ODgxMywgCiAgICAgNTMyLCA3ODY2MywgMCwgOTgzNzg3LCAxMjA2MDksIDAsIDMzNzAsIDAsIDExMzYxLCA1NDQzLCA3ODc3OCwgODE1MywgCi0gICAgNzM3NjcsIDAsIDEwNzQxLCAwLCAyMjk4LCAwLCA5ODM5MDgsIDY1NDk1LCA2NDcwNiwgOTgzMzEwLCA0MzM0NCwgOTgzMzA4LCAKLSAgICA3MTQ0LCA5NDY2LCA3ODg2NiwgOTgyNCwgOTgzMzAzLCA5ODMzMDIsIDAsIDAsIDkxNSwgNDM0MjUsIDAsIDAsIDAsIDAsIAorICAgIDczNzY3LCAwLCAxMDc0MSwgMCwgMjI5OCwgMCwgOTgzOTA4LCA2NTQ5NSwgNjQ3MDYsIDk4MzMxMSwgNDMzNDQsIDk4MzMwOSwgCisgICAgNzE0NCwgOTQ2NiwgNzg4NjYsIDk4MjQsIDk4MzMwNCwgOTgzMzAzLCAwLCAwLCA5MTUsIDQzNDI1LCAwLCAwLCAwLCAwLCAKICAgICAxMjcxNzgsIDQzMjY0LCA3MDA5NiwgMCwgMCwgNDMwMzgsIDc4ODY0LCA2NzMwLCA3ODg2MiwgNjgxNjEsIDY0NTUwLCAKICAgICA1MTg2LCA3MzYwLCAxMjc4MzcsIDAsIDEyMTA4LCAwLCA2NTEyNCwgNDMxMjcsIDY2MDQzLCAwLCA2MzI2LCA0MzEwNywgCi0gICAgNzc4MjYsIDAsIDQyNTYyLCAwLCAxMjg4MjEsIDAsIDEyODUyMCwgMTE0ODUsIDYxMDMsIDEyNzEyMywgOTgzMjk3LCAKLSAgICAxMTcxOCwgOTgzMjk1LCAxMjg4OSwgOTI2NTcsIDEyNzEzNywgMCwgMCwgMCwgNTUyNDUsIDAsIDE2MzAsIDEyODIzMiwgCisgICAgNzc4MjYsIDAsIDQyNTYyLCAwLCAxMjg4MjEsIDAsIDEyODUyMCwgMTE0ODUsIDYxMDMsIDEyNzEyMywgOTgzMjk4LCAKKyAgICAxMTcxOCwgOTgzMjk2LCAxMjg4OSwgOTI2NTcsIDEyNzEzNywgMCwgMCwgMCwgNTUyNDUsIDAsIDE2MzAsIDEyODIzMiwgCiAgICAgNjU0ODMsIDAsIDEyNTY1LCAwLCA2NTQ3NiwgMTIwMDEzLCAwLCAxMTk1NTQsIDkyODMsIDc3MDAsIDkxNzUzNywgOTY5MCwgCiAgICAgNjU0OTksIDAsIDY0NTkzLCA1MTIsIDMzNzYsIDY4MjEwLCAwLCAxMjg2NzcsIDc3ODkyLCA2MzIsIDEyOTQwLCA3Nzg5MSwgCi0gICAgNDI1MjksIDc4NTg3LCAwLCA1OTU3LCAxMTA1OTMsIDg5MjYsIDk4MzI5MSwgOTgzMjkwLCAxMjgyNzMsIDEwNzQ1LCAKKyAgICA0MjUyOSwgNzg1ODcsIDAsIDU5NTcsIDExMDU5MywgODkyNiwgOTgzMjkyLCA5ODMyOTEsIDEyODI3MywgMTA3NDUsIAogICAgIDEwMTc0LCA3Mzc5LCA2NDU4MSwgNTM4NiwgMTIwNjg2LCAxMTcxMywgMTA2MzMsIDY5NzA4LCA1MDU2LCAwLCAwLCAwLCAKICAgICAxMjA3NzMsIDAsIDk4MTIsIDAsIDQ0NjAsIDAsIDAsIDcxMzA3LCAxMjgwMzgsIDAsIDAsIDEyNzE3NCwgNjQyNzgsIAogICAgIDkyMzcwLCA0MzQ2NiwgMCwgMCwgNjQzODksIDI5NTMsIDczODc5LCAxODAxLCAxMjgzNSwgMTE5MDI5LCAwLCA3MzgyMywgMCwgCi0gICAgNjYzNzUsIDIwODUsIDcwMiwgNDI1NzksIDc3ODg0LCA3Nzg4NSwgMTMwNzQsIDc3ODgzLCA5ODMyNzgsIDk4MzI3NywgCi0gICAgMTI4NTcwLCAxMjEwNiwgOTgzMjc0LCA3NDIwNywgMTc1NSwgMTA0ODIsIDEyODYzLCA3Nzg5OCwgMTE2MywgMjk1MSwgCisgICAgNjYzNzUsIDIwODUsIDcwMiwgNDI1NzksIDc3ODg0LCA3Nzg4NSwgMTMwNzQsIDc3ODgzLCA5ODMyNzksIDk4MzI3OCwgCisgICAgMTI4NTcwLCAxMjEwNiwgOTgzMjc1LCA3NDIwNywgMTc1NSwgMTA0ODIsIDEyODYzLCA3Nzg5OCwgMTE2MywgMjk1MSwgCiAgICAgOTUyMiwgNzQwNzksIDc4MjY2LCA2NjYwNCwgMCwgMzM4NCwgNjkyMjcsIDEwNzAyLCA4MzAsIDc3OTAyLCA3Nzg5OSwgCiAgICAgNzc5MDAsIDg0NTEsIDAsIDAsIDAsIDY5NzM5LCAwLCAwLCAwLCAwLCAyOTA4LCAwLCA0MzM4NiwgNjQ5MDIsIDQyNDMsIDAsIAotICAgIDEyMjM5LCAwLCAwLCA0NDQxLCAwLCA5ODMyNzEsIDczOTQwLCA2NDM1MiwgMTI3NTEzLCA5ODMyNjcsIDQxMSwgOTgzMjY1LCAKLSAgICA5MTk5LCA5ODMyNjMsIDQwNTYsIDExODk5MiwgNDE4OTAsIDAsIDI3MzAsIDQxNjA0LCA5ODM5MjgsIDU0MjgsIDE5NDc0MywgCisgICAgMTIyMzksIDAsIDAsIDQ0NDEsIDAsIDk4MzI3MiwgNzM5NDAsIDY0MzUyLCAxMjc1MTMsIDk4MzI2OCwgNDExLCA5ODMyNjYsIAorICAgIDkxOTksIDk4MzI2NCwgNDA1NiwgMTE4OTkyLCA0MTg5MCwgMCwgMjczMCwgNDE2MDQsIDk4MzkyOCwgNTQyOCwgMTk0NzQzLCAKICAgICAzMzY0LCA0MjI2NSwgNjQ0MzcsIDEyNzkzNSwgMTE4ODE2LCAxOTQ3NDIsIDk2ODQsIDIxNiwgMCwgMTQwMSwgMTI4MDUzLCAKICAgICA0NDAxMiwgMCwgMCwgOTI1ODUsIDkxNTgsIDc3ODQyLCA2OTkwNSwgNTc2OCwgMCwgMCwgMCwgNDg0LCAxOTQ3MzksIDAsIDAsIAotICAgIDY1ODk1LCAwLCAwLCAzMzM4LCA3MzkzNSwgNTcyLCA3MDQxLCAyNzM2LCA2NzYwNSwgOTgzMjU1LCA5Mzk2MiwgMjc5NCwgCisgICAgNjU4OTUsIDAsIDAsIDMzMzgsIDczOTM1LCA1NzIsIDcwNDEsIDI3MzYsIDY3NjA1LCA5ODMyNTYsIDkzOTYyLCAyNzk0LCAKICAgICA4ODA3LCA2NDQ5MSwgNzc4NDcsIDU0MzgsIDUyMjIsIDUzODEsIDQzMTE0LCAwLCA1MTkzLCA1MTI1LCA1NDU2LCA1NTA5LCAKICAgICA3Nzg0NiwgMTk0NzQ3LCA5NTM0LCAwLCAwLCAwLCAzNDMwLCAwLCAwLCA3ODcxNywgMCwgOTgxLCAwLCA0MzMwLCA3MzkyOSwgCiAgICAgMTIwNTM2LCAxODI0LCAxMDkwOCwgMCwgNzAzNCwgNDE2ODMsIDY0NjE3LCAwLCA3Mzc1NCwgMzk1NywgNjQzNTgsIDY0NTQ3LCAKLSAgICAxMjgyNTksIDY3NCwgNjM5OTEsIDk4MzI0MywgMjk0NiwgNTM1NCwgNTI1MSwgNTMyOCwgNTMwNywgMzc1OSwgMTE0MTEsIAorICAgIDEyODI1OSwgNjc0LCA2Mzk5MSwgOTgzMjQ0LCAyOTQ2LCA1MzU0LCA1MjUxLCA1MzI4LCA1MzA3LCAzNzU5LCAxMTQxMSwgCiAgICAgODM2NCwgNTEyMywgMTE5NjI4LCA1MjgxLCA1NDY5LCA1MTIxLCAxMTkyNDUsIDExODk5MywgMCwgNTEzMCwgMCwgMCwgCiAgICAgNzc5OTAsIDAsIDEyMDcyNiwgMTIyMSwgMjczMywgMTE3NDYsIDc3OTkxLCA1MjE2LCAwLCAwLCAwLCAwLCAzNDY4LCA3MDMzLCAKICAgICA5MjMwLCA1OTM5LCAxOTUwNTIsIDAsIDAsIDEyMDY3NywgNjg0MDAsIDcyNzgsIDEwMzIxLCAxMDI4OSwgNjQ2MTMsIAotICAgIDEwMzg1LCA0MTcwNiwgMCwgMCwgOTgzNDA1LCAwLCAxMTczOSwgOTgzNDE4LCA0MTk4MSwgMCwgNTkzOCwgMCwgNDM3NjYsIAorICAgIDEwMzg1LCA0MTcwNiwgMCwgMCwgOTgzNDA2LCAwLCAxMTczOSwgOTgzNDE5LCA0MTk4MSwgMCwgNTkzOCwgMCwgNDM3NjYsIAogICAgIDEyNDQ4LCA3NTc2LCAxMDQwMSwgMTAzMzcsIDczODUyLCAwLCAxMzA1NywgMCwgMTI2OTc2LCAwLCAxMDAwOSwgMCwgCiAgICAgNDE3MDMsIDk4MzYyOSwgMTIxNjUsIDAsIDAsIDk4ODUsIDAsIDgwNzcsIDAsIDEyNzkwOCwgMCwgMCwgMCwgOTI0NTcsIDAsIAogICAgIDQyMjAsIDEwNzI1LCAxMDQzMywgMCwgNjgzOTUsIDQ5ODcsIDY0NTE5LCAwLCAxMjgzNDAsIDAsIDAsIDAsIDEwOTcwLCAKQEAgLTE5NDA2LDUzICsxOTQwOCw1MyBAQAogICAgIDAsIDQ0NzcsIDExODk2NCwgODE0LCA0MjA2NiwgNjYxODMsIDY2MjA0LCA0Mzc4NiwgMTE5OTYxLCA2NjE5OCwgNDE4ODAsIAogICAgIDY2MTg4LCAxMTYyMywgNzgxNDgsIDExOTU1LCA2NjE5MCwgNjYxOTEsIDQxMTExLCA2NjE4OSwgNzM3ODgsIDc3ODgsIAogICAgIDQ4NDcsIDAsIDEyNzc1OSwgMCwgMCwgMCwgMTU4MSwgNjUzNSwgNzgxNjEsIDEyOTU0LCA0MzAsIDc4MTYwLCA1NTI1OSwgCi0gICAgNzgxNTgsIDEyODAzNiwgNTI3OCwgNDk0NSwgNDI4ODMsIDQ5NTAsIDk4MzQzMCwgNjg2MjUsIDk4MzQyOCwgNzI2OSwgMCwgCi0gICAgNTk2NCwgMTI5MDgsIDk4MzU1NSwgMCwgNzQ3NjQsIDc0NDc3LCAxMTkxNDYsIDE5NDkzNiwgNDk0OSwgOTgzNDIxLCA0NDMsIAotICAgIDk4MzQxOSwgNDk0NCwgNTQ2NywgMTE5NjAzLCAwLCA2NTEzNywgNjA0NCwgNjUzOTIsIDAsIDQyMTMsIDAsIDQxMzAzLCAwLCAKKyAgICA3ODE1OCwgMTI4MDM2LCA1Mjc4LCA0OTQ1LCA0Mjg4MywgNDk1MCwgOTgzNDMxLCA2ODYyNSwgOTgzNDI5LCA3MjY5LCAwLCAKKyAgICA1OTY0LCAxMjkwOCwgOTgzNTU1LCAwLCA3NDc2NCwgNzQ0NzcsIDExOTE0NiwgMTk0OTM2LCA0OTQ5LCA5ODM0MjIsIDQ0MywgCisgICAgOTgzNDIwLCA0OTQ0LCA1NDY3LCAxMTk2MDMsIDAsIDY1MTM3LCA2MDQ0LCA2NTM5MiwgMCwgNDIxMywgMCwgNDEzMDMsIDAsIAogICAgIDE5NDkzMSwgMTE5OTYyLCA0MTMwNiwgNzM5ODQsIDI2OTgsIDEyNzE1OSwgMCwgMTIwNzIsIDMxOTMsIDAsIDQxMzA0LCAKICAgICA4MjQsIDEyODY3NiwgMTIwOTEsIDc4ODkzLCA3ODg5NCwgMTE5ODE2LCA0NjczLCA2NDgwNCwgNDY3OCwgMTE5ODIwLCAKICAgICAxMTk4MTksIDY1MDU5LCAwLCA2NzM5LCAwLCA1NDgxLCAzNDkwLCAxMTk5LCAxMTk4MTEsIDgzNTYsIDY5OTQ3LCAxMTk4MzIsIAogICAgIDQ2NzcsIDEyNjg4LCAzMTAyLCAwLCA0NjcyLCA3ODE3MywgNzgxNzUsIDU1MzEsIDY4MzY3LCA0MjU3NSwgNzgxNzAsIAogICAgIDc4MTY2LCA0Njc0LCA0NTQ4LCA0NDAwNSwgMTE5OTQ5LCA2ODY1OCwgMTE5OTQ2LCA4MDI1LCA2ODYzMCwgMTI3MDI0LCAKLSAgICAxODU1LCA5ODM0MDQsIDY4NjY5LCA5ODM0MDIsIDkyNDQ1LCAxMjc1NTQsIDAsIDEyNzMzOSwgMTE5NjUyLCAyNzQ1LCAKLSAgICAxMTc5NywgOTgzNDEwLCAxMjgxNTksIDkyMDIsIDQ2NTQsIDk4MzQwNiwgOTgzNDA4LCA2ODYzOCwgNzM5OTMsIDEwNTI1LCAKLSAgICA0NjQ5LCA2NTIwOSwgOTgzNDA5LCAwLCA0NjQ4LCA0MzA4MCwgOTgzMzk4LCA5ODMzOTksIDk4MzM5NiwgNjI0NiwgNjQ5NTAsIAorICAgIDE4NTUsIDk4MzQwNSwgNjg2NjksIDk4MzQwMywgOTI0NDUsIDEyNzU1NCwgMCwgMTI3MzM5LCAxMTk2NTIsIDI3NDUsIAorICAgIDExNzk3LCA5ODM0MTEsIDEyODE1OSwgOTIwMiwgNDY1NCwgOTgzNDA3LCA5ODM0MDksIDY4NjM4LCA3Mzk5MywgMTA1MjUsIAorICAgIDQ2NDksIDY1MjA5LCA5ODM0MTAsIDAsIDQ2NDgsIDQzMDgwLCA5ODMzOTksIDk4MzQwMCwgOTgzMzk3LCA2MjQ2LCA2NDk1MCwgCiAgICAgNzgyOCwgNDY1MCwgNjc3NywgNjc3NiwgNjc3NSwgNDY1MywgNzgyMiwgNzgwMDUsIDkyMzg0LCA0MzE4NywgODY2OSwgCi0gICAgOTgzNDA3LCA2ODIxLCA2NTA5MywgMCwgNzg4ODEsIDI3MTYsIDAsIDk4MzA2MCwgOTgzNDExLCAwLCA2ODM2OSwgMTIwMDU0LCAKKyAgICA5ODM0MDgsIDY4MjEsIDY1MDkzLCAwLCA3ODg4MSwgMjcxNiwgMCwgOTgzMDYwLCA5ODM0MTIsIDAsIDY4MzY5LCAxMjAwNTQsIAogICAgIDExMDYwLCA4NTQ3LCAyNzExLCA0MjE2NSwgNzgwMjcsIDc4MDI2LCA3OTkyLCAwLCAwLCA0NjYyLCA3ODAzMywgNzgwMzIsIAogICAgIDkxNDksIDkxNDYsIDU5OSwgMjA4MSwgNzgwMzEsIDc4MDMwLCAxOTQ5NjIsIDQ2NTYsIDEwMTMwLCA2ODQ1MCwgNzgxMSwgCi0gICAgNDA5OTQsIDE5NDk2NSwgNjQxNCwgNTk2NywgNDY1OCwgMzcyNSwgNTcxMywgNTgxNCwgNDY2MSwgNDI0MzQsIDk4MzQwMywgCisgICAgNDA5OTQsIDE5NDk2NSwgNjQxNCwgNTk2NywgNDY1OCwgMzcyNSwgNTcxMywgNTgxNCwgNDY2MSwgNDI0MzQsIDk4MzQwNCwgCiAgICAgMCwgMCwgNjQ5MDQsIDkwMjYsIDEwODMzLCA3NDg2NCwgNzU0NywgNDg2NywgMCwgMTAwMDgsIDEwMjIyLCAzMDU0LCAKLSAgICAxOTQ5NTYsIDk3NDQsIDc4ODYwLCA3NjA1LCA0NjIyLCAxMTk2NTYsIDk4MzM4NywgOTQwNzAsIDk4MzM4NSwgOTgzMzg2LCAKLSAgICA5ODMzODMsIDkwNDUsIDc4ODg4LCA0MjI1LCAxOTkyNiwgNzg4ODcsIDEyODgwLCA2NTMwNywgNDYxNywgNzg4ODMsIAotICAgIDk4MzM3OCwgNDE3MzIsIDQ2MTYsIDEwNTE4LCAxMDQyMywgMTAzNTksIDk4MzM3MiwgNTk1OCwgMCwgOTgzNDI1LCA0MjE1LCAKLSAgICA5Nzg5LCA5MTc5NDEsIDQzMjEsIDQ2MjEsIDk4MzM4MSwgNDEzMTMsIDUyMiwgNTM2OCwgMCwgNjU4MDMsIDAsIDUzNjYsIAotICAgIDEyMjAxLCA1MzcyLCAwLCA5ODM0MDEsIDAsIDc3MjAsIDczOTAsIDI2OTYsIDk4MzM5MiwgMCwgNDYzOCwgOTgzMzk3LCAKKyAgICAxOTQ5NTYsIDk3NDQsIDc4ODYwLCA3NjA1LCA0NjIyLCAxMTk2NTYsIDk4MzM4OCwgOTQwNzAsIDk4MzM4NiwgOTgzMzg3LCAKKyAgICA5ODMzODQsIDkwNDUsIDc4ODg4LCA0MjI1LCAxOTkyNiwgNzg4ODcsIDEyODgwLCA2NTMwNywgNDYxNywgNzg4ODMsIAorICAgIDk4MzM3OSwgNDE3MzIsIDQ2MTYsIDEwNTE4LCAxMDQyMywgMTAzNTksIDk4MzM3MywgNTk1OCwgMCwgOTgzNDI2LCA0MjE1LCAKKyAgICA5Nzg5LCA5MTc5NDEsIDQzMjEsIDQ2MjEsIDk4MzM4MiwgNDEzMTMsIDUyMiwgNTM2OCwgMCwgNjU4MDMsIDAsIDUzNjYsIAorICAgIDEyMjAxLCA1MzcyLCAwLCA5ODM0MDIsIDAsIDc3MjAsIDczOTAsIDI2OTYsIDk4MzM5MywgMCwgNDYzOCwgOTgzMzk4LCAKICAgICAxNzkwLCA3ODI0MiwgNTk2NSwgNjQzNjMsIDY2NTY5LCA2ODY0NiwgMTI3ODMzLCA1Mzc2LCAxODM1LCA1MzM1LCAxOTQ5NjYsIAogICAgIDEyODA4OSwgNDYzMywgMCwgNjgxMTksIDExODAsIDQ2MzIsIDEyODA5MywgNTM4NywgNTMzMywgMCwgMCwgNDIwOTQsIAogICAgIDUzMzEsIDQ2MzQsIDExOTI4LCA5ODM1OTQsIDUzMzgsIDQ2MzcsIDEyODE3MCwgNTk3MSwgNDI0MTQsIDAsIDEyNjgsIAogICAgIDY1MDk3LCA0MjM2MSwgMCwgMCwgNzM4NTMsIDE0MjcsIDAsIDAsIDU5NzAsIDM0MzEsIDAsIDEwMzU4LCAxMDQyMiwgNDc1OCwgCi0gICAgOTgzMzY2LCAxNjA4LCAyNzM4LCAwLCAxMDQ1NSwgNDc1MywgNzQwMjYsIDExMzQ0LCA0MjIyLCA2MjQwLCA1MjMxLCAKLSAgICA3NDM4NCwgOTgzMzcwLCA2ODM3NywgNjI0OCwgOTgzMzU0LCA5ODMzNTUsIDk4MzM1MiwgNDIzMTgsIDkyNTgyLCA1MjI5LCAKKyAgICA5ODMzNjcsIDE2MDgsIDI3MzgsIDAsIDEwNDU1LCA0NzUzLCA3NDAyNiwgMTEzNDQsIDQyMjIsIDYyNDAsIDUyMzEsIAorICAgIDc0Mzg0LCA5ODMzNzEsIDY4Mzc3LCA2MjQ4LCA5ODMzNTUsIDk4MzM1NiwgOTgzMzUzLCA0MjMxOCwgOTI1ODIsIDUyMjksIAogICAgIDQ3NTcsIDAsIDAsIDI3MjgsIDQ3NTIsIDY0NTYzLCA2NTIzNSwgNTIzNCwgMCwgMTI4MTQ1LCAwLCAxMDcxMywgNzE2NiwgMCwgCiAgICAgMjYyMiwgNzQ2MCwgMTI3MzAyLCAwLCAwLCA4OTU0LCA3NDc2MCwgNjUxODksIDI2MzIsIDQyNjE3LCAxMDEwOCwgMTAxMSwgCiAgICAgNTU3NCwgMTg1MywgMjcwOSwgNjUxMzksIDU1NzcsIDAsIDAsIDExODg3MSwgNjg2NDEsIDg5NjUsIDc2MzUsIDQyMTc3LCAKLSAgICA1MzE2LCAwLCA1MzE0LCA2NDUxLCA1NTcyLCA2NjQ2NCwgNTMxMiwgMCwgNTUyNSwgNTMzMCwgNTMxOSwgOTgzNDEyLCAKLSAgICA5ODM4NjMsIDE5NDkwNywgNDQwMDMsIDAsIDk4MzQ3MiwgOTgzNDE1LCAxMjA0OTgsIDEyNzg1MSwgMTk1MDA5LCA5ODM4NTYsIAotICAgIDc0MDIyLCA5ODM0MTQsIDY0NjA5LCA2ODY0MywgMTIwNjM0LCA5ODM0ODEsIDU3MjEsIDk4MzM5MywgNTUxOSwgODYzMiwgCi0gICAgNjY0NjUsIDExMjY3LCA3Mzk2MSwgOTIyNzgsIDU3MjAsIDk4MzM0NCwgMTY5MiwgNDIxOSwgNDYxMCwgODY5NiwgNDMwNSwgCi0gICAgMCwgNDYwOSwgNDM0NzgsIDQ2MTQsIDU0MSwgOTgzMzQ3LCA1Mjg3LCA1MzA5LCA1Mjg1LCA2ODM4OSwgNTk2MSwgNDY0NywgCi0gICAgNTYsIDQyMTYsIDEwNTc3LCA0MTM4MSwgNjAxLCA0NjEzLCA5ODMzNDEsIDk4MzMzOCwgNzc4NDksIDQ2MDgsIDY0MjYwLCAKKyAgICA1MzE2LCAwLCA1MzE0LCA2NDUxLCA1NTcyLCA2NjQ2NCwgNTMxMiwgMCwgNTUyNSwgNTMzMCwgNTMxOSwgOTgzNDEzLCAKKyAgICA5ODM4NjMsIDE5NDkwNywgNDQwMDMsIDAsIDk4MzQ3MywgOTgzNDE2LCAxMjA0OTgsIDEyNzg1MSwgMTk1MDA5LCA5ODM4NTYsIAorICAgIDc0MDIyLCA5ODM0MTUsIDY0NjA5LCA2ODY0MywgMTIwNjM0LCA5ODM0ODIsIDU3MjEsIDk4MzM5NCwgNTUxOSwgODYzMiwgCisgICAgNjY0NjUsIDExMjY3LCA3Mzk2MSwgOTIyNzgsIDU3MjAsIDk4MzM0NSwgMTY5MiwgNDIxOSwgNDYxMCwgODY5NiwgNDMwNSwgCisgICAgMCwgNDYwOSwgNDM0NzgsIDQ2MTQsIDU0MSwgOTgzMzQ4LCA1Mjg3LCA1MzA5LCA1Mjg1LCA2ODM4OSwgNTk2MSwgNDY0NywgCisgICAgNTYsIDQyMTYsIDEwNTc3LCA0MTM4MSwgNjAxLCA0NjEzLCA5ODMzNDIsIDk4MzMzOSwgNzc4NDksIDQ2MDgsIDY0MjYwLCAKICAgICA0MTEyNCwgNTE5MCwgNjc2MjgsIDAsIDY4MTQ1LCA3MDg2LCAwLCA2Nzk5OCwgNjc2MjAsIDAsIDI3MzQsIDExMDc0LCAwLCAKICAgICA2NzYyNywgNDM1OTMsIDAsIDY3NjI1LCA1OTYwLCAwLCA4OTkyLCA0MjU5MywgMTI4MjYwLCAxNzgyLCA2NzYyMiwgNjgxMTQsIAogICAgIDExOTkzOSwgMCwgNjgxODAsIDU1MDEsIDExOTk1MiwgNDI1MDgsIDc0NDIsIDQzNjY1LCAzNTksIDQxMjUzLCA2ODM5MiwgCiAgICAgNjIzOSwgMTE5OTU2LCA0MTI1NiwgMCwgNjgxMzQsIDAsIDc0MjA5LCA5MTc1NTAsIDkzNDYsIDY5NjYwLCA0MTI1NCwgCiAgICAgMTI4MDQ3LCA0MzI5MSwgMzc2NywgNTczNywgMCwgNDg2NSwgMCwgNTc0MCwgOTE3OTk3LCA1NzM2LCA0MzY4LCA2NDcyNCwgCiAgICAgNzE5MywgNjgxMzcsIDAsIDU3MzksIDQxMDI0LCA0ODY2LCAwLCA3MzkwNCwgOTgzODMxLCA0ODY5LCAxMjA1NjMsIDAsIAotICAgIDQyMjMsIDEyODIwMSwgNjY1MCwgMTI2NTA5LCAwLCA5ODM0NTUsIDEyNzg5MCwgNDg3MCwgMTIwNDQ1LCA2ODY2MSwgNjcxNiwgCisgICAgNDIyMywgMTI4MjAxLCA2NjUwLCAxMjY1MDksIDAsIDk4MzQ1NiwgMTI3ODkwLCA0ODcwLCAxMjA0NDUsIDY4NjYxLCA2NzE2LCAKICAgICA3ODE3NiwgNjg2NjcsIDY4MzgyLCA2ODY3NiwgMTI3OTI1LCAxMDEyMiwgNDg2NCwgNjY1NjgsIDQxNDQsIDc5MzcsIDAsIAogICAgIDYyNDUsIDY4NjUyLCAyNzMyLCA0MjczNCwgNzQ1LCAwLCAxOTUwOTcsIDkyMTk1LCA0Nzc3LCA3ODIxLCAwLCA2ODYzMSwgCi0gICAgNDI3NzUsIDAsIDE5NDk1NCwgMCwgMzA5NywgMCwgNTk2NiwgOTgzNDc4LCA0Nzc4LCAwLCAxMDg2MywgMCwgNDc4MSwgMCwgCisgICAgNDI3NzUsIDAsIDE5NDk1NCwgMCwgMzA5NywgMCwgNTk2NiwgOTgzNDc5LCA0Nzc4LCAwLCAxMDg2MywgMCwgNDc4MSwgMCwgCiAgICAgNjQ0MDcsIDAsIDEyODMyMywgODU3NywgMTI4NTYyLCA2ODE5NiwgNDMyODUsIDEwMjE2LCA0NzgyLCAwLCAwLCAxMjA3NTcsIAogICAgIDY4NjE4LCAxMjMyNSwgNDMwNTYsIDg3MTcsIDAsIDAsIDQ3NzYsIDczODE4LCAxMTQ5MiwgODcwMCwgMCwgMTMxNzYsIAogICAgIDY4MzYzLCAxMDQyNiwgMCwgOTE3NTk5LCAxMDM2MiwgMTk0NzA2LCAxNzE1LCA0ODQ5LCA4MjQyLCA5NTYxLCA3MzkyMiwgCkBAIC0xOTQ2MCwxOSArMTk0NjIsMTkgQEAKICAgICA0ODU0LCAxMjc5MTgsIDUxNjQsIDk4Mzg2MSwgMTM1MCwgNTEyNCwgNjQ0MjAsIDE5OTMsIDUzNjIsIDg0NzEsIDI3MDgsIAogICAgIDkyNDcxLCAxMjQ0NSwgMzc4NSwgMjM0LCAzMTk5LCAwLCA0MTI2OCwgNDg0OCwgMjUzMCwgOTE3OTA5LCAyMDY4LCAxOTY0LCAKICAgICAwLCA3Mzc2MiwgMTA0NTgsIDAsIDg1NzYsIDc4NTQzLCAwLCAyNzA0LCA0Nzk0LCAwLCA2ODIxMSwgODMyMiwgNDc5NywgCi0gICAgNTc1MywgMCwgMjY5NCwgNDc5MiwgMCwgMjQzOSwgNjUxMDQsIDY5ODA0LCA5ODM0MTYsIDMwMywgOTgzMTAxLCA5MjYyMiwgCi0gICAgOTgzNDE3LCAyNDM3LCAwLCA0MjIxLCA0ODQ0LCA5MjIxNiwgMCwgMCwgMCwgNzAwNDIsIDAsIDQzMjkyLCAwLCAyNDQxLCAKKyAgICA1NzUzLCAwLCAyNjk0LCA0NzkyLCAwLCAyNDM5LCA2NTEwNCwgNjk4MDQsIDk4MzQxNywgMzAzLCA5ODMxMDEsIDkyNjIyLCAKKyAgICA5ODM0MTgsIDI0MzcsIDAsIDQyMjEsIDQ4NDQsIDkyMjE2LCAwLCAwLCAwLCA3MDA0MiwgMCwgNDMyOTIsIDAsIDI0NDEsIAogICAgIDEwNzM5LCA2NTA5MCwgMCwgMTE5MzI3LCAxMjY1NDEsIDI0NTEsIDI3MTQsIDExOTMyNiwgMCwgNDMzNzksIDQ5MzcsIAogICAgIDQzMzc2LCA3NTMsIDU4NDksIDEwNTk3LCA0MzA4OSwgMTE3MjIsIDkyNDgsIDkyNTU1LCA0Mjg3OSwgMTE3MjUsIDAsIDAsIAogICAgIDI3MjYsIDMxMDcsIDczOTU4LCA0OTQxLCA2NDkzNywgMTE5MjMzLCA5MTQwLCAxNDA4LCA1MjYxLCA0NjA3LCAwLCAxODEsIAotICAgIDk4MzQyMiwgNDk0MiwgOTUzOSwgNDkzOCwgMCwgNjUyMDEsIDUyNTksIDkzNjksIDY0MTg1LCA0MTQyLCA1MjU3LCAKKyAgICA5ODM0MjMsIDQ5NDIsIDk1MzksIDQ5MzgsIDAsIDY1MjAxLCA1MjU5LCA5MzY5LCA2NDE4NSwgNDE0MiwgNTI1NywgCiAgICAgOTgzNjAxLCAwLCA0OTY0LCA1MjY0LCA2NDE3OCwgNjQxNzcsIDEyOTc5LCA0MTQxMSwgNjQxODIsIDY0MTgxLCA2NDE4MCwgCiAgICAgNjQxNzksIDk0ODIsIDQ4NzMsIDQxMjMxLCAxODIyLCA0MjUyNiwgMTI4NTgxLCAxMjc1OCwgMzg2NSwgMCwgMCwgMTA1MDAsIAogICAgIDAsIDExOTAyNCwgNzgwMjgsIDkyNDA4LCA5ODMwLCA0MzY0MiwgMzg5LCAxMDg5MywgNzUyMSwgMTI3ODc5LCA0ODcyLCAKICAgICA1NDYzLCAwLCAzMTI1LCA5NTY3LCAwLCA0ODc4LCA1NDU5LCA0NjA0LCA5MTc5MzEsIDk1NTcsIDU0NjUsIDY4NjE3LCAwLCAKLSAgICAxMTQ5NCwgMTI2NDkyLCA5NTYzLCAxMDg2NSwgNzQ1NzAsIDQzMjc5LCA2NDE4NiwgOTgzNDMxLCA3ODcxNCwgNjQxOTEsIAorICAgIDExNDk0LCAxMjY0OTIsIDk1NjMsIDEwODY1LCA3NDU3MCwgNDMyNzksIDY0MTg2LCA5ODM0MzIsIDc4NzE0LCA2NDE5MSwgCiAgICAgNjQxOTAsIDg4OTgsIDY0MTg4LCAwLCA0MTAzMCwgNzg4MzYsIDAsIDkxNzgzNSwgNzg4MjAsIDkxNzgzNCwgMCwgNzg4MDUsIAotICAgIDQxMDMxLCA3ODgwMSwgMTE5NjAsIDY3NDUsIDMwODIsIDk4MzQyOSwgNzg1MzksIDczOTE5LCAxMDU3MywgNDE3NDQsIAorICAgIDQxMDMxLCA3ODgwMSwgMTE5NjAsIDY3NDUsIDMwODIsIDk4MzQzMCwgNzg1MzksIDczOTE5LCAxMDU3MywgNDE3NDQsIAogICAgIDcwNzksIDU4NTYsIDEyNzA0MywgNTE2MywgNzg4MDksIDEyODE2MiwgMTgxNywgNjY3MjQsIDc4NTM4LCAwLCAxMDU2NCwgCiAgICAgNzc2MywgMTMwNzcsIDQxODEzLCA0NDAwLCA0MTc0NSwgNjQyMDcsIDEwMjc1LCA4OTI1LCAxMDM3MSwgMTAzMDcsIDQxODE0LCAKICAgICA0MjQ4LCAwLCAwLCA0NTQxLCA2Mjk5LCA2NDIwNCwgNjQyMDMsIDY0MjAxLCA2NDIwMCwgNjQxOTksIDY0MTk4LCAxMjY0NzEsIApAQCAtMTk0ODgsMzAgKzE5NDkwLDMwIEBACiAgICAgMzkzMywgNzQ1NTksIDQ3NDAsIDc5NTQsIDAsIDAsIDQyNjA5LCAwLCA3NDE3NSwgMCwgMTI3MDE2LCAwLCA5ODM4NjQsIAogICAgIDQyMTMwLCAwLCA1MTUxLCA5MTc4MjksIDkxNzgyMywgMCwgOTM5ODAsIDAsIDc2MjAsIDM4MDAsIDY1MTIyLCAwLCAwLCAKICAgICA4MzU1LCA3ODU0LCAwLCA5NTQsIDY0OTI3LCA0MTg1LCA0MTA0NSwgMTI3MTQxLCA0MTQzOCwgNDE0MzksIDY4NjY2LCAKLSAgICAxMDcxMSwgNDU5MywgMTI3NzQ1LCAxMjA1ODQsIDk4MzQwMCwgNjQ3NzQsIDgwNTMsIDEwNTMyLCA2NjcyNywgMCwgMCwgMCwgCisgICAgMTA3MTEsIDQ1OTMsIDEyNzc0NSwgMTIwNTg0LCA5ODM0MDEsIDY0Nzc0LCA4MDUzLCAxMDUzMiwgNjY3MjcsIDAsIDAsIDAsIAogICAgIDY0NzU5LCA2MzgxLCA1MTY2LCA5ODg4LCAxMjc4MDAsIDUxNDgsIDQyODM0LCAwLCA3ODIwNSwgNzgyMDYsIDQzNzg3LCAKICAgICA3ODIwNCwgNjQxMzEsIDMxMTksIDkxNzgxNCwgMCwgMzA2MCwgNjQxMzUsIDk5ODYsIDAsIDc3ODc2LCA2MzYsIDExNjk4LCAKLSAgICAwLCA5ODM0NDMsIDk5MTYsIDExNzAxLCA3ODM2LCA0Mjc0MSwgNjQxMzcsIDgzMjAsIDc4NjQwLCA4ODYzLCA5MjQzMSwgCi0gICAgMTE5OTYwLCAxNDc3LCA0MzI4OSwgMCwgNzQzNTgsIDg2MTgsIDk4MzM5NCwgOTkwOCwgOTgzOTcyLCAwLCAwLCAzOTM3LCAKLSAgICAxMjMxMiwgMCwgOTgzMzk1LCAwLCA2NDc4MSwgOTEyLCA2MzQ5LCA0NTM2LCA5Mzk1NCwgNzQ1MzIsIDEyNjU5NCwgNjI0NCwgCi0gICAgOTIyMDksIDcxMzQxLCAzOTM1LCAxMjA2NjUsIDk4MzQ2OCwgMCwgMTE5NTAsIDUzOTIsIDQyMjQ4LCA2NTEyOSwgNjg2NTYsIAorICAgIDAsIDk4MzQ0NCwgOTkxNiwgMTE3MDEsIDc4MzYsIDQyNzQxLCA2NDEzNywgODMyMCwgNzg2NDAsIDg4NjMsIDkyNDMxLCAKKyAgICAxMTk5NjAsIDE0NzcsIDQzMjg5LCAwLCA3NDM1OCwgODYxOCwgOTgzMzk1LCA5OTA4LCA5ODM5NzIsIDAsIDAsIDM5MzcsIAorICAgIDEyMzEyLCAwLCA5ODMzOTYsIDAsIDY0NzgxLCA5MTIsIDYzNDksIDQ1MzYsIDkzOTU0LCA3NDUzMiwgMTI2NTk0LCA2MjQ0LCAKKyAgICA5MjIwOSwgNzEzNDEsIDM5MzUsIDEyMDY2NSwgOTgzNDY5LCAwLCAxMTk1MCwgNTM5MiwgNDIyNDgsIDY1MTI5LCA2ODY1NiwgCiAgICAgNTM5NywgMCwgMTIwNDYsIDEyNTk5LCAwLCAxMjgyNjEsIDUzOTUsIDAsIDUzOTMsIDM1NCwgNjg2MTUsIDExOTk0OCwgCiAgICAgNzg1MDMsIDAsIDAsIDQyMDM5LCAwLCAwLCA2NDE0MiwgNjI2LCAwLCA1ODk1LCAwLCAwLCA1NzgwLCAwLCAwLCAxMjg4NzQsIAogICAgIDAsIDAsIDQzMjk3LCA5ODMwNzksIDQzMTEsIDQ2NDQsIDg4MTgsIDAsIDEyODE4NiwgMCwgNzE0NSwgMzkxOCwgNjY0NTIsIAogICAgIDM3OTcsIDE2NDQsIDkyMzQ2LCA5NjU4LCA0MTQwLCAxMTM4NSwgNjU5NDcsIDY0NTUsIDkwMzAsIDgxMywgMTE5OTQ1LCAKICAgICA2ODEzMSwgNDE0NiwgMTE5OTU3LCA1MzYwLCAyNDY2LCAwLCA2NzY2OSwgMTE5OTQyLCA2MjQ5LCA0MjExNywgOTIyODcsIAotICAgIDEyODIyNCwgMCwgMCwgNzQwNDYsIDQzNzQ1LCA0OTExLCA5ODgsIDkxNzgwNywgMCwgOTgzNDYwLCA0MzA2MSwgNzA1NCwgCisgICAgMTI4MjI0LCAwLCAwLCA3NDA0NiwgNDM3NDUsIDQ5MTEsIDk4OCwgOTE3ODA3LCAwLCA5ODM0NjEsIDQzMDYxLCA3MDU0LCAKICAgICA2NDE0NywgMCwgNjQ5MjAsIDY4MTk1LCA2Njk4LCAxMTg5MzMsIDkyNTA2LCAwLCAxMjAwMDYsIDExOTgxLCAxMjIwMiwgMCwgCiAgICAgMTEwMzIsIDY3NjU0LCA2MDkzLCAxMTYwOCwgOTc1LCA2ODY2MiwgNjU4NDMsIDE3MCwgMCwgMCwgNDE2OSwgMCwgNDE4NTksIAogICAgIDYwNTgsIDEyMDQwMSwgMTMyMDMsIDEyMDY1NywgMCwgMCwgNjg2NTcsIDk4MTgsIDEwMTc4LCAxMDMyNCwgNDIxMDYsIAogICAgIDU4OTgsIDc0NTQwLCA0NzM4LCA0MTg1NiwgNzA2MiwgOTE3ODY1LCA0NzM3LCAxMTc3OSwgNDc0MiwgMTIwNTY0LCA5MjM5MSwgCi0gICAgNzM3MzYsIDk4MzM1NiwgOTgyNSwgNjQ0OCwgNjcxNSwgMTI3MDA4LCA0ODMxLCAwLCA5MjUyNSwgMCwgNTMwMCwgNDc0MSwgCi0gICAgNDIxMDgsIDk4MzM0NiwgNjQxNTksIDQ3MzYsIDY0MTQ4LCAwLCA4NDksIDkyMTkxLCA3ODQ5MSwgNDMyODgsIDAsIDY2NjIwLCAKLSAgICA5MTc5MTYsIDEyNzMzMSwgNjU1NDksIDk0OTYsIDY0NTk4LCAxMTg4NjYsIDk4MzM1OCwgNzg3NiwgNjgxMzIsIDkxNzg3MiwgCisgICAgNzM3MzYsIDk4MzM1NywgOTgyNSwgNjQ0OCwgNjcxNSwgMTI3MDA4LCA0ODMxLCAwLCA5MjUyNSwgMCwgNTMwMCwgNDc0MSwgCisgICAgNDIxMDgsIDk4MzM0NywgNjQxNTksIDQ3MzYsIDY0MTQ4LCAwLCA4NDksIDkyMTkxLCA3ODQ5MSwgNDMyODgsIDAsIDY2NjIwLCAKKyAgICA5MTc5MTYsIDEyNzMzMSwgNjU1NDksIDk0OTYsIDY0NTk4LCAxMTg4NjYsIDk4MzM1OSwgNzg3NiwgNjgxMzIsIDkxNzg3MiwgCiAgICAgMzkyOCwgOTE3ODcwLCA0MzM3OCwgMTA3MDYsIDcxOTgsIDAsIDQ4NDIsIDEyMDUzLCAxMjgxMjksIDAsIDQ4NDEsIDAsIAogICAgIDQxNzEsIDEyMDA4LCA2MjUxLCAzOTIzLCAxNDkwLCAwLCAxMTk1OTEsIDEyNjUxMiwgNDA5NzIsIDUyNDUsIDAsIDEwMTE0LCAKICAgICA0MjAwMSwgNDE4ODgsIDQ4NDUsIDgzMzIsIDQwOTc0LCA2NDM0NywgNDg0MCwgOTA3NywgNzgzNDYsIDE3NDcsIDkxNzg0OSwgCi0gICAgNDgyNSwgNjkyNDAsIDkxNzg1MiwgNjg2NTUsIDAsIDk4MzM4MCwgMCwgMCwgNjg2MjgsIDk4MzMzOSwgOTg1MCwgMTE4OTM3LCAKKyAgICA0ODI1LCA2OTI0MCwgOTE3ODUyLCA2ODY1NSwgMCwgOTgzMzgxLCAwLCAwLCA2ODYyOCwgOTgzMzQwLCA5ODUwLCAxMTg5MzcsIAogICAgIDM2NywgMTQ3MiwgOTE3ODU5LCA2Njg3LCAxMjc0LCAwLCA1OTA1LCAxMjMzOSwgODkxOSwgNzM5NTMsIDEwOTA3LCA2NTI2MSwgCiAgICAgMTEwMjMsIDExOTU1OSwgNDgzMCwgOTEzNCwgNzg2NjYsIDY0MTI2LCA0MzAxMSwgMCwgMTI2NjI2LCA2NDEwMSwgMCwgMCwgCiAgICAgNDgyNCwgMTA2MTQsIDExOTY1OSwgMCwgMTg4OCwgMTk2MCwgNzg2MSwgOTE3ODU2LCA3ODUyNCwgNDE4MzYsIDQzMDEyLCAKQEAgLTE5NTIwLDcgKzE5NTIyLDcgQEAKICAgICA2NDExOCwgMTI2OTk4LCAxMjk2MiwgMCwgMTI2NTgwLCA0MDE3LCAxMjgyNywgNTI0MSwgMTIwMzkyLCAwLCA0MTExOCwgCiAgICAgMzkyNCwgMCwgMTEzNjYsIDkxNzg0MywgMCwgMCwgOTE3ODQ2LCA0MTExNiwgOTE3ODQ0LCA5MTc1NjQsIDAsIDExMzYzLCAKICAgICAxMjA1NywgMTE5MTcsIDE1NjcsIDc0MDAwLCA0NzIxLCAxMjY2NDEsIDY2MjAyLCA4OTU3LCA0MTM5LCAwLCAwLCAwLCAwLCAKLSAgICAwLCAxMjc0MCwgMTI4NzAyLCA0NzIyLCA2ODE2LCAxMjc3OTMsIDEyNzU5LCA0NzI1LCA5ODMzNzUsIDQ3MjYsIDAsIAorICAgIDAsIDEyNzQwLCAxMjg3MDIsIDQ3MjIsIDY4MTYsIDEyNzc5MywgMTI3NTksIDQ3MjUsIDk4MzM3NiwgNDcyNiwgMCwgCiAgICAgMTk0ODkyLCAwLCAxMjgzMjEsIDkxNzkwNSwgMCwgMTI3NTUsIDEyNzYyLCA0MDE1LCAwLCA4MDUyLCA0NzYsIDAsIDAsIAogICAgIDEyODI5NCwgNjQyMTIsIDQxMDIwLCAxMzgyLCA2NDIwOSwgNjQyMTYsIDQ0MDAyLCA2NDIxNCwgMTY1NiwgNDE4MzEsIDAsIAogICAgIDAsIDQxODQzLCA4NzIwLCAzOTA4LCAxNDUyLCAxMzExMSwgMCwgNjQwNjcsIDEyNzMyOCwgODU1MiwgNjQxMTMsIDQxODQ1LCAKQEAgLTE5NTM3LDExICsxOTUzOSwxMSBAQAogICAgIDQ4MTQsIDAsIDQ4MTAsIDAsIDAsIDY0OTI4LCAxMDU0MywgMCwgMzUyMiwgNzEzMzUsIDQxNCwgNjU0MDQsIDAsIDE5NTAyNywgCiAgICAgNjQ1NiwgNzM4MjAsIDAsIDY2OTEsIDQyMTkzLCA5MjIyNSwgMTI4MTcxLCAwLCA3NDQ5NSwgMCwgMCwgMCwgMTE4ODIwLCAKICAgICA5NzUxLCA2NTQwNywgMTI4MDg1LCAxMTc3MCwgMzkxOSwgMCwgMCwgNjUwNjEsIDAsIDAsIDAsIDEyMjM1LCAwLCAwLCAKLSAgICAxMjcyMzMsIDY0MDkyLCA5ODM0NjIsIDY0MDgwLCAwLCA2NDA5MCwgMCwgNjk5MTMsIDEwMTYyLCAxMDMxMCwgMCwgODQ1NCwgCisgICAgMTI3MjMzLCA2NDA5MiwgOTgzNDYzLCA2NDA4MCwgMCwgNjQwOTAsIDAsIDY5OTEzLCAxMDE2MiwgMTAzMTAsIDAsIDg0NTQsIAogICAgIDEyNzg4OCwgNDIwMzgsIDM4NywgNDEzNjMsIDEyNzM3LCAwLCA0NzgwLCA0MzM2OCwgMCwgNjQzMTAsIDY0NjIxLCA2NzMyLCAKICAgICA3ODExNiwgMCwgOTgzMTM5LCAwLCA5ODMwNzQsIDg4OTYsIDAsIDM3NSwgNjk3NiwgNjY1ODIsIDExOTAwNSwgOTgzODY1LCAKLSAgICAwLCA5ODM0MjYsIDExOTIwMiwgMTE5MjAzLCAxMjUyNiwgNDMxMjAsIDIzMTUsIDAsIDE5MzgsIDExOTE5NywgMCwgNDUyOSwgCi0gICAgMTE5MjAwLCAxMTkyMDEsIDExOTE5OCwgMTE5MTk5LCA2OTY5MiwgOTgzNDI0LCA2OTY5OCwgMTMxNTAsIDY0NDkyLCAwLCAwLCAKKyAgICAwLCA5ODM0MjcsIDExOTIwMiwgMTE5MjAzLCAxMjUyNiwgNDMxMjAsIDIzMTUsIDAsIDE5MzgsIDExOTE5NywgMCwgNDUyOSwgCisgICAgMTE5MjAwLCAxMTkyMDEsIDExOTE5OCwgMTE5MTk5LCA2OTY5MiwgOTgzNDI1LCA2OTY5OCwgMTMxNTAsIDY0NDkyLCAwLCAwLCAKICAgICAyMjkxLCAxMjkwMiwgMCwgNDI4OTEsIDY2MzI3LCA3NDI5OCwgOTE3ODU3LCAxMDc5OSwgNjk2OTAsIDI1ODcsIDY2MzcyLCAKICAgICAwLCA0MTkzLCA5MjI1MCwgNDI0MSwgOTgzMDU3LCA3OTk4LCAwLCAwLCAwLCAxMjY2NDAsIDIzMTYsIDExODgyMSwgMCwgMCwgCiAgICAgMCwgNjQyOTcsIDc0Nzk5LCA5MjQ0MiwgNzQxNDAsIDAsIDUzNzMsIDAsIDk4Mzg3NywgMzc2MiwgMTAwMTUsIDEyMDY3MiwgCkBAIC0xOTU1MCwxMyArMTk1NTIsMTMgQEAKICAgICAyODAsIDc0NTU4LCAxMjczMzIsIDY4MTM4LCAxMzA3MiwgMTg5NCwgMCwgMCwgNjU0NzgsIDQzMzEwLCA3MjMxLCAwLCAKICAgICAxMTc3MywgMCwgMCwgMCwgMCwgMjU1MSwgMCwgNjQ1MywgMTAyMDAsIDYyMzUsIDk4Mzc0MywgMTE5MjM3LCAwLCAxMjg4MDUsIAogICAgIDQ0NzAsIDExODI2LCA5MTc1NTcsIDc3ODAsIDUzNjksIDExODk1OCwgNTI0OSwgMCwgNTM2NywgODc1NiwgMTI3MTQzLCAwLCAKLSAgICA1Mzc3LCAxMjA1ODUsIDY4MTQzLCAxNjg4LCA3ODI0NSwgOTgzMzQ4LCA2OTY4NSwgOTgzNzQ3LCAwLCAwLCA0NDAyMCwgCisgICAgNTM3NywgMTIwNTg1LCA2ODE0MywgMTY4OCwgNzgyNDUsIDk4MzM0OSwgNjk2ODUsIDk4Mzc0NywgMCwgMCwgNDQwMjAsIAogICAgIDY4MDgsIDQxMzE5LCAxMzAwLCAxMDY1MCwgNDE2OTIsIDY0NTA1LCAyMjkwLCAwLCAxMTk2MjQsIDE0NjUsIDEwODUwLCAKICAgICAzOTQzLCAwLCA0MTIwNSwgNDEzMTUsIDExODk2MSwgMCwgMCwgNTM1MiwgMCwgMCwgODgzOSwgNDEzMTQsIDczODQsIDc3ODUsIAogICAgIDQxMjA0LCAxMjczMjIsIDQxMjA5LCA2OTYzNywgOTIyNDEsIDQzNjA3LCAwLCAwLCA1NDIwLCAzODk3LCAxMDEzNCwgMCwgCiAgICAgNzQ0MTcsIDQwMTgsIDcxNTAsIDY4MTI3LCAwLCAwLCAwLCAwLCAxMjc1MjYsIDI1NjEsIDY4NjIxLCAzNTQyLCA3MTQ4LCAKICAgICAxMjA3NiwgNzk1MSwgNjgxNTIsIDExODg1NywgNTMwMywgNjI3NiwgMTcwNiwgMCwgNzg3NTEsIDcxNDYsIDAsIDY1MTUwLCAKLSAgICA0MTgxOSwgMCwgNzM5NTEsIDEwODQ3LCA0MTgyMiwgOTk4NSwgODYwLCAwLCAxMDUwNiwgOTgzNDI3LCA2OTY0MSwgMTA3NTMsIAorICAgIDQxODE5LCAwLCA3Mzk1MSwgMTA4NDcsIDQxODIyLCA5OTg1LCA4NjAsIDAsIDEwNTA2LCA5ODM0MjgsIDY5NjQxLCAxMDc1MywgCiAgICAgMTA4MzAsIDAsIDYxNSwgNjQ0OTAsIDc1NzQsIDkyNjE3LCA3NzkyMiwgMCwgMTI5MDksIDQzMDE2LCA2NDU1OSwgMTI3MDI4LCAKICAgICAwLCAwLCA2Nzk5NiwgMjAyMCwgMCwgNDAyMiwgMTI4NzgzLCAwLCA3NzkyMywgMTI2NTkzLCA0MTY5MSwgMCwgMCwgNzQzMjksIAogICAgIDAsIDY0NjIyLCA5MDcwLCAwLCA2ODQxMSwgMzkxMSwgNDI4MjksIDQzMTIyLCAxMDMzLCA3NDQ0MCwgMCwgNzAwMCwgMzkwNCwgCkBAIC0xOTU5MCw5ICsxOTU5Miw5IEBACiAgICAgOTQyNSwgOTQyNiwgOTQyNywgOTQyOCwgOTQyOSwgNjQ3NTgsIDIzNjIsIDk2NTUsIDAsIDIwMDQsIDkwOTYsIDk3ODIsIAogICAgIDEyODg0OCwgOTE3MiwgMTI4NTQ1LCAxOTk2NSwgMCwgNTk1NSwgNjc2NjYsIDExMDgsIDAsIDc0NzczLCAwLCAwLCA2NDc4MiwgCiAgICAgMzkyNiwgOTI0NDgsIDY1MjEwLCA4Nzk4LCAwLCA5MjE2NSwgMTM5MiwgMCwgMCwgMTI3MzY0LCAxMDYwNiwgODA2NSwgCi0gICAgMTE4ODA1LCAxMDM1MywgMTA0MTcsIDAsIDAsIDY0NTI0LCA5MjQxOCwgNDAxOSwgMCwgOTgzMjgwLCA0MzI4MCwgODIxOSwgCisgICAgMTE4ODA1LCAxMDM1MywgMTA0MTcsIDAsIDAsIDY0NTI0LCA5MjQxOCwgNDAxOSwgMCwgOTgzMjgxLCA0MzI4MCwgODIxOSwgCiAgICAgNjg0MDIsIDE4MTIsIDExOTk2MywgOTgzNjgzLCAwLCAxMjY0ODgsIDQyNDEwLCA3NDQ0OCwgMTE5MTMyLCA2MDU0LCAKLSAgICAxMDY5NywgMzE2OSwgNDIyOTcsIDQyMzIyLCAxMDY0MiwgMzkwOSwgOTk1MCwgMCwgMTI4MTM5LCA5ODMyNTMsIDY4Njc4LCAKKyAgICAxMDY5NywgMzE2OSwgNDIyOTcsIDQyMzIyLCAxMDY0MiwgMzkwOSwgOTk1MCwgMCwgMTI4MTM5LCA5ODMyNTQsIDY4Njc4LCAKICAgICAwLCAwLCAxMDQ5LCAwLCA2NTcwNywgMjMwNCwgNDE4MDYsIDkyMzI2LCA0MjMzNiwgMzkyMSwgMCwgMTE3NzUsIDY0NzYwLCAKICAgICAxMTc2NiwgMTAzOCwgNDIzMDMsIDk4MjMsIDEyNzI3OCwgNjkyMzYsIDQwMDgsIDY0MDA0LCA4NzczLCAxMDczMywgMzYsIDAsIAogICAgIDUxNTMsIDQxODA1LCAwLCA3MzczNSwgNzYzLCA0MTgwOCwgNjQ5MTAsIDk4MzEzMCwgMjAwOSwgMCwgMCwgMTI3MTQyLCAKQEAgLTE5NjM0LDkgKzE5NjM2LDkgQEAKICAgICAxMjAxMzAsIDQyNjcsIDE2MzEsIDQyMjA2LCA3Nzk4MywgMCwgMTk1MDQ2LCA2NTcwMCwgNjY1NjIsIDAsIDY0NjQ1LCAwLCAKICAgICAwLCAxMjY1ODgsIDEyNTg2LCAwLCA5MjQyLCAxMjc5MjIsIDAsIDQ1MjMsIDU4NDIsIDEwNDk1LCAzMTIyLCA5ODM3ODgsIAogICAgIDc3OTMsIDc4Mjc1LCA5MzI4LCAxMTkxMDQsIDc4MzkzLCAxMjYwNCwgMCwgNjYxNSwgMjI4NSwgOTIzNDQsIDM5ODYsIAotICAgIDQ0MDI1LCAwLCA4OTEyLCA2NDU1NSwgNzQwOSwgMCwgOTgzMzUwLCA5NTQxLCA3ODI3NiwgMCwgMTEyNzUsIDg1NDAsIAotICAgIDExNDk4LCAwLCA5ODMzNDksIDQxMDQwLCAyNDU5LCAwLCAxMzA2MCwgNDEwNDEsIDc0NDEzLCA5ODMxMzgsIDAsIDAsIAotICAgIDY4NDI3LCAxMDQ1MCwgMTI1NTEsIDQxMDQzLCA3MDIwLCAxMjAzNTMsIDM3NjUsIDk4MzM0MiwgMCwgMTYwNiwgMTIwMzQ4LCAKKyAgICA0NDAyNSwgMCwgODkxMiwgNjQ1NTUsIDc0MDksIDAsIDk4MzM1MSwgOTU0MSwgNzgyNzYsIDAsIDExMjc1LCA4NTQwLCAKKyAgICAxMTQ5OCwgMCwgOTgzMzUwLCA0MTA0MCwgMjQ1OSwgMCwgMTMwNjAsIDQxMDQxLCA3NDQxMywgOTgzMTM4LCAwLCAwLCAKKyAgICA2ODQyNywgMTA0NTAsIDEyNTUxLCA0MTA0MywgNzAyMCwgMTIwMzUzLCAzNzY1LCA5ODMzNDMsIDAsIDE2MDYsIDEyMDM0OCwgCiAgICAgMTIwMzUxLCAzMDkzLCA2ODQzNiwgMCwgOTgzMDYxLCAxMTk2MTMsIDAsIDAsIDQzMTIsIDc0MDkxLCAxMjAzMzcsIAogICAgIDEyMDMzNiwgMTE5MjMsIDQwMjMsIDEyMDMzMywgNTc2MywgOTQwMTUsIDQ4MjcsIDEwODk0LCAxMjgxMCwgNjQ0MDYsIAogICAgIDExODc4NSwgNDQ1NSwgNzQzMjEsIDQzMywgMTE5NjIwLCA2NjY2MCwgMjQ5OSwgMCwgMCwgMTE4ODM3LCAxMTk3MywgCkBAIC0xOTY0NiwxMSArMTk2NDgsMTEgQEAKICAgICA3MDA0LCAwLCA2NTg4MCwgMTI3ODg2LCAxMTkwNDgsIDIzODAsIDExMzgwLCAwLCA5Mzk5NiwgMjM3NiwgMCwgMTE5MzIwLCAKICAgICAwLCA1MTk3LCAxMjcwNDYsIDEyNzA0NywgMTI3MDQ4LCAyMzY2LCAxMjcwNTAsIDEyNzA1MSwgMTIwNTU0LCAxMjAwNDUsIDAsIAogICAgIDAsIDAsIDk4MzA4NCwgMCwgMCwgMCwgNzQxODgsIDcxMzQyLCA5ODMwODYsIDk4MzU3MywgMTIwMDQ3LCAxMjg1NzUsIDAsIAotICAgIDAsIDEyMDA0OSwgMCwgMTg0NywgMCwgMTAzMzksIDk4MzM1NywgNDIzODQsIDAsIDQyMjcsIDc0MTU4LCAwLCA5MjUwMSwgCi0gICAgNDMwMzIsIDAsIDQyMzY1LCAwLCAxMjY3MSwgMTEzODQsIDAsIDk4MzQ1NywgMCwgNjQ3OTcsIDk4MzMzNywgNTgyMCwgCi0gICAgOTgzMzM2LCAxMjAwNTIsIDEyMDA2NSwgMCwgMTIwMDY0LCAxMjA2NTAsIDQyMTM3LCA5ODkzLCAyNzU0LCAxMjY2NCwgCisgICAgMCwgMTIwMDQ5LCAwLCAxODQ3LCAwLCAxMDMzOSwgOTgzMzU4LCA0MjM4NCwgMCwgNDIyNywgNzQxNTgsIDAsIDkyNTAxLCAKKyAgICA0MzAzMiwgMCwgNDIzNjUsIDAsIDEyNjcxLCAxMTM4NCwgMCwgOTgzNDU4LCAwLCA2NDc5NywgOTgzMzM4LCA1ODIwLCAKKyAgICA5ODMzMzcsIDEyMDA1MiwgMTIwMDY1LCAwLCAxMjAwNjQsIDEyMDY1MCwgNDIxMzcsIDk4OTMsIDI3NTQsIDEyNjY0LCAKICAgICAxMjAwNjMsIDAsIDczNzcsIDEyNzg2NywgNDE3OTksIDY1NTMwLCAxNzExLCAxMjk4NCwgNDMwMzksIDMxMTQsIDYyNTUsIAotICAgIDk4MzMzMiwgMTE4OTM4LCAwLCAxMDg1MywgOTI2LCA5ODMzNjEsIDc0MTg0LCA5ODMzNjAsIDEyMDA1NSwgMCwgNDMxNzUsIAorICAgIDk4MzMzMywgMTE4OTM4LCAwLCAxMDg1MywgOTI2LCA5ODMzNjIsIDc0MTg0LCA5ODMzNjEsIDEyMDA1NSwgMCwgNDMxNzUsIAogICAgIDAsIDQzMDM3LCA0MTc5OCwgNDEwMzUsIDExNTgzLCAxMjc3NjksIDQxODAxLCAxMTkwODgsIDExOTYwNSwgNTIwLCA0MjAwLCAKICAgICAxMjY5OSwgODMzMSwgMCwgMzA5MSwgNDEwMzQsIDEyNzM1MywgOTgzNjcyLCA4MzYwLCAwLCA3ODA0NCwgMzIxLCA0MjI5LCAKICAgICA2NDU0MywgOTE3OTQ2LCA2NTU2MywgMCwgOTE3OTc0LCAyODYxLCA0Mzc5MywgMTAwOTUsIDAsIDkxOTUsIDkyMzg2LCAKQEAgLTE5NjY0LDcgKzE5NjY2LDcgQEAKICAgICA3ODIyMiwgMTM0NiwgMCwgOTE3NjMxLCA2NDU3MywgNjQ4OTcsIDQyMywgMTgxOCwgNjUxNDQsIDAsIDgyNzIsIDEyNzgxMiwgCiAgICAgMTk5MTEsIDQyMTgsIDMwODcsIDY0OTYwLCAxMjcyMzQsIDQzNTY0LCAwLCAwLCA5NTg0LCAxMDQ2NSwgOTgzODkzLCAKICAgICA3NDM1OSwgMTI2MjYsIDkxMDYsIDAsIDQyNjQyLCAxMjAyMzAsIDY0NzUwLCA5MzkwLCAwLCA0MTc5NywgMCwgMCwgMjY1LCAKLSAgICA0MTc5NSwgNjQ2NjYsIDEyNjUwOCwgNDM1MzAsIDI3NTIsIDAsIDAsIDk4MzQ4NSwgNTksIDAsIDk4MzU5MywgMCwgOTIzNzEsIAorICAgIDQxNzk1LCA2NDY2NiwgMTI2NTA4LCA0MzUzMCwgMjc1MiwgMCwgMCwgOTgzNDg2LCA1OSwgMCwgOTgzNTkzLCAwLCA5MjM3MSwgCiAgICAgNzc4NzMsIDQxODEwLCAwLCA3MDEwLCAwLCA0MTgwOSwgNDE0OTUsIDExOTM2NCwgMCwgNDIyNTIsIDQyMjEzLCA4MDA5LCAKICAgICAzMzA1LCA0MzAzMywgNTExLCA5MjcwMCwgNjYyNTUsIDEzMTI3LCAxMjAwNjcsIDAsIDc0Mzk3LCAxMjAyMzUsIDkxNzk3NywgCiAgICAgNjU5MTUsIDE0MDAsIDQxODEyLCAxMDY4NSwgMTk0ODcwLCAyMTAzLCAxMDM4NywgNDQ1MywgNDMyNzYsIDkxNzc4MywgCkBAIC0xOTcwMyw3ICsxOTcwNSw3IEBACiAgICAgNzg3MTksIDY2NTczLCAwLCA3ODcyNCwgNzg3MTIsIDExNzYxLCAxOTQ2NTUsIDAsIDQxMDk0LCAwLCAwLCAxOTQ4OTMsIDAsIAogICAgIDkyNjg5LCA2MTk2LCA2OTQ1LCA5Mzk2OSwgMTk0ODkwLCAxMjgxODQsIDEyMDQ5MSwgMTE4MTYsIDE5NDk0MywgNTczMywgCiAgICAgMjkzMCwgMCwgMCwgNDEwOTgsIDAsIDQxMDkzLCAwLCA2NjYyNiwgNTg4LCA5NzYwLCAwLCAxOTQ3MTcsIDEyMzgsIDIwMCwgCi0gICAgOTgzMjA1LCAxNjYwLCA3MzkxNiwgMCwgMTE4OTA1LCA3NDM2MiwgMCwgOTI0ODUsIDE5NDY1MSwgMCwgOTgzNjk3LCAzMzk0LCAKKyAgICA5ODMyMDYsIDE2NjAsIDczOTE2LCAwLCAxMTg5MDUsIDc0MzYyLCAwLCA5MjQ4NSwgMTk0NjUxLCAwLCA5ODM2OTcsIDMzOTQsIAogICAgIDE5NDg5NCwgMTIwNjY4LCAwLCAwLCAxMjczNTgsIDY2MjE5LCAxMjcxODMsIDQzMjg0LCAxOTQ2NTYsIDc4MTcsIDE4NDEsIAogICAgIDExMDU1LCAxMjA1MzMsIDE5NDk3OSwgMTk0OTgyLCAxNjY5LCAxMDc3NiwgMTk0OTgxLCA3NzAxLCAxOTQ5ODAsIDAsIAogICAgIDE5NDk5NSwgMTczMiwgNDAzMCwgMCwgMzk2MywgNjY2MTEsIDEyNzUzMCwgNDE3NjgsIDY0OTEsIDAsIDY1MzI0LCA5MTQsIApAQCAtMTk3MzIsNyArMTk3MzQsNyBAQAogICAgIDY4NDY1LCAxMzAyNywgNDI4MjQsIDEyMDU3NCwgMTAzOSwgNzE1MSwgMTAxNTUsIDU3NDUsIDE4OCwgNDE4NTgsIDExNTkyLCAKICAgICAwLCA3NDAxNSwgOTA1NSwgNDE4NTMsIDQ4NTgsIDkxNzc4MCwgMCwgNDM2LCA0NzcxLCAwLCAyNzg2LCAwLCA0ODU2LCAKICAgICA4MDUxLCAwLCAxMTk2MDksIDcxMzI3LCA5NjQ0LCAwLCAwLCAwLCAxOTQ5MTYsIDEyMDczMiwgNjY3MTAsIDExODgzNCwgCi0gICAgOTgzMzUxLCA3MzkwNiwgMTI4NjgwLCAxMjcxMTQsIDAsIDEwMjM0LCA1ODQzLCAxMTkzOSwgMCwgNDIxNTcsIDAsIDMxNTcsIAorICAgIDk4MzM1MiwgNzM5MDYsIDEyODY4MCwgMTI3MTE0LCAwLCAxMDIzNCwgNTg0MywgMTE5MzksIDAsIDQyMTU3LCAwLCAzMTU3LCAKICAgICAxOTQ5MTgsIDY4MzkzLCAwLCAzNTA0LCAxMTkxNzgsIDAsIDEwODIyLCA1MTQ5LCA2NjAyOSwgMTAyMjYsIDY1MTQyLCAKICAgICAxMjgwMjUsIDM1OTQsIDQyNDI0LCAxOTQ5NTksIDQwLCAxMjY1NywgOTgzNjU2LCAwLCAzODYsIDAsIDg4MzQsIDAsIAogICAgIDEyODE1LCA0MzU3NCwgMCwgNzM5MDcsIDAsIDc0MTk2LCA3MjIwLCA3NDUwNCwgMCwgNzQzMTYsIDAsIDY1MzIyLCA0MzA0LCAKQEAgLTE5NzQ2LDcgKzE5NzQ4LDcgQEAKICAgICA0MjUwNywgMTk2MiwgNDMzMDUsIDc4NDc2LCA0MjUwNSwgMTE2NjAsIDAsIDIwNzIsIDkyMzEyLCA2OTk1LCA3NDE3MywgCiAgICAgNTQzNywgNzQxNzQsIDEwNjY5LCA4NzAyLCA3OTY0LCA5MjM1MiwgMCwgMTk5LCAxOTQ4NDMsIDQxMDUsIDE5NDg0NSwgCiAgICAgMTk0Njk5LCAxOTQ4NDcsIDE5NDcxMCwgMTE5ODc1LCAxMzE0OCwgNzU2MCwgNzg0NzksIDkyMjYsIDc4NDgwLCAxOTUwNzAsIAotICAgIDY0NzIsIDY1ODE0LCA3Mzk1NCwgMCwgNDcyNCwgMCwgMCwgOTE5MSwgMCwgNjQ0MzIsIDk4MzgwOCwgOTgzMjQxLCAKKyAgICA2NDcyLCA2NTgxNCwgNzM5NTQsIDAsIDQ3MjQsIDAsIDAsIDkxOTEsIDAsIDY0NDMyLCA5ODM4MDgsIDk4MzI0MiwgCiAgICAgMTk1MDI0LCAxMDE5NiwgNzg4NiwgMCwgNjU4NSwgMCwgNjY4MCwgMTk1MDQyLCAwLCAxOTUwNTEsIDY2NzksIDc0NDEyLCAKICAgICA5MjI1MSwgMTk0ODY2LCA3NDQyMSwgMTEzODIsIDk4MzYyMiwgOTgzNjI4LCAxMjc4OTEsIDEyNzQ4NCwgMTk0ODMzLCAKICAgICAxOTQ4MzIsIDY2ODEsIDEyNzQ4MiwgMTI2OTMsIDE5NDgzNiwgNDI3MjcsIDc4MTk2LCAxMjgyNTIsIDc4MTk1LCA2NTQ0MiwgCkBAIC0xOTc5MiwxMSArMTk3OTQsMTEgQEAKICAgICA2NDAzMiwgNDI3MzUsIDY0MDM4LCA2NDAzNywgNjQwMzYsIDY0MDM1LCA0MjkxLCAxOTQ5MjgsIDY0MDE1LCA2NDAxNCwgCiAgICAgNjQ2ODEsIDE5NDkzMCwgMCwgNzgxNDUsIDAsIDQzMDkwLCAwLCAzNDc2LCA4OTczLCA2NDAxMiwgNDI0NzMsIDY0MDEwLCAKICAgICA2NDAwOCwgNjQwMDcsIDIwMDMsIDc3MDYsIDY0NTE3LCA3ODE1MywgMjUzOCwgNjQwMDksIDIwNCwgMCwgNDgwMiwgNDExMSwgCi0gICAgODIzOSwgOTA5OCwgNDgwNSwgNjQwMDEsIDY0MDU3LCA3ODg1LCA3MjQ3LCA2NDA1NCwgOTgzMjU4LCAwLCA0NzY3LCA5MzQzLCAKKyAgICA4MjM5LCA5MDk4LCA0ODA1LCA2NDAwMSwgNjQwNTcsIDc4ODUsIDcyNDcsIDY0MDU0LCA5ODMyNTksIDAsIDQ3NjcsIDkzNDMsIAogICAgIDY0MDQ5LCA2NDA0OCwgMTIwMDM0LCAxMTMzLCA2NDA1MywgNjQwNTIsIDQzNDUzLCA2NDA1MCwgNDEzNDAsIDExODk3NSwgCiAgICAgMTk0ODM1LCAxMDAwNSwgMTIzMjksIDQxMzMzLCAwLCA4NDg5LCAxOTQyLCAwLCAxOTQ4MzQsIDQyNTIwLCAxMjgyNDksIDAsIAogICAgIDAsIDEwNzYwLCA2NDAyMywgNjQwMjIsIDY0MDIxLCA2NTgyLCA0MzY3MCwgMCwgNjQwMjUsIDkxNjcsIDQyMTUxLCA3ODI0NCwgCi0gICAgOTgzMjI2LCAyMDI2LCA2NDAxOSwgNjQwMTgsIDY0MDE3LCA2NDAxNiwgMTI3NjgsIDAsIDc1ODIsIDc4MjUyLCA3ODI0OCwgCisgICAgOTgzMjI3LCAyMDI2LCA2NDAxOSwgNjQwMTgsIDY0MDE3LCA2NDAxNiwgMTI3NjgsIDAsIDc1ODIsIDc4MjUyLCA3ODI0OCwgCiAgICAgNzc5MTQsIDc4MjQ2LCA3ODI0NywgMCwgNzc5MTUsIDc4NzY2LCA2Nzg4LCAxMzA5NCwgNzc5MjAsIDc1MzIsIDQxNDE0LCAKICAgICA3ODUyMCwgMzE3OSwgNzg1MTgsIDY0NzY5LCA3ODUxNCwgNzg1MTcsIDExNDYxLCA3NDQ1NCwgMTA3NTEsIDkwNTEsIAogICAgIDEyMDcyMCwgNjcwOCwgMTA1MzUsIDAsIDY4MjE4LCA1NTI3NCwgMjAwOCwgNjQwMzEsIDY0MDMwLCAyOTQsIDQxODc0LCAwLCAKQEAgLTE5ODA0LDcgKzE5ODA2LDcgQEAKICAgICA2MzQzLCA0MzI0NywgMTE5ODg4LCAwLCAxMTk4ODYsIDExOTg5MSwgMTE5ODkyLCAxMTk4ODksIDExNDMzLCAxMTk4OTUsIAogICAgIDExOTg5NiwgMCwgNzgwMSwgNjU1NzgsIDE5NDgzOSwgMTI5MTUsIDQzOTY4LCAzMjk3LCA5Njk5LCAxOTQ5NTUsIDExMzUsIAogICAgIDAsIDAsIDEyODUyNSwgMTk5NSwgNjcyMiwgOTgzOTE2LCAwLCAyNTUyLCA0MTU0NiwgNjAsIDY4Mzk0LCA4NjQ5LCA0MTU0OSwgCi0gICAgNzg0OTYsIDk4MzMxOSwgMCwgNjY4MiwgMCwgNzg2NzksIDY0NzEwLCA0MTU0NywgOTgzNjIxLCAyMDEzLCAxMjgyOTEsIAorICAgIDc4NDk2LCA5ODMzMjAsIDAsIDY2ODIsIDAsIDc4Njc5LCA2NDcxMCwgNDE1NDcsIDk4MzYyMSwgMjAxMywgMTI4MjkxLCAKICAgICA3ODUzMCwgNzg1MzIsIDc4NTI4LCA3ODUyOSwgMTI4MzIsIDc4NDkzLCA4MDgxLCA4MzYyLCAzNTM3LCAxMTk5MDgsIDkxMzcsIAogICAgIDcxNTUsIDg5OTksIDAsIDc4NTMzLCAzNDY2LCAwLCAwLCAxOTk2LCAwLCAzNDUzLCA2MjgyLCAwLCAyMDAyLCAyMDAwLCAKICAgICAxMjAxNzUsIDUzNywgMCwgNDE3OSwgNjUxMTksIDE5OTgsIDAsIDE4NDIsIDAsIDkyNjc0LCA5NjI4LCA2ODQ0NiwgMTIwODEsIApAQCAtMTk4MTksNyArMTk4MjEsNyBAQAogI2RlZmluZSBjb2RlX3BvbHkgMzI3NzEKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBhbGlhc2VzX3N0YXJ0ID0gMHhmMDAwMDsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgYWxpYXNlc19lbmQgPSAweGYwMWMxOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBhbGlhc2VzX2VuZCA9IDB4ZjAxYzI7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IG5hbWVfYWxpYXNlc1tdID0gewogICAgIDB4MDAwMCwKICAgICAweDAwMDAsCkBAIC0xOTk4Miw2ICsxOTk4NCw3IEBACiAgICAgMHgwMUEyLAogICAgIDB4MDFBMywKICAgICAweDAzNEYsCisgICAgMHgwNzA5LAogICAgIDB4MENERSwKICAgICAweDBFOUQsCiAgICAgMHgwRTlGLApkaWZmIC0tZ2l0IGEvTW9kdWxlcy96aXBpbXBvcnQuYyBiL01vZHVsZXMvemlwaW1wb3J0LmMKaW5kZXggMmZlYjJhOC4uNTZlNWM0YyAxMDA2NDQKLS0tIGEvTW9kdWxlcy96aXBpbXBvcnQuYworKysgYi9Nb2R1bGVzL3ppcGltcG9ydC5jCkBAIC04NjIsNiArODYyLDcgQEAKICAgICBsb25nIGwsIGNvdW50OwogICAgIFB5X3NzaXplX3QgaTsKICAgICBjaGFyIG5hbWVbTUFYUEFUSExFTiArIDVdOworICAgIGNoYXIgZHVtbXlbOF07IC8qIEJ1ZmZlciB0byByZWFkIHVudXNlZCBoZWFkZXIgdmFsdWVzIGludG8gKi8KICAgICBQeU9iamVjdCAqbmFtZW9iaiA9IE5VTEw7CiAgICAgY2hhciAqcCwgZW5kb2ZfY2VudHJhbF9kaXJbMjJdOwogICAgIFB5X3NzaXplX3QgYXJjX29mZnNldDsgIC8qIEFic29sdXRlIG9mZnNldCB0byBzdGFydCBvZiB0aGUgemlwLWFyY2hpdmUuICovCkBAIC05MDUsMTcgKzkwNiwyMyBAQAogCiAgICAgLyogU3RhcnQgb2YgQ2VudHJhbCBEaXJlY3RvcnkgKi8KICAgICBjb3VudCA9IDA7CisgICAgaWYgKGZzZWVrKGZwLCBoZWFkZXJfb2Zmc2V0LCAwKSA9PSAtMSkKKyAgICAgICAgZ290byBmaWxlX2Vycm9yOwogICAgIGZvciAoOzspIHsKICAgICAgICAgUHlPYmplY3QgKnQ7CiAgICAgICAgIGludCBlcnI7CiAKLSAgICAgICAgaWYgKGZzZWVrKGZwLCBoZWFkZXJfb2Zmc2V0LCAwKSA9PSAtMSkgIC8qIFN0YXJ0IG9mIGZpbGUgaGVhZGVyICovCi0gICAgICAgICAgICBnb3RvIGZzZWVrX2Vycm9yOworICAgICAgICAvKiBTdGFydCBvZiBmaWxlIGhlYWRlciAqLwogICAgICAgICBsID0gUHlNYXJzaGFsX1JlYWRMb25nRnJvbUZpbGUoZnApOwogICAgICAgICBpZiAobCAhPSAweDAyMDE0QjUwKQogICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAvKiBCYWQ6IENlbnRyYWwgRGlyIEZpbGUgSGVhZGVyICovCi0gICAgICAgIGlmIChmc2VlayhmcCwgaGVhZGVyX29mZnNldCArIDgsIDApID09IC0xKQotICAgICAgICAgICAgZ290byBmc2Vla19lcnJvcjsKKworICAgICAgICAvKiBPbiBXaW5kb3dzLCBjYWxsaW5nIGZzZWVrIHRvIHNraXAgb3ZlciB0aGUgZmllbGRzIHdlIGRvbid0IHVzZSBpcworICAgICAgICBzbG93ZXIgdGhhbiByZWFkaW5nIHRoZSBkYXRhIGludG8gYSBkdW1teSBidWZmZXIgYmVjYXVzZSBmc2VlayBmbHVzaGVzCisgICAgICAgIHN0ZGlvJ3MgaW50ZXJuYWwgYnVmZmVycy4gU2VlIGlzc3VlICM4NzQ1LiAqLworICAgICAgICBpZiAoZnJlYWQoZHVtbXksIDEsIDQsIGZwKSAhPSA0KSAvKiBTa2lwIHVudXNlZCBmaWVsZHMsIGF2b2lkIGZzZWVrICovCisgICAgICAgICAgICBnb3RvIGZpbGVfZXJyb3I7CisKICAgICAgICAgZmxhZ3MgPSAodW5zaWduZWQgc2hvcnQpUHlNYXJzaGFsX1JlYWRTaG9ydEZyb21GaWxlKGZwKTsKICAgICAgICAgY29tcHJlc3MgPSBQeU1hcnNoYWxfUmVhZFNob3J0RnJvbUZpbGUoZnApOwogICAgICAgICB0aW1lID0gUHlNYXJzaGFsX1JlYWRTaG9ydEZyb21GaWxlKGZwKTsKQEAgLTkyNCwxMSArOTMxLDExIEBACiAgICAgICAgIGRhdGFfc2l6ZSA9IFB5TWFyc2hhbF9SZWFkTG9uZ0Zyb21GaWxlKGZwKTsKICAgICAgICAgZmlsZV9zaXplID0gUHlNYXJzaGFsX1JlYWRMb25nRnJvbUZpbGUoZnApOwogICAgICAgICBuYW1lX3NpemUgPSBQeU1hcnNoYWxfUmVhZFNob3J0RnJvbUZpbGUoZnApOwotICAgICAgICBoZWFkZXJfc2l6ZSA9IDQ2ICsgbmFtZV9zaXplICsKKyAgICAgICAgaGVhZGVyX3NpemUgPSBuYW1lX3NpemUgKwogICAgICAgICAgICBQeU1hcnNoYWxfUmVhZFNob3J0RnJvbUZpbGUoZnApICsKICAgICAgICAgICAgUHlNYXJzaGFsX1JlYWRTaG9ydEZyb21GaWxlKGZwKTsKLSAgICAgICAgaWYgKGZzZWVrKGZwLCBoZWFkZXJfb2Zmc2V0ICsgNDIsIDApID09IC0xKQotICAgICAgICAgICAgZ290byBmc2Vla19lcnJvcjsKKyAgICAgICAgaWYgKGZyZWFkKGR1bW15LCAxLCA4LCBmcCkgIT0gOCkgLyogU2tpcCB1bnVzZWQgZmllbGRzLCBhdm9pZCBmc2VlayAqLworICAgICAgICAgICAgZ290byBmaWxlX2Vycm9yOwogICAgICAgICBmaWxlX29mZnNldCA9IFB5TWFyc2hhbF9SZWFkTG9uZ0Zyb21GaWxlKGZwKSArIGFyY19vZmZzZXQ7CiAgICAgICAgIGlmIChuYW1lX3NpemUgPiBNQVhQQVRITEVOKQogICAgICAgICAgICAgbmFtZV9zaXplID0gTUFYUEFUSExFTjsKQEAgLTk0MSw3ICs5NDgsOSBAQAogICAgICAgICAgICAgcCsrOwogICAgICAgICB9CiAgICAgICAgICpwID0gMDsgICAgICAgICAvKiBBZGQgdGVybWluYXRpbmcgbnVsbCBieXRlICovCi0gICAgICAgIGhlYWRlcl9vZmZzZXQgKz0gaGVhZGVyX3NpemU7CisgICAgICAgIGZvciAoOyBpIDwgaGVhZGVyX3NpemU7IGkrKykgLyogU2tpcCB0aGUgcmVzdCBvZiB0aGUgaGVhZGVyICovCisgICAgICAgICAgICBpZihnZXRjKGZwKSA9PSBFT0YpIC8qIEF2b2lkIGZzZWVrICovCisgICAgICAgICAgICAgICAgZ290byBmaWxlX2Vycm9yOwogCiAgICAgICAgIGJvb3RzdHJhcCA9IDA7CiAgICAgICAgIGlmIChmbGFncyAmIDB4MDgwMCkKQEAgLTk4OCw3ICs5OTcsNyBAQAogICAgICAgICBQeVN5c19Gb3JtYXRTdGRlcnIoIiMgemlwaW1wb3J0OiBmb3VuZCAlbGQgbmFtZXMgaW4gJVJcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCwgYXJjaGl2ZSk7CiAgICAgcmV0dXJuIGZpbGVzOwotZnNlZWtfZXJyb3I6CitmaWxlX2Vycm9yOgogICAgIGZjbG9zZShmcCk7CiAgICAgUHlfWERFQ1JFRihmaWxlcyk7CiAgICAgUHlfWERFQ1JFRihuYW1lb2JqKTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvemxpYm1vZHVsZS5jIGIvTW9kdWxlcy96bGlibW9kdWxlLmMKaW5kZXggZTcxODc5NS4uMGIwZDg4NyAxMDA2NDQKLS0tIGEvTW9kdWxlcy96bGlibW9kdWxlLmMKKysrIGIvTW9kdWxlcy96bGlibW9kdWxlLmMKQEAgLTE2MSw3ICsxNjEsNyBAQAogICAgICAgICBnb3RvIGVycm9yOwogICAgIH0KICAgICBpbnB1dCA9IHBpbnB1dC5idWY7Ci0gICAgbGVuZ3RoID0gcGlucHV0LmxlbjsKKyAgICBsZW5ndGggPSAodW5zaWduZWQgaW50KXBpbnB1dC5sZW47CiAKICAgICB6c3QuYXZhaWxfb3V0ID0gbGVuZ3RoICsgbGVuZ3RoLzEwMDAgKyAxMiArIDE7CiAKQEAgLTI1MSw3ICsyNTEsNyBAQAogICAgICAgICBnb3RvIGVycm9yOwogICAgIH0KICAgICBpbnB1dCA9IHBpbnB1dC5idWY7Ci0gICAgbGVuZ3RoID0gcGlucHV0LmxlbjsKKyAgICBsZW5ndGggPSAodW5zaWduZWQgaW50KXBpbnB1dC5sZW47CiAKICAgICBpZiAocl9zdHJsZW4gPD0gMCkKICAgICAgICAgcl9zdHJsZW4gPSAxOwpAQCAtNTczLDcgKzU3Myw3IEBACiAgICAgICAgICAgICBQeV9zc2l6ZV90IG9sZF9zaXplID0gUHlCeXRlc19HRVRfU0laRShzZWxmLT51bnVzZWRfZGF0YSk7CiAgICAgICAgICAgICBQeV9zc2l6ZV90IG5ld19zaXplOwogICAgICAgICAgICAgUHlPYmplY3QgKm5ld19kYXRhOwotICAgICAgICAgICAgaWYgKHNlbGYtPnpzdC5hdmFpbF9pbiA+IFBZX1NTSVpFX1RfTUFYIC0gb2xkX3NpemUpIHsKKyAgICAgICAgICAgIGlmICgoUHlfc3NpemVfdClzZWxmLT56c3QuYXZhaWxfaW4gPiBQWV9TU0laRV9UX01BWCAtIG9sZF9zaXplKSB7CiAgICAgICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICB9CkBAIC0xMjY2LDIwICsxMjY2LDIwIEBACiAgICAgICAgIFB5X0lOQ1JFRihabGliRXJyb3IpOwogICAgICAgICBQeU1vZHVsZV9BZGRPYmplY3QobSwgImVycm9yIiwgWmxpYkVycm9yKTsKICAgICB9Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1BWF9XQklUUyIsIE1BWF9XQklUUyk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkRFRkxBVEVEIiwgREVGTEFURUQpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJERUZfTUVNX0xFVkVMIiwgREVGX01FTV9MRVZFTCk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlpfQkVTVF9TUEVFRCIsIFpfQkVTVF9TUEVFRCk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlpfQkVTVF9DT01QUkVTU0lPTiIsIFpfQkVTVF9DT01QUkVTU0lPTik7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlpfREVGQVVMVF9DT01QUkVTU0lPTiIsIFpfREVGQVVMVF9DT01QUkVTU0lPTik7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlpfRklMVEVSRUQiLCBaX0ZJTFRFUkVEKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiWl9IVUZGTUFOX09OTFkiLCBaX0hVRkZNQU5fT05MWSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlpfREVGQVVMVF9TVFJBVEVHWSIsIFpfREVGQVVMVF9TVFJBVEVHWSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTUFYX1dCSVRTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBERUZMQVRFRCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgREVGX01FTV9MRVZFTCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgWl9CRVNUX1NQRUVEKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBaX0JFU1RfQ09NUFJFU1NJT04pOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFpfREVGQVVMVF9DT01QUkVTU0lPTik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgWl9GSUxURVJFRCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgWl9IVUZGTUFOX09OTFkpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFpfREVGQVVMVF9TVFJBVEVHWSk7CiAKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiWl9GSU5JU0giLCBaX0ZJTklTSCk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlpfTk9fRkxVU0giLCBaX05PX0ZMVVNIKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiWl9TWU5DX0ZMVVNIIiwgWl9TWU5DX0ZMVVNIKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiWl9GVUxMX0ZMVVNIIiwgWl9GVUxMX0ZMVVNIKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBaX0ZJTklTSCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgWl9OT19GTFVTSCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgWl9TWU5DX0ZMVVNIKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBaX0ZVTExfRkxVU0gpOwogCiAgICAgdmVyID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoWkxJQl9WRVJTSU9OKTsKICAgICBpZiAodmVyICE9IE5VTEwpCmRpZmYgLS1naXQgYS9PYmplY3RzL2Fic3RyYWN0LmMgYi9PYmplY3RzL2Fic3RyYWN0LmMKaW5kZXggN2MyNDcyNC4uNDBlYTQzYiAxMDA2NDQKLS0tIGEvT2JqZWN0cy9hYnN0cmFjdC5jCisrKyBiL09iamVjdHMvYWJzdHJhY3QuYwpAQCAtNjQsNDkgKzY0LDcwIEBACiB9CiAjZGVmaW5lIFB5T2JqZWN0X0xlbmd0aCBQeU9iamVjdF9TaXplCiAKK2ludAorX1B5T2JqZWN0X0hhc0xlbihQeU9iamVjdCAqbykgeworICAgIHJldHVybiAoUHlfVFlQRShvKS0+dHBfYXNfc2VxdWVuY2UgJiYgUHlfVFlQRShvKS0+dHBfYXNfc2VxdWVuY2UtPnNxX2xlbmd0aCkgfHwKKyAgICAgICAgKFB5X1RZUEUobyktPnRwX2FzX21hcHBpbmcgJiYgUHlfVFlQRShvKS0+dHBfYXNfbWFwcGluZy0+bXBfbGVuZ3RoKTsKK30KIAogLyogVGhlIGxlbmd0aCBoaW50IGZ1bmN0aW9uIHJldHVybnMgYSBub24tbmVnYXRpdmUgdmFsdWUgZnJvbSBvLl9fbGVuX18oKQotICAgb3Igby5fX2xlbmd0aF9oaW50X18oKS4gIElmIHRob3NlIG1ldGhvZHMgYXJlbid0IGZvdW5kIG9yIHJldHVybiBhIG5lZ2F0aXZlCi0gICB2YWx1ZSwgdGhlbiB0aGUgZGVmYXVsdHZhbHVlIGlzIHJldHVybmVkLiAgSWYgb25lIG9mIHRoZSBjYWxscyBmYWlscywKKyAgIG9yIG8uX19sZW5ndGhfaGludF9fKCkuIElmIHRob3NlIG1ldGhvZHMgYXJlbid0IGZvdW5kIHRoZSBkZWZhdWx0dmFsdWUgaXMKKyAgIHJldHVybmVkLiAgSWYgb25lIG9mIHRoZSBjYWxscyBmYWlscyB3aXRoIGFuIGV4Y2VwdGlvbiBvdGhlciB0aGFuIFR5cGVFcnJvcgogICAgdGhpcyBmdW5jdGlvbiByZXR1cm5zIC0xLgogKi8KIAogUHlfc3NpemVfdAotX1B5T2JqZWN0X0xlbmd0aEhpbnQoUHlPYmplY3QgKm8sIFB5X3NzaXplX3QgZGVmYXVsdHZhbHVlKQorUHlPYmplY3RfTGVuZ3RoSGludChQeU9iamVjdCAqbywgUHlfc3NpemVfdCBkZWZhdWx0dmFsdWUpCiB7CisgICAgUHlPYmplY3QgKmhpbnQsICpyZXN1bHQ7CisgICAgUHlfc3NpemVfdCByZXM7CiAgICAgX1B5X0lERU5USUZJRVIoX19sZW5ndGhfaGludF9fKTsKLSAgICBQeU9iamVjdCAqcm8sICpoaW50bWV0aDsKLSAgICBQeV9zc2l6ZV90IHJ2OwotCi0gICAgLyogdHJ5IG8uX19sZW5fXygpICovCi0gICAgcnYgPSBQeU9iamVjdF9TaXplKG8pOwotICAgIGlmIChydiA+PSAwKQotICAgICAgICByZXR1cm4gcnY7Ci0gICAgaWYgKFB5RXJyX09jY3VycmVkKCkpIHsKLSAgICAgICAgaWYgKCFQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX1R5cGVFcnJvcikpCisgICAgcmVzID0gUHlPYmplY3RfTGVuZ3RoKG8pOworICAgIGlmIChyZXMgPCAwICYmIFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgaWYgKCFQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX1R5cGVFcnJvcikpIHsKICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQogICAgICAgICBQeUVycl9DbGVhcigpOwogICAgIH0KLQotICAgIC8qIHRyeSBvLl9fbGVuZ3RoX2hpbnRfXygpICovCi0gICAgaGludG1ldGggPSBfUHlPYmplY3RfTG9va3VwU3BlY2lhbChvLCAmUHlJZF9fX2xlbmd0aF9oaW50X18pOwotICAgIGlmIChoaW50bWV0aCA9PSBOVUxMKSB7Ci0gICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gZGVmYXVsdHZhbHVlOworICAgIGVsc2UgeworICAgICAgICByZXR1cm4gcmVzOwogICAgIH0KLSAgICBybyA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoaGludG1ldGgsIE5VTEwpOwotICAgIFB5X0RFQ1JFRihoaW50bWV0aCk7Ci0gICAgaWYgKHJvID09IE5VTEwpIHsKLSAgICAgICAgaWYgKCFQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX1R5cGVFcnJvcikpCisgICAgaGludCA9IF9QeU9iamVjdF9Mb29rdXBTcGVjaWFsKG8sICZQeUlkX19fbGVuZ3RoX2hpbnRfXyk7CisgICAgaWYgKGhpbnQgPT0gTlVMTCkgeworICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkgewogICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICBQeUVycl9DbGVhcigpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBkZWZhdWx0dmFsdWU7CiAgICAgfQotICAgIHJ2ID0gUHlMb25nX0NoZWNrKHJvKSA/IFB5TG9uZ19Bc1NzaXplX3Qocm8pIDogZGVmYXVsdHZhbHVlOwotICAgIFB5X0RFQ1JFRihybyk7Ci0gICAgcmV0dXJuIHJ2OworICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoaGludCwgTlVMTCk7CisgICAgUHlfREVDUkVGKGhpbnQpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19UeXBlRXJyb3IpKSB7CisgICAgICAgICAgICBQeUVycl9DbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHR2YWx1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGVsc2UgaWYgKHJlc3VsdCA9PSBQeV9Ob3RJbXBsZW1lbnRlZCkgeworICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIGRlZmF1bHR2YWx1ZTsKKyAgICB9CisgICAgaWYgKCFQeUxvbmdfQ2hlY2socmVzdWx0KSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiX19sZW5ndGhfaGludF9fIG11c3QgYmUgYW4gaW50ZWdlciwgbm90ICUuMTAwcyIsCisgICAgICAgICAgICBQeV9UWVBFKHJlc3VsdCktPnRwX25hbWUpOworICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICByZXMgPSBQeUxvbmdfQXNTc2l6ZV90KHJlc3VsdCk7CisgICAgUHlfREVDUkVGKHJlc3VsdCk7CisgICAgaWYgKHJlcyA8IDAgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmIChyZXMgPCAwKSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLCAiX19sZW5ndGhfaGludF9fKCkgc2hvdWxkIHJldHVybiA+PSAwIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgcmV0dXJuIHJlczsKIH0KIAogUHlPYmplY3QgKgpAQCAtMTY4OSw3ICsxNzEwLDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKiBHdWVzcyByZXN1bHQgc2l6ZSBhbmQgYWxsb2NhdGUgc3BhY2UuICovCi0gICAgbiA9IF9QeU9iamVjdF9MZW5ndGhIaW50KHYsIDEwKTsKKyAgICBuID0gUHlPYmplY3RfTGVuZ3RoSGludCh2LCAxMCk7CiAgICAgaWYgKG4gPT0gLTEpCiAgICAgICAgIGdvdG8gRmFpbDsKICAgICByZXN1bHQgPSBQeVR1cGxlX05ldyhuKTsKQEAgLTIxMjEsNyArMjE0Miw3IEBACiB9CiAKIFB5T2JqZWN0ICoKLVB5T2JqZWN0X0NhbGxGdW5jdGlvbihQeU9iamVjdCAqY2FsbGFibGUsIGNoYXIgKmZvcm1hdCwgLi4uKQorUHlPYmplY3RfQ2FsbEZ1bmN0aW9uKFB5T2JqZWN0ICpjYWxsYWJsZSwgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCiB7CiAgICAgdmFfbGlzdCB2YTsKICAgICBQeU9iamVjdCAqYXJnczsKQEAgLTIxNDEsNyArMjE2Miw3IEBACiB9CiAKIFB5T2JqZWN0ICoKLV9QeU9iamVjdF9DYWxsRnVuY3Rpb25fU2l6ZVQoUHlPYmplY3QgKmNhbGxhYmxlLCBjaGFyICpmb3JtYXQsIC4uLikKK19QeU9iamVjdF9DYWxsRnVuY3Rpb25fU2l6ZVQoUHlPYmplY3QgKmNhbGxhYmxlLCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKIHsKICAgICB2YV9saXN0IHZhOwogICAgIFB5T2JqZWN0ICphcmdzOwpAQCAtMjE2MSw3ICsyMTgyLDcgQEAKIH0KIAogc3RhdGljIFB5T2JqZWN0KgotY2FsbG1ldGhvZChQeU9iamVjdCogZnVuYywgY2hhciAqZm9ybWF0LCB2YV9saXN0IHZhLCBpbnQgaXNfc2l6ZV90KQorY2FsbG1ldGhvZChQeU9iamVjdCogZnVuYywgY29uc3QgY2hhciAqZm9ybWF0LCB2YV9saXN0IHZhLCBpbnQgaXNfc2l6ZV90KQogewogICAgIFB5T2JqZWN0ICpyZXR2YWwgPSBOVUxMOwogICAgIFB5T2JqZWN0ICphcmdzOwpAQCAtMjE5MCw3ICsyMjExLDcgQEAKIH0KIAogUHlPYmplY3QgKgotUHlPYmplY3RfQ2FsbE1ldGhvZChQeU9iamVjdCAqbywgY2hhciAqbmFtZSwgY2hhciAqZm9ybWF0LCAuLi4pCitQeU9iamVjdF9DYWxsTWV0aG9kKFB5T2JqZWN0ICpvLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKIHsKICAgICB2YV9saXN0IHZhOwogICAgIFB5T2JqZWN0ICpmdW5jID0gTlVMTDsKQEAgLTIyMTEsNyArMjIzMiw4IEBACiB9CiAKIFB5T2JqZWN0ICoKLV9QeU9iamVjdF9DYWxsTWV0aG9kSWQoUHlPYmplY3QgKm8sIF9QeV9JZGVudGlmaWVyICpuYW1lLCBjaGFyICpmb3JtYXQsIC4uLikKK19QeU9iamVjdF9DYWxsTWV0aG9kSWQoUHlPYmplY3QgKm8sIF9QeV9JZGVudGlmaWVyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKIHsKICAgICB2YV9saXN0IHZhOwogICAgIFB5T2JqZWN0ICpmdW5jID0gTlVMTDsKQEAgLTIyMzIsNyArMjI1NCw4IEBACiB9CiAKIFB5T2JqZWN0ICoKLV9QeU9iamVjdF9DYWxsTWV0aG9kX1NpemVUKFB5T2JqZWN0ICpvLCBjaGFyICpuYW1lLCBjaGFyICpmb3JtYXQsIC4uLikKK19QeU9iamVjdF9DYWxsTWV0aG9kX1NpemVUKFB5T2JqZWN0ICpvLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCiB7CiAgICAgdmFfbGlzdCB2YTsKICAgICBQeU9iamVjdCAqZnVuYyA9IE5VTEw7CkBAIC0yMjUyLDcgKzIyNzUsOCBAQAogfQogCiBQeU9iamVjdCAqCi1fUHlPYmplY3RfQ2FsbE1ldGhvZElkX1NpemVUKFB5T2JqZWN0ICpvLCBfUHlfSWRlbnRpZmllciAqbmFtZSwgY2hhciAqZm9ybWF0LCAuLi4pCitfUHlPYmplY3RfQ2FsbE1ldGhvZElkX1NpemVUKFB5T2JqZWN0ICpvLCBfUHlfSWRlbnRpZmllciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCiB7CiAgICAgdmFfbGlzdCB2YTsKICAgICBQeU9iamVjdCAqZnVuYyA9IE5VTEw7CkBAIC0yMzIyLDcgKzIzNDYsNyBAQAogfQogCiBQeU9iamVjdCAqCi1fUHlPYmplY3RfQ2FsbE1ldGhvZE9iaklkQXJncyhQeU9iamVjdCAqY2FsbGFibGUsCitfUHlPYmplY3RfQ2FsbE1ldGhvZElkT2JqQXJncyhQeU9iamVjdCAqY2FsbGFibGUsCiAgICAgICAgIHN0cnVjdCBfUHlfSWRlbnRpZmllciAqbmFtZSwgLi4uKQogewogICAgIFB5T2JqZWN0ICphcmdzLCAqdG1wOwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9ieXRlYXJyYXlvYmplY3QuYyBiL09iamVjdHMvYnl0ZWFycmF5b2JqZWN0LmMKaW5kZXggOWYxY2YwYS4uZDFiNzBlNSAxMDA2NDQKLS0tIGEvT2JqZWN0cy9ieXRlYXJyYXlvYmplY3QuYworKysgYi9PYmplY3RzL2J5dGVhcnJheW9iamVjdC5jCkBAIC0xMDM4LDYgKzEwMzgsNyBAQAogI2RlZmluZSBGQVNUU0VBUkNIIGZhc3RzZWFyY2gKICNkZWZpbmUgU1RSSU5HTElCKEYpIHN0cmluZ2xpYl8jI0YKICNkZWZpbmUgU1RSSU5HTElCX0NIQVIgY2hhcgorI2RlZmluZSBTVFJJTkdMSUJfU0laRU9GX0NIQVIgMQogI2RlZmluZSBTVFJJTkdMSUJfTEVOIFB5Qnl0ZUFycmF5X0dFVF9TSVpFCiAjZGVmaW5lIFNUUklOR0xJQl9TVFIgUHlCeXRlQXJyYXlfQVNfU1RSSU5HCiAjZGVmaW5lIFNUUklOR0xJQl9ORVcgUHlCeXRlQXJyYXlfRnJvbVN0cmluZ0FuZFNpemUKQEAgLTEwNDksNiArMTA1MCw3IEBACiAjaW5jbHVkZSAic3RyaW5nbGliL2Zhc3RzZWFyY2guaCIKICNpbmNsdWRlICJzdHJpbmdsaWIvY291bnQuaCIKICNpbmNsdWRlICJzdHJpbmdsaWIvZmluZC5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi9qb2luLmgiCiAjaW5jbHVkZSAic3RyaW5nbGliL3BhcnRpdGlvbi5oIgogI2luY2x1ZGUgInN0cmluZ2xpYi9zcGxpdC5oIgogI2luY2x1ZGUgInN0cmluZ2xpYi9jdHlwZS5oIgpAQCAtMjI4OCw3ICsyMjkwLDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKiBUcnkgdG8gZGV0ZXJtaW5lIHRoZSBsZW5ndGggb2YgdGhlIGFyZ3VtZW50LiAzMiBpcyBhcmJpdHJhcnkuICovCi0gICAgYnVmX3NpemUgPSBfUHlPYmplY3RfTGVuZ3RoSGludChhcmcsIDMyKTsKKyAgICBidWZfc2l6ZSA9IFB5T2JqZWN0X0xlbmd0aEhpbnQoYXJnLCAzMik7CiAgICAgaWYgKGJ1Zl9zaXplID09IC0xKSB7CiAgICAgICAgIFB5X0RFQ1JFRihpdCk7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMjU3NSw3MyArMjU3Nyw5IEBACiBpbiBiZXR3ZWVuIGVhY2ggcGFpciwgYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIGEgbmV3IGJ5dGVhcnJheS4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKLWJ5dGVhcnJheV9qb2luKFB5Qnl0ZUFycmF5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqaXQpCitieXRlYXJyYXlfam9pbihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKml0ZXJhYmxlKQogewotICAgIFB5T2JqZWN0ICpzZXE7Ci0gICAgUHlfc3NpemVfdCBteXNpemUgPSBQeV9TSVpFKHNlbGYpOwotICAgIFB5X3NzaXplX3QgaTsKLSAgICBQeV9zc2l6ZV90IG47Ci0gICAgUHlPYmplY3QgKippdGVtczsKLSAgICBQeV9zc2l6ZV90IHRvdGFsc2l6ZSA9IDA7Ci0gICAgUHlPYmplY3QgKnJlc3VsdDsKLSAgICBjaGFyICpkZXN0OwotCi0gICAgc2VxID0gUHlTZXF1ZW5jZV9GYXN0KGl0LCAiY2FuIG9ubHkgam9pbiBhbiBpdGVyYWJsZSIpOwotICAgIGlmIChzZXEgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgbiA9IFB5U2VxdWVuY2VfRmFzdF9HRVRfU0laRShzZXEpOwotICAgIGl0ZW1zID0gUHlTZXF1ZW5jZV9GYXN0X0lURU1TKHNlcSk7Ci0KLSAgICAvKiBDb21wdXRlIHRoZSB0b3RhbCBzaXplLCBhbmQgY2hlY2sgdGhhdCB0aGV5IGFyZSBhbGwgYnl0ZXMgKi8KLSAgICAvKiBYWFggU2hvdWxkbid0IHdlIHVzZSBfZ2V0YnVmZmVyKCkgb24gdGhlc2UgaXRlbXMgaW5zdGVhZD8gKi8KLSAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7Ci0gICAgICAgIFB5T2JqZWN0ICpvYmogPSBpdGVtc1tpXTsKLSAgICAgICAgaWYgKCFQeUJ5dGVBcnJheV9DaGVjayhvYmopICYmICFQeUJ5dGVzX0NoZWNrKG9iaikpIHsKLSAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgImNhbiBvbmx5IGpvaW4gYW4gaXRlcmFibGUgb2YgYnl0ZXMgIgotICAgICAgICAgICAgICAgICAgICAgICAgICIoaXRlbSAlbGQgaGFzIHR5cGUgJyUuMTAwcycpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAvKiBYWFggJWxkIGlzbid0IHJpZ2h0IG9uIFdpbjY0ICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpaSwgUHlfVFlQRShvYmopLT50cF9uYW1lKTsKLSAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGkgPiAwKQotICAgICAgICAgICAgdG90YWxzaXplICs9IG15c2l6ZTsKLSAgICAgICAgdG90YWxzaXplICs9IFB5X1NJWkUob2JqKTsKLSAgICAgICAgaWYgKHRvdGFsc2l6ZSA8IDApIHsKLSAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7Ci0gICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyogQWxsb2NhdGUgdGhlIHJlc3VsdCwgYW5kIGNvcHkgdGhlIGJ5dGVzICovCi0gICAgcmVzdWx0ID0gUHlCeXRlQXJyYXlfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgdG90YWxzaXplKTsKLSAgICBpZiAocmVzdWx0ID09IE5VTEwpCi0gICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgZGVzdCA9IFB5Qnl0ZUFycmF5X0FTX1NUUklORyhyZXN1bHQpOwotICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKLSAgICAgICAgUHlPYmplY3QgKm9iaiA9IGl0ZW1zW2ldOwotICAgICAgICBQeV9zc2l6ZV90IHNpemUgPSBQeV9TSVpFKG9iaik7Ci0gICAgICAgIGNoYXIgKmJ1ZjsKLSAgICAgICAgaWYgKFB5Qnl0ZUFycmF5X0NoZWNrKG9iaikpCi0gICAgICAgICAgIGJ1ZiA9IFB5Qnl0ZUFycmF5X0FTX1NUUklORyhvYmopOwotICAgICAgICBlbHNlCi0gICAgICAgICAgIGJ1ZiA9IFB5Qnl0ZXNfQVNfU1RSSU5HKG9iaik7Ci0gICAgICAgIGlmIChpKSB7Ci0gICAgICAgICAgICBtZW1jcHkoZGVzdCwgc2VsZi0+b2JfYnl0ZXMsIG15c2l6ZSk7Ci0gICAgICAgICAgICBkZXN0ICs9IG15c2l6ZTsKLSAgICAgICAgfQotICAgICAgICBtZW1jcHkoZGVzdCwgYnVmLCBzaXplKTsKLSAgICAgICAgZGVzdCArPSBzaXplOwotICAgIH0KLQotICAgIC8qIERvbmUgKi8KLSAgICBQeV9ERUNSRUYoc2VxKTsKLSAgICByZXR1cm4gcmVzdWx0OwotCi0gICAgLyogRXJyb3IgaGFuZGxpbmcgKi8KLSAgZXJyb3I6Ci0gICAgUHlfREVDUkVGKHNlcSk7Ci0gICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIHN0cmluZ2xpYl9ieXRlc19qb2luKHNlbGYsIGl0ZXJhYmxlKTsKIH0KIAogUHlEb2NfU1RSVkFSKHNwbGl0bGluZXNfX2RvY19fLApkaWZmIC0tZ2l0IGEvT2JqZWN0cy9ieXRlc29iamVjdC5jIGIvT2JqZWN0cy9ieXRlc29iamVjdC5jCmluZGV4IDQ3ODk4ZmUuLjA1NmFjMzYgMTAwNjQ0Ci0tLSBhL09iamVjdHMvYnl0ZXNvYmplY3QuYworKysgYi9PYmplY3RzL2J5dGVzb2JqZWN0LmMKQEAgLTEwLDkgKzEwLDE4IEBACiBzdGF0aWMgUHlfc3NpemVfdAogX2dldGJ1ZmZlcihQeU9iamVjdCAqb2JqLCBQeV9idWZmZXIgKnZpZXcpCiB7Ci0gICAgUHlCdWZmZXJQcm9jcyAqYnVmZmVyID0gUHlfVFlQRShvYmopLT50cF9hc19idWZmZXI7CisgICAgUHlCdWZmZXJQcm9jcyAqYnVmZmVycHJvY3M7CisgICAgaWYgKFB5Qnl0ZXNfQ2hlY2tFeGFjdChvYmopKSB7CisgICAgICAgIC8qIEZhc3QgcGF0aCwgZS5nLiBmb3IgLmpvaW4oKSBvZiBtYW55IGJ5dGVzIG9iamVjdHMgKi8KKyAgICAgICAgUHlfSU5DUkVGKG9iaik7CisgICAgICAgIHZpZXctPm9iaiA9IG9iajsKKyAgICAgICAgdmlldy0+YnVmID0gUHlCeXRlc19BU19TVFJJTkcob2JqKTsKKyAgICAgICAgdmlldy0+bGVuID0gUHlCeXRlc19HRVRfU0laRShvYmopOworICAgICAgICByZXR1cm4gdmlldy0+bGVuOworICAgIH0KIAotICAgIGlmIChidWZmZXIgPT0gTlVMTCB8fCBidWZmZXItPmJmX2dldGJ1ZmZlciA9PSBOVUxMKQorICAgIGJ1ZmZlcnByb2NzID0gUHlfVFlQRShvYmopLT50cF9hc19idWZmZXI7CisgICAgaWYgKGJ1ZmZlcnByb2NzID09IE5VTEwgfHwgYnVmZmVycHJvY3MtPmJmX2dldGJ1ZmZlciA9PSBOVUxMKQogICAgIHsKICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICJUeXBlICUuMTAwcyBkb2Vzbid0IHN1cHBvcnQgdGhlIGJ1ZmZlciBBUEkiLApAQCAtMjAsNyArMjksNyBAQAogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCi0gICAgaWYgKGJ1ZmZlci0+YmZfZ2V0YnVmZmVyKG9iaiwgdmlldywgUHlCVUZfU0lNUExFKSA8IDApCisgICAgaWYgKGJ1ZmZlcnByb2NzLT5iZl9nZXRidWZmZXIob2JqLCB2aWV3LCBQeUJVRl9TSU1QTEUpIDwgMCkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIHJldHVybiB2aWV3LT5sZW47CiB9CkBAIC01NjAsNiArNTY5LDcgQEAKICNpbmNsdWRlICJzdHJpbmdsaWIvZmFzdHNlYXJjaC5oIgogI2luY2x1ZGUgInN0cmluZ2xpYi9jb3VudC5oIgogI2luY2x1ZGUgInN0cmluZ2xpYi9maW5kLmgiCisjaW5jbHVkZSAic3RyaW5nbGliL2pvaW4uaCIKICNpbmNsdWRlICJzdHJpbmdsaWIvcGFydGl0aW9uLmgiCiAjaW5jbHVkZSAic3RyaW5nbGliL3NwbGl0LmgiCiAjaW5jbHVkZSAic3RyaW5nbGliL2N0eXBlLmgiCkBAIC0xMTEyLDk0ICsxMTIyLDkgQEAKIEV4YW1wbGU6IGInLicuam9pbihbYidhYicsIGIncHEnLCBiJ3JzJ10pIC0+IGInYWIucHEucnMnLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotYnl0ZXNfam9pbihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm9yaWcpCitieXRlc19qb2luKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqaXRlcmFibGUpCiB7Ci0gICAgY2hhciAqc2VwID0gUHlCeXRlc19BU19TVFJJTkcoc2VsZik7Ci0gICAgY29uc3QgUHlfc3NpemVfdCBzZXBsZW4gPSBQeUJ5dGVzX0dFVF9TSVpFKHNlbGYpOwotICAgIFB5T2JqZWN0ICpyZXMgPSBOVUxMOwotICAgIGNoYXIgKnA7Ci0gICAgUHlfc3NpemVfdCBzZXFsZW4gPSAwOwotICAgIHNpemVfdCBzeiA9IDA7Ci0gICAgUHlfc3NpemVfdCBpOwotICAgIFB5T2JqZWN0ICpzZXEsICppdGVtOwotCi0gICAgc2VxID0gUHlTZXF1ZW5jZV9GYXN0KG9yaWcsICIiKTsKLSAgICBpZiAoc2VxID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgc2VxbGVuID0gUHlTZXF1ZW5jZV9TaXplKHNlcSk7Ci0gICAgaWYgKHNlcWxlbiA9PSAwKSB7Ci0gICAgICAgIFB5X0RFQ1JFRihzZXEpOwotICAgICAgICByZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5nKCIiKTsKLSAgICB9Ci0gICAgaWYgKHNlcWxlbiA9PSAxKSB7Ci0gICAgICAgIGl0ZW0gPSBQeVNlcXVlbmNlX0Zhc3RfR0VUX0lURU0oc2VxLCAwKTsKLSAgICAgICAgaWYgKFB5Qnl0ZXNfQ2hlY2tFeGFjdChpdGVtKSkgewotICAgICAgICAgICAgUHlfSU5DUkVGKGl0ZW0pOwotICAgICAgICAgICAgUHlfREVDUkVGKHNlcSk7Ci0gICAgICAgICAgICByZXR1cm4gaXRlbTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qIFRoZXJlIGFyZSBhdCBsZWFzdCB0d28gdGhpbmdzIHRvIGpvaW4sIG9yIGVsc2Ugd2UgaGF2ZSBhIHN1YmNsYXNzCi0gICAgICogb2YgdGhlIGJ1aWx0aW4gdHlwZXMgaW4gdGhlIHNlcXVlbmNlLgotICAgICAqIERvIGEgcHJlLXBhc3MgdG8gZmlndXJlIG91dCB0aGUgdG90YWwgYW1vdW50IG9mIHNwYWNlIHdlJ2xsCi0gICAgICogbmVlZCAoc3opLCBhbmQgc2VlIHdoZXRoZXIgYWxsIGFyZ3VtZW50IGFyZSBieXRlcy4KLSAgICAgKi8KLSAgICAvKiBYWFggU2hvdWxkbid0IHdlIHVzZSBfZ2V0YnVmZmVyKCkgb24gdGhlc2UgaXRlbXMgaW5zdGVhZD8gKi8KLSAgICBmb3IgKGkgPSAwOyBpIDwgc2VxbGVuOyBpKyspIHsKLSAgICAgICAgY29uc3Qgc2l6ZV90IG9sZF9zeiA9IHN6OwotICAgICAgICBpdGVtID0gUHlTZXF1ZW5jZV9GYXN0X0dFVF9JVEVNKHNlcSwgaSk7Ci0gICAgICAgIGlmICghUHlCeXRlc19DaGVjayhpdGVtKSAmJiAhUHlCeXRlQXJyYXlfQ2hlY2soaXRlbSkpIHsKLSAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgInNlcXVlbmNlIGl0ZW0gJXpkOiBleHBlY3RlZCBieXRlcywiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIiAlLjgwcyBmb3VuZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgaSwgUHlfVFlQRShpdGVtKS0+dHBfbmFtZSk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYoc2VxKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIHN6ICs9IFB5X1NJWkUoaXRlbSk7Ci0gICAgICAgIGlmIChpICE9IDApCi0gICAgICAgICAgICBzeiArPSBzZXBsZW47Ci0gICAgICAgIGlmIChzeiA8IG9sZF9zeiB8fCBzeiA+IFBZX1NTSVpFX1RfTUFYKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKLSAgICAgICAgICAgICAgICAiam9pbigpIHJlc3VsdCBpcyB0b28gbG9uZyBmb3IgYnl0ZXMiKTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihzZXEpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiBBbGxvY2F0ZSByZXN1bHQgc3BhY2UuICovCi0gICAgcmVzID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZSgoY2hhciopTlVMTCwgc3opOwotICAgIGlmIChyZXMgPT0gTlVMTCkgewotICAgICAgICBQeV9ERUNSRUYoc2VxKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgLyogQ2F0ZW5hdGUgZXZlcnl0aGluZy4gKi8KLSAgICAvKiBJJ20gbm90IHdvcnJpZWQgYWJvdXQgYSBQeUJ5dGVBcnJheSBpdGVtIGdyb3dpbmcgYmVjYXVzZSB0aGVyZSdzCi0gICAgICAgbm93aGVyZSBpbiB0aGlzIGZ1bmN0aW9uIHdoZXJlIHdlIHJlbGVhc2UgdGhlIEdJTC4gKi8KLSAgICBwID0gUHlCeXRlc19BU19TVFJJTkcocmVzKTsKLSAgICBmb3IgKGkgPSAwOyBpIDwgc2VxbGVuOyArK2kpIHsKLSAgICAgICAgc2l6ZV90IG47Ci0gICAgICAgIGNoYXIgKnE7Ci0gICAgICAgIGlmIChpKSB7Ci0gICAgICAgICAgICBQeV9NRU1DUFkocCwgc2VwLCBzZXBsZW4pOwotICAgICAgICAgICAgcCArPSBzZXBsZW47Ci0gICAgICAgIH0KLSAgICAgICAgaXRlbSA9IFB5U2VxdWVuY2VfRmFzdF9HRVRfSVRFTShzZXEsIGkpOwotICAgICAgICBuID0gUHlfU0laRShpdGVtKTsKLSAgICAgICAgaWYgKFB5Qnl0ZXNfQ2hlY2soaXRlbSkpCi0gICAgICAgICAgICBxID0gUHlCeXRlc19BU19TVFJJTkcoaXRlbSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHEgPSBQeUJ5dGVBcnJheV9BU19TVFJJTkcoaXRlbSk7Ci0gICAgICAgIFB5X01FTUNQWShwLCBxLCBuKTsKLSAgICAgICAgcCArPSBuOwotICAgIH0KLQotICAgIFB5X0RFQ1JFRihzZXEpOwotICAgIHJldHVybiByZXM7CisgICAgcmV0dXJuIHN0cmluZ2xpYl9ieXRlc19qb2luKHNlbGYsIGl0ZXJhYmxlKTsKIH0KIAogUHlPYmplY3QgKgpAQCAtMjMxNiw4ICsyMjQxLDYgQEAKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgInxzczpkZWNvZGUiLCBrd2xpc3QsICZlbmNvZGluZywgJmVycm9ycykpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIGlmIChlbmNvZGluZyA9PSBOVUxMKQotICAgICAgICBlbmNvZGluZyA9IFB5VW5pY29kZV9HZXREZWZhdWx0RW5jb2RpbmcoKTsKICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21FbmNvZGVkT2JqZWN0KHNlbGYsIGVuY29kaW5nLCBlcnJvcnMpOwogfQogCkBAIC0yNjc5LDcgKzI2MDIsNyBAQAogICAgIH0KIAogICAgIC8qIEZvciBpdGVyYXRvciB2ZXJzaW9uLCBjcmVhdGUgYSBzdHJpbmcgb2JqZWN0IGFuZCByZXNpemUgYXMgbmVlZGVkICovCi0gICAgc2l6ZSA9IF9QeU9iamVjdF9MZW5ndGhIaW50KHgsIDY0KTsKKyAgICBzaXplID0gUHlPYmplY3RfTGVuZ3RoSGludCh4LCA2NCk7CiAgICAgaWYgKHNpemUgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgLyogQWxsb2NhdGUgYW4gZXh0cmEgYnl0ZSB0byBwcmV2ZW50IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoKSBmcm9tCmRpZmYgLS1naXQgYS9PYmplY3RzL2NvbXBsZXhvYmplY3QuYyBiL09iamVjdHMvY29tcGxleG9iamVjdC5jCmluZGV4IDQwM2M2MGMuLjU0ODM4Y2MgMTAwNjQ0Ci0tLSBhL09iamVjdHMvY29tcGxleG9iamVjdC5jCisrKyBiL09iamVjdHMvY29tcGxleG9iamVjdC5jCkBAIC0yNzEsNiArMjcxLDEyIEBACiAgICAgaWYgKGYpIHsKICAgICAgICAgUHlPYmplY3QgKnJlcyA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoZiwgTlVMTCk7CiAgICAgICAgIFB5X0RFQ1JFRihmKTsKKyAgICAgICAgaWYgKHJlcyAhPSBOVUxMICYmICFQeUNvbXBsZXhfQ2hlY2socmVzKSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAiX19jb21wbGV4X18gc2hvdWxkIHJldHVybiBhIGNvbXBsZXggb2JqZWN0Iik7CisgICAgICAgICAgICBQeV9ERUNSRUYocmVzKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CiAgICAgICAgIHJldHVybiByZXM7CiAgICAgfQogICAgIHJldHVybiBOVUxMOwpAQCAtMjk2LDEyICszMDIsNiBAQAogICAgIG5ld29wID0gdHJ5X2NvbXBsZXhfc3BlY2lhbF9tZXRob2Qob3ApOwogCiAgICAgaWYgKG5ld29wKSB7Ci0gICAgICAgIGlmICghUHlDb21wbGV4X0NoZWNrKG5ld29wKSkgewotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAiX19jb21wbGV4X18gc2hvdWxkIHJldHVybiBhIGNvbXBsZXggb2JqZWN0Iik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYobmV3b3ApOwotICAgICAgICAgICAgcmV0dXJuIGN2OwotICAgICAgICB9CiAgICAgICAgIGN2ID0gKChQeUNvbXBsZXhPYmplY3QgKiluZXdvcCktPmN2YWw7CiAgICAgICAgIFB5X0RFQ1JFRihuZXdvcCk7CiAgICAgICAgIHJldHVybiBjdjsKQEAgLTcwNSw3ICs3MDUsNyBAQAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVTpfX2Zvcm1hdF9fIiwgJmZvcm1hdF9zcGVjKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBfUHlVbmljb2RlV3JpdGVyX0luaXQoJndyaXRlciwgMCk7CisgICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIpOwogICAgIHJldCA9IF9QeUNvbXBsZXhfRm9ybWF0QWR2YW5jZWRXcml0ZXIoCiAgICAgICAgICZ3cml0ZXIsCiAgICAgICAgIHNlbGYsCmRpZmYgLS1naXQgYS9PYmplY3RzL2Rlc2Nyb2JqZWN0LmMgYi9PYmplY3RzL2Rlc2Nyb2JqZWN0LmMKaW5kZXggYWJjYzAwMi4uZDRmODA0OCAxMDA2NDQKLS0tIGEvT2JqZWN0cy9kZXNjcm9iamVjdC5jCisrKyBiL09iamVjdHMvZGVzY3JvYmplY3QuYwpAQCAtMTE1LDcgKzExNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAoKFB5VHlwZU9iamVjdCAqKXR5cGUpLT50cF9uYW1lKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHJldHVybiBQeUNGdW5jdGlvbl9OZXcoZGVzY3ItPmRfbWV0aG9kLCB0eXBlKTsKKyAgICByZXR1cm4gUHlDRnVuY3Rpb25fTmV3RXgoZGVzY3ItPmRfbWV0aG9kLCB0eXBlLCBOVUxMKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTEyNSw3ICsxMjUsNyBAQAogCiAgICAgaWYgKGRlc2NyX2NoZWNrKChQeURlc2NyT2JqZWN0ICopZGVzY3IsIG9iaiwgJnJlcykpCiAgICAgICAgIHJldHVybiByZXM7Ci0gICAgcmV0dXJuIFB5Q0Z1bmN0aW9uX05ldyhkZXNjci0+ZF9tZXRob2QsIG9iaik7CisgICAgcmV0dXJuIFB5Q0Z1bmN0aW9uX05ld0V4KGRlc2NyLT5kX21ldGhvZCwgb2JqLCBOVUxMKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTIzOSw3ICsyMzksNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBmdW5jID0gUHlDRnVuY3Rpb25fTmV3KGRlc2NyLT5kX21ldGhvZCwgc2VsZik7CisgICAgZnVuYyA9IFB5Q0Z1bmN0aW9uX05ld0V4KGRlc2NyLT5kX21ldGhvZCwgc2VsZiwgTlVMTCk7CiAgICAgaWYgKGZ1bmMgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgYXJncyA9IFB5VHVwbGVfR2V0U2xpY2UoYXJncywgMSwgYXJnYyk7CkBAIC0yOTIsNyArMjkyLDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgZnVuYyA9IFB5Q0Z1bmN0aW9uX05ldyhkZXNjci0+ZF9tZXRob2QsIHNlbGYpOworICAgIGZ1bmMgPSBQeUNGdW5jdGlvbl9OZXdFeChkZXNjci0+ZF9tZXRob2QsIHNlbGYsIE5VTEwpOwogICAgIGlmIChmdW5jID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGFyZ3MgPSBQeVR1cGxlX0dldFNsaWNlKGFyZ3MsIDEsIGFyZ2MpOwpAQCAtMTAwOSw3ICsxMDA5LDcgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiB3cmFwcGVyX3JpY2hjb21wYXJlKFB5T2JqZWN0ICphLCBQeU9iamVjdCAqYiwgaW50IG9wKQogewotICAgIGludCByZXN1bHQ7CisgICAgUHlfaW50cHRyX3QgcmVzdWx0OwogICAgIFB5T2JqZWN0ICp2OwogICAgIFB5V3JhcHBlckRlc2NyT2JqZWN0ICphX2Rlc2NyLCAqYl9kZXNjcjsKIApkaWZmIC0tZ2l0IGEvT2JqZWN0cy9kaWN0b2JqZWN0LmMgYi9PYmplY3RzL2RpY3RvYmplY3QuYwppbmRleCA3YWE1ZWE4Li4yNTBjODkwIDEwMDY0NAotLS0gYS9PYmplY3RzL2RpY3RvYmplY3QuYworKysgYi9PYmplY3RzL2RpY3RvYmplY3QuYwpAQCAtMjExOCwxMyArMjExOCwxOCBAQAogICAgICAgICBpZiAoYXZhbCAhPSBOVUxMKSB7CiAgICAgICAgICAgICBpbnQgY21wOwogICAgICAgICAgICAgUHlPYmplY3QgKmJ2YWw7CisgICAgICAgICAgICBQeU9iamVjdCAqKnZhZGRyOwogICAgICAgICAgICAgUHlPYmplY3QgKmtleSA9IGVwLT5tZV9rZXk7CiAgICAgICAgICAgICAvKiB0ZW1wb3JhcmlseSBidW1wIGF2YWwncyByZWZjb3VudCB0byBlbnN1cmUgaXQgc3RheXMKICAgICAgICAgICAgICAgIGFsaXZlIHVudGlsIHdlJ3JlIGRvbmUgd2l0aCBpdCAqLwogICAgICAgICAgICAgUHlfSU5DUkVGKGF2YWwpOwogICAgICAgICAgICAgLyogZGl0dG8gZm9yIGtleSAqLwogICAgICAgICAgICAgUHlfSU5DUkVGKGtleSk7Ci0gICAgICAgICAgICBidmFsID0gUHlEaWN0X0dldEl0ZW1XaXRoRXJyb3IoKFB5T2JqZWN0ICopYiwga2V5KTsKKyAgICAgICAgICAgIC8qIHJldXNlIHRoZSBrbm93biBoYXNoIHZhbHVlICovCisgICAgICAgICAgICBpZiAoKGItPm1hX2tleXMtPmRrX2xvb2t1cCkoYiwga2V5LCBlcC0+bWVfaGFzaCwgJnZhZGRyKSA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGJ2YWwgPSBOVUxMOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGJ2YWwgPSAqdmFkZHI7CiAgICAgICAgICAgICBQeV9ERUNSRUYoa2V5KTsKICAgICAgICAgICAgIGlmIChidmFsID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoYXZhbCk7CkBAIC0yMjEwLDE5ICsyMjE1LDE5IEBACiAgICAgcmV0dXJuIHZhbDsKIH0KIAotc3RhdGljIFB5T2JqZWN0ICoKLWRpY3Rfc2V0ZGVmYXVsdChyZWdpc3RlciBQeURpY3RPYmplY3QgKm1wLCBQeU9iamVjdCAqYXJncykKK1B5T2JqZWN0ICoKK1B5RGljdF9TZXREZWZhdWx0KFB5T2JqZWN0ICpkLCBQeU9iamVjdCAqa2V5LCBQeU9iamVjdCAqZGVmYXVsdG9iaikKIHsKLSAgICBQeU9iamVjdCAqa2V5OwotICAgIFB5T2JqZWN0ICpmYWlsb2JqID0gUHlfTm9uZTsKKyAgICBQeURpY3RPYmplY3QgKm1wID0gKFB5RGljdE9iamVjdCAqKWQ7CiAgICAgUHlPYmplY3QgKnZhbCA9IE5VTEw7CiAgICAgUHlfaGFzaF90IGhhc2g7CiAgICAgUHlEaWN0S2V5RW50cnkgKmVwOwogICAgIFB5T2JqZWN0ICoqdmFsdWVfYWRkcjsKIAotICAgIGlmICghUHlBcmdfVW5wYWNrVHVwbGUoYXJncywgInNldGRlZmF1bHQiLCAxLCAyLCAma2V5LCAmZmFpbG9iaikpCisgICAgaWYgKCFQeURpY3RfQ2hlY2soZCkpIHsKKyAgICAgICAgUHlFcnJfQmFkSW50ZXJuYWxDYWxsKCk7CiAgICAgICAgIHJldHVybiBOVUxMOwotCisgICAgfQogICAgIGlmICghUHlVbmljb2RlX0NoZWNrRXhhY3Qoa2V5KSB8fAogICAgICAgICAoaGFzaCA9ICgoUHlBU0NJSU9iamVjdCAqKSBrZXkpLT5oYXNoKSA9PSAtMSkgewogICAgICAgICBoYXNoID0gUHlPYmplY3RfSGFzaChrZXkpOwpAQCAtMjI0MCwyMCArMjI0NSwzMiBAQAogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgZXAgPSBmaW5kX2VtcHR5X3Nsb3QobXAsIGtleSwgaGFzaCwgJnZhbHVlX2FkZHIpOwogICAgICAgICB9Ci0gICAgICAgIFB5X0lOQ1JFRihmYWlsb2JqKTsKKyAgICAgICAgUHlfSU5DUkVGKGRlZmF1bHRvYmopOwogICAgICAgICBQeV9JTkNSRUYoa2V5KTsKLSAgICAgICAgTUFJTlRBSU5fVFJBQ0tJTkcobXAsIGtleSwgZmFpbG9iaik7CisgICAgICAgIE1BSU5UQUlOX1RSQUNLSU5HKG1wLCBrZXksIGRlZmF1bHRvYmopOwogICAgICAgICBlcC0+bWVfa2V5ID0ga2V5OwogICAgICAgICBlcC0+bWVfaGFzaCA9IGhhc2g7Ci0gICAgICAgICp2YWx1ZV9hZGRyID0gZmFpbG9iajsKLSAgICAgICAgdmFsID0gZmFpbG9iajsKKyAgICAgICAgKnZhbHVlX2FkZHIgPSBkZWZhdWx0b2JqOworICAgICAgICB2YWwgPSBkZWZhdWx0b2JqOwogICAgICAgICBtcC0+bWFfa2V5cy0+ZGtfdXNhYmxlLS07CiAgICAgICAgIG1wLT5tYV91c2VkKys7CiAgICAgfQotICAgIFB5X0lOQ1JFRih2YWwpOwogICAgIHJldHVybiB2YWw7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCitkaWN0X3NldGRlZmF1bHQoUHlEaWN0T2JqZWN0ICptcCwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlPYmplY3QgKmtleSwgKnZhbDsKKyAgICBQeU9iamVjdCAqZGVmYXVsdG9iaiA9IFB5X05vbmU7CisKKyAgICBpZiAoIVB5QXJnX1VucGFja1R1cGxlKGFyZ3MsICJzZXRkZWZhdWx0IiwgMSwgMiwgJmtleSwgJmRlZmF1bHRvYmopKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHZhbCA9IFB5RGljdF9TZXREZWZhdWx0KChQeU9iamVjdCAqKW1wLCBrZXksIGRlZmF1bHRvYmopOworICAgIFB5X1hJTkNSRUYodmFsKTsKKyAgICByZXR1cm4gdmFsOworfQogCiBzdGF0aWMgUHlPYmplY3QgKgogZGljdF9jbGVhcihyZWdpc3RlciBQeURpY3RPYmplY3QgKm1wKQpAQCAtMjQ2MCwxMCArMjQ3NywxMCBAQAogMi10dXBsZTsgYnV0IHJhaXNlIEtleUVycm9yIGlmIEQgaXMgZW1wdHkuIik7CiAKIFB5RG9jX1NUUlZBUih1cGRhdGVfX2RvY19fLAotIkQudXBkYXRlKFtFLCBdKipGKSAtPiBOb25lLiAgVXBkYXRlIEQgZnJvbSBkaWN0L2l0ZXJhYmxlIEUgYW5kIEYuXG4iCi0iSWYgRSBwcmVzZW50IGFuZCBoYXMgYSAua2V5cygpIG1ldGhvZCwgZG9lczogICAgIGZvciBrIGluIEU6IERba10gPSBFW2tdXG5cCi1JZiBFIHByZXNlbnQgYW5kIGxhY2tzIC5rZXlzKCkgbWV0aG9kLCBkb2VzOiAgICAgZm9yIChrLCB2KSBpbiBFOiBEW2tdID0gdlxuXAotSW4gZWl0aGVyIGNhc2UsIHRoaXMgaXMgZm9sbG93ZWQgYnk6IGZvciBrIGluIEY6IERba10gPSBGW2tdIik7CisiRC51cGRhdGUoW0UsIF0qKkYpIC0+IE5vbmUuICBVcGRhdGUgRCBmcm9tIGRpY3QvaXRlcmFibGUgRSBhbmQgRi5cblwKK0lmIEUgaXMgcHJlc2VudCBhbmQgaGFzIGEgLmtleXMoKSBtZXRob2QsIHRoZW4gZG9lczogIGZvciBrIGluIEU6IERba10gPSBFW2tdXG5cCitJZiBFIGlzIHByZXNlbnQgYW5kIGxhY2tzIGEgLmtleXMoKSBtZXRob2QsIHRoZW4gZG9lczogIGZvciBrLCB2IGluIEU6IERba10gPSB2XG5cCitJbiBlaXRoZXIgY2FzZSwgdGhpcyBpcyBmb2xsb3dlZCBieTogZm9yIGsgaW4gRjogIERba10gPSBGW2tdIik7CiAKIFB5RG9jX1NUUlZBUihmcm9ta2V5c19fZG9jX18sCiAiZGljdC5mcm9ta2V5cyhTWyx2XSkgLT4gTmV3IGRpY3Qgd2l0aCBrZXlzIGZyb20gUyBhbmQgdmFsdWVzIGVxdWFsIHRvIHYuXG5cCmRpZmYgLS1naXQgYS9PYmplY3RzL2V4Y2VwdGlvbnMuYyBiL09iamVjdHMvZXhjZXB0aW9ucy5jCmluZGV4IDZiMDQ3MDAuLjc5YmJiOGYgMTAwNjQ0Ci0tLSBhL09iamVjdHMvZXhjZXB0aW9ucy5jCisrKyBiL09iamVjdHMvZXhjZXB0aW9ucy5jCkBAIC0yMzI3LDcgKzIzMjcsNyBAQAogICAgIH0KIAogI2lmZGVmIE1TX1dJTkRPV1MKLSNpbmNsdWRlIDxXaW5zb2NrMi5oPgorI2luY2x1ZGUgPHdpbnNvY2syLmg+CiAvKiBUaGUgZm9sbG93aW5nIGNvbnN0YW50cyB3ZXJlIGFkZGVkIHRvIGVycm5vLmggaW4gVlMyMDEwIGJ1dCBoYXZlCiAgICBwcmVmZXJyZWQgV1NBIGVxdWl2YWxlbnRzLiAqLwogI3VuZGVmIEVBRERSSU5VU0UKZGlmZiAtLWdpdCBhL09iamVjdHMvZmxvYXRvYmplY3QuYyBiL09iamVjdHMvZmxvYXRvYmplY3QuYwppbmRleCBiNTcxY2E4Li4xMzk4ZmE1IDEwMDY0NAotLS0gYS9PYmplY3RzL2Zsb2F0b2JqZWN0LmMKKysrIGIvT2JqZWN0cy9mbG9hdG9iamVjdC5jCkBAIC05LDExICs5LDYgQEAKICNpbmNsdWRlIDxjdHlwZS5oPgogI2luY2x1ZGUgPGZsb2F0Lmg+CiAKLSN1bmRlZiBNQVgKLSN1bmRlZiBNSU4KLSNkZWZpbmUgTUFYKHgsIHkpICgoeCkgPCAoeSkgPyAoeSkgOiAoeCkpCi0jZGVmaW5lIE1JTih4LCB5KSAoKHgpIDwgKHkpID8gKHgpIDogKHkpKQotCiAKIC8qIFNwZWNpYWwgZnJlZSBsaXN0CiAgICBmcmVlX2xpc3QgaXMgYSBzaW5nbHktbGlua2VkIGxpc3Qgb2YgYXZhaWxhYmxlIFB5RmxvYXRPYmplY3RzLCBsaW5rZWQKQEAgLTExMzEsNyArMTEyNiw3IEBACiAgICAgfQogCiAgICAgbSA9IGZyZXhwKGZhYnMoeCksICZlKTsKLSAgICBzaGlmdCA9IDEgLSBNQVgoREJMX01JTl9FWFAgLSBlLCAwKTsKKyAgICBzaGlmdCA9IDEgLSBQeV9NQVgoREJMX01JTl9FWFAgLSBlLCAwKTsKICAgICBtID0gbGRleHAobSwgc2hpZnQpOwogICAgIGUgLT0gc2hpZnQ7CiAKQEAgLTEyODUsOCArMTI4MCw4IEBACiAgICAgZmRpZ2l0cyA9IGNvZWZmX2VuZCAtIHNfc3RvcmU7CiAgICAgaWYgKG5kaWdpdHMgPT0gMCkKICAgICAgICAgZ290byBwYXJzZV9lcnJvcjsKLSAgICBpZiAobmRpZ2l0cyA+IE1JTihEQkxfTUlOX0VYUCAtIERCTF9NQU5UX0RJRyAtIExPTkdfTUlOLzIsCi0gICAgICAgICAgICAgICAgICAgICAgTE9OR19NQVgvMiArIDEgLSBEQkxfTUFYX0VYUCkvNCkKKyAgICBpZiAobmRpZ2l0cyA+IFB5X01JTihEQkxfTUlOX0VYUCAtIERCTF9NQU5UX0RJRyAtIExPTkdfTUlOLzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgTE9OR19NQVgvMiArIDEgLSBEQkxfTUFYX0VYUCkvNCkKICAgICAgICAgZ290byBpbnNhbmVfbGVuZ3RoX2Vycm9yOwogCiAgICAgLyogW3AgPGV4cG9uZW50Pl0gKi8KQEAgLTEzNDIsNyArMTMzNyw3IEBACiAKICAgICAvKiBsc2IgPSBleHBvbmVudCBvZiBsZWFzdCBzaWduaWZpY2FudCBiaXQgb2YgdGhlICpyb3VuZGVkKiB2YWx1ZS4KICAgICAgICBUaGlzIGlzIHRvcF9leHAgLSBEQkxfTUFOVF9ESUcgdW5sZXNzIHJlc3VsdCBpcyBzdWJub3JtYWwuICovCi0gICAgbHNiID0gTUFYKHRvcF9leHAsIChsb25nKURCTF9NSU5fRVhQKSAtIERCTF9NQU5UX0RJRzsKKyAgICBsc2IgPSBQeV9NQVgodG9wX2V4cCwgKGxvbmcpREJMX01JTl9FWFApIC0gREJMX01BTlRfRElHOwogCiAgICAgeCA9IDAuMDsKICAgICBpZiAoZXhwID49IGxzYikgewpAQCAtMTcxMSw3ICsxNzA2LDcgQEAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlU6X19mb3JtYXRfXyIsICZmb3JtYXRfc3BlYykpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIsIDApOworICAgIF9QeVVuaWNvZGVXcml0ZXJfSW5pdCgmd3JpdGVyKTsKICAgICByZXQgPSBfUHlGbG9hdF9Gb3JtYXRBZHZhbmNlZFdyaXRlcigKICAgICAgICAgJndyaXRlciwKICAgICAgICAgc2VsZiwKZGlmZiAtLWdpdCBhL09iamVjdHMvZnJhbWVvYmplY3QuYyBiL09iamVjdHMvZnJhbWVvYmplY3QuYwppbmRleCA4MDhlNTk1Li5kM2I1OWYxIDEwMDY0NAotLS0gYS9PYmplY3RzL2ZyYW1lb2JqZWN0LmMKKysrIGIvT2JqZWN0cy9mcmFtZW9iamVjdC5jCkBAIC03LDExICs3LDYgQEAKICNpbmNsdWRlICJvcGNvZGUuaCIKICNpbmNsdWRlICJzdHJ1Y3RtZW1iZXIuaCIKIAotI3VuZGVmIE1JTgotI3VuZGVmIE1BWAotI2RlZmluZSBNSU4oYSwgYikgKChhKSA8IChiKSA/IChhKSA6IChiKSkKLSNkZWZpbmUgTUFYKGEsIGIpICgoYSkgPiAoYikgPyAoYSkgOiAoYikpCi0KICNkZWZpbmUgT0ZGKHgpIG9mZnNldG9mKFB5RnJhbWVPYmplY3QsIHgpCiAKIHN0YXRpYyBQeU1lbWJlckRlZiBmcmFtZV9tZW1iZXJsaXN0W10gPSB7CkBAIC0xNjAsOCArMTU1LDggQEAKIAogICAgIC8qIFdlJ3JlIG5vdyByZWFkeSB0byBsb29rIGF0IHRoZSBieXRlY29kZS4gKi8KICAgICBQeUJ5dGVzX0FzU3RyaW5nQW5kU2l6ZShmLT5mX2NvZGUtPmNvX2NvZGUsIChjaGFyICoqKSZjb2RlLCAmY29kZV9sZW4pOwotICAgIG1pbl9hZGRyID0gTUlOKG5ld19sYXN0aSwgZi0+Zl9sYXN0aSk7Ci0gICAgbWF4X2FkZHIgPSBNQVgobmV3X2xhc3RpLCBmLT5mX2xhc3RpKTsKKyAgICBtaW5fYWRkciA9IFB5X01JTihuZXdfbGFzdGksIGYtPmZfbGFzdGkpOworICAgIG1heF9hZGRyID0gUHlfTUFYKG5ld19sYXN0aSwgZi0+Zl9sYXN0aSk7CiAKICAgICAvKiBZb3UgY2FuJ3QganVtcCBvbnRvIGEgbGluZSB3aXRoIGFuICdleGNlcHQnIHN0YXRlbWVudCBvbiBpdCAtCiAgICAgICogdGhleSBleHBlY3QgdG8gaGF2ZSBhbiBleGNlcHRpb24gb24gdGhlIHRvcCBvZiB0aGUgc3RhY2ssIHdoaWNoCkBAIC0yOTMsNyArMjg4LDcgQEAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAgbWluX2RlbHRhX2libG9jayA9IE1JTihtaW5fZGVsdGFfaWJsb2NrLCBkZWx0YV9pYmxvY2spOworICAgICAgICBtaW5fZGVsdGFfaWJsb2NrID0gUHlfTUlOKG1pbl9kZWx0YV9pYmxvY2ssIGRlbHRhX2libG9jayk7CiAKICAgICAgICAgaWYgKG9wID49IEhBVkVfQVJHVU1FTlQpIHsKICAgICAgICAgICAgIGFkZHIgKz0gMjsKQEAgLTQ2Niw3ICs0NjEsNyBAQAogZnJhbWVfdHJhdmVyc2UoUHlGcmFtZU9iamVjdCAqZiwgdmlzaXRwcm9jIHZpc2l0LCB2b2lkICphcmcpCiB7CiAgICAgUHlPYmplY3QgKipmYXN0bG9jYWxzLCAqKnA7Ci0gICAgaW50IGksIHNsb3RzOworICAgIFB5X3NzaXplX3QgaSwgc2xvdHM7CiAKICAgICBQeV9WSVNJVChmLT5mX2JhY2spOwogICAgIFB5X1ZJU0lUKGYtPmZfY29kZSk7CkBAIC00OTYsNyArNDkxLDcgQEAKIGZyYW1lX2NsZWFyKFB5RnJhbWVPYmplY3QgKmYpCiB7CiAgICAgUHlPYmplY3QgKipmYXN0bG9jYWxzLCAqKnAsICoqb2xkdG9wOwotICAgIGludCBpLCBzbG90czsKKyAgICBQeV9zc2l6ZV90IGksIHNsb3RzOwogCiAgICAgLyogQmVmb3JlIGFueXRoaW5nIGVsc2UsIG1ha2Ugc3VyZSB0aGF0IHRoaXMgZnJhbWUgaXMgY2xlYXJseSBtYXJrZWQKICAgICAgKiBhcyBiZWluZyBkZWZ1bmN0ISAgRWxzZSwgZS5nLiwgYSBnZW5lcmF0b3IgcmVhY2hhYmxlIGZyb20gdGhpcwpAQCAtODQ4LDcgKzg0Myw3IEBACiAgICAgUHlPYmplY3QgKmVycm9yX3R5cGUsICplcnJvcl92YWx1ZSwgKmVycm9yX3RyYWNlYmFjazsKICAgICBQeUNvZGVPYmplY3QgKmNvOwogICAgIFB5X3NzaXplX3QgajsKLSAgICBpbnQgbmNlbGxzLCBuZnJlZXZhcnM7CisgICAgUHlfc3NpemVfdCBuY2VsbHMsIG5mcmVldmFyczsKICAgICBpZiAoZiA9PSBOVUxMKQogICAgICAgICByZXR1cm47CiAgICAgbG9jYWxzID0gZi0+Zl9sb2NhbHM7CkBAIC05MDAsNyArODk1LDcgQEAKICAgICBQeU9iamVjdCAqZXJyb3JfdHlwZSwgKmVycm9yX3ZhbHVlLCAqZXJyb3JfdHJhY2ViYWNrOwogICAgIFB5Q29kZU9iamVjdCAqY287CiAgICAgUHlfc3NpemVfdCBqOwotICAgIGludCBuY2VsbHMsIG5mcmVldmFyczsKKyAgICBQeV9zc2l6ZV90IG5jZWxscywgbmZyZWV2YXJzOwogICAgIGlmIChmID09IE5VTEwpCiAgICAgICAgIHJldHVybjsKICAgICBsb2NhbHMgPSBmLT5mX2xvY2FsczsKZGlmZiAtLWdpdCBhL09iamVjdHMvaXRlcm9iamVjdC5jIGIvT2JqZWN0cy9pdGVyb2JqZWN0LmMKaW5kZXggM2NmYmVhZi4uNzdmZjgxMCAxMDA2NDQKLS0tIGEvT2JqZWN0cy9pdGVyb2JqZWN0LmMKKysrIGIvT2JqZWN0cy9pdGVyb2JqZWN0LmMKQEAgLTQsNyArNCw3IEBACiAKIHR5cGVkZWYgc3RydWN0IHsKICAgICBQeU9iamVjdF9IRUFECi0gICAgbG9uZyAgICAgIGl0X2luZGV4OworICAgIFB5X3NzaXplX3QgaXRfaW5kZXg7CiAgICAgUHlPYmplY3QgKml0X3NlcTsgLyogU2V0IHRvIE5VTEwgd2hlbiBpdGVyYXRvciBpcyBleGhhdXN0ZWQgKi8KIH0gc2VxaXRlcm9iamVjdDsKIApAQCAtNzYsOSArNzYsMTQgQEAKICAgICBQeV9zc2l6ZV90IHNlcXNpemUsIGxlbjsKIAogICAgIGlmIChpdC0+aXRfc2VxKSB7Ci0gICAgICAgIHNlcXNpemUgPSBQeVNlcXVlbmNlX1NpemUoaXQtPml0X3NlcSk7Ci0gICAgICAgIGlmIChzZXFzaXplID09IC0xKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGlmIChfUHlPYmplY3RfSGFzTGVuKGl0LT5pdF9zZXEpKSB7CisgICAgICAgICAgICBzZXFzaXplID0gUHlTZXF1ZW5jZV9TaXplKGl0LT5pdF9zZXEpOworICAgICAgICAgICAgaWYgKHNlcXNpemUgPT0gLTEpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CisgICAgICAgIH0KICAgICAgICAgbGVuID0gc2Vxc2l6ZSAtIGl0LT5pdF9pbmRleDsKICAgICAgICAgaWYgKGxlbiA+PSAwKQogICAgICAgICAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU3NpemVfdChsZW4pOwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9saXN0b2JqZWN0LmMgYi9PYmplY3RzL2xpc3RvYmplY3QuYwppbmRleCA2ZTBkMDk0Li40Y2MzNGI1IDEwMDY0NAotLS0gYS9PYmplY3RzL2xpc3RvYmplY3QuYworKysgYi9PYmplY3RzL2xpc3RvYmplY3QuYwpAQCAtODI2LDcgKzgyNiw3IEBACiAgICAgaXRlcm5leHQgPSAqaXQtPm9iX3R5cGUtPnRwX2l0ZXJuZXh0OwogCiAgICAgLyogR3Vlc3MgYSByZXN1bHQgbGlzdCBzaXplLiAqLwotICAgIG4gPSBfUHlPYmplY3RfTGVuZ3RoSGludChiLCA4KTsKKyAgICBuID0gUHlPYmplY3RfTGVuZ3RoSGludChiLCA4KTsKICAgICBpZiAobiA9PSAtMSkgewogICAgICAgICBQeV9ERUNSRUYoaXQpOwogICAgICAgICByZXR1cm4gTlVMTDsKZGlmZiAtLWdpdCBhL09iamVjdHMvbG9uZ29iamVjdC5jIGIvT2JqZWN0cy9sb25nb2JqZWN0LmMKaW5kZXggZDRkYzQ1YS4uZGJlZGFkYiAxMDA2NDQKLS0tIGEvT2JqZWN0cy9sb25nb2JqZWN0LmMKKysrIGIvT2JqZWN0cy9sb25nb2JqZWN0LmMKQEAgLTg5LDExICs4OSw2IEBACiAgKi8KICNkZWZpbmUgRklWRUFSWV9DVVRPRkYgOAogCi0jdW5kZWYgTUlOCi0jdW5kZWYgTUFYCi0jZGVmaW5lIE1BWCh4LCB5KSAoKHgpIDwgKHkpID8gKHkpIDogKHgpKQotI2RlZmluZSBNSU4oeCwgeSkgKCh4KSA+ICh5KSA/ICh5KSA6ICh4KSkKLQogI2RlZmluZSBTSUdDSEVDSyhQeVRyeUJsb2NrKSAgICAgICAgICAgICAgICAgICAgXAogICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBpZiAoUHlFcnJfQ2hlY2tTaWduYWxzKCkpIFB5VHJ5QmxvY2sgICAgXApAQCAtOTU0LDkgKzk0OSw2IEBACiBQeUxvbmdfRnJvbVZvaWRQdHIodm9pZCAqcCkKIHsKICNpZiBTSVpFT0ZfVk9JRF9QIDw9IFNJWkVPRl9MT05HCi0gICAgLyogc3BlY2lhbC1jYXNlIG51bGwgcG9pbnRlciAqLwotICAgIGlmICghcCkKLSAgICAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZygwKTsKICAgICByZXR1cm4gUHlMb25nX0Zyb21VbnNpZ25lZExvbmcoKHVuc2lnbmVkIGxvbmcpKFB5X3VpbnRwdHJfdClwKTsKICNlbHNlCiAKQEAgLTk2Niw5ICs5NTgsNiBAQAogI2lmIFNJWkVPRl9MT05HX0xPTkcgPCBTSVpFT0ZfVk9JRF9QCiAjICAgZXJyb3IgIlB5TG9uZ19Gcm9tVm9pZFB0cjogc2l6ZW9mKFBZX0xPTkdfTE9ORykgPCBzaXplb2Yodm9pZCopIgogI2VuZGlmCi0gICAgLyogc3BlY2lhbC1jYXNlIG51bGwgcG9pbnRlciAqLwotICAgIGlmICghcCkKLSAgICAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZygwKTsKICAgICByZXR1cm4gUHlMb25nX0Zyb21VbnNpZ25lZExvbmdMb25nKCh1bnNpZ25lZCBQWV9MT05HX0xPTkcpKFB5X3VpbnRwdHJfdClwKTsKICNlbmRpZiAvKiBTSVpFT0ZfVk9JRF9QIDw9IFNJWkVPRl9MT05HICovCiAKQEAgLTEwMTQsNyArMTAwMyw2IEBACiAgKiByZXdyaXR0ZW4gdG8gdXNlIHRoZSBuZXdlciBQeUxvbmdfe0FzLEZyb219Qnl0ZUFycmF5IEFQSS4KICAqLwogCi0jZGVmaW5lIElTX0xJVFRMRV9FTkRJQU4gKGludCkqKHVuc2lnbmVkIGNoYXIqKSZvbmUKICNkZWZpbmUgUFlfQUJTX0xMT05HX01JTiAoMC0odW5zaWduZWQgUFlfTE9OR19MT05HKVBZX0xMT05HX01JTikKIAogLyogQ3JlYXRlIGEgbmV3IGxvbmcgaW50IG9iamVjdCBmcm9tIGEgQyBQWV9MT05HX0xPTkcgaW50LiAqLwpAQCAtMTE2Nyw3ICsxMTU1LDYgQEAKIHsKICAgICBQeUxvbmdPYmplY3QgKnY7CiAgICAgUFlfTE9OR19MT05HIGJ5dGVzOwotICAgIGludCBvbmUgPSAxOwogICAgIGludCByZXM7CiAKICAgICBpZiAodnYgPT0gTlVMTCkgewpAQCAtMTIwMiw3ICsxMTg5LDcgQEAKICAgICBjYXNlIDE6IHJldHVybiB2LT5vYl9kaWdpdFswXTsKICAgICB9CiAgICAgcmVzID0gX1B5TG9uZ19Bc0J5dGVBcnJheSgoUHlMb25nT2JqZWN0ICopdnYsICh1bnNpZ25lZCBjaGFyICopJmJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0laRU9GX0xPTkdfTE9ORywgSVNfTElUVExFX0VORElBTiwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSVpFT0ZfTE9OR19MT05HLCBQWV9MSVRUTEVfRU5ESUFOLCAxKTsKIAogICAgIC8qIFBsYW4gOSBjYW4ndCBoYW5kbGUgUFlfTE9OR19MT05HIGluID8gOiBleHByZXNzaW9ucyAqLwogICAgIGlmIChyZXMgPCAwKQpAQCAtMTIxOSw3ICsxMjA2LDYgQEAKIHsKICAgICBQeUxvbmdPYmplY3QgKnY7CiAgICAgdW5zaWduZWQgUFlfTE9OR19MT05HIGJ5dGVzOwotICAgIGludCBvbmUgPSAxOwogICAgIGludCByZXM7CiAKICAgICBpZiAodnYgPT0gTlVMTCkgewpAQCAtMTIzOCw3ICsxMjI0LDcgQEAKICAgICB9CiAKICAgICByZXMgPSBfUHlMb25nX0FzQnl0ZUFycmF5KChQeUxvbmdPYmplY3QgKil2diwgKHVuc2lnbmVkIGNoYXIgKikmYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSVpFT0ZfTE9OR19MT05HLCBJU19MSVRUTEVfRU5ESUFOLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNJWkVPRl9MT05HX0xPTkcsIFBZX0xJVFRMRV9FTkRJQU4sIDApOwogCiAgICAgLyogUGxhbiA5IGNhbid0IGhhbmRsZSBQWV9MT05HX0xPTkcgaW4gPyA6IGV4cHJlc3Npb25zICovCiAgICAgaWYgKHJlcyA8IDApCkBAIC0xMzE0LDcgKzEzMDAsNiBAQAogICAgICAgICByZXR1cm4gKHVuc2lnbmVkIFBZX0xPTkdfTE9ORyktMTsKICAgICB9CiB9Ci0jdW5kZWYgSVNfTElUVExFX0VORElBTgogCiAvKiBHZXQgYSBDIGxvbmcgbG9uZyBpbnQgZnJvbSBhIGxvbmcgaW50IG9iamVjdCBvciBhbnkgb2JqZWN0IHRoYXQgaGFzIGFuCiAgICBfX2ludF9fIG1ldGhvZC4KQEAgLTE2NzYsNyArMTY2MSw2IEBACiAgICAgICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgcCA9IChUWVBFKilQeVVuaWNvZGVfREFUQShzdHIpICsgc3RybGVuOyAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICpwID0gJ1wwJzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAvKiBwb3V0WzBdIHRocm91Z2ggcG91dFtzaXplLTJdIGNvbnRyaWJ1dGUgZXhhY3RseSAgICAgICAgICAgIFwKICAgICAgICAgICAgX1B5TG9uZ19ERUNJTUFMX1NISUZUIGRpZ2l0cyBlYWNoICovICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIGZvciAoaT0wOyBpIDwgc2l6ZSAtIDE7IGkrKykgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMzA0MCw3ICszMDI0LDcgQEAKICAgICBQeV9zc2l6ZV90IHNpemVfbG8sIHNpemVfaGk7CiAgICAgY29uc3QgUHlfc3NpemVfdCBzaXplX24gPSBBQlMoUHlfU0laRShuKSk7CiAKLSAgICBzaXplX2xvID0gTUlOKHNpemVfbiwgc2l6ZSk7CisgICAgc2l6ZV9sbyA9IFB5X01JTihzaXplX24sIHNpemUpOwogICAgIHNpemVfaGkgPSBzaXplX24gLSBzaXplX2xvOwogCiAgICAgaWYgKChoaSA9IF9QeUxvbmdfTmV3KHNpemVfaGkpKSA9PSBOVUxMKQpAQCAtMzMxMSw3ICszMjk1LDcgQEAKICAgICBuYmRvbmUgPSAwOwogICAgIHdoaWxlIChic2l6ZSA+IDApIHsKICAgICAgICAgUHlMb25nT2JqZWN0ICpwcm9kdWN0OwotICAgICAgICBjb25zdCBQeV9zc2l6ZV90IG5idG91c2UgPSBNSU4oYnNpemUsIGFzaXplKTsKKyAgICAgICAgY29uc3QgUHlfc3NpemVfdCBuYnRvdXNlID0gUHlfTUlOKGJzaXplLCBhc2l6ZSk7CiAKICAgICAgICAgLyogTXVsdGlwbHkgdGhlIG5leHQgc2xpY2Ugb2YgYiBieSBhLiAqLwogICAgICAgICBtZW1jcHkoYnNsaWNlLT5vYl9kaWdpdCwgYi0+b2JfZGlnaXQgKyBuYmRvbmUsCkBAIC0zNjAyLDcgKzM1ODYsNyBAQAogICAgICAgICBnb3RvIHVuZGVyZmxvd19vcl96ZXJvOwogCiAgICAgLyogQ2hvb3NlIHZhbHVlIGZvciBzaGlmdDsgc2VlIGNvbW1lbnRzIGZvciBzdGVwIDEgYWJvdmUuICovCi0gICAgc2hpZnQgPSBNQVgoZGlmZiwgREJMX01JTl9FWFApIC0gREJMX01BTlRfRElHIC0gMjsKKyAgICBzaGlmdCA9IFB5X01BWChkaWZmLCBEQkxfTUlOX0VYUCkgLSBEQkxfTUFOVF9ESUcgLSAyOwogCiAgICAgaW5leGFjdCA9IDA7CiAKQEAgLTM2NzMsNyArMzY1Nyw3IEBACiAgICAgeF9iaXRzID0gKHhfc2l6ZS0xKSpQeUxvbmdfU0hJRlQrYml0c19pbl9kaWdpdCh4LT5vYl9kaWdpdFt4X3NpemUtMV0pOwogCiAgICAgLyogVGhlIG51bWJlciBvZiBleHRyYSBiaXRzIHRoYXQgaGF2ZSB0byBiZSByb3VuZGVkIGF3YXkuICovCi0gICAgZXh0cmFfYml0cyA9IE1BWCh4X2JpdHMsIERCTF9NSU5fRVhQIC0gc2hpZnQpIC0gREJMX01BTlRfRElHOworICAgIGV4dHJhX2JpdHMgPSBQeV9NQVgoeF9iaXRzLCBEQkxfTUlOX0VYUCAtIHNoaWZ0KSAtIERCTF9NQU5UX0RJRzsKICAgICBhc3NlcnQoZXh0cmFfYml0cyA9PSAyIHx8IGV4dHJhX2JpdHMgPT0gMyk7CiAKICAgICAvKiBSb3VuZCBieSBkaXJlY3RseSBtb2RpZnlpbmcgdGhlIGxvdyBkaWdpdCBvZiB4LiAqLwpAQCAtNDEwMSw3ICs0MDg1LDcgQEAKIAogc3RhdGljIFB5T2JqZWN0ICoKIGxvbmdfYml0d2lzZShQeUxvbmdPYmplY3QgKmEsCi0gICAgICAgICAgICAgaW50IG9wLCAgLyogJyYnLCAnfCcsICdeJyAqLworICAgICAgICAgICAgIGNoYXIgb3AsICAvKiAnJicsICd8JywgJ14nICovCiAgICAgICAgICAgICAgUHlMb25nT2JqZWN0ICpiKQogewogICAgIGludCBuZWdhLCBuZWdiLCBuZWd6OwpAQCAtNDI3Niw4ICs0MjYwLDcgQEAKIGxvbmdfbmV3KFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogewogICAgIFB5T2JqZWN0ICpvYmFzZSA9IE5VTEwsICp4ID0gTlVMTDsKLSAgICBsb25nIGJhc2U7Ci0gICAgaW50IG92ZXJmbG93OworICAgIFB5X3NzaXplX3QgYmFzZTsKICAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7IngiLCAiYmFzZSIsIDB9OwogCiAgICAgaWYgKHR5cGUgIT0gJlB5TG9uZ19UeXBlKQpAQCAtNDI5NiwxMCArNDI3OSwxMCBAQAogICAgIGlmIChvYmFzZSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gUHlOdW1iZXJfTG9uZyh4KTsKIAotICAgIGJhc2UgPSBQeUxvbmdfQXNMb25nQW5kT3ZlcmZsb3cob2Jhc2UsICZvdmVyZmxvdyk7CisgICAgYmFzZSA9IFB5TnVtYmVyX0FzU3NpemVfdChvYmFzZSwgTlVMTCk7CiAgICAgaWYgKGJhc2UgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgaWYgKG92ZXJmbG93IHx8IChiYXNlICE9IDAgJiYgYmFzZSA8IDIpIHx8IGJhc2UgPiAzNikgeworICAgIGlmICgoYmFzZSAhPSAwICYmIGJhc2UgPCAyKSB8fCBiYXNlID4gMzYpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAiaW50KCkgYmFzZSBtdXN0IGJlID49IDIgYW5kIDw9IDM2Iik7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtNDM5MSw3ICs0Mzc0LDcgQEAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlU6X19mb3JtYXRfXyIsICZmb3JtYXRfc3BlYykpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIsIDApOworICAgIF9QeVVuaWNvZGVXcml0ZXJfSW5pdCgmd3JpdGVyKTsKICAgICByZXQgPSBfUHlMb25nX0Zvcm1hdEFkdmFuY2VkV3JpdGVyKAogICAgICAgICAmd3JpdGVyLAogICAgICAgICBzZWxmLApkaWZmIC0tZ2l0IGEvT2JqZWN0cy9tZXRob2RvYmplY3QuYyBiL09iamVjdHMvbWV0aG9kb2JqZWN0LmMKaW5kZXggZjA2ODVkZC4uOTk0NGZhZCAxMDA2NDQKLS0tIGEvT2JqZWN0cy9tZXRob2RvYmplY3QuYworKysgYi9PYmplY3RzL21ldGhvZG9iamVjdC5jCkBAIC0xMyw2ICsxMywxNSBAQAogI2RlZmluZSBQeUNGdW5jdGlvbl9NQVhGUkVFTElTVCAyNTYKICNlbmRpZgogCisvKiB1bmRlZmluZSBtYWNybyB0cmFtcG9saW5lIHRvIFB5Q0Z1bmN0aW9uX05ld0V4ICovCisjdW5kZWYgUHlDRnVuY3Rpb25fTmV3CisKK1B5T2JqZWN0ICoKK1B5Q0Z1bmN0aW9uX05ldyhQeU1ldGhvZERlZiAqbWwsIFB5T2JqZWN0ICpzZWxmKQoreworICAgIHJldHVybiBQeUNGdW5jdGlvbl9OZXdFeChtbCwgc2VsZiwgTlVMTCk7Cit9CisKIFB5T2JqZWN0ICoKIFB5Q0Z1bmN0aW9uX05ld0V4KFB5TWV0aG9kRGVmICptbCwgUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICptb2R1bGUpCiB7CkBAIC0zNDYsMTcgKzM1NSwzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZnJlZSBQeUNGdW5jdGlvbk9iamVjdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1mcmVlLCBzaXplb2YoUHlDRnVuY3Rpb25PYmplY3QpKTsKIH0KLQotLyogUHlDRnVuY3Rpb25fTmV3KCkgaXMgbm93IGp1c3QgYSBtYWNybyB0aGF0IGNhbGxzIFB5Q0Z1bmN0aW9uX05ld0V4KCksCi0gICBidXQgaXQncyBwYXJ0IG9mIHRoZSBBUEkgc28gd2UgbmVlZCB0byBrZWVwIGEgZnVuY3Rpb24gYXJvdW5kIHRoYXQKLSAgIGV4aXN0aW5nIEMgZXh0ZW5zaW9ucyBjYW4gY2FsbC4KLSovCi0KLSN1bmRlZiBQeUNGdW5jdGlvbl9OZXcKLVB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlDRnVuY3Rpb25fTmV3KFB5TWV0aG9kRGVmICosIFB5T2JqZWN0ICopOwotCi1QeU9iamVjdCAqCi1QeUNGdW5jdGlvbl9OZXcoUHlNZXRob2REZWYgKm1sLCBQeU9iamVjdCAqc2VsZikKLXsKLSAgICByZXR1cm4gUHlDRnVuY3Rpb25fTmV3RXgobWwsIHNlbGYsIE5VTEwpOwotfQpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9tb2R1bGVvYmplY3QuYyBiL09iamVjdHMvbW9kdWxlb2JqZWN0LmMKaW5kZXggMmYyYmQzNi4uNTk3MDkwMSAxMDA2NDQKLS0tIGEvT2JqZWN0cy9tb2R1bGVvYmplY3QuYworKysgYi9PYmplY3RzL21vZHVsZW9iamVjdC5jCkBAIC0yNiw2ICsyNiwyNyBAQAogfTsKIAogCitzdGF0aWMgaW50Cittb2R1bGVfaW5pdF9kaWN0KFB5T2JqZWN0ICptZF9kaWN0LCBQeU9iamVjdCAqbmFtZSwgUHlPYmplY3QgKmRvYykKK3sKKyAgICBpZiAobWRfZGljdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKGRvYyA9PSBOVUxMKQorICAgICAgICBkb2MgPSBQeV9Ob25lOworCisgICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKG1kX2RpY3QsICJfX25hbWVfXyIsIG5hbWUpICE9IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcobWRfZGljdCwgIl9fZG9jX18iLCBkb2MpICE9IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcobWRfZGljdCwgIl9fcGFja2FnZV9fIiwgUHlfTm9uZSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyhtZF9kaWN0LCAiX19sb2FkZXJfXyIsIFB5X05vbmUpICE9IDApCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHJldHVybiAwOworfQorCisKIFB5T2JqZWN0ICoKIFB5TW9kdWxlX05ld09iamVjdChQeU9iamVjdCAqbmFtZSkKIHsKQEAgLTM2LDEzICs1Nyw3IEBACiAgICAgbS0+bWRfZGVmID0gTlVMTDsKICAgICBtLT5tZF9zdGF0ZSA9IE5VTEw7CiAgICAgbS0+bWRfZGljdCA9IFB5RGljdF9OZXcoKTsKLSAgICBpZiAobS0+bWRfZGljdCA9PSBOVUxMKQotICAgICAgICBnb3RvIGZhaWw7Ci0gICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKG0tPm1kX2RpY3QsICJfX25hbWVfXyIsIG5hbWUpICE9IDApCi0gICAgICAgIGdvdG8gZmFpbDsKLSAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcobS0+bWRfZGljdCwgIl9fZG9jX18iLCBQeV9Ob25lKSAhPSAwKQotICAgICAgICBnb3RvIGZhaWw7Ci0gICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKG0tPm1kX2RpY3QsICJfX3BhY2thZ2VfXyIsIFB5X05vbmUpICE9IDApCisgICAgaWYgKG1vZHVsZV9pbml0X2RpY3QobS0+bWRfZGljdCwgbmFtZSwgTlVMTCkgIT0gMCkKICAgICAgICAgZ290byBmYWlsOwogICAgIFB5T2JqZWN0X0dDX1RyYWNrKG0pOwogICAgIHJldHVybiAoUHlPYmplY3QgKiltOwpAQCAtMzQ3LDkgKzM2Miw3IEBACiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIG0tPm1kX2RpY3QgPSBkaWN0OwogICAgIH0KLSAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZGljdCwgIl9fbmFtZV9fIiwgbmFtZSkgPCAwKQotICAgICAgICByZXR1cm4gLTE7Ci0gICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKGRpY3QsICJfX2RvY19fIiwgZG9jKSA8IDApCisgICAgaWYgKG1vZHVsZV9pbml0X2RpY3QoZGljdCwgbmFtZSwgZG9jKSA8IDApCiAgICAgICAgIHJldHVybiAtMTsKICAgICByZXR1cm4gMDsKIH0KQEAgLTM4MCw3ICszOTMsNyBAQAogICAgIGlmIChtLT5tZF9kaWN0ICE9IE5VTEwpIHsKICAgICAgICAgbG9hZGVyID0gUHlEaWN0X0dldEl0ZW1TdHJpbmcobS0+bWRfZGljdCwgIl9fbG9hZGVyX18iKTsKICAgICB9Ci0gICAgaWYgKGxvYWRlciAhPSBOVUxMKSB7CisgICAgaWYgKGxvYWRlciAhPSBOVUxMICYmIGxvYWRlciAhPSBQeV9Ob25lKSB7CiAgICAgICAgIHJlcHIgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGxvYWRlciwgIm1vZHVsZV9yZXByIiwgIihPKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQeU9iamVjdCAqKW0sIE5VTEwpOwogICAgICAgICBpZiAocmVwciA9PSBOVUxMKSB7CkBAIC00MDQsMTAgKzQxNywxMCBAQAogICAgIGZpbGVuYW1lID0gUHlNb2R1bGVfR2V0RmlsZW5hbWVPYmplY3QoKFB5T2JqZWN0ICopbSk7CiAgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpIHsKICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKLSAgICAgICAgLyogVGhlcmUncyBubyBtLl9fZmlsZV9fLCBzbyBpZiB0aGVyZSB3YXMgYW4gX19sb2FkZXJfXywgdXNlIHRoYXQgaW4KKyAgICAgICAgLyogVGhlcmUncyBubyBtLl9fZmlsZV9fLCBzbyBpZiB0aGVyZSB3YXMgYSBfX2xvYWRlcl9fLCB1c2UgdGhhdCBpbgogICAgICAgICAgKiB0aGUgcmVwciwgb3RoZXJ3aXNlLCB0aGUgb25seSB0aGluZyB5b3UgY2FuIHVzZSBpcyBtLl9fbmFtZV9fCiAgICAgICAgICAqLwotICAgICAgICBpZiAobG9hZGVyID09IE5VTEwpIHsKKyAgICAgICAgaWYgKGxvYWRlciA9PSBOVUxMIHx8IGxvYWRlciA9PSBQeV9Ob25lKSB7CiAgICAgICAgICAgICByZXByID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIjxtb2R1bGUgJVI+IiwgbmFtZSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9PYmplY3RzL25hbWVzcGFjZW9iamVjdC5jIGIvT2JqZWN0cy9uYW1lc3BhY2VvYmplY3QuYwppbmRleCBmZjI3OGQzLi44YzUxYjA3IDEwMDY0NAotLS0gYS9PYmplY3RzL25hbWVzcGFjZW9iamVjdC5jCisrKyBiL09iamVjdHMvbmFtZXNwYWNlb2JqZWN0LmMKQEAgLTQ0LDcgKzQ0LDcgQEAKICAgICBpZiAoYXJncyAhPSBOVUxMKSB7CiAgICAgICAgIFB5X3NzaXplX3QgYXJnY291bnQgPSBQeU9iamVjdF9TaXplKGFyZ3MpOwogICAgICAgICBpZiAoYXJnY291bnQgPCAwKQotICAgICAgICAgICAgcmV0dXJuIGFyZ2NvdW50OworICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICBlbHNlIGlmIChhcmdjb3VudCA+IDApIHsKICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJubyBwb3NpdGlvbmFsIGFyZ3VtZW50cyBleHBlY3RlZCIpOwogICAgICAgICAgICAgcmV0dXJuIC0xOwpAQCAtNjYsMTYgKzY2LDIwIEBACiAKIAogc3RhdGljIFB5T2JqZWN0ICoKLW5hbWVzcGFjZV9yZXByKF9QeU5hbWVzcGFjZU9iamVjdCAqbnMpCituYW1lc3BhY2VfcmVwcihQeU9iamVjdCAqbnMpCiB7CiAgICAgaW50IGksIGxvb3BfZXJyb3IgPSAwOwogICAgIFB5T2JqZWN0ICpwYWlycyA9IE5VTEwsICpkID0gTlVMTCwgKmtleXMgPSBOVUxMLCAqa2V5c19pdGVyID0gTlVMTDsKICAgICBQeU9iamVjdCAqa2V5OwogICAgIFB5T2JqZWN0ICpzZXBhcmF0b3IsICpwYWlyc3JlcHIsICpyZXByID0gTlVMTDsKKyAgICBjb25zdCBjaGFyICogbmFtZTsKIAotICAgIGkgPSBQeV9SZXByRW50ZXIoKFB5T2JqZWN0ICopbnMpOworICAgIG5hbWUgPSAoUHlfVFlQRShucykgPT0gJl9QeU5hbWVzcGFjZV9UeXBlKSA/ICJuYW1lc3BhY2UiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnMtPm9iX3R5cGUtPnRwX25hbWU7CisKKyAgICBpID0gUHlfUmVwckVudGVyKG5zKTsKICAgICBpZiAoaSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBpID4gMCA/IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCJuYW1lc3BhY2UoLi4uKSIpIDogTlVMTDsKKyAgICAgICAgcmV0dXJuIGkgPiAwID8gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVzKC4uLikiLCBuYW1lKSA6IE5VTEw7CiAgICAgfQogCiAgICAgcGFpcnMgPSBQeUxpc3RfTmV3KDApOwpAQCAtMTI3LDggKzEzMSw3IEBACiAgICAgaWYgKHBhaXJzcmVwciA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycm9yOwogCi0gICAgcmVwciA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCIlcyglUykiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKFB5T2JqZWN0ICopbnMpLT5vYl90eXBlLT50cF9uYW1lLCBwYWlyc3JlcHIpOworICAgIHJlcHIgPSBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiJXMoJVMpIiwgbmFtZSwgcGFpcnNyZXByKTsKICAgICBQeV9ERUNSRUYocGFpcnNyZXByKTsKIAogZXJyb3I6CkBAIC0xMzYsNyArMTM5LDcgQEAKICAgICBQeV9YREVDUkVGKGQpOwogICAgIFB5X1hERUNSRUYoa2V5cyk7CiAgICAgUHlfWERFQ1JFRihrZXlzX2l0ZXIpOwotICAgIFB5X1JlcHJMZWF2ZSgoUHlPYmplY3QgKilucyk7CisgICAgUHlfUmVwckxlYXZlKG5zKTsKIAogICAgIHJldHVybiByZXByOwogfQpAQCAtMTU4LDE0ICsxNjEsNDkgQEAKIH0KIAogCitzdGF0aWMgUHlPYmplY3QgKgorbmFtZXNwYWNlX3JpY2hjb21wYXJlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqb3RoZXIsIGludCBvcCkKK3sKKyAgICBpZiAoUHlPYmplY3RfSXNJbnN0YW5jZShzZWxmLCAoUHlPYmplY3QgKikmX1B5TmFtZXNwYWNlX1R5cGUpICYmCisgICAgICAgICAgICBQeU9iamVjdF9Jc0luc3RhbmNlKG90aGVyLCAoUHlPYmplY3QgKikmX1B5TmFtZXNwYWNlX1R5cGUpKQorICAgICAgICByZXR1cm4gUHlPYmplY3RfUmljaENvbXBhcmUoKChfUHlOYW1lc3BhY2VPYmplY3QgKilzZWxmKS0+bnNfZGljdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChfUHlOYW1lc3BhY2VPYmplY3QgKilvdGhlciktPm5zX2RpY3QsIG9wKTsKKyAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOworICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsKK30KKworCitQeURvY19TVFJWQVIobmFtZXNwYWNlX3JlZHVjZV9fZG9jX18sICJSZXR1cm4gc3RhdGUgaW5mb3JtYXRpb24gZm9yIHBpY2tsaW5nIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCituYW1lc3BhY2VfcmVkdWNlKHJlZ2lzdGVyIF9QeU5hbWVzcGFjZU9iamVjdCAqbnMpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdCwgKmFyZ3MgPSBQeVR1cGxlX05ldygwKTsKKworICAgIGlmICghYXJncykKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICByZXN1bHQgPSBQeVR1cGxlX1BhY2soMywgKFB5T2JqZWN0ICopUHlfVFlQRShucyksIGFyZ3MsIG5zLT5uc19kaWN0KTsKKyAgICBQeV9ERUNSRUYoYXJncyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitzdGF0aWMgUHlNZXRob2REZWYgbmFtZXNwYWNlX21ldGhvZHNbXSA9IHsKKyAgICB7Il9fcmVkdWNlX18iLCAoUHlDRnVuY3Rpb24pbmFtZXNwYWNlX3JlZHVjZSwgTUVUSF9OT0FSR1MsCisgICAgIG5hbWVzcGFjZV9yZWR1Y2VfX2RvY19ffSwKKyAgICB7TlVMTCwgICAgICAgICBOVUxMfSAgLyogc2VudGluZWwgKi8KK307CisKKwogUHlEb2NfU1RSVkFSKG5hbWVzcGFjZV9kb2MsCiAiQSBzaW1wbGUgYXR0cmlidXRlLWJhc2VkIG5hbWVzcGFjZS5cblwKIFxuXAotbmFtZXNwYWNlKCoqa3dhcmdzKSIpOworU2ltcGxlTmFtZXNwYWNlKCoqa3dhcmdzKSIpOwogCiBQeVR5cGVPYmplY3QgX1B5TmFtZXNwYWNlX1R5cGUgPSB7CiAgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKCZQeVR5cGVfVHlwZSwgMCkKLSAgICAibmFtZXNwYWNlIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KKyAgICAidHlwZXMuU2ltcGxlTmFtZXNwYWNlIiwgICAgICAgICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KICAgICBzaXplb2YoX1B5TmFtZXNwYWNlT2JqZWN0KSwgICAgICAgICAgICAgICAgIC8qIHRwX3NpemUgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZW1zaXplICovCiAgICAgKGRlc3RydWN0b3IpbmFtZXNwYWNlX2RlYWxsb2MsICAgICAgICAgICAgICAvKiB0cF9kZWFsbG9jICovCkBAIC0xODgsMTEgKzIyNiwxMSBAQAogICAgIG5hbWVzcGFjZV9kb2MsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCiAgICAgKHRyYXZlcnNlcHJvYyluYW1lc3BhY2VfdHJhdmVyc2UsICAgICAgICAgICAvKiB0cF90cmF2ZXJzZSAqLwogICAgIChpbnF1aXJ5KW5hbWVzcGFjZV9jbGVhciwgICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgbmFtZXNwYWNlX3JpY2hjb21wYXJlLCAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yaWNoY29tcGFyZSAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCisgICAgbmFtZXNwYWNlX21ldGhvZHMsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCiAgICAgbmFtZXNwYWNlX21lbWJlcnMsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KZGlmZiAtLWdpdCBhL09iamVjdHMvb2JqZWN0LmMgYi9PYmplY3RzL29iamVjdC5jCmluZGV4IDk0OWU3ZGMuLjc5ZjFjOGEgMTAwNjQ0Ci0tLSBhL09iamVjdHMvb2JqZWN0LmMKKysrIGIvT2JqZWN0cy9vYmplY3QuYwpAQCAtNDUxLDYgKzQ1MSw5IEBACiAgICAgaWYgKHJlcHIgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKKyAgICBpZiAoUHlVbmljb2RlX0lTX0FTQ0lJKHJlcHIpKQorICAgICAgICByZXR1cm4gcmVwcjsKKwogICAgIC8qIHJlcHIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIFB5VW5pY29kZSBvYmplY3QgYnkgUHlPYmplY3RfUmVwciAqLwogICAgIGFzY2lpID0gX1B5VW5pY29kZV9Bc0FTQ0lJU3RyaW5nKHJlcHIsICJiYWNrc2xhc2hyZXBsYWNlIik7CiAgICAgUHlfREVDUkVGKHJlcHIpOwpAQCAtMTUyNCwxMiArMTUyNywyMSBAQAogICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKIH0KIAorc3RhdGljIHZvaWQKK25vdGltcGxlbWVudGVkX2RlYWxsb2MoUHlPYmplY3QqIGlnbm9yZSkKK3sKKyAgICAvKiBUaGlzIHNob3VsZCBuZXZlciBnZXQgY2FsbGVkLCBidXQgd2UgYWxzbyBkb24ndCB3YW50IHRvIFNFR1YgaWYKKyAgICAgKiB3ZSBhY2NpZGVudGFsbHkgZGVjcmVmIE5vdEltcGxlbWVudGVkIG91dCBvZiBleGlzdGVuY2UuCisgICAgICovCisgICAgUHlfRmF0YWxFcnJvcigiZGVhbGxvY2F0aW5nIE5vdEltcGxlbWVudGVkIik7Cit9CisKIHN0YXRpYyBQeVR5cGVPYmplY3QgUHlOb3RJbXBsZW1lbnRlZF9UeXBlID0gewogICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVCgmUHlUeXBlX1R5cGUsIDApCiAgICAgIk5vdEltcGxlbWVudGVkVHlwZSIsCiAgICAgMCwKICAgICAwLAotICAgIG5vbmVfZGVhbGxvYywgICAgICAgLyp0cF9kZWFsbG9jKi8gLypuZXZlciBjYWxsZWQqLworICAgIG5vdGltcGxlbWVudGVkX2RlYWxsb2MsICAgICAgIC8qdHBfZGVhbGxvYyovIC8qbmV2ZXIgY2FsbGVkKi8KICAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfcHJpbnQqLwogICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9nZXRhdHRyKi8KICAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfc2V0YXR0ciovCkBAIC0xNjk5LDE1ICsxNzExLDYgQEAKICAgICBpZiAoUHlUeXBlX1JlYWR5KCZQeU1lbWJlckRlc2NyX1R5cGUpIDwgMCkKICAgICAgICAgUHlfRmF0YWxFcnJvcigiQ2FuJ3QgaW5pdGlhbGl6ZSBtZW1iZXIgZGVzY3JpcHRvciB0eXBlIik7CiAKLSAgICBpZiAoUHlUeXBlX1JlYWR5KCZQeUZpbHRlcl9UeXBlKSA8IDApCi0gICAgICAgIFB5X0ZhdGFsRXJyb3IoIkNhbid0IGluaXRpYWxpemUgZmlsdGVyIHR5cGUiKTsKLQotICAgIGlmIChQeVR5cGVfUmVhZHkoJlB5TWFwX1R5cGUpIDwgMCkKLSAgICAgICAgUHlfRmF0YWxFcnJvcigiQ2FuJ3QgaW5pdGlhbGl6ZSBtYXAgdHlwZSIpOwotCi0gICAgaWYgKFB5VHlwZV9SZWFkeSgmUHlaaXBfVHlwZSkgPCAwKQotICAgICAgICBQeV9GYXRhbEVycm9yKCJDYW4ndCBpbml0aWFsaXplIHppcCB0eXBlIik7Ci0KICAgICBpZiAoUHlUeXBlX1JlYWR5KCZfUHlOYW1lc3BhY2VfVHlwZSkgPCAwKQogICAgICAgICBQeV9GYXRhbEVycm9yKCJDYW4ndCBpbml0aWFsaXplIG5hbWVzcGFjZSB0eXBlIik7CiAKZGlmZiAtLWdpdCBhL09iamVjdHMvb2JtYWxsb2MuYyBiL09iamVjdHMvb2JtYWxsb2MuYwppbmRleCA1MGZjN2MxLi4zMDI4ZjIyIDEwMDY0NAotLS0gYS9PYmplY3RzL29ibWFsbG9jLmMKKysrIGIvT2JqZWN0cy9vYm1hbGxvYy5jCkBAIC01MjUsNiArNTI1LDE1IEBACiAvKiBIaWdoIHdhdGVyIG1hcmsgKG1heCB2YWx1ZSBldmVyIHNlZW4pIGZvciBuYXJlbmFzX2N1cnJlbnRseV9hbGxvY2F0ZWQuICovCiBzdGF0aWMgc2l6ZV90IG5hcmVuYXNfaGlnaHdhdGVyID0gMDsKIAorc3RhdGljIFB5X3NzaXplX3QgX1B5X0FsbG9jYXRlZEJsb2NrcyA9IDA7CisKK1B5X3NzaXplX3QKK19QeV9HZXRBbGxvY2F0ZWRCbG9ja3Modm9pZCkKK3sKKyAgICByZXR1cm4gX1B5X0FsbG9jYXRlZEJsb2NrczsKK30KKworCiAvKiBBbGxvY2F0ZSBhIG5ldyBhcmVuYS4gIElmIHdlIHJ1biBvdXQgb2YgbWVtb3J5LCByZXR1cm4gTlVMTC4gIEVsc2UKICAqIGFsbG9jYXRlIGEgbmV3IGFyZW5hLCBhbmQgcmV0dXJuIHRoZSBhZGRyZXNzIG9mIGFuIGFyZW5hX29iamVjdAogICogZGVzY3JpYmluZyB0aGUgbmV3IGFyZW5hLiAgSXQncyBleHBlY3RlZCB0aGF0IHRoZSBjYWxsZXIgd2lsbCBzZXQKQEAgLTc2OSw2ICs3NzgsOCBAQAogICAgIHBvb2xwIG5leHQ7CiAgICAgdWludCBzaXplOwogCisgICAgX1B5X0FsbG9jYXRlZEJsb2NrcysrOworCiAjaWZkZWYgV0lUSF9WQUxHUklORAogICAgIGlmIChVTkxJS0VMWShydW5uaW5nX29uX3ZhbGdyaW5kID09IC0xKSkKICAgICAgICAgcnVubmluZ19vbl92YWxncmluZCA9IFJVTk5JTkdfT05fVkFMR1JJTkQ7CkBAIC03ODIsOCArNzkzLDEwIEBACiAgICAgICogdGhpbmdzIHdpdGhvdXQgY2hlY2tpbmcgZm9yIG92ZXJmbG93cyBvciBuZWdhdGl2ZXMuCiAgICAgICogQXMgc2l6ZV90IGlzIHVuc2lnbmVkLCBjaGVja2luZyBmb3IgbmJ5dGVzIDwgMCBpcyBub3QgcmVxdWlyZWQuCiAgICAgICovCi0gICAgaWYgKG5ieXRlcyA+IFBZX1NTSVpFX1RfTUFYKQorICAgIGlmIChuYnl0ZXMgPiBQWV9TU0laRV9UX01BWCkgeworICAgICAgICBfUHlfQWxsb2NhdGVkQmxvY2tzLS07CiAgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KIAogICAgIC8qCiAgICAgICogVGhpcyBpbXBsaWNpdGx5IHJlZGlyZWN0cyBtYWxsb2MoMCkuCkBAIC05MDEsNiArOTE0LDcgQEAKICAgICAgICAgICAgICAgICAgKiBhbmQgZnJlZSBsaXN0IGFyZSBhbHJlYWR5IGluaXRpYWxpemVkLgogICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgIGJwID0gcG9vbC0+ZnJlZWJsb2NrOworICAgICAgICAgICAgICAgIGFzc2VydChicCAhPSBOVUxMKTsKICAgICAgICAgICAgICAgICBwb29sLT5mcmVlYmxvY2sgPSAqKGJsb2NrICoqKWJwOwogICAgICAgICAgICAgICAgIFVOTE9DSygpOwogICAgICAgICAgICAgICAgIHJldHVybiAodm9pZCAqKWJwOwpAQCAtOTU4LDcgKzk3MiwxMiBAQAogICAgICAqLwogICAgIGlmIChuYnl0ZXMgPT0gMCkKICAgICAgICAgbmJ5dGVzID0gMTsKLSAgICByZXR1cm4gKHZvaWQgKiltYWxsb2MobmJ5dGVzKTsKKyAgICB7CisgICAgICAgIHZvaWQgKnJlc3VsdCA9IG1hbGxvYyhuYnl0ZXMpOworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIF9QeV9BbGxvY2F0ZWRCbG9ja3MtLTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CiB9CiAKIC8qIGZyZWUgKi8KQEAgLTk3OCw2ICs5OTcsOCBAQAogICAgIGlmIChwID09IE5VTEwpICAgICAgLyogZnJlZShOVUxMKSBoYXMgbm8gZWZmZWN0ICovCiAgICAgICAgIHJldHVybjsKIAorICAgIF9QeV9BbGxvY2F0ZWRCbG9ja3MtLTsKKwogI2lmZGVmIFdJVEhfVkFMR1JJTkQKICAgICBpZiAoVU5MSUtFTFkocnVubmluZ19vbl92YWxncmluZCA+IDApKQogICAgICAgICBnb3RvIHJlZGlyZWN0OwpAQCAtMTI5Nyw2ICsxMzE4LDEzIEBACiB7CiAgICAgUHlNZW1fRlJFRShwKTsKIH0KKworUHlfc3NpemVfdAorX1B5X0dldEFsbG9jYXRlZEJsb2Nrcyh2b2lkKQoreworICAgIHJldHVybiAwOworfQorCiAjZW5kaWYgLyogV0lUSF9QWU1BTExPQyAqLwogCiAjaWZkZWYgUFlNQUxMT0NfREVCVUcKZGlmZiAtLWdpdCBhL09iamVjdHMvcmFuZ2VvYmplY3QuYyBiL09iamVjdHMvcmFuZ2VvYmplY3QuYwppbmRleCAyMTRiNDU1Li5iYTUxZmVjIDEwMDY0NAotLS0gYS9PYmplY3RzL3Jhbmdlb2JqZWN0LmMKKysrIGIvT2JqZWN0cy9yYW5nZW9iamVjdC5jCkBAIC0zMTgsMTk1ICszMTgsNiBAQAogICAgIHJldHVybiByZXM7CiB9CiAKLS8qIEFkZGl0aW9uYWwgaGVscGVycywgc2luY2UgdGhlIHN0YW5kYXJkIHNsaWNlIGhlbHBlcnMKLSAqIGFsbCBjbGlwIHRvIFBZX1NTSVpFX1RfTUFYCi0gKi8KLQotLyogUmVwbGFjZSBfUHlFdmFsX1NsaWNlSW5kZXggKi8KLXN0YXRpYyBQeU9iamVjdCAqCi1jb21wdXRlX3NsaWNlX2VsZW1lbnQoUHlPYmplY3QgKm9iaikKLXsKLSAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKLSAgICBpZiAob2JqICE9IE5VTEwpIHsKLSAgICAgICAgaWYgKFB5SW5kZXhfQ2hlY2sob2JqKSkgewotICAgICAgICAgICAgcmVzdWx0ID0gUHlOdW1iZXJfSW5kZXgob2JqKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNsaWNlIGluZGljZXMgbXVzdCBiZSBpbnRlZ2VycyBvciAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUgb3IgaGF2ZSBhbiBfX2luZGV4X18gbWV0aG9kIik7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLyogUmVwbGFjZSBQeVNsaWNlX0dldEluZGljZXNFeAotICogICBSZXN1bHQgaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBzbGljZSBpcyBlbXB0eQotICogICAgKC0xID0gZXJyb3IsIDAgPSBlbXB0eSBzbGljZSwgMSA9IHNsaWNlIGNvbnRhaW5zIGVsZW1lbnRzKQotICovCi1zdGF0aWMgaW50Ci1jb21wdXRlX3NsaWNlX2luZGljZXMocmFuZ2VvYmplY3QgKnIsIFB5U2xpY2VPYmplY3QgKnNsaWNlLAotICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICoqc3RhcnQsIFB5T2JqZWN0ICoqc3RvcCwgUHlPYmplY3QgKipzdGVwKQotewotICAgIGludCBjbXBfcmVzdWx0LCBoYXNfZWxlbWVudHM7Ci0gICAgUHlfc3NpemVfdCBjbGFtcGVkX3N0ZXAgPSAwOwotICAgIFB5T2JqZWN0ICp6ZXJvID0gTlVMTCwgKm9uZSA9IE5VTEwsICpuZWdfb25lID0gTlVMTCwgKmNhbmRpZGF0ZSA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKnRtcF9zdGFydCA9IE5VTEwsICp0bXBfc3RvcCA9IE5VTEwsICp0bXBfc3RlcCA9IE5VTEw7Ci0gICAgemVybyA9IFB5TG9uZ19Gcm9tTG9uZygwKTsKLSAgICBpZiAoemVybyA9PSBOVUxMKSBnb3RvIEZhaWw7Ci0gICAgb25lID0gUHlMb25nX0Zyb21Mb25nKDEpOwotICAgIGlmIChvbmUgPT0gTlVMTCkgZ290byBGYWlsOwotICAgIG5lZ19vbmUgPSBQeUxvbmdfRnJvbUxvbmcoLTEpOwotICAgIGlmIChuZWdfb25lID09IE5VTEwpIGdvdG8gRmFpbDsKLQotICAgIC8qIENhbGN1bGF0ZSBzdGVwIHZhbHVlICovCi0gICAgaWYgKHNsaWNlLT5zdGVwID09IFB5X05vbmUpIHsKLSAgICAgICAgY2xhbXBlZF9zdGVwID0gMTsKLSAgICAgICAgdG1wX3N0ZXAgPSBvbmU7Ci0gICAgICAgIFB5X0lOQ1JFRih0bXBfc3RlcCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKCFfUHlFdmFsX1NsaWNlSW5kZXgoc2xpY2UtPnN0ZXAsICZjbGFtcGVkX3N0ZXApKSBnb3RvIEZhaWw7Ci0gICAgICAgIGlmIChjbGFtcGVkX3N0ZXAgPT0gMCkgewotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNsaWNlIHN0ZXAgY2Fubm90IGJlIHplcm8iKTsKLSAgICAgICAgICAgIGdvdG8gRmFpbDsKLSAgICAgICAgfQotICAgICAgICB0bXBfc3RlcCA9IGNvbXB1dGVfc2xpY2VfZWxlbWVudChzbGljZS0+c3RlcCk7Ci0gICAgICAgIGlmICh0bXBfc3RlcCA9PSBOVUxMKSBnb3RvIEZhaWw7Ci0gICAgfQotCi0gICAgLyogQ2FsY3VsYXRlIHN0YXJ0IHZhbHVlICovCi0gICAgaWYgKHNsaWNlLT5zdGFydCA9PSBQeV9Ob25lKSB7Ci0gICAgICAgIGlmIChjbGFtcGVkX3N0ZXAgPCAwKSB7Ci0gICAgICAgICAgICB0bXBfc3RhcnQgPSBQeU51bWJlcl9TdWJ0cmFjdChyLT5sZW5ndGgsIG9uZSk7Ci0gICAgICAgICAgICBpZiAodG1wX3N0YXJ0ID09IE5VTEwpIGdvdG8gRmFpbDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRtcF9zdGFydCA9IHplcm87Ci0gICAgICAgICAgICBQeV9JTkNSRUYodG1wX3N0YXJ0KTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGNhbmRpZGF0ZSA9IGNvbXB1dGVfc2xpY2VfZWxlbWVudChzbGljZS0+c3RhcnQpOwotICAgICAgICBpZiAoY2FuZGlkYXRlID09IE5VTEwpIGdvdG8gRmFpbDsKLSAgICAgICAgY21wX3Jlc3VsdCA9IFB5T2JqZWN0X1JpY2hDb21wYXJlQm9vbChjYW5kaWRhdGUsIHplcm8sIFB5X0xUKTsKLSAgICAgICAgaWYgKGNtcF9yZXN1bHQgPT0gLTEpIGdvdG8gRmFpbDsKLSAgICAgICAgaWYgKGNtcF9yZXN1bHQpIHsKLSAgICAgICAgICAgIC8qIGNhbmRpZGF0ZSA8IDAgKi8KLSAgICAgICAgICAgIHRtcF9zdGFydCA9IFB5TnVtYmVyX0FkZChyLT5sZW5ndGgsIGNhbmRpZGF0ZSk7Ci0gICAgICAgICAgICBpZiAodG1wX3N0YXJ0ID09IE5VTEwpIGdvdG8gRmFpbDsKLSAgICAgICAgICAgIFB5X0NMRUFSKGNhbmRpZGF0ZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvKiBjYW5kaWRhdGUgPj0gMCAqLwotICAgICAgICAgICAgdG1wX3N0YXJ0ID0gY2FuZGlkYXRlOwotICAgICAgICAgICAgY2FuZGlkYXRlID0gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBjbXBfcmVzdWx0ID0gUHlPYmplY3RfUmljaENvbXBhcmVCb29sKHRtcF9zdGFydCwgemVybywgUHlfTFQpOwotICAgICAgICBpZiAoY21wX3Jlc3VsdCA9PSAtMSkgZ290byBGYWlsOwotICAgICAgICBpZiAoY21wX3Jlc3VsdCkgewotICAgICAgICAgICAgLyogdG1wX3N0YXJ0IDwgMCAqLwotICAgICAgICAgICAgUHlfQ0xFQVIodG1wX3N0YXJ0KTsKLSAgICAgICAgICAgIGlmIChjbGFtcGVkX3N0ZXAgPCAwKSB7Ci0gICAgICAgICAgICAgICAgdG1wX3N0YXJ0ID0gbmVnX29uZTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgdG1wX3N0YXJ0ID0gemVybzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFB5X0lOQ1JFRih0bXBfc3RhcnQpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLyogdG1wX3N0YXJ0ID49IDAgKi8KLSAgICAgICAgICAgIGNtcF9yZXN1bHQgPSBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2wodG1wX3N0YXJ0LCByLT5sZW5ndGgsIFB5X0dFKTsKLSAgICAgICAgICAgIGlmIChjbXBfcmVzdWx0ID09IC0xKSBnb3RvIEZhaWw7Ci0gICAgICAgICAgICBpZiAoY21wX3Jlc3VsdCkgewotICAgICAgICAgICAgICAgIC8qIHRtcF9zdGFydCA+PSByLT5sZW5ndGggKi8KLSAgICAgICAgICAgICAgICBQeV9DTEVBUih0bXBfc3RhcnQpOwotICAgICAgICAgICAgICAgIGlmIChjbGFtcGVkX3N0ZXAgPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRtcF9zdGFydCA9IFB5TnVtYmVyX1N1YnRyYWN0KHItPmxlbmd0aCwgb25lKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRtcF9zdGFydCA9PSBOVUxMKSBnb3RvIEZhaWw7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgdG1wX3N0YXJ0ID0gci0+bGVuZ3RoOwotICAgICAgICAgICAgICAgICAgICBQeV9JTkNSRUYodG1wX3N0YXJ0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiBDYWxjdWxhdGUgc3RvcCB2YWx1ZSAqLwotICAgIGlmIChzbGljZS0+c3RvcCA9PSBQeV9Ob25lKSB7Ci0gICAgICAgIGlmIChjbGFtcGVkX3N0ZXAgPCAwKSB7Ci0gICAgICAgICAgICB0bXBfc3RvcCA9IG5lZ19vbmU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0bXBfc3RvcCA9IHItPmxlbmd0aDsKLSAgICAgICAgfQotICAgICAgICBQeV9JTkNSRUYodG1wX3N0b3ApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGNhbmRpZGF0ZSA9IGNvbXB1dGVfc2xpY2VfZWxlbWVudChzbGljZS0+c3RvcCk7Ci0gICAgICAgIGlmIChjYW5kaWRhdGUgPT0gTlVMTCkgZ290byBGYWlsOwotICAgICAgICBjbXBfcmVzdWx0ID0gUHlPYmplY3RfUmljaENvbXBhcmVCb29sKGNhbmRpZGF0ZSwgemVybywgUHlfTFQpOwotICAgICAgICBpZiAoY21wX3Jlc3VsdCA9PSAtMSkgZ290byBGYWlsOwotICAgICAgICBpZiAoY21wX3Jlc3VsdCkgewotICAgICAgICAgICAgLyogY2FuZGlkYXRlIDwgMCAqLwotICAgICAgICAgICAgdG1wX3N0b3AgPSBQeU51bWJlcl9BZGQoci0+bGVuZ3RoLCBjYW5kaWRhdGUpOwotICAgICAgICAgICAgaWYgKHRtcF9zdG9wID09IE5VTEwpIGdvdG8gRmFpbDsKLSAgICAgICAgICAgIFB5X0NMRUFSKGNhbmRpZGF0ZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvKiBjYW5kaWRhdGUgPj0gMCAqLwotICAgICAgICAgICAgdG1wX3N0b3AgPSBjYW5kaWRhdGU7Ci0gICAgICAgICAgICBjYW5kaWRhdGUgPSBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIGNtcF9yZXN1bHQgPSBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2wodG1wX3N0b3AsIHplcm8sIFB5X0xUKTsKLSAgICAgICAgaWYgKGNtcF9yZXN1bHQgPT0gLTEpIGdvdG8gRmFpbDsKLSAgICAgICAgaWYgKGNtcF9yZXN1bHQpIHsKLSAgICAgICAgICAgIC8qIHRtcF9zdG9wIDwgMCAqLwotICAgICAgICAgICAgUHlfQ0xFQVIodG1wX3N0b3ApOwotICAgICAgICAgICAgaWYgKGNsYW1wZWRfc3RlcCA8IDApIHsKLSAgICAgICAgICAgICAgICB0bXBfc3RvcCA9IG5lZ19vbmU7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHRtcF9zdG9wID0gemVybzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFB5X0lOQ1JFRih0bXBfc3RvcCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvKiB0bXBfc3RvcCA+PSAwICovCi0gICAgICAgICAgICBjbXBfcmVzdWx0ID0gUHlPYmplY3RfUmljaENvbXBhcmVCb29sKHRtcF9zdG9wLCByLT5sZW5ndGgsIFB5X0dFKTsKLSAgICAgICAgICAgIGlmIChjbXBfcmVzdWx0ID09IC0xKSBnb3RvIEZhaWw7Ci0gICAgICAgICAgICBpZiAoY21wX3Jlc3VsdCkgewotICAgICAgICAgICAgICAgIC8qIHRtcF9zdG9wID49IHItPmxlbmd0aCAqLwotICAgICAgICAgICAgICAgIFB5X0NMRUFSKHRtcF9zdG9wKTsKLSAgICAgICAgICAgICAgICBpZiAoY2xhbXBlZF9zdGVwIDwgMCkgewotICAgICAgICAgICAgICAgICAgICB0bXBfc3RvcCA9IFB5TnVtYmVyX1N1YnRyYWN0KHItPmxlbmd0aCwgb25lKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRtcF9zdG9wID09IE5VTEwpIGdvdG8gRmFpbDsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICB0bXBfc3RvcCA9IHItPmxlbmd0aDsKLSAgICAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKHRtcF9zdG9wKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiBDaGVjayBpZiB0aGUgc2xpY2UgaXMgZW1wdHkgb3Igbm90ICovCi0gICAgaWYgKGNsYW1wZWRfc3RlcCA8IDApIHsKLSAgICAgICAgaGFzX2VsZW1lbnRzID0gUHlPYmplY3RfUmljaENvbXBhcmVCb29sKHRtcF9zdGFydCwgdG1wX3N0b3AsIFB5X0dUKTsKLSAgICB9IGVsc2UgewotICAgICAgICBoYXNfZWxlbWVudHMgPSBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2wodG1wX3N0YXJ0LCB0bXBfc3RvcCwgUHlfTFQpOwotICAgIH0KLSAgICBpZiAoaGFzX2VsZW1lbnRzID09IC0xKSBnb3RvIEZhaWw7Ci0KLSAgICAqc3RhcnQgPSB0bXBfc3RhcnQ7Ci0gICAgKnN0b3AgPSB0bXBfc3RvcDsKLSAgICAqc3RlcCA9IHRtcF9zdGVwOwotICAgIFB5X0RFQ1JFRihuZWdfb25lKTsKLSAgICBQeV9ERUNSRUYob25lKTsKLSAgICBQeV9ERUNSRUYoemVybyk7Ci0gICAgcmV0dXJuIGhhc19lbGVtZW50czsKLQotICBGYWlsOgotICAgIFB5X1hERUNSRUYodG1wX3N0YXJ0KTsKLSAgICBQeV9YREVDUkVGKHRtcF9zdG9wKTsKLSAgICBQeV9YREVDUkVGKHRtcF9zdGVwKTsKLSAgICBQeV9YREVDUkVGKGNhbmRpZGF0ZSk7Ci0gICAgUHlfWERFQ1JFRihuZWdfb25lKTsKLSAgICBQeV9YREVDUkVGKG9uZSk7Ci0gICAgUHlfWERFQ1JFRih6ZXJvKTsKLSAgICByZXR1cm4gLTE7Ci19Ci0KIHN0YXRpYyBQeU9iamVjdCAqCiBjb21wdXRlX3NsaWNlKHJhbmdlb2JqZWN0ICpyLCBQeU9iamVjdCAqX3NsaWNlKQogewpAQCAtNTE0LDEwICszMjUsMTEgQEAKICAgICByYW5nZW9iamVjdCAqcmVzdWx0OwogICAgIFB5T2JqZWN0ICpzdGFydCA9IE5VTEwsICpzdG9wID0gTlVMTCwgKnN0ZXAgPSBOVUxMOwogICAgIFB5T2JqZWN0ICpzdWJzdGFydCA9IE5VTEwsICpzdWJzdG9wID0gTlVMTCwgKnN1YnN0ZXAgPSBOVUxMOwotICAgIGludCBoYXNfZWxlbWVudHM7CisgICAgaW50IGVycm9yOwogCi0gICAgaGFzX2VsZW1lbnRzID0gY29tcHV0ZV9zbGljZV9pbmRpY2VzKHIsIHNsaWNlLCAmc3RhcnQsICZzdG9wLCAmc3RlcCk7Ci0gICAgaWYgKGhhc19lbGVtZW50cyA9PSAtMSkgcmV0dXJuIE5VTEw7CisgICAgZXJyb3IgPSBfUHlTbGljZV9HZXRMb25nSW5kaWNlcyhzbGljZSwgci0+bGVuZ3RoLCAmc3RhcnQsICZzdG9wLCAmc3RlcCk7CisgICAgaWYgKGVycm9yID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIHN1YnN0ZXAgPSBQeU51bWJlcl9NdWx0aXBseShyLT5zdGVwLCBzdGVwKTsKICAgICBpZiAoc3Vic3RlcCA9PSBOVUxMKSBnb3RvIGZhaWw7CkBAIC01MjcsMTMgKzMzOSw4IEBACiAgICAgaWYgKHN1YnN0YXJ0ID09IE5VTEwpIGdvdG8gZmFpbDsKICAgICBQeV9DTEVBUihzdGFydCk7CiAKLSAgICBpZiAoaGFzX2VsZW1lbnRzKSB7Ci0gICAgICAgIHN1YnN0b3AgPSBjb21wdXRlX2l0ZW0ociwgc3RvcCk7Ci0gICAgICAgIGlmIChzdWJzdG9wID09IE5VTEwpIGdvdG8gZmFpbDsKLSAgICB9IGVsc2UgewotICAgICAgICBzdWJzdG9wID0gc3Vic3RhcnQ7Ci0gICAgICAgIFB5X0lOQ1JFRihzdWJzdG9wKTsKLSAgICB9CisgICAgc3Vic3RvcCA9IGNvbXB1dGVfaXRlbShyLCBzdG9wKTsKKyAgICBpZiAoc3Vic3RvcCA9PSBOVUxMKSBnb3RvIGZhaWw7CiAgICAgUHlfQ0xFQVIoc3RvcCk7CiAKICAgICByZXN1bHQgPSBtYWtlX3JhbmdlX29iamVjdChQeV9UWVBFKHIpLCBzdWJzdGFydCwgc3Vic3RvcCwgc3Vic3RlcCk7CmRpZmYgLS1naXQgYS9PYmplY3RzL3NsaWNlb2JqZWN0LmMgYi9PYmplY3RzL3NsaWNlb2JqZWN0LmMKaW5kZXggMTU5MzMzNS4uNTJmMWM4OSAxMDA2NDQKLS0tIGEvT2JqZWN0cy9zbGljZW9iamVjdC5jCisrKyBiL09iamVjdHMvc2xpY2VvYmplY3QuYwpAQCAtMjk5LDIzICsyOTksMTk4IEBACiAgICAgezB9CiB9OwogCisvKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29udmVydCBhIHNsaWNlIGFyZ3VtZW50IHRvIGEgUHlMb25nLCBhbmQgcmFpc2UgVHlwZUVycm9yCisgICB3aXRoIGEgc3VpdGFibGUgbWVzc2FnZSBvbiBmYWlsdXJlLiAqLworCitzdGF0aWMgUHlPYmplY3QqCitldmFsdWF0ZV9zbGljZV9pbmRleChQeU9iamVjdCAqdikKK3sKKyAgICBpZiAoUHlJbmRleF9DaGVjayh2KSkgeworICAgICAgICByZXR1cm4gUHlOdW1iZXJfSW5kZXgodik7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgInNsaWNlIGluZGljZXMgbXVzdCBiZSBpbnRlZ2VycyBvciAiCisgICAgICAgICAgICAgICAgICAgICAgICAiTm9uZSBvciBoYXZlIGFuIF9faW5kZXhfXyBtZXRob2QiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBDb21wdXRlIHNsaWNlIGluZGljZXMgZ2l2ZW4gYSBzbGljZSBhbmQgbGVuZ3RoLiAgUmV0dXJuIC0xIG9uIGZhaWx1cmUuICBVc2VkCisgICBieSBzbGljZS5pbmRpY2VzIGFuZCByYW5nZW9iamVjdCBzbGljaW5nLiAgQXNzdW1lcyB0aGF0IGBsZW5gIGlzIGEKKyAgIG5vbm5lZ2F0aXZlIGluc3RhbmNlIG9mIFB5TG9uZy4gKi8KKworaW50CitfUHlTbGljZV9HZXRMb25nSW5kaWNlcyhQeVNsaWNlT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKipzdGFydF9wdHIsIFB5T2JqZWN0ICoqc3RvcF9wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqKnN0ZXBfcHRyKQoreworICAgIFB5T2JqZWN0ICpzdGFydD1OVUxMLCAqc3RvcD1OVUxMLCAqc3RlcD1OVUxMOworICAgIFB5T2JqZWN0ICp1cHBlcj1OVUxMLCAqbG93ZXI9TlVMTDsKKyAgICBpbnQgc3RlcF9pc19uZWdhdGl2ZSwgY21wX3Jlc3VsdDsKKworICAgIC8qIENvbnZlcnQgc3RlcCB0byBhbiBpbnRlZ2VyOyByYWlzZSBmb3IgemVybyBzdGVwLiAqLworICAgIGlmIChzZWxmLT5zdGVwID09IFB5X05vbmUpIHsKKyAgICAgICAgc3RlcCA9IFB5TG9uZ19Gcm9tTG9uZygxTCk7CisgICAgICAgIGlmIChzdGVwID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICBzdGVwX2lzX25lZ2F0aXZlID0gMDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGludCBzdGVwX3NpZ247CisgICAgICAgIHN0ZXAgPSBldmFsdWF0ZV9zbGljZV9pbmRleChzZWxmLT5zdGVwKTsKKyAgICAgICAgaWYgKHN0ZXAgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIHN0ZXBfc2lnbiA9IF9QeUxvbmdfU2lnbihzdGVwKTsKKyAgICAgICAgaWYgKHN0ZXBfc2lnbiA9PSAwKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2xpY2Ugc3RlcCBjYW5ub3QgYmUgemVybyIpOworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgICAgICBzdGVwX2lzX25lZ2F0aXZlID0gc3RlcF9zaWduIDwgMDsKKyAgICB9CisKKyAgICAvKiBGaW5kIGxvd2VyIGFuZCB1cHBlciBib3VuZHMgZm9yIHN0YXJ0IGFuZCBzdG9wLiAqLworICAgIGlmIChzdGVwX2lzX25lZ2F0aXZlKSB7CisgICAgICAgIGxvd2VyID0gUHlMb25nX0Zyb21Mb25nKC0xTCk7CisgICAgICAgIGlmIChsb3dlciA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKworICAgICAgICB1cHBlciA9IFB5TnVtYmVyX0FkZChsZW5ndGgsIGxvd2VyKTsKKyAgICAgICAgaWYgKHVwcGVyID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgbG93ZXIgPSBQeUxvbmdfRnJvbUxvbmcoMEwpOworICAgICAgICBpZiAobG93ZXIgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICAgICAgdXBwZXIgPSBsZW5ndGg7CisgICAgICAgIFB5X0lOQ1JFRih1cHBlcik7CisgICAgfQorCisgICAgLyogQ29tcHV0ZSBzdGFydC4gKi8KKyAgICBpZiAoc2VsZi0+c3RhcnQgPT0gUHlfTm9uZSkgeworICAgICAgICBzdGFydCA9IHN0ZXBfaXNfbmVnYXRpdmUgPyB1cHBlciA6IGxvd2VyOworICAgICAgICBQeV9JTkNSRUYoc3RhcnQpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgc3RhcnQgPSBldmFsdWF0ZV9zbGljZV9pbmRleChzZWxmLT5zdGFydCk7CisgICAgICAgIGlmIChzdGFydCA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKworICAgICAgICBpZiAoX1B5TG9uZ19TaWduKHN0YXJ0KSA8IDApIHsKKyAgICAgICAgICAgIC8qIHN0YXJ0ICs9IGxlbmd0aCAqLworICAgICAgICAgICAgUHlPYmplY3QgKnRtcCA9IFB5TnVtYmVyX0FkZChzdGFydCwgbGVuZ3RoKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihzdGFydCk7CisgICAgICAgICAgICBzdGFydCA9IHRtcDsKKyAgICAgICAgICAgIGlmIChzdGFydCA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICAgICAgICAgIGNtcF9yZXN1bHQgPSBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2woc3RhcnQsIGxvd2VyLCBQeV9MVCk7CisgICAgICAgICAgICBpZiAoY21wX3Jlc3VsdCA8IDApCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIGlmIChjbXBfcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgUHlfSU5DUkVGKGxvd2VyKTsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYoc3RhcnQpOworICAgICAgICAgICAgICAgIHN0YXJ0ID0gbG93ZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBjbXBfcmVzdWx0ID0gUHlPYmplY3RfUmljaENvbXBhcmVCb29sKHN0YXJ0LCB1cHBlciwgUHlfR1QpOworICAgICAgICAgICAgaWYgKGNtcF9yZXN1bHQgPCAwKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBpZiAoY21wX3Jlc3VsdCkgeworICAgICAgICAgICAgICAgIFB5X0lOQ1JFRih1cHBlcik7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKHN0YXJ0KTsKKyAgICAgICAgICAgICAgICBzdGFydCA9IHVwcGVyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyogQ29tcHV0ZSBzdG9wLiAqLworICAgIGlmIChzZWxmLT5zdG9wID09IFB5X05vbmUpIHsKKyAgICAgICAgc3RvcCA9IHN0ZXBfaXNfbmVnYXRpdmUgPyBsb3dlciA6IHVwcGVyOworICAgICAgICBQeV9JTkNSRUYoc3RvcCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBzdG9wID0gZXZhbHVhdGVfc2xpY2VfaW5kZXgoc2VsZi0+c3RvcCk7CisgICAgICAgIGlmIChzdG9wID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGVycm9yOworCisgICAgICAgIGlmIChfUHlMb25nX1NpZ24oc3RvcCkgPCAwKSB7CisgICAgICAgICAgICAvKiBzdG9wICs9IGxlbmd0aCAqLworICAgICAgICAgICAgUHlPYmplY3QgKnRtcCA9IFB5TnVtYmVyX0FkZChzdG9wLCBsZW5ndGgpOworICAgICAgICAgICAgUHlfREVDUkVGKHN0b3ApOworICAgICAgICAgICAgc3RvcCA9IHRtcDsKKyAgICAgICAgICAgIGlmIChzdG9wID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKworICAgICAgICAgICAgY21wX3Jlc3VsdCA9IFB5T2JqZWN0X1JpY2hDb21wYXJlQm9vbChzdG9wLCBsb3dlciwgUHlfTFQpOworICAgICAgICAgICAgaWYgKGNtcF9yZXN1bHQgPCAwKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBpZiAoY21wX3Jlc3VsdCkgeworICAgICAgICAgICAgICAgIFB5X0lOQ1JFRihsb3dlcik7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKHN0b3ApOworICAgICAgICAgICAgICAgIHN0b3AgPSBsb3dlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGNtcF9yZXN1bHQgPSBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2woc3RvcCwgdXBwZXIsIFB5X0dUKTsKKyAgICAgICAgICAgIGlmIChjbXBfcmVzdWx0IDwgMCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgaWYgKGNtcF9yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBQeV9JTkNSRUYodXBwZXIpOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihzdG9wKTsKKyAgICAgICAgICAgICAgICBzdG9wID0gdXBwZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAqc3RhcnRfcHRyID0gc3RhcnQ7CisgICAgKnN0b3BfcHRyID0gc3RvcDsKKyAgICAqc3RlcF9wdHIgPSBzdGVwOworICAgIFB5X0RFQ1JFRih1cHBlcik7CisgICAgUHlfREVDUkVGKGxvd2VyKTsKKyAgICByZXR1cm4gMDsKKworICBlcnJvcjoKKyAgICAqc3RhcnRfcHRyID0gKnN0b3BfcHRyID0gKnN0ZXBfcHRyID0gTlVMTDsKKyAgICBQeV9YREVDUkVGKHN0YXJ0KTsKKyAgICBQeV9YREVDUkVGKHN0b3ApOworICAgIFB5X1hERUNSRUYoc3RlcCk7CisgICAgUHlfWERFQ1JFRih1cHBlcik7CisgICAgUHlfWERFQ1JFRihsb3dlcik7CisgICAgcmV0dXJuIC0xOworfQorCisvKiBJbXBsZW1lbnRhdGlvbiBvZiBzbGljZS5pbmRpY2VzLiAqLworCiBzdGF0aWMgUHlPYmplY3QqCiBzbGljZV9pbmRpY2VzKFB5U2xpY2VPYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBsZW4pCiB7Ci0gICAgUHlfc3NpemVfdCBpbGVuLCBzdGFydCwgc3RvcCwgc3RlcCwgc2xpY2VsZW5ndGg7CisgICAgUHlPYmplY3QgKnN0YXJ0LCAqc3RvcCwgKnN0ZXA7CisgICAgUHlPYmplY3QgKmxlbmd0aDsKKyAgICBpbnQgZXJyb3I7CiAKLSAgICBpbGVuID0gUHlOdW1iZXJfQXNTc2l6ZV90KGxlbiwgUHlFeGNfT3ZlcmZsb3dFcnJvcik7CisgICAgLyogQ29udmVydCBsZW5ndGggdG8gYW4gaW50ZWdlciBpZiBuZWNlc3Nhcnk7IHJhaXNlIGZvciBuZWdhdGl2ZSBsZW5ndGguICovCisgICAgbGVuZ3RoID0gUHlOdW1iZXJfSW5kZXgobGVuKTsKKyAgICBpZiAobGVuZ3RoID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgaWYgKGlsZW4gPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgIGlmIChfUHlMb25nX1NpZ24obGVuZ3RoKSA8IDApIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAibGVuZ3RoIHNob3VsZCBub3QgYmUgbmVnYXRpdmUiKTsKKyAgICAgICAgUHlfREVDUkVGKGxlbmd0aCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIGlmIChQeVNsaWNlX0dldEluZGljZXNFeCgoUHlPYmplY3QqKXNlbGYsIGlsZW4sICZzdGFydCwgJnN0b3AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdGVwLCAmc2xpY2VsZW5ndGgpIDwgMCkgeworICAgIGVycm9yID0gX1B5U2xpY2VfR2V0TG9uZ0luZGljZXMoc2VsZiwgbGVuZ3RoLCAmc3RhcnQsICZzdG9wLCAmc3RlcCk7CisgICAgUHlfREVDUkVGKGxlbmd0aCk7CisgICAgaWYgKGVycm9yID09IC0xKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiKG5ubikiLCBzdGFydCwgc3RvcCwgc3RlcCk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiKE5OTikiLCBzdGFydCwgc3RvcCwgc3RlcCk7CiB9CiAKIFB5RG9jX1NUUlZBUihzbGljZV9pbmRpY2VzX2RvYywKZGlmZiAtLWdpdCBhL09iamVjdHMvc3RyaW5nbGliL2FzY2lpbGliLmggYi9PYmplY3RzL3N0cmluZ2xpYi9hc2NpaWxpYi5oCmluZGV4IGY2MjgxM2QuLmQwZmMxOGQgMTAwNjQ0Ci0tLSBhL09iamVjdHMvc3RyaW5nbGliL2FzY2lpbGliLmgKKysrIGIvT2JqZWN0cy9zdHJpbmdsaWIvYXNjaWlsaWIuaApAQCAtMTksNyArMTksNiBAQAogI2RlZmluZSBTVFJJTkdMSUJfU1RSICAgICAgICAgICAgUHlVbmljb2RlXzFCWVRFX0RBVEEKICNkZWZpbmUgU1RSSU5HTElCX0xFTiAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RICiAjZGVmaW5lIFNUUklOR0xJQl9ORVcoU1RSLExFTikgICBfUHlVbmljb2RlX0Zyb21BU0NJSSgoY2hhciopKFNUUiksKExFTikpCi0jZGVmaW5lIFNUUklOR0xJQl9SRVNJWkUgICAgICAgICBub3Rfc3VwcG9ydGVkCiAjZGVmaW5lIFNUUklOR0xJQl9DSEVDSyAgICAgICAgICBQeVVuaWNvZGVfQ2hlY2sKICNkZWZpbmUgU1RSSU5HTElCX0NIRUNLX0VYQUNUICAgIFB5VW5pY29kZV9DaGVja0V4YWN0CiAKZGlmZiAtLWdpdCBhL09iamVjdHMvc3RyaW5nbGliL2NvZGVjcy5oIGIvT2JqZWN0cy9zdHJpbmdsaWIvY29kZWNzLmgKaW5kZXggZjM1MzM2Ny4uZjg1NTAwMyAxMDA2NDQKLS0tIGEvT2JqZWN0cy9zdHJpbmdsaWIvY29kZWNzLmgKKysrIGIvT2JqZWN0cy9zdHJpbmdsaWIvY29kZWNzLmgKQEAgLTQ3LDcgKzQ3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB2YWx1ZSA9ICoodW5zaWduZWQgbG9uZyAqKSBfczsKICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICYgQVNDSUlfQ0hBUl9NQVNLKQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0jaWZkZWYgQllURU9SREVSX0lTX0xJVFRMRV9FTkRJQU4KKyNpZiBQWV9MSVRUTEVfRU5ESUFOCiAgICAgICAgICAgICAgICAgICAgIF9wWzBdID0gKFNUUklOR0xJQl9DSEFSKSh2YWx1ZSAmIDB4RkZ1KTsKICAgICAgICAgICAgICAgICAgICAgX3BbMV0gPSAoU1RSSU5HTElCX0NIQVIpKCh2YWx1ZSA+PiA4KSAmIDB4RkZ1KTsKICAgICAgICAgICAgICAgICAgICAgX3BbMl0gPSAoU1RSSU5HTElCX0NIQVIpKCh2YWx1ZSA+PiAxNikgJiAweEZGdSk7CkBAIC00ODYsNyArNDg2LDcgQEAKICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpxID0gKmlucHRyOwogICAgIFNUUklOR0xJQl9DSEFSICpwID0gZGVzdCArICpvdXRwb3M7CiAgICAgLyogT2Zmc2V0cyBmcm9tIHEgZm9yIHJldHJpZXZpbmcgYnl0ZSBwYWlycyBpbiB0aGUgcmlnaHQgb3JkZXIuICovCi0jaWZkZWYgQllURU9SREVSX0lTX0xJVFRMRV9FTkRJQU4KKyNpZiBQWV9MSVRUTEVfRU5ESUFOCiAgICAgaW50IGloaSA9ICEhbmF0aXZlX29yZGVyaW5nLCBpbG8gPSAhbmF0aXZlX29yZGVyaW5nOwogI2Vsc2UKICAgICBpbnQgaWhpID0gIW5hdGl2ZV9vcmRlcmluZywgaWxvID0gISFuYXRpdmVfb3JkZXJpbmc7CkBAIC01MTcsNyArNTE3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgYmxvY2sgPSBTV0FCKGJsb2NrKTsKICNlbmRpZgogICAgICAgICAgICAgICAgIH0KLSNpZmRlZiBCWVRFT1JERVJfSVNfTElUVExFX0VORElBTgorI2lmIFBZX0xJVFRMRV9FTkRJQU4KICMgaWYgU0laRU9GX0xPTkcgPT0gNAogICAgICAgICAgICAgICAgIHBbMF0gPSAoU1RSSU5HTElCX0NIQVIpKGJsb2NrICYgMHhGRkZGdSk7CiAgICAgICAgICAgICAgICAgcFsxXSA9IChTVFJJTkdMSUJfQ0hBUikoYmxvY2sgPj4gMTYpOwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9zdHJpbmdsaWIvZmFzdHNlYXJjaC5oIGIvT2JqZWN0cy9zdHJpbmdsaWIvZmFzdHNlYXJjaC5oCmluZGV4IDU1YWM3N2QuLmNkN2NhYzQgMTAwNjQ0Ci0tLSBhL09iamVjdHMvc3RyaW5nbGliL2Zhc3RzZWFyY2guaAorKysgYi9PYmplY3RzL3N0cmluZ2xpYi9mYXN0c2VhcmNoLmgKQEAgLTE0Miw2ICsxNDIsOCBAQAogICAgIG1hc2sgPSAwOwogCiAgICAgaWYgKG1vZGUgIT0gRkFTVF9SU0VBUkNIKSB7CisgICAgICAgIGNvbnN0IFNUUklOR0xJQl9DSEFSICpzcyA9IHMgKyBtIC0gMTsKKyAgICAgICAgY29uc3QgU1RSSU5HTElCX0NIQVIgKnBwID0gcCArIG0gLSAxOwogCiAgICAgICAgIC8qIGNyZWF0ZSBjb21wcmVzc2VkIGJveWVyLW1vb3JlIGRlbHRhIDEgdGFibGUgKi8KIApAQCAtMTU2LDcgKzE1OCw3IEBACiAKICAgICAgICAgZm9yIChpID0gMDsgaSA8PSB3OyBpKyspIHsKICAgICAgICAgICAgIC8qIG5vdGU6IHVzaW5nIG1sYXN0IGluIHRoZSBza2lwIHBhdGggc2xvd3MgdGhpbmdzIGRvd24gb24geDg2ICovCi0gICAgICAgICAgICBpZiAoc1tpK20tMV0gPT0gcFttLTFdKSB7CisgICAgICAgICAgICBpZiAoc3NbaV0gPT0gcHBbMF0pIHsKICAgICAgICAgICAgICAgICAvKiBjYW5kaWRhdGUgbWF0Y2ggKi8KICAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgbWxhc3Q7IGorKykKICAgICAgICAgICAgICAgICAgICAgaWYgKHNbaStqXSAhPSBwW2pdKQpAQCAtMTcyLDEzICsxNzQsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8qIG1pc3M6IGNoZWNrIGlmIG5leHQgY2hhcmFjdGVyIGlzIHBhcnQgb2YgcGF0dGVybiAqLwotICAgICAgICAgICAgICAgIGlmICghU1RSSU5HTElCX0JMT09NKG1hc2ssIHNbaSttXSkpCisgICAgICAgICAgICAgICAgaWYgKCFTVFJJTkdMSUJfQkxPT00obWFzaywgc3NbaSsxXSkpCiAgICAgICAgICAgICAgICAgICAgIGkgPSBpICsgbTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGkgPSBpICsgc2tpcDsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLyogc2tpcDogY2hlY2sgaWYgbmV4dCBjaGFyYWN0ZXIgaXMgcGFydCBvZiBwYXR0ZXJuICovCi0gICAgICAgICAgICAgICAgaWYgKCFTVFJJTkdMSUJfQkxPT00obWFzaywgc1tpK21dKSkKKyAgICAgICAgICAgICAgICBpZiAoIVNUUklOR0xJQl9CTE9PTShtYXNrLCBzc1tpKzFdKSkKICAgICAgICAgICAgICAgICAgICAgaSA9IGkgKyBtOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9PYmplY3RzL3N0cmluZ2xpYi9qb2luLmggYi9PYmplY3RzL3N0cmluZ2xpYi9qb2luLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU2OGIzMQotLS0gL2Rldi9udWxsCisrKyBiL09iamVjdHMvc3RyaW5nbGliL2pvaW4uaApAQCAtMCwwICsxLDEzMyBAQAorLyogc3RyaW5nbGliOiBieXRlcyBqb2luaW5nIGltcGxlbWVudGF0aW9uICovCisKKyNpZiBTVFJJTkdMSUJfU0laRU9GX0NIQVIgIT0gMQorI2Vycm9yIGpvaW4uaCBvbmx5IGNvbXBhdGlibGUgd2l0aCBieXRlLXdpc2Ugc3RyaW5ncworI2VuZGlmCisKK1B5X0xPQ0FMX0lOTElORShQeU9iamVjdCAqKQorU1RSSU5HTElCKGJ5dGVzX2pvaW4pKFB5T2JqZWN0ICpzZXAsIFB5T2JqZWN0ICppdGVyYWJsZSkKK3sKKyAgICBjaGFyICpzZXBzdHIgPSBTVFJJTkdMSUJfU1RSKHNlcCk7CisgICAgY29uc3QgUHlfc3NpemVfdCBzZXBsZW4gPSBTVFJJTkdMSUJfTEVOKHNlcCk7CisgICAgUHlPYmplY3QgKnJlcyA9IE5VTEw7CisgICAgY2hhciAqcDsKKyAgICBQeV9zc2l6ZV90IHNlcWxlbiA9IDA7CisgICAgUHlfc3NpemVfdCBzeiA9IDA7CisgICAgUHlfc3NpemVfdCBpLCBuYnVmczsKKyAgICBQeU9iamVjdCAqc2VxLCAqaXRlbTsKKyAgICBQeV9idWZmZXIgKmJ1ZmZlcnMgPSBOVUxMOworI2RlZmluZSBOQl9TVEFUSUNfQlVGRkVSUyAxMAorICAgIFB5X2J1ZmZlciBzdGF0aWNfYnVmZmVyc1tOQl9TVEFUSUNfQlVGRkVSU107CisKKyAgICBzZXEgPSBQeVNlcXVlbmNlX0Zhc3QoaXRlcmFibGUsICJjYW4gb25seSBqb2luIGFuIGl0ZXJhYmxlIik7CisgICAgaWYgKHNlcSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHNlcWxlbiA9IFB5U2VxdWVuY2VfRmFzdF9HRVRfU0laRShzZXEpOworICAgIGlmIChzZXFsZW4gPT0gMCkgeworICAgICAgICBQeV9ERUNSRUYoc2VxKTsKKyAgICAgICAgcmV0dXJuIFNUUklOR0xJQl9ORVcoTlVMTCwgMCk7CisgICAgfQorI2lmbmRlZiBTVFJJTkdMSUJfTVVUQUJMRQorICAgIGlmIChzZXFsZW4gPT0gMSkgeworICAgICAgICBpdGVtID0gUHlTZXF1ZW5jZV9GYXN0X0dFVF9JVEVNKHNlcSwgMCk7CisgICAgICAgIGlmIChTVFJJTkdMSUJfQ0hFQ0tfRVhBQ1QoaXRlbSkpIHsKKyAgICAgICAgICAgIFB5X0lOQ1JFRihpdGVtKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihzZXEpOworICAgICAgICAgICAgcmV0dXJuIGl0ZW07CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKyAgICBpZiAoc2VxbGVuID4gTkJfU1RBVElDX0JVRkZFUlMpIHsKKyAgICAgICAgYnVmZmVycyA9IFB5TWVtX05FVyhQeV9idWZmZXIsIHNlcWxlbik7CisgICAgICAgIGlmIChidWZmZXJzID09IE5VTEwpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihzZXEpOworICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBidWZmZXJzID0gc3RhdGljX2J1ZmZlcnM7CisgICAgfQorCisgICAgLyogSGVyZSBpcyB0aGUgZ2VuZXJhbCBjYXNlLiAgRG8gYSBwcmUtcGFzcyB0byBmaWd1cmUgb3V0IHRoZSB0b3RhbAorICAgICAqIGFtb3VudCBvZiBzcGFjZSB3ZSdsbCBuZWVkIChzeiksIGFuZCBzZWUgd2hldGhlciBhbGwgYXJndW1lbnRzIGFyZQorICAgICAqIGJ1ZmZlci1jb21wYXRpYmxlLgorICAgICAqLworICAgIGZvciAoaSA9IDAsIG5idWZzID0gMDsgaSA8IHNlcWxlbjsgaSsrKSB7CisgICAgICAgIFB5X3NzaXplX3QgaXRlbWxlbjsKKyAgICAgICAgaXRlbSA9IFB5U2VxdWVuY2VfRmFzdF9HRVRfSVRFTShzZXEsIGkpOworICAgICAgICBpZiAoX2dldGJ1ZmZlcihpdGVtLCAmYnVmZmVyc1tpXSkgPCAwKSB7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJzZXF1ZW5jZSBpdGVtICV6ZDogZXhwZWN0ZWQgYnl0ZXMsIGJ5dGVhcnJheSwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJvciBhbiBvYmplY3Qgd2l0aCB0aGUgYnVmZmVyIGludGVyZmFjZSwgJS44MHMgZm91bmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGksIFB5X1RZUEUoaXRlbSktPnRwX25hbWUpOworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgICAgICBuYnVmcyA9IGkgKyAxOyAgLyogZm9yIGVycm9yIGNsZWFudXAgKi8KKyAgICAgICAgaXRlbWxlbiA9IGJ1ZmZlcnNbaV0ubGVuOworICAgICAgICBpZiAoaXRlbWxlbiA+IFBZX1NTSVpFX1RfTUFYIC0gc3opIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJqb2luKCkgcmVzdWx0IGlzIHRvbyBsb25nIik7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgICAgIHN6ICs9IGl0ZW1sZW47CisgICAgICAgIGlmIChpICE9IDApIHsKKyAgICAgICAgICAgIGlmIChzZXBsZW4gPiBQWV9TU0laRV9UX01BWCAtIHN6KSB7CisgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJqb2luKCkgcmVzdWx0IGlzIHRvbyBsb25nIik7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN6ICs9IHNlcGxlbjsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2VxbGVuICE9IFB5U2VxdWVuY2VfRmFzdF9HRVRfU0laRShzZXEpKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXF1ZW5jZSBjaGFuZ2VkIHNpemUgZHVyaW5nIGl0ZXJhdGlvbiIpOworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIEFsbG9jYXRlIHJlc3VsdCBzcGFjZS4gKi8KKyAgICByZXMgPSBTVFJJTkdMSUJfTkVXKE5VTEwsIHN6KTsKKyAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICAvKiBDYXRlbmF0ZSBldmVyeXRoaW5nLiAqLworICAgIHAgPSBTVFJJTkdMSUJfU1RSKHJlcyk7CisgICAgaWYgKCFzZXBsZW4pIHsKKyAgICAgICAgLyogZmFzdCBwYXRoICovCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuYnVmczsgaSsrKSB7CisgICAgICAgICAgICBQeV9zc2l6ZV90IG4gPSBidWZmZXJzW2ldLmxlbjsKKyAgICAgICAgICAgIGNoYXIgKnEgPSBidWZmZXJzW2ldLmJ1ZjsKKyAgICAgICAgICAgIFB5X01FTUNQWShwLCBxLCBuKTsKKyAgICAgICAgICAgIHAgKz0gbjsKKyAgICAgICAgfQorICAgICAgICBnb3RvIGRvbmU7CisgICAgfQorICAgIGZvciAoaSA9IDA7IGkgPCBuYnVmczsgaSsrKSB7CisgICAgICAgIFB5X3NzaXplX3QgbjsKKyAgICAgICAgY2hhciAqcTsKKyAgICAgICAgaWYgKGkpIHsKKyAgICAgICAgICAgIFB5X01FTUNQWShwLCBzZXBzdHIsIHNlcGxlbik7CisgICAgICAgICAgICBwICs9IHNlcGxlbjsKKyAgICAgICAgfQorICAgICAgICBuID0gYnVmZmVyc1tpXS5sZW47CisgICAgICAgIHEgPSBidWZmZXJzW2ldLmJ1ZjsKKyAgICAgICAgUHlfTUVNQ1BZKHAsIHEsIG4pOworICAgICAgICBwICs9IG47CisgICAgfQorICAgIGdvdG8gZG9uZTsKKworZXJyb3I6CisgICAgcmVzID0gTlVMTDsKK2RvbmU6CisgICAgUHlfREVDUkVGKHNlcSk7CisgICAgZm9yIChpID0gMDsgaSA8IG5idWZzOyBpKyspCisgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJmJ1ZmZlcnNbaV0pOworICAgIGlmIChidWZmZXJzICE9IHN0YXRpY19idWZmZXJzKQorICAgICAgICBQeU1lbV9GUkVFKGJ1ZmZlcnMpOworICAgIHJldHVybiByZXM7Cit9CisKKyN1bmRlZiBOQl9TVEFUSUNfQlVGRkVSUwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9zdHJpbmdsaWIvcmVwbGFjZS5oIGIvT2JqZWN0cy9zdHJpbmdsaWIvcmVwbGFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmMzE4ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9PYmplY3RzL3N0cmluZ2xpYi9yZXBsYWNlLmgKQEAgLTAsMCArMSw1MyBAQAorLyogc3RyaW5nbGliOiByZXBsYWNlIGltcGxlbWVudGF0aW9uICovCisKKyNpZm5kZWYgU1RSSU5HTElCX0ZBU1RTRUFSQ0hfSAorI2Vycm9yIG11c3QgaW5jbHVkZSAic3RyaW5nbGliL2Zhc3RzZWFyY2guaCIgYmVmb3JlIGluY2x1ZGluZyB0aGlzIG1vZHVsZQorI2VuZGlmCisKK1B5X0xPQ0FMX0lOTElORSh2b2lkKQorU1RSSU5HTElCKHJlcGxhY2VfMWNoYXJfaW5wbGFjZSkoU1RSSU5HTElCX0NIQVIqIHMsIFNUUklOR0xJQl9DSEFSKiBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9VQ1M0IHUxLCBQeV9VQ1M0IHUyLCBQeV9zc2l6ZV90IG1heGNvdW50KQoreworICAgICpzID0gdTI7CisgICAgd2hpbGUgKC0tbWF4Y291bnQgJiYgKytzICE9IGVuZCkgeworICAgICAgICAvKiBGaW5kIHRoZSBuZXh0IGNoYXJhY3RlciB0byBiZSByZXBsYWNlZC4KKworICAgICAgICAgICBJZiBpdCBvY2N1cnMgb2Z0ZW4sIGl0IGlzIGZhc3RlciB0byBzY2FuIGZvciBpdCB1c2luZyBhbiBpbmxpbmUKKyAgICAgICAgICAgbG9vcC4gIElmIGl0IG9jY3VycyBzZWxkb20sIGl0IGlzIGZhc3RlciB0byBzY2FuIGZvciBpdCB1c2luZyBhCisgICAgICAgICAgIGZ1bmN0aW9uIGNhbGw7IHRoZSBvdmVyaGVhZCBvZiB0aGUgZnVuY3Rpb24gY2FsbCBpcyBhbW9ydGl6ZWQKKyAgICAgICAgICAgYWNyb3NzIHRoZSBtYW55IGNoYXJhY3RlcnMgdGhhdCBjYWxsIGNvdmVycy4gIFdlIHN0YXJ0IHdpdGggYW4KKyAgICAgICAgICAgaW5saW5lIGxvb3AgYW5kIHVzZSBhIGhldXJpc3RpYyB0byBkZXRlcm1pbmUgd2hldGhlciB0byBmYWxsIGJhY2sKKyAgICAgICAgICAgdG8gYSBmdW5jdGlvbiBjYWxsLiAqLworICAgICAgICBpZiAoKnMgIT0gdTEpIHsKKyAgICAgICAgICAgIGludCBhdHRlbXB0cyA9IDEwOworICAgICAgICAgICAgLyogc2VhcmNoIHUxIGluIGEgZHVtbXkgbG9vcCAqLworICAgICAgICAgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgICAgICAgICBpZiAoKytzID09IGVuZCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIGlmICgqcyA9PSB1MSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgaWYgKCEtLWF0dGVtcHRzKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGlmIHUxIHdhcyBub3QgZm91bmQgZm9yIGF0dGVtcHRzIGl0ZXJhdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgIHVzZSBGQVNUU0VBUkNIKCkgb3IgbWVtY2hyKCkgKi8KKyNpZiBTVFJJTkdMSUJfU0laRU9GX0NIQVIgPT0gMQorICAgICAgICAgICAgICAgICAgICBzKys7CisgICAgICAgICAgICAgICAgICAgIHMgPSBtZW1jaHIocywgdTEsIGVuZCAtIHMpOworICAgICAgICAgICAgICAgICAgICBpZiAocyA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpOworICAgICAgICAgICAgICAgICAgICBTVFJJTkdMSUJfQ0hBUiBjaDEgPSAoU1RSSU5HTElCX0NIQVIpIHUxOworICAgICAgICAgICAgICAgICAgICBzKys7CisgICAgICAgICAgICAgICAgICAgIGkgPSBGQVNUU0VBUkNIKHMsIGVuZCAtIHMsICZjaDEsIDEsIDAsIEZBU1RfU0VBUkNIKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICBzICs9IGk7CisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgLyogcmVzdGFydCB0aGUgZHVtbXkgbG9vcCAqLworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgKnMgPSB1MjsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9PYmplY3RzL3N0cmluZ2xpYi9zdHJpbmdkZWZzLmggYi9PYmplY3RzL3N0cmluZ2xpYi9zdHJpbmdkZWZzLmgKaW5kZXggN2JiOTFhNy4uY2UyN2YzZSAxMDA2NDQKLS0tIGEvT2JqZWN0cy9zdHJpbmdsaWIvc3RyaW5nZGVmcy5oCisrKyBiL09iamVjdHMvc3RyaW5nbGliL3N0cmluZ2RlZnMuaApAQCAtMjEsNyArMjEsNiBAQAogI2RlZmluZSBTVFJJTkdMSUJfU1RSICAgICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcKICNkZWZpbmUgU1RSSU5HTElCX0xFTiAgICAgICAgICAgIFB5Qnl0ZXNfR0VUX1NJWkUKICNkZWZpbmUgU1RSSU5HTElCX05FVyAgICAgICAgICAgIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUKLSNkZWZpbmUgU1RSSU5HTElCX1JFU0laRSAgICAgICAgIF9QeUJ5dGVzX1Jlc2l6ZQogI2RlZmluZSBTVFJJTkdMSUJfQ0hFQ0sgICAgICAgICAgUHlCeXRlc19DaGVjawogI2RlZmluZSBTVFJJTkdMSUJfQ0hFQ0tfRVhBQ1QgICAgUHlCeXRlc19DaGVja0V4YWN0CiAjZGVmaW5lIFNUUklOR0xJQl9UT1NUUiAgICAgICAgICBQeU9iamVjdF9TdHIKZGlmZiAtLWdpdCBhL09iamVjdHMvc3RyaW5nbGliL3VjczFsaWIuaCBiL09iamVjdHMvc3RyaW5nbGliL3VjczFsaWIuaAppbmRleCBlOGM2ZmNiLi5jZTFlYjU3IDEwMDY0NAotLS0gYS9PYmplY3RzL3N0cmluZ2xpYi91Y3MxbGliLmgKKysrIGIvT2JqZWN0cy9zdHJpbmdsaWIvdWNzMWxpYi5oCkBAIC0xOSw3ICsxOSw2IEBACiAjZGVmaW5lIFNUUklOR0xJQl9TVFIgICAgICAgICAgICBQeVVuaWNvZGVfMUJZVEVfREFUQQogI2RlZmluZSBTVFJJTkdMSUJfTEVOICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgKICNkZWZpbmUgU1RSSU5HTElCX05FVyAgICAgICAgICAgIF9QeVVuaWNvZGVfRnJvbVVDUzEKLSNkZWZpbmUgU1RSSU5HTElCX1JFU0laRSAgICAgICAgIG5vdF9zdXBwb3J0ZWQKICNkZWZpbmUgU1RSSU5HTElCX0NIRUNLICAgICAgICAgIFB5VW5pY29kZV9DaGVjawogI2RlZmluZSBTVFJJTkdMSUJfQ0hFQ0tfRVhBQ1QgICAgUHlVbmljb2RlX0NoZWNrRXhhY3QKIApkaWZmIC0tZ2l0IGEvT2JqZWN0cy9zdHJpbmdsaWIvdWNzMmxpYi5oIGIvT2JqZWN0cy9zdHJpbmdsaWIvdWNzMmxpYi5oCmluZGV4IDQ1ZTU3MjkuLmY5MDBjYjYgMTAwNjQ0Ci0tLSBhL09iamVjdHMvc3RyaW5nbGliL3VjczJsaWIuaAorKysgYi9PYmplY3RzL3N0cmluZ2xpYi91Y3MybGliLmgKQEAgLTE5LDcgKzE5LDYgQEAKICNkZWZpbmUgU1RSSU5HTElCX1NUUiAgICAgICAgICAgIFB5VW5pY29kZV8yQllURV9EQVRBCiAjZGVmaW5lIFNUUklOR0xJQl9MRU4gICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSAogI2RlZmluZSBTVFJJTkdMSUJfTkVXICAgICAgICAgICAgX1B5VW5pY29kZV9Gcm9tVUNTMgotI2RlZmluZSBTVFJJTkdMSUJfUkVTSVpFICAgICAgICAgbm90X3N1cHBvcnRlZAogI2RlZmluZSBTVFJJTkdMSUJfQ0hFQ0sgICAgICAgICAgUHlVbmljb2RlX0NoZWNrCiAjZGVmaW5lIFNUUklOR0xJQl9DSEVDS19FWEFDVCAgICBQeVVuaWNvZGVfQ2hlY2tFeGFjdAogCmRpZmYgLS1naXQgYS9PYmplY3RzL3N0cmluZ2xpYi91Y3M0bGliLmggYi9PYmplY3RzL3N0cmluZ2xpYi91Y3M0bGliLmgKaW5kZXggNjQ3YTI3ZS4uODZhNDgwZiAxMDA2NDQKLS0tIGEvT2JqZWN0cy9zdHJpbmdsaWIvdWNzNGxpYi5oCisrKyBiL09iamVjdHMvc3RyaW5nbGliL3VjczRsaWIuaApAQCAtMTksNyArMTksNiBAQAogI2RlZmluZSBTVFJJTkdMSUJfU1RSICAgICAgICAgICAgUHlVbmljb2RlXzRCWVRFX0RBVEEKICNkZWZpbmUgU1RSSU5HTElCX0xFTiAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RICiAjZGVmaW5lIFNUUklOR0xJQl9ORVcgICAgICAgICAgICBfUHlVbmljb2RlX0Zyb21VQ1M0Ci0jZGVmaW5lIFNUUklOR0xJQl9SRVNJWkUgICAgICAgICBub3Rfc3VwcG9ydGVkCiAjZGVmaW5lIFNUUklOR0xJQl9DSEVDSyAgICAgICAgICBQeVVuaWNvZGVfQ2hlY2sKICNkZWZpbmUgU1RSSU5HTElCX0NIRUNLX0VYQUNUICAgIFB5VW5pY29kZV9DaGVja0V4YWN0CiAKZGlmZiAtLWdpdCBhL09iamVjdHMvc3RyaW5nbGliL3VuZGVmLmggYi9PYmplY3RzL3N0cmluZ2xpYi91bmRlZi5oCmluZGV4IDAzMTE3ZWMuLmY5ZDNmMWQgMTAwNjQ0Ci0tLSBhL09iamVjdHMvc3RyaW5nbGliL3VuZGVmLmgKKysrIGIvT2JqZWN0cy9zdHJpbmdsaWIvdW5kZWYuaApAQCAtNiw3ICs2LDYgQEAKICN1bmRlZiAgU1RSSU5HTElCX1NUUgogI3VuZGVmICBTVFJJTkdMSUJfTEVOCiAjdW5kZWYgIFNUUklOR0xJQl9ORVcKLSN1bmRlZiAgU1RSSU5HTElCX1JFU0laRQogI3VuZGVmICBfUHlfSW5zZXJ0VGhvdXNhbmRzR3JvdXBpbmcKICN1bmRlZiBTVFJJTkdMSUJfSVNfVU5JQ09ERQogCmRpZmYgLS1naXQgYS9PYmplY3RzL3N0cmluZ2xpYi91bmljb2RlX2Zvcm1hdC5oIGIvT2JqZWN0cy9zdHJpbmdsaWIvdW5pY29kZV9mb3JtYXQuaAppbmRleCBjMWMyY2YzLi5hZWMyMjFhIDEwMDY0NAotLS0gYS9PYmplY3RzL3N0cmluZ2xpYi91bmljb2RlX2Zvcm1hdC5oCisrKyBiL09iamVjdHMvc3RyaW5nbGliL3VuaWNvZGVfZm9ybWF0LmgKQEAgLTU0Myw3ICs1NDMsNyBAQAogCiBzdGF0aWMgaW50CiBwYXJzZV9maWVsZChTdWJTdHJpbmcgKnN0ciwgU3ViU3RyaW5nICpmaWVsZF9uYW1lLCBTdWJTdHJpbmcgKmZvcm1hdF9zcGVjLAotICAgICAgICAgICAgUHlfVUNTNCAqY29udmVyc2lvbikKKyAgICAgICAgICAgIGludCAqZm9ybWF0X3NwZWNfbmVlZHNfZXhwYW5kaW5nLCBQeV9VQ1M0ICpjb252ZXJzaW9uKQogewogICAgIC8qIE5vdGUgdGhpcyBmdW5jdGlvbiB3b3JrcyBpZiB0aGUgZmllbGQgbmFtZSBpcyB6ZXJvIGxlbmd0aCwKICAgICAgICB3aGljaCBpcyBnb29kLiAgWmVybyBsZW5ndGggZmllbGQgbmFtZXMgYXJlIGhhbmRsZWQgbGF0ZXIsIGluCkBAIC01NjEsNiArNTYxLDE1IEBACiAgICAgZmllbGRfbmFtZS0+c3RhcnQgPSBzdHItPnN0YXJ0OwogICAgIHdoaWxlIChzdHItPnN0YXJ0IDwgc3RyLT5lbmQpIHsKICAgICAgICAgc3dpdGNoICgoYyA9IFB5VW5pY29kZV9SRUFEX0NIQVIoc3RyLT5zdHIsIHN0ci0+c3RhcnQrKykpKSB7CisgICAgICAgIGNhc2UgJ3snOgorICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJ1bmV4cGVjdGVkICd7JyBpbiBmaWVsZCBuYW1lIik7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSAnWyc6CisgICAgICAgICAgICBmb3IgKDsgc3RyLT5zdGFydCA8IHN0ci0+ZW5kOyBzdHItPnN0YXJ0KyspCisgICAgICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEX0NIQVIoc3RyLT5zdHIsIHN0ci0+c3RhcnQpID09ICddJykKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY2FzZSAnfSc6CiAgICAgICAgIGNhc2UgJzonOgogICAgICAgICBjYXNlICchJzoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTcwLDQxICs1NzksNjIgQEAKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgZmllbGRfbmFtZS0+ZW5kID0gc3RyLT5zdGFydCAtIDE7CiAgICAgaWYgKGMgPT0gJyEnIHx8IGMgPT0gJzonKSB7CisgICAgICAgIFB5X3NzaXplX3QgY291bnQ7CiAgICAgICAgIC8qIHdlIGhhdmUgYSBmb3JtYXQgc3BlY2lmaWVyIGFuZC9vciBhIGNvbnZlcnNpb24gKi8KICAgICAgICAgLyogZG9uJ3QgaW5jbHVkZSB0aGUgbGFzdCBjaGFyYWN0ZXIgKi8KLSAgICAgICAgZmllbGRfbmFtZS0+ZW5kID0gc3RyLT5zdGFydC0xOwotCi0gICAgICAgIC8qIHRoZSBmb3JtYXQgc3BlY2lmaWVyIGlzIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcgKi8KLSAgICAgICAgZm9ybWF0X3NwZWMtPnN0ciA9IHN0ci0+c3RyOwotICAgICAgICBmb3JtYXRfc3BlYy0+c3RhcnQgPSBzdHItPnN0YXJ0OwotICAgICAgICBmb3JtYXRfc3BlYy0+ZW5kID0gc3RyLT5lbmQ7CiAKICAgICAgICAgLyogc2VlIGlmIHRoZXJlJ3MgYSBjb252ZXJzaW9uIHNwZWNpZmllciAqLwogICAgICAgICBpZiAoYyA9PSAnIScpIHsKICAgICAgICAgICAgIC8qIHRoZXJlIG11c3QgYmUgYW5vdGhlciBjaGFyYWN0ZXIgcHJlc2VudCAqLwotICAgICAgICAgICAgaWYgKGZvcm1hdF9zcGVjLT5zdGFydCA+PSBmb3JtYXRfc3BlYy0+ZW5kKSB7CisgICAgICAgICAgICBpZiAoc3RyLT5zdGFydCA+PSBzdHItPmVuZCkgewogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5kIG9mIGZvcm1hdCB3aGlsZSBsb29raW5nIGZvciBjb252ZXJzaW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVuZCBvZiBzdHJpbmcgd2hpbGUgbG9va2luZyBmb3IgY29udmVyc2lvbiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGVjaWZpZXIiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICpjb252ZXJzaW9uID0gUHlVbmljb2RlX1JFQURfQ0hBUihmb3JtYXRfc3BlYy0+c3RyLCBmb3JtYXRfc3BlYy0+c3RhcnQrKyk7CisgICAgICAgICAgICAqY29udmVyc2lvbiA9IFB5VW5pY29kZV9SRUFEX0NIQVIoc3RyLT5zdHIsIHN0ci0+c3RhcnQrKyk7CiAKLSAgICAgICAgICAgIC8qIGlmIHRoZXJlIGlzIGFub3RoZXIgY2hhcmFjdGVyLCBpdCBtdXN0IGJlIGEgY29sb24gKi8KLSAgICAgICAgICAgIGlmIChmb3JtYXRfc3BlYy0+c3RhcnQgPCBmb3JtYXRfc3BlYy0+ZW5kKSB7Ci0gICAgICAgICAgICAgICAgYyA9IFB5VW5pY29kZV9SRUFEX0NIQVIoZm9ybWF0X3NwZWMtPnN0ciwgZm9ybWF0X3NwZWMtPnN0YXJ0KyspOworICAgICAgICAgICAgaWYgKHN0ci0+c3RhcnQgPCBzdHItPmVuZCkgeworICAgICAgICAgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRF9DSEFSKHN0ci0+c3RyLCBzdHItPnN0YXJ0KyspOworICAgICAgICAgICAgICAgIGlmIChjID09ICd9JykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgaWYgKGMgIT0gJzonKSB7CiAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkICc6JyBhZnRlciBmb3JtYXQgc3BlY2lmaWVyIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgJzonIGFmdGVyIGNvbnZlcnNpb24gc3BlY2lmaWVyIik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQorICAgICAgICBmb3JtYXRfc3BlYy0+c3RyID0gc3RyLT5zdHI7CisgICAgICAgIGZvcm1hdF9zcGVjLT5zdGFydCA9IHN0ci0+c3RhcnQ7CisgICAgICAgIGNvdW50ID0gMTsKKyAgICAgICAgd2hpbGUgKHN0ci0+c3RhcnQgPCBzdHItPmVuZCkgeworICAgICAgICAgICAgc3dpdGNoICgoYyA9IFB5VW5pY29kZV9SRUFEX0NIQVIoc3RyLT5zdHIsIHN0ci0+c3RhcnQrKykpKSB7CisgICAgICAgICAgICBjYXNlICd7JzoKKyAgICAgICAgICAgICAgICAqZm9ybWF0X3NwZWNfbmVlZHNfZXhwYW5kaW5nID0gMTsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnfSc6CisgICAgICAgICAgICAgICAgY291bnQtLTsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBmb3JtYXRfc3BlYy0+ZW5kID0gc3RyLT5zdGFydCAtIDE7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgInVubWF0Y2hlZCAneycgaW4gZm9ybWF0IHNwZWMiKTsKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIGVsc2UKLSAgICAgICAgLyogZW5kIG9mIHN0cmluZywgdGhlcmUncyBubyBmb3JtYXRfc3BlYyBvciBjb252ZXJzaW9uICovCi0gICAgICAgIGZpZWxkX25hbWUtPmVuZCA9IHN0ci0+c3RhcnQ7CisgICAgZWxzZSBpZiAoYyAhPSAnfScpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJleHBlY3RlZCAnfScgYmVmb3JlIGVuZCBvZiBzdHJpbmciKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAgICAgcmV0dXJuIDE7CiB9CkBAIC02MzgsMTAgKzY2OCw5IEBACiAgICAgICAgICAgICAgICAgICAgIFN1YlN0cmluZyAqZm9ybWF0X3NwZWMsIFB5X1VDUzQgKmNvbnZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgIGludCAqZm9ybWF0X3NwZWNfbmVlZHNfZXhwYW5kaW5nKQogewotICAgIGludCBhdF9lbmQsIGhpdF9mb3JtYXRfc3BlYzsKKyAgICBpbnQgYXRfZW5kOwogICAgIFB5X1VDUzQgYyA9IDA7CiAgICAgUHlfc3NpemVfdCBzdGFydDsKLSAgICBpbnQgY291bnQ7CiAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgaW50IG1hcmt1cF9mb2xsb3dzID0gMDsKIApAQCAtNzEzLDUwICs3NDIsMTIgQEAKICAgICBpZiAoIW1hcmt1cF9mb2xsb3dzKQogICAgICAgICByZXR1cm4gMjsKIAotICAgIC8qIHRoaXMgaXMgbWFya3VwLCBmaW5kIHRoZSBlbmQgb2YgdGhlIHN0cmluZyBieSBjb3VudGluZyBuZXN0ZWQKLSAgICAgICBicmFjZXMuICBub3RlIHRoYXQgdGhpcyBwcm9oaWJpdHMgZXNjYXBlZCBicmFjZXMsIHNvIHRoYXQKLSAgICAgICBmb3JtYXRfc3BlY3MgY2Fubm90IGhhdmUgYnJhY2VzIGluIHRoZW0uICovCisgICAgLyogdGhpcyBpcyBtYXJrdXA7IHBhcnNlIHRoZSBmaWVsZCAqLwogICAgICpmaWVsZF9wcmVzZW50ID0gMTsKLSAgICBjb3VudCA9IDE7Ci0KLSAgICBzdGFydCA9IHNlbGYtPnN0ci5zdGFydDsKLQotICAgIC8qIHdlIGtub3cgd2UgY2FuJ3QgaGF2ZSBhIHplcm8gbGVuZ3RoIHN0cmluZywgc28gZG9uJ3Qgd29ycnkKLSAgICAgICBhYm91dCB0aGF0IGNhc2UgKi8KLSAgICBoaXRfZm9ybWF0X3NwZWMgPSAwOwotICAgIHdoaWxlIChzZWxmLT5zdHIuc3RhcnQgPCBzZWxmLT5zdHIuZW5kKSB7Ci0gICAgICAgIHN3aXRjaCAoYyA9IFB5VW5pY29kZV9SRUFEX0NIQVIoc2VsZi0+c3RyLnN0ciwgc2VsZi0+c3RyLnN0YXJ0KyspKSB7Ci0gICAgICAgIGNhc2UgJzonOgotICAgICAgICAgICAgaGl0X2Zvcm1hdF9zcGVjID0gMTsKLSAgICAgICAgICAgIGNvdW50ID0gMTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICd7JzoKLSAgICAgICAgICAgIC8qIHRoZSBmb3JtYXQgc3BlYyBuZWVkcyB0byBiZSByZWN1cnNpdmVseSBleHBhbmRlZC4KLSAgICAgICAgICAgICAgIHRoaXMgaXMgYW4gb3B0aW1pemF0aW9uLCBhbmQgbm90IHN0cmljdGx5IG5lZWRlZCAqLwotICAgICAgICAgICAgaWYgKGhpdF9mb3JtYXRfc3BlYykKLSAgICAgICAgICAgICAgICAqZm9ybWF0X3NwZWNfbmVlZHNfZXhwYW5kaW5nID0gMTsKLSAgICAgICAgICAgIGNvdW50Kys7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAnfSc6Ci0gICAgICAgICAgICBjb3VudC0tOwotICAgICAgICAgICAgaWYgKGNvdW50IDw9IDApIHsKLSAgICAgICAgICAgICAgICAvKiB3ZSdyZSBkb25lLiAgcGFyc2UgYW5kIGdldCBvdXQgKi8KLSAgICAgICAgICAgICAgICBTdWJTdHJpbmcgczsKLQotICAgICAgICAgICAgICAgIFN1YlN0cmluZ19pbml0KCZzLCBzZWxmLT5zdHIuc3RyLCBzdGFydCwgc2VsZi0+c3RyLnN0YXJ0IC0gMSk7Ci0gICAgICAgICAgICAgICAgaWYgKHBhcnNlX2ZpZWxkKCZzLCBmaWVsZF9uYW1lLCBmb3JtYXRfc3BlYywgY29udmVyc2lvbikgPT0gMCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICAgICAgICAgICAgICAvKiBzdWNjZXNzICovCi0gICAgICAgICAgICAgICAgcmV0dXJuIDI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qIGVuZCBvZiBzdHJpbmcgd2hpbGUgc2VhcmNoaW5nIGZvciBtYXRjaGluZyAnfScgKi8KLSAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgInVubWF0Y2hlZCAneycgaW4gZm9ybWF0Iik7Ci0gICAgcmV0dXJuIDA7CisgICAgaWYgKCFwYXJzZV9maWVsZCgmc2VsZi0+c3RyLCBmaWVsZF9uYW1lLCBmb3JtYXRfc3BlYywKKyAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9zcGVjX25lZWRzX2V4cGFuZGluZywgY29udmVyc2lvbikpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiAyOwogfQogCiAKQEAgLTg3NSwyNSArODY2LDE5IEBACiAgICAgU3ViU3RyaW5nIGxpdGVyYWw7CiAgICAgU3ViU3RyaW5nIGZpZWxkX25hbWU7CiAgICAgU3ViU3RyaW5nIGZvcm1hdF9zcGVjOwotICAgIFB5X1VDUzQgY29udmVyc2lvbiwgbWF4Y2hhcjsKLSAgICBQeV9zc2l6ZV90IHN1YmxlbjsKLSAgICBpbnQgZXJyOworICAgIFB5X1VDUzQgY29udmVyc2lvbjsKIAogICAgIE1hcmt1cEl0ZXJhdG9yX2luaXQoJml0ZXIsIGlucHV0LT5zdHIsIGlucHV0LT5zdGFydCwgaW5wdXQtPmVuZCk7CiAgICAgd2hpbGUgKChyZXN1bHQgPSBNYXJrdXBJdGVyYXRvcl9uZXh0KCZpdGVyLCAmbGl0ZXJhbCwgJmZpZWxkX3ByZXNlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaWVsZF9uYW1lLCAmZm9ybWF0X3NwZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb252ZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9ybWF0X3NwZWNfbmVlZHNfZXhwYW5kaW5nKSkgPT0gMikgewotICAgICAgICBzdWJsZW4gPSBsaXRlcmFsLmVuZCAtIGxpdGVyYWwuc3RhcnQ7Ci0gICAgICAgIGlmIChzdWJsZW4pIHsKLSAgICAgICAgICAgIG1heGNoYXIgPSBfUHlVbmljb2RlX0ZpbmRNYXhDaGFyKGxpdGVyYWwuc3RyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGl0ZXJhbC5zdGFydCwgbGl0ZXJhbC5lbmQpOwotICAgICAgICAgICAgZXJyID0gX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKHdyaXRlciwgc3VibGVuLCBtYXhjaGFyKTsKLSAgICAgICAgICAgIGlmIChlcnIgPT0gLTEpCisgICAgICAgIGlmIChsaXRlcmFsLmVuZCAhPSBsaXRlcmFsLnN0YXJ0KSB7CisgICAgICAgICAgICBpZiAoIWZpZWxkX3ByZXNlbnQgJiYgaXRlci5zdHIuc3RhcnQgPT0gaXRlci5zdHIuZW5kKQorICAgICAgICAgICAgICAgIHdyaXRlci0+b3ZlcmFsbG9jYXRlID0gMDsKKyAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1dyaXRlU3Vic3RyaW5nKHdyaXRlciwgbGl0ZXJhbC5zdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXRlcmFsLnN0YXJ0LCBsaXRlcmFsLmVuZCkgPCAwKQogICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMod3JpdGVyLT5idWZmZXIsIHdyaXRlci0+cG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGl0ZXJhbC5zdHIsIGxpdGVyYWwuc3RhcnQsIHN1Ymxlbik7Ci0gICAgICAgICAgICB3cml0ZXItPnBvcyArPSBzdWJsZW47CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoZmllbGRfcHJlc2VudCkgewpAQCAtOTE4LDcgKzkwMyw2IEBACiAgICAgICAgICAgICAgaW50IHJlY3Vyc2lvbl9kZXB0aCwgQXV0b051bWJlciAqYXV0b19udW1iZXIpCiB7CiAgICAgX1B5VW5pY29kZVdyaXRlciB3cml0ZXI7Ci0gICAgUHlfc3NpemVfdCBtaW5sZW47CiAKICAgICAvKiBjaGVjayB0aGUgcmVjdXJzaW9uIGxldmVsICovCiAgICAgaWYgKHJlY3Vyc2lvbl9kZXB0aCA8PSAwKSB7CkBAIC05MjcsOCArOTExLDkgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgbWlubGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoaW5wdXQtPnN0cikgKyAxMDA7Ci0gICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIsIG1pbmxlbik7CisgICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIpOworICAgIHdyaXRlci5vdmVyYWxsb2NhdGUgPSAxOworICAgIHdyaXRlci5taW5fbGVuZ3RoID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoaW5wdXQtPnN0cikgKyAxMDA7CiAKICAgICBpZiAoIWRvX21hcmt1cChpbnB1dCwgYXJncywga3dhcmdzLCAmd3JpdGVyLCByZWN1cnNpb25fZGVwdGgsCiAgICAgICAgICAgICAgICAgICAgYXV0b19udW1iZXIpKSB7CmRpZmYgLS1naXQgYS9PYmplY3RzL3N0cmluZ2xpYi91bmljb2RlZGVmcy5oIGIvT2JqZWN0cy9zdHJpbmdsaWIvdW5pY29kZWRlZnMuaAppbmRleCBmMTZmMjFlLi40OGQwMGVjIDEwMDY0NAotLS0gYS9PYmplY3RzL3N0cmluZ2xpYi91bmljb2RlZGVmcy5oCisrKyBiL09iamVjdHMvc3RyaW5nbGliL3VuaWNvZGVkZWZzLmgKQEAgLTIxLDcgKzIxLDYgQEAKICNkZWZpbmUgU1RSSU5HTElCX1NUUiAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFCiAjZGVmaW5lIFNUUklOR0xJQl9MRU4gICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUKICNkZWZpbmUgU1RSSU5HTElCX05FVyAgICAgICAgICAgIFB5VW5pY29kZV9Gcm9tVW5pY29kZQotI2RlZmluZSBTVFJJTkdMSUJfUkVTSVpFICAgICAgICAgUHlVbmljb2RlX1Jlc2l6ZQogI2RlZmluZSBTVFJJTkdMSUJfQ0hFQ0sgICAgICAgICAgUHlVbmljb2RlX0NoZWNrCiAjZGVmaW5lIFNUUklOR0xJQl9DSEVDS19FWEFDVCAgICBQeVVuaWNvZGVfQ2hlY2tFeGFjdAogCmRpZmYgLS1naXQgYS9PYmplY3RzL3R1cGxlb2JqZWN0LmMgYi9PYmplY3RzL3R1cGxlb2JqZWN0LmMKaW5kZXggZWMzZjkxYi4uZDgwOGUwOCAxMDA2NDQKLS0tIGEvT2JqZWN0cy90dXBsZW9iamVjdC5jCisrKyBiL09iamVjdHMvdHVwbGVvYmplY3QuYwpAQCAtMzIyLDYgKzMyMiw5IEBACiAKICAgICAgMTA4MjUyNywgMTE2NTA0OSwgMTA4MjUzMSwgMTE2NTA1NywgMTI0NzU4MSwgMTMzMDEwMywgMTA4MjUzMywKICAgICAgMTMzMDExMSwgMTQxMjYzMywgMTE2NTA2OSwgMTI0NzU5OSwgMTQ5NTE3NywgMTU3NzY5OQorCisgICBUZXN0cyBoYXZlIHNob3duIHRoYXQgaXQncyBub3Qgd29ydGggdG8gY2FjaGUgdGhlIGhhc2ggdmFsdWUsIHNlZQorICAgaXNzdWUgIzk2ODUuCiAqLwogCiBzdGF0aWMgUHlfaGFzaF90CkBAIC05MjcsNyArOTMwLDcgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIFB5T2JqZWN0X0hFQUQKLSAgICBsb25nIGl0X2luZGV4OworICAgIFB5X3NzaXplX3QgaXRfaW5kZXg7CiAgICAgUHlUdXBsZU9iamVjdCAqaXRfc2VxOyAvKiBTZXQgdG8gTlVMTCB3aGVuIGl0ZXJhdG9yIGlzIGV4aGF1c3RlZCAqLwogfSB0dXBsZWl0ZXJvYmplY3Q7CiAKZGlmZiAtLWdpdCBhL09iamVjdHMvdHlwZW9iamVjdC5jIGIvT2JqZWN0cy90eXBlb2JqZWN0LmMKaW5kZXggYTU1ZDk3Ny4uYTM1MTY2NyAxMDA2NDQKLS0tIGEvT2JqZWN0cy90eXBlb2JqZWN0LmMKKysrIGIvT2JqZWN0cy90eXBlb2JqZWN0LmMKQEAgLTE5NDksNyArMTk0OSw3IEBACiAgICAgcmV0dXJuIHJlczsKIH0KIAotbG9uZwordW5zaWduZWQgbG9uZwogUHlUeXBlX0dldEZsYWdzKFB5VHlwZU9iamVjdCAqdHlwZSkKIHsKICAgICByZXR1cm4gdHlwZS0+dHBfZmxhZ3M7CkBAIC0zNjY5LDE2ICszNjY5LDkgQEAKICAgICAgICAgLyogSXNzdWUgNzk5NDogSWYgd2UncmUgY29udmVydGluZyB0byBhIHN0cmluZywgd2UKICAgICAgICAgICAgc2hvdWxkIHJlamVjdCBmb3JtYXQgc3BlY2lmaWNhdGlvbnMgKi8KICAgICAgICAgaWYgKFB5VW5pY29kZV9HRVRfTEVOR1RIKGZvcm1hdF9zcGVjKSA+IDApIHsKLSAgICAgICAgICAgIGlmIChQeUVycl9XYXJuRXgoUHlFeGNfRGVwcmVjYXRpb25XYXJuaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2JqZWN0Ll9fZm9ybWF0X18gd2l0aCBhIG5vbi1lbXB0eSBmb3JtYXQgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RyaW5nIGlzIGRlcHJlY2F0ZWQiLCAxKSA8IDApIHsKLSAgICAgICAgICAgICAgZ290byBkb25lOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLyogRXZlbnR1YWxseSB0aGlzIHdpbGwgYmVjb21lIGFuIGVycm9yOgotICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAibm9uLWVtcHR5IGZvcm1hdCBzdHJpbmcgcGFzc2VkIHRvIG9iamVjdC5fX2Zvcm1hdF9fIik7Ci0gICAgICAgICAgICAgICBnb3RvIGRvbmU7Ci0gICAgICAgICAgICAqLworICAgICAgICAgICAgZ290byBkb25lOwogICAgICAgICB9CiAKICAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfRm9ybWF0KHNlbGZfYXNfc3RyLCBmb3JtYXRfc3BlYyk7CkBAIC0zODMzLDcgKzM4MjYsNyBAQAogICAgICAgICAgICAgZGVzY3IgPSBQeURlc2NyX05ld0NsYXNzTWV0aG9kKHR5cGUsIG1ldGgpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKG1ldGgtPm1sX2ZsYWdzICYgTUVUSF9TVEFUSUMpIHsKLSAgICAgICAgICAgIFB5T2JqZWN0ICpjZnVuYyA9IFB5Q0Z1bmN0aW9uX05ldyhtZXRoLCAoUHlPYmplY3QqKXR5cGUpOworICAgICAgICAgIFB5T2JqZWN0ICpjZnVuYyA9IFB5Q0Z1bmN0aW9uX05ld0V4KG1ldGgsIChQeU9iamVjdCopdHlwZSwgTlVMTCk7CiAgICAgICAgICAgICBpZiAoY2Z1bmMgPT0gTlVMTCkKICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICBkZXNjciA9IFB5U3RhdGljTWV0aG9kX05ldyhjZnVuYyk7CkBAIC00MzAzLDEzICs0Mjk2LDExIEBACiAgICAgLyogV2FybiBmb3IgYSB0eXBlIHRoYXQgaW1wbGVtZW50cyB0cF9jb21wYXJlIChub3cga25vd24gYXMKICAgICAgICB0cF9yZXNlcnZlZCkgYnV0IG5vdCB0cF9yaWNoY29tcGFyZS4gKi8KICAgICBpZiAodHlwZS0+dHBfcmVzZXJ2ZWQgJiYgIXR5cGUtPnRwX3JpY2hjb21wYXJlKSB7Ci0gICAgICAgIGludCBlcnJvcjsKLSAgICAgICAgZXJyb3IgPSBQeUVycl9XYXJuRm9ybWF0KFB5RXhjX0RlcHJlY2F0aW9uV2FybmluZywgMSwKKyAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKICAgICAgICAgICAgICJUeXBlICUuMTAwcyBkZWZpbmVzIHRwX3Jlc2VydmVkIChmb3JtZXJseSB0cF9jb21wYXJlKSAiCiAgICAgICAgICAgICAiYnV0IG5vdCB0cF9yaWNoY29tcGFyZS4gQ29tcGFyaXNvbnMgbWF5IG5vdCBiZWhhdmUgYXMgaW50ZW5kZWQuIiwKICAgICAgICAgICAgIHR5cGUtPnRwX25hbWUpOwotICAgICAgICBpZiAoZXJyb3IgPT0gLTEpCi0gICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICBnb3RvIGVycm9yOwogICAgIH0KIAogICAgIC8qIEFsbCBkb25lIC0tIHNldCB0aGUgcmVhZHkgZmxhZyAqLwpAQCAtNDkwMyw3ICs0ODk0LDcgQEAKIAogICAgIGlmIChfUHlEaWN0X0dldEl0ZW1JZCh0eXBlLT50cF9kaWN0LCAmUHlJZF9fX25ld19fKSAhPSBOVUxMKQogICAgICAgICByZXR1cm4gMDsKLSAgICBmdW5jID0gUHlDRnVuY3Rpb25fTmV3KHRwX25ld19tZXRob2RkZWYsIChQeU9iamVjdCAqKXR5cGUpOworICAgIGZ1bmMgPSBQeUNGdW5jdGlvbl9OZXdFeCh0cF9uZXdfbWV0aG9kZGVmLCAoUHlPYmplY3QgKil0eXBlLCBOVUxMKTsKICAgICBpZiAoZnVuYyA9PSBOVUxMKQogICAgICAgICByZXR1cm4gLTE7CiAgICAgaWYgKF9QeURpY3RfU2V0SXRlbUlkKHR5cGUtPnRwX2RpY3QsICZQeUlkX19fbmV3X18sIGZ1bmMpKSB7CmRpZmYgLS1naXQgYS9PYmplY3RzL3VuaWNvZGVvYmplY3QuYyBiL09iamVjdHMvdW5pY29kZW9iamVjdC5jCmluZGV4IDhkNmNkYTUuLjRjM2VjZDYgMTAwNjQ0Ci0tLSBhL09iamVjdHMvdW5pY29kZW9iamVjdC5jCisrKyBiL09iamVjdHMvdW5pY29kZW9iamVjdC5jCkBAIC00NywxNCArNDcsNiBAQAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNlbmRpZgogCi0vKiBFbmRpYW5uZXNzIHN3aXRjaGVzOyBkZWZhdWx0cyB0byBsaXR0bGUgZW5kaWFuICovCi0KLSNpZmRlZiBXT1JEU19CSUdFTkRJQU4KLSMgZGVmaW5lIEJZVEVPUkRFUl9JU19CSUdfRU5ESUFOCi0jZWxzZQotIyBkZWZpbmUgQllURU9SREVSX0lTX0xJVFRMRV9FTkRJQU4KLSNlbmRpZgotCiAvKiAtLS0gR2xvYmFscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogTk9URTogSW4gdGhlIGludGVycHJldGVyJ3MgaW5pdGlhbGl6YXRpb24gcGhhc2UsIHNvbWUgZ2xvYmFscyBhcmUgY3VycmVudGx5CkBAIC0yMDQsNiArMTk2LDEwIEBACiAgICAgICAgIHJldHVybiB1bmljb2RlX2VtcHR5OyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9IHdoaWxlICgwKQogCisvKiBGb3J3YXJkIGRlY2xhcmF0aW9uICovCitQeV9MT0NBTF9JTkxJTkUoaW50KQorX1B5VW5pY29kZVdyaXRlcl9Xcml0ZUNoYXJJbmxpbmUoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyLCBQeV9VQ1M0IGNoKTsKKwogLyogTGlzdCBvZiBzdGF0aWMgc3RyaW5ncy4gKi8KIHN0YXRpYyBfUHlfSWRlbnRpZmllciAqc3RhdGljX3N0cmluZ3MgPSBOVUxMOwogCkBAIC00MzIsOCArNDI4LDYgQEAKICNpZm5kZWYgUHlfREVCVUcKICAgICBQeV9zc2l6ZV90IGxlbjsKIAotICAgIGFzc2VydChQeV9SRUZDTlQodW5pY29kZSkgPT0gMSk7Ci0KICAgICBsZW4gPSBfUHlVbmljb2RlX1dTVFJfTEVOR1RIKHVuaWNvZGUpOwogICAgIGlmIChsZW4gPT0gMCkgewogICAgICAgICBQeV9ERUNSRUYodW5pY29kZSk7CkBAIC00NTAsMTAgKzQ0NCwxMiBAQAogICAgIH0KIAogICAgIGlmIChfUHlVbmljb2RlX1JlYWR5KHVuaWNvZGUpIDwgMCkgewotICAgICAgICBQeV9YREVDUkVGKHVuaWNvZGUpOworICAgICAgICBQeV9ERUNSRUYodW5pY29kZSk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICNlbHNlCisgICAgYXNzZXJ0KFB5X1JFRkNOVCh1bmljb2RlKSA9PSAxKTsKKwogICAgIC8qIGRvbid0IG1ha2UgdGhlIHJlc3VsdCByZWFkeSBpbiBkZWJ1ZyBtb2RlIHRvIGVuc3VyZSB0aGF0IHRoZSBjYWxsZXIKICAgICAgICBtYWtlcyB0aGUgc3RyaW5nIHJlYWR5IGJlZm9yZSB1c2luZyBpdCAqLwogICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kodW5pY29kZSwgMSkpOwpAQCAtNDc2LDcgKzQ3Miw5IEBACiAgICAgfQogCiAgICAgaWYgKGxlbmd0aCA9PSAxKSB7Ci0gICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRF9DSEFSKHVuaWNvZGUsIDApOworICAgICAgICB2b2lkICpkYXRhID0gUHlVbmljb2RlX0RBVEEodW5pY29kZSk7CisgICAgICAgIGludCBraW5kID0gUHlVbmljb2RlX0tJTkQodW5pY29kZSk7CisgICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCAwKTsKICAgICAgICAgaWYgKGNoIDwgMjU2KSB7CiAgICAgICAgICAgICBQeU9iamVjdCAqbGF0aW4xX2NoYXIgPSB1bmljb2RlX2xhdGluMVtjaF07CiAgICAgICAgICAgICBpZiAobGF0aW4xX2NoYXIgIT0gTlVMTCkgewpAQCAtNTQ5LDcgKzU0Nyw2IEBACiAKIHN0YXRpYyBCTE9PTV9NQVNLIGJsb29tX2xpbmVicmVhayA9IH4oQkxPT01fTUFTSykwOwogCi0jZGVmaW5lIEJMT09NX0FERChtYXNrLCBjaCkgKChtYXNrIHw9ICgxVUwgPDwgKChjaCkgJiAoQkxPT01fV0lEVEggLSAxKSkpKSkKICNkZWZpbmUgQkxPT00obWFzaywgY2gpICAgICAoKG1hc2sgJiAgKDFVTCA8PCAoKGNoKSAmIChCTE9PTV9XSURUSCAtIDEpKSkpKQogCiAjZGVmaW5lIEJMT09NX0xJTkVCUkVBSyhjaCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC01NTksMjEgKzU1Niw0MCBAQAogUHlfTE9DQUxfSU5MSU5FKEJMT09NX01BU0spCiBtYWtlX2Jsb29tX21hc2soaW50IGtpbmQsIHZvaWQqIHB0ciwgUHlfc3NpemVfdCBsZW4pCiB7CisjZGVmaW5lIEJMT09NX1VQREFURShUWVBFLCBNQVNLLCBQVFIsIExFTikgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgVFlQRSAqZGF0YSA9IChUWVBFICopUFRSOyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFRZUEUgKmVuZCA9IGRhdGEgKyBMRU47ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9VQ1M0IGNoOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZm9yICg7IGRhdGEgIT0gZW5kOyBkYXRhKyspIHsgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBjaCA9ICpkYXRhOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgTUFTSyB8PSAoMVVMIDw8IChjaCAmIChCTE9PTV9XSURUSCAtIDEpKSk7IFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKDApCisKICAgICAvKiBjYWxjdWxhdGUgc2ltcGxlIGJsb29tLXN0eWxlIGJpdG1hc2sgZm9yIGEgZ2l2ZW4gdW5pY29kZSBzdHJpbmcgKi8KIAogICAgIEJMT09NX01BU0sgbWFzazsKLSAgICBQeV9zc2l6ZV90IGk7CiAKICAgICBtYXNrID0gMDsKLSAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCi0gICAgICAgIEJMT09NX0FERChtYXNrLCBQeVVuaWNvZGVfUkVBRChraW5kLCBwdHIsIGkpKTsKLQorICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgICAgIEJMT09NX1VQREFURShQeV9VQ1MxLCBtYXNrLCBwdHIsIGxlbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHlVbmljb2RlXzJCWVRFX0tJTkQ6CisgICAgICAgIEJMT09NX1VQREFURShQeV9VQ1MyLCBtYXNrLCBwdHIsIGxlbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHlVbmljb2RlXzRCWVRFX0tJTkQ6CisgICAgICAgIEJMT09NX1VQREFURShQeV9VQ1M0LCBtYXNrLCBwdHIsIGxlbik7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGFzc2VydCgwKTsKKyAgICB9CiAgICAgcmV0dXJuIG1hc2s7Ci19CiAKLSNkZWZpbmUgQkxPT01fTUVNQkVSKG1hc2ssIGNociwgc3RyKSBcCi0gICAgKEJMT09NKG1hc2ssIGNocikgXAotICAgICAmJiAoUHlVbmljb2RlX0ZpbmRDaGFyKHN0ciwgY2hyLCAwLCBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIpLCAxKSA+PSAwKSkKKyN1bmRlZiBCTE9PTV9VUERBVEUKK30KIAogLyogQ29tcGlsYXRpb24gb2YgdGVtcGxhdGVkIHJvdXRpbmVzICovCiAKQEAgLTU5Myw2ICs2MDksNyBAQAogI2luY2x1ZGUgInN0cmluZ2xpYi9zcGxpdC5oIgogI2luY2x1ZGUgInN0cmluZ2xpYi9jb3VudC5oIgogI2luY2x1ZGUgInN0cmluZ2xpYi9maW5kLmgiCisjaW5jbHVkZSAic3RyaW5nbGliL3JlcGxhY2UuaCIKICNpbmNsdWRlICJzdHJpbmdsaWIvZmluZF9tYXhfY2hhci5oIgogI2luY2x1ZGUgInN0cmluZ2xpYi9sb2NhbGV1dGlsLmgiCiAjaW5jbHVkZSAic3RyaW5nbGliL3VuZGVmLmgiCkBAIC02MDMsNiArNjIwLDcgQEAKICNpbmNsdWRlICJzdHJpbmdsaWIvc3BsaXQuaCIKICNpbmNsdWRlICJzdHJpbmdsaWIvY291bnQuaCIKICNpbmNsdWRlICJzdHJpbmdsaWIvZmluZC5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi9yZXBsYWNlLmgiCiAjaW5jbHVkZSAic3RyaW5nbGliL2ZpbmRfbWF4X2NoYXIuaCIKICNpbmNsdWRlICJzdHJpbmdsaWIvbG9jYWxldXRpbC5oIgogI2luY2x1ZGUgInN0cmluZ2xpYi91bmRlZi5oIgpAQCAtNjEzLDYgKzYzMSw3IEBACiAjaW5jbHVkZSAic3RyaW5nbGliL3NwbGl0LmgiCiAjaW5jbHVkZSAic3RyaW5nbGliL2NvdW50LmgiCiAjaW5jbHVkZSAic3RyaW5nbGliL2ZpbmQuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvcmVwbGFjZS5oIgogI2luY2x1ZGUgInN0cmluZ2xpYi9maW5kX21heF9jaGFyLmgiCiAjaW5jbHVkZSAic3RyaW5nbGliL2xvY2FsZXV0aWwuaCIKICNpbmNsdWRlICJzdHJpbmdsaWIvdW5kZWYuaCIKQEAgLTY1OSw2ICs2NzgsMjUgQEAKICAgICB9CiB9CiAKKyNpZmRlZiBQeV9ERUJVRworLyogRmlsbCB0aGUgZGF0YSBvZiBhbiBVbmljb2RlIHN0cmluZyB3aXRoIGludmFsaWQgY2hhcmFjdGVycyB0byBkZXRlY3QgYnVncworICAgZWFybGllci4KKworICAgX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHN0ciwgMSkgZGV0ZWN0cyBpbnZhbGlkIGNoYXJhY3RlcnMsIGF0IGxlYXN0IGZvcgorICAgQVNDSUkgYW5kIFVDUy00IHN0cmluZ3MuIFUrMDBGRiBpcyBpbnZhbGlkIGluIEFTQ0lJIGFuZCBVK0ZGRkZGRkZGIGlzIGFuCisgICBpbnZhbGlkIGNoYXJhY3RlciBpbiBVbmljb2RlIDYuMC4gKi8KK3N0YXRpYyB2b2lkCit1bmljb2RlX2ZpbGxfaW52YWxpZChQeU9iamVjdCAqdW5pY29kZSwgUHlfc3NpemVfdCBvbGRfbGVuZ3RoKQoreworICAgIGludCBraW5kID0gUHlVbmljb2RlX0tJTkQodW5pY29kZSk7CisgICAgUHlfVUNTMSAqZGF0YSA9IFB5VW5pY29kZV8xQllURV9EQVRBKHVuaWNvZGUpOworICAgIFB5X3NzaXplX3QgbGVuZ3RoID0gX1B5VW5pY29kZV9MRU5HVEgodW5pY29kZSk7CisgICAgaWYgKGxlbmd0aCA8PSBvbGRfbGVuZ3RoKQorICAgICAgICByZXR1cm47CisgICAgbWVtc2V0KGRhdGEgKyBvbGRfbGVuZ3RoICoga2luZCwgMHhmZiwgKGxlbmd0aCAtIG9sZF9sZW5ndGgpICoga2luZCk7Cit9CisjZW5kaWYKKwogc3RhdGljIFB5T2JqZWN0KgogcmVzaXplX2NvbXBhY3QoUHlPYmplY3QgKnVuaWNvZGUsIFB5X3NzaXplX3QgbGVuZ3RoKQogewpAQCAtNjY3LDYgKzcwNSwxMCBAQAogICAgIFB5X3NzaXplX3QgbmV3X3NpemU7CiAgICAgaW50IHNoYXJlX3dzdHI7CiAgICAgUHlPYmplY3QgKm5ld191bmljb2RlOworI2lmZGVmIFB5X0RFQlVHCisgICAgUHlfc3NpemVfdCBvbGRfbGVuZ3RoID0gX1B5VW5pY29kZV9MRU5HVEgodW5pY29kZSk7CisjZW5kaWYKKwogICAgIGFzc2VydCh1bmljb2RlX21vZGlmaWFibGUodW5pY29kZSkpOwogICAgIGFzc2VydChQeVVuaWNvZGVfSVNfUkVBRFkodW5pY29kZSkpOwogICAgIGFzc2VydChQeVVuaWNvZGVfSVNfQ09NUEFDVCh1bmljb2RlKSk7CkBAIC03MDYsNiArNzQ4LDkgQEAKICAgICAgICAgUHlPYmplY3RfREVMKF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKSk7CiAgICAgICAgIF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKSA9IE5VTEw7CiAgICAgfQorI2lmZGVmIFB5X0RFQlVHCisgICAgdW5pY29kZV9maWxsX2ludmFsaWQodW5pY29kZSwgb2xkX2xlbmd0aCk7CisjZW5kaWYKICAgICBQeVVuaWNvZGVfV1JJVEUoUHlVbmljb2RlX0tJTkQodW5pY29kZSksIFB5VW5pY29kZV9EQVRBKHVuaWNvZGUpLAogICAgICAgICAgICAgICAgICAgICBsZW5ndGgsIDApOwogICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kodW5pY29kZSwgMCkpOwpAQCAtNzI0LDYgKzc2OSw5IEBACiAgICAgICAgIFB5X3NzaXplX3QgY2hhcl9zaXplOwogICAgICAgICBpbnQgc2hhcmVfd3N0ciwgc2hhcmVfdXRmODsKICAgICAgICAgdm9pZCAqZGF0YTsKKyNpZmRlZiBQeV9ERUJVRworICAgICAgICBQeV9zc2l6ZV90IG9sZF9sZW5ndGggPSBfUHlVbmljb2RlX0xFTkdUSCh1bmljb2RlKTsKKyNlbmRpZgogCiAgICAgICAgIGRhdGEgPSBfUHlVbmljb2RlX0RBVEFfQU5ZKHVuaWNvZGUpOwogICAgICAgICBjaGFyX3NpemUgPSBQeVVuaWNvZGVfS0lORCh1bmljb2RlKTsKQEAgLTc1OSw2ICs4MDcsOSBAQAogICAgICAgICB9CiAgICAgICAgIF9QeVVuaWNvZGVfTEVOR1RIKHVuaWNvZGUpID0gbGVuZ3RoOwogICAgICAgICBQeVVuaWNvZGVfV1JJVEUoUHlVbmljb2RlX0tJTkQodW5pY29kZSksIGRhdGEsIGxlbmd0aCwgMCk7CisjaWZkZWYgUHlfREVCVUcKKyAgICAgICAgdW5pY29kZV9maWxsX2ludmFsaWQodW5pY29kZSwgb2xkX2xlbmd0aCk7CisjZW5kaWYKICAgICAgICAgaWYgKHNoYXJlX3dzdHIgfHwgX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpID09IE5VTEwpIHsKICAgICAgICAgICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kodW5pY29kZSwgMCkpOwogICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC04MTEsOCArODYyLDggQEAKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBjb3B5X2xlbmd0aCA9IF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSk7CiAgICAgICAgIGNvcHlfbGVuZ3RoID0gUHlfTUlOKGNvcHlfbGVuZ3RoLCBsZW5ndGgpOwotICAgICAgICBQeV9VTklDT0RFX0NPUFkoX1B5VW5pY29kZV9XU1RSKHcpLCBfUHlVbmljb2RlX1dTVFIodW5pY29kZSksCi0gICAgICAgICAgICAgICAgICAgICAgICBjb3B5X2xlbmd0aCk7CisgICAgICAgIFB5X01FTUNQWShfUHlVbmljb2RlX1dTVFIodyksIF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKSwKKyAgICAgICAgICAgICAgICAgIGNvcHlfbGVuZ3RoICogc2l6ZW9mKHdjaGFyX3QpKTsKICAgICAgICAgcmV0dXJuIHc7CiAgICAgfQogfQpAQCAtMTA4MywxMSArMTEzNCw3IEBACiAgICAgICAgIH0KICAgICB9CiAjaWZkZWYgUHlfREVCVUcKLSAgICAvKiBGaWxsIHRoZSBkYXRhIHdpdGggaW52YWxpZCBjaGFyYWN0ZXJzIHRvIGRldGVjdCBidWdzIGVhcmxpZXIuCi0gICAgICAgX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHN0ciwgMSkgZGV0ZWN0cyBpbnZhbGlkIGNoYXJhY3RlcnMsCi0gICAgICAgYXQgbGVhc3QgZm9yIEFTQ0lJIGFuZCBVQ1MtNCBzdHJpbmdzLiBVKzAwRkYgaXMgaW52YWxpZCBpbiBBU0NJSQotICAgICAgIGFuZCBVK0ZGRkZGRkZGIGlzIGFuIGludmFsaWQgY2hhcmFjdGVyIGluIFVuaWNvZGUgNi4wLiAqLwotICAgIG1lbXNldChkYXRhLCAweGZmLCBzaXplICoga2luZCk7CisgICAgdW5pY29kZV9maWxsX2ludmFsaWQoKFB5T2JqZWN0Kil1bmljb2RlLCAwKTsKICNlbmRpZgogICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3koKFB5T2JqZWN0Kil1bmljb2RlLCAwKSk7CiAgICAgcmV0dXJuIG9iajsKQEAgLTE2NDksMzggKzE2OTYsNiBAQAogICAgIHJldHVybiB1bmljb2RlX3Jlc2l6ZShwX3VuaWNvZGUsIGxlbmd0aCk7CiB9CiAKLXN0YXRpYyBpbnQKLXVuaWNvZGVfd2lkZW4oUHlPYmplY3QgKipwX3VuaWNvZGUsIFB5X3NzaXplX3QgbGVuZ3RoLAotICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbWF4Y2hhcikKLXsKLSAgICBQeU9iamVjdCAqcmVzdWx0OwotICAgIGFzc2VydChQeVVuaWNvZGVfSVNfUkVBRFkoKnBfdW5pY29kZSkpOwotICAgIGFzc2VydChsZW5ndGggPD0gUHlVbmljb2RlX0dFVF9MRU5HVEgoKnBfdW5pY29kZSkpOwotICAgIGlmIChtYXhjaGFyIDw9IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRSgqcF91bmljb2RlKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmVzdWx0ID0gUHlVbmljb2RlX05ldyhQeVVuaWNvZGVfR0VUX0xFTkdUSCgqcF91bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGNoYXIpOwotICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKHJlc3VsdCwgMCwgKnBfdW5pY29kZSwgMCwgbGVuZ3RoKTsKLSAgICBQeV9ERUNSRUYoKnBfdW5pY29kZSk7Ci0gICAgKnBfdW5pY29kZSA9IHJlc3VsdDsKLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludAotdW5pY29kZV9wdXRjaGFyKFB5T2JqZWN0ICoqcF91bmljb2RlLCBQeV9zc2l6ZV90ICpwb3MsCi0gICAgICAgICAgICAgICAgUHlfVUNTNCBjaCkKLXsKLSAgICBhc3NlcnQoY2ggPD0gTUFYX1VOSUNPREUpOwotICAgIGlmICh1bmljb2RlX3dpZGVuKHBfdW5pY29kZSwgKnBvcywgY2gpIDwgMCkKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIFB5VW5pY29kZV9XUklURShQeVVuaWNvZGVfS0lORCgqcF91bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0RBVEEoKnBfdW5pY29kZSksCi0gICAgICAgICAgICAgICAgICAgICgqcG9zKSsrLCBjaCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIC8qIENvcHkgYSBBU0NJSSBvciBsYXRpbjEgY2hhciogc3RyaW5nIGludG8gYSBQeXRob24gVW5pY29kZSBzdHJpbmcuCiAKICAgIFdBUk5JTkc6IFRoZSBmdW5jdGlvbiBkb2Vzbid0IGNvcHkgdGhlIHRlcm1pbmF0aW5nIG51bGwgY2hhcmFjdGVyIGFuZApAQCAtMTY5Nyw2ICsxNzEyLDE0IEBACiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBQeVVuaWNvZGVfMUJZVEVfS0lORDogewogICAgICAgICBhc3NlcnQoaW5kZXggKyBsZW4gPD0gUHlVbmljb2RlX0dFVF9MRU5HVEgodW5pY29kZSkpOworI2lmZGVmIFB5X0RFQlVHCisgICAgICAgIGlmIChQeVVuaWNvZGVfSVNfQVNDSUkodW5pY29kZSkpIHsKKyAgICAgICAgICAgIFB5X1VDUzQgbWF4Y2hhciA9IHVjczFsaWJfZmluZF9tYXhfY2hhcigKKyAgICAgICAgICAgICAgICAoY29uc3QgUHlfVUNTMSopc3RyLAorICAgICAgICAgICAgICAgIChjb25zdCBQeV9VQ1MxKilzdHIgKyBsZW4pOworICAgICAgICAgICAgYXNzZXJ0KG1heGNoYXIgPCAxMjgpOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgbWVtY3B5KChjaGFyICopIGRhdGEgKyBpbmRleCwgc3RyLCBsZW4pOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xOTQyLDEzICsxOTY1LDE3IEBACiAgICAgYXNzZXJ0KHNpemUgPiAwKTsKICAgICBpZiAoc2l6ZSA9PSAxKSB7CiAgICAgICAgIFB5X1VDUzQgY2ggPSB1WzBdOworICAgICAgICBpbnQga2luZDsKKyAgICAgICAgdm9pZCAqZGF0YTsKICAgICAgICAgaWYgKGNoIDwgMjU2KQogICAgICAgICAgICAgcmV0dXJuIGdldF9sYXRpbjFfY2hhcigodW5zaWduZWQgY2hhciljaCk7CiAKICAgICAgICAgcmVzID0gUHlVbmljb2RlX05ldygxLCBjaCk7CiAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBQeVVuaWNvZGVfV1JJVEUoUHlVbmljb2RlX0tJTkQocmVzKSwgUHlVbmljb2RlX0RBVEEocmVzKSwgMCwgY2gpOworICAgICAgICBraW5kID0gUHlVbmljb2RlX0tJTkQocmVzKTsKKyAgICAgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHJlcyk7CisgICAgICAgIFB5VW5pY29kZV9XUklURShraW5kLCBkYXRhLCAwLCBjaCk7CiAgICAgICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kocmVzLCAxKSk7CiAgICAgICAgIHJldHVybiByZXM7CiAgICAgfQpAQCAtMTk3OCwxMyArMjAwNSwxNyBAQAogICAgIGFzc2VydChzaXplID4gMCk7CiAgICAgaWYgKHNpemUgPT0gMSkgewogICAgICAgICBQeV9VQ1M0IGNoID0gdVswXTsKKyAgICAgICAgaW50IGtpbmQ7CisgICAgICAgIHZvaWQgKmRhdGE7CiAgICAgICAgIGlmIChjaCA8IDI1NikKICAgICAgICAgICAgIHJldHVybiBnZXRfbGF0aW4xX2NoYXIoKHVuc2lnbmVkIGNoYXIpY2gpOwogCiAgICAgICAgIHJlcyA9IFB5VW5pY29kZV9OZXcoMSwgY2gpOwogICAgICAgICBpZiAocmVzID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgUHlVbmljb2RlX1dSSVRFKFB5VW5pY29kZV9LSU5EKHJlcyksIFB5VW5pY29kZV9EQVRBKHJlcyksIDAsIGNoKTsKKyAgICAgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHJlcyk7CisgICAgICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShyZXMpOworICAgICAgICBQeVVuaWNvZGVfV1JJVEUoa2luZCwgZGF0YSwgMCwgY2gpOwogICAgICAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHJlcywgMSkpOwogICAgICAgICByZXR1cm4gcmVzOwogICAgIH0KQEAgLTIyODMsMTYgKzIzMTQsOSBAQAogCiBzdGF0aWMgdm9pZAogbWFrZWZtdChjaGFyICpmbXQsIGludCBsb25nZmxhZywgaW50IGxvbmdsb25nZmxhZywgaW50IHNpemVfdGZsYWcsCi0gICAgICAgIGludCB6ZXJvcGFkLCBpbnQgd2lkdGgsIGludCBwcmVjaXNpb24sIGNoYXIgYykKKyAgICAgICAgY2hhciBjKQogewogICAgICpmbXQrKyA9ICclJzsKLSAgICBpZiAod2lkdGgpIHsKLSAgICAgICAgaWYgKHplcm9wYWQpCi0gICAgICAgICAgICAqZm10KysgPSAnMCc7Ci0gICAgICAgIGZtdCArPSBzcHJpbnRmKGZtdCwgIiVkIiwgd2lkdGgpOwotICAgIH0KLSAgICBpZiAocHJlY2lzaW9uKQotICAgICAgICBmbXQgKz0gc3ByaW50ZihmbXQsICIuJWQiLCBwcmVjaXNpb24pOwogICAgIGlmIChsb25nZmxhZykKICAgICAgICAgKmZtdCsrID0gJ2wnOwogICAgIGVsc2UgaWYgKGxvbmdsb25nZmxhZykgewpAQCAtMjMxNyw0NCArMjM0MSwxMzkgQEAKICAgICAqZm10ID0gJ1wwJzsKIH0KIAotLyogaGVscGVyIGZvciBQeVVuaWNvZGVfRnJvbUZvcm1hdFYoKSAqLworLyogbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyByZXF1aXJlZCBmb3Igb3V0cHV0IG9mICVsbGQgb3IgJXAuCisgICBXZSBuZWVkIGF0IG1vc3QgY2VpbChsb2cxMCgyNTYpKlNJWkVPRl9MT05HX0xPTkcpIGRpZ2l0cywKKyAgIHBsdXMgMSBmb3IgdGhlIHNpZ24uICA1My8yMiBpcyBhbiB1cHBlciBib3VuZCBmb3IgbG9nMTAoMjU2KS4gKi8KKyNkZWZpbmUgTUFYX0xPTkdfTE9OR19DSEFSUyAoMiArIChTSVpFT0ZfTE9OR19MT05HKjUzLTEpIC8gMjIpCisKK3N0YXRpYyBpbnQKK3VuaWNvZGVfZnJvbWZvcm1hdF93cml0ZV9zdHIoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyLCBQeU9iamVjdCAqc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHdpZHRoLCBQeV9zc2l6ZV90IHByZWNpc2lvbikKK3sKKyAgICBQeV9zc2l6ZV90IGxlbmd0aCwgZmlsbCwgYXJnbGVuOworICAgIFB5X1VDUzQgbWF4Y2hhcjsKKworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc3RyKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgbGVuZ3RoID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKTsKKyAgICBpZiAoKHByZWNpc2lvbiA9PSAtMSB8fCBwcmVjaXNpb24gPj0gbGVuZ3RoKQorICAgICAgICAmJiB3aWR0aCA8PSBsZW5ndGgpCisgICAgICAgIHJldHVybiBfUHlVbmljb2RlV3JpdGVyX1dyaXRlU3RyKHdyaXRlciwgc3RyKTsKKworICAgIGlmIChwcmVjaXNpb24gIT0gLTEpCisgICAgICAgIGxlbmd0aCA9IFB5X01JTihwcmVjaXNpb24sIGxlbmd0aCk7CisKKyAgICBhcmdsZW4gPSBQeV9NQVgobGVuZ3RoLCB3aWR0aCk7CisgICAgaWYgKFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShzdHIpID4gd3JpdGVyLT5tYXhjaGFyKQorICAgICAgICBtYXhjaGFyID0gX1B5VW5pY29kZV9GaW5kTWF4Q2hhcihzdHIsIDAsIGxlbmd0aCk7CisgICAgZWxzZQorICAgICAgICBtYXhjaGFyID0gd3JpdGVyLT5tYXhjaGFyOworCisgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZSh3cml0ZXIsIGFyZ2xlbiwgbWF4Y2hhcikgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGlmICh3aWR0aCA+IGxlbmd0aCkgeworICAgICAgICBmaWxsID0gd2lkdGggLSBsZW5ndGg7CisgICAgICAgIGlmIChQeVVuaWNvZGVfRmlsbCh3cml0ZXItPmJ1ZmZlciwgd3JpdGVyLT5wb3MsIGZpbGwsICcgJykgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHdyaXRlci0+cG9zICs9IGZpbGw7CisgICAgfQorCisgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMod3JpdGVyLT5idWZmZXIsIHdyaXRlci0+cG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciwgMCwgbGVuZ3RoKTsKKyAgICB3cml0ZXItPnBvcyArPSBsZW5ndGg7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3VuaWNvZGVfZnJvbWZvcm1hdF93cml0ZV9jc3RyKF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwgY29uc3QgY2hhciAqc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCB3aWR0aCwgUHlfc3NpemVfdCBwcmVjaXNpb24pCit7CisgICAgLyogVVRGLTggKi8KKyAgICBQeV9zc2l6ZV90IGxlbmd0aDsKKyAgICBQeU9iamVjdCAqdW5pY29kZTsKKyAgICBpbnQgcmVzOworCisgICAgbGVuZ3RoID0gc3RybGVuKHN0cik7CisgICAgaWYgKHByZWNpc2lvbiAhPSAtMSkKKyAgICAgICAgbGVuZ3RoID0gUHlfTUlOKGxlbmd0aCwgcHJlY2lzaW9uKTsKKyAgICB1bmljb2RlID0gUHlVbmljb2RlX0RlY29kZVVURjhTdGF0ZWZ1bChzdHIsIGxlbmd0aCwgInJlcGxhY2UiLCBOVUxMKTsKKyAgICBpZiAodW5pY29kZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICByZXMgPSB1bmljb2RlX2Zyb21mb3JtYXRfd3JpdGVfc3RyKHdyaXRlciwgdW5pY29kZSwgd2lkdGgsIC0xKTsKKyAgICBQeV9ERUNSRUYodW5pY29kZSk7CisgICAgcmV0dXJuIHJlczsKK30KIAogc3RhdGljIGNvbnN0IGNoYXIqCi1wYXJzZV9mb3JtYXRfZmxhZ3MoY29uc3QgY2hhciAqZiwKLSAgICAgICAgICAgICAgICAgICBpbnQgKnBfd2lkdGgsIGludCAqcF9wcmVjaXNpb24sCi0gICAgICAgICAgICAgICAgICAgaW50ICpwX2xvbmdmbGFnLCBpbnQgKnBfbG9uZ2xvbmdmbGFnLCBpbnQgKnBfc2l6ZV90ZmxhZykKK3VuaWNvZGVfZnJvbWZvcm1hdF9hcmcoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmLCB2YV9saXN0ICp2YXJncykKIHsKLSAgICBpbnQgd2lkdGgsIHByZWNpc2lvbiwgbG9uZ2ZsYWcsIGxvbmdsb25nZmxhZywgc2l6ZV90ZmxhZzsKKyAgICBjb25zdCBjaGFyICpwOworICAgIFB5X3NzaXplX3QgbGVuOworICAgIGludCB6ZXJvcGFkOworICAgIFB5X3NzaXplX3Qgd2lkdGg7CisgICAgUHlfc3NpemVfdCBwcmVjaXNpb247CisgICAgaW50IGxvbmdmbGFnOworICAgIGludCBsb25nbG9uZ2ZsYWc7CisgICAgaW50IHNpemVfdGZsYWc7CisgICAgUHlfc3NpemVfdCBmaWxsOworCisgICAgcCA9IGY7CisgICAgZisrOworICAgIHplcm9wYWQgPSAwOworICAgIGlmICgqZiA9PSAnMCcpIHsKKyAgICAgICAgemVyb3BhZCA9IDE7CisgICAgICAgIGYrKzsKKyAgICB9CiAKICAgICAvKiBwYXJzZSB0aGUgd2lkdGgucHJlY2lzaW9uIHBhcnQsIGUuZy4gIiUyLjVzIiA9PiB3aWR0aD0yLCBwcmVjaXNpb249NSAqLwotICAgIGYrKzsKLSAgICB3aWR0aCA9IDA7Ci0gICAgd2hpbGUgKFB5X0lTRElHSVQoKHVuc2lnbmVkKSpmKSkKLSAgICAgICAgd2lkdGggPSAod2lkdGgqMTApICsgKmYrKyAtICcwJzsKLSAgICBwcmVjaXNpb24gPSAwOworICAgIHdpZHRoID0gLTE7CisgICAgaWYgKFB5X0lTRElHSVQoKHVuc2lnbmVkKSpmKSkgeworICAgICAgICB3aWR0aCA9ICpmIC0gJzAnOworICAgICAgICBmKys7CisgICAgICAgIHdoaWxlIChQeV9JU0RJR0lUKCh1bnNpZ25lZCkqZikpIHsKKyAgICAgICAgICAgIGlmICh3aWR0aCA+IChQWV9TU0laRV9UX01BWCAtICgoaW50KSpmIC0gJzAnKSkgLyAxMCkgeworICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkdGggdG9vIGJpZyIpOworICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2lkdGggPSAod2lkdGggKiAxMCkgKyAoKmYgLSAnMCcpOworICAgICAgICAgICAgZisrOworICAgICAgICB9CisgICAgfQorICAgIHByZWNpc2lvbiA9IC0xOwogICAgIGlmICgqZiA9PSAnLicpIHsKICAgICAgICAgZisrOwotICAgICAgICB3aGlsZSAoUHlfSVNESUdJVCgodW5zaWduZWQpKmYpKQotICAgICAgICAgICAgcHJlY2lzaW9uID0gKHByZWNpc2lvbioxMCkgKyAqZisrIC0gJzAnOworICAgICAgICBpZiAoUHlfSVNESUdJVCgodW5zaWduZWQpKmYpKSB7CisgICAgICAgICAgICBwcmVjaXNpb24gPSAoKmYgLSAnMCcpOworICAgICAgICAgICAgZisrOworICAgICAgICAgICAgd2hpbGUgKFB5X0lTRElHSVQoKHVuc2lnbmVkKSpmKSkgeworICAgICAgICAgICAgICAgIGlmIChwcmVjaXNpb24gPiAoUFlfU1NJWkVfVF9NQVggLSAoKGludCkqZiAtICcwJykpIC8gMTApIHsKKyAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJlY2lzaW9uIHRvbyBiaWciKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByZWNpc2lvbiA9IChwcmVjaXNpb24gKiAxMCkgKyAoKmYgLSAnMCcpOworICAgICAgICAgICAgICAgIGYrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICBpZiAoKmYgPT0gJyUnKSB7CiAgICAgICAgICAgICAvKiAiJS4zJXMiID0+IGYgcG9pbnRzIHRvICIzIiAqLwogICAgICAgICAgICAgZi0tOwogICAgICAgICB9CiAgICAgfQogICAgIGlmICgqZiA9PSAnXDAnKSB7Ci0gICAgICAgIC8qIGJvZ3VzIGZvcm1hdCAiJS4xIiA9PiBnbyBiYWNrd2FyZCwgZiBwb2ludHMgdG8gIjEiICovCisgICAgICAgIC8qIGJvZ3VzIGZvcm1hdCAiJS4xMjMiID0+IGdvIGJhY2t3YXJkLCBmIHBvaW50cyB0byAiMyIgKi8KICAgICAgICAgZi0tOwogICAgIH0KLSAgICBpZiAocF93aWR0aCAhPSBOVUxMKQotICAgICAgICAqcF93aWR0aCA9IHdpZHRoOwotICAgIGlmIChwX3ByZWNpc2lvbiAhPSBOVUxMKQotICAgICAgICAqcF9wcmVjaXNpb24gPSBwcmVjaXNpb247CiAKICAgICAvKiBIYW5kbGUgJWxkLCAlbHUsICVsbGQgYW5kICVsbHUuICovCiAgICAgbG9uZ2ZsYWcgPSAwOwogICAgIGxvbmdsb25nZmxhZyA9IDA7CiAgICAgc2l6ZV90ZmxhZyA9IDA7Ci0KICAgICBpZiAoKmYgPT0gJ2wnKSB7CiAgICAgICAgIGlmIChmWzFdID09ICdkJyB8fCBmWzFdID09ICd1JyB8fCBmWzFdID09ICdpJykgewogICAgICAgICAgICAgbG9uZ2ZsYWcgPSAxOwpAQCAtMjM3Myw0OTQgKzI0OTIsMjg5IEBACiAgICAgICAgIHNpemVfdGZsYWcgPSAxOwogICAgICAgICArK2Y7CiAgICAgfQotICAgIGlmIChwX2xvbmdmbGFnICE9IE5VTEwpCi0gICAgICAgICpwX2xvbmdmbGFnID0gbG9uZ2ZsYWc7Ci0gICAgaWYgKHBfbG9uZ2xvbmdmbGFnICE9IE5VTEwpCi0gICAgICAgICpwX2xvbmdsb25nZmxhZyA9IGxvbmdsb25nZmxhZzsKLSAgICBpZiAocF9zaXplX3RmbGFnICE9IE5VTEwpCi0gICAgICAgICpwX3NpemVfdGZsYWcgPSBzaXplX3RmbGFnOworCisgICAgaWYgKGZbMV0gPT0gJ1wwJykKKyAgICAgICAgd3JpdGVyLT5vdmVyYWxsb2NhdGUgPSAwOworCisgICAgc3dpdGNoICgqZikgeworICAgIGNhc2UgJ2MnOgorICAgIHsKKyAgICAgICAgaW50IG9yZGluYWwgPSB2YV9hcmcoKnZhcmdzLCBpbnQpOworICAgICAgICBpZiAob3JkaW5hbCA8IDAgfHwgb3JkaW5hbCA+IE1BWF9VTklDT0RFKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2hhcmFjdGVyIGFyZ3VtZW50IG5vdCBpbiByYW5nZSgweDExMDAwMCkiKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1dyaXRlQ2hhcklubGluZSh3cml0ZXIsIG9yZGluYWwpIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlICdpJzoKKyAgICBjYXNlICdkJzoKKyAgICBjYXNlICd1JzoKKyAgICBjYXNlICd4JzoKKyAgICB7CisgICAgICAgIC8qIHVzZWQgYnkgc3ByaW50ZiAqLworICAgICAgICBjaGFyIGZtdFsxMF07IC8qIHNob3VsZCBiZSBlbm91Z2ggZm9yICIlMGxsZFwwIiAqLworICAgICAgICBjaGFyIGJ1ZmZlcltNQVhfTE9OR19MT05HX0NIQVJTXTsKKyAgICAgICAgUHlfc3NpemVfdCBhcmdsZW47CisKKyAgICAgICAgaWYgKCpmID09ICd1JykgeworICAgICAgICAgICAgbWFrZWZtdChmbXQsIGxvbmdmbGFnLCBsb25nbG9uZ2ZsYWcsIHNpemVfdGZsYWcsICpmKTsKKworICAgICAgICAgICAgaWYgKGxvbmdmbGFnKQorICAgICAgICAgICAgICAgIGxlbiA9IHNwcmludGYoYnVmZmVyLCBmbXQsCisgICAgICAgICAgICAgICAgICAgICAgICB2YV9hcmcoKnZhcmdzLCB1bnNpZ25lZCBsb25nKSk7CisjaWZkZWYgSEFWRV9MT05HX0xPTkcKKyAgICAgICAgICAgIGVsc2UgaWYgKGxvbmdsb25nZmxhZykKKyAgICAgICAgICAgICAgICBsZW4gPSBzcHJpbnRmKGJ1ZmZlciwgZm10LAorICAgICAgICAgICAgICAgICAgICAgICAgdmFfYXJnKCp2YXJncywgdW5zaWduZWQgUFlfTE9OR19MT05HKSk7CisjZW5kaWYKKyAgICAgICAgICAgIGVsc2UgaWYgKHNpemVfdGZsYWcpCisgICAgICAgICAgICAgICAgbGVuID0gc3ByaW50ZihidWZmZXIsIGZtdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhX2FyZygqdmFyZ3MsIHNpemVfdCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxlbiA9IHNwcmludGYoYnVmZmVyLCBmbXQsCisgICAgICAgICAgICAgICAgICAgICAgICB2YV9hcmcoKnZhcmdzLCB1bnNpZ25lZCBpbnQpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICgqZiA9PSAneCcpIHsKKyAgICAgICAgICAgIG1ha2VmbXQoZm10LCAwLCAwLCAwLCAneCcpOworICAgICAgICAgICAgbGVuID0gc3ByaW50ZihidWZmZXIsIGZtdCwgdmFfYXJnKCp2YXJncywgaW50KSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtYWtlZm10KGZtdCwgbG9uZ2ZsYWcsIGxvbmdsb25nZmxhZywgc2l6ZV90ZmxhZywgKmYpOworCisgICAgICAgICAgICBpZiAobG9uZ2ZsYWcpCisgICAgICAgICAgICAgICAgbGVuID0gc3ByaW50ZihidWZmZXIsIGZtdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhX2FyZygqdmFyZ3MsIGxvbmcpKTsKKyNpZmRlZiBIQVZFX0xPTkdfTE9ORworICAgICAgICAgICAgZWxzZSBpZiAobG9uZ2xvbmdmbGFnKQorICAgICAgICAgICAgICAgIGxlbiA9IHNwcmludGYoYnVmZmVyLCBmbXQsCisgICAgICAgICAgICAgICAgICAgICAgICB2YV9hcmcoKnZhcmdzLCBQWV9MT05HX0xPTkcpKTsKKyNlbmRpZgorICAgICAgICAgICAgZWxzZSBpZiAoc2l6ZV90ZmxhZykKKyAgICAgICAgICAgICAgICBsZW4gPSBzcHJpbnRmKGJ1ZmZlciwgZm10LAorICAgICAgICAgICAgICAgICAgICAgICAgdmFfYXJnKCp2YXJncywgUHlfc3NpemVfdCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxlbiA9IHNwcmludGYoYnVmZmVyLCBmbXQsCisgICAgICAgICAgICAgICAgICAgICAgICB2YV9hcmcoKnZhcmdzLCBpbnQpKTsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnQobGVuID49IDApOworCisgICAgICAgIGlmIChwcmVjaXNpb24gPCBsZW4pCisgICAgICAgICAgICBwcmVjaXNpb24gPSBsZW47CisKKyAgICAgICAgYXJnbGVuID0gUHlfTUFYKHByZWNpc2lvbiwgd2lkdGgpOworICAgICAgICBhc3NlcnQodWNzMWxpYl9maW5kX21heF9jaGFyKChQeV9VQ1MxKilidWZmZXIsIChQeV9VQ1MxKilidWZmZXIgKyBsZW4pIDw9IDEyNyk7CisgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1ByZXBhcmUod3JpdGVyLCBhcmdsZW4sIDEyNykgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKworICAgICAgICBpZiAod2lkdGggPiBwcmVjaXNpb24pIHsKKyAgICAgICAgICAgIFB5X1VDUzQgZmlsbGNoYXI7CisgICAgICAgICAgICBmaWxsID0gd2lkdGggLSBwcmVjaXNpb247CisgICAgICAgICAgICBmaWxsY2hhciA9IHplcm9wYWQ/JzAnOicgJzsKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfRmlsbCh3cml0ZXItPmJ1ZmZlciwgd3JpdGVyLT5wb3MsIGZpbGwsIGZpbGxjaGFyKSA9PSAtMSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgIHdyaXRlci0+cG9zICs9IGZpbGw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByZWNpc2lvbiA+IGxlbikgeworICAgICAgICAgICAgZmlsbCA9IHByZWNpc2lvbiAtIGxlbjsKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfRmlsbCh3cml0ZXItPmJ1ZmZlciwgd3JpdGVyLT5wb3MsIGZpbGwsICcwJykgPT0gLTEpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICB3cml0ZXItPnBvcyArPSBmaWxsOworICAgICAgICB9CisKKyAgICAgICAgdW5pY29kZV93cml0ZV9jc3RyKHdyaXRlci0+YnVmZmVyLCB3cml0ZXItPnBvcywgYnVmZmVyLCBsZW4pOworICAgICAgICB3cml0ZXItPnBvcyArPSBsZW47CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgJ3AnOgorICAgIHsKKyAgICAgICAgY2hhciBudW1iZXJbTUFYX0xPTkdfTE9OR19DSEFSU107CisKKyAgICAgICAgbGVuID0gc3ByaW50ZihudW1iZXIsICIlcCIsIHZhX2FyZygqdmFyZ3MsIHZvaWQqKSk7CisgICAgICAgIGFzc2VydChsZW4gPj0gMCk7CisKKyAgICAgICAgLyogJXAgaXMgaWxsLWRlZmluZWQ6ICBlbnN1cmUgbGVhZGluZyAweC4gKi8KKyAgICAgICAgaWYgKG51bWJlclsxXSA9PSAnWCcpCisgICAgICAgICAgICBudW1iZXJbMV0gPSAneCc7CisgICAgICAgIGVsc2UgaWYgKG51bWJlclsxXSAhPSAneCcpIHsKKyAgICAgICAgICAgIG1lbW1vdmUobnVtYmVyICsgMiwgbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICBzdHJsZW4obnVtYmVyKSArIDEpOworICAgICAgICAgICAgbnVtYmVyWzBdID0gJzAnOworICAgICAgICAgICAgbnVtYmVyWzFdID0gJ3gnOworICAgICAgICAgICAgbGVuICs9IDI7CisgICAgICAgIH0KKworICAgICAgICBhc3NlcnQodWNzMWxpYl9maW5kX21heF9jaGFyKChQeV9VQ1MxKiludW1iZXIsIChQeV9VQ1MxKiludW1iZXIgKyBsZW4pIDw9IDEyNyk7CisgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1ByZXBhcmUod3JpdGVyLCBsZW4sIDEyNykgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgdW5pY29kZV93cml0ZV9jc3RyKHdyaXRlci0+YnVmZmVyLCB3cml0ZXItPnBvcywgbnVtYmVyLCBsZW4pOworICAgICAgICB3cml0ZXItPnBvcyArPSBsZW47CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgJ3MnOgorICAgIHsKKyAgICAgICAgLyogVVRGLTggKi8KKyAgICAgICAgY29uc3QgY2hhciAqcyA9IHZhX2FyZygqdmFyZ3MsIGNvbnN0IGNoYXIqKTsKKyAgICAgICAgaWYgKHVuaWNvZGVfZnJvbWZvcm1hdF93cml0ZV9jc3RyKHdyaXRlciwgcywgd2lkdGgsIHByZWNpc2lvbikgPCAwKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgJ1UnOgorICAgIHsKKyAgICAgICAgUHlPYmplY3QgKm9iaiA9IHZhX2FyZygqdmFyZ3MsIFB5T2JqZWN0ICopOworICAgICAgICBhc3NlcnQob2JqICYmIF9QeVVuaWNvZGVfQ0hFQ0sob2JqKSk7CisKKyAgICAgICAgaWYgKHVuaWNvZGVfZnJvbWZvcm1hdF93cml0ZV9zdHIod3JpdGVyLCBvYmosIHdpZHRoLCBwcmVjaXNpb24pID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgJ1YnOgorICAgIHsKKyAgICAgICAgUHlPYmplY3QgKm9iaiA9IHZhX2FyZygqdmFyZ3MsIFB5T2JqZWN0ICopOworICAgICAgICBjb25zdCBjaGFyICpzdHIgPSB2YV9hcmcoKnZhcmdzLCBjb25zdCBjaGFyICopOworICAgICAgICBpZiAob2JqKSB7CisgICAgICAgICAgICBhc3NlcnQoX1B5VW5pY29kZV9DSEVDSyhvYmopKTsKKyAgICAgICAgICAgIGlmICh1bmljb2RlX2Zyb21mb3JtYXRfd3JpdGVfc3RyKHdyaXRlciwgb2JqLCB3aWR0aCwgcHJlY2lzaW9uKSA9PSAtMSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydChzdHIgIT0gTlVMTCk7CisgICAgICAgICAgICBpZiAodW5pY29kZV9mcm9tZm9ybWF0X3dyaXRlX2NzdHIod3JpdGVyLCBzdHIsIHdpZHRoLCBwcmVjaXNpb24pIDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlICdTJzoKKyAgICB7CisgICAgICAgIFB5T2JqZWN0ICpvYmogPSB2YV9hcmcoKnZhcmdzLCBQeU9iamVjdCAqKTsKKyAgICAgICAgUHlPYmplY3QgKnN0cjsKKyAgICAgICAgYXNzZXJ0KG9iaik7CisgICAgICAgIHN0ciA9IFB5T2JqZWN0X1N0cihvYmopOworICAgICAgICBpZiAoIXN0cikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBpZiAodW5pY29kZV9mcm9tZm9ybWF0X3dyaXRlX3N0cih3cml0ZXIsIHN0ciwgd2lkdGgsIHByZWNpc2lvbikgPT0gLTEpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihzdHIpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgUHlfREVDUkVGKHN0cik7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgJ1InOgorICAgIHsKKyAgICAgICAgUHlPYmplY3QgKm9iaiA9IHZhX2FyZygqdmFyZ3MsIFB5T2JqZWN0ICopOworICAgICAgICBQeU9iamVjdCAqcmVwcjsKKyAgICAgICAgYXNzZXJ0KG9iaik7CisgICAgICAgIHJlcHIgPSBQeU9iamVjdF9SZXByKG9iaik7CisgICAgICAgIGlmICghcmVwcikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBpZiAodW5pY29kZV9mcm9tZm9ybWF0X3dyaXRlX3N0cih3cml0ZXIsIHJlcHIsIHdpZHRoLCBwcmVjaXNpb24pID09IC0xKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYocmVwcik7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBQeV9ERUNSRUYocmVwcik7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2UgJ0EnOgorICAgIHsKKyAgICAgICAgUHlPYmplY3QgKm9iaiA9IHZhX2FyZygqdmFyZ3MsIFB5T2JqZWN0ICopOworICAgICAgICBQeU9iamVjdCAqYXNjaWk7CisgICAgICAgIGFzc2VydChvYmopOworICAgICAgICBhc2NpaSA9IFB5T2JqZWN0X0FTQ0lJKG9iaik7CisgICAgICAgIGlmICghYXNjaWkpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgaWYgKHVuaWNvZGVfZnJvbWZvcm1hdF93cml0ZV9zdHIod3JpdGVyLCBhc2NpaSwgd2lkdGgsIHByZWNpc2lvbikgPT0gLTEpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihhc2NpaSk7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBQeV9ERUNSRUYoYXNjaWkpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlICclJzoKKyAgICAgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfV3JpdGVDaGFySW5saW5lKHdyaXRlciwgJyUnKSA8IDApCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICAvKiBpZiB3ZSBzdHVtYmxlIHVwb24gYW4gdW5rbm93biBmb3JtYXR0aW5nIGNvZGUsIGNvcHkgdGhlIHJlc3QKKyAgICAgICAgICAgb2YgdGhlIGZvcm1hdCBzdHJpbmcgdG8gdGhlIG91dHB1dCBzdHJpbmcuICh3ZSBjYW5ub3QganVzdAorICAgICAgICAgICBza2lwIHRoZSBjb2RlLCBzaW5jZSB0aGVyZSdzIG5vIHdheSB0byBrbm93IHdoYXQncyBpbiB0aGUKKyAgICAgICAgICAgYXJndW1lbnQgbGlzdCkgKi8KKyAgICAgICAgbGVuID0gc3RybGVuKHApOworICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9Xcml0ZUNzdHIod3JpdGVyLCBwLCBsZW4pID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGYgPSBwK2xlbjsKKyAgICAgICAgcmV0dXJuIGY7CisgICAgfQorCisgICAgZisrOwogICAgIHJldHVybiBmOwogfQogCi0vKiBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHJlcXVpcmVkIGZvciBvdXRwdXQgb2YgJWxkLiAgMjEgY2hhcmFjdGVycwotICAgYWxsb3dzIGZvciA2NC1iaXQgaW50ZWdlcnMgKGluIGRlY2ltYWwpIGFuZCBhbiBvcHRpb25hbCBzaWduLiAqLwotI2RlZmluZSBNQVhfTE9OR19DSEFSUyAyMQotLyogbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyByZXF1aXJlZCBmb3Igb3V0cHV0IG9mICVsbGQuCi0gICBXZSBuZWVkIGF0IG1vc3QgY2VpbChsb2cxMCgyNTYpKlNJWkVPRl9MT05HX0xPTkcpIGRpZ2l0cywKLSAgIHBsdXMgMSBmb3IgdGhlIHNpZ24uICA1My8yMiBpcyBhbiB1cHBlciBib3VuZCBmb3IgbG9nMTAoMjU2KS4gKi8KLSNkZWZpbmUgTUFYX0xPTkdfTE9OR19DSEFSUyAoMiArIChTSVpFT0ZfTE9OR19MT05HKjUzLTEpIC8gMjIpCi0KIFB5T2JqZWN0ICoKIFB5VW5pY29kZV9Gcm9tRm9ybWF0Vihjb25zdCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgdmFyZ3MpCiB7Ci0gICAgdmFfbGlzdCBjb3VudDsKLSAgICBQeV9zc2l6ZV90IGNhbGxjb3VudCA9IDA7Ci0gICAgUHlPYmplY3QgKipjYWxscmVzdWx0cyA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKipjYWxscmVzdWx0ID0gTlVMTDsKLSAgICBQeV9zc2l6ZV90IG4gPSAwOwotICAgIGludCB3aWR0aCA9IDA7Ci0gICAgaW50IHByZWNpc2lvbiA9IDA7Ci0gICAgaW50IHplcm9wYWQ7Ci0gICAgY29uc3QgY2hhciogZjsKLSAgICBQeU9iamVjdCAqc3RyaW5nOwotICAgIC8qIHVzZWQgYnkgc3ByaW50ZiAqLwotICAgIGNoYXIgZm10WzYxXTsgLyogc2hvdWxkIGJlIGVub3VnaCBmb3IgJTB3aWR0aC5wcmVjaXNpb25sbGQgKi8KLSAgICBQeV9VQ1M0IG1heGNoYXIgPSAxMjc7IC8qIHJlc3VsdCBpcyBBU0NJSSBieSBkZWZhdWx0ICovCi0gICAgUHlfVUNTNCBhcmdtYXhjaGFyOwotICAgIFB5X3NzaXplX3QgbnVtYmVyc2l6ZSA9IDA7Ci0gICAgY2hhciAqbnVtYmVycmVzdWx0cyA9IE5VTEw7Ci0gICAgY2hhciAqbnVtYmVycmVzdWx0ID0gTlVMTDsKLSAgICBQeV9zc2l6ZV90IGk7Ci0gICAgaW50IGtpbmQ7Ci0gICAgdm9pZCAqZGF0YTsKKyAgICB2YV9saXN0IHZhcmdzMjsKKyAgICBjb25zdCBjaGFyICpmOworICAgIF9QeVVuaWNvZGVXcml0ZXIgd3JpdGVyOwogCi0gICAgUHlfVkFfQ09QWShjb3VudCwgdmFyZ3MpOwotICAgIC8qIHN0ZXAgMTogY291bnQgdGhlIG51bWJlciBvZiAlUy8lUi8lQS8lcyBmb3JtYXQgc3BlY2lmaWNhdGlvbnMKLSAgICAgKiAod2UgY2FsbCBQeU9iamVjdF9TdHIoKS9QeU9iamVjdF9SZXByKCkvUHlPYmplY3RfQVNDSUkoKS8KLSAgICAgKiBQeVVuaWNvZGVfRGVjb2RlVVRGOCgpIGZvciB0aGVzZSBvYmplY3RzIG9uY2UgZHVyaW5nIHN0ZXAgMyBhbmQgcHV0IHRoZQotICAgICAqIHJlc3VsdCBpbiBhbiBhcnJheSkKLSAgICAgKiBhbHNvIGVzdGltYXRlIGEgdXBwZXIgYm91bmQgZm9yIGFsbCB0aGUgbnVtYmVyIGZvcm1hdHMgaW4gdGhlIHN0cmluZywKLSAgICAgKiBudW1iZXJzIHdpbGwgYmUgZm9ybWF0dGVkIGluIHN0ZXAgMyBhbmQgYmUga2VwdCBpbiBhICdcMCctc2VwYXJhdGVkCi0gICAgICogYnVmZmVyIGJlZm9yZSBwdXR0aW5nIGV2ZXJ5dGhpbmcgdG9nZXRoZXIuICovCi0gICAgZm9yIChmID0gZm9ybWF0OyAqZjsgZisrKSB7CisgICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIpOworICAgIHdyaXRlci5taW5fbGVuZ3RoID0gc3RybGVuKGZvcm1hdCkgKyAxMDA7CisgICAgd3JpdGVyLm92ZXJhbGxvY2F0ZSA9IDE7CisKKyAgICAvKiB2YV9saXN0IG1heSBiZSBhbiBhcnJheSAob2YgMSBpdGVtKSBvbiBzb21lIHBsYXRmb3JtcyAoZXg6IEFNRDY0KS4KKyAgICAgICBDb3B5IGl0IHRvIGJlIGFibGUgdG8gcGFzcyBhIHJlZmVyZW5jZSB0byBhIHN1YmZ1bmN0aW9uLiAqLworICAgIFB5X1ZBX0NPUFkodmFyZ3MyLCB2YXJncyk7CisKKyAgICBmb3IgKGYgPSBmb3JtYXQ7ICpmOyApIHsKICAgICAgICAgaWYgKCpmID09ICclJykgewotICAgICAgICAgICAgaW50IGxvbmdsb25nZmxhZzsKLSAgICAgICAgICAgIC8qIHNraXAgd2lkdGggb3Igd2lkdGgucHJlY2lzaW9uIChlZy4gIjEuMiIgb2YgIiUxLjJmIikgKi8KLSAgICAgICAgICAgIGYgPSBwYXJzZV9mb3JtYXRfZmxhZ3MoZiwgJndpZHRoLCBOVUxMLCBOVUxMLCAmbG9uZ2xvbmdmbGFnLCBOVUxMKTsKLSAgICAgICAgICAgIGlmICgqZiA9PSAncycgfHwgKmY9PSdTJyB8fCAqZj09J1InIHx8ICpmPT0nQScgfHwgKmY9PSdWJykKLSAgICAgICAgICAgICAgICArK2NhbGxjb3VudDsKLQotICAgICAgICAgICAgZWxzZSBpZiAoKmYgPT0gJ2QnIHx8ICpmPT0ndScgfHwgKmY9PSdpJyB8fCAqZj09J3gnIHx8ICpmPT0ncCcpIHsKLSNpZmRlZiBIQVZFX0xPTkdfTE9ORwotICAgICAgICAgICAgICAgIGlmIChsb25nbG9uZ2ZsYWcpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRoIDwgTUFYX0xPTkdfTE9OR19DSEFSUykKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gTUFYX0xPTkdfTE9OR19DSEFSUzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZQotI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgIC8qIE1BWF9MT05HX0NIQVJTIGlzIGVub3VnaCB0byBob2xkIGEgNjQtYml0IGludGVnZXIsCi0gICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBzaWduLiAgRGVjaW1hbCB0YWtlcyB0aGUgbW9zdCBzcGFjZS4gIFRoaXMKLSAgICAgICAgICAgICAgICAgICAgICAgaXNuJ3QgZW5vdWdoIGZvciBvY3RhbC4gIElmIGEgd2lkdGggaXMgc3BlY2lmaWVkIHdlCi0gICAgICAgICAgICAgICAgICAgICAgIG5lZWQgbW9yZSAod2hpY2ggd2UgYWxsb2NhdGUgbGF0ZXIpLiAqLwotICAgICAgICAgICAgICAgICAgICBpZiAod2lkdGggPCBNQVhfTE9OR19DSEFSUykKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gTUFYX0xPTkdfQ0hBUlM7Ci0KLSAgICAgICAgICAgICAgICAvKiBhY2NvdW50IGZvciB0aGUgc2l6ZSArICdcMCcgdG8gc2VwYXJhdGUgbnVtYmVycwotICAgICAgICAgICAgICAgICAgIGluc2lkZSBvZiB0aGUgbnVtYmVycmVzdWx0cyBidWZmZXIgKi8KLSAgICAgICAgICAgICAgICBudW1iZXJzaXplICs9ICh3aWR0aCArIDEpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKCh1bnNpZ25lZCBjaGFyKSpmID4gMTI3KSB7Ci0gICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAiUHlVbmljb2RlX0Zyb21Gb3JtYXRWKCkgZXhwZWN0cyBhbiBBU0NJSS1lbmNvZGVkIGZvcm1hdCAiCi0gICAgICAgICAgICAgICAgInN0cmluZywgZ290IGEgbm9uLUFTQ0lJIGJ5dGU6IDB4JTAyeCIsCi0gICAgICAgICAgICAgICAgKHVuc2lnbmVkIGNoYXIpKmYpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgLyogc3RlcCAyOiBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSByZXN1bHRzIG9mCi0gICAgICogUHlPYmplY3RfU3RyKCkvUHlPYmplY3RfUmVwcigpL1B5VW5pY29kZV9EZWNvZGVVVEY4KCkgY2FsbHMgKi8KLSAgICBpZiAoY2FsbGNvdW50KSB7Ci0gICAgICAgIGNhbGxyZXN1bHRzID0gUHlPYmplY3RfTWFsbG9jKHNpemVvZihQeU9iamVjdCAqKSAqIGNhbGxjb3VudCk7Ci0gICAgICAgIGlmICghY2FsbHJlc3VsdHMpIHsKLSAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBjYWxscmVzdWx0ID0gY2FsbHJlc3VsdHM7Ci0gICAgfQotICAgIC8qIHN0ZXAgMi41OiBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSByZXN1bHRzIG9mIGZvcm1hdGluZyBudW1iZXJzICovCi0gICAgaWYgKG51bWJlcnNpemUpIHsKLSAgICAgICAgbnVtYmVycmVzdWx0cyA9IFB5T2JqZWN0X01hbGxvYyhudW1iZXJzaXplKTsKLSAgICAgICAgaWYgKCFudW1iZXJyZXN1bHRzKSB7Ci0gICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICB9Ci0gICAgICAgIG51bWJlcnJlc3VsdCA9IG51bWJlcnJlc3VsdHM7Ci0gICAgfQotCi0gICAgLyogc3RlcCAzOiBmb3JtYXQgbnVtYmVycyBhbmQgZmlndXJlIG91dCBob3cgbGFyZ2UgYSBidWZmZXIgd2UgbmVlZCAqLwotICAgIGZvciAoZiA9IGZvcm1hdDsgKmY7IGYrKykgewotICAgICAgICBpZiAoKmYgPT0gJyUnKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBwOwotICAgICAgICAgICAgaW50IGxvbmdmbGFnOwotICAgICAgICAgICAgaW50IGxvbmdsb25nZmxhZzsKLSAgICAgICAgICAgIGludCBzaXplX3RmbGFnOwotICAgICAgICAgICAgaW50IG51bXByaW50ZWQ7Ci0KLSAgICAgICAgICAgIHAgPSBmOwotICAgICAgICAgICAgemVyb3BhZCA9IChmWzFdID09ICcwJyk7Ci0gICAgICAgICAgICBmID0gcGFyc2VfZm9ybWF0X2ZsYWdzKGYsICZ3aWR0aCwgJnByZWNpc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmxvbmdmbGFnLCAmbG9uZ2xvbmdmbGFnLCAmc2l6ZV90ZmxhZyk7Ci0gICAgICAgICAgICBzd2l0Y2ggKCpmKSB7Ci0gICAgICAgICAgICBjYXNlICdjJzoKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBQeV9VQ1M0IG9yZGluYWwgPSB2YV9hcmcoY291bnQsIGludCk7Ci0gICAgICAgICAgICAgICAgbWF4Y2hhciA9IE1BWF9NQVhDSEFSKG1heGNoYXIsIG9yZGluYWwpOwotICAgICAgICAgICAgICAgIG4rKzsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgJyUnOgotICAgICAgICAgICAgICAgIG4rKzsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ2knOgotICAgICAgICAgICAgY2FzZSAnZCc6Ci0gICAgICAgICAgICAgICAgbWFrZWZtdChmbXQsIGxvbmdmbGFnLCBsb25nbG9uZ2ZsYWcsIHNpemVfdGZsYWcsIHplcm9wYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCwgcHJlY2lzaW9uLCAqZik7Ci0gICAgICAgICAgICAgICAgaWYgKGxvbmdmbGFnKQotICAgICAgICAgICAgICAgICAgICBudW1wcmludGVkID0gc3ByaW50ZihudW1iZXJyZXN1bHQsIGZtdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFfYXJnKGNvdW50LCBsb25nKSk7Ci0jaWZkZWYgSEFWRV9MT05HX0xPTkcKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChsb25nbG9uZ2ZsYWcpCi0gICAgICAgICAgICAgICAgICAgIG51bXByaW50ZWQgPSBzcHJpbnRmKG51bWJlcnJlc3VsdCwgZm10LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9hcmcoY291bnQsIFBZX0xPTkdfTE9ORykpOwotI2VuZGlmCi0gICAgICAgICAgICAgICAgZWxzZSBpZiAoc2l6ZV90ZmxhZykKLSAgICAgICAgICAgICAgICAgICAgbnVtcHJpbnRlZCA9IHNwcmludGYobnVtYmVycmVzdWx0LCBmbXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2FyZyhjb3VudCwgUHlfc3NpemVfdCkpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgbnVtcHJpbnRlZCA9IHNwcmludGYobnVtYmVycmVzdWx0LCBmbXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2FyZyhjb3VudCwgaW50KSk7Ci0gICAgICAgICAgICAgICAgbiArPSBudW1wcmludGVkOwotICAgICAgICAgICAgICAgIC8qIGFkdmFuY2UgYnkgKzEgdG8gc2tpcCBvdmVyIHRoZSAnXDAnICovCi0gICAgICAgICAgICAgICAgbnVtYmVycmVzdWx0ICs9IChudW1wcmludGVkICsgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KCoobnVtYmVycmVzdWx0IC0gMSkgPT0gJ1wwJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KCoobnVtYmVycmVzdWx0IC0gMikgIT0gJ1wwJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KG51bXByaW50ZWQgPj0gMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KG51bWJlcnJlc3VsdCA8PSBudW1iZXJyZXN1bHRzICsgbnVtYmVyc2l6ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICd1JzoKLSAgICAgICAgICAgICAgICBtYWtlZm10KGZtdCwgbG9uZ2ZsYWcsIGxvbmdsb25nZmxhZywgc2l6ZV90ZmxhZywgemVyb3BhZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLCBwcmVjaXNpb24sICd1Jyk7Ci0gICAgICAgICAgICAgICAgaWYgKGxvbmdmbGFnKQotICAgICAgICAgICAgICAgICAgICBudW1wcmludGVkID0gc3ByaW50ZihudW1iZXJyZXN1bHQsIGZtdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFfYXJnKGNvdW50LCB1bnNpZ25lZCBsb25nKSk7Ci0jaWZkZWYgSEFWRV9MT05HX0xPTkcKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChsb25nbG9uZ2ZsYWcpCi0gICAgICAgICAgICAgICAgICAgIG51bXByaW50ZWQgPSBzcHJpbnRmKG51bWJlcnJlc3VsdCwgZm10LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9hcmcoY291bnQsIHVuc2lnbmVkIFBZX0xPTkdfTE9ORykpOwotI2VuZGlmCi0gICAgICAgICAgICAgICAgZWxzZSBpZiAoc2l6ZV90ZmxhZykKLSAgICAgICAgICAgICAgICAgICAgbnVtcHJpbnRlZCA9IHNwcmludGYobnVtYmVycmVzdWx0LCBmbXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2FyZyhjb3VudCwgc2l6ZV90KSk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBudW1wcmludGVkID0gc3ByaW50ZihudW1iZXJyZXN1bHQsIGZtdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFfYXJnKGNvdW50LCB1bnNpZ25lZCBpbnQpKTsKLSAgICAgICAgICAgICAgICBuICs9IG51bXByaW50ZWQ7Ci0gICAgICAgICAgICAgICAgbnVtYmVycmVzdWx0ICs9IChudW1wcmludGVkICsgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KCoobnVtYmVycmVzdWx0IC0gMSkgPT0gJ1wwJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KCoobnVtYmVycmVzdWx0IC0gMikgIT0gJ1wwJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KG51bXByaW50ZWQgPj0gMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KG51bWJlcnJlc3VsdCA8PSBudW1iZXJyZXN1bHRzICsgbnVtYmVyc2l6ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICd4JzoKLSAgICAgICAgICAgICAgICBtYWtlZm10KGZtdCwgMCwgMCwgMCwgemVyb3BhZCwgd2lkdGgsIHByZWNpc2lvbiwgJ3gnKTsKLSAgICAgICAgICAgICAgICBudW1wcmludGVkID0gc3ByaW50ZihudW1iZXJyZXN1bHQsIGZtdCwgdmFfYXJnKGNvdW50LCBpbnQpKTsKLSAgICAgICAgICAgICAgICBuICs9IG51bXByaW50ZWQ7Ci0gICAgICAgICAgICAgICAgbnVtYmVycmVzdWx0ICs9IChudW1wcmludGVkICsgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KCoobnVtYmVycmVzdWx0IC0gMSkgPT0gJ1wwJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KCoobnVtYmVycmVzdWx0IC0gMikgIT0gJ1wwJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KG51bXByaW50ZWQgPj0gMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KG51bWJlcnJlc3VsdCA8PSBudW1iZXJyZXN1bHRzICsgbnVtYmVyc2l6ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdwJzoKLSAgICAgICAgICAgICAgICBudW1wcmludGVkID0gc3ByaW50ZihudW1iZXJyZXN1bHQsICIlcCIsIHZhX2FyZyhjb3VudCwgdm9pZCopKTsKLSAgICAgICAgICAgICAgICAvKiAlcCBpcyBpbGwtZGVmaW5lZDogIGVuc3VyZSBsZWFkaW5nIDB4LiAqLwotICAgICAgICAgICAgICAgIGlmIChudW1iZXJyZXN1bHRbMV0gPT0gJ1gnKQotICAgICAgICAgICAgICAgICAgICBudW1iZXJyZXN1bHRbMV0gPSAneCc7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAobnVtYmVycmVzdWx0WzFdICE9ICd4JykgewotICAgICAgICAgICAgICAgICAgICBtZW1tb3ZlKG51bWJlcnJlc3VsdCArIDIsIG51bWJlcnJlc3VsdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4obnVtYmVycmVzdWx0KSArIDEpOwotICAgICAgICAgICAgICAgICAgICBudW1iZXJyZXN1bHRbMF0gPSAnMCc7Ci0gICAgICAgICAgICAgICAgICAgIG51bWJlcnJlc3VsdFsxXSA9ICd4JzsKLSAgICAgICAgICAgICAgICAgICAgbnVtcHJpbnRlZCArPSAyOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBuICs9IG51bXByaW50ZWQ7Ci0gICAgICAgICAgICAgICAgbnVtYmVycmVzdWx0ICs9IChudW1wcmludGVkICsgMSk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KCoobnVtYmVycmVzdWx0IC0gMSkgPT0gJ1wwJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KCoobnVtYmVycmVzdWx0IC0gMikgIT0gJ1wwJyk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KG51bXByaW50ZWQgPj0gMCk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KG51bWJlcnJlc3VsdCA8PSBudW1iZXJyZXN1bHRzICsgbnVtYmVyc2l6ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdzJzoKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAvKiBVVEYtOCAqLwotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnMgPSB2YV9hcmcoY291bnQsIGNvbnN0IGNoYXIqKTsKLSAgICAgICAgICAgICAgICBQeU9iamVjdCAqc3RyID0gUHlVbmljb2RlX0RlY29kZVVURjhTdGF0ZWZ1bChzLCBzdHJsZW4ocyksICJyZXBsYWNlIiwgTlVMTCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFzdHIpCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgICAgICAvKiBzaW5jZSBQeVVuaWNvZGVfRGVjb2RlVVRGOCByZXR1cm5zIGFscmVhZHkgZmxleGlibGUKLSAgICAgICAgICAgICAgICAgICB1bmljb2RlIG9iamVjdHMsIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbCByZWFkeSBvbiB0aGVtICovCi0gICAgICAgICAgICAgICAgYXJnbWF4Y2hhciA9IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShzdHIpOwotICAgICAgICAgICAgICAgIG1heGNoYXIgPSBNQVhfTUFYQ0hBUihtYXhjaGFyLCBhcmdtYXhjaGFyKTsKLSAgICAgICAgICAgICAgICBuICs9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cik7Ci0gICAgICAgICAgICAgICAgLyogUmVtZW1iZXIgdGhlIHN0ciBhbmQgc3dpdGNoIHRvIHRoZSBuZXh0IHNsb3QgKi8KLSAgICAgICAgICAgICAgICAqY2FsbHJlc3VsdCsrID0gc3RyOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnVSc6Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgUHlPYmplY3QgKm9iaiA9IHZhX2FyZyhjb3VudCwgUHlPYmplY3QgKik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KG9iaiAmJiBfUHlVbmljb2RlX0NIRUNLKG9iaikpOwotICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkob2JqKSA9PSAtMSkKLSAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICAgICAgICAgIGFyZ21heGNoYXIgPSBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUob2JqKTsKLSAgICAgICAgICAgICAgICBtYXhjaGFyID0gTUFYX01BWENIQVIobWF4Y2hhciwgYXJnbWF4Y2hhcik7Ci0gICAgICAgICAgICAgICAgbiArPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChvYmopOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnVic6Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgUHlPYmplY3QgKm9iaiA9IHZhX2FyZyhjb3VudCwgUHlPYmplY3QgKik7Ci0gICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3RyID0gdmFfYXJnKGNvdW50LCBjb25zdCBjaGFyICopOwotICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpzdHJfb2JqOwotICAgICAgICAgICAgICAgIGFzc2VydChvYmogfHwgc3RyKTsKLSAgICAgICAgICAgICAgICBhc3NlcnQoIW9iaiB8fCBfUHlVbmljb2RlX0NIRUNLKG9iaikpOwotICAgICAgICAgICAgICAgIGlmIChvYmopIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShvYmopID09IC0xKQotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICAgICAgICAgICAgICBhcmdtYXhjaGFyID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKG9iaik7Ci0gICAgICAgICAgICAgICAgICAgIG1heGNoYXIgPSBNQVhfTUFYQ0hBUihtYXhjaGFyLCBhcmdtYXhjaGFyKTsKLSAgICAgICAgICAgICAgICAgICAgbiArPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChvYmopOwotICAgICAgICAgICAgICAgICAgICAqY2FsbHJlc3VsdCsrID0gTlVMTDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHN0cl9vYmogPSBQeVVuaWNvZGVfRGVjb2RlVVRGOFN0YXRlZnVsKHN0ciwgc3RybGVuKHN0ciksICJyZXBsYWNlIiwgTlVMTCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghc3RyX29iaikKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzdHJfb2JqKSA9PSAtMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHN0cl9vYmopOwotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGFyZ21heGNoYXIgPSBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUoc3RyX29iaik7Ci0gICAgICAgICAgICAgICAgICAgIG1heGNoYXIgPSBNQVhfTUFYQ0hBUihtYXhjaGFyLCBhcmdtYXhjaGFyKTsKLSAgICAgICAgICAgICAgICAgICAgbiArPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHJfb2JqKTsKLSAgICAgICAgICAgICAgICAgICAgKmNhbGxyZXN1bHQrKyA9IHN0cl9vYmo7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnUyc6Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgUHlPYmplY3QgKm9iaiA9IHZhX2FyZyhjb3VudCwgUHlPYmplY3QgKik7Ci0gICAgICAgICAgICAgICAgUHlPYmplY3QgKnN0cjsKLSAgICAgICAgICAgICAgICBhc3NlcnQob2JqKTsKLSAgICAgICAgICAgICAgICBzdHIgPSBQeU9iamVjdF9TdHIob2JqKTsKLSAgICAgICAgICAgICAgICBpZiAoIXN0cikKLSAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc3RyKSA9PSAtMSkgewotICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoc3RyKTsKLSAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBhcmdtYXhjaGFyID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHN0cik7Ci0gICAgICAgICAgICAgICAgbWF4Y2hhciA9IE1BWF9NQVhDSEFSKG1heGNoYXIsIGFyZ21heGNoYXIpOwotICAgICAgICAgICAgICAgIG4gKz0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKTsKLSAgICAgICAgICAgICAgICAvKiBSZW1lbWJlciB0aGUgc3RyIGFuZCBzd2l0Y2ggdG8gdGhlIG5leHQgc2xvdCAqLwotICAgICAgICAgICAgICAgICpjYWxscmVzdWx0KysgPSBzdHI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlICdSJzoKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBQeU9iamVjdCAqb2JqID0gdmFfYXJnKGNvdW50LCBQeU9iamVjdCAqKTsKLSAgICAgICAgICAgICAgICBQeU9iamVjdCAqcmVwcjsKLSAgICAgICAgICAgICAgICBhc3NlcnQob2JqKTsKLSAgICAgICAgICAgICAgICByZXByID0gUHlPYmplY3RfUmVwcihvYmopOwotICAgICAgICAgICAgICAgIGlmICghcmVwcikKLSAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkocmVwcikgPT0gLTEpIHsKLSAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHJlcHIpOwotICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGFyZ21heGNoYXIgPSBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUocmVwcik7Ci0gICAgICAgICAgICAgICAgbWF4Y2hhciA9IE1BWF9NQVhDSEFSKG1heGNoYXIsIGFyZ21heGNoYXIpOwotICAgICAgICAgICAgICAgIG4gKz0gUHlVbmljb2RlX0dFVF9MRU5HVEgocmVwcik7Ci0gICAgICAgICAgICAgICAgLyogUmVtZW1iZXIgdGhlIHJlcHIgYW5kIHN3aXRjaCB0byB0aGUgbmV4dCBzbG90ICovCi0gICAgICAgICAgICAgICAgKmNhbGxyZXN1bHQrKyA9IHJlcHI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlICdBJzoKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBQeU9iamVjdCAqb2JqID0gdmFfYXJnKGNvdW50LCBQeU9iamVjdCAqKTsKLSAgICAgICAgICAgICAgICBQeU9iamVjdCAqYXNjaWk7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KG9iaik7Ci0gICAgICAgICAgICAgICAgYXNjaWkgPSBQeU9iamVjdF9BU0NJSShvYmopOwotICAgICAgICAgICAgICAgIGlmICghYXNjaWkpCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKGFzY2lpKSA9PSAtMSkgewotICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoYXNjaWkpOwotICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGFyZ21heGNoYXIgPSBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUoYXNjaWkpOwotICAgICAgICAgICAgICAgIG1heGNoYXIgPSBNQVhfTUFYQ0hBUihtYXhjaGFyLCBhcmdtYXhjaGFyKTsKLSAgICAgICAgICAgICAgICBuICs9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGFzY2lpKTsKLSAgICAgICAgICAgICAgICAvKiBSZW1lbWJlciB0aGUgcmVwciBhbmQgc3dpdGNoIHRvIHRoZSBuZXh0IHNsb3QgKi8KLSAgICAgICAgICAgICAgICAqY2FsbHJlc3VsdCsrID0gYXNjaWk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIC8qIGlmIHdlIHN0dW1ibGUgdXBvbiBhbiB1bmtub3duCi0gICAgICAgICAgICAgICAgICAgZm9ybWF0dGluZyBjb2RlLCBjb3B5IHRoZSByZXN0IG9mCi0gICAgICAgICAgICAgICAgICAgdGhlIGZvcm1hdCBzdHJpbmcgdG8gdGhlIG91dHB1dAotICAgICAgICAgICAgICAgICAgIHN0cmluZy4gKHdlIGNhbm5vdCBqdXN0IHNraXAgdGhlCi0gICAgICAgICAgICAgICAgICAgY29kZSwgc2luY2UgdGhlcmUncyBubyB3YXkgdG8ga25vdwotICAgICAgICAgICAgICAgICAgIHdoYXQncyBpbiB0aGUgYXJndW1lbnQgbGlzdCkgKi8KLSAgICAgICAgICAgICAgICBuICs9IHN0cmxlbihwKTsKLSAgICAgICAgICAgICAgICBnb3RvIGV4cGFuZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBuKys7Ci0gICAgfQotICBleHBhbmQ6Ci0gICAgLyogc3RlcCA0OiBmaWxsIHRoZSBidWZmZXIgKi8KLSAgICAvKiBTaW5jZSB3ZSd2ZSBhbmFseXplZCBob3cgbXVjaCBzcGFjZSB3ZSBuZWVkLAotICAgICAgIHdlIGRvbid0IGhhdmUgdG8gcmVzaXplIHRoZSBzdHJpbmcuCi0gICAgICAgVGhlcmUgY2FuIGJlIG5vIGVycm9ycyBiZXlvbmQgdGhpcyBwb2ludC4gKi8KLSAgICBzdHJpbmcgPSBQeVVuaWNvZGVfTmV3KG4sIG1heGNoYXIpOwotICAgIGlmICghc3RyaW5nKQotICAgICAgICBnb3RvIGZhaWw7Ci0gICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHN0cmluZyk7Ci0gICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHN0cmluZyk7Ci0gICAgY2FsbHJlc3VsdCA9IGNhbGxyZXN1bHRzOwotICAgIG51bWJlcnJlc3VsdCA9IG51bWJlcnJlc3VsdHM7Ci0KLSAgICBmb3IgKGkgPSAwLCBmID0gZm9ybWF0OyAqZjsgZisrKSB7Ci0gICAgICAgIGlmICgqZiA9PSAnJScpIHsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIqIHA7Ci0KLSAgICAgICAgICAgIHAgPSBmOwotICAgICAgICAgICAgZiA9IHBhcnNlX2Zvcm1hdF9mbGFncyhmLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsKLSAgICAgICAgICAgIC8qIGNoZWNraW5nIGZvciA9PSBiZWNhdXNlIHRoZSBsYXN0IGFyZ3VtZW50IGNvdWxkIGJlIGEgZW1wdHkKLSAgICAgICAgICAgICAgIHN0cmluZywgd2hpY2ggY2F1c2VzIGkgdG8gcG9pbnQgdG8gZW5kLCB0aGUgYXNzZXJ0IGF0IHRoZSBlbmQgb2YKLSAgICAgICAgICAgICAgIHRoZSBsb29wICovCi0gICAgICAgICAgICBhc3NlcnQoaSA8PSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHJpbmcpKTsKLQotICAgICAgICAgICAgc3dpdGNoICgqZikgewotICAgICAgICAgICAgY2FzZSAnYyc6Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY29uc3QgaW50IG9yZGluYWwgPSB2YV9hcmcodmFyZ3MsIGludCk7Ci0gICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKGtpbmQsIGRhdGEsIGkrKywgb3JkaW5hbCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlICdpJzoKLSAgICAgICAgICAgIGNhc2UgJ2QnOgotICAgICAgICAgICAgY2FzZSAndSc6Ci0gICAgICAgICAgICBjYXNlICd4JzoKLSAgICAgICAgICAgIGNhc2UgJ3AnOgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOwotICAgICAgICAgICAgICAgIC8qIHVudXNlZCwgc2luY2Ugd2UgYWxyZWFkeSBoYXZlIHRoZSByZXN1bHQgKi8KLSAgICAgICAgICAgICAgICBpZiAoKmYgPT0gJ3AnKQotICAgICAgICAgICAgICAgICAgICAodm9pZCkgdmFfYXJnKHZhcmdzLCB2b2lkICopOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgKHZvaWQpIHZhX2FyZyh2YXJncywgaW50KTsKLSAgICAgICAgICAgICAgICAvKiBleHRyYWN0IHRoZSByZXN1bHQgZnJvbSBudW1iZXJyZXN1bHRzIGFuZCBhcHBlbmQuICovCi0gICAgICAgICAgICAgICAgbGVuID0gc3RybGVuKG51bWJlcnJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgdW5pY29kZV93cml0ZV9jc3RyKHN0cmluZywgaSwgbnVtYmVycmVzdWx0LCBsZW4pOwotICAgICAgICAgICAgICAgIC8qIHNraXAgb3ZlciB0aGUgc2VwYXJhdGluZyAnXDAnICovCi0gICAgICAgICAgICAgICAgaSArPSBsZW47Ci0gICAgICAgICAgICAgICAgbnVtYmVycmVzdWx0ICs9IGxlbjsKLSAgICAgICAgICAgICAgICBhc3NlcnQoKm51bWJlcnJlc3VsdCA9PSAnXDAnKTsKLSAgICAgICAgICAgICAgICBudW1iZXJyZXN1bHQrKzsKLSAgICAgICAgICAgICAgICBhc3NlcnQobnVtYmVycmVzdWx0IDw9IG51bWJlcnJlc3VsdHMgKyBudW1iZXJzaXplKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgJ3MnOgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIC8qIHVudXNlZCwgc2luY2Ugd2UgYWxyZWFkeSBoYXZlIHRoZSByZXN1bHQgKi8KLSAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemU7Ci0gICAgICAgICAgICAgICAgKHZvaWQpIHZhX2FyZyh2YXJncywgY2hhciAqKTsKLSAgICAgICAgICAgICAgICBzaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoKmNhbGxyZXN1bHQpOwotICAgICAgICAgICAgICAgIGFzc2VydChQeVVuaWNvZGVfS0lORCgqY2FsbHJlc3VsdCkgPD0gUHlVbmljb2RlX0tJTkQoc3RyaW5nKSk7Ci0gICAgICAgICAgICAgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMoc3RyaW5nLCBpLCAqY2FsbHJlc3VsdCwgMCwgc2l6ZSk7Ci0gICAgICAgICAgICAgICAgaSArPSBzaXplOwotICAgICAgICAgICAgICAgIC8qIFdlJ3JlIGRvbmUgd2l0aCB0aGUgdW5pY29kZSgpL3JlcHIoKSA9PiBmb3JnZXQgaXQgKi8KLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYoKmNhbGxyZXN1bHQpOwotICAgICAgICAgICAgICAgIC8qIHN3aXRjaCB0byBuZXh0IHVuaWNvZGUoKS9yZXByKCkgcmVzdWx0ICovCi0gICAgICAgICAgICAgICAgKytjYWxscmVzdWx0OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnVSc6Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgUHlPYmplY3QgKm9iaiA9IHZhX2FyZyh2YXJncywgUHlPYmplY3QgKik7Ci0gICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplOwotICAgICAgICAgICAgICAgIGFzc2VydChQeVVuaWNvZGVfS0lORChvYmopIDw9IFB5VW5pY29kZV9LSU5EKHN0cmluZykpOwotICAgICAgICAgICAgICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChvYmopOwotICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKHN0cmluZywgaSwgb2JqLCAwLCBzaXplKTsKLSAgICAgICAgICAgICAgICBpICs9IHNpemU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlICdWJzoKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemU7Ci0gICAgICAgICAgICAgICAgUHlPYmplY3QgKm9iaiA9IHZhX2FyZyh2YXJncywgUHlPYmplY3QgKik7Ci0gICAgICAgICAgICAgICAgdmFfYXJnKHZhcmdzLCBjb25zdCBjaGFyICopOwotICAgICAgICAgICAgICAgIGlmIChvYmopIHsKLSAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKG9iaik7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydChQeVVuaWNvZGVfS0lORChvYmopIDw9IFB5VW5pY29kZV9LSU5EKHN0cmluZykpOwotICAgICAgICAgICAgICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyhzdHJpbmcsIGksIG9iaiwgMCwgc2l6ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGkgKz0gc2l6ZTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBzaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoKmNhbGxyZXN1bHQpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQoUHlVbmljb2RlX0tJTkQoKmNhbGxyZXN1bHQpIDw9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfS0lORChzdHJpbmcpKTsKLSAgICAgICAgICAgICAgICAgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMoc3RyaW5nLCBpLCAqY2FsbHJlc3VsdCwgMCwgc2l6ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGkgKz0gc2l6ZTsKLSAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKCpjYWxscmVzdWx0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgKytjYWxscmVzdWx0OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnUyc6Ci0gICAgICAgICAgICBjYXNlICdSJzoKLSAgICAgICAgICAgIGNhc2UgJ0EnOgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKCpjYWxscmVzdWx0KTsKLSAgICAgICAgICAgICAgICAvKiB1bnVzZWQsIHNpbmNlIHdlIGFscmVhZHkgaGF2ZSB0aGUgcmVzdWx0ICovCi0gICAgICAgICAgICAgICAgKHZvaWQpIHZhX2FyZyh2YXJncywgUHlPYmplY3QgKik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KFB5VW5pY29kZV9LSU5EKCpjYWxscmVzdWx0KSA8PSBQeVVuaWNvZGVfS0lORChzdHJpbmcpKTsKLSAgICAgICAgICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyhzdHJpbmcsIGksICpjYWxscmVzdWx0LCAwLCAgc2l6ZSk7Ci0gICAgICAgICAgICAgICAgaSArPSBzaXplOwotICAgICAgICAgICAgICAgIC8qIFdlJ3JlIGRvbmUgd2l0aCB0aGUgdW5pY29kZSgpL3JlcHIoKSA9PiBmb3JnZXQgaXQgKi8KLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYoKmNhbGxyZXN1bHQpOwotICAgICAgICAgICAgICAgIC8qIHN3aXRjaCB0byBuZXh0IHVuaWNvZGUoKS9yZXByKCkgcmVzdWx0ICovCi0gICAgICAgICAgICAgICAgKytjYWxscmVzdWx0OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnJSc6Ci0gICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKGtpbmQsIGRhdGEsIGkrKywgJyUnKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW4gPSBzdHJsZW4ocCk7Ci0gICAgICAgICAgICAgICAgdW5pY29kZV93cml0ZV9jc3RyKHN0cmluZywgaSwgcCwgbGVuKTsKLSAgICAgICAgICAgICAgICBpICs9IGxlbjsKLSAgICAgICAgICAgICAgICBhc3NlcnQoaSA9PSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHJpbmcpKTsKLSAgICAgICAgICAgICAgICBnb3RvIGVuZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGYgPSB1bmljb2RlX2Zyb21mb3JtYXRfYXJnKCZ3cml0ZXIsIGYsICZ2YXJnczIpOworICAgICAgICAgICAgaWYgKGYgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhc3NlcnQoaSA8IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cmluZykpOwotICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKGtpbmQsIGRhdGEsIGkrKywgKmYpOwotICAgICAgICB9Ci0gICAgfQotICAgIGFzc2VydChpID09IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cmluZykpOworICAgICAgICAgICAgY29uc3QgY2hhciAqcDsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOwogCi0gIGVuZDoKLSAgICBpZiAoY2FsbHJlc3VsdHMpCi0gICAgICAgIFB5T2JqZWN0X0ZyZWUoY2FsbHJlc3VsdHMpOwotICAgIGlmIChudW1iZXJyZXN1bHRzKQotICAgICAgICBQeU9iamVjdF9GcmVlKG51bWJlcnJlc3VsdHMpOwotICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdChzdHJpbmcpOwotICBmYWlsOgotICAgIGlmIChjYWxscmVzdWx0cykgewotICAgICAgICBQeU9iamVjdCAqKmNhbGxyZXN1bHQyID0gY2FsbHJlc3VsdHM7Ci0gICAgICAgIHdoaWxlIChjYWxscmVzdWx0MiA8IGNhbGxyZXN1bHQpIHsKLSAgICAgICAgICAgIFB5X1hERUNSRUYoKmNhbGxyZXN1bHQyKTsKLSAgICAgICAgICAgICsrY2FsbHJlc3VsdDI7CisgICAgICAgICAgICBwID0gZjsKKyAgICAgICAgICAgIGRvCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKCh1bnNpZ25lZCBjaGFyKSpwID4gMTI3KSB7CisgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIlB5VW5pY29kZV9Gcm9tRm9ybWF0VigpIGV4cGVjdHMgYW4gQVNDSUktZW5jb2RlZCBmb3JtYXQgIgorICAgICAgICAgICAgICAgICAgICAgICAgInN0cmluZywgZ290IGEgbm9uLUFTQ0lJIGJ5dGU6IDB4JTAyeCIsCisgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgY2hhcikqcCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwKys7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAoKnAgIT0gJ1wwJyAmJiAqcCAhPSAnJScpOworICAgICAgICAgICAgbGVuID0gcCAtIGY7CisKKyAgICAgICAgICAgIGlmICgqcCA9PSAnXDAnKQorICAgICAgICAgICAgICAgIHdyaXRlci5vdmVyYWxsb2NhdGUgPSAwOworICAgICAgICAgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZSgmd3JpdGVyLCBsZW4sIDEyNykgPT0gLTEpCisgICAgICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICAgICAgdW5pY29kZV93cml0ZV9jc3RyKHdyaXRlci5idWZmZXIsIHdyaXRlci5wb3MsIGYsIGxlbik7CisgICAgICAgICAgICB3cml0ZXIucG9zICs9IGxlbjsKKworICAgICAgICAgICAgZiA9IHA7CiAgICAgICAgIH0KLSAgICAgICAgUHlPYmplY3RfRnJlZShjYWxscmVzdWx0cyk7CiAgICAgfQotICAgIGlmIChudW1iZXJyZXN1bHRzKQotICAgICAgICBQeU9iamVjdF9GcmVlKG51bWJlcnJlc3VsdHMpOworICAgIHJldHVybiBfUHlVbmljb2RlV3JpdGVyX0ZpbmlzaCgmd3JpdGVyKTsKKworICBmYWlsOgorICAgIF9QeVVuaWNvZGVXcml0ZXJfRGVhbGxvYygmd3JpdGVyKTsKICAgICByZXR1cm4gTlVMTDsKIH0KIApAQCAtMjk2OCw2ICsyODgyLDkgQEAKIFB5VW5pY29kZV9Gcm9tT3JkaW5hbChpbnQgb3JkaW5hbCkKIHsKICAgICBQeU9iamVjdCAqdjsKKyAgICB2b2lkICpkYXRhOworICAgIGludCBraW5kOworCiAgICAgaWYgKG9yZGluYWwgPCAwIHx8IG9yZGluYWwgPiBNQVhfVU5JQ09ERSkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJjaHIoKSBhcmcgbm90IGluIHJhbmdlKDB4MTEwMDAwKSIpOwpAQCAtMjk4MCw3ICsyODk3LDkgQEAKICAgICB2ID0gUHlVbmljb2RlX05ldygxLCBvcmRpbmFsKTsKICAgICBpZiAodiA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBQeVVuaWNvZGVfV1JJVEUoUHlVbmljb2RlX0tJTkQodiksIFB5VW5pY29kZV9EQVRBKHYpLCAwLCBvcmRpbmFsKTsKKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQodik7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHYpOworICAgIFB5VW5pY29kZV9XUklURShraW5kLCBkYXRhLCAwLCBvcmRpbmFsKTsKICAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHYsIDEpKTsKICAgICByZXR1cm4gdjsKIH0KQEAgLTMwNjAsOCArMjk3OSw4IEBACiAgICAxIG9uIHN1Y2Nlc3MuICovCiBpbnQKIF9QeV9ub3JtYWxpemVfZW5jb2RpbmcoY29uc3QgY2hhciAqZW5jb2RpbmcsCi0gICAgICAgICAgICAgICAgICAgY2hhciAqbG93ZXIsCi0gICAgICAgICAgICAgICAgICAgc2l6ZV90IGxvd2VyX2xlbikKKyAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqbG93ZXIsCisgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsb3dlcl9sZW4pCiB7CiAgICAgY29uc3QgY2hhciAqZTsKICAgICBjaGFyICpsOwpAQCAtMzM0Myw3ICszMjYyLDcgQEAKICAgICB9CiAKICAgICBpZiAoc3Vycm9nYXRlZXNjYXBlKSB7Ci0gICAgICAgIC8qIGxvY2FsZSBlbmNvZGluZyB3aXRoIHN1cnJvZ2F0ZWVzY2FwZSAqLworICAgICAgICAvKiAic3Vycm9nYXRlZXNjYXBlIiBlcnJvciBoYW5kbGVyICovCiAgICAgICAgIGNoYXIgKnN0cjsKIAogICAgICAgICBzdHIgPSBfUHlfd2NoYXIyY2hhcih3c3RyLCAmZXJyb3JfcG9zKTsKQEAgLTMzNjMsNiArMzI4Miw3IEBACiAgICAgICAgIFB5TWVtX0ZyZWUoc3RyKTsKICAgICB9CiAgICAgZWxzZSB7CisgICAgICAgIC8qIHN0cmljdCBtb2RlICovCiAgICAgICAgIHNpemVfdCBsZW4sIGxlbjI7CiAKICAgICAgICAgbGVuID0gd2NzdG9tYnMoTlVMTCwgd3N0ciwgMCk7CkBAIC0zNjA4LDggKzM1MjgsOCBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBpZiAoc3Vycm9nYXRlZXNjYXBlKQotICAgIHsKKyAgICBpZiAoc3Vycm9nYXRlZXNjYXBlKSB7CisgICAgICAgIC8qICJzdXJyb2dhdGVlc2NhcGUiIGVycm9yIGhhbmRsZXIgKi8KICAgICAgICAgd3N0ciA9IF9QeV9jaGFyMndjaGFyKHN0ciwgJndsZW4pOwogICAgICAgICBpZiAod3N0ciA9PSBOVUxMKSB7CiAgICAgICAgICAgICBpZiAod2xlbiA9PSAoc2l6ZV90KS0xKQpAQCAtMzYyMyw2ICszNTQzLDcgQEAKICAgICAgICAgUHlNZW1fRnJlZSh3c3RyKTsKICAgICB9CiAgICAgZWxzZSB7CisgICAgICAgIC8qIHN0cmljdCBtb2RlICovCiAjaWZuZGVmIEhBVkVfQlJPS0VOX01CU1RPV0NTCiAgICAgICAgIHdsZW4gPSBtYnN0b3djcyhOVUxMLCBzdHIsIDApOwogI2Vsc2UKQEAgLTM2NDIsNyArMzU2Myw2IEBACiAgICAgICAgICAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgIH0KIAotICAgICAgICAvKiBUaGlzIHNob3VsZG4ndCBmYWlsIG5vdyAqLwogICAgICAgICB3bGVuMiA9IG1ic3Rvd2NzKHdzdHIsIHN0ciwgd2xlbisxKTsKICAgICAgICAgaWYgKHdsZW4yID09IChzaXplX3QpLTEpIHsKICAgICAgICAgICAgIGlmICh3c3RyICE9IHNtYWxsYnVmKQpAQCAtMzczNiwxOCArMzY1NiwyMCBAQAogCiAKIGludAotX1B5VW5pY29kZV9IYXNOVUxDaGFycyhQeU9iamVjdCogcykKK19QeVVuaWNvZGVfSGFzTlVMQ2hhcnMoUHlPYmplY3QqIHN0cikKIHsKLSAgICBzdGF0aWMgUHlPYmplY3QgKm51bCA9IE5VTEw7CisgICAgUHlfc3NpemVfdCBwb3M7CiAKLSAgICBpZiAobnVsID09IE5VTEwpCi0gICAgICAgIG51bCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nQW5kU2l6ZSgiXDAiLCAxKTsKLSAgICBpZiAobnVsID09IE5VTEwpCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzdHIpID09IC0xKQogICAgICAgICByZXR1cm4gLTE7Ci0gICAgcmV0dXJuIFB5VW5pY29kZV9Db250YWlucyhzLCBudWwpOworICAgIHBvcyA9IGZpbmRjaGFyKFB5VW5pY29kZV9EQVRBKHN0ciksIFB5VW5pY29kZV9LSU5EKHN0ciksCisgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKSwgJ1wwJywgMSk7CisgICAgaWYgKHBvcyA9PSAtMSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gMTsKIH0KIAotCiBpbnQKIFB5VW5pY29kZV9GU0NvbnZlcnRlcihQeU9iamVjdCogYXJnLCB2b2lkKiBhZGRyKQogewpAQCAtNDAxOSw2ICszOTQxLDkgQEAKIFB5X1VDUzQKIFB5VW5pY29kZV9SZWFkQ2hhcihQeU9iamVjdCAqdW5pY29kZSwgUHlfc3NpemVfdCBpbmRleCkKIHsKKyAgICB2b2lkICpkYXRhOworICAgIGludCBraW5kOworCiAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sodW5pY29kZSkgfHwgUHlVbmljb2RlX1JFQURZKHVuaWNvZGUpID09IC0xKSB7CiAgICAgICAgIFB5RXJyX0JhZEFyZ3VtZW50KCk7CiAgICAgICAgIHJldHVybiAoUHlfVUNTNCktMTsKQEAgLTQwMjcsNyArMzk1Miw5IEBACiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbmRleEVycm9yLCAic3RyaW5nIGluZGV4IG91dCBvZiByYW5nZSIpOwogICAgICAgICByZXR1cm4gKFB5X1VDUzQpLTE7CiAgICAgfQotICAgIHJldHVybiBQeVVuaWNvZGVfUkVBRF9DSEFSKHVuaWNvZGUsIGluZGV4KTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEodW5pY29kZSk7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHVuaWNvZGUpOworICAgIHJldHVybiBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpbmRleCk7CiB9CiAKIGludApAQCAtNDA4Niw2ICs0MDEzLDcgQEAKICAgICAqZXhjZXB0aW9uT2JqZWN0ID0gTlVMTDsKIH0KIAorI2lmZGVmIEhBVkVfTUJDUwogLyogZXJyb3IgaGFuZGxpbmcgY2FsbGJhY2sgaGVscGVyOgogICAgYnVpbGQgYXJndW1lbnRzLCBjYWxsIHRoZSBjYWxsYmFjayBhbmQgY2hlY2sgdGhlIGFyZ3VtZW50cywKICAgIGlmIG5vIGV4Y2VwdGlvbiBvY2N1cnJlZCwgY29weSB0aGUgcmVwbGFjZW1lbnQgdG8gdGhlIG91dHB1dApAQCAtNDA5NCwxMSArNDAyMiwxMiBAQAogKi8KIAogc3RhdGljIGludAotdW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXIoY29uc3QgY2hhciAqZXJyb3JzLCBQeU9iamVjdCAqKmVycm9ySGFuZGxlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBjb25zdCBjaGFyICpyZWFzb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoqaW5wdXQsIGNvbnN0IGNoYXIgKippbmVuZCwgUHlfc3NpemVfdCAqc3RhcnRpbnBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgKmVuZGlucG9zLCBQeU9iamVjdCAqKmV4Y2VwdGlvbk9iamVjdCwgY29uc3QgY2hhciAqKmlucHRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKipvdXRwdXQsIFB5X3NzaXplX3QgKm91dHBvcykKK3VuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyX3djaGFyKAorICAgIGNvbnN0IGNoYXIgKmVycm9ycywgUHlPYmplY3QgKiplcnJvckhhbmRsZXIsCisgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGNvbnN0IGNoYXIgKnJlYXNvbiwKKyAgICBjb25zdCBjaGFyICoqaW5wdXQsIGNvbnN0IGNoYXIgKippbmVuZCwgUHlfc3NpemVfdCAqc3RhcnRpbnBvcywKKyAgICBQeV9zc2l6ZV90ICplbmRpbnBvcywgUHlPYmplY3QgKipleGNlcHRpb25PYmplY3QsIGNvbnN0IGNoYXIgKippbnB0ciwKKyAgICBQeU9iamVjdCAqKm91dHB1dCwgUHlfc3NpemVfdCAqb3V0cG9zKQogewogICAgIHN0YXRpYyBjaGFyICphcmdwYXJzZSA9ICJPIW47ZGVjb2RpbmcgZXJyb3IgaGFuZGxlciBtdXN0IHJldHVybiAoc3RyLCBpbnQpIHR1cGxlIjsKIApAQCAtNDEwOSwxMiArNDAzOCwxMSBAQAogICAgIFB5X3NzaXplX3QgcmVxdWlyZWRzaXplOwogICAgIFB5X3NzaXplX3QgbmV3cG9zOwogICAgIFB5T2JqZWN0ICppbnB1dG9iaiA9IE5VTEw7Ci0gICAgaW50IHJlcyA9IC0xOworICAgIHdjaGFyX3QgKnJlcHdzdHI7CisgICAgUHlfc3NpemVfdCByZXB3bGVuOwogCi0gICAgaWYgKF9QeVVuaWNvZGVfS0lORCgqb3V0cHV0KSAhPSBQeVVuaWNvZGVfV0NIQVJfS0lORCkKLSAgICAgICAgb3V0c2l6ZSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKCpvdXRwdXQpOwotICAgIGVsc2UKLSAgICAgICAgb3V0c2l6ZSA9IF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgoKm91dHB1dCk7CisgICAgYXNzZXJ0IChfUHlVbmljb2RlX0tJTkQoKm91dHB1dCkgPT0gUHlVbmljb2RlX1dDSEFSX0tJTkQpOworICAgIG91dHNpemUgPSBfUHlVbmljb2RlX1dTVFJfTEVOR1RIKCpvdXRwdXQpOwogCiAgICAgaWYgKCplcnJvckhhbmRsZXIgPT0gTlVMTCkgewogICAgICAgICAqZXJyb3JIYW5kbGVyID0gUHlDb2RlY19Mb29rdXBFcnJvcihlcnJvcnMpOwpAQCAtNDEzOSw3ICs0MDY3LDk4IEBACiAgICAgfQogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShyZXN0dXBsZSwgYXJncGFyc2UsICZQeVVuaWNvZGVfVHlwZSwgJnJlcHVuaWNvZGUsICZuZXdwb3MpKQogICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgaWYgKFB5VW5pY29kZV9SRUFEWShyZXB1bmljb2RlKSA9PSAtMSkKKworICAgIC8qIENvcHkgYmFjayB0aGUgYnl0ZXMgdmFyaWFibGVzLCB3aGljaCBtaWdodCBoYXZlIGJlZW4gbW9kaWZpZWQgYnkgdGhlCisgICAgICAgY2FsbGJhY2sgKi8KKyAgICBpbnB1dG9iaiA9IFB5VW5pY29kZURlY29kZUVycm9yX0dldE9iamVjdCgqZXhjZXB0aW9uT2JqZWN0KTsKKyAgICBpZiAoIWlucHV0b2JqKQorICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgaWYgKCFQeUJ5dGVzX0NoZWNrKGlucHV0b2JqKSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiZXhjZXB0aW9uIGF0dHJpYnV0ZSBvYmplY3QgbXVzdCBiZSBieXRlcyIpOworICAgIH0KKyAgICAqaW5wdXQgPSBQeUJ5dGVzX0FTX1NUUklORyhpbnB1dG9iaik7CisgICAgaW5zaXplID0gUHlCeXRlc19HRVRfU0laRShpbnB1dG9iaik7CisgICAgKmluZW5kID0gKmlucHV0ICsgaW5zaXplOworICAgIC8qIHdlIGNhbiBERUNSRUYgc2FmZWx5LCBhcyB0aGUgZXhjZXB0aW9uIGhhcyBhbm90aGVyIHJlZmVyZW5jZSwKKyAgICAgICBzbyB0aGUgb2JqZWN0IHdvbid0IGdvIGF3YXkuICovCisgICAgUHlfREVDUkVGKGlucHV0b2JqKTsKKworICAgIGlmIChuZXdwb3M8MCkKKyAgICAgICAgbmV3cG9zID0gaW5zaXplK25ld3BvczsKKyAgICBpZiAobmV3cG9zPDAgfHwgbmV3cG9zPmluc2l6ZSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfSW5kZXhFcnJvciwgInBvc2l0aW9uICV6ZCBmcm9tIGVycm9yIGhhbmRsZXIgb3V0IG9mIGJvdW5kcyIsIG5ld3Bvcyk7CisgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICB9CisKKyAgICByZXB3c3RyID0gUHlVbmljb2RlX0FzVW5pY29kZUFuZFNpemUocmVwdW5pY29kZSwgJnJlcHdsZW4pOworICAgIGlmIChyZXB3c3RyID09IE5VTEwpCisgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAvKiBuZWVkIG1vcmUgc3BhY2U/IChhdCBsZWFzdCBlbm91Z2ggZm9yIHdoYXQgd2UKKyAgICAgICBoYXZlK3RoZSByZXBsYWNlbWVudCt0aGUgcmVzdCBvZiB0aGUgc3RyaW5nIChzdGFydGluZworICAgICAgIGF0IHRoZSBuZXcgaW5wdXQgcG9zaXRpb24pLCBzbyB3ZSB3b24ndCBoYXZlIHRvIGNoZWNrIHNwYWNlCisgICAgICAgd2hlbiB0aGVyZSBhcmUgbm8gZXJyb3JzIGluIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcpICovCisgICAgcmVxdWlyZWRzaXplID0gKm91dHBvcyArIHJlcHdsZW4gKyBpbnNpemUtbmV3cG9zOworICAgIGlmIChyZXF1aXJlZHNpemUgPiBvdXRzaXplKSB7CisgICAgICAgIGlmIChyZXF1aXJlZHNpemUgPCAyKm91dHNpemUpCisgICAgICAgICAgICByZXF1aXJlZHNpemUgPSAyKm91dHNpemU7CisgICAgICAgIGlmICh1bmljb2RlX3Jlc2l6ZShvdXRwdXQsIHJlcXVpcmVkc2l6ZSkgPCAwKQorICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgIH0KKyAgICB3Y3NuY3B5KF9QeVVuaWNvZGVfV1NUUigqb3V0cHV0KSArICpvdXRwb3MsIHJlcHdzdHIsIHJlcHdsZW4pOworICAgICpvdXRwb3MgKz0gcmVwd2xlbjsKKworICAgICplbmRpbnBvcyA9IG5ld3BvczsKKyAgICAqaW5wdHIgPSAqaW5wdXQgKyBuZXdwb3M7CisKKyAgICAvKiB3ZSBtYWRlIGl0ISAqLworICAgIFB5X1hERUNSRUYocmVzdHVwbGUpOworICAgIHJldHVybiAwOworCisgIG9uRXJyb3I6CisgICAgUHlfWERFQ1JFRihyZXN0dXBsZSk7CisgICAgcmV0dXJuIC0xOworfQorI2VuZGlmICAgLyogSEFWRV9NQkNTICovCisKK3N0YXRpYyBpbnQKK3VuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyX3dyaXRlcigKKyAgICBjb25zdCBjaGFyICplcnJvcnMsIFB5T2JqZWN0ICoqZXJyb3JIYW5kbGVyLAorICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBjb25zdCBjaGFyICpyZWFzb24sCisgICAgY29uc3QgY2hhciAqKmlucHV0LCBjb25zdCBjaGFyICoqaW5lbmQsIFB5X3NzaXplX3QgKnN0YXJ0aW5wb3MsCisgICAgUHlfc3NpemVfdCAqZW5kaW5wb3MsIFB5T2JqZWN0ICoqZXhjZXB0aW9uT2JqZWN0LCBjb25zdCBjaGFyICoqaW5wdHIsCisgICAgX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyIC8qIFB5T2JqZWN0ICoqb3V0cHV0LCBQeV9zc2l6ZV90ICpvdXRwb3MgKi8pCit7CisgICAgc3RhdGljIGNoYXIgKmFyZ3BhcnNlID0gIk8hbjtkZWNvZGluZyBlcnJvciBoYW5kbGVyIG11c3QgcmV0dXJuIChzdHIsIGludCkgdHVwbGUiOworCisgICAgUHlPYmplY3QgKnJlc3R1cGxlID0gTlVMTDsKKyAgICBQeU9iamVjdCAqcmVwdW5pY29kZSA9IE5VTEw7CisgICAgUHlfc3NpemVfdCBpbnNpemU7CisgICAgUHlfc3NpemVfdCBuZXdwb3M7CisgICAgUHlfc3NpemVfdCByZXBsZW47CisgICAgUHlPYmplY3QgKmlucHV0b2JqID0gTlVMTDsKKworICAgIGlmICgqZXJyb3JIYW5kbGVyID09IE5VTEwpIHsKKyAgICAgICAgKmVycm9ySGFuZGxlciA9IFB5Q29kZWNfTG9va3VwRXJyb3IoZXJyb3JzKTsKKyAgICAgICAgaWYgKCplcnJvckhhbmRsZXIgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICB9CisKKyAgICBtYWtlX2RlY29kZV9leGNlcHRpb24oZXhjZXB0aW9uT2JqZWN0LAorICAgICAgICBlbmNvZGluZywKKyAgICAgICAgKmlucHV0LCAqaW5lbmQgLSAqaW5wdXQsCisgICAgICAgICpzdGFydGlucG9zLCAqZW5kaW5wb3MsCisgICAgICAgIHJlYXNvbik7CisgICAgaWYgKCpleGNlcHRpb25PYmplY3QgPT0gTlVMTCkKKyAgICAgICAgZ290byBvbkVycm9yOworCisgICAgcmVzdHVwbGUgPSBQeU9iamVjdF9DYWxsRnVuY3Rpb25PYmpBcmdzKCplcnJvckhhbmRsZXIsICpleGNlcHRpb25PYmplY3QsIE5VTEwpOworICAgIGlmIChyZXN0dXBsZSA9PSBOVUxMKQorICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgaWYgKCFQeVR1cGxlX0NoZWNrKHJlc3R1cGxlKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAmYXJncGFyc2VbNF0pOworICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgfQorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShyZXN0dXBsZSwgYXJncGFyc2UsICZQeVVuaWNvZGVfVHlwZSwgJnJlcHVuaWNvZGUsICZuZXdwb3MpKQogICAgICAgICBnb3RvIG9uRXJyb3I7CiAKICAgICAvKiBDb3B5IGJhY2sgdGhlIGJ5dGVzIHZhcmlhYmxlcywgd2hpY2ggbWlnaHQgaGF2ZSBiZWVuIG1vZGlmaWVkIGJ5IHRoZQpAQCAtNDE2NCw1NCArNDE4MywyNSBAQAogICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgfQogCi0gICAgaWYgKF9QeVVuaWNvZGVfS0lORCgqb3V0cHV0KSAhPSBQeVVuaWNvZGVfV0NIQVJfS0lORCkgewotICAgICAgICAvKiBuZWVkIG1vcmUgc3BhY2U/IChhdCBsZWFzdCBlbm91Z2ggZm9yIHdoYXQgd2UKLSAgICAgICAgICAgaGF2ZSt0aGUgcmVwbGFjZW1lbnQrdGhlIHJlc3Qgb2YgdGhlIHN0cmluZyAoc3RhcnRpbmcKLSAgICAgICAgICAgYXQgdGhlIG5ldyBpbnB1dCBwb3NpdGlvbiksIHNvIHdlIHdvbid0IGhhdmUgdG8gY2hlY2sgc3BhY2UKLSAgICAgICAgICAgd2hlbiB0aGVyZSBhcmUgbm8gZXJyb3JzIGluIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcpICovCi0gICAgICAgIFB5X3NzaXplX3QgcmVwbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgocmVwdW5pY29kZSk7Ci0gICAgICAgIHJlcXVpcmVkc2l6ZSA9ICpvdXRwb3MgKyByZXBsZW4gKyBpbnNpemUtbmV3cG9zOwotICAgICAgICBpZiAocmVxdWlyZWRzaXplID4gb3V0c2l6ZSkgewotICAgICAgICAgICAgaWYgKHJlcXVpcmVkc2l6ZTwyKm91dHNpemUpCi0gICAgICAgICAgICAgICAgcmVxdWlyZWRzaXplID0gMipvdXRzaXplOwotICAgICAgICAgICAgaWYgKHVuaWNvZGVfcmVzaXplKG91dHB1dCwgcmVxdWlyZWRzaXplKSA8IDApCi0gICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICB9Ci0gICAgICAgIGlmICh1bmljb2RlX3dpZGVuKG91dHB1dCwgKm91dHBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHJlcHVuaWNvZGUpKSA8IDApCi0gICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKCpvdXRwdXQsICpvdXRwb3MsIHJlcHVuaWNvZGUsIDAsIHJlcGxlbik7Ci0gICAgICAgICpvdXRwb3MgKz0gcmVwbGVuOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgd2NoYXJfdCAqcmVwd3N0cjsKLSAgICAgICAgUHlfc3NpemVfdCByZXB3bGVuOwotICAgICAgICByZXB3c3RyID0gUHlVbmljb2RlX0FzVW5pY29kZUFuZFNpemUocmVwdW5pY29kZSwgJnJlcHdsZW4pOwotICAgICAgICBpZiAocmVwd3N0ciA9PSBOVUxMKQotICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAvKiBuZWVkIG1vcmUgc3BhY2U/IChhdCBsZWFzdCBlbm91Z2ggZm9yIHdoYXQgd2UKLSAgICAgICAgICAgaGF2ZSt0aGUgcmVwbGFjZW1lbnQrdGhlIHJlc3Qgb2YgdGhlIHN0cmluZyAoc3RhcnRpbmcKLSAgICAgICAgICAgYXQgdGhlIG5ldyBpbnB1dCBwb3NpdGlvbiksIHNvIHdlIHdvbid0IGhhdmUgdG8gY2hlY2sgc3BhY2UKLSAgICAgICAgICAgd2hlbiB0aGVyZSBhcmUgbm8gZXJyb3JzIGluIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcpICovCi0gICAgICAgIHJlcXVpcmVkc2l6ZSA9ICpvdXRwb3MgKyByZXB3bGVuICsgaW5zaXplLW5ld3BvczsKLSAgICAgICAgaWYgKHJlcXVpcmVkc2l6ZSA+IG91dHNpemUpIHsKLSAgICAgICAgICAgIGlmIChyZXF1aXJlZHNpemUgPCAyKm91dHNpemUpCi0gICAgICAgICAgICAgICAgcmVxdWlyZWRzaXplID0gMipvdXRzaXplOwotICAgICAgICAgICAgaWYgKHVuaWNvZGVfcmVzaXplKG91dHB1dCwgcmVxdWlyZWRzaXplKSA8IDApCi0gICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICB9Ci0gICAgICAgIHdjc25jcHkoX1B5VW5pY29kZV9XU1RSKCpvdXRwdXQpICsgKm91dHBvcywgcmVwd3N0ciwgcmVwd2xlbik7Ci0gICAgICAgICpvdXRwb3MgKz0gcmVwd2xlbjsKLSAgICB9CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShyZXB1bmljb2RlKSA8IDApCisgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICByZXBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChyZXB1bmljb2RlKTsKKyAgICB3cml0ZXItPm1pbl9sZW5ndGggKz0gcmVwbGVuOworICAgIGlmIChyZXBsZW4gPiAxKQorICAgICAgICB3cml0ZXItPm92ZXJhbGxvY2F0ZSA9IDE7CisgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfV3JpdGVTdHIod3JpdGVyLCByZXB1bmljb2RlKSA9PSAtMSkKKyAgICAgICAgZ290byBvbkVycm9yOworCiAgICAgKmVuZGlucG9zID0gbmV3cG9zOwogICAgICppbnB0ciA9ICppbnB1dCArIG5ld3BvczsKIAogICAgIC8qIHdlIG1hZGUgaXQhICovCi0gICAgcmVzID0gMDsKKyAgICBQeV9YREVDUkVGKHJlc3R1cGxlKTsKKyAgICByZXR1cm4gMDsKIAogICBvbkVycm9yOgogICAgIFB5X1hERUNSRUYocmVzdHVwbGUpOwotICAgIHJldHVybiByZXM7CisgICAgcmV0dXJuIC0xOwogfQogCiAvKiAtLS0gVVRGLTcgQ29kZWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAgLTQzMTksOSArNDMwOSw4IEBACiAgICAgY29uc3QgY2hhciAqc3RhcnRzID0gczsKICAgICBQeV9zc2l6ZV90IHN0YXJ0aW5wb3M7CiAgICAgUHlfc3NpemVfdCBlbmRpbnBvczsKLSAgICBQeV9zc2l6ZV90IG91dHBvczsKICAgICBjb25zdCBjaGFyICplOwotICAgIFB5T2JqZWN0ICp1bmljb2RlOworICAgIF9QeVVuaWNvZGVXcml0ZXIgd3JpdGVyOwogICAgIGNvbnN0IGNoYXIgKmVycm1zZyA9ICIiOwogICAgIGludCBpblNoaWZ0ID0gMDsKICAgICBQeV9zc2l6ZV90IHNoaWZ0T3V0U3RhcnQ7CkBAIC00MzMxLDE3ICs0MzIwLDE3IEBACiAgICAgUHlPYmplY3QgKmVycm9ySGFuZGxlciA9IE5VTEw7CiAgICAgUHlPYmplY3QgKmV4YyA9IE5VTEw7CiAKLSAgICAvKiBTdGFydCBvZmYgYXNzdW1pbmcgaXQncyBhbGwgQVNDSUkuIFdpZGVuIGxhdGVyIGFzIG5lY2Vzc2FyeS4gKi8KLSAgICB1bmljb2RlID0gUHlVbmljb2RlX05ldyhzaXplLCAxMjcpOwotICAgIGlmICghdW5pY29kZSkKLSAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgaWYgKHNpemUgPT0gMCkgewogICAgICAgICBpZiAoY29uc3VtZWQpCiAgICAgICAgICAgICAqY29uc3VtZWQgPSAwOwotICAgICAgICByZXR1cm4gdW5pY29kZTsKKyAgICAgICAgX1B5X1JFVFVSTl9VTklDT0RFX0VNUFRZKCk7CiAgICAgfQogCi0gICAgc2hpZnRPdXRTdGFydCA9IG91dHBvcyA9IDA7CisgICAgLyogU3RhcnQgb2ZmIGFzc3VtaW5nIGl0J3MgYWxsIEFTQ0lJLiBXaWRlbiBsYXRlciBhcyBuZWNlc3NhcnkuICovCisgICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIpOworICAgIHdyaXRlci5taW5fbGVuZ3RoID0gc2l6ZTsKKworICAgIHNoaWZ0T3V0U3RhcnQgPSAwOwogICAgIGUgPSBzICsgc2l6ZTsKIAogICAgIHdoaWxlIChzIDwgZSkgewpAQCAtNDM2MywxMyArNDM1MiwxMyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhwZWN0aW5nIGEgc2Vjb25kIHN1cnJvZ2F0ZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFB5X1VOSUNPREVfSVNfTE9XX1NVUlJPR0FURShvdXRDaCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9VQ1M0IGNoMiA9IFB5X1VOSUNPREVfSk9JTl9TVVJST0dBVEVTKHN1cnJvZ2F0ZSwgb3V0Q2gpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1bmljb2RlX3B1dGNoYXIoJnVuaWNvZGUsICZvdXRwb3MsIGNoMikgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1dyaXRlQ2hhcklubGluZSgmd3JpdGVyLCBjaDIpIDwgMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cnJvZ2F0ZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodW5pY29kZV9wdXRjaGFyKCZ1bmljb2RlLCAmb3V0cG9zLCBzdXJyb2dhdGUpIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9Xcml0ZUNoYXJJbmxpbmUoJndyaXRlciwgc3Vycm9nYXRlKSA8IDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXJyb2dhdGUgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgfQpAQCAtNDM3OSw3ICs0MzY4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIHN1cnJvZ2F0ZSA9IG91dENoOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdW5pY29kZSwgJm91dHBvcywgb3V0Q2gpIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1dyaXRlQ2hhcklubGluZSgmd3JpdGVyLCBvdXRDaCkgPCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KQEAgLTQzODgsNyArNDM3Nyw3IEBACiAgICAgICAgICAgICAgICAgaW5TaGlmdCA9IDA7CiAgICAgICAgICAgICAgICAgcysrOwogICAgICAgICAgICAgICAgIGlmIChzdXJyb2dhdGUpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdW5pY29kZSwgJm91dHBvcywgc3Vycm9nYXRlKSA8IDApCisgICAgICAgICAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1dyaXRlQ2hhcklubGluZSgmd3JpdGVyLCBzdXJyb2dhdGUpIDwgMCkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgICAgICAgICAgc3Vycm9nYXRlID0gMDsKICAgICAgICAgICAgICAgICB9CkBAIC00NDA5LDcgKzQzOTgsNyBAQAogICAgICAgICAgICAgICAgIGlmIChjaCAhPSAnLScpIHsKICAgICAgICAgICAgICAgICAgICAgLyogJy0nIGlzIGFic29yYmVkOyBvdGhlciB0ZXJtaW5hdGluZwogICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXJzIGFyZSBwcmVzZXJ2ZWQgKi8KLSAgICAgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdW5pY29kZSwgJm91dHBvcywgY2gpIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfV3JpdGVDaGFySW5saW5lKCZ3cml0ZXIsIGNoKSA8IDApCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtNDQxOSwxOSArNDQwOCwxOSBAQAogICAgICAgICAgICAgcysrOyAvKiBjb25zdW1lICcrJyAqLwogICAgICAgICAgICAgaWYgKHMgPCBlICYmICpzID09ICctJykgeyAvKiAnKy0nIGVuY29kZXMgJysnICovCiAgICAgICAgICAgICAgICAgcysrOwotICAgICAgICAgICAgICAgIGlmICh1bmljb2RlX3B1dGNoYXIoJnVuaWNvZGUsICZvdXRwb3MsICcrJykgPCAwKQorICAgICAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1dyaXRlQ2hhcklubGluZSgmd3JpdGVyLCAnKycpIDwgMCkKICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7IC8qIGJlZ2luIGJhc2U2NC1lbmNvZGVkIHNlY3Rpb24gKi8KICAgICAgICAgICAgICAgICBpblNoaWZ0ID0gMTsKLSAgICAgICAgICAgICAgICBzaGlmdE91dFN0YXJ0ID0gb3V0cG9zOworICAgICAgICAgICAgICAgIHNoaWZ0T3V0U3RhcnQgPSB3cml0ZXIucG9zOwogICAgICAgICAgICAgICAgIGJhc2U2NGJpdHMgPSAwOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKERFQ09ERV9ESVJFQ1QoY2gpKSB7IC8qIGNoYXJhY3RlciBkZWNvZGVzIGFzIGl0c2VsZiAqLwotICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdW5pY29kZSwgJm91dHBvcywgY2gpIDwgMCkKLSAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICBzKys7CisgICAgICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9Xcml0ZUNoYXJJbmxpbmUoJndyaXRlciwgY2gpIDwgMCkKKyAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBzdGFydGlucG9zID0gcy1zdGFydHM7CkBAIC00NDQyLDExICs0NDMxLDExIEBACiAgICAgICAgIGNvbnRpbnVlOwogdXRmN0Vycm9yOgogICAgICAgICBlbmRpbnBvcyA9IHMtc3RhcnRzOwotICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXIoCisgICAgICAgIGlmICh1bmljb2RlX2RlY29kZV9jYWxsX2Vycm9yaGFuZGxlcl93cml0ZXIoCiAgICAgICAgICAgICAgICAgZXJyb3JzLCAmZXJyb3JIYW5kbGVyLAogICAgICAgICAgICAgICAgICJ1dGY3IiwgZXJybXNnLAogICAgICAgICAgICAgICAgICZzdGFydHMsICZlLCAmc3RhcnRpbnBvcywgJmVuZGlucG9zLCAmZXhjLCAmcywKLSAgICAgICAgICAgICAgICAmdW5pY29kZSwgJm91dHBvcykpCisgICAgICAgICAgICAgICAgJndyaXRlcikpCiAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgfQogCkBAIC00NDU4LDExICs0NDQ3LDExIEBACiAgICAgICAgICAgICAgICAgKGJhc2U2NGJpdHMgPj0gNikgfHwKICAgICAgICAgICAgICAgICAoYmFzZTY0Yml0cyA+IDAgJiYgYmFzZTY0YnVmZmVyICE9IDApKSB7CiAgICAgICAgICAgICBlbmRpbnBvcyA9IHNpemU7Ci0gICAgICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXIoCisgICAgICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXJfd3JpdGVyKAogICAgICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICJ1dGY3IiwgInVudGVybWluYXRlZCBzaGlmdCBzZXF1ZW5jZSIsCiAgICAgICAgICAgICAgICAgICAgICZzdGFydHMsICZlLCAmc3RhcnRpbnBvcywgJmVuZGlucG9zLCAmZXhjLCAmcywKLSAgICAgICAgICAgICAgICAgICAgJnVuaWNvZGUsICZvdXRwb3MpKQorICAgICAgICAgICAgICAgICAgICAmd3JpdGVyKSkKICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICBpZiAocyA8IGUpCiAgICAgICAgICAgICAgICAgZ290byByZXN0YXJ0OwpAQCAtNDQ3Miw3ICs0NDYxLDcgQEAKICAgICAvKiByZXR1cm4gc3RhdGUgKi8KICAgICBpZiAoY29uc3VtZWQpIHsKICAgICAgICAgaWYgKGluU2hpZnQpIHsKLSAgICAgICAgICAgIG91dHBvcyA9IHNoaWZ0T3V0U3RhcnQ7IC8qIGJhY2sgb2ZmIG91dHB1dCAqLworICAgICAgICAgICAgd3JpdGVyLnBvcyA9IHNoaWZ0T3V0U3RhcnQ7IC8qIGJhY2sgb2ZmIG91dHB1dCAqLwogICAgICAgICAgICAgKmNvbnN1bWVkID0gc3RhcnRpbnBvczsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsKQEAgLTQ0ODAsMTcgKzQ0NjksMTQgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICh1bmljb2RlX3Jlc2l6ZSgmdW5pY29kZSwgb3V0cG9zKSA8IDApCi0gICAgICAgIGdvdG8gb25FcnJvcjsKLQogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKICAgICBQeV9YREVDUkVGKGV4Yyk7Ci0gICAgcmV0dXJuIHVuaWNvZGVfcmVzdWx0KHVuaWNvZGUpOworICAgIHJldHVybiBfUHlVbmljb2RlV3JpdGVyX0ZpbmlzaCgmd3JpdGVyKTsKIAogICBvbkVycm9yOgogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKICAgICBQeV9YREVDUkVGKGV4Yyk7Ci0gICAgUHlfREVDUkVGKHVuaWNvZGUpOworICAgIF9QeVVuaWNvZGVXcml0ZXJfRGVhbGxvYygmd3JpdGVyKTsKICAgICByZXR1cm4gTlVMTDsKIH0KIApAQCAtNDU3Myw3ICs0NTU5LDcgQEAKIAogICAgICAgICAgICAgLyogY29kZSBmaXJzdCBzdXJyb2dhdGUgKi8KICAgICAgICAgICAgIGJhc2U2NGJpdHMgKz0gMTY7Ci0gICAgICAgICAgICBiYXNlNjRidWZmZXIgPSAoYmFzZTY0YnVmZmVyIDw8IDE2KSB8IDB4ZDgwMCB8ICgoY2gtMHgxMDAwMCkgPj4gMTApOworICAgICAgICAgICAgYmFzZTY0YnVmZmVyID0gKGJhc2U2NGJ1ZmZlciA8PCAxNikgfCBQeV9VTklDT0RFX0hJR0hfU1VSUk9HQVRFKGNoKTsKICAgICAgICAgICAgIHdoaWxlIChiYXNlNjRiaXRzID49IDYpIHsKICAgICAgICAgICAgICAgICAqb3V0KysgPSBUT19CQVNFNjQoYmFzZTY0YnVmZmVyID4+IChiYXNlNjRiaXRzLTYpKTsKICAgICAgICAgICAgICAgICBiYXNlNjRiaXRzIC09IDY7CkBAIC00NzI1LDEwICs0NzExLDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90ICpjb25zdW1lZCkKIHsKLSAgICBQeU9iamVjdCAqdW5pY29kZTsKKyAgICBfUHlVbmljb2RlV3JpdGVyIHdyaXRlcjsKICAgICBjb25zdCBjaGFyICpzdGFydHMgPSBzOwogICAgIGNvbnN0IGNoYXIgKmVuZCA9IHMgKyBzaXplOwotICAgIFB5X3NzaXplX3Qgb3V0cG9zOwogCiAgICAgUHlfc3NpemVfdCBzdGFydGlucG9zOwogICAgIFB5X3NzaXplX3QgZW5kaW5wb3M7CkBAIC00NzQ5LDI5ICs0NzM0LDI2IEBACiAgICAgICAgIHJldHVybiBnZXRfbGF0aW4xX2NoYXIoKHVuc2lnbmVkIGNoYXIpc1swXSk7CiAgICAgfQogCi0gICAgdW5pY29kZSA9IFB5VW5pY29kZV9OZXcoc2l6ZSwgMTI3KTsKLSAgICBpZiAoIXVuaWNvZGUpCi0gICAgICAgIHJldHVybiBOVUxMOworICAgIF9QeVVuaWNvZGVXcml0ZXJfSW5pdCgmd3JpdGVyKTsKKyAgICB3cml0ZXIubWluX2xlbmd0aCA9IHNpemU7CisgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZSgmd3JpdGVyLCB3cml0ZXIubWluX2xlbmd0aCwgMTI3KSA9PSAtMSkKKyAgICAgICAgZ290byBvbkVycm9yOwogCi0gICAgb3V0cG9zID0gYXNjaWlfZGVjb2RlKHMsIGVuZCwgUHlVbmljb2RlXzFCWVRFX0RBVEEodW5pY29kZSkpOwotICAgIHMgKz0gb3V0cG9zOworICAgIHdyaXRlci5wb3MgPSBhc2NpaV9kZWNvZGUocywgZW5kLCB3cml0ZXIuZGF0YSk7CisgICAgcyArPSB3cml0ZXIucG9zOwogICAgIHdoaWxlIChzIDwgZW5kKSB7CiAgICAgICAgIFB5X1VDUzQgY2g7Ci0gICAgICAgIGludCBraW5kID0gUHlVbmljb2RlX0tJTkQodW5pY29kZSk7CisgICAgICAgIGludCBraW5kID0gd3JpdGVyLmtpbmQ7CiAgICAgICAgIGlmIChraW5kID09IFB5VW5pY29kZV8xQllURV9LSU5EKSB7Ci0gICAgICAgICAgICBpZiAoUHlVbmljb2RlX0lTX0FTQ0lJKHVuaWNvZGUpKQotICAgICAgICAgICAgICAgIGNoID0gYXNjaWlsaWJfdXRmOF9kZWNvZGUoJnMsIGVuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV8xQllURV9EQVRBKHVuaWNvZGUpLCAmb3V0cG9zKTsKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfSVNfQVNDSUkod3JpdGVyLmJ1ZmZlcikpCisgICAgICAgICAgICAgICAgY2ggPSBhc2NpaWxpYl91dGY4X2RlY29kZSgmcywgZW5kLCB3cml0ZXIuZGF0YSwgJndyaXRlci5wb3MpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNoID0gdWNzMWxpYl91dGY4X2RlY29kZSgmcywgZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlXzFCWVRFX0RBVEEodW5pY29kZSksICZvdXRwb3MpOworICAgICAgICAgICAgICAgIGNoID0gdWNzMWxpYl91dGY4X2RlY29kZSgmcywgZW5kLCB3cml0ZXIuZGF0YSwgJndyaXRlci5wb3MpOwogICAgICAgICB9IGVsc2UgaWYgKGtpbmQgPT0gUHlVbmljb2RlXzJCWVRFX0tJTkQpIHsKLSAgICAgICAgICAgIGNoID0gdWNzMmxpYl91dGY4X2RlY29kZSgmcywgZW5kLAotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfMkJZVEVfREFUQSh1bmljb2RlKSwgJm91dHBvcyk7CisgICAgICAgICAgICBjaCA9IHVjczJsaWJfdXRmOF9kZWNvZGUoJnMsIGVuZCwgd3JpdGVyLmRhdGEsICZ3cml0ZXIucG9zKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGFzc2VydChraW5kID09IFB5VW5pY29kZV80QllURV9LSU5EKTsKLSAgICAgICAgICAgIGNoID0gdWNzNGxpYl91dGY4X2RlY29kZSgmcywgZW5kLAotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfNEJZVEVfREFUQSh1bmljb2RlKSwgJm91dHBvcyk7CisgICAgICAgICAgICBjaCA9IHVjczRsaWJfdXRmOF9kZWNvZGUoJnMsIGVuZCwgd3JpdGVyLmRhdGEsICZ3cml0ZXIucG9zKTsKICAgICAgICAgfQogCiAgICAgICAgIHN3aXRjaCAoY2gpIHsKQEAgLTQ3OTUsMzUgKzQ3NzcsMzEgQEAKICAgICAgICAgICAgIGVuZGlucG9zID0gc3RhcnRpbnBvcyArIGNoIC0gMTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdW5pY29kZSwgJm91dHBvcywgY2gpIDwgMCkKKyAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1dyaXRlQ2hhcklubGluZSgmd3JpdGVyLCBjaCkgPCAwKQogICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAorICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXJfd3JpdGVyKAogICAgICAgICAgICAgICAgIGVycm9ycywgJmVycm9ySGFuZGxlciwKICAgICAgICAgICAgICAgICAidXRmLTgiLCBlcnJtc2csCiAgICAgICAgICAgICAgICAgJnN0YXJ0cywgJmVuZCwgJnN0YXJ0aW5wb3MsICZlbmRpbnBvcywgJmV4YywgJnMsCi0gICAgICAgICAgICAgICAgJnVuaWNvZGUsICZvdXRwb3MpKQorICAgICAgICAgICAgICAgICZ3cml0ZXIpKQogICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgIH0KIAogRW5kOgotICAgIGlmICh1bmljb2RlX3Jlc2l6ZSgmdW5pY29kZSwgb3V0cG9zKSA8IDApCi0gICAgICAgIGdvdG8gb25FcnJvcjsKLQogICAgIGlmIChjb25zdW1lZCkKICAgICAgICAgKmNvbnN1bWVkID0gcyAtIHN0YXJ0czsKIAogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKICAgICBQeV9YREVDUkVGKGV4Yyk7Ci0gICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeSh1bmljb2RlLCAxKSk7Ci0gICAgcmV0dXJuIHVuaWNvZGU7CisgICAgcmV0dXJuIF9QeVVuaWNvZGVXcml0ZXJfRmluaXNoKCZ3cml0ZXIpOwogCiBvbkVycm9yOgogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKICAgICBQeV9YREVDUkVGKGV4Yyk7Ci0gICAgUHlfWERFQ1JFRih1bmljb2RlKTsKKyAgICBfUHlVbmljb2RlV3JpdGVyX0RlYWxsb2MoJndyaXRlcik7CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTQ5NjksMTcgKzQ5NDcsMTAgQEAKICAgICBjb25zdCBjaGFyICpzdGFydHMgPSBzOwogICAgIFB5X3NzaXplX3Qgc3RhcnRpbnBvczsKICAgICBQeV9zc2l6ZV90IGVuZGlucG9zOwotICAgIFB5X3NzaXplX3Qgb3V0cG9zOwotICAgIFB5T2JqZWN0ICp1bmljb2RlOworICAgIF9QeVVuaWNvZGVXcml0ZXIgd3JpdGVyOwogICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnEsICplOwotICAgIGludCBibyA9IDA7ICAgICAgIC8qIGFzc3VtZSBuYXRpdmUgb3JkZXJpbmcgYnkgZGVmYXVsdCAqLworICAgIGludCBsZSwgYm8gPSAwOyAgICAgICAvKiBhc3N1bWUgbmF0aXZlIG9yZGVyaW5nIGJ5IGRlZmF1bHQgKi8KICAgICBjb25zdCBjaGFyICplcnJtc2cgPSAiIjsKLSAgICAvKiBPZmZzZXRzIGZyb20gcSBmb3IgcmV0cmlldmluZyBieXRlcyBpbiB0aGUgcmlnaHQgb3JkZXIuICovCi0jaWZkZWYgQllURU9SREVSX0lTX0xJVFRMRV9FTkRJQU4KLSAgICBpbnQgaW9yZGVyW10gPSB7MCwgMSwgMiwgM307Ci0jZWxzZQotICAgIGludCBpb3JkZXJbXSA9IHszLCAyLCAxLCAwfTsKLSNlbmRpZgogICAgIFB5T2JqZWN0ICplcnJvckhhbmRsZXIgPSBOVUxMOwogICAgIFB5T2JqZWN0ICpleGMgPSBOVUxMOwogCkBAIC00OTkzLDEwNyArNDk2NCwxMDYgQEAKICAgICAgICBieXRlIG9yZGVyIHNldHRpbmcgYWNjb3JkaW5nbHkuIEluIG5hdGl2ZSBtb2RlLCB0aGUgbGVhZGluZyBCT00KICAgICAgICBtYXJrIGlzIHNraXBwZWQsIGluIGFsbCBvdGhlciBtb2RlcywgaXQgaXMgY29waWVkIHRvIHRoZSBvdXRwdXQKICAgICAgICBzdHJlYW0gYXMtaXMgKGdpdmluZyBhIFpXTkJTUCBjaGFyYWN0ZXIpLiAqLwotICAgIGlmIChibyA9PSAwKSB7Ci0gICAgICAgIGlmIChzaXplID49IDQpIHsKLSAgICAgICAgICAgIGNvbnN0IFB5X1VDUzQgYm9tID0gKHFbaW9yZGVyWzNdXSA8PCAyNCkgfCAocVtpb3JkZXJbMl1dIDw8IDE2KSB8Ci0gICAgICAgICAgICAgICAgKHFbaW9yZGVyWzFdXSA8PCA4KSB8IHFbaW9yZGVyWzBdXTsKLSNpZmRlZiBCWVRFT1JERVJfSVNfTElUVExFX0VORElBTgotICAgICAgICAgICAgaWYgKGJvbSA9PSAweDAwMDBGRUZGKSB7Ci0gICAgICAgICAgICAgICAgcSArPSA0OwotICAgICAgICAgICAgICAgIGJvID0gLTE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChib20gPT0gMHhGRkZFMDAwMCkgewotICAgICAgICAgICAgICAgIHEgKz0gNDsKLSAgICAgICAgICAgICAgICBibyA9IDE7Ci0gICAgICAgICAgICB9CisgICAgaWYgKGJvID09IDAgJiYgc2l6ZSA+PSA0KSB7CisgICAgICAgIFB5X1VDUzQgYm9tID0gKHFbM10gPDwgMjQpIHwgKHFbMl0gPDwgMTYpIHwgKHFbMV0gPDwgOCkgfCBxWzBdOworICAgICAgICBpZiAoYm9tID09IDB4MDAwMEZFRkYpIHsKKyAgICAgICAgICAgIGJvID0gLTE7CisgICAgICAgICAgICBxICs9IDQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoYm9tID09IDB4RkZGRTAwMDApIHsKKyAgICAgICAgICAgIGJvID0gMTsKKyAgICAgICAgICAgIHEgKz0gNDsKKyAgICAgICAgfQorICAgICAgICBpZiAoYnl0ZW9yZGVyKQorICAgICAgICAgICAgKmJ5dGVvcmRlciA9IGJvOworICAgIH0KKworICAgIGlmIChxID09IGUpIHsKKyAgICAgICAgaWYgKGNvbnN1bWVkKQorICAgICAgICAgICAgKmNvbnN1bWVkID0gc2l6ZTsKKyAgICAgICAgX1B5X1JFVFVSTl9VTklDT0RFX0VNUFRZKCk7CisgICAgfQorCisjaWZkZWYgV09SRFNfQklHRU5ESUFOCisgICAgbGUgPSBibyA8IDA7CiAjZWxzZQotICAgICAgICAgICAgaWYgKGJvbSA9PSAweDAwMDBGRUZGKSB7Ci0gICAgICAgICAgICAgICAgcSArPSA0OwotICAgICAgICAgICAgICAgIGJvID0gMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKGJvbSA9PSAweEZGRkUwMDAwKSB7Ci0gICAgICAgICAgICAgICAgcSArPSA0OwotICAgICAgICAgICAgICAgIGJvID0gLTE7Ci0gICAgICAgICAgICB9CisgICAgbGUgPSBibyA8PSAwOwogI2VuZGlmCisKKyAgICBfUHlVbmljb2RlV3JpdGVyX0luaXQoJndyaXRlcik7CisgICAgd3JpdGVyLm1pbl9sZW5ndGggPSAoZSAtIHEgKyAzKSAvIDQ7CisgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZSgmd3JpdGVyLCB3cml0ZXIubWluX2xlbmd0aCwgMTI3KSA9PSAtMSkKKyAgICAgICAgZ290byBvbkVycm9yOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgUHlfVUNTNCBjaCA9IDA7CisgICAgICAgIFB5X1VDUzQgbWF4Y2ggPSBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUod3JpdGVyLmJ1ZmZlcik7CisKKyAgICAgICAgaWYgKGUgLSBxID49IDQpIHsKKyAgICAgICAgICAgIGVudW0gUHlVbmljb2RlX0tpbmQga2luZCA9IHdyaXRlci5raW5kOworICAgICAgICAgICAgdm9pZCAqZGF0YSA9IHdyaXRlci5kYXRhOworICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqbGFzdCA9IGUgLSA0OworICAgICAgICAgICAgUHlfc3NpemVfdCBwb3MgPSB3cml0ZXIucG9zOworICAgICAgICAgICAgaWYgKGxlKSB7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBjaCA9IChxWzNdIDw8IDI0KSB8IChxWzJdIDw8IDE2KSB8IChxWzFdIDw8IDgpIHwgcVswXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoID4gbWF4Y2gpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKGtpbmQsIGRhdGEsIHBvcysrLCBjaCk7CisgICAgICAgICAgICAgICAgICAgIHEgKz0gNDsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChxIDw9IGxhc3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgICAgICBjaCA9IChxWzBdIDw8IDI0KSB8IChxWzFdIDw8IDE2KSB8IChxWzJdIDw8IDgpIHwgcVszXTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoID4gbWF4Y2gpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKGtpbmQsIGRhdGEsIHBvcysrLCBjaCk7CisgICAgICAgICAgICAgICAgICAgIHEgKz0gNDsKKyAgICAgICAgICAgICAgICB9IHdoaWxlIChxIDw9IGxhc3QpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd3JpdGVyLnBvcyA9IHBvczsKICAgICAgICAgfQotICAgIH0KIAotICAgIGlmIChibyA9PSAtMSkgewotICAgICAgICAvKiBmb3JjZSBMRSAqLwotICAgICAgICBpb3JkZXJbMF0gPSAwOwotICAgICAgICBpb3JkZXJbMV0gPSAxOwotICAgICAgICBpb3JkZXJbMl0gPSAyOwotICAgICAgICBpb3JkZXJbM10gPSAzOwotICAgIH0KLSAgICBlbHNlIGlmIChibyA9PSAxKSB7Ci0gICAgICAgIC8qIGZvcmNlIEJFICovCi0gICAgICAgIGlvcmRlclswXSA9IDM7Ci0gICAgICAgIGlvcmRlclsxXSA9IDI7Ci0gICAgICAgIGlvcmRlclsyXSA9IDE7Ci0gICAgICAgIGlvcmRlclszXSA9IDA7Ci0gICAgfQotCi0gICAgLyogVGhpcyBtaWdodCBiZSBvbmUgdG8gbXVjaCwgYmVjYXVzZSBvZiBhIEJPTSAqLwotICAgIHVuaWNvZGUgPSBQeVVuaWNvZGVfTmV3KChzaXplKzMpLzQsIDEyNyk7Ci0gICAgaWYgKCF1bmljb2RlKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAoc2l6ZSA9PSAwKQotICAgICAgICByZXR1cm4gdW5pY29kZTsKLSAgICBvdXRwb3MgPSAwOwotCi0gICAgd2hpbGUgKHEgPCBlKSB7Ci0gICAgICAgIFB5X1VDUzQgY2g7Ci0gICAgICAgIC8qIHJlbWFpbmluZyBieXRlcyBhdCB0aGUgZW5kPyAoc2l6ZSBzaG91bGQgYmUgZGl2aXNpYmxlIGJ5IDQpICovCi0gICAgICAgIGlmIChlLXE8NCkgewotICAgICAgICAgICAgaWYgKGNvbnN1bWVkKQorICAgICAgICBpZiAoY2ggPD0gbWF4Y2gpIHsKKyAgICAgICAgICAgIGlmIChxID09IGUgfHwgY29uc3VtZWQpCiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAvKiByZW1haW5pbmcgYnl0ZXMgYXQgdGhlIGVuZD8gKHNpemUgc2hvdWxkIGJlIGRpdmlzaWJsZSBieSA0KSAqLwogICAgICAgICAgICAgZXJybXNnID0gInRydW5jYXRlZCBkYXRhIjsKLSAgICAgICAgICAgIHN0YXJ0aW5wb3MgPSAoKGNvbnN0IGNoYXIgKilxKS1zdGFydHM7Ci0gICAgICAgICAgICBlbmRpbnBvcyA9ICgoY29uc3QgY2hhciAqKWUpLXN0YXJ0czsKLSAgICAgICAgICAgIGdvdG8gdXRmMzJFcnJvcjsKLSAgICAgICAgICAgIC8qIFRoZSByZW1haW5pbmcgaW5wdXQgY2hhcnMgYXJlIGlnbm9yZWQgaWYgdGhlIGNhbGxiYWNrCi0gICAgICAgICAgICAgICBjaG9vc2VzIHRvIHNraXAgdGhlIGlucHV0ICovCisgICAgICAgICAgICBzdGFydGlucG9zID0gKChjb25zdCBjaGFyICopcSkgLSBzdGFydHM7CisgICAgICAgICAgICBlbmRpbnBvcyA9ICgoY29uc3QgY2hhciAqKWUpIC0gc3RhcnRzOwogICAgICAgICB9Ci0gICAgICAgIGNoID0gKHFbaW9yZGVyWzNdXSA8PCAyNCkgfCAocVtpb3JkZXJbMl1dIDw8IDE2KSB8Ci0gICAgICAgICAgICAocVtpb3JkZXJbMV1dIDw8IDgpIHwgcVtpb3JkZXJbMF1dOwotCi0gICAgICAgIGlmIChjaCA+PSAweDExMDAwMCkKLSAgICAgICAgeworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChjaCA8IDB4MTEwMDAwKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfV3JpdGVDaGFySW5saW5lKCZ3cml0ZXIsIGNoKSA8IDApCisgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgICAgICAgICBxICs9IDQ7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBlcnJtc2cgPSAiY29kZXBvaW50IG5vdCBpbiByYW5nZSgweDExMDAwMCkiOwotICAgICAgICAgICAgc3RhcnRpbnBvcyA9ICgoY29uc3QgY2hhciAqKXEpLXN0YXJ0czsKLSAgICAgICAgICAgIGVuZGlucG9zID0gc3RhcnRpbnBvcys0OwotICAgICAgICAgICAgZ290byB1dGYzMkVycm9yOworICAgICAgICAgICAgc3RhcnRpbnBvcyA9ICgoY29uc3QgY2hhciAqKXEpIC0gc3RhcnRzOworICAgICAgICAgICAgZW5kaW5wb3MgPSBzdGFydGlucG9zICsgNDsKICAgICAgICAgfQotICAgICAgICBpZiAodW5pY29kZV9wdXRjaGFyKCZ1bmljb2RlLCAmb3V0cG9zLCBjaCkgPCAwKQotICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICBxICs9IDQ7Ci0gICAgICAgIGNvbnRpbnVlOwotICAgICAgdXRmMzJFcnJvcjoKLSAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAorCisgICAgICAgIC8qIFRoZSByZW1haW5pbmcgaW5wdXQgY2hhcnMgYXJlIGlnbm9yZWQgaWYgdGhlIGNhbGxiYWNrCisgICAgICAgICAgIGNob29zZXMgdG8gc2tpcCB0aGUgaW5wdXQgKi8KKyAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyX3dyaXRlcigKICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsCiAgICAgICAgICAgICAgICAgInV0ZjMyIiwgZXJybXNnLAogICAgICAgICAgICAgICAgICZzdGFydHMsIChjb25zdCBjaGFyICoqKSZlLCAmc3RhcnRpbnBvcywgJmVuZGlucG9zLCAmZXhjLCAoY29uc3QgY2hhciAqKikmcSwKLSAgICAgICAgICAgICAgICAmdW5pY29kZSwgJm91dHBvcykpCisgICAgICAgICAgICAgICAgJndyaXRlcikpCiAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgfQogCi0gICAgaWYgKGJ5dGVvcmRlcikKLSAgICAgICAgKmJ5dGVvcmRlciA9IGJvOwotCiAgICAgaWYgKGNvbnN1bWVkKQogICAgICAgICAqY29uc3VtZWQgPSAoY29uc3QgY2hhciAqKXEtc3RhcnRzOwogCi0gICAgLyogQWRqdXN0IGxlbmd0aCAqLwotICAgIGlmICh1bmljb2RlX3Jlc2l6ZSgmdW5pY29kZSwgb3V0cG9zKSA8IDApCi0gICAgICAgIGdvdG8gb25FcnJvcjsKLQogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKICAgICBQeV9YREVDUkVGKGV4Yyk7Ci0gICAgcmV0dXJuIHVuaWNvZGVfcmVzdWx0KHVuaWNvZGUpOworICAgIHJldHVybiBfUHlVbmljb2RlV3JpdGVyX0ZpbmlzaCgmd3JpdGVyKTsKIAogICBvbkVycm9yOgotICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKKyAgICBfUHlVbmljb2RlV3JpdGVyX0RlYWxsb2MoJndyaXRlcik7CiAgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOwogICAgIFB5X1hERUNSRUYoZXhjKTsKICAgICByZXR1cm4gTlVMTDsKQEAgLTUxMTEsNyArNTA4MSw3IEBACiAgICAgdW5zaWduZWQgY2hhciAqcDsKICAgICBQeV9zc2l6ZV90IG5zaXplLCBpOwogICAgIC8qIE9mZnNldHMgZnJvbSBwIGZvciBzdG9yaW5nIGJ5dGUgcGFpcnMgaW4gdGhlIHJpZ2h0IG9yZGVyLiAqLwotI2lmZGVmIEJZVEVPUkRFUl9JU19MSVRUTEVfRU5ESUFOCisjaWYgUFlfTElUVExFX0VORElBTgogICAgIGludCBpb3JkZXJbXSA9IHswLCAxLCAyLCAzfTsKICNlbHNlCiAgICAgaW50IGlvcmRlcltdID0gezMsIDIsIDEsIDB9OwpAQCAtNTIxNCw4ICs1MTg0LDcgQEAKICAgICBjb25zdCBjaGFyICpzdGFydHMgPSBzOwogICAgIFB5X3NzaXplX3Qgc3RhcnRpbnBvczsKICAgICBQeV9zc2l6ZV90IGVuZGlucG9zOwotICAgIFB5X3NzaXplX3Qgb3V0cG9zOwotICAgIFB5T2JqZWN0ICp1bmljb2RlOworICAgIF9QeVVuaWNvZGVXcml0ZXIgd3JpdGVyOwogICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnEsICplOwogICAgIGludCBibyA9IDA7ICAgICAgIC8qIGFzc3VtZSBuYXRpdmUgb3JkZXJpbmcgYnkgZGVmYXVsdCAqLwogICAgIGludCBuYXRpdmVfb3JkZXJpbmc7CkBAIC01MjUzLDcgKzUyMjIsNyBAQAogICAgICAgICBfUHlfUkVUVVJOX1VOSUNPREVfRU1QVFkoKTsKICAgICB9CiAKLSNpZmRlZiBCWVRFT1JERVJfSVNfTElUVExFX0VORElBTgorI2lmIFBZX0xJVFRMRV9FTkRJQU4KICAgICBuYXRpdmVfb3JkZXJpbmcgPSBibyA8PSAwOwogI2Vsc2UKICAgICBuYXRpdmVfb3JkZXJpbmcgPSBibyA+PSAwOwpAQCAtNTI2MSwzMiArNTIzMCwzMiBAQAogCiAgICAgLyogTm90ZTogc2l6ZSB3aWxsIGFsd2F5cyBiZSBsb25nZXIgdGhhbiB0aGUgcmVzdWx0aW5nIFVuaWNvZGUKICAgICAgICBjaGFyYWN0ZXIgY291bnQgKi8KLSAgICB1bmljb2RlID0gUHlVbmljb2RlX05ldygoZSAtIHEgKyAxKSAvIDIsIDEyNyk7Ci0gICAgaWYgKCF1bmljb2RlKQotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBfUHlVbmljb2RlV3JpdGVyX0luaXQoJndyaXRlcik7CisgICAgd3JpdGVyLm1pbl9sZW5ndGggPSAoZSAtIHEgKyAxKSAvIDI7CisgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZSgmd3JpdGVyLCB3cml0ZXIubWluX2xlbmd0aCwgMTI3KSA9PSAtMSkKKyAgICAgICAgZ290byBvbkVycm9yOwogCi0gICAgb3V0cG9zID0gMDsKICAgICB3aGlsZSAoMSkgewogICAgICAgICBQeV9VQ1M0IGNoID0gMDsKICAgICAgICAgaWYgKGUgLSBxID49IDIpIHsKLSAgICAgICAgICAgIGludCBraW5kID0gUHlVbmljb2RlX0tJTkQodW5pY29kZSk7CisgICAgICAgICAgICBpbnQga2luZCA9IHdyaXRlci5raW5kOwogICAgICAgICAgICAgaWYgKGtpbmQgPT0gUHlVbmljb2RlXzFCWVRFX0tJTkQpIHsKLSAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0lTX0FTQ0lJKHVuaWNvZGUpKQorICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfSVNfQVNDSUkod3JpdGVyLmJ1ZmZlcikpCiAgICAgICAgICAgICAgICAgICAgIGNoID0gYXNjaWlsaWJfdXRmMTZfZGVjb2RlKCZxLCBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV8xQllURV9EQVRBKHVuaWNvZGUpLCAmb3V0cG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQeV9VQ1MxKil3cml0ZXIuZGF0YSwgJndyaXRlci5wb3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aXZlX29yZGVyaW5nKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGNoID0gdWNzMWxpYl91dGYxNl9kZWNvZGUoJnEsIGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlXzFCWVRFX0RBVEEodW5pY29kZSksICZvdXRwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFB5X1VDUzEqKXdyaXRlci5kYXRhLCAmd3JpdGVyLnBvcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVfb3JkZXJpbmcpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChraW5kID09IFB5VW5pY29kZV8yQllURV9LSU5EKSB7CiAgICAgICAgICAgICAgICAgY2ggPSB1Y3MybGliX3V0ZjE2X2RlY29kZSgmcSwgZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV8yQllURV9EQVRBKHVuaWNvZGUpLCAmb3V0cG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgKFB5X1VDUzIqKXdyaXRlci5kYXRhLCAmd3JpdGVyLnBvcywKICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGl2ZV9vcmRlcmluZyk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGFzc2VydChraW5kID09IFB5VW5pY29kZV80QllURV9LSU5EKTsKICAgICAgICAgICAgICAgICBjaCA9IHVjczRsaWJfdXRmMTZfZGVjb2RlKCZxLCBlLAotICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlXzRCWVRFX0RBVEEodW5pY29kZSksICZvdXRwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAoUHlfVUNTNCopd3JpdGVyLmRhdGEsICZ3cml0ZXIucG9zLAogICAgICAgICAgICAgICAgICAgICAgICAgbmF0aXZlX29yZGVyaW5nKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNTMyMiwxMiArNTI5MSwxMiBAQAogICAgICAgICAgICAgZW5kaW5wb3MgPSBzdGFydGlucG9zICsgMjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdW5pY29kZSwgJm91dHBvcywgY2gpIDwgMCkKKyAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1dyaXRlQ2hhcklubGluZSgmd3JpdGVyLCBjaCkgPCAwKQogICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAorICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXJfd3JpdGVyKAogICAgICAgICAgICAgICAgIGVycm9ycywKICAgICAgICAgICAgICAgICAmZXJyb3JIYW5kbGVyLAogICAgICAgICAgICAgICAgICJ1dGYxNiIsIGVycm1zZywKQEAgLTUzMzcsOCArNTMwNiw3IEBACiAgICAgICAgICAgICAgICAgJmVuZGlucG9zLAogICAgICAgICAgICAgICAgICZleGMsCiAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKiopJnEsCi0gICAgICAgICAgICAgICAgJnVuaWNvZGUsCi0gICAgICAgICAgICAgICAgJm91dHBvcykpCisgICAgICAgICAgICAgICAgJndyaXRlcikpCiAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgfQogCkBAIC01MzQ2LDE2ICs1MzE0LDEyIEBACiAgICAgaWYgKGNvbnN1bWVkKQogICAgICAgICAqY29uc3VtZWQgPSAoY29uc3QgY2hhciAqKXEtc3RhcnRzOwogCi0gICAgLyogQWRqdXN0IGxlbmd0aCAqLwotICAgIGlmICh1bmljb2RlX3Jlc2l6ZSgmdW5pY29kZSwgb3V0cG9zKSA8IDApCi0gICAgICAgIGdvdG8gb25FcnJvcjsKLQogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKICAgICBQeV9YREVDUkVGKGV4Yyk7Ci0gICAgcmV0dXJuIHVuaWNvZGVfcmVzdWx0KHVuaWNvZGUpOworICAgIHJldHVybiBfUHlVbmljb2RlV3JpdGVyX0ZpbmlzaCgmd3JpdGVyKTsKIAogICBvbkVycm9yOgotICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKKyAgICBfUHlVbmljb2RlV3JpdGVyX0RlYWxsb2MoJndyaXRlcik7CiAgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOwogICAgIFB5X1hERUNSRUYoZXhjKTsKICAgICByZXR1cm4gTlVMTDsKQEAgLTUzNzMsNyArNTMzNyw3IEBACiAgICAgdW5zaWduZWQgc2hvcnQgKm91dDsKICAgICBQeV9zc2l6ZV90IGJ5dGVzaXplOwogICAgIFB5X3NzaXplX3QgcGFpcnM7Ci0jaWZkZWYgV09SRFNfQklHRU5ESUFOCisjaWYgUFlfQklHX0VORElBTgogICAgIGludCBuYXRpdmVfb3JkZXJpbmcgPSBieXRlb3JkZXIgPj0gMDsKICNlbHNlCiAgICAgaW50IG5hdGl2ZV9vcmRlcmluZyA9IGJ5dGVvcmRlciA8PSAwOwpAQCAtNTUyMSwyNyArNTQ4NSwyNiBAQAogICAgIGNvbnN0IGNoYXIgKnN0YXJ0cyA9IHM7CiAgICAgUHlfc3NpemVfdCBzdGFydGlucG9zOwogICAgIFB5X3NzaXplX3QgZW5kaW5wb3M7Ci0gICAgUHlPYmplY3QgKnY7CisgICAgX1B5VW5pY29kZVdyaXRlciB3cml0ZXI7CiAgICAgY29uc3QgY2hhciAqZW5kOwogICAgIGNoYXIqIG1lc3NhZ2U7CiAgICAgUHlfVUNTNCBjaHIgPSAweGZmZmZmZmZmOyAvKiBpbiBjYXNlICdnZXRjb2RlJyBtZXNzZXMgdXAgKi8KICAgICBQeU9iamVjdCAqZXJyb3JIYW5kbGVyID0gTlVMTDsKICAgICBQeU9iamVjdCAqZXhjID0gTlVMTDsKICAgICBQeV9zc2l6ZV90IGxlbjsKLSAgICBQeV9zc2l6ZV90IGk7CiAKICAgICBsZW4gPSBsZW5ndGhfb2ZfZXNjYXBlZF9hc2NpaV9zdHJpbmcocywgc2l6ZSk7CisgICAgaWYgKGxlbiA9PSAwKQorICAgICAgICBfUHlfUkVUVVJOX1VOSUNPREVfRU1QVFkoKTsKIAogICAgIC8qIEFmdGVyIGxlbmd0aF9vZl9lc2NhcGVkX2FzY2lpX3N0cmluZygpIHRoZXJlIGFyZSB0d28gYWx0ZXJuYXRpdmVzLAogICAgICAgIGVpdGhlciB0aGUgc3RyaW5nIGlzIHB1cmUgQVNDSUkgd2l0aCBuYW1lZCBlc2NhcGVzIGxpa2UgXG4sIGV0Yy4KICAgICAgICBhbmQgd2UgZGV0ZXJtaW5lZCBpdCdzIGV4YWN0IHNpemUgKGNvbW1vbiBjYXNlKQogICAgICAgIG9yIGl0IGNvbnRhaW5zIFx4LCBcdSwgLi4uIGVzY2FwZSBzZXF1ZW5jZXMuICB0aGVuIHdlIGNyZWF0ZSBhCiAgICAgICAgbGVnYWN5IHdjaGFyIHN0cmluZyBhbmQgcmVzaXplIGl0IGF0IHRoZSBlbmQgb2YgdGhpcyBmdW5jdGlvbi4gKi8KLSAgICBpZiAobGVuID49IDApIHsKLSAgICAgICAgdiA9IFB5VW5pY29kZV9OZXcobGVuLCAxMjcpOwotICAgICAgICBpZiAoIXYpCi0gICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgIGFzc2VydChQeVVuaWNvZGVfS0lORCh2KSA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORCk7CisgICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIpOworICAgIGlmIChsZW4gPiAwKSB7CisgICAgICAgIHdyaXRlci5taW5fbGVuZ3RoID0gbGVuOwogICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgLyogRXNjYXBlZCBzdHJpbmdzIHdpbGwgYWx3YXlzIGJlIGxvbmdlciB0aGFuIHRoZSByZXN1bHRpbmcKQEAgLTU1NDksMTUgKzU1MTIsMTEgQEAKICAgICAgICAgICAgbGVuZ3RoIGFmdGVyIGNvbnZlcnNpb24gdG8gdGhlIHRydWUgdmFsdWUuCiAgICAgICAgICAgIChidXQgaWYgdGhlIGVycm9yIGNhbGxiYWNrIHJldHVybnMgYSBsb25nIHJlcGxhY2VtZW50IHN0cmluZwogICAgICAgICAgICB3ZSdsbCBoYXZlIHRvIGFsbG9jYXRlIG1vcmUgc3BhY2UpICovCi0gICAgICAgIHYgPSBQeVVuaWNvZGVfTmV3KHNpemUsIDEyNyk7Ci0gICAgICAgIGlmICghdikKLSAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgbGVuID0gc2l6ZTsKKyAgICAgICAgd3JpdGVyLm1pbl9sZW5ndGggPSBzaXplOwogICAgIH0KIAogICAgIGlmIChzaXplID09IDApCi0gICAgICAgIHJldHVybiB2OwotICAgIGkgPSAwOworICAgICAgICByZXR1cm4gX1B5VW5pY29kZVdyaXRlcl9GaW5pc2goJndyaXRlcik7CiAgICAgZW5kID0gcyArIHNpemU7CiAKICAgICB3aGlsZSAocyA8IGVuZCkgewpAQCAtNTU2NSwxMyArNTUyNCwxMSBAQAogICAgICAgICBQeV9VQ1M0IHg7CiAgICAgICAgIGludCBkaWdpdHM7CiAKLSAgICAgICAgLyogVGhlIG9ubHkgY2FzZSBpbiB3aGljaCBpID09IGFzY2lpX2xlbmd0aCBpcyBhIGJhY2tzbGFzaAotICAgICAgICAgICBmb2xsb3dlZCBieSBhIG5ld2xpbmUuICovCi0gICAgICAgIGFzc2VydChpIDw9IGxlbik7Ci0KICAgICAgICAgLyogTm9uLWVzY2FwZSBjaGFyYWN0ZXJzIGFyZSBpbnRlcnByZXRlZCBhcyBVbmljb2RlIG9yZGluYWxzICovCiAgICAgICAgIGlmICgqcyAhPSAnXFwnKSB7Ci0gICAgICAgICAgICBpZiAodW5pY29kZV9wdXRjaGFyKCZ2LCAmaSwgKHVuc2lnbmVkIGNoYXIpICpzKyspIDwgMCkKKyAgICAgICAgICAgIHggPSAodW5zaWduZWQgY2hhcikqczsKKyAgICAgICAgICAgIHMrKzsKKyAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1dyaXRlQ2hhcklubGluZSgmd3JpdGVyLCB4KSA8IDApCiAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTU1ODMsMTggKzU1NDAsMTQgQEAKICAgICAgICAgaWYgKHMgPiBlbmQpCiAgICAgICAgICAgICBjID0gJ1wwJzsgLyogSW52YWxpZCBhZnRlciBcICovCiAKLSAgICAgICAgLyogVGhlIG9ubHkgY2FzZSBpbiB3aGljaCBpID09IGFzY2lpX2xlbmd0aCBpcyBhIGJhY2tzbGFzaAotICAgICAgICAgICBmb2xsb3dlZCBieSBhIG5ld2xpbmUuICovCi0gICAgICAgIGFzc2VydChpIDwgbGVuIHx8IChpID09IGxlbiAmJiBjID09ICdcbicpKTsKLQogICAgICAgICBzd2l0Y2ggKGMpIHsKIAogICAgICAgICAgICAgLyogXHggZXNjYXBlcyAqLwotI2RlZmluZSBXUklURUNIQVIoY2gpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBpZiAodW5pY29kZV9wdXRjaGFyKCZ2LCAmaSwgY2gpIDwgMCkgICAgXAotICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICB9d2hpbGUoMCkKKyNkZWZpbmUgV1JJVEVDSEFSKGNoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9Xcml0ZUNoYXJJbmxpbmUoJndyaXRlciwgKGNoKSkgPCAwKSAgICBcCisgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICB9IHdoaWxlKDApCiAKICAgICAgICAgY2FzZSAnXG4nOiBicmVhazsKICAgICAgICAgY2FzZSAnXFwnOiBXUklURUNIQVIoJ1xcJyk7IGJyZWFrOwpAQCAtNTcxOCwzNSArNTY3MSwzMiBAQAogCiAgICAgICBlcnJvcjoKICAgICAgICAgZW5kaW5wb3MgPSBzLXN0YXJ0czsKLSAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAorICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXJfd3JpdGVyKAogICAgICAgICAgICAgICAgIGVycm9ycywgJmVycm9ySGFuZGxlciwKICAgICAgICAgICAgICAgICAidW5pY29kZWVzY2FwZSIsIG1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgJnN0YXJ0cywgJmVuZCwgJnN0YXJ0aW5wb3MsICZlbmRpbnBvcywgJmV4YywgJnMsCi0gICAgICAgICAgICAgICAgJnYsICZpKSkKKyAgICAgICAgICAgICAgICAmd3JpdGVyKSkKICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodik7CiAgICAgICAgIGNvbnRpbnVlOwogICAgIH0KICN1bmRlZiBXUklURUNIQVIKIAotICAgIGlmICh1bmljb2RlX3Jlc2l6ZSgmdiwgaSkgPCAwKQotICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOwogICAgIFB5X1hERUNSRUYoZXhjKTsKLSAgICByZXR1cm4gdW5pY29kZV9yZXN1bHQodik7CisgICAgcmV0dXJuIF9QeVVuaWNvZGVXcml0ZXJfRmluaXNoKCZ3cml0ZXIpOwogCiAgIHVjbmhhc2hFcnJvcjoKICAgICBQeUVycl9TZXRTdHJpbmcoCiAgICAgICAgIFB5RXhjX1VuaWNvZGVFcnJvciwKICAgICAgICAgIlxcTiBlc2NhcGVzIG5vdCBzdXBwb3J0ZWQgKGNhbid0IGxvYWQgdW5pY29kZWRhdGEgbW9kdWxlKSIKICAgICAgICAgKTsKLSAgICBQeV9YREVDUkVGKHYpOworICAgIF9QeVVuaWNvZGVXcml0ZXJfRGVhbGxvYygmd3JpdGVyKTsKICAgICBQeV9YREVDUkVGKGVycm9ySGFuZGxlcik7CiAgICAgUHlfWERFQ1JFRihleGMpOwogICAgIHJldHVybiBOVUxMOwogCiAgIG9uRXJyb3I6Ci0gICAgUHlfWERFQ1JFRih2KTsKKyAgICBfUHlVbmljb2RlV3JpdGVyX0RlYWxsb2MoJndyaXRlcik7CiAgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOwogICAgIFB5X1hERUNSRUYoZXhjKTsKICAgICByZXR1cm4gTlVMTDsKQEAgLTU4OTksMjMgKzU4NDksMjIgQEAKICAgICBjb25zdCBjaGFyICpzdGFydHMgPSBzOwogICAgIFB5X3NzaXplX3Qgc3RhcnRpbnBvczsKICAgICBQeV9zc2l6ZV90IGVuZGlucG9zOwotICAgIFB5X3NzaXplX3Qgb3V0cG9zOwotICAgIFB5T2JqZWN0ICp2OworICAgIF9QeVVuaWNvZGVXcml0ZXIgd3JpdGVyOwogICAgIGNvbnN0IGNoYXIgKmVuZDsKICAgICBjb25zdCBjaGFyICpiczsKICAgICBQeU9iamVjdCAqZXJyb3JIYW5kbGVyID0gTlVMTDsKICAgICBQeU9iamVjdCAqZXhjID0gTlVMTDsKIAorICAgIGlmIChzaXplID09IDApCisgICAgICAgIF9QeV9SRVRVUk5fVU5JQ09ERV9FTVBUWSgpOworCiAgICAgLyogRXNjYXBlZCBzdHJpbmdzIHdpbGwgYWx3YXlzIGJlIGxvbmdlciB0aGFuIHRoZSByZXN1bHRpbmcKICAgICAgICBVbmljb2RlIHN0cmluZywgc28gd2Ugc3RhcnQgd2l0aCBzaXplIGhlcmUgYW5kIHRoZW4gcmVkdWNlIHRoZQogICAgICAgIGxlbmd0aCBhZnRlciBjb252ZXJzaW9uIHRvIHRoZSB0cnVlIHZhbHVlLiAoQnV0IGRlY29kaW5nIGVycm9yCiAgICAgICAgaGFuZGxlciBtaWdodCBoYXZlIHRvIHJlc2l6ZSB0aGUgc3RyaW5nKSAqLwotICAgIHYgPSBQeVVuaWNvZGVfTmV3KHNpemUsIDEyNyk7Ci0gICAgaWYgKHYgPT0gTlVMTCkKLSAgICAgICAgZ290byBvbkVycm9yOwotICAgIGlmIChzaXplID09IDApCi0gICAgICAgIHJldHVybiB2OwotICAgIG91dHBvcyA9IDA7CisgICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIpOworICAgIHdyaXRlci5taW5fbGVuZ3RoID0gc2l6ZTsKKwogICAgIGVuZCA9IHMgKyBzaXplOwogICAgIHdoaWxlIChzIDwgZW5kKSB7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzsKQEAgLTU5MjUsNyArNTg3NCw4IEBACiAKICAgICAgICAgLyogTm9uLWVzY2FwZSBjaGFyYWN0ZXJzIGFyZSBpbnRlcnByZXRlZCBhcyBVbmljb2RlIG9yZGluYWxzICovCiAgICAgICAgIGlmICgqcyAhPSAnXFwnKSB7Ci0gICAgICAgICAgICBpZiAodW5pY29kZV9wdXRjaGFyKCZ2LCAmb3V0cG9zLCAodW5zaWduZWQgY2hhcikqcysrKSA8IDApCisgICAgICAgICAgICB4ID0gKHVuc2lnbmVkIGNoYXIpKnMrKzsKKyAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1dyaXRlQ2hhcklubGluZSgmd3JpdGVyLCB4KSA8IDApCiAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTU5MzcsNyArNTg4Nyw4IEBACiAgICAgICAgIGZvciAoO3MgPCBlbmQ7KSB7CiAgICAgICAgICAgICBpZiAoKnMgIT0gJ1xcJykKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGlmICh1bmljb2RlX3B1dGNoYXIoJnYsICZvdXRwb3MsICh1bnNpZ25lZCBjaGFyKSpzKyspIDwgMCkKKyAgICAgICAgICAgIHggPSAodW5zaWduZWQgY2hhcikqcysrOworICAgICAgICAgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfV3JpdGVDaGFySW5saW5lKCZ3cml0ZXIsIHgpIDwgMCkKICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCgocyAtIGJzKSAmIDEpID09IDAgfHwKQEAgLTU5NDUsNyArNTg5Niw3IEBACiAgICAgICAgICAgICAoKnMgIT0gJ3UnICYmICpzICE9ICdVJykpIHsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIG91dHBvcy0tOworICAgICAgICB3cml0ZXIucG9zLS07CiAgICAgICAgIGNvdW50ID0gKnM9PSd1JyA/IDQgOiA4OwogICAgICAgICBzKys7CiAKQEAgLTU5NTQsMTEgKzU5MDUsMTEgQEAKICAgICAgICAgICAgIGMgPSAodW5zaWduZWQgY2hhcikqczsKICAgICAgICAgICAgIGlmICghUHlfSVNYRElHSVQoYykpIHsKICAgICAgICAgICAgICAgICBlbmRpbnBvcyA9IHMtc3RhcnRzOwotICAgICAgICAgICAgICAgIGlmICh1bmljb2RlX2RlY29kZV9jYWxsX2Vycm9yaGFuZGxlcigKKyAgICAgICAgICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXJfd3JpdGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLCAmZXJyb3JIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgInJhd3VuaWNvZGVlc2NhcGUiLCAidHJ1bmNhdGVkIFxcdVhYWFgiLAogICAgICAgICAgICAgICAgICAgICAgICAgJnN0YXJ0cywgJmVuZCwgJnN0YXJ0aW5wb3MsICZlbmRpbnBvcywgJmV4YywgJnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAmdiwgJm91dHBvcykpCisgICAgICAgICAgICAgICAgICAgICAgICAmd3JpdGVyKSkKICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgICAgIGdvdG8gbmV4dEJ5dGU7CiAgICAgICAgICAgICB9CkBAIC01OTcxLDI4ICs1OTIyLDI3IEBACiAgICAgICAgICAgICAgICAgeCArPSAxMCArIGMgLSAnQSc7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHggPD0gTUFYX1VOSUNPREUpIHsKLSAgICAgICAgICAgIGlmICh1bmljb2RlX3B1dGNoYXIoJnYsICZvdXRwb3MsIHgpIDwgMCkKKyAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1dyaXRlQ2hhcklubGluZSgmd3JpdGVyLCB4KSA8IDApCiAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICB9IGVsc2UgeworICAgICAgICB9CisgICAgICAgIGVsc2UgewogICAgICAgICAgICAgZW5kaW5wb3MgPSBzLXN0YXJ0czsKLSAgICAgICAgICAgIGlmICh1bmljb2RlX2RlY29kZV9jYWxsX2Vycm9yaGFuZGxlcigKKyAgICAgICAgICAgIGlmICh1bmljb2RlX2RlY29kZV9jYWxsX2Vycm9yaGFuZGxlcl93cml0ZXIoCiAgICAgICAgICAgICAgICAgICAgIGVycm9ycywgJmVycm9ySGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgInJhd3VuaWNvZGVlc2NhcGUiLCAiXFxVeHh4eHh4eHggb3V0IG9mIHJhbmdlIiwKICAgICAgICAgICAgICAgICAgICAgJnN0YXJ0cywgJmVuZCwgJnN0YXJ0aW5wb3MsICZlbmRpbnBvcywgJmV4YywgJnMsCi0gICAgICAgICAgICAgICAgICAgICZ2LCAmb3V0cG9zKSkKKyAgICAgICAgICAgICAgICAgICAgJndyaXRlcikpCiAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICB9CiAgICAgICBuZXh0Qnl0ZToKICAgICAgICAgOwogICAgIH0KLSAgICBpZiAodW5pY29kZV9yZXNpemUoJnYsIG91dHBvcykgPCAwKQotICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOwogICAgIFB5X1hERUNSRUYoZXhjKTsKLSAgICByZXR1cm4gdW5pY29kZV9yZXN1bHQodik7CisgICAgcmV0dXJuIF9QeVVuaWNvZGVXcml0ZXJfRmluaXNoKCZ3cml0ZXIpOwogCiAgIG9uRXJyb3I6Ci0gICAgUHlfWERFQ1JFRih2KTsKKyAgICBfUHlVbmljb2RlV3JpdGVyX0RlYWxsb2MoJndyaXRlcik7CiAgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOwogICAgIFB5X1hERUNSRUYoZXhjKTsKICAgICByZXR1cm4gTlVMTDsKQEAgLTYwOTIsOCArNjA0Miw3IEBACiAgICAgY29uc3QgY2hhciAqc3RhcnRzID0gczsKICAgICBQeV9zc2l6ZV90IHN0YXJ0aW5wb3M7CiAgICAgUHlfc3NpemVfdCBlbmRpbnBvczsKLSAgICBQeV9zc2l6ZV90IG91dHBvczsKLSAgICBQeU9iamVjdCAqdjsKKyAgICBfUHlVbmljb2RlV3JpdGVyIHdyaXRlcjsKICAgICBjb25zdCBjaGFyICplbmQ7CiAgICAgY29uc3QgY2hhciAqcmVhc29uOwogICAgIFB5T2JqZWN0ICplcnJvckhhbmRsZXIgPSBOVUxMOwpAQCAtNjEwNCwxNSArNjA1MywxNyBAQAogICAgICAgICAgICAgICAgICAgICAgMSkpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgLyogWFhYIG92ZXJmbG93IGRldGVjdGlvbiBtaXNzaW5nICovCi0gICAgdiA9IFB5VW5pY29kZV9OZXcoKHNpemUrUHlfVU5JQ09ERV9TSVpFLTEpLyBQeV9VTklDT0RFX1NJWkUsIDEyNyk7Ci0gICAgaWYgKHYgPT0gTlVMTCkKLSAgICAgICAgZ290byBvbkVycm9yOwotICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSCh2KSA9PSAwKQotICAgICAgICByZXR1cm4gdjsKLSAgICBvdXRwb3MgPSAwOwotICAgIGVuZCA9IHMgKyBzaXplOworICAgIGlmIChzaXplID09IDApCisgICAgICAgIF9QeV9SRVRVUk5fVU5JQ09ERV9FTVBUWSgpOwogCisgICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIpOworICAgIGlmIChzaXplIC8gUHlfVU5JQ09ERV9TSVpFID4gUFlfU1NJWkVfVF9NQVggLSAxKSB7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICB9CisgICAgd3JpdGVyLm1pbl9sZW5ndGggPSAoc2l6ZSArIChQeV9VTklDT0RFX1NJWkUgLSAxKSkgLyBQeV9VTklDT0RFX1NJWkU7CisKKyAgICBlbmQgPSBzICsgc2l6ZTsKICAgICB3aGlsZSAocyA8IGVuZCkgewogICAgICAgICBQeV9VTklDT0RFIHVjaDsKICAgICAgICAgUHlfVUNTNCBjaDsKQEAgLTYxNTQsMjggKzYxMDUsMjYgQEAKICAgICAgICAgfQogI2VuZGlmCiAKLSAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdiwgJm91dHBvcywgY2gpIDwgMCkKKyAgICAgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfV3JpdGVDaGFySW5saW5lKCZ3cml0ZXIsIGNoKSA8IDApCiAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgIGNvbnRpbnVlOwogCiAgIGVycm9yOgogICAgICAgICBzdGFydGlucG9zID0gcyAtIHN0YXJ0czsKLSAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAorICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXJfd3JpdGVyKAogICAgICAgICAgICAgICAgIGVycm9ycywgJmVycm9ySGFuZGxlciwKICAgICAgICAgICAgICAgICAidW5pY29kZV9pbnRlcm5hbCIsIHJlYXNvbiwKICAgICAgICAgICAgICAgICAmc3RhcnRzLCAmZW5kLCAmc3RhcnRpbnBvcywgJmVuZGlucG9zLCAmZXhjLCAmcywKLSAgICAgICAgICAgICAgICAmdiwgJm91dHBvcykpCisgICAgICAgICAgICAgICAgJndyaXRlcikpCiAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgfQogCi0gICAgaWYgKHVuaWNvZGVfcmVzaXplKCZ2LCBvdXRwb3MpIDwgMCkKLSAgICAgICAgZ290byBvbkVycm9yOwogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKICAgICBQeV9YREVDUkVGKGV4Yyk7Ci0gICAgcmV0dXJuIHVuaWNvZGVfcmVzdWx0KHYpOworICAgIHJldHVybiBfUHlVbmljb2RlV3JpdGVyX0ZpbmlzaCgmd3JpdGVyKTsKIAogICBvbkVycm9yOgotICAgIFB5X1hERUNSRUYodik7CisgICAgX1B5VW5pY29kZVdyaXRlcl9EZWFsbG9jKCZ3cml0ZXIpOwogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKICAgICBQeV9YREVDUkVGKGV4Yyk7CiAgICAgcmV0dXJuIE5VTEw7CkBAIC02NTM5LDcgKzY0ODgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKIHsKICAgICBjb25zdCBjaGFyICpzdGFydHMgPSBzOwotICAgIFB5T2JqZWN0ICp1bmljb2RlOworICAgIF9QeVVuaWNvZGVXcml0ZXIgd3JpdGVyOwogICAgIGludCBraW5kOwogICAgIHZvaWQgKmRhdGE7CiAgICAgUHlfc3NpemVfdCBzdGFydGlucG9zOwpAQCAtNjU1Niw0NiArNjUwNSw0NiBAQAogICAgIGlmIChzaXplID09IDEgJiYgKHVuc2lnbmVkIGNoYXIpc1swXSA8IDEyOCkKICAgICAgICAgcmV0dXJuIGdldF9sYXRpbjFfY2hhcigodW5zaWduZWQgY2hhcilzWzBdKTsKIAotICAgIHVuaWNvZGUgPSBQeVVuaWNvZGVfTmV3KHNpemUsIDEyNyk7Ci0gICAgaWYgKHVuaWNvZGUgPT0gTlVMTCkKLSAgICAgICAgZ290byBvbkVycm9yOworICAgIF9QeVVuaWNvZGVXcml0ZXJfSW5pdCgmd3JpdGVyKTsKKyAgICB3cml0ZXIubWluX2xlbmd0aCA9IHNpemU7CisgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZSgmd3JpdGVyLCB3cml0ZXIubWluX2xlbmd0aCwgMTI3KSA8IDApCisgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgZSA9IHMgKyBzaXplOwotICAgIGRhdGEgPSBQeVVuaWNvZGVfMUJZVEVfREFUQSh1bmljb2RlKTsKKyAgICBkYXRhID0gd3JpdGVyLmRhdGE7CiAgICAgb3V0cG9zID0gYXNjaWlfZGVjb2RlKHMsIGUsIChQeV9VQ1MxICopZGF0YSk7Ci0gICAgaWYgKG91dHBvcyA9PSBzaXplKQotICAgICAgICByZXR1cm4gdW5pY29kZTsKKyAgICB3cml0ZXIucG9zID0gb3V0cG9zOworICAgIGlmICh3cml0ZXIucG9zID09IHNpemUpCisgICAgICAgIHJldHVybiBfUHlVbmljb2RlV3JpdGVyX0ZpbmlzaCgmd3JpdGVyKTsKIAotICAgIHMgKz0gb3V0cG9zOwotICAgIGtpbmQgPSBQeVVuaWNvZGVfMUJZVEVfS0lORDsKKyAgICBzICs9IHdyaXRlci5wb3M7CisgICAga2luZCA9IHdyaXRlci5raW5kOwogICAgIHdoaWxlIChzIDwgZSkgewogICAgICAgICByZWdpc3RlciB1bnNpZ25lZCBjaGFyIGMgPSAodW5zaWduZWQgY2hhcikqczsKICAgICAgICAgaWYgKGMgPCAxMjgpIHsKLSAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShraW5kLCBkYXRhLCBvdXRwb3MrKywgYyk7CisgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUoa2luZCwgZGF0YSwgd3JpdGVyLnBvcywgYyk7CisgICAgICAgICAgICB3cml0ZXIucG9zKys7CiAgICAgICAgICAgICArK3M7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBzdGFydGlucG9zID0gcy1zdGFydHM7CiAgICAgICAgICAgICBlbmRpbnBvcyA9IHN0YXJ0aW5wb3MgKyAxOwotICAgICAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAorICAgICAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyX3dyaXRlcigKICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLCAmZXJyb3JIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAiYXNjaWkiLCAib3JkaW5hbCBub3QgaW4gcmFuZ2UoMTI4KSIsCiAgICAgICAgICAgICAgICAgICAgICZzdGFydHMsICZlLCAmc3RhcnRpbnBvcywgJmVuZGlucG9zLCAmZXhjLCAmcywKLSAgICAgICAgICAgICAgICAgICAgJnVuaWNvZGUsICZvdXRwb3MpKQorICAgICAgICAgICAgICAgICAgICAmd3JpdGVyKSkKICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICBraW5kID0gUHlVbmljb2RlX0tJTkQodW5pY29kZSk7Ci0gICAgICAgICAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEodW5pY29kZSk7CisgICAgICAgICAgICBraW5kID0gd3JpdGVyLmtpbmQ7CisgICAgICAgICAgICBkYXRhID0gd3JpdGVyLmRhdGE7CiAgICAgICAgIH0KICAgICB9Ci0gICAgaWYgKHVuaWNvZGVfcmVzaXplKCZ1bmljb2RlLCBvdXRwb3MpIDwgMCkKLSAgICAgICAgZ290byBvbkVycm9yOwogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKICAgICBQeV9YREVDUkVGKGV4Yyk7Ci0gICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeSh1bmljb2RlLCAxKSk7Ci0gICAgcmV0dXJuIHVuaWNvZGU7CisgICAgcmV0dXJuIF9QeVVuaWNvZGVXcml0ZXJfRmluaXNoKCZ3cml0ZXIpOwogCiAgIG9uRXJyb3I6Ci0gICAgUHlfWERFQ1JFRih1bmljb2RlKTsKKyAgICBfUHlVbmljb2RlV3JpdGVyX0RlYWxsb2MoJndyaXRlcik7CiAgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOwogICAgIFB5X1hERUNSRUYoZXhjKTsKICAgICByZXR1cm4gTlVMTDsKQEAgLTY2MjcsNyArNjU3Niw3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIC8qIEZhc3QgcGF0aDogaWYgaXQgaXMgYW4gQVNDSUktb25seSBzdHJpbmcsIGNvbnN0cnVjdCBieXRlcyBvYmplY3QKICAgICAgICBkaXJlY3RseS4gRWxzZSBkZWZlciB0byBhYm92ZSBmdW5jdGlvbiB0byByYWlzZSB0aGUgZXhjZXB0aW9uLiAqLwotICAgIGlmIChQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUodW5pY29kZSkgPCAxMjgpCisgICAgaWYgKFB5VW5pY29kZV9JU19BU0NJSSh1bmljb2RlKSkKICAgICAgICAgcmV0dXJuIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoUHlVbmljb2RlX0RBVEEodW5pY29kZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpKTsKICAgICByZXR1cm4gdW5pY29kZV9lbmNvZGVfdWNzMSh1bmljb2RlLCBlcnJvcnMsIDEyOCk7CkBAIC02NzA1LDggKzY2NTQsOCBAQAogICogRGVjb2RlIGEgYnl0ZSBzdHJpbmcgZnJvbSBhIFdpbmRvd3MgY29kZSBwYWdlIGludG8gdW5pY29kZSBvYmplY3QgaW4gc3RyaWN0CiAgKiBtb2RlLgogICoKLSAqIFJldHVybnMgY29uc3VtZWQgc2l6ZSBpZiBzdWNjZWVkLCByZXR1cm5zIC0yIG9uIGRlY29kZSBlcnJvciwgb3IgcmFpc2UgYQotICogV2luZG93c0Vycm9yIGFuZCByZXR1cm5zIC0xIG9uIG90aGVyIGVycm9yLgorICogUmV0dXJucyBjb25zdW1lZCBzaXplIGlmIHN1Y2NlZWQsIHJldHVybnMgLTIgb24gZGVjb2RlIGVycm9yLCBvciByYWlzZSBhbgorICogT1NFcnJvciBhbmQgcmV0dXJucyAtMSBvbiBvdGhlciBlcnJvci4KICAqLwogc3RhdGljIGludAogZGVjb2RlX2NvZGVfcGFnZV9zdHJpY3QoVUlOVCBjb2RlX3BhZ2UsCkBAIC02NzU3LDcgKzY3MDYsNyBAQAogICogRGVjb2RlIGEgYnl0ZSBzdHJpbmcgZnJvbSBhIGNvZGUgcGFnZSBpbnRvIHVuaWNvZGUgb2JqZWN0IHdpdGggYW4gZXJyb3IKICAqIGhhbmRsZXIuCiAgKgotICogUmV0dXJucyBjb25zdW1lZCBzaXplIGlmIHN1Y2NlZWQsIG9yIHJhaXNlIGEgV2luZG93c0Vycm9yIG9yCisgKiBSZXR1cm5zIGNvbnN1bWVkIHNpemUgaWYgc3VjY2VlZCwgb3IgcmFpc2UgYW4gT1NFcnJvciBvcgogICogVW5pY29kZURlY29kZUVycm9yIGV4Y2VwdGlvbiBhbmQgcmV0dXJucyAtMSBvbiBlcnJvci4KICAqLwogc3RhdGljIGludApAQCAtNjc3Niw3ICs2NzI1LDggQEAKICAgICAvKiBlYWNoIHN0ZXAgY2Fubm90IGRlY29kZSBtb3JlIHRoYW4gMSBjaGFyYWN0ZXIsIGJ1dCBhIGNoYXJhY3RlciBjYW4gYmUKICAgICAgICByZXByZXNlbnRlZCBhcyBhIHN1cnJvZ2F0ZSBwYWlyICovCiAgICAgd2NoYXJfdCBidWZmZXJbMl0sICpzdGFydG91dCwgKm91dDsKLSAgICBpbnQgaW5zaXplLCBvdXRzaXplOworICAgIGludCBpbnNpemU7CisgICAgUHlfc3NpemVfdCBvdXRzaXplOwogICAgIFB5T2JqZWN0ICplcnJvckhhbmRsZXIgPSBOVUxMOwogICAgIFB5T2JqZWN0ICpleGMgPSBOVUxMOwogICAgIFB5T2JqZWN0ICplbmNvZGluZ19vYmogPSBOVUxMOwpAQCAtNjg1Niw3ICs2ODA2LDcgQEAKICAgICAgICAgICAgIHN0YXJ0aW5wb3MgPSBpbiAtIHN0YXJ0aW47CiAgICAgICAgICAgICBlbmRpbnBvcyA9IHN0YXJ0aW5wb3MgKyAxOwogICAgICAgICAgICAgb3V0cG9zID0gb3V0IC0gUHlVbmljb2RlX0FTX1VOSUNPREUoKnYpOwotICAgICAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAorICAgICAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyX3djaGFyKAogICAgICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nLCByZWFzb24sCiAgICAgICAgICAgICAgICAgICAgICZzdGFydGluLCAmZW5kaW4sICZzdGFydGlucG9zLCAmZW5kaW5wb3MsICZleGMsICZpbiwKQEAgLTcwMTIsNyArNjk2Miw3IEBACiAgKiBtb2RlLgogICoKICAqIFJldHVybnMgY29uc3VtZWQgY2hhcmFjdGVycyBpZiBzdWNjZWVkLCByZXR1cm5zIC0yIG9uIGVuY29kZSBlcnJvciwgb3IgcmFpc2UKLSAqIGEgV2luZG93c0Vycm9yIGFuZCByZXR1cm5zIC0xIG9uIG90aGVyIGVycm9yLgorICogYW4gT1NFcnJvciBhbmQgcmV0dXJucyAtMSBvbiBvdGhlciBlcnJvci4KICAqLwogc3RhdGljIGludAogZW5jb2RlX2NvZGVfcGFnZV9zdHJpY3QoVUlOVCBjb2RlX3BhZ2UsIFB5T2JqZWN0ICoqb3V0Ynl0ZXMsCkBAIC03MDQ2LDEwICs2OTk2LDExIEBACiAgICAgICAgIFB5X0RFQ1JFRihzdWJzdHJpbmcpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQorICAgIGFzc2VydChzaXplIDw9IElOVF9NQVgpOwogCiAgICAgLyogRmlyc3QgZ2V0IHRoZSBzaXplIG9mIHRoZSByZXN1bHQgKi8KICAgICBvdXRzaXplID0gV2lkZUNoYXJUb011bHRpQnl0ZShjb2RlX3BhZ2UsIGZsYWdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAsIHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCwgKGludClzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgcHVzZWREZWZhdWx0Q2hhcik7CiAgICAgaWYgKG91dHNpemUgPD0gMCkKQEAgLTcwODYsNyArNzAzNyw3IEBACiAKICAgICAvKiBEbyB0aGUgY29udmVyc2lvbiAqLwogICAgIG91dHNpemUgPSBXaWRlQ2hhclRvTXVsdGlCeXRlKGNvZGVfcGFnZSwgZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCwgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLCAoaW50KXNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0LCBvdXRzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIHB1c2VkRGVmYXVsdENoYXIpOwogICAgIFB5X0NMRUFSKHN1YnN0cmluZyk7CkBAIC03MTA4LDcgKzcwNTksNyBAQAogICogRW5jb2RlIGEgVW5pY29kZSBzdHJpbmcgdG8gYSBXaW5kb3dzIGNvZGUgcGFnZSBpbnRvIGEgYnl0ZSBzdHJpbmcgdXNpbmcgYQogICogZXJyb3IgaGFuZGxlci4KICAqCi0gKiBSZXR1cm5zIGNvbnN1bWVkIGNoYXJhY3RlcnMgaWYgc3VjY2VlZCwgb3IgcmFpc2UgYSBXaW5kb3dzRXJyb3IgYW5kIHJldHVybnMKKyAqIFJldHVybnMgY29uc3VtZWQgY2hhcmFjdGVycyBpZiBzdWNjZWVkLCBvciByYWlzZSBhbiBPU0Vycm9yIGFuZCByZXR1cm5zCiAgKiAtMSBvbiBvdGhlciBlcnJvci4KICAqLwogc3RhdGljIGludApAQCAtNzE5NCw5ICs3MTQ1LDggQEAKICAgICAgICAgICAgIGNoYXJzaXplID0gMTsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGNoIC09IDB4MTAwMDA7Ci0gICAgICAgICAgICBjaGFyc1swXSA9IDB4ZDgwMCArIChjaCA+PiAxMCk7Ci0gICAgICAgICAgICBjaGFyc1sxXSA9IDB4ZGMwMCArIChjaCAmIDB4M2ZmKTsKKyAgICAgICAgICAgIGNoYXJzWzBdID0gUHlfVU5JQ09ERV9ISUdIX1NVUlJPR0FURShjaCk7CisgICAgICAgICAgICBjaGFyc1sxXSA9IFB5X1VOSUNPREVfTE9XX1NVUlJPR0FURShjaCk7CiAgICAgICAgICAgICBjaGFyc2l6ZSA9IDI7CiAgICAgICAgIH0KIApAQCAtNzM4OSwyMjAgKzczMzksMjU4IEBACiAKIC8qIC0tLSBDaGFyYWN0ZXIgTWFwcGluZyBDb2RlYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCitzdGF0aWMgaW50CitjaGFybWFwX2RlY29kZV9zdHJpbmcoY29uc3QgY2hhciAqcywKKyAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKm1hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlcikKK3sKKyAgICBjb25zdCBjaGFyICpzdGFydHMgPSBzOworICAgIGNvbnN0IGNoYXIgKmU7CisgICAgUHlfc3NpemVfdCBzdGFydGlucG9zLCBlbmRpbnBvczsKKyAgICBQeU9iamVjdCAqZXJyb3JIYW5kbGVyID0gTlVMTCwgKmV4YyA9IE5VTEw7CisgICAgUHlfc3NpemVfdCBtYXBsZW47CisgICAgZW51bSBQeVVuaWNvZGVfS2luZCBtYXBraW5kOworICAgIHZvaWQgKm1hcGRhdGE7CisgICAgUHlfVUNTNCB4OworICAgIHVuc2lnbmVkIGNoYXIgY2g7CisKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKG1hcHBpbmcpID09IC0xKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBtYXBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChtYXBwaW5nKTsKKyAgICBtYXBkYXRhID0gUHlVbmljb2RlX0RBVEEobWFwcGluZyk7CisgICAgbWFwa2luZCA9IFB5VW5pY29kZV9LSU5EKG1hcHBpbmcpOworCisgICAgZSA9IHMgKyBzaXplOworCisgICAgaWYgKG1hcGtpbmQgPT0gUHlVbmljb2RlXzFCWVRFX0tJTkQgJiYgbWFwbGVuID49IDI1NikgeworICAgICAgICAvKiBmYXN0LXBhdGggZm9yIGNwMDM3LCBjcDUwMCBhbmQgaXNvODg1OV8xIGVuY29kaW5ncy4gaXNvODg1OV8xCisgICAgICAgICAqIGlzIGRpc2FibGVkIGluIGVuY29kaW5nIGFsaWFzZXMsIGxhdGluMSBpcyBwcmVmZXJyZWQgYmVjYXVzZQorICAgICAgICAgKiBpdHMgaW1wbGVtZW50YXRpb24gaXMgZmFzdGVyLiAqLworICAgICAgICBQeV9VQ1MxICptYXBkYXRhX3VjczEgPSAoUHlfVUNTMSAqKW1hcGRhdGE7CisgICAgICAgIFB5X1VDUzEgKm91dGRhdGEgPSAoUHlfVUNTMSAqKXdyaXRlci0+ZGF0YTsKKyAgICAgICAgUHlfVUNTNCBtYXhjaGFyID0gd3JpdGVyLT5tYXhjaGFyOworCisgICAgICAgIGFzc2VydCAod3JpdGVyLT5raW5kID09IFB5VW5pY29kZV8xQllURV9LSU5EKTsKKyAgICAgICAgd2hpbGUgKHMgPCBlKSB7CisgICAgICAgICAgICBjaCA9ICpzOworICAgICAgICAgICAgeCA9IG1hcGRhdGFfdWNzMVtjaF07CisgICAgICAgICAgICBpZiAoeCA+IG1heGNoYXIpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKHdyaXRlciwgMSwgMHhmZikgPT0gLTEpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgICAgICAgICBtYXhjaGFyID0gd3JpdGVyLT5tYXhjaGFyOworICAgICAgICAgICAgICAgIG91dGRhdGEgPSAoUHlfVUNTMSAqKXdyaXRlci0+ZGF0YTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dGRhdGFbd3JpdGVyLT5wb3NdID0geDsKKyAgICAgICAgICAgIHdyaXRlci0+cG9zKys7CisgICAgICAgICAgICArK3M7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgd2hpbGUgKHMgPCBlKSB7CisgICAgICAgIGlmIChtYXBraW5kID09IFB5VW5pY29kZV8yQllURV9LSU5EICYmIG1hcGxlbiA+PSAyNTYpIHsKKyAgICAgICAgICAgIGVudW0gUHlVbmljb2RlX0tpbmQgb3V0a2luZCA9IHdyaXRlci0+a2luZDsKKyAgICAgICAgICAgIFB5X1VDUzIgKm1hcGRhdGFfdWNzMiA9IChQeV9VQ1MyICopbWFwZGF0YTsKKyAgICAgICAgICAgIGlmIChvdXRraW5kID09IFB5VW5pY29kZV8xQllURV9LSU5EKSB7CisgICAgICAgICAgICAgICAgUHlfVUNTMSAqb3V0ZGF0YSA9IChQeV9VQ1MxICopd3JpdGVyLT5kYXRhOworICAgICAgICAgICAgICAgIFB5X1VDUzQgbWF4Y2hhciA9IHdyaXRlci0+bWF4Y2hhcjsKKyAgICAgICAgICAgICAgICB3aGlsZSAocyA8IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgY2ggPSAqczsKKyAgICAgICAgICAgICAgICAgICAgeCA9IG1hcGRhdGFfdWNzMltjaF07CisgICAgICAgICAgICAgICAgICAgIGlmICh4ID4gbWF4Y2hhcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gRXJyb3I7CisgICAgICAgICAgICAgICAgICAgIG91dGRhdGFbd3JpdGVyLT5wb3NdID0geDsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGVyLT5wb3MrKzsKKyAgICAgICAgICAgICAgICAgICAgKytzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKG91dGtpbmQgPT0gUHlVbmljb2RlXzJCWVRFX0tJTkQpIHsKKyAgICAgICAgICAgICAgICBQeV9VQ1MyICpvdXRkYXRhID0gKFB5X1VDUzIgKil3cml0ZXItPmRhdGE7CisgICAgICAgICAgICAgICAgd2hpbGUgKHMgPCBlKSB7CisgICAgICAgICAgICAgICAgICAgIGNoID0gKnM7CisgICAgICAgICAgICAgICAgICAgIHggPSBtYXBkYXRhX3VjczJbY2hdOworICAgICAgICAgICAgICAgICAgICBpZiAoeCA9PSAweEZGRkUpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIEVycm9yOworICAgICAgICAgICAgICAgICAgICBvdXRkYXRhW3dyaXRlci0+cG9zXSA9IHg7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlci0+cG9zKys7CisgICAgICAgICAgICAgICAgICAgICsrczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2ggPSAqczsKKworICAgICAgICBpZiAoY2ggPCBtYXBsZW4pCisgICAgICAgICAgICB4ID0gUHlVbmljb2RlX1JFQUQobWFwa2luZCwgbWFwZGF0YSwgY2gpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB4ID0gMHhmZmZlOyAvKiBpbnZhbGlkIHZhbHVlICovCitFcnJvcjoKKyAgICAgICAgaWYgKHggPT0gMHhmZmZlKQorICAgICAgICB7CisgICAgICAgICAgICAvKiB1bmRlZmluZWQgbWFwcGluZyAqLworICAgICAgICAgICAgc3RhcnRpbnBvcyA9IHMtc3RhcnRzOworICAgICAgICAgICAgZW5kaW5wb3MgPSBzdGFydGlucG9zKzE7CisgICAgICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXJfd3JpdGVyKAorICAgICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICJjaGFybWFwIiwgImNoYXJhY3RlciBtYXBzIHRvIDx1bmRlZmluZWQ+IiwKKyAgICAgICAgICAgICAgICAgICAgJnN0YXJ0cywgJmUsICZzdGFydGlucG9zLCAmZW5kaW5wb3MsICZleGMsICZzLAorICAgICAgICAgICAgICAgICAgICB3cml0ZXIpKSB7CisgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9Xcml0ZUNoYXJJbmxpbmUod3JpdGVyLCB4KSA8IDApCisgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgICAgICsrczsKKyAgICB9CisgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOworICAgIFB5X1hERUNSRUYoZXhjKTsKKyAgICByZXR1cm4gMDsKKworb25FcnJvcjoKKyAgICBQeV9YREVDUkVGKGVycm9ySGFuZGxlcik7CisgICAgUHlfWERFQ1JFRihleGMpOworICAgIHJldHVybiAtMTsKK30KKworc3RhdGljIGludAorY2hhcm1hcF9kZWNvZGVfbWFwcGluZyhjb25zdCBjaGFyICpzLAorICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICptYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlcikKK3sKKyAgICBjb25zdCBjaGFyICpzdGFydHMgPSBzOworICAgIGNvbnN0IGNoYXIgKmU7CisgICAgUHlfc3NpemVfdCBzdGFydGlucG9zLCBlbmRpbnBvczsKKyAgICBQeU9iamVjdCAqZXJyb3JIYW5kbGVyID0gTlVMTCwgKmV4YyA9IE5VTEw7CisgICAgdW5zaWduZWQgY2hhciBjaDsKKyAgICBQeU9iamVjdCAqa2V5LCAqaXRlbSA9IE5VTEw7CisKKyAgICBlID0gcyArIHNpemU7CisKKyAgICB3aGlsZSAocyA8IGUpIHsKKyAgICAgICAgY2ggPSAqczsKKworICAgICAgICAvKiBHZXQgbWFwcGluZyAoY2hhciBvcmRpbmFsIC0+IGludGVnZXIsIFVuaWNvZGUgY2hhciBvciBOb25lKSAqLworICAgICAgICBrZXkgPSBQeUxvbmdfRnJvbUxvbmcoKGxvbmcpY2gpOworICAgICAgICBpZiAoa2V5ID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CisKKyAgICAgICAgaXRlbSA9IFB5T2JqZWN0X0dldEl0ZW0obWFwcGluZywga2V5KTsKKyAgICAgICAgUHlfREVDUkVGKGtleSk7CisgICAgICAgIGlmIChpdGVtID09IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX0xvb2t1cEVycm9yKSkgeworICAgICAgICAgICAgICAgIC8qIE5vIG1hcHBpbmcgZm91bmQgbWVhbnM6IG1hcHBpbmcgaXMgdW5kZWZpbmVkLiAqLworICAgICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CisgICAgICAgICAgICAgICAgZ290byBVbmRlZmluZWQ7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgICAgIH0KKworICAgICAgICAvKiBBcHBseSBtYXBwaW5nICovCisgICAgICAgIGlmIChpdGVtID09IFB5X05vbmUpCisgICAgICAgICAgICBnb3RvIFVuZGVmaW5lZDsKKyAgICAgICAgaWYgKFB5TG9uZ19DaGVjayhpdGVtKSkgeworICAgICAgICAgICAgbG9uZyB2YWx1ZSA9IFB5TG9uZ19BU19MT05HKGl0ZW0pOworICAgICAgICAgICAgaWYgKHZhbHVlID09IDB4RkZGRSkKKyAgICAgICAgICAgICAgICBnb3RvIFVuZGVmaW5lZDsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPiBNQVhfVU5JQ09ERSkgeworICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjaGFyYWN0ZXIgbWFwcGluZyBtdXN0IGJlIGluIHJhbmdlKDB4JWx4KSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKU1BWF9VTklDT0RFICsgMSk7CisgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9Xcml0ZUNoYXJJbmxpbmUod3JpdGVyLCB2YWx1ZSkgPCAwKQorICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChQeVVuaWNvZGVfQ2hlY2soaXRlbSkpIHsKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoaXRlbSkgPT0gLTEpCisgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9HRVRfTEVOR1RIKGl0ZW0pID09IDEpIHsKKyAgICAgICAgICAgICAgICBQeV9VQ1M0IHZhbHVlID0gUHlVbmljb2RlX1JFQURfQ0hBUihpdGVtLCAwKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gMHhGRkZFKQorICAgICAgICAgICAgICAgICAgICBnb3RvIFVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9Xcml0ZUNoYXJJbmxpbmUod3JpdGVyLCB2YWx1ZSkgPCAwKQorICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB3cml0ZXItPm92ZXJhbGxvY2F0ZSA9IDE7CisgICAgICAgICAgICAgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfV3JpdGVTdHIod3JpdGVyLCBpdGVtKSA9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLyogd3JvbmcgcmV0dXJuIHZhbHVlICovCisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjaGFyYWN0ZXIgbWFwcGluZyBtdXN0IHJldHVybiBpbnRlZ2VyLCBOb25lIG9yIHN0ciIpOworICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgICAgICB9CisgICAgICAgIFB5X0NMRUFSKGl0ZW0pOworICAgICAgICArK3M7CisgICAgICAgIGNvbnRpbnVlOworCitVbmRlZmluZWQ6CisgICAgICAgIC8qIHVuZGVmaW5lZCBtYXBwaW5nICovCisgICAgICAgIFB5X0NMRUFSKGl0ZW0pOworICAgICAgICBzdGFydGlucG9zID0gcy1zdGFydHM7CisgICAgICAgIGVuZGlucG9zID0gc3RhcnRpbnBvcysxOworICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXJfd3JpdGVyKAorICAgICAgICAgICAgICAgIGVycm9ycywgJmVycm9ySGFuZGxlciwKKyAgICAgICAgICAgICAgICAiY2hhcm1hcCIsICJjaGFyYWN0ZXIgbWFwcyB0byA8dW5kZWZpbmVkPiIsCisgICAgICAgICAgICAgICAgJnN0YXJ0cywgJmUsICZzdGFydGlucG9zLCAmZW5kaW5wb3MsICZleGMsICZzLAorICAgICAgICAgICAgICAgIHdyaXRlcikpIHsKKyAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgfQorICAgIH0KKyAgICBQeV9YREVDUkVGKGVycm9ySGFuZGxlcik7CisgICAgUHlfWERFQ1JFRihleGMpOworICAgIHJldHVybiAwOworCitvbkVycm9yOgorICAgIFB5X1hERUNSRUYoaXRlbSk7CisgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOworICAgIFB5X1hERUNSRUYoZXhjKTsKKyAgICByZXR1cm4gLTE7Cit9CisKIFB5T2JqZWN0ICoKIFB5VW5pY29kZV9EZWNvZGVDaGFybWFwKGNvbnN0IGNoYXIgKnMsCiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqbWFwcGluZywKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKIHsKLSAgICBjb25zdCBjaGFyICpzdGFydHMgPSBzOwotICAgIFB5X3NzaXplX3Qgc3RhcnRpbnBvczsKLSAgICBQeV9zc2l6ZV90IGVuZGlucG9zOwotICAgIFB5X3NzaXplX3Qgb3V0cG9zOwotICAgIGNvbnN0IGNoYXIgKmU7Ci0gICAgUHlPYmplY3QgKnY7Ci0gICAgUHlfc3NpemVfdCBleHRyYWNoYXJzID0gMDsKLSAgICBQeU9iamVjdCAqZXJyb3JIYW5kbGVyID0gTlVMTDsKLSAgICBQeU9iamVjdCAqZXhjID0gTlVMTDsKKyAgICBfUHlVbmljb2RlV3JpdGVyIHdyaXRlcjsKIAogICAgIC8qIERlZmF1bHQgdG8gTGF0aW4tMSAqLwogICAgIGlmIChtYXBwaW5nID09IE5VTEwpCiAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlTGF0aW4xKHMsIHNpemUsIGVycm9ycyk7CiAKLSAgICB2ID0gUHlVbmljb2RlX05ldyhzaXplLCAxMjcpOwotICAgIGlmICh2ID09IE5VTEwpCi0gICAgICAgIGdvdG8gb25FcnJvcjsKICAgICBpZiAoc2l6ZSA9PSAwKQotICAgICAgICByZXR1cm4gdjsKLSAgICBvdXRwb3MgPSAwOwotICAgIGUgPSBzICsgc2l6ZTsKKyAgICAgICAgX1B5X1JFVFVSTl9VTklDT0RFX0VNUFRZKCk7CisgICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIpOworICAgIHdyaXRlci5taW5fbGVuZ3RoID0gc2l6ZTsKKyAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKCZ3cml0ZXIsIHdyaXRlci5taW5fbGVuZ3RoLCAxMjcpID09IC0xKQorICAgICAgICBnb3RvIG9uRXJyb3I7CisKICAgICBpZiAoUHlVbmljb2RlX0NoZWNrRXhhY3QobWFwcGluZykpIHsKLSAgICAgICAgUHlfc3NpemVfdCBtYXBsZW47Ci0gICAgICAgIGVudW0gUHlVbmljb2RlX0tpbmQgbWFwa2luZDsKLSAgICAgICAgdm9pZCAqbWFwZGF0YTsKLSAgICAgICAgUHlfVUNTNCB4OwotCi0gICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkobWFwcGluZykgPT0gLTEpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgICAgICBtYXBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChtYXBwaW5nKTsKLSAgICAgICAgbWFwZGF0YSA9IFB5VW5pY29kZV9EQVRBKG1hcHBpbmcpOwotICAgICAgICBtYXBraW5kID0gUHlVbmljb2RlX0tJTkQobWFwcGluZyk7Ci0gICAgICAgIHdoaWxlIChzIDwgZSkgewotICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjaDsKLSAgICAgICAgICAgIGlmIChtYXBraW5kID09IFB5VW5pY29kZV8yQllURV9LSU5EICYmIG1hcGxlbiA+PSAyNTYpIHsKLSAgICAgICAgICAgICAgICBlbnVtIFB5VW5pY29kZV9LaW5kIG91dGtpbmQgPSBQeVVuaWNvZGVfS0lORCh2KTsKLSAgICAgICAgICAgICAgICBpZiAob3V0a2luZCA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORCkgewotICAgICAgICAgICAgICAgICAgICB2b2lkICpvdXRkYXRhID0gUHlVbmljb2RlX0RBVEEodik7Ci0gICAgICAgICAgICAgICAgICAgIFB5X1VDUzQgbWF4Y2hhciA9IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRSh2KTsKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHMgPCBlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGNoID0gKnM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB4ID0gUHlVbmljb2RlX1JFQUQoUHlVbmljb2RlXzJCWVRFX0tJTkQsIG1hcGRhdGEsIGNoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4ID4gbWF4Y2hhcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIEVycm9yOwotICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKFB5VW5pY29kZV8xQllURV9LSU5ELCBvdXRkYXRhLCBvdXRwb3MrKywgeCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICArK3M7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UgaWYgKG91dGtpbmQgPT0gUHlVbmljb2RlXzJCWVRFX0tJTkQpIHsKLSAgICAgICAgICAgICAgICAgICAgdm9pZCAqb3V0ZGF0YSA9IFB5VW5pY29kZV9EQVRBKHYpOwotICAgICAgICAgICAgICAgICAgICB3aGlsZSAocyA8IGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY2ggPSAqczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHggPSBQeVVuaWNvZGVfUkVBRChQeVVuaWNvZGVfMkJZVEVfS0lORCwgbWFwZGF0YSwgY2gpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHggPT0gMHhGRkZFKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUoUHlVbmljb2RlXzJCWVRFX0tJTkQsIG91dGRhdGEsIG91dHBvcysrLCB4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICsrczsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjaCA9ICpzOwotCi0gICAgICAgICAgICBpZiAoY2ggPCBtYXBsZW4pCi0gICAgICAgICAgICAgICAgeCA9IFB5VW5pY29kZV9SRUFEKG1hcGtpbmQsIG1hcGRhdGEsIGNoKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB4ID0gMHhmZmZlOyAvKiBpbnZhbGlkIHZhbHVlICovCi1FcnJvcjoKLSAgICAgICAgICAgIGlmICh4ID09IDB4ZmZmZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAvKiB1bmRlZmluZWQgbWFwcGluZyAqLwotICAgICAgICAgICAgICAgIHN0YXJ0aW5wb3MgPSBzLXN0YXJ0czsKLSAgICAgICAgICAgICAgICBlbmRpbnBvcyA9IHN0YXJ0aW5wb3MrMTsKLSAgICAgICAgICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXIoCi0gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiY2hhcm1hcCIsICJjaGFyYWN0ZXIgbWFwcyB0byA8dW5kZWZpbmVkPiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAmc3RhcnRzLCAmZSwgJnN0YXJ0aW5wb3MsICZlbmRpbnBvcywgJmV4YywgJnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAmdiwgJm91dHBvcykpIHsKLSAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdiwgJm91dHBvcywgeCkgPCAwKQotICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICsrczsKLSAgICAgICAgfQorICAgICAgICBpZiAoY2hhcm1hcF9kZWNvZGVfc3RyaW5nKHMsIHNpemUsIG1hcHBpbmcsIGVycm9ycywgJndyaXRlcikgPCAwKQorICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgIH0KICAgICBlbHNlIHsKLSAgICAgICAgd2hpbGUgKHMgPCBlKSB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGNoID0gKnM7Ci0gICAgICAgICAgICBQeU9iamVjdCAqdywgKng7Ci0KLSAgICAgICAgICAgIC8qIEdldCBtYXBwaW5nIChjaGFyIG9yZGluYWwgLT4gaW50ZWdlciwgVW5pY29kZSBjaGFyIG9yIE5vbmUpICovCi0gICAgICAgICAgICB3ID0gUHlMb25nX0Zyb21Mb25nKChsb25nKWNoKTsKLSAgICAgICAgICAgIGlmICh3ID09IE5VTEwpCi0gICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgeCA9IFB5T2JqZWN0X0dldEl0ZW0obWFwcGluZywgdyk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodyk7Ci0gICAgICAgICAgICBpZiAoeCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfTG9va3VwRXJyb3IpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8qIE5vIG1hcHBpbmcgZm91bmQgbWVhbnM6IG1hcHBpbmcgaXMgdW5kZWZpbmVkLiAqLwotICAgICAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwotICAgICAgICAgICAgICAgICAgICBnb3RvIFVuZGVmaW5lZDsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvKiBBcHBseSBtYXBwaW5nICovCi0gICAgICAgICAgICBpZiAoeCA9PSBQeV9Ob25lKQotICAgICAgICAgICAgICAgIGdvdG8gVW5kZWZpbmVkOwotICAgICAgICAgICAgaWYgKFB5TG9uZ19DaGVjayh4KSkgewotICAgICAgICAgICAgICAgIGxvbmcgdmFsdWUgPSBQeUxvbmdfQVNfTE9ORyh4KTsKLSAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gMHhGRkZFKQotICAgICAgICAgICAgICAgICAgICBnb3RvIFVuZGVmaW5lZDsKLSAgICAgICAgICAgICAgICBpZiAodmFsdWUgPCAwIHx8IHZhbHVlID4gTUFYX1VOSUNPREUpIHsKLSAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjaGFyYWN0ZXIgbWFwcGluZyBtdXN0IGJlIGluIHJhbmdlKDB4JWx4KSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZylNQVhfVU5JQ09ERSArIDEpOwotICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoeCk7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdiwgJm91dHBvcywgdmFsdWUpIDwgMCkgewotICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoeCk7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChQeVVuaWNvZGVfQ2hlY2soeCkpIHsKLSAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHRhcmdldHNpemU7Ci0KLSAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKHgpID09IC0xKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih4KTsKLSAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB0YXJnZXRzaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoeCk7Ci0KLSAgICAgICAgICAgICAgICBpZiAodGFyZ2V0c2l6ZSA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8qIDEtMSBtYXBwaW5nICovCi0gICAgICAgICAgICAgICAgICAgIFB5X1VDUzQgdmFsdWUgPSBQeVVuaWNvZGVfUkVBRF9DSEFSKHgsIDApOwotICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gMHhGRkZFKQotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBVbmRlZmluZWQ7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh1bmljb2RlX3B1dGNoYXIoJnYsICZvdXRwb3MsIHZhbHVlKSA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlIGlmICh0YXJnZXRzaXplID4gMSkgewotICAgICAgICAgICAgICAgICAgICAvKiAxLW4gbWFwcGluZyAqLwotICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0c2l6ZSA+IGV4dHJhY2hhcnMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlc2l6ZSBmaXJzdCAqLwotICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBuZWVkZWQgPSAodGFyZ2V0c2l6ZSAtIGV4dHJhY2hhcnMpICsgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0YXJnZXRzaXplIDw8IDIpOwotICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjaGFycyArPSBuZWVkZWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvKiBYWFggb3ZlcmZsb3cgZGV0ZWN0aW9uIG1pc3NpbmcgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1bmljb2RlX3Jlc2l6ZSgmdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSCh2KSArIG5lZWRlZCkgPCAwKQotICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGVfd2lkZW4oJnYsIG91dHBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHgpKSA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQ29weUNoYXJhY3RlcnModiwgb3V0cG9zLCB4LCAwLCB0YXJnZXRzaXplKTsKLSAgICAgICAgICAgICAgICAgICAgb3V0cG9zICs9IHRhcmdldHNpemU7Ci0gICAgICAgICAgICAgICAgICAgIGV4dHJhY2hhcnMgLT0gdGFyZ2V0c2l6ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgLyogMS0wIG1hcHBpbmc6IHNraXAgdGhlIGNoYXJhY3RlciAqLwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgLyogd3JvbmcgcmV0dXJuIHZhbHVlICovCi0gICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNoYXJhY3RlciBtYXBwaW5nIG11c3QgcmV0dXJuIGludGVnZXIsIE5vbmUgb3Igc3RyIik7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKHgpOwotICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFB5X0RFQ1JFRih4KTsKLSAgICAgICAgICAgICsrczsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotVW5kZWZpbmVkOgotICAgICAgICAgICAgLyogdW5kZWZpbmVkIG1hcHBpbmcgKi8KLSAgICAgICAgICAgIFB5X1hERUNSRUYoeCk7Ci0gICAgICAgICAgICBzdGFydGlucG9zID0gcy1zdGFydHM7Ci0gICAgICAgICAgICBlbmRpbnBvcyA9IHN0YXJ0aW5wb3MrMTsKLSAgICAgICAgICAgIGlmICh1bmljb2RlX2RlY29kZV9jYWxsX2Vycm9yaGFuZGxlcigKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JzLCAmZXJyb3JIYW5kbGVyLAotICAgICAgICAgICAgICAgICAgICAiY2hhcm1hcCIsICJjaGFyYWN0ZXIgbWFwcyB0byA8dW5kZWZpbmVkPiIsCi0gICAgICAgICAgICAgICAgICAgICZzdGFydHMsICZlLCAmc3RhcnRpbnBvcywgJmVuZGlucG9zLCAmZXhjLCAmcywKLSAgICAgICAgICAgICAgICAgICAgJnYsICZvdXRwb3MpKSB7Ci0gICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIGlmIChjaGFybWFwX2RlY29kZV9tYXBwaW5nKHMsIHNpemUsIG1hcHBpbmcsIGVycm9ycywgJndyaXRlcikgPCAwKQorICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgIH0KLSAgICBpZiAodW5pY29kZV9yZXNpemUoJnYsIG91dHBvcykgPCAwKQotICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOwotICAgIFB5X1hERUNSRUYoZXhjKTsKLSAgICByZXR1cm4gdW5pY29kZV9yZXN1bHQodik7CisgICAgcmV0dXJuIF9QeVVuaWNvZGVXcml0ZXJfRmluaXNoKCZ3cml0ZXIpOwogCiAgIG9uRXJyb3I6Ci0gICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOwotICAgIFB5X1hERUNSRUYoZXhjKTsKLSAgICBQeV9YREVDUkVGKHYpOworICAgIF9QeVVuaWNvZGVXcml0ZXJfRGVhbGxvYygmd3JpdGVyKTsKICAgICByZXR1cm4gTlVMTDsKIH0KIApAQCAtODExNiwxMCArODEwNCwxNCBAQAogICAgICAqIC0xPW5vdCBpbml0aWFsaXplZCwgMD11bmtub3duLCAxPXN0cmljdCwgMj1yZXBsYWNlLAogICAgICAqIDM9aWdub3JlLCA0PXhtbGNoYXJyZWZyZXBsYWNlICovCiAgICAgaW50IGtub3duX2Vycm9ySGFuZGxlciA9IC0xOworICAgIHZvaWQgKmRhdGE7CisgICAgaW50IGtpbmQ7CiAKICAgICBpZiAoUHlVbmljb2RlX1JFQURZKHVuaWNvZGUpID09IC0xKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBzaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodW5pY29kZSk7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHVuaWNvZGUpOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORCh1bmljb2RlKTsKIAogICAgIC8qIERlZmF1bHQgdG8gTGF0aW4tMSAqLwogICAgIGlmIChtYXBwaW5nID09IE5VTEwpCkBAIC04MTM0LDcgKzgxMjYsNyBAQAogICAgICAgICByZXR1cm4gcmVzOwogCiAgICAgd2hpbGUgKGlucG9zPHNpemUpIHsKLSAgICAgICAgUHlfVUNTNCBjaCA9IFB5VW5pY29kZV9SRUFEX0NIQVIodW5pY29kZSwgaW5wb3MpOworICAgICAgICBQeV9VQ1M0IGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaW5wb3MpOwogICAgICAgICAvKiB0cnkgdG8gZW5jb2RlIGl0ICovCiAgICAgICAgIGNoYXJtYXBlbmNvZGVfcmVzdWx0IHggPSBjaGFybWFwZW5jb2RlX291dHB1dChjaCwgbWFwcGluZywgJnJlcywgJnJlc3Bvcyk7CiAgICAgICAgIGlmICh4PT1lbmNfRVhDRVBUSU9OKSAvKiBlcnJvciAqLwpAQCAtODIyMCwxOSArODIxMiw2IEBACiAgICAgfQogfQogCi0vKiByYWlzZXMgYSBVbmljb2RlVHJhbnNsYXRlRXJyb3IgKi8KLXN0YXRpYyB2b2lkCi1yYWlzZV90cmFuc2xhdGVfZXhjZXB0aW9uKFB5T2JqZWN0ICoqZXhjZXB0aW9uT2JqZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqdW5pY29kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzdGFydHBvcywgUHlfc3NpemVfdCBlbmRwb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnJlYXNvbikKLXsKLSAgICBtYWtlX3RyYW5zbGF0ZV9leGNlcHRpb24oZXhjZXB0aW9uT2JqZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmljb2RlLCBzdGFydHBvcywgZW5kcG9zLCByZWFzb24pOwotICAgIGlmICgqZXhjZXB0aW9uT2JqZWN0ICE9IE5VTEwpCi0gICAgICAgIFB5Q29kZWNfU3RyaWN0RXJyb3JzKCpleGNlcHRpb25PYmplY3QpOwotfQotCiAvKiBlcnJvciBoYW5kbGluZyBjYWxsYmFjayBoZWxwZXI6CiAgICBidWlsZCBhcmd1bWVudHMsIGNhbGwgdGhlIGNhbGxiYWNrIGFuZCBjaGVjayB0aGUgYXJndW1lbnRzLAogICAgcHV0IHRoZSByZXN1bHQgaW50byBuZXdwb3MgYW5kIHJldHVybiB0aGUgcmVwbGFjZW1lbnQgc3RyaW5nLCB3aGljaApAQCAtODUwOCw4ICs4NDg3LDEwIEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzd2l0Y2ggKGtub3duX2Vycm9ySGFuZGxlcikgewogICAgICAgICAgICAgY2FzZSAxOiAvKiBzdHJpY3QgKi8KLSAgICAgICAgICAgICAgICByYWlzZV90cmFuc2xhdGVfZXhjZXB0aW9uKCZleGMsIGlucHV0LCBjb2xsc3RhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZW5kLCByZWFzb24pOworICAgICAgICAgICAgICAgIG1ha2VfdHJhbnNsYXRlX2V4Y2VwdGlvbigmZXhjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCwgY29sbHN0YXJ0LCBjb2xsZW5kLCByZWFzb24pOworICAgICAgICAgICAgICAgIGlmIChleGMgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgUHlDb2RlY19TdHJpY3RFcnJvcnMoZXhjKTsKICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICBjYXNlIDI6IC8qIHJlcGxhY2UgKi8KICAgICAgICAgICAgICAgICAvKiBObyBuZWVkIHRvIGNoZWNrIGZvciBzcGFjZSwgdGhpcyBpcyBhIDE6MSByZXBsYWNlbWVudCAqLwpAQCAtOTEwMSw3ICs5MDgyLDcgQEAKIAogICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEgfHwKICAgICAgICAgUHlVbmljb2RlX1JFQURZKHN1YnN0cmluZykgPT0gLTEpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpZiAoUHlVbmljb2RlX0dFVF9MRU5HVEgoc3Vic3RyaW5nKSA9PSAwKQogICAgICAgICByZXR1cm4gMTsKQEAgLTkxMzksNyArOTEyMCw2IEBACiAgICAgICAgICAgICAvKiBXZSBkbyBub3QgbmVlZCB0byBjb21wYXJlIDAgYW5kIGxlbihzdWJzdHJpbmcpLTEgYmVjYXVzZQogICAgICAgICAgICAgICAgdGhlIGlmIHN0YXRlbWVudCBhYm92ZSBlbnN1cmVkIGFscmVhZHkgdGhhdCB0aGV5IGFyZSBlcXVhbAogICAgICAgICAgICAgICAgd2hlbiB3ZSBlbmQgdXAgaGVyZS4gKi8KLSAgICAgICAgICAgIC8qIFRPRE86IGhvbm9yIGRpcmVjdGlvbiBhbmQgZG8gYSBmb3J3YXJkIG9yIGJhY2t3YXJkcyBzZWFyY2ggKi8KICAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCBlbmRfc3ViOyArK2kpIHsKICAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQUQoa2luZF9zZWxmLCBkYXRhX3NlbGYsIG9mZnNldCArIGkpICE9CiAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEKGtpbmRfc3ViLCBkYXRhX3N1YiwgaSkpCkBAIC05NjAxLDQxICs5NTgxLDQ5IEBACiAgICAgICAgICAgICBzZXBfZGF0YSA9IFB5VW5pY29kZV8xQllURV9EQVRBKHNlcCk7CiAgICAgfQogI2VuZGlmCi0gICAgZm9yIChpID0gMCwgcmVzX29mZnNldCA9IDA7IGkgPCBzZXFsZW47ICsraSkgewotICAgICAgICBQeV9zc2l6ZV90IGl0ZW1sZW47Ci0gICAgICAgIGl0ZW0gPSBpdGVtc1tpXTsKLSAgICAgICAgLyogQ29weSBpdGVtLCBhbmQgbWF5YmUgdGhlIHNlcGFyYXRvci4gKi8KLSAgICAgICAgaWYgKGkgJiYgc2VwbGVuICE9IDApIHsKLSAgICAgICAgICAgIGlmICh1c2VfbWVtY3B5KSB7CisgICAgaWYgKHVzZV9tZW1jcHkpIHsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHNlcWxlbjsgKytpKSB7CisgICAgICAgICAgICBQeV9zc2l6ZV90IGl0ZW1sZW47CisgICAgICAgICAgICBpdGVtID0gaXRlbXNbaV07CisKKyAgICAgICAgICAgIC8qIENvcHkgaXRlbSwgYW5kIG1heWJlIHRoZSBzZXBhcmF0b3IuICovCisgICAgICAgICAgICBpZiAoaSAmJiBzZXBsZW4gIT0gMCkgewogICAgICAgICAgICAgICAgIFB5X01FTUNQWShyZXNfZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VwX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQgKiBzZXBsZW4pOwogICAgICAgICAgICAgICAgIHJlc19kYXRhICs9IGtpbmQgKiBzZXBsZW47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyhyZXMsIHJlc19vZmZzZXQsIHNlcCwgMCwgc2VwbGVuKTsKLSAgICAgICAgICAgICAgICByZXNfb2Zmc2V0ICs9IHNlcGxlbjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpdGVtbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoaXRlbSk7Ci0gICAgICAgIGlmIChpdGVtbGVuICE9IDApIHsKLSAgICAgICAgICAgIGlmICh1c2VfbWVtY3B5KSB7CisKKyAgICAgICAgICAgIGl0ZW1sZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChpdGVtKTsKKyAgICAgICAgICAgIGlmIChpdGVtbGVuICE9IDApIHsKICAgICAgICAgICAgICAgICBQeV9NRU1DUFkocmVzX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9EQVRBKGl0ZW0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kICogaXRlbWxlbik7CiAgICAgICAgICAgICAgICAgcmVzX2RhdGEgKz0ga2luZCAqIGl0ZW1sZW47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnQocmVzX2RhdGEgPT0gUHlVbmljb2RlXzFCWVRFX0RBVEEocmVzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBraW5kICogUHlVbmljb2RlX0dFVF9MRU5HVEgocmVzKSk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBmb3IgKGkgPSAwLCByZXNfb2Zmc2V0ID0gMDsgaSA8IHNlcWxlbjsgKytpKSB7CisgICAgICAgICAgICBQeV9zc2l6ZV90IGl0ZW1sZW47CisgICAgICAgICAgICBpdGVtID0gaXRlbXNbaV07CisKKyAgICAgICAgICAgIC8qIENvcHkgaXRlbSwgYW5kIG1heWJlIHRoZSBzZXBhcmF0b3IuICovCisgICAgICAgICAgICBpZiAoaSAmJiBzZXBsZW4gIT0gMCkgeworICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKHJlcywgcmVzX29mZnNldCwgc2VwLCAwLCBzZXBsZW4pOworICAgICAgICAgICAgICAgIHJlc19vZmZzZXQgKz0gc2VwbGVuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpdGVtbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoaXRlbSk7CisgICAgICAgICAgICBpZiAoaXRlbWxlbiAhPSAwKSB7CiAgICAgICAgICAgICAgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMocmVzLCByZXNfb2Zmc2V0LCBpdGVtLCAwLCBpdGVtbGVuKTsKICAgICAgICAgICAgICAgICByZXNfb2Zmc2V0ICs9IGl0ZW1sZW47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKHVzZV9tZW1jcHkpCi0gICAgICAgIGFzc2VydChyZXNfZGF0YSA9PSBQeVVuaWNvZGVfMUJZVEVfREFUQShyZXMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICArIGtpbmQgKiBQeVVuaWNvZGVfR0VUX0xFTkdUSChyZXMpKTsKLSAgICBlbHNlCiAgICAgICAgIGFzc2VydChyZXNfb2Zmc2V0ID09IFB5VW5pY29kZV9HRVRfTEVOR1RIKHJlcykpOworICAgIH0KIAogICAgIFB5X0RFQ1JFRihmc2VxKTsKICAgICBQeV9YREVDUkVGKHNlcCk7CkBAIC0xMDAyNyw2ICsxMDAxNSwzMSBAQAogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZAorcmVwbGFjZV8xY2hhcl9pbnBsYWNlKFB5T2JqZWN0ICp1LCBQeV9zc2l6ZV90IHBvcywKKyAgICAgICAgICAgICAgICAgICAgICBQeV9VQ1M0IHUxLCBQeV9VQ1M0IHUyLCBQeV9zc2l6ZV90IG1heGNvdW50KQoreworICAgIGludCBraW5kID0gUHlVbmljb2RlX0tJTkQodSk7CisgICAgdm9pZCAqZGF0YSA9IFB5VW5pY29kZV9EQVRBKHUpOworICAgIFB5X3NzaXplX3QgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodSk7CisgICAgaWYgKGtpbmQgPT0gUHlVbmljb2RlXzFCWVRFX0tJTkQpIHsKKyAgICAgICAgdWNzMWxpYl9yZXBsYWNlXzFjaGFyX2lucGxhY2UoKFB5X1VDUzEgKilkYXRhICsgcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlfVUNTMSAqKWRhdGEgKyBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUxLCB1MiwgbWF4Y291bnQpOworICAgIH0KKyAgICBlbHNlIGlmIChraW5kID09IFB5VW5pY29kZV8yQllURV9LSU5EKSB7CisgICAgICAgIHVjczJsaWJfcmVwbGFjZV8xY2hhcl9pbnBsYWNlKChQeV9VQ1MyICopZGF0YSArIHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFB5X1VDUzIgKilkYXRhICsgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MSwgdTIsIG1heGNvdW50KTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGFzc2VydChraW5kID09IFB5VW5pY29kZV80QllURV9LSU5EKTsKKyAgICAgICAgdWNzNGxpYl9yZXBsYWNlXzFjaGFyX2lucGxhY2UoKFB5X1VDUzQgKilkYXRhICsgcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlfVUNTNCAqKWRhdGEgKyBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUxLCB1MiwgbWF4Y291bnQpOworICAgIH0KK30KKwogc3RhdGljIFB5T2JqZWN0ICoKIHJlcGxhY2UoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpzdHIxLAogICAgICAgICBQeU9iamVjdCAqc3RyMiwgUHlfc3NpemVfdCBtYXhjb3VudCkKQEAgLTEwMDQzLDcgKzEwMDU2LDcgQEAKICAgICBQeV9zc2l6ZV90IGxlbjEgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIxKTsKICAgICBQeV9zc2l6ZV90IGxlbjIgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIyKTsKICAgICBpbnQgbWF5c2hyaW5rOwotICAgIFB5X1VDUzQgbWF4Y2hhciwgbWF4Y2hhcl9zdHIyOworICAgIFB5X1VDUzQgbWF4Y2hhciwgbWF4Y2hhcl9zdHIxLCBtYXhjaGFyX3N0cjI7CiAKICAgICBpZiAobWF4Y291bnQgPCAwKQogICAgICAgICBtYXhjb3VudCA9IFBZX1NTSVpFX1RfTUFYOwpAQCAtMTAwNTIsMTUgKzEwMDY1LDE2IEBACiAKICAgICBpZiAoc3RyMSA9PSBzdHIyKQogICAgICAgICBnb3RvIG5vdGhpbmc7Ci0gICAgaWYgKHNraW5kIDwga2luZDEpCi0gICAgICAgIC8qIHN1YnN0cmluZyB0b28gd2lkZSB0byBiZSBwcmVzZW50ICovCi0gICAgICAgIGdvdG8gbm90aGluZzsKIAogICAgIG1heGNoYXIgPSBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUoc2VsZik7CisgICAgbWF4Y2hhcl9zdHIxID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHN0cjEpOworICAgIGlmIChtYXhjaGFyIDwgbWF4Y2hhcl9zdHIxKQorICAgICAgICAvKiBzdWJzdHJpbmcgdG9vIHdpZGUgdG8gYmUgcHJlc2VudCAqLworICAgICAgICBnb3RvIG5vdGhpbmc7CiAgICAgbWF4Y2hhcl9zdHIyID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHN0cjIpOwogICAgIC8qIFJlcGxhY2luZyBzdHIxIHdpdGggc3RyMiBtYXkgY2F1c2UgYSBtYXhjaGFyIHJlZHVjdGlvbiBpbiB0aGUKICAgICAgICByZXN1bHQgc3RyaW5nLiAqLwotICAgIG1heXNocmluayA9IChtYXhjaGFyX3N0cjIgPCBtYXhjaGFyKTsKKyAgICBtYXlzaHJpbmsgPSAobWF4Y2hhcl9zdHIyIDwgbWF4Y2hhcl9zdHIxKSAmJiAobWF4Y2hhciA9PSBtYXhjaGFyX3N0cjEpOwogICAgIG1heGNoYXIgPSBNQVhfTUFYQ0hBUihtYXhjaGFyLCBtYXhjaGFyX3N0cjIpOwogCiAgICAgaWYgKGxlbjEgPT0gbGVuMikgewpAQCAtMTAwNzAsMzUgKzEwMDg0LDE5IEBACiAgICAgICAgIGlmIChsZW4xID09IDEpIHsKICAgICAgICAgICAgIC8qIHJlcGxhY2UgY2hhcmFjdGVycyAqLwogICAgICAgICAgICAgUHlfVUNTNCB1MSwgdTI7Ci0gICAgICAgICAgICBpbnQgcmtpbmQ7Ci0gICAgICAgICAgICBQeV9zc2l6ZV90IGluZGV4LCBwb3M7Ci0gICAgICAgICAgICBjaGFyICpzcmM7CisgICAgICAgICAgICBQeV9zc2l6ZV90IHBvczsKIAotICAgICAgICAgICAgdTEgPSBQeVVuaWNvZGVfUkVBRF9DSEFSKHN0cjEsIDApOwotICAgICAgICAgICAgcG9zID0gZmluZGNoYXIoc2J1ZiwgUHlVbmljb2RlX0tJTkQoc2VsZiksIHNsZW4sIHUxLCAxKTsKKyAgICAgICAgICAgIHUxID0gUHlVbmljb2RlX1JFQUQoa2luZDEsIGJ1ZjEsIDApOworICAgICAgICAgICAgcG9zID0gZmluZGNoYXIoc2J1Ziwgc2tpbmQsIHNsZW4sIHUxLCAxKTsKICAgICAgICAgICAgIGlmIChwb3MgPCAwKQogICAgICAgICAgICAgICAgIGdvdG8gbm90aGluZzsKLSAgICAgICAgICAgIHUyID0gUHlVbmljb2RlX1JFQURfQ0hBUihzdHIyLCAwKTsKKyAgICAgICAgICAgIHUyID0gUHlVbmljb2RlX1JFQUQoa2luZDIsIGJ1ZjIsIDApOwogICAgICAgICAgICAgdSA9IFB5VW5pY29kZV9OZXcoc2xlbiwgbWF4Y2hhcik7CiAgICAgICAgICAgICBpZiAoIXUpCiAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKHUsIDAsIHNlbGYsIDAsIHNsZW4pOwotICAgICAgICAgICAgcmtpbmQgPSBQeVVuaWNvZGVfS0lORCh1KTsKIAotICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKHJraW5kLCBQeVVuaWNvZGVfREFUQSh1KSwgcG9zLCB1Mik7Ci0gICAgICAgICAgICBpbmRleCA9IDA7Ci0gICAgICAgICAgICBzcmMgPSBzYnVmOwotICAgICAgICAgICAgd2hpbGUgKC0tbWF4Y291bnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcG9zKys7Ci0gICAgICAgICAgICAgICAgc3JjICs9IHBvcyAqIFB5VW5pY29kZV9LSU5EKHNlbGYpOwotICAgICAgICAgICAgICAgIHNsZW4gLT0gcG9zOwotICAgICAgICAgICAgICAgIGluZGV4ICs9IHBvczsKLSAgICAgICAgICAgICAgICBwb3MgPSBmaW5kY2hhcihzcmMsIFB5VW5pY29kZV9LSU5EKHNlbGYpLCBzbGVuLCB1MSwgMSk7Ci0gICAgICAgICAgICAgICAgaWYgKHBvcyA8IDApCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShya2luZCwgUHlVbmljb2RlX0RBVEEodSksIGluZGV4ICsgcG9zLCB1Mik7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyh1LCAwLCBzZWxmLCAwLCBzbGVuKTsKKyAgICAgICAgICAgIHJlcGxhY2VfMWNoYXJfaW5wbGFjZSh1LCBwb3MsIHUxLCB1MiwgbWF4Y291bnQpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgaW50IHJraW5kID0gc2tpbmQ7CkBAIC0xMDQxMCw5ICsxMDQwOCwyOCBAQAogc3RhdGljIGludAogdW5pY29kZV9jb21wYXJlKFB5T2JqZWN0ICpzdHIxLCBQeU9iamVjdCAqc3RyMikKIHsKKyNkZWZpbmUgQ09NUEFSRShUWVBFMSwgVFlQRTIpIFwKKyAgICBkbyB7IFwKKyAgICAgICAgVFlQRTEqIHAxID0gKFRZUEUxICopZGF0YTE7IFwKKyAgICAgICAgVFlQRTIqIHAyID0gKFRZUEUyICopZGF0YTI7IFwKKyAgICAgICAgVFlQRTEqIGVuZCA9IHAxICsgbGVuOyBcCisgICAgICAgIFB5X1VDUzQgYzEsIGMyOyBcCisgICAgICAgIGZvciAoOyBwMSAhPSBlbmQ7IHAxKyssIHAyKyspIHsgXAorICAgICAgICAgICAgYzEgPSAqcDE7IFwKKyAgICAgICAgICAgIGMyID0gKnAyOyBcCisgICAgICAgICAgICBpZiAoYzEgIT0gYzIpIFwKKyAgICAgICAgICAgICAgICByZXR1cm4gKGMxIDwgYzIpID8gLTEgOiAxOyBcCisgICAgICAgIH0gXAorICAgIH0gXAorICAgIHdoaWxlICgwKQorCiAgICAgaW50IGtpbmQxLCBraW5kMjsKICAgICB2b2lkICpkYXRhMSwgKmRhdGEyOwotICAgIFB5X3NzaXplX3QgbGVuMSwgbGVuMiwgaTsKKyAgICBQeV9zc2l6ZV90IGxlbjEsIGxlbjIsIGxlbjsKKworICAgIC8qIGEgc3RyaW5nIGlzIGVxdWFsIHRvIGl0c2VsZiAqLworICAgIGlmIChzdHIxID09IHN0cjIpCisgICAgICAgIHJldHVybiAwOwogCiAgICAga2luZDEgPSBQeVVuaWNvZGVfS0lORChzdHIxKTsKICAgICBraW5kMiA9IFB5VW5pY29kZV9LSU5EKHN0cjIpOwpAQCAtMTA0MjAsMTkgKzEwNDM3LDEyMCBAQAogICAgIGRhdGEyID0gUHlVbmljb2RlX0RBVEEoc3RyMik7CiAgICAgbGVuMSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cjEpOwogICAgIGxlbjIgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIyKTsKKyAgICBsZW4gPSBQeV9NSU4obGVuMSwgbGVuMik7CiAKLSAgICBmb3IgKGkgPSAwOyBpIDwgbGVuMSAmJiBpIDwgbGVuMjsgKytpKSB7Ci0gICAgICAgIFB5X1VDUzQgYzEsIGMyOwotICAgICAgICBjMSA9IFB5VW5pY29kZV9SRUFEKGtpbmQxLCBkYXRhMSwgaSk7Ci0gICAgICAgIGMyID0gUHlVbmljb2RlX1JFQUQoa2luZDIsIGRhdGEyLCBpKTsKLQotICAgICAgICBpZiAoYzEgIT0gYzIpCi0gICAgICAgICAgICByZXR1cm4gKGMxIDwgYzIpID8gLTEgOiAxOworICAgIHN3aXRjaChraW5kMSkgeworICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgeworICAgICAgICBzd2l0Y2goa2luZDIpIHsKKyAgICAgICAgY2FzZSBQeVVuaWNvZGVfMUJZVEVfS0lORDoKKyAgICAgICAgeworICAgICAgICAgICAgaW50IGNtcCA9IG1lbWNtcChkYXRhMSwgZGF0YTIsIGxlbik7CisgICAgICAgICAgICAvKiBub3JtYWxpemUgcmVzdWx0IG9mIG1lbWNtcCgpIGludG8gdGhlIHJhbmdlIFstMTsgMV0gKi8KKyAgICAgICAgICAgIGlmIChjbXAgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIGlmIChjbXAgPiAwKQorICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBQeVVuaWNvZGVfMkJZVEVfS0lORDoKKyAgICAgICAgICAgIENPTVBBUkUoUHlfVUNTMSwgUHlfVUNTMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQeVVuaWNvZGVfNEJZVEVfS0lORDoKKyAgICAgICAgICAgIENPTVBBUkUoUHlfVUNTMSwgUHlfVUNTNCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGFzc2VydCgwKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQeVVuaWNvZGVfMkJZVEVfS0lORDoKKyAgICB7CisgICAgICAgIHN3aXRjaChraW5kMikgeworICAgICAgICBjYXNlIFB5VW5pY29kZV8xQllURV9LSU5EOgorICAgICAgICAgICAgQ09NUEFSRShQeV9VQ1MyLCBQeV9VQ1MxKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOgorICAgICAgICB7CisgICAgICAgICAgICBDT01QQVJFKFB5X1VDUzIsIFB5X1VDUzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBQeVVuaWNvZGVfNEJZVEVfS0lORDoKKyAgICAgICAgICAgIENPTVBBUkUoUHlfVUNTMiwgUHlfVUNTNCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGFzc2VydCgwKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQeVVuaWNvZGVfNEJZVEVfS0lORDoKKyAgICB7CisgICAgICAgIHN3aXRjaChraW5kMikgeworICAgICAgICBjYXNlIFB5VW5pY29kZV8xQllURV9LSU5EOgorICAgICAgICAgICAgQ09NUEFSRShQeV9VQ1M0LCBQeV9VQ1MxKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOgorICAgICAgICAgICAgQ09NUEFSRShQeV9VQ1M0LCBQeV9VQ1MyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFB5VW5pY29kZV80QllURV9LSU5EOgorICAgICAgICB7CisjaWYgZGVmaW5lZChIQVZFX1dNRU1DTVApICYmIFNJWkVPRl9XQ0hBUl9UID09IDQKKyAgICAgICAgICAgIGludCBjbXAgPSB3bWVtY21wKCh3Y2hhcl90ICopZGF0YTEsICh3Y2hhcl90ICopZGF0YTIsIGxlbik7CisgICAgICAgICAgICAvKiBub3JtYWxpemUgcmVzdWx0IG9mIHdtZW1jbXAoKSBpbnRvIHRoZSByYW5nZSBbLTE7IDFdICovCisgICAgICAgICAgICBpZiAoY21wIDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBpZiAoY21wID4gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyNlbHNlCisgICAgICAgICAgICBDT01QQVJFKFB5X1VDUzQsIFB5X1VDUzQpOworI2VuZGlmCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYXNzZXJ0KDApOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBhc3NlcnQoMCk7CiAgICAgfQogCi0gICAgcmV0dXJuIChsZW4xIDwgbGVuMikgPyAtMSA6IChsZW4xICE9IGxlbjIpOworICAgIGlmIChsZW4xID09IGxlbjIpCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChsZW4xIDwgbGVuMikKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIDE7CisKKyN1bmRlZiBDT01QQVJFCiB9CiAKK3N0YXRpYyBpbnQKK3VuaWNvZGVfY29tcGFyZV9lcShQeU9iamVjdCAqc3RyMSwgUHlPYmplY3QgKnN0cjIpCit7CisgICAgaW50IGtpbmQ7CisgICAgdm9pZCAqZGF0YTEsICpkYXRhMjsKKyAgICBQeV9zc2l6ZV90IGxlbjsKKyAgICBpbnQgY21wOworCisgICAgLyogYSBzdHJpbmcgaXMgZXF1YWwgdG8gaXRzZWxmICovCisgICAgaWYgKHN0cjEgPT0gc3RyMikKKyAgICAgICAgcmV0dXJuIDE7CisKKyAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIxKTsKKyAgICBpZiAoUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyMikgIT0gbGVuKQorICAgICAgICByZXR1cm4gMDsKKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQoc3RyMSk7CisgICAgaWYgKFB5VW5pY29kZV9LSU5EKHN0cjIpICE9IGtpbmQpCisgICAgICAgIHJldHVybiAwOworICAgIGRhdGExID0gUHlVbmljb2RlX0RBVEEoc3RyMSk7CisgICAgZGF0YTIgPSBQeVVuaWNvZGVfREFUQShzdHIyKTsKKworICAgIGNtcCA9IG1lbWNtcChkYXRhMSwgZGF0YTIsIGxlbiAqIGtpbmQpOworICAgIHJldHVybiAoY21wID09IDApOworfQorCisKIGludAogUHlVbmljb2RlX0NvbXBhcmUoUHlPYmplY3QgKmxlZnQsIFB5T2JqZWN0ICpyaWdodCkKIHsKQEAgLTEwNDgzLDM2ICsxMDYwMSwyNyBAQAogUHlVbmljb2RlX1JpY2hDb21wYXJlKFB5T2JqZWN0ICpsZWZ0LCBQeU9iamVjdCAqcmlnaHQsIGludCBvcCkKIHsKICAgICBpbnQgcmVzdWx0OworICAgIFB5T2JqZWN0ICp2OwogCi0gICAgaWYgKFB5VW5pY29kZV9DaGVjayhsZWZ0KSAmJiBQeVVuaWNvZGVfQ2hlY2socmlnaHQpKSB7Ci0gICAgICAgIFB5T2JqZWN0ICp2OwotICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKGxlZnQpID09IC0xIHx8Ci0gICAgICAgICAgICBQeVVuaWNvZGVfUkVBRFkocmlnaHQpID09IC0xKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSChsZWZ0KSAhPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChyaWdodCkgfHwKLSAgICAgICAgICAgIFB5VW5pY29kZV9LSU5EKGxlZnQpICE9IFB5VW5pY29kZV9LSU5EKHJpZ2h0KSkgewotICAgICAgICAgICAgaWYgKG9wID09IFB5X0VRKSB7Ci0gICAgICAgICAgICAgICAgUHlfSU5DUkVGKFB5X0ZhbHNlKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gUHlfRmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAob3AgPT0gUHlfTkUpIHsKLSAgICAgICAgICAgICAgICBQeV9JTkNSRUYoUHlfVHJ1ZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFB5X1RydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGxlZnQgPT0gcmlnaHQpCi0gICAgICAgICAgICByZXN1bHQgPSAwOworICAgIGlmICghUHlVbmljb2RlX0NoZWNrKGxlZnQpIHx8ICFQeVVuaWNvZGVfQ2hlY2socmlnaHQpKQorICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CisKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKGxlZnQpID09IC0xIHx8CisgICAgICAgIFB5VW5pY29kZV9SRUFEWShyaWdodCkgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKG9wID09IFB5X0VRIHx8IG9wID09IFB5X05FKSB7CisgICAgICAgIHJlc3VsdCA9IHVuaWNvZGVfY29tcGFyZV9lcShsZWZ0LCByaWdodCk7CisgICAgICAgIGlmIChvcCA9PSBQeV9FUSkKKyAgICAgICAgICAgIHYgPSBURVNUX0NPTkQocmVzdWx0KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gdW5pY29kZV9jb21wYXJlKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIHYgPSBURVNUX0NPTkQoIXJlc3VsdCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXN1bHQgPSB1bmljb2RlX2NvbXBhcmUobGVmdCwgcmlnaHQpOwogCiAgICAgICAgIC8qIENvbnZlcnQgdGhlIHJldHVybiB2YWx1ZSB0byBhIEJvb2xlYW4gKi8KICAgICAgICAgc3dpdGNoIChvcCkgewotICAgICAgICBjYXNlIFB5X0VROgotICAgICAgICAgICAgdiA9IFRFU1RfQ09ORChyZXN1bHQgPT0gMCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQeV9ORToKLSAgICAgICAgICAgIHYgPSBURVNUX0NPTkQocmVzdWx0ICE9IDApOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUHlfTEU6CiAgICAgICAgICAgICB2ID0gVEVTVF9DT05EKHJlc3VsdCA8PSAwKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTA1MjksMTggKzEwNjM4LDE2IEBACiAgICAgICAgICAgICBQeUVycl9CYWRBcmd1bWVudCgpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KLSAgICAgICAgUHlfSU5DUkVGKHYpOwotICAgICAgICByZXR1cm4gdjsKICAgICB9Ci0KLSAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CisgICAgUHlfSU5DUkVGKHYpOworICAgIHJldHVybiB2OwogfQogCiBpbnQKIFB5VW5pY29kZV9Db250YWlucyhQeU9iamVjdCAqY29udGFpbmVyLCBQeU9iamVjdCAqZWxlbWVudCkKIHsKICAgICBQeU9iamVjdCAqc3RyLCAqc3ViOwotICAgIGludCBraW5kMSwga2luZDIsIGtpbmQ7CisgICAgaW50IGtpbmQxLCBraW5kMjsKICAgICB2b2lkICpidWYxLCAqYnVmMjsKICAgICBQeV9zc2l6ZV90IGxlbjEsIGxlbjI7CiAgICAgaW50IHJlc3VsdDsKQEAgLTEwNTU5LDIzICsxMDY2NiwxOCBAQAogICAgICAgICBQeV9ERUNSRUYoc3ViKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KLSAgICBpZiAoUHlVbmljb2RlX1JFQURZKHN1YikgPT0gLTEgfHwgUHlVbmljb2RlX1JFQURZKHN0cikgPT0gLTEpIHsKLSAgICAgICAgUHlfREVDUkVGKHN1Yik7Ci0gICAgICAgIFB5X0RFQ1JFRihzdHIpOwotICAgIH0KIAogICAgIGtpbmQxID0gUHlVbmljb2RlX0tJTkQoc3RyKTsKICAgICBraW5kMiA9IFB5VW5pY29kZV9LSU5EKHN1Yik7Ci0gICAga2luZCA9IGtpbmQxOwogICAgIGJ1ZjEgPSBQeVVuaWNvZGVfREFUQShzdHIpOwogICAgIGJ1ZjIgPSBQeVVuaWNvZGVfREFUQShzdWIpOwotICAgIGlmIChraW5kMiAhPSBraW5kKSB7Ci0gICAgICAgIGlmIChraW5kMiA+IGtpbmQpIHsKKyAgICBpZiAoa2luZDIgIT0ga2luZDEpIHsKKyAgICAgICAgaWYgKGtpbmQyID4ga2luZDEpIHsKICAgICAgICAgICAgIFB5X0RFQ1JFRihzdWIpOwogICAgICAgICAgICAgUHlfREVDUkVGKHN0cik7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQotICAgICAgICBidWYyID0gX1B5VW5pY29kZV9Bc0tpbmQoc3ViLCBraW5kKTsKKyAgICAgICAgYnVmMiA9IF9QeVVuaWNvZGVfQXNLaW5kKHN1Yiwga2luZDEpOwogICAgIH0KICAgICBpZiAoIWJ1ZjIpIHsKICAgICAgICAgUHlfREVDUkVGKHN1Yik7CkBAIC0xMDU4NSw3ICsxMDY4Nyw3IEBACiAgICAgbGVuMSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cik7CiAgICAgbGVuMiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN1Yik7CiAKLSAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBzd2l0Y2ggKGtpbmQxKSB7CiAgICAgY2FzZSBQeVVuaWNvZGVfMUJZVEVfS0lORDoKICAgICAgICAgcmVzdWx0ID0gdWNzMWxpYl9maW5kKGJ1ZjEsIGxlbjEsIGJ1ZjIsIGxlbjIsIDApICE9IC0xOwogICAgICAgICBicmVhazsKQEAgLTEwNjAzLDcgKzEwNzA1LDcgQEAKICAgICBQeV9ERUNSRUYoc3RyKTsKICAgICBQeV9ERUNSRUYoc3ViKTsKIAotICAgIGlmIChraW5kMiAhPSBraW5kKQorICAgIGlmIChraW5kMiAhPSBraW5kMSkKICAgICAgICAgUHlNZW1fRnJlZShidWYyKTsKIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDY3OSw3ICsxMDc4MSw4IEBACiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbGVmdCA9ICpwX2xlZnQ7Ci0gICAgaWYgKHJpZ2h0ID09IE5VTEwgfHwgbGVmdCA9PSBOVUxMIHx8ICFQeVVuaWNvZGVfQ2hlY2sobGVmdCkpIHsKKyAgICBpZiAocmlnaHQgPT0gTlVMTCB8fCBsZWZ0ID09IE5VTEwKKyAgICAgICAgfHwgIVB5VW5pY29kZV9DaGVjayhsZWZ0KSB8fCAhUHlVbmljb2RlX0NoZWNrKHJpZ2h0KSkgewogICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkpCiAgICAgICAgICAgICBQeUVycl9CYWRJbnRlcm5hbENhbGwoKTsKICAgICAgICAgZ290byBlcnJvcjsKQEAgLTEwNzE5LDE1ICsxMDgyMiw5IEBACiAgICAgICAgICYmICEoUHlVbmljb2RlX0lTX0FTQ0lJKGxlZnQpICYmICFQeVVuaWNvZGVfSVNfQVNDSUkocmlnaHQpKSkKICAgICB7CiAgICAgICAgIC8qIGFwcGVuZCBpbnBsYWNlICovCi0gICAgICAgIGlmICh1bmljb2RlX3Jlc2l6ZShwX2xlZnQsIG5ld19sZW4pICE9IDApIHsKLSAgICAgICAgICAgIC8qIFhYWCBpZiBfUHlVbmljb2RlX1Jlc2l6ZSgpIGZhaWxzLCAnbGVmdCcgaGFzIGJlZW4KLSAgICAgICAgICAgICAqIGRlYWxsb2NhdGVkIHNvIGl0IGNhbm5vdCBiZSBwdXQgYmFjayBpbnRvCi0gICAgICAgICAgICAgKiAndmFyaWFibGUnLiAgVGhlIE1lbW9yeUVycm9yIGlzIHJhaXNlZCB3aGVuIHRoZXJlCi0gICAgICAgICAgICAgKiBpcyBubyB2YWx1ZSBpbiAndmFyaWFibGUnLCB3aGljaCBtaWdodCAodmVyeQotICAgICAgICAgICAgICogcmVtb3RlbHkpIGJlIGEgY2F1c2Ugb2YgaW5jb21wYXRpYmlsaXRpZXMuCi0gICAgICAgICAgICAgKi8KKyAgICAgICAgaWYgKHVuaWNvZGVfcmVzaXplKHBfbGVmdCwgbmV3X2xlbikgIT0gMCkKICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgIH0KKwogICAgICAgICAvKiBjb3B5ICdyaWdodCcgaW50byB0aGUgbmV3bHkgYWxsb2NhdGVkIGFyZWEgb2YgJ2xlZnQnICovCiAgICAgICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKCpwX2xlZnQsIGxlZnRfbGVuLCByaWdodCwgMCwgcmlnaHRfbGVuKTsKICAgICB9CkBAIC0xMTYyMSw2ICsxMTcxOCw3IEBACiAgICAgaW50IGtpbmQ7CiAgICAgUHlfc3NpemVfdCBpLCBqLCBsZW47CiAgICAgQkxPT01fTUFTSyBzZXBtYXNrOworICAgIFB5X3NzaXplX3Qgc2VwbGVuOwogCiAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZWxmKSA9PSAtMSB8fCBQeVVuaWNvZGVfUkVBRFkoc2Vwb2JqKSA9PSAtMSkKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0xMTYyOCwyNCArMTE3MjYsMzUgQEAKICAgICBraW5kID0gUHlVbmljb2RlX0tJTkQoc2VsZik7CiAgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHNlbGYpOwogICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYpOworICAgIHNlcGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlcG9iaik7CiAgICAgc2VwbWFzayA9IG1ha2VfYmxvb21fbWFzayhQeVVuaWNvZGVfS0lORChzZXBvYmopLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0RBVEEoc2Vwb2JqKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlcG9iaikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VwbGVuKTsKIAogICAgIGkgPSAwOwogICAgIGlmIChzdHJpcHR5cGUgIT0gUklHSFRTVFJJUCkgewotICAgICAgICB3aGlsZSAoaSA8IGxlbiAmJgotICAgICAgICAgICAgICAgQkxPT01fTUVNQkVSKHNlcG1hc2ssIFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpLCBzZXBvYmopKSB7CisgICAgICAgIHdoaWxlIChpIDwgbGVuKSB7CisgICAgICAgICAgICBQeV9VQ1M0IGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSk7CisgICAgICAgICAgICBpZiAoIUJMT09NKHNlcG1hc2ssIGNoKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfRmluZENoYXIoc2Vwb2JqLCBjaCwgMCwgc2VwbGVuLCAxKSA8IDApCisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBpKys7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBqID0gbGVuOwogICAgIGlmIChzdHJpcHR5cGUgIT0gTEVGVFNUUklQKSB7Ci0gICAgICAgIGRvIHsKKyAgICAgICAgai0tOworICAgICAgICB3aGlsZSAoaiA+PSBpKSB7CisgICAgICAgICAgICBQeV9VQ1M0IGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaik7CisgICAgICAgICAgICBpZiAoIUJMT09NKHNlcG1hc2ssIGNoKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfRmluZENoYXIoc2Vwb2JqLCBjaCwgMCwgc2VwbGVuLCAxKSA8IDApCisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBqLS07Ci0gICAgICAgIH0gd2hpbGUgKGogPj0gaSAmJgotICAgICAgICAgICAgICAgICBCTE9PTV9NRU1CRVIoc2VwbWFzaywgUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaiksIHNlcG9iaikpOworICAgICAgICB9CisKICAgICAgICAgaisrOwogICAgIH0KIApAQCAtMTE2OTIsMzAgKzExODAxLDYzIEBACiBzdGF0aWMgUHlPYmplY3QgKgogZG9fc3RyaXAoUHlPYmplY3QgKnNlbGYsIGludCBzdHJpcHR5cGUpCiB7Ci0gICAgaW50IGtpbmQ7Ci0gICAgdm9pZCAqZGF0YTsKICAgICBQeV9zc2l6ZV90IGxlbiwgaSwgajsKIAogICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHNlbGYpOwotICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShzZWxmKTsKICAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKTsKIAotICAgIGkgPSAwOwotICAgIGlmIChzdHJpcHR5cGUgIT0gUklHSFRTVFJJUCkgewotICAgICAgICB3aGlsZSAoaSA8IGxlbiAmJiBQeV9VTklDT0RFX0lTU1BBQ0UoUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSkpKSB7Ci0gICAgICAgICAgICBpKys7CisgICAgaWYgKFB5VW5pY29kZV9JU19BU0NJSShzZWxmKSkgeworICAgICAgICBQeV9VQ1MxICpkYXRhID0gUHlVbmljb2RlXzFCWVRFX0RBVEEoc2VsZik7CisKKyAgICAgICAgaSA9IDA7CisgICAgICAgIGlmIChzdHJpcHR5cGUgIT0gUklHSFRTVFJJUCkgeworICAgICAgICAgICAgd2hpbGUgKGkgPCBsZW4pIHsKKyAgICAgICAgICAgICAgICBQeV9VQ1MxIGNoID0gZGF0YVtpXTsKKyAgICAgICAgICAgICAgICBpZiAoIV9QeV9hc2NpaV93aGl0ZXNwYWNlW2NoXSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgaSsrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaiA9IGxlbjsKKyAgICAgICAgaWYgKHN0cmlwdHlwZSAhPSBMRUZUU1RSSVApIHsKKyAgICAgICAgICAgIGotLTsKKyAgICAgICAgICAgIHdoaWxlIChqID49IGkpIHsKKyAgICAgICAgICAgICAgICBQeV9VQ1MxIGNoID0gZGF0YVtqXTsKKyAgICAgICAgICAgICAgICBpZiAoIV9QeV9hc2NpaV93aGl0ZXNwYWNlW2NoXSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgai0tOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaisrOwogICAgICAgICB9CiAgICAgfQorICAgIGVsc2UgeworICAgICAgICBpbnQga2luZCA9IFB5VW5pY29kZV9LSU5EKHNlbGYpOworICAgICAgICB2b2lkICpkYXRhID0gUHlVbmljb2RlX0RBVEEoc2VsZik7CiAKLSAgICBqID0gbGVuOwotICAgIGlmIChzdHJpcHR5cGUgIT0gTEVGVFNUUklQKSB7Ci0gICAgICAgIGRvIHsKKyAgICAgICAgaSA9IDA7CisgICAgICAgIGlmIChzdHJpcHR5cGUgIT0gUklHSFRTVFJJUCkgeworICAgICAgICAgICAgd2hpbGUgKGkgPCBsZW4pIHsKKyAgICAgICAgICAgICAgICBQeV9VQ1M0IGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSk7CisgICAgICAgICAgICAgICAgaWYgKCFQeV9VTklDT0RFX0lTU1BBQ0UoY2gpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBqID0gbGVuOworICAgICAgICBpZiAoc3RyaXB0eXBlICE9IExFRlRTVFJJUCkgewogICAgICAgICAgICAgai0tOwotICAgICAgICB9IHdoaWxlIChqID49IGkgJiYgUHlfVU5JQ09ERV9JU1NQQUNFKFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGopKSk7Ci0gICAgICAgIGorKzsKKyAgICAgICAgICAgIHdoaWxlIChqID49IGkpIHsKKyAgICAgICAgICAgICAgICBQeV9VQ1M0IGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaik7CisgICAgICAgICAgICAgICAgaWYgKCFQeV9VTklDT0RFX0lTU1BBQ0UoY2gpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBqLS07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBqKys7CisgICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gUHlVbmljb2RlX1N1YnN0cmluZyhzZWxmLCBpLCBqKTsKQEAgLTExOTM5LDcgKzEyMDgxLDcgQEAKICAgICBQeV9zc2l6ZV90IGlzaXplOwogICAgIFB5X3NzaXplX3Qgb3NpemUsIHNxdW90ZSwgZHF1b3RlLCBpLCBvOwogICAgIFB5X1VDUzQgbWF4LCBxdW90ZTsKLSAgICBpbnQgaWtpbmQsIG9raW5kOworICAgIGludCBpa2luZCwgb2tpbmQsIHVuY2hhbmdlZDsKICAgICB2b2lkICppZGF0YSwgKm9kYXRhOwogCiAgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1bmljb2RlKSA9PSAtMSkKQEAgLTExOTUwLDcgKzEyMDkyLDcgQEAKIAogICAgIC8qIENvbXB1dGUgbGVuZ3RoIG9mIG91dHB1dCwgcXVvdGUgY2hhcmFjdGVycywgYW5kCiAgICAgICAgbWF4aW11bSBjaGFyYWN0ZXIgKi8KLSAgICBvc2l6ZSA9IDI7IC8qIHF1b3RlcyAqLworICAgIG9zaXplID0gMDsKICAgICBtYXggPSAxMjc7CiAgICAgc3F1b3RlID0gZHF1b3RlID0gMDsKICAgICBpa2luZCA9IFB5VW5pY29kZV9LSU5EKHVuaWNvZGUpOwpAQCAtMTE5ODEsNyArMTIxMjMsOSBAQAogICAgIH0KIAogICAgIHF1b3RlID0gJ1wnJzsKKyAgICB1bmNoYW5nZWQgPSAob3NpemUgPT0gaXNpemUpOwogICAgIGlmIChzcXVvdGUpIHsKKyAgICAgICAgdW5jaGFuZ2VkID0gMDsKICAgICAgICAgaWYgKGRxdW90ZSkKICAgICAgICAgICAgIC8qIEJvdGggc3F1b3RlIGFuZCBkcXVvdGUgcHJlc2VudC4gVXNlIHNxdW90ZSwKICAgICAgICAgICAgICAgIGFuZCBlc2NhcGUgdGhlbSAqLwpAQCAtMTE5ODksNiArMTIxMzMsNyBAQAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBxdW90ZSA9ICciJzsKICAgICB9CisgICAgb3NpemUgKz0gMjsgICAvKiBxdW90ZXMgKi8KIAogICAgIHJlcHIgPSBQeVVuaWNvZGVfTmV3KG9zaXplLCBtYXgpOwogICAgIGlmIChyZXByID09IE5VTEwpCkBAIC0xMTk5OCw4MSArMTIxNDMsODcgQEAKIAogICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIDAsIHF1b3RlKTsKICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvc2l6ZS0xLCBxdW90ZSk7CisgICAgaWYgKHVuY2hhbmdlZCkgeworICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyhyZXByLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmljb2RlLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc2l6ZSk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBmb3IgKGkgPSAwLCBvID0gMTsgaSA8IGlzaXplOyBpKyspIHsKKyAgICAgICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChpa2luZCwgaWRhdGEsIGkpOwogCi0gICAgZm9yIChpID0gMCwgbyA9IDE7IGkgPCBpc2l6ZTsgaSsrKSB7Ci0gICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChpa2luZCwgaWRhdGEsIGkpOwotCi0gICAgICAgIC8qIEVzY2FwZSBxdW90ZXMgYW5kIGJhY2tzbGFzaGVzICovCi0gICAgICAgIGlmICgoY2ggPT0gcXVvdGUpIHx8IChjaCA9PSAnXFwnKSkgewotICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCAnXFwnKTsKLSAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgY2gpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBNYXAgc3BlY2lhbCB3aGl0ZXNwYWNlIHRvICdcdCcsIFxuJywgJ1xyJyAqLwotICAgICAgICBpZiAoY2ggPT0gJ1x0JykgewotICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCAnXFwnKTsKLSAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ3QnKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChjaCA9PSAnXG4nKSB7Ci0gICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssICdcXCcpOwotICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCAnbicpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGNoID09ICdccicpIHsKLSAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ1xcJyk7Ci0gICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssICdyJyk7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBNYXAgbm9uLXByaW50YWJsZSBVUyBBU0NJSSB0byAnXHhoaCcgKi8KLSAgICAgICAgZWxzZSBpZiAoY2ggPCAnICcgfHwgY2ggPT0gMHg3RikgewotICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCAnXFwnKTsKLSAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ3gnKTsKLSAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiA0KSAmIDB4MDAwRl0pOwotICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbY2ggJiAweDAwMEZdKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIENvcHkgQVNDSUkgY2hhcmFjdGVycyBhcy1pcyAqLwotICAgICAgICBlbHNlIGlmIChjaCA8IDB4N0YpIHsKLSAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgY2gpOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogTm9uLUFTQ0lJIGNoYXJhY3RlcnMgKi8KLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvKiBNYXAgVW5pY29kZSB3aGl0ZXNwYWNlIGFuZCBjb250cm9sIGNoYXJhY3RlcnMKLSAgICAgICAgICAgICAgIChjYXRlZ29yaWVzIFoqIGFuZCBDKiBleGNlcHQgQVNDSUkgc3BhY2UpCi0gICAgICAgICAgICAqLwotICAgICAgICAgICAgaWYgKCFQeV9VTklDT0RFX0lTUFJJTlRBQkxFKGNoKSkgeworICAgICAgICAgICAgLyogRXNjYXBlIHF1b3RlcyBhbmQgYmFja3NsYXNoZXMgKi8KKyAgICAgICAgICAgIGlmICgoY2ggPT0gcXVvdGUpIHx8IChjaCA9PSAnXFwnKSkgewogICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ1xcJyk7Ci0gICAgICAgICAgICAgICAgLyogTWFwIDgtYml0IGNoYXJhY3RlcnMgdG8gJ1x4aGgnICovCi0gICAgICAgICAgICAgICAgaWYgKGNoIDw9IDB4ZmYpIHsKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCAneCcpOwotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1soY2ggPj4gNCkgJiAweDAwMEZdKTsKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbY2ggJiAweDAwMEZdKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgLyogTWFwIDE2LWJpdCBjaGFyYWN0ZXJzIHRvICdcdXh4eHgnICovCi0gICAgICAgICAgICAgICAgZWxzZSBpZiAoY2ggPD0gMHhmZmZmKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ3UnKTsKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbKGNoID4+IDEyKSAmIDB4Rl0pOwotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1soY2ggPj4gOCkgJiAweEZdKTsKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbKGNoID4+IDQpICYgMHhGXSk7Ci0gICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzW2NoICYgMHhGXSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIC8qIE1hcCAyMS1iaXQgY2hhcmFjdGVycyB0byAnXFUwMHh4eHh4eCcgKi8KLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCAnVScpOwotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1soY2ggPj4gMjgpICYgMHhGXSk7Ci0gICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiAyNCkgJiAweEZdKTsKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbKGNoID4+IDIwKSAmIDB4Rl0pOwotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1soY2ggPj4gMTYpICYgMHhGXSk7Ci0gICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiAxMikgJiAweEZdKTsKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbKGNoID4+IDgpICYgMHhGXSk7Ci0gICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiA0KSAmIDB4Rl0pOwotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1tjaCAmIDB4Rl0pOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8qIENvcHkgY2hhcmFjdGVycyBhcy1pcyAqLwotICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBjaCk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIE1hcCBzcGVjaWFsIHdoaXRlc3BhY2UgdG8gJ1x0JywgXG4nLCAnXHInICovCisgICAgICAgICAgICBpZiAoY2ggPT0gJ1x0JykgeworICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ1xcJyk7CisgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCAndCcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoY2ggPT0gJ1xuJykgeworICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ1xcJyk7CisgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCAnbicpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoY2ggPT0gJ1xyJykgeworICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ1xcJyk7CisgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCAncicpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBNYXAgbm9uLXByaW50YWJsZSBVUyBBU0NJSSB0byAnXHhoaCcgKi8KKyAgICAgICAgICAgIGVsc2UgaWYgKGNoIDwgJyAnIHx8IGNoID09IDB4N0YpIHsKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssICdcXCcpOworICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ3gnKTsKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1soY2ggPj4gNCkgJiAweDAwMEZdKTsKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1tjaCAmIDB4MDAwRl0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBDb3B5IEFTQ0lJIGNoYXJhY3RlcnMgYXMtaXMgKi8KKyAgICAgICAgICAgIGVsc2UgaWYgKGNoIDwgMHg3RikgeworICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgY2gpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBOb24tQVNDSUkgY2hhcmFjdGVycyAqLworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLyogTWFwIFVuaWNvZGUgd2hpdGVzcGFjZSBhbmQgY29udHJvbCBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgICAgKGNhdGVnb3JpZXMgWiogYW5kIEMqIGV4Y2VwdCBBU0NJSSBzcGFjZSkKKyAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGlmICghUHlfVU5JQ09ERV9JU1BSSU5UQUJMRShjaCkpIHsKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCAnXFwnKTsKKyAgICAgICAgICAgICAgICAgICAgLyogTWFwIDgtYml0IGNoYXJhY3RlcnMgdG8gJ1x4aGgnICovCisgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8PSAweGZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssICd4Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1soY2ggPj4gNCkgJiAweDAwMEZdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzW2NoICYgMHgwMDBGXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLyogTWFwIDE2LWJpdCBjaGFyYWN0ZXJzIHRvICdcdXh4eHgnICovCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNoIDw9IDB4ZmZmZikgeworICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCAndScpOworICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbKGNoID4+IDEyKSAmIDB4Rl0pOworICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbKGNoID4+IDgpICYgMHhGXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1soY2ggPj4gNCkgJiAweEZdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzW2NoICYgMHhGXSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgLyogTWFwIDIxLWJpdCBjaGFyYWN0ZXJzIHRvICdcVTAweHh4eHh4JyAqLworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ1UnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiAyOCkgJiAweEZdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiAyNCkgJiAweEZdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiAyMCkgJiAweEZdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiAxNikgJiAweEZdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiAxMikgJiAweEZdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiA4KSAmIDB4Rl0pOworICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbKGNoID4+IDQpICYgMHhGXSk7CisgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1tjaCAmIDB4Rl0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIC8qIENvcHkgY2hhcmFjdGVycyBhcy1pcyAqLworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIGNoKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjcyNiw2ICsxMjg3Nyw4IEBACiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgICAgICByZXN1bHQgPSB0YWlsbWF0Y2goc2VsZiwgc3Vic3RyaW5nLCBzdGFydCwgZW5kLCAtMSk7CiAgICAgICAgICAgICBQeV9ERUNSRUYoc3Vic3RyaW5nKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gLTEpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgUHlfUkVUVVJOX1RSVUU7CiAgICAgICAgICAgICB9CkBAIC0xMjc0Miw2ICsxMjg5NSw4IEBACiAgICAgfQogICAgIHJlc3VsdCA9IHRhaWxtYXRjaChzZWxmLCBzdWJzdHJpbmcsIHN0YXJ0LCBlbmQsIC0xKTsKICAgICBQeV9ERUNSRUYoc3Vic3RyaW5nKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKHJlc3VsdCk7CiB9CiAKQEAgLTEyNzc1LDYgKzEyOTMwLDggQEAKICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgICAgIHJlc3VsdCA9IHRhaWxtYXRjaChzZWxmLCBzdWJzdHJpbmcsIHN0YXJ0LCBlbmQsICsxKTsKICAgICAgICAgICAgIFB5X0RFQ1JFRihzdWJzdHJpbmcpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgICAgICAgICBQeV9SRVRVUk5fVFJVRTsKICAgICAgICAgICAgIH0KQEAgLTEyNzg5LDYgKzEyOTQ2LDggQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAgIHJlc3VsdCA9IHRhaWxtYXRjaChzZWxmLCBzdWJzdHJpbmcsIHN0YXJ0LCBlbmQsICsxKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKICAgICBQeV9ERUNSRUYoc3Vic3RyaW5nKTsKICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKHJlc3VsdCk7CiB9CkBAIC0xMjc5NiwyMSArMTI5NTUsMjcgQEAKIFB5X0xPQ0FMX0lOTElORSh2b2lkKQogX1B5VW5pY29kZVdyaXRlcl9VcGRhdGUoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyKQogewotICAgIHdyaXRlci0+c2l6ZSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHdyaXRlci0+YnVmZmVyKTsKKyAgICBpZiAoIXdyaXRlci0+cmVhZG9ubHkpCisgICAgICAgIHdyaXRlci0+c2l6ZSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHdyaXRlci0+YnVmZmVyKTsKKyAgICBlbHNlIHsKKyAgICAgICAgLyogQ29weS1vbi13cml0ZSBtb2RlOiBzZXQgYnVmZmVyIHNpemUgdG8gMCBzbworICAgICAgICAgKiBfUHlVbmljb2RlV3JpdGVyX1ByZXBhcmUoKSB3aWxsIGNvcHkgKGFuZCBlbmxhcmdlKSB0aGUgYnVmZmVyIG9uCisgICAgICAgICAqIG5leHQgd3JpdGUuICovCisgICAgICAgIHdyaXRlci0+c2l6ZSA9IDA7CisgICAgfQogICAgIHdyaXRlci0+bWF4Y2hhciA9IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRSh3cml0ZXItPmJ1ZmZlcik7CiAgICAgd3JpdGVyLT5kYXRhID0gUHlVbmljb2RlX0RBVEEod3JpdGVyLT5idWZmZXIpOwogICAgIHdyaXRlci0+a2luZCA9IFB5VW5pY29kZV9LSU5EKHdyaXRlci0+YnVmZmVyKTsKIH0KIAogdm9pZAotX1B5VW5pY29kZVdyaXRlcl9Jbml0KF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwgUHlfc3NpemVfdCBtaW5fbGVuZ3RoKQorX1B5VW5pY29kZVdyaXRlcl9Jbml0KF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlcikKIHsKICAgICBtZW1zZXQod3JpdGVyLCAwLCBzaXplb2YoKndyaXRlcikpOwogI2lmZGVmIFB5X0RFQlVHCiAgICAgd3JpdGVyLT5raW5kID0gNTsgICAgLyogaW52YWxpZCBraW5kICovCiAjZW5kaWYKLSAgICB3cml0ZXItPm1pbl9sZW5ndGggPSBQeV9NQVgobWluX2xlbmd0aCwgMTAwKTsKLSAgICB3cml0ZXItPm92ZXJhbGxvY2F0ZSA9IChtaW5fbGVuZ3RoID4gMCk7CisgICAgd3JpdGVyLT5taW5fY2hhciA9IDEyNzsKIH0KIAogaW50CkBAIC0xMjgyOCwyOSArMTI5OTMsMjggQEAKICAgICB9CiAgICAgbmV3bGVuID0gd3JpdGVyLT5wb3MgKyBsZW5ndGg7CiAKKyAgICBtYXhjaGFyID0gTUFYX01BWENIQVIobWF4Y2hhciwgd3JpdGVyLT5taW5fY2hhcik7CisKICAgICBpZiAod3JpdGVyLT5idWZmZXIgPT0gTlVMTCkgewotICAgICAgICBpZiAod3JpdGVyLT5vdmVyYWxsb2NhdGUpIHsKKyAgICAgICAgYXNzZXJ0KCF3cml0ZXItPnJlYWRvbmx5KTsKKyAgICAgICAgaWYgKHdyaXRlci0+b3ZlcmFsbG9jYXRlICYmIG5ld2xlbiA8PSAoUFlfU1NJWkVfVF9NQVggLSBuZXdsZW4gLyA0KSkgewogICAgICAgICAgICAgLyogb3ZlcmFsbG9jYXRlIDI1JSB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIHJlc2l6ZSAqLwotICAgICAgICAgICAgaWYgKG5ld2xlbiA8PSAoUFlfU1NJWkVfVF9NQVggLSBuZXdsZW4gLyA0KSkKLSAgICAgICAgICAgICAgICBuZXdsZW4gKz0gbmV3bGVuIC8gNDsKLSAgICAgICAgICAgIGlmIChuZXdsZW4gPCB3cml0ZXItPm1pbl9sZW5ndGgpCi0gICAgICAgICAgICAgICAgbmV3bGVuID0gd3JpdGVyLT5taW5fbGVuZ3RoOworICAgICAgICAgICAgbmV3bGVuICs9IG5ld2xlbiAvIDQ7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKG5ld2xlbiA8IHdyaXRlci0+bWluX2xlbmd0aCkKKyAgICAgICAgICAgIG5ld2xlbiA9IHdyaXRlci0+bWluX2xlbmd0aDsKKwogICAgICAgICB3cml0ZXItPmJ1ZmZlciA9IFB5VW5pY29kZV9OZXcobmV3bGVuLCBtYXhjaGFyKTsKICAgICAgICAgaWYgKHdyaXRlci0+YnVmZmVyID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIF9QeVVuaWNvZGVXcml0ZXJfVXBkYXRlKHdyaXRlcik7Ci0gICAgICAgIHJldHVybiAwOwogICAgIH0KLQotICAgIGlmIChuZXdsZW4gPiB3cml0ZXItPnNpemUpIHsKLSAgICAgICAgaWYgKHdyaXRlci0+b3ZlcmFsbG9jYXRlKSB7CisgICAgZWxzZSBpZiAobmV3bGVuID4gd3JpdGVyLT5zaXplKSB7CisgICAgICAgIGlmICh3cml0ZXItPm92ZXJhbGxvY2F0ZSAmJiBuZXdsZW4gPD0gKFBZX1NTSVpFX1RfTUFYIC0gbmV3bGVuIC8gNCkpIHsKICAgICAgICAgICAgIC8qIG92ZXJhbGxvY2F0ZSAyNSUgdG8gbGltaXQgdGhlIG51bWJlciBvZiByZXNpemUgKi8KLSAgICAgICAgICAgIGlmIChuZXdsZW4gPD0gKFBZX1NTSVpFX1RfTUFYIC0gbmV3bGVuIC8gNCkpCi0gICAgICAgICAgICAgICAgbmV3bGVuICs9IG5ld2xlbiAvIDQ7Ci0gICAgICAgICAgICBpZiAobmV3bGVuIDwgd3JpdGVyLT5taW5fbGVuZ3RoKQotICAgICAgICAgICAgICAgIG5ld2xlbiA9IHdyaXRlci0+bWluX2xlbmd0aDsKKyAgICAgICAgICAgIG5ld2xlbiArPSBuZXdsZW4gLyA0OwogICAgICAgICB9CisgICAgICAgIGlmIChuZXdsZW4gPCB3cml0ZXItPm1pbl9sZW5ndGgpCisgICAgICAgICAgICBuZXdsZW4gPSB3cml0ZXItPm1pbl9sZW5ndGg7CiAKICAgICAgICAgaWYgKG1heGNoYXIgPiB3cml0ZXItPm1heGNoYXIgfHwgd3JpdGVyLT5yZWFkb25seSkgewogICAgICAgICAgICAgLyogcmVzaXplICsgd2lkZW4gKi8KQEAgLTEyODY4LDcgKzEzMDMyLDYgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIH0KICAgICAgICAgd3JpdGVyLT5idWZmZXIgPSBuZXdidWZmZXI7Ci0gICAgICAgIF9QeVVuaWNvZGVXcml0ZXJfVXBkYXRlKHdyaXRlcik7CiAgICAgfQogICAgIGVsc2UgaWYgKG1heGNoYXIgPiB3cml0ZXItPm1heGNoYXIpIHsKICAgICAgICAgYXNzZXJ0KCF3cml0ZXItPnJlYWRvbmx5KTsKQEAgLTEyODc5LDExICsxMzA0MiwyNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZXItPmJ1ZmZlciwgMCwgd3JpdGVyLT5wb3MpOwogICAgICAgICBQeV9ERUNSRUYod3JpdGVyLT5idWZmZXIpOwogICAgICAgICB3cml0ZXItPmJ1ZmZlciA9IG5ld2J1ZmZlcjsKLSAgICAgICAgX1B5VW5pY29kZVdyaXRlcl9VcGRhdGUod3JpdGVyKTsKICAgICB9CisgICAgX1B5VW5pY29kZVdyaXRlcl9VcGRhdGUod3JpdGVyKTsKICAgICByZXR1cm4gMDsKIH0KIAorUHlfTE9DQUxfSU5MSU5FKGludCkKK19QeVVuaWNvZGVXcml0ZXJfV3JpdGVDaGFySW5saW5lKF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwgUHlfVUNTNCBjaCkKK3sKKyAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKHdyaXRlciwgMSwgY2gpIDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIFB5VW5pY29kZV9XUklURSh3cml0ZXItPmtpbmQsIHdyaXRlci0+ZGF0YSwgd3JpdGVyLT5wb3MsIGNoKTsKKyAgICB3cml0ZXItPnBvcysrOworICAgIHJldHVybiAwOworfQorCitpbnQKK19QeVVuaWNvZGVXcml0ZXJfV3JpdGVDaGFyKF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwgUHlfVUNTNCBjaCkKK3sKKyAgICByZXR1cm4gX1B5VW5pY29kZVdyaXRlcl9Xcml0ZUNoYXJJbmxpbmUod3JpdGVyLCBjaCk7Cit9CisKIGludAogX1B5VW5pY29kZVdyaXRlcl9Xcml0ZVN0cihfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIsIFB5T2JqZWN0ICpzdHIpCiB7CkBAIC0xMjg5OCwxMSArMTMwNzcsMTAgQEAKICAgICBtYXhjaGFyID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHN0cik7CiAgICAgaWYgKG1heGNoYXIgPiB3cml0ZXItPm1heGNoYXIgfHwgbGVuID4gd3JpdGVyLT5zaXplIC0gd3JpdGVyLT5wb3MpIHsKICAgICAgICAgaWYgKHdyaXRlci0+YnVmZmVyID09IE5VTEwgJiYgIXdyaXRlci0+b3ZlcmFsbG9jYXRlKSB7CisgICAgICAgICAgICB3cml0ZXItPnJlYWRvbmx5ID0gMTsKICAgICAgICAgICAgIFB5X0lOQ1JFRihzdHIpOwogICAgICAgICAgICAgd3JpdGVyLT5idWZmZXIgPSBzdHI7CiAgICAgICAgICAgICBfUHlVbmljb2RlV3JpdGVyX1VwZGF0ZSh3cml0ZXIpOwotICAgICAgICAgICAgd3JpdGVyLT5yZWFkb25seSA9IDE7Ci0gICAgICAgICAgICB3cml0ZXItPnNpemUgPSAwOwogICAgICAgICAgICAgd3JpdGVyLT5wb3MgKz0gbGVuOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KQEAgLTEyOTE1LDYgKzEzMDkzLDU0IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKK2ludAorX1B5VW5pY29kZVdyaXRlcl9Xcml0ZVN1YnN0cmluZyhfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIsIFB5T2JqZWN0ICpzdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnQsIFB5X3NzaXplX3QgZW5kKQoreworICAgIFB5X1VDUzQgbWF4Y2hhcjsKKyAgICBQeV9zc2l6ZV90IGxlbjsKKworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc3RyKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgYXNzZXJ0KDAgPD0gc3RhcnQpOworICAgIGFzc2VydChlbmQgPD0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKSk7CisgICAgYXNzZXJ0KHN0YXJ0IDw9IGVuZCk7CisKKyAgICBpZiAoZW5kID09IDApCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKHN0YXJ0ID09IDAgJiYgZW5kID09IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cikpCisgICAgICAgIHJldHVybiBfUHlVbmljb2RlV3JpdGVyX1dyaXRlU3RyKHdyaXRlciwgc3RyKTsKKworICAgIGlmIChQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUoc3RyKSA+IHdyaXRlci0+bWF4Y2hhcikKKyAgICAgICAgbWF4Y2hhciA9IF9QeVVuaWNvZGVfRmluZE1heENoYXIoc3RyLCBzdGFydCwgZW5kKTsKKyAgICBlbHNlCisgICAgICAgIG1heGNoYXIgPSB3cml0ZXItPm1heGNoYXI7CisgICAgbGVuID0gZW5kIC0gc3RhcnQ7CisKKyAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKHdyaXRlciwgbGVuLCBtYXhjaGFyKSA8IDApCisgICAgICAgIHJldHVybiAtMTsKKworICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKHdyaXRlci0+YnVmZmVyLCB3cml0ZXItPnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIsIHN0YXJ0LCBsZW4pOworICAgIHdyaXRlci0+cG9zICs9IGxlbjsKKyAgICByZXR1cm4gMDsKK30KKworaW50CitfUHlVbmljb2RlV3JpdGVyX1dyaXRlQ3N0cihfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIsIGNvbnN0IGNoYXIgKnN0ciwgUHlfc3NpemVfdCBsZW4pCit7CisgICAgUHlfVUNTNCBtYXhjaGFyOworCisgICAgbWF4Y2hhciA9IHVjczFsaWJfZmluZF9tYXhfY2hhcigoUHlfVUNTMSopc3RyLCAoUHlfVUNTMSopc3RyICsgbGVuKTsKKyAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKHdyaXRlciwgbGVuLCBtYXhjaGFyKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHVuaWNvZGVfd3JpdGVfY3N0cih3cml0ZXItPmJ1ZmZlciwgd3JpdGVyLT5wb3MsIHN0ciwgbGVuKTsKKyAgICB3cml0ZXItPnBvcyArPSBsZW47CisgICAgcmV0dXJuIDA7Cit9CisKIFB5T2JqZWN0ICoKIF9QeVVuaWNvZGVXcml0ZXJfRmluaXNoKF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlcikKIHsKQEAgLTEyOTcxLDcgKzEzMTk3LDcgQEAKIAogICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIF9QeVVuaWNvZGVXcml0ZXJfSW5pdCgmd3JpdGVyLCAwKTsKKyAgICBfUHlVbmljb2RlV3JpdGVyX0luaXQoJndyaXRlcik7CiAgICAgcmV0ID0gX1B5VW5pY29kZV9Gb3JtYXRBZHZhbmNlZFdyaXRlcigmd3JpdGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZiwgZm9ybWF0X3NwZWMsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChmb3JtYXRfc3BlYykpOwpAQCAtMTMxOTAsMTYgKzEzNDE2LDM5IEBACiAKIC8qIEhlbHBlcnMgZm9yIFB5VW5pY29kZV9Gb3JtYXQoKSAqLwogCitzdHJ1Y3QgdW5pY29kZV9mb3JtYXR0ZXJfdCB7CisgICAgUHlPYmplY3QgKmFyZ3M7CisgICAgaW50IGFyZ3Nfb3duZWQ7CisgICAgUHlfc3NpemVfdCBhcmdsZW4sIGFyZ2lkeDsKKyAgICBQeU9iamVjdCAqZGljdDsKKworICAgIGVudW0gUHlVbmljb2RlX0tpbmQgZm10a2luZDsKKyAgICBQeV9zc2l6ZV90IGZtdGNudCwgZm10cG9zOworICAgIHZvaWQgKmZtdGRhdGE7CisgICAgUHlPYmplY3QgKmZtdHN0cjsKKworICAgIF9QeVVuaWNvZGVXcml0ZXIgd3JpdGVyOworfTsKKworc3RydWN0IHVuaWNvZGVfZm9ybWF0X2FyZ190IHsKKyAgICBQeV9VQ1M0IGNoOworICAgIGludCBmbGFnczsKKyAgICBQeV9zc2l6ZV90IHdpZHRoOworICAgIGludCBwcmVjOworICAgIGludCBzaWduOworfTsKKwogc3RhdGljIFB5T2JqZWN0ICoKLWdldG5leHRhcmcoUHlPYmplY3QgKmFyZ3MsIFB5X3NzaXplX3QgYXJnbGVuLCBQeV9zc2l6ZV90ICpwX2FyZ2lkeCkKK3VuaWNvZGVfZm9ybWF0X2dldG5leHRhcmcoc3RydWN0IHVuaWNvZGVfZm9ybWF0dGVyX3QgKmN0eCkKIHsKLSAgICBQeV9zc2l6ZV90IGFyZ2lkeCA9ICpwX2FyZ2lkeDsKLSAgICBpZiAoYXJnaWR4IDwgYXJnbGVuKSB7Ci0gICAgICAgICgqcF9hcmdpZHgpKys7Ci0gICAgICAgIGlmIChhcmdsZW4gPCAwKQotICAgICAgICAgICAgcmV0dXJuIGFyZ3M7CisgICAgUHlfc3NpemVfdCBhcmdpZHggPSBjdHgtPmFyZ2lkeDsKKworICAgIGlmIChhcmdpZHggPCBjdHgtPmFyZ2xlbikgeworICAgICAgICBjdHgtPmFyZ2lkeCsrOworICAgICAgICBpZiAoY3R4LT5hcmdsZW4gPCAwKQorICAgICAgICAgICAgcmV0dXJuIGN0eC0+YXJnczsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIFB5VHVwbGVfR2V0SXRlbShhcmdzLCBhcmdpZHgpOworICAgICAgICAgICAgcmV0dXJuIFB5VHVwbGVfR2V0SXRlbShjdHgtPmFyZ3MsIGFyZ2lkeCk7CiAgICAgfQogICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICJub3QgZW5vdWdoIGFyZ3VtZW50cyBmb3IgZm9ybWF0IHN0cmluZyIpOwpAQCAtMTMyMDgsMjMgKzEzNDU3LDM0IEBACiAKIC8qIFJldHVybnMgYSBuZXcgcmVmZXJlbmNlIHRvIGEgUHlVbmljb2RlIG9iamVjdCwgb3IgTlVMTCBvbiBmYWlsdXJlLiAqLwogCisvKiBGb3JtYXQgYSBmbG9hdCBpbnRvIHRoZSB3cml0ZXIgaWYgdGhlIHdyaXRlciBpcyBub3QgTlVMTCwgb3IgaW50byAqcF9vdXRwdXQKKyAgIG90aGVyd2lzZS4KKworICAgUmV0dXJuIDAgb24gc3VjY2VzcywgcmFpc2UgYW4gZXhjZXB0aW9uIGFuZCByZXR1cm4gLTEgb24gZXJyb3IuICovCiBzdGF0aWMgaW50Ci1mb3JtYXRmbG9hdChQeU9iamVjdCAqdiwgaW50IGZsYWdzLCBpbnQgcHJlYywgaW50IHR5cGUsCi0gICAgICAgICAgICBQeU9iamVjdCAqKnBfb3V0cHV0LCBfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIpCitmb3JtYXRmbG9hdChQeU9iamVjdCAqdiwgc3RydWN0IHVuaWNvZGVfZm9ybWF0X2FyZ190ICphcmcsCisgICAgICAgICAgICBQeU9iamVjdCAqKnBfb3V0cHV0LAorICAgICAgICAgICAgX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyKQogewogICAgIGNoYXIgKnA7CiAgICAgZG91YmxlIHg7CiAgICAgUHlfc3NpemVfdCBsZW47CisgICAgaW50IHByZWM7CisgICAgaW50IGR0b2FfZmxhZ3M7CiAKICAgICB4ID0gUHlGbG9hdF9Bc0RvdWJsZSh2KTsKICAgICBpZiAoeCA9PSAtMS4wICYmIFB5RXJyX09jY3VycmVkKCkpCiAgICAgICAgIHJldHVybiAtMTsKIAorICAgIHByZWMgPSBhcmctPnByZWM7CiAgICAgaWYgKHByZWMgPCAwKQogICAgICAgICBwcmVjID0gNjsKIAotICAgIHAgPSBQeU9TX2RvdWJsZV90b19zdHJpbmcoeCwgdHlwZSwgcHJlYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbGFncyAmIEZfQUxUKSA/IFB5X0RUU0ZfQUxUIDogMCwgTlVMTCk7CisgICAgaWYgKGFyZy0+ZmxhZ3MgJiBGX0FMVCkKKyAgICAgICAgZHRvYV9mbGFncyA9IFB5X0RUU0ZfQUxUOworICAgIGVsc2UKKyAgICAgICAgZHRvYV9mbGFncyA9IDA7CisgICAgcCA9IFB5T1NfZG91YmxlX3RvX3N0cmluZyh4LCBhcmctPmNoLCBwcmVjLCBkdG9hX2ZsYWdzLCBOVUxMKTsKICAgICBpZiAocCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gLTE7CiAgICAgbGVuID0gc3RybGVuKHApOwpAQCAtMTMyNjEsNyArMTM1MjEsNyBAQAogICogcHJvZHVjZSBhICctJyBzaWduLCBidXQgY2FuIGZvciBQeXRob24ncyB1bmJvdW5kZWQgaW50cy4KICAqLwogc3RhdGljIFB5T2JqZWN0KgotZm9ybWF0bG9uZyhQeU9iamVjdCAqdmFsLCBpbnQgZmxhZ3MsIGludCBwcmVjLCBpbnQgdHlwZSkKK2Zvcm1hdGxvbmcoUHlPYmplY3QgKnZhbCwgc3RydWN0IHVuaWNvZGVfZm9ybWF0X2FyZ190ICphcmcpCiB7CiAgICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7CiAgICAgY2hhciAqYnVmOwpAQCAtMTMyNzEsNiArMTM1MzEsOCBAQAogICAgIFB5X3NzaXplX3QgbGxlbjsKICAgICBpbnQgbnVtZGlnaXRzOyAgICAgIC8qIGxlbiA9PSBudW1ub25kaWdpdHMgKyBudW1kaWdpdHMgKi8KICAgICBpbnQgbnVtbm9uZGlnaXRzID0gMDsKKyAgICBpbnQgcHJlYyA9IGFyZy0+cHJlYzsKKyAgICBpbnQgdHlwZSA9IGFyZy0+Y2g7CiAKICAgICAvKiBBdm9pZCBleGNlZWRpbmcgU1NJWkVfVF9NQVggKi8KICAgICBpZiAocHJlYyA+IElOVF9NQVgtMykgewpAQCAtMTMyODIsNyArMTM1NDQsMTAgQEAKICAgICBhc3NlcnQoUHlMb25nX0NoZWNrKHZhbCkpOwogCiAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYXNzZXJ0KCEiJ3R5cGUnIG5vdCBpbiBbZGl1b3hYXSIpOwogICAgIGNhc2UgJ2QnOgorICAgIGNhc2UgJ2knOgogICAgIGNhc2UgJ3UnOgogICAgICAgICAvKiBTcGVjaWFsLWNhc2UgYm9vbGVhbjogd2Ugd2FudCAwLzEgKi8KICAgICAgICAgaWYgKFB5Qm9vbF9DaGVjayh2YWwpKQpAQCAtMTMyOTksOCArMTM1NjQsNiBAQAogICAgICAgICBudW1ub25kaWdpdHMgPSAyOwogICAgICAgICByZXN1bHQgPSBQeU51bWJlcl9Ub0Jhc2UodmFsLCAxNik7CiAgICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGFzc2VydCghIid0eXBlJyBub3QgaW4gW2R1b3hYXSIpOwogICAgIH0KICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0xMzMyOCw3ICsxMzU5MSw3IEBACiAgICAgYXNzZXJ0KG51bWRpZ2l0cyA+IDApOwogCiAgICAgLyogR2V0IHJpZCBvZiBiYXNlIG1hcmtlciB1bmxlc3MgRl9BTFQgKi8KLSAgICBpZiAoKChmbGFncyAmIEZfQUxUKSA9PSAwICYmCisgICAgaWYgKCgoYXJnLT5mbGFncyAmIEZfQUxUKSA9PSAwICYmCiAgICAgICAgICh0eXBlID09ICdvJyB8fCB0eXBlID09ICd4JyB8fCB0eXBlID09ICdYJykpKSB7CiAgICAgICAgIGFzc2VydChidWZbc2lnbl0gPT0gJzAnKTsKICAgICAgICAgYXNzZXJ0KGJ1ZltzaWduKzFdID09ICd4JyB8fCBidWZbc2lnbisxXSA9PSAnWCcgfHwKQEAgLTEzMzczLDE1ICsxMzYzNiwxMDAgQEAKICAgICAgICAgICAgIGlmIChidWZbaV0gPj0gJ2EnICYmIGJ1ZltpXSA8PSAneCcpCiAgICAgICAgICAgICAgICAgYnVmW2ldIC09ICdhJy0nQSc7CiAgICAgfQotICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHJlc3VsdCkgfHwgbGVuICE9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHJlc3VsdCkpIHsKKyAgICBpZiAoIVB5VW5pY29kZV9DaGVjayhyZXN1bHQpCisgICAgICAgIHx8IGJ1ZiAhPSBQeVVuaWNvZGVfREFUQShyZXN1bHQpKSB7CiAgICAgICAgIFB5T2JqZWN0ICp1bmljb2RlOwogICAgICAgICB1bmljb2RlID0gX1B5VW5pY29kZV9Gcm9tQVNDSUkoYnVmLCBsZW4pOwogICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKICAgICAgICAgcmVzdWx0ID0gdW5pY29kZTsKICAgICB9CisgICAgZWxzZSBpZiAobGVuICE9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHJlc3VsdCkpIHsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9SZXNpemUoJnJlc3VsdCwgbGVuKSA8IDApCisgICAgICAgICAgICBQeV9DTEVBUihyZXN1bHQpOworICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCisvKiBGb3JtYXQgYW4gaW50ZWdlci4KKyAqIFJldHVybiAxIGlmIHRoZSBudW1iZXIgaGFzIGJlZW4gZm9ybWF0dGVkIGludG8gdGhlIHdyaXRlciwKKyAqICAgICAgICAwIGlmIHRoZSBudW1iZXIgaGFzIGJlZW4gZm9ybWF0dGVkIGludG8gKnBfb3V0cHV0CisgKiAgICAgICAtMSBhbmQgcmFpc2UgYW4gZXhjZXB0aW9uIG9uIGVycm9yICovCitzdGF0aWMgaW50CittYWluZm9ybWF0bG9uZyhQeU9iamVjdCAqdiwKKyAgICAgICAgICAgICAgIHN0cnVjdCB1bmljb2RlX2Zvcm1hdF9hcmdfdCAqYXJnLAorICAgICAgICAgICAgICAgUHlPYmplY3QgKipwX291dHB1dCwKKyAgICAgICAgICAgICAgIF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlcikKK3sKKyAgICBQeU9iamVjdCAqaW9iaiwgKnJlczsKKyAgICBjaGFyIHR5cGUgPSAoY2hhcilhcmctPmNoOworCisgICAgaWYgKCFQeU51bWJlcl9DaGVjayh2KSkKKyAgICAgICAgZ290byB3cm9uZ3R5cGU7CisKKyAgICBpZiAoIVB5TG9uZ19DaGVjayh2KSkgeworICAgICAgICBpb2JqID0gUHlOdW1iZXJfTG9uZyh2KTsKKyAgICAgICAgaWYgKGlvYmogPT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfVHlwZUVycm9yKSkKKyAgICAgICAgICAgICAgICBnb3RvIHdyb25ndHlwZTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnQoUHlMb25nX0NoZWNrKGlvYmopKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGlvYmogPSB2OworICAgICAgICBQeV9JTkNSRUYoaW9iaik7CisgICAgfQorCisgICAgaWYgKFB5TG9uZ19DaGVja0V4YWN0KHYpCisgICAgICAgICYmIGFyZy0+d2lkdGggPT0gLTEgJiYgYXJnLT5wcmVjID09IC0xCisgICAgICAgICYmICEoYXJnLT5mbGFncyAmIChGX1NJR04gfCBGX0JMQU5LKSkKKyAgICAgICAgJiYgdHlwZSAhPSAnWCcpCisgICAgeworICAgICAgICAvKiBGYXN0IHBhdGggKi8KKyAgICAgICAgaW50IGFsdGVybmF0ZSA9IGFyZy0+ZmxhZ3MgJiBGX0FMVDsKKyAgICAgICAgaW50IGJhc2U7CisKKyAgICAgICAgc3dpdGNoKHR5cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYXNzZXJ0KDAgJiYgIid0eXBlJyBub3QgaW4gW2RpdW94WF0iKTsKKyAgICAgICAgICAgIGNhc2UgJ2QnOgorICAgICAgICAgICAgY2FzZSAnaSc6CisgICAgICAgICAgICBjYXNlICd1JzoKKyAgICAgICAgICAgICAgICBiYXNlID0gMTA7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdvJzoKKyAgICAgICAgICAgICAgICBiYXNlID0gODsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ3gnOgorICAgICAgICAgICAgY2FzZSAnWCc6CisgICAgICAgICAgICAgICAgYmFzZSA9IDE2OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKF9QeUxvbmdfRm9ybWF0V3JpdGVyKHdyaXRlciwgdiwgYmFzZSwgYWx0ZXJuYXRlKSA9PSAtMSkgeworICAgICAgICAgICAgUHlfREVDUkVGKGlvYmopOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIFB5X0RFQ1JFRihpb2JqKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgcmVzID0gZm9ybWF0bG9uZyhpb2JqLCBhcmcpOworICAgIFB5X0RFQ1JFRihpb2JqKTsKKyAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKyAgICAqcF9vdXRwdXQgPSByZXM7CisgICAgcmV0dXJuIDA7CisKK3dyb25ndHlwZToKKyAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgIiUlJWMgZm9ybWF0OiBhIG51bWJlciBpcyByZXF1aXJlZCwgIgorICAgICAgICAgICAgIm5vdCAlLjIwMHMiLAorICAgICAgICAgICAgdHlwZSwgUHlfVFlQRSh2KS0+dHBfbmFtZSk7CisgICAgcmV0dXJuIC0xOworfQorCiBzdGF0aWMgUHlfVUNTNAogZm9ybWF0Y2hhcihQeU9iamVjdCAqdikKIHsKQEAgLTEzNDE0LDU0MCArMTM3NjIsNTg3IEBACiAgICAgcmV0dXJuIChQeV9VQ1M0KSAtMTsKIH0KIAorLyogUGFyc2Ugb3B0aW9ucyBvZiBhbiBhcmd1bWVudDogZmxhZ3MsIHdpZHRoLCBwcmVjaXNpb24uCisgICBIYW5kbGUgYWxzbyAiJShuYW1lKSIgc3ludGF4LgorCisgICBSZXR1cm4gMCBpZiB0aGUgYXJndW1lbnQgaGFzIGJlZW4gZm9ybWF0dGVkIGludG8gYXJnLT5zdHIuCisgICBSZXR1cm4gMSBpZiB0aGUgYXJndW1lbnQgaGFzIGJlZW4gd3JpdHRlbiBpbnRvIGN0eC0+d3JpdGVyLAorICAgUmFpc2UgYW4gZXhjZXB0aW9uIGFuZCByZXR1cm4gLTEgb24gZXJyb3IuICovCitzdGF0aWMgaW50Cit1bmljb2RlX2Zvcm1hdF9hcmdfcGFyc2Uoc3RydWN0IHVuaWNvZGVfZm9ybWF0dGVyX3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdW5pY29kZV9mb3JtYXRfYXJnX3QgKmFyZykKK3sKKyNkZWZpbmUgRk9STUFUX1JFQUQoY3R4KSBcCisgICAgICAgIFB5VW5pY29kZV9SRUFEKChjdHgpLT5mbXRraW5kLCAoY3R4KS0+Zm10ZGF0YSwgKGN0eCktPmZtdHBvcykKKworICAgIFB5T2JqZWN0ICp2OworCisgICAgaWYgKGFyZy0+Y2ggPT0gJygnKSB7CisgICAgICAgIC8qIEdldCBhcmd1bWVudCB2YWx1ZSBmcm9tIGEgZGljdGlvbmFyeS4gRXhhbXBsZTogIiUobmFtZSlzIi4gKi8KKyAgICAgICAgUHlfc3NpemVfdCBrZXlzdGFydDsKKyAgICAgICAgUHlfc3NpemVfdCBrZXlsZW47CisgICAgICAgIFB5T2JqZWN0ICprZXk7CisgICAgICAgIGludCBwY291bnQgPSAxOworCisgICAgICAgIGlmIChjdHgtPmRpY3QgPT0gTlVMTCkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9ybWF0IHJlcXVpcmVzIGEgbWFwcGluZyIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgICsrY3R4LT5mbXRwb3M7CisgICAgICAgIC0tY3R4LT5mbXRjbnQ7CisgICAgICAgIGtleXN0YXJ0ID0gY3R4LT5mbXRwb3M7CisgICAgICAgIC8qIFNraXAgb3ZlciBiYWxhbmNlZCBwYXJlbnRoZXNlcyAqLworICAgICAgICB3aGlsZSAocGNvdW50ID4gMCAmJiAtLWN0eC0+Zm10Y250ID49IDApIHsKKyAgICAgICAgICAgIGFyZy0+Y2ggPSBGT1JNQVRfUkVBRChjdHgpOworICAgICAgICAgICAgaWYgKGFyZy0+Y2ggPT0gJyknKQorICAgICAgICAgICAgICAgIC0tcGNvdW50OworICAgICAgICAgICAgZWxzZSBpZiAoYXJnLT5jaCA9PSAnKCcpCisgICAgICAgICAgICAgICAgKytwY291bnQ7CisgICAgICAgICAgICBjdHgtPmZtdHBvcysrOworICAgICAgICB9CisgICAgICAgIGtleWxlbiA9IGN0eC0+Zm10cG9zIC0ga2V5c3RhcnQgLSAxOworICAgICAgICBpZiAoY3R4LT5mbXRjbnQgPCAwIHx8IHBjb3VudCA+IDApIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmNvbXBsZXRlIGZvcm1hdCBrZXkiKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBrZXkgPSBQeVVuaWNvZGVfU3Vic3RyaW5nKGN0eC0+Zm10c3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXN0YXJ0LCBrZXlzdGFydCArIGtleWxlbik7CisgICAgICAgIGlmIChrZXkgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgaWYgKGN0eC0+YXJnc19vd25lZCkgeworICAgICAgICAgICAgUHlfREVDUkVGKGN0eC0+YXJncyk7CisgICAgICAgICAgICBjdHgtPmFyZ3Nfb3duZWQgPSAwOworICAgICAgICB9CisgICAgICAgIGN0eC0+YXJncyA9IFB5T2JqZWN0X0dldEl0ZW0oY3R4LT5kaWN0LCBrZXkpOworICAgICAgICBQeV9ERUNSRUYoa2V5KTsKKyAgICAgICAgaWYgKGN0eC0+YXJncyA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBjdHgtPmFyZ3Nfb3duZWQgPSAxOworICAgICAgICBjdHgtPmFyZ2xlbiA9IC0xOworICAgICAgICBjdHgtPmFyZ2lkeCA9IC0yOworICAgIH0KKworICAgIC8qIFBhcnNlIGZsYWdzLiBFeGFtcGxlOiAiJStpIiA9PiBmbGFncz1GX1NJR04uICovCisgICAgd2hpbGUgKC0tY3R4LT5mbXRjbnQgPj0gMCkgeworICAgICAgICBhcmctPmNoID0gRk9STUFUX1JFQUQoY3R4KTsKKyAgICAgICAgY3R4LT5mbXRwb3MrKzsKKyAgICAgICAgc3dpdGNoIChhcmctPmNoKSB7CisgICAgICAgIGNhc2UgJy0nOiBhcmctPmZsYWdzIHw9IEZfTEpVU1Q7IGNvbnRpbnVlOworICAgICAgICBjYXNlICcrJzogYXJnLT5mbGFncyB8PSBGX1NJR047IGNvbnRpbnVlOworICAgICAgICBjYXNlICcgJzogYXJnLT5mbGFncyB8PSBGX0JMQU5LOyBjb250aW51ZTsKKyAgICAgICAgY2FzZSAnIyc6IGFyZy0+ZmxhZ3MgfD0gRl9BTFQ7IGNvbnRpbnVlOworICAgICAgICBjYXNlICcwJzogYXJnLT5mbGFncyB8PSBGX1pFUk87IGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIC8qIFBhcnNlIHdpZHRoLiBFeGFtcGxlOiAiJTEwcyIgPT4gd2lkdGg9MTAgKi8KKyAgICBpZiAoYXJnLT5jaCA9PSAnKicpIHsKKyAgICAgICAgdiA9IHVuaWNvZGVfZm9ybWF0X2dldG5leHRhcmcoY3R4KTsKKyAgICAgICAgaWYgKHYgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgaWYgKCFQeUxvbmdfQ2hlY2sodikpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiogd2FudHMgaW50Iik7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgYXJnLT53aWR0aCA9IFB5TG9uZ19Bc1NzaXplX3Qodik7CisgICAgICAgIGlmIChhcmctPndpZHRoID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGlmIChhcmctPndpZHRoIDwgMCkgeworICAgICAgICAgICAgYXJnLT5mbGFncyB8PSBGX0xKVVNUOworICAgICAgICAgICAgYXJnLT53aWR0aCA9IC1hcmctPndpZHRoOworICAgICAgICB9CisgICAgICAgIGlmICgtLWN0eC0+Zm10Y250ID49IDApIHsKKyAgICAgICAgICAgIGFyZy0+Y2ggPSBGT1JNQVRfUkVBRChjdHgpOworICAgICAgICAgICAgY3R4LT5mbXRwb3MrKzsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIGlmIChhcmctPmNoID49ICcwJyAmJiBhcmctPmNoIDw9ICc5JykgeworICAgICAgICBhcmctPndpZHRoID0gYXJnLT5jaCAtICcwJzsKKyAgICAgICAgd2hpbGUgKC0tY3R4LT5mbXRjbnQgPj0gMCkgeworICAgICAgICAgICAgYXJnLT5jaCA9IEZPUk1BVF9SRUFEKGN0eCk7CisgICAgICAgICAgICBjdHgtPmZtdHBvcysrOworICAgICAgICAgICAgaWYgKGFyZy0+Y2ggPCAnMCcgfHwgYXJnLT5jaCA+ICc5JykKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8qIFNpbmNlIGFyZy0+Y2ggaXMgdW5zaWduZWQsIHRoZSBSSFMgd291bGQgZW5kIHVwIGFzIHVuc2lnbmVkLAorICAgICAgICAgICAgICAgbWl4aW5nIHNpZ25lZCBhbmQgdW5zaWduZWQgY29tcGFyaXNvbi4gU2luY2UgYXJnLT5jaCBpcyBiZXR3ZWVuCisgICAgICAgICAgICAgICAnMCcgYW5kICc5JywgY2FzdGluZyB0byBpbnQgaXMgc2FmZS4gKi8KKyAgICAgICAgICAgIGlmIChhcmctPndpZHRoID4gKFBZX1NTSVpFX1RfTUFYIC0gKChpbnQpYXJnLT5jaCAtICcwJykpIC8gMTApIHsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpZHRoIHRvbyBiaWciKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcmctPndpZHRoID0gYXJnLT53aWR0aCoxMCArIChhcmctPmNoIC0gJzAnKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIFBhcnNlIHByZWNpc2lvbi4gRXhhbXBsZTogIiUuM2YiID0+IHByZWM9MyAqLworICAgIGlmIChhcmctPmNoID09ICcuJykgeworICAgICAgICBhcmctPnByZWMgPSAwOworICAgICAgICBpZiAoLS1jdHgtPmZtdGNudCA+PSAwKSB7CisgICAgICAgICAgICBhcmctPmNoID0gRk9STUFUX1JFQUQoY3R4KTsKKyAgICAgICAgICAgIGN0eC0+Zm10cG9zKys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFyZy0+Y2ggPT0gJyonKSB7CisgICAgICAgICAgICB2ID0gdW5pY29kZV9mb3JtYXRfZ2V0bmV4dGFyZyhjdHgpOworICAgICAgICAgICAgaWYgKHYgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBpZiAoIVB5TG9uZ19DaGVjayh2KSkgeworICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIqIHdhbnRzIGludCIpOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFyZy0+cHJlYyA9IF9QeUxvbmdfQXNJbnQodik7CisgICAgICAgICAgICBpZiAoYXJnLT5wcmVjID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgaWYgKGFyZy0+cHJlYyA8IDApCisgICAgICAgICAgICAgICAgYXJnLT5wcmVjID0gMDsKKyAgICAgICAgICAgIGlmICgtLWN0eC0+Zm10Y250ID49IDApIHsKKyAgICAgICAgICAgICAgICBhcmctPmNoID0gRk9STUFUX1JFQUQoY3R4KTsKKyAgICAgICAgICAgICAgICBjdHgtPmZtdHBvcysrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGFyZy0+Y2ggPj0gJzAnICYmIGFyZy0+Y2ggPD0gJzknKSB7CisgICAgICAgICAgICBhcmctPnByZWMgPSBhcmctPmNoIC0gJzAnOworICAgICAgICAgICAgd2hpbGUgKC0tY3R4LT5mbXRjbnQgPj0gMCkgeworICAgICAgICAgICAgICAgIGFyZy0+Y2ggPSBGT1JNQVRfUkVBRChjdHgpOworICAgICAgICAgICAgICAgIGN0eC0+Zm10cG9zKys7CisgICAgICAgICAgICAgICAgaWYgKGFyZy0+Y2ggPCAnMCcgfHwgYXJnLT5jaCA+ICc5JykKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgaWYgKGFyZy0+cHJlYyA+IChJTlRfTUFYIC0gKChpbnQpYXJnLT5jaCAtICcwJykpIC8gMTApIHsKKyAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJlY2lzaW9uIHRvbyBiaWciKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhcmctPnByZWMgPSBhcmctPnByZWMqMTAgKyAoYXJnLT5jaCAtICcwJyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBJZ25vcmUgImgiLCAibCIgYW5kICJMIiBmb3JtYXQgcHJlZml4IChleDogIiVoaSIgb3IgIiVscyIpICovCisgICAgaWYgKGN0eC0+Zm10Y250ID49IDApIHsKKyAgICAgICAgaWYgKGFyZy0+Y2ggPT0gJ2gnIHx8IGFyZy0+Y2ggPT0gJ2wnIHx8IGFyZy0+Y2ggPT0gJ0wnKSB7CisgICAgICAgICAgICBpZiAoLS1jdHgtPmZtdGNudCA+PSAwKSB7CisgICAgICAgICAgICAgICAgYXJnLT5jaCA9IEZPUk1BVF9SRUFEKGN0eCk7CisgICAgICAgICAgICAgICAgY3R4LT5mbXRwb3MrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoY3R4LT5mbXRjbnQgPCAwKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgImluY29tcGxldGUgZm9ybWF0Iik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgcmV0dXJuIDA7CisKKyN1bmRlZiBGT1JNQVRfUkVBRAorfQorCisvKiBGb3JtYXQgb25lIGFyZ3VtZW50LiBTdXBwb3J0ZWQgY29udmVyc2lvbiBzcGVjaWZpZXJzOgorCisgICAtICJzIiwgInIiLCAiYSI6IGFueSB0eXBlCisgICAtICJpIiwgImQiLCAidSIsICJvIiwgIngiLCAiWCI6IGludAorICAgLSAiZSIsICJFIiwgImYiLCAiRiIsICJnIiwgIkciOiBmbG9hdAorICAgLSAiYyI6IGludCBvciBzdHIgKDEgY2hhcmFjdGVyKQorCisgICBXaGVuIHBvc3NpYmxlLCB0aGUgb3V0cHV0IGlzIHdyaXR0ZW4gZGlyZWN0bHkgaW50byB0aGUgVW5pY29kZSB3cml0ZXIKKyAgIChjdHgtPndyaXRlcikuIEEgc3RyaW5nIGlzIGNyZWF0ZWQgd2hlbiBwYWRkaW5nIGlzIHJlcXVpcmVkLgorCisgICBSZXR1cm4gMCBpZiB0aGUgYXJndW1lbnQgaGFzIGJlZW4gZm9ybWF0dGVkIGludG8gKnBfc3RyLAorICAgICAgICAgIDEgaWYgdGhlIGFyZ3VtZW50IGhhcyBiZWVuIHdyaXR0ZW4gaW50byBjdHgtPndyaXRlciwKKyAgICAgICAgIC0xIG9uIGVycm9yLiAqLworc3RhdGljIGludAordW5pY29kZV9mb3JtYXRfYXJnX2Zvcm1hdChzdHJ1Y3QgdW5pY29kZV9mb3JtYXR0ZXJfdCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdW5pY29kZV9mb3JtYXRfYXJnX3QgKmFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKipwX3N0cikKK3sKKyAgICBQeU9iamVjdCAqdjsKKyAgICBfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIgPSAmY3R4LT53cml0ZXI7CisKKyAgICBpZiAoY3R4LT5mbXRjbnQgPT0gMCkKKyAgICAgICAgY3R4LT53cml0ZXIub3ZlcmFsbG9jYXRlID0gMDsKKworICAgIGlmIChhcmctPmNoID09ICclJykgeworICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9Xcml0ZUNoYXJJbmxpbmUod3JpdGVyLCAnJScpIDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgdiA9IHVuaWNvZGVfZm9ybWF0X2dldG5leHRhcmcoY3R4KTsKKyAgICBpZiAodiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKworICAgIHN3aXRjaCAoYXJnLT5jaCkgeworICAgIGNhc2UgJ3MnOgorICAgIGNhc2UgJ3InOgorICAgIGNhc2UgJ2EnOgorICAgICAgICBpZiAoUHlMb25nX0NoZWNrRXhhY3QodikgJiYgYXJnLT53aWR0aCA9PSAtMSAmJiBhcmctPnByZWMgPT0gLTEpIHsKKyAgICAgICAgICAgIC8qIEZhc3QgcGF0aCAqLworICAgICAgICAgICAgaWYgKF9QeUxvbmdfRm9ybWF0V3JpdGVyKHdyaXRlciwgdiwgMTAsIGFyZy0+ZmxhZ3MgJiBGX0FMVCkgPT0gLTEpCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKworICAgICAgICBpZiAoUHlVbmljb2RlX0NoZWNrRXhhY3QodikgJiYgYXJnLT5jaCA9PSAncycpIHsKKyAgICAgICAgICAgICpwX3N0ciA9IHY7CisgICAgICAgICAgICBQeV9JTkNSRUYoKnBfc3RyKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChhcmctPmNoID09ICdzJykKKyAgICAgICAgICAgICAgICAqcF9zdHIgPSBQeU9iamVjdF9TdHIodik7CisgICAgICAgICAgICBlbHNlIGlmIChhcmctPmNoID09ICdyJykKKyAgICAgICAgICAgICAgICAqcF9zdHIgPSBQeU9iamVjdF9SZXByKHYpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICpwX3N0ciA9IFB5T2JqZWN0X0FTQ0lJKHYpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSAnaSc6CisgICAgY2FzZSAnZCc6CisgICAgY2FzZSAndSc6CisgICAgY2FzZSAnbyc6CisgICAgY2FzZSAneCc6CisgICAgY2FzZSAnWCc6CisgICAgeworICAgICAgICBpbnQgcmV0ID0gbWFpbmZvcm1hdGxvbmcodiwgYXJnLCBwX3N0ciwgd3JpdGVyKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgYXJnLT5zaWduID0gMTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSAnZSc6CisgICAgY2FzZSAnRSc6CisgICAgY2FzZSAnZic6CisgICAgY2FzZSAnRic6CisgICAgY2FzZSAnZyc6CisgICAgY2FzZSAnRyc6CisgICAgICAgIGlmIChhcmctPndpZHRoID09IC0xICYmIGFyZy0+cHJlYyA9PSAtMQorICAgICAgICAgICAgJiYgIShhcmctPmZsYWdzICYgKEZfU0lHTiB8IEZfQkxBTkspKSkKKyAgICAgICAgeworICAgICAgICAgICAgLyogRmFzdCBwYXRoICovCisgICAgICAgICAgICBpZiAoZm9ybWF0ZmxvYXQodiwgYXJnLCBOVUxMLCB3cml0ZXIpID09IC0xKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisKKyAgICAgICAgYXJnLT5zaWduID0gMTsKKyAgICAgICAgaWYgKGZvcm1hdGZsb2F0KHYsIGFyZywgcF9zdHIsIE5VTEwpID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgJ2MnOgorICAgIHsKKyAgICAgICAgUHlfVUNTNCBjaCA9IGZvcm1hdGNoYXIodik7CisgICAgICAgIGlmIChjaCA9PSAoUHlfVUNTNCkgLTEpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGlmIChhcmctPndpZHRoID09IC0xICYmIGFyZy0+cHJlYyA9PSAtMSkgeworICAgICAgICAgICAgLyogRmFzdCBwYXRoICovCisgICAgICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9Xcml0ZUNoYXJJbmxpbmUod3JpdGVyLCBjaCkgPCAwKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICAgICpwX3N0ciA9IFB5VW5pY29kZV9Gcm9tT3JkaW5hbChjaCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGRlZmF1bHQ6CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgInVuc3VwcG9ydGVkIGZvcm1hdCBjaGFyYWN0ZXIgJyVjJyAoMHgleCkgIgorICAgICAgICAgICAgICAgICAgICAgImF0IGluZGV4ICV6ZCIsCisgICAgICAgICAgICAgICAgICAgICAoMzE8PWFyZy0+Y2ggJiYgYXJnLT5jaDw9MTI2KSA/IChjaGFyKWFyZy0+Y2ggOiAnPycsCisgICAgICAgICAgICAgICAgICAgICAoaW50KWFyZy0+Y2gsCisgICAgICAgICAgICAgICAgICAgICBjdHgtPmZtdHBvcyAtIDEpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmICgqcF9zdHIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGFzc2VydCAoUHlVbmljb2RlX0NoZWNrKCpwX3N0cikpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50Cit1bmljb2RlX2Zvcm1hdF9hcmdfb3V0cHV0KHN0cnVjdCB1bmljb2RlX2Zvcm1hdHRlcl90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB1bmljb2RlX2Zvcm1hdF9hcmdfdCAqYXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqc3RyKQoreworICAgIFB5X3NzaXplX3QgbGVuOworICAgIGVudW0gUHlVbmljb2RlX0tpbmQga2luZDsKKyAgICB2b2lkICpwYnVmOworICAgIFB5X3NzaXplX3QgcGluZGV4OworICAgIFB5X1VDUzQgc2lnbmNoYXI7CisgICAgUHlfc3NpemVfdCBidWZsZW47CisgICAgUHlfVUNTNCBtYXhjaGFyOworICAgIFB5X3NzaXplX3Qgc3VibGVuOworICAgIF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciA9ICZjdHgtPndyaXRlcjsKKyAgICBQeV9VQ1M0IGZpbGw7CisKKyAgICBmaWxsID0gJyAnOworICAgIGlmIChhcmctPnNpZ24gJiYgYXJnLT5mbGFncyAmIEZfWkVSTykKKyAgICAgICAgZmlsbCA9ICcwJzsKKworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc3RyKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKTsKKyAgICBpZiAoKGFyZy0+d2lkdGggPT0gLTEgfHwgYXJnLT53aWR0aCA8PSBsZW4pCisgICAgICAgICYmIChhcmctPnByZWMgPT0gLTEgfHwgYXJnLT5wcmVjID49IGxlbikKKyAgICAgICAgJiYgIShhcmctPmZsYWdzICYgKEZfU0lHTiB8IEZfQkxBTkspKSkKKyAgICB7CisgICAgICAgIC8qIEZhc3QgcGF0aCAqLworICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9Xcml0ZVN0cih3cml0ZXIsIHN0cikgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qIFRydW5jYXRlIHRoZSBzdHJpbmcgZm9yICJzIiwgInIiIGFuZCAiYSIgZm9ybWF0cworICAgICAgIGlmIHRoZSBwcmVjaXNpb24gaXMgc2V0ICovCisgICAgaWYgKGFyZy0+Y2ggPT0gJ3MnIHx8IGFyZy0+Y2ggPT0gJ3InIHx8IGFyZy0+Y2ggPT0gJ2EnKSB7CisgICAgICAgIGlmIChhcmctPnByZWMgPj0gMCAmJiBsZW4gPiBhcmctPnByZWMpCisgICAgICAgICAgICBsZW4gPSBhcmctPnByZWM7CisgICAgfQorCisgICAgLyogQWRqdXN0IHNpZ24gYW5kIHdpZHRoICovCisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHN0cik7CisgICAgcGJ1ZiA9IFB5VW5pY29kZV9EQVRBKHN0cik7CisgICAgcGluZGV4ID0gMDsKKyAgICBzaWduY2hhciA9ICdcMCc7CisgICAgaWYgKGFyZy0+c2lnbikgeworICAgICAgICBQeV9VQ1M0IGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgcGJ1ZiwgcGluZGV4KTsKKyAgICAgICAgaWYgKGNoID09ICctJyB8fCBjaCA9PSAnKycpIHsKKyAgICAgICAgICAgIHNpZ25jaGFyID0gY2g7CisgICAgICAgICAgICBsZW4tLTsKKyAgICAgICAgICAgIHBpbmRleCsrOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGFyZy0+ZmxhZ3MgJiBGX1NJR04pCisgICAgICAgICAgICBzaWduY2hhciA9ICcrJzsKKyAgICAgICAgZWxzZSBpZiAoYXJnLT5mbGFncyAmIEZfQkxBTkspCisgICAgICAgICAgICBzaWduY2hhciA9ICcgJzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXJnLT5zaWduID0gMDsKKyAgICB9CisgICAgaWYgKGFyZy0+d2lkdGggPCBsZW4pCisgICAgICAgIGFyZy0+d2lkdGggPSBsZW47CisKKyAgICAvKiBQcmVwYXJlIHRoZSB3cml0ZXIgKi8KKyAgICBtYXhjaGFyID0gd3JpdGVyLT5tYXhjaGFyOworICAgIGlmICghKGFyZy0+ZmxhZ3MgJiBGX0xKVVNUKSkgeworICAgICAgICBpZiAoYXJnLT5zaWduKSB7CisgICAgICAgICAgICBpZiAoKGFyZy0+d2lkdGgtMSkgPiBsZW4pCisgICAgICAgICAgICAgICAgbWF4Y2hhciA9IE1BWF9NQVhDSEFSKG1heGNoYXIsIGZpbGwpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKGFyZy0+d2lkdGggPiBsZW4pCisgICAgICAgICAgICAgICAgbWF4Y2hhciA9IE1BWF9NQVhDSEFSKG1heGNoYXIsIGZpbGwpOworICAgICAgICB9CisgICAgfQorICAgIGlmIChQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUoc3RyKSA+IG1heGNoYXIpIHsKKyAgICAgICAgUHlfVUNTNCBzdHJtYXhjaGFyID0gX1B5VW5pY29kZV9GaW5kTWF4Q2hhcihzdHIsIDAsIHBpbmRleCtsZW4pOworICAgICAgICBtYXhjaGFyID0gTUFYX01BWENIQVIobWF4Y2hhciwgc3RybWF4Y2hhcik7CisgICAgfQorCisgICAgYnVmbGVuID0gYXJnLT53aWR0aDsKKyAgICBpZiAoYXJnLT5zaWduICYmIGxlbiA9PSBhcmctPndpZHRoKQorICAgICAgICBidWZsZW4rKzsKKyAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKHdyaXRlciwgYnVmbGVuLCBtYXhjaGFyKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgLyogV3JpdGUgdGhlIHNpZ24gaWYgbmVlZGVkICovCisgICAgaWYgKGFyZy0+c2lnbikgeworICAgICAgICBpZiAoZmlsbCAhPSAnICcpIHsKKyAgICAgICAgICAgIFB5VW5pY29kZV9XUklURSh3cml0ZXItPmtpbmQsIHdyaXRlci0+ZGF0YSwgd3JpdGVyLT5wb3MsIHNpZ25jaGFyKTsKKyAgICAgICAgICAgIHdyaXRlci0+cG9zICs9IDE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFyZy0+d2lkdGggPiBsZW4pCisgICAgICAgICAgICBhcmctPndpZHRoLS07CisgICAgfQorCisgICAgLyogV3JpdGUgdGhlIG51bWVyaWMgcHJlZml4IGZvciAieCIsICJYIiBhbmQgIm8iIGZvcm1hdHMKKyAgICAgICBpZiB0aGUgYWx0ZXJuYXRlIGZvcm0gaXMgdXNlZC4KKyAgICAgICBGb3IgZXhhbXBsZSwgd3JpdGUgIjB4IiBmb3IgdGhlICIlI3giIGZvcm1hdC4gKi8KKyAgICBpZiAoKGFyZy0+ZmxhZ3MgJiBGX0FMVCkgJiYgKGFyZy0+Y2ggPT0gJ3gnIHx8IGFyZy0+Y2ggPT0gJ1gnIHx8IGFyZy0+Y2ggPT0gJ28nKSkgeworICAgICAgICBhc3NlcnQoUHlVbmljb2RlX1JFQUQoa2luZCwgcGJ1ZiwgcGluZGV4KSA9PSAnMCcpOworICAgICAgICBhc3NlcnQoUHlVbmljb2RlX1JFQUQoa2luZCwgcGJ1ZiwgcGluZGV4ICsgMSkgPT0gYXJnLT5jaCk7CisgICAgICAgIGlmIChmaWxsICE9ICcgJykgeworICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKHdyaXRlci0+a2luZCwgd3JpdGVyLT5kYXRhLCB3cml0ZXItPnBvcywgJzAnKTsKKyAgICAgICAgICAgIFB5VW5pY29kZV9XUklURSh3cml0ZXItPmtpbmQsIHdyaXRlci0+ZGF0YSwgd3JpdGVyLT5wb3MrMSwgYXJnLT5jaCk7CisgICAgICAgICAgICB3cml0ZXItPnBvcyArPSAyOworICAgICAgICAgICAgcGluZGV4ICs9IDI7CisgICAgICAgIH0KKyAgICAgICAgYXJnLT53aWR0aCAtPSAyOworICAgICAgICBpZiAoYXJnLT53aWR0aCA8IDApCisgICAgICAgICAgICBhcmctPndpZHRoID0gMDsKKyAgICAgICAgbGVuIC09IDI7CisgICAgfQorCisgICAgLyogUGFkIGxlZnQgd2l0aCB0aGUgZmlsbCBjaGFyYWN0ZXIgaWYgbmVlZGVkICovCisgICAgaWYgKGFyZy0+d2lkdGggPiBsZW4gJiYgIShhcmctPmZsYWdzICYgRl9MSlVTVCkpIHsKKyAgICAgICAgc3VibGVuID0gYXJnLT53aWR0aCAtIGxlbjsKKyAgICAgICAgRklMTCh3cml0ZXItPmtpbmQsIHdyaXRlci0+ZGF0YSwgZmlsbCwgd3JpdGVyLT5wb3MsIHN1Ymxlbik7CisgICAgICAgIHdyaXRlci0+cG9zICs9IHN1YmxlbjsKKyAgICAgICAgYXJnLT53aWR0aCA9IGxlbjsKKyAgICB9CisKKyAgICAvKiBJZiBwYWRkaW5nIHdpdGggc3BhY2VzOiB3cml0ZSBzaWduIGlmIG5lZWRlZCBhbmQvb3IgbnVtZXJpYyBwcmVmaXggaWYKKyAgICAgICB0aGUgYWx0ZXJuYXRlIGZvcm0gaXMgdXNlZCAqLworICAgIGlmIChmaWxsID09ICcgJykgeworICAgICAgICBpZiAoYXJnLT5zaWduKSB7CisgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUod3JpdGVyLT5raW5kLCB3cml0ZXItPmRhdGEsIHdyaXRlci0+cG9zLCBzaWduY2hhcik7CisgICAgICAgICAgICB3cml0ZXItPnBvcyArPSAxOworICAgICAgICB9CisgICAgICAgIGlmICgoYXJnLT5mbGFncyAmIEZfQUxUKSAmJiAoYXJnLT5jaCA9PSAneCcgfHwgYXJnLT5jaCA9PSAnWCcgfHwgYXJnLT5jaCA9PSAnbycpKSB7CisgICAgICAgICAgICBhc3NlcnQoUHlVbmljb2RlX1JFQUQoa2luZCwgcGJ1ZiwgcGluZGV4KSA9PSAnMCcpOworICAgICAgICAgICAgYXNzZXJ0KFB5VW5pY29kZV9SRUFEKGtpbmQsIHBidWYsIHBpbmRleCsxKSA9PSBhcmctPmNoKTsKKyAgICAgICAgICAgIFB5VW5pY29kZV9XUklURSh3cml0ZXItPmtpbmQsIHdyaXRlci0+ZGF0YSwgd3JpdGVyLT5wb3MsICcwJyk7CisgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUod3JpdGVyLT5raW5kLCB3cml0ZXItPmRhdGEsIHdyaXRlci0+cG9zKzEsIGFyZy0+Y2gpOworICAgICAgICAgICAgd3JpdGVyLT5wb3MgKz0gMjsKKyAgICAgICAgICAgIHBpbmRleCArPSAyOworICAgICAgICB9CisgICAgfQorCisgICAgLyogV3JpdGUgY2hhcmFjdGVycyAqLworICAgIGlmIChsZW4pIHsKKyAgICAgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMod3JpdGVyLT5idWZmZXIsIHdyaXRlci0+cG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIsIHBpbmRleCwgbGVuKTsKKyAgICAgICAgd3JpdGVyLT5wb3MgKz0gbGVuOworICAgIH0KKworICAgIC8qIFBhZCByaWdodCB3aXRoIHRoZSBmaWxsIGNoYXJhY3RlciBpZiBuZWVkZWQgKi8KKyAgICBpZiAoYXJnLT53aWR0aCA+IGxlbikgeworICAgICAgICBzdWJsZW4gPSBhcmctPndpZHRoIC0gbGVuOworICAgICAgICBGSUxMKHdyaXRlci0+a2luZCwgd3JpdGVyLT5kYXRhLCAnICcsIHdyaXRlci0+cG9zLCBzdWJsZW4pOworICAgICAgICB3cml0ZXItPnBvcyArPSBzdWJsZW47CisgICAgfQorICAgIHJldHVybiAwOworfQorCisvKiBIZWxwZXIgb2YgUHlVbmljb2RlX0Zvcm1hdCgpOiBmb3JtYXQgb25lIGFyZy4KKyAgIFJldHVybiAwIG9uIHN1Y2Nlc3MsIHJhaXNlIGFuIGV4Y2VwdGlvbiBhbmQgcmV0dXJuIC0xIG9uIGVycm9yLiAqLworc3RhdGljIGludAordW5pY29kZV9mb3JtYXRfYXJnKHN0cnVjdCB1bmljb2RlX2Zvcm1hdHRlcl90ICpjdHgpCit7CisgICAgc3RydWN0IHVuaWNvZGVfZm9ybWF0X2FyZ190IGFyZzsKKyAgICBQeU9iamVjdCAqc3RyOworICAgIGludCByZXQ7CisKKyAgICBhcmcuY2ggPSBQeVVuaWNvZGVfUkVBRChjdHgtPmZtdGtpbmQsIGN0eC0+Zm10ZGF0YSwgY3R4LT5mbXRwb3MpOworICAgIGFyZy5mbGFncyA9IDA7CisgICAgYXJnLndpZHRoID0gLTE7CisgICAgYXJnLnByZWMgPSAtMTsKKyAgICBhcmcuc2lnbiA9IDA7CisgICAgc3RyID0gTlVMTDsKKworICAgIHJldCA9IHVuaWNvZGVfZm9ybWF0X2FyZ19wYXJzZShjdHgsICZhcmcpOworICAgIGlmIChyZXQgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHJldCA9IHVuaWNvZGVfZm9ybWF0X2FyZ19mb3JtYXQoY3R4LCAmYXJnLCAmc3RyKTsKKyAgICBpZiAocmV0ID09IC0xKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBpZiAocmV0ICE9IDEpIHsKKyAgICAgICAgcmV0ID0gdW5pY29kZV9mb3JtYXRfYXJnX291dHB1dChjdHgsICZhcmcsIHN0cik7CisgICAgICAgIFB5X0RFQ1JFRihzdHIpOworICAgICAgICBpZiAocmV0ID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChjdHgtPmRpY3QgJiYgKGN0eC0+YXJnaWR4IDwgY3R4LT5hcmdsZW4pICYmIGFyZy5jaCAhPSAnJScpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJub3QgYWxsIGFyZ3VtZW50cyBjb252ZXJ0ZWQgZHVyaW5nIHN0cmluZyBmb3JtYXR0aW5nIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKIFB5T2JqZWN0ICoKIFB5VW5pY29kZV9Gb3JtYXQoUHlPYmplY3QgKmZvcm1hdCwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgUHlfc3NpemVfdCBmbXRjbnQsIGZtdHBvcywgYXJnbGVuLCBhcmdpZHg7Ci0gICAgaW50IGFyZ3Nfb3duZWQgPSAwOwotICAgIFB5T2JqZWN0ICpkaWN0ID0gTlVMTDsKLSAgICBQeU9iamVjdCAqdGVtcCA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKnNlY29uZCA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKnVmb3JtYXQ7Ci0gICAgdm9pZCAqZm10OwotICAgIGVudW0gUHlVbmljb2RlX0tpbmQga2luZCwgZm10a2luZDsKLSAgICBfUHlVbmljb2RlV3JpdGVyIHdyaXRlcjsKLSAgICBQeV9zc2l6ZV90IHN1YmxlbjsKLSAgICBQeV9VQ1M0IG1heGNoYXI7CisgICAgc3RydWN0IHVuaWNvZGVfZm9ybWF0dGVyX3QgY3R4OwogCiAgICAgaWYgKGZvcm1hdCA9PSBOVUxMIHx8IGFyZ3MgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9CYWRJbnRlcm5hbENhbGwoKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHVmb3JtYXQgPSBQeVVuaWNvZGVfRnJvbU9iamVjdChmb3JtYXQpOwotICAgIGlmICh1Zm9ybWF0ID09IE5VTEwpCisKKyAgICBjdHguZm10c3RyID0gUHlVbmljb2RlX0Zyb21PYmplY3QoZm9ybWF0KTsKKyAgICBpZiAoY3R4LmZtdHN0ciA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAoUHlVbmljb2RlX1JFQURZKHVmb3JtYXQpID09IC0xKSB7Ci0gICAgICAgIFB5X0RFQ1JFRih1Zm9ybWF0KTsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKGN0eC5mbXRzdHIpID09IC0xKSB7CisgICAgICAgIFB5X0RFQ1JFRihjdHguZm10c3RyKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQorICAgIGN0eC5mbXRkYXRhID0gUHlVbmljb2RlX0RBVEEoY3R4LmZtdHN0cik7CisgICAgY3R4LmZtdGtpbmQgPSBQeVVuaWNvZGVfS0lORChjdHguZm10c3RyKTsKKyAgICBjdHguZm10Y250ID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoY3R4LmZtdHN0cik7CisgICAgY3R4LmZtdHBvcyA9IDA7CiAKLSAgICBmbXQgPSBQeVVuaWNvZGVfREFUQSh1Zm9ybWF0KTsKLSAgICBmbXRraW5kID0gUHlVbmljb2RlX0tJTkQodWZvcm1hdCk7Ci0gICAgZm10Y250ID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodWZvcm1hdCk7Ci0gICAgZm10cG9zID0gMDsKLQotICAgIF9QeVVuaWNvZGVXcml0ZXJfSW5pdCgmd3JpdGVyLCBmbXRjbnQgKyAxMDApOworICAgIF9QeVVuaWNvZGVXcml0ZXJfSW5pdCgmY3R4LndyaXRlcik7CisgICAgY3R4LndyaXRlci5taW5fbGVuZ3RoID0gY3R4LmZtdGNudCArIDEwMDsKKyAgICBjdHgud3JpdGVyLm92ZXJhbGxvY2F0ZSA9IDE7CiAKICAgICBpZiAoUHlUdXBsZV9DaGVjayhhcmdzKSkgewotICAgICAgICBhcmdsZW4gPSBQeVR1cGxlX1NpemUoYXJncyk7Ci0gICAgICAgIGFyZ2lkeCA9IDA7CisgICAgICAgIGN0eC5hcmdsZW4gPSBQeVR1cGxlX1NpemUoYXJncyk7CisgICAgICAgIGN0eC5hcmdpZHggPSAwOwogICAgIH0KICAgICBlbHNlIHsKLSAgICAgICAgYXJnbGVuID0gLTE7Ci0gICAgICAgIGFyZ2lkeCA9IC0yOworICAgICAgICBjdHguYXJnbGVuID0gLTE7CisgICAgICAgIGN0eC5hcmdpZHggPSAtMjsKICAgICB9CisgICAgY3R4LmFyZ3Nfb3duZWQgPSAwOwogICAgIGlmIChQeU1hcHBpbmdfQ2hlY2soYXJncykgJiYgIVB5VHVwbGVfQ2hlY2soYXJncykgJiYgIVB5VW5pY29kZV9DaGVjayhhcmdzKSkKLSAgICAgICAgZGljdCA9IGFyZ3M7CisgICAgICAgIGN0eC5kaWN0ID0gYXJnczsKKyAgICBlbHNlCisgICAgICAgIGN0eC5kaWN0ID0gTlVMTDsKKyAgICBjdHguYXJncyA9IGFyZ3M7CiAKLSAgICB3aGlsZSAoLS1mbXRjbnQgPj0gMCkgewotICAgICAgICBpZiAoUHlVbmljb2RlX1JFQUQoZm10a2luZCwgZm10LCBmbXRwb3MpICE9ICclJykgeworICAgIHdoaWxlICgtLWN0eC5mbXRjbnQgPj0gMCkgeworICAgICAgICBpZiAoUHlVbmljb2RlX1JFQUQoY3R4LmZtdGtpbmQsIGN0eC5mbXRkYXRhLCBjdHguZm10cG9zKSAhPSAnJScpIHsKICAgICAgICAgICAgIFB5X3NzaXplX3Qgbm9uZm10cG9zOwotICAgICAgICAgICAgbm9uZm10cG9zID0gZm10cG9zKys7Ci0gICAgICAgICAgICB3aGlsZSAoZm10Y250ID49IDAgJiYKLSAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfUkVBRChmbXRraW5kLCBmbXQsIGZtdHBvcykgIT0gJyUnKSB7Ci0gICAgICAgICAgICAgICAgZm10cG9zKys7Ci0gICAgICAgICAgICAgICAgZm10Y250LS07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoZm10Y250IDwgMCkKLSAgICAgICAgICAgICAgICBmbXRwb3MtLTsKLSAgICAgICAgICAgIHN1YmxlbiA9IGZtdHBvcyAtIG5vbmZtdHBvczsKLSAgICAgICAgICAgIG1heGNoYXIgPSBfUHlVbmljb2RlX0ZpbmRNYXhDaGFyKHVmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25mbXRwb3MsIG5vbmZtdHBvcyArIHN1Ymxlbik7Ci0gICAgICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKCZ3cml0ZXIsIHN1YmxlbiwgbWF4Y2hhcikgPT0gLTEpCi0gICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogCi0gICAgICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyh3cml0ZXIuYnVmZmVyLCB3cml0ZXIucG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWZvcm1hdCwgbm9uZm10cG9zLCBzdWJsZW4pOwotICAgICAgICAgICAgd3JpdGVyLnBvcyArPSBzdWJsZW47CisgICAgICAgICAgICBub25mbXRwb3MgPSBjdHguZm10cG9zKys7CisgICAgICAgICAgICB3aGlsZSAoY3R4LmZtdGNudCA+PSAwICYmCisgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1JFQUQoY3R4LmZtdGtpbmQsIGN0eC5mbXRkYXRhLCBjdHguZm10cG9zKSAhPSAnJScpIHsKKyAgICAgICAgICAgICAgICBjdHguZm10cG9zKys7CisgICAgICAgICAgICAgICAgY3R4LmZtdGNudC0tOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGN0eC5mbXRjbnQgPCAwKSB7CisgICAgICAgICAgICAgICAgY3R4LmZtdHBvcy0tOworICAgICAgICAgICAgICAgIGN0eC53cml0ZXIub3ZlcmFsbG9jYXRlID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfV3JpdGVTdWJzdHJpbmcoJmN0eC53cml0ZXIsIGN0eC5mbXRzdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25mbXRwb3MsIGN0eC5mbXRwb3MpIDwgMCkKKyAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvKiBHb3QgYSBmb3JtYXQgc3BlY2lmaWVyICovCi0gICAgICAgICAgICBpbnQgZmxhZ3MgPSAwOwotICAgICAgICAgICAgUHlfc3NpemVfdCB3aWR0aCA9IC0xOwotICAgICAgICAgICAgaW50IHByZWMgPSAtMTsKLSAgICAgICAgICAgIFB5X1VDUzQgYyA9ICdcMCc7Ci0gICAgICAgICAgICBQeV9VQ1M0IGZpbGw7Ci0gICAgICAgICAgICBpbnQgc2lnbjsKLSAgICAgICAgICAgIFB5X1VDUzQgc2lnbmNoYXI7Ci0gICAgICAgICAgICBpbnQgaXNudW1vazsKLSAgICAgICAgICAgIFB5T2JqZWN0ICp2ID0gTlVMTDsKLSAgICAgICAgICAgIHZvaWQgKnBidWYgPSBOVUxMOwotICAgICAgICAgICAgUHlfc3NpemVfdCBwaW5kZXgsIGxlbjsKLSAgICAgICAgICAgIFB5X1VDUzQgYnVmbWF4Y2hhcjsKLSAgICAgICAgICAgIFB5X3NzaXplX3QgYnVmbGVuOwotCi0gICAgICAgICAgICBmbXRwb3MrKzsKLSAgICAgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRChmbXRraW5kLCBmbXQsIGZtdHBvcyk7Ci0gICAgICAgICAgICBpZiAoYyA9PSAnKCcpIHsKLSAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGtleXN0YXJ0OwotICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qga2V5bGVuOwotICAgICAgICAgICAgICAgIFB5T2JqZWN0ICprZXk7Ci0gICAgICAgICAgICAgICAgaW50IHBjb3VudCA9IDE7Ci0KLSAgICAgICAgICAgICAgICBpZiAoZGljdCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9ybWF0IHJlcXVpcmVzIGEgbWFwcGluZyIpOwotICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICsrZm10cG9zOwotICAgICAgICAgICAgICAgIC0tZm10Y250OwotICAgICAgICAgICAgICAgIGtleXN0YXJ0ID0gZm10cG9zOwotICAgICAgICAgICAgICAgIC8qIFNraXAgb3ZlciBiYWxhbmNlZCBwYXJlbnRoZXNlcyAqLwotICAgICAgICAgICAgICAgIHdoaWxlIChwY291bnQgPiAwICYmIC0tZm10Y250ID49IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYyA9IFB5VW5pY29kZV9SRUFEKGZtdGtpbmQsIGZtdCwgZm10cG9zKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyknKQotICAgICAgICAgICAgICAgICAgICAgICAgLS1wY291bnQ7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJygnKQotICAgICAgICAgICAgICAgICAgICAgICAgKytwY291bnQ7Ci0gICAgICAgICAgICAgICAgICAgIGZtdHBvcysrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBrZXlsZW4gPSBmbXRwb3MgLSBrZXlzdGFydCAtIDE7Ci0gICAgICAgICAgICAgICAgaWYgKGZtdGNudCA8IDAgfHwgcGNvdW50ID4gMCkgewotICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmNvbXBsZXRlIGZvcm1hdCBrZXkiKTsKLSAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBrZXkgPSBQeVVuaWNvZGVfU3Vic3RyaW5nKHVmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzdGFydCwga2V5c3RhcnQgKyBrZXlsZW4pOwotICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgICAgIGlmIChhcmdzX293bmVkKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihhcmdzKTsKLSAgICAgICAgICAgICAgICAgICAgYXJnc19vd25lZCA9IDA7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGFyZ3MgPSBQeU9iamVjdF9HZXRJdGVtKGRpY3QsIGtleSk7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKGtleSk7Ci0gICAgICAgICAgICAgICAgaWYgKGFyZ3MgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGFyZ3Nfb3duZWQgPSAxOwotICAgICAgICAgICAgICAgIGFyZ2xlbiA9IC0xOwotICAgICAgICAgICAgICAgIGFyZ2lkeCA9IC0yOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgd2hpbGUgKC0tZm10Y250ID49IDApIHsKLSAgICAgICAgICAgICAgICBjID0gUHlVbmljb2RlX1JFQUQoZm10a2luZCwgZm10LCBmbXRwb3MrKyk7Ci0gICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSAnLSc6IGZsYWdzIHw9IEZfTEpVU1Q7IGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIGNhc2UgJysnOiBmbGFncyB8PSBGX1NJR047IGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIGNhc2UgJyAnOiBmbGFncyB8PSBGX0JMQU5LOyBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBjYXNlICcjJzogZmxhZ3MgfD0gRl9BTFQ7IGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIGNhc2UgJzAnOiBmbGFncyB8PSBGX1pFUk87IGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChjID09ICcqJykgewotICAgICAgICAgICAgICAgIHYgPSBnZXRuZXh0YXJnKGFyZ3MsIGFyZ2xlbiwgJmFyZ2lkeCk7Ci0gICAgICAgICAgICAgICAgaWYgKHYgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgICAgIGlmICghUHlMb25nX0NoZWNrKHYpKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKiB3YW50cyBpbnQiKTsKLSAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB3aWR0aCA9IFB5TG9uZ19Bc1NzaXplX3Qodik7Ci0gICAgICAgICAgICAgICAgaWYgKHdpZHRoID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICAgICBpZiAod2lkdGggPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZsYWdzIHw9IEZfTEpVU1Q7Ci0gICAgICAgICAgICAgICAgICAgIHdpZHRoID0gLXdpZHRoOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoLS1mbXRjbnQgPj0gMCkKLSAgICAgICAgICAgICAgICAgICAgYyA9IFB5VW5pY29kZV9SRUFEKGZtdGtpbmQsIGZtdCwgZm10cG9zKyspOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSBpZiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHsKLSAgICAgICAgICAgICAgICB3aWR0aCA9IGMgLSAnMCc7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKC0tZm10Y250ID49IDApIHsKLSAgICAgICAgICAgICAgICAgICAgYyA9IFB5VW5pY29kZV9SRUFEKGZtdGtpbmQsIGZtdCwgZm10cG9zKyspOwotICAgICAgICAgICAgICAgICAgICBpZiAoYyA8ICcwJyB8fCBjID4gJzknKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIC8qIFNpbmNlIGMgaXMgdW5zaWduZWQsIHRoZSBSSFMgd291bGQgZW5kIHVwIGFzIHVuc2lnbmVkLAotICAgICAgICAgICAgICAgICAgICAgICBtaXhpbmcgc2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJpc29uLiBTaW5jZSBjIGlzIGJldHdlZW4KLSAgICAgICAgICAgICAgICAgICAgICAgJzAnIGFuZCAnOScsIGNhc3RpbmcgdG8gaW50IGlzIHNhZmUuICovCi0gICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aCA+IChQWV9TU0laRV9UX01BWCAtICgoaW50KWMgLSAnMCcpKSAvIDEwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkdGggdG9vIGJpZyIpOwotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHdpZHRoID0gd2lkdGgqMTAgKyAoYyAtICcwJyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGMgPT0gJy4nKSB7Ci0gICAgICAgICAgICAgICAgcHJlYyA9IDA7Ci0gICAgICAgICAgICAgICAgaWYgKC0tZm10Y250ID49IDApCi0gICAgICAgICAgICAgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRChmbXRraW5kLCBmbXQsIGZtdHBvcysrKTsKLSAgICAgICAgICAgICAgICBpZiAoYyA9PSAnKicpIHsKLSAgICAgICAgICAgICAgICAgICAgdiA9IGdldG5leHRhcmcoYXJncywgYXJnbGVuLCAmYXJnaWR4KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHYgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFQeUxvbmdfQ2hlY2sodikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiogd2FudHMgaW50Iik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcHJlYyA9IF9QeUxvbmdfQXNJbnQodik7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChwcmVjID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChwcmVjIDwgMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHByZWMgPSAwOwotICAgICAgICAgICAgICAgICAgICBpZiAoLS1mbXRjbnQgPj0gMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRChmbXRraW5kLCBmbXQsIGZtdHBvcysrKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHsKLSAgICAgICAgICAgICAgICAgICAgcHJlYyA9IGMgLSAnMCc7Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxlICgtLWZtdGNudCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjID0gUHlVbmljb2RlX1JFQUQoZm10a2luZCwgZm10LCBmbXRwb3MrKyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA8ICcwJyB8fCBjID4gJzknKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWMgPiAoSU5UX01BWCAtICgoaW50KWMgLSAnMCcpKSAvIDEwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmVjIHRvbyBiaWciKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmVjID0gcHJlYyoxMCArIChjIC0gJzAnKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gLyogcHJlYyAqLwotICAgICAgICAgICAgaWYgKGZtdGNudCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGMgPT0gJ2gnIHx8IGMgPT0gJ2wnIHx8IGMgPT0gJ0wnKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgtLWZtdGNudCA+PSAwKQotICAgICAgICAgICAgICAgICAgICAgICAgYyA9IFB5VW5pY29kZV9SRUFEKGZtdGtpbmQsIGZtdCwgZm10cG9zKyspOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChmbXRjbnQgPCAwKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmNvbXBsZXRlIGZvcm1hdCIpOworICAgICAgICAgICAgY3R4LmZtdHBvcysrOworICAgICAgICAgICAgaWYgKHVuaWNvZGVfZm9ybWF0X2FyZygmY3R4KSA9PSAtMSkKICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoZm10Y250ID09IDApCi0gICAgICAgICAgICAgICAgd3JpdGVyLm92ZXJhbGxvY2F0ZSA9IDA7CisgICAgICAgIH0KKyAgICB9CiAKLSAgICAgICAgICAgIGlmIChjID09ICclJykgewotICAgICAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1ByZXBhcmUoJndyaXRlciwgMSwgJyUnKSA9PSAtMSkKLSAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURSh3cml0ZXIua2luZCwgd3JpdGVyLmRhdGEsIHdyaXRlci5wb3MsICclJyk7Ci0gICAgICAgICAgICAgICAgd3JpdGVyLnBvcyArPSAxOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2ID0gZ2V0bmV4dGFyZyhhcmdzLCBhcmdsZW4sICZhcmdpZHgpOwotICAgICAgICAgICAgaWYgKHYgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0KLSAgICAgICAgICAgIHNpZ24gPSAwOwotICAgICAgICAgICAgc2lnbmNoYXIgPSAnXDAnOwotICAgICAgICAgICAgZmlsbCA9ICcgJzsKLSAgICAgICAgICAgIHN3aXRjaCAoYykgewotCi0gICAgICAgICAgICBjYXNlICdzJzoKLSAgICAgICAgICAgIGNhc2UgJ3InOgotICAgICAgICAgICAgY2FzZSAnYSc6Ci0gICAgICAgICAgICAgICAgaWYgKFB5TG9uZ19DaGVja0V4YWN0KHYpICYmIHdpZHRoID09IC0xICYmIHByZWMgPT0gLTEpIHsKLSAgICAgICAgICAgICAgICAgICAgLyogRmFzdCBwYXRoICovCi0gICAgICAgICAgICAgICAgICAgIGlmIChfUHlMb25nX0Zvcm1hdFdyaXRlcigmd3JpdGVyLCB2LCAxMCwgZmxhZ3MgJiBGX0FMVCkgPT0gLTEpCi0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gbmV4dGFyZzsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0NoZWNrRXhhY3QodikgJiYgYyA9PSAncycpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVtcCA9IHY7Ci0gICAgICAgICAgICAgICAgICAgIFB5X0lOQ1JFRih0ZW1wKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdzJykKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBQeU9iamVjdF9TdHIodik7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJ3InKQotICAgICAgICAgICAgICAgICAgICAgICAgdGVtcCA9IFB5T2JqZWN0X1JlcHIodik7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBQeU9iamVjdF9BU0NJSSh2KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgJ2knOgotICAgICAgICAgICAgY2FzZSAnZCc6Ci0gICAgICAgICAgICBjYXNlICd1JzoKLSAgICAgICAgICAgIGNhc2UgJ28nOgotICAgICAgICAgICAgY2FzZSAneCc6Ci0gICAgICAgICAgICBjYXNlICdYJzoKLSAgICAgICAgICAgICAgICBpZiAoUHlMb25nX0NoZWNrRXhhY3QodikKLSAgICAgICAgICAgICAgICAgICAgJiYgd2lkdGggPT0gLTEgJiYgcHJlYyA9PSAtMQotICAgICAgICAgICAgICAgICAgICAmJiAhKGZsYWdzICYgKEZfU0lHTiB8IEZfQkxBTkspKSkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIC8qIEZhc3QgcGF0aCAqLwotICAgICAgICAgICAgICAgICAgICBzd2l0Y2goYykKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBjYXNlICdkJzoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSAnaSc6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3UnOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9QeUxvbmdfRm9ybWF0V3JpdGVyKCZ3cml0ZXIsIHYsIDEwLCBmbGFncyAmIEZfQUxUKSA9PSAtMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG5leHRhcmc7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3gnOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9QeUxvbmdfRm9ybWF0V3JpdGVyKCZ3cml0ZXIsIHYsIDE2LCBmbGFncyAmIEZfQUxUKSA9PSAtMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG5leHRhcmc7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgJ28nOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9QeUxvbmdfRm9ybWF0V3JpdGVyKCZ3cml0ZXIsIHYsIDgsIGZsYWdzICYgRl9BTFQpID09IC0xKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gbmV4dGFyZzsKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaXNudW1vayA9IDA7Ci0gICAgICAgICAgICAgICAgaWYgKFB5TnVtYmVyX0NoZWNrKHYpKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICppb2JqPU5VTEw7Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKFB5TG9uZ19DaGVjayh2KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaW9iaiA9IHY7Ci0gICAgICAgICAgICAgICAgICAgICAgICBQeV9JTkNSRUYoaW9iaik7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpb2JqID0gUHlOdW1iZXJfTG9uZyh2KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBpZiAoaW9iaiE9TlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFB5TG9uZ19DaGVjayhpb2JqKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzbnVtb2sgPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ24gPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBmb3JtYXRsb25nKGlvYmosIGZsYWdzLCBwcmVjLCAoYyA9PSAnaSc/ICdkJzogYykpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihpb2JqKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihpb2JqKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoIWlzbnVtb2spIHsKLSAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlJSVjIGZvcm1hdDogYSBudW1iZXIgaXMgcmVxdWlyZWQsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub3QgJS4yMDBzIiwgKGNoYXIpYywgUHlfVFlQRSh2KS0+dHBfbmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGZsYWdzICYgRl9aRVJPKQotICAgICAgICAgICAgICAgICAgICBmaWxsID0gJzAnOwotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBjYXNlICdlJzoKLSAgICAgICAgICAgIGNhc2UgJ0UnOgotICAgICAgICAgICAgY2FzZSAnZic6Ci0gICAgICAgICAgICBjYXNlICdGJzoKLSAgICAgICAgICAgIGNhc2UgJ2cnOgotICAgICAgICAgICAgY2FzZSAnRyc6Ci0gICAgICAgICAgICAgICAgaWYgKHdpZHRoID09IC0xICYmIHByZWMgPT0gLTEKLSAgICAgICAgICAgICAgICAgICAgJiYgIShmbGFncyAmIChGX1NJR04gfCBGX0JMQU5LKSkpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAvKiBGYXN0IHBhdGggKi8KLSAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1hdGZsb2F0KHYsIGZsYWdzLCBwcmVjLCBjLCBOVUxMLCAmd3JpdGVyKSA9PSAtMSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgZ290byBuZXh0YXJnOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHNpZ24gPSAxOwotICAgICAgICAgICAgICAgIGlmIChmbGFncyAmIEZfWkVSTykKLSAgICAgICAgICAgICAgICAgICAgZmlsbCA9ICcwJzsKLSAgICAgICAgICAgICAgICBpZiAoZm9ybWF0ZmxvYXQodiwgZmxhZ3MsIHByZWMsIGMsICZ0ZW1wLCBOVUxMKSA9PSAtMSkKLSAgICAgICAgICAgICAgICAgICAgdGVtcCA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgJ2MnOgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFB5X1VDUzQgY2ggPSBmb3JtYXRjaGFyKHYpOwotICAgICAgICAgICAgICAgIGlmIChjaCA9PSAoUHlfVUNTNCkgLTEpCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICAgICBpZiAod2lkdGggPT0gLTEgJiYgcHJlYyA9PSAtMSkgewotICAgICAgICAgICAgICAgICAgICAvKiBGYXN0IHBhdGggKi8KLSAgICAgICAgICAgICAgICAgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZSgmd3JpdGVyLCAxLCBjaCkgPT0gLTEpCi0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURSh3cml0ZXIua2luZCwgd3JpdGVyLmRhdGEsIHdyaXRlci5wb3MsIGNoKTsKLSAgICAgICAgICAgICAgICAgICAgd3JpdGVyLnBvcyArPSAxOwotICAgICAgICAgICAgICAgICAgICBnb3RvIG5leHRhcmc7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHRlbXAgPSBQeVVuaWNvZGVfRnJvbU9yZGluYWwoY2gpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5zdXBwb3J0ZWQgZm9ybWF0IGNoYXJhY3RlciAnJWMnICgweCV4KSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdCBpbmRleCAlemQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMzE8PWMgJiYgYzw9MTI2KSA/IChjaGFyKWMgOiAnPycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm10cG9zIC0gMSk7Ci0gICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHRlbXAgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICBhc3NlcnQgKFB5VW5pY29kZV9DaGVjayh0ZW1wKSk7Ci0KLSAgICAgICAgICAgIGlmICh3aWR0aCA9PSAtMSAmJiBwcmVjID09IC0xCi0gICAgICAgICAgICAgICAgJiYgIShmbGFncyAmIChGX1NJR04gfCBGX0JMQU5LKSkpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgLyogRmFzdCBwYXRoICovCi0gICAgICAgICAgICAgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfV3JpdGVTdHIoJndyaXRlciwgdGVtcCkgPT0gLTEpCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICAgICBnb3RvIG5leHRhcmc7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkodGVtcCkgPT0gLTEpIHsKLSAgICAgICAgICAgICAgICBQeV9DTEVBUih0ZW1wKTsKLSAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBraW5kID0gUHlVbmljb2RlX0tJTkQodGVtcCk7Ci0gICAgICAgICAgICBwYnVmID0gUHlVbmljb2RlX0RBVEEodGVtcCk7Ci0gICAgICAgICAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh0ZW1wKTsKLQotICAgICAgICAgICAgaWYgKGMgPT0gJ3MnIHx8IGMgPT0gJ3InIHx8IGMgPT0gJ2EnKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHByZWMgPj0gMCAmJiBsZW4gPiBwcmVjKQotICAgICAgICAgICAgICAgICAgICBsZW4gPSBwcmVjOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvKiBwYnVmIGlzIGluaXRpYWxpemVkIGhlcmUuICovCi0gICAgICAgICAgICBwaW5kZXggPSAwOwotICAgICAgICAgICAgaWYgKHNpZ24pIHsKLSAgICAgICAgICAgICAgICBQeV9VQ1M0IGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgcGJ1ZiwgcGluZGV4KTsKLSAgICAgICAgICAgICAgICBpZiAoY2ggPT0gJy0nIHx8IGNoID09ICcrJykgewotICAgICAgICAgICAgICAgICAgICBzaWduY2hhciA9IGNoOwotICAgICAgICAgICAgICAgICAgICBsZW4tLTsKLSAgICAgICAgICAgICAgICAgICAgcGluZGV4Kys7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZsYWdzICYgRl9TSUdOKQotICAgICAgICAgICAgICAgICAgICBzaWduY2hhciA9ICcrJzsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChmbGFncyAmIEZfQkxBTkspCi0gICAgICAgICAgICAgICAgICAgIHNpZ25jaGFyID0gJyAnOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgc2lnbiA9IDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAod2lkdGggPCBsZW4pCi0gICAgICAgICAgICAgICAgd2lkdGggPSBsZW47Ci0KLSAgICAgICAgICAgIC8qIENvbXB1dGUgdGhlIGxlbmd0aCBhbmQgbWF4aW11bSBjaGFyYWN0ZXIgb2YgdGhlCi0gICAgICAgICAgICAgICB3cml0dGVuIGNoYXJhY3RlcnMgKi8KLSAgICAgICAgICAgIGJ1Zm1heGNoYXIgPSAxMjc7Ci0gICAgICAgICAgICBpZiAoIShmbGFncyAmIEZfTEpVU1QpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNpZ24pIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCh3aWR0aC0xKSA+IGxlbikKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zm1heGNoYXIgPSBNQVhfTUFYQ0hBUihidWZtYXhjaGFyLCBmaWxsKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aCA+IGxlbikKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zm1heGNoYXIgPSBNQVhfTUFYQ0hBUihidWZtYXhjaGFyLCBmaWxsKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBtYXhjaGFyID0gX1B5VW5pY29kZV9GaW5kTWF4Q2hhcih0ZW1wLCAwLCBwaW5kZXgrbGVuKTsKLSAgICAgICAgICAgIGJ1Zm1heGNoYXIgPSBNQVhfTUFYQ0hBUihidWZtYXhjaGFyLCBtYXhjaGFyKTsKLQotICAgICAgICAgICAgYnVmbGVuID0gd2lkdGg7Ci0gICAgICAgICAgICBpZiAoc2lnbiAmJiBsZW4gPT0gd2lkdGgpCi0gICAgICAgICAgICAgICAgYnVmbGVuKys7Ci0KLSAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1ByZXBhcmUoJndyaXRlciwgYnVmbGVuLCBidWZtYXhjaGFyKSA9PSAtMSkKLSAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0KLSAgICAgICAgICAgIC8qIFdyaXRlIGNoYXJhY3RlcnMgKi8KLSAgICAgICAgICAgIGlmIChzaWduKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZpbGwgIT0gJyAnKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURSh3cml0ZXIua2luZCwgd3JpdGVyLmRhdGEsIHdyaXRlci5wb3MsIHNpZ25jaGFyKTsKLSAgICAgICAgICAgICAgICAgICAgd3JpdGVyLnBvcyArPSAxOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAod2lkdGggPiBsZW4pCi0gICAgICAgICAgICAgICAgICAgIHdpZHRoLS07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoKGZsYWdzICYgRl9BTFQpICYmIChjID09ICd4JyB8fCBjID09ICdYJyB8fCBjID09ICdvJykpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQoUHlVbmljb2RlX1JFQUQoa2luZCwgcGJ1ZiwgcGluZGV4KSA9PSAnMCcpOwotICAgICAgICAgICAgICAgIGFzc2VydChQeVVuaWNvZGVfUkVBRChraW5kLCBwYnVmLCBwaW5kZXggKyAxKSA9PSBjKTsKLSAgICAgICAgICAgICAgICBpZiAoZmlsbCAhPSAnICcpIHsKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKHdyaXRlci5raW5kLCB3cml0ZXIuZGF0YSwgd3JpdGVyLnBvcywgJzAnKTsKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKHdyaXRlci5raW5kLCB3cml0ZXIuZGF0YSwgd3JpdGVyLnBvcysxLCBjKTsKLSAgICAgICAgICAgICAgICAgICAgd3JpdGVyLnBvcyArPSAyOwotICAgICAgICAgICAgICAgICAgICBwaW5kZXggKz0gMjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgd2lkdGggLT0gMjsKLSAgICAgICAgICAgICAgICBpZiAod2lkdGggPCAwKQotICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IDA7Ci0gICAgICAgICAgICAgICAgbGVuIC09IDI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAod2lkdGggPiBsZW4gJiYgIShmbGFncyAmIEZfTEpVU1QpKSB7Ci0gICAgICAgICAgICAgICAgc3VibGVuID0gd2lkdGggLSBsZW47Ci0gICAgICAgICAgICAgICAgRklMTCh3cml0ZXIua2luZCwgd3JpdGVyLmRhdGEsIGZpbGwsIHdyaXRlci5wb3MsIHN1Ymxlbik7Ci0gICAgICAgICAgICAgICAgd3JpdGVyLnBvcyArPSBzdWJsZW47Ci0gICAgICAgICAgICAgICAgd2lkdGggPSBsZW47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoZmlsbCA9PSAnICcpIHsKLSAgICAgICAgICAgICAgICBpZiAoc2lnbikgewotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUod3JpdGVyLmtpbmQsIHdyaXRlci5kYXRhLCB3cml0ZXIucG9zLCBzaWduY2hhcik7Ci0gICAgICAgICAgICAgICAgICAgIHdyaXRlci5wb3MgKz0gMTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKChmbGFncyAmIEZfQUxUKSAmJiAoYyA9PSAneCcgfHwgYyA9PSAnWCcgfHwgYyA9PSAnbycpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydChQeVVuaWNvZGVfUkVBRChraW5kLCBwYnVmLCBwaW5kZXgpID09ICcwJyk7Ci0gICAgICAgICAgICAgICAgICAgIGFzc2VydChQeVVuaWNvZGVfUkVBRChraW5kLCBwYnVmLCBwaW5kZXgrMSkgPT0gYyk7Ci0gICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURSh3cml0ZXIua2luZCwgd3JpdGVyLmRhdGEsIHdyaXRlci5wb3MsICcwJyk7Ci0gICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURSh3cml0ZXIua2luZCwgd3JpdGVyLmRhdGEsIHdyaXRlci5wb3MrMSwgYyk7Ci0gICAgICAgICAgICAgICAgICAgIHdyaXRlci5wb3MgKz0gMjsKLSAgICAgICAgICAgICAgICAgICAgcGluZGV4ICs9IDI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAobGVuKSB7Ci0gICAgICAgICAgICAgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMod3JpdGVyLmJ1ZmZlciwgd3JpdGVyLnBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wLCBwaW5kZXgsIGxlbik7Ci0gICAgICAgICAgICAgICAgd3JpdGVyLnBvcyArPSBsZW47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAod2lkdGggPiBsZW4pIHsKLSAgICAgICAgICAgICAgICBzdWJsZW4gPSB3aWR0aCAtIGxlbjsKLSAgICAgICAgICAgICAgICBGSUxMKHdyaXRlci5raW5kLCB3cml0ZXIuZGF0YSwgJyAnLCB3cml0ZXIucG9zLCBzdWJsZW4pOwotICAgICAgICAgICAgICAgIHdyaXRlci5wb3MgKz0gc3VibGVuOwotICAgICAgICAgICAgfQotCi1uZXh0YXJnOgotICAgICAgICAgICAgaWYgKGRpY3QgJiYgKGFyZ2lkeCA8IGFyZ2xlbikgJiYgYyAhPSAnJScpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm90IGFsbCBhcmd1bWVudHMgY29udmVydGVkIGR1cmluZyBzdHJpbmcgZm9ybWF0dGluZyIpOwotICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFB5X0NMRUFSKHRlbXApOwotICAgICAgICB9IC8qICclJyAqLwotICAgIH0gLyogdW50aWwgZW5kICovCi0gICAgaWYgKGFyZ2lkeCA8IGFyZ2xlbiAmJiAhZGljdCkgeworICAgIGlmIChjdHguYXJnaWR4IDwgY3R4LmFyZ2xlbiAmJiAhY3R4LmRpY3QpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJub3QgYWxsIGFyZ3VtZW50cyBjb252ZXJ0ZWQgZHVyaW5nIHN0cmluZyBmb3JtYXR0aW5nIik7CiAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICB9CiAKLSAgICBpZiAoYXJnc19vd25lZCkgewotICAgICAgICBQeV9ERUNSRUYoYXJncyk7CisgICAgaWYgKGN0eC5hcmdzX293bmVkKSB7CisgICAgICAgIFB5X0RFQ1JFRihjdHguYXJncyk7CiAgICAgfQotICAgIFB5X0RFQ1JFRih1Zm9ybWF0KTsKLSAgICBQeV9YREVDUkVGKHRlbXApOwotICAgIFB5X1hERUNSRUYoc2Vjb25kKTsKLSAgICByZXR1cm4gX1B5VW5pY29kZVdyaXRlcl9GaW5pc2goJndyaXRlcik7CisgICAgUHlfREVDUkVGKGN0eC5mbXRzdHIpOworICAgIHJldHVybiBfUHlVbmljb2RlV3JpdGVyX0ZpbmlzaCgmY3R4LndyaXRlcik7CiAKICAgb25FcnJvcjoKLSAgICBQeV9ERUNSRUYodWZvcm1hdCk7Ci0gICAgUHlfWERFQ1JFRih0ZW1wKTsKLSAgICBQeV9YREVDUkVGKHNlY29uZCk7Ci0gICAgX1B5VW5pY29kZVdyaXRlcl9EZWFsbG9jKCZ3cml0ZXIpOwotICAgIGlmIChhcmdzX293bmVkKSB7Ci0gICAgICAgIFB5X0RFQ1JFRihhcmdzKTsKKyAgICBQeV9ERUNSRUYoY3R4LmZtdHN0cik7CisgICAgX1B5VW5pY29kZVdyaXRlcl9EZWFsbG9jKCZjdHgud3JpdGVyKTsKKyAgICBpZiAoY3R4LmFyZ3Nfb3duZWQpIHsKKyAgICAgICAgUHlfREVDUkVGKGN0eC5hcmdzKTsKICAgICB9CiAgICAgcmV0dXJuIE5VTEw7CiB9CkBAIC0xNDIzNSwxMiArMTQ2MzAsMTIgQEAKICAgICB0ID0gUHlEaWN0X0dldEl0ZW0oaW50ZXJuZWQsIHMpOwogICAgIFB5X0VORF9BTExPV19SRUNVUlNJT04KIAotICAgICAgICBpZiAodCkgewotICAgICAgICAgICAgUHlfSU5DUkVGKHQpOwotICAgICAgICAgICAgUHlfREVDUkVGKCpwKTsKLSAgICAgICAgICAgICpwID0gdDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgIGlmICh0KSB7CisgICAgICAgIFB5X0lOQ1JFRih0KTsKKyAgICAgICAgUHlfREVDUkVGKCpwKTsKKyAgICAgICAgKnAgPSB0OworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgUHlUaHJlYWRTdGF0ZV9HRVQoKS0+cmVjdXJzaW9uX2NyaXRpY2FsID0gMTsKICAgICBpZiAoUHlEaWN0X1NldEl0ZW0oaW50ZXJuZWQsIHMsIHMpIDwgMCkgewpkaWZmIC0tZ2l0IGEvT2JqZWN0cy91bmljb2RldHlwZV9kYi5oIGIvT2JqZWN0cy91bmljb2RldHlwZV9kYi5oCmluZGV4IDQ2YTkyYmIuLjEwMDliYjMgMTAwNjQ0Ci0tLSBhL09iamVjdHMvdW5pY29kZXR5cGVfZGIuaAorKysgYi9PYmplY3RzL3VuaWNvZGV0eXBlX2RiLmgKQEAgLTE5MTksNyArMTkxOSw3IEBACiAgICAgMjQ2LCAyNDcsIDI0OCwgMjQ5LCAyNTAsIDI1MSwgNSwgNSwgNSwgNSwgNSwgOTUsIDI0NSwgMjYsIDIyLCAyMywgMjQ2LCAKICAgICAyNDcsIDI0OCwgMjQ5LCAyNTAsIDI1MSwgNSwgNSwgNSwgNSwgNSwgMCwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIAogICAgIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAKICAgICAyNSwgMjUsIDI1LCA2LCA2LCA2LCA2LCAyNSwgNiwgNiwgNiwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCiAgICAgMjUsIDI1LCAyNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgMTEzLCA1LCA1LCAKQEAgLTI1OTMsMTAgKzI1OTMsMTAgQEAKICAgICAwLCAwLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIAogICAgIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKICAgICAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgCi0gICAgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMjUyLCAyNTIsIDE0MSwgMTQxLCAxNDEsIAogICAgIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKICAgICAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgCi0gICAgMTQxLCAxNDEsIDE0MSwgMjUyLCAyNTIsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIAorICAgIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKKyAgICAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgCiAgICAgMTQxLCAxNDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAogICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIApAQCAtMjkyNSw2ICsyOTI1LDkgQEAKIGRvdWJsZSBfUHlVbmljb2RlX1RvTnVtZXJpYyhQeV9VQ1M0IGNoKQogewogICAgIHN3aXRjaCAoY2gpIHsKKyAgICBjYXNlIDB4MTI0NTY6CisgICAgY2FzZSAweDEyNDU3OgorICAgICAgICByZXR1cm4gKGRvdWJsZSkgLTEuMDsKICAgICBjYXNlIDB4MEYzMzoKICAgICAgICAgcmV0dXJuIChkb3VibGUpIC0xLjAvMi4wOwogICAgIGNhc2UgMHgwMDMwOgpAQCAtMzQyNyw2ICszNDMwLDggQEAKICAgICAgICAgcmV0dXJuIChkb3VibGUpIDIwMDAwLjA7CiAgICAgY2FzZSAweDMyNTE6CiAgICAgICAgIHJldHVybiAoZG91YmxlKSAyMS4wOworICAgIGNhc2UgMHgxMjQzMjoKKyAgICAgICAgcmV0dXJuIChkb3VibGUpIDIxNjAwMC4wOwogICAgIGNhc2UgMHgzMjUyOgogICAgICAgICByZXR1cm4gKGRvdWJsZSkgMjIuMDsKICAgICBjYXNlIDB4MzI1MzoKQEAgLTM3MjEsNiArMzcyNiw4IEBACiAgICAgICAgIHJldHVybiAoZG91YmxlKSA0Mi4wOwogICAgIGNhc2UgMHgzMkI4OgogICAgICAgICByZXR1cm4gKGRvdWJsZSkgNDMuMDsKKyAgICBjYXNlIDB4MTI0MzM6CisgICAgICAgIHJldHVybiAoZG91YmxlKSA0MzIwMDAuMDsKICAgICBjYXNlIDB4MzJCOToKICAgICAgICAgcmV0dXJuIChkb3VibGUpIDQ0LjA7CiAgICAgY2FzZSAweDMyQkE6CmRpZmYgLS1naXQgYS9PYmplY3RzL3dlYWtyZWZvYmplY3QuYyBiL09iamVjdHMvd2Vha3JlZm9iamVjdC5jCmluZGV4IGI0OWRjZWUuLmMwODNmOGYgMTAwNjQ0Ci0tLSBhL09iamVjdHMvd2Vha3JlZm9iamVjdC5jCisrKyBiL09iamVjdHMvd2Vha3JlZm9iamVjdC5jCkBAIC0zMzgsNiArMzM4LDExIEBACiB9CiAKIAorc3RhdGljIFB5TWVtYmVyRGVmIHdlYWtyZWZfbWVtYmVyc1tdID0geworICAgIHsiX19jYWxsYmFja19fIiwgVF9PQkpFQ1QsIG9mZnNldG9mKFB5V2Vha1JlZmVyZW5jZSwgd3JfY2FsbGJhY2spLCBSRUFET05MWX0sCisgICAge05VTEx9IC8qIFNlbnRpbmVsICovCit9OworCiBQeVR5cGVPYmplY3QKIF9QeVdlYWtyZWZfUmVmVHlwZSA9IHsKICAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoJlB5VHlwZV9UeXBlLCAwKQpAQCAtMzY5LDcgKzM3NCw3IEBACiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaXRlciovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaXRlcm5leHQqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX21ldGhvZHMqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX21lbWJlcnMqLworICAgIHdlYWtyZWZfbWVtYmVycywgICAgICAgICAgICAvKnRwX21lbWJlcnMqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2dldHNldCovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYmFzZSovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZGljdCovCmRpZmYgLS1naXQgYS9QQy9WQzYvX2N0eXBlcy5kc3AgYi9QQy9WQzYvX2N0eXBlcy5kc3AKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjOThlYWMuLjAwMDAwMDAKLS0tIGEvUEMvVkM2L19jdHlwZXMuZHNwCisrKyAvZGV2L251bGwKQEAgLTEsMTMxICswLDAgQEAKLSMgTWljcm9zb2Z0IERldmVsb3BlciBTdHVkaW8gUHJvamVjdCBGaWxlIC0gTmFtZT0iX2N0eXBlcyIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLSMgTWljcm9zb2Z0IERldmVsb3BlciBTdHVkaW8gR2VuZXJhdGVkIEJ1aWxkIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDYuMDANCi0jICoqIERPIE5PVCBFRElUICoqDQotDQotIyBUQVJHVFlQRSAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiIDB4MDEwMg0KLQ0KLUNGRz1fY3R5cGVzIC0gV2luMzIgRGVidWcNCi0hTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsDQotIU1FU1NBR0UgdXNlIHRoZSBFeHBvcnQgTWFrZWZpbGUgY29tbWFuZCBhbmQgcnVuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIl9jdHlwZXMubWFrIi4NCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBZb3UgY2FuIHNwZWNpZnkgYSBjb25maWd1cmF0aW9uIHdoZW4gcnVubmluZyBOTUFLRQ0KLSFNRVNTQUdFIGJ5IGRlZmluaW5nIHRoZSBtYWNybyBDRkcgb24gdGhlIGNvbW1hbmQgbGluZS4gRm9yIGV4YW1wbGU6DQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIl9jdHlwZXMubWFrIiBDRkc9Il9jdHlwZXMgLSBXaW4zMiBEZWJ1ZyINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAiX2N0eXBlcyAtIFdpbjMyIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiKQ0KLSFNRVNTQUdFICJfY3R5cGVzIC0gV2luMzIgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiKQ0KLSFNRVNTQUdFIA0KLQ0KLSMgQmVnaW4gUHJvamVjdA0KLSMgUFJPUCBBbGxvd1BlckNvbmZpZ0RlcGVuZGVuY2llcyAwDQotIyBQUk9QIFNjY19Qcm9qTmFtZSAiX2N0eXBlcyINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi4iDQotQ1BQPWNsLmV4ZQ0KLU1UTD1taWRsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJfY3R5cGVzIC0gV2luMzIgUmVsZWFzZSINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJSZWxlYXNlIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLXJlbGVhc2VcX2N0eXBlcyINCi0jIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMA0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotRjkwPWRmLmV4ZQ0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01UIC9XMyAvR1ggL08yIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIldJTjMyIiAvRCAiTkRFQlVHIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBDUFAgL25vbG9nbyAvTUQgL1czIC9HWCAvWmkgL08yIC9JICIuLlwuLlxJbmNsdWRlIiAvSSAiLi4iIC9JICIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIk5ERUJVRyIgL0QgIldJTjMyIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi0jIEFERCBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvYmFzZToiMHgxZDFhMDAwMCIgL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi9fY3R5cGVzLnB5ZCINCi0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUNCi0NCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiX2N0eXBlcyAtIFdpbjMyIERlYnVnIg0KLQ0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMA0KLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQ0KLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIkRlYnVnIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIkRlYnVnIg0KLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiINCi0jIFBST1AgVXNlX01GQyAwDQotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQ0KLSMgUFJPUCBPdXRwdXRfRGlyICIuIg0KLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJ4ODYtdGVtcC1kZWJ1Z1xfY3R5cGVzIg0KLSMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwDQotIyBQUk9QIFRhcmdldF9EaXIgIiINCi1GOTA9ZGYuZXhlDQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTVRkIC9XMyAvR20gL0dYIC9aaSAvT2QgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiV0lOMzIiIC9EICJfREVCVUciIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvYw0KLSMgQUREIENQUCAvbm9sb2dvIC9NRGQgL1czIC9HbSAvR1ggL1ppIC9PZCAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvSSAiLi5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjIiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJfREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIEJBU0UgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotIyBBREQgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotQlNDMzI9YnNjbWFrZS5leGUNCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28NCi0jIEFERCBCU0MzMiAvbm9sb2dvDQotTElOSzMyPWxpbmsuZXhlDQotIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL2Jhc2U6IjB4MWQxYTAwMDAiIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4vX2N0eXBlc19kLnB5ZCIgL3BkYnR5cGU6c2VwdA0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTkRJRiANCi0NCi0jIEJlZ2luIFRhcmdldA0KLQ0KLSMgTmFtZSAiX2N0eXBlcyAtIFdpbjMyIFJlbGVhc2UiDQotIyBOYW1lICJfY3R5cGVzIC0gV2luMzIgRGVidWciDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9jdHlwZXNcX2N0eXBlcy5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX2N0eXBlc1xjYWxsYmFja3MuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9jdHlwZXNcY2FsbHByb2MuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9jdHlwZXNcY2ZpZWxkLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX2N0eXBlc1xtYWxsb2NfY2xvc3VyZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2Y1xwcmVwX2NpZi5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX2N0eXBlc1xzdGdkaWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXHdpbjMyLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgRW5kIFRhcmdldA0KLSMgRW5kIFByb2plY3QNCmRpZmYgLS1naXQgYS9QQy9WQzYvX2N0eXBlc190ZXN0LmRzcCBiL1BDL1ZDNi9fY3R5cGVzX3Rlc3QuZHNwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMWViMjE3Li4wMDAwMDAwCi0tLSBhL1BDL1ZDNi9fY3R5cGVzX3Rlc3QuZHNwCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJfY3R5cGVzX3Rlc3QiIC0gUGFja2FnZSBPd25lcj08ND4NCi0jIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIEdlbmVyYXRlZCBCdWlsZCBGaWxlLCBGb3JtYXQgVmVyc2lvbiA2LjAwDQotIyAqKiBETyBOT1QgRURJVCAqKg0KLQ0KLSMgVEFSR1RZUEUgIldpbjMyICh4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IiAweDAxMDINCi0NCi1DRkc9X2N0eXBlc190ZXN0IC0gV2luMzIgRGVidWcNCi0hTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsDQotIU1FU1NBR0UgdXNlIHRoZSBFeHBvcnQgTWFrZWZpbGUgY29tbWFuZCBhbmQgcnVuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIl9jdHlwZXNfdGVzdC5tYWsiLg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIFlvdSBjYW4gc3BlY2lmeSBhIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIE5NQUtFDQotIU1FU1NBR0UgYnkgZGVmaW5pbmcgdGhlIG1hY3JvIENGRyBvbiB0aGUgY29tbWFuZCBsaW5lLiBGb3IgZXhhbXBsZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBOTUFLRSAvZiAiX2N0eXBlc190ZXN0Lm1hayIgQ0ZHPSJfY3R5cGVzX3Rlc3QgLSBXaW4zMiBEZWJ1ZyINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAiX2N0eXBlc190ZXN0IC0gV2luMzIgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpDQotIU1FU1NBR0UgIl9jdHlwZXNfdGVzdCAtIFdpbjMyIERlYnVnIiAoYmFzZWQgb24gIldpbjMyICh4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IikNCi0hTUVTU0FHRSANCi0NCi0jIEJlZ2luIFByb2plY3QNCi0jIFBST1AgQWxsb3dQZXJDb25maWdEZXBlbmRlbmNpZXMgMA0KLSMgUFJPUCBTY2NfUHJvak5hbWUgIl9jdHlwZXNfdGVzdCINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi4iDQotQ1BQPWNsLmV4ZQ0KLU1UTD1taWRsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJfY3R5cGVzX3Rlc3QgLSBXaW4zMiBSZWxlYXNlIg0KLQ0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMA0KLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiUmVsZWFzZSINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtcmVsZWFzZVxfY3R5cGVzX3Rlc3QiDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLUY5MD1kZi5leGUNCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NVCAvVzMgL0dYIC9PMiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIk5ERUJVRyIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EIC9XMyAvR1ggL1ppIC9PMiAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJOREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIEJBU0UgUlNDIC9sIDB4NDA5IC9kICJOREVCVUciDQotIyBBREQgUlNDIC9sIDB4NDA5IC9kICJOREVCVUciDQotQlNDMzI9YnNjbWFrZS5leGUNCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28NCi0jIEFERCBCU0MzMiAvbm9sb2dvDQotTElOSzMyPWxpbmsuZXhlDQotIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvbWFjaGluZTpJMzg2DQotIyBBREQgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi9fY3R5cGVzX3Rlc3QucHlkIg0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTFNFSUYgICIkKENGRykiID09ICJfY3R5cGVzX3Rlc3QgLSBXaW4zMiBEZWJ1ZyINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtZGVidWdcX2N0eXBlc190ZXN0Ig0KLSMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwDQotIyBQUk9QIFRhcmdldF9EaXIgIiINCi1GOTA9ZGYuZXhlDQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTVRkIC9XMyAvR20gL0dYIC9aaSAvT2QgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiV0lOMzIiIC9EICJfREVCVUciIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvYw0KLSMgQUREIENQUCAvbm9sb2dvIC9NRGQgL1czIC9HbSAvR1ggL1ppIC9PZCAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJfREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIEJBU0UgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotIyBBREQgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotQlNDMzI9YnNjbWFrZS5leGUNCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28NCi0jIEFERCBCU0MzMiAvbm9sb2dvDQotTElOSzMyPWxpbmsuZXhlDQotIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi9fY3R5cGVzX3Rlc3RfZC5weWQiIC9wZGJ0eXBlOnNlcHQNCi0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUNCi0NCi0hRU5ESUYgDQotDQotIyBCZWdpbiBUYXJnZXQNCi0NCi0jIE5hbWUgIl9jdHlwZXNfdGVzdCAtIFdpbjMyIFJlbGVhc2UiDQotIyBOYW1lICJfY3R5cGVzX3Rlc3QgLSBXaW4zMiBEZWJ1ZyINCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX2N0eXBlc1xfY3R5cGVzX3Rlc3QuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBFbmQgVGFyZ2V0DQotIyBFbmQgUHJvamVjdA0KZGlmZiAtLWdpdCBhL1BDL1ZDNi9fZWxlbWVudHRyZWUuZHNwIGIvUEMvVkM2L19lbGVtZW50dHJlZS5kc3AKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkYzBjZGQuLjAwMDAwMDAKLS0tIGEvUEMvVkM2L19lbGVtZW50dHJlZS5kc3AKKysrIC9kZXYvbnVsbApAQCAtMSwxMTEgKzAsMCBAQAotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJfZWxlbWVudHRyZWUiIC0gUGFja2FnZSBPd25lcj08ND4NCi0jIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIEdlbmVyYXRlZCBCdWlsZCBGaWxlLCBGb3JtYXQgVmVyc2lvbiA2LjAwDQotIyAqKiBETyBOT1QgRURJVCAqKg0KLQ0KLSMgVEFSR1RZUEUgIldpbjMyICh4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IiAweDAxMDINCi0NCi1DRkc9X2VsZW1lbnR0cmVlIC0gV2luMzIgRGVidWcNCi0hTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsDQotIU1FU1NBR0UgdXNlIHRoZSBFeHBvcnQgTWFrZWZpbGUgY29tbWFuZCBhbmQgcnVuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIl9lbGVtZW50dHJlZS5tYWsiLg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIFlvdSBjYW4gc3BlY2lmeSBhIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIE5NQUtFDQotIU1FU1NBR0UgYnkgZGVmaW5pbmcgdGhlIG1hY3JvIENGRyBvbiB0aGUgY29tbWFuZCBsaW5lLiBGb3IgZXhhbXBsZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBOTUFLRSAvZiAiX2VsZW1lbnR0cmVlLm1hayIgQ0ZHPSJfZWxlbWVudHRyZWUgLSBXaW4zMiBEZWJ1ZyINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAiX2VsZW1lbnR0cmVlIC0gV2luMzIgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpDQotIU1FU1NBR0UgIl9lbGVtZW50dHJlZSAtIFdpbjMyIERlYnVnIiAoYmFzZWQgb24gIldpbjMyICh4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IikNCi0hTUVTU0FHRSANCi0NCi0jIEJlZ2luIFByb2plY3QNCi0jIFBST1AgQWxsb3dQZXJDb25maWdEZXBlbmRlbmNpZXMgMA0KLSMgUFJPUCBTY2NfUHJvak5hbWUgIl9lbGVtZW50dHJlZSINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi4iDQotQ1BQPWNsLmV4ZQ0KLU1UTD1taWRsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJfZWxlbWVudHRyZWUgLSBXaW4zMiBSZWxlYXNlIg0KLQ0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMA0KLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiUmVsZWFzZSINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtcmVsZWFzZVxfZWxlbWVudHRyZWUiDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLUY5MD1kZi5leGUNCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NVCAvVzMgL0dYIC9PMiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIk5ERUJVRyIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EIC9XMyAvR1ggL1ppIC9PMiAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvSSAiLi5cLi5cTW9kdWxlc1xleHBhdCIgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiTkRFQlVHIiAvRCAiV0lOMzIiIC9EICJfV0lORE9XUyIgL0QgIlhNTF9OUyIgL0QgIlhNTF9EVEQiIC9EICJCWVRFT1JERVI9MTIzNCIgL0QgIlhNTF9DT05URVhUX0JZVEVTPTEwMjQiIC9EICJVU0VfUFlFWFBBVF9DQVBJIiAvRCAiWE1MX1NUQVRJQyIgL0QgIkhBVkVfTUVNTU9WRSIgL1lYIC9GRCAvYw0KLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiTkRFQlVHIg0KLSMgQUREIFJTQyAvbCAweDQwOSAvZCAiTkRFQlVHIg0KLUJTQzMyPWJzY21ha2UuZXhlDQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQotIyBBREQgQlNDMzIgL25vbG9nbw0KLUxJTkszMj1saW5rLmV4ZQ0KLSMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL21hY2hpbmU6STM4Ng0KLSMgQUREIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9iYXNlOiIweDFkMTAwMDAwIiAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuL19lbGVtZW50dHJlZS5weWQiDQotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lDQotDQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIl9lbGVtZW50dHJlZSAtIFdpbjMyIERlYnVnIg0KLQ0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMA0KLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQ0KLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIkRlYnVnIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIkRlYnVnIg0KLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiINCi0jIFBST1AgVXNlX01GQyAwDQotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQ0KLSMgUFJPUCBPdXRwdXRfRGlyICIuIg0KLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJ4ODYtdGVtcC1kZWJ1Z1xfZWxlbWVudHRyZWUiDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLUY5MD1kZi5leGUNCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NVGQgL1czIC9HbSAvR1ggL1ppIC9PZCAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIl9ERUJVRyIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EZCAvVzMgL0dtIC9HWCAvWmkgL09kIC9JICIuLlwuLlxJbmNsdWRlIiAvSSAiLi4iIC9JICIuLlwuLlxNb2R1bGVzXGV4cGF0IiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJfREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvRCAiWE1MX05TIiAvRCAiWE1MX0RURCIgL0QgIkJZVEVPUkRFUj0xMjM0IiAvRCAiWE1MX0NPTlRFWFRfQllURVM9MTAyNCIgL0QgIlVTRV9QWUVYUEFUX0NBUEkiIC9EICJYTUxfU1RBVElDIiAvRCAiSEFWRV9NRU1NT1ZFIiAvWVggL0ZEIC9jDQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIEJBU0UgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotIyBBREQgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotQlNDMzI9YnNjbWFrZS5leGUNCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28NCi0jIEFERCBCU0MzMiAvbm9sb2dvDQotTElOSzMyPWxpbmsuZXhlDQotIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL2Jhc2U6IjB4MWQxMDAwMDAiIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4vX2VsZW1lbnR0cmVlX2QucHlkIiAvcGRidHlwZTpzZXB0DQotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lDQotDQotIUVORElGIA0KLQ0KLSMgQmVnaW4gVGFyZ2V0DQotDQotIyBOYW1lICJfZWxlbWVudHRyZWUgLSBXaW4zMiBSZWxlYXNlIg0KLSMgTmFtZSAiX2VsZW1lbnR0cmVlIC0gV2luMzIgRGVidWciDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9lbGVtZW50dHJlZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcZXhwYXRceG1scGFyc2UuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXGV4cGF0XHhtbHJvbGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXGV4cGF0XHhtbHRvay5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEVuZCBUYXJnZXQNCi0jIEVuZCBQcm9qZWN0DQpkaWZmIC0tZ2l0IGEvUEMvVkM2L19tc2kuZHNwIGIvUEMvVkM2L19tc2kuZHNwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NmE2MWJjLi4wMDAwMDAwCi0tLSBhL1BDL1ZDNi9fbXNpLmRzcAorKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLSMgTWljcm9zb2Z0IERldmVsb3BlciBTdHVkaW8gUHJvamVjdCBGaWxlIC0gTmFtZT0iX21zaSIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLSMgTWljcm9zb2Z0IERldmVsb3BlciBTdHVkaW8gR2VuZXJhdGVkIEJ1aWxkIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDYuMDANCi0jICoqIERPIE5PVCBFRElUICoqDQotDQotIyBUQVJHVFlQRSAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiIDB4MDEwMg0KLQ0KLUNGRz1fbXNpIC0gV2luMzIgRGVidWcNCi0hTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsDQotIU1FU1NBR0UgdXNlIHRoZSBFeHBvcnQgTWFrZWZpbGUgY29tbWFuZCBhbmQgcnVuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIl9tc2kubWFrIi4NCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBZb3UgY2FuIHNwZWNpZnkgYSBjb25maWd1cmF0aW9uIHdoZW4gcnVubmluZyBOTUFLRQ0KLSFNRVNTQUdFIGJ5IGRlZmluaW5nIHRoZSBtYWNybyBDRkcgb24gdGhlIGNvbW1hbmQgbGluZS4gRm9yIGV4YW1wbGU6DQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIl9tc2kubWFrIiBDRkc9Il9tc2kgLSBXaW4zMiBEZWJ1ZyINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAiX21zaSAtIFdpbjMyIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiKQ0KLSFNRVNTQUdFICJfbXNpIC0gV2luMzIgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiKQ0KLSFNRVNTQUdFIA0KLQ0KLSMgQmVnaW4gUHJvamVjdA0KLSMgUFJPUCBBbGxvd1BlckNvbmZpZ0RlcGVuZGVuY2llcyAwDQotIyBQUk9QIFNjY19Qcm9qTmFtZSAiX21zaSINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi4iDQotQ1BQPWNsLmV4ZQ0KLU1UTD1taWRsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJfbXNpIC0gV2luMzIgUmVsZWFzZSINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJSZWxlYXNlIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLXJlbGVhc2VcX21zaSINCi0jIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMA0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotRjkwPWRmLmV4ZQ0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01UIC9XMyAvR1ggL08yIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIldJTjMyIiAvRCAiTkRFQlVHIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBDUFAgL25vbG9nbyAvTUQgL1czIC9HWCAvWmkgL08yIC9JICIuLlwuLlxJbmNsdWRlIiAvSSAiLi4iIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIk5ERUJVRyIgL0QgIldJTjMyIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi0jIEFERCBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiBmY2kubGliIG1zaS5saWIgcnBjcnQ0LmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgZmNpLmxpYiBtc2kubGliIHJwY3J0NC5saWIgL25vbG9nbyAvYmFzZToiMHgxZDFhMDAwMCIgL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi9fbXNpLnB5ZCINCi0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUNCi0NCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiX21zaSAtIFdpbjMyIERlYnVnIg0KLQ0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMA0KLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQ0KLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIkRlYnVnIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIkRlYnVnIg0KLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiINCi0jIFBST1AgVXNlX01GQyAwDQotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQ0KLSMgUFJPUCBPdXRwdXRfRGlyICIuIg0KLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJ4ODYtdGVtcC1kZWJ1Z1xfbXNpIg0KLSMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwDQotIyBQUk9QIFRhcmdldF9EaXIgIiINCi1GOTA9ZGYuZXhlDQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTVRkIC9XMyAvR20gL0dYIC9aaSAvT2QgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiV0lOMzIiIC9EICJfREVCVUciIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvYw0KLSMgQUREIENQUCAvbm9sb2dvIC9NRGQgL1czIC9HbSAvR1ggL1ppIC9PZCAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJfREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIEJBU0UgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotIyBBREQgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotQlNDMzI9YnNjbWFrZS5leGUNCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28NCi0jIEFERCBCU0MzMiAvbm9sb2dvDQotTElOSzMyPWxpbmsuZXhlDQotIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgZmNpLmxpYiBtc2kubGliIHJwY3J0NC5saWIgL25vbG9nbyAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIGZjaS5saWIgbXNpLmxpYiBycGNydDQubGliIC9ub2xvZ28gL2Jhc2U6IjB4MWQxYTAwMDAiIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4vX21zaV9kLnB5ZCIgL3BkYnR5cGU6c2VwdA0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTkRJRiANCi0NCi0jIEJlZ2luIFRhcmdldA0KLQ0KLSMgTmFtZSAiX21zaSAtIFdpbjMyIFJlbGVhc2UiDQotIyBOYW1lICJfbXNpIC0gV2luMzIgRGVidWciDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQQ1xfbXNpLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgRW5kIFRhcmdldA0KLSMgRW5kIFByb2plY3QNCmRpZmYgLS1naXQgYS9QQy9WQzYvX211bHRpcHJvY2Vzc2luZy5kc3AgYi9QQy9WQzYvX211bHRpcHJvY2Vzc2luZy5kc3AKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxYjg0NzAuLjAwMDAwMDAKLS0tIGEvUEMvVkM2L19tdWx0aXByb2Nlc3NpbmcuZHNwCisrKyAvZGV2L251bGwKQEAgLTEsMTA3ICswLDAgQEAKLSMgTWljcm9zb2Z0IERldmVsb3BlciBTdHVkaW8gUHJvamVjdCBGaWxlIC0gTmFtZT0iX211bHRpcHJvY2Vzc2luZyIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLSMgTWljcm9zb2Z0IERldmVsb3BlciBTdHVkaW8gR2VuZXJhdGVkIEJ1aWxkIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDYuMDANCi0jICoqIERPIE5PVCBFRElUICoqDQotDQotIyBUQVJHVFlQRSAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiIDB4MDEwMg0KLQ0KLUNGRz1fbXVsdGlwcm9jZXNzaW5nIC0gV2luMzIgRGVidWcNCi0hTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsDQotIU1FU1NBR0UgdXNlIHRoZSBFeHBvcnQgTWFrZWZpbGUgY29tbWFuZCBhbmQgcnVuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIl9tdWx0aXByb2Nlc3NpbmcubWFrIi4NCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBZb3UgY2FuIHNwZWNpZnkgYSBjb25maWd1cmF0aW9uIHdoZW4gcnVubmluZyBOTUFLRQ0KLSFNRVNTQUdFIGJ5IGRlZmluaW5nIHRoZSBtYWNybyBDRkcgb24gdGhlIGNvbW1hbmQgbGluZS4gRm9yIGV4YW1wbGU6DQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIl9tdWx0aXByb2Nlc3NpbmcubWFrIiBDRkc9Il9tdWx0aXByb2Nlc3NpbmcgLSBXaW4zMiBEZWJ1ZyINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAiX211bHRpcHJvY2Vzc2luZyAtIFdpbjMyIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiKQ0KLSFNRVNTQUdFICJfbXVsdGlwcm9jZXNzaW5nIC0gV2luMzIgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiKQ0KLSFNRVNTQUdFIA0KLQ0KLSMgQmVnaW4gUHJvamVjdA0KLSMgUFJPUCBBbGxvd1BlckNvbmZpZ0RlcGVuZGVuY2llcyAwDQotIyBQUk9QIFNjY19Qcm9qTmFtZSAiX211bHRpcHJvY2Vzc2luZyINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi4iDQotQ1BQPWNsLmV4ZQ0KLU1UTD1taWRsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJfbXVsdGlwcm9jZXNzaW5nIC0gV2luMzIgUmVsZWFzZSINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJSZWxlYXNlIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLXJlbGVhc2VcX211bHRpcHJvY2Vzc2luZyINCi0jIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMA0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotRjkwPWRmLmV4ZQ0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01UIC9XMyAvR1ggL08yIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIldJTjMyIiAvRCAiTkRFQlVHIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBDUFAgL25vbG9nbyAvTUQgL1czIC9HWCAvWmkgL08yIC9JICIuLlwuLlxJbmNsdWRlIiAvSSAiLi4iIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIk5ERUJVRyIgL0QgIldJTjMyIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi0jIEFERCBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgdXNlcjMyLmxpYiBrZXJuZWwzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgd3MyXzMyLmxpYiAvbm9sb2dvIC9iYXNlOiIweDFlMUQwMDAwIiAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuL19tdWx0aXByb2Nlc3NpbmcucHlkIg0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTFNFSUYgICIkKENGRykiID09ICJfbXVsdGlwcm9jZXNzaW5nIC0gV2luMzIgRGVidWciDQotDQotIyBQUk9QIEJBU0UgVXNlX01GQyAwDQotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiRGVidWciDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiRGVidWciDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLWRlYnVnXF9tdWx0aXByb2Nlc3NpbmciDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLUY5MD1kZi5leGUNCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NVGQgL1czIC9HbSAvR1ggL1ppIC9PZCAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIl9ERUJVRyIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EZCAvVzMgL0dtIC9HWCAvWmkgL09kIC9JICIuLlwuLlxJbmNsdWRlIiAvSSAiLi4iIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIl9ERUJVRyIgL0QgIldJTjMyIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIl9ERUJVRyINCi0jIEFERCBSU0MgL2wgMHg0MDkgL2QgIl9ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQNCi0jIEFERCBMSU5LMzIgdXNlcjMyLmxpYiBrZXJuZWwzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgd3MyXzMyLmxpYiAvbm9sb2dvIC9iYXNlOiIweDFlMWQwMDAwIiAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuL19tdWx0aXByb2Nlc3NpbmdfZC5weWQiIC9wZGJ0eXBlOnNlcHQNCi0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUNCi0NCi0hRU5ESUYgDQotDQotIyBCZWdpbiBUYXJnZXQNCi0NCi0jIE5hbWUgIl9tdWx0aXByb2Nlc3NpbmcgLSBXaW4zMiBSZWxlYXNlIg0KLSMgTmFtZSAiX211bHRpcHJvY2Vzc2luZyAtIFdpbjMyIERlYnVnIg0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfbXVsdGlwcm9jZXNzaW5nXG11bHRpcHJvY2Vzc2luZy5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX211bHRpcHJvY2Vzc2luZ1xzZW1hcGhvcmUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9tdWx0aXByb2Nlc3Npbmdcd2luMzJfZnVuY3Rpb25zLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgRW5kIFRhcmdldA0KLSMgRW5kIFByb2plY3QNCmRpZmYgLS1naXQgYS9QQy9WQzYvX3NvY2tldC5kc3AgYi9QQy9WQzYvX3NvY2tldC5kc3AKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1ZWU4ZjIuLjAwMDAwMDAKLS0tIGEvUEMvVkM2L19zb2NrZXQuZHNwCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJfc29ja2V0IiAtIFBhY2thZ2UgT3duZXI9PDQ+DQotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBHZW5lcmF0ZWQgQnVpbGQgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMA0KLSMgKiogRE8gTk9UIEVESVQgKioNCi0NCi0jIFRBUkdUWVBFICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHgwMTAyDQotDQotQ0ZHPV9zb2NrZXQgLSBXaW4zMiBEZWJ1Zw0KLSFNRVNTQUdFIFRoaXMgaXMgbm90IGEgdmFsaWQgbWFrZWZpbGUuIFRvIGJ1aWxkIHRoaXMgcHJvamVjdCB1c2luZyBOTUFLRSwNCi0hTUVTU0FHRSB1c2UgdGhlIEV4cG9ydCBNYWtlZmlsZSBjb21tYW5kIGFuZCBydW4NCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBOTUFLRSAvZiAiX3NvY2tldC5tYWsiLg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIFlvdSBjYW4gc3BlY2lmeSBhIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIE5NQUtFDQotIU1FU1NBR0UgYnkgZGVmaW5pbmcgdGhlIG1hY3JvIENGRyBvbiB0aGUgY29tbWFuZCBsaW5lLiBGb3IgZXhhbXBsZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBOTUFLRSAvZiAiX3NvY2tldC5tYWsiIENGRz0iX3NvY2tldCAtIFdpbjMyIERlYnVnIg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIFBvc3NpYmxlIGNob2ljZXMgZm9yIGNvbmZpZ3VyYXRpb24gYXJlOg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFICJfc29ja2V0IC0gV2luMzIgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpDQotIU1FU1NBR0UgIl9zb2NrZXQgLSBXaW4zMiBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpDQotIU1FU1NBR0UgDQotDQotIyBCZWdpbiBQcm9qZWN0DQotIyBQUk9QIEFsbG93UGVyQ29uZmlnRGVwZW5kZW5jaWVzIDANCi0jIFBST1AgU2NjX1Byb2pOYW1lICJfc29ja2V0Ig0KLSMgUFJPUCBTY2NfTG9jYWxQYXRoICIuLiINCi1DUFA9Y2wuZXhlDQotTVRMPW1pZGwuZXhlDQotUlNDPXJjLmV4ZQ0KLQ0KLSFJRiAgIiQoQ0ZHKSIgPT0gIl9zb2NrZXQgLSBXaW4zMiBSZWxlYXNlIg0KLQ0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMA0KLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiUmVsZWFzZSINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtcmVsZWFzZVxfc29ja2V0Ig0KLSMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwDQotIyBQUk9QIFRhcmdldF9EaXIgIiINCi1GOTA9ZGYuZXhlDQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTVQgL1czIC9HWCAvTzIgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvYw0KLSMgQUREIENQUCAvbm9sb2dvIC9NRCAvVzMgL0dYIC9aaSAvTzIgL0kgIi4uXC4uXEluY2x1ZGUiIC9JICIuLiIgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiTkRFQlVHIiAvRCAiV0lOMzIiIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvYw0KLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiTkRFQlVHIg0KLSMgQUREIFJTQyAvbCAweDQwOSAvZCAiTkRFQlVHIg0KLUJTQzMyPWJzY21ha2UuZXhlDQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQotIyBBREQgQlNDMzIgL25vbG9nbw0KLUxJTkszMj1saW5rLmV4ZQ0KLSMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL21hY2hpbmU6STM4Ng0KLSMgQUREIExJTkszMiB1c2VyMzIubGliIGtlcm5lbDMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiB3czJfMzIubGliIC9ub2xvZ28gL2Jhc2U6IjB4MWUxRDAwMDAiIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4vX3NvY2tldC5weWQiDQotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lDQotDQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIl9zb2NrZXQgLSBXaW4zMiBEZWJ1ZyINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtZGVidWdcX3NvY2tldCINCi0jIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMA0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotRjkwPWRmLmV4ZQ0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01UZCAvVzMgL0dtIC9HWCAvWmkgL09kIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIldJTjMyIiAvRCAiX0RFQlVHIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBDUFAgL25vbG9nbyAvTURkIC9XMyAvR20gL0dYIC9aaSAvT2QgL0kgIi4uXC4uXEluY2x1ZGUiIC9JICIuLiIgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiX0RFQlVHIiAvRCAiV0lOMzIiIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvYw0KLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiX0RFQlVHIg0KLSMgQUREIFJTQyAvbCAweDQwOSAvZCAiX0RFQlVHIg0KLUJTQzMyPWJzY21ha2UuZXhlDQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQotIyBBREQgQlNDMzIgL25vbG9nbw0KLUxJTkszMj1saW5rLmV4ZQ0KLSMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiB1c2VyMzIubGliIGtlcm5lbDMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiB3czJfMzIubGliIC9ub2xvZ28gL2Jhc2U6IjB4MWUxRDAwMDAiIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4vX3NvY2tldF9kLnB5ZCIgL3BkYnR5cGU6c2VwdA0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTkRJRiANCi0NCi0jIEJlZ2luIFRhcmdldA0KLQ0KLSMgTmFtZSAiX3NvY2tldCAtIFdpbjMyIFJlbGVhc2UiDQotIyBOYW1lICJfc29ja2V0IC0gV2luMzIgRGVidWciDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXHNvY2tldG1vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEVuZCBUYXJnZXQNCi0jIEVuZCBQcm9qZWN0DQpkaWZmIC0tZ2l0IGEvUEMvVkM2L19zcWxpdGUzLmRzcCBiL1BDL1ZDNi9fc3FsaXRlMy5kc3AKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4Njk5MzguLjAwMDAwMDAKLS0tIGEvUEMvVkM2L19zcWxpdGUzLmRzcAorKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0jIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIFByb2plY3QgRmlsZSAtIE5hbWU9Il9zcWxpdGUzIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBHZW5lcmF0ZWQgQnVpbGQgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMA0KLSMgKiogRE8gTk9UIEVESVQgKioNCi0NCi0jIFRBUkdUWVBFICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHgwMTAyDQotDQotQ0ZHPV9zcWxpdGUzIC0gV2luMzIgRGVidWcNCi0hTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsDQotIU1FU1NBR0UgdXNlIHRoZSBFeHBvcnQgTWFrZWZpbGUgY29tbWFuZCBhbmQgcnVuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIl9zcWxpdGUzLm1hayIuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgWW91IGNhbiBzcGVjaWZ5IGEgY29uZmlndXJhdGlvbiB3aGVuIHJ1bm5pbmcgTk1BS0UNCi0hTUVTU0FHRSBieSBkZWZpbmluZyB0aGUgbWFjcm8gQ0ZHIG9uIHRoZSBjb21tYW5kIGxpbmUuIEZvciBleGFtcGxlOg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIE5NQUtFIC9mICJfc3FsaXRlMy5tYWsiIENGRz0iX3NxbGl0ZTMgLSBXaW4zMiBEZWJ1ZyINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAiX3NxbGl0ZTMgLSBXaW4zMiBSZWxlYXNlIiAoYmFzZWQgb24gIldpbjMyICh4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IikNCi0hTUVTU0FHRSAiX3NxbGl0ZTMgLSBXaW4zMiBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpDQotIU1FU1NBR0UgDQotDQotIyBCZWdpbiBQcm9qZWN0DQotIyBQUk9QIEFsbG93UGVyQ29uZmlnRGVwZW5kZW5jaWVzIDANCi0jIFBST1AgU2NjX1Byb2pOYW1lICJfc3FsaXRlMyINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi4iDQotQ1BQPWNsLmV4ZQ0KLU1UTD1taWRsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJfc3FsaXRlMyAtIFdpbjMyIFJlbGVhc2UiDQotDQotIyBQUk9QIEJBU0UgVXNlX01GQyAwDQotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiUmVsZWFzZSINCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJSZWxlYXNlIg0KLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiINCi0jIFBST1AgVXNlX01GQyAwDQotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KLSMgUFJPUCBPdXRwdXRfRGlyICIuIg0KLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJ4ODYtdGVtcC1yZWxlYXNlXF9zcWxpdGUzIg0KLSMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwDQotIyBQUk9QIFRhcmdldF9EaXIgIiINCi1GOTA9ZGYuZXhlDQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTVQgL1czIC9HWCAvTzIgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvYw0KLSMgQUREIENQUCAvbm9sb2dvIC9NRCAvVzMgL0dYIC9aaSAvTzIgL0kgIi4uXC4uXEluY2x1ZGUiIC9JICIuLiIgL0kgIi4uXC4uXC4uXHNxbGl0ZS1zb3VyY2UtMy4zLjQiIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIk5ERUJVRyIgL0QgIldJTjMyIiAvRCAiX1dJTkRPV1MiIC9EIE1PRFVMRV9OQU1FPVwic3FsaXRlM1wiIC9ZWCAvRkQgL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi0jIEFERCBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgdXNlcjMyLmxpYiBrZXJuZWwzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgLi5cLi5cLi5cc3FsaXRlLXNvdXJjZS0zLjMuNFxzcWxpdGUzLmxpYiAvbm9sb2dvIC9iYXNlOiIweDFlMTgwMDAwIiAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuL19zcWxpdGUzLnB5ZCINCi0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUNCi0NCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiX3NxbGl0ZTMgLSBXaW4zMiBEZWJ1ZyINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtZGVidWdcX3NxbGl0ZTMiDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLUY5MD1kZi5leGUNCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NVGQgL1czIC9HbSAvR1ggL1ppIC9PZCAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIl9ERUJVRyIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EZCAvVzMgL0dtIC9HWCAvWmkgL09kIC9JICIuLlwuLlxJbmNsdWRlIiAvSSAiLi4iIC9JICIuLlwuLlwuLlxzcWxpdGUtc291cmNlLTMuMy40IiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJfREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvRCBNT0RVTEVfTkFNRT1cInNxbGl0ZTNcIiAvWVggL0ZEIC9jDQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIEJBU0UgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotIyBBREQgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotQlNDMzI9YnNjbWFrZS5leGUNCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28NCi0jIEFERCBCU0MzMiAvbm9sb2dvDQotTElOSzMyPWxpbmsuZXhlDQotIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIHVzZXIzMi5saWIga2VybmVsMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC4uXC4uXC4uXHNxbGl0ZS1zb3VyY2UtMy4zLjRcc3FsaXRlMy5saWIgL25vbG9nbyAvYmFzZToiMHgxZTE4MDAwMCIgL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi9fc3FsaXRlM19kLnB5ZCIgL3BkYnR5cGU6c2VwdA0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTkRJRiANCi0NCi0jIEJlZ2luIFRhcmdldA0KLQ0KLSMgTmFtZSAiX3NxbGl0ZTMgLSBXaW4zMiBSZWxlYXNlIg0KLSMgTmFtZSAiX3NxbGl0ZTMgLSBXaW4zMiBEZWJ1ZyINCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxjYWNoZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxjb25uZWN0aW9uLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfc3FsaXRlXGN1cnNvci5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxtaWNyb3Byb3RvY29scy5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxtb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9zcWxpdGVccHJlcGFyZV9wcm90b2NvbC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxyb3cuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9zcWxpdGVcc3RhdGVtZW50LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfc3FsaXRlXHV0aWwuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBFbmQgVGFyZ2V0DQotIyBFbmQgUHJvamVjdA0KZGlmZiAtLWdpdCBhL1BDL1ZDNi9fc3NsLmRzcCBiL1BDL1ZDNi9fc3NsLmRzcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZThiYjk5My4uMDAwMDAwMAotLS0gYS9QQy9WQzYvX3NzbC5kc3AKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0jIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIFByb2plY3QgRmlsZSAtIE5hbWU9Il9zc2wiIC0gUGFja2FnZSBPd25lcj08ND4NCi0jIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIEdlbmVyYXRlZCBCdWlsZCBGaWxlLCBGb3JtYXQgVmVyc2lvbiA2LjAwDQotIyAqKiBETyBOT1QgRURJVCAqKg0KLQ0KLSMgVEFSR1RZUEUgIldpbjMyICh4ODYpIEV4dGVybmFsIFRhcmdldCIgMHgwMTA2DQotDQotQ0ZHPV9zc2wgLSBXaW4zMiBEZWJ1Zw0KLSFNRVNTQUdFIFRoaXMgaXMgbm90IGEgdmFsaWQgbWFrZWZpbGUuIFRvIGJ1aWxkIHRoaXMgcHJvamVjdCB1c2luZyBOTUFLRSwNCi0hTUVTU0FHRSB1c2UgdGhlIEV4cG9ydCBNYWtlZmlsZSBjb21tYW5kIGFuZCBydW4NCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBOTUFLRSAvZiAiX3NzbC5tYWsiLg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIFlvdSBjYW4gc3BlY2lmeSBhIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIE5NQUtFDQotIU1FU1NBR0UgYnkgZGVmaW5pbmcgdGhlIG1hY3JvIENGRyBvbiB0aGUgY29tbWFuZCBsaW5lLiBGb3IgZXhhbXBsZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBOTUFLRSAvZiAiX3NzbC5tYWsiIENGRz0iX3NzbCAtIFdpbjMyIERlYnVnIg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIFBvc3NpYmxlIGNob2ljZXMgZm9yIGNvbmZpZ3VyYXRpb24gYXJlOg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFICJfc3NsIC0gV2luMzIgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBFeHRlcm5hbCBUYXJnZXQiKQ0KLSFNRVNTQUdFICJfc3NsIC0gV2luMzIgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKHg4NikgRXh0ZXJuYWwgVGFyZ2V0IikNCi0hTUVTU0FHRSANCi0NCi0jIEJlZ2luIFByb2plY3QNCi0jIFBST1AgQWxsb3dQZXJDb25maWdEZXBlbmRlbmNpZXMgMA0KLSMgUFJPUCBTY2NfUHJvak5hbWUgIiINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiIg0KLQ0KLSFJRiAgIiQoQ0ZHKSIgPT0gIl9zc2wgLSBXaW4zMiBSZWxlYXNlIg0KLQ0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMA0KLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiUmVsZWFzZSINCi0jIFBST1AgQkFTRSBDbWRfTGluZSAiTk1BS0UgL2YgX3NzbC5tYWsiDQotIyBQUk9QIEJBU0UgUmVidWlsZF9PcHQgIi9hIg0KLSMgUFJPUCBCQVNFIFRhcmdldF9GaWxlICJfc3NsLmV4ZSINCi0jIFBST1AgQkFTRSBCc2NfTmFtZSAiX3NzbC5ic2MiDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLXJlbGVhc2VcX3NzbCINCi0jIFBST1AgQ21kX0xpbmUgInB5dGhvbiBidWlsZF9zc2wucHkiDQotIyBQUk9QIFJlYnVpbGRfT3B0ICItYSINCi0jIFBST1AgVGFyZ2V0X0ZpbGUgIl9zc2wucHlkIg0KLSMgUFJPUCBCc2NfTmFtZSAiIg0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotDQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIl9zc2wgLSBXaW4zMiBEZWJ1ZyINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJ4ODYtdGVtcC1kZWJ1Z1xfc3NsIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLWRlYnVnXF9zc2wiDQotIyBQUk9QIEJBU0UgQ21kX0xpbmUgIk5NQUtFIC9mIF9zc2wubWFrIg0KLSMgUFJPUCBCQVNFIFJlYnVpbGRfT3B0ICIvYSINCi0jIFBST1AgQkFTRSBUYXJnZXRfRmlsZSAiX3NzbF9kLnB5ZCINCi0jIFBST1AgQkFTRSBCc2NfTmFtZSAiX3NzbF9kLmJzYyINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtZGVidWdcX3NzbCINCi0jIFBST1AgQ21kX0xpbmUgInB5dGhvbl9kIC11IGJ1aWxkX3NzbC5weSAtZCINCi0jIFBST1AgUmVidWlsZF9PcHQgIi1hIg0KLSMgUFJPUCBUYXJnZXRfRmlsZSAiX3NzbF9kLnB5ZCINCi0jIFBST1AgQnNjX05hbWUgIiINCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLQ0KLSFFTkRJRiANCi0NCi0jIEJlZ2luIFRhcmdldA0KLQ0KLSMgTmFtZSAiX3NzbCAtIFdpbjMyIFJlbGVhc2UiDQotIyBOYW1lICJfc3NsIC0gV2luMzIgRGVidWciDQotDQotIUlGICAiJChDRkcpIiA9PSAiX3NzbCAtIFdpbjMyIFJlbGVhc2UiDQotDQotIUVMU0VJRiAgIiQoQ0ZHKSIgPT0gIl9zc2wgLSBXaW4zMiBEZWJ1ZyINCi0NCi0hRU5ESUYgDQotDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9zc2wuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBFbmQgVGFyZ2V0DQotIyBFbmQgUHJvamVjdA0KZGlmZiAtLWdpdCBhL1BDL1ZDNi9fc3NsLm1hayBiL1BDL1ZDNi9fc3NsLm1hawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc3YTYxNC4uMDAwMDAwMAotLS0gYS9QQy9WQzYvX3NzbC5tYWsKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi0KLSFJRkRFRiBERUJVRwotTU9EVUxFPV9zc2xfZC5weWQKLVRFTVBfRElSPXg4Ni10ZW1wLWRlYnVnL19zc2wKLUNGTEFHUz0vT2QgL1ppIC9NRGQgL0xEZCAvRERFQlVHIC9EX0RFQlVHIC9EV0lOMzIKLUxGTEFHUz0vbm9kZWZhdWx0bGliOiJtc3ZjcnQiCi0hRUxTRQotTU9EVUxFPV9zc2wucHlkCi1URU1QX0RJUj14ODYtdGVtcC1yZWxlYXNlL19zc2wKLUNGTEFHUz0vT3ggL01EIC9MRCAvRFdJTjMyCi1MRkxBR1M9Ci0hRU5ESUYKLQotSU5DTFVERVM9LUkgLi4vLi4vSW5jbHVkZSAtSSAuLiAtSSAkKFNTTF9ESVIpL2luYzMyCi1TU0xfTElCX0RJUj0kKFNTTF9ESVIpL291dDMyCi1MSUJTPWdkaTMyLmxpYiB3c29jazMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvbGlicGF0aDokKFNTTF9MSUJfRElSKSBsaWJlYXkzMi5saWIgc3NsZWF5MzIubGliCi0KLVNPVVJDRT0uLi8uLi9Nb2R1bGVzL19zc2wuYyAkKFNTTF9MSUJfRElSKS9saWJlYXkzMi5saWIgJChTU0xfTElCX0RJUikvc3NsZWF5MzIubGliCi0KLSQoTU9EVUxFKTogJChTT1VSQ0UpIC4uLyouaCAuLi8uLi9JbmNsdWRlLyouaAotICAgIEBpZiBub3QgZXhpc3QgIiQoVEVNUF9ESVIpLy4iIG1rZGlyICIkKFRFTVBfRElSKSIKLSAgICBjbCAvbm9sb2dvICQoU09VUkNFKSAkKENGTEFHUykgL0ZvJChURU1QX0RJUilcJCoub2JqICQoSU5DTFVERVMpIC9saW5rIC9vdXQ6JChNT0RVTEUpICQoTElCUykgJChMRkxBR1MpCmRpZmYgLS1naXQgYS9QQy9WQzYvX3Rlc3RjYXBpLmRzcCBiL1BDL1ZDNi9fdGVzdGNhcGkuZHNwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZWFhMjVhLi4wMDAwMDAwCi0tLSBhL1BDL1ZDNi9fdGVzdGNhcGkuZHNwCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJfdGVzdGNhcGkiIC0gUGFja2FnZSBPd25lcj08ND4NCi0jIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIEdlbmVyYXRlZCBCdWlsZCBGaWxlLCBGb3JtYXQgVmVyc2lvbiA2LjAwDQotIyAqKiBETyBOT1QgRURJVCAqKg0KLQ0KLSMgVEFSR1RZUEUgIldpbjMyICh4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IiAweDAxMDINCi0NCi1DRkc9X3Rlc3RjYXBpIC0gV2luMzIgRGVidWcNCi0hTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsDQotIU1FU1NBR0UgdXNlIHRoZSBFeHBvcnQgTWFrZWZpbGUgY29tbWFuZCBhbmQgcnVuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIl90ZXN0Y2FwaS5tYWsiLg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIFlvdSBjYW4gc3BlY2lmeSBhIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIE5NQUtFDQotIU1FU1NBR0UgYnkgZGVmaW5pbmcgdGhlIG1hY3JvIENGRyBvbiB0aGUgY29tbWFuZCBsaW5lLiBGb3IgZXhhbXBsZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBOTUFLRSAvZiAiX3Rlc3RjYXBpLm1hayIgQ0ZHPSJfdGVzdGNhcGkgLSBXaW4zMiBEZWJ1ZyINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAiX3Rlc3RjYXBpIC0gV2luMzIgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpDQotIU1FU1NBR0UgIl90ZXN0Y2FwaSAtIFdpbjMyIERlYnVnIiAoYmFzZWQgb24gIldpbjMyICh4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IikNCi0hTUVTU0FHRSANCi0NCi0jIEJlZ2luIFByb2plY3QNCi0jIFBST1AgQWxsb3dQZXJDb25maWdEZXBlbmRlbmNpZXMgMA0KLSMgUFJPUCBTY2NfUHJvak5hbWUgIl90ZXN0Y2FwaSINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi4iDQotQ1BQPWNsLmV4ZQ0KLU1UTD1taWRsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJfdGVzdGNhcGkgLSBXaW4zMiBSZWxlYXNlIg0KLQ0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMA0KLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiUmVsZWFzZSINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtcmVsZWFzZVxfdGVzdGNhcGkiDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLUY5MD1kZi5leGUNCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NVCAvVzMgL0dYIC9PMiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIk5ERUJVRyIgL0QgIl9XSU5ET1dTIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTU1BUF9FWFBPUlRTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EIC9XMyAvR1ggL08yIC9JICIuLlwuLlxJbmNsdWRlIiAvSSAiLi4iIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIldJTjMyIiAvRCAiTkRFQlVHIiAvRCAiX1dJTkRPV1MiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJNTUFQX0VYUE9SVFMiIC9ZWCAvRkQgL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvd2luMzINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL3dpbjMyDQotIyBBREQgQkFTRSBSU0MgL2wgMHhjMDkgL2QgIk5ERUJVRyINCi0jIEFERCBSU0MgL2wgMHhjMDkgL2QgIk5ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9kbGwgL21hY2hpbmU6STM4Ng0KLSMgQUREIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9iYXNlOiIweDFlMUYwMDAwIiAvZGxsIC9tYWNoaW5lOkkzODYgL291dDoiLi9fdGVzdGNhcGkucHlkIg0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTFNFSUYgICIkKENGRykiID09ICJfdGVzdGNhcGkgLSBXaW4zMiBEZWJ1ZyINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtZGVidWdcX3Rlc3RjYXBpIg0KLSMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwDQotIyBQUk9QIFRhcmdldF9EaXIgIiINCi1GOTA9ZGYuZXhlDQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTVRkIC9XMyAvR20gL0dYIC9aSSAvT2QgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiV0lOMzIiIC9EICJfREVCVUciIC9EICJfV0lORE9XUyIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIk1NQVBfRVhQT1JUUyIgL1lYIC9GRCAvR1ogL2MNCi0jIEFERCBDUFAgL25vbG9nbyAvTURkIC9XMyAvR20gL0dYIC9aaSAvT2QgL0kgIi4uXC4uXEluY2x1ZGUiIC9JICIuLiIgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiV0lOMzIiIC9EICJfREVCVUciIC9EICJfV0lORE9XUyIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIk1NQVBfRVhQT1JUUyIgL1lYIC9GRCAvR1ogL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvd2luMzINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL3dpbjMyDQotIyBBREQgQkFTRSBSU0MgL2wgMHhjMDkgL2QgIl9ERUJVRyINCi0jIEFERCBSU0MgL2wgMHhjMDkgL2QgIl9ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9iYXNlOiIweDFlMUYwMDAwIiAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4vX3Rlc3RjYXBpX2QucHlkIiAvcGRidHlwZTpzZXB0DQotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lDQotDQotIUVORElGIA0KLQ0KLSMgQmVnaW4gVGFyZ2V0DQotDQotIyBOYW1lICJfdGVzdGNhcGkgLSBXaW4zMiBSZWxlYXNlIg0KLSMgTmFtZSAiX3Rlc3RjYXBpIC0gV2luMzIgRGVidWciDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF90ZXN0Y2FwaW1vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEVuZCBUYXJnZXQNCi0jIEVuZCBQcm9qZWN0DQpkaWZmIC0tZ2l0IGEvUEMvVkM2L190a2ludGVyLmRzcCBiL1BDL1ZDNi9fdGtpbnRlci5kc3AKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkNjlmNTkuLjAwMDAwMDAKLS0tIGEvUEMvVkM2L190a2ludGVyLmRzcAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi0jIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIFByb2plY3QgRmlsZSAtIE5hbWU9Il90a2ludGVyIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBHZW5lcmF0ZWQgQnVpbGQgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMA0KLSMgKiogRE8gTk9UIEVESVQgKioNCi0NCi0jIFRBUkdUWVBFICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHgwMTAyDQotDQotQ0ZHPV90a2ludGVyIC0gV2luMzIgUmVsZWFzZQ0KLSFNRVNTQUdFIFRoaXMgaXMgbm90IGEgdmFsaWQgbWFrZWZpbGUuIFRvIGJ1aWxkIHRoaXMgcHJvamVjdCB1c2luZyBOTUFLRSwNCi0hTUVTU0FHRSB1c2UgdGhlIEV4cG9ydCBNYWtlZmlsZSBjb21tYW5kIGFuZCBydW4NCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBOTUFLRSAvZiAiX3RraW50ZXIubWFrIi4NCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBZb3UgY2FuIHNwZWNpZnkgYSBjb25maWd1cmF0aW9uIHdoZW4gcnVubmluZyBOTUFLRQ0KLSFNRVNTQUdFIGJ5IGRlZmluaW5nIHRoZSBtYWNybyBDRkcgb24gdGhlIGNvbW1hbmQgbGluZS4gRm9yIGV4YW1wbGU6DQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIl90a2ludGVyLm1hayIgQ0ZHPSJfdGtpbnRlciAtIFdpbjMyIFJlbGVhc2UiDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgUG9zc2libGUgY2hvaWNlcyBmb3IgY29uZmlndXJhdGlvbiBhcmU6DQotIU1FU1NBR0UgDQotIU1FU1NBR0UgIl90a2ludGVyIC0gV2luMzIgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpDQotIU1FU1NBR0UgIl90a2ludGVyIC0gV2luMzIgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiKQ0KLSFNRVNTQUdFIA0KLQ0KLSMgQmVnaW4gUHJvamVjdA0KLSMgUFJPUCBBbGxvd1BlckNvbmZpZ0RlcGVuZGVuY2llcyAwDQotIyBQUk9QIFNjY19Qcm9qTmFtZSAiX3RraW50ZXIiDQotIyBQUk9QIFNjY19Mb2NhbFBhdGggIi4uXC4uXC4uIg0KLUNQUD1jbC5leGUNCi1NVEw9bWlkbC5leGUNCi1SU0M9cmMuZXhlDQotDQotIUlGICAiJChDRkcpIiA9PSAiX3RraW50ZXIgLSBXaW4zMiBEZWJ1ZyINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtZGVidWdcX3RraW50ZXIiDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLUY5MD1kZi5leGUNCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NVGQgL1czIC9HbSAvR1ggL1ppIC9PZCAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIl9ERUJVRyIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EZCAvVzMgL0dtIC9HWCAvWmkgL09kIC9JICIuLlwuLlwuLlx0Y2x0a1xpbmNsdWRlIiAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJfREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvRCAiV0lUSF9BUFBJTklUIiAvWVggL0ZEIC9jDQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIEJBU0UgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotIyBBREQgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotQlNDMzI9YnNjbWFrZS5leGUNCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28NCi0jIEFERCBCU0MzMiAvbm9sb2dvDQotTElOSzMyPWxpbmsuZXhlDQotIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIC4uXC4uXC4uXHRjbHRrXGxpYlx0azg1Zy5saWIgLi5cLi5cLi5cdGNsdGtcbGliXHRjbDg1Zy5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgdXNlcjMyLmxpYiBrZXJuZWwzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgL25vbG9nbyAvYmFzZToiMHgxZTE5MDAwMCIgL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi9fdGtpbnRlcl9kLnB5ZCIgL3BkYnR5cGU6c2VwdA0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTFNFSUYgICIkKENGRykiID09ICJfdGtpbnRlciAtIFdpbjMyIFJlbGVhc2UiDQotDQotIyBQUk9QIEJBU0UgVXNlX01GQyAwDQotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiUmVsZWFzZSINCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJSZWxlYXNlIg0KLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiINCi0jIFBST1AgVXNlX01GQyAwDQotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KLSMgUFJPUCBPdXRwdXRfRGlyICIuIg0KLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJ4ODYtdGVtcC1yZWxlYXNlXF90a2ludGVyIg0KLSMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwDQotIyBQUk9QIFRhcmdldF9EaXIgIiINCi1GOTA9ZGYuZXhlDQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTVQgL1czIC9HWCAvTzIgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvYw0KLSMgQUREIENQUCAvbm9sb2dvIC9NRCAvVzMgL0dYIC9aaSAvTzIgL0kgIi4uXC4uXC4uXHRjbHRrXGluY2x1ZGUiIC9JICIuLlwuLlxJbmNsdWRlIiAvSSAiLi4iIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIk5ERUJVRyIgL0QgIldJTjMyIiAvRCAiX1dJTkRPV1MiIC9EICJXSVRIX0FQUElOSVQiIC9ZWCAvRkQgL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi0jIEFERCBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgLi5cLi5cLi5cdGNsdGtcbGliXHRrODUubGliIC4uXC4uXC4uXHRjbHRrXGxpYlx0Y2w4NS5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgdXNlcjMyLmxpYiBrZXJuZWwzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgL25vbG9nbyAvYmFzZToiMHgxZTE5MDAwMCIgL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi9fdGtpbnRlci5weWQiDQotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lDQotDQotIUVORElGIA0KLQ0KLSMgQmVnaW4gVGFyZ2V0DQotDQotIyBOYW1lICJfdGtpbnRlciAtIFdpbjMyIFJlbGVhc2UiDQotIyBOYW1lICJfdGtpbnRlciAtIFdpbjMyIERlYnVnIg0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfdGtpbnRlci5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcdGthcHBpbml0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgRW5kIFRhcmdldA0KLSMgRW5kIFByb2plY3QNCmRpZmYgLS1naXQgYS9QQy9WQzYvYnVpbGRfc3NsLnB5IGIvUEMvVkM2L2J1aWxkX3NzbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTVhZjA4NC4uMDAwMDAwMAotLS0gYS9QQy9WQzYvYnVpbGRfc3NsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjI4ICswLDAgQEAKLSMgU2NyaXB0IGZvciBidWlsZGluZyB0aGUgX3NzbCBtb2R1bGUgZm9yIFdpbmRvd3MuCi0jIFVzZXMgUGVybCB0byBzZXR1cCB0aGUgT3BlblNTTCBlbnZpcm9ubWVudCBjb3JyZWN0bHkKLSMgYW5kIGJ1aWxkIE9wZW5TU0wsIHRoZW4gaW52b2tlcyBhIHNpbXBsZSBubWFrZSBzZXNzaW9uCi0jIGZvciBfc3NsLnB5ZCBpdHNlbGYuCi0KLSMgVEhFT1JFVElDQUxMWSwgeW91IGNhbjoKLSMgKiBVbnBhY2sgdGhlIGxhdGVzdCBTU0wgcmVsZWFzZSBvbmUgbGV2ZWwgYWJvdmUgeW91ciBtYWluIFB5dGhvbiBzb3VyY2UKLSMgICBkaXJlY3RvcnkuICBJdCBpcyBsaWtlbHkgeW91IHdpbGwgYWxyZWFkeSBmaW5kIHRoZSB6bGliIGxpYnJhcnkgYW5kCi0jICAgYW55IG90aGVyIGV4dGVybmFsIHBhY2thZ2VzIHRoZXJlLgotIyAqIEluc3RhbGwgQWN0aXZlUGVybCBhbmQgZW5zdXJlIGl0IGlzIHNvbWV3aGVyZSBvbiB5b3VyIHBhdGguCi0jICogUnVuIHRoaXMgc2NyaXB0IGZyb20gdGhlIFBDL1ZDNiBkaXJlY3RvcnkuCi0jCi0jIGl0IHNob3VsZCBjb25maWd1cmUgYW5kIGJ1aWxkIFNTTCwgdGhlbiBidWlsZCB0aGUgc3NsIFB5dGhvbiBleHRlbnNpb24KLSMgd2l0aG91dCBpbnRlcnZlbnRpb24uCi0KLSMgTW9kaWZpZWQgYnkgQ2hyaXN0aWFuIEhlaW1lcwotIyBOb3cgdGhpcyBzY3JpcHQgc3VwcG9ydHMgcHJlLWdlbmVyYXRlZCBtYWtlZmlsZXMgYW5kIGFzc2VtYmx5IGZpbGVzLgotIyBEZXZlbG9wZXJzIGRvbid0IG5lZWQgYW4gaW5zdGFsbGF0aW9uIG9mIFBlcmwgYW55bW9yZSB0byBidWlsZCBQeXRob24uIEEgc3ZuCi0jIGNoZWNrb3V0IGZyb20gb3VyIHN2biByZXBvc2l0b3J5IGlzIGVub3VnaC4KLQotaW1wb3J0IG9zLCBzeXMsIHJlLCBzaHV0aWwKLQotIyBGaW5kIGFsbCAiZm9vLmV4ZSIgZmlsZXMgb24gdGhlIFBBVEguCi1kZWYgZmluZF9hbGxfb25fcGF0aChmaWxlbmFtZSwgZXh0cmFzID0gTm9uZSk6Ci0gICAgZW50cmllcyA9IG9zLmVudmlyb25bIlBBVEgiXS5zcGxpdChvcy5wYXRoc2VwKQotICAgIHJldCA9IFtdCi0gICAgZm9yIHAgaW4gZW50cmllczoKLSAgICAgICAgZm5hbWUgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHAsIGZpbGVuYW1lKSkKLSAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoZm5hbWUpIGFuZCBmbmFtZSBub3QgaW4gcmV0OgotICAgICAgICAgICAgcmV0LmFwcGVuZChmbmFtZSkKLSAgICBpZiBleHRyYXM6Ci0gICAgICAgIGZvciBwIGluIGV4dHJhczoKLSAgICAgICAgICAgIGZuYW1lID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihwLCBmaWxlbmFtZSkpCi0gICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShmbmFtZSkgYW5kIGZuYW1lIG5vdCBpbiByZXQ6Ci0gICAgICAgICAgICAgICAgcmV0LmFwcGVuZChmbmFtZSkKLSAgICByZXR1cm4gcmV0Ci0KLSMgRmluZCBhIHN1aXRhYmxlIFBlcmwgaW5zdGFsbGF0aW9uIGZvciBPcGVuU1NMLgotIyBjeWd3aW4gcGVybCBkb2VzICpub3QqIHdvcmsuICBBY3RpdmVQZXJsIGRvZXMuCi0jIEJlaW5nIGEgUGVybCBkdW1teSwgdGhlIHNpbXBsZXN0IHdheSBJIGNhbiBjaGVjayBpcyBpZiB0aGUgIldpbjMyIiBwYWNrYWdlCi0jIGlzIGF2YWlsYWJsZS4KLWRlZiBmaW5kX3dvcmtpbmdfcGVybChwZXJscyk6Ci0gICAgZm9yIHBlcmwgaW4gcGVybHM6Ci0gICAgICAgIGZoID0gb3MucG9wZW4oJyIlcyIgLWUgInVzZSBXaW4zMjsiJyAlIHBlcmwpCi0gICAgICAgIGZoLnJlYWQoKQotICAgICAgICByYyA9IGZoLmNsb3NlKCkKLSAgICAgICAgaWYgcmM6Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICByZXR1cm4gcGVybAotICAgIHByaW50KCJDYW4gbm90IGZpbmQgYSBzdWl0YWJsZSBQRVJMOiIpCi0gICAgaWYgcGVybHM6Ci0gICAgICAgIHByaW50KCIgdGhlIGZvbGxvd2luZyBwZXJsIGludGVycHJldGVycyB3ZXJlIGZvdW5kOiIpCi0gICAgICAgIGZvciBwIGluIHBlcmxzOgotICAgICAgICAgICAgcHJpbnQoIiAiLCBwKQotICAgICAgICBwcmludCgiIE5vbmUgb2YgdGhlc2UgdmVyc2lvbnMgYXBwZWFyIHN1aXRhYmxlIGZvciBidWlsZGluZyBPcGVuU1NMIikKLSAgICBlbHNlOgotICAgICAgICBwcmludCgiIE5PIHBlcmwgaW50ZXJwcmV0ZXJzIHdlcmUgZm91bmQgb24gdGhpcyBtYWNoaW5lIGF0IGFsbCEiKQotICAgIHByaW50KCIgUGxlYXNlIGluc3RhbGwgQWN0aXZlUGVybCBhbmQgZW5zdXJlIGl0IGFwcGVhcnMgb24geW91ciBwYXRoIikKLSAgICByZXR1cm4gTm9uZQotCi0jIExvY2F0ZSB0aGUgYmVzdCBTU0wgZGlyZWN0b3J5IGdpdmVuIGEgZmV3IHJvb3RzIHRvIGxvb2sgaW50by4KLWRlZiBmaW5kX2Jlc3Rfc3NsX2Rpcihzb3VyY2VzKToKLSAgICBjYW5kaWRhdGVzID0gW10KLSAgICBmb3IgcyBpbiBzb3VyY2VzOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIG5vdGU6IGRvIG5vdCBhYnNwYXRoIHM7IHRoZSBidWlsZCB3aWxsIGZhaWwgaWYgYW55Ci0gICAgICAgICAgICAjIGhpZ2hlciB1cCBkaXJlY3RvcnkgbmFtZSBoYXMgc3BhY2VzIGluIGl0LgotICAgICAgICAgICAgZm5hbWVzID0gb3MubGlzdGRpcihzKQotICAgICAgICBleGNlcHQgb3MuZXJyb3I6Ci0gICAgICAgICAgICBmbmFtZXMgPSBbXQotICAgICAgICBmb3IgZm5hbWUgaW4gZm5hbWVzOgotICAgICAgICAgICAgZnFuID0gb3MucGF0aC5qb2luKHMsIGZuYW1lKQotICAgICAgICAgICAgaWYgb3MucGF0aC5pc2RpcihmcW4pIGFuZCBmbmFtZS5zdGFydHN3aXRoKCJvcGVuc3NsLSIpOgotICAgICAgICAgICAgICAgIGNhbmRpZGF0ZXMuYXBwZW5kKGZxbikKLSAgICAjIE5vdyB3ZSBoYXZlIGFsbCB0aGUgY2FuZGlkYXRlcywgbG9jYXRlIHRoZSBiZXN0LgotICAgIGJlc3RfcGFydHMgPSBbXQotICAgIGJlc3RfbmFtZSA9IE5vbmUKLSAgICBmb3IgYyBpbiBjYW5kaWRhdGVzOgotICAgICAgICBwYXJ0cyA9IHJlLnNwbGl0KCJbLi1dIiwgb3MucGF0aC5iYXNlbmFtZShjKSlbMTpdCi0gICAgICAgICMgZWcgLSBvcGVuc3NsLTAuOS43LWJldGExIC0gaWdub3JlIGFsbCAiYmV0YSIgb3IgYW55IG90aGVyIHF1YWxpZmllcnMKLSAgICAgICAgaWYgbGVuKHBhcnRzKSA+PSA0OgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgaWYgcGFydHMgPiBiZXN0X3BhcnRzOgotICAgICAgICAgICAgYmVzdF9wYXJ0cyA9IHBhcnRzCi0gICAgICAgICAgICBiZXN0X25hbWUgPSBjCi0gICAgaWYgYmVzdF9uYW1lIGlzIG5vdCBOb25lOgotICAgICAgICBwcmludCgiRm91bmQgYW4gU1NMIGRpcmVjdG9yeSBhdCAnJXMnIiAlIChiZXN0X25hbWUsKSkKLSAgICBlbHNlOgotICAgICAgICBwcmludCgiQ291bGQgbm90IGZpbmQgYW4gU1NMIGRpcmVjdG9yeSBpbiAnJXMnIiAlIChzb3VyY2VzLCkpCi0gICAgc3lzLnN0ZG91dC5mbHVzaCgpCi0gICAgcmV0dXJuIGJlc3RfbmFtZQotCi1kZWYgZml4X21ha2VmaWxlKG1ha2VmaWxlKToKLSAgICAiIiJGaXggc29tZSBzdHVmZiBpbiBhbGwgbWFrZWZpbGVzCi0gICAgIiIiCi0gICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKG1ha2VmaWxlKToKLSAgICAgICAgcmV0dXJuCi0gICAgd2l0aCBvcGVuKG1ha2VmaWxlKSBhcyBmaW46Ci0gICAgICAgIGxpbmVzID0gZmluLnJlYWRsaW5lcygpCi0gICAgd2l0aCBvcGVuKG1ha2VmaWxlLCAndycpIGFzIGZvdXQ6Ci0gICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgotICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCJQRVJMPSIpOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoIkNQPSIpOgotICAgICAgICAgICAgICAgIGxpbmUgPSAiQ1A9Y29weVxuIgotICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCJNS0RJUj0iKToKLSAgICAgICAgICAgICAgICBsaW5lID0gIk1LRElSPW1rZGlyXG4iCi0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoIkNGTEFHPSIpOgotICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN0cmlwKCkKLSAgICAgICAgICAgICAgICBmb3IgYWxnbyBpbiAoIlJDNSIsICJNREMyIiwgIklERUEiKToKLSAgICAgICAgICAgICAgICAgICAgbm9hbGdvID0gIiAtRE9QRU5TU0xfTk9fJXMiICUgYWxnbwotICAgICAgICAgICAgICAgICAgICBpZiBub2FsZ28gbm90IGluIGxpbmU6Ci0gICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZSArIG5vYWxnbwotICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lICsgJ1xuJwotICAgICAgICAgICAgZm91dC53cml0ZShsaW5lKQotCi1kZWYgcnVuX2NvbmZpZ3VyZShjb25maWd1cmUsIGRvX3NjcmlwdCk6Ci0gICAgcHJpbnQoInBlcmwgQ29uZmlndXJlICIrY29uZmlndXJlKQotICAgIG9zLnN5c3RlbSgicGVybCBDb25maWd1cmUgIitjb25maWd1cmUpCi0gICAgcHJpbnQoZG9fc2NyaXB0KQotICAgIG9zLnN5c3RlbShkb19zY3JpcHQpCi0KLWRlZiBjbXAoZjEsIGYyKToKLSAgICBidWZzaXplID0gMTAyNCAqIDgKLSAgICB3aXRoIG9wZW4oZjEsICdyYicpIGFzIGZwMSwgb3BlbihmMiwgJ3JiJykgYXMgZnAyOgotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgYjEgPSBmcDEucmVhZChidWZzaXplKQotICAgICAgICAgICAgYjIgPSBmcDIucmVhZChidWZzaXplKQotICAgICAgICAgICAgaWYgYjEgIT0gYjI6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAgICBpZiBub3QgYjE6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotZGVmIGNvcHkoc3JjLCBkc3QpOgotICAgIGlmIG9zLnBhdGguaXNmaWxlKGRzdCkgYW5kIGNtcChzcmMsIGRzdCk6Ci0gICAgICAgIHJldHVybgotICAgIHNodXRpbC5jb3B5KHNyYywgZHN0KQotCi1kZWYgbWFpbigpOgotICAgIGRlYnVnID0gIi1kIiBpbiBzeXMuYXJndgotICAgIGJ1aWxkX2FsbCA9ICItYSIgaW4gc3lzLmFyZ3YKLSAgICBpZiAxOiAjIFdpbjMyCi0gICAgICAgIGFyY2ggPSAieDg2IgotICAgICAgICBjb25maWd1cmUgPSAiVkMtV0lOMzIiCi0gICAgICAgIGRvX3NjcmlwdCA9ICJtc1xcZG9fbmFzbSIKLSAgICAgICAgbWFrZWZpbGU9Im1zXFxudC5tYWsiCi0gICAgICAgIG0zMiA9IG1ha2VmaWxlCi0gICAgICAgIGRpcnN1ZmZpeCA9ICIzMiIKLSAgICBjb25maWd1cmUgKz0gIiBuby1pZGVhIG5vLXJjNSBuby1tZGMyIgotICAgIG1ha2VfZmxhZ3MgPSAiIgotICAgIGlmIGJ1aWxkX2FsbDoKLSAgICAgICAgbWFrZV9mbGFncyA9ICItYSIKLSAgICAjIHBlcmwgc2hvdWxkIGJlIG9uIHRoZSBwYXRoLCBidXQgd2UgYWxzbyBsb29rIGluICJccGVybCIgYW5kICJjOlxccGVybCIKLSAgICAjIGFzICJ3ZWxsIGtub3duIiBsb2NhdGlvbnMKLSAgICBwZXJscyA9IGZpbmRfYWxsX29uX3BhdGgoInBlcmwuZXhlIiwgWyJcXHBlcmxcXGJpbiIsICJDOlxccGVybFxcYmluIl0pCi0gICAgcGVybCA9IGZpbmRfd29ya2luZ19wZXJsKHBlcmxzKQotICAgIGlmIHBlcmw6Ci0gICAgICAgIHByaW50KCJGb3VuZCBhIHdvcmtpbmcgcGVybCBhdCAnJXMnIiAlIChwZXJsLCkpCi0gICAgZWxzZToKLSAgICAgICAgcHJpbnQoIk5vIFBlcmwgaW5zdGFsbGF0aW9uIHdhcyBmb3VuZC4gRXhpc3RpbmcgTWFrZWZpbGVzIGFyZSB1c2VkLiIpCi0gICAgc3lzLnN0ZG91dC5mbHVzaCgpCi0gICAgIyBMb29rIGZvciBTU0wgMyBsZXZlbHMgdXAgZnJvbSBQQy9WQzYgLSBpZSwgc2FtZSBwbGFjZSB6bGliIGV0YyBhbGwgbGl2ZS4KLSAgICBzc2xfZGlyID0gZmluZF9iZXN0X3NzbF9kaXIoKCIuLlxcLi5cXC4uIiwpKQotICAgIGlmIHNzbF9kaXIgaXMgTm9uZToKLSAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIG9sZF9jZCA9IG9zLmdldGN3ZCgpCi0gICAgdHJ5OgotICAgICAgICBvcy5jaGRpcihzc2xfZGlyKQotICAgICAgICAjIElmIHRoZSBzc2wgbWFrZWZpbGVzIGRvIG5vdCBleGlzdCwgd2UgaW52b2tlIFBlcmwgdG8gZ2VuZXJhdGUgdGhlbS4KLSAgICAgICAgIyBEdWUgdG8gYSBidWcgaW4gdGhpcyBzY3JpcHQsIHRoZSBtYWtlZmlsZSBzb21ldGltZXMgZW5kZWQgdXAgZW1wdHkKLSAgICAgICAgIyBGb3JjZSBhIHJlZ2VuZXJhdGlvbiBpZiBpdCBpcy4KLSAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKG1ha2VmaWxlKSBvciBvcy5wYXRoLmdldHNpemUobWFrZWZpbGUpPT0wOgotICAgICAgICAgICAgaWYgcGVybCBpcyBOb25lOgotICAgICAgICAgICAgICAgIHByaW50KCJQZXJsIGlzIHJlcXVpcmVkIHRvIGJ1aWxkIHRoZSBtYWtlZmlsZXMhIikKLSAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgICAgICAgICBwcmludCgiQ3JlYXRpbmcgdGhlIG1ha2VmaWxlcy4uLiIpCi0gICAgICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKLSAgICAgICAgICAgICMgUHV0IG91ciB3b3JraW5nIFBlcmwgYXQgdGhlIGZyb250IG9mIG91ciBwYXRoCi0gICAgICAgICAgICBvcy5lbnZpcm9uWyJQQVRIIl0gPSBvcy5wYXRoLmRpcm5hbWUocGVybCkgKyBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoc2VwICsgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MuZW52aXJvblsiUEFUSCJdCi0gICAgICAgICAgICBydW5fY29uZmlndXJlKGNvbmZpZ3VyZSwgZG9fc2NyaXB0KQotICAgICAgICAgICAgaWYgZGVidWc6Ci0gICAgICAgICAgICAgICAgcHJpbnQoIk9wZW5TU0wgZGVidWcgYnVpbGRzIGFyZW4ndCBzdXBwb3J0ZWQuIikKLSAgICAgICAgICAgICNpZiBhcmNoPT0ieDg2IiBhbmQgZGVidWc6Ci0gICAgICAgICAgICAjICAgICMgdGhlIGRvX21hc20gc2NyaXB0IGluIG9wZW5zc2wgZG9lc24ndCBnZW5lcmF0ZSBhIGRlYnVnCi0gICAgICAgICAgICAjICAgICMgYnVpbGQgbWFrZWZpbGUgc28gd2UgZ2VuZXJhdGUgaXQgaGVyZToKLSAgICAgICAgICAgICMgICAgb3Muc3lzdGVtKCJwZXJsIHV0aWxcbWsxbWYucGwgZGVidWcgIitjb25maWd1cmUrIiA+IittYWtlZmlsZSkKLQotICAgICAgICAgICAgZml4X21ha2VmaWxlKG1ha2VmaWxlKQotICAgICAgICAgICAgY29weShyImNyeXB0b1xidWlsZGluZi5oIiwgciJjcnlwdG9cYnVpbGRpbmZfJXMuaCIgJSBhcmNoKQotICAgICAgICAgICAgY29weShyImNyeXB0b1xvcGVuc3NsY29uZi5oIiwgciJjcnlwdG9cb3BlbnNzbGNvbmZfJXMuaCIgJSBhcmNoKQotCi0gICAgICAgICMgSWYgdGhlIGFzc2VtYmxlciBmaWxlcyBkb24ndCBleGlzdCBpbiB0bXBYWCwgY29weSB0aGVtIHRoZXJlCi0gICAgICAgIGlmIHBlcmwgaXMgTm9uZSBhbmQgb3MucGF0aC5leGlzdHMoImFzbSIrZGlyc3VmZml4KToKLSAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cygidG1wIitkaXJzdWZmaXgpOgotICAgICAgICAgICAgICAgIG9zLm1rZGlyKCJ0bXAiK2RpcnN1ZmZpeCkKLSAgICAgICAgICAgIGZvciBmIGluIG9zLmxpc3RkaXIoImFzbSIrZGlyc3VmZml4KToKLSAgICAgICAgICAgICAgICBpZiBub3QgZi5lbmRzd2l0aCgiLmFzbSIpOiBjb250aW51ZQotICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKHIidG1wJXNcJXMiICUgKGRpcnN1ZmZpeCwgZikpOiBjb250aW51ZQotICAgICAgICAgICAgICAgIHNodXRpbC5jb3B5KHIiYXNtJXNcJXMiICUgKGRpcnN1ZmZpeCwgZiksICJ0bXAiK2RpcnN1ZmZpeCkKLQotICAgICAgICAjIE5vdyBydW4gbWFrZS4KLSAgICAgICAgY29weShyImNyeXB0b1xidWlsZGluZl8lcy5oIiAlIGFyY2gsIHIiY3J5cHRvXGJ1aWxkaW5mLmgiKQotICAgICAgICBjb3B5KHIiY3J5cHRvXG9wZW5zc2xjb25mXyVzLmgiICUgYXJjaCwgciJjcnlwdG9cb3BlbnNzbGNvbmYuaCIpCi0KLSAgICAgICAgI21ha2VDb21tYW5kID0gIm5tYWtlIC9ub2xvZ28gUEVSTD1cIiVzXCIgLWYgXCIlc1wiIiAlKHBlcmwsIG1ha2VmaWxlKQotICAgICAgICBtYWtlQ29tbWFuZCA9ICJubWFrZSAvbm9sb2dvIC1mIFwiJXNcIiIgJSBtYWtlZmlsZQotICAgICAgICBwcmludCgiRXhlY3V0aW5nIHNzbCBtYWtlZmlsZXM6IiwgbWFrZUNvbW1hbmQpCi0gICAgICAgIHN5cy5zdGRvdXQuZmx1c2goKQotICAgICAgICByYyA9IG9zLnN5c3RlbShtYWtlQ29tbWFuZCkKLSAgICAgICAgaWYgcmM6Ci0gICAgICAgICAgICBwcmludCgiRXhlY3V0aW5nICIrbWFrZWZpbGUrIiBmYWlsZWQiKQotICAgICAgICAgICAgcHJpbnQocmMpCi0gICAgICAgICAgICBzeXMuZXhpdChyYykKLSAgICBmaW5hbGx5OgotICAgICAgICBvcy5jaGRpcihvbGRfY2QpCi0gICAgIyBBbmQgZmluYWxseSwgd2UgY2FuIGJ1aWxkIHRoZSBfc3NsIG1vZHVsZSBpdHNlbGYgZm9yIFB5dGhvbi4KLSAgICBkZWZzID0gIlNTTF9ESVI9JXMiICUgKHNzbF9kaXIsKQotICAgIGlmIGRlYnVnOgotICAgICAgICBkZWZzID0gZGVmcyArICIgIiArICJERUJVRz0xIgotICAgIHJjID0gb3Muc3lzdGVtKCdubWFrZSAvbm9sb2dvIC1mIF9zc2wubWFrICcgKyBkZWZzICsgIiAiICsgbWFrZV9mbGFncykKLSAgICBzeXMuZXhpdChyYykKLQotaWYgX19uYW1lX189PSdfX21haW5fXyc6Ci0gICAgbWFpbigpCmRpZmYgLS1naXQgYS9QQy9WQzYvYnVpbGRfdGtpbnRlci5weSBiL1BDL1ZDNi9idWlsZF90a2ludGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNWNhOTJjLi4wMDAwMDAwCi0tLSBhL1BDL1ZDNi9idWlsZF90a2ludGVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsODEgKzAsMCBAQAotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi1pbXBvcnQgc3VicHJvY2VzcwotCi1UQ0xfTUFKT1IgPSA4Ci1UQ0xfTUlOT1IgPSA1Ci1UQ0xfUEFUQ0ggPSAyCi0KLVRJWF9NQUpPUiA9IDgKLVRJWF9NSU5PUiA9IDQKLVRJWF9QQVRDSCA9IDMKLQotZGVmIGFic3BhdGgobmFtZSk6Ci0gICAgcGFyID0gb3MucGF0aC5wYXJkaXIKLSAgICByZXR1cm4gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihfX2ZpbGVfXywgcGFyLCBwYXIsIHBhciwgcGFyLCBuYW1lKSkKLQotVENMX0RJUiA9IGFic3BhdGgoInRjbCVkLiVkLiVkIiAlIChUQ0xfTUFKT1IsIFRDTF9NSU5PUiwgVENMX1BBVENIKSkKLVRLX0RJUiAgPSBhYnNwYXRoKCJ0ayVkLiVkLiVkIiAgJSAoVENMX01BSk9SLCBUQ0xfTUlOT1IsIFRDTF9QQVRDSCkpCi1USVhfRElSID0gYWJzcGF0aCgidGl4JWQuJWQuJWQiICUgKFRJWF9NQUpPUiwgVElYX01JTk9SLCBUSVhfUEFUQ0gpKQotT1VUX0RJUiA9IGFic3BhdGgoInRjbHRrIikKLQotZGVmIGhhdmVfYXJncygqYSk6Ci0gICAgcmV0dXJuIGFueShzIGluIHN5cy5hcmd2WzE6XSBmb3IgcyBpbiBhKQotCi1kZWYgZW50ZXIoZGlyKToKLSAgICBvcy5jaGRpcihvcy5wYXRoLmpvaW4oZGlyLCAid2luIikpCi0KLWRlZiBtYWluKCk6Ci0gICAgZGVidWcgPSBoYXZlX2FyZ3MoIi1kIiwgIi0tZGVidWciKQotICAgIGNsZWFuID0gaGF2ZV9hcmdzKCJjbGVhbiIpCi0gICAgaW5zdGFsbCA9IGhhdmVfYXJncygiaW5zdGFsbCIpCi0gICAgdGNsID0gaGF2ZV9hcmdzKCJ0Y2wiKQotICAgIHRrID0gaGF2ZV9hcmdzKCJ0ayIpCi0gICAgdGl4ID0gaGF2ZV9hcmdzKCJ0aXgiKQotICAgIGlmIG5vdCh0Y2wpIGFuZCBub3QodGspIGFuZCBub3QodGl4KToKLSAgICAgICAgdGNsID0gdGsgPSB0aXggPSBUcnVlCi0KLSAgICBkZWYgbm1ha2UobWFrZWZpbGUsICphKToKLSAgICAgICAgYXJncyA9IFsibm1ha2UiLCAiL25vbG9nbyIsICIvZiIsIG1ha2VmaWxlLCAiREVCVUc9JWQiICUgZGVidWddCi0gICAgICAgIGFyZ3MuZXh0ZW5kKGEpCi0gICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbChhcmdzKQotCi0gICAgaWYgdGNsOgotICAgICAgICBlbnRlcihUQ0xfRElSKQotICAgICAgICBkZWYgbm1ha2VfdGNsKCphKToKLSAgICAgICAgICAgIG5tYWtlKCJtYWtlZmlsZS52YyIsICphKQotICAgICAgICBpZiBjbGVhbjoKLSAgICAgICAgICAgIG5tYWtlX3RjbCgiY2xlYW4iKQotICAgICAgICBlbGlmIGluc3RhbGw6Ci0gICAgICAgICAgICBubWFrZV90Y2woImluc3RhbGwiLCAiSU5TVEFMTERJUj0iICsgT1VUX0RJUikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG5tYWtlX3RjbCgpCi0KLSAgICBpZiB0azoKLSAgICAgICAgZW50ZXIoVEtfRElSKQotICAgICAgICBkZWYgbm1ha2VfdGsoKmEpOgotICAgICAgICAgICAgbm1ha2UoIm1ha2VmaWxlLnZjIiwgIlRDTERJUj0iICsgVENMX0RJUiwgKmEpCi0gICAgICAgIGlmIGNsZWFuOgotICAgICAgICAgICAgbm1ha2VfdGsoImNsZWFuIikKLSAgICAgICAgZWxpZiBpbnN0YWxsOgotICAgICAgICAgICAgbm1ha2VfdGsoImluc3RhbGwiLCAiSU5TVEFMTERJUj0iICsgT1VUX0RJUikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG5tYWtlX3RrKCkKLQotICAgIGlmIHRpeDoKLSAgICAgICAgZW50ZXIoVElYX0RJUikKLSAgICAgICAgZGVmIG5tYWtlX3RpeCgqYSk6Ci0gICAgICAgICAgICBubWFrZSgicHl0aG9uLm1hayIsCi0gICAgICAgICAgICAgICAgICAiVENMX01BSk9SPSVkIiAlIFRDTF9NQUpPUiwKLSAgICAgICAgICAgICAgICAgICJUQ0xfTUlOT1I9JWQiICUgVENMX01JTk9SLAotICAgICAgICAgICAgICAgICAgIlRDTF9QQVRDSD0lZCIgJSBUQ0xfUEFUQ0gsCi0gICAgICAgICAgICAgICAgICAiTUFDSElORT1JWDg2IiwgKmEpCi0gICAgICAgIGlmIGNsZWFuOgotICAgICAgICAgICAgbm1ha2VfdGl4KCJjbGVhbiIpCi0gICAgICAgIGVsaWYgaW5zdGFsbDoKLSAgICAgICAgICAgIG5tYWtlX3RpeCgiaW5zdGFsbCIsICJJTlNUQUxMX0RJUj0iICsgT1VUX0RJUikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG5tYWtlX3RpeCgpCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgbWFpbigpCmRpZmYgLS1naXQgYS9QQy9WQzYvYnoyLmRzcCBiL1BDL1ZDNi9iejIuZHNwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTJjYmFkLi4wMDAwMDAwCi0tLSBhL1BDL1ZDNi9iejIuZHNwCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJiejIiIC0gUGFja2FnZSBPd25lcj08ND4NCi0jIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIEdlbmVyYXRlZCBCdWlsZCBGaWxlLCBGb3JtYXQgVmVyc2lvbiA2LjAwDQotIyAqKiBETyBOT1QgRURJVCAqKg0KLQ0KLSMgVEFSR1RZUEUgIldpbjMyICh4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IiAweDAxMDINCi0NCi1DRkc9YnoyIC0gV2luMzIgRGVidWcNCi0hTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsDQotIU1FU1NBR0UgdXNlIHRoZSBFeHBvcnQgTWFrZWZpbGUgY29tbWFuZCBhbmQgcnVuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgImJ6Mi5tYWsiLg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIFlvdSBjYW4gc3BlY2lmeSBhIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIE5NQUtFDQotIU1FU1NBR0UgYnkgZGVmaW5pbmcgdGhlIG1hY3JvIENGRyBvbiB0aGUgY29tbWFuZCBsaW5lLiBGb3IgZXhhbXBsZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBOTUFLRSAvZiAiYnoyLm1hayIgQ0ZHPSJiejIgLSBXaW4zMiBEZWJ1ZyINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAiYnoyIC0gV2luMzIgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpDQotIU1FU1NBR0UgImJ6MiAtIFdpbjMyIERlYnVnIiAoYmFzZWQgb24gIldpbjMyICh4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IikNCi0hTUVTU0FHRSANCi0NCi0jIEJlZ2luIFByb2plY3QNCi0jIFBST1AgQWxsb3dQZXJDb25maWdEZXBlbmRlbmNpZXMgMA0KLSMgUFJPUCBTY2NfUHJvak5hbWUgImJ6MiINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi4iDQotQ1BQPWNsLmV4ZQ0KLU1UTD1taWRsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJiejIgLSBXaW4zMiBSZWxlYXNlIg0KLQ0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMA0KLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiUmVsZWFzZSINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtcmVsZWFzZVxiejIiDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLUY5MD1kZi5leGUNCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NVCAvVzMgL0dYIC9PMiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIk5ERUJVRyIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EIC9XMyAvR1ggL1ppIC9PMiAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvSSAiLi5cLi5cLi5cYnppcDItMS4wLjYiIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIk5ERUJVRyIgL0QgIldJTjMyIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi0jIEFERCBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgLi5cLi5cLi5cYnppcDItMS4wLjZcbGliYnoyLmxpYiAvbm9sb2dvIC9iYXNlOiIweDFEMTcwMDAwIiAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvbm9kZWZhdWx0bGliOiJsaWJjIiAvb3V0OiIuL2J6Mi5weWQiDQotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lIC9ub2RlZmF1bHRsaWINCi0NCi0hRUxTRUlGICAiJChDRkcpIiA9PSAiYnoyIC0gV2luMzIgRGVidWciDQotDQotIyBQUk9QIEJBU0UgVXNlX01GQyAwDQotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiRGVidWciDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiRGVidWciDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLWRlYnVnXGJ6MiINCi0jIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMA0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotRjkwPWRmLmV4ZQ0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01UZCAvVzMgL0dtIC9HWCAvWmkgL09kIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIldJTjMyIiAvRCAiX0RFQlVHIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBDUFAgL25vbG9nbyAvTURkIC9XMyAvR20gL0dYIC9aaSAvT2QgL0kgIi4uXC4uXEluY2x1ZGUiIC9JICIuLiIgL0kgIi4uXC4uXC4uXGJ6aXAyLTEuMC42IiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJfREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIEJBU0UgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotIyBBREQgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotQlNDMzI9YnNjbWFrZS5leGUNCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28NCi0jIEFERCBCU0MzMiAvbm9sb2dvDQotTElOSzMyPWxpbmsuZXhlDQotIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIC4uXC4uXC4uXGJ6aXAyLTEuMC42XGxpYmJ6Mi5saWIgL25vbG9nbyAvYmFzZToiMHgxRDE3MDAwMCIgL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL25vZGVmYXVsdGxpYjoibXN2Y3J0IiAvbm9kZWZhdWx0bGliOiJsaWJjIiAvb3V0OiIuL2J6Ml9kLnB5ZCIgL3BkYnR5cGU6c2VwdA0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTkRJRiANCi0NCi0jIEJlZ2luIFRhcmdldA0KLQ0KLSMgTmFtZSAiYnoyIC0gV2luMzIgUmVsZWFzZSINCi0jIE5hbWUgImJ6MiAtIFdpbjMyIERlYnVnIg0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xiejJtb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBFbmQgVGFyZ2V0DQotIyBFbmQgUHJvamVjdA0KZGlmZiAtLWdpdCBhL1BDL1ZDNi9tYWtlX3ZlcnNpb25pbmZvLmRzcCBiL1BDL1ZDNi9tYWtlX3ZlcnNpb25pbmZvLmRzcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTczNWUxMi4uMDAwMDAwMAotLS0gYS9QQy9WQzYvbWFrZV92ZXJzaW9uaW5mby5kc3AKKysrIC9kZXYvbnVsbApAQCAtMSwxMDggKzAsMCBAQAotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJtYWtlX3ZlcnNpb25pbmZvIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBHZW5lcmF0ZWQgQnVpbGQgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMA0KLSMgKiogRE8gTk9UIEVESVQgKioNCi0NCi0jIFRBUkdUWVBFICJXaW4zMiAoeDg2KSBDb25zb2xlIEFwcGxpY2F0aW9uIiAweDAxMDMNCi0NCi1DRkc9bWFrZV92ZXJzaW9uaW5mbyAtIFdpbjMyIFJlbGVhc2UNCi0hTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsDQotIU1FU1NBR0UgdXNlIHRoZSBFeHBvcnQgTWFrZWZpbGUgY29tbWFuZCBhbmQgcnVuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIm1ha2VfdmVyc2lvbmluZm8ubWFrIi4NCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBZb3UgY2FuIHNwZWNpZnkgYSBjb25maWd1cmF0aW9uIHdoZW4gcnVubmluZyBOTUFLRQ0KLSFNRVNTQUdFIGJ5IGRlZmluaW5nIHRoZSBtYWNybyBDRkcgb24gdGhlIGNvbW1hbmQgbGluZS4gRm9yIGV4YW1wbGU6DQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIm1ha2VfdmVyc2lvbmluZm8ubWFrIiBDRkc9Im1ha2VfdmVyc2lvbmluZm8gLSBXaW4zMiBSZWxlYXNlIg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIFBvc3NpYmxlIGNob2ljZXMgZm9yIGNvbmZpZ3VyYXRpb24gYXJlOg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFICJtYWtlX3ZlcnNpb25pbmZvIC0gV2luMzIgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBDb25zb2xlIEFwcGxpY2F0aW9uIikNCi0hTUVTU0FHRSAibWFrZV92ZXJzaW9uaW5mbyAtIFdpbjMyIERlYnVnIiAoYmFzZWQgb24gIldpbjMyICh4ODYpIENvbnNvbGUgQXBwbGljYXRpb24iKQ0KLSFNRVNTQUdFIA0KLQ0KLSMgQmVnaW4gUHJvamVjdA0KLSMgUFJPUCBBbGxvd1BlckNvbmZpZ0RlcGVuZGVuY2llcyAwDQotIyBQUk9QIFNjY19Qcm9qTmFtZSAibWFrZV92ZXJzaW9uaW5mbyINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi4iDQotQ1BQPWNsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJtYWtlX3ZlcnNpb25pbmZvIC0gV2luMzIgUmVsZWFzZSINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJSZWxlYXNlIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLXJlbGVhc2VcbWFrZV92ZXJzaW9uaW5mbyINCi0jIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMA0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvVzMgL0dYIC9PMiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfQ09OU09MRSIgL0QgIl9NQkNTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EIC9XMyAvR1ggL1ppIC9PMiAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfQ09OU09MRSIgL0QgIl9NQkNTIiAvWVggL0ZEIC9jDQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi0jIEFERCBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2DQotIyBBREQgTElOSzMyIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIC9ub2xvZ28gL2Jhc2U6IjB4MWQwMDAwMDAiIC9zdWJzeXN0ZW06Y29uc29sZSAvZGVidWcgL21hY2hpbmU6STM4Ng0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLSMgQmVnaW4gQ3VzdG9tIEJ1aWxkDQotSW5wdXRQYXRoPS5cbWFrZV92ZXJzaW9uaW5mby5leGUNCi1TT1VSQ0U9IiQoSW5wdXRQYXRoKSINCi0NCi0iLi5ccHl0aG9ubnRfcmMuaCIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIgIiQoT1VURElSKSINCi0JLlxtYWtlX3ZlcnNpb25pbmZvLmV4ZSA+Li5ccHl0aG9ubnRfcmMuaA0KLQ0KLSMgRW5kIEN1c3RvbSBCdWlsZA0KLQ0KLSFFTFNFSUYgICIkKENGRykiID09ICJtYWtlX3ZlcnNpb25pbmZvIC0gV2luMzIgRGVidWciDQotDQotIyBQUk9QIEJBU0UgVXNlX01GQyAwDQotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiRGVidWciDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiRGVidWciDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLWRlYnVnXG1ha2VfdmVyc2lvbmluZm8iDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL1czIC9HbSAvR1ggL1ppIC9PZCAvRCAiV0lOMzIiIC9EICJfREVCVUciIC9EICJfQ09OU09MRSIgL0QgIl9NQkNTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EZCAvVzMgL0dtIC9HWCAvWmkgL09kIC9JICIuLlwuLlxJbmNsdWRlIiAvSSAiLi4iIC9EICJXSU4zMiIgL0QgIl9ERUJVRyIgL0QgIl9DT05TT0xFIiAvRCAiX01CQ1MiIC9GUiAvWVggL0ZEIC9jDQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIl9ERUJVRyINCi0jIEFERCBSU0MgL2wgMHg0MDkgL2kgIi4uXC4uXEluY2x1ZGUiIC9kICJfREVCVUciDQotQlNDMzI9YnNjbWFrZS5leGUNCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28NCi0jIEFERCBCU0MzMiAvbm9sb2dvDQotTElOSzMyPWxpbmsuZXhlDQotIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiAvbm9sb2dvIC9iYXNlOiIweDFkMDAwMDAwIiAvc3Vic3lzdGVtOmNvbnNvbGUgL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi9tYWtlX3ZlcnNpb25pbmZvX2QuZXhlIiAvcGRidHlwZTpzZXB0DQotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lDQotIyBCZWdpbiBDdXN0b20gQnVpbGQNCi1JbnB1dFBhdGg9LlxtYWtlX3ZlcnNpb25pbmZvX2QuZXhlDQotU09VUkNFPSIkKElucHV0UGF0aCkiDQotDQotIi4uXHB5dGhvbm50X3JjX2QuaCIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIgIiQoT1VURElSKSINCi0JLlxtYWtlX3ZlcnNpb25pbmZvX2QuZXhlID4uLlxweXRob25udF9yY19kLmgNCi0NCi0jIEVuZCBDdXN0b20gQnVpbGQNCi0NCi0hRU5ESUYgDQotDQotIyBCZWdpbiBUYXJnZXQNCi0NCi0jIE5hbWUgIm1ha2VfdmVyc2lvbmluZm8gLSBXaW4zMiBSZWxlYXNlIg0KLSMgTmFtZSAibWFrZV92ZXJzaW9uaW5mbyAtIFdpbjMyIERlYnVnIg0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cbWFrZV92ZXJzaW9uaW5mby5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEVuZCBUYXJnZXQNCi0jIEVuZCBQcm9qZWN0DQpkaWZmIC0tZ2l0IGEvUEMvVkM2L3BjYnVpbGQuZHN3IGIvUEMvVkM2L3BjYnVpbGQuZHN3CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2IyZWJjLi4wMDAwMDAwCi0tLSBhL1BDL1ZDNi9wY2J1aWxkLmRzdworKysgL2Rldi9udWxsCkBAIC0xLDMwNiArMCwwIEBACi1NaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBXb3Jrc3BhY2UgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMA0KLSMgV0FSTklORzogRE8gTk9UIEVESVQgT1IgREVMRVRFIFRISVMgV09SS1NQQUNFIEZJTEUhDQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJfY3R5cGVzIj0iLlxfY3R5cGVzLmRzcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLQ0KLVBhY2thZ2U9PDU+DQote3t7DQotfX19DQotDQotUGFja2FnZT08ND4NCi17e3sNCi0gICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQotICAgIFByb2plY3RfRGVwX05hbWUgcHl0aG9uY29yZQ0KLSAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJfY3R5cGVzX3Rlc3QiPSIuXF9jdHlwZXNfdGVzdC5kc3AiIC0gUGFja2FnZSBPd25lcj08ND4NCi0NCi1QYWNrYWdlPTw1Pg0KLXt7ew0KLX19fQ0KLQ0KLVBhY2thZ2U9PDQ+DQote3t7DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJfZWxlbWVudHRyZWUiPSIuXF9lbGVtZW50dHJlZS5kc3AiIC0gUGFja2FnZSBPd25lcj08ND4NCi0NCi1QYWNrYWdlPTw1Pg0KLXt7ew0KLX19fQ0KLQ0KLVBhY2thZ2U9PDQ+DQote3t7DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJfbXNpIj0iLlxfbXNpLmRzcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLQ0KLVBhY2thZ2U9PDU+DQote3t7DQotfX19DQotDQotUGFja2FnZT08ND4NCi17e3sNCi0gICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQotICAgIFByb2plY3RfRGVwX05hbWUgcHl0aG9uY29yZQ0KLSAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJfbXVsdGlwcm9jZXNzaW5nIj0iLlxfbXVsdGlwcm9jZXNzaW5nLmRzcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLQ0KLVBhY2thZ2U9PDU+DQote3t7DQotfX19DQotDQotUGFja2FnZT08ND4NCi17e3sNCi0gICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQotICAgIFByb2plY3RfRGVwX05hbWUgcHl0aG9uY29yZQ0KLSAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJfc29ja2V0Ij0iLlxfc29ja2V0LmRzcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLQ0KLVBhY2thZ2U9PDU+DQote3t7DQotfX19DQotDQotUGFja2FnZT08ND4NCi17e3sNCi0gICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQotICAgIFByb2plY3RfRGVwX05hbWUgcHl0aG9uY29yZQ0KLSAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJfc3FsaXRlMyI9Ii5cX3NxbGl0ZTMuZHNwIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQotDQotUGFja2FnZT08NT4NCi17e3sNCi19fX0NCi0NCi1QYWNrYWdlPTw0Pg0KLXt7ew0KLX19fQ0KLQ0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi0NCi1Qcm9qZWN0OiAiX3NzbCI9Ii5cX3NzbC5kc3AiIC0gUGFja2FnZSBPd25lcj08ND4NCi0NCi1QYWNrYWdlPTw1Pg0KLXt7ew0KLX19fQ0KLQ0KLVBhY2thZ2U9PDQ+DQote3t7DQotICAgIEJlZ2luIFByb2plY3QgRGVwZW5kZW5jeQ0KLSAgICBQcm9qZWN0X0RlcF9OYW1lIHB5dGhvbmNvcmUNCi0gICAgRW5kIFByb2plY3QgRGVwZW5kZW5jeQ0KLSAgICBCZWdpbiBQcm9qZWN0IERlcGVuZGVuY3kNCi0gICAgUHJvamVjdF9EZXBfTmFtZSBweXRob24NCi0gICAgRW5kIFByb2plY3QgRGVwZW5kZW5jeQ0KLSAgICBCZWdpbiBQcm9qZWN0IERlcGVuZGVuY3kNCi0gICAgUHJvamVjdF9EZXBfTmFtZSB3OXhwb3Blbg0KLSAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJfdGVzdGNhcGkiPSIuXF90ZXN0Y2FwaS5kc3AiIC0gUGFja2FnZSBPd25lcj08ND4NCi0NCi1QYWNrYWdlPTw1Pg0KLXt7ew0KLX19fQ0KLQ0KLVBhY2thZ2U9PDQ+DQote3t7DQotICAgIEJlZ2luIFByb2plY3QgRGVwZW5kZW5jeQ0KLSAgICBQcm9qZWN0X0RlcF9OYW1lIHB5dGhvbmNvcmUNCi0gICAgRW5kIFByb2plY3QgRGVwZW5kZW5jeQ0KLX19fQ0KLQ0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi0NCi1Qcm9qZWN0OiAiX3RraW50ZXIiPSIuXF90a2ludGVyLmRzcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLQ0KLVBhY2thZ2U9PDU+DQote3t7DQotfX19DQotDQotUGFja2FnZT08ND4NCi17e3sNCi0gICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQotICAgIFByb2plY3RfRGVwX05hbWUgcHl0aG9uY29yZQ0KLSAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJiejIiPSIuXGJ6Mi5kc3AiIC0gUGFja2FnZSBPd25lcj08ND4NCi0NCi1QYWNrYWdlPTw1Pg0KLXt7ew0KLX19fQ0KLQ0KLVBhY2thZ2U9PDQ+DQote3t7DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJtYWtlX3ZlcnNpb25pbmZvIj0iLlxtYWtlX3ZlcnNpb25pbmZvLmRzcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLQ0KLVBhY2thZ2U9PDU+DQote3t7DQotfX19DQotDQotUGFja2FnZT08ND4NCi17e3sNCi19fX0NCi0NCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQotDQotUHJvamVjdDogInB5ZXhwYXQiPSIuXHB5ZXhwYXQuZHNwIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQotDQotUGFja2FnZT08NT4NCi17e3sNCi19fX0NCi0NCi1QYWNrYWdlPTw0Pg0KLXt7ew0KLSAgICBCZWdpbiBQcm9qZWN0IERlcGVuZGVuY3kNCi0gICAgUHJvamVjdF9EZXBfTmFtZSBweXRob25jb3JlDQotICAgIEVuZCBQcm9qZWN0IERlcGVuZGVuY3kNCi19fX0NCi0NCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQotDQotUHJvamVjdDogInB5dGhvbiI9Ii5ccHl0aG9uLmRzcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLQ0KLVBhY2thZ2U9PDU+DQote3t7DQotfX19DQotDQotUGFja2FnZT08ND4NCi17e3sNCi0gICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQotICAgIFByb2plY3RfRGVwX05hbWUgcHl0aG9uY29yZQ0KLSAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJweXRob25jb3JlIj0iLlxweXRob25jb3JlLmRzcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLQ0KLVBhY2thZ2U9PDU+DQote3t7DQotfX19DQotDQotUGFja2FnZT08ND4NCi17e3sNCi0gICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQotICAgIFByb2plY3RfRGVwX05hbWUgbWFrZV92ZXJzaW9uaW5mbw0KLSAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJweXRob253Ij0iLlxweXRob253LmRzcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLQ0KLVBhY2thZ2U9PDU+DQote3t7DQotfX19DQotDQotUGFja2FnZT08ND4NCi17e3sNCi0gICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQotICAgIFByb2plY3RfRGVwX05hbWUgcHl0aG9uY29yZQ0KLSAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJzZWxlY3QiPSIuXHNlbGVjdC5kc3AiIC0gUGFja2FnZSBPd25lcj08ND4NCi0NCi1QYWNrYWdlPTw1Pg0KLXt7ew0KLX19fQ0KLQ0KLVBhY2thZ2U9PDQ+DQote3t7DQotICAgIEJlZ2luIFByb2plY3QgRGVwZW5kZW5jeQ0KLSAgICBQcm9qZWN0X0RlcF9OYW1lIHB5dGhvbmNvcmUNCi0gICAgRW5kIFByb2plY3QgRGVwZW5kZW5jeQ0KLX19fQ0KLQ0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi0NCi1Qcm9qZWN0OiAidW5pY29kZWRhdGEiPSIuXHVuaWNvZGVkYXRhLmRzcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLQ0KLVBhY2thZ2U9PDU+DQote3t7DQotfX19DQotDQotUGFja2FnZT08ND4NCi17e3sNCi0gICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQotICAgIFByb2plY3RfRGVwX05hbWUgcHl0aG9uY29yZQ0KLSAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLVByb2plY3Q6ICJ3OXhwb3BlbiI9Ii5cdzl4cG9wZW4uZHNwIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQotDQotUGFja2FnZT08NT4NCi17e3sNCi19fX0NCi0NCi1QYWNrYWdlPTw0Pg0KLXt7ew0KLX19fQ0KLQ0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi0NCi1Qcm9qZWN0OiAid2luc291bmQiPSIuXHdpbnNvdW5kLmRzcCIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLQ0KLVBhY2thZ2U9PDU+DQote3t7DQotfX19DQotDQotUGFja2FnZT08ND4NCi17e3sNCi0gICAgQmVnaW4gUHJvamVjdCBEZXBlbmRlbmN5DQotICAgIFByb2plY3RfRGVwX05hbWUgcHl0aG9uY29yZQ0KLSAgICBFbmQgUHJvamVjdCBEZXBlbmRlbmN5DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLUdsb2JhbDoNCi0NCi1QYWNrYWdlPTw1Pg0KLXt7ew0KLX19fQ0KLQ0KLVBhY2thZ2U9PDM+DQote3t7DQotfX19DQotDQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLQ0KLQ0KZGlmZiAtLWdpdCBhL1BDL1ZDNi9weWV4cGF0LmRzcCBiL1BDL1ZDNi9weWV4cGF0LmRzcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTYxYzllZi4uMDAwMDAwMAotLS0gYS9QQy9WQzYvcHlleHBhdC5kc3AKKysrIC9kZXYvbnVsbApAQCAtMSwxMTEgKzAsMCBAQAotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJweWV4cGF0IiAtIFBhY2thZ2UgT3duZXI9PDQ+DQotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBHZW5lcmF0ZWQgQnVpbGQgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMA0KLSMgKiogRE8gTk9UIEVESVQgKioNCi0NCi0jIFRBUkdUWVBFICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHgwMTAyDQotDQotQ0ZHPXB5ZXhwYXQgLSBXaW4zMiBSZWxlYXNlDQotIU1FU1NBR0UgVGhpcyBpcyBub3QgYSB2YWxpZCBtYWtlZmlsZS4gVG8gYnVpbGQgdGhpcyBwcm9qZWN0IHVzaW5nIE5NQUtFLA0KLSFNRVNTQUdFIHVzZSB0aGUgRXhwb3J0IE1ha2VmaWxlIGNvbW1hbmQgYW5kIHJ1bg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIE5NQUtFIC9mICJweWV4cGF0Lm1hayIuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgWW91IGNhbiBzcGVjaWZ5IGEgY29uZmlndXJhdGlvbiB3aGVuIHJ1bm5pbmcgTk1BS0UNCi0hTUVTU0FHRSBieSBkZWZpbmluZyB0aGUgbWFjcm8gQ0ZHIG9uIHRoZSBjb21tYW5kIGxpbmUuIEZvciBleGFtcGxlOg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIE5NQUtFIC9mICJweWV4cGF0Lm1hayIgQ0ZHPSJweWV4cGF0IC0gV2luMzIgUmVsZWFzZSINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAicHlleHBhdCAtIFdpbjMyIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiKQ0KLSFNRVNTQUdFICJweWV4cGF0IC0gV2luMzIgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiKQ0KLSFNRVNTQUdFIA0KLQ0KLSMgQmVnaW4gUHJvamVjdA0KLSMgUFJPUCBBbGxvd1BlckNvbmZpZ0RlcGVuZGVuY2llcyAwDQotIyBQUk9QIFNjY19Qcm9qTmFtZSAicHlleHBhdCINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi4iDQotQ1BQPWNsLmV4ZQ0KLU1UTD1taWRsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJweWV4cGF0IC0gV2luMzIgUmVsZWFzZSINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJSZWxlYXNlIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLXJlbGVhc2VccHlleHBhdCINCi0jIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMA0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotRjkwPWRmLmV4ZQ0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01UIC9XMyAvR1ggL08yIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIldJTjMyIiAvRCAiTkRFQlVHIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBDUFAgL25vbG9nbyAvTUQgL1czIC9HWCAvWmkgL08yIC9JICIuLlwuLlxJbmNsdWRlIiAvSSAiLi4iIC9JICIuLlwuLlxNb2R1bGVzXGV4cGF0IiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJOREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvRCAiWE1MX05TIiAvRCAiWE1MX0RURCIgL0QgQllURU9SREVSPTEyMzQgL0QgWE1MX0NPTlRFWFRfQllURVM9MTAyNCAvRCAiWE1MX1NUQVRJQyIgL0QgIkhBVkVfTUVNTU9WRSIgL1lYIC9GRCAvYw0KLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiTkRFQlVHIg0KLSMgQUREIFJTQyAvbCAweDQwOSAvZCAiTkRFQlVHIg0KLUJTQzMyPWJzY21ha2UuZXhlDQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQotIyBBREQgQlNDMzIgL25vbG9nbw0KLUxJTkszMj1saW5rLmV4ZQ0KLSMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL21hY2hpbmU6STM4Ng0KLSMgQUREIExJTkszMiB1c2VyMzIubGliIGtlcm5lbDMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9iYXNlOiIweDFEMTAwMDAwIiAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuL3B5ZXhwYXQucHlkIg0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTFNFSUYgICIkKENGRykiID09ICJweWV4cGF0IC0gV2luMzIgRGVidWciDQotDQotIyBQUk9QIEJBU0UgVXNlX01GQyAwDQotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiRGVidWciDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiRGVidWciDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLWRlYnVnXHB5ZXhwYXQiDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLUY5MD1kZi5leGUNCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NVGQgL1czIC9HbSAvR1ggL1ppIC9PZCAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIl9ERUJVRyIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EZCAvVzMgL0dtIC9HWCAvWmkgL09kIC9JICIuLlwuLlxJbmNsdWRlIiAvSSAiLi4iIC9JICIuLlwuLlxNb2R1bGVzXGV4cGF0IiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJfREVCVUciIC9EICJIQVZFX0VYUEFUX0giIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvRCAiWE1MX05TIiAvRCAiWE1MX0RURCIgL0QgQllURU9SREVSPTEyMzQgL0QgWE1MX0NPTlRFWFRfQllURVM9MTAyNCAvRCAiWE1MX1NUQVRJQyIgL0QgIkhBVkVfTUVNTU9WRSIgL1lYIC9GRCAvYw0KLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiX0RFQlVHIg0KLSMgQUREIFJTQyAvbCAweDQwOSAvZCAiX0RFQlVHIg0KLUJTQzMyPWJzY21ha2UuZXhlDQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQotIyBBREQgQlNDMzIgL25vbG9nbw0KLUxJTkszMj1saW5rLmV4ZQ0KLSMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiB1c2VyMzIubGliIGtlcm5lbDMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9iYXNlOiIweDFEMTAwMDAwIiAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuL3B5ZXhwYXRfZC5weWQiIC9wZGJ0eXBlOnNlcHQNCi0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUNCi0NCi0hRU5ESUYgDQotDQotIyBCZWdpbiBUYXJnZXQNCi0NCi0jIE5hbWUgInB5ZXhwYXQgLSBXaW4zMiBSZWxlYXNlIg0KLSMgTmFtZSAicHlleHBhdCAtIFdpbjMyIERlYnVnIg0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xweWV4cGF0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xleHBhdFx4bWxwYXJzZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcZXhwYXRceG1scm9sZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcZXhwYXRceG1sdG9rLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgRW5kIFRhcmdldA0KLSMgRW5kIFByb2plY3QNCmRpZmYgLS1naXQgYS9QQy9WQzYvcHl0aG9uLmRzcCBiL1BDL1ZDNi9weXRob24uZHNwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYThiNzcyLi4wMDAwMDAwCi0tLSBhL1BDL1ZDNi9weXRob24uZHNwCisrKyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLSMgTWljcm9zb2Z0IERldmVsb3BlciBTdHVkaW8gUHJvamVjdCBGaWxlIC0gTmFtZT0icHl0aG9uIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBHZW5lcmF0ZWQgQnVpbGQgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMA0KLSMgKiogRE8gTk9UIEVESVQgKioNCi0NCi0jIFRBUkdUWVBFICJXaW4zMiAoeDg2KSBDb25zb2xlIEFwcGxpY2F0aW9uIiAweDAxMDMNCi0NCi1DRkc9cHl0aG9uIC0gV2luMzIgUmVsZWFzZQ0KLSFNRVNTQUdFIFRoaXMgaXMgbm90IGEgdmFsaWQgbWFrZWZpbGUuIFRvIGJ1aWxkIHRoaXMgcHJvamVjdCB1c2luZyBOTUFLRSwNCi0hTUVTU0FHRSB1c2UgdGhlIEV4cG9ydCBNYWtlZmlsZSBjb21tYW5kIGFuZCBydW4NCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBOTUFLRSAvZiAicHl0aG9uLm1hayIuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgWW91IGNhbiBzcGVjaWZ5IGEgY29uZmlndXJhdGlvbiB3aGVuIHJ1bm5pbmcgTk1BS0UNCi0hTUVTU0FHRSBieSBkZWZpbmluZyB0aGUgbWFjcm8gQ0ZHIG9uIHRoZSBjb21tYW5kIGxpbmUuIEZvciBleGFtcGxlOg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIE5NQUtFIC9mICJweXRob24ubWFrIiBDRkc9InB5dGhvbiAtIFdpbjMyIFJlbGVhc2UiDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgUG9zc2libGUgY2hvaWNlcyBmb3IgY29uZmlndXJhdGlvbiBhcmU6DQotIU1FU1NBR0UgDQotIU1FU1NBR0UgInB5dGhvbiAtIFdpbjMyIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKHg4NikgQ29uc29sZSBBcHBsaWNhdGlvbiIpDQotIU1FU1NBR0UgInB5dGhvbiAtIFdpbjMyIERlYnVnIiAoYmFzZWQgb24gIldpbjMyICh4ODYpIENvbnNvbGUgQXBwbGljYXRpb24iKQ0KLSFNRVNTQUdFIA0KLQ0KLSMgQmVnaW4gUHJvamVjdA0KLSMgUFJPUCBBbGxvd1BlckNvbmZpZ0RlcGVuZGVuY2llcyAwDQotIyBQUk9QIFNjY19Qcm9qTmFtZSAicHl0aG9uIg0KLSMgUFJPUCBTY2NfTG9jYWxQYXRoICIuLiINCi1DUFA9Y2wuZXhlDQotUlNDPXJjLmV4ZQ0KLQ0KLSFJRiAgIiQoQ0ZHKSIgPT0gInB5dGhvbiAtIFdpbjMyIFJlbGVhc2UiDQotDQotIyBQUk9QIEJBU0UgVXNlX01GQyAwDQotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiUmVsZWFzZSINCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJSZWxlYXNlIg0KLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiINCi0jIFBST1AgVXNlX01GQyAwDQotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KLSMgUFJPUCBPdXRwdXRfRGlyICIuIg0KLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJ4ODYtdGVtcC1yZWxlYXNlXHB5dGhvbiINCi0jIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMA0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvVzMgL0dYIC9PMiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfQ09OU09MRSIgL0QgIl9NQkNTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EIC9XMyAvR1ggL1ppIC9PMiAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfQ09OU09MRSIgL0QgIl9NQkNTIiAvWVggL0ZEIC9jDQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi0jIEFERCBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06Y29uc29sZSAvbWFjaGluZTpJMzg2DQotIyBBREQgTElOSzMyIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIC9ub2xvZ28gL2Jhc2U6IjB4MWQwMDAwMDAiIC9zdWJzeXN0ZW06Y29uc29sZSAvZGVidWcgL21hY2hpbmU6STM4Ng0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTFNFSUYgICIkKENGRykiID09ICJweXRob24gLSBXaW4zMiBEZWJ1ZyINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtZGVidWdccHl0aG9uIg0KLSMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwDQotIyBQUk9QIFRhcmdldF9EaXIgIiINCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9XMyAvR20gL0dYIC9aaSAvT2QgL0QgIldJTjMyIiAvRCAiX0RFQlVHIiAvRCAiX0NPTlNPTEUiIC9EICJfTUJDUyIgL1lYIC9GRCAvYw0KLSMgQUREIENQUCAvbm9sb2dvIC9NRGQgL1czIC9HbSAvR1ggL1ppIC9PZCAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvRCAiV0lOMzIiIC9EICJfREVCVUciIC9EICJfQ09OU09MRSIgL0QgIl9NQkNTIiAvRlIgL1lYIC9GRCAvYw0KLSMgQUREIEJBU0UgUlNDIC9sIDB4NDA5IC9kICJfREVCVUciDQotIyBBREQgUlNDIC9sIDB4NDA5IC9pICIuLi4uXFxJbmNsdWRlIiAvZCAiX0RFQlVHIg0KLUJTQzMyPWJzY21ha2UuZXhlDQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQotIyBBREQgQlNDMzIgL25vbG9nbw0KLUxJTkszMj1saW5rLmV4ZQ0KLSMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQNCi0jIEFERCBMSU5LMzIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgL25vbG9nbyAvYmFzZToiMHgxZDAwMDAwMCIgL3N0YWNrOjB4MjAwMDAwIC9zdWJzeXN0ZW06Y29uc29sZSAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuL3B5dGhvbl9kLmV4ZSIgL3BkYnR5cGU6c2VwdA0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTkRJRiANCi0NCi0jIEJlZ2luIFRhcmdldA0KLQ0KLSMgTmFtZSAicHl0aG9uIC0gV2luMzIgUmVsZWFzZSINCi0jIE5hbWUgInB5dGhvbiAtIFdpbjMyIERlYnVnIg0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5ccHljb24uaWNvDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNccHl0aG9uLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5ccHl0aG9uX2V4ZS5yYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBFbmQgVGFyZ2V0DQotIyBFbmQgUHJvamVjdA0KZGlmZiAtLWdpdCBhL1BDL1ZDNi9weXRob25jb3JlLmRzcCBiL1BDL1ZDNi9weXRob25jb3JlLmRzcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNlOThkMS4uMDAwMDAwMAotLS0gYS9QQy9WQzYvcHl0aG9uY29yZS5kc3AKKysrIC9kZXYvbnVsbApAQCAtMSw3ODAgKzAsMCBAQAotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJweXRob25jb3JlIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBHZW5lcmF0ZWQgQnVpbGQgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMA0KLSMgKiogRE8gTk9UIEVESVQgKioNCi0NCi0jIFRBUkdUWVBFICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHgwMTAyDQotDQotQ0ZHPXB5dGhvbmNvcmUgLSBXaW4zMiBSZWxlYXNlDQotIU1FU1NBR0UgVGhpcyBpcyBub3QgYSB2YWxpZCBtYWtlZmlsZS4gVG8gYnVpbGQgdGhpcyBwcm9qZWN0IHVzaW5nIE5NQUtFLA0KLSFNRVNTQUdFIHVzZSB0aGUgRXhwb3J0IE1ha2VmaWxlIGNvbW1hbmQgYW5kIHJ1bg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIE5NQUtFIC9mICJweXRob25jb3JlLm1hayIuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgWW91IGNhbiBzcGVjaWZ5IGEgY29uZmlndXJhdGlvbiB3aGVuIHJ1bm5pbmcgTk1BS0UNCi0hTUVTU0FHRSBieSBkZWZpbmluZyB0aGUgbWFjcm8gQ0ZHIG9uIHRoZSBjb21tYW5kIGxpbmUuIEZvciBleGFtcGxlOg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIE5NQUtFIC9mICJweXRob25jb3JlLm1hayIgQ0ZHPSJweXRob25jb3JlIC0gV2luMzIgUmVsZWFzZSINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAicHl0aG9uY29yZSAtIFdpbjMyIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiKQ0KLSFNRVNTQUdFICJweXRob25jb3JlIC0gV2luMzIgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiKQ0KLSFNRVNTQUdFIA0KLQ0KLSMgQmVnaW4gUHJvamVjdA0KLSMgUFJPUCBBbGxvd1BlckNvbmZpZ0RlcGVuZGVuY2llcyAwDQotIyBQUk9QIFNjY19Qcm9qTmFtZSAicHl0aG9uY29yZSINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi4iDQotQ1BQPWNsLmV4ZQ0KLU1UTD1taWRsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJweXRob25jb3JlIC0gV2luMzIgUmVsZWFzZSINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJSZWxlYXNlIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLXJlbGVhc2VccHl0aG9uY29yZSINCi0jIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMA0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotRjkwPWRmLmV4ZQ0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01UIC9XMyAvR1ggL08yIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIldJTjMyIiAvRCAiTkRFQlVHIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBDUFAgL25vbG9nbyAvTUQgL1czIC9HWCAvWmkgL08yIC9JICIuLlwuLlxJbmNsdWRlIiAvSSAiLi4iIC9JICIuLlwuLlxtb2R1bGVzXHpsaWIiIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIk5ERUJVRyIgL0QgIldJTjMyIiAvRCAiX1dJTkRPV1MiIC9EICJVU0VfRExfRVhQT1JUIiAvWVggL0ZEIC9abTIwMCAvYw0KLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vIC93aW4zMiAiTlVMIg0KLSMgQUREIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAvd2luMzIgIk5VTCINCi0jIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiTkRFQlVHIg0KLSMgQUREIFJTQyAvbCAweDQwOSAvaSAiLi5cLi5cSW5jbHVkZSIgL2QgIk5ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgbGFyZ2VpbnQubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiAvbm9sb2dvIC9iYXNlOiIweDFlMDAwMDAwIiAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvbm9kZWZhdWx0bGliOiJsaWJjIiAvb3V0OiIuL3B5dGhvbjMzLmRsbCINCi0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUNCi0NCi0hRUxTRUlGICAiJChDRkcpIiA9PSAicHl0aG9uY29yZSAtIFdpbjMyIERlYnVnIg0KLQ0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMA0KLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQ0KLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIkRlYnVnIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIkRlYnVnIg0KLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiINCi0jIFBST1AgVXNlX01GQyAwDQotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQ0KLSMgUFJPUCBPdXRwdXRfRGlyICIuIg0KLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJ4ODYtdGVtcC1kZWJ1Z1xweXRob25jb3JlIg0KLSMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwDQotIyBQUk9QIFRhcmdldF9EaXIgIiINCi1GOTA9ZGYuZXhlDQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTVRkIC9XMyAvR20gL0dYIC9aaSAvT2QgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiV0lOMzIiIC9EICJfREVCVUciIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvYw0KLSMgQUREIENQUCAvbm9sb2dvIC9NRGQgL1czIC9HbSAvR1ggL1ppIC9PZCAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvSSAiLi5cLi5cbW9kdWxlc1x6bGliIiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJfREVCVUciIC9EICJVU0VfRExfRVhQT1JUIiAvRCAiV0lOMzIiIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvWm0yMDAgL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAvd2luMzIgIk5VTCINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL28gL3dpbjMyICJOVUwiDQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIl9ERUJVRyINCi0jIEFERCBSU0MgL2wgMHg0MDkgL2kgIi4uXC4uXEluY2x1ZGUiIC9kICJfREVCVUciDQotQlNDMzI9YnNjbWFrZS5leGUNCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28NCi0jIEFERCBCU0MzMiAvbm9sb2dvDQotTElOSzMyPWxpbmsuZXhlDQotIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIGxhcmdlaW50LmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgL25vbG9nbyAvYmFzZToiMHgxZTAwMDAwMCIgL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL25vZGVmYXVsdGxpYjoibGliYyIgL291dDoiLi9weXRob24zM19kLmRsbCIgL3BkYnR5cGU6c2VwdA0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTkRJRiANCi0NCi0jIEJlZ2luIFRhcmdldA0KLQ0KLSMgTmFtZSAicHl0aG9uY29yZSAtIFdpbjMyIFJlbGVhc2UiDQotIyBOYW1lICJweXRob25jb3JlIC0gV2luMzIgRGVidWciDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9iaXNlY3Rtb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX2NuLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xjamtjb2RlY3NcX2NvZGVjc19oay5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3NfaXNvMjAyMi5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3NfanAuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX2tyLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xjamtjb2RlY3NcX2NvZGVjc190dy5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX2NvZGVjc21vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX2NvbGxlY3Rpb25zbW9kdWxlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfY3N2LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfZGF0ZXRpbWVtb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9mdW5jdG9vbHNtb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9oZWFwcW1vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX2lvXF9pb21vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX2pzb24uYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9sb2NhbGVtb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9sc3Byb2YuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9tYXRoLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfcGlja2xlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfcmFuZG9tbW9kdWxlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfc3JlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfc3RydWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUENcX3N1YnByb2Nlc3MuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF90aHJlYWRtb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF90aW1lLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUHl0aG9uXF93YXJuaW5ncy5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX3dlYWtyZWYuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXGFic3RyYWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cT2JqZWN0c1xhY2N1LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUGFyc2VyXGFjY2VsZXIuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXHpsaWJcYWRsZXIzMi5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcYXJyYXltb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25cYXNkbC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFB5dGhvblxhc3QuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXGF0ZXhpdG1vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcYXVkaW9vcC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcYmluYXNjaWkuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQYXJzZXJcYml0c2V0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUHl0aG9uXGJsdGlubW9kdWxlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cT2JqZWN0c1xib29sb2JqZWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfaW9cYnVmZmVyZWRpby5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE9iamVjdHNcYnl0ZWFycmF5b2JqZWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cT2JqZWN0c1xieXRlc19tZXRob2RzLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfaW9cYnl0ZXNpby5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE9iamVjdHNcYnl0ZXNvYmplY3QuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXGNhcHN1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXGNlbGxvYmplY3QuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25cY2V2YWwuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXGNsYXNzb2JqZWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xjbWF0aG1vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFB5dGhvblxjb2RlY3MuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXGNvZGVvYmplY3QuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25cY29tcGlsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE9iamVjdHNcY29tcGxleG9iamVjdC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcemxpYlxjb21wcmVzcy5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXGNvbmZpZy5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcemxpYlxjcmMzMi5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFB5dGhvblxkeW5hbWljX2Fubm90YXRpb25zLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1x6bGliXGRlZmxhdGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXGRlc2Nyb2JqZWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cT2JqZWN0c1xkaWN0b2JqZWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cZGxfbnQuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25cZHRvYS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFB5dGhvblxkeW5sb2FkX3dpbi5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE9iamVjdHNcZW51bW9iamVjdC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcZXJybm9tb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25cZXJyb3JzLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cT2JqZWN0c1xleGNlcHRpb25zLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfaW9cZmlsZWlvLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cT2JqZWN0c1xmaWxlb2JqZWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUHl0aG9uXGZpbGV1dGlscy5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFBhcnNlclxmaXJzdHNldHMuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXGZsb2F0b2JqZWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUHl0aG9uXGZvcm1hdHRlcl91bmljb2RlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cT2JqZWN0c1xmcmFtZW9iamVjdC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFB5dGhvblxmcm96ZW4uYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXGZ1bmNvYmplY3QuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25cZnV0dXJlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xnY21vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE9iamVjdHNcZ2Vub2JqZWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUHl0aG9uXGdldGFyZ3MuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXGdldGJ1aWxkaW5mby5jDQotIyBBREQgQ1BQIC9EIEJVSUxEPTQ2DQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFB5dGhvblxnZXRjb21waWxlci5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFB5dGhvblxnZXRjb3B5cmlnaHQuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25cZ2V0b3B0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cZ2V0cGF0aHAuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25cZ2V0cGxhdGZvcm0uYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25cZ2V0dmVyc2lvbi5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFB5dGhvblxncmFtaW5pdC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFBhcnNlclxncmFtbWFyLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUGFyc2VyXGdyYW1tYXIxLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1x6bGliXGd6aW8uYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25caW1wb3J0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUHl0aG9uXGltcG9ydGRsLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1x6bGliXGluZmJhY2suYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXHpsaWJcaW5mZmFzdC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcemxpYlxpbmZsYXRlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1x6bGliXGluZnRyZWVzLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfaW9caW9iYXNlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cT2JqZWN0c1xpdGVyb2JqZWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xpdGVydG9vbHNtb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQYXJzZXJcbGlzdG5vZGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXGxpc3RvYmplY3QuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXGxvbmdvYmplY3QuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXG1haW4uYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25cbWFyc2hhbC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcbWF0aG1vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcbWQ1bW9kdWxlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cT2JqZWN0c1xtZW1vcnlvYmplY3QuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQYXJzZXJcbWV0YWdyYW1tYXIuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXG1ldGhvZG9iamVjdC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcbW1hcG1vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFB5dGhvblxtb2RzdXBwb3J0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cT2JqZWN0c1xtb2R1bGVvYmplY3QuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlxtc3ZjcnRtb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXGNqa2NvZGVjc1xtdWx0aWJ5dGVjb2RlYy5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFBhcnNlclxteXJlYWRsaW5lLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUHl0aG9uXG15c25wcmludGYuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25cbXlzdHJ0b3VsLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUGFyc2VyXG5vZGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXG9iamVjdC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE9iamVjdHNcb2JtYWxsb2MuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXG9wZXJhdG9yLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUGFyc2VyXHBhcnNlci5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNccGFyc2VybW9kdWxlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUGFyc2VyXHBhcnNldG9rLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUHl0aG9uXHBlZXBob2xlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xwb3NpeG1vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFB5dGhvblxweWFyZW5hLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUHl0aG9uXHB5Y3R5cGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25ccHlmcGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25ccHltYXRoLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUHl0aG9uXHB5c3RhdGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25ccHlzdHJjbXAuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25ccHlzdHJ0b2QuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0iLi5cLi5cUHl0aG9uXFB5dGhvbi1hc3QuYyINCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5ccHl0aG9uX250LnJjDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFB5dGhvblxweXRob25ydW4uYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25ccHl0aW1lLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUHl0aG9uXHJhbmRvbS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE9iamVjdHNccmFuZ2VvYmplY3QuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXHJvdGF0aW5ndHJlZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE9iamVjdHNcc2V0b2JqZWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xzaGExbW9kdWxlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xzaGEyNTZtb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXHNoYTUxMm1vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcc2lnbmFsbW9kdWxlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cT2JqZWN0c1xzbGljZW9iamVjdC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX2lvXHN0cmluZ2lvLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUHl0aG9uXHN0cnVjdG1lbWJlci5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE9iamVjdHNcc3RydWN0c2VxLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUHl0aG9uXHN5bXRhYmxlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xzeW10YWJsZW1vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFB5dGhvblxzeXNtb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXF9pb1x0ZXh0aW8uYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxQeXRob25cdGhyZWFkLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1x0aW1lbW9kdWxlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cUGFyc2VyXHRva2VuaXplci5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXFB5dGhvblx0cmFjZWJhY2suYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXHpsaWJcdHJlZXMuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXHR1cGxlb2JqZWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cT2JqZWN0c1x0eXBlb2JqZWN0LmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1x6bGliXHVuY29tcHIuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxPYmplY3RzXHVuaWNvZGVjdHlwZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE9iamVjdHNcdW5pY29kZW9iamVjdC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE9iamVjdHNcd2Vha3JlZm9iamVjdC5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXHdpbnJlZy5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNceHhzdWJ0eXBlLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1x6aXBpbXBvcnQuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXHpsaWJtb2R1bGUuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXHpsaWJcenV0aWwuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBFbmQgVGFyZ2V0DQotIyBFbmQgUHJvamVjdA0KZGlmZiAtLWdpdCBhL1BDL1ZDNi9weXRob253LmRzcCBiL1BDL1ZDNi9weXRob253LmRzcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTljMzI1Yy4uMDAwMDAwMAotLS0gYS9QQy9WQzYvcHl0aG9udy5kc3AKKysrIC9kZXYvbnVsbApAQCAtMSwxMDEgKzAsMCBAQAotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJweXRob253IiAtIFBhY2thZ2UgT3duZXI9PDQ+DQotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBHZW5lcmF0ZWQgQnVpbGQgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMA0KLSMgKiogRE8gTk9UIEVESVQgKioNCi0NCi0jIFRBUkdUWVBFICJXaW4zMiAoeDg2KSBBcHBsaWNhdGlvbiIgMHgwMTAxDQotDQotQ0ZHPXB5dGhvbncgLSBXaW4zMiBBbHBoYSBSZWxlYXNlDQotIU1FU1NBR0UgVGhpcyBpcyBub3QgYSB2YWxpZCBtYWtlZmlsZS4gVG8gYnVpbGQgdGhpcyBwcm9qZWN0IHVzaW5nIE5NQUtFLA0KLSFNRVNTQUdFIHVzZSB0aGUgRXhwb3J0IE1ha2VmaWxlIGNvbW1hbmQgYW5kIHJ1bg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIE5NQUtFIC9mICJweXRob253Lm1hayIuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgWW91IGNhbiBzcGVjaWZ5IGEgY29uZmlndXJhdGlvbiB3aGVuIHJ1bm5pbmcgTk1BS0UNCi0hTUVTU0FHRSBieSBkZWZpbmluZyB0aGUgbWFjcm8gQ0ZHIG9uIHRoZSBjb21tYW5kIGxpbmUuIEZvciBleGFtcGxlOg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIE5NQUtFIC9mICJweXRob253Lm1hayIgQ0ZHPSJweXRob253IC0gV2luMzIgQWxwaGEgUmVsZWFzZSINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAicHl0aG9udyAtIFdpbjMyIFJlbGVhc2UiIChiYXNlZCBvbiAiV2luMzIgKHg4NikgQXBwbGljYXRpb24iKQ0KLSFNRVNTQUdFICJweXRob253IC0gV2luMzIgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKHg4NikgQXBwbGljYXRpb24iKQ0KLSFNRVNTQUdFIA0KLQ0KLSMgQmVnaW4gUHJvamVjdA0KLSMgUFJPUCBBbGxvd1BlckNvbmZpZ0RlcGVuZGVuY2llcyAwDQotIyBQUk9QIFNjY19Qcm9qTmFtZSAicHl0aG9udyINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi5ccGMiDQotQ1BQPWNsLmV4ZQ0KLU1UTD1taWRsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJweXRob253IC0gV2luMzIgUmVsZWFzZSINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJSZWxlYXNlIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLXJlbGVhc2VccHl0aG9udyINCi0jIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMA0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvVzMgL0dYIC9PMiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvYw0KLSMgQUREIENQUCAvbm9sb2dvIC9NRCAvVzMgL0dYIC9aaSAvTzIgL0kgIi4uXC4uXEluY2x1ZGUiIC9JICIuLiIgL0QgIldJTjMyIiAvRCAiTkRFQlVHIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgQkFTRSBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi0jIEFERCBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvbWFjaGluZTpJMzg2DQotIyBBREQgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL2Jhc2U6IjB4MWQwMDAwMDAiIC9zdWJzeXN0ZW06d2luZG93cyAvZGVidWcgL21hY2hpbmU6STM4Ng0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTFNFSUYgICIkKENGRykiID09ICJweXRob253IC0gV2luMzIgRGVidWciDQotDQotIyBQUk9QIEJBU0UgVXNlX01GQyAwDQotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiRGVidWciDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiRGVidWciDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLWRlYnVnXHB5dGhvbnciDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL1czIC9HbSAvR1ggL1ppIC9PZCAvRCAiV0lOMzIiIC9EICJfREVCVUciIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvYw0KLSMgQUREIENQUCAvbm9sb2dvIC9NRGQgL1czIC9HbSAvR1ggL1ppIC9PZCAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvRCAiV0lOMzIiIC9EICJfREVCVUciIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvYw0KLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiX0RFQlVHIg0KLSMgQUREIFJTQyAvbCAweDQwOSAvZCAiX0RFQlVHIg0KLUJTQzMyPWJzY21ha2UuZXhlDQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQotIyBBREQgQlNDMzIgL25vbG9nbw0KLUxJTkszMj1saW5rLmV4ZQ0KLSMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9wZGJ0eXBlOnNlcHQNCi0jIEFERCBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvYmFzZToiMHgxZDAwMDAwMCIgL3N1YnN5c3RlbTp3aW5kb3dzIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4vcHl0aG9ud19kLmV4ZSIgL3BkYnR5cGU6c2VwdA0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTkRJRiANCi0NCi0jIEJlZ2luIFRhcmdldA0KLQ0KLSMgTmFtZSAicHl0aG9udyAtIFdpbjMyIFJlbGVhc2UiDQotIyBOYW1lICJweXRob253IC0gV2luMzIgRGVidWciDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlxweXRob25fZXhlLnJjDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXFdpbk1haW4uYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBFbmQgVGFyZ2V0DQotIyBFbmQgUHJvamVjdA0KZGlmZiAtLWdpdCBhL1BDL1ZDNi9yZWFkbWUudHh0IGIvUEMvVkM2L3JlYWRtZS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5NzhmODUuLjAwMDAwMDAKLS0tIGEvUEMvVkM2L3JlYWRtZS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOTIgKzAsMCBAQAotQnVpbGRpbmcgUHl0aG9uIHVzaW5nIFZDKysgNi4wIG9yIDUuMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotVGhpcyBkaXJlY3RvcnkgaXMgdXNlZCB0byBidWlsZCBQeXRob24gZm9yIFdpbjMyIHBsYXRmb3JtcywgZS5nLiBXaW5kb3dzCi0yMDAwIGFuZCBYUC4gIEl0IHJlcXVpcmVzIE1pY3Jvc29mdCBWaXN1YWwgQysrIDYueCBvciA1LnggYW5kIFBsYXRmb3JtCi1TREsgRmVicnVhcnkgMjAwMyBFZGl0aW9uIChDb3JlIFNESykuCi0oRm9yIG90aGVyIFdpbmRvd3MgcGxhdGZvcm1zIGFuZCBjb21waWxlcnMsIHNlZSAuLi9yZWFkbWUudHh0LikKLQotQWxsIHlvdSBuZWVkIHRvIGRvIGlzIG9wZW4gdGhlIHdvcmtzcGFjZSAicGNidWlsZC5kc3ciIGluIE1TVkMrKywgc2VsZWN0Ci10aGUgRGVidWcgb3IgUmVsZWFzZSBzZXR0aW5nICh1c2luZyBCdWlsZCAtPiBTZXQgQWN0aXZlIENvbmZpZ3VyYXRpb24uLi4pLAotYW5kIGJ1aWxkIHRoZSBwcm9qZWN0cy4KLQotVGhlIHByb3BlciBvcmRlciB0byBidWlsZCBzdWJwcm9qZWN0czoKLQotMSkgcHl0aG9uY29yZSAodGhpcyBidWlsZHMgdGhlIG1haW4gUHl0aG9uIERMTCBhbmQgbGlicmFyeSBmaWxlcywKLSAgICAgICAgICAgICAgIHB5dGhvbjMzLntkbGwsIGxpYn0gaW4gUmVsZWFzZSBtb2RlKQotCi0yKSBweXRob24gKHRoaXMgYnVpbGRzIHRoZSBtYWluIFB5dGhvbiBleGVjdXRhYmxlLAotICAgICAgICAgICBweXRob24uZXhlIGluIFJlbGVhc2UgbW9kZSkKLQotMykgdGhlIG90aGVyIHN1YnByb2plY3RzLCBhcyBkZXNpcmVkIG9yIG5lZWRlZCAobm90ZTogIHlvdSBwcm9iYWJseSBkb24ndAotICAgd2FudCB0byBidWlsZCBtb3N0IG9mIHRoZSBvdGhlciBzdWJwcm9qZWN0cywgdW5sZXNzIHlvdSdyZSBidWlsZGluZyBhbgotICAgZW50aXJlIFB5dGhvbiBkaXN0cmlidXRpb24gZnJvbSBzY3JhdGNoLCBvciBzcGVjaWZpY2FsbHkgbWFraW5nIGNoYW5nZXMKLSAgIHRvIHRoZSBzdWJzeXN0ZW1zIHRoZXkgaW1wbGVtZW50OyBzZWUgU1VCUFJPSkVDVFMgYmVsb3cpCi0KLVdoZW4gdXNpbmcgdGhlIERlYnVnIHNldHRpbmcsIHRoZSBvdXRwdXQgZmlsZXMgaGF2ZSBhIF9kIGFkZGVkIHRvCi10aGVpciBuYW1lOiAgcHl0aG9uMzNfZC5kbGwsIHB5dGhvbl9kLmV4ZSwgcHlleHBhdF9kLnB5ZCwgYW5kIHNvIG9uLgotCi1TVUJQUk9KRUNUUwotLS0tLS0tLS0tLS0KLVRoZXNlIHN1YnByb2plY3RzIHNob3VsZCBidWlsZCBvdXQgb2YgdGhlIGJveC4gIFN1YnByb2plY3RzIG90aGVyIHRoYW4gdGhlCi1tYWluIG9uZXMgKHB5dGhvbmNvcmUsIHB5dGhvbiwgcHl0aG9udykgZ2VuZXJhbGx5IGJ1aWxkIGEgRExMIChyZW5hbWVkIHRvCi0ucHlkKSBmcm9tIGEgc3BlY2lmaWMgbW9kdWxlIHNvIHRoYXQgdXNlcnMgZG9uJ3QgaGF2ZSB0byBsb2FkIHRoZSBjb2RlCi1zdXBwb3J0aW5nIHRoYXQgbW9kdWxlIHVubGVzcyB0aGV5IGltcG9ydCB0aGUgbW9kdWxlLgotCi1weXRob25jb3JlCi0gICAgLmRsbCBhbmQgLmxpYgotcHl0aG9uCi0gICAgLmV4ZQotcHl0aG9udwotICAgIHB5dGhvbncuZXhlLCBhIHZhcmlhbnQgb2YgcHl0aG9uLmV4ZSB0aGF0IGRvZXNuJ3QgcG9wIHVwIGEgRE9TIGJveAotX21zaQotICAgIF9tc2kuYy4gWW91IG5lZWQgdG8gaW5zdGFsbCBXaW5kb3dzIEluc3RhbGxlciBTREsgdG8gYnVpbGQgdGhpcyBtb2R1bGUuCi1fc29ja2V0Ci0gICAgc29ja2V0bW9kdWxlLmMKLV90ZXN0Y2FwaQotICAgIHRlc3RzIG9mIHRoZSBQeXRob24gQyBBUEksIHJ1biB2aWEgTGliL3Rlc3QvdGVzdF9jYXBpLnB5LCBhbmQKLSAgICBpbXBsZW1lbnRlZCBieSBtb2R1bGUgTW9kdWxlcy9fdGVzdGNhcGltb2R1bGUuYwotcHlleHBhdAotICAgIFB5dGhvbiB3cmFwcGVyIGZvciBhY2NlbGVyYXRlZCBYTUwgcGFyc2luZywgd2hpY2ggaW5jb3Jwb3JhdGVzIHN0YWJsZQotICAgIGNvZGUgZnJvbSB0aGUgRXhwYXQgcHJvamVjdDogIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvZXhwYXQvCi1zZWxlY3QKLSAgICBzZWxlY3Rtb2R1bGUuYwotdW5pY29kZWRhdGEKLSAgICBsYXJnZSB0YWJsZXMgb2YgVW5pY29kZSBkYXRhCi13aW5zb3VuZAotICAgIHBsYXkgc291bmRzICh0eXBpY2FsbHkgLndhdiBmaWxlcykgdW5kZXIgV2luZG93cwotCi1UaGUgZm9sbG93aW5nIHN1YnByb2plY3RzIHdpbGwgZ2VuZXJhbGx5IE5PVCBidWlsZCBvdXQgb2YgdGhlIGJveC4gIFRoZXkKLXdyYXAgY29kZSBQeXRob24gZG9lc24ndCBjb250cm9sLCBhbmQgeW91J2xsIG5lZWQgdG8gZG93bmxvYWQgdGhlIGJhc2UKLXBhY2thZ2VzIGZpcnN0IGFuZCB1bnBhY2sgdGhlbSBpbnRvIHNpYmxpbmdzIG9mIFBDYnVpbGRzJ3MgcGFyZW50Ci1kaXJlY3Rvcnk7IGZvciBleGFtcGxlLCBpZiB5b3VyIFBDYnVpbGQgaXMgIC4uLi4uLi5cZGlzdFxzcmNcUENidWlsZFwsCi11bnBhY2sgaW50byBuZXcgc3ViZGlyZWN0b3JpZXMgb2YgZGlzdFwuCi0KLV90a2ludGVyCi0gICAgUHl0aG9uIHdyYXBwZXIgZm9yIHRoZSBUayB3aW5kb3dpbmcgc3lzdGVtLiAgUmVxdWlyZXMgYnVpbGRpbmcKLSAgICBUY2wvVGsgZmlyc3QuICBGb2xsb3dpbmcgYXJlIGluc3RydWN0aW9ucyBmb3IgVGNsL1RrIDguNS4yLgotCi0gICAgR2V0IHNvdXJjZQotICAgIC0tLS0tLS0tLS0KLSAgICBJbiB0aGUgZGlzdCBkaXJlY3RvcnksIHJ1bgotICAgIHN2biBleHBvcnQgaHR0cDovL3N2bi5weXRob24ub3JnL3Byb2plY3RzL2V4dGVybmFsL3RjbC04LjUuMi4xIHRjbDguNS4yCi0gICAgc3ZuIGV4cG9ydCBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvZXh0ZXJuYWwvdGstOC41LjIuMCB0azguNS4yCi0gICAgc3ZuIGV4cG9ydCBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvZXh0ZXJuYWwvdGl4LTguNC4zLjEgdGl4OC40LjMKLQotICAgIERlYnVnIEJ1aWxkCi0gICAgLS0tLS0tLS0tLS0KLSAgICBUbyBidWlsZCBkZWJ1ZyB2ZXJzaW9uLCBhZGQgREVCVUc9MSB0byBhbGwgbm1ha2UgY2FsbCBiZWxsb3cuCi0KLSAgICBCdWlsZCBUY2wgZmlyc3QgKGRvbmUgaGVyZSB3LyBNU1ZDIDYgb24gV2luMkspCi0gICAgLS0tLS0tLS0tLS0tLS0tCi0gICAgSWYgeW91ciBlbnZpcm9ubWVudCBkb2Vzbid0IGhhdmUgc3RydWN0IF9zdGF0NjQsIHlvdSBuZWVkIHRvIGFwcGx5Ci0gICAgdGNsODUyLnBhdGNoIGluIHRoaXMgZGlyZWN0b3J5IHRvIGRpc3RcdGNsOC41LjJcZ2VuZXJpY1x0Y2wuaC4KLQotICAgIGNkIGRpc3RcdGNsOC41LjJcd2luCi0gICAgcnVuIHZjdmFyczMyLmJhdAotICAgIG5tYWtlIC1mIG1ha2VmaWxlLnZjCi0gICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgSU5TVEFMTERJUj0uLlwuLlx0Y2x0ayBpbnN0YWxsCi0KLSAgICBYWFggU2hvdWxkIHdlIGNvbXBpbGUgd2l0aCBPUFRTPXRocmVhZHM/Ci0KLSAgICBPcHRpb25hbDogIHJ1biB0ZXN0cywgdmlhCi0gICAgICAgIG5tYWtlIC1mIG1ha2VmaWxlLnZjIHRlc3QKLQotICAgICAgICBhbGwudGNsOiAgICAgICAgVG90YWwgICAyNDI0MiAgIFBhc3NlZCAgMjMzNTggICBTa2lwcGVkIDg3NyAgICAgRmFpbGVkICA3Ci0gICAgICAgIFNvdXJjZWQgMTM3IFRlc3QgRmlsZXMuCi0gICAgICAgIEZpbGVzIHdpdGggZmFpbGluZyB0ZXN0czogZXhlYy50ZXN0IGh0dHAudGVzdCBpby50ZXN0IG1haW4udGVzdCBzdHJpbmcudGVzdCBzdHJpCi0gICAgICAgIG5nT2JqLnRlc3QKLQotICAgIEJ1aWxkIFRrCi0gICAgLS0tLS0tLS0KLSAgICBjZCBkaXN0XHRrOC41LjJcd2luCi0gICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgVENMRElSPS4uXC4uXHRjbDguNS4yCi0gICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgVENMRElSPS4uXC4uXHRjbDguNS4yIElOU1RBTExESVI9Li5cLi5cdGNsdGsgaW5zdGFsbAotCi0gICAgWFhYIFNob3VsZCB3ZSBjb21waWxlIHdpdGggT1BUUz10aHJlYWRzPwotCi0gICAgWFhYIEkgaGF2ZSBubyBpZGVhIHdoZXRoZXIgIm5tYWtlIC1mIG1ha2VmaWxlLnZjIHRlc3QiIHBhc3NlZCBvcgotICAgIFhYWCBmYWlsZWQuICBJdCBwb3BwZWQgdXAgdG9ucyBvZiBsaXR0bGUgd2luZG93cywgYW5kIGRpZCBsb3RzIG9mCi0gICAgWFhYIHN0dWZmLCBhbmQgbm90aGluZyBibGV3IHVwLgotCi0gICAgQnVpbGQgVGl4Ci0gICAgLS0tLS0tLS0tCi0gICAgY2QgZGlzdFx0aXg4LjQuM1x3aW4KLSAgICBubWFrZSAtZiBweXRob24ubWFrIFRDTF9NQUpPUj04IFRDTF9NSU5PUj01IFRDTF9QQVRDSD0yIE1BQ0hJTkU9SVg4NiBERUJVRz0wCi0gICAgbm1ha2UgLWYgcHl0aG9uLm1hayBUQ0xfTUFKT1I9OCBUQ0xfTUlOT1I9NSBUQ0xfUEFUQ0g9MiBNQUNISU5FPUlYODYgREVCVUc9MCBJTlNUQUxMX0RJUj0uLlwuLlx0Y2x0ayBpbnN0YWxsCi0KLWJ6MgotICAgIFB5dGhvbiB3cmFwcGVyIGZvciB0aGUgbGliYnoyIGNvbXByZXNzaW9uIGxpYnJhcnkuICBIb21lcGFnZQotICAgICAgICBodHRwOi8vd3d3LmJ6aXAub3JnLwotICAgIERvd25sb2FkIHRoZSBzb3VyY2UgZnJvbSB0aGUgcHl0aG9uLm9yZyBjb3B5IGludG8gdGhlIGRpc3QKLSAgICBkaXJlY3Rvcnk6Ci0KLSAgICBzdm4gZXhwb3J0IGh0dHA6Ly9zdm4ucHl0aG9uLm9yZy9wcm9qZWN0cy9leHRlcm5hbC9iemlwMi0xLjAuNgotCi0gICAgQW5kIHJlcXVpcmVzIGJ1aWxkaW5nIGJ6MiBmaXJzdC4KLQotICAgIGNkIGRpc3RcYnppcDItMS4wLjYKLSAgICBubWFrZSAtZiBtYWtlZmlsZS5tc2MKLQotICAgIEFsbCBvZiB0aGlzIG1hbmFnZWQgdG8gYnVpbGQgYnppcDItMS4wLjZcbGliYnoyLmxpYiwgd2hpY2ggdGhlIFB5dGhvbgotICAgIHByb2plY3QgbGlua3MgaW4uCi0KLQotX3NxbGl0ZTMKLSAgICBQeXRob24gd3JhcHBlciBmb3IgU1FMaXRlIGxpYnJhcnkuCi0gICAgCi0gICAgR2V0IHRoZSBzb3VyY2UgY29kZSB0aHJvdWdoCi0gICAgCi0gICAgc3ZuIGV4cG9ydCBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvZXh0ZXJuYWwvc3FsaXRlLXNvdXJjZS0zLjMuNAotICAgIAotICAgIFRvIHVzZSB0aGUgZXh0ZW5zaW9uIG1vZHVsZSBpbiBhIFB5dGhvbiBidWlsZCB0cmVlLCBjb3B5IHNxbGl0ZTMuZGxsIGludG8KLSAgICB0aGUgUEMvVkM2IGZvbGRlci4KLQotCi1fc3NsCi0gICAgUHl0aG9uIHdyYXBwZXIgZm9yIHRoZSBzZWN1cmUgc29ja2V0cyBsaWJyYXJ5LgotCi0gICAgR2V0IHRoZSBsYXRlc3Qgc291cmNlIGNvZGUgZm9yIE9wZW5TU0wgZnJvbQotICAgICAgICBodHRwOi8vd3d3Lm9wZW5zc2wub3JnCi0KLSAgICBZb3UgKHByb2JhYmx5KSBkb24ndCB3YW50IHRoZSAiZW5naW5lIiBjb2RlLiAgRm9yIGV4YW1wbGUsIGRvbid0IGdldAotICAgICAgICBvcGVuc3NsLWVuZ2luZS0wLjkuNmcudGFyLmd6Ci0KLSAgICBVbnBhY2sgaW50byB0aGUgImRpc3QiIGRpcmVjdG9yeSwgcmV0YWluaW5nIHRoZSBmb2xkZXIgbmFtZSBmcm9tCi0gICAgdGhlIGFyY2hpdmUgLSBmb3IgZXhhbXBsZSwgdGhlIGxhdGVzdCBzdGFibGUgT3BlblNTTCB3aWxsIGluc3RhbGwgYXMKLSAgICAgICAgZGlzdC9vcGVuc3NsLTEuMC4xZQotCi0gICAgWW91IG5lZWQgdG8gdXNlIHZlcnNpb24gMS4wLjFlIG9mIE9wZW5TU0wuCi0KLSAgICBZb3UgY2FuIGluc3RhbGwgdGhlIE5BU00gYXNzZW1ibGVyIGZyb20KLSAgICAgICAgaHR0cDovL3d3dy5uYXNtLnVzLwotICAgIGZvciB4ODYgYnVpbGRzLiAgUHV0IG5hc213LmV4ZSBhbnl3aGVyZSBpbiB5b3VyIFBBVEguCi0gICAgTm90ZTogcmVjZW50IHJlbGVhc2VzIG9mIG5hc20gb25seSBoYXZlIG5hc20uZXhlLiBKdXN0IHJlbmFtZSBpdCB0byAKLSAgICBuYXNtdy5leGUuCi0KLSAgICBZb3UgY2FuIGFsc28gaW5zdGFsbCBBY3RpdmVQZXJsIGZyb20KLSAgICAgICAgaHR0cDovL3d3dy5hY3RpdmVzdGF0ZS5jb20vYWN0aXZlcGVybC8KLSAgICBpZiB5b3UgbGlrZSB0byB1c2UgdGhlIG9mZmljaWFsIHNvdXJjZXMgaW5zdGVhZCBvZiB0aGUgZmlsZXMgZnJvbSAKLSAgICBweXRob24ncyBzdWJ2ZXJzaW9uIHJlcG9zaXRvcnkuIFRoZSBzdm4gdmVyc2lvbiBjb250YWlucyBwcmUtYnVpbGQKLSAgICBtYWtlZmlsZXMgYW5kIGFzc2VtYmx5IGZpbGVzLgotCi0gICAgVGhlIE1TVkMgcHJvamVjdCBzaW1wbHkgaW52b2tlcyBQQy9WQzYvYnVpbGRfc3NsLnB5IHRvIHBlcmZvcm0KLSAgICB0aGUgYnVpbGQuICBUaGlzIFB5dGhvbiBzY3JpcHQgbG9jYXRlcyBhbmQgYnVpbGRzIHlvdXIgT3BlblNTTAotICAgIGluc3RhbGxhdGlvbiwgdGhlbiBpbnZva2VzIGEgc2ltcGxlIG1ha2VmaWxlIHRvIGJ1aWxkIHRoZSBmaW5hbCAucHlkLgotCi0gICAgYnVpbGRfc3NsLnB5IGF0dGVtcHRzIHRvIGNhdGNoIHRoZSBtb3N0IGNvbW1vbiBlcnJvcnMgKHN1Y2ggYXMgbm90Ci0gICAgYmVpbmcgYWJsZSB0byBmaW5kIE9wZW5TU0wgc291cmNlcywgb3Igbm90IGJlaW5nIGFibGUgdG8gZmluZCBhIFBlcmwKLSAgICB0aGF0IHdvcmtzIHdpdGggT3BlblNTTCkgYW5kIGdpdmUgYSByZWFzb25hYmxlIGVycm9yIG1lc3NhZ2UuCi0gICAgSWYgeW91IGhhdmUgYSBwcm9ibGVtIHRoYXQgZG9lc24ndCBzZWVtIHRvIGJlIGhhbmRsZWQgY29ycmVjdGx5Ci0gICAgKGVnLCB5b3Uga25vdyB5b3UgaGF2ZSBBY3RpdmVQZXJsIGJ1dCB3ZSBjYW4ndCBmaW5kIGl0KSwgcGxlYXNlIHRha2UKLSAgICBhIHBlZWsgYXQgYnVpbGRfc3NsLnB5IGFuZCBzdWdnZXN0IHBhdGNoZXMuICBOb3RlIHRoYXQgYnVpbGRfc3NsLnB5Ci0gICAgc2hvdWxkIGJlIGFibGUgdG8gYmUgcnVuIGRpcmVjdGx5IGZyb20gdGhlIGNvbW1hbmQtbGluZS4KLQotICAgIGJ1aWxkX3NzbC5weS9NU1ZDIGlzbid0IGNsZXZlciBlbm91Z2ggdG8gY2xlYW4gT3BlblNTTCAtIHlvdSBtdXN0IGRvCi0gICAgdGhpcyBieSBoYW5kLgotCi0KLVlPVVIgT1dOIEVYVEVOU0lPTiBETExzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotSWYgeW91IHdhbnQgdG8gY3JlYXRlIHlvdXIgb3duIGV4dGVuc2lvbiBtb2R1bGUgRExMLCB0aGVyZSdzIGFuIGV4YW1wbGUKLXdpdGggZWFzeS10by1mb2xsb3cgaW5zdHJ1Y3Rpb25zIGluIC4uL1BDL2V4YW1wbGUvOyByZWFkIHRoZSBmaWxlCi1yZWFkbWUudHh0IHRoZXJlIGZpcnN0LgpkaWZmIC0tZ2l0IGEvUEMvVkM2L3JtcHljLnB5IGIvUEMvVkM2L3JtcHljLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOGQ2ODIzLi4wMDAwMDAwCi0tLSBhL1BDL1ZDNi9ybXB5Yy5weQorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLSMgUmVtb3ZlIGFsbCB0aGUgLnB5YyBhbmQgLnB5byBmaWxlcyB1bmRlciAuLi9MaWIuCi0KLQotZGVmIGRlbHRyZWUocm9vdCk6Ci0gICAgaW1wb3J0IG9zCi0gICAgZnJvbSBvcy5wYXRoIGltcG9ydCBqb2luCi0KLSAgICBucHljID0gbnB5byA9IDAKLSAgICBmb3Igcm9vdCwgZGlycywgZmlsZXMgaW4gb3Mud2Fsayhyb290KToKLSAgICAgICAgZm9yIG5hbWUgaW4gZmlsZXM6Ci0gICAgICAgICAgICBkZWxldGUgPSBGYWxzZQotICAgICAgICAgICAgaWYgbmFtZS5lbmRzd2l0aCgnLnB5YycpOgotICAgICAgICAgICAgICAgIGRlbGV0ZSA9IFRydWUKLSAgICAgICAgICAgICAgICBucHljICs9IDEKLSAgICAgICAgICAgIGVsaWYgbmFtZS5lbmRzd2l0aCgnLnB5bycpOgotICAgICAgICAgICAgICAgIGRlbGV0ZSA9IFRydWUKLSAgICAgICAgICAgICAgICBucHlvICs9IDEKLQotICAgICAgICAgICAgaWYgZGVsZXRlOgotICAgICAgICAgICAgICAgIG9zLnJlbW92ZShqb2luKHJvb3QsIG5hbWUpKQotCi0gICAgcmV0dXJuIG5weWMsIG5weW8KLQotbnB5YywgbnB5byA9IGRlbHRyZWUoIi4uLy4uL0xpYiIpCi1wcmludCBucHljLCAiLnB5YyBkZWxldGVkLCIsIG5weW8sICIucHlvIGRlbGV0ZWQiCmRpZmYgLS1naXQgYS9QQy9WQzYvcnQuYmF0IGIvUEMvVkM2L3J0LmJhdApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYTllYWRkNy4uMDAwMDAwMAotLS0gYS9QQy9WQzYvcnQuYmF0CisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotQHJlbSBSdW4gVGVzdHMuICBSdW4gdGhlIHJlZ3Jlc3Npb24gdGVzdCBzdWl0ZS4KLUByZW0gVXNhZ2U6ICBydCBbLWRdIFstT10gWy1xXSByZWdydGVzdF9hcmdzCi1AcmVtIC1kICAgUnVuIERlYnVnIGJ1aWxkIChweXRob25fZC5leGUpLiAgRWxzZSByZWxlYXNlIGJ1aWxkLgotQHJlbSAtTyAgIFJ1biBweXRob24uZXhlIG9yIHB5dGhvbl9kLmV4ZSAoc2VlIC1kKSB3aXRoIC1PLgotQHJlbSAtcSAgICJxdWljayIgLS0gbm9ybWFsbHkgdGhlIHRlc3RzIGFyZSBydW4gdHdpY2UsIHRoZSBmaXJzdCB0aW1lCi1AcmVtICAgICAgYWZ0ZXIgZGVsZXRpbmcgYWxsIHRoZSAucHlbY29dIGZpbGVzIHJlYWNoYWJsZSBmcm9tIExpYi8uCi1AcmVtICAgICAgLXEgcnVucyB0aGUgdGVzdHMganVzdCBvbmNlLCBhbmQgd2l0aG91dCBkZWxldGluZyAucHlbY29dIGZpbGVzLgotQHJlbSBBbGwgbGVhZGluZyBpbnN0YW5jZXMgb2YgdGhlc2Ugc3dpdGNoZXMgYXJlIHNoaWZ0ZWQgb2ZmLCBhbmQKLUByZW0gd2hhdGV2ZXIgcmVtYWlucyBpcyBwYXNzZWQgdG8gcmVncnRlc3QucHkuICBGb3IgZXhhbXBsZSwKLUByZW0gICAgIHJ0IC1PIC1kIC14IHRlc3RfdGhyZWFkCi1AcmVtIHJ1bnMKLUByZW0gICAgIHB5dGhvbl9kIC1PIC4uLy4uL2xpYi90ZXN0L3JlZ3J0ZXN0LnB5IC14IHRlc3RfdGhyZWFkCi1AcmVtIHR3aWNlLCBhbmQKLUByZW0gICAgIHJ0IC1xIC1nIHRlc3RfYmluYXNjaWkKLUByZW0gcnVucwotQHJlbSAgICAgcHl0aG9uX2QgLi4vLi4vbGliL3Rlc3QvcmVncnRlc3QucHkgLWcgdGVzdF9iaW5hc2NpaQotQHJlbSB0byBnZW5lcmF0ZSB0aGUgZXhwZWN0ZWQtb3V0cHV0IGZpbGUgZm9yIGJpbmFzY2lpIHF1aWNrbHkuCi1Ac2V0IF9leGU9cHl0aG9uCi1Ac2V0IF9xbW9kZT1ubwotQHNldCBfZGFzaE89Ci1AZ290byBDaGVja09wdHMKLTpBZ2FpbgotQHNoaWZ0Ci06Q2hlY2tPcHRzCi1AaWYgIiUxIj09Ii1PIiBzZXQgX2Rhc2hPPS1PCi1AaWYgIiUxIj09Ii1PIiBnb3RvIEFnYWluCi1AaWYgIiUxIj09Ii1xIiBzZXQgX3Ftb2RlPXllcwotQGlmICIlMSI9PSItcSIgZ290byBBZ2FpbgotQGlmICIlMSI9PSItZCIgc2V0IF9leGU9cHl0aG9uX2QKLUBpZiAiJTEiPT0iLWQiIGdvdG8gQWdhaW4KLUBpZiAiJV9xbW9kZSUiPT0ieWVzIiBnb3RvIFFtb2RlCi1AZWNobyBEZWxldGluZyAucHljLy5weW8gZmlsZXMgLi4uCi1AJV9leGUlIHJtcHljLnB5Ci0lX2V4ZSUgJV9kYXNoTyUgLUUgLi4vLi4vbGliL3Rlc3QvcmVncnRlc3QucHkgJTEgJTIgJTMgJTQgJTUgJTYgJTcgJTggJTkKLUBlY2hvIEFib3V0IHRvIHJ1biBhZ2FpbiB3aXRob3V0IGRlbGV0aW5nIC5weWMvLnB5byBmaXJzdDoKLUBwYXVzZQotOlFtb2RlCi0lX2V4ZSUgJV9kYXNoTyUgLUUgLi4vLi4vbGliL3Rlc3QvcmVncnRlc3QucHkgJTEgJTIgJTMgJTQgJTUgJTYgJTcgJTggJTkKLUBzZXQgX2V4ZT0KLUBzZXQgX3Ftb2RlPQotQHNldCBfZGFzaE89CmRpZmYgLS1naXQgYS9QQy9WQzYvc2VsZWN0LmRzcCBiL1BDL1ZDNi9zZWxlY3QuZHNwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMGU1MjhjLi4wMDAwMDAwCi0tLSBhL1BDL1ZDNi9zZWxlY3QuZHNwCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJzZWxlY3QiIC0gUGFja2FnZSBPd25lcj08ND4NCi0jIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIEdlbmVyYXRlZCBCdWlsZCBGaWxlLCBGb3JtYXQgVmVyc2lvbiA2LjAwDQotIyAqKiBETyBOT1QgRURJVCAqKg0KLQ0KLSMgVEFSR1RZUEUgIldpbjMyICh4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IiAweDAxMDINCi0NCi1DRkc9c2VsZWN0IC0gV2luMzIgRGVidWcNCi0hTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsDQotIU1FU1NBR0UgdXNlIHRoZSBFeHBvcnQgTWFrZWZpbGUgY29tbWFuZCBhbmQgcnVuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgInNlbGVjdC5tYWsiLg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIFlvdSBjYW4gc3BlY2lmeSBhIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIE5NQUtFDQotIU1FU1NBR0UgYnkgZGVmaW5pbmcgdGhlIG1hY3JvIENGRyBvbiB0aGUgY29tbWFuZCBsaW5lLiBGb3IgZXhhbXBsZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBOTUFLRSAvZiAic2VsZWN0Lm1hayIgQ0ZHPSJzZWxlY3QgLSBXaW4zMiBEZWJ1ZyINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAic2VsZWN0IC0gV2luMzIgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpDQotIU1FU1NBR0UgInNlbGVjdCAtIFdpbjMyIERlYnVnIiAoYmFzZWQgb24gIldpbjMyICh4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IikNCi0hTUVTU0FHRSANCi0NCi0jIEJlZ2luIFByb2plY3QNCi0jIFBST1AgQWxsb3dQZXJDb25maWdEZXBlbmRlbmNpZXMgMA0KLSMgUFJPUCBTY2NfUHJvak5hbWUgInNlbGVjdCINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi4iDQotQ1BQPWNsLmV4ZQ0KLU1UTD1taWRsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJzZWxlY3QgLSBXaW4zMiBSZWxlYXNlIg0KLQ0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMA0KLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiUmVsZWFzZSINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtcmVsZWFzZVxzZWxlY3QiDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLUY5MD1kZi5leGUNCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NVCAvVzMgL0dYIC9PMiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIk5ERUJVRyIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EIC9XMyAvR1ggL1ppIC9PMiAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJOREVCVUciIC9EICJXSU4zMiIgL0QgIl9XSU5ET1dTIiAvWVggL0ZEIC9jDQotIyBBREQgQkFTRSBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL28gIk5VTCIgL3dpbjMyDQotIyBBREQgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIEJBU0UgUlNDIC9sIDB4NDA5IC9kICJOREVCVUciDQotIyBBREQgUlNDIC9sIDB4NDA5IC9kICJOREVCVUciDQotQlNDMzI9YnNjbWFrZS5leGUNCi0jIEFERCBCQVNFIEJTQzMyIC9ub2xvZ28NCi0jIEFERCBCU0MzMiAvbm9sb2dvDQotTElOSzMyPWxpbmsuZXhlDQotIyBBREQgQkFTRSBMSU5LMzIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvbWFjaGluZTpJMzg2DQotIyBBREQgTElOSzMyIHVzZXIzMi5saWIga2VybmVsMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIHdzb2NrMzIubGliIC9ub2xvZ28gL2Jhc2U6IjB4MUQxMTAwMDAiIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9ub2RlZmF1bHRsaWI6ImxpYmMiIC9vdXQ6Ii4vc2VsZWN0LnB5ZCINCi0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUNCi0NCi0hRUxTRUlGICAiJChDRkcpIiA9PSAic2VsZWN0IC0gV2luMzIgRGVidWciDQotDQotIyBQUk9QIEJBU0UgVXNlX01GQyAwDQotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiRGVidWciDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiRGVidWciDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAxDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLWRlYnVnXHNlbGVjdCINCi0jIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMA0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotRjkwPWRmLmV4ZQ0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01UZCAvVzMgL0dtIC9HWCAvWmkgL09kIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIldJTjMyIiAvRCAiX0RFQlVHIiAvRCAiX1dJTkRPV1MiIC9ZWCAvRkQgL2MNCi0jIEFERCBDUFAgL25vbG9nbyAvTURkIC9XMyAvR20gL0dYIC9aaSAvT2QgL0kgIi4uXC4uXEluY2x1ZGUiIC9JICIuLiIgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiX0RFQlVHIiAvRCAiV0lOMzIiIC9EICJfV0lORE9XUyIgL1lYIC9GRCAvYw0KLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC9vICJOVUwiIC93aW4zMg0KLSMgQUREIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvbyAiTlVMIiAvd2luMzINCi0jIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiX0RFQlVHIg0KLSMgQUREIFJTQyAvbCAweDQwOSAvZCAiX0RFQlVHIg0KLUJTQzMyPWJzY21ha2UuZXhlDQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQotIyBBREQgQlNDMzIgL25vbG9nbw0KLUxJTkszMj1saW5rLmV4ZQ0KLSMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiB1c2VyMzIubGliIGtlcm5lbDMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiB3c29jazMyLmxpYiAvbm9sb2dvIC9iYXNlOiIweDFEMTEwMDAwIiAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvbm9kZWZhdWx0bGliOiJsaWJjIiAvbm9kZWZhdWx0bGliOiJtc3ZjcnQiIC9vdXQ6Ii4vc2VsZWN0X2QucHlkIiAvcGRidHlwZTpzZXB0DQotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lDQotDQotIUVORElGIA0KLQ0KLSMgQmVnaW4gVGFyZ2V0DQotDQotIyBOYW1lICJzZWxlY3QgLSBXaW4zMiBSZWxlYXNlIg0KLSMgTmFtZSAic2VsZWN0IC0gV2luMzIgRGVidWciDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KLVNPVVJDRT0uLlwuLlxNb2R1bGVzXHNlbGVjdG1vZHVsZS5jDQotIyBFbmQgU291cmNlIEZpbGUNCi0jIEVuZCBUYXJnZXQNCi0jIEVuZCBQcm9qZWN0DQpkaWZmIC0tZ2l0IGEvUEMvVkM2L3RjbDg1Mi5wYXRjaCBiL1BDL1ZDNi90Y2w4NTIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkNjc4MGEuLjAwMDAwMDAKLS0tIGEvUEMvVkM2L3RjbDg1Mi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSB0Y2w4LjUuMlxnZW5lcmljXHRjbC5oCUZyaSBKdW4gMTMgMDM6MzU6MzkgMjAwOAotKysrIHRjbDguNS4yXGdlbmVyaWNcdGNsLmgJU3VuIEphbiAgNCAxNjo1MjozMCAyMDA5Ci1AQCAtMzY3LDcgKzM2Nyw3IEBACi0gdHlwZWRlZiBzdHJ1Y3Qgc3RhdGk2NCBUY2xfU3RhdEJ1ZjsKLSAjICAgICAgICAgZGVmaW5lIFRDTF9MTF9NT0RJRklFUgkiTCIKLSAjICAgICAgZWxzZSAvKiBfX0JPUkxBTkRDX18gKi8KLS0jICAgICAgICAgaWYgX01TQ19WRVIgPCAxNDAwICYmICFkZWZpbmVkKF9NX0lYODYpCi0rIyAgICAgICAgIGlmIF9NU0NfVkVSIDwgMTQwMCAvKiYmICFkZWZpbmVkKF9NX0lYODYpKi8KLSB0eXBlZGVmIHN0cnVjdCBfc3RhdGk2NAlUY2xfU3RhdEJ1ZjsKLSAjICAgICAgICAgZWxzZQotIHR5cGVkZWYgc3RydWN0IF9zdGF0NjQJVGNsX1N0YXRCdWY7CmRpZmYgLS1naXQgYS9QQy9WQzYvdW5pY29kZWRhdGEuZHNwIGIvUEMvVkM2L3VuaWNvZGVkYXRhLmRzcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTA0ZGI2Ny4uMDAwMDAwMAotLS0gYS9QQy9WQzYvdW5pY29kZWRhdGEuZHNwCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJ1bmljb2RlZGF0YSIgLSBQYWNrYWdlIE93bmVyPTw0Pg0KLSMgTWljcm9zb2Z0IERldmVsb3BlciBTdHVkaW8gR2VuZXJhdGVkIEJ1aWxkIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDYuMDANCi0jICoqIERPIE5PVCBFRElUICoqDQotDQotIyBUQVJHVFlQRSAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiIDB4MDEwMg0KLQ0KLUNGRz11bmljb2RlZGF0YSAtIFdpbjMyIERlYnVnDQotIU1FU1NBR0UgVGhpcyBpcyBub3QgYSB2YWxpZCBtYWtlZmlsZS4gVG8gYnVpbGQgdGhpcyBwcm9qZWN0IHVzaW5nIE5NQUtFLA0KLSFNRVNTQUdFIHVzZSB0aGUgRXhwb3J0IE1ha2VmaWxlIGNvbW1hbmQgYW5kIHJ1bg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIE5NQUtFIC9mICJ1bmljb2RlZGF0YS5tYWsiLg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIFlvdSBjYW4gc3BlY2lmeSBhIGNvbmZpZ3VyYXRpb24gd2hlbiBydW5uaW5nIE5NQUtFDQotIU1FU1NBR0UgYnkgZGVmaW5pbmcgdGhlIG1hY3JvIENGRyBvbiB0aGUgY29tbWFuZCBsaW5lLiBGb3IgZXhhbXBsZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBOTUFLRSAvZiAidW5pY29kZWRhdGEubWFrIiBDRkc9InVuaWNvZGVkYXRhIC0gV2luMzIgRGVidWciDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgUG9zc2libGUgY2hvaWNlcyBmb3IgY29uZmlndXJhdGlvbiBhcmU6DQotIU1FU1NBR0UgDQotIU1FU1NBR0UgInVuaWNvZGVkYXRhIC0gV2luMzIgUmVsZWFzZSIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpDQotIU1FU1NBR0UgInVuaWNvZGVkYXRhIC0gV2luMzIgRGVidWciIChiYXNlZCBvbiAiV2luMzIgKHg4NikgRHluYW1pYy1MaW5rIExpYnJhcnkiKQ0KLSFNRVNTQUdFIA0KLQ0KLSMgQmVnaW4gUHJvamVjdA0KLSMgUFJPUCBBbGxvd1BlckNvbmZpZ0RlcGVuZGVuY2llcyAwDQotIyBQUk9QIFNjY19Qcm9qTmFtZSAidW5pY29kZWRhdGEiDQotIyBQUk9QIFNjY19Mb2NhbFBhdGggIi4uIg0KLUNQUD1jbC5leGUNCi1NVEw9bWlkbC5leGUNCi1SU0M9cmMuZXhlDQotDQotIUlGICAiJChDRkcpIiA9PSAidW5pY29kZWRhdGEgLSBXaW4zMiBSZWxlYXNlIg0KLQ0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMA0KLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgSW50ZXJtZWRpYXRlX0RpciAiUmVsZWFzZSINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtcmVsZWFzZVx1bmljb2RlZGF0YSINCi0jIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMA0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotRjkwPWRmLmV4ZQ0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01UIC9XMyAvR1ggL08yIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIldJTjMyIiAvRCAiTkRFQlVHIiAvRCAiX1dJTkRPV1MiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJNTUFQX0VYUE9SVFMiIC9ZWCAvRkQgL2MNCi0jIEFERCBDUFAgL25vbG9nbyAvTUQgL1czIC9HWCAvTzIgL0kgIi4uXC4uXEluY2x1ZGUiIC9JICIuLiIgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfV0lORE9XUyIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIk1NQVBfRVhQT1JUUyIgL1lYIC9GRCAvYw0KLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC93aW4zMg0KLSMgQUREIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvd2luMzINCi0jIEFERCBCQVNFIFJTQyAvbCAweGMwOSAvZCAiTkRFQlVHIg0KLSMgQUREIFJTQyAvbCAweGMwOSAvZCAiTkRFQlVHIg0KLUJTQzMyPWJzY21ha2UuZXhlDQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQotIyBBREQgQlNDMzIgL25vbG9nbw0KLUxJTkszMj1saW5rLmV4ZQ0KLSMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL2RsbCAvbWFjaGluZTpJMzg2DQotIyBBREQgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL2Jhc2U6IjB4MUQxMjAwMDAiIC9kbGwgL21hY2hpbmU6STM4NiAvb3V0OiIuL3VuaWNvZGVkYXRhLnB5ZCINCi0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUNCi0NCi0hRUxTRUlGICAiJChDRkcpIiA9PSAidW5pY29kZWRhdGEgLSBXaW4zMiBEZWJ1ZyINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtZGVidWdcdW5pY29kZWRhdGEiDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLUY5MD1kZi5leGUNCi0jIEFERCBCQVNFIENQUCAvbm9sb2dvIC9NVGQgL1czIC9HbSAvR1ggL1pJIC9PZCAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIl9ERUJVRyIgL0QgIl9XSU5ET1dTIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTU1BUF9FWFBPUlRTIiAvWVggL0ZEIC9HWiAvYw0KLSMgQUREIENQUCAvbm9sb2dvIC9NRGQgL1czIC9HbSAvR1ggL1ppIC9PZCAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIl9ERUJVRyIgL0QgIl9XSU5ET1dTIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiTU1BUF9FWFBPUlRTIiAvWVggL0ZEIC9HWiAvYw0KLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIl9ERUJVRyIgL21rdHlwbGliMjAzIC93aW4zMg0KLSMgQUREIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvd2luMzINCi0jIEFERCBCQVNFIFJTQyAvbCAweGMwOSAvZCAiX0RFQlVHIg0KLSMgQUREIFJTQyAvbCAweGMwOSAvZCAiX0RFQlVHIg0KLUJTQzMyPWJzY21ha2UuZXhlDQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQotIyBBREQgQlNDMzIgL25vbG9nbw0KLUxJTkszMj1saW5rLmV4ZQ0KLSMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL2Jhc2U6IjB4MUQxMjAwMDAiIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL291dDoiLi91bmljb2RlZGF0YV9kLnB5ZCIgL3BkYnR5cGU6c2VwdA0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTkRJRiANCi0NCi0jIEJlZ2luIFRhcmdldA0KLQ0KLSMgTmFtZSAidW5pY29kZWRhdGEgLSBXaW4zMiBSZWxlYXNlIg0KLSMgTmFtZSAidW5pY29kZWRhdGEgLSBXaW4zMiBEZWJ1ZyINCi0jIEJlZ2luIFNvdXJjZSBGaWxlDQotDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcdW5pY29kZWRhdGEuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBFbmQgVGFyZ2V0DQotIyBFbmQgUHJvamVjdA0KZGlmZiAtLWdpdCBhL1BDL1ZDNi93OXhwb3Blbi5kc3AgYi9QQy9WQzYvdzl4cG9wZW4uZHNwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YTY0MDNjLi4wMDAwMDAwCi0tLSBhL1BDL1ZDNi93OXhwb3Blbi5kc3AKKysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBACi0jIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIFByb2plY3QgRmlsZSAtIE5hbWU9Inc5eHBvcGVuIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBHZW5lcmF0ZWQgQnVpbGQgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMA0KLSMgKiogRE8gTk9UIEVESVQgKioNCi0NCi0jIFRBUkdUWVBFICJXaW4zMiAoeDg2KSBBcHBsaWNhdGlvbiIgMHgwMTAxDQotDQotQ0ZHPXc5eHBvcGVuIC0gV2luMzIgRGVidWcNCi0hTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsDQotIU1FU1NBR0UgdXNlIHRoZSBFeHBvcnQgTWFrZWZpbGUgY29tbWFuZCBhbmQgcnVuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgInc5eHBvcGVuLm1hayIuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgWW91IGNhbiBzcGVjaWZ5IGEgY29uZmlndXJhdGlvbiB3aGVuIHJ1bm5pbmcgTk1BS0UNCi0hTUVTU0FHRSBieSBkZWZpbmluZyB0aGUgbWFjcm8gQ0ZHIG9uIHRoZSBjb21tYW5kIGxpbmUuIEZvciBleGFtcGxlOg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIE5NQUtFIC9mICJ3OXhwb3Blbi5tYWsiIENGRz0idzl4cG9wZW4gLSBXaW4zMiBEZWJ1ZyINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAidzl4cG9wZW4gLSBXaW4zMiBSZWxlYXNlIiAoYmFzZWQgb24gIldpbjMyICh4ODYpIEFwcGxpY2F0aW9uIikNCi0hTUVTU0FHRSAidzl4cG9wZW4gLSBXaW4zMiBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBBcHBsaWNhdGlvbiIpDQotIU1FU1NBR0UgDQotDQotIyBCZWdpbiBQcm9qZWN0DQotIyBQUk9QIEFsbG93UGVyQ29uZmlnRGVwZW5kZW5jaWVzIDANCi0jIFBST1AgU2NjX1Byb2pOYW1lICIiDQotIyBQUk9QIFNjY19Mb2NhbFBhdGggIiINCi1DUFA9Y2wuZXhlDQotTVRMPW1pZGwuZXhlDQotUlNDPXJjLmV4ZQ0KLQ0KLSFJRiAgIiQoQ0ZHKSIgPT0gInc5eHBvcGVuIC0gV2luMzIgUmVsZWFzZSINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDANCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJSZWxlYXNlIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIlJlbGVhc2UiDQotIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiIg0KLSMgUFJPUCBVc2VfTUZDIDANCi0jIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQotIyBQUk9QIE91dHB1dF9EaXIgIi4iDQotIyBQUk9QIEludGVybWVkaWF0ZV9EaXIgIng4Ni10ZW1wLXJlbGVhc2Vcdzl4cG9wZW4iDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL1czIC9HWCAvTzIgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfV0lORE9XUyIgL0QgIl9NQkNTIiAvWVggL0ZEIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EIC9XMyAvR1ggL08yIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIldJTjMyIiAvRCAiTkRFQlVHIiAvRCAiX1dJTkRPV1MiIC9EICJfTUJDUyIgL1lYIC9GRCAvYw0KLSMgQUREIEJBU0UgTVRMIC9ub2xvZ28gL0QgIk5ERUJVRyIgL21rdHlwbGliMjAzIC93aW4zMg0KLSMgQUREIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvd2luMzINCi0jIEFERCBCQVNFIFJTQyAvbCAweGMwOSAvZCAiTkRFQlVHIg0KLSMgQUREIFJTQyAvbCAweGMwOSAvZCAiTkRFQlVHIg0KLUJTQzMyPWJzY21ha2UuZXhlDQotIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvDQotIyBBREQgQlNDMzIgL25vbG9nbw0KLUxJTkszMj1saW5rLmV4ZQ0KLSMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9tYWNoaW5lOkkzODYNCi0jIEFERCBMSU5LMzIgdXNlcjMyLmxpYiAvbm9sb2dvIC9tYWNoaW5lOkkzODYNCi0jIFNVQlRSQUNUIExJTkszMiAvcGRiOm5vbmUNCi0NCi0hRUxTRUlGICAiJChDRkcpIiA9PSAidzl4cG9wZW4gLSBXaW4zMiBEZWJ1ZyINCi0NCi0jIFBST1AgQkFTRSBVc2VfTUZDIDANCi0jIFBST1AgQkFTRSBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgQkFTRSBPdXRwdXRfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJEZWJ1ZyINCi0jIFBST1AgQkFTRSBUYXJnZXRfRGlyICIiDQotIyBQUk9QIFVzZV9NRkMgMA0KLSMgUFJPUCBVc2VfRGVidWdfTGlicmFyaWVzIDENCi0jIFBST1AgT3V0cHV0X0RpciAiLiINCi0jIFBST1AgSW50ZXJtZWRpYXRlX0RpciAieDg2LXRlbXAtZGVidWdcdzl4cG9wZW4iDQotIyBQUk9QIElnbm9yZV9FeHBvcnRfTGliIDANCi0jIFBST1AgVGFyZ2V0X0RpciAiIg0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL1czIC9HbSAvR1ggL1pJIC9PZCAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIl9ERUJVRyIgL0QgIl9XSU5ET1dTIiAvRCAiX01CQ1MiIC9ZWCAvRkQgL0daIC9jDQotIyBBREQgQ1BQIC9ub2xvZ28gL01EZCAvVzMgL0dtIC9HWCAvWmkgL09kIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIldJTjMyIiAvRCAiX0RFQlVHIiAvRCAiX1dJTkRPV1MiIC9EICJfTUJDUyIgL1lYIC9GRCAvR1ogL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvd2luMzINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL3dpbjMyDQotIyBBREQgQkFTRSBSU0MgL2wgMHhjMDkgL2QgIl9ERUJVRyINCi0jIEFERCBSU0MgL2wgMHhjMDkgL2QgIl9ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9zdWJzeXN0ZW06d2luZG93cyAvZGVidWcgL21hY2hpbmU6STM4NiAvcGRidHlwZTpzZXB0DQotIyBBREQgTElOSzMyIHVzZXIzMi5saWIgL25vbG9nbyAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuL3c5eHBvcGVuX2QuZXhlIiAvcGRidHlwZTpzZXB0DQotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lDQotDQotIUVORElGIA0KLQ0KLSMgQmVnaW4gVGFyZ2V0DQotDQotIyBOYW1lICJ3OXhwb3BlbiAtIFdpbjMyIFJlbGVhc2UiDQotIyBOYW1lICJ3OXhwb3BlbiAtIFdpbjMyIERlYnVnIg0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cdzl4cG9wZW4uYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBFbmQgVGFyZ2V0DQotIyBFbmQgUHJvamVjdA0KZGlmZiAtLWdpdCBhL1BDL1ZDNi93aW5zb3VuZC5kc3AgYi9QQy9WQzYvd2luc291bmQuZHNwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTA5YjliLi4wMDAwMDAwCi0tLSBhL1BDL1ZDNi93aW5zb3VuZC5kc3AKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBACi0jIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIFByb2plY3QgRmlsZSAtIE5hbWU9IndpbnNvdW5kIiAtIFBhY2thZ2UgT3duZXI9PDQ+DQotIyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBHZW5lcmF0ZWQgQnVpbGQgRmlsZSwgRm9ybWF0IFZlcnNpb24gNi4wMA0KLSMgKiogRE8gTk9UIEVESVQgKioNCi0NCi0jIFRBUkdUWVBFICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIgMHgwMTAyDQotDQotQ0ZHPXdpbnNvdW5kIC0gV2luMzIgRGVidWcNCi0hTUVTU0FHRSBUaGlzIGlzIG5vdCBhIHZhbGlkIG1ha2VmaWxlLiBUbyBidWlsZCB0aGlzIHByb2plY3QgdXNpbmcgTk1BS0UsDQotIU1FU1NBR0UgdXNlIHRoZSBFeHBvcnQgTWFrZWZpbGUgY29tbWFuZCBhbmQgcnVuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgTk1BS0UgL2YgIndpbnNvdW5kLm1hayIuDQotIU1FU1NBR0UgDQotIU1FU1NBR0UgWW91IGNhbiBzcGVjaWZ5IGEgY29uZmlndXJhdGlvbiB3aGVuIHJ1bm5pbmcgTk1BS0UNCi0hTUVTU0FHRSBieSBkZWZpbmluZyB0aGUgbWFjcm8gQ0ZHIG9uIHRoZSBjb21tYW5kIGxpbmUuIEZvciBleGFtcGxlOg0KLSFNRVNTQUdFIA0KLSFNRVNTQUdFIE5NQUtFIC9mICJ3aW5zb3VuZC5tYWsiIENGRz0id2luc291bmQgLSBXaW4zMiBEZWJ1ZyINCi0hTUVTU0FHRSANCi0hTUVTU0FHRSBQb3NzaWJsZSBjaG9pY2VzIGZvciBjb25maWd1cmF0aW9uIGFyZToNCi0hTUVTU0FHRSANCi0hTUVTU0FHRSAid2luc291bmQgLSBXaW4zMiBSZWxlYXNlIiAoYmFzZWQgb24gIldpbjMyICh4ODYpIER5bmFtaWMtTGluayBMaWJyYXJ5IikNCi0hTUVTU0FHRSAid2luc291bmQgLSBXaW4zMiBEZWJ1ZyIgKGJhc2VkIG9uICJXaW4zMiAoeDg2KSBEeW5hbWljLUxpbmsgTGlicmFyeSIpDQotIU1FU1NBR0UgDQotDQotIyBCZWdpbiBQcm9qZWN0DQotIyBQUk9QIEFsbG93UGVyQ29uZmlnRGVwZW5kZW5jaWVzIDANCi0jIFBST1AgU2NjX1Byb2pOYW1lICJ3aW5zb3VuZCINCi0jIFBST1AgU2NjX0xvY2FsUGF0aCAiLi5ccGMiDQotQ1BQPWNsLmV4ZQ0KLU1UTD1taWRsLmV4ZQ0KLVJTQz1yYy5leGUNCi0NCi0hSUYgICIkKENGRykiID09ICJ3aW5zb3VuZCAtIFdpbjMyIFJlbGVhc2UiDQotDQotIyBQUk9QIEJBU0UgVXNlX01GQyAwDQotIyBQUk9QIEJBU0UgVXNlX0RlYnVnX0xpYnJhcmllcyAwDQotIyBQUk9QIEJBU0UgT3V0cHV0X0RpciAiUmVsZWFzZSINCi0jIFBST1AgQkFTRSBJbnRlcm1lZGlhdGVfRGlyICJSZWxlYXNlIg0KLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiINCi0jIFBST1AgVXNlX01GQyAwDQotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMA0KLSMgUFJPUCBPdXRwdXRfRGlyICIuIg0KLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJ4ODYtdGVtcC1yZWxlYXNlXHdpbnNvdW5kIg0KLSMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwDQotIyBQUk9QIFRhcmdldF9EaXIgIiINCi1GOTA9ZGYuZXhlDQotIyBBREQgQkFTRSBDUFAgL25vbG9nbyAvTVQgL1czIC9HWCAvTzIgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfV0lORE9XUyIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIldJTlNPVU5EX0VYUE9SVFMiIC9ZWCAvRkQgL2MNCi0jIEFERCBDUFAgL25vbG9nbyAvTUQgL1czIC9HWCAvTzIgL0kgIi4uXC4uXEluY2x1ZGUiIC9JICIuLiIgL0QgIlB5X0JVSUxEX0NPUkVfTU9EVUxFIiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfV0lORE9XUyIgL0QgIl9NQkNTIiAvRCAiX1VTUkRMTCIgL0QgIldJTlNPVU5EX0VYUE9SVFMiIC9ZWCAvRkQgL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJOREVCVUciIC9ta3R5cGxpYjIwMyAvd2luMzINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiTkRFQlVHIiAvbWt0eXBsaWIyMDMgL3dpbjMyDQotIyBBREQgQkFTRSBSU0MgL2wgMHhjMDkgL2QgIk5ERUJVRyINCi0jIEFERCBSU0MgL2wgMHhjMDkgL2QgIk5ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9kbGwgL21hY2hpbmU6STM4Ng0KLSMgQUREIExJTkszMiBrZXJuZWwzMi5saWIgd2lubW0ubGliIHVzZXIzMi5saWIgL25vbG9nbyAvYmFzZToiMHgxRDE2MDAwMCIgL2RsbCAvbWFjaGluZTpJMzg2IC9vdXQ6Ii4vd2luc291bmQucHlkIg0KLSMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KLQ0KLSFFTFNFSUYgICIkKENGRykiID09ICJ3aW5zb3VuZCAtIFdpbjMyIERlYnVnIg0KLQ0KLSMgUFJPUCBCQVNFIFVzZV9NRkMgMA0KLSMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQ0KLSMgUFJPUCBCQVNFIE91dHB1dF9EaXIgIkRlYnVnIg0KLSMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIkRlYnVnIg0KLSMgUFJPUCBCQVNFIFRhcmdldF9EaXIgIiINCi0jIFBST1AgVXNlX01GQyAwDQotIyBQUk9QIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMQ0KLSMgUFJPUCBPdXRwdXRfRGlyICIuIg0KLSMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICJ4ODYtdGVtcC1kZWJ1Z1x3aW5zb3VuZCINCi0jIFBST1AgSWdub3JlX0V4cG9ydF9MaWIgMA0KLSMgUFJPUCBUYXJnZXRfRGlyICIiDQotRjkwPWRmLmV4ZQ0KLSMgQUREIEJBU0UgQ1BQIC9ub2xvZ28gL01UZCAvVzMgL0dtIC9HWCAvWkkgL09kIC9EICJQeV9CVUlMRF9DT1JFX01PRFVMRSIgL0QgIldJTjMyIiAvRCAiX0RFQlVHIiAvRCAiX1dJTkRPV1MiIC9EICJfTUJDUyIgL0QgIl9VU1JETEwiIC9EICJXSU5TT1VORF9FWFBPUlRTIiAvWVggL0ZEIC9HWiAvYw0KLSMgQUREIENQUCAvbm9sb2dvIC9NRGQgL1czIC9HbSAvR1ggL1ppIC9PZCAvSSAiLi5cLi5cSW5jbHVkZSIgL0kgIi4uIiAvRCAiUHlfQlVJTERfQ09SRV9NT0RVTEUiIC9EICJXSU4zMiIgL0QgIl9ERUJVRyIgL0QgIl9XSU5ET1dTIiAvRCAiX01CQ1MiIC9EICJfVVNSRExMIiAvRCAiV0lOU09VTkRfRVhQT1JUUyIgL1lYIC9GRCAvR1ogL2MNCi0jIEFERCBCQVNFIE1UTCAvbm9sb2dvIC9EICJfREVCVUciIC9ta3R5cGxpYjIwMyAvd2luMzINCi0jIEFERCBNVEwgL25vbG9nbyAvRCAiX0RFQlVHIiAvbWt0eXBsaWIyMDMgL3dpbjMyDQotIyBBREQgQkFTRSBSU0MgL2wgMHhjMDkgL2QgIl9ERUJVRyINCi0jIEFERCBSU0MgL2wgMHhjMDkgL2QgIl9ERUJVRyINCi1CU0MzMj1ic2NtYWtlLmV4ZQ0KLSMgQUREIEJBU0UgQlNDMzIgL25vbG9nbw0KLSMgQUREIEJTQzMyIC9ub2xvZ28NCi1MSU5LMzI9bGluay5leGUNCi0jIEFERCBCQVNFIExJTkszMiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBnZGkzMi5saWIgd2luc3Bvb2wubGliIGNvbWRsZzMyLmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlkLmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiAvbm9sb2dvIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiB1c2VyMzIubGliIGtlcm5lbDMyLmxpYiB3aW5tbS5saWIgL25vbG9nbyAvYmFzZToiMHgxRDE2MDAwMCIgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvb3V0OiIuL3dpbnNvdW5kX2QucHlkIiAvcGRidHlwZTpzZXB0DQotIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lDQotDQotIUVORElGIA0KLQ0KLSMgQmVnaW4gVGFyZ2V0DQotDQotIyBOYW1lICJ3aW5zb3VuZCAtIFdpbjMyIFJlbGVhc2UiDQotIyBOYW1lICJ3aW5zb3VuZCAtIFdpbjMyIERlYnVnIg0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCi1TT1VSQ0U9Li5cd2luc291bmQuYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBFbmQgVGFyZ2V0DQotIyBFbmQgUHJvamVjdA0KZGlmZiAtLWdpdCBhL1BDL1ZTNy4xL1VuaW5zdGFsLndzZSBiL1BDL1ZTNy4xL1VuaW5zdGFsLndzZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjE2ZGQzMC4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9Vbmluc3RhbC53c2UKKysrIC9kZXYvbnVsbApAQCAtMSw1MTQgKzAsMCBAQAotRG9jdW1lbnQgVHlwZTogV1NFCi1pdGVtOiBHbG9iYWwKLSAgVmVyc2lvbj04LjE0Ci0gIEZsYWdzPTAwMDAwMTAwCi0gIFNwbGl0PTE0MjAKLSAgTGFuZ3VhZ2VzPTY1IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwCi0gIENvcHkgRGVmYXVsdD0xCi0gIEphcGFuZXNlIEZvbnQgTmFtZT1NUyBHb3RoaWMKLSAgSmFwYW5lc2UgRm9udCBTaXplPTEwCi0gIFN0YXJ0IEdyYWRpZW50PTAgMCAyNTUKLSAgRW5kIEdyYWRpZW50PTAgMCAwCi0gIFdpbmRvd3MgRmxhZ3M9MDAwMDAwMDAwMDAwMDAwMDAwMDAxMDEwMDAwMDEwMDAKLSAgTWVzc2FnZSBGb250PU1TIFNhbnMgU2VyaWYKLSAgRm9udCBTaXplPTgKLSAgRGlzayBMYWJlbD1HTEJTCi0gIERpc2sgRmlsZW5hbWU9SU5TVEFMTAotICBQYXRjaCBGbGFncz0wMDAwMDAwMDAwMDAwMDAxCi0gIFBhdGNoIFRocmVzaG9sZD0yMDAKLSAgUGF0Y2ggTWVtb3J5PTQwOTYKLSAgUGVyLVVzZXIgVmVyc2lvbiBJRD0xCi0gIENyeXN0YWwgRm9ybWF0PTEwMTExMTAwMTAxMTAwMDAwMDEwMDAxMDAxMDAxMDAxCi0gIFN0ZXAgVmlldz0mUHJvcGVydGllcwotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1Ob3RlIGZyb20gVGltOiAgVGhpcyBpcyBhIHZlcmJhdGltIGNvcHkgb2YgV2lzZSdzIFVuaW5zdGFsLndzZSwgYWx0ZXJlZCBhdCB0aGUgZW5kIHRvIHdyaXRlCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PXVuaW5zdGFsbCBpbmZvIHVuZGVyIEhLQ1UgaW5zdGVhZCBvZiBIS0xNIGlmIG91ciBET0FETUlOIHZhciBpcyBmYWxzZS4KLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PSAgICAgSW5zdGFsbCBTdXBwb3J0IGZvciB1bmluc3RhbGxpbmcgdGhlIGFwcGxpY2F0aW9uLgotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPVVOSU5TVEFMTF9QQVRICi0gIFZhbHVlPSVfTE9HRklMRV9QQVRIXyUKLSAgRmxhZ3M9MDAwMDAwMTAKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPVVOSU5TVEFMTF9QQVRICi0gIFZhbHVlPSVVTklOU1RBTExfUEFUSCVcVU5XSVNFLkVYRQotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBJZgotICBWYXJpYWJsZT1fRVhFX09TX1RZUEVfCi0gIFZhbHVlPVdJTjMyCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9JV9XSVNFXyVcVU5XSVNFMzIuRVhFCi0gIERlc3RpbmF0aW9uPSVVTklOU1RBTExfUEFUSCUKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBFbHNlCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9JV9XSVNFXyVcVU5XSVNFLkVYRQotICBEZXN0aW5hdGlvbj0lVU5JTlNUQUxMX1BBVEglCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgRW5kCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD0gICAgIEluc3RhbGwgU3VwcG9ydCBmb3IgbXVsdGlwbGUgbGFuZ3VhZ2VzCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9VU5JTlNUQUxMX0xBTkcKLSAgVmFsdWU9JVVOSU5TVEFMTF9QQVRIJQotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9VU5JTlNUQUxMX0xBTkcKLSAgVmFsdWU9JVVOSU5TVEFMTF9MQU5HJVxVTldJU0UuSU5JCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIElmCi0gIFZhcmlhYmxlPV9MQU5HX0xJU1RfCi0gIFZhbHVlPUMKLSAgRmxhZ3M9MDAwMDAwMTAKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgSWYKLSAgVmFsdWU9JV9XSVNFXyVcTEFOR1VBR0VcVU5XSVNFLkZSQQotICBGbGFncz0wMDAwMDAxMQotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9TEFORwotICBWYWx1ZT0lX0xBTkdfQ19OQU1FXyUKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0lX1dJU0VfJVxMQU5HVUFHRVxVTldJU0UuRlJBCi0gIERlc3RpbmF0aW9uPSVVTklOU1RBTExfTEFORyUKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgRW5kCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIEVuZAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBJZgotICBWYXJpYWJsZT1fTEFOR19MSVNUXwotICBWYWx1ZT1ECi0gIEZsYWdzPTAwMDAwMDEwCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIElmCi0gIFZhbHVlPSVfV0lTRV8lXExBTkdVQUdFXFVOV0lTRS5GUkEKLSAgRmxhZ3M9MDAwMDAwMTEKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPUxBTkcKLSAgVmFsdWU9JV9MQU5HX0RfTkFNRV8lCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9JV9XSVNFXyVcTEFOR1VBR0VcVU5XSVNFLkZSQQotICBEZXN0aW5hdGlvbj0lVU5JTlNUQUxMX0xBTkclCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIEVuZAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBFbmQKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgSWYKLSAgVmFyaWFibGU9X0xBTkdfTElTVF8KLSAgVmFsdWU9RQotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBJZgotICBWYWx1ZT0lX1dJU0VfJVxMQU5HVUFHRVxVTldJU0UuREVVCi0gIEZsYWdzPTAwMDAwMDExCi1lbmQKLWl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICBWYXJpYWJsZT1MQU5HCi0gIFZhbHVlPSVfTEFOR19FX05BTUVfJQotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPSVfV0lTRV8lXExBTkdVQUdFXFVOV0lTRS5ERVUKLSAgRGVzdGluYXRpb249JVVOSU5TVEFMTF9MQU5HJQotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBFbmQKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgRW5kCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIElmCi0gIFZhcmlhYmxlPV9MQU5HX0xJU1RfCi0gIFZhbHVlPUYKLSAgRmxhZ3M9MDAwMDAwMTAKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgSWYKLSAgVmFsdWU9JV9XSVNFXyVcTEFOR1VBR0VcVU5XSVNFLlBURwotICBGbGFncz0wMDAwMDAxMQotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9TEFORwotICBWYWx1ZT0lX0xBTkdfRl9OQU1FXyUKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0lX1dJU0VfJVxMQU5HVUFHRVxVTldJU0UuUFRHCi0gIERlc3RpbmF0aW9uPSVVTklOU1RBTExfTEFORyUKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgRW5kCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIEVuZAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBJZgotICBWYXJpYWJsZT1fTEFOR19MSVNUXwotICBWYWx1ZT1HCi0gIEZsYWdzPTAwMDAwMDEwCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIElmCi0gIFZhbHVlPSVfV0lTRV8lXExBTkdVQUdFXFVOV0lTRS5FU1AKLSAgRmxhZ3M9MDAwMDAwMTEKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPUxBTkcKLSAgVmFsdWU9JV9MQU5HX0dfTkFNRV8lCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9JV9XSVNFXyVcTEFOR1VBR0VcVU5XSVNFLkVTUAotICBEZXN0aW5hdGlvbj0lVU5JTlNUQUxMX0xBTkclCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIEVuZAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBFbmQKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgSWYKLSAgVmFyaWFibGU9X0xBTkdfTElTVF8KLSAgVmFsdWU9SAotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBJZgotICBWYWx1ZT0lX1dJU0VfJVxMQU5HVUFHRVxVTldJU0UuRVNQCi0gIEZsYWdzPTAwMDAwMDExCi1lbmQKLWl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICBWYXJpYWJsZT1MQU5HCi0gIFZhbHVlPSVfTEFOR19IX05BTUVfJQotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPSVfV0lTRV8lXExBTkdVQUdFXFVOV0lTRS5FU1AKLSAgRGVzdGluYXRpb249JVVOSU5TVEFMTF9MQU5HJQotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBFbmQKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgRW5kCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIElmCi0gIFZhcmlhYmxlPV9MQU5HX0xJU1RfCi0gIFZhbHVlPUkKLSAgRmxhZ3M9MDAwMDAwMTAKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgSWYKLSAgVmFsdWU9JV9XSVNFXyVcTEFOR1VBR0VcVU5XSVNFLklUQQotICBGbGFncz0wMDAwMDAxMQotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9TEFORwotICBWYWx1ZT0lX0xBTkdfSV9OQU1FXyUKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0lX1dJU0VfJVxMQU5HVUFHRVxVTldJU0UuSVRBCi0gIERlc3RpbmF0aW9uPSVVTklOU1RBTExfTEFORyUKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgRW5kCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIEVuZAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBJZgotICBWYXJpYWJsZT1fTEFOR19MSVNUXwotICBWYWx1ZT1KCi0gIEZsYWdzPTAwMDAwMDEwCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIElmCi0gIFZhbHVlPSVfV0lTRV8lXExBTkdVQUdFXFVOV0lTRS5EQU4KLSAgRmxhZ3M9MDAwMDAwMTEKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPUxBTkcKLSAgVmFsdWU9JV9MQU5HX0pfTkFNRV8lCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9JV9XSVNFXyVcTEFOR1VBR0VcVU5XSVNFLkRBTgotICBEZXN0aW5hdGlvbj0lVU5JTlNUQUxMX0xBTkclCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIEVuZAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBFbmQKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgSWYKLSAgVmFyaWFibGU9X0xBTkdfTElTVF8KLSAgVmFsdWU9SwotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBJZgotICBWYWx1ZT0lX1dJU0VfJVxMQU5HVUFHRVxVTldJU0UuRklOCi0gIEZsYWdzPTAwMDAwMDExCi1lbmQKLWl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICBWYXJpYWJsZT1MQU5HCi0gIFZhbHVlPSVfTEFOR19LX05BTUVfJQotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPSVfV0lTRV8lXExBTkdVQUdFXFVOV0lTRS5GSU4KLSAgRGVzdGluYXRpb249JVVOSU5TVEFMTF9MQU5HJQotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBFbmQKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgRW5kCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIElmCi0gIFZhcmlhYmxlPV9MQU5HX0xJU1RfCi0gIFZhbHVlPUwKLSAgRmxhZ3M9MDAwMDAwMTAKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgSWYKLSAgVmFsdWU9JV9XSVNFXyVcTEFOR1VBR0VcVU5XSVNFLklTTAotICBGbGFncz0wMDAwMDAxMQotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9TEFORwotICBWYWx1ZT0lX0xBTkdfTF9OQU1FXyUKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0lX1dJU0VfJVxMQU5HVUFHRVxVTldJU0UuSVNMCi0gIERlc3RpbmF0aW9uPSVVTklOU1RBTExfTEFORyUKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgRW5kCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIEVuZAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBJZgotICBWYXJpYWJsZT1fTEFOR19MSVNUXwotICBWYWx1ZT1NCi0gIEZsYWdzPTAwMDAwMDEwCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIElmCi0gIFZhbHVlPSVfV0lTRV8lXExBTkdVQUdFXFVOV0lTRS5OTEQKLSAgRmxhZ3M9MDAwMDAwMTEKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPUxBTkcKLSAgVmFsdWU9JV9MQU5HX01fTkFNRV8lCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9JV9XSVNFXyVcTEFOR1VBR0VcVU5XSVNFLk5MRAotICBEZXN0aW5hdGlvbj0lVU5JTlNUQUxMX0xBTkclCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIEVuZAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBFbmQKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgSWYKLSAgVmFyaWFibGU9X0xBTkdfTElTVF8KLSAgVmFsdWU9TgotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBJZgotICBWYWx1ZT0lX1dJU0VfJVxMQU5HVUFHRVxVTldJU0UuTk9SCi0gIEZsYWdzPTAwMDAwMDExCi1lbmQKLWl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICBWYXJpYWJsZT1MQU5HCi0gIFZhbHVlPSVfTEFOR19OX05BTUVfJQotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPSVfV0lTRV8lXExBTkdVQUdFXFVOV0lTRS5OT1IKLSAgRGVzdGluYXRpb249JVVOSU5TVEFMTF9MQU5HJQotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBFbmQKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgRW5kCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIElmCi0gIFZhcmlhYmxlPV9MQU5HX0xJU1RfCi0gIFZhbHVlPU8KLSAgRmxhZ3M9MDAwMDAwMTAKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgSWYKLSAgVmFsdWU9JV9XSVNFXyVcTEFOR1VBR0VcVU5XSVNFLlNWRQotICBGbGFncz0wMDAwMDAxMQotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9TEFORwotICBWYWx1ZT0lX0xBTkdfT19OQU1FXyUKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0lX1dJU0VfJVxMQU5HVUFHRVxVTldJU0UuU1ZFCi0gIERlc3RpbmF0aW9uPSVVTklOU1RBTExfTEFORyUKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogQ29tcGlsZXIgVmFyaWFibGUgRW5kCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIEVuZAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBJZgotICBWYXJpYWJsZT1fTEFOR19MSVNUXwotICBWYWx1ZT1QCi0gIEZsYWdzPTAwMDAwMDEwCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIElmCi0gIFZhbHVlPSVfV0lTRV8lXExBTkdVQUdFXFVOV0lTRS5KUE4KLSAgRmxhZ3M9MDAwMDAwMTEKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPUxBTkcKLSAgVmFsdWU9JV9MQU5HX1BfTkFNRV8lCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9JV9XSVNFXyVcTEFOR1VBR0VcVU5XSVNFLkpQTgotICBEZXN0aW5hdGlvbj0lVU5JTlNUQUxMX0xBTkclCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IENvbXBpbGVyIFZhcmlhYmxlIEVuZAotZW5kCi1pdGVtOiBDb21waWxlciBWYXJpYWJsZSBFbmQKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PSAgICAgSW5zdGFsbCB0aGUgYWRkL3JlbW92ZSBvciB1bmluc3RhbGwgaWNvbgotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPVVOSU5TVEFMTF9QQVRICi0gIFZhbHVlPSVVTklOU1RBTExfUEFUSCUKLSAgRmxhZ3M9MDAwMTAxMDAKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPUlOU1RfTE9HX1BBVEgKLSAgVmFsdWU9JV9MT0dGSUxFX1BBVEhfJQotICBGbGFncz0wMDAxMDEwMAotZW5kCi1pdGVtOiBDaGVjayBDb25maWd1cmF0aW9uCi0gIEZsYWdzPTEwMTExMDExCi1lbmQKLWl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICBWYXJpYWJsZT1ET0FETUlOCi0gIFZhbHVlPTEKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9V3JpdGUgdW5pbnN0YWxsIGluZm8gdW5kZXIgSEtMTS4gIFRoaXMgaWYvZWxzZS9lbmQgYmxvY2sgYWRkZWQgYnkgVGltLgotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9U29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cVW5pbnN0YWxsXCVBUFBUSVRMRSUKLSAgTmV3IFZhbHVlPSVBUFBUSVRMRSUKLSAgVmFsdWUgTmFtZT1EaXNwbGF5TmFtZQotICBSb290PTIKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVNvZnR3YXJlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVuaW5zdGFsbFwlQVBQVElUTEUlCi0gIE5ldyBWYWx1ZT0lVU5JTlNUQUxMX1BBVEglICVJTlNUX0xPR19QQVRIJQotICBOZXcgVmFsdWU9Ci0gIFZhbHVlIE5hbWU9VW5pbnN0YWxsU3RyaW5nCi0gIFJvb3Q9MgotZW5kCi1pdGVtOiBFbHNlIFN0YXRlbWVudAotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1UaGUgc2FtZSwgYnV0IHdyaXRlIHVuZGVyIEhLQ1UgaW5zdGVhZC4KLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVNvZnR3YXJlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVuaW5zdGFsbFwlQVBQVElUTEUlCi0gIE5ldyBWYWx1ZT0lQVBQVElUTEUlCi0gIFZhbHVlIE5hbWU9RGlzcGxheU5hbWUKLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxVbmluc3RhbGxcJUFQUFRJVExFJQotICBOZXcgVmFsdWU9JVVOSU5TVEFMTF9QQVRIJSAlSU5TVF9MT0dfUEFUSCUKLSAgTmV3IFZhbHVlPQotICBWYWx1ZSBOYW1lPVVuaW5zdGFsbFN0cmluZwotICBSb290PTEKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IEVsc2UgU3RhdGVtZW50Ci1lbmQKLWl0ZW06IEFkZCBQcm9nTWFuIEljb24KLSAgR3JvdXA9JUdST1VQJQotICBJY29uIE5hbWU9VW5pbnN0YWxsICVBUFBUSVRMRSUKLSAgQ29tbWFuZCBMaW5lPSVVTklOU1RBTExfUEFUSCUgJUlOU1RfTE9HX1BBVEglCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBDaGVjayBDb25maWd1cmF0aW9uCi0gIEZsYWdzPTExMTEwMDEwCi1lbmQKLWl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICBWYXJpYWJsZT1ET0JSQU5ECi0gIFZhbHVlPTEKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTIKLSAgaXRlbTogS2V5Ci0gICAgS2V5PVNvZnR3YXJlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVuaW5zdGFsbFwlQVBQVElUTEUlCi0gICAgTmV3IFZhbHVlPSVDT01QQU5ZJQotICAgIFZhbHVlIE5hbWU9UmVnQ29tcGFueQotICAgIFJvb3Q9MgotICBlbmQKLSAgaXRlbTogS2V5Ci0gICAgS2V5PVNvZnR3YXJlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVuaW5zdGFsbFwlQVBQVElUTEUlCi0gICAgTmV3IFZhbHVlPSVOQU1FJQotICAgIFZhbHVlIE5hbWU9UmVnT3duZXIKLSAgICBSb290PTIKLSAgZW5kCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZApkaWZmIC0tZ2l0IGEvUEMvVlM3LjEvX2N0eXBlcy52Y3Byb2ogYi9QQy9WUzcuMS9fY3R5cGVzLnZjcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzM1OWQ4OC4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9fY3R5cGVzLnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDMxMSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iNy4xMCINCi0JTmFtZT0iX2N0eXBlcyINCi0JUHJvamVjdEdVSUQ9IntGMjJGNDBGNC1EMzE4LTQwREMtOTZCMy04OERDODFDRTA4OTR9Ig0KLQlSb290TmFtZXNwYWNlPSJfY3R5cGVzIg0KLQlLZXl3b3JkPSJXaW4zMlByb2oiPg0KLQk8UGxhdGZvcm1zPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0iV2luMzIiLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxDb25maWd1cmF0aW9ucz4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuXC4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXHg4Ni10ZW1wLWRlYnVnXF9jdHlwZXMiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjAiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMsLi5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7V0lOMzI7X0RFQlVHO19XSU5ET1dTIg0KLQkJCQlNaW5pbWFsUmVidWlsZD0iRkFMU0UiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMyINCi0JCQkJUnVudGltZUxpYnJhcnk9IjMiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iRkFMU0UiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL0VYUE9SVDpEbGxHZXRDbGFzc09iamVjdCxQUklWQVRFIC9FWFBPUlQ6RGxsQ2FuVW5sb2FkTm93LFBSSVZBVEUiDQotCQkJCU91dHB1dEZpbGU9Ii4vX2N0eXBlc19kLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL19jdHlwZXNfZC5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxQTAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fY3R5cGVzX2QubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii5cLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5ceDg2LXRlbXAtcmVsZWFzZVxfY3R5cGVzIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUNoYXJhY3RlclNldD0iMiI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMsLi5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7V0lOMzI7TkRFQlVHO19XSU5ET1dTIg0KLQkJCQlTdHJpbmdQb29saW5nPSJUUlVFIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRSVUUiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iRkFMU0UiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjAiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL0VYUE9SVDpEbGxHZXRDbGFzc09iamVjdCxQUklWQVRFIC9FWFBPUlQ6RGxsQ2FuVW5sb2FkTm93LFBSSVZBVEUiDQotCQkJCU91dHB1dEZpbGU9Ii4vX2N0eXBlcy5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IkZBTFNFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vX2N0eXBlcy5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMCINCi0JCQkJT3B0aW1pemVSZWZlcmVuY2VzPSIwIg0KLQkJCQlFbmFibGVDT01EQVRGb2xkaW5nPSIwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDFBMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL19jdHlwZXMubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZUFNRDY0fFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9ImFtZDY0LXRlbXAtcmVsZWFzZVxfY3R5cGVzIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUNoYXJhY3RlclNldD0iMiI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvVVNFQ0w6TVNfT1BURVJPTiAvR1MtIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQywuLlwuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtXSU4zMjtOREVCVUc7X1dJTkRPV1MiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMCINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUJ1ZmZlclNlY3VyaXR5Q2hlY2s9IkZBTFNFIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjAiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIg0KLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIg0KLQkJCQlDb21waWxlQXM9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvTUFDSElORTpBTUQ2NCAvVVNFTElOSzpNU19TREsgL0VYUE9SVDpEbGxHZXRDbGFzc09iamVjdCxQUklWQVRFIC9FWFBPUlQ6RGxsQ2FuVW5sb2FkTm93LFBSSVZBVEUiDQotCQkJCU91dHB1dEZpbGU9Ii4vX2N0eXBlcy5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IkZBTFNFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vX2N0eXBlcy5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMCINCi0JCQkJT3B0aW1pemVSZWZlcmVuY2VzPSIwIg0KLQkJCQlFbmFibGVDT01EQVRGb2xkaW5nPSIwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDFBMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL19jdHlwZXMubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZUl0YW5pdW18V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iaWE2NC10ZW1wLXJlbGVhc2VcX2N0eXBlcyINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL1VTRUNMOk1TX0lUQU5JVU0iDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDLC4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO1dJTjMyO05ERUJVRztfV0lORE9XUyINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOklBNjQgL1VTRUxJTks6TVNfU0RLIC9FWFBPUlQ6RGxsR2V0Q2xhc3NPYmplY3QsUFJJVkFURSAvRVhQT1JUOkRsbENhblVubG9hZE5vdyxQUklWQVRFIg0KLQkJCQlPdXRwdXRGaWxlPSIuL19jdHlwZXMucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJGQUxTRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL19jdHlwZXMucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjAiDQotCQkJCU9wdGltaXplUmVmZXJlbmNlcz0iMCINCi0JCQkJRW5hYmxlQ09NREFURm9sZGluZz0iMCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxQTAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fY3R5cGVzLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcX2N0eXBlcy5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcY2FsbGJhY2tzLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xjYWxscHJvYy5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcY2ZpZWxkLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2Y1xmZmkuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXG1hbGxvY19jbG9zdXJlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2Y1xwcmVwX2NpZi5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcc3RnZGljdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcd2luMzIuYyI+DQotCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCU5hbWU9IlJlbGVhc2VBTUQ2NHxXaW4zMiINCi0JCQkJRXhjbHVkZWRGcm9tQnVpbGQ9IlRSVUUiPg0KLQkJCQk8VG9vbA0KLQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIvPg0KLQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXHdpbjY0LmFzbSI+DQotCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCQlFeGNsdWRlZEZyb21CdWlsZD0iVFJVRSI+DQotCQkJCTxUb29sDQotCQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJUUlVFIj4NCi0JCQkJPFRvb2wNCi0JCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJTmFtZT0iUmVsZWFzZUFNRDY0fFdpbjMyIj4NCi0JCQkJPFRvb2wNCi0JCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCQkJQ29tbWFuZExpbmU9ImFtZDY0X21sNjQgL25vbG9nbyAvYyAvRm8gJnF1b3Q7JChJbnREaXIpXHdpbjY0Lm9iaiZxdW90OyAmcXVvdDskKElucHV0UGF0aCkmcXVvdDsNCi0iDQotCQkJCQlPdXRwdXRzPSImcXVvdDskKEludERpcilcd2luNjQub2JqJnF1b3Q7Ii8+DQotCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJTmFtZT0iUmVsZWFzZUl0YW5pdW18V2luMzIiDQotCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJUUlVFIj4NCi0JCQkJPFRvb2wNCi0JCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCTwvRmlsZT4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM3LjEvX2N0eXBlc190ZXN0LnZjcHJvaiBiL1BDL1ZTNy4xL19jdHlwZXNfdGVzdC52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4ZThhMmMuLjAwMDAwMDAKLS0tIGEvUEMvVlM3LjEvX2N0eXBlc190ZXN0LnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDI0MiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iNy4xMCINCi0JTmFtZT0iX2N0eXBlc190ZXN0Ig0KLQlQcm9qZWN0R1VJRD0iezhDRjMzNEQ5LTRGODItNDJFQi05N0FGLTgzNTkyQzVBRkQyRn0iDQotCUtleXdvcmQ9IldpbjMyUHJvaiI+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJXaW4zMiIvPg0KLQk8L1BsYXRmb3Jtcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii5cLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5ceDg2LXRlbXAtZGVidWdcX2N0eXBlc190ZXN0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUNoYXJhY3RlclNldD0iMiI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIwIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7V0lOMzI7X0RFQlVHO19XSU5ET1dTIg0KLQkJCQlNaW5pbWFsUmVidWlsZD0iRkFMU0UiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMyINCi0JCQkJUnVudGltZUxpYnJhcnk9IjMiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9Ii4vX2N0eXBlc190ZXN0X2QucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vX2N0eXBlc190ZXN0X2QucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fY3R5cGVzX3Rlc3RfZC5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1yZWxlYXNlXF9jdHlwZXNfdGVzdCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7V0lOMzI7TkRFQlVHO19XSU5ET1dTIg0KLQkJCQlTdHJpbmdQb29saW5nPSJUUlVFIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRSVUUiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMCINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9Ii4vX2N0eXBlc190ZXN0LnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iRkFMU0UiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9fY3R5cGVzX3Rlc3QucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjAiDQotCQkJCU9wdGltaXplUmVmZXJlbmNlcz0iMCINCi0JCQkJRW5hYmxlQ09NREFURm9sZGluZz0iMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL19jdHlwZXNfdGVzdC5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlSXRhbml1bXxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSJpYTY0LXRlbXAtcmVsZWFzZVxfY3R5cGVzX3Rlc3QiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9VU0VDTDpNU19JVEFOSVVNIg0KLQkJCQlPcHRpbWl6YXRpb249IjAiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtXSU4zMjtfREVCVUc7X1dJTkRPV1MiDQotCQkJCU1pbmltYWxSZWJ1aWxkPSJGQUxTRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMyINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6SUE2NCAvVVNFTElOSzpNU19TREsiDQotCQkJCU91dHB1dEZpbGU9Ii4vX2N0eXBlc190ZXN0X2QucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vX2N0eXBlc190ZXN0X2QucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fY3R5cGVzX3Rlc3RfZC5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlQU1ENjR8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iYW1kNjQtdGVtcC1yZWxlYXNlXF9jdHlwZXNfdGVzdCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL1VTRUNMOk1TX09QVEVST04iDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7V0lOMzI7TkRFQlVHO19XSU5ET1dTIg0KLQkJCQlTdHJpbmdQb29saW5nPSJUUlVFIg0KLQkJCQlCYXNpY1J1bnRpbWVDaGVja3M9IjAiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KLQkJCQlCdWZmZXJTZWN1cml0eUNoZWNrPSJGQUxTRSINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRSVUUiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6QU1ENjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlPdXRwdXRGaWxlPSIuL19jdHlwZXNfdGVzdC5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IkZBTFNFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vX2N0eXBlc190ZXN0LnBkYiINCi0JCQkJU3ViU3lzdGVtPSIwIg0KLQkJCQlPcHRpbWl6ZVJlZmVyZW5jZXM9IjAiDQotCQkJCUVuYWJsZUNPTURBVEZvbGRpbmc9IjAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fY3R5cGVzX3Rlc3QubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xfY3R5cGVzX3Rlc3QuYyI+DQotCQk8L0ZpbGU+DQotCTwvRmlsZXM+DQotCTxHbG9iYWxzPg0KLQk8L0dsb2JhbHM+DQotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTNy4xL19lbGVtZW50dHJlZS52Y3Byb2ogYi9QQy9WUzcuMS9fZWxlbWVudHRyZWUudmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTJiOWQ5Li4wMDAwMDAwCi0tLSBhL1BDL1ZTNy4xL19lbGVtZW50dHJlZS52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSwyNjQgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjcuMTAiDQotCU5hbWU9Il9lbGVtZW50dHJlZSINCi0JUHJvamVjdEdVSUQ9InsxOTY2RERFMi00QUI3LTRFNEUtQUNDOS1DMTIxRTREMzdGOEV9Ig0KLQlTY2NQcm9qZWN0TmFtZT0iX2VsZW1lbnR0cmVlIg0KLQlTY2NMb2NhbFBhdGg9Ii4uIj4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIi8+DQotCTwvUGxhdGZvcm1zPg0KLQk8Q29uZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1kZWJ1Z1xfZWxlbWVudHRyZWUiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjAiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMsLi5cLi5cTW9kdWxlc1xleHBhdCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO19ERUJVRztIQVZFX0VYUEFUX0g7V0lOMzI7X1dJTkRPV1M7WE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtVU0VfUFlFWFBBVF9DQVBJO1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMyINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIg0KLQkJCQlDb21waWxlQXM9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0ib2RiY2NwMzIubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL19lbGVtZW50dHJlZV9kLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL19lbGVtZW50dHJlZV9kLnBkYiINCi0JCQkJU3ViU3lzdGVtPSIyIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDEwMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL19lbGVtZW50dHJlZV9kLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuXC4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXHg4Ni10ZW1wLXJlbGVhc2VcX2VsZW1lbnR0cmVlIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQywuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7TkRFQlVHO1dJTjMyO19XSU5ET1dTO1hNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7VVNFX1BZRVhQQVRfQ0FQSTtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJvZGJjY3AzMi5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vX2VsZW1lbnR0cmVlLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL19lbGVtZW50dHJlZS5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fZWxlbWVudHRyZWUubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZUl0YW5pdW18V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuLy4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXGlhNjQtdGVtcC1yZWxlYXNlXF9lbGVtZW50dHJlZSINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL1VTRUNMOk1TX0lUQU5JVU0gL0dTLSINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQywuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7TkRFQlVHO1dJTjMyO19XSU5ET1dTO1hNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7VVNFX1BZRVhQQVRfQ0FQSTtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6SUE2NCAvVVNFTElOSzpNU19TREsiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9Im9kYmNjcDMyLmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLi9fZWxlbWVudHRyZWUucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vX2VsZW1lbnR0cmVlLnBkYiINCi0JCQkJU3ViU3lzdGVtPSIyIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDEwMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL19lbGVtZW50dHJlZS5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlQU1ENjR8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iYW1kNjQtdGVtcC1yZWxlYXNlXF9lbGVtZW50dHJlZSINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL1VTRUNMOk1TX09QVEVST04gL0dTLSINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQywuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7TkRFQlVHO1dJTjMyO19XSU5ET1dTO1hNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7VVNFX1BZRVhQQVRfQ0FQSTtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6QU1ENjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJvZGJjY3AzMi5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vX2VsZW1lbnR0cmVlLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL19lbGVtZW50dHJlZS5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fZWxlbWVudHRyZWUubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2VsZW1lbnR0cmVlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRceG1scGFyc2UuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFx4bWxyb2xlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRceG1sdG9rLmMiPg0KLQkJPC9GaWxlPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9WUzcuMS9fbXNpLnZjcHJvaiBiL1BDL1ZTNy4xL19tc2kudmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNGZkNDQ3Li4wMDAwMDAwCi0tLSBhL1BDL1ZTNy4xL19tc2kudmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMjUyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI3LjEwIg0KLQlOYW1lPSJfbXNpIg0KLQlQcm9qZWN0R1VJRD0iezJDMEJFRkI5LTcwRTItNEY4MC1BQzVCLTRBQjhFRTAyMzU3NH0iDQotCVNjY1Byb2plY3ROYW1lPSJfbXNpIg0KLQlTY2NMb2NhbFBhdGg9Ii4uXC4uXHBjIj4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIi8+DQotCTwvUGxhdGZvcm1zPg0KLQk8Q29uZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1kZWJ1Z1xfbXNpIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO1dJTjMyO19ERUJVRztfV0lORE9XUztfVVNSRExMIg0KLQkJCQlCYXNpY1J1bnRpbWVDaGVja3M9IjMiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIzIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJmY2kubGliIG1zaS5saWIgcnBjcnQ0LmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLi9fbXNpX2QucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vX21zaV9kLnBkYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNjAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fbXNpX2QubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii5cLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5ceDg2LXRlbXAtcmVsZWFzZVxfbXNpIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtXSU4zMjtOREVCVUc7X1dJTkRPV1M7X1VTUkRMTCINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJmY2kubGliIG1zaS5saWIgcnBjcnQ0LmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLi9fbXNpLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9fbXNpLnBkYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNjAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fbXNpLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2VJdGFuaXVtfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlxpYTY0LXRlbXAtcmVsZWFzZVxfbXNpIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL1VTRUNMOk1TX0lUQU5JVU0gL0dTLSINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO1dJTjMyO05ERUJVRztfV0lORE9XUztfVVNSRExMIg0KLQkJCQlTdHJpbmdQb29saW5nPSJUUlVFIg0KLQkJCQlCYXNpY1J1bnRpbWVDaGVja3M9IjAiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KLQkJCQlCdWZmZXJTZWN1cml0eUNoZWNrPSJGQUxTRSINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRSVUUiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIg0KLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIg0KLQkJCQlDb21waWxlQXM9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvTUFDSElORTpJQTY0IC9VU0VMSU5LOk1TX1NESyINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iZmNpLmxpYiBtc2kubGliIHJwY3J0NC5saWIgYnVmZmVyb3ZlcmZsb3dVLmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLi9fbXNpLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9fbXNpLnBkYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNjAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fbXNpLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2VBTUQ2NHxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSJhbWQ2NC10ZW1wLXJlbGVhc2VcX21zaSINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9VU0VDTDpNU19PUFRFUk9OIC9HUy0iDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtXSU4zMjtOREVCVUc7X1dJTkRPV1M7X1VTUkRMTCINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6QU1ENjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJmY2kubGliIG1zaS5saWIgcnBjcnQ0LmxpYiBidWZmZXJvdmVyZmxvd1UubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL19tc2kucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL19tc2kucGRiIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDE2MDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL19tc2kubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXF9tc2kuYyI+DQotCQk8L0ZpbGU+DQotCTwvRmlsZXM+DQotCTxHbG9iYWxzPg0KLQk8L0dsb2JhbHM+DQotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTNy4xL19zb2NrZXQudmNwcm9qIGIvUEMvVlM3LjEvX3NvY2tldC52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmZWQ4ZTQuLjAwMDAwMDAKLS0tIGEvUEMvVlM3LjEvX3NvY2tldC52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSwyNTQgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjcuMTAiDQotCU5hbWU9Il9zb2NrZXQiDQotCVNjY1Byb2plY3ROYW1lPSJfc29ja2V0Ig0KLQlTY2NMb2NhbFBhdGg9Ii4uIj4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIi8+DQotCTwvUGxhdGZvcm1zPg0KLQk8Q29uZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1kZWJ1Z1xfc29ja2V0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIwIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7X0RFQlVHO1dJTjMyO19XSU5ET1dTIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMyINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIg0KLQkJCQlDb21waWxlQXM9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLi9fc29ja2V0X2QucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vX3NvY2tldF9kLnBkYiINCi0JCQkJU3ViU3lzdGVtPSIyIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTFEMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL19zb2NrZXRfZC5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1yZWxlYXNlXF9zb2NrZXQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7TkRFQlVHO1dJTjMyO19XSU5ET1dTIg0KLQkJCQlTdHJpbmdQb29saW5nPSJUUlVFIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRSVUUiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vX3NvY2tldC5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9fc29ja2V0LnBkYiINCi0JCQkJU3ViU3lzdGVtPSIyIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTFEMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL19zb2NrZXQubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZUl0YW5pdW18V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuLy4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXGlhNjQtdGVtcC1yZWxlYXNlXF9zb2NrZXQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9VU0VDTDpNU19JVEFOSVVNIC9HUy0iDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtOREVCVUc7V0lOMzI7X1dJTkRPV1MiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMCINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUJ1ZmZlclNlY3VyaXR5Q2hlY2s9IkZBTFNFIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOklBNjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL19zb2NrZXQucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vX3NvY2tldC5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxRDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fc29ja2V0LmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2VBTUQ2NHxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSJhbWQ2NC10ZW1wLXJlbGVhc2VcX3NvY2tldCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL1VTRUNMOk1TX09QVEVST04gL0dTLSINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO05ERUJVRztXSU4zMjtfV0lORE9XUyINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6QU1ENjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL19zb2NrZXQucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vX3NvY2tldC5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxRDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fc29ja2V0LmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHNvY2tldG1vZHVsZS5jIj4NCi0JCTwvRmlsZT4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM3LjEvX3NxbGl0ZTMudmNwcm9qIGIvUEMvVlM3LjEvX3NxbGl0ZTMudmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjdkOTkxLi4wMDAwMDAwCi0tLSBhL1BDL1ZTNy4xL19zcWxpdGUzLnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDI4MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iNy4xMCINCi0JTmFtZT0iX3NxbGl0ZTMiDQotCVByb2plY3RHVUlEPSJ7MkZGMEEzMTItMjJGOS00QzM0LUIwNzAtODQyOTE2REUyN0E5fSINCi0JU2NjUHJvamVjdE5hbWU9Il9zcWxpdGUzIg0KLQlTY2NMb2NhbFBhdGg9Ii4uIj4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIi8+DQotCTwvUGxhdGZvcm1zPg0KLQk8Q29uZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1kZWJ1Z1xfc3FsaXRlMyINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZTsuLlwuLlxQQzsuLlwuLlwuLlxzcWxpdGUtc291cmNlLTMuMy40Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7X0RFQlVHO1dJTjMyO19XSU5ET1dTO01PRFVMRV9OQU1FPVwmcXVvdDtzcWxpdGUzXCZxdW90OyINCi0JCQkJUnVudGltZUxpYnJhcnk9IjMiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9Ii4uXC4uXC4uXHNxbGl0ZS1zb3VyY2UtMy4zLjRcc3FsaXRlMy5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vX3NxbGl0ZTNfZC5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSIiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL19zcWxpdGUzX2QucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMTgwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vX3NxbGl0ZTNfZC5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1yZWxlYXNlXF9zcWxpdGUzIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZTsuLlwuLlxQQzsuLlwuLlwuLlxzcWxpdGUtc291cmNlLTMuMy40Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7TkRFQlVHO1dJTjMyO19XSU5ET1dTO01PRFVMRV9OQU1FPVwmcXVvdDtzcWxpdGUzXCZxdW90OyINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIuLlwuLlwuLlxzcWxpdGUtc291cmNlLTMuMy40XHNxbGl0ZTMubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL19zcWxpdGUzLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9IiINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vX3NxbGl0ZTMucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMTgwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vX3NxbGl0ZTMubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZUl0YW5pdW18V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuLy4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXGlhNjQtdGVtcC1yZWxlYXNlXF9zcWxpdGUzIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvVVNFQ0w6TVNfSVRBTklVTSAvR1MtIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlOy4uXC4uXFBDOy4uXC4uXC4uXHNxbGl0ZS1zb3VyY2UtMy4zLjQiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtOREVCVUc7V0lOMzI7X1dJTkRPV1M7TU9EVUxFX05BTUU9XCZxdW90O3NxbGl0ZTNcJnF1b3Q7Ig0KLQkJCQlTdHJpbmdQb29saW5nPSJUUlVFIg0KLQkJCQlCYXNpY1J1bnRpbWVDaGVja3M9IjAiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KLQkJCQlCdWZmZXJTZWN1cml0eUNoZWNrPSJGQUxTRSINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRSVUUiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIg0KLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIg0KLQkJCQlDb21waWxlQXM9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvTUFDSElORTpJQTY0IC9VU0VMSU5LOk1TX1NESyINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iLi5cLi5cLi5cc3FsaXRlLXNvdXJjZS0zLjMuNFxpYTY0XHNxbGl0ZTMubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL19zcWxpdGUzLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9IiINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vX3NxbGl0ZTMucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMTgwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vX3NxbGl0ZTMubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZUFNRDY0fFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9ImFtZDY0LXRlbXAtcmVsZWFzZVxfc3FsaXRlMyINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL1VTRUNMOk1TX09QVEVST04gL0dTLSINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZTsuLlwuLlxQQzsuLlwuLlwuLlxzcWxpdGUtc291cmNlLTMuMy40Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7TkRFQlVHO1dJTjMyO19XSU5ET1dTO01PRFVMRV9OQU1FPVwmcXVvdDtzcWxpdGUzXCZxdW90OyINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6QU1ENjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIuLlwuLlwuLlxzcWxpdGUtc291cmNlLTMuMy40XGFtZDY0XHNxbGl0ZTMubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL19zcWxpdGUzLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9IiINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vX3NxbGl0ZTMucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMTgwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vX3NxbGl0ZTMubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxjYWNoZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcY29ubmVjdGlvbi5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcY3Vyc29yLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxtaWNyb3Byb3RvY29scy5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcbW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxwcmVwYXJlX3Byb3RvY29sLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxyb3cuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3FsaXRlXHN0YXRlbWVudC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcdXRpbC5jIj4NCi0JCTwvRmlsZT4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM3LjEvX3NzbC5tYWsgYi9QQy9WUzcuMS9fc3NsLm1hawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODQ3NmE2My4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9fc3NsLm1haworKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLUVYVFJBX0xJQlM9Ci0KLSFJRkRFRiBERUJVRwotU1VGRklYPV9kLnB5ZAotVEVNUD14ODYtdGVtcC1kZWJ1Zy8KLUNGTEFHUz0vT2QgL1ppIC9NRGQgL0xEZCAvRERFQlVHIC9EX0RFQlVHIC9EV0lOMzIKLVNTTF9MSUJfRElSPSQoU1NMX0RJUikvb3V0MzIuZGJnCi0hRUxTRQotU1VGRklYPS5weWQKLVRFTVA9eDg2LXRlbXAtcmVsZWFzZS8KLUNGTEFHUz0vT3ggL01EIC9MRCAvRFdJTjMyCi1TU0xfTElCX0RJUj0kKFNTTF9ESVIpL291dDMyCi0hRU5ESUYKLQotSU5DTFVERVM9LUkgLi4vLi4vSW5jbHVkZSAtSSAuLi8uLi9QQyAtSSAkKFNTTF9ESVIpL2luYzMyCi0KLVNTTF9MSUJTPWdkaTMyLmxpYiB3c29jazMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiAvTElCUEFUSDokKFNTTF9MSUJfRElSKSBsaWJlYXkzMi5saWIgc3NsZWF5MzIubGliCi1TU0xfU09VUkNFPS4uLy4uL01vZHVsZXMvX3NzbC5jIAotCi1IQVNIX0xJQlM9Z2RpMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIC9saWJwYXRoOiQoU1NMX0xJQl9ESVIpIGxpYmVheTMyLmxpYgotSEFTSF9TT1VSQ0U9Li4vLi4vTW9kdWxlcy9faGFzaG9wZW5zc2wuYyAKLQotYWxsOiBfc3NsJChTVUZGSVgpIF9oYXNobGliJChTVUZGSVgpCi0KLSMgU3BsaXQgY29tcGlsZS9saW5rIGludG8gdHdvIHN0ZXBzIHRvIGJldHRlciBzdXBwb3J0IFZTRXh0Q29tcAotX3NzbCQoU1VGRklYKTogJChTU0xfU09VUkNFKSAkKFNTTF9MSUJfRElSKS9saWJlYXkzMi5saWIgJChTU0xfTElCX0RJUikvc3NsZWF5MzIubGliIC4uLy4uL1BDLyouaCAuLi8uLi9JbmNsdWRlLyouaAotCUBpZiBub3QgZXhpc3QgIiQoVEVNUCkvX3NzbC8uIiBta2RpciAiJChURU1QKS9fc3NsIgotCWNsIC9ub2xvZ28gL2MgJChTU0xfU09VUkNFKSAkKENGTEFHUykgL0ZvJChURU1QKVxfc3NsXCQqLm9iaiAkKElOQ0xVREVTKQotCWxpbmsgL25vbG9nbyBAPDwKLSAgICAgICAgICAgICAvZGxsIC9vdXQ6X3NzbCQoU1VGRklYKSAkKFRFTVApXF9zc2xcJCoub2JqICQoU1NMX0xJQlMpICQoRVhUUkFfTElCUykKLTw8Ci0KLV9oYXNobGliJChTVUZGSVgpOiAkKEhBU0hfU09VUkNFKSAkKFNTTF9MSUJfRElSKS9saWJlYXkzMi5saWIgLi4vLi4vUEMvKi5oIC4uLy4uL0luY2x1ZGUvKi5oCi0gICAgQGlmIG5vdCBleGlzdCAiJChURU1QKS9faGFzaGxpYi8uIiBta2RpciAiJChURU1QKS9faGFzaGxpYiIKLSAgICBjbCAvbm9sb2dvIC9jICQoSEFTSF9TT1VSQ0UpICQoQ0ZMQUdTKSAkKEVYVFJBX0NGTEFHUykgL0ZvJChURU1QKVxfaGFzaGxpYlwkKi5vYmogJChJTkNMVURFUykgCi0gICAgbGluayAvbm9sb2dvIEA8PAotCS9kbGwgL291dDpfaGFzaGxpYiQoU1VGRklYKSAkKEhBU0hfTElCUykgJChFWFRSQV9MSUJTKSAkKFRFTVApXF9oYXNobGliXCQqLm9iagotPDwKZGlmZiAtLWdpdCBhL1BDL1ZTNy4xL19zc2wudmNwcm9qIGIvUEMvVlM3LjEvX3NzbC52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2ZDY1ZmUuLjAwMDAwMDAKLS0tIGEvUEMvVlM3LjEvX3NzbC52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iNy4xMCINCi0JTmFtZT0iX3NzbCINCi0JUm9vdE5hbWVzcGFjZT0iX3NzbCINCi0JU2NjUHJvamVjdE5hbWU9IiINCi0JU2NjTG9jYWxQYXRoPSIiDQotCUtleXdvcmQ9Ik1ha2VGaWxlUHJvaiI+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJXaW4zMiIvPg0KLQk8L1BsYXRmb3Jtcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1yZWxlYXNlXF9zc2wiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjAiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ05NYWtlVG9vbCINCi0JCQkJQnVpbGRDb21tYW5kTGluZT0iYnVpbGRfc3NsLmJhdCAkKENvbmZpZ3VyYXRpb25OYW1lKSINCi0JCQkJUmVCdWlsZENvbW1hbmRMaW5lPSJidWlsZF9zc2wuYmF0ICQoQ29uZmlndXJhdGlvbk5hbWUpIC1hIg0KLQkJCQlDbGVhbkNvbW1hbmRMaW5lPSJlY2hvIE5vdGhpbmcgdG8gZG8iDQotCQkJCU91dHB1dD0iX3NzbC5weWQiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuXC4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXHg4Ni10ZW1wLWRlYnVnXF9zc2wiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjAiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ05NYWtlVG9vbCINCi0JCQkJQnVpbGRDb21tYW5kTGluZT0iYnVpbGRfc3NsLmJhdCAkKENvbmZpZ3VyYXRpb25OYW1lKSINCi0JCQkJUmVCdWlsZENvbW1hbmRMaW5lPSJidWlsZF9zc2wuYmF0ICQoQ29uZmlndXJhdGlvbk5hbWUpIC1hIg0KLQkJCQlDbGVhbkNvbW1hbmRMaW5lPSJlY2hvIE5vdGhpbmcgdG8gZG8iDQotCQkJCU91dHB1dD0iX3NzbF9kLnB5ZCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlSXRhbml1bXxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4vLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5caWE2NC10ZW1wLXJlbGVhc2VcX3NzbCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMCINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTk1ha2VUb29sIg0KLQkJCQlCdWlsZENvbW1hbmRMaW5lPSJidWlsZF9zc2wuYmF0ICQoQ29uZmlndXJhdGlvbk5hbWUpIg0KLQkJCQlSZUJ1aWxkQ29tbWFuZExpbmU9ImJ1aWxkX3NzbC5iYXQgJChDb25maWd1cmF0aW9uTmFtZSkgLWEiDQotCQkJCUNsZWFuQ29tbWFuZExpbmU9ImVjaG8gTm90aGluZyB0byBkbyINCi0JCQkJT3V0cHV0PSJfc3NsLnB5ZCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlQU1ENjR8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iYW1kNjQtdGVtcC1yZWxlYXNlXF9zc2wiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjAiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ05NYWtlVG9vbCINCi0JCQkJQnVpbGRDb21tYW5kTGluZT0iYnVpbGRfc3NsLmJhdCAkKENvbmZpZ3VyYXRpb25OYW1lKSINCi0JCQkJUmVCdWlsZENvbW1hbmRMaW5lPSJidWlsZF9zc2wuYmF0ICQoQ29uZmlndXJhdGlvbk5hbWUpIC1hIg0KLQkJCQlDbGVhbkNvbW1hbmRMaW5lPSJlY2hvIE5vdGhpbmcgdG8gZG8iDQotCQkJCU91dHB1dD0iX3NzbC5weWQiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NzbC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9oYXNob3BlbnNzbC5jIj4NCi0JCTwvRmlsZT4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM3LjEvX3Rlc3RjYXBpLnZjcHJvaiBiL1BDL1ZTNy4xL190ZXN0Y2FwaS52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxOTc4NDIuLjAwMDAwMDAKLS0tIGEvUEMvVlM3LjEvX3Rlc3RjYXBpLnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDI0NyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iNy4xMCINCi0JTmFtZT0iX3Rlc3RjYXBpIg0KLQlTY2NQcm9qZWN0TmFtZT0iX3Rlc3RjYXBpIg0KLQlTY2NMb2NhbFBhdGg9Ii4uIj4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIi8+DQotCTwvUGxhdGZvcm1zPg0KLQk8Q29uZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuXC4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXHg4Ni10ZW1wLXJlbGVhc2VcX3Rlc3RjYXBpIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtXSU4zMjtOREVCVUc7X1dJTkRPV1M7X1VTUkRMTDtNTUFQX0VYUE9SVFMiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlDb21waWxlQXM9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJT3V0cHV0RmlsZT0iLi9fdGVzdGNhcGkucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL190ZXN0Y2FwaS5wZGIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMUYwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vX3Rlc3RjYXBpLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1kZWJ1Z1xfdGVzdGNhcGkiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIg0KLQkJCUNoYXJhY3RlclNldD0iMiI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIwIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7V0lOMzI7X0RFQlVHO19XSU5ET1dTO19VU1JETEw7TU1BUF9FWFBPUlRTIg0KLQkJCQlCYXNpY1J1bnRpbWVDaGVja3M9IjMiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIzIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIuL190ZXN0Y2FwaV9kLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL190ZXN0Y2FwaV9kLnBkYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxRjAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fdGVzdGNhcGlfZC5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlSXRhbml1bXxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4vLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5caWE2NC10ZW1wLXJlbGVhc2VcX3Rlc3RjYXBpIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL1VTRUNMOk1TX0lUQU5JVU0gL0dTLSINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO1dJTjMyO05ERUJVRztfV0lORE9XUztfVVNSRExMO01NQVBfRVhQT1JUUyINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6SUE2NCAvVVNFTElOSzpNU19TREsiDQotCQkJCU91dHB1dEZpbGU9Ii4vX3Rlc3RjYXBpLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9fdGVzdGNhcGkucGRiIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTFGMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL190ZXN0Y2FwaS5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlQU1ENjR8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iYW1kNjQtdGVtcC1yZWxlYXNlXF90ZXN0Y2FwaSINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9VU0VDTDpNU19PUFRFUk9OIC9HUy0iDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtXSU4zMjtOREVCVUc7X1dJTkRPV1M7X1VTUkRMTDtNTUFQX0VYUE9SVFMiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMCINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUJ1ZmZlclNlY3VyaXR5Q2hlY2s9IkZBTFNFIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOkFNRDY0IC9VU0VMSU5LOk1TX1NESyINCi0JCQkJT3V0cHV0RmlsZT0iLi9fdGVzdGNhcGkucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL190ZXN0Y2FwaS5wZGIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMUYwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vX3Rlc3RjYXBpLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF90ZXN0Y2FwaW1vZHVsZS5jIj4NCi0JCTwvRmlsZT4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM3LjEvX3RraW50ZXIudmNwcm9qIGIvUEMvVlM3LjEvX3RraW50ZXIudmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZjczNDE2Li4wMDAwMDAwCi0tLSBhL1BDL1ZTNy4xL190a2ludGVyLnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDI2MSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iNy4xMCINCi0JTmFtZT0iX3RraW50ZXIiDQotCVNjY1Byb2plY3ROYW1lPSJfdGtpbnRlciINCi0JU2NjTG9jYWxQYXRoPSIuLlwuLlwuLlwuLiI+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJXaW4zMiIvPg0KLQk8L1BsYXRmb3Jtcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1yZWxlYXNlXF90a2ludGVyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cLi5cdGNsdGtcaW5jbHVkZSwuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7TkRFQlVHO1dJTjMyO19XSU5ET1dTO1dJVEhfQVBQSU5JVCINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIuLlwuLlwuLlx0Y2x0a1xsaWJcdGs4NC5saWIgLi5cLi5cLi5cdGNsdGtcbGliXHRjbDg0LmxpYiBvZGJjY3AzMi5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vX3RraW50ZXIucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJQWRkaXRpb25hbExpYnJhcnlEaXJlY3Rvcmllcz0iIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9fdGtpbnRlci5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxOTAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fdGtpbnRlci5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii5cLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5ceDg2LXRlbXAtZGVidWdcX3RraW50ZXIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjAiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXC4uXHRjbHRrXGluY2x1ZGUsLi5cLi5cSW5jbHVkZSwuLlwuLlxQQyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO19ERUJVRztXSU4zMjtfV0lORE9XUztXSVRIX0FQUElOSVQiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIzIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIuLlwuLlwuLlx0Y2x0a1xsaWJcdGs4NC5saWIgLi5cLi5cLi5cdGNsdGtcbGliXHRjbDg0LmxpYiBvZGJjY3AzMi5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vX3RraW50ZXJfZC5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlBZGRpdGlvbmFsTGlicmFyeURpcmVjdG9yaWVzPSIiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL190a2ludGVyX2QucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMTkwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vX3RraW50ZXJfZC5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlSXRhbml1bXxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4vLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5caWE2NC10ZW1wLXJlbGVhc2VcX3RraW50ZXIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9VU0VDTDpNU19JVEFOSVVNIC9HUy0iDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXC4uXHRjbHRrXGluY2x1ZGUsLi5cLi5cSW5jbHVkZSwuLlwuLlxQQyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO05ERUJVRztXSU4zMjtfV0lORE9XUztXSVRIX0FQUElOSVQiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMCINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUJ1ZmZlclNlY3VyaXR5Q2hlY2s9IkZBTFNFIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOklBNjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIuLlwuLlwuLlx0Y2x0a1xsaWJcdGs4NC5saWIgLi5cLi5cLi5cdGNsdGtcbGliXHRjbDg0LmxpYiBvZGJjY3AzMi5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vX3RraW50ZXIucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJQWRkaXRpb25hbExpYnJhcnlEaXJlY3Rvcmllcz0iIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9fdGtpbnRlci5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxOTAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9fdGtpbnRlci5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlQU1ENjR8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iYW1kNjQtdGVtcC1yZWxlYXNlXF90a2ludGVyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvVVNFQ0w6TVNfT1BURVJPTiAvR1MtIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlwuLlx0Y2x0a1xpbmNsdWRlLC4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtOREVCVUc7V0lOMzI7X1dJTkRPV1M7V0lUSF9BUFBJTklUIg0KLQkJCQlTdHJpbmdQb29saW5nPSJUUlVFIg0KLQkJCQlCYXNpY1J1bnRpbWVDaGVja3M9IjAiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KLQkJCQlCdWZmZXJTZWN1cml0eUNoZWNrPSJGQUxTRSINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRSVUUiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGV0ZWN0NjRCaXRQb3J0YWJpbGl0eVByb2JsZW1zPSJUUlVFIg0KLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIg0KLQkJCQlDb21waWxlQXM9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvTUFDSElORTpBTUQ2NCAvVVNFTElOSzpNU19TREsiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9Ii4uXC4uXC4uXHRjbHRrXGxpYlx0azg0LmxpYiAuLlwuLlwuLlx0Y2x0a1xsaWJcdGNsODQubGliIG9kYmNjcDMyLmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLi9fdGtpbnRlci5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlBZGRpdGlvbmFsTGlicmFyeURpcmVjdG9yaWVzPSIiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL190a2ludGVyLnBkYiINCi0JCQkJU3ViU3lzdGVtPSIyIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTE5MDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL190a2ludGVyLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF90a2ludGVyLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcdGthcHBpbml0LmMiPg0KLQkJPC9GaWxlPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9WUzcuMS9hbWQ2NF9tbDY0LmJhdCBiL1BDL1ZTNy4xL2FtZDY0X21sNjQuYmF0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTlhY2YxLi4wMDAwMDAwCi0tLSBhL1BDL1ZTNy4xL2FtZDY0X21sNjQuYmF0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotQGVjaG8gb2ZmCi1yZW0gVHJ5IHRvIGZpbmQgdGhlIEFNRDY0IGFzc2VtYmxlciBhbmQgY2FsbCBpdCB3aXRoIHRoZSBzdXBwbGllZCBhcmd1bWVudHMuCi0KLXNldCBNTEVYRT1NaWNyb3NvZnQgUGxhdGZvcm0gU0RLXEJpblxXaW42NFx4ODZcQU1ENjRcbWw2NC5FWEUKLQotcmVtIEZvciB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHNlZSBhbHNvCi1yZW0gaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9saWJyYXJ5L2VuLXVzL3dpbjY0L3dpbjY0L3dvdzY0X2ltcGxlbWVudGF0aW9uX2RldGFpbHMuYXNwCi0KLWlmIGV4aXN0ICIlUHJvZ3JhbUZpbGVzJVwlTUxFWEUlIiAoCi0gIHNldCBNTDY0PSIlUHJvZ3JhbUZpbGVzJVwlTUxFWEUlIgotKSBlbHNlIGlmIGV4aXN0ICIlUHJvZ3JhbVc2NDMyJVwlTUxFWEUlIiAoCi0gIHNldCBNTDY0PSIlUHJvZ3JhbVc2NDMyJVwlTUxFWEUlIgotKSBlbHNlICgKLSAgc2V0IE1MNjQ9bWw2NC5leGUKLSkKLQotJU1MNjQlICUqCmRpZmYgLS1naXQgYS9QQy9WUzcuMS9idWlsZF9zc2wuYmF0IGIvUEMvVlM3LjEvYnVpbGRfc3NsLmJhdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjZiZTNjMC4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9idWlsZF9zc2wuYmF0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotaWYgIiUxIiA9PSAiUmVsZWFzZUFNRDY0IiBjYWxsICIlTVNTZGslXFNldEVudiIgL1hQNjQgL1JFVEFJTAotCi1AZWNobyBvZmYKLWlmIG5vdCBkZWZpbmVkIEhPU1RfUFlUSE9OICgKLSAgaWYgJTEgRVFVIERlYnVnICgKLSAgICBzZXQgSE9TVF9QWVRIT049cHl0aG9uX2QuZXhlCi0gICkgRUxTRSAoCi0gICAgc2V0IEhPU1RfUFlUSE9OPXB5dGhvbi5leGUKLSAgKQotKQotJUhPU1RfUFlUSE9OJSBidWlsZF9zc2wucHkgJTEgJTIKLQpkaWZmIC0tZ2l0IGEvUEMvVlM3LjEvYnVpbGRfc3NsLnB5IGIvUEMvVlM3LjEvYnVpbGRfc3NsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTlmNGUzLi4wMDAwMDAwCi0tLSBhL1BDL1ZTNy4xL2J1aWxkX3NzbC5weQorKysgL2Rldi9udWxsCkBAIC0xLDE4MSArMCwwIEBACi0jIFNjcmlwdCBmb3IgYnVpbGRpbmcgdGhlIF9zc2wgYW5kIF9oYXNobGliIG1vZHVsZXMgZm9yIFdpbmRvd3MuCi0jIFVzZXMgUGVybCB0byBzZXR1cCB0aGUgT3BlblNTTCBlbnZpcm9ubWVudCBjb3JyZWN0bHkKLSMgYW5kIGJ1aWxkIE9wZW5TU0wsIHRoZW4gaW52b2tlcyBhIHNpbXBsZSBubWFrZSBzZXNzaW9uCi0jIGZvciB0aGUgYWN0dWFsIF9zc2wucHlkIGFuZCBfaGFzaGxpYi5weWQgRExMcy4KLQotIyBUSEVPUkVUSUNBTExZLCB5b3UgY2FuOgotIyAqIFVucGFjayB0aGUgbGF0ZXN0IFNTTCByZWxlYXNlIG9uZSBsZXZlbCBhYm92ZSB5b3VyIG1haW4gUHl0aG9uIHNvdXJjZQotIyAgIGRpcmVjdG9yeS4gIEl0IGlzIGxpa2VseSB5b3Ugd2lsbCBhbHJlYWR5IGZpbmQgdGhlIHpsaWIgbGlicmFyeSBhbmQKLSMgICBhbnkgb3RoZXIgZXh0ZXJuYWwgcGFja2FnZXMgdGhlcmUuCi0jICogSW5zdGFsbCBBY3RpdmVQZXJsIGFuZCBlbnN1cmUgaXQgaXMgc29tZXdoZXJlIG9uIHlvdXIgcGF0aC4KLSMgKiBSdW4gdGhpcyBzY3JpcHQgZnJvbSB0aGUgUENCdWlsZCBkaXJlY3RvcnkuCi0jCi0jIGl0IHNob3VsZCBjb25maWd1cmUgYW5kIGJ1aWxkIFNTTCwgdGhlbiBidWlsZCB0aGUgX3NzbCBhbmQgX2hhc2hsaWIKLSMgUHl0aG9uIGV4dGVuc2lvbnMgd2l0aG91dCBpbnRlcnZlbnRpb24uCi0KLWltcG9ydCBvcywgc3lzLCByZQotCi0jIEZpbmQgYWxsICJmb28uZXhlIiBmaWxlcyBvbiB0aGUgUEFUSC4KLWRlZiBmaW5kX2FsbF9vbl9wYXRoKGZpbGVuYW1lLCBleHRyYXMgPSBOb25lKToKLSAgICBlbnRyaWVzID0gb3MuZW52aXJvblsiUEFUSCJdLnNwbGl0KG9zLnBhdGhzZXApCi0gICAgcmV0ID0gW10KLSAgICBmb3IgcCBpbiBlbnRyaWVzOgotICAgICAgICBmbmFtZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ocCwgZmlsZW5hbWUpKQotICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShmbmFtZSkgYW5kIGZuYW1lIG5vdCBpbiByZXQ6Ci0gICAgICAgICAgICByZXQuYXBwZW5kKGZuYW1lKQotICAgIGlmIGV4dHJhczoKLSAgICAgICAgZm9yIHAgaW4gZXh0cmFzOgotICAgICAgICAgICAgZm5hbWUgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHAsIGZpbGVuYW1lKSkKLSAgICAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKGZuYW1lKSBhbmQgZm5hbWUgbm90IGluIHJldDoKLSAgICAgICAgICAgICAgICByZXQuYXBwZW5kKGZuYW1lKQotICAgIHJldHVybiByZXQKLQotIyBGaW5kIGEgc3VpdGFibGUgUGVybCBpbnN0YWxsYXRpb24gZm9yIE9wZW5TU0wuCi0jIGN5Z3dpbiBwZXJsIGRvZXMgKm5vdCogd29yay4gIEFjdGl2ZVBlcmwgZG9lcy4KLSMgQmVpbmcgYSBQZXJsIGR1bW15LCB0aGUgc2ltcGxlc3Qgd2F5IEkgY2FuIGNoZWNrIGlzIGlmIHRoZSAiV2luMzIiIHBhY2thZ2UKLSMgaXMgYXZhaWxhYmxlLgotZGVmIGZpbmRfd29ya2luZ19wZXJsKHBlcmxzKToKLSAgICBmb3IgcGVybCBpbiBwZXJsczoKLSAgICAgICAgZmggPSBvcy5wb3BlbihwZXJsICsgJyAtZSAidXNlIFdpbjMyOyInKQotICAgICAgICBmaC5yZWFkKCkKLSAgICAgICAgcmMgPSBmaC5jbG9zZSgpCi0gICAgICAgIGlmIHJjOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgcmV0dXJuIHBlcmwKLSAgICBwcmludCAiQ2FuIG5vdCBmaW5kIGEgc3VpdGFibGUgUEVSTDoiCi0gICAgaWYgcGVybHM6Ci0gICAgICAgIHByaW50ICIgdGhlIGZvbGxvd2luZyBwZXJsIGludGVycHJldGVycyB3ZXJlIGZvdW5kOiIKLSAgICAgICAgZm9yIHAgaW4gcGVybHM6Ci0gICAgICAgICAgICBwcmludCAiICIsIHAKLSAgICAgICAgcHJpbnQgIiBOb25lIG9mIHRoZXNlIHZlcnNpb25zIGFwcGVhciBzdWl0YWJsZSBmb3IgYnVpbGRpbmcgT3BlblNTTCIKLSAgICBlbHNlOgotICAgICAgICBwcmludCAiIE5PIHBlcmwgaW50ZXJwcmV0ZXJzIHdlcmUgZm91bmQgb24gdGhpcyBtYWNoaW5lIGF0IGFsbCEiCi0gICAgcHJpbnQgIiBQbGVhc2UgaW5zdGFsbCBBY3RpdmVQZXJsIGFuZCBlbnN1cmUgaXQgYXBwZWFycyBvbiB5b3VyIHBhdGgiCi0gICAgcHJpbnQgIlRoZSBQeXRob24gU1NMIG1vZHVsZSB3YXMgbm90IGJ1aWx0IgotICAgIHJldHVybiBOb25lCi0KLSMgTG9jYXRlIHRoZSBiZXN0IFNTTCBkaXJlY3RvcnkgZ2l2ZW4gYSBmZXcgcm9vdHMgdG8gbG9vayBpbnRvLgotZGVmIGZpbmRfYmVzdF9zc2xfZGlyKHNvdXJjZXMpOgotICAgIGNhbmRpZGF0ZXMgPSBbXQotICAgIGZvciBzIGluIHNvdXJjZXM6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgbm90ZTogZG8gbm90IGFic3BhdGggczsgdGhlIGJ1aWxkIHdpbGwgZmFpbCBpZiBhbnkKLSAgICAgICAgICAgICMgaGlnaGVyIHVwIGRpcmVjdG9yeSBuYW1lIGhhcyBzcGFjZXMgaW4gaXQuCi0gICAgICAgICAgICBmbmFtZXMgPSBvcy5saXN0ZGlyKHMpCi0gICAgICAgIGV4Y2VwdCBvcy5lcnJvcjoKLSAgICAgICAgICAgIGZuYW1lcyA9IFtdCi0gICAgICAgIGZvciBmbmFtZSBpbiBmbmFtZXM6Ci0gICAgICAgICAgICBmcW4gPSBvcy5wYXRoLmpvaW4ocywgZm5hbWUpCi0gICAgICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKGZxbikgYW5kIGZuYW1lLnN0YXJ0c3dpdGgoIm9wZW5zc2wtIik6Ci0gICAgICAgICAgICAgICAgY2FuZGlkYXRlcy5hcHBlbmQoZnFuKQotICAgICMgTm93IHdlIGhhdmUgYWxsIHRoZSBjYW5kaWRhdGVzLCBsb2NhdGUgdGhlIGJlc3QuCi0gICAgYmVzdF9wYXJ0cyA9IFtdCi0gICAgYmVzdF9uYW1lID0gTm9uZQotICAgIGZvciBjIGluIGNhbmRpZGF0ZXM6Ci0gICAgICAgIHBhcnRzID0gcmUuc3BsaXQoIlsuLV0iLCBvcy5wYXRoLmJhc2VuYW1lKGMpKVsxOl0KLSAgICAgICAgIyBlZyAtIG9wZW5zc2wtMC45LjctYmV0YTEgLSBpZ25vcmUgYWxsICJiZXRhIiBvciBhbnkgb3RoZXIgcXVhbGlmaWVycwotICAgICAgICBpZiBsZW4ocGFydHMpID49IDQ6Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICBpZiBwYXJ0cyA+IGJlc3RfcGFydHM6Ci0gICAgICAgICAgICBiZXN0X3BhcnRzID0gcGFydHMKLSAgICAgICAgICAgIGJlc3RfbmFtZSA9IGMKLSAgICBpZiBiZXN0X25hbWUgaXMgbm90IE5vbmU6Ci0gICAgICAgIHByaW50ICJGb3VuZCBhbiBTU0wgZGlyZWN0b3J5IGF0ICclcyciICUgKGJlc3RfbmFtZSwpCi0gICAgZWxzZToKLSAgICAgICAgcHJpbnQgIkNvdWxkIG5vdCBmaW5kIGFuIFNTTCBkaXJlY3RvcnkgaW4gJyVzJyIgJSAoc291cmNlcywpCi0gICAgc3lzLnN0ZG91dC5mbHVzaCgpCi0gICAgcmV0dXJuIGJlc3RfbmFtZQotCi1kZWYgcnVuX2NvbmZpZ3VyZShjb25maWd1cmUsIGRvX3NjcmlwdCk6Ci0gICAgb3Muc3lzdGVtKCJwZXJsIENvbmZpZ3VyZSAiK2NvbmZpZ3VyZSkKLSAgICBvcy5zeXN0ZW0oZG9fc2NyaXB0KQotCi1kZWYgbWFpbigpOgotICAgIGJ1aWxkX2FsbCA9ICItYSIgaW4gc3lzLmFyZ3YKLSAgICBpZiBzeXMuYXJndlsxXSA9PSAiUmVsZWFzZSI6Ci0gICAgICAgIGFyY2ggPSAieDg2IgotICAgICAgICBkZWJ1ZyA9IEZhbHNlCi0gICAgICAgIGNvbmZpZ3VyZSA9ICJWQy1XSU4zMiIKLSAgICAgICAgZG9fc2NyaXB0ID0gIm1zXFxkb19tYXNtIgotICAgICAgICBtYWtlZmlsZSA9ICJtc1xcbnQubWFrIgotICAgIGVsaWYgc3lzLmFyZ3ZbMV0gPT0gIkRlYnVnIjoKLSAgICAgICAgYXJjaCA9ICJ4ODYiCi0gICAgICAgIGRlYnVnID0gVHJ1ZQotICAgICAgICBjb25maWd1cmUgPSAiVkMtV0lOMzIiCi0gICAgICAgIGRvX3NjcmlwdCA9ICJtc1xcZG9fbWFzbSIKLSAgICAgICAgbWFrZWZpbGU9Im1zXFxkMzIubWFrIgotICAgIGVsaWYgc3lzLmFyZ3ZbMV0gPT0gIlJlbGVhc2VJdGFuaXVtIjoKLSAgICAgICAgYXJjaCA9ICJpYTY0IgotICAgICAgICBkZWJ1ZyA9IEZhbHNlCi0gICAgICAgIGNvbmZpZ3VyZSA9ICJWQy1XSU42NEkiCi0gICAgICAgIGRvX3NjcmlwdCA9ICJtc1xcZG9fd2luNjRpIgotICAgICAgICBtYWtlZmlsZSA9ICJtc1xcbnQubWFrIgotICAgICAgICBvcy5lbnZpcm9uWyJWU0VYVENPTVBfVVNFQ0wiXSA9ICJNU19JVEFOSVVNIgotICAgIGVsaWYgc3lzLmFyZ3ZbMV0gPT0gIlJlbGVhc2VBTUQ2NCI6Ci0gICAgICAgIGFyY2g9ImFtZDY0IgotICAgICAgICBkZWJ1Zz1GYWxzZQotICAgICAgICBjb25maWd1cmUgPSAiVkMtV0lONjRBIgotICAgICAgICBkb19zY3JpcHQgPSAibXNcXGRvX3dpbjY0YSIKLSAgICAgICAgbWFrZWZpbGUgPSAibXNcXG50Lm1hayIKLSAgICAgICAgb3MuZW52aXJvblsiVlNFWFRDT01QX1VTRUNMIl0gPSAiTVNfT1BURVJPTiIKLSAgICBtYWtlX2ZsYWdzID0gIiIKLSAgICBpZiBidWlsZF9hbGw6Ci0gICAgICAgIG1ha2VfZmxhZ3MgPSAiLWEiCi0gICAgIyBwZXJsIHNob3VsZCBiZSBvbiB0aGUgcGF0aCwgYnV0IHdlIGFsc28gbG9vayBpbiAiXHBlcmwiIGFuZCAiYzpcXHBlcmwiCi0gICAgIyBhcyAid2VsbCBrbm93biIgbG9jYXRpb25zCi0gICAgcGVybHMgPSBmaW5kX2FsbF9vbl9wYXRoKCJwZXJsLmV4ZSIsIFsiXFxwZXJsXFxiaW4iLCAiQzpcXHBlcmxcXGJpbiJdKQotICAgIHBlcmwgPSBmaW5kX3dvcmtpbmdfcGVybChwZXJscykKLSAgICBpZiBwZXJsIGlzIE5vbmU6Ci0gICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICBwcmludCAiRm91bmQgYSB3b3JraW5nIHBlcmwgYXQgJyVzJyIgJSAocGVybCwpCi0gICAgc3lzLnN0ZG91dC5mbHVzaCgpCi0gICAgIyBMb29rIGZvciBTU0wgMiBsZXZlbHMgdXAgZnJvbSBwY2J1aWxkIC0gaWUsIHNhbWUgcGxhY2UgemxpYiBldGMgYWxsIGxpdmUuCi0gICAgc3NsX2RpciA9IGZpbmRfYmVzdF9zc2xfZGlyKCgiLi5cXC4uXFwuLiIsKSkKLSAgICBpZiBzc2xfZGlyIGlzIE5vbmU6Ci0gICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICBvbGRfY2QgPSBvcy5nZXRjd2QoKQotICAgIHRyeToKLSAgICAgICAgb3MuY2hkaXIoc3NsX2RpcikKLSAgICAgICAgIyBJZiB0aGUgc3NsIG1ha2VmaWxlcyBkbyBub3QgZXhpc3QsIHdlIGludm9rZSBQZXJsIHRvIGdlbmVyYXRlIHRoZW0uCi0gICAgICAgICMgRHVlIHRvIGEgYnVnIGluIHRoaXMgc2NyaXB0LCB0aGUgbWFrZWZpbGUgc29tZXRpbWVzIGVuZGVkIHVwIGVtcHR5Ci0gICAgICAgICMgRm9yY2UgYSByZWdlbmVyYXRpb24gaWYgaXQgaXMuCi0gICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShtYWtlZmlsZSkgb3Igb3MucGF0aC5nZXRzaXplKG1ha2VmaWxlKT09MDoKLSAgICAgICAgICAgIHByaW50ICJDcmVhdGluZyB0aGUgbWFrZWZpbGVzLi4uIgotICAgICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCi0gICAgICAgICAgICAjIFB1dCBvdXIgd29ya2luZyBQZXJsIGF0IHRoZSBmcm9udCBvZiBvdXIgcGF0aAotICAgICAgICAgICAgb3MuZW52aXJvblsiUEFUSCJdID0gb3MucGF0aC5kaXJuYW1lKHBlcmwpICsgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aHNlcCArIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLmVudmlyb25bIlBBVEgiXQotICAgICAgICAgICAgcnVuX2NvbmZpZ3VyZShjb25maWd1cmUsIGRvX3NjcmlwdCkKLSAgICAgICAgICAgIGlmIGFyY2g9PSJ4ODYiIGFuZCBkZWJ1ZzoKLSAgICAgICAgICAgICAgICAjIHRoZSBkb19tYXNtIHNjcmlwdCBpbiBvcGVuc3NsIGRvZXNuJ3QgZ2VuZXJhdGUgYSBkZWJ1ZwotICAgICAgICAgICAgICAgICMgYnVpbGQgbWFrZWZpbGUgc28gd2UgZ2VuZXJhdGUgaXQgaGVyZToKLSAgICAgICAgICAgICAgICBvcy5zeXN0ZW0oInBlcmwgdXRpbFxtazFtZi5wbCBkZWJ1ZyAiK2NvbmZpZ3VyZSsiID4iK21ha2VmaWxlKQotCi0gICAgICAgICMgTm93IHJ1biBtYWtlLgotICAgICAgICBtYWtlQ29tbWFuZCA9ICJubWFrZSAvbm9sb2dvIFBFUkw9XCIlc1wiIC1mIFwiJXNcIiIgJShwZXJsLCBtYWtlZmlsZSkKLSAgICAgICAgcHJpbnQgIkV4ZWN1dGluZyBzc2wgbWFrZWZpbGVzOiIsIG1ha2VDb21tYW5kCi0gICAgICAgIHN5cy5zdGRvdXQuZmx1c2goKQotICAgICAgICByYyA9IG9zLnN5c3RlbShtYWtlQ29tbWFuZCkKLSAgICAgICAgaWYgcmM6Ci0gICAgICAgICAgICBwcmludCAiRXhlY3V0aW5nICIrbWFrZWZpbGUrIiBmYWlsZWQiCi0gICAgICAgICAgICBwcmludCByYwotICAgICAgICAgICAgc3lzLmV4aXQocmMpCi0gICAgZmluYWxseToKLSAgICAgICAgb3MuY2hkaXIob2xkX2NkKQotICAgICMgQW5kIGZpbmFsbHksIHdlIGNhbiBidWlsZCB0aGUgX3NzbCBtb2R1bGUgaXRzZWxmIGZvciBQeXRob24uCi0gICAgZGVmcyA9ICJTU0xfRElSPVwiJXNcIiIgJSAoc3NsX2RpciwpCi0gICAgaWYgZGVidWc6Ci0gICAgICAgIGRlZnMgPSBkZWZzICsgIiAiICsgIkRFQlVHPTEiCi0gICAgaWYgYXJjaCBpbiAoJ2FtZDY0JywgJ2lhNjQnKToKLSAgICAgICAgZGVmcyA9IGRlZnMgKyAiIEVYVFJBX0NGTEFHUz0vR1MtIEVYVFJBX0xJQlM9YnVmZmVyb3ZlcmZsb3dVLmxpYiIKLSAgICBtYWtlQ29tbWFuZCA9ICdubWFrZSAvbm9sb2dvIC1mIF9zc2wubWFrICcgKyBkZWZzICsgIiAiICsgbWFrZV9mbGFncwotICAgIHByaW50ICJFeGVjdXRpbmc6IiwgbWFrZUNvbW1hbmQKLSAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKLSAgICByYyA9IG9zLnN5c3RlbShtYWtlQ29tbWFuZCkKLSAgICBzeXMuZXhpdChyYykKLQotaWYgX19uYW1lX189PSdfX21haW5fXyc6Ci0gICAgbWFpbigpCmRpZmYgLS1naXQgYS9QQy9WUzcuMS9iejIudmNwcm9qIGIvUEMvVlM3LjEvYnoyLnZjcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGIwMDVhMS4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9iejIudmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMjcxICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI3LjEwIg0KLQlOYW1lPSJiejIiDQotCVJvb3ROYW1lc3BhY2U9ImJ6MiINCi0JU2NjUHJvamVjdE5hbWU9ImJ6MiINCi0JU2NjTG9jYWxQYXRoPSIuLiI+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJXaW4zMiIvPg0KLQk8L1BsYXRmb3Jtcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii5cLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5ceDg2LXRlbXAtZGVidWdcYnoyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIwIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDLC4uXC4uXC4uXGJ6aXAyLTEuMC4zIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7X0RFQlVHO1dJTjMyO19XSU5ET1dTIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMyINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIg0KLQkJCQlDb21waWxlQXM9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iLi5cLi5cLi5cYnppcDItMS4wLjNcbGliYnoyLmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLi9iejJfZC5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJtc3ZjcnQsbGliYyINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vYnoyX2QucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTcwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vYnoyX2QubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJQ29tbWFuZExpbmU9ImNkIC4uXC4uXC4uXGJ6aXAyLTEuMC4zDQotbm1ha2UgL25vbG9nbyAvZiBtYWtlZmlsZS5tc2MNCi0iLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuXC4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXHg4Ni10ZW1wLXJlbGVhc2VcYnoyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQywuLlwuLlwuLlxiemlwMi0xLjAuMyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO05ERUJVRztXSU4zMjtfV0lORE9XUyINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIuLlwuLlwuLlxiemlwMi0xLjAuM1xsaWJiejIubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL2J6Mi5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJsaWJjIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9iejIucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTcwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vYnoyLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJCUNvbW1hbmRMaW5lPSJjZCAuLlwuLlwuLlxiemlwMi0xLjAuMw0KLW5tYWtlIC9ub2xvZ28gL2YgbWFrZWZpbGUubXNjIGxpYg0KLSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZUl0YW5pdW18V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuLy4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXGlhNjQtdGVtcC1yZWxlYXNlXGJ6MiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL1VTRUNMOk1TX0lUQU5JVU0gL0dTLSINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQywuLlwuLlwuLlxiemlwMi0xLjAuMyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO05ERUJVRztXSU4zMjtfV0lORE9XUyINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6SUE2NCAvVVNFTElOSzpNU19TREsiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9Ii4uXC4uXC4uXGJ6aXAyLTEuMC4zXGxpYmJ6Mi5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vYnoyLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9ImxpYmMiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL2J6Mi5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNzAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9iejIubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJQ29tbWFuZExpbmU9ImNkIC4uXC4uXC4uXGJ6aXAyLTEuMC4zDQotbm1ha2UgL25vbG9nbyAvZiBtYWtlZmlsZS5tc2MgbGliDQotIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlQU1ENjR8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iYW1kNjQtdGVtcC1yZWxlYXNlXGJ6MiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL1VTRUNMOk1TX09QVEVST04gL0dTLSINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQywuLlwuLlwuLlxiemlwMi0xLjAuMyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO05ERUJVRztXSU4zMjtfV0lORE9XUyINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6QU1ENjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIuLlwuLlwuLlxiemlwMi0xLjAuM1xsaWJiejIubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL2J6Mi5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJsaWJjIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9iejIucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTcwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vYnoyLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJCUNvbW1hbmRMaW5lPSJjZCAuLlwuLlwuLlxiemlwMi0xLjAuMw0KLW5tYWtlIC9ub2xvZ28gL2YgbWFrZWZpbGUubXNjIGxpYg0KLSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcYnoybW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9WUzcuMS9kYi5idWlsZCBiL1BDL1ZTNy4xL2RiLmJ1aWxkCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YTg3Zjc0Li4wMDAwMDAwCi0tLSBhL1BDL1ZTNy4xL2RiLmJ1aWxkCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIj8+Ci08cHJvamVjdD4KLSA8dGFyZ2V0IG5hbWU9ImFsbCIgZGVzY3JpcHRpb249IkJ1aWxkIGFsbCB0YXJnZXRzLiI+Ci0gICA8c29sdXRpb24gY29uZmlndXJhdGlvbj0icmVsZWFzZSI+Ci0gICAgIDxwcm9qZWN0cz4KLSAgICAgICA8aW5jbHVkZSBuYW1lPSJkYl9zdGF0aWMudmNwcm9qIiAvPgotICAgICA8L3Byb2plY3RzPgotICAgPC9zb2x1dGlvbj4KLSA8L3RhcmdldD4KLTwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL1BDL1ZTNy4xL2ZpZWxkMy5weSBiL1BDL1ZTNy4xL2ZpZWxkMy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDdmMjRjYS4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9maWVsZDMucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0jIEFuIGFic3VyZCB3b3JrYXJvdW5kIGZvciB0aGUgbGFjayBvZiBhcml0aG1ldGljIGluIE1TJ3MgcmVzb3VyY2UgY29tcGlsZXIuCi0jIEFmdGVyIGJ1aWxkaW5nIFB5dGhvbiwgcnVuIHRoaXMsIHRoZW4gcGFzdGUgdGhlIG91dHB1dCBpbnRvIHRoZSBhcHByb3ByaWF0ZQotIyBwYXJ0IG9mIFBDXHB5dGhvbl9udC5yYy4KLSMgRXhhbXBsZSBvdXRwdXQ6Ci0jCi0jICogRm9yIDIuM2EwLAotIyAqIFBZX01JQ1JPX1ZFUlNJT04gPSAwCi0jICogUFlfUkVMRUFTRV9MRVZFTCA9ICdhbHBoYScgPSAweEEKLSMgKiBQWV9SRUxFQVNFX1NFUklBTCA9IDEKLSMgKgotIyAqIGFuZCAwKjEwMDAgKyAxMCoxMCArIDEgPSAxMDEuCi0jICovCi0jICNkZWZpbmUgRklFTEQzIDEwMQotCi1pbXBvcnQgc3lzCi0KLW1ham9yLCBtaW5vciwgbWljcm8sIGxldmVsLCBzZXJpYWwgPSBzeXMudmVyc2lvbl9pbmZvCi1sZXZlbG51bSA9IHsnYWxwaGEnOiAweEEsCi0gICAgICAgICAgICAnYmV0YSc6IDB4QiwKLSAgICAgICAgICAgICdjYW5kaWRhdGUnOiAweEMsCi0gICAgICAgICAgICAnZmluYWwnOiAweEYsCi0gICAgICAgICAgIH1bbGV2ZWxdCi1zdHJpbmcgPSBzeXMudmVyc2lvbi5zcGxpdCgpWzBdICMgbGlrZSAnMi4zYTAnCi0KLXByaW50ICIgKiBGb3IgJXMsIiAlIHN0cmluZwotcHJpbnQgIiAqIFBZX01JQ1JPX1ZFUlNJT04gPSAlZCIgJSBtaWNybwotcHJpbnQgIiAqIFBZX1JFTEVBU0VfTEVWRUwgPSAlciA9ICVzIiAlIChsZXZlbCwgaGV4KGxldmVsbnVtKSkKLXByaW50ICIgKiBQWV9SRUxFQVNFX1NFUklBTCA9ICVkIiAlIHNlcmlhbAotcHJpbnQgIiAqIgotCi1maWVsZDMgPSBtaWNybyAqIDEwMDAgKyBsZXZlbG51bSAqIDEwICsgc2VyaWFsCi0KLXByaW50ICIgKiBhbmQgJWQqMTAwMCArICVkKjEwICsgJWQgPSAlZCIgJSAobWljcm8sIGxldmVsbnVtLCBzZXJpYWwsIGZpZWxkMykKLXByaW50ICIgKi8iCi1wcmludCAiI2RlZmluZSBGSUVMRDMiLCBmaWVsZDMKZGlmZiAtLWdpdCBhL1BDL1ZTNy4xL2luc3RhbGxlci5ibXAgYi9QQy9WUzcuMS9pbnN0YWxsZXIuYm1wCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODc1ZTE5Li4wMDAwMDAwCi0tLSBhL1BDL1ZTNy4xL2luc3RhbGxlci5ibXAKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9QQy9WUzcuMS9tYWtlX2J1aWxkaW5mby5jIGIvUEMvVlM3LjEvbWFrZV9idWlsZGluZm8uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmFhMmI2Ni4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9tYWtlX2J1aWxkaW5mby5jCisrKyAvZGV2L251bGwKQEAgLTEsOTIgKzAsMCBAQAotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0KLS8qIFRoaXMgZmlsZSBjcmVhdGVzIHRoZSBnZXRidWlsZGluZm8ubyBvYmplY3QsIGJ5IGZpcnN0Ci0gICBpbnZva2luZyBzdWJ3Y3Jldi5leGUgKGlmIGZvdW5kKSwgYW5kIHRoZW4gaW52b2tpbmcgY2wuZXhlLgotICAgQXMgYSBzaWRlIGVmZmVjdCwgaXQgbWlnaHQgZ2VuZXJhdGUgUENcVlM3LjFcZ2V0YnVpbGRpbmZvMi5jCi0gICBhbHNvLiBJZiB0aGlzIGlzbid0IGEgc3VidmVyc2lvbiBjaGVja291dCwgb3Igc3Vid2NyZXYgaXNuJ3QKLSAgIGZvdW5kLCBpdCBjb21waWxlcyAuLlxcLi5cXE1vZHVsZXNcXGdldGJ1aWxkaW5mby5jIGluc3RlYWQuCi0KLSAgIEN1cnJlbnRseSwgc3Vid2NyZXYuZXhlIGlzIGZvdW5kIGZyb20gdGhlIHJlZ2lzdHJ5IGVudHJpZXMKLSAgIG9mIFRvcnRvaXNlU1ZOLgotCi0gICBObyBhdHRlbXB0IGlzIG1hZGUgdG8gcGxhY2UgZ2V0YnVpbGRpbmZvLm8gaW50byB0aGUgcHJvcGVyCi0gICBiaW5hcnkgZGlyZWN0b3J5LiBUaGlzIGlzbid0IG5lY2Vzc2FyeSwgYXMgdGhpcyB0b29sIGlzCi0gICBpbnZva2VkIGFzIGEgcHJlLWxpbmsgc3RlcCBmb3IgcHl0aG9uY29yZSwgc28gdGhhdCBvdmVyd3JpdGVzCi0gICBhbnkgcHJldmlvdXMgZ2V0YnVpbGRpbmZvLm8uCi0KLSovCi0KLWludCBtYWtlX2J1aWxkaW5mbzIoKQotewotICAgIHN0cnVjdCBfc3RhdCBzdDsKLSAgICBIS0VZIGhUb3J0b2lzZTsKLSAgICBjaGFyIGNvbW1hbmRbNTAwXTsKLSAgICBEV09SRCB0eXBlLCBzaXplOwotICAgIGlmIChfc3RhdCgiLnN2biIsICZzdCkgPCAwKQotICAgICAgICByZXR1cm4gMDsKLSAgICAvKiBBbGxvdyBzdXBwcmVzc2lvbiBvZiBzdWJ3Y3Jldi5leGUgaW52b2NhdGlvbiBpZiBhIG5vX3N1YndjcmV2IGZpbGUgaXMgcHJlc2VudC4gKi8KLSAgICBpZiAoX3N0YXQoIm5vX3N1YndjcmV2IiwgJnN0KSA9PSAwKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAoUmVnT3BlbktleShIS0VZX0xPQ0FMX01BQ0hJTkUsICJTb2Z0d2FyZVxcVG9ydG9pc2VTVk4iLCAmaFRvcnRvaXNlKSAhPSBFUlJPUl9TVUNDRVNTICYmCi0gICAgICAgIFJlZ09wZW5LZXkoSEtFWV9DVVJSRU5UX1VTRVIsICJTb2Z0d2FyZVxcVG9ydG9pc2VTVk4iLCAmaFRvcnRvaXNlKSAhPSBFUlJPUl9TVUNDRVNTKQotICAgICAgICAvKiBUb3J0b2lzZSBub3QgaW5zdGFsbGVkICovCi0gICAgICAgIHJldHVybiAwOwotICAgIGNvbW1hbmRbMF0gPSAnIic7ICAvKiBxdW90ZSB0aGUgcGF0aCB0byB0aGUgZXhlY3V0YWJsZSAqLwotICAgIHNpemUgPSBzaXplb2YoY29tbWFuZCkgLSAxOwotICAgIGlmIChSZWdRdWVyeVZhbHVlRXgoaFRvcnRvaXNlLCAiRGlyZWN0b3J5IiwgMCwgJnR5cGUsIGNvbW1hbmQrMSwgJnNpemUpICE9IEVSUk9SX1NVQ0NFU1MgfHwKLSAgICAgICAgdHlwZSAhPSBSRUdfU1opCi0gICAgICAgIC8qIFJlZ2lzdHJ5IGNvcnJ1cHRlZCAqLwotICAgICAgICByZXR1cm4gMDsKLSAgICBzdHJjYXQoY29tbWFuZCwgImJpblxcc3Vid2NyZXYuZXhlIik7Ci0gICAgaWYgKF9zdGF0KGNvbW1hbmQrMSwgJnN0KSA8IDApCi0gICAgICAgIC8qIHN1YndjcmV2LmV4ZSBub3QgcGFydCBvZiB0aGUgcmVsZWFzZSAqLwotICAgICAgICByZXR1cm4gMDsKLSAgICBzdHJjYXQoY29tbWFuZCwgIlwiIC4uXFwuLiAuLlxcLi5cXE1vZHVsZXNcXGdldGJ1aWxkaW5mby5jIGdldGJ1aWxkaW5mbzIuYyIpOwotICAgIHB1dHMoY29tbWFuZCk7IGZmbHVzaChzdGRvdXQpOwotICAgIGlmIChzeXN0ZW0oY29tbWFuZCkgPCAwKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gMTsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqYXJndltdKQotewotICAgIGNoYXIgY29tbWFuZFs1MDBdID0gImNsLmV4ZSAtYyAtRF9XSU4zMiAtRFVTRV9ETF9FWFBPUlQgLURfV0lORE9XUyAtRFdJTjMyIC1EX1dJTkRMTCAiOwotICAgIGludCBkb191bmxpbmssIHJlc3VsdDsKLSAgICBpZiAoYXJnYyAhPSAyKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAibWFrZV9idWlsZGluZm8gJChDb25maWd1cmF0aW9uTmFtZSlcbiIpOwotICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwotICAgIH0KLSAgICBpZiAoc3RyY21wKGFyZ3ZbMV0sICJSZWxlYXNlIikgPT0gMCkgewotICAgICAgICBzdHJjYXQoY29tbWFuZCwgIi1NRCAiKTsKLSAgICB9Ci0gICAgZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJEZWJ1ZyIpID09IDApIHsKLSAgICAgICAgc3RyY2F0KGNvbW1hbmQsICItRF9ERUJVRyAtTURkICIpOwotICAgIH0KLSAgICBlbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgIlJlbGVhc2VJdGFuaXVtIikgPT0gMCkgewotICAgICAgICBzdHJjYXQoY29tbWFuZCwgIi1NRCAvVVNFQ0w6TVNfSVRBTklVTSAiKTsKLSAgICB9Ci0gICAgZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJSZWxlYXNlQU1ENjQiKSA9PSAwKSB7Ci0gICAgICAgIHN0cmNhdChjb21tYW5kLCAiLU1EICIpOwotICAgICAgICBzdHJjYXQoY29tbWFuZCwgIi1NRCAvVVNFQ0w6TVNfT1BURVJPTiAiKTsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAidW5zdXBwb3J0ZWQgY29uZmlndXJhdGlvbiAlc1xuIiwgYXJndlsxXSk7Ci0gICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Ci0gICAgfQotCi0gICAgaWYgKChkb191bmxpbmsgPSBtYWtlX2J1aWxkaW5mbzIoKSkpCi0gICAgICAgIHN0cmNhdChjb21tYW5kLCAiZ2V0YnVpbGRpbmZvMi5jIC1EU1VCV0NSRVYgIik7Ci0gICAgZWxzZQotICAgICAgICBzdHJjYXQoY29tbWFuZCwgIi4uXFwuLlxcTW9kdWxlc1xcZ2V0YnVpbGRpbmZvLmMiKTsKLSAgICBzdHJjYXQoY29tbWFuZCwgIiAtRm9nZXRidWlsZGluZm8ubyAtSS4uXFwuLlxcSW5jbHVkZSAtSS4uXFwuLlxcUEMiKTsKLSAgICBwdXRzKGNvbW1hbmQpOyBmZmx1c2goc3Rkb3V0KTsKLSAgICByZXN1bHQgPSBzeXN0ZW0oY29tbWFuZCk7Ci0gICAgaWYgKGRvX3VubGluaykKLSAgICAgICAgdW5saW5rKCJnZXRidWlsZGluZm8yLmMiKTsKLSAgICBpZiAocmVzdWx0IDwgMCkKLSAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLSAgICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL1BDL1ZTNy4xL21ha2VfYnVpbGRpbmZvLnZjcHJvaiBiL1BDL1ZTNy4xL21ha2VfYnVpbGRpbmZvLnZjcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDBjOGE1ZC4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9tYWtlX2J1aWxkaW5mby52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSwxMjIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0id2luZG93cy0xMjUwIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjcuMTAiDQotCU5hbWU9Im1ha2VfYnVpbGRpbmZvIg0KLQlQcm9qZWN0R1VJRD0ie0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0iDQotCUtleXdvcmQ9IldpbjMyUHJvaiI+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJXaW4zMiIvPg0KLQk8L1BsYXRmb3Jtcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXHg4Ni10ZW1wLXJlbGVhc2VcbWFrZV9idWlsZGluZm8iDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjAiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfREVCVUc7X0NPTlNPTEUiDQotCQkJCU1pbmltYWxSZWJ1aWxkPSJUUlVFIg0KLQkJCQlCYXNpY1J1bnRpbWVDaGVja3M9IjMiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSI1Ig0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMCINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjQiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJT3V0cHV0RmlsZT0iJChPdXREaXIpL21ha2VfYnVpbGRpbmZvLmV4ZSINCi0JCQkJTGlua0luY3JlbWVudGFsPSIyIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9IiQoT3V0RGlyKS9tYWtlX2J1aWxkaW5mby5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1yZWxlYXNlXG1ha2VfYnVpbGRpbmZvIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUNoYXJhY3RlclNldD0iMiI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO05ERUJVRztfQ09OU09MRSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjQiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIwIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcikvbWFrZV9idWlsZGluZm8uZXhlIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCQlPcHRpbWl6ZVJlZmVyZW5jZXM9IjIiDQotCQkJCUVuYWJsZUNPTURBVEZvbGRpbmc9IjIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsdGVyDQotCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KLQkJCUZpbHRlcj0iY3BwO2M7Y3h4O2RlZjtvZGw7aWRsO2hwajtiYXQ7YXNtO2FzbXgiDQotCQkJVW5pcXVlSWRlbnRpZmllcj0iezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn0iPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLlxtYWtlX2J1aWxkaW5mby5jIj4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM3LjEvbWFrZV92ZXJzaW9uaW5mby52Y3Byb2ogYi9QQy9WUzcuMS9tYWtlX3ZlcnNpb25pbmZvLnZjcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmZmYTRlYi4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9tYWtlX3ZlcnNpb25pbmZvLnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDE0MiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iNy4xMCINCi0JTmFtZT0ibWFrZV92ZXJzaW9uaW5mbyINCi0JUm9vdE5hbWVzcGFjZT0ibWFrZV92ZXJzaW9uaW5mbyINCi0JU2NjUHJvamVjdE5hbWU9Im1ha2VfdmVyc2lvbmluZm8iDQotCVNjY0xvY2FsUGF0aD0iLi4iPg0KLQk8UGxhdGZvcm1zPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0iV2luMzIiLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxDb25maWd1cmF0aW9ucz4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii5cLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5ceDg2LXRlbXAtcmVsZWFzZVxtYWtlX3ZlcnNpb25pbmZvIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtOREVCVUc7X0NPTlNPTEUiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIg0KLQkJCQlDb21waWxlQXM9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkJQ29tbWFuZExpbmU9Ii5cbWFrZV92ZXJzaW9uaW5mby5leGUgJmd0Oy4uXC4uXFBDXHB5dGhvbm50X3JjLmgNCi0iDQotCQkJCU91dHB1dHM9Ii4uXC4uXFBDXHB5dGhvbm50X3JjLmgiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9Im9kYmNjcDMyLmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLlwuL21ha2VfdmVyc2lvbmluZm8uZXhlIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vbWFrZV92ZXJzaW9uaW5mby5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWQwMDAwMDAiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJCUNvbW1hbmRMaW5lPSIkKFRhcmdldEZpbGVOYW1lKSAmZ3Q7IC4uXC4uXFBDXHB5dGhvbl9udC5oIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuXC4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXHg4Ni10ZW1wLWRlYnVnXG1ha2VfdmVyc2lvbmluZm8iDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIg0KLQkJCUNoYXJhY3RlclNldD0iMiI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIwIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7X0RFQlVHO19DT05TT0xFIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMyINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCUJyb3dzZUluZm9ybWF0aW9uPSIxIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJCUNvbW1hbmRMaW5lPSIuXG1ha2VfdmVyc2lvbmluZm9fZC5leGUgJmd0Oy4uXC4uXFBDXHB5dGhvbm50X3JjX2QuaA0KLSINCi0JCQkJT3V0cHV0cz0iLi5cLi5cUENccHl0aG9ubnRfcmNfZC5oIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJvZGJjY3AzMi5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vbWFrZV92ZXJzaW9uaW5mb19kLmV4ZSINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL21ha2VfdmVyc2lvbmluZm9fZC5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWQwMDAwMDAiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJCUNvbW1hbmRMaW5lPSIkKFRhcmdldEZpbGVOYW1lKSAmZ3Q7IC4uXC4uXFBDXHB5dGhvbl9udF9kLmgiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcbWFrZV92ZXJzaW9uaW5mby5jIj4NCi0JCTwvRmlsZT4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM3LjEvcGNidWlsZC5zbG4gYi9QQy9WUzcuMS9wY2J1aWxkLnNsbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzIwZjE5Yy4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9wY2J1aWxkLnNsbgorKysgL2Rldi9udWxsCkBAIC0xLDI3NSArMCwwIEBACi1NaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiA4LjAwDQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfc29ja2V0IiwgIl9zb2NrZXQudmNwcm9qIiwgInszMjRGNjZDMi00NEQwLTRENTAtQjk3OS1GOURBRTdGRDM2REJ9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX3NzbCIsICJfc3NsLnZjcHJvaiIsICJ7OEU4NUJBNTQtOEE0Ny00QzhCLUI3MkUtOEUxNzU3OUNDNkQ3fSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0gPSB7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fQ0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0gPSB7RTlFMEExRjYtMDAwOS00RThDLUI4RjgtMUI4RjVENDlBMDU4fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl90ZXN0Y2FwaSIsICJfdGVzdGNhcGkudmNwcm9qIiwgIns1OUNCRjQ3NC05RTA2LTRDNTAtOTE0Mi1DNDRBMTE4QkI0NDd9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX3RraW50ZXIiLCAiX3RraW50ZXIudmNwcm9qIiwgIns1QjUxREZGNy01REMwLTQxRjgtODc5MS1BNEFCNzExNEExNTF9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiYnoyIiwgImJ6Mi52Y3Byb2oiLCAie0FDNTU3Nzg4LTYzNTQtNDNGNy1CRTA1LUM5QzhDNTlBMzQ0QX0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJtYWtlX3ZlcnNpb25pbmZvIiwgIm1ha2VfdmVyc2lvbmluZm8udmNwcm9qIiwgIntGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAicHlleHBhdCIsICJweWV4cGF0LnZjcHJvaiIsICJ7N0U1NTEzOTMtM0M0My00N0Y4LTlGM0YtNUJDMzY4QTZDNDg3fSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInB5dGhvbiIsICJweXRob24udmNwcm9qIiwgIntCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAicHl0aG9uY29yZSIsICJweXRob25jb3JlLnZjcHJvaiIsICJ7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0gPSB7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfQ0KLQkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0gPSB7QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInB5dGhvbnciLCAicHl0aG9udy52Y3Byb2oiLCAie0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJzZWxlY3QiLCAic2VsZWN0LnZjcHJvaiIsICJ7OTcyMzlBNTYtREJDMC00MUQyLUJDMTQtQzg3RDlCOTdENjNCfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInVuaWNvZGVkYXRhIiwgInVuaWNvZGVkYXRhLnZjcHJvaiIsICJ7RkE1RkM3RUItQzcyRi00MTVGLUFFNDItOTFERDYwNUFCRERBfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInc5eHBvcGVuIiwgInc5eHBvcGVuLnZjcHJvaiIsICJ7RTlFMEExRjYtMDAwOS00RThDLUI4RjgtMUI4RjVENDlBMDU4fSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIndpbnNvdW5kIiwgIndpbnNvdW5kLnZjcHJvaiIsICJ7NTFGMzVGQUUtRkI5Mi00QjJDLTkxODctMTU0MkMwNjVBRDc3fSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9lbGVtZW50dHJlZSIsICJfZWxlbWVudHRyZWUudmNwcm9qIiwgInsxOTY2RERFMi00QUI3LTRFNEUtQUNDOS1DMTIxRTREMzdGOEV9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAibWFrZV9idWlsZGluZm8iLCAibWFrZV9idWlsZGluZm8udmNwcm9qIiwgIntDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX21zaSIsICJfbXNpLnZjcHJvaiIsICJ7MkMwQkVGQjktNzBFMi00RjgwLUFDNUItNEFCOEVFMDIzNTc0fSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9jdHlwZXMiLCAiX2N0eXBlcy52Y3Byb2oiLCAie0YyMkY0MEY0LUQzMTgtNDBEQy05NkIzLTg4REM4MUNFMDg5NH0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfY3R5cGVzX3Rlc3QiLCAiX2N0eXBlc190ZXN0LnZjcHJvaiIsICJ7OENGMzM0RDktNEY4Mi00MkVCLTk3QUYtODM1OTJDNUFGRDJGfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0YyMkY0MEY0LUQzMTgtNDBEQy05NkIzLTg4REM4MUNFMDg5NH0gPSB7RjIyRjQwRjQtRDMxOC00MERDLTk2QjMtODhEQzgxQ0UwODk0fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9zcWxpdGUzIiwgIl9zcWxpdGUzLnZjcHJvaiIsICJ7MkZGMEEzMTItMjJGOS00QzM0LUIwNzAtODQyOTE2REUyN0E5fSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1HbG9iYWwNCi0JR2xvYmFsU2VjdGlvbihTb2x1dGlvbkNvbmZpZ3VyYXRpb24pID0gcHJlU29sdXRpb24NCi0JCURlYnVnID0gRGVidWcNCi0JCVJlbGVhc2UgPSBSZWxlYXNlDQotCQlSZWxlYXNlQU1ENjQgPSBSZWxlYXNlQU1ENjQNCi0JCVJlbGVhc2VJdGFuaXVtID0gUmVsZWFzZUl0YW5pdW0NCi0JRW5kR2xvYmFsU2VjdGlvbg0KLQlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uKSA9IHBvc3RTb2x1dGlvbg0KLQkJezMyNEY2NkMyLTQ0RDAtNEQ1MC1COTc5LUY5REFFN0ZEMzZEQn0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXszMjRGNjZDMi00NEQwLTRENTAtQjk3OS1GOURBRTdGRDM2REJ9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezMyNEY2NkMyLTQ0RDAtNEQ1MC1COTc5LUY5REFFN0ZEMzZEQn0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7MzI0RjY2QzItNDREMC00RDUwLUI5NzktRjlEQUU3RkQzNkRCfS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7MzI0RjY2QzItNDREMC00RDUwLUI5NzktRjlEQUU3RkQzNkRCfS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7MzI0RjY2QzItNDREMC00RDUwLUI5NzktRjlEQUU3RkQzNkRCfS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJezMyNEY2NkMyLTQ0RDAtNEQ1MC1COTc5LUY5REFFN0ZEMzZEQn0uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXszMjRGNjZDMi00NEQwLTRENTAtQjk3OS1GOURBRTdGRDM2REJ9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJezhFODVCQTU0LThBNDctNEM4Qi1CNzJFLThFMTc1NzlDQzZEN30uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXs4RTg1QkE1NC04QTQ3LTRDOEItQjcyRS04RTE3NTc5Q0M2RDd9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezhFODVCQTU0LThBNDctNEM4Qi1CNzJFLThFMTc1NzlDQzZEN30uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7OEU4NUJBNTQtOEE0Ny00QzhCLUI3MkUtOEUxNzU3OUNDNkQ3fS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7OEU4NUJBNTQtOEE0Ny00QzhCLUI3MkUtOEUxNzU3OUNDNkQ3fS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7OEU4NUJBNTQtOEE0Ny00QzhCLUI3MkUtOEUxNzU3OUNDNkQ3fS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJezhFODVCQTU0LThBNDctNEM4Qi1CNzJFLThFMTc1NzlDQzZEN30uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXs4RTg1QkE1NC04QTQ3LTRDOEItQjcyRS04RTE3NTc5Q0M2RDd9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJezU5Q0JGNDc0LTlFMDYtNEM1MC05MTQyLUM0NEExMThCQjQ0N30uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXs1OUNCRjQ3NC05RTA2LTRDNTAtOTE0Mi1DNDRBMTE4QkI0NDd9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezU5Q0JGNDc0LTlFMDYtNEM1MC05MTQyLUM0NEExMThCQjQ0N30uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7NTlDQkY0NzQtOUUwNi00QzUwLTkxNDItQzQ0QTExOEJCNDQ3fS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7NTlDQkY0NzQtOUUwNi00QzUwLTkxNDItQzQ0QTExOEJCNDQ3fS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7NTlDQkY0NzQtOUUwNi00QzUwLTkxNDItQzQ0QTExOEJCNDQ3fS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJezU5Q0JGNDc0LTlFMDYtNEM1MC05MTQyLUM0NEExMThCQjQ0N30uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXs1OUNCRjQ3NC05RTA2LTRDNTAtOTE0Mi1DNDRBMTE4QkI0NDd9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJezVCNTFERkY3LTVEQzAtNDFGOC04NzkxLUE0QUI3MTE0QTE1MX0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXs1QjUxREZGNy01REMwLTQxRjgtODc5MS1BNEFCNzExNEExNTF9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezVCNTFERkY3LTVEQzAtNDFGOC04NzkxLUE0QUI3MTE0QTE1MX0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7NUI1MURGRjctNURDMC00MUY4LTg3OTEtQTRBQjcxMTRBMTUxfS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7NUI1MURGRjctNURDMC00MUY4LTg3OTEtQTRBQjcxMTRBMTUxfS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7NUI1MURGRjctNURDMC00MUY4LTg3OTEtQTRBQjcxMTRBMTUxfS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJezVCNTFERkY3LTVEQzAtNDFGOC04NzkxLUE0QUI3MTE0QTE1MX0uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXs1QjUxREZGNy01REMwLTQxRjgtODc5MS1BNEFCNzExNEExNTF9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJe0FDNTU3Nzg4LTYzNTQtNDNGNy1CRTA1LUM5QzhDNTlBMzQ0QX0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtBQzU1Nzc4OC02MzU0LTQzRjctQkUwNS1DOUM4QzU5QTM0NEF9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0FDNTU3Nzg4LTYzNTQtNDNGNy1CRTA1LUM5QzhDNTlBMzQ0QX0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7QUM1NTc3ODgtNjM1NC00M0Y3LUJFMDUtQzlDOEM1OUEzNDRBfS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7QUM1NTc3ODgtNjM1NC00M0Y3LUJFMDUtQzlDOEM1OUEzNDRBfS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7QUM1NTc3ODgtNjM1NC00M0Y3LUJFMDUtQzlDOEM1OUEzNDRBfS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJe0FDNTU3Nzg4LTYzNTQtNDNGNy1CRTA1LUM5QzhDNTlBMzQ0QX0uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXtBQzU1Nzc4OC02MzU0LTQzRjctQkUwNS1DOUM4QzU5QTM0NEF9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0uUmVsZWFzZUFNRDY0LkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5SZWxlYXNlSXRhbml1bS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5SZWxlYXNlSXRhbml1bS5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJezdFNTUxMzkzLTNDNDMtNDdGOC05RjNGLTVCQzM2OEE2QzQ4N30uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXs3RTU1MTM5My0zQzQzLTQ3RjgtOUYzRi01QkMzNjhBNkM0ODd9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezdFNTUxMzkzLTNDNDMtNDdGOC05RjNGLTVCQzM2OEE2QzQ4N30uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7N0U1NTEzOTMtM0M0My00N0Y4LTlGM0YtNUJDMzY4QTZDNDg3fS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7N0U1NTEzOTMtM0M0My00N0Y4LTlGM0YtNUJDMzY4QTZDNDg3fS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7N0U1NTEzOTMtM0M0My00N0Y4LTlGM0YtNUJDMzY4QTZDNDg3fS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJezdFNTUxMzkzLTNDNDMtNDdGOC05RjNGLTVCQzM2OEE2QzQ4N30uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXs3RTU1MTM5My0zQzQzLTQ3RjgtOUYzRi01QkMzNjhBNkM0ODd9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJe0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJe0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJe0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtGNDIyOUNDMy04NzNDLTQ5QUUtOTcyOS1ERDMwOEVENENENEF9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJe0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXtGNDIyOUNDMy04NzNDLTQ5QUUtOTcyOS1ERDMwOEVENENENEF9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJezk3MjM5QTU2LURCQzAtNDFEMi1CQzE0LUM4N0Q5Qjk3RDYzQn0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXs5NzIzOUE1Ni1EQkMwLTQxRDItQkMxNC1DODdEOUI5N0Q2M0J9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezk3MjM5QTU2LURCQzAtNDFEMi1CQzE0LUM4N0Q5Qjk3RDYzQn0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7OTcyMzlBNTYtREJDMC00MUQyLUJDMTQtQzg3RDlCOTdENjNCfS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7OTcyMzlBNTYtREJDMC00MUQyLUJDMTQtQzg3RDlCOTdENjNCfS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7OTcyMzlBNTYtREJDMC00MUQyLUJDMTQtQzg3RDlCOTdENjNCfS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJezk3MjM5QTU2LURCQzAtNDFEMi1CQzE0LUM4N0Q5Qjk3RDYzQn0uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXs5NzIzOUE1Ni1EQkMwLTQxRDItQkMxNC1DODdEOUI5N0Q2M0J9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJe0ZBNUZDN0VCLUM3MkYtNDE1Ri1BRTQyLTkxREQ2MDVBQkREQX0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtGQTVGQzdFQi1DNzJGLTQxNUYtQUU0Mi05MURENjA1QUJEREF9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0ZBNUZDN0VCLUM3MkYtNDE1Ri1BRTQyLTkxREQ2MDVBQkREQX0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RkE1RkM3RUItQzcyRi00MTVGLUFFNDItOTFERDYwNUFCRERBfS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7RkE1RkM3RUItQzcyRi00MTVGLUFFNDItOTFERDYwNUFCRERBfS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7RkE1RkM3RUItQzcyRi00MTVGLUFFNDItOTFERDYwNUFCRERBfS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJe0ZBNUZDN0VCLUM3MkYtNDE1Ri1BRTQyLTkxREQ2MDVBQkREQX0uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXtGQTVGQzdFQi1DNzJGLTQxNUYtQUU0Mi05MURENjA1QUJEREF9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RTlFMEExRjYtMDAwOS00RThDLUI4RjgtMUI4RjVENDlBMDU4fS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7RTlFMEExRjYtMDAwOS00RThDLUI4RjgtMUI4RjVENDlBMDU4fS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezUxRjM1RkFFLUZCOTItNEIyQy05MTg3LTE1NDJDMDY1QUQ3N30uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXs1MUYzNUZBRS1GQjkyLTRCMkMtOTE4Ny0xNTQyQzA2NUFENzd9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezUxRjM1RkFFLUZCOTItNEIyQy05MTg3LTE1NDJDMDY1QUQ3N30uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7NTFGMzVGQUUtRkI5Mi00QjJDLTkxODctMTU0MkMwNjVBRDc3fS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7NTFGMzVGQUUtRkI5Mi00QjJDLTkxODctMTU0MkMwNjVBRDc3fS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7NTFGMzVGQUUtRkI5Mi00QjJDLTkxODctMTU0MkMwNjVBRDc3fS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJezUxRjM1RkFFLUZCOTItNEIyQy05MTg3LTE1NDJDMDY1QUQ3N30uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXs1MUYzNUZBRS1GQjkyLTRCMkMtOTE4Ny0xNTQyQzA2NUFENzd9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJezE5NjZEREUyLTRBQjctNEU0RS1BQ0M5LUMxMjFFNEQzN0Y4RX0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXsxOTY2RERFMi00QUI3LTRFNEUtQUNDOS1DMTIxRTREMzdGOEV9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezE5NjZEREUyLTRBQjctNEU0RS1BQ0M5LUMxMjFFNEQzN0Y4RX0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7MTk2NkRERTItNEFCNy00RTRFLUFDQzktQzEyMUU0RDM3RjhFfS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7MTk2NkRERTItNEFCNy00RTRFLUFDQzktQzEyMUU0RDM3RjhFfS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7MTk2NkRERTItNEFCNy00RTRFLUFDQzktQzEyMUU0RDM3RjhFfS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJezE5NjZEREUyLTRBQjctNEU0RS1BQ0M5LUMxMjFFNEQzN0Y4RX0uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXsxOTY2RERFMi00QUI3LTRFNEUtQUNDOS1DMTIxRTREMzdGOEV9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUmVsZWFzZUFNRDY0LkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfS5SZWxlYXNlSXRhbml1bS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfS5SZWxlYXNlSXRhbml1bS5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJezJDMEJFRkI5LTcwRTItNEY4MC1BQzVCLTRBQjhFRTAyMzU3NH0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXsyQzBCRUZCOS03MEUyLTRGODAtQUM1Qi00QUI4RUUwMjM1NzR9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezJDMEJFRkI5LTcwRTItNEY4MC1BQzVCLTRBQjhFRTAyMzU3NH0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7MkMwQkVGQjktNzBFMi00RjgwLUFDNUItNEFCOEVFMDIzNTc0fS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7MkMwQkVGQjktNzBFMi00RjgwLUFDNUItNEFCOEVFMDIzNTc0fS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7MkMwQkVGQjktNzBFMi00RjgwLUFDNUItNEFCOEVFMDIzNTc0fS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJezJDMEJFRkI5LTcwRTItNEY4MC1BQzVCLTRBQjhFRTAyMzU3NH0uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXsyQzBCRUZCOS03MEUyLTRGODAtQUM1Qi00QUI4RUUwMjM1NzR9LlJlbGVhc2VJdGFuaXVtLkJ1aWxkLjAgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJe0YyMkY0MEY0LUQzMTgtNDBEQy05NkIzLTg4REM4MUNFMDg5NH0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtGMjJGNDBGNC1EMzE4LTQwREMtOTZCMy04OERDODFDRTA4OTR9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0YyMkY0MEY0LUQzMTgtNDBEQy05NkIzLTg4REM4MUNFMDg5NH0uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjIyRjQwRjQtRDMxOC00MERDLTk2QjMtODhEQzgxQ0UwODk0fS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjIyRjQwRjQtRDMxOC00MERDLTk2QjMtODhEQzgxQ0UwODk0fS5SZWxlYXNlQU1ENjQuQWN0aXZlQ2ZnID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7RjIyRjQwRjQtRDMxOC00MERDLTk2QjMtODhEQzgxQ0UwODk0fS5SZWxlYXNlQU1ENjQuQnVpbGQuMCA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJe0YyMkY0MEY0LUQzMTgtNDBEQy05NkIzLTg4REM4MUNFMDg5NH0uUmVsZWFzZUl0YW5pdW0uQWN0aXZlQ2ZnID0gUmVsZWFzZUl0YW5pdW18V2luMzINCi0JCXs4Q0YzMzREOS00RjgyLTQyRUItOTdBRi04MzU5MkM1QUZEMkZ9LkRlYnVnLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7OENGMzM0RDktNEY4Mi00MkVCLTk3QUYtODM1OTJDNUFGRDJGfS5EZWJ1Zy5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXs4Q0YzMzREOS00RjgyLTQyRUItOTdBRi04MzU5MkM1QUZEMkZ9LlJlbGVhc2UuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezhDRjMzNEQ5LTRGODItNDJFQi05N0FGLTgzNTkyQzVBRkQyRn0uUmVsZWFzZS5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJezhDRjMzNEQ5LTRGODItNDJFQi05N0FGLTgzNTkyQzVBRkQyRn0uUmVsZWFzZUFNRDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2VBTUQ2NHxXaW4zMg0KLQkJezhDRjMzNEQ5LTRGODItNDJFQi05N0FGLTgzNTkyQzVBRkQyRn0uUmVsZWFzZUFNRDY0LkJ1aWxkLjAgPSBSZWxlYXNlQU1ENjR8V2luMzINCi0JCXs4Q0YzMzREOS00RjgyLTQyRUItOTdBRi04MzU5MkM1QUZEMkZ9LlJlbGVhc2VJdGFuaXVtLkFjdGl2ZUNmZyA9IFJlbGVhc2VJdGFuaXVtfFdpbjMyDQotCQl7MkZGMEEzMTItMjJGOS00QzM0LUIwNzAtODQyOTE2REUyN0E5fS5EZWJ1Zy5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJezJGRjBBMzEyLTIyRjktNEMzNC1CMDcwLTg0MjkxNkRFMjdBOX0uRGVidWcuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7MkZGMEEzMTItMjJGOS00QzM0LUIwNzAtODQyOTE2REUyN0E5fS5SZWxlYXNlLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXsyRkYwQTMxMi0yMkY5LTRDMzQtQjA3MC04NDI5MTZERTI3QTl9LlJlbGVhc2UuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXsyRkYwQTMxMi0yMkY5LTRDMzQtQjA3MC04NDI5MTZERTI3QTl9LlJlbGVhc2VBTUQ2NC5BY3RpdmVDZmcgPSBSZWxlYXNlQU1ENjR8V2luMzINCi0JCXsyRkYwQTMxMi0yMkY5LTRDMzQtQjA3MC04NDI5MTZERTI3QTl9LlJlbGVhc2VBTUQ2NC5CdWlsZC4wID0gUmVsZWFzZUFNRDY0fFdpbjMyDQotCQl7MkZGMEEzMTItMjJGOS00QzM0LUIwNzAtODQyOTE2REUyN0E5fS5SZWxlYXNlSXRhbml1bS5BY3RpdmVDZmcgPSBSZWxlYXNlSXRhbml1bXxXaW4zMg0KLQkJezJGRjBBMzEyLTIyRjktNEMzNC1CMDcwLTg0MjkxNkRFMjdBOX0uUmVsZWFzZUl0YW5pdW0uQnVpbGQuMCA9IFJlbGVhc2VJdGFuaXVtfFdpbjMyDQotCUVuZEdsb2JhbFNlY3Rpb24NCi0JR2xvYmFsU2VjdGlvbihTb2x1dGlvbkl0ZW1zKSA9IHBvc3RTb2x1dGlvbg0KLQkJLi5cTW9kdWxlc1xnZXRidWlsZGluZm8uYyA9IC4uXE1vZHVsZXNcZ2V0YnVpbGRpbmZvLmMNCi0JCXJlYWRtZS50eHQgPSByZWFkbWUudHh0DQotCUVuZEdsb2JhbFNlY3Rpb24NCi0JR2xvYmFsU2VjdGlvbihFeHRlbnNpYmlsaXR5R2xvYmFscykgPSBwb3N0U29sdXRpb24NCi0JRW5kR2xvYmFsU2VjdGlvbg0KLQlHbG9iYWxTZWN0aW9uKEV4dGVuc2liaWxpdHlBZGRJbnMpID0gcG9zdFNvbHV0aW9uDQotCUVuZEdsb2JhbFNlY3Rpb24NCi1FbmRHbG9iYWwNCmRpZmYgLS1naXQgYS9QQy9WUzcuMS9weWV4cGF0LnZjcHJvaiBiL1BDL1ZTNy4xL3B5ZXhwYXQudmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDczOWZhLi4wMDAwMDAwCi0tLSBhL1BDL1ZTNy4xL3B5ZXhwYXQudmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMjYzICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI3LjEwIg0KLQlOYW1lPSJweWV4cGF0Ig0KLQlTY2NQcm9qZWN0TmFtZT0icHlleHBhdCINCi0JU2NjTG9jYWxQYXRoPSIuLiI+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJXaW4zMiIvPg0KLQk8L1BsYXRmb3Jtcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii5cLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5ceDg2LXRlbXAtZGVidWdccHlleHBhdCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQywuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7X0RFQlVHO0hBVkVfRVhQQVRfSDtXSU4zMjtfV0lORE9XUztYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMyINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIg0KLQkJCQlDb21waWxlQXM9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0ib2RiY2NwMzIubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL3B5ZXhwYXRfZC5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9weWV4cGF0X2QucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTAwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vcHlleHBhdF9kLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuXC4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXHg4Ni10ZW1wLXJlbGVhc2VccHlleHBhdCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMsLi5cLi5cTW9kdWxlc1xleHBhdCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO05ERUJVRztXSU4zMjtfV0lORE9XUztYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KLQkJCQlTdHJpbmdQb29saW5nPSJUUlVFIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRSVUUiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9Im9kYmNjcDMyLmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLi9weWV4cGF0LnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL3B5ZXhwYXQucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTAwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vcHlleHBhdC5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlSXRhbml1bXxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4vLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5caWE2NC10ZW1wLXJlbGVhc2VccHlleHBhdCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL1VTRUNMOk1TX0lUQU5JVU0gL0dTLSINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQywuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7TkRFQlVHO1dJTjMyO19XSU5ET1dTO1hNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7WE1MX1NUQVRJQztIQVZFX01FTU1PVkUiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMCINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUJ1ZmZlclNlY3VyaXR5Q2hlY2s9IkZBTFNFIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOklBNjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJvZGJjY3AzMi5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vcHlleHBhdC5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9weWV4cGF0LnBkYiINCi0JCQkJU3ViU3lzdGVtPSIyIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDEwMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL3B5ZXhwYXQubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZUFNRDY0fFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9ImFtZDY0LXRlbXAtcmVsZWFzZVxweWV4cGF0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvVVNFQ0w6TVNfT1BURVJPTiAgL0dTLSINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQywuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7TkRFQlVHO1dJTjMyO19XSU5ET1dTO1hNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7WE1MX1NUQVRJQztIQVZFX01FTU1PVkUiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMCINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUJ1ZmZlclNlY3VyaXR5Q2hlY2s9IkZBTFNFIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOkFNRDY0IC9VU0VMSU5LOk1TX1NESyINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0ib2RiY2NwMzIubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL3B5ZXhwYXQucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vcHlleHBhdC5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9weWV4cGF0LmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHB5ZXhwYXQuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFx4bWxwYXJzZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGV4cGF0XHhtbHJvbGUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFx4bWx0b2suYyI+DQotCQk8L0ZpbGU+DQotCTwvRmlsZXM+DQotCTxHbG9iYWxzPg0KLQk8L0dsb2JhbHM+DQotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTNy4xL3B5dGhvbi5idWlsZCBiL1BDL1ZTNy4xL3B5dGhvbi5idWlsZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTcxMTAxZC4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9weXRob24uYnVpbGQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz4KLTxwcm9qZWN0PgotIDx0YXJnZXQgbmFtZT0iYWxsIiBkZXNjcmlwdGlvbj0iQnVpbGQgYWxsIHRhcmdldHMuIj4KLSAgIDxzb2x1dGlvbiBjb25maWd1cmF0aW9uPSJyZWxlYXNlIj4KLSAgICAgPHByb2plY3RzPgotICAgICAgIDxpbmNsdWRlIG5hbWU9Im1ha2VfdmVyc2lvbmluZm8udmNwcm9qIiAvPgotICAgICA8L3Byb2plY3RzPgotICAgPC9zb2x1dGlvbj4KLSAgIDxleGVjIHByb2dyYW09Im1ha2VfdmVyc2lvbmluZm8iIG91dHB1dD0icHl0aG9ubnRfcmMuaCIgLz4KLQotICAgPHNvbHV0aW9uIGNvbmZpZ3VyYXRpb249InJlbGVhc2UiIHNvbHV0aW9uZmlsZT0icGNidWlsZC5zbG4iPgotICAgICA8ZXhjbHVkZXByb2plY3RzPgotICAgICAgIDxpbmNsdWRlIG5hbWU9Il90a2ludGVyLnZjcHJvaiIgLz4KLSAgICAgICA8aW5jbHVkZSBuYW1lPSJiejIudmNwcm9qIiAvPgotICAgICAgIDxpbmNsdWRlIG5hbWU9Il9zcWxpdGUzLnZjcHJvaiIgLz4KLSAgICAgICA8aW5jbHVkZSBuYW1lPSJfc3NsLnZjcHJvaiIgLz4KLSAgICAgPC9leGNsdWRlcHJvamVjdHM+Ci0gICA8L3NvbHV0aW9uPgotIDwvdGFyZ2V0PgotPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvUEMvVlM3LjEvcHl0aG9uLmlzcyBiL1BDL1ZTNy4xL3B5dGhvbi5pc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhNmEzYzAuLjAwMDAwMDAKLS0tIGEvUEMvVlM3LjEvcHl0aG9uLmlzcworKysgL2Rldi9udWxsCkBAIC0xLDM0MSArMCwwIEBACi07IFNjcmlwdCBnZW5lcmF0ZWQgYnkgdGhlIElubm8gU2V0dXAgU2NyaXB0IFdpemFyZC4KLTsgU0VFIFRIRSBET0NVTUVOVEFUSU9OIEZPUiBERVRBSUxTIE9OIENSRUFUSU5HIElOTk8gU0VUVVAgU0NSSVBUIEZJTEVTIQotCi07IFRoaXMgaXMgdGhlIHdob2xlIGJhbGwgb2Ygd2F4IGZvciBhbiBJbm5vIGluc3RhbGxlciBmb3IgUHl0aG9uLgotOyBUbyB1c2UsIGRvd25sb2FkIElubm8gU2V0dXAgZnJvbSBodHRwOi8vd3d3Lmpyc29mdHdhcmUub3JnL2lzZGwuaHRtLywKLTsgaW5zdGFsbCBpdCwgYW5kIGRvdWJsZS1jbGljayBvbiB0aGlzIGZpbGUuICBUaGF0IGxhdW5jaGVzIHRoZSBJbm5vCi07IHNjcmlwdCBjb21waWxlci4gIFRoZSBHVUkgaXMgZXh0ZW1lbHkgc2ltcGxlLCBhbmQgaGFzIG9ubHkgb25lIGJ1dHRvbgotOyB5b3UgbWF5IG5vdCByZWNvZ25pemUgaW5zdGFudGx5OiAgY2xpY2sgaXQuICBZb3UncmUgZG9uZS4gIEl0IGJ1aWxkcwotOyB0aGUgaW5zdGFsbGVyIGludG8gUENCdWlsZC9QeXRob24tMi4yYTEuZXhlLiAgU2l6ZSBhbmQgc3BlZWQgb2YgdGhlCi07IGluc3RhbGxlciBhcmUgY29tcGV0aXRpdmUgd2l0aCB0aGUgV2lzZSBpbnN0YWxsZXI7IElubm8gdW5pbnN0YWxsCi07IHNlZW1zIG11Y2ggcXVpY2tlciB0aGFuIFdpc2UgKGJ1dCBhbHNvIGZlZWJsZXIsIGFuZCB0aGUgdW5pbnN0YWxsCi07IGxvZyBpcyBpbiBzb21lIHVuKGh1bWFuKXJlYWRhYmxlIGJpbmFyeSBmb3JtYXQpLgotOwotOyBXaGF0J3MgRG9uZQotOyAtLS0tLS0tLS0tLQotOyBBbGwgdGhlIHVzdWFsIFdpbmRvd3MgUHl0aG9uIGZpbGVzIGFyZSBpbnN0YWxsZWQgYnkgdGhpcyBub3cuCi07IEFsbCB0aGUgdXN1YWwgV2luZG93cyBQeXRob24gU3RhcnQgbWVudSBlbnRyaWVzIGFyZSBjcmVhdGVkIGFuZAotOyB3b3JrIGZpbmUuCi07IC5weSwgLnB5dywgLnB5YyBhbmQgLnB5byBleHRlbnNpb25zIGFyZSByZWdpc3RlcmVkLgotOyAgICAgUFJPQkxFTTogIElubm8gdW5pbnN0YWxsIGRvZXMgbm90IHJlc3RvcmUgdGhlaXIgcHJldmlvdXMgcmVnaXN0cnkKLTsgICAgICAgICAgICAgICBhc3NvY2lhdGlvbnMgKGlmIGFueSkuICBXaXNlIGRpZC4gIFRoaXMgd2lsbCBtYWtlIGxpZmUKLTsgICAgICAgICAgICAgICBkaWZmaWN1bHQgZm9yIGFscGhhIChldGMpIHRlc3RlcnMuCi07IFRoZSBQeXRob24gaW5zdGFsbCBpcyBmdWxseSBmdW5jdGlvbmFsIGZvciAidHlwaWNhbCIgdXNlcy4KLTsKLTsgV2hhdCdzIE5vdCBEb25lCi07IC0tLS0tLS0tLS0tLS0tLQotOyBOb25lIG9mICJNYXJrIEhhbW1vbmQncyIgcmVnaXN0cnkgZW50cmllcyBhcmUgd3JpdHRlbi4KLTsgTm8gaW5zdGFsbGF0aW9uIG9mIGZpbGVzIGlzIGRvbmUgaW50byB0aGUgc3lzdGVtIGRpcjoKLTsgICAgIFRoZSBNUyBETExzIGFyZW4ndCBoYW5kbGVkIGF0IGFsbCBieSB0aGlzIHlldC4KLTsgICAgIFB5dGhvbjIyLmRsbCBpcyB1bnBhY2tlZCBpbnRvIHRoZSBtYWluIFB5dGhvbiBkaXIuCi07Ci07IElubm8gY2FuJ3QgZG8gZGlmZmVyZW50IHRoaW5ncyBvbiBOVC8yMDAwIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSB1c2VyCi07IGhhcyBBZG1pbiBwcml2aWxlZ2VzLCBzbyBJIGRvbid0IGtub3cgaG93IHRvICJzb2x2ZSIgZWl0aGVyIG9mIHRob3NlLAotOyBzaG9ydCBvZiBidWlsZGluZyB0d28gaW5zdGFsbGVycyAob25lICpyZXF1aXJpbmcqIEFkbWluIHByaXZzLCB0aGUKLTsgb3RoZXIgbm90IGRvaW5nIGFueXRoaW5nIHRoYXQgbmVlZHMgQWRtaW4gcHJpdnMpLgotOwotOyBJbm5vIGhhcyBubyBjb25jZXB0IG9mIHZhcmlhYmxlcywgc28gbG90cyBvZiBsaW5lcyBpbiB0aGlzIGZpbGUgbmVlZAotOyB0byBiZSBmaWRkbGVkIGJ5IGhhbmQgYWNyb3NzIHJlbGVhc2VzLiAgU2ltcGxlc3Qgd2F5IG91dDogIHN0aWNrIHRoaXMKLTsgZmlsZSBpbiBhIGdpYW50IHRyaXBsZS1xdW90ZWQgci1zdHJpbmcgKG5vdGUgdGhhdCBiYWNrc2xhc2hlcyBhcmUKLTsgcmVxdWlyZWQgYWxsIG92ZXIgdGhlIHBsYWNlIGhlcmUgLS0gZm9yd2FyZCBzbGFzaGVzIERPTidUIFdPUksgaW4KLTsgSW5ubyksIGFuZCB1c2UgJSh5YWRkYSlzIHN0cmluZyBpbnRlcnBvbGF0aW9uIHRvIGRvIHN1YnN0aXR1dGlvbnM7IGkuZS4sCi07IHdyaXRlIGEgdmVyeSBzaW1wbGUgUHl0aG9uIHByb2dyYW0gdG8gKnByb2R1Y2UqIHRoaXMgc2NyaXB0LgotCi1bU2V0dXBdCi1BcHBOYW1lPVB5dGhvbiBhbmQgY29tYmluZWQgV2luMzIgRXh0ZW5zaW9ucwotQXBwVmVyTmFtZT1QeXRob24gMi4yLjIgYW5kIGNvbWJpbmVkIFdpbjMyIEV4dGVuc2lvbnMgMTUwCi1BcHBJZD1QeXRob24gMi4yLjIuMTUwCi1BcHBWZXJzaW9uPTIuMi4yLjE1MAotQXBwQ29weXJpZ2h0PVB5dGhvbiBpcyBDb3B5cmlnaHQgqSAyMDAxIFB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uLiBXaW4zMiBFeHRlbnNpb25zIGFyZSBDb3B5cmlnaHQgqSAxOTk2LTIwMDEgR3JlZyBTdGVpbiBhbmQgTWFyayBIYW1tb25kLgotCi07IERlZmF1bHQgaW5zdGFsbCBkaXI7IHZhbHVlIG9mIHthcHB9IGxhdGVyICh1bmxlc3MgdXNlciBvdmVycmlkZXMpLgotOyB7c2R9ID0gc3lzdGVtIHJvb3QgZHJpdmUsIHByb2JhYmx5ICJDOiIuCi1EZWZhdWx0RGlyTmFtZT17c2R9XFB5dGhvbjIyCi07RGVmYXVsdERpck5hbWU9e3BmfVxQeXRob24KLQotOyBTdGFydCBtZW51IGZvbGRlciBuYW1lOyB2YWx1ZSBvZiB7Z3JvdXB9IGxhdGVyICh1bmxlc3MgdXNlciBvdmVycmlkZXMpLgotRGVmYXVsdEdyb3VwTmFtZT1QeXRob24gMi4yCi0KLTsgUG9pbnQgU291cmNlRGlyIHRvIG9uZSBhYm92ZSBQQ0J1aWxkID0gc3JjLgotOyBtZWFucyB0aGlzIHNjcmlwdCBjYW4gcnVuIHVuY2hhbmdlZCBmcm9tIGFueW9uZSdzIENWUyB0cmVlLCBubyBtYXR0ZXIKLTsgd2hhdCB0aGV5IGNhbGxlZCB0aGUgdG9wLWxldmVsIGRpcmVjdG9yaWVzLgotU291cmNlRGlyPS4KLU91dHB1dERpcj0uLgotT3V0cHV0QmFzZUZpbGVuYW1lPVB5dGhvbi0yLjIuMi1XaW4zMi0xNTAtU2V0dXAKLQotQXBwUHVibGlzaGVyPVB5dGhvbkxhYnMgYXQgRGlnaXRhbCBDcmVhdGlvbnMKLUFwcFB1Ymxpc2hlclVSTD1odHRwOi8vd3d3LnB5dGhvbi5vcmcKLUFwcFN1cHBvcnRVUkw9aHR0cDovL3d3dy5weXRob24ub3JnCi1BcHBVcGRhdGVzVVJMPWh0dHA6Ly93d3cucHl0aG9uLm9yZwotCi1BbHdheXNDcmVhdGVVbmluc3RhbGxJY29uPXRydWUKLUNoYW5nZXNBc3NvY2lhdGlvbnM9dHJ1ZQotVW5pbnN0YWxsTG9nTW9kZT1uZXcKLUFsbG93Tm9JY29ucz10cnVlCi1BZG1pblByaXZpbGVnZXNSZXF1aXJlZD10cnVlCi1Vbmluc3RhbGxEaXNwbGF5SWNvbj17YXBwfVxweWMuaWNvCi1XaXphcmREZWJ1Zz1mYWxzZQotCi07IFRoZSBmZXdlciBzY3JlZW5zIHRoZSBiZXR0ZXI7IGxlYXZlIHRoZXNlIGNvbW1lbnRlZC4KLQotQ29tcHJlc3Npb249YnppcAotSW5mb0JlZm9yZUZpbGU9TElDRU5TRS50eHQKLTtJbmZvQmVmb3JlRmlsZT1NaXNjXE5FV1MKLQotOyB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lIGlmIHlvdSB3YW50IHlvdXIgaW5zdGFsbGF0aW9uIHRvIHJ1biBvbiBOVCAzLjUxIHRvby4KLTsgTWluVmVyc2lvbj00LDMuNTEKLQotW1R5cGVzXQotTmFtZTogbm9ybWFsOyBEZXNjcmlwdGlvbjogU2VsZWN0IGRlc2lyZWQgY29tcG9uZW50czsgRmxhZ3M6IGlzY3VzdG9tCi0KLVtDb21wb25lbnRzXQotTmFtZTogbWFpbjsgRGVzY3JpcHRpb246IFB5dGhvbiBhbmQgV2luMzIgRXh0ZW5zaW9uczsgVHlwZXM6IG5vcm1hbAotTmFtZTogZG9jczsgRGVzY3JpcHRpb246IFB5dGhvbiBkb2N1bWVudGF0aW9uIChIVE1MKTsgVHlwZXM6IG5vcm1hbAotTmFtZTogdGs7IERlc2NyaXB0aW9uOiBUQ0wvVEssIHRraW50ZXIsIGFuZCBJZGxlOyBUeXBlczogbm9ybWFsCi1OYW1lOiB0b29sczsgRGVzY3JpcHRpb246IFB5dGhvbiB1dGlsaXR5IHNjcmlwdHMgKFRvb2xzXCk7IFR5cGVzOiBub3JtYWwKLU5hbWU6IHRlc3Q7IERlc2NyaXB0aW9uOiBQeXRob24gdGVzdCBzdWl0ZSAoTGliXHRlc3RcKTsgVHlwZXM6IG5vcm1hbAotCi1bVGFza3NdCi1OYW1lOiBleHRlbnNpb25zOyBEZXNjcmlwdGlvbjogUmVnaXN0ZXIgZmlsZSBhc3NvY2lhdGlvbnMgKC5weSwgLnB5dywgLnB5YywgLnB5byk7IENvbXBvbmVudHM6IG1haW47IENoZWNrOiBJc0FkbWluTG9nZ2VkT24KLQotW0ZpbGVzXQotOyBDYXV0aW9uOiAgVXNpbmcgZm9yd2FyZCBzbGFzaGVzIGluc3RlYWQgc2NyZXdzIHVwIGluIGFtYXppbmcgd2F5cy4KLTsgVW5rbm93bjogIEJ5IHRoZSB0aW1lIENvbXBvbmVudHMgKGFuZCBvdGhlciBhdHRycykgYXJlIGFkZGVkIHRvIHRoZXNlIGxpbmVzLCB0aGV5J3JlCi07IGdvaW5nIHRvIGdldCBhd2Z1bGx5IGxvbmcuICBCdXQgZG9uJ3Qgc2VlIGEgd2F5IHRvIGNvbnRpbnVlIGxvZ2ljYWwgbGluZXMgYWNyb3NzCi07IHBoeXNpY2FsIGxpbmVzLgotCi1Tb3VyY2U6IExJQ0VOU0UudHh0OyBEZXN0RGlyOiB7YXBwfTsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZQotU291cmNlOiBSRUFETUUudHh0OyBEZXN0RGlyOiB7YXBwfTsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZQotU291cmNlOiBOZXdzLnR4dDsgRGVzdERpcjoge2FwcH07IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGUKLVNvdXJjZTogKi5pY287IERlc3REaXI6IHthcHB9OyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi0KLVNvdXJjZTogcHl0aG9uLmV4ZTsgRGVzdERpcjoge2FwcH07IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IG1haW4KLVNvdXJjZTogcHl0aG9udy5leGU7IERlc3REaXI6IHthcHB9OyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi1Tb3VyY2U6IHc5eHBvcGVuLmV4ZTsgRGVzdERpcjoge2FwcH07IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IG1haW4KLQotCi1Tb3VyY2U6IERMTHNcdGNsODMuZGxsOyBEZXN0RGlyOiB7YXBwfVxETExzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiB0awotU291cmNlOiBETExzXHRrODMuZGxsOyBEZXN0RGlyOiB7YXBwfVxETExzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiB0awotU291cmNlOiB0Y2xcKi4qOyBEZXN0RGlyOiB7YXBwfVx0Y2w7IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IHRrOyBGbGFnczogcmVjdXJzZXN1YmRpcnMKLQotU291cmNlOiBzeXNkaXJccHl0aG9uMjIuZGxsOyBEZXN0RGlyOiB7c3lzfTsgQ29weU1vZGU6IGFsd2F5c3NraXBpZnNhbWVvcm9sZGVyOyBDb21wb25lbnRzOiBtYWluOyBGbGFnczogc2hhcmVkZmlsZSByZXN0YXJ0cmVwbGFjZQotU291cmNlOiBzeXNkaXJcUHlXaW5UeXBlczIyLmRsbDsgRGVzdERpcjoge3N5c307IENvcHlNb2RlOiBhbHdheXNza2lwaWZzYW1lb3JvbGRlcjsgQ29tcG9uZW50czogbWFpbjsgRmxhZ3M6IHJlc3RhcnRyZXBsYWNlIHNoYXJlZGZpbGUKLVNvdXJjZTogc3lzZGlyXHB5dGhvbmNvbTIyLmRsbDsgRGVzdERpcjoge3N5c307IENvcHlNb2RlOiBhbHdheXNza2lwaWZzYW1lb3JvbGRlcjsgQ29tcG9uZW50czogbWFpbjsgRmxhZ3M6IHJlc3RhcnRyZXBsYWNlIHNoYXJlZGZpbGUKLQotU291cmNlOiBETExzXF9zb2NrZXQucHlkOyBEZXN0RGlyOiB7YXBwfVxETExzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi1Tb3VyY2U6IGxpYnNcX3NvY2tldC5saWI7IERlc3REaXI6IHthcHB9XGxpYnM7IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IG1haW4KLQotU291cmNlOiBETExzXF9zcmUucHlkOyBEZXN0RGlyOiB7YXBwfVxETExzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi1Tb3VyY2U6IGxpYnNcX3NyZS5saWI7IERlc3REaXI6IHthcHB9XGxpYnM7IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IG1haW4KLQotU291cmNlOiBETExzXF9zeW10YWJsZS5weWQ7IERlc3REaXI6IHthcHB9XERMTHM7IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IG1haW4KLVNvdXJjZTogbGlic1xfc3ltdGFibGUubGliOyBEZXN0RGlyOiB7YXBwfVxsaWJzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi0KLVNvdXJjZTogRExMc1xfdGVzdGNhcGkucHlkOyBEZXN0RGlyOiB7YXBwfVxETExzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi1Tb3VyY2U6IGxpYnNcX3Rlc3RjYXBpLmxpYjsgRGVzdERpcjoge2FwcH1cbGliczsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogbWFpbgotCi1Tb3VyY2U6IERMTHNcX3RraW50ZXIucHlkOyBEZXN0RGlyOiB7YXBwfVxETExzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiB0awotU291cmNlOiBsaWJzXF90a2ludGVyLmxpYjsgRGVzdERpcjoge2FwcH1cbGliczsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogdGsKLQotU291cmNlOiBETExzXG1tYXAucHlkOyBEZXN0RGlyOiB7YXBwfVxETExzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi1Tb3VyY2U6IGxpYnNcbW1hcC5saWI7IERlc3REaXI6IHthcHB9XGxpYnM7IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IG1haW4KLQotU291cmNlOiBETExzXHBhcnNlci5weWQ7IERlc3REaXI6IHthcHB9XERMTHM7IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IG1haW4KLVNvdXJjZTogbGlic1xwYXJzZXIubGliOyBEZXN0RGlyOiB7YXBwfVxsaWJzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi0KLVNvdXJjZTogRExMc1xweWV4cGF0LnB5ZDsgRGVzdERpcjoge2FwcH1cRExMczsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogbWFpbgotU291cmNlOiBsaWJzXHB5ZXhwYXQubGliOyBEZXN0RGlyOiB7YXBwfVxsaWJzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi0KLVNvdXJjZTogRExMc1xzZWxlY3QucHlkOyBEZXN0RGlyOiB7YXBwfVxETExzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi1Tb3VyY2U6IGxpYnNcc2VsZWN0LmxpYjsgRGVzdERpcjoge2FwcH1cbGliczsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogbWFpbgotCi1Tb3VyY2U6IERMTHNcdW5pY29kZWRhdGEucHlkOyBEZXN0RGlyOiB7YXBwfVxETExzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi1Tb3VyY2U6IGxpYnNcdW5pY29kZWRhdGEubGliOyBEZXN0RGlyOiB7YXBwfVxsaWJzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi0KLVNvdXJjZTogRExMc1x3aW5yZWcucHlkOyBEZXN0RGlyOiB7YXBwfVxETExzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi1Tb3VyY2U6IGxpYnNcd2lucmVnLmxpYjsgRGVzdERpcjoge2FwcH1cbGliczsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogbWFpbgotCi1Tb3VyY2U6IERMTHNcd2luc291bmQucHlkOyBEZXN0RGlyOiB7YXBwfVxETExzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi1Tb3VyY2U6IGxpYnNcd2luc291bmQubGliOyBEZXN0RGlyOiB7YXBwfVxsaWJzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi0KLVNvdXJjZTogRExMc1x6bGliLnB5ZDsgRGVzdERpcjoge2FwcH1cRExMczsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogbWFpbgotU291cmNlOiBsaWJzXHpsaWIubGliOyBEZXN0RGlyOiB7YXBwfVxsaWJzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi0KLVNvdXJjZTogbGlic1xweXRob24yMi5saWI7IERlc3REaXI6IHthcHB9XGxpYnM7IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IG1haW4KLQotU291cmNlOiBETExzXGV4cGF0LmRsbDsgRGVzdERpcjoge2FwcH1cRExMczsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogbWFpbgotCi0KLQotU291cmNlOiBMaWJcKi5weTsgRGVzdERpcjoge2FwcH1cTGliOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi1Tb3VyY2U6IExpYlxjb21waWxlclwqLio7IERlc3REaXI6IHthcHB9XExpYlxjb21waWxlcjsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogbWFpbjsgRmxhZ3M6IHJlY3Vyc2VzdWJkaXJzCi1Tb3VyY2U6IExpYlxkaXN0dXRpbHNcKi4qOyBEZXN0RGlyOiB7YXBwfVxMaWJcZGlzdHV0aWxzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluOyBGbGFnczogcmVjdXJzZXN1YmRpcnMKLVNvdXJjZTogTGliXGVtYWlsXCouKjsgRGVzdERpcjoge2FwcH1cTGliXGVtYWlsOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluOyBGbGFnczogcmVjdXJzZXN1YmRpcnMKLVNvdXJjZTogTGliXGVuY29kaW5nc1wqLio7IERlc3REaXI6IHthcHB9XExpYlxlbmNvZGluZ3M7IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IG1haW47IEZsYWdzOiByZWN1cnNlc3ViZGlycwotU291cmNlOiBMaWJcaG90c2hvdFwqLio7IERlc3REaXI6IHthcHB9XExpYlxob3RzaG90OyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluOyBGbGFnczogcmVjdXJzZXN1YmRpcnMKLVNvdXJjZTogTGliXGxpYi1vbGRcKi4qOyBEZXN0RGlyOiB7YXBwfVxMaWJcbGliLW9sZDsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogbWFpbjsgRmxhZ3M6IHJlY3Vyc2VzdWJkaXJzCi1Tb3VyY2U6IExpYlx4bWxcKi4qOyBEZXN0RGlyOiB7YXBwfVxMaWJceG1sOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluOyBGbGFnczogcmVjdXJzZXN1YmRpcnMKLVNvdXJjZTogTGliXGhvdHNob3RcKi4qOyBEZXN0RGlyOiB7YXBwfVxMaWJcaG90c2hvdDsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogbWFpbjsgRmxhZ3M6IHJlY3Vyc2VzdWJkaXJzCi1Tb3VyY2U6IExpYlx0ZXN0XCouKjsgRGVzdERpcjoge2FwcH1cTGliXHRlc3Q7IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IHRlc3Q7IEZsYWdzOiByZWN1cnNlc3ViZGlycwotU291cmNlOiBMaWJcdGtpbnRlclwqLnB5OyBEZXN0RGlyOiB7YXBwfVxMaWJcdGtpbnRlcjsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogdGs7IEZsYWdzOiByZWN1cnNlc3ViZGlycwotCi1Tb3VyY2U6IExpYlxzaXRlLXBhY2thZ2VzXFJFQURNRS50eHQ7IERlc3REaXI6IHthcHB9XExpYlxzaXRlLXBhY2thZ2VzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluCi0KLVNvdXJjZTogTGliXHNpdGUtcGFja2FnZXNcUHlXaW4zMi5jaG07IERlc3REaXI6IHthcHB9XExpYlxzaXRlLXBhY2thZ2VzOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBkb2NzCi1Tb3VyY2U6IExpYlxzaXRlLXBhY2thZ2VzXHdpbjMyXCouKjsgRGVzdERpcjoge2FwcH1cTGliXHNpdGUtcGFja2FnZXNcd2luMzI7IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IG1haW47IEZsYWdzOiByZWN1cnNlc3ViZGlycwotU291cmNlOiBMaWJcc2l0ZS1wYWNrYWdlc1x3aW4zMmNvbVwqLio7IERlc3REaXI6IHthcHB9XExpYlxzaXRlLXBhY2thZ2VzXHdpbjMyY29tOyBDb3B5TW9kZTogYWx3YXlzb3ZlcndyaXRlOyBDb21wb25lbnRzOiBtYWluOyBGbGFnczogcmVjdXJzZXN1YmRpcnMKLVNvdXJjZTogTGliXHNpdGUtcGFja2FnZXNcd2luMzJjb21leHRcKi4qOyBEZXN0RGlyOiB7YXBwfVxMaWJcc2l0ZS1wYWNrYWdlc1x3aW4zMmNvbWV4dDsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogbWFpbjsgRmxhZ3M6IHJlY3Vyc2VzdWJkaXJzCi0KLVNvdXJjZTogaW5jbHVkZVwqLmg7IERlc3REaXI6IHthcHB9XGluY2x1ZGU7IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IG1haW4KLQotU291cmNlOiBUb29sc1xpZGxlXCouKjsgRGVzdERpcjoge2FwcH1cVG9vbHNcaWRsZTsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogdGs7IEZsYWdzOiByZWN1cnNlc3ViZGlycwotCi1Tb3VyY2U6IFRvb2xzXHB5bmNoZVwqLio7IERlc3REaXI6IHthcHB9XFRvb2xzXHB5bmNoZTsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogdG9vbHM7IEZsYWdzOiByZWN1cnNlc3ViZGlycwotU291cmNlOiBUb29sc1xzY3JpcHRzXCouKjsgRGVzdERpcjoge2FwcH1cVG9vbHNcU2NyaXB0czsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogdG9vbHM7IEZsYWdzOiByZWN1cnNlc3ViZGlycwotU291cmNlOiBUb29sc1x3ZWJjaGVja2VyXCouKjsgRGVzdERpcjoge2FwcH1cVG9vbHNcd2ViY2hlY2tlcjsgQ29weU1vZGU6IGFsd2F5c292ZXJ3cml0ZTsgQ29tcG9uZW50czogdG9vbHM7IEZsYWdzOiByZWN1cnNlc3ViZGlycwotU291cmNlOiBUb29sc1x2ZXJzaW9uY2hlY2tcKi4qOyBEZXN0RGlyOiB7YXBwfVxUb29sc1x2ZXJzaW9uY2hlY2s7IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IENvbXBvbmVudHM6IHRvb2xzOyBGbGFnczogcmVjdXJzZXN1YmRpcnMKLQotU291cmNlOiBEb2NcKi4qOyBEZXN0RGlyOiB7YXBwfVxEb2M7IENvcHlNb2RlOiBhbHdheXNvdmVyd3JpdGU7IEZsYWdzOiByZWN1cnNlc3ViZGlyczsgQ29tcG9uZW50czogZG9jcwotCi0KLVtJY29uc10KLU5hbWU6IHtncm91cH1cUHl0aG9uIChjb21tYW5kIGxpbmUpOyBGaWxlbmFtZToge2FwcH1ccHl0aG9uLmV4ZTsgV29ya2luZ0Rpcjoge2FwcH07IENvbXBvbmVudHM6IG1haW4KLU5hbWU6IHtncm91cH1cUHl0aG9uIE1hbnVhbHM7IEZpbGVuYW1lOiB7YXBwfVxEb2NcaW5kZXguaHRtbDsgV29ya2luZ0Rpcjoge2FwcH07IENvbXBvbmVudHM6IGRvY3MKLU5hbWU6IHtncm91cH1cV2luMzIgRXh0ZW5zaW9ucyBIZWxwOyBGaWxlbmFtZToge2FwcH1cTGliXHNpdGUtcGFja2FnZXNcUHlXaW4zMi5jaG07IFdvcmtpbmdEaXI6IHthcHB9XExpYlxzaXRlLXBhY2thZ2VzOyBDb21wb25lbnRzOiBkb2NzCi1OYW1lOiB7Z3JvdXB9XE1vZHVsZSBEb2NzOyBGaWxlbmFtZToge2FwcH1ccHl0aG9udy5leGU7IFdvcmtpbmdEaXI6IHthcHB9OyBQYXJhbWV0ZXJzOiAiIiJ7YXBwfVxUb29sc1xTY3JpcHRzXHB5ZG9jLnB5dyIiIjsgQ29tcG9uZW50czogdG9vbHMKLU5hbWU6IHtncm91cH1cSURMRSAoUHl0aG9uIEdVSSk7IEZpbGVuYW1lOiB7YXBwfVxweXRob253LmV4ZTsgV29ya2luZ0Rpcjoge2FwcH07IFBhcmFtZXRlcnM6ICIiInthcHB9XFRvb2xzXGlkbGVcaWRsZS5weXciIiI7IENvbXBvbmVudHM6IHRvb2xzCi0KLVtSZWdpc3RyeV0KLTsgUmVnaXN0ZXIgLnB5Ci1UYXNrczogZXh0ZW5zaW9uczsgUm9vdDogSEtDUjsgU3Via2V5OiAucHk7IFZhbHVlVHlwZTogc3RyaW5nOyBWYWx1ZU5hbWU6IDsgVmFsdWVEYXRhOiBQeXRob24gRmlsZTsgRmxhZ3M6IHVuaW5zZGVsZXRldmFsdWUKLVRhc2tzOiBleHRlbnNpb25zOyBSb290OiBIS0NSOyBTdWJrZXk6IC5weTsgVmFsdWVUeXBlOiBzdHJpbmc7IFZhbHVlTmFtZTogQ29udGVudCBUeXBlOyBWYWx1ZURhdGE6IHRleHQvcGxhaW47IEZsYWdzOiB1bmluc2RlbGV0ZXZhbHVlCi1UYXNrczogZXh0ZW5zaW9uczsgUm9vdDogSEtDUjsgU3Via2V5OiBQeXRob24gRmlsZTsgVmFsdWVUeXBlOiBzdHJpbmc7IFZhbHVlTmFtZTogOyBWYWx1ZURhdGE6IFB5dGhvbiBGaWxlOyBGbGFnczogdW5pbnNkZWxldGVrZXkKLVRhc2tzOiBleHRlbnNpb25zOyBSb290OiBIS0NSOyBTdWJrZXk6IFB5dGhvbiBGaWxlXERlZmF1bHRJY29uOyBWYWx1ZVR5cGU6IHN0cmluZzsgVmFsdWVOYW1lOiA7IFZhbHVlRGF0YToge2FwcH1cUHkuaWNvCi1UYXNrczogZXh0ZW5zaW9uczsgUm9vdDogSEtDUjsgU3Via2V5OiBQeXRob24gRmlsZVxzaGVsbFxvcGVuXGNvbW1hbmQ7IFZhbHVlVHlwZTogc3RyaW5nOyBWYWx1ZU5hbWU6IDsgVmFsdWVEYXRhOiAiIiJ7YXBwfVxweXRob24uZXhlIiIgIiIlMSIiICUqIgotCi07IFJlZ2lzdGVyIC5weWMKLVRhc2tzOiBleHRlbnNpb25zOyBSb290OiBIS0NSOyBTdWJrZXk6IC5weWM7IFZhbHVlVHlwZTogc3RyaW5nOyBWYWx1ZU5hbWU6IDsgVmFsdWVEYXRhOiBQeXRob24gQ29tcGlsZWRGaWxlOyBGbGFnczogdW5pbnNkZWxldGV2YWx1ZQotVGFza3M6IGV4dGVuc2lvbnM7IFJvb3Q6IEhLQ1I7IFN1YmtleTogUHl0aG9uIENvbXBpbGVkRmlsZTsgVmFsdWVUeXBlOiBzdHJpbmc7IFZhbHVlTmFtZTogOyBWYWx1ZURhdGE6IENvbXBpbGVkIFB5dGhvbiBGaWxlOyBGbGFnczogdW5pbnNkZWxldGVrZXkKLVRhc2tzOiBleHRlbnNpb25zOyBSb290OiBIS0NSOyBTdWJrZXk6IFB5dGhvbiBDb21waWxlZEZpbGVcRGVmYXVsdEljb247IFZhbHVlVHlwZTogc3RyaW5nOyBWYWx1ZU5hbWU6IDsgVmFsdWVEYXRhOiB7YXBwfVxweWMuaWNvCi1UYXNrczogZXh0ZW5zaW9uczsgUm9vdDogSEtDUjsgU3Via2V5OiBQeXRob24gQ29tcGlsZWRGaWxlXHNoZWxsXG9wZW5cY29tbWFuZDsgVmFsdWVUeXBlOiBzdHJpbmc7IFZhbHVlTmFtZTogOyBWYWx1ZURhdGE6ICIiInthcHB9XHB5dGhvbi5leGUiIiAiIiUxIiIgJSoiCi0KLTsgUmVnaXN0ZXIgLnB5bwotVGFza3M6IGV4dGVuc2lvbnM7IFJvb3Q6IEhLQ1I7IFN1YmtleTogLnB5bzsgVmFsdWVUeXBlOiBzdHJpbmc7IFZhbHVlTmFtZTogOyBWYWx1ZURhdGE6IFB5dGhvbiBDb21waWxlZEZpbGU7IEZsYWdzOiB1bmluc2RlbGV0ZXZhbHVlCi0KLTsgUmVnaXN0ZXIgLnB5dwotVGFza3M6IGV4dGVuc2lvbnM7IFJvb3Q6IEhLQ1I7IFN1YmtleTogLnB5dzsgVmFsdWVUeXBlOiBzdHJpbmc7IFZhbHVlTmFtZTogOyBWYWx1ZURhdGE6IFB5dGhvbiBOb0NvbkZpbGU7IEZsYWdzOiB1bmluc2RlbGV0ZXZhbHVlCi1UYXNrczogZXh0ZW5zaW9uczsgUm9vdDogSEtDUjsgU3Via2V5OiAucHl3OyBWYWx1ZVR5cGU6IHN0cmluZzsgVmFsdWVOYW1lOiBDb250ZW50IFR5cGU7IFZhbHVlRGF0YTogdGV4dC9wbGFpbjsgRmxhZ3M6IHVuaW5zZGVsZXRldmFsdWUKLVRhc2tzOiBleHRlbnNpb25zOyBSb290OiBIS0NSOyBTdWJrZXk6IFB5dGhvbiBOb0NvbkZpbGU7IFZhbHVlVHlwZTogc3RyaW5nOyBWYWx1ZU5hbWU6IDsgVmFsdWVEYXRhOiBQeXRob24gRmlsZSAobm8gY29uc29sZSk7IEZsYWdzOiB1bmluc2RlbGV0ZWtleQotVGFza3M6IGV4dGVuc2lvbnM7IFJvb3Q6IEhLQ1I7IFN1YmtleTogUHl0aG9uIE5vQ29uRmlsZVxEZWZhdWx0SWNvbjsgVmFsdWVUeXBlOiBzdHJpbmc7IFZhbHVlTmFtZTogOyBWYWx1ZURhdGE6IHthcHB9XFB5LmljbwotVGFza3M6IGV4dGVuc2lvbnM7IFJvb3Q6IEhLQ1I7IFN1YmtleTogUHl0aG9uIE5vQ29uRmlsZVxzaGVsbFxvcGVuXGNvbW1hbmQ7IFZhbHVlVHlwZTogc3RyaW5nOyBWYWx1ZU5hbWU6IDsgVmFsdWVEYXRhOiAiIiJ7YXBwfVxweXRob253LmV4ZSIiICIiJTEiIiAlKiIKLQotCi07IFB5dGhvbiBSZWdpc3RyeSBLZXlzCi1Sb290OiBIS0xNOyBTdWJrZXk6IFNPRlRXQVJFXFB5dGhvbjsgRmxhZ3M6IHVuaW5zZGVsZXRla2V5aWZlbXB0eTsgQ2hlY2s6IElzQWRtaW5Mb2dnZWRPbgotUm9vdDogSEtMTTsgU3Via2V5OiBTT0ZUV0FSRVxQeXRob25cUHl0aG9uQ29yZTsgRmxhZ3M6IHVuaW5zZGVsZXRla2V5aWZlbXB0eQotUm9vdDogSEtMTTsgU3Via2V5OiBTT0ZUV0FSRVxQeXRob25cUHl0aG9uQ29yZVwyLjI7IEZsYWdzOiB1bmluc2RlbGV0ZWtleWlmZW1wdHkKLVJvb3Q6IEhLTE07IFN1YmtleTogU09GVFdBUkVcUHl0aG9uXFB5dGhvbkNvcmVcMi4yXFB5dGhvblBhdGg7IFZhbHVlRGF0YTogInthcHB9XExpYjt7YXBwfVxETExzIjsgRmxhZ3M6IHVuaW5zZGVsZXRla2V5aWZlbXB0eQotUm9vdDogSEtMTTsgU3Via2V5OiBTT0ZUV0FSRVxQeXRob25cUHl0aG9uQ29yZVwyLjJcUHl0aG9uUGF0aFx3aW4zMjsgVmFsdWVEYXRhOiAie2FwcH1cbGliXHNpdGUtcGFja2FnZXNcd2luMzI7e2FwcH1cbGliXHNpdGUtcGFja2FnZXNcd2luMzJcbGliIjsgRmxhZ3M6IHVuaW5zZGVsZXRla2V5Ci1Sb290OiBIS0xNOyBTdWJrZXk6IFNPRlRXQVJFXFB5dGhvblxQeXRob25Db3JlXDIuMlxQeXRob25QYXRoXHdpbjMyY29tOyBWYWx1ZURhdGE6IEM6XFB5dGhvblxsaWJcc2l0ZS1wYWNrYWdlczsgRmxhZ3M6IHVuaW5zZGVsZXRla2V5Ci1Sb290OiBIS0xNOyBTdWJrZXk6IFNPRlRXQVJFXFB5dGhvblxQeXRob25Db3JlXDIuMlxNb2R1bGVzOyBGbGFnczogdW5pbnNkZWxldGVrZXlpZmVtcHR5Ci1Sb290OiBIS0xNOyBTdWJrZXk6IFNPRlRXQVJFXFB5dGhvblxQeXRob25Db3JlXDIuMlxNb2R1bGVzXHB5dGhvbmNvbTsgVmFsdWVEYXRhOiB7c3lzfVxweXRob25jb20yMi5kbGw7IEZsYWdzOiB1bmluc2RlbGV0ZWtleQotUm9vdDogSEtMTTsgU3Via2V5OiBTT0ZUV0FSRVxQeXRob25cUHl0aG9uQ29yZVwyLjJcTW9kdWxlc1xweXdpbnR5cGVzOyBWYWx1ZURhdGE6IHtzeXN9XFB5V2luVHlwZXMyMi5kbGw7IEZsYWdzOiB1bmluc2RlbGV0ZWtleQotUm9vdDogSEtMTTsgU3Via2V5OiBTT0ZUV0FSRVxQeXRob25cUHl0aG9uQ29yZVwyLjJcSW5zdGFsbFBhdGg7IFZhbHVlRGF0YToge2FwcH07IEZsYWdzOiB1bmluc2RlbGV0ZWtleWlmZW1wdHk7IFZhbHVlVHlwZTogc3RyaW5nCi1Sb290OiBIS0xNOyBTdWJrZXk6IFNPRlRXQVJFXFB5dGhvblxQeXRob25Db3JlXDIuMlxJbnN0YWxsUGF0aFxJbnN0YWxsR3JvdXA7IFZhbHVlRGF0YToge2dyb3VwfTsgRmxhZ3M6IHVuaW5zZGVsZXRla2V5Ci1Sb290OiBIS0xNOyBTdWJrZXk6IFNPRlRXQVJFXFB5dGhvblxQeXRob25Db3JlXDIuMlxIZWxwOyBGbGFnczogdW5pbnNkZWxldGVrZXlpZmVtcHR5Ci1Sb290OiBIS0xNOyBTdWJrZXk6IFNPRlRXQVJFXFB5dGhvblxQeXRob25Db3JlXDIuMlxIZWxwXE1haW4gUHl0aG9uIERvY3VtZW50YXRpb247IFZhbHVlVHlwZTogc3RyaW5nOyBWYWx1ZURhdGE6IHthcHB9XERvY1xpbmRleC5odG1sOyBGbGFnczogdW5pbnNkZWxldGVrZXk7IENvbXBvbmVudHM6IGRvY3MKLVJvb3Q6IEhLTE07IFN1YmtleTogU09GVFdBUkVcUHl0aG9uXFB5dGhvbkNvcmVcMi4yXEhlbHBcUHl0aG9uIFdpbjMyIERvY3VtZW50YXRpb247IFZhbHVlVHlwZTogc3RyaW5nOyBWYWx1ZURhdGE6IHthcHB9XGxpYlxzaXRlLXBhY2thZ2VzXFB5V2luMzIuY2htOyBGbGFnczogdW5pbnNkZWxldGVrZXk7IENvbXBvbmVudHM6IGRvY3MKLQotW19JU1Rvb2xdCi1FbmFibGVJU1g9dHJ1ZQotCi0KLVtDb2RlXQotUHJvZ3JhbSBTZXR1cDsKLQotRnVuY3Rpb24gSXNBZG1pbk5vdExvZ2dlZE9uKCk6IEJvb2xlYW47Ci1iZWdpbgotICBSZXN1bHQgOj0gTm90IElzQWRtaW5Mb2dnZWRPbigpOwotZW5kOwotCi1iZWdpbgotZW5kLgotCi0KLQotCi1bVW5pbnN0YWxsRGVsZXRlXQotTmFtZToge2FwcH1cTGliXGNvbXBpbGVyXCoucHljOyBUeXBlOiBmaWxlcwotTmFtZToge2FwcH1cTGliXGNvbXBpbGVyXCoucHlvOyBUeXBlOiBmaWxlcwotTmFtZToge2FwcH1cTGliXGNvbXBpbGVyOyBUeXBlOiBkaXJpZmVtcHR5Ci1OYW1lOiB7YXBwfVxMaWJcZGlzdHV0aWxzXGNvbW1hbmRcKi5weWM7IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxMaWJcZGlzdHV0aWxzXGNvbW1hbmRcKi5weW87IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxMaWJcZGlzdHV0aWxzXGNvbW1hbmQ7IFR5cGU6IGRpcmlmZW1wdHkKLU5hbWU6IHthcHB9XExpYlxkaXN0dXRpbHNcKi5weWM7IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxMaWJcZGlzdHV0aWxzXCoucHlvOyBUeXBlOiBmaWxlcwotTmFtZToge2FwcH1cTGliXGRpc3R1dGlsczsgVHlwZTogZGlyaWZlbXB0eQotTmFtZToge2FwcH1cTGliXGVtYWlsXHRlc3RcKi5weWM7IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxMaWJcZW1haWxcdGVzdFwqLnB5bzsgVHlwZTogZmlsZXMKLU5hbWU6IHthcHB9XExpYlxlbWFpbFx0ZXN0OyBUeXBlOiBkaXJpZmVtcHR5Ci1OYW1lOiB7YXBwfVxMaWJcZW1haWxcKi5weWM7IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxMaWJcZW1haWxcKi5weW87IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxMaWJcZW1haWw7IFR5cGU6IGRpcmlmZW1wdHkKLU5hbWU6IHthcHB9XExpYlxlbmNvZGluZ3NcKi5weWM7IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxMaWJcZW5jb2RpbmdzXCoucHlvOyBUeXBlOiBmaWxlcwotTmFtZToge2FwcH1cTGliXGVuY29kaW5nczsgVHlwZTogZGlyaWZlbXB0eQotTmFtZToge2FwcH1cTGliXGhvdHNob3RcKi5weWM7IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxMaWJcaG90c2hvdFwqLnB5bzsgVHlwZTogZmlsZXMKLU5hbWU6IHthcHB9XExpYlxob3RzaG90OyBUeXBlOiBkaXJpZmVtcHR5Ci1OYW1lOiB7YXBwfVxMaWJcbGliLW9sZFwqLnB5YzsgVHlwZTogZmlsZXMKLU5hbWU6IHthcHB9XExpYlxsaWItb2xkXCoucHlvOyBUeXBlOiBmaWxlcwotTmFtZToge2FwcH1cTGliXGxpYi1vbGQ7IFR5cGU6IGRpcmlmZW1wdHkKLU5hbWU6IHthcHB9XExpYlx0a2ludGVyXCoucHljOyBUeXBlOiBmaWxlcwotTmFtZToge2FwcH1cTGliXHRraW50ZXJcKi5weW87IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxMaWJcdGtpbnRlcjsgVHlwZTogZGlyaWZlbXB0eQotTmFtZToge2FwcH1cTGliXHRlc3RcKi5weWM7IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxMaWJcdGVzdFwqLnB5bzsgVHlwZTogZmlsZXMKLU5hbWU6IHthcHB9XExpYlx0ZXN0OyBUeXBlOiBkaXJpZmVtcHR5Ci1OYW1lOiB7YXBwfVxMaWJceG1sXGRvbVwqLnB5YzsgVHlwZTogZmlsZXMKLU5hbWU6IHthcHB9XExpYlx4bWxcZG9tXCoucHlvOyBUeXBlOiBmaWxlcwotTmFtZToge2FwcH1cTGliXHhtbFxkb207IFR5cGU6IGRpcmlmZW1wdHkKLU5hbWU6IHthcHB9XExpYlx4bWxccGFyc2Vyc1wqLnB5YzsgVHlwZTogZmlsZXMKLU5hbWU6IHthcHB9XExpYlx4bWxccGFyc2Vyc1wqLnB5bzsgVHlwZTogZmlsZXMKLU5hbWU6IHthcHB9XExpYlx4bWxccGFyc2VyczsgVHlwZTogZGlyaWZlbXB0eQotTmFtZToge2FwcH1cTGliXHhtbFxzYXhcKi5weWM7IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxMaWJceG1sXHNheFwqLnB5bzsgVHlwZTogZmlsZXMKLU5hbWU6IHthcHB9XExpYlx4bWxcc2F4OyBUeXBlOiBkaXJpZmVtcHR5Ci1OYW1lOiB7YXBwfVxMaWJceG1sXCoucHljOyBUeXBlOiBmaWxlcwotTmFtZToge2FwcH1cTGliXHhtbFwqLnB5bzsgVHlwZTogZmlsZXMKLU5hbWU6IHthcHB9XExpYlx4bWw7IFR5cGU6IGRpcmlmZW1wdHkKLQotTmFtZToge2FwcH1cTGliXHNpdGUtcGFja2FnZXNcd2luMzI7IFR5cGU6IGZpbGVzYW5kb3JkaXJzCi1OYW1lOiB7YXBwfVxMaWJcc2l0ZS1wYWNrYWdlc1x3aW4zMmNvbTsgVHlwZTogZmlsZXNhbmRvcmRpcnMKLU5hbWU6IHthcHB9XExpYlxzaXRlLXBhY2thZ2VzXHdpbjMyY29tZXh0OyBUeXBlOiBmaWxlc2FuZG9yZGlycwotTmFtZToge2FwcH1cTGliXHNpdGUtcGFja2FnZXNccHl0aG9uY29tLnB5KjsgVHlwZTogZmlsZXMKLU5hbWU6IHthcHB9XExpYlxzaXRlLXBhY2thZ2VzOyBUeXBlOiBkaXJpZmVtcHR5Ci0KLU5hbWU6IHthcHB9XExpYlwqLnB5YzsgVHlwZTogZmlsZXMKLU5hbWU6IHthcHB9XExpYjsgVHlwZTogZGlyaWZlbXB0eQotCi1OYW1lOiB7YXBwfVxUb29sc1xweW5jaGVcKi5weWM7IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxUb29sc1xweW5jaGVcKi5weW87IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxUb29sc1xweW5jaGU7IFR5cGU6IGRpcmlmZW1wdHkKLQotTmFtZToge2FwcH1cVG9vbHNcaWRsZVwqLnB5YzsgVHlwZTogZmlsZXMKLU5hbWU6IHthcHB9XFRvb2xzXGlkbGVcKi5weW87IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxUb29sc1xpZGxlOyBUeXBlOiBkaXJpZmVtcHR5Ci0KLU5hbWU6IHthcHB9XFRvb2xzXHNjcmlwdHNcKi5weWM7IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxUb29sc1xzY3JpcHRzXCoucHlvOyBUeXBlOiBmaWxlcwotTmFtZToge2FwcH1cVG9vbHNcc2NyaXB0czsgVHlwZTogZGlyaWZlbXB0eQotCi1OYW1lOiB7YXBwfVxUb29sc1x2ZXJzaW9uY2hlY2tcKi5weWM7IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxUb29sc1x2ZXJzaW9uY2hlY2tcKi5weW87IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxUb29sc1x2ZXJzaW9uY2hlY2s7IFR5cGU6IGRpcmlmZW1wdHkKLQotTmFtZToge2FwcH1cVG9vbHNcd2ViY2hlY2tlclwqLnB5YzsgVHlwZTogZmlsZXMKLU5hbWU6IHthcHB9XFRvb2xzXHdlYmNoZWNrZXJcKi5weW87IFR5cGU6IGZpbGVzCi1OYW1lOiB7YXBwfVxUb29sc1x3ZWJjaGVja2VyOyBUeXBlOiBkaXJpZmVtcHR5Ci0KLU5hbWU6IHthcHB9XFRvb2xzOyBUeXBlOiBkaXJpZmVtcHR5Ci0KZGlmZiAtLWdpdCBhL1BDL1ZTNy4xL3B5dGhvbi52Y3Byb2ogYi9QQy9WUzcuMS9weXRob24udmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MGI0NDAxLi4wMDAwMDAwCi0tLSBhL1BDL1ZTNy4xL3B5dGhvbi52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSwyNzQgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjcuMTAiDQotCU5hbWU9InB5dGhvbiINCi0JU2NjUHJvamVjdE5hbWU9InB5dGhvbiINCi0JU2NjTG9jYWxQYXRoPSIuLiI+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJXaW4zMiIvPg0KLQk8L1BsYXRmb3Jtcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1yZWxlYXNlXHB5dGhvbiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7TkRFQlVHO19DT05TT0xFIg0KLQkJCQlTdHJpbmdQb29saW5nPSJUUlVFIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRSVUUiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9Im9kYmNjcDMyLmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLlwuL3B5dGhvbi5leGUiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9weXRob24ucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjEiDQotCQkJCVN0YWNrUmVzZXJ2ZVNpemU9IjIwMDAwMDAiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFkMDAwMDAwIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJOREVCVUciDQotCQkJCUN1bHR1cmU9IjEwMzMiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuXC4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXHg4Ni10ZW1wLWRlYnVnXHB5dGhvbiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjAiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfREVCVUc7X0NPTlNPTEUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIzIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJQnJvd3NlSW5mb3JtYXRpb249IjEiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIg0KLQkJCQlDb21waWxlQXM9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0ib2RiY2NwMzIubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL3B5dGhvbl9kLmV4ZSINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL3B5dGhvbl9kLnBkYiINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCQlTdGFja1Jlc2VydmVTaXplPSIyMDAwMDAwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZDAwMDAwMCINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0RFQlVHIg0KLQkJCQlDdWx0dXJlPSIxMDMzIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2VJdGFuaXVtfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlxpYTY0LXRlbXAtcmVsZWFzZVxweXRob24iDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIg0KLQkJCUNoYXJhY3RlclNldD0iMiI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvVVNFQ0w6TVNfSVRBTklVTSAgL0dTLSINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO05ERUJVRztfQ09OU09MRSINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6SUE2NCAvVVNFTElOSzpNU19TREsgL1ZTRVhUQ09NUF9WRVJCT1NFIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJvZGJjY3AzMi5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii5cLi9weXRob24uZXhlIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vcHl0aG9uLnBkYiINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCQlTdGFja1Jlc2VydmVTaXplPSIyMDAwMDAwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZDAwMDAwMCINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iTkRFQlVHIg0KLQkJCQlDdWx0dXJlPSIxMDMzIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2VBTUQ2NHxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSJhbWQ2NC10ZW1wLXJlbGVhc2VccHl0aG9uIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL1VTRUNMOk1TX09QVEVST04iDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtOREVCVUc7X0NPTlNPTEUiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMCINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUJ1ZmZlclNlY3VyaXR5Q2hlY2s9IkZBTFNFIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOkFNRDY0IC9VU0VMSU5LOk1TX1NESyINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0ib2RiY2NwMzIubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuXC4vcHl0aG9uLmV4ZSINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL3B5dGhvbi5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkJU3RhY2tSZXNlcnZlU2l6ZT0iMjAwMDAwMCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWQwMDAwMDAiDQotCQkJCVRhcmdldE1hY2hpbmU9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENccHljb24uaWNvIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHB5dGhvbi5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xweXRob25fZXhlLnJjIj4NCi0JCTwvRmlsZT4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM3LjEvcHl0aG9uMjAud3NlIGIvUEMvVlM3LjEvcHl0aG9uMjAud3NlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTdmNmFkMy4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9weXRob24yMC53c2UKKysrIC9kZXYvbnVsbApAQCAtMSwzMTE3ICswLDAgQEAKLURvY3VtZW50IFR5cGU6IFdTRQotaXRlbTogR2xvYmFsCi0gIFZlcnNpb249OS4wCi0gIFRpdGxlPVB5dGhvbiAyLjRhMQotICBGbGFncz0wMDAxMDEwMAotICBMYW5ndWFnZXM9NjUgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAKLSAgSmFwYW5lc2UgRm9udCBOYW1lPU1TIEdvdGhpYwotICBKYXBhbmVzZSBGb250IFNpemU9MTAKLSAgU3RhcnQgR3JhZGllbnQ9MCAyNTUgMAotICBFbmQgR3JhZGllbnQ9MCAxMjggMAotICBXaW5kb3dzIEZsYWdzPTAwMDAwMTAwMDAwMDExMDEwMDEwMDEwMTAwMDAxMDEwCi0gIExvZyBQYXRobmFtZT0lTUFJTkRJUiVcSU5TVEFMTC5MT0cKLSAgTWVzc2FnZSBGb250PU1TIFNhbnMgU2VyaWYKLSAgRm9udCBTaXplPTgKLSAgUGFnZXMgTW9kaWZpZWQ9MDAwMTAwMDAwMTExMDEwMDAwMDAwMDAxMDAwMDAxMTEKLSAgRXh0cmEgUGFnZXM9MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAxMTAwMTAKLSAgRGlzayBGaWxlbmFtZT1TRVRVUAotICBQYXRjaCBGbGFncz0wMDAwMDAwMDAwMDAxMDAxCi0gIFBhdGNoIFRocmVzaG9sZD04NQotICBQYXRjaCBNZW1vcnk9NDAwMAotICBNSUYgUERGIFZlcnNpb249MS4wCi0gIE1JRiBTTVMgVmVyc2lvbj0yLjAKLSAgRVhFIEZpbGVuYW1lPVB5dGhvbi0yLjRhMS5leGUKLSAgRGlhbG9ncyBWZXJzaW9uPTgKLSAgVmVyc2lvbiBGaWxlPTIuNGExCi0gIFZlcnNpb24gRGVzY3JpcHRpb249UHl0aG9uIFByb2dyYW1taW5nIExhbmd1YWdlCi0gIFZlcnNpb24gQ29weXJpZ2h0PakyMDAxLTIwMDcgUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24KLSAgVmVyc2lvbiBDb21wYW55PVB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0gIENyeXN0YWwgRm9ybWF0PTEwMTExMTAwMTAxMTAwMDAwMDEwMDAxMDAxMDAxMDAxCi0gIFN0ZXAgVmlldz0mQWxsCi0gIFZhcmlhYmxlIE5hbWUxPV9XSVNFXwotICBWYXJpYWJsZSBEZXNjcmlwdGlvbjE9V0lTRSByb290IGRpcmVjdG9yeQotICBWYXJpYWJsZSBEZWZhdWx0MT1DOlxQcm9ncmFtbWVcV2lzZSBJbnN0YWxsYXRpb24gU3lzdGVtCi0gIFZhcmlhYmxlIEZsYWdzMT0wMDAwMTAwMAotICBWYXJpYWJsZSBOYW1lMj1fVENMRElSXwotICBWYXJpYWJsZSBEZXNjcmlwdGlvbjI9VGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0aGUgVGNsL1RrIGluc3RhbGxhdGlvbgotICBWYXJpYWJsZSBEZXNjcmlwdGlvbjI9bGl2ZXMuICBUaGlzIG11c3QgYmUgYSBzaWJsaW5nIG9mIHRoZSBQeXRob24KLSAgVmFyaWFibGUgRGVzY3JpcHRpb24yPWRpcmVjdG9yeS4KLSAgVmFyaWFibGUgRGVmYXVsdDI9dGNsODQKLSAgVmFyaWFibGUgRmxhZ3MyPTAwMDAxMDAwCi0gIFZhcmlhYmxlIE5hbWUzPV9ET0NfCi0gIFZhcmlhYmxlIERlc2NyaXB0aW9uMz1UaGUgdW5wYWNrZWQgSFRNTCBkb2MgZGlyZWN0b3J5LgotICBWYXJpYWJsZSBEZWZhdWx0Mz0uLlxodG1sCi0gIFZhcmlhYmxlIEZsYWdzMz0wMDAwMTAwMQotICBWYXJpYWJsZSBOYW1lND1fU1lTXwotICBWYXJpYWJsZSBEZXNjcmlwdGlvbjQ9U3lzdGVtIGRpcmVjdG9yeSAod2hlcmUgdG8gZmluZCBNU1ZDUlQuRExMKQotICBWYXJpYWJsZSBEZWZhdWx0ND1DOlxXaW5kb3dzXFN5c3RlbQotICBWYXJpYWJsZSBWYWx1ZXM0PUM6XFdpbmRvd3NcU3lzdGVtCi0gIFZhcmlhYmxlIFZhbHVlczQ9QzpcV0lOTlRcU3lzdGVtMzIKLSAgVmFyaWFibGUgVmFsdWVzND1DOlxDb2RlXE1TRExMcwotICBWYXJpYWJsZSBWYWx1ZXM0PUM6XFdpbmRvd3NcU3lzdGVtMzIKLSAgVmFyaWFibGUgRmxhZ3M0PTAwMDAwMDEwCi0gIFZhcmlhYmxlIE5hbWU1PV9QWU1BSk9SXwotICBWYXJpYWJsZSBEZXNjcmlwdGlvbjU9UHl0aG9uIG1ham9yIHZlcnNpb24gbnVtYmVyOyB0aGUgMiBpbiAyLjMuCi0gIFZhcmlhYmxlIERlZmF1bHQ1PTIKLSAgVmFyaWFibGUgRmxhZ3M1PTAwMDAxMDAwCi0gIFZhcmlhYmxlIE5hbWU2PV9QWU1JTk9SXwotICBWYXJpYWJsZSBEZXNjcmlwdGlvbjY9UHl0aG9uIG1pbm9yIHZlcnNpb24gbnVtYmVyOyB0aGUgMyBpbiAyLjMKLSAgVmFyaWFibGUgRGVmYXVsdDY9MwotICBWYXJpYWJsZSBGbGFnczY9MDAwMDEwMDAKLSAgVmFyaWFibGUgTmFtZTc9X0RPQURNSU5fCi0gIFZhcmlhYmxlIERlc2NyaXB0aW9uNz1UaGUgaW5pdGlhbCB2YWx1ZSBmb3IgJURPQURNSU4lLgotICBWYXJpYWJsZSBEZXNjcmlwdGlvbjc9V2hlbiAwLCB3ZSBuZXZlciB0cnkgdG8gd3JpdGUgdW5kZXIgSEtMTSwKLSAgVmFyaWFibGUgRGVzY3JpcHRpb243PWFuZCBpbnN0YWxsIHRoZSBQeXRob24gKyBNUyBydW50aW1lIERMTHMgaW4KLSAgVmFyaWFibGUgRGVzY3JpcHRpb243PXRoZSBQeXRob24gZGlyZWN0b3J5IGluc3RlYWQgb2YgdGhlIHN5c3RlbSBkaXIuCi0gIFZhcmlhYmxlIERlZmF1bHQ3PTEKLSAgVmFyaWFibGUgVmFsdWVzNz0xCi0gIFZhcmlhYmxlIFZhbHVlczc9MAotICBWYXJpYWJsZSBGbGFnczc9MDAwMDEwMTAKLSAgVmFyaWFibGUgTmFtZTg9X0FMSUFTTkFNRV8KLSAgVmFyaWFibGUgRmxhZ3M4PTAwMDAxMDAwCi0gIFZhcmlhYmxlIE5hbWU5PV9BTElBU1BBVEhfCi0gIFZhcmlhYmxlIEZsYWdzOT0wMDAwMTAwMAotICBWYXJpYWJsZSBOYW1lMTA9X0FMSUFTVFlQRV8KLSAgVmFyaWFibGUgRmxhZ3MxMD0wMDAwMTAwMAotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9UFlWRVJfU1RSSU5HCi0gIFZhbHVlPTIuMwotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9V2hlbiB0aGUgdmVyc2lvbiBudW1iZXIgY2hhbmdlcywgc2V0IHRoZSBjb21waWxlcgotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD12cmJscyBfUFlNQUpPUl8gYW5kICBfUFlNSU5PUl8uCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PU5vdGhpbmcgaW4gdGhlIHNjcmlwdCBiZWxvdyBzaG91bGQgbmVlZCBmaWRkbGluZyB0aGVuLgotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1PdGhlciB0aGluZ3MgdGhhdCBuZWVkIGZpZGRsaW5nOgotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD0gICAgUFlWRVJfU1RSSU5HIGFib3ZlLgotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD0gICAgVGhlICJUaXRsZToiIGluIHRoZSB1cHBlciBsZWZ0IGNvcm5lciBvZiB0aGUgR1VJLgotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD0gICAgQnVpbGQgU2V0dGluZ3MgYW5kIFZlcnNpb24gUmVzb3VyY2Ugb24gc3RlcCA2IChGaW5pc2gpIG9mIHRoZSBJbnN0YWxsYXRpb24gRXhwZXJ0Ci1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PSAgICAgICAgQmUgc3VyZSB0byBzZWxlY3QgU3RlcHMtPkFsbCBvciB5b3UgbWF5IG5vdCBzZWUgdGhlc2UhCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1XaGVuIHRoZSB2ZXJzaW9uIG9mIFRjbC9UayBjaGFuZ2VzLCB0aGUgY29tcGlsZXIgdnJibAotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1fVENMRElSXyBtYXkgYWxzbyBuZWVkIHRvIGJlIGNoYW5nZWQuCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9QVBQVElUTEUKLSAgVmFsdWU9UHl0aG9uICVQWVZFUl9TVFJJTkclCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PVBZX1ZFUlNJT04gc2hvdWxkIGJlIG1ham9yLm1pbm9yIG9ubHk7IHVzZWQgdG8gY3JlYXRlIHRoZSByZWdpc3RyeSBrZXk7IG11c3QgbWF0Y2ggTVNfRExMX0lEIGluIHB5dGhvbl9udC5yYwotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9UFlfVkVSU0lPTgotICBWYWx1ZT0lX1BZTUFKT1JfJS4lX1BZTUlOT1JfJQotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1HUk9VUCBpcyB0aGUgU3RhcnQgbWVudSBncm91cCBuYW1lOyB1c2VyIGNhbiBvdmVycmlkZS4KLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPUdST1VQCi0gIFZhbHVlPVB5dGhvbiAlUFlfVkVSU0lPTiUKLSAgRmxhZ3M9MTAwMDAwMDAKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9TUFJTkRJUiBpcyB0aGUgYXBwIGRpcmVjdG9yeTsgdXNlciBjYW4gb3ZlcnJpZGUuCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1NQUlORElSCi0gIFZhbHVlPVB5dGhvbiVfUFlNQUpPUl8lJV9QWU1JTk9SXyUKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1ET0FETUlOCi0gIFZhbHVlPSVfRE9BRE1JTl8lCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUdpdmUgbm9uLWFkbWluIHVzZXJzIGEgY2hhbmNlIHRvIGFib3J0LgotZW5kCi1pdGVtOiBDaGVjayBDb25maWd1cmF0aW9uCi0gIEZsYWdzPTEwMDExMTExCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1ET0FETUlOCi0gIFZhbHVlPTAKLWVuZAotaXRlbTogRGlzcGxheSBNZXNzYWdlCi0gIFRpdGxlPURvaW5nIG5vbi1hZG1pbiBpbnN0YWxsCi0gIFRleHQ9VGhlIGN1cnJlbnQgbG9naW4gZG9lcyBub3QgaGF2ZSBBZG1pbmlzdHJhdG9yIFByaXZpbGVnZXMgb24gdGhpcyBtYWNoaW5lLiAgUHl0aG9uIHdpbGwgaW5zdGFsbCBpdHMgcmVnaXN0cnkgaW5mb3JtYXRpb24gaW50byB0aGUgcGVyLXVzZXIgYXJlYSBvbmx5IGZvciB0aGUgY3VycmVudCBsb2dpbiwgaW5zdGVhZCBvZiBpbnRvIHRoZSBwZXItbWFjaGluZSBhcmVhIGZvciBldmVyeSBhY2NvdW50IG9uIHRoaXMgbWFjaGluZS4gIFNvbWUgYWR2YW5jZWQgdXNlcyBvZiBQeXRob24gbWF5IG5vdCB3b3JrIGFzIGEgcmVzdWx0IChmb3IgZXhhbXBsZSwgcnVubmluZyBhIFB5dGhvbiBzY3JpcHQgYXMgYSBzZXJ2aWNlKS4KLSAgVGV4dD0KLSAgVGV4dD1JZiB0aGlzIGlzIG5vdCB3aGF0IHlvdSB3YW50LCBwbGVhc2UgY2xpY2sgQ2FuY2VsIHRvIGFib3J0IHRoaXMgaW5zdGFsbGF0aW9uLCBsb2cgb24gYXMgYW4gQWRtaW5pc3RyYXRvciwgYW5kIHN0YXJ0IHRoZSBpbnN0YWxsYXRpb24gYWdhaW4uCi0gIEZsYWdzPTAwMDAxMDAwCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9QkVHSU4gV0laQVJEIFNUVUZGIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PU5vdGUgZnJvbSBUaW06IHRoZSAic3RvcCIgb24gdGhlIG5leHQgbGluZSBpcyBhY3R1YWxseSAicGF1c2UiLgotZW5kCi1pdGVtOiBPcGVuL0Nsb3NlIElOU1RBTEwuTE9HCi0gIEZsYWdzPTAwMDAwMDAxCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUlmIHRoZSBkZXN0aW5hdGlvbiBzeXN0ZW0gZG9lcyBub3QgaGF2ZSBhIHdyaXRhYmxlIFdpbmRvd3NcU3lzdGVtIGRpcmVjdG9yeSwgc3lzdGVtIGZpbGVzIHdpbGwgYmUgd3JpdHRlbiB0byB0aGUgV2luZG93c1wgZGlyZWN0b3J5Ci1lbmQKLWl0ZW06IENoZWNrIGlmIEZpbGUvRGlyIEV4aXN0cwotICBQYXRobmFtZT0lU1lTJQotICBGbGFncz0xMDAwMDEwMAotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9U1lTCi0gIFZhbHVlPSVXSU4lCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBDaGVjayBDb25maWd1cmF0aW9uCi0gIEZsYWdzPTEwMTExMDExCi1lbmQKLWl0ZW06IEdldCBSZWdpc3RyeSBLZXkgVmFsdWUKLSAgVmFyaWFibGU9Q09NTU9OCi0gIEtleT1TT0ZUV0FSRVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvbgotICBEZWZhdWx0PUM6XFByb2dyYW0gRmlsZXNcQ29tbW9uIEZpbGVzCi0gIFZhbHVlIE5hbWU9Q29tbW9uRmlsZXNEaXIKLSAgRmxhZ3M9MDAwMDAxMDAKLWVuZAotaXRlbTogR2V0IFJlZ2lzdHJ5IEtleSBWYWx1ZQotICBWYXJpYWJsZT1QUk9HUkFNX0ZJTEVTCi0gIEtleT1TT0ZUV0FSRVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvbgotICBEZWZhdWx0PUM6XFByb2dyYW0gRmlsZXMKLSAgVmFsdWUgTmFtZT1Qcm9ncmFtRmlsZXNEaXIKLSAgRmxhZ3M9MDAwMDAxMDAKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPUVYUExPUkVSCi0gIFZhbHVlPTEKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PU5vdGUgZnJvbSBUaW06ICBUaGUgV2l6YXJkIGhhcmRjb2QgIkM6IiBhdCB0aGUgc3RhcnQgb2YgdGhlIHJlcGxhY2VtZW50IHRleHQgZm9yIE1BSU5ESVIuCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PVRoYXQncyBub3QgYXBwcm9wcmlhdGUgaWYgdGhlIHN5c3RlbSBkcml2ZSBkb2Vzbid0IGhhcHBlbiB0byBiZSBDOi4KLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9SSByZW1vdmVkIHRoZSAiQzoiLCBhbmQgdGhhdCBkaWQgdGhlIHJpZ2h0IHRoaW5nIGZvciB0d28gcGVvcGxlIHdobyB0ZXN0ZWQgaXQgb24gbm9uLUM6IG1hY2hpbmVzLAotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1idXQgaXQncyB1bmNsZWFyIHdoZXRoZXIgaXQgd2lsbCBhbHdheXMgZG8gdGhlIHJpZ2h0IHRoaW5nLgotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9TUFJTkRJUgotICBWYWx1ZT1cJU1BSU5ESVIlCi0gIEZsYWdzPTAwMDAxMTAwCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUJBQ0tVUCBpcyB0aGUgdmFyaWFibGUgdGhhdCBob2xkcyB0aGUgcGF0aCB0aGF0IGFsbCBiYWNrdXAgZmlsZXMgd2lsbCBiZSBjb3BpZWQgdG8gd2hlbiBvdmVyd3JpdHRlbgotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9QkFDS1VQCi0gIFZhbHVlPSVNQUlORElSJVxCQUNLVVAKLSAgRmxhZ3M9MTAwMDAwMDAKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9RE9CQUNLVVAgZGV0ZXJtaW5lcyBpZiBhIGJhY2t1cCB3aWxsIGJlIHBlcmZvcm1lZC4gIFRoZSBwb3NzaWJsZSB2YWx1ZXMgYXJlIEEgKGRvIGJhY2t1cCkgb3IgQiAoZG8gbm90IGRvIGJhY2t1cCkKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPURPQkFDS1VQCi0gIFZhbHVlPUEKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9QlJBTkRJTkcgZGV0ZXJtaW5lcyBpZiB0aGUgaW5zdGFsbGF0aW9uIHdpbGwgYmUgYnJhbmRlZCB3aXRoIGEgbmFtZSBhbmQgY29tcGFueS4gIEJ5IGRlZmF1bHQsIHRoaXMgaXMgd3JpdHRlbiB0byB0aGUgSU5TVCBkaXJlY3RvcnkgKGluc3RhbGxhdGlvbiBtZWRpYSkuCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1CUkFORElORwotICBWYWx1ZT0wCi1lbmQKLWl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICBWYXJpYWJsZT1CUkFORElORwotICBWYWx1ZT0xCi1lbmQKLWl0ZW06IFJlYWQgSU5JIFZhbHVlCi0gIFZhcmlhYmxlPU5BTUUKLSAgUGF0aG5hbWU9JUlOU1QlXENVU1REQVRBLklOSQotICBTZWN0aW9uPVJlZ2lzdHJhdGlvbgotICBJdGVtPU5hbWUKLWVuZAotaXRlbTogUmVhZCBJTkkgVmFsdWUKLSAgVmFyaWFibGU9Q09NUEFOWQotICBQYXRobmFtZT0lSU5TVCVcQ1VTVERBVEEuSU5JCi0gIFNlY3Rpb249UmVnaXN0cmF0aW9uCi0gIEl0ZW09Q29tcGFueQotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9TkFNRQotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9RE9CUkFORAotICBWYWx1ZT0xCi1lbmQKLWl0ZW06IEdldCBTeXN0ZW0gSW5mb3JtYXRpb24KLSAgVmFyaWFibGU9TkFNRQotICBGbGFncz0wMDAwMDExMAotZW5kCi1pdGVtOiBHZXQgU3lzdGVtIEluZm9ybWF0aW9uCi0gIFZhcmlhYmxlPUNPTVBBTlkKLSAgRmxhZ3M9MDAwMDAxMTEKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1FTkQgV0laQVJEIFNUVUZGIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1TZXQgdnJibHMgZm9yIHRoZSAiQWR2YW5jZWQgT3B0aW9ucyIgc3ViZGlhbG9nIG9mIENvbXBvbmVudHMuCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1TRUxFQ1RfQURNSU4KLSAgVmFsdWU9QQotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9RE9BRE1JTgotICBWYWx1ZT0wCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1TRUxFQ1RfQURNSU4KLSAgVmFsdWU9QgotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PVRBU0tTIHZhbHVlczoKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9QTogUmVnaXN0ZXIgZmlsZSBleHRlbnNpb25zCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUI6IENyZWF0ZSBTdGFydCBNZW51IHNob3J0Y3V0cwotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9VEFTS1MKLSAgVmFsdWU9QUIKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUNPTVBPTkVOVFMgdmFsdWVzOgotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1BOiBpbnRlcnByZXRlciBhbmQgbGlicmFyaWVzCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUI6IFRjbC9UawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1DOiBkb2NzCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUQ6IHRvb2xzCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUU6IHRlc3Qgc3VpdGUKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPUNPTVBPTkVOVFMKLSAgVmFsdWU9QUJDREUKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PU1hcmNoIHRocnUgdGhlIHVzZXIgR1VJLgotZW5kCi1pdGVtOiBXaXphcmQgQmxvY2sKLSAgRGlyZWN0aW9uIFZhcmlhYmxlPURJUkVDVElPTgotICBEaXNwbGF5IFZhcmlhYmxlPURJU1BMQVkKLSAgQml0bWFwIFBhdGhuYW1lPS5caW5zdGFsbGVyLmJtcAotICBYIFBvc2l0aW9uPTkKLSAgWSBQb3NpdGlvbj0xMAotICBGaWxsZXIgQ29sb3I9MTExNzM3NTkKLSAgRGlhbG9nPVNlbGVjdCBEZXN0aW5hdGlvbiBEaXJlY3RvcnkKLSAgRGlhbG9nPUJhY2t1cCBSZXBsYWNlZCBGaWxlcwotICBEaWFsb2c9U2VsZWN0IENvbXBvbmVudHMKLSAgRGlhbG9nPVNlbGVjdCBQcm9ncmFtIE1hbmFnZXIgR3JvdXAKLSAgVmFyaWFibGU9Ci0gIFZhcmlhYmxlPQotICBWYXJpYWJsZT0KLSAgVmFyaWFibGU9VEFTS1MKLSAgVmFsdWU9Ci0gIFZhbHVlPQotICBWYWx1ZT0KLSAgVmFsdWU9QgotICBDb21wYXJlPTAKLSAgQ29tcGFyZT0wCi0gIENvbXBhcmU9MAotICBDb21wYXJlPTMKLSAgRmxhZ3M9MDAwMDAwMTEKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPURJU1BMQVkKLSAgVmFsdWU9U3RhcnQgSW5zdGFsbGF0aW9uCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1TVU1NQVJZCi0gIFZhbHVlPUluc3RhbGwgZGlyZWN0b3J5OiAgJU1BSU5ESVIlJUNSTEYlCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9U0VMRUNUX0FETUlOCi0gIFZhbHVlPUEKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPVNVTU1BUlkKLSAgVmFsdWU9JUNSTEYlRG9pbmcgYWRtaW4gaW5zdGFsbC4lQ1JMRiUKLSAgRmxhZ3M9MDAwMDAwMDEKLWVuZAotaXRlbTogRWxzZSBTdGF0ZW1lbnQKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPVNVTU1BUlkKLSAgVmFsdWU9JUNSTEYlRG9pbmcgbm9uLWFkbWluIGluc3RhbGwuJUNSTEYlCi0gIEZsYWdzPTAwMDAwMDAxCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPURPQkFDS1VQCi0gIFZhbHVlPUEKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPVNVTU1BUlkKLSAgVmFsdWU9JUNSTEYlTWFrZSBiYWNrdXBzLCBpbnRvICVCQUNLVVAlJUNSTEYlCi0gIEZsYWdzPTAwMDAwMDAxCi1lbmQKLWl0ZW06IEVsc2UgU3RhdGVtZW50Ci1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1TVU1NQVJZCi0gIFZhbHVlPSVDUkxGJURvbid0IG1ha2UgYmFja3Vwcy4lQ1JMRiUKLSAgRmxhZ3M9MDAwMDAwMDEKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9U1VNTUFSWQotICBWYWx1ZT0lQ1JMRiVDb21wb25lbnRzOiVDUkxGJQotICBGbGFncz0wMDAwMDAwMQotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9Q09NUE9ORU5UUwotICBWYWx1ZT1BCi0gIEZsYWdzPTAwMDAwMDEwCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1TVU1NQVJZCi0gIFZhbHVlPSAgICBQeXRob24gaW50ZXJwcmV0ZXIgYW5kIGxpYnJhcmllcyVDUkxGJQotICBGbGFncz0wMDAwMDAwMQotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPUNPTVBPTkVOVFMKLSAgVmFsdWU9QgotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9U1VNTUFSWQotICBWYWx1ZT0gICAgVGNsL1RrIChUa2ludGVyLCBJRExFLCBweWRvYyklQ1JMRiUKLSAgRmxhZ3M9MDAwMDAwMDEKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICBWYXJpYWJsZT1DT01QT05FTlRTCi0gIFZhbHVlPUMKLSAgRmxhZ3M9MDAwMDAwMTAKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPVNVTU1BUlkKLSAgVmFsdWU9ICAgIFB5dGhvbiBkb2N1bWVudGF0aW9uJUNSTEYlCi0gIEZsYWdzPTAwMDAwMDAxCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9Q09NUE9ORU5UUwotICBWYWx1ZT1ECi0gIEZsYWdzPTAwMDAwMDEwCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1TVU1NQVJZCi0gIFZhbHVlPSAgICBUb29sIGFuZCB1dGlsaXR5IHNjcmlwdHMlQ1JMRiUKLSAgRmxhZ3M9MDAwMDAwMDEKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICBWYXJpYWJsZT1DT01QT05FTlRTCi0gIFZhbHVlPUUKLSAgRmxhZ3M9MDAwMDAwMTAKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPVNVTU1BUlkKLSAgVmFsdWU9ICAgIFB5dGhvbiB0ZXN0IHN1aXRlJUNSTEYlCi0gIEZsYWdzPTAwMDAwMDAxCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPVRBU0tTCi0gIFZhbHVlPUEKLSAgRmxhZ3M9MDAwMDAwMTAKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPVNVTU1BUlkKLSAgVmFsdWU9JUNSTEYlUmVnaXN0ZXIgZmlsZSBleHRlbnNpb25zLiVDUkxGJQotICBGbGFncz0wMDAwMDAwMQotZW5kCi1pdGVtOiBFbHNlIFN0YXRlbWVudAotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9U1VNTUFSWQotICBWYWx1ZT0lQ1JMRiVEb24ndCByZWdpc3RlciBmaWxlIGV4dGVuc2lvbnMuJUNSTEYlCi0gIEZsYWdzPTAwMDAwMDAxCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPVRBU0tTCi0gIFZhbHVlPUIKLSAgRmxhZ3M9MDAwMDAwMTAKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPVNVTU1BUlkKLSAgVmFsdWU9JUNSTEYlU3RhcnQgTWVudSBncm91cDogICVHUk9VUCUlQ1JMRiUKLSAgRmxhZ3M9MDAwMDAwMDEKLWVuZAotaXRlbTogRWxzZSBTdGF0ZW1lbnQKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPVNVTU1BUlkKLSAgVmFsdWU9JUNSTEYlTm8gU3RhcnQgTWVudSBzaG9ydGN1dHMuJUNSTEYlCi0gIEZsYWdzPTAwMDAwMDAxCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IEN1c3RvbSBEaWFsb2cgU2V0Ci0gIE5hbWU9U2VsZWN0IERlc3RpbmF0aW9uIERpcmVjdG9yeQotICBEaXNwbGF5IFZhcmlhYmxlPURJU1BMQVkKLSAgaXRlbTogRGlhbG9nCi0gICAgVGl0bGU9JUFQUFRJVExFJSBJbnN0YWxsYXRpb24KLSAgICBUaXRsZSBGcmVuY2g9SW5zdGFsbGF0aW9uIGRlICVBUFBUSVRMRSUKLSAgICBUaXRsZSBHZXJtYW49SW5zdGFsbGF0aW9uIHZvbiAlQVBQVElUTEUlCi0gICAgVGl0bGUgU3BhbmlzaD1JbnN0YWxhY2nzbiBkZSAlQVBQVElUTEUlCi0gICAgVGl0bGUgSXRhbGlhbj1JbnN0YWxsYXppb25lIGRpICVBUFBUSVRMRSUKLSAgICBXaWR0aD0zMzkKLSAgICBIZWlnaHQ9MjgwCi0gICAgRm9udCBOYW1lPUhlbHYKLSAgICBGb250IFNpemU9OAotICAgIGl0ZW06IFB1c2ggQnV0dG9uCi0gICAgICBSZWN0YW5nbGU9MTg4IDIzNCAyNDQgMjUzCi0gICAgICBWYXJpYWJsZT1ESVJFQ1RJT04KLSAgICAgIFZhbHVlPU4KLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMQotICAgICAgVGV4dD0mTmV4dCA+Ci0gICAgICBUZXh0IEZyZW5jaD0mU3VpdGUgPgotICAgICAgVGV4dCBHZXJtYW49JldlaXRlciA+Ci0gICAgICBUZXh0IFNwYW5pc2g9JlNpZ3VpZW50ZSA+Ci0gICAgICBUZXh0IEl0YWxpYW49JkF2YW50aSA+Ci0gICAgZW5kCi0gICAgaXRlbTogUHVzaCBCdXR0b24KLSAgICAgIFJlY3RhbmdsZT0yNjQgMjM0IDMyMCAyNTMKLSAgICAgIEFjdGlvbj0zCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDAKLSAgICAgIFRleHQ9JkNhbmNlbAotICAgICAgVGV4dCBGcmVuY2g9JkFubnVsZXIKLSAgICAgIFRleHQgR2VybWFuPSZBYmJyZWNoZW4KLSAgICAgIFRleHQgU3BhbmlzaD0mQ2FuY2VsYXIKLSAgICAgIFRleHQgSXRhbGlhbj0mQW5udWxsYQotICAgIGVuZAotICAgIGl0ZW06IFN0YXRpYwotICAgICAgUmVjdGFuZ2xlPTEwIDIyNSAzMjAgMjI2Ci0gICAgICBBY3Rpb249MwotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTExCi0gICAgZW5kCi0gICAgaXRlbTogU3RhdGljCi0gICAgICBSZWN0YW5nbGU9MTA4IDExIDMyMyAzMwotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0gICAgICBGbGFncz0wMDAwMDAwMDAwMDAwMDAxCi0gICAgICBOYW1lPVRpbWVzIE5ldyBSb21hbgotICAgICAgRm9udCBTdHlsZT0tMjQgMCAwIDAgNzAwIDI1NSAwIDAgMCAzIDIgMSAxOAotICAgICAgVGV4dD1TZWxlY3QgRGVzdGluYXRpb24gRGlyZWN0b3J5Ci0gICAgICBUZXh0IEZyZW5jaD1T6WxlY3Rpb25uZXIgbGUgculwZXJ0b2lyZSBkZSBkZXN0aW5hdGlvbgotICAgICAgVGV4dCBHZXJtYW49WmllbHZlcnplaWNobmlzIHfkaGxlbgotICAgICAgVGV4dCBTcGFuaXNoPVNlbGVjY2lvbmUgZWwgZGlyZWN0b3JpbyBkZSBkZXN0aW5vCi0gICAgICBUZXh0IEl0YWxpYW49U2VsZXppb25hcmUgRGlyZWN0b3J5IGRpIGRlc3RpbmF6aW9uZQotICAgIGVuZAotICAgIGl0ZW06IExpc3Rib3gKLSAgICAgIFJlY3RhbmdsZT0xMDggNTggMzIxIDIxOQotICAgICAgVmFyaWFibGU9TUFJTkRJUgotICAgICAgRW5hYmxlZCBDb2xvcj0wMDAwMDAwMDAwMDAwMDAwMTExMTExMTExMTExMTExMQotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMTAwMDAwMDEwMDAwMDAwMTAxMDAwMDAxCi0gICAgICBGbGFncz0wMDAwMTEwMDAwMDAxMDEwCi0gICAgICBUZXh0PSVNQUlORElSJQotICAgICAgVGV4dD0KLSAgICBlbmQKLSAgICBpdGVtOiBTdGF0aWMKLSAgICAgIFJlY3RhbmdsZT0xMDggNDAgMzEzIDU4Ci0gICAgICBFbmFibGVkIENvbG9yPTAwMDAwMDAwMDAwMDAwMDAxMTExMTExMTExMTExMTExCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLSAgICAgIFRleHQ9UGxlYXNlIHNlbGVjdCBhIGRpcmVjdG9yeSBmb3IgdGhlICVBUFBUSVRMRSUgZmlsZXMuCi0gICAgZW5kCi0gIGVuZAotICBpdGVtOiBEaWFsb2cKLSAgICBUaXRsZT1TZWxlY3QgRGVzdGluYXRpb24gRGlyZWN0b3J5Ci0gICAgVGl0bGUgRnJlbmNoPVPpbGVjdGlvbm5lciBsZSBy6XBlcnRvaXJlIGRlIGRlc3RpbmF0aW9uCi0gICAgVGl0bGUgR2VybWFuPVppZWx2ZXJ6ZWljaG5pcyB35GhsZW4KLSAgICBUaXRsZSBTcGFuaXNoPVNlbGVjY2lvbmUgZWwgZGlyZWN0b3JpbyBkZSBkZXN0aW5vCi0gICAgVGl0bGUgSXRhbGlhbj1TZWxlemlvbmFyZSBEaXJlY3RvcnkgZGkgZGVzdGluYXppb25lCi0gICAgV2lkdGg9Mjc2Ci0gICAgSGVpZ2h0PTIxNgotICAgIEZvbnQgTmFtZT1IZWx2Ci0gICAgRm9udCBTaXplPTgKLSAgICBpdGVtOiBMaXN0Ym94Ci0gICAgICBSZWN0YW5nbGU9NiA2IDIwNCAxODYKLSAgICAgIFZhcmlhYmxlPU1BSU5ESVIKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDEwMDAwMDAxMDAwMDAwMDEwMTAwMDAwMAotICAgICAgRmxhZ3M9MDAwMDExMDAwMDEwMDAxMAotICAgICAgVGV4dD0lTUFJTkRJUiUKLSAgICAgIFRleHQgRnJlbmNoPSVNQUlORElSJQotICAgICAgVGV4dCBHZXJtYW49JU1BSU5ESVIlCi0gICAgICBUZXh0IFNwYW5pc2g9JU1BSU5ESVIlCi0gICAgICBUZXh0IEl0YWxpYW49JU1BSU5ESVIlCi0gICAgZW5kCi0gICAgaXRlbTogUHVzaCBCdXR0b24KLSAgICAgIFJlY3RhbmdsZT0yMDkgOCAyNjUgMjYKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMQotICAgICAgVGV4dD1PSwotICAgICAgVGV4dCBGcmVuY2g9T0sKLSAgICAgIFRleHQgR2VybWFuPU9LCi0gICAgICBUZXh0IFNwYW5pc2g9QWNlcHRhcgotICAgICAgVGV4dCBJdGFsaWFuPU9LCi0gICAgZW5kCi0gICAgaXRlbTogUHVzaCBCdXR0b24KLSAgICAgIFJlY3RhbmdsZT0yMDkgMzEgMjY1IDUwCi0gICAgICBWYXJpYWJsZT1NQUlORElSCi0gICAgICBWYWx1ZT0lTUFJTkRJUl9TQVZFJQotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwCi0gICAgICBGbGFncz0wMDAwMDAwMDAwMDAwMDAxCi0gICAgICBUZXh0PUNhbmNlbAotICAgICAgVGV4dCBGcmVuY2g9QW5udWxlcgotICAgICAgVGV4dCBHZXJtYW49QWJicmVjaGVuCi0gICAgICBUZXh0IFNwYW5pc2g9Q2FuY2VsYXIKLSAgICAgIFRleHQgSXRhbGlhbj1Bbm51bGxhCi0gICAgZW5kCi0gIGVuZAotZW5kCi1pdGVtOiBDdXN0b20gRGlhbG9nIFNldAotICBOYW1lPUJhY2t1cCBSZXBsYWNlZCBGaWxlcwotICBEaXNwbGF5IFZhcmlhYmxlPURJU1BMQVkKLSAgaXRlbTogRGlhbG9nCi0gICAgVGl0bGU9JUFQUFRJVExFJSBJbnN0YWxsYXRpb24KLSAgICBUaXRsZSBGcmVuY2g9RmljaGllcnMgZGUgU2F1dmVnYXJkZSBSZW1wbGFj6XMKLSAgICBUaXRsZSBHZXJtYW49U2ljaGVydW5nc2tvcGllIHZvbiBlcnNldHp0ZW4gRGF0ZWllbiBlcnN0ZWxsZW4KLSAgICBUaXRsZSBQb3J0dWd1ZXNlPUZpY2hlaXJvcyBzdWJzdGl0de1kb3MgZGUgc2VndXJhbudhCi0gICAgVGl0bGUgU3BhbmlzaD1Db3BpYXMgZGUgc2VndXJpZGFkIGRlIGxvcyBhcmNoaXZvcyByZWVtcGxhemFkb3MKLSAgICBUaXRsZSBJdGFsaWFuPUJhY2t1cCBmaWxlIHNvc3RpdHVpdGkKLSAgICBUaXRsZSBEYW5pc2g9U2lra2VyaGVkc2tvcGllcmluZyBhZiBlcnN0YXR0ZWRlIGZpbGVyCi0gICAgVGl0bGUgRHV0Y2g9VmVydmFuZ2VuIGJlc3RhbmRlbiBrb3Bp63JlbgotICAgIFRpdGxlIE5vcndlZ2lhbj1TaWtrZXJoZXRza29waWVyZSBlcnN0YXR0ZWRlIGZpbGVyCi0gICAgVGl0bGUgU3dlZGlzaD1T5GtlcmhldHNrb3BpZXJhIHV0Ynl0dGEgZmlsZXIKLSAgICBXaWR0aD0zNTAKLSAgICBIZWlnaHQ9MjgwCi0gICAgRm9udCBOYW1lPUhlbHYKLSAgICBGb250IFNpemU9OAotICAgIGl0ZW06IFB1c2ggQnV0dG9uCi0gICAgICBSZWN0YW5nbGU9MTg4IDIzNCAyNDQgMjUxCi0gICAgICBWYXJpYWJsZT1ESVJFQ1RJT04KLSAgICAgIFZhbHVlPU4KLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMQotICAgICAgVGV4dD0mTmV4dCA+Ci0gICAgICBUZXh0IEZyZW5jaD0mU3VpdmFudD4KLSAgICAgIFRleHQgR2VybWFuPSZXZWl0ZXI+Ci0gICAgICBUZXh0IFBvcnR1Z3Vlc2U9JlBy83hpbW8+Ci0gICAgICBUZXh0IFNwYW5pc2g9JlNpZ3VpZW50ZSA+Ci0gICAgICBUZXh0IEl0YWxpYW49JkF2YW50aSA+Ci0gICAgICBUZXh0IERhbmlzaD0mTuZzdGU+Ci0gICAgICBUZXh0IER1dGNoPSZWb2xnZW5kZT4KLSAgICAgIFRleHQgTm9yd2VnaWFuPSZOZXN0ZT4KLSAgICAgIFRleHQgU3dlZGlzaD0mTuRzdGEgPgotICAgIGVuZAotICAgIGl0ZW06IFB1c2ggQnV0dG9uCi0gICAgICBSZWN0YW5nbGU9MTMxIDIzNCAxODggMjUxCi0gICAgICBWYXJpYWJsZT1ESVJFQ1RJT04KLSAgICAgIFZhbHVlPUIKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMAotICAgICAgVGV4dD08ICZCYWNrCi0gICAgICBUZXh0IEZyZW5jaD08JlJldG91cgotICAgICAgVGV4dCBHZXJtYW49PCZadXL8Y2sKLSAgICAgIFRleHQgUG9ydHVndWVzZT08JlJldG9ybmFyCi0gICAgICBUZXh0IFNwYW5pc2g9PCZSZXRyb2NlZGVyCi0gICAgICBUZXh0IEl0YWxpYW49PCAmSW5kaWV0cm8KLSAgICAgIFRleHQgRGFuaXNoPTwmVGlsYmFnZQotICAgICAgVGV4dCBEdXRjaD08JlRlcnVnCi0gICAgICBUZXh0IE5vcndlZ2lhbj08JlRpbGJha2UKLSAgICAgIFRleHQgU3dlZGlzaD08ICZUaWxsYmFrYQotICAgIGVuZAotICAgIGl0ZW06IFB1c2ggQnV0dG9uCi0gICAgICBSZWN0YW5nbGU9Mjc4IDIzNCAzMzAgMjUxCi0gICAgICBBY3Rpb249MwotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwCi0gICAgICBUZXh0PUNhbmNlbAotICAgICAgVGV4dCBGcmVuY2g9QW5udWxlcgotICAgICAgVGV4dCBHZXJtYW49QWJicmVjaGVuCi0gICAgICBUZXh0IFBvcnR1Z3Vlc2U9Q2FuY2VsYXIKLSAgICAgIFRleHQgU3BhbmlzaD1DYW5jZWxhcgotICAgICAgVGV4dCBJdGFsaWFuPUFubnVsbGEKLSAgICAgIFRleHQgRGFuaXNoPUFubnVsbGVyCi0gICAgICBUZXh0IER1dGNoPUFubnVsZXJlbgotICAgICAgVGV4dCBOb3J3ZWdpYW49QXZicnl0Ci0gICAgICBUZXh0IFN3ZWRpc2g9QXZicnl0Ci0gICAgZW5kCi0gICAgaXRlbTogU3RhdGljCi0gICAgICBSZWN0YW5nbGU9MTEgMjIxIDMyOSAyMjMKLSAgICAgIEFjdGlvbj0zCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMTEKLSAgICBlbmQKLSAgICBpdGVtOiBTdGF0aWMKLSAgICAgIFJlY3RhbmdsZT0xMDggNDYgMzIwIDk4Ci0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLSAgICAgIFRleHQ9VGhpcyBpbnN0YWxsYXRpb24gcHJvZ3JhbSBjYW4gY3JlYXRlIGJhY2t1cCBjb3BpZXMgb2YgYWxsIGZpbGVzIHJlcGxhY2VkIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uLiBUaGVzZSBmaWxlcyB3aWxsIGJlIHVzZWQgd2hlbiB0aGUgc29mdHdhcmUgaXMgdW5pbnN0YWxsZWQgYW5kIGEgcm9sbGJhY2sgaXMgcmVxdWVzdGVkLiAgSWYgYmFja3VwIGNvcGllcyBhcmUgbm90IGNyZWF0ZWQsIHlvdSB3aWxsIG9ubHkgYmUgYWJsZSB0byB1bmluc3RhbGwgdGhlIHNvZnR3YXJlIGFuZCBub3Qgcm9sbCB0aGUgc3lzdGVtIGJhY2sgdG8gYSBwcmV2aW91cyBzdGF0ZS4KLSAgICAgIFRleHQ9Ci0gICAgICBUZXh0PURvIHlvdSB3YW50IHRvIGNyZWF0ZSBiYWNrdXBzIG9mIHJlcGxhY2VkIGZpbGVzPwotICAgICAgVGV4dCBGcmVuY2g9TGUgcHJvZ3JhbW1lIGQnaW5zdGFsbGF0aW9uIHBldXQgY3LpZXIgZGVzIGNvcGllcyBkZSBzYXV2ZWdhcmRlIGRlIHRvdXMgbGVzIGZpY2hpZXJzIHJlbXBsYWPpcyBwZW5kYW50IGwnaW5zdGFsbGF0aW9uLiBDZXMgZmljaGllcnMgc29udCB1dGlsaXPpcyBhdSBjYXMgb/kgbGUgbG9naWNpZWwgZXN0IGTpc2luc3RhbGzpIGV0IHF1ZSBsJ29uIHByb2PoZGUg4CBsYSByZXByaXNlIGR1IHN5c3TobWUuIFNpIGxlcyBjb3BpZXMgZGUgc2F1dmVnYXJkZSBuZSBzb250IHBhcyBjcunpZXMsIG9uIG5lIHBvdXJyYSBxdWUgZOlzaW5zdGFsbGVyIGxlIGxvZ2ljaWVsIHNhbnMgcmVwcmVuZHJlIGxlIHN5c3TobWUg4CB1biDpdGF0IHBy6WPpZGVudC4gVm91bGV6LXZvdXMgY3LpZXIgdW5lIHNhdXZlZ2FyZGUgZGVzIGZpY2hpZXJzIHJlbXBsYWPpcyA/Ci0gICAgICBUZXh0IEdlcm1hbj1EaWVzZXMgSW5zdGFsbGF0aW9uc3Byb2dyYW1tIGthbm4gU2ljaGVydW5nc2tvcGllbiB2b24gYWxsZW4gd+RocmVuZCBkZXIgSW5zdGFsbGF0aW9uIGVyc2V0enRlbiBEYXRlaWVuIGVyc3RlbGxlbi4gRGllc2UgRGF0ZWllbiB3ZXJkZW4genVyIFL8Y2tn5G5naWdtYWNodW5nIGRlciBJbnN0YWxsYXRpb24gdW5kIGJlaSBBbmZvcmRlcnVuZyBlaW5lcyBSb2xsYmFja3MgdmVyd2VuZGV0LiBPaG5lIFNpY2hlcnVuZ3Nrb3BpZW4gaXN0IG51ciBlaW5lIFL8Y2tn5G5naWdtYWNodW5nIGRlciBJbnN0YWxsYXRpb24gbfZnbGljaCwgbmljaHQgYWJlciBlaW4gUm9sbGJhY2sgZGVzIFN5c3RlbXMuIFNpY2hlcnVuZ3Nrb3BpZW4gZGVyIGVyc2V0enRlbiBEYXRlaWVuIGVyc3RlbGxlbj8KLSAgICAgIFRleHQgUG9ydHVndWVzZT1Fc3RlIHByb2dyYW1hIGRlIGluc3RhbGHn428gcG9kZSBjcmlhciBj83BpYXMgZGUgc2VndXJhbudhIGRlIHRvZG9zIG9zIGZpY2hlaXJvcyBzdWJzdGl0de1kb3MgZHVyYW50ZSBhIGluc3RhbGHn428uIEVzdGVzIGZpY2hlaXJvcyBzZXLjbyB1dGlsaXphZG9zIHF1YW5kbyBvIHByb2dyYW1hIGZvciBkZXNpbnN0YWxhZG8gIGUgZm9yIHJlcXVpc2l0YWRhIHVtYSByZXRvbWFkYS4gU2UgYXMgY/NwaWFzIGRlIHNlZ3VyYW7nYSBu428gZm9yZW0gY3JpYWRhcywgc/MgcG9kZXLhIGRlc2luc3RhbGFyIG8gcHJvZ3JhbWEgZSBu428gcG9kZSByZXRvbWFyICB1bSBlc3RhZG8gYW50ZXJpb3IgZG8gc2lzdGVtYS4gRGVzZWphIGNyaWFyIGPzcGlhcyBkZSBzZWd1cmFu52EgZG9zIGZpY2hlaXJvcyBzdWJzdGl0de1kb3M/Ci0gICAgICBUZXh0IFNwYW5pc2g9RXN0ZSBwcm9ncmFtYSBkZSBpbnN0YWxhY2nzbiBwdWVkZSBjcmVhciBjb3BpYXMgZGUgc2VndXJpZGFkIGRlIHRvZG9zIGxvcyBhcmNoaXZvcyByZWVtcGxhemFkb3MgZHVyYW50ZSBsYSBpbnN0YWxhY2nzbi4gRXN0b3MgYXJjaGl2b3Mgc2UgdXRpbGl6YXLhbiBjdWFuZG8gc2UgZGVzaW5zdGFsZSBlbCBzb2Z0d2FyZSB5IHNlIHNvbGljaXRlIHZvbHZlciBhbCBlc3RhZG8gYW50ZXJpb3IuIFNpIG5vIHNlIGNyZWFuIGNvcGlhcyBkZSBzZWd1cmlkYWQsIPpuaWNhbWVudGUgcG9kcuEgZGVzaW5zdGFsYXIgZWwgc29mdHdhcmUgeSBubyBwb2Ry4SBkZXZvbHZlciBlbCBzaXN0ZW1hIGFsIGVzdGFkbyBhbnRlcmlvci4gv0Rlc2VhIGNyZWFyIGFyY2hpdm9zIGRlIHNlZ3VyaWRhZCBkZSBsb3MgYXJjaGl2b3MgcmVlbXBsYXphZG9zPwotICAgICAgVGV4dCBJdGFsaWFuPVF1ZXN0byBwcm9ncmFtbWEgZGkgaW5zdGFsbGF6aW9uZSBwdfIgY3JlYXJlIGNvcGllIGRpIGJhY2t1cCBkaSB0dXR0aSBpIGZpbGUgc29zdGl0dWl0aSBkdXJhbnRlIGySaW5zdGFsbGF6aW9uZS4gUXVlc3RpIGZpbGUgc2FyYW5ubyB1c2F0aSBxdWFuZG8gaWwgc29mdHdhcmUgc2Fy4CBkaXNpbnN0YWxsYXRvIGUgc2Fy4CByaWNoaWVzdG8gdW4gcml0b3JubyBhbGxvIHN0YXRvIHByZWNlZGVudGUuIFNlIG5vbiBjcmVpIGxlIGNvcGllIGRpIGJhY2t1cCwgcG90cmFpIHNvbG8gZGlzaW5zdGFsbGFyZSBpbCBzb2Z0d2FyZSwgbWEgbm9uIHBvdHJhaSByaXBvcnRhcmUgaWwgc2lzdGVtYSBhbGxvIHN0YXRvIHByZWNlZGVudGUuIFZ1b2kgY3JlYXJlIGkgZmlsZSBkaSBiYWNrdXAgZGVpIGZpbGUgc29zdGl0dWl0aT8KLSAgICAgIFRleHQgRGFuaXNoPURldHRlIGluc3RhbGxhdGlvbnNwcm9ncmFtIGthbiBvcHJldHRlIHNpa2tlcmhlZHNrb3BpZXIgYWYgYWxsZSBmaWxlciwgc29tIGVyc3RhdHRlcyB1bmRlciBpbnN0YWxsYXRpb25lbi4gRGlzc2UgZmlsZXIgYmVueXR0ZXMsIG7lciBzb2Z0d2FyZW4gZmplcm5lcywgb2cgZGVuIHRpZGxpZ2VyZSBzeXN0ZW1rb25maWd1cmF0aW9uIGdlbmV0YWJsZXJlcy4gSHZpcyBkZXIgaWtrZSBvcHJldHRlcyBzaWtrZXJoZWRza29waWVyLCBrYW4gZHUga3VuIGZqZXJuZSBkZW4gaW5zdGFsbGVyZWRlIHNvZnR3YXJlIG9nIGlra2UgZ2VuZXRhYmxlcmUgZGVuIHRpZGxpZ2VyZSBzeXN0ZW1rb25maWd1cmF0aW9uLiBWaWwgZHUgb3ByZXR0ZSBzaWtrZXJoZWRza29waWVyIGFmIGZpbGVyLCBzb20gZXJzdGF0dGVzPwotICAgICAgVGV4dCBEdXRjaD1EaXQgaW5zdGFsbGF0aWVwcm9ncmFtbWEga2FuIGtvcGll624gbWFrZW4gdmFuIGFsbGUgYmVzdGFuZGVuIGRpZSB0aWpkZW5zIGRlIGluc3RhbGxhdGllIHdvcmRlbiB2ZXJ2YW5nZW4uIERlemUgd29yZGVuIGRhbiBnZWJydWlrdCBhbHMgZGUgc29mdHdhcmUtaW5zdGFsbGF0aWUgb25nZWRhYW4gd29yZHQgZ2VtYWFrdCBlbiB1IGhldCBzeXN0ZWVtIHdpbHQgbGF0ZW4gdGVydWdrZXJlbiBuYWFyIGRlIG9vcnNwcm9ua2VsaWprZSBzdGFhdC4gQWxzIGVyIGdlZW4gYmFjay11cCBrb3BpZetuIHdvcmRlbiBnZW1hYWt0LCBrdW50IHUgZGUgc29mdHdhcmUgZW5rZWwgdmVyd2lqZGVyZW4gbWFhciBoZXQgc3lzdGVlbSBuaWV0IGluIGRlIG9vcnNwcm9ua2VsaWprZSBzdGFhdCB0ZXJ1Z2JyZW5nZW4uIFdpbHQgdSBlZW4gYmFjay11cCBtYWtlbiB2YW4gZGUgdmVydmFuZ2VuIGJlc3RhbmRlbj8KLSAgICAgIFRleHQgTm9yd2VnaWFuPURldHRlIGluc3RhbGxhc2pvbnNwcm9ncmFtbWV0IGthbiBsYWdlIHNpa2tlcmhldHNrb3BpZXIgYXYgYWxsZSBmaWxlciBzb20gYmxpciBlcnN0YXR0ZXQgdW5kZXIgaW5zdGFsbGFzam9uZW4uIERpc3NlIGZpbGVuZSB2aWwgdGFzIGkgYnJ1ayBu5XIgcHJvZ3JhbXZhcmVuIGVyIGF2aW5zdGFsbGVydCBvZyBkZXQgZXIgYmVob3YgZm9yIHRpbGJha2VzdGlsbGluZy4gSHZpcyBkZXQgaWtrZSBlciBsYWdldCBzaWtrZXJoZXRza29waWVyLCBrYW4gZHUga3VuIGF2aW5zdGFsbGVyZSBwcm9ncmFtdmFyZW4gb2cgaWtrZSBzdGlsbGUgc3lzdGVtZXQgdGlsYmFrZSB0aWwgdGlkbGlnZXJlIHN0YXR1cy4g2G5za2VyIGR1IOUgbGFnZSBzaWtrZXJoZXRza29waWVyIGF2IGRlIGZpbGVuZSBzb20gYmxpciBlcnN0YXR0ZXQgbuU/Ci0gICAgICBUZXh0IFN3ZWRpc2g9SW5zdGFsbGF0aW9uc3Byb2dyYW1tZXQga2FuIHNrYXBhIHPka2VyaGV0c2tvcGlvciBhdiBhbGxhIGZpbGVyIHNvbSBieXRzIHV0IHVuZGVyIGluc3RhbGxhdGlvbmVuLiBEZXNzYSBmaWxlciBrYW4gc2VkYW4gYW525G5kYXMgbuRyIHByb2dyYW12YXJhbiBhdmluc3RhbGxlcmFzIG9jaCBkdSBiZWfkciByb2xsYmFjay4gT20gZHUgZOUgaW50ZSBoYXIgbuVncmEgc+RrZXJoZXRza29waW9yIGthbiBkdSBiYXJhIGF2aW5zdGFsbGVyYSBwcm9ncmFtdmFyYW4sIGludGUg5XRlcnNrYXBhIHN5c3RlbWV0IGkgZGVzcyB0aWRpZ2FyZSBza2ljay4gVmlsbCBkdSBn9nJhIHPka2VyaGV0c2tvcGlvciBhdiBkZSBlcnNhdHRhIGZpbGVybmE/Ci0gICAgZW5kCi0gICAgaXRlbTogUmFkaW8gQnV0dG9uCi0gICAgICBSZWN0YW5nbGU9MTQxIDEwNiAyNjUgMTM2Ci0gICAgICBWYXJpYWJsZT1ET0JBQ0tVUAotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAxMDAxCi0gICAgICBUZXh0PSZZZXMsIG1ha2UgYmFja3VwcwotICAgICAgVGV4dD1OJm8sIGRvIG5vdCBtYWtlIGJhY2t1cHMKLSAgICAgIFRleHQ9Ci0gICAgICBUZXh0IEZyZW5jaD0mT3VpCi0gICAgICBUZXh0IEZyZW5jaD1OJm9uCi0gICAgICBUZXh0IEZyZW5jaD0KLSAgICAgIFRleHQgR2VybWFuPSZKYQotICAgICAgVGV4dCBHZXJtYW49TiZlaW4KLSAgICAgIFRleHQgR2VybWFuPQotICAgICAgVGV4dCBQb3J0dWd1ZXNlPSZTaW0KLSAgICAgIFRleHQgUG9ydHVndWVzZT1O4yZvCi0gICAgICBUZXh0IFBvcnR1Z3Vlc2U9Ci0gICAgICBUZXh0IFNwYW5pc2g9JlPtCi0gICAgICBUZXh0IFNwYW5pc2g9TiZvCi0gICAgICBUZXh0IFNwYW5pc2g9Ci0gICAgICBUZXh0IEl0YWxpYW49JlPsCi0gICAgICBUZXh0IEl0YWxpYW49TiZvCi0gICAgICBUZXh0IEl0YWxpYW49Ci0gICAgICBUZXh0IERhbmlzaD0mSmEKLSAgICAgIFRleHQgRGFuaXNoPSZOZWoKLSAgICAgIFRleHQgRGFuaXNoPQotICAgICAgVGV4dCBEdXRjaD0mSmEKLSAgICAgIFRleHQgRHV0Y2g9TiZlZQotICAgICAgVGV4dCBEdXRjaD0KLSAgICAgIFRleHQgTm9yd2VnaWFuPSZKYQotICAgICAgVGV4dCBOb3J3ZWdpYW49Jk5laQotICAgICAgVGV4dCBOb3J3ZWdpYW49Ci0gICAgICBUZXh0IFN3ZWRpc2g9JkphCi0gICAgICBUZXh0IFN3ZWRpc2g9TiZlagotICAgICAgVGV4dCBTd2VkaXNoPQotICAgIGVuZAotICAgIGl0ZW06IFN0YXRpYwotICAgICAgQ29udHJvbCBOYW1lPUJBQ0syCi0gICAgICBSZWN0YW5nbGU9MTA4IDE3MyAzMjAgMjA4Ci0gICAgICBBY3Rpb249MQotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTExCi0gICAgICBUZXh0PUJhY2t1cCBGaWxlIERlc3RpbmF0aW9uIERpcmVjdG9yeQotICAgICAgVGV4dCBGcmVuY2g9UulwZXJ0b2lyZSBkZSBkZXN0aW5hdGlvbiBkZXMgZmljaGllcnMgZGUgc2F1dmVnYXJkZQotICAgICAgVGV4dCBHZXJtYW49WmllbHZlcnplaWNobmlzIGb8ciBkaWUgU2ljaGVydW5nc2RhdGVpCi0gICAgICBUZXh0IFBvcnR1Z3Vlc2U9RGlyZWN083JpbyBkZSBkZXN0aW5vIGRlIGZpY2hlaXJvIGRlIHNlZ3VyYW7nYQotICAgICAgVGV4dCBTcGFuaXNoPURpcmVjdG9yaW8gZGUgRGVzdGlubyBkZSBsb3MgQXJjaGl2b3MgZGUgU2VndXJpZGFkCi0gICAgICBUZXh0IEl0YWxpYW49RGlyZWN0b3J5IGRpIGRlc3RpbmF6aW9uZSBkZWkgZmlsZSBkaSBiYWNrdXAKLSAgICAgIFRleHQgRGFuaXNoPURlc3RpbmF0aW9uc2JpYmxpb3RlayB0aWwgc2lra2VyaGVkc2tvcGllcgotICAgICAgVGV4dCBEdXRjaD1Eb2VsZGlyZWN0b3J5IGJhY2t1cC1iZXN0YW5kCi0gICAgICBUZXh0IE5vcndlZ2lhbj1N5WxrYXRhbG9nIGZvciBzaWtrZXJoZXRza29waWVyCi0gICAgICBUZXh0IFN3ZWRpc2g9S2F0YWxvZyBm9nIgc+RrZXJoZXRza29waWVyYWRlIGZpbGVyCi0gICAgZW5kCi0gICAgaXRlbTogUHVzaCBCdXR0b24KLSAgICAgIENvbnRyb2wgTmFtZT1CQUNLMwotICAgICAgUmVjdGFuZ2xlPTI2NSAxODUgMzE4IDIwMwotICAgICAgVmFyaWFibGU9QkFDS1VQX1NBVkUKLSAgICAgIFZhbHVlPSVCQUNLVVAlCi0gICAgICBEZXN0aW5hdGlvbiBEaWFsb2c9MQotICAgICAgQWN0aW9uPTIKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMAotICAgICAgVGV4dD1CJnJvd3NlLi4uCi0gICAgICBUZXh0IEZyZW5jaD1QJmFyY291cmlyCi0gICAgICBUZXh0IEdlcm1hbj1CJmzkdHRlcm4uLi4KLSAgICAgIFRleHQgUG9ydHVndWVzZT1QJnJvY3VyYXIKLSAgICAgIFRleHQgU3BhbmlzaD1WJmlzdWFsaXphci4uLgotICAgICAgVGV4dCBJdGFsaWFuPVNmb2dsaWEuLi4KLSAgICAgIFRleHQgRGFuaXNoPSZHZW5uZW1zZS4uLgotICAgICAgVGV4dCBEdXRjaD1CJmxhZGVyZW4uLi4KLSAgICAgIFRleHQgTm9yd2VnaWFuPUJsYSBpZ2plbm5vbQotICAgICAgVGV4dCBTd2VkaXNoPSZCbORkZHJhCi0gICAgZW5kCi0gICAgaXRlbTogU3RhdGljCi0gICAgICBDb250cm9sIE5hbWU9QkFDSzQKLSAgICAgIFJlY3RhbmdsZT0xMjkgMTg4IDI1NCAyMDAKLSAgICAgIERlc3RpbmF0aW9uIERpYWxvZz0yCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLSAgICAgIFRleHQ9JUJBQ0tVUCUKLSAgICAgIFRleHQgRnJlbmNoPSVCQUNLVVAlCi0gICAgICBUZXh0IEdlcm1hbj0lQkFDS1VQJQotICAgICAgVGV4dCBQb3J0dWd1ZXNlPSVCQUNLVVAlCi0gICAgICBUZXh0IFNwYW5pc2g9JUJBQ0tVUCUKLSAgICAgIFRleHQgSXRhbGlhbj0lQkFDS1VQJQotICAgICAgVGV4dCBEYW5pc2g9JUJBQ0tVUCUKLSAgICAgIFRleHQgRHV0Y2g9JUJBQ0tVUCUKLSAgICAgIFRleHQgTm9yd2VnaWFuPSVCQUNLVVAlCi0gICAgICBUZXh0IFN3ZWRpc2g9JUJBQ0tVUCUKLSAgICBlbmQKLSAgICBpdGVtOiBTdGF0aWMKLSAgICAgIFJlY3RhbmdsZT0xMDggMTEgMzIzIDM2Ci0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLSAgICAgIEZsYWdzPTAwMDAwMDAwMDAwMDAwMDEKLSAgICAgIE5hbWU9VGltZXMgTmV3IFJvbWFuCi0gICAgICBGb250IFN0eWxlPS0yNCAwIDAgMCA3MDAgMjU1IDAgMCAwIDMgMiAxIDE4Ci0gICAgICBUZXh0PUJhY2t1cCBSZXBsYWNlZCBGaWxlcwotICAgICAgVGV4dCBGcmVuY2g9U+lsZWN0aW9ubmVyIGxlcyBjb21wb3NhbnRzCi0gICAgICBUZXh0IEdlcm1hbj1Lb21wb25lbnRlbiBhdXN35GhsZW4KLSAgICAgIFRleHQgU3BhbmlzaD1TZWxlY2Npb25lIGNvbXBvbmVudGVzCi0gICAgICBUZXh0IEl0YWxpYW49U2VsZXppb25hcmUgaSBjb21wb25lbnRpCi0gICAgZW5kCi0gICAgaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gICAgICBWYXJpYWJsZT1ET0JBQ0tVUAotICAgICAgVmFsdWU9QgotICAgIGVuZAotICAgIGl0ZW06IFNldCBDb250cm9sIEF0dHJpYnV0ZQotICAgICAgQ29udHJvbCBOYW1lPUJBQ0szCi0gICAgICBPcGVyYXRpb249MQotICAgIGVuZAotICAgIGl0ZW06IFNldCBDb250cm9sIEF0dHJpYnV0ZQotICAgICAgQ29udHJvbCBOYW1lPUJBQ0s0Ci0gICAgICBPcGVyYXRpb249MQotICAgIGVuZAotICAgIGl0ZW06IEVsc2UgU3RhdGVtZW50Ci0gICAgZW5kCi0gICAgaXRlbTogU2V0IENvbnRyb2wgQXR0cmlidXRlCi0gICAgICBDb250cm9sIE5hbWU9QkFDSzMKLSAgICBlbmQKLSAgICBpdGVtOiBTZXQgQ29udHJvbCBBdHRyaWJ1dGUKLSAgICAgIENvbnRyb2wgTmFtZT1CQUNLNAotICAgIGVuZAotICAgIGl0ZW06IEVuZCBCbG9jawotICAgIGVuZAotICBlbmQKLSAgaXRlbTogRGlhbG9nCi0gICAgVGl0bGU9U2VsZWN0IERlc3RpbmF0aW9uIERpcmVjdG9yeQotICAgIFRpdGxlIEZyZW5jaD1DaG9pc2lzc2V6IGxlIHLpcGVydG9pcmUgZGUgZGVzdGluYXRpb24KLSAgICBUaXRsZSBHZXJtYW49WmllbHZlcnplaWNobmlzIHfkaGxlbgotICAgIFRpdGxlIFBvcnR1Z3Vlc2U9U2VsZWNjaW9uYXIgRGlyZWN083JpbyBkZSBEZXN0aW5vCi0gICAgVGl0bGUgU3BhbmlzaD1TZWxlY2Npb25lIGVsIERpcmVjdG9yaW8gZGUgRGVzdGlubwotICAgIFRpdGxlIEl0YWxpYW49U2VsZXppb25hIERpcmVjdG9yeSBkaSBkZXN0aW5hemlvbmUKLSAgICBUaXRsZSBEYW5pc2g9VuZsZyBEZXN0aW5hdGlvbnNiaWJsaW90ZWsKLSAgICBUaXRsZSBEdXRjaD1LaWVzIERvZWxkaXJlY3RvcnkKLSAgICBUaXRsZSBOb3J3ZWdpYW49VmVsZyBt5WxrYXRhbG9nCi0gICAgVGl0bGUgU3dlZGlzaD1W5GxqIGRlc3RpbmF0aW9uc2thbGF0b2cKLSAgICBXaWR0aD0yNzYKLSAgICBIZWlnaHQ9MjE2Ci0gICAgRm9udCBOYW1lPUhlbHYKLSAgICBGb250IFNpemU9OAotICAgIGl0ZW06IExpc3Rib3gKLSAgICAgIFJlY3RhbmdsZT02IDMgMjAwIDE4NgotICAgICAgVmFyaWFibGU9QkFDS1VQCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAxMDAwMDAwMTAwMDAwMDAxMDEwMDAwMDAKLSAgICAgIEZsYWdzPTAwMDAxMTAwMDAxMDAwMTAKLSAgICAgIFRleHQ9JUJBQ0tVUCUKLSAgICAgIFRleHQ9Ci0gICAgICBUZXh0IEZyZW5jaD0lQkFDS1VQJQotICAgICAgVGV4dCBGcmVuY2g9Ci0gICAgICBUZXh0IEdlcm1hbj0lQkFDS1VQJQotICAgICAgVGV4dCBHZXJtYW49Ci0gICAgICBUZXh0IFBvcnR1Z3Vlc2U9JUJBQ0tVUCUKLSAgICAgIFRleHQgUG9ydHVndWVzZT0KLSAgICAgIFRleHQgU3BhbmlzaD0lQkFDS1VQJQotICAgICAgVGV4dCBTcGFuaXNoPQotICAgICAgVGV4dCBJdGFsaWFuPSVCQUNLVVAlCi0gICAgICBUZXh0IEl0YWxpYW49Ci0gICAgICBUZXh0IERhbmlzaD0lQkFDS1VQJQotICAgICAgVGV4dCBEYW5pc2g9Ci0gICAgICBUZXh0IER1dGNoPSVCQUNLVVAlCi0gICAgICBUZXh0IER1dGNoPQotICAgICAgVGV4dCBOb3J3ZWdpYW49JUJBQ0tVUCUKLSAgICAgIFRleHQgTm9yd2VnaWFuPQotICAgICAgVGV4dCBTd2VkaXNoPSVCQUNLVVAlCi0gICAgICBUZXh0IFN3ZWRpc2g9Ci0gICAgZW5kCi0gICAgaXRlbTogUHVzaCBCdXR0b24KLSAgICAgIFJlY3RhbmdsZT0yMDkgOCAyNjUgMjYKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMQotICAgICAgVGV4dD1PSwotICAgICAgVGV4dCBGcmVuY2g9T0sKLSAgICAgIFRleHQgR2VybWFuPU9LCi0gICAgICBUZXh0IFBvcnR1Z3Vlc2U9T0sKLSAgICAgIFRleHQgU3BhbmlzaD1BQ0VQVEFSCi0gICAgICBUZXh0IEl0YWxpYW49T0sKLSAgICAgIFRleHQgRGFuaXNoPU9LCi0gICAgICBUZXh0IER1dGNoPU9LCi0gICAgICBUZXh0IE5vcndlZ2lhbj1PSwotICAgICAgVGV4dCBTd2VkaXNoPU9LCi0gICAgZW5kCi0gICAgaXRlbTogUHVzaCBCdXR0b24KLSAgICAgIFJlY3RhbmdsZT0yMDkgMzEgMjY1IDUwCi0gICAgICBWYXJpYWJsZT1CQUNLVVAKLSAgICAgIFZhbHVlPSVCQUNLVVBfU0FWRSUKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMAotICAgICAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAwMQotICAgICAgVGV4dD1DYW5jZWwKLSAgICAgIFRleHQgRnJlbmNoPUFubnVsZXIKLSAgICAgIFRleHQgR2VybWFuPUFiYnJlY2hlbgotICAgICAgVGV4dCBQb3J0dWd1ZXNlPUNhbmNlbGFyCi0gICAgICBUZXh0IFNwYW5pc2g9Q2FuY2VsYXIKLSAgICAgIFRleHQgSXRhbGlhbj1Bbm51bGxhCi0gICAgICBUZXh0IERhbmlzaD1TbGV0Ci0gICAgICBUZXh0IER1dGNoPUFubnVsZXJlbgotICAgICAgVGV4dCBOb3J3ZWdpYW49QXZicnl0Ci0gICAgICBUZXh0IFN3ZWRpc2g9QXZicnl0Ci0gICAgZW5kCi0gIGVuZAotZW5kCi1pdGVtOiBDdXN0b20gRGlhbG9nIFNldAotICBOYW1lPVNlbGVjdCBDb21wb25lbnRzCi0gIERpc3BsYXkgVmFyaWFibGU9RElTUExBWQotICBpdGVtOiBEaWFsb2cKLSAgICBUaXRsZT0lQVBQVElUTEUlIEluc3RhbGxhdGlvbgotICAgIFRpdGxlIEZyZW5jaD1JbnN0YWxsYXRpb24gZGUgJUFQUFRJVExFJQotICAgIFRpdGxlIEdlcm1hbj1JbnN0YWxsYXRpb24gdm9uICVBUFBUSVRMRSUKLSAgICBUaXRsZSBTcGFuaXNoPUluc3RhbGFjafNuIGRlICVBUFBUSVRMRSUKLSAgICBUaXRsZSBJdGFsaWFuPUluc3RhbGxhemlvbmUgZGkgJUFQUFRJVExFJQotICAgIFdpZHRoPTMzOQotICAgIEhlaWdodD0yODAKLSAgICBGb250IE5hbWU9SGVsdgotICAgIEZvbnQgU2l6ZT04Ci0gICAgaXRlbTogUHVzaCBCdXR0b24KLSAgICAgIFJlY3RhbmdsZT0xODggMjM0IDI0NCAyNTMKLSAgICAgIFZhcmlhYmxlPURJUkVDVElPTgotICAgICAgVmFsdWU9TgotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAxCi0gICAgICBUZXh0PSZOZXh0ID4KLSAgICAgIFRleHQgRnJlbmNoPSZTdWl0ZSA+Ci0gICAgICBUZXh0IEdlcm1hbj0mV2VpdGVyID4KLSAgICAgIFRleHQgU3BhbmlzaD0mU2lndWllbnRlID4KLSAgICAgIFRleHQgSXRhbGlhbj0mQXZhbnRpID4KLSAgICBlbmQKLSAgICBpdGVtOiBQdXNoIEJ1dHRvbgotICAgICAgUmVjdGFuZ2xlPTEzMSAyMzQgMTg4IDI1MwotICAgICAgVmFyaWFibGU9RElSRUNUSU9OCi0gICAgICBWYWx1ZT1CCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDAKLSAgICAgIFRleHQ9PCAmQmFjawotICAgICAgVGV4dCBGcmVuY2g9PCAmUmV0b3VyCi0gICAgICBUZXh0IEdlcm1hbj08ICZadXL8Y2sKLSAgICAgIFRleHQgU3BhbmlzaD08ICZBdHLhcwotICAgICAgVGV4dCBJdGFsaWFuPTwgJkluZGlldHJvCi0gICAgZW5kCi0gICAgaXRlbTogUHVzaCBCdXR0b24KLSAgICAgIFJlY3RhbmdsZT0yNjQgMjM0IDMyMCAyNTMKLSAgICAgIEFjdGlvbj0zCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDAKLSAgICAgIFRleHQ9JkNhbmNlbAotICAgICAgVGV4dCBGcmVuY2g9JkFubnVsZXIKLSAgICAgIFRleHQgR2VybWFuPSZBYmJyZWNoZW4KLSAgICAgIFRleHQgU3BhbmlzaD0mQ2FuY2VsYXIKLSAgICAgIFRleHQgSXRhbGlhbj0mQW5udWxsYQotICAgIGVuZAotICAgIGl0ZW06IENoZWNrYm94Ci0gICAgICBSZWN0YW5nbGU9MTA4IDY2IDMxMyAxNTYKLSAgICAgIFZhcmlhYmxlPUNPTVBPTkVOVFMKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAxMQotICAgICAgRmxhZ3M9MDAwMDAwMDAwMDAwMDExMAotICAgICAgVGV4dD1QeXRob24gaW50ZXJwcmV0ZXIgYW5kIGxpYnJhcmllcwotICAgICAgVGV4dD1UY2wvVGsgKFRraW50ZXIsIElETEUsIHB5ZG9jKQotICAgICAgVGV4dD1QeXRob24gSFRNTCBkb2NzCi0gICAgICBUZXh0PVB5dGhvbiB1dGlsaXR5IHNjcmlwdHMgKFRvb2xzLykKLSAgICAgIFRleHQ9UHl0aG9uIHRlc3Qgc3VpdGUgKExpYi90ZXN0LykKLSAgICAgIFRleHQ9Ci0gICAgICBUZXh0IEZyZW5jaD1QeXRob24gaW50ZXJwcmV0ZXIsIGxpYnJhcnkgYW5kIElETEUKLSAgICAgIFRleHQgRnJlbmNoPVB5dGhvbiBIVE1MIGRvY3MKLSAgICAgIFRleHQgRnJlbmNoPVB5dGhvbiB1dGlsaXR5IHNjcmlwdHMgKFRvb2xzLykKLSAgICAgIFRleHQgRnJlbmNoPVB5dGhvbiB0ZXN0IHN1aXRlIChMaWIvdGVzdC8pCi0gICAgICBUZXh0IEZyZW5jaD0KLSAgICAgIFRleHQgR2VybWFuPVB5dGhvbiBpbnRlcnByZXRlciwgbGlicmFyeSBhbmQgSURMRQotICAgICAgVGV4dCBHZXJtYW49UHl0aG9uIEhUTUwgZG9jcwotICAgICAgVGV4dCBHZXJtYW49UHl0aG9uIHV0aWxpdHkgc2NyaXB0cyAoVG9vbHMvKQotICAgICAgVGV4dCBHZXJtYW49UHl0aG9uIHRlc3Qgc3VpdGUgKExpYi90ZXN0LykKLSAgICAgIFRleHQgR2VybWFuPQotICAgICAgVGV4dCBTcGFuaXNoPVB5dGhvbiBpbnRlcnByZXRlciwgbGlicmFyeSBhbmQgSURMRQotICAgICAgVGV4dCBTcGFuaXNoPVB5dGhvbiBIVE1MIGRvY3MKLSAgICAgIFRleHQgU3BhbmlzaD1QeXRob24gdXRpbGl0eSBzY3JpcHRzIChUb29scy8pCi0gICAgICBUZXh0IFNwYW5pc2g9UHl0aG9uIHRlc3Qgc3VpdGUgKExpYi90ZXN0LykKLSAgICAgIFRleHQgU3BhbmlzaD0KLSAgICAgIFRleHQgSXRhbGlhbj1QeXRob24gaW50ZXJwcmV0ZXIsIGxpYnJhcnkgYW5kIElETEUKLSAgICAgIFRleHQgSXRhbGlhbj1QeXRob24gSFRNTCBkb2NzCi0gICAgICBUZXh0IEl0YWxpYW49UHl0aG9uIHV0aWxpdHkgc2NyaXB0cyAoVG9vbHMvKQotICAgICAgVGV4dCBJdGFsaWFuPVB5dGhvbiB0ZXN0IHN1aXRlIChMaWIvdGVzdC8pCi0gICAgICBUZXh0IEl0YWxpYW49Ci0gICAgZW5kCi0gICAgaXRlbTogU3RhdGljCi0gICAgICBSZWN0YW5nbGU9MTA4IDQ1IDMyMCA2MwotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0gICAgICBUZXh0PUNob29zZSB3aGljaCBjb21wb25lbnRzIHRvIGluc3RhbGwgYnkgY2hlY2tpbmcgdGhlIGJveGVzIGJlbG93LgotICAgICAgVGV4dCBGcmVuY2g9Q2hvaXNpc3NleiBsZXMgY29tcG9zYW50cyBxdWUgdm91cyB2b3VsZXogaW5zdGFsbGVyIGVuIGNvY2hhbnQgbGVzIGNhc2VzIGNpLWRlc3NvdXMuCi0gICAgICBUZXh0IEdlcm1hbj1X5GhsZW4gU2llIGRpZSB6dSBpbnN0YWxsaWVyZW5kZW4gS29tcG9uZW50ZW4sIGluZGVtIFNpZSBpbiBkaWUgZW50c3ByZWNoZW5kZW4gS+RzdGNoZW4ga2xpY2tlbi4KLSAgICAgIFRleHQgU3BhbmlzaD1FbGlqYSBsb3MgY29tcG9uZW50ZXMgcXVlIGRlc2VlIGluc3RhbGFyIG1hcmNhbmRvIGxvcyBjdWFkcm9zIGRlIGFiYWpvLgotICAgICAgVGV4dCBJdGFsaWFuPVNjZWdsaWVyZSBxdWFsaSBjb21wb25lbnRpIGluc3RhbGxhcmUgc2VsZXppb25hbmRvIGxlIGNhc2VsbGUgc290dG9zdGFudGkuCi0gICAgZW5kCi0gICAgaXRlbTogUHVzaCBCdXR0b24KLSAgICAgIFJlY3RhbmdsZT0xODggMjAzIDI2OSAyMjAKLSAgICAgIERlc3RpbmF0aW9uIERpYWxvZz0xCi0gICAgICBBY3Rpb249MgotICAgICAgRW5hYmxlZCBDb2xvcj0wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMTExMTExMQotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwCi0gICAgICBUZXh0PUFkdmFuY2VkIE9wdGlvbnMgLi4uCi0gICAgZW5kCi0gICAgaXRlbTogU3RhdGljCi0gICAgICBSZWN0YW5nbGU9MTAgMjI1IDMyMCAyMjYKLSAgICAgIEFjdGlvbj0zCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMTEKLSAgICBlbmQKLSAgICBpdGVtOiBTdGF0aWMKLSAgICAgIFJlY3RhbmdsZT0xMDggMTAgMzIzIDQzCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLSAgICAgIEZsYWdzPTAwMDAwMDAwMDAwMDAwMDEKLSAgICAgIE5hbWU9VGltZXMgTmV3IFJvbWFuCi0gICAgICBGb250IFN0eWxlPS0yNCAwIDAgMCA3MDAgMjU1IDAgMCAwIDMgMiAxIDE4Ci0gICAgICBUZXh0PVNlbGVjdCBDb21wb25lbnRzCi0gICAgICBUZXh0IEZyZW5jaD1T6WxlY3Rpb25uZXIgbGVzIGNvbXBvc2FudHMKLSAgICAgIFRleHQgR2VybWFuPUtvbXBvbmVudGVuIGF1c3fkaGxlbgotICAgICAgVGV4dCBTcGFuaXNoPVNlbGVjY2lvbmUgY29tcG9uZW50ZXMKLSAgICAgIFRleHQgSXRhbGlhbj1TZWxlemlvbmFyZSBpIGNvbXBvbmVudGkKLSAgICBlbmQKLSAgICBpdGVtOiBTdGF0aWMKLSAgICAgIFJlY3RhbmdsZT0yNTEgMTgwIDMxMSAxOTMKLSAgICAgIFZhcmlhYmxlPUNPTVBPTkVOVFMKLSAgICAgIFZhbHVlPU1BSU5ESVIKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAotICAgIGVuZAotICAgIGl0ZW06IFN0YXRpYwotICAgICAgUmVjdGFuZ2xlPTI1MSAxNjggMzExIDE3OQotICAgICAgVmFyaWFibGU9Q09NUE9ORU5UUwotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCi0gICAgZW5kCi0gICAgaXRlbTogU3RhdGljCi0gICAgICBSZWN0YW5nbGU9MTIzIDE2OCAyMzQgMTgxCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLSAgICAgIFRleHQ9RGlzayBTcGFjZSBSZXF1aXJlZDoKLSAgICAgIFRleHQgRnJlbmNoPUVzcGFjZSBkaXNxdWUgcmVxdWlzIDoKLSAgICAgIFRleHQgR2VybWFuPU5vdHdlbmRpZ2VyIFNwZWljaGVycGxhdHo6Ci0gICAgICBUZXh0IFNwYW5pc2g9RXNwYWNpbyByZXF1ZXJpZG8gZW4gZWwgZGlzY286Ci0gICAgICBUZXh0IEl0YWxpYW49U3BhemlvIHN1IGRpc2NvIG5lY2Vzc2FyaW86Ci0gICAgZW5kCi0gICAgaXRlbTogU3RhdGljCi0gICAgICBSZWN0YW5nbGU9MTIzIDE4MCAyMzQgMTkzCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLSAgICAgIFRleHQ9RGlzayBTcGFjZSBSZW1haW5pbmc6Ci0gICAgICBUZXh0IEZyZW5jaD1Fc3BhY2UgZGlzcXVlIGRpc3BvbmlibGUgOgotICAgICAgVGV4dCBHZXJtYW49VmVyYmxlaWJlbmRlciBTcGVpY2hlcnBsYXR6OgotICAgICAgVGV4dCBTcGFuaXNoPUVzcGFjaW8gZW4gZGlzY28gZGlzcG9uaWJsZToKLSAgICAgIFRleHQgSXRhbGlhbj1TcGF6aW8gc3UgZGlzY28gZGlzcG9uaWJpbGU6Ci0gICAgZW5kCi0gICAgaXRlbTogU3RhdGljCi0gICAgICBSZWN0YW5nbGU9MTA4IDE1OCAzMjAgMTk2Ci0gICAgICBBY3Rpb249MQotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTExCi0gICAgZW5kCi0gICAgaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gICAgICBWYXJpYWJsZT1ETEdfRVZFTlRfVFlQRQotICAgICAgVmFsdWU9VkVSSUZZCi0gICAgZW5kCi0gICAgaXRlbTogUmVtYXJrCi0gICAgICBUZXh0PUlmIHRoZXkncmUgaW5zdGFsbGluZyBUY2wvVGssIFRvb2xzLCBvciB0aGUgdGVzdCBzdWl0ZSwgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UgdW5sZXNzIHRoZXkncmUgaW5zdGFsbGluZyBQeXRob24gdG9vLgotICAgIGVuZAotICAgIGl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICAgICAgVmFyaWFibGU9Q09NUE9ORU5UUwotICAgICAgVmFsdWU9QkRFCi0gICAgICBGbGFncz0wMDAwMTAxMAotICAgIGVuZAotICAgIGl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICAgICAgVmFyaWFibGU9Q09NUE9ORU5UUwotICAgICAgVmFsdWU9QQotICAgICAgRmxhZ3M9MDAwMDAwMTEKLSAgICBlbmQKLSAgICBpdGVtOiBEaXNwbGF5IE1lc3NhZ2UKLSAgICAgIFRpdGxlPUFyZSB5b3Ugc3VyZT8KLSAgICAgIFRleHQ9SW5zdGFsbGluZyBUY2wvVGssIFRvb2xzIG9yIHRoZSB0ZXN0IHN1aXRlIGRvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlIHVubGVzcyB5b3UgaW5zdGFsbCB0aGUgUHl0aG9uIGludGVycHJldGVyIGFuZCBsaWJyYXJpZXMgdG9vLgotICAgICAgVGV4dD0KLSAgICAgIFRleHQ9Q2xpY2sgWWVzIGlmIHRoYXQncyByZWFsbHkgd2hhdCB5b3Ugd2FudC4KLSAgICAgIEZsYWdzPTAwMTAxMTAxCi0gICAgZW5kCi0gICAgaXRlbTogUmVtYXJrCi0gICAgICBUZXh0PU5vdGhpbmcgLS0ganVzdCBwcm9jZWVkIHRvIHRoZSBuZXh0IGRpYWxvZy4KLSAgICBlbmQKLSAgICBpdGVtOiBFbHNlIFN0YXRlbWVudAotICAgIGVuZAotICAgIGl0ZW06IFJlbWFyawotICAgICAgVGV4dD1SZXR1cm4gdG8gdGhlIGRpYWxvZy4KLSAgICBlbmQKLSAgICBpdGVtOiBTZXQgVmFyaWFibGUKLSAgICAgIFZhcmlhYmxlPURMR19FVkVOVF9UWVBFCi0gICAgZW5kCi0gICAgaXRlbTogRW5kIEJsb2NrCi0gICAgZW5kCi0gICAgaXRlbTogRW5kIEJsb2NrCi0gICAgZW5kCi0gICAgaXRlbTogRW5kIEJsb2NrCi0gICAgZW5kCi0gICAgaXRlbTogRW5kIEJsb2NrCi0gICAgZW5kCi0gIGVuZAotICBpdGVtOiBEaWFsb2cKLSAgICBUaXRsZT1BZHZhbmNlZCBPcHRpb25zCi0gICAgV2lkdGg9MzM5Ci0gICAgSGVpZ2h0PTIxMwotICAgIEZvbnQgTmFtZT1IZWx2Ci0gICAgRm9udCBTaXplPTgKLSAgICBpdGVtOiBSYWRpbyBCdXR0b24KLSAgICAgIENvbnRyb2wgTmFtZT1BRE1JTjIKLSAgICAgIFJlY3RhbmdsZT0xMSA0NiA5MCA3NgotICAgICAgVmFyaWFibGU9U0VMRUNUX0FETUlOCi0gICAgICBFbmFibGVkIENvbG9yPTAwMDAwMDAwMDAwMDAwMDAxMTExMTExMTExMTExMTExCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDEwMDEKLSAgICAgIFRleHQ9QWRtaW4gaW5zdGFsbAotICAgICAgVGV4dD1Ob24tQWRtaW4gaW5zdGFsbGwKLSAgICAgIFRleHQ9Ci0gICAgZW5kCi0gICAgaXRlbTogUHVzaCBCdXR0b24KLSAgICAgIFJlY3RhbmdsZT0xODggMTcwIDI0NCAxODkKLSAgICAgIFZhcmlhYmxlPURJUkVDVElPTgotICAgICAgVmFsdWU9TgotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAxCi0gICAgICBUZXh0PU9LCi0gICAgICBUZXh0IEZyZW5jaD0mU3VpdGUgPgotICAgICAgVGV4dCBHZXJtYW49JldlaXRlciA+Ci0gICAgICBUZXh0IFNwYW5pc2g9JlNpZ3VpZW50ZSA+Ci0gICAgICBUZXh0IEl0YWxpYW49JkF2YW50aSA+Ci0gICAgZW5kCi0gICAgaXRlbTogU3RhdGljCi0gICAgICBSZWN0YW5nbGU9NSAzIDMyNiA4MwotICAgICAgQWN0aW9uPTEKLSAgICAgIEVuYWJsZWQgQ29sb3I9MDAwMDAwMDAwMDAwMDAwMDExMTExMTExMTExMTExMTEKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExMQotICAgIGVuZAotICAgIGl0ZW06IFN0YXRpYwotICAgICAgQ29udHJvbCBOYW1lPUFETUlOMQotICAgICAgUmVjdGFuZ2xlPTExIDExIDMyMSA0NQotICAgICAgRW5hYmxlZCBDb2xvcj0wMDAwMDAwMDAwMDAwMDAwMTExMTExMTExMTExMTExMQotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0gICAgICBUZXh0PUJ5IGRlZmF1bHQsIHRoZSBpbnN0YWxsIHJlY29yZHMgc2V0dGluZ3MgaW4gdGhlIHBlci1tYWNoaW5lIGFyZWEgb2YgdGhlIHJlZ2lzdHJ5IChIS0xNKSwgYW5kIGluc3RhbGxzIHRoZSBQeXRob24gYW5kIEMgcnVudGltZSBETExzIHRvICVTWVMzMiUuICBDaG9vc2UgIk5vbi1BZG1pbiBpbnN0YWxsIiBpZiB5b3Ugd291bGQgcHJlZmVyIHNldHRpbmdzIG1hZGUgaW4gdGhlIHBlci11c2VyIHJlZ2lzdHJ5IChIS0NVKSwgYW5kIERMTHMgaW5zdGFsbGVkIGluICVNQUlORElSJS4KLSAgICBlbmQKLSAgICBpdGVtOiBTdGF0aWMKLSAgICAgIFJlY3RhbmdsZT01IDkwIDMyNiAxNTcKLSAgICAgIEFjdGlvbj0xCi0gICAgICBFbmFibGVkIENvbG9yPTAwMDAwMDAwMDAwMDAwMDAxMTExMTExMTExMTExMTExCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMTEKLSAgICBlbmQKLSAgICBpdGVtOiBDaGVja2JveAotICAgICAgUmVjdGFuZ2xlPTExIDEyMSAyNDMgMTUxCi0gICAgICBWYXJpYWJsZT1UQVNLUwotICAgICAgRW5hYmxlZCBDb2xvcj0wMDAwMDAwMDAwMDAwMDAwMTExMTExMTExMTExMTExMQotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDExCi0gICAgICBUZXh0PVJlZ2lzdGVyIGZpbGUgZXh0ZW5zaW9ucyAoLnB5LCAucHl3LCAucHljLCAucHlvKQotICAgICAgVGV4dD1DcmVhdGUgU3RhcnQgTWVudSBzaG9ydGN1dHMKLSAgICAgIFRleHQ9Ci0gICAgZW5kCi0gICAgaXRlbTogU3RhdGljCi0gICAgICBSZWN0YW5nbGU9MTEgMTAzIDMyMCAxMjEKLSAgICAgIEVuYWJsZWQgQ29sb3I9MDAwMDAwMDAwMDAwMDAwMDExMTExMTExMTExMTExMTEKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotICAgICAgVGV4dD1DaG9vc2UgdGFza3MgdG8gcGVyZm9ybSBieSBjaGVja2luZyB0aGUgYm94ZXMgYmVsb3cuCi0gICAgZW5kCi0gICAgaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gICAgICBWYXJpYWJsZT1ETEdfRVZFTlRfVFlQRQotICAgICAgVmFsdWU9SU5JVAotICAgIGVuZAotICAgIGl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICAgICAgVmFyaWFibGU9RE9BRE1JTgotICAgICAgVmFsdWU9MQotICAgIGVuZAotICAgIGl0ZW06IFNldCBDb250cm9sIEF0dHJpYnV0ZQotICAgICAgQ29udHJvbCBOYW1lPUFETUlOMgotICAgIGVuZAotICAgIGl0ZW06IEVsc2UgU3RhdGVtZW50Ci0gICAgZW5kCi0gICAgaXRlbTogU2V0IENvbnRyb2wgVGV4dAotICAgICAgQ29udHJvbCBOYW1lPUFETUlOMQotICAgICAgQ29udHJvbCBUZXh0PVRoaXMgc2VjdGlvbiBpcyBhdmFpbGFibGUgb25seSBpZiBsb2dnZWQgaW4gdG8gYW4gYWNjb3VudCB3aXRoIEFkbWluaXN0cmF0b3IgcHJpdmlsZWdlcy4KLSAgICBlbmQKLSAgICBpdGVtOiBTZXQgQ29udHJvbCBBdHRyaWJ1dGUKLSAgICAgIENvbnRyb2wgTmFtZT1BRE1JTjIKLSAgICAgIE9wZXJhdGlvbj0xCi0gICAgZW5kCi0gICAgaXRlbTogRW5kIEJsb2NrCi0gICAgZW5kCi0gICAgaXRlbTogRW5kIEJsb2NrCi0gICAgZW5kCi0gIGVuZAotZW5kCi1pdGVtOiBDdXN0b20gRGlhbG9nIFNldAotICBOYW1lPVNlbGVjdCBQcm9ncmFtIE1hbmFnZXIgR3JvdXAKLSAgRGlzcGxheSBWYXJpYWJsZT1ESVNQTEFZCi0gIGl0ZW06IERpYWxvZwotICAgIFRpdGxlPSVBUFBUSVRMRSUgSW5zdGFsbGF0aW9uCi0gICAgVGl0bGUgRnJlbmNoPUluc3RhbGxhdGlvbiBkZSAlQVBQVElUTEUlCi0gICAgVGl0bGUgR2VybWFuPUluc3RhbGxhdGlvbiB2b24gJUFQUFRJVExFJQotICAgIFRpdGxlIFNwYW5pc2g9SW5zdGFsYWNp824gZGUgJUFQUFRJVExFJQotICAgIFRpdGxlIEl0YWxpYW49SW5zdGFsbGF6aW9uZSBkaSAlQVBQVElUTEUlCi0gICAgV2lkdGg9MzM5Ci0gICAgSGVpZ2h0PTI4MAotICAgIEZvbnQgTmFtZT1IZWx2Ci0gICAgRm9udCBTaXplPTgKLSAgICBpdGVtOiBQdXNoIEJ1dHRvbgotICAgICAgUmVjdGFuZ2xlPTE4OCAyMzQgMjQ0IDI1MwotICAgICAgVmFyaWFibGU9RElSRUNUSU9OCi0gICAgICBWYWx1ZT1OCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDEKLSAgICAgIFRleHQ9Jk5leHQgPgotICAgICAgVGV4dCBGcmVuY2g9JlN1aXRlID4KLSAgICAgIFRleHQgR2VybWFuPSZXZWl0ZXIgPgotICAgICAgVGV4dCBTcGFuaXNoPSZTaWd1aWVudGUgPgotICAgICAgVGV4dCBJdGFsaWFuPSZBdmFudGkgPgotICAgIGVuZAotICAgIGl0ZW06IFB1c2ggQnV0dG9uCi0gICAgICBSZWN0YW5nbGU9MTMxIDIzNCAxODggMjUzCi0gICAgICBWYXJpYWJsZT1ESVJFQ1RJT04KLSAgICAgIFZhbHVlPUIKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMAotICAgICAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAwMQotICAgICAgVGV4dD08ICZCYWNrCi0gICAgICBUZXh0IEZyZW5jaD08ICZSZXRvdXIKLSAgICAgIFRleHQgR2VybWFuPTwgJlp1cvxjawotICAgICAgVGV4dCBTcGFuaXNoPTwgJkF0cuFzCi0gICAgICBUZXh0IEl0YWxpYW49PCAmSW5kaWV0cm8KLSAgICBlbmQKLSAgICBpdGVtOiBQdXNoIEJ1dHRvbgotICAgICAgUmVjdGFuZ2xlPTI2NCAyMzQgMzIwIDI1MwotICAgICAgQWN0aW9uPTMKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMAotICAgICAgVGV4dD0mQ2FuY2VsCi0gICAgICBUZXh0IEZyZW5jaD0mQW5udWxlcgotICAgICAgVGV4dCBHZXJtYW49JkFiYnJlY2hlbgotICAgICAgVGV4dCBTcGFuaXNoPSZDYW5jZWxhcgotICAgICAgVGV4dCBJdGFsaWFuPSZBbm51bGxhCi0gICAgZW5kCi0gICAgaXRlbTogU3RhdGljCi0gICAgICBSZWN0YW5nbGU9MTAgMjI1IDMyMCAyMjYKLSAgICAgIEFjdGlvbj0zCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMTEKLSAgICBlbmQKLSAgICBpdGVtOiBTdGF0aWMKLSAgICAgIFJlY3RhbmdsZT0xMDggMTAgMzIzIDUzCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLSAgICAgIEZsYWdzPTAwMDAwMDAwMDAwMDAwMDEKLSAgICAgIE5hbWU9VGltZXMgTmV3IFJvbWFuCi0gICAgICBGb250IFN0eWxlPS0yNCAwIDAgMCA3MDAgMjU1IDAgMCAwIDMgMiAxIDE4Ci0gICAgICBUZXh0PVNlbGVjdCBTdGFydCBNZW51IEdyb3VwCi0gICAgICBUZXh0IEZyZW5jaD1T6WxlY3Rpb25uZXIgbGUgZ3JvdXBlIGR1IEdlc3Rpb25uYWlyZSBkZSBwcm9ncmFtbWUKLSAgICAgIFRleHQgR2VybWFuPUJlc3RpbW11bmcgZGVyIFByb2dyYW1tLU1hbmFnZXJncnVwcGUKLSAgICAgIFRleHQgU3BhbmlzaD1TZWxlY2Npb25lIGdydXBvIGRlbCBBZG1pbmlzdHJhZG9yIGRlIHByb2dyYW1hcwotICAgICAgVGV4dCBJdGFsaWFuPVNlbGV6aW9uYXJlIGlsIGdydXBwbyBQcm9nTWFuCi0gICAgZW5kCi0gICAgaXRlbTogU3RhdGljCi0gICAgICBSZWN0YW5nbGU9MTA4IDM1IDMyMCA2NQotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0gICAgICBUZXh0PUVudGVyIHRoZSBuYW1lIG9mIHRoZSBTdGFydCBNZW51IHByb2dyYW0gZ3JvdXAgdG8gd2hpY2ggdG8gYWRkIHRoZSAlQVBQVElUTEUlIGljb25zOgotICAgICAgVGV4dCBGcmVuY2g9RW50cmV6IGxlIG5vbSBkdSBncm91cGUgZHUgR2VzdGlvbm5haXJlIGRlIHByb2dyYW1tZSBkYW5zIGxlcXVlbCB2b3VzIHNvdWhhaXRleiBham91dGVyIGxlcyBpY/RuZXMgZGUgJUFQUFRJVExFJSA6Ci0gICAgICBUZXh0IEdlcm1hbj1HZWJlbiBTaWUgZGVuIE5hbWVuIGRlciBQcm9ncmFtbWdydXBwZSBlaW4sIGRlciBkYXMgU3ltYm9sICVBUFBUSVRMRSUgaGluenVnZWb8Z3Qgd2VyZGVuIHNvbGw6Ci0gICAgICBUZXh0IFNwYW5pc2g9RXNjcmliYSBlbCBub21icmUgZGVsIGdydXBvIGRlbCBBZG1pbmlzdHJhZG9yIGRlIHByb2dyYW1hcyBlbiBlbCBxdWUgZGVzZWEgYWdyZWdhciBsb3MgaWNvbm9zIGRlICVBUFBUSVRMRSU6Ci0gICAgICBUZXh0IEl0YWxpYW49SW5zZXJpcmUgaWwgbm9tZSBkZWwgZ3J1cHBvIFByb2dyYW0gTWFuYWdlciBwZXIgYWdnaXVuZ2VyZSBsZSBpY29uZSAlQVBQVElUTEUlIGE6Ci0gICAgZW5kCi0gICAgaXRlbTogQ29tYm9ib3gKLSAgICAgIFJlY3RhbmdsZT0xMDggNTYgMzIwIDIxOQotICAgICAgVmFyaWFibGU9R1JPVVAKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMTAwMDAxMDAwMDAwMTEwMDAwMDAwMQotICAgICAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAwMQotICAgICAgVGV4dD0lR1JPVVAlCi0gICAgICBUZXh0PQotICAgICAgVGV4dCBGcmVuY2g9JUdST1VQJQotICAgICAgVGV4dCBHZXJtYW49JUdST1VQJQotICAgICAgVGV4dCBTcGFuaXNoPSVHUk9VUCUKLSAgICAgIFRleHQgSXRhbGlhbj0lR1JPVVAlCi0gICAgZW5kCi0gIGVuZAotZW5kCi1pdGVtOiBDdXN0b20gRGlhbG9nIFNldAotICBOYW1lPVN0YXJ0IEluc3RhbGxhdGlvbgotICBEaXNwbGF5IFZhcmlhYmxlPURJU1BMQVkKLSAgaXRlbTogRGlhbG9nCi0gICAgVGl0bGU9JUFQUFRJVExFJSBJbnN0YWxsYXRpb24KLSAgICBUaXRsZSBGcmVuY2g9SW5zdGFsbGF0aW9uIGRlICVBUFBUSVRMRSUKLSAgICBUaXRsZSBHZXJtYW49SW5zdGFsbGF0aW9uIHZvbiAlQVBQVElUTEUlCi0gICAgVGl0bGUgU3BhbmlzaD1JbnN0YWxhY2nzbiBkZSAlQVBQVElUTEUlCi0gICAgVGl0bGUgSXRhbGlhbj1JbnN0YWxsYXppb25lIGRpICVBUFBUSVRMRSUKLSAgICBXaWR0aD0zMzkKLSAgICBIZWlnaHQ9MjgwCi0gICAgRm9udCBOYW1lPUhlbHYKLSAgICBGb250IFNpemU9OAotICAgIGl0ZW06IFB1c2ggQnV0dG9uCi0gICAgICBSZWN0YW5nbGU9MTg4IDIzNCAyNDQgMjUzCi0gICAgICBWYXJpYWJsZT1ESVJFQ1RJT04KLSAgICAgIFZhbHVlPU4KLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMQotICAgICAgVGV4dD0mTmV4dCA+Ci0gICAgICBUZXh0IEZyZW5jaD0mU3VpdGUgPgotICAgICAgVGV4dCBHZXJtYW49JldlaXRlciA+Ci0gICAgICBUZXh0IFNwYW5pc2g9JlNpZ3VpZW50ZSA+Ci0gICAgICBUZXh0IEl0YWxpYW49JkF2YW50aSA+Ci0gICAgZW5kCi0gICAgaXRlbTogUHVzaCBCdXR0b24KLSAgICAgIFJlY3RhbmdsZT0xMzEgMjM0IDE4OCAyNTMKLSAgICAgIFZhcmlhYmxlPURJUkVDVElPTgotICAgICAgVmFsdWU9QgotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwCi0gICAgICBUZXh0PTwgJkJhY2sKLSAgICAgIFRleHQgRnJlbmNoPTwgJlJldG91cgotICAgICAgVGV4dCBHZXJtYW49PCAmWnVy/GNrCi0gICAgICBUZXh0IFNwYW5pc2g9PCAmQXRy4XMKLSAgICAgIFRleHQgSXRhbGlhbj08ICZJbmRpZXRybwotICAgIGVuZAotICAgIGl0ZW06IFB1c2ggQnV0dG9uCi0gICAgICBSZWN0YW5nbGU9MjY0IDIzNCAzMjAgMjUzCi0gICAgICBBY3Rpb249MwotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwCi0gICAgICBUZXh0PSZDYW5jZWwKLSAgICAgIFRleHQgRnJlbmNoPSZBbm51bGVyCi0gICAgICBUZXh0IEdlcm1hbj0mQWJicmVjaGVuCi0gICAgICBUZXh0IFNwYW5pc2g9JkNhbmNlbGFyCi0gICAgICBUZXh0IEl0YWxpYW49JkFubnVsbGEKLSAgICBlbmQKLSAgICBpdGVtOiBTdGF0aWMKLSAgICAgIFJlY3RhbmdsZT0xMCAyMjUgMzIwIDIyNgotICAgICAgQWN0aW9uPTMKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExMQotICAgIGVuZAotICAgIGl0ZW06IFN0YXRpYwotICAgICAgUmVjdGFuZ2xlPTEwOCAxMCAzMjMgNTMKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotICAgICAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAwMQotICAgICAgTmFtZT1UaW1lcyBOZXcgUm9tYW4KLSAgICAgIEZvbnQgU3R5bGU9LTI0IDAgMCAwIDcwMCAyNTUgMCAwIDAgMyAyIDEgMTgKLSAgICAgIFRleHQ9UmVhZHkgdG8gSW5zdGFsbCEKLSAgICAgIFRleHQgRnJlbmNoPVBy6nQg4CBpbnN0YWxsZXIgIQotICAgICAgVGV4dCBHZXJtYW49SW5zdGFsbGF0aW9uc2JlcmVpdCEKLSAgICAgIFRleHQgU3BhbmlzaD2hUHJlcGFyYWRvIHBhcmEgbGEgaW5zdGFsYWNp824hCi0gICAgICBUZXh0IEl0YWxpYW49UHJvbnRvIHBlciBsJ2luc3RhbGxhemlvbmUhCi0gICAgZW5kCi0gICAgaXRlbTogU3RhdGljCi0gICAgICBSZWN0YW5nbGU9MTA4IDQwIDMyMCA2MgotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0gICAgICBUZXh0PUNsaWNrIHRoZSBOZXh0IGJ1dHRvbiB0byBpbnN0YWxsICVBUFBUSVRMRSUsIG9yIHRoZSBCYWNrIGJ1dHRvbiB0byBjaGFuZ2UgY2hvaWNlczoKLSAgICAgIFRleHQgRnJlbmNoPVZvdXMg6nRlcyBtYWludGVuYW50IHBy6nQg4CBpbnN0YWxsZXIgbGVzIGZpY2hpZXJzICVBUFBUSVRMRSUuCi0gICAgICBUZXh0IEZyZW5jaD0KLSAgICAgIFRleHQgRnJlbmNoPUNsaXF1ZXogc3VyIGxlIGJvdXRvbiBTdWl0ZSBwb3VyIGNvbW1lbmNlciBsJ2luc3RhbGxhdGlvbiBvdSBzdXIgbGUgYm91dG9uIFJldG91ciBwb3VyIGVudHJlciBsZXMgaW5mb3JtYXRpb25zIGQnaW5zdGFsbGF0aW9uIOAgbm91dmVhdS4KLSAgICAgIFRleHQgR2VybWFuPVNpZSBr9m5uZW4gJUFQUFRJVExFJSBudW4gaW5zdGFsbGllcmVuLgotICAgICAgVGV4dCBHZXJtYW49Ci0gICAgICBUZXh0IEdlcm1hbj1LbGlja2VuIFNpZSBhdWYgIldlaXRlciIsIHVtIG1pdCBkZXIgSW5zdGFsbGF0aW9uIHp1IGJlZ2lubmVuLiBLbGlja2VuIFNpZSBhdWYgIlp1cvxjayIsIHVtIGRpZSBJbnN0YWxsYXRpb25zaW5mb3JtYXRpb25lbiBuZXUgZWluenVnZWJlbi4KLSAgICAgIFRleHQgU3BhbmlzaD1ZYSBlc3ThIGxpc3RvIHBhcmEgaW5zdGFsYXIgJUFQUFRJVExFJS4KLSAgICAgIFRleHQgU3BhbmlzaD0KLSAgICAgIFRleHQgU3BhbmlzaD1QcmVzaW9uZSBlbCBib3TzbiBTaWd1aWVudGUgcGFyYSBjb21lbnphciBsYSBpbnN0YWxhY2nzbiBvIHByZXNpb25lIEF0cuFzIHBhcmEgdm9sdmVyIGEgaW5ncmVzYXIgbGEgaW5mb3JtYWNp824gcGFyYSBsYSBpbnN0YWxhY2nzbi4KLSAgICAgIFRleHQgSXRhbGlhbj1PcmEg6CBwb3NzaWJpbGUgaW5zdGFsbGFyZSAlQVBQVElUTEUlLgotICAgICAgVGV4dCBJdGFsaWFuPQotICAgICAgVGV4dCBJdGFsaWFuPVByZW1lcmUgaWwgcHVsc2FudGUgQXZhbnRpIHBlciBhdnZpYXJlIGwnaW5zdGFsbGF6aW9uZSBvIGlsIHB1bHNhbnRlIEluZGlldHJvIHBlciByZWluc2VyaXJlIGxlIGluZm9ybWF6aW9uaSBkaSBpbnN0YWxsYXppb25lLgotICAgIGVuZAotICAgIGl0ZW06IEVkaXRib3gKLSAgICAgIFJlY3RhbmdsZT0xMDggNjYgMzI0IDIxOQotICAgICAgSGVscCBDb250ZXh0PTE2NzExNjgxCi0gICAgICBFbmFibGVkIENvbG9yPTAwMDAwMDAwMDAwMDAwMDAxMTExMTExMTExMTExMTExCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAxMDAwMDAwMDAwMDExMDAwMTEwMDAxMDAKLSAgICAgIFRleHQ9JVNVTU1BUlklCi0gICAgZW5kCi0gIGVuZAotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPURJU1BMQVkKLSAgVmFsdWU9U2VsZWN0IERlc3RpbmF0aW9uIERpcmVjdG9yeQotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1Vc2VyIG1heSBoYXZlIGNoYW5nZWQgTUFJTkRJUiwgc28gcmVzZXQgQkFDS1VQIHRvIG1hdGNoLgotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9QkFDS1VQCi0gIFZhbHVlPSVNQUlORElSJVxCQUNLVVAKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUJFR0lOIFdJWkFSRCBTVFVGRiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1XaGVuIHRoZSBCQUNLVVAgZmVhdHVyZSBpcyBlbmFibGVkLCB0aGUgQkFDS1VQRElSIGlzIGluaXRpYWxpemVkCi1lbmQKLWl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICBWYXJpYWJsZT1ET0JBQ0tVUAotICBWYWx1ZT1BCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1CQUNLVVBESVIKLSAgVmFsdWU9JUJBQ0tVUCUKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PVRoZSBCUkFORElORyBpbmZvcm1hdGlvbiBpcyB3cml0dGVuIHRvIHRoZSBJTkkgZmlsZSBvbiB0aGUgaW5zdGFsbGF0aW9uIG1lZGlhLgotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9QlJBTkRJTkcKLSAgVmFsdWU9MQotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9RE9CUkFORAotICBWYWx1ZT0xCi1lbmQKLWl0ZW06IEVkaXQgSU5JIEZpbGUKLSAgUGF0aG5hbWU9JUlOU1QlXENVU1REQVRBLklOSQotICBTZXR0aW5ncz1bUmVnaXN0cmF0aW9uXQotICBTZXR0aW5ncz1OQU1FPSVOQU1FJQotICBTZXR0aW5ncz1DT01QQU5ZPSVDT01QQU5ZJQotICBTZXR0aW5ncz0KLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1CZWdpbiB3cml0aW5nIHRvIHRoZSBJTlNUQUxMLkxPRwotZW5kCi1pdGVtOiBPcGVuL0Nsb3NlIElOU1RBTEwuTE9HCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUNoZWNrIGZyZWUgZGlzayBzcGFjZSBjYWxjdWxhdGVzIGZyZWUgZGlzayBzcGFjZSBhcyB3ZWxsIGFzIGNvbXBvbmVudCBzaXplcy4KLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9SXQgc2hvdWxkIGJlIGxvY2F0ZWQgYmVmb3JlIGFsbCBJbnN0YWxsIEZpbGUgYWN0aW9ucy4KLWVuZAotaXRlbTogQ2hlY2sgRGlzayBTcGFjZQotICBDb21wb25lbnQ9Q09NUE9ORU5UUwotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1UaGlzIGluY2x1ZGUgc2NyaXB0IGFsbG93cyB1bmluc3RhbGwgc3VwcG9ydAotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1Ob3RlIGZyb20gVGltOiAgdGhpcyBpcyBvdXIgb3duIFVuaW5zdGFsLndzZSwgYSBjb3B5IG9mIFdpc2UncyBleGNlcHQKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9aXQgd3JpdGVzIHRvIEhLQ1UgKGluc3RlYWQgb2YgSEtMTSkgaWYgdGhlIHVzZXIgZG9lc24ndCBoYXZlIGFkbWluIHByaXZzLgotZW5kCi1pdGVtOiBJbmNsdWRlIFNjcmlwdAotICBQYXRobmFtZT0uXFVuaW5zdGFsLndzZQotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1Ob3RlIGZyb20gVGltOiB0aGVzZSBzZWVtaW5nIG5vLW9wcyBhY3R1YWxseSBjb252ZXJ0IHRvIHNob3J0IGZpbGVuYW1lcy4KLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPUNPTU1PTgotICBWYWx1ZT0lQ09NTU9OJQotICBGbGFncz0wMDAxMDEwMAotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9TUFJTkRJUgotICBWYWx1ZT0lTUFJTkRJUiUKLSAgRmxhZ3M9MDAwMTAxMDAKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9VGhpcyBJRi9USEVOL0VMU0UgcmVhZHMgdGhlIGNvcnJlY3QgcmVnaXN0cnkgZW50cmllcyBmb3Igc2hvcnRjdXQvaWNvbiBwbGFjZW1lbnQKLWVuZAotaXRlbTogQ2hlY2sgQ29uZmlndXJhdGlvbgotICBGbGFncz0xMDExMTAxMQotZW5kCi1pdGVtOiBHZXQgUmVnaXN0cnkgS2V5IFZhbHVlCi0gIFZhcmlhYmxlPVNUQVJUVVBESVIKLSAgS2V5PVNvZnR3YXJlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXEV4cGxvcmVyXFNoZWxsIEZvbGRlcnMKLSAgRGVmYXVsdD0lV0lOJVxTdGFydCBNZW51XFByb2dyYW1zXFN0YXJ0VXAKLSAgVmFsdWUgTmFtZT1TdGFydFVwCi0gIEZsYWdzPTAwMDAwMDEwCi1lbmQKLWl0ZW06IEdldCBSZWdpc3RyeSBLZXkgVmFsdWUKLSAgVmFyaWFibGU9REVTS1RPUERJUgotICBLZXk9U29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cRXhwbG9yZXJcU2hlbGwgRm9sZGVycwotICBEZWZhdWx0PSVXSU4lXERlc2t0b3AKLSAgVmFsdWUgTmFtZT1EZXNrdG9wCi0gIEZsYWdzPTAwMDAwMDEwCi1lbmQKLWl0ZW06IEdldCBSZWdpc3RyeSBLZXkgVmFsdWUKLSAgVmFyaWFibGU9U1RBUlRNRU5VRElSCi0gIEtleT1Tb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxFeHBsb3JlclxTaGVsbCBGb2xkZXJzCi0gIERlZmF1bHQ9JVdJTiVcU3RhcnQgTWVudQotICBWYWx1ZSBOYW1lPVN0YXJ0IE1lbnUKLSAgRmxhZ3M9MDAwMDAwMTAKLWVuZAotaXRlbTogR2V0IFJlZ2lzdHJ5IEtleSBWYWx1ZQotICBWYXJpYWJsZT1HUk9VUERJUgotICBLZXk9U29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cRXhwbG9yZXJcU2hlbGwgRm9sZGVycwotICBEZWZhdWx0PSVXSU4lXFN0YXJ0IE1lbnVcUHJvZ3JhbXMKLSAgVmFsdWUgTmFtZT1Qcm9ncmFtcwotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBHZXQgUmVnaXN0cnkgS2V5IFZhbHVlCi0gIFZhcmlhYmxlPUNTVEFSVFVQRElSCi0gIEtleT1Tb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxFeHBsb3JlclxTaGVsbCBGb2xkZXJzCi0gIERlZmF1bHQ9JVNUQVJUVVBESVIlCi0gIFZhbHVlIE5hbWU9Q29tbW9uIFN0YXJ0dXAKLSAgRmxhZ3M9MDAwMDAxMDAKLWVuZAotaXRlbTogR2V0IFJlZ2lzdHJ5IEtleSBWYWx1ZQotICBWYXJpYWJsZT1DREVTS1RPUERJUgotICBLZXk9U29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cRXhwbG9yZXJcU2hlbGwgRm9sZGVycwotICBEZWZhdWx0PSVERVNLVE9QRElSJQotICBWYWx1ZSBOYW1lPUNvbW1vbiBEZXNrdG9wCi0gIEZsYWdzPTAwMDAwMTAwCi1lbmQKLWl0ZW06IEdldCBSZWdpc3RyeSBLZXkgVmFsdWUKLSAgVmFyaWFibGU9Q1NUQVJUTUVOVURJUgotICBLZXk9U29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cRXhwbG9yZXJcU2hlbGwgRm9sZGVycwotICBEZWZhdWx0PSVTVEFSVE1FTlVESVIlCi0gIFZhbHVlIE5hbWU9Q29tbW9uIFN0YXJ0IE1lbnUKLSAgRmxhZ3M9MDAwMDAxMDAKLWVuZAotaXRlbTogR2V0IFJlZ2lzdHJ5IEtleSBWYWx1ZQotICBWYXJpYWJsZT1DR1JPVVBESVIKLSAgS2V5PVNvZnR3YXJlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXEV4cGxvcmVyXFNoZWxsIEZvbGRlcnMKLSAgRGVmYXVsdD0lR1JPVVBESVIlCi0gIFZhbHVlIE5hbWU9Q29tbW9uIFByb2dyYW1zCi0gIEZsYWdzPTAwMDAwMTAwCi1lbmQKLWl0ZW06IEVsc2UgU3RhdGVtZW50Ci1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PU5vdGUgZnJvbSBUaW06ICB0aGUgV2l6YXJkIGxlZnQgdGhpcyBibG9jayBlbXB0eSEKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9UGVyaGFwcyBpdCdzIG9ubHkgcmVsZXZhbnQgb24gV2luZG93cyAzLjEuCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1FTkQgV0laQVJEIFNUVUZGIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9U0VMRUNUX0FETUlOCi0gIFZhbHVlPUIKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9VGhlIHVzZXIgY2hvc2UgYSBub24tYWRtaW4gaW5zdGFsbCBpbiAiQWR2YW5jZWQgT3B0aW9ucyIuCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PVRoaXMgc2hvdWxkIGNvbWUgYWZ0ZXIgdGhlIGluY2x1ZGUgb2YgVW5pbnN0YWwud3NlIGFib3ZlLCBiZWNhdXNlCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PXdyaXRpbmcgdW5pbnN0YWxsIGluZm8gdG8gSEtDVSBpcyBpbmVmZmVjdGl2ZSBleGNlcHQgdW5kZXIgV2luMksuCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1ET0FETUlOCi0gIFZhbHVlPTAKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9Q0dST1VQX1NBVkUKLSAgVmFsdWU9JUdST1VQJQotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9VEFTS1MKLSAgVmFsdWU9QgotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9RE9BRE1JTgotICBWYWx1ZT0xCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1HUk9VUAotICBWYWx1ZT0lQ0dST1VQRElSJVwlR1JPVVAlCi1lbmQKLWl0ZW06IEVsc2UgU3RhdGVtZW50Ci1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1HUk9VUAotICBWYWx1ZT0lR1JPVVBESVIlXCVHUk9VUCUKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9TG9uZyBzZWN0aW9uIHRvIGluc3RhbGwgZmlsZXMuCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9RE9BRE1JTgotICBWYWx1ZT0xCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1ETExERVNUCi0gIFZhbHVlPSVTWVMzMiUKLWVuZAotaXRlbTogRWxzZSBTdGF0ZW1lbnQKLWVuZAotaXRlbTogU2V0IFZhcmlhYmxlCi0gIFZhcmlhYmxlPURMTERFU1QKLSAgVmFsdWU9JU1BSU5ESVIlCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9SW5zdGFsbCB0aGUgbGljZW5zZSBldmVuIGlmIHRoZXkgZGVzZWxlY3QgZXZlcnl0aGluZyA8d2luaz4uCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cbGljZW5zZQotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcTElDRU5TRS50eHQKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXHJlYWRtZQotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcUkVBRE1FLnR4dAotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cbWlzY1xuZXdzCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxORVdTLnR4dAotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUljb25zIC0tIGFsd2F5cyBpbnN0YWxsIHNvIHRoYXQgdGhlIHVuaW5zdGFsbGVyIGNhbiB1c2UgdGhlbSBmb3IgaXRzIG93biBkaXNwbGF5LgotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXHBjXHB5Y29uLmljbwotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVccHljb24uaWNvCi0gIEZsYWdzPTAwMDAwMDAwMTAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxwY1xweWMuaWNvCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxweWMuaWNvCi0gIEZsYWdzPTAwMDAwMDAwMTAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxwY1xweS5pY28KLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXHB5LmljbwotICBGbGFncz0wMDAwMDAwMDEwMDAwMDEwCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1UaGVzZSBhcnJhbmdlIHRvIChyZWN1cnNpdmVseSEpIGRlbGV0ZSBhbGwgLnB5YyBhbmQgLnB5byBmaWxlcyBhdCB1bmluc3RhbGwgdGltZS4KLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9VGhpcyAiZG9lcyB0aGUgcmlnaHQgdGhpbmciOiAgYW55IGRpcmVjdG9yaWVzIGxlZnQgZW1wdHkgYXQgdGhlIGVuZCBhcmUgcmVtb3ZlZC4KLWVuZAotaXRlbTogQWRkIFRleHQgdG8gSU5TVEFMTC5MT0cKLSAgVGV4dD1GaWxlIFRyZWU6ICVNQUlORElSJVwqLnB5YwotZW5kCi1pdGVtOiBBZGQgVGV4dCB0byBJTlNUQUxMLkxPRwotICBUZXh0PUZpbGUgVHJlZTogJU1BSU5ESVIlXCoucHlvCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1BOiBpbnRlcnByZXRlciBhbmQgbGlicmFyaWVzCi1lbmQKLWl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICBWYXJpYWJsZT1DT01QT05FTlRTCi0gIFZhbHVlPUEKLSAgRmxhZ3M9MDAwMDAwMTAKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9RXhlY3V0YWJsZXMKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXHB5dGhvbi5leGUKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXHB5dGhvbi5leGUKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS5ccHl0aG9udy5leGUKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXHB5dGhvbncuZXhlCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXHc5eHBvcGVuLmV4ZQotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcdzl4cG9wZW4uZXhlCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUV4dGVuc2lvbiBtb2R1bGUgRExMcyAoLnB5ZCk7IGtlZXAgaW4gc3luY2ggd2l0aCBsaWJzIGRpcmVjdG9yeSBuZXh0Ci1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Llx3aW5yZWcucHlkCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxETExzXHdpbnJlZy5weWQKLSAgRGVzY3JpcHRpb249RXh0ZW5zaW9uIG1vZHVsZXMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS5cX2Nzdi5weWQKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXERMTHNcX2Nzdi5weWQKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS5cX3NyZS5weWQKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXERMTHNcX3NyZS5weWQKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS5cX3NzbC5weWQKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXERMTHNcX3NzbC5weWQKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS5cX3N5bXRhYmxlLnB5ZAotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcRExMc1xfc3ltdGFibGUucHlkCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXF90ZXN0Y2FwaS5weWQKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXERMTHNcX3Rlc3RjYXBpLnB5ZAotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9LlxfdGtpbnRlci5weWQKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXERMTHNcX3RraW50ZXIucHlkCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXF9zb2NrZXQucHlkCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxETExzXF9zb2NrZXQucHlkCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXGJ6Mi5weWQKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXERMTHNcYnoyLnB5ZAotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9LlxkYXRldGltZS5weWQKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXERMTHNcZGF0ZXRpbWUucHlkCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXG1tYXAucHlkCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxETExzXG1tYXAucHlkCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXHBhcnNlci5weWQKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXERMTHNccGFyc2VyLnB5ZAotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9LlxweWV4cGF0LnB5ZAotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcRExMc1xweWV4cGF0LnB5ZAotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9LlxzZWxlY3QucHlkCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxETExzXHNlbGVjdC5weWQKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS5cdW5pY29kZWRhdGEucHlkCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxETExzXHVuaWNvZGVkYXRhLnB5ZAotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Llx3aW5zb3VuZC5weWQKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXERMTHNcd2luc291bmQucHlkCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXHpsaWIucHlkCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxETExzXHpsaWIucHlkCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUxpbmsgbGlicmFyaWVzICgubGliKTsga2VlcCBpbiBzeW5jaCB3aXRoIERMTHMgYWJvdmUsIGV4Y2VwdCB0aGF0IHRoZSBQeXRob24gbGliIGxpdmVzIGhlcmUuCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Llx3aW5yZWcubGliCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxsaWJzXHdpbnJlZy5saWIKLSAgRGVzY3JpcHRpb249TGluayBsaWJyYXJ5IGZpbGVzCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXF9jc3YubGliCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxsaWJzXF9jc3YubGliCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXF9zcmUubGliCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxsaWJzXF9zcmUubGliCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXF9zc2wubGliCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxsaWJzXF9zc2wubGliCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXF9zeW10YWJsZS5saWIKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXGxpYnNcX3N5bXRhYmxlLmxpYgotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9LlxfdGVzdGNhcGkubGliCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxsaWJzXF90ZXN0Y2FwaS5saWIKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS5cX3RraW50ZXIubGliCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxsaWJzXF90a2ludGVyLmxpYgotICBEZXNjcmlwdGlvbj1FeHRlbnNpb24gbW9kdWxlcwotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Llxfc29ja2V0LmxpYgotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcbGlic1xfc29ja2V0LmxpYgotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9LlxiejIubGliCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxsaWJzXGJ6Mi5saWIKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS5cZGF0ZXRpbWUubGliCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxsaWJzXGRhdGV0aW1lLmxpYgotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9LlxtbWFwLmxpYgotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcbGlic1xtbWFwLmxpYgotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9LlxwYXJzZXIubGliCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxsaWJzXHBhcnNlci5saWIKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS5ccHlleHBhdC5saWIKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXGxpYnNccHlleHBhdC5saWIKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS5cc2VsZWN0LmxpYgotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcbGlic1xzZWxlY3QubGliCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXHVuaWNvZGVkYXRhLmxpYgotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcbGlic1x1bmljb2RlZGF0YS5saWIKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS5cd2luc291bmQubGliCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxsaWJzXHdpbnNvdW5kLmxpYgotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Llx6bGliLmxpYgotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcbGlic1x6bGliLmxpYgotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS5ccHl0aG9uJV9weW1ham9yXyUlX3B5bWlub3JfJS5saWIKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXGxpYnNccHl0aG9uJV9QWU1BSk9SXyUlX1BZTUlOT1JfJS5saWIKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9TWFpbiBQeXRob24gRExMCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PVRlbGwgV2lzZSBpdCdzIE9LIHRvIGRlbGV0ZSB0aGUgUHl0aG9uIERMTCBhdCB1bmluc3RhbGwgdGltZSwKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9ZGVzcGl0ZSB0aGF0IHdlIChtYXkpIHdyaXRlIGl0IGludG8gYSBzeXN0ZW0gZGlyZWN0b3J5LgotZW5kCi1pdGVtOiBBZGQgVGV4dCB0byBJTlNUQUxMLkxPRwotICBUZXh0PU5vbi1TeXN0ZW0gRmlsZToKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uXHB5dGhvbiVfcHltYWpvcl8lJV9weW1pbm9yXyUuZGxsCi0gIERlc3RpbmF0aW9uPSVETExERVNUJVxweXRob24lX1BZTUFKT1JfJSVfUFlNSU5PUl8lLmRsbAotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1MaWJyYXJpZXMgKExpYi8pCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cbGliXCoucHkKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYgotICBEZXNjcmlwdGlvbj1MaWJyYXJ5IE1vZHVsZXMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxsaWJcY29tcGlsZXJcKi5weQotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcTGliXGNvbXBpbGVyCi0gIERlc2NyaXB0aW9uPVB5dGhvbiBjb21waWxlciB3cml0dGVuIGluIFB5dGhvbgotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXGxpYlxkaXN0dXRpbHNcKi5weQotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcTGliXGRpc3R1dGlscwotICBEZXNjcmlwdGlvbj1EaXN0cmlidXRpb24gdXRpbGl0eSBtb2R1bGVzCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxsaWJcZGlzdHV0aWxzXHJlYWRtZQotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcTGliXGRpc3R1dGlsc1xSRUFETUUudHh0Ci0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxsaWJcZGlzdHV0aWxzXGNvbW1hbmRcKi5weQotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcTGliXGRpc3R1dGlsc1xjb21tYW5kCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxsaWJcZGlzdHV0aWxzXGNvbW1hbmRcd2luaW5zdC5leGUKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlxkaXN0dXRpbHNcY29tbWFuZFx3aW5pbnN0LmV4ZQotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cbGliXGRpc3R1dGlsc1xjb21tYW5kXGNvbW1hbmRfdGVtcGxhdGUKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlxkaXN0dXRpbHNcY29tbWFuZFxjb21tYW5kX3RlbXBsYXRlCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cbGliXGVtYWlsXCoucHkKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlxlbWFpbAotICBEZXNjcmlwdGlvbj1MaWJyYXJ5IGVtYWlsIHBhY2thZ2UKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXGxpYlxlbWFpbFx0ZXN0XCoucHkKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlxlbWFpbFx0ZXN0Ci0gIERlc2NyaXB0aW9uPWVtYWlsIHRlc3RzCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxsaWJcZW1haWxcdGVzdFxkYXRhXCoudHh0Ci0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxMaWJcZW1haWxcdGVzdFxkYXRhCi0gIERlc2NyaXB0aW9uPWVtYWlsIHRlc3QgZGF0YQotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cbGliXGVtYWlsXHRlc3RcZGF0YVwqLmdpZgotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcTGliXGVtYWlsXHRlc3RcZGF0YQotICBEZXNjcmlwdGlvbj1lbWFpbCB0ZXN0IGRhdGEKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXGxpYlxlbWFpbFx0ZXN0XGRhdGFcKi5hdQotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcTGliXGVtYWlsXHRlc3RcZGF0YQotICBEZXNjcmlwdGlvbj1lbWFpbCB0ZXN0IGRhdGEKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxsaWJcZW5jb2RpbmdzXCoucHkKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlxlbmNvZGluZ3MKLSAgRGVzY3JpcHRpb249VW5pY29kZSBlbmNvZGluZyB0YWJsZXMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxsaWJcaG90c2hvdFwqLnB5Ci0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxMaWJcaG90c2hvdAotICBEZXNjcmlwdGlvbj1GYXN0IFB5dGhvbiBwcm9maWxlcgotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXGxpYlxsaWItb2xkXCoucHkKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlxsaWItb2xkCi0gIERlc2NyaXB0aW9uPU9ic29sZXRlIG1vZHVsZXMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxsaWJcdGtpbnRlclwqLnB5Ci0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxMaWJcdGtpbnRlcgotICBEZXNjcmlwdGlvbj1Ua2ludGVyIHJlbGF0ZWQgbGlicmFyeSBtb2R1bGVzCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cbGliXGxvZ2dpbmdcKi5weQotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcTGliXGxvZ2dpbmcKLSAgRGVzY3JpcHRpb249TG9nZ2luZyBwYWNrYWdlCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cbGliXHNpdGUtcGFja2FnZXNccmVhZG1lCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxMaWJcc2l0ZS1wYWNrYWdlc1xSRUFETUUudHh0Ci0gIERlc2NyaXB0aW9uPVNpdGUgcGFja2FnZXMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxsaWJceG1sXCoucHkKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlx4bWwKLSAgRGVzY3JpcHRpb249WE1MIHN1cHBvcnQgcGFja2FnZXMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXGxpYlx4bWxcZG9tXCoucHkKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlx4bWxcZG9tCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxsaWJceG1sXHBhcnNlcnNcKi5weQotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcTGliXHhtbFxwYXJzZXJzCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxsaWJceG1sXHNheFwqLnB5Ci0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxMaWJceG1sXHNheAotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1DIEluY2x1ZGUgZmlsZXMKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxpbmNsdWRlXCouaAotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcaW5jbHVkZQotICBEZXNjcmlwdGlvbj1IZWFkZXIgZmlsZXMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXHBjXHB5Y29uZmlnLmgKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXGluY2x1ZGVccHljb25maWcuaAotICBEZXNjcmlwdGlvbj1IZWFkZXIgZmlsZXMgKHB5Y29uZmlnLmgpCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PU1pY3Jvc29mdCBDIHJ1bnRpbWUgbGlicmFyaWVzCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9JV9TWVNfJVxNU1ZDSVJULkRMTAotICBEZXN0aW5hdGlvbj0lRExMREVTVCVcTVNWQ0lSVC5ETEwKLSAgRGVzY3JpcHRpb249VmlzdWFsIEMrKyBSdW50aW1lIERMTHMKLSAgRmxhZ3M9MDAwMDAxMTAwMDAxMDAxMQotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPSVfU1lTXyVcTVNWQ1JULkRMTAotICBEZXN0aW5hdGlvbj0lRExMREVTVCVcTVNWQ1JULkRMTAotICBEZXNjcmlwdGlvbj1WaXN1YWwgQysrIFJ1bnRpbWUgRExMcwotICBGbGFncz0wMDAwMDExMDAwMDEwMDExCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9QjogVGNsL1RrIChUa2ludGVyLCBJRExFLCBweWRvYykKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPUNPTVBPTkVOVFMKLSAgVmFsdWU9QgotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1UY2wvVGsKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlwuLlwlX3RjbGRpcl8lXGJpblwqLmRsbAotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcRExMcwotICBEZXNjcmlwdGlvbj1UY2wvVGsgYmluYXJpZXMgYW5kIGxpYnJhcmllcwotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cLi5cJV90Y2xkaXJfJVxsaWJcKi4qCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVx0Y2wKLSAgRGVzY3JpcHRpb249VGNsL1RrIGJpbmFyaWVzIGFuZCBsaWJyYXJpZXMKLSAgRmxhZ3M9MDAwMDAwMDEwMDAwMDAxMAotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9SURMRQotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXExpYlxpZGxlbGliXCoucHkKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlxpZGxlbGliCi0gIERlc2NyaXB0aW9uPUludGVncmF0ZWQgRGV2ZUxvcG1lbnQgRW52aXJvbm1lbnQgZm9yIFB5dGhvbgotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cTGliXGlkbGVsaWJcKi50eHQKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlxpZGxlbGliCi0gIERlc2NyaXB0aW9uPUludGVncmF0ZWQgRGV2ZUxvcG1lbnQgRW52aXJvbm1lbnQgZm9yIFB5dGhvbgotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cTGliXGlkbGVsaWJcKi5kZWYKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlxpZGxlbGliCi0gIERlc2NyaXB0aW9uPUludGVncmF0ZWQgRGV2ZUxvcG1lbnQgRW52aXJvbm1lbnQgZm9yIFB5dGhvbgotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cTGliXGlkbGVsaWJcSWNvbnNcKgotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcTGliXGlkbGVsaWJcSWNvbnMKLSAgRGVzY3JpcHRpb249SW50ZWdyYXRlZCBEZXZlTG9wbWVudCBFbnZpcm9ubWVudCBmb3IgUHl0aG9uCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxUb29sc1xzY3JpcHRzXGlkbGUKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlxpZGxlbGliXGlkbGUucHl3Ci0gIERlc2NyaXB0aW9uPUlETEUgYm9vdHN0cmFwIHNjcmlwdAotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1XaW5kb3dzIHB5ZG9jIGRyaXZlcgotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXHRvb2xzXHNjcmlwdHNcKi5weXcKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXFRvb2xzXFNjcmlwdHMKLSAgRGVzY3JpcHRpb249V2luZG93cyBweWRvYyBkcml2ZXIKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUM6IGRvY3MKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPUNPTVBPTkVOVFMKLSAgVmFsdWU9QwotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPSVfRE9DXyVcKi4qCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxEb2MKLSAgRGVzY3JpcHRpb249UHl0aG9uIERvY3VtZW50YXRpb24gKEhUTUwpCi0gIEZsYWdzPTAwMDAwMDAxMDAwMDAwMTAKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1EOiB0b29scwotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9Q09NUE9ORU5UUwotICBWYWx1ZT1ECi0gIEZsYWdzPTAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cdG9vbHNcc2NyaXB0c1wqLnB5Ci0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxUb29sc1xTY3JpcHRzCi0gIERlc2NyaXB0aW9uPVV0aWxpdHkgU2NyaXB0cwotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cdG9vbHNcc2NyaXB0c1wqLmRvYwotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcVG9vbHNcU2NyaXB0cwotICBEZXNjcmlwdGlvbj1VdGlsaXR5IFNjcmlwdHMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXHRvb2xzXHNjcmlwdHNccmVhZG1lCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxUb29sc1xTY3JpcHRzXFJFQURNRS50eHQKLSAgRGVzY3JpcHRpb249VXRpbGl0eSBTY3JpcHRzCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cdG9vbHNcd2ViY2hlY2tlclwqLnB5Ci0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxUb29sc1x3ZWJjaGVja2VyCi0gIERlc2NyaXB0aW9uPVdlYiBjaGVja2VyIHRvb2wKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXHRvb2xzXHdlYmNoZWNrZXJccmVhZG1lCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxUb29sc1x3ZWJjaGVja2VyXFJFQURNRS50eHQKLSAgRGVzY3JpcHRpb249V2ViIGNoZWNrZXIgdG9vbAotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXHRvb2xzXHZlcnNpb25jaGVja1wqLnB5Ci0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxUb29sc1x2ZXJzaW9uY2hlY2sKLSAgRGVzY3JpcHRpb249VmVyc2lvbiBjaGVja2VyIHRvb2wKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXHRvb2xzXHZlcnNpb25jaGVja1xyZWFkbWUKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXFRvb2xzXHZlcnNpb25jaGVja1xSRUFETUUudHh0Ci0gIERlc2NyaXB0aW9uPVZlcnNpb24gY2hlY2tlciB0b29sCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cdG9vbHNccHluY2hlXCoucHkKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXFRvb2xzXHB5bmNoZQotICBEZXNjcmlwdGlvbj1weW5jaGUgY29sb3IgZWRpdG9yCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlx0b29sc1xweW5jaGVcKi50eHQKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXFRvb2xzXHB5bmNoZQotICBEZXNjcmlwdGlvbj1weW5jaGUgY29sb3IgZWRpdG9yCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlx0b29sc1xweW5jaGVceFwqLnR4dAotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcVG9vbHNccHluY2hlXFgKLSAgRGVzY3JpcHRpb249cHluY2hlIGNvbG9yIGVkaXRvciAtIFggZmlsZXMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXHRvb2xzXHB5bmNoZVxyZWFkbWUKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXFRvb2xzXHB5bmNoZVxSRUFETUUudHh0Ci0gIERlc2NyaXB0aW9uPXB5bmNoZSBjb2xvciBlZGl0b3IgLSBSRUFETUUKLSAgRmxhZ3M9MDAwMDAwMDEwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXHRvb2xzXHB5bmNoZVxweW5jaGUKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXFRvb2xzXHB5bmNoZVxweW5jaGUucHkKLSAgRGVzY3JpcHRpb249cHluY2hlIGNvbG9yIGVkaXRvciAtIG1haW4KLSAgRmxhZ3M9MDAwMDAwMDEwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXHRvb2xzXHB5bmNoZVxweW5jaGUucHl3Ci0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxUb29sc1xweW5jaGVccHluY2hlLnB5dwotICBEZXNjcmlwdGlvbj1weW5jaGUgY29sb3IgZWRpdG9yIC0gbm9jb25zb2xlIG1haW4KLSAgRmxhZ3M9MDAwMDAwMDEwMDAwMDAxMAotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlx0b29sc1xpMThuXCoucHkKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXFRvb2xzXGkxOG4KLSAgRGVzY3JpcHRpb249SW50ZXJuYXRpb25hbGl6YXRpb24gaGVscGVycwotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9RTogdGVzdCBzdWl0ZQotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9Q09NUE9ORU5UUwotICBWYWx1ZT1FCi0gIEZsYWdzPTAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cbGliXHRlc3RcYXVkaW90ZXN0LmF1Ci0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxMaWJcdGVzdFxhdWRpb3Rlc3QuYXUKLSAgRGVzY3JpcHRpb249UHl0aG9uIFRlc3QgZmlsZXMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXGxpYlx0ZXN0XCoudXVlCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxMaWJcdGVzdAotICBEZXNjcmlwdGlvbj1QeXRob24gVGVzdCBmaWxlcwotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cbGliXHRlc3RcKi5weQotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcTGliXHRlc3QKLSAgRGVzY3JpcHRpb249UHl0aG9uIFRlc3QgZmlsZXMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXGxpYlx0ZXN0XCoueG1sCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxMaWJcdGVzdAotICBEZXNjcmlwdGlvbj1QeXRob24gVGVzdCBmaWxlcwotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cbGliXHRlc3RcKi5vdXQKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlx0ZXN0Ci0gIERlc2NyaXB0aW9uPVB5dGhvbiBUZXN0IGZpbGVzCi0gIEZsYWdzPTAwMDAwMDAwMDAwMDAwMTAKLWVuZAotaXRlbTogSW5zdGFsbCBGaWxlCi0gIFNvdXJjZT0uLlxsaWJcdGVzdFwqLmJ6MgotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcTGliXHRlc3QKLSAgRGVzY3JpcHRpb249UHl0aG9uIFRlc3QgZmlsZXMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXGxpYlx0ZXN0XCoudGFyCi0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxMaWJcdGVzdAotICBEZXNjcmlwdGlvbj1QeXRob24gVGVzdCBmaWxlcwotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IEluc3RhbGwgRmlsZQotICBTb3VyY2U9Li5cbGliXHRlc3RcKi5negotICBEZXN0aW5hdGlvbj0lTUFJTkRJUiVcTGliXHRlc3QKLSAgRGVzY3JpcHRpb249UHl0aG9uIFRlc3QgZmlsZXMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXGxpYlx0ZXN0XCoudHh0Ci0gIERlc3RpbmF0aW9uPSVNQUlORElSJVxMaWJcdGVzdAotICBEZXNjcmlwdGlvbj1QeXRob24gVGVzdCBmaWxlcwotICBGbGFncz0wMDAwMDAwMDAwMDAwMDEwCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBJbnN0YWxsIEZpbGUKLSAgU291cmNlPS4uXGxpYlx0ZXN0XG91dHB1dFwqLioKLSAgRGVzdGluYXRpb249JU1BSU5ESVIlXExpYlx0ZXN0XG91dHB1dAotICBEZXNjcmlwdGlvbj1QeXRob24gVGVzdCBvdXRwdXQgZmlsZXMKLSAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAxMAotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PURPTkUgd2l0aCBmaWxlIGNvcHlpbmcuCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PVRoZSByZXN0IGlzIHJlZ2lzdHJ5IGFuZCBTdGFydCBNZW51IGZpZGRsaW5nLgotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPUNPTVBPTkVOVFMKLSAgVmFsdWU9QQotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9VEFTS1MKLSAgVmFsdWU9QQotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1SZWdpc3RlciBmaWxlIGV4dGVuc2lvbnMuICBBcyB1c3VhbCwgQWRtaW4gcHJpdnMgZ2V0IGluIHRoZSB3YXksIGJ1dCB3aXRoIGEgdHdpc3Q6Ci1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PVlvdSBkb24ndCBuZWVkIGFkbWluIHByaXZzIHRvIHdyaXRlIHRvIEhLRVlfQ0xBU1NFU19ST09UICpleGNlcHQqIHVuZGVyIFdpbjJLLgotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1PbiBXaW4ySywgYSB1c2VyIHdpdGhvdXQgQWRtaW4gcHJpdnMgaGFzIHRvIHJlZ2lzdGVyIGV4dGVuc2lvbnMgdW5kZXIgSEtDVVxTb2Z0d2FyZVxDTEFTU0VTIGluc3RlYWQuCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUJ1dCB3aGlsZSB5b3UgY2FuICpkbyogdGhhdCB1bmRlciBvdGhlciBmbGF2b3JzIG9mIFdpbmRvd3MgdG9vLCBpdCBoYXMgbm8gdXNlZnVsIGVmZmVjdCBleGNlcHQgaW4gV2luMksuCi1lbmQKLWl0ZW06IFNldCBWYXJpYWJsZQotICBWYXJpYWJsZT1VU0VfSEtDUgotICBWYWx1ZT0xCi1lbmQKLWl0ZW06IENoZWNrIENvbmZpZ3VyYXRpb24KLSAgRmxhZ3M9MTExMTAwMTAKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPURPQURNSU4KLSAgVmFsdWU9MAotZW5kCi1pdGVtOiBTZXQgVmFyaWFibGUKLSAgVmFyaWFibGU9VVNFX0hLQ1IKLSAgVmFsdWU9MAotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICBWYXJpYWJsZT1VU0VfSEtDUgotICBWYWx1ZT0xCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUZpbGUgdHlwZXMuCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1QeXRob24uRmlsZQotICBOZXcgVmFsdWU9UHl0aG9uIEZpbGUKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVB5dGhvbi5GaWxlXHNoZWxsXG9wZW5cY29tbWFuZAotICBOZXcgVmFsdWU9JU1BSU5ESVIlXHB5dGhvbi5leGUgIiUlMSIgJSUqCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1QeXRob24uRmlsZVxEZWZhdWx0SWNvbgotICBOZXcgVmFsdWU9JU1BSU5ESVIlXFB5LmljbwotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVB5dGhvbi5Ob0NvbkZpbGUKLSAgTmV3IFZhbHVlPVB5dGhvbiBGaWxlIChubyBjb25zb2xlKQotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9UHl0aG9uLk5vQ29uRmlsZVxzaGVsbFxvcGVuXGNvbW1hbmQKLSAgTmV3IFZhbHVlPSVNQUlORElSJVxweXRob253LmV4ZSAiJSUxIiAlJSoKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVB5dGhvbi5Ob0NvbkZpbGVcRGVmYXVsdEljb24KLSAgTmV3IFZhbHVlPSVNQUlORElSJVxQeS5pY28KLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1QeXRob24uQ29tcGlsZWRGaWxlCi0gIE5ldyBWYWx1ZT1Db21waWxlZCBQeXRob24gRmlsZQotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9UHl0aG9uLkNvbXBpbGVkRmlsZVxzaGVsbFxvcGVuXGNvbW1hbmQKLSAgTmV3IFZhbHVlPSVNQUlORElSJVxweXRob24uZXhlICIlJTEiICUlKgotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9UHl0aG9uLkNvbXBpbGVkRmlsZVxEZWZhdWx0SWNvbgotICBOZXcgVmFsdWU9JU1BSU5ESVIlXHB5Yy5pY28KLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUZpbGUgZXh0ZW5zaW9ucy4KLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PS5weQotICBOZXcgVmFsdWU9UHl0aG9uLkZpbGUKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PS5weQotICBOZXcgVmFsdWU9dGV4dC9wbGFpbgotICBWYWx1ZSBOYW1lPUNvbnRlbnQgVHlwZQotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PS5weXcKLSAgTmV3IFZhbHVlPVB5dGhvbi5Ob0NvbkZpbGUKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PS5weXcKLSAgTmV3IFZhbHVlPXRleHQvcGxhaW4KLSAgVmFsdWUgTmFtZT1Db250ZW50IFR5cGUKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT0ucHljCi0gIE5ldyBWYWx1ZT1QeXRob24uQ29tcGlsZWRGaWxlCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT0ucHlvCi0gIE5ldyBWYWx1ZT1QeXRob24uQ29tcGlsZWRGaWxlCi1lbmQKLWl0ZW06IEVsc2UgU3RhdGVtZW50Ci1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUZpbGUgdHlwZXMuCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxDTEFTU0VTXFB5dGhvbi5GaWxlCi0gIE5ldyBWYWx1ZT1QeXRob24gRmlsZQotICBSb290PTEKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVNvZnR3YXJlXENMQVNTRVNcUHl0aG9uLkZpbGVcc2hlbGxcb3Blblxjb21tYW5kCi0gIE5ldyBWYWx1ZT0lTUFJTkRJUiVccHl0aG9uLmV4ZSAiJSUxIiAlJSoKLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxDTEFTU0VTXFB5dGhvbi5GaWxlXERlZmF1bHRJY29uCi0gIE5ldyBWYWx1ZT0lTUFJTkRJUiVcUHkuaWNvCi0gIFJvb3Q9MQotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVNvZnR3YXJlXENMQVNTRVNcUHl0aG9uLk5vQ29uRmlsZQotICBOZXcgVmFsdWU9UHl0aG9uIEZpbGUgKG5vIGNvbnNvbGUpCi0gIFJvb3Q9MQotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9U29mdHdhcmVcQ0xBU1NFU1xQeXRob24uTm9Db25GaWxlXHNoZWxsXG9wZW5cY29tbWFuZAotICBOZXcgVmFsdWU9JU1BSU5ESVIlXHB5dGhvbncuZXhlICIlJTEiICUlKgotICBSb290PTEKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVNvZnR3YXJlXENMQVNTRVNcUHl0aG9uLk5vQ29uRmlsZVxEZWZhdWx0SWNvbgotICBOZXcgVmFsdWU9JU1BSU5ESVIlXFB5LmljbwotICBSb290PTEKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxDTEFTU0VTXFB5dGhvbi5Db21waWxlZEZpbGUKLSAgTmV3IFZhbHVlPUNvbXBpbGVkIFB5dGhvbiBGaWxlCi0gIFJvb3Q9MQotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9U29mdHdhcmVcQ0xBU1NFU1xQeXRob24uQ29tcGlsZWRGaWxlXHNoZWxsXG9wZW5cY29tbWFuZAotICBOZXcgVmFsdWU9JU1BSU5ESVIlXHB5dGhvbi5leGUgIiUlMSIgJSUqCi0gIFJvb3Q9MQotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9U29mdHdhcmVcQ0xBU1NFU1xQeXRob24uQ29tcGlsZWRGaWxlXERlZmF1bHRJY29uCi0gIE5ldyBWYWx1ZT0lTUFJTkRJUiVccHljLmljbwotICBSb290PTEKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUZpbGUgZXh0ZW5zaW9ucy4KLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVNvZnR3YXJlXENMQVNTRVNcLnB5Ci0gIE5ldyBWYWx1ZT1QeXRob24uRmlsZQotICBSb290PTEKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVNvZnR3YXJlXENMQVNTRVNcLnB5Ci0gIE5ldyBWYWx1ZT10ZXh0L3BsYWluCi0gIFZhbHVlIE5hbWU9Q29udGVudCBUeXBlCi0gIFJvb3Q9MQotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVNvZnR3YXJlXENMQVNTRVNcLnB5dwotICBOZXcgVmFsdWU9UHl0aG9uLk5vQ29uRmlsZQotICBSb290PTEKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVNvZnR3YXJlXENMQVNTRVNcLnB5dwotICBOZXcgVmFsdWU9dGV4dC9wbGFpbgotICBWYWx1ZSBOYW1lPUNvbnRlbnQgVHlwZQotICBSb290PTEKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxDTEFTU0VTXC5weWMKLSAgTmV3IFZhbHVlPVB5dGhvbi5Db21waWxlZEZpbGUKLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxDTEFTU0VTXC5weW8KLSAgTmV3IFZhbHVlPVB5dGhvbi5Db21waWxlZEZpbGUKLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9SWYgd2UncmUgaW5zdGFsbGluZyBJRExFLCBhbHNvIHNldCBhbiBFZGl0IGNvbnRleHQgbWVudSBhY3Rpb24gdG8gdXNlIElETEUsIGZvciAucHkgYW5kIC5weXcgZmlsZXMuCi1lbmQKLWl0ZW06IElmL1doaWxlIFN0YXRlbWVudAotICBWYXJpYWJsZT1DT01QT05FTlRTCi0gIFZhbHVlPUIKLSAgRmxhZ3M9MDAwMDAwMTAKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPVVTRV9IS0NSCi0gIFZhbHVlPTEKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVB5dGhvbi5Ob0NvbkZpbGVcc2hlbGxcRWRpdCB3aXRoIElETEVcY29tbWFuZAotICBOZXcgVmFsdWU9JU1BSU5ESVIlXHB5dGhvbncuZXhlICVNQUlORElSJVxMaWJcaWRsZWxpYlxpZGxlLnB5dyAtbiAtZSAiJSUxIgotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9UHl0aG9uLkZpbGVcc2hlbGxcRWRpdCB3aXRoIElETEVcY29tbWFuZAotICBOZXcgVmFsdWU9JU1BSU5ESVIlXHB5dGhvbncuZXhlICVNQUlORElSJVxMaWJcaWRsZWxpYlxpZGxlLnB5dyAtbiAtZSAiJSUxIgotZW5kCi1pdGVtOiBFbHNlIFN0YXRlbWVudAotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9U29mdHdhcmVcQ0xBU1NFU1xQeXRob24uTm9Db25GaWxlXHNoZWxsXEVkaXQgd2l0aCBJRExFXGNvbW1hbmQKLSAgTmV3IFZhbHVlPSVNQUlORElSJVxweXRob253LmV4ZSAlTUFJTkRJUiVcTGliXGlkbGVsaWJcaWRsZS5weXcgLW4gLWUgIiUlMSIKLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxDTEFTU0VTXFB5dGhvbi5GaWxlXHNoZWxsXEVkaXQgd2l0aCBJRExFXGNvbW1hbmQKLSAgTmV3IFZhbHVlPSVNQUlORElSJVxweXRob253LmV4ZSAlTUFJTkRJUiVcTGliXGlkbGVsaWJcaWRsZS5weXcgLW4gLWUgIiUlMSIKLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1SZWdpc3RlciBQeXRob24gcGF0aHMuCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PVdyaXRlIHRvIEhLTE0gZm9yIGFkbWluLCBlbHNlIEhLQ1UuICBLZWVwIHRoZXNlIGJsb2NrcyBvdGhlcndpc2UgaWRlbnRpY2FsIQotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9RE9BRE1JTgotICBWYWx1ZT0xCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxQeXRob25cUHl0aG9uQ29yZVxDdXJyZW50VmVyc2lvbgotICBSb290PTEzMAotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9U29mdHdhcmVcUHl0aG9uXFB5dGhvbkNvcmVcJVBZX1ZFUlNJT04lXEluc3RhbGxQYXRoCi0gIE5ldyBWYWx1ZT0lTUFJTkRJUiUKLSAgUm9vdD0yCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxQeXRob25cUHl0aG9uQ29yZVwlUFlfVkVSU0lPTiVcSW5zdGFsbFBhdGhcSW5zdGFsbEdyb3VwCi0gIE5ldyBWYWx1ZT0lQ0dST1VQX1NBVkUlCi0gIE5ldyBWYWx1ZT0KLSAgUm9vdD0yCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxQeXRob25cUHl0aG9uQ29yZVwlUFlfVkVSU0lPTiVcUHl0aG9uUGF0aAotICBOZXcgVmFsdWU9JU1BSU5ESVIlXExpYjslTUFJTkRJUiVcRExMcwotICBOZXcgVmFsdWU9Ci0gIFJvb3Q9MgotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9U29mdHdhcmVcUHl0aG9uXFB5dGhvbkNvcmVcJVBZX1ZFUlNJT04lXE1vZHVsZXMKLSAgUm9vdD0yCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxBcHAgUGF0aHNcUHl0aG9uLmV4ZQotICBOZXcgVmFsdWU9JU1BSU5ESVIlXFB5dGhvbi5leGUKLSAgUm9vdD0yCi1lbmQKLWl0ZW06IEVsc2UgU3RhdGVtZW50Ci1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxQeXRob25cUHl0aG9uQ29yZVxDdXJyZW50VmVyc2lvbgotICBSb290PTEyOQotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9U29mdHdhcmVcUHl0aG9uXFB5dGhvbkNvcmVcJVBZX1ZFUlNJT04lXEluc3RhbGxQYXRoCi0gIE5ldyBWYWx1ZT0lTUFJTkRJUiUKLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxQeXRob25cUHl0aG9uQ29yZVwlUFlfVkVSU0lPTiVcSW5zdGFsbFBhdGhcSW5zdGFsbEdyb3VwCi0gIE5ldyBWYWx1ZT0lQ0dST1VQX1NBVkUlCi0gIE5ldyBWYWx1ZT0KLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxQeXRob25cUHl0aG9uQ29yZVwlUFlfVkVSU0lPTiVcUHl0aG9uUGF0aAotICBOZXcgVmFsdWU9JU1BSU5ESVIlXExpYjslTUFJTkRJUiVcRExMcwotICBOZXcgVmFsdWU9Ci0gIFJvb3Q9MQotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9U29mdHdhcmVcUHl0aG9uXFB5dGhvbkNvcmVcJVBZX1ZFUlNJT04lXE1vZHVsZXMKLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxBcHAgUGF0aHNcUHl0aG9uLmV4ZQotICBOZXcgVmFsdWU9JU1BSU5ESVIlXFB5dGhvbi5leGUKLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PVJlZ2lzdHJ5IGZpZGRsaW5nIGZvciBkb2NzLgotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1Xcml0ZSB0byBIS0xNIGZvciBhZG1pbiwgZWxzZSBIS0NVLiAgS2VlcCB0aGVzZSBibG9ja3Mgb3RoZXJ3aXNlIGlkZW50aWNhbCEKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPUNPTVBPTkVOVFMKLSAgVmFsdWU9QwotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9RE9BRE1JTgotICBWYWx1ZT0xCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxQeXRob25cUHl0aG9uQ29yZVwlUFlfVkVSU0lPTiVcSGVscFxNYWluIFB5dGhvbiBEb2N1bWVudGF0aW9uCi0gIE5ldyBWYWx1ZT0lTUFJTkRJUiVcRG9jXGluZGV4Lmh0bWwKLSAgUm9vdD0yCi1lbmQKLWl0ZW06IEVsc2UgU3RhdGVtZW50Ci1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxQeXRob25cUHl0aG9uQ29yZVwlUFlfVkVSU0lPTiVcSGVscFxNYWluIFB5dGhvbiBEb2N1bWVudGF0aW9uCi0gIE5ldyBWYWx1ZT0lTUFJTkRJUiVcRG9jXGluZGV4Lmh0bWwKLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PVNldCB0aGUgYXBwIHB1Ymxpc2hlciBhbmQgVVJMIGVudHJpZXMgZm9yIFdpbjJLIGFkZC9yZW1vdmUuCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUl0IGRvZXNuJ3QgaHVydCBvbiBvdGhlciBzeXN0ZW1zLgotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1BcyB1c3VhbCwgd3JpdGUgdG8gSEtMTSBvciBIS0NVIGRlcGVuZGluZyBvbiBBZG1pbiBwcml2cy4KLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9Q0FVVElPTjogIElmIHlvdSBzZXQgdGhpcyBpbmZvIG9uIHRoZSAiV2luZG93cyAyMDAwIiBwYWdlIChzdGVwIDYpIG9mIHRoZQotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1JbnN0YWxsYXRpb24gRXhwZXJ0LCBpdCBvbmx5IHNob3dzIHVwIGluIHRoZSAiSWYiIGJsb2NrIGJlbG93LiAgS2VlcCBpbiBzeW5jaCEKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPURPQURNSU4KLSAgVmFsdWU9MQotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9U29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cVW5pbnN0YWxsXCVBUFBUSVRMRSUKLSAgTmV3IFZhbHVlPWh0dHA6Ly93d3cucHl0aG9uLm9yZy8KLSAgVmFsdWUgTmFtZT1IZWxwTGluawotICBSb290PTIKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVNvZnR3YXJlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVuaW5zdGFsbFwlQVBQVElUTEUlCi0gIE5ldyBWYWx1ZT1QeXRob25MYWJzIGF0IFpvcGUgQ29ycG9yYXRpb24KLSAgVmFsdWUgTmFtZT1QdWJsaXNoZXIKLSAgUm9vdD0yCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxVbmluc3RhbGxcJUFQUFRJVExFJQotICBOZXcgVmFsdWU9aHR0cDovL3d3dy5weXRob24ub3JnLwotICBWYWx1ZSBOYW1lPVVSTEluZm9BYm91dAotICBSb290PTIKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVNvZnR3YXJlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVuaW5zdGFsbFwlQVBQVElUTEUlCi0gIE5ldyBWYWx1ZT0lUFlWRVJfU1RSSU5HJQotICBWYWx1ZSBOYW1lPURpc3BsYXlWZXJzaW9uCi0gIFJvb3Q9MgotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9U29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cVW5pbnN0YWxsXCVBUFBUSVRMRSUKLSAgTmV3IFZhbHVlPSVNQUlORElSJVxweS5pY28sLTAKLSAgVmFsdWUgTmFtZT1EaXNwbGF5SWNvbgotICBSb290PTIKLWVuZAotaXRlbTogRWxzZSBTdGF0ZW1lbnQKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVNvZnR3YXJlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVuaW5zdGFsbFwlQVBQVElUTEUlCi0gIE5ldyBWYWx1ZT1odHRwOi8vd3d3LnB5dGhvbi5vcmcvCi0gIFZhbHVlIE5hbWU9SGVscExpbmsKLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxVbmluc3RhbGxcJUFQUFRJVExFJQotICBOZXcgVmFsdWU9UHl0aG9uTGFicyBhdCBab3BlIENvcnBvcmF0aW9uCi0gIFZhbHVlIE5hbWU9UHVibGlzaGVyCi0gIFJvb3Q9MQotZW5kCi1pdGVtOiBFZGl0IFJlZ2lzdHJ5Ci0gIFRvdGFsIEtleXM9MQotICBLZXk9U29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cVW5pbnN0YWxsXCVBUFBUSVRMRSUKLSAgTmV3IFZhbHVlPWh0dHA6Ly93d3cucHl0aG9uLm9yZy8KLSAgVmFsdWUgTmFtZT1VUkxJbmZvQWJvdXQKLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVkaXQgUmVnaXN0cnkKLSAgVG90YWwgS2V5cz0xCi0gIEtleT1Tb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxVbmluc3RhbGxcJUFQUFRJVExFJQotICBOZXcgVmFsdWU9JVBZVkVSX1NUUklORyUKLSAgVmFsdWUgTmFtZT1EaXNwbGF5VmVyc2lvbgotICBSb290PTEKLWVuZAotaXRlbTogRWRpdCBSZWdpc3RyeQotICBUb3RhbCBLZXlzPTEKLSAgS2V5PVNvZnR3YXJlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVuaW5zdGFsbFwlQVBQVElUTEUlCi0gIE5ldyBWYWx1ZT0lTUFJTkRJUiVccHkuaWNvLC0wCi0gIFZhbHVlIE5hbWU9RGlzcGxheUljb24KLSAgUm9vdD0xCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogUmVtYXJrCi0gIFRleHQ9UG9wdWxhdGUgU3RhcnQgTWVudSBncm91cAotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9VEFTS1MKLSAgVmFsdWU9QgotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBSZW1hcmsKLSAgVGV4dD1TaG9ydGN1dCB0byBpbnN0YWxsZXIgbm8gbWF0dGVyIHdoYXQuCi1lbmQKLWl0ZW06IENyZWF0ZSBTaG9ydGN1dAotICBTb3VyY2U9JU1BSU5ESVIlXHVud2lzZS5leGUKLSAgRGVzdGluYXRpb249JUdST1VQJVxVbmluc3RhbGwgUHl0aG9uLmxuawotICBXb3JraW5nIERpcmVjdG9yeT0lTUFJTkRJUiUKLSAgS2V5IFR5cGU9MTUzNgotICBGbGFncz0wMDAwMDAwMQotZW5kCi1pdGVtOiBSZW1hcmsKLWVuZAotaXRlbTogSWYvV2hpbGUgU3RhdGVtZW50Ci0gIFZhcmlhYmxlPUNPTVBPTkVOVFMKLSAgVmFsdWU9QQotICBGbGFncz0wMDAwMDAxMAotZW5kCi1pdGVtOiBDcmVhdGUgU2hvcnRjdXQKLSAgU291cmNlPSVNQUlORElSJVxweXRob24uZXhlCi0gIERlc3RpbmF0aW9uPSVHUk9VUCVcUHl0aG9uIChjb21tYW5kIGxpbmUpLmxuawotICBXb3JraW5nIERpcmVjdG9yeT0lTUFJTkRJUiUKLSAgSWNvbiBQYXRobmFtZT0lTUFJTkRJUiVccHljb24uaWNvCi0gIEtleSBUeXBlPTE1MzYKLSAgRmxhZ3M9MDAwMDAwMDEKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9Q09NUE9ORU5UUwotICBWYWx1ZT1CCi0gIEZsYWdzPTAwMDAwMDEwCi1lbmQKLWl0ZW06IENyZWF0ZSBTaG9ydGN1dAotICBTb3VyY2U9JU1BSU5ESVIlXHB5dGhvbncuZXhlCi0gIERlc3RpbmF0aW9uPSVHUk9VUCVcSURMRSAoUHl0aG9uIEdVSSkubG5rCi0gIENvbW1hbmQgT3B0aW9ucz0iJU1BSU5ESVIlXExpYlxpZGxlbGliXGlkbGUucHl3IgotICBXb3JraW5nIERpcmVjdG9yeT0lTUFJTkRJUiUKLSAgS2V5IFR5cGU9MTUzNgotICBGbGFncz0wMDAwMDAwMQotZW5kCi1pdGVtOiBDcmVhdGUgU2hvcnRjdXQKLSAgU291cmNlPSVNQUlORElSJVxweXRob253LmV4ZQotICBEZXN0aW5hdGlvbj0lR1JPVVAlXE1vZHVsZSBEb2NzLmxuawotICBDb21tYW5kIE9wdGlvbnM9IiVNQUlORElSJVxUb29sc1xTY3JpcHRzXHB5ZG9jZ3VpLnB5dyIKLSAgV29ya2luZyBEaXJlY3Rvcnk9JU1BSU5ESVIlCi0gIEtleSBUeXBlPTE1MzYKLSAgRmxhZ3M9MDAwMDAwMDEKLWVuZAotaXRlbTogRW5kIEJsb2NrCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBJZi9XaGlsZSBTdGF0ZW1lbnQKLSAgVmFyaWFibGU9Q09NUE9ORU5UUwotICBWYWx1ZT1DCi0gIEZsYWdzPTAwMDAwMDEwCi1lbmQKLWl0ZW06IENyZWF0ZSBTaG9ydGN1dAotICBTb3VyY2U9JU1BSU5ESVIlXERvY1xpbmRleC5odG1sCi0gIERlc3RpbmF0aW9uPSVHUk9VUCVcUHl0aG9uIE1hbnVhbHMubG5rCi0gIFdvcmtpbmcgRGlyZWN0b3J5PSVNQUlORElSJQotICBLZXkgVHlwZT0xNTM2Ci0gIEZsYWdzPTAwMDAwMDAxCi1lbmQKLWl0ZW06IEVuZCBCbG9jawotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogUmVtYXJrCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PUkgZG9uJ3QgdGhpbmsgd2UgbmVlZCB0aGlzLCBidXQgaGF2ZSBhbHdheXMgZG9uZSBpdC4KLWVuZAotaXRlbTogU2VsZi1SZWdpc3RlciBPQ1hzL0RMTHMKLSAgRGVzY3JpcHRpb249VXBkYXRpbmcgU3lzdGVtIENvbmZpZ3VyYXRpb24sIFBsZWFzZSBXYWl0Li4uCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1yZW1hcmtlZCBpdGVtOiBSZW1hcmsKLSAgVGV4dD1Eb24ndCBlbmFibGUgIkRlbGV0ZSBpbi11c2UgZmlsZXMiLiAgSGVyZSdzIHdoYXQgaGFwcGVuczoKLWVuZAotcmVtYXJrZWQgaXRlbTogUmVtYXJrCi0gIFRleHQ9SW5zdGFsbCBQeXRob247IHVuaW5zdGFsbCBQeXRob247IGluc3RhbGwgUHl0aG9uIGFnYWluLiAgUmVib290IHRoZSBtYWNoaW5lLgotZW5kCi1yZW1hcmtlZCBpdGVtOiBSZW1hcmsKLSAgVGV4dD1Ob3cgVU5XSVNFLkVYRSBpcyBtaXNzaW5nLiAgSSB0aGluayB0aGlzIGlzIGEgV2lzZSBidWcsIGJ1dCBzbyBpdCBnb2VzLgotZW5kCi1yZW1hcmtlZCBpdGVtOiBBZGQgVGV4dCB0byBJTlNUQUxMLkxPRwotICBUZXh0PURlbGV0ZSBpbi11c2UgZmlsZXM6IE9uCi1lbmQKLWl0ZW06IFJlbWFyawotZW5kCi1pdGVtOiBXaXphcmQgQmxvY2sKLSAgRGlyZWN0aW9uIFZhcmlhYmxlPURJUkVDVElPTgotICBEaXNwbGF5IFZhcmlhYmxlPURJU1BMQVkKLSAgQml0bWFwIFBhdGhuYW1lPS5caW5zdGFsbGVyLmJtcAotICBYIFBvc2l0aW9uPTkKLSAgWSBQb3NpdGlvbj0xMAotICBGaWxsZXIgQ29sb3I9MTExNzM3NTkKLSAgRmxhZ3M9MDAwMDAwMTEKLWVuZAotaXRlbTogQ3VzdG9tIERpYWxvZyBTZXQKLSAgTmFtZT1GaW5pc2hlZAotICBEaXNwbGF5IFZhcmlhYmxlPURJU1BMQVkKLSAgaXRlbTogRGlhbG9nCi0gICAgVGl0bGU9JUFQUFRJVExFJSBJbnN0YWxsYXRpb24KLSAgICBUaXRsZSBGcmVuY2g9SW5zdGFsbGF0aW9uIGRlICVBUFBUSVRMRSUKLSAgICBUaXRsZSBHZXJtYW49SW5zdGFsbGF0aW9uIHZvbiAlQVBQVElUTEUlCi0gICAgVGl0bGUgU3BhbmlzaD1JbnN0YWxhY2nzbiBkZSAlQVBQVElUTEUlCi0gICAgVGl0bGUgSXRhbGlhbj1JbnN0YWxsYXppb25lIGRpICVBUFBUSVRMRSUKLSAgICBXaWR0aD0zMzkKLSAgICBIZWlnaHQ9MjgwCi0gICAgRm9udCBOYW1lPUhlbHYKLSAgICBGb250IFNpemU9OAotICAgIGl0ZW06IFB1c2ggQnV0dG9uCi0gICAgICBSZWN0YW5nbGU9MTg4IDIzNCAyNDQgMjUzCi0gICAgICBWYXJpYWJsZT1ESVJFQ1RJT04KLSAgICAgIFZhbHVlPU4KLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMQotICAgICAgVGV4dD0mRmluaXNoCi0gICAgICBUZXh0IEZyZW5jaD0mRmluCi0gICAgICBUZXh0IEdlcm1hbj0mV2VpdGVyCi0gICAgICBUZXh0IFNwYW5pc2g9JlRlcm1pbmFyCi0gICAgICBUZXh0IEl0YWxpYW49JkZpbmUKLSAgICBlbmQKLSAgICBpdGVtOiBQdXNoIEJ1dHRvbgotICAgICAgUmVjdGFuZ2xlPTI2NCAyMzQgMzIwIDI1MwotICAgICAgVmFyaWFibGU9RElTQUJMRUQKLSAgICAgIFZhbHVlPSEKLSAgICAgIEFjdGlvbj0zCi0gICAgICBDcmVhdGUgRmxhZ3M9MDEwMTAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDAKLSAgICAgIFRleHQ9JkNhbmNlbAotICAgICAgVGV4dCBGcmVuY2g9JkFubnVsZXIKLSAgICAgIFRleHQgR2VybWFuPSZBYmJyZWNoZW4KLSAgICAgIFRleHQgU3BhbmlzaD0mQ2FuY2VsYXIKLSAgICAgIFRleHQgSXRhbGlhbj0mQW5udWxsYQotICAgIGVuZAotICAgIGl0ZW06IFN0YXRpYwotICAgICAgUmVjdGFuZ2xlPTEwOCAxMCAzMjMgNDgKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotICAgICAgRmxhZ3M9MDAwMDAwMDAwMDAwMDAwMQotICAgICAgTmFtZT1UaW1lcyBOZXcgUm9tYW4KLSAgICAgIEZvbnQgU3R5bGU9LTI0IDAgMCAwIDcwMCAyNTUgMCAwIDAgMyAyIDEgMTgKLSAgICAgIFRleHQ9SW5zdGFsbGF0aW9uIENvbXBsZXRlZCEKLSAgICAgIFRleHQgRnJlbmNoPUluc3RhbGxhdGlvbiB0ZXJtaW7pZSAhCi0gICAgICBUZXh0IEdlcm1hbj1EaWUgSW5zdGFsbGF0aW9uIGlzdCBhYmdlc2NobG9zc2VuIQotICAgICAgVGV4dCBTcGFuaXNoPaFJbnN0YWxhY2nzbiB0ZXJtaW5hZGEhCi0gICAgICBUZXh0IEl0YWxpYW49SW5zdGFsbGF6aW9uZSBjb21wbGV0YXRhIQotICAgIGVuZAotICAgIGl0ZW06IFN0YXRpYwotICAgICAgUmVjdGFuZ2xlPTEwOCA0NCAzMjAgODIKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotICAgICAgVGV4dD0lQVBQVElUTEUlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBpbnN0YWxsZWQuCi0gICAgICBUZXh0PQotICAgICAgVGV4dD1QcmVzcyB0aGUgRmluaXNoIGJ1dHRvbiB0byBleGl0IHRoaXMgaW5zdGFsbGF0aW9uLgotICAgICAgVGV4dCBGcmVuY2g9JUFQUFRJVExFJSBlc3QgbWFpbnRlbmFudCBpbnN0YWxs6S4KLSAgICAgIFRleHQgRnJlbmNoPQotICAgICAgVGV4dCBGcmVuY2g9Q2xpcXVleiBzdXIgbGUgYm91dG9uIEZpbiBwb3VyIHF1aXR0ZXIgbCdpbnN0YWxsYXRpb24uCi0gICAgICBUZXh0IEdlcm1hbj0lQVBQVElUTEUlIHd1cmRlIGVyZm9sZ3JlaWNoIGluc3RhbGxpZXJ0LgotICAgICAgVGV4dCBHZXJtYW49Ci0gICAgICBUZXh0IEdlcm1hbj1LbGlja2VuIFNpZSBhdWYgIldlaXRlciIsIHVtIGRpZSBJbnN0YWxsYXRpb24genUgYmVlbmRlbi4KLSAgICAgIFRleHQgU3BhbmlzaD0lQVBQVElUTEUlIHNlIGhhIGluc3RhbGFkbyBjb24g6XhpdG8uCi0gICAgICBUZXh0IFNwYW5pc2g9Ci0gICAgICBUZXh0IFNwYW5pc2g9UHJlc2lvbmUgZWwgYm90824gVGVybWluYXIgcGFyYSBzYWxpciBkZSBlc3RhIGluc3RhbGFjafNuLgotICAgICAgVGV4dCBJdGFsaWFuPUwnaW5zdGFsbGF6aW9uZSAlQVBQVElUTEUlIOggc3RhdGEgcG9ydGF0YSBhIHRlcm1pbmUgY29uIHN1Y2Nlc3NvLgotICAgICAgVGV4dCBJdGFsaWFuPQotICAgICAgVGV4dCBJdGFsaWFuPVByZW1lcmUgaWwgcHVsc2FudGUgRmluZSBwZXIgdXNjaXJlIGRhbGwnaW5zdGFsbGF6aW9uZS4KLSAgICBlbmQKLSAgICBpdGVtOiBTdGF0aWMKLSAgICAgIFJlY3RhbmdsZT0xMCAyMjUgMzIwIDIyNgotICAgICAgQWN0aW9uPTMKLSAgICAgIENyZWF0ZSBGbGFncz0wMTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExMQotICAgIGVuZAotICAgIGl0ZW06IFN0YXRpYwotICAgICAgUmVjdGFuZ2xlPTEwNiAxMDUgMzEyIDIxMAotICAgICAgRW5hYmxlZCBDb2xvcj0wMDAwMDAwMDAwMDAwMDAwMTExMTExMTExMTExMTExMQotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0gICAgICBUZXh0PVNwZWNpYWwgV2luZG93cyB0aGFua3MgdG86Ci0gICAgICBUZXh0PQotICAgICAgVGV4dD1XaXNlIFNvbHV0aW9ucywgZm9yIHRoZSB1c2Ugb2YgSW5zdGFsbE1hc3RlciA4LjEuCi0gICAgICBUZXh0PSAgICBodHRwOi8vd3d3Lndpc2Vzb2x1dGlvbnMuY29tLwotICAgICAgVGV4dD0KLSAgICAgIFRleHQ9Ci0gICAgICBUZXh0PUxldHRFcnJvciwgRXJpayB2YW4gQmxva2xhbmQsIGZvciB0aGUgUHl0aG9uIGZvciBXaW5kb3dzIGdyYXBoaWMuCi0gICAgICBUZXh0PSAgICBodHRwOi8vd3d3LmxldHRlcnJvci5jb20vCi0gICAgICBUZXh0PQotICAgICAgVGV4dD0KLSAgICAgIFRleHQ9TWFyayBIYW1tb25kLCB3aXRob3V0IHdob3NlIHllYXJzIG9mIGZyZWVseSBzaGFyZWQgV2luZG93cyBleHBlcnRpc2UsIFB5dGhvbiBmb3IgV2luZG93cyB3b3VsZCBzdGlsbCBiZSBQeXRob24gZm9yIERPUy4KLSAgICBlbmQKLSAgICBpdGVtOiBTdGF0aWMKLSAgICAgIFJlY3RhbmdsZT0xMDYgOTUgMzEyIDk2Ci0gICAgICBBY3Rpb249MwotICAgICAgRW5hYmxlZCBDb2xvcj0wMDAwMDAwMDAwMDAwMDAwMTExMTExMTExMTExMTExMQotICAgICAgQ3JlYXRlIEZsYWdzPTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAxCi0gICAgZW5kCi0gIGVuZAotZW5kCi1pdGVtOiBFbmQgQmxvY2sKLWVuZAotaXRlbTogTmV3IEV2ZW50Ci0gIE5hbWU9Q2FuY2VsCi1lbmQKLWl0ZW06IFJlbWFyawotICBUZXh0PVRoaXMgaW5jbHVkZSBzY3JpcHQgc3VwcG9ydHMgYSByb2xsYmFjayB0byBwcmVpbnN0YWxsYXRpb24gc3RhdGUgaWYgdGhlIHVzZXIgY2hvb3NlcyB0byBjYW5jZWwgYmVmb3JlIHRoZSBpbnN0YWxsYXRpb24gaXMgY29tcGxldGUuCi1lbmQKLWl0ZW06IEluY2x1ZGUgU2NyaXB0Ci0gIFBhdGhuYW1lPSVfV0lTRV8lXElOQ0xVREVccm9sbGJhY2sud3NlCi1lbmQKZGlmZiAtLWdpdCBhL1BDL1ZTNy4xL3B5dGhvbmNvcmUudmNwcm9qIGIvUEMvVlM3LjEvcHl0aG9uY29yZS52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1YzQxODQuLjAwMDAwMDAKLS0tIGEvUEMvVlM3LjEvcHl0aG9uY29yZS52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSw4MjYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjcuMTAiDQotCU5hbWU9InB5dGhvbmNvcmUiDQotCVByb2plY3RHVUlEPSJ7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTMwfSINCi0JUm9vdE5hbWVzcGFjZT0icHl0aG9uY29yZSINCi0JU2NjUHJvamVjdE5hbWU9InB5dGhvbmNvcmUiDQotCVNjY0xvY2FsUGF0aD0iLi4iPg0KLQk8UGxhdGZvcm1zPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0iV2luMzIiLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxDb25maWd1cmF0aW9ucz4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii5cLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5ceDg2LXRlbXAtcmVsZWFzZVxweXRob25jb3JlIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9Ii9abTIwMCAiDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtOREVCVUc7V0lOMzI7X1dJTkRPV1M7VVNFX0RMX0VYUE9SVCINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJnZXRidWlsZGluZm8ubyINCi0JCQkJT3V0cHV0RmlsZT0iLi9weXRob24zMy5kbGwiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJsaWJjIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9weXRob24zMy5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUwMDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9weXRob24zMy5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCQlEZXNjcmlwdGlvbj0iZ2VuZXJhdGUgYnVpbGRpbmZvIg0KLQkJCQlDb21tYW5kTGluZT0ibWFrZV9idWlsZGluZm8uZXhlICQoQ29uZmlndXJhdGlvbk5hbWUpIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii5cLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5ceDg2LXRlbXAtZGVidWdccHl0aG9uY29yZSINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvWm0yMDAgIg0KLQkJCQlPcHRpbWl6YXRpb249IjAiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtfREVCVUc7VVNFX0RMX0VYUE9SVDtXSU4zMjtfV0lORE9XUyINCi0JCQkJUnVudGltZUxpYnJhcnk9IjMiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9ImdldGJ1aWxkaW5mby5vIg0KLQkJCQlPdXRwdXRGaWxlPSIuL3B5dGhvbjMzX2QuZGxsIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJSWdub3JlRGVmYXVsdExpYnJhcnlOYW1lcz0ibGliYyINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vcHl0aG9uMzNfZC5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUwMDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9weXRob24zM19kLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJCURlc2NyaXB0aW9uPSJnZW5lcmF0ZSBidWlsZGluZm8iDQotCQkJCUNvbW1hbmRMaW5lPSJtYWtlX2J1aWxkaW5mby5leGUgJChDb25maWd1cmF0aW9uTmFtZSkiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0RFQlVHIg0KLQkJCQlDdWx0dXJlPSIxMDMzIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2VJdGFuaXVtfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLi8uIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlxpYTY0LXRlbXAtcmVsZWFzZVxweXRob25jb3JlIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvVVNFQ0w6TVNfSVRBTklVTSAvR1MtIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7TkRFQlVHO1dJTjMyO19XSU5ET1dTO1VTRV9ETF9FWFBPUlQiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMCINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUJ1ZmZlclNlY3VyaXR5Q2hlY2s9IkZBTFNFIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOklBNjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJnZXRidWlsZGluZm8ubyINCi0JCQkJT3V0cHV0RmlsZT0iLi9weXRob24zMy5kbGwiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJGQUxTRSINCi0JCQkJSWdub3JlRGVmYXVsdExpYnJhcnlOYW1lcz0ibGliYyINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vcHl0aG9uMzMucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMDAwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vcHl0aG9uMzMubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJRGVzY3JpcHRpb249ImdlbmVyYXRlIGJ1aWxkaW5mbyINCi0JCQkJQ29tbWFuZExpbmU9Im1ha2VfYnVpbGRpbmZvLmV4ZSAkKENvbmZpZ3VyYXRpb25OYW1lKSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJOREVCVUciDQotCQkJCUN1bHR1cmU9IjEwMzMiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZUFNRDY0fFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLi8uIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlxhbWQ2NC10ZW1wLXJlbGVhc2VccHl0aG9uY29yZSINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvWm0yMDAgIC9VU0VDTDpNU19PUFRFUk9OIC9HUy0iDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtOREVCVUc7V0lOMzI7X1dJTkRPV1M7VVNFX0RMX0VYUE9SVCINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6QU1ENjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJnZXRidWlsZGluZm8ubyINCi0JCQkJT3V0cHV0RmlsZT0iLi9weXRob24zMy5kbGwiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJsaWJjIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9weXRob24zMy5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUwMDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9weXRob24zMy5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCQlEZXNjcmlwdGlvbj0iZ2VuZXJhdGUgYnVpbGRpbmZvIg0KLQkJCQlDb21tYW5kTGluZT0ibWFrZV9idWlsZGluZm8uZXhlICQoQ29uZmlndXJhdGlvbk5hbWUpIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsdGVyDQotCQkJTmFtZT0iX2lvIg0KLSAgICAgICAgICAgIEZpbHRlcj0iIj4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2lvXGZpbGVpby5jIj4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9pb1xieXRlc2lvLmMiPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2lvXHN0cmluZ2lvLmMiPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCSAgICBSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2lvXGJ1ZmZlcmVkaW8uYyI+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfaW9caW9iYXNlLmMiPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2lvXHRleHRpby5jIj4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9pb1xfaW9tb2R1bGUuYyI+DQotCQkJPC9GaWxlPg0KLQkJPC9GaWx0ZXI+DQotDQotCQk8RmlsdGVyDQotCQkJTmFtZT0iemxpYiINCi0JCQlGaWx0ZXI9IiI+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcYWRsZXIzMi5jIj4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcY29tcHJlc3MuYyI+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGNyYzMyLmMiPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxkZWZsYXRlLmMiPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxnemlvLmMiPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxpbmZiYWNrLmMiPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxpbmZmYXN0LmMiPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxpbmZsYXRlLmMiPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxpbmZ0cmVlcy5jIj4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcdHJlZXMuYyI+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXHVuY29tcHIuYyI+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGlibW9kdWxlLmMiPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcemxpYiIvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIj4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXHpsaWIiLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJSZWxlYXNlSXRhbml1bXxXaW4zMiI+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cTW9kdWxlc1x6bGliIi8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iUmVsZWFzZUFNRDY0fFdpbjMyIj4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXHpsaWIiLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcenV0aWwuYyI+DQotCQkJPC9GaWxlPg0KLQkJPC9GaWx0ZXI+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfYmlzZWN0bW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3NfY24uYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xjamtjb2RlY3NcX2NvZGVjc19oay5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX2lzbzIwMjIuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xjamtjb2RlY3NcX2NvZGVjc19qcC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX2tyLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3NfdHcuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY29kZWNzbW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2NvbGxlY3Rpb25zbW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2Nzdi5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9kYXRldGltZW1vZHVsZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9mdW5jdG9vbHNtb2R1bGUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfaGVhcHFtb2R1bGUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfanNvbi5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9sb2NhbGVtb2R1bGUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfbHNwcm9mLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX21hdGguYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfcGlja2xlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3JhbmRvbW1vZHVsZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcmUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3RydWN0LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBjXF9zdWJwcm9jZXNzLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3RpbWUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXF93YXJuaW5ncy5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF93ZWFrcmVmLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcYWJzdHJhY3QuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xhY2N1LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBhcnNlclxhY2NlbGVyLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcYXJyYXltb2R1bGUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGFzZGwuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGFzdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGF0ZXhpdG1vZHVsZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGF1ZGlvb3AuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xiaW5hc2NpaS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcYml0c2V0LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxibHRpbm1vZHVsZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGJvb2xvYmplY3QuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xieXRlc19tZXRob2RzLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcYnl0ZWFycmF5b2JqZWN0LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcYnl0ZXNvYmplY3QuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xjYXBzdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcY2VsbG9iamVjdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cY2V2YWwuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xjbGFzc29iamVjdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGNtYXRobW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxjb2RlY3MuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xjb2Rlb2JqZWN0LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxjb21waWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcY29tcGxleG9iamVjdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xjb25maWcuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGR5bmFtaWNfYW5ub3RhdGlvbnMuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xkZXNjcm9iamVjdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGRpY3RvYmplY3QuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcZGxfbnQuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGR0b2EuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGR5bmxvYWRfd2luLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcZW51bW9iamVjdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGVycm5vbW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxlcnJvcnMuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xleGNlcHRpb25zLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcZmlsZW9iamVjdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZmlsZXV0aWxzLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBhcnNlclxmaXJzdHNldHMuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xmbG9hdG9iamVjdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZm9ybWF0dGVyX3VuaWNvZGUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xmcmFtZW9iamVjdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZm9ybWF0dGVyX3VuaWNvZGUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGZyb3plbi5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGZ1bmNvYmplY3QuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGZ1dHVyZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGdjbW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcZ2Vub2JqZWN0LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxnZXRhcmdzLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxnZXRjb21waWxlci5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZ2V0Y29weXJpZ2h0LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxnZXRvcHQuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcZ2V0cGF0aHAuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGdldHBsYXRmb3JtLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxnZXR2ZXJzaW9uLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxncmFtaW5pdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcZ3JhbW1hci5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcZ3JhbW1hcjEuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGltcG9ydC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25caW1wb3J0ZGwuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xpdGVyb2JqZWN0LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcaXRlcnRvb2xzbW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBhcnNlclxsaXN0bm9kZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGxpc3RvYmplY3QuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xsb25nb2JqZWN0LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcbWFpbi5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cbWFyc2hhbC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXG1hdGhtb2R1bGUuYyI+DQotCQk8L0ZpbGU+DQotIAkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcbWQ1bW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBhcnNlclxtZXRhZ3JhbW1hci5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXG1lbW9yeW9iamVjdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXG1ldGhvZG9iamVjdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXG1tYXBtb2R1bGUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXG1vZHN1cHBvcnQuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xtb2R1bGVvYmplY3QuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcbXN2Y3J0bW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXG11bHRpYnl0ZWNvZGVjLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBhcnNlclxteXJlYWRsaW5lLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxteXNucHJpbnRmLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxteXN0cnRvdWwuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXG5vZGUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xvYmplY3QuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xvYm1hbGxvYy5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXG9wZXJhdG9yLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBhcnNlclxwYXJzZXIuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xwYXJzZXJtb2R1bGUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXHBhcnNldG9rLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxwZWVwaG9sZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHBvc2l4bW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxweWFyZW5hLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxweWN0eXBlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxweWZwZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25ccHltYXRoLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxweXN0YXRlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxweXN0cmNtcC5jIg0KLQkJCT4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25ccHlzdHJ0b2QuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHB5dGltZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cUHl0aG9uLWFzdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xweXRob25fbnQucmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxweXRob25ydW4uYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHJhbmRvbS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXHJhbmdlb2JqZWN0LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNccm90YXRpbmd0cmVlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcc2V0b2JqZWN0LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcc2hhMjU2bW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcc2hhNTEybW9kdWxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcc2hhMW1vZHVsZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHNpZ25hbG1vZHVsZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXHNsaWNlb2JqZWN0LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxzdHJ1Y3RtZW1iZXIuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xzdHJ1Y3RzZXEuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHN5bXRhYmxlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcc3ltdGFibGVtb2R1bGUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHN5c21vZHVsZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cdGhyZWFkLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3RocmVhZG1vZHVsZS5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHRpbWVtb2R1bGUuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXHRva2VuaXplci5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cdHJhY2ViYWNrLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcdHVwbGVvYmplY3QuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1x0eXBlb2JqZWN0LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcdW5pY29kZWN0eXBlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcdW5pY29kZW9iamVjdC5jIj4NCi0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQY1x3aW5yZWcuYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1x3ZWFrcmVmb2JqZWN0LmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNceHhzdWJ0eXBlLmMiPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemlwaW1wb3J0LmMiPg0KLQkJPC9GaWxlPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9WUzcuMS9weXRob253LnZjcHJvaiBiL1BDL1ZTNy4xL3B5dGhvbncudmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0N2Q3ZjUwLi4wMDAwMDAwCi0tLSBhL1BDL1ZTNy4xL3B5dGhvbncudmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMjYxICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI3LjEwIg0KLQlOYW1lPSJweXRob253Ig0KLQlTY2NQcm9qZWN0TmFtZT0icHl0aG9udyINCi0JU2NjTG9jYWxQYXRoPSIuLlwuLlxwYyI+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJXaW4zMiIvPg0KLQk8L1BsYXRmb3Jtcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii5cLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5ceDg2LXRlbXAtZGVidWdccHl0aG9udyINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO19ERUJVRztfV0lORE9XUyINCi0JCQkJUnVudGltZUxpYnJhcnk9IjMiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9Ii4vcHl0aG9ud19kLmV4ZSINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL3B5dGhvbndfZC5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJU3RhY2tSZXNlcnZlU2l6ZT0iMjAwMDAwMCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWQwMDAwMDAiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1yZWxlYXNlXHB5dGhvbnciDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7TkRFQlVHO19XSU5ET1dTIg0KLQkJCQlTdHJpbmdQb29saW5nPSJUUlVFIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRSVUUiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9Ii5cLi9weXRob253LmV4ZSINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL3B5dGhvbncucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCVN0YWNrUmVzZXJ2ZVNpemU9IjIwMDAwMDAiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFkMDAwMDAwIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJOREVCVUciDQotCQkJCUN1bHR1cmU9IjEwMzMiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZUl0YW5pdW18V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuXC4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXGlhNjQtdGVtcC1yZWxlYXNlXHB5dGhvbnciDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9VU0VDTDpNU19JVEFOSVVNIC9HUy0iDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtOREVCVUc7X1dJTkRPV1MiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMCINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUJ1ZmZlclNlY3VyaXR5Q2hlY2s9IkZBTFNFIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOklBNjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlPdXRwdXRGaWxlPSIuXC4vcHl0aG9udy5leGUiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9weXRob253LnBkYiINCi0JCQkJU3ViU3lzdGVtPSIyIg0KLQkJCQlTdGFja1Jlc2VydmVTaXplPSIyMDAwMDAwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZDAwMDAwMCINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iTkRFQlVHIg0KLQkJCQlDdWx0dXJlPSIxMDMzIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2VBTUQ2NHxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSJhbWQ2NC10ZW1wLXJlbGVhc2VccHl0aG9udyINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL1VTRUNMOk1TX09QVEVST04iDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtOREVCVUc7X1dJTkRPV1MiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMCINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUJ1ZmZlclNlY3VyaXR5Q2hlY2s9IkZBTFNFIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOkFNRDY0IC9VU0VMSU5LOk1TX1NESyINCi0JCQkJT3V0cHV0RmlsZT0iLlwuL3B5dGhvbncuZXhlIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vcHl0aG9udy5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJU3RhY2tSZXNlcnZlU2l6ZT0iMjAwMDAwMCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWQwMDAwMDAiDQotCQkJCVRhcmdldE1hY2hpbmU9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENccHl0aG9uX2V4ZS5yYyI+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcV2luTWFpbi5jIj4NCi0JCTwvRmlsZT4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM3LjEvcmVhZG1lLnR4dCBiL1BDL1ZTNy4xL3JlYWRtZS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmZDhhNzAuLjAwMDAwMDAKLS0tIGEvUEMvVlM3LjEvcmVhZG1lLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMzNyArMCwwIEBACi1CdWlsZGluZyBQeXRob24gdXNpbmcgVkMrKyA3LjEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVRoaXMgZGlyZWN0b3J5IGlzIHVzZWQgdG8gYnVpbGQgUHl0aG9uIGZvciBXaW4zMiBwbGF0Zm9ybXMsIGUuZy4gV2luZG93cwotOTUsIDk4IGFuZCBOVC4gIEl0IHJlcXVpcmVzIE1pY3Jvc29mdCBWaXN1YWwgQysrIDcuMQotKGEuay5hLiBWaXN1YWwgU3R1ZGlvIC5ORVQgMjAwMykuCi0oRm9yIG90aGVyIFdpbmRvd3MgcGxhdGZvcm1zIGFuZCBjb21waWxlcnMsIHNlZSAuLi9QQy9yZWFkbWUudHh0LikKLQotQWxsIHlvdSBuZWVkIHRvIGRvIGlzIG9wZW4gdGhlIHdvcmtzcGFjZSAicGNidWlsZC5zbG4iIGluIE1TVkMrKywgc2VsZWN0Ci10aGUgRGVidWcgb3IgUmVsZWFzZSBzZXR0aW5nICh1c2luZyAiU29sdXRpb24gQ29uZmlndXJhdGlvbiIgZnJvbQotdGhlICJTdGFuZGFyZCIgdG9vbGJhciIpLCBhbmQgYnVpbGQgdGhlIHByb2plY3RzLgotCi1UaGUgcHJvcGVyIG9yZGVyIHRvIGJ1aWxkIHN1YnByb2plY3RzOgotCi0xKSBweXRob25jb3JlICh0aGlzIGJ1aWxkcyB0aGUgbWFpbiBQeXRob24gRExMIGFuZCBsaWJyYXJ5IGZpbGVzLAotICAgICAgICAgICAgICAgcHl0aG9uMzMue2RsbCwgbGlifSBpbiBSZWxlYXNlIG1vZGUpCi0gICAgICAgICAgICAgIE5PVEU6ICBpbiBwcmV2aW91cyByZWxlYXNlcywgdGhpcyBzdWJwcm9qZWN0IHdhcwotICAgICAgICAgICAgICBuYW1lZCBhZnRlciB0aGUgcmVsZWFzZSBudW1iZXIsIGUuZy4gcHl0aG9uMjAuCi0KLTIpIHB5dGhvbiAodGhpcyBidWlsZHMgdGhlIG1haW4gUHl0aG9uIGV4ZWN1dGFibGUsCi0gICAgICAgICAgIHB5dGhvbi5leGUgaW4gUmVsZWFzZSBtb2RlKQotCi0zKSB0aGUgb3RoZXIgc3VicHJvamVjdHMsIGFzIGRlc2lyZWQgb3IgbmVlZGVkIChub3RlOiAgeW91IHByb2JhYmx5IGRvbid0Ci0gICB3YW50IHRvIGJ1aWxkIG1vc3Qgb2YgdGhlIG90aGVyIHN1YnByb2plY3RzLCB1bmxlc3MgeW91J3JlIGJ1aWxkaW5nIGFuCi0gICBlbnRpcmUgUHl0aG9uIGRpc3RyaWJ1dGlvbiBmcm9tIHNjcmF0Y2gsIG9yIHNwZWNpZmljYWxseSBtYWtpbmcgY2hhbmdlcwotICAgdG8gdGhlIHN1YnN5c3RlbXMgdGhleSBpbXBsZW1lbnQsIG9yIGFyZSBydW5uaW5nIGEgUHl0aG9uIGNvcmUgYnVpbGRib3QKLSAgIHRlc3Qgc2xhdmU7IHNlZSBTVUJQUk9KRUNUUyBiZWxvdykKLQotV2hlbiB1c2luZyB0aGUgRGVidWcgc2V0dGluZywgdGhlIG91dHB1dCBmaWxlcyBoYXZlIGEgX2QgYWRkZWQgdG8KLXRoZWlyIG5hbWU6ICBweXRob24zM19kLmRsbCwgcHl0aG9uX2QuZXhlLCBwYXJzZXJfZC5weWQsIGFuZCBzbyBvbi4KLQotU1VCUFJPSkVDVFMKLS0tLS0tLS0tLS0tCi1UaGVzZSBzdWJwcm9qZWN0cyBzaG91bGQgYnVpbGQgb3V0IG9mIHRoZSBib3guICBTdWJwcm9qZWN0cyBvdGhlciB0aGFuIHRoZQotbWFpbiBvbmVzIChweXRob25jb3JlLCBweXRob24sIHB5dGhvbncpIGdlbmVyYWxseSBidWlsZCBhIERMTCAocmVuYW1lZCB0bwotLnB5ZCkgZnJvbSBhIHNwZWNpZmljIG1vZHVsZSBzbyB0aGF0IHVzZXJzIGRvbid0IGhhdmUgdG8gbG9hZCB0aGUgY29kZQotc3VwcG9ydGluZyB0aGF0IG1vZHVsZSB1bmxlc3MgdGhleSBpbXBvcnQgdGhlIG1vZHVsZS4KLQotcHl0aG9uY29yZQotICAgIC5kbGwgYW5kIC5saWIKLXB5dGhvbgotICAgIC5leGUKLXB5dGhvbncKLSAgICBweXRob253LmV4ZSwgYSB2YXJpYW50IG9mIHB5dGhvbi5leGUgdGhhdCBkb2Vzbid0IHBvcCB1cCBhIERPUyBib3gKLV9zb2NrZXQKLSAgICBzb2NrZXRtb2R1bGUuYwotX3Rlc3RjYXBpCi0gICAgdGVzdHMgb2YgdGhlIFB5dGhvbiBDIEFQSSwgcnVuIHZpYSBMaWIvdGVzdC90ZXN0X2NhcGkucHksIGFuZAotICAgIGltcGxlbWVudGVkIGJ5IG1vZHVsZSBNb2R1bGVzL190ZXN0Y2FwaW1vZHVsZS5jCi1weWV4cGF0Ci0gICAgUHl0aG9uIHdyYXBwZXIgZm9yIGFjY2VsZXJhdGVkIFhNTCBwYXJzaW5nLCB3aGljaCBpbmNvcnBvcmF0ZXMgc3RhYmxlCi0gICAgY29kZSBmcm9tIHRoZSBFeHBhdCBwcm9qZWN0OiAgaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9leHBhdC8KLXNlbGVjdAotICAgIHNlbGVjdG1vZHVsZS5jCi11bmljb2RlZGF0YQotICAgIGxhcmdlIHRhYmxlcyBvZiBVbmljb2RlIGRhdGEKLXdpbnNvdW5kCi0gICAgcGxheSBzb3VuZHMgKHR5cGljYWxseSAud2F2IGZpbGVzKSB1bmRlciBXaW5kb3dzCi0KLVRoZSBmb2xsb3dpbmcgc3VicHJvamVjdHMgd2lsbCBnZW5lcmFsbHkgTk9UIGJ1aWxkIG91dCBvZiB0aGUgYm94LiAgVGhleQotd3JhcCBjb2RlIFB5dGhvbiBkb2Vzbid0IGNvbnRyb2wsIGFuZCB5b3UnbGwgbmVlZCB0byBkb3dubG9hZCB0aGUgYmFzZQotcGFja2FnZXMgZmlyc3QgYW5kIHVucGFjayB0aGVtIGludG8gc2libGluZ3Mgb2YgUEMncyBwYXJlbnQKLWRpcmVjdG9yeTsgZm9yIGV4YW1wbGUsIGlmIHRoaXMgZGlyZWN0b3J5IGlzIC4uLi5cZGlzdFx0cnVua1xQQ1xWUzcuMSwKLXVucGFjayBpbnRvIG5ldyBzdWJkaXJlY3RvcmllcyBvZiBkaXN0XC4KLQotX3RraW50ZXIKLSAgICBQeXRob24gd3JhcHBlciBmb3IgdGhlIFRrIHdpbmRvd2luZyBzeXN0ZW0uICBSZXF1aXJlcyBidWlsZGluZwotICAgIFRjbC9UayBmaXJzdC4gIEZvbGxvd2luZyBhcmUgaW5zdHJ1Y3Rpb25zIGZvciBUY2wvVGsgOC40LjEyLgotCi0gICAgR2V0IHNvdXJjZQotICAgIC0tLS0tLS0tLS0KLSAgICBJbiB0aGUgZGlzdCBkaXJlY3RvcnksIHJ1bgotICAgIHN2biBleHBvcnQgaHR0cDovL3N2bi5weXRob24ub3JnL3Byb2plY3RzL2V4dGVybmFsL3RjbDguNC4xMgotICAgIHN2biBleHBvcnQgaHR0cDovL3N2bi5weXRob24ub3JnL3Byb2plY3RzL2V4dGVybmFsL3RrOC40LjEyCi0gICAgc3ZuIGV4cG9ydCBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvZXh0ZXJuYWwvdGl4LTguNC4wCi0KLSAgICBCdWlsZCBUY2wgZmlyc3QgKGRvbmUgaGVyZSB3LyBNU1ZDIDcuMSBvbiBXaW5kb3dzIFhQKQotICAgIC0tLS0tLS0tLS0tLS0tLQotICAgIFVzZSAiU3RhcnQgLT4gQWxsIFByb2dyYW1zIC0+IE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIC5ORVQgMjAwMwotICAgICAgICAgLT4gVmlzdWFsIFN0dWRpbyAuTkVUIFRvb2xzIC0+IFZpc3VhbCBTdHVkaW8gLk5FVCAyMDAzIENvbW1hbmQgUHJvbXB0IgotICAgIHRvIGdldCBhIHNoZWxsIHdpbmRvdyB3aXRoIHRoZSBjb3JyZWN0IGVudmlyb25tZW50IHNldHRpbmdzCi0gICAgY2QgZGlzdFx0Y2w4LjQuMTJcd2luCi0gICAgbm1ha2UgLWYgbWFrZWZpbGUudmMKLSAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBJTlNUQUxMRElSPS4uXC4uXHRjbHRrIGluc3RhbGwKLQotICAgIFhYWCBTaG91bGQgd2UgY29tcGlsZSB3aXRoIE9QVFM9dGhyZWFkcz8KLQotICAgIE9wdGlvbmFsOiAgcnVuIHRlc3RzLCB2aWEKLSAgICAgICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgdGVzdAotCi0gICAgICAgIE9uIFdpblhQIFBybywgd2hvbGx5IHVwIHRvIGRhdGUgYXMgb2YgMzAtQXVnLTIwMDQ6Ci0gICAgICAgIGFsbC50Y2w6ICAgICAgICBUb3RhbCAgIDEwNjc4ICAgUGFzc2VkICA5OTY5ICAgIFNraXBwZWQgNzA5ICAgICBGYWlsZWQgIDAKLSAgICAgICAgU291cmNlZCAxMjkgVGVzdCBGaWxlcy4KLQotICAgIEJ1aWxkIFRrCi0gICAgLS0tLS0tLS0KLSAgICBjZCBkaXN0XHRrOC40LjEyXHdpbgotICAgIG5tYWtlIC1mIG1ha2VmaWxlLnZjIFRDTERJUj0uLlwuLlx0Y2w4LjQuMTIKLSAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBUQ0xESVI9Li5cLi5cdGNsOC40LjEyIElOU1RBTExESVI9Li5cLi5cdGNsdGsgaW5zdGFsbAotCi0gICAgWFhYIFNob3VsZCB3ZSBjb21waWxlIHdpdGggT1BUUz10aHJlYWRzPwotCi0gICAgWFhYIE91ciBpbnN0YWxsZXIgY29waWVzIGEgbG90IG9mIHN0dWZmIG91dCBvZiB0aGUgVGNsL1RrIGluc3RhbGwKLSAgICBYWFggZGlyZWN0b3J5LiAgSXMgYWxsIG9mIHRoYXQgcmVhbGx5IG5lZWRlZCBmb3IgUHl0aG9uIHVzZSBvZiBUY2wvVGs/Ci0KLSAgICBPcHRpb25hbDogIHJ1biB0ZXN0cywgdmlhCi0gICAgICAgIG5tYWtlIC1mIG1ha2VmaWxlLnZjIFRDTERJUj0uLlwuLlx0Y2w4LjQuMTIgdGVzdAotCi0gICAgICAgIE9uIFdpblhQIFBybywgd2hvbGx5IHVwIHRvIGRhdGUgYXMgb2YgMzAtQXVnLTIwMDQ6Ci0gICAgICAgIGFsbC50Y2w6ICAgICAgICBUb3RhbCAgIDg0MjAgICAgUGFzc2VkICA2ODI2ICAgIFNraXBwZWQgMTU4MSAgICBGYWlsZWQgIDEzCi0gICAgICAgIFNvdXJjZWQgOTEgVGVzdCBGaWxlcy4KLSAgICAgICAgRmlsZXMgd2l0aCBmYWlsaW5nIHRlc3RzOiBjYW52SW1nLnRlc3Qgc2Nyb2xsYmFyLnRlc3QgdGV4dFdpbmQudGVzdCB3aW5XbS50ZXN0Ci0KLSAgIEJ1aWx0IFRpeAotICAgLS0tLS0tLS0tCi0gICBjZCBkaXN0XHRpeC04LjQuMFx3aW4KLSAgIG5tYWtlIC1mIHB5dGhvbi5tYWsKLSAgIG5tYWtlIC1mIHB5dGhvbi5tYWsgaW5zdGFsbAotCi1iejIKLSAgICBQeXRob24gd3JhcHBlciBmb3IgdGhlIGxpYmJ6MiBjb21wcmVzc2lvbiBsaWJyYXJ5LiAgSG9tZXBhZ2UKLSAgICAgICAgaHR0cDovL3NvdXJjZXMucmVkaGF0LmNvbS9iemlwMi8KLSAgICBEb3dubG9hZCB0aGUgc291cmNlIGZyb20gdGhlIHB5dGhvbi5vcmcgY29weSBpbnRvIHRoZSBkaXN0Ci0gICAgZGlyZWN0b3J5OgotCi0gICAgc3ZuIGV4cG9ydCBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvZXh0ZXJuYWwvYnppcDItMS4wLjMKLQotICAgIEEgY3VzdG9tIHByZS1saW5rIHN0ZXAgaW4gdGhlIGJ6MiBwcm9qZWN0IHNldHRpbmdzIHNob3VsZCBtYW5hZ2UgdG8KLSAgICBidWlsZCBiemlwMi0xLjAuM1xsaWJiejIubGliIGJ5IG1hZ2ljIGJlZm9yZSBiejIucHlkIChvciBiejJfZC5weWQpIGlzCi0gICAgbGlua2VkIGluIFZTNy4xXC4KLSAgICBIb3dldmVyLCB0aGUgYnoyIHByb2plY3QgaXMgbm90IHNtYXJ0IGVub3VnaCB0byByZW1vdmUgYW55dGhpbmcgdW5kZXIKLSAgICBiemlwMi0xLjAuM1wgd2hlbiB5b3UgZG8gYSBjbGVhbiwgc28gaWYgeW91IHdhbnQgdG8gcmVidWlsZCBiemlwMi5saWIKLSAgICB5b3UgbmVlZCB0byBjbGVhbiB1cCBiemlwMi0xLjAuM1wgYnkgaGFuZC4KLQotICAgIFRoZSBidWlsZCBzdGVwIHNob3VsZG4ndCB5aWVsZCBhbnkgd2FybmluZ3Mgb3IgZXJyb3JzLCBhbmQgc2hvdWxkIGVuZAotICAgIGJ5IGRpc3BsYXlpbmcgNiBibG9ja3MgZWFjaCB0ZXJtaW5hdGVkIHdpdGgKLSAgICAgICAgRkM6IG5vIGRpZmZlcmVuY2VzIGVuY291bnRlcmVkCi0KLSAgICBBbGwgb2YgdGhpcyBtYW5hZ2VkIHRvIGJ1aWxkIGJ6aXAyLTEuMC4zXGxpYmJ6Mi5saWIsIHdoaWNoIHRoZSBQeXRob24KLSAgICBwcm9qZWN0IGxpbmtzIGluLgotCi1fc3FsaXRlMwotICAgIFB5dGhvbiB3cmFwcGVyIGZvciBTUUxpdGUgbGlicmFyeS4KLSAgICAKLSAgICBHZXQgdGhlIHNvdXJjZSBjb2RlIHRocm91Z2gKLSAgICAKLSAgICBzdm4gZXhwb3J0IGh0dHA6Ly9zdm4ucHl0aG9uLm9yZy9wcm9qZWN0cy9leHRlcm5hbC9zcWxpdGUtc291cmNlLTMuMy40Ci0gICAgCi0gICAgVG8gdXNlIHRoZSBleHRlbnNpb24gbW9kdWxlIGluIGEgUHl0aG9uIGJ1aWxkIHRyZWUsIGNvcHkgc3FsaXRlMy5kbGwgaW50bwotICAgIHRoZSBWUzcuMSBmb2xkZXIuCi0KLV9zc2wKLSAgICBQeXRob24gd3JhcHBlciBmb3IgdGhlIHNlY3VyZSBzb2NrZXRzIGxpYnJhcnkuCi0KLSAgICBHZXQgdGhlIHNvdXJjZSBjb2RlIHRocm91Z2gKLQotICAgIHN2biBleHBvcnQgaHR0cDovL3N2bi5weXRob24ub3JnL3Byb2plY3RzL2V4dGVybmFsL29wZW5zc2wtMC45LjhhCi0KLSAgICBBbHRlcm5hdGl2ZWx5LCBnZXQgdGhlIGxhdGVzdCB2ZXJzaW9uIGZyb20gaHR0cDovL3d3dy5vcGVuc3NsLm9yZy4KLSAgICBZb3UgY2FuICh0aGVvcmV0aWNhbGx5KSB1c2UgYW55IHZlcnNpb24gb2YgT3BlblNTTCB5b3UgbGlrZSAtIHRoZQotICAgIGJ1aWxkIHByb2Nlc3Mgd2lsbCBhdXRvbWF0aWNhbGx5IHNlbGVjdCB0aGUgbGF0ZXN0IHZlcnNpb24uCi0KLSAgICBZb3UgbXVzdCBhbHNvIGluc3RhbGwgQWN0aXZlUGVybCBmcm9tCi0gICAgICAgIGh0dHA6Ly93d3cuYWN0aXZlc3RhdGUuY29tL1Byb2R1Y3RzL0FjdGl2ZVBlcmwvCi0gICAgYXMgdGhpcyBpcyB1c2VkIGJ5IHRoZSBPcGVuU1NMIGJ1aWxkIHByb2Nlc3MuICBDb21wbGFpbiB0byB0aGVtIDx3aW5rPi4KLQotICAgIFRoZSBNU1ZDIHByb2plY3Qgc2ltcGx5IGludm9rZXMgYnVpbGRfc3NsLnB5IHRvIHBlcmZvcm0KLSAgICB0aGUgYnVpbGQuICBUaGlzIFB5dGhvbiBzY3JpcHQgbG9jYXRlcyBhbmQgYnVpbGRzIHlvdXIgT3BlblNTTAotICAgIGluc3RhbGxhdGlvbiwgdGhlbiBpbnZva2VzIGEgc2ltcGxlIG1ha2VmaWxlIHRvIGJ1aWxkIHRoZSBmaW5hbCAucHlkLgotCi0gICAgYnVpbGRfc3NsLnB5IGF0dGVtcHRzIHRvIGNhdGNoIHRoZSBtb3N0IGNvbW1vbiBlcnJvcnMgKHN1Y2ggYXMgbm90Ci0gICAgYmVpbmcgYWJsZSB0byBmaW5kIE9wZW5TU0wgc291cmNlcywgb3Igbm90IGJlaW5nIGFibGUgdG8gZmluZCBhIFBlcmwKLSAgICB0aGF0IHdvcmtzIHdpdGggT3BlblNTTCkgYW5kIGdpdmUgYSByZWFzb25hYmxlIGVycm9yIG1lc3NhZ2UuCi0gICAgSWYgeW91IGhhdmUgYSBwcm9ibGVtIHRoYXQgZG9lc24ndCBzZWVtIHRvIGJlIGhhbmRsZWQgY29ycmVjdGx5Ci0gICAgKGVnLCB5b3Uga25vdyB5b3UgaGF2ZSBBY3RpdmVQZXJsIGJ1dCB3ZSBjYW4ndCBmaW5kIGl0KSwgcGxlYXNlIHRha2UKLSAgICBhIHBlZWsgYXQgYnVpbGRfc3NsLnB5IGFuZCBzdWdnZXN0IHBhdGNoZXMuICBOb3RlIHRoYXQgYnVpbGRfc3NsLnB5Ci0gICAgc2hvdWxkIGJlIGFibGUgdG8gYmUgcnVuIGRpcmVjdGx5IGZyb20gdGhlIGNvbW1hbmQtbGluZS4KLQotICAgIGJ1aWxkX3NzbC5weS9NU1ZDIGlzbid0IGNsZXZlciBlbm91Z2ggdG8gY2xlYW4gT3BlblNTTCAtIHlvdSBtdXN0IGRvCi0gICAgdGhpcyBieSBoYW5kLgotCi1CdWlsZGluZyBmb3IgSXRhbml1bQotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIHByb2plY3QgZmlsZXMgc3VwcG9ydCBhIFJlbGVhc2VJdGFuaXVtIGNvbmZpZ3VyYXRpb24gd2hpY2ggY3JlYXRlcwotV2luNjQvSXRhbml1bSBiaW5hcmllcy4gRm9yIHRoaXMgdG8gd29yaywgeW91IG5lZWQgdG8gaW5zdGFsbCB0aGUgUGxhdGZvcm0KLVNESywgaW4gcGFydGljdWxhciB0aGUgNjQtYml0IHN1cHBvcnQuIFRoaXMgaW5jbHVkZXMgYW4gSXRhbml1bSBjb21waWxlcgotKGZ1dHVyZSByZWxlYXNlcyBvZiB0aGUgU0RLIGxpa2VseSBpbmNsdWRlIGFuIEFNRDY0IGNvbXBpbGVyIGFzIHdlbGwpLgotSW4gYWRkaXRpb24sIHlvdSBuZWVkIHRoZSBWaXN1YWwgU3R1ZGlvIHBsdWdpbiBmb3IgZXh0ZXJuYWwgQyBjb21waWxlcnMsCi1mcm9tIGh0dHA6Ly9zZi5uZXQvcHJvamVjdHMvdnNleHRjb21wLiBUaGUgcGx1Z2luIHdpbGwgd3JhcCBjbC5leGUsIHRvCi1sb2NhdGUgdGhlIHByb3BlciB0YXJnZXQgY29tcGlsZXIsIGFuZCBjb252ZXJ0IGNvbXBpbGVyIG9wdGlvbnMKLWFjY29yZGluZ2x5LiBUaGUgcHJvamVjdCBmaWxlcyByZXF1aXJlIGF0bGVhc3QgdmVyc2lvbiAwLjkuCi0KLUJ1aWxkaW5nIGZvciBBTUQ2NAotLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSBidWlsZCBwcm9jZXNzIGZvciB0aGUgUmVsZWFzZUFNRDY0IGNvbmZpZ3VyYXRpb24gaXMgdmVyeSBzaW1pbGFyCi10byB0aGUgSXRhbml1bSBjb25maWd1cmF0aW9uOyBtYWtlIHN1cmUgeW91IHVzZSB0aGUgbGF0ZXN0IHZlcnNpb24gb2YKLXZzZXh0Y29tcC4KLQotQnVpbGRpbmcgUHl0aG9uIFVzaW5nIHRoZSBmcmVlIE1TIFRvb2xraXQgQ29tcGlsZXIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSBidWlsZCBwcm9jZXNzIGZvciBWaXN1YWwgQysrIGNhbiBiZSB1c2VkIGFsbW9zdCB1bmNoYW5nZWQgd2l0aCB0aGUgZnJlZSBNUwotVG9vbGtpdCBDb21waWxlci4gVGhpcyBwcm92aWRlcyBhIHdheSBvZiBidWlsZGluZyBQeXRob24gdXNpbmcgZnJlZWx5Ci1hdmFpbGFibGUgc29mdHdhcmUuCi0KLU5vdGUgdGhhdCBNaWNyb3NvZnQgaGF2ZSB3aXRoZHJhd24gdGhlIGZyZWUgTVMgVG9vbGtpdCBDb21waWxlciwgc28gdGhpcyBjYW4KLW5vIGxvbmdlciBiZSBjb25zaWRlcmVkIGEgc3VwcG9ydGVkIG9wdGlvbi4gVGhlIGluc3RydWN0aW9ucyBhcmUgc3RpbGwKLWNvcnJlY3QsIGJ1dCB5b3UgbmVlZCB0byBhbHJlYWR5IGhhdmUgYSBjb3B5IG9mIHRoZSBjb21waWxlciBpbiBvcmRlciB0byB1c2UKLXRoZW0uIE1pY3Jvc29mdCBub3cgc3VwcGx5IFZpc3VhbCBDKysgMjAwOCBFeHByZXNzIEVkaXRpb24gZm9yIGZyZWUsIGJ1dCB0aGlzCi1pcyBOT1QgY29tcGF0aWJsZSB3aXRoIFZpc3VhbCBDKysgNy4xIChpdCB1c2VzIGEgZGlmZmVyZW50IEMgcnVudGltZSksIGFuZCBzbwotY2Fubm90IGJlIHVzZWQgdG8gYnVpbGQgYSB2ZXJzaW9uIG9mIFB5dGhvbiBjb21wYXRpYmxlIHdpdGggdGhlIHN0YW5kYXJkCi1weXRob24ub3JnIGJ1aWxkLiBJZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gdXNpbmcgVmlzdWFsIEMrKyAyMDA4IEV4cHJlc3MKLUVkaXRpb24sIGhvd2V2ZXIsIHlvdSBzaG91bGQgbG9vayBhdCB0aGUgUENCdWlsZCBkaXJlY3RvcnkuCi0KLVJlcXVpcmVtZW50cwotCi0gICAgVG8gYnVpbGQgUHl0aG9uLCB0aGUgZm9sbG93aW5nIHRvb2xzIGFyZSByZXF1aXJlZDoKLQotICAgICogVGhlIFZpc3VhbCBDKysgVG9vbGtpdCBDb21waWxlcgotICAgICAgICBubyBsb25nZXIgYXZhaWxhYmxlIGZvciBkb3dubG9hZCAtIHNlZSBhYm92ZQotICAgICogQSByZWNlbnQgUGxhdGZvcm0gU0RLCi0gICAgICAgIGZyb20gaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL2Rvd25sb2Fkcy9kZXRhaWxzLmFzcHg/RmFtaWx5SUQ9NDg0MjY5ZTItM2I4OS00N2UzLThlYjctMWYyYmU2ZDcxMjNhCi0gICAgKiBUaGUgLk5FVCAxLjEgU0RLCi0gICAgICAgIGZyb20gaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL2Rvd25sb2Fkcy9kZXRhaWxzLmFzcHg/RmFtaWx5SUQ9OWIzYTJjYTYtMzY0Ny00MDcwLTlmNDEtYTMzM2M2YjkxODFkCi0KLSAgICBbRG9lcyBhbnlvbmUgaGF2ZSBiZXR0ZXIgVVJMcyBmb3IgdGhlIGxhc3QgMiBvZiB0aGVzZT9dCi0KLSAgICBUaGUgdG9vbGtpdCBjb21waWxlciBpcyBuZWVkZWQgYXMgaXQgaXMgYW4gb3B0aW1pc2luZyBjb21waWxlciAodGhlCi0gICAgY29tcGlsZXIgc3VwcGxpZWQgd2l0aCB0aGUgLk5FVCBTREsgaXMgYSBub24tb3B0aW1pc2luZyB2ZXJzaW9uKS4gVGhlCi0gICAgcGxhdGZvcm0gU0RLIGlzIG5lZWRlZCB0byBwcm92aWRlIHRoZSBXaW5kb3dzIGhlYWRlciBmaWxlcyBhbmQgbGlicmFyaWVzCi0gICAgKHRoZSBXaW5kb3dzIDIwMDMgU2VydmVyIFNQMSBlZGl0aW9uLCB0eXBpY2FsIGluc3RhbGwsIGlzIGtub3duIHRvIHdvcmsgLQotICAgIG90aGVyIGNvbmZpZ3VyYXRpb25zIG9yIHZlcnNpb25zIGFyZSBwcm9iYWJseSBmaW5lIGFzIHdlbGwpLiBUaGUgLk5FVCAxLjEKLSAgICBTREsgaXMgbmVlZGVkIGJlY2F1c2UgaXQgY29udGFpbnMgYSB2ZXJzaW9uIG9mIG1zdmNydC5kbGwgd2hpY2ggbGlua3MgdG8KLSAgICB0aGUgbXN2Y3I3MS5kbGwgQ1JULiBOb3RlIHRoYXQgdGhlIC5ORVQgMi4wIFNESyBpcyBOT1QgYWNjZXB0YWJsZSwgYXMgaXQKLSAgICByZWZlcmVuY2VzIG1zdmNyODAuZGxsLgotCi0gICAgQWxsIG9mIHRoZSBhYm92ZSBpdGVtcyBzaG91bGQgYmUgaW5zdGFsbGVkIGFzIG5vcm1hbC4KLQotICAgIElmIHlvdSBpbnRlbmQgdG8gYnVpbGQgdGhlIG9wZW5zc2wgKG5lZWRlZCBmb3IgdGhlIF9zc2wgZXh0ZW5zaW9uKSB5b3UKLSAgICB3aWxsIG5lZWQgdGhlIEMgcnVudGltZSBzb3VyY2VzIGluc3RhbGxlZCBhcyBwYXJ0IG9mIHRoZSBwbGF0Zm9ybSBTREsuCi0KLSAgICBJbiBhZGRpdGlvbiwgeW91IHdpbGwgbmVlZCBOYW50LCBhdmFpbGFibGUgZnJvbQotICAgIGh0dHA6Ly9uYW50LnNvdXJjZWZvcmdlLm5ldC4gVGhlIDAuODUgcmVsZWFzZSBjYW5kaWRhdGUgMyB2ZXJzaW9uIGlzIGtub3duCi0gICAgdG8gd29yay4gVGhpcyBpcyB0aGUgbGF0ZXN0IHJlbGVhc2VkIHZlcnNpb24gYXQgdGhlIHRpbWUgb2Ygd3JpdGluZy4gTGF0ZXIKLSAgICAibmlnaHRseSBidWlsZCIgdmVyc2lvbnMgYXJlIGtub3duIE5PVCB0byB3b3JrIC0gaXQgaXMgbm90IGNsZWFyIGF0Ci0gICAgcHJlc2VudCB3aGV0aGVyIGZ1dHVyZSByZWxlYXNlZCB2ZXJzaW9ucyB3aWxsIHdvcmsuCi0KLVNldHRpbmcgdXAgdGhlIGVudmlyb25tZW50Ci0KLSAgICBTdGFydCBhIHBsYXRmb3JtIFNESyAiYnVpbGQgZW52aXJvbm1lbnQgd2luZG93IiBmcm9tIHRoZSBzdGFydCBtZW51LiBUaGUKLSAgICAiV2luZG93cyBYUCAzMi1iaXQgcmV0YWlsIiB2ZXJzaW9uIGlzIGtub3duIHRvIHdvcmsuCi0KLSAgICBBZGQgdGhlIGZvbGxvd2luZyBkaXJlY3RvcmllcyB0byB5b3VyIFBBVEg6Ci0gICAgICAgICogVGhlIHRvb2xraXQgY29tcGlsZXIgZGlyZWN0b3J5Ci0gICAgICAgICogVGhlIFNESyAiV2luNjQiIGJpbmFyaWVzIGRpcmVjdG9yeQotCSogVGhlIE5hbnQgZGlyZWN0b3J5Ci0gICAgQWRkIHRvIHlvdXIgSU5DTFVERSBlbnZpcm9ubWVudCB2YXJpYWJsZToKLSAgICAgICAgKiBUaGUgdG9vbGtpdCBjb21waWxlciBJTkNMVURFIGRpcmVjdG9yeQotICAgIEFkZCB0byB5b3VyIExJQiBlbnZpcm9ubWVudCB2YXJpYWJsZToKLSAgICAgICAgKiBUaGUgdG9vbGtpdCBjb21waWxlciBMSUIgZGlyZWN0b3J5Ci0JKiBUaGUgLk5FVCBTREsgVmlzdWFsIFN0dWRpbyAyMDAzIFZDN1xsaWIgZGlyZWN0b3J5Ci0KLSAgICBUaGUgZm9sbG93aW5nIGNvbW1hbmRzIHNob3VsZCBzZXQgdGhpbmdzIHVwIGFzIHlvdSBuZWVkIHRoZW06Ci0KLSAgICAgICAgcmVtIFNldCB0aGVzZSB2YWx1ZXMgYWNjb3JkaW5nIHRvIHdoZXJlIHlvdSBpbnN0YWxsZWQgdGhlIHNvZnR3YXJlCi0gICAgICAgIHNldCBUT09MS0lUPUM6XFByb2dyYW0gRmlsZXNcTWljcm9zb2Z0IFZpc3VhbCBDKysgVG9vbGtpdCAyMDAzCi0gICAgICAgIHNldCBTREs9QzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnQgUGxhdGZvcm0gU0RLCi0gICAgICAgIHNldCBORVQ9QzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyAuTkVUIDIwMDMKLSAgICAgICAgc2V0IE5BTlQ9QzpcVXRpbHNcTmFudAotCi0gICAgICAgIHNldCBQQVRIPSVUT09MS0lUJVxiaW47JVBBVEglOyVTREslXEJpblx3aW42NDslTkFOVCVcYmluCi0gICAgICAgIHNldCBJTkNMVURFPSVUT09MS0lUJVxpbmNsdWRlOyVJTkNMVURFJQotICAgICAgICBzZXQgTElCPSVUT09MS0lUJVxsaWI7JU5FVCVcVkM3XGxpYjslTElCJQotCi0gICAgVGhlICJ3aW42NCIgZGlyZWN0b3J5IGZyb20gdGhlIFNESyBpcyBhZGRlZCB0byBzdXBwbHkgZXhlY3V0YWJsZXMgc3VjaCBhcwotICAgICJjdnRyZXMiIGFuZCAibGliIiwgd2hpY2ggYXJlIG5vdCBhdmFpbGFibGUgZWxzZXdoZXJlLiBUaGUgdmVyc2lvbnMgaW4gdGhlCi0gICAgIndpbjY0IiBkaXJlY3RvcnkgYXJlIDMyLWJpdCBwcm9ncmFtcywgc28gdGhleSBhcmUgZmluZSB0byB1c2UgaGVyZS4KLQotICAgIFRoYXQncyBpdC4gVG8gYnVpbGQgUHl0aG9uICh0aGUgY29yZSBvbmx5LCBubyBiaW5hcnkgZXh0ZW5zaW9ucyB3aGljaAotICAgIGRlcGVuZCBvbiBleHRlcm5hbCBsaWJyYXJpZXMpIHlvdSBqdXN0IG5lZWQgdG8gaXNzdWUgdGhlIGNvbW1hbmQKLQotICAgICAgICBuYW50IC1idWlsZGZpbGU6cHl0aG9uLmJ1aWxkIGFsbAotCi0gICAgZnJvbSB3aXRoaW4gdGhlIFZTNy4xIGRpcmVjdG9yeS4KLQotRXh0ZW5zaW9uIG1vZHVsZXMKLQotICAgIFRvIGJ1aWxkIHRob3NlIGV4dGVuc2lvbiBtb2R1bGVzIHdoaWNoIHJlcXVpcmUgZXh0ZXJuYWwgbGlicmFyaWVzCi0gICAgKF90a2ludGVyLCBiejIsIF9zcWxpdGUzLCBfc3NsKSB5b3UgY2FuIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zCi0gICAgZm9yIHRoZSBWaXN1YWwgU3R1ZGlvIGJ1aWxkIGFib3ZlLCB3aXRoIGEgZmV3IG1pbm9yIG1vZGlmaWNhdGlvbnMuIFRoZXNlCi0gICAgaW5zdHJ1Y3Rpb25zIGhhdmUgb25seSBiZWVuIHRlc3RlZCB1c2luZyB0aGUgc291cmNlcyBpbiB0aGUgUHl0aG9uCi0gICAgc3VidmVyc2lvbiByZXBvc2l0b3J5IC0gYnVpbGRpbmcgZnJvbSBvcmlnaW5hbCBzb3VyY2VzIHNob3VsZCB3b3JrLCBidXQKLSAgICBoYXMgbm90IGJlZW4gdGVzdGVkLgotCi0gICAgRm9yIGVhY2ggZXh0ZW5zaW9uIG1vZHVsZSB5b3Ugd2lzaCB0byBidWlsZCwgeW91IHNob3VsZCByZW1vdmUgdGhlCi0gICAgYXNzb2NpYXRlZCBpbmNsdWRlIGxpbmUgZnJvbSB0aGUgZXhjbHVkZXByb2plY3RzIHNlY3Rpb24gb2YgcGMuYnVpbGQuCi0KLSAgICBUaGUgY2hhbmdlcyByZXF1aXJlZCBhcmU6Ci0KLSAgICBfdGtpbnRlcgotICAgICAgICBUaGUgdGl4IG1ha2VmaWxlICh0aXgtOC40LjBcd2luXG1ha2VmaWxlLnZjKSBtdXN0IGJlIG1vZGlmaWVkIHRvCi0JcmVtb3ZlIHJlZmVyZW5jZXMgdG8gVE9PTFMzMi4gVGhlIHJlbGV2YW50IGxpbmVzIHNob3VsZCBiZSBjaGFuZ2VkIHRvCi0JcmVhZDoKLSAgICAgICAgICAgIGNjMzIgPSBjbC5leGUKLSAgICAgICAgICAgIGxpbmszMiA9IGxpbmsuZXhlCi0gICAgICAgICAgICBpbmNsdWRlMzIgPSAKLQlUaGUgcmVtYWluZGVyIG9mIHRoZSBidWlsZCBpbnN0cnVjdGlvbnMgd2lsbCB3b3JrIGFzIGdpdmVuLgotCi0gICAgYnoyCi0gICAgICAgIE5vIGNoYW5nZXMgYXJlIG5lZWRlZAotCi0gICAgX3NxbGl0ZTMKLSAgICAgICAgTm8gY2hhbmdlcyBhcmUgbmVlZGVkLiBIb3dldmVyLCBpbiBvcmRlciBmb3IgdGhlIHRlc3RzIHRvIHN1Y2NlZWQsIGEKLQljb3B5IG9mIHNxbGl0ZTMuZGxsIG11c3QgYmUgZG93bmxvYWRlZCwgYW5kIHBsYWNlZCBhbG9uZ3NpZGUKLQlweXRob24uZXhlLgotCi0gICAgX3NzbAotICAgICAgICBUaGUgZG9jdW1lbnRlZCBidWlsZCBwcm9jZXNzIHdvcmtzIGFzIHdyaXR0ZW4uIEhvd2V2ZXIsIGl0IG5lZWRzIGEKLQljb3B5IG9mIHRoZSBmaWxlIHNldGFyZ3Yub2JqLCB3aGljaCBpcyBub3Qgc3VwcGxpZWQgaW4gdGhlIHBsYXRmb3JtCi0JU0RLLiBIb3dldmVyLCB0aGUgc291cmNlcyBhcmUgYXZhaWxhYmxlIChpbiB0aGUgY3J0IHNvdXJjZSBjb2RlKS4gVG8KLQlidWlsZCBzZXRhcmd2Lm9iaiwgcHJvY2VlZCBhcyBmb2xsb3dzOgotCi0gICAgICAgIENvcHkgc2V0YXJndi5jLCBjcnVudGltZS5oIGFuZCBpbnRlcm5hbC5oIGZyb20gJVNESyVcc3JjXGNydCB0byBhCi0JdGVtcG9yYXJ5IGRpcmVjdG9yeS4KLQlDb21waWxlIHVzaW5nICJjbCAvYyAvSS4gL01EIC9EX0NSVEJMRCBzZXRhcmd2LmMiCi0JQ29weSB0aGUgcmVzdWx0aW5nIHNldGFyZ3Yub2JqIHRvIHNvbWV3aGVyZSBvbiB5b3VyIExJQiBlbnZpcm9ubWVudAotCSglU0RLJVxsaWIgaXMgYSByZWFzb25hYmxlIHBsYWNlKS4KLQotCVdpdGggc2V0YXJndi5vYmogaW4gcGxhY2UsIHRoZSBzdGFuZGFyZCBidWlsZCBwcm9jZXNzIHNob3VsZCB3b3JrCi0JZmluZS4KLQotWU9VUiBPV04gRVhURU5TSU9OIERMTHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1JZiB5b3Ugd2FudCB0byBjcmVhdGUgeW91ciBvd24gZXh0ZW5zaW9uIG1vZHVsZSBETEwsIHRoZXJlJ3MgYW4gZXhhbXBsZQotd2l0aCBlYXN5LXRvLWZvbGxvdyBpbnN0cnVjdGlvbnMgaW4gLi4vUEMvZXhhbXBsZS87IHJlYWQgdGhlIGZpbGUKLXJlYWRtZS50eHQgdGhlcmUgZmlyc3QuCmRpZmYgLS1naXQgYS9QQy9WUzcuMS9ybXB5Yy5weSBiL1BDL1ZTNy4xL3JtcHljLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0M2M4NTc2Li4wMDAwMDAwCi0tLSBhL1BDL1ZTNy4xL3JtcHljLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotIyBSZW1vdmUgYWxsIHRoZSAucHljIGFuZCAucHlvIGZpbGVzIHVuZGVyIC4uL0xpYi4KLQotCi1kZWYgZGVsdHJlZShyb290KToKLSAgICBpbXBvcnQgb3MKLSAgICBmcm9tIG9zLnBhdGggaW1wb3J0IGpvaW4KLQotICAgIG5weWMgPSBucHlvID0gMAotICAgIGZvciByb290LCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKHJvb3QpOgotICAgICAgICBmb3IgbmFtZSBpbiBmaWxlczoKLSAgICAgICAgICAgIGRlbGV0ZSA9IEZhbHNlCi0gICAgICAgICAgICBpZiBuYW1lLmVuZHN3aXRoKCcucHljJyk6Ci0gICAgICAgICAgICAgICAgZGVsZXRlID0gVHJ1ZQotICAgICAgICAgICAgICAgIG5weWMgKz0gMQotICAgICAgICAgICAgZWxpZiBuYW1lLmVuZHN3aXRoKCcucHlvJyk6Ci0gICAgICAgICAgICAgICAgZGVsZXRlID0gVHJ1ZQotICAgICAgICAgICAgICAgIG5weW8gKz0gMQotCi0gICAgICAgICAgICBpZiBkZWxldGU6Ci0gICAgICAgICAgICAgICAgb3MucmVtb3ZlKGpvaW4ocm9vdCwgbmFtZSkpCi0KLSAgICByZXR1cm4gbnB5YywgbnB5bwotCi1ucHljLCBucHlvID0gZGVsdHJlZSgiLi4vTGliIikKLXByaW50IG5weWMsICIucHljIGRlbGV0ZWQsIiwgbnB5bywgIi5weW8gZGVsZXRlZCIKZGlmZiAtLWdpdCBhL1BDL1ZTNy4xL3J0LmJhdCBiL1BDL1ZTNy4xL3J0LmJhdApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYTkxMGE3OS4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9ydC5iYXQKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi1AZWNobyBvZmYKLXJlbSBSdW4gVGVzdHMuICBSdW4gdGhlIHJlZ3Jlc3Npb24gdGVzdCBzdWl0ZS4KLXJlbSBVc2FnZTogIHJ0IFstZF0gWy1PXSBbLXFdIHJlZ3J0ZXN0X2FyZ3MKLXJlbSAtZCAgIFJ1biBEZWJ1ZyBidWlsZCAocHl0aG9uX2QuZXhlKS4gIEVsc2UgcmVsZWFzZSBidWlsZC4KLXJlbSAtTyAgIFJ1biBweXRob24uZXhlIG9yIHB5dGhvbl9kLmV4ZSAoc2VlIC1kKSB3aXRoIC1PLgotcmVtIC1xICAgInF1aWNrIiAtLSBub3JtYWxseSB0aGUgdGVzdHMgYXJlIHJ1biB0d2ljZSwgdGhlIGZpcnN0IHRpbWUKLXJlbSAgICAgIGFmdGVyIGRlbGV0aW5nIGFsbCB0aGUgLnB5W2NvXSBmaWxlcyByZWFjaGFibGUgZnJvbSBMaWIvLgotcmVtICAgICAgLXEgcnVucyB0aGUgdGVzdHMganVzdCBvbmNlLCBhbmQgd2l0aG91dCBkZWxldGluZyAucHlbY29dIGZpbGVzLgotcmVtIEFsbCBsZWFkaW5nIGluc3RhbmNlcyBvZiB0aGVzZSBzd2l0Y2hlcyBhcmUgc2hpZnRlZCBvZmYsIGFuZAotcmVtIHdoYXRldmVyIHJlbWFpbnMgaXMgcGFzc2VkIHRvIHJlZ3J0ZXN0LnB5LiAgRm9yIGV4YW1wbGUsCi1yZW0gICAgIHJ0IC1PIC1kIC14IHRlc3RfdGhyZWFkCi1yZW0gcnVucwotcmVtICAgICBweXRob25fZCAtTyAuLi8uLi9saWIvdGVzdC9yZWdydGVzdC5weSAteCB0ZXN0X3RocmVhZAotcmVtIHR3aWNlLCBhbmQKLXJlbSAgICAgcnQgLXEgLWcgdGVzdF9iaW5hc2NpaQotcmVtIHJ1bnMKLXJlbSAgICAgcHl0aG9uX2QgLi4vLi4vbGliL3Rlc3QvcmVncnRlc3QucHkgLWcgdGVzdF9iaW5hc2NpaQotcmVtIHRvIGdlbmVyYXRlIHRoZSBleHBlY3RlZC1vdXRwdXQgZmlsZSBmb3IgYmluYXNjaWkgcXVpY2tseS4KLXJlbQotcmVtIENvbmZ1c2luZzogIGlmIHlvdSB3YW50IHRvIHBhc3MgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgbGlrZQotcmVtICAgICAtdSBuZXR3b3JrLGxhcmdlZmlsZQotcmVtIHRoZW4geW91IGhhdmUgdG8gcXVvdGUgaXQgb24gdGhlIHJ0IGxpbmUsIGxpa2UKLXJlbSAgICAgcnQgLXUgIm5ldHdvcmssbGFyZ2VmaWxlIgotCi1zZXRsb2NhbAotCi1zZXQgZXhlPXB5dGhvbgotc2V0IHFtb2RlPQotc2V0IGRhc2hPPQotUEFUSCAlUEFUSCU7JX5kcDAuLlwuLlwuLlx0Y2x0a1xiaW4KLQotOkNoZWNrT3B0cwotaWYgIiUxIj09Ii1PIiAoc2V0IGRhc2hPPS1PKSAgICAgJiBzaGlmdCAmIGdvdG8gQ2hlY2tPcHRzCi1pZiAiJTEiPT0iLXEiIChzZXQgcW1vZGU9eWVzKSAgICAmIHNoaWZ0ICYgZ290byBDaGVja09wdHMKLWlmICIlMSI9PSItZCIgKHNldCBleGU9cHl0aG9uX2QpICYgc2hpZnQgJiBnb3RvIENoZWNrT3B0cwotCi1zZXQgY21kPSVleGUlICVkYXNoTyUgLUUgLi4vLi4vbGliL3Rlc3QvcmVncnRlc3QucHkgJTEgJTIgJTMgJTQgJTUgJTYgJTcgJTggJTkKLWlmIGRlZmluZWQgcW1vZGUgZ290byBRbW9kZQotCi1lY2hvIERlbGV0aW5nIC5weWMvLnB5byBmaWxlcyAuLi4KLSVleGUlIHJtcHljLnB5Ci0KLWVjaG8gb24KLSVjbWQlCi1AZWNobyBvZmYKLQotZWNobyBBYm91dCB0byBydW4gYWdhaW4gd2l0aG91dCBkZWxldGluZyAucHljLy5weW8gZmlyc3Q6Ci1wYXVzZQotCi06UW1vZGUKLWVjaG8gb24KLSVjbWQlCmRpZmYgLS1naXQgYS9QQy9WUzcuMS9zZWxlY3QudmNwcm9qIGIvUEMvVlM3LjEvc2VsZWN0LnZjcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODI1MmQ0NS4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS9zZWxlY3QudmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMjU4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI3LjEwIg0KLQlOYW1lPSJzZWxlY3QiDQotCVNjY1Byb2plY3ROYW1lPSJzZWxlY3QiDQotCVNjY0xvY2FsUGF0aD0iLi4iPg0KLQk8UGxhdGZvcm1zPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0iV2luMzIiLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxDb25maWd1cmF0aW9ucz4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii5cLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5ceDg2LXRlbXAtcmVsZWFzZVxzZWxlY3QiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7TkRFQlVHO1dJTjMyO19XSU5ET1dTIg0KLQkJCQlTdHJpbmdQb29saW5nPSJUUlVFIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9IlRSVUUiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vc2VsZWN0LnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9ImxpYmMiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL3NlbGVjdC5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMTAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9zZWxlY3QubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuXC4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXHg4Ni10ZW1wLWRlYnVnXHNlbGVjdCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO19ERUJVRztXSU4zMjtfV0lORE9XUyINCi0JCQkJUnVudGltZUxpYnJhcnk9IjMiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vc2VsZWN0X2QucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJSWdub3JlRGVmYXVsdExpYnJhcnlOYW1lcz0ibGliYyxtc3ZjcnQiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL3NlbGVjdF9kLnBkYiINCi0JCQkJU3ViU3lzdGVtPSIyIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDExMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL3NlbGVjdF9kLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2VJdGFuaXVtfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlxpYTY0LXRlbXAtcmVsZWFzZVxzZWxlY3QiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9VU0VDTDpNU19JVEFOSVVNIC9HUy0iDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtOREVCVUc7V0lOMzI7X1dJTkRPV1MiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMCINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUJ1ZmZlclNlY3VyaXR5Q2hlY2s9IkZBTFNFIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOklBNjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL3NlbGVjdC5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJsaWJjIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9zZWxlY3QucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTEwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vc2VsZWN0LmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2VBTUQ2NHxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSJhbWQ2NC10ZW1wLXJlbGVhc2Vcc2VsZWN0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvVVNFQ0w6TVNfT1BURVJPTiINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO05ERUJVRztXSU4zMjtfV0lORE9XUyINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6QU1ENjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuL3NlbGVjdC5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJsaWJjIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9zZWxlY3QucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTEwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vc2VsZWN0LmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHNlbGVjdG1vZHVsZS5jIj4NCi0JCTwvRmlsZT4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM3LjEvdW5pY29kZWRhdGEudmNwcm9qIGIvUEMvVlM3LjEvdW5pY29kZWRhdGEudmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjQ3ZjliLi4wMDAwMDAwCi0tLSBhL1BDL1ZTNy4xL3VuaWNvZGVkYXRhLnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDI0NyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iNy4xMCINCi0JTmFtZT0idW5pY29kZWRhdGEiDQotCVNjY1Byb2plY3ROYW1lPSJ1bmljb2RlZGF0YSINCi0JU2NjTG9jYWxQYXRoPSIuLiI+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJXaW4zMiIvPg0KLQk8L1BsYXRmb3Jtcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1yZWxlYXNlXHVuaWNvZGVkYXRhIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtXSU4zMjtOREVCVUc7X1dJTkRPV1M7X1VTUkRMTDtNTUFQX0VYUE9SVFMiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlDb21waWxlQXM9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJT3V0cHV0RmlsZT0iLi91bmljb2RlZGF0YS5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vdW5pY29kZWRhdGEucGRiIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDEyMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL3VuaWNvZGVkYXRhLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlx4ODYtdGVtcC1kZWJ1Z1x1bmljb2RlZGF0YSINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjAiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtXSU4zMjtfREVCVUc7X1dJTkRPV1M7X1VTUkRMTDtNTUFQX0VYUE9SVFMiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMyINCi0JCQkJUnVudGltZUxpYnJhcnk9IjMiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9Ii4vdW5pY29kZWRhdGFfZC5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi91bmljb2RlZGF0YV9kLnBkYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMjAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi91bmljb2RlZGF0YV9kLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2VJdGFuaXVtfFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLlwuIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iLlxpYTY0LXRlbXAtcmVsZWFzZVx1bmljb2RlZGF0YSINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9VU0VDTDpNU19JVEFOSVVNIC9HUy0iDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtXSU4zMjtOREVCVUc7X1dJTkRPV1M7X1VTUkRMTDtNTUFQX0VYUE9SVFMiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMCINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUJ1ZmZlclNlY3VyaXR5Q2hlY2s9IkZBTFNFIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOklBNjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlPdXRwdXRGaWxlPSIuL3VuaWNvZGVkYXRhLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi91bmljb2RlZGF0YS5wZGIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTIwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vdW5pY29kZWRhdGEubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZUFNRDY0fFdpbjMyIg0KLQkJCU91dHB1dERpcmVjdG9yeT0iLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9ImFtZDY0LXRlbXAtcmVsZWFzZVx1bmljb2RlZGF0YSINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9VU0VDTDpNU19PUFRFUk9OIC9HUy0iDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUsLi5cLi5cUEMiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQeV9CVUlMRF9DT1JFX01PRFVMRTtXSU4zMjtOREVCVUc7X1dJTkRPV1M7X1VTUkRMTDtNTUFQX0VYUE9SVFMiDQotCQkJCVN0cmluZ1Bvb2xpbmc9IlRSVUUiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMCINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUJ1ZmZlclNlY3VyaXR5Q2hlY2s9IkZBTFNFIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0iVFJVRSINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxlbXM9IlRSVUUiDQotCQkJCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOkFNRDY0IC9VU0VMSU5LOk1TX1NESyINCi0JCQkJT3V0cHV0RmlsZT0iLi91bmljb2RlZGF0YS5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vdW5pY29kZWRhdGEucGRiIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDEyMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL3VuaWNvZGVkYXRhLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHVuaWNvZGVkYXRhLmMiPg0KLQkJPC9GaWxlPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9WUzcuMS93OXhwb3Blbi52Y3Byb2ogYi9QQy9WUzcuMS93OXhwb3Blbi52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5ZjNiNGUuLjAwMDAwMDAKLS0tIGEvUEMvVlM3LjEvdzl4cG9wZW4udmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI3LjEwIg0KLQlOYW1lPSJ3OXhwb3BlbiINCi0JU2NjUHJvamVjdE5hbWU9IiINCi0JU2NjTG9jYWxQYXRoPSIiPg0KLQk8UGxhdGZvcm1zPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0iV2luMzIiLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxDb25maWd1cmF0aW9ucz4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuXC4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXHg4Ni10ZW1wLWRlYnVnXHc5eHBvcGVuIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO1dJTjMyO19ERUJVRztfV0lORE9XUyINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIzIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMyINCi0JCQkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiDQotCQkJCVdhcm5pbmdMZXZlbD0iMyINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PSIzIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9Ii4vdzl4cG9wZW5fZC5leGUiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi93OXhwb3Blbl9kLnBkYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuXC4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXHg4Ni10ZW1wLXJlbGVhc2Vcdzl4cG9wZW4iDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIg0KLQkJCUNoYXJhY3RlclNldD0iMiI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO1dJTjMyO05ERUJVRztfV0lORE9XUyINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJT3V0cHV0RmlsZT0iLlwuL3c5eHBvcGVuLmV4ZSINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi93OXhwb3Blbi5wZGIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcdzl4cG9wZW4uYyI+DQotCQk8L0ZpbGU+DQotCTwvRmlsZXM+DQotCTxHbG9iYWxzPg0KLQk8L0dsb2JhbHM+DQotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTNy4xL3dpbnNvdW5kLnZjcHJvaiBiL1BDL1ZTNy4xL3dpbnNvdW5kLnZjcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmM0Y2YzOS4uMDAwMDAwMAotLS0gYS9QQy9WUzcuMS93aW5zb3VuZC52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSwyNTEgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjcuMTAiDQotCU5hbWU9IndpbnNvdW5kIg0KLQlTY2NQcm9qZWN0TmFtZT0id2luc291bmQiDQotCVNjY0xvY2FsUGF0aD0iLi5cLi5ccGMiPg0KLQk8UGxhdGZvcm1zPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0iV2luMzIiLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxDb25maWd1cmF0aW9ucz4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuXC4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIuXHg4Ni10ZW1wLWRlYnVnXHdpbnNvdW5kIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSwuLlwuLlxQQyINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlB5X0JVSUxEX0NPUkVfTU9EVUxFO1dJTjMyO19ERUJVRztfV0lORE9XUztfVVNSRExMO1dJTlNPVU5EX0VYUE9SVFMiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMyINCi0JCQkJUnVudGltZUxpYnJhcnk9IjMiDQotCQkJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9Indpbm1tLmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLi93aW5zb3VuZF9kLnB5ZCINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL3dpbnNvdW5kX2QucGRiIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDE2MDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL3dpbnNvdW5kX2QubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJEZXBsb3ltZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBdXhpbGlhcnlNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii5cLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5ceDg2LXRlbXAtcmVsZWFzZVx3aW5zb3VuZCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iRkFMU0UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIj4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7V0lOMzI7TkRFQlVHO19XSU5ET1dTO19VU1JETEw7V0lOU09VTkRfRVhQT1JUUyINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCUNvbXBpbGVBcz0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3aW5tbS5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vd2luc291bmQucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL3dpbnNvdW5kLnBkYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNjAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi93aW5zb3VuZC5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlSXRhbml1bXxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii5cLiINCi0JCQlJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5caWE2NC10ZW1wLXJlbGVhc2Vcd2luc291bmQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIg0KLQkJCUNoYXJhY3RlclNldD0iMiI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvVVNFQ0w6TVNfSVRBTklVTSAvR1MtIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7V0lOMzI7TkRFQlVHO19XSU5ET1dTO19VU1JETEw7V0lOU09VTkRfRVhQT1JUUyINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6SUE2NCAvVVNFTElOSzpNU19TREsiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9Indpbm1tLmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLi93aW5zb3VuZC5weWQiDQotCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vd2luc291bmQucGRiIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDE2MDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL3dpbnNvdW5kLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViRGVwbG95bWVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXV4aWxpYXJ5TWFuYWdlZFdyYXBwZXJHZW5lcmF0b3JUb29sIi8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2VBTUQ2NHxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4iDQotCQkJSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSJhbWQ2NC10ZW1wLXJlbGVhc2Vcd2luc291bmQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9IkZBTFNFIg0KLQkJCUNoYXJhY3RlclNldD0iMiI+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvVVNFQ0w6TVNfT1BURVJPTiAvR1MtIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlLC4uXC4uXFBDIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEU7V0lOMzI7TkRFQlVHO19XSU5ET1dTO19VU1JETEw7V0lOU09VTkRfRVhQT1JUUyINCi0JCQkJU3RyaW5nUG9vbGluZz0iVFJVRSINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIwIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJQnVmZmVyU2VjdXJpdHlDaGVjaz0iRkFMU0UiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJUUlVFIg0KLQkJCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQotCQkJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0iVFJVRSINCi0JCQkJRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIgL01BQ0hJTkU6QU1ENjQgL1VTRUxJTks6TVNfU0RLIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3aW5tbS5saWIiDQotCQkJCU91dHB1dEZpbGU9Ii4vd2luc291bmQucHlkIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL3dpbnNvdW5kLnBkYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNjAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi93aW5zb3VuZC5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjAiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCIvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYkRlcGxveW1lbnRUb29sIi8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkV3JhcHBlckdlbmVyYXRvclRvb2wiLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0F1eGlsaWFyeU1hbmFnZWRXcmFwcGVyR2VuZXJhdG9yVG9vbCIvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsZQ0KLQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcd2luc291bmQuYyI+DQotCQk8L0ZpbGU+DQotCTwvRmlsZXM+DQotCTxHbG9iYWxzPg0KLQk8L0dsb2JhbHM+DQotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTOC4wL19jdHlwZXMudmNwcm9qIGIvUEMvVlM4LjAvX2N0eXBlcy52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5NzMyMzMuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvX2N0eXBlcy52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSw3MDUgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9Il9jdHlwZXMiDQotCVByb2plY3RHVUlEPSJ7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE4fSINCi0JUm9vdE5hbWVzcGFjZT0iX2N0eXBlcyINCi0JS2V5d29yZD0iV2luMzJQcm9qIg0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMUEwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMUEwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvRVhQT1JUOkRsbEdldENsYXNzT2JqZWN0LFBSSVZBVEUgL0VYUE9SVDpEbGxDYW5VbmxvYWROb3csUFJJVkFURSINCi0JCQkJU3ViU3lzdGVtPSIwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDFBMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9Ii9FWFBPUlQ6RGxsR2V0Q2xhc3NPYmplY3QsUFJJVkFURSAvRVhQT1JUOkRsbENhblVubG9hZE5vdyxQUklWQVRFIg0KLQkJCQlTdWJTeXN0ZW09IjAiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMUEwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL0VYUE9SVDpEbGxHZXRDbGFzc09iamVjdCxQUklWQVRFIC9FWFBPUlQ6RGxsQ2FuVW5sb2FkTm93LFBSSVZBVEUiDQotCQkJCVN1YlN5c3RlbT0iMCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxQTAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdJbnN0cnVtZW50fHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccGdpbnN0cnVtZW50LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL0VYUE9SVDpEbGxHZXRDbGFzc09iamVjdCxQUklWQVRFIC9FWFBPUlQ6RGxsQ2FuVW5sb2FkTm93LFBSSVZBVEUiDQotCQkJCVN1YlN5c3RlbT0iMCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxQTAwMDAiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9Ii9FWFBPUlQ6RGxsR2V0Q2xhc3NPYmplY3QsUFJJVkFURSAvRVhQT1JUOkRsbENhblVubG9hZE5vdyxQUklWQVRFIg0KLQkJCQlTdWJTeXN0ZW09IjAiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMUEwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvRVhQT1JUOkRsbEdldENsYXNzT2JqZWN0LFBSSVZBVEUgL0VYUE9SVDpEbGxDYW5VbmxvYWROb3csUFJJVkFURSINCi0JCQkJU3ViU3lzdGVtPSIwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDFBMDAwMCINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IkhlYWRlciBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcY3R5cGVzLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcY3R5cGVzX2RsZmNuLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcZmZpLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcZmZpX2NvbW1vbi5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaWNvbmZpZy5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaXRhcmdldC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJPC9GaWx0ZXI+DQotCQk8RmlsdGVyDQotCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KLQkJCT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xfY3R5cGVzLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcY2FsbGJhY2tzLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcY2FsbHByb2MuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xjZmllbGQuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2Y1xmZmkuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xtYWxsb2NfY2xvc3VyZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXHByZXBfY2lmLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcc3RnZGljdC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXHdpbjMyLmMiDQotCQkJCT4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1Z3x4NjQiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iUmVsZWFzZXx4NjQiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iUEdJbnN0cnVtZW50fHg2NCINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJQR1VwZGF0ZXx4NjQiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXHdpbjY0LmFzbSINCi0JCQkJPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJEZWJ1Z3x4NjQiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCQkJCUNvbW1hbmRMaW5lPSJtbDY0IC9ub2xvZ28gL2MgL1ppIC9GbyAmcXVvdDskKEludERpcilcd2luNjQub2JqJnF1b3Q7ICZxdW90OyQoSW5wdXRQYXRoKSZxdW90OyYjeDBEOyYjeDBBOyINCi0JCQkJCQlPdXRwdXRzPSIkKEludERpcilcd2luNjQub2JqIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJSZWxlYXNlfHg2NCINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJCQkJQ29tbWFuZExpbmU9Im1sNjQgL25vbG9nbyAvYyAvRm8gJnF1b3Q7JChJbnREaXIpXHdpbjY0Lm9iaiZxdW90OyAmcXVvdDskKElucHV0UGF0aCkmcXVvdDsmI3gwRDsmI3gwQTsiDQotCQkJCQkJT3V0cHV0cz0iJChJbnREaXIpXHdpbjY0Lm9iaiINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iUEdJbnN0cnVtZW50fFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJQR0luc3RydW1lbnR8eDY0Ig0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkJCQlDb21tYW5kTGluZT0ibWw2NCAvbm9sb2dvIC9jIC9GbyAmcXVvdDskKEludERpcilcd2luNjQub2JqJnF1b3Q7ICZxdW90OyQoSW5wdXRQYXRoKSZxdW90OyYjeDBEOyYjeDBBOyINCi0JCQkJCQlPdXRwdXRzPSIkKEludERpcilcd2luNjQub2JqIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJQR1VwZGF0ZXxXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iUEdVcGRhdGV8eDY0Ig0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkJCQlDb21tYW5kTGluZT0ibWw2NCAvbm9sb2dvIC9jIC9GbyAmcXVvdDskKEludERpcilcd2luNjQub2JqJnF1b3Q7ICZxdW90OyQoSW5wdXRQYXRoKSZxdW90OyYjeDBEOyYjeDBBOyINCi0JCQkJCQlPdXRwdXRzPSIkKEludERpcilcd2luNjQub2JqIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvX2VsZW1lbnR0cmVlLnZjcHJvaiBiL1BDL1ZTOC4wL19lbGVtZW50dHJlZS52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1N2RhNzIuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvX2VsZW1lbnR0cmVlLnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDYxMyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOC4wMCINCi0JTmFtZT0iX2VsZW1lbnR0cmVlIg0KLQlQcm9qZWN0R1VJRD0iezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0iDQotCVJvb3ROYW1lc3BhY2U9Il9lbGVtZW50dHJlZSINCi0JS2V5d29yZD0iV2luMzJQcm9qIg0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iWE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtVU0VfUFlFWFBBVF9DQVBJO1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDEwMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3x4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkX2QudnNwcm9wczsuXHg2NC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cTW9kdWxlc1xleHBhdCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlhNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7VVNFX1BZRVhQQVRfQ0FQSTtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMDAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcZXhwYXQiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1VTRV9QWUVYUEFUX0NBUEk7WE1MX1NUQVRJQztIQVZFX01FTU1PVkUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTAwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cTW9kdWxlc1xleHBhdCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlhNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7VVNFX1BZRVhQQVRfQ0FQSTtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMDAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdJbnN0cnVtZW50fFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ccGdpbnN0cnVtZW50LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iWE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtVU0VfUFlFWFBBVF9DQVBJO1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDEwMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iWE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtVU0VfUFlFWFBBVF9DQVBJO1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDEwMDAwMCINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cTW9kdWxlc1xleHBhdCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlhNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7VVNFX1BZRVhQQVRfQ0FQSTtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMDAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcZXhwYXQiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1VTRV9QWUVYUEFUX0NBUEk7WE1MX1NUQVRJQztIQVZFX01FTU1PVkUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTAwMDAwIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxNyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsdGVyDQotCQkJTmFtZT0iSGVhZGVyIEZpbGVzIg0KLQkJCT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRcYXNjaWkuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRcYXNjaWl0YWIuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRcZXhwYXQuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRcZXhwYXRfY29uZmlnLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGV4cGF0XGV4cGF0X2V4dGVybmFsLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGV4cGF0XGlhc2NpaXRhYi5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFxpbnRlcm5hbC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFxsYXRpbjF0YWIuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRcbWFjY29uZmlnLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGV4cGF0XG5hbWV0YWIuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRccHlleHBhdG5zLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGV4cGF0XHV0Zjh0YWIuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRcd2luY29uZmlnLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGV4cGF0XHhtbHJvbGUuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRceG1sdG9rLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJTb3VyY2UgRmlsZXMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfZWxlbWVudHRyZWUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRceG1scGFyc2UuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRceG1scm9sZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFx4bWx0b2suYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC9faGFzaGxpYi52Y3Byb2ogYi9QQy9WUzguMC9faGFzaGxpYi52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwMzFlMmUuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvX2hhc2hsaWIudmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsNTM3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI4LjAwIg0KLQlOYW1lPSJfaGFzaGxpYiINCi0JUHJvamVjdEdVSUQ9Ins0NDdGMDVBOC1GNTgxLTRDQUMtQTQ2Ni01QUM3OTM2RTIwN0V9Ig0KLQlSb290TmFtZXNwYWNlPSJfaGFzaGxpYiINCi0JS2V5d29yZD0iV2luMzJQcm9qIg0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKG9wZW5zc2xEaXIpXGluYzMyIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCQlDb21tYW5kTGluZT0iIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliICQob3BlbnNzbERpcilcb3V0MzJcbGliZWF5MzIubGliICQob3BlbnNzbERpcilcb3V0MzJcc3NsZWF5MzIubGliIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKG9wZW5zc2xEaXIpXGluYzY0Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCQlDb21tYW5kTGluZT0iIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliICQob3BlbnNzbERpcilcb3V0NjRcbGliZWF5MzIubGliICQob3BlbnNzbERpcilcb3V0NjRcc3NsZWF5MzIubGliIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKG9wZW5zc2xEaXIpXGluYzMyIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCQlDb21tYW5kTGluZT0iIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliICQob3BlbnNzbERpcilcb3V0MzJcbGliZWF5MzIubGliICQob3BlbnNzbERpcilcb3V0MzJcc3NsZWF5MzIubGliIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChvcGVuc3NsRGlyKVxpbmM2NCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJQ29tbWFuZExpbmU9IiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDY0XGxpYmVheTMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDY0XHNzbGVheTMyLmxpYiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiQob3BlbnNzbERpcilcaW5jMzIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJCUNvbW1hbmRMaW5lPSIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIgJChvcGVuc3NsRGlyKVxvdXQzMlxsaWJlYXkzMi5saWIgJChvcGVuc3NsRGlyKVxvdXQzMlxzc2xlYXkzMi5saWIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdJbnN0cnVtZW50fHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccGdpbnN0cnVtZW50LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChvcGVuc3NsRGlyKVxpbmM2NCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJQ29tbWFuZExpbmU9IiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDY0XGxpYmVheTMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDY0XHNzbGVheTMyLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChvcGVuc3NsRGlyKVxpbmMzMiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJQ29tbWFuZExpbmU9IiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDMyXGxpYmVheTMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDMyXHNzbGVheTMyLmxpYiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChvcGVuc3NsRGlyKVxpbmM2NCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJQ29tbWFuZExpbmU9IiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDY0XGxpYmVheTMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDY0XHNzbGVheTMyLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9oYXNob3BlbnNzbC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJPC9GaWx0ZXI+DQotCTwvRmlsZXM+DQotCTxHbG9iYWxzPg0KLQk8L0dsb2JhbHM+DQotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTOC4wL19tc2kudmNwcm9qIGIvUEMvVlM4LjAvX21zaS52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5OTcxYzYuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvX21zaS52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSw1MjkgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9Il9tc2kiDQotCVByb2plY3RHVUlEPSJ7MzFGRkM0NzgtN0I0QS00M0U4LTk5NTQtOEQwM0UyMTg3RTlDfSINCi0JUm9vdE5hbWVzcGFjZT0iX21zaSINCi0JS2V5d29yZD0iV2luMzJQcm9qIg0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJmY2kubGliIG1zaS5saWIgcnBjcnQ0LmxpYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNjAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZF9kLnZzcHJvcHM7Llx4NjQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9ImZjaS5saWIgbXNpLmxpYiBycGNydDQubGliIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDE2MDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iZmNpLmxpYiBtc2kubGliIHJwY3J0NC5saWIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTYwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iZmNpLmxpYiBtc2kubGliIHJwY3J0NC5saWIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTYwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iZmNpLmxpYiBtc2kubGliIHJwY3J0NC5saWIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTYwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9ImZjaS5saWIgbXNpLmxpYiBycGNydDQubGliIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDE2MDAwMCINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iZmNpLmxpYiBtc2kubGliIHJwY3J0NC5saWIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTYwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJmY2kubGliIG1zaS5saWIgcnBjcnQ0LmxpYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNjAwMDAiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJTb3VyY2UgRmlsZXMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcX21zaS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJPC9GaWx0ZXI+DQotCTwvRmlsZXM+DQotCTxHbG9iYWxzPg0KLQk8L0dsb2JhbHM+DQotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTOC4wL19tdWx0aXByb2Nlc3NpbmcudmNwcm9qIGIvUEMvVlM4LjAvX211bHRpcHJvY2Vzc2luZy52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmMWNhZmMuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvX211bHRpcHJvY2Vzc2luZy52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSw1NDUgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9Il9tdWx0aXByb2Nlc3NpbmciDQotCVByb2plY3RHVUlEPSJ7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fSINCi0JUm9vdE5hbWVzcGFjZT0iX211bHRpcHJvY2Vzc2luZyINCi0JS2V5d29yZD0iV2luMzJQcm9qIg0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTFEMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3x4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkX2QudnNwcm9wczsuXHg2NC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxRDAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMUQwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxRDAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdJbnN0cnVtZW50fFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ccGdpbnN0cnVtZW50LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTFEMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTFEMDAwMCINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxRDAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMUQwMDAwIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxNyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsdGVyDQotCQkJTmFtZT0iSGVhZGVyIEZpbGVzIg0KLQkJCT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX211bHRpcHJvY2Vzc2luZ1xtdWx0aXByb2Nlc3NpbmcuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9tdWx0aXByb2Nlc3NpbmdcbXVsdGlwcm9jZXNzaW5nLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9tdWx0aXByb2Nlc3Npbmdcc2VtYXBob3JlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9tdWx0aXByb2Nlc3Npbmdcd2luMzJfZnVuY3Rpb25zLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvX3NvY2tldC52Y3Byb2ogYi9QQy9WUzguMC9fc29ja2V0LnZjcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGFiZDk4Mi4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC9fc29ja2V0LnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDUzNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOC4wMCINCi0JTmFtZT0iX3NvY2tldCINCi0JUHJvamVjdEdVSUQ9Ins4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9Ig0KLQlSb290TmFtZXNwYWNlPSJfc29ja2V0Ig0KLQlLZXl3b3JkPSJXaW4zMlByb2oiDQotCVRhcmdldEZyYW1ld29ya1ZlcnNpb249IjE5NjYxMyINCi0JPg0KLQk8UGxhdGZvcm1zPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0iV2luMzIiDQotCQkvPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0ieDY0Ig0KLQkJLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxUb29sRmlsZXM+DQotCTwvVG9vbEZpbGVzPg0KLQk8Q29uZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZF9kLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMUQwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTFEMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxRDAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTFEMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMUQwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMUQwMDAwIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxNyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTFEMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxRDAwMDAiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJIZWFkZXIgRmlsZXMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xzb2NrZXRtb2R1bGUuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHNvY2tldG1vZHVsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJPC9GaWx0ZXI+DQotCTwvRmlsZXM+DQotCTxHbG9iYWxzPg0KLQk8L0dsb2JhbHM+DQotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTOC4wL19zcWxpdGUzLnZjcHJvaiBiL1BDL1ZTOC4wL19zcWxpdGUzLnZjcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjRmMTlmMS4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC9fc3FsaXRlMy52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSw2MTMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9Il9zcWxpdGUzIg0KLQlQcm9qZWN0R1VJRD0iezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0iDQotCVJvb3ROYW1lc3BhY2U9Il9zcWxpdGUzIg0KLQlLZXl3b3JkPSJXaW4zMlByb2oiDQotCVRhcmdldEZyYW1ld29ya1ZlcnNpb249IjE5NjYxMyINCi0JPg0KLQk8UGxhdGZvcm1zPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0iV2luMzIiDQotCQkvPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0ieDY0Ig0KLQkJLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxUb29sRmlsZXM+DQotCTwvVG9vbEZpbGVzPg0KLQk8Q29uZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZF9kLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXC4uXHNxbGl0ZS0zLjYuMjEiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJNT0RVTEVfTkFNRT1cJnF1b3Q7c3FsaXRlM1wmcXVvdDsiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMTgwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlwuLlxzcWxpdGUtMy42LjIxIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iTU9EVUxFX05BTUU9XCZxdW90O3NxbGl0ZTNcJnF1b3Q7Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTE4MDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cLi5cc3FsaXRlLTMuNi4yMSINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik1PRFVMRV9OQU1FPVwmcXVvdDtzcWxpdGUzXCZxdW90OyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxODAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlwuLlxzcWxpdGUtMy42LjIxIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iTU9EVUxFX05BTUU9XCZxdW90O3NxbGl0ZTNcJnF1b3Q7Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTE4MDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXC4uXHNxbGl0ZS0zLjYuMjEiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJNT0RVTEVfTkFNRT1cJnF1b3Q7c3FsaXRlM1wmcXVvdDsiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMTgwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXC4uXHNxbGl0ZS0zLjYuMjEiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJNT0RVTEVfTkFNRT1cJnF1b3Q7c3FsaXRlM1wmcXVvdDsiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMTgwMDAwIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxNyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlwuLlxzcWxpdGUtMy42LjIxIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iTU9EVUxFX05BTUU9XCZxdW90O3NxbGl0ZTNcJnF1b3Q7Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTE4MDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cLi5cc3FsaXRlLTMuNi4yMSINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik1PRFVMRV9OQU1FPVwmcXVvdDtzcWxpdGUzXCZxdW90OyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxODAwMDAiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJIZWFkZXIgRmlsZXMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3FsaXRlXGNhY2hlLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcY29ubmVjdGlvbi5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3FsaXRlXGN1cnNvci5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3FsaXRlXG1pY3JvcHJvdG9jb2xzLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcbW9kdWxlLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVccHJlcGFyZV9wcm90b2NvbC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3FsaXRlXHJvdy5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3FsaXRlXHNxbGl0ZWNvbXBhdC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3FsaXRlXHN0YXRlbWVudC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3FsaXRlXHV0aWwuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcY2FjaGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxjb25uZWN0aW9uLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcY3Vyc29yLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcbWljcm9wcm90b2NvbHMuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxtb2R1bGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxwcmVwYXJlX3Byb3RvY29sLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVccm93LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcc3RhdGVtZW50LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcdXRpbC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJPC9GaWx0ZXI+DQotCTwvRmlsZXM+DQotCTxHbG9iYWxzPg0KLQk8L0dsb2JhbHM+DQotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTOC4wL19zc2wudmNwcm9qIGIvUEMvVlM4LjAvX3NzbC52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5MjY3YTQuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvX3NzbC52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSw1MzcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9Il9zc2wiDQotCVByb2plY3RHVUlEPSJ7QzZFMjBGODQtMzI0Ny00QUQ2LUIwNTEtQjA3MzI2OEY3M0JBfSINCi0JUm9vdE5hbWVzcGFjZT0iX3NzbCINCi0JS2V5d29yZD0iV2luMzJQcm9qIg0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKG9wZW5zc2xEaXIpXGluYzMyIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCQlDb21tYW5kTGluZT0iIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliICQob3BlbnNzbERpcilcb3V0MzJcbGliZWF5MzIubGliICQob3BlbnNzbERpcilcb3V0MzJcc3NsZWF5MzIubGliIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKG9wZW5zc2xEaXIpXGluYzY0Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCQlDb21tYW5kTGluZT0iIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliICQob3BlbnNzbERpcilcb3V0NjRcbGliZWF5MzIubGliICQob3BlbnNzbERpcilcb3V0NjRcc3NsZWF5MzIubGliIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKG9wZW5zc2xEaXIpXGluYzMyIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCQlDb21tYW5kTGluZT0iIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliICQob3BlbnNzbERpcilcb3V0MzJcbGliZWF5MzIubGliICQob3BlbnNzbERpcilcb3V0MzJcc3NsZWF5MzIubGliIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChvcGVuc3NsRGlyKVxpbmM2NCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJQ29tbWFuZExpbmU9IiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDY0XGxpYmVheTMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDY0XHNzbGVheTMyLmxpYiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiQob3BlbnNzbERpcilcaW5jMzIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJCUNvbW1hbmRMaW5lPSIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIgJChvcGVuc3NsRGlyKVxvdXQzMlxsaWJlYXkzMi5saWIgJChvcGVuc3NsRGlyKVxvdXQzMlxzc2xlYXkzMi5saWIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdJbnN0cnVtZW50fHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccGdpbnN0cnVtZW50LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChvcGVuc3NsRGlyKVxpbmM2NCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJQ29tbWFuZExpbmU9IiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDY0XGxpYmVheTMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDY0XHNzbGVheTMyLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChvcGVuc3NsRGlyKVxpbmMzMiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJQ29tbWFuZExpbmU9IiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDMyXGxpYmVheTMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDMyXHNzbGVheTMyLmxpYiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChvcGVuc3NsRGlyKVxpbmM2NCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJQ29tbWFuZExpbmU9IiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDY0XGxpYmVheTMyLmxpYiAkKG9wZW5zc2xEaXIpXG91dDY0XHNzbGVheTMyLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zc2wuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC9fdGtpbnRlci52Y3Byb2ogYi9QQy9WUzguMC9fdGtpbnRlci52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3MDBiZGUuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvX3RraW50ZXIudmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsNTQxICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI4LjAwIg0KLQlOYW1lPSJfdGtpbnRlciINCi0JUHJvamVjdEdVSUQ9Ins0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9Ig0KLQlSb290TmFtZXNwYWNlPSJfdGtpbnRlciINCi0JS2V5d29yZD0iV2luMzJQcm9qIg0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKHRjbHRrRGlyKVxpbmNsdWRlIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lUSF9BUFBJTklUIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIkKHRjbHRrTGliRGVidWcpIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKHRjbHRrNjREaXIpXGluY2x1ZGUiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSVRIX0FQUElOSVQiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IiQodGNsdGs2NExpYkRlYnVnKSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJCh0Y2x0a0RpcilcaW5jbHVkZSINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJVEhfQVBQSU5JVCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iJCh0Y2x0a0xpYikiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKHRjbHRrNjREaXIpXGluY2x1ZGUiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSVRIX0FQUElOSVQiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IiQodGNsdGs2NExpYikiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdJbnN0cnVtZW50fFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ccGdpbnN0cnVtZW50LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKHRjbHRrRGlyKVxpbmNsdWRlIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lUSF9BUFBJTklUIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIkKHRjbHRrTGliKSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKHRjbHRrNjREaXIpXGluY2x1ZGUiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSVRIX0FQUElOSVQiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IiQodGNsdGs2NExpYikiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiQodGNsdGtEaXIpXGluY2x1ZGUiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSVRIX0FQUElOSVQiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IiQodGNsdGtMaWIpIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKHRjbHRrNjREaXIpXGluY2x1ZGUiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSVRIX0FQUElOSVQiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IiQodGNsdGs2NExpYikiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJTb3VyY2UgRmlsZXMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfdGtpbnRlci5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x0a2FwcGluaXQuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC9iZGlzdF93aW5pbnN0LnZjcHJvaiBiL1BDL1ZTOC4wL2JkaXN0X3dpbmluc3QudmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMTFlZGYyLi4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL2JkaXN0X3dpbmluc3QudmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMjcwICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI4LjAwIg0KLQlOYW1lPSJiZGlzdF93aW5pbnN0Ig0KLQlQcm9qZWN0R1VJRD0ie0VCMUMxOUMxLTFGMTgtNDIxRS05NzM1LUNBRUU2OURDNkEzQ30iDQotCVJvb3ROYW1lc3BhY2U9Indpbmluc3QiDQotCVRhcmdldEZyYW1ld29ya1ZlcnNpb249IjEzMTA3MiINCi0JPg0KLQk8UGxhdGZvcm1zPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0iV2luMzIiDQotCQkvPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0ieDY0Ig0KLQkJLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxUb29sRmlsZXM+DQotCTwvVG9vbEZpbGVzPg0KLQk8Q29uZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJT3V0cHV0RGlyZWN0b3J5PSIuLlwuLlxsaWJcZGlzdHV0aWxzXGNvbW1hbmQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7LlxyZWxlYXNlLnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJOREVCVUciDQotCQkJCU1rVHlwTGliQ29tcGF0aWJsZT0idHJ1ZSINCi0JCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJ0cnVlIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMSINCi0JCQkJVHlwZUxpYnJhcnlOYW1lPSIuXC4uXC4uXGxpYlxkaXN0dXRpbHNcY29tbWFuZFx3aW5pbnN0LnRsYiINCi0JCQkJSGVhZGVyRmlsZU5hbWU9IiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMSINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXFBDXGJkaXN0X3dpbmluc3Q7Li5cLi5cSW5jbHVkZTsuLlwuLlxNb2R1bGVzXHpsaWIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURSINCi0JCQkJU3RyaW5nUG9vbGluZz0idHJ1ZSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjAiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJ0cnVlIg0KLQkJCQlXYXJuaW5nTGV2ZWw9IjMiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0idHJ1ZSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cUEM7Li5cLi5cUENcYmRpc3Rfd2luaW5zdDsuLlwuLlxJbmNsdWRlIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJjb21jdGwzMi5saWIgaW1hZ2VobHAubGliIg0KLQkJCQlPdXRwdXRGaWxlPSIuLlwuLlxsaWJcZGlzdHV0aWxzXGNvbW1hbmRcd2luaW5zdC04LjAuZXhlIg0KLQkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0idHJ1ZSINCi0JCQkJSWdub3JlRGVmYXVsdExpYnJhcnlOYW1lcz0iTElCQyINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLi5cLi5cbGliXGRpc3R1dGlsc1xjb21tYW5kXHdpbmluc3QtOC4wLnBkYiINCi0JCQkJU3ViU3lzdGVtPSIyIg0KLQkJCQlSYW5kb21pemVkQmFzZUFkZHJlc3M9IjEiDQotCQkJCURhdGFFeGVjdXRpb25QcmV2ZW50aW9uPSIwIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8eDY0Ig0KLQkJCU91dHB1dERpcmVjdG9yeT0iJChQbGF0Zm9ybU5hbWUpXCQoQ29uZmlndXJhdGlvbk5hbWUpIg0KLQkJCUludGVybWVkaWF0ZURpcmVjdG9yeT0iJChQbGF0Zm9ybU5hbWUpXCQoQ29uZmlndXJhdGlvbk5hbWUpIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iTkRFQlVHIg0KLQkJCQlNa1R5cExpYkNvbXBhdGlibGU9InRydWUiDQotCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0idHJ1ZSINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJCVR5cGVMaWJyYXJ5TmFtZT0iLlwuLlwuLlxsaWJcZGlzdHV0aWxzXGNvbW1hbmRcd2luaW5zdC50bGIiDQotCQkJCUhlYWRlckZpbGVOYW1lPSIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjEiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQQ1xiZGlzdF93aW5pbnN0Oy4uXC4uXEluY2x1ZGU7Li5cLi5cTW9kdWxlc1x6bGliIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEUiDQotCQkJCVN0cmluZ1Bvb2xpbmc9InRydWUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIwIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0idHJ1ZSINCi0JCQkJV2FybmluZ0xldmVsPSIzIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9InRydWUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJOREVCVUciDQotCQkJCUN1bHR1cmU9IjAiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXFBDOy4uXC4uXFBDXGJkaXN0X3dpbmluc3Q7Li5cLi5cSW5jbHVkZSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iY29tY3RsMzIubGliIGltYWdlaGxwLmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLi5cLi5cbGliXGRpc3R1dGlsc1xjb21tYW5kXHdpbmluc3QtOC4wLWFtZDY0LmV4ZSINCi0JCQkJTGlua0luY3JlbWVudGFsPSIxIg0KLQkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9InRydWUiDQotCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9IkxJQkMiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii4uXC4uXGxpYlxkaXN0dXRpbHNcY29tbWFuZFx3aW5pbnN0LTguMC1hbWQ2NC5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMiINCi0JCQkJUmFuZG9taXplZEJhc2VBZGRyZXNzPSIxIg0KLQkJCQlEYXRhRXhlY3V0aW9uUHJldmVudGlvbj0iMCINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQlGaWx0ZXI9ImNwcDtjO2N4eDtyYztkZWY7cjtvZGw7aWRsO2hwajtiYXQiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcYmRpc3Rfd2luaW5zdFxleHRyYWN0LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xiZGlzdF93aW5pbnN0XGluc3RhbGwuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsdGVyDQotCQkJCU5hbWU9InpsaWIiDQotCQkJCT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGFkbGVyMzIuYyINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcY3JjMzIuYyINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcaW5mZmFzdC5jIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxpbmZsYXRlLmMiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGluZnRyZWVzLmMiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXHp1dGlsLmMiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQk8L0ZpbHRlcj4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IkhlYWRlciBGaWxlcyINCi0JCQlGaWx0ZXI9Img7aHBwO2h4eDtobTtpbmwiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcYmRpc3Rfd2luaW5zdFxhcmNoaXZlLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJSZXNvdXJjZSBGaWxlcyINCi0JCQlGaWx0ZXI9ImljbztjdXI7Ym1wO2RsZztyYzI7cmN0O2JpbjtyZ3M7Z2lmO2pwZztqcGVnO2pwZSINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xiZGlzdF93aW5pbnN0XGluc3RhbGwucmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xiZGlzdF93aW5pbnN0XFB5dGhvblBvd2VyZWQuYm1wIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJPC9GaWx0ZXI+DQotCTwvRmlsZXM+DQotCTxHbG9iYWxzPg0KLQk8L0dsb2JhbHM+DQotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTOC4wL2J1aWxkLmJhdCBiL1BDL1ZTOC4wL2J1aWxkLmJhdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWJjODE4Ni4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC9idWlsZC5iYXQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1AZWNobyBvZmYKLXJlbSBBIGJhdGNoIHByb2dyYW0gdG8gYnVpbGQgb3IgcmVidWlsZCBhIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbi4KLXJlbSBqdXN0IGZvciBjb252ZW5pZW5jZS4KLQotc2V0bG9jYWwKLXNldCBwbGF0Zj1XaW4zMgotc2V0IGNvbmY9UmVsZWFzZQotc2V0IGJ1aWxkPS9idWlsZAotCi06Q2hlY2tPcHRzCi1pZiAiJTEiPT0iLWMiIChzZXQgY29uZj0lMikgICAgICYgc2hpZnQgJiBzaGlmdCAmIGdvdG8gQ2hlY2tPcHRzCi1pZiAiJTEiPT0iLXAiIChzZXQgcGxhdGY9JTIpICYgc2hpZnQgJiBzaGlmdCAmIGdvdG8gQ2hlY2tPcHRzCi1pZiAiJTEiPT0iLXIiIChzZXQgYnVpbGQ9L3JlYnVpbGQpICAgICYgc2hpZnQgJiBnb3RvIENoZWNrT3B0cwotCi1zZXQgY21kPWRldmVudiBwY2J1aWxkLnNsbiAlYnVpbGQlICIlY29uZiV8JXBsYXRmJSIKLWVjaG8gJWNtZCUKLSVjbWQlCmRpZmYgLS1naXQgYS9QQy9WUzguMC9idWlsZF9lbnYuYmF0IGIvUEMvVlM4LjAvYnVpbGRfZW52LmJhdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGM2N2FlMy4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC9idWlsZF9lbnYuYmF0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotQCVjb21zcGVjJSAvayBlbnYuYmF0ICUqCmRpZmYgLS1naXQgYS9QQy9WUzguMC9idWlsZF9wZ28uYmF0IGIvUEMvVlM4LjAvYnVpbGRfcGdvLmJhdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTM3YjViZi4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC9idWlsZF9wZ28uYmF0CisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotQGVjaG8gb2ZmCi1yZW0gQSBiYXRjaCBwcm9ncmFtIHRvIGJ1aWxkIFBHTyAoUHJvZmlsZSBndWlkZWQgb3B0aW1pemF0aW9uKSBieSBmaXJzdAotcmVtIGJ1aWxkaW5nIGluc3RydW1lbnRlZCBiaW5hcmllcywgdGhlbiBydW5uaW5nIHRoZSB0ZXN0c3VpdGUsIGFuZAotcmVtIGZpbmFsbHkgYnVpbGRpbmcgdGhlIG9wdGltaXplZCBjb2RlLgotcmVtIE5vdGUsIGFmdGVyIHRoZSBmaXJzdCBpbnN0cnVtZW50ZWQgcnVuLCBvbmUgY2FuIGp1c3Qga2VlcCBvbgotcmVtIGJ1aWxkaW5nIHRoZSBQR1VwZGF0ZSBjb25maWd1cmF0aW9uIHdoaWxlIGRldmVsb3BpbmcuCi0KLXNldGxvY2FsCi1zZXQgcGxhdGY9V2luMzIKLQotcmVtIHVzZSB0aGUgcGVyZm9ybWFuY2UgdGVzdHN1aXRlLiAgVGhpcyBpcyBxdWljayBhbmQgc2ltcGxlCi1zZXQgam9iMT0uLlwuLlx0b29sc1xweWJlbmNoXHB5YmVuY2gucHkgLW4gMSAtQyAxIC0td2l0aC1nYwotc2V0IHBhdGgxPS4uXC4uXHRvb2xzXHB5YmVuY2gKLQotcmVtIG9yIHRoZSB3aG9sZSB0ZXN0c3VpdGUgZm9yIG1vcmUgdGhvcm91Z2ggdGVzdGluZwotc2V0IGpvYjI9Li5cLi5cbGliXHRlc3RccmVncnRlc3QucHkKLXNldCBwYXRoMj0uLlwuLlxsaWIKLQotc2V0IGpvYj0lam9iMSUKLXNldCBjbHJwYXRoPSVwYXRoMSUKLQotOkNoZWNrT3B0cwotaWYgIiUxIj09Ii1wIiAoc2V0IHBsYXRmPSUyKSAmIHNoaWZ0ICYgc2hpZnQgJiBnb3RvIENoZWNrT3B0cwotaWYgIiUxIj09Ii0yIiAoc2V0IGpvYj0lam9iMiUpICYgKHNldCBjbHJwYXRoPSVwYXRoMiUpICYgc2hpZnQgJiBnb3RvIENoZWNrT3B0cwotCi1zZXQgUEdJPSVwbGF0ZiUtcGdpCi1zZXQgUEdPPSVwbGF0ZiUtcGdvCi0KLUBlY2hvIG9uCi1yZW0gYnVpbGQgdGhlIGluc3RydW1lbnRlZCB2ZXJzaW9uCi1jYWxsIGJ1aWxkIC1wICVwbGF0ZiUgLWMgUEdJbnN0cnVtZW50Ci0KLXJlbSByZW1vdmUgLnB5YyBmaWxlcywgLnBnYyBmaWxlcyBhbmQgZXhlY3V0ZSB0aGUgam9iCi0lUEdJJVxweXRob24uZXhlIHJtcHljLnB5ICVjbHJwYXRoJQotZGVsICVQR0klXCoucGdjCi0lUEdJJVxweXRob24uZXhlICVqb2IlCi0KLXJlbSBmaW5hbGx5IGJ1aWxkIHRoZSBvcHRpbWl6ZWQgdmVyc2lvbgotaWYgZXhpc3QgJVBHTyUgZGVsIC9zIC9xICVQR08lCi1jYWxsIGJ1aWxkIC1wICVwbGF0ZiUgLWMgUEdVcGRhdGUKLQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvYnVpbGRfc3NsLmJhdCBiL1BDL1ZTOC4wL2J1aWxkX3NzbC5iYXQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1N2IwOGIuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvYnVpbGRfc3NsLmJhdAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLUBlY2hvIG9mZgotaWYgbm90IGRlZmluZWQgSE9TVF9QWVRIT04gKAotICBpZiAlMSBFUVUgRGVidWcgKAotICAgIHNldCBIT1NUX1BZVEhPTj1weXRob25fZC5leGUKLSAgICBpZiBub3QgZXhpc3QgcHl0aG9uMzNfZC5kbGwgZXhpdCAxCi0gICkgRUxTRSAoCi0gICAgc2V0IEhPU1RfUFlUSE9OPXB5dGhvbi5leGUKLSAgICBpZiBub3QgZXhpc3QgcHl0aG9uMzMuZGxsIGV4aXQgMQotICApCi0pCi0lSE9TVF9QWVRIT04lIGJ1aWxkX3NzbC5weSAlMSAlMiAlMwotCmRpZmYgLS1naXQgYS9QQy9WUzguMC9idWlsZF9zc2wucHkgYi9QQy9WUzguMC9idWlsZF9zc2wucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjMTNlZjUuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvYnVpbGRfc3NsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjc3ICswLDAgQEAKLSMgU2NyaXB0IGZvciBidWlsZGluZyB0aGUgX3NzbCBhbmQgX2hhc2hsaWIgbW9kdWxlcyBmb3IgV2luZG93cy4KLSMgVXNlcyBQZXJsIHRvIHNldHVwIHRoZSBPcGVuU1NMIGVudmlyb25tZW50IGNvcnJlY3RseQotIyBhbmQgYnVpbGQgT3BlblNTTCwgdGhlbiBpbnZva2VzIGEgc2ltcGxlIG5tYWtlIHNlc3Npb24KLSMgZm9yIHRoZSBhY3R1YWwgX3NzbC5weWQgYW5kIF9oYXNobGliLnB5ZCBETExzLgotCi0jIFRIRU9SRVRJQ0FMTFksIHlvdSBjYW46Ci0jICogVW5wYWNrIHRoZSBsYXRlc3QgU1NMIHJlbGVhc2Ugb25lIGxldmVsIGFib3ZlIHlvdXIgbWFpbiBQeXRob24gc291cmNlCi0jICAgZGlyZWN0b3J5LiAgSXQgaXMgbGlrZWx5IHlvdSB3aWxsIGFscmVhZHkgZmluZCB0aGUgemxpYiBsaWJyYXJ5IGFuZAotIyAgIGFueSBvdGhlciBleHRlcm5hbCBwYWNrYWdlcyB0aGVyZS4KLSMgKiBJbnN0YWxsIEFjdGl2ZVBlcmwgYW5kIGVuc3VyZSBpdCBpcyBzb21ld2hlcmUgb24geW91ciBwYXRoLgotIyAqIFJ1biB0aGlzIHNjcmlwdCBmcm9tIHRoZSBQQy9WUzguMCBkaXJlY3RvcnkuCi0jCi0jIGl0IHNob3VsZCBjb25maWd1cmUgYW5kIGJ1aWxkIFNTTCwgdGhlbiBidWlsZCB0aGUgX3NzbCBhbmQgX2hhc2hsaWIKLSMgUHl0aG9uIGV4dGVuc2lvbnMgd2l0aG91dCBpbnRlcnZlbnRpb24uCi0KLSMgTW9kaWZpZWQgYnkgQ2hyaXN0aWFuIEhlaW1lcwotIyBOb3cgdGhpcyBzY3JpcHQgc3VwcG9ydHMgcHJlLWdlbmVyYXRlZCBtYWtlZmlsZXMgYW5kIGFzc2VtYmx5IGZpbGVzLgotIyBEZXZlbG9wZXJzIGRvbid0IG5lZWQgYW4gaW5zdGFsbGF0aW9uIG9mIFBlcmwgYW55bW9yZSB0byBidWlsZCBQeXRob24uIEEgc3ZuCi0jIGNoZWNrb3V0IGZyb20gb3VyIHN2biByZXBvc2l0b3J5IGlzIGVub3VnaC4KLSMKLSMgSW4gT3JkZXIgdG8gY3JlYXRlIHRoZSBmaWxlcyBpbiB0aGUgY2FzZSBvZiBhbiB1cGRhdGUgeW91IHN0aWxsIG5lZWQgUGVybC4KLSMgUnVuIGJ1aWxkX3NzbCBpbiB0aGlzIG9yZGVyOgotIyBweXRob24uZXhlIGJ1aWxkX3NzbC5weSBSZWxlYXNlIHg2NAotIyBweXRob24uZXhlIGJ1aWxkX3NzbC5weSBSZWxlYXNlIFdpbjMyCi0KLWltcG9ydCBvcywgc3lzLCByZSwgc2h1dGlsCi0KLSMgRmluZCBhbGwgImZvby5leGUiIGZpbGVzIG9uIHRoZSBQQVRILgotZGVmIGZpbmRfYWxsX29uX3BhdGgoZmlsZW5hbWUsIGV4dHJhcyA9IE5vbmUpOgotICAgIGVudHJpZXMgPSBvcy5lbnZpcm9uWyJQQVRIIl0uc3BsaXQob3MucGF0aHNlcCkKLSAgICByZXQgPSBbXQotICAgIGZvciBwIGluIGVudHJpZXM6Ci0gICAgICAgIGZuYW1lID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihwLCBmaWxlbmFtZSkpCi0gICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKGZuYW1lKSBhbmQgZm5hbWUgbm90IGluIHJldDoKLSAgICAgICAgICAgIHJldC5hcHBlbmQoZm5hbWUpCi0gICAgaWYgZXh0cmFzOgotICAgICAgICBmb3IgcCBpbiBleHRyYXM6Ci0gICAgICAgICAgICBmbmFtZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ocCwgZmlsZW5hbWUpKQotICAgICAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoZm5hbWUpIGFuZCBmbmFtZSBub3QgaW4gcmV0OgotICAgICAgICAgICAgICAgIHJldC5hcHBlbmQoZm5hbWUpCi0gICAgcmV0dXJuIHJldAotCi0jIEZpbmQgYSBzdWl0YWJsZSBQZXJsIGluc3RhbGxhdGlvbiBmb3IgT3BlblNTTC4KLSMgY3lnd2luIHBlcmwgZG9lcyAqbm90KiB3b3JrLiAgQWN0aXZlUGVybCBkb2VzLgotIyBCZWluZyBhIFBlcmwgZHVtbXksIHRoZSBzaW1wbGVzdCB3YXkgSSBjYW4gY2hlY2sgaXMgaWYgdGhlICJXaW4zMiIgcGFja2FnZQotIyBpcyBhdmFpbGFibGUuCi1kZWYgZmluZF93b3JraW5nX3BlcmwocGVybHMpOgotICAgIGZvciBwZXJsIGluIHBlcmxzOgotICAgICAgICBmaCA9IG9zLnBvcGVuKCciJXMiIC1lICJ1c2UgV2luMzI7IicgJSBwZXJsKQotICAgICAgICBmaC5yZWFkKCkKLSAgICAgICAgcmMgPSBmaC5jbG9zZSgpCi0gICAgICAgIGlmIHJjOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgcmV0dXJuIHBlcmwKLSAgICBwcmludCgiQ2FuIG5vdCBmaW5kIGEgc3VpdGFibGUgUEVSTDoiKQotICAgIGlmIHBlcmxzOgotICAgICAgICBwcmludCgiIHRoZSBmb2xsb3dpbmcgcGVybCBpbnRlcnByZXRlcnMgd2VyZSBmb3VuZDoiKQotICAgICAgICBmb3IgcCBpbiBwZXJsczoKLSAgICAgICAgICAgIHByaW50KCIgIiwgcCkKLSAgICAgICAgcHJpbnQoIiBOb25lIG9mIHRoZXNlIHZlcnNpb25zIGFwcGVhciBzdWl0YWJsZSBmb3IgYnVpbGRpbmcgT3BlblNTTCIpCi0gICAgZWxzZToKLSAgICAgICAgcHJpbnQoIiBOTyBwZXJsIGludGVycHJldGVycyB3ZXJlIGZvdW5kIG9uIHRoaXMgbWFjaGluZSBhdCBhbGwhIikKLSAgICBwcmludCgiIFBsZWFzZSBpbnN0YWxsIEFjdGl2ZVBlcmwgYW5kIGVuc3VyZSBpdCBhcHBlYXJzIG9uIHlvdXIgcGF0aCIpCi0gICAgcmV0dXJuIE5vbmUKLQotIyBMb2NhdGUgdGhlIGJlc3QgU1NMIGRpcmVjdG9yeSBnaXZlbiBhIGZldyByb290cyB0byBsb29rIGludG8uCi1kZWYgZmluZF9iZXN0X3NzbF9kaXIoc291cmNlcyk6Ci0gICAgY2FuZGlkYXRlcyA9IFtdCi0gICAgZm9yIHMgaW4gc291cmNlczoKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBub3RlOiBkbyBub3QgYWJzcGF0aCBzOyB0aGUgYnVpbGQgd2lsbCBmYWlsIGlmIGFueQotICAgICAgICAgICAgIyBoaWdoZXIgdXAgZGlyZWN0b3J5IG5hbWUgaGFzIHNwYWNlcyBpbiBpdC4KLSAgICAgICAgICAgIGZuYW1lcyA9IG9zLmxpc3RkaXIocykKLSAgICAgICAgZXhjZXB0IG9zLmVycm9yOgotICAgICAgICAgICAgZm5hbWVzID0gW10KLSAgICAgICAgZm9yIGZuYW1lIGluIGZuYW1lczoKLSAgICAgICAgICAgIGZxbiA9IG9zLnBhdGguam9pbihzLCBmbmFtZSkKLSAgICAgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoZnFuKSBhbmQgZm5hbWUuc3RhcnRzd2l0aCgib3BlbnNzbC0iKToKLSAgICAgICAgICAgICAgICBjYW5kaWRhdGVzLmFwcGVuZChmcW4pCi0gICAgIyBOb3cgd2UgaGF2ZSBhbGwgdGhlIGNhbmRpZGF0ZXMsIGxvY2F0ZSB0aGUgYmVzdC4KLSAgICBiZXN0X3BhcnRzID0gW10KLSAgICBiZXN0X25hbWUgPSBOb25lCi0gICAgZm9yIGMgaW4gY2FuZGlkYXRlczoKLSAgICAgICAgcGFydHMgPSByZS5zcGxpdCgiWy4tXSIsIG9zLnBhdGguYmFzZW5hbWUoYykpWzE6XQotICAgICAgICAjIGVnIC0gb3BlbnNzbC0wLjkuNy1iZXRhMSAtIGlnbm9yZSBhbGwgImJldGEiIG9yIGFueSBvdGhlciBxdWFsaWZpZXJzCi0gICAgICAgIGlmIGxlbihwYXJ0cykgPj0gNDoKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGlmIHBhcnRzID4gYmVzdF9wYXJ0czoKLSAgICAgICAgICAgIGJlc3RfcGFydHMgPSBwYXJ0cwotICAgICAgICAgICAgYmVzdF9uYW1lID0gYwotICAgIGlmIGJlc3RfbmFtZSBpcyBub3QgTm9uZToKLSAgICAgICAgcHJpbnQoIkZvdW5kIGFuIFNTTCBkaXJlY3RvcnkgYXQgJyVzJyIgJSAoYmVzdF9uYW1lLCkpCi0gICAgZWxzZToKLSAgICAgICAgcHJpbnQoIkNvdWxkIG5vdCBmaW5kIGFuIFNTTCBkaXJlY3RvcnkgaW4gJyVzJyIgJSAoc291cmNlcywpKQotICAgIHN5cy5zdGRvdXQuZmx1c2goKQotICAgIHJldHVybiBiZXN0X25hbWUKLQotZGVmIGNyZWF0ZV9tYWtlZmlsZTY0KG1ha2VmaWxlLCBtMzIpOgotICAgICIiIkNyZWF0ZSBhbmQgZml4IG1ha2VmaWxlIGZvciA2NGJpdAotCi0gICAgUmVwbGFjZSAzMiB3aXRoIDY0Yml0IGRpcmVjdG9yaWVzCi0gICAgIiIiCi0gICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKG0zMik6Ci0gICAgICAgIHJldHVybgotICAgIHdpdGggb3BlbihtMzIpIGFzIGZpbjoKLSAgICAgICAgd2l0aCBvcGVuKG1ha2VmaWxlLCAndycpIGFzIGZvdXQ6Ci0gICAgICAgICAgICBmb3IgbGluZSBpbiBmaW46Ci0gICAgICAgICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgiPXRtcDMyIiwgIj10bXA2NCIpCi0gICAgICAgICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgiPW91dDMyIiwgIj1vdXQ2NCIpCi0gICAgICAgICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSgiPWluYzMyIiwgIj1pbmM2NCIpCi0gICAgICAgICAgICAgICAgIyBmb3JjZSA2NCBiaXQgbWFjaGluZQotICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoIk1LTElCPWxpYiIsICJNS0xJQj1saWIgL01BQ0hJTkU6WDY0IikKLSAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCJMRkxBR1M9IiwgIkxGTEFHUz0vTUFDSElORTpYNjQgIikKLSAgICAgICAgICAgICAgICAjIGRvbid0IGxpbmsgYWdhaW5zdCB0aGUgbGliIG9uIDY0Yml0IHN5c3RlbXMKLSAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCJidWZmZXJvdmVyZmxvd3UubGliIiwgIiIpCi0gICAgICAgICAgICAgICAgZm91dC53cml0ZShsaW5lKQotICAgIG9zLnVubGluayhtMzIpCi0KLWRlZiBmaXhfbWFrZWZpbGUobWFrZWZpbGUpOgotICAgICIiIkZpeCBzb21lIHN0dWZmIGluIGFsbCBtYWtlZmlsZXMKLSAgICAiIiIKLSAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUobWFrZWZpbGUpOgotICAgICAgICByZXR1cm4KLSAgICB3aXRoIG9wZW4obWFrZWZpbGUpIGFzIGZpbjoKLSAgICAgICAgbGluZXMgPSBmaW4ucmVhZGxpbmVzKCkKLSAgICB3aXRoIG9wZW4obWFrZWZpbGUsICd3JykgYXMgZm91dDoKLSAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6Ci0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoIlBFUkw9Iik6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgiQ1A9Iik6Ci0gICAgICAgICAgICAgICAgbGluZSA9ICJDUD1jb3B5XG4iCi0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoIk1LRElSPSIpOgotICAgICAgICAgICAgICAgIGxpbmUgPSAiTUtESVI9bWtkaXJcbiIKLSAgICAgICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgiQ0ZMQUc9Iik6Ci0gICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuc3RyaXAoKQotICAgICAgICAgICAgICAgIGZvciBhbGdvIGluICgiUkM1IiwgIk1EQzIiLCAiSURFQSIpOgotICAgICAgICAgICAgICAgICAgICBub2FsZ28gPSAiIC1ET1BFTlNTTF9OT18lcyIgJSBhbGdvCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vYWxnbyBub3QgaW4gbGluZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lICsgbm9hbGdvCi0gICAgICAgICAgICAgICAgbGluZSA9IGxpbmUgKyAnXG4nCi0gICAgICAgICAgICBmb3V0LndyaXRlKGxpbmUpCi0KLWRlZiBydW5fY29uZmlndXJlKGNvbmZpZ3VyZSwgZG9fc2NyaXB0KToKLSAgICBwcmludCgicGVybCBDb25maWd1cmUgIitjb25maWd1cmUrIiBuby1pZGVhIG5vLW1kYzIiKQotICAgIG9zLnN5c3RlbSgicGVybCBDb25maWd1cmUgIitjb25maWd1cmUrIiBuby1pZGVhIG5vLW1kYzIiKQotICAgIHByaW50KGRvX3NjcmlwdCkKLSAgICBvcy5zeXN0ZW0oZG9fc2NyaXB0KQotCi1kZWYgY21wKGYxLCBmMik6Ci0gICAgYnVmc2l6ZSA9IDEwMjQgKiA4Ci0gICAgd2l0aCBvcGVuKGYxLCAncmInKSBhcyBmcDEsIG9wZW4oZjIsICdyYicpIGFzIGZwMjoKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGIxID0gZnAxLnJlYWQoYnVmc2l6ZSkKLSAgICAgICAgICAgIGIyID0gZnAyLnJlYWQoYnVmc2l6ZSkKLSAgICAgICAgICAgIGlmIGIxICE9IGIyOgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICAgICAgaWYgbm90IGIxOgotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLWRlZiBjb3B5KHNyYywgZHN0KToKLSAgICBpZiBvcy5wYXRoLmlzZmlsZShkc3QpIGFuZCBjbXAoc3JjLCBkc3QpOgotICAgICAgICByZXR1cm4KLSAgICBzaHV0aWwuY29weShzcmMsIGRzdCkKLQotZGVmIG1haW4oKToKLSAgICBidWlsZF9hbGwgPSAiLWEiIGluIHN5cy5hcmd2Ci0gICAgaWYgc3lzLmFyZ3ZbMV0gPT0gIlJlbGVhc2UiOgotICAgICAgICBkZWJ1ZyA9IEZhbHNlCi0gICAgZWxpZiBzeXMuYXJndlsxXSA9PSAiRGVidWciOgotICAgICAgICBkZWJ1ZyA9IFRydWUKLSAgICBlbHNlOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHN0cihzeXMuYXJndikpCi0KLSAgICBpZiBzeXMuYXJndlsyXSA9PSAiV2luMzIiOgotICAgICAgICBhcmNoID0gIng4NiIKLSAgICAgICAgY29uZmlndXJlID0gIlZDLVdJTjMyIgotICAgICAgICBkb19zY3JpcHQgPSAibXNcXGRvX25hc20iCi0gICAgICAgIG1ha2VmaWxlPSJtc1xcbnQubWFrIgotICAgICAgICBtMzIgPSBtYWtlZmlsZQotICAgICAgICBkaXJzdWZmaXggPSAiMzIiCi0gICAgZWxpZiBzeXMuYXJndlsyXSA9PSAieDY0IjoKLSAgICAgICAgYXJjaD0iYW1kNjQiCi0gICAgICAgIGNvbmZpZ3VyZSA9ICJWQy1XSU42NEEiCi0gICAgICAgIGRvX3NjcmlwdCA9ICJtc1xcZG9fd2luNjRhIgotICAgICAgICBtYWtlZmlsZSA9ICJtc1xcbnQ2NC5tYWsiCi0gICAgICAgIG0zMiA9IG1ha2VmaWxlLnJlcGxhY2UoJzY0JywgJycpCi0gICAgICAgIGRpcnN1ZmZpeCA9ICI2NCIKLSAgICAgICAgI29zLmVudmlyb25bIlZTRVhUQ09NUF9VU0VDTCJdID0gIk1TX09QVEVST04iCi0gICAgZWxzZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihzdHIoc3lzLmFyZ3YpKQotCi0gICAgbWFrZV9mbGFncyA9ICIiCi0gICAgaWYgYnVpbGRfYWxsOgotICAgICAgICBtYWtlX2ZsYWdzID0gIi1hIgotICAgICMgcGVybCBzaG91bGQgYmUgb24gdGhlIHBhdGgsIGJ1dCB3ZSBhbHNvIGxvb2sgaW4gIlxwZXJsIiBhbmQgImM6XFxwZXJsIgotICAgICMgYXMgIndlbGwga25vd24iIGxvY2F0aW9ucwotICAgIHBlcmxzID0gZmluZF9hbGxfb25fcGF0aCgicGVybC5leGUiLCBbIlxccGVybFxcYmluIiwgIkM6XFxwZXJsXFxiaW4iXSkKLSAgICBwZXJsID0gZmluZF93b3JraW5nX3BlcmwocGVybHMpCi0gICAgaWYgcGVybDoKLSAgICAgICAgcHJpbnQoIkZvdW5kIGEgd29ya2luZyBwZXJsIGF0ICclcyciICUgKHBlcmwsKSkKLSAgICBlbHNlOgotICAgICAgICBwcmludCgiTm8gUGVybCBpbnN0YWxsYXRpb24gd2FzIGZvdW5kLiBFeGlzdGluZyBNYWtlZmlsZXMgYXJlIHVzZWQuIikKLSAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKLSAgICAjIExvb2sgZm9yIFNTTCAzIGxldmVscyB1cCBmcm9tIFBDL1ZTOC4wIC0gaWUsIHNhbWUgcGxhY2UgemxpYiBldGMgYWxsIGxpdmUuCi0gICAgc3NsX2RpciA9IGZpbmRfYmVzdF9zc2xfZGlyKCgiLi5cXC4uXFwuLiIsKSkKLSAgICBpZiBzc2xfZGlyIGlzIE5vbmU6Ci0gICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICBvbGRfY2QgPSBvcy5nZXRjd2QoKQotICAgIHRyeToKLSAgICAgICAgb3MuY2hkaXIoc3NsX2RpcikKLSAgICAgICAgIyByZWJ1aWxkIG1ha2VmaWxlIHdoZW4gd2UgZG8gdGhlIHJvbGUgb3ZlciBmcm9tIDMyIHRvIDY0IGJ1aWxkCi0gICAgICAgIGlmIGFyY2ggPT0gImFtZDY0IiBhbmQgb3MucGF0aC5pc2ZpbGUobTMyKSBhbmQgbm90IG9zLnBhdGguaXNmaWxlKG1ha2VmaWxlKToKLSAgICAgICAgICAgIG9zLnVubGluayhtMzIpCi0KLSAgICAgICAgIyBJZiB0aGUgc3NsIG1ha2VmaWxlcyBkbyBub3QgZXhpc3QsIHdlIGludm9rZSBQZXJsIHRvIGdlbmVyYXRlIHRoZW0uCi0gICAgICAgICMgRHVlIHRvIGEgYnVnIGluIHRoaXMgc2NyaXB0LCB0aGUgbWFrZWZpbGUgc29tZXRpbWVzIGVuZGVkIHVwIGVtcHR5Ci0gICAgICAgICMgRm9yY2UgYSByZWdlbmVyYXRpb24gaWYgaXQgaXMuCi0gICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShtYWtlZmlsZSkgb3Igb3MucGF0aC5nZXRzaXplKG1ha2VmaWxlKT09MDoKLSAgICAgICAgICAgIGlmIHBlcmwgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBwcmludCgiUGVybCBpcyByZXF1aXJlZCB0byBidWlsZCB0aGUgbWFrZWZpbGVzISIpCi0gICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAgICAgICAgcHJpbnQoIkNyZWF0aW5nIHRoZSBtYWtlZmlsZXMuLi4iKQotICAgICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCi0gICAgICAgICAgICAjIFB1dCBvdXIgd29ya2luZyBQZXJsIGF0IHRoZSBmcm9udCBvZiBvdXIgcGF0aAotICAgICAgICAgICAgb3MuZW52aXJvblsiUEFUSCJdID0gb3MucGF0aC5kaXJuYW1lKHBlcmwpICsgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aHNlcCArIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLmVudmlyb25bIlBBVEgiXQotICAgICAgICAgICAgcnVuX2NvbmZpZ3VyZShjb25maWd1cmUsIGRvX3NjcmlwdCkKLSAgICAgICAgICAgIGlmIGRlYnVnOgotICAgICAgICAgICAgICAgIHByaW50KCJPcGVuU1NMIGRlYnVnIGJ1aWxkcyBhcmVuJ3Qgc3VwcG9ydGVkLiIpCi0gICAgICAgICAgICAjaWYgYXJjaD09Ing4NiIgYW5kIGRlYnVnOgotICAgICAgICAgICAgIyAgICAjIHRoZSBkb19tYXNtIHNjcmlwdCBpbiBvcGVuc3NsIGRvZXNuJ3QgZ2VuZXJhdGUgYSBkZWJ1ZwotICAgICAgICAgICAgIyAgICAjIGJ1aWxkIG1ha2VmaWxlIHNvIHdlIGdlbmVyYXRlIGl0IGhlcmU6Ci0gICAgICAgICAgICAjICAgIG9zLnN5c3RlbSgicGVybCB1dGlsXG1rMW1mLnBsIGRlYnVnICIrY29uZmlndXJlKyIgPiIrbWFrZWZpbGUpCi0KLSAgICAgICAgICAgIGlmIGFyY2ggPT0gImFtZDY0IjoKLSAgICAgICAgICAgICAgICBjcmVhdGVfbWFrZWZpbGU2NChtYWtlZmlsZSwgbTMyKQotICAgICAgICAgICAgZml4X21ha2VmaWxlKG1ha2VmaWxlKQotICAgICAgICAgICAgY29weShyImNyeXB0b1xidWlsZGluZi5oIiwgciJjcnlwdG9cYnVpbGRpbmZfJXMuaCIgJSBhcmNoKQotICAgICAgICAgICAgY29weShyImNyeXB0b1xvcGVuc3NsY29uZi5oIiwgciJjcnlwdG9cb3BlbnNzbGNvbmZfJXMuaCIgJSBhcmNoKQotCi0gICAgICAgICMgSWYgdGhlIGFzc2VtYmxlciBmaWxlcyBkb24ndCBleGlzdCBpbiB0bXBYWCwgY29weSB0aGVtIHRoZXJlCi0gICAgICAgIGlmIHBlcmwgaXMgTm9uZSBhbmQgb3MucGF0aC5leGlzdHMoImFzbSIrZGlyc3VmZml4KToKLSAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cygidG1wIitkaXJzdWZmaXgpOgotICAgICAgICAgICAgICAgIG9zLm1rZGlyKCJ0bXAiK2RpcnN1ZmZpeCkKLSAgICAgICAgICAgIGZvciBmIGluIG9zLmxpc3RkaXIoImFzbSIrZGlyc3VmZml4KToKLSAgICAgICAgICAgICAgICBpZiBub3QgZi5lbmRzd2l0aCgiLmFzbSIpOiBjb250aW51ZQotICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKHIidG1wJXNcJXMiICUgKGRpcnN1ZmZpeCwgZikpOiBjb250aW51ZQotICAgICAgICAgICAgICAgIHNodXRpbC5jb3B5KHIiYXNtJXNcJXMiICUgKGRpcnN1ZmZpeCwgZiksICJ0bXAiK2RpcnN1ZmZpeCkKLQotICAgICAgICAjIE5vdyBydW4gbWFrZS4KLSAgICAgICAgaWYgYXJjaCA9PSAiYW1kNjQiOgotICAgICAgICAgICAgcmMgPSBvcy5zeXN0ZW0oIm1sNjQgLWMgLUZvbXNcXHVwdGFibGUub2JqIG1zXFx1cHRhYmxlLmFzbSIpCi0gICAgICAgICAgICBpZiByYzoKLSAgICAgICAgICAgICAgICBwcmludCgibWw2NCBhc3NlbWJsZXIgaGFzIGZhaWxlZC4iKQotICAgICAgICAgICAgICAgIHN5cy5leGl0KHJjKQotCi0gICAgICAgIGNvcHkociJjcnlwdG9cYnVpbGRpbmZfJXMuaCIgJSBhcmNoLCByImNyeXB0b1xidWlsZGluZi5oIikKLSAgICAgICAgY29weShyImNyeXB0b1xvcGVuc3NsY29uZl8lcy5oIiAlIGFyY2gsIHIiY3J5cHRvXG9wZW5zc2xjb25mLmgiKQotCi0gICAgICAgICNtYWtlQ29tbWFuZCA9ICJubWFrZSAvbm9sb2dvIFBFUkw9XCIlc1wiIC1mIFwiJXNcIiIgJShwZXJsLCBtYWtlZmlsZSkKLSAgICAgICAgbWFrZUNvbW1hbmQgPSAibm1ha2UgL25vbG9nbyAtZiBcIiVzXCIiICUgbWFrZWZpbGUKLSAgICAgICAgcHJpbnQoIkV4ZWN1dGluZyBzc2wgbWFrZWZpbGVzOiIsIG1ha2VDb21tYW5kKQotICAgICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKLSAgICAgICAgcmMgPSBvcy5zeXN0ZW0obWFrZUNvbW1hbmQpCi0gICAgICAgIGlmIHJjOgotICAgICAgICAgICAgcHJpbnQoIkV4ZWN1dGluZyAiK21ha2VmaWxlKyIgZmFpbGVkIikKLSAgICAgICAgICAgIHByaW50KHJjKQotICAgICAgICAgICAgc3lzLmV4aXQocmMpCi0gICAgZmluYWxseToKLSAgICAgICAgb3MuY2hkaXIob2xkX2NkKQotICAgIHN5cy5leGl0KHJjKQotCi1pZiBfX25hbWVfXz09J19fbWFpbl9fJzoKLSAgICBtYWluKCkKZGlmZiAtLWdpdCBhL1BDL1ZTOC4wL2J1aWxkX3RraW50ZXIucHkgYi9QQy9WUzguMC9idWlsZF90a2ludGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTU5MDM5Li4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL2J1aWxkX3RraW50ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi0iIiJTY3JpcHQgdG8gY29tcGlsZSB0aGUgZGVwZW5kZW5jaWVzIG9mIF90a2ludGVyCi0KLUNvcHlyaWdodCAoYykgMjAwNyBieSBDaHJpc3RpYW4gSGVpbWVzIDxjaHJpc3RpYW5AY2hlaW1lcy5kZT4KLQotTGljZW5zZWQgdG8gUFNGIHVuZGVyIGEgQ29udHJpYnV0b3IgQWdyZWVtZW50LgotIiIiCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi1oZXJlID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCi1wYXIgPSBvcy5wYXRoLnBhcmRpcgotCi1pZiAxOgotICAgIFRDTCA9ICJ0Y2w4LjQuMTYiCi0gICAgVEsgPSAidGs4LjQuMTYiCi0gICAgVElYID0gInRpeC04LjQuMCIKLWVsc2U6Ci0gICAgVENMID0gInRjbDguNWIzIgotICAgIFRLID0gInRjbDguNWIzIgotICAgIFRJWCA9ICJUaXg4LjQuMiIKLQotUk9PVCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgcGFyLCBwYXIsIHBhcikpCi0jIFdpbmRvd3MgMjAwMCBjb21wYXRpYmlsaXR5OiBXSU5WRVIgMHgwNTAwCi0jIGh0dHA6Ly9tc2RuMi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvYWEzODM3NDUuYXNweAotTk1BS0UgPSAibm1ha2UgL25vbG9nbyAvZiAlcyBDT01QSUxFUkZMQUdTPS1EV0lOVkVSPTB4MDUwMCAlcyAlcyIKLQotZGVmIG5tYWtlKG1ha2VmaWxlLCBjb21tYW5kPSIiLCAqKmt3KToKLSAgICBkZWZpbmVzID0gJyAnLmpvaW4oaysnPScrdiBmb3IgaywgdiBpbiBrdy5pdGVtcygpKQotICAgIGNtZCA9IE5NQUtFICUgKG1ha2VmaWxlLCBkZWZpbmVzLCBjb21tYW5kKQotICAgIHByaW50KCJcblxuIitjbWQrIlxuIikKLSAgICBpZiBvcy5zeXN0ZW0oY21kKSAhPSAwOgotICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoY21kKQotCi1kZWYgYnVpbGQocGxhdGZvcm0sIGNsZWFuKToKLSAgICBpZiBwbGF0Zm9ybSA9PSAiV2luMzIiOgotICAgICAgICBkZXN0ID0gb3MucGF0aC5qb2luKFJPT1QsICJ0Y2x0ayIpCi0gICAgICAgIG1hY2hpbmUgPSAiWDg2IgotICAgIGVsaWYgcGxhdGZvcm0gPT0gIng2NCI6Ci0gICAgICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4oUk9PVCwgInRjbHRrNjQiKQotICAgICAgICBtYWNoaW5lID0gIlg2NCIKLSAgICBlbHNlOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHBsYXRmb3JtKQotCi0gICAgIyBUQ0wKLSAgICB0Y2xkaXIgPSBvcy5wYXRoLmpvaW4oUk9PVCwgVENMKQotICAgIGlmIDE6Ci0gICAgICAgIG9zLmNoZGlyKG9zLnBhdGguam9pbih0Y2xkaXIsICJ3aW4iKSkKLSAgICAgICAgaWYgY2xlYW46Ci0gICAgICAgICAgICBubWFrZSgibWFrZWZpbGUudmMiLCAiY2xlYW4iKQotICAgICAgICBubWFrZSgibWFrZWZpbGUudmMiKQotICAgICAgICBubWFrZSgibWFrZWZpbGUudmMiLCAiaW5zdGFsbCIsIElOU1RBTExESVI9ZGVzdCkKLQotICAgICMgVEsKLSAgICBpZiAxOgotICAgICAgICBvcy5jaGRpcihvcy5wYXRoLmpvaW4oUk9PVCwgVEssICJ3aW4iKSkKLSAgICAgICAgaWYgY2xlYW46Ci0gICAgICAgICAgICBubWFrZSgibWFrZWZpbGUudmMiLCAiY2xlYW4iLCBUQ0xESVI9dGNsZGlyKQotICAgICAgICBubWFrZSgibWFrZWZpbGUudmMiLCBUQ0xESVI9dGNsZGlyKQotICAgICAgICBubWFrZSgibWFrZWZpbGUudmMiLCAiaW5zdGFsbCIsIFRDTERJUj10Y2xkaXIsIElOU1RBTExESVI9ZGVzdCkKLQotICAgICMgVElYCi0gICAgaWYgMToKLSAgICAgICAgIyBweXRob245Lm1hayBpcyBhdmFpbGFibGUgYXQgaHR0cDovL3N2bi5weXRob24ub3JnCi0gICAgICAgIG9zLmNoZGlyKG9zLnBhdGguam9pbihST09ULCBUSVgsICJ3aW4iKSkKLSAgICAgICAgaWYgY2xlYW46Ci0gICAgICAgICAgICBubWFrZSgicHl0aG9uOS5tYWsiLCAiY2xlYW4iKQotICAgICAgICBubWFrZSgicHl0aG9uOS5tYWsiLCBNQUNISU5FPW1hY2hpbmUpCi0gICAgICAgIG5tYWtlKCJweXRob245Lm1hayIsICJpbnN0YWxsIikKLQotZGVmIG1haW4oKToKLSAgICBpZiBsZW4oc3lzLmFyZ3YpIDwgMiBvciBzeXMuYXJndlsxXSBub3QgaW4gKCJXaW4zMiIsICJ4NjQiKToKLSAgICAgICAgcHJpbnQoIiVzIFdpbjMyfHg2NCIgJSBzeXMuYXJndlswXSkKLSAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIGlmICItYyIgaW4gc3lzLmFyZ3Y6Ci0gICAgICAgIGNsZWFuID0gVHJ1ZQotICAgIGVsc2U6Ci0gICAgICAgIGNsZWFuID0gRmFsc2UKLQotICAgIGJ1aWxkKHN5cy5hcmd2WzFdLCBjbGVhbikKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvYnoyLnZjcHJvaiBiL1BDL1ZTOC4wL2J6Mi52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmMTE5NzkuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvYnoyLnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDU4MSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOC4wMCINCi0JTmFtZT0iYnoyIg0KLQlQcm9qZWN0R1VJRD0iezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0iDQotCVJvb3ROYW1lc3BhY2U9ImJ6MiINCi0JS2V5d29yZD0iV2luMzJQcm9qIg0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKGJ6MkRpcikiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfRklMRV9PRkZTRVRfQklUUz02NDtfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNzAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZF9kLnZzcHJvcHM7Llx4NjQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiQoYnoyRGlyKSINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDE3MDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChiejJEaXIpIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTcwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChiejJEaXIpIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTcwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChiejJEaXIpIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTcwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiQoYnoyRGlyKSINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDE3MDAwMCINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChiejJEaXIpIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTcwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKGJ6MkRpcikiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfRklMRV9PRkZTRVRfQklUUz02NDtfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNzAwMDAiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJTb3VyY2UgRmlsZXMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xiejJtb2R1bGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9ImJ6aXAyIDEuMC42IEhlYWRlciBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIkKGJ6MkRpcilcYnpsaWIuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9IiQoYnoyRGlyKVxiemxpYl9wcml2YXRlLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJiemlwMiAxLjAuNiBTb3VyY2UgRmlsZXMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iJChiejJEaXIpXGJsb2Nrc29ydC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iJChiejJEaXIpXGJ6bGliLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIkKGJ6MkRpcilcY29tcHJlc3MuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9IiQoYnoyRGlyKVxjcmN0YWJsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iJChiejJEaXIpXGRlY29tcHJlc3MuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9IiQoYnoyRGlyKVxodWZmbWFuLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIkKGJ6MkRpcilccmFuZHRhYmxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvZGVidWcudnNwcm9wcyBiL1BDL1ZTOC4wL2RlYnVnLnZzcHJvcHMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjNjQzY2IuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvZGVidWcudnNwcm9wcworKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9wZXJ0eVNoZWV0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI4LjAwIg0KLQlOYW1lPSJkZWJ1ZyINCi0JPg0KLQk8VG9vbA0KLQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfREVCVUciDQotCS8+DQotCTxVc2VyTWFjcm8NCi0JCU5hbWU9IktpbGxQeXRob25FeGUiDQotCQlWYWx1ZT0iJChPdXREaXIpXGtpbGxfcHl0aG9uX2QuZXhlIg0KLQkvPg0KLTwvVmlzdWFsU3R1ZGlvUHJvcGVydHlTaGVldD4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC9lbnYuYmF0IGIvUEMvVlM4LjAvZW52LmJhdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTQ5OTBhOC4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC9lbnYuYmF0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1AZWNobyBvZmYKLXNldCBWUzg9JVByb2dyYW1GaWxlcyVcTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gOAotZWNobyBCdWlsZCBlbnZpcm9ubWVudHM6IHg4NiwgaWE2NCwgYW1kNjQsIHg4Nl9hbWQ2NCwgeDg2X2lhNjQKLWVjaG8uCi1jYWxsICIlVlM4JVxWQ1x2Y3ZhcnNhbGwuYmF0IiAlMQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvZmllbGQzLnB5IGIvUEMvVlM4LjAvZmllbGQzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZGNiZTM2Li4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL2ZpZWxkMy5weQorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLSMgQW4gYWJzdXJkIHdvcmthcm91bmQgZm9yIHRoZSBsYWNrIG9mIGFyaXRobWV0aWMgaW4gTVMncyByZXNvdXJjZSBjb21waWxlci4KLSMgQWZ0ZXIgYnVpbGRpbmcgUHl0aG9uLCBydW4gdGhpcywgdGhlbiBwYXN0ZSB0aGUgb3V0cHV0IGludG8gdGhlIGFwcHJvcHJpYXRlCi0jIHBhcnQgb2YgUENccHl0aG9uX250LnJjLgotIyBFeGFtcGxlIG91dHB1dDoKLSMKLSMgKiBGb3IgMi4zYTAsCi0jICogUFlfTUlDUk9fVkVSU0lPTiA9IDAKLSMgKiBQWV9SRUxFQVNFX0xFVkVMID0gJ2FscGhhJyA9IDB4QQotIyAqIFBZX1JFTEVBU0VfU0VSSUFMID0gMQotIyAqCi0jICogYW5kIDAqMTAwMCArIDEwKjEwICsgMSA9IDEwMS4KLSMgKi8KLSMgI2RlZmluZSBGSUVMRDMgMTAxCi0KLWltcG9ydCBzeXMKLQotbWFqb3IsIG1pbm9yLCBtaWNybywgbGV2ZWwsIHNlcmlhbCA9IHN5cy52ZXJzaW9uX2luZm8KLWxldmVsbnVtID0geydhbHBoYSc6IDB4QSwKLSAgICAgICAgICAgICdiZXRhJzogMHhCLAotICAgICAgICAgICAgJ2NhbmRpZGF0ZSc6IDB4QywKLSAgICAgICAgICAgICdmaW5hbCc6IDB4RiwKLSAgICAgICAgICAgfVtsZXZlbF0KLXN0cmluZyA9IHN5cy52ZXJzaW9uLnNwbGl0KClbMF0gIyBsaWtlICcyLjNhMCcKLQotcHJpbnQoIiAqIEZvciAlcywiICUgc3RyaW5nKQotcHJpbnQoIiAqIFBZX01JQ1JPX1ZFUlNJT04gPSAlZCIgJSBtaWNybykKLXByaW50KCIgKiBQWV9SRUxFQVNFX0xFVkVMID0gJXIgPSAlcyIgJSAobGV2ZWwsIGhleChsZXZlbG51bSkpKQotcHJpbnQoIiAqIFBZX1JFTEVBU0VfU0VSSUFMID0gJWQiICUgc2VyaWFsKQotcHJpbnQoIiAqIikKLQotZmllbGQzID0gbWljcm8gKiAxMDAwICsgbGV2ZWxudW0gKiAxMCArIHNlcmlhbAotCi1wcmludCgiICogYW5kICVkKjEwMDAgKyAlZCoxMCArICVkID0gJWQiICUgKG1pY3JvLCBsZXZlbG51bSwgc2VyaWFsLCBmaWVsZDMpKQotcHJpbnQoIiAqLyIpCi1wcmludCgiI2RlZmluZSBGSUVMRDMiLCBmaWVsZDMpCmRpZmYgLS1naXQgYS9QQy9WUzguMC9pZGxlLmJhdCBiL1BDL1ZTOC4wL2lkbGUuYmF0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjNlNzA0Li4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL2lkbGUuYmF0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotQGVjaG8gb2ZmCi1yZW0gc3RhcnQgaWRsZQotcmVtIFVzYWdlOiAgaWRsZSBbLWRdCi1yZW0gLWQgICBSdW4gRGVidWcgYnVpbGQgKHB5dGhvbl9kLmV4ZSkuICBFbHNlIHJlbGVhc2UgYnVpbGQuCi0KLXNldGxvY2FsCi1zZXQgZXhlPXB5dGhvbgotUEFUSCAlUEFUSCU7Li5cLi5cLi5cdGNsdGtcYmluCi0KLWlmICIlMSI9PSItZCIgKHNldCBleGU9cHl0aG9uX2QpICYgc2hpZnQKLQotc2V0IGNtZD0lZXhlJSAuLi8uLi9MaWIvaWRsZWxpYi9pZGxlLnB5ICUxICUyICUzICU0ICU1ICU2ICU3ICU4ICU5Ci0KLWVjaG8gb24KLSVjbWQlCmRpZmYgLS1naXQgYS9QQy9WUzguMC9raWxsX3B5dGhvbi5jIGIvUEMvVlM4LjAva2lsbF9weXRob24uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmIzMjNkMy4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC9raWxsX3B5dGhvbi5jCisrKyAvZGV2L251bGwKQEAgLTEsMTc4ICswLDAgQEAKLS8qCi0gKiBIZWxwZXIgcHJvZ3JhbSBmb3Iga2lsbGluZyBsaW5nZXJpbmcgcHl0aG9uW19kXS5leGUgcHJvY2Vzc2VzIGJlZm9yZQotICogYnVpbGRpbmcsIHRodXMgYXR0ZW1wdGluZyB0byBhdm9pZCBidWlsZCBmYWlsdXJlcyBkdWUgdG8gZmlsZXMgYmVpbmcKLSAqIGxvY2tlZC4KLSAqLwotCi0jaW5jbHVkZSA8d2luZG93cy5oPgotI2luY2x1ZGUgPHdjaGFyLmg+Ci0jaW5jbHVkZSA8dGxoZWxwMzIuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotCi0jcHJhZ21hIGNvbW1lbnQobGliLCAicHNhcGkiKQotCi0jaWZkZWYgX0RFQlVHCi0jZGVmaW5lIFBZVEhPTl9FWEUgICAgICAgICAgKEwicHl0aG9uX2QuZXhlIikKLSNkZWZpbmUgUFlUSE9OX0VYRV9MRU4gICAgICAoMTIpCi0jZGVmaW5lIEtJTExfUFlUSE9OX0VYRSAgICAgKEwia2lsbF9weXRob25fZC5leGUiKQotI2RlZmluZSBLSUxMX1BZVEhPTl9FWEVfTEVOICgxNykKLSNlbHNlCi0jZGVmaW5lIFBZVEhPTl9FWEUgICAgICAgICAgKEwicHl0aG9uLmV4ZSIpCi0jZGVmaW5lIFBZVEhPTl9FWEVfTEVOICAgICAgKDEwKQotI2RlZmluZSBLSUxMX1BZVEhPTl9FWEUgICAgIChMImtpbGxfcHl0aG9uLmV4ZSIpCi0jZGVmaW5lIEtJTExfUFlUSE9OX0VYRV9MRU4gKDE1KQotI2VuZGlmCi0KLWludAotbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi17Ci0gICAgSEFORExFICAgaHAsIGhzcCwgaHNtOyAvKiBwcm9jZXNzLCBzbmFwc2hvdCBwcm9jZXNzZXMsIHNuYXBzaG90IG1vZHVsZXMgKi8KLSAgICBEV09SRCAgICBkYWMsIG91cl9waWQ7Ci0gICAgc2l6ZV90ICAgbGVuOwotICAgIHdjaGFyX3QgIHBhdGhbTUFYX1BBVEgrMV07Ci0KLSAgICBNT0RVTEVFTlRSWTMyVyAgbWU7Ci0gICAgUFJPQ0VTU0VOVFJZMzJXIHBlOwotCi0gICAgbWUuZHdTaXplID0gc2l6ZW9mKE1PRFVMRUVOVFJZMzJXKTsKLSAgICBwZS5kd1NpemUgPSBzaXplb2YoUFJPQ0VTU0VOVFJZMzJXKTsKLQotICAgIG1lbXNldChwYXRoLCAwLCBNQVhfUEFUSCsxKTsKLQotICAgIG91cl9waWQgPSBHZXRDdXJyZW50UHJvY2Vzc0lkKCk7Ci0KLSAgICBoc20gPSBDcmVhdGVUb29saGVscDMyU25hcHNob3QoVEgzMkNTX1NOQVBNT0RVTEUsIG91cl9waWQpOwotICAgIGlmIChoc20gPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKLSAgICAgICAgcHJpbnRmKCJDcmVhdGVUb29saGVscDMyU25hcHNob3RbMV0gZmFpbGVkOiAlZFxuIiwgR2V0TGFzdEVycm9yKCkpOwotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICBpZiAoIU1vZHVsZTMyRmlyc3RXKGhzbSwgJm1lKSkgewotICAgICAgICBwcmludGYoIk1vZHVsZTMyRmlyc3RXWzFdIGZhaWxlZDogJWRcbiIsIEdldExhc3RFcnJvcigpKTsKLSAgICAgICAgQ2xvc2VIYW5kbGUoaHNtKTsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAgLyoKLSAgICAgKiBFbnVtZXJhdGUgb3ZlciB0aGUgbW9kdWxlcyBmb3IgdGhlIGN1cnJlbnQgcHJvY2VzcyBpbiBvcmRlciB0byBmaW5kCi0gICAgICoga2lsbF9wcm9jZXNzW19kXS5leGUsIHRoZW4gdGFrZSBhIG5vdGUgb2YgdGhlIGRpcmVjdG9yeSBpdCBsaXZlcyBpbi4KLSAgICAgKi8KLSAgICBkbyB7Ci0gICAgICAgIGlmIChfd2NzbmljbXAobWUuc3pNb2R1bGUsIEtJTExfUFlUSE9OX0VYRSwgS0lMTF9QWVRIT05fRVhFX0xFTikpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBsZW4gPSB3Y3NubGVuX3MobWUuc3pFeGVQYXRoLCBNQVhfUEFUSCkgLSBLSUxMX1BZVEhPTl9FWEVfTEVOOwotICAgICAgICB3Y3NuY3B5X3MocGF0aCwgTUFYX1BBVEgrMSwgbWUuc3pFeGVQYXRoLCBsZW4pOyAKLQotICAgICAgICBicmVhazsKLQotICAgIH0gd2hpbGUgKE1vZHVsZTMyTmV4dFcoaHNtLCAmbWUpKTsKLQotICAgIENsb3NlSGFuZGxlKGhzbSk7Ci0KLSAgICBpZiAocGF0aCA9PSBOVUxMKSB7Ci0gICAgICAgIHByaW50ZigiZmFpbGVkIHRvIGRpc2Nlcm4gZGlyZWN0b3J5IG9mIHJ1bm5pbmcgcHJvY2Vzc1xuIik7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIC8qCi0gICAgICogVGFrZSBhIHNuYXBzaG90IG9mIHN5c3RlbSBwcm9jZXNzZXMuICBFbnVtZXJhdGUgb3ZlciB0aGUgc25hcHNob3QsCi0gICAgICogbG9va2luZyBmb3IgcHl0aG9uIHByb2Nlc3Nlcy4gIFdoZW4gd2UgZmluZCBvbmUsIHZlcmlmeSBpdCBsaXZlcwotICAgICAqIGluIHRoZSBzYW1lIGRpcmVjdG9yeSB3ZSBsaXZlIGluLiAgSWYgaXQgZG9lcywga2lsbCBpdC4gIElmIHdlJ3JlCi0gICAgICogdW5hYmxlIHRvIGtpbGwgaXQsIHRyZWF0IHRoaXMgYXMgYSBmYXRhbCBlcnJvciBhbmQgcmV0dXJuIDEuCi0gICAgICogCi0gICAgICogVGhlIHJhdGlvbmFsZSBiZWhpbmQgdGhpcyBpcyB0aGF0IHdlJ3JlIGNhbGxlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIAotICAgICAqIGJ1aWxkIHByb2Nlc3Mgb24gdGhlIGJhc2lzIHRoYXQgd2UnbGwgdGFrZSBjYXJlIG9mIGtpbGxpbmcgYW55Ci0gICAgICogcnVubmluZyBpbnN0YW5jZXMsIHN1Y2ggdGhhdCB0aGUgYnVpbGQgd29uJ3QgZW5jb3VudGVyIHBlcm1pc3Npb24KLSAgICAgKiBkZW5pZWQgZXJyb3JzIGR1cmluZyBsaW5raW5nLiBJZiB3ZSBjYW4ndCBraWxsIG9uZSBvZiB0aGUgcHJvY2Vzc2VzLAotICAgICAqIHdlIGNhbid0IHByb3ZpZGUgdGhpcyBhc3N1cmFuY2UsIGFuZCB0aGUgYnVpbGQgc2hvdWxkbid0IHN0YXJ0LgotICAgICAqLwotCi0gICAgaHNwID0gQ3JlYXRlVG9vbGhlbHAzMlNuYXBzaG90KFRIMzJDU19TTkFQUFJPQ0VTUywgMCk7Ci0gICAgaWYgKGhzcCA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkgewotICAgICAgICBwcmludGYoIkNyZWF0ZVRvb2xoZWxwMzJTbmFwc2hvdFsyXSBmYWlsZWQ6ICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIGlmICghUHJvY2VzczMyRmlyc3RXKGhzcCwgJnBlKSkgewotICAgICAgICBwcmludGYoIlByb2Nlc3MzMkZpcnN0VyBmYWlsZWQ6ICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7Ci0gICAgICAgIENsb3NlSGFuZGxlKGhzcCk7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIGRhYyA9IFBST0NFU1NfUVVFUllfSU5GT1JNQVRJT04gfCBQUk9DRVNTX1ZNX1JFQUQgfCBQUk9DRVNTX1RFUk1JTkFURTsKLSAgICBkbyB7Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogWFhYIFRPRE86IGlmIHdlIHJlYWxseSB3YW50ZWQgdG8gYmUgZmFuY3ksIHdlIGNvdWxkIGNoZWNrIHRoZSAKLSAgICAgICAgICogbW9kdWxlcyBmb3IgYWxsIHByb2Nlc3NlcyAobm90IGp1c3QgdGhlIHB5dGhvbltfZF0uZXhlIG9uZXMpCi0gICAgICAgICAqIGFuZCBzZWUgaWYgYW55IG9mIG91ciBETExzIGFyZSBsb2FkZWQgKGkuZS4gcHl0aG9uMzNbX2RdLmRsbCksCi0gICAgICAgICAqIGFzIHRoYXQgd291bGQgYWxzbyBpbmhpYml0IG91ciBhYmlsaXR5IHRvIHJlYnVpbGQgdGhlIHNvbHV0aW9uLgotICAgICAgICAgKiBOb3Qgd29ydGggbG9vc2luZyBzbGVlcCBvdmVyIHRob3VnaDsgZm9yIG5vdywgYSBzaW1wbGUgY2hlY2sgCi0gICAgICAgICAqIGZvciBqdXN0IHRoZSBweXRob24gZXhlY3V0YWJsZSBzaG91bGQgYmUgc3VmZmljaWVudC4KLSAgICAgICAgICovCi0KLSAgICAgICAgaWYgKF93Y3NuaWNtcChwZS5zekV4ZUZpbGUsIFBZVEhPTl9FWEUsIFBZVEhPTl9FWEVfTEVOKSkKLSAgICAgICAgICAgIC8qIFRoaXMgaXNuJ3QgYSBweXRob24gcHJvY2Vzcy4gKi8KLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIC8qIEl0J3MgYSBweXRob24gcHJvY2Vzcywgc28gZmlndXJlIG91dCB3aGljaCBkaXJlY3RvcnkgaXQncyBpbi4uLiAqLwotICAgICAgICBoc20gPSBDcmVhdGVUb29saGVscDMyU25hcHNob3QoVEgzMkNTX1NOQVBNT0RVTEUsIHBlLnRoMzJQcm9jZXNzSUQpOwotICAgICAgICBpZiAoaHNtID09IElOVkFMSURfSEFORExFX1ZBTFVFKQotICAgICAgICAgICAgLyogCi0gICAgICAgICAgICAgKiBJZiBvdXIgbW9kdWxlIHNuYXBzaG90IGZhaWxzICh3aGljaCB3aWxsIGhhcHBlbiBpZiB3ZSBkb24ndCBvd24KLSAgICAgICAgICAgICAqIHRoZSBwcm9jZXNzKSwganVzdCBpZ25vcmUgaXQgYW5kIGNvbnRpbnVlLiAgKEl0IHNlZW1zIGRpZmZlcmVudAotICAgICAgICAgICAgICogdmVyc2lvbnMgb2YgV2luZG93cyByZXR1cm4gZGlmZmVyZW50IHZhbHVlcyBmb3IgR2V0TGFzdEVycm9yKCkKLSAgICAgICAgICAgICAqIGluIHRoaXMgc2l0dWF0aW9uOyBpdCdzIGVhc2llciB0byBqdXN0IGlnbm9yZSBpdCBhbmQgbW92ZSBvbiB2cy4KLSAgICAgICAgICAgICAqIHN0b3BwaW5nIHRoZSBidWlsZCBmb3Igd2hhdCBjb3VsZCBiZSBhIGZhbHNlIHBvc2l0aXZlLikKLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmICghTW9kdWxlMzJGaXJzdFcoaHNtLCAmbWUpKSB7Ci0gICAgICAgICAgICBwcmludGYoIk1vZHVsZTMyRmlyc3RXWzJdIGZhaWxlZDogJWRcbiIsIEdldExhc3RFcnJvcigpKTsKLSAgICAgICAgICAgIENsb3NlSGFuZGxlKGhzcCk7Ci0gICAgICAgICAgICBDbG9zZUhhbmRsZShoc20pOwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KLQotICAgICAgICBkbyB7Ci0gICAgICAgICAgICBpZiAoX3djc25pY21wKG1lLnN6TW9kdWxlLCBQWVRIT05fRVhFLCBQWVRIT05fRVhFX0xFTikpCi0gICAgICAgICAgICAgICAgLyogV3JvbmcgbW9kdWxlLCB3ZSdyZSBsb29raW5nIGZvciBweXRob25bX2RdLmV4ZS4uLiAqLwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICBpZiAoX3djc25pY21wKHBhdGgsIG1lLnN6RXhlUGF0aCwgbGVuKSkKLSAgICAgICAgICAgICAgICAvKiBQcm9jZXNzIGRvZXNuJ3QgbGl2ZSBpbiBvdXIgZGlyZWN0b3J5LiAqLwotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAvKiBQeXRob24gcHJvY2VzcyByZXNpZGluZyBpbiB0aGUgcmlnaHQgZGlyZWN0b3J5LCBraWxsIGl0ISAgKi8KLSAgICAgICAgICAgIGhwID0gT3BlblByb2Nlc3MoZGFjLCBGQUxTRSwgcGUudGgzMlByb2Nlc3NJRCk7Ci0gICAgICAgICAgICBpZiAoIWhwKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJPcGVuUHJvY2VzcyBmYWlsZWQ6ICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7Ci0gICAgICAgICAgICAgICAgQ2xvc2VIYW5kbGUoaHNwKTsKLSAgICAgICAgICAgICAgICBDbG9zZUhhbmRsZShoc20pOwotICAgICAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoIVRlcm1pbmF0ZVByb2Nlc3MoaHAsIDEpKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJUZXJtaW5hdGVQcm9jZXNzIGZhaWxlZDogJWRcbiIsIEdldExhc3RFcnJvcigpKTsKLSAgICAgICAgICAgICAgICBDbG9zZUhhbmRsZShoc3ApOwotICAgICAgICAgICAgICAgIENsb3NlSGFuZGxlKGhzbSk7Ci0gICAgICAgICAgICAgICAgQ2xvc2VIYW5kbGUoaHApOwotICAgICAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBDbG9zZUhhbmRsZShocCk7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICB9IHdoaWxlIChNb2R1bGUzMk5leHRXKGhzbSwgJm1lKSk7Ci0KLSAgICAgICAgQ2xvc2VIYW5kbGUoaHNtKTsKLQotICAgIH0gd2hpbGUgKFByb2Nlc3MzMk5leHRXKGhzcCwgJnBlKSk7Ci0KLSAgICBDbG9zZUhhbmRsZShoc3ApOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLS8qIHZpOiBzZXQgdHM9OCBzdz00IHN0cz00IGV4cGFuZHRhYiAqLwpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAva2lsbF9weXRob24udmNwcm9qIGIvUEMvVlM4LjAva2lsbF9weXRob24udmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOWJlMzMwLi4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL2tpbGxfcHl0aG9uLnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDI3OSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOC4wMCINCi0JTmFtZT0ia2lsbF9weXRob24iDQotCVByb2plY3RHVUlEPSJ7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfSINCi0JUm9vdE5hbWVzcGFjZT0ia2lsbF9weXRob24iDQotCUtleXdvcmQ9IldpbjMyUHJvaiINCi0JVGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj0iMTk2NjEzIg0KLQk+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJXaW4zMiINCi0JCS8+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJ4NjQiDQotCQkvPg0KLQk8L1BsYXRmb3Jtcz4NCi0JPFRvb2xGaWxlcz4NCi0JPC9Ub29sRmlsZXM+DQotCTxDb25maWd1cmF0aW9ucz4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7LlxkZWJ1Zy52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcilcJChQcm9qZWN0TmFtZSlfZC5leGUiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3x4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7LlxkZWJ1Zy52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcilcJChQcm9qZWN0TmFtZSlfZC5leGUiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJTb3VyY2UgRmlsZXMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLlxraWxsX3B5dGhvbi5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJPC9GaWx0ZXI+DQotCTwvRmlsZXM+DQotCTxHbG9iYWxzPg0KLQk8L0dsb2JhbHM+DQotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTOC4wL21ha2VfYnVpbGRpbmZvLmMgYi9QQy9WUzguMC9tYWtlX2J1aWxkaW5mby5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZWZhMDdhLi4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL21ha2VfYnVpbGRpbmZvLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTYgKzAsMCBAQAotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0KLSNkZWZpbmUgQ01EX1NJWkUgNTAwCi0KLS8qIFRoaXMgZmlsZSBjcmVhdGVzIHRoZSBnZXRidWlsZGluZm8ubyBvYmplY3QsIGJ5IGZpcnN0Ci0gICBpbnZva2luZyBzdWJ3Y3Jldi5leGUgKGlmIGZvdW5kKSwgYW5kIHRoZW4gaW52b2tpbmcgY2wuZXhlLgotICAgQXMgYSBzaWRlIGVmZmVjdCwgaXQgbWlnaHQgZ2VuZXJhdGUgUENCdWlsZFxnZXRidWlsZGluZm8yLmMKLSAgIGFsc28uIElmIHRoaXMgaXNuJ3QgYSBzdWJ2ZXJzaW9uIGNoZWNrb3V0LCBvciBzdWJ3Y3JldiBpc24ndAotICAgZm91bmQsIGl0IGNvbXBpbGVzIC4uXFwuLlxcTW9kdWxlc1xcZ2V0YnVpbGRpbmZvLmMgaW5zdGVhZC4KLQotICAgQ3VycmVudGx5LCBzdWJ3Y3Jldi5leGUgaXMgZm91bmQgZnJvbSB0aGUgcmVnaXN0cnkgZW50cmllcwotICAgb2YgVG9ydG9pc2VTVk4uCi0KLSAgIE5vIGF0dGVtcHQgaXMgbWFkZSB0byBwbGFjZSBnZXRidWlsZGluZm8ubyBpbnRvIHRoZSBwcm9wZXIKLSAgIGJpbmFyeSBkaXJlY3RvcnkuIFRoaXMgaXNuJ3QgbmVjZXNzYXJ5LCBhcyB0aGlzIHRvb2wgaXMKLSAgIGludm9rZWQgYXMgYSBwcmUtbGluayBzdGVwIGZvciBweXRob25jb3JlLCBzbyB0aGF0IG92ZXJ3cml0ZXMKLSAgIGFueSBwcmV2aW91cyBnZXRidWlsZGluZm8uby4KLQotICAgSG93ZXZlciwgaWYgYSBzZWNvbmQgYXJndW1lbnQgaXMgcHJvdmlkZWQsIHRoaXMgd2lsbCBiZSB1c2VkCi0gICBhcyBhIHRlbXBvcmFyeSBkaXJlY3Rvcnkgd2hlcmUgYW55IGdldGJ1aWxkaW5mbzIuYyBhbmQKLSAgIGdldGJ1aWxkaW5mby5vIGZpbGVzIGFyZSBwdXQuICBUaGlzIGlzIHVzZWZ1bCBpZiBtdWx0aXBsZQotICAgY29uZmlndXJhdGlvbnMgYXJlIGJlaW5nIGJ1aWx0IGluIHBhcmFsbGVsLCB0byBhdm9pZCB0aGVtCi0gICB0cmFtcGxpbmcgZWFjaCBvdGhlcidzIGZpbGVzLgotCi0qLwotCi1pbnQgbWFrZV9idWlsZGluZm8yKGNvbnN0IGNoYXIgKnRtcHBhdGgpCi17Ci0gICAgc3RydWN0IF9zdGF0IHN0OwotICAgIEhLRVkgaFRvcnRvaXNlOwotICAgIGNoYXIgY29tbWFuZFtDTURfU0laRSsxXTsKLSAgICBEV09SRCB0eXBlLCBzaXplOwotICAgIGlmIChfc3RhdCgiLnN2biIsICZzdCkgPCAwKQotICAgICAgICByZXR1cm4gMDsKLSAgICAvKiBBbGxvdyBzdXBwcmVzc2lvbiBvZiBzdWJ3Y3Jldi5leGUgaW52b2NhdGlvbiBpZiBhIG5vX3N1YndjcmV2IGZpbGUgaXMgcHJlc2VudC4gKi8KLSAgICBpZiAoX3N0YXQoIm5vX3N1YndjcmV2IiwgJnN0KSA9PSAwKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAoUmVnT3BlbktleShIS0VZX0xPQ0FMX01BQ0hJTkUsICJTb2Z0d2FyZVxcVG9ydG9pc2VTVk4iLCAmaFRvcnRvaXNlKSAhPSBFUlJPUl9TVUNDRVNTICYmCi0gICAgICAgIFJlZ09wZW5LZXkoSEtFWV9DVVJSRU5UX1VTRVIsICJTb2Z0d2FyZVxcVG9ydG9pc2VTVk4iLCAmaFRvcnRvaXNlKSAhPSBFUlJPUl9TVUNDRVNTKQotICAgICAgICAvKiBUb3J0b2lzZSBub3QgaW5zdGFsbGVkICovCi0gICAgICAgIHJldHVybiAwOwotICAgIGNvbW1hbmRbMF0gPSAnIic7ICAvKiBxdW90ZSB0aGUgcGF0aCB0byB0aGUgZXhlY3V0YWJsZSAqLwotICAgIHNpemUgPSBzaXplb2YoY29tbWFuZCkgLSAxOwotICAgIGlmIChSZWdRdWVyeVZhbHVlRXgoaFRvcnRvaXNlLCAiRGlyZWN0b3J5IiwgMCwgJnR5cGUsIGNvbW1hbmQrMSwgJnNpemUpICE9IEVSUk9SX1NVQ0NFU1MgfHwKLSAgICAgICAgdHlwZSAhPSBSRUdfU1opCi0gICAgICAgIC8qIFJlZ2lzdHJ5IGNvcnJ1cHRlZCAqLwotICAgICAgICByZXR1cm4gMDsKLSAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgImJpblxcc3Vid2NyZXYuZXhlIik7Ci0gICAgaWYgKF9zdGF0KGNvbW1hbmQrMSwgJnN0KSA8IDApCi0gICAgICAgIC8qIHN1YndjcmV2LmV4ZSBub3QgcGFydCBvZiB0aGUgcmVsZWFzZSAqLwotICAgICAgICByZXR1cm4gMDsKLSAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgIlwiIC4uXFwuLiAuLlxcLi5cXE1vZHVsZXNcXGdldGJ1aWxkaW5mby5jICIpOwotICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCB0bXBwYXRoKTsKLSAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgImdldGJ1aWxkaW5mbzIuYyIpOwotICAgIHB1dHMoY29tbWFuZCk7IGZmbHVzaChzdGRvdXQpOwotICAgIGlmIChzeXN0ZW0oY29tbWFuZCkgPCAwKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gMTsKLX0KLQotaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqYXJndltdKQotewotICAgIGNoYXIgY29tbWFuZFtDTURfU0laRV0gPSAiY2wuZXhlIC1jIC1EX1dJTjMyIC1EVVNFX0RMX0VYUE9SVCAtRF9XSU5ET1dTIC1EV0lOMzIgLURfV0lORExMICI7Ci0gICAgY2hhciB0bXBwYXRoW0NNRF9TSVpFXSA9ICIiOwotICAgIGludCBkb191bmxpbmssIHJlc3VsdDsKLSAgICBjaGFyICp0bXBkaXIgPSBOVUxMOwotICAgIGlmIChhcmdjIDw9IDIgfHwgYXJnYyA+IDMpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJtYWtlX2J1aWxkaW5mbyAkKENvbmZpZ3VyYXRpb25OYW1lKSBbdG1wZGlyXVxuIik7Ci0gICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Ci0gICAgfQotICAgIGlmIChzdHJjbXAoYXJndlsxXSwgIlJlbGVhc2UiKSA9PSAwKSB7Ci0gICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCAiLU1EICIpOwotICAgIH0KLSAgICBlbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgIkRlYnVnIikgPT0gMCkgewotICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgIi1EX0RFQlVHIC1NRGQgIik7Ci0gICAgfQotICAgIGVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAiUmVsZWFzZUl0YW5pdW0iKSA9PSAwKSB7Ci0gICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCAiLU1EIC9VU0VDTDpNU19JVEFOSVVNICIpOwotICAgIH0KLSAgICBlbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgIlJlbGVhc2VBTUQ2NCIpID09IDApIHsKLSAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICItTUQgIik7Ci0gICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCAiLU1EIC9VU0VDTDpNU19PUFRFUk9OICIpOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1bnN1cHBvcnRlZCBjb25maWd1cmF0aW9uICVzXG4iLCBhcmd2WzFdKTsKLSAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLSAgICB9Ci0gICAgaWYgKGFyZ2MgPiAyKSB7Ci0gICAgICAgIHRtcGRpciA9IGFyZ3ZbMl07Ci0gICAgICAgIHN0cmNhdF9zKHRtcHBhdGgsIF9jb3VudG9mKHRtcHBhdGgpLCB0bXBkaXIpOwotICAgICAgICBzdHJjYXRfcyh0bXBwYXRoLCBfY291bnRvZih0bXBwYXRoKSwgIlxcIik7Ci0gICAgfQotCi0gICAgaWYgKChkb191bmxpbmsgPSBtYWtlX2J1aWxkaW5mbzIodG1wcGF0aCkpKSB7Ci0gICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCB0bXBwYXRoKTsKLSAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICJnZXRidWlsZGluZm8yLmMgLURTVUJXQ1JFViAiKTsKLSAgICB9IGVsc2UKLSAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICIuLlxcLi5cXE1vZHVsZXNcXGdldGJ1aWxkaW5mby5jIik7Ci0gICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICIgLUZvIik7Ci0gICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsIHRtcHBhdGgpOwotICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCAiZ2V0YnVpbGRpbmZvLm8gLUkuLlxcLi5cXEluY2x1ZGUgLUkuLlxcLi5cXFBDIik7Ci0gICAgcHV0cyhjb21tYW5kKTsgZmZsdXNoKHN0ZG91dCk7Ci0gICAgcmVzdWx0ID0gc3lzdGVtKGNvbW1hbmQpOwotICAgIGlmIChkb191bmxpbmspIHsKLSAgICAgICAgY29tbWFuZFswXSA9ICdcMCc7Ci0gICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCB0bXBwYXRoKTsKLSAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICJnZXRidWlsZGluZm8yLmMiKTsKLSAgICAgICAgX3VubGluayhjb21tYW5kKTsKLSAgICB9Ci0gICAgaWYgKHJlc3VsdCA8IDApCi0gICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Ci0gICAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9QQy9WUzguMC9tYWtlX2J1aWxkaW5mby52Y3Byb2ogYi9QQy9WUzguMC9tYWtlX2J1aWxkaW5mby52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiNWNjY2QuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvbWFrZV9idWlsZGluZm8udmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMTAxICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IndpbmRvd3MtMTI1MCI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI4LjAwIg0KLQlOYW1lPSJtYWtlX2J1aWxkaW5mbyINCi0JUHJvamVjdEdVSUQ9IntDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9Ig0KLQlSb290TmFtZXNwYWNlPSJtYWtlX2J1aWxkaW5mbyINCi0JS2V5d29yZD0iV2luMzJQcm9qIg0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxMzEwNzIiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxUb29sRmlsZXM+DQotCTwvVG9vbEZpbGVzPg0KLQk8Q29uZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7LlxyZWxlYXNlLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMCINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfQ09OU09MRSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKS9tYWtlX2J1aWxkaW5mby5leGUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9IiQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkucGRiIg0KLQkJCQlTdWJTeXN0ZW09IjEiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQlGaWx0ZXI9ImNwcDtjO2N4eDtkZWY7b2RsO2lkbDtocGo7YmF0O2FzbTthc214Ig0KLQkJCVVuaXF1ZUlkZW50aWZpZXI9Ins0RkM3MzdGMS1DN0E1LTQzNzYtQTA2Ni0yQTMyRDc1MkEyRkZ9Ig0KLQkJCT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii5cbWFrZV9idWlsZGluZm8uYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC9tYWtlX3ZlcnNpb25pbmZvLnZjcHJvaiBiL1BDL1ZTOC4wL21ha2VfdmVyc2lvbmluZm8udmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZGJmMTBkLi4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL21ha2VfdmVyc2lvbmluZm8udmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsMzI0ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI4LjAwIg0KLQlOYW1lPSJtYWtlX3ZlcnNpb25pbmZvIg0KLQlQcm9qZWN0R1VJRD0ie0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0iDQotCVJvb3ROYW1lc3BhY2U9Im1ha2VfdmVyc2lvbmluZm8iDQotCVRhcmdldEZyYW1ld29ya1ZlcnNpb249IjEzMTA3MiINCi0JPg0KLQk8UGxhdGZvcm1zPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0iV2luMzIiDQotCQkvPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0ieDY0Ig0KLQkJLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxUb29sRmlsZXM+DQotCTwvVG9vbEZpbGVzPg0KLQk8Q29uZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7LlxyZWxlYXNlLnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCUNoYXJhY3RlclNldD0iMiINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCQlEZXNjcmlwdGlvbj0iQnVpbGQgUEMvcHl0aG9ubnRfcmMoX2QpLmgiDQotCQkJCUNvbW1hbmRMaW5lPSJjZCAkKFNvbHV0aW9uRGlyKSYjeDBEOyYjeDBBO21ha2VfdmVyc2lvbmluZm8uZXhlICZndDsgLi5cLi5cUENccHl0aG9ubnRfcmMuaCYjeDBEOyYjeDBBOyINCi0JCQkJT3V0cHV0cz0iJChTb2x1dGlvbkRpcikuLlwuLlxQQ1xweXRob25udF9yYy5oIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlFbmFibGVJbnRyaW5zaWNGdW5jdGlvbnM9InRydWUiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9DT05TT0xFIg0KLQkJCQlTdHJpbmdQb29saW5nPSJ0cnVlIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9InRydWUiDQotCQkJCUNvbXBpbGVBcz0iMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJT3V0cHV0RmlsZT0iJChTb2x1dGlvbkRpciltYWtlX3ZlcnNpb25pbmZvLmV4ZSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iJChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWQwMDAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJCUNvbW1hbmRMaW5lPSJjZCAkKFNvbHV0aW9uRGlyKSYjeDBEOyYjeDBBO21ha2VfdmVyc2lvbmluZm8uZXhlICZndDsgLi5cLi5cUENccHl0aG9uX250LmgmI3gwRDsmI3gwQTsiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHJlbGVhc2UudnNwcm9wcyINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCQlEZXNjcmlwdGlvbj0iQnVpbGQgUEMvcHl0aG9ubnRfcmMoX2QpLmgiDQotCQkJCUNvbW1hbmRMaW5lPSJjZCAkKFNvbHV0aW9uRGlyKSYjeDBEOyYjeDBBO21ha2VfdmVyc2lvbmluZm8uZXhlICZndDsgLi5cLi5cUENccHl0aG9ubnRfcmMuaCYjeDBEOyYjeDBBOyINCi0JCQkJT3V0cHV0cz0iJChTb2x1dGlvbkRpcikuLlwuLlxQQ1xweXRob25udF9yYy5oIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlFbmFibGVJbnRyaW5zaWNGdW5jdGlvbnM9InRydWUiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfQ09OU09MRSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJT3V0cHV0RmlsZT0iJChTb2x1dGlvbkRpciltYWtlX3ZlcnNpb25pbmZvLmV4ZSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkJQ29tbWFuZExpbmU9ImNkICQoU29sdXRpb25EaXIpJiN4MEQ7JiN4MEE7bWFrZV92ZXJzaW9uaW5mby5leGUgJmd0OyAuLlwuLlxQQ1xweXRob25fbnQuaCYjeDBEOyYjeDBBOyINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXGRlYnVnLnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCQlEZXNjcmlwdGlvbj0iQnVpbGQgUEMvcHl0aG9ubnRfcmMoX2QpLmgiDQotCQkJCUNvbW1hbmRMaW5lPSJjZCAkKFNvbHV0aW9uRGlyKSYjeDBEOyYjeDBBO21ha2VfdmVyc2lvbmluZm9fZC5leGUgJmd0OyAuLlwuLlxQQ1xweXRob25udF9yY19kLmgmI3gwRDsmI3gwQTsiDQotCQkJCU91dHB1dHM9IiQoU29sdXRpb25EaXIpLi5cLi5cUENccHl0aG9ubnRfcmNfZC5oIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjAiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlFbmFibGVJbnRyaW5zaWNGdW5jdGlvbnM9ImZhbHNlIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfQ09OU09MRSINCi0JCQkJU3RyaW5nUG9vbGluZz0idHJ1ZSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJ0cnVlIg0KLQkJCQlDb21waWxlQXM9IjAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9IiQoU29sdXRpb25EaXIpbWFrZV92ZXJzaW9uaW5mb19kLmV4ZSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iJChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5wZGIiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWQwMDAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJCUNvbW1hbmRMaW5lPSJjZCAkKFNvbHV0aW9uRGlyKSYjeDBEOyYjeDBBO21ha2VfdmVyc2lvbmluZm9fZC5leGUgJmd0OyAuLlwuLlxQQ1xweXRob25fbnRfZC5oJiN4MEQ7JiN4MEE7Ig0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHg2NC52c3Byb3BzOy5cZGVidWcudnNwcm9wcyINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCQlEZXNjcmlwdGlvbj0iQnVpbGQgUEMvcHl0aG9ubnRfcmMoX2QpLmgiDQotCQkJCUNvbW1hbmRMaW5lPSJjZCAkKFNvbHV0aW9uRGlyKSYjeDBEOyYjeDBBO21ha2VfdmVyc2lvbmluZm9fZC5leGUgJmd0OyAuLlwuLlxQQ1xweXRob25udF9yY19kLmgmI3gwRDsmI3gwQTsiDQotCQkJCU91dHB1dHM9IiQoU29sdXRpb25EaXIpLi5cLi5cUENccHl0aG9ubnRfcmNfZC5oIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIwIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJRW5hYmxlSW50cmluc2ljRnVuY3Rpb25zPSJmYWxzZSINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9DT05TT0xFIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIkKFNvbHV0aW9uRGlyKW1ha2VfdmVyc2lvbmluZm9fZC5leGUiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCQlDb21tYW5kTGluZT0iY2QgJChTb2x1dGlvbkRpcikmI3gwRDsmI3gwQTttYWtlX3ZlcnNpb25pbmZvX2QuZXhlICZndDsgLi5cLi5cUENccHl0aG9uX250X2QuaCYjeDBEOyYjeDBBOyINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsdGVyDQotCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KLQkJCT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXG1ha2VfdmVyc2lvbmluZm8uYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC9wY2J1aWxkLnNsbiBiL1BDL1ZTOC4wL3BjYnVpbGQuc2xuCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YWNhNGFhLi4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL3BjYnVpbGQuc2xuCisrKyAvZGV2L251bGwKQEAgLTEsNTYwICswLDAgQEAKLU1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIFNvbHV0aW9uIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDkuMDANCi0jIFZpc3VhbCBTdHVkaW8gMjAwNQ0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAicHl0aG9uIiwgInB5dGhvbi52Y3Byb2oiLCAie0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JCXtFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9ID0ge0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJtYWtlX3ZlcnNpb25pbmZvIiwgIm1ha2VfdmVyc2lvbmluZm8udmNwcm9qIiwgIntGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9Ig0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInB5dGhvbmNvcmUiLCAicHl0aG9uY29yZS52Y3Byb2oiLCAie0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9ID0ge0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0NCi0JCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9ID0gezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0NCi0JCXtDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9ID0ge0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJweXRob253IiwgInB5dGhvbncudmNwcm9qIiwgIntGNDIyOUNDMy04NzNDLTQ5QUUtOTcyOS1ERDMwOEVENENENEF9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAidzl4cG9wZW4iLCAidzl4cG9wZW4udmNwcm9qIiwgIntFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfSA9IHs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAibWFrZV9idWlsZGluZm8iLCAibWFrZV9idWlsZGluZm8udmNwcm9qIiwgIntDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9Ig0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIlNvbHV0aW9uIEl0ZW1zIiwgIlNvbHV0aW9uIEl0ZW1zIiwgIns1NTNFQzMzRS05ODE2LTQ5OTYtQTY2MC01RDYxODZBMEIwQjN9Ig0KLQlQcm9qZWN0U2VjdGlvbihTb2x1dGlvbkl0ZW1zKSA9IHByZVByb2plY3QNCi0JCS4uXC4uXE1vZHVsZXNcZ2V0YnVpbGRpbmZvLmMgPSAuLlwuLlxNb2R1bGVzXGdldGJ1aWxkaW5mby5jDQotCQlyZWFkbWUudHh0ID0gcmVhZG1lLnR4dA0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIndpbnNvdW5kIiwgIndpbnNvdW5kLnZjcHJvaiIsICJ7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9jdHlwZXMiLCAiX2N0eXBlcy52Y3Byb2oiLCAiezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfY3R5cGVzX3Rlc3QiLCAiX2N0eXBlc190ZXN0LnZjcHJvaiIsICJ7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9lbGVtZW50dHJlZSIsICJfZWxlbWVudHRyZWUudmNwcm9qIiwgInsxN0UxRTA0OS1DMzA5LTRENzktODQzRi1BRTQ4M0MyNjRBRUF9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX21zaSIsICJfbXNpLnZjcHJvaiIsICJ7MzFGRkM0NzgtN0I0QS00M0U4LTk5NTQtOEQwM0UyMTg3RTlDfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9zb2NrZXQiLCAiX3NvY2tldC52Y3Byb2oiLCAiezg2OTM3RjUzLUMxODktNDBFRi04Q0U4LTg3NTlEOEU3RDQ4MH0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfc3FsaXRlMyIsICJfc3FsaXRlMy52Y3Byb2oiLCAiezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9ID0ge0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfc3NsIiwgIl9zc2wudmNwcm9qIiwgIntDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fSA9IHtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9DQotCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfSA9IHs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfSA9IHtFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX3Rlc3RjYXBpIiwgIl90ZXN0Y2FwaS52Y3Byb2oiLCAiezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfdGtpbnRlciIsICJfdGtpbnRlci52Y3Byb2oiLCAiezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJiejIiLCAiYnoyLnZjcHJvaiIsICJ7NzNGQ0QyQkQtRjEzMy00NkI3LThFQzEtMTQ0Q0Q4MkE1OUQ1fSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInNlbGVjdCIsICJzZWxlY3QudmNwcm9qIiwgInsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAidW5pY29kZWRhdGEiLCAidW5pY29kZWRhdGEudmNwcm9qIiwgIntFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAicHlleHBhdCIsICJweWV4cGF0LnZjcHJvaiIsICJ7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImJkaXN0X3dpbmluc3QiLCAiYmRpc3Rfd2luaW5zdC52Y3Byb2oiLCAie0VCMUMxOUMxLTFGMTgtNDIxRS05NzM1LUNBRUU2OURDNkEzQ30iDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX2hhc2hsaWIiLCAiX2hhc2hsaWIudmNwcm9qIiwgIns0NDdGMDVBOC1GNTgxLTRDQUMtQTQ2Ni01QUM3OTM2RTIwN0V9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fSA9IHtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfSA9IHtFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAic3FsaXRlMyIsICJzcWxpdGUzLnZjcHJvaiIsICJ7QTFBMjk1RTUtNDYzQy00MzdGLTgxQ0EtMUYzMjM2NzY4NURBfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0gPSB7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9tdWx0aXByb2Nlc3NpbmciLCAiX211bHRpcHJvY2Vzc2luZy52Y3Byb2oiLCAiezlFNDhCMzAwLTM3RDEtMTFERC04QzQxLTAwNTA1NkMwMDAwOH0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJzc2wiLCAic3NsLnZjcHJvaiIsICJ7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0gPSB7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImtpbGxfcHl0aG9uIiwgImtpbGxfcHl0aG9uLnZjcHJvaiIsICJ7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfSINCi1FbmRQcm9qZWN0DQotR2xvYmFsDQotCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Db25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHByZVNvbHV0aW9uDQotCQlEZWJ1Z3xXaW4zMiA9IERlYnVnfFdpbjMyDQotCQlEZWJ1Z3x4NjQgPSBEZWJ1Z3x4NjQNCi0JCVBHSW5zdHJ1bWVudHxXaW4zMiA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJUEdJbnN0cnVtZW50fHg2NCA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCVBHVXBkYXRlfFdpbjMyID0gUEdVcGRhdGV8V2luMzINCi0JCVBHVXBkYXRlfHg2NCA9IFBHVXBkYXRlfHg2NA0KLQkJUmVsZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2luMzINCi0JCVJlbGVhc2V8eDY0ID0gUmVsZWFzZXx4NjQNCi0JRW5kR2xvYmFsU2VjdGlvbg0KLQlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHBvc3RTb2x1dGlvbg0KLQkJe0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KLQkJe0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCi0JCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQotCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCi0JCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCi0JCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQotCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQotCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCi0JCXtGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXtGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXtGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXtGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCi0JCXtGNDIyOUNDMy04NzNDLTQ5QUUtOTcyOS1ERDMwOEVENENENEF9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXtGNDIyOUNDMy04NzNDLTQ5QUUtOTcyOS1ERDMwOEVENENENEF9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCi0JCXtGNDIyOUNDMy04NzNDLTQ5QUUtOTcyOS1ERDMwOEVENENENEF9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQotCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJe0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJe0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQotCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQotCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KLQkJe0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KLQkJe0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQotCQl7RTlFMEExRjYtMDAwOS00RThDLUI4RjgtMUI4RjVENDlBMDU4fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7RTlFMEExRjYtMDAwOS00RThDLUI4RjgtMUI4RjVENDlBMDU4fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQotCQl7RTlFMEExRjYtMDAwOS00RThDLUI4RjgtMUI4RjVENDlBMDU4fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KLQkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXtFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCi0JCXtFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KLQkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCi0JCXtFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCi0JCXtFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KLQkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXtDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXtDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXtDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXtDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXtDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXsyOEI1RDc3Ny1EREYyLTRCNkItQjM0Ri0zMUQ5Mzg4MTM4NTZ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXsyOEI1RDc3Ny1EREYyLTRCNkItQjM0Ri0zMUQ5Mzg4MTM4NTZ9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCi0JCXsyOEI1RDc3Ny1EREYyLTRCNkItQjM0Ri0zMUQ5Mzg4MTM4NTZ9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQotCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJezI4QjVENzc3LURERjItNEI2Qi1CMzRGLTMxRDkzODgxMzg1Nn0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJezI4QjVENzc3LURERjItNEI2Qi1CMzRGLTMxRDkzODgxMzg1Nn0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQotCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQotCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KLQkJezI4QjVENzc3LURERjItNEI2Qi1CMzRGLTMxRDkzODgxMzg1Nn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KLQkJezI4QjVENzc3LURERjItNEI2Qi1CMzRGLTMxRDkzODgxMzg1Nn0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQotCQl7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE4fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE4fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQotCQl7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE4fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KLQkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCi0JCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KLQkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCi0JCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCi0JCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KLQkJezlFQzcxOTBBLTI0OUYtNDE4MC1BOTAwLTU0OEZEQ0YzMDU1Rn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXs5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezlFQzcxOTBBLTI0OUYtNDE4MC1BOTAwLTU0OEZEQ0YzMDU1Rn0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KLQkJezlFQzcxOTBBLTI0OUYtNDE4MC1BOTAwLTU0OEZEQ0YzMDU1Rn0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCi0JCXs5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXs5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXs5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXs5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQotCQl7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCi0JCXs5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCi0JCXs5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQotCQl7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXs5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXs5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQotCQl7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCi0JCXsxN0UxRTA0OS1DMzA5LTRENzktODQzRi1BRTQ4M0MyNjRBRUF9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7MTdFMUUwNDktQzMwOS00RDc5LTg0M0YtQUU0ODNDMjY0QUVBfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXsxN0UxRTA0OS1DMzA5LTRENzktODQzRi1BRTQ4M0MyNjRBRUF9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCi0JCXsxN0UxRTA0OS1DMzA5LTRENzktODQzRi1BRTQ4M0MyNjRBRUF9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQotCQl7MTdFMUUwNDktQzMwOS00RDc5LTg0M0YtQUU0ODNDMjY0QUVBfS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7MTdFMUUwNDktQzMwOS00RDc5LTg0M0YtQUU0ODNDMjY0QUVBfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7MTdFMUUwNDktQzMwOS00RDc5LTg0M0YtQUU0ODNDMjY0QUVBfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7MTdFMUUwNDktQzMwOS00RDc5LTg0M0YtQUU0ODNDMjY0QUVBfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQotCQl7MTdFMUUwNDktQzMwOS00RDc5LTg0M0YtQUU0ODNDMjY0QUVBfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQotCQl7MTdFMUUwNDktQzMwOS00RDc5LTg0M0YtQUU0ODNDMjY0QUVBfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KLQkJezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7MTdFMUUwNDktQzMwOS00RDc5LTg0M0YtQUU0ODNDMjY0QUVBfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7MTdFMUUwNDktQzMwOS00RDc5LTg0M0YtQUU0ODNDMjY0QUVBfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KLQkJezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQotCQl7MzFGRkM0NzgtN0I0QS00M0U4LTk5NTQtOEQwM0UyMTg3RTlDfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7MzFGRkM0NzgtN0I0QS00M0U4LTk5NTQtOEQwM0UyMTg3RTlDfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQotCQl7MzFGRkM0NzgtN0I0QS00M0U4LTk5NTQtOEQwM0UyMTg3RTlDfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KLQkJezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCi0JCXszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KLQkJezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCi0JCXszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCi0JCXszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KLQkJezg2OTM3RjUzLUMxODktNDBFRi04Q0U4LTg3NTlEOEU3RDQ4MH0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezg2OTM3RjUzLUMxODktNDBFRi04Q0U4LTg3NTlEOEU3RDQ4MH0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KLQkJezg2OTM3RjUzLUMxODktNDBFRi04Q0U4LTg3NTlEOEU3RDQ4MH0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCi0JCXs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQotCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCi0JCXs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCi0JCXs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQotCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQotCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCi0JCXsxM0NFQ0I5Ny00MTE5LTQzMTYtOUQ0Mi04NTM0MDE5QTVBNDR9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7MTNDRUNCOTctNDExOS00MzE2LTlENDItODUzNDAxOUE1QTQ0fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXsxM0NFQ0I5Ny00MTE5LTQzMTYtOUQ0Mi04NTM0MDE5QTVBNDR9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCi0JCXsxM0NFQ0I5Ny00MTE5LTQzMTYtOUQ0Mi04NTM0MDE5QTVBNDR9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQotCQl7MTNDRUNCOTctNDExOS00MzE2LTlENDItODUzNDAxOUE1QTQ0fS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7MTNDRUNCOTctNDExOS00MzE2LTlENDItODUzNDAxOUE1QTQ0fS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7MTNDRUNCOTctNDExOS00MzE2LTlENDItODUzNDAxOUE1QTQ0fS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7MTNDRUNCOTctNDExOS00MzE2LTlENDItODUzNDAxOUE1QTQ0fS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQotCQl7MTNDRUNCOTctNDExOS00MzE2LTlENDItODUzNDAxOUE1QTQ0fS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQotCQl7MTNDRUNCOTctNDExOS00MzE2LTlENDItODUzNDAxOUE1QTQ0fS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KLQkJezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7MTNDRUNCOTctNDExOS00MzE2LTlENDItODUzNDAxOUE1QTQ0fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7MTNDRUNCOTctNDExOS00MzE2LTlENDItODUzNDAxOUE1QTQ0fS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KLQkJezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQotCQl7QzZFMjBGODQtMzI0Ny00QUQ2LUIwNTEtQjA3MzI2OEY3M0JBfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJe0M2RTIwRjg0LTMyNDctNEFENi1CMDUxLUIwNzMyNjhGNzNCQX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7QzZFMjBGODQtMzI0Ny00QUQ2LUIwNTEtQjA3MzI2OEY3M0JBfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQotCQl7QzZFMjBGODQtMzI0Ny00QUQ2LUIwNTEtQjA3MzI2OEY3M0JBfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KLQkJe0M2RTIwRjg0LTMyNDctNEFENi1CMDUxLUIwNzMyNjhGNzNCQX0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJe0M2RTIwRjg0LTMyNDctNEFENi1CMDUxLUIwNzMyNjhGNzNCQX0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXtDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJe0M2RTIwRjg0LTMyNDctNEFENi1CMDUxLUIwNzMyNjhGNzNCQX0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJe0M2RTIwRjg0LTMyNDctNEFENi1CMDUxLUIwNzMyNjhGNzNCQX0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCi0JCXtDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJe0M2RTIwRjg0LTMyNDctNEFENi1CMDUxLUIwNzMyNjhGNzNCQX0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KLQkJe0M2RTIwRjg0LTMyNDctNEFENi1CMDUxLUIwNzMyNjhGNzNCQX0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCi0JCXtDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0M2RTIwRjg0LTMyNDctNEFENi1CMDUxLUIwNzMyNjhGNzNCQX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJe0M2RTIwRjg0LTMyNDctNEFENi1CMDUxLUIwNzMyNjhGNzNCQX0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCi0JCXtDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KLQkJezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KLQkJezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCi0JCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQotCQl7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCi0JCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCi0JCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQotCQl7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQotCQl7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCi0JCXs0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXs0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCi0JCXs0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQotCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQotCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQotCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KLQkJezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KLQkJezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQotCQl7NzNGQ0QyQkQtRjEzMy00NkI3LThFQzEtMTQ0Q0Q4MkE1OUQ1fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7NzNGQ0QyQkQtRjEzMy00NkI3LThFQzEtMTQ0Q0Q4MkE1OUQ1fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQotCQl7NzNGQ0QyQkQtRjEzMy00NkI3LThFQzEtMTQ0Q0Q4MkE1OUQ1fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KLQkJezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXs3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCi0JCXs3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KLQkJezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCi0JCXs3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCi0JCXs3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KLQkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KLQkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCi0JCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7MThDQUUyOEMtQjQ1NC00NkMxLTg3QTAtNDkzRDkxRDk3RjAzfS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQotCQl7MThDQUUyOEMtQjQ1NC00NkMxLTg3QTAtNDkzRDkxRDk3RjAzfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCi0JCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCi0JCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQotCQl7MThDQUUyOEMtQjQ1NC00NkMxLTg3QTAtNDkzRDkxRDk3RjAzfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQotCQl7MThDQUUyOEMtQjQ1NC00NkMxLTg3QTAtNDkzRDkxRDk3RjAzfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCi0JCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCi0JCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQotCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJe0VDQzdDRUFDLUE1RTUtNDU4RS1CQjlFLTI0MTNDQzg0Nzg4MX0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJe0VDQzdDRUFDLUE1RTUtNDU4RS1CQjlFLTI0MTNDQzg0Nzg4MX0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQotCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQotCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KLQkJe0VDQzdDRUFDLUE1RTUtNDU4RS1CQjlFLTI0MTNDQzg0Nzg4MX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KLQkJe0VDQzdDRUFDLUE1RTUtNDU4RS1CQjlFLTI0MTNDQzg0Nzg4MX0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQotCQl7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJe0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQotCQl7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KLQkJe0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJe0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXtEMDZCNjQyNi00NzYyLTQ0Q0MtOEJBRC1ENzkwNTI1MDdGMkZ9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJe0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJe0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCi0JCXtEMDZCNjQyNi00NzYyLTQ0Q0MtOEJBRC1ENzkwNTI1MDdGMkZ9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJe0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KLQkJe0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCi0JCXtEMDZCNjQyNi00NzYyLTQ0Q0MtOEJBRC1ENzkwNTI1MDdGMkZ9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJe0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCi0JCXtEMDZCNjQyNi00NzYyLTQ0Q0MtOEJBRC1ENzkwNTI1MDdGMkZ9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KLQkJe0VCMUMxOUMxLTFGMTgtNDIxRS05NzM1LUNBRUU2OURDNkEzQ30uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0VCMUMxOUMxLTFGMTgtNDIxRS05NzM1LUNBRUU2OURDNkEzQ30uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQotCQl7RUIxQzE5QzEtMUYxOC00MjFFLTk3MzUtQ0FFRTY5REM2QTNDfS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0VCMUMxOUMxLTFGMTgtNDIxRS05NzM1LUNBRUU2OURDNkEzQ30uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KLQkJe0VCMUMxOUMxLTFGMTgtNDIxRS05NzM1LUNBRUU2OURDNkEzQ30uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0VCMUMxOUMxLTFGMTgtNDIxRS05NzM1LUNBRUU2OURDNkEzQ30uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQotCQl7RUIxQzE5QzEtMUYxOC00MjFFLTk3MzUtQ0FFRTY5REM2QTNDfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXtFQjFDMTlDMS0xRjE4LTQyMUUtOTczNS1DQUVFNjlEQzZBM0N9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQotCQl7NDQ3RjA1QTgtRjU4MS00Q0FDLUE0NjYtNUFDNzkzNkUyMDdFfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7NDQ3RjA1QTgtRjU4MS00Q0FDLUE0NjYtNUFDNzkzNkUyMDdFfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQotCQl7NDQ3RjA1QTgtRjU4MS00Q0FDLUE0NjYtNUFDNzkzNkUyMDdFfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KLQkJezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXs0NDdGMDVBOC1GNTgxLTRDQUMtQTQ2Ni01QUM3OTM2RTIwN0V9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCi0JCXs0NDdGMDVBOC1GNTgxLTRDQUMtQTQ2Ni01QUM3OTM2RTIwN0V9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KLQkJezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCi0JCXs0NDdGMDVBOC1GNTgxLTRDQUMtQTQ2Ni01QUM3OTM2RTIwN0V9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCi0JCXs0NDdGMDVBOC1GNTgxLTRDQUMtQTQ2Ni01QUM3OTM2RTIwN0V9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KLQkJe0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KLQkJe0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCi0JCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7QTFBMjk1RTUtNDYzQy00MzdGLTgxQ0EtMUYzMjM2NzY4NURBfS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCi0JCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQotCQl7QTFBMjk1RTUtNDYzQy00MzdGLTgxQ0EtMUYzMjM2NzY4NURBfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCi0JCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCi0JCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQotCQl7QTFBMjk1RTUtNDYzQy00MzdGLTgxQ0EtMUYzMjM2NzY4NURBfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQotCQl7QTFBMjk1RTUtNDYzQy00MzdGLTgxQ0EtMUYzMjM2NzY4NURBfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCi0JCXs5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQotCQl7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCi0JCXs5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCi0JCXs5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQotCQl7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQotCQl7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJezlFNDhCMzAwLTM3RDEtMTFERC04QzQxLTAwNTA1NkMwMDAwOH0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQotCQl7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJezlFNDhCMzAwLTM3RDEtMTFERC04QzQxLTAwNTA1NkMwMDAwOH0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQotCQl7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQotCQl7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KLQkJezlFNDhCMzAwLTM3RDEtMTFERC04QzQxLTAwNTA1NkMwMDAwOH0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQotCQl7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KLQkJezlFNDhCMzAwLTM3RDEtMTFERC04QzQxLTAwNTA1NkMwMDAwOH0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQotCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KLQkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQotCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQotCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KLQkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KLQkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXtFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KLQkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCi0JCXtFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KLQkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KLQkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCi0JCXtFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KLQkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCi0JCXtFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KLQkJezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KLQkJezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCi0JCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCi0JCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQotCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KLQkJezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQotCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQotCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCi0JCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQotCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCi0JRW5kR2xvYmFsU2VjdGlvbg0KLQlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uUHJvcGVydGllcykgPSBwcmVTb2x1dGlvbg0KLQkJSGlkZVNvbHV0aW9uTm9kZSA9IEZBTFNFDQotCUVuZEdsb2JhbFNlY3Rpb24NCi1FbmRHbG9iYWwNCmRpZmYgLS1naXQgYS9QQy9WUzguMC9wZ2luc3RydW1lbnQudnNwcm9wcyBiL1BDL1ZTOC4wL3BnaW5zdHJ1bWVudC52c3Byb3BzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOGM1ZjE4Li4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL3BnaW5zdHJ1bWVudC52c3Byb3BzCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb3BlcnR5U2hlZXQNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9InBnaW5zdHJ1bWVudCINCi0JT3V0cHV0RGlyZWN0b3J5PSIkKE91dERpclBHSSkiDQotCUludGVybWVkaWF0ZURpcmVjdG9yeT0iJChTb2x1dGlvbkRpcikkKFBsYXRmb3JtTmFtZSktdGVtcC1wZ2lcJChQcm9qZWN0TmFtZSlcIg0KLQk+DQotCTxUb29sDQotCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQlFbmFibGVJbnRyaW5zaWNGdW5jdGlvbnM9ImZhbHNlIg0KLQkJRmF2b3JTaXplT3JTcGVlZD0iMiINCi0JCU9taXRGcmFtZVBvaW50ZXJzPSJ0cnVlIg0KLQkJRW5hYmxlRmliZXJTYWZlT3B0aW1pemF0aW9ucz0iZmFsc2UiDQotCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249InRydWUiDQotCQlTdHJpbmdQb29saW5nPSJ0cnVlIg0KLQkJRXhjZXB0aW9uSGFuZGxpbmc9IjAiDQotCQlCdWZmZXJTZWN1cml0eUNoZWNrPSJmYWxzZSINCi0JLz4NCi0JPFRvb2wNCi0JCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCU9wdGltaXplUmVmZXJlbmNlcz0iMiINCi0JCUVuYWJsZUNPTURBVEZvbGRpbmc9IjIiDQotCQlMaW5rVGltZUNvZGVHZW5lcmF0aW9uPSIyIg0KLQkJUHJvZmlsZUd1aWRlZERhdGFiYXNlPSIkKFNvbHV0aW9uRGlyKSQoUGxhdGZvcm1OYW1lKS1wZ2lcJChUYXJnZXROYW1lKS5wZ2QiDQotCQlJbXBvcnRMaWJyYXJ5PSIkKE91dERpclBHSSlcJChUYXJnZXROYW1lKS5saWIiDQotCS8+DQotCTxVc2VyTWFjcm8NCi0JCU5hbWU9Ik91dERpclBHSSINCi0JCVZhbHVlPSIkKFNvbHV0aW9uRGlyKSQoUGxhdGZvcm1OYW1lKS1wZ2lcIg0KLQkvPg0KLTwvVmlzdWFsU3R1ZGlvUHJvcGVydHlTaGVldD4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC9wZ3VwZGF0ZS52c3Byb3BzIGIvUEMvVlM4LjAvcGd1cGRhdGUudnNwcm9wcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjZjZmMyZC4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC9wZ3VwZGF0ZS52c3Byb3BzCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb3BlcnR5U2hlZXQNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9InBndXBkYXRlIg0KLQlPdXRwdXREaXJlY3Rvcnk9IiQoU29sdXRpb25EaXIpJChQbGF0Zm9ybU5hbWUpLXBnb1wiDQotCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIkKFNvbHV0aW9uRGlyKVxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JPg0KLQk8VG9vbA0KLQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJQWRkaXRpb25hbE1hbmlmZXN0RGVwZW5kZW5jaWVzPSIiDQotCQlMaW5rVGltZUNvZGVHZW5lcmF0aW9uPSI0Ig0KLQkvPg0KLTwvVmlzdWFsU3R1ZGlvUHJvcGVydHlTaGVldD4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC9weWQudnNwcm9wcyBiL1BDL1ZTOC4wL3B5ZC52c3Byb3BzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNGMyMWUxLi4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL3B5ZC52c3Byb3BzCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb3BlcnR5U2hlZXQNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9InB5ZCINCi0JSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7LlxyZWxlYXNlLnZzcHJvcHMiDQotCT4NCi0JPFRvb2wNCi0JCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEUiDQotCQlSdW50aW1lTGlicmFyeT0iMiINCi0JLz4NCi0JPFRvb2wNCi0JCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCU91dHB1dEZpbGU9IiQoT3V0RGlyKVwkKFByb2plY3ROYW1lKS5weWQiDQotCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIkKE91dERpcilcJChQcm9qZWN0TmFtZSkucGRiIg0KLQkJSW1wb3J0TGlicmFyeT0iJChPdXREaXIpXCQoVGFyZ2V0TmFtZSkubGliIg0KLQkJR2VuZXJhdGVNYW5pZmVzdD0iZmFsc2UiDQotCS8+DQotCTxUb29sDQotCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCUVtYmVkTWFuaWZlc3Q9ImZhbHNlIg0KLQkvPg0KLQk8VG9vbA0KLQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQlDb21tYW5kTGluZT0iIg0KLQkvPg0KLTwvVmlzdWFsU3R1ZGlvUHJvcGVydHlTaGVldD4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC9weWRfZC52c3Byb3BzIGIvUEMvVlM4LjAvcHlkX2QudnNwcm9wcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzEzYTMwYi4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC9weWRfZC52c3Byb3BzCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb3BlcnR5U2hlZXQNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9InB5ZF9kIg0KLQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXGRlYnVnLnZzcHJvcHMiDQotCT4NCi0JPFRvb2wNCi0JCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQlPcHRpbWl6YXRpb249IjAiDQotCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMCINCi0JCUVuYWJsZUludHJpbnNpY0Z1bmN0aW9ucz0iZmFsc2UiDQotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUHlfQlVJTERfQ09SRV9NT0RVTEUiDQotCQlSdW50aW1lTGlicmFyeT0iMyINCi0JLz4NCi0JPFRvb2wNCi0JCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCU91dHB1dEZpbGU9IiQoT3V0RGlyKVwkKFByb2plY3ROYW1lKV9kLnB5ZCINCi0JCUxpbmtJbmNyZW1lbnRhbD0iMSINCi0JCVByb2dyYW1EYXRhYmFzZUZpbGU9IiQoT3V0RGlyKVwkKFByb2plY3ROYW1lKV9kLnBkYiINCi0JCUltcG9ydExpYnJhcnk9IiQoT3V0RGlyKVwkKFRhcmdldE5hbWUpLmxpYiINCi0JCUdlbmVyYXRlTWFuaWZlc3Q9ImZhbHNlIg0KLQkvPg0KLQk8VG9vbA0KLQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQlFbWJlZE1hbmlmZXN0PSJmYWxzZSINCi0JLz4NCi0JPFRvb2wNCi0JCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJQ29tbWFuZExpbmU9IiINCi0JLz4NCi0JPFVzZXJNYWNybw0KLQkJTmFtZT0iUHl0aG9uRXhlIg0KLQkJVmFsdWU9IiQoU29sdXRpb25EaXIpcHl0aG9uX2QuZXhlIg0KLQkvPg0KLTwvVmlzdWFsU3R1ZGlvUHJvcGVydHlTaGVldD4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC9weWV4cGF0LnZjcHJvaiBiL1BDL1ZTOC4wL3B5ZXhwYXQudmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNTllNGVjLi4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL3B5ZXhwYXQudmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsNTUzICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI4LjAwIg0KLQlOYW1lPSJweWV4cGF0Ig0KLQlQcm9qZWN0R1VJRD0ie0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0iDQotCVJvb3ROYW1lc3BhY2U9InB5ZXhwYXQiDQotCUtleXdvcmQ9IldpbjMyUHJvaiINCi0JVGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj0iMTk2NjEzIg0KLQk+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJXaW4zMiINCi0JCS8+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJ4NjQiDQotCQkvPg0KLQk8L1BsYXRmb3Jtcz4NCi0JPFRvb2xGaWxlcz4NCi0JPC9Ub29sRmlsZXM+DQotCTxDb25maWd1cmF0aW9ucz4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkX2QudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLlwuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUFlFWFBBVF9FWFBPUlRTO0hBVkVfRVhQQVRfSDtYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuXC4uXC4uXE1vZHVsZXNcZXhwYXQiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQWUVYUEFUX0VYUE9SVFM7SEFWRV9FWFBBVF9IO1hNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7WE1MX1NUQVRJQztIQVZFX01FTU1PVkUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii5cLi5cLi5cTW9kdWxlc1xleHBhdCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlBZRVhQQVRfRVhQT1JUUztIQVZFX0VYUEFUX0g7WE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii5cLi5cLi5cTW9kdWxlc1xleHBhdCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlBZRVhQQVRfRVhQT1JUUztIQVZFX0VYUEFUX0g7WE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii5cLi5cLi5cTW9kdWxlc1xleHBhdCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlBZRVhQQVRfRVhQT1JUUztIQVZFX0VYUEFUX0g7WE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuXC4uXC4uXE1vZHVsZXNcZXhwYXQiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQWUVYUEFUX0VYUE9SVFM7SEFWRV9FWFBBVF9IO1hNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7WE1MX1NUQVRJQztIQVZFX01FTU1PVkUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii5cLi5cLi5cTW9kdWxlc1xleHBhdCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlBZRVhQQVRfRVhQT1JUUztIQVZFX0VYUEFUX0g7WE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLlwuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUFlFWFBBVF9FWFBPUlRTO0hBVkVfRVhQQVRfSDtYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxNyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsdGVyDQotCQkJTmFtZT0iSGVhZGVyIEZpbGVzIg0KLQkJCT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRceG1scm9sZS5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFx4bWx0b2suaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHB5ZXhwYXQuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRceG1scGFyc2UuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRceG1scm9sZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFx4bWx0b2suYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC9weXByb2plY3QudnNwcm9wcyBiL1BDL1ZTOC4wL3B5cHJvamVjdC52c3Byb3BzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzFiZDNmLi4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL3B5cHJvamVjdC52c3Byb3BzCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb3BlcnR5U2hlZXQNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9InB5cHJvamVjdCINCi0JT3V0cHV0RGlyZWN0b3J5PSIkKFNvbHV0aW9uRGlyKSINCi0JSW50ZXJtZWRpYXRlRGlyZWN0b3J5PSIkKFNvbHV0aW9uRGlyKSQoUGxhdGZvcm1OYW1lKS10ZW1wLSQoQ29uZmlndXJhdGlvbk5hbWUpXCQoUHJvamVjdE5hbWUpXCINCi0JPg0KLQk8VG9vbA0KLQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCU9wdGltaXphdGlvbj0iMiINCi0JCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJRW5hYmxlSW50cmluc2ljRnVuY3Rpb25zPSJ0cnVlIg0KLQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZTsgLi5cLi5cUEMiDQotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1dJTjMyIg0KLQkJU3RyaW5nUG9vbGluZz0idHJ1ZSINCi0JCUV4Y2VwdGlvbkhhbmRsaW5nPSIwIg0KLQkJUnVudGltZUxpYnJhcnk9IjAiDQotCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0idHJ1ZSINCi0JCVdhcm5pbmdMZXZlbD0iMyINCi0JCURlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9IjMiDQotCQlDb21waWxlQXM9IjAiDQotCS8+DQotCTxUb29sDQotCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQlMaW5rSW5jcmVtZW50YWw9IjEiDQotCQlBZGRpdGlvbmFsTGlicmFyeURpcmVjdG9yaWVzPSIkKE91dERpcikiDQotCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249InRydWUiDQotCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIkKE91dERpcikkKFRhcmdldE5hbWUpLnBkYiINCi0JCVN1YlN5c3RlbT0iMiINCi0JCVJhbmRvbWl6ZWRCYXNlQWRkcmVzcz0iMSINCi0JCURhdGFFeGVjdXRpb25QcmV2ZW50aW9uPSIwIg0KLQkJVGFyZ2V0TWFjaGluZT0iMSINCi0JLz4NCi0JPFRvb2wNCi0JCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQQzsuLlwuLlxJbmNsdWRlIg0KLQkvPg0KLQk8VXNlck1hY3JvDQotCQlOYW1lPSJQeURsbE5hbWUiDQotCQlWYWx1ZT0icHl0aG9uMzMiDQotCS8+DQotCTxVc2VyTWFjcm8NCi0JCU5hbWU9IlB5dGhvbkV4ZSINCi0JCVZhbHVlPSIkKFNvbHV0aW9uRGlyKVxweXRob24uZXhlIg0KLQkvPg0KLQk8VXNlck1hY3JvDQotCQlOYW1lPSJleHRlcm5hbHNEaXIiDQotCQlWYWx1ZT0iLi5cLi5cLi4iDQotCS8+DQotCTxVc2VyTWFjcm8NCi0JCU5hbWU9InNxbGl0ZTNEaXIiDQotCQlWYWx1ZT0iJChleHRlcm5hbHNEaXIpXHNxbGl0ZS0zLjYuMjEiDQotCS8+DQotCTxVc2VyTWFjcm8NCi0JCU5hbWU9ImJ6MkRpciINCi0JCVZhbHVlPSIkKGV4dGVybmFsc0RpcilcYnppcDItMS4wLjYiDQotCS8+DQotCTxVc2VyTWFjcm8NCi0JCU5hbWU9Im9wZW5zc2xEaXIiDQotCQlWYWx1ZT0iJChleHRlcm5hbHNEaXIpXG9wZW5zc2wtMS4wLjFlIg0KLQkvPg0KLQk8VXNlck1hY3JvDQotCQlOYW1lPSJ0Y2x0a0RpciINCi0JCVZhbHVlPSIkKGV4dGVybmFsc0RpcilcdGNsdGsiDQotCS8+DQotCTxVc2VyTWFjcm8NCi0JCU5hbWU9InRjbHRrNjREaXIiDQotCQlWYWx1ZT0iJChleHRlcm5hbHNEaXIpXHRjbHRrNjQiDQotCS8+DQotCTxVc2VyTWFjcm8NCi0JCU5hbWU9InRjbHRrTGliIg0KLQkJVmFsdWU9IiQodGNsdGtEaXIpXGxpYlx0Y2w4NS5saWIgJCh0Y2x0a0RpcilcbGliXHRrODUubGliIg0KLQkvPg0KLQk8VXNlck1hY3JvDQotCQlOYW1lPSJ0Y2x0a0xpYkRlYnVnIg0KLQkJVmFsdWU9IiQodGNsdGtEaXIpXGxpYlx0Y2w4NWcubGliICQodGNsdGtEaXIpXGxpYlx0azg1Zy5saWIiDQotCS8+DQotCTxVc2VyTWFjcm8NCi0JCU5hbWU9InRjbHRrNjRMaWIiDQotCQlWYWx1ZT0iJCh0Y2x0azY0RGlyKVxsaWJcdGNsODUubGliICQodGNsdGs2NERpcilcbGliXHRrODUubGliIg0KLQkvPg0KLQk8VXNlck1hY3JvDQotCQlOYW1lPSJ0Y2x0azY0TGliRGVidWciDQotCQlWYWx1ZT0iJCh0Y2x0azY0RGlyKVxsaWJcdGNsODVnLmxpYiAkKHRjbHRrNjREaXIpXGxpYlx0azg1Zy5saWIiDQotCS8+DQotPC9WaXN1YWxTdHVkaW9Qcm9wZXJ0eVNoZWV0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTOC4wL3B5dGhvbi52Y3Byb2ogYi9QQy9WUzguMC9weXRob24udmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjQ3YzBlLi4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL3B5dGhvbi52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSw2MzcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9InB5dGhvbiINCi0JUHJvamVjdEdVSUQ9IntCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9Ig0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxMzEwNzIiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0NPTlNPTEUiDQotCQkJCVN0cmluZ1Bvb2xpbmc9InRydWUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0idHJ1ZSINCi0JCQkJQ29tcGlsZUFzPSIwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iTkRFQlVHIg0KLQkJCQlDdWx0dXJlPSIxMDMzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcilccHl0aG9uLmV4ZSINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCQlTdGFja1Jlc2VydmVTaXplPSIyMDAwMDAwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZDAwMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9DT05TT0xFIg0KLQkJCQlTdHJpbmdQb29saW5nPSJ0cnVlIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9InRydWUiDQotCQkJCUNvbXBpbGVBcz0iMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJT3V0cHV0RmlsZT0iJChPdXREaXIpXHB5dGhvbi5leGUiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkJU3RhY2tSZXNlcnZlU2l6ZT0iMjAwMDAwMCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWQwMDAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7LlxkZWJ1Zy52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIwIg0KLQkJCQlFbmFibGVJbnRyaW5zaWNGdW5jdGlvbnM9ImZhbHNlIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfQ09OU09MRSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjMiDQotCQkJCUJyb3dzZUluZm9ybWF0aW9uPSIxIg0KLQkJCQlDb21waWxlQXM9IjAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfREVCVUciDQotCQkJCUN1bHR1cmU9IjEwMzMiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKVxweXRob25fZC5leGUiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkJU3RhY2tSZXNlcnZlU2l6ZT0iMjAwMDAwMCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWQwMDAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxkZWJ1Zy52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMCINCi0JCQkJRW5hYmxlSW50cmluc2ljRnVuY3Rpb25zPSJmYWxzZSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0NPTlNPTEUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIzIg0KLQkJCQlCcm93c2VJbmZvcm1hdGlvbj0iMSINCi0JCQkJQ29tcGlsZUFzPSIwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0RFQlVHIg0KLQkJCQlDdWx0dXJlPSIxMDMzIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcilccHl0aG9uX2QuZXhlIg0KLQkJCQlTdWJTeXN0ZW09IjEiDQotCQkJCVN0YWNrUmVzZXJ2ZVNpemU9IjIxMDAwMDAiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFkMDAwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHJlbGVhc2UudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0NPTlNPTEUiDQotCQkJCVN0cmluZ1Bvb2xpbmc9InRydWUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0idHJ1ZSINCi0JCQkJQ29tcGlsZUFzPSIwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iTkRFQlVHIg0KLQkJCQlDdWx0dXJlPSIxMDMzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcilccHl0aG9uLmV4ZSINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCQlTdGFja1Jlc2VydmVTaXplPSIyMDAwMDAwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZDAwMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHJlbGVhc2UudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9DT05TT0xFIg0KLQkJCQlTdHJpbmdQb29saW5nPSJ0cnVlIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9InRydWUiDQotCQkJCUNvbXBpbGVBcz0iMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJT3V0cHV0RmlsZT0iJChPdXREaXIpXHB5dGhvbi5leGUiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkJU3RhY2tSZXNlcnZlU2l6ZT0iMjAwMDAwMCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWQwMDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9IiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7LlxyZWxlYXNlLnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0NPTlNPTEUiDQotCQkJCVN0cmluZ1Bvb2xpbmc9InRydWUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0idHJ1ZSINCi0JCQkJQ29tcGlsZUFzPSIwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iTkRFQlVHIg0KLQkJCQlDdWx0dXJlPSIxMDMzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcilccHl0aG9uLmV4ZSINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCQlTdGFja1Jlc2VydmVTaXplPSIyMDAwMDAwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZDAwMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iZmFsc2UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfQ09OU09MRSINCi0JCQkJU3RyaW5nUG9vbGluZz0idHJ1ZSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJ0cnVlIg0KLQkJCQlDb21waWxlQXM9IjAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJOREVCVUciDQotCQkJCUN1bHR1cmU9IjEwMzMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKVxweXRob24uZXhlIg0KLQkJCQlTdWJTeXN0ZW09IjEiDQotCQkJCVN0YWNrUmVzZXJ2ZVNpemU9IjIwMDAwMDAiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFkMDAwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJSZXNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xweWNvbi5pY28iDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xweXRob25fZXhlLnJjIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJPC9GaWx0ZXI+DQotCQk8RmlsdGVyDQotCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KLQkJCT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNccHl0aG9uLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvcHl0aG9uY29yZS52Y3Byb2ogYi9QQy9WUzguMC9weXRob25jb3JlLnZjcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTc1YmI5ZC4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC9weXRob25jb3JlLnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDE5MjEgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9InB5dGhvbmNvcmUiDQotCVByb2plY3RHVUlEPSJ7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSINCi0JUm9vdE5hbWVzcGFjZT0icHl0aG9uY29yZSINCi0JVGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj0iMTMxMDcyIg0KLQk+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJXaW4zMiINCi0JCS8+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJ4NjQiDQotCQkvPg0KLQk8L1BsYXRmb3Jtcz4NCi0JPFRvb2xGaWxlcz4NCi0JPC9Ub29sRmlsZXM+DQotCTxDb25maWd1cmF0aW9ucz4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHJlbGVhc2UudnNwcm9wcyINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iZmFsc2UiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9Ii9abTIwMCAiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXFB5dGhvbjsuLlwuLlxNb2R1bGVzXHpsaWIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfVVNSRExMO1B5X0JVSUxEX0NPUkU7UHlfRU5BQkxFX1NIQVJFRDtXSU4zMiINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJOREVCVUciDQotCQkJCUN1bHR1cmU9IjEwMzMiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJCURlc2NyaXB0aW9uPSJHZW5lcmF0ZSBidWlsZCBpbmZvcm1hdGlvbi4uLiINCi0JCQkJQ29tbWFuZExpbmU9IiZxdW90OyQoU29sdXRpb25EaXIpbWFrZV9idWlsZGluZm8uZXhlJnF1b3Q7IFJlbGVhc2UgJChJbnREaXIpIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIkKEludERpcilcZ2V0YnVpbGRpbmZvLm8iDQotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKVwkKFB5RGxsTmFtZSkuZGxsIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJsaWJjIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIkKE91dERpcikkKFB5RGxsTmFtZSkucGRiIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTAwMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iJChPdXREaXIpJChQeURsbE5hbWUpLmxpYiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9Ii9abTIwMCAiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXFB5dGhvbjsuLlwuLlxNb2R1bGVzXHpsaWIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfVVNSRExMO1B5X0JVSUxEX0NPUkU7UHlfRU5BQkxFX1NIQVJFRDtXSU4zMiINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJOREVCVUciDQotCQkJCUN1bHR1cmU9IjEwMzMiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJCURlc2NyaXB0aW9uPSJHZW5lcmF0ZSBidWlsZCBpbmZvcm1hdGlvbi4uLiINCi0JCQkJQ29tbWFuZExpbmU9IiZxdW90OyQoU29sdXRpb25EaXIpbWFrZV9idWlsZGluZm8uZXhlJnF1b3Q7IFJlbGVhc2UgJChJbnREaXIpIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIkKEludERpcilcZ2V0YnVpbGRpbmZvLm8iDQotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKVwkKFB5RGxsTmFtZSkuZGxsIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJsaWJjIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIkKE91dERpcikkKFB5RGxsTmFtZSkucGRiIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTAwMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iJChPdXREaXIpJChQeURsbE5hbWUpLmxpYiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXGRlYnVnLnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL1ptMjAwICINCi0JCQkJT3B0aW1pemF0aW9uPSIwIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMCINCi0JCQkJRW5hYmxlSW50cmluc2ljRnVuY3Rpb25zPSJmYWxzZSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cUHl0aG9uOy4uXC4uXE1vZHVsZXNcemxpYiINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9VU1JETEw7UHlfQlVJTERfQ09SRTtQeV9FTkFCTEVfU0hBUkVEO1dJTjMyIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJRGVzY3JpcHRpb249IkdlbmVyYXRlIGJ1aWxkIGluZm9ybWF0aW9uLi4uIg0KLQkJCQlDb21tYW5kTGluZT0iJnF1b3Q7JChTb2x1dGlvbkRpciltYWtlX2J1aWxkaW5mby5leGUmcXVvdDsgRGVidWcgJChJbnREaXIpIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIkKEludERpcilcZ2V0YnVpbGRpbmZvLm8iDQotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKVwkKFB5RGxsTmFtZSlfZC5kbGwiDQotCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9ImxpYmMiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9IiQoT3V0RGlyKSQoUHlEbGxOYW1lKV9kLnBkYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUwMDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9IiQoT3V0RGlyKSQoUHlEbGxOYW1lKV9kLmxpYiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3x4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXGRlYnVnLnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL1ptMjAwICINCi0JCQkJT3B0aW1pemF0aW9uPSIwIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMCINCi0JCQkJRW5hYmxlSW50cmluc2ljRnVuY3Rpb25zPSJmYWxzZSINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cUHl0aG9uOy4uXC4uXE1vZHVsZXNcemxpYiINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9VU1JETEw7UHlfQlVJTERfQ09SRTtQeV9FTkFCTEVfU0hBUkVEO1dJTjMyIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJRGVzY3JpcHRpb249IkdlbmVyYXRlIGJ1aWxkIGluZm9ybWF0aW9uLi4uIg0KLQkJCQlDb21tYW5kTGluZT0iJnF1b3Q7JChTb2x1dGlvbkRpciltYWtlX2J1aWxkaW5mby5leGUmcXVvdDsgRGVidWcgJChJbnREaXIpIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIkKEludERpcilcZ2V0YnVpbGRpbmZvLm8iDQotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKVwkKFB5RGxsTmFtZSlfZC5kbGwiDQotCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9ImxpYmMiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9IiQoT3V0RGlyKSQoUHlEbGxOYW1lKV9kLnBkYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUwMDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9IiQoT3V0RGlyKSQoUHlEbGxOYW1lKV9kLmxpYiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7LlxyZWxlYXNlLnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iZmFsc2UiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9Ii9abTIwMCAiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXFB5dGhvbjsuLlwuLlxNb2R1bGVzXHpsaWIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfVVNSRExMO1B5X0JVSUxEX0NPUkU7UHlfRU5BQkxFX1NIQVJFRDtXSU4zMiINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJOREVCVUciDQotCQkJCUN1bHR1cmU9IjEwMzMiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJCURlc2NyaXB0aW9uPSJHZW5lcmF0ZSBidWlsZCBpbmZvcm1hdGlvbi4uLiINCi0JCQkJQ29tbWFuZExpbmU9IiZxdW90OyQoU29sdXRpb25EaXIpbWFrZV9idWlsZGluZm8uZXhlJnF1b3Q7IFJlbGVhc2UgJChJbnREaXIpIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIkKEludERpcilcZ2V0YnVpbGRpbmZvLm8iDQotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKVwkKFB5RGxsTmFtZSkuZGxsIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJsaWJjIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIkKE91dERpcikkKFB5RGxsTmFtZSkucGRiIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTAwMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iJChPdXREaXJQR0kpJChQeURsbE5hbWUpLmxpYiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxyZWxlYXNlLnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iZmFsc2UiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvWm0yMDAgIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQeXRob247Li5cLi5cTW9kdWxlc1x6bGliIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtQeV9CVUlMRF9DT1JFO1B5X0VOQUJMRV9TSEFSRUQ7V0lOMzIiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iTkRFQlVHIg0KLQkJCQlDdWx0dXJlPSIxMDMzIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCQlEZXNjcmlwdGlvbj0iR2VuZXJhdGUgYnVpbGQgaW5mb3JtYXRpb24uLi4iDQotCQkJCUNvbW1hbmRMaW5lPSImcXVvdDskKFNvbHV0aW9uRGlyKW1ha2VfYnVpbGRpbmZvLmV4ZSZxdW90OyBSZWxlYXNlICQoSW50RGlyKSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iJChJbnREaXIpXGdldGJ1aWxkaW5mby5vIg0KLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcilcJChQeURsbE5hbWUpLmRsbCINCi0JCQkJSWdub3JlRGVmYXVsdExpYnJhcnlOYW1lcz0ibGliYyINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iJChPdXREaXIpJChQeURsbE5hbWUpLnBkYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUwMDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9IiQoT3V0RGlyUEdJKSQoUHlEbGxOYW1lKS5saWIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iZmFsc2UiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9Ii9abTIwMCAiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXFB5dGhvbjsuLlwuLlxNb2R1bGVzXHpsaWIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfVVNSRExMO1B5X0JVSUxEX0NPUkU7UHlfRU5BQkxFX1NIQVJFRDtXSU4zMiINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJOREVCVUciDQotCQkJCUN1bHR1cmU9IjEwMzMiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJCURlc2NyaXB0aW9uPSJHZW5lcmF0ZSBidWlsZCBpbmZvcm1hdGlvbi4uLiINCi0JCQkJQ29tbWFuZExpbmU9IiZxdW90OyQoU29sdXRpb25EaXIpbWFrZV9idWlsZGluZm8uZXhlJnF1b3Q7IFJlbGVhc2UgKCRJbnREaXIpIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSIkKEludERpcilcZ2V0YnVpbGRpbmZvLm8iDQotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKVwkKFB5RGxsTmFtZSkuZGxsIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJsaWJjIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIkKE91dERpcikkKFB5RGxsTmFtZSkucGRiIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTAwMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iJChPdXREaXJQR0kpJChQeURsbE5hbWUpLmxpYiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHJlbGVhc2UudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL1ptMjAwICINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cUHl0aG9uOy4uXC4uXE1vZHVsZXNcemxpYiINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9VU1JETEw7UHlfQlVJTERfQ09SRTtQeV9FTkFCTEVfU0hBUkVEO1dJTjMyIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkJRGVzY3JpcHRpb249IkdlbmVyYXRlIGJ1aWxkIGluZm9ybWF0aW9uLi4uIg0KLQkJCQlDb21tYW5kTGluZT0iJnF1b3Q7JChTb2x1dGlvbkRpciltYWtlX2J1aWxkaW5mby5leGUmcXVvdDsgUmVsZWFzZSAkKEludERpcikiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IiQoSW50RGlyKVxnZXRidWlsZGluZm8ubyINCi0JCQkJT3V0cHV0RmlsZT0iJChPdXREaXIpXCQoUHlEbGxOYW1lKS5kbGwiDQotCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9ImxpYmMiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9IiQoT3V0RGlyKSQoUHlEbGxOYW1lKS5wZGIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMDAwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIkKE91dERpclBHSSkkKFB5RGxsTmFtZSkubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxNyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsdGVyDQotCQkJTmFtZT0iSW5jbHVkZSINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGFic3RyYWN0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGFjY3UuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcYXNkbC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxhc3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcYml0c2V0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGJvb2xvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcYnl0ZXNfbWV0aG9kcy5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxieXRlYXJyYXlvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcYnl0ZXNvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcY2VsbG9iamVjdC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxjZXZhbC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxjbGFzc29iamVjdC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxjb2RlLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGNvZGVjcy5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxjb21waWxlLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGNvbXBsZXhvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZGF0ZXRpbWUuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZGVzY3JvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZGljdG9iamVjdC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxkeW5hbWljX2Fubm90YXRpb25zLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGVudW1vYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZXJyY29kZS5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxldmFsLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGZpbGVvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZmlsZXV0aWxzLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGZsb2F0b2JqZWN0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGZvcm1hdHRlcl91bmljb2RlLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGZyYW1lb2JqZWN0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGZ1bmNvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZ2Vub2JqZWN0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGdyYW1pbml0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGdyYW1tYXIuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcaW1wb3J0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGludHJjaGVjay5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxpdGVyb2JqZWN0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGxpc3RvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcbG9uZ2ludHJlcHIuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcbG9uZ29iamVjdC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxtYXJzaGFsLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXG1lbW9yeW9iamVjdC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxtZXRhZ3JhbW1hci5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxtZXRob2RvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcbW9kc3VwcG9ydC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxtb2R1bGVvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcbm9kZS5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcb2JqaW1wbC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxvcGNvZGUuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcb3NkZWZzLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHBhcnNldG9rLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHBhdGNobGV2ZWwuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccGdlbi5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxwZ2VuaGVhZGVycy5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxweV9jdXJzZXMuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHlhcmVuYS5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxweWNhcHN1bGUuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHljdHlwZS5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxweWRlYnVnLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5ZXJyb3JzLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5ZXhwYXQuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHlmcGUuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHlnZXRvcHQuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHltYWN0b29sYm94LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5bWF0aC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxweXRpbWUuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHltZW0uaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHlwb3J0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5c3RhdGUuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHlzdHJjbXAuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHlzdHJ0b2QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZHRvYS5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxQeXRob24tYXN0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXFB5dGhvbi5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxweXRob25ydW4uaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHl0aHJlYWQuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccmFuZ2VvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcc2V0b2JqZWN0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHNsaWNlb2JqZWN0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHN0cnVjdG1lbWJlci5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxzdHJ1Y3RzZXEuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcc3ltdGFibGUuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcc3lzbW9kdWxlLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHRpbWVmdW5jcy5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVx0b2tlbi5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVx0cmFjZWJhY2suaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcdHVwbGVvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcdWNuaGFzaC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVx1bmljb2Rlb2JqZWN0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHdlYWtyZWZvYmplY3QuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9Ik1vZHVsZXMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfYmlzZWN0bW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jb2RlY3Ntb2R1bGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2NvbGxlY3Rpb25zbW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jc3YuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2Z1bmN0b29sc21vZHVsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfaGVhcHFtb2R1bGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2pzb24uYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2xvY2FsZW1vZHVsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfbHNwcm9mLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9tYXRoLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9tYXRoLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9waWNrbGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3JhbmRvbW1vZHVsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3JlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zdHJ1Y3QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3RpbWUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3RpbWUuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3dlYWtyZWYuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcYXJyYXltb2R1bGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcYXRleGl0bW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGF1ZGlvb3AuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcYmluYXNjaWkuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY21hdGhtb2R1bGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RhdGV0aW1lbW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGVycm5vbW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGdjbW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGl0ZXJ0b29sc21vZHVsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xtYWluLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXG1hdGhtb2R1bGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcbWQ1bW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXG1tYXBtb2R1bGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcb3BlcmF0b3IuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNccGFyc2VybW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHBvc2l4bW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHJvdGF0aW5ndHJlZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xyb3RhdGluZ3RyZWUuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcc2hhMW1vZHVsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xzaGEyNTZtb2R1bGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcc2hhNTEybW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHNpZ25hbG1vZHVsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xzeW10YWJsZW1vZHVsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfdGhyZWFkbW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHRpbWVtb2R1bGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNceHhzdWJ0eXBlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHppcGltcG9ydC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGlibW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbHRlcg0KLQkJCQlOYW1lPSJfaW8iDQotCQkJCT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfaW9cZmlsZWlvLmMiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfaW9cYnl0ZXNpby5jIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2lvXHN0cmluZ2lvLmMiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfaW9cYnVmZmVyZWRpby5jIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2lvXGlvYmFzZS5jIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2lvXHRleHRpby5jIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2lvXF9pb21vZHVsZS5jIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2lvXF9pb21vZHVsZS5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJPC9GaWx0ZXI+DQotCQkJPEZpbHRlcg0KLQkJCQlOYW1lPSJ6bGliIg0KLQkJCQk+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxhZGxlcjMyLmMiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGNvbXByZXNzLmMiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGNyYzMyLmMiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGNyYzMyLmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGRlZmxhdGUuYyINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcZGVmbGF0ZS5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxnemlvLmMiDQotCQkJCQk+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW42NCINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9DUlRfU0VDVVJFX05PX0RFUFJFQ0FURSINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWd8V2luNjQiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEUiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJQR0luc3RydW1lbnR8V2luMzIiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEUiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJQR0luc3RydW1lbnR8V2luNjQiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEUiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJQR1VwZGF0ZXxXaW4zMiINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9DUlRfU0VDVVJFX05PX0RFUFJFQ0FURSINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlBHVXBkYXRlfFdpbjY0Ig0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxpbmZiYWNrLmMiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGluZmZhc3QuYyINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcaW5mZmFzdC5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxpbmZmaXhlZC5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxpbmZsYXRlLmMiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGluZmxhdGUuaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcaW5mdHJlZXMuYyINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcaW5mdHJlZXMuaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcdHJlZXMuYyINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcdHJlZXMuaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcdW5jb21wci5jIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlx6Y29uZi5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlx6Y29uZi5pbi5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlx6bGliLmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXHp1dGlsLmMiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXHp1dGlsLmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQk8L0ZpbHRlcj4NCi0JCQk8RmlsdGVyDQotCQkJCU5hbWU9ImNqa2NvZGVjcyINCi0JCQkJPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX2NuLmMiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xjamtjb2RlY3NcX2NvZGVjc19oay5jIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3NfaXNvMjAyMi5jIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3NfanAuYyINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX2tyLmMiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xjamtjb2RlY3NcX2NvZGVjc190dy5jIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXGFsZ19qaXN4MDIwMS5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXGNqa2NvZGVjcy5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXGVtdV9qaXN4MDIxM18yMDAwLmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xjamtjb2RlY3NcbWFwcGluZ3NfY24uaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGNqa2NvZGVjc1xtYXBwaW5nc19oay5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXG1hcHBpbmdzX2ppc3gwMjEzX3BhaXIuaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGNqa2NvZGVjc1xtYXBwaW5nc19qcC5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXG1hcHBpbmdzX2tyLmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xjamtjb2RlY3NcbWFwcGluZ3NfdHcuaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGNqa2NvZGVjc1xtdWx0aWJ5dGVjb2RlYy5jIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXG11bHRpYnl0ZWNvZGVjLmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQk8L0ZpbHRlcj4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9Ik9iamVjdHMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xhYnN0cmFjdC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xhY2N1LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGJvb2xvYmplY3QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcYnl0ZXNfbWV0aG9kcy5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xieXRlYXJyYXlvYmplY3QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcYnl0ZXNvYmplY3QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcY2Fwc3VsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xjZWxsb2JqZWN0LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGNsYXNzb2JqZWN0LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGNvZGVvYmplY3QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcY29tcGxleG9iamVjdC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xzdHJpbmdsaWJcY291bnQuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcZGVzY3JvYmplY3QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcZGljdG9iamVjdC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xlbnVtb2JqZWN0LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGV4Y2VwdGlvbnMuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcc3RyaW5nbGliXGZhc3RzZWFyY2guaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcZmlsZW9iamVjdC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xzdHJpbmdsaWJcZmluZC5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xmbG9hdG9iamVjdC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xmcmFtZW9iamVjdC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xmdW5jb2JqZWN0LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGdlbm9iamVjdC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xpdGVyb2JqZWN0LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGxpc3RvYmplY3QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcbG9uZ29iamVjdC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xtZW1vcnlvYmplY3QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcbWV0aG9kb2JqZWN0LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXG1vZHVsZW9iamVjdC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xvYmplY3QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcb2JtYWxsb2MuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcc3RyaW5nbGliXHBhcnRpdGlvbi5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xyYW5nZW9iamVjdC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xzZXRvYmplY3QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcc2xpY2VvYmplY3QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcc3RyaW5nbGliXHNwbGl0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXHN0cnVjdHNlcS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1x0dXBsZW9iamVjdC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1x0eXBlb2JqZWN0LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXHVuaWNvZGVjdHlwZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1x1bmljb2Rlb2JqZWN0LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXHVuaWNvZGV0eXBlX2RiLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXHdlYWtyZWZvYmplY3QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlBhcnNlciINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcYWNjZWxlci5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXGJpdHNldC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXGZpcnN0c2V0cy5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXGdyYW1tYXIuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBhcnNlclxncmFtbWFyMS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXGxpc3Rub2RlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcbWV0YWdyYW1tYXIuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBhcnNlclxteXJlYWRsaW5lLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcbm9kZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXHBhcnNlci5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXHBhcnNlci5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXHBhcnNldG9rLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcdG9rZW5pemVyLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcdG9rZW5pemVyLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJQQyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xfc3VicHJvY2Vzcy5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcd2lucmVnLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xjb25maWcuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXGRsX250LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xlcnJtYXAuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXGdldHBhdGhwLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xtc3ZjcnRtb2R1bGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXHB5Y29uZmlnLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJQeXRob24iDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXF93YXJuaW5ncy5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGFzZGwuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxhc3QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxibHRpbm1vZHVsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGNldmFsLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cY29kZWNzLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cY29tcGlsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGR5bmFtaWNfYW5ub3RhdGlvbnMuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxkeW5sb2FkX3dpbi5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGVycm9ycy5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGZpbGV1dGlscy5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGZvcm1hdHRlcl91bmljb2RlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZnJvemVuLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZnV0dXJlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZ2V0YXJncy5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGdldGNvbXBpbGVyLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZ2V0Y29weXJpZ2h0LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZ2V0b3B0LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZ2V0cGxhdGZvcm0uYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxnZXR2ZXJzaW9uLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZ3JhbWluaXQuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxpbXBvcnQuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxpbXBvcnRkbC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGltcG9ydGRsLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cbWFyc2hhbC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXG1vZHN1cHBvcnQuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxteXNucHJpbnRmLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cbXlzdHJ0b3VsLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25ccGVlcGhvbGUuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxweWFyZW5hLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25ccHljdHlwZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHB5ZnBlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25ccHltYXRoLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25ccHl0aW1lLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25ccHlzdGF0ZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHB5c3RyY21wLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25ccHlzdHJ0b2QuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxkdG9hLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cUHl0aG9uLWFzdC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHB5dGhvbnJ1bi5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHJhbmRvbS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHN0cnVjdG1lbWJlci5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHN5bXRhYmxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cc3lzbW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cdGhyZWFkLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cdGhyZWFkX250LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cdHJhY2ViYWNrLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJSZXNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xweXRob25fbnQucmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvcHl0aG9udy52Y3Byb2ogYi9QQy9WUzguMC9weXRob253LnZjcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTAzN2I3OC4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC9weXRob253LnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDYxOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOC4wMCINCi0JTmFtZT0icHl0aG9udyINCi0JUHJvamVjdEdVSUQ9IntGNDIyOUNDMy04NzNDLTQ5QUUtOTcyOS1ERDMwOEVENENENEF9Ig0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxMzEwNzIiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXGRlYnVnLnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjAiDQotCQkJCUVuYWJsZUludHJpbnNpY0Z1bmN0aW9ucz0iZmFsc2UiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9XSU5ET1dTIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMyINCi0JCQkJQ29tcGlsZUFzPSIwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0RFQlVHIg0KLQkJCQlDdWx0dXJlPSIxMDMzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcilccHl0aG9ud19kLmV4ZSINCi0JCQkJU3RhY2tSZXNlcnZlU2l6ZT0iMjAwMDAwMCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWQwMDAwMDAiDQotCQkJCVRhcmdldE1hY2hpbmU9IjEiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxkZWJ1Zy52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIwIg0KLQkJCQlFbmFibGVJbnRyaW5zaWNGdW5jdGlvbnM9ImZhbHNlIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfV0lORE9XUyINCi0JCQkJUnVudGltZUxpYnJhcnk9IjMiDQotCQkJCUNvbXBpbGVBcz0iMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJT3V0cHV0RmlsZT0iJChPdXREaXIpXHB5dGhvbndfZC5leGUiDQotCQkJCVN0YWNrUmVzZXJ2ZVNpemU9IjIwMDAwMDAiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFkMDAwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7LlxyZWxlYXNlLnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9XSU5ET1dTIg0KLQkJCQlTdHJpbmdQb29saW5nPSJ0cnVlIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9InRydWUiDQotCQkJCUNvbXBpbGVBcz0iMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJT3V0cHV0RmlsZT0iJChPdXREaXIpXHB5dGhvbncuZXhlIg0KLQkJCQlTdGFja1Jlc2VydmVTaXplPSIyMDAwMDAwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZDAwMDAwMCINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1dJTkRPV1MiDQotCQkJCVN0cmluZ1Bvb2xpbmc9InRydWUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0idHJ1ZSINCi0JCQkJQ29tcGlsZUFzPSIwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iTkRFQlVHIg0KLQkJCQlDdWx0dXJlPSIxMDMzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcilccHl0aG9udy5leGUiDQotCQkJCVN0YWNrUmVzZXJ2ZVNpemU9IjIwMDAwMDAiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFkMDAwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHJlbGVhc2UudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfV0lORE9XUyINCi0JCQkJU3RyaW5nUG9vbGluZz0idHJ1ZSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjIiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJ0cnVlIg0KLQkJCQlDb21waWxlQXM9IjAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJOREVCVUciDQotCQkJCUN1bHR1cmU9IjEwMzMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKVxweXRob253LmV4ZSINCi0JCQkJU3RhY2tSZXNlcnZlU2l6ZT0iMjAwMDAwMCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWQwMDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9IiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxyZWxlYXNlLnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iZmFsc2UiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9XSU5ET1dTIg0KLQkJCQlTdHJpbmdQb29saW5nPSJ0cnVlIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9InRydWUiDQotCQkJCUNvbXBpbGVBcz0iMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJT3V0cHV0RmlsZT0iJChPdXREaXIpXHB5dGhvbncuZXhlIg0KLQkJCQlTdGFja1Jlc2VydmVTaXplPSIyMDAwMDAwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZDAwMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxNyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHJlbGVhc2UudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9XSU5ET1dTIg0KLQkJCQlTdHJpbmdQb29saW5nPSJ0cnVlIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9InRydWUiDQotCQkJCUNvbXBpbGVBcz0iMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJT3V0cHV0RmlsZT0iJChPdXREaXIpXHB5dGhvbncuZXhlIg0KLQkJCQlTdGFja1Jlc2VydmVTaXplPSIyMDAwMDAwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZDAwMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iZmFsc2UiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9XSU5ET1dTIg0KLQkJCQlTdHJpbmdQb29saW5nPSJ0cnVlIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMiINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9InRydWUiDQotCQkJCUNvbXBpbGVBcz0iMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCi0JCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJT3V0cHV0RmlsZT0iJChPdXREaXIpXHB5dGhvbncuZXhlIg0KLQkJCQlTdGFja1Jlc2VydmVTaXplPSIyMDAwMDAwIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZDAwMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxNyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsdGVyDQotCQkJTmFtZT0iUmVzb3VyY2UgRmlsZXMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENccHl0aG9uX2V4ZS5yYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xXaW5NYWluLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvcmVsZWFzZS52c3Byb3BzIGIvUEMvVlM4LjAvcmVsZWFzZS52c3Byb3BzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOGRlZjkwLi4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL3JlbGVhc2UudnNwcm9wcworKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9wZXJ0eVNoZWV0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI4LjAwIg0KLQlOYW1lPSJyZWxlYXNlIg0KLQk+DQotCTxUb29sDQotCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCi0JLz4NCi0JPFVzZXJNYWNybw0KLQkJTmFtZT0iS2lsbFB5dGhvbkV4ZSINCi0JCVZhbHVlPSIkKE91dERpcilca2lsbF9weXRob24uZXhlIg0KLQkvPgkNCi08L1Zpc3VhbFN0dWRpb1Byb3BlcnR5U2hlZXQ+DQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvcm1weWMucHkgYi9QQy9WUzguMC9ybXB5Yy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMThlMTcwNS4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC9ybXB5Yy5weQorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLSMgUmVtb3ZlIGFsbCB0aGUgLnB5YyBhbmQgLnB5byBmaWxlcyB1bmRlciAuLi9MaWIuCi0KLQotZGVmIGRlbHRyZWUocm9vdCk6Ci0gICAgaW1wb3J0IG9zCi0gICAgZnJvbSBvcy5wYXRoIGltcG9ydCBqb2luCi0KLSAgICBucHljID0gbnB5byA9IDAKLSAgICBmb3Igcm9vdCwgZGlycywgZmlsZXMgaW4gb3Mud2Fsayhyb290KToKLSAgICAgICAgZm9yIG5hbWUgaW4gZmlsZXM6Ci0gICAgICAgICAgICBkZWxldGUgPSBGYWxzZQotICAgICAgICAgICAgaWYgbmFtZS5lbmRzd2l0aCgnLnB5YycpOgotICAgICAgICAgICAgICAgIGRlbGV0ZSA9IFRydWUKLSAgICAgICAgICAgICAgICBucHljICs9IDEKLSAgICAgICAgICAgIGVsaWYgbmFtZS5lbmRzd2l0aCgnLnB5bycpOgotICAgICAgICAgICAgICAgIGRlbGV0ZSA9IFRydWUKLSAgICAgICAgICAgICAgICBucHlvICs9IDEKLQotICAgICAgICAgICAgaWYgZGVsZXRlOgotICAgICAgICAgICAgICAgIG9zLnJlbW92ZShqb2luKHJvb3QsIG5hbWUpKQotCi0gICAgcmV0dXJuIG5weWMsIG5weW8KLQotbnB5YywgbnB5byA9IGRlbHRyZWUoIi4uLy4uL0xpYiIpCi1wcmludChucHljLCAiLnB5YyBkZWxldGVkLCIsIG5weW8sICIucHlvIGRlbGV0ZWQiKQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvcnQuYmF0IGIvUEMvVlM4LjAvcnQuYmF0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNDI5ZTE5Li4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL3J0LmJhdAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLUBlY2hvIG9mZgotcmVtIFJ1biBUZXN0cy4gIFJ1biB0aGUgcmVncmVzc2lvbiB0ZXN0IHN1aXRlLgotcmVtIFVzYWdlOiAgcnQgWy1kXSBbLU9dIFstcV0gcmVncnRlc3RfYXJncwotcmVtIC1kICAgUnVuIERlYnVnIGJ1aWxkIChweXRob25fZC5leGUpLiAgRWxzZSByZWxlYXNlIGJ1aWxkLgotcmVtIC1PICAgUnVuIHB5dGhvbi5leGUgb3IgcHl0aG9uX2QuZXhlIChzZWUgLWQpIHdpdGggLU8uCi1yZW0gLXEgICAicXVpY2siIC0tIG5vcm1hbGx5IHRoZSB0ZXN0cyBhcmUgcnVuIHR3aWNlLCB0aGUgZmlyc3QgdGltZQotcmVtICAgICAgYWZ0ZXIgZGVsZXRpbmcgYWxsIHRoZSAucHlbY29dIGZpbGVzIHJlYWNoYWJsZSBmcm9tIExpYi8uCi1yZW0gICAgICAtcSBydW5zIHRoZSB0ZXN0cyBqdXN0IG9uY2UsIGFuZCB3aXRob3V0IGRlbGV0aW5nIC5weVtjb10gZmlsZXMuCi1yZW0gQWxsIGxlYWRpbmcgaW5zdGFuY2VzIG9mIHRoZXNlIHN3aXRjaGVzIGFyZSBzaGlmdGVkIG9mZiwgYW5kCi1yZW0gd2hhdGV2ZXIgcmVtYWlucyBpcyBwYXNzZWQgdG8gcmVncnRlc3QucHkuICBGb3IgZXhhbXBsZSwKLXJlbSAgICAgcnQgLU8gLWQgLXggdGVzdF90aHJlYWQKLXJlbSBydW5zCi1yZW0gICAgIHB5dGhvbl9kIC1PIC4uL2xpYi90ZXN0L3JlZ3J0ZXN0LnB5IC14IHRlc3RfdGhyZWFkCi1yZW0gdHdpY2UsIGFuZAotcmVtICAgICBydCAtcSAtZyB0ZXN0X2JpbmFzY2lpCi1yZW0gcnVucwotcmVtICAgICBweXRob25fZCAuLi9saWIvdGVzdC9yZWdydGVzdC5weSAtZyB0ZXN0X2JpbmFzY2lpCi1yZW0gdG8gZ2VuZXJhdGUgdGhlIGV4cGVjdGVkLW91dHB1dCBmaWxlIGZvciBiaW5hc2NpaSBxdWlja2x5LgotcmVtCi1yZW0gQ29uZnVzaW5nOiAgaWYgeW91IHdhbnQgdG8gcGFzcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBsaWtlCi1yZW0gICAgIC11IG5ldHdvcmssbGFyZ2VmaWxlCi1yZW0gdGhlbiB5b3UgaGF2ZSB0byBxdW90ZSBpdCBvbiB0aGUgcnQgbGluZSwgbGlrZQotcmVtICAgICBydCAtdSAibmV0d29yayxsYXJnZWZpbGUiCi0KLXNldGxvY2FsCi0KLXNldCBleGU9cHl0aG9uCi1zZXQgcW1vZGU9Ci1zZXQgZGFzaE89Ci1QQVRIICVQQVRIJTslfmRwMC4uXC4uXC4uXHRjbHRrXGJpbgotCi06Q2hlY2tPcHRzCi1pZiAiJTEiPT0iLU8iIChzZXQgZGFzaE89LU8pICAgICAmIHNoaWZ0ICYgZ290byBDaGVja09wdHMKLWlmICIlMSI9PSItcSIgKHNldCBxbW9kZT15ZXMpICAgICYgc2hpZnQgJiBnb3RvIENoZWNrT3B0cwotaWYgIiUxIj09Ii1kIiAoc2V0IGV4ZT1weXRob25fZCkgJiBzaGlmdCAmIGdvdG8gQ2hlY2tPcHRzCi0KLXNldCBjbWQ9JWV4ZSUgJWRhc2hPJSAtRSAuLi8uLi9saWIvdGVzdC9yZWdydGVzdC5weSAlMSAlMiAlMyAlNCAlNSAlNiAlNyAlOCAlOQotaWYgZGVmaW5lZCBxbW9kZSBnb3RvIFFtb2RlCi0KLWVjaG8gRGVsZXRpbmcgLnB5Yy8ucHlvIGZpbGVzIC4uLgotJWV4ZSUgcm1weWMucHkKLQotZWNobyBvbgotJWNtZCUKLUBlY2hvIG9mZgotCi1lY2hvIEFib3V0IHRvIHJ1biBhZ2FpbiB3aXRob3V0IGRlbGV0aW5nIC5weWMvLnB5byBmaXJzdDoKLXBhdXNlCi0KLTpRbW9kZQotZWNobyBvbgotJWNtZCUKZGlmZiAtLWdpdCBhL1BDL1ZTOC4wL3NlbGVjdC52Y3Byb2ogYi9QQy9WUzguMC9zZWxlY3QudmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzFmYzE2Li4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL3NlbGVjdC52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSw1MzcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9InNlbGVjdCINCi0JUHJvamVjdEdVSUQ9InsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9Ig0KLQlSb290TmFtZXNwYWNlPSJzZWxlY3QiDQotCUtleXdvcmQ9IldpbjMyUHJvaiINCi0JVGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj0iMTk2NjEzIg0KLQk+DQotCTxQbGF0Zm9ybXM+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJXaW4zMiINCi0JCS8+DQotCQk8UGxhdGZvcm0NCi0JCQlOYW1lPSJ4NjQiDQotCQkvPg0KLQk8L1BsYXRmb3Jtcz4NCi0JPFRvb2xGaWxlcz4NCi0JPC9Ub29sRmlsZXM+DQotCTxDb25maWd1cmF0aW9ucz4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkX2QudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiINCi0JCQkJSWdub3JlRGVmYXVsdExpYnJhcnlOYW1lcz0ibGliYyINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMTAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iRGVidWd8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZF9kLnZzcHJvcHM7Llx4NjQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9ImxpYmMiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTEwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJsaWJjIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDExMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9ImxpYmMiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTEwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiINCi0JCQkJSWdub3JlRGVmYXVsdExpYnJhcnlOYW1lcz0ibGliYyINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMTAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdJbnN0cnVtZW50fHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccGdpbnN0cnVtZW50LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiINCi0JCQkJSWdub3JlRGVmYXVsdExpYnJhcnlOYW1lcz0ibGliYyINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMTAwMDAiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9ImxpYmMiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTEwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJsaWJjIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDExMDAwMCINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHNlbGVjdG1vZHVsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJPC9GaWx0ZXI+DQotCTwvRmlsZXM+DQotCTxHbG9iYWxzPg0KLQk8L0dsb2JhbHM+DQotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTOC4wL3NxbGl0ZTMudmNwcm9qIGIvUEMvVlM4LjAvc3FsaXRlMy52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhZmJlNWQuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvc3FsaXRlMy52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSw1MzcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9InNxbGl0ZTMiDQotCVByb2plY3RHVUlEPSJ7QTFBMjk1RTUtNDYzQy00MzdGLTgxQ0EtMUYzMjM2NzY4NURBfSINCi0JUm9vdE5hbWVzcGFjZT0ic3FsaXRlMyINCi0JS2V5d29yZD0iV2luMzJQcm9qIg0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxzcWxpdGUzLnZzcHJvcHM7LlxkZWJ1Zy52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKVwkKFByb2plY3ROYW1lKV9kLmRsbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3x4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5cc3FsaXRlMy52c3Byb3BzOy5cZGVidWcudnNwcm9wczsuXHg2NC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcilcJChQcm9qZWN0TmFtZSlfZC5kbGwiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxzcWxpdGUzLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKVwkKFByb2plY3ROYW1lKS5kbGwiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5cc3FsaXRlMy52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcilcJChQcm9qZWN0TmFtZSkuZGxsIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxzcWxpdGUzLnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90Oy4uXC4uXC4uXHNxbGl0ZS0zLjYuMjEmcXVvdDsiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCU91dHB1dEZpbGU9IiQoT3V0RGlyKVwkKFByb2plY3ROYW1lKS5kbGwiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdJbnN0cnVtZW50fHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxzcWxpdGUzLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxzcWxpdGUzLnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlPdXRwdXRGaWxlPSIkKE91dERpcilcJChQcm9qZWN0TmFtZSkuZGxsIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxzcWxpdGUzLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJIZWFkZXIgRmlsZXMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cLi5cc3FsaXRlLTMuNi4yMVxzcWxpdGUzLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlwuLlxzcWxpdGUtMy42LjIxXHNxbGl0ZTNleHQuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlwuLlxzcWxpdGUtMy42LjIxXHNxbGl0ZTMuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC9zcWxpdGUzLnZzcHJvcHMgYi9QQy9WUzguMC9zcWxpdGUzLnZzcHJvcHMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzMDAzMjguLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvc3FsaXRlMy52c3Byb3BzCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb3BlcnR5U2hlZXQNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9InNxbGl0ZTMiDQotCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzIg0KLQk+DQotCTxUb29sDQotCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cLi5cc3FsaXRlLTMuNi4yMSINCi0JCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJTUUxJVEVfQVBJPV9fZGVjbHNwZWMoZGxsZXhwb3J0KSINCi0JCVdhcm5pbmdMZXZlbD0iMSINCi0JLz4NCi08L1Zpc3VhbFN0dWRpb1Byb3BlcnR5U2hlZXQ+DQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvc3NsLnZjcHJvaiBiL1BDL1ZTOC4wL3NzbC52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwZDYzNWUuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvc3NsLnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDE4OSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOC4wMCINCi0JTmFtZT0ic3NsIg0KLQlQcm9qZWN0R1VJRD0ie0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0iDQotCVJvb3ROYW1lc3BhY2U9InNzbCINCi0JS2V5d29yZD0iTWFrZUZpbGVQcm9qIg0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMCINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNOTWFrZVRvb2wiDQotCQkJCUJ1aWxkQ29tbWFuZExpbmU9ImNkICZxdW90OyQoU29sdXRpb25EaXIpJnF1b3Q7JiN4MEQ7JiN4MEE7JnF1b3Q7JChQeXRob25FeGUpJnF1b3Q7IGJ1aWxkX3NzbC5weSBSZWxlYXNlICQoUGxhdGZvcm1OYW1lKSAtYSYjeDBEOyYjeDBBOyINCi0JCQkJUmVCdWlsZENvbW1hbmRMaW5lPSIiDQotCQkJCUNsZWFuQ29tbWFuZExpbmU9IiINCi0JCQkJT3V0cHV0PSIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIiDQotCQkJCUluY2x1ZGVTZWFyY2hQYXRoPSIiDQotCQkJCUZvcmNlZEluY2x1ZGVzPSIiDQotCQkJCUFzc2VtYmx5U2VhcmNoUGF0aD0iIg0KLQkJCQlGb3JjZWRVc2luZ0Fzc2VtYmxpZXM9IiINCi0JCQkJQ29tcGlsZUFzTWFuYWdlZD0iIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMCINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ05NYWtlVG9vbCINCi0JCQkJQnVpbGRDb21tYW5kTGluZT0iY2QgJnF1b3Q7JChTb2x1dGlvbkRpcikmcXVvdDsmI3gwRDsmI3gwQTsmcXVvdDskKFB5dGhvbkV4ZSkmcXVvdDsgYnVpbGRfc3NsLnB5IFJlbGVhc2UgJChQbGF0Zm9ybU5hbWUpIC1hJiN4MEQ7JiN4MEE7Ig0KLQkJCQlSZUJ1aWxkQ29tbWFuZExpbmU9IiINCi0JCQkJQ2xlYW5Db21tYW5kTGluZT0iIg0KLQkJCQlPdXRwdXQ9IiINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiINCi0JCQkJSW5jbHVkZVNlYXJjaFBhdGg9IiINCi0JCQkJRm9yY2VkSW5jbHVkZXM9IiINCi0JCQkJQXNzZW1ibHlTZWFyY2hQYXRoPSIiDQotCQkJCUZvcmNlZFVzaW5nQXNzZW1ibGllcz0iIg0KLQkJCQlDb21waWxlQXNNYW5hZ2VkPSIiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMCINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTk1ha2VUb29sIg0KLQkJCQlCdWlsZENvbW1hbmRMaW5lPSJjZCAmcXVvdDskKFNvbHV0aW9uRGlyKSZxdW90OyYjeDBEOyYjeDBBOyZxdW90OyQoUHl0aG9uRXhlKSZxdW90OyBidWlsZF9zc2wucHkgUmVsZWFzZSAkKFBsYXRmb3JtTmFtZSkgLWEmI3gwRDsmI3gwQTsiDQotCQkJCVJlQnVpbGRDb21tYW5kTGluZT0iIg0KLQkJCQlDbGVhbkNvbW1hbmRMaW5lPSIiDQotCQkJCU91dHB1dD0iIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iIg0KLQkJCQlJbmNsdWRlU2VhcmNoUGF0aD0iIg0KLQkJCQlGb3JjZWRJbmNsdWRlcz0iIg0KLQkJCQlBc3NlbWJseVNlYXJjaFBhdGg9IiINCi0JCQkJRm9yY2VkVXNpbmdBc3NlbWJsaWVzPSIiDQotCQkJCUNvbXBpbGVBc01hbmFnZWQ9IiINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMCINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNOTWFrZVRvb2wiDQotCQkJCUJ1aWxkQ29tbWFuZExpbmU9ImNkICZxdW90OyQoU29sdXRpb25EaXIpJnF1b3Q7JiN4MEQ7JiN4MEE7JnF1b3Q7JChQeXRob25FeGUpJnF1b3Q7IGJ1aWxkX3NzbC5weSBSZWxlYXNlICQoUGxhdGZvcm1OYW1lKSAtYSYjeDBEOyYjeDBBOyINCi0JCQkJUmVCdWlsZENvbW1hbmRMaW5lPSIiDQotCQkJCUNsZWFuQ29tbWFuZExpbmU9IiINCi0JCQkJT3V0cHV0PSIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIiDQotCQkJCUluY2x1ZGVTZWFyY2hQYXRoPSIiDQotCQkJCUZvcmNlZEluY2x1ZGVzPSIiDQotCQkJCUFzc2VtYmx5U2VhcmNoUGF0aD0iIg0KLQkJCQlGb3JjZWRVc2luZ0Fzc2VtYmxpZXM9IiINCi0JCQkJQ29tcGlsZUFzTWFuYWdlZD0iIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMCINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNOTWFrZVRvb2wiDQotCQkJCUJ1aWxkQ29tbWFuZExpbmU9ImNkICZxdW90OyQoU29sdXRpb25EaXIpJnF1b3Q7JiN4MEQ7JiN4MEE7JnF1b3Q7JChQeXRob25FeGUpJnF1b3Q7IGJ1aWxkX3NzbC5weSBSZWxlYXNlICQoUGxhdGZvcm1OYW1lKSAtYSYjeDBEOyYjeDBBOyINCi0JCQkJUmVCdWlsZENvbW1hbmRMaW5lPSIiDQotCQkJCUNsZWFuQ29tbWFuZExpbmU9IiINCi0JCQkJT3V0cHV0PSIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIiDQotCQkJCUluY2x1ZGVTZWFyY2hQYXRoPSIiDQotCQkJCUZvcmNlZEluY2x1ZGVzPSIiDQotCQkJCUFzc2VtYmx5U2VhcmNoUGF0aD0iIg0KLQkJCQlGb3JjZWRVc2luZ0Fzc2VtYmxpZXM9IiINCi0JCQkJQ29tcGlsZUFzTWFuYWdlZD0iIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjAiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNOTWFrZVRvb2wiDQotCQkJCUJ1aWxkQ29tbWFuZExpbmU9ImNkICZxdW90OyQoU29sdXRpb25EaXIpJnF1b3Q7JiN4MEQ7JiN4MEE7JnF1b3Q7JChQeXRob25FeGUpJnF1b3Q7IGJ1aWxkX3NzbC5weSBSZWxlYXNlICQoUGxhdGZvcm1OYW1lKSAtYSYjeDBEOyYjeDBBOyINCi0JCQkJUmVCdWlsZENvbW1hbmRMaW5lPSIiDQotCQkJCUNsZWFuQ29tbWFuZExpbmU9IiINCi0JCQkJT3V0cHV0PSIiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIiDQotCQkJCUluY2x1ZGVTZWFyY2hQYXRoPSIiDQotCQkJCUZvcmNlZEluY2x1ZGVzPSIiDQotCQkJCUFzc2VtYmx5U2VhcmNoUGF0aD0iIg0KLQkJCQlGb3JjZWRVc2luZ0Fzc2VtYmxpZXM9IiINCi0JCQkJQ29tcGlsZUFzTWFuYWdlZD0iIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIwIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTk1ha2VUb29sIg0KLQkJCQlCdWlsZENvbW1hbmRMaW5lPSJjZCAmcXVvdDskKFNvbHV0aW9uRGlyKSZxdW90OyYjeDBEOyYjeDBBOyZxdW90OyQoUHl0aG9uRXhlKSZxdW90OyBidWlsZF9zc2wucHkgUmVsZWFzZSAkKFBsYXRmb3JtTmFtZSkgLWEmI3gwRDsmI3gwQTsiDQotCQkJCVJlQnVpbGRDb21tYW5kTGluZT0iIg0KLQkJCQlDbGVhbkNvbW1hbmRMaW5lPSIiDQotCQkJCU91dHB1dD0iIg0KLQkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iIg0KLQkJCQlJbmNsdWRlU2VhcmNoUGF0aD0iIg0KLQkJCQlGb3JjZWRJbmNsdWRlcz0iIg0KLQkJCQlBc3NlbWJseVNlYXJjaFBhdGg9IiINCi0JCQkJRm9yY2VkVXNpbmdBc3NlbWJsaWVzPSIiDQotCQkJCUNvbXBpbGVBc01hbmFnZWQ9IiINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjAiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ05NYWtlVG9vbCINCi0JCQkJQnVpbGRDb21tYW5kTGluZT0iY2QgJnF1b3Q7JChTb2x1dGlvbkRpcikmcXVvdDsmI3gwRDsmI3gwQTsmcXVvdDskKFB5dGhvbkV4ZSkmcXVvdDsgYnVpbGRfc3NsLnB5IFJlbGVhc2UgJChQbGF0Zm9ybU5hbWUpIC1hJiN4MEQ7JiN4MEE7Ig0KLQkJCQlSZUJ1aWxkQ29tbWFuZExpbmU9IiINCi0JCQkJQ2xlYW5Db21tYW5kTGluZT0iIg0KLQkJCQlPdXRwdXQ9IiINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiINCi0JCQkJSW5jbHVkZVNlYXJjaFBhdGg9IiINCi0JCQkJRm9yY2VkSW5jbHVkZXM9IiINCi0JCQkJQXNzZW1ibHlTZWFyY2hQYXRoPSIiDQotCQkJCUZvcmNlZFVzaW5nQXNzZW1ibGllcz0iIg0KLQkJCQlDb21waWxlQXNNYW5hZ2VkPSIiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC91bmljb2RlZGF0YS52Y3Byb2ogYi9QQy9WUzguMC91bmljb2RlZGF0YS52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjZjdkMjMuLjAwMDAwMDAKLS0tIGEvUEMvVlM4LjAvdW5pY29kZWRhdGEudmNwcm9qCisrKyAvZGV2L251bGwKQEAgLTEsNTMzICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9qZWN0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI4LjAwIg0KLQlOYW1lPSJ1bmljb2RlZGF0YSINCi0JUHJvamVjdEdVSUQ9IntFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9Ig0KLQlSb290TmFtZXNwYWNlPSJ1bmljb2RlZGF0YSINCi0JS2V5d29yZD0iV2luMzJQcm9qIg0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDEyMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3x4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkX2QudnNwcm9wczsuXHg2NC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMjAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTIwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMjAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdJbnN0cnVtZW50fFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ccGdpbnN0cnVtZW50LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDEyMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDEyMDAwMCINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxMjAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFEMTIwMDAwIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxNyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQk8L0NvbmZpZ3VyYXRpb25zPg0KLQk8UmVmZXJlbmNlcz4NCi0JPC9SZWZlcmVuY2VzPg0KLQk8RmlsZXM+DQotCQk8RmlsdGVyDQotCQkJTmFtZT0iSGVhZGVyIEZpbGVzIg0KLQkJCT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcdW5pY29kZWRhdGFfZGIuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcdW5pY29kZW5hbWVfZGIuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHVuaWNvZGVkYXRhLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvdzl4cG9wZW4udmNwcm9qIGIvUEMvVlM4LjAvdzl4cG9wZW4udmNwcm9qCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTRkMjA2Li4wMDAwMDAwCi0tLSBhL1BDL1ZTOC4wL3c5eHBvcGVuLnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDU3NiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOC4wMCINCi0JTmFtZT0idzl4cG9wZW4iDQotCVByb2plY3RHVUlEPSJ7RTlFMEExRjYtMDAwOS00RThDLUI4RjgtMUI4RjVENDlBMDU4fSINCi0JUm9vdE5hbWVzcGFjZT0idzl4cG9wZW4iDQotCVRhcmdldEZyYW1ld29ya1ZlcnNpb249IjEzMTA3MiINCi0JPg0KLQk8UGxhdGZvcm1zPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0iV2luMzIiDQotCQkvPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0ieDY0Ig0KLQkJLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxUb29sRmlsZXM+DQotCTwvVG9vbEZpbGVzPg0KLQk8Q29uZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5cZGVidWcudnNwcm9wcyINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iZmFsc2UiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMCINCi0JCQkJQmFzaWNSdW50aW1lQ2hlY2tzPSIzIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHg2NC52c3Byb3BzOy5cZGVidWcudnNwcm9wcyINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iZmFsc2UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjAiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMyINCi0JCQkJUnVudGltZUxpYnJhcnk9IjEiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJU3RyaW5nUG9vbGluZz0idHJ1ZSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjAiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJ0cnVlIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249ImZhbHNlIg0KLQkJCQlTdWJTeXN0ZW09IjEiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHJlbGVhc2UudnNwcm9wcyINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iZmFsc2UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlTdHJpbmdQb29saW5nPSJ0cnVlIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMCINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9InRydWUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iZmFsc2UiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7LlxyZWxlYXNlLnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iZmFsc2UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCVN0cmluZ1Bvb2xpbmc9InRydWUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIwIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0idHJ1ZSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJmYWxzZSINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdJbnN0cnVtZW50fHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzOy5ccGdpbnN0cnVtZW50LnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCUNoYXJhY3RlclNldD0iMiINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJU3RyaW5nUG9vbGluZz0idHJ1ZSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjAiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJ0cnVlIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249ImZhbHNlIg0KLQkJCQlTdWJTeXN0ZW09IjEiDQotCQkJCUltcG9ydExpYnJhcnk9IiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7LlxyZWxlYXNlLnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJU3RyaW5nUG9vbGluZz0idHJ1ZSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjAiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJ0cnVlIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249ImZhbHNlIg0KLQkJCQlTdWJTeXN0ZW09IjEiDQotCQkJCUltcG9ydExpYnJhcnk9IiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHJlbGVhc2UudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCUNoYXJhY3RlclNldD0iMiINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJU3RyaW5nUG9vbGluZz0idHJ1ZSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjAiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJ0cnVlIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249ImZhbHNlIg0KLQkJCQlTdWJTeXN0ZW09IjEiDQotCQkJCUltcG9ydExpYnJhcnk9IiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1x3OXhwb3Blbi5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJPC9GaWx0ZXI+DQotCTwvRmlsZXM+DQotCTxHbG9iYWxzPg0KLQk8L0dsb2JhbHM+DQotPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL1BDL1ZTOC4wL3dpbnNvdW5kLnZjcHJvaiBiL1BDL1ZTOC4wL3dpbnNvdW5kLnZjcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDM3OTM1Ny4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC93aW5zb3VuZC52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSw1MjMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjguMDAiDQotCU5hbWU9IndpbnNvdW5kIg0KLQlQcm9qZWN0R1VJRD0iezI4QjVENzc3LURERjItNEI2Qi1CMzRGLTMxRDkzODgxMzg1Nn0iDQotCVJvb3ROYW1lc3BhY2U9IndpbnNvdW5kIg0KLQlLZXl3b3JkPSJXaW4zMlByb2oiDQotCVRhcmdldEZyYW1ld29ya1ZlcnNpb249IjE5NjYxMyINCi0JPg0KLQk8UGxhdGZvcm1zPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0iV2luMzIiDQotCQkvPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0ieDY0Ig0KLQkJLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxUb29sRmlsZXM+DQotCTwvVG9vbEZpbGVzPg0KLQk8Q29uZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZF9kLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9Indpbm1tLmxpYiINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3x4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkX2QudnNwcm9wczsuXHg2NC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id2lubW0ubGliIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3aW5tbS5saWIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3aW5tbS5saWIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdJbnN0cnVtZW50fFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ccGdpbnN0cnVtZW50LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3aW5tbS5saWIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdJbnN0cnVtZW50fHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHg2NC52c3Byb3BzOy5ccGdpbnN0cnVtZW50LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id2lubW0ubGliIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxNyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3aW5tbS5saWIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9Indpbm1tLmxpYiINCi0JCQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JPC9Db25maWd1cmF0aW9ucz4NCi0JPFJlZmVyZW5jZXM+DQotCTwvUmVmZXJlbmNlcz4NCi0JPEZpbGVzPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQlGaWx0ZXI9ImNwcDtjO2NjO2N4eDtkZWY7b2RsO2lkbDtocGo7YmF0O2FzbTthc214Ig0KLQkJCVVuaXF1ZUlkZW50aWZpZXI9Ins0RkM3MzdGMS1DN0E1LTQzNzYtQTA2Ni0yQTMyRDc1MkEyRkZ9Ig0KLQkJCT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXHdpbnNvdW5kLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JPC9GaWxlcz4NCi0JPEdsb2JhbHM+DQotCTwvR2xvYmFscz4NCi08L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAveDY0LnZzcHJvcHMgYi9QQy9WUzguMC94NjQudnNwcm9wcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWY4OGQ0NC4uMDAwMDAwMAotLS0gYS9QQy9WUzguMC94NjQudnNwcm9wcworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KLTxWaXN1YWxTdHVkaW9Qcm9wZXJ0eVNoZWV0DQotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI4LjAwIg0KLQlOYW1lPSJhbWQ2NCINCi0JT3V0cHV0RGlyZWN0b3J5PSIkKFNvbHV0aW9uRGlyKVxhbWQ2NFwiDQotCUludGVybWVkaWF0ZURpcmVjdG9yeT0iJChTb2x1dGlvbkRpcikkKFBsYXRmb3JtTmFtZSktdGVtcC0kKENvbmZpZ3VyYXRpb25OYW1lKVwkKFByb2plY3ROYW1lKVwiDQotCT4NCi0JPFRvb2wNCi0JCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQlBZGRpdGlvbmFsT3B0aW9ucz0iL1VTRUNMOk1TX09QVEVST04gL0dTLSINCi0JCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfV0lONjQ7X01fWDY0Ig0KLQkvPg0KLQk8VG9vbA0KLQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJVGFyZ2V0TWFjaGluZT0iMTciDQotCS8+DQotCTxVc2VyTWFjcm8NCi0JCU5hbWU9IlB5dGhvbkV4ZSINCi0JCVZhbHVlPSIkKEhPU1RfUFlUSE9OKSINCi0JLz4NCi08L1Zpc3VhbFN0dWRpb1Byb3BlcnR5U2hlZXQ+DQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvX2N0eXBlc190ZXN0LnZjcHJvaiBiL1BDL1ZTOS4wL19zaGEzLnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDk1JQpyZW5hbWUgZnJvbSBQQy9WUzguMC9fY3R5cGVzX3Rlc3QudmNwcm9qCnJlbmFtZSB0byBQQy9WUzkuMC9fc2hhMy52Y3Byb2oKaW5kZXggMDk3MjQxZS4uNWZlMThkNSAxMDA2NDQKLS0tIGEvUEMvVlM4LjAvX2N0eXBlc190ZXN0LnZjcHJvagorKysgYi9QQy9WUzkuMC9fc2hhMy52Y3Byb2oKQEAgLTEsMTAgKzEsMTAgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KIDxWaXN1YWxTdHVkaW9Qcm9qZWN0DQogCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI4LjAwIg0KLQlOYW1lPSJfY3R5cGVzX3Rlc3QiDQotCVByb2plY3RHVUlEPSJ7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfSINCi0JUm9vdE5hbWVzcGFjZT0iX2N0eXBlc190ZXN0Ig0KKwlWZXJzaW9uPSI5LDAwIg0KKwlOYW1lPSJfc2hhMyINCisJUHJvamVjdEdVSUQ9InswNEYzNzQwMC04ODNDLTQyRDctQUUyOC02Q0Y5OTUzQkY5NzV9Ig0KKwlSb290TmFtZXNwYWNlPSJfc2hhMyINCiAJS2V5d29yZD0iV2luMzJQcm9qIg0KIAlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQogCT4NCkBAIC01MDAsMTggKzUwMCwxMCBAQAogCTwvUmVmZXJlbmNlcz4NCiAJPEZpbGVzPg0KIAkJPEZpbHRlcg0KLQkJCU5hbWU9IkhlYWRlciBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcX2N0eXBlc190ZXN0LmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8L0ZpbHRlcj4NCi0JCTxGaWx0ZXINCiAJCQlOYW1lPSJTb3VyY2UgRmlsZXMiDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXF9jdHlwZXNfdGVzdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NoYTNcc2hhM21vZHVsZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJPC9GaWx0ZXI+DQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvX3Rlc3RjYXBpLnZjcHJvaiBiL1BDL1ZTOS4wL190ZXN0aW1wb3J0bXVsdGlwbGUudmNwcm9qCnNpbWlsYXJpdHkgaW5kZXggOTclCnJlbmFtZSBmcm9tIFBDL1ZTOC4wL190ZXN0Y2FwaS52Y3Byb2oKcmVuYW1lIHRvIFBDL1ZTOS4wL190ZXN0aW1wb3J0bXVsdGlwbGUudmNwcm9qCmluZGV4IDc2YWQyZDguLjE0ZDkxMGQgMTAwNjQ0Ci0tLSBhL1BDL1ZTOC4wL190ZXN0Y2FwaS52Y3Byb2oKKysrIGIvUEMvVlM5LjAvX3Rlc3RpbXBvcnRtdWx0aXBsZS52Y3Byb2oKQEAgLTEsMTAgKzEsMTAgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KIDxWaXN1YWxTdHVkaW9Qcm9qZWN0DQogCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI4LjAwIg0KLQlOYW1lPSJfdGVzdGNhcGkiDQotCVByb2plY3RHVUlEPSJ7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfSINCi0JUm9vdE5hbWVzcGFjZT0iX3Rlc3RjYXBpIg0KKwlWZXJzaW9uPSI5LjAwIg0KKwlOYW1lPSJfdGVzdGltcG9ydG11bHRpcGxlIg0KKwlQcm9qZWN0R1VJRD0iezM2RDBDNTJDLURGNEUtNDVEMC04QkM3LUUyOTRDM0FCQzc4MX0iDQorCVJvb3ROYW1lc3BhY2U9Il90ZXN0aW1wb3J0bXVsdGlwbGUiDQogCUtleXdvcmQ9IldpbjMyUHJvaiINCiAJVGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj0iMTk2NjEzIg0KIAk+DQpAQCAtNTExLDcgKzUxMSw3IEBACiAJCQlOYW1lPSJTb3VyY2UgRmlsZXMiDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfdGVzdGNhcGltb2R1bGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF90ZXN0aW1wb3J0bXVsdGlwbGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KZGlmZiAtLWdpdCBhL1BDL1ZTOS4wL2tpbGxfcHl0aG9uLmMgYi9QQy9WUzkuMC9raWxsX3B5dGhvbi5jCmluZGV4IGJiMzIzZDMuLjYwNDczMWYgMTAwNjQ0Ci0tLSBhL1BDL1ZTOS4wL2tpbGxfcHl0aG9uLmMKKysrIGIvUEMvVlM5LjAva2lsbF9weXRob24uYwpAQCAtMTA2LDcgKzEwNiw3IEBACiAgICAgICAgIC8qCiAgICAgICAgICAqIFhYWCBUT0RPOiBpZiB3ZSByZWFsbHkgd2FudGVkIHRvIGJlIGZhbmN5LCB3ZSBjb3VsZCBjaGVjayB0aGUgCiAgICAgICAgICAqIG1vZHVsZXMgZm9yIGFsbCBwcm9jZXNzZXMgKG5vdCBqdXN0IHRoZSBweXRob25bX2RdLmV4ZSBvbmVzKQotICAgICAgICAgKiBhbmQgc2VlIGlmIGFueSBvZiBvdXIgRExMcyBhcmUgbG9hZGVkIChpLmUuIHB5dGhvbjMzW19kXS5kbGwpLAorICAgICAgICAgKiBhbmQgc2VlIGlmIGFueSBvZiBvdXIgRExMcyBhcmUgbG9hZGVkIChpLmUuIHB5dGhvbjM0W19kXS5kbGwpLAogICAgICAgICAgKiBhcyB0aGF0IHdvdWxkIGFsc28gaW5oaWJpdCBvdXIgYWJpbGl0eSB0byByZWJ1aWxkIHRoZSBzb2x1dGlvbi4KICAgICAgICAgICogTm90IHdvcnRoIGxvb3Npbmcgc2xlZXAgb3ZlciB0aG91Z2g7IGZvciBub3csIGEgc2ltcGxlIGNoZWNrIAogICAgICAgICAgKiBmb3IganVzdCB0aGUgcHl0aG9uIGV4ZWN1dGFibGUgc2hvdWxkIGJlIHN1ZmZpY2llbnQuCmRpZmYgLS1naXQgYS9QQy9WUzkuMC9wY2J1aWxkLnNsbiBiL1BDL1ZTOS4wL3BjYnVpbGQuc2xuCmluZGV4IDhmOGNiYjYuLjNiNzNmY2UgMTAwNjQ0Ci0tLSBhL1BDL1ZTOS4wL3BjYnVpbGQuc2xuCisrKyBiL1BDL1ZTOS4wL3BjYnVpbGQuc2xuCkBAIC0yMCwxMSArMjAsNiBAQAogCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQogCUVuZFByb2plY3RTZWN0aW9uDQogRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAidzl4cG9wZW4iLCAidzl4cG9wZW4udmNwcm9qIiwgIntFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfSA9IHs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KIFByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAibWFrZV9idWlsZGluZm8iLCAibWFrZV9idWlsZGluZm8udmNwcm9qIiwgIntDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9Ig0KIEVuZFByb2plY3QNCiBQcm9qZWN0KCJ7MjE1MEUzMzMtOEZEQy00MkEzLTk0NzQtMUEzOTU2RDQ2REU4fSIpID0gIlNvbHV0aW9uIEl0ZW1zIiwgIlNvbHV0aW9uIEl0ZW1zIiwgIns1NTNFQzMzRS05ODE2LTQ5OTYtQTY2MC01RDYxODZBMEIwQjN9Ig0KQEAgLTg3LDYgKzgyLDExIEBACiAJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCiAJRW5kUHJvamVjdFNlY3Rpb24NCiBFbmRQcm9qZWN0DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfdGVzdGltcG9ydG11bHRpcGxlIiwgIl90ZXN0aW1wb3J0bXVsdGlwbGUudmNwcm9qIiwgInszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9Ig0KKwlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQorCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQorCUVuZFByb2plY3RTZWN0aW9uDQorRW5kUHJvamVjdA0KIFByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX3RraW50ZXIiLCAiX3RraW50ZXIudmNwcm9qIiwgIns0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9Ig0KIAlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQogCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQpAQCAtMTUyLDYgKzE1Miw4IEBACiAJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCiAJRW5kUHJvamVjdFNlY3Rpb24NCiBFbmRQcm9qZWN0DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfc2hhMyIsICJfc2hhMy52Y3Byb2oiLCAiezA0RjM3NDAwLTg4M0MtNDJENy1BRTI4LTZDRjk5NTNCRjk3NX0iDQorRW5kUHJvamVjdA0KIEdsb2JhbA0KIAlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uQ29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbg0KIAkJRGVidWd8V2luMzIgPSBEZWJ1Z3xXaW4zMg0KQEAgLTQyMCw2ICs0MjIsMjIgQEAKIAkJezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KIAkJezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCiAJCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJezM2RDBDNTJDLURGNEUtNDVEMC04QkM3LUUyOTRDM0FCQzc4MX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJezM2RDBDNTJDLURGNEUtNDVEMC04QkM3LUUyOTRDM0FCQzc4MX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KKwkJezM2RDBDNTJDLURGNEUtNDVEMC04QkM3LUUyOTRDM0FCQzc4MX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7MzZEMEM1MkMtREY0RS00NUQwLThCQzctRTI5NEMzQUJDNzgxfS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7MzZEMEM1MkMtREY0RS00NUQwLThCQzctRTI5NEMzQUJDNzgxfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQorCQl7MzZEMEM1MkMtREY0RS00NUQwLThCQzctRTI5NEMzQUJDNzgxfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7MzZEMEM1MkMtREY0RS00NUQwLThCQzctRTI5NEMzQUJDNzgxfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCiAJCXs0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQogCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCiAJCXs0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCkBAIC02NTEsNiArNjY5LDIyIEBACiAJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCiAJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQogCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCisJCXswNEYzNzQwMC04ODNDLTQyRDctQUUyOC02Q0Y5OTUzQkY5NzV9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQorCQl7MDRGMzc0MDAtODgzQy00MkQ3LUFFMjgtNkNGOTk1M0JGOTc1fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXswNEYzNzQwMC04ODNDLTQyRDctQUUyOC02Q0Y5OTUzQkY5NzV9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCisJCXswNEYzNzQwMC04ODNDLTQyRDctQUUyOC02Q0Y5OTUzQkY5NzV9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQorCQl7MDRGMzc0MDAtODgzQy00MkQ3LUFFMjgtNkNGOTk1M0JGOTc1fS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7MDRGMzc0MDAtODgzQy00MkQ3LUFFMjgtNkNGOTk1M0JGOTc1fS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezA0RjM3NDAwLTg4M0MtNDJENy1BRTI4LTZDRjk5NTNCRjk3NX0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7MDRGMzc0MDAtODgzQy00MkQ3LUFFMjgtNkNGOTk1M0JGOTc1fS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7MDRGMzc0MDAtODgzQy00MkQ3LUFFMjgtNkNGOTk1M0JGOTc1fS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezA0RjM3NDAwLTg4M0MtNDJENy1BRTI4LTZDRjk5NTNCRjk3NX0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQorCQl7MDRGMzc0MDAtODgzQy00MkQ3LUFFMjgtNkNGOTk1M0JGOTc1fS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQorCQl7MDRGMzc0MDAtODgzQy00MkQ3LUFFMjgtNkNGOTk1M0JGOTc1fS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KKwkJezA0RjM3NDAwLTg4M0MtNDJENy1BRTI4LTZDRjk5NTNCRjk3NX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7MDRGMzc0MDAtODgzQy00MkQ3LUFFMjgtNkNGOTk1M0JGOTc1fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7MDRGMzc0MDAtODgzQy00MkQ3LUFFMjgtNkNGOTk1M0JGOTc1fS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KKwkJezA0RjM3NDAwLTg4M0MtNDJENy1BRTI4LTZDRjk5NTNCRjk3NX0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQogCUVuZEdsb2JhbFNlY3Rpb24NCiAJR2xvYmFsU2VjdGlvbihTb2x1dGlvblByb3BlcnRpZXMpID0gcHJlU29sdXRpb24NCiAJCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQ0KZGlmZiAtLWdpdCBhL1BDL1ZTOS4wL3B5cHJvamVjdC52c3Byb3BzIGIvUEMvVlM5LjAvcHlwcm9qZWN0LnZzcHJvcHMKaW5kZXggZmYzNzU5ZS4uYzU3OTNlZCAxMDA2NDQKLS0tIGEvUEMvVlM5LjAvcHlwcm9qZWN0LnZzcHJvcHMKKysrIGIvUEMvVlM5LjAvcHlwcm9qZWN0LnZzcHJvcHMKQEAgLTM4LDcgKzM4LDcgQEAKIAkvPg0KIAk8VXNlck1hY3JvDQogCQlOYW1lPSJQeURsbE5hbWUiDQotCQlWYWx1ZT0icHl0aG9uMzMiDQorCQlWYWx1ZT0icHl0aG9uMzQiDQogCS8+DQogCTxVc2VyTWFjcm8NCiAJCU5hbWU9IlB5dGhvbkV4ZSINCmRpZmYgLS1naXQgYS9QQy9WUzkuMC9weXRob25jb3JlLnZjcHJvaiBiL1BDL1ZTOS4wL3B5dGhvbmNvcmUudmNwcm9qCmluZGV4IDlmYjYzZmYuLmM1ZWU5YTYgMTAwNjQ0Ci0tLSBhL1BDL1ZTOS4wL3B5dGhvbmNvcmUudmNwcm9qCisrKyBiL1BDL1ZTOS4wL3B5dGhvbmNvcmUudmNwcm9qCkBAIC0xMTE5LDcgKzExMTksNyBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXG9wZXJhdG9yLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfb3BlcmF0b3IuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KQEAgLTE1ODcsNiArMTU4NywxMCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXHN0cmluZ2xpYlxyZXBsYWNlLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXHNldG9iamVjdC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1BDL1ZTOS4wL3c5eHBvcGVuLnZjcHJvaiBiL1BDL1ZTOS4wL3c5eHBvcGVuLnZjcHJvagpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E4NWIwMC4uMDAwMDAwMAotLS0gYS9QQy9WUzkuMC93OXhwb3Blbi52Y3Byb2oKKysrIC9kZXYvbnVsbApAQCAtMSw1NzYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQotPFZpc3VhbFN0dWRpb1Byb2plY3QNCi0JUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjkuMDAiDQotCU5hbWU9Inc5eHBvcGVuIg0KLQlQcm9qZWN0R1VJRD0ie0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0iDQotCVJvb3ROYW1lc3BhY2U9Inc5eHBvcGVuIg0KLQlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxMzEwNzIiDQotCT4NCi0JPFBsYXRmb3Jtcz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9IldpbjMyIg0KLQkJLz4NCi0JCTxQbGF0Zm9ybQ0KLQkJCU5hbWU9Ing2NCINCi0JCS8+DQotCTwvUGxhdGZvcm1zPg0KLQk8VG9vbEZpbGVzPg0KLQk8L1Rvb2xGaWxlcz4NCi0JPENvbmZpZ3VyYXRpb25zPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXGRlYnVnLnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjAiDQotCQkJCUJhc2ljUnVudGltZUNoZWNrcz0iMyINCi0JCQkJUnVudGltZUxpYnJhcnk9IjEiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJEZWJ1Z3x4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXGRlYnVnLnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCUNoYXJhY3RlclNldD0iMiINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIwIg0KLQkJCQlCYXNpY1J1bnRpbWVDaGVja3M9IjMiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIxIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlTdWJTeXN0ZW09IjEiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHJlbGVhc2UudnNwcm9wcyINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iZmFsc2UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCVN0cmluZ1Bvb2xpbmc9InRydWUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIwIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0idHJ1ZSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJmYWxzZSINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlJlbGVhc2V8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxyZWxlYXNlLnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCUNoYXJhY3RlclNldD0iMiINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJT3B0aW1pemF0aW9uPSIyIg0KLQkJCQlJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj0iMSINCi0JCQkJU3RyaW5nUG9vbGluZz0idHJ1ZSINCi0JCQkJUnVudGltZUxpYnJhcnk9IjAiDQotCQkJCUVuYWJsZUZ1bmN0aW9uTGV2ZWxMaW5raW5nPSJ0cnVlIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249ImZhbHNlIg0KLQkJCQlTdWJTeXN0ZW09IjEiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdJbnN0cnVtZW50fFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzOy5ccGdpbnN0cnVtZW50LnZzcHJvcHMiDQotCQkJVXNlT2ZNRkM9IjAiDQotCQkJQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9ImZhbHNlIg0KLQkJCUNoYXJhY3RlclNldD0iMiINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlPcHRpbWl6YXRpb249IjIiDQotCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlTdHJpbmdQb29saW5nPSJ0cnVlIg0KLQkJCQlSdW50aW1lTGlicmFyeT0iMCINCi0JCQkJRW5hYmxlRnVuY3Rpb25MZXZlbExpbmtpbmc9InRydWUiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iZmFsc2UiDQotCQkJCVN1YlN5c3RlbT0iMSINCi0JCQkJSW1wb3J0TGlicmFyeT0iIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjEiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlwcm9qZWN0LnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHJlbGVhc2UudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCVN0cmluZ1Bvb2xpbmc9InRydWUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIwIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0idHJ1ZSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJmYWxzZSINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHVXBkYXRlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ccmVsZWFzZS52c3Byb3BzOy5ccGd1cGRhdGUudnNwcm9wcyINCi0JCQlVc2VPZk1GQz0iMCINCi0JCQlBVExNaW5pbWl6ZXNDUnVuVGltZUxpYnJhcnlVc2FnZT0iZmFsc2UiDQotCQkJQ2hhcmFjdGVyU2V0PSIyIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCVN0cmluZ1Bvb2xpbmc9InRydWUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIwIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0idHJ1ZSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJmYWxzZSINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUEdVcGRhdGV8eDY0Ig0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIxIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5cHJvamVjdC52c3Byb3BzOy5ceDY0LnZzcHJvcHM7LlxyZWxlYXNlLnZzcHJvcHM7LlxwZ3VwZGF0ZS52c3Byb3BzIg0KLQkJCVVzZU9mTUZDPSIwIg0KLQkJCUFUTE1pbmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJmYWxzZSINCi0JCQlDaGFyYWN0ZXJTZXQ9IjIiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCU9wdGltaXphdGlvbj0iMiINCi0JCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCVN0cmluZ1Bvb2xpbmc9InRydWUiDQotCQkJCVJ1bnRpbWVMaWJyYXJ5PSIwIg0KLQkJCQlFbmFibGVGdW5jdGlvbkxldmVsTGlua2luZz0idHJ1ZSINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJmYWxzZSINCi0JCQkJU3ViU3lzdGVtPSIxIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJTb3VyY2UgRmlsZXMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcdzl4cG9wZW4uYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQy9fbXNpLmMgYi9QQy9fbXNpLmMKaW5kZXggMGI1Yjk0ZS4uNmFiYThiMCAxMDA2NDQKLS0tIGEvUEMvX21zaS5jCisrKyBiL1BDL19tc2kuYwpAQCAtMTAzMCw0MCArMTAzMCw0MCBAQAogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0lEQk9QRU5fVFJBTlNBQ1QiLCAoaW50KU1TSURCT1BFTl9UUkFOU0FDVCk7CiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TSURCT1BFTl9QQVRDSEZJTEUiLCAoaW50KU1TSURCT1BFTl9QQVRDSEZJTEUpOwogCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TSUNPTElORk9fTkFNRVMiLCBNU0lDT0xJTkZPX05BTUVTKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNJQ09MSU5GT19UWVBFUyIsIE1TSUNPTElORk9fVFlQRVMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE1TSUNPTElORk9fTkFNRVMpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE1TSUNPTElORk9fVFlQRVMpOwogCi0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TSU1PRElGWV9TRUVLIiwgTVNJTU9ESUZZX1NFRUspOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0lNT0RJRllfUkVGUkVTSCIsIE1TSU1PRElGWV9SRUZSRVNIKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNJTU9ESUZZX0lOU0VSVCIsIE1TSU1PRElGWV9JTlNFUlQpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0lNT0RJRllfVVBEQVRFIiwgTVNJTU9ESUZZX1VQREFURSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TSU1PRElGWV9BU1NJR04iLCBNU0lNT0RJRllfQVNTSUdOKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNJTU9ESUZZX1JFUExBQ0UiLCBNU0lNT0RJRllfUkVQTEFDRSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TSU1PRElGWV9NRVJHRSIsIE1TSU1PRElGWV9NRVJHRSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TSU1PRElGWV9ERUxFVEUiLCBNU0lNT0RJRllfREVMRVRFKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNJTU9ESUZZX0lOU0VSVF9URU1QT1JBUlkiLCBNU0lNT0RJRllfSU5TRVJUX1RFTVBPUkFSWSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TSU1PRElGWV9WQUxJREFURSIsIE1TSU1PRElGWV9WQUxJREFURSk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TSU1PRElGWV9WQUxJREFURV9ORVciLCBNU0lNT0RJRllfVkFMSURBVEVfTkVXKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNJTU9ESUZZX1ZBTElEQVRFX0ZJRUxEIiwgTVNJTU9ESUZZX1ZBTElEQVRFX0ZJRUxEKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNJTU9ESUZZX1ZBTElEQVRFX0RFTEVURSIsIE1TSU1PRElGWV9WQUxJREFURV9ERUxFVEUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE1TSU1PRElGWV9TRUVLKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBNU0lNT0RJRllfUkVGUkVTSCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNJTU9ESUZZX0lOU0VSVCk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNJTU9ESUZZX1VQREFURSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNJTU9ESUZZX0FTU0lHTik7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNJTU9ESUZZX1JFUExBQ0UpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE1TSU1PRElGWV9NRVJHRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNJTU9ESUZZX0RFTEVURSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNJTU9ESUZZX0lOU0VSVF9URU1QT1JBUlkpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIE1TSU1PRElGWV9WQUxJREFURSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNJTU9ESUZZX1ZBTElEQVRFX05FVyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgTVNJTU9ESUZZX1ZBTElEQVRFX0ZJRUxEKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBNU0lNT0RJRllfVkFMSURBVEVfREVMRVRFKTsKIAotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQSURfQ09ERVBBR0UiLCBQSURfQ09ERVBBR0UpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQSURfVElUTEUiLCBQSURfVElUTEUpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQSURfU1VCSkVDVCIsIFBJRF9TVUJKRUNUKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUElEX0FVVEhPUiIsIFBJRF9BVVRIT1IpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQSURfS0VZV09SRFMiLCBQSURfS0VZV09SRFMpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQSURfQ09NTUVOVFMiLCBQSURfQ09NTUVOVFMpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQSURfVEVNUExBVEUiLCBQSURfVEVNUExBVEUpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQSURfTEFTVEFVVEhPUiIsIFBJRF9MQVNUQVVUSE9SKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUElEX1JFVk5VTUJFUiIsIFBJRF9SRVZOVU1CRVIpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQSURfTEFTVFBSSU5URUQiLCBQSURfTEFTVFBSSU5URUQpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQSURfQ1JFQVRFX0RUTSIsIFBJRF9DUkVBVEVfRFRNKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUElEX0xBU1RTQVZFX0RUTSIsIFBJRF9MQVNUU0FWRV9EVE0pOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQSURfUEFHRUNPVU5UIiwgUElEX1BBR0VDT1VOVCk7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlBJRF9XT1JEQ09VTlQiLCBQSURfV09SRENPVU5UKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUElEX0NIQVJDT1VOVCIsIFBJRF9DSEFSQ09VTlQpOwotICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQSURfQVBQTkFNRSIsIFBJRF9BUFBOQU1FKTsKLSAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUElEX1NFQ1VSSVRZIiwgUElEX1NFQ1VSSVRZKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQSURfQ09ERVBBR0UpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBJRF9USVRMRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUElEX1NVQkpFQ1QpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBJRF9BVVRIT1IpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBJRF9LRVlXT1JEUyk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUElEX0NPTU1FTlRTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQSURfVEVNUExBVEUpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBJRF9MQVNUQVVUSE9SKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQSURfUkVWTlVNQkVSKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQSURfTEFTVFBSSU5URUQpOworICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFBJRF9DUkVBVEVfRFRNKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQSURfTEFTVFNBVkVfRFRNKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQSURfUEFHRUNPVU5UKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQSURfV09SRENPVU5UKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQSURfQ0hBUkNPVU5UKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQSURfQVBQTkFNRSk7CisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUElEX1NFQ1VSSVRZKTsKIAogICAgIE1TSUVycm9yID0gUHlFcnJfTmV3RXhjZXB0aW9uICgiX21zaS5NU0lFcnJvciIsIE5VTEwsIE5VTEwpOwogICAgIGlmICghTVNJRXJyb3IpCmRpZmYgLS1naXQgYS9QQy9jb25maWcuYyBiL1BDL2NvbmZpZy5jCmluZGV4IDU3YjUwNzMuLjlkZTg3NmUgMTAwNjQ0Ci0tLSBhL1BDL2NvbmZpZy5jCisrKyBiL1BDL2NvbmZpZy5jCkBAIC0xNyw3ICsxNyw3IEBACiBleHRlcm4gUHlPYmplY3QqIFB5SW5pdF9tYXRoKHZvaWQpOwogZXh0ZXJuIFB5T2JqZWN0KiBQeUluaXRfX21kNSh2b2lkKTsKIGV4dGVybiBQeU9iamVjdCogUHlJbml0X250KHZvaWQpOwotZXh0ZXJuIFB5T2JqZWN0KiBQeUluaXRfb3BlcmF0b3Iodm9pZCk7CitleHRlcm4gUHlPYmplY3QqIFB5SW5pdF9fb3BlcmF0b3Iodm9pZCk7CiBleHRlcm4gUHlPYmplY3QqIFB5SW5pdF9zaWduYWwodm9pZCk7CiBleHRlcm4gUHlPYmplY3QqIFB5SW5pdF9fc2hhMSh2b2lkKTsKIGV4dGVybiBQeU9iamVjdCogUHlJbml0X19zaGEyNTYodm9pZCk7CkBAIC04Nyw3ICs4Nyw3IEBACiAgICAgeyJnYyIsIFB5SW5pdF9nY30sCiAgICAgeyJtYXRoIiwgUHlJbml0X21hdGh9LAogICAgIHsibnQiLCBQeUluaXRfbnR9LCAvKiBVc2UgdGhlIE5UIG9zIGZ1bmN0aW9ucywgbm90IHBvc2l4ICovCi0gICAgeyJvcGVyYXRvciIsIFB5SW5pdF9vcGVyYXRvcn0sCisgICAgeyJfb3BlcmF0b3IiLCBQeUluaXRfX29wZXJhdG9yfSwKICAgICB7InNpZ25hbCIsIFB5SW5pdF9zaWduYWx9LAogICAgIHsiX21kNSIsIFB5SW5pdF9fbWQ1fSwKICAgICB7Il9zaGExIiwgUHlJbml0X19zaGExfSwKZGlmZiAtLWdpdCBhL1BDL2V4YW1wbGVfbnQvZXhhbXBsZS52Y3Byb2ogYi9QQy9leGFtcGxlX250L2V4YW1wbGUudmNwcm9qCmluZGV4IGZiYTAwYjYuLmRmMzYzNDEgMTAwNjQ0Ci0tLSBhL1BDL2V4YW1wbGVfbnQvZXhhbXBsZS52Y3Byb2oKKysrIGIvUEMvZXhhbXBsZV9udC9leGFtcGxlLnZjcHJvagpAQCAtMzksNyArMzksNyBAQAogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KIAkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL2V4cG9ydDppbml0ZXhhbXBsZSINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0ib2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgcHl0aG9uMzMubGliIg0KKwkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJvZGJjMzIubGliIG9kYmNjcDMyLmxpYiBweXRob24zNC5saWIiDQogCQkJCU91dHB1dEZpbGU9Ii5cUmVsZWFzZS9leGFtcGxlLnB5ZCINCiAJCQkJTGlua0luY3JlbWVudGFsPSIxIg0KIAkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQpAQCAtMTA1LDcgKzEwNSw3IEBACiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQogCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvZXhwb3J0OmluaXRleGFtcGxlIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJvZGJjMzIubGliIG9kYmNjcDMyLmxpYiBweXRob24zM19kLmxpYiINCisJCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0ib2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgcHl0aG9uMzRfZC5saWIiDQogCQkJCU91dHB1dEZpbGU9Ii5cRGVidWcvZXhhbXBsZV9kLnB5ZCINCiAJCQkJTGlua0luY3JlbWVudGFsPSIxIg0KIAkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQpkaWZmIC0tZ2l0IGEvUEMvZ2V0cGF0aHAuYyBiL1BDL2dldHBhdGhwLmMKaW5kZXggYjViZjMyNS4uMzA4ZWI4NyAxMDA2NDQKLS0tIGEvUEMvZ2V0cGF0aHAuYworKysgYi9QQy9nZXRwYXRocC5jCkBAIC0xLDYgKzEsNiBAQAogCiAvKiBSZXR1cm4gdGhlIGluaXRpYWwgbW9kdWxlIHNlYXJjaCBwYXRoLiAqLwotLyogVXNlZCBieSBET1MsIE9TLzIsIFdpbmRvd3MgMy4xLCBXaW5kb3dzIDk1Lzk4LCBXaW5kb3dzIE5ULiAqLworLyogVXNlZCBieSBET1MsIFdpbmRvd3MgMy4xLCBXaW5kb3dzIDk1Lzk4LCBXaW5kb3dzIE5ULiAqLwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRIIFJVTEVTIEZPUiBXSU5ET1dTOgpAQCAtNDM0LDcgKzQzNCw3IEBACiAgICAgICAgIGNoYXIgKiBwID0gZmdldHMoYnVmZmVyLCBNQVhQQVRITEVOKjIsIGVudl9maWxlKTsKICAgICAgICAgd2NoYXJfdCB0bXBidWZmZXJbTUFYUEFUSExFTioyKzFdOwogICAgICAgICBQeU9iamVjdCAqIGRlY29kZWQ7Ci0gICAgICAgIGludCBuOworICAgICAgICBzaXplX3QgbjsKIAogICAgICAgICBpZiAocCA9PSBOVUxMKQogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9QQy9sYXVuY2hlci5jIGIvUEMvbGF1bmNoZXIuYwppbmRleCA0NDVlOTZlLi45MGE4N2IxIDEwMDY0NAotLS0gYS9QQy9sYXVuY2hlci5jCisrKyBiL1BDL2xhdW5jaGVyLmMKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTIgVmluYXkgU2FqaXAuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxMyBWaW5heSBTYWppcC4KICAqIExpY2Vuc2VkIHRvIFBTRiB1bmRlciBhIGNvbnRyaWJ1dG9yIGFncmVlbWVudC4KICAqCiAgKiBCYXNlZCBvbiB0aGUgd29yayBvZjoKQEAgLTE4LDcgKzE4LDcgQEAKIAogLyogQnVpbGQgb3B0aW9ucy4gKi8KICNkZWZpbmUgU0tJUF9QUkVGSVgKLS8qICNkZWZpbmUgU0VBUkNIX1BBVEggKi8KKyNkZWZpbmUgU0VBUkNIX1BBVEgKIAogLyogSnVzdCBmb3Igbm93IC0gc3RhdGljIGRlZmluaXRpb24gKi8KIApAQCAtNTUwLDcgKzU1MCw3IEBACiAgICAgICAgIGVycm9yKFJDX0NSRUFURV9QUk9DRVNTLCBMIlVuYWJsZSB0byBjcmVhdGUgcHJvY2VzcyB1c2luZyAnJXMnIiwgY21kbGluZSk7CiAgICAgQXNzaWduUHJvY2Vzc1RvSm9iT2JqZWN0KGpvYiwgcGkuaFByb2Nlc3MpOwogICAgIENsb3NlSGFuZGxlKHBpLmhUaHJlYWQpOwotICAgIFdhaXRGb3JTaW5nbGVPYmplY3QocGkuaFByb2Nlc3MsIElORklOSVRFKTsKKyAgICBXYWl0Rm9yU2luZ2xlT2JqZWN0RXgocGkuaFByb2Nlc3MsIElORklOSVRFLCBGQUxTRSk7CiAgICAgb2sgPSBHZXRFeGl0Q29kZVByb2Nlc3MocGkuaFByb2Nlc3MsICZyYyk7CiAgICAgaWYgKCFvaykKICAgICAgICAgZXJyb3IoUkNfQ1JFQVRFX1BST0NFU1MsIEwiRmFpbGVkIHRvIGdldCBleGl0IGNvZGUgb2YgcHJvY2VzcyIpOwpAQCAtNTk1LDEyICs1OTUsMTcgQEAKICAgICB9CiB9CiAKLXN0YXRpYyB3Y2hhcl90ICogYnVpbHRpbl92aXJ0dWFsX3BhdGhzIFtdID0gewotICAgIEwiL3Vzci9iaW4vZW52IHB5dGhvbiIsCi0gICAgTCIvdXNyL2Jpbi9weXRob24iLAotICAgIEwiL3Vzci9sb2NhbC9iaW4vcHl0aG9uIiwKLSAgICBMInB5dGhvbiIsCi0gICAgTlVMTAordHlwZWRlZiBzdHJ1Y3QgeworICAgIHdjaGFyX3QgKnNoZWJhbmc7CisgICAgQk9PTCBzZWFyY2g7Cit9IFNIRUJBTkc7CisKK3N0YXRpYyBTSEVCQU5HIGJ1aWx0aW5fdmlydHVhbF9wYXRocyBbXSA9IHsKKyAgICB7IEwiL3Vzci9iaW4vZW52IHB5dGhvbiIsIFRSVUUgfSwKKyAgICB7IEwiL3Vzci9iaW4vcHl0aG9uIiwgRkFMU0UgfSwKKyAgICB7IEwiL3Vzci9sb2NhbC9iaW4vcHl0aG9uIiwgRkFMU0UgfSwKKyAgICB7IEwicHl0aG9uIiwgRkFMU0UgfSwKKyAgICB7IE5VTEwsIEZBTFNFIH0sCiB9OwogCiAvKiBGb3Igbm93LCBhIHN0YXRpYyBhcnJheSBvZiBjb21tYW5kcy4gKi8KQEAgLTc3NiwxMCArNzgxLDEwIEBACiAKIHN0YXRpYyBCT09MCiBwYXJzZV9zaGViYW5nKHdjaGFyX3QgKiBzaGViYW5nX2xpbmUsIGludCBuY2hhcnMsIHdjaGFyX3QgKiogY29tbWFuZCwKLSAgICAgICAgICAgICAgd2NoYXJfdCAqKiBzdWZmaXgpCisgICAgICAgICAgICAgIHdjaGFyX3QgKiogc3VmZml4LCBCT09MICpzZWFyY2gpCiB7CiAgICAgQk9PTCByYyA9IEZBTFNFOwotICAgIHdjaGFyX3QgKiogdnBwOworICAgIFNIRUJBTkcgKiB2cHA7CiAgICAgc2l6ZV90IHBsZW47CiAgICAgd2NoYXJfdCAqIHA7CiAgICAgd2NoYXJfdCB6YXBwZWQ7CkBAIC03ODksMTUgKzc5NCwxNyBAQAogCiAgICAgKmNvbW1hbmQgPSBOVUxMOyAgICAvKiBmYWlsdXJlIHJldHVybiAqLwogICAgICpzdWZmaXggPSBOVUxMOworICAgICpzZWFyY2ggPSBGQUxTRTsKIAogICAgIGlmICgoKnNoZWJhbmdfbGluZSsrID09IEwnIycpICYmICgqc2hlYmFuZ19saW5lKysgPT0gTCchJykpIHsKICAgICAgICAgc2hlYmFuZ19saW5lID0gc2tpcF93aGl0ZXNwYWNlKHNoZWJhbmdfbGluZSk7CiAgICAgICAgIGlmICgqc2hlYmFuZ19saW5lKSB7CiAgICAgICAgICAgICAqY29tbWFuZCA9IHNoZWJhbmdfbGluZTsKLSAgICAgICAgICAgIGZvciAodnBwID0gYnVpbHRpbl92aXJ0dWFsX3BhdGhzOyAqdnBwOyArK3ZwcCkgewotICAgICAgICAgICAgICAgIHBsZW4gPSB3Y3NsZW4oKnZwcCk7Ci0gICAgICAgICAgICAgICAgaWYgKHdjc25jbXAoc2hlYmFuZ19saW5lLCAqdnBwLCBwbGVuKSA9PSAwKSB7CisgICAgICAgICAgICBmb3IgKHZwcCA9IGJ1aWx0aW5fdmlydHVhbF9wYXRoczsgdnBwLT5zaGViYW5nOyArK3ZwcCkgeworICAgICAgICAgICAgICAgIHBsZW4gPSB3Y3NsZW4odnBwLT5zaGViYW5nKTsKKyAgICAgICAgICAgICAgICBpZiAod2NzbmNtcChzaGViYW5nX2xpbmUsIHZwcC0+c2hlYmFuZywgcGxlbikgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICByYyA9IFRSVUU7CisgICAgICAgICAgICAgICAgICAgICpzZWFyY2ggPSB2cHAtPnNlYXJjaDsKICAgICAgICAgICAgICAgICAgICAgLyogV2UgY2FuIGRvIHRoaXMgYmVjYXVzZSBhbGwgYnVpbHRpbiBjb21tYW5kcyBjb250YWluCiAgICAgICAgICAgICAgICAgICAgICAqICJweXRob24iLgogICAgICAgICAgICAgICAgICAgICAgKi8KQEAgLTgwNSw3ICs4MTIsNyBAQAogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoKnZwcCA9PSBOVUxMKSB7CisgICAgICAgICAgICBpZiAodnBwLT5zaGViYW5nID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAqIE5vdCBmb3VuZCBpbiBidWlsdGlucyAtIGxvb2sgaW4gY3VzdG9taXNlZCBjb21tYW5kcy4KICAgICAgICAgICAgICAgICAgKgpAQCAtMTAxMiw4ICsxMDE5LDEwIEBACiAgICAgaW50IGksIGosIG5jaGFycyA9IDA7CiAgICAgaW50IGhlYWRlcl9sZW47CiAgICAgQk9PTCBpc192aXJ0OworICAgIEJPT0wgc2VhcmNoOwogICAgIHdjaGFyX3QgKiBjb21tYW5kOwogICAgIHdjaGFyX3QgKiBzdWZmaXg7CisgICAgQ09NTUFORCAqY21kID0gTlVMTDsKICAgICBJTlNUQUxMRURfUFlUSE9OICogaXA7CiAKICAgICBpZiAocmMgPT0gMCkgewpAQCAtMTEyNSw3ICsxMTM0LDcgQEAKICAgICAgICAgICAgIGlmIChuY2hhcnMgPiAwKSB7CiAgICAgICAgICAgICAgICAgc2hlYmFuZ19saW5lWy0tbmNoYXJzXSA9IEwnXDAnOwogICAgICAgICAgICAgICAgIGlzX3ZpcnQgPSBwYXJzZV9zaGViYW5nKHNoZWJhbmdfbGluZSwgbmNoYXJzLCAmY29tbWFuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3VmZml4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3VmZml4LCAmc2VhcmNoKTsKICAgICAgICAgICAgICAgICBpZiAoY29tbWFuZCAhPSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgICAgIGRlYnVnKEwicGFyc2Vfc2hlYmFuZzogZm91bmQgY29tbWFuZDogJXNcbiIsIGNvbW1hbmQpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIWlzX3ZpcnQpIHsKQEAgLTExNDEsNiArMTE1MCwyMyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKFJDX0JBRF9WSVJUVUFMX1BBVEgsIEwiVW5rbm93biB2aXJ0dWFsIFwKIHBhdGggJyVzJyIsIGNvbW1hbmQpOwogICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZCArPSA2OyAgIC8qIHNraXAgcGFzdCAicHl0aG9uIiAqLworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlYXJjaCAmJiAoKCpjb21tYW5kID09IEwnXDAnKSB8fCBpc3NwYWNlKCpjb21tYW5kKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21tYW5kIGlzIGVsaWdpYmxlIGZvciBwYXRoIHNlYXJjaCwgYW5kIHRoZXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaXMgbm8gdmVyc2lvbiBzcGVjaWZpY2F0aW9uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKEwic2VhcmNoaW5nIFBBVEggZm9yIHB5dGhvbiBleGVjdXRhYmxlXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWQgPSBmaW5kX29uX3BhdGgoTCJweXRob24iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhMIlB5dGhvbiBvbiBwYXRoOiAlc1xuIiwgY21kID8gY21kLT52YWx1ZSA6IEwiPG5vdCBmb3VuZD4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY21kKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKEwibG9jYXRlZCBweXRob24gb24gUEFUSDogJXNcbiIsIGNtZC0+dmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZva2VfY2hpbGQoY21kLT52YWx1ZSwgc3VmZml4LCBjbWRsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRXhpdCBoZXJlLCBhcyB3ZSBoYXZlIGZvdW5kIHRoZSBjb21tYW5kICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkFMTCBUSFJPVUdIOiBObyBweXRob24gZm91bmQgb24gUEFUSCwgc28gZmFsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJhY2sgdG8gbG9jYXRpbmcgdGhlIGNvcnJlY3QgaW5zdGFsbGVkIHB5dGhvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgqY29tbWFuZCAmJiAhdmFsaWRhdGVfdmVyc2lvbihjb21tYW5kKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcihSQ19CQURfVklSVFVBTF9QQVRILCBMIkludmFsaWQgdmVyc2lvbiBcCiBzcGVjaWZpY2F0aW9uOiAnJXMnLlxuSW4gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHNjcmlwdCwgJ3B5dGhvbicgbmVlZHMgdG8gYmUgXApAQCAtMTIyMyw2ICsxMjQ5LDcgQEAKICAgICB2b2lkICogdmVyc2lvbl9kYXRhOwogICAgIFZTX0ZJWEVERklMRUlORk8gKiBmaWxlX2luZm87CiAgICAgVUlOVCBibG9ja19zaXplOworICAgIGludCBpbmRleDsKIAogICAgIHdwID0gZ2V0X2VudihMIlBZTEFVTkNIX0RFQlVHIik7CiAgICAgaWYgKCh3cCAhPSBOVUxMKSAmJiAoKndwICE9IEwnXDAnKSkKQEAgLTEyNzEsOCArMTI5OCw4IEBACiAgICAgICAgICAgICBpZiAoIXZhbGlkKQogICAgICAgICAgICAgICAgIGRlYnVnKEwiR2V0RmlsZVZlcnNpb25JbmZvIGZhaWxlZDogJVhcbiIsIEdldExhc3RFcnJvcigpKTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHZhbGlkID0gVmVyUXVlcnlWYWx1ZVcodmVyc2lvbl9kYXRhLCBMIlxcIiwgJmZpbGVfaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZibG9ja19zaXplKTsKKyAgICAgICAgICAgICAgICB2YWxpZCA9IFZlclF1ZXJ5VmFsdWVXKHZlcnNpb25fZGF0YSwgTCJcXCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTFBWT0lEICopICZmaWxlX2luZm8sICZibG9ja19zaXplKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbGlkKQogICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhMIlZlclF1ZXJ5VmFsdWUgZmFpbGVkOiAlWFxuIiwgR2V0TGFzdEVycm9yKCkpOwogICAgICAgICAgICAgICAgIGVsc2UgewpAQCAtMTMxMCwxMyArMTMzNyw2IEBACiAgICAgZWxzZSB7CiAgICAgICAgIHAgPSBhcmd2WzFdOwogICAgICAgICBwbGVuID0gd2NzbGVuKHApOwotICAgICAgICBpZiAocFswXSAhPSBMJy0nKSB7Ci0gICAgICAgICAgICByZWFkX2NvbW1hbmRzKCk7Ci0gICAgICAgICAgICBtYXliZV9oYW5kbGVfc2hlYmFuZygmYXJndlsxXSwgY29tbWFuZCk7Ci0gICAgICAgIH0KLSAgICAgICAgLyogTm8gZmlsZSB3aXRoIHNoZWJhbmcsIG9yIGFuIHVucmVjb2duaXNlZCBzaGViYW5nLgotICAgICAgICAgKiBJcyB0aGUgZmlyc3QgYXJnIGEgc3BlY2lhbCB2ZXJzaW9uIHF1YWxpZmllcj8KLSAgICAgICAgICovCiAgICAgICAgIHZhbGlkID0gKCpwID09IEwnLScpICYmIHZhbGlkYXRlX3ZlcnNpb24oJnBbMV0pOwogICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgICAgIGlwID0gbG9jYXRlX3B5dGhvbigmcFsxXSk7CkBAIC0xMzI2LDYgKzEzNDYsMTYgQEAKICAgICAgICAgICAgIGNvbW1hbmQgKz0gd2NzbGVuKHApOwogICAgICAgICAgICAgY29tbWFuZCA9IHNraXBfd2hpdGVzcGFjZShjb21tYW5kKTsKICAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAoaW5kZXggPSAxOyBpbmRleCA8IGFyZ2M7ICsraW5kZXgpIHsKKyAgICAgICAgICAgICAgICBpZiAoKmFyZ3ZbaW5kZXhdICE9IEwnLScpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGluZGV4IDwgYXJnYykgeworICAgICAgICAgICAgICAgIHJlYWRfY29tbWFuZHMoKTsKKyAgICAgICAgICAgICAgICBtYXliZV9oYW5kbGVfc2hlYmFuZygmYXJndltpbmRleF0sIGNvbW1hbmQpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogICAgIGlmICghdmFsaWQpIHsKICAgICAgICAgaXAgPSBsb2NhdGVfcHl0aG9uKEwiIik7CkBAIC0xMzQ0LDcgKzEzNzQsNyBAQAogICAgICAgICAgICAgZndwcmludGYoc3Rkb3V0LCBMIlwKIFB5dGhvbiBMYXVuY2hlciBmb3IgV2luZG93cyBWZXJzaW9uICVzXG5cbiIsIHZlcnNpb25fdGV4dCk7CiAgICAgICAgICAgICBmd3ByaW50ZihzdGRvdXQsIEwiXAotdXNhZ2U6ICVzIFsgbGF1bmNoZXItYXJndW1lbnRzIF0gc2NyaXB0IFsgc2NyaXB0LWFyZ3VtZW50cyBdXG5cbiIsIGFyZ3ZbMF0pOwordXNhZ2U6ICVzIFsgbGF1bmNoZXItYXJndW1lbnRzIF0gWyBweXRob24tYXJndW1lbnRzIF0gc2NyaXB0IFsgc2NyaXB0LWFyZ3VtZW50cyBdXG5cbiIsIGFyZ3ZbMF0pOwogICAgICAgICAgICAgZnB1dHdzKEwiXAogTGF1bmNoZXIgYXJndW1lbnRzOlxuXG5cCiAtMiAgICAgOiBMYXVuY2ggdGhlIGxhdGVzdCBQeXRob24gMi54IHZlcnNpb25cblwKZGlmZiAtLWdpdCBhL1BDL21zdmNydG1vZHVsZS5jIGIvUEMvbXN2Y3J0bW9kdWxlLmMKaW5kZXggMDRkMjA4OC4uMThkZWM2ZCAxMDA3NTUKLS0tIGEvUEMvbXN2Y3J0bW9kdWxlLmMKKysrIGIvUEMvbXN2Y3J0bW9kdWxlLmMKQEAgLTExMywxMSArMTEzLDEyIEBACiBzdGF0aWMgUHlPYmplY3QgKgogbXN2Y3J0X29wZW5fb3NmaGFuZGxlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBsb25nIGhhbmRsZTsKKyAgICBQeV9pbnRwdHJfdCBoYW5kbGU7CiAgICAgaW50IGZsYWdzOwogICAgIGludCBmZDsKIAotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAibGk6b3Blbl9vc2ZoYW5kbGUiLCAmaGFuZGxlLCAmZmxhZ3MpKQorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBfUHlfUEFSU0VfSU5UUFRSICJpOm9wZW5fb3NmaGFuZGxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJmhhbmRsZSwgJmZsYWdzKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBmZCA9IF9vcGVuX29zZmhhbmRsZShoYW5kbGUsIGZsYWdzKTsKZGlmZiAtLWdpdCBhL1BDL29zMmVteC9NYWtlZmlsZSBiL1BDL29zMmVteC9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODAwNjEwZS4uMDAwMDAwMAotLS0gYS9QQy9vczJlbXgvTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSw2NzIgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjPT09PT09PT09PT09PT09PT09LS0tLS0tLS0tLS0tLS0tLQotIwotIyBUb3AtTGV2ZWwgTWFrZWZpbGUgZm9yIEJ1aWxkaW5nIFB5dGhvbiAyLjYgZm9yIE9TLzIgdXNpbmcgR0NDL0VNWAotIyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgQW5kcmV3IFphYm9sb3RueSwgPGJpdEBlbHRlY2gucnU+IGZvciBQeXRob24gMS41LjIKLSMgTW9kaWZpZWQgYnkgQW5kcmV3IE1hY0ludHlyZSwgPGFuZHltYWNAcGN1Zy5vcmcuYXU+IGZvciBQeXRob24gMi42Ci0jCi0jIFRoaXMgbWFrZWZpbGUgd2FzIGRldmVsb3BlZCBmb3IgdXNlIHdpdGggW1BdR0NDL0VNWCBjb21waWxlciBhbnkKLSMgdmVyc2lvbiBhbmQgR05VIE1ha2UuCi0jCi0jIFRoZSBvdXRwdXQgb2YgdGhlIGJ1aWxkIGlzIGEgbGFyZ2lzaCBQeXRob24yNi5ETEwgY29udGFpbmluZyB0aGUKLSMgZXNzZW50aWFsIG1vZHVsZXMgb2YgUHl0aG9uIGFuZCBhIHNtYWxsIFB5dGhvbi5leGUgcHJvZ3JhbSB0byBzdGFydAotIyB0aGUgaW50ZXJwcmV0ZXIuIFdoZW4gZW1iZWRkaW5nIFB5dGhvbiB3aXRoaW4gYW5vdGhlciBwcm9ncmFtLCBvbmx5Ci0jIFB5dGhvbjI2LkRMTCBpcyBuZWVkZWQuIFdlIGFsc28gYnVpbGQgcHl0aG9uX3MuYSBzdGF0aWMgbGlicmFyeSAod2hpY2gKLSMgY2FuIGJlIGNvbnZlcnRlZCBpbnRvIE9NRiAoLmxpYikgZm9ybWF0IHVzaW5nIGVteG9tZiB0b29sKSBhbmQgYm90aAotIyBweXRob24uYSBhbmQgcHl0aG9uLmxpYiBpbXBvcnQgbGlicmFyaWVzLiAgVGhlbiB0aGUgb3B0aW9uYWwgCi0jIGV4dGVuc2lvbiBtb2R1bGVzLCB3aGljaCBhcmUgT1MvMiBETExzIHJlbmFtZWQgd2l0aCBhIFBZRCBmaWxlIGV4dGVuc2lvbi4KLSMKLSMgUmVjb21tZW5kZWQgYnVpbGQgb3JkZXI6Ci0jICAgbWFrZSBkZXBlbmQJCShpZiB5b3UgaGF2ZSBtYWtlZGVwKQotIyAgIG1ha2UgYWxsCi0jICAgbWFrZSBseAkJKGlmIHlvdSBoYXZlIGx4bGl0ZSkKLSMgICBtYWtlIHRlc3QJCShvcHRpb25hbCkKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIz09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tLS0tLS0KLQotIyA9PT0gQ29tcGlsYXRpb24gbW9kZTogZGVidWcgb3IgcmVsZWFzZSA9PT0KLU1PREU9CQlvcHRpbWl6ZQotI01PREU9CQlkZWJ1ZwotIyA9PT0gQXNzZXJ0KCkgZW5hYmxlZCA9PT0KLUFTU0VSVElPTlM9bm8KLSNBU1NFUlRJT05TPXllcwotIyA9PT0gSGFyZC13aXJlIGluc3RhbGxhdGlvbiBsb2NhdGlvbiA9PT0KLUZJWEVEX1BZSE9NRT1ubwotI0ZJWEVEX1BZSE9NRT15ZXMKLQotIyA9PT0gT3B0aW9uYWwgbW9kdWxlcyA9PT0KLSMgRG8geW91IGhhdmUgdGhlIEluZm9aaXAgY29tcHJlc3Npb24gbGlicmFyeSBpbnN0YWxsZWQ/Ci1IQVZFX1pMSUI9CW5vCi0jIERvIHlvdSBoYXZlIHRoZSBVbHRyYSBGYXN0IENyeXB0IChVRkMpIGxpYnJhcnkgaW5zdGFsbGVkPwotSEFWRV9VRkM9CW5vCi0jIERvIHlvdSBoYXZlIHRoZSBUY2wvVGsgbGlicmFyeSBpbnN0YWxsZWQ/Ci1IQVZFX1RDTFRLPQlubwotIyBEbyB5b3UgaGF2ZSB0aGUgR05VIHJlYWRsaW5lIGxpYnJhcnkgaW5zdGFsbGVkPwotIyBOT1RFOiBJJ20gdXNpbmcgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIEthaSBVd2UgUm9tbWVsJ3MgcG9ydCB0aGF0IAotIyAgICAgICAtIGlzIGNvbXBpbGVkIHdpdGggbXVsdGl0aHJlYWRpbmcgZW5hYmxlZAotIyAgICAgICAtIGlzIGxpbmtlZCBzdGF0aWNhbGx5Ci0jICAgICAgIEkgaGF2ZSBoYWQgbm8gc3VjY2VzcyB0cnlpbmcgdG8gdXNlIGEgRExMIHZlcnNpb24sIGV2ZW4gd2hlbgotIyAgICAgICBjb21waWxlZCB3aXRoIG11bHRpdGhyZWFkaW5nIGVuYWJsZWQuCi1IQVZFX0dSRUFETElORT0Jbm8KLSMgRG8geW91IGhhdmUgdGhlIEJTRCBEQiBsaWJyYXJ5ICh2MS44NSkgYXMgaW5jbHVkZWQgaW4gdGhlIEVNWEJTRCBwYWNrYWdlPwotIyBOT1RFOiB0aGlzIGxpYnJhcnkgbmVlZHMgdG8gYmUgcmVjb21waWxlZCB3aXRoIGEgc3RydWN0dXJlIG1lbWJlcgotIyAgICAgICByZW5hbWVkIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggdGhlIG11bHRpdGhyZWFkZWQgZXJybm8gc3VwcG9ydAotIyAgICAgICAodGhlcmUgaXMgYSBzdHJ1Y3R1cmUgbWVtYmVyIGNhbGxlZCBlcnJubywgdXNlZCBmb3Igc2hhZG93aW5nIHRoZQotIyAgICAgICByZWFsIGVycm5vLCB3aGljaCBjb25mbGljdHMgd2l0aCB0aGUgZXJybm8gcmVkZWZpbml0aW9uIG9mIC1abXQpCi1IQVZFX0JTRERCPQlubwotIyBEbyB5b3UgaGF2ZSB0aGUgbmN1cnNlcyBsaWJyYXJ5IGluc3RhbGxlZD8gRU1YJ3MgQlNEIGN1cnNlcyBhcmVuJ3QgZW5vdWdoISAKLUhBVkVfTkNVUlNFUz0Jbm8KLSMgRG8geW91IGhhdmUgdGhlIEdEQk0gbGlicmFyeSBpbnN0YWxsZWQ/Ci1IQVZFX0dEQk09CW5vCi0jIERvIHlvdSBoYXZlIHRoZSBCWjIgY29tcHJlc3Npb24gbGlicmFyeSBpbnN0YWxsZWQ/Ci1IQVZFX0JaMj0Jbm8KLSMgRG8geW91IGhhdmUgdGhlIE9wZW5TU0wgbGlicmFyaWVzIGluc3RhbGxlZAotSEFWRV9PUEVOU1NMPQlubwotCi0jID09PSBpbnN0YWxsIGxvY2F0aW9ucyA9PT0KLSMgZGVmYXVsdCB2YWx1ZSBvZiBQWVRIT05IT01FCi1MSUJfRElSPUM6L1B5dGhvbjI2Ci0jIGRlZmF1bHQgaXMgdG8gaGF2ZSBldmVyeXRoaW5nIGluIG9yIHVuZGVyIFBZVEhPTkhPTUUKLUVYRV9ESVI9JChMSUJfRElSKQotRExMX0RJUj0kKEVYRV9ESVIpCi0KLQotIyA9PT0gVGhlIFRvb2xzID09PQotQ0M9CQlnY2MKLUNGTEFHUz0JCS1abXQgLVdhbGwgJChJTkNMVURFKQotQ0ZMQUdTLkxJQj0JJChDRkxBR1MpCi1MRD0JCWdjYwotTERGTEFHUz0JLVptdCAtWmNydGRsbCAtTC4gLWxnY2MKLUxERkxBR1MuRVhFPQkkKExERkxBR1MpCi1MREZMQUdTLkRMTD0JJChMREZMQUdTKSAtWmRsbAotTERGTEFHUy5BPQkkKExERkxBR1MpICQoTElCUykKLUFSRkxBR1M9CWNycwotSU1QTElCPQkJZW14aW1wCi1FWFBMSUI9CQllbXhleHAKLUVYRU9QVD0JCWVteGJpbmQKLVBZX0RFRj0JCS1EUHlfQlVJTERfQ09SRQotCi0KLSMgYWRqdXN0IEMgY29tcGlsZXIgc2V0dGluZ3MgYmFzZWQgb24gYnVpbGQgb3B0aW9ucwotaWZlcSAoJChNT0RFKSxkZWJ1ZykKLSAgQ0ZMQUdTKz0JLWcgLU8KLSAgTERGTEFHUys9CS1nCi1lbHNlCi0gIENGTEFHUys9CS1zIC1PMyAtZm9taXQtZnJhbWUtcG9pbnRlciAtbXByb2JlCi0gIExERkxBR1MrPQktcwotZW5kaWYKLUNGTEFHUys9CSQoUFlfREVGKQotaWZlcSAoJChBU1NFUlRJT05TKSxubykKLSAgQ0ZMQUdTKz0JLUROREVCVUcKLWVuZGlmCi1pZmVxICgkKEZJWEVEX1BZSE9NRSkseWVzKQotICBDRkxBR1MrPQktRFBSRUZJWD0kKERRVU9URSkkKExJQl9ESVIpJChEUVVPVEUpCi1lbmRpZgotCi0jIFdlJ3JlIHVzaW5nIHRoZSBPTUYgZm9ybWF0IHNpbmNlIEVNWCdzIGxkIGhhcyBhIG9ic2N1cmUgYnVnCi0jIGJlY2F1c2Ugb2Ygd2hpY2ggaXQgc29tZXRpbWVzIGZhaWxzIHRvIGJ1aWxkIHJlbG9jYXRpb25zCi0jIGluIC5kYXRhIHNlZ21lbnQgdGhhdCBwb2ludCB0byBhbm90aGVyIC5kYXRhIGxvY2F0aW9ucwotIyAoZXhjZXB0IGZvciB0aGUgZmluYWwgbGlua2luZyBpZiB0aGUgLkVYRXMpCi1PTUY9CQl5ZXMKLQotIyBpZiBmb3JrKCkgc3VwcG9ydCBpcyByZXF1aXJlZCwgdGhlIG1haW4gZXhlY3V0YWJsZSBtdXN0IGJlIGxpbmtlZCB3aXRoIGxkCi1FWEVPTUY9CQlubwotCi0jIEZpbGUgZXh0ZW5zaW9ucwotTU9EVUxFLkVYVD0JLnB5ZAotTU9ETElCLkVYVD0JLmRsbAotaWZlcSAoJChPTUYpLHllcykKLSAgTz0JCS5vYmoKLSAgQT0JCS5saWIKLSAgQVI9CQllbXhvbWZhcgotICBDRkxBR1MrPQktWm9tZgotICBMREZMQUdTKz0JLVpvbWYKLSAgaWZlcSAoJChNT0RFKSxkZWJ1ZykKLSAgICBBUkZMQUdTPQktcDY0IGNycwotICBlbHNlCi0gICAgQVJGTEFHUz0JLXAzMiBjcnMKLSAgZW5kaWYKLWVsc2UKLSAgTz0JCS5vCi0gIEE9CQkuYQotICBBUj0JCWFyCi1lbmRpZgotCi0KLSMgPT09IEJ1aWxkIHRpbWUgcmVzb3VyY2Ugc2V0dGluZ3MgPT09Ci0KLSMgRU1YJ3MgZGVmYXVsdCBudW1iZXIgb2YgZmlsZSBoYW5kbGVzIGlzIDQwLCB3aGljaCBpcyBzb21ldGltZXMgaW5zdWZmaWNpZW50Ci0jICh0aGUgdGVtcGZpbGUgcmVncmVzc2lvbiB0ZXN0IHRyaWVzIHRvIGNyZWF0ZSAxMDAgdGVtcG9yYXJ5IGZpbGVzKQotTkZJTEVTPTI1MAotCi0jIFRoZSBkZWZhdWx0IHN0YWNrIHNpemUgZm9yIGNoaWxkIHRocmVhZHMgaXMgNjRrIGJ5dGVzLCB3aGljaCBpcwotIyBpbnN1ZmZpY2llbnQgZm9yIHNvbWUgYXBwbGljYXRpb25zIHdoaWNoIGRvIGEgbG90IG9mIHdvcmsgaW4gdGhyZWFkcwotIyAoc3VjaCBhcyBab3BlLCBlc3BlY2lhbGx5IGluIGNvbmp1bmN0aW9uIHdpdGggUGxvbmUpLgotIyBOb3RlIHRoYXQgdGhpcyBzZXR0aW5nIGlzIGRpc3RpbmN0IGZyb20gdGhlIHN0YWNrIHNpemUgZm9yIHRoZSBtYWluCi0jIHRocmVhZCwgd2hpY2ggaXMgc2V0IHZpYSB0aGUgJS5kZWYgcnVsZSBiZWxvdy4KLSMgRU1YIGRvY3VtZW50cyB0aGF0IHRoZSB0aHJlYWQgc3RhY2sgc2l6ZSBzaG91bGQgYmUgYXQgbGVhc3QgMzI3NjggYnl0ZXM7Ci0jIGZvciBab3BlL1Bsb25lIGF0IGxlYXN0IDEyOGsgYnl0ZXMgaXMgcmVjb21tZW5kZWQuCi0jIFVuY29tbWVudCAmIGFkanVzdCB0aGUgbmV4dCBsaW5lIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHN0YWNrIHNpemU6Ci0jQ0ZMQUdTKz0JLURUSFJFQURfU1RBQ0tfU0laRT0weDIwMDAwCi0KLQotIyA9PT0gVGhlIGVudmlyb25tZW50ID09PQotCi0jIFNvdXJjZSBmaWxlIHBhdGhzCi1TUkNQQVRIPS47Li4vLi4vUHl0aG9uOy4uLy4uL1BhcnNlcjsuLi8uLi9PYmplY3RzOy4uLy4uL0luY2x1ZGU7Li4vLi4vTW9kdWxlcwotIyBQeXRob24gY29udGFpbnMgdGhlIGNlbnRyYWwgY29yZSwgY29udGFpbmluZyB0aGUgYnVpbHRpbnMgYW5kIGludGVycHJldGVyLgotIyBQYXJzZXIgY29udGFpbnMgUHl0aG9uJ3MgSW50ZXJuYWwgUGFyc2VyIGFuZAotIyAgIFN0YW5kYWxvbmUgUGFyc2VyIEdlbmVyYXRvciBQcm9ncmFtIChTaGFyZXMgU29tZSBvZiBQeXRob24ncyBNb2R1bGVzKQotIyBPYmplY3RzIGNvbnRhaW5zIFB5dGhvbiBPYmplY3QgVHlwZXMKLSMgTW9kdWxlcyBjb250YWlucyBleHRlbnNpb24gTW9kdWxlcyAoQnVpbHQtSW4gb3IgYXMgU2VwYXJhdGUgRExMcykKLQotIyBVbml4IHNoZWxscyB0ZW5kIHRvIHVzZSAiJCIgYXMgZGVsaW1pdGVyIGZvciB2YXJpYWJsZSBuYW1lcy4KLSMgVGVzdCBmb3IgdGhpcyBiZWhhdmlvdXIgYW5kIHNldCAkKEJVQ0spIHZhcmlhYmxlIGNvcnJlc3BvbmRpZ2x5IC4uLgotX19UTVBfXzo9JChzaGVsbCBlY2hvICQkJCQpCi1pZmVxICgkKF9fVE1QX18pLCQkJCQpCi0gIEJVQ0s9CQkkJAotICBCUk89CQkoCi0gIEJSQz0JCSkKLWVsc2UKLSAgQlVDSz0JCVwkJAotICBCUk89CQlcKAotICBCUkM9CQlcKQotZW5kaWYKLSMgQ29tcHV0ZSB0aGUgImRvdWJsZSBxdW90ZSIgdmFyaWFibGUKLV9fVE1QX186PSQoc2hlbGwgZWNobyAiIikKLWlmZXEgKCQoX19UTVBfXyksIiIpCi0gIERRVU9URT0JIgotZWxzZQotICBEUVVPVEU9CVwiCi1lbmRpZgotCi0jIEluY2x1ZGUgcGF0aHMKLSNJTkNMVURFPQktSSQoc3Vic3QgOywgLUksICQoU1JDUEFUSCkpCi1JTkNMVURFPQktSS4gLUkuLi8uLi9JbmNsdWRlCi0KLSMgUGF0aCB0byBzZWFyY2ggZm9yIC5jIGZpbGVzCi12cGF0aCAlLmMgLjsuLjskKFNSQ1BBVEgpCi0KLSMgVG9wIG9mIHRoZSBwYWNrYWdlIHRyZWUKLVRPUD0JCS4uLy4uLwotCi0jIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzCi1PVVRCQVNFPQlvdXQvCi1PVVQ9CQkkKE9VVEJBU0UpJChNT0RFKS8KLQotIyBBZGRpdGlvbmFsIGxpYnJhcmllcwotTElCUz0JCS1sc29ja2V0Ci0KLSMgVXRpbGl0eSBtYWNybzogcmVwbGFjZW1lbnQgZm9yICReCi1eXj0JCSQoZmlsdGVyLW91dCAlJEEsJF4pCi0jIFVzZSAkKExeKSB0byBsaW5rIHdpdGggYWxsIGxpYnJhcmllcyBzcGVjaWZpZWQgYXMgZGVwZW5kZW5jaWVzCi1MXj0JCSQoYWRkcHJlZml4IC1sLCQoYmFzZW5hbWUgJChub3RkaXIgJChmaWx0ZXIgJSRBLCQrKSkpKQotCi0jIEJ1aWxkIHJ1bGVzCi0kKE9VVCklJE86ICUuYwotCSQoQ0MpICQoQ0ZMQUdTLkxJQikgLWMgJDwgLW8gJEAKLQotJS5hOgotCSQoTEQpICQoTERGTEFHUy5BKSAtbyAkQCAkKF5eKSAkKExeKQotCi0lLmRsbDoKLQkkKExEKSAkKExERkxBR1MuRExMKSAtbyAkQCAkKF5eKSAkKExeKSAkKExJQlMpCi0KLSUucHlkOiAkKE9VVCklbW9kdWxlJE8gJChPVVQpJV9tLmRlZgotCSQoTEQpICQoTERGTEFHUy5ETEwpIC1vICRAICQoXl4pICQoUFlUSE9OLklNUExJQikgJChMSUJTKQotCi0lLmV4ZToKLQkkKExEKSAkKExERkxBR1MuRVhFKSAtbyAkQCAkKF5eKSAkKExeKQotCi0lX20uZGVmOgotCUBlY2hvIENyZWF0aW5nIC5ERUYgZmlsZTogJEAKLQlAZWNobyBMSUJSQVJZICQobm90ZGlyICQqKSBJTklUSU5TVEFOQ0UgVEVSTUlOU1RBTkNFID4kQAotICAgICAgICBpZmVxICgkKERFU0NSSVBUSU9OLiQobm90ZGlyICQqKSQoTU9EVUxFLkVYVCkpLCkKLQkgIEBlY2hvIERFU0NSSVBUSU9OICQoRFFVT1RFKVB5dGhvbiBzdGFuZGFyZCBtb2R1bGUgJChub3RkaXIgJCopJChEUVVPVEUpID4+JEAKLSAgICAgICAgZWxzZQotCSAgQGVjaG8gREVTQ1JJUFRJT04gJChEUVVPVEUpJChERVNDUklQVElPTi4kKG5vdGRpciAkKikkKE1PRFVMRS5FWFQpKSQoRFFVT1RFKSA+PiRACi0gICAgICAgIGVuZGlmCi0JQGVjaG8gREFUQSBNVUxUSVBMRSBOT05TSEFSRUQgPj4kQAotCUBlY2hvIEVYUE9SVFMgPj4kQAotCUBlY2hvIAlpbml0JChub3RkaXIgJCopID4+JEAKLQotJS5kZWY6Ci0JQGVjaG8gQ3JlYXRpbmcgLkRFRiBmaWxlOiAkQAotCUBlY2hvIE5BTUUgJChub3RkaXIgJCopICQoRVhFVFlQRS4kKG5vdGRpciAkKikuZXhlKSA+JEAKLQlAZWNobyBERVNDUklQVElPTiAkKERRVU9URSkkKERFU0NSSVBUSU9OLiQobm90ZGlyICQqKS5leGUpJChEUVVPVEUpID4+JEAKLQlAZWNobyBTVEFDS1NJWkUgMjA5NzE1MiA+PiRACi0KLSMgT3V0cHV0IGZpbGUgbmFtZXMKLVBZVEhPTl9WRVI9CTIuNgotUFlUSE9OX0xJQj0JcHl0aG9uMzMKLVBZVEhPTi5MSUI9CSQoUFlUSE9OX0xJQilfcyRBCi1QWVRIT04uSU1QTElCPQkkKFBZVEhPTl9MSUIpJEEKLWlmZXEgKCQoRVhFT01GKSx5ZXMpCi0gIFBZVEhPTi5FWEVJTVA9CSQoUFlUSE9OLklNUExJQikKLSAgTERNT0RFLkVYRT0JCS1ab21mCi1lbHNlCi0gIFBZVEhPTi5FWEVJTVA9CSQoUFlUSE9OX0xJQikuYQotICBMRE1PREUuRVhFID0gCi1lbmRpZgotUFlUSE9OLkRMTD0JJChQWVRIT05fTElCKS5kbGwKLVBZVEhPTi5ERUY9CSQoUFlUSE9OX0xJQikuZGVmCi1QWVRIT04uRVhFPQlweXRob24uZXhlCi1QWVRIT05QTS5FWEU9CXB5dGhvbnBtLmV4ZQotUEdFTi5FWEU9CXBnZW4uZXhlCi1MSUJSQVJZPQkkKFBZVEhPTi5MSUIpCi1MRF9MSUJSQVJZPQkkKFBZVEhPTi5JTVBMSUIpCi0KLSMgQWRkaXRpb25hbCBleGVjdXRhYmxlIHBhcmFtZXRlcnMKLUVYRVRZUEUuJChQWVRIT04uRVhFKT0JCVdJTkRPV0NPTVBBVAotRVhFVFlQRS4kKFBZVEhPTlBNLkVYRSk9CVdJTkRPV0FQSQotRVhFVFlQRS4kKFBHRU4uRVhFKT0JCVdJTkRPV0NPTVBBVAotREVTQ1JJUFRJT04uJChQWVRIT04uRVhFKT0JUHl0aG9uIG9iamVjdC1vcmllbnRlZCBwcm9ncmFtbWluZyBsYW5ndWFnZSBpbnRlcnByZXRlciBmb3IgT1MvMgotREVTQ1JJUFRJT04uJChQWVRIT05QTS5FWEUpPQkkKERFU0NSSVBUSU9OLiQoUFlUSE9OLkVYRSkpCi1ERVNDUklQVElPTi4kKFBHRU4uRVhFKT0JUHl0aG9uIG9iamVjdC1vcmllbnRlZCBwcm9ncmFtbWluZyBsYW5ndWFnZSBwYXJzZXIgZ2VuZXJhdG9yIGZvciBPUy8yCi0KLSMgTW9kdWxlIGRlc2NyaXB0aW9ucwotREVTQ1JJUFRJT04uemxpYiQoTU9EVUxFLkVYVCk9CQlQeXRob24gRXh0ZW5zaW9uIERMTCBmb3IgYWNjZXNzaW5nIHRoZSBJbmZvWmlwIGNvbXByZXNzaW9uIGxpYnJhcnkKLURFU0NSSVBUSU9OLmNyeXB0JChNT0RVTEUuRVhUKT0JCVB5dGhvbiBFeHRlbnNpb24gRExMIGltcGxlbWVudGluZyB0aGUgY3J5cHQkKEJSTykkKEJSQykgZnVuY3Rpb24KLURFU0NSSVBUSU9OLl90a2ludGVyJChNT0RVTEUuRVhUKT0JUHl0aG9uIEV4dGVuc2lvbiBETEwgZm9yIGFjY2VzcyB0byBUY2wvVGsgRW52aXJvbm1lbnQKLURFU0NSSVBUSU9OLnJlYWRsaW5lJChNT0RVTEUuRVhUKT0JUHl0aG9uIEV4dGVuc2lvbiBETEwgZm9yIGFjY2VzcyB0byBHTlUgUmVhZExpbmUgbGlicmFyeQotREVTQ1JJUFRJT04uX2N1cnNlcyQoTU9ETElCLkVYVCk9CVB5dGhvbiBFeHRlbnNpb24gRExMIGZvciBhY2Nlc3MgdG8gbmN1cnNlcyBsaWJyYXJ5Ci1ERVNDUklQVElPTi5weWV4cGF0JChNT0RVTEUuRVhUKT0JUHl0aG9uIEV4dGVuc2lvbiBETEwgZm9yIGFjY2VzcyB0byBleHBhdCBsaWJyYXJ5Ci1ERVNDUklQVElPTi5iejIkKE1PRFVMRS5FWFQpPQkJUHl0aG9uIEV4dGVuc2lvbiBETEwgZm9yIGFjY2Vzc2luZyB0aGUgYnoyIGNvbXByZXNzaW9uIGxpYnJhcnkKLQotIyBTb3VyY2UgZmlsZXMKLVNSQy5PUzJFTVg9CWNvbmZpZy5jIGRsZmNuLmMgZ2V0cGF0aHAuYwotU1JDLk1BSU49CSQoYWRkcHJlZml4ICQoVE9QKSwgXAotCQlNb2R1bGVzL2dldGJ1aWxkaW5mby5jIFwKLQkJTW9kdWxlcy9tYWluLmMpCi1TUkMuTU9EVUxFUz0JJChhZGRwcmVmaXggJChUT1ApLCBcCi0JCU1vZHVsZXMvZ2Ntb2R1bGUuYyBcCi0JCU1vZHVsZXMvc2lnbmFsbW9kdWxlLmMgXAotCQlNb2R1bGVzL3Bvc2l4bW9kdWxlLmMgXAotCQlNb2R1bGVzL190aHJlYWRtb2R1bGUuYyBcCi0JCU1vZHVsZXMvYXJyYXltb2R1bGUuYyBcCi0JCU1vZHVsZXMvYmluYXNjaWkuYyBcCi0JCU1vZHVsZXMvY21hdGhtb2R1bGUuYyBcCi0JCU1vZHVsZXMvX2NvZGVjc21vZHVsZS5jIFwKLQkJTW9kdWxlcy9jb2xsZWN0aW9uc21vZHVsZS5jIFwKLQkJTW9kdWxlcy9fY3N2LmMgXAotCQlNb2R1bGVzL2RhdGV0aW1lbW9kdWxlLmMgXAotCQlNb2R1bGVzL2Vycm5vbW9kdWxlLmMgXAotCQlNb2R1bGVzL2ZjbnRsbW9kdWxlLmMgXAotCQlNb2R1bGVzL19mdW5jdG9vbHNtb2R1bGUuYyBcCi0JCU1vZHVsZXMvX2hlYXBxbW9kdWxlLmMgXAotCQlNb2R1bGVzL2ltYWdlb3AuYyBcCi0JCU1vZHVsZXMvaXRlcnRvb2xzbW9kdWxlLmMgXAotCQlNb2R1bGVzL19sb2NhbGVtb2R1bGUuYyBcCi0JCU1vZHVsZXMvbWF0aG1vZHVsZS5jIFwKLQkJTW9kdWxlcy9vcGVyYXRvci5jIFwKLQkJTW9kdWxlcy9fcmFuZG9tbW9kdWxlLmMgXAotCQlNb2R1bGVzL3NoYTI1Nm1vZHVsZS5jIFwKLQkJTW9kdWxlcy9zaGE1MTJtb2R1bGUuYyBcCi0JCU1vZHVsZXMvX3NyZS5jIFwKLQkJTW9kdWxlcy9fc3RydWN0LmMgXAotCQlNb2R1bGVzL3N5bXRhYmxlbW9kdWxlLmMgXAotCQlNb2R1bGVzL3Rlcm1pb3MuYyBcCi0JCU1vZHVsZXMvdGltZW1vZHVsZS5jIFwKLQkJTW9kdWxlcy9fd2Vha3JlZi5jIFwKLQkJTW9kdWxlcy94eHN1YnR5cGUuYyBcCi0JCU1vZHVsZXMvemlwaW1wb3J0LmMpCi1TUkMuUEFSU0UxPQkkKGFkZHByZWZpeCAkKFRPUCksIFwKLQkJUGFyc2VyL2FjY2VsZXIuYyBcCi0JCVBhcnNlci9ncmFtbWFyMS5jIFwKLQkJUGFyc2VyL2xpc3Rub2RlLmMgXAotCQlQYXJzZXIvbm9kZS5jIFwKLQkJUGFyc2VyL3BhcnNlci5jIFwKLQkJUGFyc2VyL3BhcnNldG9rLmMgXAotCQlQYXJzZXIvYml0c2V0LmMgXAotCQlQYXJzZXIvbWV0YWdyYW1tYXIuYykKLVNSQy5QQVJTRTI9CSQoYWRkcHJlZml4ICQoVE9QKSwgXAotCQlQYXJzZXIvdG9rZW5pemVyLmMgXAotCQlQYXJzZXIvbXlyZWFkbGluZS5jKQotU1JDLlBBUlNFUj0JJChTUkMuUEFSU0UxKSBcCi0JCSQoU1JDLlBBUlNFMikKLVNSQy5QWVRIT049CSQoYWRkcHJlZml4ICQoVE9QKSwgXAotCQlQeXRob24vUHl0aG9uLWFzdC5jIFwKLQkJUHl0aG9uL2FzZGwuYyBcCi0JCVB5dGhvbi9hc3QuYyBcCi0JCVB5dGhvbi9ibHRpbm1vZHVsZS5jIFwKLQkJUHl0aG9uL2V4Y2VwdGlvbnMuYyBcCi0JCVB5dGhvbi9jZXZhbC5jIFwKLQkJUHl0aG9uL2NvbXBpbGUuYyBcCi0JCVB5dGhvbi9jb2RlY3MuYyBcCi0JCVB5dGhvbi9keW5hbWljX2Fubm90YXRpb25zLmMgXAotCQlQeXRob24vZXJyb3JzLmMgXAotCQlQeXRob24vZnJvemVuLmMgXAotCQlQeXRob24vZnJvemVubWFpbi5jIFwKLQkJUHl0aG9uL2Z1dHVyZS5jIFwKLQkJUHl0aG9uL2dldGFyZ3MuYyBcCi0JCVB5dGhvbi9nZXRjb21waWxlci5jIFwKLQkJUHl0aG9uL2dldGNvcHlyaWdodC5jIFwKLQkJUHl0aG9uL2dldHBsYXRmb3JtLmMgXAotCQlQeXRob24vZ2V0dmVyc2lvbi5jIFwKLQkJUHl0aG9uL2dyYW1pbml0LmMgXAotCQlQeXRob24vaW1wb3J0LmMgXAotCQlQeXRob24vaW1wb3J0ZGwuYyBcCi0JCVB5dGhvbi9tYXJzaGFsLmMgXAotCQlQeXRob24vbW9kc3VwcG9ydC5jIFwKLQkJUHl0aG9uL215c25wcmludGYuYyBcCi0JCVB5dGhvbi9teXN0cnRvdWwuYyBcCi0JCVB5dGhvbi9weWFyZW5hLmMgXAotCQlQeXRob24vcHljdHlwZS5jIFwKLQkJUHl0aG9uL3B5ZnBlLmMgXAotCQlQeXRob24vcHlzdGF0ZS5jIFwKLQkJUHl0aG9uL3B5c3RydG9kLmMgXAotCQlQeXRob24vcHl0aG9ucnVuLmMgXAotCQlQeXRob24vc3RydWN0bWVtYmVyLmMgXAotCQlQeXRob24vc3ltdGFibGUuYyBcCi0JCVB5dGhvbi9zeXNtb2R1bGUuYyBcCi0JCVB5dGhvbi90cmFjZWJhY2suYyBcCi0JCVB5dGhvbi9nZXRvcHQuYyBcCi0JCVB5dGhvbi9keW5sb2FkX3NobGliLmMgXAotCQlQeXRob24vdGhyZWFkLmMpCi1TUkMuT0JKRUNUPQkkKGFkZHByZWZpeCAkKFRPUCksIFwKLQkJT2JqZWN0cy9hYnN0cmFjdC5jIFwKLQkJT2JqZWN0cy9ib29sb2JqZWN0LmMgXAotCQlPYmplY3RzL2NlbGxvYmplY3QuYyBcCi0JCU9iamVjdHMvY2xhc3NvYmplY3QuYyBcCi0JCU9iamVjdHMvY29iamVjdC5jIFwKLQkJT2JqZWN0cy9jb2Rlb2JqZWN0LmMgXAotCQlPYmplY3RzL2NvbXBsZXhvYmplY3QuYyBcCi0JCU9iamVjdHMvZGVzY3JvYmplY3QuYyBcCi0JCU9iamVjdHMvZGljdG9iamVjdC5jIFwKLQkJT2JqZWN0cy9lbnVtb2JqZWN0LmMgXAotCQlPYmplY3RzL2ZpbGVvYmplY3QuYyBcCi0JCU9iamVjdHMvZmxvYXRvYmplY3QuYyBcCi0JCU9iamVjdHMvZnJhbWVvYmplY3QuYyBcCi0JCU9iamVjdHMvZnVuY29iamVjdC5jIFwKLQkJT2JqZWN0cy9nZW5vYmplY3QuYyBcCi0JCU9iamVjdHMvaXRlcm9iamVjdC5jIFwKLQkJT2JqZWN0cy9saXN0b2JqZWN0LmMgXAotCQlPYmplY3RzL2xvbmdvYmplY3QuYyBcCi0JCU9iamVjdHMvbWV0aG9kb2JqZWN0LmMgXAotCQlPYmplY3RzL21vZHVsZW9iamVjdC5jIFwKLQkJT2JqZWN0cy9vYmplY3QuYyBcCi0JCU9iamVjdHMvb2JtYWxsb2MuYyBcCi0JCU9iamVjdHMvcmFuZ2VvYmplY3QuYyBcCi0JCU9iamVjdHMvc2V0b2JqZWN0LmMgXAotCQlPYmplY3RzL3NsaWNlb2JqZWN0LmMgXAotCQlPYmplY3RzL3N0cmluZ29iamVjdC5jIFwKLQkJT2JqZWN0cy9zdHJ1Y3RzZXEuYyBcCi0JCU9iamVjdHMvdHVwbGVvYmplY3QuYyBcCi0JCU9iamVjdHMvdHlwZW9iamVjdC5jIFwKLQkJT2JqZWN0cy91bmljb2Rlb2JqZWN0LmMgXAotCQlPYmplY3RzL3VuaWNvZGVjdHlwZS5jIFwKLQkJT2JqZWN0cy93ZWFrcmVmb2JqZWN0LmMpCi0KLVNSQy5MSUI9CSQoU1JDLk9TMkVNWCkgXAotCQkkKFNSQy5NQUlOKSBcCi0JCSQoU1JDLlBBUlNFUikgXAotCQkkKFNSQy5PQkpFQ1QpIFwKLQkJJChTUkMuUFlUSE9OKSBcCi0JCSQoU1JDLk1PRFVMRVMpCi1PQkouTElCPQkkKGFkZHByZWZpeCAkKE9VVCksJChub3RkaXIgJChTUkMuTElCOi5jPSRPKSkpCi0KLVNSQy5QR0VOPQkkKFNSQy5QQVJTRTEpIFwKLQkJJChhZGRwcmVmaXggJChUT1ApLCBcCi0JCU9iamVjdHMvb2JtYWxsb2MuYykgXAotCQkkKGFkZHByZWZpeCAkKFRPUCksIFwKLQkJUHl0aG9uL215c25wcmludGYuYykgXAotCQkkKGFkZHByZWZpeCAkKFRPUCksIFwKLQkJUGFyc2VyL3Rva2VuaXplcl9wZ2VuLmMgXAotCQlQYXJzZXIvcGdlbm1haW4uYyBcCi0JCVBhcnNlci9wZ2VuLmMgXAotCQlQYXJzZXIvcHJpbnRncmFtbWFyLmMgXAotCQlQYXJzZXIvZ3JhbW1hci5jIFwKLQkJUGFyc2VyL2ZpcnN0c2V0cy5jKSBcCi0KLU9CSi5QR0VOPQkkKGFkZHByZWZpeCAkKE9VVCksJChub3RkaXIgJChTUkMuUEdFTjouYz0kTykpKQotCi1TUkMuRVhFPQkkKFRPUClNb2R1bGVzL3B5dGhvbi5jCi1TUkMuUE1FWEU9CXB5dGhvbnBtLmMKLQotIyBQeXRob24gbW9kdWxlcyB0byBiZSBkeW5hbWljYWxseSBsb2FkZWQgdGhhdDoKLSMgICAxKSBoYXZlIG9ubHkgc2luZ2xlIHNvdXJjZSBmaWxlIGFuZCByZXF1aXJlIG5vIGV4dHJhIGxpYnMKLSMgICAyKSB1c2UgdGhlIHN0YW5kYXJkIG1vZHVsZSBuYW1pbmcgY29udmVudGlvbgotIyAgICAgICh0aGUgJ21vZHVsZScgaW4gPz8/Pz9tb2R1bGUuYyBpcyBhc3N1bWVkKQotIyAtIHRoZXNlIGNhbiBiZSBidWlsdCB3aXRoIGltcGxpY2l0IHJ1bGVzCi1FQVNZRVhUTU9EVUxFUz0JZnBlY3RsIFwKLQkJZnBldGVzdCBcCi0JCXBhcnNlciBcCi0JCXB3ZCBcCi0JCXNlbGVjdCAKLQotIyBQeXRob24gbW9kdWxlcyB0byBiZSBkeW5hbWljYWxseSBsb2FkZWQgdGhhdCBuZWVkIGV4cGxpY2l0IGJ1aWxkIHJ1bGVzCi0jICAoZWl0aGVyIG11bHRpcGxlIHNvdXJjZSBmaWxlcyBhbmQvb3Igbm9uLXN0YW5kYXJkIG1vZHVsZSBuYW1pbmcpCi0jICAoTk9URTogdXNlIHNob3J0ZW5lZCBuYW1lcyBmb3IgbW9kdWxlcyBhZmZlY3RlZCBieSA4IGNoYXIgbmFtZSBsaW1pdCkKLUhBUkRFWFRNT0RVTEVTPQlfc29ja2V0IFwKLQkJX3Rlc3RjYXAgXAotCQl1bmljb2RlZAotCi0jIFB5dGhvbiBtb2R1bGVzIHRoYXQgYXJlIHVzZWQgYXMgbGlicmFyaWVzIGFuZCB0aGVyZWZvcmUgbXVzdCB1c2UKLSMgYSAuRExMIGV4dGVuc2lvbgotTElCRVhUTU9EVUxFUz0KLQotIyBQeXRob24gZXh0ZXJuYWwgKCQoTU9EVUxFLkVYVCkpIG1vZHVsZXMgLSBjYW4gYmUgRUFTWSBvciBIQVJECi1pZmVxICgkKEhBVkVfWkxJQikseWVzKQotICBIQVJERVhUTU9EVUxFUys9CXpsaWIKLWVuZGlmCi1pZmVxICgkKEhBVkVfVUZDKSx5ZXMpCi0gIEhBUkRFWFRNT0RVTEVTKz0JY3J5cHQKLWVuZGlmCi1pZmVxICgkKEhBVkVfVENMVEspLHllcykKLSAgSEFSREVYVE1PRFVMRVMrPQlfdGtpbnRlcgotICBDRkxBR1MrPQkJLURIQVNfRElSRU5UIC1JL1RjbFRrODAvaW5jbHVkZQotICBUS19MSUJTKz0JCS1ML1RjbFRrODAvbGliIC1sdGNsODAgLWx0azgwCi1lbmRpZgotaWZlcSAoJChIQVZFX0dSRUFETElORSkseWVzKQotICBIQVJERVhUTU9EVUxFUys9CXJlYWRsaW5lCi1lbmRpZgotaWZlcSAoJChIQVZFX05DVVJTRVMpLHllcykKLSAgTElCRVhUTU9EVUxFUys9CV9jdXJzZXMKLSAgSEFSREVYVE1PRFVMRVMrPQlfY3Vyc2VzXwotZW5kaWYKLWlmZXEgKCQoSEFWRV9HREJNKSx5ZXMpCi0gIEhBUkRFWFRNT0RVTEVTKz0JX2dkYm0gX2RibQotZW5kaWYKLWlmZXEgKCQoSEFWRV9CWjIpLHllcykKLSAgSEFSREVYVE1PRFVMRVMrPQliejIKLWVuZGlmCi1pZmVxICgkKEhBVkVfT1BFTlNTTCkseWVzKQotICBIQVJERVhUTU9EVUxFUys9CV9zc2wKLWVuZGlmCi0KLSMgRXhwYXQgaXMgbm93IGRpc3RyaWJ1dGVkIHdpdGggdGhlIFB5dGhvbiBzb3VyY2UKLUhBUkRFWFRNT0RVTEVTKz0JcHlleHBhdAotRVhQQVQuSU5DPQktSS4uLy4uL01vZHVsZXMvZXhwYXQKLUVYUEFULkRFRj0JLURIQVZFX0VYUEFUX0ggLURYTUxfTlM9MSAtRFhNTF9EVEQ9MSAtRFhNTF9CWVRFX09SREVSPTEyIFwKLQkJLURYTUxfQ09OVEVOVF9CWVRFUz0xMDI0IC1ESEFWRV9NRU1NT1ZFPTEgLURIQVZFX0JDT1BZPTEKLUVYUEFULlNSQz0JJChhZGRwcmVmaXggLi4vLi4vTW9kdWxlcy9leHBhdC8sIFwKLQkJeG1scGFyc2UuYyBcCi0JCXhtbHJvbGUuYyBcCi0JCXhtbHRvay5jKQotCi0jIGFsbCB0aGUgZXh0ZXJuYWwgbW9kdWxlcwotRVhURVJORExMUz0JJChhZGRzdWZmaXggJChNT0RVTEUuRVhUKSwkKHBhdHN1YnN0ICVtb2R1bGUsJSwkKEVBU1lFWFRNT0RVTEVTKSkpCi1FWFRFUk5ETExTKz0JJChhZGRzdWZmaXggJChNT0RVTEUuRVhUKSwkKHBhdHN1YnN0ICVtb2R1bGUsJSwkKEhBUkRFWFRNT0RVTEVTKSkpCi1FWFRFUk5ETExTKz0JJChhZGRzdWZmaXggJChNT0RMSUIuRVhUKSwkKHBhdHN1YnN0ICVtb2R1bGUsJSwkKExJQkVYVE1PRFVMRVMpKSkKLQotIyBUYXJnZXRzCi1hbGw6ICAkKE9VVCkgJChQWVRIT04uTElCKSAkKFBZVEhPTi5ERUYpICQoUFlUSE9OLklNUExJQikgJChQWVRIT04uRExMKSBcCi0JcHl0aG9uX25vbmNvcmUKLQotcHl0aG9uX25vbmNvcmU6Ci0JbWFrZSBQWV9ERUY9ICQoUFlUSE9OLkVYRSkgJChQWVRIT05QTS5FWEUpICQoUEdFTi5FWEUpICQoRVhURVJORExMUykKLQotY2xlYW46Ci0Jcm0gLWYgJChPVVQpKgotCXJtIC1mICQoUFlUSE9OLkxJQikgJChQWVRIT04uSU1QTElCKSAkKFBZVEhPTi5FWEVJTVApICQoUFlUSE9OLkRMTCkgXAotCSAgJChQWVRIT04uRVhFKSAkKFBZVEhPTlBNLkVYRSkgJChQR0VOLkVYRSkgKiQoTU9EVUxFLkVYVCkgKi5kbGwKLQlmaW5kIC4uLy4uL0xpYiAtbmFtZSAiKi5weVtjb10iIC1leGVjIHJtIHt9ICI7IgotCi1seDoKLQlAZWNobyBQYWNraW5nIGV2ZXJ5dGhpbmcgd2l0aCBseExpdGUuLi4KLQlseGxpdGUgJChQWVRIT04uRExMKSAkKFBZVEhPTi5FWEUpICQoUFlUSE9OUE0uRVhFKSAkKFBHRU4uRVhFKQotCi1kZXBlbmQ6ICQoT1VUQkFTRSkKLQltYWtlZGVwIC1mICQoT1VUQkFTRSlweXRob24uZGVwIC1vICQoQlVDSylPIC1wICQoQlVDSylcKE9VVFwpIFwKLQkgIC1yIC1jICQoSU5DTFVERSkgJChTUkMuTElCKSAkKFNSQy5QR0VOKQotCi0kKE9VVCk6ICQoT1VUQkFTRSkKLQotJChPVVQpICQoT1VUQkFTRSk6Ci0JbWtkaXIuZXhlICRACi0KLSQoUFlUSE9OLkxJQik6ICQoT0JKLkxJQikKLQlybS5leGUgLWYgJEAKLQkkKEFSKSAkKEFSRkxBR1MpICRAICReCi0KLSMgdGhlIFB5dGhvbiBjb3JlIERMTCAuZGVmIGZpbGUgbmVlZHMgdG8gaGF2ZSBhIG51bWJlciBvZiBub24tc3RhdGljCi0jIHN5bWJvbHMgdGhhdCBhcmVuJ3QgcGFydCBvZiB0aGUgUHl0aG9uIEMgQVBJIHJlbW92ZWQgKGNvbW1lbnRlZCBvdXQpCi0jIGZyb20gdGhlIERMTCBleHBvcnQgbGlzdC4KLSQoUFlUSE9OLkRFRik6ICQoUFlUSE9OLkxJQikKLQlAZWNobyBDcmVhdGluZyAuREVGIGZpbGU6ICRACi0JQGVjaG8gTElCUkFSWSAkKFBZVEhPTl9MSUIpIElOSVRJTlNUQU5DRSBURVJNSU5TVEFOQ0UgPiRACi0JQGVjaG8gREVTQ1JJUFRJT04gJChEUVVPVEUpUHl0aG9uICQoUFlUSE9OX1ZFUikgQ29yZSBETEwkKERRVU9URSkgPj4kQAotCUBlY2hvIFBST1RNT0RFID4+JEAKLQlAZWNobyBEQVRBIE1VTFRJUExFIE5PTlNIQVJFRCA+PiRACi0JQGVjaG8gRVhQT1JUUyA+PiRACi0JJChFWFBMSUIpIC11ICQoUFlUSE9OLkxJQikgfFwKLQkgc2VkIC1lICIvXiAgLmluaXQuKi9zL14gLzsgLyIgXAotCQktZSAiL14gIC5wY3JlXy4qL3MvXiAvOyAvIiBcCi0JCS1lICIvXiAgLmFycmF5X21ldGhvZHMvcy9eIC87IC8iIFwKLQkJLWUgIi9eICAuZmFzdF9zYXZlX2xlYXZlL3MvXiAvOyAvIiBcCi0JCS1lICIvXiAgLmRsb3Blbi9zL14gLzsgLyIgXAotCQktZSAiL14gIC5kbHN5bS9zL14gLzsgLyIgXAotCQktZSAiL14gIC5kbGNsb3NlL3MvXiAvOyAvIiBcCi0JCS1lICIvXiAgLmRsZXJyb3Ivcy9eIC87IC8iIFwKLQkJLWUgIi9eICAuX1B5X3JlXy4qL3MvXiAvOyAvIiBcCi0JCS1lICIvXiAgLl9QeV9NRDUuKi9zL14gLzsgLyIgPj4kQAotCi0kKFBZVEhPTi5JTVBMSUIpOiAkKFBZVEhPTi5ERUYpCi0JJChJTVBMSUIpIC1vICRAICReCi0KLSQoUFlUSE9OLkVYRUlNUCk6ICQoUFlUSE9OLkRFRikKLQkkKElNUExJQikgLW8gJEAgJF4KLQotJChQWVRIT04uRExMKTogJChPVVQpZGxsZW50cnkkTyAkKFBZVEhPTi5MSUIpICQoUFlUSE9OLkRFRikKLQotIyBFeHBsaWNpdCBtYWtlIHRhcmdldHMgZm9yIHRoZSAuRVhFcyB0byBiZSBhYmxlIHRvIHVzZSBMRCB0byBsaW5rCi0jIChzbyB0aGF0IGZvcmsoKSB3aWxsIHdvcmsgaWYgcmVxdWlyZWQpCi0KLSQoUFlUSE9OLkVYRSk6ICQoU1JDLkVYRSkgJChQWVRIT04uRVhFSU1QKSAkKE9VVClweXRob24uZGVmCi0JJChDQykgLVptdCAkKExETU9ERS5FWEUpIC1aY3J0ZGxsIC1XYWxsICQoSU5DTFVERSkgLUwuIC1sZ2NjIC1vICRAICQoU1JDLkVYRSkgJChQWVRIT04uRVhFSU1QKSAkKExJQlMpICQoT1VUKXB5dGhvbi5kZWYKLQkkKEVYRU9QVCkgLWFxICQoUFlUSE9OLkVYRSkgLWgkKE5GSUxFUykKLQotJChQWVRIT05QTS5FWEUpOiAkKFNSQy5QTUVYRSkgJChQWVRIT04uRVhFSU1QKSAkKE9VVClweXRob25wbS5kZWYKLQkkKENDKSAtWm10ICQoTERNT0RFLkVYRSkgLVpjcnRkbGwgLVdhbGwgJChJTkNMVURFKSAtTC4gLWxnY2MgLW8gJEAgJChTUkMuUE1FWEUpICQoUFlUSE9OLkVYRUlNUCkgJChMSUJTKSAkKE9VVClweXRob25wbS5kZWYKLQkkKEVYRU9QVCkgLWFxICQoUFlUSE9OUE0uRVhFKSAtaCQoTkZJTEVTKQotCi0kKFBHRU4uRVhFKTogJChPQkouUEdFTikgJChPVVQpcGdlbi5kZWYKLQotIyBFeHBsaWNpdCBidWlsZGluZyBpbnN0cnVjdGlvbnMgZm9yIHRob3NlIGV4dGVybmFsIG1vZHVsZXMgdGhhdCByZXF1aXJlIAotIyBhd2t3YXJkIGhhbmRsaW5nIChkdWUgZS5nLiB0byBub24tc3RkIG5hbWluZywgb3IgbXVsdGlwbGUgc291cmNlIGZpbGVzKQotIyAtIHN0YW5kYXJkIG1vZHVsZXMKLQotX3NvY2tldCQoTU9EVUxFLkVYVCk6ICQoT1VUKXNvY2tldG1vZHVsZSRPICQoT1VUKV9zb2NrZXRfbS5kZWYgJChQWVRIT04uSU1QTElCKQotCSQoTEQpICQoTERGTEFHUy5ETEwpIC1vICRAICQoXl4pICQoTF4pICQoTElCUykKLQotIyBfdGVzdGNhcGkgbmVlZHMgdG8gYmUgcmVuYW1lZCB0byBiZSB1c2VmdWwKLV90ZXN0Y2FwaSQoTU9EVUxFLkVYVCk6ICQoT1VUKV90ZXN0Y2FwaW1vZHVsZSRPICQoT1VUKV90ZXN0Y2FwaV9tLmRlZiAkKFBZVEhPTi5JTVBMSUIpCi0JJChMRCkgJChMREZMQUdTLkRMTCkgLW8gJEAgJCheXikgJChMXikgJChMSUJTKQotCi1fdGVzdGNhcCQoTU9EVUxFLkVYVCk6IF90ZXN0Y2FwaSQoTU9EVUxFLkVYVCkKLQljcCAkXiAkQAotCi0jIHVuaWNvZGVkYXRhIG5lZWRzIHRvIGJlIHJlbmFtZWQgdG8gYmUgdXNlZnVsCi11bmljb2RlZGF0YSQoTU9EVUxFLkVYVCk6ICQoT1VUKXVuaWNvZGVkYXRhJE8gJChPVVQpdW5pY29kZWRhdGFfbS5kZWYgJChQWVRIT04uSU1QTElCKQotCSQoTEQpICQoTERGTEFHUy5ETEwpIC1vICRAICQoXl4pICQoTF4pICQoTElCUykgJChNT0RVTEVfTElCUykKLQotdW5pY29kZWQkKE1PRFVMRS5FWFQpOiB1bmljb2RlZGF0YSQoTU9EVUxFLkVYVCkKLQljcCAkXiAkQAotCi1jcnlwdCQoTU9EVUxFLkVYVCk6ICQoT1VUKWNyeXB0bW9kdWxlJE8gJChPVVQpY3J5cHRfbS5kZWYgJChQWVRIT04uSU1QTElCKQotCSQoTEQpICQoTERGTEFHUy5ETEwpIC1vICRAICQoXl4pICQoTF4pIC1sdWZjICQoTElCUykKLQotIyBUaGUgX2N1cnNlc19wYW5lbCBtb2R1bGUgcmVxdWlyZXMgYSBjb3VwbGUgb2YgbmN1cnNlcyBsaWJyYXJ5IGVudHJ5Ci0jIHBvaW50cywgd2hpY2ggYXJlIGJlc3QgZXhwb3NlZCBhcyBleHBvcnRzIGZyb20gdGhlIF9jdXJzZXMgbW9kdWxlIERMTAotJChPVVQpX2N1cnNlc19tLmRlZjoKLQlAZWNobyBDcmVhdGluZyAuREVGIGZpbGU6ICRACi0JQGVjaG8gTElCUkFSWSAkKG5vdGRpciAkKikgSU5JVElOU1RBTkNFIFRFUk1JTlNUQU5DRSA+JEAKLQlAZWNobyBERVNDUklQVElPTiAkKERRVU9URSkkKERFU0NSSVBUSU9OLiQobm90ZGlyICQqKSQoTU9ETElCLkVYVCkpJChEUVVPVEUpID4+JEAKLQlAZWNobyBEQVRBIE1VTFRJUExFIE5PTlNIQVJFRCA+PiRACi0JQGVjaG8gRVhQT1JUUyA+PiRACi0JQGVjaG8gCWluaXRfY3Vyc2VzID4+JEAKLQlAZWNobyAJd25vdXRyZWZyZXNoID4+JEAKLQlAZWNobyAJX25jX3BhbmVsaG9vayA+PiRACi0JQGVjaG8gCWlzX2xpbmV0b3VjaGVkID4+JEAKLQlAZWNobyAJbXZ3aW4gPj4kQAotCUBlY2hvIAlzdGRzY3IgPj4kQAotCUBlY2hvIAl3dG91Y2hsbiA+PiRACi0KLSQoT1VUKV9jdXJzZXNfcGFuZWxfbS5kZWY6Ci0JQGVjaG8gQ3JlYXRpbmcgLkRFRiBmaWxlOiAkQAotCUBlY2hvIExJQlJBUlkgJChub3RkaXIgJCopIElOSVRJTlNUQU5DRSBURVJNSU5TVEFOQ0UgPiRACi0JQGVjaG8gREVTQ1JJUFRJT04gJChEUVVPVEUpUHl0aG9uIHN0YW5kYXJkIG1vZHVsZSAkKG5vdGRpciAkKikkKERRVU9URSkgPj4kQAotCUBlY2hvIERBVEEgTVVMVElQTEUgTk9OU0hBUkVEID4+JEAKLQlAZWNobyBJTVBPUlRTID4+JEAKLQlAZWNobyAJX2N1cnNlcy53bm91dHJlZnJlc2ggPj4kQAotCUBlY2hvIAlfY3Vyc2VzLl9uY19wYW5lbGhvb2sgPj4kQAotCUBlY2hvIAlfY3Vyc2VzLmlzX2xpbmV0b3VjaGVkID4+JEAKLQlAZWNobyAJX2N1cnNlcy5tdndpbiA+PiRACi0JQGVjaG8gCV9jdXJzZXMuc3Rkc2NyID4+JEAKLQlAZWNobyAJX2N1cnNlcy53dG91Y2hsbiA+PiRACi0JQGVjaG8gRVhQT1JUUyA+PiRACi0JQGVjaG8gCWluaXRfY3Vyc2VzX3BhbmVsID4+JEAKLQotX2N1cnNlcyQoTU9ETElCLkVYVCk6ICQoT1VUKV9jdXJzZXNtb2R1bGUkTyAkKE9VVClfY3Vyc2VzX20uZGVmICQoUFlUSE9OLklNUExJQikKLQkkKExEKSAkKExERkxBR1MuRExMKSAtbyAkQCAkKF5eKSAkKExeKSAkKExJQlMpIC1sbmN1cnNlcwotCi0jIGN1cnNlc19wYW5lbCBuZWVkcyB0byBiZSByZW5hbWVkIHRvIGJlIHVzZWZ1bAotX2N1cnNlc19wYW5lbCQoTU9EVUxFLkVYVCk6ICQoT1VUKV9jdXJzZXNfcGFuZWwkTyAkKE9VVClfY3Vyc2VzX3BhbmVsX20uZGVmICQoUFlUSE9OLklNUExJQikKLQkkKExEKSAkKExERkxBR1MuRExMKSAtbyAkQCAkKF5eKSAkKExeKSAkKExJQlMpIC1scGFuZWwKLQotX2N1cnNlc18kKE1PRFVMRS5FWFQpOiBfY3Vyc2VzX3BhbmVsJChNT0RVTEUuRVhUKQotCWNwICReICRACi0KLV9kYm0kKE1PRFVMRS5FWFQpOiAkKE9VVClfZGJtbW9kdWxlJE8gJChPVVQpZGJtX20uZGVmICQoUFlUSE9OLklNUExJQikKLQkkKExEKSAkKExERkxBR1MuRExMKSAtbyAkQCAkKF5eKSAkKExeKSAkKExJQlMpIC1sZ2RibQotCi1fZ2RibSQoTU9EVUxFLkVYVCk6ICQoT1VUKV9nZGJtbW9kdWxlJE8gJChPVVQpZ2RibV9tLmRlZiAkKFBZVEhPTi5JTVBMSUIpCi0JJChMRCkgJChMREZMQUdTLkRMTCkgLW8gJEAgJCheXikgJChMXikgJChMSUJTKSAtbGdkYm0KLQotCi0jIEV4cGF0IGlzIG5vdyBkaXN0cmlidXRlZCB3aXRoIFB5dGhvbiwgc28gdXNlIHRoZSBpbmNsdWRlZCB2ZXJzaW9uCi0kKE9VVClweWV4cGF0JE86CS4uLy4uL01vZHVsZXMvcHlleHBhdC5jCi0JJChDQykgJChDRkxBR1MpICQoRVhQQVQuSU5DKSAtYyAtbyAkQCAkXgotJChPVVQpeG1scGFyc2UkTzoJLi4vLi4vTW9kdWxlcy9leHBhdC94bWxwYXJzZS5jCi0JJChDQykgJChDRkxBR1MpICQoRVhQQVQuSU5DKSAkKEVYUEFULkRFRikgLWMgLW8gJEAgJF4KLSQoT1VUKXhtbHJvbGUkTzoJLi4vLi4vTW9kdWxlcy9leHBhdC94bWxyb2xlLmMKLQkkKENDKSAkKENGTEFHUykgJChFWFBBVC5JTkMpICQoRVhQQVQuREVGKSAtYyAtbyAkQCAkXgotJChPVVQpeG1sdG9rJE86CS4uLy4uL01vZHVsZXMvZXhwYXQveG1sdG9rLmMKLQkkKENDKSAkKENGTEFHUykgJChFWFBBVC5JTkMpICQoRVhQQVQuREVGKSAtYyAtbyAkQCAkXgotcHlleHBhdCQoTU9EVUxFLkVYVCk6ICQoT1VUKXB5ZXhwYXQkTyAkKE9VVCl4bWxwYXJzZSRPICQoT1VUKXhtbHJvbGUkTyBcCi0JCSQoT1VUKXhtbHRvayRPICQoT1VUKXB5ZXhwYXRfbS5kZWYgJChQWVRIT04uSU1QTElCKQotCSQoTEQpICQoTERGTEFHUy5ETEwpIC1vICRAICQoXl4pICQoTF4pICQoTElCUykKLQotcmVhZGxpbmUkKE1PRFVMRS5FWFQpOiAkKE9VVClyZWFkbGluZSRPICQoT1VUKXJlYWRsaW5lX20uZGVmICQoUFlUSE9OLklNUExJQikKLQkkKExEKSAkKExERkxBR1MuRExMKSAtbyAkQCAkKF5eKSAkKExeKSAkKExJQlMpIC1scmVhZGxpbmUgLWxuY3Vyc2VzCi0KLSNfdGtpbnRlciQoTU9EVUxFLkVYVCk6ICQoT1VUKV90a2ludGVyJE8gJChPVVQpdGNsTm90aWZ5JE8gJChPVVQpdGthcHBpbml0JE8KLV90a2ludGVyJChNT0RVTEUuRVhUKTogJChPVVQpX3RraW50ZXIkTyAkKE9VVCl0Y2xOb3RpZnkkTyBcCi0JCSQoT1VUKV90a2ludGVyX20uZGVmICQoUFlUSE9OLklNUExJQikKLQkkKExEKSAkKExERkxBR1MuRExMKSAtbyAkQCAkKF5eKSAkKExeKSAkKExJQlMpICQoVEtfTElCUykKLQotemxpYiQoTU9EVUxFLkVYVCk6ICQoT1VUKXpsaWJtb2R1bGUkTyAkKE9VVCl6bGliX20uZGVmICQoUFlUSE9OLklNUExJQikKLQkkKExEKSAkKExERkxBR1MuRExMKSAtbyAkQCAkKF5eKSAkKExeKSAkKExJQlMpIC1segotCi1iejIkKE1PRFVMRS5FWFQpOiAkKE9VVCliejJtb2R1bGUkTyAkKE9VVCliejJfbS5kZWYgJChQWVRIT04uSU1QTElCKQotCSQoTEQpICQoTERGTEFHUy5ETEwpIC1vICRAICQoXl4pICQoTF4pICQoTElCUykgLWxiejIKLQotX3NzbCQoTU9EVUxFLkVYVCk6ICQoT1VUKV9zc2wkTyAkKE9VVClfc3NsX20uZGVmICQoUFlUSE9OLklNUExJQikKLQkkKExEKSAkKExERkxBR1MuRExMKSAtbyAkQCAkKF5eKSAkKExeKSAkKExJQlMpIC1sc3NsIC1sY3J5cHRvCi0KLSMgdGhlIHRlc3QgdGFyZ2V0Ci10ZXN0OgotCS1maW5kIC4uLy4uL0xpYiAtbmFtZSAiKi5weVtjb10iIC1leGVjIHJtIHt9ICI7IgotCS0uL3B5dGhvbiAtRSAuLi8uLi9saWIvdGVzdC9yZWdydGVzdC5weSAtbCAtdSAibmV0d29yayIKLQkuL3B5dGhvbiAtRSAuLi8uLi9saWIvdGVzdC9yZWdydGVzdC5weSAtbCAtdSAibmV0d29yayIKLQotLWluY2x1ZGUgJChPVVRCQVNFKXB5dGhvbi5kZXAKZGlmZiAtLWdpdCBhL1BDL29zMmVteC9SRUFETUUub3MyZW14IGIvUEMvb3MyZW14L1JFQURNRS5vczJlbXgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxY2Y2ZGYuLjAwMDAwMDAKLS0tIGEvUEMvb3MyZW14L1JFQURNRS5vczJlbXgKKysrIC9kZXYvbnVsbApAQCAtMSw2NjMgKzAsMCBAQAotVGhpcyBpcyBhIHBvcnQgb2YgUHl0aG9uIDIuNiB0byBPUy8yIHVzaW5nIHRoZSBFTVggZGV2ZWxvcG1lbnQgdG9vbHMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotV2hhdCdzIG5ldyBzaW5jZSB0aGUgcHJldmlvdXMgcmVsZWFzZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1Bbm90aGVyIGRheSwgYW5vdGhlciB2ZXJzaW9uLi4uCi0KLQotTGljZW5zZXMgYW5kIGluZm8gYWJvdXQgUHl0aG9uIGFuZCBFTVgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVBsZWFzZSByZWFkIHRoZSBmaWxlIFJFQURNRS5QeXRob24tMi42IGluY2x1ZGVkIGluIHRoaXMgcGFja2FnZSBmb3IgCi1pbmZvcm1hdGlvbiBhYm91dCBQeXRob24gMi42LiAgVGhpcyBmaWxlIGlzIHRoZSBSRUFETUUgZmlsZSBmcm9tIHRoZSAKLVB5dGhvbiAyLjYgc291cmNlIGRpc3RyaWJ1dGlvbiBhdmFpbGFibGUgdmlhIGh0dHA6Ly93d3cucHl0aG9uLm9yZy8gCi1hbmQgaXRzIG1pcnJvcnMuICBUaGUgZmlsZSBMSUNFTkNFLlB5dGhvbi0yLjYgaXMgdGhlIHRleHQgb2YgdGhlIExpY2VuY2UgCi1mcm9tIHRoZSBQeXRob24gMi42IHNvdXJjZSBkaXN0cmlidXRpb24uCi0KLU5vdGUgdGhhdCB0aGUgRU1YIHBhY2thZ2UgdGhhdCB0aGlzIHBhY2thZ2UgZGVwZW5kcyBvbiBpcyByZWxlYXNlZCB1bmRlciAKLXRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5jZS4gIFBsZWFzZSByZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiAKLWFjY29tcGFueWluZyB0aGUgRU1YIFJ1bnRpbWUgbGlicmFyaWVzIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSAKLWltcGxpY2F0aW9ucyBvZiB0aGlzLiAgQSBjb3B5IG9mIHZlcnNpb24gMiBvZiB0aGUgR1BMIGlzIGluY2x1ZGVkIGFzIHRoZSAKLWZpbGUgQ09QWUlORy5ncGwyLgotCi1SZWFkbGluZSBhbmQgR0RCTSBhcmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2VuY2UuICBJIHRoaW5rIAotRWJlcmhhcmQgTWF0dGVzJyBwb3J0aW5nIGNoYW5nZXMgdG8gQlNEIERCIHYxLjg1IGFyZSBhbHNvIEdQTCdlZCAoQlNEIERCIAotaXRzZWxmIGlzIEJTRCBMaWNlbmNlZCkuICBuY3Vyc2VzIGFuZCBleHBhdCBhcHBlYXIgdG8gYmUgY292ZXJlZCBieSBNSVQgCi1zdHlsZSBsaWNlbmNlcyAtIHBsZWFzZSByZWZlciB0byB0aGUgc291cmNlIGRpc3RyaWJ1dGlvbnMgZm9yIG1vcmUgZGV0YWlsLiAgCi16bGliIGlzIGRpc3RyaWJ1dGFibGUgdW5kZXIgYSB2ZXJ5IGZyZWUgbGljZW5zZS4gIEdOVSBVRkMgaXMgdW5kZXIgdGhlIAotR05VIExHUEwgKHNlZSBmaWxlIENPUFlJTkcubGliKS4KLQotTXkgcGF0Y2hlcyB0byB0aGUgUHl0aG9uLTIueCBzb3VyY2UgZGlzdHJpYnV0aW9ucywgYW5kIGFueSBvdGhlciBwYWNrYWdlcyAKLXVzZWQgaW4gdGhpcyBwb3J0LCBhcmUgcGxhY2VkIGluIHRoZSBwdWJsaWMgZG9tYWluLgotCi1UaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZCB3YXJyYW50eS4KLUluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvciBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMgYXJpc2luZyBmcm9tIHRoZSAKLXVzZSBvZiB0aGUgc29mdHdhcmUuCi0KLUkgZG8gaG9wZSBob3dldmVyIHRoYXQgaXQgcHJvdmVzIHVzZWZ1bCB0byBzb21lb25lLgotCi0KLU90aGVyIHBvcnRzCi0tLS0tLS0tLS0tLQotCi1UaGVyZSBoYXZlIGJlZW4gcG9ydHMgb2YgcHJldmlvdXMgdmVyc2lvbnMgb2YgUHl0aG9uIHRvIE9TLzIuCi0KLVRoZSBiZXN0IGtub3duIHdvdWxkIGJlIHRoYXQgYnkgSmVmZiBSdXNoLCBtb3N0IHJlY2VudGx5IG9mIHZlcnNpb24gCi0xLjUuMi4gIEplZmYgdXNlZCBJQk0ncyBWaXN1YWwgQWdlIEMrKyAodjMpIGZvciBoaXMgcG9ydHMsIGFuZCBoaXMgCi1wYXRjaGVzIGhhdmUgYmVlbiBpbmNsdWRlZCBpbiB0aGUgUHl0aG9uIDIuNiBzb3VyY2UgZGlzdHJpYnV0aW9uLgotCi1BbmR5IFphYm9sb3RueSBpbXBsZW1lbnRlZCBhIHBvcnQgb2YgUHl0aG9uIHYxLjUuMiB1c2luZyB0aGUgRU1YIAotZGV2ZWxvcG1lbnQgdG9vbHMuICBIaXMgcGF0Y2hlcyBhZ2FpbnN0IHRoZSBQeXRob24gdjEuNS4yIHNvdXJjZSAKLWRpc3RyaWJ1dGlvbiBoYXZlIGJlY29tZSB0aGUgY29yZSBvZiB0aGlzIHBvcnQsIGFuZCB3aXRob3V0IGhpcyBlZmZvcnRzIAotdGhpcyBwb3J0IHdvdWxkbid0IGV4aXN0LiAgQW5keSdzIHBvcnQgYWxzbyBhcHBlYXJzIHRvIGhhdmUgYmVlbiAKLWNvbXBpbGVkIHdpdGggaGlzIHBvcnQgb2YgZ2NjIDIuOTUuMiB0byBFTVgsIHdoaWNoIEkgaGF2ZSBidXQgaGF2ZSAKLWNob3NlbiBub3QgdG8gdXNlIGZvciB0aGUgYmluYXJ5IGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHBvcnQgKHNlZSBpdGVtIDE2IAotb2YgdGhlICJZT1UgSEFWRSBCRUVOIFdBUk5FRCIgc2VjdGlvbiBiZWxvdykuCi0KLUl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgdGhlc2UgZWFybGllciBwb3J0cyBzdGlsbCB1c2FibGUgYWZ0ZXIgaW5zdGFsbGluZyAKLXRoaXMgcG9ydCAtIHNlZSB0aGUgUkVBRE1FLm9zMmVteC5tdWx0aXBsZV92ZXJzaW9ucyBmaWxlLCBjb250cmlidXRlZCBieQotRHIgRGF2aWQgTWVydHosIGZvciBhIHN1Z2dlc3RlZCBhcHByb2FjaCB0byBhY2hpZXZpbmcgdGhpcy4KLQotCi1Tb2Z0d2FyZSByZXF1aXJlbWVudHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGlzIHBhY2thZ2UgcmVxdWlyZXMgdGhlIEVNWCBSdW50aW1lIHBhY2thZ2UsIGF2YWlsYWJsZSBmcm9tIHRoZSAKLUhvYmJlcyAoaHR0cDovL2hvYmJlcy5ubXN1LmVkdS8pIGFuZCBMRU8gKGh0dHA6Ly9hcmNoaXYubGVvLm9yZy8pIAotYXJjaGl2ZXMgb2YgT1MvMiBzb2Z0d2FyZS4gIEkgaGF2ZSB1c2VkIEVNWCB2ZXJzaW9uIDAuOWQgZml4MDQgaW4gCi1kZXZlbG9waW5nIHRoaXMgcG9ydC4KLQotTXkgZGV2ZWxvcG1lbnQgc3lzdGVtIGlzIHJ1bm5pbmcgT1MvMiB2NCB3aXRoIGZpeHBhY2sgMTIuCi0KLTNyZCBwYXJ0eSBzb2Z0d2FyZSB3aGljaCBoYXMgYmVlbiBsaW5rZWQgaW50byBkeW5hbWljYWxseSBsb2FkZWQgbW9kdWxlczoKLS0gbmN1cnNlcyAgICAgIChzZWUgaHR0cDovL2RpY2tleS5oaXMuY29tLyBmb3IgbW9yZSBpbmZvLCB2NS4yKQotLSBHTlUgUmVhZGxpbmUgKEthaSBVd2UgUm9tbWVsJ3MgcG9ydCBhdmFpbGFibGUgZnJvbSBIb2JiZXMgb3IgTEVPLCB2Mi4xKQotLSBHTlUgR0RCTSAgICAgKEthaSBVd2UgUm9tbWVsJ3MgcG9ydCBhdmFpbGFibGUgZnJvbSBIb2JiZXMgb3IgTEVPLCB2MS43LjMpCi0tIHpsaWIgICAgICAgICAoZGVyaXZlZCBmcm9tIEh1bmctQ2hpIENodSdzIHBvcnQgb2YgdjEuMS4zLCB2MS4xLjQpCi0tIGV4cGF0ICAgICAgICAoZGlzdHJpYnV0ZWQgd2l0aCBQeXRob24sIHYxLjk1LjYpCi0tIEdOVSBVRkMgICAgICAoS2FpIFV3ZSBSb21tZWwncyBwb3J0IGF2YWlsYWJsZSBmcm9tIExFTywgdjIuMC40KQotCi0KLUFib3V0IHRoaXMgcG9ydAotLS0tLS0tLS0tLS0tLS0tCi0KLUkgaGF2ZSBhdHRlbXB0ZWQgdG8gbWFrZSB0aGlzIHBvcnQgYXMgY29tcGxldGUgYW5kIGZ1bmN0aW9uYWwgYXMgSSBjYW4sIAotbm90d2l0aHN0YW5kaW5nIHRoZSBpc3N1ZXMgaW4gdGhlICJZT1UgSEFWRSBCRUVOIFdBUk5FRCIgc2VjdGlvbiBiZWxvdy4KLQotQ29yZSBjb21wb25lbnRzOgotCi1QeXRob24uZXhlIGlzIGxpbmtlZCBhcyBhbiBhLm91dCBleGVjdXRhYmxlLCBpZSB1c2luZyBFTVggbWV0aG9kIEUxIAotdG8gY29tcGlsZSAmIGxpbmsgdGhlIGV4ZWN1dGFibGUuICBUaGlzIGlzIHNvIHRoYXQgZm9yaygpIHdvcmtzIChzZWUgCi0iWU9VIEhBVkUgQkVFTiBXQVJORUQiIGl0ZW0gMSkuCi0KLVB5dGhvbjI2LmRsbCBpcyBjcmVhdGVkIGFzIGEgbm9ybWFsIE9NRiBETEwsIHdpdGggYW4gT01GIGltcG9ydCAKLWxpYnJhcnkgYW5kIG1vZHVsZSBkZWZpbml0aW9uIGZpbGUuICBUaGVyZSBpcyBhbHNvIGFuIGEub3V0ICguYSkgaW1wb3J0IAotbGlicmFyeSB0byBzdXBwb3J0IGxpbmtpbmcgdGhlIERMTCB0byBhLm91dCBleGVjdXRhYmxlcy4gIFRoZSBETEwgCi1yZXF1aXJlcyB0aGUgRU1YIHJ1bnRpbWUgRExMcy4KLQotVGhpcyBwb3J0IGhhcyBiZWVuIGJ1aWx0IHdpdGggY29tcGxldGUgc3VwcG9ydCBmb3IgbXVsdGl0aHJlYWRpbmcuCi0KLU1vZHVsZXM6Ci0KLVdpdGggdGhlIGV4Y2VwdGlvbiBvZiBtb2R1bGVzIHRoYXQgaGF2ZSBhIHNpZ25pZmljYW50IGNvZGUgc2l6ZSwgb3IgYXJlIAotbm90IHJlY29tbWVuZGVkIG9yIGRlc2lyZWQgZm9yIG5vcm1hbCB1c2UsIHRoZSBzdGFuZGFyZCBtb2R1bGVzIGFyZSBub3cgCi1idWlsdCBpbnRvIHRoZSBjb3JlIERMTCByYXRoZXIgdGhhbiBjb25maWd1cmVkIGFzIGR5bmFtaWNhbGx5IGxvYWRhYmxlIAotbW9kdWxlcy4gIFRoaXMgaXMgZm9yIGJvdGggcmVhc29ucyBvZiBwZXJmb3JtYW5jZSAoc3RhcnR1cCB0aW1lKSBhbmQgCi1tZW1vcnkgdXNlIChsb3RzIG9mIHNtYWxsIERMTHMgZnJhZ21lbnQgdGhlIGFkZHJlc3Mgc3BhY2UpLgotCi1JIGhhdmVuJ3QgeWV0IGNoYW5nZWQgdGhlIGJ1aWxkaW5nIG9mIFB5dGhvbidzIGR5bmFtaWNhbGx5IGxvYWRhYmxlIAotbW9kdWxlcyBvdmVyIHRvIHVzaW5nIHRoZSBEaXN0VXRpbHMuCi0KLVNlZSAiWU9VIEhBVkUgQkVFTiBXQVJORUQiIGl0ZW0gMyBmb3Igbm90ZXMgYWJvdXQgdGhlIGZjbnRsIG1vZHVsZSwgYW5kIAotIllPVSBIQVZFIEJFRU4gV0FSTkVEIiBpdGVtIDEwIGZvciBub3RlcyBhYm91dCB0aGUgcHdkIGFuZCBncnAgbW9kdWxlcy4KLQotVGhpcyBwb3J0IHN1cHBvcnRzIGNhc2Ugc2Vuc2l0aXZlIG1vZHVsZSBpbXBvcnQgc2VtYW50aWNzLCBtYXRjaGluZyAKLXRoZSBXaW5kb3dzIHJlbGVhc2UuICBUaGlzIGNhbiBiZSBkZWFjdGl2YXRlZCBieSBzZXR0aW5nIHRoZSBQWVRIT05DQVNFT0sgCi1lbnZpcm9ubWVudCB2YXJpYWJsZSAodGhlIHZhbHVlIGRvZXNuJ3QgbWF0dGVyKSAtIHNlZSAiWU9VIEhBVkUgQkVFTiBXQVJORUQiIAotaXRlbSAxMi4KLQotT3B0aW9uYWwgbW9kdWxlczoKLQotV2hlcmUgSSd2ZSBiZWVuIGFibGUgdG8gbG9jYXRlIHRoZSByZXF1aXJlZCAzcmQgcGFydHkgcGFja2FnZXMgYWxyZWFkeSAKLXBvcnRlZCB0byBPUy8yLCBJJ3ZlIGJ1aWx0IGFuZCBpbmNsdWRlZCB0aGVtLgotCi1UaGVzZSBpbmNsdWRlIG5jdXJzZXMgKF9jdXJzZXMsIF9jdXJzZXNfcGFuZWwpLAotR05VIEdEQk0gKGdkYm0sIGRibSksIHpsaWIgKHpsaWIpLCBHTlUgUmVhZGxpbmUgKHJlYWRsaW5lKSwgYW5kIEdOVSBVRkMgCi0oY3J5cHQpLgotCi1FeHBhdCBpcyBub3cgaW5jbHVkZWQgaW4gdGhlIFB5dGhvbiByZWxlYXNlIHNvdXJjZWJhbGwsIGFuZCB0aGUgcHlleHBhdCAKLW1vZHVsZSBpcyBhbHdheXMgYnVpbHQuCi0KLUkgaGF2ZSBidWlsdCB0aGVzZSBtb2R1bGVzIHN0YXRpY2FsbHkgbGlua2VkIGFnYWluc3QgdGhlIDNyZCBwYXJ0eSAKLWxpYnJhcmllcy4gIFVuZm9ydHVuYXRlbHkgbXkgYXR0ZW1wdHMgdG8gdXNlIHRoZSBkbGwgdmVyc2lvbiBvZiBHTlUgCi1yZWFkbGluZSBoYXZlIGJlZW4gYSBkaXNtYWwgZmFpbHVyZSwgaW4gdGhhdCB3aGVuIHRoZSBkeW5hbWljYWxseSAKLWxpbmtlZCByZWFkbGluZSBtb2R1bGUgaXMgYWN0aXZlIG90aGVyIG1vZHVsZXMgaW1tZWRpYXRlbHkgcHJvdm9rZSBhIAotY29yZSBkdW1wIHdoZW4gaW1wb3J0ZWQuCi0KLU9ubHkgdGhlIEJTRCBEQiBwYWNrYWdlIChwYXJ0IG9mIHRoZSBCU0QgcGFja2FnZSBkaXN0cmlidXRlZCB3aXRoIEVNWCkgCi1uZWVkcyBzb3VyY2UgbW9kaWZpY2F0aW9ucyB0byBiZSB1c2VkIGZvciB0aGlzIHBvcnQsIHBlcnRhaW5pbmcgdG8gdXNlIAotb2YgZXJybm8gd2l0aCBtdWx0aXRocmVhZGluZy4KLQotVGhlIG90aGVyIHBhY2thZ2VzLCBleGNlcHQgZm9yIG5jdXJzZXMgYW5kIHpsaWIsIG5lZWRlZCBNYWtlZmlsZSBjaGFuZ2VzIAotZm9yIG11bHRpdGhyZWFkaW5nIHN1cHBvcnQgYnV0IG5vIHNvdXJjZSBjaGFuZ2VzLgotCi1UaGUgX2N1cnNlc19wYW5lbCBtb2R1bGUgaXMgYSBwb3RlbnRpYWwgcHJvYmxlbSAtIHNlZSAiWU9VIEhBVkUgQkVFTiAKLVdBUk5FRCIgaXRlbSAxMy4KLQotVXBzdHJlYW0gc291cmNlIHBhdGNoZXM6Ci0KLU5vIHVwZGF0ZXMgdG8gdGhlIFB5dGhvbiAyLjYgcmVsZWFzZSBoYXZlIGJlY29tZSBhdmFpbGFibGUuCi0KLUxpYnJhcnkgYW5kIG90aGVyIGRpc3RyaWJ1dGVkIFB5dGhvbiBjb2RlOgotCi1UaGUgUHl0aG9uIHN0YW5kYXJkIGxpYnJhcnkgbGl2ZXMgaW4gdGhlIExpYiBkaXJlY3RvcnkuICBBbGwgdGhlIHN0YW5kYXJkIAotbGlicmFyeSBjb2RlIGluY2x1ZGVkIHdpdGggdGhlIFB5dGhvbiAyLjYgc291cmNlIGRpc3RyaWJ1dGlvbiBpcyBpbmNsdWRlZCAKLWluIHRoZSBiaW5hcnkgYXJjaGl2ZSwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSBkb3MtOHgzIGFuZCB0a2ludGVyIAotc3ViZGlyZWN0b3JpZXMgd2hpY2ggaGF2ZSBiZWVuIG9taXR0ZWQgdG8gcmVkdWNlIHRoZSBzaXplIG9mIHRoZSBiaW5hcnkgCi1hcmNoaXZlIC0gdGhlIGRvcy04eDMgY29tcG9uZW50cyBhcmUgdW5uZWNlc3NhcnkgZHVwbGljYXRlcyBhbmQgVGtpbnRlciAKLWlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBwb3J0ICh5ZXQpLiAgQWxsIHRoZSBwbGF0LSogc3ViZGlyZWN0b3JpZXMgaW4gdGhlIAotc291cmNlIGRpc3RyaWJ1dGlvbiBoYXZlIGFsc28gYmVlbiBvbWl0dGVkLCBleGNlcHQgZm9yIHRoZSBwbGF0LW9zMmVteCAKLXN1YmRpcmVjdG9yeS4KLQotVGhlIFRvb2xzIGFuZCBEZW1vIGRpcmVjdG9yaWVzIGNvbnRhaW4gYSBjb2xsZWN0aW9uIG9mIFB5dGhvbiBzY3JpcHRzLiAgCi1UbyByZWR1Y2UgdGhlIHNpemUgb2YgdGhlIGJpbmFyeSBhcmNoaXZlLCB0aGUgRGVtby9zZ2ksIERlbW8vVGl4LCAKLURlbW8vdGtpbnRlciwgVG9vbHMvYXVkaW9weSBhbmQgVG9vbHMvSURMRSBzdWJkaXJlY3RvcmllcyBoYXZlIGJlZW4gCi1vbWl0dGVkIGFzIG5vdCBiZWluZyBzdXBwb3J0ZWQgYnkgdGhpcyBwb3J0LiAgVGhlIE1pc2MgZGlyZWN0b3J5IGhhcyAKLWFsc28gYmVlbiBvbWl0dGVkLgotCi1BbGwgc3ViZGlyZWN0b3JpZXMgb21pdHRlZCBmcm9tIHRoZSBiaW5hcnkgYXJjaGl2ZSBjYW4gYmUgcmVjb25zdGl0dXRlZCAKLWZyb20gdGhlIFB5dGhvbiAyLjYgc291cmNlIGRpc3RyaWJ1dGlvbiwgaWYgZGVzaXJlZC4KLQotU3VwcG9ydCBmb3IgYnVpbGRpbmcgUHl0aG9uIGV4dGVuc2lvbnM6Ci0KLVRoZSBDb25maWcgc3ViZGlyZWN0b3J5IGNvbnRhaW5zIHRoZSBmaWxlcyBkZXNjcmliaW5nIHRoZSBjb25maWd1cmF0aW9uIAotb2YgdGhlIGludGVycHJldGVyIGFuZCB0aGUgTWFrZWZpbGUsIGltcG9ydCBsaWJyYXJpZXMgZm9yIHRoZSBQeXRob24gRExMLCAKLWFuZCB0aGUgbW9kdWxlIGRlZmluaXRpb24gZmlsZSB1c2VkIHRvIGNyZWF0ZSB0aGUgUHl0aG9uIERMTC4gIFRoZSAKLUluY2x1ZGUgc3ViZGlyZWN0b3J5IGNvbnRhaW5zIGFsbCB0aGUgc3RhbmRhcmQgUHl0aG9uIGhlYWRlciBmaWxlcyAKLW5lZWRlZCBmb3IgYnVpbGRpbmcgZXh0ZW5zaW9ucy4KLQotQXMgSSBkb24ndCBoYXZlIHRoZSBWaXN1YWwgQWdlIEMrKyBjb21waWxlciwgSSd2ZSBtYWRlIG5vIGF0dGVtcHQgdG8gCi1oYXZlIHRoaXMgcG9ydCBzdXBwb3J0IGV4dGVuc2lvbnMgYnVpbHQgd2l0aCB0aGF0IGNvbXBpbGVyLgotCi0KLVBhY2thZ2luZwotLS0tLS0tLS0tCi0KLVRoaXMgcG9ydCBpcyBwYWNrYWdlZCBhcyBmb2xsb3dzOgotLSBweXRob24tMi42LW9zMmVteC1iaW4tMDM/Pz8/LnppcCAgKGJpbmFyaWVzLCBsaWJyYXJ5IG1vZHVsZXMpCi0tIHB5dGhvbi0yLjYtb3MyZW14LXNyYy0wMz8/Pz8gICAgICAocGF0Y2hlcyttYWtlZmlsZXMgZm9yIG5vbi1QeXRob24gY29kZSkKLQotQXMgYWxsIHRoZSBQeXRob24gc3BlY2lmaWMgcGF0Y2hlcyBmb3IgdGhlIHBvcnQgYXJlIG5vdyBwYXJ0IG9mIHRoZSAKLVB5dGhvbiByZWxlYXNlIHRhcmJhbGwsIG9ubHkgdGhlIHBhdGNoZXMgYW5kIG1ha2VmaWxlcyBpbnZvbHZlZCBpbiAKLWJ1aWxkaW5nIGV4dGVybmFsIGxpYnJhcmllcyBmb3Igb3B0aW9uYWwgZXh0ZW5zaW9ucyBhcmUgaW5jbHVkZWQgaW4gCi10aGUgc291cmNlIGFyY2hpdmUuCi0KLURvY3VtZW50YXRpb24gZm9yIHRoZSBQeXRob24gbGFuZ3VhZ2UsIGFzIHdlbGwgYXMgdGhlIFB5dGhvbiAyLjYgCi1zb3VyY2UgZGlzdGlidXRpb24sIGNhbiBiZSBvYnRhaW5lZCBmcm9tIHRoZSBQeXRob24gd2Vic2l0ZSAKLShodHRwOi8vd3d3LnB5dGhvbi5vcmcvKSBvciB0aGUgUHl0aG9uIHByb2plY3QgcGFnZXMgYXQgU291cmNlZm9yZ2UgCi0oaHR0cDovL3NmLm5ldC9wcm9qZWN0cy9weXRob24vKS4KLQotCi1JbnN0YWxsYXRpb24KLS0tLS0tLS0tLS0tLQotCi1PYnRhaW4gYW5kIGluc3RhbGwsIGFzIHBlciB0aGUgaW5jbHVkZWQgaW5zdHJ1Y3Rpb25zLCB0aGUgRU1YIHJ1bnRpbWUgCi1wYWNrYWdlLgotCi1VbnBhY2sgdGhpcyBhcmNoaXZlLCBwcmVzZXJ2aW5nIHRoZSBzdWJkaXJlY3RvcmllcywgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IAotb2YgdGhlIGRyaXZlIHdoZXJlIHlvdSB3YW50IFB5dGhvbiB0byBsaXZlLgotCi1BZGQgdGhlIFB5dGhvbiBkaXJlY3RvcnkgKGVnIEM6XFB5dGhvbjI2KSB0byB0aGUgUEFUSCBhbmQgTElCUEFUSCAKLXZhcmlhYmxlcyBpbiBDT05GSUcuU1lTLgotCi1Zb3Ugc2hvdWxkIHRoZW4gc2V0IHRoZSBQWVRIT05IT01FIGFuZCBQWVRIT05QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlcyAKLWluIENPTkZJRy5TWVMuCi0KLVBZVEhPTkhPTUUgc2hvdWxkIGJlIHNldCB0byBQeXRob24ncyB0b3AgbGV2ZWwgZGlyZWN0b3J5LiAgUFlUSE9OUEFUSCAKLXNob3VsZCBiZSBzZXQgdG8gdGhlIHNlbWljb2xvbiBzZXBhcmF0ZWQgbGlzdCBvZiBwcmluY2lwYWwgUHl0aG9uIGxpYnJhcnkgCi1kaXJlY3Rvcmllcy4KLUkgdXNlOgotICBTRVQgUFlUSE9OSE9NRT1GOi9QeXRob24yNgotICBTRVQgUFlUSE9OUEFUSD1GOi9QeXRob24yNi9MaWI7RjovUHl0aG9uMjYvTGliL3BsYXQtb3MyZW14OwotICAgICAgICAgICAgICAgICBGOi9QeXRob24yNi9MaWIvbGliLWR5bmxvYWQ7RjovUHl0aG9uMjYvTGliL3NpdGUtcGFja2FnZXMKLQotTk9URSE6ICB0aGUgUFlUSE9OUEFUSCBzZXR0aW5nIGFib3ZlIGlzIGxpbmV3cmFwcGVkIGZvciB0aGlzIGRvY3VtZW50IC0gaXQgCi1zaG91bGQgYWxsIGJlIG9uIG9uZSBsaW5lIGluIENPTkZJRy5TWVMhCi0KLUlmIHlvdSB3aXNoIHRvIHVzZSB0aGUgY3Vyc2VzIG1vZHVsZSwgeW91IHNob3VsZCBzZXQgdGhlIFRFUk0gYW5kIFRFUk1JTkZPIAotZW52aXJvbm1lbnQgdmFyaWFibGVzIGFwcHJvcHJpYXRlbHkuCi0KLUlmIHlvdSBkb24ndCBhbHJlYWR5IGhhdmUgbmN1cnNlcyBpbnN0YWxsZWQsIEkgaGF2ZSBpbmNsdWRlZCBhIGNvcHkgb2YgdGhlIAotRU1YIHN1YnNldCBvZiB0aGUgVGVybWluZm8gZGF0YWJhc2UgaW5jbHVkZWQgd2l0aCB0aGUgbmN1cnNlcy01LjIgc291cmNlIAotZGlzdHJpYnV0aW9uLiAgVGhpcyBjYW4gYmUgdXNlZCBieSBzZXR0aW5nIHRoZSBURVJNSU5GTyBlbnZpcm9ubWVudCB2YXJpYWJsZSAKLXRvIHRoZSBwYXRoIG9mIHRoZSBUZXJtaW5mbyBzdWJkaXJlY3RvcnkgYmVsb3cgdGhlIFB5dGhvbiBob21lIGRpcmVjdG9yeS4KLU9uIG15IHN5c3RlbSB0aGlzIGxvb2tzIGxpa2U6Ci0gIFNFVCBURVJNSU5GTz1GOi9QeXRob24yNi9UZXJtaW5mbwotCi1Gb3IgdGhlIFRFUk0gZW52aXJvbm1lbnQgdmFyaWFibGUsIEkgd291bGQgdHJ5IG9uZSBvZiB0aGUgZm9sbG93aW5nOgotICBTRVQgVEVSTT1hbnNpCi0gIFNFVCBURVJNPW9zMgotICBTRVQgVEVSTT13aW5kb3cKLQotWW91IHdpbGwgaGF2ZSB0byByZWJvb3QgeW91ciBzeXN0ZW0gZm9yIHRoZXNlIGNoYW5nZXMgdG8gQ09ORklHLlNZUyB0byB0YWtlIAotZWZmZWN0LgotCi1JZiB5b3Ugd2lzaCB0byBjb21waWxlIGFsbCB0aGUgaW5jbHVkZWQgUHl0aG9uIGxpYnJhcnkgbW9kdWxlcyB0byBieXRlY29kZSwgCi15b3UgY2FuIGNoYW5nZSBpbnRvIHRoZSBQeXRob24gaG9tZSBkaXJlY3RvcnkgYW5kIHJ1biB0aGUgQ09NUElMRUFMTC5DTUQgCi1iYXRjaCBmaWxlLgotCi1Zb3UgY2FuIGV4ZWN1dGUgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgaW5jbHVkZWQgd2l0aCB0aGUgUHl0aG9uIDIuNiBzb3VyY2UgCi1kaXN0cmlidXRpb24gYnkgY2hhbmdpbmcgdG8gdGhlIFB5dGhvbiAyLjYgaG9tZSBkaXJlY3RvcnkgYW5kIGV4ZWN1dGluZyB0aGUgCi1SRUdSVEVTVC5DTUQgYmF0Y2ggZmlsZS4gIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIGtub3duIHRvIGZhaWwgYXQgdGhpcyAKLXRpbWU6Ci0tIHRlc3RfbWhsaWIgKEkgZG9uJ3Qga25vdyBvZiBhbnkgcG9ydCBvZiBNSCB0byBPUy8yKTsKLS0gdGVzdF9zdHJwdGltZSAoc2VlICJZT1UgSEFWRSBCRUVOIFdBUk5FRCIgaXRlbSAyMik7Ci0tIHRlc3RfdGltZSAoc2VlICJZT1UgSEFWRSBCRUVOIFdBUk5FRCIgaXRlbSAyMik7Ci0tIHRlc3RfcG9zaXhwYXRoIChzZWUgIllPVSBIQVZFIEJFRU4gV0FSTkVEIiBpdGVtIDIzKS4KLQotTm90ZSB0aGF0IHNvbWUgb2YgdGhlIG5ldHdvcmsgcmVsYXRlZCB0ZXN0cyBleHBlY3QgdGhlIGxvb3BiYWNrIGludGVyZmFjZQotKGludGVyZmFjZSAibG8iLCB3aXRoIElQIGFkZHJlc3MgMTI3LjAuMC4xKSB0byBiZSBlbmFibGVkLCB3aGljaCBmcm9tIG15Ci1leHBlcmllbmNlIGlzIG5vdCB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uLiAgQWRkaXRpb25hbGx5LCB0ZXN0X3BvcGVuMgotZXhwZWN0cyB0aGUgImNhdCIgdXRpbGl0eSAoc3VjaCBhcyBmb3VuZCBpbiBwb3J0cyBvZiB0aGUgR05VIHRvb2xzKSB0bwotYmUgaW5zdGFsbGVkLgotCi0KLUJ1aWxkaW5nIGZyb20gc291cmNlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1XaXRoIHRoZSBFTVggcG9ydCBub3cgY2hlY2tlZCBpbnRvIFB5dGhvbidzIENWUyByZXBvc2l0b3J5LCB0aGUgYnVpbGQgCi1pbmZyYXN0cnVjdHVyZSBpcyBwYXJ0IG9mIHRoZSBQeXRob24gcmVsZWFzZSBzb3VyY2ViYWxsLgotCi1QcmVyZXF1aXNpdGVzCi0KLUZpcnN0IGFuZCBmb3JlbW9zdCwgeW91IG5lZWQgYW4gb3BlcmF0aW9uYWwgRU1YIGRldmVsb3BtZW50IGluc3RhbGxhdGlvbiAtIAotRU1YIHYwLjlkIHdpdGggZml4MDQgKHRoZSBsYXRlc3QgYXQgdGltZSBvZiB3cml0aW5nKSAmIHRoZSBnY2MgMi44LjEgCi1jb21waWxlciByZWxlYXNlZCBieSBFYmVyaGFyZCBNYXR0ZXMgaXMgdGhlIHJlY29tbWVuZGVkIHNldHVwLgotCi1JZiB5b3UgaGF2ZSBhIGRpZmZlcmVudCB2ZXJzaW9uIG9mIGdjYyBpbnN0YWxsZWQsIHNlZSAiWU9VIEhBVkUgQkVFTiAKLVdBUk5FRCIgaXRlbSAxNi4KLQotT3RoZXIgaXRlbXMgb2Ygc29mdHdhcmUgcmVxdWlyZWQ6LQotCi0tIEdOVSBtYWtlIChJJ20gdXNpbmcgdjMuNzYuMSkKLS0gcm0sIGNwLCBta2RpciBmcm9tIHRoZSBHTlUgZmlsZSB1dGlsaXRpZXMgcGFja2FnZQotLSBHTlUgZmluZAotLSBHTlUgc2VkCi0KLVByb2NlZHVyZQotCi0wLiBhbGwgY2hhbmdlcyBtZW50aW9uZWQgYXBwbHkgdG8gZmlsZXMgaW4gdGhlIFBDL29zMmVteCBzdWJkaXJlY3RvcnkgCi0gICBvZiB0aGUgUHl0aG9uIHJlbGVhc2Ugc291cmNlIHRyZWUuICBtYWtlIGlzIGFsc28gZXhlY3V0ZWQgZnJvbSB0aGlzIAotICAgZGlyZWN0b3J5LCBzbyBjaGFuZ2UgaW50byB0aGlzIGRpcmVjdG9yeSBiZWZvcmUgcHJvY2VlZGluZy4KLQotMS4gZGVjaWRlIGlmIHlvdSBuZWVkIHRvIGNoYW5nZSB0aGUgbG9jYXRpb24gb2YgdGhlIFB5dGhvbiBpbnN0YWxsYXRpb24uCi0gICBJZiB5b3Ugd2lzaCB0byBkbyB0aGlzLCBzZXQgdGhlIHZhbHVlIG9mIHRoZSBNYWtlZmlsZSB2YXJpYWJsZSBMSUJfRElSIAotICAgdG8gdGhlIGRpcmVjdG9yeSB5b3Ugd2lzaCB0byB1c2UgZm9yIFBZVEhPTkhPTUUgCi0gICAoZWcgL3Vzci9sb2NhbC9saWIvcHl0aG9uMi42KS4KLQotICAgSWYgeW91IHdhbnQgUHl0aG9uIHRvIGZpbmQgaXRzIGxpYnJhcnkgd2l0aG91dCB0aGUgUFlUSE9OSE9NRSAKLSAgIGVudmlyb25tZW50IHZhcmlhYmxlIHNldCwgc2V0IHRoZSB2YWx1ZSBvZiB0aGUgTWFrZWZpbGUgdmFyaWFibGUgCi0gICBGSVhFRF9QWUhPTUUgdG8gInllcyIgKHVuY29tbWVudCB0aGUgYXBwcm9wcmlhdGUgbGluZSkuCi0KLTIuIElmIHlvdSB3aXNoIHRoZSBQeXRob24gZXhlY3V0YWJsZXMgKHB5dGhvbi5leGUsIHB5dGhvbnBtLmV4ZSAmIHBnZW4uZXhlKSAKLSAgIHRvIGJlIGluc3RhbGxlZCBpbiBhIGRpcmVjdG9yeSBvdGhlciB0aGFuIHRoZSBQWVRIT05IT01FIGRpcmVjdG9yeSwgc2V0IAotICAgdGhlIHZhbHVlIG9mIHRoZSBNYWtlZmlsZSB2YXJpYWJsZSBFWEVfRElSIHRvIHRoZSBhcHByb3ByaWF0ZSBkaXJlY3RvcnkuCi0KLTMuIElmIHlvdSB3aXNoIHRoZSBQeXRob24gY29yZSBETEwgKHB5dGhvbjMzLmRsbCkgdG8gYmUgaW5zdGFsbGVkIGluIGEgCi0gICBkaXJlY3Rvcnkgb3RoZXIgdGhhbiB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIHRoZSBQeXRob24gZXhlY3V0YWJsZXMgYXJlIAotICAgaW5zdGFsbGVkIChieSBkZWZhdWx0LCB0aGUgUFlUSE9OSE9NRSBkaXJlY3RvcnkpLCBzZXQgdGhlIHZhbHVlIG9mIHRoZSAKLSAgIE1ha2VmaWxlIHZhcmlhYmxlIERMTF9ESVIgdG8gdGhlIGFwcHJvcHJpYXRlIGRpcmVjdG9yeS4gIFRoaXMgRExMIG11c3QgCi0gICBiZSBwbGFjZWQgaW4gYSBkaXJlY3Rvcnkgb24gdGhlIHN5c3RlbSdzIExJQlBBVEgsIG9yIHRoYXQgZ2V0cyBzZXQgCi0gICB3aXRoIEJFR0lOTElCUEFUSCBvciBFTkRMSUJQQVRILgotCi00LiBJZiB5b3UgaGF2ZSBpbnN0YWxsZWQgYW55IG9mIHRoZSBsaWJyYXJpZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBidWlsZCAKLSAgIG9wdGlvbmFsIFB5dGhvbiBtb2R1bGVzLCBzZXQgdGhlIHZhbHVlIG9mIHRoZSByZWxldmFudCBIQVZFXzxwYWNrYWdlPiAKLSAgIE1ha2VmaWxlIHZhcmlhYmxlIHRvICJ5ZXMiLiAgVGhlIE1ha2VmaWxlIGN1cnJlbnRseSBzdXBwb3J0czoKLQotICAgbGlicmFyeSAgICAgICAgICAgICAgIE1ha2VmaWxlIHZhcmlhYmxlCi0gICAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCi0gICB6bGliICgxLjEuNCkgICAgICAgICAgSEFWRV9aTElCCi0gICBHTlUgVWx0cmFGYXN0IENyeXB0ICAgSEFWRV9VRkMKLSAgIFRjbC9UayAgICAgICAgICAgICAgICBIQVZFX1RDTFRLIChub3Qga25vd24gdG8gd29yaykKLSAgIEdOVSBSZWFkbGluZSAgICAgICAgICBIQVZFX0dSRUFETElORQotICAgbmN1cnNlcyAgICAgICAgICAgICAgIEhBVkVfTkNVUlNFUwotICAgR05VIGdkYm0gICAgICAgICAgICAgIEhBVkVfR0RCTQotICAgbGliYnoyICAgICAgICAgICAgICAgIEhBVkVfQloyCi0gICBPcGVuU1NMICAgICAgICAgICAgICAgSEFWRV9PUEVOU1NMCi0KLSAgIFBsZWFzZSBub3RlIHRoYXQgeW91IG5lZWQgdG8gY2hlY2sgdGhhdCB3aGF0IHlvdSBoYXZlIGluc3RhbGxlZCAKLSAgIGlzIGNvbXBhdGlibGUgd2l0aCBQeXRob24ncyBidWlsZCBvcHRpb25zLiAgSW4gcGFydGljdWxhciwgdGhlIAotICAgQlNEIERCIHYxLjg1IGxpYnJhcnkgbmVlZHMgdG8gYmUgcmVidWlsdCB3aXRoIGEgc291cmNlIHBhdGNoIGZvciAKLSAgIG11bHRpdGhyZWFkIHN1cHBvcnQgKGRvZXNuJ3QgY2hhbmdlIHRoZSBsaWJyYXJ5J3MgcmVlbnRyYW50IHN0YXR1cyAKLSAgIGJ1dCBhbGxvd3MgaXQgdG8gYmUgbGlua2VkIHRvIFB5dGhvbiB3aGljaCBpcyBtdWx0aXRocmVhZGVkKS4gIAotICAgV2lkZWx5IGF2YWlsYWJsZSBiaW5hcnkgcGFja2FnZXMgb2Ygb3RoZXIgbGlicmFyeXMgJiBETExzIGFyZSAKLSAgIG5vdCBidWlsdC9saW5rZWQgd2l0aCBtdWx0aXRocmVhZCBzdXBwb3J0LiAgQmV3YXJlIQotCi0gICBBbHNvIG5vdGUgdGhhdCB0aGUgTWFrZWZpbGUgY3VycmVudGx5IGV4cGVjdHMgYW55IGxpYnJhcmllcyB0byBiZSAKLSAgIGZvdW5kIHdpdGggdGhlIGRlZmF1bHQgbGlicmFyeSBzZWFyY2ggcGF0aC4gIFlvdSBtYXkgbmVlZCB0byBhZGQgCi0gICAtTCBzd2l0Y2hlcyB0byB0aGUgTERGTEFHUyBNYWtlZmlsZSB2YXJpYWJsZSBpZiB5b3UgaGF2ZSBpbnN0YWxsZWQgCi0gICBsaWJyYXJpZXMgaW4gZGlyZWN0b3JpZXMgbm90IGluIHRoZSBkZWZhdWx0IHNlYXJjaCBwYXRoICh3aGljaCBjYW4gCi0gICBiZSBjb250cm9sbGVkIGJ5IHRoZSBMSUJSQVJZX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUgdXNlZCBieSBFTVgpLgotCi01LiBtYWtlCi0KLSAgIEl0IGlzIHVzdWFsbHkgYSBnb29kIGlkZWEgdG8gcmVkaXJlY3QgdGhlIHN0ZG91dCBhbmQgc3RkZXJyIHN0cmVhbXMgCi0gICBvZiB0aGUgbWFrZSBwcm9jZXNzIHRvIGxvZyBmaWxlcywgc28gdGhhdCB5b3UgY2FuIHJldmlldyBhbnkgbWVzc2FnZXMuIAotCi02LiBtYWtlIHRlc3QKLQotICAgVGhpcyBydW5zIHRoZSBQeXRob24gcmVncmVzc2lvbiB0ZXN0cywgYW5kIGNvbXBsZXRpb24gaXMgYSBzaWduIG9mIAotICAgYSB1c2FibGUgYnVpbGQuICBZb3Ugc2hvdWxkIGNoZWNrIHRoZSBsaXN0IG9mIHNraXBwZWQgbW9kdWxlcyB0byAKLSAgIGVuc3VyZSB0aGF0IGFueSBvcHRpb25hbCBtb2R1bGVzIHlvdSBzZWxlY3RlZCBoYXZlIGJlZW4gYnVpbHQ7IAotICAgY2hlY2tpbmcgdGhlIGxpc3Qgb2YgZmFpbHVyZXMgYWdhaW5zdCB0aGUgbGlzdCBvZiBrbm93biBmYWlsdXJlcyAKLSAgIGVsc2V3aGVyZSBpbiB0aGlzIGRvY3VtZW50IGlzIGFsc28gcHJ1ZGVudC4KLQotNy4gbWFrZSBpbnN0YWxsCi0gICA+Pj4+Pj4gTk9UIFlFVCBDT01QTEVURSA8PDw8PDwgCi0KLTguIGNoYW5nZSB0byBhIGRpcmVjdG9yeSBvdXRzaWRlIHRoZSBQeXRob24gc291cmNlIHRyZWUgYW5kIHN0YXJ0IFB5dGhvbi4gCi0gICBDaGVjayB0aGUgdmVyc2lvbiBhbmQgYnVpbGQgZGF0ZSB0byBjb25maXJtIHNhdGlzZmFjdG9yeSBpbnN0YWxsYXRpb24uCi0KLQotWU9VIEhBVkUgQkVFTiBXQVJORUQhIQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1JIGtub3cgYWJvdXQgYSBudW1iZXIgb2YgbmFzdGllcyBpbiB0aGlzIHBvcnQuCi0KLTEuICBFYmVyaGFyZCBNYXR0ZXMsIGF1dGhvciBvZiBFTVgsIHdyaXRlcyBpbiBoaXMgZG9jdW1lbnRhdGlvbiB0aGF0IGZvcmsoKSAKLWlzIHZlcnkgaW5lZmZpY2llbnQgaW4gdGhlIE9TLzIgZW52aXJvbm1lbnQuICBJdCBhbHNvIHJlcXVpcmVzIHRoYXQgdGhlIAotZXhlY3V0YWJsZSBiZSBsaW5rZWQgaW4gYS5vdXQgZm9ybWF0IHJhdGhlciB0aGFuIE9NRi4gIFVzZSB0aGUgb3MuZXhlYyAKLWFuZC9vciB0aGUgb3Muc3Bhd24gZmFtaWx5IG9mIGZ1bmN0aW9ucyB3aGVyZSBwb3NzaWJsZS4KLQotMi4gIEluIHRoZSBhYnNlbmNlIG9mIEdOVSBSZWFkbGluZSwgdGVybWluYXRpbmcgdGhlIGludGVycHJldGVyIHJlcXVpcmVzIGEgCi1jb250cm9sLVogKF5aKSBmb2xsb3dlZCBieSBhIGNhcnJpYWdlIHJldHVybi4gIEplZmYgUnVzaCBkb2N1bWVudGVkIHRoaXMgCi1wcm9ibGVtIGluIGhpcyBQeXRob24gMS41LjIgcG9ydC4gIFdpdGggUmVhZGxpbmUsIGEgY29udHJvbC1EICheRCkgd29ya3MgCi1hcyBwZXIgdGhlIHN0YW5kYXJkIFVuaXggZW52aXJvbm1lbnQuCi0KLTMuICBFTVggb25seSBoYXMgYSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIGZjbnRsKCkuICBUaGUgZmNudGwgbW9kdWxlIAotaW4gdGhpcyBwb3J0IHN1cHBvcnRzIHdoYXQgRU1YIHN1cHBvcnRzLiAgSWYgZmNudGwgaXMgaW1wb3J0YW50IHRvIHlvdSwgCi1wbGVhc2UgcmV2aWV3IHRoZSBFTVggQyBMaWJyYXJ5IFJlZmVyZW5jZSAoaW5jbHVkZWQgaW4gLklORiBmb3JtYXQgaW4gdGhlIAotRU1YVklFVy5aSVAgYXJjaGl2ZSBhcyBwYXJ0IG9mIHRoZSBjb21wbGV0ZSBFTVggZGV2ZWxvcG1lbnQgdG9vbHMgc3VpdGUpLgotQmVjYXVzZSBvZiBvdGhlciBzaWRlLWVmZmVjdHMgSSBoYXZlIG1vZGlmaWVkIHRoZSB0ZXN0X2ZjbnRsLnB5IHRlc3QgCi1zY3JpcHQgdG8gZGVhY3RpdmF0ZSB0aGUgZXhlcmNpc2luZyBvZiB0aGUgbWlzc2luZyBmdW5jdGlvbmFsaXR5LgotCi00LiAgVGhlIHJlYWRsaW5lIG1vZHVsZSBoYXMgYmVlbiBsaW5rZWQgYWdhaW5zdCBuY3Vyc2VzIHJhdGhlciB0aGFuIHRoZSAKLXRlcm1jYXAgbGlicmFyeSBzdXBwbGllZCB3aXRoIEVNWC4KLQotNS4gIEkgaGF2ZSBjb25maWd1cmVkIHRoaXMgcG9ydCB0byB1c2UgIi8iIGFzIHRoZSBwcmVmZXJyZWQgcGF0aCBzZXBhcmF0b3IgCi1jaGFyYWN0ZXIsIHJhdGhlciB0aGFuICJcIiAoJ1xcJyksIGluIGxpbmUgd2l0aCB0aGUgY29udmVudGlvbiBzdXBwb3J0ZWQgCi1ieSBFTVguICBCYWNrc2xhc2hlcyBhcmUgc3RpbGwgc3VwcG9ydGVkIG9mIGNvdXJzZSwgYW5kIHN0aWxsIGFwcGVhciBpbiAKLXVuZXhwZWN0ZWQgcGxhY2VzIGR1ZSB0byBvdXRzaWRlIHNvdXJjZXMgdGhhdCBkb24ndCBnZXQgbm9ybWFsaXNlZC4KLQotNi4gIFdoaWxlIHRoZSBEaXN0VXRpbHMgY29tcG9uZW50cyBhcmUgbm93IGZ1bmN0aW9uYWwsIG90aGVyIAotcGFja2FnaW5nL2JpbmFyeSBoYW5kbGluZyB0b29scyBhbmQgdXRpbGl0aWVzIHN1Y2ggYXMgdGhvc2UgaW5jbHVkZWQgaW4KLXRoZSBEZW1vIGFuZCBUb29scyBkaXJlY3RvcmllcyAtIGZyZWV6ZSBpbiBwYXJ0aWN1bGFyIC0gYXJlIHVubGlrZWx5IHRvIAotd29yay4gIElmIHlvdSBkbyBnZXQgdGhlbSBnb2luZywgSSdkIGxpa2UgdG8ga25vdyBhYm91dCB5b3VyIHN1Y2Nlc3MuCi0KLTcuICBJIGhhdmVuJ3Qgc2V0IG91dCB0byBzdXBwb3J0IHRoZSBbQkVHSU58RU5EXUxJQlBBVEggZnVuY3Rpb25hbGl0eSAKLXN1cHBvcnRlZCBieSBvbmUgb2YgdGhlIGVhcmxpZXIgcG9ydHMgKFJ1c2gncz8/KS4gIElmIGl0IHdvcmtzIGxldCBtZSBrbm93LgotCi04LiBBcyBhIHJlc3VsdCBvZiB0aGUgbGltaXRhdGlvbnMgaW1wb3NlZCBieSBFTVgncyBsaWJyYXJ5IHJvdXRpbmVzLCB0aGUgCi1zdGFuZGFyZCBleHRlbnNpb24gbW9kdWxlIHB3ZCBvbmx5IHN5bnRoZXNpc2VzIGEgc2ltcGxlIHBhc3N3ZCBkYXRhYmFzZSwgCi1hbmQgdGhlIGdycCBtb2R1bGUgY2Fubm90IGJlIHN1cHBvcnRlZCBhdCBhbGwuCi0KLUkgaGF2ZSB3cml0dGVuIHB1cmUgUHl0aG9uIHN1YnN0aXR1dGVzIGZvciBwd2QgYW5kIGdycCwgd2hpY2ggY2FuIHByb2Nlc3MgCi1yZWFsIHBhc3N3ZCBhbmQgZ3JvdXAgZmlsZXMgZm9yIHRob3NlIGFwcGxpY2F0aW9ucyAoc3VjaCBhcyBNYWlsTWFuKSB0aGF0IAotcmVxdWlyZSBtb3JlIHRoYW4gRU1YIGVtdWxhdGVzLiAgSSBoYXZlIHBsYWNlZCBwd2QucHkgYW5kIGdycC5weSBpbiAKLUxpYi9wbGF0LW9zMmVteCwgd2hpY2ggaXMgdXN1YWxseSBiZWZvcmUgTGliL2xpYi1keW5sb2FkICh3aGljaCBjb250YWlucyAKLXB3ZC5weWQpIGluIHRoZSBQWVRIT05QQVRILiAgSWYgeW91IGhhdmUgYmVjb21lIGF0dGFjaGVkIHRvIHdoYXQgcHdkLnB5ZCAKLXN1cHBvcnRzLCB5b3UgY2FuIHB1dCBMaWIvbGliLWR5bmxvYWQgYmVmb3JlIExpYi9wbGF0LW9zMmVteCBpbiBQWVRIT05QQVRIIAotb3IgZGVsZXRlL3JlbmFtZSBwd2QucHkgJiBncnAucHkuCi0KLXB3ZC5weSAmIGdycC5weSBzdXBwb3J0IGxvY2F0aW5nIHRoZWlyIGRhdGEgZmlsZXMgYnkgbG9va2luZyBpbiB0aGUgCi1lbnZpcm9ubWVudCBmb3IgdGhlbSBpbiB0aGUgZm9sbG93aW5nIHNlcXVlbmNlOgotcHdkLnB5OiAgJEVUQ19QQVNTV0QgICAgICAgICAgICAgKCVFVENfUEFTU1dEJSkKLSAgICAgICAgICRFVEMvcGFzc3dkICAgICAgICAgICAgICglRVRDJS9wYXNzd2QpCi0gICAgICAgICAkUFlUSE9OSE9NRS9FdGMvcGFzc3dkICAoJVBZVEhPTkhPTUUlL0V0Yy9wYXNzd2QpCi1ncnAucHk6ICAkRVRDX0dST1VQICAgICAgICAgICAgICAoJUVUQ19HUk9VUCUpCi0gICAgICAgICAkRVRDL2dyb3VwICAgICAgICAgICAgICAoJUVUQyUvZ3JvdXApCi0gICAgICAgICAkUFlUSE9OSE9NRS9FdGMvZ3JvdXAgICAoJVBZVEhPTkhPTUUlL0V0Yy9ncm91cCkKLQotVGhlIEVUQ19QQVNTV0QgYW5kIEVUQ19HUk9VUCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIGludGVuZGVkIHRvIGFsbG93IAotc3VwcG9ydCBmb3IgbXVsdGlwbGUgcGFzc3dkL2dycCBmaWxlcywgd2hlcmUgb3RoZXIgYXBwbGljYXRpb25zIG1heSBub3QgCi1zdXBwb3J0IGFzIHdpZGUgYSB2YXJpZXR5IG9mIGlucHV0IHZhcmlhdGlvbnMgKGRyaXZlIHJlbWFwcGluZ3MsIAotc2VwYXJhdG9ycyBldGMpLgotCi1Cb3RoIG1vZHVsZXMgc3VwcG9ydCB1c2luZyBlaXRoZXIgdGhlICI6IiBjaGFyYWN0ZXIgKFVuaXggc3RhbmRhcmQpIG9yIAotIjsiIChPUy8yLCBET1MsIFdpbmRvd3Mgc3RhbmRhcmQpIGZpZWxkIHNlcGFyYXRvciBjaGFyYWN0ZXIsIGFuZCBwd2QucHkgCi1pbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgZHJpdmUgbGV0dGVyIGNvbnZlcnNpb25zIGZvciB0aGUgaG9tZV9kaXJlY3RvcnkgYW5kIAotc2hlbGwgZmllbGRzIChmb3IgdGhlICI6IiBzZXBhcmF0b3Igb25seSk6Ci0gICAgICAgICAkeCAgLT4gIHg6Ci0gICAgICAgICB4OyAgLT4gIHg6Ci0KLUV4YW1wbGUgdmVyc2lvbnMgb2YgcGFzc3dkIGFuZCBncm91cCBhcmUgaW4gdGhlIEV0YyBzdWJkaXJlY3RvcnkuICBUaGUgCi1yZWdyZXNzaW9uIHRlc3RzICh0ZXN0X3B3ZCBhbmQgdGVzdF9ncnApIHdpbGwgZmFpbCBpZiB2YWxpZCBwYXNzd29yZCBhbmQgCi1ncm91cCBmaWxlcyBjYW5ub3QgYmUgZm91bmQsIGJ1dCBzaG91bGQgcGFzcyBvdGhlcndpc2UuCi0KLUJlIGF3YXJlIHRoYXQgUHl0aG9uJ3MgcHdkICYgZ3JvdXAgbW9kdWxlcyBhcmUgZm9yIHJlYWRpbmcgcGFzc3dvcmQgYW5kIAotZ3JvdXAgaW5mb3JtYXRpb24gb25seS4KLQotMTEuIEVNWCdzIHRlcm1pb3Mgcm91dGluZXMgZG9uJ3Qgc3VwcG9ydCBhbGwgb2YgdGhlIGZ1bmN0aW9uYWxpdHkgbm93IAotZXhwb3NlZCBieSB0aGUgdGVybWlvcyBtb2R1bGUgLSByZWZlciB0byB0aGUgRU1YIGRvY3VtZW50YXRpb24gdG8gZmluZCAKLW91dCB3aGF0IGlzIHN1cHBvcnRlZC4KLQotMTIuIFRoZSBjYXNlIHNlbnNpdGl2ZSBpbXBvcnQgc2VtYW50aWNzIGludHJvZHVjZWQgaW4gUHl0aG9uIDIuMSBmb3Igb3RoZXIgCi1jYXNlIGluc2Vuc2l0aXZlIGJ1dCBjYXNlIHByZXNlcnZpbmcgZmlsZS9vcGVyYXRpbmcgc3lzdGVtcyAoV2luZG93cyBldGMpLCAKLWhhdmUgYmVlbiBpbmNvcnBvcmF0ZWQgaW50byB0aGlzIHBvcnQsIGFuZCBhcmUgYWN0aXZlIGJ5IGRlZmF1bHQuICBTZXR0aW5nIAotdGhlIFBZVEhPTkNBU0VPSyBlbnZpcm9ubWVudCB2YXJpYWJsZSAodG8gYW55IHZhbHVlKSByZXZlcnRzIHRvIHRoZSAKLXByZXZpb3VzIChjYXNlIGluc2Vuc2l0aXZlKSBzZW1hbnRpY3MuICBUaGlzIGNhbiBiZSBhbiBpc3N1ZSB3aXRoIHNvbWUgCi1maWxlIG1hbmFnZW1lbnQgdXRpbGl0aWVzIHRoYXQgZG8gbm90IHByZXNlcnZlIHRoZSBjYXNlIG9mIGZpbGUgYW5kCi1kaXJlY3RvcnkgbmFtZXMuCi0KLTEzLiBCZWNhdXNlIEkgYW0gc3RhdGljYWxseSBsaW5raW5nIG5jdXJzZXMsIHRoZSBfY3Vyc2VzX3BhbmVsIAotbW9kdWxlIGhhcyBwb3RlbnRpYWwgcHJvYmxlbXMgYXJpc2luZyBmcm9tIHNlcGFyYXRlIGxpYnJhcnkgZGF0YSBhcmVhcy4KLVRvIGF2b2lkIHRoaXMsIEkgaGF2ZSBjb25maWd1cmVkIHRoZSBfY3Vyc2VzXy5weWQgKGltcG9ydGVkIGFzIAotIl9jdXJzZXNfcGFuZWwiKSB0byBpbXBvcnQgdGhlIG5jdXJzZXMgc3ltYm9scyBpdCBuZWVkcyBmcm9tIF9jdXJzZXMuZGxsIAotKHdoaWNoIGlzIHRoZSBjdXJzZXMgbW9kdWxlLCBidXQgd2l0aCBhIC5kbGwgZXh0ZW5zaW9uIHJhdGhlciB0aGFuIC5weWQgCi1zbyB0aGF0IHRoZSBkeW5hbWljIGxvYWRlciBjYW4gYWN0dWFsbHkgaW1wb3J0IHRoZSBzeW1ib2xzIGZyb20gaXQgYXMgYSAKLURMTCkuCi0KLVRoZSBzaXRlIG1vZHVsZSAoTGliL3NpdGUucHkpIGhhcyBjb2RlIGFkZGVkIHRvIHR3ZWFrIEJFR0lOTElCUEFUSCBzbwotdGhhdCBfY3Vyc2VzLmRsbCBpcyBmb3VuZCB3aGVuIF9jdXJzZXNfcGFuZWwgaXMgaW1wb3J0ZWQuICBJZiB5b3UgaGF2ZQotcHJvYmxlbXMgYXR0ZW1wdGluZyB0byB1c2UgdGhlIF9jdXJzZXNfcGFuZWwgc3VwcG9ydCBwbGVhc2UgbGV0IG1lIGtub3csCi1hbmQgSSdsbCBoYXZlIGFub3RoZXIgbG9vayBhdCB0aGlzLgotCi0xNC4gc3lzLnBsYXRmb3JtIHJlcG9ydHMgIm9zMmVteCIgaW5zdGVhZCBvZiAib3MyIi4gIG9zLm5hbWUgc3RpbGwgCi1yZXBvcnRzICJvczIiLiAgVGhpcyBjaGFuZ2Ugd2FzIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gCi10aGUgVkFDKysgYnVpbGQgKGZvcm1lcmx5IG1haW50YWluZWQgYnkgTWljaGFlbCBNdWxsZXIpIGFuZCB0aGUgRU1YIGJ1aWxkIAotKHRoaXMgcG9ydCksIHByaW5jaXBhbGx5IGZvciBEaXN0VXRpbHMuCi0KLTE1LiBpdCBhcHBlYXJzIHRoYXQgdGhlICVXIHN1YnN0aXR1dGlvbiBpbiB0aGUgRU1YIHN0cmZ0aW1lKCkgcm91dGluZSBoYXMgCi1hbiBvZmYtYnktb25lIGJ1Zy4gIHN0cmZ0aW1lIHdhcyBsaXN0ZWQgYXMgcGFzc2luZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyAKLWluIHByZXZpb3VzIHJlbGVhc2VzLCBidXQgdGhpcyBmYWN0IGFwcGVhcnMgdG8gaGF2ZSBiZWVuIGFuIG92ZXJzaWdodCBpbiAKLXRoZSByZWdyZXNzaW9uIHRlc3Qgc3VpdGUuICBUbyBmaXggdGhpcyByZWFsbHkgcmVxdWlyZXMgYSBwb3J0YWJsZSAKLXN0cmZ0aW1lIHJvdXRpbmUgLSBJJ20gbG9va2luZyBpbnRvIHVzaW5nIG9uZSBmcm9tIEZyZWVCU0QsIGJ1dCBpdHMgbm90IAotcmVhZHkgeWV0LgotCi0xNi4gSSBoYXZlIHN1Y2Nlc3NmdWxseSBidWlsdCB0aGlzIHBvcnQgd2l0aCBBbmR5IFphYm9sb3RueSdzIHBvcnRzIG9mIAotcGdjYyAyLjk1IGFuZCBnY2MgMy4yLjEsIGluIGFkZGl0aW9uIHRvIEVNJ3MgZ2NjIDIuOC4xLgotCi1JIGhhdmUgbm90IGF0dGVtcHRlZCB0byBjb21waWxlIFB5dGhvbiB3aXRoIGFueSB2ZXJzaW9uIG9mIGdjYyBwcmlvciB0byAKLXYyLjguMS4KLQotVGhpcyByZWxlYXNlIHNlZXMgdGhlIGRlZmF1bHQgb3B0aW1pc2F0aW9uIGNoYW5nZSB0byAKLSItTzMgLWZvbWl0LWZyYW1lLXBvaW50ZXIgLW1wcm9iZSIuICBUaGlzIHdvcmtzIGZpbmUgdG9vIGZvciBwZ2NjIDIuOTUgCi1idXQgbm90IGZvciBnY2MgMy4yLjEuCi0KLVdpdGggZ2NjIDMuMi4xLCAtTzMgY2F1c2VzIDIgdW5leHBlY3RlZCB0ZXN0IGZhaWx1cmVzOiB0ZXN0X2Zvcm1hdCBhbmQgCi10ZXN0X3VuaWNvZGUuICBCb3RoIHRoZXNlIHRlc3RzIHBhc3MgaWYgLU8yIGlzIGluc3RlYWQgb2YgLU8zIHdpdGggdGhpcyAKLWNvbXBpbGVyLCBhbmQgdGhlIHBlcmZvcm1hbmNlIGRpZmZlcmVuY2UgaXMgbmVnbGlnaWJsZSAoaW4gY29udHJhc3QgdG8gCi1nY2MgMi44LjEgYW5kIHBnY2MgMi45NSwgd2hlcmUgdGhlIHBlcmZvcm1hbmNlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgCi0yIG9wdGltaXNhdGlvbiBzZXR0aW5ncyBhcHByb2FjaGVzIDEwJSkuCi0KLTE3LiAgb3Muc3Bhd252KCkgYW5kIG9zLnNwYXdudmUoKSBleHBvc2UgRU1YJ3MgbGlicmFyeSByb3V0aW5lcyByYXRoZXIgCi10aGFuIHVzZSB0aGUgZW11bGF0aW9uIGluIG9zLnB5LgotCi1JbiBvcmRlciB0byBtYWtlIHVzZSBvZiBzb21lIG9mIHRoZSBmZWF0dXJlcyB0aGlzIG1ha2VzIGF2YWlsYWJsZSBpbiAKLXRoZSBPUy8yIGVudmlyb25tZW50LCB5b3Ugc2hvdWxkIHBlcnVzZSB0aGUgcmVsZXZhbnQgRU1YIGRvY3VtZW50YXRpb24gCi0oRU1YTElCLklORiBpbiB0aGUgRU1YVklFVy5aSVAgYXJjaGl2ZSBhY2NvbXBhbnlpbmcgdGhlIEVNWCBhcmNoaXZlcyAKLW9uIEhvYmJlcyBvciBMRU8pLiAgQmUgYXdhcmUgdGhhdCBJIGhhdmUgZXhwb3NlZCBhbGwgdGhlICJtb2RlIiBvcHRpb25zIAotc3VwcG9ydGVkIGJ5IEVNWCwgYnV0IHRoZXJlIGFyZSBjb21iaW5hdGlvbnMgdGhhdCBlaXRoZXIgY2Fubm90IGJlIAotcHJhY3RpY2FsbHkgdXNlZCBieS9pbiBQeXRob24gb3IgaGF2ZSB0aGUgcG90ZW50aWFsIHRvIGNvbXByb21pc2UgeW91ciAKLXN5c3RlbSdzIHN0YWJpbGl0eS4KLQotMTguICBweXRob25wbS5leGUgdXNlZCB0byBiZSBqdXN0IHB5dGhvbi5leGUgd2l0aCB0aGUgV0lORE9XQVBJIGxpbmtlciAKLW9wdGlvbiBzZXQgaW4gdGhlIHB5dGhvbnBtLmRlZiBmaWxlLiAgSW4gcHJhY3RpY2UsIHRoaXMgdHVybnMgb3V0IHRvIGRvIAotbm90aGluZyB1c2VmdWwuCi0KLUkgaGF2ZSB3cml0dGVuIGEgcmVwbGFjZW1lbnQgd2hpY2ggd3JhcHMgdGhlIFB5dGhvbiBETEwgaW4gYSBnZW51aW5lIAotUHJlc2VudGF0aW9uIE1hbmFnZXIgYXBwbGljYXRpb24uICBUaGlzIHZlcnNpb24gYWN0dWFsbHkgcnVucyB0aGUgCi1QeXRob24gaW50ZXJwcmV0ZXIgaW4gYSBzZXBhcmF0ZSB0aHJlYWQgZnJvbSB0aGUgUE0gc2hlbGwsIGluIG9yZGVyIAotdGhhdCBQeXRob25QTSBoYXMgYSBmdW5jdGlvbmluZyBtZXNzYWdlIHF1ZXVlIGFzIGdvb2QgUE0gYXBwcyBzaG91bGQuCi1JbiBpdHMgY3VycmVudCBzdGF0ZSwgUHl0aG9uUE0ncyB3aW5kb3cgaXMgaGlkZGVuLiAgSXQgY2FuIGJlIGRpc3BsYXllZCwgCi1hbHRob3VnaCBpdCB3aWxsIGhhdmUgbm8gY29udGVudCBhcyBub3RoaW5nIGlzIGV2ZXIgd3JpdHRlbiB0byB0aGUgCi13aW5kb3cuICBPbmx5IHRoZSAiaGlkZSIgYnV0dG9uIGlzIGF2YWlsYWJsZS4gIEFsdGhvdWdoIHRoZSBjb2RlIAotaGFzIHN1cHBvcnQgZm9yIHNodXR0aW5nIFB5dGhvblBNIGRvd24gd2hlbiB0aGUgUHl0aG9uIGludGVycHJldGVyIGlzIAotc3RpbGwgYnVzeSAodmlhIHRoZSAiY29udHJvbCIgbWVudSksIHRoaXMgaXMgbm90IHdlbGwgdGVzdGVkIGFuZCBnaXZlbiAKLWNvbW1lbnRzIEkndmUgY29tZSBhY3Jvc3MgaW4gRU1YIGRvY3VtZW50YXRpb24gc3VnZ2VzdGluZyB0aGF0IHRoZSAKLXRocmVhZCBraWxsaW5nIG9wZXJhdGlvbiBoYXMgcHJvYmxlbXMgSSB3b3VsZCBzdWdnZXN0IGNhdXRpb24gaW4gCi1yZWx5aW5nIG9uIHRoaXMgY2FwYWJpbGl0eS4KLQotUHl0aG9uUE0gcHJvY2Vzc2VzIGNvbW1hbmRsaW5lIHBhcmFtZXRlcnMgbm9ybWFsbHkuICBUaGUgc3RhbmRhcmQgaW5wdXQsIAotb3V0cHV0IGFuZCBlcnJvciBzdHJlYW1zIGFyZSBvbmx5IHVzZWZ1bCBpZiByZWRpcmVjdGVkLCBhcyBQeXRob25QTSdzIAotd2luZG93IGlzIG5vdCBhIGNvbnNvbGUgaW4gYW55IGZvcm0gYW5kIHNvIGNhbm5vdCBhY2NlcHQgb3IgZGlzcGxheSAKLWFueXRoaW5nLiAgVGhpcyBtZWFucyB0aGF0IHRoZSAtaSBvcHRpb24gaXMgaW5lZmZlY3RpdmUuCi0KLUJlY2F1c2UgdGhlIFB5dGhvbiB0aHJlYWQgZG9lc24ndCBjcmVhdGUgaXRzIG93biBtZXNzYWdlIHF1ZXVlLCBjcmVhdGluZyAKLVBNIFdpbmRvd3MgYW5kIHBlcmZvcm1pbmcgbW9zdCBQTSBvcGVyYXRpb25zIGlzIG5vdCBwb3NzaWJsZSBmcm9tIHdpdGhpbiAKLXRoaXMgdGhyZWFkLiAgSG93IHRoaXMgd2lsbCBhZmZlY3Qgc3VwcG9ydGluZyBQTSBleHRlbnNpb25zIChzdWNoIGFzIAotVGtpbnRlciB1c2luZyBhIFBNIHBvcnQgb2YgVGNsL1RrLCBvciB3eFB5dGhvbiB1c2luZyB0aGUgUE0gcG9ydCBvZiAKLVd4V2luZG93cykgaXMgc3RpbGwgYmVpbmcgcmVzZWFyY2hlZC4KLQotTm90ZSB0aGF0IG9zLmZvcmsoKSBfRE9FU19OT1RfV09SS18gaW4gUHl0aG9uUE0gLSBTWVMzMTc1cyBhcmUgdGhlIHJlc3VsdCAKLW9mIHRyeWluZy4gIG9zLnNwYXdudigpIF9kb2VzXyB3b3JrLiAgUHl0aG9uUE0gcGFzc2VzIGFsbCByZWdyZXNzaW9uIHRlc3RzIAotdGhhdCB0aGUgc3RhbmRhcmQgUHl0aG9uIGludGVycHJldGVyIChweXRob24uZXhlKSBwYXNzZXMsIHdpdGggdGhlIGV4Y2VwdGlvbiAKLW9mIHRlc3RfZm9yazEgYW5kIHRlc3Rfc29ja2V0IHdoaWNoIGJvdGggYXR0ZW1wdCB0byB1c2Ugb3MuZm9yaygpLgotCi1JIHZlcnkgbXVjaCB3YW50IGZlZWRiYWNrIG9uIHRoZSBwZXJmb3JtYW5jZSwgYmVoYXZpb3VyIGFuZCB1dGlsaXR5IG9mIAotUHl0aG9uUE0uICBJIHdvdWxkIGxpa2UgdG8gYWRkIGEgUE0gY29uc29sZSBjYXBhYmlsaXR5IHRvIGl0LCBidXQgdGhhdCAKLXdpbGwgYmUgYSBub24tdHJpdmlhbCBlZmZvcnQuICBJIG1heSBiZSBhYmxlIHRvIGxldmVyYWdlIHRoZSBjb2RlIGluIAotSWxseWEgVmFlcycgVGNsL1RrIHBvcnQsIHdoaWNoIHdvdWxkIG1ha2UgaXQgZWFzaWVyLgotCi0xOS4gIG9zLmNoZGlyKCkgdXNlcyBFTVgncyBfY2hkaXIyKCksIHdoaWNoIHN1cHBvcnRzIGNoYW5naW5nIGJvdGggZHJpdmUgCi1hbmQgZGlyZWN0b3J5IGF0IG9uY2UuICBTaW1pbGFybHksIG9zLmdldGN3ZCgpIHVzZXMgRU1YJ3MgX2dldGN3ZCgpIAotd2hpY2ggcmV0dXJucyBkcml2ZSBhcyB3ZWxsIGFzIHBhdGguCi0KLTIwLiAgcHljb25maWcuaCBpcyBpbnN0YWxsZWQgaW4gdGhlIEluY2x1ZGUgc3ViZGlyZWN0b3J5IHdpdGggYWxsIAotb3RoZXIgaW5jbHVkZSBmaWxlcy4KLQotMjEuICB0aGUgZGVmYXVsdCBidWlsZCBleHBsaWNpdGx5IHNldHMgdGhlIG51bWJlciBvZiBmaWxlIGhhbmRsZXMgCi1hdmFpbGFibGUgdG8gYSBQeXRob24gcHJvY2VzcyB0byAyNTAuICBFTVggZGVmYXVsdCBpcyA0MCwgd2hpY2ggaXMgCi1pbnN1ZmZpY2llbnQgZm9yIHRoZSB0ZW1wZmlsZSByZWdyZXNzaW9uIHRlc3QgKHRlc3RfdGVtcGZpbGUpIHdoaWNoIAotdHJpZXMgdG8gY3JlYXRlIDEwMCB0ZW1wb3JhcnkgZmlsZXMuCi0KLVRoaXMgc2V0dGluZyBjYW4gYmUgb3ZlcnJpZGRlbiB2aWEgdGhlIEVNWE9QVCBlbnZpcm9ubWVudCB2YXJpYWJsZToKLSAgc2V0IEVNWE9QVD0taDI1MAotaXMgZXF1aXZhbGVudCB0byB0aGUgc2V0dGluZyBjdXJyZW50bHkgdXNlZC4gIFRoZSBlbXhiaW5kIHV0aWxpdHkgKGlmIHlvdSAKLWhhdmUgaXQgaW5zdGFsbGVkKSBjYW4gYWxzbyBiZSB1c2VkIHRvIHBlcm1hbmVudGx5IGNoYW5nZSB0aGUgc2V0dGluZyBpbiAKLXB5dGhvbi5leGUgLSBwbGVhc2UgcmVmZXIgdG8gdGhlIEVNWCBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLgotCi0yMi4gIGEgcHVyZSBweXRob24gc3RycHRpbWUgbW9kdWxlIGlzIG5vdyBwYXJ0IG9mIHRoZSBQeXRob24gc3RhbmRhcmQKLWxpYnJhcnksIHN1cGVyY2VkaW5nIGEgcGxhdGZvcm0gc3BlY2lmaWMgZXh0ZW5zaW9uIG1vZHVsZS4gVGhpcyBtb2R1bGUKLWxldmVyYWdlcyB0aGUgc3RyZnRpbWUgbW9kdWxlLCBhbmQgYXMgYSByZXN1bHQgdGVzdF9zdHJwdGltZSBmYWlscwotZHVlIHRvIHRoZSBFTVggc3RyZnRpbWUgYnVnIGluIGl0ZW0gMjAgYWJvdmUuCi0KLTIzLiAgdGVzdF9wb3NpeHBhdGggYXR0ZW1wdHMgdG8gZXhlcmNpc2UgdmFyaW91cyBQb3NpeCBwYXRoIHJlbGF0ZWQKLWZ1bmN0aW9uYWxpdHkuICBNb3N0IG9mIHRoZSBzdWItdGVzdHMgcGFzcywgYnV0IHRoZSAiaXNtb3VudCIgYW5kCi0ic2FtZXN0YXQiIHN1YnRlc3RzIGZhaWw6Ci0tIEVNWCBwcm92aWRlcyBub3Qgc2F0aXNmYWN0b3J5IG1vdW50IHBvaW50IGVtdWxhdGlvbiwgc28gImlzbW91bnQiCi0gIGNhbm5vdCBzdWNjZWVkOwotLSBFTVggZG9jdW1lbnRzIHRoYXQgc3VjY2Vzc2l2ZSBzdGF0KCkgY2FsbHMgd2lsbCBwcm9kdWNlIGRpZmZlcmVudAotICByZXN1bHRzLCBzbyAic2FtZXN0YXQiIGNhbm5vdCBzdWNjZWVkLgotCi10ZXN0X3Bvc2l4cGF0aCBzaG91bGQgc2tpcCB0aGVzZSB0ZXN0cyBvbiBFTVguCi0KLTI0LiAgSSBoYXZlIHJlcG9ydHMgb2YgQml0VG9ycmVudCBub3Qgd29ya2luZy4gIEl0IGFwcGVhcnMgdGhhdCB0aGUKLUVNWCBzZWxlY3QoKSBlbXVsYXRpb24sIHBvc3NpYmx5IGluIGNvbmNlcnQgd2l0aCBidWdzIGluIHRoZSBUQ1AvSVAKLXN0YWNrLCBydW5zIGludG8gcHJvYmxlbXMgdW5kZXIgdGhlIHN0cmVzcyBpbXBvc2VkIGJ5IHRoaXMgYXBwbGljYXRpb24uCi1JIHRoaW5rIGl0IHN1ZmZpY2VzIHRvIHNheSB0aGF0IEJpdFRvcnJlbnQgaXMgYSBmYWlyIHN0cmVzcyB0ZXN0IG9mIGEKLXN5c3RlbSdzIG5ldHdvcmtpbmcgY2FwYWJpbGl0eS4KLQotMjUuICBJbiB0aGUgYWJzZW5jZSBvZiBhbiBFTVggaW1wbGVtZW50YXRpb24gb2YgdGhlIGxpbmsoKSBmdW5jdGlvbiwgSSd2ZSAKLWltcGxlbWVudGVkIGEgY3J1ZGUgUHl0aG9uIGVtdWxhdGlvbiwgaW4gdGhlIGZpbGUgCi1MaWIvcGxhdC1vczJlbXgvX2VteF9saW5rLnB5LiAgVGhpcyBpcyBpbXBvcnRlZCBpbnRvIHRoZSBvcyBtb2R1bGUsIGFuZCAKLWJlY29tZXMgYXZhaWxhYmxlIGFzIG9zLmxpbmsoKSBpbiB0aGUgbm9ybWFsIHdheS4KLQotVGhlIGVtdWxhdGlvbiBjb3BpZXMgdGhlIHNvdXJjZSBmaWxlIGluIGJpbmFyeSBtb2RlLCBhbmQgd2lsbCBmYWlsIGlmIAotZGlzayBzcGFjZSBpcyBleGhhdXN0ZWQuIFRoZSBjYWxsIGZhaWxzIGlmIHRoZSB0YXJnZXQgYWxyZWFkeSBleGlzdHMuIAotVGhlcmUgYXJlIG5vIGd1YXJhbnRlZXMgdG8gdGhyZWFkIHNhZmV0eSB3aXRoIHRoaXMgZW11bGF0aW9uIC0gYmV3YXJlIQotCi1UaGUgZW11bGF0aW9uIHdhcyB3cml0dGVuIHRvIHN1cHBvcnQgYSBsaW5rKCkgYmFzZWQgZmlsZSBsb2NraW5nIHN5c3RlbSAKLXVzZWQgaW4gR05VIE1haWxtYW4uCi0KLTI2LiAgQUZfVU5JWCBzb2NrZXRzLCBvdGhlcndpc2Uga25vd24gYXMgVW5peCBkb21haW4gc29ja2V0cywgYXJlIG5vdwotc3VwcG9ydGVkLiAgVW5mb3J0dW5hdGVseSwgdGhlcmUgYXJlIHNvbWUgdHJhcHMgYXJpc2luZyBmcm9tIHRoZQotaW1wbGVtZW50YXRpb24gaW4gSUJNJ3MgVENQL0lQIHN0YWNrOi0KLS0gdGhlIHBhdGggbmFtZSBtdXN0IHN0YXJ0IHdpdGggJ1xcc29ja2V0XFwnICgnL3NvY2tldC8nIHdvbid0IHdvcmshKSwKLSAgd2l0aCB0aGUgbGVuZ3RoIG9mIHRoZSBmdWxsIHBhdGggbmFtZSBsZXNzIHRoYW4gMTA4IGNoYXJhY3RlcnM7Ci0tIHVubGlrZSBVbml4LCB0aGUgc29ja2V0IGVuZHBvaW50cyBkb24ndCBleGlzdCBpbiB0aGUgZmlsZXN5c3RlbTsKLS0gYnkgZGVmYXVsdCwgc29ja2V0cyBhcmUgaW4gYmluYXJ5IG1vZGUuCi0KLTI3LiAgQXMgb2YgUHl0aG9uIDIuNCwgdGhlIG1weiwgcm90b3IgYW5kIHhyZWFkbGluZXMgbW9kdWxlcyBoYXZlIGJlZW4gCi1kcm9wcGVkIGZyb20gdGhlIFB5dGhvbiBzb3VyY2UgdHJlZS4KLQotMjguICBUaGUgc3VicHJvY2VzcyBtb2R1bGUgd2FzIGFkZGVkIHRvIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IHJlbGF0aXZlbHkKLWxhdGUgaW4gdGhlIDIuNCBkZXZlbG9wbWVudCBjeWNsZS4gIFVuZm9ydHVuYXRlbHkgSSBoYXZlbid0IGhhZCB0aGUKLXJvdW5kIHR1aXRzIHRvIGFkYXB0IHRoZSBtb2R1bGUgdG8gdGhlIEVNWCBlbnZpcm9ubWVudCB5ZXQsIGFuZAotdGVzdF9zdWJwcm9jZXNzIGhhcyBhIG51bWJlciBvZiBmYWlsdXJlcyBhcyBhIHJlc3VsdC4KLQotMjkuICBUaGUgZGVmYXVsdCBzdGFjayBzaXplIGZvciB0aHJlYWRzIGhhcyBiZWVuIDY0ay4gIFRoaXMgaXMgcHJvdmluZwotaW5zdWZmaWNpZW50IGZvciBzb21lIGNvZGViYXNlcywgc3VjaCBhcyBab3BlLiAgVGhlIHRocmVhZCBzdGFjayBzaXplCi1zdGlsbCBkZWZhdWx0cyB0byA2NGssIGJ1dCB0aGlzIGNhbiBub3cgYmUgaW5jcmVhc2VkIHZpYSB0aGUgc3RhY2tfc2l6ZSgpCi1mdW5jdGlvbiBleHBvc2VkIGJ5IHRoZSB0aHJlYWRpbmcgJiB0aHJlYWQgbW9kdWxlcyBhcyB3ZWxsIGFzIGJ5IGRlZmluaW5nCi1USFJFQURfU1RBQ0tfU0laRSB0byBhbiBhcHByb3ByaWF0ZSB2YWx1ZSBpbiB0aGUgTWFrZWZpbGUgKHdoaWNoIGNvbnRhaW5zCi1hIGNvbW1lbnRlZCBvdXQgZGVmaW5pdGlvbiBmb3IgMTI4a0IgdGhyZWFkIHN0YWNrcykuICBJIGhhdmUgc2VlbgotcmVmZXJlbmNlcyB0byBoZWF2eSBab3BlL1Bsb25lIHVzYWdlIHJlcXVpcmluZyAxTUIgdGhyZWFkIHN0YWNrcyBvbgotRnJlZUJTRCBhbmQgTGludXgsIGJ1dCBkb3VidCB0aGF0IGZvciBtb3N0IGxpa2VseSB1c2FnZSBvbiBPUy8yIHRoYXQKLW1vcmUgdGhhbiAyNTZrQiBpcyBuZWNlc3NhcnkuICBUaGUgc2l6ZSBvZiB0aGUgcmVxdWlyZWQgc3RhY2tzIChtYWluIAotYW5kIHRocmVhZCkgY2FuIHZhcnkgc2lnbmlmaWNhbnRseSBkZXBlbmRpbmcgb24gd2hpY2ggdmVyc2lvbiBvZiBnY2MKLWlzIHVzZWQgYWxvbmcgd2l0aCB0aGUgY29tcGlsZXIgb3B0aW1pc2F0aW9ucyBzZWxlY3RlZC4gIE5vdGUgdGhhdCB0aGUKLW1haW4gdGhyZWFkIHN0YWNrIHNpemUgaXMgc2V0IGR1cmluZyBsaW5raW5nIGFuZCBpcyBjdXJyZW50bHkgMk1CLgotCi0uLi4gcHJvYmFibHkgb3RoZXIgaXNzdWVzIHRoYXQgSSd2ZSBub3QgZW5jb3VudGVyZWQsIG9yIGRvbid0IHJlbWVtYmVyIDotKAotCi1JZiB5b3UgZW5jb3VudGVyIG90aGVyIGRpZmZpY3VsdGllcyB3aXRoIHRoaXMgcG9ydCwgd2hpY2ggY2FuIGJlIAotY2hhcmFjdGVyaXNlZCBhcyBwZWN1bGlhciB0byB0aGlzIHBvcnQgcmF0aGVyIHRoYW4gdG8gdGhlIFB5dGhvbiByZWxlYXNlLAotSSB3b3VsZCBsaWtlIHRvIGhlYXIgYWJvdXQgdGhlbS4gIEhvd2V2ZXIgSSBjYW5ub3QgcHJvbWlzZSB0byBiZSBhYmxlIHRvIGRvIAotYW55dGhpbmcgdG8gcmVzb2x2ZSBzdWNoIHByb2JsZW1zLiAgU2VlIHRoZSBDb250YWN0IHNlY3Rpb24gYmVsb3cuLi4KLQotCi1UbyBkby4uLgotLS0tLS0tLS0KLQotSW4gbm8gcGFydGljdWxhciBvcmRlciBvZiBhcHBhcmVudCBpbXBvcnRhbmNlIG9yIGxpa2VsaWhvb2QuLi4KLQotLSBzdXBwb3J0IFRraW50ZXIgYW5kL29yIGFsdGVybmF0aXZlIEdVSSAod3hXaW5kb3dzPz8pCi0KLQotQ3JlZGl0cwotLS0tLS0tLQotCi1JbiBhZGRpdGlvbiB0byBwZW9wbGUgaWRlbnRpZmllZCBhYm92ZSwgSSdkIGxpa2UgdG8gdGhhbms6Ci0tIHRoZSBCREZMLCBHdWlkbyB2YW4gUm9zc3VtLCBhbmQgY3JldyBmb3IgUHl0aG9uOwotLSBEciBEYXZpZCBNZXJ0eiwgZm9yIHRyeWluZyBvdXQgYSBwcmUtcmVsZWFzZSBvZiB0aGlzIHBvcnQ7Ci0tIHRoZSBQeXRob24tbGlzdC9jb21wLmxhbmcucHl0aG9uIGNvbW11bml0eTsKLS0gSm9obiBQb2x0b3JhaywgZm9yIGlucHV0IGFib3V0IHB3ZC9ncnAuCi0KLUNvbnRhY3QKLS0tLS0tLS0KLQotQ29uc3RydWN0aXZlIGZlZWRiYWNrLCBuZWdhdGl2ZSBvciBwb3NpdGl2ZSwgYWJvdXQgdGhpcyBwb3J0IGlzIHdlbGNvbWUgCi1hbmQgc2hvdWxkIGJlIGFkZHJlc3NlZCB0byBtZSBhdCB0aGUgZS1tYWlsIGFkZHJlc3NlcyBiZWxvdy4KLQotSSBoYXZlIGEgcHJpdmF0ZSBtYWlsaW5nIGxpc3QgZm9yIGFubm91bmNlbWVudHMgb2YgZml4ZXMgJiB1cGRhdGVzIHRvIAotdGhpcyBwb3J0LiAgSWYgeW91IHdpc2ggdG8gcmVjZWl2ZSBzdWNoIGUtbWFpbCBhbm5vdW5jbWVudHMsIHBsZWFzZSBzZW5kIAotbWUgYW4gZS1tYWlsIHJlcXVlc3RpbmcgdGhhdCB5b3UgYmUgYWRkZWQgdG8gdGhpcyBsaXN0LgotCi1BbmRyZXcgTWFjSW50eXJlCi1FLW1haWw6IGFuZHltYWNAYnVsbHNleWUuYXBhbmEub3JnLmF1LCBvciBhbmR5bWFjQHBjdWcub3JnLmF1Ci1XZWI6ICAgIGh0dHA6Ly93d3cuYW5keW1hYy5vcmcvCi0KLTI4IEphbnVhcnksIDIwMDguCmRpZmYgLS1naXQgYS9QQy9vczJlbXgvY29uZmlnLmMgYi9QQy9vczJlbXgvY29uZmlnLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU4NzkxMTAuLjAwMDAwMDAKLS0tIGEvUEMvb3MyZW14L2NvbmZpZy5jCisrKyAvZGV2L251bGwKQEAgLTEsMTY0ICswLDAgQEAKLS8qIC0qLSBDIC0qLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotQ29weXJpZ2h0IDE5OTEtMTk5NSBieSBTdGljaHRpbmcgTWF0aGVtYXRpc2NoIENlbnRydW0sIEFtc3RlcmRhbSwKLVRoZSBOZXRoZXJsYW5kcy4KLQotICAgICAgICAgICAgICAgICAgICAgICAgQWxsIFJpZ2h0cyBSZXNlcnZlZAotCi1QZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKLWRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGFuZCB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwKLXByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQKLWJvdGggdGhhdCBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVhciBpbgotc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uLCBhbmQgdGhhdCB0aGUgbmFtZXMgb2YgU3RpY2h0aW5nIE1hdGhlbWF0aXNjaAotQ2VudHJ1bSBvciBDV0kgb3IgQ29ycG9yYXRpb24gZm9yIE5hdGlvbmFsIFJlc2VhcmNoIEluaXRpYXRpdmVzIG9yCi1DTlJJIG5vdCBiZSB1c2VkIGluIGFkdmVydGlzaW5nIG9yIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvCi1kaXN0cmlidXRpb24gb2YgdGhlIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMsIHdyaXR0ZW4gcHJpb3IKLXBlcm1pc3Npb24uCi0KLVdoaWxlIENXSSBpcyB0aGUgaW5pdGlhbCBzb3VyY2UgZm9yIHRoaXMgc29mdHdhcmUsIGEgbW9kaWZpZWQgdmVyc2lvbgotaXMgbWFkZSBhdmFpbGFibGUgYnkgdGhlIENvcnBvcmF0aW9uIGZvciBOYXRpb25hbCBSZXNlYXJjaCBJbml0aWF0aXZlcwotKENOUkkpIGF0IHRoZSBJbnRlcm5ldCBhZGRyZXNzIGZ0cDovL2Z0cC5weXRob24ub3JnLgotCi1TVElDSFRJTkcgTUFUSEVNQVRJU0NIIENFTlRSVU0gQU5EIENOUkkgRElTQ0xBSU0gQUxMIFdBUlJBTlRJRVMgV0lUSAotUkVHQVJEIFRPIFRISVMgU09GVFdBUkUsIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GCi1NRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MsIElOIE5PIEVWRU5UIFNIQUxMIFNUSUNIVElORyBNQVRIRU1BVElTQ0gKLUNFTlRSVU0gT1IgQ05SSSBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBJTkRJUkVDVCBPUiBDT05TRVFVRU5USUFMCi1EQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IKLVBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSCi1UT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SCi1QRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLgotCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIE1vZHVsZSBjb25maWd1cmF0aW9uICovCi0KLS8qIFRoaXMgZmlsZSBjb250YWlucyB0aGUgdGFibGUgb2YgYnVpbHQtaW4gbW9kdWxlcy4KLSAgIFNlZSBpbml0X2J1aWx0aW4oKSBpbiBpbXBvcnQuYy4gKi8KLQotI2luY2x1ZGUgIlB5dGhvbi5oIgotCi1leHRlcm4gdm9pZCBpbml0b3MyKCk7Ci1leHRlcm4gdm9pZCBpbml0c2lnbmFsKCk7Ci0jaWZkZWYgV0lUSF9USFJFQUQKLWV4dGVybiB2b2lkIGluaXRfdGhyZWFkKCk7Ci0jZW5kaWYKLWV4dGVybiB2b2lkIGluaXRfY29kZWNzKCk7Ci1leHRlcm4gdm9pZCBpbml0X2NzdigpOwotZXh0ZXJuIHZvaWQgaW5pdF9sb2NhbGUoKTsKLWV4dGVybiB2b2lkIGluaXRfcmFuZG9tKCk7Ci1leHRlcm4gdm9pZCBpbml0X3NyZSgpOwotZXh0ZXJuIHZvaWQgaW5pdF9zeW10YWJsZSgpOwotZXh0ZXJuIHZvaWQgaW5pdF93ZWFrcmVmKCk7Ci1leHRlcm4gdm9pZCBpbml0YXJyYXkoKTsKLWV4dGVybiB2b2lkIGluaXRiaW5hc2NpaSgpOwotZXh0ZXJuIHZvaWQgaW5pdGNvbGxlY3Rpb25zKCk7Ci1leHRlcm4gdm9pZCBpbml0Y21hdGgoKTsKLWV4dGVybiB2b2lkIGluaXRkYXRldGltZSgpOwotZXh0ZXJuIHZvaWQgaW5pdGRsKCk7Ci1leHRlcm4gdm9pZCBpbml0ZXJybm8oKTsKLWV4dGVybiB2b2lkIGluaXRmY250bCgpOwotZXh0ZXJuIHZvaWQgaW5pdF9mdW5jdG9vbHMoKTsKLWV4dGVybiB2b2lkIGluaXRfaGVhcHEoKTsKLWV4dGVybiB2b2lkIGluaXRpbWFnZW9wKCk7Ci1leHRlcm4gdm9pZCBpbml0aXRlcnRvb2xzKCk7Ci1leHRlcm4gdm9pZCBpbml0bWF0aCgpOwotZXh0ZXJuIHZvaWQgaW5pdF9tZDUoKTsKLWV4dGVybiB2b2lkIGluaXRvcGVyYXRvcigpOwotZXh0ZXJuIHZvaWQgaW5pdF9zaGEoKTsKLWV4dGVybiB2b2lkIGluaXRfc2hhMjU2KCk7Ci1leHRlcm4gdm9pZCBpbml0X3NoYTUxMigpOwotZXh0ZXJuIHZvaWQgaW5pdF9zdHJ1Y3QoKTsKLWV4dGVybiB2b2lkIGluaXR0ZXJtaW9zKCk7Ci1leHRlcm4gdm9pZCBpbml0dGltZSgpOwotZXh0ZXJuIHZvaWQgaW5pdHh4c3VidHlwZSgpOwotZXh0ZXJuIHZvaWQgaW5pdHppcGltcG9ydCgpOwotI2lmICFIQVZFX0RZTkFNSUNfTE9BRElORwotZXh0ZXJuIHZvaWQgaW5pdF9jdXJzZXMoKTsKLWV4dGVybiB2b2lkIGluaXRfY3Vyc2VzX3BhbmVsKCk7Ci1leHRlcm4gdm9pZCBpbml0X3Rlc3RjYXBpKCk7Ci1leHRlcm4gdm9pZCBpbml0YnoyKCk7Ci1leHRlcm4gdm9pZCBpbml0ZnBlY3RsKCk7Ci1leHRlcm4gdm9pZCBpbml0ZnBldGVzdCgpOwotZXh0ZXJuIHZvaWQgaW5pdHBhcnNlcigpOwotZXh0ZXJuIHZvaWQgaW5pdHB3ZCgpOwotZXh0ZXJuIHZvaWQgaW5pdHVuaWNvZGVkYXRhKCk7Ci1leHRlcm4gdm9pZCBpbml0emxpYigpOwotI2lmZGVmIFVTRV9TT0NLRVQKLWV4dGVybiB2b2lkIGluaXRfc29ja2V0KCk7Ci1leHRlcm4gdm9pZCBpbml0c2VsZWN0KCk7Ci0jZW5kaWYKLSNlbmRpZgotLyogLS0gQURETU9EVUxFIE1BUktFUiAxIC0tICovCi0KLWV4dGVybiB2b2lkIFB5TWFyc2hhbF9Jbml0KCk7Ci1leHRlcm4gdm9pZCBpbml0aW1wKCk7Ci1leHRlcm4gdm9pZCBpbml0Z2MoKTsKLQotc3RydWN0IF9pbml0dGFiIF9QeUltcG9ydF9Jbml0dGFiW10gPSB7Ci0KLSAgICB7Im9zMiIsIGluaXRvczJ9LAotICAgIHsic2lnbmFsIiwgaW5pdHNpZ25hbH0sCi0jaWZkZWYgV0lUSF9USFJFQUQKLSAgICB7Il90aHJlYWQiLCBpbml0X3RocmVhZH0sCi0jZW5kaWYKLSAgICB7Il9jb2RlY3MiLCBpbml0X2NvZGVjc30sCi0gICAgeyJfY3N2IiwgaW5pdF9jc3Z9LAotICAgIHsiX2xvY2FsZSIsIGluaXRfbG9jYWxlfSwKLSAgICB7Il9yYW5kb20iLCBpbml0X3JhbmRvbX0sCi0gICAgeyJfc3JlIiwgaW5pdF9zcmV9LAotICAgIHsiX3N5bXRhYmxlIiwgaW5pdF9zeW10YWJsZX0sCi0gICAgeyJfd2Vha3JlZiIsIGluaXRfd2Vha3JlZn0sCi0gICAgeyJhcnJheSIsIGluaXRhcnJheX0sCi0gICAgeyJiaW5hc2NpaSIsIGluaXRiaW5hc2NpaX0sCi0gICAgeyJjb2xsZWN0aW9ucyIsIGluaXRjb2xsZWN0aW9uc30sCi0gICAgeyJjbWF0aCIsIGluaXRjbWF0aH0sCi0gICAgeyJkYXRldGltZSIsIGluaXRkYXRldGltZX0sCi0gICAgeyJkbCIsIGluaXRkbH0sCi0gICAgeyJlcnJubyIsIGluaXRlcnJub30sCi0gICAgeyJmY250bCIsIGluaXRmY250bH0sCi0gICAgeyJfZnVuY3Rvb2xzIiwgaW5pdF9mdW5jdG9vbHN9LAotICAgIHsiX2hlYXBxIiwgaW5pdF9oZWFwcX0sCi0gICAgeyJpbWFnZW9wIiwgaW5pdGltYWdlb3B9LAotICAgIHsiaXRlcnRvb2xzIiwgaW5pdGl0ZXJ0b29sc30sCi0gICAgeyJtYXRoIiwgaW5pdG1hdGh9LAotICAgIHsib3BlcmF0b3IiLCBpbml0b3BlcmF0b3J9LAotICAgIHsiX3NoYTI1NiIsIGluaXRfc2hhMjU2fSwKLSAgICB7Il9zaGE1MTIiLCBpbml0X3NoYTUxMn0sCi0gICAgeyJfc3RydWN0IiwgaW5pdF9zdHJ1Y3R9LAotICAgIHsidGVybWlvcyIsIGluaXR0ZXJtaW9zfSwKLSAgICB7InRpbWUiLCBpbml0dGltZX0sCi0gICAgeyJ4eHN1YnR5cGUiLCBpbml0eHhzdWJ0eXBlfSwKLSAgICB7InppcGltcG9ydCIsIGluaXR6aXBpbXBvcnR9LAotI2lmICFIQVZFX0RZTkFNSUNfTE9BRElORwotICAgIHsiX2N1cnNlcyIsIGluaXRfY3Vyc2VzfSwKLSAgICB7Il9jdXJzZXNfcGFuZWwiLCBpbml0X2N1cnNlc19wYW5lbH0sCi0gICAgeyJfdGVzdGNhcGkiLCBpbml0X3Rlc3RjYXBpfSwKLSAgICB7ImJ6MiIsIGluaXRiejJ9LAotICAgIHsiZnBlY3RsIiwgaW5pdGZwZWN0bH0sCi0gICAgeyJmcGV0ZXN0IiwgaW5pdGZwZXRlc3R9LAotICAgIHsicGFyc2VyIiwgaW5pdHBhcnNlcn0sCi0gICAgeyJwd2QiLCBpbml0cHdkfSwKLSAgICB7InVuaWNvZGVkYXRhIiwgaW5pdHVuaWNvZGVkYXRhfSwKLSAgICB7InpsaWIiLCBpbml0emxpYn0sCi0jaWZkZWYgVVNFX1NPQ0tFVAotICAgIHsiX3NvY2tldCIsIGluaXRfc29ja2V0fSwKLSAgICB7InNlbGVjdCIsIGluaXRzZWxlY3R9LAotI2VuZGlmCi0jZW5kaWYKLS8qIC0tIEFERE1PRFVMRSBNQVJLRVIgMiAtLSAqLwotCi0gICAgLyogVGhpcyBtb2R1bGUgImxpdmVzIGluIiB3aXRoIG1hcnNoYWwuYyAqLwotICAgIHsibWFyc2hhbCIsIFB5TWFyc2hhbF9Jbml0fSwKLQotICAgIC8qIFRoaXMgbGl2ZXMgaXQgd2l0aCBpbXBvcnQuYyAqLwotICAgIHsiX2ltcCIsIGluaXRpbXB9LAotCi0gICAgLyogVGhlc2UgZW50cmllcyBhcmUgaGVyZSBmb3Igc3lzLmJ1aWx0aW5fbW9kdWxlX25hbWVzICovCi0gICAgeyJidWlsdGlucyIsIE5VTEx9LAotICAgIHsic3lzIiwgTlVMTH0sCi0KLSAgICAvKiBUaGlzIGxpdmVzIGluIGdjbW9kdWxlLmMgKi8KLSAgICB7ImdjIiwgaW5pdGdjfSwKLQotICAgIC8qIFNlbnRpbmVsICovCi0gICAgezAsIDB9Ci19OwpkaWZmIC0tZ2l0IGEvUEMvb3MyZW14L2RsZmNuLmMgYi9QQy9vczJlbXgvZGxmY24uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWJkYTljZC4uMDAwMDAwMAotLS0gYS9QQy9vczJlbXgvZGxmY24uYworKysgL2Rldi9udWxsCkBAIC0xLDIyMyArMCwwIEBACi0vKiAtKi0gQyAtKi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLUNvcHlyaWdodCAxOTkxLTE5OTUgYnkgU3RpY2h0aW5nIE1hdGhlbWF0aXNjaCBDZW50cnVtLCBBbXN0ZXJkYW0sCi1UaGUgTmV0aGVybGFuZHMuCi0KLSAgICAgICAgICAgICAgICAgICAgICAgIEFsbCBSaWdodHMgUmVzZXJ2ZWQKLQotUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzCi1kb2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSBhbmQgd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsCi1wcm92aWRlZCB0aGF0IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzIGFuZCB0aGF0Ci1ib3RoIHRoYXQgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4KLXN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbiwgYW5kIHRoYXQgdGhlIG5hbWVzIG9mIFN0aWNodGluZyBNYXRoZW1hdGlzY2gKLUNlbnRydW0gb3IgQ1dJIG9yIENvcnBvcmF0aW9uIGZvciBOYXRpb25hbCBSZXNlYXJjaCBJbml0aWF0aXZlcyBvcgotQ05SSSBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0bwotZGlzdHJpYnV0aW9uIG9mIHRoZSBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yCi1wZXJtaXNzaW9uLgotCi1XaGlsZSBDV0kgaXMgdGhlIGluaXRpYWwgc291cmNlIGZvciB0aGlzIHNvZnR3YXJlLCBhIG1vZGlmaWVkIHZlcnNpb24KLWlzIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBDb3Jwb3JhdGlvbiBmb3IgTmF0aW9uYWwgUmVzZWFyY2ggSW5pdGlhdGl2ZXMKLShDTlJJKSBhdCB0aGUgSW50ZXJuZXQgYWRkcmVzcyBmdHA6Ly9mdHAucHl0aG9uLm9yZy4KLQotU1RJQ0hUSU5HIE1BVEhFTUFUSVNDSCBDRU5UUlVNIEFORCBDTlJJIERJU0NMQUlNIEFMTCBXQVJSQU5USUVTIFdJVEgKLVJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLCBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgotTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLCBJTiBOTyBFVkVOVCBTSEFMTCBTVElDSFRJTkcgTUFUSEVNQVRJU0NICi1DRU5UUlVNIE9SIENOUkkgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTAotREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SCi1QUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUgotVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUgotUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KLQotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBUaGlzIGxpYnJhcnkgaW1wbGVtZW50cyBkbG9wZW4oKSAtIFVuaXgtbGlrZSBkeW5hbWljIGxpbmtpbmcKLSAqIGVtdWxhdGlvbiBmdW5jdGlvbnMgZm9yIE9TLzIgdXNpbmcgRG9zTG9hZE1vZHVsZSgpIGFuZCBjb21wYW55LgotICovCi0KLSNkZWZpbmUgSU5DTF9ET1MKLSNkZWZpbmUgSU5DTF9ET1NFUlJPUlMKLSNkZWZpbmUgSU5DTF9ET1NTRVNNR1IKLSNkZWZpbmUgSU5DTF9XSU5QUk9HUkFNTElTVAotI2RlZmluZSBJTkNMX1dJTkZSQU1FTUdSCi0jaW5jbHVkZSA8b3MyLmg+Ci0KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPG1hbGxvYy5oPgotCi10eXBlZGVmIHN0cnVjdCBfdHJhY2tfcmVjIHsKLSAgICBjaGFyICpuYW1lOwotICAgIEhNT0RVTEUgaGFuZGxlOwotICAgIHZvaWQgKmlkOwotICAgIHN0cnVjdCBfdHJhY2tfcmVjICpuZXh0OwotfSB0RExMY2hhaW4sICpETExjaGFpbjsKLQotc3RhdGljIERMTGNoYWluIGRsbG9hZCA9IE5VTEw7ICAvKiBBIHNpbXBsZSBjaGFpbmVkIGxpc3Qgb2YgRExMIG5hbWVzICovCi1zdGF0aWMgY2hhciBkbGVyciBbMjU2XTsgICAgICAgIC8qIGxhc3QgZXJyb3IgdGV4dCBzdHJpbmcgKi8KLXN0YXRpYyB2b2lkICpsYXN0X2lkOwotCi1zdGF0aWMgRExMY2hhaW4gZmluZF9pZCh2b2lkICppZCkKLXsKLSAgICBETExjaGFpbiB0bXA7Ci0KLSAgICBmb3IgKHRtcCA9IGRsbG9hZDsgdG1wOyB0bXAgPSB0bXAtPm5leHQpCi0gICAgICAgIGlmIChpZCA9PSB0bXAtPmlkKQotICAgICAgICAgICAgcmV0dXJuIHRtcDsKLQotICAgIHJldHVybiBOVUxMOwotfQotCi0vKiBsb2FkIGEgZHluYW1pYy1saW5rIGxpYnJhcnkgYW5kIHJldHVybiBoYW5kbGUgKi8KLXZvaWQgKmRsb3BlbihjaGFyICpmaWxlbmFtZSwgaW50IGZsYWdzKQotewotICAgIEhNT0RVTEUgaG07Ci0gICAgRExMY2hhaW4gdG1wOwotICAgIGNoYXIgZXJyWzI1Nl07Ci0gICAgY2hhciAqZXJydHh0OwotICAgIGludCByYyA9IDAsIHNldF9jaGFpbiA9IDA7Ci0KLSAgICBmb3IgKHRtcCA9IGRsbG9hZDsgdG1wOyB0bXAgPSB0bXAtPm5leHQpCi0gICAgICAgIGlmIChzdHJuaWNtcCh0bXAtPm5hbWUsIGZpbGVuYW1lLCA5OTkpID09IDApCi0gICAgICAgICAgICBicmVhazsKLQotICAgIGlmICghdG1wKQotICAgIHsKLSAgICAgICAgdG1wID0gKERMTGNoYWluKSBtYWxsb2Moc2l6ZW9mKHRETExjaGFpbikpOwotICAgICAgICBpZiAoIXRtcCkKLSAgICAgICAgICAgIGdvdG8gbm9tZW07Ci0gICAgICAgIHRtcC0+bmFtZSA9IHN0cmR1cChmaWxlbmFtZSk7Ci0gICAgICAgIHRtcC0+bmV4dCA9IGRsbG9hZDsKLSAgICAgICAgc2V0X2NoYWluID0gMTsKLSAgICB9Ci0KLSAgICBzd2l0Y2ggKHJjID0gRG9zTG9hZE1vZHVsZSgoUFNaKSZlcnIsIHNpemVvZihlcnIpLCBmaWxlbmFtZSwgJmhtKSkKLSAgICB7Ci0gICAgICAgIGNhc2UgTk9fRVJST1I6Ci0gICAgICAgICAgICB0bXAtPmhhbmRsZSA9IGhtOwotICAgICAgICAgICAgaWYgKHNldF9jaGFpbikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBkbwotICAgICAgICAgICAgICAgICAgICBsYXN0X2lkKys7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKChsYXN0X2lkID09IDApIHx8IChmaW5kX2lkKGxhc3RfaWQpKSk7Ci0gICAgICAgICAgICAgICAgdG1wLT5pZCA9IGxhc3RfaWQ7Ci0gICAgICAgICAgICAgICAgZGxsb2FkID0gdG1wOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHRtcC0+aWQ7Ci0gICAgICAgIGNhc2UgRVJST1JfRklMRV9OT1RfRk9VTkQ6Ci0gICAgICAgIGNhc2UgRVJST1JfUEFUSF9OT1RfRk9VTkQ6Ci0gICAgICAgICAgICBlcnJ0eHQgPSAibW9kdWxlIGAlcycgbm90IGZvdW5kIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEVSUk9SX1RPT19NQU5ZX09QRU5fRklMRVM6Ci0gICAgICAgIGNhc2UgRVJST1JfTk9UX0VOT1VHSF9NRU1PUlk6Ci0gICAgICAgIGNhc2UgRVJST1JfU0hBUklOR19CVUZGRVJfRVhDRUVERUQ6Ci1ub21lbToKLSAgICAgICAgICAgIGVycnR4dCA9ICJvdXQgb2Ygc3lzdGVtIHJlc291cmNlcyI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBFUlJPUl9BQ0NFU1NfREVOSUVEOgotICAgICAgICAgICAgZXJydHh0ID0gImFjY2VzcyBkZW5pZWQiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRVJST1JfQkFEX0ZPUk1BVDoKLSAgICAgICAgY2FzZSBFUlJPUl9JTlZBTElEX1NFR01FTlRfTlVNQkVSOgotICAgICAgICBjYXNlIEVSUk9SX0lOVkFMSURfT1JESU5BTDoKLSAgICAgICAgY2FzZSBFUlJPUl9JTlZBTElEX01PRFVMRVRZUEU6Ci0gICAgICAgIGNhc2UgRVJST1JfSU5WQUxJRF9FWEVfU0lHTkFUVVJFOgotICAgICAgICBjYXNlIEVSUk9SX0VYRV9NQVJLRURfSU5WQUxJRDoKLSAgICAgICAgY2FzZSBFUlJPUl9JVEVSQVRFRF9EQVRBX0VYQ0VFRFNfNjRLOgotICAgICAgICBjYXNlIEVSUk9SX0lOVkFMSURfTUlOQUxMT0NTSVpFOgotICAgICAgICBjYXNlIEVSUk9SX0lOVkFMSURfU0VHRFBMOgotICAgICAgICBjYXNlIEVSUk9SX0FVVE9EQVRBU0VHX0VYQ0VFRFNfNjRLOgotICAgICAgICBjYXNlIEVSUk9SX1JFTE9DU1JDX0NIQUlOX0VYQ0VFRFNfU0VHTElNSVQ6Ci0gICAgICAgICAgICBlcnJ0eHQgPSAiaW52YWxpZCBtb2R1bGUgZm9ybWF0IjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEVSUk9SX0lOVkFMSURfTkFNRToKLSAgICAgICAgICAgIGVycnR4dCA9ICJmaWxlbmFtZSBkb2Vzbid0IG1hdGNoIG1vZHVsZSBuYW1lIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEVSUk9SX1NIQVJJTkdfVklPTEFUSU9OOgotICAgICAgICBjYXNlIEVSUk9SX0xPQ0tfVklPTEFUSU9OOgotICAgICAgICAgICAgZXJydHh0ID0gInNoYXJpbmcgdmlvbGF0aW9uIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEVSUk9SX0lOSVRfUk9VVElORV9GQUlMRUQ6Ci0gICAgICAgICAgICBlcnJ0eHQgPSAibW9kdWxlIGluaXRpYWxpemF0aW9uIGZhaWxlZCI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGVycnR4dCA9ICJjYXVzZSBgJXMnLCBlcnJvciBjb2RlID0gJWQiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHNucHJpbnRmKGRsZXJyLCBzaXplb2YoZGxlcnIpLCBlcnJ0eHQsICZlcnIsIHJjKTsKLSAgICBpZiAodG1wKQotICAgIHsKLSAgICAgICAgaWYgKHRtcC0+bmFtZSkKLSAgICAgICAgICAgIGZyZWUodG1wLT5uYW1lKTsKLSAgICAgICAgZnJlZSh0bXApOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotLyogcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgYHN5bWJvbCcgaW4gRExMICovCi12b2lkICpkbHN5bSh2b2lkICpoYW5kbGUsIGNoYXIgKnN5bWJvbCkKLXsKLSAgICBpbnQgcmMgPSAwOwotICAgIFBGTiBhZGRyOwotICAgIGNoYXIgKmVycnR4dDsKLSAgICBpbnQgc3ltb3JkID0gMDsKLSAgICBETExjaGFpbiB0bXAgPSBmaW5kX2lkKGhhbmRsZSk7Ci0KLSAgICBpZiAoIXRtcCkKLSAgICAgICAgZ290byBpbnZfaGFuZGxlOwotCi0gICAgaWYgKCpzeW1ib2wgPT0gJyMnKQotICAgICAgICBzeW1vcmQgPSBhdG9pKHN5bWJvbCArIDEpOwotCi0gICAgc3dpdGNoIChyYyA9IERvc1F1ZXJ5UHJvY0FkZHIodG1wLT5oYW5kbGUsIHN5bW9yZCwgc3ltYm9sLCAmYWRkcikpCi0gICAgewotICAgICAgICBjYXNlIE5PX0VSUk9SOgotICAgICAgICAgICAgcmV0dXJuICh2b2lkICopYWRkcjsKLSAgICAgICAgY2FzZSBFUlJPUl9JTlZBTElEX0hBTkRMRToKLWludl9oYW5kbGU6Ci0gICAgICAgICAgICBlcnJ0eHQgPSAiaW52YWxpZCBtb2R1bGUgaGFuZGxlIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEVSUk9SX1BST0NfTk9UX0ZPVU5EOgotICAgICAgICBjYXNlIEVSUk9SX0lOVkFMSURfTkFNRToKLSAgICAgICAgICAgIGVycnR4dCA9ICJubyBzeW1ib2wgYCVzJyBpbiBtb2R1bGUiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBlcnJ0eHQgPSAic3ltYm9sIGAlcycsIGVycm9yIGNvZGUgPSAlZCI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgc25wcmludGYoZGxlcnIsIHNpemVvZihkbGVyciksIGVycnR4dCwgc3ltYm9sLCByYyk7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLS8qIGZyZWUgZHluYW1pY2FsbHktbGlua2VkIGxpYnJhcnkgKi8KLWludCBkbGNsb3NlKHZvaWQgKmhhbmRsZSkKLXsKLSAgICBpbnQgcmM7Ci0gICAgRExMY2hhaW4gdG1wID0gZmluZF9pZChoYW5kbGUpOwotCi0gICAgaWYgKCF0bXApCi0gICAgICAgIGdvdG8gaW52X2hhbmRsZTsKLQotICAgIHN3aXRjaCAocmMgPSBEb3NGcmVlTW9kdWxlKHRtcC0+aGFuZGxlKSkKLSAgICB7Ci0gICAgICAgIGNhc2UgTk9fRVJST1I6Ci0gICAgICAgICAgICBmcmVlKHRtcC0+bmFtZSk7Ci0gICAgICAgICAgICBkbGxvYWQgPSB0bXAtPm5leHQ7Ci0gICAgICAgICAgICBmcmVlKHRtcCk7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgY2FzZSBFUlJPUl9JTlZBTElEX0hBTkRMRToKLWludl9oYW5kbGU6Ci0gICAgICAgICAgICBzdHJjcHkoZGxlcnIsICJpbnZhbGlkIG1vZHVsZSBoYW5kbGUiKTsKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgY2FzZSBFUlJPUl9JTlZBTElEX0FDQ0VTUzoKLSAgICAgICAgICAgIHN0cmNweShkbGVyciwgImFjY2VzcyBkZW5pZWQiKTsKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci19Ci0KLS8qIHJldHVybiBhIHN0cmluZyBkZXNjcmliaW5nIGxhc3Qgb2NjdXJyZWQgZGwgZXJyb3IgKi8KLWNoYXIgKmRsZXJyb3IoKQotewotICAgIHJldHVybiBkbGVycjsKLX0KZGlmZiAtLWdpdCBhL1BDL29zMmVteC9kbGZjbi5oIGIvUEMvb3MyZW14L2RsZmNuLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3M2FlNjkuLjAwMDAwMDAKLS0tIGEvUEMvb3MyZW14L2RsZmNuLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0vKiAtKi0gQyAtKi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLUNvcHlyaWdodCAxOTkxLTE5OTUgYnkgU3RpY2h0aW5nIE1hdGhlbWF0aXNjaCBDZW50cnVtLCBBbXN0ZXJkYW0sCi1UaGUgTmV0aGVybGFuZHMuCi0KLSAgICAgICAgICAgICAgICAgICAgICAgIEFsbCBSaWdodHMgUmVzZXJ2ZWQKLQotUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzCi1kb2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSBhbmQgd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsCi1wcm92aWRlZCB0aGF0IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzIGFuZCB0aGF0Ci1ib3RoIHRoYXQgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4KLXN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbiwgYW5kIHRoYXQgdGhlIG5hbWVzIG9mIFN0aWNodGluZyBNYXRoZW1hdGlzY2gKLUNlbnRydW0gb3IgQ1dJIG9yIENvcnBvcmF0aW9uIGZvciBOYXRpb25hbCBSZXNlYXJjaCBJbml0aWF0aXZlcyBvcgotQ05SSSBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0bwotZGlzdHJpYnV0aW9uIG9mIHRoZSBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yCi1wZXJtaXNzaW9uLgotCi1XaGlsZSBDV0kgaXMgdGhlIGluaXRpYWwgc291cmNlIGZvciB0aGlzIHNvZnR3YXJlLCBhIG1vZGlmaWVkIHZlcnNpb24KLWlzIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBDb3Jwb3JhdGlvbiBmb3IgTmF0aW9uYWwgUmVzZWFyY2ggSW5pdGlhdGl2ZXMKLShDTlJJKSBhdCB0aGUgSW50ZXJuZXQgYWRkcmVzcyBmdHA6Ly9mdHAucHl0aG9uLm9yZy4KLQotU1RJQ0hUSU5HIE1BVEhFTUFUSVNDSCBDRU5UUlVNIEFORCBDTlJJIERJU0NMQUlNIEFMTCBXQVJSQU5USUVTIFdJVEgKLVJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLCBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgotTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLCBJTiBOTyBFVkVOVCBTSEFMTCBTVElDSFRJTkcgTUFUSEVNQVRJU0NICi1DRU5UUlVNIE9SIENOUkkgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgSU5ESVJFQ1QgT1IgQ09OU0VRVUVOVElBTAotREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SCi1QUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUiBPVEhFUgotVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUgotUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KLQotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBUaGlzIGxpYnJhcnkgaW1wbGVtZW50cyBkbG9wZW4oKSAtIFVuaXgtbGlrZSBkeW5hbWljIGxpbmtpbmcKLSAqIGVtdWxhdGlvbiBmdW5jdGlvbnMgZm9yIE9TLzIgdXNpbmcgRG9zTG9hZE1vZHVsZSgpIGFuZCBjb21wYW55LgotICovCi0KLSNpZm5kZWYgX0RMRkNOX0gKLSNkZWZpbmUgX0RMRkNOX0gKLQotLyogbG9hZCBhIGR5bmFtaWMtbGluayBsaWJyYXJ5IGFuZCByZXR1cm4gaGFuZGxlICovCi12b2lkICpkbG9wZW4oY2hhciAqZmlsZW5hbWUsIGludCBmbGFncyk7Ci0KLS8qIHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIGBzeW1ib2wnIGluIERMTCAqLwotdm9pZCAqZGxzeW0odm9pZCAqaGFuZGxlLCBjaGFyICpzeW1ib2wpOwotCi0vKiBmcmVlIGR5bmFtaWNhbGx5LWxpbmtlZCBsaWJyYXJ5ICovCi1pbnQgZGxjbG9zZSh2b2lkICpoYW5kbGUpOwotCi0vKiByZXR1cm4gYSBzdHJpbmcgZGVzY3JpYmluZyBsYXN0IG9jY3VycmVkIGRsIGVycm9yICovCi1jaGFyICpkbGVycm9yKHZvaWQpOwotCi0jZW5kaWYgLyogIV9ETEZDTl9IICovCmRpZmYgLS1naXQgYS9QQy9vczJlbXgvZGxsZW50cnkuYyBiL1BDL29zMmVteC9kbGxlbnRyeS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5Y2NjYTFjLi4wMDAwMDAwCi0tLSBhL1BDL29zMmVteC9kbGxlbnRyeS5jCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgUHl0aG9uIDIuMyBjb3JlIERMTC4KLSAqLwotCi0jZGVmaW5lIE5VTEwgMAotCi0jZGVmaW5lIFJFRihzKSAgZXh0ZXJuIHZvaWQgcygpOyB2b2lkICpfX19fcmVmXyMjcyA9ICZzOwotCi0vKiBNYWtlIHJlZmVyZW5jZXMgdG8gaW1wb3J0ZWQgc3ltYm9scyB0byBwdWxsIHRoZW0gZnJvbSBzdGF0aWMgbGlicmFyeSAqLwotUkVGKFB5X01haW4pOwotCi0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0KLWV4dGVybiBpbnQgX0NSVF9pbml0KHZvaWQpOwotZXh0ZXJuIHZvaWQgX0NSVF90ZXJtKHZvaWQpOwotZXh0ZXJuIHZvaWQgX19jdG9yZHRvckluaXQodm9pZCk7Ci1leHRlcm4gdm9pZCBfX2N0b3JkdG9yVGVybSh2b2lkKTsKLQotdW5zaWduZWQgbG9uZyBfRExMX0luaXRUZXJtKHVuc2lnbmVkIGxvbmcgbW9kX2hhbmRsZSwgdW5zaWduZWQgbG9uZyBmbGFnKQotewotICAgIHN3aXRjaCAoZmxhZykKLSAgICB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIGlmIChfQ1JUX2luaXQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIF9fY3RvcmR0b3JJbml0KCk7Ci0KLSAgICAgICAgICAgIC8qIElnbm9yZSBmYXRhbCBzaWduYWxzICovCi0gICAgICAgICAgICBzaWduYWwoU0lHU0VHViwgU0lHX0lHTik7Ci0gICAgICAgICAgICBzaWduYWwoU0lHRlBFLCBTSUdfSUdOKTsKLQotICAgICAgICAgICAgcmV0dXJuIDE7Ci0KLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgX19jdG9yZHRvclRlcm0oKTsKLSAgICAgICAgICAgIF9DUlRfdGVybSgpOwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1BDL29zMmVteC9nZXRwYXRocC5jIGIvUEMvb3MyZW14L2dldHBhdGhwLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkNzM3NzQuLjAwMDAwMDAKLS0tIGEvUEMvb3MyZW14L2dldHBhdGhwLmMKKysrIC9kZXYvbnVsbApAQCAtMSw0MTggKzAsMCBAQAotCi0vKiBSZXR1cm4gdGhlIGluaXRpYWwgbW9kdWxlIHNlYXJjaCBwYXRoLiAqLwotLyogVGhpcyB2ZXJzaW9uIHVzZWQgYnkgT1MvMitFTVggKi8KLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgUEFUSCBSVUxFUyBGT1IgT1MvMitFTVg6Ci0gICBUaGlzIGRlc2NyaWJlcyBob3cgc3lzLnBhdGggaXMgZm9ybWVkIG9uIE9TLzIrRU1YLiAgSXQgZGVzY3JpYmVzIHRoZQotICAgZnVuY3Rpb25hbGl0eSwgbm90IHRoZSBpbXBsZW1lbnRhdGlvbiAoaWUsIHRoZSBvcmRlciBpbiB3aGljaCB0aGVzZQotICAgYXJlIGFjdHVhbGx5IGZldGNoZWQgaXMgZGlmZmVyZW50KQotCi0gICAqIFB5dGhvbiBhbHdheXMgYWRkcyBhbiBlbXB0eSBlbnRyeSBhdCB0aGUgc3RhcnQsIHdoaWNoIGNvcnJlc3BvbmRzCi0gICAgIHRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KLQotICAgKiBJZiB0aGUgUFlUSE9OUEFUSCBlbnYuIHZhci4gZXhpc3RzLCBpdHMgZW50cmllcyBhcmUgYWRkZWQgbmV4dC4KLQotICAgKiBXZSBhdHRlbXB0IHRvIGxvY2F0ZSB0aGUgIlB5dGhvbiBIb21lIiAtIGlmIHRoZSBQWVRIT05IT01FIGVudiB2YXIKLSAgICAgaXMgc2V0LCB3ZSBiZWxpZXZlIGl0LiAgT3RoZXJ3aXNlLCB3ZSB1c2UgdGhlIHBhdGggb2Ygb3VyIGhvc3QgLkVYRSdzCi0gICAgIHRvIHRyeSBhbmQgbG9jYXRlIG91ciAibGFuZG1hcmsiIChsaWJcXG9zLnB5KSBhbmQgZGVkdWNlIG91ciBob21lLgotICAgICAtIElmIHdlIERPIGhhdmUgYSBQeXRob24gSG9tZTogVGhlIHJlbGV2YW50IHN1Yi1kaXJlY3RvcmllcyAoTGliLAotICAgICAgIHBsYXQtd2luLCBldGMpIGFyZSBiYXNlZCBvbiB0aGUgUHl0aG9uIEhvbWUKLSAgICAgLSBJZiB3ZSBETyBOT1QgaGF2ZSBhIFB5dGhvbiBIb21lLCB0aGUgY29yZSBQeXRob24gUGF0aCBpcwotICAgICAgIGxvYWRlZCBmcm9tIHRoZSByZWdpc3RyeS4gIFRoaXMgaXMgdGhlIG1haW4gUHl0aG9uUGF0aCBrZXksCi0gICAgICAgYW5kIGJvdGggSEtMTSBhbmQgSEtDVSBhcmUgY29tYmluZWQgdG8gZm9ybSB0aGUgcGF0aCkKLQotICAgKiBJZmYgLSB3ZSBjYW4gbm90IGxvY2F0ZSB0aGUgUHl0aG9uIEhvbWUsIGFuZCBoYXZlIG5vdCBoYWQgYSBQWVRIT05QQVRICi0gICAgIHNwZWNpZmllZCAoaWUsIHdlIGhhdmUgX25vdGhpbmdfIHdlIGNhbiBhc3N1bWUgaXMgYSBnb29kIHBhdGgpLCBhCi0gICAgIGRlZmF1bHQgcGF0aCB3aXRoIHJlbGF0aXZlIGVudHJpZXMgaXMgdXNlZCAoZWcuIC5cTGliOy5ccGxhdC13aW4sIGV0YykKLQotCi0gIFRoZSBlbmQgcmVzdWx0IG9mIGFsbCB0aGlzIGlzOgotICAqIFdoZW4gcnVubmluZyBweXRob24uZXhlLCBvciBhbnkgb3RoZXIgLmV4ZSBpbiB0aGUgbWFpbiBQeXRob24gZGlyZWN0b3J5Ci0gICAgKGVpdGhlciBhbiBpbnN0YWxsZWQgdmVyc2lvbiwgb3IgZGlyZWN0bHkgZnJvbSB0aGUgUENidWlsZCBkaXJlY3RvcnkpLAotICAgIHRoZSBjb3JlIHBhdGggaXMgZGVkdWNlZC4KLQotICAqIFdoZW4gUHl0aG9uIGlzIGhvc3RlZCBpbiBhbm90aGVyIGV4ZSAoZGlmZmVyZW50IGRpcmVjdG9yeSwgZW1iZWRkZWQgdmlhCi0gICAgQ09NLCBldGMpLCB0aGUgUHl0aG9uIEhvbWUgd2lsbCBub3QgYmUgZGVkdWNlZCwgc28gdGhlIGNvcmUgcGF0aCBmcm9tCi0gICAgdGhlIHJlZ2lzdHJ5IGlzIHVzZWQuICBPdGhlciAiYXBwbGljYXRpb24gcGF0aHMgImluIHRoZSByZWdpc3RyeSBhcmUKLSAgICBhbHdheXMgcmVhZC4KLQotICAqIElmIFB5dGhvbiBjYW4ndCBmaW5kIGl0cyBob21lIGFuZCB0aGVyZSBpcyBubyByZWdpc3RyeSAoZWcsIGZyb3plbgotICAgIGV4ZSwgc29tZSB2ZXJ5IHN0cmFuZ2UgaW5zdGFsbGF0aW9uIHNldHVwKSB5b3UgZ2V0IGEgcGF0aCB3aXRoCi0gICAgc29tZSBkZWZhdWx0LCBidXQgcmVsYXRpdmUsIHBhdGhzLgotCi0gICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLQotI2luY2x1ZGUgIlB5dGhvbi5oIgotI2luY2x1ZGUgIm9zZGVmcy5oIgotCi0jaWZuZGVmIFBZT1NfT1MyCi0jZXJyb3IgVGhpcyBmaWxlIG9ubHkgY29tcGlsYWJsZSBvbiBPUy8yCi0jZW5kaWYKLQotI2RlZmluZSBJTkNMX0RPUwotI2luY2x1ZGUgPG9zMi5oPgotCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2lmIEhBVkVfVU5JU1REX0gKLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNlbmRpZiAvKiBIQVZFX1VOSVNURF9IICovCi0KLS8qIFNlYXJjaCBpbiBzb21lIGNvbW1vbiBsb2NhdGlvbnMgZm9yIHRoZSBhc3NvY2lhdGVkIFB5dGhvbiBsaWJyYXJpZXMuCi0gKgotICogUHlfR2V0UGF0aCgpIHRyaWVzIHRvIHJldHVybiBhIHNlbnNpYmxlIFB5dGhvbiBtb2R1bGUgc2VhcmNoIHBhdGguCi0gKgotICogVGhlIGFwcHJvYWNoIGlzIGFuIGFkYXB0YXRpb24gZm9yIFdpbmRvd3Mgb2YgdGhlIHN0cmF0ZWd5IHVzZWQgaW4KLSAqIC4uL01vZHVsZXMvZ2V0cGF0aC5jOyBpdCB1c2VzIHRoZSBXaW5kb3dzIFJlZ2lzdHJ5IGFzIG9uZSBvZiBpdHMKLSAqIGluZm9ybWF0aW9uIHNvdXJjZXMuCi0gKi8KLQotI2lmbmRlZiBMQU5ETUFSSwotI2lmIGRlZmluZWQoUFlDQ19HQ0MpCi0jZGVmaW5lIExBTkRNQVJLICJsaWIvb3MucHkiCi0jZWxzZQotI2RlZmluZSBMQU5ETUFSSyAibGliXFxvcy5weSIKLSNlbmRpZgotI2VuZGlmCi0KLXN0YXRpYyBjaGFyIHByZWZpeFtNQVhQQVRITEVOKzFdOwotc3RhdGljIGNoYXIgcHJvZ3BhdGhbTUFYUEFUSExFTisxXTsKLXN0YXRpYyBjaGFyICptb2R1bGVfc2VhcmNoX3BhdGggPSBOVUxMOwotCi0KLXN0YXRpYyBpbnQKLWlzX3NlcChjaGFyIGNoKSAvKiBkZXRlcm1pbmUgaWYgImNoIiBpcyBhIHNlcGFyYXRvciBjaGFyYWN0ZXIgKi8KLXsKLSNpZmRlZiBBTFRTRVAKLSAgICByZXR1cm4gY2ggPT0gU0VQIHx8IGNoID09IEFMVFNFUDsKLSNlbHNlCi0gICAgcmV0dXJuIGNoID09IFNFUDsKLSNlbmRpZgotfQotCi0vKiBhc3N1bWVzICdkaXInIG51bGwgdGVybWluYXRlZCBpbiBib3VuZHMuCi0gKiBOZXZlciB3cml0ZXMgYmV5b25kIGV4aXN0aW5nIHRlcm1pbmF0b3IuCi0gKi8KLXN0YXRpYyB2b2lkCi1yZWR1Y2UoY2hhciAqZGlyKQotewotICAgIHNpemVfdCBpID0gc3RybGVuKGRpcik7Ci0gICAgd2hpbGUgKGkgPiAwICYmICFpc19zZXAoZGlyW2ldKSkKLSAgICAgICAgLS1pOwotICAgIGRpcltpXSA9ICdcMCc7Ci19Ci0KLXN0YXRpYyBpbnQKLWV4aXN0cyhjaGFyICpmaWxlbmFtZSkKLXsKLSAgICBzdHJ1Y3Qgc3RhdCBidWY7Ci0gICAgcmV0dXJuIHN0YXQoZmlsZW5hbWUsICZidWYpID09IDA7Ci19Ci0KLS8qIElzIG1vZHVsZSAgKGNoZWNrIGZvciAucHljLy5weW8gdG9vKQotICogQXNzdW1lcyAnZmlsZW5hbWUnIE1BWFBBVEhMRU4rMSBieXRlcyBsb25nIC0KLSAqIG1heSBleHRlbmQgJ2ZpbGVuYW1lJyBieSBvbmUgY2hhcmFjdGVyLgotICovCi1zdGF0aWMgaW50Ci1pc21vZHVsZShjaGFyICpmaWxlbmFtZSkKLXsKLSAgICBpZiAoZXhpc3RzKGZpbGVuYW1lKSkKLSAgICAgICAgcmV0dXJuIDE7Ci0KLSAgICAvKiBDaGVjayBmb3IgdGhlIGNvbXBpbGVkIHZlcnNpb24gb2YgcHJlZml4LiAqLwotICAgIGlmIChzdHJsZW4oZmlsZW5hbWUpIDwgTUFYUEFUSExFTikgewotICAgICAgICBzdHJjYXQoZmlsZW5hbWUsIFB5X09wdGltaXplRmxhZyA/ICJvIiA6ICJjIik7Ci0gICAgICAgIGlmIChleGlzdHMoZmlsZW5hbWUpKQotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotICAgIHJldHVybiAwOwotfQotCi0vKiBBZGQgYSBwYXRoIGNvbXBvbmVudCwgYnkgYXBwZW5kaW5nIHN0dWZmIHRvIGJ1ZmZlci4KLSAgIGJ1ZmZlciBtdXN0IGhhdmUgYXQgbGVhc3QgTUFYUEFUSExFTiArIDEgYnl0ZXMgYWxsb2NhdGVkLCBhbmQgY29udGFpbiBhCi0gICBOVUwtdGVybWluYXRlZCBzdHJpbmcgd2l0aCBubyBtb3JlIHRoYW4gTUFYUEFUSExFTiBjaGFyYWN0ZXJzIChub3QgY291bnRpbmcKLSAgIHRoZSB0cmFpbGluZyBOVUwpLiAgSXQncyBhIGZhdGFsIGVycm9yIGlmIGl0IGNvbnRhaW5zIGEgc3RyaW5nIGxvbmdlciB0aGFuCi0gICB0aGF0IChjYWxsZXJzIG11c3QgYmUgY2FyZWZ1bCEpLiAgSWYgdGhlc2UgcmVxdWlyZW1lbnRzIGFyZSBtZXQsIGl0J3MKLSAgIGd1YXJhbnRlZWQgdGhhdCBidWZmZXIgd2lsbCBzdGlsbCBiZSBhIE5VTC10ZXJtaW5hdGVkIHN0cmluZyB3aXRoIG5vIG1vcmUKLSAgIHRoYW4gTUFYUEFUSExFTiBjaGFyYWN0ZXJzIGF0IGV4aXQuICBJZiBzdHVmZiBpcyB0b28gbG9uZywgb25seSBhcyBtdWNoIG9mCi0gICBzdHVmZiBhcyBmaXRzIHdpbGwgYmUgYXBwZW5kZWQuCi0qLwotCi1zdGF0aWMgdm9pZAotam9pbihjaGFyICpidWZmZXIsIGNoYXIgKnN0dWZmKQotewotICAgIHNpemVfdCBuLCBrOwotICAgIGlmIChpc19zZXAoc3R1ZmZbMF0pKQotICAgICAgICBuID0gMDsKLSAgICBlbHNlIHsKLSAgICAgICAgbiA9IHN0cmxlbihidWZmZXIpOwotICAgICAgICBpZiAobiA+IDAgJiYgIWlzX3NlcChidWZmZXJbbi0xXSkgJiYgbiA8IE1BWFBBVEhMRU4pCi0gICAgICAgICAgICBidWZmZXJbbisrXSA9IFNFUDsKLSAgICB9Ci0gICAgaWYgKG4gPiBNQVhQQVRITEVOKQotICAgICAgICBQeV9GYXRhbEVycm9yKCJidWZmZXIgb3ZlcmZsb3cgaW4gZ2V0cGF0aHAuYydzIGpvaW5wYXRoKCkiKTsKLSAgICBrID0gc3RybGVuKHN0dWZmKTsKLSAgICBpZiAobiArIGsgPiBNQVhQQVRITEVOKQotICAgICAgICBrID0gTUFYUEFUSExFTiAtIG47Ci0gICAgc3RybmNweShidWZmZXIrbiwgc3R1ZmYsIGspOwotICAgIGJ1ZmZlcltuK2tdID0gJ1wwJzsKLX0KLQotLyogZ290bGFuZG1hcmsgb25seSBjYWxsZWQgYnkgc2VhcmNoX2Zvcl9wcmVmaXgsIHdoaWNoIGVuc3VyZXMKLSAqICdwcmVmaXgnIGlzIG51bGwgdGVybWluYXRlZCBpbiBib3VuZHMuICBqb2luKCkgZW5zdXJlcwotICogJ2xhbmRtYXJrJyBjYW4gbm90IG92ZXJmbG93IHByZWZpeCBpZiB0b28gbG9uZy4KLSAqLwotc3RhdGljIGludAotZ290bGFuZG1hcmsoY2hhciAqbGFuZG1hcmspCi17Ci0gICAgaW50IG4sIG9rOwotCi0gICAgbiA9IHN0cmxlbihwcmVmaXgpOwotICAgIGpvaW4ocHJlZml4LCBsYW5kbWFyayk7Ci0gICAgb2sgPSBpc21vZHVsZShwcmVmaXgpOwotICAgIHByZWZpeFtuXSA9ICdcMCc7Ci0gICAgcmV0dXJuIG9rOwotfQotCi0vKiBhc3N1bWVzIGFyZ3YwX3BhdGggaXMgTUFYUEFUSExFTisxIGJ5dGVzIGxvbmcsIGFscmVhZHkgXDAgdGVybSdkLgotICogYXNzdW1wdGlvbiBwcm92aWRlZCBieSBvbmx5IGNhbGxlciwgY2FsY3VsYXRlX3BhdGgoKQotICovCi1zdGF0aWMgaW50Ci1zZWFyY2hfZm9yX3ByZWZpeChjaGFyICphcmd2MF9wYXRoLCBjaGFyICpsYW5kbWFyaykKLXsKLSAgICAvKiBTZWFyY2ggZnJvbSBhcmd2MF9wYXRoLCB1bnRpbCBsYW5kbWFyayBpcyBmb3VuZCAqLwotICAgIHN0cmNweShwcmVmaXgsIGFyZ3YwX3BhdGgpOwotICAgIGRvIHsKLSAgICAgICAgaWYgKGdvdGxhbmRtYXJrKGxhbmRtYXJrKSkKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICByZWR1Y2UocHJlZml4KTsKLSAgICB9IHdoaWxlIChwcmVmaXhbMF0pOwotICAgIHJldHVybiAwOwotfQotCi0KLXN0YXRpYyB2b2lkCi1nZXRfcHJvZ3BhdGgodm9pZCkKLXsKLSAgICBleHRlcm4gY2hhciAqUHlfR2V0UHJvZ3JhbU5hbWUodm9pZCk7Ci0gICAgY2hhciAqcGF0aCA9IGdldGVudigiUEFUSCIpOwotICAgIGNoYXIgKnByb2cgPSBQeV9HZXRQcm9ncmFtTmFtZSgpOwotCi0gICAgUFBJQiBwaWI7Ci0gICAgaWYgKChEb3NHZXRJbmZvQmxvY2tzKE5VTEwsICZwaWIpID09IDApICYmCi0gICAgICAgIChEb3NRdWVyeU1vZHVsZU5hbWUocGliLT5waWJfaG10ZSwgc2l6ZW9mKHByb2dwYXRoKSwgcHJvZ3BhdGgpID09IDApKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAocHJvZyA9PSBOVUxMIHx8ICpwcm9nID09ICdcMCcpCi0gICAgICAgIHByb2cgPSAicHl0aG9uIjsKLQotICAgIC8qIElmIHRoZXJlIGlzIG5vIHNsYXNoIGluIHRoZSBhcmd2MCBwYXRoLCB0aGVuIHdlIGhhdmUgdG8KLSAgICAgKiBhc3N1bWUgcHl0aG9uIGlzIG9uIHRoZSB1c2VyJ3MgJFBBVEgsIHNpbmNlIHRoZXJlJ3Mgbm8KLSAgICAgKiBvdGhlciB3YXkgdG8gZmluZCBhIGRpcmVjdG9yeSB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uICBJZgotICAgICAqICRQQVRIIGlzbid0IGV4cG9ydGVkLCB5b3UgbG9zZS4KLSAgICAgKi8KLSNpZmRlZiBBTFRTRVAKLSAgICBpZiAoc3RyY2hyKHByb2csIFNFUCkgfHwgc3RyY2hyKHByb2csIEFMVFNFUCkpCi0jZWxzZQotICAgIGlmIChzdHJjaHIocHJvZywgU0VQKSkKLSNlbmRpZgotICAgICAgICBzdHJuY3B5KHByb2dwYXRoLCBwcm9nLCBNQVhQQVRITEVOKTsKLSAgICBlbHNlIGlmIChwYXRoKSB7Ci0gICAgICAgIHdoaWxlICgxKSB7Ci0gICAgICAgICAgICBjaGFyICpkZWxpbSA9IHN0cmNocihwYXRoLCBERUxJTSk7Ci0KLSAgICAgICAgICAgIGlmIChkZWxpbSkgewotICAgICAgICAgICAgICAgIHNpemVfdCBsZW4gPSBkZWxpbSAtIHBhdGg7Ci0gICAgICAgICAgICAgICAgLyogZW5zdXJlIHdlIGNhbid0IG92ZXJ3cml0ZSBidWZmZXIgKi8KLSNpZiAhZGVmaW5lZChQWUNDX0dDQykKLSAgICAgICAgICAgICAgICBsZW4gPSBtaW4oTUFYUEFUSExFTixsZW4pOwotI2Vsc2UKLSAgICAgICAgICAgICAgICBsZW4gPSBNQVhQQVRITEVOIDwgbGVuID8gTUFYUEFUSExFTiA6IGxlbjsKLSNlbmRpZgotICAgICAgICAgICAgICAgIHN0cm5jcHkocHJvZ3BhdGgsIHBhdGgsIGxlbik7Ci0gICAgICAgICAgICAgICAgKihwcm9ncGF0aCArIGxlbikgPSAnXDAnOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHN0cm5jcHkocHJvZ3BhdGgsIHBhdGgsIE1BWFBBVEhMRU4pOwotCi0gICAgICAgICAgICAvKiBqb2luKCkgaXMgc2FmZSBmb3IgTUFYUEFUSExFTisxIHNpemUgYnVmZmVyICovCi0gICAgICAgICAgICBqb2luKHByb2dwYXRoLCBwcm9nKTsKLSAgICAgICAgICAgIGlmIChleGlzdHMocHJvZ3BhdGgpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBpZiAoIWRlbGltKSB7Ci0gICAgICAgICAgICAgICAgcHJvZ3BhdGhbMF0gPSAnXDAnOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcGF0aCA9IGRlbGltICsgMTsKLSAgICAgICAgfQotICAgIH0KLSAgICBlbHNlCi0gICAgICAgIHByb2dwYXRoWzBdID0gJ1wwJzsKLX0KLQotc3RhdGljIHZvaWQKLWNhbGN1bGF0ZV9wYXRoKHZvaWQpCi17Ci0gICAgY2hhciBhcmd2MF9wYXRoW01BWFBBVEhMRU4rMV07Ci0gICAgY2hhciAqYnVmOwotICAgIHNpemVfdCBidWZzejsKLSAgICBjaGFyICpweXRob25ob21lID0gUHlfR2V0UHl0aG9uSG9tZSgpOwotICAgIGNoYXIgKmVudnBhdGggPSBnZXRlbnYoIlBZVEhPTlBBVEgiKTsKLSAgICBjaGFyIHppcF9wYXRoW01BWFBBVEhMRU4rMV07Ci0gICAgc2l6ZV90IGxlbjsKLQotICAgIGdldF9wcm9ncGF0aCgpOwotICAgIC8qIHByb2dwYXRoIGd1YXJhbnRlZWQgXDAgdGVybWluYXRlZCBpbiBNQVhQQVRIKzEgYnl0ZXMuICovCi0gICAgc3RyY3B5KGFyZ3YwX3BhdGgsIHByb2dwYXRoKTsKLSAgICByZWR1Y2UoYXJndjBfcGF0aCk7Ci0gICAgaWYgKHB5dGhvbmhvbWUgPT0gTlVMTCB8fCAqcHl0aG9uaG9tZSA9PSAnXDAnKSB7Ci0gICAgICAgIGlmIChzZWFyY2hfZm9yX3ByZWZpeChhcmd2MF9wYXRoLCBMQU5ETUFSSykpCi0gICAgICAgICAgICBweXRob25ob21lID0gcHJlZml4OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBweXRob25ob21lID0gTlVMTDsKLSAgICB9Ci0gICAgZWxzZQotICAgICAgICBzdHJuY3B5KHByZWZpeCwgcHl0aG9uaG9tZSwgTUFYUEFUSExFTik7Ci0KLSAgICBpZiAoZW52cGF0aCAmJiAqZW52cGF0aCA9PSAnXDAnKQotICAgICAgICBlbnZwYXRoID0gTlVMTDsKLQotICAgIC8qIENhbGN1bGF0ZSB6aXAgYXJjaGl2ZSBwYXRoICovCi0gICAgc3RybmNweSh6aXBfcGF0aCwgcHJvZ3BhdGgsIE1BWFBBVEhMRU4pOwotICAgIHppcF9wYXRoW01BWFBBVEhMRU5dID0gJ1wwJzsKLSAgICBsZW4gPSBzdHJsZW4oemlwX3BhdGgpOwotICAgIGlmIChsZW4gPiA0KSB7Ci0gICAgICAgIHppcF9wYXRoW2xlbi0zXSA9ICd6JzsgIC8qIGNoYW5nZSBlbmRpbmcgdG8gInppcCIgKi8KLSAgICAgICAgemlwX3BhdGhbbGVuLTJdID0gJ2knOwotICAgICAgICB6aXBfcGF0aFtsZW4tMV0gPSAncCc7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgICB6aXBfcGF0aFswXSA9IDA7Ci0gICAgfQotCi0gICAgLyogV2UgbmVlZCB0byBjb25zdHJ1Y3QgYSBwYXRoIGZyb20gdGhlIGZvbGxvd2luZyBwYXJ0cy4KLSAgICAgKiAoMSkgdGhlIFBZVEhPTlBBVEggZW52aXJvbm1lbnQgdmFyaWFibGUsIGlmIHNldDsKLSAgICAgKiAoMikgdGhlIHppcCBhcmNoaXZlIGZpbGUgcGF0aDsKLSAgICAgKiAoMykgdGhlIFBZVEhPTlBBVEggY29uZmlnIG1hY3JvLCB3aXRoIHRoZSBsZWFkaW5nICIuIgotICAgICAqICAgICBvZiBlYWNoIGNvbXBvbmVudCByZXBsYWNlZCB3aXRoIHB5dGhvbmhvbWUsIGlmIHNldDsKLSAgICAgKiAoNCkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBleGVjdXRhYmxlIChhcmd2MF9wYXRoKS4KLSAgICAgKiBUaGUgbGVuZ3RoIGNhbGN1bGF0aW9uIGNhbGN1bGF0ZXMgIzMgZmlyc3QuCi0gICAgICovCi0KLSAgICAvKiBDYWxjdWxhdGUgc2l6ZSBvZiByZXR1cm4gYnVmZmVyICovCi0gICAgaWYgKHB5dGhvbmhvbWUgIT0gTlVMTCkgewotICAgICAgICBjaGFyICpwOwotICAgICAgICBidWZzeiA9IDE7Ci0gICAgICAgIGZvciAocCA9IFBZVEhPTlBBVEg7ICpwOyBwKyspIHsKLSAgICAgICAgICAgIGlmICgqcCA9PSBERUxJTSkKLSAgICAgICAgICAgICAgICBidWZzeisrOyAvKiBudW1iZXIgb2YgREVMSU0gcGx1cyBvbmUgKi8KLSAgICAgICAgfQotICAgICAgICBidWZzeiAqPSBzdHJsZW4ocHl0aG9uaG9tZSk7Ci0gICAgfQotICAgIGVsc2UKLSAgICAgICAgYnVmc3ogPSAwOwotICAgIGJ1ZnN6ICs9IHN0cmxlbihQWVRIT05QQVRIKSArIDE7Ci0gICAgYnVmc3ogKz0gc3RybGVuKGFyZ3YwX3BhdGgpICsgMTsKLSAgICBidWZzeiArPSBzdHJsZW4oemlwX3BhdGgpICsgMTsKLSAgICBpZiAoZW52cGF0aCAhPSBOVUxMKQotICAgICAgICBidWZzeiArPSBzdHJsZW4oZW52cGF0aCkgKyAxOwotCi0gICAgbW9kdWxlX3NlYXJjaF9wYXRoID0gYnVmID0gbWFsbG9jKGJ1ZnN6KTsKLSAgICBpZiAoYnVmID09IE5VTEwpIHsKLSAgICAgICAgLyogV2UgY2FuJ3QgZXhpdCwgc28gcHJpbnQgYSB3YXJuaW5nIGFuZCBsaW1wIGFsb25nICovCi0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ2FuJ3QgbWFsbG9jIGR5bmFtaWMgUFlUSE9OUEFUSC5cbiIpOwotICAgICAgICBpZiAoZW52cGF0aCkgewotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJVc2luZyBlbnZpcm9ubWVudCAkUFlUSE9OUEFUSC5cbiIpOwotICAgICAgICAgICAgbW9kdWxlX3NlYXJjaF9wYXRoID0gZW52cGF0aDsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVXNpbmcgZGVmYXVsdCBzdGF0aWMgcGF0aC5cbiIpOwotICAgICAgICAgICAgbW9kdWxlX3NlYXJjaF9wYXRoID0gUFlUSE9OUEFUSDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGVudnBhdGgpIHsKLSAgICAgICAgc3RyY3B5KGJ1ZiwgZW52cGF0aCk7Ci0gICAgICAgIGJ1ZiA9IHN0cmNocihidWYsICdcMCcpOwotICAgICAgICAqYnVmKysgPSBERUxJTTsKLSAgICB9Ci0gICAgaWYgKHppcF9wYXRoWzBdKSB7Ci0gICAgICAgIHN0cmNweShidWYsIHppcF9wYXRoKTsKLSAgICAgICAgYnVmID0gc3RyY2hyKGJ1ZiwgJ1wwJyk7Ci0gICAgICAgICpidWYrKyA9IERFTElNOwotICAgIH0KLQotICAgIGlmIChweXRob25ob21lID09IE5VTEwpIHsKLSAgICAgICAgc3RyY3B5KGJ1ZiwgUFlUSE9OUEFUSCk7Ci0gICAgICAgIGJ1ZiA9IHN0cmNocihidWYsICdcMCcpOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgY2hhciAqcCA9IFBZVEhPTlBBVEg7Ci0gICAgICAgIGNoYXIgKnE7Ci0gICAgICAgIHNpemVfdCBuOwotICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICBxID0gc3RyY2hyKHAsIERFTElNKTsKLSAgICAgICAgICAgIGlmIChxID09IE5VTEwpCi0gICAgICAgICAgICAgICAgbiA9IHN0cmxlbihwKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBuID0gcS1wOwotICAgICAgICAgICAgaWYgKHBbMF0gPT0gJy4nICYmIGlzX3NlcChwWzFdKSkgewotICAgICAgICAgICAgICAgIHN0cmNweShidWYsIHB5dGhvbmhvbWUpOwotICAgICAgICAgICAgICAgIGJ1ZiA9IHN0cmNocihidWYsICdcMCcpOwotICAgICAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgICAgICBuLS07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJuY3B5KGJ1ZiwgcCwgbik7Ci0gICAgICAgICAgICBidWYgKz0gbjsKLSAgICAgICAgICAgIGlmIChxID09IE5VTEwpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAqYnVmKysgPSBERUxJTTsKLSAgICAgICAgICAgIHAgPSBxKzE7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKGFyZ3YwX3BhdGgpIHsKLSAgICAgICAgKmJ1ZisrID0gREVMSU07Ci0gICAgICAgIHN0cmNweShidWYsIGFyZ3YwX3BhdGgpOwotICAgICAgICBidWYgPSBzdHJjaHIoYnVmLCAnXDAnKTsKLSAgICB9Ci0gICAgKmJ1ZiA9ICdcMCc7Ci19Ci0KLQotLyogRXh0ZXJuYWwgaW50ZXJmYWNlICovCi0KLWNoYXIgKgotUHlfR2V0UGF0aCh2b2lkKQotewotICAgIGlmICghbW9kdWxlX3NlYXJjaF9wYXRoKQotICAgICAgICBjYWxjdWxhdGVfcGF0aCgpOwotICAgIHJldHVybiBtb2R1bGVfc2VhcmNoX3BhdGg7Ci19Ci0KLWNoYXIgKgotUHlfR2V0UHJlZml4KHZvaWQpCi17Ci0gICAgaWYgKCFtb2R1bGVfc2VhcmNoX3BhdGgpCi0gICAgICAgIGNhbGN1bGF0ZV9wYXRoKCk7Ci0gICAgcmV0dXJuIHByZWZpeDsKLX0KLQotY2hhciAqCi1QeV9HZXRFeGVjUHJlZml4KHZvaWQpCi17Ci0gICAgcmV0dXJuIFB5X0dldFByZWZpeCgpOwotfQotCi1jaGFyICoKLVB5X0dldFByb2dyYW1GdWxsUGF0aCh2b2lkKQotewotICAgIGlmICghbW9kdWxlX3NlYXJjaF9wYXRoKQotICAgICAgICBjYWxjdWxhdGVfcGF0aCgpOwotICAgIHJldHVybiBwcm9ncGF0aDsKLX0KZGlmZiAtLWdpdCBhL1BDL29zMmVteC9weWNvbmZpZy5oIGIvUEMvb3MyZW14L3B5Y29uZmlnLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1NjEwNWEuLjAwMDAwMDAKLS0tIGEvUEMvb3MyZW14L3B5Y29uZmlnLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzMzIgKzAsMCBAQAotI2lmbmRlZiBQeV9DT05GSUdfSAotI2RlZmluZSBQeV9DT05GSUdfSAotCi0jZXJyb3IgIlBFUCAxMTogT1MvMiBpcyBub3cgdW5zdXBwb3J0ZWQsIGNvZGUgd2lsbCBiZSByZW1vdmVkIGluIFB5dGhvbiAzLjQiCi0KLS8qIGNvbmZpZy5oLgotICogQXQgc29tZSB0aW1lIGluIHRoZSBwYXN0LCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieS9mcm9tIGNvbmZpZ3VyZS4KLSAqIG5vdyBtYWludGFpbmVkIG1hbnVhbGx5LgotICovCi0KLS8qIGJ1aWxkIGVudmlyb25tZW50ICovCi0jZGVmaW5lIFBMQVRGT1JNCSJvczJlbXgiCi0jZGVmaW5lIENPTVBJTEVSCSJbRU1YIEdDQyAiIF9fVkVSU0lPTl9fICJdIgotI2RlZmluZSBQWU9TX09TMgkxCi0jZGVmaW5lIFBZQ0NfR0NDCTEKLQotLyogZGVmYXVsdCBsb2NhdGlvbihzKSAqLwotI2lmbmRlZiBQUkVGSVgKLSNkZWZpbmUgUFJFRklYCQkiIgotI2VuZGlmCi0jaWZuZGVmIFBZVEhPTlBBVEgKLSNkZWZpbmUgUFlUSE9OUEFUSAkiLi9MaWI7Li9MaWIvcGxhdC0iIFBMQVRGT1JNIFwKLQkJCSI7Li9MaWIvbGliLWR5bmxvYWQ7Li9MaWIvc2l0ZS1wYWNrYWdlcyIKLSNlbmRpZgotCi0vKiBEZWJ1Z2dpbmcgKi8KLSNpZm5kZWYgUHlfREVCVUcKLS8qI2RlZmluZSBQeV9ERUJVRyAxKi8KLSNlbmRpZgotCi0vKiBpZiBidWlsZGluZyBhbiBleHRlbnNpb24gb3Igd3JhcHBlciBleGVjdXRhYmxlLAotICogbWFyayBQeXRob24gQVBJIHN5bWJvbHMgImV4dGVybiIgc28gdGhhdCBzeW1ib2xzCi0gKiBpbXBvcnRlZCBmcm9tIHRoZSBQeXRob24gY29yZSBETEwgYXJlbid0IGR1cGxpY2F0ZWQuCi0gKi8KLSNpZmRlZiBQeV9CVUlMRF9DT1JFCi0jICBkZWZpbmUgUHlBUElfRlVOQyhSVFlQRSkJUlRZUEUKLSNlbHNlCi0jICBkZWZpbmUgUHlBUElfRlVOQyhSVFlQRSkJZXh0ZXJuIFJUWVBFCi0jZW5kaWYKLSNkZWZpbmUgUHlBUElfREFUQShSVFlQRSkJZXh0ZXJuIFJUWVBFCi0jZGVmaW5lIFB5TU9ESU5JVF9GVU5DCXZvaWQKLQotLyogVXNlIE9TLzIgZmxhdm91ciBvZiB0aHJlYWRzICovCi0jZGVmaW5lIFdJVEhfVEhSRUFECTEKLSNkZWZpbmUgT1MyX1RIUkVBRFMJMQotCi0vKiBXZSB3YW50IHNvY2tldHMgKi8KLSNkZWZpbmUgVENQSVBWNAkJMQotI2RlZmluZSBVU0VfU09DS0VUCTEKLSNkZWZpbmUgc29ja2xlbl90CWludAotI2RlZmluZSBGRF9TRVRTSVpFCTEwMjQKLQotLyogZW5hYmxlIHRoZSBQeXRob24gb2JqZWN0IGFsbG9jYXRvciAqLwotI2RlZmluZQlXSVRIX1BZTUFMTE9DCTEKLQotLyogZW5hYmxlIHRoZSBHQyBtb2R1bGUgKi8KLSNkZWZpbmUgV0lUSF9DWUNMRV9HQwkxCi0KLS8qIERlZmluZSBpZiB5b3Ugd2FudCBkb2N1bWVudGF0aW9uIHN0cmluZ3MgaW4gZXh0ZW5zaW9uIG1vZHVsZXMgKi8KLSNkZWZpbmUgV0lUSF9ET0NfU1RSSU5HUyAxCi0KLS8qIFVuaWNvZGUgcmVsYXRlZCAqLwotI2RlZmluZSBQWV9VTklDT0RFX1RZUEUJd2NoYXJfdAotI2RlZmluZSBQeV9VTklDT0RFX1NJWkUgU0laRU9GX1NIT1JUCi0KLS8qIEVNWCBkZWZpbmVzIHNzaXplX3QgKi8KLSNkZWZpbmUgSEFWRV9TU0laRV9UCTEKLQotLyogc3lzdGVtIGNhcGFiaWxpdGllcyAqLwotI2RlZmluZSBIQVZFX1RUWU5BTUUJMQotI2RlZmluZSBIQVZFX1dBSVQJMQotI2RlZmluZSBIQVZFX0dFVEVHSUQgICAgMQotI2RlZmluZSBIQVZFX0dFVEVVSUQgICAgMQotI2RlZmluZSBIQVZFX0dFVEdJRCAgICAgMQotI2RlZmluZSBIQVZFX0dFVFBQSUQgICAgMQotI2RlZmluZSBIQVZFX0dFVFVJRCAgICAgMQotI2RlZmluZSBIQVZFX09QRU5ESVIgICAgMQotI2RlZmluZSBIQVZFX1BJUEUgICAgICAgMQotI2RlZmluZSBIQVZFX1BPUEVOICAgICAgMQotI2RlZmluZSBIQVZFX1NZU1RFTQkxCi0jZGVmaW5lIEhBVkVfVFRZTkFNRQkxCi0jZGVmaW5lIEhBVkVfRFlOQU1JQ19MT0FESU5HCTEKLQotLyogaWYgcG9ydCBvZiBHREJNIGluc3RhbGxlZCwgaXQgaW5jbHVkZXMgTkRCTSBlbXVsYXRpb24gKi8KLSNkZWZpbmUgSEFWRV9OREJNX0ggMQotCi0vKiBuZWVkIHRoaXMgZm9yIHNwYXdudiBjb2RlIGluIHBvc2l4bW9kdWxlIChjbG9uZWQgZnJvbSBXSU4zMiBkZWYnbikgKi8KLXR5cGVkZWYgbG9uZyBpbnRwdHJfdDsKLQotLyogd2UgZG9uJ3QgaGF2ZSB0bV96b25lIGJ1dCBkbyBoYXZlIHRoZSBleHRlcm5hbCBhcnJheSB0em5hbWUgKi8KLSNkZWZpbmUgSEFWRV9UWk5BTUUgMQotCi0vKiBEZWZpbmUgYXMgdGhlIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycyAoaW50IG9yIHZvaWQpLiAqLwotI2RlZmluZSBSRVRTSUdUWVBFIHZvaWQKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwotI2RlZmluZSBTVERDX0hFQURFUlMgMQotCi0vKiBEZWZpbmUgaWYgeW91IGNhbiBzYWZlbHkgaW5jbHVkZSBib3RoIDxzeXMvdGltZS5oPiBhbmQgPHRpbWUuaD4uICovCi0jZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCi0KLS8qIERlZmluZSB0aGlzIGlmIHlvdSBoYXZlIHRoZSB0eXBlIGxvbmcgbG9uZy4gKi8KLSNkZWZpbmUgSEFWRV9MT05HX0xPTkcgMQotCi0vKiBEZWZpbmUgaWYgeW91ciBjb21waWxlciBzdXBwb3J0cyBmdW5jdGlvbiBwcm90b3R5cGVzLiAqLwotI2RlZmluZSBIQVZFX1BST1RPVFlQRVMgMQotCi0vKiBEZWZpbmUgaWYgeW91ciBjb21waWxlciBzdXBwb3J0cyB2YXJpYWJsZSBsZW5ndGggZnVuY3Rpb24gcHJvdG90eXBlcwotICogKGUuZy4gdm9pZCBmcHJpbnRmKEZJTEUgKiwgY2hhciAqLCAuLi4pOykgKmFuZCogPHN0ZGFyZy5oPi4KLSAqLwotI2RlZmluZSBIQVZFX1NUREFSR19QUk9UT1RZUEVTIDEKLQotLyogRGVmaW5lIGlmIG1hbGxvYygwKSByZXR1cm5zIGEgTlVMTCBwb2ludGVyLiAqLwotI2RlZmluZSBNQUxMT0NfWkVST19SRVRVUk5TX05VTEwgMQotCi0vKiBEZWZpbmUgdG8gZm9yY2UgdXNlIG9mIHRocmVhZC1zYWZlIGVycm5vLCBoX2Vycm5vLCBhbmQgb3RoZXIgZnVuY3Rpb25zLiAqLwotI2RlZmluZSBfUkVFTlRSQU5UIDEKLQotLyogRGVmaW5lIGlmIHlvdSBjYW4gc2FmZWx5IGluY2x1ZGUgYm90aCA8c3lzL3NlbGVjdC5oPiBhbmQgPHN5cy90aW1lLmg+Ci0gKiAod2hpY2ggeW91IGNhbid0IG9uIFNDTyBPRFQgMy4wKS4KLSAqLwotI2RlZmluZSBTWVNfU0VMRUNUX1dJVEhfU1lTX1RJTUUgMQotCi0vKiBUaGUgbnVtYmVyIG9mIGJ5dGVzIGluIGFuIG9mZl90LiAqLwotI2RlZmluZSBTSVpFT0ZfT0ZGX1QgNAotCi0vKiBUaGUgbnVtYmVyIG9mIGJ5dGVzIGluIGFuIHRpbWVfdC4gKi8KLSNkZWZpbmUgU0laRU9GX1RJTUVfVCA0Ci0KLS8qIFRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gYSBzaG9ydC4gKi8KLSNkZWZpbmUgU0laRU9GX1NIT1JUIDIKLQotLyogVGhlIG51bWJlciBvZiBieXRlcyBpbiBhIGludC4gKi8KLSNkZWZpbmUgU0laRU9GX0lOVCA0Ci0KLS8qIFRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gYSBsb25nLiAqLwotI2RlZmluZSBTSVpFT0ZfTE9ORyA0Ci0KLS8qIFRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gYSBsb25nIGxvbmcuICovCi0jZGVmaW5lIFNJWkVPRl9MT05HX0xPTkcgOAotCi0vKiBUaGUgbnVtYmVyIG9mIGJ5dGVzIGluIGEgdm9pZCAqLiAqLwotI2RlZmluZSBTSVpFT0ZfVk9JRF9QIDQKLQotLyogVGhlIG51bWJlciBvZiBieXRlcyBpbiBhIHNpemVfdC4gKi8KLSNkZWZpbmUgU0laRU9GX1NJWkVfVCA0Ci0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgYWxhcm0gZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfQUxBUk0gMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGNsb2NrIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX0NMT0NLIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBkdXAyIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX0RVUDIgMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGV4ZWN2IGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX0VYRUNWIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzcGF3bnYgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfU1BBV05WIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBmbG9jayBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9GTE9DSyAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZm9yayBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9GT1JLIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBmc3luYyBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9GU1lOQyAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZnRpbWUgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfRlRJTUUgMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZ0cnVuY2F0ZSBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9GVFJVTkNBVEUgMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGdldGN3ZCBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9HRVRDV0QgMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGdldHBlZXJuYW1lIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX0dFVFBFRVJOQU1FIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBnZXRwZ3JwIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX0dFVFBHUlAgMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGdldHBpZCBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9HRVRQSUQgMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGdldHB3ZW50IGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX0dFVFBXRU5UIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBnZXR0aW1lb2ZkYXkgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfR0VUVElNRU9GREFZIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBnZXR3ZCBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9HRVRXRCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgaHlwb3QgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfSFlQT1QgMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGtpbGwgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfS0lMTCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbWVtbW92ZSBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9NRU1NT1ZFIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBta3RpbWUgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfTUtUSU1FIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBwYXVzZSBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9QQVVTRSAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgcHV0ZW52IGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1BVVEVOViAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2VsZWN0IGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1NFTEVDVCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2V0Z2lkIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1NFVEdJRCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2V0bG9jYWxlIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2V0cGdpZCBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9TRVRQR0lEIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzZXR1aWQgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfU0VUVUlEIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzZXR2YnVmIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1NFVFZCVUYgMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNpZ2FjdGlvbiBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9TSUdBQ1RJT04gMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHN0cmVycm9yIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1NUUkVSUk9SIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzdHJmdGltZSBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9TVFJGVElNRSAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdGNnZXRwZ3JwIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1RDR0VUUEdSUCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdGNzZXRwZ3JwIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1RDU0VUUEdSUCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdG1wZmlsZSBmdW5jdGlvbi4gICovCi0jZGVmaW5lIEhBVkVfVE1QRklMRSAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdGltZXMgZnVuY3Rpb24uICovCi0jZGVmaW5lIEhBVkVfVElNRVMgMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHRydW5jYXRlIGZ1bmN0aW9uLiAqLwotI2RlZmluZSBIQVZFX1RSVU5DQVRFIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB1bmFtZSBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9VTkFNRSAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2FpdHBpZCBmdW5jdGlvbi4gKi8KLSNkZWZpbmUgSEFWRV9XQUlUUElEIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8Y29uaW8uaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9DT05JT19ICi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGRpcmVjdC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX0RJUkVDVF9ICi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGRpcmVudC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9ESVJFTlRfSCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGVycm5vLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX0VSUk5PX0ggMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxmY250bC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8aW8uaD4gaGVhZGVyIGZpbGUuICovCi0jdW5kZWYgSEFWRV9JT19ICi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPG5jdXJzZXMuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfTkNVUlNFU19IIDEKLQotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwcm9jZXNzLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1BST0NFU1NfSCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHNpZ25hbC5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TSUdOQUxfSCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9maWxlLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19GSUxFX0ggMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvc2VsZWN0Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZS5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpbWVzLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19USU1FU19IIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3VuLmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKLQotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3V0c25hbWUuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfU1lTX1VUU05BTUVfSCAxCi0KLS8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy93YWl0Lmg+IGhlYWRlciBmaWxlLiAqLwotI2RlZmluZSBIQVZFX1NZU19XQUlUX0ggMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICovCi0jZGVmaW5lIEhBVkVfVU5JU1REX0ggMQotCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDx1dGltZS5oPiBoZWFkZXIgZmlsZS4gKi8KLSNkZWZpbmUgSEFWRV9VVElNRV9IIDEKLQotLyogRU1YIGhhcyBhbiBzbnByaW50ZigpLiAqLwotI2RlZmluZSBIQVZFX1NOUFJJTlRGIDEKLQotI2VuZGlmIC8qICFQeV9DT05GSUdfSCAqLwotCmRpZmYgLS1naXQgYS9QQy9vczJlbXgvcHl0aG9uMzMuZGVmIGIvUEMvb3MyZW14L3B5dGhvbjMzLmRlZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjU2NzI2Yi4uMDAwMDAwMAotLS0gYS9QQy9vczJlbXgvcHl0aG9uMzMuZGVmCisrKyAvZGV2L251bGwKQEAgLTEsMTMxNCArMCwwIEBACi1MSUJSQVJZIHB5dGhvbjMzIElOSVRJTlNUQU5DRSBURVJNSU5TVEFOQ0UgCi1ERVNDUklQVElPTiAiUHl0aG9uIDIuNiBDb3JlIERMTCIgCi1QUk9UTU9ERSAKLURBVEEgTVVMVElQTEUgTk9OU0hBUkVEIAotRVhQT1JUUyAKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGNvbmZpZykKLSAgIl9QeUltcG9ydF9Jbml0dGFiIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoZGxmY24pCi07ICAiZGxvcGVuIgotOyAgImRsc3ltIgotOyAgImRsY2xvc2UiCi07ICAiZGxlcnJvciIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGdldHBhdGhwKQotICAiUHlfR2V0UHJvZ3JhbUZ1bGxQYXRoIgotICAiUHlfR2V0UHJlZml4IgotICAiUHlfR2V0RXhlY1ByZWZpeCIKLSAgIlB5X0dldFBhdGgiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihnZXRidWlsZGluZm8pCi0gICJQeV9HZXRCdWlsZEluZm8iCi0gICJfUHlfc3ZudmVyc2lvbiIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKG1haW4pCi0gICJQeV9NYWluIgotICAiUHlfR2V0QXJnY0FyZ3YiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihhY2NlbGVyKQotICAiUHlHcmFtbWFyX0FkZEFjY2VsZXJhdG9ycyIKLSAgIlB5R3JhbW1hcl9SZW1vdmVBY2NlbGVyYXRvcnMiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihncmFtbWFyMSkKLSAgIlB5R3JhbW1hcl9GaW5kREZBIgotICAiUHlHcmFtbWFyX0xhYmVsUmVwciIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGxpc3Rub2RlKQotICAiUHlOb2RlX0xpc3RUcmVlIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIobm9kZSkKLSAgIlB5Tm9kZV9OZXciCi0gICJQeU5vZGVfQWRkQ2hpbGQiCi0gICJQeU5vZGVfRnJlZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKHBhcnNlcikKLSAgIlB5UGFyc2VyX0FkZFRva2VuIgotICAiUHlQYXJzZXJfTmV3IgotICAiUHlQYXJzZXJfRGVsZXRlIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIocGFyc2V0b2spCi0gICJQeVBhcnNlcl9QYXJzZVN0cmluZyIKLSAgIlB5UGFyc2VyX1BhcnNlU3RyaW5nRmxhZ3NGaWxlbmFtZSIKLSAgIlB5UGFyc2VyX1BhcnNlRmlsZSIKLSAgIlB5UGFyc2VyX1BhcnNlRmlsZUZsYWdzIgotICAiUHlQYXJzZXJfUGFyc2VTdHJpbmdGbGFncyIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGJpdHNldCkKLSAgIl9QeV9uZXdiaXRzZXQiCi0gICJfUHlfZGVsYml0c2V0IgotICAiX1B5X2FkZGJpdCIKLSAgIl9QeV9zYW1lYml0c2V0IgotICAiX1B5X21lcmdlYml0c2V0IgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIobWV0YWdyYW1tYXIpCi0gICJfUHlfbWV0YV9ncmFtbWFyIgotICAiUHlfbWV0YV9ncmFtbWFyIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIodG9rZW5pemVyKQotICAiUHlUb2tlbl9PbmVDaGFyIgotICAiUHlUb2tlbl9Ud29DaGFycyIKLSAgIlB5VG9rZW5fVGhyZWVDaGFycyIKLSAgIlB5VG9rZW5pemVyX0Zyb21TdHJpbmciCi0gICJQeVRva2VuaXplcl9GcmVlIgotICAiUHlUb2tlbml6ZXJfRnJvbUZpbGUiCi0gICJQeVRva2VuaXplcl9HZXQiCi0gICJfUHlQYXJzZXJfVG9rZW5OYW1lcyIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKG15cmVhZGxpbmUpCi0gICJfUHlPU19SZWFkbGluZVRTdGF0ZSIKLSAgIlB5T1NfUmVhZGxpbmVGdW5jdGlvblBvaW50ZXIiCi0gICJQeU9TX1N0ZGlvUmVhZGxpbmUiCi0gICJQeU9TX1JlYWRsaW5lIgotICAiUHlPU19JbnB1dEhvb2siCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihhYnN0cmFjdCkKLSAgIl9QeU9iamVjdF9MZW5ndGhIaW50IgotICAiUHlNYXBwaW5nX1NpemUiCi0gICJQeU9iamVjdF9DYWxsTWV0aG9kIgotICAiUHlPYmplY3RfR2V0SXRlbSIKLSAgIlB5U2VxdWVuY2VfR2V0SXRlbSIKLSAgIlB5T2JqZWN0X1NldEl0ZW0iCi0gICJQeVNlcXVlbmNlX1NldEl0ZW0iCi0gICJQeU9iamVjdF9EZWxJdGVtIgotICAiUHlTZXF1ZW5jZV9EZWxJdGVtIgotICAiUHlOdW1iZXJfTXVsdGlwbHkiCi0gICJQeU51bWJlcl9JblBsYWNlQWRkIgotICAiUHlOdW1iZXJfSW5QbGFjZU11bHRpcGx5IgotICAiUHlOdW1iZXJfSW50IgotICAiUHlOdW1iZXJfTG9uZyIKLSAgIlB5TnVtYmVyX0Zsb2F0IgotICAiUHlTZXF1ZW5jZV9Db25jYXQiCi0gICJQeVNlcXVlbmNlX1JlcGVhdCIKLSAgIlB5U2VxdWVuY2VfSW5QbGFjZUNvbmNhdCIKLSAgIlB5U2VxdWVuY2VfSW5QbGFjZVJlcGVhdCIKLSAgIlB5U2VxdWVuY2VfR2V0U2xpY2UiCi0gICJQeVNlcXVlbmNlX1NldFNsaWNlIgotICAiUHlTZXF1ZW5jZV9UdXBsZSIKLSAgIlB5T2JqZWN0X0dldEl0ZXIiCi0gICJQeUl0ZXJfTmV4dCIKLSAgIlB5U2VxdWVuY2VfRmFzdCIKLSAgIl9QeVNlcXVlbmNlX0l0ZXJTZWFyY2giCi0gICJQeU9iamVjdF9DYWxsRnVuY3Rpb24iCi0gICJfUHlPYmplY3RfQ2FsbEZ1bmN0aW9uX1NpemVUIgotICAiX1B5T2JqZWN0X0NhbGxNZXRob2RfU2l6ZVQiCi0gICJQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncyIKLSAgIlB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MiCi0gICJQeU9iamVjdF9DbXAiCi0gICJQeU9iamVjdF9DYWxsIgotICAiUHlPYmplY3RfQ2FsbE9iamVjdCIKLSAgIlB5T2JqZWN0X1R5cGUiCi0gICJQeU9iamVjdF9TaXplIgotICAiUHlPYmplY3RfTGVuZ3RoIgotICAiUHlPYmplY3RfRGVsSXRlbVN0cmluZyIKLSAgIlB5T2JqZWN0X0FzQ2hhckJ1ZmZlciIKLSAgIlB5T2JqZWN0X0NoZWNrUmVhZEJ1ZmZlciIKLSAgIlB5T2JqZWN0X0FzUmVhZEJ1ZmZlciIKLSAgIlB5T2JqZWN0X0FzV3JpdGVCdWZmZXIiCi0gICJQeU51bWJlcl9DaGVjayIKLSAgIlB5TnVtYmVyX0FkZCIKLSAgIlB5TnVtYmVyX1N1YnRyYWN0IgotICAiUHlOdW1iZXJfRGl2aWRlIgotICAiUHlOdW1iZXJfRmxvb3JEaXZpZGUiCi0gICJQeU51bWJlcl9UcnVlRGl2aWRlIgotICAiUHlOdW1iZXJfUmVtYWluZGVyIgotICAiUHlOdW1iZXJfRGl2bW9kIgotICAiUHlOdW1iZXJfUG93ZXIiCi0gICJQeU51bWJlcl9OZWdhdGl2ZSIKLSAgIlB5TnVtYmVyX1Bvc2l0aXZlIgotICAiUHlOdW1iZXJfQWJzb2x1dGUiCi0gICJQeU51bWJlcl9JbnZlcnQiCi0gICJQeU51bWJlcl9Mc2hpZnQiCi0gICJQeU51bWJlcl9Sc2hpZnQiCi0gICJQeU51bWJlcl9BbmQiCi0gICJQeU51bWJlcl9Yb3IiCi0gICJQeU51bWJlcl9PciIKLSAgIlB5TnVtYmVyX0luZGV4IgotICAiUHlOdW1iZXJfSW5QbGFjZVN1YnRyYWN0IgotICAiUHlOdW1iZXJfSW5QbGFjZURpdmlkZSIKLSAgIlB5TnVtYmVyX0luUGxhY2VGbG9vckRpdmlkZSIKLSAgIlB5TnVtYmVyX0luUGxhY2VUcnVlRGl2aWRlIgotICAiUHlOdW1iZXJfSW5QbGFjZVJlbWFpbmRlciIKLSAgIlB5TnVtYmVyX0luUGxhY2VQb3dlciIKLSAgIlB5TnVtYmVyX0luUGxhY2VMc2hpZnQiCi0gICJQeU51bWJlcl9JblBsYWNlUnNoaWZ0IgotICAiUHlOdW1iZXJfSW5QbGFjZUFuZCIKLSAgIlB5TnVtYmVyX0luUGxhY2VYb3IiCi0gICJQeU51bWJlcl9JblBsYWNlT3IiCi0gICJQeVNlcXVlbmNlX0NoZWNrIgotICAiUHlTZXF1ZW5jZV9TaXplIgotICAiUHlTZXF1ZW5jZV9MZW5ndGgiCi0gICJQeVNlcXVlbmNlX0RlbFNsaWNlIgotICAiUHlTZXF1ZW5jZV9MaXN0IgotICAiUHlTZXF1ZW5jZV9Db3VudCIKLSAgIlB5U2VxdWVuY2VfQ29udGFpbnMiCi0gICJQeVNlcXVlbmNlX0luIgotICAiUHlTZXF1ZW5jZV9JbmRleCIKLSAgIlB5TWFwcGluZ19DaGVjayIKLSAgIlB5TWFwcGluZ19MZW5ndGgiCi0gICJQeU1hcHBpbmdfSGFzS2V5U3RyaW5nIgotICAiUHlNYXBwaW5nX0hhc0tleSIKLSAgIlB5TWFwcGluZ19HZXRJdGVtU3RyaW5nIgotICAiUHlNYXBwaW5nX1NldEl0ZW1TdHJpbmciCi0gICJQeU9iamVjdF9Jc0luc3RhbmNlIgotICAiUHlPYmplY3RfSXNTdWJjbGFzcyIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGJvb2xvYmplY3QpCi0gICJQeUJvb2xfRnJvbUxvbmciCi0gICJQeUJvb2xfVHlwZSIKLSAgIl9QeV9aZXJvU3RydWN0IgotICAiX1B5X1RydWVTdHJ1Y3QiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihidWZmZXJvYmplY3QpCi0gICJQeUJ1ZmZlcl9Gcm9tT2JqZWN0IgotICAiUHlCdWZmZXJfRnJvbVJlYWRXcml0ZU9iamVjdCIKLSAgIlB5QnVmZmVyX0Zyb21NZW1vcnkiCi0gICJQeUJ1ZmZlcl9Gcm9tUmVhZFdyaXRlTWVtb3J5IgotICAiUHlCdWZmZXJfTmV3IgotICAiUHlCdWZmZXJfVHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGNlbGxvYmplY3QpCi0gICJQeUNlbGxfTmV3IgotICAiUHlDZWxsX0dldCIKLSAgIlB5Q2VsbF9TZXQiCi0gICJQeUNlbGxfVHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGNsYXNzb2JqZWN0KQotICAiUHlDbGFzc19OZXciCi0gICJQeUNsYXNzX0lzU3ViY2xhc3MiCi0gICJQeUluc3RhbmNlX05ldyIKLSAgIlB5SW5zdGFuY2VfTmV3UmF3IgotICAiUHlNZXRob2RfTmV3IgotICAiUHlNZXRob2RfRnVuY3Rpb24iCi0gICJQeU1ldGhvZF9TZWxmIgotICAiUHlNZXRob2RfQ2xhc3MiCi0gICJfUHlJbnN0YW5jZV9Mb29rdXAiCi0gICJQeU1ldGhvZF9GaW5pIgotICAiUHlDbGFzc19UeXBlIgotICAiUHlJbnN0YW5jZV9UeXBlIgotICAiUHlNZXRob2RfVHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGNhcHN1bGUpCi0gICJQeUNhcHN1bGVfR2V0Q29udGV4dCIKLSAgIlB5Q2Fwc3VsZV9HZXREZXN0cnVjdG9yIgotICAiUHlDYXBzdWxlX0dldE5hbWUiCi0gICJQeUNhcHN1bGVfR2V0UG9pbnRlciIKLSAgIlB5Q2Fwc3VsZV9JbXBvcnQiCi0gICJQeUNhcHN1bGVfSXNWYWxpZCIKLSAgIlB5Q2Fwc3VsZV9OZXciCi0gICJQeUNhcHN1bGVfU2V0Q29udGV4dCIKLSAgIlB5Q2Fwc3VsZV9TZXREZXN0cnVjdG9yIgotICAiUHlDYXBzdWxlX1NldE5hbWUiCi0gICJQeUNhcHN1bGVfU2V0UG9pbnRlciIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGNvYmplY3QpCi0gICJQeUNPYmplY3RfRnJvbVZvaWRQdHIiCi0gICJQeUNPYmplY3RfRnJvbVZvaWRQdHJBbmREZXNjIgotICAiUHlDT2JqZWN0X0FzVm9pZFB0ciIKLSAgIlB5Q09iamVjdF9HZXREZXNjIgotICAiUHlDT2JqZWN0X0ltcG9ydCIKLSAgIlB5Q09iamVjdF9TZXRWb2lkUHRyIgotICAiUHlDT2JqZWN0X1R5cGUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihjb2Rlb2JqZWN0KQotICAiUHlDb2RlX05ldyIKLSAgIlB5Q29kZV9BZGRyMkxpbmUiCi0gICJQeUNvZGVfQ2hlY2tMaW5lTnVtYmVyIgotICAiUHlDb2RlX1R5cGUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihjb21wbGV4b2JqZWN0KQotICAiX1B5X2NfcG93IgotICAiX1B5X2Nfc3VtIgotICAiX1B5X2NfZGlmZiIKLSAgIl9QeV9jX25lZyIKLSAgIl9QeV9jX3Byb2QiCi0gICJfUHlfY19xdW90IgotICAiUHlDb21wbGV4X0Zyb21DQ29tcGxleCIKLSAgIlB5Q29tcGxleF9Gcm9tRG91YmxlcyIKLSAgIlB5Q29tcGxleF9SZWFsQXNEb3VibGUiCi0gICJQeUNvbXBsZXhfSW1hZ0FzRG91YmxlIgotICAiUHlDb21wbGV4X0FzQ0NvbXBsZXgiCi0gICJQeUNvbXBsZXhfVHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGRlc2Nyb2JqZWN0KQotICAiUHlXcmFwcGVyX05ldyIKLSAgIlB5RGVzY3JfTmV3TWV0aG9kIgotICAiUHlEZXNjcl9OZXdDbGFzc01ldGhvZCIKLSAgIlB5RGVzY3JfTmV3TWVtYmVyIgotICAiUHlEZXNjcl9OZXdHZXRTZXQiCi0gICJQeURlc2NyX05ld1dyYXBwZXIiCi0gICJQeURpY3RQcm94eV9OZXciCi0gICJQeVdyYXBwZXJEZXNjcl9UeXBlIgotICAiUHlQcm9wZXJ0eV9UeXBlIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoZGljdG9iamVjdCkKLSAgIlB5RGljdF9OZXciCi0gICJQeURpY3RfR2V0SXRlbSIKLSAgIlB5RGljdF9TZXRJdGVtIgotICAiUHlEaWN0X0RlbEl0ZW0iCi0gICJQeURpY3RfQ2xlYXIiCi0gICJQeURpY3RfTWVyZ2VGcm9tU2VxMiIKLSAgIlB5RGljdF9NZXJnZSIKLSAgIlB5RGljdF9LZXlzIgotICAiUHlEaWN0X1ZhbHVlcyIKLSAgIlB5RGljdF9Db250YWlucyIKLSAgIlB5RGljdF9OZXh0IgotICAiUHlEaWN0X0l0ZW1zIgotICAiUHlEaWN0X1NpemUiCi0gICJQeURpY3RfQ29weSIKLSAgIlB5RGljdF9VcGRhdGUiCi0gICJQeURpY3RfR2V0SXRlbVN0cmluZyIKLSAgIlB5RGljdF9TZXRJdGVtU3RyaW5nIgotICAiUHlEaWN0X0RlbEl0ZW1TdHJpbmciCi0gICJQeURpY3RfVHlwZSIKLSAgIlB5RGljdEl0ZXJLZXlfVHlwZSIKLSAgIlB5RGljdEl0ZXJWYWx1ZV9UeXBlIgotICAiUHlEaWN0SXRlckl0ZW1fVHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGVudW1vYmplY3QpCi0gICJQeUVudW1fVHlwZSIKLSAgIlB5UmV2ZXJzZWRfVHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGZpbGVvYmplY3QpCi0gICJQeUZpbGVfRnJvbVN0cmluZyIKLSAgIlB5X1VuaXZlcnNhbE5ld2xpbmVGcmVhZCIKLSAgIlB5RmlsZV9HZXRMaW5lIgotICAiUHlGaWxlX1NvZnRTcGFjZSIKLSAgIlB5RmlsZV9Xcml0ZU9iamVjdCIKLSAgIlB5RmlsZV9Xcml0ZVN0cmluZyIKLSAgIlB5T2JqZWN0X0FzRmlsZURlc2NyaXB0b3IiCi0gICJQeV9Vbml2ZXJzYWxOZXdsaW5lRmdldHMiCi0gICJQeUZpbGVfU2V0QnVmU2l6ZSIKLSAgIlB5RmlsZV9TZXRFbmNvZGluZyIKLSAgIlB5RmlsZV9Gcm9tRmlsZSIKLSAgIlB5RmlsZV9Bc0ZpbGUiCi0gICJQeUZpbGVfTmFtZSIKLSAgIlB5RmlsZV9UeXBlIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoZmxvYXRvYmplY3QpCi0gICJQeUZsb2F0X0Zyb21TdHJpbmciCi0gICJQeUZsb2F0X0FzRG91YmxlIgotICAiUHlGbG9hdF9GaW5pIgotICAiX1B5RmxvYXRfUGFjazQiCi0gICJfUHlGbG9hdF9QYWNrOCIKLSAgIl9QeUZsb2F0X1VucGFjazQiCi0gICJfUHlGbG9hdF9VbnBhY2s4IgotICAiUHlGbG9hdF9Gcm9tRG91YmxlIgotICAiUHlGbG9hdF9Bc1JlcHJTdHJpbmciCi0gICJQeUZsb2F0X0FzU3RyaW5nIgotICAiX1B5RmxvYXRfSW5pdCIKLSAgIlB5RmxvYXRfQXNTdHJpbmdFeCIKLSAgIlB5RmxvYXRfVHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGZyYW1lb2JqZWN0KQotICAiUHlGcmFtZV9OZXciCi0gICJQeUZyYW1lX0Zhc3RUb0xvY2FscyIKLSAgIlB5RnJhbWVfTG9jYWxzVG9GYXN0IgotICAiX1B5RnJhbWVfSW5pdCIKLSAgIlB5RnJhbWVfRmluaSIKLSAgIlB5RnJhbWVfQmxvY2tTZXR1cCIKLSAgIlB5RnJhbWVfQmxvY2tQb3AiCi0gICJQeUZyYW1lX1R5cGUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihmdW5jb2JqZWN0KQotICAiUHlGdW5jdGlvbl9OZXciCi0gICJQeUZ1bmN0aW9uX0dldENvZGUiCi0gICJQeUZ1bmN0aW9uX0dldEdsb2JhbHMiCi0gICJQeUZ1bmN0aW9uX0dldE1vZHVsZSIKLSAgIlB5RnVuY3Rpb25fR2V0RGVmYXVsdHMiCi0gICJQeUZ1bmN0aW9uX1NldERlZmF1bHRzIgotICAiUHlGdW5jdGlvbl9HZXRDbG9zdXJlIgotICAiUHlGdW5jdGlvbl9TZXRDbG9zdXJlIgotICAiUHlDbGFzc01ldGhvZF9OZXciCi0gICJQeVN0YXRpY01ldGhvZF9OZXciCi0gICJQeUZ1bmN0aW9uX1R5cGUiCi0gICJQeUNsYXNzTWV0aG9kX1R5cGUiCi0gICJQeVN0YXRpY01ldGhvZF9UeXBlIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoZ2Vub2JqZWN0KQotICAiUHlHZW5fTmV3IgotICAiUHlHZW5fTmVlZHNGaW5hbGl6aW5nIgotICAiUHlHZW5fVHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGludG9iamVjdCkKLSAgIlB5SW50X0FzTG9uZyIKLSAgIlB5SW50X0FzVW5zaWduZWRMb25nTWFzayIKLSAgIlB5SW50X0FzVW5zaWduZWRMb25nTG9uZ01hc2siCi0gICJQeUludF9Gcm9tU3RyaW5nIgotICAiUHlJbnRfQXNTc2l6ZV90IgotICAiUHlJbnRfRmluaSIKLSAgIlB5SW50X0Zyb21Vbmljb2RlIgotICAiUHlJbnRfRnJvbUxvbmciCi0gICJQeUludF9Gcm9tU2l6ZV90IgotICAiUHlJbnRfRnJvbVNzaXplX3QiCi0gICJQeUludF9HZXRNYXgiCi0gICJfUHlJbnRfSW5pdCIKLSAgIlB5SW50X1R5cGUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihpdGVyb2JqZWN0KQotICAiUHlTZXFJdGVyX05ldyIKLSAgIlB5Q2FsbEl0ZXJfTmV3IgotICAiUHlTZXFJdGVyX1R5cGUiCi0gICJQeUNhbGxJdGVyX1R5cGUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihsaXN0b2JqZWN0KQotICAiUHlMaXN0X05ldyIKLSAgIlB5TGlzdF9BcHBlbmQiCi0gICJQeUxpc3RfU2l6ZSIKLSAgIlB5TGlzdF9HZXRJdGVtIgotICAiUHlMaXN0X1NldEl0ZW0iCi0gICJQeUxpc3RfSW5zZXJ0IgotICAiUHlMaXN0X0dldFNsaWNlIgotICAiUHlMaXN0X1NldFNsaWNlIgotICAiUHlMaXN0X1NvcnQiCi0gICJQeUxpc3RfUmV2ZXJzZSIKLSAgIlB5TGlzdF9Bc1R1cGxlIgotICAiX1B5TGlzdF9FeHRlbmQiCi0gICJQeUxpc3RfRmluaSIKLSAgIlB5TGlzdF9UeXBlIgotICAiUHlMaXN0SXRlcl9UeXBlIgotICAiUHlMaXN0UmV2SXRlcl9UeXBlIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIobG9uZ29iamVjdCkKLSAgIlB5TG9uZ19Gcm9tRG91YmxlIgotICAiUHlMb25nX0FzTG9uZyIKLSAgIl9QeUxvbmdfQXNTc2l6ZV90IgotICAiUHlMb25nX0FzVW5zaWduZWRMb25nIgotICAiX1B5TG9uZ19Gcm9tQnl0ZUFycmF5IgotICAiX1B5TG9uZ19Bc0J5dGVBcnJheSIKLSAgIlB5TG9uZ19Bc0RvdWJsZSIKLSAgIlB5TG9uZ19Gcm9tTG9uZ0xvbmciCi0gICJQeUxvbmdfQXNMb25nTG9uZyIKLSAgIlB5TG9uZ19Gcm9tU3RyaW5nIgotICAiUHlMb25nX0Zyb21Mb25nIgotICAiUHlMb25nX0Zyb21VbnNpZ25lZExvbmciCi0gICJQeUxvbmdfQXNVbnNpZ25lZExvbmdNYXNrIgotICAiX1B5TG9uZ19Gcm9tU2l6ZV90IgotICAiX1B5TG9uZ19Gcm9tU3NpemVfdCIKLSAgIl9QeUxvbmdfQXNTY2FsZWREb3VibGUiCi0gICJQeUxvbmdfRnJvbVZvaWRQdHIiCi0gICJQeUxvbmdfQXNWb2lkUHRyIgotICAiUHlMb25nX0Zyb21VbnNpZ25lZExvbmdMb25nIgotICAiUHlMb25nX0FzVW5zaWduZWRMb25nTG9uZyIKLSAgIlB5TG9uZ19Bc1Vuc2lnbmVkTG9uZ0xvbmdNYXNrIgotICAiUHlMb25nX0Zyb21Vbmljb2RlIgotICAiX1B5TG9uZ19TaWduIgotICAiX1B5TG9uZ19OdW1CaXRzIgotICAiX1B5TG9uZ19OZXciCi0gICJfUHlMb25nX0NvcHkiCi0gICJQeUxvbmdfVHlwZSIKLSAgIl9QeUxvbmdfRGlnaXRWYWx1ZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKG1ldGhvZG9iamVjdCkKLSAgIlB5Q0Z1bmN0aW9uX0NhbGwiCi0gICJQeV9GaW5kTWV0aG9kSW5DaGFpbiIKLSAgIlB5Q0Z1bmN0aW9uX0dldEZ1bmN0aW9uIgotICAiUHlDRnVuY3Rpb25fR2V0U2VsZiIKLSAgIlB5Q0Z1bmN0aW9uX0dldEZsYWdzIgotICAiUHlfRmluZE1ldGhvZCIKLSAgIlB5Q0Z1bmN0aW9uX05ld0V4IgotICAiUHlDRnVuY3Rpb25fRmluaSIKLSAgIlB5Q0Z1bmN0aW9uX05ldyIKLSAgIlB5Q0Z1bmN0aW9uX1R5cGUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihtb2R1bGVvYmplY3QpCi0gICJQeU1vZHVsZV9OZXciCi0gICJfUHlNb2R1bGVfQ2xlYXIiCi0gICJQeU1vZHVsZV9HZXREaWN0IgotICAiUHlNb2R1bGVfR2V0TmFtZSIKLSAgIlB5TW9kdWxlX0dldEZpbGVuYW1lIgotICAiUHlNb2R1bGVfVHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKG9iamVjdCkKLSAgIlB5X0RpdmlzaW9uV2FybmluZ0ZsYWciCi0gICJQeU9iamVjdF9TdHIiCi0gICJQeU9iamVjdF9SZXByIgotICAiX1B5T2JqZWN0X1N0ciIKLSAgIlB5T2JqZWN0X1VuaWNvZGUiCi0gICJQeU9iamVjdF9HZXRBdHRyIgotICAiUHlPYmplY3RfSXNUcnVlIgotICAiUHlOdW1iZXJfQ29lcmNlRXgiCi0gICJQeU9iamVjdF9Db21wYXJlIgotICAiUHlPYmplY3RfUmljaENvbXBhcmUiCi0gICJfUHlfSGFzaERvdWJsZSIKLSAgIlB5T2JqZWN0X0hhc2giCi0gICJQeU9iamVjdF9TZXRBdHRyIgotICAiUHlPYmplY3RfR2VuZXJpY0dldEF0dHIiCi0gICJQeU9iamVjdF9HZW5lcmljU2V0QXR0ciIKLSAgIlB5Q2FsbGFibGVfQ2hlY2siCi0gICJQeU9iamVjdF9EaXIiCi0gICJQeU1lbV9NYWxsb2MiCi0gICJQeU1lbV9SZWFsbG9jIgotICAiUHlNZW1fRnJlZSIKLSAgIlB5T2JqZWN0X1ByaW50IgotICAiX1B5T2JqZWN0X0R1bXAiCi0gICJQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2wiCi0gICJQeU9iamVjdF9HZXRBdHRyU3RyaW5nIgotICAiUHlPYmplY3RfU2V0QXR0clN0cmluZyIKLSAgIlB5T2JqZWN0X0hhc0F0dHJTdHJpbmciCi0gICJQeU9iamVjdF9IYXNBdHRyIgotICAiX1B5T2JqZWN0X0dldERpY3RQdHIiCi0gICJQeU9iamVjdF9TZWxmSXRlciIKLSAgIlB5T2JqZWN0X05vdCIKLSAgIlB5TnVtYmVyX0NvZXJjZSIKLSAgIlB5X1JlcHJFbnRlciIKLSAgIlB5X1JlcHJMZWF2ZSIKLSAgIl9QeV9IYXNoUG9pbnRlciIKLSAgIlB5X0luY1JlZiIKLSAgIlB5X0RlY1JlZiIKLSAgIl9QeVRyYXNoX2RlcG9zaXRfb2JqZWN0IgotICAiX1B5VHJhc2hfZGVzdHJveV9jaGFpbiIKLSAgIlB5T2JqZWN0X0luaXQiCi0gICJQeU9iamVjdF9Jbml0VmFyIgotICAiX1B5T2JqZWN0X05ldyIKLSAgIl9QeU9iamVjdF9OZXdWYXIiCi0gICJfUHlPYmplY3RfRGVsIgotICAiX1B5X1JlYWR5VHlwZXMiCi0gICJfUHlfU3dhcHBlZE9wIgotICAiX1B5X05vdEltcGxlbWVudGVkU3RydWN0IgotICAiX1B5X05vbmVTdHJ1Y3QiCi0gICJfUHlfY29iamVjdF9oYWNrIgotICAiX1B5X2Fic3RyYWN0X2hhY2siCi0gICJfUHlUcmFzaF9kZWxldGVfbmVzdGluZyIKLSAgIl9QeVRyYXNoX2RlbGV0ZV9sYXRlciIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKG9ibWFsbG9jKQotICAiUHlPYmplY3RfTWFsbG9jIgotICAiUHlPYmplY3RfRnJlZSIKLSAgIlB5T2JqZWN0X1JlYWxsb2MiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihyYW5nZW9iamVjdCkKLSAgIlB5UmFuZ2VfVHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKHNldG9iamVjdCkKLSAgIlB5U2V0X1BvcCIKLSAgIlB5U2V0X05ldyIKLSAgIlB5RnJvemVuU2V0X05ldyIKLSAgIlB5U2V0X1NpemUiCi0gICJQeVNldF9DbGVhciIKLSAgIlB5U2V0X0NvbnRhaW5zIgotICAiUHlTZXRfRGlzY2FyZCIKLSAgIlB5U2V0X0FkZCIKLSAgIl9QeVNldF9OZXh0IgotICAiX1B5U2V0X1VwZGF0ZSIKLSAgIlB5U2V0X0ZpbmkiCi0gICJQeVNldF9UeXBlIgotICAiUHlGcm96ZW5TZXRfVHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKHNsaWNlb2JqZWN0KQotICAiX1B5U2xpY2VfRnJvbUluZGljZXMiCi0gICJQeVNsaWNlX0dldEluZGljZXMiCi0gICJQeVNsaWNlX0dldEluZGljZXNFeCIKLSAgIlB5U2xpY2VfTmV3IgotICAiX1B5X0VsbGlwc2lzT2JqZWN0IgotICAiUHlTbGljZV9UeXBlIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoc3RyaW5nb2JqZWN0KQotICAiUHlTdHJpbmdfRnJvbVN0cmluZ0FuZFNpemUiCi0gICJQeVN0cmluZ19JbnRlcm5JblBsYWNlIgotICAiUHlTdHJpbmdfRnJvbVN0cmluZyIKLSAgIlB5U3RyaW5nX0Zyb21Gb3JtYXRWIgotICAiUHlTdHJpbmdfQXNTdHJpbmciCi0gICJfUHlTdHJpbmdfUmVzaXplIgotICAiUHlTdHJpbmdfRnJvbUZvcm1hdCIKLSAgIlB5U3RyaW5nX0FzRGVjb2RlZFN0cmluZyIKLSAgIlB5U3RyaW5nX0FzRW5jb2RlZFN0cmluZyIKLSAgIlB5U3RyaW5nX0RlY29kZUVzY2FwZSIKLSAgIlB5U3RyaW5nX1JlcHIiCi0gICJQeVN0cmluZ19Bc1N0cmluZ0FuZFNpemUiCi0gICJfUHlTdHJpbmdfRm9ybWF0TG9uZyIKLSAgIlB5U3RyaW5nX0Zvcm1hdCIKLSAgIl9QeV9SZWxlYXNlSW50ZXJuZWRTdHJpbmdzIgotICAiUHlTdHJpbmdfU2l6ZSIKLSAgIlB5U3RyaW5nX0NvbmNhdCIKLSAgIlB5U3RyaW5nX0NvbmNhdEFuZERlbCIKLSAgIl9QeVN0cmluZ19FcSIKLSAgIlB5U3RyaW5nX0ludGVybkltbW9ydGFsIgotICAiUHlTdHJpbmdfSW50ZXJuRnJvbVN0cmluZyIKLSAgIl9QeVN0cmluZ19Kb2luIgotICAiUHlTdHJpbmdfRGVjb2RlIgotICAiUHlTdHJpbmdfRW5jb2RlIgotICAiUHlTdHJpbmdfQXNFbmNvZGVkT2JqZWN0IgotICAiUHlTdHJpbmdfQXNEZWNvZGVkT2JqZWN0IgotICAiUHlTdHJpbmdfRmluaSIKLSAgIlB5U3RyaW5nX1R5cGUiCi0gICJQeUJhc2VTdHJpbmdfVHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKHN0cnVjdHNlcSkKLSAgIlB5U3RydWN0U2VxdWVuY2VfSW5pdFR5cGUiCi0gICJQeVN0cnVjdFNlcXVlbmNlX05ldyIKLSAgIlB5U3RydWN0U2VxdWVuY2VfVW5uYW1lZEZpZWxkIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIodHVwbGVvYmplY3QpCi0gICJQeVR1cGxlX05ldyIKLSAgIlB5VHVwbGVfUGFjayIKLSAgIl9QeVR1cGxlX1Jlc2l6ZSIKLSAgIlB5VHVwbGVfU2l6ZSIKLSAgIlB5VHVwbGVfR2V0SXRlbSIKLSAgIlB5VHVwbGVfU2V0SXRlbSIKLSAgIlB5VHVwbGVfR2V0U2xpY2UiCi0gICJQeVR1cGxlX0ZpbmkiCi0gICJQeVR1cGxlX1R5cGUiCi0gICJQeVR1cGxlSXRlcl9UeXBlIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIodHlwZW9iamVjdCkKLSAgIlB5VHlwZV9Jc1N1YnR5cGUiCi0gICJfUHlUeXBlX0xvb2t1cCIKLSAgIlB5VHlwZV9SZWFkeSIKLSAgIlB5VHlwZV9HZW5lcmljQWxsb2MiCi0gICJfUHlPYmplY3RfU2xvdENvbXBhcmUiCi0gICJQeVR5cGVfR2VuZXJpY05ldyIKLSAgIlB5VHlwZV9UeXBlIgotICAiUHlCYXNlT2JqZWN0X1R5cGUiCi0gICJQeVN1cGVyX1R5cGUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYih1bmljb2Rlb2JqZWN0KQotICAiUHlVbmljb2RlVUNTMl9SZXNpemUiCi0gICJQeVVuaWNvZGVVQ1MyX0Zyb21PcmRpbmFsIgotICAiUHlVbmljb2RlVUNTMl9Gcm9tT2JqZWN0IgotICAiUHlVbmljb2RlVUNTMl9Gcm9tRW5jb2RlZE9iamVjdCIKLSAgIlB5VW5pY29kZVVDUzJfRGVjb2RlIgotICAiUHlVbmljb2RlVUNTMl9HZXREZWZhdWx0RW5jb2RpbmciCi0gICJQeVVuaWNvZGVVQ1MyX0RlY29kZVVURjgiCi0gICJQeVVuaWNvZGVVQ1MyX0RlY29kZUxhdGluMSIKLSAgIlB5VW5pY29kZVVDUzJfRGVjb2RlQVNDSUkiCi0gICJQeVVuaWNvZGVVQ1MyX0FzRW5jb2RlZFN0cmluZyIKLSAgIlB5VW5pY29kZVVDUzJfQXNVVEY4U3RyaW5nIgotICAiUHlVbmljb2RlVUNTMl9Bc0xhdGluMVN0cmluZyIKLSAgIlB5VW5pY29kZVVDUzJfQXNBU0NJSVN0cmluZyIKLSAgIlB5VW5pY29kZV9EZWNvZGVVVEY3IgotICAiUHlVbmljb2RlX0VuY29kZVVURjciCi0gICJQeVVuaWNvZGVVQ1MyX0RlY29kZVVURjhTdGF0ZWZ1bCIKLSAgIlB5VW5pY29kZVVDUzJfRW5jb2RlVVRGOCIKLSAgIlB5VW5pY29kZVVDUzJfRGVjb2RlVVRGMTZTdGF0ZWZ1bCIKLSAgIlB5VW5pY29kZVVDUzJfQXNVVEYxNlN0cmluZyIKLSAgIlB5VW5pY29kZVVDUzJfRGVjb2RlVW5pY29kZUVzY2FwZSIKLSAgIlB5VW5pY29kZVVDUzJfRGVjb2RlUmF3VW5pY29kZUVzY2FwZSIKLSAgIlB5VW5pY29kZVVDUzJfRW5jb2RlUmF3VW5pY29kZUVzY2FwZSIKLSAgIl9QeVVuaWNvZGVfRGVjb2RlVW5pY29kZUludGVybmFsIgotICAiUHlVbmljb2RlVUNTMl9EZWNvZGVDaGFybWFwIgotICAiUHlVbmljb2RlX0J1aWxkRW5jb2RpbmdNYXAiCi0gICJQeVVuaWNvZGVVQ1MyX0VuY29kZUNoYXJtYXAiCi0gICJQeVVuaWNvZGVVQ1MyX1RyYW5zbGF0ZUNoYXJtYXAiCi0gICJQeVVuaWNvZGVVQ1MyX0VuY29kZURlY2ltYWwiCi0gICJQeVVuaWNvZGVVQ1MyX0NvdW50IgotICAiUHlVbmljb2RlVUNTMl9GaW5kIgotICAiUHlVbmljb2RlVUNTMl9Kb2luIgotICAiUHlVbmljb2RlVUNTMl9TcGxpdGxpbmVzIgotICAiUHlVbmljb2RlVUNTMl9Db21wYXJlIgotICAiUHlVbmljb2RlVUNTMl9Db250YWlucyIKLSAgIlB5VW5pY29kZVVDUzJfQ29uY2F0IgotICAiX1B5VW5pY29kZV9YU3RyaXAiCi0gICJQeVVuaWNvZGVVQ1MyX1JlcGxhY2UiCi0gICJQeVVuaWNvZGVVQ1MyX1NwbGl0IgotICAiUHlVbmljb2RlVUNTMl9SU3BsaXQiCi0gICJQeVVuaWNvZGVVQ1MyX0Zvcm1hdCIKLSAgIl9QeVVuaWNvZGVVQ1MyX0luaXQiCi0gICJfUHlVbmljb2RlVUNTMl9GaW5pIgotICAiUHlVbmljb2RlVUNTMl9Gcm9tVW5pY29kZSIKLSAgIlB5VW5pY29kZVVDUzJfQXNVbmljb2RlIgotICAiUHlVbmljb2RlVUNTMl9HZXRTaXplIgotICAiUHlVbmljb2RlVUNTMl9HZXRNYXgiCi0gICJfUHlVbmljb2RlVUNTMl9Bc0RlZmF1bHRFbmNvZGVkU3RyaW5nIgotICAiUHlVbmljb2RlVUNTMl9TZXREZWZhdWx0RW5jb2RpbmciCi0gICJQeVVuaWNvZGVVQ1MyX0VuY29kZSIKLSAgIlB5VW5pY29kZVVDUzJfQXNFbmNvZGVkT2JqZWN0IgotICAiUHlVbmljb2RlVUNTMl9EZWNvZGVVVEYxNiIKLSAgIlB5VW5pY29kZVVDUzJfRW5jb2RlVVRGMTYiCi0gICJQeVVuaWNvZGVVQ1MyX0FzVW5pY29kZUVzY2FwZVN0cmluZyIKLSAgIlB5VW5pY29kZVVDUzJfRW5jb2RlVW5pY29kZUVzY2FwZSIKLSAgIlB5VW5pY29kZVVDUzJfQXNSYXdVbmljb2RlRXNjYXBlU3RyaW5nIgotICAiUHlVbmljb2RlVUNTMl9FbmNvZGVMYXRpbjEiCi0gICJQeVVuaWNvZGVVQ1MyX0VuY29kZUFTQ0lJIgotICAiUHlVbmljb2RlVUNTMl9Bc0NoYXJtYXBTdHJpbmciCi0gICJQeVVuaWNvZGVVQ1MyX1BhcnRpdGlvbiIKLSAgIlB5VW5pY29kZVVDUzJfUlBhcnRpdGlvbiIKLSAgIlB5VW5pY29kZVVDUzJfVHJhbnNsYXRlIgotICAiUHlVbmljb2RlVUNTMl9UYWlsbWF0Y2giCi0gICJQeVVuaWNvZGVfQXNEZWNvZGVkT2JqZWN0IgotICAiUHlVbmljb2RlX1R5cGUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYih1bmljb2RlY3R5cGUpCi0gICJfUHlVbmljb2RlX1R5cGVSZWNvcmRzIgotICAiX1B5VW5pY29kZVVDUzJfVG9OdW1lcmljIgotICAiX1B5VW5pY29kZVVDUzJfSXNMb3dlcmNhc2UiCi0gICJfUHlVbmljb2RlVUNTMl9Jc1VwcGVyY2FzZSIKLSAgIl9QeVVuaWNvZGVVQ1MyX0lzVGl0bGVjYXNlIgotICAiX1B5VW5pY29kZVVDUzJfSXNXaGl0ZXNwYWNlIgotICAiX1B5VW5pY29kZVVDUzJfSXNMaW5lYnJlYWsiCi0gICJfUHlVbmljb2RlVUNTMl9Ub0xvd2VyY2FzZSIKLSAgIl9QeVVuaWNvZGVVQ1MyX1RvVXBwZXJjYXNlIgotICAiX1B5VW5pY29kZVVDUzJfVG9UaXRsZWNhc2UiCi0gICJfUHlVbmljb2RlVUNTMl9Ub0RlY2ltYWxEaWdpdCIKLSAgIl9QeVVuaWNvZGVVQ1MyX1RvRGlnaXQiCi0gICJfUHlVbmljb2RlVUNTMl9Jc0RlY2ltYWxEaWdpdCIKLSAgIl9QeVVuaWNvZGVVQ1MyX0lzRGlnaXQiCi0gICJfUHlVbmljb2RlVUNTMl9Jc051bWVyaWMiCi0gICJfUHlVbmljb2RlVUNTMl9Jc0FscGhhIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIod2Vha3JlZm9iamVjdCkKLSAgIlB5V2Vha3JlZl9OZXdSZWYiCi0gICJQeVdlYWtyZWZfTmV3UHJveHkiCi0gICJQeU9iamVjdF9DbGVhcldlYWtSZWZzIgotICAiUHlXZWFrcmVmX0dldE9iamVjdCIKLSAgIl9QeVdlYWtyZWZfR2V0V2Vha3JlZkNvdW50IgotICAiX1B5V2Vha3JlZl9DbGVhclJlZiIKLSAgIl9QeVdlYWtyZWZfUmVmVHlwZSIKLSAgIl9QeVdlYWtyZWZfUHJveHlUeXBlIgotICAiX1B5V2Vha3JlZl9DYWxsYWJsZVByb3h5VHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKFB5dGhvbi1hc3QpCi07ICAiaW5pdF9hc3QiCi0gICJNb2R1bGUiCi0gICJJbnRlcmFjdGl2ZSIKLSAgIkV4cHJlc3Npb24iCi0gICJTdWl0ZSIKLSAgIkZ1bmN0aW9uRGVmIgotICAiQ2xhc3NEZWYiCi0gICJSZXR1cm4iCi0gICJEZWxldGUiCi0gICJBc3NpZ24iCi0gICJBdWdBc3NpZ24iCi0gICJQcmludCIKLSAgIkZvciIKLSAgIldoaWxlIgotICAiSWYiCi0gICJXaXRoIgotICAiUmFpc2UiCi0gICJUcnlFeGNlcHQiCi0gICJUcnlGaW5hbGx5IgotICAiQXNzZXJ0IgotICAiSW1wb3J0IgotICAiSW1wb3J0RnJvbSIKLSAgIkV4ZWMiCi0gICJHbG9iYWwiCi0gICJFeHByIgotICAiUGFzcyIKLSAgIkJyZWFrIgotICAiQ29udGludWUiCi0gICJCb29sT3AiCi0gICJCaW5PcCIKLSAgIlVuYXJ5T3AiCi0gICJMYW1iZGEiCi0gICJJZkV4cCIKLSAgIkRpY3QiCi0gICJMaXN0Q29tcCIKLSAgIkdlbmVyYXRvckV4cCIKLSAgIllpZWxkIgotICAiQ29tcGFyZSIKLSAgIkNhbGwiCi0gICJSZXByIgotICAiTnVtIgotICAiU3RyIgotICAiQXR0cmlidXRlIgotICAiU3Vic2NyaXB0IgotICAiTmFtZSIKLSAgIkxpc3QiCi0gICJUdXBsZSIKLSAgIkVsbGlwc2lzIgotICAiU2xpY2UiCi0gICJFeHRTbGljZSIKLSAgIkluZGV4IgotICAiY29tcHJlaGVuc2lvbiIKLSAgImV4Y2VwdGhhbmRsZXIiCi0gICJhcmd1bWVudHMiCi0gICJrZXl3b3JkIgotICAiYWxpYXMiCi0gICJQeUFTVF9tb2Qyb2JqIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoYXNkbCkKLSAgImFzZGxfc2VxX25ldyIKLSAgImFzZGxfaW50X3NlcV9uZXciCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihhc3QpCi0gICJQeUFTVF9Gcm9tTm9kZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGJsdGlubW9kdWxlKQotICAiX1B5QnVpbHRpbl9Jbml0IgotICAiUHlfRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZyIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGV4Y2VwdGlvbnMpCi0gICJQeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRTdGFydCIKLSAgIlB5VW5pY29kZURlY29kZUVycm9yX0dldFN0YXJ0IgotICAiUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0RW5kIgotICAiUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0RW5kIgotICAiX1B5RXhjX0luaXQiCi0gICJQeVVuaWNvZGVEZWNvZGVFcnJvcl9DcmVhdGUiCi0gICJQeVVuaWNvZGVFbmNvZGVFcnJvcl9DcmVhdGUiCi0gICJQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9DcmVhdGUiCi0gICJQeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRFbmNvZGluZyIKLSAgIlB5VW5pY29kZURlY29kZUVycm9yX0dldEVuY29kaW5nIgotICAiUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0T2JqZWN0IgotICAiUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0T2JqZWN0IgotICAiUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0T2JqZWN0IgotICAiUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0U3RhcnQiCi0gICJQeVVuaWNvZGVFbmNvZGVFcnJvcl9TZXRTdGFydCIKLSAgIlB5VW5pY29kZURlY29kZUVycm9yX1NldFN0YXJ0IgotICAiUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfU2V0U3RhcnQiCi0gICJQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRFbmQiCi0gICJQeVVuaWNvZGVFbmNvZGVFcnJvcl9TZXRFbmQiCi0gICJQeVVuaWNvZGVEZWNvZGVFcnJvcl9TZXRFbmQiCi0gICJQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9TZXRFbmQiCi0gICJQeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRSZWFzb24iCi0gICJQeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRSZWFzb24iCi0gICJQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRSZWFzb24iCi0gICJQeVVuaWNvZGVFbmNvZGVFcnJvcl9TZXRSZWFzb24iCi0gICJQeVVuaWNvZGVEZWNvZGVFcnJvcl9TZXRSZWFzb24iCi0gICJQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9TZXRSZWFzb24iCi0gICJfUHlFeGNfRmluaSIKLSAgIlB5RXhjX0Jhc2VFeGNlcHRpb24iCi0gICJQeUV4Y19FeGNlcHRpb24iCi0gICJQeUV4Y19TdGFuZGFyZEVycm9yIgotICAiUHlFeGNfVHlwZUVycm9yIgotICAiUHlFeGNfU3RvcEl0ZXJhdGlvbiIKLSAgIlB5RXhjX0dlbmVyYXRvckV4aXQiCi0gICJQeUV4Y19TeXN0ZW1FeGl0IgotICAiUHlFeGNfS2V5Ym9hcmRJbnRlcnJ1cHQiCi0gICJQeUV4Y19JbXBvcnRFcnJvciIKLSAgIlB5RXhjX0Vudmlyb25tZW50RXJyb3IiCi0gICJQeUV4Y19JT0Vycm9yIgotICAiUHlFeGNfT1NFcnJvciIKLSAgIlB5RXhjX0VPRkVycm9yIgotICAiUHlFeGNfUnVudGltZUVycm9yIgotICAiUHlFeGNfTm90SW1wbGVtZW50ZWRFcnJvciIKLSAgIlB5RXhjX05hbWVFcnJvciIKLSAgIlB5RXhjX1VuYm91bmRMb2NhbEVycm9yIgotICAiUHlFeGNfQXR0cmlidXRlRXJyb3IiCi0gICJQeUV4Y19JbmRleEVycm9yIgotICAiUHlFeGNfU3ludGF4RXJyb3IiCi0gICJQeUV4Y19JbmRlbnRhdGlvbkVycm9yIgotICAiUHlFeGNfVGFiRXJyb3IiCi0gICJQeUV4Y19Mb29rdXBFcnJvciIKLSAgIlB5RXhjX0tleUVycm9yIgotICAiUHlFeGNfVmFsdWVFcnJvciIKLSAgIlB5RXhjX1VuaWNvZGVFcnJvciIKLSAgIlB5RXhjX1VuaWNvZGVFbmNvZGVFcnJvciIKLSAgIlB5RXhjX1VuaWNvZGVEZWNvZGVFcnJvciIKLSAgIlB5RXhjX1VuaWNvZGVUcmFuc2xhdGVFcnJvciIKLSAgIlB5RXhjX0Fzc2VydGlvbkVycm9yIgotICAiUHlFeGNfQXJpdGhtZXRpY0Vycm9yIgotICAiUHlFeGNfRmxvYXRpbmdQb2ludEVycm9yIgotICAiUHlFeGNfT3ZlcmZsb3dFcnJvciIKLSAgIlB5RXhjX1plcm9EaXZpc2lvbkVycm9yIgotICAiUHlFeGNfU3lzdGVtRXJyb3IiCi0gICJQeUV4Y19SZWZlcmVuY2VFcnJvciIKLSAgIlB5RXhjX01lbW9yeUVycm9yIgotICAiUHlFeGNfV2FybmluZyIKLSAgIlB5RXhjX1VzZXJXYXJuaW5nIgotICAiUHlFeGNfRGVwcmVjYXRpb25XYXJuaW5nIgotICAiUHlFeGNfUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZyIKLSAgIlB5RXhjX1N5bnRheFdhcm5pbmciCi0gICJQeUV4Y19SdW50aW1lV2FybmluZyIKLSAgIlB5RXhjX0Z1dHVyZVdhcm5pbmciCi0gICJQeUV4Y19JbXBvcnRXYXJuaW5nIgotICAiUHlFeGNfTWVtb3J5RXJyb3JJbnN0IgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoY2V2YWwpCi0gICJQeUV2YWxfRXZhbEZyYW1lRXgiCi0gICJQeUV2YWxfQ2FsbE9iamVjdFdpdGhLZXl3b3JkcyIKLSAgIlB5RXZhbF9FdmFsQ29kZUV4IgotICAiUHlFdmFsX0dldEZyYW1lIgotICAiUHlFdmFsX0NhbGxPYmplY3QiCi0gICJQeUV2YWxfU2V0UHJvZmlsZSIKLSAgIlB5RXZhbF9TZXRUcmFjZSIKLSAgIlB5RXZhbF9HZXRCdWlsdGlucyIKLSAgIlB5RXZhbF9HZXRHbG9iYWxzIgotICAiUHlFdmFsX0dldExvY2FscyIKLSAgIlB5RXZhbF9HZXRSZXN0cmljdGVkIgotICAiUHlFdmFsX01lcmdlQ29tcGlsZXJGbGFncyIKLSAgIlB5X0ZsdXNoTGluZSIKLSAgIlB5X0FkZFBlbmRpbmdDYWxsIgotICAiUHlfTWFrZVBlbmRpbmdDYWxscyIKLSAgIlB5X1NldFJlY3Vyc2lvbkxpbWl0IgotICAiUHlfR2V0UmVjdXJzaW9uTGltaXQiCi0gICJfUHlfQ2hlY2tSZWN1cnNpdmVDYWxsIgotICAiUHlFdmFsX0dldEZ1bmNOYW1lIgotICAiUHlFdmFsX0dldEZ1bmNEZXNjIgotICAiUHlFdmFsX0dldENhbGxTdGF0cyIKLSAgIlB5RXZhbF9FdmFsRnJhbWUiCi0gICJQeUV2YWxfU2F2ZVRocmVhZCIKLSAgIlB5RXZhbF9SZXN0b3JlVGhyZWFkIgotICAiUHlFdmFsX1RocmVhZHNJbml0aWFsaXplZCIKLSAgIlB5RXZhbF9Jbml0VGhyZWFkcyIKLSAgIlB5RXZhbF9BY3F1aXJlTG9jayIKLSAgIlB5RXZhbF9SZWxlYXNlTG9jayIKLSAgIlB5RXZhbF9BY3F1aXJlVGhyZWFkIgotICAiUHlFdmFsX1JlbGVhc2VUaHJlYWQiCi0gICJQeUV2YWxfUmVJbml0VGhyZWFkcyIKLSAgIl9QeUV2YWxfU2xpY2VJbmRleCIKLSAgIlB5RXZhbF9FdmFsQ29kZSIKLSAgIl9QeUV2YWxfQ2FsbFRyYWNpbmciCi0gICJfUHlfQ2hlY2tSZWN1cnNpb25MaW1pdCIKLSAgIl9QeV9DaGVja0ludGVydmFsIgotICAiX1B5X1RpY2tlciIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGNvbXBpbGUpCi0gICJfUHlfTWFuZ2xlIgotICAiUHlBU1RfQ29tcGlsZSIKLSAgIlB5Tm9kZV9Db21waWxlIgotICAiUHlfT3B0aW1pemVGbGFnIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoY29kZWNzKQotICAiX1B5Q29kZWNfTG9va3VwIgotICAiUHlDb2RlY19FbmNvZGUiCi0gICJQeUNvZGVjX0RlY29kZSIKLSAgIlB5Q29kZWNfSWdub3JlRXJyb3JzIgotICAiUHlDb2RlY19SZXBsYWNlRXJyb3JzIgotICAiUHlDb2RlY19YTUxDaGFyUmVmUmVwbGFjZUVycm9ycyIKLSAgIlB5Q29kZWNfQmFja3NsYXNoUmVwbGFjZUVycm9ycyIKLSAgIlB5Q29kZWNfUmVnaXN0ZXIiCi0gICJQeUNvZGVjX0VuY29kZXIiCi0gICJQeUNvZGVjX0RlY29kZXIiCi0gICJQeUNvZGVjX0luY3JlbWVudGFsRW5jb2RlciIKLSAgIlB5Q29kZWNfSW5jcmVtZW50YWxEZWNvZGVyIgotICAiUHlDb2RlY19TdHJlYW1SZWFkZXIiCi0gICJQeUNvZGVjX1N0cmVhbVdyaXRlciIKLSAgIlB5Q29kZWNfUmVnaXN0ZXJFcnJvciIKLSAgIlB5Q29kZWNfTG9va3VwRXJyb3IiCi0gICJQeUNvZGVjX1N0cmljdEVycm9ycyIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGVycm9ycykKLSAgIlB5RXJyX1NldE5vbmUiCi0gICJQeUVycl9TZXRTdHJpbmciCi0gICJQeUVycl9HaXZlbkV4Y2VwdGlvbk1hdGNoZXMiCi0gICJQeUVycl9Ob3JtYWxpemVFeGNlcHRpb24iCi0gICJQeUVycl9GZXRjaCIKLSAgIlB5RXJyX0NsZWFyIgotICAiUHlFcnJfTm9NZW1vcnkiCi0gICJQeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWVPYmplY3QiCi0gICJQeUVycl9Gb3JtYXQiCi0gICJQeUVycl9OZXdFeGNlcHRpb24iCi0gICJQeUVycl9Xcml0ZVVucmFpc2FibGUiCi0gICJQeUVycl9TeW50YXhMb2NhdGlvbiIKLSAgIlB5RXJyX1Byb2dyYW1UZXh0IgotICAiUHlFcnJfU2V0T2JqZWN0IgotICAiUHlFcnJfT2NjdXJyZWQiCi0gICJQeUVycl9SZXN0b3JlIgotICAiUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyIKLSAgIlB5RXJyX0JhZEFyZ3VtZW50IgotICAiUHlFcnJfU2V0RnJvbUVycm5vIgotICAiUHlFcnJfU2V0RnJvbUVycm5vV2l0aEZpbGVuYW1lIgotICAiUHlFcnJfQmFkSW50ZXJuYWxDYWxsIgotICAiX1B5RXJyX0JhZEludGVybmFsQ2FsbCIKLSAgIlB5RXJyX1dhcm4iCi0gICJQeUVycl9XYXJuRXhwbGljaXQiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihmcm96ZW4pCi0gICJQeUltcG9ydF9Gcm96ZW5Nb2R1bGVzIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoZnJvemVubWFpbikKLSAgIlB5X0Zyb3plbk1haW4iCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihmdXR1cmUpCi0gICJQeUZ1dHVyZV9Gcm9tQVNUIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoZ2V0YXJncykKLSAgIlB5QXJnX1BhcnNlIgotICAiX1B5QXJnX1BhcnNlX1NpemVUIgotICAiUHlBcmdfUGFyc2VUdXBsZSIKLSAgIl9QeUFyZ19QYXJzZVR1cGxlX1NpemVUIgotICAiUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzIgotICAiX1B5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3Jkc19TaXplVCIKLSAgIlB5QXJnX1VucGFja1R1cGxlIgotICAiX1B5QXJnX05vS2V5d29yZHMiCi0gICJQeUFyZ19WYVBhcnNlIgotICAiUHlBcmdfVmFQYXJzZVR1cGxlQW5kS2V5d29yZHMiCi0gICJfUHlBcmdfVmFQYXJzZV9TaXplVCIKLSAgIl9QeUFyZ19WYVBhcnNlVHVwbGVBbmRLZXl3b3Jkc19TaXplVCIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGdldGNvbXBpbGVyKQotICAiUHlfR2V0Q29tcGlsZXIiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihnZXRjb3B5cmlnaHQpCi0gICJQeV9HZXRDb3B5cmlnaHQiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihnZXRwbGF0Zm9ybSkKLSAgIlB5X0dldFBsYXRmb3JtIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoZ2V0dmVyc2lvbikKLSAgIlB5X0dldFZlcnNpb24iCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihncmFtaW5pdCkKLSAgIl9QeVBhcnNlcl9HcmFtbWFyIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoaW1wb3J0KQotICAiX1B5SW1wb3J0X0luaXQiCi0gICJfUHlJbXBvcnRIb29rc19Jbml0IgotICAiUHlJbXBvcnRfSW1wb3J0TW9kdWxlIgotICAiUHlJbXBvcnRfQ2xlYW51cCIKLSAgIl9QeUltcG9ydF9GaXh1cEV4dGVuc2lvbiIKLSAgIlB5SW1wb3J0X0FkZE1vZHVsZSIKLSAgIlB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlRXgiCi0gICJQeUltcG9ydF9JbXBvcnRGcm96ZW5Nb2R1bGUiCi0gICJQeUltcG9ydF9JbXBvcnRNb2R1bGVFeCIKLSAgIlB5SW1wb3J0X0ltcG9ydE1vZHVsZUxldmVsIgotICAiUHlJbXBvcnRfUmVsb2FkTW9kdWxlIgotICAiUHlJbXBvcnRfSW1wb3J0IgotOyAgImluaXRpbXAiCi0gICJfUHlJbXBvcnRfRmluaSIKLSAgIlB5SW1wb3J0X0dldE1hZ2ljTnVtYmVyIgotICAiUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGUiCi0gICJQeUltcG9ydF9HZXRNb2R1bGVEaWN0IgotICAiX1B5SW1wb3J0X0ZpbmRNb2R1bGUiCi0gICJfUHlJbXBvcnRfSXNTY3JpcHQiCi0gICJfUHlJbXBvcnRfUmVJbml0TG9jayIKLSAgIl9QeUltcG9ydF9GaW5kRXh0ZW5zaW9uIgotICAiUHlJbXBvcnRfQXBwZW5kSW5pdHRhYiIKLSAgIlB5SW1wb3J0X0V4dGVuZEluaXR0YWIiCi0gICJQeUltcG9ydF9Jbml0dGFiIgotICAiX1B5SW1wb3J0X0ZpbGV0YWIiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihpbXBvcnRkbCkKLSAgIl9QeUltcG9ydF9Mb2FkRHluYW1pY01vZHVsZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKG1hcnNoYWwpCi0gICJQeU1hcnNoYWxfUmVhZExvbmdGcm9tRmlsZSIKLSAgIlB5TWFyc2hhbF9Xcml0ZU9iamVjdFRvU3RyaW5nIgotICAiUHlNYXJzaGFsX1dyaXRlTG9uZ1RvRmlsZSIKLSAgIlB5TWFyc2hhbF9Xcml0ZU9iamVjdFRvRmlsZSIKLSAgIlB5TWFyc2hhbF9SZWFkU2hvcnRGcm9tRmlsZSIKLSAgIlB5TWFyc2hhbF9SZWFkT2JqZWN0RnJvbUZpbGUiCi0gICJQeU1hcnNoYWxfUmVhZExhc3RPYmplY3RGcm9tRmlsZSIKLSAgIlB5TWFyc2hhbF9SZWFkT2JqZWN0RnJvbVN0cmluZyIKLSAgIlB5TWFyc2hhbF9Jbml0IgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIobW9kc3VwcG9ydCkKLSAgIlB5X0luaXRNb2R1bGU0IgotICAiUHlfQnVpbGRWYWx1ZSIKLSAgIl9QeV9CdWlsZFZhbHVlX1NpemVUIgotICAiUHlFdmFsX0NhbGxGdW5jdGlvbiIKLSAgIlB5RXZhbF9DYWxsTWV0aG9kIgotICAiX1B5X1ZhQnVpbGRWYWx1ZV9TaXplVCIKLSAgIlB5X1ZhQnVpbGRWYWx1ZSIKLSAgIlB5TW9kdWxlX0FkZE9iamVjdCIKLSAgIlB5TW9kdWxlX0FkZEludENvbnN0YW50IgotICAiUHlNb2R1bGVfQWRkU3RyaW5nQ29uc3RhbnQiCi0gICJfUHlfUGFja2FnZUNvbnRleHQiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihteXNucHJpbnRmKQotICAiUHlPU19zbnByaW50ZiIKLSAgIlB5T1NfdnNucHJpbnRmIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIobXlzdHJ0b3VsKQotICAiUHlPU19zdHJ0b3VsIgotICAiUHlPU19zdHJ0b2wiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihweWFyZW5hKQotICAiUHlBcmVuYV9OZXciCi0gICJQeUFyZW5hX0ZyZWUiCi0gICJQeUFyZW5hX01hbGxvYyIKLSAgIlB5QXJlbmFfQWRkUHlPYmplY3QiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihweWZwZSkKLSAgIlB5RlBFX2R1bW15IgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIocHlzdGF0ZSkKLSAgIlB5SW50ZXJwcmV0ZXJTdGF0ZV9DbGVhciIKLSAgIlB5VGhyZWFkU3RhdGVfQ2xlYXIiCi0gICJfUHlUaHJlYWRfQ3VycmVudEZyYW1lcyIKLSAgIlB5R0lMU3RhdGVfRW5zdXJlIgotICAiUHlHSUxTdGF0ZV9SZWxlYXNlIgotICAiUHlJbnRlcnByZXRlclN0YXRlX05ldyIKLSAgIlB5SW50ZXJwcmV0ZXJTdGF0ZV9EZWxldGUiCi0gICJQeVRocmVhZFN0YXRlX0RlbGV0ZSIKLSAgIlB5VGhyZWFkU3RhdGVfTmV3IgotICAiUHlUaHJlYWRTdGF0ZV9EZWxldGVDdXJyZW50IgotICAiUHlUaHJlYWRTdGF0ZV9HZXQiCi0gICJQeVRocmVhZFN0YXRlX1N3YXAiCi0gICJQeVRocmVhZFN0YXRlX0dldERpY3QiCi0gICJQeVRocmVhZFN0YXRlX1NldEFzeW5jRXhjIgotICAiUHlHSUxTdGF0ZV9HZXRUaGlzVGhyZWFkU3RhdGUiCi0gICJQeUludGVycHJldGVyU3RhdGVfSGVhZCIKLSAgIlB5SW50ZXJwcmV0ZXJTdGF0ZV9OZXh0IgotICAiUHlJbnRlcnByZXRlclN0YXRlX1RocmVhZEhlYWQiCi0gICJQeVRocmVhZFN0YXRlX05leHQiCi0gICJfUHlHSUxTdGF0ZV9Jbml0IgotICAiX1B5R0lMU3RhdGVfRmluaSIKLSAgIl9QeVRocmVhZFN0YXRlX0N1cnJlbnQiCi0gICJfUHlUaHJlYWRTdGF0ZV9HZXRGcmFtZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKHB5dGhvbnJ1bikKLSAgIlB5X0lnbm9yZUVudmlyb25tZW50RmxhZyIKLSAgIlB5X0RlYnVnRmxhZyIKLSAgIlB5X1ZlcmJvc2VGbGFnIgotICAiUHlfTm9TaXRlRmxhZyIKLSAgIlB5X0ludGVyYWN0aXZlRmxhZyIKLSAgIlB5X0Zyb3plbkZsYWciCi0gICJQeV9Jbml0aWFsaXplRXgiCi0gICJQeV9GYXRhbEVycm9yIgotICAiUHlfTmV3SW50ZXJwcmV0ZXIiCi0gICJQeUVycl9QcmludCIKLSAgIlB5UnVuX0ludGVyYWN0aXZlT25lRmxhZ3MiCi0gICJQeVBhcnNlcl9BU1RGcm9tRmlsZSIKLSAgIlB5UnVuX1NpbXBsZUZpbGVFeEZsYWdzIgotICAiUHlSdW5fRmlsZUV4RmxhZ3MiCi0gICJQeV9FeGl0IgotICAiUHlFcnJfUHJpbnRFeCIKLSAgIlB5RXJyX0Rpc3BsYXkiCi0gICJQeV9TZXRQcm9ncmFtTmFtZSIKLSAgIlB5X0dldFByb2dyYW1OYW1lIgotICAiUHlfU2V0UHl0aG9uSG9tZSIKLSAgIlB5X0dldFB5dGhvbkhvbWUiCi0gICJQeV9Jbml0aWFsaXplIgotICAiUHlfRmluYWxpemUiCi0gICJQeV9Jc0luaXRpYWxpemVkIgotICAiUHlfRW5kSW50ZXJwcmV0ZXIiCi0gICJQeVJ1bl9BbnlGaWxlRmxhZ3MiCi0gICJQeV9GZElzSW50ZXJhY3RpdmUiCi0gICJQeVJ1bl9JbnRlcmFjdGl2ZUxvb3BGbGFncyIKLSAgIlB5UnVuX0FueUZpbGVFeEZsYWdzIgotICAiUHlSdW5fU2ltcGxlU3RyaW5nRmxhZ3MiCi0gICJQeVJ1bl9TdHJpbmdGbGFncyIKLSAgIlB5UGFyc2VyX0FTVEZyb21TdHJpbmciCi0gICJQeVBhcnNlcl9TaW1wbGVQYXJzZVN0cmluZ0ZsYWdzIgotICAiUHlQYXJzZXJfU2ltcGxlUGFyc2VGaWxlRmxhZ3MiCi0gICJQeV9Db21waWxlU3RyaW5nRmxhZ3MiCi0gICJQeV9TeW10YWJsZVN0cmluZyIKLSAgIlB5X0F0RXhpdCIKLSAgIlB5T1NfZ2V0c2lnIgotICAiUHlPU19zZXRzaWciCi0gICJQeVBhcnNlcl9TZXRFcnJvciIKLSAgIlB5TW9kdWxlX0dldFdhcm5pbmdzTW9kdWxlIgotICAiUHlQYXJzZXJfU2ltcGxlUGFyc2VTdHJpbmdGbGFnc0ZpbGVuYW1lIgotICAiUHlQYXJzZXJfU2ltcGxlUGFyc2VTdHJpbmdGaWxlbmFtZSIKLSAgIlB5UGFyc2VyX1NpbXBsZVBhcnNlRmlsZSIKLSAgIlB5UGFyc2VyX1NpbXBsZVBhcnNlU3RyaW5nIgotICAiUHlSdW5fQW55RmlsZSIKLSAgIlB5UnVuX0FueUZpbGVFeCIKLSAgIlB5UnVuX0ZpbGUiCi0gICJQeVJ1bl9GaWxlRXgiCi0gICJQeVJ1bl9GaWxlRmxhZ3MiCi0gICJQeVJ1bl9TaW1wbGVGaWxlIgotICAiUHlSdW5fU2ltcGxlRmlsZUV4IgotICAiUHlSdW5fU3RyaW5nIgotICAiUHlSdW5fU2ltcGxlU3RyaW5nIgotICAiUHlfQ29tcGlsZVN0cmluZyIKLSAgIlB5UnVuX0ludGVyYWN0aXZlT25lIgotICAiUHlSdW5fSW50ZXJhY3RpdmVMb29wIgotICAiUHlfVXNlQ2xhc3NFeGNlcHRpb25zRmxhZyIKLSAgIlB5X1VuaWNvZGVGbGFnIgotICAiX1B5X1FuZXdGbGFnIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoc3RydWN0bWVtYmVyKQotICAiUHlNZW1iZXJfR2V0IgotICAiUHlNZW1iZXJfR2V0T25lIgotICAiUHlNZW1iZXJfU2V0T25lIgotICAiUHlNZW1iZXJfU2V0IgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoc3ltdGFibGUpCi0gICJQeVN5bXRhYmxlX0J1aWxkIgotICAiUHlTeW10YWJsZV9GcmVlIgotICAiUHlTVF9HZXRTY29wZSIKLSAgIlB5U3ltdGFibGVfTG9va3VwIgotICAiUHlTVEVudHJ5X1R5cGUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihzeXNtb2R1bGUpCi0gICJfUHlTeXNfSW5pdCIKLSAgIlB5U3lzX1dyaXRlU3RkZXJyIgotICAiUHlTeXNfU2V0UGF0aCIKLSAgIlB5U3lzX1NldEFyZ3YiCi0gICJQeVN5c19Xcml0ZVN0ZG91dCIKLSAgIlB5X1N1YnZlcnNpb25SZXZpc2lvbiIKLSAgIlB5X1N1YnZlcnNpb25TaG9ydEJyYW5jaCIKLSAgIlB5U3lzX0dldE9iamVjdCIKLSAgIlB5U3lzX1NldE9iamVjdCIKLSAgIlB5U3lzX0dldEZpbGUiCi0gICJQeVN5c19SZXNldFdhcm5PcHRpb25zIgotICAiUHlTeXNfQWRkV2Fybk9wdGlvbiIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKHRyYWNlYmFjaykKLSAgIlB5VHJhY2VCYWNrX0hlcmUiCi0gICJQeVRyYWNlQmFja19QcmludCIKLSAgIlB5VHJhY2VCYWNrX1R5cGUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihnZXRvcHQpCi0gICJfUHlPU19HZXRPcHQiCi0gICJfUHlPU19vcHRlcnIiCi0gICJfUHlPU19vcHRpbmQiCi0gICJfUHlPU19vcHRhcmciCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihkeW5sb2FkX3NobGliKQotICAiX1B5SW1wb3J0X0R5bkxvYWRGaWxldGFiIgotICAiX1B5SW1wb3J0X0dldER5bkxvYWRGdW5jIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIodGhyZWFkKQotICAiUHlUaHJlYWRfZGVsZXRlX2tleV92YWx1ZSIKLSAgIlB5VGhyZWFkX2luaXRfdGhyZWFkIgotICAiUHlUaHJlYWRfc3RhcnRfbmV3X3RocmVhZCIKLSAgIlB5VGhyZWFkX2V4aXRfdGhyZWFkIgotICAiUHlUaHJlYWRfZ2V0X3RocmVhZF9pZGVudCIKLSAgIlB5VGhyZWFkX2FsbG9jYXRlX2xvY2siCi0gICJQeVRocmVhZF9mcmVlX2xvY2siCi0gICJQeVRocmVhZF9hY3F1aXJlX2xvY2siCi0gICJQeVRocmVhZF9yZWxlYXNlX2xvY2siCi0gICJQeVRocmVhZF9nZXRfc3RhY2tzaXplIgotICAiUHlUaHJlYWRfc2V0X3N0YWNrc2l6ZSIKLSAgIlB5VGhyZWFkX2NyZWF0ZV9rZXkiCi0gICJQeVRocmVhZF9kZWxldGVfa2V5IgotICAiUHlUaHJlYWRfc2V0X2tleV92YWx1ZSIKLSAgIlB5VGhyZWFkX2dldF9rZXlfdmFsdWUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihnY21vZHVsZSkKLTsgICJpbml0Z2MiCi0gICJfUHlPYmplY3RfR0NfTmV3IgotICAiX1B5T2JqZWN0X0dDX05ld1ZhciIKLSAgIlB5R0NfQ29sbGVjdCIKLSAgIl9QeU9iamVjdF9HQ19SZXNpemUiCi0gICJfUHlPYmplY3RfR0NfTWFsbG9jIgotICAiUHlPYmplY3RfR0NfVHJhY2siCi0gICJQeU9iamVjdF9HQ19VblRyYWNrIgotICAiUHlPYmplY3RfR0NfRGVsIgotICAiX1B5R0NfRHVtcCIKLSAgIl9QeU9iamVjdF9HQ19UcmFjayIKLSAgIl9QeU9iamVjdF9HQ19VblRyYWNrIgotICAiX1B5T2JqZWN0X0dDX0RlbCIKLSAgIl9QeUdDX2dlbmVyYXRpb24wIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoc2lnbmFsbW9kdWxlKQotOyAgImluaXRzaWduYWwiCi0gICJQeUVycl9DaGVja1NpZ25hbHMiCi0gICJQeUVycl9TZXRJbnRlcnJ1cHQiCi0gICJQeU9TX0ZpbmlJbnRlcnJ1cHRzIgotICAiUHlPU19JbnRlcnJ1cHRPY2N1cnJlZCIKLSAgIlB5T1NfSW5pdEludGVycnVwdHMiCi0gICJQeU9TX0FmdGVyRm9yayIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKHBvc2l4bW9kdWxlKQotOyAgImluaXRvczIiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihfdGhyZWFkbW9kdWxlKQotOyAgImluaXRfdGhyZWFkIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoYXJyYXltb2R1bGUpCi07ICAiaW5pdGFycmF5IgotOyAgImFycmF5X21ldGhvZHMiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihiaW5hc2NpaSkKLTsgICJpbml0YmluYXNjaWkiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihjbWF0aG1vZHVsZSkKLTsgICJpbml0Y21hdGgiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihfY29kZWNzbW9kdWxlKQotOyAgImluaXRfY29kZWNzIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoY29sbGVjdGlvbnNtb2R1bGUpCi07ICAiaW5pdGNvbGxlY3Rpb25zIgotICAiZGVxdWVpdGVyX3R5cGUiCi0gICJkZXF1ZXJldml0ZXJfdHlwZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGNQaWNrbGUpCi07ICAiaW5pdGNQaWNrbGUiCi07ICAiZmFzdF9zYXZlX2xlYXZlIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoX2NzdikKLTsgICJpbml0X2NzdiIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGRhdGV0aW1lbW9kdWxlKQotOyAgImluaXRkYXRldGltZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGRsbW9kdWxlKQotOyAgImluaXRkbCIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGVycm5vbW9kdWxlKQotOyAgImluaXRlcnJubyIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGZjbnRsbW9kdWxlKQotOyAgImluaXRmY250bCIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKF9mdW5jdG9vbHNtb2R1bGUpCi07ICAiaW5pdF9mdW5jdG9vbHMiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihfaGVhcHFtb2R1bGUpCi07ICAiaW5pdF9oZWFwcSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKGltYWdlb3ApCi07ICAiaW5pdGltYWdlb3AiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihpdGVydG9vbHNtb2R1bGUpCi07ICAiaW5pdGl0ZXJ0b29scyIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKF9sb2NhbGVtb2R1bGUpCi07ICAiaW5pdF9sb2NhbGUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihtYXRobW9kdWxlKQotOyAgImluaXRtYXRoIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIobWQ1KQotICAibWQ1X2ZpbmlzaCIKLSAgIm1kNV9pbml0IgotICAibWQ1X2FwcGVuZCIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKG1kNW1vZHVsZSkKLTsgICJpbml0X21kNSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKG9wZXJhdG9yKQotOyAgImluaXRvcGVyYXRvciIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKF9yYW5kb21tb2R1bGUpCi07ICAiaW5pdF9yYW5kb20iCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihyZ2JpbWdtb2R1bGUpCi07ICAiaW5pdHJnYmltZyIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKHNoYW1vZHVsZSkKLTsgICJpbml0X3NoYSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKHNoYTI1Nm1vZHVsZSkKLTsgICJpbml0X3NoYTI1NiIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKHNoYTUxMm1vZHVsZSkKLTsgICJpbml0X3NoYTUxMiIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKF9zcmUpCi07ICAiaW5pdF9zcmUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihzdHJvcG1vZHVsZSkKLTsgICJpbml0c3Ryb3AiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYihfc3RydWN0KQotOyAgImluaXRfc3RydWN0IgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoc3ltdGFibGVtb2R1bGUpCi07ICAiaW5pdF9zeW10YWJsZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKHRlcm1pb3MpCi07ICAiaW5pdHRlcm1pb3MiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYih0aW1lbW9kdWxlKQotOyAgImluaXR0aW1lIgotICAiX1B5VGltZV9Eb3VibGVUb1RpbWV0IgotOyAgImluaXR0aW1lem9uZSIKLQotOyBGcm9tIHB5dGhvbjMzX3MubGliKHRpbWluZ21vZHVsZSkKLTsgICJpbml0dGltaW5nIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoX3dlYWtyZWYpCi07ICAiaW5pdF93ZWFrcmVmIgotCi07IEZyb20gcHl0aG9uMzNfcy5saWIoeHhzdWJ0eXBlKQotOyAgImluaXR4eHN1YnR5cGUiCi0KLTsgRnJvbSBweXRob24zM19zLmxpYih6aXBpbXBvcnQpCi07ICAiaW5pdHppcGltcG9ydCIKZGlmZiAtLWdpdCBhL1BDL29zMmVteC9weXRob25wbS5jIGIvUEMvb3MyZW14L3B5dGhvbnBtLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhNDdmNGIuLjAwMDAwMDAKLS0tIGEvUEMvb3MyZW14L3B5dGhvbnBtLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjQgKzAsMCBAQAotLyogT1MvMiBQTSBtYWluIHByb2dyYW0gLSBjcmVhdGVzIGEgaGlkZGVuIHdpbmRvdywgYW5kIHN0YXJ0cyBQeXRob24KLSAqIGludGVycHJldGVyIGluIGEgc2VwYXJhdGUgdGhyZWFkLCBzbyB0aGF0IFB5dGhvbiBzY3JpcHRzIGNhbiBiZQotICogcnVuIGluIFBNIHByb2Nlc3Mgc3BhY2Ugd2l0aG91dCBhIGNvbnNvbGUgV2luZG93LiAgVGhlIGludGVycHJldGVyCi0gKiBpcyBpbmNvcnBvcmF0ZWQgYnkgbGlua2luZyBpbiB0aGUgUHl0aG9uIERMTC4KLSAqCi0gKiBBcyBpdCBzdGFuZHMsIEkgZG9uJ3QgdGhpbmsgdGhpcyBpcyBhZGVxdWF0ZSBmb3Igc3VwcG9ydGluZyBQeXRob24KLSAqIEdVSSBtb2R1bGVzLCBhcyB0aGUgUHl0aG9uIHRocmVhZCBkb2Vzbid0IGhhdmUgaXRzIG93biBtZXNzYWdlCi0gKiBxdWV1ZSAtIHdoaWNoIGlzIHJlcXVpcmVkIG9mIHRocmVhZHMgdGhhdCB3YW50IHRvIGNyZWF0ZS91c2UKLSAqIFBNIHdpbmRvd3MuCi0gKgotICogVGhpcyBjb2RlIG93ZXMgYSBsb3QgdG8gIk9TLzIgUHJlc2VudGF0aW9uIE1hbmFnZXIgUHJvZ3JhbW1pbmciLCBieQotICogQ2hhcmxlcyBQZXR6b2xkLgotICoKLSAqIEFuZHJldyBNYWNJbnR5cmUgPGFuZHltYWNAYnVsbHNleWUuYXBhbmEub3JnLmF1PiwgQXVndXN0IDIwMDEuCi0gKiBSZWxlYXNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIFB5dGhvbiAyLjEuMSBsaWNlbmNlIC0gc2VlIHRoZSBMSUNFTkNFCi0gKiBmaWxlIGluIHRoZSBQeXRob24gdjIuMS4xIChvciBsYXRlcikgc291cmNlIGRpc3RyaWJ1dGlvbi4KLSAqIENvcHlyaWdodCBhc3NpZ25lZCB0byB0aGUgUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24sIDIwMDEuCi0gKi8KLQotI2RlZmluZSBJTkNMX0RPUwotI2RlZmluZSBJTkNMX1dJTgotI2luY2x1ZGUgPG9zMi5oPgotI2luY2x1ZGUgPHByb2Nlc3MuaD4KLQotI2luY2x1ZGUgIlB5dGhvbi5oIgotCi0vKiB1c2Ugc3RydWN0dXJlIHRvIHBhc3MgY29tbWFuZCBsaW5lIHRvIFB5dGhvbiB0aHJlYWQgKi8KLXR5cGVkZWYgc3RydWN0Ci17Ci0gICAgaW50IGFyZ2M7Ci0gICAgY2hhciAqKmFyZ3Y7Ci0gICAgSFdORCBGcmFtZTsKLSAgICBpbnQgcnVubmluZzsKLX0gYXJnbGlzdDsKLQotLyogbWFrZSB0aGlzIGEgZ2xvYmFsIHRvIHNpbXBsaWZ5IGFjY2Vzcy4KLSAqIGl0IHNob3VsZCBvbmx5IGJlIHNldCBmcm9tIHRoZSBQeXRob24gdGhyZWFkLCBvciBieSB0aGUgY29kZSB0aGF0Ci0gKiBpbml0aWF0ZXMgdGhlIFB5dGhvbiB0aHJlYWQgd2hlbiB0aGUgdGhyZWFkIGNhbm5vdCBiZSBjcmVhdGVkLgotICovCi1pbnQgUHl0aG9uUkM7Ci0KLWV4dGVybiBETF9FWFBPUlQoaW50KSBQeV9NYWluKGludCwgY2hhciAqKik7Ci12b2lkIFB5dGhvblRocmVhZCh2b2lkICopOwotCi1pbnQKLW1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotewotICAgIFVMT05HIEZyYW1lRmxhZ3MgPSBGQ0ZfVElUTEVCQVIgfAotICAgICAgICAgICAgICAgICAgICAgICBGQ0ZfU1lTTUVOVSB8Ci0gICAgICAgICAgICAgICAgICAgICAgIEZDRl9TSVpFQk9SREVSIHwKLSAgICAgICAgICAgICAgICAgICAgICAgRkNGX0hJREVCVVRUT04gfAotICAgICAgICAgICAgICAgICAgICAgICBGQ0ZfU0hFTExQT1NJVElPTiB8Ci0gICAgICAgICAgICAgICAgICAgICAgIEZDRl9UQVNLTElTVDsKLSAgICBIQUIgaGFiOwotICAgIEhNUSBobXE7Ci0gICAgSFdORCBDbGllbnQ7Ci0gICAgUU1TRyBxbXNnOwotICAgIGFyZ2xpc3QgYXJnczsKLSAgICBpbnQgcHl0aG9uX3RpZDsKLQotICAgIC8qIGluaXQgUE0gYW5kIGNyZWF0ZSBtZXNzYWdlIHF1ZXVlICovCi0gICAgaGFiID0gV2luSW5pdGlhbGl6ZSgwKTsKLSAgICBobXEgPSBXaW5DcmVhdGVNc2dRdWV1ZShoYWIsIDApOwotCi0gICAgLyogY3JlYXRlIGEgKGhpZGRlbikgV2luZG93IHRvIGhvdXNlIHRoZSB3aW5kb3cgcHJvY2VkdXJlICovCi0gICAgYXJncy5GcmFtZSA9IFdpbkNyZWF0ZVN0ZFdpbmRvdyhIV05EX0RFU0tUT1AsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyYW1lRmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlB5dGhvblBNIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDBMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ2xpZW50KTsKLQotICAgIC8qIHJ1biBQeXRob24gaW50ZXJwcmV0ZXIgaW4gYSB0aHJlYWQgKi8KLSAgICBhcmdzLmFyZ2MgPSBhcmdjOwotICAgIGFyZ3MuYXJndiA9IGFyZ3Y7Ci0gICAgYXJncy5ydW5uaW5nID0gMDsKLSAgICBpZiAoLTEgPT0gKHB5dGhvbl90aWQgPSBfYmVnaW50aHJlYWQoUHl0aG9uVGhyZWFkLCBOVUxMLCAxMDI0ICogMTAyNCwgJmFyZ3MpKSkKLSAgICB7Ci0gICAgICAgIC8qIGNvdWxkbid0IHN0YXJ0IHRocmVhZCAqLwotICAgICAgICBXaW5BbGFybShIV05EX0RFU0tUT1AsIFdBX0VSUk9SKTsKLSAgICAgICAgUHl0aG9uUkMgPSAxOwotICAgIH0KLSAgICBlbHNlCi0gICAgewotICAgICAgICAvKiBwcm9jZXNzIFBNIG1lc3NhZ2VzLCB1bnRpbCBQeXRob24gZXhpdHMgKi8KLSAgICAgICAgd2hpbGUgKFdpbkdldE1zZyhoYWIsICZxbXNnLCBOVUxMSEFORExFLCAwLCAwKSkKLSAgICAgICAgICAgIFdpbkRpc3BhdGNoTXNnKGhhYiwgJnFtc2cpOwotICAgICAgICBpZiAoYXJncy5ydW5uaW5nID4gMCkKLSAgICAgICAgICAgIERvc0tpbGxUaHJlYWQocHl0aG9uX3RpZCk7Ci0gICAgfQotCi0gICAgLyogZGVzdHJveSB3aW5kb3csIHNodXRkb3duIG1lc3NhZ2UgcXVldWUgYW5kIFBNICovCi0gICAgV2luRGVzdHJveVdpbmRvdyhhcmdzLkZyYW1lKTsKLSAgICBXaW5EZXN0cm95TXNnUXVldWUoaG1xKTsKLSAgICBXaW5UZXJtaW5hdGUoaGFiKTsKLQotICAgIHJldHVybiBQeXRob25SQzsKLX0KLQotdm9pZCBQeXRob25UaHJlYWQodm9pZCAqYXJnbCkKLXsKLSAgICBIQUIgaGFiOwotICAgIGFyZ2xpc3QgKmFyZ3M7Ci0KLSAgICAvKiBQTSBpbml0aWFsaXNhdGlvbiAqLwotICAgIGhhYiA9IFdpbkluaXRpYWxpemUoMCk7Ci0KLSAgICAvKiBzdGFydCBQeXRob24gKi8KLSAgICBhcmdzID0gKGFyZ2xpc3QgKilhcmdsOwotICAgIGFyZ3MtPnJ1bm5pbmcgPSAxOwotICAgIFB5dGhvblJDID0gUHlfTWFpbihhcmdzLT5hcmdjLCBhcmdzLT5hcmd2KTsKLQotICAgIC8qIGVudGVyIGEgY3JpdGljYWwgc2VjdGlvbiBhbmQgc2VuZCB0aGUgdGVybWluYXRpb24gbWVzc2FnZSAqLwotICAgIERvc0VudGVyQ3JpdFNlYygpOwotICAgIGFyZ3MtPnJ1bm5pbmcgPSAwOwotICAgIFdpblBvc3RNc2coYXJncy0+RnJhbWUsIFdNX1FVSVQsIE5VTEwsIE5VTEwpOwotCi0gICAgLyogc2h1dGRvd24gUE0gYW5kIHRlcm1pbmF0ZSB0aHJlYWQgKi8KLSAgICBXaW5UZXJtaW5hdGUoaGFiKTsKLSAgICBfZW5kdGhyZWFkKCk7Ci19CmRpZmYgLS1naXQgYS9QQy9vczJ2YWNwcC9fdGtpbnRlci5kZWYgYi9QQy9vczJ2YWNwcC9fdGtpbnRlci5kZWYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5ZGFiOGQuLjAwMDAwMDAKLS0tIGEvUEMvb3MydmFjcHAvX3RraW50ZXIuZGVmCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1MSUJSQVJZICAgICAgICBfVEtJTlRFUiBJTklUSU5TVEFOQ0UgVEVSTUlOU1RBTkNFCi1ERVNDUklQVElPTiAgICAnUHl0aG9uIEV4dGVuc2lvbiBETEwgdjEuMCBmb3IgQWNjZXNzIHRvIFRjbC9UayBFbnZpcm9ubWVudCcKLVBST1RNT0RFCi1EQVRBICAgICAgICAgICBNVUxUSVBMRSBOT05TSEFSRUQKLQotRVhQT1JUUwotICAgICAgICAgICAgICAgaW5pdF90a2ludGVyCi0KZGlmZiAtLWdpdCBhL1BDL29zMnZhY3BwL2NvbmZpZy5jIGIvUEMvb3MydmFjcHAvY29uZmlnLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyNmI1MjEuLjAwMDAwMDAKLS0tIGEvUEMvb3MydmFjcHAvY29uZmlnLmMKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBACi0vKiAtKi0gQyAtKi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLUNvcHlyaWdodCAoYykgMjAwMCwgQmVPcGVuLmNvbS4KLUNvcHlyaWdodCAoYykgMTk5NS0yMDAwLCBDb3Jwb3JhdGlvbiBmb3IgTmF0aW9uYWwgUmVzZWFyY2ggSW5pdGlhdGl2ZXMuCi1Db3B5cmlnaHQgKGMpIDE5OTAtMTk5NSwgU3RpY2h0aW5nIE1hdGhlbWF0aXNjaCBDZW50cnVtLgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotU2VlIHRoZSBmaWxlICJNaXNjL0NPUFlSSUdIVCIgZm9yIGluZm9ybWF0aW9uIG9uIHVzYWdlIGFuZAotcmVkaXN0cmlidXRpb24gb2YgdGhpcyBmaWxlLCBhbmQgZm9yIGEgRElTQ0xBSU1FUiBPRiBBTEwgV0FSUkFOVElFUy4KLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogTW9kdWxlIGNvbmZpZ3VyYXRpb24gKi8KLQotLyogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSB0YWJsZSBvZiBidWlsdC1pbiBtb2R1bGVzLgotICAgU2VlIGluaXRfYnVpbHRpbigpIGluIGltcG9ydC5jLiAqLwotCi0jaW5jbHVkZSAiUHl0aG9uLmgiCi0KLWV4dGVybiB2b2lkIGluaXRhcnJheSh2b2lkKTsKLWV4dGVybiB2b2lkIGluaXRhdWRpb29wKHZvaWQpOwotZXh0ZXJuIHZvaWQgaW5pdGJpbmFzY2lpKHZvaWQpOwotZXh0ZXJuIHZvaWQgaW5pdGNtYXRoKHZvaWQpOwotZXh0ZXJuIHZvaWQgaW5pdGVycm5vKHZvaWQpOwotZXh0ZXJuIHZvaWQgaW5pdGltYWdlb3Aodm9pZCk7Ci1leHRlcm4gdm9pZCBpbml0bWF0aCh2b2lkKTsKLWV4dGVybiB2b2lkIGluaXRtZDUodm9pZCk7Ci1leHRlcm4gdm9pZCBpbml0bnQodm9pZCk7Ci1leHRlcm4gdm9pZCBpbml0b3MyKHZvaWQpOwotZXh0ZXJuIHZvaWQgaW5pdG9wZXJhdG9yKHZvaWQpOwotZXh0ZXJuIHZvaWQgaW5pdHBvc2l4KHZvaWQpOwotZXh0ZXJuIHZvaWQgaW5pdHJnYmltZyh2b2lkKTsKLWV4dGVybiB2b2lkIGluaXRzaWduYWwodm9pZCk7Ci1leHRlcm4gdm9pZCBpbml0c2VsZWN0KHZvaWQpOwotZXh0ZXJuIHZvaWQgaW5pdF9zb2NrZXQodm9pZCk7Ci1leHRlcm4gdm9pZCBpbml0c3RydWN0KHZvaWQpOwotZXh0ZXJuIHZvaWQgaW5pdHRpbWUodm9pZCk7Ci1leHRlcm4gdm9pZCBpbml0X3RocmVhZCh2b2lkKTsKLWV4dGVybiB2b2lkIGluaXRwY3JlKHZvaWQpOwotI2lmZGVmIFdJTjMyCi1leHRlcm4gdm9pZCBpbml0bXN2Y3J0KHZvaWQpOwotI2VuZGlmCi0KLS8qIC0tIEFERE1PRFVMRSBNQVJLRVIgMSAtLSAqLwotCi1leHRlcm4gdm9pZCBQeU1hcnNoYWxfSW5pdCh2b2lkKTsKLWV4dGVybiB2b2lkIGluaXRpbXAodm9pZCk7Ci0KLXN0cnVjdCBfaW5pdHRhYiBfUHlJbXBvcnRfSW5pdHRhYltdID0gewotCi0gICAgICAgIHsiYXJyYXkiLCBpbml0YXJyYXl9LAotI2lmZGVmIE1fSTM4NgotICAgICAgICB7ImF1ZGlvb3AiLCBpbml0YXVkaW9vcH0sCi0jZW5kaWYKLSAgICAgICAgeyJiaW5hc2NpaSIsIGluaXRiaW5hc2NpaX0sCi0gICAgICAgIHsiY21hdGgiLCBpbml0Y21hdGh9LAotICAgICAgICB7ImVycm5vIiwgaW5pdGVycm5vfSwKLS8vICAgICAgICB7ImltYWdlb3AiLCBpbml0aW1hZ2VvcH0sCi0gICAgICAgIHsibWF0aCIsIGluaXRtYXRofSwKLSAgICAgICAgeyJtZDUiLCBpbml0bWQ1fSwKLSNpZiBkZWZpbmVkKE1TX1dJTkRPV1MpIHx8IGRlZmluZWQoX19CT1JMQU5EQ19fKSB8fCBkZWZpbmVkKF9fV0FUQ09NQ19fKQotICAgICAgICB7Im50IiwgaW5pdG50fSwgLyogVXNlIHRoZSBOVCBvcyBmdW5jdGlvbnMsIG5vdCBwb3NpeCAqLwotI2Vsc2UKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKQotICAgICAgICB7Im9zMiIsIGluaXRvczJ9LAotI2Vsc2UKLSAgICAgICAgeyJwb3NpeCIsIGluaXRwb3NpeH0sCi0jZW5kaWYKLSNlbmRpZgotICAgICAgICB7Im9wZXJhdG9yIiwgaW5pdG9wZXJhdG9yfSwKLS8vICAgICAgICB7InJnYmltZyIsIGluaXRyZ2JpbWd9LAotICAgICAgICB7InNpZ25hbCIsIGluaXRzaWduYWx9LAotI2lmZGVmIFVTRV9TT0NLRVQKLSAgICAgICAgeyJfc29ja2V0IiwgaW5pdF9zb2NrZXR9LAotICAgICAgICB7InNlbGVjdCIsIGluaXRzZWxlY3R9LAotI2VuZGlmCi0gICAgICAgIHsic3RydWN0IiwgaW5pdHN0cnVjdH0sCi0gICAgICAgIHsidGltZSIsIGluaXR0aW1lfSwKLSNpZmRlZiBXSVRIX1RIUkVBRAotICAgICAgICB7Il90aHJlYWQiLCBpbml0X3RocmVhZH0sCi0jZW5kaWYKLSAgICAgICAgeyJwY3JlIiwgaW5pdHBjcmV9LAotI2lmZGVmIFdJTjMyCi0gICAgICAgIHsibXN2Y3J0IiwgaW5pdG1zdmNydH0sCi0jZW5kaWYKLQotLyogLS0gQURETU9EVUxFIE1BUktFUiAyIC0tICovCi0KLSAgICAgICAgLyogVGhpcyBtb2R1bGUgImxpdmVzIGluIiB3aXRoIG1hcnNoYWwuYyAqLwotICAgICAgICB7Im1hcnNoYWwiLCBQeU1hcnNoYWxfSW5pdH0sCi0KLSAgICAgICAgLyogVGhpcyBsaXZlcyBpdCB3aXRoIGltcG9ydC5jICovCi0gICAgICAgIHsiX2ltcCIsIGluaXRpbXB9LAotCi0gICAgICAgIC8qIFRoZXNlIGVudHJpZXMgYXJlIGhlcmUgZm9yIHN5cy5idWlsdGluX21vZHVsZV9uYW1lcyAqLwotICAgICAgICB7ImJ1aWx0aW5zIiwgTlVMTH0sCi0gICAgICAgIHsic3lzIiwgTlVMTH0sCi0KLSAgICAgICAgLyogU2VudGluZWwgKi8KLSAgICAgICAgezAsIDB9Ci19OwpkaWZmIC0tZ2l0IGEvUEMvb3MydmFjcHAvZ2V0cGF0aHAuYyBiL1BDL29zMnZhY3BwL2dldHBhdGhwLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViYzI4MjcuLjAwMDAwMDAKLS0tIGEvUEMvb3MydmFjcHAvZ2V0cGF0aHAuYworKysgL2Rldi9udWxsCkBAIC0xLDQ4MiArMCwwIEBACi0KLS8qIFJldHVybiB0aGUgaW5pdGlhbCBtb2R1bGUgc2VhcmNoIHBhdGguICovCi0vKiBVc2VkIGJ5IERPUywgT1MvMiwgV2luZG93cyAzLjEuICBXb3JrcyBvbiBOVCB0b28uICovCi0KLSNpbmNsdWRlICJQeXRob24uaCIKLSNpbmNsdWRlICJvc2RlZnMuaCIKLQotI2lmZGVmIE1TX1dJTjMyCi0jaW5jbHVkZSA8d2luZG93cy5oPgotZXh0ZXJuIEJPT0wgUHlXaW5fSXNXaW4zMnModm9pZCk7Ci0jZW5kaWYKLQotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0KLSNpZiBIQVZFX1VOSVNURF9ICi0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jZW5kaWYgLyogSEFWRV9VTklTVERfSCAqLwotCi0vKiBTZWFyY2ggaW4gc29tZSBjb21tb24gbG9jYXRpb25zIGZvciB0aGUgYXNzb2NpYXRlZCBQeXRob24gbGlicmFyaWVzLgotICoKLSAqIFR3byBkaXJlY3RvcmllcyBtdXN0IGJlIGZvdW5kLCB0aGUgcGxhdGZvcm0gaW5kZXBlbmRlbnQgZGlyZWN0b3J5Ci0gKiAocHJlZml4KSwgY29udGFpbmluZyB0aGUgY29tbW9uIC5weSBhbmQgLnB5YyBmaWxlcywgYW5kIHRoZSBwbGF0Zm9ybQotICogZGVwZW5kZW50IGRpcmVjdG9yeSAoZXhlY19wcmVmaXgpLCBjb250YWluaW5nIHRoZSBzaGFyZWQgbGlicmFyeQotICogbW9kdWxlcy4gIE5vdGUgdGhhdCBwcmVmaXggYW5kIGV4ZWNfcHJlZml4IGNhbiBiZSB0aGUgc2FtZSBkaXJlY3RvcnksCi0gKiBidXQgZm9yIHNvbWUgaW5zdGFsbGF0aW9ucywgdGhleSBhcmUgZGlmZmVyZW50LgotICoKLSAqIFB5X0dldFBhdGgoKSB0cmllcyB0byByZXR1cm4gYSBzZW5zaWJsZSBQeXRob24gbW9kdWxlIHNlYXJjaCBwYXRoLgotICoKLSAqIEZpcnN0LCB3ZSBsb29rIHRvIHNlZSBpZiB0aGUgZXhlY3V0YWJsZSBpcyBpbiBhIHN1YmRpcmVjdG9yeSBvZgotICogdGhlIFB5dGhvbiBidWlsZCBkaXJlY3RvcnkuICBXZSBjYWxjdWxhdGUgdGhlIGZ1bGwgcGF0aCBvZiB0aGUKLSAqIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBleGVjdXRhYmxlIGFzIHByb2dwYXRoLiAgV2Ugd29yayBiYWNrd2FyZHMKLSAqIGFsb25nIHByb2dwYXRoIGFuZCBsb29rIGZvciAkZGlyL01vZHVsZXMvU2V0dXAuaW4sIGEgZGlzdGluY3RpdmUKLSAqIGxhbmRtYXJrLiAgSWYgZm91bmQsIHdlIHVzZSAkZGlyL0xpYiBhcyAkcm9vdC4gIFRoZSByZXR1cm5lZAotICogUHl0aG9uIHBhdGggaXMgdGhlIGNvbXBpbGVkICNkZWZpbmUgUFlUSE9OUEFUSCB3aXRoIGFsbCB0aGUgaW5pdGlhbAotICogIi4vbGliIiByZXBsYWNlZCBieSAkcm9vdC4KLSAqCi0gKiBPdGhlcndpc2UsIGlmIHRoZXJlIGlzIGEgUFlUSE9OUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSwgd2UgcmV0dXJuIHRoYXQuCi0gKgotICogT3RoZXJ3aXNlIHdlIHRyeSB0byBmaW5kICRwcm9ncGF0aC9saWIvb3MucHksIGFuZCBpZiBmb3VuZCwgdGhlbgotICogcm9vdCBpcyAkcHJvZ3BhdGgvbGliLCBhbmQgd2UgcmV0dXJuIFB5dGhvbiBwYXRoIGFzIGNvbXBpbGVkIFBZVEhPTlBBVEgKLSAqIHdpdGggYWxsICIuL2xpYiIgcmVwbGFjZWQgYnkgJHJvb3QgKGFzIGFib3ZlKS4KLSAqCi0gKi8KLQotI2lmbmRlZiBMQU5ETUFSSwotI2RlZmluZSBMQU5ETUFSSyAibGliXFxvcy5weSIKLSNlbmRpZgotCi1zdGF0aWMgY2hhciBwcmVmaXhbTUFYUEFUSExFTisxXTsKLXN0YXRpYyBjaGFyIGV4ZWNfcHJlZml4W01BWFBBVEhMRU4rMV07Ci1zdGF0aWMgY2hhciBwcm9ncGF0aFtNQVhQQVRITEVOKzFdOwotc3RhdGljIGNoYXIgKm1vZHVsZV9zZWFyY2hfcGF0aCA9IE5VTEw7Ci0KLQotc3RhdGljIGludAotaXNfc2VwKGNoYXIgY2gpIC8qIGRldGVybWluZSBpZiAiY2giIGlzIGEgc2VwYXJhdG9yIGNoYXJhY3RlciAqLwotewotI2lmZGVmIEFMVFNFUAotICAgIHJldHVybiBjaCA9PSBTRVAgfHwgY2ggPT0gQUxUU0VQOwotI2Vsc2UKLSAgICByZXR1cm4gY2ggPT0gU0VQOwotI2VuZGlmCi19Ci0KLQotc3RhdGljIHZvaWQKLXJlZHVjZShjaGFyICpkaXIpCi17Ci0gICAgaW50IGkgPSBzdHJsZW4oZGlyKTsKLSAgICB3aGlsZSAoaSA+IDAgJiYgIWlzX3NlcChkaXJbaV0pKQotICAgICAgICAtLWk7Ci0gICAgZGlyW2ldID0gJ1wwJzsKLX0KLQotCi1zdGF0aWMgaW50Ci1leGlzdHMoY2hhciAqZmlsZW5hbWUpCi17Ci0gICAgc3RydWN0IHN0YXQgYnVmOwotICAgIHJldHVybiBzdGF0KGZpbGVuYW1lLCAmYnVmKSA9PSAwOwotfQotCi0KLS8qIEFkZCBhIHBhdGggY29tcG9uZW50LCBieSBhcHBlbmRpbmcgc3R1ZmYgdG8gYnVmZmVyLgotICAgYnVmZmVyIG11c3QgaGF2ZSBhdCBsZWFzdCBNQVhQQVRITEVOICsgMSBieXRlcyBhbGxvY2F0ZWQsIGFuZCBjb250YWluIGEKLSAgIE5VTC10ZXJtaW5hdGVkIHN0cmluZyB3aXRoIG5vIG1vcmUgdGhhbiBNQVhQQVRITEVOIGNoYXJhY3RlcnMgKG5vdCBjb3VudGluZwotICAgdGhlIHRyYWlsaW5nIE5VTCkuICBJdCdzIGEgZmF0YWwgZXJyb3IgaWYgaXQgY29udGFpbnMgYSBzdHJpbmcgbG9uZ2VyIHRoYW4KLSAgIHRoYXQgKGNhbGxlcnMgbXVzdCBiZSBjYXJlZnVsISkuICBJZiB0aGVzZSByZXF1aXJlbWVudHMgYXJlIG1ldCwgaXQncwotICAgZ3VhcmFudGVlZCB0aGF0IGJ1ZmZlciB3aWxsIHN0aWxsIGJlIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nIHdpdGggbm8gbW9yZQotICAgdGhhbiBNQVhQQVRITEVOIGNoYXJhY3RlcnMgYXQgZXhpdC4gIElmIHN0dWZmIGlzIHRvbyBsb25nLCBvbmx5IGFzIG11Y2ggb2YKLSAgIHN0dWZmIGFzIGZpdHMgd2lsbCBiZSBhcHBlbmRlZC4KLSovCi1zdGF0aWMgdm9pZAotam9pbihjaGFyICpidWZmZXIsIGNoYXIgKnN0dWZmKQotewotICAgIGludCBuLCBrOwotICAgIGlmIChpc19zZXAoc3R1ZmZbMF0pKQotICAgICAgICBuID0gMDsKLSAgICBlbHNlIHsKLSAgICAgICAgbiA9IHN0cmxlbihidWZmZXIpOwotICAgICAgICBpZiAobiA+IDAgJiYgIWlzX3NlcChidWZmZXJbbi0xXSkgJiYgbiA8IE1BWFBBVEhMRU4pCi0gICAgICAgICAgICBidWZmZXJbbisrXSA9IFNFUDsKLSAgICB9Ci0gICAgaWYgKG4gPiBNQVhQQVRITEVOKQotICAgICAgICBQeV9GYXRhbEVycm9yKCJidWZmZXIgb3ZlcmZsb3cgaW4gZ2V0cGF0aHAuYydzIGpvaW5wYXRoKCkiKTsKLSAgICBrID0gc3RybGVuKHN0dWZmKTsKLSAgICBpZiAobiArIGsgPiBNQVhQQVRITEVOKQotICAgICAgICBrID0gTUFYUEFUSExFTiAtIG47Ci0gICAgc3RybmNweShidWZmZXIrbiwgc3R1ZmYsIGspOwotICAgIGJ1ZmZlcltuK2tdID0gJ1wwJzsKLX0KLQotCi1zdGF0aWMgaW50Ci1zZWFyY2hfZm9yX3ByZWZpeChjaGFyICphcmd2MF9wYXRoLCBjaGFyICpsYW5kbWFyaykKLXsKLSAgICBpbnQgbjsKLQotICAgIC8qIFNlYXJjaCBmcm9tIGFyZ3YwX3BhdGgsIHVudGlsIHJvb3QgaXMgZm91bmQgKi8KLSAgICBzdHJjcHkocHJlZml4LCBhcmd2MF9wYXRoKTsKLSAgICBkbyB7Ci0gICAgICAgIG4gPSBzdHJsZW4ocHJlZml4KTsKLSAgICAgICAgam9pbihwcmVmaXgsIGxhbmRtYXJrKTsKLSAgICAgICAgaWYgKGV4aXN0cyhwcmVmaXgpKSB7Ci0gICAgICAgICAgICBwcmVmaXhbbl0gPSAnXDAnOwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KLSAgICAgICAgcHJlZml4W25dID0gJ1wwJzsKLSAgICAgICAgcmVkdWNlKHByZWZpeCk7Ci0gICAgfSB3aGlsZSAocHJlZml4WzBdKTsKLSAgICByZXR1cm4gMDsKLX0KLQotI2lmZGVmIE1TX1dJTjMyCi0jaW5jbHVkZSAibWFsbG9jLmgiIC8vIGZvciBhbGxvY2EgLSBzZWUgY29tbWVudHMgYmVsb3chCi1leHRlcm4gY29uc3QgY2hhciAqUHlXaW5fRExMVmVyc2lvblN0cmluZzsgLy8gYSBzdHJpbmcgbG9hZGVkIGZyb20gdGhlIERMTCBhdCBzdGFydHVwLgotCi0KLS8qIExvYWQgYSBQWVRIT05QQVRIIHZhbHVlIGZyb20gdGhlIHJlZ2lzdHJ5LgotICAgTG9hZCBmcm9tIGVpdGhlciBIS0VZX0xPQ0FMX01BQ0hJTkUgb3IgSEtFWV9DVVJSRU5UX1VTRVIuCi0KLSAgIFJldHVybnMgTlVMTCwgb3IgYSBwb2ludGVyIHRoYXQgc2hvdWxkIGJlIGZyZWVkLgotKi8KLQotc3RhdGljIGNoYXIgKgotZ2V0cHl0aG9ucmVncGF0aChIS0VZIGtleUJhc2UsIEJPT0wgYldpbjMycykKLXsKLSAgICBIS0VZIG5ld0tleSA9IDA7Ci0gICAgRFdPUkQgbmFtZVNpemUgPSAwOwotICAgIERXT1JEIGRhdGFTaXplID0gMDsKLSAgICBEV09SRCBudW1FbnRyaWVzID0gMDsKLSAgICBMT05HIHJjOwotICAgIGNoYXIgKnJldHZhbCA9IE5VTEw7Ci0gICAgY2hhciAqZGF0YUJ1ZjsKLSAgICBjb25zdCBjaGFyIGtleVByZWZpeFtdID0gIlNvZnR3YXJlXFxQeXRob25cXFB5dGhvbkNvcmVcXCI7Ci0gICAgY29uc3QgY2hhciBrZXlTdWZmaXhbXSA9ICJcXFB5dGhvblBhdGgiOwotICAgIGludCB2ZXJzaW9uTGVuOwotICAgIGNoYXIgKmtleUJ1ZjsKLQotICAgIC8vIFRyaWVkIHRvIHVzZSBzeXNnZXQoIndpbnZlciIpIGJ1dCBoZXJlIGlzIHRvbyBlYXJseSA6LSgKLSAgICB2ZXJzaW9uTGVuID0gc3RybGVuKFB5V2luX0RMTFZlcnNpb25TdHJpbmcpOwotICAgIC8vIGFsbG9jYSA9PSBubyBmcmVlIHJlcXVpcmVkLCBidXQgbWVtb3J5IG9ubHkgbG9jYWwgdG8gZm4uCi0gICAgLy8gYWxzbyBubyBoZWFwIGZyYWdtZW50YXRpb24hICBBbSBJIGJlaW5nIHNpbGx5PwotICAgIGtleUJ1ZiA9IGFsbG9jYShzaXplb2Yoa2V5UHJlZml4KS0xICsgdmVyc2lvbkxlbiArIHNpemVvZihrZXlTdWZmaXgpKTsgLy8gY2hhcnMgb25seSwgcGx1cyAxIE5VTEwuCi0gICAgLy8gbG90cyBvZiBjb25zdGFudHMgaGVyZSBmb3IgdGhlIGNvbXBpbGVyIHRvIG9wdGltaXplIGF3YXkgOi0pCi0gICAgbWVtY3B5KGtleUJ1Ziwga2V5UHJlZml4LCBzaXplb2Yoa2V5UHJlZml4KS0xKTsKLSAgICBtZW1jcHkoa2V5QnVmK3NpemVvZihrZXlQcmVmaXgpLTEsIFB5V2luX0RMTFZlcnNpb25TdHJpbmcsIHZlcnNpb25MZW4pOwotICAgIG1lbWNweShrZXlCdWYrc2l6ZW9mKGtleVByZWZpeCktMSt2ZXJzaW9uTGVuLCBrZXlTdWZmaXgsIHNpemVvZihrZXlTdWZmaXgpKTsgLy8gTlVMTCBjb21lcyB3aXRoIHRoaXMgb25lIQotCi0gICAgcmM9UmVnT3BlbktleShrZXlCYXNlLAotICAgICAgICAgICAgICAgICAga2V5QnVmLAotICAgICAgICAgICAgICAgICAgJm5ld0tleSk7Ci0gICAgaWYgKHJjPT1FUlJPUl9TVUNDRVNTKSB7Ci0gICAgICAgIFJlZ1F1ZXJ5SW5mb0tleShuZXdLZXksIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAmbnVtRW50cmllcywgJm5hbWVTaXplLCAmZGF0YVNpemUsIE5VTEwsIE5VTEwpOwotICAgIH0KLSAgICBpZiAoYldpbjMycyAmJiBudW1FbnRyaWVzPT0wICYmIGRhdGFTaXplPT0wKSB7Ci0gICAgICAgIC8qIG11c3QgaGFyZGNvZGUgZm9yIFdpbjMycyAqLwotICAgICAgICBudW1FbnRyaWVzID0gMTsKLSAgICAgICAgZGF0YVNpemUgPSA1MTE7Ci0gICAgfQotICAgIGlmIChudW1FbnRyaWVzKSB7Ci0gICAgICAgIC8qIExvb3Agb3ZlciBhbGwgc3Via2V5cy4gKi8KLSAgICAgICAgLyogV2luMzJzIGRvZXNudCBrbm93IGhvdyBtYW55IHN1YmtleXMsIHNvIHdlIGRvCi0gICAgICAgICAgIGl0IHR3aWNlICovCi0gICAgICAgIGNoYXIga2V5QnVmW01BWF9QQVRIKzFdOwotICAgICAgICBpbnQgaW5kZXggPSAwOwotICAgICAgICBpbnQgb2ZmID0gMDsKLSAgICAgICAgZm9yKGluZGV4PTA7O2luZGV4KyspIHsKLSAgICAgICAgICAgIGxvbmcgcmVxZFNpemUgPSAwOwotICAgICAgICAgICAgRFdPUkQgcmMgPSBSZWdFbnVtS2V5KG5ld0tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCwga2V5QnVmLCBNQVhfUEFUSCsxKTsKLSAgICAgICAgICAgIGlmIChyYykgYnJlYWs7Ci0gICAgICAgICAgICByYyA9IFJlZ1F1ZXJ5VmFsdWUobmV3S2V5LCBrZXlCdWYsIE5VTEwsICZyZXFkU2l6ZSk7Ci0gICAgICAgICAgICBpZiAocmMpIGJyZWFrOwotICAgICAgICAgICAgaWYgKGJXaW4zMnMgJiYgcmVxZFNpemU9PTApIHJlcWRTaXplID0gNTEyOwotICAgICAgICAgICAgZGF0YVNpemUgKz0gcmVxZFNpemUgKyAxOyAvKiAxIGZvciB0aGUgIjsiICovCi0gICAgICAgIH0KLSAgICAgICAgZGF0YUJ1ZiA9IG1hbGxvYyhkYXRhU2l6ZSsxKTsKLSAgICAgICAgaWYgKGRhdGFCdWY9PU5VTEwpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogcHJldHR5IHNlcmlvdXM/ICBSYWlzZSBlcnJvcj8gKi8KLSAgICAgICAgLyogTm93IGxvb3Agb3ZlciwgZ3JhYmJpbmcgdGhlIHBhdGhzLgotICAgICAgICAgICBTdWJrZXlzIGJlZm9yZSBtYWluIGxpYnJhcnkgKi8KLSAgICAgICAgZm9yKGluZGV4PTA7O2luZGV4KyspIHsKLSAgICAgICAgICAgIGludCBhZGp1c3Q7Ci0gICAgICAgICAgICBsb25nIHJlcWRTaXplID0gZGF0YVNpemU7Ci0gICAgICAgICAgICBEV09SRCByYyA9IFJlZ0VudW1LZXkobmV3S2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LCBrZXlCdWYsTUFYX1BBVEgrMSk7Ci0gICAgICAgICAgICBpZiAocmMpIGJyZWFrOwotICAgICAgICAgICAgcmMgPSBSZWdRdWVyeVZhbHVlKG5ld0tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlCdWYsIGRhdGFCdWYrb2ZmLCAmcmVxZFNpemUpOwotICAgICAgICAgICAgaWYgKHJjKSBicmVhazsKLSAgICAgICAgICAgIGlmIChyZXFkU2l6ZT4xKSB7Ci0gICAgICAgICAgICAgICAgLyogSWYgTm90aGluZywgb3Igb25seSAnXDAnIGNvcGllZC4gKi8KLSAgICAgICAgICAgICAgICBhZGp1c3QgPSBzdHJsZW4oZGF0YUJ1ZitvZmYpOwotICAgICAgICAgICAgICAgIGRhdGFTaXplIC09IGFkanVzdDsKLSAgICAgICAgICAgICAgICBvZmYgKz0gYWRqdXN0OwotICAgICAgICAgICAgICAgIGRhdGFCdWZbb2ZmKytdID0gJzsnOwotICAgICAgICAgICAgICAgIGRhdGFCdWZbb2ZmXSA9ICdcMCc7Ci0gICAgICAgICAgICAgICAgZGF0YVNpemUtLTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAvKiBBZGRpdGlvbmFsbHksIHdpbjMycyBkb2VzbnQgd29yayBhcyBleHBlY3RlZCwgc28KLSAgICAgICAgICAgdGhlIHNwZWNpZmljIHN0cmxlbigpIGlzIHJlcXVpcmVkIGZvciAzLjEuICovCi0gICAgICAgIHJjID0gUmVnUXVlcnlWYWx1ZShuZXdLZXksICIiLCBkYXRhQnVmK29mZiwgJmRhdGFTaXplKTsKLSAgICAgICAgaWYgKHJjPT1FUlJPUl9TVUNDRVNTKSB7Ci0gICAgICAgICAgICBpZiAoc3RybGVuKGRhdGFCdWYpPT0wKQotICAgICAgICAgICAgICAgIGZyZWUoZGF0YUJ1Zik7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dmFsID0gZGF0YUJ1ZjsgLyogY2FsbGVyIHdpbGwgZnJlZSAqLwotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZyZWUoZGF0YUJ1Zik7Ci0gICAgfQotCi0gICAgaWYgKG5ld0tleSkKLSAgICAgICAgUmVnQ2xvc2VLZXkobmV3S2V5KTsKLSAgICByZXR1cm4gcmV0dmFsOwotfQotI2VuZGlmIC8qIE1TX1dJTjMyICovCi0KLXN0YXRpYyB2b2lkCi1nZXRfcHJvZ3BhdGgodm9pZCkKLXsKLSAgICBleHRlcm4gY2hhciAqUHlfR2V0UHJvZ3JhbU5hbWUodm9pZCk7Ci0gICAgY2hhciAqcGF0aCA9IGdldGVudigiUEFUSCIpOwotICAgIGNoYXIgKnByb2cgPSBQeV9HZXRQcm9ncmFtTmFtZSgpOwotCi0jaWZkZWYgTVNfV0lOMzIKLSAgICBpZiAoR2V0TW9kdWxlRmlsZU5hbWUoTlVMTCwgcHJvZ3BhdGgsIE1BWFBBVEhMRU4pKQotICAgICAgICByZXR1cm47Ci0jZW5kaWYKLSAgICBpZiAocHJvZyA9PSBOVUxMIHx8ICpwcm9nID09ICdcMCcpCi0gICAgICAgIHByb2cgPSAicHl0aG9uIjsKLQotICAgIC8qIElmIHRoZXJlIGlzIG5vIHNsYXNoIGluIHRoZSBhcmd2MCBwYXRoLCB0aGVuIHdlIGhhdmUgdG8KLSAgICAgKiBhc3N1bWUgcHl0aG9uIGlzIG9uIHRoZSB1c2VyJ3MgJFBBVEgsIHNpbmNlIHRoZXJlJ3Mgbm8KLSAgICAgKiBvdGhlciB3YXkgdG8gZmluZCBhIGRpcmVjdG9yeSB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uICBJZgotICAgICAqICRQQVRIIGlzbid0IGV4cG9ydGVkLCB5b3UgbG9zZS4KLSAgICAgKi8KLSNpZmRlZiBBTFRTRVAKLSAgICBpZiAoc3RyY2hyKHByb2csIFNFUCkgfHwgc3RyY2hyKHByb2csIEFMVFNFUCkpCi0jZWxzZQotICAgIGlmIChzdHJjaHIocHJvZywgU0VQKSkKLSNlbmRpZgotICAgICAgICBzdHJjcHkocHJvZ3BhdGgsIHByb2cpOwotICAgIGVsc2UgaWYgKHBhdGgpIHsKLSAgICAgICAgd2hpbGUgKDEpIHsKLSAgICAgICAgICAgIGNoYXIgKmRlbGltID0gc3RyY2hyKHBhdGgsIERFTElNKTsKLQotICAgICAgICAgICAgaWYgKGRlbGltKSB7Ci0gICAgICAgICAgICAgICAgaW50IGxlbiA9IGRlbGltIC0gcGF0aDsKLSAgICAgICAgICAgICAgICBzdHJuY3B5KHByb2dwYXRoLCBwYXRoLCBsZW4pOwotICAgICAgICAgICAgICAgICoocHJvZ3BhdGggKyBsZW4pID0gJ1wwJzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzdHJjcHkocHJvZ3BhdGgsIHBhdGgpOwotCi0gICAgICAgICAgICBqb2luKHByb2dwYXRoLCBwcm9nKTsKLSAgICAgICAgICAgIGlmIChleGlzdHMocHJvZ3BhdGgpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBpZiAoIWRlbGltKSB7Ci0gICAgICAgICAgICAgICAgcHJvZ3BhdGhbMF0gPSAnXDAnOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcGF0aCA9IGRlbGltICsgMTsKLSAgICAgICAgfQotICAgIH0KLSAgICBlbHNlCi0gICAgICAgIHByb2dwYXRoWzBdID0gJ1wwJzsKLX0KLQotc3RhdGljIHZvaWQKLWNhbGN1bGF0ZV9wYXRoKHZvaWQpCi17Ci0gICAgY2hhciBhcmd2MF9wYXRoW01BWFBBVEhMRU4rMV07Ci0gICAgY2hhciAqYnVmOwotICAgIGludCBidWZzejsKLSAgICBjaGFyICpweXRob25ob21lID0gUHlfR2V0UHl0aG9uSG9tZSgpOwotICAgIGNoYXIgKmVudnBhdGggPSBQeV9HRVRFTlYoIlBZVEhPTlBBVEgiKTsKLSNpZmRlZiBNU19XSU4zMgotICAgIGNoYXIgKm1hY2hpbmVwYXRoLCAqdXNlcnBhdGg7Ci0KLSAgICAvKiBBcmUgd2UgcnVubmluZyB1bmRlciBXaW5kb3dzIDMuMSgxKSBXaW4zMnM/ICovCi0gICAgaWYgKFB5V2luX0lzV2luMzJzKCkpIHsKLSAgICAgICAgLyogT25seSBDTEFTU0VTX1JPT1QgaXMgc3VwcG9ydGVkICovCi0gICAgICAgIG1hY2hpbmVwYXRoID0gZ2V0cHl0aG9ucmVncGF0aChIS0VZX0NMQVNTRVNfUk9PVCwgVFJVRSk7Ci0gICAgICAgIHVzZXJwYXRoID0gTlVMTDsKLSAgICB9IGVsc2UgewotICAgICAgICBtYWNoaW5lcGF0aCA9IGdldHB5dGhvbnJlZ3BhdGgoSEtFWV9MT0NBTF9NQUNISU5FLCBGQUxTRSk7Ci0gICAgICAgIHVzZXJwYXRoID0gZ2V0cHl0aG9ucmVncGF0aChIS0VZX0NVUlJFTlRfVVNFUiwgRkFMU0UpOwotICAgIH0KLSNlbmRpZgotCi0gICAgZ2V0X3Byb2dwYXRoKCk7Ci0gICAgc3RyY3B5KGFyZ3YwX3BhdGgsIHByb2dwYXRoKTsKLSAgICByZWR1Y2UoYXJndjBfcGF0aCk7Ci0gICAgaWYgKHB5dGhvbmhvbWUgPT0gTlVMTCB8fCAqcHl0aG9uaG9tZSA9PSAnXDAnKSB7Ci0gICAgICAgIGlmIChzZWFyY2hfZm9yX3ByZWZpeChhcmd2MF9wYXRoLCBMQU5ETUFSSykpCi0gICAgICAgICAgICBweXRob25ob21lID0gcHJlZml4OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBweXRob25ob21lID0gTlVMTDsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgY2hhciAqZGVsaW07Ci0KLSAgICAgICAgc3RyY3B5KHByZWZpeCwgcHl0aG9uaG9tZSk7Ci0KLSAgICAvKiBFeHRyYWN0IEFueSBPcHRpb25hbCBUcmFpbGluZyBFWEVDX1BSRUZJWCAqLwotICAgIC8qIGUuZy4gUFlUSE9OSE9NRT08cHJlZml4Pjo8ZXhlY19wcmVmaXg+ICAgKi8KLSAgICBkZWxpbSA9IHN0cmNocihwcmVmaXgsIERFTElNKTsKLSAgICBpZiAoZGVsaW0pIHsKLSAgICAgICAgKmRlbGltID0gJ1wwJzsKLSAgICAgICAgc3RyY3B5KGV4ZWNfcHJlZml4LCBkZWxpbSsxKTsKLSAgICB9IGVsc2UKLSAgICAgICAgc3RyY3B5KGV4ZWNfcHJlZml4LCBFWEVDX1BSRUZJWCk7Ci0gICAgfQotCi0gICAgaWYgKGVudnBhdGggJiYgKmVudnBhdGggPT0gJ1wwJykKLSAgICAgICAgZW52cGF0aCA9IE5VTEw7Ci0KLSAgICAvKiBXZSBuZWVkIHRvIGNvbnN0cnVjdCBhIHBhdGggZnJvbSB0aGUgZm9sbG93aW5nIHBhcnRzOgotICAgICAgICgxKSB0aGUgUFlUSE9OUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSwgaWYgc2V0OwotICAgICAgICgyKSBmb3IgV2luMzIsIHRoZSBtYWNoaW5lcGF0aCBhbmQgdXNlcnBhdGgsIGlmIHNldDsKLSAgICAgICAoMykgdGhlIFBZVEhPTlBBVEggY29uZmlnIG1hY3JvLCB3aXRoIHRoZSBsZWFkaW5nICIuIgotICAgICAgICAgICBvZiBlYWNoIGNvbXBvbmVudCByZXBsYWNlZCB3aXRoIHB5dGhvbmhvbWUsIGlmIHNldDsKLSAgICAgICAoNCkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBleGVjdXRhYmxlIChhcmd2MF9wYXRoKS4KLSAgICAgICBUaGUgbGVuZ3RoIGNhbGN1bGF0aW9uIGNhbGN1bGF0ZXMgIzMgZmlyc3QuCi0gICAgKi8KLQotICAgIC8qIENhbGN1bGF0ZSBzaXplIG9mIHJldHVybiBidWZmZXIgKi8KLSAgICBpZiAocHl0aG9uaG9tZSAhPSBOVUxMKSB7Ci0gICAgICAgIGNoYXIgKnA7Ci0gICAgICAgIGJ1ZnN6ID0gMTsKLSAgICAgICAgZm9yIChwID0gUFlUSE9OUEFUSDsgKnA7IHArKykgewotICAgICAgICAgICAgaWYgKCpwID09IERFTElNKQotICAgICAgICAgICAgICAgIGJ1ZnN6Kys7IC8qIG51bWJlciBvZiBERUxJTSBwbHVzIG9uZSAqLwotICAgICAgICB9Ci0gICAgICAgIGJ1ZnN6ICo9IHN0cmxlbihweXRob25ob21lKTsKLSAgICB9Ci0gICAgZWxzZQotICAgICAgICBidWZzeiA9IDA7Ci0gICAgYnVmc3ogKz0gc3RybGVuKFBZVEhPTlBBVEgpICsgMTsKLSAgICBpZiAoZW52cGF0aCAhPSBOVUxMKQotICAgICAgICBidWZzeiArPSBzdHJsZW4oZW52cGF0aCkgKyAxOwotICAgIGJ1ZnN6ICs9IHN0cmxlbihhcmd2MF9wYXRoKSArIDE7Ci0jaWZkZWYgTVNfV0lOMzIKLSAgICBpZiAobWFjaGluZXBhdGgpCi0gICAgICAgIGJ1ZnN6ICs9IHN0cmxlbihtYWNoaW5lcGF0aCkgKyAxOwotICAgIGlmICh1c2VycGF0aCkKLSAgICAgICAgYnVmc3ogKz0gc3RybGVuKHVzZXJwYXRoKSArIDE7Ci0jZW5kaWYKLQotICAgIG1vZHVsZV9zZWFyY2hfcGF0aCA9IGJ1ZiA9IG1hbGxvYyhidWZzeik7Ci0gICAgaWYgKGJ1ZiA9PSBOVUxMKSB7Ci0gICAgICAgIC8qIFdlIGNhbid0IGV4aXQsIHNvIHByaW50IGEgd2FybmluZyBhbmQgbGltcCBhbG9uZyAqLwotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkNhbid0IG1hbGxvYyBkeW5hbWljIFBZVEhPTlBBVEguXG4iKTsKLSAgICAgICAgaWYgKGVudnBhdGgpIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVXNpbmcgZGVmYXVsdCBzdGF0aWMgJFBZVEhPTlBBVEguXG4iKTsKLSAgICAgICAgICAgIG1vZHVsZV9zZWFyY2hfcGF0aCA9IGVudnBhdGg7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVzaW5nIGVudmlyb25tZW50ICRQWVRIT05QQVRILlxuIik7Ci0gICAgICAgICAgICBtb2R1bGVfc2VhcmNoX3BhdGggPSBQWVRIT05QQVRIOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoZW52cGF0aCkgewotICAgICAgICBzdHJjcHkoYnVmLCBlbnZwYXRoKTsKLSAgICAgICAgYnVmID0gc3RyY2hyKGJ1ZiwgJ1wwJyk7Ci0gICAgICAgICpidWYrKyA9IERFTElNOwotICAgIH0KLSNpZmRlZiBNU19XSU4zMgotICAgIGlmIChtYWNoaW5lcGF0aCkgewotICAgICAgICBzdHJjcHkoYnVmLCBtYWNoaW5lcGF0aCk7Ci0gICAgICAgIGJ1ZiA9IHN0cmNocihidWYsICdcMCcpOwotICAgICAgICAqYnVmKysgPSBERUxJTTsKLSAgICB9Ci0gICAgaWYgKHVzZXJwYXRoKSB7Ci0gICAgICAgIHN0cmNweShidWYsIHVzZXJwYXRoKTsKLSAgICAgICAgYnVmID0gc3RyY2hyKGJ1ZiwgJ1wwJyk7Ci0gICAgICAgICpidWYrKyA9IERFTElNOwotICAgIH0KLSNlbmRpZgotICAgIGlmIChweXRob25ob21lID09IE5VTEwpIHsKLSAgICAgICAgc3RyY3B5KGJ1ZiwgUFlUSE9OUEFUSCk7Ci0gICAgICAgIGJ1ZiA9IHN0cmNocihidWYsICdcMCcpOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgY2hhciAqcCA9IFBZVEhPTlBBVEg7Ci0gICAgICAgIGNoYXIgKnE7Ci0gICAgICAgIGludCBuOwotICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICBxID0gc3RyY2hyKHAsIERFTElNKTsKLSAgICAgICAgICAgIGlmIChxID09IE5VTEwpCi0gICAgICAgICAgICAgICAgbiA9IHN0cmxlbihwKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBuID0gcS1wOwotICAgICAgICAgICAgaWYgKHBbMF0gPT0gJy4nICYmIGlzX3NlcChwWzFdKSkgewotICAgICAgICAgICAgICAgIHN0cmNweShidWYsIHB5dGhvbmhvbWUpOwotICAgICAgICAgICAgICAgIGJ1ZiA9IHN0cmNocihidWYsICdcMCcpOwotICAgICAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgICAgICBuLS07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJuY3B5KGJ1ZiwgcCwgbik7Ci0gICAgICAgICAgICBidWYgKz0gbjsKLSAgICAgICAgICAgIGlmIChxID09IE5VTEwpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAqYnVmKysgPSBERUxJTTsKLSAgICAgICAgICAgIHAgPSBxKzE7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKGFyZ3YwX3BhdGgpIHsKLSAgICAgICAgKmJ1ZisrID0gREVMSU07Ci0gICAgICAgIHN0cmNweShidWYsIGFyZ3YwX3BhdGgpOwotICAgICAgICBidWYgPSBzdHJjaHIoYnVmLCAnXDAnKTsKLSAgICB9Ci0gICAgKmJ1ZiA9ICdcMCc7Ci19Ci0KLQotLyogRXh0ZXJuYWwgaW50ZXJmYWNlICovCi0KLWNoYXIgKgotUHlfR2V0UGF0aCh2b2lkKQotewotICAgIGlmICghbW9kdWxlX3NlYXJjaF9wYXRoKQotICAgICAgICBjYWxjdWxhdGVfcGF0aCgpOwotCi0gICAgcmV0dXJuIG1vZHVsZV9zZWFyY2hfcGF0aDsKLX0KLQotY2hhciAqCi1QeV9HZXRQcmVmaXgodm9pZCkKLXsKLSAgICBpZiAoIW1vZHVsZV9zZWFyY2hfcGF0aCkKLSAgICAgICAgY2FsY3VsYXRlX3BhdGgoKTsKLQotICAgIHJldHVybiBwcmVmaXg7Ci19Ci0KLWNoYXIgKgotUHlfR2V0RXhlY1ByZWZpeCh2b2lkKQotewotICAgIGlmICghbW9kdWxlX3NlYXJjaF9wYXRoKQotICAgICAgICBjYWxjdWxhdGVfcGF0aCgpOwotCi0gICAgcmV0dXJuIGV4ZWNfcHJlZml4OwotfQotCi1jaGFyICoKLVB5X0dldFByb2dyYW1GdWxsUGF0aCh2b2lkKQotewotICAgIGlmICghbW9kdWxlX3NlYXJjaF9wYXRoKQotICAgICAgICBjYWxjdWxhdGVfcGF0aCgpOwotCi0gICAgcmV0dXJuIHByb2dwYXRoOwotfQpkaWZmIC0tZ2l0IGEvUEMvb3MydmFjcHAvbWFrZWZpbGUgYi9QQy9vczJ2YWNwcC9tYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTJmMGFkYy4uMDAwMDAwMAotLS0gYS9QQy9vczJ2YWNwcC9tYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDE1NDkgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyAgICAgICAgICBUb3AtTGV2ZWwgTWFrZWZpbGUgZm9yIEJ1aWxkaW5nIFB5dGhvbiBmb3IgT1MvMgotIwotIyBUaGlzIG1ha2VmaWxlIHdhcyBkZXZlbG9wZWQgZm9yIHVzZSB3aXRoIElCTSdzIFZpc3VhbEFnZSBDL0MrKwotIyBmb3IgT1MvMiBjb21waWxlciwgdmVyc2lvbiAzLjAsIHdpdGggRml4cGFjayA4IGFwcGxpZWQuICBJdCB1c2VzCi0jIHZlcnNpb24gNC4wIG9mIHRoZSBOTUFLRSB0b29sIHRoYXQgY29tZXMgd2l0aCB0aGF0IHBhY2thZ2UuCi0jCi0jIFRoZSBvdXRwdXQgb2YgdGhlIGJ1aWxkIGlzIGEgbGFyZ2lzaCBQeXRob24yMy5ETEwgY29udGFpbmluZyB0aGUKLSMgZXNzZW50aWFsIG1vZHVsZXMgb2YgUHl0aG9uIGFuZCBhIHNtYWxsIFB5dGhvbi5leGUgcHJvZ3JhbSB0byBzdGFydAotIyB0aGUgaW50ZXJwcmV0ZXIuICBXaGVuIGVtYmVkZGluZyBQeXRob24gd2l0aGluIGFub3RoZXIgcHJvZ3JhbSwgb25seQotIyBQeXRob24yMy5ETEwgaXMgbmVlZGVkLgotIwotIyBUaGVzZSB0d28gYmluYXJpZXMgY2FuIGJlIHN0YXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIFZpc3VhbEFnZSBDL0MrKwotIyBydW50aW1lIGxpYnJhcnkgKHByb2R1Y2luZyBsYXJnZXIgYmluYXJpZXMpLCBvciBkeW5hbWljYWxseSBsaW5rZWQKLSMgdG8gbWFrZSBzbWFsbGVyIG9uZXMgdGhhdCByZXF1aXJlIHRoZSBjb21waWxlciB0byBiZSBpbnN0YWxsZWQgb24KLSMgYW55IHN5c3RlbSBQeXRob24gaXMgdXNlZCBvbi4gIFJldmlldyB0aGUgL0dkKyBjb21waWxlciBvcHRpb24gZm9yCi0jIGhvdyB0byBkbyB0aGlzLgotIwotIyBOT1RFOiBJQk0ncyBOTUFLRSA0LjAgaXMgcmF0aGVyIGR1bWIsIHJlcXVpcmluZyB0aGlzIG1ha2VmaWxlIHRvCi0jICAgICAgIGJlIG11Y2ggbW9yZSBjb21wbGljYXRlZCB0aGFuIG5lY2Vzc2FyeS4gIEkgdXNlIE9wdXNNQUtFCi0jICAgICAgIG15c2VsZiBmb3IgYSBtdWNoIG1vcmUgcG93ZXJmdWwgTUFLRSB0b29sIGJ1dCBub3QgZXZlcnlvbmUKLSMgICAgICAgd2lzaGVzIHRvIGJ1eSBpdC4gIEhvd2V2ZXIsIGFzIGEgcmVzdWx0IEkgZGlkbid0IGhvb2sgaW4KLSMgICAgICAgdGhlIGRlcGVuZGVuY2llcyBvbiB0aGUgaW5jbHVkZSBmaWxlcyBhcyBOTUFLRSBoYXMgbm8gZWFzeQotIyAgICAgICB3YXkgdG8gZG8gdGhpcyB3aXRob3V0IGV4cGxpY2l0bHkgc3BlbGxpbmcgaXQgYWxsIG91dC4KLSMKLSMgSGlzdG9yeSAoTW9zdCBSZWNlbnQgRmlyc3QpCi0jCi0jIDI2LVNlcC05OCBqcnIgUmV0ZXN0ZWQgYW5kIGFkanVzdGVkIGZvciBidWlsZGluZyB3L1B5dGhvbiAxLjUuMmExCi0jIDIwLU5vdi05NyBqcnIgQ2xlYW5lZCBVcCBmb3IgQXBwbHlpbmcgdG8gRGlzdHJpYnV0aW9uCi0jIDI5LU9jdC05NyBqcnIgTW9kaWZpZWQgZm9yIFVzZSB3aXRoIFB5dGhvbiAxLjUgQWxwaGEgNAotIyAwMy1BdWctOTYganJyIE9yaWdpbmFsIGZvciBVc2Ugd2l0aCBQeXRob24gMS40IFJlbGVhc2UKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBQbGFjZXMgYW5kIFRoaW5ncwotIyMjIyMjIyMjIyMjIyMjIyMjIwotUFlfTU9EVUxFUyAgICAgID0gLi5cLi5cTW9kdWxlcwotUFlfT0JKRUNUUyAgICAgID0gLi5cLi5cT2JqZWN0cwotUFlfUEFSU0VSICAgICAgID0gLi5cLi5cUGFyc2VyCi1QWV9QWVRIT04gICAgICAgPSAuLlwuLlxQeXRob24KLVBZX0lOQ0xVREUgICAgICA9IC4uXC4uXEluY2x1ZGUKLVBZX0lOQ0xVREVTICAgICA9IC47JChQWV9JTkNMVURFKTskKFBZX01PRFVMRVMpOyQoUFlfT0JKRUNUUyk7JChQWV9QQVJTRVIpOyQoUFlfUFlUSE9OKQotCi0jIEZpbGUgdG8gQ29sbGVjdCBXb3JkeSBDb21waWxlciBPdXRwdXQgcmUgRXJyb3JzCi1FUlJTCQk9IG1ha2Uub3V0Ci0KLSMgV2hlcmUgdG8gRmluZCB0aGUgSUJNIFRDUC9JUCBTb2NrZXQgSW5jbHVkZXMgYW5kIExpYnJhcmllcwotT1MyVENQSVAgICAgICAgID0gQzpcTVBUTgotCi0jIFdoZXJlIHRvIEZpbmQgdGhlIFRjbC9UayBCYXNlIERpcmVjdG9yeSBmb3IgTGlicy9JbmNsdWRlcwotVENMVEsJCT0gRDpcVGNsVGsKLVRDTEJBU0UJCT0gRDpcVGNsNy42XE9TMgotVEtCQVNFCQk9IEQ6XFRrNC4yXE9TMgotCi0jIFdoZXJlIHRvIFB1dCB0aGUgLk9CSiBGaWxlcywgVG8gS2VlcCBUaGVtIE91dCBvZiB0aGUgV2F5Ci1QQVRIT0JKCQk9IG9iagotCi0jIFNlYXJjaCBQYXRoIGZvciBJbmNsdWRlIEZpbGVzCi1QUk9KSU5DTFVERQk9IC47JChUQ0xCQVNFKTskKFRLQkFTRSk7JChPUzJUQ1BJUClcSW5jbHVkZTskKFBZX0lOQ0xVREVTKQotCi0jIFBsYWNlIHRvIFNlYXJjaCBmb3IgU291cmNlcyByZSBPcHVzTUFLRSBEZXBlbmRlbmN5IEdlbmVyYXRvciAoQ29tbWVyY2lhbCkKLU1LTUZfU1JDUwk9ICQoUFlfTU9EVUxFUylcKi5jICQoUFlfT0JKRUNUUylcKi5jICQoUFlfUEFSU0VSKVwqLmMgJChQWV9QWVRIT04pXCouYwotCi0jLkhEUlBBVEguYwk6PSAkKFBST0pJTkNMVURFLDs9ICkgJCguSERSUEFUSC5jKQotIy5QQVRILmMgICAgICAgICA9IC47JChQWV9NT0RVTEVTKTskKFBZX09CSkVDVFMpOyQoUFlfUEFSU0VSKTskKFBZX1BZVEhPTikKLU9USEVSTElCUwk9IHNvMzJkbGwubGliIHRjcDMyZGxsLmxpYiAjIFRjbDc2LmxpYiBUazQyLmxpYgotCi0jIyMjIyMjIyMjIyMjIyMjIwotIyBJbmZlcmVuY2UgUnVsZXMKLSMjIyMjIyMjIyMjIyMjIyMjCi17JChQWV9NT0RVTEVTKVx9LmN7JChQQVRIT0JKKVx9Lm9iajoJIyBDb21waWxlIEMgQ29kZSBpbnRvIGEgLk9CSiBGaWxlCi0JQCBFY2hvIENvbXBpbGluZyAkPAotCUAgJChDQykgLWMgJChDRkxBR1MpIC1GbyRAICQ8ID4+JChFUlJTKQotCi17JChQWV9PQkpFQ1RTKVx9LmN7JChQQVRIT0JKKVx9Lm9iajoJIyBDb21waWxlIEMgQ29kZSBpbnRvIGEgLk9CSiBGaWxlCi0JQCBFY2hvIENvbXBpbGluZyAkPAotCUAgJChDQykgLWMgJChDRkxBR1MpIC1GbyRAICQ8ID4+JChFUlJTKQotCi17JChQWV9QQVJTRVIpXH0uY3skKFBBVEhPQkopXH0ub2JqOgkjIENvbXBpbGUgQyBDb2RlIGludG8gYSAuT0JKIEZpbGUKLQlAIEVjaG8gQ29tcGlsaW5nICQ8Ci0JQCAkKENDKSAtYyAkKENGTEFHUykgLUZvJEAgJDwgPj4kKEVSUlMpCi0KLXskKFBZX1BZVEhPTilcfS5jeyQoUEFUSE9CSilcfS5vYmo6CSMgQ29tcGlsZSBDIENvZGUgaW50byBhIC5PQkogRmlsZQotCUAgRWNobyBDb21waWxpbmcgJDwKLQlAICQoQ0MpIC1jICQoQ0ZMQUdTKSAtRm8kQCAkPCA+PiQoRVJSUykKLQotLmN7JChQQVRIT0JKKVx9Lm9iajoJCQkjIENvbXBpbGUgQyBDb2RlIGludG8gYSAuT0JKIEZpbGUKLQlAIEVjaG8gQ29tcGlsaW5nICQ8Ci0JQCAkKENDKSAtYyAkKENGTEFHUykgLUZvJEAgJDwgPj4kKEVSUlMpCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgUHl0aG9uIFN1YnN5c3RlbXMKLSMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyBQWVRIT04gaXMgdGhlIGNlbnRyYWwgY29yZSwgY29udGFpbmluZyB0aGUgYnVpbHRpbnMgYW5kIGludGVycHJldGVyLgotUFlUSE9OCQk9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcQmx0aW5Nb2R1bGUub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcQ0V2YWwub2JqICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcQ29tcGlsZS5vYmogICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcRXJyb3JzLm9iaiAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcRnJvemVuLm9iaiAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcR2V0YXJncy5vYmogICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcR2V0Q29tcGlsZXIub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcR2V0Q29weXJpZ2h0Lm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcR2V0TVRpbWUub2JqICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcR2V0T3B0Lm9iaiAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcR2V0UGxhdGZvcm0ub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcR2V0VmVyc2lvbi5vYmogICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcR3JhbUluaXQub2JqICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcSW1wb3J0Lm9iaiAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcSW1wb3J0REwub2JqICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcTWFyc2hhbC5vYmogICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcTW9kU3VwcG9ydC5vYmogICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcTXlTdHJ0b3VsLm9iaiAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcUHlTdGF0ZS5vYmogICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcUHl0aG9uUnVuLm9iaiAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcU3RydWN0TWVtYmVyLm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcU3lzTW9kdWxlLm9iaiAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcVGhyZWFkLm9iaiAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcVHJhY2VCYWNrLm9iaiAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcRnJvemVuTWFpbi5vYmogICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcZXhjZXB0aW9ucy5vYmogICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcc3ltdGFibGUub2JqICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcY29kZWNzLm9iaiAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcZnV0dXJlLm9iaiAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcZHlubG9hZF9vczIub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcbXlzbnByaW50Zi5vYmogICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcaXRlcm9iamVjdC5vYmoKLQotIyBQeXRob24ncyBJbnRlcm5hbCBQYXJzZXIKLVBBUlNFUgkJPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcQWNjZWxlci5vYmogICAgICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxHcmFtbWFyMS5vYmogICAgICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXExpc3ROb2RlLm9iaiAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcTm9kZS5vYmogICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxQYXJzZXIub2JqICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXFBhcnNlVG9rLm9iaiAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcQml0U2V0Lm9iaiAgICAgICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxNZXRhR3JhbW1hci5vYmogICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXFRva2VuaXplci5vYmogICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcTXlSZWFkbGluZS5vYmoKLQotIyBQeXRob24gT2JqZWN0IFR5cGVzCi1PQkpFQ1RTCQk9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxBYnN0cmFjdC5vYmogICAgICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXEJvb2xPYmplY3Qub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcQnVmZmVyT2JqZWN0Lm9iaiAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxDZWxsT2JqZWN0Lm9iaiAgICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXENsYXNzT2JqZWN0Lm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcQ09iamVjdC5vYmogICAgICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxDb21wbGV4T2JqZWN0Lm9iaiBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXERlc2NyT2JqZWN0Lm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcRGljdE9iamVjdC5vYmogICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxFbnVtT2JqZWN0Lm9iaiAgICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXEZpbGVPYmplY3Qub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcRmxvYXRPYmplY3Qub2JqICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxGcmFtZU9iamVjdC5vYmogICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXEZ1bmNPYmplY3Qub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcSXRlck9iamVjdC5vYmogICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxMaXN0T2JqZWN0Lm9iaiAgICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXExvbmdPYmplY3Qub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcTWV0aG9kT2JqZWN0Lm9iaiAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxNb2R1bGVPYmplY3Qub2JqICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXE9iamVjdC5vYmogICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcT2JNYWxsb2Mub2JqICAgICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxSYW5nZU9iamVjdC5vYmogICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXFNsaWNlT2JqZWN0Lm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcU3RyaW5nT2JqZWN0Lm9iaiAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxTdHJ1Y3RTZXEub2JqICAgICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXFR1cGxlT2JqZWN0Lm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcVHlwZU9iamVjdC5vYmogICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxVbmljb2RlT2JqZWN0Lm9iaiBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXFVuaWNvZGVDVHlwZS5vYmogIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcV2Vha3JlZk9iamVjdC5vYmoKLQotIyBFeHRlbnNpb24gTW9kdWxlcyAoQnVpbHQtSW4gb3IgYXMgU2VwYXJhdGUgRExMcykKLU1PRFVMRVMJCT0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXEFycmF5TW9kdWxlLm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcQmluQXNjaWkub2JqICAgICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxDTWF0aE1vZHVsZS5vYmogICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXEVycm5vTW9kdWxlLm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcR0NNb2R1bGUub2JqICAgICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxHZXRCdWlsZEluZm8ub2JqICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXEdldFBhdGhQLm9iaiAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcTWFpbi5vYmogICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxNYXRoTW9kdWxlLm9iaiAgICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXE1ENWMub2JqICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcTUQ1TW9kdWxlLm9iaiAgICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxPcGVyYXRvci5vYmogICAgICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXFBDUkVNb2R1bGUub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcUHlQQ1JFLm9iaiAgICAgICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxQb3NpeE1vZHVsZS5vYmogICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXFJlZ2V4TW9kdWxlLm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcUmVnRXhwci5vYmogICAgICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxTZWxlY3RNb2R1bGUub2JqICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXFNpZ25hbE1vZHVsZS5vYmogIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcU29ja2V0TW9kdWxlLm9iaiAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxTdHJvcE1vZHVsZS5vYmogICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXFN0cnVjdE1vZHVsZS5vYmogIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcVGltZU1vZHVsZS5vYmogICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxUaHJlYWRNb2R1bGUub2JqCi0KLSMgU3RhbmRhbG9uZSBQYXJzZXIgR2VuZXJhdG9yIFByb2dyYW0gKFNoYXJlcyBTb21lIG9mIFB5dGhvbidzIE1vZHVsZXMpCi1QR0VOICAgICAgICAgICAgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcUEdlbi5vYmogICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxQR2VuTWFpbi5vYmogICAgICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXE15U05QcmludGYub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcVG9rZW5pemVyX1BnZW4ub2JqIFwKLSAgICAgICAgICAgICAgICAgICQoUEFUSE9CSilcUHJpbnRHcmFtbWFyLm9iaiAgXAotICAgICAgICAgICAgICAgICAgJChQQVRIT0JKKVxHcmFtbWFyLm9iaiAgICAgICBcCi0gICAgICAgICAgICAgICAgICAkKFBBVEhPQkopXEZpcnN0U2V0cy5vYmoKLQotIyMjIyMjIyMjIyMjIyMjIyMjCi0jIE1hY3JvcyBhbmQgRmxhZ3MKLSMjIyMjIyMjIyMjIyMjIyMjIwotX0JBU0UJCT0gL1EgL1cyIC9JJChQUk9KSU5DTFVERSkKLQkJIyAvUSAgID0gT21pdCBJQk0gQ29weXJpZ2h0Ci0JCSMgL1cyICA9IFNob3cgV2FybmluZ3MvRXJyb3JzIE9ubHkKLQotX0dFTgkJPSAvRzQgL0dtIC9HZC0KLQkJIyAvRzQgID0gR2VuZXJhdGUgQ29kZSBmb3IgNDg2IChVc2UgMzg2IGZvciBEZWJ1Z2dlcikKLQkJIyAvR20gID0gVXNlIE11bHRpdGhyZWFkIFJ1bnRpbWUKLQkJIyAvR2QgID0gRHluYW1pY2FsbHkgTG9hZCBSdW50aW1lCi0JCSMgL01zICA9IFVzZSBfU3lzdGVtIENhbGxpbmcgQ29udmVudGlvbiAodnMgX09wdGxpbmspCi0JCSMgICAgICAgICh0byBhbGxvdyBub24tVkFDKysgY29kZSB0byBjYWxsIGludG8gUHl0aG9uMjMuZGxsKQotCi1fT1BUCQk9IC9PIC9HbAotCQkjIC9PICAgPSBFbmFibGUgU3BlZWQtT3B0aW1pemF0aW9ucwotCQkjIC9PbCAgPSBQYXNzIENvZGUgVGhydSBJbnRlcm1lZGlhdGUgTGlua2VyCi0JCSMgL0d1ICA9IEFkdmlzZSBMaW5rZXIgQWxsIEV4dCBEYXRhIGlzIElEJ2QKLQkJIyAvR2wgID0gSGF2ZSBMaW5rZXIgUmVtb3ZlIFVudXNlZCBGbnMKLQotX0RCRwkJPSAvV3Byby0gL1RpLSAvREhBVkVfQ09ORklHX0ggL0RVU0VfU09DS0VUCi0gICAgICAgICAgICAgICAgIyAvV3Bybz0gR2VuZXJhdGUgQ29tcGlsZXIgV2FybmluZ3MgcmUgTWlzc2luZyBQcm90b3R5cGVzCi0JCSMgL1RpICA9IEVtYmVkIERlYnVnZ2VyL0FuYWx5emVyIFJlY3MKLQkJIyAvVG0gID0gRW5hYmxlIERlYnVnIE1lbW9yeSBGbnMKLQkJIyAvVHggID0gUmVxdWVzdCBGdWxsIER1bXAgVXBvbiBFeGNlcHRpb24KLQkJIyAvREhBVkVfQ09ORklHX0ggPSBDYXVzZXMgVXNlIG9mIENPTkZJRy5IIFNldHRpbmdzCi0gICAgICAgICAgICAgICAgIyAvRFVTRV9TT0NLRVQgPSBFbmFibGVzIEJ1aWxkaW5nIEluIG9mIFNvY2tldCBBUEkKLQotX09VVAkJPSAKLQkJIyAvRmIgID0gRW1iZWQgQnJvd3NlciBSZWNzCi0JCSMgL0doICA9IEdlbmVyYXRlIENvZGUgZm9yIFByb2ZpbGVyIEhvb2tzCi0JCSMgL0ZsICA9IE91dHB1dCBDL0MrKyBMaXN0aW5nIEZpbGVzCi0gICAgICAgICAgICAgICAgIyAvTGYgID0gUHJvdmlkZSBGdWxsIChEZXRhaWxlZCkgTGlzdGluZyBGaWxlcwotCQkjIC9GbS4gPSBPdXRwdXQgTGlua2VyIE1hcCBGaWxlCi0JCSMgL0Z0LiA9IE91dHB1dCBDKysgVGVtcGxhdGUgUmVzb2x1dGlvbiBGaWxlcwotCi1fTUFQCQk9IC9GbU5vaXNlXCQoQFIpLm1hcAotCi1fRExMCQk9IC9HZS0KLV9FWEUJCT0gL0dlCi0JCSMgL0dlID0gQ3JlYXRlIGFuIEVYRSwgbm90IERMTAotCi1DRkxBR1MJCT0gJChfQkFTRSkgJChfR0VOKSAkKF9PUFQpICQoX0RCRykgJChfT1VUKSAkKF9FWEUpIC9TcwotCi0jIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFByaW1hcnkgVGFyZ2V0KHMpCi0jIyMjIyMjIyMjIyMjIyMjIyMjCi1BbGw6ICBvYmogbm9pc2UgUHlDb3JlLmxpYiBQeXRob24yMy5saWIgUEdlbi5leGUgXAotICAgICAgUHl0aG9uLmV4ZSBQeXRob25QTS5leGUgUHl0aG9uMjMuZGxsICMgX3RraW50ZXIuZGxsCi0KLU1vZHVsZXM6ICQoTU9EVUxFUykKLU9iamVjdHM6ICQoT0JKRUNUUykKLVBhcnNlcjogICQoUEFSU0VSKQotUHl0aG9uOiAgJChQWVRIT04pCi0KLSMgRGlyZWN0b3J5IHRvIEtlZXAgLk9CSiBGaWxlcyBPdXQgb2YgdGhlIFdheQotb2JqOgotCUAtbWtkaXIgb2JqID4+TlVMCi0KLSMgRGlyZWN0b3J5IHRvIEtlZXAgLk1BUCBhbmQgU3VjaCBUZXh0IEZpbGVzIE91dCBvZiB0aGUgV2F5Ci1ub2lzZToKLQlALW1rZGlyIG5vaXNlID4+TlVMCi0KLSMjIyMjIyMjIyMjIyMjCi0jCi0jIyMjIyMjIyMjIyMjIwotCi0jIFB5dGhvbiBFeHRlbnNpb24gRExMOiBUY2wvVGsgSW50ZXJmYWNlCi0jX3RraW50ZXIuZGxsOiAkKFBBVEhPQkopXF90a2ludGVyLm9iaiBQeXRob24yMy5saWIgX3RraW50ZXIuZGVmCi0jCUAgRWNobyBMaW5raW5nICRAIEFzIERMTAotIwlAICQoQ0MpICQoQ0ZMQUdTKSAvQiIvTk9FIiAkKF9ETEwpIC9GZSRAICQoX01BUCkgJCoqICQoT1RIRVJMSUJTKSA+PiQoRVJSUykKLQotIyQoUEFUSE9CSilcX3RraW50ZXIub2JqOiAkKFBZX01PRFVMRVMpXF90a2ludGVyLmMKLSMJQCBFY2hvIENvbXBpbGluZyAkKioKLSMJQCAkKENDKSAtYyAkKENGTEFHUykgJChfRExMKSAtRm8kQCAkKiogPj4kKEVSUlMpCi0KLSMgT2JqZWN0IExpYnJhcnkgb2YgQWxsIEVzc2VudGlhbCBQeXRob24gUm91dGluZXMKLVB5Q29yZS5saWI6ICQoTU9EVUxFUykgJChPQkpFQ1RTKSAkKFBBUlNFUikgJChQWVRIT04pICQoUEFUSE9CSilcQ29uZmlnLm9iagotCUAgRWNobyBBZGRpbmcgVXBkYXRlZCBPYmplY3QgRmlsZXMgdG8gTGluayBMaWJyYXJ5ICRACi0JQCAhIElMSUIgJEAgL05PTE9HTyAvTk9CQUNLVVAgLSskPyA7ID4+JChFUlJTKQotCi1QeXRob24yMy5kbGw6ICQoUEFUSE9CSilcQ29tcGlsZS5vYmogUHlDb3JlLmxpYiBQeXRob24uZGVmCi0JQCBFY2hvIExpbmtpbmcgJEAgQXMgRExMCi0JQCAkKENDKSAkKENGTEFHUykgL0IiL05PRSIgJChfRExMKSAvRmUkQCAkKF9NQVApICQqKiAkKE9USEVSTElCUykgPj4kKEVSUlMpCi0jCUAgRWNobyBDb21wcmVzc2luZyAkQCB3aXRoIEx4TGl0ZQotIwlAIGx4bGl0ZSAkQAotCi0jIElCTSBMaW5rZXIgUmVxdWlyZXMgT25lIEV4cGxpY2l0IC5PQkogVG8gQnVpbGQgYSAuRExMIGZyb20gYSAuTElCCi0kKFBBVEhPQkopXENvbXBpbGUub2JqOiAkKFBZX1BZVEhPTilcQ29tcGlsZS5jCi0JQCBFY2hvIENvbXBpbGluZyAkKioKLQlAICQoQ0MpIC1jICQoQ0ZMQUdTKSAkKF9ETEwpIC1GbyRAICQqKiA+PiQoRVJSUykKLQotIyBJbXBvcnQgTGlicmFyeSBmb3IgVXNpbmcgdGhlIFB5dGhvbjIzLmRsbAotUHl0aG9uMjMubGliOiBQeXRob24uZGVmCi0JQCBFY2hvIE1ha2luZyAkQAotCUAgSU1QTElCIC9OT0xPR08gL05PSUdOT1JFICRAICQqKiA+PiQoRVJSUykKLQlAIElMSUIgL05PTE9HTyAvQ09OVkZPUk1BVCAvTk9FWFRESUNUSU9OQVJZIC9OT0JST1dTRSAvTk9CQUNLVVAgJEA7ID4+JChFUlJTKQotCi0jIFNtYWxsIENvbW1hbmQtTGluZSBQcm9ncmFtIHRvIFN0YXJ0IEludGVycHJldGVyIGluIFB5dGhvbjIzLmRsbAotUHl0aG9uLmV4ZTogJChQQVRIT0JKKVxQeXRob24ub2JqIFB5dGhvbjIzLmxpYgotCUAgRWNobyBMaW5raW5nICRAIEFzIEVYRQotCUAgJChDQykgJChDRkxBR1MpICQoX0VYRSkgL0IiL1BNOlZJTyAvU1RBQ0s6MzYwMDAwIiAvRmUkQCAkKF9NQVApICQqKiAkKE9USEVSTElCUykgPj4kKEVSUlMpCi0KLSMgU21hbGwgUE0tR1VJIFByb2dyYW0gdG8gU3RhcnQgSW50ZXJwcmV0ZXIgaW4gUHl0aG9uMjMuZGxsCi1QeXRob25QTS5leGU6ICQoUEFUSE9CSilcUHl0aG9uLm9iaiBQeXRob24yMy5saWIKLQlAIEVjaG8gTGlua2luZyAkQCBBcyBFWEUKLQlAICQoQ0MpICQoQ0ZMQUdTKSAkKF9FWEUpIC9CIi9QTTpQTSAvU1RBQ0s6MzYwMDAwIiAvRmUkQCAkKF9NQVApICQqKiAkKE9USEVSTElCUykgPj4kKEVSUlMpCi0KLVBHZW4uZXhlOiAkKFBHRU4pIFB5Q29yZS5saWIKLQlAIEVjaG8gTGlua2luZyAkQCBBcyBFWEUKLQlAICQoQ0MpICQoQ0ZMQUdTKSAkKF9FWEUpIC9CIi9TVEFDSzozNjAwMDAiIC9GZSRAICQoX01BUCkgJCoqICQoT1RIRVJMSUJTKSA+PiQoRVJSUykKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgTWlzY2VsbGFuZW91cyBUYXJnZXRzCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIFJlbW92ZSBJbnRlcm1lZGlhdGUgVGFyZ2V0cyBidXQgTGVhdmUgRXhlY3V0YWJsZSBCaW5hcmllcwotY2xlYW46Ci0JLS0gRGVsIC9RICQoUEFUSE9CSilcKi5vYmoJCT5OVUwgMj4mMQotCS0tIERlbCAvUSAvWSBOb2lzZQkJCT5OVUwgMj4mMQotCS0tIERlbCAvUSAkKEVSUlMpCQkJPk5VTCAyPiYxCi0KLSMgUmVtb3ZlIEFsbCBUYXJnZXRzLCBJbmNsdWRpbmcgRmluYWwgQmluYXJpZXMKLWRpc3RjbGVhbjogY2xlYW4KLSAgICAgICAgLS0gRGVsIC9RIFB5Q29yZS5saWIgUHl0aG9uMjMubGliICAgICAgID5OVUwgMj4mMQotICAgICAgICAtLSBEZWwgL1EgUHl0aG9uMjMuZGxsIFB5dGhvbi5leGUgUEdlbi5leGUgPk5VTCAyPiYxCi0KLXJlbGVhc2U6IFB5dGhvbi5leGUgUHl0aG9uMjMuZGxsIFB5dGhvbjIzLmxpYgotCS0tIEBFY2hvIFkgfCBjb3B5IC9VIFB5dGhvbi5leGUgICBEOlxFWEVzCi0JLS0gQEVjaG8gWSB8IGNvcHkgL1UgUHl0aG9uMjMuZGxsIEQ6XERMTHMKLQktLSBARWNobyBZIHwgY29weSAvVSBQeXRob24yMy5saWIgRTpcVGF1XExpYgotCS0tIEBFY2hvIFkgfCBjb3B5IC9VIF90a2ludGVyLmRsbCBEOlxQeXRob24KLQotdGVzdDoKLSAgICAgICAgcHl0aG9uIC4uXC4uXGxpYlx0ZXN0XHJlZ3J0ZXN0LnB5Ci0KLSMgVXBkYXRlIERlcGVuZGVuY2llcyBvbiBUYXJnZXRzIChVc2VzIE9wdXNNQUtFIENvbW1lcmNpYWwgUHJvZHVjdCkKLWRlcGVuZDoKLQlEOlxPcHVzTWFrZVxvczJta21mIC1jIC1zCi0KLSMjIyBPUFVTIE1LTUY6ICBEbyBub3QgcmVtb3ZlIHRoaXMgbGluZSEgIEdlbmVyYXRlZCBkZXBlbmRlbmNpZXMgZm9sbG93LgotCi1fdGtpbnRlci5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotYXJyYXltb2R1bGUub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotYXVkaW9vcC5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteW1hdGguaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oIFwKLQkgJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oIFwKLQkgJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLWJpbmFzY2lpLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIFwKLQkgJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1jbWF0aG1vZHVsZS5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggXAotCSAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggXAotCSAkKFBZX0lOQ0xVREUpXG15bWF0aC5oICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oIFwKLQkgJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLWNwaWNrbGUub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggXAotCSAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteW1hdGguaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1jcnlwdG1vZHVsZS5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggXAotCSAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggXAotCSAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oIFwKLQkgJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCBcCi0JICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1jdXJzZXNtb2R1bGUub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotX2RibW1vZHVsZS5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotZXJybm8ub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggXAotCSAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oICQoUFlfSU5DTFVERSlcbXlwcm90by5oIFwKLQkgJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCBcCi0JICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggJChQWV9JTkNMVURFKVxweXN0YXRlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLWVycm5vbW9kdWxlLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCBcCi0JICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oIFwKLQkgJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oIFwKLQkgJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLWZjbnRsbW9kdWxlLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoT1MyVENQSVApXEluY2x1ZGVcc3lzXGlvY3RsLmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotZnBlY3RsbW9kdWxlLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCBcCi0JICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oIFwKLQkgJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oIFwKLQkgJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLWZwZXRlc3Rtb2R1bGUub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotX2dkYm1tb2R1bGUub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggXAotCSAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oICQoUFlfSU5DTFVERSlcbXlwcm90by5oIFwKLQkgJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCBcCi0JICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggJChQWV9JTkNMVURFKVxweXN0YXRlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLWdldGJ1aWxkaW5mby5vYmo6IHB5Y29uZmlnLmgKLQotZ2V0cGF0aC5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlcb3NkZWZzLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oIFwKLQkgJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oIFwKLQkgJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLWdycG1vZHVsZS5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoT1MyVENQSVApXEluY2x1ZGVcZ3JwLmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oIFwKLQkgJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oIFwKLQkgJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLWltYWdlb3Aub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggXAotCSAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oICQoUFlfSU5DTFVERSlcbXlwcm90by5oIFwKLQkgJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCBcCi0JICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggJChQWV9JTkNMVURFKVxweXN0YXRlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLW1haW4ub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggXAotCSAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oICQoUFlfSU5DTFVERSlcbXlwcm90by5oIFwKLQkgJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCBcCi0JICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggJChQWV9JTkNMVURFKVxweXN0YXRlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLW1hdGhtb2R1bGUub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggXAotCSAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oICQoUFlfSU5DTFVERSlcbXltYXRoLmggXAotCSAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oIFwKLQkgJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCBcCi0JICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1tcHptb2R1bGUub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25naW50cmVwci5oICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oICQoUFlfSU5DTFVERSlcbXlwcm90by5oIFwKLQkgJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCBcCi0JICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggJChQWV9JTkNMVURFKVxweXN0YXRlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLW5pc21vZHVsZS5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKE9TMlRDUElQKVxJbmNsdWRlXHN5c1x0aW1lLmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotb3BlcmF0b3Iub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggXAotCSAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oICQoUFlfSU5DTFVERSlcbXlwcm90by5oIFwKLQkgJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCBcCi0JICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggJChQWV9JTkNMVURFKVxweXN0YXRlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLXBhcnNlcm1vZHVsZS5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggXAotCSAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21waWxlLmggXAotCSAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxncmFtaW5pdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG5vZGUuaCAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oIFwKLQkgJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCBcCi0JICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0b2tlbi5oIFwKLQkgJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotcG9zaXgub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggXAotCSAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oICQoUFlfSU5DTFVERSlcbXlwcm90by5oIFwKLQkgJChQWV9JTkNMVURFKVxteXRpbWUuaCAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oIFwKLQkgJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCBcCi0JICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1wb3NpeG1vZHVsZS5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggXAotCSAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggXAotCSAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXG15dGltZS5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oIFwKLQkgJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLXB3ZG1vZHVsZS5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoT1MyVENQSVApXEluY2x1ZGVccHdkLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oIFwKLQkgJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oIFwKLQkgJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLXJlYWRsaW5lLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIFwKLQkgJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1yZXNvdXJjZS5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKE9TMlRDUElQKVxJbmNsdWRlXHN5c1x0aW1lLmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotc2VsZWN0bW9kdWxlLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCBcCi0JICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlcbXlzZWxlY3QuaCAkKFBZX0lOQ0xVREUpXG15dGltZS5oIFwKLQkgJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCBcCi0JICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggJChQWV9JTkNMVURFKVxweXN0YXRlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLXNpZ25hbG1vZHVsZS5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggXAotCSAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggXAotCSAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oIFwKLQkgJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCBcCi0JICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1zb2NrZXRtb2R1bGUub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChPUzJUQ1BJUClcSW5jbHVkZVxuZXRpbmV0XGluLmggXAotCSAkKE9TMlRDUElQKVxJbmNsdWRlXHN5c1xzb2NrZXQuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG15dGltZS5oICQoT1MyVENQSVApXEluY2x1ZGVcbmV0ZGIuaCAkKFBZX0lOQ0xVREUpXG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1zdHJ1Y3Rtb2R1bGUub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteW1hdGguaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1zeXNsb2dtb2R1bGUub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKE9TMlRDUElQKVxJbmNsdWRlXHN5c2xvZy5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggXAotCSAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi10ZXJtaW9zLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIFwKLQkgJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1fdGhyZWFkbW9kdWxlLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCBcCi0JICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oIFwKLQkgJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRocmVhZC5oIFwKLQkgJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotdGltZW1vZHVsZS5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG15dGltZS5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oIFwKLQkgJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oIFwKLQkgJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLXh4bW9kdWxlLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIFwKLQkgJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi16bGlibW9kdWxlLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIFwKLQkgJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1hYnN0cmFjdC5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotY2xhc3NvYmplY3Qub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cnVjdG1lbWJlci5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1jb2JqZWN0Lm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIFwKLQkgJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1jb21wbGV4b2JqZWN0Lm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCBcCi0JICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXltYXRoLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCBcCi0JICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotZGljdG9iamVjdC5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotZmlsZW9iamVjdC5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RydWN0bWVtYmVyLmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oIFwKLQkgJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLWZsb2F0b2JqZWN0Lm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCBcCi0JICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXltYXRoLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCBcCi0JICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotZnJhbWVvYmplY3Qub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGlsZS5oIFwKLQkgJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnJhbWVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlcb3Bjb2RlLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3RydWN0bWVtYmVyLmggXAotCSAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLWZ1bmNvYmplY3Qub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGlsZS5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cnVjdG1lbWJlci5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1saXN0b2JqZWN0Lm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIFwKLQkgJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1sb25nb2JqZWN0Lm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCBcCi0JICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbG9uZ2ludHJlcHIuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15bWF0aC5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotbWV0aG9kb2JqZWN0Lm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCBcCi0JICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oIFwKLQkgJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRva2VuLmggXAotCSAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1tb2R1bGVvYmplY3Qub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotb2JqZWN0Lm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIFwKLQkgJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1yYW5nZW9iamVjdC5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggXAotCSAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggXAotCSAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oIFwKLQkgJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCBcCi0JICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1zbGljZW9iamVjdC5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggXAotCSAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggXAotCSAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oIFwKLQkgJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCBcCi0JICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1zdHJpbmdvYmplY3Qub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteW1hdGguaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi10dXBsZW9iamVjdC5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggXAotCSAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggXAotCSAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oIFwKLQkgJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCBcCi0JICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi10eXBlb2JqZWN0Lm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIFwKLQkgJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi14eG9iamVjdC5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotYWNjZWxlci5vYmo6ICQoUFlfSU5DTFVERSlcYml0c2V0LmggcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGdyYW1tYXIuaCBcCi0JICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXG5vZGUuaCBcCi0JICQoUFlfUEFSU0VSKVxwYXJzZXIuaCAkKFBZX0lOQ0xVREUpXHBnZW5oZWFkZXJzLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggXAotCSAkKFBZX0lOQ0xVREUpXHRva2VuLmgKLQotYml0c2V0Lm9iajogJChQWV9JTkNMVURFKVxiaXRzZXQuaCBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlccGdlbmhlYWRlcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaAotCi1maXJzdHNldHMub2JqOiAkKFBZX0lOQ0xVREUpXGJpdHNldC5oIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxncmFtbWFyLmggXAotCSAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxwZ2VuaGVhZGVycy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVx0b2tlbi5oCi0KLWdyYW1tYXIub2JqOiAkKFBZX0lOQ0xVREUpXGJpdHNldC5oIHB5Y29uZmlnLmggXAotCSAkKFBZX0lOQ0xVREUpXGdyYW1tYXIuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXHBnZW5oZWFkZXJzLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVx0b2tlbi5oCi0KLWdyYW1tYXIxLm9iajogJChQWV9JTkNMVURFKVxiaXRzZXQuaCBweWNvbmZpZy5oIFwKLQkgJChQWV9JTkNMVURFKVxncmFtbWFyLmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oICQoUFlfSU5DTFVERSlcbXlwcm90by5oIFwKLQkgJChQWV9JTkNMVURFKVxwZ2VuaGVhZGVycy5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlcdG9rZW4uaAotCi1pbnRyY2hlY2sub2JqOiBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmgKLQotbGlzdG5vZGUub2JqOiBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcbm9kZS5oICQoUFlfSU5DTFVERSlccGdlbmhlYWRlcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCBcCi0JICQoUFlfSU5DTFVERSlcdG9rZW4uaAotCi1tZXRhZ3JhbW1hci5vYmo6ICQoUFlfSU5DTFVERSlcYml0c2V0LmggcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGdyYW1tYXIuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0YWdyYW1tYXIuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX1BBUlNFUilccGdlbi5oICQoUFlfSU5DTFVERSlccGdlbmhlYWRlcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaAotCi1teXJlYWRsaW5lLm9iajogcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oCi0KLW5vZGUub2JqOiBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXG5vZGUuaCBcCi0JICQoUFlfSU5DTFVERSlccGdlbmhlYWRlcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaAotCi1wYXJzZXIub2JqOiAkKFBZX0lOQ0xVREUpXGJpdHNldC5oIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxlcnJjb2RlLmggXAotCSAkKFBZX0lOQ0xVREUpXGdyYW1tYXIuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG5vZGUuaCAkKFBZX1BBUlNFUilccGFyc2VyLmggJChQWV9JTkNMVURFKVxwZ2VuaGVhZGVycy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVx0b2tlbi5oCi0KLXBhcnNldG9rLm9iajogJChQWV9JTkNMVURFKVxiaXRzZXQuaCBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcZXJyY29kZS5oIFwKLQkgJChQWV9JTkNMVURFKVxncmFtbWFyLmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oICQoUFlfSU5DTFVERSlcbXlwcm90by5oIFwKLQkgJChQWV9JTkNMVURFKVxub2RlLmggJChQWV9QQVJTRVIpXHBhcnNlci5oICQoUFlfSU5DTFVERSlccGFyc2V0b2suaCBcCi0JICQoUFlfSU5DTFVERSlccGdlbmhlYWRlcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHRva2VuLmggXAotCSAkKFBZX1BBUlNFUilcdG9rZW5pemVyLmgKLQotcGdlbi5vYmo6ICQoUFlfSU5DTFVERSlcYml0c2V0LmggcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGdyYW1tYXIuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0YWdyYW1tYXIuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG5vZGUuaCAkKFBZX1BBUlNFUilccGdlbi5oICQoUFlfSU5DTFVERSlccGdlbmhlYWRlcnMuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlcdG9rZW4uaAotCi1wZ2VubWFpbi5vYmo6ICQoUFlfSU5DTFVERSlcYml0c2V0LmggcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGdyYW1tYXIuaCBcCi0JICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXG5vZGUuaCBcCi0JICQoUFlfSU5DTFVERSlccGFyc2V0b2suaCAkKFBZX1BBUlNFUilccGdlbi5oICQoUFlfSU5DTFVERSlccGdlbmhlYWRlcnMuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oCi0KLXByaW50Z3JhbW1hci5vYmo6ICQoUFlfSU5DTFVERSlcYml0c2V0LmggcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGdyYW1tYXIuaCBcCi0JICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCAkKFBZX0lOQ0xVREUpXHBnZW5oZWFkZXJzLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaAotCi10b2tlbml6ZXIub2JqOiBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcZXJyY29kZS5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlccGdlbmhlYWRlcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCBcCi0JICQoUFlfSU5DTFVERSlcdG9rZW4uaCAkKFBZX1BBUlNFUilcdG9rZW5pemVyLmgKLQotYXRvZi5vYmo6IHB5Y29uZmlnLmgKLQotYmx0aW5tb2R1bGUub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGlsZS5oIFwKLQkgJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZXZhbC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteW1hdGguaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlcbm9kZS5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oIFwKLQkgJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLWNldmFsLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBpbGUuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxldmFsLmggXAotCSAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZyYW1lb2JqZWN0LmggJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggXAotCSAkKFBZX0lOQ0xVREUpXG9wY29kZS5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCBcCi0JICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotY29tcGlsZS5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21waWxlLmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcZ3JhbWluaXQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oIFwKLQkgJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG5vZGUuaCAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oIFwKLQkgJChQWV9JTkNMVURFKVxvcGNvZGUuaCAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzdHJ1Y3RtZW1iZXIuaCBcCi0JICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0b2tlbi5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotZXJyb3JzLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIFwKLQkgJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1mbW9kLm9iajogcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXG15bWF0aC5oCi0KLWZyb3plbi5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotZnJvemVubWFpbi5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotZ2V0YXJncy5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotZ2V0Y29tcGlsZXIub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotZ2V0Y29weXJpZ2h0Lm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCBcCi0JICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oIFwKLQkgJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oIFwKLQkgJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLWdldHBsYXRmb3JtLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCBcCi0JICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCBcCi0JICQoUFlfSU5DTFVERSlcbXlwcm90by5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZGVidWcuaCAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXN0YXRlLmggJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oIFwKLQkgJChQWV9JTkNMVURFKVxyYW5nZW9iamVjdC5oICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3RyaW5nb2JqZWN0LmggJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oIFwKLQkgJChQWV9JTkNMVURFKVx0dXBsZW9iamVjdC5oCi0KLWdldHZlcnNpb24ub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggXAotCSAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oICQoUFlfSU5DTFVERSlcbXlwcm90by5oIFwKLQkgJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCAkKFBZX0lOQ0xVREUpXHBhdGNobGV2ZWwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN5c21vZHVsZS5oICQoUFlfSU5DTFVERSlcdHJhY2ViYWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotZ3JhbWluaXQub2JqOiAkKFBZX0lOQ0xVREUpXGJpdHNldC5oIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxncmFtbWFyLmggXAotCSAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxwZ2VuaGVhZGVycy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWRlYnVnLmgKLQotaHlwb3Qub2JqOiBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcbXltYXRoLmggJChQWV9JTkNMVURFKVxteXByb3RvLmgKLQotaW1wb3J0Lm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBpbGUuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxlcnJjb2RlLmggJChQWV9JTkNMVURFKVxldmFsLmggXAotCSAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGltcG9ydC5oICQoUFlfUFlUSE9OKVxpbXBvcnRkbC5oICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtYXJzaGFsLmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oICQoUFlfSU5DTFVERSlcbXlwcm90by5oIFwKLQkgJChQWV9JTkNMVURFKVxub2RlLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlcb3NkZWZzLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0b2tlbi5oIFwKLQkgJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotaW1wb3J0ZGwub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggXAotCSAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oICQoUFlfUFlUSE9OKVxpbXBvcnRkbC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlcb3NkZWZzLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1tYXJzaGFsLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBpbGUuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbG9uZ2ludHJlcHIuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1hcnNoYWwuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1tb2RzdXBwb3J0Lm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIFwKLQkgJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5ZXJyb3JzLmggJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oIFwKLQkgJChQWV9JTkNMVURFKVxweXRob24uaCAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc2xpY2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1teXN0cnRvdWwub2JqOiBweWNvbmZpZy5oCi0KLXB5ZnBlLm9iajogcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmgKLQotcHlzdGF0ZS5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotcHl0aG9ucnVuLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcYml0c2V0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGlsZS5oIFwKLQkgJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZXJyY29kZS5oICQoUFlfSU5DTFVERSlcZXZhbC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmbG9hdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcZ3JhbW1hci5oIFwKLQkgJChQWV9JTkNMVURFKVxpbXBvcnQuaCAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggXAotCSAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1hcnNoYWwuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcbm9kZS5oICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggXAotCSAkKFBZX0lOQ0xVREUpXHBhcnNldG9rLmggJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWZwZS5oICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5dGhvbnJ1bi5oICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1zaWdjaGVjay5vYmo6ICQoUFlfSU5DTFVERSlcYWJzdHJhY3QuaCAkKFBZX0lOQ0xVREUpXGNldmFsLmggJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxjb2JqZWN0LmggJChQWV9JTkNMVURFKVxjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBcCi0JICQoUFlfSU5DTFVERSlcZGljdG9iamVjdC5oICQoUFlfSU5DTFVERSlcZmlsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZnVuY29iamVjdC5oICQoUFlfSU5DTFVERSlcaW1wb3J0LmggJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcaW50cmNoZWNrLmggJChQWV9JTkNMVURFKVxsaXN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1ldGhvZG9iamVjdC5oICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxtb2R1bGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmggXAotCSAkKFBZX0lOQ0xVREUpXG9iamVjdC5oICQoUFlfSU5DTFVERSlcb2JqaW1wbC5oICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCAkKFBZX0lOQ0xVREUpXHR1cGxlb2JqZWN0LmgKLQotc3RyZHVwLm9iajogcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXG15bWFsbG9jLmggJChQWV9JTkNMVURFKVxteXByb3RvLmgKLQotc3RydG9kLm9iajogcHljb25maWcuaAotCi1zdHJ1Y3RtZW1iZXIub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oIFwKLQkgJChQWV9JTkNMVURFKVxjbGFzc29iamVjdC5oICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcZmxvYXRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxsb25nb2JqZWN0LmggJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kc3VwcG9ydC5oICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oIFwKLQkgJChQWV9JTkNMVURFKVxteXByb3RvLmggJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cnVjdG1lbWJlci5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi1zeXNtb2R1bGUub2JqOiAkKFBZX0lOQ0xVREUpXGFic3RyYWN0LmggJChQWV9JTkNMVURFKVxjZXZhbC5oICQoUFlfSU5DTFVERSlcY2xhc3NvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcY29iamVjdC5oICQoUFlfSU5DTFVERSlcY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggXAotCSAkKFBZX0lOQ0xVREUpXGRpY3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZpbGVvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZ1bmNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGltcG9ydC5oICQoUFlfSU5DTFVERSlcaW50b2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGludHJjaGVjay5oICQoUFlfSU5DTFVERSlcbGlzdG9iamVjdC5oICQoUFlfSU5DTFVERSlcbG9uZ29iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxtZXRob2RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG1vZHN1cHBvcnQuaCBcCi0JICQoUFlfSU5DTFVERSlcbW9kdWxlb2JqZWN0LmggJChQWV9JTkNMVURFKVxteW1hbGxvYy5oICQoUFlfSU5DTFVERSlcbXlwcm90by5oIFwKLQkgJChQWV9JTkNMVURFKVxvYmplY3QuaCAkKFBZX0lOQ0xVREUpXG9iamltcGwuaCAkKFBZX0lOQ0xVREUpXG9zZGVmcy5oIFwKLQkgJChQWV9JTkNMVURFKVxweWRlYnVnLmggJChQWV9JTkNMVURFKVxweWVycm9ycy5oICQoUFlfSU5DTFVERSlccHlmcGUuaCBcCi0JICQoUFlfSU5DTFVERSlccHlzdGF0ZS5oICQoUFlfSU5DTFVERSlccHl0aG9uLmggJChQWV9JTkNMVURFKVxweXRob25ydW4uaCBcCi0JICQoUFlfSU5DTFVERSlccmFuZ2VvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHNsaWNlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXHN0cmluZ29iamVjdC5oICQoUFlfSU5DTFVERSlcc3lzbW9kdWxlLmggJChQWV9JTkNMVURFKVx0cmFjZWJhY2suaCBcCi0JICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaAotCi10aHJlYWQub2JqOiBweWNvbmZpZy5oICQoUFlfSU5DTFVERSlcdGhyZWFkLmgKLQotdHJhY2ViYWNrLm9iajogJChQWV9JTkNMVURFKVxhYnN0cmFjdC5oICQoUFlfSU5DTFVERSlcY2V2YWwuaCAkKFBZX0lOQ0xVREUpXGNsYXNzb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGNvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGNvbXBpbGUuaCAkKFBZX0lOQ0xVREUpXGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggJChQWV9JTkNMVURFKVxkaWN0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmaWxlb2JqZWN0LmggXAotCSAkKFBZX0lOQ0xVREUpXGZsb2F0b2JqZWN0LmggJChQWV9JTkNMVURFKVxmcmFtZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxmdW5jb2JqZWN0LmggJChQWV9JTkNMVURFKVxpbXBvcnQuaCAkKFBZX0lOQ0xVREUpXGludG9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxpbnRyY2hlY2suaCAkKFBZX0lOQ0xVREUpXGxpc3RvYmplY3QuaCAkKFBZX0lOQ0xVREUpXGxvbmdvYmplY3QuaCBcCi0JICQoUFlfSU5DTFVERSlcbWV0aG9kb2JqZWN0LmggJChQWV9JTkNMVURFKVxtb2RzdXBwb3J0LmggXAotCSAkKFBZX0lOQ0xVREUpXG1vZHVsZW9iamVjdC5oICQoUFlfSU5DTFVERSlcbXltYWxsb2MuaCAkKFBZX0lOQ0xVREUpXG15cHJvdG8uaCBcCi0JICQoUFlfSU5DTFVERSlcb2JqZWN0LmggJChQWV9JTkNMVURFKVxvYmppbXBsLmggJChQWV9JTkNMVURFKVxvc2RlZnMuaCBcCi0JICQoUFlfSU5DTFVERSlccHlkZWJ1Zy5oICQoUFlfSU5DTFVERSlccHllcnJvcnMuaCAkKFBZX0lOQ0xVREUpXHB5ZnBlLmggXAotCSAkKFBZX0lOQ0xVREUpXHB5c3RhdGUuaCAkKFBZX0lOQ0xVREUpXHB5dGhvbi5oICQoUFlfSU5DTFVERSlccHl0aG9ucnVuLmggXAotCSAkKFBZX0lOQ0xVREUpXHJhbmdlb2JqZWN0LmggJChQWV9JTkNMVURFKVxzbGljZW9iamVjdC5oIFwKLQkgJChQWV9JTkNMVURFKVxzdHJpbmdvYmplY3QuaCAkKFBZX0lOQ0xVREUpXHN0cnVjdG1lbWJlci5oIFwKLQkgJChQWV9JTkNMVURFKVxzeXNtb2R1bGUuaCAkKFBZX0lOQ0xVREUpXHRyYWNlYmFjay5oICQoUFlfSU5DTFVERSlcdHVwbGVvYmplY3QuaApkaWZmIC0tZ2l0IGEvUEMvb3MydmFjcHAvbWFrZWZpbGUub21rIGIvUEMvb3MydmFjcHAvbWFrZWZpbGUub21rCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYTEyYzk2Li4wMDAwMDAwCi0tLSBhL1BDL29zMnZhY3BwL21ha2VmaWxlLm9taworKysgL2Rldi9udWxsCkBAIC0xLDEwNDcgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyAgICAgICAgICBUb3AtTGV2ZWwgTWFrZWZpbGUgZm9yIEJ1aWxkaW5nIFB5dGhvbiBmb3IgT1MvMgotIwotIyBUaGlzIG1ha2VmaWxlIHdhcyBkZXZlbG9wZWQgZm9yIHVzZSB3aXRoIElCTSdzIFZpc3VhbEFnZSBDL0MrKwotIyBmb3IgT1MvMiBjb21waWxlciwgdmVyc2lvbiAzLjAsIHdpdGggRml4cGFjayA4IGFwcGxpZWQuICBJdCB1c2VzCi0jIHRoZSBjb21tZXJjaWFsIE9wdXNNQUtFIHRvb2wuCi0jCi0jIFRoZSBvdXRwdXQgb2YgdGhlIGJ1aWxkIGlzIGEgbGFyZ2lzaCBQeXRob24xNS5ETEwgY29udGFpbmluZyB0aGUKLSMgZXNzZW50aWFsIG1vZHVsZXMgb2YgUHl0aG9uIGFuZCBhIHNtYWxsIFB5dGhvbi5leGUgcHJvZ3JhbSB0byBzdGFydAotIyB0aGUgaW50ZXJwcmV0ZXIuICBXaGVuIGVtYmVkZGluZyBQeXRob24gd2l0aGluIGFub3RoZXIgcHJvZ3JhbSwgb25seQotIyBQeXRob24xNS5ETEwgaXMgbmVlZGVkLgotIwotIyBUaGVzZSB0d28gYmluYXJpZXMgY2FuIGJlIHN0YXRpY2FsbHkgbGlua2VkIHdpdGggdGhlIFZpc3VhbEFnZSBDL0MrKwotIyBydW50aW1lIGxpYnJhcnkgKHByb2R1Y2luZyBsYXJnZXIgYmluYXJpZXMpLCBvciBkeW5hbWljYWxseSBsaW5rZWQKLSMgdG8gbWFrZSBzbWFsbGVyIG9uZXMgdGhhdCByZXF1aXJlIHRoZSBjb21waWxlciB0byBiZSBpbnN0YWxsZWQgb24KLSMgYW55IHN5c3RlbSBQeXRob24gaXMgdXNlZCBvbi4KLSMKLSMgSGlzdG9yeSAoTW9zdCBSZWNlbnQgRmlyc3QpCi0jCi0jIDIwLU5vdi05NyBqcnIgQ2xlYW5lZCBVcCBmb3IgQXBwbHlpbmcgdG8gRGlzdHJpYnV0aW9uCi0jIDI5LU9jdC05NyBqcnIgTW9kaWZpZWQgZm9yIFVzZSB3aXRoIFB5dGhvbiAxLjUgQWxwaGEgNAotIyAwMy1BdWctOTYganJyIE9yaWdpbmFsIGZvciBVc2Ugd2l0aCBQeXRob24gMS40IFJlbGVhc2UKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBQbGFjZXMgYW5kIFRoaW5ncwotIyMjIyMjIyMjIyMjIyMjIyMjIwotUFlfTU9EVUxFUyAgICAgID0gLi5cLi5cTW9kdWxlcwotUFlfT0JKRUNUUyAgICAgID0gLi5cLi5cT2JqZWN0cwotUFlfUEFSU0VSICAgICAgID0gLi5cLi5cUGFyc2VyCi1QWV9QWVRIT04gICAgICAgPSAuLlwuLlxQeXRob24KLVBZX0lOQ0xVREUgICAgICA9IC4uXC4uXEluY2x1ZGUKLVBZX0lOQ0xVREVTICAgICA9IC47JChQWV9JTkNMVURFKTskKFBZX01PRFVMRVMpOyQoUFlfT0JKRUNUUyk7JChQWV9QQVJTRVIpOyQoUFlfUFlUSE9OKQotCi0jIFdoZXJlIHRvIEZpbmQgdGhlIElCTSBUQ1AvSVAgU29ja2V0IEluY2x1ZGVzIGFuZCBMaWJyYXJpZXMKLU9TMlRDUElQICAgICAgICA9IEM6XE1QVE4KLQotIyBXaGVyZSB0byBQdXQgdGhlIC5PQkogRmlsZXMsIFRvIEtlZXAgVGhlbSBPdXQgb2YgdGhlIFdheQotLlBBVEgub2JqCT0gb2JqCi0KLSMgU2VhcmNoIFBhdGggZm9yIEluY2x1ZGUgRmlsZXMKLVBST0pJTkNMVURFCT0gLjskKE9TMlRDUElQKVxJbmNsdWRlOyQoUFlfSU5DTFVERVMpCi0KLSMgUGxhY2UgdG8gU2VhcmNoIGZvciBTb3VyY2VzIHJlIE9wdXNNQUtFIERlcGVuZGVuY3kgR2VuZXJhdG9yIChDb21tZXJjaWFsKQotTUtNRl9TUkNTCT0gJChQWV9NT0RVTEVTKVwqLmMgJChQWV9PQkpFQ1RTKVwqLmMgJChQWV9QQVJTRVIpXCouYyAkKFBZX1BZVEhPTilcKi5jCi0KLS5IRFJQQVRILmMJOj0gJChQUk9KSU5DTFVERSw7PSApICQoLkhEUlBBVEguYykKLS5QQVRILmMgICAgICAgICA9IC47JChQWV9NT0RVTEVTKTskKFBZX09CSkVDVFMpOyQoUFlfUEFSU0VSKTskKFBZX1BZVEhPTikKLU9USEVSTElCUwk9ICQoT1MyVENQSVApXGxpYlxzbzMyZGxsLmxpYiAkKE9TMlRDUElQKVxsaWJcdGNwMzJkbGwubGliCi0KLSMjIyMjIyMjIyMjIyMjIyMjCi0jIEluZmVyZW5jZSBSdWxlcwotIyMjIyMjIyMjIyMjIyMjIyMKLQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFB5dGhvbiBTdWJzeXN0ZW1zCi0jIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgUFlUSE9OIGlzIHRoZSBjZW50cmFsIGNvcmUsIGNvbnRhaW5pbmcgdGhlIGJ1aWx0aW5zIGFuZCBpbnRlcnByZXRlci4KLVBZVEhPTgkJPSAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgQmx0aW5Nb2R1bGUub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgIENFdmFsLm9iaiAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICBDb21waWxlLm9iaiAgICAgICAgXAotICAgICAgICAgICAgICAgICAgRXJyb3JzLm9iaiAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgIEZyb3plbi5vYmogICAgICAgICBcCi0gICAgICAgICAgICAgICAgICBHZXRhcmdzLm9iaiAgICAgICAgXAotICAgICAgICAgICAgICAgICAgR2V0Q29tcGlsZXIub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgIEdldENvcHlyaWdodC5vYmogICBcCi0gICAgICAgICAgICAgICAgICBHZXRNVGltZS5vYmogICAgICAgXAotICAgICAgICAgICAgICAgICAgR2V0T3B0Lm9iaiAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgIEdldFBsYXRmb3JtLm9iaiAgICBcCi0gICAgICAgICAgICAgICAgICBHZXRWZXJzaW9uLm9iaiAgICAgXAotICAgICAgICAgICAgICAgICAgR3JhbUluaXQub2JqICAgICAgIFwKLSAgICAgICAgICAgICAgICAgIEltcG9ydC5vYmogICAgICAgICBcCi0gICAgICAgICAgICAgICAgICBJbXBvcnRETC5vYmogICAgICAgXAotICAgICAgICAgICAgICAgICAgTWFyc2hhbC5vYmogICAgICAgIFwKLSAgICAgICAgICAgICAgICAgIE1vZFN1cHBvcnQub2JqICAgICBcCi0gICAgICAgICAgICAgICAgICBNeVN0cnRvdWwub2JqICAgICAgXAotICAgICAgICAgICAgICAgICAgUHlTdGF0ZS5vYmogICAgICAgIFwKLSAgICAgICAgICAgICAgICAgIFB5dGhvblJ1bi5vYmogICAgICBcCi0gICAgICAgICAgICAgICAgICBTdHJ1Y3RNZW1iZXIub2JqICAgXAotICAgICAgICAgICAgICAgICAgU3lzTW9kdWxlLm9iaiAgICAgIFwKLSAgICAgICAgICAgICAgICAgIFRocmVhZC5vYmogICAgICAgICBcCi0gICAgICAgICAgICAgICAgICBUcmFjZUJhY2sub2JqICAgICAgXAotICAgICAgICAgICAgICAgICAgRnJvemVuTWFpbi5vYmoKLQotIyBPbWl0dGVkIFB5dGhvbiBFbGVtZW50cyAoYW5kIFJlYXNvbik6Ci0gICMgYXRvZi5jICAgICAgICAgIC0tIEltcGxlbWVudGF0aW9uIGZvciBQbGF0Zm9ybXMgdy9vIFRoaXMgRnVuY3Rpb24KLSAgIyBkdXAyLmMgICAgICAgICAgLS0gSW1wbGVtZW50YXRpb24gZm9yIFBsYXRmb3JtcyB3L28gVGhpcyBGdW5jdGlvbgotICAjIGZtb2QuYyAgICAgICAgICAtLSBJbXBsZW1lbnRhdGlvbiBmb3IgUGxhdGZvcm1zIHcvbyBUaGlzIEZ1bmN0aW9uCi0gICMgZ2V0Y3dkLmMgICAgICAgIC0tIEltcGxlbWVudGF0aW9uIGZvciBQbGF0Zm9ybXMgdy9vIFRoaXMgRnVuY3Rpb24KLSAgIyBoeXBvdC5jICAgICAgICAgLS0gSW1wbGVtZW50YXRpb24gZm9yIFBsYXRmb3JtcyB3L28gVGhpcyBGdW5jdGlvbgotICAjIG1lbW1vdmUuYyAgICAgICAtLSBJbXBsZW1lbnRhdGlvbiBmb3IgUGxhdGZvcm1zIHcvbyBUaGlzIEZ1bmN0aW9uCi0gICMgc3RyZHVwLmMgICAgICAgIC0tIEltcGxlbWVudGF0aW9uIGZvciBQbGF0Zm9ybXMgdy9vIFRoaXMgRnVuY3Rpb24KLSAgIyBzdHJlcnJvci5jICAgICAgLS0gSW1wbGVtZW50YXRpb24gZm9yIFBsYXRmb3JtcyB3L28gVGhpcyBGdW5jdGlvbgotICAjIHN0cnRvZC5jICAgICAgICAtLSBJbXBsZW1lbnRhdGlvbiBmb3IgUGxhdGZvcm1zIHcvbyBUaGlzIEZ1bmN0aW9uCi0KLSAgIyBzaWdjaGVjay5jICAgICAgLS0gUHJpbWl0aXZlIFNpZ25hbCBDYXRjaGVyIChTaWduYWxNb2R1bGUuYyBVc2VkIEluc3RlYWQpCi0gICMgcHlmcGUuYyAgICAgICAgIC0tIFByaW1pdGl2ZSBGUEUgQ2F0Y2hlciAoTm90IFJlZmVyZW5jZWQgYnkgQW55b25lKQotICAjIGZyb3plbm1haW4uYwotCi0jIFB5dGhvbidzIEludGVybmFsIFBhcnNlcgotUEFSU0VSCQk9ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgIEFjY2VsZXIub2JqICAgICAgIFwKLSAgICAgICAgICAgICAgICAgIEdyYW1tYXIxLm9iaiAgICAgIFwKLSAgICAgICAgICAgICAgICAgIE15UmVhZGxpbmUub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgIE5vZGUub2JqICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgIFBhcnNlci5vYmogICAgICAgIFwKLSAgICAgICAgICAgICAgICAgIFBhcnNlVG9rLm9iaiAgICAgIFwKLSAgICAgICAgICAgICAgICAgIFRva2VuaXplci5vYmoKLQotIyBQeXRob24gT2JqZWN0IFR5cGVzCi1PQkpFQ1RTCQk9ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgIEFic3RyYWN0Lm9iaiAgICAgIFwKLSAgICAgICAgICAgICAgICAgIENsYXNzT2JqZWN0Lm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgIENPYmplY3Qub2JqICAgICAgIFwKLSAgICAgICAgICAgICAgICAgIENvbXBsZXhPYmplY3Qub2JqIFwKLSAgICAgICAgICAgICAgICAgIERpY3RPYmplY3Qub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgIEZpbGVPYmplY3Qub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgIEZsb2F0T2JqZWN0Lm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgIEZyYW1lT2JqZWN0Lm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgIEZ1bmNPYmplY3Qub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgIExpc3RPYmplY3Qub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgIExvbmdPYmplY3Qub2JqICAgIFwKLSAgICAgICAgICAgICAgICAgIE1ldGhvZE9iamVjdC5vYmogIFwKLSAgICAgICAgICAgICAgICAgIE1vZHVsZU9iamVjdC5vYmogIFwKLSAgICAgICAgICAgICAgICAgIE9iamVjdC5vYmogICAgICAgIFwKLSAgICAgICAgICAgICAgICAgIFJhbmdlT2JqZWN0Lm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgIFNsaWNlT2JqZWN0Lm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgIFN0cmluZ09iamVjdC5vYmogIFwKLSAgICAgICAgICAgICAgICAgIFR1cGxlT2JqZWN0Lm9iaiAgIFwKLSAgICAgICAgICAgICAgICAgIFR5cGVPYmplY3Qub2JqCi0KLSMgT21pdHRlZCBPYmplY3RzIChhbmQgUmVhc29uKToKLSAgIyB4eG9iamVjdC5jICAgICAgLS0gVGVtcGxhdGUgdG8gQ3JlYXRlIFlvdXIgT3duIE9iamVjdCBUeXBlcwotCi0jIEV4dGVuc2lvbiBNb2R1bGVzIChCdWlsdC1JbiBvciBhcyBTZXBhcmF0ZSBETExzKQotTU9EVUxFUwkJPSAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICBBcnJheU1vZHVsZS5vYmogICBcCi0gICAgICAgICAgICAgICAgICBCaW5Bc2NpaS5vYmogICAgICBcCi0gICAgICAgICAgICAgICAgICBDTWF0aE1vZHVsZS5vYmogICBcCi0gICAgICAgICAgICAgICAgICBFcnJub01vZHVsZS5vYmogICBcCi0gICAgICAgICAgICAgICAgICBHZXRCdWlsZEluZm8ub2JqICBcCi0gICAgICAgICAgICAgICAgICBHZXRQYXRoUC5vYmogICAgICBcCi0gICAgICAgICAgICAgICAgICBNYWluLm9iaiAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICBNYXRoTW9kdWxlLm9iaiAgICBcCi0gICAgICAgICAgICAgICAgICBNRDVjLm9iaiAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICBNRDVNb2R1bGUub2JqICAgICBcCi0gICAgICAgICAgICAgICAgICBPcGVyYXRvci5vYmogICAgICBcCi0gICAgICAgICAgICAgICAgICBQb3NpeE1vZHVsZS5vYmogICBcCi0gICAgICAgICAgICAgICAgICBSZWdleE1vZHVsZS5vYmogICBcCi0gICAgICAgICAgICAgICAgICBSZWdFeHByLm9iaiAgICAgICBcCi0gICAgICAgICAgICAgICAgICBSZW9wTW9kdWxlLm9iaiAgICBcCi0gICAgICAgICAgICAgICAgICBTZWxlY3RNb2R1bGUub2JqICBcCi0gICAgICAgICAgICAgICAgICBTaWduYWxNb2R1bGUub2JqICBcCi0gICAgICAgICAgICAgICAgICBTb2NrZXRNb2R1bGUub2JqICBcCi0gICAgICAgICAgICAgICAgICBTb3VuZEV4Lm9iaiAgICAgICBcCi0gICAgICAgICAgICAgICAgICBTdHJvcE1vZHVsZS5vYmogICBcCi0gICAgICAgICAgICAgICAgICBTdHJ1Y3RNb2R1bGUub2JqICBcCi0gICAgICAgICAgICAgICAgICBUaW1lTW9kdWxlLm9iaiAgICBcCi0gICAgICAgICAgICAgICAgICBUaHJlYWRNb2R1bGUub2JqCi0KLSMgT21pdHRlZCBNb2R1bGVzIChhbmQgRGVzY3JpcHRpb24vUmVhc29uKToKLSAgIwotICAjIE11bHRpbWVkaWE6Ci0gICMgYXVkaW9vcC5jICAgICAgIC0tIFZhcmlvdXMgQ29tcHV0ZSBPcGVyYXRpb25zIG9uIEF1ZGlvIFNhbXBsZXMKLQotICAjIERhdGFiYXNlOgotICAjIF9kYm1tb2R1bGUuYyAgICAtLSBXcmFwcGVyIG9mIERCTSBEYXRhYmFzZSBBUEkgKEdlbmVyaWMgRmxhdm9yKQotICAjIF9nZGJtbW9kdWxlLmMgICAtLSBXcmFwcGVyIG9mIERCTSBEYXRhYmFzZSBBUEkgKEdOVSBGbGF2b3IpCi0KLSAgIyBDcnlwdG9ncmFwaHk6Ci0gICMgY3J5cHRtb2R1bGUuYyAgIC0tIFNpbXBsZSBXcmFwcGVyIGZvciBjcnlwdCgpIEZ1bmN0aW9uCi0KLSMgICAgICAgICAgICAgICAgICBmY250bG1vZHVsZS5vYmogICBcCi0jICAgICAgICAgICAgICAgICAgZnBlY3RsbW9kdWxlLm9iaiAgXAotIyAgICAgICAgICAgICAgICAgIGZwZXRlc3Rtb2R1bGUub2JqIFwKLSMgVW5peC1TcGVjaWZpYyAgICBnZXRwYXRoLm9iaiAgICAgICBcCi0jICAgICAgICAgICAgICAgICAgZ3JwbW9kdWxlLm9iaiAgICAgXAotIyAgICAgICAgICAgICAgICAgIG1wem1vZHVsZS5vYmogICAgIFwKLSMgICAgICAgICAgICAgICAgICBuaXNtb2R1bGUub2JqICAgICBcCi0jICAgICAgICAgICAgICAgICAgcGFyc2VybW9kdWxlLm9iaiAgXAotIyAgICAgICAgICAgICAgICAgIHB3ZG1vZHVsZS5vYmogICAgIFwKLSMgICAgICAgICAgICAgICAgICByZWFkbGluZS5vYmogICAgICBcCi0jICAgICAgICAgICAgICAgICAgcmVzb3VyY2Uub2JqICAgICAgXAotIyAgICAgICAgICAgICAgICAgIHN5c2xvZ21vZHVsZS5vYmogIFwKLSMgICAgICAgICAgICAgICAgICB0ZXJtaW9zLm9iaiAgICAgICBcCi0KLSAgIyBVc2VyIEludGVyZmFjZToKLSMgICAgICAgICAgICAgICAgICBfdGtpbnRlci5vYmogICAgICBcICAgICAKLSMgICAgICAgICAgICAgICAgICBzdGR3aW5tb2R1bGUub2JqICBcCi0jICAgICAgICAgICAgICAgICAgY3Vyc2VzbW9kdWxlLm9iaiAgXAotIyAgICAgICAgICAgICAgICAgIHRjbE5vdGlmeS5vYmogICAgIFwKLSMgICAgICAgICAgICAgICAgICB0a2FwcGluaXQub2JqICAgICBcCi0gICMgZmxtb2R1bGUuYyAgICAgIC0tIFdyYXBwZXIgb2YgRk9STVMgTGlicmFyeSAoU2NyZWVuIEZvcm1zKQotCi0gICMgemxpYm1vZHVsZS5jICAgIC0tIFdyYXBwZXIgb2YgWkxpYiBDb21wcmVzc2lvbiBBUEkgKEdaaXAgRm9ybWF0KQotICAjIHB1cmVtb2R1bGUuYyAgICAtLSBXcmFwcGVyIG9mIFB1cmlmeSBEZWJ1Z2dpbmcgQVBJIChQcm9iYWJseSBOb24tT1MvMikKLSAgIyB4eG1vZHVsZS5jICAgICAgLS0gVGVtcGxhdGUgdG8gQ3JlYXRlIFlvdXIgT3duIE1vZHVsZQotCi0jCi0jIFN0YW5kYWxvbmUgUGFyc2VyIEdlbmVyYXRvciBQcm9ncmFtIChTaGFyZXMgU29tZSBvZiBQeXRob24ncyBNb2R1bGVzKQotUEdFTiAgICAgICAgICAgID0gICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgUEdlbk1haW4ub2JqICAgICAgXAotICAgICAgICAgICAgICAgICAgUEdlbi5vYmogICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgUHJpbnRHcmFtbWFyLm9iaiAgXAotICAgICAgICAgICAgICAgICAgTGlzdE5vZGUub2JqICAgICAgXAotICAgICAgICAgICAgICAgICAgR3JhbW1hci5vYmogICAgICAgXAotICAgICAgICAgICAgICAgICAgQml0U2V0Lm9iaiAgICAgICAgXAotICAgICAgICAgICAgICAgICAgRmlyc3RTZXRzLm9iaiAgICAgXAotICAgICAgICAgICAgICAgICAgTWV0YUdyYW1tYXIub2JqCi0KLSMgT21pdHRlZCBQYXJzZXIgRWxlbWVudHMgKGFuZCBSZWFzb24pOgotICAjIGludHJjaGVjay5jICAgICAtLSBOb3QgUmVmZXJlbmNlZCBieSBBbnlvbmUgKD8pCi0KLSMjIyMjIyMjIyMjIyMjIyMjIwotIyBNYWNyb3MgYW5kIEZsYWdzCi0jIyMjIyMjIyMjIyMjIyMjIyMKLV9CQVNFCQk9IC9RIC9XMiAvSSQoUFJPSklOQ0xVREUpCi0JCSMgL1EgICA9IE9taXQgSUJNIENvcHlyaWdodAotCQkjIC9XMiAgPSBTaG93IFdhcm5pbmdzL0Vycm9ycyBPbmx5Ci0JCSMgL0ZpICA9IENyZWF0ZSBQcmVjb21waWxlZCBIZWFkZXJzCi0JCSMgL1NpICA9IFV0aWxpemUgUHJlY29tcGlsZWQgSGVhZGVycwotCi1fR0VOCQk9IC9HNCAvR20gL0dkIC9CIi9TVEFDSzozNjAwMDAiCi0JCSMgL0c0ICA9IEdlbmVyYXRlIENvZGUgZm9yIDQ4NiAoVXNlIDM4NiBmb3IgRGVidWdnZXIpCi0JCSMgL0dtICA9IFVzZSBNdWx0aXRocmVhZCBSdW50aW1lCi0JCSMgL0dkICA9IER5bmFtaWNhbGx5IExvYWQgUnVudGltZQotCQkjIC9HcyAgPSBSZW1vdmUgQ29kZSBmb3IgU3RhY2sgUHJvYmVzCi0JCSMgL0d4ICA9IFJlbW92ZSBDKysgRXhjZXB0aW9uLUhhbmRsaW5nIEluZm8KLQkJIyAvVGRwID0gR2VuZXJhdGUgQ29kZSBmb3IgQysrIFRlbXBsYXRlcwotCQkjIC9SbiAgPSBHZW5lcmF0ZSBDb2RlIHdpdGhvdXQgYSBSdW50aW1lCi0JCSMgL0IiL1NUQUNLOm4iID0gU2V0IFN0YWNrIFNpemUKLQotX09QVAkJPSAvTyAvR2wKLQkJIyAvTyAgID0gRW5hYmxlIFNwZWVkLU9wdGltaXphdGlvbnMKLQkJIyAvT2wgID0gUGFzcyBDb2RlIFRocnUgSW50ZXJtZWRpYXRlIExpbmtlcgotCQkjIC9HdSAgPSBBZHZpc2UgTGlua2VyIEFsbCBFeHQgRGF0YSBpcyBJRCdkCi0JCSMgL0dsICA9IEhhdmUgTGlua2VyIFJlbW92ZSBVbnVzZWQgRm5zCi0KLV9EQkcJCT0gL0RIQVZFX0NPTkZJR19IIC9EVVNFX1NPQ0tFVAotCQkjIC9UaSAgPSBFbWJlZCBEZWJ1Z2dlci9BbmFseXplciBSZWNzCi0JCSMgL1RtICA9IEVuYWJsZSBEZWJ1ZyBNZW1vcnkgRm5zCi0JCSMgL1R4ICA9IFJlcXVlc3QgRnVsbCBEdW1wIFVwb24gRXhjZXB0aW9uCi0JCSMgL0RERUJVRyA9IEVuYWJsZSBBcHAtSW50ZXJuYWwgRGVidWdnaW5nIENvZGUKLSAgICAgICAgICAgICAgICAjIC9EVVNFX1NPQ0tFVCA9IAotICAgICAgICAgICAgICAgICMgL0RVU0VfRExfRVhQT1JUID0gCi0KLV9PVVQJCT0gCi0JCSMgL0ZiICA9IEVtYmVkIEJyb3dzZXIgUmVjcwotCQkjIC9HaCAgPSBHZW5lcmF0ZSBDb2RlIGZvciBQcm9maWxlciBIb29rcwotCQkjIC9GbCAgPSBPdXRwdXQgQy9DKysgTGlzdGluZyBGaWxlcwotICAgICAgICAgICAgICAgICMgL0xmICA9IFByb3ZpZGUgRnVsbCAoRGV0YWlsZWQpIExpc3RpbmcgRmlsZXMKLQkJIyAvRm0uID0gT3V0cHV0IExpbmtlciBNYXAgRmlsZQotCQkjIC9GdC4gPSBPdXRwdXQgQysrIFRlbXBsYXRlIFJlc29sdXRpb24gRmlsZXMKLQotX01BUAkJPSAvRm1Ob2lzZVwkKC5UQVJHRVQsQiw+Lm1hcCkKLQotX0RMTAkJPSAvR2UtCi1fRVhFCQk9IC9HZQotCQkjIC9HZSA9IENyZWF0ZSBhbiBFWEUsIG5vdCBETEwKLQotQ0ZMQUdTCQk9ICQoX0JBU0UpICQoX0dFTikgJChfT1BUKSAkKF9EQkcpICQoX09VVCkgJChfRVhFKSAvU3MKLUNQUEZMQUdTCT0gJChfQkFTRSkgJChfR0VOKSAkKF9PUFQpICQoX0RCRykgJChfT1VUKSAkKF9FWEUpCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgUHJpbWFyeSBUYXJnZXQocykKLSMjIyMjIyMjIyMjIyMjIyMjIyMKLUFsbDogIG9iaiBub2lzZSBQeUNvcmUubGliIFB5dGhvbjE1LmxpYiBQeXRob24xNS5kbGwgUHl0aG9uLmV4ZSBQR2VuLmV4ZQotCi0jIyMjIyMjIyMjIyMjIwotIwotIyMjIyMjIyMjIyMjIyMKLQotIyBPYmplY3QgTGlicmFyeSBvZiBBbGwgRXNzZW50aWFsIFB5dGhvbiBSb3V0aW5lcwotUHlDb3JlLmxpYjogJChNT0RVTEVTKSAkKE9CSkVDVFMpICQoUEFSU0VSKSAkKFBZVEhPTikgQ29uZmlnLm9iagotICAgICAgICAlZG8gIiUubGliIgotCi1QeXRob24xNS5kbGw6IENvbXBpbGUub2JqIFB5Q29yZS5saWIgUHl0aG9uLmRlZgotICAgICAgICAlZG8gIiUuZGxsIiBDUFBGTEFHUys9L0IiL05PRSIgQ1BQRkxBR1MrPSQoX01BUCkKLQotQ29tcGlsZS5vYmo6IENvbXBpbGUuYwotICAgICAgICAlZG8gIi5jLm9iaiIgQ0ZMQUdTKz0kKF9ETEwpCi0KLSMgSW1wb3J0IExpYnJhcnkgZm9yIFVzaW5nIHRoZSBQeXRob24xNS5kbGwKLVB5dGhvbjE1LmxpYjogUHl0aG9uLmRlZgotICAgICAgICAlZG8gIi5kZWYubGliIgotCi0jIFNtYWxsIFByb2dyYW0gdG8gU3RhcnQgSW50ZXJwcmV0ZXIgaW4gUHl0aG9uMTUuZGxsCi1QeXRob24uZXhlOiBQeXRob24ub2JqIFB5dGhvbjE1LmxpYgotICAgICAgICAlZG8gIiUuZXhlIiBDUFBGTEFHUys9JChfTUFQKQotCi0jUHl0aG9uLm9iajogUHl0aG9uLmMKLSMgICAgICAgICVkbyAiLmMub2JqIiBDRkxBR1MrPSQoX0VYRSkKLQotUEdlbi5leGU6ICQoUEdFTikgUHlDb3JlLmxpYgotICAgICAgICAlZG8gIiUuZXhlIiBDUFBGTEFHUys9JChfTUFQKQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBNaXNjZWxsYW5lb3VzIFRhcmdldHMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgUmVtb3ZlIEludGVybWVkaWF0ZSBUYXJnZXRzIGJ1dCBMZWF2ZSBFeGVjdXRhYmxlIEJpbmFyaWVzCi1jbGVhbjoKLQktLSBEZWwgL1EgJCguUEFUSC5vYmopXCoub2JqCQk+TlVMIDI+JjEKLQktLSBEZWwgL1EgL1kgTm9pc2UJCQk+TlVMIDI+JjEKLQktLSBEZWwgL1EgJChFUlJTKQkJCT5OVUwgMj4mMQotCi0jIFJlbW92ZSBBbGwgVGFyZ2V0cywgSW5jbHVkaW5nIEZpbmFsIEJpbmFyaWVzCi1kaXN0Y2xlYW46IGNsZWFuCi0gICAgICAgIC0tIERlbCAvUSBQeUNvcmUubGliIFB5dGhvbjE1LmxpYiAgICAgICA+TlVMIDI+JjEKLSAgICAgICAgLS0gRGVsIC9RIFB5dGhvbjE1LmRsbCBQeXRob24uZXhlICAgICAgID5OVUwgMj4mMQotCi1yZWxlYXNlOiBQeXRob24uZXhlIFB5dGhvbjE1LmRsbCBQeXRob24xNS5saWIKLQktLSBARWNobyBZIHwgY29weSAvVSAkKC5TT1VSQ0VTLE0iKi5leGUiKSBEOlxFWEVzCi0JLS0gQEVjaG8gWSB8IGNvcHkgL1UgJCguU09VUkNFUyxNIiouZGxsIikgRDpcRExMcwotCS0tIEBFY2hvIFkgfCBjb3B5IC9VICQoLlNPVVJDRVMsTSIqLmxpYiIpIEU6XFRhdVxMaWIKLQotdGVzdDoKLSAgICAgICAgcHl0aG9uIC4uXC4uXGxpYlx0ZXN0XHJlZ3J0ZXN0LnB5Ci0KLSMgVXBkYXRlIERlcGVuZGVuY2llcyBvbiBUYXJnZXRzIChVc2VzIE9wdXNNQUtFIENvbW1lcmNpYWwgUHJvZHVjdCkKLWRlcGVuZDoKLQlEOlxPcHVzTWFrZVxvczJta21mIC1jIC1zCi0KLSMjIyBPUFVTIE1LTUY6ICBEbyBub3QgcmVtb3ZlIHRoaXMgbGluZSEgIEdlbmVyYXRlZCBkZXBlbmRlbmNpZXMgZm9sbG93LgotCi1fdGtpbnRlci5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIFwKLQkgdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1hcnJheW1vZHVsZS5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIFwKLQkgdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1hdWRpb29wLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteW1hdGguaCBcCi0JIG15cHJvdG8uaCBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBcCi0JIHB5c3RhdGUuaCBweXRob24uaCBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0LmggXAotCSBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLWJpbmFzY2lpLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggXAotCSBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggXAotCSB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLWNtYXRobW9kdWxlLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteW1hdGguaCBcCi0JIG15cHJvdG8uaCBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBcCi0JIHB5c3RhdGUuaCBweXRob24uaCBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0LmggXAotCSBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLWNwaWNrbGUub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggXAotCSBmdW5jb2JqZWN0LmggaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIFwKLQkgbG9uZ29iamVjdC5oIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIFwKLQkgbXltYXRoLmggbXlwcm90by5oIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIFwKLQkgcHlzdGF0ZS5oIHB5dGhvbi5oIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBcCi0JIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotY3J5cHRtb2R1bGUub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBcCi0JIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCBcCi0JIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotY3Vyc2VzbW9kdWxlLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIFwKLQkgY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIFwKLQkgZnVuY29iamVjdC5oIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBcCi0JIGxvbmdvYmplY3QuaCBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBcCi0JIG15cHJvdG8uaCBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBcCi0JIHB5c3RhdGUuaCBweXRob24uaCBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0LmggXAotCSBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLV9kYm1tb2R1bGUub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBcCi0JIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCBcCi0JIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotZXJybm8ub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBcCi0JIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCBcCi0JIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotZXJybm9tb2R1bGUub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBcCi0JIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCBcCi0JIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotZmNudGxtb2R1bGUub2JqOiBhYnN0cmFjdC5oIGM6XG1wdG5caW5jbHVkZVxzeXNcaW9jdGwuaCBjZXZhbC5oIFwKLQkgY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIFwKLQkgZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIGltcG9ydC5oIGludG9iamVjdC5oIFwKLQkgaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggXAotCSBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIFwKLQkgcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIFwKLQkgc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLWZwZWN0bG1vZHVsZS5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBcCi0JIGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBcCi0JIGZ1bmNvYmplY3QuaCBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggXAotCSBsb25nb2JqZWN0LmggbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggXAotCSBteXByb3RvLmggb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggXAotCSBweXN0YXRlLmggcHl0aG9uLmggcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIFwKLQkgc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1mcGV0ZXN0bW9kdWxlLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIFwKLQkgY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIFwKLQkgZnVuY29iamVjdC5oIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBcCi0JIGxvbmdvYmplY3QuaCBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBcCi0JIG15cHJvdG8uaCBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBcCi0JIHB5c3RhdGUuaCBweXRob24uaCBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0LmggXAotCSBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLV9nZGJtbW9kdWxlLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggXAotCSBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggXAotCSB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLWdldGJ1aWxkaW5mby5vYmo6IHB5Y29uZmlnLmgKLQotZ2V0cGF0aC5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIG9zZGVmcy5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIFwKLQkgcHl0aG9uLmggcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIFwKLQkgc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1ncnBtb2R1bGUub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgZ3JwLmggaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBcCi0JIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCBcCi0JIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotaW1hZ2VvcC5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIFwKLQkgdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1tYWluLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggXAotCSBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggXAotCSB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLW1hdGhtb2R1bGUub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15bWF0aC5oIFwKLQkgbXlwcm90by5oIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIFwKLQkgcHlzdGF0ZS5oIHB5dGhvbi5oIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBcCi0JIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotbXB6bW9kdWxlLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIFwKLQkgY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIFwKLQkgZnVuY29iamVjdC5oIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBcCi0JIGxvbmdpbnRyZXByLmggbG9uZ29iamVjdC5oIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBcCi0JIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggXAotCSBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0LmggXAotCSBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotbmlzbW9kdWxlLm9iajogYWJzdHJhY3QuaCBjOlxtcHRuXGluY2x1ZGVcc3lzXHRpbWUuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggXAotCSBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBcCi0JIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIFwKLQkgbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggXAotCSBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIFwKLQkgcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIFwKLQkgc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLW9wZXJhdG9yLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggXAotCSBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggXAotCSB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLXBhcnNlcm1vZHVsZS5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21waWxlLmggXAotCSBjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggXAotCSBmdW5jb2JqZWN0LmggZ3JhbWluaXQuaCBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBcCi0JIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIFwKLQkgbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggbm9kZS5oIG9iamVjdC5oIG9iamltcGwuaCBcCi0JIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIHB5dGhvbnJ1bi5oIFwKLQkgcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIHRva2VuLmggXAotCSB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLXBvc2l4Lm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBteXRpbWUuaCBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggXAotCSBweXRob24uaCBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0LmggXAotCSBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLXBvc2l4bW9kdWxlLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBteXRpbWUuaCBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggXAotCSBweXRob24uaCBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0LmggXAotCSBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLXB3ZG1vZHVsZS5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB3ZC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIFwKLQkgcHl0aG9uLmggcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIFwKLQkgc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1yZWFkbGluZS5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIFwKLQkgdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1yZXNvdXJjZS5vYmo6IGFic3RyYWN0LmggYzpcbXB0blxpbmNsdWRlXHN5c1x0aW1lLmggY2V2YWwuaCBjbGFzc29iamVjdC5oIFwKLQkgY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggXAotCSBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBcCi0JIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIFwKLQkgbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBcCi0JIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBcCi0JIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1zZWxlY3Rtb2R1bGUub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggXAotCSBjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggXAotCSBmdW5jb2JqZWN0LmggaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIFwKLQkgbG9uZ29iamVjdC5oIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIFwKLQkgbXlwcm90by5oIG15c2VsZWN0LmggbXl0aW1lLmggb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBcCi0JIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBcCi0JIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1zaWduYWxtb2R1bGUub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggXAotCSBjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggXAotCSBmdW5jb2JqZWN0LmggaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIFwKLQkgbG9uZ29iamVjdC5oIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIFwKLQkgbXlwcm90by5oIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIFwKLQkgcHlzdGF0ZS5oIHB5dGhvbi5oIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBcCi0JIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotc29ja2V0bW9kdWxlLm9iajogYWJzdHJhY3QuaCBjOlxtcHRuXGluY2x1ZGVcbmV0aW5ldFxpbi5oIFwKLQkgYzpcbXB0blxpbmNsdWRlXHN5c1xzb2NrZXQuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIFwKLQkgY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIFwKLQkgZnVuY29iamVjdC5oIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBcCi0JIGxvbmdvYmplY3QuaCBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBcCi0JIG15cHJvdG8uaCBteXRpbWUuaCBuZXRkYi5oIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBcCi0JIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBcCi0JIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotc3RydWN0bW9kdWxlLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIFwKLQkgY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIFwKLQkgZnVuY29iamVjdC5oIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBcCi0JIGxvbmdvYmplY3QuaCBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBcCi0JIG15bWF0aC5oIG15cHJvdG8uaCBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBcCi0JIHB5c3RhdGUuaCBweXRob24uaCBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0LmggXAotCSBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLXN5c2xvZ21vZHVsZS5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBcCi0JIGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBcCi0JIGZ1bmNvYmplY3QuaCBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggXAotCSBsb25nb2JqZWN0LmggbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggXAotCSBteXByb3RvLmggb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggXAotCSBweXN0YXRlLmggcHl0aG9uLmggcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIFwKLQkgc3RyaW5nb2JqZWN0Lmggc3lzbG9nLmggc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi10ZXJtaW9zLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggXAotCSBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggXAotCSB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLV90aHJlYWRtb2R1bGUub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggXAotCSBjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggXAotCSBmdW5jb2JqZWN0LmggaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIFwKLQkgbG9uZ29iamVjdC5oIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIFwKLQkgbXlwcm90by5oIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIFwKLQkgcHlzdGF0ZS5oIHB5dGhvbi5oIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBcCi0JIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIHRocmVhZC5oIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotdGltZW1vZHVsZS5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgbXl0aW1lLmggb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIFwKLQkgcHl0aG9uLmggcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIFwKLQkgc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi14eG1vZHVsZS5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIFwKLQkgdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi16bGlibW9kdWxlLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggXAotCSBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggXAotCSB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLWFic3RyYWN0Lm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggXAotCSBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggXAotCSB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLWNsYXNzb2JqZWN0Lm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggXAotCSBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0LmggXAotCSBzdHJ1Y3RtZW1iZXIuaCBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLWNvYmplY3Qub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBcCi0JIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCBcCi0JIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotY29tcGxleG9iamVjdC5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBcCi0JIGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBcCi0JIGZ1bmNvYmplY3QuaCBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggXAotCSBsb25nb2JqZWN0LmggbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggXAotCSBteW1hdGguaCBteXByb3RvLmggb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggXAotCSBweXN0YXRlLmggcHl0aG9uLmggcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIFwKLQkgc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1kaWN0b2JqZWN0Lm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggXAotCSBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggXAotCSB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLWZpbGVvYmplY3Qub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBcCi0JIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBcCi0JIHN0cnVjdG1lbWJlci5oIHN5c21vZHVsZS5oIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotZmxvYXRvYmplY3Qub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15bWF0aC5oIFwKLQkgbXlwcm90by5oIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIFwKLQkgcHlzdGF0ZS5oIHB5dGhvbi5oIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBcCi0JIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotZnJhbWVvYmplY3Qub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGlsZS5oIFwKLQkgY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIFwKLQkgZnJhbWVvYmplY3QuaCBmdW5jb2JqZWN0LmggaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggXAotCSBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBcCi0JIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIG9iamVjdC5oIG9iamltcGwuaCBvcGNvZGUuaCBcCi0JIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIHB5dGhvbnJ1bi5oIFwKLQkgcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN0cnVjdG1lbWJlci5oIFwKLQkgc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1mdW5jb2JqZWN0Lm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBpbGUuaCBcCi0JIGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBcCi0JIGZ1bmNvYmplY3QuaCBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggXAotCSBsb25nb2JqZWN0LmggbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggXAotCSBteXByb3RvLmggb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggXAotCSBweXN0YXRlLmggcHl0aG9uLmggcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIFwKLQkgc3RyaW5nb2JqZWN0Lmggc3RydWN0bWVtYmVyLmggc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggXAotCSB0dXBsZW9iamVjdC5oCi0KLWxpc3RvYmplY3Qub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBcCi0JIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCBcCi0JIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotbG9uZ29iamVjdC5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBcCi0JIGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBcCi0JIGZ1bmNvYmplY3QuaCBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggXAotCSBsb25naW50cmVwci5oIGxvbmdvYmplY3QuaCBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggXAotCSBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15bWF0aC5oIG15cHJvdG8uaCBvYmplY3QuaCBvYmppbXBsLmggXAotCSBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBweXRob25ydW4uaCBcCi0JIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCBcCi0JIHR1cGxlb2JqZWN0LmgKLQotbWV0aG9kb2JqZWN0Lm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIFwKLQkgY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIFwKLQkgZnVuY29iamVjdC5oIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBcCi0JIGxvbmdvYmplY3QuaCBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBcCi0JIG15cHJvdG8uaCBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBcCi0JIHB5c3RhdGUuaCBweXRob24uaCBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0LmggXAotCSBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCB0b2tlbi5oIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotbW9kdWxlb2JqZWN0Lm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIFwKLQkgY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIFwKLQkgZnVuY29iamVjdC5oIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBcCi0JIGxvbmdvYmplY3QuaCBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBcCi0JIG15cHJvdG8uaCBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBcCi0JIHB5c3RhdGUuaCBweXRob24uaCBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0LmggXAotCSBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLW9iamVjdC5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIFwKLQkgdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1yYW5nZW9iamVjdC5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIFwKLQkgdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1zbGljZW9iamVjdC5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIFwKLQkgdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1zdHJpbmdvYmplY3Qub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggXAotCSBjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggXAotCSBmdW5jb2JqZWN0LmggaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIFwKLQkgbG9uZ29iamVjdC5oIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIFwKLQkgbXltYXRoLmggbXlwcm90by5oIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIFwKLQkgcHlzdGF0ZS5oIHB5dGhvbi5oIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBcCi0JIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotdHVwbGVvYmplY3Qub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBcCi0JIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCBcCi0JIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotdHlwZW9iamVjdC5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIFwKLQkgdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi14eG9iamVjdC5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIFwKLQkgdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1hY2NlbGVyLm9iajogYml0c2V0LmggcHljb25maWcuaCBncmFtbWFyLmggbXltYWxsb2MuaCBteXByb3RvLmggbm9kZS5oIFwKLQkgcGFyc2VyLmggcGdlbmhlYWRlcnMuaCBweWRlYnVnLmggdG9rZW4uaAotCi1iaXRzZXQub2JqOiBiaXRzZXQuaCBweWNvbmZpZy5oIG15bWFsbG9jLmggbXlwcm90by5oIHBnZW5oZWFkZXJzLmggcHlkZWJ1Zy5oCi0KLWZpcnN0c2V0cy5vYmo6IGJpdHNldC5oIHB5Y29uZmlnLmggZ3JhbW1hci5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgcGdlbmhlYWRlcnMuaCBweWRlYnVnLmggdG9rZW4uaAotCi1ncmFtbWFyLm9iajogYml0c2V0LmggcHljb25maWcuaCBncmFtbWFyLmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBwZ2VuaGVhZGVycy5oIHB5ZGVidWcuaCB0b2tlbi5oCi0KLWdyYW1tYXIxLm9iajogYml0c2V0LmggcHljb25maWcuaCBncmFtbWFyLmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBwZ2VuaGVhZGVycy5oIHB5ZGVidWcuaCB0b2tlbi5oCi0KLWludHJjaGVjay5vYmo6IHB5Y29uZmlnLmggaW50cmNoZWNrLmggbXltYWxsb2MuaCBteXByb3RvLmgKLQotbGlzdG5vZGUub2JqOiBweWNvbmZpZy5oIG15bWFsbG9jLmggbXlwcm90by5oIG5vZGUuaCBwZ2VuaGVhZGVycy5oIHB5ZGVidWcuaCBcCi0JIHRva2VuLmgKLQotbWV0YWdyYW1tYXIub2JqOiBiaXRzZXQuaCBweWNvbmZpZy5oIGdyYW1tYXIuaCBtZXRhZ3JhbW1hci5oIG15bWFsbG9jLmggXAotCSBteXByb3RvLmggcGdlbi5oIHBnZW5oZWFkZXJzLmggcHlkZWJ1Zy5oCi0KLW15cmVhZGxpbmUub2JqOiBweWNvbmZpZy5oIGludHJjaGVjay5oIG15bWFsbG9jLmggbXlwcm90by5oCi0KLW5vZGUub2JqOiBweWNvbmZpZy5oIG15bWFsbG9jLmggbXlwcm90by5oIG5vZGUuaCBwZ2VuaGVhZGVycy5oIHB5ZGVidWcuaAotCi1wYXJzZXIub2JqOiBiaXRzZXQuaCBweWNvbmZpZy5oIGVycmNvZGUuaCBncmFtbWFyLmggbXltYWxsb2MuaCBcCi0JIG15cHJvdG8uaCBub2RlLmggcGFyc2VyLmggcGdlbmhlYWRlcnMuaCBweWRlYnVnLmggdG9rZW4uaAotCi1wYXJzZXRvay5vYmo6IGJpdHNldC5oIHB5Y29uZmlnLmggZXJyY29kZS5oIGdyYW1tYXIuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG5vZGUuaCBwYXJzZXIuaCBwYXJzZXRvay5oIHBnZW5oZWFkZXJzLmggcHlkZWJ1Zy5oIHRva2VuLmggXAotCSB0b2tlbml6ZXIuaAotCi1wZ2VuLm9iajogYml0c2V0LmggcHljb25maWcuaCBncmFtbWFyLmggbWV0YWdyYW1tYXIuaCBteW1hbGxvYy5oIFwKLQkgbXlwcm90by5oIG5vZGUuaCBwZ2VuLmggcGdlbmhlYWRlcnMuaCBweWRlYnVnLmggdG9rZW4uaAotCi1wZ2VubWFpbi5vYmo6IGJpdHNldC5oIHB5Y29uZmlnLmggZ3JhbW1hci5oIG15bWFsbG9jLmggbXlwcm90by5oIG5vZGUuaCBcCi0JIHBhcnNldG9rLmggcGdlbi5oIHBnZW5oZWFkZXJzLmggcHlkZWJ1Zy5oCi0KLXByaW50Z3JhbW1hci5vYmo6IGJpdHNldC5oIHB5Y29uZmlnLmggZ3JhbW1hci5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgcGdlbmhlYWRlcnMuaCBweWRlYnVnLmgKLQotdG9rZW5pemVyLm9iajogcHljb25maWcuaCBlcnJjb2RlLmggbXltYWxsb2MuaCBteXByb3RvLmggcGdlbmhlYWRlcnMuaCBcCi0JIHB5ZGVidWcuaCB0b2tlbi5oIHRva2VuaXplci5oCi0KLWF0b2Yub2JqOiBweWNvbmZpZy5oCi0KLWJsdGlubW9kdWxlLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBpbGUuaCBcCi0JIGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBldmFsLmggZmlsZW9iamVjdC5oIFwKLQkgZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggXAotCSBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBcCi0JIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXltYXRoLmggbXlwcm90by5oIG5vZGUuaCBvYmplY3QuaCBcCi0JIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBcCi0JIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCBcCi0JIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotY2V2YWwub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGlsZS5oIFwKLQkgY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGV2YWwuaCBmaWxlb2JqZWN0LmggXAotCSBmbG9hdG9iamVjdC5oIGZyYW1lb2JqZWN0LmggZnVuY29iamVjdC5oIGltcG9ydC5oIGludG9iamVjdC5oIFwKLQkgaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggXAotCSBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBvYmplY3QuaCBvYmppbXBsLmggb3Bjb2RlLmggXAotCSBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBweXRob25ydW4uaCBcCi0JIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCBcCi0JIHR1cGxlb2JqZWN0LmgKLQotY29tcGlsZS5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21waWxlLmggXAotCSBjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggXAotCSBmdW5jb2JqZWN0LmggZ3JhbWluaXQuaCBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBcCi0JIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIFwKLQkgbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggbm9kZS5oIG9iamVjdC5oIG9iamltcGwuaCBcCi0JIG9wY29kZS5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIFwKLQkgc3RydWN0bWVtYmVyLmggc3lzbW9kdWxlLmggdG9rZW4uaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLWVycm9ycy5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIFwKLQkgdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1mbW9kLm9iajogcHljb25maWcuaCBteW1hdGguaAotCi1mcm96ZW4ub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBcCi0JIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCBcCi0JIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotZnJvemVubWFpbi5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIFwKLQkgdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1nZXRhcmdzLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggXAotCSBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggXAotCSB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLWdldGNvbXBpbGVyLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggXAotCSBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggXAotCSB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLWdldGNvcHlyaWdodC5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBcCi0JIGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBcCi0JIGZ1bmNvYmplY3QuaCBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggXAotCSBsb25nb2JqZWN0LmggbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggXAotCSBteXByb3RvLmggb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggXAotCSBweXN0YXRlLmggcHl0aG9uLmggcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIFwKLQkgc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1nZXRwbGF0Zm9ybS5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIHB5dGhvbi5oIFwKLQkgcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIFwKLQkgdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1nZXR2ZXJzaW9uLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBvYmplY3QuaCBvYmppbXBsLmggcGF0Y2hsZXZlbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggXAotCSBweXN0YXRlLmggcHl0aG9uLmggcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIFwKLQkgc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1ncmFtaW5pdC5vYmo6IGJpdHNldC5oIHB5Y29uZmlnLmggZ3JhbW1hci5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgcGdlbmhlYWRlcnMuaCBweWRlYnVnLmgKLQotaHlwb3Qub2JqOiBweWNvbmZpZy5oIG15bWF0aC5oIG15cHJvdG8uaAotCi1pbXBvcnQub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGlsZS5oIFwKLQkgY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGVycmNvZGUuaCBldmFsLmggXAotCSBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggaW1wb3J0LmggaW1wb3J0ZGwuaCBcCi0JIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggbWFyc2hhbC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgbm9kZS5oIG9iamVjdC5oIG9iamltcGwuaCBvc2RlZnMuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIFwKLQkgcHlzdGF0ZS5oIHB5dGhvbi5oIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBcCi0JIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIHRva2VuLmggdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi1pbXBvcnRkbC5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbXBvcnRkbC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBcCi0JIGxvbmdvYmplY3QuaCBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBcCi0JIG15cHJvdG8uaCBvYmplY3QuaCBvYmppbXBsLmggb3NkZWZzLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBcCi0JIHB5c3RhdGUuaCBweXRob24uaCBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0LmggXAotCSBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLW1hcnNoYWwub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGlsZS5oIFwKLQkgY29tcGxleG9iamVjdC5oIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIFwKLQkgZnVuY29iamVjdC5oIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBcCi0JIGxvbmdpbnRyZXByLmggbG9uZ29iamVjdC5oIG1hcnNoYWwuaCBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggXAotCSBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIFwKLQkgcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIFwKLQkgc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLW1vZHN1cHBvcnQub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBcCi0JIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCBcCi0JIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotbXlzdHJ0b3VsLm9iajogcHljb25maWcuaAotCi1weWZwZS5vYmo6IHB5Y29uZmlnLmggcHlmcGUuaAotCi1weXN0YXRlLm9iajogYWJzdHJhY3QuaCBjZXZhbC5oIGNsYXNzb2JqZWN0LmggY29iamVjdC5oIGNvbXBsZXhvYmplY3QuaCBcCi0JIHB5Y29uZmlnLmggZGljdG9iamVjdC5oIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBcCi0JIGltcG9ydC5oIGludG9iamVjdC5oIGludHJjaGVjay5oIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggXAotCSBtZXRob2RvYmplY3QuaCBtb2RzdXBwb3J0LmggbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggXAotCSBvYmplY3QuaCBvYmppbXBsLmggcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggXAotCSBweXRob25ydW4uaCByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3lzbW9kdWxlLmggXAotCSB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCi0KLXB5dGhvbnJ1bi5vYmo6IGFic3RyYWN0LmggYml0c2V0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBcCi0JIGNvbXBpbGUuaCBjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBkaWN0b2JqZWN0LmggZXJyY29kZS5oIGV2YWwuaCBcCi0JIGZpbGVvYmplY3QuaCBmbG9hdG9iamVjdC5oIGZ1bmNvYmplY3QuaCBncmFtbWFyLmggaW1wb3J0LmggXAotCSBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIG1hcnNoYWwuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG5vZGUuaCBvYmplY3QuaCBvYmppbXBsLmggcGFyc2V0b2suaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIFwKLQkgcHlzdGF0ZS5oIHB5dGhvbi5oIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBcCi0JIHN0cmluZ29iamVjdC5oIHN5c21vZHVsZS5oIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotc2lnY2hlY2sub2JqOiBhYnN0cmFjdC5oIGNldmFsLmggY2xhc3NvYmplY3QuaCBjb2JqZWN0LmggY29tcGxleG9iamVjdC5oIFwKLQkgcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggZnVuY29iamVjdC5oIFwKLQkgaW1wb3J0LmggaW50b2JqZWN0LmggaW50cmNoZWNrLmggbGlzdG9iamVjdC5oIGxvbmdvYmplY3QuaCBcCi0JIG1ldGhvZG9iamVjdC5oIG1vZHN1cHBvcnQuaCBtb2R1bGVvYmplY3QuaCBteW1hbGxvYy5oIG15cHJvdG8uaCBcCi0JIG9iamVjdC5oIG9iamltcGwuaCBweWRlYnVnLmggcHllcnJvcnMuaCBweWZwZS5oIHB5c3RhdGUuaCBweXRob24uaCBcCi0JIHB5dGhvbnJ1bi5oIHJhbmdlb2JqZWN0Lmggc2xpY2VvYmplY3QuaCBzdHJpbmdvYmplY3QuaCBzeXNtb2R1bGUuaCBcCi0JIHRyYWNlYmFjay5oIHR1cGxlb2JqZWN0LmgKLQotc3RyZHVwLm9iajogcHljb25maWcuaCBteW1hbGxvYy5oIG15cHJvdG8uaAotCi1zdHJ0b2Qub2JqOiBweWNvbmZpZy5oCi0KLXN0cnVjdG1lbWJlci5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBcCi0JIGNvbXBsZXhvYmplY3QuaCBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBcCi0JIGZ1bmNvYmplY3QuaCBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggXAotCSBsb25nb2JqZWN0LmggbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggXAotCSBteXByb3RvLmggb2JqZWN0Lmggb2JqaW1wbC5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggXAotCSBweXN0YXRlLmggcHl0aG9uLmggcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIFwKLQkgc3RyaW5nb2JqZWN0Lmggc3RydWN0bWVtYmVyLmggc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggXAotCSB0dXBsZW9iamVjdC5oCi0KLXN5c21vZHVsZS5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21wbGV4b2JqZWN0LmggXAotCSBweWNvbmZpZy5oIGRpY3RvYmplY3QuaCBmaWxlb2JqZWN0LmggZmxvYXRvYmplY3QuaCBmdW5jb2JqZWN0LmggXAotCSBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBsaXN0b2JqZWN0LmggbG9uZ29iamVjdC5oIFwKLQkgbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIG1vZHVsZW9iamVjdC5oIG15bWFsbG9jLmggbXlwcm90by5oIFwKLQkgb2JqZWN0Lmggb2JqaW1wbC5oIG9zZGVmcy5oIHB5ZGVidWcuaCBweWVycm9ycy5oIHB5ZnBlLmggcHlzdGF0ZS5oIFwKLQkgcHl0aG9uLmggcHl0aG9ucnVuLmggcmFuZ2VvYmplY3QuaCBzbGljZW9iamVjdC5oIHN0cmluZ29iamVjdC5oIFwKLQkgc3lzbW9kdWxlLmggdHJhY2ViYWNrLmggdHVwbGVvYmplY3QuaAotCi10aHJlYWQub2JqOiBweWNvbmZpZy5oIHRocmVhZC5oCi0KLXRyYWNlYmFjay5vYmo6IGFic3RyYWN0LmggY2V2YWwuaCBjbGFzc29iamVjdC5oIGNvYmplY3QuaCBjb21waWxlLmggXAotCSBjb21wbGV4b2JqZWN0LmggcHljb25maWcuaCBkaWN0b2JqZWN0LmggZmlsZW9iamVjdC5oIGZsb2F0b2JqZWN0LmggXAotCSBmcmFtZW9iamVjdC5oIGZ1bmNvYmplY3QuaCBpbXBvcnQuaCBpbnRvYmplY3QuaCBpbnRyY2hlY2suaCBcCi0JIGxpc3RvYmplY3QuaCBsb25nb2JqZWN0LmggbWV0aG9kb2JqZWN0LmggbW9kc3VwcG9ydC5oIFwKLQkgbW9kdWxlb2JqZWN0LmggbXltYWxsb2MuaCBteXByb3RvLmggb2JqZWN0Lmggb2JqaW1wbC5oIG9zZGVmcy5oIFwKLQkgcHlkZWJ1Zy5oIHB5ZXJyb3JzLmggcHlmcGUuaCBweXN0YXRlLmggcHl0aG9uLmggcHl0aG9ucnVuLmggXAotCSByYW5nZW9iamVjdC5oIHNsaWNlb2JqZWN0Lmggc3RyaW5nb2JqZWN0Lmggc3RydWN0bWVtYmVyLmggXAotCSBzeXNtb2R1bGUuaCB0cmFjZWJhY2suaCB0dXBsZW9iamVjdC5oCmRpZmYgLS1naXQgYS9QQy9vczJ2YWNwcC9weWNvbmZpZy5oIGIvUEMvb3MydmFjcHAvcHljb25maWcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc2NWI0NC4uMDAwMDAwMAotLS0gYS9QQy9vczJ2YWNwcC9weWNvbmZpZy5oCisrKyAvZGV2L251bGwKQEAgLTEsMjEyICswLDAgQEAKLSNpZm5kZWYgUHlfQ09ORklHX0gKLSNkZWZpbmUgUHlfQ09ORklHX0gKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIHB5Y29uZmlnLmguICBOT1QgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgY29uZmlndXJlLgotICoKLSAqIFRoaXMgaXMgYSBtYW51YWxseSBtYWludGFpbmVkIHZlcnNpb24gdXNlZCBmb3IgdGhlIElCTSBWaXN1YWxBZ2UKLSAqIEMvQysrIGNvbXBpbGVyIG9uIHRoZSBPUy8yIHBsYXRmb3JtLiAgSXQgaXMgYSBzdGFuZGFyZCBwYXJ0IG9mCi0gKiB0aGUgUHl0aG9uIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBGSUxFU1lTVEVNIERFRklORVM6Ci0gKiBUaGUgY29kZSBzcGVjaWZpYyB0byBhIHBhcnRpY3VsYXIgd2F5IG9mIG5hbWluZyBmaWxlcyBhbmQKLSAqIGRpcmVjdG9yeSBwYXRocyBzaG91bGQgYmUgd3JhcHBlZCBhcm91bmQgb25lIG9mIHRoZSBmb2xsb3dpbmcKLSAqICNkZWZpbmVzOgotICoKLSAqICAgICBET1NGSUxFU1lTICAgUENET1MtU3R5bGUgKGZvciBQQ0RPUywgV2luZG93cyBhbmQgT1MvMikKLSAqICAgICBNQUNGSUxFU1lTICAgTWFjaW50b3NoLVN0eWxlCi0gKiAgICAgVU5JWEZJTEVTWVMgIFVuaXgtU3R5bGUKLSAqICAgICBBTUlHQUZJTEVTWVMgQW1pZ2FET1MtU3R5bGUKLSAqIAotICogQmVjYXVzZSBvZiB0aGUgZGlmZmVyZW50IGNvbXBpbGVycyBhbmQgb3BlcmF0aW5nIHN5c3RlbXMgaW4KLSAqIHVzZSBvbiB0aGUgSW50ZWwgcGxhdGZvcm0sIG5laXRoZXIgdGhlIGNvbXBpbGVyIG5hbWUgbm9yCi0gKiB0aGUgb3BlcmF0aW5nIHN5c3RlbSBuYW1lIGlzIHN1ZmZpY2llbnQuCi0gKgotICogT1MvMiBERUZJTkVTOgotICogVGhlIGNvZGUgc3BlY2lmaWMgdG8gT1MvMidzIFByb2dyYW0gQVBJIHNob3VsZCBiZSB3cmFwcGVkIGFyb3VuZAotICoKLSAqIF9fVE9TX09TMl9fICAgVGFyZ2V0IE9wZXJhdGluZyBTeXN0ZW0sIE9TLzIKLSAqCi0gKiBBbnkgY29kZSBzcGVjaWZpYyB0byB0aGUgY29tcGlsZXIgaXRzZWxmIHNob3VsZCBiZSB3cmFwcGVkIHdpdGgKLSAqCi0gKiBfX0lCTUNfXyAgICAgIElCTSBDIENvbXBpbGVyCi0gKiBfX0lCTUNQUF9fICAgIElCTSBDKysgQ29tcGlsZXIKLSAqCi0gKiBOb3RlIHRoYXQgc2luY2UgdGhlIFZpc3VhbEFnZSBDL0MrKyBjb21waWxlciBpcyBhbHNvIGF2YWlsYWJsZQotICogZm9yIHRoZSBXaW5kb3dzIHBsYXRmb3JtLCBpdCBtYXkgYmUgbmVjZXNzYXJ5IHRvIHVzZSBib3RoIGEKLSAqIF9fVE9TX09TMl9fIGFuZCBhIF9fSUJNQ19fIHRvIHNlbGVjdCBhIHZlcnkgc3BlY2lmaWMgZW52aXJvbm1lbnQuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qCi0gKiBTb21lIHN5c3RlbXMgcmVxdWlyZSBzcGVjaWFsIGRlY2xhcmF0aW9ucyBmb3IgZGF0YSBpdGVtcyBpbXBvcnRlZAotICogb3IgZXhwb3J0ZWQgZnJvbSBkeW5hbWljIGxpbmsgbGlicmFyaWVzLiAgTm90ZSB0aGF0IHRoZSBkZWZpbml0aW9uCi0gKiBvZiBETF9JTVBPUlQgY292ZXJzIGJvdGggY2FzZXMuICBEZWZpbmUgVVNFX0RMX0lNUE9SVCBmb3IgdGhlIGNsaWVudAotICogb2YgYSBETEwuICBEZWZpbmUgVVNFX0RMX0VYUE9SVCB3aGVuIG1ha2luZyBhIERMTC4KLSAqLwotCi0jaW5jbHVkZSA8aW8uaD4KLQotLyogQ29uZmlndXJhdGlvbiBPcHRpb25zIGZvciBGaW5kaW5nIE1vZHVsZXMgKi8KLSNkZWZpbmUgUFJFRklYICAgICAgICAgICAgICAgICAiIgotI2RlZmluZSBFWEVDX1BSRUZJWCAgICAgICAgICAgICIiCi0KLS8qIFByb3ZpZGUgYSBkZWZhdWx0IGxpYnJhcnkgc28gd3JpdGVycyBvZiBleHRlbnNpb24gbW9kdWxlcwotICogd29uJ3QgaGF2ZSB0byBleHBsaWNpdGx5IHNwZWNpZnkgaXQgYW55bW9yZQotICovCi0jcHJhZ21hIGxpYnJhcnkoIlB5dGhvbjI0LmxpYiIpCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKiAgICAzMi1CaXQgSUJNIFZpc3VhbEFnZSBDL0MrKyB2My4wIGZvciBPUy8yICAgICAqLwotLyogIChDb252ZXJ0IENvbXBpbGVyIEZsYWdzIGludG8gVXNlZnVsIFN3aXRjaGVzKSAgKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIFBMQVRGT1JNICAgICJvczIiCi0jZGVmaW5lIENPTVBJTEVSICAgICJbVmlzdWFsQWdlIEMvQysrXSIKLSNkZWZpbmUgUFlPU19PUzIgICAgLyogRGVmaW5lIEluZGljYXRvciBvZiBPcGVyYXRpbmcgU3lzdGVtICovCi0jZGVmaW5lIFBZQ0NfVkFDUFAgIC8qIERlZmluZSBJbmRpY2F0b3Igb2YgQyBDb21waWxlciAqLwotCi0gIC8qIFBsYXRmb3JtIEZpbGVzeXN0ZW0gKi8KLSNkZWZpbmUgUFlUSE9OUEFUSCAgIi47LlxcbGliOy5cXGxpYlxccGxhdC13aW4iCi0jZGVmaW5lIERPU0ZJTEVTWVMgIC8qIE9TLzIgVXNlcyB0aGUgRE9TIEZpbGUgTmFtaW5nIENvbnZlbnRpb25zICovCi0vKiAjZGVmaW5lIElNUE9SVF84eDNfTkFNRVMgKGxldCdzIG1vdmUgdXAgdG8gbG9uZyBmaWxlbmFtZXMpICovCi0KLSAgLyogUGxhdGZvcm0gQ1BVLU1vZGUgRGVwZW5kZW5jaWVzICovCi0jZGVmaW5lIFdPUkRfQklUICAgICAgICAgICAgICAgIDMyIC8qIE9TLzIgaXMgYSAzMi1CaXQgT3BlcmF0aW5nIFN5c3RlbSAqLwotI2RlZmluZSBMT05HX0JJVCAgICAgICAgICAgICAgICAzMgotI2RlZmluZSBTSVpFT0ZfSU5UICAgICAgICAgICAgICAgNCAvKiBDb3VudCBvZiBCeXRlcyBpbiBhbiAoaW50KSAgICAgICAgICAgICovCi0jZGVmaW5lIFNJWkVPRl9MT05HICAgICAgICAgICAgICA0IC8qIENvdW50IG9mIEJ5dGVzIGluIGEgKGxvbmcpICAgICAgICAgICAgKi8KLSNkZWZpbmUgU0laRU9GX1ZPSURfUCAgICAgICAgICAgIDQgLyogQ291bnQgb2YgQnl0ZXMgaW4gYSAodm9pZCAqKSAgICAgICAgICAqLwotLyogI2RlZmluZSBIQVZFX0xPTkdfTE9ORyAgICAgMSAqLyAvKiBWQUMrKyBkb2VzIG5vdCBzdXBwb3J0IChsb25nIGxvbmcpICAgICovCi0vKiAjZGVmaW5lIFNJWkVPRl9MT05HX0xPTkcgICA4ICovIC8qIENvdW50IG9mIEJ5dGVzIGluIGEgKGxvbmcgbG9uZykgICAgICAgKi8KLQotLyogdW5pY29kZSBkZWZpbmluZXMgKi8KLSNkZWZpbmUgUFlfVU5JQ09ERV9UWVBFICAgIHdjaGFyX3QKLSNkZWZpbmUgUHlfVU5JQ09ERV9TSVpFIFNJWkVPRl9TSE9SVAotCi0vKiBkeW5hbWljIGxvYWRpbmcgKi8KLSNkZWZpbmUgSEFWRV9EWU5BTUlDX0xPQURJTkcgMQotCi0vKiBEZWZpbmUgaWYgdHlwZSBjaGFyIGlzIHVuc2lnbmVkIGFuZCB5b3UgYXJlIG5vdCB1c2luZyBnY2MuICAqLwotI2lmbmRlZiBfX0NIQVJfVU5TSUdORURfXwotLyogI3VuZGVmIF9fQ0hBUl9VTlNJR05FRF9fICovCi0jZW5kaWYKLQotdHlwZWRlZiBpbnQgbW9kZV90OwotdHlwZWRlZiBpbnQgdWlkX3Q7Ci10eXBlZGVmIGludCBnaWRfdDsKLXR5cGVkZWYgaW50IHBpZF90OwotCi0jaWYgZGVmaW5lZChfX01VTFRJX18pICAgICAvKiBJZiBDb21waWxlciAvR3QrIE11bHRpdGhyZWFkIE9wdGlvbiBFbmFibGVkLCAgKi8KLSAgI2RlZmluZSBXSVRIX1RIUkVBRCAgICAgICAgICAgIDEgLyogRW5hYmxlIFRocmVhZGluZyBUaHJvdWdob3V0IFB5dGhvbiAgICAqLwotICAjZGVmaW5lIE9TMl9USFJFQURTICAgICAgICAgICAgMSAvKiBBbmQgVXNlIHRoZSBPUy8yIEZsYXZvciBvZiBUaHJlYWRzICAgICovCi0vKiAjZGVmaW5lIF9SRUVOVFJBTlQgMSAqLyAvKiBVc2UgdGhyZWFkLXNhZmUgZXJybm8sIGhfZXJybm8sIGFuZCBvdGhlciBmbnMgKi8KLSNlbmRpZgotCi0gIC8qIENvbXBpbGVyIFJ1bnRpbWUgTGlicmFyeSBDYXBhYmlsaXRpZXMgKi8KLSNpbmNsdWRlIDxjdHlwZS5oPgotI2luY2x1ZGUgPGRpcmVjdC5oPgotLyogI3VuZGVmIEJBRF9TVEFUSUNfRk9SV0FSRCAqLyAvKiBpZiBjb21waWxlciBib3RjaGVzIHN0YXRpYyBmd2QgZGVjbHMgKi8KLQotI2RlZmluZSBTVERDX0hFQURFUlMgICAgICAgICAgICAgMSAvKiBWQUMrKyBpcyBhbiBBTlNJIEMgQ29tcGlsZXIgICAgICAgICAgICovCi0jZGVmaW5lIEhBVkVfSFlQT1QgICAgICAgICAgICAgICAxIC8qIGh5cG90KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgSEFWRV9QVVRFTlYgICAgICAgICAgICAgIDEgLyogcHV0ZW52KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyogI2RlZmluZSBWQV9MSVNUX0lTX0FSUkFZICAgMSAqLyAvKiBpZiB2YV9saXN0IGlzIGFuIGFycmF5IG9mIHNvbWUga2luZCAgICovCi0vKiAjZGVmaW5lIEhBVkVfQ09OSU9fSCAgICAgICAxICovIC8qICNpbmNsdWRlIDxjb25pby5oPiAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgSEFWRV9FUlJOT19IICAgICAgICAgICAgIDEgLyogI2luY2x1ZGUgPGVycm5vLmg+ICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggICAgICAgICAgMSAvKiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4gICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggICAgICAgICAxIC8qICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4gICAgICAgICAgICAgICAgKi8KLQotICAvKiBWYXJpYWJsZS1Bcmd1bWVudHMvUHJvdG90eXBlcyAqLwotI2RlZmluZSBIQVZFX1BST1RPVFlQRVMgICAgICAgICAgMSAvKiBWQUMrKyBzdXBwb3J0cyBDIEZ1bmN0aW9uIFByb3RvdHlwZXMgICovCi0jZGVmaW5lIEhBVkVfU1REQVJHX1BST1RPVFlQRVMgICAxIC8qIE91ciA8c3RkYXJnLmg+IGhhcyBwcm90b3R5cGVzICAgICAgICAgKi8KLQotICAvKiBTdHJpbmcvTWVtb3J5L0xvY2FsZSBPcGVyYXRpb25zICovCi0jZGVmaW5lIEhBVkVfTUVNTU9WRSAgICAgICAgICAgICAxIC8qIG1lbW1vdmUoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgSEFWRV9TVFJFUlJPUiAgICAgICAgICAgIDEgLyogc3RyZXJyb3IoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBIQVZFX1NFVExPQ0FMRSAgICAgICAgICAgMSAvKiBzZXRsb2NhbGUoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIE1BTExPQ19aRVJPX1JFVFVSTlNfTlVMTCAxIC8qIE91ciBtYWxsb2MoMCkgcmV0dXJucyBhIE5VTEwgcHRyICAgICAgKi8KLQotICAvKiBTaWduYWwgSGFuZGxpbmcgKi8KLSNkZWZpbmUgSEFWRV9TSUdOQUxfSCAgICAgICAgICAgIDEgLyogc2lnbmFsLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBSRVRTSUdUWVBFICAgICAgICAgICAgdm9pZCAvKiBSZXR1cm4gdHlwZSBvZiBoYW5kbGVycyAoaW50IG9yIHZvaWQpICovCi0vKiAjdW5kZWYgV0FOVF9TSUdGUEVfSEFORExFUiAgICovIC8qIEhhbmRsZSBTSUdGUEUgKHNlZSBJbmNsdWRlL3B5ZnBlLmgpICAgKi8KLS8qICNkZWZpbmUgSEFWRV9BTEFSTSAgICAgICAgIDEgKi8gLyogYWxhcm0oKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyogI2RlZmluZSBIQVZFX1NJR0lOVEVSUlVQVCAgMSAqLyAvKiBzaWdpbnRlcnJ1cHQoKSAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKiAjZGVmaW5lIEhBVkVfU0lHUkVMU0UgICAgICAxICovIC8qIHNpZ3JlbHNlKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgRE9OVF9IQVZFX1NJR19BTEFSTSAgICAgIDEKLSNkZWZpbmUgRE9OVF9IQVZFX1NJR19QQVVTRSAgICAgIDEKLQotICAvKiBDbG9jay9UaW1lIFN1cHBvcnQgKi8KLSNkZWZpbmUgSEFWRV9GVElNRSAgICAgICAgICAgICAgIDEgLyogV2UgaGF2ZSBmdGltZSgpIGluIDxzeXMvdGltZWIuaD4gICAgICAqLwotI2RlZmluZSBIQVZFX0NMT0NLICAgICAgICAgICAgICAgMSAvKiBjbG9jaygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIEhBVkVfU1RSRlRJTUUgICAgICAgICAgICAxIC8qIHN0cmZ0aW1lKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgSEFWRV9NS1RJTUUgICAgICAgICAgICAgIDEgLyogbWt0aW1lKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBIQVZFX1RaTkFNRSAgICAgICAgICAgICAgMSAvKiBObyB0bV96b25lIGJ1dCBkbyBoYXZlIHR6bmFtZVtdICAgICAgICovCi0jZGVmaW5lIEhBVkVfVElNRVMgICAgICAgICAgICAgICAxIC8qICNpbmNsdWRlIDxzeXMvdGltZXMuaD4gICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgSEFWRV9TWVNfVVRJTUVfSCAgICAgICAgIDEgLyogI2luY2x1ZGUgPHN5cy91dGltZS5oPiAgICAgICAgICAgICAgICAqLwotLyogI2RlZmluZSBIQVZFX1VUSU1FX0ggICAgICAgMSAqLyAvKiAjaW5jbHVkZSA8dXRpbWUuaD4gICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAgICAgICAgICAxIC8qICNpbmNsdWRlIDxzeXMvdGltZS5oPiAgICAgICAgICAgICAgICAgKi8KLS8qICNkZWZpbmUgVE1fSU5fU1lTX1RJTUUgICAgIDEgKi8gLyogPHN5cy90aW1lLmg+IGRlY2xhcmVzIHN0cnVjdCB0bSAgICAgICAqLwotI2RlZmluZSBIQVZFX0dFVFRJTUVPRkRBWSAgICAgICAgMSAvKiBnZXR0aW1lb2ZkYXkoKSAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKiAjZGVmaW5lIEdFVFRJTUVPRkRBWV9OT19UWiAxICovIC8qIGdldHRpbWVvZmRheSgpIGRvZXMgbm90IGhhdmUgMm5kIGFyZyAgKi8KLS8qICNkZWZpbmUgSEFWRV9USU1FR00gICAgICAgIDEgKi8gLyogdGltZWdtKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgICAgICAgMSAvKiBNaXggPHN5cy90aW1lLmg+IGFuZCA8dGltZS5oPiAgICAgICAgICovCi0jZGVmaW5lIFNZU19TRUxFQ1RfV0lUSF9TWVNfVElNRSAxIC8qIE1peCA8c3lzL3NlbGVjdC5oPiBhbmQgPHN5cy90aW1lLmg+ICAgKi8KLS8qICNkZWZpbmUgSEFWRV9BTFRaT05FICAgICAgIDEgKi8gLyogaWYgPHRpbWUuaD4gZGVmaW5lcyBhbHR6b25lICAgICAgICAgICAqLwotCi0gIC8qIE5ldHdvcmsvU29ja2V0cyBTdXBwb3J0ICovCi0jZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IICAgICAgIDEgLyogI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4gICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgQlNEX1NFTEVDVCAgICAgICAgICAgICAgMSAvKiBVc2UgQlNEIHZlcnN1cyBPUy8yIGZvcm0gb2Ygc2VsZWN0KCkgICAqLwotI2RlZmluZSBIQVZFX1NFTEVDVCAgICAgICAgICAgICAxIC8qIHNlbGVjdCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIEhBVkVfR0VUUEVFUk5BTUUgICAgICAgIDEgLyogZ2V0cGVlcm5hbWUoKSAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8qICN1bmRlZiBIQVZFX0dFVEhPU1ROQU1FX1IgMSAqLyAvKiBnZXRob3N0bmFtZV9yKCkgICAgICAgICAgICAgICAgICAgICAgICAqLwotCi0gIC8qIEZpbGUgSS9PICovCi0jZGVmaW5lIEhBVkVfRFVQMiAgICAgICAgICAgICAgICAxIC8qIGR1cDIoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgSEFWRV9FWEVDViAgICAgICAgICAgICAgIDEgLyogZXhlY3YoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBIQVZFX1NFVFZCVUYgICAgICAgICAgICAgMSAvKiBzZXR2YnVmKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIEhBVkVfR0VUQ1dEICAgICAgICAgICAgICAxIC8qIGdldGN3ZCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgSEFWRV9QSVBFICAgICAgICAgICAgICAgIDEgLyogcGlwZSgpICAgICBbT1MvMi1zcGVjaWZpYyBjb2RlIGFkZGVkXSAqLwotI2RlZmluZSBIQVZFX0lPX0ggICAgICAgICAgICAgICAgMSAvKiAjaW5jbHVkZSA8aW8uaD4gICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIEhBVkVfRkNOVExfSCAgICAgICAgICAgICAxIC8qICNpbmNsdWRlIDxmY250bC5oPiAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgSEFWRV9ESVJFQ1RfSCAgICAgICAgICAgIDEgLyogI2luY2x1ZGUgPGRpcmVjdC5oPiAgICAgICAgICAgICAgICAgICAqLwotLyogI2RlZmluZSBIQVZFX0ZMT0NLICAgICAgICAgMSAqLyAvKiBmbG9jaygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKiAjZGVmaW5lIEhBVkVfVFJVTkNBVEUgICAgICAxICovIC8qIHRydW5jYXRlKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8qICNkZWZpbmUgSEFWRV9GVFJVTkNBVEUgICAgIDEgKi8gLyogZnRydW5jYXRlKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyogI2RlZmluZSBIQVZFX0xTVEFUICAgICAgICAgMSAqLyAvKiBsc3RhdCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKiAjZGVmaW5lIEhBVkVfRElSRU5UX0ggICAgICAxICovIC8qICNpbmNsdWRlIDxkaXJlbnQuaD4gICAgICAgICAgICAgICAgICAgKi8KLS8qICNkZWZpbmUgSEFWRV9PUEVORElSICAgICAgIDEgKi8gLyogb3BlbmRpcigpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCi0gIC8qIFByb2Nlc3MgT3BlcmF0aW9ucyAqLwotI2RlZmluZSBIQVZFX1BST0NFU1NfSCAgICAgICAgICAgMSAvKiAjaW5jbHVkZSA8cHJvY2Vzcy5oPiAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIEhBVkVfR0VUUElEICAgICAgICAgICAgICAxIC8qIGdldHBpZCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgSEFWRV9TWVNURU0gICAgICAgICAgICAgIDEgLyogc3lzdGVtKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBIQVZFX1dBSVQgICAgICAgICAgICAgICAgMSAvKiB3YWl0KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIEhBVkVfS0lMTCAgICAgICAgICAgICAgICAxIC8qIGtpbGwoKSAgICAgW09TLzItc3BlY2lmaWMgY29kZSBhZGRlZF0gKi8KLSNkZWZpbmUgSEFWRV9QT1BFTiAgICAgICAgICAgICAgIDEgLyogcG9wZW4oKSAgICBbT1MvMi1zcGVjaWZpYyBjb2RlIGFkZGVkXSAqLwotLyogI2RlZmluZSBIQVZFX0dFVFBQSUQgICAgICAgMSAqLyAvKiBnZXRwcGlkKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKiAjZGVmaW5lIEhBVkVfV0FJVFBJRCAgICAgICAxICovIC8qIHdhaXRwaWQoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8qICNkZWZpbmUgSEFWRV9GT1JLICAgICAgICAgIDEgKi8gLyogZm9yaygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCi0gIC8qIFVzZXIvR3JvdXAgSUQgUXVlcmllcyAqLwotLyogI2RlZmluZSBIQVZFX0dFVEVHSUQgICAgICAgMSAqLwotLyogI2RlZmluZSBIQVZFX0dFVEVVSUQgICAgICAgMSAqLwotLyogI2RlZmluZSBIQVZFX0dFVEdJRCAgICAgICAgMSAqLwotLyogI2RlZmluZSBIQVZFX0dFVFVJRCAgICAgICAgMSAqLwotCi0gIC8qIFVuaXgtU3BlY2lmaWMgKi8KLS8qICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAgICAgICAgICAgIDEgLyogI2luY2x1ZGUgPHN5cy91bi5oPiAgICAgICAgICAgICAgICAgICAqLwotLyogI2RlZmluZSBIQVZFX1NZU19VVFNOQU1FX0ggMSAqLyAvKiAjaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4gICAgICAgICAgICAgICovCi0vKiAjZGVmaW5lIEhBVkVfU1lTX1dBSVRfSCAgICAxICovIC8qICNpbmNsdWRlIDxzeXMvd2FpdC5oPiAgICAgICAgICAgICAgICAgKi8KLS8qICNkZWZpbmUgSEFWRV9VTklTVERfSCAgICAgIDEgKi8gLyogI2luY2x1ZGUgPHVuaXN0ZC5oPiAgICAgICAgICAgICAgICAgICAqLwotLyogI2RlZmluZSBIQVZFX1VOQU1FICAgICAgICAgMSAqLyAvKiB1bmFtZSAoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0KLS8qIERlZmluZSBpZiB5b3Ugd2FudCBkb2N1bWVudGF0aW9uIHN0cmluZ3MgaW4gZXh0ZW5zaW9uIG1vZHVsZXMgKi8KLSNkZWZpbmUgV0lUSF9ET0NfU1RSSU5HUyAxCi0KLSNpZmRlZiBVU0VfRExfRVhQT1JUCi0gICNkZWZpbmUgRExfSU1QT1JUKFJUWVBFKSBSVFlQRSBfU3lzdGVtCi0jZW5kaWYKLQotI2VuZGlmIC8qICFQeV9DT05GSUdfSCAqLwotCmRpZmYgLS1naXQgYS9QQy9vczJ2YWNwcC9weXRob24uZGVmIGIvUEMvb3MydmFjcHAvcHl0aG9uLmRlZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTUyNWMyYS4uMDAwMDAwMAotLS0gYS9QQy9vczJ2YWNwcC9weXRob24uZGVmCisrKyAvZGV2L251bGwKQEAgLTEsNDc5ICswLDAgQEAKLUxJQlJBUlkgICAgICAgIFBZVEhPTjI0IElOSVRJTlNUQU5DRSBURVJNSU5TVEFOQ0UKLURFU0NSSVBUSU9OICAgICdQeXRob24gMi40IENvcmUgRExMJwotUFJPVE1PREUKLURBVEEgICAgICAgICAgIE1VTFRJUExFIE5PTlNIQVJFRAotCi1FWFBPUlRTCi0gICAgICAgICAgICAgICA7IERhdGEKLSAgICAgICAgICAgICAgIFB5Q0Z1bmN0aW9uX1R5cGUKLSAgICAgICAgICAgICAgIFB5Q2Fwc3VsZV9UeXBlCi0gICAgICAgICAgICAgICBQeUNPYmplY3RfVHlwZQotICAgICAgICAgICAgICAgUHlDbGFzc19UeXBlCi0gICAgICAgICAgICAgICBQeUNvZGVfVHlwZQotICAgICAgICAgICAgICAgUHlDb21wbGV4X1R5cGUKLSAgICAgICAgICAgICAgIFB5RGljdF9UeXBlCi0gICAgICAgICAgICAgICBQeUV4Y19Bcml0aG1ldGljRXJyb3IKLSAgICAgICAgICAgICAgIFB5RXhjX0Fzc2VydGlvbkVycm9yCi0gICAgICAgICAgICAgICBQeUV4Y19BdHRyaWJ1dGVFcnJvcgotICAgICAgICAgICAgICAgUHlFeGNfRU9GRXJyb3IKLSAgICAgICAgICAgICAgIFB5RXhjX0Vudmlyb25tZW50RXJyb3IKLSAgICAgICAgICAgICAgIFB5RXhjX0V4Y2VwdGlvbgotICAgICAgICAgICAgICAgUHlFeGNfRmxvYXRpbmdQb2ludEVycm9yCi0gICAgICAgICAgICAgICBQeUV4Y19JT0Vycm9yCi0gICAgICAgICAgICAgICBQeUV4Y19JbXBvcnRFcnJvcgotICAgICAgICAgICAgICAgUHlFeGNfSW5kZXhFcnJvcgotICAgICAgICAgICAgICAgUHlFeGNfS2V5RXJyb3IKLSAgICAgICAgICAgICAgIFB5RXhjX0tleWJvYXJkSW50ZXJydXB0Ci0gICAgICAgICAgICAgICBQeUV4Y19Mb29rdXBFcnJvcgotICAgICAgICAgICAgICAgUHlFeGNfTWVtb3J5RXJyb3IKLSAgICAgICAgICAgICAgIFB5RXhjX01lbW9yeUVycm9ySW5zdAotICAgICAgICAgICAgICAgUHlFeGNfTmFtZUVycm9yCi0gICAgICAgICAgICAgICBQeUV4Y19PU0Vycm9yCi0gICAgICAgICAgICAgICBQeUV4Y19PdmVyZmxvd0Vycm9yCi0gICAgICAgICAgICAgICBQeUV4Y19SdW50aW1lRXJyb3IKLSAgICAgICAgICAgICAgIFB5RXhjX1N5bnRheEVycm9yCi0gICAgICAgICAgICAgICBQeUV4Y19TeXN0ZW1FcnJvcgotICAgICAgICAgICAgICAgUHlFeGNfU3lzdGVtRXhpdAotICAgICAgICAgICAgICAgUHlFeGNfVHlwZUVycm9yCi0gICAgICAgICAgICAgICBQeUV4Y19WYWx1ZUVycm9yCi0gICAgICAgICAgICAgICBQeUV4Y19aZXJvRGl2aXNpb25FcnJvcgotICAgICAgICAgICAgICAgUHlGaWxlX1R5cGUKLSAgICAgICAgICAgICAgIFB5RmxvYXRfVHlwZQotICAgICAgICAgICAgICAgUHlGcmFtZV9UeXBlCi0gICAgICAgICAgICAgICBQeUZ1bmN0aW9uX1R5cGUKLSAgICAgICAgICAgICAgIFB5SW1wb3J0X0Zyb3plbk1vZHVsZXMKLSAgICAgICAgICAgICAgIFB5SW1wb3J0X0luaXR0YWIKLSAgICAgICAgICAgICAgIFB5SW5zdGFuY2VfVHlwZQotICAgICAgICAgICAgICAgUHlJbnRfVHlwZQotICAgICAgICAgICAgICAgUHlMaXN0X1R5cGUKLSAgICAgICAgICAgICAgIFB5TG9uZ19UeXBlCi0gICAgICAgICAgICAgICBQeU1ldGhvZF9UeXBlCi0gICAgICAgICAgICAgICBQeU1vZHVsZV9UeXBlCi0gICAgICAgICAgICAgICBQeU9TX0lucHV0SG9vawotICAgICAgICAgICAgICAgUHlPU19SZWFkbGluZUZ1bmN0aW9uUG9pbnRlcgotICAgICAgICAgICAgICAgUHlSYW5nZV9UeXBlCi0gICAgICAgICAgICAgICBQeVNsaWNlX1R5cGUKLSAgICAgICAgICAgICAgIFB5U3RyaW5nX1R5cGUKLSAgICAgICAgICAgICAgIFB5VHJhY2VCYWNrX1R5cGUKLSAgICAgICAgICAgICAgIFB5VHVwbGVfVHlwZQotICAgICAgICAgICAgICAgUHlUeXBlX1R5cGUKLSAgICAgICAgICAgICAgIFB5X0RlYnVnRmxhZwotICAgICAgICAgICAgICAgUHlfRnJvemVuRmxhZwotICAgICAgICAgICAgICAgUHlfSW50ZXJhY3RpdmVGbGFnCi0gICAgICAgICAgICAgICBQeV9Ob1NpdGVGbGFnCi0gICAgICAgICAgICAgICBQeV9PcHRpbWl6ZUZsYWcKLSAgICAgICAgICAgICAgIFB5X1VzZUNsYXNzRXhjZXB0aW9uc0ZsYWcKLSAgICAgICAgICAgICAgIFB5X1ZlcmJvc2VGbGFnCi0gICAgICAgICAgICAgICBfUHlJbXBvcnRfRmlsZXRhYgotICAgICAgICAgICAgICAgX1B5SW1wb3J0X0luaXR0YWIKLSAgICAgICAgICAgICAgIF9QeVBhcnNlcl9HcmFtbWFyCi0gICAgICAgICAgICAgICBfUHlQYXJzZXJfVG9rZW5OYW1lcwotICAgICAgICAgICAgICAgX1B5X0VsbGlwc2lzT2JqZWN0Ci0gICAgICAgICAgICAgICBfUHlfTm9uZVN0cnVjdAotICAgICAgICAgICAgICAgX1B5X1BhY2thZ2VDb250ZXh0Ci0gICAgICAgICAgICAgICBfUHlfVHJ1ZVN0cnVjdAotICAgICAgICAgICAgICAgX1B5X1plcm9TdHJ1Y3QKLSAgICAgICAgICAgICAgIF9QeV9hYnN0cmFjdF9oYWNrCi0gICAgICAgICAgICAgICBfUHlfY2Fwc3VsZV9oYWNrCi0gICAgICAgICAgICAgICBfUHlfcmVfc3ludGF4Ci0gICAgICAgICAgICAgICBfUHlfcmVfc3ludGF4X3RhYmxlCi0KLSAgICAgICAgICAgICAgIDsgQ29kZQotICAgICAgICAgICAgICAgUHlBcmdfUGFyc2UKLSAgICAgICAgICAgICAgIFB5QXJnX1BhcnNlVHVwbGUKLSAgICAgICAgICAgICAgIFB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcwotICAgICAgICAgICAgICAgUHlBcmdfVmFQYXJzZQotICAgICAgICAgICAgICAgUHlDRnVuY3Rpb25fRmluaQotICAgICAgICAgICAgICAgUHlDRnVuY3Rpb25fR2V0RmxhZ3MKLSAgICAgICAgICAgICAgIFB5Q0Z1bmN0aW9uX0dldEZ1bmN0aW9uCi0gICAgICAgICAgICAgICBQeUNGdW5jdGlvbl9HZXRTZWxmCi0gICAgICAgICAgICAgICBQeUNGdW5jdGlvbl9OZXcKLSAgICAgICAgICAgICAgIFB5Q2Fwc3VsZV9HZXRDb250ZXh0Ci0gICAgICAgICAgICAgICBQeUNhcHN1bGVfR2V0RGVzdHJ1Y3RvcgotICAgICAgICAgICAgICAgUHlDYXBzdWxlX0dldE5hbWUKLSAgICAgICAgICAgICAgIFB5Q2Fwc3VsZV9HZXRQb2ludGVyCi0gICAgICAgICAgICAgICBQeUNhcHN1bGVfSW1wb3J0Ci0gICAgICAgICAgICAgICBQeUNhcHN1bGVfSXNWYWxpZAotICAgICAgICAgICAgICAgUHlDYXBzdWxlX05ldwotICAgICAgICAgICAgICAgUHlDYXBzdWxlX1NldENvbnRleHQKLSAgICAgICAgICAgICAgIFB5Q2Fwc3VsZV9TZXREZXN0cnVjdG9yCi0gICAgICAgICAgICAgICBQeUNhcHN1bGVfU2V0TmFtZQotICAgICAgICAgICAgICAgUHlDYXBzdWxlX1NldFBvaW50ZXIKLSAgICAgICAgICAgICAgIFB5Q09iamVjdF9Bc1ZvaWRQdHIKLSAgICAgICAgICAgICAgIFB5Q09iamVjdF9Gcm9tVm9pZFB0ckFuZERlc2MKLSAgICAgICAgICAgICAgIFB5Q09iamVjdF9Gcm9tVm9pZFB0cgotICAgICAgICAgICAgICAgUHlDT2JqZWN0X0dldERlc2MKLSAgICAgICAgICAgICAgIFB5Q09iamVjdF9JbXBvcnQKLSAgICAgICAgICAgICAgIFB5Q2FsbGFibGVfQ2hlY2sKLSAgICAgICAgICAgICAgIFB5Q2xhc3NfSXNTdWJjbGFzcwotICAgICAgICAgICAgICAgUHlDbGFzc19OZXcKLSAgICAgICAgICAgICAgIFB5Q29kZV9BZGRyMkxpbmUKLSAgICAgICAgICAgICAgIFB5Q29kZV9OZXcKLSAgICAgICAgICAgICAgIFB5Q29tcGxleF9Bc0NDb21wbGV4Ci0gICAgICAgICAgICAgICBQeUNvbXBsZXhfRnJvbUNDb21wbGV4Ci0gICAgICAgICAgICAgICBQeUNvbXBsZXhfRnJvbURvdWJsZXMKLSAgICAgICAgICAgICAgIFB5Q29tcGxleF9JbWFnQXNEb3VibGUKLSAgICAgICAgICAgICAgIFB5Q29tcGxleF9SZWFsQXNEb3VibGUKLSAgICAgICAgICAgICAgIFB5RGljdF9DbGVhcgotICAgICAgICAgICAgICAgUHlEaWN0X0RlbEl0ZW0KLSAgICAgICAgICAgICAgIFB5RGljdF9EZWxJdGVtU3RyaW5nCi0gICAgICAgICAgICAgICBQeURpY3RfR2V0SXRlbQotICAgICAgICAgICAgICAgUHlEaWN0X0dldEl0ZW1TdHJpbmcKLSAgICAgICAgICAgICAgIFB5RGljdF9JdGVtcwotICAgICAgICAgICAgICAgUHlEaWN0X0tleXMKLSAgICAgICAgICAgICAgIFB5RGljdF9OZXcKLSAgICAgICAgICAgICAgIFB5RGljdF9OZXh0Ci0gICAgICAgICAgICAgICBQeURpY3RfU2V0SXRlbQotICAgICAgICAgICAgICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcKLSAgICAgICAgICAgICAgIFB5RGljdF9TaXplCi0gICAgICAgICAgICAgICBQeURpY3RfVmFsdWVzCi0gICAgICAgICAgICAgICBQeUVycl9CYWRBcmd1bWVudAotICAgICAgICAgICAgICAgUHlFcnJfQmFkSW50ZXJuYWxDYWxsCi0gICAgICAgICAgICAgICBQeUVycl9DaGVja1NpZ25hbHMKLSAgICAgICAgICAgICAgIFB5RXJyX0NsZWFyCi0gICAgICAgICAgICAgICBQeUVycl9FeGNlcHRpb25NYXRjaGVzCi0gICAgICAgICAgICAgICBQeUVycl9GZXRjaAotICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0Ci0gICAgICAgICAgICAgICBQeUVycl9HaXZlbkV4Y2VwdGlvbk1hdGNoZXMKLSAgICAgICAgICAgICAgIFB5RXJyX05ld0V4Y2VwdGlvbgotICAgICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkKLSAgICAgICAgICAgICAgIFB5RXJyX05vcm1hbGl6ZUV4Y2VwdGlvbgotICAgICAgICAgICAgICAgUHlFcnJfT2NjdXJyZWQKLSAgICAgICAgICAgICAgIFB5RXJyX1ByaW50Ci0gICAgICAgICAgICAgICBQeUVycl9QcmludEV4Ci0gICAgICAgICAgICAgICBQeUVycl9SZXN0b3JlCi0gICAgICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8KLSAgICAgICAgICAgICAgIFB5RXJyX1NldEZyb21FcnJub1dpdGhGaWxlbmFtZQotICAgICAgICAgICAgICAgUHlFcnJfU2V0SW50ZXJydXB0Ci0gICAgICAgICAgICAgICBQeUVycl9TZXROb25lCi0gICAgICAgICAgICAgICBQeUVycl9TZXRPYmplY3QKLSAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZwotICAgICAgICAgICAgICAgUHlFdmFsX0FjcXVpcmVMb2NrCi0gICAgICAgICAgICAgICBQeUV2YWxfQWNxdWlyZVRocmVhZAotICAgICAgICAgICAgICAgUHlFdmFsX0NhbGxGdW5jdGlvbgotICAgICAgICAgICAgICAgUHlFdmFsX0NhbGxNZXRob2QKLSAgICAgICAgICAgICAgIFB5RXZhbF9DYWxsT2JqZWN0Ci0gICAgICAgICAgICAgICBQeUV2YWxfQ2FsbE9iamVjdFdpdGhLZXl3b3JkcwotICAgICAgICAgICAgICAgUHlFdmFsX0V2YWxDb2RlCi0gICAgICAgICAgICAgICBQeUV2YWxfR2V0QnVpbHRpbnMKLSAgICAgICAgICAgICAgIFB5RXZhbF9HZXRGcmFtZQotICAgICAgICAgICAgICAgUHlFdmFsX0dldEdsb2JhbHMKLSAgICAgICAgICAgICAgIFB5RXZhbF9HZXRMb2NhbHMKLSAgICAgICAgICAgICAgIFB5RXZhbF9HZXRSZXN0cmljdGVkCi0gICAgICAgICAgICAgICBQeUV2YWxfSW5pdFRocmVhZHMKLSAgICAgICAgICAgICAgIFB5RXZhbF9SZWxlYXNlTG9jawotICAgICAgICAgICAgICAgUHlFdmFsX1JlbGVhc2VUaHJlYWQKLSAgICAgICAgICAgICAgIFB5RXZhbF9SZXN0b3JlVGhyZWFkCi0gICAgICAgICAgICAgICBQeUV2YWxfU2F2ZVRocmVhZAotICAgICAgICAgICAgICAgUHlGaWxlX0FzRmlsZQotICAgICAgICAgICAgICAgUHlGaWxlX0Zyb21GaWxlCi0gICAgICAgICAgICAgICBQeUZpbGVfRnJvbVN0cmluZwotICAgICAgICAgICAgICAgUHlGaWxlX0dldExpbmUKLSAgICAgICAgICAgICAgIFB5RmlsZV9OYW1lCi0gICAgICAgICAgICAgICBQeUZpbGVfU2V0QnVmU2l6ZQotICAgICAgICAgICAgICAgUHlGaWxlX1NvZnRTcGFjZQotICAgICAgICAgICAgICAgUHlGaWxlX1dyaXRlT2JqZWN0Ci0gICAgICAgICAgICAgICBQeUZpbGVfV3JpdGVTdHJpbmcKLSAgICAgICAgICAgICAgIFB5RmxvYXRfQXNEb3VibGUKLSAgICAgICAgICAgICAgIFB5RmxvYXRfQXNTdHJpbmcKLSAgICAgICAgICAgICAgIFB5RmxvYXRfRmluaQotICAgICAgICAgICAgICAgUHlGbG9hdF9Gcm9tRG91YmxlCi0gICAgICAgICAgICAgICBQeUZyYW1lX0Jsb2NrUG9wCi0gICAgICAgICAgICAgICBQeUZyYW1lX0Jsb2NrU2V0dXAKLSAgICAgICAgICAgICAgIFB5RnJhbWVfRmFzdFRvTG9jYWxzCi0gICAgICAgICAgICAgICBQeUZyYW1lX0ZpbmkKLSAgICAgICAgICAgICAgIFB5RnJhbWVfTG9jYWxzVG9GYXN0Ci0gICAgICAgICAgICAgICBQeUZyYW1lX05ldwotICAgICAgICAgICAgICAgUHlGdW5jdGlvbl9HZXRDb2RlCi0gICAgICAgICAgICAgICBQeUZ1bmN0aW9uX0dldERlZmF1bHRzCi0gICAgICAgICAgICAgICBQeUZ1bmN0aW9uX0dldEdsb2JhbHMKLSAgICAgICAgICAgICAgIFB5RnVuY3Rpb25fTmV3Ci0gICAgICAgICAgICAgICBQeUZ1bmN0aW9uX1NldERlZmF1bHRzCi0gICAgICAgICAgICAgICBQeUdyYW1tYXJfQWRkQWNjZWxlcmF0b3JzCi0gICAgICAgICAgICAgICBQeUdyYW1tYXJfRmluZERGQQotICAgICAgICAgICAgICAgUHlHcmFtbWFyX0xhYmVsUmVwcgotICAgICAgICAgICAgICAgUHlHcmFtbWFyX1JlbW92ZUFjY2VsZXJhdG9ycwotICAgICAgICAgICAgICAgUHlJbXBvcnRfQWRkTW9kdWxlCi0gICAgICAgICAgICAgICBQeUltcG9ydF9BcHBlbmRJbml0dGFiCi0gICAgICAgICAgICAgICBQeUltcG9ydF9DbGVhbnVwCi0gICAgICAgICAgICAgICBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZQotICAgICAgICAgICAgICAgUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGVFeAotICAgICAgICAgICAgICAgUHlJbXBvcnRfRXh0ZW5kSW5pdHRhYgotICAgICAgICAgICAgICAgUHlJbXBvcnRfR2V0TWFnaWNOdW1iZXIKLSAgICAgICAgICAgICAgIFB5SW1wb3J0X0dldE1vZHVsZURpY3QKLSAgICAgICAgICAgICAgIFB5SW1wb3J0X0ltcG9ydAotICAgICAgICAgICAgICAgUHlJbXBvcnRfSW1wb3J0RnJvemVuTW9kdWxlCi0gICAgICAgICAgICAgICBQeUltcG9ydF9JbXBvcnRNb2R1bGUKLSAgICAgICAgICAgICAgIFB5SW1wb3J0X0ltcG9ydE1vZHVsZUV4Ci0gICAgICAgICAgICAgICBQeUltcG9ydF9SZWxvYWRNb2R1bGUKLSAgICAgICAgICAgICAgIFB5SW5zdGFuY2VfRG9CaW5PcAotICAgICAgICAgICAgICAgUHlJbnN0YW5jZV9OZXcKLSAgICAgICAgICAgICAgIFB5SW50X0FzTG9uZwotICAgICAgICAgICAgICAgUHlJbnRfRmluaQotICAgICAgICAgICAgICAgUHlJbnRfRnJvbUxvbmcKLSAgICAgICAgICAgICAgIFB5SW50X0dldE1heAotICAgICAgICAgICAgICAgUHlJbnRlcnByZXRlclN0YXRlX0NsZWFyCi0gICAgICAgICAgICAgICBQeUludGVycHJldGVyU3RhdGVfRGVsZXRlCi0gICAgICAgICAgICAgICBQeUludGVycHJldGVyU3RhdGVfTmV3Ci0gICAgICAgICAgICAgICBQeUxpc3RfQXBwZW5kCi0gICAgICAgICAgICAgICBQeUxpc3RfQXNUdXBsZQotICAgICAgICAgICAgICAgUHlMaXN0X0dldEl0ZW0KLSAgICAgICAgICAgICAgIFB5TGlzdF9HZXRTbGljZQotICAgICAgICAgICAgICAgUHlMaXN0X0luc2VydAotICAgICAgICAgICAgICAgUHlMaXN0X05ldwotICAgICAgICAgICAgICAgUHlMaXN0X1JldmVyc2UKLSAgICAgICAgICAgICAgIFB5TGlzdF9TZXRJdGVtCi0gICAgICAgICAgICAgICBQeUxpc3RfU2V0U2xpY2UKLSAgICAgICAgICAgICAgIFB5TGlzdF9TaXplCi0gICAgICAgICAgICAgICBQeUxpc3RfU29ydAotICAgICAgICAgICAgICAgUHlMb25nX0FzRG91YmxlCi0gICAgICAgICAgICAgICBQeUxvbmdfQXNMb25nCi07ICAgICAgICAgICAgICAgUHlMb25nX0FzTG9uZ0xvbmcKLSAgICAgICAgICAgICAgIFB5TG9uZ19Bc1Vuc2lnbmVkTG9uZwotOyAgICAgICAgICAgICAgIFB5TG9uZ19Bc1Vuc2lnbmVkTG9uZ0xvbmcKLSAgICAgICAgICAgICAgIFB5TG9uZ19Bc1ZvaWRQdHIKLSAgICAgICAgICAgICAgIFB5TG9uZ19Gcm9tRG91YmxlCi0gICAgICAgICAgICAgICBQeUxvbmdfRnJvbUxvbmcKLTsgICAgICAgICAgICAgICBQeUxvbmdfRnJvbUxvbmdMb25nCi0gICAgICAgICAgICAgICBQeUxvbmdfRnJvbVN0cmluZwotICAgICAgICAgICAgICAgUHlMb25nX0Zyb21VbnNpZ25lZExvbmcKLTsgICAgICAgICAgICAgICBQeUxvbmdfRnJvbVVuc2lnbmVkTG9uZ0xvbmcKLSAgICAgICAgICAgICAgIFB5TG9uZ19Gcm9tVm9pZFB0cgotICAgICAgICAgICAgICAgUHlNYXBwaW5nX0NoZWNrCi0gICAgICAgICAgICAgICBQeU1hcHBpbmdfR2V0SXRlbVN0cmluZwotICAgICAgICAgICAgICAgUHlNYXBwaW5nX0hhc0tleQotICAgICAgICAgICAgICAgUHlNYXBwaW5nX0hhc0tleVN0cmluZwotICAgICAgICAgICAgICAgUHlNYXBwaW5nX0xlbmd0aAotICAgICAgICAgICAgICAgUHlNYXBwaW5nX1NldEl0ZW1TdHJpbmcKLSAgICAgICAgICAgICAgIFB5TWFyc2hhbF9Jbml0Ci0gICAgICAgICAgICAgICBQeU1hcnNoYWxfUmVhZExvbmdGcm9tRmlsZQotICAgICAgICAgICAgICAgUHlNYXJzaGFsX1JlYWRPYmplY3RGcm9tRmlsZQotICAgICAgICAgICAgICAgUHlNYXJzaGFsX1JlYWRPYmplY3RGcm9tU3RyaW5nCi0gICAgICAgICAgICAgICBQeU1hcnNoYWxfV3JpdGVMb25nVG9GaWxlCi0gICAgICAgICAgICAgICBQeU1hcnNoYWxfV3JpdGVPYmplY3RUb0ZpbGUKLSAgICAgICAgICAgICAgIFB5TWFyc2hhbF9Xcml0ZU9iamVjdFRvU3RyaW5nCi0gICAgICAgICAgICAgICBQeU1lbV9GcmVlCi0gICAgICAgICAgICAgICBQeU1lbV9NYWxsb2MKLSAgICAgICAgICAgICAgIFB5TWVtX1JlYWxsb2MKLSAgICAgICAgICAgICAgIFB5TWV0aG9kX0NsYXNzCi0gICAgICAgICAgICAgICBQeU1ldGhvZF9GaW5pCi0gICAgICAgICAgICAgICBQeU1ldGhvZF9GdW5jdGlvbgotICAgICAgICAgICAgICAgUHlNZXRob2RfTmV3Ci0gICAgICAgICAgICAgICBQeU1ldGhvZF9TZWxmCi0gICAgICAgICAgICAgICBQeU1vZHVsZV9HZXREaWN0Ci0gICAgICAgICAgICAgICBQeU1vZHVsZV9HZXROYW1lCi0gICAgICAgICAgICAgICBQeU1vZHVsZV9OZXcKLSAgICAgICAgICAgICAgIFB5Tm9kZV9BZGRDaGlsZAotICAgICAgICAgICAgICAgUHlOb2RlX0NvbXBpbGUKLSAgICAgICAgICAgICAgIFB5Tm9kZV9GcmVlCi07ICAgICAgICAgICAgICAgUHlOb2RlX0xpc3RUcmVlCi0gICAgICAgICAgICAgICBQeU5vZGVfTmV3Ci0gICAgICAgICAgICAgICBQeU51bWJlcl9BYnNvbHV0ZQotICAgICAgICAgICAgICAgUHlOdW1iZXJfQWRkCi0gICAgICAgICAgICAgICBQeU51bWJlcl9BbmQKLSAgICAgICAgICAgICAgIFB5TnVtYmVyX0NoZWNrCi0gICAgICAgICAgICAgICBQeU51bWJlcl9Db2VyY2UKLSAgICAgICAgICAgICAgIFB5TnVtYmVyX0NvZXJjZUV4Ci0gICAgICAgICAgICAgICBQeU51bWJlcl9EaXZpZGUKLSAgICAgICAgICAgICAgIFB5TnVtYmVyX0Rpdm1vZAotICAgICAgICAgICAgICAgUHlOdW1iZXJfRmxvYXQKLSAgICAgICAgICAgICAgIFB5TnVtYmVyX0ludAotICAgICAgICAgICAgICAgUHlOdW1iZXJfSW52ZXJ0Ci0gICAgICAgICAgICAgICBQeU51bWJlcl9Mb25nCi0gICAgICAgICAgICAgICBQeU51bWJlcl9Mc2hpZnQKLSAgICAgICAgICAgICAgIFB5TnVtYmVyX011bHRpcGx5Ci0gICAgICAgICAgICAgICBQeU51bWJlcl9OZWdhdGl2ZQotICAgICAgICAgICAgICAgUHlOdW1iZXJfT3IKLSAgICAgICAgICAgICAgIFB5TnVtYmVyX1Bvc2l0aXZlCi0gICAgICAgICAgICAgICBQeU51bWJlcl9Qb3dlcgotICAgICAgICAgICAgICAgUHlOdW1iZXJfUmVtYWluZGVyCi0gICAgICAgICAgICAgICBQeU51bWJlcl9Sc2hpZnQKLSAgICAgICAgICAgICAgIFB5TnVtYmVyX1N1YnRyYWN0Ci0gICAgICAgICAgICAgICBQeU51bWJlcl9Yb3IKLSAgICAgICAgICAgICAgIFB5T1NfQWZ0ZXJGb3JrCi0gICAgICAgICAgICAgICBQeU9TX0ZpbmlJbnRlcnJ1cHRzCi0gICAgICAgICAgICAgICBQeU9TX0luaXRJbnRlcnJ1cHRzCi0gICAgICAgICAgICAgICBQeU9TX0ludGVycnVwdE9jY3VycmVkCi0gICAgICAgICAgICAgICBQeU9TX1JlYWRsaW5lCi0gICAgICAgICAgICAgICBQeU9TX1N0ZGlvUmVhZGxpbmUKLSAgICAgICAgICAgICAgIFB5T1Nfc3RydG9sCi0gICAgICAgICAgICAgICBQeU9TX3N0cnRvdWwKLSAgICAgICAgICAgICAgIFB5T2JqZWN0X0NhbGxGdW5jdGlvbgotICAgICAgICAgICAgICAgUHlPYmplY3RfQ2FsbE1ldGhvZAotICAgICAgICAgICAgICAgUHlPYmplY3RfQ2FsbE9iamVjdAotICAgICAgICAgICAgICAgUHlPYmplY3RfQ21wCi0gICAgICAgICAgICAgICBQeU9iamVjdF9Db21wYXJlCi0gICAgICAgICAgICAgICBQeU9iamVjdF9EZWxJdGVtCi0gICAgICAgICAgICAgICBQeU9iamVjdF9HZXRBdHRyCi0gICAgICAgICAgICAgICBQeU9iamVjdF9HZXRBdHRyU3RyaW5nCi0gICAgICAgICAgICAgICBQeU9iamVjdF9HZXRJdGVtCi0gICAgICAgICAgICAgICBQeU9iamVjdF9IYXNBdHRyCi0gICAgICAgICAgICAgICBQeU9iamVjdF9IYXNBdHRyU3RyaW5nCi0gICAgICAgICAgICAgICBQeU9iamVjdF9IYXNoCi0gICAgICAgICAgICAgICBQeU9iamVjdF9Jc1RydWUKLSAgICAgICAgICAgICAgIFB5T2JqZWN0X0xlbmd0aAotICAgICAgICAgICAgICAgUHlPYmplY3RfTm90Ci0gICAgICAgICAgICAgICBQeU9iamVjdF9QcmludAotICAgICAgICAgICAgICAgUHlPYmplY3RfUmVwcgotICAgICAgICAgICAgICAgUHlPYmplY3RfU2V0QXR0cgotICAgICAgICAgICAgICAgUHlPYmplY3RfU2V0QXR0clN0cmluZwotICAgICAgICAgICAgICAgUHlPYmplY3RfU2V0SXRlbQotICAgICAgICAgICAgICAgUHlPYmplY3RfU3RyCi0gICAgICAgICAgICAgICBQeU9iamVjdF9UeXBlCi0gICAgICAgICAgICAgICBQeVBhcnNlcl9BZGRUb2tlbgotICAgICAgICAgICAgICAgUHlQYXJzZXJfRGVsZXRlCi0gICAgICAgICAgICAgICBQeVBhcnNlcl9OZXcKLSAgICAgICAgICAgICAgIFB5UGFyc2VyX1BhcnNlRmlsZQotICAgICAgICAgICAgICAgUHlQYXJzZXJfUGFyc2VTdHJpbmcKLSAgICAgICAgICAgICAgIFB5UGFyc2VyX1NpbXBsZVBhcnNlRmlsZQotICAgICAgICAgICAgICAgUHlQYXJzZXJfU2ltcGxlUGFyc2VTdHJpbmcKLSAgICAgICAgICAgICAgIFB5UmFuZ2VfTmV3Ci0gICAgICAgICAgICAgICBQeVJ1bl9BbnlGaWxlCi0gICAgICAgICAgICAgICBQeVJ1bl9GaWxlCi0gICAgICAgICAgICAgICBQeVJ1bl9JbnRlcmFjdGl2ZUxvb3AKLSAgICAgICAgICAgICAgIFB5UnVuX0ludGVyYWN0aXZlT25lCi0gICAgICAgICAgICAgICBQeVJ1bl9TaW1wbGVGaWxlCi0gICAgICAgICAgICAgICBQeVJ1bl9TaW1wbGVTdHJpbmcKLSAgICAgICAgICAgICAgIFB5UnVuX1N0cmluZwotICAgICAgICAgICAgICAgUHlTZXF1ZW5jZV9DaGVjawotICAgICAgICAgICAgICAgUHlTZXF1ZW5jZV9Db25jYXQKLSAgICAgICAgICAgICAgIFB5U2VxdWVuY2VfQ29udGFpbnMKLSAgICAgICAgICAgICAgIFB5U2VxdWVuY2VfQ291bnQKLSAgICAgICAgICAgICAgIFB5U2VxdWVuY2VfRGVsSXRlbQotICAgICAgICAgICAgICAgUHlTZXF1ZW5jZV9EZWxTbGljZQotICAgICAgICAgICAgICAgUHlTZXF1ZW5jZV9HZXRJdGVtCi0gICAgICAgICAgICAgICBQeVNlcXVlbmNlX0dldFNsaWNlCi0gICAgICAgICAgICAgICBQeVNlcXVlbmNlX0luCi0gICAgICAgICAgICAgICBQeVNlcXVlbmNlX0luZGV4Ci0gICAgICAgICAgICAgICBQeVNlcXVlbmNlX0xlbmd0aAotICAgICAgICAgICAgICAgUHlTZXF1ZW5jZV9MaXN0Ci0gICAgICAgICAgICAgICBQeVNlcXVlbmNlX1JlcGVhdAotICAgICAgICAgICAgICAgUHlTZXF1ZW5jZV9TZXRJdGVtCi0gICAgICAgICAgICAgICBQeVNlcXVlbmNlX1NldFNsaWNlCi0gICAgICAgICAgICAgICBQeVNlcXVlbmNlX1R1cGxlCi0gICAgICAgICAgICAgICBQeVNsaWNlX0dldEluZGljZXMKLSAgICAgICAgICAgICAgIFB5U2xpY2VfTmV3Ci0gICAgICAgICAgICAgICBQeVN0cmluZ19Bc1N0cmluZwotICAgICAgICAgICAgICAgUHlTdHJpbmdfQ29uY2F0Ci0gICAgICAgICAgICAgICBQeVN0cmluZ19Db25jYXRBbmREZWwKLSAgICAgICAgICAgICAgIFB5U3RyaW5nX0ZpbmkKLSAgICAgICAgICAgICAgIFB5U3RyaW5nX0Zvcm1hdAotICAgICAgICAgICAgICAgUHlTdHJpbmdfRnJvbVN0cmluZwotICAgICAgICAgICAgICAgUHlTdHJpbmdfRnJvbVN0cmluZ0FuZFNpemUKLSAgICAgICAgICAgICAgIFB5U3RyaW5nX0ludGVybkZyb21TdHJpbmcKLSAgICAgICAgICAgICAgIFB5U3RyaW5nX0ludGVybkluUGxhY2UKLSAgICAgICAgICAgICAgIFB5U3RyaW5nX1NpemUKLSAgICAgICAgICAgICAgIFB5U3lzX0dldEZpbGUKLSAgICAgICAgICAgICAgIFB5U3lzX0dldE9iamVjdAotICAgICAgICAgICAgICAgUHlTeXNfU2V0QXJndgotICAgICAgICAgICAgICAgUHlTeXNfU2V0T2JqZWN0Ci0gICAgICAgICAgICAgICBQeVN5c19TZXRQYXRoCi0gICAgICAgICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycgotICAgICAgICAgICAgICAgUHlTeXNfV3JpdGVTdGRvdXQKLSAgICAgICAgICAgICAgIFB5VGhyZWFkU3RhdGVfQ2xlYXIKLSAgICAgICAgICAgICAgIFB5VGhyZWFkU3RhdGVfRGVsZXRlCi0gICAgICAgICAgICAgICBQeVRocmVhZFN0YXRlX0dldAotICAgICAgICAgICAgICAgUHlUaHJlYWRTdGF0ZV9HZXREaWN0Ci0gICAgICAgICAgICAgICBQeVRocmVhZFN0YXRlX05ldwotICAgICAgICAgICAgICAgUHlUaHJlYWRTdGF0ZV9Td2FwCi0gICAgICAgICAgICAgICBQeVRocmVhZF9hY3F1aXJlX2xvY2sKLSAgICAgICAgICAgICAgIFB5VGhyZWFkX2FsbG9jYXRlX2xvY2sKLSAgICAgICAgICAgICAgIFB5VGhyZWFkX2FsbG9jYXRlX3NlbWEKLSAgICAgICAgICAgICAgIFB5VGhyZWFkX2Rvd25fc2VtYQotICAgICAgICAgICAgICAgUHlUaHJlYWRfZXhpdF90aHJlYWQKLSAgICAgICAgICAgICAgIFB5VGhyZWFkX2ZyZWVfbG9jawotICAgICAgICAgICAgICAgUHlUaHJlYWRfZnJlZV9zZW1hCi0gICAgICAgICAgICAgICBQeVRocmVhZF9nZXRfdGhyZWFkX2lkZW50Ci0gICAgICAgICAgICAgICBQeVRocmVhZF9pbml0X3RocmVhZAotICAgICAgICAgICAgICAgUHlUaHJlYWRfcmVsZWFzZV9sb2NrCi0gICAgICAgICAgICAgICBQeVRocmVhZF9zdGFydF9uZXdfdGhyZWFkCi0gICAgICAgICAgICAgICBQeVRocmVhZF91cF9zZW1hCi0gICAgICAgICAgICAgICBQeVRva2VuX09uZUNoYXIKLSAgICAgICAgICAgICAgIFB5VG9rZW5fVHdvQ2hhcnMKLSAgICAgICAgICAgICAgIFB5VG9rZW5pemVyX0ZyZWUKLSAgICAgICAgICAgICAgIFB5VG9rZW5pemVyX0Zyb21GaWxlCi0gICAgICAgICAgICAgICBQeVRva2VuaXplcl9Gcm9tU3RyaW5nCi0gICAgICAgICAgICAgICBQeVRva2VuaXplcl9HZXQKLSAgICAgICAgICAgICAgIFB5VHJhY2VCYWNrX0hlcmUKLSAgICAgICAgICAgICAgIFB5VHJhY2VCYWNrX1ByaW50Ci0gICAgICAgICAgICAgICBQeVR1cGxlX0ZpbmkKLSAgICAgICAgICAgICAgIFB5VHVwbGVfR2V0SXRlbQotICAgICAgICAgICAgICAgUHlUdXBsZV9HZXRTbGljZQotICAgICAgICAgICAgICAgUHlUdXBsZV9OZXcKLSAgICAgICAgICAgICAgIFB5VHVwbGVfU2V0SXRlbQotICAgICAgICAgICAgICAgUHlUdXBsZV9TaXplCi0gICAgICAgICAgICAgICBQeV9BZGRQZW5kaW5nQ2FsbAotICAgICAgICAgICAgICAgUHlfQXRFeGl0Ci0gICAgICAgICAgICAgICBQeV9CdWlsZFZhbHVlCi0gICAgICAgICAgICAgICBQeV9Db21waWxlU3RyaW5nCi0gICAgICAgICAgICAgICBQeV9FbmRJbnRlcnByZXRlcgotICAgICAgICAgICAgICAgUHlfRXhpdAotICAgICAgICAgICAgICAgUHlfRmF0YWxFcnJvcgotICAgICAgICAgICAgICAgUHlfRmRJc0ludGVyYWN0aXZlCi0gICAgICAgICAgICAgICBQeV9GaW5hbGl6ZQotICAgICAgICAgICAgICAgUHlfRmluZE1ldGhvZAotICAgICAgICAgICAgICAgUHlfRmluZE1ldGhvZEluQ2hhaW4KLSAgICAgICAgICAgICAgIFB5X0ZsdXNoTGluZQotICAgICAgICAgICAgICAgUHlfRnJlZQotICAgICAgICAgICAgICAgUHlfR2V0QXJnY0FyZ3YKLSAgICAgICAgICAgICAgIFB5X0dldEJ1aWxkSW5mbwotICAgICAgICAgICAgICAgUHlfR2V0Q29tcGlsZXIKLSAgICAgICAgICAgICAgIFB5X0dldENvcHlyaWdodAotICAgICAgICAgICAgICAgUHlfR2V0RXhlY1ByZWZpeAotICAgICAgICAgICAgICAgUHlfR2V0UGF0aAotICAgICAgICAgICAgICAgUHlfR2V0UGxhdGZvcm0KLSAgICAgICAgICAgICAgIFB5X0dldFByZWZpeAotICAgICAgICAgICAgICAgUHlfR2V0UHJvZ3JhbUZ1bGxQYXRoCi0gICAgICAgICAgICAgICBQeV9HZXRQcm9ncmFtTmFtZQotICAgICAgICAgICAgICAgUHlfR2V0UHl0aG9uSG9tZQotICAgICAgICAgICAgICAgUHlfR2V0VmVyc2lvbgotICAgICAgICAgICAgICAgUHlfSW5pdE1vZHVsZTQKLSAgICAgICAgICAgICAgIFB5X0luaXRpYWxpemUKLSAgICAgICAgICAgICAgIFB5X0lzSW5pdGlhbGl6ZWQKLSAgICAgICAgICAgICAgIFB5X01haW4KLSAgICAgICAgICAgICAgIFB5X01ha2VQZW5kaW5nQ2FsbHMKLSAgICAgICAgICAgICAgIFB5X01hbGxvYwotICAgICAgICAgICAgICAgUHlfTmV3SW50ZXJwcmV0ZXIKLSAgICAgICAgICAgICAgIFB5X1JlYWxsb2MKLSAgICAgICAgICAgICAgIFB5X1JlcHJFbnRlcgotICAgICAgICAgICAgICAgUHlfUmVwckxlYXZlCi0gICAgICAgICAgICAgICBQeV9TZXRQcm9ncmFtTmFtZQotICAgICAgICAgICAgICAgUHlfU2V0UHl0aG9uSG9tZQotICAgICAgICAgICAgICAgUHlfVmFCdWlsZFZhbHVlCi0gICAgICAgICAgICAgICBfUHlCdWlsdGluX0ZpbmlfMQotICAgICAgICAgICAgICAgX1B5QnVpbHRpbl9GaW5pXzIKLSAgICAgICAgICAgICAgIF9QeUJ1aWx0aW5fSW5pdF8xCi0gICAgICAgICAgICAgICBfUHlCdWlsdGluX0luaXRfMgotICAgICAgICAgICAgICAgX1B5SW1wb3J0X0ZpbmRFeHRlbnNpb24KLSAgICAgICAgICAgICAgIF9QeUltcG9ydF9GaW5pCi0gICAgICAgICAgICAgICBfUHlJbXBvcnRfRml4dXBFeHRlbnNpb24KLSAgICAgICAgICAgICAgIF9QeUltcG9ydF9Jbml0Ci0gICAgICAgICAgICAgICBfUHlJbXBvcnRfTG9hZER5bmFtaWNNb2R1bGUKLSAgICAgICAgICAgICAgIF9QeUxvbmdfTmV3Ci0gICAgICAgICAgICAgICBfUHlNb2R1bGVfQ2xlYXIKLSAgICAgICAgICAgICAgIF9QeU9iamVjdF9OZXcKLSAgICAgICAgICAgICAgIF9QeU9iamVjdF9OZXdWYXIKLSAgICAgICAgICAgICAgIF9QeVN0cmluZ19SZXNpemUKLSAgICAgICAgICAgICAgIF9QeVN5c19Jbml0Ci0gICAgICAgICAgICAgICBfUHlUdXBsZV9SZXNpemUKLSAgICAgICAgICAgICAgIF9QeV9NRDVGaW5hbAotICAgICAgICAgICAgICAgX1B5X01ENUluaXQKLSAgICAgICAgICAgICAgIF9QeV9NRDVVcGRhdGUKLTsgICAgICAgICAgICAgICBfUHlfYWRkYml0Ci0gICAgICAgICAgICAgICBfUHlfY19kaWZmCi0gICAgICAgICAgICAgICBfUHlfY19uZWcKLSAgICAgICAgICAgICAgIF9QeV9jX3BvdwotICAgICAgICAgICAgICAgX1B5X2NfcHJvZAotICAgICAgICAgICAgICAgX1B5X2NfcXVvdAotICAgICAgICAgICAgICAgX1B5X2Nfc3VtCi07ICAgICAgICAgICAgICAgX1B5X2RlbGJpdHNldAotOyAgICAgICAgICAgICAgIF9QeV9tZXJnZWJpdHNldAotOyAgICAgICAgICAgICAgIF9QeV9tZXRhX2dyYW1tYXIKLTsgICAgICAgICAgICAgICBfUHlfbmV3Yml0c2V0Ci07ICAgICAgICAgICAgICAgX1B5X3NhbWViaXRzZXQKLSAgICAgICAgICAgICAgIFB5QnVmZmVyX1R5cGUKLSAgICAgICAgICAgICAgIFB5QnVmZmVyX0Zyb21PYmplY3QKLSAgICAgICAgICAgICAgIFB5QnVmZmVyX0Zyb21NZW1vcnkKLSAgICAgICAgICAgICAgIFB5QnVmZmVyX0Zyb21SZWFkV3JpdGVNZW1vcnkKLSAgICAgICAgICAgICAgIFB5QnVmZmVyX05ldwotCmRpZmYgLS1naXQgYS9QQy9vczJ2YWNwcC9yZWFkbWUudHh0IGIvUEMvb3MydmFjcHAvcmVhZG1lLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGM1ODYwNC4uMDAwMDAwMAotLS0gYS9QQy9vczJ2YWNwcC9yZWFkbWUudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLUlCTSBWaXN1YWxBZ2UgQy9DKysgZm9yIE9TLzIKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotVG8gYnVpbGQgUHl0aG9uIGZvciBPUy8yLCBjaGFuZ2UgaW50byAuL29zMnZhY3BwIGFuZCBpc3N1ZSBhbiAnTk1BS0UnCi1jb21tYW5kLiAgVGhpcyB3aWxsIGJ1aWxkIGEgUFlUSE9OMTUuRExMIGNvbnRhaW5pbmcgdGhlIHNldCBvZiBQeXRob24KLW1vZHVsZXMgbGlzdGVkIGluIGNvbmZpZy5jIGFuZCBhIHNtYWxsIFBZVEhPTi5FWEUgdG8gc3RhcnQgdGhlCi1pbnRlcnByZXRlci4KLQotQnkgY2hhbmdpbmcgdGhlIEMgY29tcGlsZXIgZmxhZyAvR2QtIGluIHRoZSBtYWtlZmlsZSB0byAvR2QrLCB5b3UgY2FuCi1yZWR1Y2UgdGhlIHNpemUgb2YgdGhlc2UgYnkgY2F1c2luZyBQeXRob24gdG8gZHluYW1pY2FsbHkgbGluayB0byB0aGUKLUMgcnVudGltZSBETExzIGluc3RlYWQgb2YgaW5jbHVkaW5nIHRoZWlyIGJ1bGsgaW4geW91ciBiaW5hcmllcy4gCi1Ib3dldmVyLCB0aGlzIG1lYW5zIHRoYXQgYW55IHN5c3RlbSBvbiB3aGljaCB5b3UgcnVuIFB5dGhvbiBtdXN0IGhhdmUKLXRoZSBWQUMrKyBjb21waWxlciBpbnN0YWxsZWQgaW4gb3JkZXIgdG8gaGF2ZSB0aG9zZSBETExzIGF2YWlsYWJsZS4KLQotRHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzIHlvdSBtYXkgc2VlIGEgY291cGxlIG9mIGhhcm1sZXNzIHdhcm5pbmdzOgotCi0gIEZyb20gdGhlIEMgQ29tcGlsZXIsICJObyBmdW5jdGlvbiBwcm90b3R5cGUgZ2l2ZW4gZm9yIFhYWCIsIHdoaWNoCi0gIGNvbWVzIGZyb20gdGhlIHVzZSBvZiBLJlIgcGFyYW1ldGVycyB3aXRoaW4gUHl0aG9uIGZvciBwb3J0YWJpbGl0eS4KLQotICBGcm9tIHRoZSBJTElCIGxpYnJhcmlhbiwgIk1vZHVsZSBOb3QgRm91bmQgKFhYWCkiLCB3aGljaCBjb21lcwotICBmcm9tIGl0cyBhdHRlbXB0IHRvIHBlcmZvcm0gdGhlICgtKykgb3BlcmF0aW9uLCB3aGljaCByZW1vdmVzIGFuZAotICB0aGVuIGFkZHMgYSAuT0JKIHRvIHRoZSBsaWJyYXJ5LiAgVGhlIGZpcnN0IHRpbWUgYSBidWlsZCBpcyBkb25lLAotICBpdCBvYnZpb3VzbHkgY2Fubm90IHJlbW92ZSB3aGF0IGlzIG5vdCB5ZXQgYnVpbHQuCi0KLVRoaXMgYnVpbGQgaW5jbHVkZXMgc3VwcG9ydCBmb3IgbW9zdCBQeXRob24gZnVuY3Rpb25hbGl0eSBhcyB3ZWxsIGFzCi1UQ1AvSVAgc29ja2V0cy4gIEl0IG9taXRzIHRoZSBQb3NpeCBhYmlsaXR5IHRvICdmb3JrJyBhIHByb2Nlc3MgYnV0Ci1zdXBwb3J0cyB0aHJlYWRzIHVzaW5nIE9TLzIgbmF0aXZlIGNhcGFiaWxpdGllcy4gIEkgaGF2ZSB0cmllZCB0bwotc3VwcG9ydCBldmVyeXRoaW5nIHBvc3NpYmxlIGJ1dCBoZXJlIGFyZSBhIGZldyB1c2FnZSBub3Rlcy4KLQotCi0tLSBvcy5wb3BlbigpIFVzYWdlIFdhcm5pbmdzCi0KLVdpdGggcmVzcGVjdCB0byBteSBpbXBsZW1lbnRhdGlvbiBvZiBwb3BlbigpIHVuZGVyIE9TLzI6Ci0KLSAgICBpbXBvcnQgb3MKLQotICAgIGZkID0gb3MucG9wZW4oInBremlwLmV4ZSAtQCBqdW5rLnppcCIsICd3YicpCi0gICAgZmQud3JpdGUoImZpbGUxLnR4dFxuIikKLSAgICBmZC53cml0ZSgiZmlsZTIudHh0XG4iKQotICAgIGZkLndyaXRlKCJmaWxlMy50eHRcbiIpCi0gICAgZmQud3JpdGUoIlx4MWEiKSAgIyBTaG91bGQgTm90IEJlIE5lY2Vzc2FyeSBCdXQgSXMKLSAgICBmZC5jbG9zZSgpCi0KLVRoZXJlIGlzIGEgYnVnLCBlaXRoZXIgaW4gdGhlIFZBQysrIGNvbXBpbGVyIG9yIE9TLzIgaXRzZWxmLCB3aGVyZSB0aGUKLXNpbXBsZSBjbG9zdXJlIG9mIHRoZSB3cml0ZS1zaWRlIG9mIGEgcGlwZSAtdG8tIGEgcHJvY2VzcyBkb2VzIG5vdAotc2VuZCBhbiBFT0YgdG8gdGhhdCBwcm9jZXNzLiAgSSBmaW5kIEkgbXVzdCBleHBsaWNpdGx5IHdyaXRlIGEKLWNvbnRyb2wtWiAoRU9GKSBiZWZvcmUgY2xvc2luZyB0aGUgcGlwZS4gIFRoaXMgaXMgbm90IGEgcHJvYmxlbSB3aGVuCi11c2luZyBwb3BlbigpIGluIHJlYWQgbW9kZS4KLQotT25lIG90aGVyIHNsaWdodCBkaWZmZXJlbmNlIHdpdGggbXkgcG9wZW4oKSBpcyB0aGF0IEkgcmV0dXJuIE5vbmUKLWZyb20gdGhlIGNsb3NlKCksIGluc3RlYWQgb2YgdGhlIFVuaXggY29udmVudGlvbiBvZiB0aGUgcmV0dXJuIGNvZGUKLW9mIHRoZSBzcGF3bmVkIHByb2dyYW0uICBJIGNvdWxkIGZpbmQgbm8gZWFzeSB3YXkgdG8gZG8gdGhpcyB1bmRlcgotT1MvMi4KLQotCi0tLSBCRUdJTkxJQlBBVEgvRU5ETElCUEFUSAotCi1XaXRoIHJlc3BlY3QgdG8gZW52aXJvbm1lbnQgdmFyaWFibGVzLCB0aGlzIE9TLzIgcG9ydCBzdXBwb3J0cyB0aGUKLXNwZWNpYWwtdG8tT1MvMiBtYWdpYyBuYW1lcyBvZiAnQkVHSU5MSUJQQVRIJyBhbmQgJ0VORExJQlBBVEgnIHRvCi1jb250cm9sIHdoZXJlIHRvIGxvYWQgY29udmVudGlvbmFsIERMTHMgZnJvbS4gIFRob3NlIG5hbWVzIGFyZQotaW50ZXJjZXB0ZWQgYW5kIGNvbnZlcnRlZCB0byBjYWxscyBvbiB0aGUgT1MvMiBrZXJuZWwgQVBJcyBhbmQKLWFyZSBpbmhlcml0ZWQgYnkgY2hpbGQgcHJvY2Vzc2VzLCB3aGV0aGVyIFB5dGhvbi1iYXNlZCBvciBub3QuCi0KLUEgZmV3IG5ldyBhdHRyaWJ1dGVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgb3MgbW9kdWxlOgotCi0gICAgb3MubWVtaW5zdGFsbGVkICAjIENvdW50IG9mIEJ5dGVzIG9mIFJBTSBJbnN0YWxsZWQgb24gTWFjaGluZQotICAgIG9zLm1lbWtlcm5lbCAgICAgIyBDb3VudCBvZiBCeXRlcyBvZiBSQU0gUmVzZXJ2ZWQgKE5vbi1Td2FwcGFibGUpCi0gICAgb3MubWVtdmlydHVhbCAgICAjIENvdW50IG9mIEJ5dGVzIG9mIFZpcnR1YWwgUkFNIFBvc3NpYmxlCi0gICAgb3MudGltZXNsaWNlICAgICAjIER1cmF0aW9uIG9mIFNjaGVkdWxlciBUaW1lc2xpY2UsIGluIE1pbGxpc2Vjb25kcwotICAgIG9zLm1heHBhdGhsZW4gICAgIyBNYXhpbXVtIExlbmd0aCBvZiBhIFBhdGggU3BlY2lmaWNhdGlvbiwgaW4gY2hhcnMKLSAgICBvcy5tYXhuYW1lbGVuICAgICMgTWF4aW11bSBMZW5ndGggb2YgYSBTaW5nbGUgRGlyL0ZpbGUgTmFtZSwgaW4gY2hhcnMKLSAgICBvcy52ZXJzaW9uICAgICAgICMgVmVyc2lvbiBvZiBPUy8yIEJlaW5nIFJ1biBlLmcuICI0LjAwIgotICAgIG9zLnJldmlzaW9uICAgICAgIyBSZXZpc2lvbiBvZiBPUy8yIEJlaW5nIFJ1biAodXN1YWxseSB6ZXJvKQotICAgIG9zLmJvb3Rkcml2ZSAgICAgIyBEcml2ZSB0aGF0IFN5c3RlbSBCb290ZWQgRnJvbSBlLmcuICJDOiIKLSAgICAgICAgICAgICAgICAgICAgICMgKHVzZWZ1bCB0byBmaW5kIHRoZSBDT05GSUcuU1lTIHVzZWQgdG8gYm9vdCB3aXRoKQotCi0KLS0tIFVzaW5nIFB5dGhvbiBhcyB0aGUgRGVmYXVsdCBPUy8yIEJhdGNoIExhbmd1YWdlCi0KLU5vdGUgdGhhdCBPUy8yIHN1cHBvcnRzIHRoZSBVbml4IHRlY2huaXF1ZSBvZiBwdXR0aW5nIHRoZSBzcGVjaWFsCi1jb21tZW50IGxpbmUgYXQgdGhlIHRpbWUgb2Ygc2NyaXB0cyBlLmcuICIjIS91c3IvYmluL3B5dGhvbiIgaW4KLWEgZGlmZmVyZW50IHN5bnRhY3RpYyBmb3JtLiAgVG8gZG8gdGhpcywgcHV0IHlvdXIgc2NyaXB0IGludG8gYSBmaWxlCi13aXRoIGEgLkNNRCBleHRlbnNpb24gYW5kIGFkZGVkICdleHRwcm9jJyB0byB0aGUgdG9wIGFzIGZvbGxvd3M6Ci0KLSAgICBleHRwcm9jIEM6XFB5dGhvblxQeXRob24uZXhlIC14Ci0gICAgaW1wb3J0IG9zCi0gICAgcHJpbnQgIkhlbGxvIGZyb20gUHl0aG9uIgotCi1UaGUgJy14JyBvcHRpb24gdGVsbHMgUHl0aG9uIHRvIHNraXAgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGZpbGUKLXdoaWxlIHByb2Nlc3NpbmcgdGhlIHJlc3QgYXMgbm9ybWFsIFB5dGhvbiBzb3VyY2UuCi0KLQotLS0gU3VnZ2VzdGVkIEVudmlyb25tZW50IFZhcmlhYmxlIFNldHVwCi0KLVdpdGggcmVzcGVjdCB0byB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciBQeXRob24sIEkgdXNlIHRoZQotZm9sbG93aW5nIHNldHVwOgotCi0gICAgU2V0IFBZVEhPTkhPTUU9RTpcVGF1XFByb2plY3RzXFB5dGhvbjtEOlxETExzCi0gICAgU2V0IFBZVEhPTlBBVEg9LjtFOlxUYXVcUHJvamVjdHNcUHl0aG9uXExpYjsgXAotICAgICAgICAgICAgICAgICAgICAgRTpcVGF1XFByb2plY3RzXFB5dGhvblxMaWJccGxhdC13aW4KLQotVGhlIEVYRUNfUFJFRklYIChvcHRpb25hbCBzZWNvbmQgcGF0aHNwZWMgb24gUFlUSE9OSE9NRSkgaXMgd2hlcmUKLXlvdSBwdXQgYW55IFB5dGhvbiBleHRlbnNpb24gRExMcyB5b3UgbWF5IGNyZWF0ZS9vYnRhaW4uICBUaGVyZQotYXJlIG5vbmUgcHJvdmlkZWQgd2l0aCB0aGlzIHJlbGVhc2UuCi0KLQotLS0gQ29udGFjdCBJbmZvCi0KLUplZmYgUnVzaCBpcyBubyBsb25nZXIgc3VwcG9ydGluZyB0aGUgVkFDUFAgcG9ydCA6LSgKLQotSSBkb24ndCBoYXZlIHRoZSBWQUNQUCBjb21waWxlciwgc28gY2FuJ3QgcmVsaWFibHkgbWFpbnRhaW4gdGhpcyBwb3J0LiAKLQotQW55b25lIHdpdGggVkFDUFAgd2hvIGNhbiBjb250cmlidXRlIHBhdGNoZXMgdG8ga2VlcCB0aGlzIHBvcnQgYnVpbGRhYmxlCi1zaG91bGQgdXBsb2FkIHRoZW0gdG8gdGhlIFB5dGhvbiBQYXRjaCBNYW5hZ2VyIGF0IFNvdXJjZWZvcmdlIGFuZCAKLWFzc2lnbiB0aGVtIHRvIG1lIGZvciByZXZpZXcvY2hlY2tpbi4KLQotQW5kcmV3IE1hY0ludHlyZQotYWltYWNpbnR5cmUgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0Ci1BdWd1c3QgMTgsIDIwMDIuCmRpZmYgLS1naXQgYS9QQy9weWNvbmZpZy5oIGIvUEMvcHljb25maWcuaAppbmRleCBkNmRlNWYwLi4zNjVkZGJiIDEwMDY0NAotLS0gYS9QQy9weWNvbmZpZy5oCisrKyBiL1BDL3B5Y29uZmlnLmgKQEAgLTE1NiwxNSArMTU2LDkgQEAKICNlbmRpZiAvKiBNU19XSU42NCAqLwogCiAvKiBzZXQgdGhlIHZlcnNpb24gbWFjcm9zIGZvciB0aGUgd2luZG93cyBoZWFkZXJzICovCi0jaWZkZWYgTVNfV0lOWDY0Ci0vKiA2NCBiaXQgb25seSBydW5zIG9uIFhQIG9yIGdyZWF0ZXIgKi8KKy8qIFB5dGhvbiAzLjQrIHJlcXVpcmVzIFdpbmRvd3MgWFAgb3IgZ3JlYXRlciAqLwogI2RlZmluZSBQeV9XSU5WRVIgMHgwNTAxIC8qIF9XSU4zMl9XSU5OVF9XSU5YUCAqLwogI2RlZmluZSBQeV9OVERESSBOVERESV9XSU5YUAotI2Vsc2UKLS8qIFB5dGhvbiAyLjYrIHJlcXVpcmVzIFdpbmRvd3MgMjAwMCBvciBncmVhdGVyICovCi0jZGVmaW5lIFB5X1dJTlZFUiAweDA1MDAgLyogX1dJTjMyX1dJTk5UX1dJTjJLICovCi0jZGVmaW5lIFB5X05URERJIE5URERJX1dJTjJLU1A0Ci0jZW5kaWYKIAogLyogV2Ugb25seSBzZXQgdGhlc2UgdmFsdWVzIHdoZW4gYnVpbGRpbmcgUHl0aG9uIC0gd2UgZG9uJ3Qgd2FudCB0byBmb3JjZQogICAgdGhlc2UgdmFsdWVzIG9uIGV4dGVuc2lvbnMsIGFzIHRoYXQgd2lsbCBhZmZlY3QgdGhlIHByb3RvdHlwZXMgYW5kCkBAIC0xOTksOCArMTkzLDEwIEBACiAjZGVmaW5lIEhBVkVfU1NJWkVfVCAxCiAKICNpZiBkZWZpbmVkKE1TX1dJTjMyKSAmJiAhZGVmaW5lZChNU19XSU42NCkKLSNpZmRlZiBfTV9JWDg2CisjaWYgZGVmaW5lZChfTV9JWDg2KQogI2RlZmluZSBDT01QSUxFUiBfUHlfUEFTVEVfVkVSU0lPTigiMzIgYml0IChJbnRlbCkiKQorI2VsaWYgZGVmaW5lZChfTV9BUk0pCisjZGVmaW5lIENPTVBJTEVSIF9QeV9QQVNURV9WRVJTSU9OKCIzMiBiaXQgKEFSTSkiKQogI2Vsc2UKICNkZWZpbmUgQ09NUElMRVIgX1B5X1BBU1RFX1ZFUlNJT04oIjMyIGJpdCAoVW5rbm93bikiKQogI2VuZGlmCkBAIC0zMjQsMTEgKzMyMCwxMSBAQAogCQkJdGhlaXIgTWFrZWZpbGUgKG90aGVyIGNvbXBpbGVycyBhcmUgZ2VuZXJhbGx5CiAJCQl0YWtlbiBjYXJlIG9mIGJ5IGRpc3R1dGlscy4pICovCiAjCQkJaWYgZGVmaW5lZChfREVCVUcpCi0jCQkJCXByYWdtYSBjb21tZW50KGxpYiwicHl0aG9uMzNfZC5saWIiKQorIwkJCQlwcmFnbWEgY29tbWVudChsaWIsInB5dGhvbjM0X2QubGliIikKICMJCQllbGlmIGRlZmluZWQoUHlfTElNSVRFRF9BUEkpCiAjCQkJCXByYWdtYSBjb21tZW50KGxpYiwicHl0aG9uMy5saWIiKQogIwkJCWVsc2UKLSMJCQkJcHJhZ21hIGNvbW1lbnQobGliLCJweXRob24zMy5saWIiKQorIwkJCQlwcmFnbWEgY29tbWVudChsaWIsInB5dGhvbjM0LmxpYiIpCiAjCQkJZW5kaWYgLyogX0RFQlVHICovCiAjCQllbmRpZiAvKiBfTVNDX1ZFUiAqLwogIwllbmRpZiAvKiBQeV9CVUlMRF9DT1JFICovCkBAIC03MjcsNiArNzIzLDkgQEAKIC8qIFRoZSBzaXplIG9mIGB3Y2hhcl90JywgYXMgY29tcHV0ZWQgYnkgc2l6ZW9mLiAqLwogI2RlZmluZSBTSVpFT0ZfV0NIQVJfVCAyCiAKKy8qIFRoZSBzaXplIG9mIGBwaWRfdCcsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KKyNkZWZpbmUgU0laRU9GX1BJRF9UIFNJWkVPRl9JTlQKKwogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBkbCBsaWJyYXJ5ICgtbGRsKS4gICovCiAvKiAjdW5kZWYgSEFWRV9MSUJETCAqLwogCmRpZmYgLS1naXQgYS9QQy9weXRob24ubWsgYi9QQy9weXRob24ubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3NjUxMDYuLjAwMDAwMDAKLS0tIGEvUEMvcHl0aG9uLm1rCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1wcm9qZWN0IDogbjpccHl0aG9uXHB5dGhvbi0xLjUuMVxwY1x3YXRfb3MyXHB5dGhfb3MyLmV4ZSBuOlxweXRob25ccHl0aG9uLTEuJg0KLTUuMVxwY1x3YXRfZG9zXHB5dGhfZG9zLmV4ZSAuU1lNQk9MSUMNCi0NCi0haW5jbHVkZSBuOlxweXRob25ccHl0aG9uLTEuNS4xXHBjXHdhdF9vczJccHl0aF9vczIubWsxDQotIWluY2x1ZGUgbjpccHl0aG9uXHB5dGhvbi0xLjUuMVxwY1x3YXRfZG9zXHB5dGhfZG9zLm1rMQ0KZGlmZiAtLWdpdCBhL1BDL3B5dGhvbjMuZGVmIGIvUEMvcHl0aG9uMy5kZWYKaW5kZXggZDcyNjUyNS4uMGNmMGQ5NCAxMDA2NDQKLS0tIGEvUEMvcHl0aG9uMy5kZWYKKysrIGIvUEMvcHl0aG9uMy5kZWYKQEAgLTEsNjk5ICsxLDcwMCBAQAotOyBXaGVuIGNoYW5naW5nIHRoaXMgZmlsZSwgcnVuIHB5dGhvbjMzZ2VuLnB5Cis7IFdoZW4gY2hhbmdpbmcgdGhpcyBmaWxlLCBydW4gcHl0aG9uMzRnZW4ucHkKIExJQlJBUlkJInB5dGhvbjMiCiBFWFBPUlRTCi0gIFB5QXJnX1BhcnNlPXB5dGhvbjMzLlB5QXJnX1BhcnNlCi0gIFB5QXJnX1BhcnNlVHVwbGU9cHl0aG9uMzMuUHlBcmdfUGFyc2VUdXBsZQotICBQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHM9cHl0aG9uMzMuUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzCi0gIFB5QXJnX1VucGFja1R1cGxlPXB5dGhvbjMzLlB5QXJnX1VucGFja1R1cGxlCi0gIFB5QXJnX1ZhUGFyc2U9cHl0aG9uMzMuUHlBcmdfVmFQYXJzZQotICBQeUFyZ19WYVBhcnNlVHVwbGVBbmRLZXl3b3Jkcz1weXRob24zMy5QeUFyZ19WYVBhcnNlVHVwbGVBbmRLZXl3b3JkcwotICBQeUFyZ19WYWxpZGF0ZUtleXdvcmRBcmd1bWVudHM9cHl0aG9uMzMuUHlBcmdfVmFsaWRhdGVLZXl3b3JkQXJndW1lbnRzCi0gIFB5QmFzZU9iamVjdF9UeXBlPXB5dGhvbjMzLlB5QmFzZU9iamVjdF9UeXBlIERBVEEKLSAgUHlCb29sX0Zyb21Mb25nPXB5dGhvbjMzLlB5Qm9vbF9Gcm9tTG9uZwotICBQeUJvb2xfVHlwZT1weXRob24zMy5QeUJvb2xfVHlwZSBEQVRBCi0gIFB5Qnl0ZUFycmF5SXRlcl9UeXBlPXB5dGhvbjMzLlB5Qnl0ZUFycmF5SXRlcl9UeXBlIERBVEEKLSAgUHlCeXRlQXJyYXlfQXNTdHJpbmc9cHl0aG9uMzMuUHlCeXRlQXJyYXlfQXNTdHJpbmcKLSAgUHlCeXRlQXJyYXlfQ29uY2F0PXB5dGhvbjMzLlB5Qnl0ZUFycmF5X0NvbmNhdAotICBQeUJ5dGVBcnJheV9Gcm9tT2JqZWN0PXB5dGhvbjMzLlB5Qnl0ZUFycmF5X0Zyb21PYmplY3QKLSAgUHlCeXRlQXJyYXlfRnJvbVN0cmluZ0FuZFNpemU9cHl0aG9uMzMuUHlCeXRlQXJyYXlfRnJvbVN0cmluZ0FuZFNpemUKLSAgUHlCeXRlQXJyYXlfUmVzaXplPXB5dGhvbjMzLlB5Qnl0ZUFycmF5X1Jlc2l6ZQotICBQeUJ5dGVBcnJheV9TaXplPXB5dGhvbjMzLlB5Qnl0ZUFycmF5X1NpemUKLSAgUHlCeXRlQXJyYXlfVHlwZT1weXRob24zMy5QeUJ5dGVBcnJheV9UeXBlIERBVEEKLSAgUHlCeXRlc0l0ZXJfVHlwZT1weXRob24zMy5QeUJ5dGVzSXRlcl9UeXBlIERBVEEKLSAgUHlCeXRlc19Bc1N0cmluZz1weXRob24zMy5QeUJ5dGVzX0FzU3RyaW5nCi0gIFB5Qnl0ZXNfQXNTdHJpbmdBbmRTaXplPXB5dGhvbjMzLlB5Qnl0ZXNfQXNTdHJpbmdBbmRTaXplCi0gIFB5Qnl0ZXNfQ29uY2F0PXB5dGhvbjMzLlB5Qnl0ZXNfQ29uY2F0Ci0gIFB5Qnl0ZXNfQ29uY2F0QW5kRGVsPXB5dGhvbjMzLlB5Qnl0ZXNfQ29uY2F0QW5kRGVsCi0gIFB5Qnl0ZXNfRGVjb2RlRXNjYXBlPXB5dGhvbjMzLlB5Qnl0ZXNfRGVjb2RlRXNjYXBlCi0gIFB5Qnl0ZXNfRnJvbUZvcm1hdD1weXRob24zMy5QeUJ5dGVzX0Zyb21Gb3JtYXQKLSAgUHlCeXRlc19Gcm9tRm9ybWF0Vj1weXRob24zMy5QeUJ5dGVzX0Zyb21Gb3JtYXRWCi0gIFB5Qnl0ZXNfRnJvbU9iamVjdD1weXRob24zMy5QeUJ5dGVzX0Zyb21PYmplY3QKLSAgUHlCeXRlc19Gcm9tU3RyaW5nPXB5dGhvbjMzLlB5Qnl0ZXNfRnJvbVN0cmluZwotICBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplPXB5dGhvbjMzLlB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUKLSAgUHlCeXRlc19SZXByPXB5dGhvbjMzLlB5Qnl0ZXNfUmVwcgotICBQeUJ5dGVzX1NpemU9cHl0aG9uMzMuUHlCeXRlc19TaXplCi0gIFB5Qnl0ZXNfVHlwZT1weXRob24zMy5QeUJ5dGVzX1R5cGUgREFUQQotICBQeUNGdW5jdGlvbl9DYWxsPXB5dGhvbjMzLlB5Q0Z1bmN0aW9uX0NhbGwKLSAgUHlDRnVuY3Rpb25fQ2xlYXJGcmVlTGlzdD1weXRob24zMy5QeUNGdW5jdGlvbl9DbGVhckZyZWVMaXN0Ci0gIFB5Q0Z1bmN0aW9uX0dldEZsYWdzPXB5dGhvbjMzLlB5Q0Z1bmN0aW9uX0dldEZsYWdzCi0gIFB5Q0Z1bmN0aW9uX0dldEZ1bmN0aW9uPXB5dGhvbjMzLlB5Q0Z1bmN0aW9uX0dldEZ1bmN0aW9uCi0gIFB5Q0Z1bmN0aW9uX0dldFNlbGY9cHl0aG9uMzMuUHlDRnVuY3Rpb25fR2V0U2VsZgotICBQeUNGdW5jdGlvbl9OZXdFeD1weXRob24zMy5QeUNGdW5jdGlvbl9OZXdFeAotICBQeUNGdW5jdGlvbl9UeXBlPXB5dGhvbjMzLlB5Q0Z1bmN0aW9uX1R5cGUgREFUQQotICBQeUNhbGxJdGVyX05ldz1weXRob24zMy5QeUNhbGxJdGVyX05ldwotICBQeUNhbGxJdGVyX1R5cGU9cHl0aG9uMzMuUHlDYWxsSXRlcl9UeXBlIERBVEEKLSAgUHlDYWxsYWJsZV9DaGVjaz1weXRob24zMy5QeUNhbGxhYmxlX0NoZWNrCi0gIFB5Q2Fwc3VsZV9HZXRDb250ZXh0PXB5dGhvbjMzLlB5Q2Fwc3VsZV9HZXRDb250ZXh0Ci0gIFB5Q2Fwc3VsZV9HZXREZXN0cnVjdG9yPXB5dGhvbjMzLlB5Q2Fwc3VsZV9HZXREZXN0cnVjdG9yCi0gIFB5Q2Fwc3VsZV9HZXROYW1lPXB5dGhvbjMzLlB5Q2Fwc3VsZV9HZXROYW1lCi0gIFB5Q2Fwc3VsZV9HZXRQb2ludGVyPXB5dGhvbjMzLlB5Q2Fwc3VsZV9HZXRQb2ludGVyCi0gIFB5Q2Fwc3VsZV9JbXBvcnQ9cHl0aG9uMzMuUHlDYXBzdWxlX0ltcG9ydAotICBQeUNhcHN1bGVfSXNWYWxpZD1weXRob24zMy5QeUNhcHN1bGVfSXNWYWxpZAotICBQeUNhcHN1bGVfTmV3PXB5dGhvbjMzLlB5Q2Fwc3VsZV9OZXcKLSAgUHlDYXBzdWxlX1NldENvbnRleHQ9cHl0aG9uMzMuUHlDYXBzdWxlX1NldENvbnRleHQKLSAgUHlDYXBzdWxlX1NldERlc3RydWN0b3I9cHl0aG9uMzMuUHlDYXBzdWxlX1NldERlc3RydWN0b3IKLSAgUHlDYXBzdWxlX1NldE5hbWU9cHl0aG9uMzMuUHlDYXBzdWxlX1NldE5hbWUKLSAgUHlDYXBzdWxlX1NldFBvaW50ZXI9cHl0aG9uMzMuUHlDYXBzdWxlX1NldFBvaW50ZXIKLSAgUHlDYXBzdWxlX1R5cGU9cHl0aG9uMzMuUHlDYXBzdWxlX1R5cGUgREFUQQotICBQeUNsYXNzTWV0aG9kRGVzY3JfVHlwZT1weXRob24zMy5QeUNsYXNzTWV0aG9kRGVzY3JfVHlwZSBEQVRBCi0gIFB5Q29kZWNfQmFja3NsYXNoUmVwbGFjZUVycm9ycz1weXRob24zMy5QeUNvZGVjX0JhY2tzbGFzaFJlcGxhY2VFcnJvcnMKLSAgUHlDb2RlY19EZWNvZGU9cHl0aG9uMzMuUHlDb2RlY19EZWNvZGUKLSAgUHlDb2RlY19EZWNvZGVyPXB5dGhvbjMzLlB5Q29kZWNfRGVjb2RlcgotICBQeUNvZGVjX0VuY29kZT1weXRob24zMy5QeUNvZGVjX0VuY29kZQotICBQeUNvZGVjX0VuY29kZXI9cHl0aG9uMzMuUHlDb2RlY19FbmNvZGVyCi0gIFB5Q29kZWNfSWdub3JlRXJyb3JzPXB5dGhvbjMzLlB5Q29kZWNfSWdub3JlRXJyb3JzCi0gIFB5Q29kZWNfSW5jcmVtZW50YWxEZWNvZGVyPXB5dGhvbjMzLlB5Q29kZWNfSW5jcmVtZW50YWxEZWNvZGVyCi0gIFB5Q29kZWNfSW5jcmVtZW50YWxFbmNvZGVyPXB5dGhvbjMzLlB5Q29kZWNfSW5jcmVtZW50YWxFbmNvZGVyCi0gIFB5Q29kZWNfS25vd25FbmNvZGluZz1weXRob24zMy5QeUNvZGVjX0tub3duRW5jb2RpbmcKLSAgUHlDb2RlY19Mb29rdXBFcnJvcj1weXRob24zMy5QeUNvZGVjX0xvb2t1cEVycm9yCi0gIFB5Q29kZWNfUmVnaXN0ZXI9cHl0aG9uMzMuUHlDb2RlY19SZWdpc3RlcgotICBQeUNvZGVjX1JlZ2lzdGVyRXJyb3I9cHl0aG9uMzMuUHlDb2RlY19SZWdpc3RlckVycm9yCi0gIFB5Q29kZWNfUmVwbGFjZUVycm9ycz1weXRob24zMy5QeUNvZGVjX1JlcGxhY2VFcnJvcnMKLSAgUHlDb2RlY19TdHJlYW1SZWFkZXI9cHl0aG9uMzMuUHlDb2RlY19TdHJlYW1SZWFkZXIKLSAgUHlDb2RlY19TdHJlYW1Xcml0ZXI9cHl0aG9uMzMuUHlDb2RlY19TdHJlYW1Xcml0ZXIKLSAgUHlDb2RlY19TdHJpY3RFcnJvcnM9cHl0aG9uMzMuUHlDb2RlY19TdHJpY3RFcnJvcnMKLSAgUHlDb2RlY19YTUxDaGFyUmVmUmVwbGFjZUVycm9ycz1weXRob24zMy5QeUNvZGVjX1hNTENoYXJSZWZSZXBsYWNlRXJyb3JzCi0gIFB5Q29tcGxleF9Gcm9tRG91Ymxlcz1weXRob24zMy5QeUNvbXBsZXhfRnJvbURvdWJsZXMKLSAgUHlDb21wbGV4X0ltYWdBc0RvdWJsZT1weXRob24zMy5QeUNvbXBsZXhfSW1hZ0FzRG91YmxlCi0gIFB5Q29tcGxleF9SZWFsQXNEb3VibGU9cHl0aG9uMzMuUHlDb21wbGV4X1JlYWxBc0RvdWJsZQotICBQeUNvbXBsZXhfVHlwZT1weXRob24zMy5QeUNvbXBsZXhfVHlwZSBEQVRBCi0gIFB5RGVzY3JfTmV3Q2xhc3NNZXRob2Q9cHl0aG9uMzMuUHlEZXNjcl9OZXdDbGFzc01ldGhvZAotICBQeURlc2NyX05ld0dldFNldD1weXRob24zMy5QeURlc2NyX05ld0dldFNldAotICBQeURlc2NyX05ld01lbWJlcj1weXRob24zMy5QeURlc2NyX05ld01lbWJlcgotICBQeURlc2NyX05ld01ldGhvZD1weXRob24zMy5QeURlc2NyX05ld01ldGhvZAotICBQeURpY3RJdGVtc19UeXBlPXB5dGhvbjMzLlB5RGljdEl0ZW1zX1R5cGUgREFUQQotICBQeURpY3RJdGVySXRlbV9UeXBlPXB5dGhvbjMzLlB5RGljdEl0ZXJJdGVtX1R5cGUgREFUQQotICBQeURpY3RJdGVyS2V5X1R5cGU9cHl0aG9uMzMuUHlEaWN0SXRlcktleV9UeXBlIERBVEEKLSAgUHlEaWN0SXRlclZhbHVlX1R5cGU9cHl0aG9uMzMuUHlEaWN0SXRlclZhbHVlX1R5cGUgREFUQQotICBQeURpY3RLZXlzX1R5cGU9cHl0aG9uMzMuUHlEaWN0S2V5c19UeXBlIERBVEEKLSAgUHlEaWN0UHJveHlfTmV3PXB5dGhvbjMzLlB5RGljdFByb3h5X05ldwotICBQeURpY3RQcm94eV9UeXBlPXB5dGhvbjMzLlB5RGljdFByb3h5X1R5cGUgREFUQQotICBQeURpY3RWYWx1ZXNfVHlwZT1weXRob24zMy5QeURpY3RWYWx1ZXNfVHlwZSBEQVRBCi0gIFB5RGljdF9DbGVhcj1weXRob24zMy5QeURpY3RfQ2xlYXIKLSAgUHlEaWN0X0NvbnRhaW5zPXB5dGhvbjMzLlB5RGljdF9Db250YWlucwotICBQeURpY3RfQ29weT1weXRob24zMy5QeURpY3RfQ29weQotICBQeURpY3RfRGVsSXRlbT1weXRob24zMy5QeURpY3RfRGVsSXRlbQotICBQeURpY3RfRGVsSXRlbVN0cmluZz1weXRob24zMy5QeURpY3RfRGVsSXRlbVN0cmluZwotICBQeURpY3RfR2V0SXRlbT1weXRob24zMy5QeURpY3RfR2V0SXRlbQotICBQeURpY3RfR2V0SXRlbVN0cmluZz1weXRob24zMy5QeURpY3RfR2V0SXRlbVN0cmluZwotICBQeURpY3RfR2V0SXRlbVdpdGhFcnJvcj1weXRob24zMy5QeURpY3RfR2V0SXRlbVdpdGhFcnJvcgotICBQeURpY3RfSXRlbXM9cHl0aG9uMzMuUHlEaWN0X0l0ZW1zCi0gIFB5RGljdF9LZXlzPXB5dGhvbjMzLlB5RGljdF9LZXlzCi0gIFB5RGljdF9NZXJnZT1weXRob24zMy5QeURpY3RfTWVyZ2UKLSAgUHlEaWN0X01lcmdlRnJvbVNlcTI9cHl0aG9uMzMuUHlEaWN0X01lcmdlRnJvbVNlcTIKLSAgUHlEaWN0X05ldz1weXRob24zMy5QeURpY3RfTmV3Ci0gIFB5RGljdF9OZXh0PXB5dGhvbjMzLlB5RGljdF9OZXh0Ci0gIFB5RGljdF9TZXRJdGVtPXB5dGhvbjMzLlB5RGljdF9TZXRJdGVtCi0gIFB5RGljdF9TZXRJdGVtU3RyaW5nPXB5dGhvbjMzLlB5RGljdF9TZXRJdGVtU3RyaW5nCi0gIFB5RGljdF9TaXplPXB5dGhvbjMzLlB5RGljdF9TaXplCi0gIFB5RGljdF9UeXBlPXB5dGhvbjMzLlB5RGljdF9UeXBlIERBVEEKLSAgUHlEaWN0X1VwZGF0ZT1weXRob24zMy5QeURpY3RfVXBkYXRlCi0gIFB5RGljdF9WYWx1ZXM9cHl0aG9uMzMuUHlEaWN0X1ZhbHVlcwotICBQeUVsbGlwc2lzX1R5cGU9cHl0aG9uMzMuUHlFbGxpcHNpc19UeXBlIERBVEEKLSAgUHlFbnVtX1R5cGU9cHl0aG9uMzMuUHlFbnVtX1R5cGUgREFUQQotICBQeUVycl9CYWRBcmd1bWVudD1weXRob24zMy5QeUVycl9CYWRBcmd1bWVudAotICBQeUVycl9CYWRJbnRlcm5hbENhbGw9cHl0aG9uMzMuUHlFcnJfQmFkSW50ZXJuYWxDYWxsCi0gIFB5RXJyX0NoZWNrU2lnbmFscz1weXRob24zMy5QeUVycl9DaGVja1NpZ25hbHMKLSAgUHlFcnJfQ2xlYXI9cHl0aG9uMzMuUHlFcnJfQ2xlYXIKLSAgUHlFcnJfRGlzcGxheT1weXRob24zMy5QeUVycl9EaXNwbGF5Ci0gIFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXM9cHl0aG9uMzMuUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcwotICBQeUVycl9GZXRjaD1weXRob24zMy5QeUVycl9GZXRjaAotICBQeUVycl9Gb3JtYXQ9cHl0aG9uMzMuUHlFcnJfRm9ybWF0Ci0gIFB5RXJyX0dpdmVuRXhjZXB0aW9uTWF0Y2hlcz1weXRob24zMy5QeUVycl9HaXZlbkV4Y2VwdGlvbk1hdGNoZXMKLSAgUHlFcnJfTmV3RXhjZXB0aW9uPXB5dGhvbjMzLlB5RXJyX05ld0V4Y2VwdGlvbgotICBQeUVycl9OZXdFeGNlcHRpb25XaXRoRG9jPXB5dGhvbjMzLlB5RXJyX05ld0V4Y2VwdGlvbldpdGhEb2MKLSAgUHlFcnJfTm9NZW1vcnk9cHl0aG9uMzMuUHlFcnJfTm9NZW1vcnkKLSAgUHlFcnJfTm9ybWFsaXplRXhjZXB0aW9uPXB5dGhvbjMzLlB5RXJyX05vcm1hbGl6ZUV4Y2VwdGlvbgotICBQeUVycl9PY2N1cnJlZD1weXRob24zMy5QeUVycl9PY2N1cnJlZAotICBQeUVycl9QcmludD1weXRob24zMy5QeUVycl9QcmludAotICBQeUVycl9QcmludEV4PXB5dGhvbjMzLlB5RXJyX1ByaW50RXgKLSAgUHlFcnJfUHJvZ3JhbVRleHQ9cHl0aG9uMzMuUHlFcnJfUHJvZ3JhbVRleHQKLSAgUHlFcnJfUmVzdG9yZT1weXRob24zMy5QeUVycl9SZXN0b3JlCi0gIFB5RXJyX1NldEZyb21FcnJubz1weXRob24zMy5QeUVycl9TZXRGcm9tRXJybm8KLSAgUHlFcnJfU2V0RnJvbUVycm5vV2l0aEZpbGVuYW1lPXB5dGhvbjMzLlB5RXJyX1NldEZyb21FcnJub1dpdGhGaWxlbmFtZQotICBQeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWVPYmplY3Q9cHl0aG9uMzMuUHlFcnJfU2V0RnJvbUVycm5vV2l0aEZpbGVuYW1lT2JqZWN0Ci0gIFB5RXJyX1NldEludGVycnVwdD1weXRob24zMy5QeUVycl9TZXRJbnRlcnJ1cHQKLSAgUHlFcnJfU2V0Tm9uZT1weXRob24zMy5QeUVycl9TZXROb25lCi0gIFB5RXJyX1NldE9iamVjdD1weXRob24zMy5QeUVycl9TZXRPYmplY3QKLSAgUHlFcnJfU2V0U3RyaW5nPXB5dGhvbjMzLlB5RXJyX1NldFN0cmluZwotICBQeUVycl9TeW50YXhMb2NhdGlvbj1weXRob24zMy5QeUVycl9TeW50YXhMb2NhdGlvbgotICBQeUVycl9XYXJuRXg9cHl0aG9uMzMuUHlFcnJfV2FybkV4Ci0gIFB5RXJyX1dhcm5FeHBsaWNpdD1weXRob24zMy5QeUVycl9XYXJuRXhwbGljaXQKLSAgUHlFcnJfV2FybkZvcm1hdD1weXRob24zMy5QeUVycl9XYXJuRm9ybWF0Ci0gIFB5RXJyX1dyaXRlVW5yYWlzYWJsZT1weXRob24zMy5QeUVycl9Xcml0ZVVucmFpc2FibGUKLSAgUHlFdmFsX0FjcXVpcmVMb2NrPXB5dGhvbjMzLlB5RXZhbF9BY3F1aXJlTG9jawotICBQeUV2YWxfQWNxdWlyZVRocmVhZD1weXRob24zMy5QeUV2YWxfQWNxdWlyZVRocmVhZAotICBQeUV2YWxfQ2FsbEZ1bmN0aW9uPXB5dGhvbjMzLlB5RXZhbF9DYWxsRnVuY3Rpb24KLSAgUHlFdmFsX0NhbGxNZXRob2Q9cHl0aG9uMzMuUHlFdmFsX0NhbGxNZXRob2QKLSAgUHlFdmFsX0NhbGxPYmplY3RXaXRoS2V5d29yZHM9cHl0aG9uMzMuUHlFdmFsX0NhbGxPYmplY3RXaXRoS2V5d29yZHMKLSAgUHlFdmFsX0V2YWxDb2RlPXB5dGhvbjMzLlB5RXZhbF9FdmFsQ29kZQotICBQeUV2YWxfRXZhbENvZGVFeD1weXRob24zMy5QeUV2YWxfRXZhbENvZGVFeAotICBQeUV2YWxfRXZhbEZyYW1lPXB5dGhvbjMzLlB5RXZhbF9FdmFsRnJhbWUKLSAgUHlFdmFsX0V2YWxGcmFtZUV4PXB5dGhvbjMzLlB5RXZhbF9FdmFsRnJhbWVFeAotICBQeUV2YWxfR2V0QnVpbHRpbnM9cHl0aG9uMzMuUHlFdmFsX0dldEJ1aWx0aW5zCi0gIFB5RXZhbF9HZXRDYWxsU3RhdHM9cHl0aG9uMzMuUHlFdmFsX0dldENhbGxTdGF0cwotICBQeUV2YWxfR2V0RnJhbWU9cHl0aG9uMzMuUHlFdmFsX0dldEZyYW1lCi0gIFB5RXZhbF9HZXRGdW5jRGVzYz1weXRob24zMy5QeUV2YWxfR2V0RnVuY0Rlc2MKLSAgUHlFdmFsX0dldEZ1bmNOYW1lPXB5dGhvbjMzLlB5RXZhbF9HZXRGdW5jTmFtZQotICBQeUV2YWxfR2V0R2xvYmFscz1weXRob24zMy5QeUV2YWxfR2V0R2xvYmFscwotICBQeUV2YWxfR2V0TG9jYWxzPXB5dGhvbjMzLlB5RXZhbF9HZXRMb2NhbHMKLSAgUHlFdmFsX0luaXRUaHJlYWRzPXB5dGhvbjMzLlB5RXZhbF9Jbml0VGhyZWFkcwotICBQeUV2YWxfUmVJbml0VGhyZWFkcz1weXRob24zMy5QeUV2YWxfUmVJbml0VGhyZWFkcwotICBQeUV2YWxfUmVsZWFzZUxvY2s9cHl0aG9uMzMuUHlFdmFsX1JlbGVhc2VMb2NrCi0gIFB5RXZhbF9SZWxlYXNlVGhyZWFkPXB5dGhvbjMzLlB5RXZhbF9SZWxlYXNlVGhyZWFkCi0gIFB5RXZhbF9SZXN0b3JlVGhyZWFkPXB5dGhvbjMzLlB5RXZhbF9SZXN0b3JlVGhyZWFkCi0gIFB5RXZhbF9TYXZlVGhyZWFkPXB5dGhvbjMzLlB5RXZhbF9TYXZlVGhyZWFkCi0gIFB5RXZhbF9UaHJlYWRzSW5pdGlhbGl6ZWQ9cHl0aG9uMzMuUHlFdmFsX1RocmVhZHNJbml0aWFsaXplZAotICBQeUV4Y19Bcml0aG1ldGljRXJyb3I9cHl0aG9uMzMuUHlFeGNfQXJpdGhtZXRpY0Vycm9yIERBVEEKLSAgUHlFeGNfQXNzZXJ0aW9uRXJyb3I9cHl0aG9uMzMuUHlFeGNfQXNzZXJ0aW9uRXJyb3IgREFUQQotICBQeUV4Y19BdHRyaWJ1dGVFcnJvcj1weXRob24zMy5QeUV4Y19BdHRyaWJ1dGVFcnJvciBEQVRBCi0gIFB5RXhjX0Jhc2VFeGNlcHRpb249cHl0aG9uMzMuUHlFeGNfQmFzZUV4Y2VwdGlvbiBEQVRBCi0gIFB5RXhjX0J1ZmZlckVycm9yPXB5dGhvbjMzLlB5RXhjX0J1ZmZlckVycm9yIERBVEEKLSAgUHlFeGNfQnl0ZXNXYXJuaW5nPXB5dGhvbjMzLlB5RXhjX0J5dGVzV2FybmluZyBEQVRBCi0gIFB5RXhjX0RlcHJlY2F0aW9uV2FybmluZz1weXRob24zMy5QeUV4Y19EZXByZWNhdGlvbldhcm5pbmcgREFUQQotICBQeUV4Y19FT0ZFcnJvcj1weXRob24zMy5QeUV4Y19FT0ZFcnJvciBEQVRBCi0gIFB5RXhjX0Vudmlyb25tZW50RXJyb3I9cHl0aG9uMzMuUHlFeGNfRW52aXJvbm1lbnRFcnJvciBEQVRBCi0gIFB5RXhjX0V4Y2VwdGlvbj1weXRob24zMy5QeUV4Y19FeGNlcHRpb24gREFUQQotICBQeUV4Y19GbG9hdGluZ1BvaW50RXJyb3I9cHl0aG9uMzMuUHlFeGNfRmxvYXRpbmdQb2ludEVycm9yIERBVEEKLSAgUHlFeGNfRnV0dXJlV2FybmluZz1weXRob24zMy5QeUV4Y19GdXR1cmVXYXJuaW5nIERBVEEKLSAgUHlFeGNfR2VuZXJhdG9yRXhpdD1weXRob24zMy5QeUV4Y19HZW5lcmF0b3JFeGl0IERBVEEKLSAgUHlFeGNfSU9FcnJvcj1weXRob24zMy5QeUV4Y19JT0Vycm9yIERBVEEKLSAgUHlFeGNfSW1wb3J0RXJyb3I9cHl0aG9uMzMuUHlFeGNfSW1wb3J0RXJyb3IgREFUQQotICBQeUV4Y19JbXBvcnRXYXJuaW5nPXB5dGhvbjMzLlB5RXhjX0ltcG9ydFdhcm5pbmcgREFUQQotICBQeUV4Y19JbmRlbnRhdGlvbkVycm9yPXB5dGhvbjMzLlB5RXhjX0luZGVudGF0aW9uRXJyb3IgREFUQQotICBQeUV4Y19JbmRleEVycm9yPXB5dGhvbjMzLlB5RXhjX0luZGV4RXJyb3IgREFUQQotICBQeUV4Y19LZXlFcnJvcj1weXRob24zMy5QeUV4Y19LZXlFcnJvciBEQVRBCi0gIFB5RXhjX0tleWJvYXJkSW50ZXJydXB0PXB5dGhvbjMzLlB5RXhjX0tleWJvYXJkSW50ZXJydXB0IERBVEEKLSAgUHlFeGNfTG9va3VwRXJyb3I9cHl0aG9uMzMuUHlFeGNfTG9va3VwRXJyb3IgREFUQQotICBQeUV4Y19NZW1vcnlFcnJvcj1weXRob24zMy5QeUV4Y19NZW1vcnlFcnJvciBEQVRBCi0gIFB5RXhjX01lbW9yeUVycm9ySW5zdD1weXRob24zMy5QeUV4Y19NZW1vcnlFcnJvckluc3QgREFUQQotICBQeUV4Y19OYW1lRXJyb3I9cHl0aG9uMzMuUHlFeGNfTmFtZUVycm9yIERBVEEKLSAgUHlFeGNfTm90SW1wbGVtZW50ZWRFcnJvcj1weXRob24zMy5QeUV4Y19Ob3RJbXBsZW1lbnRlZEVycm9yIERBVEEKLSAgUHlFeGNfT1NFcnJvcj1weXRob24zMy5QeUV4Y19PU0Vycm9yIERBVEEKLSAgUHlFeGNfT3ZlcmZsb3dFcnJvcj1weXRob24zMy5QeUV4Y19PdmVyZmxvd0Vycm9yIERBVEEKLSAgUHlFeGNfUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZz1weXRob24zMy5QeUV4Y19QZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nIERBVEEKLSAgUHlFeGNfUmVjdXJzaW9uRXJyb3JJbnN0PXB5dGhvbjMzLlB5RXhjX1JlY3Vyc2lvbkVycm9ySW5zdCBEQVRBCi0gIFB5RXhjX1JlZmVyZW5jZUVycm9yPXB5dGhvbjMzLlB5RXhjX1JlZmVyZW5jZUVycm9yIERBVEEKLSAgUHlFeGNfUnVudGltZUVycm9yPXB5dGhvbjMzLlB5RXhjX1J1bnRpbWVFcnJvciBEQVRBCi0gIFB5RXhjX1J1bnRpbWVXYXJuaW5nPXB5dGhvbjMzLlB5RXhjX1J1bnRpbWVXYXJuaW5nIERBVEEKLSAgUHlFeGNfU3RvcEl0ZXJhdGlvbj1weXRob24zMy5QeUV4Y19TdG9wSXRlcmF0aW9uIERBVEEKLSAgUHlFeGNfU3ludGF4RXJyb3I9cHl0aG9uMzMuUHlFeGNfU3ludGF4RXJyb3IgREFUQQotICBQeUV4Y19TeW50YXhXYXJuaW5nPXB5dGhvbjMzLlB5RXhjX1N5bnRheFdhcm5pbmcgREFUQQotICBQeUV4Y19TeXN0ZW1FcnJvcj1weXRob24zMy5QeUV4Y19TeXN0ZW1FcnJvciBEQVRBCi0gIFB5RXhjX1N5c3RlbUV4aXQ9cHl0aG9uMzMuUHlFeGNfU3lzdGVtRXhpdCBEQVRBCi0gIFB5RXhjX1RhYkVycm9yPXB5dGhvbjMzLlB5RXhjX1RhYkVycm9yIERBVEEKLSAgUHlFeGNfVHlwZUVycm9yPXB5dGhvbjMzLlB5RXhjX1R5cGVFcnJvciBEQVRBCi0gIFB5RXhjX1VuYm91bmRMb2NhbEVycm9yPXB5dGhvbjMzLlB5RXhjX1VuYm91bmRMb2NhbEVycm9yIERBVEEKLSAgUHlFeGNfVW5pY29kZURlY29kZUVycm9yPXB5dGhvbjMzLlB5RXhjX1VuaWNvZGVEZWNvZGVFcnJvciBEQVRBCi0gIFB5RXhjX1VuaWNvZGVFbmNvZGVFcnJvcj1weXRob24zMy5QeUV4Y19Vbmljb2RlRW5jb2RlRXJyb3IgREFUQQotICBQeUV4Y19Vbmljb2RlRXJyb3I9cHl0aG9uMzMuUHlFeGNfVW5pY29kZUVycm9yIERBVEEKLSAgUHlFeGNfVW5pY29kZVRyYW5zbGF0ZUVycm9yPXB5dGhvbjMzLlB5RXhjX1VuaWNvZGVUcmFuc2xhdGVFcnJvciBEQVRBCi0gIFB5RXhjX1VuaWNvZGVXYXJuaW5nPXB5dGhvbjMzLlB5RXhjX1VuaWNvZGVXYXJuaW5nIERBVEEKLSAgUHlFeGNfVXNlcldhcm5pbmc9cHl0aG9uMzMuUHlFeGNfVXNlcldhcm5pbmcgREFUQQotICBQeUV4Y19WYWx1ZUVycm9yPXB5dGhvbjMzLlB5RXhjX1ZhbHVlRXJyb3IgREFUQQotICBQeUV4Y19XYXJuaW5nPXB5dGhvbjMzLlB5RXhjX1dhcm5pbmcgREFUQQotICBQeUV4Y19aZXJvRGl2aXNpb25FcnJvcj1weXRob24zMy5QeUV4Y19aZXJvRGl2aXNpb25FcnJvciBEQVRBCi0gIFB5RXhjZXB0aW9uX0dldENhdXNlPXB5dGhvbjMzLlB5RXhjZXB0aW9uX0dldENhdXNlCi0gIFB5RXhjZXB0aW9uX0dldENvbnRleHQ9cHl0aG9uMzMuUHlFeGNlcHRpb25fR2V0Q29udGV4dAotICBQeUV4Y2VwdGlvbl9HZXRUcmFjZWJhY2s9cHl0aG9uMzMuUHlFeGNlcHRpb25fR2V0VHJhY2ViYWNrCi0gIFB5RXhjZXB0aW9uX1NldENhdXNlPXB5dGhvbjMzLlB5RXhjZXB0aW9uX1NldENhdXNlCi0gIFB5RXhjZXB0aW9uX1NldENvbnRleHQ9cHl0aG9uMzMuUHlFeGNlcHRpb25fU2V0Q29udGV4dAotICBQeUV4Y2VwdGlvbl9TZXRUcmFjZWJhY2s9cHl0aG9uMzMuUHlFeGNlcHRpb25fU2V0VHJhY2ViYWNrCi0gIFB5RmlsZV9Gcm9tRmQ9cHl0aG9uMzMuUHlGaWxlX0Zyb21GZAotICBQeUZpbGVfR2V0TGluZT1weXRob24zMy5QeUZpbGVfR2V0TGluZQotICBQeUZpbGVfV3JpdGVPYmplY3Q9cHl0aG9uMzMuUHlGaWxlX1dyaXRlT2JqZWN0Ci0gIFB5RmlsZV9Xcml0ZVN0cmluZz1weXRob24zMy5QeUZpbGVfV3JpdGVTdHJpbmcKLSAgUHlGaWx0ZXJfVHlwZT1weXRob24zMy5QeUZpbHRlcl9UeXBlIERBVEEKLSAgUHlGbG9hdF9Bc0RvdWJsZT1weXRob24zMy5QeUZsb2F0X0FzRG91YmxlCi0gIFB5RmxvYXRfRnJvbURvdWJsZT1weXRob24zMy5QeUZsb2F0X0Zyb21Eb3VibGUKLSAgUHlGbG9hdF9Gcm9tU3RyaW5nPXB5dGhvbjMzLlB5RmxvYXRfRnJvbVN0cmluZwotICBQeUZsb2F0X0dldEluZm89cHl0aG9uMzMuUHlGbG9hdF9HZXRJbmZvCi0gIFB5RmxvYXRfR2V0TWF4PXB5dGhvbjMzLlB5RmxvYXRfR2V0TWF4Ci0gIFB5RmxvYXRfR2V0TWluPXB5dGhvbjMzLlB5RmxvYXRfR2V0TWluCi0gIFB5RmxvYXRfVHlwZT1weXRob24zMy5QeUZsb2F0X1R5cGUgREFUQQotICBQeUZyb3plblNldF9OZXc9cHl0aG9uMzMuUHlGcm96ZW5TZXRfTmV3Ci0gIFB5RnJvemVuU2V0X1R5cGU9cHl0aG9uMzMuUHlGcm96ZW5TZXRfVHlwZSBEQVRBCi0gIFB5R0NfQ29sbGVjdD1weXRob24zMy5QeUdDX0NvbGxlY3QKLSAgUHlHSUxTdGF0ZV9FbnN1cmU9cHl0aG9uMzMuUHlHSUxTdGF0ZV9FbnN1cmUKLSAgUHlHSUxTdGF0ZV9HZXRUaGlzVGhyZWFkU3RhdGU9cHl0aG9uMzMuUHlHSUxTdGF0ZV9HZXRUaGlzVGhyZWFkU3RhdGUKLSAgUHlHSUxTdGF0ZV9SZWxlYXNlPXB5dGhvbjMzLlB5R0lMU3RhdGVfUmVsZWFzZQotICBQeUdldFNldERlc2NyX1R5cGU9cHl0aG9uMzMuUHlHZXRTZXREZXNjcl9UeXBlIERBVEEKLSAgUHlJbXBvcnRfQWRkTW9kdWxlPXB5dGhvbjMzLlB5SW1wb3J0X0FkZE1vZHVsZQotICBQeUltcG9ydF9BcHBlbmRJbml0dGFiPXB5dGhvbjMzLlB5SW1wb3J0X0FwcGVuZEluaXR0YWIKLSAgUHlJbXBvcnRfQ2xlYW51cD1weXRob24zMy5QeUltcG9ydF9DbGVhbnVwCi0gIFB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlPXB5dGhvbjMzLlB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlCi0gIFB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlRXg9cHl0aG9uMzMuUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGVFeAotICBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZVdpdGhQYXRobmFtZXM9cHl0aG9uMzMuUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGVXaXRoUGF0aG5hbWVzCi0gIFB5SW1wb3J0X0dldEltcG9ydGVyPXB5dGhvbjMzLlB5SW1wb3J0X0dldEltcG9ydGVyCi0gIFB5SW1wb3J0X0dldE1hZ2ljTnVtYmVyPXB5dGhvbjMzLlB5SW1wb3J0X0dldE1hZ2ljTnVtYmVyCi0gIFB5SW1wb3J0X0dldE1hZ2ljVGFnPXB5dGhvbjMzLlB5SW1wb3J0X0dldE1hZ2ljVGFnCi0gIFB5SW1wb3J0X0dldE1vZHVsZURpY3Q9cHl0aG9uMzMuUHlJbXBvcnRfR2V0TW9kdWxlRGljdAotICBQeUltcG9ydF9JbXBvcnQ9cHl0aG9uMzMuUHlJbXBvcnRfSW1wb3J0Ci0gIFB5SW1wb3J0X0ltcG9ydEZyb3plbk1vZHVsZT1weXRob24zMy5QeUltcG9ydF9JbXBvcnRGcm96ZW5Nb2R1bGUKLSAgUHlJbXBvcnRfSW1wb3J0TW9kdWxlPXB5dGhvbjMzLlB5SW1wb3J0X0ltcG9ydE1vZHVsZQotICBQeUltcG9ydF9JbXBvcnRNb2R1bGVMZXZlbD1weXRob24zMy5QeUltcG9ydF9JbXBvcnRNb2R1bGVMZXZlbAotICBQeUltcG9ydF9JbXBvcnRNb2R1bGVOb0Jsb2NrPXB5dGhvbjMzLlB5SW1wb3J0X0ltcG9ydE1vZHVsZU5vQmxvY2sKLSAgUHlJbXBvcnRfUmVsb2FkTW9kdWxlPXB5dGhvbjMzLlB5SW1wb3J0X1JlbG9hZE1vZHVsZQotICBQeUludGVycHJldGVyU3RhdGVfQ2xlYXI9cHl0aG9uMzMuUHlJbnRlcnByZXRlclN0YXRlX0NsZWFyCi0gIFB5SW50ZXJwcmV0ZXJTdGF0ZV9EZWxldGU9cHl0aG9uMzMuUHlJbnRlcnByZXRlclN0YXRlX0RlbGV0ZQotICBQeUludGVycHJldGVyU3RhdGVfTmV3PXB5dGhvbjMzLlB5SW50ZXJwcmV0ZXJTdGF0ZV9OZXcKLSAgUHlJdGVyX05leHQ9cHl0aG9uMzMuUHlJdGVyX05leHQKLSAgUHlMaXN0SXRlcl9UeXBlPXB5dGhvbjMzLlB5TGlzdEl0ZXJfVHlwZSBEQVRBCi0gIFB5TGlzdFJldkl0ZXJfVHlwZT1weXRob24zMy5QeUxpc3RSZXZJdGVyX1R5cGUgREFUQQotICBQeUxpc3RfQXBwZW5kPXB5dGhvbjMzLlB5TGlzdF9BcHBlbmQKLSAgUHlMaXN0X0FzVHVwbGU9cHl0aG9uMzMuUHlMaXN0X0FzVHVwbGUKLSAgUHlMaXN0X0dldEl0ZW09cHl0aG9uMzMuUHlMaXN0X0dldEl0ZW0KLSAgUHlMaXN0X0dldFNsaWNlPXB5dGhvbjMzLlB5TGlzdF9HZXRTbGljZQotICBQeUxpc3RfSW5zZXJ0PXB5dGhvbjMzLlB5TGlzdF9JbnNlcnQKLSAgUHlMaXN0X05ldz1weXRob24zMy5QeUxpc3RfTmV3Ci0gIFB5TGlzdF9SZXZlcnNlPXB5dGhvbjMzLlB5TGlzdF9SZXZlcnNlCi0gIFB5TGlzdF9TZXRJdGVtPXB5dGhvbjMzLlB5TGlzdF9TZXRJdGVtCi0gIFB5TGlzdF9TZXRTbGljZT1weXRob24zMy5QeUxpc3RfU2V0U2xpY2UKLSAgUHlMaXN0X1NpemU9cHl0aG9uMzMuUHlMaXN0X1NpemUKLSAgUHlMaXN0X1NvcnQ9cHl0aG9uMzMuUHlMaXN0X1NvcnQKLSAgUHlMaXN0X1R5cGU9cHl0aG9uMzMuUHlMaXN0X1R5cGUgREFUQQotICBQeUxvbmdSYW5nZUl0ZXJfVHlwZT1weXRob24zMy5QeUxvbmdSYW5nZUl0ZXJfVHlwZSBEQVRBCi0gIFB5TG9uZ19Bc0RvdWJsZT1weXRob24zMy5QeUxvbmdfQXNEb3VibGUKLSAgUHlMb25nX0FzTG9uZz1weXRob24zMy5QeUxvbmdfQXNMb25nCi0gIFB5TG9uZ19Bc0xvbmdBbmRPdmVyZmxvdz1weXRob24zMy5QeUxvbmdfQXNMb25nQW5kT3ZlcmZsb3cKLSAgUHlMb25nX0FzTG9uZ0xvbmc9cHl0aG9uMzMuUHlMb25nX0FzTG9uZ0xvbmcKLSAgUHlMb25nX0FzTG9uZ0xvbmdBbmRPdmVyZmxvdz1weXRob24zMy5QeUxvbmdfQXNMb25nTG9uZ0FuZE92ZXJmbG93Ci0gIFB5TG9uZ19Bc1NpemVfdD1weXRob24zMy5QeUxvbmdfQXNTaXplX3QKLSAgUHlMb25nX0FzU3NpemVfdD1weXRob24zMy5QeUxvbmdfQXNTc2l6ZV90Ci0gIFB5TG9uZ19Bc1Vuc2lnbmVkTG9uZz1weXRob24zMy5QeUxvbmdfQXNVbnNpZ25lZExvbmcKLSAgUHlMb25nX0FzVW5zaWduZWRMb25nTG9uZz1weXRob24zMy5QeUxvbmdfQXNVbnNpZ25lZExvbmdMb25nCi0gIFB5TG9uZ19Bc1Vuc2lnbmVkTG9uZ0xvbmdNYXNrPXB5dGhvbjMzLlB5TG9uZ19Bc1Vuc2lnbmVkTG9uZ0xvbmdNYXNrCi0gIFB5TG9uZ19Bc1Vuc2lnbmVkTG9uZ01hc2s9cHl0aG9uMzMuUHlMb25nX0FzVW5zaWduZWRMb25nTWFzawotICBQeUxvbmdfQXNWb2lkUHRyPXB5dGhvbjMzLlB5TG9uZ19Bc1ZvaWRQdHIKLSAgUHlMb25nX0Zyb21Eb3VibGU9cHl0aG9uMzMuUHlMb25nX0Zyb21Eb3VibGUKLSAgUHlMb25nX0Zyb21Mb25nPXB5dGhvbjMzLlB5TG9uZ19Gcm9tTG9uZwotICBQeUxvbmdfRnJvbUxvbmdMb25nPXB5dGhvbjMzLlB5TG9uZ19Gcm9tTG9uZ0xvbmcKLSAgUHlMb25nX0Zyb21TaXplX3Q9cHl0aG9uMzMuUHlMb25nX0Zyb21TaXplX3QKLSAgUHlMb25nX0Zyb21Tc2l6ZV90PXB5dGhvbjMzLlB5TG9uZ19Gcm9tU3NpemVfdAotICBQeUxvbmdfRnJvbVN0cmluZz1weXRob24zMy5QeUxvbmdfRnJvbVN0cmluZwotICBQeUxvbmdfRnJvbVVuc2lnbmVkTG9uZz1weXRob24zMy5QeUxvbmdfRnJvbVVuc2lnbmVkTG9uZwotICBQeUxvbmdfRnJvbVVuc2lnbmVkTG9uZ0xvbmc9cHl0aG9uMzMuUHlMb25nX0Zyb21VbnNpZ25lZExvbmdMb25nCi0gIFB5TG9uZ19Gcm9tVm9pZFB0cj1weXRob24zMy5QeUxvbmdfRnJvbVZvaWRQdHIKLSAgUHlMb25nX0dldEluZm89cHl0aG9uMzMuUHlMb25nX0dldEluZm8KLSAgUHlMb25nX1R5cGU9cHl0aG9uMzMuUHlMb25nX1R5cGUgREFUQQotICBQeU1hcF9UeXBlPXB5dGhvbjMzLlB5TWFwX1R5cGUgREFUQQotICBQeU1hcHBpbmdfQ2hlY2s9cHl0aG9uMzMuUHlNYXBwaW5nX0NoZWNrCi0gIFB5TWFwcGluZ19HZXRJdGVtU3RyaW5nPXB5dGhvbjMzLlB5TWFwcGluZ19HZXRJdGVtU3RyaW5nCi0gIFB5TWFwcGluZ19IYXNLZXk9cHl0aG9uMzMuUHlNYXBwaW5nX0hhc0tleQotICBQeU1hcHBpbmdfSGFzS2V5U3RyaW5nPXB5dGhvbjMzLlB5TWFwcGluZ19IYXNLZXlTdHJpbmcKLSAgUHlNYXBwaW5nX0l0ZW1zPXB5dGhvbjMzLlB5TWFwcGluZ19JdGVtcwotICBQeU1hcHBpbmdfS2V5cz1weXRob24zMy5QeU1hcHBpbmdfS2V5cwotICBQeU1hcHBpbmdfTGVuZ3RoPXB5dGhvbjMzLlB5TWFwcGluZ19MZW5ndGgKLSAgUHlNYXBwaW5nX1NldEl0ZW1TdHJpbmc9cHl0aG9uMzMuUHlNYXBwaW5nX1NldEl0ZW1TdHJpbmcKLSAgUHlNYXBwaW5nX1NpemU9cHl0aG9uMzMuUHlNYXBwaW5nX1NpemUKLSAgUHlNYXBwaW5nX1ZhbHVlcz1weXRob24zMy5QeU1hcHBpbmdfVmFsdWVzCi0gIFB5TWVtX0ZyZWU9cHl0aG9uMzMuUHlNZW1fRnJlZQotICBQeU1lbV9NYWxsb2M9cHl0aG9uMzMuUHlNZW1fTWFsbG9jCi0gIFB5TWVtX1JlYWxsb2M9cHl0aG9uMzMuUHlNZW1fUmVhbGxvYwotICBQeU1lbWJlckRlc2NyX1R5cGU9cHl0aG9uMzMuUHlNZW1iZXJEZXNjcl9UeXBlIERBVEEKLSAgUHlNZW1vcnlWaWV3X0Zyb21PYmplY3Q9cHl0aG9uMzMuUHlNZW1vcnlWaWV3X0Zyb21PYmplY3QKLSAgUHlNZW1vcnlWaWV3X0dldENvbnRpZ3VvdXM9cHl0aG9uMzMuUHlNZW1vcnlWaWV3X0dldENvbnRpZ3VvdXMKLSAgUHlNZW1vcnlWaWV3X1R5cGU9cHl0aG9uMzMuUHlNZW1vcnlWaWV3X1R5cGUgREFUQQotICBQeU1ldGhvZERlc2NyX1R5cGU9cHl0aG9uMzMuUHlNZXRob2REZXNjcl9UeXBlIERBVEEKLSAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQ9cHl0aG9uMzMuUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQKLSAgUHlNb2R1bGVfQWRkT2JqZWN0PXB5dGhvbjMzLlB5TW9kdWxlX0FkZE9iamVjdAotICBQeU1vZHVsZV9BZGRTdHJpbmdDb25zdGFudD1weXRob24zMy5QeU1vZHVsZV9BZGRTdHJpbmdDb25zdGFudAotICBQeU1vZHVsZV9DcmVhdGUyPXB5dGhvbjMzLlB5TW9kdWxlX0NyZWF0ZTIKLSAgUHlNb2R1bGVfR2V0RGVmPXB5dGhvbjMzLlB5TW9kdWxlX0dldERlZgotICBQeU1vZHVsZV9HZXREaWN0PXB5dGhvbjMzLlB5TW9kdWxlX0dldERpY3QKLSAgUHlNb2R1bGVfR2V0RmlsZW5hbWU9cHl0aG9uMzMuUHlNb2R1bGVfR2V0RmlsZW5hbWUKLSAgUHlNb2R1bGVfR2V0RmlsZW5hbWVPYmplY3Q9cHl0aG9uMzMuUHlNb2R1bGVfR2V0RmlsZW5hbWVPYmplY3QKLSAgUHlNb2R1bGVfR2V0TmFtZT1weXRob24zMy5QeU1vZHVsZV9HZXROYW1lCi0gIFB5TW9kdWxlX0dldFN0YXRlPXB5dGhvbjMzLlB5TW9kdWxlX0dldFN0YXRlCi0gIFB5TW9kdWxlX05ldz1weXRob24zMy5QeU1vZHVsZV9OZXcKLSAgUHlNb2R1bGVfVHlwZT1weXRob24zMy5QeU1vZHVsZV9UeXBlIERBVEEKLSAgUHlOdWxsSW1wb3J0ZXJfVHlwZT1weXRob24zMy5QeU51bGxJbXBvcnRlcl9UeXBlIERBVEEKLSAgUHlOdW1iZXJfQWJzb2x1dGU9cHl0aG9uMzMuUHlOdW1iZXJfQWJzb2x1dGUKLSAgUHlOdW1iZXJfQWRkPXB5dGhvbjMzLlB5TnVtYmVyX0FkZAotICBQeU51bWJlcl9BbmQ9cHl0aG9uMzMuUHlOdW1iZXJfQW5kCi0gIFB5TnVtYmVyX0FzU3NpemVfdD1weXRob24zMy5QeU51bWJlcl9Bc1NzaXplX3QKLSAgUHlOdW1iZXJfQ2hlY2s9cHl0aG9uMzMuUHlOdW1iZXJfQ2hlY2sKLSAgUHlOdW1iZXJfRGl2bW9kPXB5dGhvbjMzLlB5TnVtYmVyX0Rpdm1vZAotICBQeU51bWJlcl9GbG9hdD1weXRob24zMy5QeU51bWJlcl9GbG9hdAotICBQeU51bWJlcl9GbG9vckRpdmlkZT1weXRob24zMy5QeU51bWJlcl9GbG9vckRpdmlkZQotICBQeU51bWJlcl9JblBsYWNlQWRkPXB5dGhvbjMzLlB5TnVtYmVyX0luUGxhY2VBZGQKLSAgUHlOdW1iZXJfSW5QbGFjZUFuZD1weXRob24zMy5QeU51bWJlcl9JblBsYWNlQW5kCi0gIFB5TnVtYmVyX0luUGxhY2VGbG9vckRpdmlkZT1weXRob24zMy5QeU51bWJlcl9JblBsYWNlRmxvb3JEaXZpZGUKLSAgUHlOdW1iZXJfSW5QbGFjZUxzaGlmdD1weXRob24zMy5QeU51bWJlcl9JblBsYWNlTHNoaWZ0Ci0gIFB5TnVtYmVyX0luUGxhY2VNdWx0aXBseT1weXRob24zMy5QeU51bWJlcl9JblBsYWNlTXVsdGlwbHkKLSAgUHlOdW1iZXJfSW5QbGFjZU9yPXB5dGhvbjMzLlB5TnVtYmVyX0luUGxhY2VPcgotICBQeU51bWJlcl9JblBsYWNlUG93ZXI9cHl0aG9uMzMuUHlOdW1iZXJfSW5QbGFjZVBvd2VyCi0gIFB5TnVtYmVyX0luUGxhY2VSZW1haW5kZXI9cHl0aG9uMzMuUHlOdW1iZXJfSW5QbGFjZVJlbWFpbmRlcgotICBQeU51bWJlcl9JblBsYWNlUnNoaWZ0PXB5dGhvbjMzLlB5TnVtYmVyX0luUGxhY2VSc2hpZnQKLSAgUHlOdW1iZXJfSW5QbGFjZVN1YnRyYWN0PXB5dGhvbjMzLlB5TnVtYmVyX0luUGxhY2VTdWJ0cmFjdAotICBQeU51bWJlcl9JblBsYWNlVHJ1ZURpdmlkZT1weXRob24zMy5QeU51bWJlcl9JblBsYWNlVHJ1ZURpdmlkZQotICBQeU51bWJlcl9JblBsYWNlWG9yPXB5dGhvbjMzLlB5TnVtYmVyX0luUGxhY2VYb3IKLSAgUHlOdW1iZXJfSW5kZXg9cHl0aG9uMzMuUHlOdW1iZXJfSW5kZXgKLSAgUHlOdW1iZXJfSW52ZXJ0PXB5dGhvbjMzLlB5TnVtYmVyX0ludmVydAotICBQeU51bWJlcl9Mb25nPXB5dGhvbjMzLlB5TnVtYmVyX0xvbmcKLSAgUHlOdW1iZXJfTHNoaWZ0PXB5dGhvbjMzLlB5TnVtYmVyX0xzaGlmdAotICBQeU51bWJlcl9NdWx0aXBseT1weXRob24zMy5QeU51bWJlcl9NdWx0aXBseQotICBQeU51bWJlcl9OZWdhdGl2ZT1weXRob24zMy5QeU51bWJlcl9OZWdhdGl2ZQotICBQeU51bWJlcl9Pcj1weXRob24zMy5QeU51bWJlcl9PcgotICBQeU51bWJlcl9Qb3NpdGl2ZT1weXRob24zMy5QeU51bWJlcl9Qb3NpdGl2ZQotICBQeU51bWJlcl9Qb3dlcj1weXRob24zMy5QeU51bWJlcl9Qb3dlcgotICBQeU51bWJlcl9SZW1haW5kZXI9cHl0aG9uMzMuUHlOdW1iZXJfUmVtYWluZGVyCi0gIFB5TnVtYmVyX1JzaGlmdD1weXRob24zMy5QeU51bWJlcl9Sc2hpZnQKLSAgUHlOdW1iZXJfU3VidHJhY3Q9cHl0aG9uMzMuUHlOdW1iZXJfU3VidHJhY3QKLSAgUHlOdW1iZXJfVG9CYXNlPXB5dGhvbjMzLlB5TnVtYmVyX1RvQmFzZQotICBQeU51bWJlcl9UcnVlRGl2aWRlPXB5dGhvbjMzLlB5TnVtYmVyX1RydWVEaXZpZGUKLSAgUHlOdW1iZXJfWG9yPXB5dGhvbjMzLlB5TnVtYmVyX1hvcgotICBQeU9TX0FmdGVyRm9yaz1weXRob24zMy5QeU9TX0FmdGVyRm9yawotICBQeU9TX0luaXRJbnRlcnJ1cHRzPXB5dGhvbjMzLlB5T1NfSW5pdEludGVycnVwdHMKLSAgUHlPU19JbnB1dEhvb2s9cHl0aG9uMzMuUHlPU19JbnB1dEhvb2sgREFUQQotICBQeU9TX0ludGVycnVwdE9jY3VycmVkPXB5dGhvbjMzLlB5T1NfSW50ZXJydXB0T2NjdXJyZWQKLSAgUHlPU19SZWFkbGluZUZ1bmN0aW9uUG9pbnRlcj1weXRob24zMy5QeU9TX1JlYWRsaW5lRnVuY3Rpb25Qb2ludGVyIERBVEEKLSAgUHlPU19kb3VibGVfdG9fc3RyaW5nPXB5dGhvbjMzLlB5T1NfZG91YmxlX3RvX3N0cmluZwotICBQeU9TX2dldHNpZz1weXRob24zMy5QeU9TX2dldHNpZwotICBQeU9TX215c3RyaWNtcD1weXRob24zMy5QeU9TX215c3RyaWNtcAotICBQeU9TX215c3RybmljbXA9cHl0aG9uMzMuUHlPU19teXN0cm5pY21wCi0gIFB5T1Nfc2V0c2lnPXB5dGhvbjMzLlB5T1Nfc2V0c2lnCi0gIFB5T1Nfc25wcmludGY9cHl0aG9uMzMuUHlPU19zbnByaW50ZgotICBQeU9TX3N0cmluZ190b19kb3VibGU9cHl0aG9uMzMuUHlPU19zdHJpbmdfdG9fZG91YmxlCi0gIFB5T1Nfc3RydG9sPXB5dGhvbjMzLlB5T1Nfc3RydG9sCi0gIFB5T1Nfc3RydG91bD1weXRob24zMy5QeU9TX3N0cnRvdWwKLSAgUHlPU192c25wcmludGY9cHl0aG9uMzMuUHlPU192c25wcmludGYKLSAgUHlPYmplY3RfQVNDSUk9cHl0aG9uMzMuUHlPYmplY3RfQVNDSUkKLSAgUHlPYmplY3RfQXNDaGFyQnVmZmVyPXB5dGhvbjMzLlB5T2JqZWN0X0FzQ2hhckJ1ZmZlcgotICBQeU9iamVjdF9Bc0ZpbGVEZXNjcmlwdG9yPXB5dGhvbjMzLlB5T2JqZWN0X0FzRmlsZURlc2NyaXB0b3IKLSAgUHlPYmplY3RfQXNSZWFkQnVmZmVyPXB5dGhvbjMzLlB5T2JqZWN0X0FzUmVhZEJ1ZmZlcgotICBQeU9iamVjdF9Bc1dyaXRlQnVmZmVyPXB5dGhvbjMzLlB5T2JqZWN0X0FzV3JpdGVCdWZmZXIKLSAgUHlPYmplY3RfQnl0ZXM9cHl0aG9uMzMuUHlPYmplY3RfQnl0ZXMKLSAgUHlPYmplY3RfQ2FsbD1weXRob24zMy5QeU9iamVjdF9DYWxsCi0gIFB5T2JqZWN0X0NhbGxGdW5jdGlvbj1weXRob24zMy5QeU9iamVjdF9DYWxsRnVuY3Rpb24KLSAgUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncz1weXRob24zMy5QeU9iamVjdF9DYWxsRnVuY3Rpb25PYmpBcmdzCi0gIFB5T2JqZWN0X0NhbGxNZXRob2Q9cHl0aG9uMzMuUHlPYmplY3RfQ2FsbE1ldGhvZAotICBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncz1weXRob24zMy5QeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncwotICBQeU9iamVjdF9DYWxsT2JqZWN0PXB5dGhvbjMzLlB5T2JqZWN0X0NhbGxPYmplY3QKLSAgUHlPYmplY3RfQ2hlY2tSZWFkQnVmZmVyPXB5dGhvbjMzLlB5T2JqZWN0X0NoZWNrUmVhZEJ1ZmZlcgotICBQeU9iamVjdF9DbGVhcldlYWtSZWZzPXB5dGhvbjMzLlB5T2JqZWN0X0NsZWFyV2Vha1JlZnMKLSAgUHlPYmplY3RfRGVsSXRlbT1weXRob24zMy5QeU9iamVjdF9EZWxJdGVtCi0gIFB5T2JqZWN0X0RlbEl0ZW1TdHJpbmc9cHl0aG9uMzMuUHlPYmplY3RfRGVsSXRlbVN0cmluZwotICBQeU9iamVjdF9EaXI9cHl0aG9uMzMuUHlPYmplY3RfRGlyCi0gIFB5T2JqZWN0X0Zvcm1hdD1weXRob24zMy5QeU9iamVjdF9Gb3JtYXQKLSAgUHlPYmplY3RfRnJlZT1weXRob24zMy5QeU9iamVjdF9GcmVlCi0gIFB5T2JqZWN0X0dDX0RlbD1weXRob24zMy5QeU9iamVjdF9HQ19EZWwKLSAgUHlPYmplY3RfR0NfVHJhY2s9cHl0aG9uMzMuUHlPYmplY3RfR0NfVHJhY2sKLSAgUHlPYmplY3RfR0NfVW5UcmFjaz1weXRob24zMy5QeU9iamVjdF9HQ19VblRyYWNrCi0gIFB5T2JqZWN0X0dlbmVyaWNHZXRBdHRyPXB5dGhvbjMzLlB5T2JqZWN0X0dlbmVyaWNHZXRBdHRyCi0gIFB5T2JqZWN0X0dlbmVyaWNTZXRBdHRyPXB5dGhvbjMzLlB5T2JqZWN0X0dlbmVyaWNTZXRBdHRyCi0gIFB5T2JqZWN0X0dldEF0dHI9cHl0aG9uMzMuUHlPYmplY3RfR2V0QXR0cgotICBQeU9iamVjdF9HZXRBdHRyU3RyaW5nPXB5dGhvbjMzLlB5T2JqZWN0X0dldEF0dHJTdHJpbmcKLSAgUHlPYmplY3RfR2V0SXRlbT1weXRob24zMy5QeU9iamVjdF9HZXRJdGVtCi0gIFB5T2JqZWN0X0dldEl0ZXI9cHl0aG9uMzMuUHlPYmplY3RfR2V0SXRlcgotICBQeU9iamVjdF9IYXNBdHRyPXB5dGhvbjMzLlB5T2JqZWN0X0hhc0F0dHIKLSAgUHlPYmplY3RfSGFzQXR0clN0cmluZz1weXRob24zMy5QeU9iamVjdF9IYXNBdHRyU3RyaW5nCi0gIFB5T2JqZWN0X0hhc2g9cHl0aG9uMzMuUHlPYmplY3RfSGFzaAotICBQeU9iamVjdF9IYXNoTm90SW1wbGVtZW50ZWQ9cHl0aG9uMzMuUHlPYmplY3RfSGFzaE5vdEltcGxlbWVudGVkCi0gIFB5T2JqZWN0X0luaXQ9cHl0aG9uMzMuUHlPYmplY3RfSW5pdAotICBQeU9iamVjdF9Jbml0VmFyPXB5dGhvbjMzLlB5T2JqZWN0X0luaXRWYXIKLSAgUHlPYmplY3RfSXNJbnN0YW5jZT1weXRob24zMy5QeU9iamVjdF9Jc0luc3RhbmNlCi0gIFB5T2JqZWN0X0lzU3ViY2xhc3M9cHl0aG9uMzMuUHlPYmplY3RfSXNTdWJjbGFzcwotICBQeU9iamVjdF9Jc1RydWU9cHl0aG9uMzMuUHlPYmplY3RfSXNUcnVlCi0gIFB5T2JqZWN0X0xlbmd0aD1weXRob24zMy5QeU9iamVjdF9MZW5ndGgKLSAgUHlPYmplY3RfTWFsbG9jPXB5dGhvbjMzLlB5T2JqZWN0X01hbGxvYwotICBQeU9iamVjdF9Ob3Q9cHl0aG9uMzMuUHlPYmplY3RfTm90Ci0gIFB5T2JqZWN0X1JlYWxsb2M9cHl0aG9uMzMuUHlPYmplY3RfUmVhbGxvYwotICBQeU9iamVjdF9SZXByPXB5dGhvbjMzLlB5T2JqZWN0X1JlcHIKLSAgUHlPYmplY3RfUmljaENvbXBhcmU9cHl0aG9uMzMuUHlPYmplY3RfUmljaENvbXBhcmUKLSAgUHlPYmplY3RfUmljaENvbXBhcmVCb29sPXB5dGhvbjMzLlB5T2JqZWN0X1JpY2hDb21wYXJlQm9vbAotICBQeU9iamVjdF9TZWxmSXRlcj1weXRob24zMy5QeU9iamVjdF9TZWxmSXRlcgotICBQeU9iamVjdF9TZXRBdHRyPXB5dGhvbjMzLlB5T2JqZWN0X1NldEF0dHIKLSAgUHlPYmplY3RfU2V0QXR0clN0cmluZz1weXRob24zMy5QeU9iamVjdF9TZXRBdHRyU3RyaW5nCi0gIFB5T2JqZWN0X1NldEl0ZW09cHl0aG9uMzMuUHlPYmplY3RfU2V0SXRlbQotICBQeU9iamVjdF9TaXplPXB5dGhvbjMzLlB5T2JqZWN0X1NpemUKLSAgUHlPYmplY3RfU3RyPXB5dGhvbjMzLlB5T2JqZWN0X1N0cgotICBQeU9iamVjdF9UeXBlPXB5dGhvbjMzLlB5T2JqZWN0X1R5cGUgREFUQQotICBQeVBhcnNlcl9TaW1wbGVQYXJzZUZpbGVGbGFncz1weXRob24zMy5QeVBhcnNlcl9TaW1wbGVQYXJzZUZpbGVGbGFncwotICBQeVBhcnNlcl9TaW1wbGVQYXJzZVN0cmluZ0ZsYWdzPXB5dGhvbjMzLlB5UGFyc2VyX1NpbXBsZVBhcnNlU3RyaW5nRmxhZ3MKLSAgUHlQcm9wZXJ0eV9UeXBlPXB5dGhvbjMzLlB5UHJvcGVydHlfVHlwZSBEQVRBCi0gIFB5UmFuZ2VJdGVyX1R5cGU9cHl0aG9uMzMuUHlSYW5nZUl0ZXJfVHlwZSBEQVRBCi0gIFB5UmFuZ2VfVHlwZT1weXRob24zMy5QeVJhbmdlX1R5cGUgREFUQQotICBQeVJldmVyc2VkX1R5cGU9cHl0aG9uMzMuUHlSZXZlcnNlZF9UeXBlIERBVEEKLSAgUHlTZXFJdGVyX05ldz1weXRob24zMy5QeVNlcUl0ZXJfTmV3Ci0gIFB5U2VxSXRlcl9UeXBlPXB5dGhvbjMzLlB5U2VxSXRlcl9UeXBlIERBVEEKLSAgUHlTZXF1ZW5jZV9DaGVjaz1weXRob24zMy5QeVNlcXVlbmNlX0NoZWNrCi0gIFB5U2VxdWVuY2VfQ29uY2F0PXB5dGhvbjMzLlB5U2VxdWVuY2VfQ29uY2F0Ci0gIFB5U2VxdWVuY2VfQ29udGFpbnM9cHl0aG9uMzMuUHlTZXF1ZW5jZV9Db250YWlucwotICBQeVNlcXVlbmNlX0NvdW50PXB5dGhvbjMzLlB5U2VxdWVuY2VfQ291bnQKLSAgUHlTZXF1ZW5jZV9EZWxJdGVtPXB5dGhvbjMzLlB5U2VxdWVuY2VfRGVsSXRlbQotICBQeVNlcXVlbmNlX0RlbFNsaWNlPXB5dGhvbjMzLlB5U2VxdWVuY2VfRGVsU2xpY2UKLSAgUHlTZXF1ZW5jZV9GYXN0PXB5dGhvbjMzLlB5U2VxdWVuY2VfRmFzdAotICBQeVNlcXVlbmNlX0dldEl0ZW09cHl0aG9uMzMuUHlTZXF1ZW5jZV9HZXRJdGVtCi0gIFB5U2VxdWVuY2VfR2V0U2xpY2U9cHl0aG9uMzMuUHlTZXF1ZW5jZV9HZXRTbGljZQotICBQeVNlcXVlbmNlX0luPXB5dGhvbjMzLlB5U2VxdWVuY2VfSW4KLSAgUHlTZXF1ZW5jZV9JblBsYWNlQ29uY2F0PXB5dGhvbjMzLlB5U2VxdWVuY2VfSW5QbGFjZUNvbmNhdAotICBQeVNlcXVlbmNlX0luUGxhY2VSZXBlYXQ9cHl0aG9uMzMuUHlTZXF1ZW5jZV9JblBsYWNlUmVwZWF0Ci0gIFB5U2VxdWVuY2VfSW5kZXg9cHl0aG9uMzMuUHlTZXF1ZW5jZV9JbmRleAotICBQeVNlcXVlbmNlX0xlbmd0aD1weXRob24zMy5QeVNlcXVlbmNlX0xlbmd0aAotICBQeVNlcXVlbmNlX0xpc3Q9cHl0aG9uMzMuUHlTZXF1ZW5jZV9MaXN0Ci0gIFB5U2VxdWVuY2VfUmVwZWF0PXB5dGhvbjMzLlB5U2VxdWVuY2VfUmVwZWF0Ci0gIFB5U2VxdWVuY2VfU2V0SXRlbT1weXRob24zMy5QeVNlcXVlbmNlX1NldEl0ZW0KLSAgUHlTZXF1ZW5jZV9TZXRTbGljZT1weXRob24zMy5QeVNlcXVlbmNlX1NldFNsaWNlCi0gIFB5U2VxdWVuY2VfU2l6ZT1weXRob24zMy5QeVNlcXVlbmNlX1NpemUKLSAgUHlTZXF1ZW5jZV9UdXBsZT1weXRob24zMy5QeVNlcXVlbmNlX1R1cGxlCi0gIFB5U2V0SXRlcl9UeXBlPXB5dGhvbjMzLlB5U2V0SXRlcl9UeXBlIERBVEEKLSAgUHlTZXRfQWRkPXB5dGhvbjMzLlB5U2V0X0FkZAotICBQeVNldF9DbGVhcj1weXRob24zMy5QeVNldF9DbGVhcgotICBQeVNldF9Db250YWlucz1weXRob24zMy5QeVNldF9Db250YWlucwotICBQeVNldF9EaXNjYXJkPXB5dGhvbjMzLlB5U2V0X0Rpc2NhcmQKLSAgUHlTZXRfTmV3PXB5dGhvbjMzLlB5U2V0X05ldwotICBQeVNldF9Qb3A9cHl0aG9uMzMuUHlTZXRfUG9wCi0gIFB5U2V0X1NpemU9cHl0aG9uMzMuUHlTZXRfU2l6ZQotICBQeVNldF9UeXBlPXB5dGhvbjMzLlB5U2V0X1R5cGUgREFUQQotICBQeVNsaWNlX0dldEluZGljZXM9cHl0aG9uMzMuUHlTbGljZV9HZXRJbmRpY2VzCi0gIFB5U2xpY2VfR2V0SW5kaWNlc0V4PXB5dGhvbjMzLlB5U2xpY2VfR2V0SW5kaWNlc0V4Ci0gIFB5U2xpY2VfTmV3PXB5dGhvbjMzLlB5U2xpY2VfTmV3Ci0gIFB5U2xpY2VfVHlwZT1weXRob24zMy5QeVNsaWNlX1R5cGUgREFUQQotICBQeVNvcnRXcmFwcGVyX1R5cGU9cHl0aG9uMzMuUHlTb3J0V3JhcHBlcl9UeXBlIERBVEEKLSAgUHlTdGF0ZV9GaW5kTW9kdWxlPXB5dGhvbjMzLlB5U3RhdGVfRmluZE1vZHVsZQotICBQeVN0YXRlX0FkZE1vZHVsZT1weXRob24zMy5QeVN0YXRlX0FkZE1vZHVsZQotICBQeVN0YXRlX1JlbW92ZU1vZHVsZT1weXRob24zMy5QeVN0YXRlX1JlbW92ZU1vZHVsZQotICBQeVN0cnVjdFNlcXVlbmNlX0dldEl0ZW09cHl0aG9uMzMuUHlTdHJ1Y3RTZXF1ZW5jZV9HZXRJdGVtCi0gIFB5U3RydWN0U2VxdWVuY2VfTmV3PXB5dGhvbjMzLlB5U3RydWN0U2VxdWVuY2VfTmV3Ci0gIFB5U3RydWN0U2VxdWVuY2VfTmV3VHlwZT1weXRob24zMy5QeVN0cnVjdFNlcXVlbmNlX05ld1R5cGUKLSAgUHlTdHJ1Y3RTZXF1ZW5jZV9TZXRJdGVtPXB5dGhvbjMzLlB5U3RydWN0U2VxdWVuY2VfU2V0SXRlbQotICBQeVN1cGVyX1R5cGU9cHl0aG9uMzMuUHlTdXBlcl9UeXBlIERBVEEKLSAgUHlTeXNfQWRkV2Fybk9wdGlvbj1weXRob24zMy5QeVN5c19BZGRXYXJuT3B0aW9uCi0gIFB5U3lzX0FkZFdhcm5PcHRpb25Vbmljb2RlPXB5dGhvbjMzLlB5U3lzX0FkZFdhcm5PcHRpb25Vbmljb2RlCi0gIFB5U3lzX0Zvcm1hdFN0ZGVycj1weXRob24zMy5QeVN5c19Gb3JtYXRTdGRlcnIKLSAgUHlTeXNfRm9ybWF0U3Rkb3V0PXB5dGhvbjMzLlB5U3lzX0Zvcm1hdFN0ZG91dAotICBQeVN5c19HZXRPYmplY3Q9cHl0aG9uMzMuUHlTeXNfR2V0T2JqZWN0Ci0gIFB5U3lzX0hhc1dhcm5PcHRpb25zPXB5dGhvbjMzLlB5U3lzX0hhc1dhcm5PcHRpb25zCi0gIFB5U3lzX1Jlc2V0V2Fybk9wdGlvbnM9cHl0aG9uMzMuUHlTeXNfUmVzZXRXYXJuT3B0aW9ucwotICBQeVN5c19TZXRBcmd2PXB5dGhvbjMzLlB5U3lzX1NldEFyZ3YKLSAgUHlTeXNfU2V0QXJndkV4PXB5dGhvbjMzLlB5U3lzX1NldEFyZ3ZFeAotICBQeVN5c19TZXRPYmplY3Q9cHl0aG9uMzMuUHlTeXNfU2V0T2JqZWN0Ci0gIFB5U3lzX1NldFBhdGg9cHl0aG9uMzMuUHlTeXNfU2V0UGF0aAotICBQeVN5c19Xcml0ZVN0ZGVycj1weXRob24zMy5QeVN5c19Xcml0ZVN0ZGVycgotICBQeVN5c19Xcml0ZVN0ZG91dD1weXRob24zMy5QeVN5c19Xcml0ZVN0ZG91dAotICBQeVRocmVhZFN0YXRlX0NsZWFyPXB5dGhvbjMzLlB5VGhyZWFkU3RhdGVfQ2xlYXIKLSAgUHlUaHJlYWRTdGF0ZV9EZWxldGU9cHl0aG9uMzMuUHlUaHJlYWRTdGF0ZV9EZWxldGUKLSAgUHlUaHJlYWRTdGF0ZV9EZWxldGVDdXJyZW50PXB5dGhvbjMzLlB5VGhyZWFkU3RhdGVfRGVsZXRlQ3VycmVudAotICBQeVRocmVhZFN0YXRlX0dldD1weXRob24zMy5QeVRocmVhZFN0YXRlX0dldAotICBQeVRocmVhZFN0YXRlX0dldERpY3Q9cHl0aG9uMzMuUHlUaHJlYWRTdGF0ZV9HZXREaWN0Ci0gIFB5VGhyZWFkU3RhdGVfTmV3PXB5dGhvbjMzLlB5VGhyZWFkU3RhdGVfTmV3Ci0gIFB5VGhyZWFkU3RhdGVfU2V0QXN5bmNFeGM9cHl0aG9uMzMuUHlUaHJlYWRTdGF0ZV9TZXRBc3luY0V4YwotICBQeVRocmVhZFN0YXRlX1N3YXA9cHl0aG9uMzMuUHlUaHJlYWRTdGF0ZV9Td2FwCi0gIFB5VHJhY2VCYWNrX0hlcmU9cHl0aG9uMzMuUHlUcmFjZUJhY2tfSGVyZQotICBQeVRyYWNlQmFja19QcmludD1weXRob24zMy5QeVRyYWNlQmFja19QcmludAotICBQeVRyYWNlQmFja19UeXBlPXB5dGhvbjMzLlB5VHJhY2VCYWNrX1R5cGUgREFUQQotICBQeVR1cGxlSXRlcl9UeXBlPXB5dGhvbjMzLlB5VHVwbGVJdGVyX1R5cGUgREFUQQotICBQeVR1cGxlX0NsZWFyRnJlZUxpc3Q9cHl0aG9uMzMuUHlUdXBsZV9DbGVhckZyZWVMaXN0Ci0gIFB5VHVwbGVfR2V0SXRlbT1weXRob24zMy5QeVR1cGxlX0dldEl0ZW0KLSAgUHlUdXBsZV9HZXRTbGljZT1weXRob24zMy5QeVR1cGxlX0dldFNsaWNlCi0gIFB5VHVwbGVfTmV3PXB5dGhvbjMzLlB5VHVwbGVfTmV3Ci0gIFB5VHVwbGVfUGFjaz1weXRob24zMy5QeVR1cGxlX1BhY2sKLSAgUHlUdXBsZV9TZXRJdGVtPXB5dGhvbjMzLlB5VHVwbGVfU2V0SXRlbQotICBQeVR1cGxlX1NpemU9cHl0aG9uMzMuUHlUdXBsZV9TaXplCi0gIFB5VHVwbGVfVHlwZT1weXRob24zMy5QeVR1cGxlX1R5cGUgREFUQQotICBQeVR5cGVfQ2xlYXJDYWNoZT1weXRob24zMy5QeVR5cGVfQ2xlYXJDYWNoZQotICBQeVR5cGVfRnJvbVNwZWM9cHl0aG9uMzMuUHlUeXBlX0Zyb21TcGVjCi0gIFB5VHlwZV9Gcm9tU3BlY1dpdGhCYXNlcz1weXRob24zMy5QeVR5cGVfRnJvbVNwZWNXaXRoQmFzZXMKLSAgUHlUeXBlX0dlbmVyaWNBbGxvYz1weXRob24zMy5QeVR5cGVfR2VuZXJpY0FsbG9jCi0gIFB5VHlwZV9HZW5lcmljTmV3PXB5dGhvbjMzLlB5VHlwZV9HZW5lcmljTmV3Ci0gIFB5VHlwZV9HZXRGbGFncz1weXRob24zMy5QeVR5cGVfR2V0RmxhZ3MKLSAgUHlUeXBlX0lzU3VidHlwZT1weXRob24zMy5QeVR5cGVfSXNTdWJ0eXBlCi0gIFB5VHlwZV9Nb2RpZmllZD1weXRob24zMy5QeVR5cGVfTW9kaWZpZWQKLSAgUHlUeXBlX1JlYWR5PXB5dGhvbjMzLlB5VHlwZV9SZWFkeQotICBQeVR5cGVfVHlwZT1weXRob24zMy5QeVR5cGVfVHlwZSBEQVRBCi0gIFB5VW5pY29kZURlY29kZUVycm9yX0NyZWF0ZT1weXRob24zMy5QeVVuaWNvZGVEZWNvZGVFcnJvcl9DcmVhdGUKLSAgUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0RW5jb2Rpbmc9cHl0aG9uMzMuUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0RW5jb2RpbmcKLSAgUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0RW5kPXB5dGhvbjMzLlB5VW5pY29kZURlY29kZUVycm9yX0dldEVuZAotICBQeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRPYmplY3Q9cHl0aG9uMzMuUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0T2JqZWN0Ci0gIFB5VW5pY29kZURlY29kZUVycm9yX0dldFJlYXNvbj1weXRob24zMy5QeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRSZWFzb24KLSAgUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0U3RhcnQ9cHl0aG9uMzMuUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0U3RhcnQKLSAgUHlVbmljb2RlRGVjb2RlRXJyb3JfU2V0RW5kPXB5dGhvbjMzLlB5VW5pY29kZURlY29kZUVycm9yX1NldEVuZAotICBQeVVuaWNvZGVEZWNvZGVFcnJvcl9TZXRSZWFzb249cHl0aG9uMzMuUHlVbmljb2RlRGVjb2RlRXJyb3JfU2V0UmVhc29uCi0gIFB5VW5pY29kZURlY29kZUVycm9yX1NldFN0YXJ0PXB5dGhvbjMzLlB5VW5pY29kZURlY29kZUVycm9yX1NldFN0YXJ0Ci0gIFB5VW5pY29kZUVuY29kZUVycm9yX0dldEVuY29kaW5nPXB5dGhvbjMzLlB5VW5pY29kZUVuY29kZUVycm9yX0dldEVuY29kaW5nCi0gIFB5VW5pY29kZUVuY29kZUVycm9yX0dldEVuZD1weXRob24zMy5QeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRFbmQKLSAgUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0T2JqZWN0PXB5dGhvbjMzLlB5VW5pY29kZUVuY29kZUVycm9yX0dldE9iamVjdAotICBQeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRSZWFzb249cHl0aG9uMzMuUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0UmVhc29uCi0gIFB5VW5pY29kZUVuY29kZUVycm9yX0dldFN0YXJ0PXB5dGhvbjMzLlB5VW5pY29kZUVuY29kZUVycm9yX0dldFN0YXJ0Ci0gIFB5VW5pY29kZUVuY29kZUVycm9yX1NldEVuZD1weXRob24zMy5QeVVuaWNvZGVFbmNvZGVFcnJvcl9TZXRFbmQKLSAgUHlVbmljb2RlRW5jb2RlRXJyb3JfU2V0UmVhc29uPXB5dGhvbjMzLlB5VW5pY29kZUVuY29kZUVycm9yX1NldFJlYXNvbgotICBQeVVuaWNvZGVFbmNvZGVFcnJvcl9TZXRTdGFydD1weXRob24zMy5QeVVuaWNvZGVFbmNvZGVFcnJvcl9TZXRTdGFydAotICBQeVVuaWNvZGVJdGVyX1R5cGU9cHl0aG9uMzMuUHlVbmljb2RlSXRlcl9UeXBlIERBVEEKLSAgUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0RW5kPXB5dGhvbjMzLlB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX0dldEVuZAotICBQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRPYmplY3Q9cHl0aG9uMzMuUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0T2JqZWN0Ci0gIFB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX0dldFJlYXNvbj1weXRob24zMy5QeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRSZWFzb24KLSAgUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0U3RhcnQ9cHl0aG9uMzMuUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0U3RhcnQKLSAgUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfU2V0RW5kPXB5dGhvbjMzLlB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX1NldEVuZAotICBQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9TZXRSZWFzb249cHl0aG9uMzMuUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfU2V0UmVhc29uCi0gIFB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX1NldFN0YXJ0PXB5dGhvbjMzLlB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX1NldFN0YXJ0Ci0gIFB5VW5pY29kZV9BcHBlbmQ9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9BcHBlbmQKLSAgUHlVbmljb2RlX0FwcGVuZEFuZERlbD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0FwcGVuZEFuZERlbAotICBQeVVuaWNvZGVfQXNBU0NJSVN0cmluZz1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0FzQVNDSUlTdHJpbmcKLSAgUHlVbmljb2RlX0FzQ2hhcm1hcFN0cmluZz1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0FzQ2hhcm1hcFN0cmluZwotICBQeVVuaWNvZGVfQXNEZWNvZGVkT2JqZWN0PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfQXNEZWNvZGVkT2JqZWN0Ci0gIFB5VW5pY29kZV9Bc0RlY29kZWRVbmljb2RlPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfQXNEZWNvZGVkVW5pY29kZQotICBQeVVuaWNvZGVfQXNFbmNvZGVkT2JqZWN0PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfQXNFbmNvZGVkT2JqZWN0Ci0gIFB5VW5pY29kZV9Bc0VuY29kZWRTdHJpbmc9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Bc0VuY29kZWRTdHJpbmcKLSAgUHlVbmljb2RlX0FzRW5jb2RlZFVuaWNvZGU9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Bc0VuY29kZWRVbmljb2RlCi0gIFB5VW5pY29kZV9Bc0xhdGluMVN0cmluZz1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0FzTGF0aW4xU3RyaW5nCi0gIFB5VW5pY29kZV9Bc1Jhd1VuaWNvZGVFc2NhcGVTdHJpbmc9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Bc1Jhd1VuaWNvZGVFc2NhcGVTdHJpbmcKLSAgUHlVbmljb2RlX0FzVVRGMTZTdHJpbmc9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Bc1VURjE2U3RyaW5nCi0gIFB5VW5pY29kZV9Bc1VURjMyU3RyaW5nPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfQXNVVEYzMlN0cmluZwotICBQeVVuaWNvZGVfQXNVVEY4U3RyaW5nPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfQXNVVEY4U3RyaW5nCi0gIFB5VW5pY29kZV9Bc1VuaWNvZGVFc2NhcGVTdHJpbmc9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Bc1VuaWNvZGVFc2NhcGVTdHJpbmcKLSAgUHlVbmljb2RlX0FzV2lkZUNoYXI9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Bc1dpZGVDaGFyCi0gIFB5VW5pY29kZV9DbGVhckZyZWVsaXN0PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfQ2xlYXJGcmVlbGlzdAotICBQeVVuaWNvZGVfQ29tcGFyZT1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0NvbXBhcmUKLSAgUHlVbmljb2RlX0NvbmNhdD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0NvbmNhdAotICBQeVVuaWNvZGVfQ29udGFpbnM9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Db250YWlucwotICBQeVVuaWNvZGVfQ291bnQ9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Db3VudAotICBQeVVuaWNvZGVfRGVjb2RlPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlCi0gIFB5VW5pY29kZV9EZWNvZGVBU0NJST1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0RlY29kZUFTQ0lJCi0gIFB5VW5pY29kZV9EZWNvZGVDaGFybWFwPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlQ2hhcm1hcAotICBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlRlNEZWZhdWx0Ci0gIFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHRBbmRTaXplPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlRlNEZWZhdWx0QW5kU2l6ZQotICBQeVVuaWNvZGVfRGVjb2RlTGF0aW4xPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlTGF0aW4xCi0gIFB5VW5pY29kZV9EZWNvZGVSYXdVbmljb2RlRXNjYXBlPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlUmF3VW5pY29kZUVzY2FwZQotICBQeVVuaWNvZGVfRGVjb2RlVVRGMTY9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9EZWNvZGVVVEYxNgotICBQeVVuaWNvZGVfRGVjb2RlVVRGMTZTdGF0ZWZ1bD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0RlY29kZVVURjE2U3RhdGVmdWwKLSAgUHlVbmljb2RlX0RlY29kZVVURjMyPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlVVRGMzIKLSAgUHlVbmljb2RlX0RlY29kZVVURjMyU3RhdGVmdWw9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9EZWNvZGVVVEYzMlN0YXRlZnVsCi0gIFB5VW5pY29kZV9EZWNvZGVVVEY4PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlVVRGOAotICBQeVVuaWNvZGVfRGVjb2RlVVRGOFN0YXRlZnVsPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlVVRGOFN0YXRlZnVsCi0gIFB5VW5pY29kZV9EZWNvZGVVbmljb2RlRXNjYXBlPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlVW5pY29kZUVzY2FwZQotICBQeVVuaWNvZGVfRlNDb252ZXJ0ZXI9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9GU0NvbnZlcnRlcgotICBQeVVuaWNvZGVfRlNEZWNvZGVyPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRlNEZWNvZGVyCi0gIFB5VW5pY29kZV9GaW5kPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRmluZAotICBQeVVuaWNvZGVfRm9ybWF0PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRm9ybWF0Ci0gIFB5VW5pY29kZV9Gcm9tRW5jb2RlZE9iamVjdD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0Zyb21FbmNvZGVkT2JqZWN0Ci0gIFB5VW5pY29kZV9Gcm9tRm9ybWF0PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRnJvbUZvcm1hdAotICBQeVVuaWNvZGVfRnJvbUZvcm1hdFY9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Gcm9tRm9ybWF0VgotICBQeVVuaWNvZGVfRnJvbU9iamVjdD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0Zyb21PYmplY3QKLSAgUHlVbmljb2RlX0Zyb21PcmRpbmFsPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRnJvbU9yZGluYWwKLSAgUHlVbmljb2RlX0Zyb21TdHJpbmc9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Gcm9tU3RyaW5nCi0gIFB5VW5pY29kZV9Gcm9tU3RyaW5nQW5kU2l6ZT1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0Zyb21TdHJpbmdBbmRTaXplCi0gIFB5VW5pY29kZV9Gcm9tV2lkZUNoYXI9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Gcm9tV2lkZUNoYXIKLSAgUHlVbmljb2RlX0dldERlZmF1bHRFbmNvZGluZz1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0dldERlZmF1bHRFbmNvZGluZwotICBQeVVuaWNvZGVfR2V0U2l6ZT1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0dldFNpemUKLSAgUHlVbmljb2RlX0lzSWRlbnRpZmllcj1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0lzSWRlbnRpZmllcgotICBQeVVuaWNvZGVfSm9pbj1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0pvaW4KLSAgUHlVbmljb2RlX1BhcnRpdGlvbj1weXRob24zMy5QeVVuaWNvZGVVQ1MyX1BhcnRpdGlvbgotICBQeVVuaWNvZGVfUlBhcnRpdGlvbj1weXRob24zMy5QeVVuaWNvZGVVQ1MyX1JQYXJ0aXRpb24KLSAgUHlVbmljb2RlX1JTcGxpdD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX1JTcGxpdAotICBQeVVuaWNvZGVfUmVwbGFjZT1weXRob24zMy5QeVVuaWNvZGVVQ1MyX1JlcGxhY2UKLSAgUHlVbmljb2RlX1Jlc2l6ZT1weXRob24zMy5QeVVuaWNvZGVVQ1MyX1Jlc2l6ZQotICBQeVVuaWNvZGVfUmljaENvbXBhcmU9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9SaWNoQ29tcGFyZQotICBQeVVuaWNvZGVfU2V0RGVmYXVsdEVuY29kaW5nPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfU2V0RGVmYXVsdEVuY29kaW5nCi0gIFB5VW5pY29kZV9TcGxpdD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX1NwbGl0Ci0gIFB5VW5pY29kZV9TcGxpdGxpbmVzPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfU3BsaXRsaW5lcwotICBQeVVuaWNvZGVfVGFpbG1hdGNoPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfVGFpbG1hdGNoCi0gIFB5VW5pY29kZV9UcmFuc2xhdGU9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9UcmFuc2xhdGUKLSAgUHlVbmljb2RlX0J1aWxkRW5jb2RpbmdNYXA9cHl0aG9uMzMuUHlVbmljb2RlX0J1aWxkRW5jb2RpbmdNYXAKLSAgUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmc9cHl0aG9uMzMuUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcKLSAgUHlVbmljb2RlX0RlY29kZVVURjc9cHl0aG9uMzMuUHlVbmljb2RlX0RlY29kZVVURjcKLSAgUHlVbmljb2RlX0RlY29kZVVURjdTdGF0ZWZ1bD1weXRob24zMy5QeVVuaWNvZGVfRGVjb2RlVVRGN1N0YXRlZnVsCi0gIFB5VW5pY29kZV9FbmNvZGVGU0RlZmF1bHQ9cHl0aG9uMzMuUHlVbmljb2RlX0VuY29kZUZTRGVmYXVsdAotICBQeVVuaWNvZGVfSW50ZXJuRnJvbVN0cmluZz1weXRob24zMy5QeVVuaWNvZGVfSW50ZXJuRnJvbVN0cmluZwotICBQeVVuaWNvZGVfSW50ZXJuSW1tb3J0YWw9cHl0aG9uMzMuUHlVbmljb2RlX0ludGVybkltbW9ydGFsCi0gIFB5VW5pY29kZV9JbnRlcm5JblBsYWNlPXB5dGhvbjMzLlB5VW5pY29kZV9JbnRlcm5JblBsYWNlCi0gIFB5VW5pY29kZV9UeXBlPXB5dGhvbjMzLlB5VW5pY29kZV9UeXBlIERBVEEKLSAgUHlXZWFrcmVmX0dldE9iamVjdD1weXRob24zMy5QeVdlYWtyZWZfR2V0T2JqZWN0IERBVEEKLSAgUHlXZWFrcmVmX05ld1Byb3h5PXB5dGhvbjMzLlB5V2Vha3JlZl9OZXdQcm94eQotICBQeVdlYWtyZWZfTmV3UmVmPXB5dGhvbjMzLlB5V2Vha3JlZl9OZXdSZWYKLSAgUHlXcmFwcGVyRGVzY3JfVHlwZT1weXRob24zMy5QeVdyYXBwZXJEZXNjcl9UeXBlIERBVEEKLSAgUHlXcmFwcGVyX05ldz1weXRob24zMy5QeVdyYXBwZXJfTmV3Ci0gIFB5WmlwX1R5cGU9cHl0aG9uMzMuUHlaaXBfVHlwZSBEQVRBCi0gIFB5X0FkZFBlbmRpbmdDYWxsPXB5dGhvbjMzLlB5X0FkZFBlbmRpbmdDYWxsCi0gIFB5X0F0RXhpdD1weXRob24zMy5QeV9BdEV4aXQKLSAgUHlfQnVpbGRWYWx1ZT1weXRob24zMy5QeV9CdWlsZFZhbHVlCi0gIFB5X0NvbXBpbGVTdHJpbmc9cHl0aG9uMzMuUHlfQ29tcGlsZVN0cmluZwotICBQeV9EZWNSZWY9cHl0aG9uMzMuUHlfRGVjUmVmCi0gIFB5X0VuZEludGVycHJldGVyPXB5dGhvbjMzLlB5X0VuZEludGVycHJldGVyCi0gIFB5X0V4aXQ9cHl0aG9uMzMuUHlfRXhpdAotICBQeV9GYXRhbEVycm9yPXB5dGhvbjMzLlB5X0ZhdGFsRXJyb3IKLSAgUHlfRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZz1weXRob24zMy5QeV9GaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nIERBVEEKLSAgUHlfRmluYWxpemU9cHl0aG9uMzMuUHlfRmluYWxpemUKLSAgUHlfR2V0QnVpbGRJbmZvPXB5dGhvbjMzLlB5X0dldEJ1aWxkSW5mbwotICBQeV9HZXRDb21waWxlcj1weXRob24zMy5QeV9HZXRDb21waWxlcgotICBQeV9HZXRDb3B5cmlnaHQ9cHl0aG9uMzMuUHlfR2V0Q29weXJpZ2h0Ci0gIFB5X0dldEV4ZWNQcmVmaXg9cHl0aG9uMzMuUHlfR2V0RXhlY1ByZWZpeAotICBQeV9HZXRQYXRoPXB5dGhvbjMzLlB5X0dldFBhdGgKLSAgUHlfR2V0UGxhdGZvcm09cHl0aG9uMzMuUHlfR2V0UGxhdGZvcm0KLSAgUHlfR2V0UHJlZml4PXB5dGhvbjMzLlB5X0dldFByZWZpeAotICBQeV9HZXRQcm9ncmFtRnVsbFBhdGg9cHl0aG9uMzMuUHlfR2V0UHJvZ3JhbUZ1bGxQYXRoCi0gIFB5X0dldFByb2dyYW1OYW1lPXB5dGhvbjMzLlB5X0dldFByb2dyYW1OYW1lCi0gIFB5X0dldFB5dGhvbkhvbWU9cHl0aG9uMzMuUHlfR2V0UHl0aG9uSG9tZQotICBQeV9HZXRSZWN1cnNpb25MaW1pdD1weXRob24zMy5QeV9HZXRSZWN1cnNpb25MaW1pdAotICBQeV9HZXRWZXJzaW9uPXB5dGhvbjMzLlB5X0dldFZlcnNpb24KLSAgUHlfSGFzRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZz1weXRob24zMy5QeV9IYXNGaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nIERBVEEKLSAgUHlfSW5jUmVmPXB5dGhvbjMzLlB5X0luY1JlZgotICBQeV9Jbml0aWFsaXplPXB5dGhvbjMzLlB5X0luaXRpYWxpemUKLSAgUHlfSW5pdGlhbGl6ZUV4PXB5dGhvbjMzLlB5X0luaXRpYWxpemVFeAotICBQeV9Jc0luaXRpYWxpemVkPXB5dGhvbjMzLlB5X0lzSW5pdGlhbGl6ZWQKLSAgUHlfTWFpbj1weXRob24zMy5QeV9NYWluCi0gIFB5X01ha2VQZW5kaW5nQ2FsbHM9cHl0aG9uMzMuUHlfTWFrZVBlbmRpbmdDYWxscwotICBQeV9OZXdJbnRlcnByZXRlcj1weXRob24zMy5QeV9OZXdJbnRlcnByZXRlcgotICBQeV9SZXByRW50ZXI9cHl0aG9uMzMuUHlfUmVwckVudGVyCi0gIFB5X1JlcHJMZWF2ZT1weXRob24zMy5QeV9SZXByTGVhdmUKLSAgUHlfU2V0UHJvZ3JhbU5hbWU9cHl0aG9uMzMuUHlfU2V0UHJvZ3JhbU5hbWUKLSAgUHlfU2V0UHl0aG9uSG9tZT1weXRob24zMy5QeV9TZXRQeXRob25Ib21lCi0gIFB5X1NldFJlY3Vyc2lvbkxpbWl0PXB5dGhvbjMzLlB5X1NldFJlY3Vyc2lvbkxpbWl0Ci0gIFB5X1N5bXRhYmxlU3RyaW5nPXB5dGhvbjMzLlB5X1N5bXRhYmxlU3RyaW5nCi0gIFB5X1ZhQnVpbGRWYWx1ZT1weXRob24zMy5QeV9WYUJ1aWxkVmFsdWUKLSAgX1B5RXJyX0JhZEludGVybmFsQ2FsbD1weXRob24zMy5fUHlFcnJfQmFkSW50ZXJuYWxDYWxsCi0gIF9QeU9iamVjdF9DYWxsRnVuY3Rpb25fU2l6ZVQ9cHl0aG9uMzMuX1B5T2JqZWN0X0NhbGxGdW5jdGlvbl9TaXplVAotICBfUHlPYmplY3RfQ2FsbE1ldGhvZF9TaXplVD1weXRob24zMy5fUHlPYmplY3RfQ2FsbE1ldGhvZF9TaXplVAotICBfUHlPYmplY3RfR0NfTWFsbG9jPXB5dGhvbjMzLl9QeU9iamVjdF9HQ19NYWxsb2MKLSAgX1B5T2JqZWN0X0dDX05ldz1weXRob24zMy5fUHlPYmplY3RfR0NfTmV3Ci0gIF9QeU9iamVjdF9HQ19OZXdWYXI9cHl0aG9uMzMuX1B5T2JqZWN0X0dDX05ld1ZhcgotICBfUHlPYmplY3RfR0NfUmVzaXplPXB5dGhvbjMzLl9QeU9iamVjdF9HQ19SZXNpemUKLSAgX1B5T2JqZWN0X05ldz1weXRob24zMy5fUHlPYmplY3RfTmV3Ci0gIF9QeU9iamVjdF9OZXdWYXI9cHl0aG9uMzMuX1B5T2JqZWN0X05ld1ZhcgotICBfUHlTdGF0ZV9BZGRNb2R1bGU9cHl0aG9uMzMuX1B5U3RhdGVfQWRkTW9kdWxlCi0gIF9QeVRocmVhZFN0YXRlX0luaXQ9cHl0aG9uMzMuX1B5VGhyZWFkU3RhdGVfSW5pdAotICBfUHlUaHJlYWRTdGF0ZV9QcmVhbGxvYz1weXRob24zMy5fUHlUaHJlYWRTdGF0ZV9QcmVhbGxvYwotICBfUHlUcmFzaF9kZWxldGVfbGF0ZXI9cHl0aG9uMzMuX1B5VHJhc2hfZGVsZXRlX2xhdGVyIERBVEEKLSAgX1B5VHJhc2hfZGVsZXRlX25lc3Rpbmc9cHl0aG9uMzMuX1B5VHJhc2hfZGVsZXRlX25lc3RpbmcgREFUQQotICBfUHlUcmFzaF9kZXBvc2l0X29iamVjdD1weXRob24zMy5fUHlUcmFzaF9kZXBvc2l0X29iamVjdAotICBfUHlUcmFzaF9kZXN0cm95X2NoYWluPXB5dGhvbjMzLl9QeVRyYXNoX2Rlc3Ryb3lfY2hhaW4KLSAgX1B5V2Vha3JlZl9DYWxsYWJsZVByb3h5VHlwZT1weXRob24zMy5fUHlXZWFrcmVmX0NhbGxhYmxlUHJveHlUeXBlIERBVEEKLSAgX1B5V2Vha3JlZl9Qcm94eVR5cGU9cHl0aG9uMzMuX1B5V2Vha3JlZl9Qcm94eVR5cGUgREFUQQotICBfUHlXZWFrcmVmX1JlZlR5cGU9cHl0aG9uMzMuX1B5V2Vha3JlZl9SZWZUeXBlIERBVEEKLSAgX1B5X0J1aWxkVmFsdWVfU2l6ZVQ9cHl0aG9uMzMuX1B5X0J1aWxkVmFsdWVfU2l6ZVQKLSAgX1B5X0NoZWNrUmVjdXJzaW9uTGltaXQ9cHl0aG9uMzMuX1B5X0NoZWNrUmVjdXJzaW9uTGltaXQgREFUQQotICBfUHlfQ2hlY2tSZWN1cnNpdmVDYWxsPXB5dGhvbjMzLl9QeV9DaGVja1JlY3Vyc2l2ZUNhbGwKLSAgX1B5X0RlYWxsb2M9cHl0aG9uMzMuX1B5X0RlYWxsb2MKLSAgX1B5X0VsbGlwc2lzT2JqZWN0PXB5dGhvbjMzLl9QeV9FbGxpcHNpc09iamVjdCBEQVRBCi0gIF9QeV9GYWxzZVN0cnVjdD1weXRob24zMy5fUHlfRmFsc2VTdHJ1Y3QgREFUQQotICBfUHlfTm9uZVN0cnVjdD1weXRob24zMy5fUHlfTm9uZVN0cnVjdCBEQVRBCi0gIF9QeV9Ob3RJbXBsZW1lbnRlZFN0cnVjdD1weXRob24zMy5fUHlfTm90SW1wbGVtZW50ZWRTdHJ1Y3QgREFUQQotICBfUHlfU3dhcHBlZE9wPXB5dGhvbjMzLl9QeV9Td2FwcGVkT3AgREFUQQotICBfUHlfVHJ1ZVN0cnVjdD1weXRob24zMy5fUHlfVHJ1ZVN0cnVjdCBEQVRBCi0gIF9QeV9WYUJ1aWxkVmFsdWVfU2l6ZVQ9cHl0aG9uMzMuX1B5X1ZhQnVpbGRWYWx1ZV9TaXplVAotICBfUHlBcmdfUGFyc2VfU2l6ZVQ9cHl0aG9uMzMuX1B5QXJnX1BhcnNlX1NpemVUCi0gIF9QeUFyZ19QYXJzZVR1cGxlX1NpemVUPXB5dGhvbjMzLl9QeUFyZ19QYXJzZVR1cGxlX1NpemVUCi0gIF9QeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHNfU2l6ZVQ9cHl0aG9uMzMuX1B5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3Jkc19TaXplVAotICBfUHlBcmdfVmFQYXJzZV9TaXplVD1weXRob24zMy5fUHlBcmdfVmFQYXJzZV9TaXplVAotICBfUHlBcmdfVmFQYXJzZVR1cGxlQW5kS2V5d29yZHNfU2l6ZVQ9cHl0aG9uMzMuX1B5QXJnX1ZhUGFyc2VUdXBsZUFuZEtleXdvcmRzX1NpemVUCi0gIF9QeV9CdWlsZFZhbHVlX1NpemVUPXB5dGhvbjMzLl9QeV9CdWlsZFZhbHVlX1NpemVUCisgIFB5QXJnX1BhcnNlPXB5dGhvbjM0LlB5QXJnX1BhcnNlCisgIFB5QXJnX1BhcnNlVHVwbGU9cHl0aG9uMzQuUHlBcmdfUGFyc2VUdXBsZQorICBQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHM9cHl0aG9uMzQuUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzCisgIFB5QXJnX1VucGFja1R1cGxlPXB5dGhvbjM0LlB5QXJnX1VucGFja1R1cGxlCisgIFB5QXJnX1ZhUGFyc2U9cHl0aG9uMzQuUHlBcmdfVmFQYXJzZQorICBQeUFyZ19WYVBhcnNlVHVwbGVBbmRLZXl3b3Jkcz1weXRob24zNC5QeUFyZ19WYVBhcnNlVHVwbGVBbmRLZXl3b3JkcworICBQeUFyZ19WYWxpZGF0ZUtleXdvcmRBcmd1bWVudHM9cHl0aG9uMzQuUHlBcmdfVmFsaWRhdGVLZXl3b3JkQXJndW1lbnRzCisgIFB5QmFzZU9iamVjdF9UeXBlPXB5dGhvbjM0LlB5QmFzZU9iamVjdF9UeXBlIERBVEEKKyAgUHlCb29sX0Zyb21Mb25nPXB5dGhvbjM0LlB5Qm9vbF9Gcm9tTG9uZworICBQeUJvb2xfVHlwZT1weXRob24zNC5QeUJvb2xfVHlwZSBEQVRBCisgIFB5Qnl0ZUFycmF5SXRlcl9UeXBlPXB5dGhvbjM0LlB5Qnl0ZUFycmF5SXRlcl9UeXBlIERBVEEKKyAgUHlCeXRlQXJyYXlfQXNTdHJpbmc9cHl0aG9uMzQuUHlCeXRlQXJyYXlfQXNTdHJpbmcKKyAgUHlCeXRlQXJyYXlfQ29uY2F0PXB5dGhvbjM0LlB5Qnl0ZUFycmF5X0NvbmNhdAorICBQeUJ5dGVBcnJheV9Gcm9tT2JqZWN0PXB5dGhvbjM0LlB5Qnl0ZUFycmF5X0Zyb21PYmplY3QKKyAgUHlCeXRlQXJyYXlfRnJvbVN0cmluZ0FuZFNpemU9cHl0aG9uMzQuUHlCeXRlQXJyYXlfRnJvbVN0cmluZ0FuZFNpemUKKyAgUHlCeXRlQXJyYXlfUmVzaXplPXB5dGhvbjM0LlB5Qnl0ZUFycmF5X1Jlc2l6ZQorICBQeUJ5dGVBcnJheV9TaXplPXB5dGhvbjM0LlB5Qnl0ZUFycmF5X1NpemUKKyAgUHlCeXRlQXJyYXlfVHlwZT1weXRob24zNC5QeUJ5dGVBcnJheV9UeXBlIERBVEEKKyAgUHlCeXRlc0l0ZXJfVHlwZT1weXRob24zNC5QeUJ5dGVzSXRlcl9UeXBlIERBVEEKKyAgUHlCeXRlc19Bc1N0cmluZz1weXRob24zNC5QeUJ5dGVzX0FzU3RyaW5nCisgIFB5Qnl0ZXNfQXNTdHJpbmdBbmRTaXplPXB5dGhvbjM0LlB5Qnl0ZXNfQXNTdHJpbmdBbmRTaXplCisgIFB5Qnl0ZXNfQ29uY2F0PXB5dGhvbjM0LlB5Qnl0ZXNfQ29uY2F0CisgIFB5Qnl0ZXNfQ29uY2F0QW5kRGVsPXB5dGhvbjM0LlB5Qnl0ZXNfQ29uY2F0QW5kRGVsCisgIFB5Qnl0ZXNfRGVjb2RlRXNjYXBlPXB5dGhvbjM0LlB5Qnl0ZXNfRGVjb2RlRXNjYXBlCisgIFB5Qnl0ZXNfRnJvbUZvcm1hdD1weXRob24zNC5QeUJ5dGVzX0Zyb21Gb3JtYXQKKyAgUHlCeXRlc19Gcm9tRm9ybWF0Vj1weXRob24zNC5QeUJ5dGVzX0Zyb21Gb3JtYXRWCisgIFB5Qnl0ZXNfRnJvbU9iamVjdD1weXRob24zNC5QeUJ5dGVzX0Zyb21PYmplY3QKKyAgUHlCeXRlc19Gcm9tU3RyaW5nPXB5dGhvbjM0LlB5Qnl0ZXNfRnJvbVN0cmluZworICBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplPXB5dGhvbjM0LlB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUKKyAgUHlCeXRlc19SZXByPXB5dGhvbjM0LlB5Qnl0ZXNfUmVwcgorICBQeUJ5dGVzX1NpemU9cHl0aG9uMzQuUHlCeXRlc19TaXplCisgIFB5Qnl0ZXNfVHlwZT1weXRob24zNC5QeUJ5dGVzX1R5cGUgREFUQQorICBQeUNGdW5jdGlvbl9DYWxsPXB5dGhvbjM0LlB5Q0Z1bmN0aW9uX0NhbGwKKyAgUHlDRnVuY3Rpb25fQ2xlYXJGcmVlTGlzdD1weXRob24zNC5QeUNGdW5jdGlvbl9DbGVhckZyZWVMaXN0CisgIFB5Q0Z1bmN0aW9uX0dldEZsYWdzPXB5dGhvbjM0LlB5Q0Z1bmN0aW9uX0dldEZsYWdzCisgIFB5Q0Z1bmN0aW9uX0dldEZ1bmN0aW9uPXB5dGhvbjM0LlB5Q0Z1bmN0aW9uX0dldEZ1bmN0aW9uCisgIFB5Q0Z1bmN0aW9uX0dldFNlbGY9cHl0aG9uMzQuUHlDRnVuY3Rpb25fR2V0U2VsZgorICBQeUNGdW5jdGlvbl9OZXc9cHl0aG9uMzQuUHlDRnVuY3Rpb25fTmV3CisgIFB5Q0Z1bmN0aW9uX05ld0V4PXB5dGhvbjM0LlB5Q0Z1bmN0aW9uX05ld0V4CisgIFB5Q0Z1bmN0aW9uX1R5cGU9cHl0aG9uMzQuUHlDRnVuY3Rpb25fVHlwZSBEQVRBCisgIFB5Q2FsbEl0ZXJfTmV3PXB5dGhvbjM0LlB5Q2FsbEl0ZXJfTmV3CisgIFB5Q2FsbEl0ZXJfVHlwZT1weXRob24zNC5QeUNhbGxJdGVyX1R5cGUgREFUQQorICBQeUNhbGxhYmxlX0NoZWNrPXB5dGhvbjM0LlB5Q2FsbGFibGVfQ2hlY2sKKyAgUHlDYXBzdWxlX0dldENvbnRleHQ9cHl0aG9uMzQuUHlDYXBzdWxlX0dldENvbnRleHQKKyAgUHlDYXBzdWxlX0dldERlc3RydWN0b3I9cHl0aG9uMzQuUHlDYXBzdWxlX0dldERlc3RydWN0b3IKKyAgUHlDYXBzdWxlX0dldE5hbWU9cHl0aG9uMzQuUHlDYXBzdWxlX0dldE5hbWUKKyAgUHlDYXBzdWxlX0dldFBvaW50ZXI9cHl0aG9uMzQuUHlDYXBzdWxlX0dldFBvaW50ZXIKKyAgUHlDYXBzdWxlX0ltcG9ydD1weXRob24zNC5QeUNhcHN1bGVfSW1wb3J0CisgIFB5Q2Fwc3VsZV9Jc1ZhbGlkPXB5dGhvbjM0LlB5Q2Fwc3VsZV9Jc1ZhbGlkCisgIFB5Q2Fwc3VsZV9OZXc9cHl0aG9uMzQuUHlDYXBzdWxlX05ldworICBQeUNhcHN1bGVfU2V0Q29udGV4dD1weXRob24zNC5QeUNhcHN1bGVfU2V0Q29udGV4dAorICBQeUNhcHN1bGVfU2V0RGVzdHJ1Y3Rvcj1weXRob24zNC5QeUNhcHN1bGVfU2V0RGVzdHJ1Y3RvcgorICBQeUNhcHN1bGVfU2V0TmFtZT1weXRob24zNC5QeUNhcHN1bGVfU2V0TmFtZQorICBQeUNhcHN1bGVfU2V0UG9pbnRlcj1weXRob24zNC5QeUNhcHN1bGVfU2V0UG9pbnRlcgorICBQeUNhcHN1bGVfVHlwZT1weXRob24zNC5QeUNhcHN1bGVfVHlwZSBEQVRBCisgIFB5Q2xhc3NNZXRob2REZXNjcl9UeXBlPXB5dGhvbjM0LlB5Q2xhc3NNZXRob2REZXNjcl9UeXBlIERBVEEKKyAgUHlDb2RlY19CYWNrc2xhc2hSZXBsYWNlRXJyb3JzPXB5dGhvbjM0LlB5Q29kZWNfQmFja3NsYXNoUmVwbGFjZUVycm9ycworICBQeUNvZGVjX0RlY29kZT1weXRob24zNC5QeUNvZGVjX0RlY29kZQorICBQeUNvZGVjX0RlY29kZXI9cHl0aG9uMzQuUHlDb2RlY19EZWNvZGVyCisgIFB5Q29kZWNfRW5jb2RlPXB5dGhvbjM0LlB5Q29kZWNfRW5jb2RlCisgIFB5Q29kZWNfRW5jb2Rlcj1weXRob24zNC5QeUNvZGVjX0VuY29kZXIKKyAgUHlDb2RlY19JZ25vcmVFcnJvcnM9cHl0aG9uMzQuUHlDb2RlY19JZ25vcmVFcnJvcnMKKyAgUHlDb2RlY19JbmNyZW1lbnRhbERlY29kZXI9cHl0aG9uMzQuUHlDb2RlY19JbmNyZW1lbnRhbERlY29kZXIKKyAgUHlDb2RlY19JbmNyZW1lbnRhbEVuY29kZXI9cHl0aG9uMzQuUHlDb2RlY19JbmNyZW1lbnRhbEVuY29kZXIKKyAgUHlDb2RlY19Lbm93bkVuY29kaW5nPXB5dGhvbjM0LlB5Q29kZWNfS25vd25FbmNvZGluZworICBQeUNvZGVjX0xvb2t1cEVycm9yPXB5dGhvbjM0LlB5Q29kZWNfTG9va3VwRXJyb3IKKyAgUHlDb2RlY19SZWdpc3Rlcj1weXRob24zNC5QeUNvZGVjX1JlZ2lzdGVyCisgIFB5Q29kZWNfUmVnaXN0ZXJFcnJvcj1weXRob24zNC5QeUNvZGVjX1JlZ2lzdGVyRXJyb3IKKyAgUHlDb2RlY19SZXBsYWNlRXJyb3JzPXB5dGhvbjM0LlB5Q29kZWNfUmVwbGFjZUVycm9ycworICBQeUNvZGVjX1N0cmVhbVJlYWRlcj1weXRob24zNC5QeUNvZGVjX1N0cmVhbVJlYWRlcgorICBQeUNvZGVjX1N0cmVhbVdyaXRlcj1weXRob24zNC5QeUNvZGVjX1N0cmVhbVdyaXRlcgorICBQeUNvZGVjX1N0cmljdEVycm9ycz1weXRob24zNC5QeUNvZGVjX1N0cmljdEVycm9ycworICBQeUNvZGVjX1hNTENoYXJSZWZSZXBsYWNlRXJyb3JzPXB5dGhvbjM0LlB5Q29kZWNfWE1MQ2hhclJlZlJlcGxhY2VFcnJvcnMKKyAgUHlDb21wbGV4X0Zyb21Eb3VibGVzPXB5dGhvbjM0LlB5Q29tcGxleF9Gcm9tRG91YmxlcworICBQeUNvbXBsZXhfSW1hZ0FzRG91YmxlPXB5dGhvbjM0LlB5Q29tcGxleF9JbWFnQXNEb3VibGUKKyAgUHlDb21wbGV4X1JlYWxBc0RvdWJsZT1weXRob24zNC5QeUNvbXBsZXhfUmVhbEFzRG91YmxlCisgIFB5Q29tcGxleF9UeXBlPXB5dGhvbjM0LlB5Q29tcGxleF9UeXBlIERBVEEKKyAgUHlEZXNjcl9OZXdDbGFzc01ldGhvZD1weXRob24zNC5QeURlc2NyX05ld0NsYXNzTWV0aG9kCisgIFB5RGVzY3JfTmV3R2V0U2V0PXB5dGhvbjM0LlB5RGVzY3JfTmV3R2V0U2V0CisgIFB5RGVzY3JfTmV3TWVtYmVyPXB5dGhvbjM0LlB5RGVzY3JfTmV3TWVtYmVyCisgIFB5RGVzY3JfTmV3TWV0aG9kPXB5dGhvbjM0LlB5RGVzY3JfTmV3TWV0aG9kCisgIFB5RGljdEl0ZW1zX1R5cGU9cHl0aG9uMzQuUHlEaWN0SXRlbXNfVHlwZSBEQVRBCisgIFB5RGljdEl0ZXJJdGVtX1R5cGU9cHl0aG9uMzQuUHlEaWN0SXRlckl0ZW1fVHlwZSBEQVRBCisgIFB5RGljdEl0ZXJLZXlfVHlwZT1weXRob24zNC5QeURpY3RJdGVyS2V5X1R5cGUgREFUQQorICBQeURpY3RJdGVyVmFsdWVfVHlwZT1weXRob24zNC5QeURpY3RJdGVyVmFsdWVfVHlwZSBEQVRBCisgIFB5RGljdEtleXNfVHlwZT1weXRob24zNC5QeURpY3RLZXlzX1R5cGUgREFUQQorICBQeURpY3RQcm94eV9OZXc9cHl0aG9uMzQuUHlEaWN0UHJveHlfTmV3CisgIFB5RGljdFByb3h5X1R5cGU9cHl0aG9uMzQuUHlEaWN0UHJveHlfVHlwZSBEQVRBCisgIFB5RGljdFZhbHVlc19UeXBlPXB5dGhvbjM0LlB5RGljdFZhbHVlc19UeXBlIERBVEEKKyAgUHlEaWN0X0NsZWFyPXB5dGhvbjM0LlB5RGljdF9DbGVhcgorICBQeURpY3RfQ29udGFpbnM9cHl0aG9uMzQuUHlEaWN0X0NvbnRhaW5zCisgIFB5RGljdF9Db3B5PXB5dGhvbjM0LlB5RGljdF9Db3B5CisgIFB5RGljdF9EZWxJdGVtPXB5dGhvbjM0LlB5RGljdF9EZWxJdGVtCisgIFB5RGljdF9EZWxJdGVtU3RyaW5nPXB5dGhvbjM0LlB5RGljdF9EZWxJdGVtU3RyaW5nCisgIFB5RGljdF9HZXRJdGVtPXB5dGhvbjM0LlB5RGljdF9HZXRJdGVtCisgIFB5RGljdF9HZXRJdGVtU3RyaW5nPXB5dGhvbjM0LlB5RGljdF9HZXRJdGVtU3RyaW5nCisgIFB5RGljdF9HZXRJdGVtV2l0aEVycm9yPXB5dGhvbjM0LlB5RGljdF9HZXRJdGVtV2l0aEVycm9yCisgIFB5RGljdF9JdGVtcz1weXRob24zNC5QeURpY3RfSXRlbXMKKyAgUHlEaWN0X0tleXM9cHl0aG9uMzQuUHlEaWN0X0tleXMKKyAgUHlEaWN0X01lcmdlPXB5dGhvbjM0LlB5RGljdF9NZXJnZQorICBQeURpY3RfTWVyZ2VGcm9tU2VxMj1weXRob24zNC5QeURpY3RfTWVyZ2VGcm9tU2VxMgorICBQeURpY3RfTmV3PXB5dGhvbjM0LlB5RGljdF9OZXcKKyAgUHlEaWN0X05leHQ9cHl0aG9uMzQuUHlEaWN0X05leHQKKyAgUHlEaWN0X1NldEl0ZW09cHl0aG9uMzQuUHlEaWN0X1NldEl0ZW0KKyAgUHlEaWN0X1NldEl0ZW1TdHJpbmc9cHl0aG9uMzQuUHlEaWN0X1NldEl0ZW1TdHJpbmcKKyAgUHlEaWN0X1NpemU9cHl0aG9uMzQuUHlEaWN0X1NpemUKKyAgUHlEaWN0X1R5cGU9cHl0aG9uMzQuUHlEaWN0X1R5cGUgREFUQQorICBQeURpY3RfVXBkYXRlPXB5dGhvbjM0LlB5RGljdF9VcGRhdGUKKyAgUHlEaWN0X1ZhbHVlcz1weXRob24zNC5QeURpY3RfVmFsdWVzCisgIFB5RWxsaXBzaXNfVHlwZT1weXRob24zNC5QeUVsbGlwc2lzX1R5cGUgREFUQQorICBQeUVudW1fVHlwZT1weXRob24zNC5QeUVudW1fVHlwZSBEQVRBCisgIFB5RXJyX0JhZEFyZ3VtZW50PXB5dGhvbjM0LlB5RXJyX0JhZEFyZ3VtZW50CisgIFB5RXJyX0JhZEludGVybmFsQ2FsbD1weXRob24zNC5QeUVycl9CYWRJbnRlcm5hbENhbGwKKyAgUHlFcnJfQ2hlY2tTaWduYWxzPXB5dGhvbjM0LlB5RXJyX0NoZWNrU2lnbmFscworICBQeUVycl9DbGVhcj1weXRob24zNC5QeUVycl9DbGVhcgorICBQeUVycl9EaXNwbGF5PXB5dGhvbjM0LlB5RXJyX0Rpc3BsYXkKKyAgUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcz1weXRob24zNC5QeUVycl9FeGNlcHRpb25NYXRjaGVzCisgIFB5RXJyX0ZldGNoPXB5dGhvbjM0LlB5RXJyX0ZldGNoCisgIFB5RXJyX0Zvcm1hdD1weXRob24zNC5QeUVycl9Gb3JtYXQKKyAgUHlFcnJfR2l2ZW5FeGNlcHRpb25NYXRjaGVzPXB5dGhvbjM0LlB5RXJyX0dpdmVuRXhjZXB0aW9uTWF0Y2hlcworICBQeUVycl9OZXdFeGNlcHRpb249cHl0aG9uMzQuUHlFcnJfTmV3RXhjZXB0aW9uCisgIFB5RXJyX05ld0V4Y2VwdGlvbldpdGhEb2M9cHl0aG9uMzQuUHlFcnJfTmV3RXhjZXB0aW9uV2l0aERvYworICBQeUVycl9Ob01lbW9yeT1weXRob24zNC5QeUVycl9Ob01lbW9yeQorICBQeUVycl9Ob3JtYWxpemVFeGNlcHRpb249cHl0aG9uMzQuUHlFcnJfTm9ybWFsaXplRXhjZXB0aW9uCisgIFB5RXJyX09jY3VycmVkPXB5dGhvbjM0LlB5RXJyX09jY3VycmVkCisgIFB5RXJyX1ByaW50PXB5dGhvbjM0LlB5RXJyX1ByaW50CisgIFB5RXJyX1ByaW50RXg9cHl0aG9uMzQuUHlFcnJfUHJpbnRFeAorICBQeUVycl9Qcm9ncmFtVGV4dD1weXRob24zNC5QeUVycl9Qcm9ncmFtVGV4dAorICBQeUVycl9SZXN0b3JlPXB5dGhvbjM0LlB5RXJyX1Jlc3RvcmUKKyAgUHlFcnJfU2V0RnJvbUVycm5vPXB5dGhvbjM0LlB5RXJyX1NldEZyb21FcnJubworICBQeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWU9cHl0aG9uMzQuUHlFcnJfU2V0RnJvbUVycm5vV2l0aEZpbGVuYW1lCisgIFB5RXJyX1NldEZyb21FcnJub1dpdGhGaWxlbmFtZU9iamVjdD1weXRob24zNC5QeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWVPYmplY3QKKyAgUHlFcnJfU2V0SW50ZXJydXB0PXB5dGhvbjM0LlB5RXJyX1NldEludGVycnVwdAorICBQeUVycl9TZXROb25lPXB5dGhvbjM0LlB5RXJyX1NldE5vbmUKKyAgUHlFcnJfU2V0T2JqZWN0PXB5dGhvbjM0LlB5RXJyX1NldE9iamVjdAorICBQeUVycl9TZXRTdHJpbmc9cHl0aG9uMzQuUHlFcnJfU2V0U3RyaW5nCisgIFB5RXJyX1N5bnRheExvY2F0aW9uPXB5dGhvbjM0LlB5RXJyX1N5bnRheExvY2F0aW9uCisgIFB5RXJyX1dhcm5FeD1weXRob24zNC5QeUVycl9XYXJuRXgKKyAgUHlFcnJfV2FybkV4cGxpY2l0PXB5dGhvbjM0LlB5RXJyX1dhcm5FeHBsaWNpdAorICBQeUVycl9XYXJuRm9ybWF0PXB5dGhvbjM0LlB5RXJyX1dhcm5Gb3JtYXQKKyAgUHlFcnJfV3JpdGVVbnJhaXNhYmxlPXB5dGhvbjM0LlB5RXJyX1dyaXRlVW5yYWlzYWJsZQorICBQeUV2YWxfQWNxdWlyZUxvY2s9cHl0aG9uMzQuUHlFdmFsX0FjcXVpcmVMb2NrCisgIFB5RXZhbF9BY3F1aXJlVGhyZWFkPXB5dGhvbjM0LlB5RXZhbF9BY3F1aXJlVGhyZWFkCisgIFB5RXZhbF9DYWxsRnVuY3Rpb249cHl0aG9uMzQuUHlFdmFsX0NhbGxGdW5jdGlvbgorICBQeUV2YWxfQ2FsbE1ldGhvZD1weXRob24zNC5QeUV2YWxfQ2FsbE1ldGhvZAorICBQeUV2YWxfQ2FsbE9iamVjdFdpdGhLZXl3b3Jkcz1weXRob24zNC5QeUV2YWxfQ2FsbE9iamVjdFdpdGhLZXl3b3JkcworICBQeUV2YWxfRXZhbENvZGU9cHl0aG9uMzQuUHlFdmFsX0V2YWxDb2RlCisgIFB5RXZhbF9FdmFsQ29kZUV4PXB5dGhvbjM0LlB5RXZhbF9FdmFsQ29kZUV4CisgIFB5RXZhbF9FdmFsRnJhbWU9cHl0aG9uMzQuUHlFdmFsX0V2YWxGcmFtZQorICBQeUV2YWxfRXZhbEZyYW1lRXg9cHl0aG9uMzQuUHlFdmFsX0V2YWxGcmFtZUV4CisgIFB5RXZhbF9HZXRCdWlsdGlucz1weXRob24zNC5QeUV2YWxfR2V0QnVpbHRpbnMKKyAgUHlFdmFsX0dldENhbGxTdGF0cz1weXRob24zNC5QeUV2YWxfR2V0Q2FsbFN0YXRzCisgIFB5RXZhbF9HZXRGcmFtZT1weXRob24zNC5QeUV2YWxfR2V0RnJhbWUKKyAgUHlFdmFsX0dldEZ1bmNEZXNjPXB5dGhvbjM0LlB5RXZhbF9HZXRGdW5jRGVzYworICBQeUV2YWxfR2V0RnVuY05hbWU9cHl0aG9uMzQuUHlFdmFsX0dldEZ1bmNOYW1lCisgIFB5RXZhbF9HZXRHbG9iYWxzPXB5dGhvbjM0LlB5RXZhbF9HZXRHbG9iYWxzCisgIFB5RXZhbF9HZXRMb2NhbHM9cHl0aG9uMzQuUHlFdmFsX0dldExvY2FscworICBQeUV2YWxfSW5pdFRocmVhZHM9cHl0aG9uMzQuUHlFdmFsX0luaXRUaHJlYWRzCisgIFB5RXZhbF9SZUluaXRUaHJlYWRzPXB5dGhvbjM0LlB5RXZhbF9SZUluaXRUaHJlYWRzCisgIFB5RXZhbF9SZWxlYXNlTG9jaz1weXRob24zNC5QeUV2YWxfUmVsZWFzZUxvY2sKKyAgUHlFdmFsX1JlbGVhc2VUaHJlYWQ9cHl0aG9uMzQuUHlFdmFsX1JlbGVhc2VUaHJlYWQKKyAgUHlFdmFsX1Jlc3RvcmVUaHJlYWQ9cHl0aG9uMzQuUHlFdmFsX1Jlc3RvcmVUaHJlYWQKKyAgUHlFdmFsX1NhdmVUaHJlYWQ9cHl0aG9uMzQuUHlFdmFsX1NhdmVUaHJlYWQKKyAgUHlFdmFsX1RocmVhZHNJbml0aWFsaXplZD1weXRob24zNC5QeUV2YWxfVGhyZWFkc0luaXRpYWxpemVkCisgIFB5RXhjX0FyaXRobWV0aWNFcnJvcj1weXRob24zNC5QeUV4Y19Bcml0aG1ldGljRXJyb3IgREFUQQorICBQeUV4Y19Bc3NlcnRpb25FcnJvcj1weXRob24zNC5QeUV4Y19Bc3NlcnRpb25FcnJvciBEQVRBCisgIFB5RXhjX0F0dHJpYnV0ZUVycm9yPXB5dGhvbjM0LlB5RXhjX0F0dHJpYnV0ZUVycm9yIERBVEEKKyAgUHlFeGNfQmFzZUV4Y2VwdGlvbj1weXRob24zNC5QeUV4Y19CYXNlRXhjZXB0aW9uIERBVEEKKyAgUHlFeGNfQnVmZmVyRXJyb3I9cHl0aG9uMzQuUHlFeGNfQnVmZmVyRXJyb3IgREFUQQorICBQeUV4Y19CeXRlc1dhcm5pbmc9cHl0aG9uMzQuUHlFeGNfQnl0ZXNXYXJuaW5nIERBVEEKKyAgUHlFeGNfRGVwcmVjYXRpb25XYXJuaW5nPXB5dGhvbjM0LlB5RXhjX0RlcHJlY2F0aW9uV2FybmluZyBEQVRBCisgIFB5RXhjX0VPRkVycm9yPXB5dGhvbjM0LlB5RXhjX0VPRkVycm9yIERBVEEKKyAgUHlFeGNfRW52aXJvbm1lbnRFcnJvcj1weXRob24zNC5QeUV4Y19FbnZpcm9ubWVudEVycm9yIERBVEEKKyAgUHlFeGNfRXhjZXB0aW9uPXB5dGhvbjM0LlB5RXhjX0V4Y2VwdGlvbiBEQVRBCisgIFB5RXhjX0Zsb2F0aW5nUG9pbnRFcnJvcj1weXRob24zNC5QeUV4Y19GbG9hdGluZ1BvaW50RXJyb3IgREFUQQorICBQeUV4Y19GdXR1cmVXYXJuaW5nPXB5dGhvbjM0LlB5RXhjX0Z1dHVyZVdhcm5pbmcgREFUQQorICBQeUV4Y19HZW5lcmF0b3JFeGl0PXB5dGhvbjM0LlB5RXhjX0dlbmVyYXRvckV4aXQgREFUQQorICBQeUV4Y19JT0Vycm9yPXB5dGhvbjM0LlB5RXhjX0lPRXJyb3IgREFUQQorICBQeUV4Y19JbXBvcnRFcnJvcj1weXRob24zNC5QeUV4Y19JbXBvcnRFcnJvciBEQVRBCisgIFB5RXhjX0ltcG9ydFdhcm5pbmc9cHl0aG9uMzQuUHlFeGNfSW1wb3J0V2FybmluZyBEQVRBCisgIFB5RXhjX0luZGVudGF0aW9uRXJyb3I9cHl0aG9uMzQuUHlFeGNfSW5kZW50YXRpb25FcnJvciBEQVRBCisgIFB5RXhjX0luZGV4RXJyb3I9cHl0aG9uMzQuUHlFeGNfSW5kZXhFcnJvciBEQVRBCisgIFB5RXhjX0tleUVycm9yPXB5dGhvbjM0LlB5RXhjX0tleUVycm9yIERBVEEKKyAgUHlFeGNfS2V5Ym9hcmRJbnRlcnJ1cHQ9cHl0aG9uMzQuUHlFeGNfS2V5Ym9hcmRJbnRlcnJ1cHQgREFUQQorICBQeUV4Y19Mb29rdXBFcnJvcj1weXRob24zNC5QeUV4Y19Mb29rdXBFcnJvciBEQVRBCisgIFB5RXhjX01lbW9yeUVycm9yPXB5dGhvbjM0LlB5RXhjX01lbW9yeUVycm9yIERBVEEKKyAgUHlFeGNfTWVtb3J5RXJyb3JJbnN0PXB5dGhvbjM0LlB5RXhjX01lbW9yeUVycm9ySW5zdCBEQVRBCisgIFB5RXhjX05hbWVFcnJvcj1weXRob24zNC5QeUV4Y19OYW1lRXJyb3IgREFUQQorICBQeUV4Y19Ob3RJbXBsZW1lbnRlZEVycm9yPXB5dGhvbjM0LlB5RXhjX05vdEltcGxlbWVudGVkRXJyb3IgREFUQQorICBQeUV4Y19PU0Vycm9yPXB5dGhvbjM0LlB5RXhjX09TRXJyb3IgREFUQQorICBQeUV4Y19PdmVyZmxvd0Vycm9yPXB5dGhvbjM0LlB5RXhjX092ZXJmbG93RXJyb3IgREFUQQorICBQeUV4Y19QZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nPXB5dGhvbjM0LlB5RXhjX1BlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcgREFUQQorICBQeUV4Y19SZWN1cnNpb25FcnJvckluc3Q9cHl0aG9uMzQuUHlFeGNfUmVjdXJzaW9uRXJyb3JJbnN0IERBVEEKKyAgUHlFeGNfUmVmZXJlbmNlRXJyb3I9cHl0aG9uMzQuUHlFeGNfUmVmZXJlbmNlRXJyb3IgREFUQQorICBQeUV4Y19SdW50aW1lRXJyb3I9cHl0aG9uMzQuUHlFeGNfUnVudGltZUVycm9yIERBVEEKKyAgUHlFeGNfUnVudGltZVdhcm5pbmc9cHl0aG9uMzQuUHlFeGNfUnVudGltZVdhcm5pbmcgREFUQQorICBQeUV4Y19TdG9wSXRlcmF0aW9uPXB5dGhvbjM0LlB5RXhjX1N0b3BJdGVyYXRpb24gREFUQQorICBQeUV4Y19TeW50YXhFcnJvcj1weXRob24zNC5QeUV4Y19TeW50YXhFcnJvciBEQVRBCisgIFB5RXhjX1N5bnRheFdhcm5pbmc9cHl0aG9uMzQuUHlFeGNfU3ludGF4V2FybmluZyBEQVRBCisgIFB5RXhjX1N5c3RlbUVycm9yPXB5dGhvbjM0LlB5RXhjX1N5c3RlbUVycm9yIERBVEEKKyAgUHlFeGNfU3lzdGVtRXhpdD1weXRob24zNC5QeUV4Y19TeXN0ZW1FeGl0IERBVEEKKyAgUHlFeGNfVGFiRXJyb3I9cHl0aG9uMzQuUHlFeGNfVGFiRXJyb3IgREFUQQorICBQeUV4Y19UeXBlRXJyb3I9cHl0aG9uMzQuUHlFeGNfVHlwZUVycm9yIERBVEEKKyAgUHlFeGNfVW5ib3VuZExvY2FsRXJyb3I9cHl0aG9uMzQuUHlFeGNfVW5ib3VuZExvY2FsRXJyb3IgREFUQQorICBQeUV4Y19Vbmljb2RlRGVjb2RlRXJyb3I9cHl0aG9uMzQuUHlFeGNfVW5pY29kZURlY29kZUVycm9yIERBVEEKKyAgUHlFeGNfVW5pY29kZUVuY29kZUVycm9yPXB5dGhvbjM0LlB5RXhjX1VuaWNvZGVFbmNvZGVFcnJvciBEQVRBCisgIFB5RXhjX1VuaWNvZGVFcnJvcj1weXRob24zNC5QeUV4Y19Vbmljb2RlRXJyb3IgREFUQQorICBQeUV4Y19Vbmljb2RlVHJhbnNsYXRlRXJyb3I9cHl0aG9uMzQuUHlFeGNfVW5pY29kZVRyYW5zbGF0ZUVycm9yIERBVEEKKyAgUHlFeGNfVW5pY29kZVdhcm5pbmc9cHl0aG9uMzQuUHlFeGNfVW5pY29kZVdhcm5pbmcgREFUQQorICBQeUV4Y19Vc2VyV2FybmluZz1weXRob24zNC5QeUV4Y19Vc2VyV2FybmluZyBEQVRBCisgIFB5RXhjX1ZhbHVlRXJyb3I9cHl0aG9uMzQuUHlFeGNfVmFsdWVFcnJvciBEQVRBCisgIFB5RXhjX1dhcm5pbmc9cHl0aG9uMzQuUHlFeGNfV2FybmluZyBEQVRBCisgIFB5RXhjX1plcm9EaXZpc2lvbkVycm9yPXB5dGhvbjM0LlB5RXhjX1plcm9EaXZpc2lvbkVycm9yIERBVEEKKyAgUHlFeGNlcHRpb25fR2V0Q2F1c2U9cHl0aG9uMzQuUHlFeGNlcHRpb25fR2V0Q2F1c2UKKyAgUHlFeGNlcHRpb25fR2V0Q29udGV4dD1weXRob24zNC5QeUV4Y2VwdGlvbl9HZXRDb250ZXh0CisgIFB5RXhjZXB0aW9uX0dldFRyYWNlYmFjaz1weXRob24zNC5QeUV4Y2VwdGlvbl9HZXRUcmFjZWJhY2sKKyAgUHlFeGNlcHRpb25fU2V0Q2F1c2U9cHl0aG9uMzQuUHlFeGNlcHRpb25fU2V0Q2F1c2UKKyAgUHlFeGNlcHRpb25fU2V0Q29udGV4dD1weXRob24zNC5QeUV4Y2VwdGlvbl9TZXRDb250ZXh0CisgIFB5RXhjZXB0aW9uX1NldFRyYWNlYmFjaz1weXRob24zNC5QeUV4Y2VwdGlvbl9TZXRUcmFjZWJhY2sKKyAgUHlGaWxlX0Zyb21GZD1weXRob24zNC5QeUZpbGVfRnJvbUZkCisgIFB5RmlsZV9HZXRMaW5lPXB5dGhvbjM0LlB5RmlsZV9HZXRMaW5lCisgIFB5RmlsZV9Xcml0ZU9iamVjdD1weXRob24zNC5QeUZpbGVfV3JpdGVPYmplY3QKKyAgUHlGaWxlX1dyaXRlU3RyaW5nPXB5dGhvbjM0LlB5RmlsZV9Xcml0ZVN0cmluZworICBQeUZpbHRlcl9UeXBlPXB5dGhvbjM0LlB5RmlsdGVyX1R5cGUgREFUQQorICBQeUZsb2F0X0FzRG91YmxlPXB5dGhvbjM0LlB5RmxvYXRfQXNEb3VibGUKKyAgUHlGbG9hdF9Gcm9tRG91YmxlPXB5dGhvbjM0LlB5RmxvYXRfRnJvbURvdWJsZQorICBQeUZsb2F0X0Zyb21TdHJpbmc9cHl0aG9uMzQuUHlGbG9hdF9Gcm9tU3RyaW5nCisgIFB5RmxvYXRfR2V0SW5mbz1weXRob24zNC5QeUZsb2F0X0dldEluZm8KKyAgUHlGbG9hdF9HZXRNYXg9cHl0aG9uMzQuUHlGbG9hdF9HZXRNYXgKKyAgUHlGbG9hdF9HZXRNaW49cHl0aG9uMzQuUHlGbG9hdF9HZXRNaW4KKyAgUHlGbG9hdF9UeXBlPXB5dGhvbjM0LlB5RmxvYXRfVHlwZSBEQVRBCisgIFB5RnJvemVuU2V0X05ldz1weXRob24zNC5QeUZyb3plblNldF9OZXcKKyAgUHlGcm96ZW5TZXRfVHlwZT1weXRob24zNC5QeUZyb3plblNldF9UeXBlIERBVEEKKyAgUHlHQ19Db2xsZWN0PXB5dGhvbjM0LlB5R0NfQ29sbGVjdAorICBQeUdJTFN0YXRlX0Vuc3VyZT1weXRob24zNC5QeUdJTFN0YXRlX0Vuc3VyZQorICBQeUdJTFN0YXRlX0dldFRoaXNUaHJlYWRTdGF0ZT1weXRob24zNC5QeUdJTFN0YXRlX0dldFRoaXNUaHJlYWRTdGF0ZQorICBQeUdJTFN0YXRlX1JlbGVhc2U9cHl0aG9uMzQuUHlHSUxTdGF0ZV9SZWxlYXNlCisgIFB5R2V0U2V0RGVzY3JfVHlwZT1weXRob24zNC5QeUdldFNldERlc2NyX1R5cGUgREFUQQorICBQeUltcG9ydF9BZGRNb2R1bGU9cHl0aG9uMzQuUHlJbXBvcnRfQWRkTW9kdWxlCisgIFB5SW1wb3J0X0FwcGVuZEluaXR0YWI9cHl0aG9uMzQuUHlJbXBvcnRfQXBwZW5kSW5pdHRhYgorICBQeUltcG9ydF9DbGVhbnVwPXB5dGhvbjM0LlB5SW1wb3J0X0NsZWFudXAKKyAgUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGU9cHl0aG9uMzQuUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGUKKyAgUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGVFeD1weXRob24zNC5QeUltcG9ydF9FeGVjQ29kZU1vZHVsZUV4CisgIFB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlV2l0aFBhdGhuYW1lcz1weXRob24zNC5QeUltcG9ydF9FeGVjQ29kZU1vZHVsZVdpdGhQYXRobmFtZXMKKyAgUHlJbXBvcnRfR2V0SW1wb3J0ZXI9cHl0aG9uMzQuUHlJbXBvcnRfR2V0SW1wb3J0ZXIKKyAgUHlJbXBvcnRfR2V0TWFnaWNOdW1iZXI9cHl0aG9uMzQuUHlJbXBvcnRfR2V0TWFnaWNOdW1iZXIKKyAgUHlJbXBvcnRfR2V0TWFnaWNUYWc9cHl0aG9uMzQuUHlJbXBvcnRfR2V0TWFnaWNUYWcKKyAgUHlJbXBvcnRfR2V0TW9kdWxlRGljdD1weXRob24zNC5QeUltcG9ydF9HZXRNb2R1bGVEaWN0CisgIFB5SW1wb3J0X0ltcG9ydD1weXRob24zNC5QeUltcG9ydF9JbXBvcnQKKyAgUHlJbXBvcnRfSW1wb3J0RnJvemVuTW9kdWxlPXB5dGhvbjM0LlB5SW1wb3J0X0ltcG9ydEZyb3plbk1vZHVsZQorICBQeUltcG9ydF9JbXBvcnRNb2R1bGU9cHl0aG9uMzQuUHlJbXBvcnRfSW1wb3J0TW9kdWxlCisgIFB5SW1wb3J0X0ltcG9ydE1vZHVsZUxldmVsPXB5dGhvbjM0LlB5SW1wb3J0X0ltcG9ydE1vZHVsZUxldmVsCisgIFB5SW1wb3J0X0ltcG9ydE1vZHVsZU5vQmxvY2s9cHl0aG9uMzQuUHlJbXBvcnRfSW1wb3J0TW9kdWxlTm9CbG9jaworICBQeUltcG9ydF9SZWxvYWRNb2R1bGU9cHl0aG9uMzQuUHlJbXBvcnRfUmVsb2FkTW9kdWxlCisgIFB5SW50ZXJwcmV0ZXJTdGF0ZV9DbGVhcj1weXRob24zNC5QeUludGVycHJldGVyU3RhdGVfQ2xlYXIKKyAgUHlJbnRlcnByZXRlclN0YXRlX0RlbGV0ZT1weXRob24zNC5QeUludGVycHJldGVyU3RhdGVfRGVsZXRlCisgIFB5SW50ZXJwcmV0ZXJTdGF0ZV9OZXc9cHl0aG9uMzQuUHlJbnRlcnByZXRlclN0YXRlX05ldworICBQeUl0ZXJfTmV4dD1weXRob24zNC5QeUl0ZXJfTmV4dAorICBQeUxpc3RJdGVyX1R5cGU9cHl0aG9uMzQuUHlMaXN0SXRlcl9UeXBlIERBVEEKKyAgUHlMaXN0UmV2SXRlcl9UeXBlPXB5dGhvbjM0LlB5TGlzdFJldkl0ZXJfVHlwZSBEQVRBCisgIFB5TGlzdF9BcHBlbmQ9cHl0aG9uMzQuUHlMaXN0X0FwcGVuZAorICBQeUxpc3RfQXNUdXBsZT1weXRob24zNC5QeUxpc3RfQXNUdXBsZQorICBQeUxpc3RfR2V0SXRlbT1weXRob24zNC5QeUxpc3RfR2V0SXRlbQorICBQeUxpc3RfR2V0U2xpY2U9cHl0aG9uMzQuUHlMaXN0X0dldFNsaWNlCisgIFB5TGlzdF9JbnNlcnQ9cHl0aG9uMzQuUHlMaXN0X0luc2VydAorICBQeUxpc3RfTmV3PXB5dGhvbjM0LlB5TGlzdF9OZXcKKyAgUHlMaXN0X1JldmVyc2U9cHl0aG9uMzQuUHlMaXN0X1JldmVyc2UKKyAgUHlMaXN0X1NldEl0ZW09cHl0aG9uMzQuUHlMaXN0X1NldEl0ZW0KKyAgUHlMaXN0X1NldFNsaWNlPXB5dGhvbjM0LlB5TGlzdF9TZXRTbGljZQorICBQeUxpc3RfU2l6ZT1weXRob24zNC5QeUxpc3RfU2l6ZQorICBQeUxpc3RfU29ydD1weXRob24zNC5QeUxpc3RfU29ydAorICBQeUxpc3RfVHlwZT1weXRob24zNC5QeUxpc3RfVHlwZSBEQVRBCisgIFB5TG9uZ1JhbmdlSXRlcl9UeXBlPXB5dGhvbjM0LlB5TG9uZ1JhbmdlSXRlcl9UeXBlIERBVEEKKyAgUHlMb25nX0FzRG91YmxlPXB5dGhvbjM0LlB5TG9uZ19Bc0RvdWJsZQorICBQeUxvbmdfQXNMb25nPXB5dGhvbjM0LlB5TG9uZ19Bc0xvbmcKKyAgUHlMb25nX0FzTG9uZ0FuZE92ZXJmbG93PXB5dGhvbjM0LlB5TG9uZ19Bc0xvbmdBbmRPdmVyZmxvdworICBQeUxvbmdfQXNMb25nTG9uZz1weXRob24zNC5QeUxvbmdfQXNMb25nTG9uZworICBQeUxvbmdfQXNMb25nTG9uZ0FuZE92ZXJmbG93PXB5dGhvbjM0LlB5TG9uZ19Bc0xvbmdMb25nQW5kT3ZlcmZsb3cKKyAgUHlMb25nX0FzU2l6ZV90PXB5dGhvbjM0LlB5TG9uZ19Bc1NpemVfdAorICBQeUxvbmdfQXNTc2l6ZV90PXB5dGhvbjM0LlB5TG9uZ19Bc1NzaXplX3QKKyAgUHlMb25nX0FzVW5zaWduZWRMb25nPXB5dGhvbjM0LlB5TG9uZ19Bc1Vuc2lnbmVkTG9uZworICBQeUxvbmdfQXNVbnNpZ25lZExvbmdMb25nPXB5dGhvbjM0LlB5TG9uZ19Bc1Vuc2lnbmVkTG9uZ0xvbmcKKyAgUHlMb25nX0FzVW5zaWduZWRMb25nTG9uZ01hc2s9cHl0aG9uMzQuUHlMb25nX0FzVW5zaWduZWRMb25nTG9uZ01hc2sKKyAgUHlMb25nX0FzVW5zaWduZWRMb25nTWFzaz1weXRob24zNC5QeUxvbmdfQXNVbnNpZ25lZExvbmdNYXNrCisgIFB5TG9uZ19Bc1ZvaWRQdHI9cHl0aG9uMzQuUHlMb25nX0FzVm9pZFB0cgorICBQeUxvbmdfRnJvbURvdWJsZT1weXRob24zNC5QeUxvbmdfRnJvbURvdWJsZQorICBQeUxvbmdfRnJvbUxvbmc9cHl0aG9uMzQuUHlMb25nX0Zyb21Mb25nCisgIFB5TG9uZ19Gcm9tTG9uZ0xvbmc9cHl0aG9uMzQuUHlMb25nX0Zyb21Mb25nTG9uZworICBQeUxvbmdfRnJvbVNpemVfdD1weXRob24zNC5QeUxvbmdfRnJvbVNpemVfdAorICBQeUxvbmdfRnJvbVNzaXplX3Q9cHl0aG9uMzQuUHlMb25nX0Zyb21Tc2l6ZV90CisgIFB5TG9uZ19Gcm9tU3RyaW5nPXB5dGhvbjM0LlB5TG9uZ19Gcm9tU3RyaW5nCisgIFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nPXB5dGhvbjM0LlB5TG9uZ19Gcm9tVW5zaWduZWRMb25nCisgIFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nTG9uZz1weXRob24zNC5QeUxvbmdfRnJvbVVuc2lnbmVkTG9uZ0xvbmcKKyAgUHlMb25nX0Zyb21Wb2lkUHRyPXB5dGhvbjM0LlB5TG9uZ19Gcm9tVm9pZFB0cgorICBQeUxvbmdfR2V0SW5mbz1weXRob24zNC5QeUxvbmdfR2V0SW5mbworICBQeUxvbmdfVHlwZT1weXRob24zNC5QeUxvbmdfVHlwZSBEQVRBCisgIFB5TWFwX1R5cGU9cHl0aG9uMzQuUHlNYXBfVHlwZSBEQVRBCisgIFB5TWFwcGluZ19DaGVjaz1weXRob24zNC5QeU1hcHBpbmdfQ2hlY2sKKyAgUHlNYXBwaW5nX0dldEl0ZW1TdHJpbmc9cHl0aG9uMzQuUHlNYXBwaW5nX0dldEl0ZW1TdHJpbmcKKyAgUHlNYXBwaW5nX0hhc0tleT1weXRob24zNC5QeU1hcHBpbmdfSGFzS2V5CisgIFB5TWFwcGluZ19IYXNLZXlTdHJpbmc9cHl0aG9uMzQuUHlNYXBwaW5nX0hhc0tleVN0cmluZworICBQeU1hcHBpbmdfSXRlbXM9cHl0aG9uMzQuUHlNYXBwaW5nX0l0ZW1zCisgIFB5TWFwcGluZ19LZXlzPXB5dGhvbjM0LlB5TWFwcGluZ19LZXlzCisgIFB5TWFwcGluZ19MZW5ndGg9cHl0aG9uMzQuUHlNYXBwaW5nX0xlbmd0aAorICBQeU1hcHBpbmdfU2V0SXRlbVN0cmluZz1weXRob24zNC5QeU1hcHBpbmdfU2V0SXRlbVN0cmluZworICBQeU1hcHBpbmdfU2l6ZT1weXRob24zNC5QeU1hcHBpbmdfU2l6ZQorICBQeU1hcHBpbmdfVmFsdWVzPXB5dGhvbjM0LlB5TWFwcGluZ19WYWx1ZXMKKyAgUHlNZW1fRnJlZT1weXRob24zNC5QeU1lbV9GcmVlCisgIFB5TWVtX01hbGxvYz1weXRob24zNC5QeU1lbV9NYWxsb2MKKyAgUHlNZW1fUmVhbGxvYz1weXRob24zNC5QeU1lbV9SZWFsbG9jCisgIFB5TWVtYmVyRGVzY3JfVHlwZT1weXRob24zNC5QeU1lbWJlckRlc2NyX1R5cGUgREFUQQorICBQeU1lbW9yeVZpZXdfRnJvbU9iamVjdD1weXRob24zNC5QeU1lbW9yeVZpZXdfRnJvbU9iamVjdAorICBQeU1lbW9yeVZpZXdfR2V0Q29udGlndW91cz1weXRob24zNC5QeU1lbW9yeVZpZXdfR2V0Q29udGlndW91cworICBQeU1lbW9yeVZpZXdfVHlwZT1weXRob24zNC5QeU1lbW9yeVZpZXdfVHlwZSBEQVRBCisgIFB5TWV0aG9kRGVzY3JfVHlwZT1weXRob24zNC5QeU1ldGhvZERlc2NyX1R5cGUgREFUQQorICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudD1weXRob24zNC5QeU1vZHVsZV9BZGRJbnRDb25zdGFudAorICBQeU1vZHVsZV9BZGRPYmplY3Q9cHl0aG9uMzQuUHlNb2R1bGVfQWRkT2JqZWN0CisgIFB5TW9kdWxlX0FkZFN0cmluZ0NvbnN0YW50PXB5dGhvbjM0LlB5TW9kdWxlX0FkZFN0cmluZ0NvbnN0YW50CisgIFB5TW9kdWxlX0NyZWF0ZTI9cHl0aG9uMzQuUHlNb2R1bGVfQ3JlYXRlMgorICBQeU1vZHVsZV9HZXREZWY9cHl0aG9uMzQuUHlNb2R1bGVfR2V0RGVmCisgIFB5TW9kdWxlX0dldERpY3Q9cHl0aG9uMzQuUHlNb2R1bGVfR2V0RGljdAorICBQeU1vZHVsZV9HZXRGaWxlbmFtZT1weXRob24zNC5QeU1vZHVsZV9HZXRGaWxlbmFtZQorICBQeU1vZHVsZV9HZXRGaWxlbmFtZU9iamVjdD1weXRob24zNC5QeU1vZHVsZV9HZXRGaWxlbmFtZU9iamVjdAorICBQeU1vZHVsZV9HZXROYW1lPXB5dGhvbjM0LlB5TW9kdWxlX0dldE5hbWUKKyAgUHlNb2R1bGVfR2V0U3RhdGU9cHl0aG9uMzQuUHlNb2R1bGVfR2V0U3RhdGUKKyAgUHlNb2R1bGVfTmV3PXB5dGhvbjM0LlB5TW9kdWxlX05ldworICBQeU1vZHVsZV9UeXBlPXB5dGhvbjM0LlB5TW9kdWxlX1R5cGUgREFUQQorICBQeU51bGxJbXBvcnRlcl9UeXBlPXB5dGhvbjM0LlB5TnVsbEltcG9ydGVyX1R5cGUgREFUQQorICBQeU51bWJlcl9BYnNvbHV0ZT1weXRob24zNC5QeU51bWJlcl9BYnNvbHV0ZQorICBQeU51bWJlcl9BZGQ9cHl0aG9uMzQuUHlOdW1iZXJfQWRkCisgIFB5TnVtYmVyX0FuZD1weXRob24zNC5QeU51bWJlcl9BbmQKKyAgUHlOdW1iZXJfQXNTc2l6ZV90PXB5dGhvbjM0LlB5TnVtYmVyX0FzU3NpemVfdAorICBQeU51bWJlcl9DaGVjaz1weXRob24zNC5QeU51bWJlcl9DaGVjaworICBQeU51bWJlcl9EaXZtb2Q9cHl0aG9uMzQuUHlOdW1iZXJfRGl2bW9kCisgIFB5TnVtYmVyX0Zsb2F0PXB5dGhvbjM0LlB5TnVtYmVyX0Zsb2F0CisgIFB5TnVtYmVyX0Zsb29yRGl2aWRlPXB5dGhvbjM0LlB5TnVtYmVyX0Zsb29yRGl2aWRlCisgIFB5TnVtYmVyX0luUGxhY2VBZGQ9cHl0aG9uMzQuUHlOdW1iZXJfSW5QbGFjZUFkZAorICBQeU51bWJlcl9JblBsYWNlQW5kPXB5dGhvbjM0LlB5TnVtYmVyX0luUGxhY2VBbmQKKyAgUHlOdW1iZXJfSW5QbGFjZUZsb29yRGl2aWRlPXB5dGhvbjM0LlB5TnVtYmVyX0luUGxhY2VGbG9vckRpdmlkZQorICBQeU51bWJlcl9JblBsYWNlTHNoaWZ0PXB5dGhvbjM0LlB5TnVtYmVyX0luUGxhY2VMc2hpZnQKKyAgUHlOdW1iZXJfSW5QbGFjZU11bHRpcGx5PXB5dGhvbjM0LlB5TnVtYmVyX0luUGxhY2VNdWx0aXBseQorICBQeU51bWJlcl9JblBsYWNlT3I9cHl0aG9uMzQuUHlOdW1iZXJfSW5QbGFjZU9yCisgIFB5TnVtYmVyX0luUGxhY2VQb3dlcj1weXRob24zNC5QeU51bWJlcl9JblBsYWNlUG93ZXIKKyAgUHlOdW1iZXJfSW5QbGFjZVJlbWFpbmRlcj1weXRob24zNC5QeU51bWJlcl9JblBsYWNlUmVtYWluZGVyCisgIFB5TnVtYmVyX0luUGxhY2VSc2hpZnQ9cHl0aG9uMzQuUHlOdW1iZXJfSW5QbGFjZVJzaGlmdAorICBQeU51bWJlcl9JblBsYWNlU3VidHJhY3Q9cHl0aG9uMzQuUHlOdW1iZXJfSW5QbGFjZVN1YnRyYWN0CisgIFB5TnVtYmVyX0luUGxhY2VUcnVlRGl2aWRlPXB5dGhvbjM0LlB5TnVtYmVyX0luUGxhY2VUcnVlRGl2aWRlCisgIFB5TnVtYmVyX0luUGxhY2VYb3I9cHl0aG9uMzQuUHlOdW1iZXJfSW5QbGFjZVhvcgorICBQeU51bWJlcl9JbmRleD1weXRob24zNC5QeU51bWJlcl9JbmRleAorICBQeU51bWJlcl9JbnZlcnQ9cHl0aG9uMzQuUHlOdW1iZXJfSW52ZXJ0CisgIFB5TnVtYmVyX0xvbmc9cHl0aG9uMzQuUHlOdW1iZXJfTG9uZworICBQeU51bWJlcl9Mc2hpZnQ9cHl0aG9uMzQuUHlOdW1iZXJfTHNoaWZ0CisgIFB5TnVtYmVyX011bHRpcGx5PXB5dGhvbjM0LlB5TnVtYmVyX011bHRpcGx5CisgIFB5TnVtYmVyX05lZ2F0aXZlPXB5dGhvbjM0LlB5TnVtYmVyX05lZ2F0aXZlCisgIFB5TnVtYmVyX09yPXB5dGhvbjM0LlB5TnVtYmVyX09yCisgIFB5TnVtYmVyX1Bvc2l0aXZlPXB5dGhvbjM0LlB5TnVtYmVyX1Bvc2l0aXZlCisgIFB5TnVtYmVyX1Bvd2VyPXB5dGhvbjM0LlB5TnVtYmVyX1Bvd2VyCisgIFB5TnVtYmVyX1JlbWFpbmRlcj1weXRob24zNC5QeU51bWJlcl9SZW1haW5kZXIKKyAgUHlOdW1iZXJfUnNoaWZ0PXB5dGhvbjM0LlB5TnVtYmVyX1JzaGlmdAorICBQeU51bWJlcl9TdWJ0cmFjdD1weXRob24zNC5QeU51bWJlcl9TdWJ0cmFjdAorICBQeU51bWJlcl9Ub0Jhc2U9cHl0aG9uMzQuUHlOdW1iZXJfVG9CYXNlCisgIFB5TnVtYmVyX1RydWVEaXZpZGU9cHl0aG9uMzQuUHlOdW1iZXJfVHJ1ZURpdmlkZQorICBQeU51bWJlcl9Yb3I9cHl0aG9uMzQuUHlOdW1iZXJfWG9yCisgIFB5T1NfQWZ0ZXJGb3JrPXB5dGhvbjM0LlB5T1NfQWZ0ZXJGb3JrCisgIFB5T1NfSW5pdEludGVycnVwdHM9cHl0aG9uMzQuUHlPU19Jbml0SW50ZXJydXB0cworICBQeU9TX0lucHV0SG9vaz1weXRob24zNC5QeU9TX0lucHV0SG9vayBEQVRBCisgIFB5T1NfSW50ZXJydXB0T2NjdXJyZWQ9cHl0aG9uMzQuUHlPU19JbnRlcnJ1cHRPY2N1cnJlZAorICBQeU9TX1JlYWRsaW5lRnVuY3Rpb25Qb2ludGVyPXB5dGhvbjM0LlB5T1NfUmVhZGxpbmVGdW5jdGlvblBvaW50ZXIgREFUQQorICBQeU9TX2RvdWJsZV90b19zdHJpbmc9cHl0aG9uMzQuUHlPU19kb3VibGVfdG9fc3RyaW5nCisgIFB5T1NfZ2V0c2lnPXB5dGhvbjM0LlB5T1NfZ2V0c2lnCisgIFB5T1NfbXlzdHJpY21wPXB5dGhvbjM0LlB5T1NfbXlzdHJpY21wCisgIFB5T1NfbXlzdHJuaWNtcD1weXRob24zNC5QeU9TX215c3RybmljbXAKKyAgUHlPU19zZXRzaWc9cHl0aG9uMzQuUHlPU19zZXRzaWcKKyAgUHlPU19zbnByaW50Zj1weXRob24zNC5QeU9TX3NucHJpbnRmCisgIFB5T1Nfc3RyaW5nX3RvX2RvdWJsZT1weXRob24zNC5QeU9TX3N0cmluZ190b19kb3VibGUKKyAgUHlPU19zdHJ0b2w9cHl0aG9uMzQuUHlPU19zdHJ0b2wKKyAgUHlPU19zdHJ0b3VsPXB5dGhvbjM0LlB5T1Nfc3RydG91bAorICBQeU9TX3ZzbnByaW50Zj1weXRob24zNC5QeU9TX3ZzbnByaW50ZgorICBQeU9iamVjdF9BU0NJST1weXRob24zNC5QeU9iamVjdF9BU0NJSQorICBQeU9iamVjdF9Bc0NoYXJCdWZmZXI9cHl0aG9uMzQuUHlPYmplY3RfQXNDaGFyQnVmZmVyCisgIFB5T2JqZWN0X0FzRmlsZURlc2NyaXB0b3I9cHl0aG9uMzQuUHlPYmplY3RfQXNGaWxlRGVzY3JpcHRvcgorICBQeU9iamVjdF9Bc1JlYWRCdWZmZXI9cHl0aG9uMzQuUHlPYmplY3RfQXNSZWFkQnVmZmVyCisgIFB5T2JqZWN0X0FzV3JpdGVCdWZmZXI9cHl0aG9uMzQuUHlPYmplY3RfQXNXcml0ZUJ1ZmZlcgorICBQeU9iamVjdF9CeXRlcz1weXRob24zNC5QeU9iamVjdF9CeXRlcworICBQeU9iamVjdF9DYWxsPXB5dGhvbjM0LlB5T2JqZWN0X0NhbGwKKyAgUHlPYmplY3RfQ2FsbEZ1bmN0aW9uPXB5dGhvbjM0LlB5T2JqZWN0X0NhbGxGdW5jdGlvbgorICBQeU9iamVjdF9DYWxsRnVuY3Rpb25PYmpBcmdzPXB5dGhvbjM0LlB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MKKyAgUHlPYmplY3RfQ2FsbE1ldGhvZD1weXRob24zNC5QeU9iamVjdF9DYWxsTWV0aG9kCisgIFB5T2JqZWN0X0NhbGxNZXRob2RPYmpBcmdzPXB5dGhvbjM0LlB5T2JqZWN0X0NhbGxNZXRob2RPYmpBcmdzCisgIFB5T2JqZWN0X0NhbGxPYmplY3Q9cHl0aG9uMzQuUHlPYmplY3RfQ2FsbE9iamVjdAorICBQeU9iamVjdF9DaGVja1JlYWRCdWZmZXI9cHl0aG9uMzQuUHlPYmplY3RfQ2hlY2tSZWFkQnVmZmVyCisgIFB5T2JqZWN0X0NsZWFyV2Vha1JlZnM9cHl0aG9uMzQuUHlPYmplY3RfQ2xlYXJXZWFrUmVmcworICBQeU9iamVjdF9EZWxJdGVtPXB5dGhvbjM0LlB5T2JqZWN0X0RlbEl0ZW0KKyAgUHlPYmplY3RfRGVsSXRlbVN0cmluZz1weXRob24zNC5QeU9iamVjdF9EZWxJdGVtU3RyaW5nCisgIFB5T2JqZWN0X0Rpcj1weXRob24zNC5QeU9iamVjdF9EaXIKKyAgUHlPYmplY3RfRm9ybWF0PXB5dGhvbjM0LlB5T2JqZWN0X0Zvcm1hdAorICBQeU9iamVjdF9GcmVlPXB5dGhvbjM0LlB5T2JqZWN0X0ZyZWUKKyAgUHlPYmplY3RfR0NfRGVsPXB5dGhvbjM0LlB5T2JqZWN0X0dDX0RlbAorICBQeU9iamVjdF9HQ19UcmFjaz1weXRob24zNC5QeU9iamVjdF9HQ19UcmFjaworICBQeU9iamVjdF9HQ19VblRyYWNrPXB5dGhvbjM0LlB5T2JqZWN0X0dDX1VuVHJhY2sKKyAgUHlPYmplY3RfR2VuZXJpY0dldEF0dHI9cHl0aG9uMzQuUHlPYmplY3RfR2VuZXJpY0dldEF0dHIKKyAgUHlPYmplY3RfR2VuZXJpY1NldEF0dHI9cHl0aG9uMzQuUHlPYmplY3RfR2VuZXJpY1NldEF0dHIKKyAgUHlPYmplY3RfR2V0QXR0cj1weXRob24zNC5QeU9iamVjdF9HZXRBdHRyCisgIFB5T2JqZWN0X0dldEF0dHJTdHJpbmc9cHl0aG9uMzQuUHlPYmplY3RfR2V0QXR0clN0cmluZworICBQeU9iamVjdF9HZXRJdGVtPXB5dGhvbjM0LlB5T2JqZWN0X0dldEl0ZW0KKyAgUHlPYmplY3RfR2V0SXRlcj1weXRob24zNC5QeU9iamVjdF9HZXRJdGVyCisgIFB5T2JqZWN0X0hhc0F0dHI9cHl0aG9uMzQuUHlPYmplY3RfSGFzQXR0cgorICBQeU9iamVjdF9IYXNBdHRyU3RyaW5nPXB5dGhvbjM0LlB5T2JqZWN0X0hhc0F0dHJTdHJpbmcKKyAgUHlPYmplY3RfSGFzaD1weXRob24zNC5QeU9iamVjdF9IYXNoCisgIFB5T2JqZWN0X0hhc2hOb3RJbXBsZW1lbnRlZD1weXRob24zNC5QeU9iamVjdF9IYXNoTm90SW1wbGVtZW50ZWQKKyAgUHlPYmplY3RfSW5pdD1weXRob24zNC5QeU9iamVjdF9Jbml0CisgIFB5T2JqZWN0X0luaXRWYXI9cHl0aG9uMzQuUHlPYmplY3RfSW5pdFZhcgorICBQeU9iamVjdF9Jc0luc3RhbmNlPXB5dGhvbjM0LlB5T2JqZWN0X0lzSW5zdGFuY2UKKyAgUHlPYmplY3RfSXNTdWJjbGFzcz1weXRob24zNC5QeU9iamVjdF9Jc1N1YmNsYXNzCisgIFB5T2JqZWN0X0lzVHJ1ZT1weXRob24zNC5QeU9iamVjdF9Jc1RydWUKKyAgUHlPYmplY3RfTGVuZ3RoPXB5dGhvbjM0LlB5T2JqZWN0X0xlbmd0aAorICBQeU9iamVjdF9NYWxsb2M9cHl0aG9uMzQuUHlPYmplY3RfTWFsbG9jCisgIFB5T2JqZWN0X05vdD1weXRob24zNC5QeU9iamVjdF9Ob3QKKyAgUHlPYmplY3RfUmVhbGxvYz1weXRob24zNC5QeU9iamVjdF9SZWFsbG9jCisgIFB5T2JqZWN0X1JlcHI9cHl0aG9uMzQuUHlPYmplY3RfUmVwcgorICBQeU9iamVjdF9SaWNoQ29tcGFyZT1weXRob24zNC5QeU9iamVjdF9SaWNoQ29tcGFyZQorICBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2w9cHl0aG9uMzQuUHlPYmplY3RfUmljaENvbXBhcmVCb29sCisgIFB5T2JqZWN0X1NlbGZJdGVyPXB5dGhvbjM0LlB5T2JqZWN0X1NlbGZJdGVyCisgIFB5T2JqZWN0X1NldEF0dHI9cHl0aG9uMzQuUHlPYmplY3RfU2V0QXR0cgorICBQeU9iamVjdF9TZXRBdHRyU3RyaW5nPXB5dGhvbjM0LlB5T2JqZWN0X1NldEF0dHJTdHJpbmcKKyAgUHlPYmplY3RfU2V0SXRlbT1weXRob24zNC5QeU9iamVjdF9TZXRJdGVtCisgIFB5T2JqZWN0X1NpemU9cHl0aG9uMzQuUHlPYmplY3RfU2l6ZQorICBQeU9iamVjdF9TdHI9cHl0aG9uMzQuUHlPYmplY3RfU3RyCisgIFB5T2JqZWN0X1R5cGU9cHl0aG9uMzQuUHlPYmplY3RfVHlwZSBEQVRBCisgIFB5UGFyc2VyX1NpbXBsZVBhcnNlRmlsZUZsYWdzPXB5dGhvbjM0LlB5UGFyc2VyX1NpbXBsZVBhcnNlRmlsZUZsYWdzCisgIFB5UGFyc2VyX1NpbXBsZVBhcnNlU3RyaW5nRmxhZ3M9cHl0aG9uMzQuUHlQYXJzZXJfU2ltcGxlUGFyc2VTdHJpbmdGbGFncworICBQeVByb3BlcnR5X1R5cGU9cHl0aG9uMzQuUHlQcm9wZXJ0eV9UeXBlIERBVEEKKyAgUHlSYW5nZUl0ZXJfVHlwZT1weXRob24zNC5QeVJhbmdlSXRlcl9UeXBlIERBVEEKKyAgUHlSYW5nZV9UeXBlPXB5dGhvbjM0LlB5UmFuZ2VfVHlwZSBEQVRBCisgIFB5UmV2ZXJzZWRfVHlwZT1weXRob24zNC5QeVJldmVyc2VkX1R5cGUgREFUQQorICBQeVNlcUl0ZXJfTmV3PXB5dGhvbjM0LlB5U2VxSXRlcl9OZXcKKyAgUHlTZXFJdGVyX1R5cGU9cHl0aG9uMzQuUHlTZXFJdGVyX1R5cGUgREFUQQorICBQeVNlcXVlbmNlX0NoZWNrPXB5dGhvbjM0LlB5U2VxdWVuY2VfQ2hlY2sKKyAgUHlTZXF1ZW5jZV9Db25jYXQ9cHl0aG9uMzQuUHlTZXF1ZW5jZV9Db25jYXQKKyAgUHlTZXF1ZW5jZV9Db250YWlucz1weXRob24zNC5QeVNlcXVlbmNlX0NvbnRhaW5zCisgIFB5U2VxdWVuY2VfQ291bnQ9cHl0aG9uMzQuUHlTZXF1ZW5jZV9Db3VudAorICBQeVNlcXVlbmNlX0RlbEl0ZW09cHl0aG9uMzQuUHlTZXF1ZW5jZV9EZWxJdGVtCisgIFB5U2VxdWVuY2VfRGVsU2xpY2U9cHl0aG9uMzQuUHlTZXF1ZW5jZV9EZWxTbGljZQorICBQeVNlcXVlbmNlX0Zhc3Q9cHl0aG9uMzQuUHlTZXF1ZW5jZV9GYXN0CisgIFB5U2VxdWVuY2VfR2V0SXRlbT1weXRob24zNC5QeVNlcXVlbmNlX0dldEl0ZW0KKyAgUHlTZXF1ZW5jZV9HZXRTbGljZT1weXRob24zNC5QeVNlcXVlbmNlX0dldFNsaWNlCisgIFB5U2VxdWVuY2VfSW49cHl0aG9uMzQuUHlTZXF1ZW5jZV9JbgorICBQeVNlcXVlbmNlX0luUGxhY2VDb25jYXQ9cHl0aG9uMzQuUHlTZXF1ZW5jZV9JblBsYWNlQ29uY2F0CisgIFB5U2VxdWVuY2VfSW5QbGFjZVJlcGVhdD1weXRob24zNC5QeVNlcXVlbmNlX0luUGxhY2VSZXBlYXQKKyAgUHlTZXF1ZW5jZV9JbmRleD1weXRob24zNC5QeVNlcXVlbmNlX0luZGV4CisgIFB5U2VxdWVuY2VfTGVuZ3RoPXB5dGhvbjM0LlB5U2VxdWVuY2VfTGVuZ3RoCisgIFB5U2VxdWVuY2VfTGlzdD1weXRob24zNC5QeVNlcXVlbmNlX0xpc3QKKyAgUHlTZXF1ZW5jZV9SZXBlYXQ9cHl0aG9uMzQuUHlTZXF1ZW5jZV9SZXBlYXQKKyAgUHlTZXF1ZW5jZV9TZXRJdGVtPXB5dGhvbjM0LlB5U2VxdWVuY2VfU2V0SXRlbQorICBQeVNlcXVlbmNlX1NldFNsaWNlPXB5dGhvbjM0LlB5U2VxdWVuY2VfU2V0U2xpY2UKKyAgUHlTZXF1ZW5jZV9TaXplPXB5dGhvbjM0LlB5U2VxdWVuY2VfU2l6ZQorICBQeVNlcXVlbmNlX1R1cGxlPXB5dGhvbjM0LlB5U2VxdWVuY2VfVHVwbGUKKyAgUHlTZXRJdGVyX1R5cGU9cHl0aG9uMzQuUHlTZXRJdGVyX1R5cGUgREFUQQorICBQeVNldF9BZGQ9cHl0aG9uMzQuUHlTZXRfQWRkCisgIFB5U2V0X0NsZWFyPXB5dGhvbjM0LlB5U2V0X0NsZWFyCisgIFB5U2V0X0NvbnRhaW5zPXB5dGhvbjM0LlB5U2V0X0NvbnRhaW5zCisgIFB5U2V0X0Rpc2NhcmQ9cHl0aG9uMzQuUHlTZXRfRGlzY2FyZAorICBQeVNldF9OZXc9cHl0aG9uMzQuUHlTZXRfTmV3CisgIFB5U2V0X1BvcD1weXRob24zNC5QeVNldF9Qb3AKKyAgUHlTZXRfU2l6ZT1weXRob24zNC5QeVNldF9TaXplCisgIFB5U2V0X1R5cGU9cHl0aG9uMzQuUHlTZXRfVHlwZSBEQVRBCisgIFB5U2xpY2VfR2V0SW5kaWNlcz1weXRob24zNC5QeVNsaWNlX0dldEluZGljZXMKKyAgUHlTbGljZV9HZXRJbmRpY2VzRXg9cHl0aG9uMzQuUHlTbGljZV9HZXRJbmRpY2VzRXgKKyAgUHlTbGljZV9OZXc9cHl0aG9uMzQuUHlTbGljZV9OZXcKKyAgUHlTbGljZV9UeXBlPXB5dGhvbjM0LlB5U2xpY2VfVHlwZSBEQVRBCisgIFB5U29ydFdyYXBwZXJfVHlwZT1weXRob24zNC5QeVNvcnRXcmFwcGVyX1R5cGUgREFUQQorICBQeVN0YXRlX0ZpbmRNb2R1bGU9cHl0aG9uMzQuUHlTdGF0ZV9GaW5kTW9kdWxlCisgIFB5U3RhdGVfQWRkTW9kdWxlPXB5dGhvbjM0LlB5U3RhdGVfQWRkTW9kdWxlCisgIFB5U3RhdGVfUmVtb3ZlTW9kdWxlPXB5dGhvbjM0LlB5U3RhdGVfUmVtb3ZlTW9kdWxlCisgIFB5U3RydWN0U2VxdWVuY2VfR2V0SXRlbT1weXRob24zNC5QeVN0cnVjdFNlcXVlbmNlX0dldEl0ZW0KKyAgUHlTdHJ1Y3RTZXF1ZW5jZV9OZXc9cHl0aG9uMzQuUHlTdHJ1Y3RTZXF1ZW5jZV9OZXcKKyAgUHlTdHJ1Y3RTZXF1ZW5jZV9OZXdUeXBlPXB5dGhvbjM0LlB5U3RydWN0U2VxdWVuY2VfTmV3VHlwZQorICBQeVN0cnVjdFNlcXVlbmNlX1NldEl0ZW09cHl0aG9uMzQuUHlTdHJ1Y3RTZXF1ZW5jZV9TZXRJdGVtCisgIFB5U3VwZXJfVHlwZT1weXRob24zNC5QeVN1cGVyX1R5cGUgREFUQQorICBQeVN5c19BZGRXYXJuT3B0aW9uPXB5dGhvbjM0LlB5U3lzX0FkZFdhcm5PcHRpb24KKyAgUHlTeXNfQWRkV2Fybk9wdGlvblVuaWNvZGU9cHl0aG9uMzQuUHlTeXNfQWRkV2Fybk9wdGlvblVuaWNvZGUKKyAgUHlTeXNfRm9ybWF0U3RkZXJyPXB5dGhvbjM0LlB5U3lzX0Zvcm1hdFN0ZGVycgorICBQeVN5c19Gb3JtYXRTdGRvdXQ9cHl0aG9uMzQuUHlTeXNfRm9ybWF0U3Rkb3V0CisgIFB5U3lzX0dldE9iamVjdD1weXRob24zNC5QeVN5c19HZXRPYmplY3QKKyAgUHlTeXNfSGFzV2Fybk9wdGlvbnM9cHl0aG9uMzQuUHlTeXNfSGFzV2Fybk9wdGlvbnMKKyAgUHlTeXNfUmVzZXRXYXJuT3B0aW9ucz1weXRob24zNC5QeVN5c19SZXNldFdhcm5PcHRpb25zCisgIFB5U3lzX1NldEFyZ3Y9cHl0aG9uMzQuUHlTeXNfU2V0QXJndgorICBQeVN5c19TZXRBcmd2RXg9cHl0aG9uMzQuUHlTeXNfU2V0QXJndkV4CisgIFB5U3lzX1NldE9iamVjdD1weXRob24zNC5QeVN5c19TZXRPYmplY3QKKyAgUHlTeXNfU2V0UGF0aD1weXRob24zNC5QeVN5c19TZXRQYXRoCisgIFB5U3lzX1dyaXRlU3RkZXJyPXB5dGhvbjM0LlB5U3lzX1dyaXRlU3RkZXJyCisgIFB5U3lzX1dyaXRlU3Rkb3V0PXB5dGhvbjM0LlB5U3lzX1dyaXRlU3Rkb3V0CisgIFB5VGhyZWFkU3RhdGVfQ2xlYXI9cHl0aG9uMzQuUHlUaHJlYWRTdGF0ZV9DbGVhcgorICBQeVRocmVhZFN0YXRlX0RlbGV0ZT1weXRob24zNC5QeVRocmVhZFN0YXRlX0RlbGV0ZQorICBQeVRocmVhZFN0YXRlX0RlbGV0ZUN1cnJlbnQ9cHl0aG9uMzQuUHlUaHJlYWRTdGF0ZV9EZWxldGVDdXJyZW50CisgIFB5VGhyZWFkU3RhdGVfR2V0PXB5dGhvbjM0LlB5VGhyZWFkU3RhdGVfR2V0CisgIFB5VGhyZWFkU3RhdGVfR2V0RGljdD1weXRob24zNC5QeVRocmVhZFN0YXRlX0dldERpY3QKKyAgUHlUaHJlYWRTdGF0ZV9OZXc9cHl0aG9uMzQuUHlUaHJlYWRTdGF0ZV9OZXcKKyAgUHlUaHJlYWRTdGF0ZV9TZXRBc3luY0V4Yz1weXRob24zNC5QeVRocmVhZFN0YXRlX1NldEFzeW5jRXhjCisgIFB5VGhyZWFkU3RhdGVfU3dhcD1weXRob24zNC5QeVRocmVhZFN0YXRlX1N3YXAKKyAgUHlUcmFjZUJhY2tfSGVyZT1weXRob24zNC5QeVRyYWNlQmFja19IZXJlCisgIFB5VHJhY2VCYWNrX1ByaW50PXB5dGhvbjM0LlB5VHJhY2VCYWNrX1ByaW50CisgIFB5VHJhY2VCYWNrX1R5cGU9cHl0aG9uMzQuUHlUcmFjZUJhY2tfVHlwZSBEQVRBCisgIFB5VHVwbGVJdGVyX1R5cGU9cHl0aG9uMzQuUHlUdXBsZUl0ZXJfVHlwZSBEQVRBCisgIFB5VHVwbGVfQ2xlYXJGcmVlTGlzdD1weXRob24zNC5QeVR1cGxlX0NsZWFyRnJlZUxpc3QKKyAgUHlUdXBsZV9HZXRJdGVtPXB5dGhvbjM0LlB5VHVwbGVfR2V0SXRlbQorICBQeVR1cGxlX0dldFNsaWNlPXB5dGhvbjM0LlB5VHVwbGVfR2V0U2xpY2UKKyAgUHlUdXBsZV9OZXc9cHl0aG9uMzQuUHlUdXBsZV9OZXcKKyAgUHlUdXBsZV9QYWNrPXB5dGhvbjM0LlB5VHVwbGVfUGFjaworICBQeVR1cGxlX1NldEl0ZW09cHl0aG9uMzQuUHlUdXBsZV9TZXRJdGVtCisgIFB5VHVwbGVfU2l6ZT1weXRob24zNC5QeVR1cGxlX1NpemUKKyAgUHlUdXBsZV9UeXBlPXB5dGhvbjM0LlB5VHVwbGVfVHlwZSBEQVRBCisgIFB5VHlwZV9DbGVhckNhY2hlPXB5dGhvbjM0LlB5VHlwZV9DbGVhckNhY2hlCisgIFB5VHlwZV9Gcm9tU3BlYz1weXRob24zNC5QeVR5cGVfRnJvbVNwZWMKKyAgUHlUeXBlX0Zyb21TcGVjV2l0aEJhc2VzPXB5dGhvbjM0LlB5VHlwZV9Gcm9tU3BlY1dpdGhCYXNlcworICBQeVR5cGVfR2VuZXJpY0FsbG9jPXB5dGhvbjM0LlB5VHlwZV9HZW5lcmljQWxsb2MKKyAgUHlUeXBlX0dlbmVyaWNOZXc9cHl0aG9uMzQuUHlUeXBlX0dlbmVyaWNOZXcKKyAgUHlUeXBlX0dldEZsYWdzPXB5dGhvbjM0LlB5VHlwZV9HZXRGbGFncworICBQeVR5cGVfSXNTdWJ0eXBlPXB5dGhvbjM0LlB5VHlwZV9Jc1N1YnR5cGUKKyAgUHlUeXBlX01vZGlmaWVkPXB5dGhvbjM0LlB5VHlwZV9Nb2RpZmllZAorICBQeVR5cGVfUmVhZHk9cHl0aG9uMzQuUHlUeXBlX1JlYWR5CisgIFB5VHlwZV9UeXBlPXB5dGhvbjM0LlB5VHlwZV9UeXBlIERBVEEKKyAgUHlVbmljb2RlRGVjb2RlRXJyb3JfQ3JlYXRlPXB5dGhvbjM0LlB5VW5pY29kZURlY29kZUVycm9yX0NyZWF0ZQorICBQeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRFbmNvZGluZz1weXRob24zNC5QeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRFbmNvZGluZworICBQeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRFbmQ9cHl0aG9uMzQuUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0RW5kCisgIFB5VW5pY29kZURlY29kZUVycm9yX0dldE9iamVjdD1weXRob24zNC5QeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRPYmplY3QKKyAgUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0UmVhc29uPXB5dGhvbjM0LlB5VW5pY29kZURlY29kZUVycm9yX0dldFJlYXNvbgorICBQeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRTdGFydD1weXRob24zNC5QeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRTdGFydAorICBQeVVuaWNvZGVEZWNvZGVFcnJvcl9TZXRFbmQ9cHl0aG9uMzQuUHlVbmljb2RlRGVjb2RlRXJyb3JfU2V0RW5kCisgIFB5VW5pY29kZURlY29kZUVycm9yX1NldFJlYXNvbj1weXRob24zNC5QeVVuaWNvZGVEZWNvZGVFcnJvcl9TZXRSZWFzb24KKyAgUHlVbmljb2RlRGVjb2RlRXJyb3JfU2V0U3RhcnQ9cHl0aG9uMzQuUHlVbmljb2RlRGVjb2RlRXJyb3JfU2V0U3RhcnQKKyAgUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0RW5jb2Rpbmc9cHl0aG9uMzQuUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0RW5jb2RpbmcKKyAgUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0RW5kPXB5dGhvbjM0LlB5VW5pY29kZUVuY29kZUVycm9yX0dldEVuZAorICBQeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRPYmplY3Q9cHl0aG9uMzQuUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0T2JqZWN0CisgIFB5VW5pY29kZUVuY29kZUVycm9yX0dldFJlYXNvbj1weXRob24zNC5QeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRSZWFzb24KKyAgUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0U3RhcnQ9cHl0aG9uMzQuUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0U3RhcnQKKyAgUHlVbmljb2RlRW5jb2RlRXJyb3JfU2V0RW5kPXB5dGhvbjM0LlB5VW5pY29kZUVuY29kZUVycm9yX1NldEVuZAorICBQeVVuaWNvZGVFbmNvZGVFcnJvcl9TZXRSZWFzb249cHl0aG9uMzQuUHlVbmljb2RlRW5jb2RlRXJyb3JfU2V0UmVhc29uCisgIFB5VW5pY29kZUVuY29kZUVycm9yX1NldFN0YXJ0PXB5dGhvbjM0LlB5VW5pY29kZUVuY29kZUVycm9yX1NldFN0YXJ0CisgIFB5VW5pY29kZUl0ZXJfVHlwZT1weXRob24zNC5QeVVuaWNvZGVJdGVyX1R5cGUgREFUQQorICBQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRFbmQ9cHl0aG9uMzQuUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0RW5kCisgIFB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX0dldE9iamVjdD1weXRob24zNC5QeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRPYmplY3QKKyAgUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0UmVhc29uPXB5dGhvbjM0LlB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX0dldFJlYXNvbgorICBQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRTdGFydD1weXRob24zNC5QeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRTdGFydAorICBQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9TZXRFbmQ9cHl0aG9uMzQuUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfU2V0RW5kCisgIFB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX1NldFJlYXNvbj1weXRob24zNC5QeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9TZXRSZWFzb24KKyAgUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfU2V0U3RhcnQ9cHl0aG9uMzQuUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfU2V0U3RhcnQKKyAgUHlVbmljb2RlX0FwcGVuZD1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0FwcGVuZAorICBQeVVuaWNvZGVfQXBwZW5kQW5kRGVsPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfQXBwZW5kQW5kRGVsCisgIFB5VW5pY29kZV9Bc0FTQ0lJU3RyaW5nPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfQXNBU0NJSVN0cmluZworICBQeVVuaWNvZGVfQXNDaGFybWFwU3RyaW5nPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfQXNDaGFybWFwU3RyaW5nCisgIFB5VW5pY29kZV9Bc0RlY29kZWRPYmplY3Q9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9Bc0RlY29kZWRPYmplY3QKKyAgUHlVbmljb2RlX0FzRGVjb2RlZFVuaWNvZGU9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9Bc0RlY29kZWRVbmljb2RlCisgIFB5VW5pY29kZV9Bc0VuY29kZWRPYmplY3Q9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9Bc0VuY29kZWRPYmplY3QKKyAgUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZz1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0FzRW5jb2RlZFN0cmluZworICBQeVVuaWNvZGVfQXNFbmNvZGVkVW5pY29kZT1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0FzRW5jb2RlZFVuaWNvZGUKKyAgUHlVbmljb2RlX0FzTGF0aW4xU3RyaW5nPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfQXNMYXRpbjFTdHJpbmcKKyAgUHlVbmljb2RlX0FzUmF3VW5pY29kZUVzY2FwZVN0cmluZz1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0FzUmF3VW5pY29kZUVzY2FwZVN0cmluZworICBQeVVuaWNvZGVfQXNVVEYxNlN0cmluZz1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0FzVVRGMTZTdHJpbmcKKyAgUHlVbmljb2RlX0FzVVRGMzJTdHJpbmc9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9Bc1VURjMyU3RyaW5nCisgIFB5VW5pY29kZV9Bc1VURjhTdHJpbmc9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9Bc1VURjhTdHJpbmcKKyAgUHlVbmljb2RlX0FzVW5pY29kZUVzY2FwZVN0cmluZz1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0FzVW5pY29kZUVzY2FwZVN0cmluZworICBQeVVuaWNvZGVfQXNXaWRlQ2hhcj1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0FzV2lkZUNoYXIKKyAgUHlVbmljb2RlX0NsZWFyRnJlZWxpc3Q9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9DbGVhckZyZWVsaXN0CisgIFB5VW5pY29kZV9Db21wYXJlPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfQ29tcGFyZQorICBQeVVuaWNvZGVfQ29uY2F0PXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfQ29uY2F0CisgIFB5VW5pY29kZV9Db250YWlucz1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0NvbnRhaW5zCisgIFB5VW5pY29kZV9Db3VudD1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0NvdW50CisgIFB5VW5pY29kZV9EZWNvZGU9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9EZWNvZGUKKyAgUHlVbmljb2RlX0RlY29kZUFTQ0lJPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfRGVjb2RlQVNDSUkKKyAgUHlVbmljb2RlX0RlY29kZUNoYXJtYXA9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9EZWNvZGVDaGFybWFwCisgIFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHQ9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9EZWNvZGVGU0RlZmF1bHQKKyAgUHlVbmljb2RlX0RlY29kZUZTRGVmYXVsdEFuZFNpemU9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9EZWNvZGVGU0RlZmF1bHRBbmRTaXplCisgIFB5VW5pY29kZV9EZWNvZGVMYXRpbjE9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9EZWNvZGVMYXRpbjEKKyAgUHlVbmljb2RlX0RlY29kZVJhd1VuaWNvZGVFc2NhcGU9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9EZWNvZGVSYXdVbmljb2RlRXNjYXBlCisgIFB5VW5pY29kZV9EZWNvZGVVVEYxNj1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0RlY29kZVVURjE2CisgIFB5VW5pY29kZV9EZWNvZGVVVEYxNlN0YXRlZnVsPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfRGVjb2RlVVRGMTZTdGF0ZWZ1bAorICBQeVVuaWNvZGVfRGVjb2RlVVRGMzI9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9EZWNvZGVVVEYzMgorICBQeVVuaWNvZGVfRGVjb2RlVVRGMzJTdGF0ZWZ1bD1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0RlY29kZVVURjMyU3RhdGVmdWwKKyAgUHlVbmljb2RlX0RlY29kZVVURjg9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9EZWNvZGVVVEY4CisgIFB5VW5pY29kZV9EZWNvZGVVVEY4U3RhdGVmdWw9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9EZWNvZGVVVEY4U3RhdGVmdWwKKyAgUHlVbmljb2RlX0RlY29kZVVuaWNvZGVFc2NhcGU9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9EZWNvZGVVbmljb2RlRXNjYXBlCisgIFB5VW5pY29kZV9GU0NvbnZlcnRlcj1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0ZTQ29udmVydGVyCisgIFB5VW5pY29kZV9GU0RlY29kZXI9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9GU0RlY29kZXIKKyAgUHlVbmljb2RlX0ZpbmQ9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9GaW5kCisgIFB5VW5pY29kZV9Gb3JtYXQ9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9Gb3JtYXQKKyAgUHlVbmljb2RlX0Zyb21FbmNvZGVkT2JqZWN0PXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfRnJvbUVuY29kZWRPYmplY3QKKyAgUHlVbmljb2RlX0Zyb21Gb3JtYXQ9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9Gcm9tRm9ybWF0CisgIFB5VW5pY29kZV9Gcm9tRm9ybWF0Vj1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0Zyb21Gb3JtYXRWCisgIFB5VW5pY29kZV9Gcm9tT2JqZWN0PXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfRnJvbU9iamVjdAorICBQeVVuaWNvZGVfRnJvbU9yZGluYWw9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9Gcm9tT3JkaW5hbAorICBQeVVuaWNvZGVfRnJvbVN0cmluZz1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0Zyb21TdHJpbmcKKyAgUHlVbmljb2RlX0Zyb21TdHJpbmdBbmRTaXplPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfRnJvbVN0cmluZ0FuZFNpemUKKyAgUHlVbmljb2RlX0Zyb21XaWRlQ2hhcj1weXRob24zNC5QeVVuaWNvZGVVQ1MyX0Zyb21XaWRlQ2hhcgorICBQeVVuaWNvZGVfR2V0RGVmYXVsdEVuY29kaW5nPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfR2V0RGVmYXVsdEVuY29kaW5nCisgIFB5VW5pY29kZV9HZXRTaXplPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfR2V0U2l6ZQorICBQeVVuaWNvZGVfSXNJZGVudGlmaWVyPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfSXNJZGVudGlmaWVyCisgIFB5VW5pY29kZV9Kb2luPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfSm9pbgorICBQeVVuaWNvZGVfUGFydGl0aW9uPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfUGFydGl0aW9uCisgIFB5VW5pY29kZV9SUGFydGl0aW9uPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfUlBhcnRpdGlvbgorICBQeVVuaWNvZGVfUlNwbGl0PXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfUlNwbGl0CisgIFB5VW5pY29kZV9SZXBsYWNlPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfUmVwbGFjZQorICBQeVVuaWNvZGVfUmVzaXplPXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfUmVzaXplCisgIFB5VW5pY29kZV9SaWNoQ29tcGFyZT1weXRob24zNC5QeVVuaWNvZGVVQ1MyX1JpY2hDb21wYXJlCisgIFB5VW5pY29kZV9TZXREZWZhdWx0RW5jb2Rpbmc9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9TZXREZWZhdWx0RW5jb2RpbmcKKyAgUHlVbmljb2RlX1NwbGl0PXB5dGhvbjM0LlB5VW5pY29kZVVDUzJfU3BsaXQKKyAgUHlVbmljb2RlX1NwbGl0bGluZXM9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9TcGxpdGxpbmVzCisgIFB5VW5pY29kZV9UYWlsbWF0Y2g9cHl0aG9uMzQuUHlVbmljb2RlVUNTMl9UYWlsbWF0Y2gKKyAgUHlVbmljb2RlX1RyYW5zbGF0ZT1weXRob24zNC5QeVVuaWNvZGVVQ1MyX1RyYW5zbGF0ZQorICBQeVVuaWNvZGVfQnVpbGRFbmNvZGluZ01hcD1weXRob24zNC5QeVVuaWNvZGVfQnVpbGRFbmNvZGluZ01hcAorICBQeVVuaWNvZGVfQ29tcGFyZVdpdGhBU0NJSVN0cmluZz1weXRob24zNC5QeVVuaWNvZGVfQ29tcGFyZVdpdGhBU0NJSVN0cmluZworICBQeVVuaWNvZGVfRGVjb2RlVVRGNz1weXRob24zNC5QeVVuaWNvZGVfRGVjb2RlVVRGNworICBQeVVuaWNvZGVfRGVjb2RlVVRGN1N0YXRlZnVsPXB5dGhvbjM0LlB5VW5pY29kZV9EZWNvZGVVVEY3U3RhdGVmdWwKKyAgUHlVbmljb2RlX0VuY29kZUZTRGVmYXVsdD1weXRob24zNC5QeVVuaWNvZGVfRW5jb2RlRlNEZWZhdWx0CisgIFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nPXB5dGhvbjM0LlB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nCisgIFB5VW5pY29kZV9JbnRlcm5JbW1vcnRhbD1weXRob24zNC5QeVVuaWNvZGVfSW50ZXJuSW1tb3J0YWwKKyAgUHlVbmljb2RlX0ludGVybkluUGxhY2U9cHl0aG9uMzQuUHlVbmljb2RlX0ludGVybkluUGxhY2UKKyAgUHlVbmljb2RlX1R5cGU9cHl0aG9uMzQuUHlVbmljb2RlX1R5cGUgREFUQQorICBQeVdlYWtyZWZfR2V0T2JqZWN0PXB5dGhvbjM0LlB5V2Vha3JlZl9HZXRPYmplY3QgREFUQQorICBQeVdlYWtyZWZfTmV3UHJveHk9cHl0aG9uMzQuUHlXZWFrcmVmX05ld1Byb3h5CisgIFB5V2Vha3JlZl9OZXdSZWY9cHl0aG9uMzQuUHlXZWFrcmVmX05ld1JlZgorICBQeVdyYXBwZXJEZXNjcl9UeXBlPXB5dGhvbjM0LlB5V3JhcHBlckRlc2NyX1R5cGUgREFUQQorICBQeVdyYXBwZXJfTmV3PXB5dGhvbjM0LlB5V3JhcHBlcl9OZXcKKyAgUHlaaXBfVHlwZT1weXRob24zNC5QeVppcF9UeXBlIERBVEEKKyAgUHlfQWRkUGVuZGluZ0NhbGw9cHl0aG9uMzQuUHlfQWRkUGVuZGluZ0NhbGwKKyAgUHlfQXRFeGl0PXB5dGhvbjM0LlB5X0F0RXhpdAorICBQeV9CdWlsZFZhbHVlPXB5dGhvbjM0LlB5X0J1aWxkVmFsdWUKKyAgUHlfQ29tcGlsZVN0cmluZz1weXRob24zNC5QeV9Db21waWxlU3RyaW5nCisgIFB5X0RlY1JlZj1weXRob24zNC5QeV9EZWNSZWYKKyAgUHlfRW5kSW50ZXJwcmV0ZXI9cHl0aG9uMzQuUHlfRW5kSW50ZXJwcmV0ZXIKKyAgUHlfRXhpdD1weXRob24zNC5QeV9FeGl0CisgIFB5X0ZhdGFsRXJyb3I9cHl0aG9uMzQuUHlfRmF0YWxFcnJvcgorICBQeV9GaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nPXB5dGhvbjM0LlB5X0ZpbGVTeXN0ZW1EZWZhdWx0RW5jb2RpbmcgREFUQQorICBQeV9GaW5hbGl6ZT1weXRob24zNC5QeV9GaW5hbGl6ZQorICBQeV9HZXRCdWlsZEluZm89cHl0aG9uMzQuUHlfR2V0QnVpbGRJbmZvCisgIFB5X0dldENvbXBpbGVyPXB5dGhvbjM0LlB5X0dldENvbXBpbGVyCisgIFB5X0dldENvcHlyaWdodD1weXRob24zNC5QeV9HZXRDb3B5cmlnaHQKKyAgUHlfR2V0RXhlY1ByZWZpeD1weXRob24zNC5QeV9HZXRFeGVjUHJlZml4CisgIFB5X0dldFBhdGg9cHl0aG9uMzQuUHlfR2V0UGF0aAorICBQeV9HZXRQbGF0Zm9ybT1weXRob24zNC5QeV9HZXRQbGF0Zm9ybQorICBQeV9HZXRQcmVmaXg9cHl0aG9uMzQuUHlfR2V0UHJlZml4CisgIFB5X0dldFByb2dyYW1GdWxsUGF0aD1weXRob24zNC5QeV9HZXRQcm9ncmFtRnVsbFBhdGgKKyAgUHlfR2V0UHJvZ3JhbU5hbWU9cHl0aG9uMzQuUHlfR2V0UHJvZ3JhbU5hbWUKKyAgUHlfR2V0UHl0aG9uSG9tZT1weXRob24zNC5QeV9HZXRQeXRob25Ib21lCisgIFB5X0dldFJlY3Vyc2lvbkxpbWl0PXB5dGhvbjM0LlB5X0dldFJlY3Vyc2lvbkxpbWl0CisgIFB5X0dldFZlcnNpb249cHl0aG9uMzQuUHlfR2V0VmVyc2lvbgorICBQeV9IYXNGaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nPXB5dGhvbjM0LlB5X0hhc0ZpbGVTeXN0ZW1EZWZhdWx0RW5jb2RpbmcgREFUQQorICBQeV9JbmNSZWY9cHl0aG9uMzQuUHlfSW5jUmVmCisgIFB5X0luaXRpYWxpemU9cHl0aG9uMzQuUHlfSW5pdGlhbGl6ZQorICBQeV9Jbml0aWFsaXplRXg9cHl0aG9uMzQuUHlfSW5pdGlhbGl6ZUV4CisgIFB5X0lzSW5pdGlhbGl6ZWQ9cHl0aG9uMzQuUHlfSXNJbml0aWFsaXplZAorICBQeV9NYWluPXB5dGhvbjM0LlB5X01haW4KKyAgUHlfTWFrZVBlbmRpbmdDYWxscz1weXRob24zNC5QeV9NYWtlUGVuZGluZ0NhbGxzCisgIFB5X05ld0ludGVycHJldGVyPXB5dGhvbjM0LlB5X05ld0ludGVycHJldGVyCisgIFB5X1JlcHJFbnRlcj1weXRob24zNC5QeV9SZXByRW50ZXIKKyAgUHlfUmVwckxlYXZlPXB5dGhvbjM0LlB5X1JlcHJMZWF2ZQorICBQeV9TZXRQcm9ncmFtTmFtZT1weXRob24zNC5QeV9TZXRQcm9ncmFtTmFtZQorICBQeV9TZXRQeXRob25Ib21lPXB5dGhvbjM0LlB5X1NldFB5dGhvbkhvbWUKKyAgUHlfU2V0UmVjdXJzaW9uTGltaXQ9cHl0aG9uMzQuUHlfU2V0UmVjdXJzaW9uTGltaXQKKyAgUHlfU3ltdGFibGVTdHJpbmc9cHl0aG9uMzQuUHlfU3ltdGFibGVTdHJpbmcKKyAgUHlfVmFCdWlsZFZhbHVlPXB5dGhvbjM0LlB5X1ZhQnVpbGRWYWx1ZQorICBfUHlFcnJfQmFkSW50ZXJuYWxDYWxsPXB5dGhvbjM0Ll9QeUVycl9CYWRJbnRlcm5hbENhbGwKKyAgX1B5T2JqZWN0X0NhbGxGdW5jdGlvbl9TaXplVD1weXRob24zNC5fUHlPYmplY3RfQ2FsbEZ1bmN0aW9uX1NpemVUCisgIF9QeU9iamVjdF9DYWxsTWV0aG9kX1NpemVUPXB5dGhvbjM0Ll9QeU9iamVjdF9DYWxsTWV0aG9kX1NpemVUCisgIF9QeU9iamVjdF9HQ19NYWxsb2M9cHl0aG9uMzQuX1B5T2JqZWN0X0dDX01hbGxvYworICBfUHlPYmplY3RfR0NfTmV3PXB5dGhvbjM0Ll9QeU9iamVjdF9HQ19OZXcKKyAgX1B5T2JqZWN0X0dDX05ld1Zhcj1weXRob24zNC5fUHlPYmplY3RfR0NfTmV3VmFyCisgIF9QeU9iamVjdF9HQ19SZXNpemU9cHl0aG9uMzQuX1B5T2JqZWN0X0dDX1Jlc2l6ZQorICBfUHlPYmplY3RfTmV3PXB5dGhvbjM0Ll9QeU9iamVjdF9OZXcKKyAgX1B5T2JqZWN0X05ld1Zhcj1weXRob24zNC5fUHlPYmplY3RfTmV3VmFyCisgIF9QeVN0YXRlX0FkZE1vZHVsZT1weXRob24zNC5fUHlTdGF0ZV9BZGRNb2R1bGUKKyAgX1B5VGhyZWFkU3RhdGVfSW5pdD1weXRob24zNC5fUHlUaHJlYWRTdGF0ZV9Jbml0CisgIF9QeVRocmVhZFN0YXRlX1ByZWFsbG9jPXB5dGhvbjM0Ll9QeVRocmVhZFN0YXRlX1ByZWFsbG9jCisgIF9QeVRyYXNoX2RlbGV0ZV9sYXRlcj1weXRob24zNC5fUHlUcmFzaF9kZWxldGVfbGF0ZXIgREFUQQorICBfUHlUcmFzaF9kZWxldGVfbmVzdGluZz1weXRob24zNC5fUHlUcmFzaF9kZWxldGVfbmVzdGluZyBEQVRBCisgIF9QeVRyYXNoX2RlcG9zaXRfb2JqZWN0PXB5dGhvbjM0Ll9QeVRyYXNoX2RlcG9zaXRfb2JqZWN0CisgIF9QeVRyYXNoX2Rlc3Ryb3lfY2hhaW49cHl0aG9uMzQuX1B5VHJhc2hfZGVzdHJveV9jaGFpbgorICBfUHlXZWFrcmVmX0NhbGxhYmxlUHJveHlUeXBlPXB5dGhvbjM0Ll9QeVdlYWtyZWZfQ2FsbGFibGVQcm94eVR5cGUgREFUQQorICBfUHlXZWFrcmVmX1Byb3h5VHlwZT1weXRob24zNC5fUHlXZWFrcmVmX1Byb3h5VHlwZSBEQVRBCisgIF9QeVdlYWtyZWZfUmVmVHlwZT1weXRob24zNC5fUHlXZWFrcmVmX1JlZlR5cGUgREFUQQorICBfUHlfQnVpbGRWYWx1ZV9TaXplVD1weXRob24zNC5fUHlfQnVpbGRWYWx1ZV9TaXplVAorICBfUHlfQ2hlY2tSZWN1cnNpb25MaW1pdD1weXRob24zNC5fUHlfQ2hlY2tSZWN1cnNpb25MaW1pdCBEQVRBCisgIF9QeV9DaGVja1JlY3Vyc2l2ZUNhbGw9cHl0aG9uMzQuX1B5X0NoZWNrUmVjdXJzaXZlQ2FsbAorICBfUHlfRGVhbGxvYz1weXRob24zNC5fUHlfRGVhbGxvYworICBfUHlfRWxsaXBzaXNPYmplY3Q9cHl0aG9uMzQuX1B5X0VsbGlwc2lzT2JqZWN0IERBVEEKKyAgX1B5X0ZhbHNlU3RydWN0PXB5dGhvbjM0Ll9QeV9GYWxzZVN0cnVjdCBEQVRBCisgIF9QeV9Ob25lU3RydWN0PXB5dGhvbjM0Ll9QeV9Ob25lU3RydWN0IERBVEEKKyAgX1B5X05vdEltcGxlbWVudGVkU3RydWN0PXB5dGhvbjM0Ll9QeV9Ob3RJbXBsZW1lbnRlZFN0cnVjdCBEQVRBCisgIF9QeV9Td2FwcGVkT3A9cHl0aG9uMzQuX1B5X1N3YXBwZWRPcCBEQVRBCisgIF9QeV9UcnVlU3RydWN0PXB5dGhvbjM0Ll9QeV9UcnVlU3RydWN0IERBVEEKKyAgX1B5X1ZhQnVpbGRWYWx1ZV9TaXplVD1weXRob24zNC5fUHlfVmFCdWlsZFZhbHVlX1NpemVUCisgIF9QeUFyZ19QYXJzZV9TaXplVD1weXRob24zNC5fUHlBcmdfUGFyc2VfU2l6ZVQKKyAgX1B5QXJnX1BhcnNlVHVwbGVfU2l6ZVQ9cHl0aG9uMzQuX1B5QXJnX1BhcnNlVHVwbGVfU2l6ZVQKKyAgX1B5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3Jkc19TaXplVD1weXRob24zNC5fUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzX1NpemVUCisgIF9QeUFyZ19WYVBhcnNlX1NpemVUPXB5dGhvbjM0Ll9QeUFyZ19WYVBhcnNlX1NpemVUCisgIF9QeUFyZ19WYVBhcnNlVHVwbGVBbmRLZXl3b3Jkc19TaXplVD1weXRob24zNC5fUHlBcmdfVmFQYXJzZVR1cGxlQW5kS2V5d29yZHNfU2l6ZVQKKyAgX1B5X0J1aWxkVmFsdWVfU2l6ZVQ9cHl0aG9uMzQuX1B5X0J1aWxkVmFsdWVfU2l6ZVQKZGlmZiAtLWdpdCBhL1BDL3B5dGhvbjMubWFrIGIvUEMvcHl0aG9uMy5tYWsKaW5kZXggMmVjOTE4NS4uOGY5ZDQ2OCAxMDA2NDQKLS0tIGEvUEMvcHl0aG9uMy5tYWsKKysrIGIvUEMvcHl0aG9uMy5tYWsKQEAgLTEsMTAgKzEsMTAgQEAKLSQoT3V0RGlyKXB5dGhvbjMuZGxsOglweXRob24zLmRlZiAkKE91dERpcilweXRob24zM3N0dWIubGliCi0JY2wgL0xEIC9GZSQoT3V0RGlyKXB5dGhvbjMuZGxsIHB5dGhvbjNkbGwuYyBweXRob24zLmRlZiAkKE91dERpcilweXRob24zM3N0dWIubGliCiskKE91dERpcilweXRob24zLmRsbDoJcHl0aG9uMy5kZWYgJChPdXREaXIpcHl0aG9uMzRzdHViLmxpYgorCWNsIC9MRCAvRmUkKE91dERpcilweXRob24zLmRsbCBweXRob24zZGxsLmMgcHl0aG9uMy5kZWYgJChPdXREaXIpcHl0aG9uMzRzdHViLmxpYgogCi0kKE91dERpcilweXRob24zM3N0dWIubGliOglweXRob24zM3N0dWIuZGVmCi0JbGliIC9kZWY6cHl0aG9uMzNzdHViLmRlZiAvb3V0OiQoT3V0RGlyKXB5dGhvbjMzc3R1Yi5saWIgL01BQ0hJTkU6JChNQUNISU5FKQorJChPdXREaXIpcHl0aG9uMzRzdHViLmxpYjoJcHl0aG9uMzRzdHViLmRlZgorCWxpYiAvZGVmOnB5dGhvbjM0c3R1Yi5kZWYgL291dDokKE91dERpcilweXRob24zNHN0dWIubGliIC9NQUNISU5FOiQoTUFDSElORSkKIAogY2xlYW46Ci0JZGVsICQoT3V0RGlyKXB5dGhvbjMuZGxsICQoT3V0RGlyKXB5dGhvbjMubGliICQoT3V0RGlyKXB5dGhvbjMzc3R1Yi5saWIgJChPdXREaXIpcHl0aG9uMy5leHAgJChPdXREaXIpcHl0aG9uMzNzdHViLmV4cAorCWRlbCAkKE91dERpcilweXRob24zLmRsbCAkKE91dERpcilweXRob24zLmxpYiAkKE91dERpcilweXRob24zNHN0dWIubGliICQoT3V0RGlyKXB5dGhvbjMuZXhwICQoT3V0RGlyKXB5dGhvbjM0c3R1Yi5leHAKIAogcmVidWlsZDogY2xlYW4gJChPdXREaXIpcHl0aG9uMy5kbGwKZGlmZiAtLWdpdCBhL1BDL3B5dGhvbjMzZ2VuLnB5IGIvUEMvcHl0aG9uMzRnZW4ucHkKc2ltaWxhcml0eSBpbmRleCA3NyUKcmVuYW1lIGZyb20gUEMvcHl0aG9uMzNnZW4ucHkKcmVuYW1lIHRvIFBDL3B5dGhvbjM0Z2VuLnB5CmluZGV4IDIxYjlmNTYuLjE4MGNlMTEgMTAwNjQ0Ci0tLSBhL1BDL3B5dGhvbjMzZ2VuLnB5CisrKyBiL1BDL3B5dGhvbjM0Z2VuLnB5CkBAIC0xLDkgKzEsOSBAQAotIyBHZW5lcmF0ZSBweXRob24zM3N0dWIuZGVmIG91dCBvZiBweXRob24zLmRlZgorIyBHZW5lcmF0ZSBweXRob24zNHN0dWIuZGVmIG91dCBvZiBweXRob24zLmRlZgogIyBUaGUgcmVndWxhciBpbXBvcnQgbGlicmFyeSBjYW5ub3QgYmUgdXNlZCwKICMgc2luY2UgaXQgZG9lc24ndCBwcm92aWRlIHRoZSByaWdodCBzeW1ib2xzIGZvcgogIyBkYXRhIGZvcndhcmRpbmcKLW91dCA9IG9wZW4oInB5dGhvbjMzc3R1Yi5kZWYiLCAidyIpCi1vdXQud3JpdGUoJ0xJQlJBUlkgInB5dGhvbjMzIlxuJykKK291dCA9IG9wZW4oInB5dGhvbjM0c3R1Yi5kZWYiLCAidyIpCitvdXQud3JpdGUoJ0xJQlJBUlkgInB5dGhvbjM0IlxuJykKIG91dC53cml0ZSgnRVhQT1JUU1xuJykKIAogaW5wID0gb3BlbigicHl0aG9uMy5kZWYiKQpAQCAtMTQsNyArMTQsNyBAQAogYXNzZXJ0IGxpbmUuc3RyaXAoKT09J0VYUE9SVFMnCiAKIGZvciBsaW5lIGluIGlucDoKLSAgICAjIFNZTTE9cHl0aG9uMzMuU1lNMlsgREFUQV0KKyAgICAjIFNZTTE9cHl0aG9uMzQuU1lNMlsgREFUQV0KICAgICBoZWFkLCB0YWlsID0gbGluZS5zcGxpdCgnLicpCiAgICAgaWYgJ0RBVEEnIGluIHRhaWw6CiAgICAgICAgIHN5bWJvbCwgdGFpbCA9IHRhaWwuc3BsaXQoJyAnKQpkaWZmIC0tZ2l0IGEvUEMvcHl0aG9uMzNzdHViLmRlZiBiL1BDL3B5dGhvbjM0c3R1Yi5kZWYKc2ltaWxhcml0eSBpbmRleCA5OSUKcmVuYW1lIGZyb20gUEMvcHl0aG9uMzNzdHViLmRlZgpyZW5hbWUgdG8gUEMvcHl0aG9uMzRzdHViLmRlZgppbmRleCA1YjhjY2Y2Li5jMGYzYjM1IDEwMDY0NAotLS0gYS9QQy9weXRob24zM3N0dWIuZGVmCisrKyBiL1BDL3B5dGhvbjM0c3R1Yi5kZWYKQEAgLTEsNCArMSw0IEBACi1MSUJSQVJZICJweXRob24zMyIKK0xJQlJBUlkgInB5dGhvbjM0IgogRVhQT1JUUwogUHlBcmdfUGFyc2UKIFB5QXJnX1BhcnNlVHVwbGUKQEAgLTM3LDYgKzM3LDcgQEAKIFB5Q0Z1bmN0aW9uX0dldEZsYWdzCiBQeUNGdW5jdGlvbl9HZXRGdW5jdGlvbgogUHlDRnVuY3Rpb25fR2V0U2VsZgorUHlDRnVuY3Rpb25fTmV3CiBQeUNGdW5jdGlvbl9OZXdFeAogUHlDRnVuY3Rpb25fVHlwZQogUHlDYWxsSXRlcl9OZXcKZGlmZiAtLWdpdCBhL1BDL3JlYWRtZS50eHQgYi9QQy9yZWFkbWUudHh0CmluZGV4IGZkYzA5YWIuLjYwZjIzMWUgMTAwNjQ0Ci0tLSBhL1BDL3JlYWRtZS50eHQKKysrIGIvUEMvcmVhZG1lLnR4dApAQCAtNzksMTkgKzc5LDYgQEAKIFRoZSBzdWJkaXJlY3RvcmllcyBWQzYsIFZTNy4xIGFuZCBWUzguMCBjb250YWluIGxlZ2FjeSBzdXBwb3J0IG9sZGVyCiB2ZXJzaW9ucyBvZiBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpby4gU2VlIFBDYnVpbGQvcmVhZG1lLnR4dC4KIAotRU1YIGRldmVsb3BtZW50IHRvb2xzIGZvciBPUy8yCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotU2VlIG9zMmVteC9yZWFkbWUudHh0LiBUaGlzIHBsYXRmb3JtIGlzIG1haW50YWluZWQgYnkgQW5kcmV3IE1hY0ludHlyZS4KLQotSUJNIFZpc3VhbEFnZSBDL0MrKyBmb3IgT1MvMgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1TZWUgb3MydmFjcHAvcmVhZG1lLnR4dC4gIFRoaXMgcGxhdGZvcm0gaXMgc3VwcG9ydGVkIGJ5IEplZmYgUnVzaC4KLQotTk9URTogU3VwcG9ydCBmb3Igb3MydmFjcHAgbWF5IGJlIGRyb3BwZWQgaW4gdGhlIG5lYXIgZnV0dXJlLiBQbGVhc2UgbW92ZQotICAgICAgdG8gRU1YLgotCiBOb3RlIGZvciBXaW5kb3dzIDMueCBhbmQgRE9TIHVzZXJzCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKZGlmZiAtLWdpdCBhL1BDL3c5eHBvcGVuLmMgYi9QQy93OXhwb3Blbi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzk3OGRkLi4wMDAwMDAwCi0tLSBhL1BDL3c5eHBvcGVuLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTIgKzAsMCBAQAotLyoKLSAqIHc5eHBvcGVuLmMKLSAqCi0gKiBTZXJ2ZXMgYXMgYW4gaW50ZXJtZWRpYXRlIHN0dWIgV2luMzIgY29uc29sZSBhcHBsaWNhdGlvbiB0bwotICogYXZvaWQgYSBoYW5naW5nIHBpcGUgd2hlbiByZWRpcmVjdGluZyAxNi1iaXQgY29uc29sZSBiYXNlZAotICogcHJvZ3JhbXMgKGluY2x1ZGluZyBNUy1ET1MgY29uc29sZSBiYXNlZCBwcm9ncmFtcyBhbmQgYmF0Y2gKLSAqIGZpbGVzKSBvbiBXaW5kb3cgOTUgYW5kIFdpbmRvd3MgOTguCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIHRvIGJlIGxhdW5jaGVkIHdpdGggcmVkaXJlY3RlZCBzdGFuZGFyZAotICogaGFuZGxlcy4gSXQgd2lsbCBsYXVuY2ggdGhlIGNvbW1hbmQgbGluZSBzcGVjaWZpZWQgMTYtYml0Ci0gKiBjb25zb2xlIGJhc2VkIGFwcGxpY2F0aW9uIGluIHRoZSBzYW1lIGNvbnNvbGUsIGZvcndhcmRpbmcKLSAqIGl0cyBvd24gcmVkaXJlY3RlZCBzdGFuZGFyZCBoYW5kbGVzIHRvIHRoZSAxNi1iaXQgY2hpbGQuCi0KLSAqIEFLQSBzb2x1dGlvbiB0byB0aGUgcHJvYmxlbSBkZXNjcmliZWQgaW4gS0I6IFExNTA5NTYuCi0gKi8gICAgCi0KLSNkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPiAgLyogZm9yIG1hbGxvYyBhbmQgaXRzIGZyaWVuZHMgKi8KLQotY29uc3QgY2hhciAqdXNhZ2UgPQotIlRoaXMgcHJvZ3JhbSBpcyB1c2VkIGJ5IFB5dGhvbidzIG9zLnBvcGVuIGZ1bmN0aW9uXG4iCi0idG8gd29yayBhcm91bmQgYSBsaW1pdGF0aW9uIGluIFdpbmRvd3MgOTUvOTguICBJdCBpc1xuIgotIm5vdCBkZXNpZ25lZCB0byBiZSB1c2VkIGFzIGEgc3RhbmQtYWxvbmUgcHJvZ3JhbS4iOwotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotewotICAgIEJPT0wgYlJldDsKLSAgICBTVEFSVFVQSU5GTyBzaTsKLSAgICBQUk9DRVNTX0lORk9STUFUSU9OIHBpOwotICAgIERXT1JEIGV4aXRfY29kZT0wOwotICAgIHNpemVfdCBjbWRsZW4gPSAwOwotICAgIGludCBpOwotICAgIGNoYXIgKmNtZGxpbmUsICpjbWRsaW5lZmlsbDsKLQotICAgIGlmIChhcmdjIDwgMikgewotICAgICAgICBpZiAoR2V0RmlsZVR5cGUoR2V0U3RkSGFuZGxlKFNURF9JTlBVVF9IQU5ETEUpKT09RklMRV9UWVBFX0NIQVIpCi0gICAgICAgICAgICAvKiBBdHRhY2hlZCB0byBhIGNvbnNvbGUsIGFuZCB0aGVyZWZvcmUgbm90IGV4ZWN1dGVkIGJ5IFB5dGhvbgotICAgICAgICAgICAgICAgRGlzcGxheSBhIG1lc3NhZ2UgYm94IGZvciB0aGUgaW5xdWlzaXRpdmUgdXNlcgotICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIE1lc3NhZ2VCb3goTlVMTCwgdXNhZ2UsIGFyZ3ZbMF0sIE1CX09LKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvKiBFZWVrIC0gZXhlY3V0ZWQgYnkgUHl0aG9uLCBidXQgYXJncyBhcmUgc2NyZXdlZCEKLSAgICAgICAgICAgICAgIFdyaXRlIGFuIGVycm9yIG1lc3NhZ2UgdG8gc3Rkb3V0IHNvIHRoZXJlIGlzIGF0Ci0gICAgICAgICAgICAgICBsZWFzdCBzb21lIGNsdWUgZm9yIHRoZSBlbmQgdXNlciB3aGVuIGl0IGFwcGVhcnMKLSAgICAgICAgICAgICAgIGluIHRoZWlyIG91dHB1dC4KLSAgICAgICAgICAgICAgIEEgbWVzc2FnZSBib3ggd291bGQgYmUgaGlkZGVuIGFuZCBibG9ja3MgdGhlIGFwcC4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgZnByaW50ZihzdGRvdXQsICJJbnRlcm5hbCBwb3BlbiBlcnJvciAtIG5vIGFyZ3Mgc3BlY2lmaWVkXG4lc1xuIiwgdXNhZ2UpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLSAgICAvKiBCdWlsZCB1cCB0aGUgY29tbWFuZC1saW5lIGZyb20gdGhlIGFyZ3MuCi0gICAgICAgQXJncyB3aXRoIGEgc3BhY2UgYXJlIHF1b3RlZCwgZXhpc3RpbmcgcXVvdGVzIGFyZSBlc2NhcGVkLgotICAgICAgIFRvIGtlZXAgdGhpbmdzIHNpbXBsZSBjYWxjdWxhdGluZyB0aGUgYnVmZmVyIHNpemUsIHdlIGFzc3VtZQotICAgICAgIGV2ZXJ5IGNoYXJhY3RlciBpcyBhIHF1b3RlIC0gaWUsIHdlIGFsbG9jYXRlIGRvdWJsZSB3aGF0IHdlIG5lZWQKLSAgICAgICBpbiB0aGUgd29yc3QgY2FzZS4gIEFzIHRoaXMgaXMgb25seSBkb3VibGUgdGhlIGNvbW1hbmQgbGluZSBwYXNzZWQKLSAgICAgICB0byB1cywgdGhlcmUgaXMgYSBnb29kIGNoYW5jZSB0aGlzIGlzIHJlYXNvbmFibHkgc21hbGwsIHNvIHRoZSB0b3RhbCAKLSAgICAgICBhbGxvY2F0aW9uIHdpbGwgYWxtb3N0IGFsd2F5cyBiZSA8IDUxMiBieXRlcy4KLSAgICAqLwotICAgIGZvciAoaT0xO2k8YXJnYztpKyspCi0gICAgICAgIGNtZGxlbiArPSBzdHJsZW4oYXJndltpXSkqMiArIDM7IC8qIG9uZSBzcGFjZSwgbWF5YmUgMiBxdW90ZXMgKi8KLSAgICBjbWRsaW5lID0gY21kbGluZWZpbGwgPSAoY2hhciAqKW1hbGxvYyhjbWRsZW4rMSk7Ci0gICAgaWYgKGNtZGxpbmUgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIGZvciAoaT0xO2k8YXJnYztpKyspIHsKLSAgICAgICAgY29uc3QgY2hhciAqYXJnbG9vazsKLSAgICAgICAgaW50IGJRdW90ZSA9IHN0cmNocihhcmd2W2ldLCAnICcpICE9IE5VTEw7Ci0gICAgICAgIGlmIChiUXVvdGUpCi0gICAgICAgICAgICAqY21kbGluZWZpbGwrKyA9ICciJzsKLSAgICAgICAgLyogZXNjYXBlIHF1b3RlcyAqLwotICAgICAgICBmb3IgKGFyZ2xvb2s9YXJndltpXTsqYXJnbG9vazthcmdsb29rKyspIHsKLSAgICAgICAgICAgIGlmICgqYXJnbG9vaz09JyInKQotICAgICAgICAgICAgICAgICpjbWRsaW5lZmlsbCsrID0gJ1xcJzsKLSAgICAgICAgICAgICpjbWRsaW5lZmlsbCsrID0gKmFyZ2xvb2s7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGJRdW90ZSkKLSAgICAgICAgICAgICpjbWRsaW5lZmlsbCsrID0gJyInOwotICAgICAgICAqY21kbGluZWZpbGwrKyA9ICcgJzsKLSAgICB9Ci0gICAgKmNtZGxpbmVmaWxsID0gJ1wwJzsKLQotICAgIC8qIE1ha2UgY2hpbGQgcHJvY2VzcyB1c2UgdGhpcyBhcHAncyBzdGFuZGFyZCBmaWxlcy4gKi8KLSAgICBaZXJvTWVtb3J5KCZzaSwgc2l6ZW9mIHNpKTsKLSAgICBzaS5jYiA9IHNpemVvZiBzaTsKLSAgICBzaS5kd0ZsYWdzID0gU1RBUlRGX1VTRVNUREhBTkRMRVM7Ci0gICAgc2kuaFN0ZElucHV0ID0gR2V0U3RkSGFuZGxlKFNURF9JTlBVVF9IQU5ETEUpOwotICAgIHNpLmhTdGRPdXRwdXQgPSBHZXRTdGRIYW5kbGUoU1REX09VVFBVVF9IQU5ETEUpOwotICAgIHNpLmhTdGRFcnJvciA9IEdldFN0ZEhhbmRsZShTVERfRVJST1JfSEFORExFKTsKLQotICAgIGJSZXQgPSBDcmVhdGVQcm9jZXNzKAotICAgICAgICBOVUxMLCBjbWRsaW5lLAotICAgICAgICBOVUxMLCBOVUxMLAotICAgICAgICBUUlVFLCAwLAotICAgICAgICBOVUxMLCBOVUxMLAotICAgICAgICAmc2ksICZwaQotICAgICAgICApOwotCi0gICAgZnJlZShjbWRsaW5lKTsKLQotICAgIGlmIChiUmV0KSB7Ci0gICAgICAgIGlmIChXYWl0Rm9yU2luZ2xlT2JqZWN0KHBpLmhQcm9jZXNzLCBJTkZJTklURSkgIT0gV0FJVF9GQUlMRUQpIHsKLQkgICAgR2V0RXhpdENvZGVQcm9jZXNzKHBpLmhQcm9jZXNzLCAmZXhpdF9jb2RlKTsKLQl9Ci0gICAgICAgIENsb3NlSGFuZGxlKHBpLmhQcm9jZXNzKTsKLSAgICAgICAgQ2xvc2VIYW5kbGUocGkuaFRocmVhZCk7Ci0gICAgICAgIHJldHVybiBleGl0X2NvZGU7Ci0gICAgfQotCi0gICAgcmV0dXJuIDE7Ci19CmRpZmYgLS1naXQgYS9QQy93aW5yZWcuYyBiL1BDL3dpbnJlZy5jCmluZGV4IDM4YTllNjkuLmEyNTExZDUgMTAwNjQ0Ci0tLSBhL1BDL3dpbnJlZy5jCisrKyBiL1BDL3dpbnJlZy5jCkBAIC0xNzk0LDkgKzE3OTQsOSBAQAogICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiSEtFWVR5cGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlPYmplY3QgKikmUHlIS0VZX1R5cGUpICE9IDApCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIFB5X0lOQ1JFRihQeUV4Y19XaW5kb3dzRXJyb3IpOworICAgIFB5X0lOQ1JFRihQeUV4Y19PU0Vycm9yKTsKICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgImVycm9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFeGNfV2luZG93c0Vycm9yKSAhPSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUV4Y19PU0Vycm9yKSAhPSAwKQogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIC8qIEFkZCB0aGUgcmVsZXZhbnQgY29uc3RhbnRzICovCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3c5eHBvcGVuLnZjeHByb2ogYi9QQ2J1aWxkL19zaGEzLnZjeHByb2oKc2ltaWxhcml0eSBpbmRleCA2NSUKcmVuYW1lIGZyb20gUENidWlsZC93OXhwb3Blbi52Y3hwcm9qCnJlbmFtZSB0byBQQ2J1aWxkL19zaGEzLnZjeHByb2oKaW5kZXggZDFhZmUyMi4uZjI0Y2JkYyAxMDA2NDQKLS0tIGEvUENidWlsZC93OXhwb3Blbi52Y3hwcm9qCisrKyBiL1BDYnVpbGQvX3NoYTMudmN4cHJvagpAQCAtMzUsMTA0ICszNSw5NSBAQAogICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CiAgIDwvSXRlbUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAgPFByb2plY3RHdWlkPntFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9PC9Qcm9qZWN0R3VpZD4KLSAgICA8Um9vdE5hbWVzcGFjZT53OXhwb3BlbjwvUm9vdE5hbWVzcGFjZT4KKyAgICA8UHJvamVjdEd1aWQ+ezI1NEEwQzA1LTY2OTYtNEIwOC04Q0IyLUVGN0Q1MzNBRUUwMX08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPl9zaGEzPC9Sb290TmFtZXNwYWNlPgorICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgogICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgogICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KICAgPC9JbXBvcnRHcm91cD4KICAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KLSAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CiAgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KICAgPC9JbXBvcnRHcm91cD4KICAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KICAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgogICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgogICA8L0ltcG9ydEdyb3VwPgogICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KICAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgogICA8L0ltcG9ydEdyb3VwPgogICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CiAgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgotICAgIDxJbXBvcnQgUHJvamVjdD0iZGVidWcucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KICAgPC9JbXBvcnRHcm91cD4KICAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KICAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CiAgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgogICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CiAgIDwvSW1wb3J0R3JvdXA+CiAgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KICAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KLSAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CiAgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CiAgIDwvSW1wb3J0R3JvdXA+CiAgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KICAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CiAgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgogICA8L0ltcG9ydEdyb3VwPgogICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgogICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgotICAgIDxJbXBvcnQgUHJvamVjdD0iZGVidWcucHJvcHMiIC8+CiAgIDwvSW1wb3J0R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgogICA8UHJvcGVydHlHcm91cD4KLSAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC4zMDMxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgogICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgogICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KICAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CkBAIC0xNTksMTI3ICsxNTAsNjcgQEAKICAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgotICAgIDwvQ2xDb21waWxlPgogICAgIDxMaW5rPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4lKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgogICAgIDwvTGluaz4KICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgogICAgIDxNaWRsPgogICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CiAgICAgPC9NaWRsPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgotICAgIDwvQ2xDb21waWxlPgogICAgIDxMaW5rPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4lKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgogICAgIDwvTGluaz4KICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPk9ubHlFeHBsaWNpdElubGluZTwvSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+Ci0gICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj5mYWxzZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4lKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgogICAgIDwvTGluaz4KICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CiAgICAgPE1pZGw+CiAgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KICAgICA8L01pZGw+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj5Pbmx5RXhwbGljaXRJbmxpbmU8L0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPgotICAgICAgPFN0cmluZ1Bvb2xpbmc+dHJ1ZTwvU3RyaW5nUG9vbGluZz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+ZmFsc2U8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KICAgICA8L0xpbms+CiAgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KICAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPk9ubHlFeHBsaWNpdElubGluZTwvSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+Ci0gICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj5mYWxzZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8SW1wb3J0TGlicmFyeT4KLSAgICAgIDwvSW1wb3J0TGlicmFyeT4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CiAgICAgPC9MaW5rPgogICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CiAgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPgogICAgIDxNaWRsPgogICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CiAgICAgPC9NaWRsPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8SW5saW5lRnVuY3Rpb25FeHBhbnNpb24+T25seUV4cGxpY2l0SW5saW5lPC9JbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj4KLSAgICAgIDxTdHJpbmdQb29saW5nPnRydWU8L1N0cmluZ1Bvb2xpbmc+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPmZhbHNlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxJbXBvcnRMaWJyYXJ5PgotICAgICAgPC9JbXBvcnRMaWJyYXJ5PgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KICAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CiAgICAgPC9MaW5rPgogICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CiAgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPk9ubHlFeHBsaWNpdElubGluZTwvSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+Ci0gICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj5mYWxzZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+Ci0gICAgICA8SW1wb3J0TGlicmFyeT4KLSAgICAgIDwvSW1wb3J0TGlicmFyeT4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CiAgICAgPC9MaW5rPgogICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CiAgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+CiAgICAgPE1pZGw+CiAgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KICAgICA8L01pZGw+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj5Pbmx5RXhwbGljaXRJbmxpbmU8L0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPgotICAgICAgPFN0cmluZ1Bvb2xpbmc+dHJ1ZTwvU3RyaW5nUG9vbGluZz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+ZmFsc2U8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAgPEltcG9ydExpYnJhcnk+Ci0gICAgICA8L0ltcG9ydExpYnJhcnk+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4lKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgogICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KICAgICA8L0xpbms+CiAgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KICAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXHc5eHBvcGVuLmMiIC8+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uY29yZS52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc2hhM1xzaGEzbW9kdWxlLmMiIC8+CiAgIDwvSXRlbUdyb3VwPgogICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgogICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgpkaWZmIC0tZ2l0IGEvUENidWlsZC93OXhwb3Blbi52Y3hwcm9qIGIvUENidWlsZC9fdGVzdGltcG9ydG11bHRpcGxlLnZjeHByb2oKc2ltaWxhcml0eSBpbmRleCA2NSUKY29weSBmcm9tIFBDYnVpbGQvdzl4cG9wZW4udmN4cHJvagpjb3B5IHRvIFBDYnVpbGQvX3Rlc3RpbXBvcnRtdWx0aXBsZS52Y3hwcm9qCmluZGV4IGQxYWZlMjIuLjg0OTg0ZmYgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvdzl4cG9wZW4udmN4cHJvagorKysgYi9QQ2J1aWxkL190ZXN0aW1wb3J0bXVsdGlwbGUudmN4cHJvagpAQCAtMzUsMTA0ICszNSw5NSBAQAogICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CiAgIDwvSXRlbUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+Ci0gICAgPFByb2plY3RHdWlkPntFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9PC9Qcm9qZWN0R3VpZD4KLSAgICA8Um9vdE5hbWVzcGFjZT53OXhwb3BlbjwvUm9vdE5hbWVzcGFjZT4KKyAgICA8UHJvamVjdEd1aWQ+ezM2RDBDNTJDLURGNEUtNDVEMC04QkM3LUUyOTRDM0FCQzc4MX08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPl90ZXN0aW1wb3J0bXVsdGlwbGU8L1Jvb3ROYW1lc3BhY2U+CisgICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgotICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgogICA8L1Byb3BlcnR5R3JvdXA+CiAgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+Ci0gICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KLSAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CiAgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgotICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+Ci0gICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KLSAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KLSAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgotICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+Ci0gICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+CiAgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgogICA8L0ltcG9ydEdyb3VwPgogICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CiAgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgotICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KICAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgogICA8L0ltcG9ydEdyb3VwPgogICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KLSAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CiAgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CiAgIDwvSW1wb3J0R3JvdXA+CiAgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KLSAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CiAgIDwvSW1wb3J0R3JvdXA+CiAgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KICAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSJkZWJ1Zy5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgogICA8L0ltcG9ydEdyb3VwPgogICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KICAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KLSAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CiAgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KICAgPC9JbXBvcnRHcm91cD4KICAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CiAgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgogICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgotICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KICAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KICAgPC9JbXBvcnRHcm91cD4KICAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgogICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KLSAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KICAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KLSAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CiAgIDwvSW1wb3J0R3JvdXA+CiAgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CiAgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgotICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CiAgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+Ci0gICAgPEltcG9ydCBQcm9qZWN0PSJkZWJ1Zy5wcm9wcyIgLz4KICAgPC9JbXBvcnRHcm91cD4KICAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CiAgIDxQcm9wZXJ0eUdyb3VwPgotICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CiAgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CiAgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgogICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KQEAgLTE1OSwxMjkgKzE1MCw2OSBAQAogICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KICAgPC9Qcm9wZXJ0eUdyb3VwPgogICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tzPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPExpbms+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMUYwMDAwPC9CYXNlQWRkcmVzcz4KICAgICA8L0xpbms+CiAgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KICAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KICAgICA8TWlkbD4KICAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgogICAgIDwvTWlkbD4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8TGluaz4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUxRjAwMDA8L0Jhc2VBZGRyZXNzPgogICAgIDwvTGluaz4KICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPk9ubHlFeHBsaWNpdElubGluZTwvSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+Ci0gICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj5mYWxzZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFGMDAwMDwvQmFzZUFkZHJlc3M+CiAgICAgPC9MaW5rPgogICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CiAgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KICAgICA8TWlkbD4KICAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgogICAgIDwvTWlkbD4KLSAgICA8Q2xDb21waWxlPgotICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgotICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPk9ubHlFeHBsaWNpdElubGluZTwvSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+Ci0gICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgotICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgotICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxMaW5rPgotICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj5mYWxzZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgotICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFGMDAwMDwvQmFzZUFkZHJlc3M+CiAgICAgPC9MaW5rPgogICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CiAgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+Ci0gICAgPENsQ29tcGlsZT4KLSAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KLSAgICAgIDxJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj5Pbmx5RXhwbGljaXRJbmxpbmU8L0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPgotICAgICAgPFN0cmluZ1Bvb2xpbmc+dHJ1ZTwvU3RyaW5nUG9vbGluZz4KLSAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KLSAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8TGluaz4KLSAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+ZmFsc2U8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KLSAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgotICAgICAgPEltcG9ydExpYnJhcnk+Ci0gICAgICA8L0ltcG9ydExpYnJhcnk+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFGMDAwMDwvQmFzZUFkZHJlc3M+CiAgICAgPC9MaW5rPgogICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CiAgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPgogICAgIDxNaWRsPgogICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CiAgICAgPC9NaWRsPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8SW5saW5lRnVuY3Rpb25FeHBhbnNpb24+T25seUV4cGxpY2l0SW5saW5lPC9JbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj4KLSAgICAgIDxTdHJpbmdQb29saW5nPnRydWU8L1N0cmluZ1Bvb2xpbmc+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPmZhbHNlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxJbXBvcnRMaWJyYXJ5PgotICAgICAgPC9JbXBvcnRMaWJyYXJ5PgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUxRjAwMDA8L0Jhc2VBZGRyZXNzPgogICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KICAgICA8L0xpbms+CiAgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KICAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8SW5saW5lRnVuY3Rpb25FeHBhbnNpb24+T25seUV4cGxpY2l0SW5saW5lPC9JbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj4KLSAgICAgIDxTdHJpbmdQb29saW5nPnRydWU8L1N0cmluZ1Bvb2xpbmc+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPmZhbHNlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxJbXBvcnRMaWJyYXJ5PgotICAgICAgPC9JbXBvcnRMaWJyYXJ5PgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUxRjAwMDA8L0Jhc2VBZGRyZXNzPgogICAgIDwvTGluaz4KICAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgogICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPgogICAgIDxNaWRsPgogICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CiAgICAgPC9NaWRsPgotICAgIDxDbENvbXBpbGU+Ci0gICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+Ci0gICAgICA8SW5saW5lRnVuY3Rpb25FeHBhbnNpb24+T25seUV4cGxpY2l0SW5saW5lPC9JbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj4KLSAgICAgIDxTdHJpbmdQb29saW5nPnRydWU8L1N0cmluZ1Bvb2xpbmc+Ci0gICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+Ci0gICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPExpbms+Ci0gICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPmZhbHNlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+Ci0gICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KLSAgICAgIDxJbXBvcnRMaWJyYXJ5PgotICAgICAgPC9JbXBvcnRMaWJyYXJ5PgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUxRjAwMDA8L0Jhc2VBZGRyZXNzPgogICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KICAgICA8L0xpbms+CiAgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KICAgPEl0ZW1Hcm91cD4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXHc5eHBvcGVuLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF90ZXN0aW1wb3J0bXVsdGlwbGUuYyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uY29yZS52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CiAgIDwvSXRlbUdyb3VwPgogICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgogICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1BDYnVpbGQvdzl4cG9wZW4udmN4cHJvai5maWx0ZXJzIGIvUENidWlsZC9fdGVzdGltcG9ydG11bHRpcGxlLnZjeHByb2ouZmlsdGVycwpzaW1pbGFyaXR5IGluZGV4IDcyJQpyZW5hbWUgZnJvbSBQQ2J1aWxkL3c5eHBvcGVuLnZjeHByb2ouZmlsdGVycwpyZW5hbWUgdG8gUENidWlsZC9fdGVzdGltcG9ydG11bHRpcGxlLnZjeHByb2ouZmlsdGVycwppbmRleCBkZWM2N2FkLi5kYjBkMGE2IDEwMDY0NAotLS0gYS9QQ2J1aWxkL3c5eHBvcGVuLnZjeHByb2ouZmlsdGVycworKysgYi9QQ2J1aWxkL190ZXN0aW1wb3J0bXVsdGlwbGUudmN4cHJvai5maWx0ZXJzCkBAIC0yLDEyICsyLDEyIEBACiA8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CiAgIDxJdGVtR3JvdXA+CiAgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgotICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2FiYzJkZmZkLTNmMmEtNDdiZC1iODliLTAzMTRjOTllZjIxZX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MWVjMzhhZDktMWFiZi00YjgwLTg2MjgtYWM0M2NjYmEzMjRifTwvVW5pcXVlSWRlbnRpZmllcj4KICAgICA8L0ZpbHRlcj4KICAgPC9JdGVtR3JvdXA+CiAgIDxJdGVtR3JvdXA+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1x3OXhwb3Blbi5jIj4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3Rlc3RpbXBvcnRtdWx0aXBsZS5jIj4KICAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CiAgIDwvSXRlbUdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1BDYnVpbGQvYnVpbGRfc3NsLmJhdCBiL1BDYnVpbGQvYnVpbGRfc3NsLmJhdAppbmRleCAzNTdiMDhiLi44MDVkNzdhIDEwMDY0NAotLS0gYS9QQ2J1aWxkL2J1aWxkX3NzbC5iYXQKKysrIGIvUENidWlsZC9idWlsZF9zc2wuYmF0CkBAIC0yLDEwICsyLDEwIEBACiBpZiBub3QgZGVmaW5lZCBIT1NUX1BZVEhPTiAoCiAgIGlmICUxIEVRVSBEZWJ1ZyAoCiAgICAgc2V0IEhPU1RfUFlUSE9OPXB5dGhvbl9kLmV4ZQotICAgIGlmIG5vdCBleGlzdCBweXRob24zM19kLmRsbCBleGl0IDEKKyAgICBpZiBub3QgZXhpc3QgcHl0aG9uMzRfZC5kbGwgZXhpdCAxCiAgICkgRUxTRSAoCiAgICAgc2V0IEhPU1RfUFlUSE9OPXB5dGhvbi5leGUKLSAgICBpZiBub3QgZXhpc3QgcHl0aG9uMzMuZGxsIGV4aXQgMQorICAgIGlmIG5vdCBleGlzdCBweXRob24zNC5kbGwgZXhpdCAxCiAgICkKICkKICVIT1NUX1BZVEhPTiUgYnVpbGRfc3NsLnB5ICUxICUyICUzCmRpZmYgLS1naXQgYS9QQ2J1aWxkL2J1aWxkX3RraW50ZXIucHkgYi9QQ2J1aWxkL2J1aWxkX3RraW50ZXIucHkKaW5kZXggNDE5NmNmMy4uOWYwODYzMSAxMDA2NDQKLS0tIGEvUENidWlsZC9idWlsZF90a2ludGVyLnB5CisrKyBiL1BDYnVpbGQvYnVpbGRfdGtpbnRlci5weQpAQCAtMTYsMTEgKzE2LDcgQEAKIFRJWCA9ICJ0aXgtOC40LjMueCIKIAogUk9PVCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgcGFyLCBwYXIpKQotIyBXaW5kb3dzIDIwMDAgY29tcGF0aWJpbGl0eTogV0lOVkVSIDB4MDUwMAotIyBodHRwOi8vbXNkbjIubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2FhMzgzNzQ1LmFzcHgKLU5NQUtFID0gKCdubWFrZSAvbm9sb2dvIC9mICVzICcKLSAgICAnQ09NUElMRVJGTEFHUz1cIi1EV0lOVkVSPTB4MDUwMCAtRF9XSU4zMl9XSU5OVD0weDA1MDAgLUROVERESV9WRVJTSU9OPU5URERJX1dJTjJLU1A0XCIgJwotICAgICclcyAlcycpCitOTUFLRSA9ICgnbm1ha2UgL25vbG9nbyAvZiAlcyAlcyAlcycpCiAKIGRlZiBubWFrZShtYWtlZmlsZSwgY29tbWFuZD0iIiwgKiprdyk6CiAgICAgZGVmaW5lcyA9ICcgJy5qb2luKGsrJz0nK3N0cih2KSBmb3IgaywgdiBpbiBrdy5pdGVtcygpKQpkaWZmIC0tZ2l0IGEvUENidWlsZC9raWxsX3B5dGhvbi5jIGIvUENidWlsZC9raWxsX3B5dGhvbi5jCmluZGV4IGJiMzIzZDMuLjYwNDczMWYgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQva2lsbF9weXRob24uYworKysgYi9QQ2J1aWxkL2tpbGxfcHl0aG9uLmMKQEAgLTEwNiw3ICsxMDYsNyBAQAogICAgICAgICAvKgogICAgICAgICAgKiBYWFggVE9ETzogaWYgd2UgcmVhbGx5IHdhbnRlZCB0byBiZSBmYW5jeSwgd2UgY291bGQgY2hlY2sgdGhlIAogICAgICAgICAgKiBtb2R1bGVzIGZvciBhbGwgcHJvY2Vzc2VzIChub3QganVzdCB0aGUgcHl0aG9uW19kXS5leGUgb25lcykKLSAgICAgICAgICogYW5kIHNlZSBpZiBhbnkgb2Ygb3VyIERMTHMgYXJlIGxvYWRlZCAoaS5lLiBweXRob24zM1tfZF0uZGxsKSwKKyAgICAgICAgICogYW5kIHNlZSBpZiBhbnkgb2Ygb3VyIERMTHMgYXJlIGxvYWRlZCAoaS5lLiBweXRob24zNFtfZF0uZGxsKSwKICAgICAgICAgICogYXMgdGhhdCB3b3VsZCBhbHNvIGluaGliaXQgb3VyIGFiaWxpdHkgdG8gcmVidWlsZCB0aGUgc29sdXRpb24uCiAgICAgICAgICAqIE5vdCB3b3J0aCBsb29zaW5nIHNsZWVwIG92ZXIgdGhvdWdoOyBmb3Igbm93LCBhIHNpbXBsZSBjaGVjayAKICAgICAgICAgICogZm9yIGp1c3QgdGhlIHB5dGhvbiBleGVjdXRhYmxlIHNob3VsZCBiZSBzdWZmaWNpZW50LgpkaWZmIC0tZ2l0IGEvUENidWlsZC9wY2J1aWxkLnNsbiBiL1BDYnVpbGQvcGNidWlsZC5zbG4KaW5kZXggZDZhMDIyZi4uOTkzOThkYiAxMDA2NDQKLS0tIGEvUENidWlsZC9wY2J1aWxkLnNsbgorKysgYi9QQ2J1aWxkL3BjYnVpbGQuc2xuCkBAIC0xNCw4ICsxNCw2IEBACiBFbmRQcm9qZWN0DQogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJweXRob253IiwgInB5dGhvbncudmN4cHJvaiIsICJ7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfSINCiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ3OXhwb3BlbiIsICJ3OXhwb3Blbi52Y3hwcm9qIiwgIntFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9Ig0KLUVuZFByb2plY3QNCiBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIm1ha2VfYnVpbGRpbmZvIiwgIm1ha2VfYnVpbGRpbmZvLnZjeHByb2oiLCAie0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0iDQogRW5kUHJvamVjdA0KIFByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAid2luc291bmQiLCAid2luc291bmQudmN4cHJvaiIsICJ7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fSINCkBAIC0zOCw2ICszNiw4IEBACiBFbmRQcm9qZWN0DQogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfdGVzdGNhcGkiLCAiX3Rlc3RjYXBpLnZjeHByb2oiLCAiezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0iDQogRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX3Rlc3RpbXBvcnRtdWx0aXBsZSIsICJfdGVzdGltcG9ydG11bHRpcGxlLnZjeHByb2oiLCAiezM2RDBDNTJDLURGNEUtNDVEMC04QkM3LUUyOTRDM0FCQzc4MX0iDQorRW5kUHJvamVjdA0KIFByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX3RraW50ZXIiLCAiX3RraW50ZXIudmN4cHJvaiIsICJ7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfSINCiBFbmRQcm9qZWN0DQogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfYnoyIiwgIl9iejIudmN4cHJvaiIsICJ7NzNGQ0QyQkQtRjEzMy00NkI3LThFQzEtMTQ0Q0Q4MkE1OUQ1fSINCkBAIC03NCw2ICs3NCw4IEBACiBFbmRQcm9qZWN0DQogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfZnJlZXplX2ltcG9ydGxpYiIsICJfZnJlZXplX2ltcG9ydGxpYi52Y3hwcm9qIiwgInsxOUMwQzEzRi00N0NBLTQ0MzItQUZGMy03OTlBMjk2QTREREN9Ig0KIEVuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9zaGEzIiwgIl9zaGEzLnZjeHByb2oiLCAiezI1NEEwQzA1LTY2OTYtNEIwOC04Q0IyLUVGN0Q1MzNBRUUwMX0iDQorRW5kUHJvamVjdA0KIEdsb2JhbA0KIAlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uQ29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbg0KIAkJRGVidWd8V2luMzIgPSBEZWJ1Z3xXaW4zMg0KQEAgLTM0Miw2ICszNDQsMjIgQEAKIAkJezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KIAkJezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCiAJCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJezM2RDBDNTJDLURGNEUtNDVEMC04QkM3LUUyOTRDM0FCQzc4MX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJezM2RDBDNTJDLURGNEUtNDVEMC04QkM3LUUyOTRDM0FCQzc4MX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KKwkJezM2RDBDNTJDLURGNEUtNDVEMC04QkM3LUUyOTRDM0FCQzc4MX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7MzZEMEM1MkMtREY0RS00NUQwLThCQzctRTI5NEMzQUJDNzgxfS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7MzZEMEM1MkMtREY0RS00NUQwLThCQzctRTI5NEMzQUJDNzgxfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQorCQl7MzZEMEM1MkMtREY0RS00NUQwLThCQzctRTI5NEMzQUJDNzgxfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXszNkQwQzUyQy1ERjRFLTQ1RDAtOEJDNy1FMjk0QzNBQkM3ODF9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7MzZEMEM1MkMtREY0RS00NUQwLThCQzctRTI5NEMzQUJDNzgxfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCiAJCXs0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQogCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCiAJCXs0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCkBAIC02MTEsNiArNjI5LDIyIEBACiAJCXsxOUMwQzEzRi00N0NBLTQ0MzItQUZGMy03OTlBMjk2QTREREN9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQogCQl7MTlDMEMxM0YtNDdDQS00NDMyLUFGRjMtNzk5QTI5NkE0RERDfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCiAJCXsxOUMwQzEzRi00N0NBLTQ0MzItQUZGMy03OTlBMjk2QTREREN9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7MjU0QTBDMDUtNjY5Ni00QjA4LThDQjItRUY3RDUzM0FFRTAxfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KKwkJezI1NEEwQzA1LTY2OTYtNEIwOC04Q0IyLUVGN0Q1MzNBRUUwMX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQorCQl7MjU0QTBDMDUtNjY5Ni00QjA4LThDQjItRUY3RDUzM0FFRTAxfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQorCQl7MjU0QTBDMDUtNjY5Ni00QjA4LThDQjItRUY3RDUzM0FFRTAxfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KKwkJezI1NEEwQzA1LTY2OTYtNEIwOC04Q0IyLUVGN0Q1MzNBRUUwMX0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezI1NEEwQzA1LTY2OTYtNEIwOC04Q0IyLUVGN0Q1MzNBRUUwMX0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXsyNTRBMEMwNS02Njk2LTRCMDgtOENCMi1FRjdENTMzQUVFMDF9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezI1NEEwQzA1LTY2OTYtNEIwOC04Q0IyLUVGN0Q1MzNBRUUwMX0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezI1NEEwQzA1LTY2OTYtNEIwOC04Q0IyLUVGN0Q1MzNBRUUwMX0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCisJCXsyNTRBMEMwNS02Njk2LTRCMDgtOENCMi1FRjdENTMzQUVFMDF9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezI1NEEwQzA1LTY2OTYtNEIwOC04Q0IyLUVGN0Q1MzNBRUUwMX0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KKwkJezI1NEEwQzA1LTY2OTYtNEIwOC04Q0IyLUVGN0Q1MzNBRUUwMX0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCisJCXsyNTRBMEMwNS02Njk2LTRCMDgtOENCMi1FRjdENTMzQUVFMDF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJezI1NEEwQzA1LTY2OTYtNEIwOC04Q0IyLUVGN0Q1MzNBRUUwMX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJezI1NEEwQzA1LTY2OTYtNEIwOC04Q0IyLUVGN0Q1MzNBRUUwMX0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXsyNTRBMEMwNS02Njk2LTRCMDgtOENCMi1FRjdENTMzQUVFMDF9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KIAlFbmRHbG9iYWxTZWN0aW9uDQogCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Qcm9wZXJ0aWVzKSA9IHByZVNvbHV0aW9uDQogCQlIaWRlU29sdXRpb25Ob2RlID0gRkFMU0UNCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5cHJvamVjdC5wcm9wcyBiL1BDYnVpbGQvcHlwcm9qZWN0LnByb3BzCmluZGV4IDgxNTUyMzEuLjZiZTBiYTIgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvcHlwcm9qZWN0LnByb3BzCisrKyBiL1BDYnVpbGQvcHlwcm9qZWN0LnByb3BzCkBAIC0xMyw3ICsxMyw3IEBACiAgICAgPEludERpcj4kKFNvbHV0aW9uRGlyKSQoUGxhdGZvcm1OYW1lKS10ZW1wLSQoQ29uZmlndXJhdGlvbilcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+CiAgIDwvUHJvcGVydHlHcm91cD4KICAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiPgotICAgIDxQeURsbE5hbWU+cHl0aG9uMzMkKFB5RGVidWdFeHQpPC9QeURsbE5hbWU+CisgICAgPFB5RGxsTmFtZT5weXRob24zNCQoUHlEZWJ1Z0V4dCk8L1B5RGxsTmFtZT4KICAgICA8UHl0aG9uRXhlPiQoT3V0RGlyKXB5dGhvbiQoUHlEZWJ1Z0V4dCkuZXhlPC9QeXRob25FeGU+CiAgICAgPEtpbGxQeXRob25FeGU+JChPdXREaXIpa2lsbF9weXRob24kKFB5RGVidWdFeHQpLmV4ZTwvS2lsbFB5dGhvbkV4ZT4KICAgICA8ZXh0ZXJuYWxzRGlyPi4uXC4uPC9leHRlcm5hbHNEaXI+CmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5dGhvbi52Y3hwcm9qIGIvUENidWlsZC9weXRob24udmN4cHJvagppbmRleCBkMGE5ZGUwLi5lMWQwNWU1IDEwMDY0NAotLS0gYS9QQ2J1aWxkL3B5dGhvbi52Y3hwcm9qCisrKyBiL1BDYnVpbGQvcHl0aG9uLnZjeHByb2oKQEAgLTM1NywxMiArMzU3LDggQEAKICAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgogICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KICAgICA8L1Byb2plY3RSZWZlcmVuY2U+Ci0gICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0idzl4cG9wZW4udmN4cHJvaiI+Ci0gICAgICA8UHJvamVjdD57ZTllMGExZjYtMDAwOS00ZThjLWI4ZjgtMWI4ZjVkNDlhMDU4fTwvUHJvamVjdD4KLSAgICAgIDxSZWZlcmVuY2VPdXRwdXRBc3NlbWJseT5mYWxzZTwvUmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+Ci0gICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgogICA8L0l0ZW1Hcm91cD4KICAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KICAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5dGhvbmNvcmUudmN4cHJvaiBiL1BDYnVpbGQvcHl0aG9uY29yZS52Y3hwcm9qCmluZGV4IDI5NDkzZTMuLmJiYTk4YmIgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvcHl0aG9uY29yZS52Y3hwcm9qCisrKyBiL1BDYnVpbGQvcHl0aG9uY29yZS52Y3hwcm9qCkBAIC00NzUsNiArNDc1LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE9iamVjdHNcc3RyaW5nbGliXGZhc3RzZWFyY2guaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE9iamVjdHNcc3RyaW5nbGliXGZpbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE9iamVjdHNcc3RyaW5nbGliXHBhcnRpdGlvbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xzdHJpbmdsaWJccmVwbGFjZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xzdHJpbmdsaWJcc3BsaXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE9iamVjdHNcdW5pY29kZXR5cGVfZGIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFBhcnNlclxwYXJzZXIuaCIgLz4KQEAgLTUxNiw3ICs1MTcsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xtYXRobW9kdWxlLmMiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXG1kNW1vZHVsZS5jIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xtbWFwbW9kdWxlLmMiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXG9wZXJhdG9yLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9vcGVyYXRvci5jIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xwYXJzZXJtb2R1bGUuYyIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNccG9zaXhtb2R1bGUuYyIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNccm90YXRpbmd0cmVlLmMiIC8+CmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5dGhvbmNvcmUudmN4cHJvai5maWx0ZXJzIGIvUENidWlsZC9weXRob25jb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCAwOWI0YmI0Li43MzZhOWM4IDEwMDY0NAotLS0gYS9QQ2J1aWxkL3B5dGhvbmNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1BDYnVpbGQvcHl0aG9uY29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTM3OCw2ICszNzgsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xzdHJpbmdsaWJccGFydGl0aW9uLmgiPgogICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxPYmplY3RzXHN0cmluZ2xpYlxyZXBsYWNlLmgiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxPYmplY3RzXHN0cmluZ2xpYlxzcGxpdC5oIj4KICAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtNDk4LDcgKzUwMSw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXG1tYXBtb2R1bGUuYyI+CiAgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcb3BlcmF0b3IuYyI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9vcGVyYXRvci5jIj4KICAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xwYXJzZXJtb2R1bGUuYyI+CmRpZmYgLS1naXQgYS9QQ2J1aWxkL3JlYWRtZS50eHQgYi9QQ2J1aWxkL3JlYWRtZS50eHQKaW5kZXggMmVmZTI0OS4uYjYwZjIyZCAxMDA2NDQKLS0tIGEvUENidWlsZC9yZWFkbWUudHh0CisrKyBiL1BDYnVpbGQvcmVhZG1lLnR4dApAQCAtMzcsNyArMzcsNyBAQAogICAgcnVubmluZyBhIFB5dGhvbiBjb3JlIGJ1aWxkYm90IHRlc3Qgc2xhdmU7IHNlZSBTVUJQUk9KRUNUUyBiZWxvdykKIAogV2hlbiB1c2luZyB0aGUgRGVidWcgc2V0dGluZywgdGhlIG91dHB1dCBmaWxlcyBoYXZlIGEgX2QgYWRkZWQgdG8KLXRoZWlyIG5hbWU6ICBweXRob24zM19kLmRsbCwgcHl0aG9uX2QuZXhlLCBwYXJzZXJfZC5weWQsIGFuZCBzbyBvbi4gQm90aAordGhlaXIgbmFtZTogIHB5dGhvbjM0X2QuZGxsLCBweXRob25fZC5leGUsIHBhcnNlcl9kLnB5ZCwgYW5kIHNvIG9uLiBCb3RoCiB0aGUgYnVpbGQgYW5kIHJ0IGJhdGNoIGZpbGVzIGFjY2VwdCBhIC1kIG9wdGlvbiBmb3IgZGVidWcgYnVpbGRzLgogCiBUaGUgMzJiaXQgYnVpbGRzIGVuZCB1cCBpbiB0aGUgc29sdXRpb24gZm9sZGVyIFBDYnVpbGQgd2hpbGUgdGhlIHg2NCBidWlsZHMKZGlmZiAtLWdpdCBhL1BhcnNlci9QeXRob24uYXNkbCBiL1BhcnNlci9QeXRob24uYXNkbAppbmRleCBjMjRkODQwLi5kZWJkODllIDEwMDY0NAotLS0gYS9QYXJzZXIvUHl0aG9uLmFzZGwKKysrIGIvUGFyc2VyL1B5dGhvbi5hc2RsCkBAIC0xLDQgKzEsNCBAQAotLS0gQVNETCdzIGZpdmUgYnVpbHRpbiB0eXBlcyBhcmUgaWRlbnRpZmllciwgaW50LCBzdHJpbmcsIGJ5dGVzLCBvYmplY3QKKy0tIEFTREwncyBzaXggYnVpbHRpbiB0eXBlcyBhcmUgaWRlbnRpZmllciwgaW50LCBzdHJpbmcsIGJ5dGVzLCBvYmplY3QsIHNpbmdsZXRvbgogCiBtb2R1bGUgUHl0aG9uCiB7CkBAIC02OSw4ICs2OSw4IEBACiAgICAgICAgICB8IE51bShvYmplY3QgbikgLS0gYSBudW1iZXIgYXMgYSBQeU9iamVjdC4KICAgICAgICAgIHwgU3RyKHN0cmluZyBzKSAtLSBuZWVkIHRvIHNwZWNpZnkgcmF3LCB1bmljb2RlLCBldGM/CiAgICAgICAgICB8IEJ5dGVzKGJ5dGVzIHMpCisgICAgICAgICB8IE5hbWVDb25zdGFudChzaW5nbGV0b24gdmFsdWUpCiAgICAgICAgICB8IEVsbGlwc2lzCi0gICAgICAgICAtLSBvdGhlciBsaXRlcmFscz8gYm9vbHM/CiAKICAgICAgICAgIC0tIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbiBjYW4gYXBwZWFyIGluIGFzc2lnbm1lbnQgY29udGV4dAogICAgICAgICAgfCBBdHRyaWJ1dGUoZXhwciB2YWx1ZSwgaWRlbnRpZmllciBhdHRyLCBleHByX2NvbnRleHQgY3R4KQpAQCAtMTAzLDExICsxMDMsMTEgQEAKICAgICBleGNlcHRoYW5kbGVyID0gRXhjZXB0SGFuZGxlcihleHByPyB0eXBlLCBpZGVudGlmaWVyPyBuYW1lLCBzdG10KiBib2R5KQogICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIChpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCkKIAotICAgIGFyZ3VtZW50cyA9IChhcmcqIGFyZ3MsIGlkZW50aWZpZXI/IHZhcmFyZywgZXhwcj8gdmFyYXJnYW5ub3RhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgIGFyZyoga3dvbmx5YXJncywgaWRlbnRpZmllcj8ga3dhcmcsCi0gICAgICAgICAgICAgICAgICAgICBleHByPyBrd2FyZ2Fubm90YXRpb24sIGV4cHIqIGRlZmF1bHRzLAotICAgICAgICAgICAgICAgICAgICAgZXhwcioga3dfZGVmYXVsdHMpCisgICAgYXJndW1lbnRzID0gKGFyZyogYXJncywgYXJnPyB2YXJhcmcsIGFyZyoga3dvbmx5YXJncywgZXhwcioga3dfZGVmYXVsdHMsCisgICAgICAgICAgICAgICAgIGFyZz8ga3dhcmcsIGV4cHIqIGRlZmF1bHRzKQorCiAgICAgYXJnID0gKGlkZW50aWZpZXIgYXJnLCBleHByPyBhbm5vdGF0aW9uKQorICAgICAgICAgICBhdHRyaWJ1dGVzIChpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCkKIAogICAgIC0tIGtleXdvcmQgYXJndW1lbnRzIHN1cHBsaWVkIHRvIGNhbGwKICAgICBrZXl3b3JkID0gKGlkZW50aWZpZXIgYXJnLCBleHByIHZhbHVlKQpkaWZmIC0tZ2l0IGEvUGFyc2VyL2FzZGwucHkgYi9QYXJzZXIvYXNkbC5weQppbmRleCAwOGFhMDViLi43ZGY3NmMwIDEwMDY0NAotLS0gYS9QYXJzZXIvYXNkbC5weQorKysgYi9QYXJzZXIvYXNkbC5weQpAQCAtMTU4LDExICsxNTgsMTkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2c9ImV4cGVjdGVkIGF0dHJpYnV0ZXMsIGZvdW5kICVzIiAlIGlkKQogICAgICAgICByZXR1cm4gU3VtKHN1bSwgYXR0cmlidXRlcykKIAotICAgIGRlZiBwX3Byb2R1Y3Qoc2VsZiwgaW5mbyk6CisgICAgZGVmIHBfcHJvZHVjdF8wKHNlbGYsIGluZm8pOgogICAgICAgICAiIHByb2R1Y3QgOjo9ICggZmllbGRzICkgIgogICAgICAgICBfMCwgZmllbGRzLCBfMSA9IGluZm8KICAgICAgICAgcmV0dXJuIFByb2R1Y3QoZmllbGRzKQogCisgICAgZGVmIHBfcHJvZHVjdF8xKHNlbGYsIGluZm8pOgorICAgICAgICAiIHByb2R1Y3QgOjo9ICggZmllbGRzICkgSWQgKCBmaWVsZHMgKSAiCisgICAgICAgIF8wLCBmaWVsZHMsIF8xLCBpZCwgXzIsIGF0dHJpYnV0ZXMsIF8zID0gaW5mbworICAgICAgICBpZiBpZC52YWx1ZSAhPSAiYXR0cmlidXRlcyI6CisgICAgICAgICAgICByYWlzZSBBU0RMU3ludGF4RXJyb3IoaWQubGluZW5vLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZz0iZXhwZWN0ZWQgYXR0cmlidXRlcywgZm91bmQgJXMiICUgaWQpCisgICAgICAgIHJldHVybiBQcm9kdWN0KGZpZWxkcywgYXR0cmlidXRlcykKKwogICAgIGRlZiBwX3N1bV8wKHNlbGYsIGNvbnN0cnVjdG9yKToKICAgICAgICAgIiBzdW0gOjo9IGNvbnN0cnVjdG9yICIKICAgICAgICAgcmV0dXJuIFtjb25zdHJ1Y3RvclswXV0KQEAgLTIyMiw3ICsyMzAsNyBAQAogICAgICAgICAiIGZpZWxkIDo6PSBJZCA/ICIKICAgICAgICAgcmV0dXJuIEZpZWxkKHR5cGVbMF0sIG9wdD1UcnVlKQogCi1idWlsdGluX3R5cGVzID0gKCJpZGVudGlmaWVyIiwgInN0cmluZyIsICJieXRlcyIsICJpbnQiLCAib2JqZWN0IikKK2J1aWx0aW5fdHlwZXMgPSAoImlkZW50aWZpZXIiLCAic3RyaW5nIiwgImJ5dGVzIiwgImludCIsICJvYmplY3QiLCAic2luZ2xldG9uIikKIAogIyBiZWxvdyBpcyBhIGNvbGxlY3Rpb24gb2YgY2xhc3NlcyB0byBjYXB0dXJlIHRoZSBBU1Qgb2YgYW4gQVNUIDotKQogIyBub3Qgc3VyZSBpZiBhbnkgb2YgdGhlIG1ldGhvZHMgYXJlIHVzZWZ1bCB5ZXQsIGJ1dCBJJ20gYWRkaW5nIHRoZW0KQEAgLTI4OSwxMSArMjk3LDE1IEBACiAgICAgICAgICAgICByZXR1cm4gIlN1bSglcywgJXMpIiAlIChzZWxmLnR5cGVzLCBzZWxmLmF0dHJpYnV0ZXMpCiAKIGNsYXNzIFByb2R1Y3QoQVNUKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmllbGRzKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmllbGRzLCBhdHRyaWJ1dGVzPU5vbmUpOgogICAgICAgICBzZWxmLmZpZWxkcyA9IGZpZWxkcworICAgICAgICBzZWxmLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzIG9yIFtdCiAKICAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiUHJvZHVjdCglcykiICUgc2VsZi5maWVsZHMKKyAgICAgICAgaWYgc2VsZi5hdHRyaWJ1dGVzIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gIlByb2R1Y3QoJXMpIiAlIHNlbGYuZmllbGRzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gIlByb2R1Y3QoJXMsICVzKSIgJSAoc2VsZi5maWVsZHMsIHNlbGYuYXR0cmlidXRlcykKIAogY2xhc3MgVmlzaXRvckJhc2Uob2JqZWN0KToKIApkaWZmIC0tZ2l0IGEvUGFyc2VyL2FzZGxfYy5weSBiL1BhcnNlci9hc2RsX2MucHkKaW5kZXggYTllNjYyNi4uOWY4NTUyOCAxMDA3NTUKLS0tIGEvUGFyc2VyL2FzZGxfYy5weQorKysgYi9QYXJzZXIvYXNkbF9jLnB5CkBAIC0yMDksNiArMjA5LDExIEBACiAgICAgICAgIHNlbGYuZW1pdCgic3RydWN0IF8lKG5hbWUpcyB7IiAlIGxvY2FscygpLCBkZXB0aCkKICAgICAgICAgZm9yIGYgaW4gcHJvZHVjdC5maWVsZHM6CiAgICAgICAgICAgICBzZWxmLnZpc2l0KGYsIGRlcHRoICsgMSkKKyAgICAgICAgZm9yIGZpZWxkIGluIHByb2R1Y3QuYXR0cmlidXRlczoKKyAgICAgICAgICAgICMgcnVkaW1lbnRhcnkgYXR0cmlidXRlIGhhbmRsaW5nCisgICAgICAgICAgICB0eXBlID0gc3RyKGZpZWxkLnR5cGUpCisgICAgICAgICAgICBhc3NlcnQgdHlwZSBpbiBhc2RsLmJ1aWx0aW5fdHlwZXMsIHR5cGUKKyAgICAgICAgICAgIHNlbGYuZW1pdCgiJXMgJXM7IiAlICh0eXBlLCBmaWVsZC5uYW1lKSwgZGVwdGggKyAxKTsKICAgICAgICAgc2VsZi5lbWl0KCJ9OyIsIGRlcHRoKQogICAgICAgICBzZWxmLmVtaXQoIiIsIGRlcHRoKQogCkBAIC00OTMsNyArNDk4LDExIEBACiAKICAgICBkZWYgdmlzaXRGaWVsZChzZWxmLCBmaWVsZCwgbmFtZSwgc3VtPU5vbmUsIHByb2Q9Tm9uZSwgZGVwdGg9MCk6CiAgICAgICAgIGN0eXBlID0gZ2V0X2NfdHlwZShmaWVsZC50eXBlKQotICAgICAgICBzZWxmLmVtaXQoImlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfJXMpKSB7IiAlIGZpZWxkLm5hbWUsIGRlcHRoKQorICAgICAgICBpZiBmaWVsZC5vcHQ6CisgICAgICAgICAgICBjaGVjayA9ICJleGlzdHNfbm90X25vbmUob2JqLCAmUHlJZF8lcykiICUgKGZpZWxkLm5hbWUsKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2hlY2sgPSAiX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkXyVzKSIgJSAoZmllbGQubmFtZSwpCisgICAgICAgIHNlbGYuZW1pdCgiaWYgKCVzKSB7IiAlIChjaGVjaywpLCBkZXB0aCwgcmVmbG93PUZhbHNlKQogICAgICAgICBzZWxmLmVtaXQoImludCByZXM7IiwgZGVwdGgrMSkKICAgICAgICAgaWYgZmllbGQuc2VxOgogICAgICAgICAgICAgc2VsZi5lbWl0KCJQeV9zc2l6ZV90IGxlbjsiLCBkZXB0aCsxKQpAQCAtNTU5LDYgKzU2OCwxMyBAQAogICAgIGRlZiB2aXNpdFByb2R1Y3Qoc2VsZiwgcHJvZCwgbmFtZSk6CiAgICAgICAgIHNlbGYuZW1pdCgic3RhdGljIFB5VHlwZU9iamVjdCAqJXNfdHlwZTsiICUgbmFtZSwgMCkKICAgICAgICAgc2VsZi5lbWl0KCJzdGF0aWMgUHlPYmplY3QqIGFzdDJvYmpfJXModm9pZCopOyIgJSBuYW1lLCAwKQorICAgICAgICBpZiBwcm9kLmF0dHJpYnV0ZXM6CisgICAgICAgICAgICBmb3IgYSBpbiBwcm9kLmF0dHJpYnV0ZXM6CisgICAgICAgICAgICAgICAgc2VsZi5lbWl0X2lkZW50aWZpZXIoYS5uYW1lKQorICAgICAgICAgICAgc2VsZi5lbWl0KCJzdGF0aWMgY2hhciAqJXNfYXR0cmlidXRlc1tdID0geyIgJSBuYW1lLCAwKQorICAgICAgICAgICAgZm9yIGEgaW4gcHJvZC5hdHRyaWJ1dGVzOgorICAgICAgICAgICAgICAgIHNlbGYuZW1pdCgnIiVzIiwnICUgYS5uYW1lLCAxKQorICAgICAgICAgICAgc2VsZi5lbWl0KCJ9OyIsIDApCiAgICAgICAgIGlmIHByb2QuZmllbGRzOgogICAgICAgICAgICAgZm9yIGYgaW4gcHJvZC5maWVsZHM6CiAgICAgICAgICAgICAgICAgc2VsZi5lbWl0X2lkZW50aWZpZXIoZi5uYW1lKQpAQCAtODIwLDYgKzgzNiw3IEBACiAgICAgUHlfSU5DUkVGKChQeU9iamVjdCopbyk7CiAgICAgcmV0dXJuIChQeU9iamVjdCopbzsKIH0KKyNkZWZpbmUgYXN0Mm9ial9zaW5nbGV0b24gYXN0Mm9ial9vYmplY3QKICNkZWZpbmUgYXN0Mm9ial9pZGVudGlmaWVyIGFzdDJvYmpfb2JqZWN0CiAjZGVmaW5lIGFzdDJvYmpfc3RyaW5nIGFzdDJvYmpfb2JqZWN0CiAjZGVmaW5lIGFzdDJvYmpfYnl0ZXMgYXN0Mm9ial9vYmplY3QKQEAgLTgzMSw2ICs4NDgsMTcgQEAKIAogLyogQ29udmVyc2lvbiBQeXRob24gLT4gQVNUICovCiAKK3N0YXRpYyBpbnQgb2JqMmFzdF9zaW5nbGV0b24oUHlPYmplY3QgKm9iaiwgUHlPYmplY3QqKiBvdXQsIFB5QXJlbmEqIGFyZW5hKQoreworICAgIGlmIChvYmogIT0gUHlfTm9uZSAmJiBvYmogIT0gUHlfVHJ1ZSAmJiBvYmogIT0gUHlfRmFsc2UpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiQVNUIHNpbmdsZXRvbiBtdXN0IGJlIFRydWUsIEZhbHNlLCBvciBOb25lIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICAqb3V0ID0gb2JqOworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IG9iajJhc3Rfb2JqZWN0KFB5T2JqZWN0KiBvYmosIFB5T2JqZWN0Kiogb3V0LCBQeUFyZW5hKiBhcmVuYSkKIHsKICAgICBpZiAob2JqID09IFB5X05vbmUpCkBAIC05MDEsNiArOTI5LDE5IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgZXhpc3RzX25vdF9ub25lKFB5T2JqZWN0ICpvYmosIF9QeV9JZGVudGlmaWVyICppZCkKK3sKKyAgICBpbnQgaXNub25lOworICAgIFB5T2JqZWN0ICphdHRyID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosIGlkKTsKKyAgICBpZiAoIWF0dHIpIHsKKyAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGlzbm9uZSA9IGF0dHIgPT0gUHlfTm9uZTsKKyAgICBQeV9ERUNSRUYoYXR0cik7CisgICAgcmV0dXJuICFpc25vbmU7Cit9CisKICIiIiwgMCwgcmVmbG93PUZhbHNlKQogCiAgICAgICAgIHNlbGYuZW1pdCgic3RhdGljIGludCBpbml0X3R5cGVzKHZvaWQpIiwwKQpAQCAtOTIyLDYgKzk2MywxMSBAQAogICAgICAgICBzZWxmLmVtaXQoJyVzX3R5cGUgPSBtYWtlX3R5cGUoIiVzIiwgJkFTVF90eXBlLCAlcywgJWQpOycgJQogICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUsIG5hbWUsIGZpZWxkcywgbGVuKHByb2QuZmllbGRzKSksIDEpCiAgICAgICAgIHNlbGYuZW1pdCgiaWYgKCElc190eXBlKSByZXR1cm4gMDsiICUgbmFtZSwgMSkKKyAgICAgICAgaWYgcHJvZC5hdHRyaWJ1dGVzOgorICAgICAgICAgICAgc2VsZi5lbWl0KCJpZiAoIWFkZF9hdHRyaWJ1dGVzKCVzX3R5cGUsICVzX2F0dHJpYnV0ZXMsICVkKSkgcmV0dXJuIDA7IiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUsIG5hbWUsIGxlbihwcm9kLmF0dHJpYnV0ZXMpKSwgMSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZW1pdCgiaWYgKCFhZGRfYXR0cmlidXRlcyglc190eXBlLCBOVUxMLCAwKSkgcmV0dXJuIDA7IiAlIG5hbWUsIDEpCiAKICAgICBkZWYgdmlzaXRTdW0oc2VsZiwgc3VtLCBuYW1lKToKICAgICAgICAgc2VsZi5lbWl0KCclc190eXBlID0gbWFrZV90eXBlKCIlcyIsICZBU1RfdHlwZSwgTlVMTCwgMCk7JyAlCkBAIC05NjUsNyArMTAxMSw3IEBACiAgICAgICAgIHNlbGYuZW1pdCgiaWYgKCFtKSByZXR1cm4gTlVMTDsiLCAxKQogICAgICAgICBzZWxmLmVtaXQoImQgPSBQeU1vZHVsZV9HZXREaWN0KG0pOyIsIDEpCiAgICAgICAgIHNlbGYuZW1pdCgnaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJBU1QiLCAoUHlPYmplY3QqKSZBU1RfdHlwZSkgPCAwKSByZXR1cm4gTlVMTDsnLCAxKQotICAgICAgICBzZWxmLmVtaXQoJ2lmIChQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlDRl9PTkxZX0FTVCIsIFB5Q0ZfT05MWV9BU1QpIDwgMCknLCAxKQorICAgICAgICBzZWxmLmVtaXQoJ2lmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBQeUNGX09OTFlfQVNUKSA8IDApJywgMSkKICAgICAgICAgc2VsZi5lbWl0KCJyZXR1cm4gTlVMTDsiLCAyKQogICAgICAgICBmb3IgZGZuIGluIG1vZC5kZm5zOgogICAgICAgICAgICAgc2VsZi52aXNpdChkZm4pCkBAIC0xMDc3LDYgKzExMjMsMTIgQEAKICAgICAgICAgc2VsZi5lbWl0KCJpZiAoIXJlc3VsdCkgcmV0dXJuIE5VTEw7IiwgMSkKICAgICAgICAgZm9yIGZpZWxkIGluIHByb2QuZmllbGRzOgogICAgICAgICAgICAgc2VsZi52aXNpdEZpZWxkKGZpZWxkLCBuYW1lLCAxLCBUcnVlKQorICAgICAgICBmb3IgYSBpbiBwcm9kLmF0dHJpYnV0ZXM6CisgICAgICAgICAgICBzZWxmLmVtaXQoInZhbHVlID0gYXN0Mm9ial8lcyhvLT4lcyk7IiAlIChhLnR5cGUsIGEubmFtZSksIDEpCisgICAgICAgICAgICBzZWxmLmVtaXQoImlmICghdmFsdWUpIGdvdG8gZmFpbGVkOyIsIDEpCisgICAgICAgICAgICBzZWxmLmVtaXQoJ2lmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfJXMsIHZhbHVlKSA8IDApJyAlIGEubmFtZSwgMSkKKyAgICAgICAgICAgIHNlbGYuZW1pdCgnZ290byBmYWlsZWQ7JywgMikKKyAgICAgICAgICAgIHNlbGYuZW1pdCgnUHlfREVDUkVGKHZhbHVlKTsnLCAxKQogICAgICAgICBzZWxmLmZ1bmNfZW5kKCkKIAogICAgIGRlZiB2aXNpdENvbnN0cnVjdG9yKHNlbGYsIGNvbnMsIGVudW0sIG5hbWUpOgpkaWZmIC0tZ2l0IGEvUGFyc2VyL2dyYW1tYXIxLmMgYi9QYXJzZXIvZ3JhbW1hcjEuYwppbmRleCAxZjdkMjY0Li40YjVhYThhIDEwMDY0NAotLS0gYS9QYXJzZXIvZ3JhbW1hcjEuYworKysgYi9QYXJzZXIvZ3JhbW1hcjEuYwpAQCAtMzAsNyArMzAsNyBAQAogI2VuZGlmCiB9CiAKLWNoYXIgKgorY29uc3QgY2hhciAqCiBQeUdyYW1tYXJfTGFiZWxSZXByKGxhYmVsICpsYikKIHsKICAgICBzdGF0aWMgY2hhciBidWZbMTAwXTsKZGlmZiAtLWdpdCBhL1BhcnNlci9teXJlYWRsaW5lLmMgYi9QYXJzZXIvbXlyZWFkbGluZS5jCmluZGV4IGQ4NjQ2MjMuLjhiMjcwNDUgMTAwNjQ0Ci0tLSBhL1BhcnNlci9teXJlYWRsaW5lLmMKKysrIGIvUGFyc2VyL215cmVhZGxpbmUuYwpAQCAtNjgsNyArNjgsNyBAQAogICAgICAgICAqLwogICAgICAgICBpZiAoR2V0TGFzdEVycm9yKCk9PUVSUk9SX09QRVJBVElPTl9BQk9SVEVEKSB7CiAgICAgICAgICAgICBoSW50ZXJydXB0RXZlbnQgPSBfUHlPU19TaWdpbnRFdmVudCgpOwotICAgICAgICAgICAgc3dpdGNoIChXYWl0Rm9yU2luZ2xlT2JqZWN0KGhJbnRlcnJ1cHRFdmVudCwgMTApKSB7CisgICAgICAgICAgICBzd2l0Y2ggKFdhaXRGb3JTaW5nbGVPYmplY3RFeChoSW50ZXJydXB0RXZlbnQsIDEwLCBGQUxTRSkpIHsKICAgICAgICAgICAgIGNhc2UgV0FJVF9PQkpFQ1RfMDoKICAgICAgICAgICAgICAgICBSZXNldEV2ZW50KGhJbnRlcnJ1cHRFdmVudCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7IC8qIEludGVycnVwdCAqLwpkaWZmIC0tZ2l0IGEvUGFyc2VyL3Rva2VuaXplci5jIGIvUGFyc2VyL3Rva2VuaXplci5jCmluZGV4IDkzYTRhNWMuLjU0ODAyNzggMTAwNjQ0Ci0tLSBhL1BhcnNlci90b2tlbml6ZXIuYworKysgYi9QYXJzZXIvdG9rZW5pemVyLmMKQEAgLTQ3LDcgKzQ3LDcgQEAKIAogLyogVG9rZW4gbmFtZXMgKi8KIAotY2hhciAqX1B5UGFyc2VyX1Rva2VuTmFtZXNbXSA9IHsKK2NvbnN0IGNoYXIgKl9QeVBhcnNlcl9Ub2tlbk5hbWVzW10gPSB7CiAgICAgIkVORE1BUktFUiIsCiAgICAgIk5BTUUiLAogICAgICJOVU1CRVIiLApAQCAtNjYwLDcgKzY2MCw4IEBACiAKIHN0YXRpYyBjaGFyICoKIHRyYW5zbGF0ZV9uZXdsaW5lcyhjb25zdCBjaGFyICpzLCBpbnQgZXhlY19pbnB1dCwgc3RydWN0IHRva19zdGF0ZSAqdG9rKSB7Ci0gICAgaW50IHNraXBfbmV4dF9sZiA9IDAsIG5lZWRlZF9sZW5ndGggPSBzdHJsZW4ocykgKyAyLCBmaW5hbF9sZW5ndGg7CisgICAgaW50IHNraXBfbmV4dF9sZiA9IDA7CisgICAgc2l6ZV90IG5lZWRlZF9sZW5ndGggPSBzdHJsZW4ocykgKyAyLCBmaW5hbF9sZW5ndGg7CiAgICAgY2hhciAqYnVmLCAqY3VycmVudDsKICAgICBjaGFyIGMgPSAnXDAnOwogICAgIGJ1ZiA9IFB5TWVtX01BTExPQyhuZWVkZWRfbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1B5dGhvbi9QeXRob24tYXN0LmMgYi9QeXRob24vUHl0aG9uLWFzdC5jCmluZGV4IGU2ZjFlNTguLjc0NGU2NDAgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9QeXRob24tYXN0LmMKKysrIGIvUHl0aG9uL1B5dGhvbi1hc3QuYwpAQCAtMjcxLDYgKzI3MSwxMCBAQAogc3RhdGljIGNoYXIgKkJ5dGVzX2ZpZWxkc1tdPXsKICAgICAgICAgInMiLAogfTsKK3N0YXRpYyBQeVR5cGVPYmplY3QgKk5hbWVDb25zdGFudF90eXBlOworc3RhdGljIGNoYXIgKk5hbWVDb25zdGFudF9maWVsZHNbXT17CisgICAgICAgICJ2YWx1ZSIsCit9Owogc3RhdGljIFB5VHlwZU9iamVjdCAqRWxsaXBzaXNfdHlwZTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKkF0dHJpYnV0ZV90eXBlOwogX1B5X0lERU5USUZJRVIoYXR0cik7CkBAIC00MDgsMjQgKzQxMiwyNCBAQAogc3RhdGljIFB5VHlwZU9iamVjdCAqYXJndW1lbnRzX3R5cGU7CiBzdGF0aWMgUHlPYmplY3QqIGFzdDJvYmpfYXJndW1lbnRzKHZvaWQqKTsKIF9QeV9JREVOVElGSUVSKHZhcmFyZyk7Ci1fUHlfSURFTlRJRklFUih2YXJhcmdhbm5vdGF0aW9uKTsKIF9QeV9JREVOVElGSUVSKGt3b25seWFyZ3MpOwotX1B5X0lERU5USUZJRVIoa3dhcmcpOwotX1B5X0lERU5USUZJRVIoa3dhcmdhbm5vdGF0aW9uKTsKLV9QeV9JREVOVElGSUVSKGRlZmF1bHRzKTsKIF9QeV9JREVOVElGSUVSKGt3X2RlZmF1bHRzKTsKK19QeV9JREVOVElGSUVSKGt3YXJnKTsKK19QeV9JREVOVElGSUVSKGRlZmF1bHRzKTsKIHN0YXRpYyBjaGFyICphcmd1bWVudHNfZmllbGRzW109ewogICAgICAgICAiYXJncyIsCiAgICAgICAgICJ2YXJhcmciLAotICAgICAgICAidmFyYXJnYW5ub3RhdGlvbiIsCiAgICAgICAgICJrd29ubHlhcmdzIiwKLSAgICAgICAgImt3YXJnIiwKLSAgICAgICAgImt3YXJnYW5ub3RhdGlvbiIsCi0gICAgICAgICJkZWZhdWx0cyIsCiAgICAgICAgICJrd19kZWZhdWx0cyIsCisgICAgICAgICJrd2FyZyIsCisgICAgICAgICJkZWZhdWx0cyIsCiB9Owogc3RhdGljIFB5VHlwZU9iamVjdCAqYXJnX3R5cGU7CiBzdGF0aWMgUHlPYmplY3QqIGFzdDJvYmpfYXJnKHZvaWQqKTsKK3N0YXRpYyBjaGFyICphcmdfYXR0cmlidXRlc1tdID0geworICAgICAgICAibGluZW5vIiwKKyAgICAgICAgImNvbF9vZmZzZXQiLAorfTsKIF9QeV9JREVOVElGSUVSKGFyZyk7CiBfUHlfSURFTlRJRklFUihhbm5vdGF0aW9uKTsKIHN0YXRpYyBjaGFyICphcmdfZmllbGRzW109ewpAQCAtNjczLDYgKzY3Nyw3IEBACiAgICAgUHlfSU5DUkVGKChQeU9iamVjdCopbyk7CiAgICAgcmV0dXJuIChQeU9iamVjdCopbzsKIH0KKyNkZWZpbmUgYXN0Mm9ial9zaW5nbGV0b24gYXN0Mm9ial9vYmplY3QKICNkZWZpbmUgYXN0Mm9ial9pZGVudGlmaWVyIGFzdDJvYmpfb2JqZWN0CiAjZGVmaW5lIGFzdDJvYmpfc3RyaW5nIGFzdDJvYmpfb2JqZWN0CiAjZGVmaW5lIGFzdDJvYmpfYnl0ZXMgYXN0Mm9ial9vYmplY3QKQEAgLTY4NCw2ICs2ODksMTcgQEAKIAogLyogQ29udmVyc2lvbiBQeXRob24gLT4gQVNUICovCiAKK3N0YXRpYyBpbnQgb2JqMmFzdF9zaW5nbGV0b24oUHlPYmplY3QgKm9iaiwgUHlPYmplY3QqKiBvdXQsIFB5QXJlbmEqIGFyZW5hKQoreworICAgIGlmIChvYmogIT0gUHlfTm9uZSAmJiBvYmogIT0gUHlfVHJ1ZSAmJiBvYmogIT0gUHlfRmFsc2UpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiQVNUIHNpbmdsZXRvbiBtdXN0IGJlIFRydWUsIEZhbHNlLCBvciBOb25lIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICAqb3V0ID0gb2JqOworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IG9iajJhc3Rfb2JqZWN0KFB5T2JqZWN0KiBvYmosIFB5T2JqZWN0Kiogb3V0LCBQeUFyZW5hKiBhcmVuYSkKIHsKICAgICBpZiAob2JqID09IFB5X05vbmUpCkBAIC03NTQsNiArNzcwLDE5IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgZXhpc3RzX25vdF9ub25lKFB5T2JqZWN0ICpvYmosIF9QeV9JZGVudGlmaWVyICppZCkKK3sKKyAgICBpbnQgaXNub25lOworICAgIFB5T2JqZWN0ICphdHRyID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosIGlkKTsKKyAgICBpZiAoIWF0dHIpIHsKKyAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGlzbm9uZSA9IGF0dHIgPT0gUHlfTm9uZTsKKyAgICBQeV9ERUNSRUYoYXR0cik7CisgICAgcmV0dXJuICFpc25vbmU7Cit9CisKIAogc3RhdGljIGludCBpbml0X3R5cGVzKHZvaWQpCiB7CkBAIC04NjAsNiArODg5LDkgQEAKICAgICAgICAgaWYgKCFTdHJfdHlwZSkgcmV0dXJuIDA7CiAgICAgICAgIEJ5dGVzX3R5cGUgPSBtYWtlX3R5cGUoIkJ5dGVzIiwgZXhwcl90eXBlLCBCeXRlc19maWVsZHMsIDEpOwogICAgICAgICBpZiAoIUJ5dGVzX3R5cGUpIHJldHVybiAwOworICAgICAgICBOYW1lQ29uc3RhbnRfdHlwZSA9IG1ha2VfdHlwZSgiTmFtZUNvbnN0YW50IiwgZXhwcl90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lQ29uc3RhbnRfZmllbGRzLCAxKTsKKyAgICAgICAgaWYgKCFOYW1lQ29uc3RhbnRfdHlwZSkgcmV0dXJuIDA7CiAgICAgICAgIEVsbGlwc2lzX3R5cGUgPSBtYWtlX3R5cGUoIkVsbGlwc2lzIiwgZXhwcl90eXBlLCBOVUxMLCAwKTsKICAgICAgICAgaWYgKCFFbGxpcHNpc190eXBlKSByZXR1cm4gMDsKICAgICAgICAgQXR0cmlidXRlX3R5cGUgPSBtYWtlX3R5cGUoIkF0dHJpYnV0ZSIsIGV4cHJfdHlwZSwgQXR0cmlidXRlX2ZpZWxkcywgMyk7CkBAIC0xMDM3LDYgKzEwNjksNyBAQAogICAgICAgICBjb21wcmVoZW5zaW9uX3R5cGUgPSBtYWtlX3R5cGUoImNvbXByZWhlbnNpb24iLCAmQVNUX3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wcmVoZW5zaW9uX2ZpZWxkcywgMyk7CiAgICAgICAgIGlmICghY29tcHJlaGVuc2lvbl90eXBlKSByZXR1cm4gMDsKKyAgICAgICAgaWYgKCFhZGRfYXR0cmlidXRlcyhjb21wcmVoZW5zaW9uX3R5cGUsIE5VTEwsIDApKSByZXR1cm4gMDsKICAgICAgICAgZXhjZXB0aGFuZGxlcl90eXBlID0gbWFrZV90eXBlKCJleGNlcHRoYW5kbGVyIiwgJkFTVF90eXBlLCBOVUxMLCAwKTsKICAgICAgICAgaWYgKCFleGNlcHRoYW5kbGVyX3R5cGUpIHJldHVybiAwOwogICAgICAgICBpZiAoIWFkZF9hdHRyaWJ1dGVzKGV4Y2VwdGhhbmRsZXJfdHlwZSwgZXhjZXB0aGFuZGxlcl9hdHRyaWJ1dGVzLCAyKSkKQEAgLTEwNDQsMTYgKzEwNzcsMjEgQEAKICAgICAgICAgRXhjZXB0SGFuZGxlcl90eXBlID0gbWFrZV90eXBlKCJFeGNlcHRIYW5kbGVyIiwgZXhjZXB0aGFuZGxlcl90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjZXB0SGFuZGxlcl9maWVsZHMsIDMpOwogICAgICAgICBpZiAoIUV4Y2VwdEhhbmRsZXJfdHlwZSkgcmV0dXJuIDA7Ci0gICAgICAgIGFyZ3VtZW50c190eXBlID0gbWFrZV90eXBlKCJhcmd1bWVudHMiLCAmQVNUX3R5cGUsIGFyZ3VtZW50c19maWVsZHMsIDgpOworICAgICAgICBhcmd1bWVudHNfdHlwZSA9IG1ha2VfdHlwZSgiYXJndW1lbnRzIiwgJkFTVF90eXBlLCBhcmd1bWVudHNfZmllbGRzLCA2KTsKICAgICAgICAgaWYgKCFhcmd1bWVudHNfdHlwZSkgcmV0dXJuIDA7CisgICAgICAgIGlmICghYWRkX2F0dHJpYnV0ZXMoYXJndW1lbnRzX3R5cGUsIE5VTEwsIDApKSByZXR1cm4gMDsKICAgICAgICAgYXJnX3R5cGUgPSBtYWtlX3R5cGUoImFyZyIsICZBU1RfdHlwZSwgYXJnX2ZpZWxkcywgMik7CiAgICAgICAgIGlmICghYXJnX3R5cGUpIHJldHVybiAwOworICAgICAgICBpZiAoIWFkZF9hdHRyaWJ1dGVzKGFyZ190eXBlLCBhcmdfYXR0cmlidXRlcywgMikpIHJldHVybiAwOwogICAgICAgICBrZXl3b3JkX3R5cGUgPSBtYWtlX3R5cGUoImtleXdvcmQiLCAmQVNUX3R5cGUsIGtleXdvcmRfZmllbGRzLCAyKTsKICAgICAgICAgaWYgKCFrZXl3b3JkX3R5cGUpIHJldHVybiAwOworICAgICAgICBpZiAoIWFkZF9hdHRyaWJ1dGVzKGtleXdvcmRfdHlwZSwgTlVMTCwgMCkpIHJldHVybiAwOwogICAgICAgICBhbGlhc190eXBlID0gbWFrZV90eXBlKCJhbGlhcyIsICZBU1RfdHlwZSwgYWxpYXNfZmllbGRzLCAyKTsKICAgICAgICAgaWYgKCFhbGlhc190eXBlKSByZXR1cm4gMDsKKyAgICAgICAgaWYgKCFhZGRfYXR0cmlidXRlcyhhbGlhc190eXBlLCBOVUxMLCAwKSkgcmV0dXJuIDA7CiAgICAgICAgIHdpdGhpdGVtX3R5cGUgPSBtYWtlX3R5cGUoIndpdGhpdGVtIiwgJkFTVF90eXBlLCB3aXRoaXRlbV9maWVsZHMsIDIpOwogICAgICAgICBpZiAoIXdpdGhpdGVtX3R5cGUpIHJldHVybiAwOworICAgICAgICBpZiAoIWFkZF9hdHRyaWJ1dGVzKHdpdGhpdGVtX3R5cGUsIE5VTEwsIDApKSByZXR1cm4gMDsKICAgICAgICAgaW5pdGlhbGl6ZWQgPSAxOwogICAgICAgICByZXR1cm4gMTsKIH0KQEAgLTE5MjEsNiArMTk1OSwyNSBAQAogfQogCiBleHByX3R5CitOYW1lQ29uc3RhbnQoc2luZ2xldG9uIHZhbHVlLCBpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCwgUHlBcmVuYSAqYXJlbmEpCit7CisgICAgICAgIGV4cHJfdHkgcDsKKyAgICAgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmllbGQgdmFsdWUgaXMgcmVxdWlyZWQgZm9yIE5hbWVDb25zdGFudCIpOworICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIHAgPSAoZXhwcl90eSlQeUFyZW5hX01hbGxvYyhhcmVuYSwgc2l6ZW9mKCpwKSk7CisgICAgICAgIGlmICghcCkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgcC0+a2luZCA9IE5hbWVDb25zdGFudF9raW5kOworICAgICAgICBwLT52Lk5hbWVDb25zdGFudC52YWx1ZSA9IHZhbHVlOworICAgICAgICBwLT5saW5lbm8gPSBsaW5lbm87CisgICAgICAgIHAtPmNvbF9vZmZzZXQgPSBjb2xfb2Zmc2V0OworICAgICAgICByZXR1cm4gcDsKK30KKworZXhwcl90eQogRWxsaXBzaXMoaW50IGxpbmVubywgaW50IGNvbF9vZmZzZXQsIFB5QXJlbmEgKmFyZW5hKQogewogICAgICAgICBleHByX3R5IHA7CkBAIC0yMTc1LDkgKzIyMzIsOCBAQAogfQogCiBhcmd1bWVudHNfdHkKLWFyZ3VtZW50cyhhc2RsX3NlcSAqIGFyZ3MsIGlkZW50aWZpZXIgdmFyYXJnLCBleHByX3R5IHZhcmFyZ2Fubm90YXRpb24sCi0gICAgICAgICAgYXNkbF9zZXEgKiBrd29ubHlhcmdzLCBpZGVudGlmaWVyIGt3YXJnLCBleHByX3R5IGt3YXJnYW5ub3RhdGlvbiwKLSAgICAgICAgICBhc2RsX3NlcSAqIGRlZmF1bHRzLCBhc2RsX3NlcSAqIGt3X2RlZmF1bHRzLCBQeUFyZW5hICphcmVuYSkKK2FyZ3VtZW50cyhhc2RsX3NlcSAqIGFyZ3MsIGFyZ190eSB2YXJhcmcsIGFzZGxfc2VxICoga3dvbmx5YXJncywgYXNkbF9zZXEgKgorICAgICAgICAgIGt3X2RlZmF1bHRzLCBhcmdfdHkga3dhcmcsIGFzZGxfc2VxICogZGVmYXVsdHMsIFB5QXJlbmEgKmFyZW5hKQogewogICAgICAgICBhcmd1bWVudHNfdHkgcDsKICAgICAgICAgcCA9IChhcmd1bWVudHNfdHkpUHlBcmVuYV9NYWxsb2MoYXJlbmEsIHNpemVvZigqcCkpOwpAQCAtMjE4NSwxMiArMjI0MSwxMCBAQAogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBwLT5hcmdzID0gYXJnczsKICAgICAgICAgcC0+dmFyYXJnID0gdmFyYXJnOwotICAgICAgICBwLT52YXJhcmdhbm5vdGF0aW9uID0gdmFyYXJnYW5ub3RhdGlvbjsKICAgICAgICAgcC0+a3dvbmx5YXJncyA9IGt3b25seWFyZ3M7Ci0gICAgICAgIHAtPmt3YXJnID0ga3dhcmc7Ci0gICAgICAgIHAtPmt3YXJnYW5ub3RhdGlvbiA9IGt3YXJnYW5ub3RhdGlvbjsKLSAgICAgICAgcC0+ZGVmYXVsdHMgPSBkZWZhdWx0czsKICAgICAgICAgcC0+a3dfZGVmYXVsdHMgPSBrd19kZWZhdWx0czsKKyAgICAgICAgcC0+a3dhcmcgPSBrd2FyZzsKKyAgICAgICAgcC0+ZGVmYXVsdHMgPSBkZWZhdWx0czsKICAgICAgICAgcmV0dXJuIHA7CiB9CiAKQEAgLTI5NDgsNiArMzAwMiwxNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOYW1lQ29uc3RhbnRfa2luZDoKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBQeVR5cGVfR2VuZXJpY05ldyhOYW1lQ29uc3RhbnRfdHlwZSwgTlVMTCwgTlVMTCk7CisgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOworICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9zaW5nbGV0b24oby0+di5OYW1lQ29uc3RhbnQudmFsdWUpOworICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfdmFsdWUsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRWxsaXBzaXNfa2luZDoKICAgICAgICAgICAgICAgICByZXN1bHQgPSBQeVR5cGVfR2VuZXJpY05ldyhFbGxpcHNpc190eXBlLCBOVUxMLCBOVUxMKTsKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CkBAIC0zMzY2LDI5ICszNDI5LDI0IEBACiAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfYXJncywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwotICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfaWRlbnRpZmllcihvLT52YXJhcmcpOworICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfYXJnKG8tPnZhcmFyZyk7CiAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwogICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX3ZhcmFyZywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwotICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT52YXJhcmdhbm5vdGF0aW9uKTsKLSAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfdmFyYXJnYW5ub3RhdGlvbiwgdmFsdWUpID09IC0xKQotICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwotICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT5rd29ubHlhcmdzLCBhc3Qyb2JqX2FyZyk7CiAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwogICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2t3b25seWFyZ3MsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKLSAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2lkZW50aWZpZXIoby0+a3dhcmcpOworICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT5rd19kZWZhdWx0cywgYXN0Mm9ial9leHByKTsKICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfa3dhcmcsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9rd19kZWZhdWx0cywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwotICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT5rd2FyZ2Fubm90YXRpb24pOworICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfYXJnKG8tPmt3YXJnKTsKICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfa3dhcmdhbm5vdGF0aW9uLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfa3dhcmcsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+ZGVmYXVsdHMsIGFzdDJvYmpfZXhwcik7CkBAIC0zMzk2LDExICszNDU0LDYgQEAKICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9kZWZhdWx0cywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwotICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT5rd19kZWZhdWx0cywgYXN0Mm9ial9leHByKTsKLSAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfa3dfZGVmYXVsdHMsIHZhbHVlKSA9PSAtMSkKLSAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKLSAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIGZhaWxlZDoKICAgICAgICAgUHlfWERFQ1JFRih2YWx1ZSk7CkBAIC0zNDMwLDYgKzM0ODMsMTYgQEAKICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9hbm5vdGF0aW9uLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CisgICAgICAgIHZhbHVlID0gYXN0Mm9ial9pbnQoby0+bGluZW5vKTsKKyAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7CisgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfbGluZW5vLCB2YWx1ZSkgPCAwKQorICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOworICAgICAgICBQeV9ERUNSRUYodmFsdWUpOworICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfaW50KG8tPmNvbF9vZmZzZXQpOworICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKKyAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9jb2xfb2Zmc2V0LCB2YWx1ZSkgPCAwKQorICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOworICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogZmFpbGVkOgogICAgICAgICBQeV9YREVDUkVGKHZhbHVlKTsKQEAgLTM3OTYsNyArMzg1OSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJkZWNvcmF0b3JfbGlzdFwiIG1pc3NpbmcgZnJvbSBGdW5jdGlvbkRlZiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfcmV0dXJucykpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3RzX25vdF9ub25lKG9iaiwgJlB5SWRfcmV0dXJucykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfcmV0dXJucyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwpAQCAtMzg4Nyw3ICszOTUwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImtleXdvcmRzXCIgbWlzc2luZyBmcm9tIENsYXNzRGVmIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9zdGFyYXJncykpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3RzX25vdF9ub25lKG9iaiwgJlB5SWRfc3RhcmFyZ3MpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3N0YXJhcmdzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CkBAIC0zODk4LDcgKzM5NjEsNyBAQAogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGFyYXJncyA9IE5VTEw7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfa3dhcmdzKSkgeworICAgICAgICAgICAgICAgIGlmIChleGlzdHNfbm90X25vbmUob2JqLCAmUHlJZF9rd2FyZ3MpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2t3YXJncyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwpAQCAtMzk3MSw3ICs0MDM0LDcgQEAKICAgICAgICAgaWYgKGlzaW5zdGFuY2UpIHsKICAgICAgICAgICAgICAgICBleHByX3R5IHZhbHVlOwogCi0gICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF92YWx1ZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3RzX25vdF9ub25lKG9iaiwgJlB5SWRfdmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3ZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CkBAIC00NDI5LDcgKzQ0OTIsNyBAQAogICAgICAgICAgICAgICAgIGV4cHJfdHkgZXhjOwogICAgICAgICAgICAgICAgIGV4cHJfdHkgY2F1c2U7CiAKLSAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2V4YykpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3RzX25vdF9ub25lKG9iaiwgJlB5SWRfZXhjKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9leGMpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKQEAgLTQ0NDAsNyArNDUwMyw3IEBACiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGV4YyA9IE5VTEw7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfY2F1c2UpKSB7CisgICAgICAgICAgICAgICAgaWYgKGV4aXN0c19ub3Rfbm9uZShvYmosICZQeUlkX2NhdXNlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9jYXVzZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwpAQCAtNDU5MCw3ICs0NjUzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcInRlc3RcIiBtaXNzaW5nIGZyb20gQXNzZXJ0Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9tc2cpKSB7CisgICAgICAgICAgICAgICAgaWYgKGV4aXN0c19ub3Rfbm9uZShvYmosICZQeUlkX21zZykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfbXNnKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CkBAIC00NjUwLDcgKzQ3MTMsNyBAQAogICAgICAgICAgICAgICAgIGFzZGxfc2VxKiBuYW1lczsKICAgICAgICAgICAgICAgICBpbnQgbGV2ZWw7CiAKLSAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX21vZHVsZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3RzX25vdF9ub25lKG9iaiwgJlB5SWRfbW9kdWxlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9tb2R1bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKQEAgLTQ2ODYsNyArNDc0OSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJuYW1lc1wiIG1pc3NpbmcgZnJvbSBJbXBvcnRGcm9tIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9sZXZlbCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3RzX25vdF9ub25lKG9iaiwgJlB5SWRfbGV2ZWwpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2xldmVsKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CkBAIC01NDA1LDcgKzU0NjgsNyBAQAogICAgICAgICBpZiAoaXNpbnN0YW5jZSkgewogICAgICAgICAgICAgICAgIGV4cHJfdHkgdmFsdWU7CiAKLSAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3ZhbHVlKSkgeworICAgICAgICAgICAgICAgIGlmIChleGlzdHNfbm90X25vbmUob2JqLCAmUHlJZF92YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfdmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKQEAgLTU1OTIsNyArNTY1NSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJrZXl3b3Jkc1wiIG1pc3NpbmcgZnJvbSBDYWxsIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9zdGFyYXJncykpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3RzX25vdF9ub25lKG9iaiwgJlB5SWRfc3RhcmFyZ3MpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3N0YXJhcmdzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CkBAIC01NjAzLDcgKzU2NjYsNyBAQAogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzdGFyYXJncyA9IE5VTEw7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfa3dhcmdzKSkgeworICAgICAgICAgICAgICAgIGlmIChleGlzdHNfbm90X25vbmUob2JqLCAmUHlJZF9rd2FyZ3MpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2t3YXJncyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwpAQCAtNTY4OCw2ICs1NzUxLDI5IEBACiAgICAgICAgICAgICAgICAgaWYgKCpvdXQgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KKyAgICAgICAgaXNpbnN0YW5jZSA9IFB5T2JqZWN0X0lzSW5zdGFuY2Uob2JqLCAoUHlPYmplY3QqKU5hbWVDb25zdGFudF90eXBlKTsKKyAgICAgICAgaWYgKGlzaW5zdGFuY2UgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNpbnN0YW5jZSkgeworICAgICAgICAgICAgICAgIHNpbmdsZXRvbiB2YWx1ZTsKKworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfdmFsdWUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3ZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CisgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X3NpbmdsZXRvbih0bXAsICZ2YWx1ZSwgYXJlbmEpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5X1hERUNSRUYodG1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IE5VTEw7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcInZhbHVlXCIgbWlzc2luZyBmcm9tIE5hbWVDb25zdGFudCIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICpvdXQgPSBOYW1lQ29uc3RhbnQodmFsdWUsIGxpbmVubywgY29sX29mZnNldCwgYXJlbmEpOworICAgICAgICAgICAgICAgIGlmICgqb3V0ID09IE5VTEwpIGdvdG8gZmFpbGVkOworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CiAgICAgICAgIGlzaW5zdGFuY2UgPSBQeU9iamVjdF9Jc0luc3RhbmNlKG9iaiwgKFB5T2JqZWN0KilFbGxpcHNpc190eXBlKTsKICAgICAgICAgaWYgKGlzaW5zdGFuY2UgPT0gLTEpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKQEAgLTYwNTEsNyArNjEzNyw3IEBACiAgICAgICAgICAgICAgICAgZXhwcl90eSB1cHBlcjsKICAgICAgICAgICAgICAgICBleHByX3R5IHN0ZXA7CiAKLSAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2xvd2VyKSkgeworICAgICAgICAgICAgICAgIGlmIChleGlzdHNfbm90X25vbmUob2JqLCAmUHlJZF9sb3dlcikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfbG93ZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKQEAgLTYwNjIsNyArNjE0OCw3IEBACiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGxvd2VyID0gTlVMTDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF91cHBlcikpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3RzX25vdF9ub25lKG9iaiwgJlB5SWRfdXBwZXIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3VwcGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CkBAIC02MDczLDcgKzYxNTksNyBAQAogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB1cHBlciA9IE5VTEw7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfc3RlcCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXhpc3RzX25vdF9ub25lKG9iaiwgJlB5SWRfc3RlcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfc3RlcCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwpAQCAtNjUyOCw3ICs2NjE0LDcgQEAKICAgICAgICAgICAgICAgICBpZGVudGlmaWVyIG5hbWU7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIGJvZHk7CiAKLSAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3R5cGUpKSB7CisgICAgICAgICAgICAgICAgaWYgKGV4aXN0c19ub3Rfbm9uZShvYmosICZQeUlkX3R5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3R5cGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKQEAgLTY1MzksNyArNjYyNSw3IEBACiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSBOVUxMOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX25hbWUpKSB7CisgICAgICAgICAgICAgICAgaWYgKGV4aXN0c19ub3Rfbm9uZShvYmosICZQeUlkX25hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX25hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKQEAgLTY1OTIsMTMgKzY2NzgsMTEgQEAKIHsKICAgICAgICAgUHlPYmplY3QqIHRtcCA9IE5VTEw7CiAgICAgICAgIGFzZGxfc2VxKiBhcmdzOwotICAgICAgICBpZGVudGlmaWVyIHZhcmFyZzsKLSAgICAgICAgZXhwcl90eSB2YXJhcmdhbm5vdGF0aW9uOworICAgICAgICBhcmdfdHkgdmFyYXJnOwogICAgICAgICBhc2RsX3NlcSoga3dvbmx5YXJnczsKLSAgICAgICAgaWRlbnRpZmllciBrd2FyZzsKLSAgICAgICAgZXhwcl90eSBrd2FyZ2Fubm90YXRpb247Ci0gICAgICAgIGFzZGxfc2VxKiBkZWZhdWx0czsKICAgICAgICAgYXNkbF9zZXEqIGt3X2RlZmF1bHRzOworICAgICAgICBhcmdfdHkga3dhcmc7CisgICAgICAgIGFzZGxfc2VxKiBkZWZhdWx0czsKIAogICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2FyZ3MpKSB7CiAgICAgICAgICAgICAgICAgaW50IHJlczsKQEAgLTY2MjUsMjggKzY3MDksMTcgQEAKICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJhcmdzXCIgbWlzc2luZyBmcm9tIGFyZ3VtZW50cyIpOwogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9Ci0gICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfdmFyYXJnKSkgeworICAgICAgICBpZiAoZXhpc3RzX25vdF9ub25lKG9iaiwgJlB5SWRfdmFyYXJnKSkgewogICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3ZhcmFyZyk7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2lkZW50aWZpZXIodG1wLCAmdmFyYXJnLCBhcmVuYSk7CisgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9hcmcodG1wLCAmdmFyYXJnLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9YREVDUkVGKHRtcCk7CiAgICAgICAgICAgICAgICAgdG1wID0gTlVMTDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICB2YXJhcmcgPSBOVUxMOwogICAgICAgICB9Ci0gICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfdmFyYXJnYW5ub3RhdGlvbikpIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF92YXJhcmdhbm5vdGF0aW9uKTsKLSAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZ2YXJhcmdhbm5vdGF0aW9uLCBhcmVuYSk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBQeV9YREVDUkVGKHRtcCk7Ci0gICAgICAgICAgICAgICAgdG1wID0gTlVMTDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICB2YXJhcmdhbm5vdGF0aW9uID0gTlVMTDsKLSAgICAgICAgfQogICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2t3b25seWFyZ3MpKSB7CiAgICAgICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKQEAgLTY2NzIsNTMgKzY3NDUsNiBAQAogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImt3b25seWFyZ3NcIiBtaXNzaW5nIGZyb20gYXJndW1lbnRzIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9rd2FyZykpIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9rd2FyZyk7Ci0gICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2lkZW50aWZpZXIodG1wLCAma3dhcmcsIGFyZW5hKTsKLSAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIFB5X1hERUNSRUYodG1wKTsKLSAgICAgICAgICAgICAgICB0bXAgPSBOVUxMOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGt3YXJnID0gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2t3YXJnYW5ub3RhdGlvbikpIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9rd2FyZ2Fubm90YXRpb24pOwotICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJmt3YXJnYW5ub3RhdGlvbiwgYXJlbmEpOwotICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgUHlfWERFQ1JFRih0bXApOwotICAgICAgICAgICAgICAgIHRtcCA9IE5VTEw7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAga3dhcmdhbm5vdGF0aW9uID0gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2RlZmF1bHRzKSkgewotICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47Ci0gICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpOwotICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9kZWZhdWx0cyk7Ci0gICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiYXJndW1lbnRzIGZpZWxkIFwiZGVmYXVsdHNcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBsZW4gPSBQeUxpc3RfR0VUX1NJWkUodG1wKTsKLSAgICAgICAgICAgICAgICBkZWZhdWx0cyA9IGFzZGxfc2VxX25ldyhsZW4sIGFyZW5hKTsKLSAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdHMgPT0gTlVMTCkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBleHByX3R5IHZhbHVlOwotICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKFB5TGlzdF9HRVRfSVRFTSh0bXAsIGkpLCAmdmFsdWUsIGFyZW5hKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhc2RsX3NlcV9TRVQoZGVmYXVsdHMsIGksIHZhbHVlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgUHlfWERFQ1JFRih0bXApOwotICAgICAgICAgICAgICAgIHRtcCA9IE5VTEw7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwiZGVmYXVsdHNcIiBtaXNzaW5nIGZyb20gYXJndW1lbnRzIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9rd19kZWZhdWx0cykpIHsKICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOwpAQCAtNjc0NCw4ICs2NzcwLDQ0IEBACiAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwia3dfZGVmYXVsdHNcIiBtaXNzaW5nIGZyb20gYXJndW1lbnRzIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KLSAgICAgICAgKm91dCA9IGFyZ3VtZW50cyhhcmdzLCB2YXJhcmcsIHZhcmFyZ2Fubm90YXRpb24sIGt3b25seWFyZ3MsIGt3YXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnYW5ub3RhdGlvbiwgZGVmYXVsdHMsIGt3X2RlZmF1bHRzLCBhcmVuYSk7CisgICAgICAgIGlmIChleGlzdHNfbm90X25vbmUob2JqLCAmUHlJZF9rd2FyZykpIHsKKyAgICAgICAgICAgICAgICBpbnQgcmVzOworICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9rd2FyZyk7CisgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKKyAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2FyZyh0bXAsICZrd2FyZywgYXJlbmEpOworICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CisgICAgICAgICAgICAgICAgUHlfWERFQ1JFRih0bXApOworICAgICAgICAgICAgICAgIHRtcCA9IE5VTEw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAga3dhcmcgPSBOVUxMOworICAgICAgICB9CisgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfZGVmYXVsdHMpKSB7CisgICAgICAgICAgICAgICAgaW50IHJlczsKKyAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKKyAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2RlZmF1bHRzKTsKKyAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOworICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJhcmd1bWVudHMgZmllbGQgXCJkZWZhdWx0c1wiIG11c3QgYmUgYSBsaXN0LCBub3QgYSAlLjIwMHMiLCB0bXAtPm9iX3R5cGUtPnRwX25hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGxlbiA9IFB5TGlzdF9HRVRfU0laRSh0bXApOworICAgICAgICAgICAgICAgIGRlZmF1bHRzID0gYXNkbF9zZXFfbmV3KGxlbiwgYXJlbmEpOworICAgICAgICAgICAgICAgIGlmIChkZWZhdWx0cyA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJfdHkgdmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIoUHlMaXN0X0dFVF9JVEVNKHRtcCwgaSksICZ2YWx1ZSwgYXJlbmEpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzZGxfc2VxX1NFVChkZWZhdWx0cywgaSwgdmFsdWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBQeV9YREVDUkVGKHRtcCk7CisgICAgICAgICAgICAgICAgdG1wID0gTlVMTDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJkZWZhdWx0c1wiIG1pc3NpbmcgZnJvbSBhcmd1bWVudHMiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICAqb3V0ID0gYXJndW1lbnRzKGFyZ3MsIHZhcmFyZywga3dvbmx5YXJncywga3dfZGVmYXVsdHMsIGt3YXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzLCBhcmVuYSk7CiAgICAgICAgIHJldHVybiAwOwogZmFpbGVkOgogICAgICAgICBQeV9YREVDUkVGKHRtcCk7CkBAIC02NzcxLDcgKzY4MzMsNyBAQAogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImFyZ1wiIG1pc3NpbmcgZnJvbSBhcmciKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQotICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2Fubm90YXRpb24pKSB7CisgICAgICAgIGlmIChleGlzdHNfbm90X25vbmUob2JqLCAmUHlJZF9hbm5vdGF0aW9uKSkgewogICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2Fubm90YXRpb24pOwogICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CkBAIC02ODQ2LDcgKzY5MDgsNyBAQAogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcIm5hbWVcIiBtaXNzaW5nIGZyb20gYWxpYXMiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQotICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2FzbmFtZSkpIHsKKyAgICAgICAgaWYgKGV4aXN0c19ub3Rfbm9uZShvYmosICZQeUlkX2FzbmFtZSkpIHsKICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9hc25hbWUpOwogICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CkBAIC02ODgzLDcgKzY5NDUsNyBAQAogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImNvbnRleHRfZXhwclwiIG1pc3NpbmcgZnJvbSB3aXRoaXRlbSIpOwogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9Ci0gICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfb3B0aW9uYWxfdmFycykpIHsKKyAgICAgICAgaWYgKGV4aXN0c19ub3Rfbm9uZShvYmosICZQeUlkX29wdGlvbmFsX3ZhcnMpKSB7CiAgICAgICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfb3B0aW9uYWxfdmFycyk7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKQEAgLTY5MTUsNyArNjk3Nyw3IEBACiAgICAgICAgIGQgPSBQeU1vZHVsZV9HZXREaWN0KG0pOwogICAgICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIkFTVCIsIChQeU9iamVjdCopJkFTVF90eXBlKSA8IDApIHJldHVybgogICAgICAgICAgICAgTlVMTDsKLSAgICAgICAgaWYgKFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUNGX09OTFlfQVNUIiwgUHlDRl9PTkxZX0FTVCkgPCAwKQorICAgICAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgUHlDRl9PTkxZX0FTVCkgPCAwKQogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIm1vZCIsIChQeU9iamVjdCopbW9kX3R5cGUpIDwgMCkgcmV0dXJuCiAgICAgICAgICAgICBOVUxMOwpAQCAtNzAwOCw2ICs3MDcwLDggQEAKICAgICAgICAgICAgIE5VTEw7CiAgICAgICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiQnl0ZXMiLCAoUHlPYmplY3QqKUJ5dGVzX3R5cGUpIDwgMCkgcmV0dXJuCiAgICAgICAgICAgICBOVUxMOworICAgICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIk5hbWVDb25zdGFudCIsCisgICAgICAgICAgICAoUHlPYmplY3QqKU5hbWVDb25zdGFudF90eXBlKSA8IDApIHJldHVybiBOVUxMOwogICAgICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIkVsbGlwc2lzIiwgKFB5T2JqZWN0KilFbGxpcHNpc190eXBlKSA8IDApCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJBdHRyaWJ1dGUiLCAoUHlPYmplY3QqKUF0dHJpYnV0ZV90eXBlKSA8CmRpZmYgLS1naXQgYS9QeXRob24vX3dhcm5pbmdzLmMgYi9QeXRob24vX3dhcm5pbmdzLmMKaW5kZXggZjMzZTQ3Ny4uMDNlMGM0NSAxMDA2NDQKLS0tIGEvUHl0aG9uL193YXJuaW5ncy5jCisrKyBiL1B5dGhvbi9fd2FybmluZ3MuYwpAQCAtODAwLDggKzgwMCw4IEBACiAgICAgICAgIGdvdG8gZXhpdDsKICAgICBpZiAobW9kdWxlX3N0ciAhPSBOVUxMKSB7CiAgICAgICAgIG1vZHVsZSA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKG1vZHVsZV9zdHIpOwotICAgICAgICAgICAgaWYgKG1vZHVsZSA9PSBOVUxMKQotICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgaWYgKG1vZHVsZSA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBleGl0OwogICAgIH0KIAogICAgIGlmIChjYXRlZ29yeSA9PSBOVUxMKQpAQCAtODIwLDYgKzgyMCw0OSBAQAogICAgIHJldHVybiByZXQ7CiB9CiAKK2ludAorUHlFcnJfV2FybkV4cGxpY2l0Rm9ybWF0KFB5T2JqZWN0ICpjYXRlZ29yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmaWxlbmFtZV9zdHIsIGludCBsaW5lbm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbW9kdWxlX3N0ciwgUHlPYmplY3QgKnJlZ2lzdHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQoreworICAgIFB5T2JqZWN0ICptZXNzYWdlOworICAgIFB5T2JqZWN0ICptb2R1bGUgPSBOVUxMOworICAgIFB5T2JqZWN0ICpmaWxlbmFtZSA9IFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHQoZmlsZW5hbWVfc3RyKTsKKyAgICBpbnQgcmV0ID0gLTE7CisgICAgdmFfbGlzdCB2YXJnczsKKworICAgIGlmIChmaWxlbmFtZSA9PSBOVUxMKQorICAgICAgICBnb3RvIGV4aXQ7CisgICAgaWYgKG1vZHVsZV9zdHIgIT0gTlVMTCkgeworICAgICAgICBtb2R1bGUgPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhtb2R1bGVfc3RyKTsKKyAgICAgICAgaWYgKG1vZHVsZSA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBleGl0OworICAgIH0KKworI2lmZGVmIEhBVkVfU1REQVJHX1BST1RPVFlQRVMKKyAgICB2YV9zdGFydCh2YXJncywgZm9ybWF0KTsKKyNlbHNlCisgICAgdmFfc3RhcnQodmFyZ3MpOworI2VuZGlmCisgICAgbWVzc2FnZSA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0Vihmb3JtYXQsIHZhcmdzKTsKKyAgICBpZiAobWVzc2FnZSAhPSBOVUxMKSB7CisgICAgICAgIFB5T2JqZWN0ICpyZXM7CisgICAgICAgIHJlcyA9IHdhcm5fZXhwbGljaXQoY2F0ZWdvcnksIG1lc3NhZ2UsIGZpbGVuYW1lLCBsaW5lbm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlLCByZWdpc3RyeSwgTlVMTCk7CisgICAgICAgIFB5X0RFQ1JFRihtZXNzYWdlKTsKKyAgICAgICAgaWYgKHJlcyAhPSBOVUxMKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYocmVzKTsKKyAgICAgICAgICAgIHJldCA9IDA7CisgICAgICAgIH0KKyAgICB9CisgICAgdmFfZW5kKHZhcmdzKTsKK2V4aXQ6CisgICAgUHlfWERFQ1JFRihtb2R1bGUpOworICAgIFB5X1hERUNSRUYoZmlsZW5hbWUpOworICAgIHJldHVybiByZXQ7Cit9CisKIAogUHlEb2NfU1RSVkFSKHdhcm5fZG9jLAogIklzc3VlIGEgd2FybmluZywgb3IgbWF5YmUgaWdub3JlIGl0IG9yIHJhaXNlIGFuIGV4Y2VwdGlvbi4iKTsKZGlmZiAtLWdpdCBhL1B5dGhvbi9hc3QuYyBiL1B5dGhvbi9hc3QuYwppbmRleCAxYjVmYTZjLi40ZDUxN2I3IDEwMDY0NAotLS0gYS9QeXRob24vYXN0LmMKKysrIGIvUHl0aG9uL2FzdC5jCkBAIC0xMDksMjIgKzEwOSwxNCBAQAogewogICAgIGlmICghdmFsaWRhdGVfYXJncyhhcmdzLT5hcmdzKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKGFyZ3MtPnZhcmFyZ2Fubm90YXRpb24pIHsKLSAgICAgICAgaWYgKCFhcmdzLT52YXJhcmcpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAidmFyYXJnYW5ub3RhdGlvbiBidXQgbm8gdmFyYXJnIG9uIGFyZ3VtZW50cyIpOwotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCF2YWxpZGF0ZV9leHByKGFyZ3MtPnZhcmFyZ2Fubm90YXRpb24sIExvYWQpKQorICAgIGlmIChhcmdzLT52YXJhcmcgJiYgYXJncy0+dmFyYXJnLT5hbm5vdGF0aW9uCisgICAgICAgICYmICF2YWxpZGF0ZV9leHByKGFyZ3MtPnZhcmFyZy0+YW5ub3RhdGlvbiwgTG9hZCkpIHsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICBpZiAoIXZhbGlkYXRlX2FyZ3MoYXJncy0+a3dvbmx5YXJncykpCiAgICAgICAgIHJldHVybiAwOwotICAgIGlmIChhcmdzLT5rd2FyZ2Fubm90YXRpb24pIHsKLSAgICAgICAgaWYgKCFhcmdzLT5rd2FyZykgewotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJrd2FyZ2Fubm90YXRpb24gYnV0IG5vIGt3YXJnIG9uIGFyZ3VtZW50cyIpOwotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCF2YWxpZGF0ZV9leHByKGFyZ3MtPmt3YXJnYW5ub3RhdGlvbiwgTG9hZCkpCisgICAgaWYgKGFyZ3MtPmt3YXJnICYmIGFyZ3MtPmt3YXJnLT5hbm5vdGF0aW9uIAorICAgICAgICAmJiAhdmFsaWRhdGVfZXhwcihhcmdzLT5rd2FyZy0+YW5ub3RhdGlvbiwgTG9hZCkpIHsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICBpZiAoYXNkbF9zZXFfTEVOKGFyZ3MtPmRlZmF1bHRzKSA+IGFzZGxfc2VxX0xFTihhcmdzLT5hcmdzKSkgewpAQCAtMjgyLDYgKzI3NCw3IEBACiAgICAgICAgIHJldHVybiB2YWxpZGF0ZV9leHBycyhleHAtPnYuVHVwbGUuZWx0cywgY3R4LCAwKTsKICAgICAvKiBUaGVzZSBsYXN0IGNhc2VzIGRvbid0IGhhdmUgYW55IGNoZWNraW5nLiAqLwogICAgIGNhc2UgTmFtZV9raW5kOgorICAgIGNhc2UgTmFtZUNvbnN0YW50X2tpbmQ6CiAgICAgY2FzZSBFbGxpcHNpc19raW5kOgogICAgICAgICByZXR1cm4gMTsKICAgICBkZWZhdWx0OgpAQCAtOTAzLDcgKzg5Niw3IEBACiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOYW1lX2tpbmQ6CiAgICAgICAgICAgICBpZiAoY3R4ID09IFN0b3JlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZvcmJpZGRlbl9uYW1lKGMsIGUtPnYuTmFtZS5pZCwgbiwgMSkpCisgICAgICAgICAgICAgICAgaWYgKGZvcmJpZGRlbl9uYW1lKGMsIGUtPnYuTmFtZS5pZCwgbiwgMCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOyAvKiBmb3JiaWRkZW5fbmFtZSgpIGNhbGxzIGFzdF9lcnJvcigpICovCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlLT52Lk5hbWUuY3R4ID0gY3R4OwpAQCAtOTU1LDYgKzk0OCw5IEBACiAgICAgICAgIGNhc2UgQnl0ZXNfa2luZDoKICAgICAgICAgICAgIGV4cHJfbmFtZSA9ICJsaXRlcmFsIjsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5hbWVDb25zdGFudF9raW5kOgorICAgICAgICAgICAgZXhwcl9uYW1lID0gImtleXdvcmQiOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRWxsaXBzaXNfa2luZDoKICAgICAgICAgICAgIGV4cHJfbmFtZSA9ICJFbGxpcHNpcyI7CiAgICAgICAgICAgICBicmVhazsKQEAgLTExMTksNiArMTExNSw3IEBACiAgICAgaWRlbnRpZmllciBuYW1lOwogICAgIGV4cHJfdHkgYW5ub3RhdGlvbiA9IE5VTEw7CiAgICAgbm9kZSAqY2g7CisgICAgYXJnX3R5IHRtcDsKIAogICAgIGFzc2VydChUWVBFKG4pID09IHRmcGRlZiB8fCBUWVBFKG4pID09IHZmcGRlZik7CiAgICAgY2ggPSBDSElMRChuLCAwKTsKQEAgLTExMzQsNyArMTEzMSwxMyBAQAogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgcmV0dXJuIGFyZyhuYW1lLCBhbm5vdGF0aW9uLCBjLT5jX2FyZW5hKTsKKyAgICB0bXAgPSBhcmcobmFtZSwgYW5ub3RhdGlvbiwgYy0+Y19hcmVuYSk7CisgICAgaWYgKCF0bXApCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgdG1wLT5saW5lbm8gPSBMSU5FTk8obik7CisgICAgdG1wLT5jb2xfb2Zmc2V0ID0gbi0+bl9jb2xfb2Zmc2V0OworICAgIHJldHVybiB0bXA7CiB9CiAKIC8qIHJldHVybnMgLTEgaWYgZmFpbGVkIHRvIGhhbmRsZSBrZXl3b3JkIG9ubHkgYXJndW1lbnRzCkBAIC0xMjMwLDE1ICsxMjMzLDEzIEBACiAgICAgaW50IGksIGosIGssIG5wb3NhcmdzID0gMCwgbmt3b25seWFyZ3MgPSAwOwogICAgIGludCBucG9zZGVmYXVsdHMgPSAwLCBmb3VuZF9kZWZhdWx0ID0gMDsKICAgICBhc2RsX3NlcSAqcG9zYXJncywgKnBvc2RlZmF1bHRzLCAqa3dvbmx5YXJncywgKmt3ZGVmYXVsdHM7Ci0gICAgaWRlbnRpZmllciB2YXJhcmcgPSBOVUxMLCBrd2FyZyA9IE5VTEw7CisgICAgYXJnX3R5IHZhcmFyZyA9IE5VTEwsIGt3YXJnID0gTlVMTDsKICAgICBhcmdfdHkgYXJnOwotICAgIGV4cHJfdHkgdmFyYXJnYW5ub3RhdGlvbiA9IE5VTEwsIGt3YXJnYW5ub3RhdGlvbiA9IE5VTEw7CiAgICAgbm9kZSAqY2g7CiAKICAgICBpZiAoVFlQRShuKSA9PSBwYXJhbWV0ZXJzKSB7CiAgICAgICAgIGlmIChOQ0gobikgPT0gMikgLyogKCkgYXMgYXJndW1lbnQgbGlzdCAqLwotICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50cyhOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBjLT5jX2FyZW5hKTsKKyAgICAgICAgICAgIHJldHVybiBhcmd1bWVudHMoTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgYy0+Y19hcmVuYSk7CiAgICAgICAgIG4gPSBDSElMRChuLCAxKTsKICAgICB9CiAgICAgYXNzZXJ0KFRZUEUobikgPT0gdHlwZWRhcmdzbGlzdCB8fCBUWVBFKG4pID09IHZhcmFyZ3NsaXN0KTsKQEAgLTEzNDQsMTcgKzEzNDUsMTAgQEAKICAgICAgICAgICAgICAgICAgICAgaSA9IHJlczsgLyogcmVzIGhhcyBuZXcgcG9zaXRpb24gdG8gcHJvY2VzcyAqLwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyYXJnID0gTkVXX0lERU5USUZJRVIoQ0hJTEQoY2gsIDApKTsKKyAgICAgICAgICAgICAgICAgICAgdmFyYXJnID0gYXN0X2Zvcl9hcmcoYywgY2gpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIXZhcmFyZykKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgICAgICAgICBpZiAoZm9yYmlkZGVuX25hbWUoYywgdmFyYXJnLCBDSElMRChjaCwgMCksIDApKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChOQ0goY2gpID4gMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhlcmUgaXMgYW4gYW5ub3RhdGlvbiBvbiB0aGUgdmFyYXJnICovCi0gICAgICAgICAgICAgICAgICAgICAgICB2YXJhcmdhbm5vdGF0aW9uID0gYXN0X2Zvcl9leHByKGMsIENISUxEKGNoLCAyKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXZhcmFyZ2Fubm90YXRpb24pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAgICAgICBpICs9IDM7CiAgICAgICAgICAgICAgICAgICAgIGlmIChpIDwgTkNIKG4pICYmIChUWVBFKENISUxEKG4sIGkpKSA9PSB0ZnBkZWYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IFRZUEUoQ0hJTEQobiwgaSkpID09IHZmcGRlZikpIHsKQEAgLTEzNjksMTcgKzEzNjMsOSBAQAogICAgICAgICAgICAgY2FzZSBET1VCTEVTVEFSOgogICAgICAgICAgICAgICAgIGNoID0gQ0hJTEQobiwgaSsxKTsgIC8qIHRmcGRlZiAqLwogICAgICAgICAgICAgICAgIGFzc2VydChUWVBFKGNoKSA9PSB0ZnBkZWYgfHwgVFlQRShjaCkgPT0gdmZwZGVmKTsKLSAgICAgICAgICAgICAgICBrd2FyZyA9IE5FV19JREVOVElGSUVSKENISUxEKGNoLCAwKSk7CisgICAgICAgICAgICAgICAga3dhcmcgPSBhc3RfZm9yX2FyZyhjLCBjaCk7CiAgICAgICAgICAgICAgICAgaWYgKCFrd2FyZykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICAgICAgaWYgKE5DSChjaCkgPiAxKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8qIHRoZXJlIGlzIGFuIGFubm90YXRpb24gb24gdGhlIGt3YXJnICovCi0gICAgICAgICAgICAgICAgICAgIGt3YXJnYW5ub3RhdGlvbiA9IGFzdF9mb3JfZXhwcihjLCBDSElMRChjaCwgMikpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWt3YXJnYW5ub3RhdGlvbikKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoZm9yYmlkZGVuX25hbWUoYywga3dhcmcsIENISUxEKGNoLCAwKSwgMCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgICAgIGkgKz0gMzsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CkBAIC0xMzg5LDggKzEzNzUsNyBAQAogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBhcmd1bWVudHMocG9zYXJncywgdmFyYXJnLCB2YXJhcmdhbm5vdGF0aW9uLCBrd29ubHlhcmdzLCBrd2FyZywKLSAgICAgICAgICAgICAgICAgICAga3dhcmdhbm5vdGF0aW9uLCBwb3NkZWZhdWx0cywga3dkZWZhdWx0cywgYy0+Y19hcmVuYSk7CisgICAgcmV0dXJuIGFyZ3VtZW50cyhwb3NhcmdzLCB2YXJhcmcsIGt3b25seWFyZ3MsIGt3ZGVmYXVsdHMsIGt3YXJnLCBwb3NkZWZhdWx0cywgYy0+Y19hcmVuYSk7CiB9CiAKIHN0YXRpYyBleHByX3R5CkBAIC0xNTU1LDggKzE1NDAsNyBAQAogICAgIGV4cHJfdHkgZXhwcmVzc2lvbjsKIAogICAgIGlmIChOQ0gobikgPT0gMykgewotICAgICAgICBhcmdzID0gYXJndW1lbnRzKE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgYy0+Y19hcmVuYSk7CisgICAgICAgIGFyZ3MgPSBhcmd1bWVudHMoTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgYy0+Y19hcmVuYSk7CiAgICAgICAgIGlmICghYXJncykKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBleHByZXNzaW9uID0gYXN0X2Zvcl9leHByKGMsIENISUxEKG4sIDIpKTsKQEAgLTE4MTksMTEgKzE4MDMsMjEgQEAKIAogICAgIHN3aXRjaCAoVFlQRShjaCkpIHsKICAgICBjYXNlIE5BTUU6IHsKLSAgICAgICAgLyogQWxsIG5hbWVzIHN0YXJ0IGluIExvYWQgY29udGV4dCwgYnV0IG1heSBsYXRlciBiZQotICAgICAgICAgICBjaGFuZ2VkLiAqLwotICAgICAgICBQeU9iamVjdCAqbmFtZSA9IE5FV19JREVOVElGSUVSKGNoKTsKKyAgICAgICAgUHlPYmplY3QgKm5hbWU7CisgICAgICAgIGNvbnN0IGNoYXIgKnMgPSBTVFIoY2gpOworICAgICAgICBzaXplX3QgbGVuID0gc3RybGVuKHMpOworICAgICAgICBpZiAobGVuID49IDQgJiYgbGVuIDw9IDUpIHsKKyAgICAgICAgICAgIGlmICghc3RyY21wKHMsICJOb25lIikpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5hbWVDb25zdGFudChQeV9Ob25lLCBMSU5FTk8obiksIG4tPm5fY29sX29mZnNldCwgYy0+Y19hcmVuYSk7CisgICAgICAgICAgICBpZiAoIXN0cmNtcChzLCAiVHJ1ZSIpKQorICAgICAgICAgICAgICAgIHJldHVybiBOYW1lQ29uc3RhbnQoUHlfVHJ1ZSwgTElORU5PKG4pLCBuLT5uX2NvbF9vZmZzZXQsIGMtPmNfYXJlbmEpOworICAgICAgICAgICAgaWYgKCFzdHJjbXAocywgIkZhbHNlIikpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5hbWVDb25zdGFudChQeV9GYWxzZSwgTElORU5PKG4pLCBuLT5uX2NvbF9vZmZzZXQsIGMtPmNfYXJlbmEpOworICAgICAgICB9CisgICAgICAgIG5hbWUgPSBuZXdfaWRlbnRpZmllcihzLCBjKTsKICAgICAgICAgaWYgKCFuYW1lKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIC8qIEFsbCBuYW1lcyBzdGFydCBpbiBMb2FkIGNvbnRleHQsIGJ1dCBtYXkgbGF0ZXIgYmUgY2hhbmdlZC4gKi8KICAgICAgICAgcmV0dXJuIE5hbWUobmFtZSwgTG9hZCwgTElORU5PKG4pLCBuLT5uX2NvbF9vZmZzZXQsIGMtPmNfYXJlbmEpOwogICAgIH0KICAgICBjYXNlIFNUUklORzogewpAQCAtMjA5MywxNSArMjA4NywyMiBAQAogICAgICAgICBpZiAoTkNIKG4pID09IDIpCiAgICAgICAgICAgICByZXR1cm4gQ2FsbChsZWZ0X2V4cHIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIExJTkVOTyhuKSwKICAgICAgICAgICAgICAgICAgICAgICAgIG4tPm5fY29sX29mZnNldCwgYy0+Y19hcmVuYSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiBhc3RfZm9yX2NhbGwoYywgQ0hJTEQobiwgMSksIGxlZnRfZXhwcik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZXhwcl90eSB0bXAgPSBhc3RfZm9yX2NhbGwoYywgQ0hJTEQobiwgMSksIGxlZnRfZXhwcik7CisgICAgICAgICAgICBpZiAoIXRtcCkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKworICAgICAgICAgICAgdG1wLT5saW5lbm8gPSBMSU5FTk8obik7CisgICAgICAgICAgICB0bXAtPmNvbF9vZmZzZXQgPSBuLT5uX2NvbF9vZmZzZXQ7CisgICAgICAgICAgICByZXR1cm4gdG1wOworICAgICAgICB9CiAgICAgfQogICAgIGVsc2UgaWYgKFRZUEUoQ0hJTEQobiwgMCkpID09IERPVCApIHsKICAgICAgICAgUHlPYmplY3QgKmF0dHJfaWQgPSBORVdfSURFTlRJRklFUihDSElMRChuLCAxKSk7CiAgICAgICAgIGlmICghYXR0cl9pZCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICByZXR1cm4gQXR0cmlidXRlKGxlZnRfZXhwciwgYXR0cl9pZCwgTG9hZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBMSU5FTk8obiksIG4tPm5fY29sX29mZnNldCwgYy0+Y19hcmVuYSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgTElORU5PKENISUxEKG4sIDEpKSwgQ0hJTEQobiwgMSktPm5fY29sX29mZnNldCwgYy0+Y19hcmVuYSk7CiAgICAgfQogICAgIGVsc2UgewogICAgICAgICBSRVEoQ0hJTEQobiwgMCksIExTUUIpOwpAQCAtMjIwMiw4ICsyMjAzLDYgQEAKICAgICAgICAgdG1wID0gYXN0X2Zvcl90cmFpbGVyKGMsIGNoLCBlKTsKICAgICAgICAgaWYgKCF0bXApCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgdG1wLT5saW5lbm8gPSBlLT5saW5lbm87Ci0gICAgICAgIHRtcC0+Y29sX29mZnNldCA9IGUtPmNvbF9vZmZzZXQ7CiAgICAgICAgIGUgPSB0bXA7CiAgICAgfQogICAgIGlmIChUWVBFKENISUxEKG4sIE5DSChuKSAtIDEpKSA9PSBmYWN0b3IpIHsKZGlmZiAtLWdpdCBhL1B5dGhvbi9ibHRpbm1vZHVsZS5jIGIvUHl0aG9uL2JsdGlubW9kdWxlLmMKaW5kZXggNzVhZmE4Ni4uMzU2YmI1MCAxMDA2NDQKLS0tIGEvUHl0aG9uL2JsdGlubW9kdWxlLmMKKysrIGIvUHl0aG9uL2JsdGlubW9kdWxlLmMKQEAgLTU3LDYgKzU3LDExIEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBmdW5jID0gUHlUdXBsZV9HRVRfSVRFTShhcmdzLCAwKTsgLyogQmV0dGVyIGJlIGNhbGxhYmxlICovCisgICAgaWYgKCFQeUZ1bmN0aW9uX0NoZWNrKGZ1bmMpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiX19idWlsZF9fY2xhc3NfXzogZnVuYyBtdXN0IGJlIGEgZnVuY3Rpb24iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQogICAgIG5hbWUgPSBQeVR1cGxlX0dFVF9JVEVNKGFyZ3MsIDEpOwogICAgIGlmICghUHlVbmljb2RlX0NoZWNrKG5hbWUpKSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCkBAIC0xNTUsNyArMTYwLDkgQEAKICAgICAgICAgUHlfREVDUkVGKGJhc2VzKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIGNlbGwgPSBQeU9iamVjdF9DYWxsRnVuY3Rpb25PYmpBcmdzKGZ1bmMsIG5zLCBOVUxMKTsKKyAgICBjZWxsID0gUHlFdmFsX0V2YWxDb2RlRXgoUHlGdW5jdGlvbl9HRVRfQ09ERShmdW5jKSwgUHlGdW5jdGlvbl9HRVRfR0xPQkFMUyhmdW5jKSwgbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsIE5VTEwsIDAsIE5VTEwsIDAsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RnVuY3Rpb25fR0VUX0NMT1NVUkUoZnVuYykpOwogICAgIGlmIChjZWxsICE9IE5VTEwpIHsKICAgICAgICAgUHlPYmplY3QgKm1hcmdzOwogICAgICAgICBtYXJncyA9IFB5VHVwbGVfUGFjaygzLCBuYW1lLCBiYXNlcywgbnMpOwpAQCAtNjU5LDcgKzY2Niw3IEBACiAgICAgICAgIGdvdG8gZmluYWxseTsKICAgICB9CiAKLSAgICBzdHIgPSBzb3VyY2VfYXNfc3RyaW5nKGNtZCwgImNvbXBpbGUiLCAic3RyaW5nLCBieXRlcywgQVNUIG9yIGNvZGUiLCAmY2YpOworICAgIHN0ciA9IHNvdXJjZV9hc19zdHJpbmcoY21kLCAiY29tcGlsZSIsICJzdHJpbmcsIGJ5dGVzIG9yIEFTVCIsICZjZik7CiAgICAgaWYgKHN0ciA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycm9yOwogCkBAIC0xODEwLDEwICsxODE3LDEwIEBACiBzdGF0aWMgUHlPYmplY3QgKgogYnVpbHRpbl9yb3VuZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogewotICAgIHN0YXRpYyBQeU9iamVjdCAqcm91bmRfc3RyID0gTlVMTDsKICAgICBQeU9iamVjdCAqbmRpZ2l0cyA9IE5VTEw7CiAgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJudW1iZXIiLCAibmRpZ2l0cyIsIDB9OwotICAgIFB5T2JqZWN0ICpudW1iZXIsICpyb3VuZDsKKyAgICBQeU9iamVjdCAqbnVtYmVyLCAqcm91bmQsICpyZXN1bHQ7CisgICAgX1B5X0lERU5USUZJRVIoX19yb3VuZF9fKTsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJPfE86cm91bmQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3bGlzdCwgJm51bWJlciwgJm5kaWdpdHMpKQpAQCAtMTgyNCwyNCArMTgzMSwyMSBAQAogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgaWYgKHJvdW5kX3N0ciA9PSBOVUxMKSB7Ci0gICAgICAgIHJvdW5kX3N0ciA9IFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKCJfX3JvdW5kX18iKTsKLSAgICAgICAgaWYgKHJvdW5kX3N0ciA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgcm91bmQgPSBfUHlUeXBlX0xvb2t1cChQeV9UWVBFKG51bWJlciksIHJvdW5kX3N0cik7CisgICAgcm91bmQgPSBfUHlPYmplY3RfTG9va3VwU3BlY2lhbChudW1iZXIsICZQeUlkX19fcm91bmRfXyk7CiAgICAgaWYgKHJvdW5kID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICJ0eXBlICUuMTAwcyBkb2Vzbid0IGRlZmluZSBfX3JvdW5kX18gbWV0aG9kIiwKLSAgICAgICAgICAgICAgICAgICAgIFB5X1RZUEUobnVtYmVyKS0+dHBfbmFtZSk7CisgICAgICAgIGlmICghUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUgJS4xMDBzIGRvZXNuJ3QgZGVmaW5lIF9fcm91bmRfXyBtZXRob2QiLAorICAgICAgICAgICAgICAgICAgICAgICAgIFB5X1RZUEUobnVtYmVyKS0+dHBfbmFtZSk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAogICAgIGlmIChuZGlnaXRzID09IE5VTEwpCi0gICAgICAgIHJldHVybiBQeU9iamVjdF9DYWxsRnVuY3Rpb24ocm91bmQsICJPIiwgbnVtYmVyKTsKKyAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhyb3VuZCwgTlVMTCk7CiAgICAgZWxzZQotICAgICAgICByZXR1cm4gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uKHJvdW5kLCAiT08iLCBudW1iZXIsIG5kaWdpdHMpOworICAgICAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsRnVuY3Rpb25PYmpBcmdzKHJvdW5kLCBuZGlnaXRzLCBOVUxMKTsKKyAgICBQeV9ERUNSRUYocm91bmQpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIFB5RG9jX1NUUlZBUihyb3VuZF9kb2MsCkBAIC0yNDA4LDYgKzI0MTIsMTIgQEAKIF9QeUJ1aWx0aW5fSW5pdCh2b2lkKQogewogICAgIFB5T2JqZWN0ICptb2QsICpkaWN0LCAqZGVidWc7CisKKyAgICBpZiAoUHlUeXBlX1JlYWR5KCZQeUZpbHRlcl9UeXBlKSA8IDAgfHwKKyAgICAgICAgUHlUeXBlX1JlYWR5KCZQeU1hcF9UeXBlKSA8IDAgfHwKKyAgICAgICAgUHlUeXBlX1JlYWR5KCZQeVppcF9UeXBlKSA8IDApCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgbW9kID0gUHlNb2R1bGVfQ3JlYXRlKCZidWlsdGluc21vZHVsZSk7CiAgICAgaWYgKG1vZCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKZGlmZiAtLWdpdCBhL1B5dGhvbi9jZXZhbC5jIGIvUHl0aG9uL2NldmFsLmMKaW5kZXggZTU5YzM5ZC4uZTE4NGVmNiAxMDA2NDQKLS0tIGEvUHl0aG9uL2NldmFsLmMKKysrIGIvUHl0aG9uL2NldmFsLmMKQEAgLTE0Miw4ICsxNDIsNiBAQAogCiAjZGVmaW5lIE5BTUVfRVJST1JfTVNHIFwKICAgICAibmFtZSAnJS4yMDBzJyBpcyBub3QgZGVmaW5lZCIKLSNkZWZpbmUgR0xPQkFMX05BTUVfRVJST1JfTVNHIFwKLSAgICAiZ2xvYmFsIG5hbWUgJyUuMjAwcycgaXMgbm90IGRlZmluZWQiCiAjZGVmaW5lIFVOQk9VTkRMT0NBTF9FUlJPUl9NU0cgXAogICAgICJsb2NhbCB2YXJpYWJsZSAnJS4yMDBzJyByZWZlcmVuY2VkIGJlZm9yZSBhc3NpZ25tZW50IgogI2RlZmluZSBVTkJPVU5ERlJFRV9FUlJPUl9NU0cgXApAQCAtMzY0LDI5ICszNjIsMjggQEAKICAgICBkcm9wX2dpbCh0c3RhdGUpOwogfQogCi0vKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIFB5T1NfQWZ0ZXJGb3JrIHRvIGVuc3VyZSB0aGF0IG5ld2x5Ci0gICBjcmVhdGVkIGNoaWxkIHByb2Nlc3NlcyBkb24ndCBob2xkIGxvY2tzIHJlZmVycmluZyB0byB0aHJlYWRzIHdoaWNoCi0gICBhcmUgbm90IHJ1bm5pbmcgaW4gdGhlIGNoaWxkIHByb2Nlc3MuICAoVGhpcyBjb3VsZCBhbHNvIGJlIGRvbmUgdXNpbmcKLSAgIHB0aHJlYWRfYXRmb3JrIG1lY2hhbmlzbSwgYXQgbGVhc3QgZm9yIHRoZSBwdGhyZWFkcyBpbXBsZW1lbnRhdGlvbi4pICovCisvKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIFB5T1NfQWZ0ZXJGb3JrIHRvIGRlc3Ryb3kgYWxsIHRocmVhZHMgd2hpY2ggYXJlCisgKiBub3QgcnVubmluZyBpbiB0aGUgY2hpbGQgcHJvY2VzcywgYW5kIGNsZWFyIGludGVybmFsIGxvY2tzIHdoaWNoIG1pZ2h0IGJlCisgKiBoZWxkIGJ5IHRob3NlIHRocmVhZHMuIChUaGlzIGNvdWxkIGFsc28gYmUgZG9uZSB1c2luZyBwdGhyZWFkX2F0Zm9yaworICogbWVjaGFuaXNtLCBhdCBsZWFzdCBmb3IgdGhlIHB0aHJlYWRzIGltcGxlbWVudGF0aW9uLikgKi8KIAogdm9pZAogUHlFdmFsX1JlSW5pdFRocmVhZHModm9pZCkKIHsKICAgICBfUHlfSURFTlRJRklFUihfYWZ0ZXJfZm9yayk7CiAgICAgUHlPYmplY3QgKnRocmVhZGluZywgKnJlc3VsdDsKLSAgICBQeVRocmVhZFN0YXRlICp0c3RhdGUgPSBQeVRocmVhZFN0YXRlX0dFVCgpOworICAgIFB5VGhyZWFkU3RhdGUgKmN1cnJlbnRfdHN0YXRlID0gUHlUaHJlYWRTdGF0ZV9HRVQoKTsKIAogICAgIGlmICghZ2lsX2NyZWF0ZWQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIHJlY3JlYXRlX2dpbCgpOwogICAgIHBlbmRpbmdfbG9jayA9IFB5VGhyZWFkX2FsbG9jYXRlX2xvY2soKTsKLSAgICB0YWtlX2dpbCh0c3RhdGUpOworICAgIHRha2VfZ2lsKGN1cnJlbnRfdHN0YXRlKTsKICAgICBtYWluX3RocmVhZCA9IFB5VGhyZWFkX2dldF90aHJlYWRfaWRlbnQoKTsKIAogICAgIC8qIFVwZGF0ZSB0aGUgdGhyZWFkaW5nIG1vZHVsZSB3aXRoIHRoZSBuZXcgc3RhdGUuCiAgICAgICovCi0gICAgdHN0YXRlID0gUHlUaHJlYWRTdGF0ZV9HRVQoKTsKLSAgICB0aHJlYWRpbmcgPSBQeU1hcHBpbmdfR2V0SXRlbVN0cmluZyh0c3RhdGUtPmludGVycC0+bW9kdWxlcywKKyAgICB0aHJlYWRpbmcgPSBQeU1hcHBpbmdfR2V0SXRlbVN0cmluZyhjdXJyZW50X3RzdGF0ZS0+aW50ZXJwLT5tb2R1bGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aHJlYWRpbmciKTsKICAgICBpZiAodGhyZWFkaW5nID09IE5VTEwpIHsKICAgICAgICAgLyogdGhyZWFkaW5nIG5vdCBpbXBvcnRlZCAqLwpAQCAtMzk5LDYgKzM5Niw5IEBACiAgICAgZWxzZQogICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKICAgICBQeV9ERUNSRUYodGhyZWFkaW5nKTsKKworICAgIC8qIERlc3Ryb3kgYWxsIHRocmVhZHMgZXhjZXB0IHRoZSBjdXJyZW50IG9uZSAqLworICAgIF9QeVRocmVhZFN0YXRlX0RlbGV0ZUV4Y2VwdChjdXJyZW50X3RzdGF0ZSk7CiB9CiAKICNlbHNlCkBAIC03NDIsNyArNzQyLDYgQEAKIGVudW0gd2h5X2NvZGUgewogICAgICAgICBXSFlfTk9UID0gICAgICAgMHgwMDAxLCAvKiBObyBlcnJvciAqLwogICAgICAgICBXSFlfRVhDRVBUSU9OID0gMHgwMDAyLCAvKiBFeGNlcHRpb24gb2NjdXJyZWQgKi8KLSAgICAgICAgV0hZX1JFUkFJU0UgPSAgIDB4MDAwNCwgLyogRXhjZXB0aW9uIHJlLXJhaXNlZCBieSAnZmluYWxseScgKi8KICAgICAgICAgV0hZX1JFVFVSTiA9ICAgIDB4MDAwOCwgLyogJ3JldHVybicgc3RhdGVtZW50ICovCiAgICAgICAgIFdIWV9CUkVBSyA9ICAgICAweDAwMTAsIC8qICdicmVhaycgc3RhdGVtZW50ICovCiAgICAgICAgIFdIWV9DT05USU5VRSA9ICAweDAwMjAsIC8qICdjb250aW51ZScgc3RhdGVtZW50ICovCkBAIC03NTMsNyArNzUyLDcgQEAKIHN0YXRpYyB2b2lkIHNhdmVfZXhjX3N0YXRlKFB5VGhyZWFkU3RhdGUgKiwgUHlGcmFtZU9iamVjdCAqKTsKIHN0YXRpYyB2b2lkIHN3YXBfZXhjX3N0YXRlKFB5VGhyZWFkU3RhdGUgKiwgUHlGcmFtZU9iamVjdCAqKTsKIHN0YXRpYyB2b2lkIHJlc3RvcmVfYW5kX2NsZWFyX2V4Y19zdGF0ZShQeVRocmVhZFN0YXRlICosIFB5RnJhbWVPYmplY3QgKik7Ci1zdGF0aWMgZW51bSB3aHlfY29kZSBkb19yYWlzZShQeU9iamVjdCAqLCBQeU9iamVjdCAqKTsKK3N0YXRpYyBpbnQgZG9fcmFpc2UoUHlPYmplY3QgKiwgUHlPYmplY3QgKik7CiBzdGF0aWMgaW50IHVucGFja19pdGVyYWJsZShQeU9iamVjdCAqLCBpbnQsIGludCwgUHlPYmplY3QgKiopOwogCiAvKiBSZWNvcmRzIHdoZXRoZXIgdHJhY2luZyBpcyBvbiBmb3IgYW55IHRocmVhZC4gIENvdW50cyB0aGUgbnVtYmVyIG9mCkBAIC03OTgsMTIgKzc5Nyw2IEBACiAgICAgcmVnaXN0ZXIgaW50IG9wY29kZTsgICAgICAgIC8qIEN1cnJlbnQgb3Bjb2RlICovCiAgICAgcmVnaXN0ZXIgaW50IG9wYXJnOyAgICAgICAgIC8qIEN1cnJlbnQgb3Bjb2RlIGFyZ3VtZW50LCBpZiBhbnkgKi8KICAgICByZWdpc3RlciBlbnVtIHdoeV9jb2RlIHdoeTsgLyogUmVhc29uIGZvciBibG9jayBzdGFjayB1bndpbmQgKi8KLSAgICByZWdpc3RlciBpbnQgZXJyOyAgICAgICAgICAgLyogRXJyb3Igc3RhdHVzIC0tIG5vbnplcm8gaWYgZXJyb3IgKi8KLSAgICByZWdpc3RlciBQeU9iamVjdCAqeDsgICAgICAgLyogUmVzdWx0IG9iamVjdCAtLSBOVUxMIGlmIGVycm9yICovCi0gICAgcmVnaXN0ZXIgUHlPYmplY3QgKnY7ICAgICAgIC8qIFRlbXBvcmFyeSBvYmplY3RzIHBvcHBlZCBvZmYgc3RhY2sgKi8KLSAgICByZWdpc3RlciBQeU9iamVjdCAqdzsKLSAgICByZWdpc3RlciBQeU9iamVjdCAqdTsKLSAgICByZWdpc3RlciBQeU9iamVjdCAqdDsKICAgICByZWdpc3RlciBQeU9iamVjdCAqKmZhc3Rsb2NhbHMsICoqZnJlZXZhcnM7CiAgICAgUHlPYmplY3QgKnJldHZhbCA9IE5VTEw7ICAgICAgICAgICAgLyogUmV0dXJuIHZhbHVlICovCiAgICAgUHlUaHJlYWRTdGF0ZSAqdHN0YXRlID0gUHlUaHJlYWRTdGF0ZV9HRVQoKTsKQEAgLTEyMDYsMTQgKzExOTksOSBAQAogI2VuZGlmCiAKICAgICB3aHkgPSBXSFlfTk9UOwotICAgIGVyciA9IDA7Ci0gICAgeCA9IFB5X05vbmU7ICAgICAgICAvKiBOb3QgYSByZWZlcmVuY2UsIGp1c3QgYW55dGhpbmcgbm9uLU5VTEwgKi8KLSAgICB3ID0gTlVMTDsKIAotICAgIGlmICh0aHJvd2ZsYWcpIHsgLyogc3VwcG9ydCBmb3IgZ2VuZXJhdG9yLnRocm93KCkgKi8KLSAgICAgICAgd2h5ID0gV0hZX0VYQ0VQVElPTjsKLSAgICAgICAgZ290byBvbl9lcnJvcjsKLSAgICB9CisgICAgaWYgKHRocm93ZmxhZykgLyogc3VwcG9ydCBmb3IgZ2VuZXJhdG9yLnRocm93KCkgKi8KKyAgICAgICAgZ290byBlcnJvcjsKIAogICAgIGZvciAoOzspIHsKICNpZmRlZiBXSVRIX1RTQwpAQCAtMTI1NSwxMCArMTI0Myw4IEBACiAgICAgICAgICAgICB0aWNrZWQgPSAxOwogI2VuZGlmCiAgICAgICAgICAgICBpZiAoX1B5X2F0b21pY19sb2FkX3JlbGF4ZWQoJnBlbmRpbmdjYWxsc190b19kbykpIHsKLSAgICAgICAgICAgICAgICBpZiAoUHlfTWFrZVBlbmRpbmdDYWxscygpIDwgMCkgewotICAgICAgICAgICAgICAgICAgICB3aHkgPSBXSFlfRVhDRVBUSU9OOwotICAgICAgICAgICAgICAgICAgICBnb3RvIG9uX2Vycm9yOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoUHlfTWFrZVBlbmRpbmdDYWxscygpIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIH0KICNpZmRlZiBXSVRIX1RIUkVBRAogICAgICAgICAgICAgaWYgKF9QeV9hdG9taWNfbG9hZF9yZWxheGVkKCZnaWxfZHJvcF9yZXF1ZXN0KSkgewpAQCAtMTI3NiwxMyArMTI2MiwxMiBAQAogI2VuZGlmCiAgICAgICAgICAgICAvKiBDaGVjayBmb3IgYXN5bmNocm9ub3VzIGV4Y2VwdGlvbnMuICovCiAgICAgICAgICAgICBpZiAodHN0YXRlLT5hc3luY19leGMgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIHggPSB0c3RhdGUtPmFzeW5jX2V4YzsKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqZXhjID0gdHN0YXRlLT5hc3luY19leGM7CiAgICAgICAgICAgICAgICAgdHN0YXRlLT5hc3luY19leGMgPSBOVUxMOwogICAgICAgICAgICAgICAgIFVOU0lHTkFMX0FTWU5DX0VYQygpOwotICAgICAgICAgICAgICAgIFB5RXJyX1NldE5vbmUoeCk7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKHgpOwotICAgICAgICAgICAgICAgIHdoeSA9IFdIWV9FWENFUFRJT047Ci0gICAgICAgICAgICAgICAgZ290byBvbl9lcnJvcjsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXROb25lKGV4Yyk7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGV4Yyk7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0xMjkzLDYgKzEyNzgsNyBAQAogCiAgICAgICAgIGlmIChfUHlfVHJhY2luZ1Bvc3NpYmxlICYmCiAgICAgICAgICAgICB0c3RhdGUtPmNfdHJhY2VmdW5jICE9IE5VTEwgJiYgIXRzdGF0ZS0+dHJhY2luZykgeworICAgICAgICAgICAgaW50IGVycjsKICAgICAgICAgICAgIC8qIHNlZSBtYXliZV9jYWxsX2xpbmVfdHJhY2UKICAgICAgICAgICAgICAgIGZvciBleHBvc2l0b3J5IGNvbW1lbnRzICovCiAgICAgICAgICAgICBmLT5mX3N0YWNrdG9wID0gc3RhY2tfcG9pbnRlcjsKQEAgLTEzMDcsMTAgKzEyOTMsOSBAQAogICAgICAgICAgICAgICAgIHN0YWNrX3BvaW50ZXIgPSBmLT5mX3N0YWNrdG9wOwogICAgICAgICAgICAgICAgIGYtPmZfc3RhY2t0b3AgPSBOVUxMOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGVycikgeworICAgICAgICAgICAgaWYgKGVycikKICAgICAgICAgICAgICAgICAvKiB0cmFjZSBmdW5jdGlvbiByYWlzZWQgYW4gZXhjZXB0aW9uICovCi0gICAgICAgICAgICAgICAgZ290byBvbl9lcnJvcjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICB9CiAKICAgICAgICAgLyogRXh0cmFjdCBvcGNvZGUgYW5kIGFyZ3VtZW50ICovCkBAIC0xMzU3LDg3ICsxMzQyLDk5IEBACiAgICAgICAgIFRBUkdFVChOT1ApCiAgICAgICAgICAgICBGQVNUX0RJU1BBVENIKCk7CiAKLSAgICAgICAgVEFSR0VUKExPQURfRkFTVCkKLSAgICAgICAgICAgIHggPSBHRVRMT0NBTChvcGFyZyk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgUHlfSU5DUkVGKHgpOwotICAgICAgICAgICAgICAgIFBVU0goeCk7Ci0gICAgICAgICAgICAgICAgRkFTVF9ESVNQQVRDSCgpOworICAgICAgICBUQVJHRVQoTE9BRF9GQVNUKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqdmFsdWUgPSBHRVRMT0NBTChvcGFyZyk7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGZvcm1hdF9leGNfY2hlY2tfYXJnKFB5RXhjX1VuYm91bmRMb2NhbEVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOQk9VTkRMT0NBTF9FUlJPUl9NU0csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlUdXBsZV9HZXRJdGVtKGNvLT5jb192YXJuYW1lcywgb3BhcmcpKTsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9ybWF0X2V4Y19jaGVja19hcmcoUHlFeGNfVW5ib3VuZExvY2FsRXJyb3IsCi0gICAgICAgICAgICAgICAgVU5CT1VORExPQ0FMX0VSUk9SX01TRywKLSAgICAgICAgICAgICAgICBQeVR1cGxlX0dldEl0ZW0oY28tPmNvX3Zhcm5hbWVzLCBvcGFyZykpOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgVEFSR0VUKExPQURfQ09OU1QpCi0gICAgICAgICAgICB4ID0gR0VUSVRFTShjb25zdHMsIG9wYXJnKTsKLSAgICAgICAgICAgIFB5X0lOQ1JFRih4KTsKLSAgICAgICAgICAgIFBVU0goeCk7CisgICAgICAgICAgICBQeV9JTkNSRUYodmFsdWUpOworICAgICAgICAgICAgUFVTSCh2YWx1ZSk7CiAgICAgICAgICAgICBGQVNUX0RJU1BBVENIKCk7CisgICAgICAgIH0KKworICAgICAgICBUQVJHRVQoTE9BRF9DT05TVCkgeworICAgICAgICAgICAgUHlPYmplY3QgKnZhbHVlID0gR0VUSVRFTShjb25zdHMsIG9wYXJnKTsKKyAgICAgICAgICAgIFB5X0lOQ1JFRih2YWx1ZSk7CisgICAgICAgICAgICBQVVNIKHZhbHVlKTsKKyAgICAgICAgICAgIEZBU1RfRElTUEFUQ0goKTsKKyAgICAgICAgfQogCiAgICAgICAgIFBSRURJQ1RFRF9XSVRIX0FSRyhTVE9SRV9GQVNUKTsKLSAgICAgICAgVEFSR0VUKFNUT1JFX0ZBU1QpCi0gICAgICAgICAgICB2ID0gUE9QKCk7Ci0gICAgICAgICAgICBTRVRMT0NBTChvcGFyZywgdik7CisgICAgICAgIFRBUkdFVChTVE9SRV9GQVNUKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqdmFsdWUgPSBQT1AoKTsKKyAgICAgICAgICAgIFNFVExPQ0FMKG9wYXJnLCB2YWx1ZSk7CiAgICAgICAgICAgICBGQVNUX0RJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoUE9QX1RPUCkKLSAgICAgICAgICAgIHYgPSBQT1AoKTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKKyAgICAgICAgVEFSR0VUKFBPUF9UT1ApIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICp2YWx1ZSA9IFBPUCgpOworICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgIEZBU1RfRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChST1RfVFdPKQotICAgICAgICAgICAgdiA9IFRPUCgpOwotICAgICAgICAgICAgdyA9IFNFQ09ORCgpOwotICAgICAgICAgICAgU0VUX1RPUCh3KTsKLSAgICAgICAgICAgIFNFVF9TRUNPTkQodik7CisgICAgICAgIFRBUkdFVChST1RfVFdPKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqdG9wID0gVE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqc2Vjb25kID0gU0VDT05EKCk7CisgICAgICAgICAgICBTRVRfVE9QKHNlY29uZCk7CisgICAgICAgICAgICBTRVRfU0VDT05EKHRvcCk7CiAgICAgICAgICAgICBGQVNUX0RJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoUk9UX1RIUkVFKQotICAgICAgICAgICAgdiA9IFRPUCgpOwotICAgICAgICAgICAgdyA9IFNFQ09ORCgpOwotICAgICAgICAgICAgeCA9IFRISVJEKCk7Ci0gICAgICAgICAgICBTRVRfVE9QKHcpOwotICAgICAgICAgICAgU0VUX1NFQ09ORCh4KTsKLSAgICAgICAgICAgIFNFVF9USElSRCh2KTsKKyAgICAgICAgVEFSR0VUKFJPVF9USFJFRSkgeworICAgICAgICAgICAgUHlPYmplY3QgKnRvcCA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnNlY29uZCA9IFNFQ09ORCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnRoaXJkID0gVEhJUkQoKTsKKyAgICAgICAgICAgIFNFVF9UT1Aoc2Vjb25kKTsKKyAgICAgICAgICAgIFNFVF9TRUNPTkQodGhpcmQpOworICAgICAgICAgICAgU0VUX1RISVJEKHRvcCk7CiAgICAgICAgICAgICBGQVNUX0RJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoRFVQX1RPUCkKLSAgICAgICAgICAgIHYgPSBUT1AoKTsKLSAgICAgICAgICAgIFB5X0lOQ1JFRih2KTsKLSAgICAgICAgICAgIFBVU0godik7CisgICAgICAgIFRBUkdFVChEVVBfVE9QKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqdG9wID0gVE9QKCk7CisgICAgICAgICAgICBQeV9JTkNSRUYodG9wKTsKKyAgICAgICAgICAgIFBVU0godG9wKTsKICAgICAgICAgICAgIEZBU1RfRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChEVVBfVE9QX1RXTykKLSAgICAgICAgICAgIHggPSBUT1AoKTsKLSAgICAgICAgICAgIFB5X0lOQ1JFRih4KTsKLSAgICAgICAgICAgIHcgPSBTRUNPTkQoKTsKLSAgICAgICAgICAgIFB5X0lOQ1JFRih3KTsKKyAgICAgICAgVEFSR0VUKERVUF9UT1BfVFdPKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqdG9wID0gVE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqc2Vjb25kID0gU0VDT05EKCk7CisgICAgICAgICAgICBQeV9JTkNSRUYodG9wKTsKKyAgICAgICAgICAgIFB5X0lOQ1JFRihzZWNvbmQpOwogICAgICAgICAgICAgU1RBQ0tBREooMik7Ci0gICAgICAgICAgICBTRVRfVE9QKHgpOwotICAgICAgICAgICAgU0VUX1NFQ09ORCh3KTsKKyAgICAgICAgICAgIFNFVF9UT1AodG9wKTsKKyAgICAgICAgICAgIFNFVF9TRUNPTkQoc2Vjb25kKTsKICAgICAgICAgICAgIEZBU1RfRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChVTkFSWV9QT1NJVElWRSkKLSAgICAgICAgICAgIHYgPSBUT1AoKTsKLSAgICAgICAgICAgIHggPSBQeU51bWJlcl9Qb3NpdGl2ZSh2KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIFNFVF9UT1AoeCk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKSBESVNQQVRDSCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIFRBUkdFVChVTkFSWV9QT1NJVElWRSkgeworICAgICAgICAgICAgUHlPYmplY3QgKnZhbHVlID0gVE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqcmVzID0gUHlOdW1iZXJfUG9zaXRpdmUodmFsdWUpOworICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKKyAgICAgICAgICAgIFNFVF9UT1AocmVzKTsKKyAgICAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChVTkFSWV9ORUdBVElWRSkKLSAgICAgICAgICAgIHYgPSBUT1AoKTsKLSAgICAgICAgICAgIHggPSBQeU51bWJlcl9OZWdhdGl2ZSh2KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIFNFVF9UT1AoeCk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKSBESVNQQVRDSCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIFRBUkdFVChVTkFSWV9ORUdBVElWRSkgeworICAgICAgICAgICAgUHlPYmplY3QgKnZhbHVlID0gVE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqcmVzID0gUHlOdW1iZXJfTmVnYXRpdmUodmFsdWUpOworICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKKyAgICAgICAgICAgIFNFVF9UT1AocmVzKTsKKyAgICAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChVTkFSWV9OT1QpCi0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICBlcnIgPSBQeU9iamVjdF9Jc1RydWUodik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7CisgICAgICAgIFRBUkdFVChVTkFSWV9OT1QpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICp2YWx1ZSA9IFRPUCgpOworICAgICAgICAgICAgaW50IGVyciA9IFB5T2JqZWN0X0lzVHJ1ZSh2YWx1ZSk7CisgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgaWYgKGVyciA9PSAwKSB7CiAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKFB5X1RydWUpOwogICAgICAgICAgICAgICAgIFNFVF9UT1AoUHlfVHJ1ZSk7CkBAIC0xNDUwLDQxNiArMTQ0Nyw0NjAgQEAKICAgICAgICAgICAgICAgICBESVNQQVRDSCgpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgU1RBQ0tBREooLTEpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKFVOQVJZX0lOVkVSVCkKLSAgICAgICAgICAgIHYgPSBUT1AoKTsKLSAgICAgICAgICAgIHggPSBQeU51bWJlcl9JbnZlcnQodik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBTRVRfVE9QKHgpOwotICAgICAgICAgICAgaWYgKHggIT0gTlVMTCkgRElTUEFUQ0goKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBUQVJHRVQoVU5BUllfSU5WRVJUKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqdmFsdWUgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyZXMgPSBQeU51bWJlcl9JbnZlcnQodmFsdWUpOworICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKKyAgICAgICAgICAgIFNFVF9UT1AocmVzKTsKKyAgICAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChCSU5BUllfUE9XRVIpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlOdW1iZXJfUG93ZXIodiwgdywgUHlfTm9uZSk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodyk7Ci0gICAgICAgICAgICBTRVRfVE9QKHgpOwotICAgICAgICAgICAgaWYgKHggIT0gTlVMTCkgRElTUEFUQ0goKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBUQVJHRVQoQklOQVJZX1BPV0VSKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqZXhwID0gUE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqYmFzZSA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnJlcyA9IFB5TnVtYmVyX1Bvd2VyKGJhc2UsIGV4cCwgUHlfTm9uZSk7CisgICAgICAgICAgICBQeV9ERUNSRUYoYmFzZSk7CisgICAgICAgICAgICBQeV9ERUNSRUYoZXhwKTsKKyAgICAgICAgICAgIFNFVF9UT1AocmVzKTsKKyAgICAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChCSU5BUllfTVVMVElQTFkpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlOdW1iZXJfTXVsdGlwbHkodiwgdyk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodyk7Ci0gICAgICAgICAgICBTRVRfVE9QKHgpOwotICAgICAgICAgICAgaWYgKHggIT0gTlVMTCkgRElTUEFUQ0goKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBUQVJHRVQoQklOQVJZX01VTFRJUExZKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqcmlnaHQgPSBQT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpsZWZ0ID0gVE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqcmVzID0gUHlOdW1iZXJfTXVsdGlwbHkobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgUHlfREVDUkVGKGxlZnQpOworICAgICAgICAgICAgUHlfREVDUkVGKHJpZ2h0KTsKKyAgICAgICAgICAgIFNFVF9UT1AocmVzKTsKKyAgICAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChCSU5BUllfVFJVRV9ESVZJREUpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlOdW1iZXJfVHJ1ZURpdmlkZSh2LCB3KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih3KTsKLSAgICAgICAgICAgIFNFVF9UT1AoeCk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKSBESVNQQVRDSCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIFRBUkdFVChCSU5BUllfVFJVRV9ESVZJREUpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpkaXZpc29yID0gUE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqZGl2aWRlbmQgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpxdW90aWVudCA9IFB5TnVtYmVyX1RydWVEaXZpZGUoZGl2aWRlbmQsIGRpdmlzb3IpOworICAgICAgICAgICAgUHlfREVDUkVGKGRpdmlkZW5kKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihkaXZpc29yKTsKKyAgICAgICAgICAgIFNFVF9UT1AocXVvdGllbnQpOworICAgICAgICAgICAgaWYgKHF1b3RpZW50ID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoQklOQVJZX0ZMT09SX0RJVklERSkKLSAgICAgICAgICAgIHcgPSBQT1AoKTsKLSAgICAgICAgICAgIHYgPSBUT1AoKTsKLSAgICAgICAgICAgIHggPSBQeU51bWJlcl9GbG9vckRpdmlkZSh2LCB3KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih3KTsKLSAgICAgICAgICAgIFNFVF9UT1AoeCk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKSBESVNQQVRDSCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIFRBUkdFVChCSU5BUllfRkxPT1JfRElWSURFKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqZGl2aXNvciA9IFBPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKmRpdmlkZW5kID0gVE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqcXVvdGllbnQgPSBQeU51bWJlcl9GbG9vckRpdmlkZShkaXZpZGVuZCwgZGl2aXNvcik7CisgICAgICAgICAgICBQeV9ERUNSRUYoZGl2aWRlbmQpOworICAgICAgICAgICAgUHlfREVDUkVGKGRpdmlzb3IpOworICAgICAgICAgICAgU0VUX1RPUChxdW90aWVudCk7CisgICAgICAgICAgICBpZiAocXVvdGllbnQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChCSU5BUllfTU9EVUxPKQotICAgICAgICAgICAgdyA9IFBPUCgpOwotICAgICAgICAgICAgdiA9IFRPUCgpOwotICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9DaGVja0V4YWN0KHYpKQotICAgICAgICAgICAgICAgIHggPSBQeVVuaWNvZGVfRm9ybWF0KHYsIHcpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHggPSBQeU51bWJlcl9SZW1haW5kZXIodiwgdyk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodyk7Ci0gICAgICAgICAgICBTRVRfVE9QKHgpOwotICAgICAgICAgICAgaWYgKHggIT0gTlVMTCkgRElTUEFUQ0goKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBUQVJHRVQoQklOQVJZX01PRFVMTykgeworICAgICAgICAgICAgUHlPYmplY3QgKmRpdmlzb3IgPSBQT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpkaXZpZGVuZCA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnJlcyA9IFB5VW5pY29kZV9DaGVja0V4YWN0KGRpdmlkZW5kKSA/CisgICAgICAgICAgICAgICAgUHlVbmljb2RlX0Zvcm1hdChkaXZpZGVuZCwgZGl2aXNvcikgOgorICAgICAgICAgICAgICAgIFB5TnVtYmVyX1JlbWFpbmRlcihkaXZpZGVuZCwgZGl2aXNvcik7CisgICAgICAgICAgICBQeV9ERUNSRUYoZGl2aXNvcik7CisgICAgICAgICAgICBQeV9ERUNSRUYoZGl2aWRlbmQpOworICAgICAgICAgICAgU0VUX1RPUChyZXMpOworICAgICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKEJJTkFSWV9BREQpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICBpZiAoUHlVbmljb2RlX0NoZWNrRXhhY3QodikgJiYKLSAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9DaGVja0V4YWN0KHcpKSB7Ci0gICAgICAgICAgICAgICAgeCA9IHVuaWNvZGVfY29uY2F0ZW5hdGUodiwgdywgZiwgbmV4dF9pbnN0cik7CisgICAgICAgIFRBUkdFVChCSU5BUllfQUREKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqcmlnaHQgPSBQT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpsZWZ0ID0gVE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqc3VtOworICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9DaGVja0V4YWN0KGxlZnQpICYmCisgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQ2hlY2tFeGFjdChyaWdodCkpIHsKKyAgICAgICAgICAgICAgICBzdW0gPSB1bmljb2RlX2NvbmNhdGVuYXRlKGxlZnQsIHJpZ2h0LCBmLCBuZXh0X2luc3RyKTsKICAgICAgICAgICAgICAgICAvKiB1bmljb2RlX2NvbmNhdGVuYXRlIGNvbnN1bWVkIHRoZSByZWYgdG8gdiAqLwotICAgICAgICAgICAgICAgIGdvdG8gc2tpcF9kZWNyZWZfdng7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICB4ID0gUHlOdW1iZXJfQWRkKHYsIHcpOworICAgICAgICAgICAgICAgIHN1bSA9IFB5TnVtYmVyX0FkZChsZWZ0LCByaWdodCk7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGxlZnQpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgUHlfREVDUkVGKHJpZ2h0KTsKKyAgICAgICAgICAgIFNFVF9UT1Aoc3VtKTsKKyAgICAgICAgICAgIGlmIChzdW0gPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQorCisgICAgICAgIFRBUkdFVChCSU5BUllfU1VCVFJBQ1QpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyaWdodCA9IFBPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKmxlZnQgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpkaWZmID0gUHlOdW1iZXJfU3VidHJhY3QobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgUHlfREVDUkVGKHJpZ2h0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihsZWZ0KTsKKyAgICAgICAgICAgIFNFVF9UT1AoZGlmZik7CisgICAgICAgICAgICBpZiAoZGlmZiA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CisKKyAgICAgICAgVEFSR0VUKEJJTkFSWV9TVUJTQ1IpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpzdWIgPSBQT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpjb250YWluZXIgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyZXMgPSBQeU9iamVjdF9HZXRJdGVtKGNvbnRhaW5lciwgc3ViKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihjb250YWluZXIpOworICAgICAgICAgICAgUHlfREVDUkVGKHN1Yik7CisgICAgICAgICAgICBTRVRfVE9QKHJlcyk7CisgICAgICAgICAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KKworICAgICAgICBUQVJHRVQoQklOQVJZX0xTSElGVCkgeworICAgICAgICAgICAgUHlPYmplY3QgKnJpZ2h0ID0gUE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqbGVmdCA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnJlcyA9IFB5TnVtYmVyX0xzaGlmdChsZWZ0LCByaWdodCk7CisgICAgICAgICAgICBQeV9ERUNSRUYobGVmdCk7CisgICAgICAgICAgICBQeV9ERUNSRUYocmlnaHQpOworICAgICAgICAgICAgU0VUX1RPUChyZXMpOworICAgICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CisKKyAgICAgICAgVEFSR0VUKEJJTkFSWV9SU0hJRlQpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyaWdodCA9IFBPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKmxlZnQgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyZXMgPSBQeU51bWJlcl9Sc2hpZnQobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgUHlfREVDUkVGKGxlZnQpOworICAgICAgICAgICAgUHlfREVDUkVGKHJpZ2h0KTsKKyAgICAgICAgICAgIFNFVF9UT1AocmVzKTsKKyAgICAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQorCisgICAgICAgIFRBUkdFVChCSU5BUllfQU5EKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqcmlnaHQgPSBQT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpsZWZ0ID0gVE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqcmVzID0gUHlOdW1iZXJfQW5kKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihsZWZ0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihyaWdodCk7CisgICAgICAgICAgICBTRVRfVE9QKHJlcyk7CisgICAgICAgICAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KKworICAgICAgICBUQVJHRVQoQklOQVJZX1hPUikgeworICAgICAgICAgICAgUHlPYmplY3QgKnJpZ2h0ID0gUE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqbGVmdCA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnJlcyA9IFB5TnVtYmVyX1hvcihsZWZ0LCByaWdodCk7CisgICAgICAgICAgICBQeV9ERUNSRUYobGVmdCk7CisgICAgICAgICAgICBQeV9ERUNSRUYocmlnaHQpOworICAgICAgICAgICAgU0VUX1RPUChyZXMpOworICAgICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CisKKyAgICAgICAgVEFSR0VUKEJJTkFSWV9PUikgeworICAgICAgICAgICAgUHlPYmplY3QgKnJpZ2h0ID0gUE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqbGVmdCA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnJlcyA9IFB5TnVtYmVyX09yKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihsZWZ0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihyaWdodCk7CisgICAgICAgICAgICBTRVRfVE9QKHJlcyk7CisgICAgICAgICAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KKworICAgICAgICBUQVJHRVQoTElTVF9BUFBFTkQpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICp2ID0gUE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqbGlzdCA9IFBFRUsob3BhcmcpOworICAgICAgICAgICAgaW50IGVycjsKKyAgICAgICAgICAgIGVyciA9IFB5TGlzdF9BcHBlbmQobGlzdCwgdik7CiAgICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgc2tpcF9kZWNyZWZfdng6Ci0gICAgICAgICAgICBQeV9ERUNSRUYodyk7Ci0gICAgICAgICAgICBTRVRfVE9QKHgpOwotICAgICAgICAgICAgaWYgKHggIT0gTlVMTCkgRElTUEFUQ0goKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKGVyciAhPSAwKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBQUkVESUNUKEpVTVBfQUJTT0xVVEUpOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChCSU5BUllfU1VCVFJBQ1QpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlOdW1iZXJfU3VidHJhY3Qodiwgdyk7CisgICAgICAgIFRBUkdFVChTRVRfQUREKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqdiA9IFBPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnNldCA9IHN0YWNrX3BvaW50ZXJbLW9wYXJnXTsKKyAgICAgICAgICAgIGludCBlcnI7CisgICAgICAgICAgICBlcnIgPSBQeVNldF9BZGQoc2V0LCB2KTsKICAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih3KTsKLSAgICAgICAgICAgIFNFVF9UT1AoeCk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKSBESVNQQVRDSCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAoZXJyICE9IDApCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIFBSRURJQ1QoSlVNUF9BQlNPTFVURSk7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKEJJTkFSWV9TVUJTQ1IpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlPYmplY3RfR2V0SXRlbSh2LCB3KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih3KTsKLSAgICAgICAgICAgIFNFVF9UT1AoeCk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKSBESVNQQVRDSCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIFRBUkdFVChJTlBMQUNFX1BPV0VSKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqZXhwID0gUE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqYmFzZSA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnJlcyA9IFB5TnVtYmVyX0luUGxhY2VQb3dlcihiYXNlLCBleHAsIFB5X05vbmUpOworICAgICAgICAgICAgUHlfREVDUkVGKGJhc2UpOworICAgICAgICAgICAgUHlfREVDUkVGKGV4cCk7CisgICAgICAgICAgICBTRVRfVE9QKHJlcyk7CisgICAgICAgICAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoQklOQVJZX0xTSElGVCkKLSAgICAgICAgICAgIHcgPSBQT1AoKTsKLSAgICAgICAgICAgIHYgPSBUT1AoKTsKLSAgICAgICAgICAgIHggPSBQeU51bWJlcl9Mc2hpZnQodiwgdyk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodyk7Ci0gICAgICAgICAgICBTRVRfVE9QKHgpOwotICAgICAgICAgICAgaWYgKHggIT0gTlVMTCkgRElTUEFUQ0goKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBUQVJHRVQoSU5QTEFDRV9NVUxUSVBMWSkgeworICAgICAgICAgICAgUHlPYmplY3QgKnJpZ2h0ID0gUE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqbGVmdCA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnJlcyA9IFB5TnVtYmVyX0luUGxhY2VNdWx0aXBseShsZWZ0LCByaWdodCk7CisgICAgICAgICAgICBQeV9ERUNSRUYobGVmdCk7CisgICAgICAgICAgICBQeV9ERUNSRUYocmlnaHQpOworICAgICAgICAgICAgU0VUX1RPUChyZXMpOworICAgICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKEJJTkFSWV9SU0hJRlQpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlOdW1iZXJfUnNoaWZ0KHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgU0VUX1RPUCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgVEFSR0VUKElOUExBQ0VfVFJVRV9ESVZJREUpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpkaXZpc29yID0gUE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqZGl2aWRlbmQgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpxdW90aWVudCA9IFB5TnVtYmVyX0luUGxhY2VUcnVlRGl2aWRlKGRpdmlkZW5kLCBkaXZpc29yKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihkaXZpZGVuZCk7CisgICAgICAgICAgICBQeV9ERUNSRUYoZGl2aXNvcik7CisgICAgICAgICAgICBTRVRfVE9QKHF1b3RpZW50KTsKKyAgICAgICAgICAgIGlmIChxdW90aWVudCA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKEJJTkFSWV9BTkQpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlOdW1iZXJfQW5kKHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgU0VUX1RPUCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgVEFSR0VUKElOUExBQ0VfRkxPT1JfRElWSURFKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqZGl2aXNvciA9IFBPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKmRpdmlkZW5kID0gVE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqcXVvdGllbnQgPSBQeU51bWJlcl9JblBsYWNlRmxvb3JEaXZpZGUoZGl2aWRlbmQsIGRpdmlzb3IpOworICAgICAgICAgICAgUHlfREVDUkVGKGRpdmlkZW5kKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihkaXZpc29yKTsKKyAgICAgICAgICAgIFNFVF9UT1AocXVvdGllbnQpOworICAgICAgICAgICAgaWYgKHF1b3RpZW50ID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoQklOQVJZX1hPUikKLSAgICAgICAgICAgIHcgPSBQT1AoKTsKLSAgICAgICAgICAgIHYgPSBUT1AoKTsKLSAgICAgICAgICAgIHggPSBQeU51bWJlcl9Yb3Iodiwgdyk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodyk7Ci0gICAgICAgICAgICBTRVRfVE9QKHgpOwotICAgICAgICAgICAgaWYgKHggIT0gTlVMTCkgRElTUEFUQ0goKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBUQVJHRVQoSU5QTEFDRV9NT0RVTE8pIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyaWdodCA9IFBPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKmxlZnQgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICptb2QgPSBQeU51bWJlcl9JblBsYWNlUmVtYWluZGVyKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihsZWZ0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihyaWdodCk7CisgICAgICAgICAgICBTRVRfVE9QKG1vZCk7CisgICAgICAgICAgICBpZiAobW9kID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoQklOQVJZX09SKQotICAgICAgICAgICAgdyA9IFBPUCgpOwotICAgICAgICAgICAgdiA9IFRPUCgpOwotICAgICAgICAgICAgeCA9IFB5TnVtYmVyX09yKHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgU0VUX1RPUCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBUQVJHRVQoTElTVF9BUFBFTkQpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gUEVFSyhvcGFyZyk7Ci0gICAgICAgICAgICBlcnIgPSBQeUxpc3RfQXBwZW5kKHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgaWYgKGVyciA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgUFJFRElDVChKVU1QX0FCU09MVVRFKTsKLSAgICAgICAgICAgICAgICBESVNQQVRDSCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgVEFSR0VUKFNFVF9BREQpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gc3RhY2tfcG9pbnRlclstb3BhcmddOwotICAgICAgICAgICAgZXJyID0gUHlTZXRfQWRkKHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgaWYgKGVyciA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgUFJFRElDVChKVU1QX0FCU09MVVRFKTsKLSAgICAgICAgICAgICAgICBESVNQQVRDSCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgVEFSR0VUKElOUExBQ0VfUE9XRVIpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlOdW1iZXJfSW5QbGFjZVBvd2VyKHYsIHcsIFB5X05vbmUpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgU0VUX1RPUCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBUQVJHRVQoSU5QTEFDRV9NVUxUSVBMWSkKLSAgICAgICAgICAgIHcgPSBQT1AoKTsKLSAgICAgICAgICAgIHYgPSBUT1AoKTsKLSAgICAgICAgICAgIHggPSBQeU51bWJlcl9JblBsYWNlTXVsdGlwbHkodiwgdyk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodyk7Ci0gICAgICAgICAgICBTRVRfVE9QKHgpOwotICAgICAgICAgICAgaWYgKHggIT0gTlVMTCkgRElTUEFUQ0goKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIFRBUkdFVChJTlBMQUNFX1RSVUVfRElWSURFKQotICAgICAgICAgICAgdyA9IFBPUCgpOwotICAgICAgICAgICAgdiA9IFRPUCgpOwotICAgICAgICAgICAgeCA9IFB5TnVtYmVyX0luUGxhY2VUcnVlRGl2aWRlKHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgU0VUX1RPUCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBUQVJHRVQoSU5QTEFDRV9GTE9PUl9ESVZJREUpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlOdW1iZXJfSW5QbGFjZUZsb29yRGl2aWRlKHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgU0VUX1RPUCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBUQVJHRVQoSU5QTEFDRV9NT0RVTE8pCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlOdW1iZXJfSW5QbGFjZVJlbWFpbmRlcih2LCB3KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih3KTsKLSAgICAgICAgICAgIFNFVF9UT1AoeCk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKSBESVNQQVRDSCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgVEFSR0VUKElOUExBQ0VfQUREKQotICAgICAgICAgICAgdyA9IFBPUCgpOwotICAgICAgICAgICAgdiA9IFRPUCgpOwotICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9DaGVja0V4YWN0KHYpICYmCi0gICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQ2hlY2tFeGFjdCh3KSkgewotICAgICAgICAgICAgICAgIHggPSB1bmljb2RlX2NvbmNhdGVuYXRlKHYsIHcsIGYsIG5leHRfaW5zdHIpOworICAgICAgICBUQVJHRVQoSU5QTEFDRV9BREQpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyaWdodCA9IFBPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKmxlZnQgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpzdW07CisgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0NoZWNrRXhhY3QobGVmdCkgJiYgUHlVbmljb2RlX0NoZWNrRXhhY3QocmlnaHQpKSB7CisgICAgICAgICAgICAgICAgc3VtID0gdW5pY29kZV9jb25jYXRlbmF0ZShsZWZ0LCByaWdodCwgZiwgbmV4dF9pbnN0cik7CiAgICAgICAgICAgICAgICAgLyogdW5pY29kZV9jb25jYXRlbmF0ZSBjb25zdW1lZCB0aGUgcmVmIHRvIHYgKi8KLSAgICAgICAgICAgICAgICBnb3RvIHNraXBfZGVjcmVmX3Y7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICB4ID0gUHlOdW1iZXJfSW5QbGFjZUFkZCh2LCB3KTsKKyAgICAgICAgICAgICAgICBzdW0gPSBQeU51bWJlcl9JblBsYWNlQWRkKGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYobGVmdCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgc2tpcF9kZWNyZWZfdjoKLSAgICAgICAgICAgIFB5X0RFQ1JFRih3KTsKLSAgICAgICAgICAgIFNFVF9UT1AoeCk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKSBESVNQQVRDSCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBQeV9ERUNSRUYocmlnaHQpOworICAgICAgICAgICAgU0VUX1RPUChzdW0pOworICAgICAgICAgICAgaWYgKHN1bSA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKElOUExBQ0VfU1VCVFJBQ1QpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlOdW1iZXJfSW5QbGFjZVN1YnRyYWN0KHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgU0VUX1RPUCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgVEFSR0VUKElOUExBQ0VfU1VCVFJBQ1QpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyaWdodCA9IFBPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKmxlZnQgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpkaWZmID0gUHlOdW1iZXJfSW5QbGFjZVN1YnRyYWN0KGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihsZWZ0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihyaWdodCk7CisgICAgICAgICAgICBTRVRfVE9QKGRpZmYpOworICAgICAgICAgICAgaWYgKGRpZmYgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChJTlBMQUNFX0xTSElGVCkKLSAgICAgICAgICAgIHcgPSBQT1AoKTsKLSAgICAgICAgICAgIHYgPSBUT1AoKTsKLSAgICAgICAgICAgIHggPSBQeU51bWJlcl9JblBsYWNlTHNoaWZ0KHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgU0VUX1RPUCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgVEFSR0VUKElOUExBQ0VfTFNISUZUKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqcmlnaHQgPSBQT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpsZWZ0ID0gVE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqcmVzID0gUHlOdW1iZXJfSW5QbGFjZUxzaGlmdChsZWZ0LCByaWdodCk7CisgICAgICAgICAgICBQeV9ERUNSRUYobGVmdCk7CisgICAgICAgICAgICBQeV9ERUNSRUYocmlnaHQpOworICAgICAgICAgICAgU0VUX1RPUChyZXMpOworICAgICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKElOUExBQ0VfUlNISUZUKQotICAgICAgICAgICAgdyA9IFBPUCgpOwotICAgICAgICAgICAgdiA9IFRPUCgpOwotICAgICAgICAgICAgeCA9IFB5TnVtYmVyX0luUGxhY2VSc2hpZnQodiwgdyk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodyk7Ci0gICAgICAgICAgICBTRVRfVE9QKHgpOwotICAgICAgICAgICAgaWYgKHggIT0gTlVMTCkgRElTUEFUQ0goKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBUQVJHRVQoSU5QTEFDRV9SU0hJRlQpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyaWdodCA9IFBPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKmxlZnQgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyZXMgPSBQeU51bWJlcl9JblBsYWNlUnNoaWZ0KGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihsZWZ0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihyaWdodCk7CisgICAgICAgICAgICBTRVRfVE9QKHJlcyk7CisgICAgICAgICAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoSU5QTEFDRV9BTkQpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlOdW1iZXJfSW5QbGFjZUFuZCh2LCB3KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih3KTsKLSAgICAgICAgICAgIFNFVF9UT1AoeCk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKSBESVNQQVRDSCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIFRBUkdFVChJTlBMQUNFX0FORCkgeworICAgICAgICAgICAgUHlPYmplY3QgKnJpZ2h0ID0gUE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqbGVmdCA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnJlcyA9IFB5TnVtYmVyX0luUGxhY2VBbmQobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgUHlfREVDUkVGKGxlZnQpOworICAgICAgICAgICAgUHlfREVDUkVGKHJpZ2h0KTsKKyAgICAgICAgICAgIFNFVF9UT1AocmVzKTsKKyAgICAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChJTlBMQUNFX1hPUikKLSAgICAgICAgICAgIHcgPSBQT1AoKTsKLSAgICAgICAgICAgIHYgPSBUT1AoKTsKLSAgICAgICAgICAgIHggPSBQeU51bWJlcl9JblBsYWNlWG9yKHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgU0VUX1RPUCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgVEFSR0VUKElOUExBQ0VfWE9SKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqcmlnaHQgPSBQT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpsZWZ0ID0gVE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqcmVzID0gUHlOdW1iZXJfSW5QbGFjZVhvcihsZWZ0LCByaWdodCk7CisgICAgICAgICAgICBQeV9ERUNSRUYobGVmdCk7CisgICAgICAgICAgICBQeV9ERUNSRUYocmlnaHQpOworICAgICAgICAgICAgU0VUX1RPUChyZXMpOworICAgICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKElOUExBQ0VfT1IpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlOdW1iZXJfSW5QbGFjZU9yKHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgU0VUX1RPUCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgVEFSR0VUKElOUExBQ0VfT1IpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyaWdodCA9IFBPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKmxlZnQgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyZXMgPSBQeU51bWJlcl9JblBsYWNlT3IobGVmdCwgcmlnaHQpOworICAgICAgICAgICAgUHlfREVDUkVGKGxlZnQpOworICAgICAgICAgICAgUHlfREVDUkVGKHJpZ2h0KTsKKyAgICAgICAgICAgIFNFVF9UT1AocmVzKTsKKyAgICAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChTVE9SRV9TVUJTQ1IpCi0gICAgICAgICAgICB3ID0gVE9QKCk7Ci0gICAgICAgICAgICB2ID0gU0VDT05EKCk7Ci0gICAgICAgICAgICB1ID0gVEhJUkQoKTsKKyAgICAgICAgVEFSR0VUKFNUT1JFX1NVQlNDUikgeworICAgICAgICAgICAgUHlPYmplY3QgKnN1YiA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKmNvbnRhaW5lciA9IFNFQ09ORCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnYgPSBUSElSRCgpOworICAgICAgICAgICAgaW50IGVycjsKICAgICAgICAgICAgIFNUQUNLQURKKC0zKTsKICAgICAgICAgICAgIC8qIHZbd10gPSB1ICovCi0gICAgICAgICAgICBlcnIgPSBQeU9iamVjdF9TZXRJdGVtKHYsIHcsIHUpOwotICAgICAgICAgICAgUHlfREVDUkVGKHUpOworICAgICAgICAgICAgZXJyID0gUHlPYmplY3RfU2V0SXRlbShjb250YWluZXIsIHN1Yiwgdik7CiAgICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodyk7Ci0gICAgICAgICAgICBpZiAoZXJyID09IDApIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihjb250YWluZXIpOworICAgICAgICAgICAgUHlfREVDUkVGKHN1Yik7CisgICAgICAgICAgICBpZiAoZXJyICE9IDApCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoREVMRVRFX1NVQlNDUikKLSAgICAgICAgICAgIHcgPSBUT1AoKTsKLSAgICAgICAgICAgIHYgPSBTRUNPTkQoKTsKKyAgICAgICAgVEFSR0VUKERFTEVURV9TVUJTQ1IpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpzdWIgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpjb250YWluZXIgPSBTRUNPTkQoKTsKKyAgICAgICAgICAgIGludCBlcnI7CiAgICAgICAgICAgICBTVEFDS0FESigtMik7CiAgICAgICAgICAgICAvKiBkZWwgdlt3XSAqLwotICAgICAgICAgICAgZXJyID0gUHlPYmplY3RfRGVsSXRlbSh2LCB3KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih3KTsKLSAgICAgICAgICAgIGlmIChlcnIgPT0gMCkgRElTUEFUQ0goKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZXJyID0gUHlPYmplY3RfRGVsSXRlbShjb250YWluZXIsIHN1Yik7CisgICAgICAgICAgICBQeV9ERUNSRUYoY29udGFpbmVyKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihzdWIpOworICAgICAgICAgICAgaWYgKGVyciAhPSAwKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKFBSSU5UX0VYUFIpCi0gICAgICAgICAgICB2ID0gUE9QKCk7Ci0gICAgICAgICAgICB3ID0gUHlTeXNfR2V0T2JqZWN0KCJkaXNwbGF5aG9vayIpOwotICAgICAgICAgICAgaWYgKHcgPT0gTlVMTCkgeworICAgICAgICBUQVJHRVQoUFJJTlRfRVhQUikgeworICAgICAgICAgICAgUHlPYmplY3QgKnZhbHVlID0gUE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqaG9vayA9IFB5U3lzX0dldE9iamVjdCgiZGlzcGxheWhvb2siKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyZXM7CisgICAgICAgICAgICBpZiAoaG9vayA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvc3Qgc3lzLmRpc3BsYXlob29rIik7Ci0gICAgICAgICAgICAgICAgZXJyID0gLTE7Ci0gICAgICAgICAgICAgICAgeCA9IE5VTEw7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGVyciA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgeCA9IFB5VHVwbGVfUGFjaygxLCB2KTsKLSAgICAgICAgICAgICAgICBpZiAoeCA9PSBOVUxMKQotICAgICAgICAgICAgICAgICAgICBlcnIgPSAtMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChlcnIgPT0gMCkgewotICAgICAgICAgICAgICAgIHcgPSBQeUV2YWxfQ2FsbE9iamVjdCh3LCB4KTsKLSAgICAgICAgICAgICAgICBQeV9YREVDUkVGKHcpOwotICAgICAgICAgICAgICAgIGlmICh3ID09IE5VTEwpCi0gICAgICAgICAgICAgICAgICAgIGVyciA9IC0xOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfWERFQ1JFRih4KTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmVzID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhob29rLCB2YWx1ZSwgTlVMTCk7CisgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOworICAgICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBQeV9ERUNSRUYocmVzKTsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAogI2lmZGVmIENBU0VfVE9PX0JJRwogICAgICAgICBkZWZhdWx0OiBzd2l0Y2ggKG9wY29kZSkgewogI2VuZGlmCi0gICAgICAgIFRBUkdFVChSQUlTRV9WQVJBUkdTKQotICAgICAgICAgICAgdiA9IHcgPSBOVUxMOworICAgICAgICBUQVJHRVQoUkFJU0VfVkFSQVJHUykgeworICAgICAgICAgICAgUHlPYmplY3QgKmNhdXNlID0gTlVMTCwgKmV4YyA9IE5VTEw7CiAgICAgICAgICAgICBzd2l0Y2ggKG9wYXJnKSB7CiAgICAgICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICAgICAgdiA9IFBPUCgpOyAvKiBjYXVzZSAqLworICAgICAgICAgICAgICAgIGNhdXNlID0gUE9QKCk7IC8qIGNhdXNlICovCiAgICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgdyA9IFBPUCgpOyAvKiBleGMgKi8KKyAgICAgICAgICAgICAgICBleGMgPSBQT1AoKTsgLyogZXhjICovCiAgICAgICAgICAgICBjYXNlIDA6IC8qIEZhbGx0aHJvdWdoICovCi0gICAgICAgICAgICAgICAgd2h5ID0gZG9fcmFpc2Uodywgdik7CisgICAgICAgICAgICAgICAgaWYgKGRvX3JhaXNlKGV4YywgY2F1c2UpKSB7CisgICAgICAgICAgICAgICAgICAgIHdoeSA9IFdIWV9FWENFUFRJT047CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFzdF9ibG9ja19lbmQ7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfU3lzdGVtRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFkIFJBSVNFX1ZBUkFSR1Mgb3BhcmciKTsKLSAgICAgICAgICAgICAgICB3aHkgPSBXSFlfRVhDRVBUSU9OOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKFNUT1JFX0xPQ0FMUykKLSAgICAgICAgICAgIHggPSBQT1AoKTsKLSAgICAgICAgICAgIHYgPSBmLT5mX2xvY2FsczsKLSAgICAgICAgICAgIFB5X1hERUNSRUYodik7Ci0gICAgICAgICAgICBmLT5mX2xvY2FscyA9IHg7Ci0gICAgICAgICAgICBESVNQQVRDSCgpOwotCi0gICAgICAgIFRBUkdFVChSRVRVUk5fVkFMVUUpCisgICAgICAgIFRBUkdFVChSRVRVUk5fVkFMVUUpIHsKICAgICAgICAgICAgIHJldHZhbCA9IFBPUCgpOwogICAgICAgICAgICAgd2h5ID0gV0hZX1JFVFVSTjsKICAgICAgICAgICAgIGdvdG8gZmFzdF9ibG9ja19lbmQ7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoWUlFTERfRlJPTSkKLSAgICAgICAgICAgIHUgPSBQT1AoKTsKLSAgICAgICAgICAgIHggPSBUT1AoKTsKLSAgICAgICAgICAgIC8qIHNlbmQgdSB0byB4ICovCi0gICAgICAgICAgICBpZiAoUHlHZW5fQ2hlY2tFeGFjdCh4KSkgewotICAgICAgICAgICAgICAgIHJldHZhbCA9IF9QeUdlbl9TZW5kKChQeUdlbk9iamVjdCAqKXgsIHUpOworICAgICAgICBUQVJHRVQoWUlFTERfRlJPTSkgeworICAgICAgICAgICAgUHlPYmplY3QgKnYgPSBQT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpyZWNpZXZlciA9IFRPUCgpOworICAgICAgICAgICAgaW50IGVycjsKKyAgICAgICAgICAgIGlmIChQeUdlbl9DaGVja0V4YWN0KHJlY2lldmVyKSkgeworICAgICAgICAgICAgICAgIHJldHZhbCA9IF9QeUdlbl9TZW5kKChQeUdlbk9iamVjdCAqKXJlY2lldmVyLCB2KTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgX1B5X0lERU5USUZJRVIoc2VuZCk7Ci0gICAgICAgICAgICAgICAgaWYgKHUgPT0gUHlfTm9uZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dmFsID0gUHlfVFlQRSh4KS0+dHBfaXRlcm5leHQoeCk7CisgICAgICAgICAgICAgICAgaWYgKHYgPT0gUHlfTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dmFsID0gUHlfVFlQRShyZWNpZXZlciktPnRwX2l0ZXJuZXh0KHJlY2lldmVyKTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHJldHZhbCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoeCwgJlB5SWRfc2VuZCwgIk8iLCB1KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dmFsID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChyZWNpZXZlciwgJlB5SWRfc2VuZCwgIk8iLCB2KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFB5X0RFQ1JFRih1KTsKLSAgICAgICAgICAgIGlmICghcmV0dmFsKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYodik7CisgICAgICAgICAgICBpZiAocmV0dmFsID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICBQeU9iamVjdCAqdmFsOwotICAgICAgICAgICAgICAgIHggPSBQT1AoKTsgLyogUmVtb3ZlIGl0ZXIgZnJvbSBzdGFjayAqLwotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih4KTsKICAgICAgICAgICAgICAgICBlcnIgPSBfUHlHZW5fRmV0Y2hTdG9wSXRlcmF0aW9uVmFsdWUoJnZhbCk7Ci0gICAgICAgICAgICAgICAgaWYgKGVyciA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgeCA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB4ID0gdmFsOwotICAgICAgICAgICAgICAgIFBVU0goeCk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgaWYgKGVyciA8IDApCisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKHJlY2lldmVyKTsKKyAgICAgICAgICAgICAgICBTRVRfVE9QKHZhbCk7CisgICAgICAgICAgICAgICAgRElTUEFUQ0goKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIC8qIHggcmVtYWlucyBvbiBzdGFjaywgcmV0dmFsIGlzIHZhbHVlIHRvIGJlIHlpZWxkZWQgKi8KICAgICAgICAgICAgIGYtPmZfc3RhY2t0b3AgPSBzdGFja19wb2ludGVyOwpAQCAtMTg2NywzOSArMTkwOCwzOCBAQAogICAgICAgICAgICAgLyogYW5kIHJlcGVhdC4uLiAqLwogICAgICAgICAgICAgZi0+Zl9sYXN0aS0tOwogICAgICAgICAgICAgZ290byBmYXN0X3lpZWxkOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKFlJRUxEX1ZBTFVFKQorICAgICAgICBUQVJHRVQoWUlFTERfVkFMVUUpIHsKICAgICAgICAgICAgIHJldHZhbCA9IFBPUCgpOwogICAgICAgICAgICAgZi0+Zl9zdGFja3RvcCA9IHN0YWNrX3BvaW50ZXI7CiAgICAgICAgICAgICB3aHkgPSBXSFlfWUlFTEQ7CiAgICAgICAgICAgICBnb3RvIGZhc3RfeWllbGQ7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoUE9QX0VYQ0VQVCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBQeVRyeUJsb2NrICpiID0gUHlGcmFtZV9CbG9ja1BvcChmKTsKLSAgICAgICAgICAgICAgICBpZiAoYi0+Yl90eXBlICE9IEVYQ0VQVF9IQU5ETEVSKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19TeXN0ZW1FcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJwb3BwZWQgYmxvY2sgaXMgbm90IGFuIGV4Y2VwdCBoYW5kbGVyIik7Ci0gICAgICAgICAgICAgICAgICAgIHdoeSA9IFdIWV9FWENFUFRJT047Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBVTldJTkRfRVhDRVBUX0hBTkRMRVIoYik7CisgICAgICAgIFRBUkdFVChQT1BfRVhDRVBUKSB7CisgICAgICAgICAgICBQeVRyeUJsb2NrICpiID0gUHlGcmFtZV9CbG9ja1BvcChmKTsKKyAgICAgICAgICAgIGlmIChiLT5iX3R5cGUgIT0gRVhDRVBUX0hBTkRMRVIpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfU3lzdGVtRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3BwZWQgYmxvY2sgaXMgbm90IGFuIGV4Y2VwdCBoYW5kbGVyIik7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFVOV0lORF9FWENFUFRfSEFORExFUihiKTsKICAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoUE9QX0JMT0NLKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFB5VHJ5QmxvY2sgKmIgPSBQeUZyYW1lX0Jsb2NrUG9wKGYpOwotICAgICAgICAgICAgICAgIFVOV0lORF9CTE9DSyhiKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgVEFSR0VUKFBPUF9CTE9DSykgeworICAgICAgICAgICAgUHlUcnlCbG9jayAqYiA9IFB5RnJhbWVfQmxvY2tQb3AoZik7CisgICAgICAgICAgICBVTldJTkRfQkxPQ0soYik7CiAgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKICAgICAgICAgUFJFRElDVEVEKEVORF9GSU5BTExZKTsKLSAgICAgICAgVEFSR0VUKEVORF9GSU5BTExZKQotICAgICAgICAgICAgdiA9IFBPUCgpOwotICAgICAgICAgICAgaWYgKFB5TG9uZ19DaGVjayh2KSkgewotICAgICAgICAgICAgICAgIHdoeSA9IChlbnVtIHdoeV9jb2RlKSBQeUxvbmdfQVNfTE9ORyh2KTsKLSAgICAgICAgICAgICAgICBhc3NlcnQod2h5ICE9IFdIWV9ZSUVMRCk7CisgICAgICAgIFRBUkdFVChFTkRfRklOQUxMWSkgeworICAgICAgICAgICAgUHlPYmplY3QgKnN0YXR1cyA9IFBPUCgpOworICAgICAgICAgICAgaWYgKFB5TG9uZ19DaGVjayhzdGF0dXMpKSB7CisgICAgICAgICAgICAgICAgd2h5ID0gKGVudW0gd2h5X2NvZGUpIFB5TG9uZ19BU19MT05HKHN0YXR1cyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KHdoeSAhPSBXSFlfWUlFTEQgJiYgd2h5ICE9IFdIWV9FWENFUFRJT04pOwogICAgICAgICAgICAgICAgIGlmICh3aHkgPT0gV0hZX1JFVFVSTiB8fAogICAgICAgICAgICAgICAgICAgICB3aHkgPT0gV0hZX0NPTlRJTlVFKQogICAgICAgICAgICAgICAgICAgICByZXR2YWwgPSBQT1AoKTsKQEAgLTE5MTIsMjQ4ICsxOTUyLDI4MCBAQAogICAgICAgICAgICAgICAgICAgICBhc3NlcnQoYi0+Yl90eXBlID09IEVYQ0VQVF9IQU5ETEVSKTsKICAgICAgICAgICAgICAgICAgICAgVU5XSU5EX0VYQ0VQVF9IQU5ETEVSKGIpOwogICAgICAgICAgICAgICAgICAgICB3aHkgPSBXSFlfTk9UOworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgRElTUEFUQ0goKTsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKHN0YXR1cyk7CisgICAgICAgICAgICAgICAgZ290byBmYXN0X2Jsb2NrX2VuZDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKFB5RXhjZXB0aW9uQ2xhc3NfQ2hlY2sodikpIHsKLSAgICAgICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICAgICAgdSA9IFBPUCgpOwotICAgICAgICAgICAgICAgIFB5RXJyX1Jlc3RvcmUodiwgdywgdSk7Ci0gICAgICAgICAgICAgICAgd2h5ID0gV0hZX1JFUkFJU0U7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBlbHNlIGlmIChQeUV4Y2VwdGlvbkNsYXNzX0NoZWNrKHN0YXR1cykpIHsKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqZXhjID0gUE9QKCk7CisgICAgICAgICAgICAgICAgUHlPYmplY3QgKnRiID0gUE9QKCk7CisgICAgICAgICAgICAgICAgUHlFcnJfUmVzdG9yZShzdGF0dXMsIGV4YywgdGIpOworICAgICAgICAgICAgICAgIHdoeSA9IFdIWV9FWENFUFRJT047CisgICAgICAgICAgICAgICAgZ290byBmYXN0X2Jsb2NrX2VuZDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKHYgIT0gUHlfTm9uZSkgeworICAgICAgICAgICAgZWxzZSBpZiAoc3RhdHVzICE9IFB5X05vbmUpIHsKICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfU3lzdGVtRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICInZmluYWxseScgcG9wcyBiYWQgZXhjZXB0aW9uIik7Ci0gICAgICAgICAgICAgICAgd2h5ID0gV0hZX0VYQ0VQVElPTjsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYoc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBQeV9ERUNSRUYoc3RhdHVzKTsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoTE9BRF9CVUlMRF9DTEFTUykKLSAgICAgICAgeworICAgICAgICBUQVJHRVQoTE9BRF9CVUlMRF9DTEFTUykgewogICAgICAgICAgICAgX1B5X0lERU5USUZJRVIoX19idWlsZF9jbGFzc19fKTsKIAorICAgICAgICAgICAgUHlPYmplY3QgKmJjOwogICAgICAgICAgICAgaWYgKFB5RGljdF9DaGVja0V4YWN0KGYtPmZfYnVpbHRpbnMpKSB7Ci0gICAgICAgICAgICAgICAgeCA9IF9QeURpY3RfR2V0SXRlbUlkKGYtPmZfYnVpbHRpbnMsICZQeUlkX19fYnVpbGRfY2xhc3NfXyk7Ci0gICAgICAgICAgICAgICAgaWYgKHggPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGJjID0gX1B5RGljdF9HZXRJdGVtSWQoZi0+Zl9idWlsdGlucywgJlB5SWRfX19idWlsZF9jbGFzc19fKTsKKyAgICAgICAgICAgICAgICBpZiAoYmMgPT0gTlVMTCkgewogICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfTmFtZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fYnVpbGRfY2xhc3NfXyBub3QgZm91bmQiKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFB5X0lOQ1JFRih4KTsKKyAgICAgICAgICAgICAgICBQeV9JTkNSRUYoYmMpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmJ1aWxkX2NsYXNzX3N0ciA9IF9QeVVuaWNvZGVfRnJvbUlkKCZQeUlkX19fYnVpbGRfY2xhc3NfXyk7CiAgICAgICAgICAgICAgICAgaWYgKGJ1aWxkX2NsYXNzX3N0ciA9PSBOVUxMKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB4ID0gUHlPYmplY3RfR2V0SXRlbShmLT5mX2J1aWx0aW5zLCBidWlsZF9jbGFzc19zdHIpOwotICAgICAgICAgICAgICAgIGlmICh4ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBiYyA9IFB5T2JqZWN0X0dldEl0ZW0oZi0+Zl9idWlsdGlucywgYnVpbGRfY2xhc3Nfc3RyKTsKKyAgICAgICAgICAgICAgICBpZiAoYmMgPT0gTlVMTCkgewogICAgICAgICAgICAgICAgICAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19LZXlFcnJvcikpCiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfTmFtZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX2J1aWxkX2NsYXNzX18gbm90IGZvdW5kIik7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFBVU0goeCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIFBVU0goYmMpOworICAgICAgICAgICAgRElTUEFUQ0goKTsKICAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChTVE9SRV9OQU1FKQotICAgICAgICAgICAgdyA9IEdFVElURU0obmFtZXMsIG9wYXJnKTsKLSAgICAgICAgICAgIHYgPSBQT1AoKTsKLSAgICAgICAgICAgIGlmICgoeCA9IGYtPmZfbG9jYWxzKSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgaWYgKFB5RGljdF9DaGVja0V4YWN0KHgpKQotICAgICAgICAgICAgICAgICAgICBlcnIgPSBQeURpY3RfU2V0SXRlbSh4LCB3LCB2KTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGVyciA9IFB5T2JqZWN0X1NldEl0ZW0oeCwgdywgdik7CisgICAgICAgIFRBUkdFVChTVE9SRV9OQU1FKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqbmFtZSA9IEdFVElURU0obmFtZXMsIG9wYXJnKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICp2ID0gUE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqbnMgPSBmLT5mX2xvY2FsczsKKyAgICAgICAgICAgIGludCBlcnI7CisgICAgICAgICAgICBpZiAobnMgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19TeXN0ZW1FcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vIGxvY2FscyBmb3VuZCB3aGVuIHN0b3JpbmcgJVIiLCBuYW1lKTsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICAgICAgaWYgKGVyciA9PSAwKSBESVNQQVRDSCgpOwotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfU3lzdGVtRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIm5vIGxvY2FscyBmb3VuZCB3aGVuIHN0b3JpbmcgJVIiLCB3KTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKFB5RGljdF9DaGVja0V4YWN0KG5zKSkKKyAgICAgICAgICAgICAgICBlcnIgPSBQeURpY3RfU2V0SXRlbShucywgbmFtZSwgdik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZXJyID0gUHlPYmplY3RfU2V0SXRlbShucywgbmFtZSwgdik7CisgICAgICAgICAgICBQeV9ERUNSRUYodik7CisgICAgICAgICAgICBpZiAoZXJyICE9IDApCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoREVMRVRFX05BTUUpCi0gICAgICAgICAgICB3ID0gR0VUSVRFTShuYW1lcywgb3BhcmcpOwotICAgICAgICAgICAgaWYgKCh4ID0gZi0+Zl9sb2NhbHMpICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBpZiAoKGVyciA9IFB5T2JqZWN0X0RlbEl0ZW0oeCwgdykpICE9IDApCi0gICAgICAgICAgICAgICAgICAgIGZvcm1hdF9leGNfY2hlY2tfYXJnKFB5RXhjX05hbWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkFNRV9FUlJPUl9NU0csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcpOwotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBUQVJHRVQoREVMRVRFX05BTUUpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpuYW1lID0gR0VUSVRFTShuYW1lcywgb3BhcmcpOworICAgICAgICAgICAgUHlPYmplY3QgKm5zID0gZi0+Zl9sb2NhbHM7CisgICAgICAgICAgICBpbnQgZXJyOworICAgICAgICAgICAgaWYgKG5zID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfU3lzdGVtRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJubyBsb2NhbHMgd2hlbiBkZWxldGluZyAlUiIsIG5hbWUpOworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfU3lzdGVtRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIm5vIGxvY2FscyB3aGVuIGRlbGV0aW5nICVSIiwgdyk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGVyciA9IFB5T2JqZWN0X0RlbEl0ZW0obnMsIG5hbWUpOworICAgICAgICAgICAgaWYgKGVyciAhPSAwKSB7CisgICAgICAgICAgICAgICAgZm9ybWF0X2V4Y19jaGVja19hcmcoUHlFeGNfTmFtZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BTUVfRVJST1JfTVNHLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUpOworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKICAgICAgICAgUFJFRElDVEVEX1dJVEhfQVJHKFVOUEFDS19TRVFVRU5DRSk7Ci0gICAgICAgIFRBUkdFVChVTlBBQ0tfU0VRVUVOQ0UpCi0gICAgICAgICAgICB2ID0gUE9QKCk7Ci0gICAgICAgICAgICBpZiAoUHlUdXBsZV9DaGVja0V4YWN0KHYpICYmCi0gICAgICAgICAgICAgICAgUHlUdXBsZV9HRVRfU0laRSh2KSA9PSBvcGFyZykgewotICAgICAgICAgICAgICAgIFB5T2JqZWN0ICoqaXRlbXMgPSBcCi0gICAgICAgICAgICAgICAgICAgICgoUHlUdXBsZU9iamVjdCAqKXYpLT5vYl9pdGVtOworICAgICAgICBUQVJHRVQoVU5QQUNLX1NFUVVFTkNFKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqc2VxID0gUE9QKCksICppdGVtLCAqKml0ZW1zOworICAgICAgICAgICAgaWYgKFB5VHVwbGVfQ2hlY2tFeGFjdChzZXEpICYmCisgICAgICAgICAgICAgICAgUHlUdXBsZV9HRVRfU0laRShzZXEpID09IG9wYXJnKSB7CisgICAgICAgICAgICAgICAgaXRlbXMgPSAoKFB5VHVwbGVPYmplY3QgKilzZXEpLT5vYl9pdGVtOwogICAgICAgICAgICAgICAgIHdoaWxlIChvcGFyZy0tKSB7Ci0gICAgICAgICAgICAgICAgICAgIHcgPSBpdGVtc1tvcGFyZ107Ci0gICAgICAgICAgICAgICAgICAgIFB5X0lOQ1JFRih3KTsKLSAgICAgICAgICAgICAgICAgICAgUFVTSCh3KTsKKyAgICAgICAgICAgICAgICAgICAgaXRlbSA9IGl0ZW1zW29wYXJnXTsKKyAgICAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKGl0ZW0pOworICAgICAgICAgICAgICAgICAgICBQVVNIKGl0ZW0pOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICAgICAgRElTUEFUQ0goKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoUHlMaXN0X0NoZWNrRXhhY3QodikgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgUHlMaXN0X0dFVF9TSVpFKHYpID09IG9wYXJnKSB7Ci0gICAgICAgICAgICAgICAgUHlPYmplY3QgKippdGVtcyA9IFwKLSAgICAgICAgICAgICAgICAgICAgKChQeUxpc3RPYmplY3QgKil2KS0+b2JfaXRlbTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoUHlMaXN0X0NoZWNrRXhhY3Qoc2VxKSAmJgorICAgICAgICAgICAgICAgICAgICAgICBQeUxpc3RfR0VUX1NJWkUoc2VxKSA9PSBvcGFyZykgeworICAgICAgICAgICAgICAgIGl0ZW1zID0gKChQeUxpc3RPYmplY3QgKilzZXEpLT5vYl9pdGVtOwogICAgICAgICAgICAgICAgIHdoaWxlIChvcGFyZy0tKSB7Ci0gICAgICAgICAgICAgICAgICAgIHcgPSBpdGVtc1tvcGFyZ107Ci0gICAgICAgICAgICAgICAgICAgIFB5X0lOQ1JFRih3KTsKLSAgICAgICAgICAgICAgICAgICAgUFVTSCh3KTsKKyAgICAgICAgICAgICAgICAgICAgaXRlbSA9IGl0ZW1zW29wYXJnXTsKKyAgICAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKGl0ZW0pOworICAgICAgICAgICAgICAgICAgICBQVVNIKGl0ZW0pOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSBpZiAodW5wYWNrX2l0ZXJhYmxlKHYsIG9wYXJnLCAtMSwKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodW5wYWNrX2l0ZXJhYmxlKHNlcSwgb3BhcmcsIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tfcG9pbnRlciArIG9wYXJnKSkgewogICAgICAgICAgICAgICAgIFNUQUNLQURKKG9wYXJnKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLyogdW5wYWNrX2l0ZXJhYmxlKCkgcmFpc2VkIGFuIGV4Y2VwdGlvbiAqLwotICAgICAgICAgICAgICAgIHdoeSA9IFdIWV9FWENFUFRJT047CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKHNlcSk7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgUHlfREVDUkVGKHNlcSk7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKFVOUEFDS19FWCkKLSAgICAgICAgeworICAgICAgICBUQVJHRVQoVU5QQUNLX0VYKSB7CiAgICAgICAgICAgICBpbnQgdG90YWxhcmdzID0gMSArIChvcGFyZyAmIDB4RkYpICsgKG9wYXJnID4+IDgpOwotICAgICAgICAgICAgdiA9IFBPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnNlcSA9IFBPUCgpOwogCi0gICAgICAgICAgICBpZiAodW5wYWNrX2l0ZXJhYmxlKHYsIG9wYXJnICYgMHhGRiwgb3BhcmcgPj4gOCwKKyAgICAgICAgICAgIGlmICh1bnBhY2tfaXRlcmFibGUoc2VxLCBvcGFyZyAmIDB4RkYsIG9wYXJnID4+IDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrX3BvaW50ZXIgKyB0b3RhbGFyZ3MpKSB7CiAgICAgICAgICAgICAgICAgc3RhY2tfcG9pbnRlciArPSB0b3RhbGFyZ3M7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHdoeSA9IFdIWV9FWENFUFRJT047CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKHNlcSk7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgUHlfREVDUkVGKHNlcSk7CisgICAgICAgICAgICBESVNQQVRDSCgpOwogICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKFNUT1JFX0FUVFIpCi0gICAgICAgICAgICB3ID0gR0VUSVRFTShuYW1lcywgb3BhcmcpOwotICAgICAgICAgICAgdiA9IFRPUCgpOwotICAgICAgICAgICAgdSA9IFNFQ09ORCgpOworICAgICAgICBUQVJHRVQoU1RPUkVfQVRUUikgeworICAgICAgICAgICAgUHlPYmplY3QgKm5hbWUgPSBHRVRJVEVNKG5hbWVzLCBvcGFyZyk7CisgICAgICAgICAgICBQeU9iamVjdCAqb3duZXIgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICp2ID0gU0VDT05EKCk7CisgICAgICAgICAgICBpbnQgZXJyOwogICAgICAgICAgICAgU1RBQ0tBREooLTIpOwotICAgICAgICAgICAgZXJyID0gUHlPYmplY3RfU2V0QXR0cih2LCB3LCB1KTsgLyogdi53ID0gdSAqLworICAgICAgICAgICAgZXJyID0gUHlPYmplY3RfU2V0QXR0cihvd25lciwgbmFtZSwgdik7CiAgICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodSk7Ci0gICAgICAgICAgICBpZiAoZXJyID09IDApIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihvd25lcik7CisgICAgICAgICAgICBpZiAoZXJyICE9IDApCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoREVMRVRFX0FUVFIpCi0gICAgICAgICAgICB3ID0gR0VUSVRFTShuYW1lcywgb3BhcmcpOwotICAgICAgICAgICAgdiA9IFBPUCgpOwotICAgICAgICAgICAgZXJyID0gUHlPYmplY3RfU2V0QXR0cih2LCB3LCAoUHlPYmplY3QgKilOVUxMKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZGVsIHYudyAqLworICAgICAgICBUQVJHRVQoREVMRVRFX0FUVFIpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpuYW1lID0gR0VUSVRFTShuYW1lcywgb3BhcmcpOworICAgICAgICAgICAgUHlPYmplY3QgKm93bmVyID0gUE9QKCk7CisgICAgICAgICAgICBpbnQgZXJyOworICAgICAgICAgICAgZXJyID0gUHlPYmplY3RfU2V0QXR0cihvd25lciwgbmFtZSwgKFB5T2JqZWN0ICopTlVMTCk7CisgICAgICAgICAgICBQeV9ERUNSRUYob3duZXIpOworICAgICAgICAgICAgaWYgKGVyciAhPSAwKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CisKKyAgICAgICAgVEFSR0VUKFNUT1JFX0dMT0JBTCkgeworICAgICAgICAgICAgUHlPYmplY3QgKm5hbWUgPSBHRVRJVEVNKG5hbWVzLCBvcGFyZyk7CisgICAgICAgICAgICBQeU9iamVjdCAqdiA9IFBPUCgpOworICAgICAgICAgICAgaW50IGVycjsKKyAgICAgICAgICAgIGVyciA9IFB5RGljdF9TZXRJdGVtKGYtPmZfZ2xvYmFscywgbmFtZSwgdik7CiAgICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChlcnIgIT0gMCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChTVE9SRV9HTE9CQUwpCi0gICAgICAgICAgICB3ID0gR0VUSVRFTShuYW1lcywgb3BhcmcpOwotICAgICAgICAgICAgdiA9IFBPUCgpOwotICAgICAgICAgICAgZXJyID0gUHlEaWN0X1NldEl0ZW0oZi0+Zl9nbG9iYWxzLCB3LCB2KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIGlmIChlcnIgPT0gMCkgRElTUEFUQ0goKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIFRBUkdFVChERUxFVEVfR0xPQkFMKQotICAgICAgICAgICAgdyA9IEdFVElURU0obmFtZXMsIG9wYXJnKTsKLSAgICAgICAgICAgIGlmICgoZXJyID0gUHlEaWN0X0RlbEl0ZW0oZi0+Zl9nbG9iYWxzLCB3KSkgIT0gMCkKKyAgICAgICAgVEFSR0VUKERFTEVURV9HTE9CQUwpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpuYW1lID0gR0VUSVRFTShuYW1lcywgb3BhcmcpOworICAgICAgICAgICAgaW50IGVycjsKKyAgICAgICAgICAgIGVyciA9IFB5RGljdF9EZWxJdGVtKGYtPmZfZ2xvYmFscywgbmFtZSk7CisgICAgICAgICAgICBpZiAoZXJyICE9IDApIHsKICAgICAgICAgICAgICAgICBmb3JtYXRfZXhjX2NoZWNrX2FyZygKLSAgICAgICAgICAgICAgICAgICAgUHlFeGNfTmFtZUVycm9yLCBHTE9CQUxfTkFNRV9FUlJPUl9NU0csIHcpOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgVEFSR0VUKExPQURfTkFNRSkKLSAgICAgICAgICAgIHcgPSBHRVRJVEVNKG5hbWVzLCBvcGFyZyk7Ci0gICAgICAgICAgICBpZiAoKHYgPSBmLT5mX2xvY2FscykgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19TeXN0ZW1FcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vIGxvY2FscyB3aGVuIGxvYWRpbmcgJVIiLCB3KTsKLSAgICAgICAgICAgICAgICB3aHkgPSBXSFlfRVhDRVBUSU9OOwotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBQeUV4Y19OYW1lRXJyb3IsIE5BTUVfRVJST1JfTVNHLCBuYW1lKTsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKFB5RGljdF9DaGVja0V4YWN0KHYpKSB7Ci0gICAgICAgICAgICAgICAgeCA9IFB5RGljdF9HZXRJdGVtKHYsIHcpOwotICAgICAgICAgICAgICAgIFB5X1hJTkNSRUYoeCk7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CisKKyAgICAgICAgVEFSR0VUKExPQURfTkFNRSkgeworICAgICAgICAgICAgUHlPYmplY3QgKm5hbWUgPSBHRVRJVEVNKG5hbWVzLCBvcGFyZyk7CisgICAgICAgICAgICBQeU9iamVjdCAqbG9jYWxzID0gZi0+Zl9sb2NhbHM7CisgICAgICAgICAgICBQeU9iamVjdCAqdjsKKyAgICAgICAgICAgIGlmIChsb2NhbHMgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19TeXN0ZW1FcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vIGxvY2FscyB3aGVuIGxvYWRpbmcgJVIiLCBuYW1lKTsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFB5RGljdF9DaGVja0V4YWN0KGxvY2FscykpIHsKKyAgICAgICAgICAgICAgICB2ID0gUHlEaWN0X0dldEl0ZW0obG9jYWxzLCBuYW1lKTsKKyAgICAgICAgICAgICAgICBQeV9YSU5DUkVGKHYpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgeCA9IFB5T2JqZWN0X0dldEl0ZW0odiwgdyk7Ci0gICAgICAgICAgICAgICAgaWYgKHggPT0gTlVMTCAmJiBQeUVycl9PY2N1cnJlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXhjX0tleUVycm9yKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIHYgPSBQeU9iamVjdF9HZXRJdGVtKGxvY2FscywgbmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKHYgPT0gTlVMTCAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19LZXlFcnJvcikpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh4ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICB4ID0gUHlEaWN0X0dldEl0ZW0oZi0+Zl9nbG9iYWxzLCB3KTsKLSAgICAgICAgICAgICAgICBQeV9YSU5DUkVGKHgpOwotICAgICAgICAgICAgICAgIGlmICh4ID09IE5VTEwpIHsKKyAgICAgICAgICAgIGlmICh2ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICB2ID0gUHlEaWN0X0dldEl0ZW0oZi0+Zl9nbG9iYWxzLCBuYW1lKTsKKyAgICAgICAgICAgICAgICBQeV9YSU5DUkVGKHYpOworICAgICAgICAgICAgICAgIGlmICh2ID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKFB5RGljdF9DaGVja0V4YWN0KGYtPmZfYnVpbHRpbnMpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB4ID0gUHlEaWN0X0dldEl0ZW0oZi0+Zl9idWlsdGlucywgdyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2ID0gUHlEaWN0X0dldEl0ZW0oZi0+Zl9idWlsdGlucywgbmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0X2V4Y19jaGVja19hcmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFeGNfTmFtZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BTUVfRVJST1JfTVNHLCB3KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQU1FX0VSUk9SX01TRywgbmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIFB5X0lOQ1JFRih4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5X0lOQ1JFRih2KTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHggPSBQeU9iamVjdF9HZXRJdGVtKGYtPmZfYnVpbHRpbnMsIHcpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHggPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdiA9IFB5T2JqZWN0X0dldEl0ZW0oZi0+Zl9idWlsdGlucywgbmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfS2V5RXJyb3IpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRfZXhjX2NoZWNrX2FyZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFeGNfTmFtZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQU1FX0VSUk9SX01TRywgdyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BTUVfRVJST1JfTVNHLCBuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAgUFVTSCh4KTsKKyAgICAgICAgICAgIFBVU0godik7CiAgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKExPQURfR0xPQkFMKQotICAgICAgICAgICAgdyA9IEdFVElURU0obmFtZXMsIG9wYXJnKTsKKyAgICAgICAgVEFSR0VUKExPQURfR0xPQkFMKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqbmFtZSA9IEdFVElURU0obmFtZXMsIG9wYXJnKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICp2OwogICAgICAgICAgICAgaWYgKFB5RGljdF9DaGVja0V4YWN0KGYtPmZfZ2xvYmFscykKICAgICAgICAgICAgICAgICAmJiBQeURpY3RfQ2hlY2tFeGFjdChmLT5mX2J1aWx0aW5zKSkgewotICAgICAgICAgICAgICAgIHggPSBfUHlEaWN0X0xvYWRHbG9iYWwoKFB5RGljdE9iamVjdCAqKWYtPmZfZ2xvYmFscywKKyAgICAgICAgICAgICAgICB2ID0gX1B5RGljdF9Mb2FkR2xvYmFsKChQeURpY3RPYmplY3QgKilmLT5mX2dsb2JhbHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlEaWN0T2JqZWN0ICopZi0+Zl9idWlsdGlucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcpOwotICAgICAgICAgICAgICAgIGlmICh4ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUpOworICAgICAgICAgICAgICAgIGlmICh2ID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFQeUVycl9PY2N1cnJlZCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0X2V4Y19jaGVja19hcmcoUHlFeGNfTmFtZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xPQkFMX05BTUVfRVJST1JfTVNHLCB3KTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQU1FX0VSUk9SX01TRywgbmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFB5X0lOQ1JFRih4KTsKKyAgICAgICAgICAgICAgICBQeV9JTkNSRUYodik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAvKiBTbG93LXBhdGggaWYgZ2xvYmFscyBvciBidWlsdGlucyBpcyBub3QgYSBkaWN0ICovCi0gICAgICAgICAgICAgICAgeCA9IFB5T2JqZWN0X0dldEl0ZW0oZi0+Zl9nbG9iYWxzLCB3KTsKLSAgICAgICAgICAgICAgICBpZiAoeCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIHggPSBQeU9iamVjdF9HZXRJdGVtKGYtPmZfYnVpbHRpbnMsIHcpOwotICAgICAgICAgICAgICAgICAgICBpZiAoeCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgdiA9IFB5T2JqZWN0X0dldEl0ZW0oZi0+Zl9nbG9iYWxzLCBuYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAodiA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIHYgPSBQeU9iamVjdF9HZXRJdGVtKGYtPmZfYnVpbHRpbnMsIG5hbWUpOworICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19LZXlFcnJvcikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0X2V4Y19jaGVja19hcmcoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFeGNfTmFtZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMT0JBTF9OQU1FX0VSUk9SX01TRywgdyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQU1FX0VSUk9SX01TRywgbmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAgUFVTSCh4KTsKKyAgICAgICAgICAgIFBVU0godik7CiAgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKERFTEVURV9GQVNUKQotICAgICAgICAgICAgeCA9IEdFVExPQ0FMKG9wYXJnKTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIHsKKyAgICAgICAgVEFSR0VUKERFTEVURV9GQVNUKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqdiA9IEdFVExPQ0FMKG9wYXJnKTsKKyAgICAgICAgICAgIGlmICh2ICE9IE5VTEwpIHsKICAgICAgICAgICAgICAgICBTRVRMT0NBTChvcGFyZywgTlVMTCk7CiAgICAgICAgICAgICAgICAgRElTUEFUQ0goKTsKICAgICAgICAgICAgIH0KQEAgLTIxNjIsMjUyICsyMjM0LDMxMCBAQAogICAgICAgICAgICAgICAgIFVOQk9VTkRMT0NBTF9FUlJPUl9NU0csCiAgICAgICAgICAgICAgICAgUHlUdXBsZV9HZXRJdGVtKGNvLT5jb192YXJuYW1lcywgb3BhcmcpCiAgICAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChERUxFVEVfREVSRUYpCi0gICAgICAgICAgICB4ID0gZnJlZXZhcnNbb3BhcmddOwotICAgICAgICAgICAgaWYgKFB5Q2VsbF9HRVQoeCkgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFB5Q2VsbF9TZXQoeCwgTlVMTCk7CisgICAgICAgIFRBUkdFVChERUxFVEVfREVSRUYpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpjZWxsID0gZnJlZXZhcnNbb3BhcmddOworICAgICAgICAgICAgaWYgKFB5Q2VsbF9HRVQoY2VsbCkgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFB5Q2VsbF9TZXQoY2VsbCwgTlVMTCk7CiAgICAgICAgICAgICAgICAgRElTUEFUQ0goKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVyciA9IC0xOwogICAgICAgICAgICAgZm9ybWF0X2V4Y191bmJvdW5kKGNvLCBvcGFyZyk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoTE9BRF9DTE9TVVJFKQotICAgICAgICAgICAgeCA9IGZyZWV2YXJzW29wYXJnXTsKLSAgICAgICAgICAgIFB5X0lOQ1JFRih4KTsKLSAgICAgICAgICAgIFBVU0goeCk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKSBESVNQQVRDSCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgVEFSR0VUKExPQURfREVSRUYpCi0gICAgICAgICAgICB4ID0gZnJlZXZhcnNbb3BhcmddOwotICAgICAgICAgICAgdyA9IFB5Q2VsbF9HZXQoeCk7Ci0gICAgICAgICAgICBpZiAodyAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgUFVTSCh3KTsKLSAgICAgICAgICAgICAgICBESVNQQVRDSCgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZXJyID0gLTE7Ci0gICAgICAgICAgICBmb3JtYXRfZXhjX3VuYm91bmQoY28sIG9wYXJnKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIFRBUkdFVChTVE9SRV9ERVJFRikKLSAgICAgICAgICAgIHcgPSBQT1AoKTsKLSAgICAgICAgICAgIHggPSBmcmVldmFyc1tvcGFyZ107Ci0gICAgICAgICAgICBQeUNlbGxfU2V0KHgsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOworICAgICAgICBUQVJHRVQoTE9BRF9DTE9TVVJFKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqY2VsbCA9IGZyZWV2YXJzW29wYXJnXTsKKyAgICAgICAgICAgIFB5X0lOQ1JFRihjZWxsKTsKKyAgICAgICAgICAgIFBVU0goY2VsbCk7CiAgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKEJVSUxEX1RVUExFKQotICAgICAgICAgICAgeCA9IFB5VHVwbGVfTmV3KG9wYXJnKTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBmb3IgKDsgLS1vcGFyZyA+PSAwOykgewotICAgICAgICAgICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICAgICAgICAgIFB5VHVwbGVfU0VUX0lURU0oeCwgb3BhcmcsIHcpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBQVVNIKHgpOwotICAgICAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIFRBUkdFVChMT0FEX0NMQVNTREVSRUYpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpuYW1lLCAqdmFsdWUsICpsb2NhbHMgPSBmLT5mX2xvY2FsczsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgaWR4OworICAgICAgICAgICAgYXNzZXJ0KGxvY2Fscyk7CisgICAgICAgICAgICBhc3NlcnQob3BhcmcgPj0gUHlUdXBsZV9HRVRfU0laRShjby0+Y29fY2VsbHZhcnMpKTsKKyAgICAgICAgICAgIGlkeCA9IG9wYXJnIC0gUHlUdXBsZV9HRVRfU0laRShjby0+Y29fY2VsbHZhcnMpOworICAgICAgICAgICAgYXNzZXJ0KGlkeCA+PSAwICYmIGlkeCA8IFB5VHVwbGVfR0VUX1NJWkUoY28tPmNvX2ZyZWV2YXJzKSk7CisgICAgICAgICAgICBuYW1lID0gUHlUdXBsZV9HRVRfSVRFTShjby0+Y29fZnJlZXZhcnMsIGlkeCk7CisgICAgICAgICAgICBpZiAoUHlEaWN0X0NoZWNrRXhhY3QobG9jYWxzKSkgeworICAgICAgICAgICAgICAgIHZhbHVlID0gUHlEaWN0X0dldEl0ZW0obG9jYWxzLCBuYW1lKTsKKyAgICAgICAgICAgICAgICBQeV9YSU5DUkVGKHZhbHVlKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIFRBUkdFVChCVUlMRF9MSVNUKQotICAgICAgICAgICAgeCA9ICBQeUxpc3RfTmV3KG9wYXJnKTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBmb3IgKDsgLS1vcGFyZyA+PSAwOykgewotICAgICAgICAgICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICAgICAgICAgIFB5TGlzdF9TRVRfSVRFTSh4LCBvcGFyZywgdyk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IFB5T2JqZWN0X0dldEl0ZW0obG9jYWxzLCBuYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gTlVMTCAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19LZXlFcnJvcikpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBQVVNIKHgpOwotICAgICAgICAgICAgICAgIERJU1BBVENIKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBUQVJHRVQoQlVJTERfU0VUKQotICAgICAgICAgICAgeCA9IFB5U2V0X05ldyhOVUxMKTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBmb3IgKDsgLS1vcGFyZyA+PSAwOykgewotICAgICAgICAgICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChlcnIgPT0gMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGVyciA9IFB5U2V0X0FkZCh4LCB3KTsKLSAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHcpOworICAgICAgICAgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpjZWxsID0gZnJlZXZhcnNbb3BhcmddOworICAgICAgICAgICAgICAgIHZhbHVlID0gUHlDZWxsX0dFVChjZWxsKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBmb3JtYXRfZXhjX3VuYm91bmQoY28sIG9wYXJnKTsKKyAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGVyciAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih4KTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFBVU0goeCk7Ci0gICAgICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgICAgICAgICBQeV9JTkNSRUYodmFsdWUpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBQVVNIKHZhbHVlKTsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoQlVJTERfTUFQKQotICAgICAgICAgICAgeCA9IF9QeURpY3RfTmV3UHJlc2l6ZWQoKFB5X3NzaXplX3Qpb3BhcmcpOwotICAgICAgICAgICAgUFVTSCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBUQVJHRVQoU1RPUkVfTUFQKQotICAgICAgICAgICAgdyA9IFRPUCgpOyAgICAgLyoga2V5ICovCi0gICAgICAgICAgICB1ID0gU0VDT05EKCk7ICAvKiB2YWx1ZSAqLwotICAgICAgICAgICAgdiA9IFRISVJEKCk7ICAgLyogZGljdCAqLwotICAgICAgICAgICAgU1RBQ0tBREooLTIpOwotICAgICAgICAgICAgYXNzZXJ0IChQeURpY3RfQ2hlY2tFeGFjdCh2KSk7Ci0gICAgICAgICAgICBlcnIgPSBQeURpY3RfU2V0SXRlbSh2LCB3LCB1KTsgIC8qIHZbd10gPSB1ICovCi0gICAgICAgICAgICBQeV9ERUNSRUYodSk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodyk7Ci0gICAgICAgICAgICBpZiAoZXJyID09IDApIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBUQVJHRVQoTUFQX0FERCkKLSAgICAgICAgICAgIHcgPSBUT1AoKTsgICAgIC8qIGtleSAqLwotICAgICAgICAgICAgdSA9IFNFQ09ORCgpOyAgLyogdmFsdWUgKi8KLSAgICAgICAgICAgIFNUQUNLQURKKC0yKTsKLSAgICAgICAgICAgIHYgPSBzdGFja19wb2ludGVyWy1vcGFyZ107ICAvKiBkaWN0ICovCi0gICAgICAgICAgICBhc3NlcnQgKFB5RGljdF9DaGVja0V4YWN0KHYpKTsKLSAgICAgICAgICAgIGVyciA9IFB5RGljdF9TZXRJdGVtKHYsIHcsIHUpOyAgLyogdlt3XSA9IHUgKi8KLSAgICAgICAgICAgIFB5X0RFQ1JFRih1KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih3KTsKLSAgICAgICAgICAgIGlmIChlcnIgPT0gMCkgewotICAgICAgICAgICAgICAgIFBSRURJQ1QoSlVNUF9BQlNPTFVURSk7Ci0gICAgICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgVEFSR0VUKExPQURfREVSRUYpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpjZWxsID0gZnJlZXZhcnNbb3BhcmddOworICAgICAgICAgICAgUHlPYmplY3QgKnZhbHVlID0gUHlDZWxsX0dFVChjZWxsKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgZm9ybWF0X2V4Y191bmJvdW5kKGNvLCBvcGFyZyk7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgUHlfSU5DUkVGKHZhbHVlKTsKKyAgICAgICAgICAgIFBVU0godmFsdWUpOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChMT0FEX0FUVFIpCi0gICAgICAgICAgICB3ID0gR0VUSVRFTShuYW1lcywgb3BhcmcpOwotICAgICAgICAgICAgdiA9IFRPUCgpOwotICAgICAgICAgICAgeCA9IFB5T2JqZWN0X0dldEF0dHIodiwgdyk7CisgICAgICAgIFRBUkdFVChTVE9SRV9ERVJFRikgeworICAgICAgICAgICAgUHlPYmplY3QgKnYgPSBQT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpjZWxsID0gZnJlZXZhcnNbb3BhcmddOworICAgICAgICAgICAgUHlDZWxsX1NldChjZWxsLCB2KTsKICAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIFNFVF9UT1AoeCk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKSBESVNQQVRDSCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKENPTVBBUkVfT1ApCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gY21wX291dGNvbWUob3BhcmcsIHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgU0VUX1RPUCh4KTsKLSAgICAgICAgICAgIGlmICh4ID09IE5VTEwpIGJyZWFrOworICAgICAgICBUQVJHRVQoQlVJTERfVFVQTEUpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICp0dXAgPSBQeVR1cGxlX05ldyhvcGFyZyk7CisgICAgICAgICAgICBpZiAodHVwID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIHdoaWxlICgtLW9wYXJnID49IDApIHsKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqaXRlbSA9IFBPUCgpOworICAgICAgICAgICAgICAgIFB5VHVwbGVfU0VUX0lURU0odHVwLCBvcGFyZywgaXRlbSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBQVVNIKHR1cCk7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CisKKyAgICAgICAgVEFSR0VUKEJVSUxEX0xJU1QpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpsaXN0ID0gIFB5TGlzdF9OZXcob3BhcmcpOworICAgICAgICAgICAgaWYgKGxpc3QgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgd2hpbGUgKC0tb3BhcmcgPj0gMCkgeworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICppdGVtID0gUE9QKCk7CisgICAgICAgICAgICAgICAgUHlMaXN0X1NFVF9JVEVNKGxpc3QsIG9wYXJnLCBpdGVtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFBVU0gobGlzdCk7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CisKKyAgICAgICAgVEFSR0VUKEJVSUxEX1NFVCkgeworICAgICAgICAgICAgUHlPYmplY3QgKnNldCA9IFB5U2V0X05ldyhOVUxMKTsKKyAgICAgICAgICAgIGludCBlcnIgPSAwOworICAgICAgICAgICAgaWYgKHNldCA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICB3aGlsZSAoLS1vcGFyZyA+PSAwKSB7CisgICAgICAgICAgICAgICAgUHlPYmplY3QgKml0ZW0gPSBQT1AoKTsKKyAgICAgICAgICAgICAgICBpZiAoZXJyID09IDApCisgICAgICAgICAgICAgICAgICAgIGVyciA9IFB5U2V0X0FkZChzZXQsIGl0ZW0pOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihpdGVtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChlcnIgIT0gMCkgeworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihzZXQpOworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBQVVNIKHNldCk7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CisKKyAgICAgICAgVEFSR0VUKEJVSUxEX01BUCkgeworICAgICAgICAgICAgUHlPYmplY3QgKm1hcCA9IF9QeURpY3RfTmV3UHJlc2l6ZWQoKFB5X3NzaXplX3Qpb3BhcmcpOworICAgICAgICAgICAgaWYgKG1hcCA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBQVVNIKG1hcCk7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CisKKyAgICAgICAgVEFSR0VUKFNUT1JFX01BUCkgeworICAgICAgICAgICAgUHlPYmplY3QgKmtleSA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnZhbHVlID0gU0VDT05EKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqbWFwID0gVEhJUkQoKTsKKyAgICAgICAgICAgIGludCBlcnI7CisgICAgICAgICAgICBTVEFDS0FESigtMik7CisgICAgICAgICAgICBhc3NlcnQoUHlEaWN0X0NoZWNrRXhhY3QobWFwKSk7CisgICAgICAgICAgICBlcnIgPSBQeURpY3RfU2V0SXRlbShtYXAsIGtleSwgdmFsdWUpOworICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihrZXkpOworICAgICAgICAgICAgaWYgKGVyciAhPSAwKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CisKKyAgICAgICAgVEFSR0VUKE1BUF9BREQpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICprZXkgPSBUT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICp2YWx1ZSA9IFNFQ09ORCgpOworICAgICAgICAgICAgUHlPYmplY3QgKm1hcDsKKyAgICAgICAgICAgIGludCBlcnI7CisgICAgICAgICAgICBTVEFDS0FESigtMik7CisgICAgICAgICAgICBtYXAgPSBzdGFja19wb2ludGVyWy1vcGFyZ107ICAvKiBkaWN0ICovCisgICAgICAgICAgICBhc3NlcnQoUHlEaWN0X0NoZWNrRXhhY3QobWFwKSk7CisgICAgICAgICAgICBlcnIgPSBQeURpY3RfU2V0SXRlbShtYXAsIGtleSwgdmFsdWUpOyAgLyogdlt3XSA9IHUgKi8KKyAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CisgICAgICAgICAgICBQeV9ERUNSRUYoa2V5KTsKKyAgICAgICAgICAgIGlmIChlcnIgIT0gMCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgUFJFRElDVChKVU1QX0FCU09MVVRFKTsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KKworICAgICAgICBUQVJHRVQoTE9BRF9BVFRSKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqbmFtZSA9IEdFVElURU0obmFtZXMsIG9wYXJnKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpvd25lciA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnJlcyA9IFB5T2JqZWN0X0dldEF0dHIob3duZXIsIG5hbWUpOworICAgICAgICAgICAgUHlfREVDUkVGKG93bmVyKTsKKyAgICAgICAgICAgIFNFVF9UT1AocmVzKTsKKyAgICAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQorCisgICAgICAgIFRBUkdFVChDT01QQVJFX09QKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqcmlnaHQgPSBQT1AoKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpsZWZ0ID0gVE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqcmVzID0gY21wX291dGNvbWUob3BhcmcsIGxlZnQsIHJpZ2h0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihsZWZ0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihyaWdodCk7CisgICAgICAgICAgICBTRVRfVE9QKHJlcyk7CisgICAgICAgICAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIFBSRURJQ1QoUE9QX0pVTVBfSUZfRkFMU0UpOwogICAgICAgICAgICAgUFJFRElDVChQT1BfSlVNUF9JRl9UUlVFKTsKICAgICAgICAgICAgIERJU1BBVENIKCk7Ci0KLSAgICAgICAgVEFSR0VUKElNUE9SVF9OQU1FKQotICAgICAgICB7Ci0gICAgICAgICAgICBfUHlfSURFTlRJRklFUihfX2ltcG9ydF9fKTsKLSAgICAgICAgICAgIHcgPSBHRVRJVEVNKG5hbWVzLCBvcGFyZyk7Ci0gICAgICAgICAgICB4ID0gX1B5RGljdF9HZXRJdGVtSWQoZi0+Zl9idWlsdGlucywgJlB5SWRfX19pbXBvcnRfXyk7Ci0gICAgICAgICAgICBpZiAoeCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0ltcG9ydEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiX19pbXBvcnRfXyBub3QgZm91bmQiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFB5X0lOQ1JFRih4KTsKLSAgICAgICAgICAgIHYgPSBQT1AoKTsKLSAgICAgICAgICAgIHUgPSBUT1AoKTsKLSAgICAgICAgICAgIGlmIChQeUxvbmdfQXNMb25nKHUpICE9IC0xIHx8IFB5RXJyX09jY3VycmVkKCkpCi0gICAgICAgICAgICAgICAgdyA9IFB5VHVwbGVfUGFjayg1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZi0+Zl9nbG9iYWxzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYtPmZfbG9jYWxzID09IE5VTEwgPwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X05vbmUgOiBmLT5mX2xvY2FscywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHcgPSBQeVR1cGxlX1BhY2soNCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYtPmZfZ2xvYmFscywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLT5mX2xvY2FscyA9PSBOVUxMID8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9Ob25lIDogZi0+Zl9sb2NhbHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodSk7Ci0gICAgICAgICAgICBpZiAodyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgdSA9IFBPUCgpOwotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih4KTsKLSAgICAgICAgICAgICAgICB4ID0gTlVMTDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFJFQURfVElNRVNUQU1QKGludHIwKTsKLSAgICAgICAgICAgIHYgPSB4OwotICAgICAgICAgICAgeCA9IFB5RXZhbF9DYWxsT2JqZWN0KHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUkVBRF9USU1FU1RBTVAoaW50cjEpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgU0VUX1RPUCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChJTVBPUlRfU1RBUikKLSAgICAgICAgICAgIHYgPSBQT1AoKTsKKyAgICAgICAgVEFSR0VUKElNUE9SVF9OQU1FKSB7CisgICAgICAgICAgICBfUHlfSURFTlRJRklFUihfX2ltcG9ydF9fKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpuYW1lID0gR0VUSVRFTShuYW1lcywgb3BhcmcpOworICAgICAgICAgICAgUHlPYmplY3QgKmZ1bmMgPSBfUHlEaWN0X0dldEl0ZW1JZChmLT5mX2J1aWx0aW5zLCAmUHlJZF9fX2ltcG9ydF9fKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpmcm9tLCAqbGV2ZWwsICphcmdzLCAqcmVzOworICAgICAgICAgICAgaWYgKGZ1bmMgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbXBvcnRFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9faW1wb3J0X18gbm90IGZvdW5kIik7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFB5X0lOQ1JFRihmdW5jKTsKKyAgICAgICAgICAgIGZyb20gPSBQT1AoKTsKKyAgICAgICAgICAgIGxldmVsID0gVE9QKCk7CisgICAgICAgICAgICBpZiAoUHlMb25nX0FzTG9uZyhsZXZlbCkgIT0gLTEgfHwgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgICAgICBhcmdzID0gUHlUdXBsZV9QYWNrKDUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLT5mX2dsb2JhbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi0+Zl9sb2NhbHMgPT0gTlVMTCA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfTm9uZSA6IGYtPmZfbG9jYWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWwpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGFyZ3MgPSBQeVR1cGxlX1BhY2soNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYtPmZfZ2xvYmFscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLT5mX2xvY2FscyA9PSBOVUxMID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9Ob25lIDogZi0+Zl9sb2NhbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSk7CisgICAgICAgICAgICBQeV9ERUNSRUYobGV2ZWwpOworICAgICAgICAgICAgUHlfREVDUkVGKGZyb20pOworICAgICAgICAgICAgaWYgKGFyZ3MgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihmdW5jKTsKKyAgICAgICAgICAgICAgICBTVEFDS0FESigtMSk7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFJFQURfVElNRVNUQU1QKGludHIwKTsKKyAgICAgICAgICAgIHJlcyA9IFB5RXZhbF9DYWxsT2JqZWN0KGZ1bmMsIGFyZ3MpOworICAgICAgICAgICAgUkVBRF9USU1FU1RBTVAoaW50cjEpOworICAgICAgICAgICAgUHlfREVDUkVGKGFyZ3MpOworICAgICAgICAgICAgUHlfREVDUkVGKGZ1bmMpOworICAgICAgICAgICAgU0VUX1RPUChyZXMpOworICAgICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CisKKyAgICAgICAgVEFSR0VUKElNUE9SVF9TVEFSKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqZnJvbSA9IFBPUCgpLCAqbG9jYWxzOworICAgICAgICAgICAgaW50IGVycjsKICAgICAgICAgICAgIFB5RnJhbWVfRmFzdFRvTG9jYWxzKGYpOwotICAgICAgICAgICAgaWYgKCh4ID0gZi0+Zl9sb2NhbHMpID09IE5VTEwpIHsKKyAgICAgICAgICAgIGxvY2FscyA9IGYtPmZfbG9jYWxzOworICAgICAgICAgICAgaWYgKGxvY2FscyA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1N5c3RlbUVycm9yLAogICAgICAgICAgICAgICAgICAgICAibm8gbG9jYWxzIGZvdW5kIGR1cmluZyAnaW1wb3J0IConIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFJFQURfVElNRVNUQU1QKGludHIwKTsKLSAgICAgICAgICAgIGVyciA9IGltcG9ydF9hbGxfZnJvbSh4LCB2KTsKKyAgICAgICAgICAgIGVyciA9IGltcG9ydF9hbGxfZnJvbShsb2NhbHMsIGZyb20pOwogICAgICAgICAgICAgUkVBRF9USU1FU1RBTVAoaW50cjEpOwogICAgICAgICAgICAgUHlGcmFtZV9Mb2NhbHNUb0Zhc3QoZiwgMCk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBpZiAoZXJyID09IDApIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihmcm9tKTsKKyAgICAgICAgICAgIGlmIChlcnIgIT0gMCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChJTVBPUlRfRlJPTSkKLSAgICAgICAgICAgIHcgPSBHRVRJVEVNKG5hbWVzLCBvcGFyZyk7Ci0gICAgICAgICAgICB2ID0gVE9QKCk7CisgICAgICAgIFRBUkdFVChJTVBPUlRfRlJPTSkgeworICAgICAgICAgICAgUHlPYmplY3QgKm5hbWUgPSBHRVRJVEVNKG5hbWVzLCBvcGFyZyk7CisgICAgICAgICAgICBQeU9iamVjdCAqZnJvbSA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKnJlczsKICAgICAgICAgICAgIFJFQURfVElNRVNUQU1QKGludHIwKTsKLSAgICAgICAgICAgIHggPSBpbXBvcnRfZnJvbSh2LCB3KTsKKyAgICAgICAgICAgIHJlcyA9IGltcG9ydF9mcm9tKGZyb20sIG5hbWUpOwogICAgICAgICAgICAgUkVBRF9USU1FU1RBTVAoaW50cjEpOwotICAgICAgICAgICAgUFVTSCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIFBVU0gocmVzKTsKKyAgICAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChKVU1QX0ZPUldBUkQpCisgICAgICAgIFRBUkdFVChKVU1QX0ZPUldBUkQpIHsKICAgICAgICAgICAgIEpVTVBCWShvcGFyZyk7CiAgICAgICAgICAgICBGQVNUX0RJU1BBVENIKCk7CisgICAgICAgIH0KIAogICAgICAgICBQUkVESUNURURfV0lUSF9BUkcoUE9QX0pVTVBfSUZfRkFMU0UpOwotICAgICAgICBUQVJHRVQoUE9QX0pVTVBfSUZfRkFMU0UpCi0gICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICBpZiAodyA9PSBQeV9UcnVlKSB7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKHcpOworICAgICAgICBUQVJHRVQoUE9QX0pVTVBfSUZfRkFMU0UpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpjb25kID0gUE9QKCk7CisgICAgICAgICAgICBpbnQgZXJyOworICAgICAgICAgICAgaWYgKGNvbmQgPT0gUHlfVHJ1ZSkgeworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihjb25kKTsKICAgICAgICAgICAgICAgICBGQVNUX0RJU1BBVENIKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAodyA9PSBQeV9GYWxzZSkgewotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih3KTsKKyAgICAgICAgICAgIGlmIChjb25kID09IFB5X0ZhbHNlKSB7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGNvbmQpOwogICAgICAgICAgICAgICAgIEpVTVBUTyhvcGFyZyk7CiAgICAgICAgICAgICAgICAgRkFTVF9ESVNQQVRDSCgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZXJyID0gUHlPYmplY3RfSXNUcnVlKHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOworICAgICAgICAgICAgZXJyID0gUHlPYmplY3RfSXNUcnVlKGNvbmQpOworICAgICAgICAgICAgUHlfREVDUkVGKGNvbmQpOwogICAgICAgICAgICAgaWYgKGVyciA+IDApCiAgICAgICAgICAgICAgICAgZXJyID0gMDsKICAgICAgICAgICAgIGVsc2UgaWYgKGVyciA9PSAwKQogICAgICAgICAgICAgICAgIEpVTVBUTyhvcGFyZyk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAogICAgICAgICBQUkVESUNURURfV0lUSF9BUkcoUE9QX0pVTVBfSUZfVFJVRSk7Ci0gICAgICAgIFRBUkdFVChQT1BfSlVNUF9JRl9UUlVFKQotICAgICAgICAgICAgdyA9IFBPUCgpOwotICAgICAgICAgICAgaWYgKHcgPT0gUHlfRmFsc2UpIHsKLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYodyk7CisgICAgICAgIFRBUkdFVChQT1BfSlVNUF9JRl9UUlVFKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqY29uZCA9IFBPUCgpOworICAgICAgICAgICAgaW50IGVycjsKKyAgICAgICAgICAgIGlmIChjb25kID09IFB5X0ZhbHNlKSB7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGNvbmQpOwogICAgICAgICAgICAgICAgIEZBU1RfRElTUEFUQ0goKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh3ID09IFB5X1RydWUpIHsKLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYodyk7CisgICAgICAgICAgICBpZiAoY29uZCA9PSBQeV9UcnVlKSB7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGNvbmQpOwogICAgICAgICAgICAgICAgIEpVTVBUTyhvcGFyZyk7CiAgICAgICAgICAgICAgICAgRkFTVF9ESVNQQVRDSCgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZXJyID0gUHlPYmplY3RfSXNUcnVlKHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHcpOworICAgICAgICAgICAgZXJyID0gUHlPYmplY3RfSXNUcnVlKGNvbmQpOworICAgICAgICAgICAgUHlfREVDUkVGKGNvbmQpOwogICAgICAgICAgICAgaWYgKGVyciA+IDApIHsKICAgICAgICAgICAgICAgICBlcnIgPSAwOwogICAgICAgICAgICAgICAgIEpVTVBUTyhvcGFyZyk7CkBAIC0yNDE1LDU4ICsyNTQ1LDYzIEBACiAgICAgICAgICAgICBlbHNlIGlmIChlcnIgPT0gMCkKICAgICAgICAgICAgICAgICA7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoSlVNUF9JRl9GQUxTRV9PUl9QT1ApCi0gICAgICAgICAgICB3ID0gVE9QKCk7Ci0gICAgICAgICAgICBpZiAodyA9PSBQeV9UcnVlKSB7CisgICAgICAgIFRBUkdFVChKVU1QX0lGX0ZBTFNFX09SX1BPUCkgeworICAgICAgICAgICAgUHlPYmplY3QgKmNvbmQgPSBUT1AoKTsKKyAgICAgICAgICAgIGludCBlcnI7CisgICAgICAgICAgICBpZiAoY29uZCA9PSBQeV9UcnVlKSB7CiAgICAgICAgICAgICAgICAgU1RBQ0tBREooLTEpOwotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih3KTsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYoY29uZCk7CiAgICAgICAgICAgICAgICAgRkFTVF9ESVNQQVRDSCgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHcgPT0gUHlfRmFsc2UpIHsKKyAgICAgICAgICAgIGlmIChjb25kID09IFB5X0ZhbHNlKSB7CiAgICAgICAgICAgICAgICAgSlVNUFRPKG9wYXJnKTsKICAgICAgICAgICAgICAgICBGQVNUX0RJU1BBVENIKCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlcnIgPSBQeU9iamVjdF9Jc1RydWUodyk7CisgICAgICAgICAgICBlcnIgPSBQeU9iamVjdF9Jc1RydWUoY29uZCk7CiAgICAgICAgICAgICBpZiAoZXJyID4gMCkgewogICAgICAgICAgICAgICAgIFNUQUNLQURKKC0xKTsKLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYodyk7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGNvbmQpOwogICAgICAgICAgICAgICAgIGVyciA9IDA7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIGlmIChlcnIgPT0gMCkKICAgICAgICAgICAgICAgICBKVU1QVE8ob3BhcmcpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKEpVTVBfSUZfVFJVRV9PUl9QT1ApCi0gICAgICAgICAgICB3ID0gVE9QKCk7Ci0gICAgICAgICAgICBpZiAodyA9PSBQeV9GYWxzZSkgeworICAgICAgICBUQVJHRVQoSlVNUF9JRl9UUlVFX09SX1BPUCkgeworICAgICAgICAgICAgUHlPYmplY3QgKmNvbmQgPSBUT1AoKTsKKyAgICAgICAgICAgIGludCBlcnI7CisgICAgICAgICAgICBpZiAoY29uZCA9PSBQeV9GYWxzZSkgewogICAgICAgICAgICAgICAgIFNUQUNLQURKKC0xKTsKLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYodyk7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGNvbmQpOwogICAgICAgICAgICAgICAgIEZBU1RfRElTUEFUQ0goKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh3ID09IFB5X1RydWUpIHsKKyAgICAgICAgICAgIGlmIChjb25kID09IFB5X1RydWUpIHsKICAgICAgICAgICAgICAgICBKVU1QVE8ob3BhcmcpOwogICAgICAgICAgICAgICAgIEZBU1RfRElTUEFUQ0goKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVyciA9IFB5T2JqZWN0X0lzVHJ1ZSh3KTsKKyAgICAgICAgICAgIGVyciA9IFB5T2JqZWN0X0lzVHJ1ZShjb25kKTsKICAgICAgICAgICAgIGlmIChlcnIgPiAwKSB7CiAgICAgICAgICAgICAgICAgZXJyID0gMDsKICAgICAgICAgICAgICAgICBKVU1QVE8ob3BhcmcpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSBpZiAoZXJyID09IDApIHsKICAgICAgICAgICAgICAgICBTVEFDS0FESigtMSk7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKHcpOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihjb25kKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCiAgICAgICAgIFBSRURJQ1RFRF9XSVRIX0FSRyhKVU1QX0FCU09MVVRFKTsKLSAgICAgICAgVEFSR0VUKEpVTVBfQUJTT0xVVEUpCisgICAgICAgIFRBUkdFVChKVU1QX0FCU09MVVRFKSB7CiAgICAgICAgICAgICBKVU1QVE8ob3BhcmcpOwogI2lmIEZBU1RfTE9PUFMKICAgICAgICAgICAgIC8qIEVuYWJsaW5nIHRoaXMgcGF0aCBzcGVlZHMtdXAgYWxsIHdoaWxlIGFuZCBmb3ItbG9vcHMgYnkgYnlwYXNzaW5nCkBAIC0yNDgwLDYwICsyNjE1LDYwIEBACiAjZWxzZQogICAgICAgICAgICAgRElTUEFUQ0goKTsKICNlbmRpZgorICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKEdFVF9JVEVSKQorICAgICAgICBUQVJHRVQoR0VUX0lURVIpIHsKICAgICAgICAgICAgIC8qIGJlZm9yZTogW29ial07IGFmdGVyIFtnZXRpdGVyKG9iaildICovCi0gICAgICAgICAgICB2ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gUHlPYmplY3RfR2V0SXRlcih2KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBTRVRfVE9QKHgpOwotICAgICAgICAgICAgICAgIFBSRURJQ1QoRk9SX0lURVIpOwotICAgICAgICAgICAgICAgIERJU1BBVENIKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBTVEFDS0FESigtMSk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIFB5T2JqZWN0ICppdGVyYWJsZSA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKml0ZXIgPSBQeU9iamVjdF9HZXRJdGVyKGl0ZXJhYmxlKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihpdGVyYWJsZSk7CisgICAgICAgICAgICBTRVRfVE9QKGl0ZXIpOworICAgICAgICAgICAgaWYgKGl0ZXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgUFJFRElDVChGT1JfSVRFUik7CisgICAgICAgICAgICBESVNQQVRDSCgpOworICAgICAgICB9CiAKICAgICAgICAgUFJFRElDVEVEX1dJVEhfQVJHKEZPUl9JVEVSKTsKLSAgICAgICAgVEFSR0VUKEZPUl9JVEVSKQorICAgICAgICBUQVJHRVQoRk9SX0lURVIpIHsKICAgICAgICAgICAgIC8qIGJlZm9yZTogW2l0ZXJdOyBhZnRlcjogW2l0ZXIsIGl0ZXIoKV0gKm9yKiBbXSAqLwotICAgICAgICAgICAgdiA9IFRPUCgpOwotICAgICAgICAgICAgeCA9ICgqdi0+b2JfdHlwZS0+dHBfaXRlcm5leHQpKHYpOwotICAgICAgICAgICAgaWYgKHggIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFBVU0goeCk7CisgICAgICAgICAgICBQeU9iamVjdCAqaXRlciA9IFRPUCgpOworICAgICAgICAgICAgUHlPYmplY3QgKm5leHQgPSAoKml0ZXItPm9iX3R5cGUtPnRwX2l0ZXJuZXh0KShpdGVyKTsKKyAgICAgICAgICAgIGlmIChuZXh0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBQVVNIKG5leHQpOwogICAgICAgICAgICAgICAgIFBSRURJQ1QoU1RPUkVfRkFTVCk7CiAgICAgICAgICAgICAgICAgUFJFRElDVChVTlBBQ0tfU0VRVUVOQ0UpOwogICAgICAgICAgICAgICAgIERJU1BBVENIKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkgewotICAgICAgICAgICAgICAgIGlmICghUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFeGNfU3RvcEl0ZXJhdGlvbikpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGlmICghUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19TdG9wSXRlcmF0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgLyogaXRlcmF0b3IgZW5kZWQgbm9ybWFsbHkgKi8KLSAgICAgICAgICAgIHggPSB2ID0gUE9QKCk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7CisgICAgICAgICAgICBTVEFDS0FESigtMSk7CisgICAgICAgICAgICBQeV9ERUNSRUYoaXRlcik7CiAgICAgICAgICAgICBKVU1QQlkob3BhcmcpOwogICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChCUkVBS19MT09QKQorICAgICAgICBUQVJHRVQoQlJFQUtfTE9PUCkgewogICAgICAgICAgICAgd2h5ID0gV0hZX0JSRUFLOwogICAgICAgICAgICAgZ290byBmYXN0X2Jsb2NrX2VuZDsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChDT05USU5VRV9MT09QKQorICAgICAgICBUQVJHRVQoQ09OVElOVUVfTE9PUCkgewogICAgICAgICAgICAgcmV0dmFsID0gUHlMb25nX0Zyb21Mb25nKG9wYXJnKTsKLSAgICAgICAgICAgIGlmICghcmV0dmFsKSB7Ci0gICAgICAgICAgICAgICAgeCA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAocmV0dmFsID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIHdoeSA9IFdIWV9DT05USU5VRTsKICAgICAgICAgICAgIGdvdG8gZmFzdF9ibG9ja19lbmQ7CisgICAgICAgIH0KIAogICAgICAgICBUQVJHRVRfV0lUSF9JTVBMKFNFVFVQX0xPT1AsIF9zZXR1cF9maW5hbGx5KQogICAgICAgICBUQVJHRVRfV0lUSF9JTVBMKFNFVFVQX0VYQ0VQVCwgX3NldHVwX2ZpbmFsbHkpCiAgICAgICAgIFRBUkdFVChTRVRVUF9GSU5BTExZKQotICAgICAgICBfc2V0dXBfZmluYWxseToKKyAgICAgICAgX3NldHVwX2ZpbmFsbHk6IHsKICAgICAgICAgICAgIC8qIE5PVEU6IElmIHlvdSBhZGQgYW55IG5ldyBibG9jay1zZXR1cCBvcGNvZGVzIHRoYXQKICAgICAgICAgICAgICAgIGFyZSBub3QgdHJ5L2V4Y2VwdC9maW5hbGx5IGhhbmRsZXJzLCB5b3UgbWF5IG5lZWQKICAgICAgICAgICAgICAgIHRvIHVwZGF0ZSB0aGUgUHlHZW5fTmVlZHNGaW5hbGl6aW5nKCkgZnVuY3Rpb24uCkBAIC0yNTQyLDM3ICsyNjc3LDM1IEBACiAgICAgICAgICAgICBQeUZyYW1lX0Jsb2NrU2V0dXAoZiwgb3Bjb2RlLCBJTlNUUl9PRkZTRVQoKSArIG9wYXJnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUQUNLX0xFVkVMKCkpOwogICAgICAgICAgICAgRElTUEFUQ0goKTsKKyAgICAgICAgfQogCi0gICAgICAgIFRBUkdFVChTRVRVUF9XSVRIKQotICAgICAgICB7CisgICAgICAgIFRBUkdFVChTRVRVUF9XSVRIKSB7CiAgICAgICAgICAgICBfUHlfSURFTlRJRklFUihfX2V4aXRfXyk7CiAgICAgICAgICAgICBfUHlfSURFTlRJRklFUihfX2VudGVyX18pOwotICAgICAgICAgICAgdyA9IFRPUCgpOwotICAgICAgICAgICAgeCA9IHNwZWNpYWxfbG9va3VwKHcsICZQeUlkX19fZXhpdF9fKTsKLSAgICAgICAgICAgIGlmICgheCkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIFNFVF9UT1AoeCk7Ci0gICAgICAgICAgICB1ID0gc3BlY2lhbF9sb29rdXAodywgJlB5SWRfX19lbnRlcl9fKTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih3KTsKLSAgICAgICAgICAgIGlmICghdSkgewotICAgICAgICAgICAgICAgIHggPSBOVUxMOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgeCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3ModSwgTlVMTCk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodSk7Ci0gICAgICAgICAgICBpZiAoIXgpCi0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBQeU9iamVjdCAqbWdyID0gVE9QKCk7CisgICAgICAgICAgICBQeU9iamVjdCAqZXhpdCA9IHNwZWNpYWxfbG9va3VwKG1nciwgJlB5SWRfX19leGl0X18pLCAqZW50ZXI7CisgICAgICAgICAgICBQeU9iamVjdCAqcmVzOworICAgICAgICAgICAgaWYgKGV4aXQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgU0VUX1RPUChleGl0KTsKKyAgICAgICAgICAgIGVudGVyID0gc3BlY2lhbF9sb29rdXAobWdyLCAmUHlJZF9fX2VudGVyX18pOworICAgICAgICAgICAgUHlfREVDUkVGKG1ncik7CisgICAgICAgICAgICBpZiAoZW50ZXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgcmVzID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhlbnRlciwgTlVMTCk7CisgICAgICAgICAgICBQeV9ERUNSRUYoZW50ZXIpOworICAgICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICAvKiBTZXR1cCB0aGUgZmluYWxseSBibG9jayBiZWZvcmUgcHVzaGluZyB0aGUgcmVzdWx0CiAgICAgICAgICAgICAgICBvZiBfX2VudGVyX18gb24gdGhlIHN0YWNrLiAqLwogICAgICAgICAgICAgUHlGcmFtZV9CbG9ja1NldHVwKGYsIFNFVFVQX0ZJTkFMTFksIElOU1RSX09GRlNFVCgpICsgb3BhcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBQ0tfTEVWRUwoKSk7CiAKLSAgICAgICAgICAgIFBVU0goeCk7CisgICAgICAgICAgICBQVVNIKHJlcyk7CiAgICAgICAgICAgICBESVNQQVRDSCgpOwogICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKFdJVEhfQ0xFQU5VUCkKLSAgICAgICAgeworICAgICAgICBUQVJHRVQoV0lUSF9DTEVBTlVQKSB7CiAgICAgICAgICAgICAvKiBBdCB0aGUgdG9wIG9mIHRoZSBzdGFjayBhcmUgMS0zIHZhbHVlcyBpbmRpY2F0aW5nCiAgICAgICAgICAgICAgICBob3cvd2h5IHdlIGVudGVyZWQgdGhlIGZpbmFsbHkgY2xhdXNlOgogICAgICAgICAgICAgICAgLSBUT1AgPSBOb25lCkBAIC0yNTk5LDQyICsyNzMyLDQyIEBACiAgICAgICAgICAgICAqLwogCiAgICAgICAgICAgICBQeU9iamVjdCAqZXhpdF9mdW5jOwotICAgICAgICAgICAgdSA9IFRPUCgpOwotICAgICAgICAgICAgaWYgKHUgPT0gUHlfTm9uZSkgeworICAgICAgICAgICAgUHlPYmplY3QgKmV4YyA9IFRPUCgpLCAqdmFsID0gUHlfTm9uZSwgKnRiID0gUHlfTm9uZSwgKnJlczsKKyAgICAgICAgICAgIGludCBlcnI7CisgICAgICAgICAgICBpZiAoZXhjID09IFB5X05vbmUpIHsKICAgICAgICAgICAgICAgICAodm9pZClQT1AoKTsKICAgICAgICAgICAgICAgICBleGl0X2Z1bmMgPSBUT1AoKTsKLSAgICAgICAgICAgICAgICBTRVRfVE9QKHUpOwotICAgICAgICAgICAgICAgIHYgPSB3ID0gUHlfTm9uZTsKKyAgICAgICAgICAgICAgICBTRVRfVE9QKGV4Yyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChQeUxvbmdfQ2hlY2sodSkpIHsKLSAgICAgICAgICAgICAgICAodm9pZClQT1AoKTsKLSAgICAgICAgICAgICAgICBzd2l0Y2goUHlMb25nX0FzTG9uZyh1KSkgeworICAgICAgICAgICAgZWxzZSBpZiAoUHlMb25nX0NoZWNrKGV4YykpIHsKKyAgICAgICAgICAgICAgICBTVEFDS0FESigtMSk7CisgICAgICAgICAgICAgICAgc3dpdGNoIChQeUxvbmdfQXNMb25nKGV4YykpIHsKICAgICAgICAgICAgICAgICBjYXNlIFdIWV9SRVRVUk46CiAgICAgICAgICAgICAgICAgY2FzZSBXSFlfQ09OVElOVUU6CiAgICAgICAgICAgICAgICAgICAgIC8qIFJldHZhbCBpbiBUT1AuICovCiAgICAgICAgICAgICAgICAgICAgIGV4aXRfZnVuYyA9IFNFQ09ORCgpOwogICAgICAgICAgICAgICAgICAgICBTRVRfU0VDT05EKFRPUCgpKTsKLSAgICAgICAgICAgICAgICAgICAgU0VUX1RPUCh1KTsKKyAgICAgICAgICAgICAgICAgICAgU0VUX1RPUChleGMpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBleGl0X2Z1bmMgPSBUT1AoKTsKLSAgICAgICAgICAgICAgICAgICAgU0VUX1RPUCh1KTsKKyAgICAgICAgICAgICAgICAgICAgU0VUX1RPUChleGMpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdSA9IHYgPSB3ID0gUHlfTm9uZTsKKyAgICAgICAgICAgICAgICBleGMgPSBQeV9Ob25lOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgUHlPYmplY3QgKnRwLCAqZXhjLCAqdGI7CisgICAgICAgICAgICAgICAgUHlPYmplY3QgKnRwMiwgKmV4YzIsICp0YjI7CiAgICAgICAgICAgICAgICAgUHlUcnlCbG9jayAqYmxvY2s7Ci0gICAgICAgICAgICAgICAgdiA9IFNFQ09ORCgpOwotICAgICAgICAgICAgICAgIHcgPSBUSElSRCgpOwotICAgICAgICAgICAgICAgIHRwID0gRk9VUlRIKCk7Ci0gICAgICAgICAgICAgICAgZXhjID0gUEVFSyg1KTsKLSAgICAgICAgICAgICAgICB0YiA9IFBFRUsoNik7CisgICAgICAgICAgICAgICAgdmFsID0gU0VDT05EKCk7CisgICAgICAgICAgICAgICAgdGIgPSBUSElSRCgpOworICAgICAgICAgICAgICAgIHRwMiA9IEZPVVJUSCgpOworICAgICAgICAgICAgICAgIGV4YzIgPSBQRUVLKDUpOworICAgICAgICAgICAgICAgIHRiMiA9IFBFRUsoNik7CiAgICAgICAgICAgICAgICAgZXhpdF9mdW5jID0gUEVFSyg3KTsKLSAgICAgICAgICAgICAgICBTRVRfVkFMVUUoNywgdGIpOwotICAgICAgICAgICAgICAgIFNFVF9WQUxVRSg2LCBleGMpOwotICAgICAgICAgICAgICAgIFNFVF9WQUxVRSg1LCB0cCk7CisgICAgICAgICAgICAgICAgU0VUX1ZBTFVFKDcsIHRiMik7CisgICAgICAgICAgICAgICAgU0VUX1ZBTFVFKDYsIGV4YzIpOworICAgICAgICAgICAgICAgIFNFVF9WQUxVRSg1LCB0cDIpOwogICAgICAgICAgICAgICAgIC8qIFVOV0lORF9FWENFUFRfSEFORExFUiB3aWxsIHBvcCB0aGlzIG9mZi4gKi8KICAgICAgICAgICAgICAgICBTRVRfRk9VUlRIKE5VTEwpOwogICAgICAgICAgICAgICAgIC8qIFdlIGp1c3Qgc2hpZnRlZCB0aGUgc3RhY2sgZG93biwgc28gd2UgaGF2ZQpAQCAtMjY0NSw1NiArMjc3OCw1MyBAQAogICAgICAgICAgICAgICAgIGJsb2NrLT5iX2xldmVsLS07CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvKiBYWFggTm90IHRoZSBmYXN0ZXN0IHdheSB0byBjYWxsIGl0Li4uICovCi0gICAgICAgICAgICB4ID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhleGl0X2Z1bmMsIHUsIHYsIHcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgICAgIHJlcyA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoZXhpdF9mdW5jLCBleGMsIHZhbCwgdGIsIE5VTEwpOwogICAgICAgICAgICAgUHlfREVDUkVGKGV4aXRfZnVuYyk7Ci0gICAgICAgICAgICBpZiAoeCA9PSBOVUxMKQotICAgICAgICAgICAgICAgIGJyZWFrOyAvKiBHbyB0byBlcnJvciBleGl0ICovCisgICAgICAgICAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKIAotICAgICAgICAgICAgaWYgKHUgIT0gUHlfTm9uZSkKLSAgICAgICAgICAgICAgICBlcnIgPSBQeU9iamVjdF9Jc1RydWUoeCk7CisgICAgICAgICAgICBpZiAoZXhjICE9IFB5X05vbmUpCisgICAgICAgICAgICAgICAgZXJyID0gUHlPYmplY3RfSXNUcnVlKHJlcyk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgZXJyID0gMDsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih4KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihyZXMpOwogCiAgICAgICAgICAgICBpZiAoZXJyIDwgMCkKLSAgICAgICAgICAgICAgICBicmVhazsgLyogR28gdG8gZXJyb3IgZXhpdCAqLworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICBlbHNlIGlmIChlcnIgPiAwKSB7CiAgICAgICAgICAgICAgICAgZXJyID0gMDsKICAgICAgICAgICAgICAgICAvKiBUaGVyZSB3YXMgYW4gZXhjZXB0aW9uIGFuZCBhIFRydWUgcmV0dXJuICovCiAgICAgICAgICAgICAgICAgUFVTSChQeUxvbmdfRnJvbUxvbmcoKGxvbmcpIFdIWV9TSUxFTkNFRCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgUFJFRElDVChFTkRfRklOQUxMWSk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CiAgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoQ0FMTF9GVU5DVElPTikKLSAgICAgICAgewotICAgICAgICAgICAgUHlPYmplY3QgKipzcDsKKyAgICAgICAgVEFSR0VUKENBTExfRlVOQ1RJT04pIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICoqc3AsICpyZXM7CiAgICAgICAgICAgICBQQ0FMTChQQ0FMTF9BTEwpOwogICAgICAgICAgICAgc3AgPSBzdGFja19wb2ludGVyOwogI2lmZGVmIFdJVEhfVFNDCi0gICAgICAgICAgICB4ID0gY2FsbF9mdW5jdGlvbigmc3AsIG9wYXJnLCAmaW50cjAsICZpbnRyMSk7CisgICAgICAgICAgICByZXMgPSBjYWxsX2Z1bmN0aW9uKCZzcCwgb3BhcmcsICZpbnRyMCwgJmludHIxKTsKICNlbHNlCi0gICAgICAgICAgICB4ID0gY2FsbF9mdW5jdGlvbigmc3AsIG9wYXJnKTsKKyAgICAgICAgICAgIHJlcyA9IGNhbGxfZnVuY3Rpb24oJnNwLCBvcGFyZyk7CiAjZW5kaWYKICAgICAgICAgICAgIHN0YWNrX3BvaW50ZXIgPSBzcDsKLSAgICAgICAgICAgIFBVU0goeCk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKQotICAgICAgICAgICAgICAgIERJU1BBVENIKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIFBVU0gocmVzKTsKKyAgICAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgRElTUEFUQ0goKTsKICAgICAgICAgfQogCiAgICAgICAgIFRBUkdFVF9XSVRIX0lNUEwoQ0FMTF9GVU5DVElPTl9WQVIsIF9jYWxsX2Z1bmN0aW9uX3Zhcl9rdykKICAgICAgICAgVEFSR0VUX1dJVEhfSU1QTChDQUxMX0ZVTkNUSU9OX0tXLCBfY2FsbF9mdW5jdGlvbl92YXJfa3cpCiAgICAgICAgIFRBUkdFVChDQUxMX0ZVTkNUSU9OX1ZBUl9LVykKLSAgICAgICAgX2NhbGxfZnVuY3Rpb25fdmFyX2t3OgotICAgICAgICB7CisgICAgICAgIF9jYWxsX2Z1bmN0aW9uX3Zhcl9rdzogewogICAgICAgICAgICAgaW50IG5hID0gb3BhcmcgJiAweGZmOwogICAgICAgICAgICAgaW50IG5rID0gKG9wYXJnPj44KSAmIDB4ZmY7CiAgICAgICAgICAgICBpbnQgZmxhZ3MgPSAob3Bjb2RlIC0gQ0FMTF9GVU5DVElPTikgJiAzOwogICAgICAgICAgICAgaW50IG4gPSBuYSArIDIgKiBuazsKLSAgICAgICAgICAgIFB5T2JqZWN0ICoqcGZ1bmMsICpmdW5jLCAqKnNwOworICAgICAgICAgICAgUHlPYmplY3QgKipwZnVuYywgKmZ1bmMsICoqc3AsICpyZXM7CiAgICAgICAgICAgICBQQ0FMTChQQ0FMTF9BTEwpOwogICAgICAgICAgICAgaWYgKGZsYWdzICYgQ0FMTF9GTEFHX1ZBUikKICAgICAgICAgICAgICAgICBuKys7CkBAIC0yNzE3LDEzNyArMjg0NywxNTYgQEAKICAgICAgICAgICAgICAgICBQeV9JTkNSRUYoZnVuYyk7CiAgICAgICAgICAgICBzcCA9IHN0YWNrX3BvaW50ZXI7CiAgICAgICAgICAgICBSRUFEX1RJTUVTVEFNUChpbnRyMCk7Ci0gICAgICAgICAgICB4ID0gZXh0X2RvX2NhbGwoZnVuYywgJnNwLCBmbGFncywgbmEsIG5rKTsKKyAgICAgICAgICAgIHJlcyA9IGV4dF9kb19jYWxsKGZ1bmMsICZzcCwgZmxhZ3MsIG5hLCBuayk7CiAgICAgICAgICAgICBSRUFEX1RJTUVTVEFNUChpbnRyMSk7CiAgICAgICAgICAgICBzdGFja19wb2ludGVyID0gc3A7CiAgICAgICAgICAgICBQeV9ERUNSRUYoZnVuYyk7CiAKICAgICAgICAgICAgIHdoaWxlIChzdGFja19wb2ludGVyID4gcGZ1bmMpIHsKLSAgICAgICAgICAgICAgICB3ID0gUE9QKCk7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKHcpOworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpvID0gUE9QKCk7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKG8pOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgUFVTSCh4KTsKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpCi0gICAgICAgICAgICAgICAgRElTUEFUQ0goKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgUFVTSChyZXMpOworICAgICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBESVNQQVRDSCgpOwogICAgICAgICB9CiAKICAgICAgICAgVEFSR0VUX1dJVEhfSU1QTChNQUtFX0NMT1NVUkUsIF9tYWtlX2Z1bmN0aW9uKQogICAgICAgICBUQVJHRVQoTUFLRV9GVU5DVElPTikKLSAgICAgICAgX21ha2VfZnVuY3Rpb246Ci0gICAgICAgIHsKKyAgICAgICAgX21ha2VfZnVuY3Rpb246IHsKICAgICAgICAgICAgIGludCBwb3NkZWZhdWx0cyA9IG9wYXJnICYgMHhmZjsKICAgICAgICAgICAgIGludCBrd2RlZmF1bHRzID0gKG9wYXJnPj44KSAmIDB4ZmY7CiAgICAgICAgICAgICBpbnQgbnVtX2Fubm90YXRpb25zID0gKG9wYXJnID4+IDE2KSAmIDB4N2ZmZjsKIAotICAgICAgICAgICAgdyA9IFBPUCgpOyAvKiBxdWFsbmFtZSAqLwotICAgICAgICAgICAgdiA9IFBPUCgpOyAvKiBjb2RlIG9iamVjdCAqLwotICAgICAgICAgICAgeCA9IFB5RnVuY3Rpb25fTmV3V2l0aFF1YWxOYW1lKHYsIGYtPmZfZ2xvYmFscywgdyk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodyk7CisgICAgICAgICAgICBQeU9iamVjdCAqcXVhbG5hbWUgPSBQT1AoKTsgLyogcXVhbG5hbWUgKi8KKyAgICAgICAgICAgIFB5T2JqZWN0ICpjb2RlID0gUE9QKCk7IC8qIGNvZGUgb2JqZWN0ICovCisgICAgICAgICAgICBQeU9iamVjdCAqZnVuYyA9IFB5RnVuY3Rpb25fTmV3V2l0aFF1YWxOYW1lKGNvZGUsIGYtPmZfZ2xvYmFscywgcXVhbG5hbWUpOworICAgICAgICAgICAgUHlfREVDUkVGKGNvZGUpOworICAgICAgICAgICAgUHlfREVDUkVGKHF1YWxuYW1lKTsKIAotICAgICAgICAgICAgaWYgKHggIT0gTlVMTCAmJiBvcGNvZGUgPT0gTUFLRV9DTE9TVVJFKSB7Ci0gICAgICAgICAgICAgICAgdiA9IFBPUCgpOwotICAgICAgICAgICAgICAgIGlmIChQeUZ1bmN0aW9uX1NldENsb3N1cmUoeCwgdikgIT0gMCkgeworICAgICAgICAgICAgaWYgKGZ1bmMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworCisgICAgICAgICAgICBpZiAob3Bjb2RlID09IE1BS0VfQ0xPU1VSRSkgeworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpjbG9zdXJlID0gUE9QKCk7CisgICAgICAgICAgICAgICAgaWYgKFB5RnVuY3Rpb25fU2V0Q2xvc3VyZShmdW5jLCBjbG9zdXJlKSAhPSAwKSB7CiAgICAgICAgICAgICAgICAgICAgIC8qIENhbid0IGhhcHBlbiB1bmxlc3MgYnl0ZWNvZGUgaXMgY29ycnVwdC4gKi8KLSAgICAgICAgICAgICAgICAgICAgd2h5ID0gV0hZX0VYQ0VQVElPTjsKKyAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKGZ1bmMpOworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoY2xvc3VyZSk7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYoY2xvc3VyZSk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwgJiYgbnVtX2Fubm90YXRpb25zID4gMCkgeworICAgICAgICAgICAgaWYgKG51bV9hbm5vdGF0aW9ucyA+IDApIHsKICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG5hbWVfaXg7Ci0gICAgICAgICAgICAgICAgdSA9IFBPUCgpOyAvKiBuYW1lcyBvZiBhcmdzIHdpdGggYW5ub3RhdGlvbnMgKi8KLSAgICAgICAgICAgICAgICB2ID0gUHlEaWN0X05ldygpOwotICAgICAgICAgICAgICAgIGlmICh2ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHgpOwotICAgICAgICAgICAgICAgICAgICB4ID0gTlVMTDsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgUHlPYmplY3QgKm5hbWVzID0gUE9QKCk7IC8qIG5hbWVzIG9mIGFyZ3Mgd2l0aCBhbm5vdGF0aW9ucyAqLworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICphbm5zID0gUHlEaWN0X05ldygpOworICAgICAgICAgICAgICAgIGlmIChhbm5zID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKGZ1bmMpOworICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBuYW1lX2l4ID0gUHlUdXBsZV9TaXplKHUpOworICAgICAgICAgICAgICAgIG5hbWVfaXggPSBQeVR1cGxlX1NpemUobmFtZXMpOwogICAgICAgICAgICAgICAgIGFzc2VydChudW1fYW5ub3RhdGlvbnMgPT0gbmFtZV9peCsxKTsKICAgICAgICAgICAgICAgICB3aGlsZSAobmFtZV9peCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKm5hbWUsICp2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGVycjsKICAgICAgICAgICAgICAgICAgICAgLS1uYW1lX2l4OwotICAgICAgICAgICAgICAgICAgICB0ID0gUHlUdXBsZV9HRVRfSVRFTSh1LCBuYW1lX2l4KTsKLSAgICAgICAgICAgICAgICAgICAgdyA9IFBPUCgpOwotICAgICAgICAgICAgICAgICAgICAvKiBYWFgobm5vcndpdHopOiBjaGVjayBmb3IgZXJyb3JzICovCi0gICAgICAgICAgICAgICAgICAgIFB5RGljdF9TZXRJdGVtKHYsIHQsIHcpOwotICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodyk7CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBQeVR1cGxlX0dFVF9JVEVNKG5hbWVzLCBuYW1lX2l4KTsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBQT1AoKTsKKyAgICAgICAgICAgICAgICAgICAgZXJyID0gUHlEaWN0X1NldEl0ZW0oYW5ucywgbmFtZSwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOworICAgICAgICAgICAgICAgICAgICBpZiAoZXJyICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihhbm5zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihmdW5jKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlGdW5jdGlvbl9TZXRBbm5vdGF0aW9ucyh4LCB2KSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKFB5RnVuY3Rpb25fU2V0QW5ub3RhdGlvbnMoZnVuYywgYW5ucykgIT0gMCkgewogICAgICAgICAgICAgICAgICAgICAvKiBDYW4ndCBoYXBwZW4gdW5sZXNzCiAgICAgICAgICAgICAgICAgICAgICAgIFB5RnVuY3Rpb25fU2V0QW5ub3RhdGlvbnMgY2hhbmdlcy4gKi8KLSAgICAgICAgICAgICAgICAgICAgd2h5ID0gV0hZX0VYQ0VQVElPTjsKKyAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKGFubnMpOworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoZnVuYyk7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYodSk7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGFubnMpOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihuYW1lcyk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8qIFhYWCBNYXliZSB0aGlzIHNob3VsZCBiZSBhIHNlcGFyYXRlIG9wY29kZT8gKi8KLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwgJiYgcG9zZGVmYXVsdHMgPiAwKSB7Ci0gICAgICAgICAgICAgICAgdiA9IFB5VHVwbGVfTmV3KHBvc2RlZmF1bHRzKTsKLSAgICAgICAgICAgICAgICBpZiAodiA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih4KTsKLSAgICAgICAgICAgICAgICAgICAgeCA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB3aGlsZSAoLS1wb3NkZWZhdWx0cyA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHcgPSBQT1AoKTsKLSAgICAgICAgICAgICAgICAgICAgUHlUdXBsZV9TRVRfSVRFTSh2LCBwb3NkZWZhdWx0cywgdyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeUZ1bmN0aW9uX1NldERlZmF1bHRzKHgsIHYpICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgLyogQ2FuJ3QgaGFwcGVuIHVubGVzcwotICAgICAgICAgICAgICAgICAgICAgICBQeUZ1bmN0aW9uX1NldERlZmF1bHRzIGNoYW5nZXMuICovCi0gICAgICAgICAgICAgICAgICAgIHdoeSA9IFdIWV9FWENFUFRJT047Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh4ICE9IE5VTEwgJiYga3dkZWZhdWx0cyA+IDApIHsKLSAgICAgICAgICAgICAgICB2ID0gUHlEaWN0X05ldygpOwotICAgICAgICAgICAgICAgIGlmICh2ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHgpOwotICAgICAgICAgICAgICAgICAgICB4ID0gTlVMTDsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAoa3dkZWZhdWx0cyA+IDApIHsKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqZGVmcyA9IFB5RGljdF9OZXcoKTsKKyAgICAgICAgICAgICAgICBpZiAoZGVmcyA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihmdW5jKTsKKyAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgd2hpbGUgKC0ta3dkZWZhdWx0cyA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHcgPSBQT1AoKTsgLyogZGVmYXVsdCB2YWx1ZSAqLwotICAgICAgICAgICAgICAgICAgICB1ID0gUE9QKCk7IC8qIGt3IG9ubHkgYXJnIG5hbWUgKi8KLSAgICAgICAgICAgICAgICAgICAgLyogWFhYKG5ub3J3aXR6KTogY2hlY2sgZm9yIGVycm9ycyAqLwotICAgICAgICAgICAgICAgICAgICBQeURpY3RfU2V0SXRlbSh2LCB1LCB3KTsKLSAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHcpOwotICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodSk7CisgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp2ID0gUE9QKCk7IC8qIGRlZmF1bHQgdmFsdWUgKi8KKyAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmtleSA9IFBPUCgpOyAvKiBrdyBvbmx5IGFyZyBuYW1lICovCisgICAgICAgICAgICAgICAgICAgIGludCBlcnIgPSBQeURpY3RfU2V0SXRlbShkZWZzLCBrZXksIHYpOworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodik7CisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihrZXkpOworICAgICAgICAgICAgICAgICAgICBpZiAoZXJyICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihkZWZzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihmdW5jKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5RnVuY3Rpb25fU2V0S3dEZWZhdWx0cyh4LCB2KSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKFB5RnVuY3Rpb25fU2V0S3dEZWZhdWx0cyhmdW5jLCBkZWZzKSAhPSAwKSB7CiAgICAgICAgICAgICAgICAgICAgIC8qIENhbid0IGhhcHBlbiB1bmxlc3MKICAgICAgICAgICAgICAgICAgICAgICAgUHlGdW5jdGlvbl9TZXRLd0RlZmF1bHRzIGNoYW5nZXMuICovCi0gICAgICAgICAgICAgICAgICAgIHdoeSA9IFdIWV9FWENFUFRJT047CisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihmdW5jKTsKKyAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKGRlZnMpOworICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYodik7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGRlZnMpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgUFVTSCh4KTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKHBvc2RlZmF1bHRzID4gMCkgeworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpkZWZzID0gUHlUdXBsZV9OZXcocG9zZGVmYXVsdHMpOworICAgICAgICAgICAgICAgIGlmIChkZWZzID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKGZ1bmMpOworICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3aGlsZSAoLS1wb3NkZWZhdWx0cyA+PSAwKQorICAgICAgICAgICAgICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKGRlZnMsIHBvc2RlZmF1bHRzLCBQT1AoKSk7CisgICAgICAgICAgICAgICAgaWYgKFB5RnVuY3Rpb25fU2V0RGVmYXVsdHMoZnVuYywgZGVmcykgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICAvKiBDYW4ndCBoYXBwZW4gdW5sZXNzCisgICAgICAgICAgICAgICAgICAgICAgIFB5RnVuY3Rpb25fU2V0RGVmYXVsdHMgY2hhbmdlcy4gKi8KKyAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKGRlZnMpOworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoZnVuYyk7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihkZWZzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFBVU0goZnVuYyk7CisgICAgICAgICAgICBESVNQQVRDSCgpOwogICAgICAgICB9CiAKLSAgICAgICAgVEFSR0VUKEJVSUxEX1NMSUNFKQorICAgICAgICBUQVJHRVQoQlVJTERfU0xJQ0UpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpzdGFydCwgKnN0b3AsICpzdGVwLCAqc2xpY2U7CiAgICAgICAgICAgICBpZiAob3BhcmcgPT0gMykKLSAgICAgICAgICAgICAgICB3ID0gUE9QKCk7CisgICAgICAgICAgICAgICAgc3RlcCA9IFBPUCgpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHcgPSBOVUxMOwotICAgICAgICAgICAgdiA9IFBPUCgpOwotICAgICAgICAgICAgdSA9IFRPUCgpOwotICAgICAgICAgICAgeCA9IFB5U2xpY2VfTmV3KHUsIHYsIHcpOwotICAgICAgICAgICAgUHlfREVDUkVGKHUpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfWERFQ1JFRih3KTsKLSAgICAgICAgICAgIFNFVF9UT1AoeCk7Ci0gICAgICAgICAgICBpZiAoeCAhPSBOVUxMKSBESVNQQVRDSCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgc3RlcCA9IE5VTEw7CisgICAgICAgICAgICBzdG9wID0gUE9QKCk7CisgICAgICAgICAgICBzdGFydCA9IFRPUCgpOworICAgICAgICAgICAgc2xpY2UgPSBQeVNsaWNlX05ldyhzdGFydCwgc3RvcCwgc3RlcCk7CisgICAgICAgICAgICBQeV9ERUNSRUYoc3RhcnQpOworICAgICAgICAgICAgUHlfREVDUkVGKHN0b3ApOworICAgICAgICAgICAgUHlfWERFQ1JFRihzdGVwKTsKKyAgICAgICAgICAgIFNFVF9UT1Aoc2xpY2UpOworICAgICAgICAgICAgaWYgKHNsaWNlID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIERJU1BBVENIKCk7CisgICAgICAgIH0KIAotICAgICAgICBUQVJHRVQoRVhURU5ERURfQVJHKQorICAgICAgICBUQVJHRVQoRVhURU5ERURfQVJHKSB7CiAgICAgICAgICAgICBvcGNvZGUgPSBORVhUT1AoKTsKICAgICAgICAgICAgIG9wYXJnID0gb3Bhcmc8PDE2IHwgTkVYVEFSRygpOwogICAgICAgICAgICAgZ290byBkaXNwYXRjaF9vcGNvZGU7CisgICAgICAgIH0KIAogI2lmIFVTRV9DT01QVVRFRF9HT1RPUwogICAgICAgICBfdW5rbm93bl9vcGNvZGU6CkBAIC0yODU4LDggKzMwMDcsNyBAQAogICAgICAgICAgICAgICAgIFB5RnJhbWVfR2V0TGluZU51bWJlcihmKSwKICAgICAgICAgICAgICAgICBvcGNvZGUpOwogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1N5c3RlbUVycm9yLCAidW5rbm93biBvcGNvZGUiKTsKLSAgICAgICAgICAgIHdoeSA9IFdIWV9FWENFUFRJT047Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAKICNpZmRlZiBDQVNFX1RPT19CSUcKICAgICAgICAgfQpAQCAtMjg2Nyw3MSArMzAxNSwzMSBAQAogCiAgICAgICAgIH0gLyogc3dpdGNoICovCiAKLSAgICAgICAgb25fZXJyb3I6CisgICAgICAgIC8qIFRoaXMgc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQuIEV2ZXJ5IG9wY29kZSBzaG91bGQgZW5kIHdpdGggRElTUEFUQ0goKQorICAgICAgICAgICBvciBnb3RvIGVycm9yLiAqLworICAgICAgICBhc3NlcnQoMCk7CiAKK2Vycm9yOgogICAgICAgICBSRUFEX1RJTUVTVEFNUChpbnN0MSk7CiAKLSAgICAgICAgLyogUXVpY2tseSBjb250aW51ZSBpZiBubyBlcnJvciBvY2N1cnJlZCAqLworICAgICAgICBhc3NlcnQod2h5ID09IFdIWV9OT1QpOworICAgICAgICB3aHkgPSBXSFlfRVhDRVBUSU9OOwogCi0gICAgICAgIGlmICh3aHkgPT0gV0hZX05PVCkgewotICAgICAgICAgICAgaWYgKGVyciA9PSAwICYmIHggIT0gTlVMTCkgewotI2lmZGVmIENIRUNLRVhDCi0gICAgICAgICAgICAgICAgLyogVGhpcyBjaGVjayBpcyBleHBlbnNpdmUhICovCi0gICAgICAgICAgICAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCi0gICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAgICAgICAgICAgICAgICAgIlhYWCB1bmRldGVjdGVkIGVycm9yXG4iKTsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSNlbmRpZgotICAgICAgICAgICAgICAgICAgICBSRUFEX1RJTUVTVEFNUChsb29wMSk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvKiBOb3JtYWwsIGZhc3QgcGF0aCAqLwotI2lmZGVmIENIRUNLRVhDCi0gICAgICAgICAgICAgICAgfQotI2VuZGlmCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB3aHkgPSBXSFlfRVhDRVBUSU9OOwotICAgICAgICAgICAgeCA9IFB5X05vbmU7Ci0gICAgICAgICAgICBlcnIgPSAwOwotICAgICAgICB9CisgICAgICAgIC8qIERvdWJsZS1jaGVjayBleGNlcHRpb24gc3RhdHVzLiAqLworICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfU3lzdGVtRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVycm9yIHJldHVybiB3aXRob3V0IGV4Y2VwdGlvbiBzZXQiKTsKIAotICAgICAgICAvKiBEb3VibGUtY2hlY2sgZXhjZXB0aW9uIHN0YXR1cyAqLworICAgICAgICAvKiBMb2cgdHJhY2ViYWNrIGluZm8uICovCisgICAgICAgIFB5VHJhY2VCYWNrX0hlcmUoZik7CiAKLSAgICAgICAgaWYgKHdoeSA9PSBXSFlfRVhDRVBUSU9OIHx8IHdoeSA9PSBXSFlfUkVSQUlTRSkgewotICAgICAgICAgICAgaWYgKCFQeUVycl9PY2N1cnJlZCgpKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1N5c3RlbUVycm9yLAotICAgICAgICAgICAgICAgICAgICAiZXJyb3IgcmV0dXJuIHdpdGhvdXQgZXhjZXB0aW9uIHNldCIpOwotICAgICAgICAgICAgICAgIHdoeSA9IFdIWV9FWENFUFRJT047Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSNpZmRlZiBDSEVDS0VYQwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8qIFRoaXMgY2hlY2sgaXMgZXhwZW5zaXZlISAqLwotICAgICAgICAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpIHsKLSAgICAgICAgICAgICAgICBjaGFyIGJ1ZlsxMjhdOwotICAgICAgICAgICAgICAgIHNwcmludGYoYnVmLCAiU3RhY2sgdW53aW5kIHdpdGggZXhjZXB0aW9uICIKLSAgICAgICAgICAgICAgICAgICAgInNldCBhbmQgd2h5PSVkIiwgd2h5KTsKLSAgICAgICAgICAgICAgICBQeV9GYXRhbEVycm9yKGJ1Zik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSNlbmRpZgotCi0gICAgICAgIC8qIExvZyB0cmFjZWJhY2sgaW5mbyBpZiB0aGlzIGlzIGEgcmVhbCBleGNlcHRpb24gKi8KLQotICAgICAgICBpZiAod2h5ID09IFdIWV9FWENFUFRJT04pIHsKLSAgICAgICAgICAgIFB5VHJhY2VCYWNrX0hlcmUoZik7Ci0KLSAgICAgICAgICAgIGlmICh0c3RhdGUtPmNfdHJhY2VmdW5jICE9IE5VTEwpCi0gICAgICAgICAgICAgICAgY2FsbF9leGNfdHJhY2UodHN0YXRlLT5jX3RyYWNlZnVuYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0c3RhdGUtPmNfdHJhY2VvYmosIGYpOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogRm9yIHRoZSByZXN0LCB0cmVhdCBXSFlfUkVSQUlTRSBhcyBXSFlfRVhDRVBUSU9OICovCi0KLSAgICAgICAgaWYgKHdoeSA9PSBXSFlfUkVSQUlTRSkKLSAgICAgICAgICAgIHdoeSA9IFdIWV9FWENFUFRJT047Ci0KLSAgICAgICAgLyogVW53aW5kIHN0YWNrcyBpZiBhIChwc2V1ZG8pIGV4Y2VwdGlvbiBvY2N1cnJlZCAqLworICAgICAgICBpZiAodHN0YXRlLT5jX3RyYWNlZnVuYyAhPSBOVUxMKQorICAgICAgICAgICAgY2FsbF9leGNfdHJhY2UodHN0YXRlLT5jX3RyYWNlZnVuYywgdHN0YXRlLT5jX3RyYWNlb2JqLCBmKTsKIAogZmFzdF9ibG9ja19lbmQ6CisgICAgICAgIGFzc2VydCh3aHkgIT0gV0hZX05PVCk7CisKKyAgICAgICAgLyogVW53aW5kIHN0YWNrcyBpZiBhIChwc2V1ZG8pIGV4Y2VwdGlvbiBvY2N1cnJlZCAqLwogICAgICAgICB3aGlsZSAod2h5ICE9IFdIWV9OT1QgJiYgZi0+Zl9pYmxvY2sgPiAwKSB7CiAgICAgICAgICAgICAvKiBQZWVrIGF0IHRoZSBjdXJyZW50IGJsb2NrLiAqLwogICAgICAgICAgICAgUHlUcnlCbG9jayAqYiA9ICZmLT5mX2Jsb2Nrc3RhY2tbZi0+Zl9pYmxvY2sgLSAxXTsKQEAgLTMwMTUsOCArMzEyMyw4IEBACiAgICAgYXNzZXJ0KHdoeSAhPSBXSFlfWUlFTEQpOwogICAgIC8qIFBvcCByZW1haW5pbmcgc3RhY2sgZW50cmllcy4gKi8KICAgICB3aGlsZSAoIUVNUFRZKCkpIHsKLSAgICAgICAgdiA9IFBPUCgpOwotICAgICAgICBQeV9YREVDUkVGKHYpOworICAgICAgICBQeU9iamVjdCAqbyA9IFBPUCgpOworICAgICAgICBQeV9YREVDUkVGKG8pOwogICAgIH0KIAogICAgIGlmICh3aHkgIT0gV0hZX1JFVFVSTikKQEAgLTM1MjAsNyArMzYyOCw3IEBACiAKIC8qIExvZ2ljIGZvciB0aGUgcmFpc2Ugc3RhdGVtZW50ICh0b28gY29tcGxpY2F0ZWQgZm9yIGlubGluaW5nKS4KICAgIFRoaXMgKmNvbnN1bWVzKiBhIHJlZmVyZW5jZSBjb3VudCB0byBlYWNoIG9mIGl0cyBhcmd1bWVudHMuICovCi1zdGF0aWMgZW51bSB3aHlfY29kZQorc3RhdGljIGludAogZG9fcmFpc2UoUHlPYmplY3QgKmV4YywgUHlPYmplY3QgKmNhdXNlKQogewogICAgIFB5T2JqZWN0ICp0eXBlID0gTlVMTCwgKnZhbHVlID0gTlVMTDsKQEAgLTM1MzUsMTMgKzM2NDMsMTMgQEAKICAgICAgICAgaWYgKHR5cGUgPT0gUHlfTm9uZSkgewogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gYWN0aXZlIGV4Y2VwdGlvbiB0byByZXJhaXNlIik7Ci0gICAgICAgICAgICByZXR1cm4gV0hZX0VYQ0VQVElPTjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CiAgICAgICAgIFB5X1hJTkNSRUYodHlwZSk7CiAgICAgICAgIFB5X1hJTkNSRUYodmFsdWUpOwogICAgICAgICBQeV9YSU5DUkVGKHRiKTsKICAgICAgICAgUHlFcnJfUmVzdG9yZSh0eXBlLCB2YWx1ZSwgdGIpOwotICAgICAgICByZXR1cm4gV0hZX1JFUkFJU0U7CisgICAgICAgIHJldHVybiAxOwogICAgIH0KIAogICAgIC8qIFdlIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBmb3JtcyBvZiByYWlzZToKQEAgLTM2MDQsMTMgKzM3MTIsMTMgQEAKICAgICAvKiBQeUVycl9TZXRPYmplY3QgaW5jcmVmJ3MgaXRzIGFyZ3VtZW50cyAqLwogICAgIFB5X1hERUNSRUYodmFsdWUpOwogICAgIFB5X1hERUNSRUYodHlwZSk7Ci0gICAgcmV0dXJuIFdIWV9FWENFUFRJT047CisgICAgcmV0dXJuIDA7CiAKIHJhaXNlX2Vycm9yOgogICAgIFB5X1hERUNSRUYodmFsdWUpOwogICAgIFB5X1hERUNSRUYodHlwZSk7CiAgICAgUHlfWERFQ1JFRihjYXVzZSk7Ci0gICAgcmV0dXJuIFdIWV9FWENFUFRJT047CisgICAgcmV0dXJuIDA7CiB9CiAKIC8qIEl0ZXJhdGUgdiBhcmdjbnQgdGltZXMgYW5kIHN0b3JlIHRoZSByZXN1bHRzIG9uIHRoZSBzdGFjayAodmlhIGRlY3JlYXNpbmcKZGlmZiAtLWdpdCBhL1B5dGhvbi9jb2RlY3MuYyBiL1B5dGhvbi9jb2RlY3MuYwppbmRleCBmZDY3ZDFiLi44ZDljZTZmIDEwMDY0NAotLS0gYS9QeXRob24vY29kZWNzLmMKKysrIGIvUHl0aG9uL2NvZGVjcy5jCkBAIC03NjEsNyArNzYxLDcgQEAKICAgICAgICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykgewogICAgICAgICAgICAgLyogb2JqZWN0IGlzIGd1YXJhbnRlZWQgdG8gYmUgInJlYWR5IiAqLwogICAgICAgICAgICAgUHlfVUNTNCBjaCA9IFB5VW5pY29kZV9SRUFEX0NIQVIob2JqZWN0LCBpKTsKLSAgICAgICAgICAgIGlmIChjaCA8IDB4ZDgwMCB8fCBjaCA+IDB4ZGZmZikgeworICAgICAgICAgICAgaWYgKCFQeV9VTklDT0RFX0lTX1NVUlJPR0FURShjaCkpIHsKICAgICAgICAgICAgICAgICAvKiBOb3QgYSBzdXJyb2dhdGUsIGZhaWwgd2l0aCBvcmlnaW5hbCBleGNlcHRpb24gKi8KICAgICAgICAgICAgICAgICBQeUVycl9TZXRPYmplY3QoUHlFeGNlcHRpb25JbnN0YW5jZV9DbGFzcyhleGMpLCBleGMpOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihyZXMpOwpAQCAtNzk3LDcgKzc5Nyw3IEBACiAgICAgICAgICAgICAocFsyXSAmIDB4YzApID09IDB4ODApIHsKICAgICAgICAgICAgIC8qIGl0J3MgYSB0aHJlZS1ieXRlIGNvZGUgKi8KICAgICAgICAgICAgIGNoID0gKChwWzBdICYgMHgwZikgPDwgMTIpICsgKChwWzFdICYgMHgzZikgPDwgNikgKyAocFsyXSAmIDB4M2YpOwotICAgICAgICAgICAgaWYgKGNoIDwgMHhkODAwIHx8IGNoID4gMHhkZmZmKQorICAgICAgICAgICAgaWYgKCFQeV9VTklDT0RFX0lTX1NVUlJPR0FURShjaCkpCiAgICAgICAgICAgICAgICAgLyogaXQncyBub3QgYSBzdXJyb2dhdGUgLSBmYWlsICovCiAgICAgICAgICAgICAgICAgY2ggPSAwOwogICAgICAgICB9CkBAIC0xMDI2LDcgKzEwMjYsNyBAQAogCiAgICAgaWYgKGludGVycC0+Y29kZWNfZXJyb3JfcmVnaXN0cnkpIHsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IFB5X0FSUkFZX0xFTkdUSChtZXRob2RzKTsgKytpKSB7Ci0gICAgICAgICAgICBQeU9iamVjdCAqZnVuYyA9IFB5Q0Z1bmN0aW9uX05ldygmbWV0aG9kc1tpXS5kZWYsIE5VTEwpOworICAgICAgICAgICAgUHlPYmplY3QgKmZ1bmMgPSBQeUNGdW5jdGlvbl9OZXdFeCgmbWV0aG9kc1tpXS5kZWYsIE5VTEwsIE5VTEwpOwogICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgIGlmICghZnVuYykKICAgICAgICAgICAgICAgICBQeV9GYXRhbEVycm9yKCJjYW4ndCBpbml0aWFsaXplIGNvZGVjIGVycm9yIHJlZ2lzdHJ5Iik7CmRpZmYgLS1naXQgYS9QeXRob24vY29tcGlsZS5jIGIvUHl0aG9uL2NvbXBpbGUuYwppbmRleCBkZDQyNjJjLi40ZmM3NTc1IDEwMDY0NAotLS0gYS9QeXRob24vY29tcGlsZS5jCisrKyBiL1B5dGhvbi9jb21waWxlLmMKQEAgLTUzNSw2ICs1MzUsMzcgQEAKICAgICAgICAgY29tcGlsZXJfdW5pdF9mcmVlKHUpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CisgICAgaWYgKHUtPnVfc3RlLT5zdGVfbmVlZHNfY2xhc3NfY2xvc3VyZSkgeworICAgICAgICAvKiBDb29rIHVwIGEgaW1wbGljaXQgX19jbGFzc19fIGNlbGwuICovCisgICAgICAgIF9QeV9JREVOVElGSUVSKF9fY2xhc3NfXyk7CisgICAgICAgIFB5T2JqZWN0ICp0dXBsZSwgKm5hbWUsICp6ZXJvOworICAgICAgICBpbnQgcmVzOworICAgICAgICBhc3NlcnQodS0+dV9zY29wZV90eXBlID09IENPTVBJTEVSX1NDT1BFX0NMQVNTKTsKKyAgICAgICAgYXNzZXJ0KFB5RGljdF9TaXplKHUtPnVfY2VsbHZhcnMpID09IDApOworICAgICAgICBuYW1lID0gX1B5VW5pY29kZV9Gcm9tSWQoJlB5SWRfX19jbGFzc19fKTsKKyAgICAgICAgaWYgKCFuYW1lKSB7CisgICAgICAgICAgICBjb21waWxlcl91bml0X2ZyZWUodSk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICB0dXBsZSA9IFB5VHVwbGVfUGFjaygyLCBuYW1lLCBQeV9UWVBFKG5hbWUpKTsKKyAgICAgICAgaWYgKCF0dXBsZSkgeworICAgICAgICAgICAgY29tcGlsZXJfdW5pdF9mcmVlKHUpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgemVybyA9IFB5TG9uZ19Gcm9tTG9uZygwKTsKKyAgICAgICAgaWYgKCF6ZXJvKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYodHVwbGUpOworICAgICAgICAgICAgY29tcGlsZXJfdW5pdF9mcmVlKHUpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgcmVzID0gUHlEaWN0X1NldEl0ZW0odS0+dV9jZWxsdmFycywgdHVwbGUsIHplcm8pOworICAgICAgICBQeV9ERUNSRUYodHVwbGUpOworICAgICAgICBQeV9ERUNSRUYoemVybyk7CisgICAgICAgIGlmIChyZXMgPCAwKSB7CisgICAgICAgICAgICBjb21waWxlcl91bml0X2ZyZWUodSk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHUtPnVfZnJlZXZhcnMgPSBkaWN0Ynl0eXBlKHUtPnVfc3RlLT5zdGVfc3ltYm9scywgRlJFRSwgREVGX0ZSRUVfQ0xBU1MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlEaWN0X1NpemUodS0+dV9jZWxsdmFycykpOwpAQCAtODYyLDggKzg5Myw2IEBACiAgICAgICAgICAgICByZXR1cm4gNzsKICAgICAgICAgY2FzZSBXSVRIX0NMRUFOVVA6CiAgICAgICAgICAgICByZXR1cm4gLTE7IC8qIFhYWCBTb21ldGltZXMgbW9yZSAqLwotICAgICAgICBjYXNlIFNUT1JFX0xPQ0FMUzoKLSAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgY2FzZSBSRVRVUk5fVkFMVUU6CiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIGNhc2UgSU1QT1JUX1NUQVI6CkBAIC05NzAsNiArOTk5LDcgQEAKICAgICAgICAgY2FzZSBMT0FEX0NMT1NVUkU6CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgY2FzZSBMT0FEX0RFUkVGOgorICAgICAgICBjYXNlIExPQURfQ0xBU1NERVJFRjoKICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICBjYXNlIFNUT1JFX0RFUkVGOgogICAgICAgICAgICAgcmV0dXJuIC0xOwpAQCAtMTMzMCw3ICsxMzYwLDExIEBACiBzdGF0aWMgaW50CiBnZXRfcmVmX3R5cGUoc3RydWN0IGNvbXBpbGVyICpjLCBQeU9iamVjdCAqbmFtZSkKIHsKLSAgICBpbnQgc2NvcGUgPSBQeVNUX0dldFNjb3BlKGMtPnUtPnVfc3RlLCBuYW1lKTsKKyAgICBpbnQgc2NvcGU7CisgICAgaWYgKGMtPnUtPnVfc2NvcGVfdHlwZSA9PSBDT01QSUxFUl9TQ09QRV9DTEFTUyAmJgorICAgICAgICAhUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcobmFtZSwgIl9fY2xhc3NfXyIpKQorICAgICAgICByZXR1cm4gQ0VMTDsKKyAgICBzY29wZSA9IFB5U1RfR2V0U2NvcGUoYy0+dS0+dV9zdGUsIG5hbWUpOwogICAgIGlmIChzY29wZSA9PSAwKSB7CiAgICAgICAgIGNoYXIgYnVmWzM1MF07CiAgICAgICAgIFB5T1Nfc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwKQEAgLTE1MDEsMTUgKzE1MzUsMTUgQEAKIAogICAgIGlmIChjb21waWxlcl92aXNpdF9hcmdhbm5vdGF0aW9ucyhjLCBhcmdzLT5hcmdzLCBuYW1lcykpCiAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgaWYgKGFyZ3MtPnZhcmFyZ2Fubm90YXRpb24gJiYKLSAgICAgICAgY29tcGlsZXJfdmlzaXRfYXJnYW5ub3RhdGlvbihjLCBhcmdzLT52YXJhcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy0+dmFyYXJnYW5ub3RhdGlvbiwgbmFtZXMpKQorICAgIGlmIChhcmdzLT52YXJhcmcgJiYgYXJncy0+dmFyYXJnLT5hbm5vdGF0aW9uICYmCisgICAgICAgIGNvbXBpbGVyX3Zpc2l0X2FyZ2Fubm90YXRpb24oYywgYXJncy0+dmFyYXJnLT5hcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy0+dmFyYXJnLT5hbm5vdGF0aW9uLCBuYW1lcykpCiAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgaWYgKGNvbXBpbGVyX3Zpc2l0X2FyZ2Fubm90YXRpb25zKGMsIGFyZ3MtPmt3b25seWFyZ3MsIG5hbWVzKSkKICAgICAgICAgZ290byBlcnJvcjsKLSAgICBpZiAoYXJncy0+a3dhcmdhbm5vdGF0aW9uICYmCi0gICAgICAgIGNvbXBpbGVyX3Zpc2l0X2FyZ2Fubm90YXRpb24oYywgYXJncy0+a3dhcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy0+a3dhcmdhbm5vdGF0aW9uLCBuYW1lcykpCisgICAgaWYgKGFyZ3MtPmt3YXJnICYmIGFyZ3MtPmt3YXJnLT5hbm5vdGF0aW9uICYmCisgICAgICAgIGNvbXBpbGVyX3Zpc2l0X2FyZ2Fubm90YXRpb24oYywgYXJncy0+a3dhcmctPmFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLT5rd2FyZy0+YW5ub3RhdGlvbiwgbmFtZXMpKQogICAgICAgICBnb3RvIGVycm9yOwogCiAgICAgaWYgKCFyZXR1cm5fc3RyKSB7CkBAIC0xNTY4LDYgKzE2MDIsOCBAQAogCiAgICAgaWYgKCFjb21waWxlcl9kZWNvcmF0b3JzKGMsIGRlY29zKSkKICAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKGFyZ3MtPmRlZmF1bHRzKQorICAgICAgICBWSVNJVF9TRVEoYywgZXhwciwgYXJncy0+ZGVmYXVsdHMpOwogICAgIGlmIChhcmdzLT5rd29ubHlhcmdzKSB7CiAgICAgICAgIGludCByZXMgPSBjb21waWxlcl92aXNpdF9rd29ubHlkZWZhdWx0cyhjLCBhcmdzLT5rd29ubHlhcmdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy0+a3dfZGVmYXVsdHMpOwpAQCAtMTU3NSw4ICsxNjExLDYgQEAKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICBrd19kZWZhdWx0X2NvdW50ID0gcmVzOwogICAgIH0KLSAgICBpZiAoYXJncy0+ZGVmYXVsdHMpCi0gICAgICAgIFZJU0lUX1NFUShjLCBleHByLCBhcmdzLT5kZWZhdWx0cyk7CiAgICAgbnVtX2Fubm90YXRpb25zID0gY29tcGlsZXJfdmlzaXRfYW5ub3RhdGlvbnMoYywgYXJncywgcmV0dXJucyk7CiAgICAgaWYgKG51bV9hbm5vdGF0aW9ucyA8IDApCiAgICAgICAgIHJldHVybiAwOwpAQCAtMTY2MSwxMiArMTY5NSw2IEBACiAgICAgICAgIFB5X0lOQ1JFRihzLT52LkNsYXNzRGVmLm5hbWUpOwogICAgICAgICBQeV9YREVDUkVGKGMtPnUtPnVfcHJpdmF0ZSk7CiAgICAgICAgIGMtPnUtPnVfcHJpdmF0ZSA9IHMtPnYuQ2xhc3NEZWYubmFtZTsKLSAgICAgICAgLyogZm9yY2UgaXQgdG8gaGF2ZSBvbmUgbWFuZGF0b3J5IGFyZ3VtZW50ICovCi0gICAgICAgIGMtPnUtPnVfYXJnY291bnQgPSAxOwotICAgICAgICAvKiBsb2FkIHRoZSBmaXJzdCBhcmd1bWVudCAoX19sb2NhbHNfXykgLi4uICovCi0gICAgICAgIEFERE9QX0koYywgTE9BRF9GQVNULCAwKTsKLSAgICAgICAgLyogLi4uIGFuZCBzdG9yZSBpdCBpbnRvIGZfbG9jYWxzICovCi0gICAgICAgIEFERE9QX0lOX1NDT1BFKGMsIFNUT1JFX0xPQ0FMUyk7CiAgICAgICAgIC8qIGxvYWQgKGdsb2JhbCkgX19uYW1lX18gLi4uICovCiAgICAgICAgIHN0ciA9IFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKCJfX25hbWVfXyIpOwogICAgICAgICBpZiAoIXN0ciB8fCAhY29tcGlsZXJfbmFtZW9wKGMsIHN0ciwgTG9hZCkpIHsKQEAgLTE3MDMsMjQgKzE3MzEsMjQgQEAKICAgICAgICAgICAgIGNvbXBpbGVyX2V4aXRfc2NvcGUoYyk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQotICAgICAgICAvKiByZXR1cm4gdGhlIChlbXB0eSkgX19jbGFzc19fIGNlbGwgKi8KLSAgICAgICAgc3RyID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIl9fY2xhc3NfXyIpOwotICAgICAgICBpZiAoc3RyID09IE5VTEwpIHsKLSAgICAgICAgICAgIGNvbXBpbGVyX2V4aXRfc2NvcGUoYyk7Ci0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotICAgICAgICBpID0gY29tcGlsZXJfbG9va3VwX2FyZyhjLT51LT51X2NlbGx2YXJzLCBzdHIpOwotICAgICAgICBQeV9ERUNSRUYoc3RyKTsKLSAgICAgICAgaWYgKGkgPT0gLTEpIHsKLSAgICAgICAgICAgIC8qIFRoaXMgaGFwcGVucyB3aGVuIG5vYm9keSByZWZlcmVuY2VzIHRoZSBjZWxsICovCi0gICAgICAgICAgICBQeUVycl9DbGVhcigpOwotICAgICAgICAgICAgLyogUmV0dXJuIE5vbmUgKi8KLSAgICAgICAgICAgIEFERE9QX08oYywgTE9BRF9DT05TVCwgUHlfTm9uZSwgY29uc3RzKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKKyAgICAgICAgaWYgKGMtPnUtPnVfc3RlLT5zdGVfbmVlZHNfY2xhc3NfY2xvc3VyZSkgeworICAgICAgICAgICAgLyogcmV0dXJuIHRoZSAoZW1wdHkpIF9fY2xhc3NfXyBjZWxsICovCisgICAgICAgICAgICBzdHIgPSBQeVVuaWNvZGVfSW50ZXJuRnJvbVN0cmluZygiX19jbGFzc19fIik7CisgICAgICAgICAgICBpZiAoc3RyID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBjb21waWxlcl9leGl0X3Njb3BlKGMpOworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaSA9IGNvbXBpbGVyX2xvb2t1cF9hcmcoYy0+dS0+dV9jZWxsdmFycywgc3RyKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihzdHIpOworICAgICAgICAgICAgYXNzZXJ0KGkgPT0gMCk7CiAgICAgICAgICAgICAvKiBSZXR1cm4gdGhlIGNlbGwgd2hlcmUgdG8gc3RvcmUgX19jbGFzc19fICovCiAgICAgICAgICAgICBBRERPUF9JKGMsIExPQURfQ0xPU1VSRSwgaSk7CiAgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhc3NlcnQoUHlEaWN0X1NpemUoYy0+dS0+dV9jZWxsdmFycykgPT0gMCk7CisgICAgICAgICAgICAvKiBUaGlzIGhhcHBlbnMgd2hlbiBub2JvZHkgcmVmZXJlbmNlcyB0aGUgY2VsbC4gUmV0dXJuIE5vbmUuICovCisgICAgICAgICAgICBBRERPUF9PKGMsIExPQURfQ09OU1QsIFB5X05vbmUsIGNvbnN0cyk7CisgICAgICAgIH0KICAgICAgICAgQURET1BfSU5fU0NPUEUoYywgUkVUVVJOX1ZBTFVFKTsKICAgICAgICAgLyogY3JlYXRlIHRoZSBjb2RlIG9iamVjdCAqLwogICAgICAgICBjbyA9IGFzc2VtYmxlKGMsIDEpOwpAQCAtMTc5NywxNCArMTgyNSwxNCBAQAogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCisgICAgaWYgKGFyZ3MtPmRlZmF1bHRzKQorICAgICAgICBWSVNJVF9TRVEoYywgZXhwciwgYXJncy0+ZGVmYXVsdHMpOwogICAgIGlmIChhcmdzLT5rd29ubHlhcmdzKSB7CiAgICAgICAgIGludCByZXMgPSBjb21waWxlcl92aXNpdF9rd29ubHlkZWZhdWx0cyhjLCBhcmdzLT5rd29ubHlhcmdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncy0+a3dfZGVmYXVsdHMpOwogICAgICAgICBpZiAocmVzIDwgMCkgcmV0dXJuIDA7CiAgICAgICAgIGt3X2RlZmF1bHRfY291bnQgPSByZXM7CiAgICAgfQotICAgIGlmIChhcmdzLT5kZWZhdWx0cykKLSAgICAgICAgVklTSVRfU0VRKGMsIGV4cHIsIGFyZ3MtPmRlZmF1bHRzKTsKICAgICBpZiAoIWNvbXBpbGVyX2VudGVyX3Njb3BlKGMsIG5hbWUsIENPTVBJTEVSX1NDT1BFX0ZVTkNUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKillLCBlLT5saW5lbm8pKQogICAgICAgICByZXR1cm4gMDsKQEAgLTI2MzgsNiArMjY2NiwxMCBAQAogICAgIGlmICghbWFuZ2xlZCkKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBhc3NlcnQoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcobmFtZSwgIk5vbmUiKSAmJgorICAgICAgICAgICBQeVVuaWNvZGVfQ29tcGFyZVdpdGhBU0NJSVN0cmluZyhuYW1lLCAiVHJ1ZSIpICYmCisgICAgICAgICAgIFB5VW5pY29kZV9Db21wYXJlV2l0aEFTQ0lJU3RyaW5nKG5hbWUsICJGYWxzZSIpKTsKKwogICAgIG9wID0gMDsKICAgICBvcHR5cGUgPSBPUF9OQU1FOwogICAgIHNjb3BlID0gUHlTVF9HZXRTY29wZShjLT51LT51X3N0ZSwgbWFuZ2xlZCk7CkBAIC0yNjczLDcgKzI3MDUsOSBAQAogICAgIHN3aXRjaCAob3B0eXBlKSB7CiAgICAgY2FzZSBPUF9ERVJFRjoKICAgICAgICAgc3dpdGNoIChjdHgpIHsKLSAgICAgICAgY2FzZSBMb2FkOiBvcCA9IExPQURfREVSRUY7IGJyZWFrOworICAgICAgICBjYXNlIExvYWQ6CisgICAgICAgICAgICBvcCA9IChjLT51LT51X3N0ZS0+c3RlX3R5cGUgPT0gQ2xhc3NCbG9jaykgPyBMT0FEX0NMQVNTREVSRUYgOiBMT0FEX0RFUkVGOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3RvcmU6IG9wID0gU1RPUkVfREVSRUY7IGJyZWFrOwogICAgICAgICBjYXNlIEF1Z0xvYWQ6CiAgICAgICAgIGNhc2UgQXVnU3RvcmU6CkBAIC0zMTk3LDEyICszMjMxLDE4IEBACiAgICAgY2FzZSBOYW1lX2tpbmQ6CiAgICAgICAgIC8qIG9wdGltaXplIGF3YXkgbmFtZXMgdGhhdCBjYW4ndCBiZSByZWFzc2lnbmVkICovCiAgICAgICAgIGlkID0gUHlVbmljb2RlX0FzVVRGOChlLT52Lk5hbWUuaWQpOwotICAgICAgICBpZiAoc3RyY21wKGlkLCAiVHJ1ZSIpID09IDApIHJldHVybiAxOwotICAgICAgICBpZiAoc3RyY21wKGlkLCAiRmFsc2UiKSA9PSAwKSByZXR1cm4gMDsKLSAgICAgICAgaWYgKHN0cmNtcChpZCwgIk5vbmUiKSA9PSAwKSByZXR1cm4gMDsKLSAgICAgICAgaWYgKHN0cmNtcChpZCwgIl9fZGVidWdfXyIpID09IDApCi0gICAgICAgICAgICByZXR1cm4gISBjLT5jX29wdGltaXplOwotICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICAgICAgaWYgKGlkICYmIHN0cmNtcChpZCwgIl9fZGVidWdfXyIpID09IDApCisgICAgICAgICAgICByZXR1cm4gIWMtPmNfb3B0aW1pemU7CisgICAgICAgIHJldHVybiAtMTsKKyAgICBjYXNlIE5hbWVDb25zdGFudF9raW5kOiB7CisgICAgICAgIFB5T2JqZWN0ICpvID0gZS0+di5OYW1lQ29uc3RhbnQudmFsdWU7CisgICAgICAgIGlmIChvID09IFB5X05vbmUpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgZWxzZSBpZiAobyA9PSBQeV9UcnVlKQorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGVsc2UgaWYgKG8gPT0gUHlfRmFsc2UpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KQEAgLTMzNzgsNiArMzQxOCw5IEBACiAgICAgY2FzZSBFbGxpcHNpc19raW5kOgogICAgICAgICBBRERPUF9PKGMsIExPQURfQ09OU1QsIFB5X0VsbGlwc2lzLCBjb25zdHMpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIE5hbWVDb25zdGFudF9raW5kOgorICAgICAgICBBRERPUF9PKGMsIExPQURfQ09OU1QsIGUtPnYuTmFtZUNvbnN0YW50LnZhbHVlLCBjb25zdHMpOworICAgICAgICBicmVhazsKICAgICAvKiBUaGUgZm9sbG93aW5nIGV4cHJzIGNhbiBiZSBhc3NpZ25tZW50IHRhcmdldHMuICovCiAgICAgY2FzZSBBdHRyaWJ1dGVfa2luZDoKICAgICAgICAgaWYgKGUtPnYuQXR0cmlidXRlLmN0eCAhPSBBdWdTdG9yZSkKQEAgLTQwNjAsOSArNDEwMyw4IEBACiB7CiAgICAgUHlTVEVudHJ5T2JqZWN0ICpzdGUgPSBjLT51LT51X3N0ZTsKICAgICBpbnQgZmxhZ3MgPSAwLCBuOwotICAgIGlmIChzdGUtPnN0ZV90eXBlICE9IE1vZHVsZUJsb2NrKQotICAgICAgICBmbGFncyB8PSBDT19ORVdMT0NBTFM7CiAgICAgaWYgKHN0ZS0+c3RlX3R5cGUgPT0gRnVuY3Rpb25CbG9jaykgeworICAgICAgICBmbGFncyB8PSBDT19ORVdMT0NBTFM7CiAgICAgICAgIGlmICghc3RlLT5zdGVfdW5vcHRpbWl6ZWQpCiAgICAgICAgICAgICBmbGFncyB8PSBDT19PUFRJTUlaRUQ7CiAgICAgICAgIGlmIChzdGUtPnN0ZV9uZXN0ZWQpCmRpZmYgLS1naXQgYS9QeXRob24vY29uZHZhci5oIGIvUHl0aG9uL2NvbmR2YXIuaAppbmRleCBiYmI0MGJhLi5lMDIyZGM3IDEwMDY0NAotLS0gYS9QeXRob24vY29uZHZhci5oCisrKyBiL1B5dGhvbi9jb25kdmFyLmgKQEAgLTI0MSw3ICsyNDEsNyBAQAogICAgICAqIGJ1dCB3ZSBhcmUgc2FmZSBiZWNhdXNlIHdlIGFyZSB1c2luZyBhIHNlbWFwaG9yZSB3aWNoIGhhcyBhbiBpbnRlcm5hbAogICAgICAqIGNvdW50LgogICAgICAqLwotICAgIHdhaXQgPSBXYWl0Rm9yU2luZ2xlT2JqZWN0KGN2LT5zZW0sIG1zKTsKKyAgICB3YWl0ID0gV2FpdEZvclNpbmdsZU9iamVjdEV4KGN2LT5zZW0sIG1zLCBGQUxTRSk7CiAgICAgUHlNVVRFWF9MT0NLKGNzKTsKICAgICBpZiAod2FpdCAhPSBXQUlUX09CSkVDVF8wKQogICAgICAgICAtLWN2LT53YWl0aW5nOwpkaWZmIC0tZ2l0IGEvUHl0aG9uL2R5bmxvYWRfb3MyLmMgYi9QeXRob24vZHlubG9hZF9vczIuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGUxYjkwNy4uMDAwMDAwMAotLS0gYS9QeXRob24vZHlubG9hZF9vczIuYworKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLQotLyogU3VwcG9ydCBmb3IgZHluYW1pYyBsb2FkaW5nIG9mIGV4dGVuc2lvbiBtb2R1bGVzICovCi0KLSNkZWZpbmUgIElOQ0xfRE9TRVJST1JTCi0jZGVmaW5lICBJTkNMX0RPU01PRFVMRU1HUgotI2luY2x1ZGUgPG9zMi5oPgotCi0jaW5jbHVkZSAiUHl0aG9uLmgiCi0jaW5jbHVkZSAiaW1wb3J0ZGwuaCIKLQotCi1jb25zdCBjaGFyICpfUHlJbXBvcnRfRHluTG9hZEZpbGV0YWJbXSA9IHsiLnB5ZCIsICIuZGxsIiwgTlVMTH07Ci0KLWRsX2Z1bmNwdHIgX1B5SW1wb3J0X0dldER5bkxvYWRGdW5jKGNvbnN0IGNoYXIgKnNob3J0bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBGSUxFICpmcCkKLXsKLSAgICBkbF9mdW5jcHRyIHA7Ci0gICAgQVBJUkVUICByYzsKLSAgICBITU9EVUxFIGhETEw7Ci0gICAgY2hhciBmYWlscmVhc29uWzI1Nl07Ci0gICAgY2hhciBmdW5jbmFtZVsyNThdOwotCi0gICAgcmMgPSBEb3NMb2FkTW9kdWxlKGZhaWxyZWFzb24sCi0gICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihmYWlscmVhc29uKSwKLSAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICZoRExMKTsKLQotICAgIGlmIChyYyAhPSBOT19FUlJPUikgewotICAgICAgICBjaGFyIGVyckJ1ZlsyNTZdOwotICAgICAgICBQeU9TX3NucHJpbnRmKGVyckJ1Ziwgc2l6ZW9mKGVyckJ1ZiksCi0gICAgICAgICAgICAgICAgICAgICAgIkRMTCBsb2FkIGZhaWxlZCwgcmMgPSAlZDogJS4yMDBzIiwKLSAgICAgICAgICAgICAgICAgICAgICByYywgZmFpbHJlYXNvbik7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbXBvcnRFcnJvciwgZXJyQnVmKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgUHlPU19zbnByaW50ZihmdW5jbmFtZSwgc2l6ZW9mKGZ1bmNuYW1lKSwgIlB5SW5pdF8lLjIwMHMiLCBzaG9ydG5hbWUpOwotICAgIHJjID0gRG9zUXVlcnlQcm9jQWRkcihoRExMLCAwTCwgZnVuY25hbWUsICZwKTsKLSAgICBpZiAocmMgIT0gTk9fRVJST1IpCi0gICAgICAgIHAgPSBOVUxMOyAvKiBTaWduaWZ5IEZhaWx1cmUgdG8gQWNxdWlyZSBFbnRyeXBvaW50ICovCi0gICAgcmV0dXJuIHA7Ci19CmRpZmYgLS1naXQgYS9QeXRob24vZHlubG9hZF9zaGxpYi5jIGIvUHl0aG9uL2R5bmxvYWRfc2hsaWIuYwppbmRleCAwY2E2NWM3Li40NmZlZDZlIDEwMDY0NAotLS0gYS9QeXRob24vZHlubG9hZF9zaGxpYi5jCisrKyBiL1B5dGhvbi9keW5sb2FkX3NobGliLmMKQEAgLTE4LDEwICsxOCw2IEBACiAKICNpZmRlZiBIQVZFX0RMRkNOX0gKICNpbmNsdWRlIDxkbGZjbi5oPgotI2Vsc2UKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiBkZWZpbmVkKFBZQ0NfR0NDKQotI2luY2x1ZGUgImRsZmNuLmgiCi0jZW5kaWYKICNlbmRpZgogCiAjaWYgKGRlZmluZWQoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX19OZXRCU0RfXykpICYmICFkZWZpbmVkKF9fRUxGX18pCkBAIC00MCwxMCArMzYsNiBAQAogI2lmZGVmIF9fQ1lHV0lOX18KICAgICAiLmRsbCIsCiAjZWxzZSAgLyogIV9fQ1lHV0lOX18gKi8KLSNpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiBkZWZpbmVkKFBZQ0NfR0NDKQotICAgICIucHlkIiwKLSAgICAiLmRsbCIsCi0jZWxzZSAgLyogIShkZWZpbmVkKFBZT1NfT1MyKSAmJiBkZWZpbmVkKFBZQ0NfR0NDKSkgKi8KICNpZmRlZiBfX1ZNUwogICAgICIuZXhlIiwKICAgICAiLkVYRSIsCkBAIC01Miw3ICs0NCw2IEBACiAgICAgIi5hYmkiIFBZVEhPTl9BQklfU1RSSU5HICIuc28iLAogICAgICIuc28iLAogI2VuZGlmICAvKiBfX1ZNUyAqLwotI2VuZGlmICAvKiBkZWZpbmVkKFBZT1NfT1MyKSAmJiBkZWZpbmVkKFBZQ0NfR0NDKSAqLwogI2VuZGlmICAvKiBfX0NZR1dJTl9fICovCiAgICAgTlVMTCwKIH07CkBAIC0xMTEsOSArMTAyLDcgQEAKICAgICAgICAgfQogICAgIH0KIAotI2lmICEoZGVmaW5lZChQWU9TX09TMikgJiYgZGVmaW5lZChQWUNDX0dDQykpCiAgICAgZGxvcGVuZmxhZ3MgPSBQeVRocmVhZFN0YXRlX0dFVCgpLT5pbnRlcnAtPmRsb3BlbmZsYWdzOwotI2VuZGlmCiAKICNpZmRlZiBfX1ZNUwogICAgIC8qIFZNUyBjdXJyZW50bHkgZG9uJ3QgYWxsb3cgYSBwYXRobmFtZSwgdXNlIGEgbG9naWNhbCBuYW1lIGluc3RlYWQgKi8KQEAgLTEyOSwxOSArMTE4LDMwIEBACiAgICAgaGFuZGxlID0gZGxvcGVuKHBhdGhuYW1lLCBkbG9wZW5mbGFncyk7CiAKICAgICBpZiAoaGFuZGxlID09IE5VTEwpIHsKLSAgICAgICAgUHlPYmplY3QgKm1vZF9uYW1lID0gTlVMTDsKLSAgICAgICAgUHlPYmplY3QgKnBhdGggPSBOVUxMOwotICAgICAgICBQeU9iamVjdCAqZXJyb3Jfb2IgPSBOVUxMOworICAgICAgICBQeU9iamVjdCAqbW9kX25hbWU7CisgICAgICAgIFB5T2JqZWN0ICpwYXRoOworICAgICAgICBQeU9iamVjdCAqZXJyb3Jfb2I7CiAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9yID0gZGxlcnJvcigpOwogICAgICAgICBpZiAoZXJyb3IgPT0gTlVMTCkKICAgICAgICAgICAgIGVycm9yID0gInVua25vd24gZGxvcGVuKCkgZXJyb3IiOwogICAgICAgICBlcnJvcl9vYiA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKGVycm9yKTsKLSAgICAgICAgcGF0aCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKHBhdGhuYW1lKTsKKyAgICAgICAgaWYgKGVycm9yX29iID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgbW9kX25hbWUgPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhzaG9ydG5hbWUpOworICAgICAgICBpZiAobW9kX25hbWUgPT0gTlVMTCkgeworICAgICAgICAgICAgUHlfREVDUkVGKGVycm9yX29iKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIHBhdGggPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhwYXRobmFtZSk7CisgICAgICAgIGlmIChwYXRoID09IE5VTEwpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihlcnJvcl9vYik7CisgICAgICAgICAgICBQeV9ERUNSRUYobW9kX25hbWUpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KICAgICAgICAgUHlFcnJfU2V0SW1wb3J0RXJyb3IoZXJyb3Jfb2IsIG1vZF9uYW1lLCBwYXRoKTsKLSAgICAgICAgUHlfWERFQ1JFRihlcnJvcl9vYik7Ci0gICAgICAgIFB5X1hERUNSRUYocGF0aCk7Ci0gICAgICAgIFB5X1hERUNSRUYobW9kX25hbWUpOworICAgICAgICBQeV9ERUNSRUYoZXJyb3Jfb2IpOworICAgICAgICBQeV9ERUNSRUYobW9kX25hbWUpOworICAgICAgICBQeV9ERUNSRUYocGF0aCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBpZiAoZnAgIT0gTlVMTCAmJiBuaGFuZGxlcyA8IDEyOCkKZGlmZiAtLWdpdCBhL1B5dGhvbi9lcnJvcnMuYyBiL1B5dGhvbi9lcnJvcnMuYwppbmRleCA2MjZiMTZlLi4xZjk1NWI1IDEwMDY0NAotLS0gYS9QeXRob24vZXJyb3JzLmMKKysrIGIvUHl0aG9uL2Vycm9ycy5jCkBAIC01ODgsNyArNTg4LDcgQEAKIAogUHlPYmplY3QgKlB5RXJyX1NldEZyb21XaW5kb3dzRXJyKGludCBpZXJyKQogewotICAgIHJldHVybiBQeUVycl9TZXRFeGNGcm9tV2luZG93c0VycldpdGhGaWxlbmFtZShQeUV4Y19XaW5kb3dzRXJyb3IsCisgICAgcmV0dXJuIFB5RXJyX1NldEV4Y0Zyb21XaW5kb3dzRXJyV2l0aEZpbGVuYW1lKFB5RXhjX09TRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGllcnIsIE5VTEwpOwogfQogUHlPYmplY3QgKlB5RXJyX1NldEZyb21XaW5kb3dzRXJyV2l0aEZpbGVuYW1lKApAQCAtNTk3LDcgKzU5Nyw3IEBACiB7CiAgICAgUHlPYmplY3QgKm5hbWUgPSBmaWxlbmFtZSA/IFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHQoZmlsZW5hbWUpIDogTlVMTDsKICAgICBQeU9iamVjdCAqcmVzdWx0ID0gUHlFcnJfU2V0RXhjRnJvbVdpbmRvd3NFcnJXaXRoRmlsZW5hbWVPYmplY3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXhjX1dpbmRvd3NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWVyciwgbmFtZSk7CiAgICAgUHlfWERFQ1JFRihuYW1lKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNjExLDcgKzYxMSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoZmlsZW5hbWUsIHdjc2xlbihmaWxlbmFtZSkpIDoKICAgICAgICAgICAgICBOVUxMOwogICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBQeUVycl9TZXRFeGNGcm9tV2luZG93c0VycldpdGhGaWxlbmFtZU9iamVjdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFeGNfV2luZG93c0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUV4Y19PU0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZXJyLCBuYW1lKTsKICAgICBQeV9YREVDUkVGKG5hbWUpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC03OTgsNyArNzk4LDEyIEBACiAgICAgUHlFcnJfRmV0Y2goJnQsICZ2LCAmdGIpOwogICAgIGYgPSBQeVN5c19HZXRPYmplY3QoInN0ZGVyciIpOwogICAgIGlmIChmICE9IE5VTEwgJiYgZiAhPSBQeV9Ob25lKSB7Ci0gICAgICAgIFB5RmlsZV9Xcml0ZVN0cmluZygiRXhjZXB0aW9uICIsIGYpOworICAgICAgICBpZiAob2JqKSB7CisgICAgICAgICAgICBQeUZpbGVfV3JpdGVTdHJpbmcoIkV4Y2VwdGlvbiBpZ25vcmVkIGluOiAiLCBmKTsKKyAgICAgICAgICAgIFB5RmlsZV9Xcml0ZU9iamVjdChvYmosIGYsIDApOworICAgICAgICAgICAgUHlGaWxlX1dyaXRlU3RyaW5nKCJcbiIsIGYpOworICAgICAgICB9CisgICAgICAgIFB5VHJhY2VCYWNrX1ByaW50KHRiLCBmKTsKICAgICAgICAgaWYgKHQpIHsKICAgICAgICAgICAgIFB5T2JqZWN0KiBtb2R1bGVOYW1lOwogICAgICAgICAgICAgY2hhciogY2xhc3NOYW1lOwpAQCAtODI4LDE1ICs4MzMsMTEgQEAKICAgICAgICAgICAgICAgICBQeUZpbGVfV3JpdGVTdHJpbmcoY2xhc3NOYW1lLCBmKTsKICAgICAgICAgICAgIGlmICh2ICYmIHYgIT0gUHlfTm9uZSkgewogICAgICAgICAgICAgICAgIFB5RmlsZV9Xcml0ZVN0cmluZygiOiAiLCBmKTsKLSAgICAgICAgICAgICAgICBQeUZpbGVfV3JpdGVPYmplY3QodiwgZiwgMCk7CisgICAgICAgICAgICAgICAgUHlGaWxlX1dyaXRlT2JqZWN0KHYsIGYsIFB5X1BSSU5UX1JBVyk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBQeUZpbGVfV3JpdGVTdHJpbmcoIlxuIiwgZik7CiAgICAgICAgICAgICBQeV9YREVDUkVGKG1vZHVsZU5hbWUpOwogICAgICAgICB9Ci0gICAgICAgIGlmIChvYmopIHsKLSAgICAgICAgICAgIFB5RmlsZV9Xcml0ZVN0cmluZygiIGluICIsIGYpOwotICAgICAgICAgICAgUHlGaWxlX1dyaXRlT2JqZWN0KG9iaiwgZiwgMCk7Ci0gICAgICAgIH0KLSAgICAgICAgUHlGaWxlX1dyaXRlU3RyaW5nKCIgaWdub3JlZFxuIiwgZik7CiAgICAgICAgIFB5RXJyX0NsZWFyKCk7IC8qIEp1c3QgaW4gY2FzZSAqLwogICAgIH0KICAgICBQeV9YREVDUkVGKHQpOwpkaWZmIC0tZ2l0IGEvUHl0aG9uL2ZpbGV1dGlscy5jIGIvUHl0aG9uL2ZpbGV1dGlscy5jCmluZGV4IGI3YzQyZTguLjI5M2NiNzcgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9maWxldXRpbHMuYworKysgYi9QeXRob24vZmlsZXV0aWxzLmMKQEAgLTYwLDcgKzYwLDcgQEAKICAgIHdvcmthcm91bmQgaXMgYWxzbyBlbmFibGVkIG9uIGVycm9yLCBmb3IgZXhhbXBsZSBpZiBnZXR0aW5nIHRoZSBsb2NhbGUKICAgIGZhaWxlZC4KIAotICAgVmFsdWVzIG9mIGxvY2FsZV9pc19hc2NpaToKKyAgIFZhbHVlcyBvZiBmb3JjZV9hc2NpaToKIAogICAgICAgIDE6IHRoZSB3b3JrYXJvdW5kIGlzIHVzZWQ6IF9QeV93Y2hhcjJjaGFyKCkgdXNlcwogICAgICAgICAgIGVuY29kZV9hc2NpaV9zdXJyb2dhdGVlc2NhcGUoKSBhbmQgX1B5X2NoYXIyd2NoYXIoKSB1c2VzCkBAIC0yNTQsOSArMjU0LDkgQEAKICAgICB3Y2hhcl90ICpyZXM7CiAgICAgc2l6ZV90IGFyZ3NpemU7CiAgICAgc2l6ZV90IGNvdW50OworI2lmZGVmIEhBVkVfTUJSVE9XQwogICAgIHVuc2lnbmVkIGNoYXIgKmluOwogICAgIHdjaGFyX3QgKm91dDsKLSNpZmRlZiBIQVZFX01CUlRPV0MKICAgICBtYnN0YXRlX3QgbWJzOwogI2VuZGlmCiAKQEAgLTI5Miw3ICsyOTIsNyBAQAogICAgICAgICAgICAgLyogT25seSB1c2UgdGhlIHJlc3VsdCBpZiBpdCBjb250YWlucyBubwogICAgICAgICAgICAgICAgc3Vycm9nYXRlIGNoYXJhY3RlcnMuICovCiAgICAgICAgICAgICBmb3IgKHRtcCA9IHJlczsgKnRtcCAhPSAwICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgKCp0bXAgPCAweGQ4MDAgfHwgKnRtcCA+IDB4ZGZmZik7IHRtcCsrKQorICAgICAgICAgICAgICAgICAgICAgICAgICFQeV9VTklDT0RFX0lTX1NVUlJPR0FURSgqdG1wKTsgdG1wKyspCiAgICAgICAgICAgICAgICAgOwogICAgICAgICAgICAgaWYgKCp0bXAgPT0gMCkgewogICAgICAgICAgICAgICAgIGlmIChzaXplICE9IE5VTEwpCkBAIC0zMzgsNyArMzM4LDcgQEAKICAgICAgICAgICAgIG1lbXNldCgmbWJzLCAwLCBzaXplb2YgbWJzKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIGlmICgqb3V0ID49IDB4ZDgwMCAmJiAqb3V0IDw9IDB4ZGZmZikgeworICAgICAgICBpZiAoUHlfVU5JQ09ERV9JU19TVVJST0dBVEUoKm91dCkpIHsKICAgICAgICAgICAgIC8qIFN1cnJvZ2F0ZSBjaGFyYWN0ZXIuICBFc2NhcGUgdGhlIG9yaWdpbmFsCiAgICAgICAgICAgICAgICBieXRlIHNlcXVlbmNlIHdpdGggc3Vycm9nYXRlZXNjYXBlLiAqLwogICAgICAgICAgICAgYXJnc2l6ZSAtPSBjb252ZXJ0ZWQ7CkBAIC03MDcsNyArNzA3LDggQEAKIF9QeV93Z2V0Y3dkKHdjaGFyX3QgKmJ1Ziwgc2l6ZV90IHNpemUpCiB7CiAjaWZkZWYgTVNfV0lORE9XUwotICAgIHJldHVybiBfd2dldGN3ZChidWYsIHNpemUpOworICAgIGludCBpc2l6ZSA9IChpbnQpUHlfTUlOKHNpemUsIElOVF9NQVgpOworICAgIHJldHVybiBfd2dldGN3ZChidWYsIGlzaXplKTsKICNlbHNlCiAgICAgY2hhciBmbmFtZVtQQVRIX01BWF07CiAgICAgd2NoYXJfdCAqd25hbWU7CmRpZmYgLS1naXQgYS9QeXRob24vZm9ybWF0dGVyX3VuaWNvZGUuYyBiL1B5dGhvbi9mb3JtYXR0ZXJfdW5pY29kZS5jCmluZGV4IDE3ZWI5NzguLmJiMTczZDkgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9mb3JtYXR0ZXJfdW5pY29kZS5jCisrKyBiL1B5dGhvbi9mb3JtYXR0ZXJfdW5pY29kZS5jCkBAIC0zMTUsNyArMzE1LDcgQEAKIAogLyogRG8gdGhlIHBhZGRpbmcsIGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBjYWxsZXItc3VwcGxpZWQKICAgIGNvbnRlbnQgZ29lcy4gKi8KLXN0YXRpYyBQeV9zc2l6ZV90CitzdGF0aWMgaW50CiBmaWxsX3BhZGRpbmcoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyLAogICAgICAgICAgICAgIFB5X3NzaXplX3QgbmNoYXJzLAogICAgICAgICAgICAgIFB5X1VDUzQgZmlsbF9jaGFyLCBQeV9zc2l6ZV90IG5fbHBhZGRpbmcsCkBAIC01NTYsNyArNTU2LDcgQEAKIHsKICAgICAvKiBVc2VkIHRvIGtlZXAgdHJhY2sgb2YgZGlnaXRzLCBkZWNpbWFsLCBhbmQgcmVtYWluZGVyLiAqLwogICAgIFB5X3NzaXplX3QgZF9wb3MgPSBkX3N0YXJ0OwotICAgIGNvbnN0IGVudW0gUHlVbmljb2RlX0tpbmQga2luZCA9IHdyaXRlci0+a2luZDsKKyAgICBjb25zdCB1bnNpZ25lZCBpbnQga2luZCA9IHdyaXRlci0+a2luZDsKICAgICBjb25zdCB2b2lkICpkYXRhID0gd3JpdGVyLT5kYXRhOwogICAgIFB5X3NzaXplX3QgcjsKIApAQCAtNzU3LDcgKzc1Nyw4IEBACiAgICAgICAgIGdvdG8gZG9uZTsKICAgICB9CiAKLSAgICBpZiAoZm9ybWF0LT53aWR0aCA9PSAtMSAmJiBmb3JtYXQtPnByZWNpc2lvbiA9PSAtMSkgeworICAgIGlmICgoZm9ybWF0LT53aWR0aCA9PSAtMSB8fCBmb3JtYXQtPndpZHRoIDw9IGxlbikKKyAgICAgICAgJiYgKGZvcm1hdC0+cHJlY2lzaW9uID09IC0xIHx8IGZvcm1hdC0+cHJlY2lzaW9uID49IGxlbikpIHsKICAgICAgICAgLyogRmFzdCBwYXRoICovCiAgICAgICAgIHJldHVybiBfUHlVbmljb2RlV3JpdGVyX1dyaXRlU3RyKHdyaXRlciwgdmFsdWUpOwogICAgIH0KQEAgLTc3MCw5ICs3NzEsMTMgQEAKIAogICAgIGNhbGNfcGFkZGluZyhsZW4sIGZvcm1hdC0+d2lkdGgsIGZvcm1hdC0+YWxpZ24sICZscGFkLCAmcnBhZCwgJnRvdGFsKTsKIAotICAgIG1heGNoYXIgPSBfUHlVbmljb2RlX0ZpbmRNYXhDaGFyKHZhbHVlLCAwLCBsZW4pOworICAgIG1heGNoYXIgPSB3cml0ZXItPm1heGNoYXI7CiAgICAgaWYgKGxwYWQgIT0gMCB8fCBycGFkICE9IDApCiAgICAgICAgIG1heGNoYXIgPSBQeV9NQVgobWF4Y2hhciwgZm9ybWF0LT5maWxsX2NoYXIpOworICAgIGlmIChQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUodmFsdWUpID4gbWF4Y2hhcikgeworICAgICAgICBQeV9VQ1M0IHZhbG1heGNoYXIgPSBfUHlVbmljb2RlX0ZpbmRNYXhDaGFyKHZhbHVlLCAwLCBsZW4pOworICAgICAgICBtYXhjaGFyID0gUHlfTUFYKG1heGNoYXIsIHZhbG1heGNoYXIpOworICAgIH0KIAogICAgIC8qIGFsbG9jYXRlIHRoZSByZXN1bHRpbmcgc3RyaW5nICovCiAgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZSh3cml0ZXIsIHRvdGFsLCBtYXhjaGFyKSA9PSAtMSkKZGlmZiAtLWdpdCBhL1B5dGhvbi9mcm96ZW4uYyBiL1B5dGhvbi9mcm96ZW4uYwppbmRleCAyNWZkYzE3Li45YmM2NjJiIDEwMDY0NAotLS0gYS9QeXRob24vZnJvemVuLmMKKysrIGIvUHl0aG9uL2Zyb3plbi5jCkBAIC0yOCw3ICsyOCw3IEBACiAKICNkZWZpbmUgU0laRSAoaW50KXNpemVvZihNX19faGVsbG9fXykKIAotc3RhdGljIHN0cnVjdCBfZnJvemVuIF9QeUltcG9ydF9Gcm96ZW5Nb2R1bGVzW10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IF9mcm96ZW4gX1B5SW1wb3J0X0Zyb3plbk1vZHVsZXNbXSA9IHsKICAgICAvKiBpbXBvcnRsaWIgKi8KICAgICB7Il9mcm96ZW5faW1wb3J0bGliIiwgX1B5X01fX2ltcG9ydGxpYiwgKGludClzaXplb2YoX1B5X01fX2ltcG9ydGxpYil9LAogICAgIC8qIFRlc3QgbW9kdWxlICovCkBAIC00Miw0ICs0Miw0IEBACiAvKiBFbWJlZGRpbmcgYXBwcyBtYXkgY2hhbmdlIHRoaXMgcG9pbnRlciB0byBwb2ludCB0byB0aGVpciBmYXZvcml0ZQogICAgY29sbGVjdGlvbiBvZiBmcm96ZW4gbW9kdWxlczogKi8KIAotc3RydWN0IF9mcm96ZW4gKlB5SW1wb3J0X0Zyb3plbk1vZHVsZXMgPSBfUHlJbXBvcnRfRnJvemVuTW9kdWxlczsKK2NvbnN0IHN0cnVjdCBfZnJvemVuICpQeUltcG9ydF9Gcm96ZW5Nb2R1bGVzID0gX1B5SW1wb3J0X0Zyb3plbk1vZHVsZXM7CmRpZmYgLS1naXQgYS9QeXRob24vZnV0dXJlLmMgYi9QeXRob24vZnV0dXJlLmMKaW5kZXggZDI0YWU0MS4uODA5NzgxNCAxMDA2NDQKLS0tIGEvUHl0aG9uL2Z1dHVyZS5jCisrKyBiL1B5dGhvbi9mdXR1cmUuYwpAQCAtNTgsMTEgKzU4LDE1IEBACiBzdGF0aWMgaW50CiBmdXR1cmVfcGFyc2UoUHlGdXR1cmVGZWF0dXJlcyAqZmYsIG1vZF90eSBtb2QsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKQogewotICAgIGludCBpLCBmb3VuZF9kb2NzdHJpbmcgPSAwLCBkb25lID0gMCwgcHJldl9saW5lID0gMDsKKyAgICBpbnQgaSwgZG9uZSA9IDAsIHByZXZfbGluZSA9IDA7CisgICAgc3RtdF90eSBmaXJzdDsKIAogICAgIGlmICghKG1vZC0+a2luZCA9PSBNb2R1bGVfa2luZCB8fCBtb2QtPmtpbmQgPT0gSW50ZXJhY3RpdmVfa2luZCkpCiAgICAgICAgIHJldHVybiAxOwogCisgICAgaWYgKGFzZGxfc2VxX0xFTihtb2QtPnYuTW9kdWxlLmJvZHkpID09IDApCisgICAgICAgIHJldHVybiAxOworCiAgICAgLyogQSBzdWJzZXF1ZW50IHBhc3Mgd2lsbCBkZXRlY3QgZnV0dXJlIGltcG9ydHMgdGhhdCBkb24ndAogICAgICAgIGFwcGVhciBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaWxlLiAgVGhlcmUncyBvbmUgY2FzZSwKICAgICAgICBob3dldmVyLCB0aGF0IGlzIGVhc2llciB0byBoYW5kbGUgaGVyZTogQSBzZXJpZXMgb2YgaW1wb3J0cwpAQCAtNzEsOCArNzUsMTMgQEAKICAgICAgICBidXQgaXMgcHJlY2VkZWQgYnkgYSByZWd1bGFyIGltcG9ydC4KICAgICAqLwogCisgICAgaSA9IDA7CisgICAgZmlyc3QgPSAoc3RtdF90eSlhc2RsX3NlcV9HRVQobW9kLT52Lk1vZHVsZS5ib2R5LCBpKTsKKyAgICBpZiAoZmlyc3QtPmtpbmQgPT0gRXhwcl9raW5kICYmIGZpcnN0LT52LkV4cHIudmFsdWUtPmtpbmQgPT0gU3RyX2tpbmQpCisgICAgICAgIGkrKzsKIAotICAgIGZvciAoaSA9IDA7IGkgPCBhc2RsX3NlcV9MRU4obW9kLT52Lk1vZHVsZS5ib2R5KTsgaSsrKSB7CisKKyAgICBmb3IgKDsgaSA8IGFzZGxfc2VxX0xFTihtb2QtPnYuTW9kdWxlLmJvZHkpOyBpKyspIHsKICAgICAgICAgc3RtdF90eSBzID0gKHN0bXRfdHkpYXNkbF9zZXFfR0VUKG1vZC0+di5Nb2R1bGUuYm9keSwgaSk7CiAKICAgICAgICAgaWYgKGRvbmUgJiYgcy0+bGluZW5vID4gcHJldl9saW5lKQpAQCAtOTksMTggKzEwOCwxMyBAQAogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICAgICBmZi0+ZmZfbGluZW5vID0gcy0+bGluZW5vOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgZG9uZSA9IDE7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAocy0+a2luZCA9PSBFeHByX2tpbmQgJiYgIWZvdW5kX2RvY3N0cmluZykgewotICAgICAgICAgICAgZXhwcl90eSBlID0gcy0+di5FeHByLnZhbHVlOwotICAgICAgICAgICAgaWYgKGUtPmtpbmQgIT0gU3RyX2tpbmQpCi0gICAgICAgICAgICAgICAgZG9uZSA9IDE7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZm91bmRfZG9jc3RyaW5nID0gMTsKLSAgICAgICAgfQotICAgICAgICBlbHNlCisgICAgICAgIGVsc2UgewogICAgICAgICAgICAgZG9uZSA9IDE7CisgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9QeXRob24vZ2V0YXJncy5jIGIvUHl0aG9uL2dldGFyZ3MuYwppbmRleCBhZTkzMWI5Li4yYzI2MjhmIDEwMDY0NAotLS0gYS9QeXRob24vZ2V0YXJncy5jCisrKyBiL1B5dGhvbi9nZXRhcmdzLmMKQEAgLTQ2LDE0ICs0NiwxNiBAQAogfSBmcmVlbGlzdGVudHJ5X3Q7CiAKIHR5cGVkZWYgc3RydWN0IHsKLSAgaW50IGZpcnN0X2F2YWlsYWJsZTsKICAgZnJlZWxpc3RlbnRyeV90ICplbnRyaWVzOworICBpbnQgZmlyc3RfYXZhaWxhYmxlOworICBpbnQgZW50cmllc19tYWxsb2NlZDsKIH0gZnJlZWxpc3RfdDsKIAorI2RlZmluZSBTVEFUSUNfRlJFRUxJU1RfRU5UUklFUyA4CiAKIC8qIEZvcndhcmQgKi8KIHN0YXRpYyBpbnQgdmdldGFyZ3MxKFB5T2JqZWN0ICosIGNvbnN0IGNoYXIgKiwgdmFfbGlzdCAqLCBpbnQpOwotc3RhdGljIHZvaWQgc2V0ZXJyb3IoaW50LCBjb25zdCBjaGFyICosIGludCAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CitzdGF0aWMgdm9pZCBzZXRlcnJvcihQeV9zc2l6ZV90LCBjb25zdCBjaGFyICosIGludCAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CiBzdGF0aWMgY2hhciAqY29udmVydGl0ZW0oUHlPYmplY3QgKiwgY29uc3QgY2hhciAqKiwgdmFfbGlzdCAqLCBpbnQsIGludCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKiwgc2l6ZV90LCBmcmVlbGlzdF90ICopOwogc3RhdGljIGNoYXIgKmNvbnZlcnR0dXBsZShQeU9iamVjdCAqLCBjb25zdCBjaGFyICoqLCB2YV9saXN0ICosIGludCwKQEAgLTE4Nyw3ICsxODksOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWVsaXN0LT5lbnRyaWVzW2luZGV4XS5pdGVtKTsKICAgICAgIH0KICAgICB9Ci0gICAgUHlNZW1fRlJFRShmcmVlbGlzdC0+ZW50cmllcyk7CisgICAgaWYgKGZyZWVsaXN0LT5lbnRyaWVzX21hbGxvY2VkKQorICAgICAgICBQeU1lbV9GUkVFKGZyZWVsaXN0LT5lbnRyaWVzKTsKICAgICByZXR1cm4gcmV0dmFsOwogfQogCkBAIC0xOTcsNiArMjAwLDggQEAKIHsKICAgICBjaGFyIG1zZ2J1ZlsyNTZdOwogICAgIGludCBsZXZlbHNbMzJdOworICAgIGZyZWVsaXN0ZW50cnlfdCBzdGF0aWNfZW50cmllc1tTVEFUSUNfRlJFRUxJU1RfRU5UUklFU107CisgICAgZnJlZWxpc3RfdCBmcmVlbGlzdCA9IHtzdGF0aWNfZW50cmllcywgMCwgMH07CiAgICAgY29uc3QgY2hhciAqZm5hbWUgPSBOVUxMOwogICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UgPSBOVUxMOwogICAgIGludCBtaW4gPSAtMTsKQEAgLTIwNiw3ICsyMTEsNiBAQAogICAgIGNvbnN0IGNoYXIgKmZvcm1hdHNhdmUgPSBmb3JtYXQ7CiAgICAgUHlfc3NpemVfdCBpLCBsZW47CiAgICAgY2hhciAqbXNnOwotICAgIGZyZWVsaXN0X3QgZnJlZWxpc3QgPSB7MCwgTlVMTH07CiAgICAgaW50IGNvbXBhdCA9IGZsYWdzICYgRkxBR19DT01QQVQ7CiAKICAgICBhc3NlcnQoY29tcGF0IHx8IChhcmdzICE9IChQeU9iamVjdCopTlVMTCkpOwpAQCAtMjQwLDE1ICsyNDQsMTUgQEAKICAgICAgICAgICAgIG1lc3NhZ2UgPSBmb3JtYXQ7CiAgICAgICAgICAgICBlbmRmbXQgPSAxOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ3wnOgorICAgICAgICAgICAgaWYgKGxldmVsID09IDApCisgICAgICAgICAgICAgICAgbWluID0gbWF4OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBpZiAobGV2ZWwgPT0gMCkgewotICAgICAgICAgICAgICAgIGlmIChjID09ICdPJykKLSAgICAgICAgICAgICAgICAgICAgbWF4Kys7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoUHlfSVNBTFBIQShQeV9DSEFSTUFTSyhjKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoUHlfSVNBTFBIQShQeV9DSEFSTUFTSyhjKSkpCiAgICAgICAgICAgICAgICAgICAgIGlmIChjICE9ICdlJykgLyogc2tpcCBlbmNvZGVkICovCiAgICAgICAgICAgICAgICAgICAgICAgICBtYXgrKzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJ3wnKQotICAgICAgICAgICAgICAgICAgICBtaW4gPSBtYXg7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjYyLDEwICsyNjYsMTMgQEAKIAogICAgIGZvcm1hdCA9IGZvcm1hdHNhdmU7CiAKLSAgICBmcmVlbGlzdC5lbnRyaWVzID0gUHlNZW1fTkVXKGZyZWVsaXN0ZW50cnlfdCwgbWF4KTsKLSAgICBpZiAoZnJlZWxpc3QuZW50cmllcyA9PSBOVUxMKSB7Ci0gICAgICAgIFB5RXJyX05vTWVtb3J5KCk7Ci0gICAgICAgIHJldHVybiAwOworICAgIGlmIChtYXggPiBTVEFUSUNfRlJFRUxJU1RfRU5UUklFUykgeworICAgICAgICBmcmVlbGlzdC5lbnRyaWVzID0gUHlNZW1fTkVXKGZyZWVsaXN0ZW50cnlfdCwgbWF4KTsKKyAgICAgICAgaWYgKGZyZWVsaXN0LmVudHJpZXMgPT0gTlVMTCkgeworICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIGZyZWVsaXN0LmVudHJpZXNfbWFsbG9jZWQgPSAxOwogICAgIH0KIAogICAgIGlmIChjb21wYXQpIHsKQEAgLTM1MCw3ICszNTcsNyBAQAogCiAKIHN0YXRpYyB2b2lkCi1zZXRlcnJvcihpbnQgaWFyZywgY29uc3QgY2hhciAqbXNnLCBpbnQgKmxldmVscywgY29uc3QgY2hhciAqZm5hbWUsCitzZXRlcnJvcihQeV9zc2l6ZV90IGlhcmcsIGNvbnN0IGNoYXIgKm1zZywgaW50ICpsZXZlbHMsIGNvbnN0IGNoYXIgKmZuYW1lLAogICAgICAgICAgY29uc3QgY2hhciAqbWVzc2FnZSkKIHsKICAgICBjaGFyIGJ1Zls1MTJdOwpAQCAtMzY2LDcgKzM3Myw3IEBACiAgICAgICAgIH0KICAgICAgICAgaWYgKGlhcmcgIT0gMCkgewogICAgICAgICAgICAgUHlPU19zbnByaW50ZihwLCBzaXplb2YoYnVmKSAtIChwIC0gYnVmKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50ICVkIiwgaWFyZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudCAlIiBQWV9GT1JNQVRfU0laRV9UICJkIiwgaWFyZyk7CiAgICAgICAgICAgICBpID0gMDsKICAgICAgICAgICAgIHAgKz0gc3RybGVuKHApOwogICAgICAgICAgICAgd2hpbGUgKGxldmVsc1tpXSA+IDAgJiYgaSA8IDMyICYmIChpbnQpKHAtYnVmKSA8IDIyMCkgewpAQCAtNTYzLDcgKzU3MCw3IEBACiAgICAgICAgICAgICAgICAgInNpemUgZG9lcyBub3QgZml0IGluIGFuIGludCIpOyBcCiAgICAgICAgICAgICByZXR1cm4gY29udmVydGVycigiIiwgYXJnLCBtc2didWYsIGJ1ZnNpemUpOyBcCiAgICAgICAgIH0gXAotICAgICAgICAqcT1zOyBcCisgICAgICAgICpxID0gKGludClzOyBcCiAgICAgfQogI2RlZmluZSBCVUZGRVJfTEVOICAgICAgKChmbGFncyAmIEZMQUdfU0laRV9UKSA/ICpxMjoqcSkKICNkZWZpbmUgUkVUVVJOX0VSUl9PQ0NVUlJFRCByZXR1cm4gbXNnYnVmCkBAIC0xNDIxLDcgKzE0MjgsOCBAQAogICAgIGludCBtYXggPSBJTlRfTUFYOwogICAgIGludCBpLCBsZW4sIG5hcmdzLCBua2V5d29yZHM7CiAgICAgUHlPYmplY3QgKmN1cnJlbnRfYXJnOwotICAgIGZyZWVsaXN0X3QgZnJlZWxpc3QgPSB7MCwgTlVMTH07CisgICAgZnJlZWxpc3RlbnRyeV90IHN0YXRpY19lbnRyaWVzW1NUQVRJQ19GUkVFTElTVF9FTlRSSUVTXTsKKyAgICBmcmVlbGlzdF90IGZyZWVsaXN0ID0ge3N0YXRpY19lbnRyaWVzLCAwLCAwfTsKIAogICAgIGFzc2VydChhcmdzICE9IE5VTEwgJiYgUHlUdXBsZV9DaGVjayhhcmdzKSk7CiAgICAgYXNzZXJ0KGtleXdvcmRzID09IE5VTEwgfHwgUHlEaWN0X0NoZWNrKGtleXdvcmRzKSk7CkBAIC0xNDQ1LDEwICsxNDUzLDEzIEBACiAgICAgZm9yIChsZW49MDsga3dsaXN0W2xlbl07IGxlbisrKQogICAgICAgICBjb250aW51ZTsKIAotICAgIGZyZWVsaXN0LmVudHJpZXMgPSBQeU1lbV9ORVcoZnJlZWxpc3RlbnRyeV90LCBsZW4pOwotICAgIGlmIChmcmVlbGlzdC5lbnRyaWVzID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKGxlbiA+IFNUQVRJQ19GUkVFTElTVF9FTlRSSUVTKSB7CisgICAgICAgIGZyZWVsaXN0LmVudHJpZXMgPSBQeU1lbV9ORVcoZnJlZWxpc3RlbnRyeV90LCBsZW4pOworICAgICAgICBpZiAoZnJlZWxpc3QuZW50cmllcyA9PSBOVUxMKSB7CisgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgZnJlZWxpc3QuZW50cmllc19tYWxsb2NlZCA9IDE7CiAgICAgfQogCiAgICAgbmFyZ3MgPSBQeVR1cGxlX0dFVF9TSVpFKGFyZ3MpOwpAQCAtMTU3NCwyMCArMTU4NSwxNiBAQAogICAgICAgICBQeV9zc2l6ZV90IHBvcyA9IDA7CiAgICAgICAgIHdoaWxlIChQeURpY3RfTmV4dChrZXl3b3JkcywgJnBvcywgJmtleSwgJnZhbHVlKSkgewogICAgICAgICAgICAgaW50IG1hdGNoID0gMDsKLSAgICAgICAgICAgIGNoYXIgKmtzOwogICAgICAgICAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2soa2V5KSkgewogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrZXl3b3JkcyBtdXN0IGJlIHN0cmluZ3MiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMCwgJmZyZWVsaXN0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIC8qIGNoZWNrIHRoYXQgX1B5VW5pY29kZV9Bc1N0cmluZygpIHJlc3VsdCBpcyBub3QgTlVMTCAqLwotICAgICAgICAgICAga3MgPSBfUHlVbmljb2RlX0FzU3RyaW5nKGtleSk7Ci0gICAgICAgICAgICBpZiAoa3MgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewotICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmNtcChrcywga3dsaXN0W2ldKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgeworICAgICAgICAgICAgICAgIGlmICghUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcoa2V5LCBrd2xpc3RbaV0pKSB7CisgICAgICAgICAgICAgICAgICAgIG1hdGNoID0gMTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCFtYXRjaCkgewpkaWZmIC0tZ2l0IGEvUHl0aG9uL2ltcG9ydC5jIGIvUHl0aG9uL2ltcG9ydC5jCmluZGV4IDI2MjYxZTEuLjBiYjQ2ZDIgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9pbXBvcnQuYworKysgYi9QeXRob24vaW1wb3J0LmMKQEAgLTIwNCw4ICsyMDQsMTEgQEAKICAgICBpZiAoaW1wb3J0X2xvY2tfbGV2ZWwgPiAxKSB7CiAgICAgICAgIC8qIEZvcmtlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIGltcG9ydCAqLwogICAgICAgICBsb25nIG1lID0gUHlUaHJlYWRfZ2V0X3RocmVhZF9pZGVudCgpOwotICAgICAgICBQeVRocmVhZF9hY3F1aXJlX2xvY2soaW1wb3J0X2xvY2ssIDApOwotICAgICAgICAvKiBYWFg6IGNhbiB0aGUgcHJldmlvdXMgbGluZSBmYWlsPyAqLworICAgICAgICAvKiBUaGUgZm9sbG93aW5nIGNvdWxkIGZhaWwgaWYgdGhlIGxvY2sgaXMgYWxyZWFkeSBoZWxkLCBidXQgZm9ya2luZyBhcworICAgICAgICAgICBhIHNpZGUtZWZmZWN0IG9mIGFuIGltcG9ydCBpcyBhKSByYXJlLCBiKSBudXRzLCBhbmQgYykgZGlmZmljdWx0IHRvCisgICAgICAgICAgIGRvIHRoYW5rcyB0byB0aGUgbG9jayBvbmx5IGJlaW5nIGhlbGQgd2hlbiBkb2luZyBpbmRpdmlkdWFsIG1vZHVsZQorICAgICAgICAgICBsb2NrcyBwZXIgaW1wb3J0LiAqLworICAgICAgICBQeVRocmVhZF9hY3F1aXJlX2xvY2soaW1wb3J0X2xvY2ssIE5PV0FJVF9MT0NLKTsKICAgICAgICAgaW1wb3J0X2xvY2tfdGhyZWFkID0gbWU7CiAgICAgICAgIGltcG9ydF9sb2NrX2xldmVsLS07CiAgICAgfSBlbHNlIHsKQEAgLTI5Miw2ICsyOTUsMzAgQEAKICAgICBOVUxMCiB9OwogCitzdGF0aWMgaW50Citpc19lc3NlbnRpYWxfbW9kdWxlKFB5T2JqZWN0ICpuYW1lKQoreworICAgIFB5X3NzaXplX3QgbmFtZV9sZW47CisgICAgY2hhciAqbmFtZV9zdHIgPSBQeVVuaWNvZGVfQXNVVEY4QW5kU2l6ZShuYW1lLCAmbmFtZV9sZW4pOworCisgICAgaWYgKG5hbWVfc3RyID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGlmIChzdHJjbXAobmFtZV9zdHIsICJidWlsdGlucyIpID09IDApCisgICAgICAgIHJldHVybiAxOworICAgIGlmIChzdHJjbXAobmFtZV9zdHIsICJzeXMiKSA9PSAwKQorICAgICAgICByZXR1cm4gMTsKKyAgICAvKiBUaGVzZSBhcmUgYWxsIG5lZWRlZCBmb3Igc3RkZXJyIHRvIHN0aWxsIGZ1bmN0aW9uICovCisgICAgaWYgKHN0cmNtcChuYW1lX3N0ciwgImNvZGVjcyIpID09IDApCisgICAgICAgIHJldHVybiAxOworICAgIGlmIChzdHJjbXAobmFtZV9zdHIsICJfY29kZWNzIikgPT0gMCkKKyAgICAgICAgcmV0dXJuIDE7CisgICAgaWYgKHN0cm5jbXAobmFtZV9zdHIsICJlbmNvZGluZ3MuIiwgMTApID09IDApCisgICAgICAgIHJldHVybiAxOworICAgIHJldHVybiAwOworfQorCiAKIC8qIFVuLWluaXRpYWxpemUgdGhpbmdzLCBhcyBnb29kIGFzIHdlIGNhbiAqLwogCkBAIC0zNzEsOSArMzk4LDcgQEAKICAgICAgICAgICAgIGlmICh2YWx1ZS0+b2JfcmVmY250ICE9IDEpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0NoZWNrKGtleSkgJiYgUHlNb2R1bGVfQ2hlY2sodmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9Db21wYXJlV2l0aEFTQ0lJU3RyaW5nKGtleSwgImJ1aWx0aW5zIikgPT0gMCkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9Db21wYXJlV2l0aEFTQ0lJU3RyaW5nKGtleSwgInN5cyIpID09IDApCisgICAgICAgICAgICAgICAgaWYgKGlzX2Vzc2VudGlhbF9tb2R1bGUoa2V5KSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgaWYgKFB5X1ZlcmJvc2VGbGFnKQogICAgICAgICAgICAgICAgICAgICBQeVN5c19Gb3JtYXRTdGRlcnIoCkBAIC0zODksOSArNDE0LDcgQEAKICAgICBwb3MgPSAwOwogICAgIHdoaWxlIChQeURpY3RfTmV4dChtb2R1bGVzLCAmcG9zLCAma2V5LCAmdmFsdWUpKSB7CiAgICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2soa2V5KSAmJiBQeU1vZHVsZV9DaGVjayh2YWx1ZSkpIHsKLSAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfQ29tcGFyZVdpdGhBU0NJSVN0cmluZyhrZXksICJidWlsdGlucyIpID09IDApCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcoa2V5LCAic3lzIikgPT0gMCkKKyAgICAgICAgICAgIGlmIChpc19lc3NlbnRpYWxfbW9kdWxlKGtleSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBpZiAoUHlfVmVyYm9zZUZsYWcpCiAgICAgICAgICAgICAgICAgUHlTeXNfRm9ybWF0U3RkZXJyKCIjIGNsZWFudXBbMl0gJVVcbiIsIGtleSk7CkBAIC00MDAsMjQgKzQyMywyOCBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgLyogTmV4dCwgZGVsZXRlIHN5cyBhbmQgYnVpbHRpbnMgKGluIHRoYXQgb3JkZXIpICovCi0gICAgdmFsdWUgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhtb2R1bGVzLCAic3lzIik7Ci0gICAgaWYgKHZhbHVlICE9IE5VTEwgJiYgUHlNb2R1bGVfQ2hlY2sodmFsdWUpKSB7Ci0gICAgICAgIGlmIChQeV9WZXJib3NlRmxhZykKLSAgICAgICAgICAgIFB5U3lzX1dyaXRlU3RkZXJyKCIjIGNsZWFudXAgc3lzXG4iKTsKLSAgICAgICAgX1B5TW9kdWxlX0NsZWFyKHZhbHVlKTsKLSAgICAgICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcobW9kdWxlcywgInN5cyIsIFB5X05vbmUpOwotICAgIH0KLSAgICB2YWx1ZSA9IFB5RGljdF9HZXRJdGVtU3RyaW5nKG1vZHVsZXMsICJidWlsdGlucyIpOwotICAgIGlmICh2YWx1ZSAhPSBOVUxMICYmIFB5TW9kdWxlX0NoZWNrKHZhbHVlKSkgewotICAgICAgICBpZiAoUHlfVmVyYm9zZUZsYWcpCi0gICAgICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycigiIyBjbGVhbnVwIGJ1aWx0aW5zXG4iKTsKLSAgICAgICAgX1B5TW9kdWxlX0NsZWFyKHZhbHVlKTsKLSAgICAgICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcobW9kdWxlcywgImJ1aWx0aW5zIiwgUHlfTm9uZSk7CisgICAgLyogQ29sbGVjdCBnYXJiYWdlIHJlbWFpbmluZyBhZnRlciBkZWxldGluZyB0aGUgbW9kdWxlcy4gTW9zdGx5CisgICAgICAgcmVmZXJlbmNlIGN5Y2xlcyBjcmVhdGVkIGJ5IGNsYXNzZXMuICovCisgICAgUHlHQ19Db2xsZWN0KCk7CisKKyAgICAvKiBEdW1wIEdDIHN0YXRzIGJlZm9yZSBpdCdzIHRvbyBsYXRlLCBzaW5jZSBpdCB1c2VzIHRoZSB3YXJuaW5ncworICAgICAgIG1hY2hpbmVyeS4gKi8KKyAgICBfUHlHQ19EdW1wU2h1dGRvd25TdGF0cygpOworCisgICAgLyogTmV4dCwgZGVsZXRlIGFsbCByZW1haW5pbmcgbW9kdWxlcyAqLworICAgIHBvcyA9IDA7CisgICAgd2hpbGUgKFB5RGljdF9OZXh0KG1vZHVsZXMsICZwb3MsICZrZXksICZ2YWx1ZSkpIHsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9DaGVjayhrZXkpICYmIFB5TW9kdWxlX0NoZWNrKHZhbHVlKSkgeworICAgICAgICAgICAgaWYgKFB5X1ZlcmJvc2VGbGFnKQorICAgICAgICAgICAgICAgIFB5U3lzX0Zvcm1hdFN0ZGVycigiIyBjbGVhbnVwWzNdICVVXG4iLCBrZXkpOworICAgICAgICAgICAgX1B5TW9kdWxlX0NsZWFyKHZhbHVlKTsKKyAgICAgICAgICAgIFB5RGljdF9TZXRJdGVtKG1vZHVsZXMsIGtleSwgUHlfTm9uZSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICAvKiBGaW5hbGx5LCBjbGVhciBhbmQgZGVsZXRlIHRoZSBtb2R1bGVzIGRpcmVjdG9yeSAqLwogICAgIFB5RGljdF9DbGVhcihtb2R1bGVzKTsKKyAgICBfUHlHQ19Db2xsZWN0Tm9GYWlsKCk7CiAgICAgaW50ZXJwLT5tb2R1bGVzID0gTlVMTDsKICAgICBQeV9ERUNSRUYobW9kdWxlcyk7CiB9CkBAIC00NTEsMTIgKzQ3OCwxMiBAQAogCiAvKiBNYWdpYyBmb3IgZXh0ZW5zaW9uIG1vZHVsZXMgKGJ1aWx0LWluIGFzIHdlbGwgYXMgZHluYW1pY2FsbHkKICAgIGxvYWRlZCkuICBUbyBwcmV2ZW50IGluaXRpYWxpemluZyBhbiBleHRlbnNpb24gbW9kdWxlIG1vcmUgdGhhbgotICAgb25jZSwgd2Uga2VlcCBhIHN0YXRpYyBkaWN0aW9uYXJ5ICdleHRlbnNpb25zJyBrZXllZCBieSBtb2R1bGUgbmFtZQotICAgKGZvciBidWlsdC1pbiBtb2R1bGVzKSBvciBieSBmaWxlbmFtZSAoZm9yIGR5bmFtaWNhbGx5IGxvYWRlZAotICAgbW9kdWxlcyksIGNvbnRhaW5pbmcgdGhlc2UgbW9kdWxlcy4gIEEgY29weSBvZiB0aGUgbW9kdWxlJ3MKLSAgIGRpY3Rpb25hcnkgaXMgc3RvcmVkIGJ5IGNhbGxpbmcgX1B5SW1wb3J0X0ZpeHVwRXh0ZW5zaW9uT2JqZWN0KCkKLSAgIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBtb2R1bGUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gc3VjY2VlZHMuICBBCi0gICBjb3B5IGNhbiBiZSByZXRyaWV2ZWQgZnJvbSB0aGVyZSBieSBjYWxsaW5nCisgICBvbmNlLCB3ZSBrZWVwIGEgc3RhdGljIGRpY3Rpb25hcnkgJ2V4dGVuc2lvbnMnIGtleWVkIGJ5IHRoZSB0dXBsZQorICAgKG1vZHVsZSBuYW1lLCBtb2R1bGUgbmFtZSkgIChmb3IgYnVpbHQtaW4gbW9kdWxlcykgb3IgYnkKKyAgIChmaWxlbmFtZSwgbW9kdWxlIG5hbWUpIChmb3IgZHluYW1pY2FsbHkgbG9hZGVkIG1vZHVsZXMpLCBjb250YWluaW5nIHRoZXNlCisgICBtb2R1bGVzLiAgQSBjb3B5IG9mIHRoZSBtb2R1bGUncyBkaWN0aW9uYXJ5IGlzIHN0b3JlZCBieSBjYWxsaW5nCisgICBfUHlJbXBvcnRfRml4dXBFeHRlbnNpb25PYmplY3QoKSBpbW1lZGlhdGVseSBhZnRlciB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uCisgICBmdW5jdGlvbiBzdWNjZWVkcy4gIEEgY29weSBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlcmUgYnkgY2FsbGluZwogICAgX1B5SW1wb3J0X0ZpbmRFeHRlbnNpb25PYmplY3QoKS4KIAogICAgTW9kdWxlcyB3aGljaCBkbyBzdXBwb3J0IG11bHRpcGxlIGluaXRpYWxpemF0aW9uIHNldCB0aGVpciBtX3NpemUKQEAgLTQ2OSw4ICs0OTYsOSBAQAogX1B5SW1wb3J0X0ZpeHVwRXh0ZW5zaW9uT2JqZWN0KFB5T2JqZWN0ICptb2QsIFB5T2JqZWN0ICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpmaWxlbmFtZSkKIHsKLSAgICBQeU9iamVjdCAqbW9kdWxlcywgKmRpY3Q7CisgICAgUHlPYmplY3QgKm1vZHVsZXMsICpkaWN0LCAqa2V5OwogICAgIHN0cnVjdCBQeU1vZHVsZURlZiAqZGVmOworICAgIGludCByZXM7CiAgICAgaWYgKGV4dGVuc2lvbnMgPT0gTlVMTCkgewogICAgICAgICBleHRlbnNpb25zID0gUHlEaWN0X05ldygpOwogICAgICAgICBpZiAoZXh0ZW5zaW9ucyA9PSBOVUxMKQpAQCAtNTA3LDcgKzUzNSwxMyBAQAogICAgICAgICBpZiAoZGVmLT5tX2Jhc2UubV9jb3B5ID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgfQotICAgIFB5RGljdF9TZXRJdGVtKGV4dGVuc2lvbnMsIGZpbGVuYW1lLCAoUHlPYmplY3QqKWRlZik7CisgICAga2V5ID0gUHlUdXBsZV9QYWNrKDIsIGZpbGVuYW1lLCBuYW1lKTsKKyAgICBpZiAoa2V5ID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKyAgICByZXMgPSBQeURpY3RfU2V0SXRlbShleHRlbnNpb25zLCBrZXksIChQeU9iamVjdCAqKWRlZik7CisgICAgUHlfREVDUkVGKGtleSk7CisgICAgaWYgKHJlcyA8IDApCisgICAgICAgIHJldHVybiAtMTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtNTI3LDExICs1NjEsMTUgQEAKIFB5T2JqZWN0ICoKIF9QeUltcG9ydF9GaW5kRXh0ZW5zaW9uT2JqZWN0KFB5T2JqZWN0ICpuYW1lLCBQeU9iamVjdCAqZmlsZW5hbWUpCiB7Ci0gICAgUHlPYmplY3QgKm1vZCwgKm1kaWN0OworICAgIFB5T2JqZWN0ICptb2QsICptZGljdCwgKmtleTsKICAgICBQeU1vZHVsZURlZiogZGVmOwogICAgIGlmIChleHRlbnNpb25zID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIGRlZiA9IChQeU1vZHVsZURlZiopUHlEaWN0X0dldEl0ZW0oZXh0ZW5zaW9ucywgZmlsZW5hbWUpOworICAgIGtleSA9IFB5VHVwbGVfUGFjaygyLCBmaWxlbmFtZSwgbmFtZSk7CisgICAgaWYgKGtleSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBkZWYgPSAoUHlNb2R1bGVEZWYgKilQeURpY3RfR2V0SXRlbShleHRlbnNpb25zLCBrZXkpOworICAgIFB5X0RFQ1JFRihrZXkpOwogICAgIGlmIChkZWYgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgaWYgKGRlZi0+bV9zaXplID09IC0xKSB7CkBAIC02OTAsNyArNzI4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vIGludGVycHJldGVyISIpOwogICAgICAgICB9CiAKLSAgICAgICAgcGF0aG9iaiA9IF9QeU9iamVjdF9DYWxsTWV0aG9kT2JqSWRBcmdzKGludGVycC0+aW1wb3J0bGliLAorICAgICAgICBwYXRob2JqID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZE9iakFyZ3MoaW50ZXJwLT5pbXBvcnRsaWIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUHlJZF9fZ2V0X3NvdXJjZWZpbGUsIGNwYXRob2JqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAgICAgICAgIGlmIChwYXRob2JqID09IE5VTEwpCkBAIC04MzIsNyArODcwLDcgQEAKIAogCiAvKiBGb3J3YXJkICovCi1zdGF0aWMgc3RydWN0IF9mcm96ZW4gKiBmaW5kX2Zyb3plbihQeU9iamVjdCAqKTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgX2Zyb3plbiAqIGZpbmRfZnJvemVuKFB5T2JqZWN0ICopOwogCiAKIC8qIEhlbHBlciB0byB0ZXN0IGZvciBidWlsdC1pbiBtb2R1bGUgKi8KQEAgLTk2OSwxMCArMTAwNywxMCBAQAogCiAvKiBGcm96ZW4gbW9kdWxlcyAqLwogCi1zdGF0aWMgc3RydWN0IF9mcm96ZW4gKgorc3RhdGljIGNvbnN0IHN0cnVjdCBfZnJvemVuICoKIGZpbmRfZnJvemVuKFB5T2JqZWN0ICpuYW1lKQogewotICAgIHN0cnVjdCBfZnJvemVuICpwOworICAgIGNvbnN0IHN0cnVjdCBfZnJvemVuICpwOwogCiAgICAgaWYgKG5hbWUgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC05ODksNyArMTAyNyw3IEBACiBzdGF0aWMgUHlPYmplY3QgKgogZ2V0X2Zyb3plbl9vYmplY3QoUHlPYmplY3QgKm5hbWUpCiB7Ci0gICAgc3RydWN0IF9mcm96ZW4gKnAgPSBmaW5kX2Zyb3plbihuYW1lKTsKKyAgICBjb25zdCBzdHJ1Y3QgX2Zyb3plbiAqcCA9IGZpbmRfZnJvemVuKG5hbWUpOwogICAgIGludCBzaXplOwogCiAgICAgaWYgKHAgPT0gTlVMTCkgewpAQCAtMTAxMyw3ICsxMDUxLDcgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBpc19mcm96ZW5fcGFja2FnZShQeU9iamVjdCAqbmFtZSkKIHsKLSAgICBzdHJ1Y3QgX2Zyb3plbiAqcCA9IGZpbmRfZnJvemVuKG5hbWUpOworICAgIGNvbnN0IHN0cnVjdCBfZnJvemVuICpwID0gZmluZF9mcm96ZW4obmFtZSk7CiAgICAgaW50IHNpemU7CiAKICAgICBpZiAocCA9PSBOVUxMKSB7CkBAIC0xMDQwLDcgKzEwNzgsNyBAQAogaW50CiBQeUltcG9ydF9JbXBvcnRGcm96ZW5Nb2R1bGVPYmplY3QoUHlPYmplY3QgKm5hbWUpCiB7Ci0gICAgc3RydWN0IF9mcm96ZW4gKnA7CisgICAgY29uc3Qgc3RydWN0IF9mcm96ZW4gKnA7CiAgICAgUHlPYmplY3QgKmNvLCAqbSwgKnBhdGg7CiAgICAgaW50IGlzcGFja2FnZTsKICAgICBpbnQgc2l6ZTsKQEAgLTEwNjksMTkgKzExMDcsMTcgQEAKICAgICAgICAgZ290byBlcnJfcmV0dXJuOwogICAgIH0KICAgICBpZiAoaXNwYWNrYWdlKSB7Ci0gICAgICAgIC8qIFNldCBfX3BhdGhfXyB0byB0aGUgcGFja2FnZSBuYW1lICovCisgICAgICAgIC8qIFNldCBfX3BhdGhfXyB0byB0aGUgZW1wdHkgbGlzdCAqLwogICAgICAgICBQeU9iamVjdCAqZCwgKmw7CiAgICAgICAgIGludCBlcnI7CiAgICAgICAgIG0gPSBQeUltcG9ydF9BZGRNb2R1bGVPYmplY3QobmFtZSk7CiAgICAgICAgIGlmIChtID09IE5VTEwpCiAgICAgICAgICAgICBnb3RvIGVycl9yZXR1cm47CiAgICAgICAgIGQgPSBQeU1vZHVsZV9HZXREaWN0KG0pOwotICAgICAgICBsID0gUHlMaXN0X05ldygxKTsKKyAgICAgICAgbCA9IFB5TGlzdF9OZXcoMCk7CiAgICAgICAgIGlmIChsID09IE5VTEwpIHsKICAgICAgICAgICAgIGdvdG8gZXJyX3JldHVybjsKICAgICAgICAgfQotICAgICAgICBQeV9JTkNSRUYobmFtZSk7Ci0gICAgICAgIFB5TGlzdF9TRVRfSVRFTShsLCAwLCBuYW1lKTsKICAgICAgICAgZXJyID0gUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIl9fcGF0aF9fIiwgbCk7CiAgICAgICAgIFB5X0RFQ1JFRihsKTsKICAgICAgICAgaWYgKGVyciAhPSAwKQpAQCAtMTQyNyw3ICsxNDYzLDcgQEAKICAgICAgICAgfQogICAgICAgICBpZiAoaW5pdGlhbGl6aW5nID4gMCkgewogICAgICAgICAgICAgLyogX2Jvb3RzdHJhcC5fbG9ja191bmxvY2tfbW9kdWxlKCkgcmVsZWFzZXMgdGhlIGltcG9ydCBsb2NrICovCi0gICAgICAgICAgICB2YWx1ZSA9IF9QeU9iamVjdF9DYWxsTWV0aG9kT2JqSWRBcmdzKGludGVycC0+aW1wb3J0bGliLAorICAgICAgICAgICAgdmFsdWUgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkT2JqQXJncyhpbnRlcnAtPmltcG9ydGxpYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlB5SWRfX2xvY2tfdW5sb2NrX21vZHVsZSwgYWJzX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogICAgICAgICAgICAgaWYgKHZhbHVlID09IE5VTEwpCkBAIC0xNDQ1LDcgKzE0ODEsNyBAQAogICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgLyogX2Jvb3RzdHJhcC5fZmluZF9hbmRfbG9hZCgpIHJlbGVhc2VzIHRoZSBpbXBvcnQgbG9jayAqLwotICAgICAgICBtb2QgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZE9iaklkQXJncyhpbnRlcnAtPmltcG9ydGxpYiwKKyAgICAgICAgbW9kID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZE9iakFyZ3MoaW50ZXJwLT5pbXBvcnRsaWIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQeUlkX19maW5kX2FuZF9sb2FkLCBhYnNfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbHRpbnNfaW1wb3J0LCBOVUxMKTsKICAgICAgICAgaWYgKG1vZCA9PSBOVUxMKSB7CkBAIC0xNTE0LDcgKzE1NTAsNyBAQAogICAgICAgICB9CiAgICAgfQogICAgIGVsc2UgewotICAgICAgICBmaW5hbF9tb2QgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZE9iaklkQXJncyhpbnRlcnAtPmltcG9ydGxpYiwKKyAgICAgICAgZmluYWxfbW9kID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZE9iakFyZ3MoaW50ZXJwLT5pbXBvcnRsaWIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQeUlkX19oYW5kbGVfZnJvbWxpc3QsIG1vZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbWxpc3QsIGJ1aWx0aW5zX2ltcG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CkBAIC0xNzY4LDcgKzE4MDQsNyBAQAogaW1wX2lzX2Zyb3plbihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgUHlPYmplY3QgKm5hbWU7Ci0gICAgc3RydWN0IF9mcm96ZW4gKnA7CisgICAgY29uc3Qgc3RydWN0IF9mcm96ZW4gKnA7CiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJVOmlzX2Zyb3plbiIsICZuYW1lKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgcCA9IGZpbmRfZnJvemVuKG5hbWUpOwpkaWZmIC0tZ2l0IGEvUHl0aG9uL2ltcG9ydGRsLmggYi9QeXRob24vaW1wb3J0ZGwuaAppbmRleCA2YjljZjc1Li42YTUxYTkxIDEwMDY0NAotLS0gYS9QeXRob24vaW1wb3J0ZGwuaAorKysgYi9QeXRob24vaW1wb3J0ZGwuaApAQCAtMTgsMTMgKzE4LDggQEAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiB0eXBlZGVmIEZBUlBST0MgZGxfZnVuY3B0cjsKICNlbHNlCi0jaWYgZGVmaW5lZChQWU9TX09TMikgJiYgIWRlZmluZWQoUFlDQ19HQ0MpCi0jaW5jbHVkZSA8b3MyZGVmLmg+Ci10eXBlZGVmIGludCAoKiBBUElFTlRSWSBkbF9mdW5jcHRyKSgpOwotI2Vsc2UKIHR5cGVkZWYgdm9pZCAoKmRsX2Z1bmNwdHIpKHZvaWQpOwogI2VuZGlmCi0jZW5kaWYKIAogCiAjaWZkZWYgX19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL1B5dGhvbi9pbXBvcnRsaWIuaCBiL1B5dGhvbi9pbXBvcnRsaWIuaAppbmRleCA0MWI5MTMzLi5jZTkwNWQ5IDEwMDY0NAotLS0gYS9QeXRob24vaW1wb3J0bGliLmgKKysrIGIvUHl0aG9uL2ltcG9ydGxpYi5oCkBAIC0xLDggKzEsOCBAQAogLyogQXV0by1nZW5lcmF0ZWQgYnkgTW9kdWxlcy9fZnJlZXplX2ltcG9ydGxpYi5jICovCi11bnNpZ25lZCBjaGFyIF9QeV9NX19pbXBvcnRsaWJbXSA9IHsKK2NvbnN0IHVuc2lnbmVkIGNoYXIgX1B5X01fX2ltcG9ydGxpYltdID0gewogICAgIDk5LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDYsMCwwLAotICAgIDAsNjQsMCwwLDAsMTE1LDIwNiwzLDAsMCwxMDAsMCwwLDkwLDAsMCwKLSAgICAxMDAsMTMxLDAsOTAsMSwwLDEwMCw0LDAsMTAwLDUsMCwxMzIsMCwwLDkwLAorICAgIDAsNjQsMCwwLDAsMTE1LDQwLDQsMCwwLDEwMCwwLDAsOTAsMCwwLAorICAgIDEwMCwxNDIsMCw5MCwxLDAsMTAwLDQsMCwxMDAsNSwwLDEzMiwwLDAsOTAsCiAgICAgMiwwLDEwMCw2LDAsMTAwLDcsMCwxMzIsMCwwLDkwLDMsMCwxMDAsOCwKICAgICAwLDEwMCw5LDAsMTMyLDAsMCw5MCw0LDAsMTAwLDEwLDAsMTAwLDExLDAsCiAgICAgMTMyLDAsMCw5MCw1LDAsMTAwLDEyLDAsMTAwLDEzLDAsMTMyLDAsMCw5MCwKQEAgLTE4LDM0MSArMTgsMjk4IEBACiAgICAgMCw3MSwxMDAsMzEsMCwxMDAsMzIsMCwxMzIsMCwwLDEwMCwzMiwwLDEzMSwyLAogICAgIDAsOTAsMjEsMCwxMDAsMzMsMCwxMDAsMzQsMCwxMzIsMCwwLDkwLDIyLDAsCiAgICAgMTAwLDM1LDAsMTAwLDM2LDAsMTMyLDAsMCw5MCwyMywwLDEwMCwzNywwLDEwMCwKLSAgICAzOCwwLDEzMiwwLDAsOTAsMjQsMCwxMDAsMzksMCwxMDEsMjUsMCwxMDAsNDAsCi0gICAgMCwxMzEsMSwwLDEwMCw0MSwwLDYyLDY2LDEwMSwyNSwwLDEwMCw0MiwwLDEzMSwKLSAgICAxLDAsMTAwLDQzLDAsNjIsNjYsOTAsMjYsMCwxMDEsMjcsMCwxMDAsNDQsMCwKLSAgICAxMDAsNDUsMCwxMzIsMCwwLDEwMSwyOCwwLDEwMCw0NiwwLDEwMCw0NywwLDEwMCwKLSAgICA0OCwwLDEzMSwzLDAsNjgsMTMxLDEsMCwxMzEsMSwwLDkwLDI5LDAsMTAwLAotICAgIDQ5LDAsOTAsMzAsMCwxMDAsNTAsMCwxMDMsMSwwLDkwLDMxLDAsMTAwLDUxLAotICAgIDAsMTAzLDEsMCw5MCwzMiwwLDEwMCw1MiwwLDEwMywxLDAsOTAsMzMsMCwKLSAgICAxMDAsMTMwLDAsMTAwLDUzLDAsMTAwLDU0LDAsMTMyLDEsMCw5MCwzNSwwLDEwMCwKLSAgICA1NSwwLDEwMCw1NiwwLDEzMiwwLDAsOTAsMzYsMCwxMDAsNTcsMCwxMDAsNTgsCi0gICAgMCwxMzIsMCwwLDkwLDM3LDAsMTAwLDU5LDAsMTAwLDYwLDAsMTAwLDYxLDAsCi0gICAgMTAwLDYyLDAsMTMyLDAsMSw5MCwzOCwwLDEwMCw2MywwLDEwMCw2NCwwLDEzMiwKLSAgICAwLDAsOTAsMzksMCwxMDAsNjUsMCwxMDAsNjYsMCwxMzIsMCwwLDkwLDQwLAotICAgIDAsMTAwLDY3LDAsMTAwLDY4LDAsMTMyLDAsMCw5MCw0MSwwLDEwMCw2OSwwLAotICAgIDEwMCw3MCwwLDEzMiwwLDAsOTAsNDIsMCwxMDAsNzEsMCwxMDAsNzIsMCwxMzIsCi0gICAgMCwwLDkwLDQzLDAsMTAwLDczLDAsMTAwLDc0LDAsMTMyLDAsMCw5MCw0NCwKLSAgICAwLDEwMCw3NSwwLDEwMCw3NiwwLDEzMiwwLDAsOTAsNDUsMCw3MSwxMDAsNzcsCi0gICAgMCwxMDAsNzgsMCwxMzIsMCwwLDEwMCw3OCwwLDEzMSwyLDAsOTAsNDYsMCwKLSAgICA3MSwxMDAsNzksMCwxMDAsODAsMCwxMzIsMCwwLDEwMCw4MCwwLDEzMSwyLDAsCi0gICAgOTAsNDcsMCw3MSwxMDAsODEsMCwxMDAsODIsMCwxMzIsMCwwLDEwMCw4MiwwLAotICAgIDEzMSwyLDAsOTAsNDgsMCw3MSwxMDAsODMsMCwxMDAsODQsMCwxMzIsMCwwLAotICAgIDEwMCw4NCwwLDEzMSwyLDAsOTAsNDksMCw3MSwxMDAsODUsMCwxMDAsODYsMCwKLSAgICAxMzIsMCwwLDEwMCw4NiwwLDEwMSw0OSwwLDEzMSwzLDAsOTAsNTAsMCw3MSwKLSAgICAxMDAsODcsMCwxMDAsODgsMCwxMzIsMCwwLDEwMCw4OCwwLDEzMSwyLDAsOTAsCi0gICAgNTEsMCw3MSwxMDAsODksMCwxMDAsOTAsMCwxMzIsMCwwLDEwMCw5MCwwLDEwMSwKLSAgICA1MSwwLDEwMSw1MCwwLDEzMSw0LDAsOTAsNTIsMCw3MSwxMDAsOTEsMCwxMDAsCi0gICAgOTIsMCwxMzIsMCwwLDEwMCw5MiwwLDEwMSw1MSwwLDEwMSw0OSwwLDEzMSw0LAotICAgIDAsOTAsNTMsMCwxMDMsMCwwLDkwLDU0LDAsNzEsMTAwLDkzLDAsMTAwLDk0LAotICAgIDAsMTMyLDAsMCwxMDAsOTQsMCwxMzEsMiwwLDkwLDU1LDAsNzEsMTAwLDk1LAotICAgIDAsMTAwLDk2LDAsMTMyLDAsMCwxMDAsOTYsMCwxMzEsMiwwLDkwLDU2LDAsCi0gICAgNzEsMTAwLDk3LDAsMTAwLDk4LDAsMTMyLDAsMCwxMDAsOTgsMCwxMzEsMiwwLAotICAgIDkwLDU3LDAsNzEsMTAwLDk5LDAsMTAwLDEwMCwwLDEzMiwwLDAsMTAwLDEwMCwwLAotICAgIDEzMSwyLDAsOTAsNTgsMCw3MSwxMDAsMTAxLDAsMTAwLDEwMiwwLDEzMiwwLDAsCi0gICAgMTAwLDEwMiwwLDEzMSwyLDAsOTAsNTksMCw3MSwxMDAsMTAzLDAsMTAwLDEwNCwwLAotICAgIDEzMiwwLDAsMTAwLDEwNCwwLDEzMSwyLDAsOTAsNjAsMCwxMDAsMTA1LDAsMTAwLAotICAgIDEwNiwwLDEzMiwwLDAsOTAsNjEsMCwxMDAsMTA3LDAsMTAwLDEwOCwwLDEzMiwwLAotICAgIDAsOTAsNjIsMCwxMDAsMTA5LDAsMTAwLDExMCwwLDEzMiwwLDAsOTAsNjMsMCwKLSAgICAxMDAsMTExLDAsOTAsNjQsMCwxMDAsMTEyLDAsMTAwLDExMywwLDEzMiwwLDAsOTAsCi0gICAgNjUsMCwxMDAsMTE0LDAsMTAwLDExNSwwLDEzMiwwLDAsOTAsNjYsMCwxMDAsMTMwLAotICAgIDAsMTAwLDQ2LDAsMTAwLDExNiwwLDEwMCwxMTcsMCwxMzIsMiwwLDkwLDY3LDAsCi0gICAgMTAwLDExOCwwLDEwMCwxMTksMCwxMzIsMCwwLDkwLDY4LDAsMTAwLDEyMCwwLDEwMCwKLSAgICAxMjEsMCwxMzIsMCwwLDkwLDY5LDAsMTAwLDEyMiwwLDEwMCwxMjMsMCwxMzIsMCwKLSAgICAwLDkwLDcwLDAsMTAwLDEzMCwwLDEwMCwxMzAsMCwxMDIsMCwwLDEwMCw0NiwwLAotICAgIDEwMCwxMjQsMCwxMDAsMTI1LDAsMTMyLDQsMCw5MCw3MSwwLDEwMCwxMjYsMCwxMDAsCi0gICAgMTI3LDAsMTMyLDAsMCw5MCw3MiwwLDEwMCwxMjgsMCwxMDAsMTI5LDAsMTMyLDAsCi0gICAgMCw5MCw3MywwLDEwMCwxMzAsMCw4Myw0MCwxMzIsMCwwLDAsMTE3LDgzLDEsCi0gICAgMCwwLDY3LDExMSwxMTQsMTAxLDMyLDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LAorICAgIDM4LDAsMTMyLDAsMCw5MCwyNCwwLDEwMCwzOSwwLDEwNiwyNSwwLDEwMCw0MCwKKyAgICAwLDEwMCw0MSwwLDEzMSwyLDAsMTAwLDQyLDAsMjMsOTAsMjYsMCwxMDEsMjcsCisgICAgMCwxMDYsMjgsMCwxMDEsMjYsMCwxMDAsNDEsMCwxMzEsMiwwLDkwLDI5LDAsCisgICAgMTAwLDQzLDAsOTAsMzAsMCwxMDAsNDQsMCwxMDMsMSwwLDkwLDMxLDAsMTAwLAorICAgIDQ1LDAsMTAzLDEsMCw5MCwzMiwwLDEwMCw0NiwwLDEwMywxLDAsOTAsMzMsCisgICAgMCwxMDAsNDcsMCwxMDAsNDgsMCwxMDAsNDksMCwxMzIsMSwwLDkwLDM0LDAsCisgICAgMTAwLDUwLDAsMTAwLDUxLDAsMTMyLDAsMCw5MCwzNSwwLDEwMCw1MiwwLDEwMCwKKyAgICA1MywwLDEzMiwwLDAsOTAsMzYsMCwxMDAsNTQsMCwxMDAsNTUsMCwxMzIsMCwKKyAgICAwLDkwLDM3LDAsMTAwLDU2LDAsMTAwLDU3LDAsMTAwLDU4LDAsMTAwLDU5LDAsCisgICAgMTMyLDAsMSw5MCwzOCwwLDcxLDEwMCw2MCwwLDEwMCw2MSwwLDEzMiwwLDAsCisgICAgMTAwLDYxLDAsMTMxLDIsMCw5MCwzOSwwLDEwMCw2MiwwLDEwMCw2MywwLDEwMCwKKyAgICA2NCwwLDEwMCw2NSwwLDEzMiwwLDEsOTAsNDAsMCwxMDAsNjYsMCwxMDAsNjcsCisgICAgMCwxMzIsMCwwLDkwLDQxLDAsMTAwLDY4LDAsMTAwLDY5LDAsMTMyLDAsMCwKKyAgICA5MCw0MiwwLDEwMCw3MCwwLDEwMCw3MSwwLDEzMiwwLDAsOTAsNDMsMCwxMDAsCisgICAgNzIsMCwxMDAsNzMsMCwxMzIsMCwwLDkwLDQ0LDAsMTAwLDc0LDAsMTAwLDc1LAorICAgIDAsMTMyLDAsMCw5MCw0NSwwLDEwMCw3NiwwLDEwMCw3NywwLDEzMiwwLDAsCisgICAgOTAsNDYsMCwxMDAsNzgsMCwxMDAsNzksMCwxMzIsMCwwLDkwLDQ3LDAsMTAwLAorICAgIDgwLDAsMTAwLDgxLDAsMTMyLDAsMCw5MCw0OCwwLDEwMCw0NywwLDEwMCw0NywKKyAgICAwLDEwMCw0NywwLDEwMCw4MiwwLDEwMCw4MywwLDEzMiwzLDAsOTAsNDksMCwKKyAgICAxMDAsNDcsMCwxMDAsNDcsMCwxMDAsNDcsMCwxMDAsODQsMCwxMDAsODUsMCwxMzIsCisgICAgMywwLDkwLDUwLDAsMTAwLDg2LDAsMTAwLDg2LDAsMTAwLDg3LDAsMTAwLDg4LAorICAgIDAsMTMyLDIsMCw5MCw1MSwwLDcxLDEwMCw4OSwwLDEwMCw5MCwwLDEzMiwwLAorICAgIDAsMTAwLDkwLDAsMTMxLDIsMCw5MCw1MiwwLDcxLDEwMCw5MSwwLDEwMCw5MiwKKyAgICAwLDEzMiwwLDAsMTAwLDkyLDAsMTMxLDIsMCw5MCw1MywwLDcxLDEwMCw5MywKKyAgICAwLDEwMCw5NCwwLDEzMiwwLDAsMTAwLDk0LDAsMTMxLDIsMCw5MCw1NCwwLAorICAgIDcxLDEwMCw5NSwwLDEwMCw5NiwwLDEzMiwwLDAsMTAwLDk2LDAsMTMxLDIsMCwKKyAgICA5MCw1NSwwLDcxLDEwMCw5NywwLDEwMCw5OCwwLDEzMiwwLDAsMTAwLDk4LDAsCisgICAgMTAxLDU1LDAsMTMxLDMsMCw5MCw1NiwwLDcxLDEwMCw5OSwwLDEwMCwxMDAsMCwKKyAgICAxMzIsMCwwLDEwMCwxMDAsMCwxMzEsMiwwLDkwLDU3LDAsNzEsMTAwLDEwMSwwLAorICAgIDEwMCwxMDIsMCwxMzIsMCwwLDEwMCwxMDIsMCwxMDEsNTcsMCwxMDEsNTYsMCwxMzEsCisgICAgNCwwLDkwLDU4LDAsNzEsMTAwLDEwMywwLDEwMCwxMDQsMCwxMzIsMCwwLDEwMCwKKyAgICAxMDQsMCwxMDEsNTcsMCwxMDEsNTUsMCwxMzEsNCwwLDkwLDU5LDAsMTAzLDAsCisgICAgMCw5MCw2MCwwLDcxLDEwMCwxMDUsMCwxMDAsMTA2LDAsMTMyLDAsMCwxMDAsMTA2LAorICAgIDAsMTMxLDIsMCw5MCw2MSwwLDcxLDEwMCwxMDcsMCwxMDAsMTA4LDAsMTMyLDAsCisgICAgMCwxMDAsMTA4LDAsMTMxLDIsMCw5MCw2MiwwLDcxLDEwMCwxMDksMCwxMDAsMTEwLAorICAgIDAsMTMyLDAsMCwxMDAsMTEwLDAsMTMxLDIsMCw5MCw2MywwLDcxLDEwMCwxMTEsCisgICAgMCwxMDAsMTEyLDAsMTMyLDAsMCwxMDAsMTEyLDAsMTMxLDIsMCw5MCw2NCwwLAorICAgIDcxLDEwMCwxMTMsMCwxMDAsMTE0LDAsMTMyLDAsMCwxMDAsMTE0LDAsMTMxLDIsMCwKKyAgICA5MCw2NSwwLDcxLDEwMCwxMTUsMCwxMDAsMTE2LDAsMTMyLDAsMCwxMDAsMTE2LDAsCisgICAgMTMxLDIsMCw5MCw2NiwwLDEwMCwxMTcsMCwxMDAsMTE4LDAsMTMyLDAsMCw5MCwKKyAgICA2NywwLDEwMCwxMTksMCwxMDAsMTIwLDAsMTMyLDAsMCw5MCw2OCwwLDEwMCwxMjEsCisgICAgMCwxMDAsMTIyLDAsMTMyLDAsMCw5MCw2OSwwLDEwMCwxMjMsMCw5MCw3MCwwLAorICAgIDEwMCwxMjQsMCwxMDAsMTI1LDAsMTMyLDAsMCw5MCw3MSwwLDEwMCwxMjYsMCwxMDAsCisgICAgMTI3LDAsMTMyLDAsMCw5MCw3MiwwLDEwMCw0NywwLDEwMCw4NiwwLDEwMCwxMjgsCisgICAgMCwxMDAsMTI5LDAsMTMyLDIsMCw5MCw3MywwLDEwMCwxMzAsMCwxMDAsMTMxLDAsCisgICAgMTMyLDAsMCw5MCw3NCwwLDEwMCwxMzIsMCwxMDAsMTMzLDAsMTMyLDAsMCw5MCwKKyAgICA3NSwwLDEwMCwxMzQsMCwxMDAsMTM1LDAsMTMyLDAsMCw5MCw3NiwwLDEwMCw0NywKKyAgICAwLDEwMCw0NywwLDEwMiwwLDAsMTAwLDg2LDAsMTAwLDEzNiwwLDEwMCwxMzcsMCwKKyAgICAxMzIsNCwwLDkwLDc3LDAsMTAwLDEzOCwwLDEwMCwxMzksMCwxMzIsMCwwLDkwLAorICAgIDc4LDAsMTAwLDE0MCwwLDEwMCwxNDEsMCwxMzIsMCwwLDkwLDc5LDAsMTAwLDQ3LAorICAgIDAsODMsNDAsMTQzLDAsMCwwLDExNyw4MywxLDAsMCw2NywxMTEsMTE0LDEwMSwKKyAgICAzMiwxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsCisgICAgMTExLDEwMiwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiw0NiwxMCwxMCw4NCwxMDQsMTA1LDExNSwKKyAgICAzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMDUsMTE1LDMyLDc4LDc5LDg0LDMyLDEwOSwKKyAgICAxMDEsOTcsMTEwLDExNiwzMiwxMTYsMTExLDMyLDk4LDEwMSwzMiwxMDAsMTA1LDExNCwxMDEsOTksCisgICAgMTE2LDEwOCwxMjEsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDEwMCwzMywzMiw3MywxMTYsCisgICAgMzIsMTA0LDk3LDExNSwzMiw5OCwxMDEsMTAxLDExMCwzMiwxMDAsMTAxLDExNSwxMDUsMTAzLDExMCwKKyAgICAxMDEsMTAwLDMyLDExNSwxMTcsOTksMTA0LDEwLDExNiwxMDQsOTcsMTE2LDMyLDEwNSwxMTYsMzIsCisgICAgOTksOTcsMTEwLDMyLDk4LDEwMSwzMiw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsCisgICAgMTEyLDEwMSwxMDAsMzIsMTA1LDExMCwxMTYsMTExLDMyLDgwLDEyMSwxMTYsMTA0LDExMSwxMTAsMzIsCisgICAgOTcsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LAogICAgIDk3LDExNiwxMDUsMTExLDExMCwzMiwxMTEsMTAyLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDQ2LAotICAgIDEwLDEwLDg0LDEwNCwxMDUsMTE1LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwNSwxMTUsCi0gICAgMzIsNzgsNzksODQsMzIsMTA5LDEwMSw5NywxMTAsMTE2LDMyLDExNiwxMTEsMzIsOTgsMTAxLAotICAgIDMyLDEwMCwxMDUsMTE0LDEwMSw5OSwxMTYsMTA4LDEyMSwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwKLSAgICAxMDEsMTAwLDMzLDMyLDczLDExNiwzMiwxMDQsOTcsMTE1LDMyLDk4LDEwMSwxMDEsMTEwLDMyLAotICAgIDEwMCwxMDEsMTE1LDEwNSwxMDMsMTEwLDEwMSwxMDAsMzIsMTE1LDExNyw5OSwxMDQsMTAsMTE2LDEwNCwKLSAgICA5NywxMTYsMzIsMTA1LDExNiwzMiw5OSw5NywxMTAsMzIsOTgsMTAxLDMyLDk4LDExMSwxMTEsCi0gICAgMTE2LDExNSwxMTYsMTE0LDk3LDExMiwxMTIsMTAxLDEwMCwzMiwxMDUsMTEwLDExNiwxMTEsMzIsODAsCi0gICAgMTIxLDExNiwxMDQsMTExLDExMCwzMiw5NywxMTUsMzIsMTE2LDEwNCwxMDEsMzIsMTA1LDEwOSwxMTIsCi0gICAgMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsOTcsMTE2LDEwNSwxMTEsMTEwLDMyLDExMSwxMDIsMzIsMTA1LAotICAgIDEwOSwxMTIsMTExLDExNCwxMTYsNDYsMzIsNjUsMTE1LDEwLDExNSwxMTcsOTksMTA0LDMyLDEwNSwKLSAgICAxMTYsMzIsMTE0LDEwMSwxMTMsMTE3LDEwNSwxMTQsMTAxLDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMDUsCi0gICAgMTEwLDEwNiwxMDEsOTksMTE2LDEwNSwxMTEsMTEwLDMyLDExMSwxMDIsMzIsMTE1LDExMiwxMDEsOTksCi0gICAgMTA1LDEwMiwxMDUsOTksMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDMyLDk3LDExMCwxMDAsCi0gICAgMzIsOTcsMTE2LDExNiwxMTQsMTA1LDk4LDExNywxMTYsMTAxLDExNSwzMiwxMDUsMTEwLDMyLDExMSwKLSAgICAxMTQsMTAwLDEwMSwxMTQsMzIsMTE2LDExMSwxMCwxMTksMTExLDExNCwxMDcsNDYsMzIsNzksMTEwLAotICAgIDEwMSwzMiwxMTUsMTA0LDExMSwxMTcsMTA4LDEwMCwzMiwxMTcsMTE1LDEwMSwzMiwxMDUsMTA5LDExMiwKLSAgICAxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDMyLDk3LDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsMTE3LAotICAgIDk4LDEwOCwxMDUsOTksNDUsMTAyLDk3LDk5LDEwNSwxMTAsMTAzLDMyLDExOCwxMDEsMTE0LDExNSwKLSAgICAxMDUsMTExLDExMCwzMiwxMTEsMTAyLDMyLDExNiwxMDQsMTA1LDExNSwzMiwxMDksMTExLDEwMCwxMTcsCi0gICAgMTA4LDEwMSw0NiwxMCwxMCwxMTcsMywwLDAsMCwxMTksMTA1LDExMCwxMTcsNiwwLAotICAgIDAsMCw5OSwxMjEsMTAzLDExOSwxMDUsMTEwLDExNyw2LDAsMCwwLDEwMCw5NywxMTQsCi0gICAgMTE5LDEwNSwxMTAsOTksMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsCi0gICAgMiwwLDAsMCw2NywwLDAsMCwxMTUsNDksMCwwLDAsMTE2LDAsMCwKLSAgICAxMDYsMSwwLDEwNiwyLDAsMTE2LDMsMCwxMzEsMSwwLDExNCwzMywwLDEwMCwKLSAgICAxLDAsMTAwLDIsMCwxMzIsMCwwLDEyNSwwLDAsMTEwLDEyLDAsMTAwLDMsCi0gICAgMCwxMDAsMiwwLDEzMiwwLDAsMTI1LDAsMCwxMjQsMCwwLDgzLDQwLDQsCi0gICAgMCwwLDAsNzgsOTksMCwwLDAsMCwwLDAsMCwwLDAsMCwwLAotICAgIDAsMiwwLDAsMCw4MywwLDAsMCwxMTUsMTMsMCwwLDAsMTAwLDEsCi0gICAgMCwxMTYsMCwwLDEwNiwxLDAsMTA3LDYsMCw4Myw0MCwyLDAsMCwwLAotICAgIDExNyw1MywwLDAsMCw4NCwxMTQsMTE3LDEwMSwzMiwxMDUsMTAyLDMyLDEwMiwxMDUsMTA4LAotICAgIDEwMSwxMTAsOTcsMTA5LDEwMSwxMTUsMzIsMTA5LDExNywxMTUsMTE2LDMyLDk4LDEwMSwzMiw5OSwKLSAgICAxMDQsMTAxLDk5LDEwNywxMDEsMTAwLDMyLDk5LDk3LDExNSwxMDEsNDUsMTA1LDExMCwxMTUsMTAxLAotICAgIDExMCwxMTUsMTA1LDExNiwxMDUsMTE4LDEwMSwxMDgsMTIxLDQ2LDExNSwxMiwwLDAsMCw4MCwKLSAgICA4OSw4NCw3Miw3OSw3OCw2Nyw2NSw4Myw2OSw3OSw3NSw0MCwyLDAsMCwwLAotICAgIDExNywzLDAsMCwwLDk1LDExMSwxMTUsMTE3LDcsMCwwLDAsMTAxLDExMCwxMTgsCi0gICAgMTA1LDExNCwxMTEsMTEwLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCw0MCwwLAotICAgIDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwKLSAgICAxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwKLSAgICAxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTEsMCwwLDAsOTUsMTE0LDEwMSwxMDgsOTcsMTIwLAotICAgIDk1LDk5LDk3LDExNSwxMDEsMzQsMCwwLDAsMTE1LDIsMCwwLDAsMCwyLAotICAgIDExNywzNywwLDAsMCw5NSwxMDksOTcsMTA3LDEwMSw5NSwxMTQsMTAxLDEwOCw5NywxMjAsCi0gICAgOTUsOTksOTcsMTE1LDEwMSw0Niw2MCwxMDgsMTExLDk5LDk3LDEwOCwxMTUsNjIsNDYsOTUsCi0gICAgMTE0LDEwMSwxMDgsOTcsMTIwLDk1LDk5LDk3LDExNSwxMDEsOTksMCwwLDAsMCwwLAotICAgIDAsMCwwLDAsMCwwLDAsMSwwLDAsMCw4MywwLDAsMCwxMTUsCi0gICAgNCwwLDAsMCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDUzLDAsCi0gICAgMCwwLDg0LDExNCwxMTcsMTAxLDMyLDEwNSwxMDIsMzIsMTAyLDEwNSwxMDgsMTAxLDExMCw5NywKLSAgICAxMDksMTAxLDExNSwzMiwxMDksMTE3LDExNSwxMTYsMzIsOTgsMTAxLDMyLDk5LDEwNCwxMDEsOTksCi0gICAgMTA3LDEwMSwxMDAsMzIsOTksOTcsMTE1LDEwMSw0NSwxMDUsMTEwLDExNSwxMDEsMTEwLDExNSwxMDUsCi0gICAgMTE2LDEwNSwxMTgsMTAxLDEwOCwxMjEsNDYsNzAsNDAsMSwwLDAsMCwxMTcsNSwwLAotICAgIDAsMCw3MCw5NywxMDgsMTE1LDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwwLAotICAgIDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLAotICAgIDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsCi0gICAgMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDExLDAsMCwwLDk1LDExNCwxMDEsCi0gICAgMTA4LDk3LDEyMCw5NSw5OSw5NywxMTUsMTAxLDM4LDAsMCwwLDExNSwyLDAsMCwKLSAgICAwLDAsMiw0MCw0LDAsMCwwLDExNywzLDAsMCwwLDExNSwxMjEsMTE1LAotICAgIDExNyw4LDAsMCwwLDExMiwxMDgsOTcsMTE2LDEwMiwxMTEsMTE0LDEwOSwxMTcsMTAsMCwKLSAgICAwLDAsMTE1LDExNiw5NywxMTQsMTE2LDExNSwxMTksMTA1LDExNiwxMDQsMTE3LDI3LDAsMCwKLSAgICAwLDk1LDY3LDY1LDgzLDY5LDk1LDczLDc4LDgzLDY5LDc4LDgzLDczLDg0LDczLAotICAgIDg2LDY5LDk1LDgwLDc2LDY1LDg0LDcwLDc5LDgyLDc3LDgzLDQwLDEsMCwwLAotICAgIDAsMTE3LDExLDAsMCwwLDk1LDExNCwxMDEsMTA4LDk3LDEyMCw5NSw5OSw5NywxMTUsCi0gICAgMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsCi0gICAgNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSwKLSAgICA5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE2LDAsCi0gICAgMCwwLDk1LDEwOSw5NywxMDcsMTAxLDk1LDExNCwxMDEsMTA4LDk3LDEyMCw5NSw5OSw5NywKLSAgICAxMTUsMTAxLDMyLDAsMCwwLDExNSw4LDAsMCwwLDAsMSwxOCwxLDE1LAotICAgIDQsMTIsMywxMTcsMTYsMCwwLDAsOTUsMTA5LDk3LDEwNywxMDEsOTUsMTE0LDEwMSwKLSAgICAxMDgsOTcsMTIwLDk1LDk5LDk3LDExNSwxMDEsOTksMSwwLDAsMCwwLDAsMCwKLSAgICAwLDIsMCwwLDAsMywwLDAsMCw2NywwLDAsMCwxMTUsMTA4LDAsCi0gICAgMCwwLDExNiwwLDAsMTI0LDAsMCwxMzEsMSwwLDEyNSwwLDAsMTAzLDAsCi0gICAgMCwxMjUsMSwwLDEyNCwxLDAsMTA2LDEsMCwxMjQsMCwwLDEwMCwxLDAsCi0gICAgNjQsMTMxLDEsMCwxLDEyNCwxLDAsMTA2LDEsMCwxMjQsMCwwLDEwMCwyLAotICAgIDAsNjMsMTAwLDEsMCw2NCwxMzEsMSwwLDEsMTI0LDEsMCwxMDYsMSwwLAotICAgIDEyNCwwLDAsMTAwLDMsMCw2MywxMDAsMSwwLDY0LDEzMSwxLDAsMSwxMjQsCi0gICAgMSwwLDEwNiwxLDAsMTI0LDAsMCwxMDAsNCwwLDYzLDEwMCwxLDAsNjQsCi0gICAgMTMxLDEsMCwxLDExNiwyLDAsMTI0LDEsMCwxMzEsMSwwLDgzLDQwLDUsCi0gICAgMCwwLDAsMTE3LDExMSwwLDAsMCw2NywxMTEsMTEwLDExOCwxMDEsMTE0LDExNiwzMiwKLSAgICA5NywzMiw1MSw1MCw0NSw5OCwxMDUsMTE2LDMyLDEwNSwxMTAsMTE2LDEwMSwxMDMsMTAxLDExNCwKLSAgICAzMiwxMTYsMTExLDMyLDEwOCwxMDUsMTE2LDExNiwxMDgsMTAxLDQ1LDEwMSwxMTAsMTAwLDEwNSw5NywKLSAgICAxMTAsNDYsMTAsMTAsMzIsMzIsMzIsMzIsODgsODgsODgsMzIsODQsMTAxLDEwOSwxMTIsCi0gICAgMTExLDExNCw5NywxMTQsMTIxLDMyLDExNywxMTAsMTE2LDEwNSwxMDgsMzIsMTA5LDk3LDExNCwxMTUsCi0gICAgMTA0LDk3LDEwOCwzOSwxMTUsMzIsMTA4LDExMSwxMTAsMTAzLDMyLDEwMiwxMTcsMTEwLDk5LDExNiwKLSAgICAxMDUsMTExLDExMCwxMTUsMzIsOTcsMTE0LDEwMSwzMiwxMDEsMTIwLDExMiwxMTEsMTE1LDEwMSwxMDAsCi0gICAgNDYsMTAsMTAsMzIsMzIsMzIsMzIsMTA1LDI1NSwwLDAsMCwxMDUsOCwwLDAsCi0gICAgMCwxMDUsMTYsMCwwLDAsMTA1LDI0LDAsMCwwLDQwLDMsMCwwLDAsCi0gICAgMTE3LDMsMCwwLDAsMTA1LDExMCwxMTYsMTE3LDYsMCwwLDAsOTcsMTEyLDExMiwKLSAgICAxMDEsMTEwLDEwMCwxMTcsOSwwLDAsMCw5OCwxMjEsMTE2LDEwMSw5NywxMTQsMTE0LDk3LAotICAgIDEyMSw0MCwyLDAsMCwwLDExNywxLDAsMCwwLDEyMCwxMTcsOSwwLDAsCi0gICAgMCwxMDUsMTEwLDExNiw5NSw5OCwxMjEsMTE2LDEwMSwxMTUsNDAsMCwwLDAsMCw0MCwKLSAgICAwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwKLSAgICAzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LAotICAgIDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsNywwLDAsMCw5NSwxMTksOTUsMTA4LDExMSwKLSAgICAxMTAsMTAzLDQ1LDAsMCwwLDExNSwxNCwwLDAsMCwwLDYsMTIsMSw2LAotICAgIDEsMTcsMSwyMSwxLDIxLDEsMjEsMSwxMTcsNywwLDAsMCw5NSwxMTksCi0gICAgOTUsMTA4LDExMSwxMTAsMTAzLDk5LDEsMCwwLDAsMCwwLDAsMCwyLDAsCi0gICAgMCwwLDMsMCwwLDAsNjcsMCwwLDAsMTE1LDY4LDAsMCwwLDEyNCwKLSAgICAwLDAsMTAwLDEsMCwyNSwxMjUsMSwwLDEyNCwxLDAsMTI0LDAsMCwxMDAsCi0gICAgMiwwLDI1LDEwMCwzLDAsNjIsNzksMTI1LDEsMCwxMjQsMSwwLDEyNCwwLAotICAgIDAsMTAwLDQsMCwyNSwxMDAsNSwwLDYyLDc5LDEyNSwxLDAsMTI0LDEsMCwKLSAgICAxMjQsMCwwLDEwMCw2LDAsMjUsMTAwLDcsMCw2Miw3OSwxMjUsMSwwLDEyNCwKLSAgICAxLDAsODMsNDAsOCwwLDAsMCwxMTcsMTE1LDAsMCwwLDY3LDExMSwxMTAsCi0gICAgMTE4LDEwMSwxMTQsMTE2LDMyLDUyLDMyLDk4LDEyMSwxMTYsMTAxLDExNSwzMiwxMDUsMTEwLDMyLAotICAgIDEwOCwxMDUsMTE2LDExNiwxMDgsMTAxLDQ1LDEwMSwxMTAsMTAwLDEwNSw5NywxMTAsMzIsMTE2LDExMSwKLSAgICAzMiw5NywxMTAsMzIsMTA1LDExMCwxMTYsMTAxLDEwMywxMDEsMTE0LDQ2LDEwLDEwLDMyLDMyLAotICAgIDMyLDMyLDg4LDg4LDg4LDMyLDg0LDEwMSwxMDksMTEyLDExMSwxMTQsOTcsMTE0LDEyMSwzMiwKLSAgICAxMTcsMTEwLDExNiwxMDUsMTA4LDMyLDEwOSw5NywxMTQsMTE1LDEwNCw5NywxMDgsMzksMTE1LDMyLAotICAgIDEwOCwxMTEsMTEwLDEwMywzMiwxMDIsMTE3LDExMCw5OSwxMTYsMTA1LDExMSwxMTAsMzIsOTcsMTE0LAotICAgIDEwMSwzMiwxMDEsMTIwLDExMiwxMTEsMTE1LDEwMSwxMDAsNDYsMTAsMTAsMzIsMzIsMzIsMzIsCi0gICAgMTA1LDAsMCwwLDAsMTA1LDEsMCwwLDAsMTA1LDgsMCwwLDAsMTA1LAotICAgIDIsMCwwLDAsMTA1LDE2LDAsMCwwLDEwNSwzLDAsMCwwLDEwNSwyNCwKLSAgICAwLDAsMCw0MCwwLDAsMCwwLDQwLDIsMCwwLDAsMTE3LDksMCwKLSAgICAwLDAsMTA1LDExMCwxMTYsOTUsOTgsMTIxLDExNiwxMDEsMTE1LDExNywxLDAsMCwwLAotICAgIDEyMCw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLAotICAgIDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsCi0gICAgOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw3LDAsCi0gICAgMCwwLDk1LDExNCw5NSwxMDgsMTExLDExMCwxMDMsNjEsMCwwLDAsMTE1LDEwLDAsCi0gICAgMCwwLDAsNiwxMCwxLDE4LDEsMTgsMSwxOCwxLDExNyw3LDAsMCwKLSAgICAwLDk1LDExNCw5NSwxMDgsMTExLDExMCwxMDMsOTksMCwwLDAsMCwwLDAsMCwKLSAgICAwLDMsMCwwLDAsNCwwLDAsMCw3MSwwLDAsMCwxMTUsMTAzLDAsCi0gICAgMCwwLDEwMywwLDAsMTI1LDEsMCwxMjAsNzEsMCwxMjQsMCwwLDY4LDkzLAotICAgIDYzLDAsMTI1LDIsMCwxMjQsMiwwLDExNSwzMSwwLDExMywxMywwLDExMCwwLAotICAgIDAsMTI0LDEsMCwxMDYsMCwwLDEyNCwyLDAsMTMxLDEsMCwxLDEyNCwyLAotICAgIDAsMTAwLDQsMCwyNSwxMTYsMSwwLDEwNyw3LDAsMTE0LDEzLDAsMTI0LDEsCi0gICAgMCwxMDYsMCwwLDExNiwyLDAsMTMxLDEsMCwxLDExMywxMywwLDExMywxMywKLSAgICAwLDg3LDEwMCwyLDAsMTA2LDMsMCwxMjQsMSwwLDEwMCwzLDAsMTAwLDUsCi0gICAgMCwxMzMsMiwwLDI1LDEzMSwxLDAsODMsNDAsNiwwLDAsMCwxMTcsMzEsCi0gICAgMCwwLDAsODIsMTAxLDExMiwxMDgsOTcsOTksMTAxLDEwOSwxMDEsMTEwLDExNiwzMiwxMDIsCi0gICAgMTExLDExNCwzMiwxMTEsMTE1LDQ2LDExMiw5NywxMTYsMTA0LDQ2LDEwNiwxMTEsMTA1LDExMCw0MCwKLSAgICA0MSw0NiwxMDUsMSwwLDAsMCwxMTcsMCwwLDAsMCw3OCwxMDUsMjU1LDI1NSwKLSAgICAyNTUsMjU1LDEwNSwyNTUsMjU1LDI1NSwyNTUsNDAsNCwwLDAsMCwxMTcsNiwwLDAsCi0gICAgMCw5NywxMTIsMTEyLDEwMSwxMTAsMTAwLDExNywxNSwwLDAsMCwxMTIsOTcsMTE2LDEwNCwKLSAgICA5NSwxMTUsMTAxLDExMiw5NywxMTQsOTcsMTE2LDExMSwxMTQsMTE1LDExNyw4LDAsMCwwLAotICAgIDExMiw5NywxMTYsMTA0LDk1LDExNSwxMDEsMTEyLDExNyw0LDAsMCwwLDEwNiwxMTEsMTA1LAotICAgIDExMCw0MCwzLDAsMCwwLDExNywxMCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwKLSAgICAxMTIsOTcsMTE0LDExNiwxMTUsMTE3LDksMCwwLDAsMTEwLDEwMSwxMTksOTUsMTEyLDk3LAotICAgIDExNCwxMTYsMTE1LDExNyw0LDAsMCwwLDExMiw5NywxMTQsMTE2LDQwLDAsMCwwLAotICAgIDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLAotICAgIDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsCi0gICAgMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEwLDAsMCwwLDk1LDExMiw5NywKLSAgICAxMTYsMTA0LDk1LDEwNiwxMTEsMTA1LDExMCw3NCwwLDAsMCwxMTUsMTYsMCwwLDAsCi0gICAgMCwyLDYsMSwxMywxLDYsMSw2LDEsMTMsMSwxNiwxLDIwLDEsCi0gICAgMTE3LDEwLDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNiwxMTEsMTA1LDExMCw5OSwKLSAgICAxLDAsMCwwLDAsMCwwLDAsNiwwLDAsMCwzLDAsMCwwLAotICAgIDY3LDAsMCwwLDExNSw4NSwwLDAsMCwxMjAsNDgsMCwxMTYsMCwwLDEyNCwKLSAgICAwLDAsMTMxLDEsMCw2OCw5MywyOCwwLDEyNSwxLDAsMTI0LDEsMCwxMTYsCi0gICAgMSwwLDEwNyw2LDAsMTE0LDEzLDAsMTI0LDEsMCwxMjUsMiwwLDgwLDExMywKLSAgICAxMywwLDExMywxMywwLDg3LDExNiwyLDAsMTI1LDIsMCwxMjQsMCwwLDEwNiwKLSAgICAzLDAsMTI0LDIsMCwxMzEsMSwwLDkyLDMsMCwxMjUsMywwLDEyNSw0LAotICAgIDAsMTI1LDUsMCwxMjQsMywwLDEyNCw1LDAsMTAyLDIsMCw4Myw0MCwxLAotICAgIDAsMCwwLDExNywzMiwwLDAsMCw4MiwxMDEsMTEyLDEwOCw5Nyw5OSwxMDEsMTA5LAotICAgIDEwMSwxMTAsMTE2LDMyLDEwMiwxMTEsMTE0LDMyLDExMSwxMTUsNDYsMTEyLDk3LDExNiwxMDQsNDYsCi0gICAgMTE1LDExMiwxMDgsMTA1LDExNiw0MCw0MSw0Niw0MCw0LDAsMCwwLDExNyw4LDAsCi0gICAgMCwwLDExNCwxMDEsMTE4LDEwMSwxMTQsMTE1LDEwMSwxMDAsMTE3LDE1LDAsMCwwLDExMiwKLSAgICA5NywxMTYsMTA0LDk1LDExNSwxMDEsMTEyLDk3LDExNCw5NywxMTYsMTExLDExNCwxMTUsMTE3LDgsCi0gICAgMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTE1LDEwMSwxMTIsMTE3LDEwLDAsMCwwLAotICAgIDExNCwxMTIsOTcsMTE0LDExNiwxMDUsMTE2LDEwNSwxMTEsMTEwLDQwLDYsMCwwLDAsMTE3LAotICAgIDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LDEsMCwwLDAsMTIwLDExNywzLAotICAgIDAsMCwwLDExNSwxMDEsMTEyLDExNyw1LDAsMCwwLDEwMiwxMTQsMTExLDExMCwxMTYsCi0gICAgMTE3LDEsMCwwLDAsOTUsMTE3LDQsMCwwLDAsMTE2LDk3LDEwNSwxMDgsNDAsCi0gICAgMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsCi0gICAgMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LAotICAgIDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTEsMCwwLDAsCi0gICAgOTUsMTEyLDk3LDExNiwxMDQsOTUsMTE1LDExMiwxMDgsMTA1LDExNiw4NiwwLDAsMCwxMTUsCi0gICAgMTQsMCwwLDAsMCwyLDE5LDEsMTIsMSw2LDEsOCwyLDYsMSwKLSAgICAyNCwxLDExNywxMSwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMTUsMTEyLDEwOCwKLSAgICAxMDUsMTE2LDk5LDIsMCwwLDAsMCwwLDAsMCwzLDAsMCwwLDExLAotICAgIDAsMCwwLDY3LDAsMCwwLDExNSw2MSwwLDAsMCwxMjEsMTksMCwxMTYsCi0gICAgMCwwLDEwNiwxLDAsMTI0LDAsMCwxMzEsMSwwLDEyNSwyLDAsODcsMTEwLAotICAgIDIyLDAsNCwxMTYsMiwwLDEwNywxMCwwLDExNCw0MywwLDEsMSwxLDEwMCwKLSAgICAyLDAsODMsODksMTEwLDEsMCw4OCwxMjQsMiwwLDEwNiw0LDAsMTAwLDEsCi0gICAgMCw2NCwxMjQsMSwwLDEwNywyLDAsODMsNDAsMywwLDAsMCwxMTcsNDksCi0gICAgMCwwLDAsODQsMTAxLDExNSwxMTYsMzIsMTE5LDEwNCwxMDEsMTE2LDEwNCwxMDEsMTE0LDMyLAotICAgIDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLDEwNSwxMTUsMzIsMTE2LDEwNCwxMDEsMzIsCi0gICAgMTE1LDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwzMiwxMDksMTExLDEwMCwxMDEsMzIsMTE2LAotICAgIDEyMSwxMTIsMTAxLDQ2LDEwNSwwLDI0MCwwLDAsNzAsNDAsNSwwLDAsMCwxMTcsCi0gICAgMywwLDAsMCw5NSwxMTEsMTE1LDExNyw0LDAsMCwwLDExNSwxMTYsOTcsMTE2LAotICAgIDExNyw3LDAsMCwwLDc5LDgzLDY5LDExNCwxMTQsMTExLDExNCwxMTcsNSwwLDAsCi0gICAgMCw3MCw5NywxMDgsMTE1LDEwMSwxMTcsNywwLDAsMCwxMTUsMTE2LDk1LDEwOSwxMTEsCi0gICAgMTAwLDEwMSw0MCwzLDAsMCwwLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LAotICAgIDExNyw0LDAsMCwwLDEwOSwxMTEsMTAwLDEwMSwxMTcsOSwwLDAsMCwxMTUsMTE2LAotICAgIDk3LDExNiw5NSwxMDUsMTEwLDEwMiwxMTEsNDAsMCwwLDAsMCw0MCwwLDAsMCwKLSAgICAwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LAotICAgIDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LAotICAgIDk3LDExMiw2MiwxMTcsMTgsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA1LDExNSwKLSAgICA5NSwxMDksMTExLDEwMCwxMDEsOTUsMTE2LDEyMSwxMTIsMTAxLDk4LDAsMCwwLDExNSwxMCwKLSAgICAwLDAsMCwwLDIsMywxLDE5LDEsMTMsMSw5LDEsMTE3LDE4LDAsCi0gICAgMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMTUsOTUsMTA5LDExMSwxMDAsMTAxLDk1LAotICAgIDExNiwxMjEsMTEyLDEwMSw5OSwxLDAsMCwwLDAsMCwwLDAsMSwwLDAsCi0gICAgMCwzLDAsMCwwLDY3LDAsMCwwLDExNSwxMywwLDAsMCwxMTYsMCwKLSAgICAwLDEyNCwwLDAsMTAwLDEsMCwxMzEsMiwwLDgzLDQwLDIsMCwwLDAsCi0gICAgMTE3LDMxLDAsMCwwLDgyLDEwMSwxMTIsMTA4LDk3LDk5LDEwMSwxMDksMTAxLDExMCwxMTYsCi0gICAgMzIsMTAyLDExMSwxMTQsMzIsMTExLDExNSw0NiwxMTIsOTcsMTE2LDEwNCw0NiwxMDUsMTE1LDEwMiwKLSAgICAxMDUsMTA4LDEwMSw0NiwxMDUsMCwxMjgsMCwwLDQwLDEsMCwwLDAsMTE3LDE4LAotICAgIDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMTUsOTUsMTA5LDExMSwxMDAsMTAxLAotICAgIDk1LDExNiwxMjEsMTEyLDEwMSw0MCwxLDAsMCwwLDExNyw0LDAsMCwwLDExMiwKLSAgICA5NywxMTYsMTA0LDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwKKyAgICAzMiw2NSwxMTUsMTAsMTE1LDExNyw5OSwxMDQsMzIsMTA1LDExNiwzMiwxMTQsMTAxLDExMywxMTcsCisgICAgMTA1LDExNCwxMDEsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDEwNSwxMTAsMTA2LDEwMSw5OSwxMTYsMTA1LAorICAgIDExMSwxMTAsMzIsMTExLDEwMiwzMiwxMTUsMTEyLDEwMSw5OSwxMDUsMTAyLDEwNSw5OSwzMiwxMDksCisgICAgMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsMzIsOTcsMTEwLDEwMCwzMiw5NywxMTYsMTE2LDExNCwxMDUsCisgICAgOTgsMTE3LDExNiwxMDEsMTE1LDMyLDEwNSwxMTAsMzIsMTExLDExNCwxMDAsMTAxLDExNCwzMiwxMTYsCisgICAgMTExLDEwLDExOSwxMTEsMTE0LDEwNyw0NiwzMiw3OSwxMTAsMTAxLDMyLDExNSwxMDQsMTExLDExNywKKyAgICAxMDgsMTAwLDMyLDExNywxMTUsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsCisgICAgMzIsOTcsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDExMiwxMTcsOTgsMTA4LDEwNSw5OSw0NSwxMDIsCisgICAgOTcsOTksMTA1LDExMCwxMDMsMzIsMTE4LDEwMSwxMTQsMTE1LDEwNSwxMTEsMTEwLDMyLDExMSwxMDIsCisgICAgMzIsMTE2LDEwNCwxMDUsMTE1LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQ2LDEwLDEwLDI0NCwKKyAgICAzLDAsMCwwLDExOSwxMDUsMTEwLDI0NCw2LDAsMCwwLDk5LDEyMSwxMDMsMTE5LAorICAgIDEwNSwxMTAsMjQ0LDYsMCwwLDAsMTAwLDk3LDExNCwxMTksMTA1LDExMCw5OSwwLDAsCisgICAgMCwwLDAsMCwwLDAsMSwwLDAsMCwyLDAsMCwwLDY3LDAsCisgICAgMCwwLDExNSw0OSwwLDAsMCwxMTYsMCwwLDEwNiwxLDAsMTA2LDIsMCwKKyAgICAxMTYsMywwLDEzMSwxLDAsMTE0LDMzLDAsMTAwLDEsMCwxMDAsMiwwLDEzMiwKKyAgICAwLDAsMTI1LDAsMCwxMTAsMTIsMCwxMDAsMywwLDEwMCwyLDAsMTMyLDAsCisgICAgMCwxMjUsMCwwLDEyNCwwLDAsODMsNDAsNCwwLDAsMCw3OCw5OSwwLAorICAgIDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDgzLAorICAgIDAsMCwwLDExNSwxMywwLDAsMCwxMDAsMSwwLDExNiwwLDAsMTA2LDEsCisgICAgMCwxMDcsNiwwLDgzLDQwLDIsMCwwLDAsMTE3LDUzLDAsMCwwLDg0LAorICAgIDExNCwxMTcsMTAxLDMyLDEwNSwxMDIsMzIsMTAyLDEwNSwxMDgsMTAxLDExMCw5NywxMDksMTAxLDExNSwKKyAgICAzMiwxMDksMTE3LDExNSwxMTYsMzIsOTgsMTAxLDMyLDk5LDEwNCwxMDEsOTksMTA3LDEwMSwxMDAsCisgICAgMzIsOTksOTcsMTE1LDEwMSw0NSwxMDUsMTEwLDExNSwxMDEsMTEwLDExNSwxMDUsMTE2LDEwNSwxMTgsCisgICAgMTAxLDEwOCwxMjEsNDYsMTE1LDEyLDAsMCwwLDgwLDg5LDg0LDcyLDc5LDc4LDY3LAorICAgIDY1LDgzLDY5LDc5LDc1LDQwLDIsMCwwLDAsMjQ0LDMsMCwwLDAsOTUsCisgICAgMTExLDExNSwxMTYsNywwLDAsMCwxMDEsMTEwLDExOCwxMDUsMTE0LDExMSwxMTAsMTY4LDAsCisgICAgMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMjQ1LDI5LDAsCiAgICAgMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LAotICAgIDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywKLSAgICAxMiwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMDUsMTE1LDEwMiwxMDUsMTA4LDEwMSwKLSAgICAxMDgsMCwwLDAsMTE1LDIsMCwwLDAsMCwyLDExNywxMiwwLDAsMCwKLSAgICA5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMDUsMTE1LDEwMiwxMDUsMTA4LDEwMSw5OSwxLDAsMCwKLSAgICAwLDAsMCwwLDAsMSwwLDAsMCwzLDAsMCwwLDY3LDAsMCwKLSAgICAwLDExNSwzNCwwLDAsMCwxMjQsMCwwLDExNSwyMSwwLDExNiwwLDAsMTA2LAotICAgIDEsMCwxMzEsMCwwLDEyNSwwLDAsMTEwLDAsMCwxMTYsMiwwLDEyNCwwLAotICAgIDAsMTAwLDEsMCwxMzEsMiwwLDgzLDQwLDIsMCwwLDAsMTE3LDMwLDAsCi0gICAgMCwwLDgyLDEwMSwxMTIsMTA4LDk3LDk5LDEwMSwxMDksMTAxLDExMCwxMTYsMzIsMTAyLDExMSwKLSAgICAxMTQsMzIsMTExLDExNSw0NiwxMTIsOTcsMTE2LDEwNCw0NiwxMDUsMTE1LDEwMCwxMDUsMTE0LDQ2LAotICAgIDEwNSwwLDY0LDAsMCw0MCwzLDAsMCwwLDExNywzLDAsMCwwLDk1LAotICAgIDExMSwxMTUsMTE3LDYsMCwwLDAsMTAzLDEwMSwxMTYsOTksMTE5LDEwMCwxMTcsMTgsMCwKLSAgICAwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA1LDExNSw5NSwxMDksMTExLDEwMCwxMDEsOTUsCi0gICAgMTE2LDEyMSwxMTIsMTAxLDQwLDEsMCwwLDAsMTE3LDQsMCwwLDAsMTEyLDk3LAotICAgIDExNiwxMDQsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsCi0gICAgMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsCi0gICAgMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTEsCi0gICAgMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA1LDExNSwxMDAsMTA1LDExNCwxMTQsMCwKLSAgICAwLDAsMTE1LDYsMCwwLDAsMCwyLDYsMSwxNSwxLDExNywxMSwwLAotICAgIDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMDUsMTE1LDEwMCwxMDUsMTE0LDEwNSwxODIsMSwKLSAgICAwLDAsOTksMywwLDAsMCwwLDAsMCwwLDYsMCwwLDAsMTcsCi0gICAgMCwwLDAsNjcsMCwwLDAsMTE1LDE5MiwwLDAsMCwxMDAsMSwwLDEwNiwKLSAgICAwLDAsMTI0LDAsMCwxMTYsMSwwLDEyNCwwLDAsMTMxLDEsMCwxMzEsMiwKLSAgICAwLDEyNSwzLDAsMTE2LDIsMCwxMDYsMywwLDEyNCwzLDAsMTE2LDIsMCwKLSAgICAxMDYsNCwwLDExNiwyLDAsMTA2LDUsMCw2NiwxMTYsMiwwLDEwNiw2LDAsCi0gICAgNjYsMTI0LDIsMCwxMDAsMiwwLDY0LDEzMSwzLDAsMTI1LDQsMCwxMjEsNjAsCi0gICAgMCwxMTYsNywwLDEwNiw4LDAsMTI0LDQsMCwxMDAsMywwLDEzMSwyLDAsCi0gICAgMTQzLDIwLDAsMTI1LDUsMCwxMjQsNSwwLDEwNiw5LDAsMTI0LDEsMCwxMzEsCi0gICAgMSwwLDEsODcsMTAwLDQsMCw4MSw4OCwxMTYsMiwwLDEwNiwxMCwwLDEyNCwKLSAgICAzLDAsMTI0LDAsMCwxMzEsMiwwLDEsODcsMTEwLDU5LDAsNCwxMTYsMTEsCi0gICAgMCwxMDcsMTAsMCwxMTQsMTg3LDAsMSwxLDEsMTIxLDE3LDAsMTE2LDIsMCwKLSAgICAxMDYsMTIsMCwxMjQsMywwLDEzMSwxLDAsMSw4NywxMTAsMTgsMCw0LDExNiwKLSAgICAxMSwwLDEwNywxMCwwLDExNCwxNzksMCwxLDEsMSw4OSwxMTAsMSwwLDg4LAotICAgIDEzMCwwLDAsODksMTEwLDEsMCw4OCwxMDAsNCwwLDgzLDQwLDUsMCwwLAotICAgIDAsMTE3LDE2MiwwLDAsMCw2NiwxMDEsMTE1LDExNiw0NSwxMDEsMTAyLDEwMiwxMTEsMTE0LAotICAgIDExNiwzMiwxMDIsMTE3LDExMCw5OSwxMTYsMTA1LDExMSwxMTAsMzIsMTE2LDExMSwzMiwxMTksMTE0LAotICAgIDEwNSwxMTYsMTAxLDMyLDEwMCw5NywxMTYsOTcsMzIsMTE2LDExMSwzMiw5NywzMiwxMTIsOTcsCi0gICAgMTE2LDEwNCwzMiw5NywxMTYsMTExLDEwOSwxMDUsOTksOTcsMTA4LDEwOCwxMjEsNDYsMTAsMzIsCi0gICAgMzIsMzIsMzIsNjYsMTAxLDMyLDExMiwxMTQsMTAxLDExMiw5NywxMTQsMTAxLDEwMCwzMiwxMTYsCi0gICAgMTExLDMyLDEwNCw5NywxMTAsMTAwLDEwOCwxMDEsMzIsOTcsMzIsNzAsMTA1LDEwOCwxMDEsNjksCi0gICAgMTIwLDEwNSwxMTUsMTE2LDExNSw2OSwxMTQsMTE0LDExMSwxMTQsMzIsMTA1LDEwMiwzMiw5OSwxMTEsCi0gICAgMTEwLDk5LDExNywxMTQsMTE0LDEwMSwxMTAsMTE2LDMyLDExOSwxMTQsMTA1LDExNiwxMDUsMTEwLDEwMywKLSAgICAzMiwxMTEsMTAyLDMyLDExNiwxMDQsMTAxLDEwLDMyLDMyLDMyLDMyLDExNiwxMDEsMTA5LDExMiwKLSAgICAxMTEsMTE0LDk3LDExNCwxMjEsMzIsMTAyLDEwNSwxMDgsMTAxLDMyLDEwNSwxMTUsMzIsOTcsMTE2LAotICAgIDExNiwxMDEsMTA5LDExMiwxMTYsMTAxLDEwMCw0NiwxMTcsNSwwLDAsMCwxMjMsMTI1LDQ2LAotICAgIDEyMywxMjUsMTA1LDE4MiwxLDAsMCwxMTcsMiwwLDAsMCwxMTksOTgsNzgsNDAsCi0gICAgMTMsMCwwLDAsMTE3LDYsMCwwLDAsMTAyLDExMSwxMTQsMTA5LDk3LDExNiwxMTcsCi0gICAgMiwwLDAsMCwxMDUsMTAwLDExNywzLDAsMCwwLDk1LDExMSwxMTUsMTE3LDQsCi0gICAgMCwwLDAsMTExLDExMiwxMDEsMTEwLDExNyw2LDAsMCwwLDc5LDk1LDY5LDg4LAotICAgIDY3LDc2LDExNyw3LDAsMCwwLDc5LDk1LDY3LDgyLDY5LDY1LDg0LDExNyw4LAotICAgIDAsMCwwLDc5LDk1LDg3LDgyLDc5LDc4LDc2LDg5LDExNywzLDAsMCwwLAotICAgIDk1LDEwNSwxMTEsMTE3LDYsMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzMsNzksMTE3LDUsCi0gICAgMCwwLDAsMTE5LDExNCwxMDUsMTE2LDEwMSwxMTcsNywwLDAsMCwxMTQsMTAxLDExMiwKLSAgICAxMDgsOTcsOTksMTAxLDExNyw3LDAsMCwwLDc5LDgzLDY5LDExNCwxMTQsMTExLDExNCwKLSAgICAxMTcsNiwwLDAsMCwxMTcsMTEwLDEwOCwxMDUsMTEwLDEwNyw0MCw2LDAsMCwwLAotICAgIDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDExNyw0LDAsMCwwLDEwMCw5NywKLSAgICAxMTYsOTcsMTE3LDQsMCwwLDAsMTA5LDExMSwxMDAsMTAxLDExNyw4LDAsMCwwLAotICAgIDExMiw5NywxMTYsMTA0LDk1LDExNiwxMDksMTEyLDExNywyLDAsMCwwLDEwMiwxMDAsMTE3LAotICAgIDQsMCwwLDAsMTAyLDEwNSwxMDgsMTAxLDQwLDAsMCwwLDAsNDAsMCwwLAotICAgIDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LAotICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LAotICAgIDExNCw5NywxMTIsNjIsMTE3LDEzLDAsMCwwLDk1LDExOSwxMTQsMTA1LDExNiwxMDEsOTUsCi0gICAgOTcsMTE2LDExMSwxMDksMTA1LDk5LDEyMSwwLDAsMCwxMTUsMjYsMCwwLDAsMCwKLSAgICA1LDI0LDEsOSwxLDMzLDEsMywzLDIxLDEsMTksMSwyMCwxLDEzLAotICAgIDEsMywxLDE3LDEsMTMsMSw1LDEsMTE3LDEzLDAsMCwwLDk1LDExOSwKLSAgICAxMTQsMTA1LDExNiwxMDEsOTUsOTcsMTE2LDExMSwxMDksMTA1LDk5LDk5LDIsMCwwLDAsCi0gICAgMCwwLDAsMCwzLDAsMCwwLDcsMCwwLDAsNjcsMCwwLDAsCi0gICAgMTE1LDk1LDAsMCwwLDEyMCw2OSwwLDEwMCwxLDAsMTAwLDIsMCwxMDAsMywKLSAgICAwLDEwMCw0LDAsMTAzLDQsMCw2OCw5Myw0OSwwLDEyNSwyLDAsMTE2LDAsCi0gICAgMCwxMjQsMSwwLDEyNCwyLDAsMTMxLDIsMCwxMTQsMTksMCwxMTYsMSwwLAotICAgIDEyNCwwLDAsMTI0LDIsMCwxMTYsMiwwLDEyNCwxLDAsMTI0LDIsMCwxMzEsCi0gICAgMiwwLDEzMSwzLDAsMSwxMTMsMTksMCwxMTMsMTksMCw4NywxMjQsMCwwLAotICAgIDEwNiwzLDAsMTA2LDQsMCwxMjQsMSwwLDEwNiwzLDAsMTMxLDEsMCwxLAotICAgIDEwMCw1LDAsODMsNDAsNiwwLDAsMCwxMTcsNDcsMCwwLDAsODMsMTA1LAotICAgIDEwOSwxMTIsMTA4LDEwMSwzMiwxMTUsMTE3LDk4LDExNSwxMTYsMTA1LDExNiwxMTcsMTE2LDEwMSwzMiwKLSAgICAxMDIsMTExLDExNCwzMiwxMDIsMTE3LDExMCw5OSwxMTYsMTExLDExMSwxMDgsMTE1LDQ2LDExNywxMTIsCi0gICAgMTAwLDk3LDExNiwxMDEsOTUsMTE5LDExNCw5NywxMTIsMTEyLDEwMSwxMTQsNDYsMTE3LDEwLDAsCi0gICAgMCwwLDk1LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDk1LDExNyw4LDAsMCwKLSAgICAwLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LDk1LDExNywxMiwwLDAsMCw5NSw5NSwKLSAgICAxMTMsMTE3LDk3LDEwOCwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsNywwLDAsMCw5NSwKLSAgICA5NSwxMDAsMTExLDk5LDk1LDk1LDc4LDQwLDUsMCwwLDAsMTE3LDcsMCwwLAotICAgIDAsMTA0LDk3LDExNSw5NywxMTYsMTE2LDExNCwxMTcsNywwLDAsMCwxMTUsMTAxLDExNiwKLSAgICA5NywxMTYsMTE2LDExNCwxMTcsNywwLDAsMCwxMDMsMTAxLDExNiw5NywxMTYsMTE2LDExNCwKLSAgICAxMTcsOCwwLDAsMCw5NSw5NSwxMDAsMTA1LDk5LDExNiw5NSw5NSwxMTcsNiwwLAotICAgIDAsMCwxMTcsMTEyLDEwMCw5NywxMTYsMTAxLDQwLDMsMCwwLDAsMTE3LDMsMCwKLSAgICAwLDAsMTEwLDEwMSwxMTksMTE3LDMsMCwwLDAsMTExLDEwOCwxMDAsMTE3LDcsMCwKLSAgICAwLDAsMTE0LDEwMSwxMTIsMTA4LDk3LDk5LDEwMSw0MCwwLDAsMCwwLDQwLDAsCi0gICAgMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLAotICAgIDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LAotICAgIDExNiwxMTQsOTcsMTEyLDYyLDExNyw1LDAsMCwwLDk1LDExOSwxMTQsOTcsMTEyLDE0MywKLSAgICAwLDAsMCwxMTUsOCwwLDAsMCwwLDIsMjUsMSwxNSwxLDMyLDEsCi0gICAgMTE3LDUsMCwwLDAsOTUsMTE5LDExNCw5NywxMTIsOTksMSwwLDAsMCwwLAorICAgIDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDI0NCwKKyAgICAxMSwwLDAsMCw5NSwxMTQsMTAxLDEwOCw5NywxMjAsOTUsOTksOTcsMTE1LDEwMSwzMCwKKyAgICAwLDAsMCwxMTUsMiwwLDAsMCwwLDIsMTE3LDM3LDAsMCwwLDk1LAorICAgIDEwOSw5NywxMDcsMTAxLDk1LDExNCwxMDEsMTA4LDk3LDEyMCw5NSw5OSw5NywxMTUsMTAxLDQ2LAorICAgIDYwLDEwOCwxMTEsOTksOTcsMTA4LDExNSw2Miw0Niw5NSwxMTQsMTAxLDEwOCw5NywxMjAsOTUsCisgICAgOTksOTcsMTE1LDEwMSw5OSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsCisgICAgMCwxLDAsMCwwLDgzLDAsMCwwLDExNSw0LDAsMCwwLDEwMCwxLAorICAgIDAsODMsNDAsMiwwLDAsMCwxMTcsNTMsMCwwLDAsODQsMTE0LDExNywxMDEsCisgICAgMzIsMTA1LDEwMiwzMiwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsMTE1LDMyLDEwOSwxMTcsCisgICAgMTE1LDExNiwzMiw5OCwxMDEsMzIsOTksMTA0LDEwMSw5OSwxMDcsMTAxLDEwMCwzMiw5OSw5NywKKyAgICAxMTUsMTAxLDQ1LDEwNSwxMTAsMTE1LDEwMSwxMTAsMTE1LDEwNSwxMTYsMTA1LDExOCwxMDEsMTA4LDEyMSwKKyAgICA0Niw3MCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsCisgICAgMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwxMTQsNiwwLDAsMCwKKyAgICAzNCwwLDAsMCwxMTUsMiwwLDAsMCwwLDIsNDAsNCwwLDAsMCwKKyAgICAyNDQsMywwLDAsMCwxMTUsMTIxLDExNSwyNDQsOCwwLDAsMCwxMTIsMTA4LDk3LAorICAgIDExNiwxMDIsMTExLDExNCwxMDksMjQ0LDEwLDAsMCwwLDExNSwxMTYsOTcsMTE0LDExNiwxMTUsCisgICAgMTE5LDEwNSwxMTYsMTA0LDI0NCwyNywwLDAsMCw5NSw2Nyw2NSw4Myw2OSw5NSw3MywKKyAgICA3OCw4Myw2OSw3OCw4Myw3Myw4NCw3Myw4Niw2OSw5NSw4MCw3Niw2NSw4NCw3MCwKKyAgICA3OSw4Miw3Nyw4Myw0MCwxLDAsMCwwLDExNCw2LDAsMCwwLDExNCw0LAorICAgIDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwxNiwwLAorICAgIDAsMCw5NSwxMDksOTcsMTA3LDEwMSw5NSwxMTQsMTAxLDEwOCw5NywxMjAsOTUsOTksOTcsCisgICAgMTE1LDEwMSwyOCwwLDAsMCwxMTUsOCwwLDAsMCwwLDEsMTgsMSwxNSwKKyAgICA0LDEyLDMsMTE0LDExLDAsMCwwLDk5LDEsMCwwLDAsMCwwLDAsCisgICAgMCwxLDAsMCwwLDMsMCwwLDAsNjcsMCwwLDAsMTE1LDI2LDAsCisgICAgMCwwLDExNiwwLDAsMTI0LDAsMCwxMzEsMSwwLDEwMCwxLDAsNjQsMTA2LAorICAgIDEsMCwxMDAsMiwwLDEwMCwzLDAsMTMxLDIsMCw4Myw0MCw0LDAsMCwKKyAgICAwLDExNyw0MiwwLDAsMCw2NywxMTEsMTEwLDExOCwxMDEsMTE0LDExNiwzMiw5NywzMiwKKyAgICA1MSw1MCw0NSw5OCwxMDUsMTE2LDMyLDEwNSwxMTAsMTE2LDEwMSwxMDMsMTAxLDExNCwzMiwxMTYsCisgICAgMTExLDMyLDEwOCwxMDUsMTE2LDExNiwxMDgsMTAxLDQ1LDEwMSwxMTAsMTAwLDEwNSw5NywxMTAsNDYsCisgICAgMTA4LDMsMCwwLDAsMjU1LDEyNywyNTUsMTI3LDMsMCwyMzMsNCwwLDAsMCwKKyAgICAyNDQsNiwwLDAsMCwxMDgsMTA1LDExNiwxMTYsMTA4LDEwMSw0MCwyLDAsMCwwLAorICAgIDI0NCwzLDAsMCwwLDEwNSwxMTAsMTE2LDI0NCw4LDAsMCwwLDExNiwxMTEsOTUsCisgICAgOTgsMTIxLDExNiwxMDEsMTE1LDQwLDEsMCwwLDAsMjQ0LDEsMCwwLDAsMTIwLAorICAgIDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwKKyAgICA3LDAsMCwwLDk1LDExOSw5NSwxMDgsMTExLDExMCwxMDMsNDAsMCwwLDAsMTE1LAorICAgIDIsMCwwLDAsMCwyLDExNCwxNywwLDAsMCw5OSwxLDAsMCwwLAorICAgIDAsMCwwLDAsMSwwLDAsMCwzLDAsMCwwLDY3LDAsMCwwLAorICAgIDExNSwxNiwwLDAsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LDAsMCwxMDAsMSwKKyAgICAwLDEzMSwyLDAsODMsNDAsMiwwLDAsMCwxMTcsNDcsMCwwLDAsNjcsCisgICAgMTExLDExMCwxMTgsMTAxLDExNCwxMTYsMzIsNTIsMzIsOTgsMTIxLDExNiwxMDEsMTE1LDMyLDEwNSwKKyAgICAxMTAsMzIsMTA4LDEwNSwxMTYsMTE2LDEwOCwxMDEsNDUsMTAxLDExMCwxMDAsMTA1LDk3LDExMCwzMiwKKyAgICAxMTYsMTExLDMyLDk3LDExMCwzMiwxMDUsMTEwLDExNiwxMDEsMTAzLDEwMSwxMTQsNDYsMTE0LDEzLAorICAgIDAsMCwwLDQwLDIsMCwwLDAsMTE0LDE0LDAsMCwwLDI0NCwxMCwwLAorICAgIDAsMCwxMDIsMTE0LDExMSwxMDksOTUsOTgsMTIxLDExNiwxMDEsMTE1LDQwLDEsMCwwLAorICAgIDAsMTE2LDksMCwwLDAsMTA1LDExMCwxMTYsOTUsOTgsMTIxLDExNiwxMDEsMTE1LDExNCwKKyAgICA0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCw3LAorICAgIDAsMCwwLDk1LDExNCw5NSwxMDgsMTExLDExMCwxMDMsNDUsMCwwLDAsMTE1LDIsCisgICAgMCwwLDAsMCwyLDExNCwxOSwwLDAsMCw5OSwwLDAsMCwwLDAsCisgICAgMCwwLDAsMSwwLDAsMCwzLDAsMCwwLDcxLDAsMCwwLDExNSwKKyAgICAyNiwwLDAsMCwxMTYsMCwwLDEwNiwxLDAsMTAwLDEsMCwxMDAsMiwwLAorICAgIDEzMiwwLDAsMTI0LDAsMCw2OCwxMzEsMSwwLDEzMSwxLDAsODMsNDAsMywKKyAgICAwLDAsMCwxMTcsMzEsMCwwLDAsODIsMTAxLDExMiwxMDgsOTcsOTksMTAxLDEwOSwKKyAgICAxMDEsMTEwLDExNiwzMiwxMDIsMTExLDExNCwzMiwxMTEsMTE1LDQ2LDExMiw5NywxMTYsMTA0LDQ2LAorICAgIDEwNiwxMTEsMTA1LDExMCw0MCw0MSw0Niw5OSwxLDAsMCwwLDAsMCwwLDAsCisgICAgMiwwLDAsMCw0LDAsMCwwLDgzLDAsMCwwLDExNSwzNywwLDAsCisgICAgMCwxMDMsMCwwLDEyNCwwLDAsOTMsMjcsMCwxMjUsMSwwLDEyNCwxLDAsCisgICAgMTE0LDYsMCwxMjQsMSwwLDEwNiwwLDAsMTE2LDEsMCwxMzEsMSwwLDE0NSwKKyAgICAyLDAsMTEzLDYsMCw4MywxMTQsNCwwLDAsMCw0MCwyLDAsMCwwLAorICAgIDI0NCw2LDAsMCwwLDExNCwxMTUsMTE2LDExNCwxMDUsMTEyLDI0NCwxNSwwLDAsMCwKKyAgICAxMTIsOTcsMTE2LDEwNCw5NSwxMTUsMTAxLDExMiw5NywxMTQsOTcsMTE2LDExMSwxMTQsMTE1LDQwLAorICAgIDIsMCwwLDAsMjQ0LDIsMCwwLDAsNDYsNDgsMjQ0LDQsMCwwLDAsCisgICAgMTEyLDk3LDExNCwxMTYsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsCisgICAgMCwwLDAsMjQ1LDEwLDAsMCwwLDYwLDEwOCwxMDUsMTE1LDExNiw5OSwxMTEsMTA5LAorICAgIDExMiw2Miw1MiwwLDAsMCwxMTUsMiwwLDAsMCw5LDEsMTE3LDMwLDAsCisgICAgMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNiwxMTEsMTA1LDExMCw0Niw2MCwxMDgsMTExLAorICAgIDk5LDk3LDEwOCwxMTUsNjIsNDYsNjAsMTA4LDEwNSwxMTUsMTE2LDk5LDExMSwxMDksMTEyLDYyLAorICAgIDQwLDIsMCwwLDAsMjQ0LDgsMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTE1LAorICAgIDEwMSwxMTIsMjQ0LDQsMCwwLDAsMTA2LDExMSwxMDUsMTEwLDQwLDEsMCwwLDAsCisgICAgMjQ0LDEwLDAsMCwwLDExMiw5NywxMTYsMTA0LDk1LDExMiw5NywxMTQsMTE2LDExNSwxMTQsCisgICAgNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwyNDQsMTAsCisgICAgMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA2LDExMSwxMDUsMTEwLDUwLDAsMCwKKyAgICAwLDExNSw0LDAsMCwwLDAsMiwxNSwxLDExNCwyOCwwLDAsMCw5OSwKKyAgICAxLDAsMCwwLDAsMCwwLDAsNSwwLDAsMCw1LDAsMCwwLAorICAgIDY3LDAsMCwwLDExNSwxMzQsMCwwLDAsMTE2LDAsMCwxMTYsMSwwLDEzMSwKKyAgICAxLDAsMTAwLDEsMCwxMDcsMiwwLDExNCw1MiwwLDEyNCwwLDAsMTA2LDIsCisgICAgMCwxMTYsMywwLDEzMSwxLDAsOTIsMywwLDEyNSwxLDAsMTI1LDIsMCwKKyAgICAxMjUsMywwLDEyNCwxLDAsMTI0LDMsMCwxMDIsMiwwLDgzLDEyMCw2OSwwLAorICAgIDExNiw0LDAsMTI0LDAsMCwxMzEsMSwwLDY4LDkzLDU1LDAsMTI1LDQsMCwKKyAgICAxMjQsNCwwLDExNiwxLDAsMTA3LDYsMCwxMTQsNjUsMCwxMjQsMCwwLDEwNiwKKyAgICA1LDAsMTI0LDQsMCwxMDAsMiwwLDEwMCwxLDAsMTMxLDEsMSw5MiwyLAorICAgIDAsMTI1LDEsMCwxMjUsMywwLDEyNCwxLDAsMTI0LDMsMCwxMDIsMiwwLAorICAgIDgzLDExMyw2NSwwLDg3LDEwMCwzLDAsMTI0LDAsMCwxMDIsMiwwLDgzLDQwLAorICAgIDQsMCwwLDAsMTE3LDMyLDAsMCwwLDgyLDEwMSwxMTIsMTA4LDk3LDk5LDEwMSwKKyAgICAxMDksMTAxLDExMCwxMTYsMzIsMTAyLDExMSwxMTQsMzIsMTExLDExNSw0NiwxMTIsOTcsMTE2LDEwNCwKKyAgICA0NiwxMTUsMTEyLDEwOCwxMDUsMTE2LDQwLDQxLDQ2LDIzMywxLDAsMCwwLDExNiw4LAorICAgIDAsMCwwLDEwOSw5NywxMjAsMTE1LDExMiwxMDgsMTA1LDExNiwyNDQsMCwwLDAsMCwKKyAgICA0MCw2LDAsMCwwLDI0NCwzLDAsMCwwLDEwOCwxMDEsMTEwLDExNCwyMSwwLAorICAgIDAsMCwyNDQsMTAsMCwwLDAsMTE0LDExMiw5NywxMTQsMTE2LDEwNSwxMTYsMTA1LDExMSwKKyAgICAxMTAsMTE0LDI1LDAsMCwwLDI0NCw4LDAsMCwwLDExNCwxMDEsMTE4LDEwMSwxMTQsCisgICAgMTE1LDEwMSwxMDAsMjQ0LDYsMCwwLDAsMTE0LDExNSwxMTIsMTA4LDEwNSwxMTYsNDAsNSwKKyAgICAwLDAsMCwyNDQsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwxMTYsNSwwLDAsCisgICAgMCwxMDIsMTE0LDExMSwxMTAsMTE2LDI0NCwxLDAsMCwwLDk1LDI0NCw0LDAsMCwKKyAgICAwLDExNiw5NywxMDUsMTA4LDExNCwxNiwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsCisgICAgNCwwLDAsMCwxMTQsNSwwLDAsMCwyNDQsMTEsMCwwLDAsOTUsMTEyLAorICAgIDk3LDExNiwxMDQsOTUsMTE1LDExMiwxMDgsMTA1LDExNiw1NiwwLDAsMCwxMTUsMTYsMCwKKyAgICAwLDAsMCwyLDE4LDEsMjQsMSwxMCwxLDE5LDEsMTIsMSwyNywxLAorICAgIDE0LDEsMTE0LDM4LDAsMCwwLDk5LDIsMCwwLDAsMCwwLDAsMCwKKyAgICAzLDAsMCwwLDExLDAsMCwwLDY3LDAsMCwwLDExNSw2MSwwLDAsCisgICAgMCwxMjEsMTksMCwxMTYsMCwwLDEwNiwxLDAsMTI0LDAsMCwxMzEsMSwwLAorICAgIDEyNSwyLDAsODcsMTEwLDIyLDAsNCwxMTYsMiwwLDEwNywxMCwwLDExNCw0MywKKyAgICAwLDEsMSwxLDEwMCwxLDAsODMsODksMTEwLDEsMCw4OCwxMjQsMiwwLAorICAgIDEwNiwzLDAsMTAwLDIsMCw2NCwxMjQsMSwwLDEwNywyLDAsODMsNDAsMywKKyAgICAwLDAsMCwxMTcsNDksMCwwLDAsODQsMTAxLDExNSwxMTYsMzIsMTE5LDEwNCwxMDEsCisgICAgMTE2LDEwNCwxMDEsMTE0LDMyLDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLDEwNSwxMTUsCisgICAgMzIsMTE2LDEwNCwxMDEsMzIsMTE1LDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwzMiwxMDksCisgICAgMTExLDEwMCwxMDEsMzIsMTE2LDEyMSwxMTIsMTAxLDQ2LDcwLDEwNSwwLDI0MCwwLDAsNDAsCisgICAgNCwwLDAsMCwxMTQsMywwLDAsMCwyNDQsNCwwLDAsMCwxMTUsMTE2LAorICAgIDk3LDExNiwyNDQsNywwLDAsMCw3OSw4Myw2OSwxMTQsMTE0LDExMSwxMTQsMjQ0LDcsCisgICAgMCwwLDAsMTE1LDExNiw5NSwxMDksMTExLDEwMCwxMDEsNDAsMywwLDAsMCwxMTQsCisgICAgMzUsMCwwLDAsMjQ0LDQsMCwwLDAsMTA5LDExMSwxMDAsMTAxLDExNiw5LDAsCisgICAgMCwwLDExNSwxMTYsOTcsMTE2LDk1LDEwNSwxMTAsMTAyLDExMSwxMTQsNCwwLDAsMCwKKyAgICAxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwyNDQsMTgsMCwwLDAsOTUsCisgICAgMTEyLDk3LDExNiwxMDQsOTUsMTA1LDExNSw5NSwxMDksMTExLDEwMCwxMDEsOTUsMTE2LDEyMSwxMTIsCisgICAgMTAxLDY4LDAsMCwwLDExNSwxMCwwLDAsMCwwLDIsMywxLDE5LDEsCisgICAgMTMsMSw5LDEsMTE0LDQzLDAsMCwwLDk5LDEsMCwwLDAsMCwwLAorICAgIDAsMCwxLDAsMCwwLDMsMCwwLDAsNjcsMCwwLDAsMTE1LDEzLAorICAgIDAsMCwwLDExNiwwLDAsMTI0LDAsMCwxMDAsMSwwLDEzMSwyLDAsODMsCisgICAgNDAsMiwwLDAsMCwxMTcsMzEsMCwwLDAsODIsMTAxLDExMiwxMDgsOTcsOTksCisgICAgMTAxLDEwOSwxMDEsMTEwLDExNiwzMiwxMDIsMTExLDExNCwzMiwxMTEsMTE1LDQ2LDExMiw5NywxMTYsCisgICAgMTA0LDQ2LDEwNSwxMTUsMTAyLDEwNSwxMDgsMTAxLDQ2LDEwNSwwLDEyOCwwLDAsNDAsMSwKKyAgICAwLDAsMCwxMTQsNDMsMCwwLDAsNDAsMSwwLDAsMCwxMTQsMzUsMCwKKyAgICAwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLAorICAgIDAsMjQ0LDEyLDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMTUsMTAyLDEwNSwKKyAgICAxMDgsMTAxLDc4LDAsMCwwLDExNSwyLDAsMCwwLDAsMiwxMTQsNDQsMCwKKyAgICAwLDAsOTksMSwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMywKKyAgICAwLDAsMCw2NywwLDAsMCwxMTUsMzQsMCwwLDAsMTI0LDAsMCwxMTUsCisgICAgMjEsMCwxMTYsMCwwLDEwNiwxLDAsMTMxLDAsMCwxMjUsMCwwLDExMCwwLAorICAgIDAsMTE2LDIsMCwxMjQsMCwwLDEwMCwxLDAsMTMxLDIsMCw4Myw0MCwyLAorICAgIDAsMCwwLDExNywzMCwwLDAsMCw4MiwxMDEsMTEyLDEwOCw5Nyw5OSwxMDEsMTA5LAorICAgIDEwMSwxMTAsMTE2LDMyLDEwMiwxMTEsMTE0LDMyLDExMSwxMTUsNDYsMTEyLDk3LDExNiwxMDQsNDYsCisgICAgMTA1LDExNSwxMDAsMTA1LDExNCw0NiwxMDUsMCw2NCwwLDAsNDAsMywwLDAsMCwKKyAgICAxMTQsMywwLDAsMCwxMTYsNiwwLDAsMCwxMDMsMTAxLDExNiw5OSwxMTksMTAwLAorICAgIDExNCw0MywwLDAsMCw0MCwxLDAsMCwwLDExNCwzNSwwLDAsMCwxMTQsCisgICAgNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwyNDQsMTEsCisgICAgMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA1LDExNSwxMDAsMTA1LDExNCw4NCwwLAorICAgIDAsMCwxMTUsNiwwLDAsMCwwLDIsNiwxLDE1LDEsMTE0LDQ1LDAsCisgICAgMCwwLDEwNSwxODIsMSwwLDAsOTksMywwLDAsMCwwLDAsMCwwLAorICAgIDYsMCwwLDAsMTcsMCwwLDAsNjcsMCwwLDAsMTE1LDE5MiwwLDAsCisgICAgMCwxMDAsMSwwLDEwNiwwLDAsMTI0LDAsMCwxMTYsMSwwLDEyNCwwLDAsCisgICAgMTMxLDEsMCwxMzEsMiwwLDEyNSwzLDAsMTE2LDIsMCwxMDYsMywwLDEyNCwKKyAgICAzLDAsMTE2LDIsMCwxMDYsNCwwLDExNiwyLDAsMTA2LDUsMCw2NiwxMTYsCisgICAgMiwwLDEwNiw2LDAsNjYsMTI0LDIsMCwxMDAsMiwwLDY0LDEzMSwzLDAsCisgICAgMTI1LDQsMCwxMjEsNjAsMCwxMTYsNywwLDEwNiw4LDAsMTI0LDQsMCwxMDAsCisgICAgMywwLDEzMSwyLDAsMTQzLDIwLDAsMTI1LDUsMCwxMjQsNSwwLDEwNiw5LAorICAgIDAsMTI0LDEsMCwxMzEsMSwwLDEsODcsMTAwLDQsMCw4MSw4OCwxMTYsMiwKKyAgICAwLDEwNiwxMCwwLDEyNCwzLDAsMTI0LDAsMCwxMzEsMiwwLDEsODcsMTEwLAorICAgIDU5LDAsNCwxMTYsMTEsMCwxMDcsMTAsMCwxMTQsMTg3LDAsMSwxLDEsMTIxLAorICAgIDE3LDAsMTE2LDIsMCwxMDYsMTIsMCwxMjQsMywwLDEzMSwxLDAsMSw4NywKKyAgICAxMTAsMTgsMCw0LDExNiwxMSwwLDEwNywxMCwwLDExNCwxNzksMCwxLDEsMSwKKyAgICA4OSwxMTAsMSwwLDg4LDEzMCwwLDAsODksMTEwLDEsMCw4OCwxMDAsNCwwLAorICAgIDgzLDQwLDUsMCwwLDAsMTE3LDE2MiwwLDAsMCw2NiwxMDEsMTE1LDExNiw0NSwKKyAgICAxMDEsMTAyLDEwMiwxMTEsMTE0LDExNiwzMiwxMDIsMTE3LDExMCw5OSwxMTYsMTA1LDExMSwxMTAsMzIsCisgICAgMTE2LDExMSwzMiwxMTksMTE0LDEwNSwxMTYsMTAxLDMyLDEwMCw5NywxMTYsOTcsMzIsMTE2LDExMSwKKyAgICAzMiw5NywzMiwxMTIsOTcsMTE2LDEwNCwzMiw5NywxMTYsMTExLDEwOSwxMDUsOTksOTcsMTA4LAorICAgIDEwOCwxMjEsNDYsMTAsMzIsMzIsMzIsMzIsNjYsMTAxLDMyLDExMiwxMTQsMTAxLDExMiw5NywKKyAgICAxMTQsMTAxLDEwMCwzMiwxMTYsMTExLDMyLDEwNCw5NywxMTAsMTAwLDEwOCwxMDEsMzIsOTcsMzIsCisgICAgNzAsMTA1LDEwOCwxMDEsNjksMTIwLDEwNSwxMTUsMTE2LDExNSw2OSwxMTQsMTE0LDExMSwxMTQsMzIsCisgICAgMTA1LDEwMiwzMiw5OSwxMTEsMTEwLDk5LDExNywxMTQsMTE0LDEwMSwxMTAsMTE2LDMyLDExOSwxMTQsCisgICAgMTA1LDExNiwxMDUsMTEwLDEwMywzMiwxMTEsMTAyLDMyLDExNiwxMDQsMTAxLDEwLDMyLDMyLDMyLAorICAgIDMyLDExNiwxMDEsMTA5LDExMiwxMTEsMTE0LDk3LDExNCwxMjEsMzIsMTAyLDEwNSwxMDgsMTAxLDMyLAorICAgIDEwNSwxMTUsMzIsOTcsMTE2LDExNiwxMDEsMTA5LDExMiwxMTYsMTAxLDEwMCw0NiwxMTcsNSwwLAorICAgIDAsMCwxMjMsMTI1LDQ2LDEyMywxMjUsMTA1LDE4MiwxLDAsMCwxMTYsMiwwLDAsCisgICAgMCwxMTksOTgsNzgsNDAsMTMsMCwwLDAsMjQ0LDYsMCwwLDAsMTAyLDExMSwKKyAgICAxMTQsMTA5LDk3LDExNiwyNDQsMiwwLDAsMCwxMDUsMTAwLDExNCwzLDAsMCwwLAorICAgIDExNiw0LDAsMCwwLDExMSwxMTIsMTAxLDExMCwxMTYsNiwwLDAsMCw3OSw5NSwKKyAgICA2OSw4OCw2Nyw3NiwxMTYsNywwLDAsMCw3OSw5NSw2Nyw4Miw2OSw2NSw4NCwKKyAgICAxMTYsOCwwLDAsMCw3OSw5NSw4Nyw4Miw3OSw3OCw3Niw4OSwyNDQsMywwLAorICAgIDAsMCw5NSwxMDUsMTExLDI0NCw2LDAsMCwwLDcwLDEwNSwxMDgsMTAxLDczLDc5LAorICAgIDI0NCw1LDAsMCwwLDExOSwxMTQsMTA1LDExNiwxMDEsMjQ0LDcsMCwwLDAsMTE0LAorICAgIDEwMSwxMTIsMTA4LDk3LDk5LDEwMSwxMTQsNDAsMCwwLDAsMTE2LDYsMCwwLDAsCisgICAgMTE3LDExMCwxMDgsMTA1LDExMCwxMDcsNDAsNiwwLDAsMCwxMTQsMzUsMCwwLDAsCisgICAgMjQ0LDQsMCwwLDAsMTAwLDk3LDExNiw5NywxMTQsNDIsMCwwLDAsMTE2LDgsCisgICAgMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTE2LDEwOSwxMTIsMTE2LDIsMCwwLDAsCisgICAgMTAyLDEwMCwyNDQsNCwwLDAsMCwxMDIsMTA1LDEwOCwxMDEsMTE0LDQsMCwwLDAsCisgICAgMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMjQ0LDEzLDAsMCwwLDk1LAorICAgIDExOSwxMTQsMTA1LDExNiwxMDEsOTUsOTcsMTE2LDExMSwxMDksMTA1LDk5LDkxLDAsMCwwLAorICAgIDExNSwyNiwwLDAsMCwwLDUsMjQsMSw5LDEsMzMsMSwzLDMsMjEsCisgICAgMSwxOSwxLDIwLDEsMTMsMSwzLDEsMTcsMSwxMywxLDUsMSwxMTQsCisgICAgNTQsMCwwLDAsOTksMiwwLDAsMCwwLDAsMCwwLDMsMCwwLAorICAgIDAsNywwLDAsMCw2NywwLDAsMCwxMTUsOTUsMCwwLDAsMTIwLDY5LAorICAgIDAsMTAwLDEsMCwxMDAsMiwwLDEwMCwzLDAsMTAwLDQsMCwxMDMsNCwwLAorICAgIDY4LDkzLDQ5LDAsMTI1LDIsMCwxMTYsMCwwLDEyNCwxLDAsMTI0LDIsMCwKKyAgICAxMzEsMiwwLDExNCwxOSwwLDExNiwxLDAsMTI0LDAsMCwxMjQsMiwwLDExNiwKKyAgICAyLDAsMTI0LDEsMCwxMjQsMiwwLDEzMSwyLDAsMTMxLDMsMCwxLDExMywKKyAgICAxOSwwLDExMywxOSwwLDg3LDEyNCwwLDAsMTA2LDMsMCwxMDYsNCwwLDEyNCwKKyAgICAxLDAsMTA2LDMsMCwxMzEsMSwwLDEsMTAwLDUsMCw4Myw0MCw2LDAsCisgICAgMCwwLDExNyw0NywwLDAsMCw4MywxMDUsMTA5LDExMiwxMDgsMTAxLDMyLDExNSwxMTcsCisgICAgOTgsMTE1LDExNiwxMDUsMTE2LDExNywxMTYsMTAxLDMyLDEwMiwxMTEsMTE0LDMyLDEwMiwxMTcsMTEwLAorICAgIDk5LDExNiwxMTEsMTExLDEwOCwxMTUsNDYsMTE3LDExMiwxMDAsOTcsMTE2LDEwMSw5NSwxMTksMTE0LAorICAgIDk3LDExMiwxMTIsMTAxLDExNCw0NiwyNDQsMTAsMCwwLDAsOTUsOTUsMTA5LDExMSwxMDAsCisgICAgMTE3LDEwOCwxMDEsOTUsOTUsMjQ0LDgsMCwwLDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsCisgICAgOTUsOTUsMjQ0LDEyLDAsMCwwLDk1LDk1LDExMywxMTcsOTcsMTA4LDExMCw5NywxMDksCisgICAgMTAxLDk1LDk1LDI0NCw3LDAsMCwwLDk1LDk1LDEwMCwxMTEsOTksOTUsOTUsNzgsCisgICAgNDAsNSwwLDAsMCwyNDQsNywwLDAsMCwxMDQsOTcsMTE1LDk3LDExNiwxMTYsCisgICAgMTE0LDI0NCw3LDAsMCwwLDExNSwxMDEsMTE2LDk3LDExNiwxMTYsMTE0LDI0NCw3LDAsCisgICAgMCwwLDEwMywxMDEsMTE2LDk3LDExNiwxMTYsMTE0LDI0NCw4LDAsMCwwLDk1LDk1LAorICAgIDEwMCwxMDUsOTksMTE2LDk1LDk1LDI0NCw2LDAsMCwwLDExNywxMTIsMTAwLDk3LDExNiwKKyAgICAxMDEsNDAsMywwLDAsMCwxMTYsMywwLDAsMCwxMTAsMTAxLDExOSwxMTYsMywKKyAgICAwLDAsMCwxMTEsMTA4LDEwMCwxMTQsNTEsMCwwLDAsMTE0LDQsMCwwLDAsCisgICAgMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMjQ0LDUsMCwwLDAsOTUsCisgICAgMTE5LDExNCw5NywxMTIsMTEzLDAsMCwwLDExNSw4LDAsMCwwLDAsMiwyNSwKKyAgICAxLDE1LDEsMzIsMSwxMTQsNjQsMCwwLDAsOTksMSwwLDAsMCwwLAogICAgIDAsMCwwLDEsMCwwLDAsMiwwLDAsMCw2NywwLDAsMCwxMTUsCiAgICAgMTYsMCwwLDAsMTE2LDAsMCwxMTYsMSwwLDEzMSwxLDAsMTI0LDAsMCwKICAgICAxMzEsMSwwLDgzLDQwLDEsMCwwLDAsMTE3LDc1LDAsMCwwLDY3LDExNCwKQEAgLTM2MCw1ODAgKzMxNyw0NjYgQEAKICAgICAxMDEsNDYsMTAsMTAsMzIsMzIsMzIsMzIsODQsMTA0LDEwMSwzMiwxMDksMTExLDEwMCwxMTcsCiAgICAgMTA4LDEwMSwzMiwxMDUsMTE1LDMyLDExMCwxMTEsMTE2LDMyLDEwMSwxMTAsMTE2LDEwMSwxMTQsMTAxLAogICAgIDEwMCwzMiwxMDUsMTEwLDExNiwxMTEsMzIsMTE1LDEyMSwxMTUsNDYsMTA5LDExMSwxMDAsMTE3LDEwOCwKLSAgICAxMDEsMTE1LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDQwLDIsMCwwLDAsMTE3LDQsCi0gICAgMCwwLDAsMTE2LDEyMSwxMTIsMTAxLDExNywzLDAsMCwwLDk1LDEwNSwxMTEsNDAsCi0gICAgMSwwLDAsMCwxMTcsNCwwLDAsMCwxMTAsOTcsMTA5LDEwMSw0MCwwLDAsCi0gICAgMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLAotICAgIDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsCi0gICAgMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMCwwLDAsMCwxMTAsMTAxLAotICAgIDExOSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxNTQsMCwwLDAsMTE1LDIsMCwwLAotICAgIDAsMCw2LDExNywxMCwwLDAsMCwxMTAsMTAxLDExOSw5NSwxMDksMTExLDEwMCwxMTcsCi0gICAgMTA4LDEwMSw5OSwxLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwxLAotICAgIDAsMCwwLDY2LDAsMCwwLDExNSwyMCwwLDAsMCwxMjQsMCwwLDY5LAotICAgIDEwMSwwLDAsOTAsMSwwLDEwMCwwLDAsOTAsMiwwLDEwMCwxLDAsODMsCi0gICAgNDAsMiwwLDAsMCwxMTcsMTQsMCwwLDAsOTUsNjgsMTAxLDk3LDEwMCwxMDgsCi0gICAgMTExLDk5LDEwNyw2OSwxMTQsMTE0LDExMSwxMTQsNzgsNDAsMywwLDAsMCwxMTcsOCwKLSAgICAwLDAsMCw5NSw5NSwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsMTAsMCwwLDAsCi0gICAgOTUsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsOTUsMTE3LDEyLDAsMCwwLDk1LAotICAgIDk1LDExMywxMTcsOTcsMTA4LDExMCw5NywxMDksMTAxLDk1LDk1LDQwLDEsMCwwLDAsCi0gICAgMTE3LDEwLDAsMCwwLDk1LDk1LDEwOCwxMTEsOTksOTcsMTA4LDExNSw5NSw5NSw0MCwKLSAgICAwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwKLSAgICAxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsCi0gICAgOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxNCwwLDAsMCwKLSAgICA5NSw2OCwxMDEsOTcsMTAwLDEwOCwxMTEsOTksMTA3LDY5LDExNCwxMTQsMTExLDExNCwxNzEsMCwKLSAgICAwLDAsMTE1LDIsMCwwLDAsMTYsMSwxMTcsMTQsMCwwLDAsOTUsNjgsCi0gICAgMTAxLDk3LDEwMCwxMDgsMTExLDk5LDEwNyw2OSwxMTQsMTE0LDExMSwxMTQsOTksMSwwLDAsCi0gICAgMCwwLDAsMCwwLDEsMCwwLDAsMiwwLDAsMCw2NiwwLDAsCi0gICAgMCwxMTUsODYsMCwwLDAsMTI0LDAsMCw2OSwxMDEsMCwwLDkwLDEsMCwKLSAgICAxMDAsMCwwLDkwLDIsMCwxMDAsMSwwLDkwLDMsMCwxMDAsMiwwLDEwMCwKLSAgICAzLDAsMTMyLDAsMCw5MCw0LDAsMTAwLDQsMCwxMDAsNSwwLDEzMiwwLAotICAgIDAsOTAsNSwwLDEwMCw2LDAsMTAwLDcsMCwxMzIsMCwwLDkwLDYsMCwKLSAgICAxMDAsOCwwLDEwMCw5LDAsMTMyLDAsMCw5MCw3LDAsMTAwLDEwLDAsMTAwLAotICAgIDExLDAsMTMyLDAsMCw5MCw4LDAsMTAwLDEyLDAsODMsNDAsMTMsMCwwLAotICAgIDAsMTE3LDExLDAsMCwwLDk1LDc3LDExMSwxMDAsMTE3LDEwOCwxMDEsNzYsMTExLDk5LAotICAgIDEwNywxMTcsMTY5LDAsMCwwLDY1LDMyLDExNCwxMDEsOTksMTE3LDExNCwxMTUsMTA1LDExOCwKLSAgICAxMDEsMzIsMTA4LDExMSw5OSwxMDcsMzIsMTA1LDEwOSwxMTIsMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsCi0gICAgOTcsMTE2LDEwNSwxMTEsMTEwLDMyLDExOSwxMDQsMTA1LDk5LDEwNCwzMiwxMDUsMTE1LDMyLDk3LAotICAgIDk4LDEwOCwxMDEsMzIsMTE2LDExMSwzMiwxMDAsMTAxLDExNiwxMDEsOTksMTE2LDMyLDEwMCwxMDEsCi0gICAgOTcsMTAwLDEwOCwxMTEsOTksMTA3LDExNSwxMCwzMiwzMiwzMiwzMiw0MCwxMDEsNDYsMTAzLAotICAgIDQ2LDMyLDExNiwxMDQsMTE0LDEwMSw5NywxMDAsMzIsNDksMzIsMTE2LDExNCwxMjEsMTA1LDExMCwKLSAgICAxMDMsMzIsMTE2LDExMSwzMiwxMTYsOTcsMTA3LDEwMSwzMiwxMDgsMTExLDk5LDEwNywxMTUsMzIsCi0gICAgNjUsMzIsMTE2LDEwNCwxMDEsMTEwLDMyLDY2LDQ0LDMyLDk3LDExMCwxMDAsMzIsMTE2LDEwNCwKLSAgICAxMTQsMTAxLDk3LDEwMCwzMiw1MCwzMiwxMTYsMTE0LDEyMSwxMDUsMTEwLDEwMywzMiwxMTYsMTExLAotICAgIDEwLDMyLDMyLDMyLDMyLDExNiw5NywxMDcsMTAxLDMyLDEwOCwxMTEsOTksMTA3LDExNSwzMiwKLSAgICA2NiwzMiwxMTYsMTA0LDEwMSwxMTAsMzIsNjUsNDEsNDYsMTAsMzIsMzIsMzIsMzIsOTksCi0gICAgMiwwLDAsMCwwLDAsMCwwLDIsMCwwLDAsMiwwLDAsMCwKLSAgICA2NywwLDAsMCwxMTUsNzAsMCwwLDAsMTE2LDAsMCwxMDYsMSwwLDEzMSwKLSAgICAwLDAsMTI0LDAsMCw5NSwyLDAsMTE2LDAsMCwxMDYsMSwwLDEzMSwwLAotICAgIDAsMTI0LDAsMCw5NSwzLDAsMTI0LDEsMCwxMjQsMCwwLDk1LDQsMCwKLSAgICAxMDAsMCwwLDEyNCwwLDAsOTUsNiwwLDEwMCwxLDAsMTI0LDAsMCw5NSwKLSAgICA3LDAsMTAwLDEsMCwxMjQsMCwwLDk1LDgsMCwxMDAsMCwwLDgzLDQwLAotICAgIDIsMCwwLDAsNzgsMTA1LDAsMCwwLDAsNDAsOSwwLDAsMCwxMTcsCi0gICAgNywwLDAsMCw5NSwxMTYsMTA0LDExNCwxMDEsOTcsMTAwLDExNywxMywwLDAsMCwKLSAgICA5NywxMDgsMTA4LDExMSw5OSw5NywxMTYsMTAxLDk1LDEwOCwxMTEsOTksMTA3LDExNyw0LDAsCi0gICAgMCwwLDEwOCwxMTEsOTksMTA3LDExNyw2LDAsMCwwLDExOSw5NywxMDcsMTAxLDExNywKLSAgICAxMTIsMTE3LDQsMCwwLDAsMTEwLDk3LDEwOSwxMDEsMTE3LDQsMCwwLDAsNzgsCi0gICAgMTExLDExMCwxMDEsMTE3LDUsMCwwLDAsMTExLDExOSwxMTAsMTAxLDExNCwxMTcsNSwwLAotICAgIDAsMCw5OSwxMTEsMTE3LDExMCwxMTYsMTE3LDcsMCwwLDAsMTE5LDk3LDEwNSwxMTYsCi0gICAgMTAxLDExNCwxMTUsNDAsMiwwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwKLSAgICAxMDIsMTE3LDQsMCwwLDAsMTEwLDk3LDEwOSwxMDEsNDAsMCwwLDAsMCw0MCwKLSAgICAwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwKLSAgICAzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LAotICAgIDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsOCwwLDAsMCw5NSw5NSwxMDUsMTEwLDEwNSwKLSAgICAxMTYsOTUsOTUsMTgxLDAsMCwwLDExNSwxMiwwLDAsMCwwLDEsMTUsMSwKLSAgICAxNSwxLDksMSw5LDEsOSwxLDExNywyMCwwLDAsMCw5NSw3NywxMTEsCi0gICAgMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwxMDcsNDYsOTUsOTUsMTA1LDExMCwxMDUsMTE2LDk1LAotICAgIDk1LDk5LDEsMCwwLDAsMCwwLDAsMCw0LDAsMCwwLDIsMCwKLSAgICAwLDAsNjcsMCwwLDAsMTE1LDg3LDAsMCwwLDExNiwwLDAsMTA2LDEsCi0gICAgMCwxMzEsMCwwLDEyNSwxLDAsMTI0LDAsMCwxMDYsMiwwLDEyNSwyLDAsCi0gICAgMTIwLDU5LDAsMTE2LDMsMCwxMDYsNCwwLDEyNCwyLDAsMTMxLDEsMCwxMjUsCi0gICAgMywwLDEyNCwzLDAsMTAwLDAsMCwxMDcsOCwwLDExNCw1NSwwLDEwMCwxLAotICAgIDAsODMsMTI0LDMsMCwxMDYsMiwwLDEyNSwyLDAsMTI0LDIsMCwxMjQsMSwKLSAgICAwLDEwNywyLDAsMTE0LDI0LDAsMTAwLDIsMCw4MywxMTMsMjQsMCwxMDAsMCwKLSAgICAwLDgzLDQwLDMsMCwwLDAsNzgsNzAsODQsNDAsOCwwLDAsMCwxMTcsCi0gICAgNywwLDAsMCw5NSwxMTYsMTA0LDExNCwxMDEsOTcsMTAwLDExNyw5LDAsMCwwLAotICAgIDEwMywxMDEsMTE2LDk1LDEwNSwxMDAsMTAxLDExMCwxMTYsMTE3LDUsMCwwLDAsMTExLDExOSwKLSAgICAxMTAsMTAxLDExNCwxMTcsMTIsMCwwLDAsOTUsOTgsMTA4LDExMSw5OSwxMDcsMTA1LDExMCwKLSAgICAxMDMsOTUsMTExLDExMCwxMTcsMywwLDAsMCwxMDMsMTAxLDExNiwxMTcsNCwwLDAsCi0gICAgMCw3OCwxMTEsMTEwLDEwMSwxMTcsNSwwLDAsMCw3MCw5NywxMDgsMTE1LDEwMSwxMTcsCi0gICAgNCwwLDAsMCw4NCwxMTQsMTE3LDEwMSw0MCw0LDAsMCwwLDExNyw0LDAsCi0gICAgMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsMiwwLDAsMCwxMDksMTAxLDExNywzLDAsCi0gICAgMCwwLDExNiwxMDUsMTAwLDExNyw0LDAsMCwwLDEwOCwxMTEsOTksMTA3LDQwLDAsCi0gICAgMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwKLSAgICAxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSwKLSAgICA5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEyLDAsMCwwLDEwNCwKLSAgICA5NywxMTUsOTUsMTAwLDEwMSw5NywxMDAsMTA4LDExMSw5OSwxMDcsMTg5LDAsMCwwLDExNSwKLSAgICAxOCwwLDAsMCwwLDIsMTIsMSw5LDEsMywxLDE1LDEsMTIsMSwKLSAgICA0LDEsOSwxLDEyLDEsMTE3LDI0LDAsMCwwLDk1LDc3LDExMSwxMDAsMTE3LAotICAgIDEwOCwxMDEsNzYsMTExLDk5LDEwNyw0NiwxMDQsOTcsMTE1LDk1LDEwMCwxMDEsOTcsMTAwLDEwOCwKLSAgICAxMTEsOTksMTA3LDk5LDEsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLAotICAgIDE3LDAsMCwwLDY3LDAsMCwwLDExNSwyMTQsMCwwLDAsMTE2LDAsMCwKLSAgICAxMDYsMSwwLDEzMSwwLDAsMTI1LDEsMCwxMjQsMCwwLDExNiwyLDAsMTI0LAotICAgIDEsMCw2MCwxMjIsMTc3LDAsMTIwLDE3MCwwLDEyNCwwLDAsMTA2LDMsMCwxNDMsCi0gICAgMTMwLDAsMSwxMjQsMCwwLDEwNiw0LDAsMTAwLDEsMCwxMDcsMiwwLDExNSwKLSAgICA2OCwwLDEyNCwwLDAsMTA2LDUsMCwxMjQsMSwwLDEwNywyLDAsMTE0LDk2LAotICAgIDAsMTI0LDEsMCwxMjQsMCwwLDk1LDUsMCwxMjQsMCwwLDQsMTA2LDQsCi0gICAgMCwxMDAsMiwwLDU1LDIsOTUsNCwwLDEwMCw1LDAsODMsMTI0LDAsMCwKLSAgICAxMDYsNywwLDEzMSwwLDAsMTE0LDEyNywwLDExNiw4LDAsMTAwLDMsMCwxMjQsCi0gICAgMCwwLDIyLDEzMSwxLDAsMTMwLDEsMCwxMTAsMCwwLDEyNCwwLDAsMTA2LAotICAgIDksMCwxMDYsMTAsMCwxMDAsNiwwLDEzMSwxLDAsMTE0LDE2MywwLDEyNCwwLAotICAgIDAsNCwxMDYsMTIsMCwxMDAsMiwwLDU1LDIsOTUsMTIsMCwxMTAsMCwwLAotICAgIDg3LDEwMCw0LDAsODEsODgsMTI0LDAsMCwxMDYsOSwwLDEwNiwxMCwwLDEzMSwKLSAgICAwLDAsMSwxMjQsMCwwLDEwNiw5LDAsMTA2LDEzLDAsMTMxLDAsMCwxLAotICAgIDExMywyOCwwLDg3LDEwMCw0LDAsMTE2LDIsMCwxMjQsMSwwLDYxLDg4LDEwMCwKLSAgICA0LDAsODMsNDAsNywwLDAsMCwxMTcsMTg1LDAsMCwwLDEwLDMyLDMyLAotICAgIDMyLDMyLDMyLDMyLDMyLDMyLDY1LDk5LDExMywxMTcsMTA1LDExNCwxMDEsMzIsMTE2LDEwNCwKLSAgICAxMDEsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTA4LDExMSw5OSwxMDcsNDYsMzIsMzIsCi0gICAgNzMsMTAyLDMyLDk3LDMyLDExMiwxMTEsMTE2LDEwMSwxMTAsMTE2LDEwNSw5NywxMDgsMzIsMTAwLAotICAgIDEwMSw5NywxMDAsMTA4LDExMSw5OSwxMDcsMzIsMTA1LDExNSwzMiwxMDAsMTAxLDExNiwxMDEsOTksCi0gICAgMTE2LDEwMSwxMDAsNDQsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsOTcsMzIsOTUsCi0gICAgNjgsMTAxLDk3LDEwMCwxMDgsMTExLDk5LDEwNyw2OSwxMTQsMTE0LDExMSwxMTQsMzIsMTA1LDExNSwKLSAgICAzMiwxMTQsOTcsMTA1LDExNSwxMDEsMTAwLDQ2LDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLAotICAgIDMyLDc5LDExNiwxMDQsMTAxLDExNCwxMTksMTA1LDExNSwxMDEsNDQsMzIsMTE2LDEwNCwxMDEsMzIsCi0gICAgMTA4LDExMSw5OSwxMDcsMzIsMTA1LDExNSwzMiw5NywxMDgsMTE5LDk3LDEyMSwxMTUsMzIsOTcsCi0gICAgOTksMTEzLDExNywxMDUsMTE0LDEwMSwxMDAsMzIsOTcsMTEwLDEwMCwzMiw4NCwxMTQsMTE3LDEwMSwKLSAgICAzMiwxMDUsMTE1LDMyLDExNCwxMDEsMTE2LDExNywxMTQsMTEwLDEwMSwxMDAsNDYsMTAsMzIsMzIsCi0gICAgMzIsMzIsMzIsMzIsMzIsMzIsMTA1LDAsMCwwLDAsMTA1LDEsMCwwLDAsCi0gICAgMTE3LDIzLDAsMCwwLDEwMCwxMDEsOTcsMTAwLDEwOCwxMTEsOTksMTA3LDMyLDEwMCwxMDEsCi0gICAgMTE2LDEwMSw5OSwxMTYsMTAxLDEwMCwzMiw5OCwxMjEsMzIsMzcsMTE0LDc4LDg0LDcwLDQwLAotICAgIDE0LDAsMCwwLDExNyw3LDAsMCwwLDk1LDExNiwxMDQsMTE0LDEwMSw5NywxMDAsCi0gICAgMTE3LDksMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTA1LDEwMCwxMDEsMTEwLDExNiwxMTcsMTIsCi0gICAgMCwwLDAsOTUsOTgsMTA4LDExMSw5OSwxMDcsMTA1LDExMCwxMDMsOTUsMTExLDExMCwxMTcsCi0gICAgNCwwLDAsMCwxMDgsMTExLDk5LDEwNywxMTcsNSwwLDAsMCw5OSwxMTEsMTE3LAotICAgIDExMCwxMTYsMTE3LDUsMCwwLDAsMTExLDExOSwxMTAsMTAxLDExNCwxMTcsNCwwLDAsCi0gICAgMCw4NCwxMTQsMTE3LDEwMSwxMTcsMTIsMCwwLDAsMTA0LDk3LDExNSw5NSwxMDAsMTAxLAotICAgIDk3LDEwMCwxMDgsMTExLDk5LDEwNywxMTcsMTQsMCwwLDAsOTUsNjgsMTAxLDk3LDEwMCwKLSAgICAxMDgsMTExLDk5LDEwNyw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDYsMCwwLDAsMTE5LDk3LAotICAgIDEwNywxMDEsMTE3LDExMiwxMTcsNywwLDAsMCw5Nyw5OSwxMTMsMTE3LDEwNSwxMTQsMTAxLAotICAgIDExNyw1LDAsMCwwLDcwLDk3LDEwOCwxMTUsMTAxLDExNyw3LDAsMCwwLDExOSwKLSAgICA5NywxMDUsMTE2LDEwMSwxMTQsMTE1LDExNyw3LDAsMCwwLDExNCwxMDEsMTA4LDEwMSw5NywKLSAgICAxMTUsMTAxLDQwLDIsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLAotICAgIDExNywzLDAsMCwwLDExNiwxMDUsMTAwLDQwLDAsMCwwLDAsNDAsMCwwLAotICAgIDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LAotICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LAotICAgIDExNCw5NywxMTIsNjIsMTE3LDcsMCwwLDAsOTcsOTksMTEzLDExNywxMDUsMTE0LDEwMSwKLSAgICAyMDEsMCwwLDAsMTE1LDMyLDAsMCwwLDAsNiwxMiwxLDEwLDEsMywKLSAgICAxLDMsMSwxMCwxLDMwLDEsOSwxLDE1LDEsNCwxLDEyLDEsMTksCi0gICAgMSwxOCwxLDI0LDIsMTMsMSwyMCwyLDExNywxOSwwLDAsMCw5NSw3NywKLSAgICAxMTEsMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwxMDcsNDYsOTcsOTksMTEzLDExNywxMDUsMTE0LAotICAgIDEwMSw5OSwxLDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwxMCwwLAotICAgIDAsMCw2NywwLDAsMCwxMTUsMTY1LDAsMCwwLDExNiwwLDAsMTA2LDEsCi0gICAgMCwxMzEsMCwwLDEyNSwxLDAsMTI0LDAsMCwxMDYsMiwwLDE0MywxMzgsMCwKLSAgICAxLDEyNCwwLDAsMTA2LDMsMCwxMjQsMSwwLDEwNywzLDAsMTE0LDUyLDAsCi0gICAgMTE2LDQsMCwxMDAsMSwwLDEzMSwxLDAsMTMwLDEsMCwxMTAsMCwwLDEyNCwKLSAgICAwLDAsMTA2LDUsMCwxMDAsMiwwLDEwNyw0LDAsMTE1LDczLDAsMTE2LDYsCi0gICAgMCwxMzAsMSwwLDEyNCwwLDAsNCwxMDYsNSwwLDEwMCwzLDAsNTYsMiwKLSAgICA5NSw1LDAsMTI0LDAsMCwxMDYsNSwwLDEwMCwyLDAsMTA3LDIsMCwxMTQsCi0gICAgMTU1LDAsMTAwLDAsMCwxMjQsMCwwLDk1LDMsMCwxMjQsMCwwLDEwNiw4LAotICAgIDAsMTE0LDE1NSwwLDEyNCwwLDAsNCwxMDYsOCwwLDEwMCwzLDAsNTYsMiwKLSAgICA5NSw4LDAsMTI0LDAsMCwxMDYsOSwwLDEwNiwxMCwwLDEzMSwwLDAsMSwKLSAgICAxMTMsMTU1LDAsMTEwLDAsMCw4NywxMDAsMCwwLDgxLDg4LDEwMCwwLDAsODMsCi0gICAgNDAsNCwwLDAsMCw3OCwxMTcsMzEsMCwwLDAsOTksOTcsMTEwLDExMCwxMTEsCi0gICAgMTE2LDMyLDExNCwxMDEsMTA4LDEwMSw5NywxMTUsMTAxLDMyLDExNywxMTAsNDUsOTcsOTksMTEzLAotICAgIDExNywxMDUsMTE0LDEwMSwxMDAsMzIsMTA4LDExMSw5OSwxMDcsMTA1LDAsMCwwLDAsMTA1LAotICAgIDEsMCwwLDAsNDAsMTEsMCwwLDAsMTE3LDcsMCwwLDAsOTUsMTE2LAotICAgIDEwNCwxMTQsMTAxLDk3LDEwMCwxMTcsOSwwLDAsMCwxMDMsMTAxLDExNiw5NSwxMDUsMTAwLAotICAgIDEwMSwxMTAsMTE2LDExNyw0LDAsMCwwLDEwOCwxMTEsOTksMTA3LDExNyw1LDAsMCwKLSAgICAwLDExMSwxMTksMTEwLDEwMSwxMTQsMTE3LDEyLDAsMCwwLDgyLDExNywxMTAsMTE2LDEwNSwKLSAgICAxMDksMTAxLDY5LDExNCwxMTQsMTExLDExNCwxMTcsNSwwLDAsMCw5OSwxMTEsMTE3LDExMCwKLSAgICAxMTYsMTE3LDE0LDAsMCwwLDY1LDExNSwxMTUsMTAxLDExNCwxMTYsMTA1LDExMSwxMTAsNjksCi0gICAgMTE0LDExNCwxMTEsMTE0LDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNyw3LDAsCi0gICAgMCwwLDExOSw5NywxMDUsMTE2LDEwMSwxMTQsMTE1LDExNyw2LDAsMCwwLDExOSw5NywKLSAgICAxMDcsMTAxLDExNywxMTIsMTE3LDcsMCwwLDAsMTE0LDEwMSwxMDgsMTAxLDk3LDExNSwxMDEsCi0gICAgNDAsMiwwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDMsCi0gICAgMCwwLDAsMTE2LDEwNSwxMDAsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLAotICAgIDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwKLSAgICAxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LAotICAgIDExMiw2MiwxMTcsNywwLDAsMCwxMTQsMTAxLDEwOCwxMDEsOTcsMTE1LDEwMSwyMjYsMCwKLSAgICAwLDAsMTE1LDIyLDAsMCwwLDAsMSwxMiwxLDEwLDEsMTUsMSwxNSwKLSAgICAxLDIxLDEsMTUsMSwxNSwxLDksMSw5LDEsMTUsMSwxMTcsMTksMCwKLSAgICAwLDAsOTUsNzcsMTExLDEwMCwxMTcsMTA4LDEwMSw3NiwxMTEsOTksMTA3LDQ2LDExNCwxMDEsCi0gICAgMTA4LDEwMSw5NywxMTUsMTAxLDk5LDEsMCwwLDAsMCwwLDAsMCwxLDAsCi0gICAgMCwwLDQsMCwwLDAsNjcsMCwwLDAsMTE1LDIzLDAsMCwwLDEwMCwKLSAgICAxLDAsMTI0LDAsMCwxMDYsMCwwLDExNiwxLDAsMTI0LDAsMCwxMzEsMSwKLSAgICAwLDEwMiwyLDAsMjIsODMsNDAsMiwwLDAsMCw3OCwxMTcsMjEsMCwwLAotICAgIDAsOTUsNzcsMTExLDEwMCwxMTcsMTA4LDEwMSw3NiwxMTEsOTksMTA3LDQwLDM3LDExNCw0MSwKLSAgICAzMiw5NywxMTYsMzIsMzcsMTAwLDQwLDIsMCwwLDAsMTE3LDQsMCwwLDAsCi0gICAgMTEwLDk3LDEwOSwxMDEsMTE3LDIsMCwwLDAsMTA1LDEwMCw0MCwxLDAsMCwwLAotICAgIDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiw0MCwwLDAsMCwwLDQwLDAsCi0gICAgMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLAotICAgIDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LAotICAgIDExNiwxMTQsOTcsMTEyLDYyLDExNyw4LDAsMCwwLDk1LDk1LDExNCwxMDEsMTEyLDExNCwKLSAgICA5NSw5NSwyMzksMCwwLDAsMTE1LDIsMCwwLDAsMCwxLDExNywyMCwwLAotICAgIDAsMCw5NSw3NywxMTEsMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwxMDcsNDYsOTUsOTUsCi0gICAgMTE0LDEwMSwxMTIsMTE0LDk1LDk1LDc4LDQwLDksMCwwLDAsMTE3LDgsMCwwLAotICAgIDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLDk1LDk1LAotICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDk1LDExNywxMiwwLDAsMCw5NSw5NSwxMTMsCi0gICAgMTE3LDk3LDEwOCwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsNywwLDAsMCw5NSw5NSwKLSAgICAxMDAsMTExLDk5LDk1LDk1LDExNyw4LDAsMCwwLDk1LDk1LDEwNSwxMTAsMTA1LDExNiwKLSAgICA5NSw5NSwxMTcsMTIsMCwwLDAsMTA0LDk3LDExNSw5NSwxMDAsMTAxLDk3LDEwMCwxMDgsCi0gICAgMTExLDk5LDEwNywxMTcsNywwLDAsMCw5Nyw5OSwxMTMsMTE3LDEwNSwxMTQsMTAxLDExNywKLSAgICA3LDAsMCwwLDExNCwxMDEsMTA4LDEwMSw5NywxMTUsMTAxLDExNyw4LDAsMCwwLAotICAgIDk1LDk1LDExNCwxMDEsMTEyLDExNCw5NSw5NSw0MCwxLDAsMCwwLDExNywxMCwwLAotICAgIDAsMCw5NSw5NSwxMDgsMTExLDk5LDk3LDEwOCwxMTUsOTUsOTUsNDAsMCwwLDAsCi0gICAgMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsCi0gICAgMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwKLSAgICAxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTEsMCwwLDAsOTUsNzcsMTExLAotICAgIDEwMCwxMTcsMTA4LDEwMSw3NiwxMTEsOTksMTA3LDE3NSwwLDAsMCwxMTUsMTIsMCwwLAotICAgIDAsMTYsNCw2LDIsMTIsOCwxMiwxMiwxMiwyNSwxMiwxMywxMTcsMTEsMCwKLSAgICAwLDAsOTUsNzcsMTExLDEwMCwxMTcsMTA4LDEwMSw3NiwxMTEsOTksMTA3LDk5LDEsMCwKLSAgICAwLDAsMCwwLDAsMCwxLDAsMCwwLDIsMCwwLDAsNjYsMCwKLSAgICAwLDAsMTE1LDc0LDAsMCwwLDEyNCwwLDAsNjksMTAxLDAsMCw5MCwxLAotICAgIDAsMTAwLDAsMCw5MCwyLDAsMTAwLDEsMCw5MCwzLDAsMTAwLDIsMCwKLSAgICAxMDAsMywwLDEzMiwwLDAsOTAsNCwwLDEwMCw0LDAsMTAwLDUsMCwxMzIsCi0gICAgMCwwLDkwLDUsMCwxMDAsNiwwLDEwMCw3LDAsMTMyLDAsMCw5MCw2LAotICAgIDAsMTAwLDgsMCwxMDAsOSwwLDEzMiwwLDAsOTAsNywwLDEwMCwxMCwwLAotICAgIDgzLDQwLDExLDAsMCwwLDExNywxNiwwLDAsMCw5NSw2OCwxMTcsMTA5LDEwOSwKLSAgICAxMjEsNzcsMTExLDEwMCwxMTcsMTA4LDEwMSw3NiwxMTEsOTksMTA3LDExNyw4NiwwLDAsMCwKLSAgICA2NSwzMiwxMTUsMTA1LDEwOSwxMTIsMTA4LDEwMSwzMiw5NSw3NywxMTEsMTAwLDExNywxMDgsMTAxLAotICAgIDc2LDExMSw5OSwxMDcsMzIsMTAxLDExMywxMTcsMTA1LDExOCw5NywxMDgsMTAxLDExMCwxMTYsMzIsCi0gICAgMTAyLDExMSwxMTQsMzIsODAsMTIxLDExNiwxMDQsMTExLDExMCwzMiw5OCwxMTcsMTA1LDEwOCwxMDAsCi0gICAgMTE1LDMyLDExOSwxMDUsMTE2LDEwNCwxMTEsMTE3LDExNiwxMCwzMiwzMiwzMiwzMiwxMDksMTE3LAotICAgIDEwOCwxMTYsMTA1LDQ1LDExNiwxMDQsMTE0LDEwMSw5NywxMDAsMTA1LDExMCwxMDMsMzIsMTE1LDExNywKLSAgICAxMTIsMTEyLDExMSwxMTQsMTE2LDQ2LDk5LDIsMCwwLDAsMCwwLDAsMCwyLAotICAgIDAsMCwwLDIsMCwwLDAsNjcsMCwwLDAsMTE1LDIyLDAsMCwwLAotICAgIDEyNCwxLDAsMTI0LDAsMCw5NSwwLDAsMTAwLDEsMCwxMjQsMCwwLDk1LAotICAgIDEsMCwxMDAsMCwwLDgzLDQwLDIsMCwwLDAsNzgsMTA1LDAsMCwwLAotICAgIDAsNDAsMiwwLDAsMCwxMTcsNCwwLDAsMCwxMTAsOTcsMTA5LDEwMSwxMTcsCi0gICAgNSwwLDAsMCw5OSwxMTEsMTE3LDExMCwxMTYsNDAsMiwwLDAsMCwxMTcsNCwKLSAgICAwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDQsMCwwLDAsMTEwLDk3LDEwOSwxMDEsCi0gICAgNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwKLSAgICAxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LAotICAgIDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsOCwwLDAsCi0gICAgMCw5NSw5NSwxMDUsMTEwLDEwNSwxMTYsOTUsOTUsMjQ3LDAsMCwwLDExNSw0LDAsCi0gICAgMCwwLDAsMSw5LDEsMTE3LDI1LDAsMCwwLDk1LDY4LDExNywxMDksMTA5LAotICAgIDEyMSw3NywxMTEsMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwxMDcsNDYsOTUsOTUsMTA1LDExMCwKLSAgICAxMDUsMTE2LDk1LDk1LDk5LDEsMCwwLDAsMCwwLDAsMCwxLDAsMCwKLSAgICAwLDMsMCwwLDAsNjcsMCwwLDAsMTE1LDE5LDAsMCwwLDEyNCwwLAotICAgIDAsNCwxMDYsMCwwLDEwMCwxLDAsNTUsMiw5NSwwLDAsMTAwLDIsMCwKLSAgICA4Myw0MCwzLDAsMCwwLDc4LDEwNSwxLDAsMCwwLDg0LDQwLDIsMCwKLSAgICAwLDAsMTE3LDUsMCwwLDAsOTksMTExLDExNywxMTAsMTE2LDExNyw0LDAsMCwKLSAgICAwLDg0LDExNCwxMTcsMTAxLDQwLDEsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LAotICAgIDEwMSwxMDgsMTAyLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwKLSAgICAwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsCi0gICAgMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LAotICAgIDcsMCwwLDAsOTcsOTksMTEzLDExNywxMDUsMTE0LDEwMSwyNTEsMCwwLDAsMTE1LAotICAgIDQsMCwwLDAsMCwxLDE1LDEsMTE3LDI0LDAsMCwwLDk1LDY4LDExNywKLSAgICAxMDksMTA5LDEyMSw3NywxMTEsMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwxMDcsNDYsOTcsOTksCi0gICAgMTEzLDExNywxMDUsMTE0LDEwMSw5OSwxLDAsMCwwLDAsMCwwLDAsMSwwLAotICAgIDAsMCwzLDAsMCwwLDY3LDAsMCwwLDExNSw0OSwwLDAsMCwxMjQsCi0gICAgMCwwLDEwNiwwLDAsMTAwLDEsMCwxMDcsMiwwLDExNCwzMCwwLDExNiwxLAotICAgIDAsMTAwLDIsMCwxMzEsMSwwLDEzMCwxLDAsMTEwLDAsMCwxMjQsMCwwLAotICAgIDQsMTA2LDAsMCwxMDAsMywwLDU2LDIsOTUsMCwwLDEwMCwwLDAsODMsCi0gICAgNDAsNCwwLDAsMCw3OCwxMDUsMCwwLDAsMCwxMTcsMzEsMCwwLDAsCi0gICAgOTksOTcsMTEwLDExMCwxMTEsMTE2LDMyLDExNCwxMDEsMTA4LDEwMSw5NywxMTUsMTAxLDMyLDExNywKLSAgICAxMTAsNDUsOTcsOTksMTEzLDExNywxMDUsMTE0LDEwMSwxMDAsMzIsMTA4LDExMSw5OSwxMDcsMTA1LAotICAgIDEsMCwwLDAsNDAsMiwwLDAsMCwxMTcsNSwwLDAsMCw5OSwxMTEsCi0gICAgMTE3LDExMCwxMTYsMTE3LDEyLDAsMCwwLDgyLDExNywxMTAsMTE2LDEwNSwxMDksMTAxLDY5LAotICAgIDExNCwxMTQsMTExLDExNCw0MCwxLDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsCi0gICAgMTA4LDEwMiw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwKLSAgICAwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwKLSAgICAxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw3LAotICAgIDAsMCwwLDExNCwxMDEsMTA4LDEwMSw5NywxMTUsMTAxLDI1NSwwLDAsMCwxMTUsNiwKKyAgICAxMDEsMTE1LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDQwLDIsMCwwLDAsMjQ0LDQsCisgICAgMCwwLDAsMTE2LDEyMSwxMTIsMTAxLDExNCw0OCwwLDAsMCw0MCwxLDAsMCwKKyAgICAwLDI0NCw0LDAsMCwwLDExMCw5NywxMDksMTAxLDExNCw0LDAsMCwwLDExNCwKKyAgICA0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwxMCwwLDAsMCwxMTAsMTAxLAorICAgIDExOSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMjQsMCwwLDAsMTE1LDIsMCwwLAorICAgIDAsMCw2LDExNCw2NywwLDAsMCw5OSwwLDAsMCwwLDAsMCwwLAorICAgIDAsMCwwLDAsMCwxLDAsMCwwLDY0LDAsMCwwLDExNSwxNiwwLAorICAgIDAsMCwxMDEsMCwwLDkwLDEsMCwxMDAsMCwwLDkwLDIsMCwxMDAsMSwKKyAgICAwLDgzLDQwLDIsMCwwLDAsMjQ0LDE0LDAsMCwwLDk1LDY4LDEwMSw5NywKKyAgICAxMDAsMTA4LDExMSw5OSwxMDcsNjksMTE0LDExNCwxMTEsMTE0LDc4LDQwLDMsMCwwLDAsCisgICAgMTE0LDU2LDAsMCwwLDExNCw1NSwwLDAsMCwxMTQsNTcsMCwwLDAsMTE0LAorICAgIDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsCisgICAgMCwwLDAsMTE0LDY4LDAsMCwwLDE0MSwwLDAsMCwxMTUsMiwwLDAsCisgICAgMCwxMiwxLDExNCw2OCwwLDAsMCw5OSwwLDAsMCwwLDAsMCwwLAorICAgIDAsMCwwLDAsMCwyLDAsMCwwLDY0LDAsMCwwLDExNSw4MiwwLAorICAgIDAsMCwxMDEsMCwwLDkwLDEsMCwxMDAsMCwwLDkwLDIsMCwxMDAsMSwKKyAgICAwLDkwLDMsMCwxMDAsMiwwLDEwMCwzLDAsMTMyLDAsMCw5MCw0LDAsCisgICAgMTAwLDQsMCwxMDAsNSwwLDEzMiwwLDAsOTAsNSwwLDEwMCw2LDAsMTAwLAorICAgIDcsMCwxMzIsMCwwLDkwLDYsMCwxMDAsOCwwLDEwMCw5LDAsMTMyLDAsCisgICAgMCw5MCw3LDAsMTAwLDEwLDAsMTAwLDExLDAsMTMyLDAsMCw5MCw4LDAsCisgICAgMTAwLDEyLDAsODMsNDAsMTMsMCwwLDAsMjQ0LDExLDAsMCwwLDk1LDc3LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsNzYsMTExLDk5LDEwNywxMTcsMTY5LDAsMCwwLDY1LDMyLAorICAgIDExNCwxMDEsOTksMTE3LDExNCwxMTUsMTA1LDExOCwxMDEsMzIsMTA4LDExMSw5OSwxMDcsMzIsMTA1LAorICAgIDEwOSwxMTIsMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsOTcsMTE2LDEwNSwxMTEsMTEwLDMyLDExOSwxMDQsCisgICAgMTA1LDk5LDEwNCwzMiwxMDUsMTE1LDMyLDk3LDk4LDEwOCwxMDEsMzIsMTE2LDExMSwzMiwxMDAsCisgICAgMTAxLDExNiwxMDEsOTksMTE2LDMyLDEwMCwxMDEsOTcsMTAwLDEwOCwxMTEsOTksMTA3LDExNSwxMCwKKyAgICAzMiwzMiwzMiwzMiw0MCwxMDEsNDYsMTAzLDQ2LDMyLDExNiwxMDQsMTE0LDEwMSw5NywxMDAsCisgICAgMzIsNDksMzIsMTE2LDExNCwxMjEsMTA1LDExMCwxMDMsMzIsMTE2LDExMSwzMiwxMTYsOTcsMTA3LAorICAgIDEwMSwzMiwxMDgsMTExLDk5LDEwNywxMTUsMzIsNjUsMzIsMTE2LDEwNCwxMDEsMTEwLDMyLDY2LAorICAgIDQ0LDMyLDk3LDExMCwxMDAsMzIsMTE2LDEwNCwxMTQsMTAxLDk3LDEwMCwzMiw1MCwzMiwxMTYsCisgICAgMTE0LDEyMSwxMDUsMTEwLDEwMywzMiwxMTYsMTExLDEwLDMyLDMyLDMyLDMyLDExNiw5NywxMDcsCisgICAgMTAxLDMyLDEwOCwxMTEsOTksMTA3LDExNSwzMiw2NiwzMiwxMTYsMTA0LDEwMSwxMTAsMzIsNjUsCisgICAgNDEsNDYsMTAsMzIsMzIsMzIsMzIsOTksMiwwLDAsMCwwLDAsMCwwLAorICAgIDIsMCwwLDAsMiwwLDAsMCw2NywwLDAsMCwxMTUsNzAsMCwwLAorICAgIDAsMTE2LDAsMCwxMDYsMSwwLDEzMSwwLDAsMTI0LDAsMCw5NSwyLDAsCisgICAgMTE2LDAsMCwxMDYsMSwwLDEzMSwwLDAsMTI0LDAsMCw5NSwzLDAsMTI0LAorICAgIDEsMCwxMjQsMCwwLDk1LDQsMCwxMDAsMCwwLDEyNCwwLDAsOTUsNSwKKyAgICAwLDEwMCwxLDAsMTI0LDAsMCw5NSw2LDAsMTAwLDEsMCwxMjQsMCwwLAorICAgIDk1LDcsMCwxMDAsMCwwLDgzLDQwLDIsMCwwLDAsNzgsMjMzLDAsMCwKKyAgICAwLDAsNDAsOCwwLDAsMCwyNDQsNywwLDAsMCw5NSwxMTYsMTA0LDExNCwKKyAgICAxMDEsOTcsMTAwLDExNiwxMywwLDAsMCw5NywxMDgsMTA4LDExMSw5OSw5NywxMTYsMTAxLAorICAgIDk1LDEwOCwxMTEsOTksMTA3LDI0NCw0LDAsMCwwLDEwOCwxMTEsOTksMTA3LDI0NCw2LAorICAgIDAsMCwwLDExOSw5NywxMDcsMTAxLDExNywxMTIsMTE0LDY2LDAsMCwwLDI0NCw1LAorICAgIDAsMCwwLDExMSwxMTksMTEwLDEwMSwxMTQsMjQ0LDUsMCwwLDAsOTksMTExLDExNywKKyAgICAxMTAsMTE2LDI0NCw3LDAsMCwwLDExOSw5NywxMDUsMTE2LDEwMSwxMTQsMTE1LDQwLDIsCisgICAgMCwwLDAsMjQ0LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNCw2NiwwLDAsCisgICAgMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwKKyAgICAyNDQsOCwwLDAsMCw5NSw5NSwxMDUsMTEwLDEwNSwxMTYsOTUsOTUsMTUxLDAsMCwKKyAgICAwLDExNSwxMiwwLDAsMCwwLDEsMTUsMSwxNSwxLDksMSw5LDEsCisgICAgOSwxLDExNywyMCwwLDAsMCw5NSw3NywxMTEsMTAwLDExNywxMDgsMTAxLDc2LDExMSwKKyAgICA5OSwxMDcsNDYsOTUsOTUsMTA1LDExMCwxMDUsMTE2LDk1LDk1LDk5LDEsMCwwLDAsCisgICAgMCwwLDAsMCw0LDAsMCwwLDIsMCwwLDAsNjcsMCwwLDAsCisgICAgMTE1LDg3LDAsMCwwLDExNiwwLDAsMTA2LDEsMCwxMzEsMCwwLDEyNSwxLAorICAgIDAsMTI0LDAsMCwxMDYsMiwwLDEyNSwyLDAsMTIwLDU5LDAsMTE2LDMsMCwKKyAgICAxMDYsNCwwLDEyNCwyLDAsMTMxLDEsMCwxMjUsMywwLDEyNCwzLDAsMTAwLAorICAgIDAsMCwxMDcsOCwwLDExNCw1NSwwLDEwMCwxLDAsODMsMTI0LDMsMCwxMDYsCisgICAgMiwwLDEyNSwyLDAsMTI0LDIsMCwxMjQsMSwwLDEwNywyLDAsMTE0LDI0LAorICAgIDAsMTAwLDIsMCw4MywxMTMsMjQsMCwxMDAsMCwwLDgzLDQwLDMsMCwwLAorICAgIDAsNzgsNzAsODQsNDAsNSwwLDAsMCwxMTQsNzEsMCwwLDAsMjQ0LDksCisgICAgMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTA1LDEwMCwxMDEsMTEwLDExNiwxMTQsNzQsMCwwLAorICAgIDAsMjQ0LDEyLDAsMCwwLDk1LDk4LDEwOCwxMTEsOTksMTA3LDEwNSwxMTAsMTAzLDk1LAorICAgIDExMSwxMTAsMjQ0LDMsMCwwLDAsMTAzLDEwMSwxMTYsNDAsNCwwLDAsMCwxMTQsCisgICAgNzcsMCwwLDAsMjQ0LDIsMCwwLDAsMTA5LDEwMSwyNDQsMywwLDAsMCwKKyAgICAxMTYsMTA1LDEwMCwxMTQsNzIsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwKKyAgICAwLDAsMTE0LDUsMCwwLDAsMjQ0LDEyLDAsMCwwLDEwNCw5NywxMTUsOTUsCisgICAgMTAwLDEwMSw5NywxMDAsMTA4LDExMSw5OSwxMDcsMTU5LDAsMCwwLDExNSwxOCwwLDAsCisgICAgMCwwLDIsMTIsMSw5LDEsMywxLDE1LDEsMTIsMSw0LDEsOSwKKyAgICAxLDEyLDEsMTE3LDI0LDAsMCwwLDk1LDc3LDExMSwxMDAsMTE3LDEwOCwxMDEsNzYsCisgICAgMTExLDk5LDEwNyw0NiwxMDQsOTcsMTE1LDk1LDEwMCwxMDEsOTcsMTAwLDEwOCwxMTEsOTksMTA3LAorICAgIDk5LDEsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDE3LDAsMCwKKyAgICAwLDY3LDAsMCwwLDExNSwyMTQsMCwwLDAsMTE2LDAsMCwxMDYsMSwwLAorICAgIDEzMSwwLDAsMTI1LDEsMCwxMjQsMCwwLDExNiwyLDAsMTI0LDEsMCw2MCwKKyAgICAxMjIsMTc3LDAsMTIwLDE3MCwwLDEyNCwwLDAsMTA2LDMsMCwxNDMsMTMwLDAsMSwKKyAgICAxMjQsMCwwLDEwNiw0LDAsMTAwLDEsMCwxMDcsMiwwLDExNSw2OCwwLDEyNCwKKyAgICAwLDAsMTA2LDUsMCwxMjQsMSwwLDEwNywyLDAsMTE0LDk2LDAsMTI0LDEsCisgICAgMCwxMjQsMCwwLDk1LDUsMCwxMjQsMCwwLDQsMTA2LDQsMCwxMDAsMiwKKyAgICAwLDU1LDIsOTUsNCwwLDEwMCwzLDAsODMsMTI0LDAsMCwxMDYsNiwwLAorICAgIDEzMSwwLDAsMTE0LDEyNywwLDExNiw3LDAsMTAwLDQsMCwxMjQsMCwwLDIyLAorICAgIDEzMSwxLDAsMTMwLDEsMCwxMTAsMCwwLDEyNCwwLDAsMTA2LDgsMCwxMDYsCisgICAgOSwwLDEwMCw1LDAsMTMxLDEsMCwxMTQsMTYzLDAsMTI0LDAsMCw0LDEwNiwKKyAgICAxMCwwLDEwMCwyLDAsNTUsMiw5NSwxMCwwLDExMCwwLDAsODcsMTAwLDYsCisgICAgMCw4MSw4OCwxMjQsMCwwLDEwNiw4LDAsMTA2LDksMCwxMzEsMCwwLDEsCisgICAgMTI0LDAsMCwxMDYsOCwwLDEwNiwxMSwwLDEzMSwwLDAsMSwxMTMsMjgsMCwKKyAgICA4NywxMDAsNiwwLDExNiwyLDAsMTI0LDEsMCw2MSw4OCwxMDAsNiwwLDgzLAorICAgIDQwLDcsMCwwLDAsMTE3LDE4NSwwLDAsMCwxMCwzMiwzMiwzMiwzMiwzMiwKKyAgICAzMiwzMiwzMiw2NSw5OSwxMTMsMTE3LDEwNSwxMTQsMTAxLDMyLDExNiwxMDQsMTAxLDMyLDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwOCwxMTEsOTksMTA3LDQ2LDMyLDMyLDczLDEwMiwzMiwKKyAgICA5NywzMiwxMTIsMTExLDExNiwxMDEsMTEwLDExNiwxMDUsOTcsMTA4LDMyLDEwMCwxMDEsOTcsMTAwLAorICAgIDEwOCwxMTEsOTksMTA3LDMyLDEwNSwxMTUsMzIsMTAwLDEwMSwxMTYsMTAxLDk5LDExNiwxMDEsMTAwLAorICAgIDQ0LDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDk3LDMyLDk1LDY4LDEwMSw5NywKKyAgICAxMDAsMTA4LDExMSw5OSwxMDcsNjksMTE0LDExNCwxMTEsMTE0LDMyLDEwNSwxMTUsMzIsMTE0LDk3LAorICAgIDEwNSwxMTUsMTAxLDEwMCw0NiwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw3OSwxMTYsCisgICAgMTA0LDEwMSwxMTQsMTE5LDEwNSwxMTUsMTAxLDQ0LDMyLDExNiwxMDQsMTAxLDMyLDEwOCwxMTEsOTksCisgICAgMTA3LDMyLDEwNSwxMTUsMzIsOTcsMTA4LDExOSw5NywxMjEsMTE1LDMyLDk3LDk5LDExMywxMTcsCisgICAgMTA1LDExNCwxMDEsMTAwLDMyLDk3LDExMCwxMDAsMzIsODQsMTE0LDExNywxMDEsMzIsMTA1LDExNSwKKyAgICAzMiwxMTQsMTAxLDExNiwxMTcsMTE0LDExMCwxMDEsMTAwLDQ2LDEwLDMyLDMyLDMyLDMyLDMyLAorICAgIDMyLDMyLDMyLDExNCw3MCwwLDAsMCwxMTQsMjksMCwwLDAsODQsMTE3LDIzLAorICAgIDAsMCwwLDEwMCwxMDEsOTcsMTAwLDEwOCwxMTEsOTksMTA3LDMyLDEwMCwxMDEsMTE2LDEwMSwKKyAgICA5OSwxMTYsMTAxLDEwMCwzMiw5OCwxMjEsMzIsMzcsMTE0LDcwLDc4LDQwLDEyLDAsMCwKKyAgICAwLDExNCw3MSwwLDAsMCwxMTQsNzksMCwwLDAsMTE0LDgwLDAsMCwwLAorICAgIDExNCw3MiwwLDAsMCwxMTQsNzUsMCwwLDAsMTE0LDc0LDAsMCwwLDExNCwKKyAgICA4NCwwLDAsMCwxMTQsNjgsMCwwLDAsMTE0LDczLDAsMCwwLDI0NCw3LAorICAgIDAsMCwwLDk3LDk5LDExMywxMTcsMTA1LDExNCwxMDEsMTE0LDc2LDAsMCwwLDI0NCwKKyAgICA3LDAsMCwwLDExNCwxMDEsMTA4LDEwMSw5NywxMTUsMTAxLDQwLDIsMCwwLDAsCisgICAgMTE0LDc3LDAsMCwwLDExNCw4MywwLDAsMCwxMTQsNCwwLDAsMCwxMTQsCisgICAgNCwwLDAsMCwxMTQsNSwwLDAsMCwxMTQsODUsMCwwLDAsMTcxLDAsCisgICAgMCwwLDExNSwzMiwwLDAsMCwwLDYsMTIsMSwxMCwxLDMsMSwzLAorICAgIDEsMTAsMSwzMCwxLDksMSwxNSwxLDQsMSwxMiwxLDE5LDEsMTgsCisgICAgMSwyNCwyLDEzLDEsMjAsMiwxMTcsMTksMCwwLDAsOTUsNzcsMTExLDEwMCwKKyAgICAxMTcsMTA4LDEwMSw3NiwxMTEsOTksMTA3LDQ2LDk3LDk5LDExMywxMTcsMTA1LDExNCwxMDEsOTksCisgICAgMSwwLDAsMCwwLDAsMCwwLDIsMCwwLDAsMTAsMCwwLDAsCisgICAgNjcsMCwwLDAsMTE1LDE2NSwwLDAsMCwxMTYsMCwwLDEwNiwxLDAsMTMxLAorICAgIDAsMCwxMjUsMSwwLDEyNCwwLDAsMTA2LDIsMCwxNDMsMTM4LDAsMSwxMjQsCisgICAgMCwwLDEwNiwzLDAsMTI0LDEsMCwxMDcsMywwLDExNCw1MiwwLDExNiw0LAorICAgIDAsMTAwLDEsMCwxMzEsMSwwLDEzMCwxLDAsMTEwLDAsMCwxMjQsMCwwLAorICAgIDEwNiw1LDAsMTAwLDIsMCwxMDcsNCwwLDExNSw3MywwLDExNiw2LDAsMTMwLAorICAgIDEsMCwxMjQsMCwwLDQsMTA2LDUsMCwxMDAsMywwLDU2LDIsOTUsNSwKKyAgICAwLDEyNCwwLDAsMTA2LDUsMCwxMDAsMiwwLDEwNywyLDAsMTE0LDE1NSwwLAorICAgIDEwMCwwLDAsMTI0LDAsMCw5NSwzLDAsMTI0LDAsMCwxMDYsNywwLDExNCwKKyAgICAxNTUsMCwxMjQsMCwwLDQsMTA2LDcsMCwxMDAsMywwLDU2LDIsOTUsNywKKyAgICAwLDEyNCwwLDAsMTA2LDgsMCwxMDYsOSwwLDEzMSwwLDAsMSwxMTMsMTU1LAorICAgIDAsMTEwLDAsMCw4NywxMDAsMCwwLDgxLDg4LDEwMCwwLDAsODMsNDAsNCwKKyAgICAwLDAsMCw3OCwxMTcsMzEsMCwwLDAsOTksOTcsMTEwLDExMCwxMTEsMTE2LDMyLAorICAgIDExNCwxMDEsMTA4LDEwMSw5NywxMTUsMTAxLDMyLDExNywxMTAsNDUsOTcsOTksMTEzLDExNywxMDUsCisgICAgMTE0LDEwMSwxMDAsMzIsMTA4LDExMSw5OSwxMDcsMTE0LDcwLDAsMCwwLDExNCwyOSwwLAorICAgIDAsMCw0MCwxMCwwLDAsMCwxMTQsNzEsMCwwLDAsMTE0LDc5LDAsMCwKKyAgICAwLDExNCw3MiwwLDAsMCwxMTQsNzQsMCwwLDAsMjQ0LDEyLDAsMCwwLAorICAgIDgyLDExNywxMTAsMTE2LDEwNSwxMDksMTAxLDY5LDExNCwxMTQsMTExLDExNCwxMTQsNzUsMCwwLAorICAgIDAsMjQ0LDE0LDAsMCwwLDY1LDExNSwxMTUsMTAxLDExNCwxMTYsMTA1LDExMSwxMTAsNjksCisgICAgMTE0LDExNCwxMTEsMTE0LDExNCw3NiwwLDAsMCwxMTQsNzMsMCwwLDAsMTE0LDg2LAorICAgIDAsMCwwLDQwLDIsMCwwLDAsMTE0LDc3LDAsMCwwLDExNCw4MywwLAorICAgIDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsCisgICAgMCwxMTQsODYsMCwwLDAsMTk2LDAsMCwwLDExNSwyMiwwLDAsMCwwLAorICAgIDEsMTIsMSwxMCwxLDE1LDEsMTUsMSwyMSwxLDE1LDEsMTUsMSw5LAorICAgIDEsOSwxLDE1LDEsMTE3LDE5LDAsMCwwLDk1LDc3LDExMSwxMDAsMTE3LDEwOCwKKyAgICAxMDEsNzYsMTExLDk5LDEwNyw0NiwxMTQsMTAxLDEwOCwxMDEsOTcsMTE1LDEwMSw5OSwxLDAsCisgICAgMCwwLDAsMCwwLDAsMSwwLDAsMCw0LDAsMCwwLDY3LDAsCisgICAgMCwwLDExNSwyNSwwLDAsMCwxMDAsMSwwLDEwNiwwLDAsMTI0LDAsMCwKKyAgICAxMDYsMSwwLDExNiwyLDAsMTI0LDAsMCwxMzEsMSwwLDEzMSwyLDAsODMsCisgICAgNDAsMiwwLDAsMCw3OCwxMTcsMjMsMCwwLDAsOTUsNzcsMTExLDEwMCwxMTcsCisgICAgMTA4LDEwMSw3NiwxMTEsOTksMTA3LDQwLDEyMywzMywxMTQsMTI1LDQxLDMyLDk3LDExNiwzMiwKKyAgICAxMjMsMTI1LDQwLDMsMCwwLDAsMTE0LDQ2LDAsMCwwLDExNCw2NiwwLDAsCisgICAgMCwxMTQsNDcsMCwwLDAsNDAsMSwwLDAsMCwxMTQsNzcsMCwwLDAsCisgICAgMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMjQ0LAorICAgIDgsMCwwLDAsOTUsOTUsMTE0LDEwMSwxMTIsMTE0LDk1LDk1LDIwOSwwLDAsMCwKKyAgICAxMTUsMiwwLDAsMCwwLDEsMTE3LDIwLDAsMCwwLDk1LDc3LDExMSwxMDAsCisgICAgMTE3LDEwOCwxMDEsNzYsMTExLDk5LDEwNyw0Niw5NSw5NSwxMTQsMTAxLDExMiwxMTQsOTUsOTUsCisgICAgNzgsNDAsOSwwLDAsMCwxMTQsNTYsMCwwLDAsMTE0LDU1LDAsMCwwLAorICAgIDExNCw1NywwLDAsMCwxMTQsNTgsMCwwLDAsMTE0LDc4LDAsMCwwLDExNCwKKyAgICA4NCwwLDAsMCwxMTQsODUsMCwwLDAsMTE0LDg2LDAsMCwwLDExNCw4OSwKKyAgICAwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLAorICAgIDAsMCwxMTQsNSwwLDAsMCwxMTQsNjksMCwwLDAsMTQ1LDAsMCwwLAorICAgIDExNSwxMiwwLDAsMCwxMiw0LDYsMiwxMiw4LDEyLDEyLDEyLDI1LDEyLAorICAgIDEzLDExNCw2OSwwLDAsMCw5OSwwLDAsMCwwLDAsMCwwLDAsMCwKKyAgICAwLDAsMCwyLDAsMCwwLDY0LDAsMCwwLDExNSw3MCwwLDAsMCwKKyAgICAxMDEsMCwwLDkwLDEsMCwxMDAsMCwwLDkwLDIsMCwxMDAsMSwwLDkwLAorICAgIDMsMCwxMDAsMiwwLDEwMCwzLDAsMTMyLDAsMCw5MCw0LDAsMTAwLDQsCisgICAgMCwxMDAsNSwwLDEzMiwwLDAsOTAsNSwwLDEwMCw2LDAsMTAwLDcsMCwKKyAgICAxMzIsMCwwLDkwLDYsMCwxMDAsOCwwLDEwMCw5LDAsMTMyLDAsMCw5MCwKKyAgICA3LDAsMTAwLDEwLDAsODMsNDAsMTEsMCwwLDAsMjQ0LDE2LDAsMCwwLAorICAgIDk1LDY4LDExNywxMDksMTA5LDEyMSw3NywxMTEsMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwxMDcsCisgICAgMTE3LDg2LDAsMCwwLDY1LDMyLDExNSwxMDUsMTA5LDExMiwxMDgsMTAxLDMyLDk1LDc3LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsNzYsMTExLDk5LDEwNywzMiwxMDEsMTEzLDExNywxMDUsMTE4LDk3LAorICAgIDEwOCwxMDEsMTEwLDExNiwzMiwxMDIsMTExLDExNCwzMiw4MCwxMjEsMTE2LDEwNCwxMTEsMTEwLDMyLAorICAgIDk4LDExNywxMDUsMTA4LDEwMCwxMTUsMzIsMTE5LDEwNSwxMTYsMTA0LDExMSwxMTcsMTE2LDEwLDMyLAorICAgIDMyLDMyLDMyLDEwOSwxMTcsMTA4LDExNiwxMDUsNDUsMTE2LDEwNCwxMTQsMTAxLDk3LDEwMCwxMDUsCisgICAgMTEwLDEwMywzMiwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwxMTYsNDYsOTksMiwwLDAsMCwKKyAgICAwLDAsMCwwLDIsMCwwLDAsMiwwLDAsMCw2NywwLDAsMCwKKyAgICAxMTUsMjIsMCwwLDAsMTI0LDEsMCwxMjQsMCwwLDk1LDAsMCwxMDAsMSwKKyAgICAwLDEyNCwwLDAsOTUsMSwwLDEwMCwwLDAsODMsNDAsMiwwLDAsMCwKKyAgICA3OCwxMTQsNzAsMCwwLDAsNDAsMiwwLDAsMCwxMTQsNjYsMCwwLDAsCisgICAgMTE0LDc1LDAsMCwwLDQwLDIsMCwwLDAsMTE0LDc3LDAsMCwwLDExNCwKKyAgICA2NiwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwKKyAgICAwLDAsMCwxMTQsNzgsMCwwLDAsMjE3LDAsMCwwLDExNSw0LDAsMCwKKyAgICAwLDAsMSw5LDEsMTE3LDI1LDAsMCwwLDk1LDY4LDExNywxMDksMTA5LDEyMSwKKyAgICA3NywxMTEsMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwxMDcsNDYsOTUsOTUsMTA1LDExMCwxMDUsCisgICAgMTE2LDk1LDk1LDk5LDEsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLAorICAgIDMsMCwwLDAsNjcsMCwwLDAsMTE1LDE5LDAsMCwwLDEyNCwwLDAsCisgICAgNCwxMDYsMCwwLDEwMCwxLDAsNTUsMiw5NSwwLDAsMTAwLDIsMCw4MywKKyAgICA0MCwzLDAsMCwwLDc4LDExNCwyOSwwLDAsMCw4NCw0MCwxLDAsMCwKKyAgICAwLDExNCw3NSwwLDAsMCw0MCwxLDAsMCwwLDExNCw3NywwLDAsMCwKKyAgICAxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwxMTQsCisgICAgODUsMCwwLDAsMjIxLDAsMCwwLDExNSw0LDAsMCwwLDAsMSwxNSwKKyAgICAxLDExNywyNCwwLDAsMCw5NSw2OCwxMTcsMTA5LDEwOSwxMjEsNzcsMTExLDEwMCwxMTcsCisgICAgMTA4LDEwMSw3NiwxMTEsOTksMTA3LDQ2LDk3LDk5LDExMywxMTcsMTA1LDExNCwxMDEsOTksMSwKKyAgICAwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMywwLDAsMCw2NywKKyAgICAwLDAsMCwxMTUsNDksMCwwLDAsMTI0LDAsMCwxMDYsMCwwLDEwMCwxLAorICAgIDAsMTA3LDIsMCwxMTQsMzAsMCwxMTYsMSwwLDEwMCwyLDAsMTMxLDEsMCwKKyAgICAxMzAsMSwwLDExMCwwLDAsMTI0LDAsMCw0LDEwNiwwLDAsMTAwLDMsMCwKKyAgICA1NiwyLDk1LDAsMCwxMDAsMCwwLDgzLDQwLDQsMCwwLDAsNzgsMTE0LAorICAgIDcwLDAsMCwwLDExNywzMSwwLDAsMCw5OSw5NywxMTAsMTEwLDExMSwxMTYsMzIsCisgICAgMTE0LDEwMSwxMDgsMTAxLDk3LDExNSwxMDEsMzIsMTE3LDExMCw0NSw5Nyw5OSwxMTMsMTE3LDEwNSwKKyAgICAxMTQsMTAxLDEwMCwzMiwxMDgsMTExLDk5LDEwNywxMTQsMjksMCwwLDAsNDAsMiwwLAorICAgIDAsMCwxMTQsNzUsMCwwLDAsMTE0LDg3LDAsMCwwLDQwLDEsMCwwLAorICAgIDAsMTE0LDc3LDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLAorICAgIDExNCw1LDAsMCwwLDExNCw4NiwwLDAsMCwyMjUsMCwwLDAsMTE1LDYsCiAgICAgMCwwLDAsMCwxLDE1LDEsMTUsMSwxMTcsMjQsMCwwLDAsOTUsNjgsCiAgICAgMTE3LDEwOSwxMDksMTIxLDc3LDExMSwxMDAsMTE3LDEwOCwxMDEsNzYsMTExLDk5LDEwNyw0NiwxMTQsCiAgICAgMTAxLDEwOCwxMDEsOTcsMTE1LDEwMSw5OSwxLDAsMCwwLDAsMCwwLDAsMSwKLSAgICAwLDAsMCw0LDAsMCwwLDY3LDAsMCwwLDExNSwyMywwLDAsMCwKLSAgICAxMDAsMSwwLDEyNCwwLDAsMTA2LDAsMCwxMTYsMSwwLDEyNCwwLDAsMTMxLAotICAgIDEsMCwxMDIsMiwwLDIyLDgzLDQwLDIsMCwwLDAsNzgsMTE3LDI2LDAsCisgICAgMCwwLDAsNCwwLDAsMCw2NywwLDAsMCwxMTUsMjUsMCwwLDAsCisgICAgMTAwLDEsMCwxMDYsMCwwLDEyNCwwLDAsMTA2LDEsMCwxMTYsMiwwLDEyNCwKKyAgICAwLDAsMTMxLDEsMCwxMzEsMiwwLDgzLDQwLDIsMCwwLDAsNzgsMTE3LAorICAgIDI4LDAsMCwwLDk1LDY4LDExNywxMDksMTA5LDEyMSw3NywxMTEsMTAwLDExNywxMDgsMTAxLAorICAgIDc2LDExMSw5OSwxMDcsNDAsMTIzLDMzLDExNCwxMjUsNDEsMzIsOTcsMTE2LDMyLDEyMywxMjUsCisgICAgNDAsMywwLDAsMCwxMTQsNDYsMCwwLDAsMTE0LDY2LDAsMCwwLDExNCwKKyAgICA0NywwLDAsMCw0MCwxLDAsMCwwLDExNCw3NywwLDAsMCwxMTQsNCwKKyAgICAwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwxMTQsODksMCwKKyAgICAwLDAsMjMwLDAsMCwwLDExNSwyLDAsMCwwLDAsMSwxMTcsMjUsMCwKICAgICAwLDAsOTUsNjgsMTE3LDEwOSwxMDksMTIxLDc3LDExMSwxMDAsMTE3LDEwOCwxMDEsNzYsMTExLAotICAgIDk5LDEwNyw0MCwzNywxMTQsNDEsMzIsOTcsMTE2LDMyLDM3LDEwMCw0MCwyLDAsMCwKLSAgICAwLDExNyw0LDAsMCwwLDExMCw5NywxMDksMTAxLDExNywyLDAsMCwwLDEwNSwKLSAgICAxMDAsNDAsMSwwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsNDAsCi0gICAgMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsCi0gICAgMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LAotICAgIDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsOCwwLDAsMCwKLSAgICA5NSw5NSwxMTQsMTAxLDExMiwxMTQsOTUsOTUsNCwxLDAsMCwxMTUsMiwwLDAsCi0gICAgMCwwLDEsMTE3LDI1LDAsMCwwLDk1LDY4LDExNywxMDksMTA5LDEyMSw3NywxMTEsCi0gICAgMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwxMDcsNDYsOTUsOTUsMTE0LDEwMSwxMTIsMTE0LDk1LAotICAgIDk1LDc4LDQwLDgsMCwwLDAsMTE3LDgsMCwwLDAsOTUsOTUsMTEwLDk3LAotICAgIDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsCi0gICAgMTAxLDk1LDk1LDExNywxMiwwLDAsMCw5NSw5NSwxMTMsMTE3LDk3LDEwOCwxMTAsOTcsCi0gICAgMTA5LDEwMSw5NSw5NSwxMTcsNywwLDAsMCw5NSw5NSwxMDAsMTExLDk5LDk1LDk1LAotICAgIDExNyw4LDAsMCwwLDk1LDk1LDEwNSwxMTAsMTA1LDExNiw5NSw5NSwxMTcsNywwLAotICAgIDAsMCw5Nyw5OSwxMTMsMTE3LDEwNSwxMTQsMTAxLDExNyw3LDAsMCwwLDExNCwxMDEsCi0gICAgMTA4LDEwMSw5NywxMTUsMTAxLDExNyw4LDAsMCwwLDk1LDk1LDExNCwxMDEsMTEyLDExNCwKLSAgICA5NSw5NSw0MCwxLDAsMCwwLDExNywxMCwwLDAsMCw5NSw5NSwxMDgsMTExLAotICAgIDk5LDk3LDEwOCwxMTUsOTUsOTUsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLAotICAgIDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwKLSAgICAxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LAotICAgIDExMiw2MiwxMTcsMTYsMCwwLDAsOTUsNjgsMTE3LDEwOSwxMDksMTIxLDc3LDExMSwxMDAsCi0gICAgMTE3LDEwOCwxMDEsNzYsMTExLDk5LDEwNywyNDMsMCwwLDAsMTE1LDEwLDAsMCwwLAotICAgIDE2LDIsNiwyLDEyLDQsMTIsNCwxMiw1LDExNywxNiwwLDAsMCw5NSwKLSAgICA2OCwxMTcsMTA5LDEwOSwxMjEsNzcsMTExLDEwMCwxMTcsMTA4LDEwMSw3NiwxMTEsOTksMTA3LDk5LAotICAgIDEsMCwwLDAsMCwwLDAsMCwzLDAsMCwwLDExLDAsMCwwLAotICAgIDMsMCwwLDAsMTE1LDE0MiwwLDAsMCwxMDAsMywwLDEyNSwxLDAsMTIxLAotICAgIDE3LDAsMTE2LDEsMCwxMzYsMCwwLDI1LDEzMSwwLDAsMTI1LDEsMCw4NywKLSAgICAxMTAsMTgsMCw0LDExNiwyLDAsMTA3LDEwLDAsMTE0LDQzLDAsMSwxLDEsCi0gICAgODksMTEwLDEsMCw4OCwxMjQsMSwwLDEwMCwzLDAsMTA3LDgsMCwxMTQsMTM4LAotICAgIDAsMTE2LDMsMCwxMDAsMywwLDEwNyw4LDAsMTE0LDgzLDAsMTE2LDQsMCwKLSAgICAxMzYsMCwwLDEzMSwxLDAsMTI1LDEsMCwxMTAsMTIsMCwxMTYsNSwwLDEzNiwKLSAgICAwLDAsMTMxLDEsMCwxMjUsMSwwLDEzNSwwLDAsMTAyLDEsMCwxMDAsMSwKLSAgICAwLDEwMCwyLDAsMTM0LDAsMCwxMjUsMiwwLDExNiw2LDAsMTA2LDcsMCwKLSAgICAxMjQsMSwwLDEyNCwyLDAsMTMxLDIsMCwxMTYsMSwwLDEzNiwwLDAsNjAsCi0gICAgMTEwLDAsMCwxMjQsMSwwLDgzLDQwLDQsMCwwLDAsMTE3LDEwOSwwLDAsCi0gICAgMCw3MSwxMDEsMTE2LDMyLDExMSwxMTQsMzIsOTksMTE0LDEwMSw5NywxMTYsMTAxLDMyLDExNiwKLSAgICAxMDQsMTAxLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwOCwxMTEsOTksMTA3LDMyLDEwMiwKLSAgICAxMTEsMTE0LDMyLDk3LDMyLDEwMywxMDUsMTE4LDEwMSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwKLSAgICAxMDEsMzIsMTEwLDk3LDEwOSwxMDEsNDYsMTAsMTAsMzIsMzIsMzIsMzIsODMsMTA0LDExMSwKLSAgICAxMTcsMTA4LDEwMCwzMiwxMTEsMTEwLDEwOCwxMjEsMzIsOTgsMTAxLDMyLDk5LDk3LDEwOCwxMDgsCi0gICAgMTAxLDEwMCwzMiwxMTksMTA1LDExNiwxMDQsMzIsMTE2LDEwNCwxMDEsMzIsMTA1LDEwOSwxMTIsMTExLAotICAgIDExNCwxMTYsMzIsMTA4LDExMSw5OSwxMDcsMzIsMTE2LDk3LDEwNywxMDEsMTEwLDQ2LDk5LDEsCi0gICAgMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDIsMCwwLDAsMTksCi0gICAgMCwwLDAsMTE1LDExLDAsMCwwLDExNiwwLDAsMTM2LDAsMCw2MSwxMDAsCi0gICAgMCwwLDgzLDQwLDEsMCwwLDAsNzgsNDAsMSwwLDAsMCwxMTcsMTMsCi0gICAgMCwwLDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsMTA4LDExMSw5OSwxMDcsMTE1LAotICAgIDQwLDEsMCwwLDAsMTE3LDEsMCwwLDAsOTUsNDAsMSwwLDAsMCwKLSAgICAxMTcsNCwwLDAsMCwxMTAsOTcsMTA5LDEwMSw0MCwwLDAsMCwwLDExNywyOSwKLSAgICAwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LAotICAgIDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwKLSAgICAxMTcsMiwwLDAsMCw5OSw5OCwyNCwxLDAsMCwxMTUsMiwwLDAsMCwKLSAgICAwLDEsMTE3LDI4LDAsMCwwLDk1LDEwMywxMDEsMTE2LDk1LDEwOSwxMTEsMTAwLDExNywKLSAgICAxMDgsMTAxLDk1LDEwOCwxMTEsOTksMTA3LDQ2LDYwLDEwOCwxMTEsOTksOTcsMTA4LDExNSw2MiwKLSAgICA0Niw5OSw5OCw3OCw0MCw4LDAsMCwwLDExNyw0LDAsMCwwLDc4LDExMSwKLSAgICAxMTAsMTAxLDExNywxMywwLDAsMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMDgsCi0gICAgMTExLDk5LDEwNywxMTUsMTE3LDgsMCwwLDAsNzUsMTAxLDEyMSw2OSwxMTQsMTE0LDExMSwKLSAgICAxMTQsMTE3LDcsMCwwLDAsOTUsMTE2LDEwNCwxMTQsMTAxLDk3LDEwMCwxMTcsMTYsMCwKLSAgICAwLDAsOTUsNjgsMTE3LDEwOSwxMDksMTIxLDc3LDExMSwxMDAsMTE3LDEwOCwxMDEsNzYsMTExLAotICAgIDk5LDEwNywxMTcsMTEsMCwwLDAsOTUsNzcsMTExLDEwMCwxMTcsMTA4LDEwMSw3NiwxMTEsCi0gICAgOTksMTA3LDExNyw4LDAsMCwwLDk1LDExOSwxMDEsOTcsMTA3LDExNCwxMDEsMTAyLDExNywKLSAgICAzLDAsMCwwLDExNCwxMDEsMTAyLDQwLDMsMCwwLDAsMTE3LDQsMCwwLAotICAgIDAsMTEwLDk3LDEwOSwxMDEsMTE3LDQsMCwwLDAsMTA4LDExMSw5OSwxMDcsMTE3LDIsCi0gICAgMCwwLDAsOTksOTgsNDAsMCwwLDAsMCw0MCwxLDAsMCwwLDExNywKLSAgICA0LDAsMCwwLDExMCw5NywxMDksMTAxLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LAotICAgIDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LAotICAgIDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTYsMCwwLDAsOTUsCi0gICAgMTAzLDEwMSwxMTYsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsMTA4LDExMSw5OSwxMDcsMTAsCi0gICAgMSwwLDAsMTE1LDI0LDAsMCwwLDAsNCw2LDEsMywxLDE3LDEsCi0gICAgMTMsMSw1LDEsMTIsMSwxMiwxLDE1LDIsMTIsMSwxOCwyLDI1LDEsCi0gICAgMTE3LDE2LDAsMCwwLDk1LDEwMywxMDEsMTE2LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLAotICAgIDk1LDEwOCwxMTEsOTksMTA3LDk5LDEsMCwwLDAsMCwwLDAsMCwyLDAsCi0gICAgMCwwLDExLDAsMCwwLDY3LDAsMCwwLDExNSw3MSwwLDAsMCwxMTYsCi0gICAgMCwwLDEyNCwwLDAsMTMxLDEsMCwxMjUsMSwwLDExNiwxLDAsMTA2LDIsCi0gICAgMCwxMzEsMCwwLDEsMTIxLDE0LDAsMTI0LDEsMCwxMDYsMywwLDEzMSwwLAotICAgIDAsMSw4NywxMTAsMTgsMCw0LDExNiw0LDAsMTA3LDEwLDAsMTE0LDU2LDAsCi0gICAgMSwxLDEsODksMTEwLDExLDAsODgsMTI0LDEsMCwxMDYsNSwwLDEzMSwwLAotICAgIDAsMSwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDIxLDEsMCwwLAotICAgIDgyLDEwMSwxMDgsMTAxLDk3LDExNSwxMDEsMzIsMTE2LDEwNCwxMDEsMzIsMTAzLDEwOCwxMTEsOTgsCi0gICAgOTcsMTA4LDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDMyLDEwOCwxMTEsOTksMTA3LDQ0LDMyLAotICAgIDk3LDExMCwxMDAsMzIsOTcsOTksMTEzLDExNywxMDUsMTE0LDEwMSwxMTUsMzIsMTE2LDEwNCwxMDEsCi0gICAgMTEwLDMyLDExNCwxMDEsMTA4LDEwMSw5NywxMTUsMTAxLDMyLDExNiwxMDQsMTAxLDEwLDMyLDMyLAotICAgIDMyLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwOCwxMTEsOTksMTA3LDMyLDEwMiwxMTEsCi0gICAgMTE0LDMyLDk3LDMyLDEwMywxMDUsMTE4LDEwMSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCi0gICAgMzIsMTEwLDk3LDEwOSwxMDEsNDYsMTAsMzIsMzIsMzIsMzIsODQsMTA0LDEwNSwxMTUsMzIsCi0gICAgMTA1LDExNSwzMiwxMTcsMTE1LDEwMSwxMDAsMzIsMTE2LDExMSwzMiwxMDEsMTEwLDExNSwxMTcsMTE0LAotICAgIDEwMSwzMiw5NywzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMDUsMTE1LDMyLDk5LDExMSwKLSAgICAxMDksMTEyLDEwOCwxMDEsMTE2LDEwMSwxMDgsMTIxLDMyLDEwNSwxMTAsMTA1LDExNiwxMDUsOTcsMTA4LAotICAgIDEwNSwxMjIsMTAxLDEwMCw0NCwzMiwxMDUsMTEwLDMyLDExNiwxMDQsMTAxLDEwLDMyLDMyLDMyLAotICAgIDMyLDEwMSwxMTgsMTAxLDExMCwxMTYsMzIsMTA1LDExNiwzMiwxMDUsMTE1LDMyLDk4LDEwMSwxMDUsCi0gICAgMTEwLDEwMywzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTAwLDMyLDk4LDEyMSwzMiw5NywKLSAgICAxMTAsMTExLDExNiwxMDQsMTAxLDExNCwzMiwxMTYsMTA0LDExNCwxMDEsOTcsMTAwLDQ2LDEwLDEwLAotICAgIDMyLDMyLDMyLDMyLDgzLDEwNCwxMTEsMTE3LDEwOCwxMDAsMzIsMTExLDExMCwxMDgsMTIxLDMyLAotICAgIDk4LDEwMSwzMiw5OSw5NywxMDgsMTA4LDEwMSwxMDAsMzIsMTE5LDEwNSwxMTYsMTA0LDMyLDExNiwKLSAgICAxMDQsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDMyLDEwOCwxMTEsOTksMTA3LDMyLDExNiwKLSAgICA5NywxMDcsMTAxLDExMCw0Niw3OCw0MCw2LDAsMCwwLDExNywxNiwwLDAsMCwKLSAgICA5NSwxMDMsMTAxLDExNiw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMDgsMTExLDk5LDEwNywKLSAgICAxMTcsNCwwLDAsMCw5NSwxMDUsMTA5LDExMiwxMTcsMTIsMCwwLDAsMTE0LDEwMSwKLSAgICAxMDgsMTAxLDk3LDExNSwxMDEsOTUsMTA4LDExMSw5OSwxMDcsMTE3LDcsMCwwLDAsOTcsCi0gICAgOTksMTEzLDExNywxMDUsMTE0LDEwMSwxMTcsMTQsMCwwLDAsOTUsNjgsMTAxLDk3LDEwMCwKLSAgICAxMDgsMTExLDk5LDEwNyw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDcsMCwwLDAsMTE0LDEwMSwKLSAgICAxMDgsMTAxLDk3LDExNSwxMDEsNDAsMiwwLDAsMCwxMTcsNCwwLDAsMCwxMTAsCi0gICAgOTcsMTA5LDEwMSwxMTcsNCwwLDAsMCwxMDgsMTExLDk5LDEwNyw0MCwwLDAsMCwKLSAgICAwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwKLSAgICAxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLAotICAgIDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxOSwwLDAsMCw5NSwxMDgsMTExLAotICAgIDk5LDEwNyw5NSwxMTcsMTEwLDEwOCwxMTEsOTksMTA3LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLAotICAgIDI5LDEsMCwwLDExNSwxNCwwLDAsMCwwLDcsMTIsMSwxMCwxLDMsCi0gICAgMSwxNCwxLDEzLDMsNSwyLDExNywxOSwwLDAsMCw5NSwxMDgsMTExLDk5LAotICAgIDEwNyw5NSwxMTcsMTEwLDEwOCwxMTEsOTksMTA3LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk5LAotICAgIDEsMCwwLDAsMCwwLDAsMCwzLDAsMCwwLDMsMCwwLDAsCi0gICAgNzksMCwwLDAsMTE1LDEzLDAsMCwwLDEyNCwwLDAsMTI0LDEsMCwxMjQsCi0gICAgMiwwLDE0MiwwLDAsODMsNDAsMSwwLDAsMCwxMTcsNDYsMSwwLDAsCi0gICAgMTE0LDEwMSwxMDksMTExLDExOCwxMDEsOTUsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCwKLSAgICA5NSwxMDIsMTE0LDk3LDEwOSwxMDEsMTE1LDMyLDEwNSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwKLSAgICAxMTYsNDYsOTksMzIsMTE5LDEwNSwxMDgsMTA4LDMyLDk3LDEwOCwxMTksOTcsMTIxLDExNSwzMiwKLSAgICAxMTQsMTAxLDEwOSwxMTEsMTE4LDEwMSwzMiwxMTUsMTAxLDExMywxMTcsMTAxLDExMCw5OSwxMDEsMTE1LAotICAgIDEwLDMyLDMyLDMyLDMyLDExMSwxMDIsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSwKLSAgICA5OCwzMiwxMDIsMTE0LDk3LDEwOSwxMDEsMTE1LDMyLDExNiwxMDQsOTcsMTE2LDMyLDEwMSwxMTAsCi0gICAgMTAwLDMyLDExOSwxMDUsMTE2LDEwNCwzMiw5NywzMiw5OSw5NywxMDgsMTA4LDMyLDExNiwxMTEsCi0gICAgMzIsMTE2LDEwNCwxMDUsMTE1LDMyLDEwMiwxMTcsMTEwLDk5LDExNiwxMDUsMTExLDExMCwxMCwxMCwKLSAgICAzMiwzMiwzMiwzMiw4NSwxMTUsMTAxLDMyLDEwNSwxMTYsMzIsMTA1LDExMCwxMTUsMTE2LDEwMSwKLSAgICA5NywxMDAsMzIsMTExLDEwMiwzMiw5NywzMiwxMTAsMTExLDExNCwxMDksOTcsMTA4LDMyLDk5LAotICAgIDk3LDEwOCwxMDgsMzIsMTA1LDExMCwzMiwxMTIsMTA4LDk3LDk5LDEwMSwxMTUsMzIsMTE5LDEwNCwKLSAgICAxMDEsMTE0LDEwMSwzMiwxMDUsMTEwLDk5LDEwOCwxMTcsMTAwLDEwNSwxMTAsMTAzLDMyLDExNiwxMDQsCi0gICAgMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsMTAsMzIsMzIsMzIsMzIsCi0gICAgMTAyLDExNCw5NywxMDksMTAxLDExNSwzMiwxMDUsMTEwLDExNiwxMTQsMTExLDEwMCwxMTcsOTksMTAxLAotICAgIDExNSwzMiwxMTcsMTEwLDExOSw5NywxMTAsMTE2LDEwMSwxMDAsMzIsMTEwLDExMSwxMDUsMTE1LDEwMSwKLSAgICAzMiwxMDUsMTEwLDExNiwxMTEsMzIsMTE2LDEwNCwxMDEsMzIsMTE2LDExNCw5Nyw5OSwxMDEsOTgsCi0gICAgOTcsOTksMTA3LDMyLDQwLDEwMSw0NiwxMDMsNDYsMzIsMTE5LDEwNCwxMDEsMTEwLDMyLDEwMSwKLSAgICAxMjAsMTAxLDk5LDExNywxMTYsMTA1LDExMCwxMDMsMTAsMzIsMzIsMzIsMzIsMTA5LDExMSwxMDAsCi0gICAgMTE3LDEwOCwxMDEsMzIsOTksMTExLDEwMCwxMDEsNDEsMTAsMzIsMzIsMzIsMzIsNDAsMCwKLSAgICAwLDAsMCw0MCwzLDAsMCwwLDExNywxLDAsMCwwLDEwMiwxMTcsNCwKLSAgICAwLDAsMCw5NywxMTQsMTAzLDExNSwxMTcsNCwwLDAsMCwxMDcsMTE5LDEwMCwxMTUsCi0gICAgNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwKLSAgICAxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LAotICAgIDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMjUsMCwwLAotICAgIDAsOTUsOTksOTcsMTA4LDEwOCw5NSwxMTksMTA1LDExNiwxMDQsOTUsMTAyLDExNCw5NywxMDksCi0gICAgMTAxLDExNSw5NSwxMTQsMTAxLDEwOSwxMTEsMTE4LDEwMSwxMDAsNDksMSwwLDAsMTE1LDIsCi0gICAgMCwwLDAsMCw4LDExNywyNSwwLDAsMCw5NSw5OSw5NywxMDgsMTA4LDk1LAotICAgIDExOSwxMDUsMTE2LDEwNCw5NSwxMDIsMTE0LDk3LDEwOSwxMDEsMTE1LDk1LDExNCwxMDEsMTA5LDExMSwKLSAgICAxMTgsMTAxLDEwMCwxMDUsMTU4LDEyLDAsMCwxMTcsMSwwLDAsMCwxMywxMDUsMTYsCi0gICAgMCwwLDAsMTE3LDEsMCwwLDAsMTAsMTA1LDI0LDAsMCwwLDk5LDEsCi0gICAgMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDMsMCwwLDAsOTksCi0gICAgMCwwLDAsMTE1LDI5LDAsMCwwLDEyNCwwLDAsOTMsMTksMCwxMjUsMSwKLSAgICAwLDExNiwwLDAsMTI0LDEsMCw2MywxMDAsMCwwLDY0LDg2LDEsMTEzLDMsCi0gICAgMCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTA1LDI1NSwwLDAsMCw3OCwKLSAgICA0MCwxLDAsMCwwLDExNywxNywwLDAsMCw5NSw4Miw2NSw4Nyw5NSw3NywKLSAgICA2NSw3MSw3Myw2Nyw5NSw3OCw4NSw3Nyw2Niw2OSw4Miw0MCwyLDAsMCwwLAotICAgIDExNywyLDAsMCwwLDQ2LDQ4LDExNywxLDAsMCwwLDExMCw0MCwwLDAsCi0gICAgMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLAotICAgIDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsCi0gICAgMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw5LDAsMCwwLDYwLDEwMywKLSAgICAxMDEsMTEwLDEwMSwxMjAsMTEyLDExNCw2MiwxNTAsMSwwLDAsMTE1LDIsMCwwLDAsCi0gICAgNiwwLDExNyw5LDAsMCwwLDYwLDEwMywxMDEsMTEwLDEwMSwxMjAsMTEyLDExNCw2MiwKLSAgICAxMDUsMCwwLDAsMCwxMDUsMjUsMCwwLDAsMTA1LDgsMCwwLDAsMTE3LAotICAgIDExLDAsMCwwLDk1LDk1LDExMiwxMjEsOTksOTcsOTksMTA0LDEwMSw5NSw5NSwxMTcsCi0gICAgMywwLDAsMCw0NiwxMTIsMTIxLDExNyw0LDAsMCwwLDQ2LDExMiwxMjEsOTksCi0gICAgMTE3LDQsMCwwLDAsNDYsMTEyLDEyMSwxMTEsOTksMiwwLDAsMCwwLDAsCi0gICAgMCwwLDExLDAsMCwwLDYsMCwwLDAsNjcsMCwwLDAsMTE1LDE4MCwKLSAgICAwLDAsMCwxMjQsMSwwLDEwMCw1LDAsMTA3LDgsMCwxMTQsMjUsMCwxMTYsCi0gICAgMSwwLDEwNiwyLDAsMTA2LDMsMCwxMiwxMTAsMywwLDEyNCwxLDAsMTI1LAotICAgIDIsMCwxMjQsMiwwLDExNCw0NiwwLDExNiw0LDAsMTI1LDMsMCwxMTAsNiwKLSAgICAwLDExNiw1LDAsMTI1LDMsMCwxMTYsNiwwLDEyNCwwLDAsMTMxLDEsMCwKLSAgICA5MiwyLDAsMTI1LDQsMCwxMjUsNSwwLDEyNCw1LDAsMTA2LDcsMCwxMDAsCi0gICAgMSwwLDEzMSwxLDAsOTIsMywwLDEyNSw2LDAsMTI1LDcsMCwxMjUsOCwKLSAgICAwLDExNiwxLDAsMTA2LDgsMCwxMDYsOSwwLDEyNSw5LDAsMTI0LDksMCwKLSAgICAxMDAsNSwwLDEwNyw4LDAsMTE0LDEzMywwLDExNiwxMCwwLDEwMCwyLDAsMTMxLAotICAgIDEsMCwxMzAsMSwwLDExMCwwLDAsMTAwLDMsMCwxMDYsMTEsMCwxMjQsNiwKLSAgICAwLDEyNCw3LDAsMTI0LDksMCwxMjQsMywwLDEwMCw0LDAsMjUsMTAzLDQsCi0gICAgMCwxMzEsMSwwLDEyNSwxMCwwLDExNiwxMiwwLDEyNCw0LDAsMTE2LDEzLDAsCi0gICAgMTI0LDEwLDAsMTMxLDMsMCw4Myw0MCw2LDAsMCwwLDExNywyNDQsMSwwLAotICAgIDAsNzEsMTA1LDExOCwxMDEsMTEwLDMyLDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLAotICAgIDExNiwxMTEsMzIsOTcsMzIsNDYsMTEyLDEyMSwzMiwxMDIsMTA1LDEwOCwxMDEsNDQsMzIsMTE0LAorICAgIDk5LDEwNyw0Niw5NSw5NSwxMTQsMTAxLDExMiwxMTQsOTUsOTUsNzgsNDAsOCwwLDAsCisgICAgMCwxMTQsNTYsMCwwLDAsMTE0LDU1LDAsMCwwLDExNCw1NywwLDAsMCwKKyAgICAxMTQsNTgsMCwwLDAsMTE0LDc4LDAsMCwwLDExNCw4NSwwLDAsMCwxMTQsCisgICAgODYsMCwwLDAsMTE0LDg5LDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LAorICAgIDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDExNCw5MCwwLAorICAgIDAsMCwyMTMsMCwwLDAsMTE1LDEwLDAsMCwwLDEyLDIsNiwyLDEyLAorICAgIDQsMTIsNCwxMiw1LDExNCw5MCwwLDAsMCw5OSwxLDAsMCwwLDAsCisgICAgMCwwLDAsMywwLDAsMCwxMSwwLDAsMCwzLDAsMCwwLDExNSwKKyAgICAxNDIsMCwwLDAsMTAwLDEsMCwxMjUsMSwwLDEyMSwxNywwLDExNiwwLDAsCisgICAgMTM2LDAsMCwyNSwxMzEsMCwwLDEyNSwxLDAsODcsMTEwLDE4LDAsNCwxMTYsCisgICAgMSwwLDEwNywxMCwwLDExNCw0MywwLDEsMSwxLDg5LDExMCwxLDAsODgsCisgICAgMTI0LDEsMCwxMDAsMSwwLDEwNyw4LDAsMTE0LDEzOCwwLDExNiwyLDAsMTAwLAorICAgIDEsMCwxMDcsOCwwLDExNCw4MywwLDExNiwzLDAsMTM2LDAsMCwxMzEsMSwKKyAgICAwLDEyNSwxLDAsMTEwLDEyLDAsMTE2LDQsMCwxMzYsMCwwLDEzMSwxLDAsCisgICAgMTI1LDEsMCwxMzUsMCwwLDEwMiwxLDAsMTAwLDIsMCwxMDAsMywwLDEzNCwKKyAgICAwLDAsMTI1LDIsMCwxMTYsNSwwLDEwNiw2LDAsMTI0LDEsMCwxMjQsMiwKKyAgICAwLDEzMSwyLDAsMTE2LDAsMCwxMzYsMCwwLDYwLDExMCwwLDAsMTI0LDEsCisgICAgMCw4Myw0MCw0LDAsMCwwLDExNywxMDksMCwwLDAsNzEsMTAxLDExNiwzMiwKKyAgICAxMTEsMTE0LDMyLDk5LDExNCwxMDEsOTcsMTE2LDEwMSwzMiwxMTYsMTA0LDEwMSwzMiwxMDksMTExLAorICAgIDEwMCwxMTcsMTA4LDEwMSwzMiwxMDgsMTExLDk5LDEwNywzMiwxMDIsMTExLDExNCwzMiw5NywzMiwKKyAgICAxMDMsMTA1LDExOCwxMDEsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDExMCw5NywxMDksCisgICAgMTAxLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDgzLDEwNCwxMTEsMTE3LDEwOCwxMDAsMzIsMTExLAorICAgIDExMCwxMDgsMTIxLDMyLDk4LDEwMSwzMiw5OSw5NywxMDgsMTA4LDEwMSwxMDAsMzIsMTE5LDEwNSwKKyAgICAxMTYsMTA0LDMyLDExNiwxMDQsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDMyLDEwOCwxMTEsCisgICAgOTksMTA3LDMyLDExNiw5NywxMDcsMTAxLDExMCw0Niw3OCw5OSwxLDAsMCwwLDAsCisgICAgMCwwLDAsMSwwLDAsMCwyLDAsMCwwLDE5LDAsMCwwLDExNSwKKyAgICAxMSwwLDAsMCwxMTYsMCwwLDEzNiwwLDAsNjEsMTAwLDAsMCw4Myw0MCwKKyAgICAxLDAsMCwwLDc4LDQwLDEsMCwwLDAsMjQ0LDEzLDAsMCwwLDk1LAorICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDEwOCwxMTEsOTksMTA3LDExNSw0MCwxLDAsMCwKKyAgICAwLDExNCwzNiwwLDAsMCw0MCwxLDAsMCwwLDExNCw2NiwwLDAsMCwKKyAgICAxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwyNDQsMiwwLDAsMCw5OSwKKyAgICA5OCwyNTAsMCwwLDAsMTE1LDIsMCwwLDAsMCwxLDExNywyOCwwLDAsCisgICAgMCw5NSwxMDMsMTAxLDExNiw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMDgsMTExLDk5LAorICAgIDEwNyw0Niw2MCwxMDgsMTExLDk5LDk3LDEwOCwxMTUsNjIsNDYsOTksOTgsNDAsNywwLAorICAgIDAsMCwxMTQsOTEsMCwwLDAsMjQ0LDgsMCwwLDAsNzUsMTAxLDEyMSw2OSwKKyAgICAxMTQsMTE0LDExMSwxMTQsMTE0LDcxLDAsMCwwLDExNCw5MCwwLDAsMCwxMTQsNjksCisgICAgMCwwLDAsMjQ0LDgsMCwwLDAsOTUsMTE5LDEwMSw5NywxMDcsMTE0LDEwMSwxMDIsCisgICAgMTE2LDMsMCwwLDAsMTE0LDEwMSwxMDIsNDAsMywwLDAsMCwxMTQsNjYsMCwKKyAgICAwLDAsMTE0LDcyLDAsMCwwLDExNCw5MiwwLDAsMCwxMTQsNCwwLDAsCisgICAgMCw0MCwxLDAsMCwwLDExNCw2NiwwLDAsMCwxMTQsNSwwLDAsMCwKKyAgICAyNDQsMTYsMCwwLDAsOTUsMTAzLDEwMSwxMTYsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCisgICAgOTUsMTA4LDExMSw5OSwxMDcsMjM2LDAsMCwwLDExNSwyNCwwLDAsMCwwLDQsCisgICAgNiwxLDMsMSwxNywxLDEzLDEsNSwxLDEyLDEsMTIsMSwxNSwyLAorICAgIDEyLDEsMTgsMiwyNSwxLDExNCw5NSwwLDAsMCw5OSwxLDAsMCwwLAorICAgIDAsMCwwLDAsMiwwLDAsMCwxMSwwLDAsMCw2NywwLDAsMCwKKyAgICAxMTUsNzEsMCwwLDAsMTE2LDAsMCwxMjQsMCwwLDEzMSwxLDAsMTI1LDEsCisgICAgMCwxMTYsMSwwLDEwNiwyLDAsMTMxLDAsMCwxLDEyMSwxNCwwLDEyNCwxLAorICAgIDAsMTA2LDMsMCwxMzEsMCwwLDEsODcsMTEwLDE4LDAsNCwxMTYsNCwwLAorICAgIDEwNywxMCwwLDExNCw1NiwwLDEsMSwxLDg5LDExMCwxMSwwLDg4LDEyNCwxLAorICAgIDAsMTA2LDUsMCwxMzEsMCwwLDEsMTAwLDEsMCw4Myw0MCwyLDAsMCwKKyAgICAwLDExNywyMSwxLDAsMCw4MiwxMDEsMTA4LDEwMSw5NywxMTUsMTAxLDMyLDExNiwxMDQsCisgICAgMTAxLDMyLDEwMywxMDgsMTExLDk4LDk3LDEwOCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwzMiwKKyAgICAxMDgsMTExLDk5LDEwNyw0NCwzMiw5NywxMTAsMTAwLDMyLDk3LDk5LDExMywxMTcsMTA1LDExNCwKKyAgICAxMDEsMTE1LDMyLDExNiwxMDQsMTAxLDExMCwzMiwxMTQsMTAxLDEwOCwxMDEsOTcsMTE1LDEwMSwzMiwKKyAgICAxMTYsMTA0LDEwMSwxMCwzMiwzMiwzMiwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMDgsCisgICAgMTExLDk5LDEwNywzMiwxMDIsMTExLDExNCwzMiw5NywzMiwxMDMsMTA1LDExOCwxMDEsMTEwLDMyLAorICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDExMCw5NywxMDksMTAxLDQ2LDEwLDMyLDMyLDMyLAorICAgIDMyLDg0LDEwNCwxMDUsMTE1LDMyLDEwNSwxMTUsMzIsMTE3LDExNSwxMDEsMTAwLDMyLDExNiwxMTEsCisgICAgMzIsMTAxLDExMCwxMTUsMTE3LDExNCwxMDEsMzIsOTcsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCisgICAgMzIsMTA1LDExNSwzMiw5OSwxMTEsMTA5LDExMiwxMDgsMTAxLDExNiwxMDEsMTA4LDEyMSwzMiwxMDUsCisgICAgMTEwLDEwNSwxMTYsMTA1LDk3LDEwOCwxMDUsMTIyLDEwMSwxMDAsNDQsMzIsMTA1LDExMCwzMiwxMTYsCisgICAgMTA0LDEwMSwxMCwzMiwzMiwzMiwzMiwxMDEsMTE4LDEwMSwxMTAsMTE2LDMyLDEwNSwxMTYsMzIsCisgICAgMTA1LDExNSwzMiw5OCwxMDEsMTA1LDExMCwxMDMsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLAorICAgIDEwMCwzMiw5OCwxMjEsMzIsOTcsMTEwLDExMSwxMTYsMTA0LDEwMSwxMTQsMzIsMTE2LDEwNCwxMTQsCisgICAgMTAxLDk3LDEwMCw0NiwxMCwxMCwzMiwzMiwzMiwzMiw4MywxMDQsMTExLDExNywxMDgsMTAwLAorICAgIDMyLDExMSwxMTAsMTA4LDEyMSwzMiw5OCwxMDEsMzIsOTksOTcsMTA4LDEwOCwxMDEsMTAwLDMyLAorICAgIDExOSwxMDUsMTE2LDEwNCwzMiwxMTYsMTA0LDEwMSwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwzMiwKKyAgICAxMDgsMTExLDk5LDEwNywzMiwxMTYsOTcsMTA3LDEwMSwxMTAsNDYsNzgsNDAsNiwwLDAsCisgICAgMCwxMTQsOTUsMCwwLDAsMjQ0LDQsMCwwLDAsOTUsMTA1LDEwOSwxMTIsMjQ0LAorICAgIDEyLDAsMCwwLDExNCwxMDEsMTA4LDEwMSw5NywxMTUsMTAxLDk1LDEwOCwxMTEsOTksMTA3LAorICAgIDExNCw4NSwwLDAsMCwxMTQsNjgsMCwwLDAsMTE0LDg2LDAsMCwwLDQwLAorICAgIDIsMCwwLDAsMTE0LDY2LDAsMCwwLDExNCw3MiwwLDAsMCwxMTQsNCwKKyAgICAwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwyNDQsMTksMCwKKyAgICAwLDAsOTUsMTA4LDExMSw5OSwxMDcsOTUsMTE3LDExMCwxMDgsMTExLDk5LDEwNyw5NSwxMDksCisgICAgMTExLDEwMCwxMTcsMTA4LDEwMSwyNTUsMCwwLDAsMTE1LDE0LDAsMCwwLDAsNywKKyAgICAxMiwxLDEwLDEsMywxLDE0LDEsMTMsMyw1LDIsMTE0LDk4LDAsMCwKKyAgICAwLDk5LDEsMCwwLDAsMCwwLDAsMCwzLDAsMCwwLDMsMCwKKyAgICAwLDAsNzksMCwwLDAsMTE1LDEzLDAsMCwwLDEyNCwwLDAsMTI0LDEsCisgICAgMCwxMjQsMiwwLDE0MiwwLDAsODMsNDAsMSwwLDAsMCwxMTcsNDYsMSwKKyAgICAwLDAsMTE0LDEwMSwxMDksMTExLDExOCwxMDEsOTUsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LAorICAgIDEwNSw5OCw5NSwxMDIsMTE0LDk3LDEwOSwxMDEsMTE1LDMyLDEwNSwxMTAsMzIsMTA1LDEwOSwxMTIsCisgICAgMTExLDExNCwxMTYsNDYsOTksMzIsMTE5LDEwNSwxMDgsMTA4LDMyLDk3LDEwOCwxMTksOTcsMTIxLAorICAgIDExNSwzMiwxMTQsMTAxLDEwOSwxMTEsMTE4LDEwMSwzMiwxMTUsMTAxLDExMywxMTcsMTAxLDExMCw5OSwKKyAgICAxMDEsMTE1LDEwLDMyLDMyLDMyLDMyLDExMSwxMDIsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsCisgICAgMTA4LDEwNSw5OCwzMiwxMDIsMTE0LDk3LDEwOSwxMDEsMTE1LDMyLDExNiwxMDQsOTcsMTE2LDMyLAorICAgIDEwMSwxMTAsMTAwLDMyLDExOSwxMDUsMTE2LDEwNCwzMiw5NywzMiw5OSw5NywxMDgsMTA4LDMyLAorICAgIDExNiwxMTEsMzIsMTE2LDEwNCwxMDUsMTE1LDMyLDEwMiwxMTcsMTEwLDk5LDExNiwxMDUsMTExLDExMCwKKyAgICAxMCwxMCwzMiwzMiwzMiwzMiw4NSwxMTUsMTAxLDMyLDEwNSwxMTYsMzIsMTA1LDExMCwxMTUsCisgICAgMTE2LDEwMSw5NywxMDAsMzIsMTExLDEwMiwzMiw5NywzMiwxMTAsMTExLDExNCwxMDksOTcsMTA4LAorICAgIDMyLDk5LDk3LDEwOCwxMDgsMzIsMTA1LDExMCwzMiwxMTIsMTA4LDk3LDk5LDEwMSwxMTUsMzIsCisgICAgMTE5LDEwNCwxMDEsMTE0LDEwMSwzMiwxMDUsMTEwLDk5LDEwOCwxMTcsMTAwLDEwNSwxMTAsMTAzLDMyLAorICAgIDExNiwxMDQsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsMTAsMzIsMzIsCisgICAgMzIsMzIsMTAyLDExNCw5NywxMDksMTAxLDExNSwzMiwxMDUsMTEwLDExNiwxMTQsMTExLDEwMCwxMTcsCisgICAgOTksMTAxLDExNSwzMiwxMTcsMTEwLDExOSw5NywxMTAsMTE2LDEwMSwxMDAsMzIsMTEwLDExMSwxMDUsCisgICAgMTE1LDEwMSwzMiwxMDUsMTEwLDExNiwxMTEsMzIsMTE2LDEwNCwxMDEsMzIsMTE2LDExNCw5Nyw5OSwKKyAgICAxMDEsOTgsOTcsOTksMTA3LDMyLDQwLDEwMSw0NiwxMDMsNDYsMzIsMTE5LDEwNCwxMDEsMTEwLAorICAgIDMyLDEwMSwxMjAsMTAxLDk5LDExNywxMTYsMTA1LDExMCwxMDMsMTAsMzIsMzIsMzIsMzIsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsOTksMTExLDEwMCwxMDEsNDEsMTAsMzIsMzIsMzIsMzIsCisgICAgMTE0LDQsMCwwLDAsNDAsMywwLDAsMCwyNDQsMSwwLDAsMCwxMDIsCisgICAgMjQ0LDQsMCwwLDAsOTcsMTE0LDEwMywxMTUsMTE2LDQsMCwwLDAsMTA3LDExOSwKKyAgICAxMDAsMTE1LDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwKKyAgICAwLDI0NCwyNSwwLDAsMCw5NSw5OSw5NywxMDgsMTA4LDk1LDExOSwxMDUsMTE2LDEwNCwKKyAgICA5NSwxMDIsMTE0LDk3LDEwOSwxMDEsMTE1LDk1LDExNCwxMDEsMTA5LDExMSwxMTgsMTAxLDEwMCwxOSwKKyAgICAxLDAsMCwxMTUsMiwwLDAsMCwwLDgsMTE0LDEwMSwwLDAsMCwxMDUsCisgICAgMjA4LDEyLDAsMCwyMzMsMiwwLDAsMCwxMTQsMTMsMCwwLDAsMTE1LDIsCisgICAgMCwwLDAsMTMsMTAsMTE2LDExLDAsMCwwLDk1LDk1LDExMiwxMjEsOTksOTcsCisgICAgOTksMTA0LDEwMSw5NSw5NSwxMTcsMywwLDAsMCw0NiwxMTIsMTIxLDExNyw0LDAsCisgICAgMCwwLDQ2LDExMiwxMjEsOTksMTE3LDQsMCwwLDAsNDYsMTEyLDEyMSwxMTEsNzgsCisgICAgOTksMiwwLDAsMCwwLDAsMCwwLDExLDAsMCwwLDYsMCwwLAorICAgIDAsNjcsMCwwLDAsMTE1LDE4MCwwLDAsMCwxMjQsMSwwLDEwMCwxLDAsCisgICAgMTA3LDgsMCwxMTQsMjUsMCwxMTYsMCwwLDEwNiwxLDAsMTA2LDIsMCwxMiwKKyAgICAxMTAsMywwLDEyNCwxLDAsMTI1LDIsMCwxMjQsMiwwLDExNCw0NiwwLDExNiwKKyAgICAzLDAsMTI1LDMsMCwxMTAsNiwwLDExNiw0LDAsMTI1LDMsMCwxMTYsNSwKKyAgICAwLDEyNCwwLDAsMTMxLDEsMCw5MiwyLDAsMTI1LDQsMCwxMjUsNSwwLAorICAgIDEyNCw1LDAsMTA2LDYsMCwxMDAsMiwwLDEzMSwxLDAsOTIsMywwLDEyNSwKKyAgICA2LDAsMTI1LDcsMCwxMjUsOCwwLDExNiwwLDAsMTA2LDcsMCwxMDYsOCwKKyAgICAwLDEyNSw5LDAsMTI0LDksMCwxMDAsMSwwLDEwNyw4LDAsMTE0LDEzMywwLAorICAgIDExNiw5LDAsMTAwLDMsMCwxMzEsMSwwLDEzMCwxLDAsMTEwLDAsMCwxMDAsCisgICAgNCwwLDEwNiwxMCwwLDEyNCw2LDAsMTI0LDcsMCwxMjQsOSwwLDEyNCwzLAorICAgIDAsMTAwLDUsMCwyNSwxMDMsNCwwLDEzMSwxLDAsMTI1LDEwLDAsMTE2LDExLAorICAgIDAsMTI0LDQsMCwxMTYsMTIsMCwxMjQsMTAsMCwxMzEsMywwLDgzLDQwLDYsCisgICAgMCwwLDAsMTE3LDI0NCwxLDAsMCw3MSwxMDUsMTE4LDEwMSwxMTAsMzIsMTE2LDEwNCwKKyAgICAxMDEsMzIsMTEyLDk3LDExNiwxMDQsMzIsMTE2LDExMSwzMiw5NywzMiw0NiwxMTIsMTIxLDMyLAorICAgIDEwMiwxMDUsMTA4LDEwMSw0NCwzMiwxMTQsMTAxLDExNiwxMTcsMTE0LDExMCwzMiwxMTYsMTA0LDEwMSwKKyAgICAzMiwxMTIsOTcsMTE2LDEwNCwzMiwxMTYsMTExLDMyLDEwNSwxMTYsMTE1LDMyLDQ2LDExMiwxMjEsCisgICAgOTksNDcsNDYsMTEyLDEyMSwxMTEsMzIsMTAyLDEwNSwxMDgsMTAxLDQ2LDEwLDEwLDMyLDMyLAorICAgIDMyLDMyLDg0LDEwNCwxMDEsMzIsNDYsMTEyLDEyMSwzMiwxMDIsMTA1LDEwOCwxMDEsMzIsMTAwLAorICAgIDExMSwxMDEsMTE1LDMyLDExMCwxMTEsMTE2LDMyLDExMCwxMDEsMTAxLDEwMCwzMiwxMTYsMTExLDMyLAorICAgIDEwMSwxMjAsMTA1LDExNSwxMTYsNTksMzIsMTE2LDEwNCwxMDUsMTE1LDMyLDExNSwxMDUsMTA5LDExMiwKKyAgICAxMDgsMTIxLDMyLDExNCwxMDEsMTE2LDExNywxMTQsMTEwLDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsCisgICAgOTcsMTE2LDEwNCwzMiwxMTYsMTExLDMyLDExNiwxMDQsMTAxLDEwLDMyLDMyLDMyLDMyLDQ2LAorICAgIDExMiwxMjEsOTksNDcsNDYsMTEyLDEyMSwxMTEsMzIsMTAyLDEwNSwxMDgsMTAxLDMyLDk5LDk3LAorICAgIDEwOCw5OSwxMTcsMTA4LDk3LDExNiwxMDEsMTAwLDMyLDk3LDExNSwzMiwxMDUsMTAyLDMyLDExNiwKKyAgICAxMDQsMTAxLDMyLDQ2LDExMiwxMjEsMzIsMTAyLDEwNSwxMDgsMTAxLDMyLDExOSwxMDEsMTE0LDEwMSwKKyAgICAzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTAwLDQ2LDMyLDMyLDg0LDEwNCwxMDEsMzIsCisgICAgMTAxLDEyMCwxMTYsMTAxLDExMCwxMTUsMTA1LDExMSwxMTAsMTAsMzIsMzIsMzIsMzIsMTE5LDEwNSwKKyAgICAxMDgsMTA4LDMyLDk4LDEwMSwzMiw0NiwxMTIsMTIxLDk5LDMyLDExNywxMTAsMTA4LDEwMSwxMTUsCisgICAgMTE1LDMyLDExNSwxMjEsMTE1LDQ2LDEwMiwxMDgsOTcsMTAzLDExNSw0NiwxMTEsMTEyLDExNiwxMDUsCisgICAgMTA5LDEwNSwxMjIsMTAxLDMyLDEwNSwxMTUsMzIsMTEwLDExMSwxMTAsNDUsMTIyLDEwMSwxMTQsMTExLAorICAgIDQ0LDMyLDExNiwxMDQsMTAxLDExMCwzMiwxMDUsMTE2LDMyLDExOSwxMDUsMTA4LDEwOCwzMiw5OCwKKyAgICAxMDEsMzIsNDYsMTEyLDEyMSwxMTEsNDYsMTAsMTAsMzIsMzIsMzIsMzIsNzMsMTAyLDMyLAorICAgIDEwMCwxMDEsOTgsMTE3LDEwMyw5NSwxMTEsMTE4LDEwMSwxMTQsMTE0LDEwNSwxMDAsMTAxLDMyLDEwNSwKKyAgICAxMTUsMzIsMTEwLDExMSwxMTYsMzIsNzgsMTExLDExMCwxMDEsNDQsMzIsMTE2LDEwNCwxMDEsMTEwLAorICAgIDMyLDEwNSwxMTYsMzIsMTA5LDExNywxMTUsMTE2LDMyLDk4LDEwMSwzMiw5NywzMiw5OCwxMTEsCisgICAgMTExLDEwOCwxMDEsOTcsMTEwLDMyLDk3LDExMCwxMDAsMzIsMTA1LDExNSwzMiwxMTcsMTE1LDEwMSwKKyAgICAxMDAsMzIsMTA1LDExMCwxMCwzMiwzMiwzMiwzMiwxMTIsMTA4LDk3LDk5LDEwMSwzMiwxMTEsCisgICAgMTAyLDMyLDExNSwxMjEsMTE1LDQ2LDEwMiwxMDgsOTcsMTAzLDExNSw0NiwxMTEsMTEyLDExNiwxMDUsCisgICAgMTA5LDEwNSwxMjIsMTAxLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDczLDEwMiwzMiwxMTUsMTIxLAorICAgIDExNSw0NiwxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiw5NywxMTYsMTA1LDExMSwxMTAsCisgICAgNDYsOTksOTcsOTksMTA0LDEwMSw5NSwxMTYsOTcsMTAzLDMyLDEwNSwxMTUsMzIsNzgsMTExLAorICAgIDExMCwxMDEsMzIsMTE2LDEwNCwxMDEsMTEwLDMyLDc4LDExMSwxMTYsNzMsMTA5LDExMiwxMDgsMTAxLAorICAgIDEwOSwxMDEsMTEwLDExNiwxMDEsMTAwLDY5LDExNCwxMTQsMTExLDExNCwzMiwxMDUsMTE1LDMyLDExNCwKKyAgICA5NywxMDUsMTE1LDEwMSwxMDAsNDYsMTAsMTAsMzIsMzIsMzIsMzIsNzgsMjQ0LDEsMCwKKyAgICAwLDAsNDYsMTE3LDM2LDAsMCwwLDExNSwxMjEsMTE1LDQ2LDEwNSwxMDksMTEyLDEwOCwKKyAgICAxMDEsMTA5LDEwMSwxMTAsMTE2LDk3LDExNiwxMDUsMTExLDExMCw0Niw5OSw5Nyw5OSwxMDQsMTAxLAorICAgIDk1LDExNiw5NywxMDMsMzIsMTA1LDExNSwzMiw3OCwxMTEsMTEwLDEwMSwxMTQsMzAsMCwwLAorICAgIDAsMTE0LDcwLDAsMCwwLDQwLDEzLDAsMCwwLDExNCw3LDAsMCwwLAorICAgIDI0NCw1LDAsMCwwLDEwMiwxMDgsOTcsMTAzLDExNSwyNDQsOCwwLDAsMCwxMTEsCisgICAgMTEyLDExNiwxMDUsMTA5LDEwNSwxMjIsMTAxLDI0NCwyMywwLDAsMCw2OCw2OSw2Niw4NSwKKyAgICA3MSw5NSw2Niw4OSw4NCw2OSw2Nyw3OSw2OCw2OSw5NSw4Myw4NSw3MCw3MCw3MywKKyAgICA4OCw2OSw4MywyNDQsMjcsMCwwLDAsNzksODAsODQsNzMsNzcsNzMsOTAsNjksCisgICAgNjgsOTUsNjYsODksODQsNjksNjcsNzksNjgsNjksOTUsODMsODUsNzAsNzAsNzMsCisgICAgODgsNjksODMsMTE0LDM4LDAsMCwwLDI0NCw5LDAsMCwwLDExMiw5NywxMTQsCisgICAgMTE2LDEwNSwxMTYsMTA1LDExMSwxMTAsMjQ0LDE0LDAsMCwwLDEwNSwxMDksMTEyLDEwOCwxMDEsCisgICAgMTA5LDEwMSwxMTAsMTE2LDk3LDExNiwxMDUsMTExLDExMCwyNDQsOSwwLDAsMCw5OSw5NywKKyAgICA5OSwxMDQsMTAxLDk1LDExNiw5NywxMDMsMjQ0LDE5LDAsMCwwLDc4LDExMSwxMTYsNzMsCisgICAgMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiwxMDEsMTAwLDY5LDExNCwxMTQsMTExLDExNCwxMTQsCisgICAgMjYsMCwwLDAsMTE0LDI4LDAsMCwwLDI0NCw4LDAsMCwwLDk1LDgwLAorICAgIDg5LDY3LDY1LDY3LDcyLDY5LDQwLDExLDAsMCwwLDExNCwzNSwwLDAsMCwKKyAgICAxMTYsMTQsMCwwLDAsMTAwLDEwMSw5OCwxMTcsMTAzLDk1LDExMSwxMTgsMTAxLDExNCwxMTQsCisgICAgMTA1LDEwMCwxMDEsMjQ0LDUsMCwwLDAsMTAwLDEwMSw5OCwxMTcsMTAzLDI0NCw4LDAsCisgICAgMCwwLDExNSwxMTcsMTAyLDEwMiwxMDUsMTIwLDEwMSwxMTUsMjQ0LDQsMCwwLDAsMTA0LAorICAgIDEwMSw5NywxMDAsMTE0LDM3LDAsMCwwLDI0NCwxMywwLDAsMCw5OCw5NywxMTUsCisgICAgMTAxLDk1LDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsMTA5LDEwMSwyNDQsMywwLDAsMCwxMTUsCisgICAgMTAxLDExMiwxMTQsMzYsMCwwLDAsMTE2LDMsMCwwLDAsMTE2LDk3LDEwMywyNDQsCisgICAgOCwwLDAsMCwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsMTE0LDQsMCwwLAorICAgIDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMjQ0LDE3LDAsMCwwLAorICAgIDk5LDk3LDk5LDEwNCwxMDEsOTUsMTAyLDExNCwxMTEsMTA5LDk1LDExNSwxMTEsMTE3LDExNCw5OSwKKyAgICAxMDEsMTQwLDEsMCwwLDExNSwyMiwwLDAsMCwwLDEzLDMxLDEsNiwxLAorICAgIDksMiw2LDEsMTgsMSwyNCwxLDEyLDEsMTIsMSwxNSwxLDMxLDEsCisgICAgMTE0LDExOSwwLDAsMCw5OSwxLDAsMCwwLDAsMCwwLDAsNSwwLAorICAgIDAsMCw1LDAsMCwwLDY3LDAsMCwwLDExNSwxOTMsMCwwLDAsMTE2LAorICAgIDAsMCwxMDYsMSwwLDEwNiwyLDAsMTAwLDEsMCwxMDcsOCwwLDExNCwzMywKKyAgICAwLDExNiwzLDAsMTAwLDIsMCwxMzEsMSwwLDEzMCwxLDAsMTEwLDAsMCwKKyAgICAxMTYsNCwwLDEyNCwwLDAsMTMxLDEsMCw5MiwyLDAsMTI1LDEsMCwxMjUsCisgICAgMiwwLDExNiw0LDAsMTI0LDEsMCwxMzEsMSwwLDkyLDIsMCwxMjUsMSwKKyAgICAwLDEyNSwzLDAsMTI0LDMsMCwxMTYsNSwwLDEwNywzLDAsMTE0LDEwOCwwLAorICAgIDExNiw2LDAsMTAwLDMsMCwxMDYsNywwLDExNiw1LDAsMTI0LDAsMCwxMzEsCisgICAgMiwwLDEzMSwxLDAsMTMwLDEsMCwxMTAsMCwwLDEyNCwyLDAsMTA2LDgsCisgICAgMCwxMDAsNCwwLDEzMSwxLDAsMTAwLDUsMCwxMDcsMywwLDExNCwxNTMsMCwKKyAgICAxMTYsNiwwLDEwMCw2LDAsMTA2LDcsMCwxMjQsMiwwLDEzMSwxLDAsMTMxLAorICAgIDEsMCwxMzAsMSwwLDExMCwwLDAsMTI0LDIsMCwxMDYsOSwwLDEwMCw0LAorICAgIDAsMTMxLDEsMCwxMDAsNywwLDI1LDEyNSw0LDAsMTE2LDEwLDAsMTI0LDEsCisgICAgMCwxMjQsNCwwLDExNiwxMSwwLDEwMCw3LDAsMjUsMjMsMTMxLDIsMCw4MywKKyAgICA0MCw4LDAsMCwwLDExNywxMjEsMSwwLDAsNzEsMTA1LDExOCwxMDEsMTEwLDMyLAorICAgIDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLDExNiwxMTEsMzIsOTcsMzIsNDYsMTEyLAorICAgIDEyMSw5OSw0Niw0Nyw0NiwxMTIsMTIxLDExMSwzMiwxMDIsMTA1LDEwOCwxMDEsNDQsMzIsMTE0LAogICAgIDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsMTE2LDEwNCwxMDEsMzIsMTEyLDk3LDExNiwxMDQsMzIsMTE2LAotICAgIDExMSwzMiwxMDUsMTE2LDExNSwzMiw0NiwxMTIsMTIxLDk5LDQ3LDQ2LDExMiwxMjEsMTExLDMyLAotICAgIDEwMiwxMDUsMTA4LDEwMSw0NiwxMCwxMCwzMiwzMiwzMiwzMiw4NCwxMDQsMTAxLDMyLDQ2LAotICAgIDExMiwxMjEsMzIsMTAyLDEwNSwxMDgsMTAxLDMyLDEwMCwxMTEsMTAxLDExNSwzMiwxMTAsMTExLDExNiwKKyAgICAxMTEsMzIsMTA1LDExNiwxMTUsMzIsNDYsMTEyLDEyMSwzMiwxMDIsMTA1LDEwOCwxMDEsNDYsMTAsCisgICAgMTAsMzIsMzIsMzIsMzIsODQsMTA0LDEwMSwzMiw0NiwxMTIsMTIxLDk5LDQ3LDQ2LDExMiwKKyAgICAxMjEsMTExLDMyLDEwMiwxMDUsMTA4LDEwMSwzMiwxMDAsMTExLDEwMSwxMTUsMzIsMTEwLDExMSwxMTYsCiAgICAgMzIsMTEwLDEwMSwxMDEsMTAwLDMyLDExNiwxMTEsMzIsMTAxLDEyMCwxMDUsMTE1LDExNiw1OSwzMiwKICAgICAxMTYsMTA0LDEwNSwxMTUsMzIsMTE1LDEwNSwxMDksMTEyLDEwOCwxMjEsMzIsMTE0LDEwMSwxMTYsMTE3LAotICAgIDExNCwxMTAsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLDExNiwxMTEsMzIsCi0gICAgMTE2LDEwNCwxMDEsMTAsMzIsMzIsMzIsMzIsNDYsMTEyLDEyMSw5OSw0Nyw0NiwxMTIsMTIxLAotICAgIDExMSwzMiwxMDIsMTA1LDEwOCwxMDEsMzIsOTksOTcsMTA4LDk5LDExNywxMDgsOTcsMTE2LDEwMSwKLSAgICAxMDAsMzIsOTcsMTE1LDMyLDEwNSwxMDIsMzIsMTE2LDEwNCwxMDEsMzIsNDYsMTEyLDEyMSwzMiwKLSAgICAxMDIsMTA1LDEwOCwxMDEsMzIsMTE5LDEwMSwxMTQsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LAotICAgIDEwMSwxMDAsNDYsMzIsMzIsODQsMTA0LDEwMSwzMiwxMDEsMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsCi0gICAgMTExLDExMCwxMCwzMiwzMiwzMiwzMiwxMTksMTA1LDEwOCwxMDgsMzIsOTgsMTAxLDMyLDQ2LAotICAgIDExMiwxMjEsOTksMzIsMTE3LDExMCwxMDgsMTAxLDExNSwxMTUsMzIsMTE1LDEyMSwxMTUsNDYsMTAyLAotICAgIDEwOCw5NywxMDMsMTE1LDQ2LDExMSwxMTIsMTE2LDEwNSwxMDksMTA1LDEyMiwxMDEsMzIsMTA1LDExNSwKLSAgICAzMiwxMTAsMTExLDExMCw0NSwxMjIsMTAxLDExNCwxMTEsNDQsMzIsMTE2LDEwNCwxMDEsMTEwLDMyLAotICAgIDEwNSwxMTYsMzIsMTE5LDEwNSwxMDgsMTA4LDMyLDk4LDEwMSwzMiw0NiwxMTIsMTIxLDExMSw0NiwKLSAgICAxMCwxMCwzMiwzMiwzMiwzMiw3MywxMDIsMzIsMTAwLDEwMSw5OCwxMTcsMTAzLDk1LDExMSwKLSAgICAxMTgsMTAxLDExNCwxMTQsMTA1LDEwMCwxMDEsMzIsMTA1LDExNSwzMiwxMTAsMTExLDExNiwzMiw3OCwKLSAgICAxMTEsMTEwLDEwMSw0NCwzMiwxMTYsMTA0LDEwMSwxMTAsMzIsMTA1LDExNiwzMiwxMDksMTE3LDExNSwKLSAgICAxMTYsMzIsOTgsMTAxLDMyLDk3LDMyLDk4LDExMSwxMTEsMTA4LDEwMSw5NywxMTAsMzIsOTcsCi0gICAgMTEwLDEwMCwzMiwxMDUsMTE1LDMyLDExNywxMTUsMTAxLDEwMCwzMiwxMDUsMTEwLDEwLDMyLDMyLAotICAgIDMyLDMyLDExMiwxMDgsOTcsOTksMTAxLDMyLDExMSwxMDIsMzIsMTE1LDEyMSwxMTUsNDYsMTAyLAotICAgIDEwOCw5NywxMDMsMTE1LDQ2LDExMSwxMTIsMTE2LDEwNSwxMDksMTA1LDEyMiwxMDEsNDYsMTAsMTAsCi0gICAgMzIsMzIsMzIsMzIsNzMsMTAyLDMyLDExNSwxMjEsMTE1LDQ2LDEwNSwxMDksMTEyLDEwOCwxMDEsCi0gICAgMTA5LDEwMSwxMTAsMTE2LDk3LDExNiwxMDUsMTExLDExMCw0Niw5OSw5Nyw5OSwxMDQsMTAxLDk1LAotICAgIDExNiw5NywxMDMsMzIsMTA1LDExNSwzMiw3OCwxMTEsMTEwLDEwMSwzMiwxMTYsMTA0LDEwMSwxMTAsCi0gICAgMzIsNzgsMTExLDExNiw3MywxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDEwMSwxMDAsNjksCi0gICAgMTE0LDExNCwxMTEsMTE0LDMyLDEwNSwxMTUsMzIsMTE0LDk3LDEwNSwxMTUsMTAxLDEwMCw0NiwxMCwKLSAgICAxMCwzMiwzMiwzMiwzMiwxMTcsMSwwLDAsMCw0NiwxMTcsMzYsMCwwLDAsCi0gICAgMTE1LDEyMSwxMTUsNDYsMTA1LDEwOSwxMTIsMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsOTcsMTE2LDEwNSwKLSAgICAxMTEsMTEwLDQ2LDk5LDk3LDk5LDEwNCwxMDEsOTUsMTE2LDk3LDEwMywzMiwxMDUsMTE1LDMyLAotICAgIDc4LDExMSwxMTAsMTAxLDExNywwLDAsMCwwLDEwNSwwLDAsMCwwLDc4LDQwLAotICAgIDE0LDAsMCwwLDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNywzLDAsCi0gICAgMCwwLDExNSwxMjEsMTE1LDExNyw1LDAsMCwwLDEwMiwxMDgsOTcsMTAzLDExNSwxMTcsCi0gICAgOCwwLDAsMCwxMTEsMTEyLDExNiwxMDUsMTA5LDEwNSwxMjIsMTAxLDExNywyMywwLDAsCi0gICAgMCw2OCw2OSw2Niw4NSw3MSw5NSw2Niw4OSw4NCw2OSw2Nyw3OSw2OCw2OSw5NSwKLSAgICA4Myw4NSw3MCw3MCw3Myw4OCw2OSw4MywxMTcsMjcsMCwwLDAsNzksODAsODQsCi0gICAgNzMsNzcsNzMsOTAsNjksNjgsOTUsNjYsODksODQsNjksNjcsNzksNjgsNjksOTUsCi0gICAgODMsODUsNzAsNzAsNzMsODgsNjksODMsMTE3LDExLDAsMCwwLDk1LDExMiw5NywKLSAgICAxMTYsMTA0LDk1LDExNSwxMTIsMTA4LDEwNSwxMTYsMTE3LDksMCwwLDAsMTEyLDk3LDExNCwKLSAgICAxMTYsMTA1LDExNiwxMDUsMTExLDExMCwxMTcsMTQsMCwwLDAsMTA1LDEwOSwxMTIsMTA4LDEwMSwKLSAgICAxMDksMTAxLDExMCwxMTYsOTcsMTE2LDEwNSwxMTEsMTEwLDExNyw5LDAsMCwwLDk5LDk3LAotICAgIDk5LDEwNCwxMDEsOTUsMTE2LDk3LDEwMywxMTcsMTksMCwwLDAsNzgsMTExLDExNiw3MywKLSAgICAxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDEwMSwxMDAsNjksMTE0LDExNCwxMTEsMTE0LDExNywKLSAgICA0LDAsMCwwLDEwNiwxMTEsMTA1LDExMCwxMTcsMTAsMCwwLDAsOTUsMTEyLDk3LAotICAgIDExNiwxMDQsOTUsMTA2LDExMSwxMDUsMTEwLDExNyw4LDAsMCwwLDk1LDgwLDg5LDY3LAotICAgIDY1LDY3LDcyLDY5LDQwLDExLDAsMCwwLDExNyw0LDAsMCwwLDExMiw5NywKLSAgICAxMTYsMTA0LDExNywxNCwwLDAsMCwxMDAsMTAxLDk4LDExNywxMDMsOTUsMTExLDExOCwxMDEsCi0gICAgMTE0LDExNCwxMDUsMTAwLDEwMSwxMTcsNSwwLDAsMCwxMDAsMTAxLDk4LDExNywxMDMsMTE3LAotICAgIDgsMCwwLDAsMTE1LDExNywxMDIsMTAyLDEwNSwxMjAsMTAxLDExNSwxMTcsNCwwLDAsCi0gICAgMCwxMDQsMTAxLDk3LDEwMCwxMTcsNCwwLDAsMCwxMTYsOTcsMTA1LDEwOCwxMTcsMTMsCi0gICAgMCwwLDAsOTgsOTcsMTE1LDEwMSw5NSwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsCi0gICAgMTE3LDMsMCwwLDAsMTE1LDEwMSwxMTIsMTE3LDEsMCwwLDAsOTUsMTE3LDMsCi0gICAgMCwwLDAsMTE2LDk3LDEwMywxMTcsOCwwLDAsMCwxMDIsMTA1LDEwOCwxMDEsMTEwLAotICAgIDk3LDEwOSwxMDEsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLAotICAgIDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwKLSAgICAxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsCi0gICAgMTcsMCwwLDAsOTksOTcsOTksMTA0LDEwMSw5NSwxMDIsMTE0LDExMSwxMDksOTUsMTE1LAotICAgIDExMSwxMTcsMTE0LDk5LDEwMSwxNTksMSwwLDAsMTE1LDIyLDAsMCwwLDAsMTMsCi0gICAgMzEsMSw2LDEsOSwyLDYsMSwxOCwxLDI0LDEsMTIsMSwxMiwxLAotICAgIDE1LDEsMzEsMSwxMTcsMTcsMCwwLDAsOTksOTcsOTksMTA0LDEwMSw5NSwxMDIsCi0gICAgMTE0LDExMSwxMDksOTUsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSw5OSwxLDAsMCwwLDAsCi0gICAgMCwwLDAsNSwwLDAsMCw1LDAsMCwwLDY3LDAsMCwwLDExNSwKLSAgICAxOTMsMCwwLDAsMTE2LDAsMCwxMDYsMSwwLDEwNiwyLDAsMTAwLDcsMCwKLSAgICAxMDcsOCwwLDExNCwzMywwLDExNiw0LDAsMTAwLDEsMCwxMzEsMSwwLDEzMCwKLSAgICAxLDAsMTEwLDAsMCwxMTYsNSwwLDEyNCwwLDAsMTMxLDEsMCw5MiwyLAotICAgIDAsMTI1LDEsMCwxMjUsMiwwLDExNiw1LDAsMTI0LDEsMCwxMzEsMSwwLAotICAgIDkyLDIsMCwxMjUsMSwwLDEyNSwzLDAsMTI0LDMsMCwxMTYsNiwwLDEwNywKLSAgICAzLDAsMTE0LDEwOCwwLDExNiw3LDAsMTAwLDIsMCwxMDYsOCwwLDExNiw2LAotICAgIDAsMTI0LDAsMCwxMzEsMiwwLDEzMSwxLDAsMTMwLDEsMCwxMTAsMCwwLAotICAgIDEyNCwyLDAsMTA2LDksMCwxMDAsMywwLDEzMSwxLDAsMTAwLDQsMCwxMDcsCi0gICAgMywwLDExNCwxNTMsMCwxMTYsNywwLDEwMCw1LDAsMTA2LDgsMCwxMjQsMiwKLSAgICAwLDEzMSwxLDAsMTMxLDEsMCwxMzAsMSwwLDExMCwwLDAsMTI0LDIsMCwKLSAgICAxMDYsMTAsMCwxMDAsMywwLDEzMSwxLDAsMTAwLDYsMCwyNSwxMjUsNCwwLAotICAgIDExNiwxMSwwLDEyNCwxLDAsMTI0LDQsMCwxMTYsMTIsMCwxMDAsNiwwLDI1LAotICAgIDIzLDEzMSwyLDAsODMsNDAsOCwwLDAsMCwxMTcsMTIxLDEsMCwwLDcxLAotICAgIDEwNSwxMTgsMTAxLDExMCwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsOTcsMTE2LDEwNCwzMiwxMTYsMTExLAotICAgIDMyLDk3LDMyLDQ2LDExMiwxMjEsOTksNDYsNDcsNDYsMTEyLDEyMSwxMTEsMzIsMTAyLDEwNSwKLSAgICAxMDgsMTAxLDQ0LDMyLDExNCwxMDEsMTE2LDExNywxMTQsMTEwLDMyLDExNiwxMDQsMTAxLDMyLDExMiwKLSAgICA5NywxMTYsMTA0LDMyLDExNiwxMTEsMzIsMTA1LDExNiwxMTUsMzIsNDYsMTEyLDEyMSwzMiwxMDIsCi0gICAgMTA1LDEwOCwxMDEsNDYsMTAsMTAsMzIsMzIsMzIsMzIsODQsMTA0LDEwMSwzMiw0NiwxMTIsCi0gICAgMTIxLDk5LDQ3LDQ2LDExMiwxMjEsMTExLDMyLDEwMiwxMDUsMTA4LDEwMSwzMiwxMDAsMTExLDEwMSwKLSAgICAxMTUsMzIsMTEwLDExMSwxMTYsMzIsMTEwLDEwMSwxMDEsMTAwLDMyLDExNiwxMTEsMzIsMTAxLDEyMCwKLSAgICAxMDUsMTE1LDExNiw1OSwzMiwxMTYsMTA0LDEwNSwxMTUsMzIsMTE1LDEwNSwxMDksMTEyLDEwOCwxMjEsCi0gICAgMzIsMTE0LDEwMSwxMTYsMTE3LDExNCwxMTAsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsCi0gICAgMTA0LDMyLDExNiwxMTEsMTAsMzIsMzIsMzIsMzIsMTE2LDEwNCwxMDEsMzIsNDYsMTEyLDEyMSwKLSAgICAzMiwxMDIsMTA1LDEwOCwxMDEsMzIsOTksOTcsMTA4LDk5LDExNywxMDgsOTcsMTE2LDEwMSwxMDAsCi0gICAgMzIsMTE2LDExMSwzMiw5OSwxMTEsMTE0LDExNCwxMDEsMTE1LDExMiwxMTEsMTEwLDEwMCwzMiwxMTYsCi0gICAgMTExLDMyLDExNiwxMDQsMTAxLDMyLDQ2LDExMiwxMjEsOTksNDcsNDYsMTEyLDEyMSwxMTEsMzIsCi0gICAgMTAyLDEwNSwxMDgsMTAxLDQ2LDMyLDMyLDczLDEwMiwzMiwxMTIsOTcsMTE2LDEwNCwzMiwxMDAsCi0gICAgMTExLDEwMSwxMTUsMTAsMzIsMzIsMzIsMzIsMTEwLDExMSwxMTYsMzIsOTksMTExLDExMCwxMDIsCi0gICAgMTExLDExNCwxMDksMzIsMTE2LDExMSwzMiw4MCw2OSw4MCwzMiw1MSw0OSw1Miw1NSwzMiwKLSAgICAxMDIsMTExLDExNCwxMDksOTcsMTE2LDQ0LDMyLDg2LDk3LDEwOCwxMTcsMTAxLDY5LDExNCwxMTQsCi0gICAgMTExLDExNCwzMiwxMTksMTA1LDEwOCwxMDgsMzIsOTgsMTAxLDMyLDExNCw5NywxMDUsMTE1LDEwMSwKLSAgICAxMDAsNDYsMzIsNzMsMTAyLDEwLDMyLDMyLDMyLDMyLDExNSwxMjEsMTE1LDQ2LDEwNSwxMDksCi0gICAgMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDk3LDExNiwxMDUsMTExLDExMCw0Niw5OSw5Nyw5OSwKLSAgICAxMDQsMTAxLDk1LDExNiw5NywxMDMsMzIsMTA1LDExNSwzMiw3OCwxMTEsMTEwLDEwMSwzMiwxMTYsCi0gICAgMTA0LDEwMSwxMTAsMzIsNzgsMTExLDExNiw3MywxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LAotICAgIDEwMSwxMDAsNjksMTE0LDExNCwxMTEsMTE0LDMyLDEwNSwxMTUsMzIsMTE0LDk3LDEwNSwxMTUsMTAxLAotICAgIDEwMCw0NiwxMCwxMCwzMiwzMiwzMiwzMiwxMTcsMzYsMCwwLDAsMTE1LDEyMSwxMTUsCi0gICAgNDYsMTA1LDEwOSwxMTIsMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsOTcsMTE2LDEwNSwxMTEsMTEwLDQ2LAotICAgIDk5LDk3LDk5LDEwNCwxMDEsOTUsMTE2LDk3LDEwMywzMiwxMDUsMTE1LDMyLDc4LDExMSwxMTAsCi0gICAgMTAxLDExNywzNywwLDAsMCwxMjMsMTI1LDMyLDExMCwxMTEsMTE2LDMyLDk4LDExMSwxMTYsCi0gICAgMTE2LDExMSwxMDksNDUsMTA4LDEwMSwxMTgsMTAxLDEwOCwzMiwxMDAsMTA1LDExNCwxMDEsOTksMTE2LAotICAgIDExMSwxMTQsMTIxLDMyLDEwNSwxMTAsMzIsMTIzLDMzLDExNCwxMjUsMTE3LDEsMCwwLDAsCi0gICAgNDYsMTA1LDIsMCwwLDAsMTE3LDI4LDAsMCwwLDEwMSwxMjAsMTEyLDEwMSw5OSwKLSAgICAxMTYsMTAxLDEwMCwzMiwxMTEsMTEwLDEwOCwxMjEsMzIsNTAsMzIsMTAwLDExMSwxMTYsMTE1LDMyLAotICAgIDEwNSwxMTAsMzIsMTIzLDMzLDExNCwxMjUsMTA1LDAsMCwwLDAsNzgsNDAsMTMsMCwKLSAgICAwLDAsMTE3LDMsMCwwLDAsMTE1LDEyMSwxMTUsMTE3LDE0LDAsMCwwLDEwNSwKLSAgICAxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDk3LDExNiwxMDUsMTExLDExMCwxMTcsOSwwLAotICAgIDAsMCw5OSw5Nyw5OSwxMDQsMTAxLDk1LDExNiw5NywxMDMsMTE3LDQsMCwwLDAsCi0gICAgNzgsMTExLDExMCwxMDEsMTE3LDE5LDAsMCwwLDc4LDExMSwxMTYsNzMsMTA5LDExMiwxMDgsCi0gICAgMTAxLDEwOSwxMDEsMTEwLDExNiwxMDEsMTAwLDY5LDExNCwxMTQsMTExLDExNCwxMTcsMTEsMCwwLAotICAgIDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTE1LDExMiwxMDgsMTA1LDExNiwxMTcsOCwwLDAsCi0gICAgMCw5NSw4MCw4OSw2Nyw2NSw2Nyw3Miw2OSwxMTcsMTAsMCwwLDAsODYsOTcsCi0gICAgMTA4LDExNywxMDEsNjksMTE0LDExNCwxMTEsMTE0LDExNyw2LDAsMCwwLDEwMiwxMTEsMTE0LAotICAgIDEwOSw5NywxMTYsMTE3LDUsMCwwLDAsOTksMTExLDExNywxMTAsMTE2LDExNyw5LDAsCi0gICAgMCwwLDExMiw5NywxMTQsMTE2LDEwNSwxMTYsMTA1LDExMSwxMTAsMTE3LDEwLDAsMCwwLAotICAgIDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNiwxMTEsMTA1LDExMCwxMTcsMTUsMCwwLDAsODMsCi0gICAgNzksODUsODIsNjcsNjksOTUsODMsODUsNzAsNzAsNzMsODgsNjksODMsNDAsNSwKLSAgICAwLDAsMCwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwxMTcsNCwwLDAsCi0gICAgMCwxMDQsMTAxLDk3LDEwMCwxMTcsMTYsMCwwLDAsMTEyLDEyMSw5OSw5Nyw5OSwxMDQsCi0gICAgMTAxLDk1LDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsMTA5LDEwMSwxMTcsNywwLDAsMCwxMTIsCi0gICAgMTIxLDk5LDk3LDk5LDEwNCwxMDEsMTE3LDEzLDAsMCwwLDk4LDk3LDExNSwxMDEsOTUsCi0gICAgMTAyLDEwNSwxMDgsMTAxLDExMCw5NywxMDksMTAxLDQwLDAsMCwwLDAsNDAsMCwwLAotICAgIDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LAotICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LAotICAgIDExNCw5NywxMTIsNjIsMTE3LDE3LDAsMCwwLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsOTUsCi0gICAgMTAyLDExNCwxMTEsMTA5LDk1LDk5LDk3LDk5LDEwNCwxMDEsMTg2LDEsMCwwLDExNSwyNCwKLSAgICAwLDAsMCwwLDksMTgsMSwxNSwxLDE4LDEsMTgsMSwxMiwxLDksCi0gICAgMSwxOCwxLDIxLDEsOSwxLDE1LDEsMTksMSwxMTcsMTcsMCwwLDAsCi0gICAgMTE1LDExMSwxMTcsMTE0LDk5LDEwMSw5NSwxMDIsMTE0LDExMSwxMDksOTUsOTksOTcsOTksMTA0LAotICAgIDEwMSw5OSwxLDAsMCwwLDAsMCwwLDAsNSwwLDAsMCwxMywwLAorICAgIDExNCwxMTAsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLDExNiwxMTEsMTAsCisgICAgMzIsMzIsMzIsMzIsMTE2LDEwNCwxMDEsMzIsNDYsMTEyLDEyMSwzMiwxMDIsMTA1LDEwOCwxMDEsCisgICAgMzIsOTksOTcsMTA4LDk5LDExNywxMDgsOTcsMTE2LDEwMSwxMDAsMzIsMTE2LDExMSwzMiw5OSwKKyAgICAxMTEsMTE0LDExNCwxMDEsMTE1LDExMiwxMTEsMTEwLDEwMCwzMiwxMTYsMTExLDMyLDExNiwxMDQsMTAxLAorICAgIDMyLDQ2LDExMiwxMjEsOTksNDcsNDYsMTEyLDEyMSwxMTEsMzIsMTAyLDEwNSwxMDgsMTAxLDQ2LAorICAgIDMyLDMyLDczLDEwMiwzMiwxMTIsOTcsMTE2LDEwNCwzMiwxMDAsMTExLDEwMSwxMTUsMTAsMzIsCisgICAgMzIsMzIsMzIsMTEwLDExMSwxMTYsMzIsOTksMTExLDExMCwxMDIsMTExLDExNCwxMDksMzIsMTE2LAorICAgIDExMSwzMiw4MCw2OSw4MCwzMiw1MSw0OSw1Miw1NSwzMiwxMDIsMTExLDExNCwxMDksOTcsCisgICAgMTE2LDQ0LDMyLDg2LDk3LDEwOCwxMTcsMTAxLDY5LDExNCwxMTQsMTExLDExNCwzMiwxMTksMTA1LAorICAgIDEwOCwxMDgsMzIsOTgsMTAxLDMyLDExNCw5NywxMDUsMTE1LDEwMSwxMDAsNDYsMzIsNzMsMTAyLAorICAgIDEwLDMyLDMyLDMyLDMyLDExNSwxMjEsMTE1LDQ2LDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwKKyAgICAxMTAsMTE2LDk3LDExNiwxMDUsMTExLDExMCw0Niw5OSw5Nyw5OSwxMDQsMTAxLDk1LDExNiw5NywKKyAgICAxMDMsMzIsMTA1LDExNSwzMiw3OCwxMTEsMTEwLDEwMSwzMiwxMTYsMTA0LDEwMSwxMTAsMzIsNzgsCisgICAgMTExLDExNiw3MywxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDEwMSwxMDAsNjksMTE0LDExNCwKKyAgICAxMTEsMTE0LDMyLDEwNSwxMTUsMzIsMTE0LDk3LDEwNSwxMTUsMTAxLDEwMCw0NiwxMCwxMCwzMiwKKyAgICAzMiwzMiwzMiw3OCwxMTcsMzYsMCwwLDAsMTE1LDEyMSwxMTUsNDYsMTA1LDEwOSwxMTIsCisgICAgMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsOTcsMTE2LDEwNSwxMTEsMTEwLDQ2LDk5LDk3LDk5LDEwNCwKKyAgICAxMDEsOTUsMTE2LDk3LDEwMywzMiwxMDUsMTE1LDMyLDc4LDExMSwxMTAsMTAxLDExNywzNywwLAorICAgIDAsMCwxMjMsMTI1LDMyLDExMCwxMTEsMTE2LDMyLDk4LDExMSwxMTYsMTE2LDExMSwxMDksNDUsCisgICAgMTA4LDEwMSwxMTgsMTAxLDEwOCwzMiwxMDAsMTA1LDExNCwxMDEsOTksMTE2LDExMSwxMTQsMTIxLDMyLAorICAgIDEwNSwxMTAsMzIsMTIzLDMzLDExNCwxMjUsMTE0LDEwMywwLDAsMCwxMTQsMTAyLDAsMCwKKyAgICAwLDExNywyOCwwLDAsMCwxMDEsMTIwLDExMiwxMDEsOTksMTE2LDEwMSwxMDAsMzIsMTExLAorICAgIDExMCwxMDgsMTIxLDMyLDUwLDMyLDEwMCwxMTEsMTE2LDExNSwzMiwxMDUsMTEwLDMyLDEyMywzMywKKyAgICAxMTQsMTI1LDExNCw3MCwwLDAsMCw0MCwxMiwwLDAsMCwxMTQsNywwLDAsCisgICAgMCwxMTQsMTA5LDAsMCwwLDExNCwxMTAsMCwwLDAsMTE0LDExMSwwLDAsMCwKKyAgICAxMTQsMzgsMCwwLDAsMTE0LDExMiwwLDAsMCwyNDQsMTAsMCwwLDAsODYsCisgICAgOTcsMTA4LDExNywxMDEsNjksMTE0LDExNCwxMTEsMTE0LDExNCw0NiwwLDAsMCwxMTQsNzUsCisgICAgMCwwLDAsMTE0LDEwOCwwLDAsMCwxMTQsMjgsMCwwLDAsMjQ0LDE1LDAsCisgICAgMCwwLDgzLDc5LDg1LDgyLDY3LDY5LDk1LDgzLDg1LDcwLDcwLDczLDg4LDY5LAorICAgIDgzLDQwLDUsMCwwLDAsMTE0LDM1LDAsMCwwLDExNCwxMTUsMCwwLDAsCisgICAgMTE2LDE2LDAsMCwwLDExMiwxMjEsOTksOTcsOTksMTA0LDEwMSw5NSwxMDIsMTA1LDEwOCwKKyAgICAxMDEsMTEwLDk3LDEwOSwxMDEsMTE2LDcsMCwwLDAsMTEyLDEyMSw5OSw5Nyw5OSwxMDQsCisgICAgMTAxLDExNCwxMTYsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsCisgICAgMTE0LDUsMCwwLDAsMjQ0LDE3LDAsMCwwLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsCisgICAgOTUsMTAyLDExNCwxMTEsMTA5LDk1LDk5LDk3LDk5LDEwNCwxMDEsMTY3LDEsMCwwLDExNSwKKyAgICAyNCwwLDAsMCwwLDksMTgsMSwxNSwxLDE4LDEsMTgsMSwxMiwxLAorICAgIDMsMSwyNCwxLDIxLDEsMywxLDIxLDEsMTksMSwxMTQsMTIyLDAsMCwKKyAgICAwLDk5LDEsMCwwLDAsMCwwLDAsMCw1LDAsMCwwLDEzLDAsCiAgICAgMCwwLDY3LDAsMCwwLDExNSwxNjQsMCwwLDAsMTE2LDAsMCwxMjQsMCwKLSAgICAwLDEzMSwxLDAsMTAwLDEsMCwxMDcsMiwwLDExNCwyMiwwLDEwMCw2LDAsCi0gICAgODMsMTI0LDAsMCwxMDYsMiwwLDEwMCwyLDAsMTMxLDEsMCw5MiwzLDAsCisgICAgMCwxMzEsMSwwLDEwMCwxLDAsMTA3LDIsMCwxMTQsMjIsMCwxMDAsMiwwLAorICAgIDgzLDEyNCwwLDAsMTA2LDEsMCwxMDAsMywwLDEzMSwxLDAsOTIsMywwLAogICAgIDEyNSwxLDAsMTI1LDIsMCwxMjUsMywwLDEyNCwxLDAsMTIsMTE1LDgxLDAsCi0gICAgMTI0LDMsMCwxMDYsMywwLDEzMSwwLDAsMTAwLDcsMCwxMDAsOCwwLDEzMywKLSAgICAyLDAsMjUsMTAwLDUsMCwxMDcsMywwLDExNCw4NSwwLDEyNCwwLDAsODMsCi0gICAgMTIxLDE2LDAsMTE2LDQsMCwxMjQsMCwwLDEzMSwxLDAsMTI1LDQsMCw4NywKLSAgICAxMTAsNDAsMCw0LDExNiw1LDAsMTE2LDYsMCwxMDIsMiwwLDEwNywxMCwwLAotICAgIDExNCwxNDMsMCwxLDEsMSwxMTYsNywwLDEwMCw5LDAsMTAwLDYsMCwxMzMsCi0gICAgMiwwLDI1LDEyNSw0LDAsODksMTEwLDEsMCw4OCwxMTYsOCwwLDExNiw5LAorICAgIDEyNCwzLDAsMTA2LDIsMCwxMzEsMCwwLDEwMCw3LDAsMTAwLDgsMCwxMzMsCisgICAgMiwwLDI1LDEwMCw2LDAsMTA3LDMsMCwxMTQsODUsMCwxMjQsMCwwLDgzLAorICAgIDEyMSwxNiwwLDExNiwzLDAsMTI0LDAsMCwxMzEsMSwwLDEyNSw0LDAsODcsCisgICAgMTEwLDQwLDAsNCwxMTYsNCwwLDExNiw1LDAsMTAyLDIsMCwxMDcsMTAsMCwKKyAgICAxMTQsMTQzLDAsMSwxLDEsMTE2LDYsMCwxMDAsOSwwLDEwMCwyLDAsMTMzLAorICAgIDIsMCwyNSwxMjUsNCwwLDg5LDExMCwxLDAsODgsMTE2LDcsMCwxMTYsOCwKICAgICAwLDEzMSwxLDAsMTE0LDE2MCwwLDEyNCw0LDAsODMsMTI0LDAsMCw4Myw0MCwKICAgICAxMCwwLDAsMCwxMTcsMTg4LDAsMCwwLDY3LDExMSwxMTAsMTE4LDEwMSwxMTQsMTE2LAogICAgIDMyLDk3LDMyLDk4LDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsMTAxLDMyLDEwMiwxMDUsMTA4LDEwMSwKQEAgLTk0NywxNDAyICs3OTAsMTI2NyBAQAogICAgIDExMSwxMTQsMTE2LDk1LDY5LDEyMCwxMDEsOTksNjcsMTExLDEwMCwxMDEsNzcsMTExLDEwMCwxMTcsCiAgICAgMTA4LDEwMSw4NywxMDUsMTE2LDEwNCw3MCwxMDUsMTA4LDEwMSwxMTAsOTcsMTA5LDEwMSwxMTUsNDAsCiAgICAgNDEsMzIsMTA1LDExMCwzMiwxMTYsMTA0LDEwMSwzMiw2NywzMiw2NSw4MCw3Myw0NiwxMCwKLSAgICAxMCwzMiwzMiwzMiwzMiwxMDUsMCwwLDAsMCwxMTcsMSwwLDAsMCw0NiwKLSAgICAxMDUsMywwLDAsMCwxMDUsMSwwLDAsMCwxMTcsMywwLDAsMCw0NiwKLSAgICAxMTIsMTIxLDc4LDEwNSwyNTMsMjU1LDI1NSwyNTUsMTA1LDI1NSwyNTUsMjU1LDI1NSwxMDUsMjU1LDI1NSwKLSAgICAyNTUsMjU1LDQwLDEwLDAsMCwwLDExNywzLDAsMCwwLDEwOCwxMDEsMTEwLDExNywKLSAgICA0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNyw5LDAsMCwwLDExNCwxMTIsOTcsCi0gICAgMTE0LDEwNSwxMTYsMTA1LDExMSwxMTAsMTE3LDUsMCwwLDAsMTA4LDExMSwxMTksMTAxLDExNCwKLSAgICAxMTcsMTcsMCwwLDAsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSw5NSwxMDIsMTE0LDExMSwxMDksCi0gICAgOTUsOTksOTcsOTksMTA0LDEwMSwxMTcsMTksMCwwLDAsNzgsMTExLDExNiw3MywxMDksCi0gICAgMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDEwMSwxMDAsNjksMTE0LDExNCwxMTEsMTE0LDExNywxMCwKLSAgICAwLDAsMCw4Niw5NywxMDgsMTE3LDEwMSw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDEyLDAsCi0gICAgMCwwLDk4LDEyMSwxMTYsOTksMTExLDEwMCwxMDEsOTUsMTEyLDk3LDExNiwxMDQsMTE3LDEyLAotICAgIDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMTUsMTAyLDEwNSwxMDgsMTAxLDExNywKLSAgICAxMiwwLDAsMCwxMTUsMTExLDExNywxMTQsOTksMTAxLDk1LDExNSwxMTYsOTcsMTE2LDExNSwKLSAgICA0MCw1LDAsMCwwLDExNywxMywwLDAsMCw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsCi0gICAgMTAwLDEwMSw5NSwxMTIsOTcsMTE2LDEwNCwxMTcsNCwwLDAsMCwxMTQsMTAxLDExNSwxMTYsCi0gICAgMTE3LDEsMCwwLDAsOTUsMTE3LDksMCwwLDAsMTAxLDEyMCwxMTYsMTAxLDExMCwKLSAgICAxMTUsMTA1LDExMSwxMTAsMTE3LDExLDAsMCwwLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsOTUsCi0gICAgMTEyLDk3LDExNiwxMDQsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwKLSAgICAwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LAotICAgIDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwKLSAgICAxMTcsMTUsMCwwLDAsOTUsMTAzLDEwMSwxMTYsOTUsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwKLSAgICAxMDIsMTA1LDEwOCwxMDEsMjA5LDEsMCwwLDExNSwyMCwwLDAsMCwwLDcsMTgsCi0gICAgMSw0LDEsMjQsMSwzNSwxLDQsMiwzLDEsMTYsMSwxOSwxLDIxLAotICAgIDIsMTE3LDE1LDAsMCwwLDk1LDEwMywxMDEsMTE2LDk1LDExNSwxMTEsMTE3LDExNCw5OSwKLSAgICAxMDEsMTAyLDEwNSwxMDgsMTAxLDExNyw5LDAsMCwwLDExOCwxMDEsMTE0LDk4LDExMSwxMTUsCi0gICAgMTA1LDExNiwxMjEsMTA1LDEsMCwwLDAsOTksMSwwLDAsMCwxLDAsMCwKLSAgICAwLDMsMCwwLDAsNCwwLDAsMCw3MSwwLDAsMCwxMTUsODEsMCwKLSAgICAwLDAsMTE2LDAsMCwxMDYsMSwwLDEwNiwyLDAsMTI0LDEsMCwxMDcsNSwKLSAgICAwLDExNCw3NywwLDEyNCwwLDAsMTA2LDMsMCwxMDAsNiwwLDEzMSwxLDAsCi0gICAgMTE1LDQ2LDAsMTAwLDMsMCwxMjQsMCwwLDIzLDEyNSwwLDAsMTEwLDAsMCwKLSAgICAxMTYsNCwwLDEyNCwwLDAsMTA2LDUsMCwxMjQsMiwwLDE0MCwwLDAsMTAwLAotICAgIDQsMCwxMTYsMCwwLDEwNiw2LDAsMTMxLDEsMSwxLDExMCwwLDAsMTAwLAotICAgIDUsMCw4Myw0MCw3LDAsMCwwLDExNyw2MSwwLDAsMCw4MCwxMTQsMTA1LAotICAgIDExMCwxMTYsMzIsMTE2LDEwNCwxMDEsMzIsMTA5LDEwMSwxMTUsMTE1LDk3LDEwMywxMDEsMzIsMTE2LAotICAgIDExMSwzMiwxMTUsMTE2LDEwMCwxMDEsMTE0LDExNCwzMiwxMDUsMTAyLDMyLDQ1LDExOCw0Nyw4MCwKLSAgICA4OSw4NCw3Miw3OSw3OCw4Niw2OSw4Miw2Niw3OSw4Myw2OSwzMiwxMDUsMTE1LDMyLAotICAgIDExNiwxMTcsMTE0LDExMCwxMDEsMTAwLDMyLDExMSwxMTAsNDYsMTE3LDEsMCwwLDAsMzUsCi0gICAgMTE3LDcsMCwwLDAsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsMTE3LDIsMCwwLAotICAgIDAsMzUsMzIsMTE3LDQsMCwwLDAsMTAyLDEwNSwxMDgsMTAxLDc4LDQwLDIsMCwKLSAgICAwLDAsMTE3LDEsMCwwLDAsMzUsMTE3LDcsMCwwLDAsMTA1LDEwOSwxMTIsCi0gICAgMTExLDExNCwxMTYsMzIsNDAsNywwLDAsMCwxMTcsMywwLDAsMCwxMTUsMTIxLAotICAgIDExNSwxMTcsNSwwLDAsMCwxMDIsMTA4LDk3LDEwMywxMTUsMTE3LDcsMCwwLDAsCi0gICAgMTE4LDEwMSwxMTQsOTgsMTExLDExNSwxMDEsMTE3LDEwLDAsMCwwLDExNSwxMTYsOTcsMTE0LAotICAgIDExNiwxMTUsMTE5LDEwNSwxMTYsMTA0LDExNyw1LDAsMCwwLDExMiwxMTQsMTA1LDExMCwxMTYsCi0gICAgMTE3LDYsMCwwLDAsMTAyLDExMSwxMTQsMTA5LDk3LDExNiwxMTcsNiwwLDAsMCwKLSAgICAxMTUsMTE2LDEwMCwxMDEsMTE0LDExNCw0MCwzLDAsMCwwLDExNyw3LDAsMCwwLAotICAgIDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAxLDExNyw5LDAsMCwwLDExOCwxMDEsMTE0LDk4LAotICAgIDExMSwxMTUsMTA1LDExNiwxMjEsMTE3LDQsMCwwLDAsOTcsMTE0LDEwMywxMTUsNDAsMCwKLSAgICAwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LAotICAgIDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LAotICAgIDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTYsMCwwLDAsOTUsCi0gICAgMTE4LDEwMSwxMTQsOTgsMTExLDExNSwxMDEsOTUsMTA5LDEwMSwxMTUsMTE1LDk3LDEwMywxMDEsMjMwLAotICAgIDEsMCwwLDExNSw4LDAsMCwwLDAsMiwxOCwxLDE1LDEsMTMsMSwKLSAgICAxMTcsMTYsMCwwLDAsOTUsMTE4LDEwMSwxMTQsOTgsMTExLDExNSwxMDEsOTUsMTA5LDEwMSwKLSAgICAxMTUsMTE1LDk3LDEwMywxMDEsOTksMSwwLDAsMCwwLDAsMCwwLDIsMCwKLSAgICAwLDAsMywwLDAsMCwzLDAsMCwwLDExNSwzNSwwLDAsMCwxMzUsCi0gICAgMCwwLDEwMiwxLDAsMTAwLDEsMCwxMDAsMiwwLDEzNCwwLDAsMTI1LDEsCi0gICAgMCwxMTYsMCwwLDEyNCwxLDAsMTM2LDAsMCwxMzEsMiwwLDEsMTI0LDEsCi0gICAgMCw4Myw0MCwzLDAsMCwwLDExNywzOSwwLDAsMCw4MywxMDEsMTE2LDMyLAotICAgIDk1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSw5NSwzMiwxMTEsMTEwLDMyLDExNiwKLSAgICAxMDQsMTAxLDMyLDExNCwxMDEsMTE2LDExNywxMTQsMTEwLDEwMSwxMDAsMzIsMTA5LDExMSwxMDAsMTE3LAotICAgIDEwOCwxMDEsNDYsOTksMCwwLDAsMCwwLDAsMCwwLDMsMCwwLDAsCi0gICAgNCwwLDAsMCwzMSwwLDAsMCwxMTUsMTAxLDAsMCwwLDEzNiwwLDAsCi0gICAgMTI0LDAsMCwxMjQsMSwwLDE0MiwwLDAsMTI1LDIsMCwxMTYsMCwwLDEyNCwKLSAgICAyLDAsMTAwLDEsMCwxMDAsMCwwLDEzMSwzLDAsMTAwLDAsMCwxMDcsOCwKLSAgICAwLDExNCw5NywwLDEyNCwyLDAsMTA2LDIsMCwxMjQsMiwwLDk1LDMsMCwKLSAgICAxMTYsNCwwLDEyNCwyLDAsMTAwLDIsMCwxMzEsMiwwLDExNSw5NywwLDEyNCwKLSAgICAyLDAsMTA2LDMsMCwxMDYsNSwwLDEwMCwzLDAsMTMxLDEsMCwxMDAsNCwKLSAgICAwLDI1LDEyNCwyLDAsOTUsMywwLDExMyw5NywwLDExMCwwLDAsMTI0LDIsCi0gICAgMCw4Myw0MCw1LDAsMCwwLDc4LDExNywxMSwwLDAsMCw5NSw5NSwxMTIsCi0gICAgOTcsOTksMTA3LDk3LDEwMywxMDEsOTUsOTUsMTE3LDgsMCwwLDAsOTUsOTUsMTEyLAotICAgIDk3LDExNiwxMDQsOTUsOTUsMTE3LDEsMCwwLDAsNDYsMTA1LDAsMCwwLDAsCi0gICAgNDAsNiwwLDAsMCwxMTcsNywwLDAsMCwxMDMsMTAxLDExNiw5NywxMTYsMTE2LAotICAgIDExNCwxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsOCwwLDAsMCw5NSwKLSAgICA5NSwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsMTEsMCwwLDAsOTUsOTUsMTEyLDk3LAotICAgIDk5LDEwNyw5NywxMDMsMTAxLDk1LDk1LDExNyw3LDAsMCwwLDEwNCw5NywxMTUsOTcsCi0gICAgMTE2LDExNiwxMTQsMTE3LDEwLDAsMCwwLDExNCwxMTIsOTcsMTE0LDExNiwxMDUsMTE2LDEwNSwKLSAgICAxMTEsMTEwLDQwLDMsMCwwLDAsMTE3LDQsMCwwLDAsOTcsMTE0LDEwMywxMTUsCi0gICAgMTE3LDYsMCwwLDAsMTA3LDExOSw5NywxMTQsMTAzLDExNSwxMTcsNiwwLDAsMCwKLSAgICAxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0MCwxLDAsMCwwLDExNywzLDAsMCwwLAotICAgIDEwMiwxMjAsMTEwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsCi0gICAgMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsCi0gICAgOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxOSwwLDAsMCwxMTUsCi0gICAgMTAxLDExNiw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsOTUsMTE5LDExNCw5NywxMTIsMTEyLAotICAgIDEwMSwxMTQsMjQwLDEsMCwwLDExNSwxMiwwLDAsMCwwLDEsMTUsMSwyNCwKLSAgICAxLDEyLDEsMTUsMSwzMSwxLDExNyw0MCwwLDAsMCwxMTUsMTAxLDExNiw5NSwKLSAgICAxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsNDYsNjAsMTA4LDExMSw5OSw5NywxMDgsMTE1LDYyLAotICAgIDQ2LDExNSwxMDEsMTE2LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSwxMTksMTE0LDk3LAotICAgIDExMiwxMTIsMTAxLDExNCw0MCwxLDAsMCwwLDExNyw1LDAsMCwwLDk1LDExOSwKLSAgICAxMTQsOTcsMTEyLDQwLDIsMCwwLDAsMTE3LDMsMCwwLDAsMTAyLDEyMCwxMTAsCi0gICAgMTE3LDE5LDAsMCwwLDExNSwxMDEsMTE2LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwKLSAgICA5NSwxMTksMTE0LDk3LDExMiwxMTIsMTAxLDExNCw0MCwwLDAsMCwwLDQwLDEsMCwKLSAgICAwLDAsMTE3LDMsMCwwLDAsMTAyLDEyMCwxMTAsMTE3LDI5LDAsMCwwLDYwLAotICAgIDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsCi0gICAgNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMSwwLDAsCi0gICAgMCwxMTUsMTAxLDExNiw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMjM4LDEsMCwwLAotICAgIDExNSw2LDAsMCwwLDAsMiwxOCw3LDEzLDEsMTE3LDExLDAsMCwwLAotICAgIDExNSwxMDEsMTE2LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5OSwxLDAsMCwwLAotICAgIDAsMCwwLDAsMiwwLDAsMCwzLDAsMCwwLDMsMCwwLDAsCi0gICAgMTE1LDM1LDAsMCwwLDEzNSwwLDAsMTAyLDEsMCwxMDAsMSwwLDEwMCwyLAotICAgIDAsMTM0LDAsMCwxMjUsMSwwLDExNiwwLDAsMTI0LDEsMCwxMzYsMCwwLAotICAgIDEzMSwyLDAsMSwxMjQsMSwwLDgzLDQwLDMsMCwwLDAsMTE3LDM4LDAsCi0gICAgMCwwLDgzLDEwMSwxMTYsMzIsOTUsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSw5NSwKLSAgICAzMiwxMTEsMTEwLDMyLDExNiwxMDQsMTAxLDMyLDExNCwxMDEsMTE2LDExNywxMTQsMTEwLDEwMSwxMDAsCi0gICAgMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDYsOTksMSwwLDAsMCwwLDAsMCwKLSAgICAwLDQsMCwwLDAsNCwwLDAsMCwzMSwwLDAsMCwxMTUsNDksMCwKLSAgICAwLDAsMTM2LDAsMCwxMjQsMCwwLDEyNCwxLDAsMTI0LDIsMCwxNDIsMSwKLSAgICAwLDEyNSwzLDAsMTE2LDAsMCwxMjQsMywwLDEwMCwxLDAsMTMxLDIsMCwKLSAgICAxMTUsNDUsMCwxMjQsMCwwLDEyNCwzLDAsOTUsMSwwLDExMCwwLDAsMTI0LAotICAgIDMsMCw4Myw0MCwyLDAsMCwwLDc4LDExNywxMCwwLDAsMCw5NSw5NSwKLSAgICAxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDk1LDk1LDQwLDIsMCwwLDAsMTE3LDcsMCwKLSAgICAwLDAsMTA0LDk3LDExNSw5NywxMTYsMTE2LDExNCwxMTcsMTAsMCwwLDAsOTUsOTUsCi0gICAgMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSw5NSw0MCw0LDAsMCwwLDExNyw0LDAsCi0gICAgMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsNCwwLDAsMCw5NywxMTQsMTAzLDExNSwxMTcsCi0gICAgNiwwLDAsMCwxMDcsMTE5LDk3LDExNCwxMDMsMTE1LDExNyw2LDAsMCwwLDEwOSwKLSAgICAxMTEsMTAwLDExNywxMDgsMTAxLDQwLDEsMCwwLDAsMTE3LDMsMCwwLDAsMTAyLAotICAgIDEyMCwxMTAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsCi0gICAgMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwKLSAgICAxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE4LDAsMCwwLDExNSwxMDEsCi0gICAgMTE2LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsOTUsMTE5LDExNCw5NywxMTIsMTEyLDEwMSwxMTQsCi0gICAgMjUzLDEsMCwwLDExNSw4LDAsMCwwLDAsMSwxOCwxLDE1LDEsMTIsCi0gICAgMSwxMTcsMzgsMCwwLDAsMTE1LDEwMSwxMTYsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCwKLSAgICA0Niw2MCwxMDgsMTExLDk5LDk3LDEwOCwxMTUsNjIsNDYsMTE1LDEwMSwxMTYsOTUsMTA4LDExMSwKLSAgICA5NywxMDAsMTAxLDExNCw5NSwxMTksMTE0LDk3LDExMiwxMTIsMTAxLDExNCw0MCwxLDAsMCwKLSAgICAwLDExNyw1LDAsMCwwLDk1LDExOSwxMTQsOTcsMTEyLDQwLDIsMCwwLDAsCi0gICAgMTE3LDMsMCwwLDAsMTAyLDEyMCwxMTAsMTE3LDE4LDAsMCwwLDExNSwxMDEsMTE2LAotICAgIDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsOTUsMTE5LDExNCw5NywxMTIsMTEyLDEwMSwxMTQsNDAsCi0gICAgMCwwLDAsMCw0MCwxLDAsMCwwLDExNywzLDAsMCwwLDEwMiwxMjAsCi0gICAgMTEwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LAotICAgIDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LAotICAgIDk3LDExMiw2MiwxMTcsMTAsMCwwLDAsMTE1LDEwMSwxMTYsOTUsMTA4LDExMSw5NywxMDAsCi0gICAgMTAxLDExNCwyNTEsMSwwLDAsMTE1LDYsMCwwLDAsMCwyLDE4LDUsMTMsCi0gICAgMSwxMTcsMTAsMCwwLDAsMTE1LDEwMSwxMTYsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCwKKyAgICAxMCwzMiwzMiwzMiwzMiwxMTQsNzAsMCwwLDAsNzgsMTE0LDEwMywwLDAsMCwKKyAgICAyMzMsMywwLDAsMCwxMTQsMjksMCwwLDAsMTE3LDMsMCwwLDAsNDYsCisgICAgMTEyLDEyMSwyMzMsMjUzLDI1NSwyNTUsMjU1LDIzMywyNTUsMjU1LDI1NSwyNTUsMTE0LDEyNSwwLDAsCisgICAgMCw0MCw5LDAsMCwwLDExNCwzMSwwLDAsMCwxMTYsOSwwLDAsMCwKKyAgICAxMTQsMTEyLDk3LDExNCwxMDUsMTE2LDEwNSwxMTEsMTEwLDI0NCw1LDAsMCwwLDEwOCwxMTEsCisgICAgMTE5LDEwMSwxMTQsMTE0LDEyMiwwLDAsMCwxMTQsMTExLDAsMCwwLDExNCwxMjAsMCwKKyAgICAwLDAsMTE2LDEyLDAsMCwwLDk4LDEyMSwxMTYsOTksMTExLDEwMCwxMDEsOTUsMTEyLAorICAgIDk3LDExNiwxMDQsMTE0LDQ0LDAsMCwwLDI0NCwxMiwwLDAsMCwxMTUsMTExLDExNywKKyAgICAxMTQsOTksMTAxLDk1LDExNSwxMTYsOTcsMTE2LDExNSw0MCw1LDAsMCwwLDI0NCwxMywKKyAgICAwLDAsMCw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSw5NSwxMTIsOTcsMTE2LDEwNCwKKyAgICAxMTYsNCwwLDAsMCwxMTQsMTAxLDExNSwxMTYsMTE0LDM2LDAsMCwwLDExNiw5LAorICAgIDAsMCwwLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDI0NCwxMSwwLDAsCisgICAgMCwxMTUsMTExLDExNywxMTQsOTksMTAxLDk1LDExMiw5NywxMTYsMTA0LDExNCw0LDAsMCwKKyAgICAwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwxNSwwLDAsMCwKKyAgICA5NSwxMDMsMTAxLDExNiw5NSwxMTUsMTExLDExNywxMTQsOTksMTAxLDEwMiwxMDUsMTA4LDEwMSwxOTAsCisgICAgMSwwLDAsMTE1LDIwLDAsMCwwLDAsNywxOCwxLDQsMSwyNCwxLAorICAgIDM1LDEsNCwyLDMsMSwxNiwxLDE5LDEsMjEsMiwxMTQsMTMwLDAsMCwKKyAgICAwLDk5LDEsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDExLDAsCisgICAgMCwwLDY3LDAsMCwwLDExNSw2MywwLDAsMCwxMjEsMjIsMCwxMTYsMCwKKyAgICAwLDEwNiwxLDAsMTI0LDAsMCwxMzEsMSwwLDEwNiwyLDAsMTI1LDEsMCwKKyAgICA4NywxMTAsMjQsMCw0LDExNiwzLDAsMTA3LDEwLDAsMTE0LDQ4LDAsMSwxLAorICAgIDEsMTAwLDEsMCwxMjUsMSwwLDg5LDExMCwxLDAsODgsMTI0LDEsMCwxMDAsCisgICAgMiwwLDc5LDEyNSwxLDAsMTI0LDEsMCw4Myw0MCwzLDAsMCwwLDExNywKKyAgICA1MSwwLDAsMCw2Nyw5NywxMDgsOTksMTE3LDEwOCw5NywxMTYsMTAxLDMyLDExNiwxMDQsCisgICAgMTAxLDMyLDEwOSwxMTEsMTAwLDEwMSwzMiwxMTIsMTAxLDExNCwxMDksMTA1LDExNSwxMTUsMTA1LDExMSwKKyAgICAxMTAsMTE1LDMyLDEwMiwxMTEsMTE0LDMyLDk3LDMyLDk4LDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsCisgICAgMTAxLDMyLDEwMiwxMDUsMTA4LDEwMSw0NiwxMDUsMTgyLDEsMCwwLDIzMywxMjgsMCwwLAorICAgIDAsNDAsNCwwLDAsMCwxMTQsMywwLDAsMCwxMTQsMzksMCwwLDAsCisgICAgMTE0LDQxLDAsMCwwLDExNCw0MCwwLDAsMCw0MCwyLDAsMCwwLDExNCwKKyAgICAzNSwwLDAsMCwxMTQsNDIsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsCisgICAgMCwwLDAsMTE0LDUsMCwwLDAsMjQ0LDEwLDAsMCwwLDk1LDk5LDk3LAorICAgIDEwOCw5OSw5NSwxMDksMTExLDEwMCwxMDEsMjExLDEsMCwwLDExNSwxMiwwLDAsMCwKKyAgICAwLDIsMywxLDIyLDEsMTMsMSwxMSwzLDEwLDEsMTE0LDEzMiwwLDAsCisgICAgMCwyNDQsOSwwLDAsMCwxMTgsMTAxLDExNCw5OCwxMTEsMTE1LDEwNSwxMTYsMTIxLDExNCwKKyAgICAyOSwwLDAsMCw5OSwxLDAsMCwwLDEsMCwwLDAsMywwLDAsCisgICAgMCw0LDAsMCwwLDcxLDAsMCwwLDExNSw4MSwwLDAsMCwxMTYsMCwKKyAgICAwLDEwNiwxLDAsMTA2LDIsMCwxMjQsMSwwLDEwNyw1LDAsMTE0LDc3LDAsCisgICAgMTI0LDAsMCwxMDYsMywwLDEwMCw2LDAsMTMxLDEsMCwxMTUsNDYsMCwxMDAsCisgICAgMywwLDEyNCwwLDAsMjMsMTI1LDAsMCwxMTAsMCwwLDExNiw0LDAsMTI0LAorICAgIDAsMCwxMDYsNSwwLDEyNCwyLDAsMTQwLDAsMCwxMDAsNCwwLDExNiwwLAorICAgIDAsMTA2LDYsMCwxMzEsMSwxLDEsMTEwLDAsMCwxMDAsNSwwLDgzLDQwLAorICAgIDcsMCwwLDAsMTE3LDYxLDAsMCwwLDgwLDExNCwxMDUsMTEwLDExNiwzMiwxMTYsCisgICAgMTA0LDEwMSwzMiwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEwMSwzMiwxMTYsMTExLDMyLDExNSwxMTYsCisgICAgMTAwLDEwMSwxMTQsMTE0LDMyLDEwNSwxMDIsMzIsNDUsMTE4LDQ3LDgwLDg5LDg0LDcyLDc5LAorICAgIDc4LDg2LDY5LDgyLDY2LDc5LDgzLDY5LDMyLDEwNSwxMTUsMzIsMTE2LDExNywxMTQsMTEwLAorICAgIDEwMSwxMDAsMzIsMTExLDExMCw0NiwyNDUsMSwwLDAsMCwzNSwyNDUsNywwLDAsCisgICAgMCwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwzMiwxMTcsMiwwLDAsMCwzNSwzMiwxMTQsCisgICAgNTMsMCwwLDAsNzgsNDAsMiwwLDAsMCwxMTQsMTM0LDAsMCwwLDExNCwKKyAgICAxMzUsMCwwLDAsNDAsNywwLDAsMCwxMTQsNywwLDAsMCwxMTQsMTA0LAorICAgIDAsMCwwLDI0NCw3LDAsMCwwLDExOCwxMDEsMTE0LDk4LDExMSwxMTUsMTAxLDExNCwKKyAgICA5LDAsMCwwLDI0NCw1LDAsMCwwLDExMiwxMTQsMTA1LDExMCwxMTYsMTE0LDQ2LAorICAgIDAsMCwwLDI0NCw2LDAsMCwwLDExNSwxMTYsMTAwLDEwMSwxMTQsMTE0LDQwLDMsCisgICAgMCwwLDAsMjQ0LDcsMCwwLDAsMTA5LDEwMSwxMTUsMTE1LDk3LDEwMywxMDEsMTE0LAorICAgIDEzMywwLDAsMCwxMTQsMTAwLDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LAorICAgIDAsMCwwLDExNCw1LDAsMCwwLDI0NCwxNiwwLDAsMCw5NSwxMTgsMTAxLAorICAgIDExNCw5OCwxMTEsMTE1LDEwMSw5NSwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEwMSwyMjMsMSwwLAorICAgIDAsMTE1LDgsMCwwLDAsMCwyLDE4LDEsMTUsMSwxMywxLDExNCwxNDAsCisgICAgMCwwLDAsOTksMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsCisgICAgNCwwLDAsMCw2NCwwLDAsMCwxMTUsNjQsMCwwLDAsMTAxLDAsMCwKKyAgICA5MCwxLDAsMTAwLDAsMCw5MCwyLDAsMTAwLDEsMCw5MCwzLDAsMTAwLAorICAgIDIsMCwxMDAsMywwLDEwMCw0LDAsMTAwLDUsMCwxMzIsMCwxLDkwLDQsCisgICAgMCwxMDAsNiwwLDEwMCw3LDAsMTMyLDAsMCw5MCw1LDAsMTAwLDgsMCwKKyAgICAxMDAsOSwwLDEzMiwwLDAsOTAsNiwwLDEwMCwxMCwwLDgzLDQwLDExLDAsCisgICAgMCwwLDI0NCwxNCwwLDAsMCw5NSw3NywxMTEsMTAwLDExNywxMDgsMTAxLDc3LDk3LAorICAgIDExMCw5NywxMDMsMTAxLDExNCwxMTcsMTIyLDAsMCwwLDY3LDExMSwxMTAsMTE2LDEwMSwxMjAsCisgICAgMTE2LDMyLDEwOSw5NywxMTAsOTcsMTAzLDEwMSwxMTQsMzIsMTE5LDEwNCwxMDUsOTksMTA0LDMyLAorICAgIDExNCwxMDEsMTE2LDExNywxMTQsMTEwLDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMDksMTExLDEwMCwxMTcsCisgICAgMTA4LDEwMSwzMiwxMTYsMTExLDMyLDk4LDEwMSwzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTAwLDQ2LAorICAgIDEwLDEwLDMyLDMyLDMyLDMyLDY4LDExMSwxMDEsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDExMiwKKyAgICAxMTQsMTExLDExMiwxMDEsMTE0LDMyLDExNywxMTAsMTA4LDExMSw5NywxMDAsMTA1LDExMCwxMDMsMzIsCisgICAgMTAyLDExNCwxMTEsMTA5LDMyLDExNSwxMjEsMTE1LDQ2LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwKKyAgICAzMiwxMTcsMTEyLDExMSwxMTAsMzIsMTAyLDk3LDEwNSwxMDgsMTE3LDExNCwxMDEsNDYsMTAsMTAsCisgICAgMzIsMzIsMzIsMzIsMjQ0LDEwLDAsMCwwLDExNCwxMDEsMTE1LDEwMSwxMTYsOTUsMTEwLAorICAgIDk3LDEwOSwxMDEsODQsOTksMiwwLDAsMCwxLDAsMCwwLDMsMCwwLAorICAgIDAsMiwwLDAsMCw2NywwLDAsMCwxMTUsMjIsMCwwLDAsMTI0LDEsCisgICAgMCwxMjQsMCwwLDk1LDAsMCwxMjQsMiwwLDEyNCwwLDAsOTUsMSwwLAorICAgIDEwMCwxLDAsODMsNDAsMiwwLDAsMCwxMTcsMTgzLDAsMCwwLDgwLDExNCwKKyAgICAxMDEsMTEyLDk3LDExNCwxMDEsMzIsMTE2LDEwNCwxMDEsMzIsOTksMTExLDExMCwxMTYsMTAxLDEyMCwKKyAgICAxMTYsMzIsMTA5LDk3LDExMCw5NywxMDMsMTAxLDExNCw0NiwxMCwxMCwzMiwzMiwzMiwzMiwKKyAgICAzMiwzMiwzMiwzMiw4NCwxMDQsMTAxLDMyLDExNCwxMDEsMTE1LDEwMSwxMTYsOTUsMTEwLDk3LAorICAgIDEwOSwxMDEsMzIsOTcsMTE0LDEwMywxMTcsMTA5LDEwMSwxMTAsMTE2LDMyLDExNSwxMTIsMTAxLDk5LAorICAgIDEwNSwxMDIsMTA1LDEwMSwxMTUsMzIsMTE5LDEwNCwxMDEsMTE2LDEwNCwxMDEsMTE0LDMyLDExNiwxMTEsCisgICAgMzIsMTE3LDExMCw5OSwxMTEsMTEwLDEwMCwxMDUsMTE2LDEwNSwxMTEsMTEwLDk3LDEwOCwxMDgsMTIxLAorICAgIDMyLDExNCwxMDEsMTE1LDEwMSwxMTYsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMTE2LAorICAgIDEwNCwxMDEsMzIsOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMzIsOTcsMTE2LDExNiwxMTQsCisgICAgMTA1LDk4LDExNywxMTYsMTAxLDMyLDEwNSwxMDIsMzIsMTE2LDEwNCwxMDEsMzIsMTA5LDExMSwxMDAsCisgICAgMTE3LDEwOCwxMDEsMzIsMTA1LDExNSwzMiwxMDIsMTExLDExNywxMTAsMTAwLDMyLDExNiwxMTEsMzIsCisgICAgOTgsMTAxLDMyLDk3LDMyLDExNCwxMDEsMTA4LDExMSw5NywxMDAsNDYsMTAsMzIsMzIsMzIsCisgICAgMzIsMzIsMzIsMzIsMzIsNzgsNDAsMiwwLDAsMCwyNDQsNSwwLDAsMCwKKyAgICA5NSwxMTAsOTcsMTA5LDEwMSwyNDQsMTEsMCwwLDAsOTUsMTE0LDEwMSwxMTUsMTAxLDExNiwKKyAgICA5NSwxMTAsOTcsMTA5LDEwMSw0MCwzLDAsMCwwLDExNCw3NywwLDAsMCwxMTQsCisgICAgNjYsMCwwLDAsMTE0LDE0MiwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwKKyAgICAwLDAsMCwxMTQsNSwwLDAsMCwxMTQsNzgsMCwwLDAsMjQwLDEsMCwKKyAgICAwLDExNSw0LDAsMCwwLDAsNiw5LDEsMTE3LDIzLDAsMCwwLDk1LAorICAgIDc3LDExMSwxMDAsMTE3LDEwOCwxMDEsNzcsOTcsMTEwLDk3LDEwMywxMDEsMTE0LDQ2LDk1LDk1LAorICAgIDEwNSwxMTAsMTA1LDExNiw5NSw5NSw5OSwxLDAsMCwwLDAsMCwwLDAsMSwKKyAgICAwLDAsMCwxMSwwLDAsMCw2NywwLDAsMCwxMTUsMTYyLDAsMCwwLAorICAgIDExNiwwLDAsMTA2LDEsMCwxMDYsMiwwLDEyNCwwLDAsMTA2LDMsMCwxMzEsCisgICAgMSwwLDEyNCwwLDAsOTUsNCwwLDEyNCwwLDAsMTA2LDQsMCwxMDAsMCwKKyAgICAwLDEwNyw5LDAsMTI0LDAsMCw5NSw1LDAsMTI0LDAsMCwxMDYsNSwwLAorICAgIDExNSwxMDMsMCwxMTYsNiwwLDEyNCwwLDAsMTA2LDMsMCwxMzEsMSwwLDEyNCwKKyAgICAwLDAsOTUsNCwwLDEwMCwxLDAsMTI0LDAsMCwxMDYsNCwwLDk1LDcsCisgICAgMCwxMjQsMCwwLDEwNiw0LDAsMTE2LDAsMCwxMDYsMSwwLDEyNCwwLDAsCisgICAgMTA2LDMsMCw2MCwxMTAsNTIsMCwxMjQsMCwwLDEwNiw4LDAsMTE0LDE1NSwwLAorICAgIDEyMSwxOSwwLDEyNCwwLDAsMTA2LDMsMCwxMjQsMCwwLDEwNiw0LDAsOTUsCisgICAgOSwwLDg3LDExMywxNTUsMCw0LDExNiwxMCwwLDEwNywxMCwwLDExNCwxNTEsMCwKKyAgICAxLDEsMSw4OSwxMTMsMTU1LDAsODgsMTEwLDAsMCwxMjQsMCwwLDEwNiw0LAorICAgIDAsODMsNDAsMiwwLDAsMCw3OCw4NCw0MCwxMSwwLDAsMCwxMTQsNywKKyAgICAwLDAsMCwyNDQsNywwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsMTE0LAorICAgIDgxLDAsMCwwLDExNCwxNDMsMCwwLDAsMjQ0LDcsMCwwLDAsOTUsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsMjQ0LDEwLDAsMCwwLDk1LDEwNSwxMTUsOTUsMTE0LDEwMSwKKyAgICAxMDgsMTExLDk3LDEwMCwxMTQsNjcsMCwwLDAsMjQ0LDE2LDAsMCwwLDk1LDk1LAorICAgIDEwNSwxMTAsMTA1LDExNiwxMDUsOTcsMTA4LDEwNSwxMjIsMTA1LDExMCwxMDMsOTUsOTUsMTE0LDE0NCwKKyAgICAwLDAsMCwxMTQsNTYsMCwwLDAsMjQ0LDE0LDAsMCwwLDY1LDExNiwxMTYsCisgICAgMTE0LDEwNSw5OCwxMTcsMTE2LDEwMSw2OSwxMTQsMTE0LDExMSwxMTQsNDAsMSwwLDAsMCwKKyAgICAxMTQsNzcsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LAorICAgIDUsMCwwLDAsMjQ0LDksMCwwLDAsOTUsOTUsMTAxLDExMCwxMTYsMTAxLDExNCwKKyAgICA5NSw5NSwyNDksMSwwLDAsMTE1LDI0LDAsMCwwLDAsMSwyNCwxLDE4LAorICAgIDEsOSw0LDE4LDMsMTIsMSwyMiwxLDksMSwzLDEsMTksMSwxMywKKyAgICAxLDgsMiwxMTcsMjQsMCwwLDAsOTUsNzcsMTExLDEwMCwxMTcsMTA4LDEwMSw3NywKKyAgICA5NywxMTAsOTcsMTAzLDEwMSwxMTQsNDYsOTUsOTUsMTAxLDExMCwxMTYsMTAxLDExNCw5NSw5NSwKICAgICA5OSwxLDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwzLDAsMCwKLSAgICAwLDMsMCwwLDAsMTE1LDM1LDAsMCwwLDEzNSwwLDAsMTAyLDEsMCwKLSAgICAxMDAsMSwwLDEwMCwyLDAsMTM0LDAsMCwxMjUsMSwwLDExNiwwLDAsMTI0LAotICAgIDEsMCwxMzYsMCwwLDEzMSwyLDAsMSwxMjQsMSwwLDgzLDQwLDMsMCwKLSAgICAwLDAsMTE3LDQyLDMsMCwwLDY4LDEwMSw5OSwxMTEsMTE0LDk3LDExNiwxMTEsMTE0LAotICAgIDMyLDExNiwxMTEsMzIsMTA0LDk3LDExMCwxMDAsMTA4LDEwMSwzMiwxMTUsMTAxLDEwOCwxMDEsOTksCi0gICAgMTE2LDEwNSwxMTAsMTAzLDMyLDExNiwxMDQsMTAxLDMyLDExMiwxMTQsMTExLDExMiwxMDEsMTE0LDMyLAotICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwMiwxMTEsMTE0LDMyLDEwOCwxMTEsOTcsMTAwLDEwMSwKLSAgICAxMTQsMTE1LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDg0LDEwNCwxMDEsMzIsMTAwLDEwMSw5OSwKLSAgICAxMTEsMTE0LDk3LDExNiwxMDEsMTAwLDMyLDEwMiwxMTcsMTEwLDk5LDExNiwxMDUsMTExLDExMCwzMiwKLSAgICAxMDUsMTE1LDMyLDExMiw5NywxMTUsMTE1LDEwMSwxMDAsMzIsMTE2LDEwNCwxMDEsMzIsMTA5LDExMSwKLSAgICAxMDAsMTE3LDEwOCwxMDEsMzIsMTE2LDExMSwzMiwxMTcsMTE1LDEwMSwzMiwxMDUsMTEwLDExNSwxMTYsCi0gICAgMTAxLDk3LDEwMCwzMiwxMTEsMTAyLDMyLDExNiwxMDQsMTAxLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsCi0gICAgMTAxLDEwLDMyLDMyLDMyLDMyLDExMCw5NywxMDksMTAxLDQ2LDMyLDg0LDEwNCwxMDEsMzIsCi0gICAgMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTEyLDk3LDExNSwxMTUsMTAxLDEwMCwzMiwxMDUsMTEwLAotICAgIDMyLDExNiwxMTEsMzIsMTE2LDEwNCwxMDEsMzIsMTAyLDExNywxMTAsOTksMTE2LDEwNSwxMTEsMTEwLAotICAgIDMyLDEwNSwxMTUsMzIsMTAxLDEwNSwxMTYsMTA0LDEwMSwxMTQsMzIsMTAyLDExNCwxMTEsMTA5LDMyLAotICAgIDExNSwxMjEsMTE1LDQ2LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwzMiwxMDUsMTAyLDEwLDMyLAotICAgIDMyLDMyLDMyLDEwNSwxMTYsMzIsOTcsMTA4LDExNCwxMDEsOTcsMTAwLDEyMSwzMiwxMDEsMTIwLAotICAgIDEwNSwxMTUsMTE2LDExNSwzMiwxMTEsMTE0LDMyLDEwNSwxMTUsMzIsOTcsMzIsMTEwLDEwMSwxMTksCi0gICAgMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDYsMzIsNzMsMTAyLDMyLDExNiwxMDQsMTAxLDMyLAotICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwNSwxMTUsMzIsMTEwLDEwMSwxMTksNDQsMzIsMTE2LAotICAgIDEwNCwxMDEsMTEwLDMyLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LDk1LDEwLDMyLDMyLDMyLAotICAgIDMyLDEwNSwxMTUsMzIsMTE1LDEwMSwxMTYsMzIsMTE2LDEwNCwxMDEsMzIsMTAyLDEwNSwxMTQsMTE1LAotICAgIDExNiwzMiw5NywxMTQsMTAzLDExNywxMDksMTAxLDExMCwxMTYsMzIsMTE2LDExMSwzMiwxMTYsMTA0LAotICAgIDEwMSwzMiwxMDksMTAxLDExNiwxMDQsMTExLDEwMCw0NCwzMiw5NSw5NSwxMDgsMTExLDk3LDEwMCwKLSAgICAxMDEsMTE0LDk1LDk1LDMyLDEwNSwxMTUsMzIsMTE1LDEwMSwxMTYsMzIsMTE2LDExMSwzMiwxMTUsCi0gICAgMTAxLDEwOCwxMDIsNDQsMzIsOTcsMTEwLDEwMCwxMCwzMiwzMiwzMiwzMiw5NSw5NSwxMTIsCi0gICAgOTcsOTksMTA3LDk3LDEwMywxMDEsOTUsOTUsMzIsMTA1LDExNSwzMiwxMTUsMTAxLDExNiwzMiwKLSAgICA5Nyw5OSw5OSwxMTEsMTE0LDEwMCwxMDUsMTEwLDEwMywxMDgsMTIxLDMyLDQwLDEwNSwxMDIsMzIsCi0gICAgMTE1LDEwMSwxMDgsMTAyLDQ2LDEwNSwxMTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDQwLAotICAgIDQxLDMyLDEwNSwxMTUsMzIsMTAwLDEwMSwxMDIsMTA1LDExMCwxMDEsMTAwLDQxLDMyLDExOSwxMDUsCi0gICAgMTA4LDEwOCwzMiw5OCwxMDEsMzIsMTE1LDEwMSwxMTYsMTAsMzIsMzIsMzIsMzIsOTgsMTAxLAotICAgIDEwMiwxMTEsMTE0LDEwMSwzMiwxMDUsMTE2LDMyLDEwNSwxMTUsMzIsMTEyLDk3LDExNSwxMTUsMTAxLAotICAgIDEwMCwzMiwxMTYsMTExLDMyLDExNiwxMDQsMTAxLDMyLDEwMCwxMDEsOTksMTExLDExNCw5NywxMTYsCi0gICAgMTAxLDEwMCwzMiwxMDIsMTE3LDExMCw5OSwxMTYsMTA1LDExMSwxMTAsMzIsNDAsMTA1LDEwMiwzMiwKLSAgICAxMTUsMTAxLDEwOCwxMDIsNDYsMTA1LDExNSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsNDAsCi0gICAgNDEsMzIsMTAwLDExMSwxMDEsMTE1LDEwLDMyLDMyLDMyLDMyLDExMCwxMTEsMTE2LDMyLDExOSwKLSAgICAxMTEsMTE0LDEwNywzMiwxMDIsMTExLDExNCwzMiwxMTYsMTA0LDEwMSwzMiwxMDksMTExLDEwMCwxMTcsCi0gICAgMTA4LDEwMSwzMiwxMDUsMTE2LDMyLDExOSwxMDUsMTA4LDEwOCwzMiw5OCwxMDEsMzIsMTE1LDEwMSwKLSAgICAxMTYsMzIsMTEyLDExMSwxMTUsMTE2LDQ1LDEwOCwxMTEsOTcsMTAwLDQxLDQ2LDEwLDEwLDMyLAotICAgIDMyLDMyLDMyLDczLDEwMiwzMiw5NywxMTAsMzIsMTAxLDEyMCw5OSwxMDEsMTEyLDExNiwxMDUsCi0gICAgMTExLDExMCwzMiwxMDUsMTE1LDMyLDExNCw5NywxMDUsMTE1LDEwMSwxMDAsMzIsOTcsMTEwLDEwMCwKLSAgICAzMiwxMTYsMTA0LDEwMSwzMiwxMDAsMTAxLDk5LDExMSwxMTQsOTcsMTE2LDExMSwxMTQsMzIsOTksCi0gICAgMTE0LDEwMSw5NywxMTYsMTAxLDEwMCwzMiwxMTYsMTA0LDEwMSwzMiwxMDksMTExLDEwMCwxMTcsMTA4LAotICAgIDEwMSwzMiwxMDUsMTE2LDMyLDEwNSwxMTUsMTAsMzIsMzIsMzIsMzIsMTE1LDExNyw5OCwxMTUsCi0gICAgMTAxLDExMywxMTcsMTAxLDExMCwxMTYsMTA4LDEyMSwzMiwxMTQsMTAxLDEwOSwxMTEsMTE4LDEwMSwxMDAsCi0gICAgMzIsMTAyLDExNCwxMTEsMTA5LDMyLDExNSwxMjEsMTE1LDQ2LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLAotICAgIDExNSw0NiwxMCwxMCwzMiwzMiwzMiwzMiw4NCwxMDQsMTAxLDMyLDEwMCwxMDEsOTksMTExLAotICAgIDExNCw5NywxMTYsMTExLDExNCwzMiw5NywxMTUsMTE1LDExNywxMDksMTAxLDExNSwzMiwxMTYsMTA0LAotICAgIDk3LDExNiwzMiwxMTYsMTA0LDEwMSwzMiwxMDAsMTAxLDk5LDExMSwxMTQsOTcsMTE2LDEwMSwxMDAsCi0gICAgMzIsMTAyLDExNywxMTAsOTksMTE2LDEwNSwxMTEsMTEwLDMyLDExNiw5NywxMDcsMTAxLDExNSwzMiwKLSAgICAxMTYsMTA0LDEwMSwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMTAsOTcsMTA5LDEwMSwzMiwKLSAgICA5NywxMTUsMTAsMzIsMzIsMzIsMzIsMTE2LDEwNCwxMDEsMzIsMTE1LDEwMSw5OSwxMTEsMTEwLAotICAgIDEwMCwzMiw5NywxMTQsMTAzLDExNywxMDksMTAxLDExMCwxMTYsNDYsMTAsMTAsMzIsMzIsMzIsCi0gICAgMzIsOTksMiwwLDAsMCwwLDAsMCwwLDcsMCwwLDAsMjUsMCwKLSAgICAwLDAsMzEsMCwwLDAsMTE1LDI1NCwwLDAsMCwxMTYsMCwwLDEwNiwxLAotICAgIDAsMTA2LDIsMCwxMjQsMSwwLDEzMSwxLDAsMTI1LDQsMCwxMjQsNCwwLAotICAgIDEwMCwwLDAsMTA3LDksMCwxMjUsNSwwLDEyNCw1LDAsMTE1LDE2OCwwLDExNiwKLSAgICA0LDAsMTI0LDEsMCwxMzEsMSwwLDEyNSw0LDAsMTAwLDMsMCwxMjQsNCwKLSAgICAwLDk1LDYsMCwxMjQsNCwwLDExNiwwLDAsMTA2LDEsMCwxMjQsMSwwLAotICAgIDYwLDEyNCwwLDAsMTI0LDQsMCw5NSw3LDAsMTIxLDE5LDAsMTI0LDAsMCwKLSAgICAxMDYsOCwwLDEyNCwxLDAsMTMxLDEsMCwxMjUsNiwwLDg3LDExMCwyNCwwLAotICAgIDQsMTE2LDksMCwxMTYsMTAsMCwxMDIsMiwwLDEwNywxMCwwLDExNCwxMjQsMCwKLSAgICAxLDEsMSw4OSwxMTMsMTc3LDAsODgsMTI0LDYsMCwxMTQsMTQzLDAsMTI0LDEsCi0gICAgMCwxMjQsNCwwLDk1LDExLDAsMTEzLDE3NywwLDEyNCwxLDAsMTA2LDEyLDAsCi0gICAgMTAwLDEsMCwxMzEsMSwwLDEwMCwyLDAsMjUsMTI0LDQsMCw5NSwxMSwwLAotICAgIDExMCw5LDAsMTAwLDMsMCwxMjQsNCwwLDk1LDYsMCwxMjIsNjAsMCwxMjEsCi0gICAgMjMsMCwxMzYsMCwwLDEyNCwwLDAsMTI0LDQsMCwxMjQsMiwwLDEyNCwzLAotICAgIDAsMTQyLDIsMCw4Myw4NywxMTAsMzAsMCwxLDEsMSwxMjQsNSwwLDExNSwKLSAgICAyMjgsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LDEsMCw2MSwxMTAsMCwwLDEzMCwKLSAgICAwLDAsODksMTEwLDEsMCw4OCw4NywxMDAsMCwwLDEwMCw0LDAsMTI0LDQsCi0gICAgMCw5NSw2LDAsODgsMTAwLDAsMCw4Myw0MCw1LDAsMCwwLDc4LDExNywKLSAgICAxLDAsMCwwLDQ2LDEwNSwwLDAsMCwwLDg0LDcwLDQwLDE0LDAsMCwKLSAgICAwLDExNywzLDAsMCwwLDExNSwxMjEsMTE1LDExNyw3LDAsMCwwLDEwOSwxMTEsCi0gICAgMTAwLDExNywxMDgsMTAxLDExNSwxMTcsMywwLDAsMCwxMDMsMTAxLDExNiwxMTcsNCwwLAotICAgIDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsMTAsMCwwLDAsMTEwLDEwMSwxMTksOTUsMTA5LAotICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDQsMCwwLDAsODQsMTE0LDExNywxMDEsMTE3LDE2LAotICAgIDAsMCwwLDk1LDk1LDEwNSwxMTAsMTA1LDExNiwxMDUsOTcsMTA4LDEwNSwxMjIsMTA1LDExMCwKLSAgICAxMDMsOTUsOTUsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsCi0gICAgOTUsOTUsMTE3LDEwLDAsMCwwLDEwNSwxMTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsCi0gICAgMTAxLDExNywxMSwwLDAsMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDY5LDExNCwxMTQsMTExLAotICAgIDExNCwxMTcsMTQsMCwwLDAsNjUsMTE2LDExNiwxMTQsMTA1LDk4LDExNywxMTYsMTAxLDY5LAotICAgIDExNCwxMTQsMTExLDExNCwxMTcsMTEsMCwwLDAsOTUsOTUsMTEyLDk3LDk5LDEwNyw5NywKLSAgICAxMDMsMTAxLDk1LDk1LDExNywxMCwwLDAsMCwxMTQsMTEyLDk3LDExNCwxMTYsMTA1LDExNiwKLSAgICAxMDUsMTExLDExMCwxMTcsNSwwLDAsMCw3MCw5NywxMDgsMTE1LDEwMSw0MCw3LDAsCi0gICAgMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsOCwwLDAsMCwKLSAgICAxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsMTE3LDQsMCwwLDAsOTcsMTE0LDEwMywKLSAgICAxMTUsMTE3LDYsMCwwLDAsMTA3LDExOSw5NywxMTQsMTAzLDExNSwxMTcsNiwwLDAsCi0gICAgMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTcsOSwwLDAsMCwxMDUsMTE1LDk1LDExNCwKLSAgICAxMDEsMTA4LDExMSw5NywxMDAsMTE3LDEwLDAsMCwwLDEwNSwxMTUsOTUsMTEyLDk3LDk5LAotICAgIDEwNyw5NywxMDMsMTAxLDQwLDEsMCwwLDAsMTE3LDMsMCwwLDAsMTAyLDEyMCwKLSAgICAxMTAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLAotICAgIDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsCi0gICAgMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDI1LDAsMCwwLDEwOSwxMTEsMTAwLAotICAgIDExNywxMDgsMTAxLDk1LDEwMiwxMTEsMTE0LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsOTUsMTE5LAotICAgIDExNCw5NywxMTIsMTEyLDEwMSwxMTQsMjQsMiwwLDAsMTE1LDQ0LDAsMCwwLDAsCi0gICAgMSwxOCwxLDEyLDEsNiw0LDEyLDMsOSwxLDEzLDEsOSwxLDMsCi0gICAgMSwxOSwxLDE5LDEsNSwyLDYsMSwxMiwyLDI1LDIsOSwxLDYsCi0gICAgMiwyMywxLDMsMSw2LDEsMTMsMSwxMiwyLDExNyw1MiwwLDAsMCwKLSAgICAxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMDIsMTExLDExNCw5NSwxMDgsMTExLDk3LDEwMCwxMDEsCi0gICAgMTE0LDQ2LDYwLDEwOCwxMTEsOTksOTcsMTA4LDExNSw2Miw0NiwxMDksMTExLDEwMCwxMTcsMTA4LAotICAgIDEwMSw5NSwxMDIsMTExLDExNCw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDk1LDExOSwxMTQsOTcsCi0gICAgMTEyLDExMiwxMDEsMTE0LDQwLDEsMCwwLDAsMTE3LDUsMCwwLDAsOTUsMTE5LAotICAgIDExNCw5NywxMTIsNDAsMiwwLDAsMCwxMTcsMywwLDAsMCwxMDIsMTIwLDExMCwKLSAgICAxMTcsMjUsMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsMTAyLDExMSwxMTQsOTUsCi0gICAgMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSwxMTksMTE0LDk3LDExMiwxMTIsMTAxLDExNCw0MCwwLAotICAgIDAsMCwwLDQwLDEsMCwwLDAsMTE3LDMsMCwwLDAsMTAyLDEyMCwxMTAsCi0gICAgMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLAotICAgIDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsCi0gICAgMTEyLDYyLDExNywxNywwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMDIsMTExLAotICAgIDExNCw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDYsMiwwLDAsMTE1LDYsMCwwLAotICAgIDAsMCwxOCwxOCwzMywxMywxLDExNywxNywwLDAsMCwxMDksMTExLDEwMCwxMTcsCi0gICAgMTA4LDEwMSw5NSwxMDIsMTExLDExNCw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDk5LDEsMCwKLSAgICAwLDAsMCwwLDAsMCwyLDAsMCwwLDQsMCwwLDAsMywwLAotICAgIDAsMCwxMTUsMzgsMCwwLDAsMTAwLDMsMCwxMzUsMCwwLDEwMiwxLDAsCi0gICAgMTAwLDEsMCwxMDAsMiwwLDEzNCwxLDAsMTI1LDEsMCwxMTYsMSwwLDEyNCwKLSAgICAxLDAsMTM2LDAsMCwxMzEsMiwwLDEsMTI0LDEsMCw4Myw0MCw0LDAsCi0gICAgMCwwLDExNywyNTIsMCwwLDAsNjgsMTAxLDk5LDExMSwxMTQsOTcsMTE2LDExMSwxMTQsCi0gICAgMzIsMTE2LDExMSwzMiwxMTgsMTAxLDExNCwxMDUsMTAyLDEyMSwzMiwxMTYsMTA0LDk3LDExNiwzMiwKLSAgICAxMTYsMTA0LDEwMSwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiw5OCwxMDEsMTA1LDExMCwxMDMsCi0gICAgMzIsMTE0LDEwMSwxMTMsMTE3LDEwMSwxMTUsMTE2LDEwMSwxMDAsMzIsMTA5LDk3LDExNiw5OSwxMDQsCi0gICAgMTAxLDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMTEsMTEwLDEwMSwzMiwxMTYsMTA0LDEwMSwxMCwzMiwKLSAgICAzMiwzMiwzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDMyLDk5LDk3LDExMCwzMiwxMDQsOTcsCi0gICAgMTEwLDEwMCwxMDgsMTAxLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDg0LDEwNCwxMDEsMzIsMTAyLAotICAgIDEwNSwxMTQsMTE1LDExNiwzMiw5NywxMTQsMTAzLDExNywxMDksMTAxLDExMCwxMTYsMzIsNDAsMTE1LAotICAgIDEwMSwxMDgsMTAyLDQxLDMyLDEwOSwxMTcsMTE1LDExNiwzMiwxMDAsMTAxLDEwMiwxMDUsMTEwLDEwMSwKLSAgICAzMiw5NSwxMTAsOTcsMTA5LDEwMSwzMiwxMTksMTA0LDEwNSw5OSwxMDQsMzIsMTE2LDEwNCwxMDEsCi0gICAgMzIsMTE1LDEwMSw5OSwxMTEsMTEwLDEwMCwzMiw5NywxMTQsMTAzLDExNywxMDksMTAxLDExMCwxMTYsCi0gICAgMzIsMTA1LDExNSwxMCwzMiwzMiwzMiwzMiw5OSwxMTEsMTA5LDExMiw5NywxMTQsMTAxLDEwMCwKLSAgICAzMiw5NywxMDMsOTcsMTA1LDExMCwxMTUsMTE2LDQ2LDMyLDczLDEwMiwzMiwxMTYsMTA0LDEwMSwKLSAgICAzMiw5OSwxMTEsMTA5LDExMiw5NywxMTQsMTA1LDExNSwxMTEsMTEwLDMyLDEwMiw5NywxMDUsMTA4LAotICAgIDExNSwzMiwxMTYsMTA0LDEwMSwxMTAsMzIsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw2OSwxMTQsMTE0LAotICAgIDExMSwxMTQsMzIsMTA1LDExNSwzMiwxMTQsOTcsMTA1LDExNSwxMDEsMTAwLDQ2LDEwLDEwLDMyLAotICAgIDMyLDMyLDMyLDk5LDIsMCwwLDAsMCwwLDAsMCw0LDAsMCwwLAotICAgIDUsMCwwLDAsMzEsMCwwLDAsMTE1LDgzLDAsMCwwLDEyNCwxLDAsCi0gICAgMTAwLDAsMCwxMDcsOCwwLDExNCwyNCwwLDEyNCwwLDAsMTA2LDEsMCwxMjUsCi0gICAgMSwwLDExMCw0MCwwLDEyNCwwLDAsMTA2LDEsMCwxMjQsMSwwLDEwNywzLAotICAgIDAsMTE0LDY0LDAsMTE2LDIsMCwxMDAsMSwwLDEyNCwxLDAsMjIsMTAwLDIsCi0gICAgMCwxMjQsMSwwLDEzMSwxLDEsMTMwLDEsMCwxMTAsMCwwLDEzNiwwLDAsCi0gICAgMTI0LDAsMCwxMjQsMSwwLDEyNCwyLDAsMTI0LDMsMCwxNDIsMiwwLDgzLAotICAgIDQwLDMsMCwwLDAsNzgsMTE3LDIzLDAsMCwwLDEwOCwxMTEsOTcsMTAwLDEwMSwKLSAgICAxMTQsMzIsOTksOTcsMTEwLDExMCwxMTEsMTE2LDMyLDEwNCw5NywxMTAsMTAwLDEwOCwxMDEsMzIsCi0gICAgMzcsMTE1LDExNyw0LDAsMCwwLDExMCw5NywxMDksMTAxLDQwLDMsMCwwLDAsCi0gICAgMTE3LDQsMCwwLDAsNzgsMTExLDExMCwxMDEsMTE3LDQsMCwwLDAsMTEwLDk3LAotICAgIDEwOSwxMDEsMTE3LDExLDAsMCwwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsNjksMTE0LDExNCwKLSAgICAxMTEsMTE0LDQwLDQsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLAotICAgIDExNyw0LDAsMCwwLDExMCw5NywxMDksMTAxLDExNyw0LDAsMCwwLDk3LDExNCwKLSAgICAxMDMsMTE1LDExNyw2LDAsMCwwLDEwNywxMTksOTcsMTE0LDEwMywxMTUsNDAsMSwwLAotICAgIDAsMCwxMTcsNiwwLDAsMCwxMDksMTAxLDExNiwxMDQsMTExLDEwMCw0MCwwLDAsCi0gICAgMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsCi0gICAgMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsCi0gICAgMTE0LDk3LDExMiw2MiwxMTcsMTksMCwwLDAsOTUsOTksMTA0LDEwMSw5OSwxMDcsOTUsCi0gICAgMTEwLDk3LDEwOSwxMDEsOTUsMTE5LDExNCw5NywxMTIsMTEyLDEwMSwxMTQsNjksMiwwLDAsCi0gICAgMTE1LDEwLDAsMCwwLDAsMSwxMiwxLDEyLDEsMTUsMSwyNSwxLDExNywKLSAgICA0MCwwLDAsMCw5NSw5OSwxMDQsMTAxLDk5LDEwNyw5NSwxMTAsOTcsMTA5LDEwMSw0NiwKLSAgICA2MCwxMDgsMTExLDk5LDk3LDEwOCwxMTUsNjIsNDYsOTUsOTksMTA0LDEwMSw5OSwxMDcsOTUsCi0gICAgMTEwLDk3LDEwOSwxMDEsOTUsMTE5LDExNCw5NywxMTIsMTEyLDEwMSwxMTQsNzgsNDAsMiwwLAotICAgIDAsMCwxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsNSwwLDAsMCwKLSAgICA5NSwxMTksMTE0LDk3LDExMiw0MCwyLDAsMCwwLDExNyw2LDAsMCwwLDEwOSwKLSAgICAxMDEsMTE2LDEwNCwxMTEsMTAwLDExNywxOSwwLDAsMCw5NSw5OSwxMDQsMTAxLDk5LDEwNywKLSAgICA5NSwxMTAsOTcsMTA5LDEwMSw5NSwxMTksMTE0LDk3LDExMiwxMTIsMTAxLDExNCw0MCwwLDAsCi0gICAgMCwwLDQwLDEsMCwwLDAsMTE3LDYsMCwwLDAsMTA5LDEwMSwxMTYsMTA0LAotICAgIDExMSwxMDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwKLSAgICAxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwKLSAgICAxMTQsOTcsMTEyLDYyLDExNywxMSwwLDAsMCw5NSw5OSwxMDQsMTAxLDk5LDEwNyw5NSwKLSAgICAxMTAsOTcsMTA5LDEwMSw2MSwyLDAsMCwxMTUsNiwwLDAsMCwwLDgsMjEsCi0gICAgNiwxMywxLDExNywxMSwwLDAsMCw5NSw5OSwxMDQsMTAxLDk5LDEwNyw5NSwxMTAsCi0gICAgOTcsMTA5LDEwMSw5OSwxLDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwKLSAgICAzLDAsMCwwLDMsMCwwLDAsMTE1LDM1LDAsMCwwLDEzNSwwLDAsCi0gICAgMTAyLDEsMCwxMDAsMSwwLDEwMCwyLDAsMTM0LDAsMCwxMjUsMSwwLDExNiwKLSAgICAwLDAsMTI0LDEsMCwxMzYsMCwwLDEzMSwyLDAsMSwxMjQsMSwwLDgzLAotICAgIDQwLDMsMCwwLDAsMTE3LDQ5LDAsMCwwLDY4LDEwMSw5OSwxMTEsMTE0LDk3LAotICAgIDExNiwxMTEsMTE0LDMyLDExNiwxMTEsMzIsMTE4LDEwMSwxMTQsMTA1LDEwMiwxMjEsMzIsMTE2LDEwNCwKLSAgICAxMDEsMzIsMTEwLDk3LDEwOSwxMDEsMTAwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwNSwKLSAgICAxMTUsMzIsOTgsMTE3LDEwNSwxMDgsMTE2LDQ1LDEwNSwxMTAsNDYsOTksMiwwLDAsMCwKLSAgICAwLDAsMCwwLDIsMCwwLDAsNCwwLDAsMCwxOSwwLDAsMCwKLSAgICAxMTUsNTgsMCwwLDAsMTI0LDEsMCwxMTYsMCwwLDEwNiwxLDAsMTA3LDcsCi0gICAgMCwxMTQsNDUsMCwxMTYsMiwwLDEwMCwxLDAsMTA2LDMsMCwxMjQsMSwwLAotICAgIDEzMSwxLDAsMTAwLDIsMCwxMjQsMSwwLDEzMSwxLDEsMTMwLDEsMCwxMTAsCi0gICAgMCwwLDEzNiwwLDAsMTI0LDAsMCwxMjQsMSwwLDEzMSwyLDAsODMsNDAsCi0gICAgMywwLDAsMCw3OCwxMTcsMjcsMCwwLDAsMTIzLDEyNSwzMiwxMDUsMTE1LDMyLAotICAgIDExMCwxMTEsMTE2LDMyLDk3LDMyLDk4LDExNywxMDUsMTA4LDExNiw0NSwxMDUsMTEwLDMyLDEwOSwKLSAgICAxMTEsMTAwLDExNywxMDgsMTAxLDExNyw0LDAsMCwwLDExMCw5NywxMDksMTAxLDQwLDQsCi0gICAgMCwwLDAsMTE3LDMsMCwwLDAsMTE1LDEyMSwxMTUsMTE3LDIwLDAsMCwwLAotICAgIDk4LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExMCwKLSAgICA5NywxMDksMTAxLDExNSwxMTcsMTEsMCwwLDAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw2OSwKLSAgICAxMTQsMTE0LDExMSwxMTQsMTE3LDYsMCwwLDAsMTAyLDExMSwxMTQsMTA5LDk3LDExNiw0MCwKLSAgICAyLDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsOCwwLAotICAgIDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsNDAsMSwwLDAsMCwxMTcsCi0gICAgMywwLDAsMCwxMDIsMTIwLDExMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsCi0gICAgMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsCi0gICAgMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMjUsCi0gICAgMCwwLDAsOTUsMTE0LDEwMSwxMTMsMTE3LDEwNSwxMTQsMTAxLDExNSw5NSw5OCwxMTcsMTA1LAotICAgIDEwOCwxMTYsMTA1LDExMCw5NSwxMTksMTE0LDk3LDExMiwxMTIsMTAxLDExNCw4MSwyLDAsMCwKLSAgICAxMTUsOCwwLDAsMCwwLDEsMTUsMSwxOCwxLDEyLDEsMTE3LDUyLDAsCi0gICAgMCwwLDk1LDExNCwxMDEsMTEzLDExNywxMDUsMTE0LDEwMSwxMTUsOTUsOTgsMTE3LDEwNSwxMDgsCi0gICAgMTE2LDEwNSwxMTAsNDYsNjAsMTA4LDExMSw5OSw5NywxMDgsMTE1LDYyLDQ2LDk1LDExNCwxMDEsCisgICAgMCw3MSwwLDAsMCwxMTUsNzMsMCwwLDAsMTAwLDEsMCwxMjQsMCwwLAorICAgIDEwNiwwLDAsOTUsMSwwLDEyNCwwLDAsOTYsMCwwLDExNiwyLDAsMTAwLAorICAgIDIsMCwxMDAsMywwLDEzMiwwLDAsMTI0LDEsMCw2OCwxMzEsMSwwLDEzMSwKKyAgICAxLDAsMTE0LDY5LDAsMTI0LDAsMCwxMDYsMywwLDEyLDExNCw2OSwwLDExNiwKKyAgICA0LDAsMTA2LDUsMCwxMjQsMCwwLDEwNiw2LDAsNjEsMTEwLDAsMCwxMDAsCisgICAgMCwwLDgzLDQwLDQsMCwwLDAsNzgsNzAsOTksMSwwLDAsMCwwLAorICAgIDAsMCwwLDIsMCwwLDAsMywwLDAsMCwxMTUsMCwwLDAsMTE1LAorICAgIDI3LDAsMCwwLDEyNCwwLDAsOTMsMTcsMCwxMjUsMSwwLDEyNCwxLDAsCisgICAgMTAwLDAsMCwxMDcsOSwwLDg2LDEsMTEzLDMsMCwxMDAsMCwwLDgzLDQwLAorICAgIDEsMCwwLDAsNzgsMTE0LDQsMCwwLDAsNDAsMiwwLDAsMCwxMTQsCisgICAgMjIsMCwwLDAsMTE2LDMsMCwwLDAsOTcsMTE0LDEwMywxMTQsNCwwLDAsCisgICAgMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwyNDUsOSwwLDAsMCwKKyAgICA2MCwxMDMsMTAxLDExMCwxMDEsMTIwLDExMiwxMTQsNjIsMTYsMiwwLDAsMTE1LDIsMCwKKyAgICAwLDAsNiwwLDExNyw0MiwwLDAsMCw5NSw3NywxMTEsMTAwLDExNywxMDgsMTAxLAorICAgIDc3LDk3LDExMCw5NywxMDMsMTAxLDExNCw0Niw5NSw5NSwxMDEsMTIwLDEwNSwxMTYsOTUsOTUsCisgICAgNDYsNjAsMTA4LDExMSw5OSw5NywxMDgsMTE1LDYyLDQ2LDYwLDEwMywxMDEsMTEwLDEwMSwxMjAsCisgICAgMTEyLDExNCw2Miw0MCw3LDAsMCwwLDExNCwxNDYsMCwwLDAsMTE0LDE0OCwwLAorICAgIDAsMCwyNDQsMywwLDAsMCw5NywxMTAsMTIxLDExNCwxNDcsMCwwLDAsMTE0LAorICAgIDcsMCwwLDAsMTE0LDE0NSwwLDAsMCwxMTQsMTQzLDAsMCwwLDQwLDIsCisgICAgMCwwLDAsMTE0LDc3LDAsMCwwLDExNCwxMDAsMCwwLDAsMTE0LDQsMCwKKyAgICAwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMjQ0LDgsMCwwLAorICAgIDAsOTUsOTUsMTAxLDEyMCwxMDUsMTE2LDk1LDk1LDEzLDIsMCwwLDExNSw4LDAsCisgICAgMCwwLDAsMSwxMiwxLDYsMSwzNSwxLDExNywyMywwLDAsMCw5NSwKKyAgICA3NywxMTEsMTAwLDExNywxMDgsMTAxLDc3LDk3LDExMCw5NywxMDMsMTAxLDExNCw0Niw5NSw5NSwKKyAgICAxMDEsMTIwLDEwNSwxMTYsOTUsOTUsNzgsNDAsNywwLDAsMCwxMTQsNTYsMCwwLAorICAgIDAsMTE0LDU1LDAsMCwwLDExNCw1NywwLDAsMCwxMTQsNTgsMCwwLDAsCisgICAgMTE0LDc4LDAsMCwwLDExNCwxNTAsMCwwLDAsMTE0LDE1MywwLDAsMCwxMTQsCisgICAgNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwKKyAgICAwLDAsMCwxMTQsMTQxLDAsMCwwLDIzMiwxLDAsMCwxMTUsOCwwLDAsCisgICAgMCwxMiw2LDYsMiwxOCw5LDEyLDIwLDExNCwxNDEsMCwwLDAsMTE0LDE0MiwKKyAgICAwLDAsMCw4NCw5OSwxLDAsMCwwLDEsMCwwLDAsMiwwLDAsCisgICAgMCw0LDAsMCwwLDY3LDAsMCwwLDExNSwxNiwwLDAsMCwxMTYsMCwKKyAgICAwLDEyNCwwLDAsMTAwLDEsMCwxMjQsMSwwLDEzMSwxLDEsODMsNDAsMiwKKyAgICAwLDAsMCwxMTcsMTM4LDAsMCwwLDgyLDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsOTcsCisgICAgMzIsOTksMTExLDExMCwxMTYsMTAxLDEyMCwxMTYsMzIsMTA5LDk3LDExMCw5NywxMDMsMTAxLDExNCwKKyAgICAzMiwxMTksMTA0LDEwNSw5OSwxMDQsMzIsMTEyLDExNCwxMTEsMTE4LDEwNSwxMDAsMTAxLDExNSwzMiwKKyAgICAxMTYsMTA0LDEwMSwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMTEsOTgsMTA2LDEwMSw5OSwKKyAgICAxMTYsMzIsMTE2LDExMSwzMiwxMDgsMTExLDk3LDEwMCw0NiwxMCwxMCwzMiwzMiwzMiwzMiwKKyAgICA3MywxMDIsMzIsMTE0LDEwMSwxMTUsMTAxLDExNiw5NSwxMTAsOTcsMTA5LDEwMSwzMiwxMDUsMTE1LAorICAgIDMyLDExNiwxMTQsMTE3LDEwMSw0NCwzMiwxMTQsMTAxLDExNSwxMDEsMTE2LDMyLDExNiwxMDQsMTAxLAorICAgIDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDM5LDExNSwzMiw5NSw5NSwxMTAsOTcsMTA5LDEwMSwKKyAgICA5NSw5NSwzMiwxMTYsMTExLDMyLDM5LDExMCw5NywxMDksMTAxLDM5LDQ2LDEwLDMyLDMyLAorICAgIDMyLDMyLDExNCwxNDIsMCwwLDAsNDAsMSwwLDAsMCwxMTQsMTQxLDAsMCwKKyAgICAwLDQwLDIsMCwwLDAsMTE0LDY2LDAsMCwwLDExNCwxNDIsMCwwLDAsCisgICAgMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMjQ0LAorICAgIDE0LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExNiwxMTEsOTUsMTA4LDExMSwKKyAgICA5NywxMDAsMjAsMiwwLDAsMTE1LDIsMCwwLDAsMCw2LDExNCwxNTQsMCwKKyAgICAwLDAsOTksMiwwLDAsMCwwLDAsMCwwLDQsMCwwLDAsMTEsCisgICAgMCwwLDAsNjcsMCwwLDAsMTE1LDEwMiwwLDAsMCwxMjQsMSwwLDEwNiwKKyAgICAwLDAsMTI1LDIsMCwxMjEsMTksMCwxMjQsMCwwLDEwNiwxLDAsMTI0LDIsCisgICAgMCwxMzEsMSwwLDEyNSwzLDAsODcsMTEwLDE4LDAsNCwxMTYsMiwwLDEwNywKKyAgICAxMCwwLDExNCw0OCwwLDEsMSwxLDg5LDExMCw1MCwwLDg4LDEyNCwzLDAsCisgICAgMTE0LDc2LDAsMTI0LDIsMCwxMjQsMSwwLDk1LDMsMCwxMDMsMCwwLDEyNCwKKyAgICAxLDAsOTUsNCwwLDExMCwyMiwwLDEyNCwyLDAsMTA2LDUsMCwxMDAsMSwKKyAgICAwLDEzMSwxLDAsMTAwLDIsMCwyNSwxMjQsMSwwLDk1LDMsMCwxMDAsMywKKyAgICAwLDgzLDQwLDQsMCwwLDAsMTE3LDY4LDAsMCwwLDgzLDEwMSwxMTYsMzIsCisgICAgOTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDk1LDk1LDMyLDk3LDExMCwxMDAsMzIsCisgICAgOTUsOTUsMTEyLDk3LDExNiwxMDQsOTUsOTUsMzIsOTgsOTcsMTE1LDEwMSwxMDAsMzIsMTExLAorICAgIDExMCwzMiwxMTksMTA0LDk3LDExNiwzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDEwNSwxMTUsCisgICAgOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDQwLDQxLDMyLDExNSw5NywxMjEsMTE1LDQ2LAorICAgIDExNCwxMDMsMCwwLDAsMTE0LDcwLDAsMCwwLDc4LDQwLDYsMCwwLDAsCisgICAgMTE0LDU2LDAsMCwwLDI0NCwxMCwwLDAsMCwxMDUsMTE1LDk1LDExMiw5Nyw5OSwKKyAgICAxMDcsOTcsMTAzLDEwMSwyNDQsMTEsMCwwLDAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw2OSwKKyAgICAxMTQsMTE0LDExMSwxMTQsMjQ0LDExLDAsMCwwLDk1LDk1LDExMiw5Nyw5OSwxMDcsOTcsCisgICAgMTAzLDEwMSw5NSw5NSwyNDQsOCwwLDAsMCw5NSw5NSwxMTIsOTcsMTE2LDEwNCw5NSwKKyAgICA5NSwxMTQsMzIsMCwwLDAsNDAsNCwwLDAsMCwyNDQsNiwwLDAsMCwKKyAgICAxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDI0NCw2LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsCisgICAgMTAxLDExNCw2NiwwLDAsMCwxMTQsMTU1LDAsMCwwLDExNCw0LDAsMCwwLAorICAgIDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwxOSwwLDAsMCw5NSwKKyAgICAxMDUsMTEwLDEwNSwxMTYsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDk1LDk3LDExNiwxMTYsCisgICAgMTE0LDExNSwyOSwyLDAsMCwxMTUsMTgsMCwwLDAsMCwyLDksMSwzLAorICAgIDEsMTksMSwxMywxLDUsMiw2LDEsOSwxLDEyLDIsMTE0LDE2MSwwLAorICAgIDAsMCw5OSwyLDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwxMSwKKyAgICAwLDAsMCw2NywwLDAsMCwxMTUsMTAwLDAsMCwwLDEyMSwyNSwwLDEyNCwKKyAgICAwLDAsMTA2LDAsMCwxMjQsMSwwLDEwNiwxLDAsMTMxLDEsMCwxMjQsMSwKKyAgICAwLDk1LDIsMCw4NywxMTAsMTgsMCw0LDExNiwzLDAsMTA3LDEwLDAsMTE0LAorICAgIDQ1LDAsMSwxLDEsODksMTEwLDUxLDAsODgsMTI0LDEsMCwxMDYsMSwwLAorICAgIDEyNCwxLDAsMTA2LDQsMCwxMDcsMiwwLDExNCw5NiwwLDEyNCwxLDAsMTA2LAorICAgIDUsMCwxMDYsNiwwLDExNiw3LDAsMTI0LDEsMCwxMDYsMiwwLDEzMSwxLAorICAgIDAsMTAwLDEsMCwyNSwxMzEsMSwwLDEsMTEwLDAsMCwxMDAsMiwwLDgzLAorICAgIDQwLDMsMCwwLDAsMTE3LDU3LDAsMCwwLDgzLDEwMSwxMTYsMzIsOTUsOTUsCisgICAgMTAyLDEwNSwxMDgsMTAxLDk1LDk1LDMyLDk3LDExMCwxMDAsMzIsOTUsOTUsMTEyLDk3LDExNiwKKyAgICAxMDQsOTUsOTUsMzIsOTgsOTcsMTE1LDEwMSwxMDAsMzIsMTExLDExMCwzMiwxMDgsMTExLDk3LAorICAgIDEwMCwxMDEsMTE0LDQ2LDEwMywxMDEsMTE2LDk1LDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsMTA5LDEwMSwKKyAgICA0MCw0MSw0NiwxMTQsNzAsMCwwLDAsNzgsNDAsOCwwLDAsMCwyNDQsMTIsCisgICAgMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTAyLDEwNSwxMDgsMTAxLDExMCw5NywxMDksMTAxLDExNCwKKyAgICA1NiwwLDAsMCwyNDQsOCwwLDAsMCw5NSw5NSwxMDIsMTA1LDEwOCwxMDEsOTUsCisgICAgOTUsMTE0LDE1NiwwLDAsMCwxMTQsMTU3LDAsMCwwLDExNCwxNTgsMCwwLDAsCisgICAgMjQ0LDYsMCwwLDAsOTcsMTEyLDExMiwxMDEsMTEwLDEwMCwxMTQsMzgsMCwwLDAsCisgICAgNDAsMiwwLDAsMCwxMTQsMTU5LDAsMCwwLDExNCwxNjAsMCwwLDAsMTE0LAorICAgIDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMjQ0LDE2LAorICAgIDAsMCwwLDk1LDEwNSwxMTAsMTA1LDExNiw5NSwxMDIsMTA1LDEwOCwxMDEsOTUsOTcsMTE2LAorICAgIDExNiwxMTQsMTE1LDQ0LDIsMCwwLDExNSwxMiwwLDAsMCwwLDIsMywxLAorICAgIDI1LDEsMTMsMSw1LDIsMTgsMSwxMTQsMTY1LDAsMCwwLDk5LDEsMCwKKyAgICAwLDAsMCwwLDAsMCwyLDAsMCwwLDMsMCwwLDAsMywwLAorICAgIDAsMCwxMTUsMzUsMCwwLDAsMTM1LDAsMCwxMDIsMSwwLDEwMCwxLDAsCisgICAgMTAwLDIsMCwxMzQsMCwwLDEyNSwxLDAsMTE2LDAsMCwxMjQsMSwwLDEzNiwKKyAgICAwLDAsMTMxLDIsMCwxLDEyNCwxLDAsODMsNDAsMywwLDAsMCwxMTcsCisgICAgMzksMCwwLDAsODMsMTAxLDExNiwzMiw5NSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywKKyAgICAxMDEsOTUsOTUsMzIsMTExLDExMCwzMiwxMTYsMTA0LDEwMSwzMiwxMTQsMTAxLDExNiwxMTcsMTE0LAorICAgIDExMCwxMDEsMTAwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQ2LDk5LDAsMCwwLDAsCisgICAgMCwwLDAsMCwzLDAsMCwwLDQsMCwwLDAsMzEsMCwwLDAsCisgICAgMTE1LDEwMSwwLDAsMCwxMzYsMCwwLDEyNCwwLDAsMTI0LDEsMCwxNDIsMCwKKyAgICAwLDEyNSwyLDAsMTE2LDAsMCwxMjQsMiwwLDEwMCwxLDAsMTAwLDAsMCwKKyAgICAxMzEsMywwLDEwMCwwLDAsMTA3LDgsMCwxMTQsOTcsMCwxMjQsMiwwLDEwNiwKKyAgICAxLDAsMTI0LDIsMCw5NSwyLDAsMTE2LDMsMCwxMjQsMiwwLDEwMCwyLAorICAgIDAsMTMxLDIsMCwxMTUsOTcsMCwxMjQsMiwwLDEwNiwyLDAsMTA2LDQsMCwKKyAgICAxMDAsMywwLDEzMSwxLDAsMTAwLDQsMCwyNSwxMjQsMiwwLDk1LDIsMCwKKyAgICAxMTMsOTcsMCwxMTAsMCwwLDEyNCwyLDAsODMsNDAsNSwwLDAsMCw3OCwKKyAgICAxMTQsMTU3LDAsMCwwLDExNCwxNTgsMCwwLDAsMTE0LDEwMywwLDAsMCwxMTQsCisgICAgNzAsMCwwLDAsNDAsNSwwLDAsMCwxMTQsNjEsMCwwLDAsMTE0LDU2LAorICAgIDAsMCwwLDExNCwxNTcsMCwwLDAsMTE0LDU5LDAsMCwwLDExNCwzMiwwLAorICAgIDAsMCw0MCwzLDAsMCwwLDExNCwxMDAsMCwwLDAsMjQ0LDYsMCwwLAorICAgIDAsMTA3LDExOSw5NywxMTQsMTAzLDExNSwxMTQsMTYwLDAsMCwwLDQwLDEsMCwwLAorICAgIDAsMjQ0LDMsMCwwLDAsMTAyLDEyMCwxMTAsMTE0LDQsMCwwLDAsMTE0LDUsCisgICAgMCwwLDAsMjQ0LDE5LDAsMCwwLDExNSwxMDEsMTE2LDk1LDExMiw5Nyw5OSwxMDcsCisgICAgOTcsMTAzLDEwMSw5NSwxMTksMTE0LDk3LDExMiwxMTIsMTAxLDExNCw1NywyLDAsMCwxMTUsCisgICAgMTIsMCwwLDAsMCwxLDE1LDEsMjQsMSwxMiwxLDE1LDEsMzEsMSwKKyAgICAxMTcsNDAsMCwwLDAsMTE1LDEwMSwxMTYsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLAorICAgIDQ2LDYwLDEwOCwxMTEsOTksOTcsMTA4LDExNSw2Miw0NiwxMTUsMTAxLDExNiw5NSwxMTIsOTcsCisgICAgOTksMTA3LDk3LDEwMywxMDEsOTUsMTE5LDExNCw5NywxMTIsMTEyLDEwMSwxMTQsNDAsMSwwLAorICAgIDAsMCwxMTQsNjQsMCwwLDAsNDAsMiwwLDAsMCwxMTQsMTY3LDAsMCwKKyAgICAwLDExNCwxNjgsMCwwLDAsMTE0LDQsMCwwLDAsNDAsMSwwLDAsMCwKKyAgICAxMTQsMTY3LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwxMSwwLDAsMCwxMTUsCisgICAgMTAxLDExNiw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsNTUsMiwwLDAsMTE1LDYsCisgICAgMCwwLDAsMCwyLDE4LDcsMTMsMSwxMTQsMTY5LDAsMCwwLDk5LDEsCisgICAgMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDMsMCwwLDAsMywKKyAgICAwLDAsMCwxMTUsMzUsMCwwLDAsMTM1LDAsMCwxMDIsMSwwLDEwMCwxLAorICAgIDAsMTAwLDIsMCwxMzQsMCwwLDEyNSwxLDAsMTE2LDAsMCwxMjQsMSwwLAorICAgIDEzNiwwLDAsMTMxLDIsMCwxLDEyNCwxLDAsODMsNDAsMywwLDAsMCwKKyAgICAxMTcsMzgsMCwwLDAsODMsMTAxLDExNiwzMiw5NSw5NSwxMDgsMTExLDk3LDEwMCwxMDEsCisgICAgMTE0LDk1LDk1LDMyLDExMSwxMTAsMzIsMTE2LDEwNCwxMDEsMzIsMTE0LDEwMSwxMTYsMTE3LDExNCwKKyAgICAxMTAsMTAxLDEwMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0Niw5OSwxLDAsMCwwLAorICAgIDAsMCwwLDAsNCwwLDAsMCw0LDAsMCwwLDMxLDAsMCwwLAorICAgIDExNSw1OCwwLDAsMCwxMzYsMCwwLDEyNCwwLDAsMTI0LDEsMCwxMjQsMiwKKyAgICAwLDE0MiwxLDAsMTI1LDMsMCwxMTYsMCwwLDEyNCwzLDAsMTAwLDEsMCwKKyAgICAxMDAsMCwwLDEzMSwzLDAsMTAwLDAsMCwxMDcsOCwwLDExNCw1NCwwLDEyNCwKKyAgICAwLDAsMTI0LDMsMCw5NSwxLDAsMTEwLDAsMCwxMjQsMywwLDgzLDQwLAorICAgIDIsMCwwLDAsNzgsMjQ0LDEwLDAsMCwwLDk1LDk1LDEwOCwxMTEsOTcsMTAwLAorICAgIDEwMSwxMTQsOTUsOTUsNDAsMiwwLDAsMCwxMTQsNjEsMCwwLDAsMTE0LDE3MCwKKyAgICAwLDAsMCw0MCw0LDAsMCwwLDExNCw3NywwLDAsMCwxMTQsMTAwLDAsCisgICAgMCwwLDExNCwxNjYsMCwwLDAsMTE0LDE2MCwwLDAsMCw0MCwxLDAsMCwKKyAgICAwLDExNCwxNjcsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsCisgICAgMjQ0LDE4LDAsMCwwLDExNSwxMDEsMTE2LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsOTUsCisgICAgMTE5LDExNCw5NywxMTIsMTEyLDEwMSwxMTQsNzAsMiwwLDAsMTE1LDgsMCwwLDAsCisgICAgMCwxLDE4LDEsMjQsMSwxMiwxLDExNywzOCwwLDAsMCwxMTUsMTAxLDExNiwKKyAgICA5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDYwLDEwOCwxMTEsOTksOTcsMTA4LDExNSw2MiwKKyAgICA0NiwxMTUsMTAxLDExNiw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDk1LDExOSwxMTQsOTcsMTEyLAorICAgIDExMiwxMDEsMTE0LDQwLDEsMCwwLDAsMTE0LDY0LDAsMCwwLDQwLDIsMCwKKyAgICAwLDAsMTE0LDE2NywwLDAsMCwxMTQsMTcxLDAsMCwwLDExNCw0LDAsMCwKKyAgICAwLDQwLDEsMCwwLDAsMTE0LDE2NywwLDAsMCwxMTQsNSwwLDAsMCwKKyAgICAyNDQsMTAsMCwwLDAsMTE1LDEwMSwxMTYsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCw2OCwKKyAgICAyLDAsMCwxMTUsNiwwLDAsMCwwLDIsMTgsNSwxMywxLDExNCwxNzIsCisgICAgMCwwLDAsOTksMSwwLDAsMCwwLDAsMCwwLDIsMCwwLDAsCisgICAgNCwwLDAsMCwzLDAsMCwwLDExNSwzOCwwLDAsMCwxMDAsMSwwLAorICAgIDEzNSwwLDAsMTAyLDEsMCwxMDAsMiwwLDEwMCwzLDAsMTM0LDEsMCwxMjUsCisgICAgMSwwLDExNiwwLDAsMTI0LDEsMCwxMzYsMCwwLDEzMSwyLDAsMSwxMjQsCisgICAgMSwwLDgzLDQwLDQsMCwwLDAsMTE3LDI1MiwwLDAsMCw2OCwxMDEsOTksCisgICAgMTExLDExNCw5NywxMTYsMTExLDExNCwzMiwxMTYsMTExLDMyLDExOCwxMDEsMTE0LDEwNSwxMDIsMTIxLAorICAgIDMyLDExNiwxMDQsOTcsMTE2LDMyLDExNiwxMDQsMTAxLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLAorICAgIDMyLDk4LDEwMSwxMDUsMTEwLDEwMywzMiwxMTQsMTAxLDExMywxMTcsMTAxLDExNSwxMTYsMTAxLDEwMCwKKyAgICAzMiwxMDksOTcsMTE2LDk5LDEwNCwxMDEsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDExMSwxMTAsMTAxLAorICAgIDMyLDExNiwxMDQsMTAxLDEwLDMyLDMyLDMyLDMyLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMzIsCisgICAgOTksOTcsMTEwLDMyLDEwNCw5NywxMTAsMTAwLDEwOCwxMDEsNDYsMTAsMTAsMzIsMzIsMzIsCisgICAgMzIsODQsMTA0LDEwMSwzMiwxMDIsMTA1LDExNCwxMTUsMTE2LDMyLDk3LDExNCwxMDMsMTE3LDEwOSwKKyAgICAxMDEsMTEwLDExNiwzMiw0MCwxMTUsMTAxLDEwOCwxMDIsNDEsMzIsMTA5LDExNywxMTUsMTE2LDMyLAorICAgIDEwMCwxMDEsMTAyLDEwNSwxMTAsMTAxLDMyLDk1LDExMCw5NywxMDksMTAxLDMyLDExOSwxMDQsMTA1LAorICAgIDk5LDEwNCwzMiwxMTYsMTA0LDEwMSwzMiwxMTUsMTAxLDk5LDExMSwxMTAsMTAwLDMyLDk3LDExNCwKKyAgICAxMDMsMTE3LDEwOSwxMDEsMTEwLDExNiwzMiwxMDUsMTE1LDEwLDMyLDMyLDMyLDMyLDk5LDExMSwKKyAgICAxMDksMTEyLDk3LDExNCwxMDEsMTAwLDMyLDk3LDEwMyw5NywxMDUsMTEwLDExNSwxMTYsNDYsMzIsCisgICAgNzMsMTAyLDMyLDExNiwxMDQsMTAxLDMyLDk5LDExMSwxMDksMTEyLDk3LDExNCwxMDUsMTE1LDExMSwKKyAgICAxMTAsMzIsMTAyLDk3LDEwNSwxMDgsMTE1LDMyLDExNiwxMDQsMTAxLDExMCwzMiw3MywxMDksMTEyLAorICAgIDExMSwxMTQsMTE2LDY5LDExNCwxMTQsMTExLDExNCwzMiwxMDUsMTE1LDMyLDExNCw5NywxMDUsMTE1LAorICAgIDEwMSwxMDAsNDYsMTAsMTAsMzIsMzIsMzIsMzIsNzgsOTksMiwwLDAsMCwwLAorICAgIDAsMCwwLDQsMCwwLDAsNSwwLDAsMCwzMSwwLDAsMCwxMTUsCisgICAgODMsMCwwLDAsMTI0LDEsMCwxMDAsMCwwLDEwNyw4LDAsMTE0LDI0LDAsCisgICAgMTI0LDAsMCwxMDYsMCwwLDEyNSwxLDAsMTEwLDQwLDAsMTI0LDAsMCwxMDYsCisgICAgMCwwLDEyNCwxLDAsMTA3LDMsMCwxMTQsNjQsMCwxMTYsMSwwLDEwMCwxLAorICAgIDAsMTI0LDEsMCwyMiwxMDAsMiwwLDEyNCwxLDAsMTMxLDEsMSwxMzAsMSwKKyAgICAwLDExMCwwLDAsMTM2LDAsMCwxMjQsMCwwLDEyNCwxLDAsMTI0LDIsMCwKKyAgICAxMjQsMywwLDE0MiwyLDAsODMsNDAsMywwLDAsMCw3OCwxMTcsMjMsMCwKKyAgICAwLDAsMTA4LDExMSw5NywxMDAsMTAxLDExNCwzMiw5OSw5NywxMTAsMTEwLDExMSwxMTYsMzIsCisgICAgMTA0LDk3LDExMCwxMDAsMTA4LDEwMSwzMiwzNywxMTUsMTE0LDY2LDAsMCwwLDQwLDIsCisgICAgMCwwLDAsMTE0LDY2LDAsMCwwLDExNCwxNTYsMCwwLDAsNDAsNCwwLAorICAgIDAsMCwxMTQsNzcsMCwwLDAsMTE0LDY2LDAsMCwwLDExNCwxMDAsMCwwLAorICAgIDAsMTE0LDE2NiwwLDAsMCw0MCwxLDAsMCwwLDI0NCw2LDAsMCwwLAorICAgIDEwOSwxMDEsMTE2LDEwNCwxMTEsMTAwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLAorICAgIDI0NCwxOSwwLDAsMCw5NSw5OSwxMDQsMTAxLDk5LDEwNyw5NSwxMTAsOTcsMTA5LDEwMSwKKyAgICA5NSwxMTksMTE0LDk3LDExMiwxMTIsMTAxLDExNCw4NywyLDAsMCwxMTUsMTAsMCwwLAorICAgIDAsMCwxLDEyLDEsMTIsMSwxNSwxLDI1LDEsMTE3LDQwLDAsMCwwLAorICAgIDk1LDk5LDEwNCwxMDEsOTksMTA3LDk1LDExMCw5NywxMDksMTAxLDQ2LDYwLDEwOCwxMTEsOTksCisgICAgOTcsMTA4LDExNSw2Miw0Niw5NSw5OSwxMDQsMTAxLDk5LDEwNyw5NSwxMTAsOTcsMTA5LDEwMSwKKyAgICA5NSwxMTksMTE0LDk3LDExMiwxMTIsMTAxLDExNCw0MCwxLDAsMCwwLDExNCw2NCwwLAorICAgIDAsMCw0MCwyLDAsMCwwLDExNCwxNzMsMCwwLDAsMTE0LDE3NCwwLDAsCisgICAgMCwxMTQsNCwwLDAsMCw0MCwxLDAsMCwwLDExNCwxNzMsMCwwLDAsCisgICAgMTE0LDUsMCwwLDAsMjQ0LDExLDAsMCwwLDk1LDk5LDEwNCwxMDEsOTksMTA3LAorICAgIDk1LDExMCw5NywxMDksMTAxLDc5LDIsMCwwLDExNSw2LDAsMCwwLDAsOCwKKyAgICAyMSw2LDEzLDEsMTE0LDE3NSwwLDAsMCw5OSwxLDAsMCwwLDAsMCwKKyAgICAwLDAsMiwwLDAsMCwzLDAsMCwwLDMsMCwwLDAsMTE1LDM1LAorICAgIDAsMCwwLDEzNSwwLDAsMTAyLDEsMCwxMDAsMSwwLDEwMCwyLDAsMTM0LAorICAgIDAsMCwxMjUsMSwwLDExNiwwLDAsMTI0LDEsMCwxMzYsMCwwLDEzMSwyLAorICAgIDAsMSwxMjQsMSwwLDgzLDQwLDMsMCwwLDAsMTE3LDQ5LDAsMCwwLAorICAgIDY4LDEwMSw5OSwxMTEsMTE0LDk3LDExNiwxMTEsMTE0LDMyLDExNiwxMTEsMzIsMTE4LDEwMSwxMTQsCisgICAgMTA1LDEwMiwxMjEsMzIsMTE2LDEwNCwxMDEsMzIsMTEwLDk3LDEwOSwxMDEsMTAwLDMyLDEwOSwxMTEsCisgICAgMTAwLDExNywxMDgsMTAxLDMyLDEwNSwxMTUsMzIsOTgsMTE3LDEwNSwxMDgsMTE2LDQ1LDEwNSwxMTAsCisgICAgNDYsOTksMiwwLDAsMCwwLDAsMCwwLDIsMCwwLDAsNCwwLAorICAgIDAsMCwxOSwwLDAsMCwxMTUsNTgsMCwwLDAsMTI0LDEsMCwxMTYsMCwKKyAgICAwLDEwNiwxLDAsMTA3LDcsMCwxMTQsNDUsMCwxMTYsMiwwLDEwMCwxLDAsCisgICAgMTA2LDMsMCwxMjQsMSwwLDEzMSwxLDAsMTAwLDIsMCwxMjQsMSwwLDEzMSwKKyAgICAxLDEsMTMwLDEsMCwxMTAsMCwwLDEzNiwwLDAsMTI0LDAsMCwxMjQsMSwKKyAgICAwLDEzMSwyLDAsODMsNDAsMywwLDAsMCw3OCwxMTcsMjcsMCwwLDAsCisgICAgMTIzLDEyNSwzMiwxMDUsMTE1LDMyLDExMCwxMTEsMTE2LDMyLDk3LDMyLDk4LDExNywxMDUsMTA4LAorICAgIDExNiw0NSwxMDUsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNCw2NiwwLDAsMCwKKyAgICA0MCw0LDAsMCwwLDExNCw3LDAsMCwwLDI0NCwyMCwwLDAsMCw5OCwKKyAgICAxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMTAsOTcsCisgICAgMTA5LDEwMSwxMTUsMTE0LDE1NiwwLDAsMCwxMTQsNDYsMCwwLDAsNDAsMiwwLAorICAgIDAsMCwxMTQsNzcsMCwwLDAsMjQ0LDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LAorICAgIDExMCw5NywxMDksMTAxLDQwLDEsMCwwLDAsMTE0LDE2NywwLDAsMCwxMTQsNCwKKyAgICAwLDAsMCwxMTQsNSwwLDAsMCwyNDQsMjUsMCwwLDAsOTUsMTE0LDEwMSwKICAgICAxMTMsMTE3LDEwNSwxMTQsMTAxLDExNSw5NSw5OCwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCw5NSwxMTksCi0gICAgMTE0LDk3LDExMiwxMTIsMTAxLDExNCw0MCwxLDAsMCwwLDExNyw1LDAsMCwwLAotICAgIDk1LDExOSwxMTQsOTcsMTEyLDQwLDIsMCwwLDAsMTE3LDMsMCwwLDAsMTAyLAotICAgIDEyMCwxMTAsMTE3LDI1LDAsMCwwLDk1LDExNCwxMDEsMTEzLDExNywxMDUsMTE0LDEwMSwxMTUsCisgICAgMTE0LDk3LDExMiwxMTIsMTAxLDExNCw5OSwyLDAsMCwxMTUsOCwwLDAsMCwwLAorICAgIDEsMTUsMSwxOCwxLDEyLDEsMTE3LDUyLDAsMCwwLDk1LDExNCwxMDEsMTEzLAorICAgIDExNywxMDUsMTE0LDEwMSwxMTUsOTUsOTgsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsNDYsNjAsMTA4LAorICAgIDExMSw5OSw5NywxMDgsMTE1LDYyLDQ2LDk1LDExNCwxMDEsMTEzLDExNywxMDUsMTE0LDEwMSwxMTUsCiAgICAgOTUsOTgsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsOTUsMTE5LDExNCw5NywxMTIsMTEyLDEwMSwxMTQsCi0gICAgNDAsMCwwLDAsMCw0MCwxLDAsMCwwLDExNywzLDAsMCwwLDEwMiwKLSAgICAxMjAsMTEwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsCi0gICAgMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsCi0gICAgMTE0LDk3LDExMiw2MiwxMTcsMTcsMCwwLDAsOTUsMTE0LDEwMSwxMTMsMTE3LDEwNSwxMTQsCi0gICAgMTAxLDExNSw5NSw5OCwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCw3OSwyLDAsMCwxMTUsNiwKLSAgICAwLDAsMCwwLDIsMTgsNSwxMywxLDExNywxNywwLDAsMCw5NSwxMTQsCi0gICAgMTAxLDExMywxMTcsMTA1LDExNCwxMDEsMTE1LDk1LDk4LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDk5LAotICAgIDEsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDMsMCwwLDAsCi0gICAgMywwLDAsMCwxMTUsMzUsMCwwLDAsMTM1LDAsMCwxMDIsMSwwLDEwMCwKLSAgICAxLDAsMTAwLDIsMCwxMzQsMCwwLDEyNSwxLDAsMTE2LDAsMCwxMjQsMSwKLSAgICAwLDEzNiwwLDAsMTMxLDIsMCwxLDEyNCwxLDAsODMsNDAsMywwLDAsCi0gICAgMCwxMTcsNDcsMCwwLDAsNjgsMTAxLDk5LDExMSwxMTQsOTcsMTE2LDExMSwxMTQsMzIsCi0gICAgMTE2LDExMSwzMiwxMTgsMTAxLDExNCwxMDUsMTAyLDEyMSwzMiwxMTYsMTA0LDEwMSwzMiwxMTAsOTcsCi0gICAgMTA5LDEwMSwxMDAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTA1LDExNSwzMiwxMDIsMTE0LAotICAgIDExMSwxMjIsMTAxLDExMCw0Niw5OSwyLDAsMCwwLDAsMCwwLDAsMiwwLAotICAgIDAsMCw0LDAsMCwwLDE5LDAsMCwwLDExNSw1OCwwLDAsMCwxMTYsCi0gICAgMCwwLDEwNiwxLDAsMTI0LDEsMCwxMzEsMSwwLDExNSw0NSwwLDExNiwyLAotICAgIDAsMTAwLDEsMCwxMDYsMywwLDEyNCwxLDAsMTMxLDEsMCwxMDAsMiwwLAotICAgIDEyNCwxLDAsMTMxLDEsMSwxMzAsMSwwLDExMCwwLDAsMTM2LDAsMCwxMjQsCi0gICAgMCwwLDEyNCwxLDAsMTMxLDIsMCw4Myw0MCwzLDAsMCwwLDc4LDExNywKLSAgICAyNSwwLDAsMCwxMjMsMTI1LDMyLDEwNSwxMTUsMzIsMTEwLDExMSwxMTYsMzIsOTcsMzIsCi0gICAgMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDQsMCwKLSAgICAwLDAsMTEwLDk3LDEwOSwxMDEsNDAsNCwwLDAsMCwxMTcsNCwwLDAsMCwKLSAgICA5NSwxMDUsMTA5LDExMiwxMTcsOSwwLDAsMCwxMDUsMTE1LDk1LDEwMiwxMTQsMTExLDEyMiwKLSAgICAxMDEsMTEwLDExNywxMSwwLDAsMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDY5LDExNCwxMTQsCi0gICAgMTExLDExNCwxMTcsNiwwLDAsMCwxMDIsMTExLDExNCwxMDksOTcsMTE2LDQwLDIsMCwKLSAgICAwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw4LDAsMCwwLAotICAgIDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSw0MCwxLDAsMCwwLDExNywzLDAsCi0gICAgMCwwLDEwMiwxMjAsMTEwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLAotICAgIDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsCi0gICAgNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywyNCwwLDAsCi0gICAgMCw5NSwxMTQsMTAxLDExMywxMTcsMTA1LDExNCwxMDEsMTE1LDk1LDEwMiwxMTQsMTExLDEyMiwxMDEsCi0gICAgMTEwLDk1LDExOSwxMTQsOTcsMTEyLDExMiwxMDEsMTE0LDkyLDIsMCwwLDExNSw4LDAsCi0gICAgMCwwLDAsMSwxNSwxLDE4LDEsMTIsMSwxMTcsNTAsMCwwLDAsOTUsCi0gICAgMTE0LDEwMSwxMTMsMTE3LDEwNSwxMTQsMTAxLDExNSw5NSwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCw0NiwKLSAgICA2MCwxMDgsMTExLDk5LDk3LDEwOCwxMTUsNjIsNDYsOTUsMTE0LDEwMSwxMTMsMTE3LDEwNSwxMTQsCi0gICAgMTAxLDExNSw5NSwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCw5NSwxMTksMTE0LDk3LDExMiwxMTIsMTAxLAotICAgIDExNCw0MCwxLDAsMCwwLDExNyw1LDAsMCwwLDk1LDExOSwxMTQsOTcsMTEyLAotICAgIDQwLDIsMCwwLDAsMTE3LDMsMCwwLDAsMTAyLDEyMCwxMTAsMTE3LDI0LDAsCisgICAgNDAsMSwwLDAsMCwxMTQsNjQsMCwwLDAsNDAsMiwwLDAsMCwxMTQsCisgICAgMTY3LDAsMCwwLDExNCwxNzgsMCwwLDAsMTE0LDQsMCwwLDAsNDAsMSwKKyAgICAwLDAsMCwxMTQsMTY3LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwxNywwLAorICAgIDAsMCw5NSwxMTQsMTAxLDExMywxMTcsMTA1LDExNCwxMDEsMTE1LDk1LDk4LDExNywxMDUsMTA4LAorICAgIDExNiwxMDUsMTEwLDk3LDIsMCwwLDExNSw2LDAsMCwwLDAsMiwxOCw1LAorICAgIDEzLDEsMTE0LDE3OSwwLDAsMCw5OSwxLDAsMCwwLDAsMCwwLDAsCisgICAgMiwwLDAsMCwzLDAsMCwwLDMsMCwwLDAsMTE1LDM1LDAsMCwKKyAgICAwLDEzNSwwLDAsMTAyLDEsMCwxMDAsMSwwLDEwMCwyLDAsMTM0LDAsMCwKKyAgICAxMjUsMSwwLDExNiwwLDAsMTI0LDEsMCwxMzYsMCwwLDEzMSwyLDAsMSwKKyAgICAxMjQsMSwwLDgzLDQwLDMsMCwwLDAsMTE3LDQ3LDAsMCwwLDY4LDEwMSwKKyAgICA5OSwxMTEsMTE0LDk3LDExNiwxMTEsMTE0LDMyLDExNiwxMTEsMzIsMTE4LDEwMSwxMTQsMTA1LDEwMiwKKyAgICAxMjEsMzIsMTE2LDEwNCwxMDEsMzIsMTEwLDk3LDEwOSwxMDEsMTAwLDMyLDEwOSwxMTEsMTAwLDExNywKKyAgICAxMDgsMTAxLDMyLDEwNSwxMTUsMzIsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsNDYsOTksMiwwLAorICAgIDAsMCwwLDAsMCwwLDIsMCwwLDAsNCwwLDAsMCwxOSwwLAorICAgIDAsMCwxMTUsNTgsMCwwLDAsMTE2LDAsMCwxMDYsMSwwLDEyNCwxLDAsCisgICAgMTMxLDEsMCwxMTUsNDUsMCwxMTYsMiwwLDEwMCwxLDAsMTA2LDMsMCwxMjQsCisgICAgMSwwLDEzMSwxLDAsMTAwLDIsMCwxMjQsMSwwLDEzMSwxLDEsMTMwLDEsCisgICAgMCwxMTAsMCwwLDEzNiwwLDAsMTI0LDAsMCwxMjQsMSwwLDEzMSwyLDAsCisgICAgODMsNDAsMywwLDAsMCw3OCwxMTcsMjUsMCwwLDAsMTIzLDEyNSwzMiwxMDUsCisgICAgMTE1LDMyLDExMCwxMTEsMTE2LDMyLDk3LDMyLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDExNCw2NiwwLDAsMCw0MCw0LDAsMCwwLDExNCwKKyAgICA5NiwwLDAsMCwyNDQsOSwwLDAsMCwxMDUsMTE1LDk1LDEwMiwxMTQsMTExLDEyMiwKKyAgICAxMDEsMTEwLDExNCwxNTYsMCwwLDAsMTE0LDQ2LDAsMCwwLDQwLDIsMCwwLAorICAgIDAsMTE0LDc3LDAsMCwwLDExNCwxNzcsMCwwLDAsNDAsMSwwLDAsMCwKKyAgICAxMTQsMTY3LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwKKyAgICAyNCwwLDAsMCw5NSwxMTQsMTAxLDExMywxMTcsMTA1LDExNCwxMDEsMTE1LDk1LDEwMiwxMTQsCisgICAgMTExLDEyMiwxMDEsMTEwLDk1LDExOSwxMTQsOTcsMTEyLDExMiwxMDEsMTE0LDExMCwyLDAsMCwKKyAgICAxMTUsOCwwLDAsMCwwLDEsMTUsMSwxOCwxLDEyLDEsMTE3LDUwLDAsCiAgICAgMCwwLDk1LDExNCwxMDEsMTEzLDExNywxMDUsMTE0LDEwMSwxMTUsOTUsMTAyLDExNCwxMTEsMTIyLAotICAgIDEwMSwxMTAsOTUsMTE5LDExNCw5NywxMTIsMTEyLDEwMSwxMTQsNDAsMCwwLDAsMCw0MCwKLSAgICAxLDAsMCwwLDExNywzLDAsMCwwLDEwMiwxMjAsMTEwLDExNywyOSwwLDAsCi0gICAgMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsCi0gICAgMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTYsCi0gICAgMCwwLDAsOTUsMTE0LDEwMSwxMTMsMTE3LDEwNSwxMTQsMTAxLDExNSw5NSwxMDIsMTE0LDExMSwKLSAgICAxMjIsMTAxLDExMCw5MCwyLDAsMCwxMTUsNiwwLDAsMCwwLDIsMTgsNSwKLSAgICAxMywxLDExNywxNiwwLDAsMCw5NSwxMTQsMTAxLDExMywxMTcsMTA1LDExNCwxMDEsMTE1LAotICAgIDk1LDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDk5LDIsMCwwLDAsMCwwLDAsMCwKLSAgICA1LDAsMCwwLDUsMCwwLDAsNjcsMCwwLDAsMTE1LDg3LDAsMCwKLSAgICAwLDEyNCwwLDAsMTA2LDAsMCwxMjQsMSwwLDEzMSwxLDAsOTIsMiwwLAotICAgIDEyNSwyLDAsMTI1LDMsMCwxMjQsMiwwLDEwMCwzLDAsMTA3LDgsMCwxMTQsCi0gICAgODMsMCwxMTYsMiwwLDEyNCwzLDAsMTMxLDEsMCwxMTQsODMsMCwxMDAsMSwKLSAgICAwLDEyNSw0LDAsMTE2LDMsMCwxMDYsNCwwLDEyNCw0LDAsMTA2LDUsMCwKLSAgICAxMjQsMywwLDEwMCwyLDAsMjUsMTMxLDEsMCwxMTYsNiwwLDEzMSwyLDAsCi0gICAgMSwxMTAsMCwwLDEyNCwyLDAsODMsNDAsNCwwLDAsMCwxMTcsODYsMCwKLSAgICAwLDAsODQsMTE0LDEyMSwzMiwxMTYsMTExLDMyLDEwMiwxMDUsMTEwLDEwMCwzMiw5NywzMiwKLSAgICAxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDMyLDEwMiwxMTEsMTE0LDMyLDExNiwxMDQsMTAxLDMyLDExNSwKLSAgICAxMTIsMTAxLDk5LDEwNSwxMDIsMTA1LDEwMSwxMDAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsCi0gICAgOTgsMTIxLDMyLDEwMCwxMDEsMTA4LDEwMSwxMDMsOTcsMTE2LDEwNSwxMTAsMTAzLDMyLDExNiwxMTEsCi0gICAgMTAsMzIsMzIsMzIsMzIsMTE1LDEwMSwxMDgsMTAyLDQ2LDEwMiwxMDUsMTEwLDEwMCw5NSwxMDgsCi0gICAgMTExLDk3LDEwMCwxMDEsMTE0LDQwLDQxLDQ2LDExNyw0NCwwLDAsMCw3OCwxMTEsMTE2LAotICAgIDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwNSwxMTAsMTAzLDMyLDEwMCwxMDUsMTE0LDEwMSw5OSwKLSAgICAxMTYsMTExLDExNCwxMjEsMzIsMTIzLDEyNSw1OCwzMiwxMDksMTA1LDExNSwxMTUsMTA1LDExMCwxMDMsCi0gICAgMzIsOTUsOTUsMTA1LDExMCwxMDUsMTE2LDk1LDk1LDEwNSwwLDAsMCwwLDc4LDQwLAotICAgIDcsMCwwLDAsMTE3LDExLDAsMCwwLDEwMiwxMDUsMTEwLDEwMCw5NSwxMDgsMTExLAotICAgIDk3LDEwMCwxMDEsMTE0LDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNywzLDAsCi0gICAgMCwwLDEwOCwxMDEsMTEwLDExNyw5LDAsMCwwLDk1LDExOSw5NywxMTQsMTEwLDEwNSwKLSAgICAxMTAsMTAzLDExNSwxMTcsNCwwLDAsMCwxMTksOTcsMTE0LDExMCwxMTcsNiwwLDAsCi0gICAgMCwxMDIsMTExLDExNCwxMDksOTcsMTE2LDExNywxMywwLDAsMCw3MywxMDksMTEyLDExMSwKLSAgICAxMTQsMTE2LDg3LDk3LDExNCwxMTAsMTA1LDExMCwxMDMsNDAsNSwwLDAsMCwxMTcsNCwKLSAgICAwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LAotICAgIDExMCw5NywxMDksMTAxLDExNyw2LDAsMCwwLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LAotICAgIDgsMCwwLDAsMTEyLDExMSwxMTQsMTE2LDEwNSwxMTEsMTEwLDExNSwxMTcsMywwLDAsCi0gICAgMCwxMDksMTE1LDEwMyw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LAotICAgIDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsCi0gICAgMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLAotICAgIDExNywxNywwLDAsMCw5NSwxMDIsMTA1LDExMCwxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwKLSAgICAxMDEsOTUsMTE1LDEwNCwxMDUsMTA5LDEwMSwyLDAsMCwxMTUsMTAsMCwwLDAsMCwKLSAgICA2LDIxLDEsMjQsMSw2LDEsMzIsMSwxMTcsMTcsMCwwLDAsOTUsMTAyLAotICAgIDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExNSwxMDQsMTA1LDEwOSw5OSwKLSAgICAxLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCw2LDAsMCwwLAotICAgIDY2LDAsMCwwLDExNSwxNzMsMCwwLDAsMTI0LDAsMCw2OSwxMDEsMCwwLAotICAgIDkwLDEsMCwxMDAsMCwwLDkwLDIsMCwxMDAsMSwwLDkwLDMsMCwxMDEsCi0gICAgNCwwLDEwMCwyLDAsMTAwLDMsMCwxMzIsMCwwLDEzMSwxLDAsOTAsNSwKLSAgICAwLDEwMSw0LDAsMTAwLDE0LDAsMTAwLDQsMCwxMDAsNSwwLDEzMiwxLDAsCi0gICAgMTMxLDEsMCw5MCw3LDAsMTAxLDQsMCwxMDEsOCwwLDEwMSw5LDAsMTAxLAotICAgIDEwLDAsMTAwLDYsMCwxMDAsNywwLDEzMiwwLDAsMTMxLDEsMCwxMzEsMSwKLSAgICAwLDEzMSwxLDAsMTMxLDEsMCw5MCwxMSwwLDEwMSw0LDAsMTAxLDEwLDAsCi0gICAgMTAwLDgsMCwxMDAsOSwwLDEzMiwwLDAsMTMxLDEsMCwxMzEsMSwwLDkwLAotICAgIDEyLDAsMTAxLDQsMCwxMDEsMTAsMCwxMDAsMTAsMCwxMDAsMTEsMCwxMzIsMCwKLSAgICAwLDEzMSwxLDAsMTMxLDEsMCw5MCwxMywwLDEwMSw0LDAsMTAxLDEwLDAsCi0gICAgMTAwLDEyLDAsMTAwLDEzLDAsMTMyLDAsMCwxMzEsMSwwLDEzMSwxLDAsOTAsCi0gICAgMTQsMCwxMDAsMTQsMCw4Myw0MCwxNSwwLDAsMCwxMTcsMTUsMCwwLDAsCi0gICAgNjYsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDExNywKLSAgICAxNDQsMCwwLDAsNzcsMTAxLDExNiw5NywzMiwxMTIsOTcsMTE2LDEwNCwzMiwxMDUsMTA5LAotICAgIDExMiwxMTEsMTE0LDExNiwzMiwxMDIsMTExLDExNCwzMiw5OCwxMTcsMTA1LDEwOCwxMTYsNDUsMTA1LAotICAgIDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsNDYsMTAsMTAsMzIsMzIsMzIsMzIsCi0gICAgNjUsMTA4LDEwOCwzMiwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwxMTUsMzIsOTcsMTE0LDEwMSwzMiwKLSAgICAxMDEsMTA1LDExNiwxMDQsMTAxLDExNCwzMiw5OSwxMDgsOTcsMTE1LDExNSwzMiwxMTEsMTE0LDMyLAotICAgIDExNSwxMTYsOTcsMTE2LDEwNSw5OSwzMiwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwxMTUsMzIsMTE2LAotICAgIDExMSwzMiw5NywxMTgsMTExLDEwNSwxMDAsMzIsMTE2LDEwNCwxMDEsMzIsMTEwLDEwMSwxMDEsMTAwLAotICAgIDMyLDExNiwxMTEsMTAsMzIsMzIsMzIsMzIsMTA1LDExMCwxMTUsMTE2LDk3LDExMCwxMTYsMTA1LAotICAgIDk3LDExNiwxMDEsMzIsMTE2LDEwNCwxMDEsMzIsOTksMTA4LDk3LDExNSwxMTUsNDYsMTAsMTAsCi0gICAgMzIsMzIsMzIsMzIsOTksMiwwLDAsMCwwLDAsMCwwLDIsMCwwLAotICAgIDAsMiwwLDAsMCw2NywwLDAsMCwxMTUsMTYsMCwwLDAsMTAwLDEsCi0gICAgMCwxMDYsMCwwLDEyNCwxLDAsMTA2LDEsMCwxMzEsMSwwLDgzLDQwLDIsCi0gICAgMCwwLDAsNzgsMTE3LDI0LDAsMCwwLDYwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLAotICAgIDMyLDM5LDEyMywxMjUsMzksMzIsNDAsOTgsMTE3LDEwNSwxMDgsMTE2LDQ1LDEwNSwxMTAsNDEsCi0gICAgNjIsNDAsMiwwLDAsMCwxMTcsNiwwLDAsMCwxMDIsMTExLDExNCwxMDksOTcsCi0gICAgMTE2LDExNyw4LDAsMCwwLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LDk1LDQwLDIsCi0gICAgMCwwLDAsMTE3LDMsMCwwLDAsOTksMTA4LDExNSwxMTcsNiwwLDAsMCwKLSAgICAxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsCi0gICAgMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLAotICAgIDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsCi0gICAgMTEyLDYyLDExNywxMSwwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMTQsMTAxLAotICAgIDExMiwxMTQsMTI3LDIsMCwwLDExNSwyLDAsMCwwLDAsMiwxMTcsMjcsMCwKLSAgICAwLDAsNjYsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsCi0gICAgMTE0LDQ2LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExNCwxMDEsMTEyLDExNCw5OSwzLDAsCi0gICAgMCwwLDAsMCwwLDAsMywwLDAsMCwyLDAsMCwwLDY3LDAsCi0gICAgMCwwLDExNSwzOSwwLDAsMCwxMjQsMiwwLDEwMCwxLDAsMTA3LDksMCwKLSAgICAxMTQsMTYsMCwxMDAsMSwwLDgzLDExNiwxLDAsMTA2LDIsMCwxMjQsMSwwLAotICAgIDEzMSwxLDAsMTE0LDM1LDAsMTI0LDAsMCw4MywxMDAsMSwwLDgzLDQwLDIsCi0gICAgMCwwLDAsMTE3LDExMywwLDAsMCw3MCwxMDUsMTEwLDEwMCwzMiwxMTYsMTA0LDEwMSwKLSAgICAzMiw5OCwxMTcsMTA1LDEwOCwxMTYsNDUsMTA1LDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwKLSAgICA0NiwxMCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw3MywxMDIsMzIsMzksMTEyLAotICAgIDk3LDExNiwxMDQsMzksMzIsMTA1LDExNSwzMiwxMDEsMTE4LDEwMSwxMTQsMzIsMTE1LDExMiwxMDEsCi0gICAgOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwzMiwxMTYsMTA0LDEwMSwxMTAsMzIsMTE2LDEwNCwxMDEsMzIsCi0gICAgMTE1LDEwMSw5NywxMTQsOTksMTA0LDMyLDEwNSwxMTUsMzIsOTksMTExLDExMCwxMTUsMTA1LDEwMCwKLSAgICAxMDEsMTE0LDEwMSwxMDAsMzIsOTcsMzIsMTAyLDk3LDEwNSwxMDgsMTE3LDExNCwxMDEsNDYsMTAsCi0gICAgMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsNzgsNDAsMywwLDAsMCwxMTcsCi0gICAgNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsNCwwLDAsMCw5NSwxMDUsMTA5LAotICAgIDExMiwxMTcsMTAsMCwwLDAsMTA1LDExNSw5NSw5OCwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCwKLSAgICA0MCwzLDAsMCwwLDExNywzLDAsMCwwLDk5LDEwOCwxMTUsMTE3LDgsMCwKLSAgICAwLDAsMTAyLDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLDExNyw0LDAsMCwwLDExMiwKLSAgICA5NywxMTYsMTA0LDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwKLSAgICAwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsCi0gICAgMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LAotICAgIDExLDAsMCwwLDEwMiwxMDUsMTEwLDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMzEsCi0gICAgMiwwLDAsMTE1LDYsMCwwLDAsMCw3LDEyLDEsNCwxLDExNywyNywKLSAgICAwLDAsMCw2NiwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LAotICAgIDEwMSwxMTQsNDYsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk5LDIsCi0gICAgMCwwLDAsMCwwLDAsMCwzLDAsMCwwLDksMCwwLDAsNjcsCi0gICAgMCwwLDAsMTE1LDg4LDAsMCwwLDEyNCwxLDAsMTE2LDAsMCwxMDYsMSwKLSAgICAwLDEwNyw2LDAsMTI1LDIsMCwxMjEsMjAsMCwxMTYsMiwwLDExNiwzLDAsCi0gICAgMTA2LDQsMCwxMjQsMSwwLDEzMSwyLDAsODMsODcsMTEwLDQ2LDAsMSwxLAotICAgIDEsMTI0LDIsMCwxMiwxMTQsNzYsMCwxMjQsMSwwLDExNiwwLDAsMTA2LDEsCi0gICAgMCwxMDcsNiwwLDExNCw3NiwwLDExNiwwLDAsMTA2LDEsMCwxMjQsMSwwLAotICAgIDYxLDExMCwwLDAsMTMwLDAsMCw4OSwxMTAsMSwwLDg4LDEwMCwxLDAsODMsCi0gICAgNDAsMiwwLDAsMCwxMTcsMjMsMCwwLDAsNzYsMTExLDk3LDEwMCwzMiw5NywKLSAgICAzMiw5OCwxMTcsMTA1LDEwOCwxMTYsNDUsMTA1LDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwKLSAgICA0Niw3OCw0MCw1LDAsMCwwLDExNywzLDAsMCwwLDExNSwxMjEsMTE1LDExNywKLSAgICA3LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwxMTcsMjUsMCwwLDAsCi0gICAgOTUsOTksOTcsMTA4LDEwOCw5NSwxMTksMTA1LDExNiwxMDQsOTUsMTAyLDExNCw5NywxMDksMTAxLAotICAgIDExNSw5NSwxMTQsMTAxLDEwOSwxMTEsMTE4LDEwMSwxMDAsMTE3LDQsMCwwLDAsOTUsMTA1LAotICAgIDEwOSwxMTIsMTE3LDEyLDAsMCwwLDEwNSwxMTAsMTA1LDExNiw5NSw5OCwxMTcsMTA1LDEwOCwKLSAgICAxMTYsMTA1LDExMCw0MCwzLDAsMCwwLDExNywzLDAsMCwwLDk5LDEwOCwxMTUsCi0gICAgMTE3LDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLDExNyw5LDAsCi0gICAgMCwwLDEwNSwxMTUsOTUsMTE0LDEwMSwxMDgsMTExLDk3LDEwMCw0MCwwLDAsMCwwLAotICAgIDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsCi0gICAgMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwKLSAgICAxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMSwwLDAsMCwxMDgsMTExLDk3LDEwMCwKLSAgICA5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxNDIsMiwwLDAsMTE1LDE0LDAsMCwwLAotICAgIDAsNiwxNSwxLDMsMSwyMCwxLDMsMSwyMiwxLDEzLDEsMTE3LDI3LAotICAgIDAsMCwwLDY2LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsCi0gICAgMTAxLDExNCw0NiwxMDgsMTExLDk3LDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5OSwyLAorICAgIDEwMSwxMTAsNDYsNjAsMTA4LDExMSw5OSw5NywxMDgsMTE1LDYyLDQ2LDk1LDExNCwxMDEsMTEzLAorICAgIDExNywxMDUsMTE0LDEwMSwxMTUsOTUsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsOTUsMTE5LDExNCw5NywKKyAgICAxMTIsMTEyLDEwMSwxMTQsNDAsMSwwLDAsMCwxMTQsNjQsMCwwLDAsNDAsMiwKKyAgICAwLDAsMCwxMTQsMTY3LDAsMCwwLDExNCwxODEsMCwwLDAsMTE0LDQsMCwKKyAgICAwLDAsNDAsMSwwLDAsMCwxMTQsMTY3LDAsMCwwLDExNCw1LDAsMCwKKyAgICAwLDI0NCwxNiwwLDAsMCw5NSwxMTQsMTAxLDExMywxMTcsMTA1LDExNCwxMDEsMTE1LDk1LAorICAgIDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDEwOCwyLDAsMCwxMTUsNiwwLDAsMCwwLAorICAgIDIsMTgsNSwxMywxLDExNCwxODIsMCwwLDAsOTksMiwwLDAsMCwwLAorICAgIDAsMCwwLDUsMCwwLDAsNSwwLDAsMCw2NywwLDAsMCwxMTUsCisgICAgODcsMCwwLDAsMTI0LDAsMCwxMDYsMCwwLDEyNCwxLDAsMTMxLDEsMCwKKyAgICA5MiwyLDAsMTI1LDIsMCwxMjUsMywwLDEyNCwyLDAsMTAwLDEsMCwxMDcsCisgICAgOCwwLDExNCw4MywwLDExNiwxLDAsMTI0LDMsMCwxMzEsMSwwLDExNCw4MywKKyAgICAwLDEwMCwyLDAsMTI1LDQsMCwxMTYsMiwwLDEwNiwzLDAsMTI0LDQsMCwKKyAgICAxMDYsNCwwLDEyNCwzLDAsMTAwLDMsMCwyNSwxMzEsMSwwLDExNiw1LDAsCisgICAgMTMxLDIsMCwxLDExMCwwLDAsMTI0LDIsMCw4Myw0MCw0LDAsMCwwLAorICAgIDExNyw4NiwwLDAsMCw4NCwxMTQsMTIxLDMyLDExNiwxMTEsMzIsMTAyLDEwNSwxMTAsMTAwLAorICAgIDMyLDk3LDMyLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMzIsMTAyLDExMSwxMTQsMzIsMTE2LDEwNCwKKyAgICAxMDEsMzIsMTE1LDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwzMiwxMDksMTExLDEwMCwxMTcsCisgICAgMTA4LDEwMSwzMiw5OCwxMjEsMzIsMTAwLDEwMSwxMDgsMTAxLDEwMyw5NywxMTYsMTA1LDExMCwxMDMsCisgICAgMzIsMTE2LDExMSwxMCwzMiwzMiwzMiwzMiwxMTUsMTAxLDEwOCwxMDIsNDYsMTAyLDEwNSwxMTAsCisgICAgMTAwLDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsNDAsNDEsNDYsNzgsMTE3LDQ0LDAsMCwKKyAgICAwLDc4LDExMSwxMTYsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA1LDExMCwxMDMsMzIsMTAwLAorICAgIDEwNSwxMTQsMTAxLDk5LDExNiwxMTEsMTE0LDEyMSwzMiwxMjMsMTI1LDU4LDMyLDEwOSwxMDUsMTE1LAorICAgIDExNSwxMDUsMTEwLDEwMywzMiw5NSw5NSwxMDUsMTEwLDEwNSwxMTYsOTUsOTUsMTE0LDcwLDAsCisgICAgMCwwLDQwLDYsMCwwLDAsMjQ0LDExLDAsMCwwLDEwMiwxMDUsMTEwLDEwMCwKKyAgICA5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDExNCwzMSwwLDAsMCwyNDQsOSwwLDAsCisgICAgMCw5NSwxMTksOTcsMTE0LDExMCwxMDUsMTEwLDEwMywxMTUsMjQ0LDQsMCwwLDAsMTE5LAorICAgIDk3LDExNCwxMTAsMTE0LDQ2LDAsMCwwLDI0NCwxMywwLDAsMCw3MywxMDksMTEyLAorICAgIDExMSwxMTQsMTE2LDg3LDk3LDExNCwxMTAsMTA1LDExMCwxMDMsNDAsNSwwLDAsMCwxMTQsCisgICAgNzcsMCwwLDAsMTE0LDE3NywwLDAsMCwxMTQsMTU5LDAsMCwwLDI0NCw4LAorICAgIDAsMCwwLDExMiwxMTEsMTE0LDExNiwxMDUsMTExLDExMCwxMTUsMjQ0LDMsMCwwLDAsCisgICAgMTA5LDExNSwxMDMsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwKKyAgICAwLDAsMjQ0LDE3LDAsMCwwLDk1LDEwMiwxMDUsMTEwLDEwMCw5NSwxMDksMTExLDEwMCwKKyAgICAxMTcsMTA4LDEwMSw5NSwxMTUsMTA0LDEwNSwxMDksMTE5LDIsMCwwLDExNSwxMCwwLDAsCisgICAgMCwwLDYsMjEsMSwyNCwxLDYsMSwzMiwxLDExNCwxODksMCwwLDAsCisgICAgOTksNCwwLDAsMCwwLDAsMCwwLDExLDAsMCwwLDE5LDAsMCwKKyAgICAwLDY3LDAsMCwwLDExNSwyNDMsMSwwLDAsMTA1LDAsMCwxMjUsNCwwLAorICAgIDEyNCwyLDAsMTAwLDEsMCwxMDcsOSwwLDExNCwzMSwwLDEyNCwyLDAsMTI0LAorICAgIDQsMCwxMDAsMiwwLDYwLDExMCw2LDAsMTAwLDMsMCwxMjUsMiwwLDEyNCwKKyAgICAzLDAsMTAwLDEsMCwxMDcsOSwwLDExNCw2MiwwLDEyNCwzLDAsMTI0LDQsCisgICAgMCwxMDAsNCwwLDYwLDExMCwwLDAsMTI0LDAsMCwxMDAsMSwwLDEwMCw1LAorICAgIDAsMTMzLDIsMCwyNSwxMjUsNSwwLDEyNCwwLDAsMTAwLDUsMCwxMDAsNiwKKyAgICAwLDEzMywyLDAsMjUsMTI1LDYsMCwxMjQsMCwwLDEwMCw2LDAsMTAwLDcsCisgICAgMCwxMzMsMiwwLDI1LDEyNSw3LDAsMTI0LDUsMCwxMTYsMCwwLDEwNywzLAorICAgIDAsMTE0LDE2OCwwLDEwMCw4LDAsMTA2LDEsMCwxMjQsMiwwLDEyNCw1LDAsCisgICAgMTMxLDIsMCwxMjUsOCwwLDExNiwyLDAsMTI0LDgsMCwxMzEsMSwwLDEsCisgICAgMTE2LDMsMCwxMjQsOCwwLDEyNCw0LDAsMTQxLDEsMCwxMzAsMSwwLDExMCwKKyAgICAxMTYsMCwxMTYsNCwwLDEyNCw2LDAsMTMxLDEsMCwxMDAsNSwwLDEwNywzLAorICAgIDAsMTE0LDIyNiwwLDEwMCw5LDAsMTA2LDEsMCwxMjQsMiwwLDEzMSwxLDAsCisgICAgMTI1LDgsMCwxMTYsMiwwLDEyNCw4LDAsMTMxLDEsMCwxLDExNiw1LDAsCisgICAgMTI0LDgsMCwxMzEsMSwwLDEzMCwxLDAsMTEwLDU4LDAsMTE2LDQsMCwxMjQsCisgICAgNywwLDEzMSwxLDAsMTAwLDUsMCwxMDcsMywwLDExNCwyOCwxLDEwMCwxMCwKKyAgICAwLDEwNiwxLDAsMTI0LDIsMCwxMzEsMSwwLDEyNSw4LDAsMTE2LDIsMCwKKyAgICAxMjQsOCwwLDEzMSwxLDAsMSwxMTYsNSwwLDEyNCw4LDAsMTMxLDEsMCwKKyAgICAxMzAsMSwwLDExMCwwLDAsMTI0LDEsMCwxMDAsMSwwLDEwNyw5LDAsMTE0LAorICAgIDIyOSwxLDEyMSwyMCwwLDExNiw2LDAsMTI0LDEsMCwxMDAsMTEsMCwyNSwxMzEsCisgICAgMSwwLDEyNSw5LDAsODcsMTEwLDE4LDAsNCwxMTYsNywwLDEwNywxMCwwLAorICAgIDExNCw4MCwxLDEsMSwxLDg5LDExMCw2MiwwLDg4LDExNiw4LDAsMTI0LDYsCisgICAgMCwxMzEsMSwwLDEyNCw5LDAsMTA3LDMsMCwxMTQsMTQyLDEsMTAwLDEyLDAsCisgICAgMTA2LDEsMCwxMjQsMiwwLDEzMSwxLDAsMTI1LDgsMCwxMTYsMiwwLDEyNCwKKyAgICA4LDAsMTMxLDEsMCwxLDExNiwzLDAsMTI0LDgsMCwxMjQsNCwwLDE0MSwKKyAgICAxLDAsMTMwLDEsMCwxMTAsMCwwLDEyMSwxOCwwLDEyNCwxLDAsMTAwLDEzLAorICAgIDAsMjUsMTAwLDE0LDAsNjQsMTI1LDEwLDAsODcsMTEwLDE4LDAsNCwxMTYsNywKKyAgICAwLDEwNywxMCwwLDExNCwxODAsMSwxLDEsMSw4OSwxMTMsMjI5LDEsODgsMTE2LAorICAgIDgsMCwxMjQsNywwLDEzMSwxLDAsMTI0LDEwLDAsMTA3LDMsMCwxMTQsMjI5LAorICAgIDEsMTE2LDMsMCwxMDAsMTIsMCwxMDYsMSwwLDEyNCwyLDAsMTMxLDEsMCwKKyAgICAxMjQsNCwwLDE0MSwxLDAsMTMwLDEsMCwxMTMsMjI5LDEsMTEwLDAsMCwxMjQsCisgICAgMCwwLDEwMCw3LDAsMTAwLDEsMCwxMzMsMiwwLDI1LDgzLDQwLDE1LDAsCisgICAgMCwwLDExNywxMjIsMSwwLDAsODYsOTcsMTA4LDEwNSwxMDAsOTcsMTE2LDEwMSwzMiwKKyAgICAxMTYsMTA0LDEwMSwzMiwxMDQsMTAxLDk3LDEwMCwxMDEsMTE0LDMyLDExMSwxMDIsMzIsMTE2LDEwNCwKKyAgICAxMDEsMzIsMTEyLDk3LDExNSwxMTUsMTAxLDEwMCw0NSwxMDUsMTEwLDMyLDk4LDEyMSwxMTYsMTAxLAorICAgIDk5LDExMSwxMDAsMTAxLDMyLDk3LDEwMyw5NywxMDUsMTEwLDExNSwxMTYsMzIsMTE1LDExMSwxMTcsCisgICAgMTE0LDk5LDEwMSw5NSwxMTUsMTE2LDk3LDExNiwxMTUsMzIsNDAsMTA1LDEwMiwxMCwzMiwzMiwKKyAgICAzMiwzMiwxMDMsMTA1LDExOCwxMDEsMTEwLDQxLDMyLDk3LDExMCwxMDAsMzIsMTE0LDEwMSwxMTYsCisgICAgMTE3LDExNCwxMTAsMTA1LDExMCwxMDMsMzIsMTE2LDEwNCwxMDEsMzIsOTgsMTIxLDExNiwxMDEsOTksCisgICAgMTExLDEwMCwxMDEsMzIsMTE2LDEwNCw5NywxMTYsMzIsOTksOTcsMTEwLDMyLDk4LDEwMSwzMiwKKyAgICA5OSwxMTEsMTA5LDExMiwxMDUsMTA4LDEwMSwxMDAsMzIsOTgsMTIxLDMyLDk5LDExMSwxMDksMTEyLAorICAgIDEwNSwxMDgsMTAxLDQwLDQxLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDY1LDEwOCwxMDgsMzIsCisgICAgMTExLDExNiwxMDQsMTAxLDExNCwzMiw5NywxMTQsMTAzLDExNywxMDksMTAxLDExMCwxMTYsMTE1LDMyLAorICAgIDk3LDExNCwxMDEsMzIsMTE3LDExNSwxMDEsMTAwLDMyLDExNiwxMTEsMzIsMTAxLDExMCwxMDQsOTcsCisgICAgMTEwLDk5LDEwMSwzMiwxMDEsMTE0LDExNCwxMTEsMTE0LDMyLDExNCwxMDEsMTEyLDExMSwxMTQsMTE2LAorICAgIDEwNSwxMTAsMTAzLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDczLDEwOSwxMTIsMTExLDExNCwxMTYsCisgICAgNjksMTE0LDExNCwxMTEsMTE0LDMyLDEwNSwxMTUsMzIsMTE0LDk3LDEwNSwxMTUsMTAxLDEwMCwzMiwKKyAgICAxMTksMTA0LDEwMSwxMTAsMzIsMTE2LDEwNCwxMDEsMzIsMTA5LDk3LDEwMywxMDUsOTksMzIsMTEwLAorICAgIDExNywxMDksOTgsMTAxLDExNCwzMiwxMDUsMTE1LDMyLDEwNSwxMTAsOTksMTExLDExNCwxMTQsMTAxLAorICAgIDk5LDExNiwzMiwxMTEsMTE0LDMyLDExNiwxMDQsMTAxLDMyLDk4LDEyMSwxMTYsMTAxLDk5LDExMSwKKyAgICAxMDAsMTAxLDMyLDEwNSwxMTUsMTAsMzIsMzIsMzIsMzIsMTAyLDExMSwxMTcsMTEwLDEwMCwzMiwKKyAgICAxMTYsMTExLDMyLDk4LDEwMSwzMiwxMTUsMTE2LDk3LDEwOCwxMDEsNDYsMzIsNjksNzksNzAsCisgICAgNjksMTE0LDExNCwxMTEsMTE0LDMyLDEwNSwxMTUsMzIsMTE0LDk3LDEwNSwxMTUsMTAxLDEwMCwzMiwKKyAgICAxMTksMTA0LDEwMSwxMTAsMzIsMTE2LDEwNCwxMDEsMzIsMTAwLDk3LDExNiw5NywzMiwxMDUsMTE1LAorICAgIDMyLDEwMiwxMTEsMTE3LDExMCwxMDAsMzIsMTE2LDExMSwzMiw5OCwxMDEsMTAsMzIsMzIsMzIsCisgICAgMzIsMTE2LDExNCwxMTcsMTEwLDk5LDk3LDExNiwxMDEsMTAwLDQ2LDEwLDEwLDMyLDMyLDMyLAorICAgIDMyLDc4LDExNCw2NiwwLDAsMCwxMTcsMTAsMCwwLDAsNjAsOTgsMTIxLDExNiwKKyAgICAxMDEsOTksMTExLDEwMCwxMDEsNjIsMTE0LDM1LDAsMCwwLDExNCwxMiwwLDAsMCwKKyAgICAyMzMsOCwwLDAsMCwyMzMsMTIsMCwwLDAsMTE3LDMwLDAsMCwwLDk4LAorICAgIDk3LDEwMCwzMiwxMDksOTcsMTAzLDEwNSw5OSwzMiwxMTAsMTE3LDEwOSw5OCwxMDEsMTE0LDMyLAorICAgIDEwNSwxMTAsMzIsMTIzLDMzLDExNCwxMjUsNTgsMzIsMTIzLDMzLDExNCwxMjUsMTE3LDQzLDAsCisgICAgMCwwLDExNCwxMDEsOTcsOTksMTA0LDEwMSwxMDAsMzIsNjksNzksNzAsMzIsMTE5LDEwNCwKKyAgICAxMDUsMTA4LDEwMSwzMiwxMTQsMTAxLDk3LDEwMCwxMDUsMTEwLDEwMywzMiwxMTYsMTA1LDEwOSwxMDEsCisgICAgMTE1LDExNiw5NywxMDksMTEyLDMyLDEwNSwxMTAsMzIsMTIzLDMzLDExNCwxMjUsMTE3LDQ4LDAsCisgICAgMCwwLDExNCwxMDEsOTcsOTksMTA0LDEwMSwxMDAsMzIsNjksNzksNzAsMzIsMTE5LDEwNCwKKyAgICAxMDUsMTA4LDEwMSwzMiwxMTQsMTAxLDk3LDEwMCwxMDUsMTEwLDEwMywzMiwxMTUsMTA1LDEyMiwxMDEsCisgICAgMzIsMTExLDEwMiwzMiwxMTUsMTExLDExNywxMTQsOTksMTAxLDMyLDEwNSwxMTAsMzIsMTIzLDMzLAorICAgIDExNCwxMjUsMjQ0LDUsMCwwLDAsMTA5LDExNiwxMDUsMTA5LDEwMSwxMTcsMjYsMCwwLAorICAgIDAsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsMzIsMTA1LDExNSwzMiwxMTUsMTE2LDk3LAorICAgIDEwOCwxMDEsMzIsMTAyLDExMSwxMTQsMzIsMTIzLDMzLDExNCwxMjUsMjQ0LDQsMCwwLDAsCisgICAgMTE1LDEwNSwxMjIsMTAxLDEwOCwzLDAsMCwwLDI1NSwxMjcsMjU1LDEyNywzLDAsNDAsCisgICAgOSwwLDAsMCwyNDQsMTIsMCwwLDAsOTUsNzcsNjUsNzEsNzMsNjcsOTUsCisgICAgNjYsODksODQsNjksODMsMTE0LDQ2LDAsMCwwLDExNCwxNDAsMCwwLDAsMTE0LAorICAgIDE1NiwwLDAsMCwxMTQsMzEsMCwwLDAsMjQ0LDgsMCwwLDAsNjksNzksCisgICAgNzAsNjksMTE0LDExNCwxMTEsMTE0LDExNCwxNCwwLDAsMCwxMTQsOTMsMCwwLDAsCisgICAgMTE0LDE5LDAsMCwwLDQwLDExLDAsMCwwLDExNCw1MiwwLDAsMCwxMTQsCisgICAgMTI3LDAsMCwwLDExNCw2NiwwLDAsMCwxMTQsMzUsMCwwLDAsMTE2LDExLAorICAgIDAsMCwwLDEwMSwxMjAsOTksOTUsMTAwLDEwMSwxMTYsOTcsMTA1LDEwOCwxMTUsMTE2LDUsCisgICAgMCwwLDAsMTA5LDk3LDEwMywxMDUsOTksMTE2LDEzLDAsMCwwLDExNCw5NywxMTksCisgICAgOTUsMTE2LDEwNSwxMDksMTAxLDExNSwxMTYsOTcsMTA5LDExMiwxMTYsOCwwLDAsMCwxMTQsCisgICAgOTcsMTE5LDk1LDExNSwxMDUsMTIyLDEwMSwxMTQsMTM5LDAsMCwwLDI0NCwxMiwwLDAsCisgICAgMCwxMTUsMTExLDExNywxMTQsOTksMTAxLDk1LDEwOSwxMTYsMTA1LDEwOSwxMDEsMjQ0LDExLDAsCisgICAgMCwwLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsOTUsMTE1LDEwNSwxMjIsMTAxLDExNCw0LDAsCisgICAgMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwyNSwwLDAsCisgICAgMCw5NSwxMTgsOTcsMTA4LDEwNSwxMDAsOTcsMTE2LDEwMSw5NSw5OCwxMjEsMTE2LDEwMSw5OSwKKyAgICAxMTEsMTAwLDEwMSw5NSwxMDQsMTAxLDk3LDEwMCwxMDEsMTE0LDEzMiwyLDAsMCwxMTUsNzYsCisgICAgMCwwLDAsMCwxMSw2LDEsMTIsMSwxMywzLDYsMSwxMiwxLDEzLAorICAgIDEsMTYsMSwxNiwxLDE2LDEsMTIsMSwxOCwxLDEwLDEsMTgsMSwxOCwKKyAgICAxLDE1LDEsMTAsMSwxNSwxLDE4LDEsMTUsMSwxMCwxLDE1LDEsMTIsCisgICAgMSwzLDEsMjAsMSwxMywxLDUsMiwxOCwxLDE1LDEsMTAsMSwxOCwKKyAgICAxLDMsMSwxOCwxLDEzLDEsNSwyLDE4LDEsMTUsMSwxNSwxLDExNCwKKyAgICAxOTgsMCwwLDAsOTksNCwwLDAsMCwwLDAsMCwwLDUsMCwwLAorICAgIDAsNiwwLDAsMCw2NywwLDAsMCwxMTUsMTE1LDAsMCwwLDExNiwwLAorICAgIDAsMTA2LDEsMCwxMjQsMCwwLDEzMSwxLDAsMTI1LDQsMCwxMTYsMiwwLAorICAgIDEyNCw0LDAsMTE2LDMsMCwxMzEsMiwwLDExNCw3OCwwLDExNiw0LDAsMTAwLAorICAgIDEsMCwxMjQsMiwwLDEzMSwyLDAsMSwxMjQsMywwLDEwMCwyLDAsMTA3LAorICAgIDksMCwxMTQsNzQsMCwxMTYsNSwwLDEwNiw2LDAsMTI0LDQsMCwxMjQsMywKKyAgICAwLDEzMSwyLDAsMSwxMTAsMCwwLDEyNCw0LDAsODMsMTE2LDcsMCwxMDAsCisgICAgMywwLDEwNiw4LDAsMTI0LDIsMCwxMzEsMSwwLDEwMCw0LDAsMTI0LDEsCisgICAgMCwxMDAsNSwwLDEyNCwyLDAsMTMxLDEsMiwxMzAsMSwwLDEwMCwyLDAsCisgICAgODMsNDAsNiwwLDAsMCwxMTcsNjAsMCwwLDAsNjcsMTExLDEwOSwxMTIsMTA1LAorICAgIDEwOCwxMDEsMzIsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsMzIsOTcsMTE1LDMyLDExNCwKKyAgICAxMDEsMTE2LDExNywxMTQsMTEwLDEwMSwxMDAsMzIsOTgsMTIxLDMyLDk1LDExOCw5NywxMDgsMTA1LAorICAgIDEwMCw5NywxMTYsMTAxLDk1LDk4LDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsMTAxLDk1LDEwNCwxMDEsCisgICAgOTcsMTAwLDEwMSwxMTQsNDAsNDEsNDYsMTE3LDIxLDAsMCwwLDk5LDExMSwxMDAsMTAxLAorICAgIDMyLDExMSw5OCwxMDYsMTAxLDk5LDExNiwzMiwxMDIsMTE0LDExMSwxMDksMzIsMTIzLDMzLDExNCwKKyAgICAxMjUsNzgsMTE3LDIzLDAsMCwwLDc4LDExMSwxMTAsNDUsOTksMTExLDEwMCwxMDEsMzIsCisgICAgMTExLDk4LDEwNiwxMDEsOTksMTE2LDMyLDEwNSwxMTAsMzIsMTIzLDMzLDExNCwxMjUsMTE0LDY2LAorICAgIDAsMCwwLDExNCwzNSwwLDAsMCw0MCw5LDAsMCwwLDI0NCw3LDAsCisgICAgMCwwLDEwOSw5NywxMTQsMTE1LDEwNCw5NywxMDgsMTE2LDUsMCwwLDAsMTA4LDExMSwKKyAgICA5NywxMDAsMTE1LDI0NCwxMCwwLDAsMCwxMDUsMTE1LDEwNSwxMTAsMTE1LDExNiw5NywxMTAsCisgICAgOTksMTAxLDI0NCwxMCwwLDAsMCw5NSw5OSwxMTEsMTAwLDEwMSw5NSwxMTYsMTIxLDExMiwKKyAgICAxMDEsMTE0LDE0MCwwLDAsMCwxMTQsOTYsMCwwLDAsMTE2LDE2LDAsMCwwLAorICAgIDk1LDEwMiwxMDUsMTIwLDk1LDk5LDExMSw5NSwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsCisgICAgMTE0LDE1NiwwLDAsMCwxMTQsNDYsMCwwLDAsNDAsNSwwLDAsMCwxMTQsCisgICAgNTIsMCwwLDAsMTE0LDY2LDAsMCwwLDExNCwxMjgsMCwwLDAsMTE0LDEyOSwKKyAgICAwLDAsMCwyNDQsNCwwLDAsMCw5OSwxMTEsMTAwLDEwMSwxMTQsNCwwLDAsCisgICAgMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwyNDQsMTcsMCwwLDAsCisgICAgOTUsOTksMTExLDEwOSwxMTIsMTA1LDEwOCwxMDEsOTUsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwKKyAgICAxMDEsMTg3LDIsMCwwLDExNSwxNiwwLDAsMCwwLDIsMTUsMSwxNSwxLAorICAgIDEzLDEsMTIsMSwxOSwxLDQsMiwxOCwxLDExNCwyMDMsMCwwLDAsMTE0LAorICAgIDcwLDAsMCwwLDk5LDMsMCwwLDAsMCwwLDAsMCw0LDAsMCwKKyAgICAwLDMsMCwwLDAsNjcsMCwwLDAsMTE1LDc2LDAsMCwwLDExNiwwLAorICAgIDAsMTE2LDEsMCwxMzEsMSwwLDEyNSwzLDAsMTI0LDMsMCwxMDYsMiwwLAorICAgIDExNiwzLDAsMTI0LDEsMCwxMzEsMSwwLDEzMSwxLDAsMSwxMjQsMywwLAorICAgIDEwNiwyLDAsMTE2LDMsMCwxMjQsMiwwLDEzMSwxLDAsMTMxLDEsMCwxLAorICAgIDEyNCwzLDAsMTA2LDIsMCwxMTYsNCwwLDEwNiw1LDAsMTI0LDAsMCwxMzEsCisgICAgMSwwLDEzMSwxLDAsMSwxMjQsMywwLDgzLDQwLDEsMCwwLDAsMTE3LAorICAgIDgwLDAsMCwwLDY3LDExMSwxMDksMTEyLDEwNSwxMDgsMTAxLDMyLDk3LDMyLDk5LDExMSwKKyAgICAxMDAsMTAxLDMyLDExMSw5OCwxMDYsMTAxLDk5LDExNiwzMiwxMDUsMTEwLDExNiwxMTEsMzIsOTgsCisgICAgMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsMzIsMTAyLDExMSwxMTQsMzIsMTE5LDExNCwxMDUsMTE2LAorICAgIDEwNSwxMTAsMTAzLDMyLDExMSwxMTcsMTE2LDMyLDExNiwxMTEsMzIsOTcsMzIsOTgsMTIxLDExNiwKKyAgICAxMDEsNDUsOTksMTExLDEwOSwxMTIsMTA1LDEwOCwxMDEsMTAwLDEwLDMyLDMyLDMyLDMyLDEwMiwKKyAgICAxMDUsMTA4LDEwMSw0Niw0MCw2LDAsMCwwLDI0NCw5LDAsMCwwLDk4LDEyMSwKKyAgICAxMTYsMTAxLDk3LDExNCwxMTQsOTcsMTIxLDExNCwxOTQsMCwwLDAsMjQ0LDYsMCwwLAorICAgIDAsMTAxLDEyMCwxMTYsMTAxLDExMCwxMDAsMTE0LDE3LDAsMCwwLDExNCwxOTksMCwwLAorICAgIDAsMTE2LDUsMCwwLDAsMTAwLDExNywxMDksMTEyLDExNSw0MCw0LDAsMCwwLAorICAgIDExNCwyMDIsMCwwLDAsMTE0LDE5MiwwLDAsMCwxMTQsMTk3LDAsMCwwLDExNCwKKyAgICA1MiwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwKKyAgICAwLDAsMCwyNDQsMTcsMCwwLDAsOTUsOTksMTExLDEwMCwxMDEsOTUsMTE2LDExMSwKKyAgICA5NSw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSwxOTksMiwwLDAsMTE1LDEwLDAsCisgICAgMCwwLDAsMywxMiwxLDE5LDEsMTksMSwyMiwxLDExNCwyMDYsMCwwLAorICAgIDAsOTksMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNiwwLAorICAgIDAsMCw2NCwwLDAsMCwxMTUsMTY5LDAsMCwwLDEwMSwwLDAsOTAsMSwKKyAgICAwLDEwMCwwLDAsOTAsMiwwLDEwMCwxLDAsOTAsMywwLDEwMSw0LDAsCisgICAgMTAwLDIsMCwxMDAsMywwLDEzMiwwLDAsMTMxLDEsMCw5MCw1LDAsMTAxLAorICAgIDQsMCwxMDAsNCwwLDEwMCw1LDAsMTAwLDYsMCwxMzIsMSwwLDEzMSwxLAorICAgIDAsOTAsNiwwLDEwMSw0LDAsMTAxLDcsMCwxMDEsOCwwLDEwMSw5LDAsCisgICAgMTAwLDcsMCwxMDAsOCwwLDEzMiwwLDAsMTMxLDEsMCwxMzEsMSwwLDEzMSwKKyAgICAxLDAsMTMxLDEsMCw5MCwxMCwwLDEwMSw0LDAsMTAxLDksMCwxMDAsOSwKKyAgICAwLDEwMCwxMCwwLDEzMiwwLDAsMTMxLDEsMCwxMzEsMSwwLDkwLDExLDAsCisgICAgMTAxLDQsMCwxMDEsOSwwLDEwMCwxMSwwLDEwMCwxMiwwLDEzMiwwLDAsMTMxLAorICAgIDEsMCwxMzEsMSwwLDkwLDEyLDAsMTAxLDQsMCwxMDEsOSwwLDEwMCwxMywKKyAgICAwLDEwMCwxNCwwLDEzMiwwLDAsMTMxLDEsMCwxMzEsMSwwLDkwLDEzLDAsCisgICAgMTAwLDQsMCw4Myw0MCwxNSwwLDAsMCwyNDQsMTUsMCwwLDAsNjYsMTE3LAorICAgIDEwNSwxMDgsMTE2LDEwNSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDExNywxNDQsMCwKKyAgICAwLDAsNzcsMTAxLDExNiw5NywzMiwxMTIsOTcsMTE2LDEwNCwzMiwxMDUsMTA5LDExMiwxMTEsCisgICAgMTE0LDExNiwzMiwxMDIsMTExLDExNCwzMiw5OCwxMTcsMTA1LDEwOCwxMTYsNDUsMTA1LDExMCwzMiwKKyAgICAxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsNDYsMTAsMTAsMzIsMzIsMzIsMzIsNjUsMTA4LAorICAgIDEwOCwzMiwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwxMTUsMzIsOTcsMTE0LDEwMSwzMiwxMDEsMTA1LAorICAgIDExNiwxMDQsMTAxLDExNCwzMiw5OSwxMDgsOTcsMTE1LDExNSwzMiwxMTEsMTE0LDMyLDExNSwxMTYsCisgICAgOTcsMTE2LDEwNSw5OSwzMiwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwxMTUsMzIsMTE2LDExMSwzMiwKKyAgICA5NywxMTgsMTExLDEwNSwxMDAsMzIsMTE2LDEwNCwxMDEsMzIsMTEwLDEwMSwxMDEsMTAwLDMyLDExNiwKKyAgICAxMTEsMTAsMzIsMzIsMzIsMzIsMTA1LDExMCwxMTUsMTE2LDk3LDExMCwxMTYsMTA1LDk3LDExNiwKKyAgICAxMDEsMzIsMTE2LDEwNCwxMDEsMzIsOTksMTA4LDk3LDExNSwxMTUsNDYsMTAsMTAsMzIsMzIsCisgICAgMzIsMzIsOTksMiwwLDAsMCwwLDAsMCwwLDIsMCwwLDAsMiwKKyAgICAwLDAsMCw2NywwLDAsMCwxMTUsMTYsMCwwLDAsMTAwLDEsMCwxMDYsCisgICAgMCwwLDEyNCwxLDAsMTA2LDEsMCwxMzEsMSwwLDgzLDQwLDIsMCwwLAorICAgIDAsNzgsMTE3LDI0LDAsMCwwLDYwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDM5LAorICAgIDEyMywxMjUsMzksMzIsNDAsOTgsMTE3LDEwNSwxMDgsMTE2LDQ1LDEwNSwxMTAsNDEsNjIsNDAsCisgICAgMiwwLDAsMCwxMTQsNDYsMCwwLDAsMTE0LDU2LDAsMCwwLDQwLDIsCisgICAgMCwwLDAsMjQ0LDMsMCwwLDAsOTksMTA4LDExNSwxMTQsMTYwLDAsMCwwLAorICAgIDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwKKyAgICAxMSwwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMTQsMTAxLDExMiwxMTQsMjIwLAorICAgIDIsMCwwLDExNSwyLDAsMCwwLDAsMiwxMTcsMjcsMCwwLDAsNjYsCisgICAgMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDQ2LDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExNCwxMDEsMTEyLDExNCw3OCw5OSwzLDAsMCwwLAorICAgIDAsMCwwLDAsMywwLDAsMCwyLDAsMCwwLDY3LDAsMCwwLAorICAgIDExNSwzOSwwLDAsMCwxMjQsMiwwLDEwMCwxLDAsMTA3LDksMCwxMTQsMTYsCisgICAgMCwxMDAsMSwwLDgzLDExNiwwLDAsMTA2LDEsMCwxMjQsMSwwLDEzMSwxLAorICAgIDAsMTE0LDM1LDAsMTI0LDAsMCw4MywxMDAsMSwwLDgzLDQwLDIsMCwwLAorICAgIDAsMTE3LDExMywwLDAsMCw3MCwxMDUsMTEwLDEwMCwzMiwxMTYsMTA0LDEwMSwzMiw5OCwKKyAgICAxMTcsMTA1LDEwOCwxMTYsNDUsMTA1LDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0NiwxMCwKKyAgICAxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw3MywxMDIsMzIsMzksMTEyLDk3LDExNiwKKyAgICAxMDQsMzksMzIsMTA1LDExNSwzMiwxMDEsMTE4LDEwMSwxMTQsMzIsMTE1LDExMiwxMDEsOTksMTA1LAorICAgIDEwMiwxMDUsMTAxLDEwMCwzMiwxMTYsMTA0LDEwMSwxMTAsMzIsMTE2LDEwNCwxMDEsMzIsMTE1LDEwMSwKKyAgICA5NywxMTQsOTksMTA0LDMyLDEwNSwxMTUsMzIsOTksMTExLDExMCwxMTUsMTA1LDEwMCwxMDEsMTE0LAorICAgIDEwMSwxMDAsMzIsOTcsMzIsMTAyLDk3LDEwNSwxMDgsMTE3LDExNCwxMDEsNDYsMTAsMTAsMzIsCisgICAgMzIsMzIsMzIsMzIsMzIsMzIsMzIsNzgsNDAsMiwwLDAsMCwxMTQsOTYsMCwKKyAgICAwLDAsMTE2LDEwLDAsMCwwLDEwNSwxMTUsOTUsOTgsMTE3LDEwNSwxMDgsMTE2LDEwNSwKKyAgICAxMTAsNDAsMywwLDAsMCwxMTQsMjA4LDAsMCwwLDExNCwxNzcsMCwwLDAsCisgICAgMTE0LDM1LDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCwKKyAgICA1LDAsMCwwLDI0NCwxMSwwLDAsMCwxMDIsMTA1LDExMCwxMDAsOTUsMTA5LDExMSwKKyAgICAxMDAsMTE3LDEwOCwxMDEsMjI0LDIsMCwwLDExNSw2LDAsMCwwLDAsNywxMiwKKyAgICAxLDQsMSwxMTcsMjcsMCwwLDAsNjYsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsNzMsCisgICAgMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDQ2LDEwMiwxMDUsMTEwLDEwMCw5NSwxMDksMTExLDEwMCwKKyAgICAxMTcsMTA4LDEwMSw5OSwyLDAsMCwwLDAsMCwwLDAsMywwLDAsMCwKKyAgICA5LDAsMCwwLDY3LDAsMCwwLDExNSw4OCwwLDAsMCwxMjQsMSwwLAorICAgIDExNiwwLDAsMTA2LDEsMCwxMDcsNiwwLDEyNSwyLDAsMTIxLDIwLDAsMTE2LAorICAgIDIsMCwxMTYsMywwLDEwNiw0LDAsMTI0LDEsMCwxMzEsMiwwLDgzLDg3LAorICAgIDExMCw0NiwwLDEsMSwxLDEyNCwyLDAsMTIsMTE0LDc2LDAsMTI0LDEsMCwKKyAgICAxMTYsMCwwLDEwNiwxLDAsMTA3LDYsMCwxMTQsNzYsMCwxMTYsMCwwLDEwNiwKKyAgICAxLDAsMTI0LDEsMCw2MSwxMTAsMCwwLDEzMCwwLDAsODksMTEwLDEsMCwKKyAgICA4OCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDIzLDAsMCwwLDc2LAorICAgIDExMSw5NywxMDAsMzIsOTcsMzIsOTgsMTE3LDEwNSwxMDgsMTE2LDQ1LDEwNSwxMTAsMzIsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsNDYsNzgsNDAsNSwwLDAsMCwxMTQsNywwLDAsCisgICAgMCwxMTQsMTQ1LDAsMCwwLDExNCwxMDEsMCwwLDAsMTE0LDk2LDAsMCwwLAorICAgIDExNiwxMiwwLDAsMCwxMDUsMTEwLDEwNSwxMTYsOTUsOTgsMTE3LDEwNSwxMDgsMTE2LDEwNSwKKyAgICAxMTAsNDAsMywwLDAsMCwxMTQsMjA4LDAsMCwwLDExNCwxNzcsMCwwLDAsCisgICAgMjQ0LDksMCwwLDAsMTA1LDExNSw5NSwxMTQsMTAxLDEwOCwxMTEsOTcsMTAwLDExNCw0LAorICAgIDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwxMSwwLAorICAgIDAsMCwxMDgsMTExLDk3LDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwyMzUsMiwwLAorICAgIDAsMTE1LDE0LDAsMCwwLDAsNiwxNSwxLDMsMSwyMCwxLDMsMSwKKyAgICAyMiwxLDEzLDEsMTE3LDI3LDAsMCwwLDY2LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLAorICAgIDczLDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCw0NiwxMDgsMTExLDk3LDEwMCw5NSwxMDksMTExLAorICAgIDEwMCwxMTcsMTA4LDEwMSw5OSwyLDAsMCwwLDAsMCwwLDAsMiwwLDAsCisgICAgMCwxLDAsMCwwLDY3LDAsMCwwLDExNSw0LDAsMCwwLDEwMCwxLAorICAgIDAsODMsNDAsMiwwLDAsMCwxMTcsNTcsMCwwLDAsODIsMTAxLDExNiwxMTcsCisgICAgMTE0LDExMCwzMiw3OCwxMTEsMTEwLDEwMSwzMiw5NywxMTUsMzIsOTgsMTE3LDEwNSwxMDgsMTE2LAorICAgIDQ1LDEwNSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDMyLDEwMCwxMTEsMzIsMTEwLAorICAgIDExMSwxMTYsMzIsMTA0LDk3LDExOCwxMDEsMzIsOTksMTExLDEwMCwxMDEsMzIsMTExLDk4LDEwNiwKKyAgICAxMDEsOTksMTE2LDExNSw0Niw3OCwxMTQsNCwwLDAsMCw0MCwyLDAsMCwwLAorICAgIDExNCwyMDgsMCwwLDAsMTE0LDE3NywwLDAsMCwxMTQsNCwwLDAsMCwxMTQsCisgICAgNCwwLDAsMCwxMTQsNSwwLDAsMCwyNDQsOCwwLDAsMCwxMDMsMTAxLAorICAgIDExNiw5NSw5OSwxMTEsMTAwLDEwMSwyNDksMiwwLDAsMTE1LDIsMCwwLDAsMCwKKyAgICA0LDExNywyNCwwLDAsMCw2NiwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCw3MywxMDksMTEyLAorICAgIDExMSwxMTQsMTE2LDEwMSwxMTQsNDYsMTAzLDEwMSwxMTYsOTUsOTksMTExLDEwMCwxMDEsOTksMiwKICAgICAwLDAsMCwwLDAsMCwwLDIsMCwwLDAsMSwwLDAsMCw2NywKICAgICAwLDAsMCwxMTUsNCwwLDAsMCwxMDAsMSwwLDgzLDQwLDIsMCwwLAotICAgIDAsMTE3LDU3LDAsMCwwLDgyLDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsNzgsMTExLDExMCwKKyAgICAwLDExNyw1NiwwLDAsMCw4MiwxMDEsMTE2LDExNywxMTQsMTEwLDMyLDc4LDExMSwxMTAsCiAgICAgMTAxLDMyLDk3LDExNSwzMiw5OCwxMTcsMTA1LDEwOCwxMTYsNDUsMTA1LDExMCwzMiwxMDksMTExLAogICAgIDEwMCwxMTcsMTA4LDEwMSwxMTUsMzIsMTAwLDExMSwzMiwxMTAsMTExLDExNiwzMiwxMDQsOTcsMTE4LAotICAgIDEwMSwzMiw5OSwxMTEsMTAwLDEwMSwzMiwxMTEsOTgsMTA2LDEwMSw5OSwxMTYsMTE1LDQ2LDc4LAotICAgIDQwLDEsMCwwLDAsMTE3LDQsMCwwLDAsNzgsMTExLDExMCwxMDEsNDAsMiwKLSAgICAwLDAsMCwxMTcsMywwLDAsMCw5OSwxMDgsMTE1LDExNyw4LDAsMCwwLAotICAgIDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwKLSAgICAwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwKLSAgICAxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwKLSAgICAxMTQsOTcsMTEyLDYyLDExNyw4LDAsMCwwLDEwMywxMDEsMTE2LDk1LDk5LDExMSwxMDAsCi0gICAgMTAxLDE1NiwyLDAsMCwxMTUsMiwwLDAsMCwwLDQsMTE3LDI0LDAsMCwKKyAgICAxMDEsMzIsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwzMiw5OSwxMTEsMTAwLDEwMSw0Niw3OCwxMTQsCisgICAgNCwwLDAsMCw0MCwyLDAsMCwwLDExNCwyMDgsMCwwLDAsMTE0LDE3NywKKyAgICAwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLAorICAgIDAsMCwyNDQsMTAsMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTE1LDExMSwxMTcsMTE0LDk5LAorICAgIDEwMSwyNTUsMiwwLDAsMTE1LDIsMCwwLDAsMCw0LDExNywyNiwwLDAsCiAgICAgMCw2NiwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsCi0gICAgNDYsMTAzLDEwMSwxMTYsOTUsOTksMTExLDEwMCwxMDEsOTksMiwwLDAsMCwwLDAsCi0gICAgMCwwLDIsMCwwLDAsMSwwLDAsMCw2NywwLDAsMCwxMTUsNCwKLSAgICAwLDAsMCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDU2LDAsMCwKLSAgICAwLDgyLDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsNzgsMTExLDExMCwxMDEsMzIsOTcsMTE1LDMyLAotICAgIDk4LDExNywxMDUsMTA4LDExNiw0NSwxMDUsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwKLSAgICAzMiwxMDAsMTExLDMyLDExMCwxMTEsMTE2LDMyLDEwNCw5NywxMTgsMTAxLDMyLDExNSwxMTEsMTE3LAotICAgIDExNCw5OSwxMDEsMzIsOTksMTExLDEwMCwxMDEsNDYsNzgsNDAsMSwwLDAsMCwxMTcsCi0gICAgNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSw0MCwyLDAsMCwwLDExNywzLDAsCi0gICAgMCwwLDk5LDEwOCwxMTUsMTE3LDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LDExMCw5NywKLSAgICAxMDksMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLAotICAgIDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LAotICAgIDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEwLAotICAgIDAsMCwwLDEwMywxMDEsMTE2LDk1LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMTYyLDIsMCwKLSAgICAwLDExNSwyLDAsMCwwLDAsNCwxMTcsMjYsMCwwLDAsNjYsMTE3LDEwNSwKLSAgICAxMDgsMTE2LDEwNSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDQ2LDEwMywxMDEsMTE2LAotICAgIDk1LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsOTksMiwwLDAsMCwwLDAsMCwwLAotICAgIDIsMCwwLDAsMSwwLDAsMCw2NywwLDAsMCwxMTUsNCwwLDAsCi0gICAgMCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDUyLDAsMCwwLDgyLAotICAgIDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsNzAsOTcsMTA4LDExNSwxMDEsMzIsOTcsMTE1LDMyLDk4LAotICAgIDExNywxMDUsMTA4LDExNiw0NSwxMDUsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwzMiwKLSAgICA5NywxMTQsMTAxLDMyLDExMCwxMDEsMTE4LDEwMSwxMTQsMzIsMTEyLDk3LDk5LDEwNyw5NywxMDMsCi0gICAgMTAxLDExNSw0Niw3MCw0MCwxLDAsMCwwLDExNyw1LDAsMCwwLDcwLDk3LAotICAgIDEwOCwxMTUsMTAxLDQwLDIsMCwwLDAsMTE3LDMsMCwwLDAsOTksMTA4LDExNSwKLSAgICAxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsNDAsMCwwLAotICAgIDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwKLSAgICAxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LAotICAgIDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTAsMCwwLDAsMTA1LDExNSwKLSAgICA5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMTY4LDIsMCwwLDExNSwyLDAsMCwKLSAgICAwLDAsNCwxMTcsMjYsMCwwLDAsNjYsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsNzMsCi0gICAgMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDQ2LDEwNSwxMTUsOTUsMTEyLDk3LDk5LDEwNyw5NywKLSAgICAxMDMsMTAxLDc4LDQwLDE1LDAsMCwwLDExNyw4LDAsMCwwLDk1LDk1LDExMCwKLSAgICA5NywxMDksMTAxLDk1LDk1LDExNywxMCwwLDAsMCw5NSw5NSwxMDksMTExLDEwMCwxMTcsCi0gICAgMTA4LDEwMSw5NSw5NSwxMTcsMTIsMCwwLDAsOTUsOTUsMTEzLDExNyw5NywxMDgsMTEwLAotICAgIDk3LDEwOSwxMDEsOTUsOTUsMTE3LDcsMCwwLDAsOTUsOTUsMTAwLDExMSw5OSw5NSwKLSAgICA5NSwxMTcsMTEsMCwwLDAsOTksMTA4LDk3LDExNSwxMTUsMTA5LDEwMSwxMTYsMTA0LDExMSwKLSAgICAxMDAsMTE3LDExLDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExNCwxMDEsMTEyLAotICAgIDExNCwxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsMTEsMCwwLDAsMTAyLAotICAgIDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNywxMSwwLDAsMCwxMTUsCi0gICAgMTAxLDExNiw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMTE3LDEwLDAsMCwwLDExNSwKLSAgICAxMDEsMTE2LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LDE3LDAsMCwwLDk1LDExNCwKLSAgICAxMDEsMTEzLDExNywxMDUsMTE0LDEwMSwxMTUsOTUsOTgsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsMTE3LAotICAgIDExLDAsMCwwLDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNywKLSAgICA4LDAsMCwwLDEwMywxMDEsMTE2LDk1LDk5LDExMSwxMDAsMTAxLDExNywxMCwwLDAsCi0gICAgMCwxMDMsMTAxLDExNiw5NSwxMTUsMTExLDExNywxMTQsOTksMTAxLDExNywxMCwwLDAsMCwKLSAgICAxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw0MCwxLDAsMCwwLDExNywKLSAgICAxMCwwLDAsMCw5NSw5NSwxMDgsMTExLDk5LDk3LDEwOCwxMTUsOTUsOTUsNDAsMCwKLSAgICAwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LAotICAgIDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LAotICAgIDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTUsMCwwLDAsNjYsCi0gICAgMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDExOCwyLAotICAgIDAsMCwxMTUsMjgsMCwwLDAsMTYsNyw2LDIsMTgsNCwzLDEsMTgsCi0gICAgMTAsMywxLDMsMSwzLDEsMjcsMTEsMywxLDIxLDUsMywxLDIxLAotICAgIDUsMywxLDExNywxNSwwLDAsMCw2NiwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCw3MywKLSAgICAxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsOTksMSwwLDAsMCwwLDAsMCwwLAotICAgIDEsMCwwLDAsNiwwLDAsMCw2NiwwLDAsMCwxMTUsMTczLDAsMCwKLSAgICAwLDEyNCwwLDAsNjksMTAxLDAsMCw5MCwxLDAsMTAwLDAsMCw5MCwyLAotICAgIDAsMTAwLDEsMCw5MCwzLDAsMTAxLDQsMCwxMDAsMiwwLDEwMCwzLDAsCi0gICAgMTMyLDAsMCwxMzEsMSwwLDkwLDUsMCwxMDEsNCwwLDEwMCwxNCwwLDEwMCwKLSAgICA0LDAsMTAwLDUsMCwxMzIsMSwwLDEzMSwxLDAsOTAsNywwLDEwMSw0LAotICAgIDAsMTAxLDgsMCwxMDEsOSwwLDEwMSwxMCwwLDEwMCw2LDAsMTAwLDcsMCwKLSAgICAxMzIsMCwwLDEzMSwxLDAsMTMxLDEsMCwxMzEsMSwwLDEzMSwxLDAsOTAsCi0gICAgMTEsMCwxMDEsNCwwLDEwMSwxMCwwLDEwMCw4LDAsMTAwLDksMCwxMzIsMCwKLSAgICAwLDEzMSwxLDAsMTMxLDEsMCw5MCwxMiwwLDEwMSw0LDAsMTAxLDEwLDAsCi0gICAgMTAwLDEwLDAsMTAwLDExLDAsMTMyLDAsMCwxMzEsMSwwLDEzMSwxLDAsOTAsCi0gICAgMTMsMCwxMDEsNCwwLDEwMSwxMCwwLDEwMCwxMiwwLDEwMCwxMywwLDEzMiwwLAotICAgIDAsMTMxLDEsMCwxMzEsMSwwLDkwLDE0LDAsMTAwLDE0LDAsODMsNDAsMTUsCi0gICAgMCwwLDAsMTE3LDE0LDAsMCwwLDcwLDExNCwxMTEsMTIyLDEwMSwxMTAsNzMsMTA5LAotICAgIDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDExNywxNDIsMCwwLDAsNzcsMTAxLDExNiw5NywzMiwKLSAgICAxMTIsOTcsMTE2LDEwNCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwzMiwxMDIsMTExLDExNCwzMiwKLSAgICAxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsNDYsMTAsCi0gICAgMTAsMzIsMzIsMzIsMzIsNjUsMTA4LDEwOCwzMiwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwxMTUsCi0gICAgMzIsOTcsMTE0LDEwMSwzMiwxMDEsMTA1LDExNiwxMDQsMTAxLDExNCwzMiw5OSwxMDgsOTcsMTE1LAotICAgIDExNSwzMiwxMTEsMTE0LDMyLDExNSwxMTYsOTcsMTE2LDEwNSw5OSwzMiwxMDksMTAxLDExNiwxMDQsCi0gICAgMTExLDEwMCwxMTUsMzIsMTE2LDExMSwzMiw5NywxMTgsMTExLDEwNSwxMDAsMzIsMTE2LDEwNCwxMDEsCi0gICAgMzIsMTEwLDEwMSwxMDEsMTAwLDMyLDExNiwxMTEsMTAsMzIsMzIsMzIsMzIsMTA1LDExMCwxMTUsCi0gICAgMTE2LDk3LDExMCwxMTYsMTA1LDk3LDExNiwxMDEsMzIsMTE2LDEwNCwxMDEsMzIsOTksMTA4LDk3LAotICAgIDExNSwxMTUsNDYsMTAsMTAsMzIsMzIsMzIsMzIsOTksMiwwLDAsMCwwLDAsCi0gICAgMCwwLDIsMCwwLDAsMiwwLDAsMCw2NywwLDAsMCwxMTUsMTYsCi0gICAgMCwwLDAsMTAwLDEsMCwxMDYsMCwwLDEyNCwxLDAsMTA2LDEsMCwxMzEsCi0gICAgMSwwLDgzLDQwLDIsMCwwLDAsNzgsMTE3LDIyLDAsMCwwLDYwLDEwOSwKLSAgICAxMTEsMTAwLDExNywxMDgsMTAxLDMyLDM5LDEyMywxMjUsMzksMzIsNDAsMTAyLDExNCwxMTEsMTIyLAotICAgIDEwMSwxMTAsNDEsNjIsNDAsMiwwLDAsMCwxMTcsNiwwLDAsMCwxMDIsMTExLAotICAgIDExNCwxMDksOTcsMTE2LDExNyw4LDAsMCwwLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LAotICAgIDk1LDQwLDIsMCwwLDAsMTE3LDMsMCwwLDAsOTksMTA4LDExNSwxMTcsMSwKLSAgICAwLDAsMCwxMDksNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwKLSAgICAwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LAotICAgIDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwKLSAgICAxMTcsMTEsMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsMTE0LDEwMSwxMTIsMTE0LAotICAgIDE4NCwyLDAsMCwxMTUsMiwwLDAsMCwwLDIsMTE3LDI2LDAsMCwwLAotICAgIDcwLDExNCwxMTEsMTIyLDEwMSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDQ2LDEwOSwKLSAgICAxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExNCwxMDEsMTEyLDExNCw5OSwzLDAsMCwwLDAsCisgICAgNDYsMTAzLDEwMSwxMTYsOTUsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSw5OSwyLDAsMCwwLAorICAgIDAsMCwwLDAsMiwwLDAsMCwxLDAsMCwwLDY3LDAsMCwwLAorICAgIDExNSw0LDAsMCwwLDEwMCwxLDAsODMsNDAsMiwwLDAsMCwxMTcsNTIsCisgICAgMCwwLDAsODIsMTAxLDExNiwxMTcsMTE0LDExMCwzMiw3MCw5NywxMDgsMTE1LDEwMSwzMiwKKyAgICA5NywxMTUsMzIsOTgsMTE3LDEwNSwxMDgsMTE2LDQ1LDEwNSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LAorICAgIDEwOCwxMDEsMTE1LDMyLDk3LDExNCwxMDEsMzIsMTEwLDEwMSwxMTgsMTAxLDExNCwzMiwxMTIsOTcsCisgICAgOTksMTA3LDk3LDEwMywxMDEsMTE1LDQ2LDcwLDExNCw0LDAsMCwwLDQwLDIsMCwKKyAgICAwLDAsMTE0LDIwOCwwLDAsMCwxMTQsMTc3LDAsMCwwLDExNCw0LDAsMCwKKyAgICAwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDExNCwxNTUsMCwwLDAsCisgICAgNSwzLDAsMCwxMTUsMiwwLDAsMCwwLDQsMTE3LDI2LDAsMCwwLAorICAgIDY2LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCw0NiwKKyAgICAxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw0MCwxNCwwLDAsMCwxMTQsCisgICAgNTYsMCwwLDAsMTE0LDU1LDAsMCwwLDExNCw1NywwLDAsMCwxMTQsNTgsCisgICAgMCwwLDAsMjQ0LDExLDAsMCwwLDk5LDEwOCw5NywxMTUsMTE1LDEwOSwxMDEsMTE2LAorICAgIDEwNCwxMTEsMTAwLDExNCwyMDksMCwwLDAsMTE0LDIxMCwwLDAsMCwxMTQsMTY5LDAsCisgICAgMCwwLDExNCwxNzIsMCwwLDAsMTE0LDE3OSwwLDAsMCwxMTQsMjEyLDAsMCwKKyAgICAwLDExNCwyMTMsMCwwLDAsMTE0LDIxNCwwLDAsMCwxMTQsMTU1LDAsMCwwLAorICAgIDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCwKKyAgICA1LDAsMCwwLDExNCwyMDcsMCwwLDAsMjExLDIsMCwwLDExNSwyOCwwLAorICAgIDAsMCwxMiw3LDYsMiwxOCw0LDMsMSwxOCwxMCwzLDEsMywxLAorICAgIDMsMSwyNywxMSwzLDEsMjEsNSwzLDEsMjEsNSwzLDEsMTE0LDIwNywKKyAgICAwLDAsMCw5OSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwKKyAgICA2LDAsMCwwLDY0LDAsMCwwLDExNSwxNjksMCwwLDAsMTAxLDAsMCwKKyAgICA5MCwxLDAsMTAwLDAsMCw5MCwyLDAsMTAwLDEsMCw5MCwzLDAsMTAxLAorICAgIDQsMCwxMDAsMiwwLDEwMCwzLDAsMTMyLDAsMCwxMzEsMSwwLDkwLDUsCisgICAgMCwxMDEsNCwwLDEwMCw0LDAsMTAwLDUsMCwxMDAsNiwwLDEzMiwxLDAsCisgICAgMTMxLDEsMCw5MCw2LDAsMTAxLDQsMCwxMDEsNywwLDEwMSw4LDAsMTAxLAorICAgIDksMCwxMDAsNywwLDEwMCw4LDAsMTMyLDAsMCwxMzEsMSwwLDEzMSwxLAorICAgIDAsMTMxLDEsMCwxMzEsMSwwLDkwLDEwLDAsMTAxLDQsMCwxMDEsOSwwLAorICAgIDEwMCw5LDAsMTAwLDEwLDAsMTMyLDAsMCwxMzEsMSwwLDEzMSwxLDAsOTAsCisgICAgMTEsMCwxMDEsNCwwLDEwMSw5LDAsMTAwLDExLDAsMTAwLDEyLDAsMTMyLDAsCisgICAgMCwxMzEsMSwwLDEzMSwxLDAsOTAsMTIsMCwxMDEsNCwwLDEwMSw5LDAsCisgICAgMTAwLDEzLDAsMTAwLDE0LDAsMTMyLDAsMCwxMzEsMSwwLDEzMSwxLDAsOTAsCisgICAgMTMsMCwxMDAsNCwwLDgzLDQwLDE1LDAsMCwwLDI0NCwxNCwwLDAsMCwKKyAgICA3MCwxMTQsMTExLDEyMiwxMDEsMTEwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCwxMTcsMTQyLAorICAgIDAsMCwwLDc3LDEwMSwxMTYsOTcsMzIsMTEyLDk3LDExNiwxMDQsMzIsMTA1LDEwOSwxMTIsCisgICAgMTExLDExNCwxMTYsMzIsMTAyLDExMSwxMTQsMzIsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDY1LDEwOCwxMDgsCisgICAgMzIsMTA5LDEwMSwxMTYsMTA0LDExMSwxMDAsMTE1LDMyLDk3LDExNCwxMDEsMzIsMTAxLDEwNSwxMTYsCisgICAgMTA0LDEwMSwxMTQsMzIsOTksMTA4LDk3LDExNSwxMTUsMzIsMTExLDExNCwzMiwxMTUsMTE2LDk3LAorICAgIDExNiwxMDUsOTksMzIsMTA5LDEwMSwxMTYsMTA0LDExMSwxMDAsMTE1LDMyLDExNiwxMTEsMzIsOTcsCisgICAgMTE4LDExMSwxMDUsMTAwLDMyLDExNiwxMDQsMTAxLDMyLDExMCwxMDEsMTAxLDEwMCwzMiwxMTYsMTExLAorICAgIDEwLDMyLDMyLDMyLDMyLDEwNSwxMTAsMTE1LDExNiw5NywxMTAsMTE2LDEwNSw5NywxMTYsMTAxLAorICAgIDMyLDExNiwxMDQsMTAxLDMyLDk5LDEwOCw5NywxMTUsMTE1LDQ2LDEwLDEwLDMyLDMyLDMyLAorICAgIDMyLDk5LDIsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDIsMCwKKyAgICAwLDAsNjcsMCwwLDAsMTE1LDE2LDAsMCwwLDEwMCwxLDAsMTA2LDAsCisgICAgMCwxMjQsMSwwLDEwNiwxLDAsMTMxLDEsMCw4Myw0MCwyLDAsMCwwLAorICAgIDc4LDExNywyMiwwLDAsMCw2MCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwzOSwxMjMsCisgICAgMTI1LDM5LDMyLDQwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDQxLDYyLDQwLDIsMCwwLAorICAgIDAsMTE0LDQ2LDAsMCwwLDExNCw1NiwwLDAsMCw0MCwyLDAsMCwwLAorICAgIDExNCwyMDgsMCwwLDAsMjQ0LDEsMCwwLDAsMTA5LDExNCw0LDAsMCwwLAorICAgIDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDExNCwyMDksMCwwLDAsMjEsCisgICAgMywwLDAsMTE1LDIsMCwwLDAsMCwyLDExNywyNiwwLDAsMCw3MCwKKyAgICAxMTQsMTExLDEyMiwxMDEsMTEwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCw0NiwxMDksMTExLAorICAgIDEwMCwxMTcsMTA4LDEwMSw5NSwxMTQsMTAxLDExMiwxMTQsNzgsOTksMywwLDAsMCwwLAogICAgIDAsMCwwLDMsMCwwLDAsMiwwLDAsMCw2NywwLDAsMCwxMTUsCiAgICAgMjMsMCwwLDAsMTE2LDAsMCwxMDYsMSwwLDEyNCwxLDAsMTMxLDEsMCwKICAgICAxMTQsMTksMCwxMjQsMCwwLDgzLDEwMCwxLDAsODMsNDAsMiwwLDAsMCwKICAgICAxMTcsMjEsMCwwLDAsNzAsMTA1LDExMCwxMDAsMzIsOTcsMzIsMTAyLDExNCwxMTEsMTIyLAotICAgIDEwMSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDYsNzgsNDAsMywwLDAsMCwKLSAgICAxMTcsNCwwLDAsMCw5NSwxMDUsMTA5LDExMiwxMTcsOSwwLDAsMCwxMDUsMTE1LAotICAgIDk1LDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLAotICAgIDQwLDMsMCwwLDAsMTE3LDMsMCwwLDAsOTksMTA4LDExNSwxMTcsOCwwLAotICAgIDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsMTE3LDQsMCwwLDAsMTEyLAotICAgIDk3LDExNiwxMDQsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLAotICAgIDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwKLSAgICAxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsCi0gICAgMTEsMCwwLDAsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDE4OCwKLSAgICAyLDAsMCwxMTUsMiwwLDAsMCwwLDMsMTE3LDI2LDAsMCwwLDcwLAotICAgIDExNCwxMTEsMTIyLDEwMSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDQ2LDEwMiwxMDUsCi0gICAgMTEwLDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5OSwyLDAsMCwwLDAsMCwKLSAgICAwLDAsNCwwLDAsMCw5LDAsMCwwLDY3LDAsMCwwLDExNSwxMDAsCi0gICAgMCwwLDAsMTI0LDEsMCwxMTYsMCwwLDEwNiwxLDAsMTA3LDYsMCwxMjUsCi0gICAgMiwwLDEyMSwzMiwwLDExNiwyLDAsMTE2LDMsMCwxMDYsNCwwLDEyNCwxLAotICAgIDAsMTMxLDIsMCwxMjUsMywwLDEyNCwzLDAsOTYsNSwwLDEyNCwzLDAsCi0gICAgODMsODcsMTEwLDQ2LDAsMSwxLDEsMTI0LDIsMCwxMiwxMTQsODgsMCwxMjQsCi0gICAgMSwwLDExNiwwLDAsMTA2LDEsMCwxMDcsNiwwLDExNCw4OCwwLDExNiwwLAotICAgIDAsMTA2LDEsMCwxMjQsMSwwLDYxLDExMCwwLDAsMTMwLDAsMCw4OSwxMTAsCi0gICAgMSwwLDg4LDEwMCwxLDAsODMsNDAsMiwwLDAsMCwxMTcsMjEsMCwwLAotICAgIDAsNzYsMTExLDk3LDEwMCwzMiw5NywzMiwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDksCi0gICAgMTExLDEwMCwxMTcsMTA4LDEwMSw0Niw3OCw0MCw2LDAsMCwwLDExNywzLDAsMCwKLSAgICAwLDExNSwxMjEsMTE1LDExNyw3LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwKLSAgICAxMTcsMjUsMCwwLDAsOTUsOTksOTcsMTA4LDEwOCw5NSwxMTksMTA1LDExNiwxMDQsOTUsCi0gICAgMTAyLDExNCw5NywxMDksMTAxLDExNSw5NSwxMTQsMTAxLDEwOSwxMTEsMTE4LDEwMSwxMDAsMTE3LDQsCi0gICAgMCwwLDAsOTUsMTA1LDEwOSwxMTIsMTE3LDExLDAsMCwwLDEwNSwxMTAsMTA1LDExNiwKLSAgICA5NSwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwxMTcsOCwwLDAsMCw5NSw5NSwxMDIsMTA1LAotICAgIDEwOCwxMDEsOTUsOTUsNDAsNCwwLDAsMCwxMTcsMywwLDAsMCw5OSwxMDgsCi0gICAgMTE1LDExNyw4LDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSwxMTcsOSwKLSAgICAwLDAsMCwxMDUsMTE1LDk1LDExNCwxMDEsMTA4LDExMSw5NywxMDAsMTE3LDEsMCwwLAotICAgIDAsMTA5LDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLAotICAgIDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LAotICAgIDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDExLAotICAgIDAsMCwwLDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDE5MywyLAotICAgIDAsMCwxMTUsMTgsMCwwLDAsMCw2LDE1LDEsMywxLDE4LDIsNiwKLSAgICAxLDgsMSwzLDEsMjIsMSwxMywxLDExNywyNiwwLDAsMCw3MCwxMTQsCi0gICAgMTExLDEyMiwxMDEsMTEwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCw0NiwxMDgsMTExLDk3LAotICAgIDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5OSwyLDAsMCwwLDAsMCwwLAotICAgIDAsMiwwLDAsMCwyLDAsMCwwLDY3LDAsMCwwLDExNSwxMywwLAotICAgIDAsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LDEsMCwxMzEsMSwwLDgzLDQwLAotICAgIDEsMCwwLDAsMTE3LDQ1LDAsMCwwLDgyLDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsCi0gICAgMTE2LDEwNCwxMDEsMzIsOTksMTExLDEwMCwxMDEsMzIsMTExLDk4LDEwNiwxMDEsOTksMTE2LDMyLAotICAgIDEwMiwxMTEsMTE0LDMyLDExNiwxMDQsMTAxLDMyLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwOSwKLSAgICAxMTEsMTAwLDExNywxMDgsMTAxLDQ2LDQwLDIsMCwwLDAsMTE3LDQsMCwwLDAsCi0gICAgOTUsMTA1LDEwOSwxMTIsMTE3LDE3LDAsMCwwLDEwMywxMDEsMTE2LDk1LDEwMiwxMTQsMTExLAotICAgIDEyMiwxMDEsMTEwLDk1LDExMSw5OCwxMDYsMTAxLDk5LDExNiw0MCwyLDAsMCwwLDExNywKLSAgICAzLDAsMCwwLDk5LDEwOCwxMTUsMTE3LDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LAotICAgIDExMCw5NywxMDksMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksCi0gICAgMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwKLSAgICAxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsCi0gICAgMTE3LDgsMCwwLDAsMTAzLDEwMSwxMTYsOTUsOTksMTExLDEwMCwxMDEsMjEwLDIsMCwKLSAgICAwLDExNSwyLDAsMCwwLDAsNCwxMTcsMjMsMCwwLDAsNzAsMTE0LDExMSwKLSAgICAxMjIsMTAxLDExMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsNDYsMTAzLDEwMSwxMTYsOTUsCi0gICAgOTksMTExLDEwMCwxMDEsOTksMiwwLDAsMCwwLDAsMCwwLDIsMCwwLAotICAgIDAsMSwwLDAsMCw2NywwLDAsMCwxMTUsNCwwLDAsMCwxMDAsMSwKLSAgICAwLDgzLDQwLDIsMCwwLDAsMTE3LDU0LDAsMCwwLDgyLDEwMSwxMTYsMTE3LAotICAgIDExNCwxMTAsMzIsNzgsMTExLDExMCwxMDEsMzIsOTcsMTE1LDMyLDEwMiwxMTQsMTExLDEyMiwxMDEsCi0gICAgMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwzMiwxMDAsMTExLDMyLDExMCwxMTEsMTE2LAotICAgIDMyLDEwNCw5NywxMTgsMTAxLDMyLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMzIsOTksMTExLDEwMCwKLSAgICAxMDEsNDYsNzgsNDAsMSwwLDAsMCwxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLAotICAgIDEwMSw0MCwyLDAsMCwwLDExNywzLDAsMCwwLDk5LDEwOCwxMTUsMTE3LDgsCi0gICAgMCwwLDAsMTAyLDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLDQwLDAsMCwwLDAsCi0gICAgNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwKLSAgICAxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLAotICAgIDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEwLDAsMCwwLDEwMywxMDEsMTE2LDk1LAotICAgIDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMjE2LDIsMCwwLDExNSwyLDAsMCwwLDAsCi0gICAgNCwxMTcsMjUsMCwwLDAsNzAsMTE0LDExMSwxMjIsMTAxLDExMCw3MywxMDksMTEyLDExMSwKLSAgICAxMTQsMTE2LDEwMSwxMTQsNDYsMTAzLDEwMSwxMTYsOTUsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSw5OSwKKyAgICAxMDEsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQ2LDc4LDQwLDIsMCwwLDAsCisgICAgMTE0LDk2LDAsMCwwLDExNCwxODAsMCwwLDAsNDAsMywwLDAsMCwxMTQsCisgICAgMjA4LDAsMCwwLDExNCwxNzcsMCwwLDAsMTE0LDM1LDAsMCwwLDExNCw0LAorICAgIDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDExNCwyMTAsMCwKKyAgICAwLDAsMjUsMywwLDAsMTE1LDIsMCwwLDAsMCwzLDExNywyNiwwLAorICAgIDAsMCw3MCwxMTQsMTExLDEyMiwxMDEsMTEwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCwKKyAgICA0NiwxMDIsMTA1LDExMCwxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTksMiwwLDAsCisgICAgMCwwLDAsMCwwLDQsMCwwLDAsOSwwLDAsMCw2NywwLDAsCisgICAgMCwxMTUsMTAwLDAsMCwwLDEyNCwxLDAsMTE2LDAsMCwxMDYsMSwwLDEwNywKKyAgICA2LDAsMTI1LDIsMCwxMjEsMzIsMCwxMTYsMiwwLDExNiwzLDAsMTA2LDQsCisgICAgMCwxMjQsMSwwLDEzMSwyLDAsMTI1LDMsMCwxMjQsMywwLDk2LDUsMCwKKyAgICAxMjQsMywwLDgzLDg3LDExMCw0NiwwLDEsMSwxLDEyNCwyLDAsMTIsMTE0LAorICAgIDg4LDAsMTI0LDEsMCwxMTYsMCwwLDEwNiwxLDAsMTA3LDYsMCwxMTQsODgsCisgICAgMCwxMTYsMCwwLDEwNiwxLDAsMTI0LDEsMCw2MSwxMTAsMCwwLDEzMCwwLAorICAgIDAsODksMTEwLDEsMCw4OCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LAorICAgIDIxLDAsMCwwLDc2LDExMSw5NywxMDAsMzIsOTcsMzIsMTAyLDExNCwxMTEsMTIyLDEwMSwKKyAgICAxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDYsNzgsNDAsNiwwLDAsMCwxMTQsCisgICAgNywwLDAsMCwxMTQsMTQ1LDAsMCwwLDExNCwxMDEsMCwwLDAsMTE0LDk2LAorICAgIDAsMCwwLDExNiwxMSwwLDAsMCwxMDUsMTEwLDEwNSwxMTYsOTUsMTAyLDExNCwxMTEsCisgICAgMTIyLDEwMSwxMTAsMTE0LDE2MywwLDAsMCw0MCw0LDAsMCwwLDExNCwyMDgsMCwKKyAgICAwLDAsMTE0LDE3NywwLDAsMCwxMTQsMjExLDAsMCwwLDExNCwyMTcsMCwwLAorICAgIDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsCisgICAgMTE0LDIxMiwwLDAsMCwzMCwzLDAsMCwxMTUsMTgsMCwwLDAsMCw2LAorICAgIDE1LDEsMywxLDE4LDIsNiwxLDgsMSwzLDEsMjIsMSwxMywxLAorICAgIDExNywyNiwwLDAsMCw3MCwxMTQsMTExLDEyMiwxMDEsMTEwLDczLDEwOSwxMTIsMTExLDExNCwKKyAgICAxMTYsMTAxLDExNCw0NiwxMDgsMTExLDk3LDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5OSwKICAgICAyLDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwyLDAsMCwwLAogICAgIDY3LDAsMCwwLDExNSwxMywwLDAsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LAotICAgIDEsMCwxMzEsMSwwLDgzLDQwLDEsMCwwLDAsMTE3LDQ2LDAsMCwwLAotICAgIDgyLDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsODQsMTE0LDExNywxMDEsMzIsMTA1LDEwMiwzMiwxMTYsCi0gICAgMTA0LDEwMSwzMiwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwKLSAgICAzMiwxMDUsMTE1LDMyLDk3LDMyLDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw0Niw0MCwyLAotICAgIDAsMCwwLDExNyw0LDAsMCwwLDk1LDEwNSwxMDksMTEyLDExNywxNywwLDAsCi0gICAgMCwxMDUsMTE1LDk1LDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDk1LDExMiw5Nyw5OSwxMDcsOTcsCi0gICAgMTAzLDEwMSw0MCwyLDAsMCwwLDExNywzLDAsMCwwLDk5LDEwOCwxMTUsMTE3LAotICAgIDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLDQwLDAsMCwwLAotICAgIDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLAotICAgIDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsCi0gICAgMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEwLDAsMCwwLDEwNSwxMTUsOTUsCi0gICAgMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDIyMiwyLDAsMCwxMTUsMiwwLDAsMCwKLSAgICAwLDQsMTE3LDI1LDAsMCwwLDcwLDExNCwxMTEsMTIyLDEwMSwxMTAsNzMsMTA5LDExMiwKLSAgICAxMTEsMTE0LDExNiwxMDEsMTE0LDQ2LDEwNSwxMTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLAotICAgIDc4LDQwLDE1LDAsMCwwLDExNyw4LDAsMCwwLDk1LDk1LDExMCw5NywxMDksCi0gICAgMTAxLDk1LDk1LDExNywxMCwwLDAsMCw5NSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwKLSAgICA5NSw5NSwxMTcsMTIsMCwwLDAsOTUsOTUsMTEzLDExNyw5NywxMDgsMTEwLDk3LDEwOSwKLSAgICAxMDEsOTUsOTUsMTE3LDcsMCwwLDAsOTUsOTUsMTAwLDExMSw5OSw5NSw5NSwxMTcsCi0gICAgMTEsMCwwLDAsOTksMTA4LDk3LDExNSwxMTUsMTA5LDEwMSwxMTYsMTA0LDExMSwxMDAsMTE3LAotICAgIDExLDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExNCwxMDEsMTEyLDExNCwxMTcsCi0gICAgNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsMTEsMCwwLDAsMTAyLDEwNSwxMTAsCi0gICAgMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNywxMSwwLDAsMCwxMTUsMTAxLDExNiwKLSAgICA5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMTE3LDEwLDAsMCwwLDExNSwxMDEsMTE2LAotICAgIDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LDE2LDAsMCwwLDk1LDExNCwxMDEsMTEzLAotICAgIDExNywxMDUsMTE0LDEwMSwxMTUsOTUsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMTE3LDExLDAsMCwKLSAgICAwLDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNyw4LDAsMCwKLSAgICAwLDEwMywxMDEsMTE2LDk1LDk5LDExMSwxMDAsMTAxLDExNywxMCwwLDAsMCwxMDMsMTAxLAotICAgIDExNiw5NSwxMTUsMTExLDExNywxMTQsOTksMTAxLDExNywxMCwwLDAsMCwxMDUsMTE1LDk1LAotICAgIDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw0MCwxLDAsMCwwLDExNywxMCwwLDAsCi0gICAgMCw5NSw5NSwxMDgsMTExLDk5LDk3LDEwOCwxMTUsOTUsOTUsNDAsMCwwLDAsMCwKLSAgICA0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLAotICAgIDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsCi0gICAgMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTQsMCwwLDAsNzAsMTE0LDExMSwxMjIsCi0gICAgMTAxLDExMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsMTc1LDIsMCwwLDExNSwyOCwKLSAgICAwLDAsMCwxNiw3LDYsMiwxOCw0LDMsMSwxOCw0LDMsMSwzLAotICAgIDEsMywxLDI3LDE0LDMsMSwyMSw1LDMsMSwyMSw1LDMsMSwxMTcsCi0gICAgMTQsMCwwLDAsNzAsMTE0LDExMSwxMjIsMTAxLDExMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LAotICAgIDEwMSwxMTQsOTksMSwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsNCwKLSAgICAwLDAsMCw2NiwwLDAsMCwxMTUsMTAxLDAsMCwwLDEyNCwwLDAsNjksCisgICAgMSwwLDEzMSwxLDAsODMsNDAsMSwwLDAsMCwxMTcsNDUsMCwwLDAsCisgICAgODIsMTAxLDExNiwxMTcsMTE0LDExMCwzMiwxMTYsMTA0LDEwMSwzMiw5OSwxMTEsMTAwLDEwMSwzMiwKKyAgICAxMTEsOTgsMTA2LDEwMSw5OSwxMTYsMzIsMTAyLDExMSwxMTQsMzIsMTE2LDEwNCwxMDEsMzIsMTAyLAorICAgIDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDYsNDAsMiwwLAorICAgIDAsMCwxMTQsOTYsMCwwLDAsMTE2LDE3LDAsMCwwLDEwMywxMDEsMTE2LDk1LAorICAgIDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDk1LDExMSw5OCwxMDYsMTAxLDk5LDExNiw0MCwyLDAsCisgICAgMCwwLDExNCwyMDgsMCwwLDAsMTE0LDE3NywwLDAsMCwxMTQsNCwwLDAsCisgICAgMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwxMTQsMjEzLDAsMCwwLAorICAgIDQ3LDMsMCwwLDExNSwyLDAsMCwwLDAsNCwxMTcsMjMsMCwwLDAsCisgICAgNzAsMTE0LDExMSwxMjIsMTAxLDExMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsNDYsMTAzLAorICAgIDEwMSwxMTYsOTUsOTksMTExLDEwMCwxMDEsOTksMiwwLDAsMCwwLDAsMCwwLAorICAgIDIsMCwwLDAsMSwwLDAsMCw2NywwLDAsMCwxMTUsNCwwLDAsCisgICAgMCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDU0LDAsMCwwLDgyLAorICAgIDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsNzgsMTExLDExMCwxMDEsMzIsOTcsMTE1LDMyLDEwMiwxMTQsCisgICAgMTExLDEyMiwxMDEsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwzMiwxMDAsMTExLDMyLAorICAgIDExMCwxMTEsMTE2LDMyLDEwNCw5NywxMTgsMTAxLDMyLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMzIsCisgICAgOTksMTExLDEwMCwxMDEsNDYsNzgsMTE0LDQsMCwwLDAsNDAsMiwwLDAsMCwKKyAgICAxMTQsMjA4LDAsMCwwLDExNCwxNzcsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LAorICAgIDQsMCwwLDAsMTE0LDUsMCwwLDAsMTE0LDIxNCwwLDAsMCw1MywzLAorICAgIDAsMCwxMTUsMiwwLDAsMCwwLDQsMTE3LDI1LDAsMCwwLDcwLDExNCwKKyAgICAxMTEsMTIyLDEwMSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDQ2LDEwMywxMDEsMTE2LAorICAgIDk1LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsOTksMiwwLDAsMCwwLDAsMCwwLAorICAgIDIsMCwwLDAsMiwwLDAsMCw2NywwLDAsMCwxMTUsMTMsMCwwLAorICAgIDAsMTE2LDAsMCwxMDYsMSwwLDEyNCwxLDAsMTMxLDEsMCw4Myw0MCwxLAorICAgIDAsMCwwLDExNyw0NiwwLDAsMCw4MiwxMDEsMTE2LDExNywxMTQsMTEwLDMyLDg0LAorICAgIDExNCwxMTcsMTAxLDMyLDEwNSwxMDIsMzIsMTE2LDEwNCwxMDEsMzIsMTAyLDExNCwxMTEsMTIyLDEwMSwKKyAgICAxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTA1LDExNSwzMiw5NywzMiwxMTIsOTcsCisgICAgOTksMTA3LDk3LDEwMywxMDEsNDYsNDAsMiwwLDAsMCwxMTQsOTYsMCwwLDAsCisgICAgMTE2LDE3LDAsMCwwLDEwNSwxMTUsOTUsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsOTUsMTEyLAorICAgIDk3LDk5LDEwNyw5NywxMDMsMTAxLDQwLDIsMCwwLDAsMTE0LDIwOCwwLDAsMCwKKyAgICAxMTQsMTc3LDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCwKKyAgICA1LDAsMCwwLDExNCwxNTUsMCwwLDAsNTksMywwLDAsMTE1LDIsMCwKKyAgICAwLDAsMCw0LDExNywyNSwwLDAsMCw3MCwxMTQsMTExLDEyMiwxMDEsMTEwLDczLAorICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCw0NiwxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsCisgICAgMTAzLDEwMSw0MCwxNCwwLDAsMCwxMTQsNTYsMCwwLDAsMTE0LDU1LDAsMCwKKyAgICAwLDExNCw1NywwLDAsMCwxMTQsNTgsMCwwLDAsMTE0LDIxNSwwLDAsMCwKKyAgICAxMTQsMjA5LDAsMCwwLDExNCwyMTAsMCwwLDAsMTE0LDE2OSwwLDAsMCwxMTQsCisgICAgMTcyLDAsMCwwLDExNCwxODIsMCwwLDAsMTE0LDIxMiwwLDAsMCwxMTQsMjEzLAorICAgIDAsMCwwLDExNCwyMTQsMCwwLDAsMTE0LDE1NSwwLDAsMCwxMTQsNCwwLAorICAgIDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsCisgICAgMCwxMTQsMjE2LDAsMCwwLDEyLDMsMCwwLDExNSwyOCwwLDAsMCwxMiwKKyAgICA3LDYsMiwxOCw0LDMsMSwxOCw0LDMsMSwzLDEsMywxLDI3LAorICAgIDE0LDMsMSwyMSw1LDMsMSwyMSw1LDMsMSwxMTQsMjE2LDAsMCwwLAorICAgIDk5LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDQsMCwwLAorICAgIDAsNjQsMCwwLDAsMTE1LDk3LDAsMCwwLDEwMSwwLDAsOTAsMSwwLAorICAgIDEwMCwwLDAsOTAsMiwwLDEwMCwxLDAsOTAsMywwLDEwMCwyLDAsOTAsCisgICAgNCwwLDEwMCwzLDAsOTAsNSwwLDEwMCw0LDAsOTAsNiwwLDEwMSw3LAorICAgIDAsMTAwLDUsMCwxMDAsNiwwLDEzMiwwLDAsMTMxLDEsMCw5MCw4LDAsCisgICAgMTAxLDcsMCwxMDAsNywwLDEwMCw4LDAsMTMyLDAsMCwxMzEsMSwwLDkwLAorICAgIDksMCwxMDEsNywwLDEwMCw5LDAsMTAwLDEwLDAsMTAwLDExLDAsMTMyLDEsCisgICAgMCwxMzEsMSwwLDkwLDEwLDAsMTAwLDksMCw4Myw0MCwxMiwwLDAsMCwKKyAgICAyNDQsMjEsMCwwLDAsODcsMTA1LDExMCwxMDAsMTExLDExOSwxMTUsODIsMTAxLDEwMywxMDUsCisgICAgMTE1LDExNiwxMTQsMTIxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsMTE3LDY3LDAsMCwwLDc3LAorICAgIDEwMSwxMTYsOTcsMzIsMTEyLDk3LDExNiwxMDQsMzIsMTAyLDEwNSwxMTAsMTAwLDEwMSwxMTQsMzIsCisgICAgMTAyLDExMSwxMTQsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDMyLDEwMCwxMDEsOTksMTA4LAorICAgIDk3LDExNCwxMDEsMTAwLDMyLDEwNSwxMTAsMzIsMTE2LDEwNCwxMDEsMzIsODcsMTA1LDExMCwxMDAsCisgICAgMTExLDExOSwxMTUsMzIsMTE0LDEwMSwxMDMsMTA1LDExNSwxMTYsMTE0LDEyMSw0NiwxMCwzMiwzMiwKKyAgICAzMiwzMiwxMTcsNTksMCwwLDAsODMsMTExLDEwMiwxMTYsMTE5LDk3LDExNCwxMDEsOTIsCisgICAgODAsMTIxLDExNiwxMDQsMTExLDExMCw5Miw4MCwxMjEsMTE2LDEwNCwxMTEsMTEwLDY3LDExMSwxMTQsCisgICAgMTAxLDkyLDEyMywxMTUsMTIxLDExNSw5NSwxMTgsMTAxLDExNCwxMTUsMTA1LDExMSwxMTAsMTI1LDkyLAorICAgIDc3LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDkyLDEyMywxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwKKyAgICAxMDEsMTI1LDExNyw2NSwwLDAsMCw4MywxMTEsMTAyLDExNiwxMTksOTcsMTE0LDEwMSw5MiwKKyAgICA4MCwxMjEsMTE2LDEwNCwxMTEsMTEwLDkyLDgwLDEyMSwxMTYsMTA0LDExMSwxMTAsNjcsMTExLDExNCwKKyAgICAxMDEsOTIsMTIzLDExNSwxMjEsMTE1LDk1LDExOCwxMDEsMTE0LDExNSwxMDUsMTExLDExMCwxMjUsOTIsCisgICAgNzcsMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsOTIsMTIzLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LAorICAgIDEwMSwxMjUsOTIsNjgsMTAxLDk4LDExNywxMDMsNzAsOTksMiwwLDAsMCwwLDAsCisgICAgMCwwLDIsMCwwLDAsMTEsMCwwLDAsNjcsMCwwLDAsMTE1LDY3LAorICAgIDAsMCwwLDEyMSwyMywwLDExNiwwLDAsMTA2LDEsMCwxMTYsMCwwLDEwNiwKKyAgICAyLDAsMTI0LDEsMCwxMzEsMiwwLDgzLDg3LDExMCwzNywwLDQsMTE2LDMsCisgICAgMCwxMDcsMTAsMCwxMTQsNjIsMCwxLDEsMSwxMTYsMCwwLDEwNiwxLDAsCisgICAgMTE2LDAsMCwxMDYsNCwwLDEyNCwxLDAsMTMxLDIsMCw4Myw4OSwxMTAsMSwKKyAgICAwLDg4LDEwMCwwLDAsODMsNDAsMSwwLDAsMCw3OCw0MCw1LDAsMCwKKyAgICAwLDI0NCw3LDAsMCwwLDk1LDExOSwxMDUsMTEwLDExNCwxMDEsMTAzLDExNiw3LDAsCisgICAgMCwwLDc5LDExMiwxMDEsMTEwLDc1LDEwMSwxMjEsMTE2LDE3LDAsMCwwLDcyLDc1LAorICAgIDY5LDg5LDk1LDY3LDg1LDgyLDgyLDY5LDc4LDg0LDk1LDg1LDgzLDY5LDgyLDExNCwKKyAgICA0MCwwLDAsMCwxMTYsMTgsMCwwLDAsNzIsNzUsNjksODksOTUsNzYsNzksCisgICAgNjcsNjUsNzYsOTUsNzcsNjUsNjcsNzIsNzMsNzgsNjksNDAsMiwwLDAsMCwKKyAgICAxMTQsMjA4LDAsMCwwLDI0NCwzLDAsMCwwLDEwNywxMDEsMTIxLDExNCw0LDAsCisgICAgMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwxNCwwLDAsCisgICAgMCw5NSwxMTEsMTEyLDEwMSwxMTAsOTUsMTE0LDEwMSwxMDMsMTA1LDExNSwxMTYsMTE0LDEyMSw3OSwKKyAgICAzLDAsMCwxMTUsOCwwLDAsMCwwLDIsMywxLDIzLDEsMTMsMSwKKyAgICAxMTcsMzYsMCwwLDAsODcsMTA1LDExMCwxMDAsMTExLDExOSwxMTUsODIsMTAxLDEwMywxMDUsCisgICAgMTE1LDExNiwxMTQsMTIxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsOTUsMTExLDExMiwxMDEsMTEwLAorICAgIDk1LDExNCwxMDEsMTAzLDEwNSwxMTUsMTE2LDExNCwxMjEsOTksMiwwLDAsMCwwLDAsCisgICAgMCwwLDYsMCwwLDAsMTYsMCwwLDAsNjcsMCwwLDAsMTE1LDE0MiwKKyAgICAwLDAsMCwxMjQsMCwwLDEwNiwwLDAsMTE0LDIxLDAsMTI0LDAsMCwxMDYsCisgICAgMSwwLDEyNSwyLDAsMTEwLDksMCwxMjQsMCwwLDEwNiwyLDAsMTI1LDIsCisgICAgMCwxMjQsMiwwLDEwNiwzLDAsMTAwLDEsMCwxMjQsMSwwLDEwMCwyLDAsCisgICAgMTE2LDQsMCwxMDYsNSwwLDEwMCwwLDAsMTAwLDMsMCwxMzMsMiwwLDI1LAorICAgIDEzMSwwLDIsMTI1LDMsMCwxMjEsNDYsMCwxMjQsMCwwLDEwNiw2LDAsMTI0LAorICAgIDMsMCwxMzEsMSwwLDE0MywyNSwwLDEyNSw0LDAsMTE2LDcsMCwxMDYsOCwKKyAgICAwLDEyNCw0LDAsMTAwLDQsMCwxMzEsMiwwLDEyNSw1LDAsODcsMTAwLDAsCisgICAgMCw4MSw4OCw4NywxMTAsMjIsMCw0LDExNiw5LDAsMTA3LDEwLDAsMTE0LDEzNywKKyAgICAwLDEsMSwxLDEwMCwwLDAsODMsODksMTEwLDEsMCw4OCwxMjQsNSwwLAorICAgIDgzLDQwLDUsMCwwLDAsNzgsMTE0LDE3NywwLDAsMCwxMTYsMTEsMCwwLAorICAgIDAsMTE1LDEyMSwxMTUsOTUsMTE4LDEwMSwxMTQsMTE1LDEwNSwxMTEsMTEwLDExNCwxMjMsMCwwLAorICAgIDAsMTE0LDMwLDAsMCwwLDQwLDEwLDAsMCwwLDI0NCwxMSwwLDAsMCwKKyAgICA2OCw2OSw2Niw4NSw3MSw5NSw2Niw4NSw3Myw3Niw2OCwyNDQsMTgsMCwwLDAsCisgICAgODIsNjksNzEsNzMsODMsODQsODIsODksOTUsNzUsNjksODksOTUsNjgsNjksNjYsCisgICAgODUsNzEsMjQ0LDEyLDAsMCwwLDgyLDY5LDcxLDczLDgzLDg0LDgyLDg5LDk1LAorICAgIDc1LDY5LDg5LDExNCw0NiwwLDAsMCwxMTQsNywwLDAsMCwyNDQsNywwLAorICAgIDAsMCwxMTgsMTAxLDExNCwxMTUsMTA1LDExMSwxMTAsMTE0LDIyMSwwLDAsMCwxMTQsMjE5LAorICAgIDAsMCwwLDExNiwxMCwwLDAsMCw4MSwxMTcsMTAxLDExNCwxMjEsODYsOTcsMTA4LAorICAgIDExNywxMDEsMTE0LDQwLDAsMCwwLDQwLDYsMCwwLDAsMTE0LDIwOCwwLDAsCisgICAgMCwxMTQsMTc3LDAsMCwwLDExNiwxMiwwLDAsMCwxMTQsMTAxLDEwMywxMDUsMTE1LAorICAgIDExNiwxMTQsMTIxLDk1LDEwNywxMDEsMTIxLDExNCwyMjAsMCwwLDAsMTE2LDQsMCwwLAorICAgIDAsMTA0LDEwNywxMDEsMTIxLDI0NCw4LDAsMCwwLDEwMiwxMDUsMTA4LDEwMSwxMTIsOTcsCisgICAgMTE2LDEwNCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsCisgICAgMCwyNDQsMTYsMCwwLDAsOTUsMTE1LDEwMSw5NywxMTQsOTksMTA0LDk1LDExNCwxMDEsCisgICAgMTAzLDEwNSwxMTUsMTE2LDExNCwxMjEsODYsMywwLDAsMTE1LDIyLDAsMCwwLDAsCisgICAgMiw5LDEsMTIsMiw5LDEsMTUsMSwyMiwxLDMsMSwxOCwxLDI4LAorICAgIDEsMTMsMSw5LDEsMTE3LDM4LDAsMCwwLDg3LDEwNSwxMTAsMTAwLDExMSwxMTksCisgICAgMTE1LDgyLDEwMSwxMDMsMTA1LDExNSwxMTYsMTE0LDEyMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LAorICAgIDk1LDExNSwxMDEsOTcsMTE0LDk5LDEwNCw5NSwxMTQsMTAxLDEwMywxMDUsMTE1LDExNiwxMTQsMTIxLAorICAgIDc4LDk5LDMsMCwwLDAsMCwwLDAsMCw3LDAsMCwwLDEyLDAsCisgICAgMCwwLDY3LDAsMCwwLDExNSwxNDAsMCwwLDAsMTI0LDAsMCwxMDYsMCwKKyAgICAwLDEyNCwxLDAsMTMxLDEsMCwxMjUsMywwLDEyNCwzLDAsMTAwLDEsMCwKKyAgICAxMDcsOCwwLDExNCwzMSwwLDEwMCwxLDAsODMsMTIxLDE3LDAsMTE2LDEsMCwKKyAgICAxMDYsMiwwLDEyNCwzLDAsMTMxLDEsMCwxLDg3LDExMCwyMiwwLDQsMTE2LAorICAgIDMsMCwxMDcsMTAsMCwxMTQsNzIsMCwxLDEsMSwxMDAsMSwwLDgzLDg5LAorICAgIDExMCwxLDAsODgsMTIwLDYwLDAsMTE2LDQsMCwxMzEsMCwwLDY4LDkzLDQ5LAorICAgIDAsOTIsMywwLDEyNSw0LDAsMTI1LDUsMCwxMjUsNiwwLDEyNCwzLDAsCisgICAgMTA2LDUsMCwxMTYsNiwwLDEyNCw1LDAsMTMxLDEsMCwxMzEsMSwwLDExNCwKKyAgICA4MywwLDEyNCw0LDAsMTI0LDEsMCwxMjQsMywwLDEzMSwyLDAsODMsMTEzLAorICAgIDgzLDAsODcsMTAwLDEsMCw4Myw0MCwyLDAsMCwwLDExNywzNCwwLDAsCisgICAgMCw3MCwxMDUsMTEwLDEwMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMTAsOTcsMTA5LAorICAgIDEwMSwxMDAsMzIsMTA1LDExMCwzMiwxMTYsMTA0LDEwMSwzMiwxMTQsMTAxLDEwMywxMDUsMTE1LDExNiwKKyAgICAxMTQsMTIxLDQ2LDc4LDQwLDcsMCwwLDAsMTE0LDIyNywwLDAsMCwxMTQsMywKKyAgICAwLDAsMCwxMTQsMzksMCwwLDAsMTE0LDQwLDAsMCwwLDI0NCwyNywwLAorICAgIDAsMCw5NSwxMDMsMTAxLDExNiw5NSwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwxMTYsMTAxLDEwMCwKKyAgICA5NSwxMDIsMTA1LDEwOCwxMDEsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTUsMjQ0LDgsMCwKKyAgICAwLDAsMTAxLDExMCwxMDAsMTE1LDExOSwxMDUsMTE2LDEwNCwyNDQsNSwwLDAsMCwxMTYsCisgICAgMTE3LDExMiwxMDgsMTAxLDQwLDcsMCwwLDAsMTE0LDIwOCwwLDAsMCwxMTQsMTc3LAorICAgIDAsMCwwLDExNCwzNSwwLDAsMCwxMTQsMjI2LDAsMCwwLDExNCwxNTksMCwKKyAgICAwLDAsMTE0LDExNCwwLDAsMCwxMTQsMzYsMCwwLDAsMTE0LDQsMCwwLAorICAgIDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMTE0LDIxMCwwLDAsMCwKKyAgICAxMDEsMywwLDAsMTE1LDIwLDAsMCwwLDAsMywxNSwxLDEyLDEsNCwKKyAgICAxLDMsMSwxNywxLDEzLDEsOSwxLDI1LDEsMjEsMSwxMTcsMzMsMCwKKyAgICAwLDAsODcsMTA1LDExMCwxMDAsMTExLDExOSwxMTUsODIsMTAxLDEwMywxMDUsMTE1LDExNiwxMTQsCisgICAgMTIxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsMTAwLAorICAgIDExNywxMDgsMTAxLDQwLDExLDAsMCwwLDExNCw1NiwwLDAsMCwxMTQsNTUsMCwKKyAgICAwLDAsMTE0LDU3LDAsMCwwLDExNCw1OCwwLDAsMCwxMTQsMjI0LDAsMCwKKyAgICAwLDExNCwyMjMsMCwwLDAsMTE0LDIyMiwwLDAsMCwxMTQsMjE1LDAsMCwwLAorICAgIDExNCwyMjEsMCwwLDAsMTE0LDIyNywwLDAsMCwxMTQsMjEwLDAsMCwwLDExNCwKKyAgICA0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LAorICAgIDAsMCwwLDExNCwyMTgsMCwwLDAsNjYsMywwLDAsMTE1LDE2LDAsMCwKKyAgICAwLDEyLDMsNiwzLDYsMyw2LDIsNiwyLDE4LDcsMTgsMTUsMywKKyAgICAxLDExNCwyMTgsMCwwLDAsOTksMCwwLDAsMCwwLDAsMCwwLDAsCisgICAgMCwwLDAsMiwwLDAsMCw2NCwwLDAsMCwxMTUsNTgsMCwwLDAsCiAgICAgMTAxLDAsMCw5MCwxLDAsMTAwLDAsMCw5MCwyLDAsMTAwLDEsMCw5MCwKLSAgICAzLDAsMTAwLDIsMCw5MCw0LDAsMTAwLDMsMCw5MCw1LDAsMTAwLDExLAotICAgIDAsOTAsNywwLDEwMSw4LDAsMTAwLDQsMCwxMDAsNSwwLDEzMiwwLDAsCi0gICAgMTMxLDEsMCw5MCw5LDAsMTAxLDgsMCwxMDAsNiwwLDEwMCw3LDAsMTMyLAotICAgIDAsMCwxMzEsMSwwLDkwLDEwLDAsMTAxLDgsMCwxMDAsMTAsMCwxMDAsOCwKLSAgICAwLDEwMCw5LDAsMTMyLDEsMCwxMzEsMSwwLDkwLDEyLDAsMTAwLDEwLDAsCi0gICAgODMsNDAsMTIsMCwwLDAsMTE3LDIxLDAsMCwwLDg3LDEwNSwxMTAsMTAwLDExMSwKLSAgICAxMTksMTE1LDgyLDEwMSwxMDMsMTA1LDExNSwxMTYsMTE0LDEyMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LAotICAgIDExNyw2NywwLDAsMCw3NywxMDEsMTE2LDk3LDMyLDExMiw5NywxMTYsMTA0LDMyLDEwMiwKLSAgICAxMDUsMTEwLDEwMCwxMDEsMTE0LDMyLDEwMiwxMTEsMTE0LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLAotICAgIDExNSwzMiwxMDAsMTAxLDk5LDEwOCw5NywxMTQsMTAxLDEwMCwzMiwxMDUsMTEwLDMyLDExNiwxMDQsCi0gICAgMTAxLDMyLDg3LDEwNSwxMTAsMTAwLDExMSwxMTksMTE1LDMyLDExNCwxMDEsMTAzLDEwNSwxMTUsMTE2LAotICAgIDExNCwxMjEsNDYsMTAsMzIsMzIsMzIsMzIsMTE3LDU5LDAsMCwwLDgzLDExMSwxMDIsCi0gICAgMTE2LDExOSw5NywxMTQsMTAxLDkyLDgwLDEyMSwxMTYsMTA0LDExMSwxMTAsOTIsODAsMTIxLDExNiwKLSAgICAxMDQsMTExLDExMCw2NywxMTEsMTE0LDEwMSw5MiwxMjMsMTE1LDEyMSwxMTUsOTUsMTE4LDEwMSwxMTQsCi0gICAgMTE1LDEwNSwxMTEsMTEwLDEyNSw5Miw3NywxMTEsMTAwLDExNywxMDgsMTAxLDExNSw5MiwxMjMsMTAyLAotICAgIDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLDEyNSwxMTcsNjUsMCwwLDAsODMsMTExLDEwMiwKLSAgICAxMTYsMTE5LDk3LDExNCwxMDEsOTIsODAsMTIxLDExNiwxMDQsMTExLDExMCw5Miw4MCwxMjEsMTE2LAotICAgIDEwNCwxMTEsMTEwLDY3LDExMSwxMTQsMTAxLDkyLDEyMywxMTUsMTIxLDExNSw5NSwxMTgsMTAxLDExNCwKLSAgICAxMTUsMTA1LDExMSwxMTAsMTI1LDkyLDc3LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDkyLDEyMywxMDIsCi0gICAgMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsMTI1LDkyLDY4LDEwMSw5OCwxMTcsMTAzLDk5LDIsCi0gICAgMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDExLDAsMCwwLDY3LAotICAgIDAsMCwwLDExNSw2NywwLDAsMCwxMjEsMjMsMCwxMTYsMCwwLDEwNiwxLAotICAgIDAsMTE2LDAsMCwxMDYsMiwwLDEyNCwxLDAsMTMxLDIsMCw4Myw4NywxMTAsCi0gICAgMzcsMCw0LDExNiwzLDAsMTA3LDEwLDAsMTE0LDYyLDAsMSwxLDEsMTE2LAotICAgIDAsMCwxMDYsMSwwLDExNiwwLDAsMTA2LDQsMCwxMjQsMSwwLDEzMSwyLAotICAgIDAsODMsODksMTEwLDEsMCw4OCwxMDAsMCwwLDgzLDQwLDEsMCwwLDAsCi0gICAgNzgsNDAsNSwwLDAsMCwxMTcsNywwLDAsMCw5NSwxMTksMTA1LDExMCwxMTQsCi0gICAgMTAxLDEwMywxMTcsNywwLDAsMCw3OSwxMTIsMTAxLDExMCw3NSwxMDEsMTIxLDExNywxNywKLSAgICAwLDAsMCw3Miw3NSw2OSw4OSw5NSw2Nyw4NSw4Miw4Miw2OSw3OCw4NCw5NSwKLSAgICA4NSw4Myw2OSw4MiwxMTcsMTIsMCwwLDAsODcsMTA1LDExMCwxMDAsMTExLDExOSwxMTUsCi0gICAgNjksMTE0LDExNCwxMTEsMTE0LDExNywxOCwwLDAsMCw3Miw3NSw2OSw4OSw5NSw3NiwKLSAgICA3OSw2Nyw2NSw3Niw5NSw3Nyw2NSw2Nyw3Miw3Myw3OCw2OSw0MCwyLDAsMCwKLSAgICAwLDExNywzLDAsMCwwLDk5LDEwOCwxMTUsMTE3LDMsMCwwLDAsMTA3LDEwMSwKLSAgICAxMjEsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCwKLSAgICA2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LAotICAgIDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTQsMCwKLSAgICAwLDAsOTUsMTExLDExMiwxMDEsMTEwLDk1LDExNCwxMDEsMTAzLDEwNSwxMTUsMTE2LDExNCwxMjEsCi0gICAgMjQyLDIsMCwwLDExNSw4LDAsMCwwLDAsMiwzLDEsMjMsMSwxMywKLSAgICAxLDExNywzNiwwLDAsMCw4NywxMDUsMTEwLDEwMCwxMTEsMTE5LDExNSw4MiwxMDEsMTAzLAotICAgIDEwNSwxMTUsMTE2LDExNCwxMjEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0Niw5NSwxMTEsMTEyLDEwMSwKLSAgICAxMTAsOTUsMTE0LDEwMSwxMDMsMTA1LDExNSwxMTYsMTE0LDEyMSw5OSwyLDAsMCwwLDAsCi0gICAgMCwwLDAsNiwwLDAsMCwxNiwwLDAsMCw2NywwLDAsMCwxMTUsCi0gICAgMTQyLDAsMCwwLDEyNCwwLDAsMTA2LDAsMCwxMTQsMjEsMCwxMjQsMCwwLAotICAgIDEwNiwxLDAsMTI1LDIsMCwxMTAsOSwwLDEyNCwwLDAsMTA2LDIsMCwxMjUsCi0gICAgMiwwLDEyNCwyLDAsMTA2LDMsMCwxMDAsMSwwLDEyNCwxLDAsMTAwLDIsCi0gICAgMCwxMTYsNCwwLDEwNiw1LDAsMTAwLDAsMCwxMDAsMywwLDEzMywyLDAsCi0gICAgMjUsMTMxLDAsMiwxMjUsMywwLDEyMSw0NiwwLDEyNCwwLDAsMTA2LDYsMCwKLSAgICAxMjQsMywwLDEzMSwxLDAsMTQzLDI1LDAsMTI1LDQsMCwxMTYsNywwLDEwNiwKLSAgICA4LDAsMTI0LDQsMCwxMDAsNCwwLDEzMSwyLDAsMTI1LDUsMCw4NywxMDAsCi0gICAgMCwwLDgxLDg4LDg3LDExMCwyMiwwLDQsMTE2LDksMCwxMDcsMTAsMCwxMTQsCi0gICAgMTM3LDAsMSwxLDEsMTAwLDAsMCw4Myw4OSwxMTAsMSwwLDg4LDEyNCw1LAotICAgIDAsODMsNDAsNSwwLDAsMCw3OCwxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwKLSAgICAxMDgsMTEwLDk3LDEwOSwxMDEsMTE3LDExLDAsMCwwLDExNSwxMjEsMTE1LDk1LDExOCwxMDEsCi0gICAgMTE0LDExNSwxMDUsMTExLDExMCwxMDUsMywwLDAsMCwxMTcsMCwwLDAsMCw0MCwKLSAgICAxMSwwLDAsMCwxMTcsMTEsMCwwLDAsNjgsNjksNjYsODUsNzEsOTUsNjYsCi0gICAgODUsNzMsNzYsNjgsMTE3LDE4LDAsMCwwLDgyLDY5LDcxLDczLDgzLDg0LDgyLAotICAgIDg5LDk1LDc1LDY5LDg5LDk1LDY4LDY5LDY2LDg1LDcxLDExNywxMiwwLDAsMCwKLSAgICA4Miw2OSw3MSw3Myw4Myw4NCw4Miw4OSw5NSw3NSw2OSw4OSwxMTcsNiwwLDAsCi0gICAgMCwxMDIsMTExLDExNCwxMDksOTcsMTE2LDExNywzLDAsMCwwLDExNSwxMjEsMTE1LDExNywKLSAgICA3LDAsMCwwLDExOCwxMDEsMTE0LDExNSwxMDUsMTExLDExMCwxMTcsMTQsMCwwLDAsCi0gICAgOTUsMTExLDExMiwxMDEsMTEwLDk1LDExNCwxMDEsMTAzLDEwNSwxMTUsMTE2LDExNCwxMjEsMTE3LDcsCi0gICAgMCwwLDAsOTUsMTE5LDEwNSwxMTAsMTE0LDEwMSwxMDMsMTE3LDEwLDAsMCwwLDgxLAotICAgIDExNywxMDEsMTE0LDEyMSw4Niw5NywxMDgsMTE3LDEwMSwxMTcsMTIsMCwwLDAsODcsMTA1LAotICAgIDExMCwxMDAsMTExLDExOSwxMTUsNjksMTE0LDExNCwxMTEsMTE0LDExNyw0LDAsMCwwLDc4LAotICAgIDExMSwxMTAsMTAxLDQwLDYsMCwwLDAsMTE3LDMsMCwwLDAsOTksMTA4LDExNSwKLSAgICAxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsMTE3LDEyLDAsCi0gICAgMCwwLDExNCwxMDEsMTAzLDEwNSwxMTUsMTE2LDExNCwxMjEsOTUsMTA3LDEwMSwxMjEsMTE3LDMsCi0gICAgMCwwLDAsMTA3LDEwMSwxMjEsMTE3LDQsMCwwLDAsMTA0LDEwNywxMDEsMTIxLDExNywKLSAgICA4LDAsMCwwLDEwMiwxMDUsMTA4LDEwMSwxMTIsOTcsMTE2LDEwNCw0MCwwLDAsMCwKLSAgICAwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwKLSAgICAxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLAotICAgIDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxNiwwLDAsMCw5NSwxMTUsMTAxLAotICAgIDk3LDExNCw5OSwxMDQsOTUsMTE0LDEwMSwxMDMsMTA1LDExNSwxMTYsMTE0LDEyMSwyNDksMiwwLAotICAgIDAsMTE1LDIyLDAsMCwwLDAsMiw5LDEsMTIsMiw5LDEsMTUsMSwKLSAgICAyMiwxLDMsMSwxOCwxLDI4LDEsMTMsMSw5LDEsMTE3LDM4LDAsMCwKLSAgICAwLDg3LDEwNSwxMTAsMTAwLDExMSwxMTksMTE1LDgyLDEwMSwxMDMsMTA1LDExNSwxMTYsMTE0LDEyMSwKLSAgICA3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LDk1LDExNSwxMDEsOTcsMTE0LDk5LDEwNCw5NSwxMTQsCi0gICAgMTAxLDEwMywxMDUsMTE1LDExNiwxMTQsMTIxLDk5LDMsMCwwLDAsMCwwLDAsMCwKLSAgICA3LDAsMCwwLDEyLDAsMCwwLDY3LDAsMCwwLDExNSwxNDAsMCwwLAotICAgIDAsMTI0LDAsMCwxMDYsMCwwLDEyNCwxLDAsMTMxLDEsMCwxMjUsMywwLAotICAgIDEyNCwzLDAsMTAwLDEsMCwxMDcsOCwwLDExNCwzMSwwLDEwMCwxLDAsODMsCi0gICAgMTIxLDE3LDAsMTE2LDIsMCwxMDYsMywwLDEyNCwzLDAsMTMxLDEsMCwxLAotICAgIDg3LDExMCwyMiwwLDQsMTE2LDQsMCwxMDcsMTAsMCwxMTQsNzIsMCwxLDEsCi0gICAgMSwxMDAsMSwwLDgzLDg5LDExMCwxLDAsODgsMTIwLDYwLDAsMTE2LDUsMCwKLSAgICAxMzEsMCwwLDY4LDkzLDQ5LDAsOTIsMywwLDEyNSw0LDAsMTI1LDUsMCwKLSAgICAxMjUsNiwwLDEyNCwzLDAsMTA2LDYsMCwxMTYsNywwLDEyNCw1LDAsMTMxLAotICAgIDEsMCwxMzEsMSwwLDExNCw4MywwLDEyNCw0LDAsMTI0LDEsMCwxMjQsMywKLSAgICAwLDEzMSwyLDAsODMsMTEzLDgzLDAsODcsMTAwLDEsMCw4Myw0MCwyLDAsCi0gICAgMCwwLDExNywzNCwwLDAsMCw3MCwxMDUsMTEwLDEwMCwzMiwxMDksMTExLDEwMCwxMTcsCi0gICAgMTA4LDEwMSwzMiwxMTAsOTcsMTA5LDEwMSwxMDAsMzIsMTA1LDExMCwzMiwxMTYsMTA0LDEwMSwzMiwKLSAgICAxMTQsMTAxLDEwMywxMDUsMTE1LDExNiwxMTQsMTIxLDQ2LDc4LDQwLDgsMCwwLDAsMTE3LAotICAgIDE2LDAsMCwwLDk1LDExNSwxMDEsOTcsMTE0LDk5LDEwNCw5NSwxMTQsMTAxLDEwMywxMDUsCi0gICAgMTE1LDExNiwxMTQsMTIxLDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNywzLDAsCi0gICAgMCwwLDk1LDExMSwxMTUsMTE3LDQsMCwwLDAsMTE1LDExNiw5NywxMTYsMTE3LDcsCi0gICAgMCwwLDAsNzksODMsNjksMTE0LDExNCwxMTEsMTE0LDExNywyNywwLDAsMCw5NSwKLSAgICAxMDMsMTAxLDExNiw5NSwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwxMTYsMTAxLDEwMCw5NSwxMDIsMTA1LAotICAgIDEwOCwxMDEsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTUsMTE3LDgsMCwwLDAsMTAxLAotICAgIDExMCwxMDAsMTE1LDExOSwxMDUsMTE2LDEwNCwxMTcsNSwwLDAsMCwxMTYsMTE3LDExMiwxMDgsCi0gICAgMTAxLDQwLDcsMCwwLDAsMTE3LDMsMCwwLDAsOTksMTA4LDExNSwxMTcsOCwKLSAgICAwLDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsMTE3LDQsMCwwLDAsCi0gICAgMTEyLDk3LDExNiwxMDQsMTE3LDgsMCwwLDAsMTAyLDEwNSwxMDgsMTAxLDExMiw5NywxMTYsCi0gICAgMTA0LDExNyw2LDAsMCwwLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LDgsMCwwLAotICAgIDAsMTE1LDExNywxMDIsMTAyLDEwNSwxMjAsMTAxLDExNSwxMTcsMSwwLDAsMCw5NSw0MCwKLSAgICAwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwKLSAgICAxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsCi0gICAgOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMSwwLDAsMCwKLSAgICAxMDIsMTA1LDExMCwxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOCwzLDAsMCwxMTUsCi0gICAgMjAsMCwwLDAsMCwzLDE1LDEsMTIsMSw0LDEsMywxLDE3LDEsCi0gICAgMTMsMSw5LDEsMjUsMSwyMSwxLDExNywzMywwLDAsMCw4NywxMDUsMTEwLAotICAgIDEwMCwxMTEsMTE5LDExNSw4MiwxMDEsMTAzLDEwNSwxMTUsMTE2LDExNCwxMjEsNzAsMTA1LDExMCwxMDAsCi0gICAgMTAxLDExNCw0NiwxMDIsMTA1LDExMCwxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNzgsNzAsCi0gICAgNDAsMTMsMCwwLDAsMTE3LDgsMCwwLDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsCi0gICAgOTUsOTUsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LAotICAgIDk1LDExNywxMiwwLDAsMCw5NSw5NSwxMTMsMTE3LDk3LDEwOCwxMTAsOTcsMTA5LDEwMSwKLSAgICA5NSw5NSwxMTcsNywwLDAsMCw5NSw5NSwxMDAsMTExLDk5LDk1LDk1LDExNywxMiwKLSAgICAwLDAsMCw4Miw2OSw3MSw3Myw4Myw4NCw4Miw4OSw5NSw3NSw2OSw4OSwxMTcsCi0gICAgMTgsMCwwLDAsODIsNjksNzEsNzMsODMsODQsODIsODksOTUsNzUsNjksODksCi0gICAgOTUsNjgsNjksNjYsODUsNzEsMTE3LDUsMCwwLDAsNzAsOTcsMTA4LDExNSwxMDEsCi0gICAgMTE3LDExLDAsMCwwLDY4LDY5LDY2LDg1LDcxLDk1LDY2LDg1LDczLDc2LDY4LAotICAgIDExNywxMSwwLDAsMCw5OSwxMDgsOTcsMTE1LDExNSwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwKLSAgICAxMTcsMTQsMCwwLDAsOTUsMTExLDExMiwxMDEsMTEwLDk1LDExNCwxMDEsMTAzLDEwNSwxMTUsCi0gICAgMTE2LDExNCwxMjEsMTE3LDE2LDAsMCwwLDk1LDExNSwxMDEsOTcsMTE0LDk5LDEwNCw5NSwKLSAgICAxMTQsMTAxLDEwMywxMDUsMTE1LDExNiwxMTQsMTIxLDExNyw0LDAsMCwwLDc4LDExMSwxMTAsCi0gICAgMTAxLDExNywxMSwwLDAsMCwxMDIsMTA1LDExMCwxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwKLSAgICAxMDEsNDAsMSwwLDAsMCwxMTcsMTAsMCwwLDAsOTUsOTUsMTA4LDExMSw5OSwKLSAgICA5NywxMDgsMTE1LDk1LDk1LDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsCi0gICAgMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLAotICAgIDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsCi0gICAgNjIsMTE3LDIxLDAsMCwwLDg3LDEwNSwxMTAsMTAwLDExMSwxMTksMTE1LDgyLDEwMSwxMDMsCi0gICAgMTA1LDExNSwxMTYsMTE0LDEyMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDIyOSwyLDAsMCwxMTUsCi0gICAgMTYsMCwwLDAsMTYsMyw2LDMsNiwzLDYsMiw2LDIsMTgsNywKLSAgICAxOCwxNSwzLDEsMTE3LDIxLDAsMCwwLDg3LDEwNSwxMTAsMTAwLDExMSwxMTksMTE1LAotICAgIDgyLDEwMSwxMDMsMTA1LDExNSwxMTYsMTE0LDEyMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDk5LDEsCi0gICAgMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDUsMCwwLDAsNjYsCi0gICAgMCwwLDAsMTE1LDc0LDAsMCwwLDEyNCwwLDAsNjksMTAxLDAsMCw5MCwKLSAgICAxLDAsMTAwLDAsMCw5MCwyLDAsMTAwLDEsMCw5MCwzLDAsMTAwLDIsCi0gICAgMCwxMDAsMywwLDEzMiwwLDAsOTAsNCwwLDEwMCw0LDAsMTAwLDUsMCwKLSAgICAxMzIsMCwwLDkwLDUsMCwxMDEsNiwwLDEwMCw2LDAsMTAwLDEwLDAsMTAwLAotICAgIDcsMCwxMDAsOCwwLDEzMiwwLDEsMTMxLDEsMCw5MCw4LDAsMTAwLDksCi0gICAgMCw4Myw0MCwxMSwwLDAsMCwxMTcsMTMsMCwwLDAsOTUsNzYsMTExLDk3LAotICAgIDEwMCwxMDEsMTE0LDY2LDk3LDExNSwxMDUsOTksMTE1LDExNyw4MywwLDAsMCw2Niw5NywKLSAgICAxMTUsMTAxLDMyLDk5LDEwOCw5NywxMTUsMTE1LDMyLDExMSwxMDIsMzIsOTksMTExLDEwOSwxMDksCi0gICAgMTExLDExMCwzMiw5OSwxMTEsMTAwLDEwMSwzMiwxMTAsMTAxLDEwMSwxMDAsMTAxLDEwMCwzMiw5OCwKLSAgICAxMjEsMzIsOTgsMTExLDExNiwxMDQsMzIsODMsMTExLDExNywxMTQsOTksMTAxLDc2LDExMSw5NywKLSAgICAxMDAsMTAxLDExNCwzMiw5NywxMTAsMTAwLDEwLDMyLDMyLDMyLDMyLDgzLDExMSwxMTcsMTE0LAotICAgIDk5LDEwMSwxMDgsMTAxLDExNSwxMTUsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LAotICAgIDQ2LDk5LDIsMCwwLDAsMCwwLDAsMCw1LDAsMCwwLDMsMCwKLSAgICAwLDAsNjcsMCwwLDAsMTE1LDg4LDAsMCwwLDExNiwwLDAsMTI0LDAsCi0gICAgMCwxMDYsMSwwLDEyNCwxLDAsMTMxLDEsMCwxMzEsMSwwLDEwMCwxLDAsCi0gICAgMjUsMTI1LDIsMCwxMjQsMiwwLDEwNiwyLDAsMTAwLDIsMCwxMDAsMSwwLAotICAgIDEzMSwyLDAsMTAwLDMsMCwyNSwxMjUsMywwLDEyNCwxLDAsMTA2LDMsMCwKLSAgICAxMDAsMiwwLDEzMSwxLDAsMTAwLDQsMCwyNSwxMjUsNCwwLDEyNCwzLDAsCi0gICAgMTAwLDUsMCwxMDcsMiwwLDExMSw4NywwLDEyNCw0LDAsMTAwLDUsMCwxMDcsCi0gICAgMywwLDgzLDQwLDYsMCwwLDAsMTE3LDE0MSwwLDAsMCw2NywxMTEsMTEwLAotICAgIDk5LDExNCwxMDEsMTE2LDEwMSwzMiwxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiw5NywKLSAgICAxMTYsMTA1LDExMSwxMTAsMzIsMTExLDEwMiwzMiw3MywxMTAsMTE1LDExMiwxMDEsOTksMTE2LDc2LAotICAgIDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwKLSAgICAzMiw5OCwxMjEsMzIsOTksMTA0LDEwMSw5OSwxMDcsMTA1LDExMCwxMDMsMzIsMTA1LDEwMiwxMCwKLSAgICAzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsOTcsMTE2LDEwNCwKLSAgICAzMiwxMTQsMTAxLDExNiwxMTcsMTE0LDExMCwxMDEsMTAwLDMyLDk4LDEyMSwzMiwxMDMsMTAxLDExNiwKLSAgICA5NSwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsMzIsMTA0LDk3LDExNSwzMiw5NywzMiwKLSAgICAxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsMzIsMTExLDEwMiwzMiwzOSw5NSw5NSwxMDUsCi0gICAgMTEwLDEwNSwxMTYsOTUsOTUsNDYsMTEyLDEyMSwzOSw0NiwxMDUsMSwwLDAsMCwxMTcsCi0gICAgMSwwLDAsMCw0NiwxMDUsMCwwLDAsMCwxMDUsMiwwLDAsMCwxMTcsCi0gICAgOCwwLDAsMCw5NSw5NSwxMDUsMTEwLDEwNSwxMTYsOTUsOTUsNDAsNCwwLDAsCi0gICAgMCwxMTcsMTEsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTE1LDExMiwxMDgsMTA1LAotICAgIDExNiwxMTcsMTIsMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTAyLDEwNSwxMDgsMTAxLDExMCw5NywKLSAgICAxMDksMTAxLDExNyw2LDAsMCwwLDExNCwxMTUsMTEyLDEwOCwxMDUsMTE2LDExNywxMCwwLAotICAgIDAsMCwxMTQsMTEyLDk3LDExNCwxMTYsMTA1LDExNiwxMDUsMTExLDExMCw0MCw1LDAsMCwKLSAgICAwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsOCwwLDAsMCwxMDIsCi0gICAgMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsMTE3LDgsMCwwLDAsMTAyLDEwNSwxMDgsMTAxLAotICAgIDExMCw5NywxMDksMTAxLDExNywxMywwLDAsMCwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwKLSAgICAxMDEsOTUsOTgsOTcsMTE1LDEwMSwxMTcsOSwwLDAsMCwxMTYsOTcsMTA1LDEwOCw5NSwKLSAgICAxMTAsOTcsMTA5LDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LAotICAgIDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsCi0gICAgMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLAotICAgIDExNywxMCwwLDAsMCwxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwyOCwKLSAgICAzLDAsMCwxMTUsOCwwLDAsMCwwLDMsMjUsMSwyMiwxLDE5LDEsCi0gICAgMTE3LDI0LDAsMCwwLDk1LDc2LDExMSw5NywxMDAsMTAxLDExNCw2Niw5NywxMTUsMTA1LAotICAgIDk5LDExNSw0NiwxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5OSw1LDAsCi0gICAgMCwwLDAsMCwwLDAsMTIsMCwwLDAsMjIsMCwwLDAsNjcsMCwKLSAgICAwLDAsMTE1LDIwOCwxLDAsMCwxMjQsMiwwLDEwMCwxLDAsMTAwLDIsMCwKLSAgICAxMzMsMiwwLDI1LDEyNSw1LDAsMTI0LDIsMCwxMDAsMiwwLDEwMCwzLDAsCi0gICAgMTMzLDIsMCwyNSwxMjUsNiwwLDEyNCwyLDAsMTAwLDMsMCwxMDAsNCwwLAotICAgIDEzMywyLDAsMjUsMTI1LDcsMCwxMjQsNSwwLDExNiwwLDAsMTA3LDMsMCwKLSAgICAxMTQsMTE1LDAsMTAwLDUsMCwxMDYsMSwwLDEyNCwxLDAsMTI0LDUsMCwxMzEsCi0gICAgMiwwLDEyNSw4LDAsMTE2LDIsMCwxMjQsOCwwLDEzMSwxLDAsMSwxMTYsCi0gICAgMywwLDEyNCw4LDAsMTAwLDYsMCwxMjQsMSwwLDEwMCw3LDAsMTI0LDMsCi0gICAgMCwxMzEsMSwyLDEzMCwxLDAsMTEwLDExNiwwLDExNiw0LDAsMTI0LDYsMCwKLSAgICAxMzEsMSwwLDEwMCwyLDAsMTA3LDMsMCwxMTQsMTczLDAsMTAwLDgsMCwxMDYsCi0gICAgMSwwLDEyNCwxLDAsMTMxLDEsMCwxMjUsOSwwLDExNiwyLDAsMTI0LDksCi0gICAgMCwxMzEsMSwwLDEsMTE2LDUsMCwxMjQsOSwwLDEzMSwxLDAsMTMwLDEsCi0gICAgMCwxMTAsNTgsMCwxMTYsNCwwLDEyNCw3LDAsMTMxLDEsMCwxMDAsMiwwLAotICAgIDEwNywzLDAsMTE0LDIzMSwwLDEwMCw5LDAsMTA2LDEsMCwxMjQsMSwwLDEzMSwKLSAgICAxLDAsMTI1LDksMCwxMTYsMiwwLDEyNCw5LDAsMTMxLDEsMCwxLDExNiwKLSAgICA1LDAsMTI0LDksMCwxMzEsMSwwLDEzMCwxLDAsMTEwLDAsMCwxMjQsNCwKLSAgICAwLDEwMCwxLDAsMTA3LDksMCwxMTQsMTk0LDEsMTIxLDIwLDAsMTE2LDcsMCwKLSAgICAxMjQsNCwwLDEwMCwxMCwwLDI1LDEzMSwxLDAsMTI1LDEwLDAsODcsMTEwLDE4LAotICAgIDAsNCwxMTYsOCwwLDEwNywxMCwwLDExNCwyNywxLDEsMSwxLDg5LDExMCwKLSAgICA3MSwwLDg4LDExNiw5LDAsMTI0LDYsMCwxMzEsMSwwLDEyNCwxMCwwLDEwNywKLSAgICAzLDAsMTE0LDk4LDEsMTAwLDExLDAsMTA2LDEsMCwxMjQsMSwwLDEzMSwxLAotICAgIDAsMTI1LDksMCwxMTYsMiwwLDEyNCw5LDAsMTMxLDEsMCwxLDExNiwzLAotICAgIDAsMTI0LDksMCwxMDAsNiwwLDEyNCwxLDAsMTAwLDcsMCwxMjQsMywwLAotICAgIDEzMSwxLDIsMTMwLDEsMCwxMTAsMCwwLDEyMSwxOCwwLDEyNCw0LDAsMTAwLAotICAgIDEyLDAsMjUsMTAwLDEzLDAsNjQsMTI1LDExLDAsODcsMTEwLDE4LDAsNCwxMTYsCi0gICAgOCwwLDEwNywxMCwwLDExNCwxMzYsMSwxLDEsMSw4OSwxMTMsMTk0LDEsODgsCi0gICAgMTE2LDksMCwxMjQsNywwLDEzMSwxLDAsMTI0LDExLDAsMTA3LDMsMCwxMTQsCi0gICAgMTk0LDEsMTE2LDMsMCwxMDAsMTEsMCwxMDYsMSwwLDEyNCwxLDAsMTMxLDEsCi0gICAgMCwxMDAsNiwwLDEyNCwxLDAsMTAwLDcsMCwxMjQsMywwLDEzMSwxLDIsCi0gICAgMTMwLDEsMCwxMTMsMTk0LDEsMTEwLDAsMCwxMjQsMiwwLDEwMCw0LDAsMTAwLAotICAgIDEsMCwxMzMsMiwwLDI1LDgzLDQwLDE0LDAsMCwwLDExNywxOTMsMCwwLAotICAgIDAsODIsMTAxLDExNiwxMTcsMTE0LDExMCwzMiwxMTYsMTA0LDEwMSwzMiwxMDksOTcsMTE0LDExNSwKLSAgICAxMDQsOTcsMTA4LDEwOCwxMDEsMTAwLDMyLDk4LDEyMSwxMTYsMTAxLDExNSwzMiwxMDIsMTE0LDExMSwKLSAgICAxMDksMzIsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsNDQsMzIsMTE4LDEwMSwxMTQsMTA1LAotICAgIDEwMiwxMjEsMTA1LDExMCwxMDMsMzIsMTE2LDEwNCwxMDEsMzIsMTA5LDk3LDEwMywxMDUsOTksMTAsCi0gICAgMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMTEwLDExNywxMDksOTgsMTAxLDExNCw0NCwzMiwKLSAgICAxMTYsMTA1LDEwOSwxMDEsMTE1LDExNiw5NywxMDksMTEyLDMyLDk3LDExMCwxMDAsMzIsMTE1LDExMSwKLSAgICAxMTcsMTE0LDk5LDEwMSwzMiwxMTUsMTA1LDEyMiwxMDEsMzIsOTcsMTA4LDExMSwxMTAsMTAzLDMyLAotICAgIDExNiwxMDQsMTAxLDMyLDExOSw5NywxMjEsNDYsMTAsMTAsMzIsMzIsMzIsMzIsMzIsMzIsCi0gICAgMzIsMzIsNzMsMTAyLDMyLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsOTUsMTE1LDExNiw5NywxMTYsCi0gICAgMTE1LDMyLDEwNSwxMTUsMzIsNzgsMTExLDExMCwxMDEsMzIsMTE2LDEwNCwxMDEsMTEwLDMyLDExNSwKLSAgICAxMDcsMTA1LDExMiwzMiwxMTYsMTA0LDEwMSwzMiwxMTYsMTA1LDEwOSwxMDEsMTE1LDExNiw5NywxMDksCi0gICAgMTEyLDMyLDk5LDEwNCwxMDEsOTksMTA3LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDMyLDMyLAotICAgIDMyLDMyLDc4LDEwNSw0LDAsMCwwLDEwNSw4LDAsMCwwLDEwNSwxMiwwLAotICAgIDAsMCwxMTcsMzAsMCwwLDAsOTgsOTcsMTAwLDMyLDEwOSw5NywxMDMsMTA1LDk5LAotICAgIDMyLDExMCwxMTcsMTA5LDk4LDEwMSwxMTQsMzIsMTA1LDExMCwzMiwxMjMsMzMsMTE0LDEyNSw1OCwKLSAgICAzMiwxMjMsMzMsMTE0LDEyNSwxMTcsNCwwLDAsMCwxMTAsOTcsMTA5LDEwMSwxMTcsNCwKLSAgICAwLDAsMCwxMTIsOTcsMTE2LDEwNCwxMTcsMTksMCwwLDAsOTgsOTcsMTAwLDMyLAotICAgIDExNiwxMDUsMTA5LDEwMSwxMTUsMTE2LDk3LDEwOSwxMTIsMzIsMTA1LDExMCwzMiwxMjMsMTI1LDExNywKLSAgICAxNCwwLDAsMCw5OCw5NywxMDAsMzIsMTE1LDEwNSwxMjIsMTAxLDMyLDEwNSwxMTAsMzIsCi0gICAgMTIzLDEyNSwxMTcsNSwwLDAsMCwxMDksMTE2LDEwNSwxMDksMTAxLDExNywyNCwwLDAsCi0gICAgMCw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSwzMiwxMDUsMTE1LDMyLDExNSwxMTYsOTcsCi0gICAgMTA4LDEwMSwzMiwxMDIsMTExLDExNCwzMiwxMjMsMTI1LDExNyw0LDAsMCwwLDExNSwxMDUsCi0gICAgMTIyLDEwMSwxMDgsMywwLDAsMCwyNTUsMTI3LDI1NSwxMjcsMywwLDQwLDEwLDAsCi0gICAgMCwwLDExNywxMiwwLDAsMCw5NSw3Nyw2NSw3MSw3Myw2Nyw5NSw2Niw4OSwKLSAgICA4NCw2OSw4MywxMTcsNiwwLDAsMCwxMDIsMTExLDExNCwxMDksOTcsMTE2LDExNywxNiwKLSAgICAwLDAsMCw5NSwxMTgsMTAxLDExNCw5OCwxMTEsMTE1LDEwMSw5NSwxMDksMTAxLDExNSwxMTUsCi0gICAgOTcsMTAzLDEwMSwxMTcsMTEsMCwwLDAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw2OSwxMTQsCi0gICAgMTE0LDExMSwxMTQsMTE3LDMsMCwwLDAsMTA4LDEwMSwxMTAsMTE3LDgsMCwwLDAsCi0gICAgNjksNzksNzAsNjksMTE0LDExNCwxMTEsMTE0LDExNyw0LDAsMCwwLDc4LDExMSwxMTAsCi0gICAgMTAxLDExNywzLDAsMCwwLDEwNSwxMTAsMTE2LDExNyw4LDAsMCwwLDc1LDEwMSwKLSAgICAxMjEsNjksMTE0LDExNCwxMTEsMTE0LDExNyw3LDAsMCwwLDk1LDExNCw5NSwxMDgsMTExLAotICAgIDExMCwxMDMsNDAsMTIsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLAotICAgIDExNyw4LDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSwxMTcsNCwwLAotICAgIDAsMCwxMDAsOTcsMTE2LDk3LDExNywxMywwLDAsMCw5OCwxMjEsMTE2LDEwMSw5OSwKLSAgICAxMTEsMTAwLDEwMSw5NSwxMTIsOTcsMTE2LDEwNCwxMTcsMTIsMCwwLDAsMTE1LDExMSwxMTcsCi0gICAgMTE0LDk5LDEwMSw5NSwxMTUsMTE2LDk3LDExNiwxMTUsMTE3LDUsMCwwLDAsMTA5LDk3LAotICAgIDEwMywxMDUsOTksMTE3LDEzLDAsMCwwLDExNCw5NywxMTksOTUsMTE2LDEwNSwxMDksMTAxLAotICAgIDExNSwxMTYsOTcsMTA5LDExMiwxMTcsOCwwLDAsMCwxMTQsOTcsMTE5LDk1LDExNSwxMDUsCi0gICAgMTIyLDEwMSwxMTcsMywwLDAsMCwxMDksMTE1LDEwMywxMTcsNywwLDAsMCwxMDksCi0gICAgMTAxLDExNSwxMTUsOTcsMTAzLDEwMSwxMTcsMTIsMCwwLDAsMTE1LDExMSwxMTcsMTE0LDk5LAotICAgIDEwMSw5NSwxMDksMTE2LDEwNSwxMDksMTAxLDExNywxMSwwLDAsMCwxMTUsMTExLDExNywxMTQsCi0gICAgOTksMTAxLDk1LDExNSwxMDUsMTIyLDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwwLAotICAgIDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksCi0gICAgMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsCi0gICAgOTcsMTEyLDYyLDExNywyMCwwLDAsMCw5NSw5OCwxMjEsMTE2LDEwMSwxMTUsOTUsMTAyLAotICAgIDExNCwxMTEsMTA5LDk1LDk4LDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsMTAxLDM2LDMsMCwwLAotICAgIDExNSw2OCwwLDAsMCwwLDcsMTYsMSwxNiwxLDE2LDEsMTIsMSwxOCwKLSAgICAxLDEwLDEsMjcsMSwxOCwxLDE1LDEsMTAsMSwxNSwxLDE4LDEsMTUsCi0gICAgMSwxMCwxLDE1LDEsMTIsMSwzLDEsMjAsMSwxMywxLDUsMiwxOCwKLSAgICAxLDE1LDEsMTAsMSwxNSwxLDEyLDEsMywxLDE4LDEsMTMsMSw1LAotICAgIDIsMTgsMSwzLDEsMTUsMSwyMSwzLDExNywzNCwwLDAsMCw5NSw3NiwKLSAgICAxMTEsOTcsMTAwLDEwMSwxMTQsNjYsOTcsMTE1LDEwNSw5OSwxMTUsNDYsOTUsOTgsMTIxLDExNiwKLSAgICAxMDEsMTE1LDk1LDEwMiwxMTQsMTExLDEwOSw5NSw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSwKLSAgICAxMTcsMTAsMCwwLDAsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwxMDgsMTAxLDExNSwxMTUsOTksCi0gICAgMiwwLDAsMCwxLDAsMCwwLDUsMCwwLDAsMTIsMCwwLDAsCi0gICAgNjcsMCwwLDAsMTE1LDIyNywwLDAsMCwxMjQsMSwwLDEwNiwwLDAsMTI1LAotICAgIDMsMCwxMjQsMCwwLDEwNiwxLDAsMTI0LDMsMCwxMzEsMSwwLDEyNSw0LAotICAgIDAsMTI0LDAsMCwxMDYsMiwwLDEyNCwzLDAsMTMxLDEsMCwxMjQsMSwwLAotICAgIDk1LDMsMCwxMjQsMiwwLDExNSwxMDYsMCwxMjEsMjIsMCwxMTYsNCwwLDEyNCwKLSAgICAxLDAsMTA2LDMsMCwxMzEsMSwwLDEyNCwxLDAsOTUsNSwwLDg3LDExMywKLSAgICAxMTgsMCw0LDExNiw2LDAsMTA3LDEwLDAsMTE0LDEwMiwwLDEsMSwxLDEyNCwKLSAgICAxLDAsMTA2LDMsMCwxMjQsMSwwLDk1LDUsMCw4OSwxMTMsMTE4LDAsODgsCi0gICAgMTEwLDEyLDAsMTI0LDEsMCwxMDYsMywwLDEyNCwxLDAsOTUsNSwwLDEyNCwKLSAgICAzLDAsMTI0LDEsMCw5NSw3LDAsMTI0LDAsMCwxMDYsOCwwLDEyNCwzLAotICAgIDAsMTMxLDEsMCwxMTQsMTcwLDAsMTE2LDksMCwxMjQsMSwwLDEwNiwzLDAsCi0gICAgMTMxLDEsMCwxMDAsMSwwLDI1LDEwMywxLDAsMTI0LDEsMCw5NSwxMCwwLAotICAgIDExMCwyNSwwLDEyNCwxLDAsMTA2LDcsMCwxMDYsMTEsMCwxMDAsMiwwLDEzMSwKLSAgICAxLDAsMTAwLDEsMCwyNSwxMjQsMSwwLDk1LDcsMCwxMjQsMCwwLDEyNCwKLSAgICAxLDAsOTUsMTIsMCwxMTYsMTMsMCwxMTYsMTQsMCwxMjQsNCwwLDEyNCwxLAotICAgIDAsMTA2LDE1LDAsMTMxLDMsMCwxLDEyNCwxLDAsODMsNDAsMywwLDAsCi0gICAgMCwxMTcsODIsMCwwLDAsNzIsMTAxLDEwOCwxMTIsMTAxLDExNCwzMiwxMDIsMTExLDExNCwKLSAgICAzMiwxMDgsMTExLDk3LDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiw5Nyw5OCwxMDgsCi0gICAgMTAxLDMyLDExNiwxMTEsMzIsMTA0LDk3LDExMCwxMDAsMTA4LDEwMSwzMiwxMDEsMTA1LDExNiwxMDQsCi0gICAgMTAxLDExNCwzMiwxMTUsMTExLDExNywxMTQsOTksMTAxLDMyLDExMSwxMTQsMzIsMTE1LDExMSwxMTcsCi0gICAgMTE0LDk5LDEwMSwxMDgsMTAxLDExNSwxMTUsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsCi0gICAgMTA4LDExMSw5NywxMDAsMTA1LDExMCwxMDMsNDYsMTA1LDAsMCwwLDAsMTE3LDEsMCwKLSAgICAwLDAsNDYsNDAsMTYsMCwwLDAsMTE3LDgsMCwwLDAsOTUsOTUsMTEwLAotICAgIDk3LDEwOSwxMDEsOTUsOTUsMTE3LDgsMCwwLDAsMTAzLDEwMSwxMTYsOTUsOTksMTExLAotICAgIDEwMCwxMDEsMTE3LDEyLDAsMCwwLDEwMywxMDEsMTE2LDk1LDEwMiwxMDUsMTA4LDEwMSwxMTAsCi0gICAgOTcsMTA5LDEwMSwxMTcsOCwwLDAsMCw5NSw5NSwxMDIsMTA1LDEwOCwxMDEsOTUsOTUsCi0gICAgMTE3LDE3LDAsMCwwLDk5LDk3LDk5LDEwNCwxMDEsOTUsMTAyLDExNCwxMTEsMTA5LDk1LAotICAgIDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMTE3LDEwLDAsMCwwLDk1LDk1LDk5LDk3LDk5LAotICAgIDEwNCwxMDEsMTAwLDk1LDk1LDExNywxOSwwLDAsMCw3OCwxMTEsMTE2LDczLDEwOSwxMTIsCi0gICAgMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsMTAxLDEwMCw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDExLDAsCi0gICAgMCwwLDk1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSw5NSwxMTcsMTAsMCwKLSAgICAwLDAsMTA1LDExNSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMTE3LDExLDAsMCwKLSAgICAwLDk1LDExMiw5NywxMTYsMTA0LDk1LDExNSwxMTIsMTA4LDEwNSwxMTYsMTE3LDgsMCwwLAotICAgIDAsOTUsOTUsMTEyLDk3LDExNiwxMDQsOTUsOTUsMTE3LDEwLDAsMCwwLDExNCwxMTIsCi0gICAgOTcsMTE0LDExNiwxMDUsMTE2LDEwNSwxMTEsMTEwLDExNywxMCwwLDAsMCw5NSw5NSwxMDgsCi0gICAgMTExLDk3LDEwMCwxMDEsMTE0LDk1LDk1LDExNywyNSwwLDAsMCw5NSw5OSw5NywxMDgsCi0gICAgMTA4LDk1LDExOSwxMDUsMTE2LDEwNCw5NSwxMDIsMTE0LDk3LDEwOSwxMDEsMTE1LDk1LDExNCwxMDEsCi0gICAgMTA5LDExMSwxMTgsMTAxLDEwMCwxMTcsNCwwLDAsMCwxMDEsMTIwLDEwMSw5OSwxMTcsOCwKLSAgICAwLDAsMCw5NSw5NSwxMDAsMTA1LDk5LDExNiw5NSw5NSw0MCw1LDAsMCwwLAotICAgIDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsNiwwLDAsMCwxMDksMTExLAotICAgIDEwMCwxMTcsMTA4LDEwMSwxMTcsMTAsMCwwLDAsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwxMDgsCi0gICAgMTAxLDExNSwxMTUsMTE3LDQsMCwwLDAsMTEwLDk3LDEwOSwxMDEsMTE3LDExLDAsMCwKLSAgICAwLDk5LDExMSwxMDAsMTAxLDk1LDExMSw5OCwxMDYsMTAxLDk5LDExNiw0MCwwLDAsMCwKLSAgICAwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwKLSAgICAxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLAotICAgIDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMiwwLDAsMCw5NSwxMDgsMTExLAotICAgIDk3LDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw4MiwzLDAsMCwxMTUsMzIsMCwKLSAgICAwLDAsMCw0LDksMSwxNSwxLDE4LDEsNiwxLDMsMSwyMiwxLAotICAgIDEzLDEsMjAsMiwxMiwxLDksMSwxNSwxLDI4LDIsMjUsMSw5LDEsCi0gICAgMTksMSwxMTcsMjYsMCwwLDAsOTUsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDY2LDk3LAotICAgIDExNSwxMDUsOTksMTE1LDQ2LDk1LDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsCi0gICAgMTAxLDc4LDcwLDQwLDksMCwwLDAsMTE3LDgsMCwwLDAsOTUsOTUsMTEwLAotICAgIDk3LDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOSwxMTEsMTAwLDExNywKLSAgICAxMDgsMTAxLDk1LDk1LDExNywxMiwwLDAsMCw5NSw5NSwxMTMsMTE3LDk3LDEwOCwxMTAsCi0gICAgOTcsMTA5LDEwMSw5NSw5NSwxMTcsNywwLDAsMCw5NSw5NSwxMDAsMTExLDk5LDk1LAotICAgIDk1LDExNywxMCwwLDAsMCwxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwKLSAgICAxMTcsMjAsMCwwLDAsOTUsOTgsMTIxLDExNiwxMDEsMTE1LDk1LDEwMiwxMTQsMTExLDEwOSwKLSAgICA5NSw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSwxMTcsMTcsMCwwLDAsMTA5LDExMSwKLSAgICAxMDAsMTE3LDEwOCwxMDEsOTUsMTAyLDExMSwxMTQsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsCi0gICAgNSwwLDAsMCw3MCw5NywxMDgsMTE1LDEwMSwxMTcsMTIsMCwwLDAsOTUsMTA4LAotICAgIDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDAsMSwwLDAsMCwxMTcsCi0gICAgMTAsMCwwLDAsOTUsOTUsMTA4LDExMSw5OSw5NywxMDgsMTE1LDk1LDk1LDQwLDAsCi0gICAgMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwKLSAgICAxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSwKLSAgICA5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEzLDAsMCwwLDk1LAotICAgIDc2LDExMSw5NywxMDAsMTAxLDExNCw2Niw5NywxMTUsMTA1LDk5LDExNSwyMywzLDAsMCwKLSAgICAxMTUsMTAsMCwwLDAsMTYsMyw2LDIsMTIsOCwxMiw0Niw2LDEsMTE3LAorICAgIDMsMCwxMDAsMiwwLDEwMCwzLDAsMTMyLDAsMCw5MCw0LDAsMTAwLDQsCisgICAgMCwxMDAsNSwwLDEzMiwwLDAsOTAsNSwwLDEwMCw2LDAsMTAwLDcsMCwKKyAgICAxMzIsMCwwLDkwLDYsMCwxMDAsOCwwLDgzLDQwLDksMCwwLDAsMjQ0LAogICAgIDEzLDAsMCwwLDk1LDc2LDExMSw5NywxMDAsMTAxLDExNCw2Niw5NywxMTUsMTA1LDk5LAotICAgIDExNSw5OSwxLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwyLDAsCi0gICAgMCwwLDY2LDAsMCwwLDExNSwxMDQsMCwwLDAsMTI0LDAsMCw2OSwxMDEsCi0gICAgMCwwLDkwLDEsMCwxMDAsMCwwLDkwLDIsMCwxMDAsMSwwLDEwMCwyLAotICAgIDAsMTMyLDAsMCw5MCwzLDAsMTAwLDMsMCwxMDAsNCwwLDEzMiwwLDAsCi0gICAgOTAsNCwwLDEwMCw1LDAsMTAwLDYsMCwxMzIsMCwwLDkwLDUsMCwxMDAsCi0gICAgNywwLDEwMCw4LDAsMTMyLDAsMCw5MCw2LDAsMTAwLDksMCwxMDAsMTAsCi0gICAgMCwxMzIsMCwwLDkwLDcsMCwxMDAsMTEsMCwxMDAsMTIsMCwxMzIsMCwwLAotICAgIDkwLDgsMCwxMDAsMTMsMCwxMDAsMTQsMCwxMzIsMCwwLDkwLDksMCwxMDAsCi0gICAgMTUsMCw4Myw0MCwxNiwwLDAsMCwxMTcsMTIsMCwwLDAsODMsMTExLDExNywKLSAgICAxMTQsOTksMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw5OSwyLDAsMCwwLDAsMCwKLSAgICAwLDAsMiwwLDAsMCwxLDAsMCwwLDY3LDAsMCwwLDExNSwxMCwKLSAgICAwLDAsMCwxMTYsMCwwLDEzMCwxLDAsMTAwLDEsMCw4Myw0MCwyLDAsCi0gICAgMCwwLDExNywxMjEsMCwwLDAsNzksMTEyLDExNiwxMDUsMTExLDExMCw5NywxMDgsMzIsCi0gICAgMTA5LDEwMSwxMTYsMTA0LDExMSwxMDAsMzIsMTE2LDEwNCw5NywxMTYsMzIsMTE0LDEwMSwxMTYsMTE3LAotICAgIDExNCwxMTAsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDEwOSwxMTEsMTAwLDEwNSwxMDIsMTA1LDk5LDk3LAotICAgIDExNiwxMDUsMTExLDExMCwzMiwxMTYsMTA1LDEwOSwxMDEsMzIsNDAsOTcsMTEwLDMyLDEwNSwxMTAsCi0gICAgMTE2LDQxLDMyLDEwMiwxMTEsMTE0LDMyLDExNiwxMDQsMTAxLDEwLDMyLDMyLDMyLDMyLDMyLAotICAgIDMyLDMyLDMyLDExNSwxMTIsMTAxLDk5LDEwNSwxMDIsMTA1LDEwMSwxMDAsMzIsMTEyLDk3LDExNiwKLSAgICAxMDQsNDQsMzIsMTE5LDEwNCwxMDEsMTE0LDEwMSwzMiwxMTIsOTcsMTE2LDEwNCwzMiwxMDUsMTE1LAotICAgIDMyLDk3LDMyLDExNSwxMTYsMTE0LDQ2LDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLAotICAgIDc4LDQwLDEsMCwwLDAsMTE3LDE5LDAsMCwwLDc4LDExMSwxMTYsNzMsMTA5LAotICAgIDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiwxMDEsMTAwLDY5LDExNCwxMTQsMTExLDExNCw0MCwyLAotICAgIDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsNCwwLDAsCi0gICAgMCwxMTIsOTcsMTE2LDEwNCw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LAotICAgIDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwKLSAgICAxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLAotICAgIDYyLDExNywxMCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwxMDksMTE2LDEwNSwxMDksMTAxLAotICAgIDEwOCwzLDAsMCwxMTUsMiwwLDAsMCwwLDQsMTE3LDIzLDAsMCwwLAotICAgIDgzLDExMSwxMTcsMTE0LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsMTEyLDk3LDExNiwKLSAgICAxMDQsOTUsMTA5LDExNiwxMDUsMTA5LDEwMSw5OSwyLDAsMCwwLDAsMCwwLDAsCi0gICAgMiwwLDAsMCwzLDAsMCwwLDY3LDAsMCwwLDExNSwyMCwwLDAsCi0gICAgMCwxMDUsMSwwLDEyNCwwLDAsMTA2LDAsMCwxMjQsMSwwLDEzMSwxLDAsCi0gICAgMTAwLDEsMCw1NCw4Myw0MCwyLDAsMCwwLDExNywxMTQsMSwwLDAsNzksCi0gICAgMTEyLDExNiwxMDUsMTExLDExMCw5NywxMDgsMzIsMTA5LDEwMSwxMTYsMTA0LDExMSwxMDAsMzIsMTE0LAotICAgIDEwMSwxMTYsMTE3LDExNCwxMTAsMTA1LDExMCwxMDMsMzIsOTcsMzIsMTA5LDEwMSwxMTYsOTcsMTAwLAotICAgIDk3LDExNiw5NywzMiwxMDAsMTA1LDk5LDExNiwzMiwxMDIsMTExLDExNCwzMiwxMTYsMTA0LDEwMSwKLSAgICAzMiwxMTUsMTEyLDEwMSw5OSwxMDUsMTAyLDEwNSwxMDEsMTAwLDMyLDExMiw5NywxMTYsMTA0LDEwLAotICAgIDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDExNiwxMTEsMzIsOTgsMTIxLDMyLDExNiwxMDQsCi0gICAgMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLDQwLDExNSwxMTYsMTE0LDQxLDQ2LDEwLDMyLDMyLAotICAgIDMyLDMyLDMyLDMyLDMyLDMyLDgwLDExMSwxMTUsMTE1LDEwNSw5OCwxMDgsMTAxLDMyLDEwNywKLSAgICAxMDEsMTIxLDExNSw1OCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw0NSwzMiwzOSwKLSAgICAxMDksMTE2LDEwNSwxMDksMTAxLDM5LDMyLDQwLDEwOSw5NywxMTAsMTAwLDk3LDExNiwxMTEsMTE0LAotICAgIDEyMSw0MSwzMiwxMDUsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDExMCwxMTcsMTA5LDEwMSwxMTQsMTA1LAotICAgIDk5LDMyLDExNiwxMDUsMTA5LDEwMSwxMTUsMTE2LDk3LDEwOSwxMTIsMzIsMTExLDEwMiwzMiwxMDgsCi0gICAgOTcsMTE1LDExNiwzMiwxMTUsMTExLDExNywxMTQsOTksMTAxLDEwLDMyLDMyLDMyLDMyLDMyLAotICAgIDMyLDMyLDMyLDMyLDMyLDk5LDExMSwxMDAsMTAxLDMyLDEwOSwxMTEsMTAwLDEwNSwxMDIsMTA1LAotICAgIDk5LDk3LDExNiwxMDUsMTExLDExMCw1OSwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwKLSAgICA0NSwzMiwzOSwxMTUsMTA1LDEyMiwxMDEsMzksMzIsNDAsMTExLDExMiwxMTYsMTA1LDExMSwxMTAsCi0gICAgOTcsMTA4LDQxLDMyLDEwNSwxMTUsMzIsMTE2LDEwNCwxMDEsMzIsMTE1LDEwNSwxMjIsMTAxLDMyLAotICAgIDEwNSwxMTAsMzIsOTgsMTIxLDExNiwxMDEsMTE1LDMyLDExMSwxMDIsMzIsMTE2LDEwNCwxMDEsMzIsCi0gICAgMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwzMiw5OSwxMTEsMTAwLDEwMSw0NiwxMCwxMCwzMiwzMiwKLSAgICAzMiwzMiwzMiwzMiwzMiwzMiw3MywxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDEwNSwKLSAgICAxMTAsMTAzLDMyLDExNiwxMDQsMTA1LDExNSwzMiwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwzMiw5NywKLSAgICAxMDgsMTA4LDExMSwxMTksMTE1LDMyLDExNiwxMDQsMTAxLDMyLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsCi0gICAgMzIsMTE2LDExMSwzMiwxMTQsMTAxLDk3LDEwMCwzMiw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLAotICAgIDEwMSwzMiwxMDIsMTA1LDEwOCwxMDEsMTE1LDQ2LDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLAotICAgIDMyLDExNyw1LDAsMCwwLDEwOSwxMTYsMTA1LDEwOSwxMDEsNDAsMSwwLDAsMCwKLSAgICAxMTcsMTAsMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTA5LDExNiwxMDUsMTA5LDEwMSw0MCwKLSAgICAyLDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsNCwwLAotICAgIDAsMCwxMTIsOTcsMTE2LDEwNCw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsCi0gICAgMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLAotICAgIDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsCi0gICAgMTEyLDYyLDExNywxMCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwxMTUsMTE2LDk3LDExNiwKLSAgICAxMTUsMTE0LDMsMCwwLDExNSwyLDAsMCwwLDAsMTAsMTE3LDIzLDAsMCwKLSAgICAwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsMTEyLDk3LAotICAgIDExNiwxMDQsOTUsMTE1LDExNiw5NywxMTYsMTE1LDk5LDQsMCwwLDAsMCwwLDAsCi0gICAgMCw0LDAsMCwwLDMsMCwwLDAsNjcsMCwwLDAsMTE1LDE2LDAsCi0gICAgMCwwLDEyNCwwLDAsMTA2LDAsMCwxMjQsMiwwLDEyNCwzLDAsMTMxLDIsCi0gICAgMCw4Myw0MCwxLDAsMCwwLDExNywyMjgsMCwwLDAsNzksMTEyLDExNiwxMDUsCi0gICAgMTExLDExMCw5NywxMDgsMzIsMTA5LDEwMSwxMTYsMTA0LDExMSwxMDAsMzIsMTE5LDEwNCwxMDUsOTksCi0gICAgMTA0LDMyLDExOSwxMTQsMTA1LDExNiwxMDEsMTE1LDMyLDEwMCw5NywxMTYsOTcsMzIsNDAsOTgsCi0gICAgMTIxLDExNiwxMDEsMTE1LDQxLDMyLDExNiwxMTEsMzIsOTcsMzIsMTAyLDEwNSwxMDgsMTAxLDMyLAotICAgIDExMiw5NywxMTYsMTA0LDMyLDQwLDk3LDMyLDExNSwxMTYsMTE0LDQxLDQ2LDEwLDEwLDMyLAotICAgIDMyLDMyLDMyLDMyLDMyLDMyLDMyLDczLDEwOSwxMTIsMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsCi0gICAgMTA1LDExMCwxMDMsMzIsMTE2LDEwNCwxMDUsMTE1LDMyLDEwOSwxMDEsMTE2LDEwNCwxMTEsMTAwLDMyLAotICAgIDk3LDEwOCwxMDgsMTExLDExOSwxMTUsMzIsMTAyLDExMSwxMTQsMzIsMTE2LDEwNCwxMDEsMzIsMTE5LAotICAgIDExNCwxMDUsMTE2LDEwNSwxMTAsMTAzLDMyLDExMSwxMDIsMzIsOTgsMTIxLDExNiwxMDEsOTksMTExLAotICAgIDEwMCwxMDEsMzIsMTAyLDEwNSwxMDgsMTAxLDExNSw0NiwxMCwxMCwzMiwzMiwzMiwzMiwzMiwKLSAgICAzMiwzMiwzMiw4NCwxMDQsMTAxLDMyLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMzIsMTEyLDk3LAotICAgIDExNiwxMDQsMzIsMTA1LDExNSwzMiwxMTAsMTAxLDEwMSwxMDAsMTAxLDEwMCwzMiwxMDUsMTEwLDMyLAotICAgIDExMSwxMTQsMTAwLDEwMSwxMTQsMzIsMTE2LDExMSwzMiw5OSwxMTEsMTE0LDExNCwxMDEsOTksMTE2LAotICAgIDEwOCwxMjEsMzIsMTE2LDExNCw5NywxMTAsMTE1LDEwMiwxMDEsMTE0LDMyLDExMiwxMDEsMTE0LDEwOSwKLSAgICAxMDUsMTE1LDExNSwxMDUsMTExLDExMCwxMTUsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsCi0gICAgNDAsMSwwLDAsMCwxMTcsOCwwLDAsMCwxMTUsMTAxLDExNiw5NSwxMDAsOTcsCi0gICAgMTE2LDk3LDQwLDQsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLAotICAgIDExNywxMSwwLDAsMCwxMTUsMTExLDExNywxMTQsOTksMTAxLDk1LDExMiw5NywxMTYsMTA0LAotICAgIDExNywxMCwwLDAsMCw5OSw5Nyw5OSwxMDQsMTAxLDk1LDExMiw5NywxMTYsMTA0LDExNywKLSAgICA0LDAsMCwwLDEwMCw5NywxMTYsOTcsNDAsMCwwLDAsMCw0MCwwLDAsCi0gICAgMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsCi0gICAgMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsCi0gICAgMTE0LDk3LDExMiw2MiwxMTcsMTUsMCwwLDAsOTUsOTksOTcsOTksMTA0LDEwMSw5NSwKLSAgICA5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSwxMjYsMywwLDAsMTE1LDIsMCwwLAotICAgIDAsMCw4LDExNywyOCwwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsNzYsMTExLAotICAgIDk3LDEwMCwxMDEsMTE0LDQ2LDk1LDk5LDk3LDk5LDEwNCwxMDEsOTUsOTgsMTIxLDExNiwxMDEsCi0gICAgOTksMTExLDEwMCwxMDEsOTksMywwLDAsMCwwLDAsMCwwLDMsMCwwLAotICAgIDAsMSwwLDAsMCw2NywwLDAsMCwxMTUsMTAsMCwwLDAsMTE2LDAsCi0gICAgMCwxMzAsMSwwLDEwMCwxLDAsODMsNDAsMiwwLDAsMCwxMTcsMTUxLDAsCi0gICAgMCwwLDc5LDExMiwxMTYsMTA1LDExMSwxMTAsOTcsMTA4LDMyLDEwOSwxMDEsMTE2LDEwNCwxMTEsCi0gICAgMTAwLDMyLDExOSwxMDQsMTA1LDk5LDEwNCwzMiwxMTksMTE0LDEwNSwxMTYsMTAxLDExNSwzMiwxMDAsCi0gICAgOTcsMTE2LDk3LDMyLDQwLDk4LDEyMSwxMTYsMTAxLDExNSw0MSwzMiwxMTYsMTExLDMyLDk3LAotICAgIDMyLDEwMiwxMDUsMTA4LDEwMSwzMiwxMTIsOTcsMTE2LDEwNCwzMiw0MCw5NywzMiwxMTUsMTE2LAotICAgIDExNCw0MSw0NiwxMCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw3MywxMDksMTEyLAotICAgIDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDEwNSwxMTAsMTAzLDMyLDExNiwxMDQsMTA1LDExNSwzMiwxMDksCi0gICAgMTAxLDExNiwxMDQsMTExLDEwMCwzMiw5NywxMDgsMTA4LDExMSwxMTksMTE1LDMyLDEwMiwxMTEsMTE0LAotICAgIDMyLDExNiwxMDQsMTAxLDMyLDExOSwxMTQsMTA1LDExNiwxMDUsMTEwLDEwMywzMiwxMTEsMTAyLDMyLAotICAgIDk4LDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsMTAxLDMyLDEwMiwxMDUsMTA4LDEwMSwxMTUsNDYsMTAsCi0gICAgMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsNzgsNDAsMSwwLDAsMCwxMTcsCi0gICAgMTksMCwwLDAsNzgsMTExLDExNiw3MywxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LAotICAgIDEwMSwxMDAsNjksMTE0LDExNCwxMTEsMTE0LDQwLDMsMCwwLDAsMTE3LDQsMCwwLAotICAgIDAsMTE1LDEwMSwxMDgsMTAyLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDExNyw0LAotICAgIDAsMCwwLDEwMCw5NywxMTYsOTcsNDAsMCwwLDAsMCw0MCwwLDAsMCwKLSAgICAwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LAotICAgIDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LAotICAgIDk3LDExMiw2MiwxMTcsOCwwLDAsMCwxMTUsMTAxLDExNiw5NSwxMDAsOTcsMTE2LDk3LAotICAgIDEzNiwzLDAsMCwxMTUsMiwwLDAsMCwwLDYsMTE3LDIxLDAsMCwwLAotICAgIDgzLDExMSwxMTcsMTE0LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsMTE1LDEwMSwxMTYsCi0gICAgOTUsMTAwLDk3LDExNiw5Nyw5OSwyLDAsMCwwLDAsMCwwLDAsOSwwLAotICAgIDAsMCw0NCwwLDAsMCw2NywwLDAsMCwxMTUsNjIsMSwwLDAsMTAwLAotICAgIDEsMCwxMDAsMiwwLDEwOCwwLDAsMTI1LDIsMCwxMjQsMCwwLDEwNiwxLAotICAgIDAsMTI0LDEsMCwxMzEsMSwwLDEyNSwzLDAsMTIxLDE5LDAsMTI0LDAsMCwKLSAgICAxMDYsMiwwLDEyNCwzLDAsMTMxLDEsMCwxMjUsNCwwLDg3LDExMCw1OCwwLAotICAgIDQsMTE2LDMsMCwxMDcsMTAsMCwxMTQsMTA2LDAsMSwxMjUsNSwwLDEsMTIyLAotICAgIDI2LDAsMTE2LDQsMCwxMDAsMywwLDEwMCw0LDAsMTI0LDEsMCwxMzEsMSwKKyAgICAxMTUsMTE3LDgzLDAsMCwwLDY2LDk3LDExNSwxMDEsMzIsOTksMTA4LDk3LDExNSwxMTUsCisgICAgMzIsMTExLDEwMiwzMiw5OSwxMTEsMTA5LDEwOSwxMTEsMTEwLDMyLDk5LDExMSwxMDAsMTAxLDMyLAorICAgIDExMCwxMDEsMTAxLDEwMCwxMDEsMTAwLDMyLDk4LDEyMSwzMiw5OCwxMTEsMTE2LDEwNCwzMiw4MywKKyAgICAxMTEsMTE3LDExNCw5OSwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDMyLDk3LDExMCwxMDAsMTAsCisgICAgMzIsMzIsMzIsMzIsODMsMTExLDExNywxMTQsOTksMTAxLDEwOCwxMDEsMTE1LDExNSw3MCwxMDUsCisgICAgMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsOTksMiwwLDAsMCwwLDAsCisgICAgMCwwLDUsMCwwLDAsMywwLDAsMCw2NywwLDAsMCwxMTUsODgsCisgICAgMCwwLDAsMTE2LDAsMCwxMjQsMCwwLDEwNiwxLDAsMTI0LDEsMCwxMzEsCisgICAgMSwwLDEzMSwxLDAsMTAwLDEsMCwyNSwxMjUsMiwwLDEyNCwyLDAsMTA2LAorICAgIDIsMCwxMDAsMiwwLDEwMCwxLDAsMTMxLDIsMCwxMDAsMywwLDI1LDEyNSwKKyAgICAzLDAsMTI0LDEsMCwxMDYsMywwLDEwMCwyLDAsMTMxLDEsMCwxMDAsNCwKKyAgICAwLDI1LDEyNSw0LDAsMTI0LDMsMCwxMDAsNSwwLDEwNywyLDAsMTExLDg3LAorICAgIDAsMTI0LDQsMCwxMDAsNSwwLDEwNywzLDAsODMsNDAsNiwwLDAsMCwKKyAgICAxMTcsMTQxLDAsMCwwLDY3LDExMSwxMTAsOTksMTE0LDEwMSwxMTYsMTAxLDMyLDEwNSwxMDksCisgICAgMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDk3LDExNiwxMDUsMTExLDExMCwzMiwxMTEsMTAyLDMyLAorICAgIDczLDExMCwxMTUsMTEyLDEwMSw5OSwxMTYsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDEwNSwxMTUsCisgICAgOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDMyLDk4LDEyMSwzMiw5OSwxMDQsMTAxLDk5LAorICAgIDEwNywxMDUsMTEwLDEwMywzMiwxMDUsMTAyLDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLAorICAgIDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLDExNCwxMDEsMTE2LDExNywxMTQsMTEwLDEwMSwKKyAgICAxMDAsMzIsOTgsMTIxLDMyLDEwMywxMDEsMTE2LDk1LDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsMTA5LAorICAgIDEwMSwzMiwxMDQsOTcsMTE1LDMyLDk3LDMyLDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsMTA5LDEwMSwKKyAgICAzMiwxMTEsMTAyLDMyLDM5LDk1LDk1LDEwNSwxMTAsMTA1LDExNiw5NSw5NSw0NiwxMTIsMTIxLAorICAgIDM5LDQ2LDExNCwyOSwwLDAsMCwxMTQsMTAzLDAsMCwwLDExNCw3MCwwLDAsCisgICAgMCwxMTQsMTAyLDAsMCwwLDExNCw3OCwwLDAsMCw0MCw0LDAsMCwwLAorICAgIDExNCwzOCwwLDAsMCwxMTQsMTYyLDAsMCwwLDExNCwzNCwwLDAsMCwxMTQsCisgICAgMzIsMCwwLDAsNDAsNSwwLDAsMCwxMTQsNzcsMCwwLDAsMTE0LDE3NywKKyAgICAwLDAsMCwxMTQsMTE4LDAsMCwwLDExNiwxMywwLDAsMCwxMDIsMTA1LDEwOCwKKyAgICAxMDEsMTEwLDk3LDEwOSwxMDEsOTUsOTgsOTcsMTE1LDEwMSwxMTYsOSwwLDAsMCwxMTYsCisgICAgOTcsMTA1LDEwOCw5NSwxMTAsOTcsMTA5LDEwMSwxMTQsNCwwLDAsMCwxMTQsNCwwLAorICAgIDAsMCwxMTQsNSwwLDAsMCwxMTQsMTU1LDAsMCwwLDEyMSwzLDAsMCwKKyAgICAxMTUsOCwwLDAsMCwwLDMsMjUsMSwyMiwxLDE5LDEsMTE3LDI0LDAsCisgICAgMCwwLDk1LDc2LDExMSw5NywxMDAsMTAxLDExNCw2Niw5NywxMTUsMTA1LDk5LDExNSw0NiwKKyAgICAxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5OSwyLDAsMCwwLDAsCisgICAgMCwwLDAsMiwwLDAsMCwxMSwwLDAsMCw2NywwLDAsMCwxMTUsCisgICAgMTAwLDAsMCwwLDEyNCwwLDAsMTI0LDEsMCw5NSwwLDAsMTE2LDEsMCwKKyAgICAxMjQsMCwwLDEyNCwxLDAsMTMxLDIsMCwxLDExNiwyLDAsMTI0LDAsMCwKKyAgICAxMjQsMSwwLDEzMSwyLDAsMSwxMTYsMywwLDEyNCwxLDAsMTAwLDEsMCwKKyAgICAxMzEsMiwwLDExNCw5NiwwLDEyMSwyMiwwLDExNiw0LDAsMTI0LDEsMCwxMDYsCisgICAgNSwwLDEzMSwxLDAsMTI0LDEsMCw5NSw2LDAsODcsMTEzLDk2LDAsNCwKKyAgICAxMTYsNywwLDEwNywxMCwwLDExNCw5MiwwLDEsMSwxLDg5LDExMyw5NiwwLAorICAgIDg4LDExMCwwLDAsMTAwLDIsMCw4Myw0MCwzLDAsMCwwLDExNywyLDEsCisgICAgMCwwLDgzLDEwMSwxMTYsMzIsMTE4LDk3LDExNCwxMDUsMTExLDExNywxMTUsMzIsOTcsMTE2LAorICAgIDExNiwxMTQsMTA1LDk4LDExNywxMTYsMTAxLDExNSwzMiwxMTEsMTEwLDMyLDExNiwxMDQsMTAxLDMyLAorICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLAorICAgIDMyLDY5LDEyMCwxMDEsOTksMTE3LDExNiwxMDUsMTExLDExMCw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsCisgICAgNDYsMTA1LDExMCwxMDUsMTE2LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDk3LDExNiwxMTYsCisgICAgMTE0LDExNSw0MCw0MSwzMiwxMDUsMTE1LDMyLDExNywxMTUsMTAxLDEwMCwzMiwxMTYsMTExLDMyLAorICAgIDExNSwxMDEsMTE2LDMyLDk1LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsOTUsOTUsNDQsMTAsCisgICAgMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsOTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsCisgICAgMTAxLDk1LDk1LDQ0LDMyLDk1LDk1LDEwMiwxMDUsMTA4LDEwMSw5NSw5NSw0NCwzMiw5NywKKyAgICAxMTAsMTAwLDMyLDExMSwxMTIsMTE2LDEwNSwxMTEsMTEwLDk3LDEwOCwxMDgsMTIxLDMyLDk1LDk1LAorICAgIDExMiw5NywxMTYsMTA0LDk1LDk1LDQ2LDMyLDg0LDEwNCwxMDEsMzIsOTUsOTUsOTksOTcsCisgICAgOTksMTA0LDEwMSwxMDAsOTUsOTUsMzIsOTcsMTE2LDExNiwxMTQsMTA1LDk4LDExNywxMTYsMTAxLAorICAgIDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDEwNSwxMTUsMzIsMTE1LDEwMSwxMTYsMzIsCisgICAgMTE3LDExNSwxMDUsMTEwLDEwMywzMiwxMDUsMTA5LDExMiw0Niw5OSw5Nyw5OSwxMDQsMTAxLDk1LAorICAgIDEwMiwxMTQsMTExLDEwOSw5NSwxMTUsMTExLDExNywxMTQsOTksMTAxLDQwLDQxLDMyLDk3LDExMCwKKyAgICAxMDAsMzIsOTUsOTUsMTAyLDEwNSwxMDgsMTAxLDk1LDk1LDQ2LDEwLDMyLDMyLDMyLDMyLAorICAgIDMyLDMyLDMyLDMyLDExNCwxNjMsMCwwLDAsNzgsNDAsOCwwLDAsMCwxMTQsCisgICAgMTcwLDAsMCwwLDExNCwxNjEsMCwwLDAsMTE0LDE2NSwwLDAsMCwxMTQsNTksCisgICAgMCwwLDAsMTE0LDExOSwwLDAsMCwxMTQsMTYzLDAsMCwwLDI0NCwxMCwwLAorICAgIDAsMCw5NSw5NSw5OSw5Nyw5OSwxMDQsMTAxLDEwMCw5NSw5NSwxMTQsMTExLDAsMCwKKyAgICAwLDQwLDIsMCwwLDAsMTE0LDc3LDAsMCwwLDExNCwxNjAsMCwwLDAsCisgICAgMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMjQ0LAorICAgIDE3LDAsMCwwLDEwNSwxMTAsMTA1LDExNiw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwKKyAgICA5NywxMTYsMTE2LDExNCwxMTUsMTI5LDMsMCwwLDExNSwxNiwwLDAsMCwwLDcsCisgICAgOSwxLDEzLDEsMTMsMSwxNSwxLDMsMSwyMiwxLDEzLDEsMTE3LDMxLAorICAgIDAsMCwwLDk1LDc2LDExMSw5NywxMDAsMTAxLDExNCw2Niw5NywxMTUsMTA1LDk5LDExNSwKKyAgICA0NiwxMDUsMTEwLDEwNSwxMTYsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsOTcsMTE2LDExNiwKKyAgICAxMTQsMTE1LDk5LDIsMCwwLDAsMCwwLDAsMCw0LDAsMCwwLDExLAorICAgIDAsMCwwLDY3LDAsMCwwLDExNSwxMTIsMCwwLDAsMTE2LDAsMCwxMjQsCisgICAgMSwwLDEzMSwxLDAsMTQzLDk0LDAsMTI1LDIsMCwxMjQsMCwwLDEwNiwxLAorICAgIDAsMTI0LDIsMCwxMzEsMSwwLDEsMTI0LDAsMCwxMDYsMiwwLDEyNCwxLAorICAgIDAsMTMxLDEsMCwxMjUsMywwLDEyNCwzLDAsMTAwLDEsMCwxMDcsOCwwLAorICAgIDExNCw3OSwwLDExNiwzLDAsMTAwLDIsMCwxMDYsNCwwLDEyNCwxLDAsMTMxLAorICAgIDEsMCwxMzEsMSwwLDEzMCwxLDAsMTEwLDAsMCwxMTYsNSwwLDExNiw2LAorICAgIDAsMTI0LDMsMCwxMjQsMiwwLDEwNiw3LDAsMTMxLDMsMCwxLDEyNCwyLAorICAgIDAsODMsODcsMTAwLDEsMCw4MSw4OCwxMDAsMSwwLDgzLDQwLDMsMCwwLAorICAgIDAsMTE3LDU3LDAsMCwwLDc2LDExMSw5NywxMDAsMzIsMTE2LDEwNCwxMDEsMzIsMTE1LAorICAgIDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwKKyAgICAxMDUsMTEwLDExNiwxMTEsMzIsMTE1LDEyMSwxMTUsNDYsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LAorICAgIDMyLDk3LDExMCwxMDAsMzIsMTE0LDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsMTA1LDExNiw0Niw3OCwKKyAgICAxMTcsNTIsMCwwLDAsOTksOTcsMTEwLDExMCwxMTEsMTE2LDMyLDEwOCwxMTEsOTcsMTAwLAorICAgIDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEyMywzMywxMTQsMTI1LDMyLDExOSwxMDQsMTAxLAorICAgIDExMCwzMiwxMDMsMTAxLDExNiw5NSw5OSwxMTEsMTAwLDEwMSw0MCw0MSwzMiwxMTQsMTAxLDExNiwKKyAgICAxMTcsMTE0LDExMCwxMTUsMzIsNzgsMTExLDExMCwxMDEsNDAsOCwwLDAsMCwxMTQsMTU0LAorICAgIDAsMCwwLDExNCwyMzMsMCwwLDAsMTE0LDIxMywwLDAsMCwxMTQsMTU2LDAsCisgICAgMCwwLDExNCw0NiwwLDAsMCwxMTQsMTAxLDAsMCwwLDI0NCw0LDAsMCwKKyAgICAwLDEwMSwxMjAsMTAxLDk5LDExNCw2MiwwLDAsMCw0MCw0LDAsMCwwLDExNCwKKyAgICA3NywwLDAsMCwxMTQsMTc3LDAsMCwwLDExNCwxNjAsMCwwLDAsMTE0LDIwMiwKKyAgICAwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLAorICAgIDAsMCwxMTQsMjEyLDAsMCwwLDE0NSwzLDAsMCwxMTUsMTYsMCwwLDAsCisgICAgMCwyLDE1LDEsMTMsMSwxNSwxLDEyLDEsMywxLDIxLDEsMTksMSwKKyAgICAxMTcsMjUsMCwwLDAsOTUsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDY2LDk3LDExNSwxMDUsCisgICAgOTksMTE1LDQ2LDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDc4LDQwLAorICAgIDcsMCwwLDAsMTE0LDU2LDAsMCwwLDExNCw1NSwwLDAsMCwxMTQsNTcsCisgICAgMCwwLDAsMTE0LDU4LDAsMCwwLDExNCwxNTUsMCwwLDAsMTE0LDIzMywwLAorICAgIDAsMCwxMTQsMjEyLDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwKKyAgICAwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDExNCwyMzEsMCwwLDAsCisgICAgMTE2LDMsMCwwLDExNSw4LDAsMCwwLDEyLDMsNiwyLDEyLDgsMTIsCisgICAgMTYsMTE0LDIzMSwwLDAsMCw5OSwwLDAsMCwwLDAsMCwwLDAsMCwKKyAgICAwLDAsMCw0LDAsMCwwLDY0LDAsMCwwLDExNSwxMDYsMCwwLDAsCisgICAgMTAxLDAsMCw5MCwxLDAsMTAwLDAsMCw5MCwyLDAsMTAwLDEsMCwxMDAsCisgICAgMiwwLDEzMiwwLDAsOTAsMywwLDEwMCwzLDAsMTAwLDQsMCwxMzIsMCwKKyAgICAwLDkwLDQsMCwxMDAsNSwwLDEwMCw2LDAsMTMyLDAsMCw5MCw1LDAsCisgICAgMTAwLDcsMCwxMDAsOCwwLDEzMiwwLDAsOTAsNiwwLDEwMCw5LDAsMTAwLAorICAgIDEwLDAsMTMyLDAsMCw5MCw3LDAsMTAwLDExLDAsMTAwLDE4LDAsMTAwLDEzLAorICAgIDAsMTAwLDE0LDAsMTMyLDAsMSw5MCw4LDAsMTAwLDE1LDAsMTAwLDE2LDAsCisgICAgMTMyLDAsMCw5MCw5LDAsMTAwLDE3LDAsODMsNDAsMTksMCwwLDAsMjQ0LAorICAgIDEyLDAsMCwwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsCisgICAgOTksMiwwLDAsMCwwLDAsMCwwLDIsMCwwLDAsMSwwLDAsCisgICAgMCw2NywwLDAsMCwxMTUsMTAsMCwwLDAsMTE2LDAsMCwxMzAsMSwwLAorICAgIDEwMCwxLDAsODMsNDAsMiwwLDAsMCwxMTcsMTc4LDAsMCwwLDc5LDExMiwKKyAgICAxMTYsMTA1LDExMSwxMTAsOTcsMTA4LDMyLDEwOSwxMDEsMTE2LDEwNCwxMTEsMTAwLDMyLDExNiwxMDQsCisgICAgOTcsMTE2LDMyLDExNCwxMDEsMTE2LDExNywxMTQsMTEwLDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMDksCisgICAgMTExLDEwMCwxMDUsMTAyLDEwNSw5OSw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTE2LDEwNSwxMDksMTAxLAorICAgIDMyLDQwLDk3LDExMCwzMiwxMDUsMTEwLDExNiw0MSwzMiwxMDIsMTExLDExNCwzMiwxMTYsMTA0LAorICAgIDEwMSwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwxMTUsMTEyLDEwMSw5OSwxMDUsMTAyLAorICAgIDEwNSwxMDEsMTAwLDMyLDExMiw5NywxMTYsMTA0LDQ0LDMyLDExOSwxMDQsMTAxLDExNCwxMDEsMzIsCisgICAgMTEyLDk3LDExNiwxMDQsMzIsMTA1LDExNSwzMiw5NywzMiwxMTUsMTE2LDExNCw0NiwxMCwxMCwKKyAgICAzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw4Miw5NywxMDUsMTE1LDEwMSwxMTUsMzIsNzMsCisgICAgNzksNjksMTE0LDExNCwxMTEsMTE0LDMyLDExOSwxMDQsMTAxLDExMCwzMiwxMTYsMTA0LDEwMSwzMiwKKyAgICAxMTIsOTcsMTE2LDEwNCwzMiw5OSw5NywxMTAsMTEwLDExMSwxMTYsMzIsOTgsMTAxLDMyLDEwNCwKKyAgICA5NywxMTAsMTAwLDEwOCwxMDEsMTAwLDQ2LDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLAorICAgIDc4LDQwLDEsMCwwLDAsMjQ0LDcsMCwwLDAsNzMsNzksNjksMTE0LDExNCwKKyAgICAxMTEsMTE0LDQwLDIsMCwwLDAsMTE0LDc3LDAsMCwwLDExNCwzNSwwLDAsCisgICAgMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwKKyAgICAyNDQsMTAsMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTA5LDExNiwxMDUsMTA5LDEwMSwxNTksCisgICAgMywwLDAsMTE1LDIsMCwwLDAsMCw2LDExNywyMywwLDAsMCw4MywKKyAgICAxMTEsMTE3LDExNCw5OSwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDExMiw5NywxMTYsMTA0LAorICAgIDk1LDEwOSwxMTYsMTA1LDEwOSwxMDEsOTksMiwwLDAsMCwwLDAsMCwwLDIsCisgICAgMCwwLDAsMywwLDAsMCw2NywwLDAsMCwxMTUsMjAsMCwwLDAsCisgICAgMTA1LDEsMCwxMjQsMCwwLDEwNiwwLDAsMTI0LDEsMCwxMzEsMSwwLDEwMCwKKyAgICAxLDAsNTQsODMsNDAsMiwwLDAsMCwxMTcsMTcwLDEsMCwwLDc5LDExMiwKKyAgICAxMTYsMTA1LDExMSwxMTAsOTcsMTA4LDMyLDEwOSwxMDEsMTE2LDEwNCwxMTEsMTAwLDMyLDExNCwxMDEsCisgICAgMTE2LDExNywxMTQsMTEwLDEwNSwxMTAsMTAzLDMyLDk3LDMyLDEwOSwxMDEsMTE2LDk3LDEwMCw5NywKKyAgICAxMTYsOTcsMzIsMTAwLDEwNSw5OSwxMTYsMzIsMTAyLDExMSwxMTQsMzIsMTE2LDEwNCwxMDEsMzIsCisgICAgMTE1LDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwzMiwxMTIsOTcsMTE2LDEwNCwxMCwzMiwKKyAgICAzMiwzMiwzMiwzMiwzMiwzMiwzMiwxMTYsMTExLDMyLDk4LDEyMSwzMiwxMTYsMTA0LDEwMSwKKyAgICAzMiwxMTIsOTcsMTE2LDEwNCwzMiw0MCwxMTUsMTE2LDExNCw0MSw0NiwxMCwzMiwzMiwzMiwKKyAgICAzMiwzMiwzMiwzMiwzMiw4MCwxMTEsMTE1LDExNSwxMDUsOTgsMTA4LDEwMSwzMiwxMDcsMTAxLAorICAgIDEyMSwxMTUsNTgsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsNDUsMzIsMzksMTA5LAorICAgIDExNiwxMDUsMTA5LDEwMSwzOSwzMiw0MCwxMDksOTcsMTEwLDEwMCw5NywxMTYsMTExLDExNCwxMjEsCisgICAgNDEsMzIsMTA1LDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMTAsMTE3LDEwOSwxMDEsMTE0LDEwNSw5OSwKKyAgICAzMiwxMTYsMTA1LDEwOSwxMDEsMTE1LDExNiw5NywxMDksMTEyLDMyLDExMSwxMDIsMzIsMTA4LDk3LAorICAgIDExNSwxMTYsMzIsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwxMCwzMiwzMiwzMiwzMiwzMiwzMiwKKyAgICAzMiwzMiwzMiwzMiw5OSwxMTEsMTAwLDEwMSwzMiwxMDksMTExLDEwMCwxMDUsMTAyLDEwNSw5OSwKKyAgICA5NywxMTYsMTA1LDExMSwxMTAsNTksMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsNDUsCisgICAgMzIsMzksMTE1LDEwNSwxMjIsMTAxLDM5LDMyLDQwLDExMSwxMTIsMTE2LDEwNSwxMTEsMTEwLDk3LAorICAgIDEwOCw0MSwzMiwxMDUsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDExNSwxMDUsMTIyLDEwMSwzMiwxMDUsCisgICAgMTEwLDMyLDk4LDEyMSwxMTYsMTAxLDExNSwzMiwxMTEsMTAyLDMyLDExNiwxMDQsMTAxLDMyLDExNSwKKyAgICAxMTEsMTE3LDExNCw5OSwxMDEsMzIsOTksMTExLDEwMCwxMDEsNDYsMTAsMTAsMzIsMzIsMzIsCisgICAgMzIsMzIsMzIsMzIsMzIsNzMsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiwxMDUsMTEwLAorICAgIDEwMywzMiwxMTYsMTA0LDEwNSwxMTUsMzIsMTA5LDEwMSwxMTYsMTA0LDExMSwxMDAsMzIsOTcsMTA4LAorICAgIDEwOCwxMTEsMTE5LDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDMyLAorICAgIDExNiwxMTEsMzIsMTE0LDEwMSw5NywxMDAsMzIsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsCisgICAgMzIsMTAyLDEwNSwxMDgsMTAxLDExNSw0NiwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwKKyAgICA4Miw5NywxMDUsMTE1LDEwMSwxMTUsMzIsNzMsNzksNjksMTE0LDExNCwxMTEsMTE0LDMyLDExOSwKKyAgICAxMDQsMTAxLDExMCwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsOTcsMTE2LDEwNCwzMiw5OSw5NywxMTAsCisgICAgMTEwLDExMSwxMTYsMzIsOTgsMTAxLDMyLDEwNCw5NywxMTAsMTAwLDEwOCwxMDEsMTAwLDQ2LDEwLAorICAgIDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDExNCwxOTIsMCwwLDAsNDAsMSwwLAorICAgIDAsMCwxMTQsMjM3LDAsMCwwLDQwLDIsMCwwLDAsMTE0LDc3LDAsMCwKKyAgICAwLDExNCwzNSwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwKKyAgICAxMTQsNSwwLDAsMCwyNDQsMTAsMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTE1LAorICAgIDExNiw5NywxMTYsMTE1LDE2NywzLDAsMCwxMTUsMiwwLDAsMCwwLDExLDExNywKKyAgICAyMywwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LAorICAgIDQ2LDExMiw5NywxMTYsMTA0LDk1LDExNSwxMTYsOTcsMTE2LDExNSw5OSw0LDAsMCwwLAorICAgIDAsMCwwLDAsNCwwLDAsMCwzLDAsMCwwLDY3LDAsMCwwLAorICAgIDExNSwxNiwwLDAsMCwxMjQsMCwwLDEwNiwwLDAsMTI0LDIsMCwxMjQsMywKKyAgICAwLDEzMSwyLDAsODMsNDAsMSwwLDAsMCwxMTcsMjI4LDAsMCwwLDc5LAorICAgIDExMiwxMTYsMTA1LDExMSwxMTAsOTcsMTA4LDMyLDEwOSwxMDEsMTE2LDEwNCwxMTEsMTAwLDMyLDExOSwKKyAgICAxMDQsMTA1LDk5LDEwNCwzMiwxMTksMTE0LDEwNSwxMTYsMTAxLDExNSwzMiwxMDAsOTcsMTE2LDk3LAorICAgIDMyLDQwLDk4LDEyMSwxMTYsMTAxLDExNSw0MSwzMiwxMTYsMTExLDMyLDk3LDMyLDEwMiwxMDUsCisgICAgMTA4LDEwMSwzMiwxMTIsOTcsMTE2LDEwNCwzMiw0MCw5NywzMiwxMTUsMTE2LDExNCw0MSw0NiwKKyAgICAxMCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw3MywxMDksMTEyLDEwOCwxMDEsMTA5LAorICAgIDEwMSwxMTAsMTE2LDEwNSwxMTAsMTAzLDMyLDExNiwxMDQsMTA1LDExNSwzMiwxMDksMTAxLDExNiwxMDQsCisgICAgMTExLDEwMCwzMiw5NywxMDgsMTA4LDExMSwxMTksMTE1LDMyLDEwMiwxMTEsMTE0LDMyLDExNiwxMDQsCisgICAgMTAxLDMyLDExOSwxMTQsMTA1LDExNiwxMDUsMTEwLDEwMywzMiwxMTEsMTAyLDMyLDk4LDEyMSwxMTYsCisgICAgMTAxLDk5LDExMSwxMDAsMTAxLDMyLDEwMiwxMDUsMTA4LDEwMSwxMTUsNDYsMTAsMTAsMzIsMzIsCisgICAgMzIsMzIsMzIsMzIsMzIsMzIsODQsMTA0LDEwMSwzMiwxMTUsMTExLDExNywxMTQsOTksMTAxLAorICAgIDMyLDExMiw5NywxMTYsMTA0LDMyLDEwNSwxMTUsMzIsMTEwLDEwMSwxMDEsMTAwLDEwMSwxMDAsMzIsCisgICAgMTA1LDExMCwzMiwxMTEsMTE0LDEwMCwxMDEsMTE0LDMyLDExNiwxMTEsMzIsOTksMTExLDExNCwxMTQsCisgICAgMTAxLDk5LDExNiwxMDgsMTIxLDMyLDExNiwxMTQsOTcsMTEwLDExNSwxMDIsMTAxLDExNCwzMiwxMTIsCisgICAgMTAxLDExNCwxMDksMTA1LDExNSwxMTUsMTA1LDExMSwxMTAsMTE1LDEwLDMyLDMyLDMyLDMyLDMyLAorICAgIDMyLDMyLDMyLDQwLDEsMCwwLDAsMjQ0LDgsMCwwLDAsMTE1LDEwMSwxMTYsCisgICAgOTUsMTAwLDk3LDExNiw5Nyw0MCw0LDAsMCwwLDExNCw3NywwLDAsMCwxMTQsCisgICAgMTI5LDAsMCwwLDExNiwxMCwwLDAsMCw5OSw5Nyw5OSwxMDQsMTAxLDk1LDExMiwKKyAgICA5NywxMTYsMTA0LDExNCw1MiwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLAorICAgIDAsMCwxMTQsNSwwLDAsMCwyNDQsMTUsMCwwLDAsOTUsOTksOTcsOTksCisgICAgMTA0LDEwMSw5NSw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSwxODAsMywwLDAsMTE1LAorICAgIDIsMCwwLDAsMCw4LDExNywyOCwwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwKKyAgICAxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDk1LDk5LDk3LDk5LDEwNCwxMDEsOTUsOTgsCisgICAgMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsOTksMywwLDAsMCwwLDAsMCwwLAorICAgIDMsMCwwLDAsMSwwLDAsMCw2NywwLDAsMCwxMTUsNCwwLDAsCisgICAgMCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDE1MCwwLDAsMCw3OSwKKyAgICAxMTIsMTE2LDEwNSwxMTEsMTEwLDk3LDEwOCwzMiwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwzMiwxMTksCisgICAgMTA0LDEwNSw5OSwxMDQsMzIsMTE5LDExNCwxMDUsMTE2LDEwMSwxMTUsMzIsMTAwLDk3LDExNiw5NywKKyAgICAzMiw0MCw5OCwxMjEsMTE2LDEwMSwxMTUsNDEsMzIsMTE2LDExMSwzMiw5NywzMiwxMDIsMTA1LAorICAgIDEwOCwxMDEsMzIsMTEyLDk3LDExNiwxMDQsMzIsNDAsOTcsMzIsMTE1LDExNiwxMTQsNDEsNDYsCisgICAgMTAsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsNzMsMTA5LDExMiwxMDgsMTAxLDEwOSwKKyAgICAxMDEsMTEwLDExNiwxMDUsMTEwLDEwMywzMiwxMTYsMTA0LDEwNSwxMTUsMzIsMTA5LDEwMSwxMTYsMTA0LAorICAgIDExMSwxMDAsMzIsOTcsMTA4LDEwOCwxMTEsMTE5LDExNSwzMiwxMDIsMTExLDExNCwzMiwxMTYsMTA0LAorICAgIDEwMSwzMiwxMTksMTE0LDEwNSwxMTYsMTA1LDExMCwxMDMsMzIsMTExLDEwMiwzMiw5OCwxMjEsMTE2LAorICAgIDEwMSw5OSwxMTEsMTAwLDEwMSwzMiwxMDIsMTA1LDEwOCwxMDEsMTE1LDQ2LDEwLDMyLDMyLDMyLAorICAgIDMyLDMyLDMyLDMyLDMyLDc4LDExNCw0LDAsMCwwLDQwLDMsMCwwLDAsCisgICAgMTE0LDc3LDAsMCwwLDExNCwzNSwwLDAsMCwxMTQsNTIsMCwwLDAsMTE0LAorICAgIDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMTE0LDIzOSwKKyAgICAwLDAsMCwxOTAsMywwLDAsMTE1LDAsMCwwLDAsMTE3LDIxLDAsMCwKKyAgICAwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsMTE1LDEwMSwKKyAgICAxMTYsOTUsMTAwLDk3LDExNiw5Nyw5OSwyLDAsMCwwLDAsMCwwLDAsOSwKKyAgICAwLDAsMCw0NCwwLDAsMCw2NywwLDAsMCwxMTUsNjIsMSwwLDAsCisgICAgMTAwLDEsMCwxMDAsMiwwLDEwOCwwLDAsMTI1LDIsMCwxMjQsMCwwLDEwNiwKKyAgICAxLDAsMTI0LDEsMCwxMzEsMSwwLDEyNSwzLDAsMTIxLDE5LDAsMTI0LDAsCisgICAgMCwxMDYsMiwwLDEyNCwzLDAsMTMxLDEsMCwxMjUsNCwwLDg3LDExMCw1OCwKKyAgICAwLDQsMTE2LDMsMCwxMDcsMTAsMCwxMTQsMTA2LDAsMSwxMjUsNSwwLDEsCisgICAgMTIyLDI2LDAsMTE2LDQsMCwxMDAsMywwLDEwMCw0LDAsMTI0LDEsMCwxMzEsCisgICAgMSwxLDEyNCw1LDAsMTMwLDIsMCw4Nyw4OSwxMDAsMiwwLDEwMCwyLDAsCisgICAgMTI1LDUsMCwxMjYsNSwwLDg4LDExMCwxLDAsODgsMTE2LDUsMCwxMDYsNiwKKyAgICAwLDEyNCw0LDAsMTMxLDEsMCwxMDYsNywwLDEyNSw2LDAsMTIxLDE5LDAsCisgICAgMTI0LDIsMCwxMDYsOCwwLDEyNCw2LDAsMTMxLDEsMCwxMjUsNywwLDg3LAorICAgIDExMCw1OCwwLDQsMTE2LDksMCwxMDcsMTAsMCwxMTQsMjA0LDAsMSwxMjUsNSwKKyAgICAwLDEsMTIyLDI2LDAsMTE2LDQsMCwxMDAsNSwwLDEwMCw0LDAsMTI0LDEsCisgICAgMCwxMzEsMSwxLDEyNCw1LDAsMTMwLDIsMCw4Nyw4OSwxMDAsMiwwLDEwMCwKKyAgICAyLDAsMTI1LDUsMCwxMjYsNSwwLDg4LDExMCwxLDAsODgsMTE2LDUsMCwKKyAgICAxMDYsMTAsMCwxMDAsMiwwLDEwMCw2LDAsMTMxLDIsMCwxMjUsOCwwLDEyMSwKKyAgICAzMCwwLDEyNCw4LDAsMTA2LDExLDAsMTI0LDQsMCwxMDYsMTEsMCwxMjQsNywKKyAgICAwLDEwMCwxLDAsMjUsMTMxLDEsMCwxMzEsMSwwLDgzLDg3LDExMCw1OCwwLAorICAgIDQsMTE2LDEyLDAsMTA3LDEwLDAsMTE0LDU3LDEsMSwxMjUsNSwwLDEsMTIyLAorICAgIDI2LDAsMTE2LDQsMCwxMDAsNywwLDEwMCw0LDAsMTI0LDEsMCwxMzEsMSwKICAgICAxLDEyNCw1LDAsMTMwLDIsMCw4Nyw4OSwxMDAsMiwwLDEwMCwyLDAsMTI1LAotICAgIDUsMCwxMjYsNSwwLDg4LDExMCwxLDAsODgsMTE2LDUsMCwxMDYsNiwwLAotICAgIDEyNCw0LDAsMTMxLDEsMCwxMDYsNywwLDEyNSw2LDAsMTIxLDE5LDAsMTI0LAotICAgIDIsMCwxMDYsOCwwLDEyNCw2LDAsMTMxLDEsMCwxMjUsNywwLDg3LDExMCwKLSAgICA1OCwwLDQsMTE2LDksMCwxMDcsMTAsMCwxMTQsMjA0LDAsMSwxMjUsNSwwLAotICAgIDEsMTIyLDI2LDAsMTE2LDQsMCwxMDAsNSwwLDEwMCw0LDAsMTI0LDEsMCwKLSAgICAxMzEsMSwxLDEyNCw1LDAsMTMwLDIsMCw4Nyw4OSwxMDAsMiwwLDEwMCwyLAotICAgIDAsMTI1LDUsMCwxMjYsNSwwLDg4LDExMCwxLDAsODgsMTE2LDUsMCwxMDYsCi0gICAgMTAsMCwxMDAsMiwwLDEwMCw3LDAsMTMxLDIsMCwxMjUsOCwwLDEyMSwzMCwKLSAgICAwLDEyNCw4LDAsMTA2LDEzLDAsMTI0LDQsMCwxMDYsMTMsMCwxMjQsNywwLAotICAgIDEwMCwxLDAsMjUsMTMxLDEsMCwxMzEsMSwwLDgzLDg3LDExMCw1OCwwLDQsCi0gICAgMTE2LDE0LDAsMTA3LDEwLDAsMTE0LDU3LDEsMSwxMjUsNSwwLDEsMTIyLDI2LAotICAgIDAsMTE2LDQsMCwxMDAsNiwwLDEwMCw0LDAsMTI0LDEsMCwxMzEsMSwxLAotICAgIDEyNCw1LDAsMTMwLDIsMCw4Nyw4OSwxMDAsMiwwLDEwMCwyLDAsMTI1LDUsCi0gICAgMCwxMjYsNSwwLDg4LDExMCwxLDAsODgsMTAwLDIsMCw4Myw0MCw4LDAsCi0gICAgMCwwLDExNyw1MiwwLDAsMCw2NywxMTEsMTEwLDk5LDExNCwxMDEsMTE2LDEwMSwzMiwKLSAgICAxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTExLAotICAgIDEwMiwzMiw3MywxMTAsMTE1LDExMiwxMDEsOTksMTE2LDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwKLSAgICAxMDMsMTAxLDExNiw5NSwxMTUsMTExLDExNywxMTQsOTksMTAxLDQ2LDEwNSwwLDAsMCwwLAotICAgIDc4LDExNywzOSwwLDAsMCwxMTUsMTExLDExNywxMTQsOTksMTAxLDMyLDExMCwxMTEsMTE2LAotICAgIDMyLDk3LDExOCw5NywxMDUsMTA4LDk3LDk4LDEwOCwxMDEsMzIsMTE2LDEwNCwxMTQsMTExLDExNywKLSAgICAxMDMsMTA0LDMyLDEwMywxMDEsMTE2LDk1LDEwMCw5NywxMTYsOTcsNDAsNDEsMTE3LDQsMCwKLSAgICAwLDAsMTEwLDk3LDEwOSwxMDEsMTE3LDI1LDAsMCwwLDcwLDk3LDEwNSwxMDgsMTAxLAotICAgIDEwMCwzMiwxMTYsMTExLDMyLDEwMCwxMDEsMTE2LDEwMSw5OSwxMTYsMzIsMTAxLDExMCw5OSwxMTEsCi0gICAgMTAwLDEwNSwxMTAsMTAzLDExNywyOCwwLDAsMCw3MCw5NywxMDUsMTA4LDEwMSwxMDAsMzIsCi0gICAgMTE2LDExMSwzMiwxMDAsMTAxLDk5LDExMSwxMDAsMTAxLDMyLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsCi0gICAgMzIsMTAyLDEwNSwxMDgsMTAxLDg0LDQwLDE1LDAsMCwwLDExNyw4LDAsMCwwLAotICAgIDExNiwxMTEsMTA3LDEwMSwxMTAsMTA1LDEyMiwxMDEsMTE3LDEyLDAsMCwwLDEwMywxMDEsMTE2LAotICAgIDk1LDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsMTA5LDEwMSwxMTcsOCwwLDAsMCwxMDMsMTAxLAotICAgIDExNiw5NSwxMDAsOTcsMTE2LDk3LDExNyw3LDAsMCwwLDczLDc5LDY5LDExNCwxMTQsCi0gICAgMTExLDExNCwxMTcsMTEsMCwwLDAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw2OSwxMTQsMTE0LAotICAgIDExMSwxMTQsMTE3LDMsMCwwLDAsOTUsMTA1LDExMSwxMTcsNywwLDAsMCw2NiwKLSAgICAxMjEsMTE2LDEwMSwxMTUsNzMsNzksMTE3LDgsMCwwLDAsMTE0LDEwMSw5NywxMDAsMTA4LAotICAgIDEwNSwxMTAsMTAxLDExNywxNSwwLDAsMCwxMDAsMTAxLDExNiwxMDEsOTksMTE2LDk1LDEwMSwKLSAgICAxMTAsOTksMTExLDEwMCwxMDUsMTEwLDEwMywxMTcsMTEsMCwwLDAsODMsMTIxLDExMCwxMTYsCi0gICAgOTcsMTIwLDY5LDExNCwxMTQsMTExLDExNCwxMTcsMjUsMCwwLDAsNzMsMTEwLDk5LDExNCwKLSAgICAxMDEsMTA5LDEwMSwxMTAsMTE2LDk3LDEwOCw3OCwxMDEsMTE5LDEwOCwxMDUsMTEwLDEwMSw2OCwxMDEsCi0gICAgOTksMTExLDEwMCwxMDEsMTE0LDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNyw0LAotICAgIDAsMCwwLDg0LDExNCwxMTcsMTAxLDExNyw2LDAsMCwwLDEwMCwxMDEsOTksMTExLAotICAgIDEwMCwxMDEsMTE3LDE4LDAsMCwwLDg1LDExMCwxMDUsOTksMTExLDEwMCwxMDEsNjgsMTAxLAotICAgIDk5LDExMSwxMDAsMTAxLDY5LDExNCwxMTQsMTExLDExNCw0MCw5LDAsMCwwLDExNyw0LAotICAgIDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwxMDgsCi0gICAgMTEwLDk3LDEwOSwxMDEsMTE3LDgsMCwwLDAsMTE2LDExMSwxMDcsMTAxLDExMCwxMDUsMTIyLAotICAgIDEwMSwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwxMTcsMTIsMCwwLDAsMTE1LAotICAgIDExMSwxMTcsMTE0LDk5LDEwMSw5NSw5OCwxMjEsMTE2LDEwMSwxMTUsMTE3LDMsMCwwLDAsCi0gICAgMTAxLDEyMCw5OSwxMTcsMTAsMCwwLDAsMTE0LDEwMSw5NywxMDAsMTE1LDExMSwxMTcsMTE0LAotICAgIDk5LDEwMSwxMTcsOCwwLDAsMCwxMDEsMTEwLDk5LDExMSwxMDAsMTA1LDExMCwxMDMsMTE3LAotICAgIDE1LDAsMCwwLDExMCwxMDEsMTE5LDEwOCwxMDUsMTEwLDEwMSw5NSwxMDAsMTAxLDk5LDExMSwKLSAgICAxMDAsMTAxLDExNCw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsCi0gICAgMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LAotICAgIDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywKLSAgICAxMCwwLDAsMCwxMDMsMTAxLDExNiw5NSwxMTUsMTExLDExNywxMTQsOTksMTAxLDE0NSwzLAotICAgIDAsMCwxMTUsMzgsMCwwLDAsMCwyLDEyLDEsMTUsMSwzLDEsMTksCi0gICAgMSwxOCwxLDksMSwzMSwxLDE4LDEsMywxLDE5LDEsMTgsMSw5LAotICAgIDEsMzEsMSwxOCwxLDMsMSwzMCwxLDE4LDEsOSwxLDExNywyMywwLAotICAgIDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDEwMywKLSAgICAxMDEsMTE2LDk1LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsOTksMiwwLDAsMCwwLDAsCi0gICAgMCwwLDEyLDAsMCwwLDQ1LDAsMCwwLDY3LDAsMCwwLDExNSw1MiwKLSAgICAyLDAsMCwxMjQsMCwwLDEwNiwwLDAsMTI0LDEsMCwxMzEsMSwwLDEyNSwKLSAgICAyLDAsMTAwLDEwLDAsMTI1LDMsMCwxMjEsMTYsMCwxMTYsMiwwLDEyNCwyLAotICAgIDAsMTMxLDEsMCwxMjUsNCwwLDg3LDExMCwyNCwwLDQsMTE2LDMsMCwxMDcsCi0gICAgMTAsMCwxMTQsNjMsMCwxLDEsMSwxMDAsMTAsMCwxMjUsNCwwLDg5LDExMCwKLSAgICAxNCwxLDg4LDEyMSwxOSwwLDEyNCwwLDAsMTA2LDQsMCwxMjQsMiwwLDEzMSwKLSAgICAxLDAsMTI1LDUsMCw4NywxMTAsMTgsMCw0LDExNiwzLDAsMTA3LDEwLDAsCi0gICAgMTE0LDEwMywwLDEsMSwxLDg5LDExMCwyMzAsMCw4OCwxMTYsNSwwLDEyNCw1LAotICAgIDAsMTAwLDEsMCwyNSwxMzEsMSwwLDEyNSwzLDAsMTIxLDE5LDAsMTI0LDAsCi0gICAgMCwxMDYsNiwwLDEyNCw0LDAsMTMxLDEsMCwxMjUsNiwwLDg3LDExMCwxOCwKLSAgICAwLDQsMTE2LDcsMCwxMDcsMTAsMCwxMTQsMTU5LDAsMSwxLDEsODksMTEwLAotICAgIDE3NCwwLDg4LDEyMSwyOCwwLDEyNCwwLDAsMTA2LDgsMCwxMjQsMSwwLDEyNCwKLSAgICA2LDAsMTI0LDQsMCwxMjQsNSwwLDEzMSw0LDAsMTI1LDcsMCw4NywxMTAsCi0gICAgMjQsMCw0LDExNiw5LDAsMTE2LDEwLDAsMTAyLDIsMCwxMDcsMTAsMCwxMTQsCi0gICAgMjE0LDAsMSwxLDEsODksMTEwLDExOSwwLDg4LDExNiwxMSwwLDEwMCwyLDAsCi0gICAgMTI0LDQsMCwxMjQsMiwwLDEzMSwzLDAsMSwxMTYsMTIsMCwxMDYsMTMsMCwKLSAgICAxMjQsNywwLDEzMSwxLDAsMTI1LDgsMCwxMTYsMTQsMCwxMjQsOCwwLDExNiwKLSAgICAxNSwwLDEzMSwyLDAsMTE0LDM4LDEsMTE2LDE2LDAsMTA2LDE3LDAsMTI0LDgsCi0gICAgMCwxMjQsMiwwLDEzMSwyLDAsMSwxMTYsMTEsMCwxMDAsMywwLDEyNCw0LAotICAgIDAsMTMxLDIsMCwxLDEyNCw4LDAsODMsMTAwLDQsMCwxMjUsOSwwLDExNiwKLSAgICA5LDAsMTI0LDksMCwxMDYsMTgsMCwxMjQsNCwwLDEzMSwxLDAsMTAwLDUsCi0gICAgMCwxMjQsMSwwLDEwMCw2LDAsMTI0LDQsMCwxMzEsMSwyLDEzMCwxLDAsCi0gICAgMTI0LDAsMCwxMDYsNiwwLDEyNCwyLDAsMTMxLDEsMCwxMjUsMTAsMCwxMTYsCi0gICAgMTksMCwxMTYsMjAsMCwxMjQsMTAsMCwxMjQsMiwwLDEwMCw3LDAsMTAwLDgsCi0gICAgMCwxMDAsMTEsMCwxMzEsNCwxLDEyNSwxMSwwLDExNiwxMSwwLDEwMCwzLDAsCi0gICAgMTI0LDIsMCwxMzEsMiwwLDEsMTE2LDIyLDAsMTA2LDIzLDAsMTIsMTE0LDQ4LAotICAgIDIsMTI0LDQsMCwxMDAsMTAsMCwxMDcsOSwwLDExNCw0OCwyLDEyNCwzLDAsCi0gICAgMTAwLDEwLDAsMTA3LDksMCwxMTQsNDgsMiwxMTYsMjQsMCwxMTYsMjUsMCwxMzEsCi0gICAgMSwwLDEyNSw2LDAsMTI0LDYsMCwxMDYsMjYsMCwxMTYsMjcsMCwxMjQsMywKLSAgICAwLDEzMSwxLDAsMTMxLDEsMCwxLDEyNCw2LDAsMTA2LDI2LDAsMTE2LDI3LAotICAgIDAsMTE2LDI4LDAsMTI0LDEwLDAsMTMxLDEsMCwxMzEsMSwwLDEzMSwxLDAsCi0gICAgMSwxMjQsNiwwLDEwNiwyNiwwLDExNiwxMiwwLDEwNiwyOSwwLDEyNCwxMSwwLAotICAgIDEzMSwxLDAsMTMxLDEsMCwxLDEyMSwzNiwwLDEyNCwwLDAsMTA2LDMwLDAsCi0gICAgMTI0LDIsMCwxMjQsNCwwLDEyNCw2LDAsMTMxLDMsMCwxLDExNiwxMSwwLAotICAgIDEwMCw5LDAsMTI0LDQsMCwxMzEsMiwwLDEsODcsMTEzLDQ4LDIsNCwxMTYsCi0gICAgMywwLDEwNywxMCwwLDExNCw0NCwyLDEsMSwxLDg5LDExMyw0OCwyLDg4LAotICAgIDExMCwwLDAsMTI0LDExLDAsODMsNDAsMTIsMCwwLDAsMTE3LDE5MCwwLDAsCi0gICAgMCw2NywxMTEsMTEwLDk5LDExNCwxMDEsMTE2LDEwMSwzMiwxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwKLSAgICAxMDEsMTEwLDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTExLDEwMiwzMiw3MywxMTAsMTE1LDExMiwKLSAgICAxMDEsOTksMTE2LDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDMsMTAxLDExNiw5NSw5OSwxMTEsCi0gICAgMTAwLDEwMSw0NiwxMCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw4MiwxMDEsOTcsCi0gICAgMTAwLDEwNSwxMTAsMTAzLDMyLDExMSwxMDIsMzIsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsCi0gICAgMzIsMTE0LDEwMSwxMTMsMTE3LDEwNSwxMTQsMTAxLDExNSwzMiwxMTIsOTcsMTE2LDEwNCw5NSwxMTUsCi0gICAgMTE2LDk3LDExNiwxMTUsMzIsMTE2LDExMSwzMiw5OCwxMDEsMzIsMTA1LDEwOSwxMTIsMTA4LDEwMSwKLSAgICAxMDksMTAxLDExMCwxMTYsMTAxLDEwMCw0NiwzMiw4NCwxMTEsMzIsMTE5LDExNCwxMDUsMTE2LDEwMSwKLSAgICAxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLAotICAgIDEwMSw0NCwzMiwxMTUsMTAxLDExNiw5NSwxMDAsOTcsMTE2LDk3LDMyLDEwOSwxMTcsMTE1LDExNiwKLSAgICAzMiw5NywxMDgsMTE1LDExMSwzMiw5OCwxMDEsMzIsMTA1LDEwOSwxMTIsMTA4LDEwMSwxMDksMTAxLAotICAgIDExMCwxMTYsMTAxLDEwMCw0NiwxMCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwxMTcsCi0gICAgNSwwLDAsMCwxMDksMTE2LDEwNSwxMDksMTAxLDExNywxMywwLDAsMCwxMjMsMTI1LAotICAgIDMyLDEwOSw5NywxMTYsOTksMTA0LDEwMSwxMTUsMzIsMTIzLDEyNSwxMTcsMTksMCwwLDAsCi0gICAgOTksMTExLDEwMCwxMDEsMzIsMTExLDk4LDEwNiwxMDEsOTksMTE2LDMyLDEwMiwxMTQsMTExLDEwOSwKLSAgICAzMiwxMjMsMTI1LDExNywyMSwwLDAsMCw3OCwxMTEsMTEwLDQ1LDk5LDExMSwxMDAsMTAxLAotICAgIDMyLDExMSw5OCwxMDYsMTAxLDk5LDExNiwzMiwxMDUsMTEwLDMyLDEyMywxMjUsMTE3LDQsMCwKLSAgICAwLDAsMTEwLDk3LDEwOSwxMDEsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LAotICAgIDQsMCwwLDAsMTAxLDEyMCwxMDEsOTksMTE3LDEyLDAsMCwwLDEwMCwxMTEsMTEwLAotICAgIDExNiw5NSwxMDUsMTEwLDEwNCwxMDEsMTE0LDEwNSwxMTYsMTE3LDEwLDAsMCwwLDExOSwxMTQsCi0gICAgMTExLDExNiwxMDEsMzIsMTIzLDMzLDExNCwxMjUsNzgsODQsNDAsMzEsMCwwLDAsMTE3LAotICAgIDEyLDAsMCwwLDEwMywxMDEsMTE2LDk1LDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsMTA5LDEwMSwKLSAgICAxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsMTcsMCwwLDAsOTksOTcsCi0gICAgOTksMTA0LDEwMSw5NSwxMDIsMTE0LDExMSwxMDksOTUsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwxMTcsCi0gICAgMTksMCwwLDAsNzgsMTExLDExNiw3MywxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LAotICAgIDEwMSwxMDAsNjksMTE0LDExNCwxMTEsMTE0LDExNywxMCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwKLSAgICA5NSwxMTUsMTE2LDk3LDExNiwxMTUsMTE3LDMsMCwwLDAsMTA1LDExMCwxMTYsMTE3LDgsCi0gICAgMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTAwLDk3LDExNiw5NywxMTcsNywwLDAsMCwKLSAgICA3Myw3OSw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDIwLDAsMCwwLDk1LDk4LDEyMSwxMTYsCi0gICAgMTAxLDExNSw5NSwxMDIsMTE0LDExMSwxMDksOTUsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsCi0gICAgMTE3LDExLDAsMCwwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsNjksMTE0LDExNCwxMTEsMTE0LAotICAgIDExNyw4LDAsMCwwLDY5LDc5LDcwLDY5LDExNCwxMTQsMTExLDExNCwxMTcsMTYsMCwKLSAgICAwLDAsOTUsMTE4LDEwMSwxMTQsOTgsMTExLDExNSwxMDEsOTUsMTA5LDEwMSwxMTUsMTE1LDk3LAotICAgIDEwMywxMDEsMTE3LDcsMCwwLDAsMTA5LDk3LDExNCwxMTUsMTA0LDk3LDEwOCwxMTcsNSwKLSAgICAwLDAsMCwxMDgsMTExLDk3LDEwMCwxMTUsMTE3LDEwLDAsMCwwLDEwNSwxMTUsMTA1LAotICAgIDExMCwxMTUsMTE2LDk3LDExMCw5OSwxMDEsMTE3LDEwLDAsMCwwLDk1LDk5LDExMSwxMDAsCi0gICAgMTAxLDk1LDExNiwxMjEsMTEyLDEwMSwxMTcsNCwwLDAsMCw5NSwxMDUsMTA5LDExMiwxMTcsCi0gICAgMTYsMCwwLDAsOTUsMTAyLDEwNSwxMjAsOTUsOTksMTExLDk1LDEwMiwxMDUsMTA4LDEwMSwKLSAgICAxMTAsOTcsMTA5LDEwMSwxMTcsNiwwLDAsMCwxMDIsMTExLDExNCwxMDksOTcsMTE2LDExNywKLSAgICAyNSwwLDAsMCw5NSw5OSw5NywxMDgsMTA4LDk1LDExOSwxMDUsMTE2LDEwNCw5NSwxMDIsCi0gICAgMTE0LDk3LDEwOSwxMDEsMTE1LDk1LDExNCwxMDEsMTA5LDExMSwxMTgsMTAxLDEwMCwxMTcsNywwLAotICAgIDAsMCw5OSwxMTEsMTA5LDExMiwxMDUsMTA4LDEwMSwxMTcsNCwwLDAsMCw4NCwxMTQsCi0gICAgMTE3LDEwMSwxMTcsMywwLDAsMCwxMTUsMTIxLDExNSwxMTcsMTksMCwwLDAsMTAwLAotICAgIDExMSwxMTAsMTE2LDk1LDExOSwxMTQsMTA1LDExNiwxMDEsOTUsOTgsMTIxLDExNiwxMDEsOTksMTExLAotICAgIDEwMCwxMDEsMTE3LDksMCwwLDAsOTgsMTIxLDExNiwxMDEsOTcsMTE0LDExNCw5NywxMjEsCi0gICAgMTE3LDEyLDAsMCwwLDk1LDc3LDY1LDcxLDczLDY3LDk1LDY2LDg5LDg0LDY5LAotICAgIDgzLDExNyw2LDAsMCwwLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTAwLDExNyw3LDAsMCwKLSAgICAwLDk1LDExOSw5NSwxMDgsMTExLDExMCwxMDMsMTE3LDMsMCwwLDAsMTA4LDEwMSwxMTAsCi0gICAgMTE3LDUsMCwwLDAsMTAwLDExNywxMDksMTEyLDExNSwxMTcsMTUsMCwwLDAsOTUsCi0gICAgOTksOTcsOTksMTA0LDEwMSw5NSw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSw0MCwxMiwKLSAgICAwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDgsMCwwLAotICAgIDAsMTAyLDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLDExNywxMSwwLDAsMCwxMTUsMTExLAotICAgIDExNywxMTQsOTksMTAxLDk1LDExMiw5NywxMTYsMTA0LDExNywxMiwwLDAsMCwxMTUsMTExLAotICAgIDExNywxMTQsOTksMTAxLDk1LDEwOSwxMTYsMTA1LDEwOSwxMDEsMTE3LDEzLDAsMCwwLDk4LAotICAgIDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsMTAxLDk1LDExMiw5NywxMTYsMTA0LDExNywyLDAsMCwKLSAgICAwLDExNSwxMTYsMTE3LDQsMCwwLDAsMTAwLDk3LDExNiw5NywxMTcsMTAsMCwwLAotICAgIDAsOTgsMTIxLDExNiwxMDEsMTE1LDk1LDEwMCw5NywxMTYsOTcsMTE3LDUsMCwwLDAsCi0gICAgMTAyLDExMSwxMTcsMTEwLDEwMCwxMTcsMywwLDAsMCwxMDksMTE1LDEwMywxMTcsMTIsMCwKLSAgICAwLDAsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSw5NSw5OCwxMjEsMTE2LDEwMSwxMTUsMTE3LDExLAotICAgIDAsMCwwLDk5LDExMSwxMDAsMTAxLDk1LDExMSw5OCwxMDYsMTAxLDk5LDExNiw0MCwwLAotICAgIDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsCi0gICAgMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsCi0gICAgOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw4LDAsMCwwLDEwMywKLSAgICAxMDEsMTE2LDk1LDk5LDExMSwxMDAsMTAxLDE2NywzLDAsMCwxMTUsOTgsMCwwLDAsCi0gICAgMCw3LDE1LDEsNiwxLDMsMSwxNiwxLDEzLDEsMTEsMiwzLDEsCi0gICAgMTksMSwxMywxLDUsMiwxNiwxLDMsMSwxOSwxLDEzLDEsNSwyLAotICAgIDMsMSwxMiwxLDMsMSwxMywxLDE5LDEsNSwyLDksMSw3LDEsCi0gICAgMTUsMSwxNSwxLDE2LDEsNiwxLDcsMSw0LDIsNiwxLDE4LDEsCi0gICAgMTUsMSwxNSwxLDYsMSwxMiwxLDksMSwxMywxLDIyLDEsMTIsMSwKLSAgICAxMiwxLDE5LDEsMjUsMSwyMiwxLDMsMSwxOSwxLDE3LDEsMTMsMSwKLSAgICA4LDEsMTE3LDIxLDAsMCwwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSw3NiwxMTEsOTcsCi0gICAgMTAwLDEwMSwxMTQsNDYsMTAzLDEwMSwxMTYsOTUsOTksMTExLDEwMCwxMDEsOTksMiwwLDAsCi0gICAgMCwwLDAsMCwwLDIsMCwwLDAsMiwwLDAsMCw2NywwLDAsCi0gICAgMCwxMTUsMTMsMCwwLDAsMTI0LDAsMCwxMDYsMCwwLDEyNCwxLDAsMTMxLAotICAgIDEsMCw4Myw0MCwxLDAsMCwwLDExNywwLDEsMCwwLDY3LDExMSwxMTAsCi0gICAgOTksMTE0LDEwMSwxMTYsMTAxLDMyLDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDk3LAotICAgIDExNiwxMDUsMTExLDExMCwzMiwxMTEsMTAyLDMyLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDgsCi0gICAgMTExLDk3LDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0NiwxMCwxMCwzMiwzMiwzMiwKLSAgICAzMiwzMiwzMiwzMiwzMiw4MiwxMDEsMTEzLDExNywxMDUsMTE0LDEwMSwxMTUsMzIsNjksMTIwLAotICAgIDEwMSw5OSwxMTcsMTE2LDEwNSwxMTEsMTEwLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDMsMTAxLAotICAgIDExNiw5NSwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsMzIsOTcsMTEwLDEwMCwzMiw4MiwKLSAgICAxMDEsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsMTAzLDEwMSwKLSAgICAxMTYsOTUsMTAwLDk3LDExNiw5NywzMiwxMTYsMTExLDMyLDk4LDEwMSwxMCwzMiwzMiwzMiwKLSAgICAzMiwzMiwzMiwzMiwzMiwxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiwxMDEsMTAwLAotICAgIDMyLDExNiwxMTEsMzIsMTA4LDExMSw5NywxMDAsMzIsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwzMiwKLSAgICA5OSwxMTEsMTAwLDEwMSw0NiwzMiw4NSwxMTUsMTAxLDMyLDExMSwxMDIsMzIsOTgsMTIxLDExNiwKLSAgICAxMDEsOTksMTExLDEwMCwxMDEsMzIsMTA1LDExNSwzMiwxMDAsMTA1LDk5LDExNiw5NywxMTYsMTAxLAotICAgIDEwMCwzMiw5OCwxMjEsMzIsMTE5LDEwNCwxMDEsMTE2LDEwNCwxMDEsMTE0LDEwLDMyLDMyLDMyLAotICAgIDMyLDMyLDMyLDMyLDMyLDEwMywxMDEsMTE2LDk1LDk5LDExMSwxMDAsMTAxLDMyLDExNywxMTUsCi0gICAgMTAxLDExNSw0NywxMTksMTE0LDEwNSwxMTYsMTAxLDExNSwzMiw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsCi0gICAgMTAwLDEwMSw0NiwxMCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw0MCwxLDAsCi0gICAgMCwwLDExNywxMiwwLDAsMCw5NSwxMDgsMTExLDk3LDEwMCw5NSwxMDksMTExLDEwMCwKLSAgICAxMTcsMTA4LDEwMSw0MCwyLDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LAotICAgIDEwMiwxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsNDAsMCwKLSAgICAwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LAotICAgIDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LAotICAgIDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTEsMCwwLDAsMTA4LAotICAgIDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMjI5LDMsMCwwLDExNSwyLAotICAgIDAsMCwwLDAsOCwxMTcsMjQsMCwwLDAsODMsMTExLDExNywxMTQsOTksMTAxLAotICAgIDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDgsMTExLDk3LDEwMCw5NSwxMDksMTExLDEwMCwxMTcsCi0gICAgMTA4LDEwMSw3OCw0MCwxMCwwLDAsMCwxMTcsOCwwLDAsMCw5NSw5NSwxMTAsCi0gICAgOTcsMTA5LDEwMSw5NSw5NSwxMTcsMTAsMCwwLDAsOTUsOTUsMTA5LDExMSwxMDAsMTE3LAotICAgIDEwOCwxMDEsOTUsOTUsMTE3LDEyLDAsMCwwLDk1LDk1LDExMywxMTcsOTcsMTA4LDExMCwKLSAgICA5NywxMDksMTAxLDk1LDk1LDExNywxMCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwxMDksCi0gICAgMTE2LDEwNSwxMDksMTAxLDExNywxMCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwxMTUsMTE2LAotICAgIDk3LDExNiwxMTUsMTE3LDE1LDAsMCwwLDk1LDk5LDk3LDk5LDEwNCwxMDEsOTUsOTgsCi0gICAgMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsMTE3LDgsMCwwLDAsMTE1LDEwMSwxMTYsOTUsCi0gICAgMTAwLDk3LDExNiw5NywxMTcsMTAsMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTE1LDExMSwxMTcsCi0gICAgMTE0LDk5LDEwMSwxMTcsOCwwLDAsMCwxMDMsMTAxLDExNiw5NSw5OSwxMTEsMTAwLDEwMSwKLSAgICAxMTcsMTEsMCwwLDAsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCi0gICAgNDAsMSwwLDAsMCwxMTcsMTAsMCwwLDAsOTUsOTUsMTA4LDExMSw5OSw5NywKLSAgICAxMDgsMTE1LDk1LDk1LDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksCi0gICAgMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwKLSAgICAxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsCi0gICAgMTE3LDEyLDAsMCwwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwKLSAgICAxMTQsMTA2LDMsMCwwLDExNSwxNCwwLDAsMCwxNiwyLDEyLDYsMTIsMTIsCi0gICAgMTIsMTAsMTIsOSwxMiwyMiwxMiw2MiwxMTcsMTIsMCwwLDAsODMsMTExLDExNywKLSAgICAxMTQsOTksMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw5OSwxLDAsMCwwLDAsMCwKLSAgICAwLDAsMSwwLDAsMCw0LDAsMCwwLDIsMCwwLDAsMTE1LDkyLAotICAgIDAsMCwwLDEyNCwwLDAsNjksMTAxLDAsMCw5MCwxLDAsMTAwLDAsMCwKKyAgICA1LDAsMTI2LDUsMCw4OCwxMTAsMSwwLDg4LDEwMCwyLDAsODMsNDAsOCwKKyAgICAwLDAsMCwxMTcsNTIsMCwwLDAsNjcsMTExLDExMCw5OSwxMTQsMTAxLDExNiwxMDEsCisgICAgMzIsMTA1LDEwOSwxMTIsMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsOTcsMTE2LDEwNSwxMTEsMTEwLDMyLAorICAgIDExMSwxMDIsMzIsNzMsMTEwLDExNSwxMTIsMTAxLDk5LDExNiw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsCisgICAgNDYsMTAzLDEwMSwxMTYsOTUsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSw0NiwxMTQsNzAsMCwwLAorICAgIDAsNzgsMTE3LDM5LDAsMCwwLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMzIsMTEwLDExMSwKKyAgICAxMTYsMzIsOTcsMTE4LDk3LDEwNSwxMDgsOTcsOTgsMTA4LDEwMSwzMiwxMTYsMTA0LDExNCwxMTEsCisgICAgMTE3LDEwMywxMDQsMzIsMTAzLDEwMSwxMTYsOTUsMTAwLDk3LDExNiw5Nyw0MCw0MSwxMTQsNjYsCisgICAgMCwwLDAsMTE3LDI1LDAsMCwwLDcwLDk3LDEwNSwxMDgsMTAxLDEwMCwzMiwxMTYsCisgICAgMTExLDMyLDEwMCwxMDEsMTE2LDEwMSw5OSwxMTYsMzIsMTAxLDExMCw5OSwxMTEsMTAwLDEwNSwxMTAsCisgICAgMTAzLDg0LDExNywyOCwwLDAsMCw3MCw5NywxMDUsMTA4LDEwMSwxMDAsMzIsMTE2LDExMSwKKyAgICAzMiwxMDAsMTAxLDk5LDExMSwxMDAsMTAxLDMyLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMzIsMTAyLAorICAgIDEwNSwxMDgsMTAxLDQwLDEzLDAsMCwwLDI0NCw4LDAsMCwwLDExNiwxMTEsMTA3LAorICAgIDEwMSwxMTAsMTA1LDEyMiwxMDEsMTE0LDE2MiwwLDAsMCwyNDQsOCwwLDAsMCwxMDMsCisgICAgMTAxLDExNiw5NSwxMDAsOTcsMTE2LDk3LDExNCw0MCwwLDAsMCwxMTQsMTU2LDAsMCwKKyAgICAwLDExNCw0OCwwLDAsMCwxMTYsNywwLDAsMCw2NiwxMjEsMTE2LDEwMSwxMTUsCisgICAgNzMsNzksMTE2LDgsMCwwLDAsMTE0LDEwMSw5NywxMDAsMTA4LDEwNSwxMTAsMTAxLDExNiwKKyAgICAxNSwwLDAsMCwxMDAsMTAxLDExNiwxMDEsOTksMTE2LDk1LDEwMSwxMTAsOTksMTExLDEwMCwKKyAgICAxMDUsMTEwLDEwMywyNDQsMTEsMCwwLDAsODMsMTIxLDExMCwxMTYsOTcsMTIwLDY5LDExNCwKKyAgICAxMTQsMTExLDExNCwxMTYsMjUsMCwwLDAsNzMsMTEwLDk5LDExNCwxMDEsMTA5LDEwMSwxMTAsCisgICAgMTE2LDk3LDEwOCw3OCwxMDEsMTE5LDEwOCwxMDUsMTEwLDEwMSw2OCwxMDEsOTksMTExLDEwMCwxMDEsCisgICAgMTE0LDI0NCw2LDAsMCwwLDEwMCwxMDEsOTksMTExLDEwMCwxMDEsMjQ0LDE4LDAsMCwKKyAgICAwLDg1LDExMCwxMDUsOTksMTExLDEwMCwxMDEsNjgsMTAxLDk5LDExMSwxMDAsMTAxLDY5LDExNCwKKyAgICAxMTQsMTExLDExNCw0MCw5LDAsMCwwLDExNCw3NywwLDAsMCwxMTQsMTc3LDAsCisgICAgMCwwLDExNCwyNDEsMCwwLDAsMTE0LDM1LDAsMCwwLDI0NCwxMiwwLDAsCisgICAgMCwxMTUsMTExLDExNywxMTQsOTksMTAxLDk1LDk4LDEyMSwxMTYsMTAxLDExNSwyNDQsMywwLAorICAgIDAsMCwxMDEsMTIwLDk5LDExNiwxMCwwLDAsMCwxMTQsMTAxLDk3LDEwMCwxMTUsMTExLAorICAgIDExNywxMTQsOTksMTAxLDI0NCw4LDAsMCwwLDEwMSwxMTAsOTksMTExLDEwMCwxMDUsMTEwLAorICAgIDEwMywxMTYsMTUsMCwwLDAsMTEwLDEwMSwxMTksMTA4LDEwNSwxMTAsMTAxLDk1LDEwMCwxMDEsCisgICAgOTksMTExLDEwMCwxMDEsMTE0LDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCwKKyAgICA1LDAsMCwwLDExNCwyMTQsMCwwLDAsMTk3LDMsMCwwLDExNSwzOCwwLAorICAgIDAsMCwwLDIsMTIsMSwxNSwxLDMsMSwxOSwxLDE4LDEsOSwxLAorICAgIDMxLDEsMTgsMSwzLDEsMTksMSwxOCwxLDksMSwzMSwxLDE4LDEsCisgICAgMywxLDMwLDEsMTgsMSw5LDEsMTE3LDIzLDAsMCwwLDgzLDExMSwxMTcsCisgICAgMTE0LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsMTAzLDEwMSwxMTYsOTUsMTE1LDExMSwKKyAgICAxMTcsMTE0LDk5LDEwMSwyNDQsOSwwLDAsMCw5NSwxMTEsMTEyLDExNiwxMDUsMTA5LDEwNSwKKyAgICAxMjIsMTAxLDExNCwyOSwwLDAsMCw5OSwzLDAsMCwwLDEsMCwwLDAsCisgICAgNCwwLDAsMCw5LDAsMCwwLDY3LDAsMCwwLDExNSwzMSwwLDAsCisgICAgMCwxMTYsMCwwLDExNiwxLDAsMTI0LDEsMCwxMjQsMiwwLDEwMCwxLDAsCisgICAgMTAwLDIsMCwxMDAsMywwLDEwMCw0LDAsMTI0LDMsMCwxMzEsNCwyLDgzLAorICAgIDQwLDUsMCwwLDAsMTE3LDEzMCwwLDAsMCw4MiwxMDEsMTE2LDExNywxMTQsMTEwLAorICAgIDMyLDExNiwxMDQsMTAxLDMyLDk5LDExMSwxMDAsMTAxLDMyLDExMSw5OCwxMDYsMTAxLDk5LDExNiwKKyAgICAzMiw5OSwxMTEsMTA5LDExMiwxMDUsMTA4LDEwMSwxMDAsMzIsMTAyLDExNCwxMTEsMTA5LDMyLDExNSwKKyAgICAxMTEsMTE3LDExNCw5OSwxMDEsNDYsMTAsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsCisgICAgODQsMTA0LDEwMSwzMiwzOSwxMDAsOTcsMTE2LDk3LDM5LDMyLDk3LDExNCwxMDMsMTE3LDEwOSwKKyAgICAxMDEsMTEwLDExNiwzMiw5OSw5NywxMTAsMzIsOTgsMTAxLDMyLDk3LDExMCwxMjEsMzIsMTExLAorICAgIDk4LDEwNiwxMDEsOTksMTE2LDMyLDExNiwxMjEsMTEyLDEwMSwzMiwxMTYsMTA0LDk3LDExNiwzMiwKKyAgICA5OSwxMTEsMTA5LDExMiwxMDUsMTA4LDEwMSw0MCw0MSwzMiwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwKKyAgICAxMTYsMTE1LDQ2LDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDExNCwyMzQsMCwwLAorICAgIDAsMTE2LDEyLDAsMCwwLDEwMCwxMTEsMTEwLDExNiw5NSwxMDUsMTEwLDEwNCwxMDEsMTE0LAorICAgIDEwNSwxMTYsODQsMTE0LDEwNSwwLDAsMCw0MCwyLDAsMCwwLDExNCwxMDEsMCwKKyAgICAwLDAsMjQ0LDcsMCwwLDAsOTksMTExLDEwOSwxMTIsMTA1LDEwOCwxMDEsNDAsNCwKKyAgICAwLDAsMCwxMTQsNzcsMCwwLDAsMTE0LDUyLDAsMCwwLDExNCwzNSwwLAorICAgIDAsMCwxMTQsMjQ5LDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwKKyAgICAwLDExNCw1LDAsMCwwLDI0NCwxNCwwLDAsMCwxMTUsMTExLDExNywxMTQsOTksCisgICAgMTAxLDk1LDExNiwxMTEsOTUsOTksMTExLDEwMCwxMDEsMjE5LDMsMCwwLDExNSw0LDAsCisgICAgMCwwLDAsNSwxOCwxLDExNywyNywwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwKKyAgICAxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsOTUsMTE2LAorICAgIDExMSw5NSw5OSwxMTEsMTAwLDEwMSw5OSwyLDAsMCwwLDAsMCwwLDAsMTAsCisgICAgMCwwLDAsNDUsMCwwLDAsNjcsMCwwLDAsMTE1LDE3NywxLDAsMCwKKyAgICAxMjQsMCwwLDEwNiwwLDAsMTI0LDEsMCwxMzEsMSwwLDEyNSwyLDAsMTAwLAorICAgIDEsMCwxMjUsMywwLDEyMSwxNiwwLDExNiwxLDAsMTI0LDIsMCwxMzEsMSwKKyAgICAwLDEyNSw0LDAsODcsMTEwLDI0LDAsNCwxMTYsMiwwLDEwNywxMCwwLDExNCwKKyAgICA2MywwLDEsMSwxLDEwMCwxLDAsMTI1LDQsMCw4OSwxMTAsMjAyLDAsODgsCisgICAgMTIxLDE5LDAsMTI0LDAsMCwxMDYsMywwLDEyNCwyLDAsMTMxLDEsMCwxMjUsCisgICAgNSwwLDg3LDExMCwxOCwwLDQsMTE2LDQsMCwxMDcsMTAsMCwxMTQsMTAzLDAsCisgICAgMSwxLDEsODksMTEwLDE2MiwwLDg4LDExNiw1LDAsMTI0LDUsMCwxMDAsMiwKKyAgICAwLDI1LDEzMSwxLDAsMTI1LDMsMCwxMjEsMTksMCwxMjQsMCwwLDEwNiw2LAorICAgIDAsMTI0LDQsMCwxMzEsMSwwLDEyNSw2LDAsODcsMTEwLDE4LDAsNCwxMTYsCisgICAgNywwLDEwNywxMCwwLDExNCwxNTksMCwxLDEsMSw4OSwxMTAsMTA2LDAsODgsCisgICAgMTIxLDM0LDAsMTE2LDgsMCwxMjQsNiwwLDEwMCwzLDAsMTI0LDUsMCwxMDAsCisgICAgNCwwLDEyNCwxLDAsMTAwLDUsMCwxMjQsNCwwLDEzMSwxLDMsMTI1LDcsCisgICAgMCw4NywxMTAsMjQsMCw0LDExNiw5LDAsMTE2LDEwLDAsMTAyLDIsMCwxMDcsCisgICAgMTAsMCwxMTQsMjIwLDAsMSwxLDEsODksMTEwLDQ1LDAsODgsMTE2LDExLDAsCisgICAgMTAwLDYsMCwxMjQsNCwwLDEyNCwyLDAsMTMxLDMsMCwxLDExNiwxMiwwLAorICAgIDEyNCw3LDAsMTAwLDQsMCwxMjQsMSwwLDEwMCw3LDAsMTI0LDQsMCwxMDAsCisgICAgOCwwLDEyNCwyLDAsMTMxLDEsMyw4MywxMjQsMCwwLDEwNiw2LDAsMTI0LAorICAgIDIsMCwxMzEsMSwwLDEyNSw4LDAsMTI0LDAsMCwxMDYsMTMsMCwxMjQsOCwKKyAgICAwLDEyNCwyLDAsMTMxLDIsMCwxMjUsOSwwLDExNiwxMSwwLDEwMCw5LDAsCisgICAgMTI0LDIsMCwxMzEsMiwwLDEsMTE2LDE0LDAsMTA2LDE1LDAsMTIsMTE0LDE3MywKKyAgICAxLDEyNCw0LDAsMTAwLDEsMCwxMDcsOSwwLDExNCwxNzMsMSwxMjQsMywwLAorICAgIDEwMCwxLDAsMTA3LDksMCwxMTQsMTczLDEsMTE2LDE2LDAsMTI0LDksMCwxMjQsCisgICAgMywwLDExNiwxNywwLDEyNCw4LDAsMTMxLDEsMCwxMzEsMywwLDEyNSw2LAorICAgIDAsMTIxLDM2LDAsMTI0LDAsMCwxMDYsMTgsMCwxMjQsMiwwLDEyNCw0LDAsCisgICAgMTI0LDYsMCwxMzEsMywwLDEsMTE2LDExLDAsMTAwLDEwLDAsMTI0LDQsMCwKKyAgICAxMzEsMiwwLDEsODcsMTEzLDE3MywxLDQsMTE2LDIsMCwxMDcsMTAsMCwxMTQsCisgICAgMTY5LDEsMSwxLDEsODksMTEzLDE3MywxLDg4LDExMCwwLDAsMTI0LDksMCwKKyAgICA4Myw0MCwxMSwwLDAsMCwxMTcsMTkwLDAsMCwwLDY3LDExMSwxMTAsOTksMTE0LAorICAgIDEwMSwxMTYsMTAxLDMyLDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDk3LDExNiwxMDUsCisgICAgMTExLDExMCwzMiwxMTEsMTAyLDMyLDczLDExMCwxMTUsMTEyLDEwMSw5OSwxMTYsNzYsMTExLDk3LAorICAgIDEwMCwxMDEsMTE0LDQ2LDEwMywxMDEsMTE2LDk1LDk5LDExMSwxMDAsMTAxLDQ2LDEwLDEwLDMyLAorICAgIDMyLDMyLDMyLDMyLDMyLDMyLDMyLDgyLDEwMSw5NywxMDAsMTA1LDExMCwxMDMsMzIsMTExLAorICAgIDEwMiwzMiw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSwzMiwxMTQsMTAxLDExMywxMTcsMTA1LAorICAgIDExNCwxMDEsMTE1LDMyLDExMiw5NywxMTYsMTA0LDk1LDExNSwxMTYsOTcsMTE2LDExNSwzMiwxMTYsCisgICAgMTExLDMyLDk4LDEwMSwzMiwxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiwxMDEsMTAwLAorICAgIDQ2LDMyLDg0LDExMSwzMiwxMTksMTE0LDEwNSwxMTYsMTAxLDEwLDMyLDMyLDMyLDMyLDMyLAorICAgIDMyLDMyLDMyLDk4LDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsMTAxLDQ0LDMyLDExNSwxMDEsMTE2LAorICAgIDk1LDEwMCw5NywxMTYsOTcsMzIsMTA5LDExNywxMTUsMTE2LDMyLDk3LDEwOCwxMTUsMTExLDMyLAorICAgIDk4LDEwMSwzMiwxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiwxMDEsMTAwLDQ2LDEwLAorICAgIDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDc4LDExNCwxOTIsMCwwLDAsMTE0LAorICAgIDEyNywwLDAsMCwxMTQsNjYsMCwwLDAsMTE0LDM1LDAsMCwwLDExNywxMywKKyAgICAwLDAsMCwxMjMsMTI1LDMyLDEwOSw5NywxMTYsOTksMTA0LDEwMSwxMTUsMzIsMTIzLDEyNSwKKyAgICAxMTQsMTI4LDAsMCwwLDExNCwxMjksMCwwLDAsMTE3LDE5LDAsMCwwLDk5LAorICAgIDExMSwxMDAsMTAxLDMyLDExMSw5OCwxMDYsMTAxLDk5LDExNiwzMiwxMDIsMTE0LDExMSwxMDksMzIsCisgICAgMTIzLDEyNSwxMTcsMTAsMCwwLDAsMTE5LDExNCwxMTEsMTE2LDEwMSwzMiwxMjMsMzMsMTE0LAorICAgIDEyNSw0MCwxOSwwLDAsMCwxMTQsMTYyLDAsMCwwLDExNCwxMTksMCwwLDAsCisgICAgMTE0LDExMSwwLDAsMCwxMTQsMjM4LDAsMCwwLDExNCwyMzYsMCwwLDAsMTE0LAorICAgIDE0LDAsMCwwLDExNCwyNDIsMCwwLDAsMTE0LDQwLDAsMCwwLDExNCwxOTgsCisgICAgMCwwLDAsMTE0LDE1NiwwLDAsMCwxMTQsMTk1LDAsMCwwLDExNCwxNDAsMCwKKyAgICAwLDAsMTE0LDIwMywwLDAsMCwxMTQsMjUxLDAsMCwwLDExNCw3LDAsMCwKKyAgICAwLDI0NCwxOSwwLDAsMCwxMDAsMTExLDExMCwxMTYsOTUsMTE5LDExNCwxMDUsMTE2LDEwMSwKKyAgICA5NSw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSwxMTQsMjA2LDAsMCwwLDExNCwzMSwKKyAgICAwLDAsMCwxMTQsMjQwLDAsMCwwLDQwLDEwLDAsMCwwLDExNCw3NywwLAorICAgIDAsMCwxMTQsMTc3LDAsMCwwLDExNCwxMjksMCwwLDAsMTE0LDE5NiwwLDAsCisgICAgMCwxMTQsMTI4LDAsMCwwLDI0NCwyLDAsMCwwLDExNSwxMTYsMTE0LDUyLDAsCisgICAgMCwwLDI0NCwxMCwwLDAsMCw5OCwxMjEsMTE2LDEwMSwxMTUsOTUsMTAwLDk3LDExNiwKKyAgICA5NywxMTQsMjQ2LDAsMCwwLDExNiwxMSwwLDAsMCw5OSwxMTEsMTAwLDEwMSw5NSwKKyAgICAxMTEsOTgsMTA2LDEwMSw5OSwxMTYsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsCisgICAgMTE0LDUsMCwwLDAsMTE0LDIxMywwLDAsMCwyMjcsMywwLDAsMTE1LDc4LAorICAgIDAsMCwwLDAsNywxNSwxLDYsMSwzLDEsMTYsMSwxMywxLDExLAorICAgIDIsMywxLDE5LDEsMTMsMSw1LDIsMTYsMSwzLDEsMTksMSwxMywKKyAgICAxLDUsMiwzLDEsOSwxLDEyLDEsMTMsMSwxOSwxLDUsMiw5LAorICAgIDEsNywxLDE1LDEsNiwxLDcsMSwxNSwxLDE4LDEsMTMsMSwyMiwKKyAgICAxLDEyLDEsOSwxLDE1LDEsMywxLDE5LDEsMTcsMSwxMywxLDgsCisgICAgMSwxMTcsMjEsMCwwLDAsODMsMTExLDExNywxMTQsOTksMTAxLDc2LDExMSw5NywxMDAsCisgICAgMTAxLDExNCw0NiwxMDMsMTAxLDExNiw5NSw5OSwxMTEsMTAwLDEwMSw3OCwxMTQsMTI1LDAsMCwKKyAgICAwLDQwLDEwLDAsMCwwLDExNCw1NiwwLDAsMCwxMTQsNTUsMCwwLDAsCisgICAgMTE0LDU3LDAsMCwwLDExNCwyMzcsMCwwLDAsMTE0LDIzOCwwLDAsMCwxMTQsCisgICAgMjQwLDAsMCwwLDExNCwyMzksMCwwLDAsMTE0LDIxNCwwLDAsMCwxMTQsMjUxLAorICAgIDAsMCwwLDExNCwyMTMsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwKKyAgICAwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMTE0LDIzNSwwLDAsCisgICAgMCwxNTcsMywwLDAsMTE1LDE0LDAsMCwwLDEyLDIsMTIsOCwxMiwxMywKKyAgICAxMiwxMCwxMiw3LDEyLDIyLDE4LDgsMTE0LDIzNSwwLDAsMCw5OSwwLDAsCisgICAgMCwwLDAsMCwwLDAsMCwwLDAsMCw0LDAsMCwwLDAsMCwKKyAgICAwLDAsMTE1LDg4LDAsMCwwLDEwMSwwLDAsOTAsMSwwLDEwMCwwLDAsCiAgICAgOTAsMiwwLDEwMCwxLDAsOTAsMywwLDEwMCwyLDAsMTAwLDMsMCwxMzIsCiAgICAgMCwwLDkwLDQsMCwxMDEsNSwwLDEzNSwwLDAsMTAyLDEsMCwxMDAsNCwKICAgICAwLDEwMCw1LDAsMTM0LDAsMCwxMzEsMSwwLDkwLDYsMCwxMDEsNSwwLAogICAgIDEwMCw2LDAsMTAwLDcsMCwxMzIsMCwwLDEzMSwxLDAsOTAsNywwLDEwMCwKICAgICA4LDAsMTAwLDksMCwxMzIsMCwwLDkwLDgsMCwxMzUsMCwwLDgzLDQwLAotICAgIDEwLDAsMCwwLDExNywxMCwwLDAsMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsCisgICAgMTAsMCwwLDAsMjQ0LDEwLDAsMCwwLDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywKICAgICAxMDAsMTAxLDExNCwxMTcsMTAzLDAsMCwwLDY2LDk3LDExNSwxMDEsMzIsMTAyLDEwNSwxMDgsCiAgICAgMTAxLDMyLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMzIsOTksMTA4LDk3LDExNSwxMTUsMzIsMTE5LAogICAgIDEwNCwxMDUsOTksMTA0LDMyLDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDExNSwzMiwKQEAgLTIzNTgsMTM4ICsyMDY2LDk2IEBACiAgICAgMTEwLDEwMCwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsOTcsMTE2LDEwNCwzMiwxMTYsMTExLDMyLDExNiwKICAgICAxMDQsMTAxLDMyLDEwMiwxMDUsMTA4LDEwMSwzMiwxMDIsMTExLDExNywxMTAsMTAwLDMyLDk4LDEyMSwKICAgICAzMiwxMTYsMTA0LDEwMSwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwxMDIsMTA1LDExMCwKLSAgICAxMDAsMTAxLDExNCw0Niw3OCw0MCwyLDAsMCwwLDExNyw0LDAsMCwwLDExMCwKLSAgICA5NywxMDksMTAxLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDQwLDMsMCwwLAotICAgIDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw4LDAsMCwwLDEwMiwKLSAgICAxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwKLSAgICA0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLAotICAgIDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsCi0gICAgNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw4LDAsMCwKLSAgICAwLDk1LDk1LDEwNSwxMTAsMTA1LDExNiw5NSw5NSwyNDUsMywwLDAsMTE1LDQsMCwKLSAgICAwLDAsMCwzLDksMSwxMTcsMTksMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzYsCi0gICAgMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDk1LDk1LDEwNSwxMTAsMTA1LDExNiw5NSw5NSw5OSwyLAotICAgIDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwzLDAsMCwwLDMsCi0gICAgMCwwLDAsMTE1LDIyLDAsMCwwLDExNiwwLDAsMTE2LDEsMCwxMjQsMCwKLSAgICAwLDEzMSwyLDAsMTA2LDIsMCwxMjQsMSwwLDEzMSwxLDAsODMsNDAsMSwKLSAgICAwLDAsMCwxMTcsMjYsMCwwLDAsNzYsMTExLDk3LDEwMCwzMiw5NywzMiwxMDksCi0gICAgMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMDIsMTE0LDExMSwxMDksMzIsOTcsMzIsMTAyLDEwNSwxMDgsCi0gICAgMTAxLDQ2LDQwLDMsMCwwLDAsMTE3LDUsMCwwLDAsMTE1LDExNywxMTIsMTAxLAotICAgIDExNCwxMTcsMTAsMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LAotICAgIDExNywxMSwwLDAsMCwxMDgsMTExLDk3LDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwKLSAgICA0MCwyLDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsOCwKLSAgICAwLDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsNDAsMSwwLDAsMCwKLSAgICAxMTcsOSwwLDAsMCw5NSw5NSw5OSwxMDgsOTcsMTE1LDExNSw5NSw5NSw0MCwwLAotICAgIDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwKLSAgICAxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwKLSAgICAxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTEsMCwwLDAsMTA4LDExMSw5NywxMDAsOTUsMTA5LAotICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsMjUxLDMsMCwwLDExNSwyLDAsMCwwLDAsNSwKLSAgICAxMTcsMjIsMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LAotICAgIDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk5LDIsMCwwLDAsCi0gICAgMCwwLDAsMCwyLDAsMCwwLDEsMCwwLDAsNjcsMCwwLDAsCi0gICAgMTE1LDcsMCwwLDAsMTI0LDAsMCwxMDYsMCwwLDgzLDQwLDEsMCwwLAotICAgIDAsMTE3LDU4LDAsMCwwLDgyLDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsMTE2LDEwNCwxMDEsCi0gICAgMzIsMTEyLDk3LDExNiwxMDQsMzIsMTE2LDExMSwzMiwxMTYsMTA0LDEwMSwzMiwxMTUsMTExLDExNywKLSAgICAxMTQsOTksMTAxLDMyLDEwMiwxMDUsMTA4LDEwMSwzMiw5NywxMTUsMzIsMTAyLDExMSwxMTcsMTEwLAotICAgIDEwMCwzMiw5OCwxMjEsMzIsMTE2LDEwNCwxMDEsMzIsMTAyLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsCi0gICAgNDAsMSwwLDAsMCwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw0MCwyLAotICAgIDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsOCwwLDAsCi0gICAgMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsNDAsMCwwLDAsMCw0MCwwLAotICAgIDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwKLSAgICAxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwKLSAgICAxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTIsMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTAyLDEwNSwKLSAgICAxMDgsMTAxLDExMCw5NywxMDksMTAxLDIsNCwwLDAsMTE1LDIsMCwwLDAsMCwKLSAgICAzLDExNywyMywwLDAsMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsCi0gICAgNDYsMTAzLDEwMSwxMTYsOTUsMTAyLDEwNSwxMDgsMTAxLDExMCw5NywxMDksMTAxLDk5LDIsMCwKLSAgICAwLDAsMCwwLDAsMCwzLDAsMCwwLDgsMCwwLDAsNjcsMCwKLSAgICAwLDAsMTE1LDQxLDAsMCwwLDExNiwwLDAsMTA2LDEsMCwxMjQsMSwwLAotICAgIDEwMCwxLDAsMTMxLDIsMCwxNDMsMTcsMCwxMjUsMiwwLDEyNCwyLDAsMTA2LAotICAgIDIsMCwxMzEsMCwwLDgzLDg3LDEwMCwyLDAsODEsODgsMTAwLDIsMCw4MywKLSAgICA0MCwzLDAsMCwwLDExNywzOSwwLDAsMCw4MiwxMDEsMTE2LDExNywxMTQsMTEwLAotICAgIDMyLDExNiwxMDQsMTAxLDMyLDEwMCw5NywxMTYsOTcsMzIsMTAyLDExNCwxMTEsMTA5LDMyLDExMiwKLSAgICA5NywxMTYsMTA0LDMyLDk3LDExNSwzMiwxMTQsOTcsMTE5LDMyLDk4LDEyMSwxMTYsMTAxLDExNSwKLSAgICA0NiwxMTcsMSwwLDAsMCwxMTQsNzgsNDAsMywwLDAsMCwxMTcsMywwLAotICAgIDAsMCw5NSwxMDUsMTExLDExNyw2LDAsMCwwLDcwLDEwNSwxMDgsMTAxLDczLDc5LAotICAgIDExNyw0LDAsMCwwLDExNCwxMDEsOTcsMTAwLDQwLDMsMCwwLDAsMTE3LDQsCi0gICAgMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LAotICAgIDExNyw0LDAsMCwwLDEwMiwxMDUsMTA4LDEwMSw0MCwwLDAsMCwwLDQwLDAsCi0gICAgMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLAotICAgIDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LAotICAgIDExNiwxMTQsOTcsMTEyLDYyLDExNyw4LDAsMCwwLDEwMywxMDEsMTE2LDk1LDEwMCw5NywKLSAgICAxMTYsOTcsNyw0LDAsMCwxMTUsNCwwLDAsMCwwLDIsMjEsMSwxMTcsCi0gICAgMTksMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDEwMywKLSAgICAxMDEsMTE2LDk1LDEwMCw5NywxMTYsOTcsNDAsOSwwLDAsMCwxMTcsOCwwLDAsCi0gICAgMCw5NSw5NSwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsMTAsMCwwLDAsOTUsOTUsCi0gICAgMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsOTUsMTE3LDEyLDAsMCwwLDk1LDk1LDExMywKLSAgICAxMTcsOTcsMTA4LDExMCw5NywxMDksMTAxLDk1LDk1LDExNyw3LDAsMCwwLDk1LDk1LAotICAgIDEwMCwxMTEsOTksOTUsOTUsMTE3LDgsMCwwLDAsOTUsOTUsMTA1LDExMCwxMDUsMTE2LAotICAgIDk1LDk1LDExNywxMSwwLDAsMCw5NSw5OSwxMDQsMTAxLDk5LDEwNyw5NSwxMTAsOTcsCi0gICAgMTA5LDEwMSwxMTcsMTEsMCwwLDAsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LAotICAgIDEwOCwxMDEsMTE3LDEyLDAsMCwwLDEwMywxMDEsMTE2LDk1LDEwMiwxMDUsMTA4LDEwMSwxMTAsCi0gICAgOTcsMTA5LDEwMSwxMTcsOCwwLDAsMCwxMDMsMTAxLDExNiw5NSwxMDAsOTcsMTE2LDk3LAotICAgIDQwLDEsMCwwLDAsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOCwxMTEsOTksOTcsCi0gICAgMTA4LDExNSw5NSw5NSw0MCwwLDAsMCwwLDQwLDEsMCwwLDAsMTE3LDksCi0gICAgMCwwLDAsOTUsOTUsOTksMTA4LDk3LDExNSwxMTUsOTUsOTUsMTE3LDI5LDAsMCwKLSAgICAwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwKLSAgICAxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMCwKLSAgICAwLDAsMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsMjQwLDMsMCwKLSAgICAwLDExNSwxMCwwLDAsMCwxNiwzLDYsMiwxMiw2LDI0LDcsMTgsNSwKLSAgICAxMTcsMTAsMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDk5LAotICAgIDEsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDQsMCwwLDAsCi0gICAgNjYsMCwwLDAsMTE1LDY4LDAsMCwwLDEyNCwwLDAsNjksMTAxLDAsMCwKLSAgICA5MCwxLDAsMTAwLDAsMCw5MCwyLDAsMTAwLDEsMCw5MCwzLDAsMTAwLAotICAgIDIsMCwxMDAsMywwLDEzMiwwLDAsOTAsNCwwLDEwMCw0LDAsMTAwLDUsCi0gICAgMCwxMzIsMCwwLDkwLDUsMCwxMDAsNiwwLDEwMCw3LDAsMTAwLDgsMCwKLSAgICAxMDAsOSwwLDEzMiwwLDEsOTAsNiwwLDEwMCwxMCwwLDgzLDQwLDExLDAsCi0gICAgMCwwLDExNywxNiwwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsNzAsMTA1LDEwOCwKLSAgICAxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDExNyw2MiwwLDAsMCw2NywxMTEsMTEwLDk5LAotICAgIDExNCwxMDEsMTE2LDEwMSwzMiwxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiw5NywxMTYsCi0gICAgMTA1LDExMSwxMTAsMzIsMTExLDEwMiwzMiw4MywxMTEsMTE3LDExNCw5OSwxMDEsNzYsMTExLDk3LAotICAgIDEwMCwxMDEsMTE0LDMyLDExNywxMTUsMTA1LDExMCwxMDMsMzIsMTE2LDEwNCwxMDEsMzIsMTAyLDEwNSwKLSAgICAxMDgsMTAxLDMyLDExNSwxMjEsMTE1LDExNiwxMDEsMTA5LDQ2LDk5LDIsMCwwLDAsMCwKLSAgICAwLDAsMCwzLDAsMCwwLDMsMCwwLDAsNjcsMCwwLDAsMTE1LAotICAgIDM5LDAsMCwwLDExNiwwLDAsMTA2LDEsMCwxMjQsMSwwLDEzMSwxLDAsCi0gICAgMTI1LDIsMCwxMDUsMiwwLDEyNCwyLDAsMTA2LDIsMCwxMDAsMSwwLDU0LAotICAgIDEyNCwyLDAsMTA2LDMsMCwxMDAsMiwwLDU0LDgzLDQwLDMsMCwwLDAsCi0gICAgMTE3LDMzLDAsMCwwLDgyLDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsMTE2LDEwNCwxMDEsMzIsCi0gICAgMTA5LDEwMSwxMTYsOTcsMTAwLDk3LDExNiw5NywzMiwxMDIsMTExLDExNCwzMiwxMTYsMTA0LDEwMSwKLSAgICAzMiwxMTIsOTcsMTE2LDEwNCw0NiwxMTcsNSwwLDAsMCwxMDksMTE2LDEwNSwxMDksMTAxLAotICAgIDExNyw0LDAsMCwwLDExNSwxMDUsMTIyLDEwMSw0MCw0LDAsMCwwLDExNywzLAotICAgIDAsMCwwLDk1LDExMSwxMTUsMTE3LDQsMCwwLDAsMTE1LDExNiw5NywxMTYsMTE3LAotICAgIDgsMCwwLDAsMTE1LDExNiw5NSwxMDksMTE2LDEwNSwxMDksMTAxLDExNyw3LDAsMCwKLSAgICAwLDExNSwxMTYsOTUsMTE1LDEwNSwxMjIsMTAxLDQwLDMsMCwwLDAsMTE3LDQsMCwKLSAgICAwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDExNywKLSAgICAyLDAsMCwwLDExNSwxMTYsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLAotICAgIDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwKLSAgICAxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LAotICAgIDExMiw2MiwxMTcsMTAsMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTE1LDExNiw5NywxMTYsCi0gICAgMTE1LDE3LDQsMCwwLDExNSw0LDAsMCwwLDAsMiwxNSwxLDExNywyNywKLSAgICAwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LAotICAgIDEwMCwxMDEsMTE0LDQ2LDExMiw5NywxMTYsMTA0LDk1LDExNSwxMTYsOTcsMTE2LDExNSw5OSw0LAotICAgIDAsMCwwLDAsMCwwLDAsNSwwLDAsMCwxMywwLDAsMCw2NywKLSAgICAwLDAsMCwxMTUsODEsMCwwLDAsMTIxLDIyLDAsMTE2LDAsMCwxMDYsMSwKLSAgICAwLDEyNCwxLDAsMTMxLDEsMCwxMDYsMiwwLDEyNSw0LDAsODcsMTEwLDI0LAotICAgIDAsNCwxMTYsMywwLDEwNywxMCwwLDExNCw0OCwwLDEsMSwxLDEwMCwxLAotICAgIDAsMTI1LDQsMCw4OSwxMTAsMSwwLDg4LDEyNCw0LDAsMTAwLDIsMCw3OSwKLSAgICAxMjUsNCwwLDEyNCwwLDAsMTA2LDQsMCwxMjQsMiwwLDEyNCwzLDAsMTAwLAotICAgIDMsMCwxMjQsNCwwLDEzMSwyLDEsODMsNDAsNCwwLDAsMCw3OCwxMDUsCi0gICAgMTgyLDEsMCwwLDEwNSwxMjgsMCwwLDAsMTE3LDUsMCwwLDAsOTUsMTA5LAotICAgIDExMSwxMDAsMTAxLDQwLDUsMCwwLDAsMTE3LDMsMCwwLDAsOTUsMTExLDExNSwKLSAgICAxMTcsNCwwLDAsMCwxMTUsMTE2LDk3LDExNiwxMTcsNywwLDAsMCwxMTUsMTE2LAotICAgIDk1LDEwOSwxMTEsMTAwLDEwMSwxMTcsNywwLDAsMCw3OSw4Myw2OSwxMTQsMTE0LDExMSwKLSAgICAxMTQsMTE3LDgsMCwwLDAsMTE1LDEwMSwxMTYsOTUsMTAwLDk3LDExNiw5Nyw0MCw1LAotICAgIDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsMTEsMCwwLAotICAgIDAsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSw5NSwxMTIsOTcsMTE2LDEwNCwxMTcsMTMsMCwwLAotICAgIDAsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsOTUsMTEyLDk3LDExNiwxMDQsMTE3LDQsCi0gICAgMCwwLDAsMTAwLDk3LDExNiw5NywxMTcsNCwwLDAsMCwxMDksMTExLDEwMCwxMDEsCi0gICAgNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwKLSAgICAxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LAotICAgIDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTUsMCwwLAotICAgIDAsOTUsOTksOTcsOTksMTA0LDEwMSw5NSw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSwKLSAgICAyMiw0LDAsMCwxMTUsMTIsMCwwLDAsMCwyLDMsMSwyMiwxLDEzLAotICAgIDEsMTEsMywxMCwxLDExNywzMiwwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsCi0gICAgNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDk1LDk5LDk3LDk5LDEwNCwKLSAgICAxMDEsOTUsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsMTE3LDUsMCwwLDAsOTUsCi0gICAgMTA5LDExMSwxMDAsMTAxLDEwNSwxODIsMSwwLDAsOTksMywwLDAsMCwxLDAsCisgICAgMTAwLDEwMSwxMTQsNDYsNzgsNDAsMiwwLDAsMCwxMTQsNjYsMCwwLDAsMTE0LAorICAgIDM1LDAsMCwwLDQwLDMsMCwwLDAsMTE0LDc3LDAsMCwwLDExNCwxNzcsCisgICAgMCwwLDAsMTE0LDM1LDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsCisgICAgMCwwLDExNCw1LDAsMCwwLDExNCw3OCwwLDAsMCwyOCw0LDAsMCwKKyAgICAxMTUsNCwwLDAsMCwwLDMsOSwxLDExNywxOSwwLDAsMCw3MCwxMDUsCisgICAgMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsOTUsOTUsMTA1LDExMCwxMDUsMTE2LDk1LAorICAgIDk1LDk5LDIsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDMsMCwKKyAgICAwLDAsMywwLDAsMCwxMTUsMjIsMCwwLDAsMTE2LDAsMCwxMTYsMSwKKyAgICAwLDEyNCwwLDAsMTMxLDIsMCwxMDYsMiwwLDEyNCwxLDAsMTMxLDEsMCwKKyAgICA4Myw0MCwxLDAsMCwwLDExNywyNiwwLDAsMCw3NiwxMTEsOTcsMTAwLDMyLAorICAgIDk3LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwMiwxMTQsMTExLDEwOSwzMiw5NywzMiwKKyAgICAxMDIsMTA1LDEwOCwxMDEsNDYsNDAsMywwLDAsMCwyNDQsNSwwLDAsMCwxMTUsCisgICAgMTE3LDExMiwxMDEsMTE0LDExNCwyNTUsMCwwLDAsMTE0LDIxMiwwLDAsMCw0MCwyLAorICAgIDAsMCwwLDExNCw3NywwLDAsMCwxMTQsMTc3LDAsMCwwLDQwLDEsMCwKKyAgICAwLDAsMjQ0LDksMCwwLDAsOTUsOTUsOTksMTA4LDk3LDExNSwxMTUsOTUsOTUsCisgICAgMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMTE0LDIxMiwwLDAsMCwzNCwKKyAgICA0LDAsMCwxMTUsMiwwLDAsMCwwLDUsMTE3LDIyLDAsMCwwLDcwLAorICAgIDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDgsMTExLDk3LDEwMCw5NSwxMDksCisgICAgMTExLDEwMCwxMTcsMTA4LDEwMSw5OSwyLDAsMCwwLDAsMCwwLDAsMiwwLAorICAgIDAsMCwxLDAsMCwwLDY3LDAsMCwwLDExNSw3LDAsMCwwLDEyNCwKKyAgICAwLDAsMTA2LDAsMCw4Myw0MCwxLDAsMCwwLDExNyw1OCwwLDAsMCwKKyAgICA4MiwxMDEsMTE2LDExNywxMTQsMTEwLDMyLDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLAorICAgIDExNiwxMTEsMzIsMTE2LDEwNCwxMDEsMzIsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwzMiwxMDIsMTA1LAorICAgIDEwOCwxMDEsMzIsOTcsMTE1LDMyLDEwMiwxMTEsMTE3LDExMCwxMDAsMzIsOTgsMTIxLDMyLDExNiwKKyAgICAxMDQsMTAxLDMyLDEwMiwxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LDQwLDEsMCwwLDAsMTE0LAorICAgIDM1LDAsMCwwLDQwLDIsMCwwLDAsMTE0LDc3LDAsMCwwLDExNCwxNzcsCisgICAgMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwKKyAgICAwLDAsMTE0LDE2MiwwLDAsMCw0MSw0LDAsMCwxMTUsMiwwLDAsMCwKKyAgICAwLDMsMTE3LDIzLDAsMCwwLDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLAorICAgIDExNCw0NiwxMDMsMTAxLDExNiw5NSwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsOTksMiwKKyAgICAwLDAsMCwwLDAsMCwwLDMsMCwwLDAsOCwwLDAsMCw2NywKKyAgICAwLDAsMCwxMTUsNDEsMCwwLDAsMTE2LDAsMCwxMDYsMSwwLDEyNCwxLAorICAgIDAsMTAwLDEsMCwxMzEsMiwwLDE0MywxNywwLDEyNSwyLDAsMTI0LDIsMCwKKyAgICAxMDYsMiwwLDEzMSwwLDAsODMsODcsMTAwLDIsMCw4MSw4OCwxMDAsMiwwLAorICAgIDgzLDQwLDMsMCwwLDAsMTE3LDM5LDAsMCwwLDgyLDEwMSwxMTYsMTE3LDExNCwKKyAgICAxMTAsMzIsMTE2LDEwNCwxMDEsMzIsMTAwLDk3LDExNiw5NywzMiwxMDIsMTE0LDExMSwxMDksMzIsCisgICAgMTEyLDk3LDExNiwxMDQsMzIsOTcsMTE1LDMyLDExNCw5NywxMTksMzIsOTgsMTIxLDExNiwxMDEsCisgICAgMTE1LDQ2LDI0NCwxLDAsMCwwLDExNCw3OCw0MCwzLDAsMCwwLDExNCw0OCwKKyAgICAwLDAsMCwxMTQsNDksMCwwLDAsMTE2LDQsMCwwLDAsMTE0LDEwMSw5NywKKyAgICAxMDAsNDAsMywwLDAsMCwxMTQsNzcsMCwwLDAsMTE0LDM1LDAsMCwwLAorICAgIDExNCw1MywwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsCisgICAgNSwwLDAsMCwxMTQsMjQyLDAsMCwwLDQ2LDQsMCwwLDExNSw0LDAsCisgICAgMCwwLDAsMiwyMSwxLDExNywxOSwwLDAsMCw3MCwxMDUsMTA4LDEwMSw3NiwKKyAgICAxMTEsOTcsMTAwLDEwMSwxMTQsNDYsMTAzLDEwMSwxMTYsOTUsMTAwLDk3LDExNiw5Nyw0MCw5LAorICAgIDAsMCwwLDExNCw1NiwwLDAsMCwxMTQsNTUsMCwwLDAsMTE0LDU3LDAsCisgICAgMCwwLDExNCw1OCwwLDAsMCwxMTQsNzgsMCwwLDAsMTE0LDE3NSwwLDAsCisgICAgMCwxMTQsMjEyLDAsMCwwLDExNCwxNjIsMCwwLDAsMTE0LDI0MiwwLDAsMCwKKyAgICAxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCw0MCwxLDAsMCwwLDExNCwKKyAgICAxLDEsMCwwLDExNCw1LDAsMCwwLDExNCwyNTUsMCwwLDAsMjMsNCwKKyAgICAwLDAsMTE1LDEwLDAsMCwwLDEyLDMsNiwyLDEyLDYsMjQsNywxOCwKKyAgICA1LDExNCwyNTUsMCwwLDAsOTksMCwwLDAsMCwwLDAsMCwwLDAsCisgICAgMCwwLDAsNCwwLDAsMCw2NCwwLDAsMCwxMTUsNjQsMCwwLDAsCisgICAgMTAxLDAsMCw5MCwxLDAsMTAwLDAsMCw5MCwyLDAsMTAwLDEsMCw5MCwKKyAgICAzLDAsMTAwLDIsMCwxMDAsMywwLDEzMiwwLDAsOTAsNCwwLDEwMCw0LAorICAgIDAsMTAwLDUsMCwxMzIsMCwwLDkwLDUsMCwxMDAsNiwwLDEwMCw3LDAsCisgICAgMTAwLDgsMCwxMDAsOSwwLDEzMiwwLDEsOTAsNiwwLDEwMCwxMCwwLDgzLAorICAgIDQwLDExLDAsMCwwLDI0NCwxNiwwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsCisgICAgNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDExNyw2MiwwLDAsMCw2NywKKyAgICAxMTEsMTEwLDk5LDExNCwxMDEsMTE2LDEwMSwzMiwxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLAorICAgIDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTExLDEwMiwzMiw4MywxMTEsMTE3LDExNCw5OSwxMDEsCisgICAgNzYsMTExLDk3LDEwMCwxMDEsMTE0LDMyLDExNywxMTUsMTA1LDExMCwxMDMsMzIsMTE2LDEwNCwxMDEsCisgICAgMzIsMTAyLDEwNSwxMDgsMTAxLDMyLDExNSwxMjEsMTE1LDExNiwxMDEsMTA5LDQ2LDk5LDIsMCwKKyAgICAwLDAsMCwwLDAsMCwzLDAsMCwwLDMsMCwwLDAsNjcsMCwKKyAgICAwLDAsMTE1LDM5LDAsMCwwLDExNiwwLDAsMTA2LDEsMCwxMjQsMSwwLAorICAgIDEzMSwxLDAsMTI1LDIsMCwxMDUsMiwwLDEyNCwyLDAsMTA2LDIsMCwxMDAsCisgICAgMSwwLDU0LDEyNCwyLDAsMTA2LDMsMCwxMDAsMiwwLDU0LDgzLDQwLDMsCisgICAgMCwwLDAsMTE3LDMzLDAsMCwwLDgyLDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsMTE2LAorICAgIDEwNCwxMDEsMzIsMTA5LDEwMSwxMTYsOTcsMTAwLDk3LDExNiw5NywzMiwxMDIsMTExLDExNCwzMiwKKyAgICAxMTYsMTA0LDEwMSwzMiwxMTIsOTcsMTE2LDEwNCw0NiwxMTQsMTkyLDAsMCwwLDExNCwxOTMsCisgICAgMCwwLDAsNDAsNCwwLDAsMCwxMTQsMywwLDAsMCwxMTQsMzksMCwKKyAgICAwLDAsMjQ0LDgsMCwwLDAsMTE1LDExNiw5NSwxMDksMTE2LDEwNSwxMDksMTAxLDExNiwKKyAgICA3LDAsMCwwLDExNSwxMTYsOTUsMTE1LDEwNSwxMjIsMTAxLDQwLDMsMCwwLDAsCisgICAgMTE0LDc3LDAsMCwwLDExNCwzNSwwLDAsMCwxMTQsMjUzLDAsMCwwLDExNCwKKyAgICA0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDExNCwyMzgsCisgICAgMCwwLDAsNTYsNCwwLDAsMTE1LDQsMCwwLDAsMCwyLDE1LDEsCisgICAgMTE3LDI3LDAsMCwwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSw3MCwxMDUsMTA4LDEwMSw3NiwKKyAgICAxMTEsOTcsMTAwLDEwMSwxMTQsNDYsMTEyLDk3LDExNiwxMDQsOTUsMTE1LDExNiw5NywxMTYsMTE1LAorICAgIDk5LDQsMCwwLDAsMCwwLDAsMCw1LDAsMCwwLDUsMCwwLAorICAgIDAsNjcsMCwwLDAsMTE1LDM0LDAsMCwwLDExNiwwLDAsMTI0LDEsMCwKKyAgICAxMzEsMSwwLDEyNSw0LDAsMTI0LDAsMCwxMDYsMSwwLDEyNCwyLDAsMTI0LAorICAgIDMsMCwxMDAsMSwwLDEyNCw0LDAsMTMxLDIsMSw4Myw0MCwyLDAsMCwKKyAgICAwLDc4LDI0NCw1LDAsMCwwLDk1LDEwOSwxMTEsMTAwLDEwMSw0MCwyLDAsMCwKKyAgICAwLDExNCwxMzIsMCwwLDAsMTE0LDIzOSwwLDAsMCw0MCw1LDAsMCwwLAorICAgIDExNCw3NywwLDAsMCwxMTQsMTI5LDAsMCwwLDExNCwxMjgsMCwwLDAsMTE0LAorICAgIDUyLDAsMCwwLDExNCw0MiwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwKKyAgICAwLDAsMCwxMTQsNSwwLDAsMCwxMTQsMjQwLDAsMCwwLDYxLDQsMCwKKyAgICAwLDExNSw0LDAsMCwwLDAsMiwxMiwxLDExNywzMiwwLDAsMCw4MywKKyAgICAxMTEsMTE3LDExNCw5OSwxMDEsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LAorICAgIDk1LDk5LDk3LDk5LDEwNCwxMDEsOTUsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsMTE0LAorICAgIDUsMSwwLDAsMTA1LDE4MiwxLDAsMCw5OSwzLDAsMCwwLDEsMCwKICAgICAwLDAsOSwwLDAsMCwxOCwwLDAsMCw2NywwLDAsMCwxMTUsNTMsCiAgICAgMSwwLDAsMTE2LDAsMCwxMjQsMSwwLDEzMSwxLDAsOTIsMiwwLDEyNSwKICAgICA0LDAsMTI1LDUsMCwxMDMsMCwwLDEyNSw2LDAsMTIwLDU0LDAsMTI0LDQsCkBAIC0yNTE2LDE5MTkgKzIxODIsMTQxMiBAQAogICAgIDAsMCw5OSwxMTEsMTE3LDEwOCwxMDAsMzIsMTEwLDExMSwxMTYsMzIsOTksMTE0LDEwMSw5NywKICAgICAxMTYsMTAxLDMyLDEyMywzMywxMTQsMTI1LDU4LDMyLDEyMywzMywxMTQsMTI1LDc4LDExNywxMiwKICAgICAwLDAsMCw5OSwxMTQsMTAxLDk3LDExNiwxMDEsMTAwLDMyLDEyMywzMywxMTQsMTI1LDQwLAotICAgIDExLDAsMCwwLDExNywxMSwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMTUsCi0gICAgMTEyLDEwOCwxMDUsMTE2LDExNywxMSwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMDUsCi0gICAgMTE1LDEwMCwxMDUsMTE0LDExNyw2LDAsMCwwLDk3LDExMiwxMTIsMTAxLDExMCwxMDAsMTE3LAotICAgIDgsMCwwLDAsMTE0LDEwMSwxMTgsMTAxLDExNCwxMTUsMTAxLDEwMCwxMTcsMTAsMCwwLAotICAgIDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA2LDExMSwxMDUsMTEwLDExNywzLDAsMCwwLAotICAgIDk1LDExMSwxMTUsMTE3LDUsMCwwLDAsMTA5LDEwNywxMDAsMTA1LDExNCwxMTcsMTUsMCwKLSAgICAwLDAsNzAsMTA1LDEwOCwxMDEsNjksMTIwLDEwNSwxMTUsMTE2LDExNSw2OSwxMTQsMTE0LDExMSwKLSAgICAxMTQsMTE3LDcsMCwwLDAsNzksODMsNjksMTE0LDExNCwxMTEsMTE0LDExNywxNiwwLAotICAgIDAsMCw5NSwxMTgsMTAxLDExNCw5OCwxMTEsMTE1LDEwMSw5NSwxMDksMTAxLDExNSwxMTUsOTcsCi0gICAgMTAzLDEwMSwxMTcsMTMsMCwwLDAsOTUsMTE5LDExNCwxMDUsMTE2LDEwMSw5NSw5NywxMTYsCi0gICAgMTExLDEwOSwxMDUsOTksNDAsOSwwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLAotICAgIDEwOCwxMDIsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LDQsMCwwLDAsCi0gICAgMTAwLDk3LDExNiw5NywxMTcsNSwwLDAsMCw5NSwxMDksMTExLDEwMCwxMDEsMTE3LDYsCi0gICAgMCwwLDAsMTEyLDk3LDExNCwxMDEsMTEwLDExNiwxMTcsOCwwLDAsMCwxMDIsMTA1LAotICAgIDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsMTE3LDEwLDAsMCwwLDExMiw5NywxMTYsMTA0LDk1LAotICAgIDExMiw5NywxMTQsMTE2LDExNSwxMTcsNCwwLDAsMCwxMTIsOTcsMTE0LDExNiwxMTcsMywKLSAgICAwLDAsMCwxMDEsMTIwLDk5LDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwKLSAgICAxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsCi0gICAgMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywKLSAgICAxMTIsNjIsMTE3LDgsMCwwLDAsMTE1LDEwMSwxMTYsOTUsMTAwLDk3LDExNiw5NywzMywKLSAgICA0LDAsMCwxMTUsMzgsMCwwLDAsMCwyLDE4LDEsNiwyLDIyLDEsCi0gICAgMTgsMSwxNywyLDE5LDEsMTUsMSwzLDEsMTcsMSwxMywyLDcsMSwKLSAgICAxOCwzLDE2LDEsMjcsMSwzLDEsMTYsMSwxNywxLDE4LDIsMTE3LDI1LAotICAgIDAsMCwwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsCi0gICAgMTAwLDEwMSwxMTQsNDYsMTE1LDEwMSwxMTYsOTUsMTAwLDk3LDExNiw5Nyw3OCw0MCw3LDAsCi0gICAgMCwwLDExNyw4LDAsMCwwLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LDk1LDExNywKLSAgICAxMCwwLDAsMCw5NSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSw5NSwxMTcsMTIsCi0gICAgMCwwLDAsOTUsOTUsMTEzLDExNyw5NywxMDgsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LAotICAgIDcsMCwwLDAsOTUsOTUsMTAwLDExMSw5OSw5NSw5NSwxMTcsMTAsMCwwLDAsCi0gICAgMTEyLDk3LDExNiwxMDQsOTUsMTE1LDExNiw5NywxMTYsMTE1LDExNywxNSwwLDAsMCw5NSwKLSAgICA5OSw5Nyw5OSwxMDQsMTAxLDk1LDk4LDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsMTAxLDExNyw4LAotICAgIDAsMCwwLDExNSwxMDEsMTE2LDk1LDEwMCw5NywxMTYsOTcsNDAsMSwwLDAsMCwKLSAgICAxMTcsMTAsMCwwLDAsOTUsOTUsMTA4LDExMSw5OSw5NywxMDgsMTE1LDk1LDk1LDQwLAotICAgIDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLAotICAgIDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0NiwKLSAgICA5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE2LDAsMCwwLAotICAgIDgzLDExMSwxMTcsMTE0LDk5LDEwMSw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsCi0gICAgMTMsNCwwLDAsMTE1LDgsMCwwLDAsMTYsMiw2LDIsMTIsNSwxMiwKLSAgICAxMSwxMTcsMTYsMCwwLDAsODMsMTExLDExNywxMTQsOTksMTAxLDcwLDEwNSwxMDgsMTAxLAotICAgIDc2LDExMSw5NywxMDAsMTAxLDExNCw5OSwxLDAsMCwwLDAsMCwwLDAsMSwKLSAgICAwLDAsMCwyLDAsMCwwLDY2LDAsMCwwLDExNSw2MiwwLDAsMCwKLSAgICAxMjQsMCwwLDY5LDEwMSwwLDAsOTAsMSwwLDEwMCwwLDAsOTAsMiwwLAotICAgIDEwMCwxLDAsOTAsMywwLDEwMCwyLDAsMTAwLDMsMCwxMzIsMCwwLDkwLAotICAgIDQsMCwxMDAsNCwwLDEwMCw1LDAsMTMyLDAsMCw5MCw1LDAsMTAwLDYsCi0gICAgMCwxMDAsNywwLDEzMiwwLDAsOTAsNiwwLDEwMCw4LDAsODMsNDAsOSwKLSAgICAwLDAsMCwxMTcsMjAsMCwwLDAsODMsMTExLDExNywxMTQsOTksMTAxLDEwOCwxMDEsCi0gICAgMTE1LDExNSw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LDQ1LDAsMCwKLSAgICAwLDc2LDExMSw5NywxMDAsMTAxLDExNCwzMiwxMTksMTA0LDEwNSw5OSwxMDQsMzIsMTA0LDk3LAotICAgIDExMCwxMDAsMTA4LDEwMSwxMTUsMzIsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwxMDgsMTAxLDExNSwxMTUsCi0gICAgMzIsMTAyLDEwNSwxMDgsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDExNSw0Niw5OSwyLAotICAgIDAsMCwwLDAsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDY3LAotICAgIDAsMCwwLDExNSwxOSwwLDAsMCwxMjQsMCwwLDEwNiwwLDAsMTI0LDEsCi0gICAgMCwxMDAsMSwwLDEwMCwyLDAsMTMxLDEsMSw4Myw0MCwzLDAsMCwwLAotICAgIDc4LDExNywxMCwwLDAsMCwxMTUsMTExLDExNywxMTQsOTksMTAxLDEwOCwxMDEsMTE1LDExNSwKLSAgICA4NCw0MCwyLDAsMCwwLDExNywxMiwwLDAsMCw5NSwxMDgsMTExLDk3LDEwMCwKLSAgICA5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTcsNCwwLDAsMCw4NCwxMTQsMTE3LDEwMSwKLSAgICA0MCwyLDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsOCwKLSAgICAwLDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsNDAsMCwwLDAsMCwKLSAgICA0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLAotICAgIDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsCi0gICAgMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTEsMCwwLDAsMTA4LDExMSw5NywxMDAsCi0gICAgOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNjYsNCwwLDAsMTE1LDIsMCwwLDAsCi0gICAgMCwxLDExNywzMiwwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsMTA4LDEwMSwxMTUsCi0gICAgMTE1LDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDgsMTExLDk3LDEwMCwKLSAgICA5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5OSwyLDAsMCwwLDAsMCwwLDAsCi0gICAgNiwwLDAsMCw2LDAsMCwwLDY3LDAsMCwwLDExNSwxMzgsMCwwLAotICAgIDAsMTI0LDAsMCwxMDYsMCwwLDEyNCwxLDAsMTMxLDEsMCwxMjUsMiwwLAotICAgIDEyNCwwLDAsMTA2LDEsMCwxMjQsMiwwLDEzMSwxLDAsMTI1LDMsMCwxMjQsCi0gICAgMCwwLDEwNiwyLDAsMTI0LDEsMCwxMjQsMywwLDEyNCwyLDAsMTAwLDAsCi0gICAgMCwxMzEsNCwwLDEyNSw0LDAsMTE2LDQsMCwxMDYsNSwwLDEyNCw0LDAsCi0gICAgMTMxLDEsMCwxMjUsNSwwLDExNiw2LDAsMTI0LDUsMCwxMTYsNywwLDEzMSwKLSAgICAyLDAsMTE0LDEwMSwwLDExNiw4LDAsMTAwLDEsMCwxMjQsMiwwLDEzMSwyLAotICAgIDAsMSwxMjQsNSwwLDgzLDExNiw5LDAsMTAwLDIsMCwxMDYsMTAsMCwxMjQsCi0gICAgMiwwLDEzMSwxLDAsMTAwLDMsMCwxMjQsMSwwLDEwMCw0LDAsMTI0LDIsCi0gICAgMCwxMzEsMSwyLDEzMCwxLDAsMTAwLDAsMCw4Myw0MCw1LDAsMCwwLAotICAgIDc4LDExNywyMSwwLDAsMCw5OSwxMTEsMTAwLDEwMSwzMiwxMTEsOTgsMTA2LDEwMSw5OSwKLSAgICAxMTYsMzIsMTAyLDExNCwxMTEsMTA5LDMyLDEyMywzMywxMTQsMTI1LDExNywyMSwwLDAsMCwKLSAgICA3OCwxMTEsMTEwLDQ1LDk5LDExMSwxMDAsMTAxLDMyLDExMSw5OCwxMDYsMTAxLDk5LDExNiwzMiwKLSAgICAxMDUsMTEwLDMyLDEyMywxMjUsMTE3LDQsMCwwLDAsMTEwLDk3LDEwOSwxMDEsMTE3LDQsCi0gICAgMCwwLDAsMTEyLDk3LDExNiwxMDQsNDAsMTEsMCwwLDAsMTE3LDEyLDAsMCwKLSAgICAwLDEwMywxMDEsMTE2LDk1LDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsMTA5LDEwMSwxMTcsOCwwLAotICAgIDAsMCwxMDMsMTAxLDExNiw5NSwxMDAsOTcsMTE2LDk3LDExNywyMCwwLDAsMCw5NSwKLSAgICA5OCwxMjEsMTE2LDEwMSwxMTUsOTUsMTAyLDExNCwxMTEsMTA5LDk1LDk4LDEyMSwxMTYsMTAxLDk5LAotICAgIDExMSwxMDAsMTAxLDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNyw3LDAsMCwKLSAgICAwLDEwOSw5NywxMTQsMTE1LDEwNCw5NywxMDgsMTE3LDUsMCwwLDAsMTA4LDExMSw5NywKLSAgICAxMDAsMTE1LDExNywxMCwwLDAsMCwxMDUsMTE1LDEwNSwxMTAsMTE1LDExNiw5NywxMTAsOTksCi0gICAgMTAxLDExNywxMCwwLDAsMCw5NSw5OSwxMTEsMTAwLDEwMSw5NSwxMTYsMTIxLDExMiwxMDEsCi0gICAgMTE3LDE2LDAsMCwwLDk1LDExOCwxMDEsMTE0LDk4LDExMSwxMTUsMTAxLDk1LDEwOSwxMDEsCi0gICAgMTE1LDExNSw5NywxMDMsMTAxLDExNywxMSwwLDAsMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LAotICAgIDY5LDExNCwxMTQsMTExLDExNCwxMTcsNiwwLDAsMCwxMDIsMTExLDExNCwxMDksOTcsMTE2LAotICAgIDQwLDYsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw4LAotICAgIDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSwxMTcsNCwwLDAsMCwKLSAgICAxMTIsOTcsMTE2LDEwNCwxMTcsNCwwLDAsMCwxMDAsOTcsMTE2LDk3LDExNywxMCwwLAotICAgIDAsMCw5OCwxMjEsMTE2LDEwMSwxMTUsOTUsMTAwLDk3LDExNiw5NywxMTcsNSwwLDAsCi0gICAgMCwxMDIsMTExLDExNywxMTAsMTAwLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwKLSAgICAxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsCi0gICAgMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywKLSAgICAxMTIsNjIsMTE3LDgsMCwwLDAsMTAzLDEwMSwxMTYsOTUsOTksMTExLDEwMCwxMDEsNjksCi0gICAgNCwwLDAsMTE1LDE4LDAsMCwwLDAsMSwxNSwxLDE1LDEsMjQsMSwKLSAgICAxNSwxLDE1LDEsMTMsMSw0LDIsMTgsMSwxMTcsMjksMCwwLDAsODMsCisgICAgMTEsMCwwLDAsMTE0LDM4LDAsMCwwLDExNCw0NSwwLDAsMCwxMTQsMTY0LAorICAgIDAsMCwwLDExNCwzMywwLDAsMCwxMTQsMjgsMCwwLDAsMTE0LDMsMCwKKyAgICAwLDAsMTE2LDUsMCwwLDAsMTA5LDEwNywxMDAsMTA1LDExNCwyNDQsMTUsMCwwLAorICAgIDAsNzAsMTA1LDEwOCwxMDEsNjksMTIwLDEwNSwxMTUsMTE2LDExNSw2OSwxMTQsMTE0LDExMSwxMTQsCisgICAgMTE0LDQwLDAsMCwwLDExNCwxNDAsMCwwLDAsMTE0LDU0LDAsMCwwLDQwLAorICAgIDksMCwwLDAsMTE0LDc3LDAsMCwwLDExNCwzNSwwLDAsMCwxMTQsNTIsCisgICAgMCwwLDAsMTE0LDUsMSwwLDAsMjQ0LDYsMCwwLDAsMTEyLDk3LDExNCwKKyAgICAxMDEsMTEwLDExNiwxMTQsMTE4LDAsMCwwLDExNCwyNywwLDAsMCwxMTQsMjMsMCwKKyAgICAwLDAsMTE0LDI0NywwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsCisgICAgMCwxMTQsNSwwLDAsMCwxMTQsMjM5LDAsMCwwLDY2LDQsMCwwLDExNSwKKyAgICAzOCwwLDAsMCwwLDIsMTgsMSw2LDIsMjIsMSwxOCwxLDE3LDIsCisgICAgMTksMSwxNSwxLDMsMSwxNywxLDEzLDIsNywxLDE4LDMsMTYsMSwKKyAgICAyNywxLDMsMSwxNiwxLDE3LDEsMTgsMiwxMTcsMjUsMCwwLDAsODMsCisgICAgMTExLDExNywxMTQsOTksMTAxLDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwKKyAgICAxMTUsMTAxLDExNiw5NSwxMDAsOTcsMTE2LDk3LDc4LDQwLDcsMCwwLDAsMTE0LDU2LAorICAgIDAsMCwwLDExNCw1NSwwLDAsMCwxMTQsNTcsMCwwLDAsMTE0LDU4LDAsCisgICAgMCwwLDExNCwyMzgsMCwwLDAsMTE0LDI0MCwwLDAsMCwxMTQsMjM5LDAsMCwKKyAgICAwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLAorICAgIDExNCw1LDAsMCwwLDExNCwzLDEsMCwwLDUyLDQsMCwwLDExNSw4LAorICAgIDAsMCwwLDEyLDIsNiwyLDEyLDUsMTIsNSwxMTQsMywxLDAsMCwKKyAgICA5OSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwzLDAsMCwKKyAgICAwLDAsMCwwLDAsMTE1LDY0LDAsMCwwLDEwMSwwLDAsOTAsMSwwLAorICAgIDEwMCwwLDAsOTAsMiwwLDEwMCwxLDAsOTAsMywwLDEzNSwwLDAsMTAyLAorICAgIDEsMCwxMDAsMiwwLDEwMCwzLDAsMTM0LDAsMCw5MCw0LDAsMTAwLDQsCisgICAgMCwxMDAsNSwwLDEzMiwwLDAsOTAsNSwwLDEwMCw2LDAsMTAwLDcsMCwKKyAgICAxMzIsMCwwLDkwLDYsMCwxMzUsMCwwLDgzLDQwLDgsMCwwLDAsMjQ0LAorICAgIDIwLDAsMCwwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSwxMDgsMTAxLDExNSwxMTUsNzAsMTA1LAorICAgIDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDExNyw0NSwwLDAsMCw3NiwxMTEsOTcsCisgICAgMTAwLDEwMSwxMTQsMzIsMTE5LDEwNCwxMDUsOTksMTA0LDMyLDEwNCw5NywxMTAsMTAwLDEwOCwxMDEsCisgICAgMTE1LDMyLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMTA4LDEwMSwxMTUsMTE1LDMyLDEwMiwxMDUsMTA4LAorICAgIDEwMSwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMTUsNDYsOTksMiwwLDAsMCwwLAorICAgIDAsMCwwLDIsMCwwLDAsMiwwLDAsMCwzLDAsMCwwLDExNSwKKyAgICAzMiwwLDAsMCwxMTYsMCwwLDEzMSwwLDAsMTA2LDEsMCwxMjQsMSwwLAorICAgIDEzMSwxLDAsMSwxMjQsMSwwLDEwNiwyLDAsMTI0LDEsMCw5NSwzLDAsCisgICAgMTAwLDAsMCw4Myw0MCwxLDAsMCwwLDc4LDQwLDQsMCwwLDAsMTE0LAorICAgIDAsMSwwLDAsMTE0LDIzMywwLDAsMCwxMTQsMTYzLDAsMCwwLDExNCwyMzIsCisgICAgMCwwLDAsNDAsMiwwLDAsMCwxMTQsNzcsMCwwLDAsMTE0LDE2MCwwLAorICAgIDAsMCw0MCwxLDAsMCwwLDExNCwxLDEsMCwwLDExNCw0LDAsMCwKKyAgICAwLDExNCw1LDAsMCwwLDExNCwyMzMsMCwwLDAsOTksNCwwLDAsMTE1LAorICAgIDQsMCwwLDAsMCwxLDE2LDEsMTE3LDM4LDAsMCwwLDgzLDExMSwxMTcsCisgICAgMTE0LDk5LDEwMSwxMDgsMTAxLDExNSwxMTUsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsCisgICAgMTE0LDQ2LDEwNSwxMTAsMTA1LDExNiw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSw5NywxMTYsCisgICAgMTE2LDExNCwxMTUsOTksMiwwLDAsMCwwLDAsMCwwLDUsMCwwLDAsCisgICAgNiwwLDAsMCw2NywwLDAsMCwxMTUsNzYsMCwwLDAsMTI0LDAsMCwKKyAgICAxMDYsMCwwLDEyNCwxLDAsMTMxLDEsMCwxMjUsMiwwLDEyNCwwLDAsMTA2LAorICAgIDEsMCwxMjQsMiwwLDEzMSwxLDAsMTI1LDMsMCwxMTYsMiwwLDEyNCwzLAorICAgIDAsMTAwLDEsMCwxMjQsMSwwLDEwMCwyLDAsMTI0LDIsMCwxMzEsMSwyLAorICAgIDEyNSw0LDAsMTE2LDMsMCwxMjQsNCwwLDEwMCwxLDAsMTI0LDEsMCwxMDAsCisgICAgMywwLDEyNCwyLDAsMTMxLDEsMiw4Myw0MCw0LDAsMCwwLDc4LDExNCwKKyAgICA2NiwwLDAsMCwxMTQsMzUsMCwwLDAsMTE0LDEyOCwwLDAsMCw0MCw0LAorICAgIDAsMCwwLDExNCwxNjIsMCwwLDAsMTE0LDI0MiwwLDAsMCwxMTQsMTk4LDAsCisgICAgMCwwLDExNCwyMDMsMCwwLDAsNDAsNSwwLDAsMCwxMTQsNzcsMCwwLAorICAgIDAsMTE0LDE3NywwLDAsMCwxMTQsMzUsMCwwLDAsMTE0LDUyLDAsMCwwLAorICAgIDExNCwyNTQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LAorICAgIDUsMCwwLDAsMTE0LDIxMywwLDAsMCwxMDMsNCwwLDAsMTE1LDgsMCwKKyAgICAwLDAsMCwxLDE1LDEsMTUsMSwyNCwxLDExNywyOSwwLDAsMCw4MywKICAgICAxMTEsMTE3LDExNCw5OSwxMDEsMTA4LDEwMSwxMTUsMTE1LDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywKICAgICAxMDAsMTAxLDExNCw0NiwxMDMsMTAxLDExNiw5NSw5OSwxMTEsMTAwLDEwMSw5OSwyLDAsMCwKICAgICAwLDAsMCwwLDAsMiwwLDAsMCwxLDAsMCwwLDY3LDAsMCwKICAgICAwLDExNSw0LDAsMCwwLDEwMCwxLDAsODMsNDAsMiwwLDAsMCwxMTcsCiAgICAgMzksMCwwLDAsODIsMTAxLDExNiwxMTcsMTE0LDExMCwzMiw3OCwxMTEsMTEwLDEwMSwzMiwKICAgICA5NywxMTUsMzIsMTE2LDEwNCwxMDEsMTE0LDEwMSwzMiwxMDUsMTE1LDMyLDExMCwxMTEsMzIsMTE1LAotICAgIDExMSwxMTcsMTE0LDk5LDEwMSwzMiw5OSwxMTEsMTAwLDEwMSw0Niw3OCw0MCwxLDAsMCwKLSAgICAwLDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDQwLDIsMCwwLDAsMTE3LAotICAgIDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw4LDAsMCwwLDEwMiwxMTcsMTA4LAotICAgIDEwOCwxMTAsOTcsMTA5LDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LAotICAgIDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwKLSAgICAxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLAotICAgIDYyLDExNywxMCwwLDAsMCwxMDMsMTAxLDExNiw5NSwxMTUsMTExLDExNywxMTQsOTksMTAxLAotICAgIDgxLDQsMCwwLDExNSwyLDAsMCwwLDAsMiwxMTcsMzEsMCwwLDAsCi0gICAgODMsMTExLDExNywxMTQsOTksMTAxLDEwOCwxMDEsMTE1LDExNSw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsCi0gICAgOTcsMTAwLDEwMSwxMTQsNDYsMTAzLDEwMSwxMTYsOTUsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSw3OCwKLSAgICA0MCw3LDAsMCwwLDExNyw4LDAsMCwwLDk1LDk1LDExMCw5NywxMDksMTAxLAotICAgIDk1LDk1LDExNywxMCwwLDAsMCw5NSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwKLSAgICA5NSwxMTcsMTIsMCwwLDAsOTUsOTUsMTEzLDExNyw5NywxMDgsMTEwLDk3LDEwOSwxMDEsCi0gICAgOTUsOTUsMTE3LDcsMCwwLDAsOTUsOTUsMTAwLDExMSw5OSw5NSw5NSwxMTcsMTEsCi0gICAgMCwwLDAsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDgsCi0gICAgMCwwLDAsMTAzLDEwMSwxMTYsOTUsOTksMTExLDEwMCwxMDEsMTE3LDEwLDAsMCwwLAotICAgIDEwMywxMDEsMTE2LDk1LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsNDAsMSwwLDAsMCwxMTcsCi0gICAgMTAsMCwwLDAsOTUsOTUsMTA4LDExMSw5OSw5NywxMDgsMTE1LDk1LDk1LDQwLDAsCi0gICAgMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwKLSAgICAxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSwKLSAgICA5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDIwLDAsMCwwLDgzLAotICAgIDExMSwxMTcsMTE0LDk5LDEwMSwxMDgsMTAxLDExNSwxMTUsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LAotICAgIDEwMCwxMDEsMTE0LDYyLDQsMCwwLDExNSw4LDAsMCwwLDE2LDIsNiwyLAotICAgIDEyLDMsMTIsMTIsMTE3LDIwLDAsMCwwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSwxMDgsCi0gICAgMTAxLDExNSwxMTUsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDk5LDEsMCwKLSAgICAwLDAsMCwwLDAsMCwxLDAsMCwwLDUsMCwwLDAsNjYsMCwKLSAgICAwLDAsMTE1LDEwNCwwLDAsMCwxMjQsMCwwLDY5LDEwMSwwLDAsOTAsMSwKLSAgICAwLDEwMCwwLDAsOTAsMiwwLDEwMCwxLDAsOTAsMywwLDEwMCwyLDAsCi0gICAgMTAwLDMsMCwxMzIsMCwwLDkwLDQsMCwxMDEsNSwwLDEwMSw2LDAsMTAxLAotICAgIDcsMCwxMDAsNCwwLDEwMCw1LDAsMTMyLDAsMCwxMzEsMSwwLDEzMSwxLAotICAgIDAsMTMxLDEsMCw5MCw4LDAsMTAwLDYsMCwxMDAsNywwLDEzMiwwLDAsCi0gICAgOTAsOSwwLDEwMCw4LDAsMTAwLDksMCwxMzIsMCwwLDkwLDEwLDAsMTAwLAotICAgIDEwLDAsMTAwLDExLDAsMTMyLDAsMCw5MCwxMSwwLDEwMCwxMiwwLDgzLDQwLAotICAgIDEzLDAsMCwwLDExNywxOSwwLDAsMCw2OSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwKLSAgICAxMTEsMTEwLDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCwxMTcsOTMsMCwwLAotICAgIDAsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDMyLDEwMiwxMTEsMTE0LDMyLDEwMSwxMjAsMTE2LDEwMSwKLSAgICAxMTAsMTE1LDEwNSwxMTEsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSw0NiwxMCwxMCwKLSAgICAzMiwzMiwzMiwzMiw4NCwxMDQsMTAxLDMyLDk5LDExMSwxMTAsMTE1LDExNiwxMTQsMTE3LDk5LAotICAgIDExNiwxMTEsMTE0LDMyLDEwNSwxMTUsMzIsMTAwLDEwMSwxMTUsMTA1LDEwMywxMTAsMTAxLDEwMCwzMiwKLSAgICAxMTYsMTExLDMyLDExOSwxMTEsMTE0LDEwNywzMiwxMTksMTA1LDExNiwxMDQsMzIsNzAsMTA1LDEwOCwKLSAgICAxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0NiwxMCwxMCwzMiwzMiwzMiwzMiw5OSwzLAotICAgIDAsMCwwLDAsMCwwLDAsMywwLDAsMCwyLDAsMCwwLDY3LAotICAgIDAsMCwwLDExNSwyMiwwLDAsMCwxMjQsMSwwLDEyNCwwLDAsOTUsMCwKLSAgICAwLDEyNCwyLDAsMTI0LDAsMCw5NSwxLDAsMTAwLDAsMCw4Myw0MCwxLAotICAgIDAsMCwwLDc4LDQwLDIsMCwwLDAsMTE3LDQsMCwwLDAsMTEwLDk3LAotICAgIDEwOSwxMDEsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsNDAsMywwLDAsMCwKLSAgICAxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDQsMCwwLDAsMTEwLDk3LAotICAgIDEwOSwxMDEsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsNDAsMCwwLDAsMCwKLSAgICA0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLAotICAgIDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsCi0gICAgMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsOCwwLDAsMCw5NSw5NSwxMDUsMTEwLAotICAgIDEwNSwxMTYsOTUsOTUsOTgsNCwwLDAsMTE1LDQsMCwwLDAsMCwxLDksCi0gICAgMSwxMTcsMjgsMCwwLDAsNjksMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLDExMCw3MCwKLSAgICAxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsOTUsOTUsMTA1LDExMCwxMDUsMTE2LAotICAgIDk1LDk1LDk5LDIsMCwwLDAsMCwwLDAsMCw0LDAsMCwwLDEwLAotICAgIDAsMCwwLDY3LDAsMCwwLDExNSwxNzUsMCwwLDAsMTI0LDEsMCwxMTYsCi0gICAgMCwwLDEwNiwxLDAsMTA3LDYsMCwxMjUsMiwwLDEyMSwxMDcsMCwxMTYsMiwKLSAgICAwLDExNiwzLDAsMTA2LDQsMCwxMjQsMSwwLDEyNCwwLDAsMTA2LDUsMCwKLSAgICAxMzEsMywwLDEyNSwzLDAsMTE2LDYsMCwxMDAsMSwwLDEyNCwwLDAsMTA2LAotICAgIDUsMCwxMzEsMiwwLDEsMTI0LDAsMCwxMDYsNywwLDEyNCwxLDAsMTMxLAotICAgIDEsMCwxMTQsMTE3LDAsMTE2LDgsMCwxMjQsMywwLDEwMCwyLDAsMTMxLDIsCi0gICAgMCwxMiwxMTQsMTE3LDAsMTE2LDksMCwxMjQsMCwwLDEwNiw1LDAsMTMxLDEsCi0gICAgMCwxMDAsMywwLDI1LDEwMywxLDAsMTI0LDMsMCw5NSwxMCwwLDExMCwwLAotICAgIDAsMTI0LDMsMCw4Myw4NywxMTAsNDYsMCwxLDEsMSwxMjQsMiwwLDEyLAotICAgIDExNCwxNjMsMCwxMjQsMSwwLDExNiwwLDAsMTA2LDEsMCwxMDcsNiwwLDExNCwKLSAgICAxNjMsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LDEsMCw2MSwxMTAsMCwwLDEzMCwKLSAgICAwLDAsODksMTEwLDEsMCw4OCwxMDAsNCwwLDgzLDQwLDUsMCwwLDAsCi0gICAgMTE3LDI1LDAsMCwwLDc2LDExMSw5NywxMDAsMzIsOTcsMTEwLDMyLDEwMSwxMjAsMTE2LAotICAgIDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQ2LDExNywzMywKLSAgICAwLDAsMCwxMDEsMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLDExMCwzMiwxMDksMTExLDEwMCwKLSAgICAxMTcsMTA4LDEwMSwzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTAwLDMyLDEwMiwxMTQsMTExLDEwOSwzMiwKLSAgICAxMjMsMzMsMTE0LDEyNSwxMTcsOCwwLDAsMCw5NSw5NSwxMTIsOTcsMTE2LDEwNCw5NSwKLSAgICA5NSwxMDUsMCwwLDAsMCw3OCw0MCwxMSwwLDAsMCwxMTcsMywwLDAsCi0gICAgMCwxMTUsMTIxLDExNSwxMTcsNywwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsCi0gICAgMTE3LDI1LDAsMCwwLDk1LDk5LDk3LDEwOCwxMDgsOTUsMTE5LDEwNSwxMTYsMTA0LDk1LAotICAgIDEwMiwxMTQsOTcsMTA5LDEwMSwxMTUsOTUsMTE0LDEwMSwxMDksMTExLDExOCwxMDEsMTAwLDExNyw0LAotICAgIDAsMCwwLDk1LDEwNSwxMDksMTEyLDExNywxMiwwLDAsMCwxMDgsMTExLDk3LDEwMCwKLSAgICA5NSwxMDAsMTIxLDExMCw5NywxMDksMTA1LDk5LDExNyw0LDAsMCwwLDExMiw5NywxMTYsCi0gICAgMTA0LDExNywxNiwwLDAsMCw5NSwxMTgsMTAxLDExNCw5OCwxMTEsMTE1LDEwMSw5NSwxMDksCi0gICAgMTAxLDExNSwxMTUsOTcsMTAzLDEwMSwxMTcsMTAsMCwwLDAsMTA1LDExNSw5NSwxMTIsOTcsCi0gICAgOTksMTA3LDk3LDEwMywxMDEsMTE3LDcsMCwwLDAsMTA0LDk3LDExNSw5NywxMTYsMTE2LAotICAgIDExNCwxMTcsMTEsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTE1LDExMiwxMDgsMTA1LAotICAgIDExNiwxMTcsOCwwLDAsMCw5NSw5NSwxMTIsOTcsMTE2LDEwNCw5NSw5NSw0MCw0LAotICAgIDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsOCwwLDAsCi0gICAgMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsMTE3LDksMCwwLDAsMTA1LDExNSwKLSAgICA5NSwxMTQsMTAxLDEwOCwxMTEsOTcsMTAwLDExNyw2LDAsMCwwLDEwOSwxMTEsMTAwLDExNywKLSAgICAxMDgsMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLAotICAgIDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LAotICAgIDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDExLAotICAgIDAsMCwwLDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDEwMiw0LAotICAgIDAsMCwxMTUsMjQsMCwwLDAsMCw1LDE1LDEsMywxLDksMSwxNSwKLSAgICAxLDE2LDEsMzEsMSwyOCwxLDgsMSwzLDEsMjIsMSwxMywxLDExNywKLSAgICAzMSwwLDAsMCw2OSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDcwLDEwNSwxMDgsCi0gICAgMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDgsMTExLDk3LDEwMCw5NSwxMDksMTExLDEwMCwKLSAgICAxMTcsMTA4LDEwMSw5OSwyLDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwKLSAgICA0LDAsMCwwLDMsMCwwLDAsMTE1LDQ4LDAsMCwwLDExNiwwLDAsCi0gICAgMTI0LDAsMCwxMDYsMSwwLDEzMSwxLDAsMTAwLDEsMCwyNSwxMzcsMCwwLAotICAgIDExNiwyLDAsMTM1LDAsMCwxMDIsMSwwLDEwMCwyLDAsMTAwLDMsMCwxMzQsCi0gICAgMCwwLDExNiwzLDAsNjgsMTMxLDEsMCwxMzEsMSwwLDgzLDQwLDQsMCwKLSAgICAwLDAsMTE3LDQ5LDAsMCwwLDgyLDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsODQsMTE0LAotICAgIDExNywxMDEsMzIsMTA1LDEwMiwzMiwxMTYsMTA0LDEwMSwzMiwxMDEsMTIwLDExNiwxMDEsMTEwLDExNSwKLSAgICAxMDUsMTExLDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMDUsMTE1LDMyLDk3LDMyLAotICAgIDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw0NiwxMDUsMSwwLDAsMCw5OSwxLDAsCi0gICAgMCwwLDAsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDUxLDAsCi0gICAgMCwwLDExNSwzMSwwLDAsMCwxMjQsMCwwLDkzLDIxLDAsMTI1LDEsMCwKLSAgICAxMzYsMCwwLDEwMCwwLDAsMTI0LDEsMCwyMywxMDcsMiwwLDg2LDEsMTEzLAotICAgIDMsMCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDgsMCwwLDAsCi0gICAgOTUsOTUsMTA1LDExMCwxMDUsMTE2LDk1LDk1LDc4LDQwLDAsMCwwLDAsNDAsMiwKLSAgICAwLDAsMCwxMTcsMiwwLDAsMCw0Niw0OCwxMTcsNiwwLDAsMCwxMTUsCi0gICAgMTE3LDEwMiwxMDIsMTA1LDEyMCw0MCwxLDAsMCwwLDExNyw5LDAsMCwwLDEwMiwKLSAgICAxMDUsMTA4LDEwMSw5NSwxMTAsOTcsMTA5LDEwMSw0MCwwLDAsMCwwLDExNywyOSwwLAotICAgIDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwKLSAgICAxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsCi0gICAgOSwwLDAsMCw2MCwxMDMsMTAxLDExMCwxMDEsMTIwLDExMiwxMTQsNjIsMTIzLDQsMCwKLSAgICAwLDExNSwyLDAsMCwwLDYsMSwxMTcsNDksMCwwLDAsNjksMTIwLDExNiwKLSAgICAxMDEsMTEwLDExNSwxMDUsMTExLDExMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsCi0gICAgNDYsMTA1LDExNSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsNDYsNjAsMTA4LDExMSw5OSwKLSAgICA5NywxMDgsMTE1LDYyLDQ2LDYwLDEwMywxMDEsMTEwLDEwMSwxMjAsMTEyLDExNCw2Miw0MCw0LAotICAgIDAsMCwwLDExNywxMSwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMTUsMTEyLAotICAgIDEwOCwxMDUsMTE2LDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDExNywzLDAsMCwKLSAgICAwLDk3LDExMCwxMjEsMTE3LDE4LDAsMCwwLDY5LDg4LDg0LDY5LDc4LDgzLDczLAotICAgIDc5LDc4LDk1LDgzLDg1LDcwLDcwLDczLDg4LDY5LDgzLDQwLDIsMCwwLDAsCi0gICAgMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw4LDAsMCwwLDEwMiwxMTcsCi0gICAgMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSw0MCwwLDAsMCwwLDQwLDEsMCwwLDAsCi0gICAgMTE3LDksMCwwLDAsMTAyLDEwNSwxMDgsMTAxLDk1LDExMCw5NywxMDksMTAxLDExNywyOSwKLSAgICAwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LAotICAgIDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwKLSAgICAxMTcsMTAsMCwwLDAsMTA1LDExNSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMTIwLAotICAgIDQsMCwwLDExNSw2LDAsMCwwLDAsMiwxOSwxLDE4LDEsMTE3LDMwLAotICAgIDAsMCwwLDY5LDEyMCwxMTYsMTAxLDExMCwxMTUsMTA1LDExMSwxMTAsNzAsMTA1LDEwOCwxMDEsCi0gICAgNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDEwNSwxMTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsCi0gICAgMTAxLDk5LDIsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDEsMCwKLSAgICAwLDAsNjcsMCwwLDAsMTE1LDQsMCwwLDAsMTAwLDEsMCw4Myw0MCwKLSAgICAyLDAsMCwwLDExNyw2MywwLDAsMCw4MiwxMDEsMTE2LDExNywxMTQsMTEwLDMyLAotICAgIDc4LDExMSwxMTAsMTAxLDMyLDk3LDExNSwzMiw5NywxMTAsMzIsMTAxLDEyMCwxMTYsMTAxLDExMCwKLSAgICAxMTUsMTA1LDExMSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsOTksOTcsMTEwLDExMCwKLSAgICAxMTEsMTE2LDMyLDk5LDExNCwxMDEsOTcsMTE2LDEwMSwzMiw5NywzMiw5OSwxMTEsMTAwLDEwMSwKLSAgICAzMiwxMTEsOTgsMTA2LDEwMSw5OSwxMTYsNDYsNzgsNDAsMSwwLDAsMCwxMTcsNCwKLSAgICAwLDAsMCw3OCwxMTEsMTEwLDEwMSw0MCwyLDAsMCwwLDExNyw0LDAsMCwKLSAgICAwLDExNSwxMDEsMTA4LDEwMiwxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LAotICAgIDEwOSwxMDEsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsCi0gICAgMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsCi0gICAgMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsOCwKLSAgICAwLDAsMCwxMDMsMTAxLDExNiw5NSw5OSwxMTEsMTAwLDEwMSwxMjYsNCwwLDAsMTE1LAotICAgIDIsMCwwLDAsMCwyLDExNywyOCwwLDAsMCw2OSwxMjAsMTE2LDEwMSwxMTAsCi0gICAgMTE1LDEwNSwxMTEsMTEwLDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDMsCi0gICAgMTAxLDExNiw5NSw5OSwxMTEsMTAwLDEwMSw5OSwyLDAsMCwwLDAsMCwwLDAsCi0gICAgMiwwLDAsMCwxLDAsMCwwLDY3LDAsMCwwLDExNSw0LDAsMCwKLSAgICAwLDEwMCwxLDAsODMsNDAsMiwwLDAsMCwxMTcsNTMsMCwwLDAsODIsCi0gICAgMTAxLDExNiwxMTcsMTE0LDExMCwzMiw3OCwxMTEsMTEwLDEwMSwzMiw5NywxMTUsMzIsMTAxLDEyMCwKLSAgICAxMTYsMTAxLDExMCwxMTUsMTA1LDExMSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDMyLAotICAgIDEwNCw5NywxMTgsMTAxLDMyLDExMCwxMTEsMzIsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwzMiw5OSwKLSAgICAxMTEsMTAwLDEwMSw0Niw3OCw0MCwxLDAsMCwwLDExNyw0LDAsMCwwLDc4LAotICAgIDExMSwxMTAsMTAxLDQwLDIsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsCi0gICAgMTAyLDExNyw4LDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSw0MCwwLAotICAgIDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsCi0gICAgMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsCi0gICAgOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMCwwLDAsMCwxMDMsCi0gICAgMTAxLDExNiw5NSwxMTUsMTExLDExNywxMTQsOTksMTAxLDEzMCw0LDAsMCwxMTUsMiwwLAotICAgIDAsMCwwLDIsMTE3LDMwLDAsMCwwLDY5LDEyMCwxMTYsMTAxLDExMCwxMTUsMTA1LAotICAgIDExMSwxMTAsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDEwMywxMDEsMTE2LAotICAgIDk1LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsNzgsNDAsMTIsMCwwLDAsMTE3LDgsMCwKLSAgICAwLDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLDk1LAotICAgIDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDk1LDExNywxMiwwLDAsMCw5NSw5NSwKLSAgICAxMTMsMTE3LDk3LDEwOCwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsNywwLDAsMCw5NSwKLSAgICA5NSwxMDAsMTExLDk5LDk1LDk1LDExNyw4LDAsMCwwLDk1LDk1LDEwNSwxMTAsMTA1LAotICAgIDExNiw5NSw5NSwxMTcsMTEsMCwwLDAsOTUsOTksMTA0LDEwMSw5OSwxMDcsOTUsMTEwLAotICAgIDk3LDEwOSwxMDEsMTE3LDExLDAsMCwwLDExNSwxMDEsMTE2LDk1LDExMiw5Nyw5OSwxMDcsCi0gICAgOTcsMTAzLDEwMSwxMTcsMTAsMCwwLDAsMTE1LDEwMSwxMTYsOTUsMTA4LDExMSw5NywxMDAsCi0gICAgMTAxLDExNCwxMTcsMTEsMCwwLDAsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LAotICAgIDEwOCwxMDEsMTE3LDEwLDAsMCwwLDEwNSwxMTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsCi0gICAgMTAxLDExNyw4LDAsMCwwLDEwMywxMDEsMTE2LDk1LDk5LDExMSwxMDAsMTAxLDExNywxMCwKLSAgICAwLDAsMCwxMDMsMTAxLDExNiw5NSwxMTUsMTExLDExNywxMTQsOTksMTAxLDQwLDEsMCwKLSAgICAwLDAsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOCwxMTEsOTksOTcsMTA4LDExNSw5NSwKLSAgICA5NSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLAotICAgIDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsCi0gICAgOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxOSwwLAotICAgIDAsMCw2OSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDcwLDEwNSwxMDgsMTAxLDc2LAotICAgIDExMSw5NywxMDAsMTAxLDExNCw5MCw0LDAsMCwxMTUsMTYsMCwwLDAsMTYsNiwKLSAgICA2LDIsMTIsNCwzLDEsMywxLDI0LDE2LDEyLDYsMTIsNCwxMTcsMTksCi0gICAgMCwwLDAsNjksMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLDExMCw3MCwxMDUsMTA4LDEwMSwKLSAgICA3NiwxMTEsOTcsMTAwLDEwMSwxMTQsOTksMSwwLDAsMCwwLDAsMCwwLDEsCi0gICAgMCwwLDAsMiwwLDAsMCw2NiwwLDAsMCwxMTUsMTM0LDAsMCwwLAotICAgIDEyNCwwLDAsNjksMTAxLDAsMCw5MCwxLDAsMTAwLDAsMCw5MCwyLDAsCi0gICAgMTAwLDEsMCw5MCwzLDAsMTAwLDIsMCwxMDAsMywwLDEzMiwwLDAsOTAsCi0gICAgNCwwLDEwMCw0LDAsMTAwLDUsMCwxMzIsMCwwLDkwLDUsMCwxMDAsNiwKLSAgICAwLDEwMCw3LDAsMTMyLDAsMCw5MCw2LDAsMTAwLDgsMCwxMDAsOSwwLAotICAgIDEzMiwwLDAsOTAsNywwLDEwMCwxMCwwLDEwMCwxMSwwLDEzMiwwLDAsOTAsCi0gICAgOCwwLDEwMCwxMiwwLDEwMCwxMywwLDEzMiwwLDAsOTAsOSwwLDEwMCwxNCwKLSAgICAwLDEwMCwxNSwwLDEzMiwwLDAsOTAsMTAsMCwxMDAsMTYsMCwxMDAsMTcsMCwKLSAgICAxMzIsMCwwLDkwLDExLDAsMTAwLDE4LDAsMTAwLDE5LDAsMTMyLDAsMCw5MCwKLSAgICAxMiwwLDEwMCwyMCwwLDgzLDQwLDIxLDAsMCwwLDExNywxNCwwLDAsMCwKLSAgICA5NSw3OCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDgwLDk3LDExNiwxMDQsMTE3LDM4LAotICAgIDEsMCwwLDgyLDEwMSwxMTIsMTE0LDEwMSwxMTUsMTAxLDExMCwxMTYsMTE1LDMyLDk3LDMyLAotICAgIDExMCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDMyLDExMiw5Nyw5OSwxMDcsOTcsMTAzLAotICAgIDEwMSwzOSwxMTUsMzIsMTEyLDk3LDExNiwxMDQsNDYsMzIsMzIsNzMsMTE2LDMyLDExNywxMTUsCi0gICAgMTAxLDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMTAsOTcsCi0gICAgMTA5LDEwMSwxMCwzMiwzMiwzMiwzMiwxMTYsMTExLDMyLDEwMiwxMDUsMTEwLDEwMCwzMiwxMDUsCi0gICAgMTE2LDExNSwzMiwxMTIsOTcsMTE0LDEwMSwxMTAsMTE2LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLAotICAgIDQ0LDMyLDk3LDExMCwxMDAsMzIsMTAyLDExNCwxMTEsMTA5LDMyLDExNiwxMDQsMTAxLDExNCwxMDEsCi0gICAgMzIsMTA1LDExNiwzMiwxMDgsMTExLDExMSwxMDcsMTE1LDMyLDExNywxMTIsMzIsMTE2LDEwNCwxMDEsCi0gICAgMzIsMTEyLDk3LDExNCwxMDEsMTEwLDExNiwzOSwxMTUsMTAsMzIsMzIsMzIsMzIsOTUsOTUsCi0gICAgMTEyLDk3LDExNiwxMDQsOTUsOTUsNDYsMzIsMzIsODcsMTA0LDEwMSwxMTAsMzIsMTE2LDEwNCwKLSAgICAxMDUsMTE1LDMyLDk5LDEwNCw5NywxMTAsMTAzLDEwMSwxMTUsNDQsMzIsMTE2LDEwNCwxMDEsMzIsCi0gICAgMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzksMTE1LDMyLDExMSwxMTksMTEwLDMyLDExMiw5NywxMTYsCi0gICAgMTA0LDMyLDEwNSwxMTUsMzIsMTE0LDEwMSw5OSwxMTEsMTA5LDExMiwxMTcsMTE2LDEwMSwxMDAsNDQsCi0gICAgMTAsMzIsMzIsMzIsMzIsMTE3LDExNSwxMDUsMTEwLDEwMywzMiwxMTIsOTcsMTE2LDEwNCw5NSwKLSAgICAxMDIsMTA1LDExMCwxMDAsMTAxLDExNCw0NiwzMiwzMiw3MCwxMTEsMTE0LDMyLDExNiwxMTEsMTEyLAotICAgIDQ1LDEwOCwxMDEsMTE4LDEwMSwxMDgsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDQ0LDMyLAotICAgIDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTQsMTAxLDExMCwxMTYsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwKLSAgICAxMDEsMzksMTE1LDMyLDExMiw5NywxMTYsMTA0LDEwLDMyLDMyLDMyLDMyLDEwNSwxMTUsMzIsCi0gICAgMTE1LDEyMSwxMTUsNDYsMTEyLDk3LDExNiwxMDQsNDYsOTksNCwwLDAsMCwwLDAsCi0gICAgMCwwLDQsMCwwLDAsMiwwLDAsMCw2NywwLDAsMCwxMTUsNTIsCi0gICAgMCwwLDAsMTI0LDEsMCwxMjQsMCwwLDk1LDAsMCwxMjQsMiwwLDEyNCwKLSAgICAwLDAsOTUsMSwwLDExNiwyLDAsMTI0LDAsMCwxMDYsMywwLDEzMSwwLAotICAgIDAsMTMxLDEsMCwxMjQsMCwwLDk1LDQsMCwxMjQsMywwLDEyNCwwLDAsCi0gICAgOTUsNSwwLDEwMCwwLDAsODMsNDAsMSwwLDAsMCw3OCw0MCw2LDAsCi0gICAgMCwwLDExNyw1LDAsMCwwLDk1LDExMCw5NywxMDksMTAxLDExNyw1LDAsMCwKLSAgICAwLDk1LDExMiw5NywxMTYsMTA0LDExNyw1LDAsMCwwLDExNiwxMTcsMTEyLDEwOCwxMDEsCi0gICAgMTE3LDE2LDAsMCwwLDk1LDEwMywxMDEsMTE2LDk1LDExMiw5NywxMTQsMTAxLDExMCwxMTYsCi0gICAgOTUsMTEyLDk3LDExNiwxMDQsMTE3LDE3LDAsMCwwLDk1LDEwOCw5NywxMTUsMTE2LDk1LAotICAgIDExMiw5NywxMTQsMTAxLDExMCwxMTYsOTUsMTEyLDk3LDExNiwxMDQsMTE3LDEyLDAsMCwwLAotICAgIDk1LDExMiw5NywxMTYsMTA0LDk1LDEwMiwxMDUsMTEwLDEwMCwxMDEsMTE0LDQwLDQsMCwwLAotICAgIDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw0LDAsMCwwLDExMCwKLSAgICA5NywxMDksMTAxLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDExNywxMSwwLDAsCi0gICAgMCwxMTIsOTcsMTE2LDEwNCw5NSwxMDIsMTA1LDExMCwxMDAsMTAxLDExNCw0MCwwLDAsMCwKLSAgICAwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwKLSAgICAxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLAotICAgIDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw4LDAsMCwwLDk1LDk1LDEwNSwKLSAgICAxMTAsMTA1LDExNiw5NSw5NSwxNDIsNCwwLDAsMTE1LDgsMCwwLDAsMCwxLAotICAgIDksMSw5LDEsMjEsMSwxMTcsMjMsMCwwLDAsOTUsNzgsOTcsMTA5LDEwMSwKLSAgICAxMTUsMTEyLDk3LDk5LDEwMSw4MCw5NywxMTYsMTA0LDQ2LDk1LDk1LDEwNSwxMTAsMTA1LDExNiwKLSAgICA5NSw5NSw5OSwxLDAsMCwwLDAsMCwwLDAsNCwwLDAsMCwzLAotICAgIDAsMCwwLDY3LDAsMCwwLDExNSw1MywwLDAsMCwxMjQsMCwwLDEwNiwKLSAgICAwLDAsMTA2LDEsMCwxMDAsMSwwLDEzMSwxLDAsOTIsMywwLDEyNSwxLAotICAgIDAsMTI1LDIsMCwxMjUsMywwLDEyNCwyLDAsMTAwLDIsMCwxMDcsMiwwLAotICAgIDExNCw0MywwLDEwMCw2LDAsODMsMTI0LDEsMCwxMDAsNSwwLDEwMiwyLDAsCi0gICAgODMsNDAsNywwLDAsMCwxMTcsNjIsMCwwLDAsODIsMTAxLDExNiwxMTcsMTE0LAotICAgIDExMCwxMTUsMzIsOTcsMzIsMTE2LDExNywxMTIsMTA4LDEwMSwzMiwxMTEsMTAyLDMyLDQwLDExMiwKLSAgICA5NywxMTQsMTAxLDExMCwxMTYsNDUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDUsMTEwLDk3LDEwOSwKLSAgICAxMDEsNDQsMzIsMTEyLDk3LDExNCwxMDEsMTEwLDExNiw0NSwxMTIsOTcsMTE2LDEwNCw0NSw5NywKLSAgICAxMTYsMTE2LDExNCw0NSwxMTAsOTcsMTA5LDEwMSw0MSwxMTcsMSwwLDAsMCw0NiwxMTcsCi0gICAgMCwwLDAsMCwxMTcsMywwLDAsMCwxMTUsMTIxLDExNSwxMTcsNCwwLDAsCi0gICAgMCwxMTIsOTcsMTE2LDEwNCwxMTcsOCwwLDAsMCw5NSw5NSwxMTIsOTcsMTE2LDEwNCwKLSAgICA5NSw5NSw0MCwyLDAsMCwwLDExNywzLDAsMCwwLDExNSwxMjEsMTE1LDExNywKLSAgICA0LDAsMCwwLDExMiw5NywxMTYsMTA0LDQwLDIsMCwwLDAsMTE3LDUsMCwKLSAgICAwLDAsOTUsMTEwLDk3LDEwOSwxMDEsMTE3LDEwLDAsMCwwLDExNCwxMTIsOTcsMTE0LAotICAgIDExNiwxMDUsMTE2LDEwNSwxMTEsMTEwLDQwLDQsMCwwLDAsMTE3LDQsMCwwLDAsCi0gICAgMTE1LDEwMSwxMDgsMTAyLDExNyw2LDAsMCwwLDExMiw5NywxMTQsMTAxLDExMCwxMTYsMTE3LAotICAgIDMsMCwwLDAsMTAwLDExMSwxMTYsMTE3LDIsMCwwLDAsMTA5LDEwMSw0MCwwLAotICAgIDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsCi0gICAgMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsCi0gICAgOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywyMywwLDAsMCw5NSwKLSAgICAxMDIsMTA1LDExMCwxMDAsOTUsMTEyLDk3LDExNCwxMDEsMTEwLDExNiw5NSwxMTIsOTcsMTE2LDEwNCwKLSAgICA5NSwxMTAsOTcsMTA5LDEwMSwxMTUsMTQ4LDQsMCwwLDExNSw4LDAsMCwwLDAsCi0gICAgMiwyNywxLDEyLDIsNCwzLDExNywzOCwwLDAsMCw5NSw3OCw5NywxMDksCi0gICAgMTAxLDExNSwxMTIsOTcsOTksMTAxLDgwLDk3LDExNiwxMDQsNDYsOTUsMTAyLDEwNSwxMTAsMTAwLAotICAgIDk1LDExMiw5NywxMTQsMTAxLDExMCwxMTYsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTEwLDk3LDEwOSwKLSAgICAxMDEsMTE1LDk5LDEsMCwwLDAsMCwwLDAsMCwzLDAsMCwwLDMsCi0gICAgMCwwLDAsNjcsMCwwLDAsMTE1LDM4LDAsMCwwLDEyNCwwLDAsMTA2LAotICAgIDAsMCwxMzEsMCwwLDkyLDIsMCwxMjUsMSwwLDEyNSwyLDAsMTE2LDEsCi0gICAgMCwxMTYsMiwwLDEwNiwzLDAsMTI0LDEsMCwyNSwxMjQsMiwwLDEzMSwyLAotICAgIDAsODMsNDAsMSwwLDAsMCw3OCw0MCw0LDAsMCwwLDExNywyMywwLAotICAgIDAsMCw5NSwxMDIsMTA1LDExMCwxMDAsOTUsMTEyLDk3LDExNCwxMDEsMTEwLDExNiw5NSwxMTIsCi0gICAgOTcsMTE2LDEwNCw5NSwxMTAsOTcsMTA5LDEwMSwxMTUsMTE3LDcsMCwwLDAsMTAzLDEwMSwKLSAgICAxMTYsOTcsMTE2LDExNiwxMTQsMTE3LDMsMCwwLDAsMTE1LDEyMSwxMTUsMTE3LDcsMCwKLSAgICAwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDQwLDMsMCwwLDAsMTE3LDQsCi0gICAgMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNywxOCwwLDAsMCwxMTIsOTcsMTE0LDEwMSwKLSAgICAxMTAsMTE2LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExMCw5NywxMDksMTAxLDExNywxNCwKLSAgICAwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSw5NywxMTYsMTE2LDExNCw5NSwxMTAsOTcsMTA5LAotICAgIDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLAotICAgIDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsCi0gICAgOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxNiwwLAotICAgIDAsMCw5NSwxMDMsMTAxLDExNiw5NSwxMTIsOTcsMTE0LDEwMSwxMTAsMTE2LDk1LDExMiw5NywKLSAgICAxMTYsMTA0LDE1OCw0LDAsMCwxMTUsNCwwLDAsMCwwLDEsMTgsMSwxMTcsCi0gICAgMzEsMCwwLDAsOTUsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw4MCw5NywKLSAgICAxMTYsMTA0LDQ2LDk1LDEwMywxMDEsMTE2LDk1LDExMiw5NywxMTQsMTAxLDExMCwxMTYsOTUsMTEyLAotICAgIDk3LDExNiwxMDQsOTksMSwwLDAsMCwwLDAsMCwwLDQsMCwwLDAsCi0gICAgMywwLDAsMCw2NywwLDAsMCwxMTUsMTAzLDAsMCwwLDExNiwwLDAsCi0gICAgMTI0LDAsMCwxMDYsMSwwLDEzMSwwLDAsMTMxLDEsMCwxMjUsMSwwLDEyNCwKLSAgICAxLDAsMTI0LDAsMCwxMDYsMiwwLDEwNywzLDAsMTE0LDk2LDAsMTI0LDAsCi0gICAgMCwxMDYsMywwLDEyNCwwLDAsMTA2LDQsMCwxMjQsMSwwLDEzMSwyLDAsCi0gICAgOTIsMiwwLDEyNSwyLDAsMTI1LDMsMCwxMjQsMiwwLDEwMCwwLDAsMTA3LAotICAgIDgsMCwxMTQsODQsMCwxMjQsMywwLDEyNCwwLDAsOTUsNiwwLDExMCwwLAotICAgIDAsMTI0LDEsMCwxMjQsMCwwLDk1LDIsMCwxMTAsMCwwLDEyNCwwLDAsCi0gICAgMTA2LDYsMCw4Myw0MCwxLDAsMCwwLDc4LDQwLDcsMCwwLDAsMTE3LAotICAgIDUsMCwwLDAsMTE2LDExNywxMTIsMTA4LDEwMSwxMTcsMTYsMCwwLDAsOTUsMTAzLAotICAgIDEwMSwxMTYsOTUsMTEyLDk3LDExNCwxMDEsMTEwLDExNiw5NSwxMTIsOTcsMTE2LDEwNCwxMTcsMTcsCi0gICAgMCwwLDAsOTUsMTA4LDk3LDExNSwxMTYsOTUsMTEyLDk3LDExNCwxMDEsMTEwLDExNiw5NSwKLSAgICAxMTIsOTcsMTE2LDEwNCwxMTcsMTIsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTAyLAotICAgIDEwNSwxMTAsMTAwLDEwMSwxMTQsMTE3LDUsMCwwLDAsOTUsMTEwLDk3LDEwOSwxMDEsMTE3LAotICAgIDQsMCwwLDAsNzgsMTExLDExMCwxMDEsMTE3LDUsMCwwLDAsOTUsMTEyLDk3LAotICAgIDExNiwxMDQsNDAsNCwwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsCi0gICAgMTE3LDExLDAsMCwwLDExMiw5NywxMTQsMTAxLDExMCwxMTYsOTUsMTEyLDk3LDExNiwxMDQsCi0gICAgMTE3LDYsMCwwLDAsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsOCwwLDAsMCwKLSAgICAxMTAsMTAxLDExOSw5NSwxMTIsOTcsMTE2LDEwNCw0MCwwLDAsMCwwLDQwLDAsMCwKLSAgICAwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwKLSAgICAxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwKLSAgICAxMTQsOTcsMTEyLDYyLDExNywxMiwwLDAsMCw5NSwxMTQsMTAxLDk5LDk3LDEwOCw5OSwKLSAgICAxMTcsMTA4LDk3LDExNiwxMDEsMTYyLDQsMCwwLDExNSwxNCwwLDAsMCwwLDIsCi0gICAgMTgsMSwxNSwxLDI3LDMsMTIsMSwxMiwxLDEyLDEsMTE3LDI3LDAsMCwKKyAgICAxMTEsMTE3LDExNCw5OSwxMDEsMzIsOTksMTExLDEwMCwxMDEsNDYsNzgsMTE0LDQsMCwwLAorICAgIDAsNDAsMiwwLDAsMCwxMTQsNzcsMCwwLDAsMTE0LDE3NywwLDAsMCwKKyAgICAxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwxMTQsCisgICAgMjE0LDAsMCwwLDEwOSw0LDAsMCwxMTUsMiwwLDAsMCwwLDIsMTE3LAorICAgIDMxLDAsMCwwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSwxMDgsMTAxLDExNSwxMTUsNzAsMTA1LAorICAgIDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDEwMywxMDEsMTE2LDk1LDExNSwxMTEsMTE3LAorICAgIDExNCw5OSwxMDEsNDAsNywwLDAsMCwxMTQsNTYsMCwwLDAsMTE0LDU1LDAsCisgICAgMCwwLDExNCw1NywwLDAsMCwxMTQsNTgsMCwwLDAsMTE0LDIzMywwLDAsCisgICAgMCwxMTQsMjEzLDAsMCwwLDExNCwyMTQsMCwwLDAsMTE0LDQsMCwwLDAsCisgICAgMTE0LDQsMCwwLDAsNDAsMSwwLDAsMCwxMTQsMSwxLDAsMCwxMTQsCisgICAgNSwwLDAsMCwxMTQsOCwxLDAsMCw5NSw0LDAsMCwxMTUsOCwwLAorICAgIDAsMCwxMiwyLDYsMiwxOCw0LDEyLDYsMTE0LDgsMSwwLDAsOTksCisgICAgMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNSwwLDAsMCwKKyAgICA2NCwwLDAsMCwxMTUsMTAwLDAsMCwwLDEwMSwwLDAsOTAsMSwwLDEwMCwKKyAgICAwLDAsOTAsMiwwLDEwMCwxLDAsOTAsMywwLDEwMCwyLDAsMTAwLDMsCisgICAgMCwxMzIsMCwwLDkwLDQsMCwxMDEsNSwwLDEwMSw2LDAsMTAxLDcsMCwKKyAgICAxMDAsNCwwLDEwMCw1LDAsMTMyLDAsMCwxMzEsMSwwLDEzMSwxLDAsMTMxLAorICAgIDEsMCw5MCw4LDAsMTAwLDYsMCwxMDAsNywwLDEzMiwwLDAsOTAsOSwKKyAgICAwLDEwMCw4LDAsMTAwLDksMCwxMzIsMCwwLDkwLDEwLDAsMTAwLDEwLDAsCisgICAgMTAwLDExLDAsMTMyLDAsMCw5MCwxMSwwLDEwMCwxMiwwLDgzLDQwLDEzLDAsCisgICAgMCwwLDI0NCwxOSwwLDAsMCw2OSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLAorICAgIDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCwxMTcsOTMsMCwwLDAsNzYsCisgICAgMTExLDk3LDEwMCwxMDEsMTE0LDMyLDEwMiwxMTEsMTE0LDMyLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTE1LAorICAgIDEwNSwxMTEsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSw0NiwxMCwxMCwzMiwzMiwKKyAgICAzMiwzMiw4NCwxMDQsMTAxLDMyLDk5LDExMSwxMTAsMTE1LDExNiwxMTQsMTE3LDk5LDExNiwxMTEsCisgICAgMTE0LDMyLDEwNSwxMTUsMzIsMTAwLDEwMSwxMTUsMTA1LDEwMywxMTAsMTAxLDEwMCwzMiwxMTYsMTExLAorICAgIDMyLDExOSwxMTEsMTE0LDEwNywzMiwxMTksMTA1LDExNiwxMDQsMzIsNzAsMTA1LDEwOCwxMDEsNzAsCisgICAgMTA1LDExMCwxMDAsMTAxLDExNCw0NiwxMCwxMCwzMiwzMiwzMiwzMiw5OSwzLDAsMCwKKyAgICAwLDAsMCwwLDAsMywwLDAsMCwyLDAsMCwwLDY3LDAsMCwKKyAgICAwLDExNSwyMiwwLDAsMCwxMjQsMSwwLDEyNCwwLDAsOTUsMCwwLDEyNCwKKyAgICAyLDAsMTI0LDAsMCw5NSwxLDAsMTAwLDAsMCw4Myw0MCwxLDAsMCwKKyAgICAwLDc4LDQwLDIsMCwwLDAsMTE0LDY2LDAsMCwwLDExNCwzNSwwLDAsCisgICAgMCw0MCwzLDAsMCwwLDExNCw3NywwLDAsMCwxMTQsNjYsMCwwLDAsCisgICAgMTE0LDM1LDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCwKKyAgICA1LDAsMCwwLDExNCw3OCwwLDAsMCwxMjYsNCwwLDAsMTE1LDQsMCwKKyAgICAwLDAsMCwxLDksMSwxMTcsMjgsMCwwLDAsNjksMTIwLDExNiwxMDEsMTEwLAorICAgIDExNSwxMDUsMTExLDExMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsOTUsCisgICAgOTUsMTA1LDExMCwxMDUsMTE2LDk1LDk1LDk5LDIsMCwwLDAsMCwwLDAsMCwKKyAgICA0LDAsMCwwLDEwLDAsMCwwLDY3LDAsMCwwLDExNSwxNzUsMCwwLAorICAgIDAsMTI0LDEsMCwxMTYsMCwwLDEwNiwxLDAsMTA3LDYsMCwxMjUsMiwwLAorICAgIDEyMSwxMDcsMCwxMTYsMiwwLDExNiwzLDAsMTA2LDQsMCwxMjQsMSwwLDEyNCwKKyAgICAwLDAsMTA2LDUsMCwxMzEsMywwLDEyNSwzLDAsMTE2LDYsMCwxMDAsMSwKKyAgICAwLDEyNCwwLDAsMTA2LDUsMCwxMzEsMiwwLDEsMTI0LDAsMCwxMDYsNywKKyAgICAwLDEyNCwxLDAsMTMxLDEsMCwxMTQsMTE3LDAsMTE2LDgsMCwxMjQsMywwLAorICAgIDEwMCwyLDAsMTMxLDIsMCwxMiwxMTQsMTE3LDAsMTE2LDksMCwxMjQsMCwwLAorICAgIDEwNiw1LDAsMTMxLDEsMCwxMDAsMywwLDI1LDEwMywxLDAsMTI0LDMsMCwKKyAgICA5NSwxMCwwLDExMCwwLDAsMTI0LDMsMCw4Myw4NywxMTAsNDYsMCwxLDEsCisgICAgMSwxMjQsMiwwLDEyLDExNCwxNjMsMCwxMjQsMSwwLDExNiwwLDAsMTA2LDEsCisgICAgMCwxMDcsNiwwLDExNCwxNjMsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LDEsMCwKKyAgICA2MSwxMTAsMCwwLDEzMCwwLDAsODksMTEwLDEsMCw4OCwxMDAsNCwwLDgzLAorICAgIDQwLDUsMCwwLDAsMTE3LDI1LDAsMCwwLDc2LDExMSw5NywxMDAsMzIsOTcsCisgICAgMTEwLDMyLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywKKyAgICAxMDgsMTAxLDQ2LDExNywzMywwLDAsMCwxMDEsMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLAorICAgIDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTAwLDMyLAorICAgIDEwMiwxMTQsMTExLDEwOSwzMiwxMjMsMzMsMTE0LDEyNSwxMTQsMTU4LDAsMCwwLDExNCw3MCwKKyAgICAwLDAsMCw3OCw0MCwxMSwwLDAsMCwxMTQsNywwLDAsMCwxMTQsMTQ1LAorICAgIDAsMCwwLDExNCwxMDEsMCwwLDAsMTE0LDk2LDAsMCwwLDExNiwxMiwwLAorICAgIDAsMCwxMDgsMTExLDk3LDEwMCw5NSwxMDAsMTIxLDExMCw5NywxMDksMTA1LDk5LDExNCwzNSwKKyAgICAwLDAsMCwxMTQsMTQwLDAsMCwwLDExNCwxNTUsMCwwLDAsMTE0LDU5LDAsCisgICAgMCwwLDExNCwzOCwwLDAsMCwxMTQsMTU4LDAsMCwwLDQwLDQsMCwwLAorICAgIDAsMTE0LDc3LDAsMCwwLDExNCwxNzcsMCwwLDAsMTE0LDIxMSwwLDAsMCwKKyAgICAxMTQsMTYwLDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCwKKyAgICA1LDAsMCwwLDExNCwyMTIsMCwwLDAsMTMwLDQsMCwwLDExNSwyNCwwLAorICAgIDAsMCwwLDUsMTUsMSwzLDEsOSwxLDE1LDEsMTYsMSwzMSwxLAorICAgIDI4LDEsOCwxLDMsMSwyMiwxLDEzLDEsMTE3LDMxLDAsMCwwLDY5LAorICAgIDEyMCwxMTYsMTAxLDExMCwxMTUsMTA1LDExMSwxMTAsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwKKyAgICAxMDEsMTE0LDQ2LDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk5LDIsCisgICAgMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDQsMCwwLDAsMywKKyAgICAwLDAsMCwxMTUsNDgsMCwwLDAsMTE2LDAsMCwxMjQsMCwwLDEwNiwxLAorICAgIDAsMTMxLDEsMCwxMDAsMSwwLDI1LDEzNywwLDAsMTE2LDIsMCwxMzUsMCwKKyAgICAwLDEwMiwxLDAsMTAwLDIsMCwxMDAsMywwLDEzNCwwLDAsMTE2LDMsMCwKKyAgICA2OCwxMzEsMSwwLDEzMSwxLDAsODMsNDAsNCwwLDAsMCwxMTcsNDksMCwKKyAgICAwLDAsODIsMTAxLDExNiwxMTcsMTE0LDExMCwzMiw4NCwxMTQsMTE3LDEwMSwzMiwxMDUsMTAyLAorICAgIDMyLDExNiwxMDQsMTAxLDMyLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDMyLDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwNSwxMTUsMzIsOTcsMzIsMTEyLDk3LDk5LDEwNyw5NywKKyAgICAxMDMsMTAxLDQ2LDExNCwyOSwwLDAsMCw5OSwxLDAsMCwwLDAsMCwwLAorICAgIDAsMiwwLDAsMCw0LDAsMCwwLDUxLDAsMCwwLDExNSwzMSwwLAorICAgIDAsMCwxMjQsMCwwLDkzLDIxLDAsMTI1LDEsMCwxMzYsMCwwLDEwMCwwLAorICAgIDAsMTI0LDEsMCwyMywxMDcsMiwwLDg2LDEsMTEzLDMsMCwxMDAsMSwwLAorICAgIDgzLDQwLDIsMCwwLDAsMTE0LDc4LDAsMCwwLDc4LDExNCw0LDAsMCwKKyAgICAwLDQwLDIsMCwwLDAsMTE0LDIyLDAsMCwwLDI0NCw2LDAsMCwwLAorICAgIDExNSwxMTcsMTAyLDEwMiwxMDUsMTIwLDQwLDEsMCwwLDAsMjQ0LDksMCwwLDAsCisgICAgMTAyLDEwNSwxMDgsMTAxLDk1LDExMCw5NywxMDksMTAxLDExNCw0LDAsMCwwLDExNCw1LAorICAgIDAsMCwwLDExNCwxNTEsMCwwLDAsMTUxLDQsMCwwLDExNSwyLDAsMCwKKyAgICAwLDYsMSwxMTcsNDksMCwwLDAsNjksMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLAorICAgIDExMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsMTA1LDExNSw5NSwxMTIsCisgICAgOTcsOTksMTA3LDk3LDEwMywxMDEsNDYsNjAsMTA4LDExMSw5OSw5NywxMDgsMTE1LDYyLDQ2LAorICAgIDYwLDEwMywxMDEsMTEwLDEwMSwxMjAsMTEyLDExNCw2Miw0MCw0LDAsMCwwLDExNCwzOCwKKyAgICAwLDAsMCwxMTQsMzUsMCwwLDAsMTE0LDE1MiwwLDAsMCwyNDQsMTgsMCwKKyAgICAwLDAsNjksODgsODQsNjksNzgsODMsNzMsNzksNzgsOTUsODMsODUsNzAsNzAsCisgICAgNzMsODgsNjksODMsNDAsMiwwLDAsMCwxMTQsNzcsMCwwLDAsMTE0LDE3NywKKyAgICAwLDAsMCwxMTQsNCwwLDAsMCw0MCwxLDAsMCwwLDExNCwxMSwxLAorICAgIDAsMCwxMTQsNSwwLDAsMCwxMTQsMTU1LDAsMCwwLDE0OCw0LDAsMCwKKyAgICAxMTUsNiwwLDAsMCwwLDIsMTksMSwxOCwxLDExNywzMCwwLDAsMCwKKyAgICA2OSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywKKyAgICAxMDAsMTAxLDExNCw0NiwxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5OSwyLAorICAgIDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwxLDAsMCwwLDY3LAorICAgIDAsMCwwLDExNSw0LDAsMCwwLDEwMCwxLDAsODMsNDAsMiwwLDAsCisgICAgMCwxMTcsNjMsMCwwLDAsODIsMTAxLDExNiwxMTcsMTE0LDExMCwzMiw3OCwxMTEsMTEwLAorICAgIDEwMSwzMiw5NywxMTUsMzIsOTcsMTEwLDMyLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsCisgICAgMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDk5LDk3LDExMCwxMTAsMTExLDExNiwzMiwKKyAgICA5OSwxMTQsMTAxLDk3LDExNiwxMDEsMzIsOTcsMzIsOTksMTExLDEwMCwxMDEsMzIsMTExLDk4LAorICAgIDEwNiwxMDEsOTksMTE2LDQ2LDc4LDExNCw0LDAsMCwwLDQwLDIsMCwwLDAsCisgICAgMTE0LDc3LDAsMCwwLDExNCwxNzcsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LAorICAgIDQsMCwwLDAsMTE0LDUsMCwwLDAsMTE0LDIxMywwLDAsMCwxNTQsNCwKKyAgICAwLDAsMTE1LDIsMCwwLDAsMCwyLDExNywyOCwwLDAsMCw2OSwxMjAsCisgICAgMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLAorICAgIDExNCw0NiwxMDMsMTAxLDExNiw5NSw5OSwxMTEsMTAwLDEwMSw5OSwyLDAsMCwwLDAsCisgICAgMCwwLDAsMiwwLDAsMCwxLDAsMCwwLDY3LDAsMCwwLDExNSwKKyAgICA0LDAsMCwwLDEwMCwxLDAsODMsNDAsMiwwLDAsMCwxMTcsNTMsMCwKKyAgICAwLDAsODIsMTAxLDExNiwxMTcsMTE0LDExMCwzMiw3OCwxMTEsMTEwLDEwMSwzMiw5NywxMTUsCisgICAgMzIsMTAxLDEyMCwxMTYsMTAxLDExMCwxMTUsMTA1LDExMSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwKKyAgICAxMDEsMTE1LDMyLDEwNCw5NywxMTgsMTAxLDMyLDExMCwxMTEsMzIsMTE1LDExMSwxMTcsMTE0LDk5LAorICAgIDEwMSwzMiw5OSwxMTEsMTAwLDEwMSw0Niw3OCwxMTQsNCwwLDAsMCw0MCwyLDAsCisgICAgMCwwLDExNCw3NywwLDAsMCwxMTQsMTc3LDAsMCwwLDExNCw0LDAsMCwKKyAgICAwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDExNCwyMTQsMCwwLDAsCisgICAgMTU4LDQsMCwwLDExNSwyLDAsMCwwLDAsMiwxMTcsMzAsMCwwLDAsCisgICAgNjksMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLDExMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsCisgICAgMTAwLDEwMSwxMTQsNDYsMTAzLDEwMSwxMTYsOTUsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSw3OCw0MCwKKyAgICAxMiwwLDAsMCwxMTQsNTYsMCwwLDAsMTE0LDU1LDAsMCwwLDExNCw1NywKKyAgICAwLDAsMCwxMTQsNTgsMCwwLDAsMTE0LDc4LDAsMCwwLDExNCwxNzUsMCwKKyAgICAwLDAsMTE0LDE2OSwwLDAsMCwxMTQsMTcyLDAsMCwwLDExNCwyMTIsMCwwLAorICAgIDAsMTE0LDE1NSwwLDAsMCwxMTQsMjEzLDAsMCwwLDExNCwyMTQsMCwwLDAsCisgICAgMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LAorICAgIDUsMCwwLDAsMTE0LDksMSwwLDAsMTE4LDQsMCwwLDExNSwxNiwwLAorICAgIDAsMCwxMiw2LDYsMiwxMiw0LDMsMSwzLDEsMjQsMTYsMTIsNiwKKyAgICAxMiw0LDExNCw5LDEsMCwwLDk5LDAsMCwwLDAsMCwwLDAsMCwKKyAgICAwLDAsMCwwLDIsMCwwLDAsNjQsMCwwLDAsMTE1LDEzMCwwLDAsCisgICAgMCwxMDEsMCwwLDkwLDEsMCwxMDAsMCwwLDkwLDIsMCwxMDAsMSwwLAorICAgIDkwLDMsMCwxMDAsMiwwLDEwMCwzLDAsMTMyLDAsMCw5MCw0LDAsMTAwLAorICAgIDQsMCwxMDAsNSwwLDEzMiwwLDAsOTAsNSwwLDEwMCw2LDAsMTAwLDcsCisgICAgMCwxMzIsMCwwLDkwLDYsMCwxMDAsOCwwLDEwMCw5LDAsMTMyLDAsMCwKKyAgICA5MCw3LDAsMTAwLDEwLDAsMTAwLDExLDAsMTMyLDAsMCw5MCw4LDAsMTAwLAorICAgIDEyLDAsMTAwLDEzLDAsMTMyLDAsMCw5MCw5LDAsMTAwLDE0LDAsMTAwLDE1LAorICAgIDAsMTMyLDAsMCw5MCwxMCwwLDEwMCwxNiwwLDEwMCwxNywwLDEzMiwwLDAsCisgICAgOTAsMTEsMCwxMDAsMTgsMCwxMDAsMTksMCwxMzIsMCwwLDkwLDEyLDAsMTAwLAorICAgIDIwLDAsODMsNDAsMjEsMCwwLDAsMjQ0LDE0LDAsMCwwLDk1LDc4LDk3LAorICAgIDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsODAsOTcsMTE2LDEwNCwxMTcsMzgsMSwwLDAsCisgICAgODIsMTAxLDExMiwxMTQsMTAxLDExNSwxMDEsMTEwLDExNiwxMTUsMzIsOTcsMzIsMTEwLDk3LDEwOSwKKyAgICAxMDEsMTE1LDExMiw5Nyw5OSwxMDEsMzIsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDM5LDExNSwKKyAgICAzMiwxMTIsOTcsMTE2LDEwNCw0NiwzMiwzMiw3MywxMTYsMzIsMTE3LDExNSwxMDEsMTE1LDMyLAorICAgIDExNiwxMDQsMTAxLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDExMCw5NywxMDksMTAxLDEwLAorICAgIDMyLDMyLDMyLDMyLDExNiwxMTEsMzIsMTAyLDEwNSwxMTAsMTAwLDMyLDEwNSwxMTYsMTE1LDMyLAorICAgIDExMiw5NywxMTQsMTAxLDExMCwxMTYsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDQsMzIsOTcsCisgICAgMTEwLDEwMCwzMiwxMDIsMTE0LDExMSwxMDksMzIsMTE2LDEwNCwxMDEsMTE0LDEwMSwzMiwxMDUsMTE2LAorICAgIDMyLDEwOCwxMTEsMTExLDEwNywxMTUsMzIsMTE3LDExMiwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsOTcsCisgICAgMTE0LDEwMSwxMTAsMTE2LDM5LDExNSwxMCwzMiwzMiwzMiwzMiw5NSw5NSwxMTIsOTcsMTE2LAorICAgIDEwNCw5NSw5NSw0NiwzMiwzMiw4NywxMDQsMTAxLDExMCwzMiwxMTYsMTA0LDEwNSwxMTUsMzIsCisgICAgOTksMTA0LDk3LDExMCwxMDMsMTAxLDExNSw0NCwzMiwxMTYsMTA0LDEwMSwzMiwxMDksMTExLDEwMCwKKyAgICAxMTcsMTA4LDEwMSwzOSwxMTUsMzIsMTExLDExOSwxMTAsMzIsMTEyLDk3LDExNiwxMDQsMzIsMTA1LAorICAgIDExNSwzMiwxMTQsMTAxLDk5LDExMSwxMDksMTEyLDExNywxMTYsMTAxLDEwMCw0NCwxMCwzMiwzMiwKKyAgICAzMiwzMiwxMTcsMTE1LDEwNSwxMTAsMTAzLDMyLDExMiw5NywxMTYsMTA0LDk1LDEwMiwxMDUsMTEwLAorICAgIDEwMCwxMDEsMTE0LDQ2LDMyLDMyLDcwLDExMSwxMTQsMzIsMTE2LDExMSwxMTIsNDUsMTA4LDEwMSwKKyAgICAxMTgsMTAxLDEwOCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsNDQsMzIsMTE2LDEwNCwxMDEsCisgICAgMzIsMTEyLDk3LDExNCwxMDEsMTEwLDExNiwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzOSwxMTUsCisgICAgMzIsMTEyLDk3LDExNiwxMDQsMTAsMzIsMzIsMzIsMzIsMTA1LDExNSwzMiwxMTUsMTIxLDExNSwKKyAgICA0NiwxMTIsOTcsMTE2LDEwNCw0Niw5OSw0LDAsMCwwLDAsMCwwLDAsNCwKKyAgICAwLDAsMCwyLDAsMCwwLDY3LDAsMCwwLDExNSw1MiwwLDAsMCwKKyAgICAxMjQsMSwwLDEyNCwwLDAsOTUsMCwwLDEyNCwyLDAsMTI0LDAsMCw5NSwKKyAgICAxLDAsMTE2LDIsMCwxMjQsMCwwLDEwNiwzLDAsMTMxLDAsMCwxMzEsMSwKKyAgICAwLDEyNCwwLDAsOTUsNCwwLDEyNCwzLDAsMTI0LDAsMCw5NSw1LDAsCisgICAgMTAwLDAsMCw4Myw0MCwxLDAsMCwwLDc4LDQwLDYsMCwwLDAsMTE0LAorICAgIDE0MywwLDAsMCwyNDQsNSwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCwxMTQsMjMwLAorICAgIDAsMCwwLDI0NCwxNiwwLDAsMCw5NSwxMDMsMTAxLDExNiw5NSwxMTIsOTcsMTE0LAorICAgIDEwMSwxMTAsMTE2LDk1LDExMiw5NywxMTYsMTA0LDI0NCwxNywwLDAsMCw5NSwxMDgsOTcsCisgICAgMTE1LDExNiw5NSwxMTIsOTcsMTE0LDEwMSwxMTAsMTE2LDk1LDExMiw5NywxMTYsMTA0LDI0NCwxMiwKKyAgICAwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMDIsMTA1LDExMCwxMDAsMTAxLDExNCw0MCwKKyAgICA0LDAsMCwwLDExNCw3NywwLDAsMCwxMTQsNjYsMCwwLDAsMTE0LDM1LAorICAgIDAsMCwwLDI0NCwxMSwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwxMDIsMTA1LDExMCwKKyAgICAxMDAsMTAxLDExNCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLAorICAgIDAsMCwxMTQsNzgsMCwwLDAsMTcwLDQsMCwwLDExNSw4LDAsMCwwLAorICAgIDAsMSw5LDEsOSwxLDIxLDEsMTE3LDIzLDAsMCwwLDk1LDc4LDk3LAorICAgIDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsODAsOTcsMTE2LDEwNCw0Niw5NSw5NSwxMDUsMTEwLAorICAgIDEwNSwxMTYsOTUsOTUsOTksMSwwLDAsMCwwLDAsMCwwLDQsMCwwLAorICAgIDAsMywwLDAsMCw2NywwLDAsMCwxMTUsNTMsMCwwLDAsMTI0LDAsCisgICAgMCwxMDYsMCwwLDEwNiwxLDAsMTAwLDEsMCwxMzEsMSwwLDkyLDMsMCwKKyAgICAxMjUsMSwwLDEyNSwyLDAsMTI1LDMsMCwxMjQsMiwwLDEwMCwyLDAsMTA3LAorICAgIDIsMCwxMTQsNDMsMCwxMDAsNiwwLDgzLDEyNCwxLDAsMTAwLDUsMCwxMDIsCisgICAgMiwwLDgzLDQwLDcsMCwwLDAsMTE3LDYyLDAsMCwwLDgyLDEwMSwxMTYsCisgICAgMTE3LDExNCwxMTAsMTE1LDMyLDk3LDMyLDExNiwxMTcsMTEyLDEwOCwxMDEsMzIsMTExLDEwMiwzMiwKKyAgICA0MCwxMTIsOTcsMTE0LDEwMSwxMTAsMTE2LDQ1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQ1LDExMCwKKyAgICA5NywxMDksMTAxLDQ0LDMyLDExMiw5NywxMTQsMTAxLDExMCwxMTYsNDUsMTEyLDk3LDExNiwxMDQsCisgICAgNDUsOTcsMTE2LDExNiwxMTQsNDUsMTEwLDk3LDEwOSwxMDEsNDEsMTE0LDEwMywwLDAsMCwKKyAgICAxMTQsMzAsMCwwLDAsMTE0LDcsMCwwLDAsMTE0LDM1LDAsMCwwLDExNCwKKyAgICAxNTgsMCwwLDAsNDAsMiwwLDAsMCwxMTcsMywwLDAsMCwxMTUsMTIxLAorICAgIDExNSwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw0MCwyLDAsMCwwLDExNCwKKyAgICAxNDMsMCwwLDAsMTE0LDMyLDAsMCwwLDQwLDQsMCwwLDAsMTE0LDc3LAorICAgIDAsMCwwLDExNCw3LDEsMCwwLDI0NCwzLDAsMCwwLDEwMCwxMTEsMTE2LAorICAgIDExNCw4MiwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsCisgICAgNSwwLDAsMCwyNDQsMjMsMCwwLDAsOTUsMTAyLDEwNSwxMTAsMTAwLDk1LDExMiwKKyAgICA5NywxMTQsMTAxLDExMCwxMTYsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTEwLDk3LDEwOSwxMDEsMTE1LAorICAgIDE3Niw0LDAsMCwxMTUsOCwwLDAsMCwwLDIsMjcsMSwxMiwyLDQsCisgICAgMywxMTcsMzgsMCwwLDAsOTUsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSwKKyAgICA4MCw5NywxMTYsMTA0LDQ2LDk1LDEwMiwxMDUsMTEwLDEwMCw5NSwxMTIsOTcsMTE0LDEwMSwxMTAsCisgICAgMTE2LDk1LDExMiw5NywxMTYsMTA0LDk1LDExMCw5NywxMDksMTAxLDExNSw5OSwxLDAsMCwKKyAgICAwLDAsMCwwLDAsMywwLDAsMCwzLDAsMCwwLDY3LDAsMCwKKyAgICAwLDExNSwzOCwwLDAsMCwxMjQsMCwwLDEwNiwwLDAsMTMxLDAsMCw5MiwKKyAgICAyLDAsMTI1LDEsMCwxMjUsMiwwLDExNiwxLDAsMTE2LDIsMCwxMDYsMywKKyAgICAwLDEyNCwxLDAsMjUsMTI0LDIsMCwxMzEsMiwwLDgzLDQwLDEsMCwwLAorICAgIDAsNzgsNDAsNCwwLDAsMCwxMTQsMjAsMSwwLDAsMTE0LDYxLDAsMCwKKyAgICAwLDExNCw3LDAsMCwwLDExNCwxNDUsMCwwLDAsNDAsMywwLDAsMCwKKyAgICAxMTQsNzcsMCwwLDAsMTE2LDE4LDAsMCwwLDExMiw5NywxMTQsMTAxLDExMCwxMTYsCisgICAgOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsMTEwLDk3LDEwOSwxMDEsMTE2LDE0LDAsMCwKKyAgICAwLDExMiw5NywxMTYsMTA0LDk1LDk3LDExNiwxMTYsMTE0LDk1LDExMCw5NywxMDksMTAxLDExNCwKKyAgICA0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDExNCwxNSwKKyAgICAxLDAsMCwxODYsNCwwLDAsMTE1LDQsMCwwLDAsMCwxLDE4LDEsCisgICAgMTE3LDMxLDAsMCwwLDk1LDc4LDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsODAsCisgICAgOTcsMTE2LDEwNCw0Niw5NSwxMDMsMTAxLDExNiw5NSwxMTIsOTcsMTE0LDEwMSwxMTAsMTE2LDk1LAorICAgIDExMiw5NywxMTYsMTA0LDk5LDEsMCwwLDAsMCwwLDAsMCw0LDAsMCwKKyAgICAwLDMsMCwwLDAsNjcsMCwwLDAsMTE1LDEwMywwLDAsMCwxMTYsMCwKKyAgICAwLDEyNCwwLDAsMTA2LDEsMCwxMzEsMCwwLDEzMSwxLDAsMTI1LDEsMCwKKyAgICAxMjQsMSwwLDEyNCwwLDAsMTA2LDIsMCwxMDcsMywwLDExNCw5NiwwLDEyNCwKKyAgICAwLDAsMTA2LDMsMCwxMjQsMCwwLDEwNiw0LDAsMTI0LDEsMCwxMzEsMiwKKyAgICAwLDkyLDIsMCwxMjUsMiwwLDEyNSwzLDAsMTI0LDIsMCwxMDAsMCwwLAorICAgIDEwNyw4LDAsMTE0LDg0LDAsMTI0LDMsMCwxMjQsMCwwLDk1LDUsMCwxMTAsCisgICAgMCwwLDEyNCwxLDAsMTI0LDAsMCw5NSwyLDAsMTEwLDAsMCwxMjQsMCwKKyAgICAwLDEwNiw1LDAsODMsNDAsMSwwLDAsMCw3OCw0MCw2LDAsMCwwLAorICAgIDExNCwyMzAsMCwwLDAsMTE0LDE1LDEsMCwwLDExNCwxNiwxLDAsMCwxMTQsCisgICAgMTcsMSwwLDAsMTE0LDE0MywwLDAsMCwxMTQsMTQsMSwwLDAsNDAsNCwKKyAgICAwLDAsMCwxMTQsNzcsMCwwLDAsMTE2LDExLDAsMCwwLDExMiw5NywxMTQsCisgICAgMTAxLDExMCwxMTYsOTUsMTEyLDk3LDExNiwxMDQsMTE0LDE1OSwwLDAsMCwxMTYsOCwwLAorICAgIDAsMCwxMTAsMTAxLDExOSw5NSwxMTIsOTcsMTE2LDEwNCwxMTQsNCwwLDAsMCwxMTQsCisgICAgNCwwLDAsMCwxMTQsNSwwLDAsMCwyNDQsMTIsMCwwLDAsOTUsMTE0LAorICAgIDEwMSw5OSw5NywxMDgsOTksMTE3LDEwOCw5NywxMTYsMTAxLDE5MCw0LDAsMCwxMTUsMTQsCisgICAgMCwwLDAsMCwyLDE4LDEsMTUsMSwyNywzLDEyLDEsMTIsMSwxMiwKKyAgICAxLDExNywyNywwLDAsMCw5NSw3OCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLAorICAgIDgwLDk3LDExNiwxMDQsNDYsOTUsMTE0LDEwMSw5OSw5NywxMDgsOTksMTE3LDEwOCw5NywxMTYsCisgICAgMTAxLDk5LDEsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDIsMCwKKyAgICAwLDAsNjcsMCwwLDAsMTE1LDE2LDAsMCwwLDExNiwwLDAsMTI0LDAsCisgICAgMCwxMDYsMSwwLDEzMSwwLDAsMTMxLDEsMCw4Myw0MCwxLDAsMCwwLAorICAgIDc4LDQwLDIsMCwwLDAsMjQ0LDQsMCwwLDAsMTA1LDExNiwxMDEsMTE0LDExNCwKKyAgICAyMSwxLDAsMCw0MCwxLDAsMCwwLDExNCw3NywwLDAsMCwxMTQsNCwKKyAgICAwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwyNDQsOCwwLAorICAgIDAsMCw5NSw5NSwxMDUsMTE2LDEwMSwxMTQsOTUsOTUsMjAyLDQsMCwwLDExNSwyLAorICAgIDAsMCwwLDAsMSwxMTcsMjMsMCwwLDAsOTUsNzgsOTcsMTA5LDEwMSwxMTUsCisgICAgMTEyLDk3LDk5LDEwMSw4MCw5NywxMTYsMTA0LDQ2LDk1LDk1LDEwNSwxMTYsMTAxLDExNCw5NSwKKyAgICA5NSw5OSwxLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwyLDAsCisgICAgMCwwLDY3LDAsMCwwLDExNSwxNiwwLDAsMCwxMTYsMCwwLDEyNCwwLAorICAgIDAsMTA2LDEsMCwxMzEsMCwwLDEzMSwxLDAsODMsNDAsMSwwLDAsMCwKKyAgICA3OCw0MCwyLDAsMCwwLDExNCwzMSwwLDAsMCwxMTQsMjEsMSwwLDAsCisgICAgNDAsMSwwLDAsMCwxMTQsNzcsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LAorICAgIDQsMCwwLDAsMTE0LDUsMCwwLDAsMjQ0LDcsMCwwLDAsOTUsOTUsCisgICAgMTA4LDEwMSwxMTAsOTUsOTUsMjA1LDQsMCwwLDExNSwyLDAsMCwwLDAsMSwKKyAgICAxMTcsMjIsMCwwLDAsOTUsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw4MCwKKyAgICA5NywxMTYsMTA0LDQ2LDk1LDk1LDEwOCwxMDEsMTEwLDk1LDk1LDk5LDEsMCwwLDAsCisgICAgMCwwLDAsMCwxLDAsMCwwLDIsMCwwLDAsNjcsMCwwLDAsCisgICAgMTE1LDE2LDAsMCwwLDEwMCwxLDAsMTA2LDAsMCwxMjQsMCwwLDEwNiwxLAorICAgIDAsMTMxLDEsMCw4Myw0MCwyLDAsMCwwLDc4LDExNywyMCwwLDAsMCwKKyAgICA5NSw3OCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDgwLDk3LDExNiwxMDQsNDAsMTIzLAorICAgIDMzLDExNCwxMjUsNDEsNDAsMiwwLDAsMCwxMTQsNDYsMCwwLDAsMTE0LDE0LAorICAgIDEsMCwwLDQwLDEsMCwwLDAsMTE0LDc3LDAsMCwwLDExNCw0LDAsCisgICAgMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDExNCw4OSwwLDAsCisgICAgMCwyMDgsNCwwLDAsMTE1LDIsMCwwLDAsMCwxLDExNywyMywwLDAsCiAgICAgMCw5NSw3OCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDgwLDk3LDExNiwxMDQsNDYsCi0gICAgOTUsMTE0LDEwMSw5OSw5NywxMDgsOTksMTE3LDEwOCw5NywxMTYsMTAxLDk5LDEsMCwwLAotICAgIDAsMCwwLDAsMCwxLDAsMCwwLDIsMCwwLDAsNjcsMCwwLAotICAgIDAsMTE1LDE2LDAsMCwwLDExNiwwLDAsMTI0LDAsMCwxMDYsMSwwLDEzMSwKLSAgICAwLDAsMTMxLDEsMCw4Myw0MCwxLDAsMCwwLDc4LDQwLDIsMCwwLAotICAgIDAsMTE3LDQsMCwwLDAsMTA1LDExNiwxMDEsMTE0LDExNywxMiwwLDAsMCw5NSwKLSAgICAxMTQsMTAxLDk5LDk3LDEwOCw5OSwxMTcsMTA4LDk3LDExNiwxMDEsNDAsMSwwLDAsMCwKLSAgICAxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsNDAsMCwwLDAsMCw0MCwwLAotICAgIDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwKLSAgICAxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwKLSAgICAxMTYsMTE0LDk3LDExMiw2MiwxMTcsOCwwLDAsMCw5NSw5NSwxMDUsMTE2LDEwMSwxMTQsCi0gICAgOTUsOTUsMTc0LDQsMCwwLDExNSwyLDAsMCwwLDAsMSwxMTcsMjMsMCwKLSAgICAwLDAsOTUsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw4MCw5NywxMTYsMTA0LAotICAgIDQ2LDk1LDk1LDEwNSwxMTYsMTAxLDExNCw5NSw5NSw5OSwxLDAsMCwwLDAsMCwKLSAgICAwLDAsMSwwLDAsMCwyLDAsMCwwLDY3LDAsMCwwLDExNSwxNiwKLSAgICAwLDAsMCwxMTYsMCwwLDEyNCwwLDAsMTA2LDEsMCwxMzEsMCwwLDEzMSwKLSAgICAxLDAsODMsNDAsMSwwLDAsMCw3OCw0MCwyLDAsMCwwLDExNywzLAotICAgIDAsMCwwLDEwOCwxMDEsMTEwLDExNywxMiwwLDAsMCw5NSwxMTQsMTAxLDk5LDk3LAotICAgIDEwOCw5OSwxMTcsMTA4LDk3LDExNiwxMDEsNDAsMSwwLDAsMCwxMTcsNCwwLDAsCi0gICAgMCwxMTUsMTAxLDEwOCwxMDIsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywKLSAgICAyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsCi0gICAgMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiwKLSAgICA2MiwxMTcsNywwLDAsMCw5NSw5NSwxMDgsMTAxLDExMCw5NSw5NSwxNzcsNCwwLAotICAgIDAsMTE1LDIsMCwwLDAsMCwxLDExNywyMiwwLDAsMCw5NSw3OCw5NywKLSAgICAxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDgwLDk3LDExNiwxMDQsNDYsOTUsOTUsMTA4LDEwMSwKLSAgICAxMTAsOTUsOTUsOTksMSwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsCi0gICAgMiwwLDAsMCw2NywwLDAsMCwxMTUsMTYsMCwwLDAsMTAwLDEsMCwKLSAgICAxMDYsMCwwLDEyNCwwLDAsMTA2LDEsMCwxMzEsMSwwLDgzLDQwLDIsMCwKLSAgICAwLDAsNzgsMTE3LDIwLDAsMCwwLDk1LDc4LDk3LDEwOSwxMDEsMTE1LDExMiw5NywKLSAgICA5OSwxMDEsODAsOTcsMTE2LDEwNCw0MCwxMjMsMzMsMTE0LDEyNSw0MSw0MCwyLDAsMCwKLSAgICAwLDExNyw2LDAsMCwwLDEwMiwxMTEsMTE0LDEwOSw5NywxMTYsMTE3LDUsMCwwLAotICAgIDAsOTUsMTEyLDk3LDExNiwxMDQsNDAsMSwwLDAsMCwxMTcsNCwwLDAsMCwKLSAgICAxMTUsMTAxLDEwOCwxMDIsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwKLSAgICAwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LAotICAgIDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwKLSAgICAxMTcsOCwwLDAsMCw5NSw5NSwxMTQsMTAxLDExMiwxMTQsOTUsOTUsMTgwLDQsMCwKLSAgICAwLDExNSwyLDAsMCwwLDAsMSwxMTcsMjMsMCwwLDAsOTUsNzgsOTcsCi0gICAgMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw4MCw5NywxMTYsMTA0LDQ2LDk1LDk1LDExNCwxMDEsCi0gICAgMTEyLDExNCw5NSw5NSw5OSwyLDAsMCwwLDAsMCwwLDAsMiwwLDAsCi0gICAgMCwyLDAsMCwwLDY3LDAsMCwwLDExNSwxNiwwLDAsMCwxMjQsMSwKLSAgICAwLDEyNCwwLDAsMTA2LDAsMCwxMzEsMCwwLDEwNyw2LDAsODMsNDAsMSwKLSAgICAwLDAsMCw3OCw0MCwxLDAsMCwwLDExNywxMiwwLDAsMCw5NSwxMTQsCi0gICAgMTAxLDk5LDk3LDEwOCw5OSwxMTcsMTA4LDk3LDExNiwxMDEsNDAsMiwwLDAsMCwxMTcsCi0gICAgNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDQsMCwwLDAsMTA1LDExNiwxMDEsCi0gICAgMTA5LDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsCi0gICAgNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSwKLSAgICA5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEyLDAsCi0gICAgMCwwLDk1LDk1LDk5LDExMSwxMTAsMTE2LDk3LDEwNSwxMTAsMTE1LDk1LDk1LDE4Myw0LAotICAgIDAsMCwxMTUsMiwwLDAsMCwwLDEsMTE3LDI3LDAsMCwwLDk1LDc4LAotICAgIDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsODAsOTcsMTE2LDEwNCw0Niw5NSw5NSw5OSwKLSAgICAxMTEsMTEwLDExNiw5NywxMDUsMTEwLDExNSw5NSw5NSw5OSwyLDAsMCwwLDAsMCwKLSAgICAwLDAsMiwwLDAsMCwyLDAsMCwwLDY3LDAsMCwwLDExNSwyMCwKLSAgICAwLDAsMCwxMjQsMCwwLDEwNiwwLDAsMTA2LDEsMCwxMjQsMSwwLDEzMSwKLSAgICAxLDAsMSwxMDAsMCwwLDgzLDQwLDEsMCwwLDAsNzgsNDAsMiwwLAotICAgIDAsMCwxMTcsNSwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCwxMTcsNiwwLDAsCi0gICAgMCw5NywxMTIsMTEyLDEwMSwxMTAsMTAwLDQwLDIsMCwwLDAsMTE3LDQsMCwwLAotICAgIDAsMTE1LDEwMSwxMDgsMTAyLDExNyw0LDAsMCwwLDEwNSwxMTYsMTAxLDEwOSw0MCwwLAotICAgIDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsCi0gICAgMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsCi0gICAgOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw2LDAsMCwwLDk3LAotICAgIDExMiwxMTIsMTAxLDExMCwxMDAsMTg2LDQsMCwwLDExNSwyLDAsMCwwLDAsMSwKLSAgICAxMTcsMjEsMCwwLDAsOTUsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw4MCwKLSAgICA5NywxMTYsMTA0LDQ2LDk3LDExMiwxMTIsMTAxLDExMCwxMDAsNzgsNDAsMTMsMCwwLDAsCi0gICAgMTE3LDgsMCwwLDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsCi0gICAgMCwwLDk1LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDk1LDExNywxMiwwLDAsCi0gICAgMCw5NSw5NSwxMTMsMTE3LDk3LDEwOCwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsNywwLAotICAgIDAsMCw5NSw5NSwxMDAsMTExLDk5LDk1LDk1LDExNyw4LDAsMCwwLDk1LDk1LAotICAgIDEwNSwxMTAsMTA1LDExNiw5NSw5NSwxMTcsMjMsMCwwLDAsOTUsMTAyLDEwNSwxMTAsMTAwLAotICAgIDk1LDExMiw5NywxMTQsMTAxLDExMCwxMTYsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTEwLDk3LDEwOSwKLSAgICAxMDEsMTE1LDExNywxNiwwLDAsMCw5NSwxMDMsMTAxLDExNiw5NSwxMTIsOTcsMTE0LDEwMSwKLSAgICAxMTAsMTE2LDk1LDExMiw5NywxMTYsMTA0LDExNywxMiwwLDAsMCw5NSwxMTQsMTAxLDk5LAotICAgIDk3LDEwOCw5OSwxMTcsMTA4LDk3LDExNiwxMDEsMTE3LDgsMCwwLDAsOTUsOTUsMTA1LAotICAgIDExNiwxMDEsMTE0LDk1LDk1LDExNyw3LDAsMCwwLDk1LDk1LDEwOCwxMDEsMTEwLDk1LAotICAgIDk1LDExNyw4LDAsMCwwLDk1LDk1LDExNCwxMDEsMTEyLDExNCw5NSw5NSwxMTcsMTIsCi0gICAgMCwwLDAsOTUsOTUsOTksMTExLDExMCwxMTYsOTcsMTA1LDExMCwxMTUsOTUsOTUsMTE3LAotICAgIDYsMCwwLDAsOTcsMTEyLDExMiwxMDEsMTEwLDEwMCw0MCwxLDAsMCwwLDExNywKLSAgICAxMCwwLDAsMCw5NSw5NSwxMDgsMTExLDk5LDk3LDEwOCwxMTUsOTUsOTUsNDAsMCwKLSAgICAwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LAotICAgIDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LAotICAgIDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTQsMCwwLDAsOTUsCi0gICAgNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw4MCw5NywxMTYsMTA0LDEzNSw0LDAsCi0gICAgMCwxMTUsMjAsMCwwLDAsMTYsNSw2LDIsMTIsNiwxMiwxMCwxMiw0LAotICAgIDEyLDEyLDEyLDMsMTIsMywxMiwzLDEyLDMsMTE3LDE0LDAsMCwwLDk1LAotICAgIDc4LDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsODAsOTcsMTE2LDEwNCw5OSwxLDAsCi0gICAgMCwwLDAsMCwwLDAsMSwwLDAsMCwzLDAsMCwwLDY2LDAsCi0gICAgMCwwLDExNSw2OCwwLDAsMCwxMjQsMCwwLDY5LDEwMSwwLDAsOTAsMSwKLSAgICAwLDEwMCwwLDAsOTAsMiwwLDEwMCwxLDAsMTAwLDIsMCwxMzIsMCwwLAotICAgIDkwLDMsMCwxMDEsNCwwLDEwMCwzLDAsMTAwLDQsMCwxMzIsMCwwLDEzMSwKLSAgICAxLDAsOTAsNSwwLDEwMSw2LDAsMTAwLDUsMCwxMDAsNiwwLDEzMiwwLAotICAgIDAsMTMxLDEsMCw5MCw3LDAsMTAwLDcsMCw4Myw0MCw4LDAsMCwwLAotICAgIDExNywxNSwwLDAsMCw3OCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDc2LDExMSwKLSAgICA5NywxMDAsMTAxLDExNCw5OSw0LDAsMCwwLDAsMCwwLDAsNCwwLDAsCi0gICAgMCw0LDAsMCwwLDY3LDAsMCwwLDExNSwyNSwwLDAsMCwxMTYsMCwKLSAgICAwLDEyNCwxLDAsMTI0LDIsMCwxMjQsMywwLDEzMSwzLDAsMTI0LDAsMCwKLSAgICA5NSwxLDAsMTAwLDAsMCw4Myw0MCwxLDAsMCwwLDc4LDQwLDIsMCwKLSAgICAwLDAsMTE3LDE0LDAsMCwwLDk1LDc4LDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwKLSAgICAxMDEsODAsOTcsMTE2LDEwNCwxMTcsNSwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw0MCwKLSAgICA0LDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsNCwwLAotICAgIDAsMCwxMTAsOTcsMTA5LDEwMSwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwxMTcsCi0gICAgMTEsMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTAyLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDAsCi0gICAgMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsCi0gICAgMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LAotICAgIDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsOCwwLDAsMCwKLSAgICA5NSw5NSwxMDUsMTEwLDEwNSwxMTYsOTUsOTUsMTkxLDQsMCwwLDExNSwyLDAsMCwKLSAgICAwLDAsMSwxMTcsMjQsMCwwLDAsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LAotICAgIDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsOTUsOTUsMTA1LDExMCwxMDUsMTE2LDk1LDk1LAorICAgIDk1LDk1LDExNCwxMDEsMTEyLDExNCw5NSw5NSw5OSwyLDAsMCwwLDAsMCwwLAorICAgIDAsMiwwLDAsMCwyLDAsMCwwLDY3LDAsMCwwLDExNSwxNiwwLAorICAgIDAsMCwxMjQsMSwwLDEyNCwwLDAsMTA2LDAsMCwxMzEsMCwwLDEwNyw2LAorICAgIDAsODMsNDAsMSwwLDAsMCw3OCw0MCwxLDAsMCwwLDExNCwyMSwxLAorICAgIDAsMCw0MCwyLDAsMCwwLDExNCw3NywwLDAsMCwyNDQsNCwwLDAsCisgICAgMCwxMDUsMTE2LDEwMSwxMDksMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LAorICAgIDUsMCwwLDAsMjQ0LDEyLDAsMCwwLDk1LDk1LDk5LDExMSwxMTAsMTE2LDk3LAorICAgIDEwNSwxMTAsMTE1LDk1LDk1LDIxMSw0LDAsMCwxMTUsMiwwLDAsMCwwLDEsCisgICAgMTE3LDI3LDAsMCwwLDk1LDc4LDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsODAsCisgICAgOTcsMTE2LDEwNCw0Niw5NSw5NSw5OSwxMTEsMTEwLDExNiw5NywxMDUsMTEwLDExNSw5NSw5NSwKICAgICA5OSwyLDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwyLDAsMCwKLSAgICAwLDY3LDAsMCwwLDExNSwxNiwwLDAsMCwxMDAsMSwwLDEwNiwwLDAsCi0gICAgMTI0LDEsMCwxMDYsMSwwLDEzMSwxLDAsODMsNDAsMiwwLDAsMCw3OCwKLSAgICAxMTcsMjUsMCwwLDAsNjAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMzksMTIzLDEyNSwKLSAgICAzOSwzMiw0MCwxMTAsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw0MSw2Miw0MCwyLAotICAgIDAsMCwwLDExNyw2LDAsMCwwLDEwMiwxMTEsMTE0LDEwOSw5NywxMTYsMTE3LDgsCi0gICAgMCwwLDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsNDAsMiwwLDAsMCwKLSAgICAxMTcsMywwLDAsMCw5OSwxMDgsMTE1LDExNyw2LDAsMCwwLDEwOSwxMTEsMTAwLAotICAgIDExNywxMDgsMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwKLSAgICAwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsCi0gICAgMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LAotICAgIDExLDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExNCwxMDEsMTEyLDExNCwxOTQsCi0gICAgNCwwLDAsMTE1LDIsMCwwLDAsMCwyLDExNywyNywwLDAsMCw3OCwKLSAgICA5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDksCi0gICAgMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMTQsMTAxLDExMiwxMTQsOTksMiwwLDAsMCwwLAotICAgIDAsMCwwLDIsMCwwLDAsMywwLDAsMCw2NywwLDAsMCwxMTUsCi0gICAgMzIsMCwwLDAsMTE2LDAsMCwxMDAsMSwwLDEyNCwwLDAsMTA2LDEsMCwKLSAgICAxMzEsMiwwLDEsMTI0LDAsMCwxMDYsMSwwLDEyNCwxLDAsOTUsMiwwLAotICAgIDEyNCwxLDAsODMsNDAsMiwwLDAsMCwxMTcsMjQsMCwwLDAsNzYsMTExLAotICAgIDk3LDEwMCwzMiw5NywzMiwxMTAsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSwzMiwxMDksCi0gICAgMTExLDEwMCwxMTcsMTA4LDEwMSw0NiwxMTcsMzgsMCwwLDAsMTEwLDk3LDEwOSwxMDEsMTE1LAotICAgIDExMiw5Nyw5OSwxMDEsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTA4LDExMSw5NywxMDAsCi0gICAgMTAxLDEwMCwzMiwxMTksMTA1LDExNiwxMDQsMzIsMTEyLDk3LDExNiwxMDQsMzIsMTIzLDMzLDExNCwKLSAgICAxMjUsNDAsMywwLDAsMCwxMTcsMTYsMCwwLDAsOTUsMTE4LDEwMSwxMTQsOTgsCi0gICAgMTExLDExNSwxMDEsOTUsMTA5LDEwMSwxMTUsMTE1LDk3LDEwMywxMDEsMTE3LDUsMCwwLDAsCi0gICAgOTUsMTEyLDk3LDExNiwxMDQsMTE3LDgsMCwwLDAsOTUsOTUsMTEyLDk3LDExNiwxMDQsCi0gICAgOTUsOTUsNDAsMiwwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsCi0gICAgMTE3LDYsMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDAsMCwwLDAsMCwKLSAgICA0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLAotICAgIDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsCi0gICAgMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTEsMCwwLDAsMTA4LDExMSw5NywxMDAsCi0gICAgOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTk4LDQsMCwwLDExNSw2LDAsMCwwLAotICAgIDAsMywxNiwxLDEyLDEsMTE3LDI3LDAsMCwwLDc4LDk3LDEwOSwxMDEsMTE1LAotICAgIDExMiw5Nyw5OSwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDEwOCwxMTEsOTcsMTAwLDk1LAotICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDc4LDQwLDgsMCwwLDAsMTE3LDgsMCwwLAotICAgIDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLDk1LDk1LAotICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDk1LDExNywxMiwwLDAsMCw5NSw5NSwxMTMsCi0gICAgMTE3LDk3LDEwOCwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsOCwwLDAsMCw5NSw5NSwKLSAgICAxMDUsMTEwLDEwNSwxMTYsOTUsOTUsMTE3LDExLDAsMCwwLDk5LDEwOCw5NywxMTUsMTE1LAotICAgIDEwOSwxMDEsMTE2LDEwNCwxMTEsMTAwLDExNywxMSwwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LAotICAgIDEwMSw5NSwxMTQsMTAxLDExMiwxMTQsMTE3LDE3LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsCi0gICAgMTAxLDk1LDEwMiwxMTEsMTE0LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LDExLDAsMCwKLSAgICAwLDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQwLDEsMCwwLAotICAgIDAsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOCwxMTEsOTksOTcsMTA4LDExNSw5NSw5NSwKLSAgICA0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLAotICAgIDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsCi0gICAgNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxNSwwLDAsCi0gICAgMCw3OCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCwKLSAgICAxOTAsNCwwLDAsMTE1LDYsMCwwLDAsMTYsMSwxMiwzLDE4LDQsMTE3LAotICAgIDE1LDAsMCwwLDc4LDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsNzYsMTExLDk3LAotICAgIDEwMCwxMDEsMTE0LDk5LDEsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLAotICAgIDQsMCwwLDAsNjYsMCwwLDAsMTE1LDExOSwwLDAsMCwxMjQsMCwwLAotICAgIDY5LDEwMSwwLDAsOTAsMSwwLDEwMCwwLDAsOTAsMiwwLDEwMCwxLDAsCi0gICAgOTAsMywwLDEwMSw0LDAsMTAwLDIsMCwxMDAsMywwLDEzMiwwLDAsMTMxLAotICAgIDEsMCw5MCw1LDAsMTAxLDQsMCwxMDAsNCwwLDEwMCw1LDAsMTMyLDAsCi0gICAgMCwxMzEsMSwwLDkwLDYsMCwxMDEsNCwwLDEwMCw2LDAsMTAwLDcsMCwKLSAgICAxMzIsMCwwLDEzMSwxLDAsOTAsNywwLDEwMSw0LDAsMTAwLDgsMCwxMDAsCi0gICAgOSwwLDEzMiwwLDAsMTMxLDEsMCw5MCw4LDAsMTAxLDQsMCwxMDAsMTIsCi0gICAgMCwxMDAsMTAsMCwxMDAsMTEsMCwxMzIsMSwwLDEzMSwxLDAsOTAsMTAsMCwKLSAgICAxMDAsMTIsMCw4Myw0MCwxMywwLDAsMCwxMTcsMTAsMCwwLDAsODAsOTcsCi0gICAgMTE2LDEwNCw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDExNyw2MiwwLDAsMCw3NywxMDEsMTE2LAotICAgIDk3LDMyLDExMiw5NywxMTYsMTA0LDMyLDEwMiwxMDUsMTEwLDEwMCwxMDEsMTE0LDMyLDEwMiwxMTEsCi0gICAgMTE0LDMyLDExNSwxMjEsMTE1LDQ2LDExMiw5NywxMTYsMTA0LDMyLDk3LDExMCwxMDAsMzIsMTEyLAotICAgIDk3LDk5LDEwNyw5NywxMDMsMTAxLDMyLDk1LDk1LDExMiw5NywxMTYsMTA0LDk1LDk1LDMyLAotICAgIDk3LDExNiwxMTYsMTE0LDEwNSw5OCwxMTcsMTE2LDEwMSwxMTUsNDYsOTksMSwwLDAsMCwKLSAgICAwLDAsMCwwLDIsMCwwLDAsNCwwLDAsMCw2NywwLDAsMCwKLSAgICAxMTUsNTgsMCwwLDAsMTIwLDUxLDAsMTE2LDAsMCwxMDYsMSwwLDEwNiwyLAotICAgIDAsMTMxLDAsMCw2OCw5MywzNCwwLDEyNSwxLDAsMTE2LDMsMCwxMjQsMSwKLSAgICAwLDEwMCwxLDAsMTMxLDIsMCwxMTQsMTYsMCwxMjQsMSwwLDEwNiw0LDAsCi0gICAgMTMxLDAsMCwxLDExMywxNiwwLDExMywxNiwwLDg3LDEwMCwyLDAsODMsNDAsCi0gICAgMywwLDAsMCwxMTcsMTI1LDAsMCwwLDY3LDk3LDEwOCwxMDgsMzIsMTE2LDEwNCwKLSAgICAxMDEsMzIsMTA1LDExMCwxMTgsOTcsMTA4LDEwNSwxMDAsOTcsMTE2LDEwMSw5NSw5OSw5Nyw5OSwKLSAgICAxMDQsMTAxLDExNSw0MCw0MSwzMiwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwzMiwxMTEsMTEwLDMyLAotICAgIDk3LDEwOCwxMDgsMzIsMTEyLDk3LDExNiwxMDQsMzIsMTAxLDExMCwxMTYsMTE0LDEyMSwzMiwxMDIsCi0gICAgMTA1LDExMCwxMDAsMTAxLDExNCwxMTUsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMTE1LAotICAgIDExNiwxMTEsMTE0LDEwMSwxMDAsMzIsMTA1LDExMCwzMiwxMTUsMTIxLDExNSw0NiwxMTIsOTcsMTE2LAotICAgIDEwNCw5NSwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDk1LDk5LDk3LDk5LDEwNCwxMDEsCi0gICAgMTE1LDMyLDQwLDExOSwxMDQsMTAxLDExNCwxMDEsMzIsMTA1LDEwOSwxMTIsMTA4LDEwMSwxMDksMTAxLAotICAgIDExMCwxMTYsMTAxLDEwMCw0MSw0NiwxMTcsMTcsMCwwLDAsMTA1LDExMCwxMTgsOTcsMTA4LAotICAgIDEwNSwxMDAsOTcsMTE2LDEwMSw5NSw5OSw5Nyw5OSwxMDQsMTAxLDExNSw3OCw0MCw1LDAsCi0gICAgMCwwLDExNywzLDAsMCwwLDExNSwxMjEsMTE1LDExNywxOSwwLDAsMCwxMTIsCi0gICAgOTcsMTE2LDEwNCw5NSwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDk1LDk5LDk3LDk5LAotICAgIDEwNCwxMDEsMTE3LDYsMCwwLDAsMTE4LDk3LDEwOCwxMTcsMTAxLDExNSwxMTcsNywwLAotICAgIDAsMCwxMDQsOTcsMTE1LDk3LDExNiwxMTYsMTE0LDExNywxNywwLDAsMCwxMDUsMTEwLAotICAgIDExOCw5NywxMDgsMTA1LDEwMCw5NywxMTYsMTAxLDk1LDk5LDk3LDk5LDEwNCwxMDEsMTE1LDQwLAotICAgIDIsMCwwLDAsMTE3LDMsMCwwLDAsOTksMTA4LDExNSwxMTcsNiwwLDAsCi0gICAgMCwxMDIsMTA1LDExMCwxMDAsMTAxLDExNCw0MCwwLDAsMCwwLDQwLDAsMCwwLAotICAgIDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksCi0gICAgMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsCi0gICAgOTcsMTEyLDYyLDExNywxNywwLDAsMCwxMDUsMTEwLDExOCw5NywxMDgsMTA1LDEwMCw5NywKLSAgICAxMTYsMTAxLDk1LDk5LDk3LDk5LDEwNCwxMDEsMTE1LDIxMiw0LDAsMCwxMTUsNiwwLAotICAgIDAsMCwwLDQsMjIsMSwxNSwxLDExNywyOCwwLDAsMCw4MCw5NywxMTYsCi0gICAgMTA0LDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsMTA1LDExMCwxMTgsOTcsMTA4LDEwNSwxMDAsOTcsCi0gICAgMTE2LDEwMSw5NSw5OSw5Nyw5OSwxMDQsMTAxLDExNSw5OSwyLDAsMCwwLDAsMCwKLSAgICAwLDAsMywwLDAsMCwxMiwwLDAsMCw2NywwLDAsMCwxMTUsOTQsCi0gICAgMCwwLDAsMTE2LDAsMCwxMDYsMSwwLDExNSwyOCwwLDExNiwyLDAsMTA2LAotICAgIDMsMCwxMDAsMSwwLDExNiw0LDAsMTMxLDIsMCwxLDExMCwwLDAsMTIwLAotICAgIDU5LDAsMTE2LDAsMCwxMDYsMSwwLDY4LDkzLDQ0LDAsMTI1LDIsMCwxMjEsCi0gICAgMTQsMCwxMjQsMiwwLDEyNCwxLDAsMTMxLDEsMCw4Myw4NywxMTMsMzgsMCwKLSAgICA0LDExNiw1LDAsMTA3LDEwLDAsMTE0LDgxLDAsMSwxLDEsMTE5LDM4LDAsCi0gICAgODksMTEzLDM4LDAsODgsMTEzLDM4LDAsODcsMTAwLDIsMCw4MywxMDAsMiwwLAotICAgIDgzLDQwLDMsMCwwLDAsMTE3LDExMywwLDAsMCw4MywxMDEsOTcsMTE0LDk5LAotICAgIDEwNCwzMiwxMTUsMTAxLDExMywxMTcsMTAxLDExMCw5OSwxMDEsMzIsMTExLDEwMiwzMiwxMDQsMTExLAotICAgIDExMSwxMDcsMTE1LDMyLDEwMiwxMTEsMTE0LDMyLDk3LDMyLDEwMiwxMDUsMTEwLDEwMCwxMDEsMTE0LAotICAgIDMyLDEwMiwxMTEsMTE0LDMyLDM5LDExMiw5NywxMTYsMTA0LDM5LDQ2LDEwLDEwLDMyLDMyLAotICAgIDMyLDMyLDMyLDMyLDMyLDMyLDczLDEwMiwzMiwzOSwxMDQsMTExLDExMSwxMDcsMTE1LDM5LAotICAgIDMyLDEwNSwxMTUsMzIsMTAyLDk3LDEwOCwxMTUsMTAxLDMyLDExNiwxMDQsMTAxLDExMCwzMiwxMTcsCi0gICAgMTE1LDEwMSwzMiwxMTUsMTIxLDExNSw0NiwxMTIsOTcsMTE2LDEwNCw5NSwxMDQsMTExLDExMSwxMDcsCi0gICAgMTE1LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDExNywyMywwLDAsCi0gICAgMCwxMTUsMTIxLDExNSw0NiwxMTIsOTcsMTE2LDEwNCw5NSwxMDQsMTExLDExMSwxMDcsMTE1LDMyLAotICAgIDEwNSwxMTUsMzIsMTAxLDEwOSwxMTIsMTE2LDEyMSw3OCw0MCw3LDAsMCwwLDExNywzLAotICAgIDAsMCwwLDExNSwxMjEsMTE1LDExNywxMCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwKLSAgICAxMDQsMTExLDExMSwxMDcsMTE1LDExNyw5LDAsMCwwLDk1LDExOSw5NywxMTQsMTEwLDEwNSwKLSAgICAxMTAsMTAzLDExNSwxMTcsNCwwLDAsMCwxMTksOTcsMTE0LDExMCwxMTcsMTMsMCwwLAotICAgIDAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw4Nyw5NywxMTQsMTEwLDEwNSwxMTAsMTAzLDExNywxMSwKLSAgICAwLDAsMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDY5LDExNCwxMTQsMTExLDExNCwxMTcsNCwKLSAgICAwLDAsMCw3OCwxMTEsMTEwLDEwMSw0MCwzLDAsMCwwLDExNywzLDAsMCwKLSAgICAwLDk5LDEwOCwxMTUsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LDQsMCwKLSAgICAwLDAsMTA0LDExMSwxMTEsMTA3LDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwKLSAgICAxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsCi0gICAgMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywKLSAgICAxMTIsNjIsMTE3LDExLDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNCwxMTEsMTExLAotICAgIDEwNywxMTUsMjIwLDQsMCwwLDExNSwxNiwwLDAsMCwwLDcsOSwxLDE5LAotICAgIDEsMTYsMSwzLDEsMTQsMSwxMywxLDEyLDIsMTE3LDIyLDAsMCwwLAotICAgIDgwLDk3LDExNiwxMDQsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0Niw5NSwxMTIsOTcsMTE2LDEwNCwKLSAgICA5NSwxMDQsMTExLDExMSwxMDcsMTE1LDk5LDIsMCwwLDAsMCwwLDAsMCwzLAotICAgIDAsMCwwLDExLDAsMCwwLDY3LDAsMCwwLDExNSw5MSwwLDAsMCwKLSAgICAxMjQsMSwwLDEwMCwxLDAsMTA3LDIsMCwxMTQsMjEsMCwxMDAsMiwwLDEyNSwKLSAgICAxLDAsMTEwLDAsMCwxMjEsMTcsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LDEsCi0gICAgMCwyNSwxMjUsMiwwLDg3LDExMCw0NiwwLDQsMTE2LDIsMCwxMDcsMTAsMCwKLSAgICAxMTQsODYsMCwxLDEsMSwxMjQsMCwwLDEwNiwzLDAsMTI0LDEsMCwxMzEsCi0gICAgMSwwLDEyNSwyLDAsMTI0LDIsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LDEsCi0gICAgMCw2MCw4OSwxMTAsMSwwLDg4LDEyNCwyLDAsODMsNDAsMywwLDAsMCwKLSAgICAxMTcsMjEwLDAsMCwwLDcxLDEwMSwxMTYsMzIsMTE2LDEwNCwxMDEsMzIsMTAyLDEwNSwxMTAsCi0gICAgMTAwLDEwMSwxMTQsMzIsMTAyLDExMSwxMTQsMzIsMTE2LDEwNCwxMDEsMzIsMTEyLDk3LDExNiwxMDQsCi0gICAgMzIsMTAxLDExMCwxMTYsMTE0LDEyMSwzMiwxMDIsMTE0LDExMSwxMDksMzIsMTE1LDEyMSwxMTUsNDYsCisgICAgMCw2NywwLDAsMCwxMTUsMjAsMCwwLDAsMTI0LDAsMCwxMDYsMCwwLAorICAgIDEwNiwxLDAsMTI0LDEsMCwxMzEsMSwwLDEsMTAwLDAsMCw4Myw0MCwxLAorICAgIDAsMCwwLDc4LDQwLDIsMCwwLDAsMTE0LDE0LDEsMCwwLDExNCwxNjQsCisgICAgMCwwLDAsNDAsMiwwLDAsMCwxMTQsNzcsMCwwLDAsMTE0LDI1LDEsCisgICAgMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwKKyAgICAwLDExNCwxNjQsMCwwLDAsMjE0LDQsMCwwLDExNSwyLDAsMCwwLDAsCisgICAgMSwxMTcsMjEsMCwwLDAsOTUsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSwKKyAgICA4MCw5NywxMTYsMTA0LDQ2LDk3LDExMiwxMTIsMTAxLDExMCwxMDAsNzgsNDAsMTMsMCwwLAorICAgIDAsMTE0LDU2LDAsMCwwLDExNCw1NSwwLDAsMCwxMTQsNTcsMCwwLDAsCisgICAgMTE0LDU4LDAsMCwwLDExNCw3OCwwLDAsMCwxMTQsMjAsMSwwLDAsMTE0LAorICAgIDE1LDEsMCwwLDExNCwyMSwxLDAsMCwxMTQsMjMsMSwwLDAsMTE0LDI0LAorICAgIDEsMCwwLDExNCw4OSwwLDAsMCwxMTQsMjYsMSwwLDAsMTE0LDE2NCwwLAorICAgIDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsCisgICAgMCwxMTQsNSwwLDAsMCwxMTQsMTMsMSwwLDAsMTYzLDQsMCwwLDExNSwKKyAgICAyMCwwLDAsMCwxMiw1LDYsMiwxMiw2LDEyLDEwLDEyLDQsMTIsMTIsCisgICAgMTIsMywxMiwzLDEyLDMsMTIsMywxMTQsMTMsMSwwLDAsOTksMCwwLAorICAgIDAsMCwwLDAsMCwwLDAsMCwwLDAsMywwLDAsMCw2NCwwLAorICAgIDAsMCwxMTUsNTgsMCwwLDAsMTAxLDAsMCw5MCwxLDAsMTAwLDAsMCwKKyAgICA5MCwyLDAsMTAwLDEsMCwxMDAsMiwwLDEzMiwwLDAsOTAsMywwLDEwMSwKKyAgICA0LDAsMTAwLDMsMCwxMDAsNCwwLDEzMiwwLDAsMTMxLDEsMCw5MCw1LAorICAgIDAsMTAwLDUsMCwxMDAsNiwwLDEzMiwwLDAsOTAsNiwwLDEwMCw3LDAsCisgICAgODMsNDAsOCwwLDAsMCwyNDQsMTUsMCwwLDAsNzgsOTcsMTA5LDEwMSwxMTUsCisgICAgMTEyLDk3LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsOTksNCwwLDAsMCwwLAorICAgIDAsMCwwLDQsMCwwLDAsNCwwLDAsMCw2NywwLDAsMCwxMTUsCisgICAgMjUsMCwwLDAsMTE2LDAsMCwxMjQsMSwwLDEyNCwyLDAsMTI0LDMsMCwKKyAgICAxMzEsMywwLDEyNCwwLDAsOTUsMSwwLDEwMCwwLDAsODMsNDAsMSwwLAorICAgIDAsMCw3OCw0MCwyLDAsMCwwLDExNCwxMywxLDAsMCwxMTQsMTQsMSwKKyAgICAwLDAsNDAsNCwwLDAsMCwxMTQsNzcsMCwwLDAsMTE0LDY2LDAsMCwKKyAgICAwLDExNCwzNSwwLDAsMCwxMTQsMTgsMSwwLDAsMTE0LDQsMCwwLDAsCisgICAgMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMTE0LDc4LDAsMCwwLDIxOSwKKyAgICA0LDAsMCwxMTUsMiwwLDAsMCwwLDEsMTE3LDI0LDAsMCwwLDc4LAorICAgIDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDk1LAorICAgIDk1LDEwNSwxMTAsMTA1LDExNiw5NSw5NSw5OSwyLDAsMCwwLDAsMCwwLDAsCisgICAgMiwwLDAsMCwyLDAsMCwwLDY3LDAsMCwwLDExNSwxNiwwLDAsCisgICAgMCwxMDAsMSwwLDEwNiwwLDAsMTI0LDEsMCwxMDYsMSwwLDEzMSwxLDAsCisgICAgODMsNDAsMiwwLDAsMCw3OCwxMTcsMjUsMCwwLDAsNjAsMTA5LDExMSwxMDAsCisgICAgMTE3LDEwOCwxMDEsMzIsMzksMTIzLDEyNSwzOSwzMiw0MCwxMTAsOTcsMTA5LDEwMSwxMTUsMTEyLAorICAgIDk3LDk5LDEwMSw0MSw2Miw0MCwyLDAsMCwwLDExNCw0NiwwLDAsMCwxMTQsCisgICAgNTYsMCwwLDAsNDAsMiwwLDAsMCwxMTQsMjA4LDAsMCwwLDExNCwxNjAsCisgICAgMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwKKyAgICAwLDAsMTE0LDIwOSwwLDAsMCwyMjIsNCwwLDAsMTE1LDIsMCwwLDAsCisgICAgMCwyLDExNywyNywwLDAsMCw3OCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLAorICAgIDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMTQsMTAxLAorICAgIDExMiwxMTQsOTksMiwwLDAsMCwwLDAsMCwwLDMsMCwwLDAsOSwKKyAgICAwLDAsMCw2NywwLDAsMCwxMTUsNjYsMCwwLDAsMTE2LDAsMCwxMDAsCisgICAgMSwwLDEyNCwwLDAsMTA2LDEsMCwxMzEsMiwwLDEsMTE2LDIsMCwxMjQsCisgICAgMSwwLDEzMSwxLDAsMTQzLDMyLDAsMTI1LDIsMCwxMjQsMCwwLDEwNiwxLAorICAgIDAsMTI0LDIsMCw5NSwzLDAsMTI0LDEsMCwxMjQsMiwwLDk1LDQsMCwKKyAgICAxMjQsMiwwLDgzLDg3LDEwMCwyLDAsODEsODgsMTAwLDIsMCw4Myw0MCwzLAorICAgIDAsMCwwLDExNywyNCwwLDAsMCw3NiwxMTEsOTcsMTAwLDMyLDk3LDMyLDExMCwKKyAgICA5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQ2LAorICAgIDExNywzOCwwLDAsMCwxMTAsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSwzMiwxMDksCisgICAgMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTAwLDMyLDExOSwxMDUsMTE2LAorICAgIDEwNCwzMiwxMTIsOTcsMTE2LDEwNCwzMiwxMjMsMzMsMTE0LDEyNSw3OCw0MCw1LDAsMCwKKyAgICAwLDExNCwxNDAsMCwwLDAsMTE0LDE0LDEsMCwwLDExNCwxNTQsMCwwLDAsCisgICAgMTE0LDE1OCwwLDAsMCwxMTQsMTU3LDAsMCwwLDQwLDMsMCwwLDAsMTE0LAorICAgIDc3LDAsMCwwLDExNCwxNzcsMCwwLDAsMTE0LDE2MCwwLDAsMCwxMTQsNCwKKyAgICAwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwxMTQsMjEyLDAsCisgICAgMCwwLDIyNiw0LDAsMCwxMTUsMTAsMCwwLDAsMCwyLDE2LDEsMTUsCisgICAgMSwxMiwxLDksMSwxMTcsMjcsMCwwLDAsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLAorICAgIDk3LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsMTA4LDExMSw5NywxMDAsOTUsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsNzgsNDAsNywwLDAsMCwxMTQsNTYsMCwwLDAsCisgICAgMTE0LDU1LDAsMCwwLDExNCw1NywwLDAsMCwxMTQsNzgsMCwwLDAsMTE0LAorICAgIDIxNSwwLDAsMCwxMTQsMjA5LDAsMCwwLDExNCwyMTIsMCwwLDAsMTE0LDQsCisgICAgMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwKKyAgICAwLDAsMTE0LDI3LDEsMCwwLDIxOCw0LDAsMCwxMTUsNiwwLDAsMCwKKyAgICAxMiwxLDEyLDMsMTgsNCwxMTQsMjcsMSwwLDAsOTksMCwwLDAsMCwKKyAgICAwLDAsMCwwLDAsMCwwLDAsNCwwLDAsMCw2NCwwLDAsMCwKKyAgICAxMTUsMTE1LDAsMCwwLDEwMSwwLDAsOTAsMSwwLDEwMCwwLDAsOTAsMiwKKyAgICAwLDEwMCwxLDAsOTAsMywwLDEwMSw0LDAsMTAwLDIsMCwxMDAsMywwLAorICAgIDEzMiwwLDAsMTMxLDEsMCw5MCw1LDAsMTAxLDQsMCwxMDAsNCwwLDEwMCwKKyAgICA1LDAsMTMyLDAsMCwxMzEsMSwwLDkwLDYsMCwxMDEsNCwwLDEwMCw2LAorICAgIDAsMTAwLDcsMCwxMzIsMCwwLDEzMSwxLDAsOTAsNywwLDEwMSw0LDAsCisgICAgMTAwLDgsMCwxMDAsOSwwLDEzMiwwLDAsMTMxLDEsMCw5MCw4LDAsMTAxLAorICAgIDQsMCwxMDAsMTAsMCwxMDAsMTEsMCwxMDAsMTIsMCwxMzIsMSwwLDEzMSwxLAorICAgIDAsOTAsOSwwLDEwMCwxMCwwLDgzLDQwLDEzLDAsMCwwLDI0NCwxMCwwLAorICAgIDAsMCw4MCw5NywxMTYsMTA0LDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsMTE3LDYyLDAsMCwKKyAgICAwLDc3LDEwMSwxMTYsOTcsMzIsMTEyLDk3LDExNiwxMDQsMzIsMTAyLDEwNSwxMTAsMTAwLDEwMSwKKyAgICAxMTQsMzIsMTAyLDExMSwxMTQsMzIsMTE1LDEyMSwxMTUsNDYsMTEyLDk3LDExNiwxMDQsMzIsOTcsCisgICAgMTEwLDEwMCwzMiwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMzIsOTUsOTUsMTEyLDk3LDExNiwKKyAgICAxMDQsOTUsOTUsMzIsOTcsMTE2LDExNiwxMTQsMTA1LDk4LDExNywxMTYsMTAxLDExNSw0Niw5OSwKKyAgICAxLDAsMCwwLDAsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLAorICAgIDY3LDAsMCwwLDExNSw1OCwwLDAsMCwxMjAsNTEsMCwxMTYsMCwwLDEwNiwKKyAgICAxLDAsMTA2LDIsMCwxMzEsMCwwLDY4LDkzLDM0LDAsMTI1LDEsMCwxMTYsCisgICAgMywwLDEyNCwxLDAsMTAwLDEsMCwxMzEsMiwwLDExNCwxNiwwLDEyNCwxLAorICAgIDAsMTA2LDQsMCwxMzEsMCwwLDEsMTEzLDE2LDAsMTEzLDE2LDAsODcsMTAwLAorICAgIDIsMCw4Myw0MCwzLDAsMCwwLDExNywxMjUsMCwwLDAsNjcsOTcsMTA4LAorICAgIDEwOCwzMiwxMTYsMTA0LDEwMSwzMiwxMDUsMTEwLDExOCw5NywxMDgsMTA1LDEwMCw5NywxMTYsMTAxLAorICAgIDk1LDk5LDk3LDk5LDEwNCwxMDEsMTE1LDQwLDQxLDMyLDEwOSwxMDEsMTE2LDEwNCwxMTEsMTAwLAorICAgIDMyLDExMSwxMTAsMzIsOTcsMTA4LDEwOCwzMiwxMTIsOTcsMTE2LDEwNCwzMiwxMDEsMTEwLDExNiwKKyAgICAxMTQsMTIxLDMyLDEwMiwxMDUsMTEwLDEwMCwxMDEsMTE0LDExNSwxMCwzMiwzMiwzMiwzMiwzMiwKKyAgICAzMiwzMiwzMiwxMTUsMTE2LDExMSwxMTQsMTAxLDEwMCwzMiwxMDUsMTEwLDMyLDExNSwxMjEsMTE1LAorICAgIDQ2LDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsOTUsOTksCisgICAgOTcsOTksMTA0LDEwMSwxMTUsMzIsNDAsMTE5LDEwNCwxMDEsMTE0LDEwMSwzMiwxMDUsMTA5LDExMiwKKyAgICAxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiwxMDEsMTAwLDQxLDQ2LDI0NCwxNywwLDAsMCwxMDUsCisgICAgMTEwLDExOCw5NywxMDgsMTA1LDEwMCw5NywxMTYsMTAxLDk1LDk5LDk3LDk5LDEwNCwxMDEsMTE1LAorICAgIDc4LDQwLDUsMCwwLDAsMTE0LDcsMCwwLDAsMjQ0LDE5LDAsMCwwLAogICAgIDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsOTUsOTksOTcsCi0gICAgOTksMTA0LDEwMSw0NiwxMCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw3MywxMDIsCi0gICAgMzIsMTE2LDEwNCwxMDEsMzIsMTEyLDk3LDExNiwxMDQsMzIsMTAxLDExMCwxMTYsMTE0LDEyMSwzMiwKLSAgICAxMDUsMTE1LDMyLDExMCwxMTEsMTE2LDMyLDEwNSwxMTAsMzIsMTE2LDEwNCwxMDEsMzIsOTksOTcsCi0gICAgOTksMTA0LDEwMSw0NCwzMiwxMDIsMTA1LDExMCwxMDAsMzIsMTE2LDEwNCwxMDEsMzIsOTcsMTEyLAotICAgIDExMiwxMTQsMTExLDExMiwxMTQsMTA1LDk3LDExNiwxMDEsMzIsMTAyLDEwNSwxMTAsMTAwLDEwMSwxMTQsCi0gICAgMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsOTcsMTEwLDEwMCwzMiw5OSw5Nyw5OSwKLSAgICAxMDQsMTAxLDMyLDEwNSwxMTYsNDYsMzIsNzMsMTAyLDMyLDExMCwxMTEsMzIsMTAyLDEwNSwxMTAsCi0gICAgMTAwLDEwMSwxMTQsMzIsMTA1LDExNSwzMiw5NywxMTgsOTcsMTA1LDEwOCw5Nyw5OCwxMDgsMTAxLAotICAgIDQ0LDMyLDExNSwxMTYsMTExLDExNCwxMDEsMzIsNzgsMTExLDExMCwxMDEsNDYsMTAsMTAsMzIsCi0gICAgMzIsMzIsMzIsMzIsMzIsMzIsMzIsMTE3LDAsMCwwLDAsMTE3LDEsMCwwLAotICAgIDAsNDYsNDAsNCwwLDAsMCwxMTcsMywwLDAsMCwxMTUsMTIxLDExNSwxMTcsCi0gICAgMTksMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLAotICAgIDExNCw5NSw5OSw5Nyw5OSwxMDQsMTAxLDExNyw4LDAsMCwwLDc1LDEwMSwxMjEsNjksCi0gICAgMTE0LDExNCwxMTEsMTE0LDExNywxMSwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMDQsCi0gICAgMTExLDExMSwxMDcsMTE1LDQwLDMsMCwwLDAsMTE3LDMsMCwwLDAsOTksMTA4LAotICAgIDExNSwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwxMTcsNiwwLDAsMCwxMDIsCi0gICAgMTA1LDExMCwxMDAsMTAxLDExNCw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LAotICAgIDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwKLSAgICAxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLAotICAgIDYyLDExNywyMCwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMDUsMTA5LDExMiwxMTEsCi0gICAgMTE0LDExNiwxMDEsMTE0LDk1LDk5LDk3LDk5LDEwNCwxMDEsMjM3LDQsMCwwLDExNSwxNiwKLSAgICAwLDAsMCwwLDgsMTIsMSw5LDEsMywxLDE3LDEsMTMsMSwxNSwKLSAgICAxLDE4LDEsMTE3LDMxLDAsMCwwLDgwLDk3LDExNiwxMDQsNzAsMTA1LDExMCwxMDAsCi0gICAgMTAxLDExNCw0Niw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsCi0gICAgMTE0LDk1LDk5LDk3LDk5LDEwNCwxMDEsOTksMywwLDAsMCwwLDAsMCwwLAotICAgIDgsMCwwLDAsNSwwLDAsMCw2NywwLDAsMCwxMTUsMTg5LDAsMCwKLSAgICAwLDEwMywwLDAsMTI1LDMsMCwxMjAsMTc2LDAsMTI0LDIsMCw2OCw5MywxNTgsCi0gICAgMCwxMjUsNCwwLDExNiwwLDAsMTI0LDQsMCwxMTYsMSwwLDExNiwyLDAsCi0gICAgMTAyLDIsMCwxMzEsMiwwLDExNSw0NiwwLDExMywxMywwLDExMCwwLDAsMTI0LAotICAgIDAsMCwxMDYsMywwLDEyNCw0LDAsMTMxLDEsMCwxMjUsNSwwLDEyNCw1LAotICAgIDAsMTAwLDIsMCwxMDcsOSwwLDExNCwxMywwLDExNiw1LDAsMTI0LDUsMCwKLSAgICAxMDAsMSwwLDEzMSwyLDAsMTE0LDExMiwwLDEyNCw1LDAsMTA2LDYsMCwxMjQsCi0gICAgMSwwLDEzMSwxLDAsOTIsMiwwLDEyNSw2LDAsMTI1LDcsMCwxMTAsMjEsCi0gICAgMCwxMjQsNSwwLDEwNiw3LDAsMTI0LDEsMCwxMzEsMSwwLDEyNSw2LDAsCi0gICAgMTAzLDAsMCwxMjUsNywwLDEyNCw2LDAsMTAwLDIsMCwxMDcsOSwwLDExNCwKLSAgICAxNTUsMCwxMjQsNiwwLDEyNCwzLDAsMTAyLDIsMCw4MywxMjQsMywwLDEwNiwKLSAgICA4LDAsMTI0LDcsMCwxMzEsMSwwLDEsMTEzLDEzLDAsMTEzLDEzLDAsODcsCi0gICAgMTAwLDIsMCwxMjQsMywwLDEwMiwyLDAsODMsMTAwLDIsMCw4Myw0MCwzLAotICAgIDAsMCwwLDExNyw2MywwLDAsMCw3MCwxMDUsMTEwLDEwMCwzMiwxMTYsMTA0LDEwMSwKLSAgICAzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDMyLDExMSwxMTQsMzIsMTEwLDk3LDEwOSwxMDEsMTE1LAotICAgIDExMiw5Nyw5OSwxMDEsOTUsMTEyLDk3LDExNiwxMDQsMzIsMTAyLDExMSwxMTQsMzIsMTE2LDEwNCwKLSAgICAxMDUsMTE1LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQ3LDExMiw5Nyw5OSwxMDcsOTcsMTAzLAotICAgIDEwMSwzMiwxMTAsOTcsMTA5LDEwMSw0NiwxMTcsMTEsMCwwLDAsMTAyLDEwNSwxMTAsMTAwLAotICAgIDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsNzgsNDAsOSwwLDAsMCwxMTcsMTAsMCwKLSAgICAwLDAsMTA1LDExNSwxMDUsMTEwLDExNSwxMTYsOTcsMTEwLDk5LDEwMSwxMTcsMywwLDAsCi0gICAgMCwxMTUsMTE2LDExNCwxMTcsNSwwLDAsMCw5OCwxMjEsMTE2LDEwMSwxMTUsMTE3LDIwLAotICAgIDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwKLSAgICAxMTQsOTUsOTksOTcsOTksMTA0LDEwMSwxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwKLSAgICAxMTcsNywwLDAsMCwxMDQsOTcsMTE1LDk3LDExNiwxMTYsMTE0LDExNywxMSwwLDAsCi0gICAgMCwxMDIsMTA1LDExMCwxMDAsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsMTEsMCwwLAotICAgIDAsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNyw2LDAsMCwKLSAgICAwLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTAwLDQwLDgsMCwwLDAsMTE3LDMsMCwwLAotICAgIDAsOTksMTA4LDExNSwxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwKLSAgICAxMDEsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LDE0LDAsMCwwLDExMCwKLSAgICA5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDk1LDExMiw5NywxMTYsMTA0LDExNyw1LDAsCi0gICAgMCwwLDEwMSwxMTAsMTE2LDExNCwxMjEsMTE3LDYsMCwwLDAsMTAyLDEwNSwxMTAsMTAwLAotICAgIDEwMSwxMTQsMTE3LDYsMCwwLDAsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsOCwwLAotICAgIDAsMCwxMTIsMTExLDExNCwxMTYsMTA1LDExMSwxMTAsMTE1LDQwLDAsMCwwLDAsNDAsCi0gICAgMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsCi0gICAgMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwKLSAgICAxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDExLDAsMCwwLDk1LDEwMywxMDEsMTE2LDk1LAotICAgIDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMjU0LDQsMCwwLDExNSwyOCwwLDAsMCwwLAotICAgIDUsNiwxLDEzLDEsMjEsMSw2LDEsMTUsMSwxMiwxLDE1LDEsMjQsCi0gICAgMiwxNSwxLDYsMSwxMiwyLDEwLDUsMjAsMiwxMTcsMjIsMCwwLDAsCi0gICAgODAsOTcsMTE2LDEwNCw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LDk1LDEwMywxMDEsMTE2LDk1LAotICAgIDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsOTksMywwLDAsMCwwLDAsMCwwLDUsCi0gICAgMCwwLDAsNCwwLDAsMCw2NywwLDAsMCwxMTUsOTcsMCwwLDAsCi0gICAgMTI0LDIsMCwxMDAsMSwwLDEwNyw4LDAsMTE0LDI0LDAsMTE2LDEsMCwxMDYsCi0gICAgMiwwLDEyNSwyLDAsMTEwLDAsMCwxMjQsMCwwLDEwNiwzLDAsMTI0LDEsCi0gICAgMCwxMjQsMiwwLDEzMSwyLDAsOTIsMiwwLDEyNSwzLDAsMTI1LDQsMCwKLSAgICAxMjQsMywwLDEwMCwxLDAsMTA3LDksMCwxMTQsNjQsMCwxMjQsMywwLDgzLAotICAgIDEyNCw0LDAsMTE0LDg5LDAsMTE2LDQsMCwxMjQsMSwwLDEyNCw0LDAsMTI0LAotICAgIDAsMCwxMDYsMywwLDEzMSwzLDAsODMsMTAwLDEsMCw4MywxMDAsMSwwLAotICAgIDgzLDQwLDIsMCwwLDAsMTE3LDk4LDAsMCwwLDcwLDEwNSwxMTAsMTAwLDMyLAotICAgIDExNiwxMDQsMTAxLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDExMSwxMTAsMzIsMTE1LDEyMSwKLSAgICAxMTUsNDYsMTEyLDk3LDExNiwxMDQsMzIsMTExLDExNCwzMiwzOSwxMTIsOTcsMTE2LDEwNCwzOSwKLSAgICAzMiw5OCw5NywxMTUsMTAxLDEwMCwzMiwxMTEsMTEwLDMyLDExNSwxMjEsMTE1LDQ2LDExMiw5NywKLSAgICAxMTYsMTA0LDk1LDEwNCwxMTEsMTExLDEwNywxMTUsMzIsOTcsMTEwLDEwMCwxMCwzMiwzMiwzMiwKLSAgICAzMiwzMiwzMiwzMiwzMiwxMTUsMTIxLDExNSw0NiwxMTIsOTcsMTE2LDEwNCw5NSwxMDUsMTA5LAotICAgIDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDk1LDk5LDk3LDk5LDEwNCwxMDEsNDYsNzgsNDAsNSwKLSAgICAwLDAsMCwxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsMywwLDAsCi0gICAgMCwxMTUsMTIxLDExNSwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwxMTcsMTEsMCwKLSAgICAwLDAsOTUsMTAzLDEwMSwxMTYsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsMTUsMCwKLSAgICAwLDAsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwKLSAgICAxMTQsNDAsNSwwLDAsMCwxMTcsMywwLDAsMCw5OSwxMDgsMTE1LDExNyw4LAotICAgIDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSwxMTcsNCwwLDAsMCwKLSAgICAxMTIsOTcsMTE2LDEwNCwxMTcsNiwwLDAsMCwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDExNywKLSAgICAxNCwwLDAsMCwxMTAsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw5NSwxMTIsOTcsCi0gICAgMTE2LDEwNCw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwKLSAgICAwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwKLSAgICAxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMSwKLSAgICAwLDAsMCwxMDIsMTA1LDExMCwxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMjUsNSwKLSAgICAwLDAsMTE1LDE2LDAsMCwwLDAsNCwxMiwxLDEyLDEsMjQsMSwxMiwKLSAgICAxLDQsMiw2LDMsMTksMiwxMTcsMjIsMCwwLDAsODAsOTcsMTE2LDEwNCwKLSAgICA3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LDEwMiwxMDUsMTEwLDEwMCw5NSwxMDksMTExLDEwMCwxMTcsCi0gICAgMTA4LDEwMSw3OCw0MCwxMSwwLDAsMCwxMTcsOCwwLDAsMCw5NSw5NSwxMTAsCi0gICAgOTcsMTA5LDEwMSw5NSw5NSwxMTcsMTAsMCwwLDAsOTUsOTUsMTA5LDExMSwxMDAsMTE3LAotICAgIDEwOCwxMDEsOTUsOTUsMTE3LDEyLDAsMCwwLDk1LDk1LDExMywxMTcsOTcsMTA4LDExMCwKLSAgICA5NywxMDksMTAxLDk1LDk1LDExNyw3LDAsMCwwLDk1LDk1LDEwMCwxMTEsOTksOTUsCi0gICAgOTUsMTE3LDExLDAsMCwwLDk5LDEwOCw5NywxMTUsMTE1LDEwOSwxMDEsMTE2LDEwNCwxMTEsCi0gICAgMTAwLDExNywxNywwLDAsMCwxMDUsMTEwLDExOCw5NywxMDgsMTA1LDEwMCw5NywxMTYsMTAxLAotICAgIDk1LDk5LDk3LDk5LDEwNCwxMDEsMTE1LDExNywxMSwwLDAsMCw5NSwxMTIsOTcsMTE2LAotICAgIDEwNCw5NSwxMDQsMTExLDExMSwxMDcsMTE1LDExNywyMCwwLDAsMCw5NSwxMTIsOTcsMTE2LAotICAgIDEwNCw5NSwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDk1LDk5LDk3LDk5LDEwNCwxMDEsCi0gICAgMTE3LDExLDAsMCwwLDk1LDEwMywxMDEsMTE2LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsCi0gICAgMTE3LDQsMCwwLDAsNzgsMTExLDExMCwxMDEsMTE3LDExLDAsMCwwLDEwMiwxMDUsCi0gICAgMTEwLDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0MCwxLDAsMCwwLDExNywxMCwKLSAgICAwLDAsMCw5NSw5NSwxMDgsMTExLDk5LDk3LDEwOCwxMTUsOTUsOTUsNDAsMCwwLAotICAgIDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwKLSAgICAxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LAotICAgIDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTAsMCwwLDAsODAsOTcsCi0gICAgMTE2LDEwNCw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDIwOCw0LDAsMCwxMTUsMTQsMCwwLAotICAgIDAsMTYsMiw2LDIsMTgsOCwxOCwxNywxOCwxNywxOCwyNywzLDEsMTE3LAotICAgIDEwLDAsMCwwLDgwLDk3LDExNiwxMDQsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw5OSwxLAotICAgIDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwzLDAsMCwwLDY2LAotICAgIDAsMCwwLDExNSwxMTAsMCwwLDAsMTI0LDAsMCw2OSwxMDEsMCwwLDkwLAotICAgIDEsMCwxMDAsMCwwLDkwLDIsMCwxMDAsMSwwLDkwLDMsMCwxMDAsMiwKLSAgICAwLDEwMCwzLDAsMTMyLDAsMCw5MCw0LDAsMTAwLDQsMCwxMDAsNSwwLAotICAgIDEzMiwwLDAsOTAsNSwwLDEwMSw2LDAsOTAsNywwLDEwMCw2LDAsMTAwLAotICAgIDcsMCwxMzIsMCwwLDkwLDgsMCwxMDAsOCwwLDEwMCw5LDAsMTMyLDAsCi0gICAgMCw5MCw5LDAsMTAxLDEwLDAsMTAwLDEwLDAsMTAwLDExLDAsMTMyLDAsMCwKLSAgICAxMzEsMSwwLDkwLDExLDAsMTAwLDEyLDAsMTAwLDEzLDAsMTMyLDAsMCw5MCwKLSAgICAxMiwwLDEwMCwxNCwwLDgzLDQwLDE1LDAsMCwwLDExNywxMCwwLDAsMCwKLSAgICA3MCwxMDUsMTA4LDEwMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDExNywxNzIsMCwwLDAsNzAsCi0gICAgMTA1LDEwOCwxMDEsNDUsOTgsOTcsMTE1LDEwMSwxMDAsMzIsMTAyLDEwNSwxMTAsMTAwLDEwMSwxMTQsCi0gICAgNDYsMTAsMTAsMzIsMzIsMzIsMzIsNzMsMTEwLDExNiwxMDEsMTE0LDk3LDk5LDExNiwxMDUsCi0gICAgMTExLDExMCwxMTUsMzIsMTE5LDEwNSwxMTYsMTA0LDMyLDExNiwxMDQsMTAxLDMyLDEwMiwxMDUsMTA4LAotICAgIDEwMSwzMiwxMTUsMTIxLDExNSwxMTYsMTAxLDEwOSwzMiw5NywxMTQsMTAxLDMyLDk5LDk3LDk5LAotICAgIDEwNCwxMDEsMTAwLDMyLDEwMiwxMTEsMTE0LDMyLDExMiwxMDEsMTE0LDEwMiwxMTEsMTE0LDEwOSw5NywKLSAgICAxMTAsOTksMTAxLDQ0LDMyLDk4LDEwMSwxMDUsMTEwLDEwMywxMCwzMiwzMiwzMiwzMiwxMTQsCi0gICAgMTAxLDEwMiwxMTQsMTAxLDExNSwxMDQsMTAxLDEwMCwzMiwxMTksMTA0LDEwMSwxMTAsMzIsMTE2LDEwNCwKLSAgICAxMDEsMzIsMTAwLDEwNSwxMTQsMTAxLDk5LDExNiwxMTEsMTE0LDEyMSwzMiwxMTYsMTA0LDEwMSwzMiwKLSAgICAxMDIsMTA1LDExMCwxMDAsMTAxLDExNCwzMiwxMDUsMTE1LDMyLDEwNCw5NywxMTAsMTAwLDEwOCwxMDUsCi0gICAgMTEwLDEwMywzMiwxMDQsOTcsMTE1LDMyLDk4LDEwMSwxMDEsMTEwLDMyLDEwOSwxMTEsMTAwLDEwNSwKLSAgICAxMDIsMTA1LDEwMSwxMDAsNDYsMTAsMTAsMzIsMzIsMzIsMzIsOTksMiwwLDAsMCwKLSAgICAwLDAsMCwwLDUsMCwwLDAsNSwwLDAsMCw3LDAsMCwwLAotICAgIDExNSwxMjIsMCwwLDAsMTAzLDAsMCwxMjUsMywwLDEyMCw1MiwwLDEyNCwyLAotICAgIDAsNjgsOTMsNDQsMCw5MiwyLDAsMTM3LDAsMCwxMjUsNCwwLDEyNCwzLAotICAgIDAsMTA2LDAsMCwxMzUsMCwwLDEwMiwxLDAsMTAwLDEsMCwxMDAsMiwwLAotICAgIDEzNCwwLDAsMTI0LDQsMCw2OCwxMzEsMSwwLDEzMSwxLDAsMSwxMTMsMTMsCi0gICAgMCw4NywxMjQsMywwLDEyNCwwLDAsOTUsMSwwLDEyNCwxLDAsMTEyLDc5LAotICAgIDAsMTAwLDMsMCwxMjQsMCwwLDk1LDIsMCwxMDAsNiwwLDEyNCwwLDAsCi0gICAgOTUsMywwLDExNiw0LDAsMTMxLDAsMCwxMjQsMCwwLDk1LDUsMCwxMTYsCi0gICAgNCwwLDEzMSwwLDAsMTI0LDAsMCw5NSw2LDAsMTAwLDUsMCw4Myw0MCwKLSAgICA3LDAsMCwwLDExNywxNTQsMCwwLDAsNzMsMTEwLDEwNSwxMTYsMTA1LDk3LDEwOCwKLSAgICAxMDUsMTIyLDEwMSwzMiwxMTksMTA1LDExNiwxMDQsMzIsMTE2LDEwNCwxMDEsMzIsMTEyLDk3LDExNiwKLSAgICAxMDQsMzIsMTE2LDExMSwzMiwxMTUsMTAxLDk3LDExNCw5OSwxMDQsMzIsMTExLDExMCwzMiw5NywKLSAgICAxMTAsMTAwLDMyLDk3LDMyLDExOCw5NywxMTQsMTA1LDk3LDk4LDEwOCwxMDEsMzIsMTEwLDExNywKLSAgICAxMDksOTgsMTAxLDExNCwzMiwxMTEsMTAyLDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLAotICAgIDUwLDQ1LDExNiwxMTcsMTEyLDEwOCwxMDEsMTE1LDMyLDk5LDExMSwxMTAsMTE2LDk3LDEwNSwxMTAsCi0gICAgMTA1LDExMCwxMDMsMzIsMTE2LDEwNCwxMDEsMzIsMTA4LDExMSw5NywxMDAsMTAxLDExNCwzMiw5NywKLSAgICAxMTAsMTAwLDMyLDExNiwxMDQsMTAxLDMyLDEwMiwxMDUsMTA4LDEwMSwzMiwxMTUsMTE3LDEwMiwxMDIsCi0gICAgMTA1LDEyMCwxMDEsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMTAsCi0gICAgMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMTE0LDEwMSw5OSwxMTEsMTAzLDExMCwxMDUsMTIyLAotICAgIDEwMSwxMTUsNDYsOTksMSwwLDAsMCwwLDAsMCwwLDIsMCwwLDAsCi0gICAgMywwLDAsMCw1MSwwLDAsMCwxMTUsMjcsMCwwLDAsMTI0LDAsMCwKLSAgICA5MywxNywwLDEyNSwxLDAsMTI0LDEsMCwxMzYsMCwwLDEwMiwyLDAsODYsCi0gICAgMSwxMTMsMywwLDEwMCwwLDAsODMsNDAsMSwwLDAsMCw3OCw0MCwwLAotICAgIDAsMCwwLDQwLDIsMCwwLDAsMTE3LDIsMCwwLDAsNDYsNDgsMTE3LAotICAgIDYsMCwwLDAsMTE1LDExNywxMDIsMTAyLDEwNSwxMjAsNDAsMSwwLDAsMCwxMTcsCi0gICAgNiwwLDAsMCwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDQwLDAsMCwwLDAsMTE3LAotICAgIDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwKLSAgICAxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLAotICAgIDYyLDExNyw5LDAsMCwwLDYwLDEwMywxMDEsMTEwLDEwMSwxMjAsMTEyLDExNCw2Miw1OCwKLSAgICA1LDAsMCwxMTUsMiwwLDAsMCw2LDAsMTE3LDM4LDAsMCwwLDcwLAotICAgIDEwNSwxMDgsMTAxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsOTUsOTUsMTA1LDExMCwxMDUsMTE2LAotICAgIDk1LDk1LDQ2LDYwLDEwOCwxMTEsOTksOTcsMTA4LDExNSw2Miw0Niw2MCwxMDMsMTAxLDExMCwKLSAgICAxMDEsMTIwLDExMiwxMTQsNjIsMTE3LDEsMCwwLDAsNDYsMTA1LDEsMCwwLDAsCi0gICAgNzgsMTA1LDI1NSwyNTUsMjU1LDI1NSw0MCw3LDAsMCwwLDExNyw2LDAsMCwwLAotICAgIDEwMSwxMjAsMTE2LDEwMSwxMTAsMTAwLDExNyw4LDAsMCwwLDk1LDEwOCwxMTEsOTcsMTAwLAotICAgIDEwMSwxMTQsMTE1LDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDExNywxMSwwLDAsCi0gICAgMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMDksMTE2LDEwNSwxMDksMTAxLDExNywzLDAsMCwKLSAgICAwLDExNSwxMDEsMTE2LDExNywxMSwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSw5OSwKLSAgICA5Nyw5OSwxMDQsMTAxLDExNywxOSwwLDAsMCw5NSwxMTQsMTAxLDEwOCw5NywxMjAsMTAxLAotICAgIDEwMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSw5OSw5Nyw5OSwxMDQsMTAxLDQwLDUsMCwwLAotICAgIDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw0LDAsMCwwLDExMiwKLSAgICA5NywxMTYsMTA0LDExNyw3LDAsMCwwLDEwMCwxMDEsMTE2LDk3LDEwNSwxMDgsMTE1LDExNywKLSAgICA3LDAsMCwwLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMTE1LDExNyw4LDAsMCwwLAotICAgIDExNSwxMTcsMTAyLDEwMiwxMDUsMTIwLDEwMSwxMTUsNDAsMCwwLDAsMCw0MCwxLDAsCi0gICAgMCwwLDExNyw2LDAsMCwwLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LDI5LDAsCi0gICAgMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LAotICAgIDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywKLSAgICA4LDAsMCwwLDk1LDk1LDEwNSwxMTAsMTA1LDExNiw5NSw5NSw1Miw1LDAsMCwKLSAgICAxMTUsMTYsMCwwLDAsMCw0LDYsMSwxOSwxLDM2LDEsOSwyLDE1LAotICAgIDEsOSwxLDEyLDEsMTE3LDE5LDAsMCwwLDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwKLSAgICAxMTAsMTAwLDEwMSwxMTQsNDYsOTUsOTUsMTA1LDExMCwxMDUsMTE2LDk1LDk1LDk5LDEsMCwKKyAgICA5OSwxMDQsMTAxLDI0NCw2LDAsMCwwLDExOCw5NywxMDgsMTE3LDEwMSwxMTUsMTE0LDU5LAorICAgIDAsMCwwLDExNCwyOSwxLDAsMCw0MCwyLDAsMCwwLDExNCwyMDgsMCwKKyAgICAwLDAsMjQ0LDYsMCwwLDAsMTAyLDEwNSwxMTAsMTAwLDEwMSwxMTQsMTE0LDQsMCwKKyAgICAwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMTE0LDI5LDEsMCwKKyAgICAwLDI0MSw0LDAsMCwxMTUsNiwwLDAsMCwwLDQsMjIsMSwxNSwxLAorICAgIDExNywyOCwwLDAsMCw4MCw5NywxMTYsMTA0LDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsCisgICAgMTA1LDExMCwxMTgsOTcsMTA4LDEwNSwxMDAsOTcsMTE2LDEwMSw5NSw5OSw5Nyw5OSwxMDQsMTAxLAorICAgIDExNSw5OSwyLDAsMCwwLDAsMCwwLDAsMywwLDAsMCwxMiwwLAorICAgIDAsMCw2NywwLDAsMCwxMTUsOTQsMCwwLDAsMTE2LDAsMCwxMDYsMSwKKyAgICAwLDExNSwyOCwwLDExNiwyLDAsMTA2LDMsMCwxMDAsMSwwLDExNiw0LDAsCisgICAgMTMxLDIsMCwxLDExMCwwLDAsMTIwLDU5LDAsMTE2LDAsMCwxMDYsMSwwLAorICAgIDY4LDkzLDQ0LDAsMTI1LDIsMCwxMjEsMTQsMCwxMjQsMiwwLDEyNCwxLDAsCisgICAgMTMxLDEsMCw4Myw4NywxMTMsMzgsMCw0LDExNiw1LDAsMTA3LDEwLDAsMTE0LAorICAgIDgxLDAsMSwxLDEsMTE5LDM4LDAsODksMTEzLDM4LDAsODgsMTEzLDM4LDAsCisgICAgODcsMTAwLDIsMCw4MywxMDAsMiwwLDgzLDQwLDMsMCwwLDAsMTE3LDExMywKKyAgICAwLDAsMCw4MywxMDEsOTcsMTE0LDk5LDEwNCwzMiwxMTUsMTAxLDExMywxMTcsMTAxLDExMCwKKyAgICA5OSwxMDEsMzIsMTExLDEwMiwzMiwxMDQsMTExLDExMSwxMDcsMTE1LDMyLDEwMiwxMTEsMTE0LDMyLAorICAgIDk3LDMyLDEwMiwxMDUsMTEwLDEwMCwxMDEsMTE0LDMyLDEwMiwxMTEsMTE0LDMyLDM5LDExMiw5NywKKyAgICAxMTYsMTA0LDM5LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDczLDEwMiwKKyAgICAzMiwzOSwxMDQsMTExLDExMSwxMDcsMTE1LDM5LDMyLDEwNSwxMTUsMzIsMTAyLDk3LDEwOCwxMTUsCisgICAgMTAxLDMyLDExNiwxMDQsMTAxLDExMCwzMiwxMTcsMTE1LDEwMSwzMiwxMTUsMTIxLDExNSw0NiwxMTIsCisgICAgOTcsMTE2LDEwNCw5NSwxMDQsMTExLDExMSwxMDcsMTE1LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLAorICAgIDMyLDMyLDMyLDMyLDExNywyMywwLDAsMCwxMTUsMTIxLDExNSw0NiwxMTIsOTcsMTE2LAorICAgIDEwNCw5NSwxMDQsMTExLDExMSwxMDcsMTE1LDMyLDEwNSwxMTUsMzIsMTAxLDEwOSwxMTIsMTE2LDEyMSwKKyAgICA3OCw0MCw2LDAsMCwwLDExNCw3LDAsMCwwLDI0NCwxMCwwLDAsMCwKKyAgICAxMTIsOTcsMTE2LDEwNCw5NSwxMDQsMTExLDExMSwxMDcsMTE1LDExNCwxODQsMCwwLDAsMTE0LAorICAgIDE4NSwwLDAsMCwxMTQsMTg2LDAsMCwwLDExNCwxNTYsMCwwLDAsNDAsMywKKyAgICAwLDAsMCwxMTQsMjA4LDAsMCwwLDExNCwzNSwwLDAsMCwxMTYsNCwwLAorICAgIDAsMCwxMDQsMTExLDExMSwxMDcsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsCisgICAgMTE0LDUsMCwwLDAsMjQ0LDExLDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LAorICAgIDEwNCwxMTEsMTExLDEwNywxMTUsMjQ5LDQsMCwwLDExNSwxNiwwLDAsMCwwLDcsCisgICAgOSwxLDE5LDEsMTYsMSwzLDEsMTQsMSwxMywxLDEyLDIsMTE3LDIyLAorICAgIDAsMCwwLDgwLDk3LDExNiwxMDQsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0Niw5NSwxMTIsCisgICAgOTcsMTE2LDEwNCw5NSwxMDQsMTExLDExMSwxMDcsMTE1LDk5LDIsMCwwLDAsMCwwLAorICAgIDAsMCwzLDAsMCwwLDExLDAsMCwwLDY3LDAsMCwwLDExNSw5MSwKKyAgICAwLDAsMCwxMjQsMSwwLDEwMCwxLDAsMTA3LDIsMCwxMTQsMjEsMCwxMDAsCisgICAgMiwwLDEyNSwxLDAsMTEwLDAsMCwxMjEsMTcsMCwxMTYsMCwwLDEwNiwxLAorICAgIDAsMTI0LDEsMCwyNSwxMjUsMiwwLDg3LDExMCw0NiwwLDQsMTE2LDIsMCwKKyAgICAxMDcsMTAsMCwxMTQsODYsMCwxLDEsMSwxMjQsMCwwLDEwNiwzLDAsMTI0LAorICAgIDEsMCwxMzEsMSwwLDEyNSwyLDAsMTI0LDIsMCwxMTYsMCwwLDEwNiwxLAorICAgIDAsMTI0LDEsMCw2MCw4OSwxMTAsMSwwLDg4LDEyNCwyLDAsODMsNDAsMywKKyAgICAwLDAsMCwxMTcsMjEwLDAsMCwwLDcxLDEwMSwxMTYsMzIsMTE2LDEwNCwxMDEsMzIsCisgICAgMTAyLDEwNSwxMTAsMTAwLDEwMSwxMTQsMzIsMTAyLDExMSwxMTQsMzIsMTE2LDEwNCwxMDEsMzIsMTEyLAorICAgIDk3LDExNiwxMDQsMzIsMTAxLDExMCwxMTYsMTE0LDEyMSwzMiwxMDIsMTE0LDExMSwxMDksMzIsMTE1LAorICAgIDEyMSwxMTUsNDYsMTEyLDk3LDExNiwxMDQsOTUsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCwKKyAgICA5NSw5OSw5Nyw5OSwxMDQsMTAxLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLAorICAgIDMyLDczLDEwMiwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsOTcsMTE2LDEwNCwzMiwxMDEsMTEwLDExNiwKKyAgICAxMTQsMTIxLDMyLDEwNSwxMTUsMzIsMTEwLDExMSwxMTYsMzIsMTA1LDExMCwzMiwxMTYsMTA0LDEwMSwKKyAgICAzMiw5OSw5Nyw5OSwxMDQsMTAxLDQ0LDMyLDEwMiwxMDUsMTEwLDEwMCwzMiwxMTYsMTA0LDEwMSwKKyAgICAzMiw5NywxMTIsMTEyLDExNCwxMTEsMTEyLDExNCwxMDUsOTcsMTE2LDEwMSwzMiwxMDIsMTA1LDExMCwKKyAgICAxMDAsMTAxLDExNCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw5NywxMTAsMTAwLDMyLAorICAgIDk5LDk3LDk5LDEwNCwxMDEsMzIsMTA1LDExNiw0NiwzMiw3MywxMDIsMzIsMTEwLDExMSwzMiwKKyAgICAxMDIsMTA1LDExMCwxMDAsMTAxLDExNCwzMiwxMDUsMTE1LDMyLDk3LDExOCw5NywxMDUsMTA4LDk3LAorICAgIDk4LDEwOCwxMDEsNDQsMzIsMTE1LDExNiwxMTEsMTE0LDEwMSwzMiw3OCwxMTEsMTEwLDEwMSw0NiwKKyAgICAxMCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwxMTQsMzAsMCwwLDAsMTE0LAorICAgIDEwMywwLDAsMCw0MCw0LDAsMCwwLDExNCw3LDAsMCwwLDExNCwzMCwKKyAgICAxLDAsMCwxMTQsOTMsMCwwLDAsMTE0LDM0LDEsMCwwLDQwLDMsMCwKKyAgICAwLDAsMTE0LDIwOCwwLDAsMCwxMTQsMzUsMCwwLDAsMTE0LDMyLDEsMCwKKyAgICAwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLAorICAgIDI0NCwyMCwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMDUsMTA5LDExMiwxMTEsMTE0LAorICAgIDExNiwxMDEsMTE0LDk1LDk5LDk3LDk5LDEwNCwxMDEsMTAsNSwwLDAsMTE1LDE2LDAsCisgICAgMCwwLDAsOCwxMiwxLDksMSwzLDEsMTcsMSwxMywxLDE1LDEsCisgICAgMTgsMSwxMTcsMzEsMCwwLDAsODAsOTcsMTE2LDEwNCw3MCwxMDUsMTEwLDEwMCwxMDEsCisgICAgMTE0LDQ2LDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsCisgICAgOTUsOTksOTcsOTksMTA0LDEwMSw5OSwzLDAsMCwwLDAsMCwwLDAsOCwKKyAgICAwLDAsMCw1LDAsMCwwLDY3LDAsMCwwLDExNSwxODksMCwwLDAsCisgICAgMTAzLDAsMCwxMjUsMywwLDEyMCwxNzYsMCwxMjQsMiwwLDY4LDkzLDE1OCwwLAorICAgIDEyNSw0LDAsMTE2LDAsMCwxMjQsNCwwLDExNiwxLDAsMTE2LDIsMCwxMDIsCisgICAgMiwwLDEzMSwyLDAsMTE1LDQ2LDAsMTEzLDEzLDAsMTEwLDAsMCwxMjQsMCwKKyAgICAwLDEwNiwzLDAsMTI0LDQsMCwxMzEsMSwwLDEyNSw1LDAsMTI0LDUsMCwKKyAgICAxMDAsMSwwLDEwNyw5LDAsMTE0LDEzLDAsMTE2LDQsMCwxMjQsNSwwLDEwMCwKKyAgICAyLDAsMTMxLDIsMCwxMTQsMTEyLDAsMTI0LDUsMCwxMDYsNSwwLDEyNCwxLAorICAgIDAsMTMxLDEsMCw5MiwyLDAsMTI1LDYsMCwxMjUsNywwLDExMCwyMSwwLAorICAgIDEyNCw1LDAsMTA2LDYsMCwxMjQsMSwwLDEzMSwxLDAsMTI1LDYsMCwxMDMsCisgICAgMCwwLDEyNSw3LDAsMTI0LDYsMCwxMDAsMSwwLDEwNyw5LDAsMTE0LDE1NSwKKyAgICAwLDEyNCw2LDAsMTI0LDMsMCwxMDIsMiwwLDgzLDEyNCwzLDAsMTA2LDcsCisgICAgMCwxMjQsNywwLDEzMSwxLDAsMSwxMTMsMTMsMCwxMTMsMTMsMCw4NywxMDAsCisgICAgMSwwLDEyNCwzLDAsMTAyLDIsMCw4MywxMDAsMSwwLDgzLDQwLDMsMCwKKyAgICAwLDAsMTE3LDYzLDAsMCwwLDcwLDEwNSwxMTAsMTAwLDMyLDExNiwxMDQsMTAxLDMyLAorICAgIDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMzIsMTExLDExNCwzMiwxMTAsOTcsMTA5LDEwMSwxMTUsMTEyLAorICAgIDk3LDk5LDEwMSw5NSwxMTIsOTcsMTE2LDEwNCwzMiwxMDIsMTExLDExNCwzMiwxMTYsMTA0LDEwNSwKKyAgICAxMTUsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDcsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLAorICAgIDMyLDExMCw5NywxMDksMTAxLDQ2LDc4LDExNCwxODMsMCwwLDAsNDAsOCwwLDAsCisgICAgMCwxMTQsMjAwLDAsMCwwLDI0NCwzLDAsMCwwLDExNSwxMTYsMTE0LDI0NCw1LAorICAgIDAsMCwwLDk4LDEyMSwxMTYsMTAxLDExNSwxMTQsMzUsMSwwLDAsMTE0LDU5LDAsCisgICAgMCwwLDExNCwxODMsMCwwLDAsMTE0LDIxMCwwLDAsMCwxMTQsMjA1LDAsMCwKKyAgICAwLDQwLDgsMCwwLDAsMTE0LDIwOCwwLDAsMCwxMTQsMTc3LDAsMCwwLAorICAgIDExNCwzNSwwLDAsMCwyNDQsMTQsMCwwLDAsMTEwLDk3LDEwOSwxMDEsMTE1LDExMiwKKyAgICA5Nyw5OSwxMDEsOTUsMTEyLDk3LDExNiwxMDQsMTE2LDUsMCwwLDAsMTAxLDExMCwxMTYsCisgICAgMTE0LDEyMSwxMTQsMzIsMSwwLDAsMTE0LDE1OSwwLDAsMCwxMTQsMTg3LDAsMCwKKyAgICAwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLAorICAgIDI0NCwxMSwwLDAsMCw5NSwxMDMsMTAxLDExNiw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LAorICAgIDI3LDUsMCwwLDExNSwyOCwwLDAsMCwwLDUsNiwxLDEzLDEsMjEsCisgICAgMSw2LDEsMTUsMSwxMiwxLDE1LDEsMjQsMiwxNSwxLDYsMSwxMiwKKyAgICAyLDEwLDUsMjAsMiwxMTcsMjIsMCwwLDAsODAsOTcsMTE2LDEwNCw3MCwxMDUsCisgICAgMTEwLDEwMCwxMDEsMTE0LDQ2LDk1LDEwMywxMDEsMTE2LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsCisgICAgNzgsOTksMywwLDAsMCwwLDAsMCwwLDUsMCwwLDAsNCwwLAorICAgIDAsMCw2NywwLDAsMCwxMTUsOTcsMCwwLDAsMTI0LDIsMCwxMDAsMSwKKyAgICAwLDEwNyw4LDAsMTE0LDI0LDAsMTE2LDAsMCwxMDYsMSwwLDEyNSwyLDAsCisgICAgMTEwLDAsMCwxMjQsMCwwLDEwNiwyLDAsMTI0LDEsMCwxMjQsMiwwLDEzMSwKKyAgICAyLDAsOTIsMiwwLDEyNSwzLDAsMTI1LDQsMCwxMjQsMywwLDEwMCwxLAorICAgIDAsMTA3LDksMCwxMTQsNjQsMCwxMjQsMywwLDgzLDEyNCw0LDAsMTE0LDg5LAorICAgIDAsMTE2LDMsMCwxMjQsMSwwLDEyNCw0LDAsMTI0LDAsMCwxMDYsMiwwLAorICAgIDEzMSwzLDAsODMsMTAwLDEsMCw4MywxMDAsMSwwLDgzLDQwLDIsMCwwLAorICAgIDAsMTE3LDk4LDAsMCwwLDcwLDEwNSwxMTAsMTAwLDMyLDExNiwxMDQsMTAxLDMyLDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDMyLDExMSwxMTAsMzIsMTE1LDEyMSwxMTUsNDYsMTEyLDk3LDExNiwKKyAgICAxMDQsMzIsMTExLDExNCwzMiwzOSwxMTIsOTcsMTE2LDEwNCwzOSwzMiw5OCw5NywxMTUsMTAxLAorICAgIDEwMCwzMiwxMTEsMTEwLDMyLDExNSwxMjEsMTE1LDQ2LDExMiw5NywxMTYsMTA0LDk1LDEwNCwxMTEsCisgICAgMTExLDEwNywxMTUsMzIsOTcsMTEwLDEwMCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwKKyAgICAxMTUsMTIxLDExNSw0NiwxMTIsOTcsMTE2LDEwNCw5NSwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsCisgICAgMTE0LDk1LDk5LDk3LDk5LDEwNCwxMDEsNDYsNzgsNDAsNCwwLDAsMCwxMTQsNywKKyAgICAwLDAsMCwxMTQsMzUsMCwwLDAsMTE0LDM5LDEsMCwwLDExNCwyNywxLAorICAgIDAsMCw0MCw1LDAsMCwwLDExNCwyMDgsMCwwLDAsMTE0LDE3NywwLDAsCisgICAgMCwxMTQsMzUsMCwwLDAsMTE0LDE1OSwwLDAsMCwxMTQsMzgsMSwwLDAsCisgICAgMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMTE0LAorICAgIDIxMCwwLDAsMCw1NCw1LDAsMCwxMTUsMTYsMCwwLDAsMCw0LDEyLAorICAgIDEsMTIsMSwyNCwxLDEyLDEsNCwyLDYsMywxOSwyLDExNywyMiwwLAorICAgIDAsMCw4MCw5NywxMTYsMTA0LDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsMTAyLDEwNSwxMTAsCisgICAgMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQwLDEwLDAsMCwwLDExNCw1NiwwLAorICAgIDAsMCwxMTQsNTUsMCwwLDAsMTE0LDU3LDAsMCwwLDExNCw1OCwwLDAsCisgICAgMCwxMTQsMjE1LDAsMCwwLDExNCwyOSwxLDAsMCwxMTQsMzQsMSwwLDAsCisgICAgMTE0LDM1LDEsMCwwLDExNCwzOSwxLDAsMCwxMTQsMjEwLDAsMCwwLDExNCwKKyAgICA0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LAorICAgIDAsMCwwLDExNCwyOCwxLDAsMCwyMzcsNCwwLDAsMTE1LDE0LDAsMCwKKyAgICAwLDEyLDIsNiwyLDE4LDgsMTgsMTcsMTgsMTcsMTgsMjcsMywxLDExNCwKKyAgICAyOCwxLDAsMCw5OSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsCisgICAgMCwzLDAsMCwwLDY0LDAsMCwwLDExNSwxMDYsMCwwLDAsMTAxLDAsCisgICAgMCw5MCwxLDAsMTAwLDAsMCw5MCwyLDAsMTAwLDEsMCw5MCwzLDAsCisgICAgMTAwLDIsMCwxMDAsMywwLDEzMiwwLDAsOTAsNCwwLDEwMCw0LDAsMTAwLAorICAgIDUsMCwxMzIsMCwwLDkwLDUsMCwxMDEsNiwwLDkwLDcsMCwxMDAsNiwKKyAgICAwLDEwMCw3LDAsMTMyLDAsMCw5MCw4LDAsMTAwLDgsMCwxMDAsOSwwLAorICAgIDEzMiwwLDAsOTAsOSwwLDEwMSwxMCwwLDEwMCwxMCwwLDEwMCwxMSwwLDEzMiwKKyAgICAwLDAsMTMxLDEsMCw5MCwxMSwwLDEwMCwxMiwwLDEwMCwxMywwLDEzMiwwLAorICAgIDAsOTAsMTIsMCwxMDAsMTQsMCw4Myw0MCwxNSwwLDAsMCwyNDQsMTAsMCwKKyAgICAwLDAsNzAsMTA1LDEwOCwxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCwxMTcsMTcyLDAsMCwKKyAgICAwLDcwLDEwNSwxMDgsMTAxLDQ1LDk4LDk3LDExNSwxMDEsMTAwLDMyLDEwMiwxMDUsMTEwLDEwMCwKKyAgICAxMDEsMTE0LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDczLDExMCwxMTYsMTAxLDExNCw5Nyw5OSwKKyAgICAxMTYsMTA1LDExMSwxMTAsMTE1LDMyLDExOSwxMDUsMTE2LDEwNCwzMiwxMTYsMTA0LDEwMSwzMiwxMDIsCisgICAgMTA1LDEwOCwxMDEsMzIsMTE1LDEyMSwxMTUsMTE2LDEwMSwxMDksMzIsOTcsMTE0LDEwMSwzMiw5OSwKKyAgICA5Nyw5OSwxMDQsMTAxLDEwMCwzMiwxMDIsMTExLDExNCwzMiwxMTIsMTAxLDExNCwxMDIsMTExLDExNCwKKyAgICAxMDksOTcsMTEwLDk5LDEwMSw0NCwzMiw5OCwxMDEsMTA1LDExMCwxMDMsMTAsMzIsMzIsMzIsCisgICAgMzIsMTE0LDEwMSwxMDIsMTE0LDEwMSwxMTUsMTA0LDEwMSwxMDAsMzIsMTE5LDEwNCwxMDEsMTEwLDMyLAorICAgIDExNiwxMDQsMTAxLDMyLDEwMCwxMDUsMTE0LDEwMSw5OSwxMTYsMTExLDExNCwxMjEsMzIsMTE2LDEwNCwKKyAgICAxMDEsMzIsMTAyLDEwNSwxMTAsMTAwLDEwMSwxMTQsMzIsMTA1LDExNSwzMiwxMDQsOTcsMTEwLDEwMCwKKyAgICAxMDgsMTA1LDExMCwxMDMsMzIsMTA0LDk3LDExNSwzMiw5OCwxMDEsMTAxLDExMCwzMiwxMDksMTExLAorICAgIDEwMCwxMDUsMTAyLDEwNSwxMDEsMTAwLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDk5LDIsMCwKKyAgICAwLDAsMCwwLDAsMCw1LDAsMCwwLDUsMCwwLDAsNywwLAorICAgIDAsMCwxMTUsMTIyLDAsMCwwLDEwMywwLDAsMTI1LDMsMCwxMjAsNTIsMCwKKyAgICAxMjQsMiwwLDY4LDkzLDQ0LDAsOTIsMiwwLDEzNywwLDAsMTI1LDQsMCwKKyAgICAxMjQsMywwLDEwNiwwLDAsMTM1LDAsMCwxMDIsMSwwLDEwMCwxLDAsMTAwLAorICAgIDIsMCwxMzQsMCwwLDEyNCw0LDAsNjgsMTMxLDEsMCwxMzEsMSwwLDEsCisgICAgMTEzLDEzLDAsODcsMTI0LDMsMCwxMjQsMCwwLDk1LDEsMCwxMjQsMSwwLAorICAgIDExMiw3OSwwLDEwMCwzLDAsMTI0LDAsMCw5NSwyLDAsMTAwLDYsMCwxMjQsCisgICAgMCwwLDk1LDMsMCwxMTYsNCwwLDEzMSwwLDAsMTI0LDAsMCw5NSw1LAorICAgIDAsMTE2LDQsMCwxMzEsMCwwLDEyNCwwLDAsOTUsNiwwLDEwMCw1LDAsCisgICAgODMsNDAsNywwLDAsMCwxMTcsMTU0LDAsMCwwLDczLDExMCwxMDUsMTE2LDEwNSwKKyAgICA5NywxMDgsMTA1LDEyMiwxMDEsMzIsMTE5LDEwNSwxMTYsMTA0LDMyLDExNiwxMDQsMTAxLDMyLDExMiwKKyAgICA5NywxMTYsMTA0LDMyLDExNiwxMTEsMzIsMTE1LDEwMSw5NywxMTQsOTksMTA0LDMyLDExMSwxMTAsCisgICAgMzIsOTcsMTEwLDEwMCwzMiw5NywzMiwxMTgsOTcsMTE0LDEwNSw5Nyw5OCwxMDgsMTAxLDMyLAorICAgIDExMCwxMTcsMTA5LDk4LDEwMSwxMTQsMzIsMTExLDEwMiwxMCwzMiwzMiwzMiwzMiwzMiwzMiwKKyAgICAzMiwzMiw1MCw0NSwxMTYsMTE3LDExMiwxMDgsMTAxLDExNSwzMiw5OSwxMTEsMTEwLDExNiw5NywKKyAgICAxMDUsMTEwLDEwNSwxMTAsMTAzLDMyLDExNiwxMDQsMTAxLDMyLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsCisgICAgMzIsOTcsMTEwLDEwMCwzMiwxMTYsMTA0LDEwMSwzMiwxMDIsMTA1LDEwOCwxMDEsMzIsMTE1LDExNywKKyAgICAxMDIsMTAyLDEwNSwxMjAsMTAxLDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMDgsMTExLDk3LDEwMCwxMDEsCisgICAgMTE0LDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDExNCwxMDEsOTksMTExLDEwMywxMTAsCisgICAgMTA1LDEyMiwxMDEsMTE1LDQ2LDk5LDEsMCwwLDAsMCwwLDAsMCwyLDAsCisgICAgMCwwLDMsMCwwLDAsNTEsMCwwLDAsMTE1LDI3LDAsMCwwLDEyNCwKKyAgICAwLDAsOTMsMTcsMCwxMjUsMSwwLDEyNCwxLDAsMTM2LDAsMCwxMDIsMiwKKyAgICAwLDg2LDEsMTEzLDMsMCwxMDAsMCwwLDgzLDQwLDEsMCwwLDAsNzgsCisgICAgMTE0LDQsMCwwLDAsNDAsMiwwLDAsMCwxMTQsMjIsMCwwLDAsMTE0LAorICAgIDEwLDEsMCwwLDQwLDEsMCwwLDAsMTE0LDE1OSwwLDAsMCwxMTQsNCwKKyAgICAwLDAsMCwxMTQsNSwwLDAsMCwxMTQsMTUxLDAsMCwwLDg3LDUsMCwKKyAgICAwLDExNSwyLDAsMCwwLDYsMCwxMTcsMzgsMCwwLDAsNzAsMTA1LDEwOCwKKyAgICAxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0Niw5NSw5NSwxMDUsMTEwLDEwNSwxMTYsOTUsOTUsCisgICAgNDYsNjAsMTA4LDExMSw5OSw5NywxMDgsMTE1LDYyLDQ2LDYwLDEwMywxMDEsMTEwLDEwMSwxMjAsCisgICAgMTEyLDExNCw2MiwxMTQsMTAzLDAsMCwwLDExNCwyOSwwLDAsMCw3OCwxMTQsMTI1LAorICAgIDAsMCwwLDQwLDcsMCwwLDAsMTE0LDIwNSwwLDAsMCwyNDQsOCwwLAorICAgIDAsMCw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDExNSwxMTQsMzUsMCwwLDAsMjQ0LAorICAgIDExLDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwOSwxMTYsMTA1LDEwOSwxMDEsMjQ0LAorICAgIDMsMCwwLDAsMTE1LDEwMSwxMTYsMjQ0LDExLDAsMCwwLDk1LDExMiw5NywxMTYsCisgICAgMTA0LDk1LDk5LDk3LDk5LDEwNCwxMDEsMjQ0LDE5LDAsMCwwLDk1LDExNCwxMDEsMTA4LAorICAgIDk3LDEyMCwxMDEsMTAwLDk1LDExMiw5NywxMTYsMTA0LDk1LDk5LDk3LDk5LDEwNCwxMDEsNDAsCisgICAgNSwwLDAsMCwxMTQsNzcsMCwwLDAsMTE0LDM1LDAsMCwwLDExNiw3LAorICAgIDAsMCwwLDEwMCwxMDEsMTE2LDk3LDEwNSwxMDgsMTE1LDExNiw3LDAsMCwwLDEwOCwKKyAgICAxMTEsOTcsMTAwLDEwMSwxMTQsMTE1LDExNCwxMTQsMCwwLDAsMTE0LDQsMCwwLDAsCisgICAgNDAsMSwwLDAsMCwxMTQsMTU5LDAsMCwwLDExNCw1LDAsMCwwLDExNCwKKyAgICA3OCwwLDAsMCw4MSw1LDAsMCwxMTUsMTYsMCwwLDAsMCw0LDYsCisgICAgMSwxOSwxLDM2LDEsOSwyLDE1LDEsOSwxLDEyLDEsMTE3LDE5LDAsCisgICAgMCwwLDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsOTUsOTUsMTA1LAorICAgIDExMCwxMDUsMTE2LDk1LDk1LDk5LDEsMCwwLDAsMCwwLDAsMCwxLDAsCisgICAgMCwwLDIsMCwwLDAsNjcsMCwwLDAsMTE1LDEzLDAsMCwwLDEwMCwKKyAgICAzLDAsMTI0LDAsMCw5NSwwLDAsMTAwLDIsMCw4Myw0MCw0LDAsMCwKKyAgICAwLDExNywzMSwwLDAsMCw3MywxMTAsMTE4LDk3LDEwOCwxMDUsMTAwLDk3LDExNiwxMDEsCisgICAgMzIsMTE2LDEwNCwxMDEsMzIsMTAwLDEwNSwxMTQsMTAxLDk5LDExNiwxMTEsMTE0LDEyMSwzMiwxMDksCisgICAgMTE2LDEwNSwxMDksMTAxLDQ2LDExNCwyOSwwLDAsMCw3OCwxMTQsMTI1LDAsMCwwLAorICAgIDQwLDEsMCwwLDAsMTE0LDQyLDEsMCwwLDQwLDEsMCwwLDAsMTE0LAorICAgIDc3LDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LAorICAgIDAsMCwwLDExNCwyOSwxLDAsMCw5NSw1LDAsMCwxMTUsMiwwLDAsCisgICAgMCwwLDIsMTE3LDI4LDAsMCwwLDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwxMTAsMTAwLAorICAgIDEwMSwxMTQsNDYsMTA1LDExMCwxMTgsOTcsMTA4LDEwNSwxMDAsOTcsMTE2LDEwMSw5NSw5OSw5NywKKyAgICA5OSwxMDQsMTAxLDExNSw5OSwyLDAsMCwwLDAsMCwwLDAsMTIsMCwwLAorICAgIDAsMTMsMCwwLDAsNjcsMCwwLDAsMTE1LDIxNiwxLDAsMCwxMDAsMSwKKyAgICAwLDEyNSwyLDAsMTI0LDEsMCwxMDYsMCwwLDEwMCwyLDAsMTMxLDEsMCwKKyAgICAxMDAsMywwLDI1LDEyNSwzLDAsMTIxLDI1LDAsMTE2LDEsMCwxMDYsMiwwLAorICAgIDEyNCwwLDAsMTA2LDMsMCwxMzEsMSwwLDEwNiw0LDAsMTI1LDQsMCw4NywKKyAgICAxMTAsMjQsMCw0LDExNiw1LDAsMTA3LDEwLDAsMTE0LDc2LDAsMSwxLDEsCisgICAgMTAwLDExLDAsMTI1LDQsMCw4OSwxMTAsMSwwLDg4LDEyNCw0LDAsMTI0LDAsCisgICAgMCwxMDYsNiwwLDEwNywzLDAsMTE0LDExNCwwLDEyNCwwLDAsMTA2LDcsMCwKKyAgICAxMzEsMCwwLDEsMTI0LDQsMCwxMjQsMCwwLDk1LDYsMCwxMTAsMCwwLAorICAgIDExNiw4LDAsMTMxLDAsMCwxMTQsMTQ3LDAsMTI0LDAsMCwxMDYsOSwwLDEyNSwKKyAgICA1LDAsMTI0LDMsMCwxMDYsMTAsMCwxMzEsMCwwLDEyNSw2LDAsMTEwLDE1LAorICAgIDAsMTI0LDAsMCwxMDYsMTEsMCwxMjUsNSwwLDEyNCwzLDAsMTI1LDYsMCwKKyAgICAxMjQsNiwwLDEyNCw1LDAsMTA3LDYsMCwxMTQsNDUsMSwxMTYsMTIsMCwxMjQsCisgICAgMCwwLDEwNiwzLDAsMTI0LDMsMCwxMzEsMiwwLDEyNSw3LDAsMTE2LDEzLAorICAgIDAsMTI0LDcsMCwxMzEsMSwwLDExNCw0NSwxLDEyMCw5MSwwLDEyNCwwLDAsCisgICAgMTA2LDE0LDAsNjgsOTMsNzEsMCw5MiwyLDAsMTI1LDgsMCwxMjUsOSwwLAorICAgIDEwMCw1LDAsMTI0LDgsMCwyMywxMjUsMTAsMCwxMTYsMTIsMCwxMjQsNywwLAorICAgIDEyNCwxMCwwLDEzMSwyLDAsMTI1LDExLDAsMTE2LDE1LDAsMTI0LDExLDAsMTMxLAorICAgIDEsMCwxMTQsMjE0LDAsMTI0LDksMCwxMjQsMSwwLDEyNCwxMSwwLDEzMSwyLAorICAgIDAsMTI0LDcsMCwxMDMsMSwwLDEwMiwyLDAsODMsMTEzLDIxNCwwLDg3LDEwMCwKKyAgICA2LDAsMTI1LDIsMCwxMTMsNDUsMSwxMTAsMCwwLDEyMCwxMjAsMCwxMjQsMCwKKyAgICAwLDEwNiwxNCwwLDY4LDkzLDEwOSwwLDkyLDIsMCwxMjUsOCwwLDEyNSw5LAorICAgIDAsMTE2LDEyLDAsMTI0LDAsMCwxMDYsMywwLDEyNCwzLDAsMTI0LDgsMCwKKyAgICAyMywxMzEsMiwwLDEyNSwxMSwwLDExNiwxNiwwLDEwMCw3LDAsMTA2LDE3LDAsCisgICAgMTI0LDExLDAsMTMxLDEsMCwxMDAsOCwwLDEwMCwzLDAsMTMxLDEsMSwxLAorICAgIDEyNCw2LDAsMTI0LDgsMCwyMywxMjQsNSwwLDEwNyw2LDAsMTE0LDU1LDEsCisgICAgMTE2LDE1LDAsMTI0LDExLDAsMTMxLDEsMCwxMTQsMTY0LDEsMTI0LDksMCwxMjQsCisgICAgMSwwLDEyNCwxMSwwLDEzMSwyLDAsMTAzLDAsMCwxMDIsMiwwLDgzLDExMywKKyAgICA1NSwxLDExMyw1NSwxLDg3LDEyNCwyLDAsMTE0LDIwNiwxLDExNiwxNiwwLDEwMCwKKyAgICA5LDAsMTA2LDE3LDAsMTI0LDcsMCwxMzEsMSwwLDEzMSwxLDAsMSwxMDAsCisgICAgMTAsMCwxMjQsNywwLDEwMywxLDAsMTAyLDIsMCw4MywxMDAsMTAsMCwxMDMsCisgICAgMCwwLDEwMiwyLDAsODMsNDAsMTIsMCwwLDAsMTE3LDEyNSwwLDAsMCwKKyAgICA4NCwxMTQsMTIxLDMyLDExNiwxMTEsMzIsMTAyLDEwNSwxMTAsMTAwLDMyLDk3LDMyLDEwOCwxMTEsCisgICAgOTcsMTAwLDEwMSwxMTQsMzIsMTAyLDExMSwxMTQsMzIsMTE2LDEwNCwxMDEsMzIsMTE1LDExMiwxMDEsCisgICAgOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0NCwzMiwxMTEsCisgICAgMTE0LDMyLDExNiwxMDQsMTAxLDMyLDExMCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDEwLAorICAgIDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwzMiwKKyAgICAxMTIsMTExLDExNCwxMTYsMTA1LDExMSwxMTAsMTE1LDQ2LDMyLDgyLDEwMSwxMTYsMTE3LDExNCwxMTAsCisgICAgMTE1LDMyLDQwLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsNDQsMzIsMTA4LDEwNSwxMTUsMTE2LDQ1LAorICAgIDExMSwxMDIsNDUsMTEyLDExMSwxMTQsMTE2LDEwNSwxMTEsMTEwLDExNSw0MSw0Niw3MCwxMTQsMTAzLAorICAgIDAsMCwwLDExNCwxMDIsMCwwLDAsMTE0LDI5LDAsMCwwLDExNCw3OCwwLAorICAgIDAsMCw4NCwxMTcsOSwwLDAsMCwxMTYsMTE0LDEyMSwxMDUsMTEwLDEwMywzMiwxMjMsCisgICAgMTI1LDExNCwxMzMsMCwwLDAsMTE3LDI1LDAsMCwwLDExMiwxMTEsMTE1LDExNSwxMDUsCisgICAgOTgsMTA4LDEwMSwzMiwxMTAsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSwzMiwxMDIsMTExLAorICAgIDExNCwzMiwxMjMsMTI1LDc4LDExNCwxMjUsMCwwLDAsNDAsMTgsMCwwLDAsMTE0LAorICAgIDMyLDAsMCwwLDExNCwzLDAsMCwwLDExNCwzOSwwLDAsMCwxMTQsMzUsCisgICAgMCwwLDAsMTE0LDQsMSwwLDAsMTE0LDQwLDAsMCwwLDExNCw0MiwxLAorICAgIDAsMCwyNDQsMTEsMCwwLDAsOTUsMTAyLDEwNSwxMDgsMTA4LDk1LDk5LDk3LDk5LAorICAgIDEwNCwxMDEsMTE0LDYsMCwwLDAsMTE0LDQ1LDEsMCwwLDExNCwxMjYsMCwwLAorICAgIDAsMTE0LDQ0LDEsMCwwLDExNCwyOCwwLDAsMCwxMTQsNDUsMCwwLDAsCisgICAgMTE0LDQxLDEsMCwwLDExNCw0NCwwLDAsMCwxMTQsMTQwLDAsMCwwLDExNCwKKyAgICA0NiwwLDAsMCw0MCwxMiwwLDAsMCwxMTQsNzcsMCwwLDAsMTE0LDE3NywKKyAgICAwLDAsMCwxMTYsMTIsMCwwLDAsMTA1LDExNSw5NSwxMTAsOTcsMTA5LDEwMSwxMTUsCisgICAgMTEyLDk3LDk5LDEwMSwxMTYsMTEsMCwwLDAsMTE2LDk3LDEwNSwxMDgsOTUsMTA5LDExMSwKKyAgICAxMDAsMTE3LDEwOCwxMDEsMTE0LDE5MiwwLDAsMCwxMTYsNSwwLDAsMCw5OSw5NywKKyAgICA5OSwxMDQsMTAxLDExNiwxMiwwLDAsMCw5OSw5Nyw5OSwxMDQsMTAxLDk1LDEwOSwxMTEsCisgICAgMTAwLDExNywxMDgsMTAxLDExNiw5LDAsMCwwLDk4LDk3LDExNSwxMDEsOTUsMTEyLDk3LAorICAgIDExNiwxMDQsMTE0LDEwLDEsMCwwLDExNCwxNTksMCwwLDAsMTE2LDEzLDAsMCwKKyAgICAwLDEwNSwxMTAsMTA1LDExNiw5NSwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsMTE2LDksCisgICAgMCwwLDAsMTAyLDExNywxMDgsMTA4LDk1LDExMiw5NywxMTYsMTA0LDExNCw0LDAsMCwKKyAgICAwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDExNCwxODMsMCwwLDAsCisgICAgMTAxLDUsMCwwLDExNSw2NiwwLDAsMCwwLDMsNiwxLDE5LDEsMywKKyAgICAxLDI1LDEsMTMsMSwxMSwxLDE1LDEsMTAsMSwxMiwyLDksMSw5LAorICAgIDEsMTUsMiw5LDEsNiwyLDEyLDEsMTgsMSwxMiwxLDIyLDEsMTAsCisgICAgMSwxNSwxLDEyLDEsMjYsNCwxMiwyLDIyLDEsMjIsMSwyNSwxLDE2LAorICAgIDEsMTIsMSwyNiwxLDYsMSwxOSwxLDEzLDEsMTE3LDIyLDAsMCwwLAorICAgIDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsMTAyLDEwNSwxMTAsMTAwLDk1LAorICAgIDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsOTksMSwwLDAsMCwwLDAsMCwwLDksCisgICAgMCwwLDAsMTMsMCwwLDAsNjcsMCwwLDAsMTE1LDIsMSwwLDAsCisgICAgMTI0LDAsMCwxMDYsMCwwLDEyNSwxLDAsMTIxLDE5LDAsMTE2LDEsMCwxMDYsCisgICAgMiwwLDEyNCwxLDAsMTMxLDEsMCwxMjUsMiwwLDg3LDExMCwzMywwLDQsCisgICAgMTE2LDMsMCwxMTYsNCwwLDExNiw1LDAsMTAyLDMsMCwxMDcsMTAsMCwxMTQsCisgICAgNjMsMCwxLDEsMSwxMDMsMCwwLDEyNSwyLDAsODksMTEwLDEsMCw4OCwKKyAgICAxMTYsNiwwLDEwNiw3LDAsMTA2LDgsMCwxMDAsMSwwLDEzMSwxLDAsMTE1LAorICAgIDEwMCwwLDExNiw5LDAsMTI0LDIsMCwxMzEsMSwwLDEyNCwwLDAsOTUsMTAsCisgICAgMCwxMTAsMTExLDAsMTE2LDksMCwxMzEsMCwwLDEyNSwzLDAsMTIwLDkwLDAsCisgICAgMTI0LDIsMCw2OCw5Myw4MiwwLDEyNSw0LDAsMTI0LDQsMCwxMDYsMTEsMCwKKyAgICAxMDAsMiwwLDEzMSwxLDAsOTIsMywwLDEyNSw1LDAsMTI1LDYsMCwxMjUsCisgICAgNywwLDEyNCw2LDAsMTE0LDE3OSwwLDEwMCwzLDAsMTA2LDEyLDAsMTI0LDUsCisgICAgMCwxMjQsNywwLDEwNiwxMywwLDEzMSwwLDAsMTMxLDIsMCwxMjUsOCwwLAorICAgIDExMCw2LDAsMTI0LDUsMCwxMjUsOCwwLDEyNCwzLDAsMTA2LDE0LDAsMTI0LAorICAgIDgsMCwxMzEsMSwwLDEsMTEzLDExNiwwLDg3LDEyNCwzLDAsMTI0LDAsMCwKKyAgICA5NSwxMCwwLDExNiw2LDAsMTA2LDcsMCwxMDYsOCwwLDExNiwxNSwwLDEzMSwKKyAgICAxLDAsMTE0LDI1NCwwLDEwMCw0LDAsMTAwLDUsMCwxMzIsMCwwLDEyNCwyLAorICAgIDAsNjgsMTMxLDEsMCwxMjQsMCwwLDk1LDE2LDAsMTEwLDAsMCwxMDAsNiwKKyAgICAwLDgzLDQwLDcsMCwwLDAsMTE3LDY4LDAsMCwwLDcwLDEwNSwxMDgsMTA4LAorICAgIDMyLDExNiwxMDQsMTAxLDMyLDk5LDk3LDk5LDEwNCwxMDEsMzIsMTExLDEwMiwzMiwxMTIsMTExLAorICAgIDExNiwxMDEsMTEwLDExNiwxMDUsOTcsMTA4LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwzMiwKKyAgICA5NywxMTAsMTAwLDMyLDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwxMTUsMzIsMTAyLDExMSwxMTQsCisgICAgMzIsMTE2LDEwNCwxMDUsMTE1LDMyLDEwMCwxMDUsMTE0LDEwMSw5OSwxMTYsMTExLDExNCwxMjEsNDYsCisgICAgMTE0LDAsMCwwLDAsMTE0LDEwMywwLDAsMCwxMTcsNSwwLDAsMCwxMjMsCisgICAgMTI1LDQ2LDEyMywxMjUsOTksMSwwLDAsMCwwLDAsMCwwLDIsMCwwLAorICAgIDAsMywwLDAsMCw4MywwLDAsMCwxMTUsMjgsMCwwLDAsMTA0LDAsCisgICAgMCwxMjQsMCwwLDkzLDE4LDAsMTI1LDEsMCwxMjQsMSwwLDEwNiwwLDAsCisgICAgMTMxLDAsMCwxNDYsMiwwLDExMyw2LDAsODMsMTE0LDQsMCwwLDAsNDAsCisgICAgMSwwLDAsMCwxMTQsMTI2LDAsMCwwLDQwLDIsMCwwLDAsMTE0LDIyLAorICAgIDAsMCwwLDExNiwyLDAsMCwwLDEwMiwxMTAsMTE0LDQsMCwwLDAsMTE0LAorICAgIDQsMCwwLDAsMTE0LDUsMCwwLDAsMjQ1LDksMCwwLDAsNjAsMTE1LAorICAgIDEwMSwxMTYsOTksMTExLDEwOSwxMTIsNjIsMTc0LDUsMCwwLDExNSwyLDAsMCwwLAorICAgIDksMCwxMTcsNDEsMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzAsMTA1LDExMCwxMDAsMTAxLAorICAgIDExNCw0Niw5NSwxMDIsMTA1LDEwOCwxMDgsOTUsOTksOTcsOTksMTA0LDEwMSw0Niw2MCwxMDgsCisgICAgMTExLDk5LDk3LDEwOCwxMTUsNjIsNDYsNjAsMTE1LDEwMSwxMTYsOTksMTExLDEwOSwxMTIsNjIsCisgICAgNzgsNDAsMTcsMCwwLDAsMTE0LDM1LDAsMCwwLDExNCwzLDAsMCwwLAorICAgIDExNiw3LDAsMCwwLDEwOCwxMDUsMTE1LDExNiwxMDAsMTA1LDExNCwyNDQsMTcsMCwwLAorICAgIDAsNzAsMTA1LDEwOCwxMDEsNzgsMTExLDExNiw3MCwxMTEsMTE3LDExMCwxMDAsNjksMTE0LDExNCwKKyAgICAxMTEsMTE0LDI0NCwxNSwwLDAsMCw4MCwxMDEsMTE0LDEwOSwxMDUsMTE1LDExNSwxMDUsMTExLAorICAgIDExMCw2OSwxMTQsMTE0LDExMSwxMTQsMjQ0LDE4LDAsMCwwLDc4LDExMSwxMTYsNjUsNjgsCisgICAgMTA1LDExNCwxMDEsOTksMTE2LDExMSwxMTQsMTIxLDY5LDExNCwxMTQsMTExLDExNCwxMTQsNywwLAorICAgIDAsMCwxMTQsOCwwLDAsMCwxMTQsOSwwLDAsMCwxMTQsNDMsMSwwLAorICAgIDAsMTE0LDQ0LDEsMCwwLDExNCwxMDgsMCwwLDAsMTE0LDQ2LDAsMCwwLAorICAgIDExNCwxMjYsMCwwLDAsMjQ0LDMsMCwwLDAsOTcsMTAwLDEwMCwxMTQsMTAsMCwKKyAgICAwLDAsMTE0LDQ1LDEsMCwwLDQwLDksMCwwLDAsMTE0LDc3LDAsMCwKKyAgICAwLDExNCwzNSwwLDAsMCwxMTYsOCwwLDAsMCw5OSwxMTEsMTEwLDExNiwxMDEsCisgICAgMTEwLDExNiwxMTUsMTE2LDIxLDAsMCwwLDEwOCwxMTEsMTE5LDEwMSwxMTQsOTUsMTE1LDExNywKKyAgICAxMDIsMTAyLDEwNSwxMjAsOTUsOTksMTExLDExMCwxMTYsMTAxLDExMCwxMTYsMTE1LDExNCwyNSwxLAorICAgIDAsMCwxMTQsNjYsMCwwLDAsMTE0LDE5LDEsMCwwLDExNCwxMCwxLDAsCisgICAgMCwxMTYsOCwwLDAsMCwxMTAsMTAxLDExOSw5NSwxMTAsOTcsMTA5LDEwMSwxMTQsNCwKKyAgICAwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwxMTQsNDYsMSwKKyAgICAwLDAsMTQ1LDUsMCwwLDExNSwzNCwwLDAsMCwwLDIsOSwxLDMsCisgICAgMSwxOSwxLDIyLDMsMTEsMywxOCwxLDE4LDcsOSwxLDEzLDEsMjQsCisgICAgMSw2LDEsMjcsMiw2LDEsMTcsMSw5LDEsMTgsMSwxMTcsMjIsMCwKKyAgICAwLDAsNzAsMTA1LDEwOCwxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0Niw5NSwxMDIsMTA1LAorICAgIDEwOCwxMDgsOTUsOTksOTcsOTksMTA0LDEwMSw5OSwxLDAsMCwwLDAsMCwwLAorICAgIDAsMywwLDAsMCwzLDAsMCwwLDcsMCwwLDAsMTE1LDI1LDAsCisgICAgMCwwLDEzNSwwLDAsMTM1LDEsMCwxMDIsMiwwLDEwMCwxLDAsMTAwLDIsCisgICAgMCwxMzQsMCwwLDEyNSwyLDAsMTI0LDIsMCw4Myw0MCwzLDAsMCwwLAorICAgIDExNywyMCwxLDAsMCw2NSwzMiw5OSwxMDgsOTcsMTE1LDExNSwzMiwxMDksMTAxLDExNiwKKyAgICAxMDQsMTExLDEwMCwzMiwxMTksMTA0LDEwNSw5OSwxMDQsMzIsMTE0LDEwMSwxMTYsMTE3LDExNCwxMTAsCisgICAgMTE1LDMyLDk3LDMyLDk5LDEwOCwxMTEsMTE1LDExNywxMTQsMTAxLDMyLDExNiwxMTEsMzIsMTE3LAorICAgIDExNSwxMDEsMzIsMTExLDExMCwzMiwxMTUsMTIxLDExNSw0NiwxMTIsOTcsMTE2LDEwNCw5NSwxMDQsCisgICAgMTExLDExMSwxMDcsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMTE5LDEwNCwxMDUsOTksCisgICAgMTA0LDMyLDExOSwxMDUsMTA4LDEwOCwzMiwxMTQsMTAxLDExNiwxMTcsMTE0LDExMCwzMiw5NywxMTAsCisgICAgMzIsMTA1LDExMCwxMTUsMTE2LDk3LDExMCw5OSwxMDEsMzIsMTE3LDExNSwxMDUsMTEwLDEwMywzMiwKKyAgICAxMTYsMTA0LDEwMSwzMiwxMTUsMTEyLDEwMSw5OSwxMDUsMTAyLDEwNSwxMDEsMTAwLDMyLDEwOCwxMTEsCisgICAgOTcsMTAwLDEwMSwxMTQsMTE1LDMyLDk3LDExMCwxMDAsMzIsMTE2LDEwNCwxMDEsMzIsMTEyLDk3LAorICAgIDExNiwxMDQsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsOTksOTcsMTA4LDEwOCwxMDEsCisgICAgMTAwLDMyLDExMSwxMTAsMzIsMTE2LDEwNCwxMDEsMzIsOTksMTA4LDExMSwxMTUsMTE3LDExNCwxMDEsCisgICAgNDYsMTAsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsNzMsMTAyLDMyLDExNiwxMDQsCisgICAgMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLDk5LDk3LDEwOCwxMDgsMTAxLDEwMCwzMiwxMTEsMTEwLAorICAgIDMyLDExNiwxMDQsMTAxLDMyLDk5LDEwOCwxMTEsMTE1LDExNywxMTQsMTAxLDMyLDEwNSwxMTUsMzIsCisgICAgMTEwLDExMSwxMTYsMzIsOTcsMzIsMTAwLDEwNSwxMTQsMTAxLDk5LDExNiwxMTEsMTE0LDEyMSw0NCwKKyAgICAzMiw3MywxMDksMTEyLDExMSwxMTQsMTE2LDY5LDExNCwxMTQsMTExLDExNCwzMiwxMDUsMTE1LDEwLAorICAgIDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDExNCw5NywxMDUsMTE1LDEwMSwxMDAsNDYsMTAsCisgICAgMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsOTksMSwwLDAsMCwwLDAsCisgICAgMCwwLDEsMCwwLDAsNCwwLDAsMCwxOSwwLDAsMCwxMTUsNDYsCisgICAgMCwwLDAsMTE2LDAsMCwxMjQsMCwwLDEzMSwxLDAsMTE1LDMzLDAsMTE2LAorICAgIDEsMCwxMDAsMSwwLDEwMCwyLDAsMTI0LDAsMCwxMzEsMSwxLDEzMCwxLAorICAgIDAsMTEwLDAsMCwxMzYsMCwwLDEyNCwwLDAsMTM2LDEsMCwxNDAsMSwwLAorICAgIDgzLDQwLDMsMCwwLDAsMTE3LDQ1LDAsMCwwLDgwLDk3LDExNiwxMDQsMzIsCisgICAgMTA0LDExMSwxMTEsMTA3LDMyLDEwMiwxMTEsMTE0LDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwKKyAgICAxMDUsOTgsNDYsMTA5LDk3LDk5LDEwNCwxMDUsMTEwLDEwMSwxMTQsMTIxLDQ2LDcwLDEwNSwxMDgsCisgICAgMTAxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsMTE3LDMwLDAsMCwwLDExMSwxMTAsMTA4LAorICAgIDEyMSwzMiwxMDAsMTA1LDExNCwxMDEsOTksMTE2LDExMSwxMTQsMTA1LDEwMSwxMTUsMzIsOTcsMTE0LAorICAgIDEwMSwzMiwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwxMTYsMTAxLDEwMCwxMTQsMzUsMCwwLDAsCisgICAgNDAsMiwwLDAsMCwxMTQsNDUsMCwwLDAsMTE0LDE1NiwwLDAsMCw0MCwKKyAgICAxLDAsMCwwLDExNCwzNSwwLDAsMCw0MCwyLDAsMCwwLDExNCwyMDgsCisgICAgMCwwLDAsMjQ0LDE0LDAsMCwwLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsOTUsMTAwLAorICAgIDEwMSwxMTYsOTcsMTA1LDEwOCwxMTUsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsCisgICAgMjQ0LDI0LDAsMCwwLDExMiw5NywxMTYsMTA0LDk1LDEwNCwxMTEsMTExLDEwNyw5NSwxMDIsCisgICAgMTExLDExNCw5NSw3MCwxMDUsMTA4LDEwMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDE4Niw1LDAsCisgICAgMCwxMTUsNiwwLDAsMCwwLDIsMTIsMSwyMSwxLDExNyw1NCwwLDAsCisgICAgMCw3MCwxMDUsMTA4LDEwMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LDExMiw5NywxMTYsMTA0LAorICAgIDk1LDEwNCwxMTEsMTExLDEwNyw0Niw2MCwxMDgsMTExLDk5LDk3LDEwOCwxMTUsNjIsNDYsMTEyLAorICAgIDk3LDExNiwxMDQsOTUsMTA0LDExMSwxMTEsMTA3LDk1LDEwMiwxMTEsMTE0LDk1LDcwLDEwNSwxMDgsCisgICAgMTAxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsMTE0LDQsMCwwLDAsNDAsMywwLDAsCisgICAgMCwxMTQsMjA4LDAsMCwwLDExNCw1MiwxLDAsMCwxMTQsNTMsMSwwLDAsCisgICAgMTE0LDQsMCwwLDAsNDAsMiwwLDAsMCwxMTQsMjA4LDAsMCwwLDExNCwKKyAgICA1MiwxLDAsMCwxMTQsNSwwLDAsMCwyNDQsOSwwLDAsMCwxMTIsOTcsCisgICAgMTE2LDEwNCw5NSwxMDQsMTExLDExMSwxMDcsMTc2LDUsMCwwLDExNSw0LDAsMCwwLAorICAgIDAsMTAsMjEsNiwxMTcsMjAsMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzAsMTA1LDExMCwKKyAgICAxMDAsMTAxLDExNCw0NiwxMTIsOTcsMTE2LDEwNCw5NSwxMDQsMTExLDExMSwxMDcsOTksMSwwLAogICAgIDAsMCwwLDAsMCwwLDEsMCwwLDAsMiwwLDAsMCw2NywwLAotICAgIDAsMCwxMTUsMTMsMCwwLDAsMTAwLDMsMCwxMjQsMCwwLDk1LDAsMCwKLSAgICAxMDAsMiwwLDgzLDQwLDQsMCwwLDAsMTE3LDMxLDAsMCwwLDczLDExMCwKLSAgICAxMTgsOTcsMTA4LDEwNSwxMDAsOTcsMTE2LDEwMSwzMiwxMTYsMTA0LDEwMSwzMiwxMDAsMTA1LDExNCwKLSAgICAxMDEsOTksMTE2LDExMSwxMTQsMTIxLDMyLDEwOSwxMTYsMTA1LDEwOSwxMDEsNDYsMTA1LDEsMCwKLSAgICAwLDAsNzgsMTA1LDI1NSwyNTUsMjU1LDI1NSw0MCwxLDAsMCwwLDExNywxMSwwLAotICAgIDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMDksMTE2LDEwNSwxMDksMTAxLDQwLDEsMCwKLSAgICAwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDQwLDAsMCwwLDAsCi0gICAgNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwKLSAgICAxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLAotICAgIDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE3LDAsMCwwLDEwNSwxMTAsMTE4LDk3LAotICAgIDEwOCwxMDUsMTAwLDk3LDExNiwxMDEsOTUsOTksOTcsOTksMTA0LDEwMSwxMTUsNjYsNSwwLAotICAgIDAsMTE1LDIsMCwwLDAsMCwyLDExNywyOCwwLDAsMCw3MCwxMDUsMTA4LAotICAgIDEwMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LDEwNSwxMTAsMTE4LDk3LDEwOCwxMDUsMTAwLDk3LAotICAgIDExNiwxMDEsOTUsOTksOTcsOTksMTA0LDEwMSwxMTUsOTksMiwwLDAsMCwwLDAsCi0gICAgMCwwLDEyLDAsMCwwLDEzLDAsMCwwLDY3LDAsMCwwLDExNSwyMTYsCi0gICAgMSwwLDAsMTAwLDgsMCwxMjUsMiwwLDEyNCwxLDAsMTA2LDEsMCwxMDAsCi0gICAgMSwwLDEzMSwxLDAsMTAwLDIsMCwyNSwxMjUsMywwLDEyMSwyNSwwLDExNiwKLSAgICAyLDAsMTA2LDMsMCwxMjQsMCwwLDEwNiw0LDAsMTMxLDEsMCwxMDYsNSwKLSAgICAwLDEyNSw0LDAsODcsMTEwLDI0LDAsNCwxMTYsNiwwLDEwNywxMCwwLDExNCwKLSAgICA3NiwwLDEsMSwxLDEwMCw5LDAsMTI1LDQsMCw4OSwxMTAsMSwwLDg4LAotICAgIDEyNCw0LDAsMTI0LDAsMCwxMDYsNywwLDEwNywzLDAsMTE0LDExNCwwLDEyNCwKLSAgICAwLDAsMTA2LDgsMCwxMzEsMCwwLDEsMTI0LDQsMCwxMjQsMCwwLDk1LAotICAgIDcsMCwxMTAsMCwwLDExNiw5LDAsMTMxLDAsMCwxMTQsMTQ3LDAsMTI0LDAsCi0gICAgMCwxMDYsMTAsMCwxMjUsNSwwLDEyNCwzLDAsMTA2LDExLDAsMTMxLDAsMCwKLSAgICAxMjUsNiwwLDExMCwxNSwwLDEyNCwwLDAsMTA2LDEyLDAsMTI1LDUsMCwxMjQsCi0gICAgMywwLDEyNSw2LDAsMTI0LDYsMCwxMjQsNSwwLDEwNyw2LDAsMTE0LDQ1LAotICAgIDEsMTE2LDEzLDAsMTI0LDAsMCwxMDYsNCwwLDEyNCwzLDAsMTMxLDIsMCwKLSAgICAxMjUsNywwLDExNiwxNCwwLDEyNCw3LDAsMTMxLDEsMCwxMTQsNDUsMSwxMjAsCi0gICAgOTEsMCwxMjQsMCwwLDEwNiwxNSwwLDY4LDkzLDcxLDAsOTIsMiwwLDEyNSwKLSAgICA4LDAsMTI1LDksMCwxMDAsNCwwLDEyNCw4LDAsMjMsMTI1LDEwLDAsMTE2LAotICAgIDEzLDAsMTI0LDcsMCwxMjQsMTAsMCwxMzEsMiwwLDEyNSwxMSwwLDExNiwxNiwKLSAgICAwLDEyNCwxMSwwLDEzMSwxLDAsMTE0LDIxNCwwLDEyNCw5LDAsMTI0LDEsMCwKLSAgICAxMjQsMTEsMCwxMzEsMiwwLDEyNCw3LDAsMTAzLDEsMCwxMDIsMiwwLDgzLAotICAgIDExMywyMTQsMCw4NywxMDAsMTAsMCwxMjUsMiwwLDExMyw0NSwxLDExMCwwLDAsCi0gICAgMTIwLDEyMCwwLDEyNCwwLDAsMTA2LDE1LDAsNjgsOTMsMTA5LDAsOTIsMiwwLAotICAgIDEyNSw4LDAsMTI1LDksMCwxMTYsMTMsMCwxMjQsMCwwLDEwNiw0LDAsMTI0LAotICAgIDMsMCwxMjQsOCwwLDIzLDEzMSwyLDAsMTI1LDExLDAsMTE2LDE4LDAsMTAwLAotICAgIDUsMCwxMDYsMTksMCwxMjQsMTEsMCwxMzEsMSwwLDEwMCw2LDAsMTAwLDIsCi0gICAgMCwxMzEsMSwxLDEsMTI0LDYsMCwxMjQsOCwwLDIzLDEyNCw1LDAsMTA3LAotICAgIDYsMCwxMTQsNTUsMSwxMTYsMTYsMCwxMjQsMTEsMCwxMzEsMSwwLDExNCwxNjQsCi0gICAgMSwxMjQsOSwwLDEyNCwxLDAsMTI0LDExLDAsMTMxLDIsMCwxMDMsMCwwLAotICAgIDEwMiwyLDAsODMsMTEzLDU1LDEsMTEzLDU1LDEsODcsMTI0LDIsMCwxMTQsMjA2LAotICAgIDEsMTE2LDE4LDAsMTAwLDcsMCwxMDYsMTksMCwxMjQsNywwLDEzMSwxLDAsCi0gICAgMTMxLDEsMCwxLDEwMCwxMSwwLDEyNCw3LDAsMTAzLDEsMCwxMDIsMiwwLAotICAgIDgzLDEwMCwxMSwwLDEwMywwLDAsMTAyLDIsMCw4Myw0MCwxMiwwLDAsMCwKLSAgICAxMTcsMTI1LDAsMCwwLDg0LDExNCwxMjEsMzIsMTE2LDExMSwzMiwxMDIsMTA1LDExMCwxMDAsCi0gICAgMzIsOTcsMzIsMTA4LDExMSw5NywxMDAsMTAxLDExNCwzMiwxMDIsMTExLDExNCwzMiwxMTYsMTA0LAotICAgIDEwMSwzMiwxMTUsMTEyLDEwMSw5OSwxMDUsMTAyLDEwNSwxMDEsMTAwLDMyLDEwOSwxMTEsMTAwLDExNywKLSAgICAxMDgsMTAxLDQ0LDMyLDExMSwxMTQsMzIsMTE2LDEwNCwxMDEsMzIsMTEwLDk3LDEwOSwxMDEsMTE1LAotICAgIDExMiw5Nyw5OSwxMDEsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMTEyLDk3LDk5LAotICAgIDEwNyw5NywxMDMsMTAxLDMyLDExMiwxMTEsMTE0LDExNiwxMDUsMTExLDExMCwxMTUsNDYsMzIsODIsCi0gICAgMTAxLDExNiwxMTcsMTE0LDExMCwxMTUsMzIsNDAsMTA4LDExMSw5NywxMDAsMTAxLDExNCw0NCwzMiwKLSAgICAxMDgsMTA1LDExNSwxMTYsNDUsMTExLDEwMiw0NSwxMTIsMTExLDExNCwxMTYsMTA1LDExMSwxMTAsMTE1LAotICAgIDQxLDQ2LDExNywxLDAsMCwwLDQ2LDEwNSwyLDAsMCwwLDEwNSwxLDAsCi0gICAgMCwwLDExNyw4LDAsMCwwLDk1LDk1LDEwNSwxMTAsMTA1LDExNiw5NSw5NSwxMTcsCi0gICAgOSwwLDAsMCwxMTYsMTE0LDEyMSwxMDUsMTEwLDEwMywzMiwxMjMsMTI1LDExNyw5LDAsCi0gICAgMCwwLDExOCwxMDEsMTE0LDk4LDExMSwxMTUsMTA1LDExNiwxMjEsMTE3LDI1LDAsMCwwLAotICAgIDExMiwxMTEsMTE1LDExNSwxMDUsOTgsMTA4LDEwMSwzMiwxMTAsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LAotICAgIDk5LDEwMSwzMiwxMDIsMTExLDExNCwzMiwxMjMsMTI1LDcwLDEwNSwyNTUsMjU1LDI1NSwyNTUsODQsCi0gICAgNzgsNDAsMjEsMCwwLDAsMTE3LDUsMCwwLDAsNzAsOTcsMTA4LDExNSwxMDEsCi0gICAgMTE3LDEwLDAsMCwwLDExNCwxMTIsOTcsMTE0LDExNiwxMDUsMTE2LDEwNSwxMTEsMTEwLDExNywKLSAgICAzLDAsMCwwLDk1LDExMSwxMTUsMTE3LDQsMCwwLDAsMTE1LDExNiw5NywxMTYsCi0gICAgMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LDgsMCwwLDAsMTE1LDExNiwKLSAgICA5NSwxMDksMTE2LDEwNSwxMDksMTAxLDExNyw3LDAsMCwwLDc5LDgzLDY5LDExNCwxMTQsCi0gICAgMTExLDExNCwxMTcsMTEsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA5LDExNiwxMDUsCi0gICAgMTA5LDEwMSwxMTcsMTEsMCwwLDAsOTUsMTAyLDEwNSwxMDgsMTA4LDk1LDk5LDk3LDk5LAotICAgIDEwNCwxMDEsMTE3LDExLDAsMCwwLDk1LDExNCwxMDEsMTA4LDk3LDEyMCw5NSw5OSw5NywKLSAgICAxMTUsMTAxLDExNywxOSwwLDAsMCw5NSwxMTQsMTAxLDEwOCw5NywxMjAsMTAxLDEwMCw5NSwKLSAgICAxMTIsOTcsMTE2LDEwNCw5NSw5OSw5Nyw5OSwxMDQsMTAxLDExNyw1LDAsMCwwLDEwOCwKLSAgICAxMTEsMTE5LDEwMSwxMTQsMTE3LDExLDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDk5LAotICAgIDk3LDk5LDEwNCwxMDEsMTE3LDEwLDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNiwKLSAgICAxMTEsMTA1LDExMCwxMTcsMTEsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA1LDExNSwKLSAgICAxMDAsMTA1LDExNCwxMTcsOCwwLDAsMCw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDExNSwKLSAgICAxMTcsMTIsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA1LDExNSwxMDIsMTA1LDEwOCwKLSAgICAxMDEsMTE3LDQsMCwwLDAsODQsMTE0LDExNywxMDEsMTE3LDE2LDAsMCwwLDk1LAotICAgIDExOCwxMDEsMTE0LDk4LDExMSwxMTUsMTAxLDk1LDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAxLDExNywKLSAgICA2LDAsMCwwLDEwMiwxMTEsMTE0LDEwOSw5NywxMTYsMTE3LDQsMCwwLDAsNzgsCi0gICAgMTExLDExMCwxMDEsNDAsMTIsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsCi0gICAgMTAyLDExNyw4LDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSwxMTcsMTIsCi0gICAgMCwwLDAsMTA1LDExNSw5NSwxMTAsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSwxMTcsCi0gICAgMTEsMCwwLDAsMTE2LDk3LDEwNSwxMDgsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LAotICAgIDUsMCwwLDAsMTA5LDExNiwxMDUsMTA5LDEwMSwxMTcsNSwwLDAsMCw5OSw5NywKLSAgICA5OSwxMDQsMTAxLDExNywxMiwwLDAsMCw5OSw5Nyw5OSwxMDQsMTAxLDk1LDEwOSwxMTEsCi0gICAgMTAwLDExNywxMDgsMTAxLDExNyw5LDAsMCwwLDk4LDk3LDExNSwxMDEsOTUsMTEyLDk3LAotICAgIDExNiwxMDQsMTE3LDYsMCwwLDAsMTE1LDExNywxMDIsMTAyLDEwNSwxMjAsMTE3LDYsMCwKLSAgICAwLDAsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsMTMsMCwwLDAsMTA1LDExMCwxMDUsCi0gICAgMTE2LDk1LDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsMTA5LDEwMSwxMTcsOSwwLDAsMCwxMDIsCi0gICAgMTE3LDEwOCwxMDgsOTUsMTEyLDk3LDExNiwxMDQsNDAsMCwwLDAsMCw0MCwwLDAsCi0gICAgMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsCi0gICAgMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsCi0gICAgMTE0LDk3LDExMiw2MiwxMTcsMTEsMCwwLDAsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOCwxMTEsCi0gICAgOTcsMTAwLDEwMSwxMTQsNzIsNSwwLDAsMTE1LDY2LDAsMCwwLDAsMyw2LAotICAgIDEsMTksMSwzLDEsMjUsMSwxMywxLDExLDEsMTUsMSwxMCwxLDEyLAotICAgIDIsOSwxLDksMSwxNSwyLDksMSw2LDIsMTIsMSwxOCwxLDEyLAotICAgIDEsMjIsMSwxMCwxLDE1LDEsMTIsMSwyNiw0LDEyLDIsMjIsMSwyMiwKLSAgICAxLDI1LDEsMTYsMSwxMiwxLDI2LDEsNiwxLDE5LDEsMTMsMSwxMTcsCi0gICAgMjIsMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0NiwxMDIsCi0gICAgMTA1LDExMCwxMDAsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCw5OSwxLDAsMCwwLDAsCi0gICAgMCwwLDAsOSwwLDAsMCwxMywwLDAsMCw2NywwLDAsMCwxMTUsCi0gICAgOCwxLDAsMCwxMjQsMCwwLDEwNiwwLDAsMTI1LDEsMCwxMjEsMTksMCwKLSAgICAxMTYsMSwwLDEwNiwyLDAsMTI0LDEsMCwxMzEsMSwwLDEyNSwyLDAsODcsCi0gICAgMTEwLDMzLDAsNCwxMTYsMywwLDExNiw0LDAsMTE2LDUsMCwxMDIsMywwLAotICAgIDEwNywxMCwwLDExNCw2MywwLDEsMSwxLDEwMywwLDAsMTI1LDIsMCw4OSwKLSAgICAxMTAsMSwwLDg4LDExNiw2LDAsMTA2LDcsMCwxMDYsOCwwLDEwMCwxLDAsCi0gICAgMTMxLDEsMCwxMTUsMTAwLDAsMTE2LDksMCwxMjQsMiwwLDEzMSwxLDAsMTI0LAotICAgIDAsMCw5NSwxMCwwLDExMCwxMTEsMCwxMTYsOSwwLDEzMSwwLDAsMTI1LDMsCi0gICAgMCwxMjAsOTAsMCwxMjQsMiwwLDY4LDkzLDgyLDAsMTI1LDQsMCwxMjQsNCwKLSAgICAwLDEwNiwxMSwwLDEwMCwyLDAsMTMxLDEsMCw5MiwzLDAsMTI1LDUsMCwKLSAgICAxMjUsNiwwLDEyNSw3LDAsMTI0LDYsMCwxMTQsMTc5LDAsMTAwLDMsMCwxMDYsCi0gICAgMTIsMCwxMjQsNSwwLDEyNCw3LDAsMTA2LDEzLDAsMTMxLDAsMCwxMzEsMiwKLSAgICAwLDEyNSw4LDAsMTEwLDYsMCwxMjQsNSwwLDEyNSw4LDAsMTI0LDMsMCwKLSAgICAxMDYsMTQsMCwxMjQsOCwwLDEzMSwxLDAsMSwxMTMsMTE2LDAsODcsMTI0LDMsCi0gICAgMCwxMjQsMCwwLDk1LDEwLDAsMTE2LDYsMCwxMDYsNywwLDEwNiw4LDAsCi0gICAgMTE2LDE1LDAsMTMxLDEsMCwxMTQsNCwxLDExNiw5LDAsMTAwLDQsMCwxMDAsCi0gICAgNSwwLDEzMiwwLDAsMTI0LDIsMCw2OCwxMzEsMSwwLDEzMSwxLDAsMTI0LAotICAgIDAsMCw5NSwxNiwwLDExMCwwLDAsMTAwLDYsMCw4Myw0MCw3LDAsMCwKLSAgICAwLDExNyw2OCwwLDAsMCw3MCwxMDUsMTA4LDEwOCwzMiwxMTYsMTA0LDEwMSwzMiw5OSwKLSAgICA5Nyw5OSwxMDQsMTAxLDMyLDExMSwxMDIsMzIsMTEyLDExMSwxMTYsMTAxLDExMCwxMTYsMTA1LDk3LAotICAgIDEwOCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsMzIsOTcsMTEwLDEwMCwzMiwxMTIsOTcsCi0gICAgOTksMTA3LDk3LDEwMywxMDEsMTE1LDMyLDEwMiwxMTEsMTE0LDMyLDExNiwxMDQsMTA1LDExNSwzMiwKLSAgICAxMDAsMTA1LDExNCwxMDEsOTksMTE2LDExMSwxMTQsMTIxLDQ2LDExNywzLDAsMCwwLDExOSwKLSAgICAxMDUsMTEwLDExNywxLDAsMCwwLDQ2LDExNyw1LDAsMCwwLDEyMywxMjUsNDYsCi0gICAgMTIzLDEyNSw5OSwxLDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwyLAotICAgIDAsMCwwLDExNSwwLDAsMCwxMTUsMjcsMCwwLDAsMTI0LDAsMCw5MywKLSAgICAxNywwLDEyNSwxLDAsMTI0LDEsMCwxMDYsMCwwLDEzMSwwLDAsODYsMSwKLSAgICAxMTMsMywwLDEwMCwwLDAsODMsNDAsMSwwLDAsMCw3OCw0MCwxLDAsCi0gICAgMCwwLDExNyw1LDAsMCwwLDEwOCwxMTEsMTE5LDEwMSwxMTQsNDAsMiwwLDAsCi0gICAgMCwxMTcsMiwwLDAsMCw0Niw0OCwxMTcsMiwwLDAsMCwxMDIsMTEwLDQwLAotICAgIDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLAotICAgIDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0NiwKLSAgICA5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDksMCwwLDAsCi0gICAgNjAsMTAzLDEwMSwxMTAsMTAxLDEyMCwxMTIsMTE0LDYyLDE0NSw1LDAsMCwxMTUsMiwwLAotICAgIDAsMCw2LDAsMTE3LDQxLDAsMCwwLDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwxMTAsCi0gICAgMTAwLDEwMSwxMTQsNDYsOTUsMTAyLDEwNSwxMDgsMTA4LDk1LDk5LDk3LDk5LDEwNCwxMDEsNDYsCi0gICAgNjAsMTA4LDExMSw5OSw5NywxMDgsMTE1LDYyLDQ2LDYwLDEwMywxMDEsMTEwLDEwMSwxMjAsMTEyLAotICAgIDExNCw2Miw3OCw0MCwxNywwLDAsMCwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LAotICAgIDEwNCwxMTcsMywwLDAsMCw5NSwxMTEsMTE1LDExNyw3LDAsMCwwLDEwOCwxMDUsCi0gICAgMTE1LDExNiwxMDAsMTA1LDExNCwxMTcsMTcsMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzgsMTExLAotICAgIDExNiw3MCwxMTEsMTE3LDExMCwxMDAsNjksMTE0LDExNCwxMTEsMTE0LDExNywxNSwwLDAsMCwKLSAgICA4MCwxMDEsMTE0LDEwOSwxMDUsMTE1LDExNSwxMDUsMTExLDExMCw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LAotICAgIDE4LDAsMCwwLDc4LDExMSwxMTYsNjUsNjgsMTA1LDExNCwxMDEsOTksMTE2LDExMSwxMTQsCi0gICAgMTIxLDY5LDExNCwxMTQsMTExLDExNCwxMTcsMywwLDAsMCwxMTUsMTIxLDExNSwxMTcsOCwKLSAgICAwLDAsMCwxMTIsMTA4LDk3LDExNiwxMDIsMTExLDExNCwxMDksMTE3LDEwLDAsMCwwLAotICAgIDExNSwxMTYsOTcsMTE0LDExNiwxMTUsMTE5LDEwNSwxMTYsMTA0LDExNywzLDAsMCwwLDExNSwKLSAgICAxMDEsMTE2LDExNywxMSwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSw5OSw5Nyw5OSwKLSAgICAxMDQsMTAxLDExNyw5LDAsMCwwLDExMiw5NywxMTQsMTE2LDEwNSwxMTYsMTA1LDExMSwxMTAsCi0gICAgMTE3LDYsMCwwLDAsMTAyLDExMSwxMTQsMTA5LDk3LDExNiwxMTcsNSwwLDAsMCwKLSAgICAxMDgsMTExLDExOSwxMDEsMTE0LDExNywzLDAsMCwwLDk3LDEwMCwxMDAsMTE3LDI3LDAsCi0gICAgMCwwLDk1LDY3LDY1LDgzLDY5LDk1LDczLDc4LDgzLDY5LDc4LDgzLDczLDg0LAotICAgIDczLDg2LDY5LDk1LDgwLDc2LDY1LDg0LDcwLDc5LDgyLDc3LDgzLDExNywxOSwwLAotICAgIDAsMCw5NSwxMTQsMTAxLDEwOCw5NywxMjAsMTAxLDEwMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwKLSAgICA5OSw5Nyw5OSwxMDQsMTAxLDQwLDksMCwwLDAsMTE3LDQsMCwwLDAsMTE1LAotICAgIDEwMSwxMDgsMTAyLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDExNyw4LDAsMCwKLSAgICAwLDk5LDExMSwxMTAsMTE2LDEwMSwxMTAsMTE2LDExNSwxMTcsMjEsMCwwLDAsMTA4LDExMSwKLSAgICAxMTksMTAxLDExNCw5NSwxMTUsMTE3LDEwMiwxMDIsMTA1LDEyMCw5NSw5OSwxMTEsMTEwLDExNiwxMDEsCi0gICAgMTEwLDExNiwxMTUsMTE3LDQsMCwwLDAsMTA1LDExNiwxMDEsMTA5LDExNyw0LDAsMCwKLSAgICAwLDExMCw5NywxMDksMTAxLDExNywzLDAsMCwwLDEwMCwxMTEsMTE2LDExNyw2LDAsCi0gICAgMCwwLDExNSwxMTcsMTAyLDEwMiwxMDUsMTIwLDExNyw4LDAsMCwwLDExMCwxMDEsMTE5LAotICAgIDk1LDExMCw5NywxMDksMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsCi0gICAgMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLAotICAgIDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsCi0gICAgNjIsMTE3LDExLDAsMCwwLDk1LDEwMiwxMDUsMTA4LDEwOCw5NSw5OSw5Nyw5OSwxMDQsCi0gICAgMTAxLDExNiw1LDAsMCwxMTUsMzQsMCwwLDAsMCwyLDksMSwzLDEsCi0gICAgMTksMSwyMiwzLDExLDMsMTgsMSwxOCw3LDksMSwxMywxLDI0LDEsCi0gICAgNiwxLDI3LDIsNiwxLDE3LDEsOSwxLDE4LDEsMTE3LDIyLDAsMCwKLSAgICAwLDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsOTUsMTAyLDEwNSwxMDgsCi0gICAgMTA4LDk1LDk5LDk3LDk5LDEwNCwxMDEsOTksMSwwLDAsMCwwLDAsMCwwLAotICAgIDMsMCwwLDAsMywwLDAsMCw3LDAsMCwwLDExNSwyNSwwLDAsCi0gICAgMCwxMzUsMCwwLDEzNSwxLDAsMTAyLDIsMCwxMDAsMSwwLDEwMCwyLDAsCi0gICAgMTM0LDAsMCwxMjUsMiwwLDEyNCwyLDAsODMsNDAsMywwLDAsMCwxMTcsCi0gICAgMjAsMSwwLDAsNjUsMzIsOTksMTA4LDk3LDExNSwxMTUsMzIsMTA5LDEwMSwxMTYsMTA0LAotICAgIDExMSwxMDAsMzIsMTE5LDEwNCwxMDUsOTksMTA0LDMyLDExNCwxMDEsMTE2LDExNywxMTQsMTEwLDExNSwKLSAgICAzMiw5NywzMiw5OSwxMDgsMTExLDExNSwxMTcsMTE0LDEwMSwzMiwxMTYsMTExLDMyLDExNywxMTUsCi0gICAgMTAxLDMyLDExMSwxMTAsMzIsMTE1LDEyMSwxMTUsNDYsMTEyLDk3LDExNiwxMDQsOTUsMTA0LDExMSwKLSAgICAxMTEsMTA3LDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDExOSwxMDQsMTA1LDk5LDEwNCwKLSAgICAzMiwxMTksMTA1LDEwOCwxMDgsMzIsMTE0LDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsOTcsMTEwLDMyLAotICAgIDEwNSwxMTAsMTE1LDExNiw5NywxMTAsOTksMTAxLDMyLDExNywxMTUsMTA1LDExMCwxMDMsMzIsMTE2LAotICAgIDEwNCwxMDEsMzIsMTE1LDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwzMiwxMDgsMTExLDk3LAotICAgIDEwMCwxMDEsMTE0LDExNSwzMiw5NywxMTAsMTAwLDMyLDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsCi0gICAgMTA0LDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDk5LDk3LDEwOCwxMDgsMTAxLDEwMCwKLSAgICAzMiwxMTEsMTEwLDMyLDExNiwxMDQsMTAxLDMyLDk5LDEwOCwxMTEsMTE1LDExNywxMTQsMTAxLDQ2LAotICAgIDEwLDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDczLDEwMiwzMiwxMTYsMTA0LDEwMSwKLSAgICAzMiwxMTIsOTcsMTE2LDEwNCwzMiw5OSw5NywxMDgsMTA4LDEwMSwxMDAsMzIsMTExLDExMCwzMiwKLSAgICAxMTYsMTA0LDEwMSwzMiw5OSwxMDgsMTExLDExNSwxMTcsMTE0LDEwMSwzMiwxMDUsMTE1LDMyLDExMCwKLSAgICAxMTEsMTE2LDMyLDk3LDMyLDEwMCwxMDUsMTE0LDEwMSw5OSwxMTYsMTExLDExNCwxMjEsNDQsMzIsCi0gICAgNzMsMTA5LDExMiwxMTEsMTE0LDExNiw2OSwxMTQsMTE0LDExMSwxMTQsMzIsMTA1LDExNSwxMCwzMiwKLSAgICAzMiwzMiwzMiwzMiwzMiwzMiwzMiwxMTQsOTcsMTA1LDExNSwxMDEsMTAwLDQ2LDEwLDEwLAotICAgIDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDk5LDEsMCwwLDAsMCwwLDAsCi0gICAgMCwxLDAsMCwwLDQsMCwwLDAsMTksMCwwLDAsMTE1LDQ2LDAsCi0gICAgMCwwLDExNiwwLDAsMTI0LDAsMCwxMzEsMSwwLDExNSwzMywwLDExNiwxLAotICAgIDAsMTAwLDEsMCwxMDAsMiwwLDEyNCwwLDAsMTMxLDEsMSwxMzAsMSwwLAotICAgIDExMCwwLDAsMTM2LDAsMCwxMjQsMCwwLDEzNiwxLDAsMTQwLDEsMCw4MywKLSAgICA0MCwzLDAsMCwwLDExNyw0NSwwLDAsMCw4MCw5NywxMTYsMTA0LDMyLDEwNCwKLSAgICAxMTEsMTExLDEwNywzMiwxMDIsMTExLDExNCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LAotICAgIDk4LDQ2LDEwOSw5Nyw5OSwxMDQsMTA1LDExMCwxMDEsMTE0LDEyMSw0Niw3MCwxMDUsMTA4LDEwMSwKLSAgICA3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LDExNywzMCwwLDAsMCwxMTEsMTEwLDEwOCwxMjEsCi0gICAgMzIsMTAwLDEwNSwxMTQsMTAxLDk5LDExNiwxMTEsMTE0LDEwNSwxMDEsMTE1LDMyLDk3LDExNCwxMDEsCi0gICAgMzIsMTE1LDExNywxMTIsMTEyLDExMSwxMTQsMTE2LDEwMSwxMDAsMTE3LDQsMCwwLDAsMTEyLAotICAgIDk3LDExNiwxMDQsNDAsMiwwLDAsMCwxMTcsMTEsMCwwLDAsOTUsMTEyLDk3LAotICAgIDExNiwxMDQsOTUsMTA1LDExNSwxMDAsMTA1LDExNCwxMTcsMTEsMCwwLDAsNzMsMTA5LDExMiwKLSAgICAxMTEsMTE0LDExNiw2OSwxMTQsMTE0LDExMSwxMTQsNDAsMSwwLDAsMCwxMTcsNCwwLAotICAgIDAsMCwxMTIsOTcsMTE2LDEwNCw0MCwyLDAsMCwwLDExNywzLDAsMCwwLAotICAgIDk5LDEwOCwxMTUsMTE3LDE0LDAsMCwwLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsOTUsMTAwLAotICAgIDEwMSwxMTYsOTcsMTA1LDEwOCwxMTUsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsCi0gICAgNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSwKLSAgICA5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDI0LDAsCi0gICAgMCwwLDExMiw5NywxMTYsMTA0LDk1LDEwNCwxMTEsMTExLDEwNyw5NSwxMDIsMTExLDExNCw5NSwKLSAgICA3MCwxMDUsMTA4LDEwMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDE1Nyw1LDAsMCwxMTUsNiwKLSAgICAwLDAsMCwwLDIsMTIsMSwyMSwxLDExNyw1NCwwLDAsMCw3MCwxMDUsCi0gICAgMTA4LDEwMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LDExMiw5NywxMTYsMTA0LDk1LDEwNCwxMTEsCi0gICAgMTExLDEwNyw0Niw2MCwxMDgsMTExLDk5LDk3LDEwOCwxMTUsNjIsNDYsMTEyLDk3LDExNiwxMDQsCi0gICAgOTUsMTA0LDExMSwxMTEsMTA3LDk1LDEwMiwxMTEsMTE0LDk1LDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwKLSAgICAxMTAsMTAwLDEwMSwxMTQsNDAsMCwwLDAsMCw0MCwzLDAsMCwwLDExNywzLAotICAgIDAsMCwwLDk5LDEwOCwxMTUsMTE3LDE0LDAsMCwwLDEwOCwxMTEsOTcsMTAwLDEwMSwKLSAgICAxMTQsOTUsMTAwLDEwMSwxMTYsOTcsMTA1LDEwOCwxMTUsMTE3LDI0LDAsMCwwLDExMiw5NywKLSAgICAxMTYsMTA0LDk1LDEwNCwxMTEsMTExLDEwNyw5NSwxMDIsMTExLDExNCw5NSw3MCwxMDUsMTA4LDEwMSwKLSAgICA3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQwLDAsMCwwLDAsNDAsMiwwLDAsMCwKLSAgICAxMTcsMywwLDAsMCw5OSwxMDgsMTE1LDExNywxNCwwLDAsMCwxMDgsMTExLDk3LAotICAgIDEwMCwxMDEsMTE0LDk1LDEwMCwxMDEsMTE2LDk3LDEwNSwxMDgsMTE1LDExNywyOSwwLDAsMCwKLSAgICA2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LAotICAgIDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsOSwwLAotICAgIDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwxMDQsMTExLDExMSwxMDcsMTQ3LDUsMCwwLDExNSwKLSAgICA0LDAsMCwwLDAsMTAsMjEsNiwxMTcsMjAsMCwwLDAsNzAsMTA1LDEwOCwKLSAgICAxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0NiwxMTIsOTcsMTE2LDEwNCw5NSwxMDQsMTExLDExMSwKLSAgICAxMDcsOTksMSwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMiwwLAotICAgIDAsMCw2NywwLDAsMCwxMTUsMTQsMCwwLDAsMTAwLDEsMCwxMjQsMCwKLSAgICAwLDEwNiwwLDAsMTAyLDEsMCwyMiw4Myw0MCwyLDAsMCwwLDc4LDExNywKLSAgICAxNCwwLDAsMCw3MCwxMDUsMTA4LDEwMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQwLDM3LAotICAgIDExNCw0MSw0MCwxLDAsMCwwLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LAotICAgIDQwLDEsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDQwLDAsCi0gICAgMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwKLSAgICAxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSwKLSAgICA5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDgsMCwwLDAsOTUsCi0gICAgOTUsMTE0LDEwMSwxMTIsMTE0LDk1LDk1LDE2NSw1LDAsMCwxMTUsMiwwLDAsMCwKLSAgICAwLDEsMTE3LDE5LDAsMCwwLDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwxMTAsMTAwLDEwMSwKLSAgICAxMTQsNDYsOTUsOTUsMTE0LDEwMSwxMTIsMTE0LDk1LDk1LDc4LDQwLDEzLDAsMCwwLAotICAgIDExNyw4LDAsMCwwLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LDk1LDExNywxMCwwLAotICAgIDAsMCw5NSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSw5NSwxMTcsMTIsMCwwLAotICAgIDAsOTUsOTUsMTEzLDExNyw5NywxMDgsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDcsMCwKLSAgICAwLDAsOTUsOTUsMTAwLDExMSw5OSw5NSw5NSwxMTcsOCwwLDAsMCw5NSw5NSwKLSAgICAxMDUsMTEwLDEwNSwxMTYsOTUsOTUsMTE3LDE3LDAsMCwwLDEwNSwxMTAsMTE4LDk3LDEwOCwKLSAgICAxMDUsMTAwLDk3LDExNiwxMDEsOTUsOTksOTcsOTksMTA0LDEwMSwxMTUsMTE3LDE3LDAsMCwKLSAgICAwLDk1LDEwMiwxMDUsMTEwLDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMTUsMTA0LAotICAgIDEwNSwxMDksMTE3LDExLDAsMCwwLDEwMiwxMDUsMTEwLDEwMCw5NSwxMDksMTExLDEwMCwxMTcsCi0gICAgMTA4LDEwMSwxMTcsMTEsMCwwLDAsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOCwxMTEsOTcsMTAwLAotICAgIDEwMSwxMTQsMTE3LDExLDAsMCwwLDk1LDEwMiwxMDUsMTA4LDEwOCw5NSw5OSw5Nyw5OSwKLSAgICAxMDQsMTAxLDExNywxMSwwLDAsMCw5OSwxMDgsOTcsMTE1LDExNSwxMDksMTAxLDExNiwxMDQsCi0gICAgMTExLDEwMCwxMTcsOSwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwxMDQsMTExLDExMSwxMDcsCi0gICAgMTE3LDgsMCwwLDAsOTUsOTUsMTE0LDEwMSwxMTIsMTE0LDk1LDk1LDQwLDEsMCwKLSAgICAwLDAsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOCwxMTEsOTksOTcsMTA4LDExNSw5NSwKLSAgICA5NSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLAotICAgIDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsCi0gICAgOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMCwwLAotICAgIDAsMCw3MCwxMDUsMTA4LDEwMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQzLDUsMCwwLAotICAgIDExNSwxNiwwLDAsMCwxNiw3LDYsMiwxMiwxNCwxMiw0LDYsMiwxMiwKLSAgICA0NCwxMiwzMSwxOCwxOCwxMTcsMTAsMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzAsMTA1LAotICAgIDExMCwxMDAsMTAxLDExNCw5OSwxLDAsMCwwLDAsMCwwLDAsMSwwLDAsCi0gICAgMCwyLDAsMCwwLDY2LDAsMCwwLDExNSw1MCwwLDAsMCwxMjQsMCwKLSAgICAwLDY5LDEwMSwwLDAsOTAsMSwwLDEwMCwwLDAsOTAsMiwwLDEwMCwxLAotICAgIDAsOTAsMywwLDEwMCwyLDAsMTAwLDMsMCwxMzIsMCwwLDkwLDQsMCwKLSAgICAxMDAsNCwwLDEwMCw1LDAsMTMyLDAsMCw5MCw1LDAsMTAwLDYsMCw4MywKLSAgICA0MCw3LDAsMCwwLDExNywxOCwwLDAsMCw5NSw3MywxMDksMTEyLDExMSwxMTQsCi0gICAgMTE2LDc2LDExMSw5OSwxMDcsNjcsMTExLDExMCwxMTYsMTAxLDEyMCwxMTYsMTE3LDM2LDAsMCwKLSAgICAwLDY3LDExMSwxMTAsMTE2LDEwMSwxMjAsMTE2LDMyLDEwOSw5NywxMTAsOTcsMTAzLDEwMSwxMTQsCi0gICAgMzIsMTAyLDExMSwxMTQsMzIsMTE2LDEwNCwxMDEsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsCi0gICAgMTA4LDExMSw5OSwxMDcsNDYsOTksMSwwLDAsMCwwLDAsMCwwLDEsMCwKLSAgICAwLDAsMSwwLDAsMCw2NywwLDAsMCwxMTUsMTQsMCwwLDAsMTE2LAotICAgIDAsMCwxMDYsMSwwLDEzMSwwLDAsMSwxMDAsMSwwLDgzLDQwLDIsMCwKLSAgICAwLDAsMTE3LDI0LDAsMCwwLDY1LDk5LDExMywxMTcsMTA1LDExNCwxMDEsMzIsMTE2LAotICAgIDEwNCwxMDEsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsMTA4LDExMSw5OSwxMDcsNDYsNzgsCi0gICAgNDAsMiwwLDAsMCwxMTcsNCwwLDAsMCw5NSwxMDUsMTA5LDExMiwxMTcsMTIsCi0gICAgMCwwLDAsOTcsOTksMTEzLDExNywxMDUsMTE0LDEwMSw5NSwxMDgsMTExLDk5LDEwNyw0MCwKLSAgICAxLDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiw0MCwwLDAsCi0gICAgMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLAotICAgIDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsCi0gICAgMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw5LDAsMCwwLDk1LDk1LAotICAgIDEwMSwxMTAsMTE2LDEwMSwxMTQsOTUsOTUsMTc1LDUsMCwwLDExNSwyLDAsMCwwLAotICAgIDAsMiwxMTcsMjgsMCwwLDAsOTUsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw3NiwxMTEsCi0gICAgOTksMTA3LDY3LDExMSwxMTAsMTE2LDEwMSwxMjAsMTE2LDQ2LDk1LDk1LDEwMSwxMTAsMTE2LDEwMSwKLSAgICAxMTQsOTUsOTUsOTksNCwwLDAsMCwwLDAsMCwwLDQsMCwwLDAsCi0gICAgMSwwLDAsMCw2NywwLDAsMCwxMTUsMTQsMCwwLDAsMTE2LDAsMCwKLSAgICAxMDYsMSwwLDEzMSwwLDAsMSwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsCi0gICAgMTE3LDYwLDAsMCwwLDgyLDEwMSwxMDgsMTAxLDk3LDExNSwxMDEsMzIsMTE2LDEwNCwxMDEsCi0gICAgMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsMTA4LDExMSw5OSwxMDcsMzIsMTE0LDEwMSwxMDMsCi0gICAgOTcsMTE0LDEwMCwxMDgsMTAxLDExNSwxMTUsMzIsMTExLDEwMiwzMiw5NywxMTAsMTIxLDMyLDExNCwKLSAgICA5NywxMDUsMTE1LDEwMSwxMDAsMzIsMTAxLDEyMCw5OSwxMDEsMTEyLDExNiwxMDUsMTExLDExMCwxMTUsCi0gICAgNDYsNzgsNDAsMiwwLDAsMCwxMTcsNCwwLDAsMCw5NSwxMDUsMTA5LDExMiwKLSAgICAxMTcsMTIsMCwwLDAsMTE0LDEwMSwxMDgsMTAxLDk3LDExNSwxMDEsOTUsMTA4LDExMSw5OSwKLSAgICAxMDcsNDAsNCwwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LAotICAgIDgsMCwwLDAsMTAxLDEyMCw5OSw5NSwxMTYsMTIxLDExMiwxMDEsMTE3LDksMCwwLAotICAgIDAsMTAxLDEyMCw5OSw5NSwxMTgsOTcsMTA4LDExNywxMDEsMTE3LDEzLDAsMCwwLDEwMSwKLSAgICAxMjAsOTksOTUsMTE2LDExNCw5Nyw5OSwxMDEsOTgsOTcsOTksMTA3LDQwLDAsMCwwLAotICAgIDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLAotICAgIDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsCi0gICAgMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDgsMCwwLDAsOTUsOTUsMTAxLAotICAgIDEyMCwxMDUsMTE2LDk1LDk1LDE3OSw1LDAsMCwxMTUsMiwwLDAsMCwwLDIsCi0gICAgMTE3LDI3LDAsMCwwLDk1LDczLDEwOSwxMTIsMTExLDExNCwxMTYsNzYsMTExLDk5LDEwNywKLSAgICA2NywxMTEsMTEwLDExNiwxMDEsMTIwLDExNiw0Niw5NSw5NSwxMDEsMTIwLDEwNSwxMTYsOTUsOTUsCi0gICAgNzgsNDAsNiwwLDAsMCwxMTcsOCwwLDAsMCw5NSw5NSwxMTAsOTcsMTA5LAotICAgIDEwMSw5NSw5NSwxMTcsMTAsMCwwLDAsOTUsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCi0gICAgOTUsOTUsMTE3LDEyLDAsMCwwLDk1LDk1LDExMywxMTcsOTcsMTA4LDExMCw5NywxMDksCi0gICAgMTAxLDk1LDk1LDExNyw3LDAsMCwwLDk1LDk1LDEwMCwxMTEsOTksOTUsOTUsMTE3LAotICAgIDksMCwwLDAsOTUsOTUsMTAxLDExMCwxMTYsMTAxLDExNCw5NSw5NSwxMTcsOCwwLAotICAgIDAsMCw5NSw5NSwxMDEsMTIwLDEwNSwxMTYsOTUsOTUsNDAsMSwwLDAsMCwxMTcsCi0gICAgMTAsMCwwLDAsOTUsOTUsMTA4LDExMSw5OSw5NywxMDgsMTE1LDk1LDk1LDQwLDAsCi0gICAgMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwKLSAgICAxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSwKLSAgICA5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE4LDAsMCwwLDk1LAotICAgIDczLDEwOSwxMTIsMTExLDExNCwxMTYsNzYsMTExLDk5LDEwNyw2NywxMTEsMTEwLDExNiwxMDEsMTIwLAotICAgIDExNiwxNzEsNSwwLDAsMTE1LDYsMCwwLDAsMTYsMiw2LDIsMTIsNCwKLSAgICAxMTcsMTgsMCwwLDAsOTUsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw3NiwxMTEsOTksMTA3LAotICAgIDY3LDExMSwxMTAsMTE2LDEwMSwxMjAsMTE2LDk5LDMsMCwwLDAsMCwwLDAsMCwKLSAgICA1LDAsMCwwLDQsMCwwLDAsNjcsMCwwLDAsMTE1LDkxLDAsMCwKLSAgICAwLDEyNCwxLDAsMTA2LDAsMCwxMDAsMSwwLDEyNCwyLDAsMTAwLDIsMCwKLSAgICAyNCwxMzEsMiwwLDEyNSwzLDAsMTE2LDEsMCwxMjQsMywwLDEzMSwxLDAsCi0gICAgMTI0LDIsMCwxMDcsMCwwLDExNCw1NSwwLDExNiwyLDAsMTAwLDMsMCwxMzEsCi0gICAgMSwwLDEzMCwxLDAsMTEwLDAsMCwxMjQsMywwLDEwMCw0LDAsMjUsMTI1LAotICAgIDQsMCwxMjQsMCwwLDExNCw4NywwLDEwMCw1LDAsMTA2LDMsMCwxMjQsNCwKLSAgICAwLDEyNCwwLDAsMTMxLDIsMCw4MywxMjQsNCwwLDgzLDQwLDYsMCwwLAotICAgIDAsMTE3LDUwLDAsMCwwLDgyLDEwMSwxMTUsMTExLDEwOCwxMTgsMTAxLDMyLDk3LDMyLAotICAgIDExNCwxMDEsMTA4LDk3LDExNiwxMDUsMTE4LDEwMSwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwKLSAgICAxMTAsOTcsMTA5LDEwMSwzMiwxMTYsMTExLDMyLDk3LDExMCwzMiw5Nyw5OCwxMTUsMTExLDEwOCwKLSAgICAxMTcsMTE2LDEwMSwzMiwxMTEsMTEwLDEwMSw0NiwxMTcsMSwwLDAsMCw0NiwxMDUsMSwKLSAgICAwLDAsMCwxMTcsNTAsMCwwLDAsOTcsMTE2LDExNiwxMDEsMTA5LDExMiwxMTYsMTAxLAotICAgIDEwMCwzMiwxMTQsMTAxLDEwOCw5NywxMTYsMTA1LDExOCwxMDEsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwKLSAgICAxMTYsMzIsOTgsMTAxLDEyMSwxMTEsMTEwLDEwMCwzMiwxMTYsMTExLDExMiw0NSwxMDgsMTAxLDExOCwKLSAgICAxMDEsMTA4LDMyLDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwxMDUsMCwwLDAsMCwxMTcsCi0gICAgNSwwLDAsMCwxMjMsMTI1LDQ2LDEyMywxMjUsNDAsNCwwLDAsMCwxMTcsNiwKLSAgICAwLDAsMCwxMTQsMTE1LDExMiwxMDgsMTA1LDExNiwxMTcsMywwLDAsMCwxMDgsMTAxLAotICAgIDExMCwxMTcsMTAsMCwwLDAsODYsOTcsMTA4LDExNywxMDEsNjksMTE0LDExNCwxMTEsMTE0LAotICAgIDExNyw2LDAsMCwwLDEwMiwxMTEsMTE0LDEwOSw5NywxMTYsNDAsNSwwLDAsMCwKLSAgICAxMTcsNCwwLDAsMCwxMTAsOTcsMTA5LDEwMSwxMTcsNywwLDAsMCwxMTIsOTcsCi0gICAgOTksMTA3LDk3LDEwMywxMDEsMTE3LDUsMCwwLDAsMTA4LDEwMSwxMTgsMTAxLDEwOCwxMTcsCi0gICAgNCwwLDAsMCw5OCwxMDUsMTE2LDExNSwxMTcsNCwwLDAsMCw5OCw5NywxMTUsCi0gICAgMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsCi0gICAgNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSwKLSAgICA5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEzLDAsCi0gICAgMCwwLDk1LDExNCwxMDEsMTE1LDExMSwxMDgsMTE4LDEwMSw5NSwxMTAsOTcsMTA5LDEwMSwxODQsCisgICAgMCwwLDExNSwxNiwwLDAsMCwxMDAsMSwwLDEwNiwwLDAsMTI0LDAsMCwKKyAgICAxMDYsMSwwLDEzMSwxLDAsODMsNDAsMiwwLDAsMCw3OCwxMTcsMTYsMCwKKyAgICAwLDAsNzAsMTA1LDEwOCwxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0MCwxMjMsMzMsMTE0LAorICAgIDEyNSw0MSw0MCwyLDAsMCwwLDExNCw0NiwwLDAsMCwxMTQsMzUsMCwwLAorICAgIDAsNDAsMSwwLDAsMCwxMTQsNzcsMCwwLDAsMTE0LDQsMCwwLDAsCisgICAgMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMTE0LDg5LDAsMCwwLDE5NCwKKyAgICA1LDAsMCwxMTUsMiwwLDAsMCwwLDEsMTE3LDE5LDAsMCwwLDcwLAorICAgIDEwNSwxMDgsMTAxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsOTUsOTUsMTE0LDEwMSwxMTIsMTE0LAorICAgIDk1LDk1LDc4LDQwLDEzLDAsMCwwLDExNCw1NiwwLDAsMCwxMTQsNTUsMCwKKyAgICAwLDAsMTE0LDU3LDAsMCwwLDExNCw1OCwwLDAsMCwxMTQsNzgsMCwwLAorICAgIDAsMTE0LDI5LDEsMCwwLDExNCwxODksMCwwLDAsMTE0LDIxMCwwLDAsMCwKKyAgICAxMTQsMTgzLDAsMCwwLDExNCw0NiwxLDAsMCwxMTQsMjE1LDAsMCwwLDExNCwKKyAgICA1NCwxLDAsMCwxMTQsODksMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsCisgICAgMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLDAsMTE0LDQwLDEsCisgICAgMCwwLDcyLDUsMCwwLDExNSwxNiwwLDAsMCwxMiw3LDYsMiwxMiwKKyAgICAxNCwxMiw0LDYsMiwxMiw0NCwxMiwzMSwxOCwxOCwxMTQsNDAsMSwwLDAsCisgICAgOTksMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwwLDAsCisgICAgMCw2NCwwLDAsMCwxMTUsNDYsMCwwLDAsMTAxLDAsMCw5MCwxLDAsCisgICAgMTAwLDAsMCw5MCwyLDAsMTAwLDEsMCw5MCwzLDAsMTAwLDIsMCwxMDAsCisgICAgMywwLDEzMiwwLDAsOTAsNCwwLDEwMCw0LDAsMTAwLDUsMCwxMzIsMCwKKyAgICAwLDkwLDUsMCwxMDAsNiwwLDgzLDQwLDcsMCwwLDAsMjQ0LDE4LDAsCisgICAgMCwwLDk1LDczLDEwOSwxMTIsMTExLDExNCwxMTYsNzYsMTExLDk5LDEwNyw2NywxMTEsMTEwLAorICAgIDExNiwxMDEsMTIwLDExNiwxMTcsMzYsMCwwLDAsNjcsMTExLDExMCwxMTYsMTAxLDEyMCwxMTYsCisgICAgMzIsMTA5LDk3LDExMCw5NywxMDMsMTAxLDExNCwzMiwxMDIsMTExLDExNCwzMiwxMTYsMTA0LDEwMSwKKyAgICAzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwzMiwxMDgsMTExLDk5LDEwNyw0Niw5OSwxLDAsCisgICAgMCwwLDAsMCwwLDAsMSwwLDAsMCwxLDAsMCwwLDY3LDAsCisgICAgMCwwLDExNSwxNCwwLDAsMCwxMTYsMCwwLDEwNiwxLDAsMTMxLDAsMCwKKyAgICAxLDEwMCwxLDAsODMsNDAsMiwwLDAsMCwxMTcsMjQsMCwwLDAsNjUsCisgICAgOTksMTEzLDExNywxMDUsMTE0LDEwMSwzMiwxMTYsMTA0LDEwMSwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LAorICAgIDExNiwzMiwxMDgsMTExLDk5LDEwNyw0Niw3OCw0MCwyLDAsMCwwLDExNCw5NiwwLAorICAgIDAsMCwyNDQsMTIsMCwwLDAsOTcsOTksMTEzLDExNywxMDUsMTE0LDEwMSw5NSwxMDgsCisgICAgMTExLDk5LDEwNyw0MCwxLDAsMCwwLDExNCw3NywwLDAsMCwxMTQsNCwwLAorICAgIDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwxMTQsMTUwLDAsMCwKKyAgICAwLDIwNCw1LDAsMCwxMTUsMiwwLDAsMCwwLDIsMTE3LDI4LDAsMCwKKyAgICAwLDk1LDczLDEwOSwxMTIsMTExLDExNCwxMTYsNzYsMTExLDk5LDEwNyw2NywxMTEsMTEwLDExNiwKKyAgICAxMDEsMTIwLDExNiw0Niw5NSw5NSwxMDEsMTEwLDExNiwxMDEsMTE0LDk1LDk1LDk5LDQsMCwKKyAgICAwLDAsMCwwLDAsMCw0LDAsMCwwLDEsMCwwLDAsNjcsMCwKKyAgICAwLDAsMTE1LDE0LDAsMCwwLDExNiwwLDAsMTA2LDEsMCwxMzEsMCwwLAorICAgIDEsMTAwLDEsMCw4Myw0MCwyLDAsMCwwLDExNyw2MCwwLDAsMCw4MiwKKyAgICAxMDEsMTA4LDEwMSw5NywxMTUsMTAxLDMyLDExNiwxMDQsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsCisgICAgMTE2LDMyLDEwOCwxMTEsOTksMTA3LDMyLDExNCwxMDEsMTAzLDk3LDExNCwxMDAsMTA4LDEwMSwxMTUsCisgICAgMTE1LDMyLDExMSwxMDIsMzIsOTcsMTEwLDEyMSwzMiwxMTQsOTcsMTA1LDExNSwxMDEsMTAwLDMyLAorICAgIDEwMSwxMjAsOTksMTAxLDExMiwxMTYsMTA1LDExMSwxMTAsMTE1LDQ2LDc4LDQwLDIsMCwwLAorICAgIDAsMTE0LDk2LDAsMCwwLDExNCw5NywwLDAsMCw0MCw0LDAsMCwwLAorICAgIDExNCw3NywwLDAsMCwxMTYsOCwwLDAsMCwxMDEsMTIwLDk5LDk1LDExNiwxMjEsCisgICAgMTEyLDEwMSwxMTYsOSwwLDAsMCwxMDEsMTIwLDk5LDk1LDExOCw5NywxMDgsMTE3LDEwMSwKKyAgICAxMTYsMTMsMCwwLDAsMTAxLDEyMCw5OSw5NSwxMTYsMTE0LDk3LDk5LDEwMSw5OCw5NywKKyAgICA5OSwxMDcsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLAorICAgIDAsMTE0LDE1MywwLDAsMCwyMDgsNSwwLDAsMTE1LDIsMCwwLDAsMCwKKyAgICAyLDExNywyNywwLDAsMCw5NSw3MywxMDksMTEyLDExMSwxMTQsMTE2LDc2LDExMSw5OSwKKyAgICAxMDcsNjcsMTExLDExMCwxMTYsMTAxLDEyMCwxMTYsNDYsOTUsOTUsMTAxLDEyMCwxMDUsMTE2LDk1LAorICAgIDk1LDc4LDQwLDYsMCwwLDAsMTE0LDU2LDAsMCwwLDExNCw1NSwwLDAsCisgICAgMCwxMTQsNTcsMCwwLDAsMTE0LDU4LDAsMCwwLDExNCwxNTAsMCwwLDAsCisgICAgMTE0LDE1MywwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsCisgICAgNCwwLDAsMCwxMTQsNSwwLDAsMCwxMTQsNTUsMSwwLDAsMjAwLDUsCisgICAgMCwwLDExNSw2LDAsMCwwLDEyLDIsNiwyLDEyLDQsMTE0LDU1LDEsCisgICAgMCwwLDk5LDMsMCwwLDAsMCwwLDAsMCw1LDAsMCwwLDQsCisgICAgMCwwLDAsNjcsMCwwLDAsMTE1LDkxLDAsMCwwLDEyNCwxLDAsMTA2LAorICAgIDAsMCwxMDAsMSwwLDEyNCwyLDAsMTAwLDIsMCwyNCwxMzEsMiwwLDEyNSwKKyAgICAzLDAsMTE2LDEsMCwxMjQsMywwLDEzMSwxLDAsMTI0LDIsMCwxMDcsMCwKKyAgICAwLDExNCw1NSwwLDExNiwyLDAsMTAwLDMsMCwxMzEsMSwwLDEzMCwxLDAsCisgICAgMTEwLDAsMCwxMjQsMywwLDEwMCw0LDAsMjUsMTI1LDQsMCwxMjQsMCwwLAorICAgIDExNCw4NywwLDEwMCw1LDAsMTA2LDMsMCwxMjQsNCwwLDEyNCwwLDAsMTMxLAorICAgIDIsMCw4MywxMjQsNCwwLDgzLDQwLDYsMCwwLDAsMTE3LDUwLDAsMCwKKyAgICAwLDgyLDEwMSwxMTUsMTExLDEwOCwxMTgsMTAxLDMyLDk3LDMyLDExNCwxMDEsMTA4LDk3LDExNiwKKyAgICAxMDUsMTE4LDEwMSwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMTAsOTcsMTA5LDEwMSwzMiwKKyAgICAxMTYsMTExLDMyLDk3LDExMCwzMiw5Nyw5OCwxMTUsMTExLDEwOCwxMTcsMTE2LDEwMSwzMiwxMTEsCisgICAgMTEwLDEwMSw0NiwxMTQsMTAzLDAsMCwwLDExNCwyOSwwLDAsMCwxMTcsNTAsMCwKKyAgICAwLDAsOTcsMTE2LDExNiwxMDEsMTA5LDExMiwxMTYsMTAxLDEwMCwzMiwxMTQsMTAxLDEwOCw5NywKKyAgICAxMTYsMTA1LDExOCwxMDEsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsOTgsMTAxLDEyMSwxMTEsCisgICAgMTEwLDEwMCwzMiwxMTYsMTExLDExMiw0NSwxMDgsMTAxLDExOCwxMDEsMTA4LDMyLDExMiw5Nyw5OSwKKyAgICAxMDcsOTcsMTAzLDEwMSwxMTQsNzAsMCwwLDAsMTE3LDUsMCwwLDAsMTIzLDEyNSwKKyAgICA0NiwxMjMsMTI1LDQwLDQsMCwwLDAsMTE0LDM0LDAsMCwwLDExNCwzMSwwLAorICAgIDAsMCwxMTQsMTIwLDAsMCwwLDExNCw0NiwwLDAsMCw0MCw1LDAsMCwKKyAgICAwLDExNCw2NiwwLDAsMCwyNDQsNywwLDAsMCwxMTIsOTcsOTksMTA3LDk3LAorICAgIDEwMywxMDEsMjQ0LDUsMCwwLDAsMTA4LDEwMSwxMTgsMTAxLDEwOCwxMTYsNCwwLDAsCisgICAgMCw5OCwxMDUsMTE2LDExNSwxMTYsNCwwLDAsMCw5OCw5NywxMTUsMTAxLDExNCw0LAorICAgIDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwxMywwLAorICAgIDAsMCw5NSwxMTQsMTAxLDExNSwxMTEsMTA4LDExOCwxMDEsOTUsMTEwLDk3LDEwOSwxMDEsMjEzLAogICAgIDUsMCwwLDExNSwxMCwwLDAsMCwwLDIsMjIsMSwxOCwxLDE1LDEsCi0gICAgMTAsMSwxMTcsMTMsMCwwLDAsOTUsMTE0LDEwMSwxMTUsMTExLDEwOCwxMTgsMTAxLDk1LAotICAgIDExMCw5NywxMDksMTAxLDk5LDIsMCwwLDAsMCwwLDAsMCw0LDAsMCwKLSAgICAwLDExLDAsMCwwLDY3LDAsMCwwLDExNSwxMzgsMCwwLDAsMTE2LDAsCi0gICAgMCwxMDYsMSwwLDExNSwyOCwwLDExNiwyLDAsMTA2LDMsMCwxMDAsMSwwLAotICAgIDExNiw0LDAsMTMxLDIsMCwxLDExMCwwLDAsMTIwLDEwMywwLDExNiwwLDAsCi0gICAgMTA2LDEsMCw2OCw5Myw4OCwwLDEyNSwyLDAsMTE2LDUsMCwxMzEsMCwwLAotICAgIDE0MywyMywwLDEsMTI0LDIsMCwxMDYsNiwwLDEyNCwwLDAsMTI0LDEsMCwKLSAgICAxMzEsMiwwLDEyNSwzLDAsODcsMTAwLDIsMCw4MSw4OCwxMjQsMywwLDEwMCwKLSAgICAyLDAsMTA3LDksMCwxMTQsMzgsMCwxMjQsMCwwLDExNiwwLDAsMTA2LDgsCi0gICAgMCwxMDcsNywwLDExNCwxMDksMCwxMjQsMywwLDgzLDExNiwwLDAsMTA2LDgsCi0gICAgMCwxMjQsMCwwLDI1LDEwNiw5LDAsODMsMTEzLDM4LDAsMTEzLDM4LDAsODcsCi0gICAgMTAwLDIsMCw4MywxMDAsMiwwLDgzLDQwLDMsMCwwLDAsMTE3LDIzLDAsCi0gICAgMCwwLDcwLDEwNSwxMTAsMTAwLDMyLDk3LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDM5LAotICAgIDExNSwzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDExNywyMiwwLDAsMCwxMTUsMTIxLAotICAgIDExNSw0NiwxMDksMTAxLDExNiw5Nyw5NSwxMTIsOTcsMTE2LDEwNCwzMiwxMDUsMTE1LDMyLDEwMSwKLSAgICAxMDksMTEyLDExNiwxMjEsNzgsNDAsMTAsMCwwLDAsMTE3LDMsMCwwLDAsMTE1LAotICAgIDEyMSwxMTUsMTE3LDksMCwwLDAsMTA5LDEwMSwxMTYsOTcsOTUsMTEyLDk3LDExNiwxMDQsCi0gICAgMTE3LDksMCwwLDAsOTUsMTE5LDk3LDExNCwxMTAsMTA1LDExMCwxMDMsMTE1LDExNyw0LAotICAgIDAsMCwwLDExOSw5NywxMTQsMTEwLDExNywxMywwLDAsMCw3MywxMDksMTEyLDExMSwKLSAgICAxMTQsMTE2LDg3LDk3LDExNCwxMTAsMTA1LDExMCwxMDMsMTE3LDE4LDAsMCwwLDk1LDczLAotICAgIDEwOSwxMTIsMTExLDExNCwxMTYsNzYsMTExLDk5LDEwNyw2NywxMTEsMTEwLDExNiwxMDEsMTIwLDExNiwKLSAgICAxMTcsMTEsMCwwLDAsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLAotICAgIDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNyw3LDAsMCwwLDEwOSwxMTEsCi0gICAgMTAwLDExNywxMDgsMTAxLDExNSwxMTcsMTAsMCwwLDAsOTUsOTUsMTA4LDExMSw5NywxMDAsCi0gICAgMTAxLDExNCw5NSw5NSw0MCw0LDAsMCwwLDExNyw0LDAsMCwwLDExMCw5NywKLSAgICAxMDksMTAxLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDExNyw2LDAsMCwwLAotICAgIDEwMiwxMDUsMTEwLDEwMCwxMDEsMTE0LDExNyw2LDAsMCwwLDEwOCwxMTEsOTcsMTAwLDEwMSwKLSAgICAxMTQsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCwKLSAgICA2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LAotICAgIDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTIsMCwKLSAgICAwLDAsOTUsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDE5Myw1LAotICAgIDAsMCwxMTUsMjAsMCwwLDAsMCwyLDksMSwxOSwxLDE2LDEsMTAsCi0gICAgMSwyNCwxLDEyLDIsMTUsMSw0LDIsMjEsMiwxMTcsMTIsMCwwLDAsCi0gICAgOTUsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk5LDMsMCwwLAotICAgIDAsMCwwLDAsMCw0LDAsMCwwLDQsMCwwLDAsNjcsMCwwLAotICAgIDAsMTE1LDE5NCwwLDAsMCwxMTYsMCwwLDEyNCwwLDAsMTE2LDEsMCwxMzEsCi0gICAgMiwwLDExNSw0NSwwLDExNiwyLDAsMTAwLDEsMCwxMDYsMywwLDExNiw0LAotICAgIDAsMTI0LDAsMCwxMzEsMSwwLDEzMSwxLDAsMTMxLDEsMCwxMzAsMSwwLAotICAgIDExMCwwLDAsMTI0LDIsMCwxMDAsMiwwLDEwNywwLDAsMTE0LDcyLDAsMTE2LAotICAgIDUsMCwxMDAsMywwLDEzMSwxLDAsMTMwLDEsMCwxMTAsMCwwLDEyNCwxLAotICAgIDAsMTE0LDE1NiwwLDExNiwwLDAsMTI0LDEsMCwxMTYsMSwwLDEzMSwyLDAsCi0gICAgMTE1LDEwOCwwLDExNiwyLDAsMTAwLDQsMCwxMzEsMSwwLDEzMCwxLDAsMTEzLAotICAgIDE1NiwwLDEyNCwxLDAsMTE2LDYsMCwxMDYsNywwLDEwNyw3LDAsMTE0LDE1NiwKLSAgICAwLDEwMCw1LDAsMTI1LDMsMCwxMTYsOCwwLDEyNCwzLDAsMTA2LDMsMCwKLSAgICAxMjQsMSwwLDEzMSwxLDAsMTMxLDEsMCwxMzAsMSwwLDExMywxNTYsMCwxMTAsCi0gICAgMCwwLDEyNCwwLDAsMTIsMTE0LDE5MCwwLDEyNCwyLDAsMTAwLDIsMCwxMDcsCi0gICAgMiwwLDExNCwxOTAsMCwxMTYsNSwwLDEwMCw2LDAsMTMxLDEsMCwxMzAsMSwKLSAgICAwLDExMCwwLDAsMTAwLDcsMCw4Myw0MCw4LDAsMCwwLDExNywyOCwwLAotICAgIDAsMCw4NiwxMDEsMTE0LDEwNSwxMDIsMTIxLDMyLDk3LDExNCwxMDMsMTE3LDEwOSwxMDEsMTEwLAotICAgIDExNiwxMTUsMzIsOTcsMTE0LDEwMSwzMiwzNCwxMTUsOTcsMTEwLDEwMSwzNCw0NiwxMTcsMzEsCi0gICAgMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTEwLDk3LDEwOSwxMDEsMzIsMTA5LAotICAgIDExNywxMTUsMTE2LDMyLDk4LDEwMSwzMiwxMTUsMTE2LDExNCw0NCwzMiwxMTAsMTExLDExNiwzMiwKLSAgICAxMjMsMTI1LDEwNSwwLDAsMCwwLDExNywxOCwwLDAsMCwxMDgsMTAxLDExOCwxMDEsCi0gICAgMTA4LDMyLDEwOSwxMTcsMTE1LDExNiwzMiw5OCwxMDEsMzIsNjIsNjEsMzIsNDgsMTE3LDMxLAotICAgIDAsMCwwLDk1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSw5NSwzMiwxMTAsCi0gICAgMTExLDExNiwzMiwxMTUsMTAxLDExNiwzMiwxMTYsMTExLDMyLDk3LDMyLDExNSwxMTYsMTE0LDEwNSwKLSAgICAxMTAsMTAzLDExNyw2MSwwLDAsMCw4MCw5NywxMTQsMTAxLDExMCwxMTYsMzIsMTA5LDExMSwKLSAgICAxMDAsMTE3LDEwOCwxMDEsMzIsMTIzLDMzLDExNCwxMjUsMzIsMTEwLDExMSwxMTYsMzIsMTA4LDExMSwKLSAgICA5NywxMDAsMTAxLDEwMCw0NCwzMiw5OSw5NywxMTAsMTEwLDExMSwxMTYsMzIsMTEyLDEwMSwxMTQsCi0gICAgMTAyLDExMSwxMTQsMTA5LDMyLDExNCwxMDEsMTA4LDk3LDExNiwxMDUsMTE4LDEwMSwzMiwxMDUsMTA5LAotICAgIDExMiwxMTEsMTE0LDExNiwxMTcsMTcsMCwwLDAsNjksMTA5LDExMiwxMTYsMTIxLDMyLDEwOSwKLSAgICAxMTEsMTAwLDExNywxMDgsMTAxLDMyLDExMCw5NywxMDksMTAxLDc4LDQwLDksMCwwLDAsCi0gICAgMTE3LDEwLDAsMCwwLDEwNSwxMTUsMTA1LDExMCwxMTUsMTE2LDk3LDExMCw5OSwxMDEsMTE3LAotICAgIDMsMCwwLDAsMTE1LDExNiwxMTQsMTE3LDksMCwwLDAsODQsMTIxLDExMiwxMDEsCi0gICAgNjksMTE0LDExNCwxMTEsMTE0LDExNyw2LDAsMCwwLDEwMiwxMTEsMTE0LDEwOSw5NywxMTYsCi0gICAgMTE3LDQsMCwwLDAsMTE2LDEyMSwxMTIsMTAxLDExNywxMCwwLDAsMCw4Niw5NywKLSAgICAxMDgsMTE3LDEwMSw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDMsMCwwLDAsMTE1LDEyMSwxMTUsCi0gICAgMTE3LDcsMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDExNywxMSwwLDAsCi0gICAgMCw4MywxMjEsMTE1LDExNiwxMDEsMTA5LDY5LDExNCwxMTQsMTExLDExNCw0MCw0LDAsMCwKLSAgICAwLDExNyw0LDAsMCwwLDExMCw5NywxMDksMTAxLDExNyw3LDAsMCwwLDExMiwKLSAgICA5Nyw5OSwxMDcsOTcsMTAzLDEwMSwxMTcsNSwwLDAsMCwxMDgsMTAxLDExOCwxMDEsMTA4LAotICAgIDExNywzLDAsMCwwLDEwOSwxMTUsMTAzLDQwLDAsMCwwLDAsNDAsMCwwLAotICAgIDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LAotICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LAotICAgIDExNCw5NywxMTIsNjIsMTE3LDEzLDAsMCwwLDk1LDExNSw5NywxMTAsMTA1LDExNiwxMjEsCi0gICAgOTUsOTksMTA0LDEwMSw5OSwxMDcsMjEwLDUsMCwwLDExNSwyNCwwLDAsMCwwLAotICAgIDIsMTUsMSwzMCwxLDEyLDEsMTUsMSw2LDEsMTUsMSwxNSwxLDE1LAotICAgIDEsNiwyLDI3LDEsMTksMSwxMTcsMTMsMCwwLDAsOTUsMTE1LDk3LDExMCwKLSAgICAxMDUsMTE2LDEyMSw5NSw5OSwxMDQsMTAxLDk5LDEwNywxMTcsMjAsMCwwLDAsNzgsMTExLAotICAgIDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDExMCw5NywxMDksMTAxLDEwMCwzMiwxMjMsMzMsCi0gICAgMTE0LDEyNSw5OSwyLDAsMCwwLDAsMCwwLDAsOSwwLDAsMCwyNywKLSAgICAwLDAsMCw2NywwLDAsMCwxMTUsMTIsMiwwLDAsMTAwLDAsMCwxMjUsCi0gICAgMiwwLDEyNCwwLDAsMTA2LDEsMCwxMDAsMSwwLDEzMSwxLDAsMTAwLDIsCi0gICAgMCwyNSwxMjUsMywwLDEyNCwzLDAsMTE0LDE3OCwwLDEyNCwzLDAsMTE2LDIsCi0gICAgMCwxMDYsMywwLDEwNyw3LDAsMTE0LDYyLDAsMTE2LDQsMCwxMjQsMSwwLAotICAgIDEyNCwzLDAsMTMxLDIsMCwxLDExMCwwLDAsMTI0LDAsMCwxMTYsMiwwLAotICAgIDEwNiwzLDAsMTA3LDYsMCwxMTQsODgsMCwxMTYsMiwwLDEwNiwzLDAsMTI0LAotICAgIDAsMCwyNSw4MywxMTYsMiwwLDEwNiwzLDAsMTI0LDMsMCwyNSwxMjUsNCwKLSAgICAwLDEyMSwxMywwLDEyNCw0LDAsMTA2LDUsMCwxMjUsMiwwLDg3LDExMywxNzgsCi0gICAgMCw0LDExNiw2LDAsMTA3LDEwLDAsMTE0LDE3NCwwLDEsMSwxLDExNiw3LAotICAgIDAsMTAwLDMsMCwyMywxMDYsOCwwLDEyNCwwLDAsMTI0LDMsMCwxMzEsMiwKLSAgICAwLDEyNSw1LDAsMTE2LDksMCwxMjQsNSwwLDEwMCw0LDAsMTI0LDAsMCwKLSAgICAxMzEsMSwxLDEzMCwxLDAsODksMTEzLDE3OCwwLDg4LDExMCwwLDAsMTE2LDEwLAotICAgIDAsMTI0LDAsMCwxMjQsMiwwLDEzMSwyLDAsMTI1LDYsMCwxMjQsNiwwLAotICAgIDEwMCwwLDAsMTA3LDgsMCwxMTQsMjUwLDAsMTE2LDksMCwxMTYsNywwLDEwNiwKLSAgICA4LDAsMTI0LDAsMCwxMzEsMSwwLDEwMCw0LDAsMTI0LDAsMCwxMzEsMSwKLSAgICAxLDEyNSw3LDAsMTAwLDEwLDAsMTI0LDcsMCw5NSwxMiwwLDEyNCw3LDAsCi0gICAgMTMwLDEsMCwxMTAsNDcsMCwxMjQsMCwwLDExNiwyLDAsMTA2LDMsMCwxMDcsCi0gICAgNywwLDExNCw0MSwxLDEyNCw2LDAsMTA2LDEzLDAsMTI0LDAsMCwxMzEsMSwKLSAgICAwLDEsMTE2LDE0LDAsMTAwLDUsMCwxMjQsMCwwLDEyNCw2LDAsMTMxLDMsCi0gICAgMCwxLDExMCwwLDAsMTE2LDIsMCwxMDYsMywwLDEyNCwwLDAsMjUsMTI1LAotICAgIDgsMCwxMjQsMywwLDExNCwxMDUsMSwxMTYsMiwwLDEwNiwzLDAsMTI0LDMsCi0gICAgMCwyNSwxMjUsNCwwLDExNiwxNSwwLDEyNCw0LDAsMTI0LDAsMCwxMDYsMSwKLSAgICAwLDEwMCwxLDAsMTMxLDEsMCwxMDAsNiwwLDI1LDEyNCw4LDAsMTMxLDMsCi0gICAgMCwxLDExMCwwLDAsMTE2LDE2LDAsMTI0LDgsMCwxMDAsNywwLDEwMCwwLAotICAgIDAsMTMxLDMsMCwxMDAsMCwwLDEwNyw4LDAsMTE0LDIxMiwxLDEyMSw1OSwwLAotICAgIDEyNCw4LDAsMTA2LDE3LDAsMTI0LDgsMCw5NSwxOCwwLDExNiwxOSwwLDEyNCwKLSAgICA4LDAsMTAwLDgsMCwxMzEsMiwwLDExNSwxODcsMSwxMjQsOCwwLDEwNiwxOCwKLSAgICAwLDEwNiwxLDAsMTAwLDEsMCwxMzEsMSwwLDEwMCwyLDAsMjUsMTI0LDgsCi0gICAgMCw5NSwxOCwwLDExMCwwLDAsODcsMTEzLDIxMiwxLDQsMTE2LDYsMCwxMDcsCi0gICAgMTAsMCwxMTQsMjA4LDEsMSwxLDEsODksMTEzLDIxMiwxLDg4LDExMCwwLDAsCi0gICAgMTE2LDE5LDAsMTI0LDgsMCwxMDAsOSwwLDEzMSwyLDAsMTE1LDgsMiwxMjEsCi0gICAgMTMsMCwxMjQsNiwwLDEyNCw4LDAsOTUsMjAsMCw4NywxMTMsOCwyLDQsCi0gICAgMTE2LDYsMCwxMDcsMTAsMCwxMTQsNCwyLDEsMSwxLDg5LDExMyw4LDIsCi0gICAgODgsMTEwLDAsMCwxMjQsOCwwLDgzLDQwLDExLDAsMCwwLDc4LDExNywxLAotICAgIDAsMCwwLDQ2LDEwNSwwLDAsMCwwLDExNywyMSwwLDAsMCw1OSwzMiwKLSAgICAxMjMsMTI1LDMyLDEwNSwxMTUsMzIsMTEwLDExMSwxMTYsMzIsOTcsMzIsMTEyLDk3LDk5LDEwNywKLSAgICA5NywxMDMsMTAxLDExNyw0LDAsMCwwLDExMCw5NywxMDksMTAxLDExNywxOCwwLDAsCi0gICAgMCwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwzMiwxMjMsMzMsMTE0LDEyNSwzMiwzNSwzMiwxMjMsCi0gICAgMzMsMTE0LDEyNSwxMDUsMiwwLDAsMCwxMTcsMTEsMCwwLDAsOTUsOTUsMTEyLAotICAgIDk3LDk5LDEwNyw5NywxMDMsMTAxLDk1LDk1LDExNyw4LDAsMCwwLDk1LDk1LDExMiwKLSAgICA5NywxMTYsMTA0LDk1LDk1LDExNywxMCwwLDAsMCw5NSw5NSwxMDgsMTExLDk3LDEwMCwKLSAgICAxMDEsMTE0LDk1LDk1LDg0LDQwLDIxLDAsMCwwLDExNyw0LDAsMCwwLDc4LAotICAgIDExMSwxMTAsMTAxLDExNywxMCwwLDAsMCwxMTQsMTEyLDk3LDExNCwxMTYsMTA1LDExNiwxMDUsCi0gICAgMTExLDExMCwxMTcsMywwLDAsMCwxMTUsMTIxLDExNSwxMTcsNywwLDAsMCwxMDksCi0gICAgMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsMTE3LDI1LDAsMCwwLDk1LDk5LDk3LDEwOCwxMDgsCi0gICAgOTUsMTE5LDEwNSwxMTYsMTA0LDk1LDEwMiwxMTQsOTcsMTA5LDEwMSwxMTUsOTUsMTE0LDEwMSwxMDksCi0gICAgMTExLDExOCwxMDEsMTAwLDExNyw4LDAsMCwwLDk1LDk1LDExMiw5NywxMTYsMTA0LDk1LAotICAgIDk1LDExNywxNCwwLDAsMCw2NSwxMTYsMTE2LDExNCwxMDUsOTgsMTE3LDExNiwxMDEsNjksCi0gICAgMTE0LDExNCwxMTEsMTE0LDExNyw4LDAsMCwwLDk1LDY5LDgyLDgyLDk1LDc3LDgzLAotICAgIDcxLDExNyw2LDAsMCwwLDEwMiwxMTEsMTE0LDEwOSw5NywxMTYsMTE3LDExLDAsMCwKLSAgICAwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsNjksMTE0LDExNCwxMTEsMTE0LDExNywxMiwwLDAsCi0gICAgMCw5NSwxMDIsMTA1LDExMCwxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDQsMCwKLSAgICAwLDAsODQsMTE0LDExNywxMDEsMTE3LDEwLDAsMCwwLDk1LDExMCwxMTEsMTE2LDk1LAotICAgIDEwMiwxMTEsMTE3LDExMCwxMDAsMTE3LDExLDAsMCwwLDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwKLSAgICAxMTEsMTAwLDExNywxMDgsMTAxLDExNywxNiwwLDAsMCw5NSwxMTgsMTAxLDExNCw5OCwxMTEsCi0gICAgMTE1LDEwMSw5NSwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEwMSwxMTcsNywwLDAsMCwxMTUsCi0gICAgMTAxLDExNiw5NywxMTYsMTE2LDExNCwxMTcsNywwLDAsMCwxMDMsMTAxLDExNiw5NywxMTYsCi0gICAgMTE2LDExNCwxMTcsOCwwLDAsMCw5NSw5NSwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsCi0gICAgMTEsMCwwLDAsOTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDk1LDk1LDExNywKLSAgICA3LDAsMCwwLDEwNCw5NywxMTUsOTcsMTE2LDExNiwxMTQsMTE3LDEwLDAsMCwwLAotICAgIDk1LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsOTUsOTUsNDAsOSwwLDAsMCwxMTcsCi0gICAgNCwwLDAsMCwxMTAsOTcsMTA5LDEwMSwxMTcsNywwLDAsMCwxMDUsMTA5LDExMiwKLSAgICAxMTEsMTE0LDExNiw5NSwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwxMTcsNiwwLAotICAgIDAsMCwxMTIsOTcsMTE0LDEwMSwxMTAsMTE2LDExNywxMywwLDAsMCwxMTIsOTcsMTE0LAotICAgIDEwMSwxMTAsMTE2LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNywzLDAsMCwwLDEwOSwKLSAgICAxMTUsMTAzLDExNyw2LDAsMCwwLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LDMsMCwKLSAgICAwLDAsMTAxLDEyMCw5OSwxMTcsNiwwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwKLSAgICA0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLAotICAgIDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsCi0gICAgNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywyMywwLDAsCi0gICAgMCw5NSwxMDIsMTA1LDExMCwxMDAsOTUsOTcsMTEwLDEwMCw5NSwxMDgsMTExLDk3LDEwMCw5NSwKLSAgICAxMTcsMTEwLDEwOCwxMTEsOTksMTA3LDEwMSwxMDAsMjI5LDUsMCwwLDExNSw3NiwwLDAsCi0gICAgMCwwLDEsNiwxLDE5LDEsNiwxLDE1LDEsMTYsMiwxNSwxLDExLAotICAgIDIsMTMsMSwzLDEsMTMsMSwxMywxLDIyLDEsMjYsMSwxNSwxLDEyLAotICAgIDEsMjcsMyw5LDEsOSwxLDE1LDIsMTMsMSwxOSwyLDEzLDEsNiwKLSAgICAyLDEzLDEsMzIsMiwyNCwxLDMsMSwxMiwxLDE1LDEsMzIsMSwxMywKLSAgICAxLDgsMiwxNSwxLDMsMSwxMywxLDEzLDEsOCwxLDExNywyMywwLAotICAgIDAsMCw5NSwxMDIsMTA1LDExMCwxMDAsOTUsOTcsMTEwLDEwMCw5NSwxMDgsMTExLDk3LDEwMCwKLSAgICA5NSwxMTcsMTEwLDEwOCwxMTEsOTksMTA3LDEwMSwxMDAsOTksMiwwLDAsMCwwLDAsCi0gICAgMCwwLDMsMCwwLDAsMTgsMCwwLDAsNjcsMCwwLDAsMTE1LDc1LAotICAgIDAsMCwwLDEyMiwxNiwwLDExNiwwLDAsMTI0LDAsMCwxMzEsMSwwLDEyNSwKLSAgICAyLDAsODcsMTAwLDEsMCwxMTYsMSwwLDEwNiwyLDAsMTMxLDAsMCwxLAotICAgIDg4LDEyNCwyLDAsMTA2LDMsMCwxMzEsMCwwLDEsMTIyLDE3LDAsMTE2LDQsCi0gICAgMCwxMjQsMCwwLDEyNCwxLDAsMTMxLDIsMCw4Myw4NywxMDAsMSwwLDEyNCwKLSAgICAyLDAsMTA2LDUsMCwxMzEsMCwwLDEsODgsMTAwLDEsMCw4Myw0MCwyLAotICAgIDAsMCwwLDExNyw1NCwwLDAsMCw3MCwxMDUsMTEwLDEwMCwzMiw5NywxMTAsMTAwLAotICAgIDMyLDEwOCwxMTEsOTcsMTAwLDMyLDExNiwxMDQsMTAxLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLAotICAgIDQ0LDMyLDk3LDExMCwxMDAsMzIsMTE0LDEwMSwxMDgsMTAxLDk3LDExNSwxMDEsMzIsMTE2LDEwNCwKLSAgICAxMDEsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsMTA4LDExMSw5OSwxMDcsNDYsNzgsNDAsCi0gICAgNiwwLDAsMCwxMTcsMTYsMCwwLDAsOTUsMTAzLDEwMSwxMTYsOTUsMTA5LDExMSwKLSAgICAxMDAsMTE3LDEwOCwxMDEsOTUsMTA4LDExMSw5OSwxMDcsMTE3LDQsMCwwLDAsOTUsMTA1LAotICAgIDEwOSwxMTIsMTE3LDEyLDAsMCwwLDExNCwxMDEsMTA4LDEwMSw5NywxMTUsMTAxLDk1LDEwOCwKLSAgICAxMTEsOTksMTA3LDExNyw3LDAsMCwwLDk3LDk5LDExMywxMTcsMTA1LDExNCwxMDEsMTE3LAotICAgIDIzLDAsMCwwLDk1LDEwMiwxMDUsMTEwLDEwMCw5NSw5NywxMTAsMTAwLDk1LDEwOCwxMTEsCi0gICAgOTcsMTAwLDk1LDExNywxMTAsMTA4LDExMSw5OSwxMDcsMTAxLDEwMCwxMTcsNywwLDAsMCwKLSAgICAxMTQsMTAxLDEwOCwxMDEsOTcsMTE1LDEwMSw0MCwzLDAsMCwwLDExNyw0LDAsMCwKLSAgICAwLDExMCw5NywxMDksMTAxLDExNyw3LDAsMCwwLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LAotICAgIDk1LDExNyw0LDAsMCwwLDEwOCwxMTEsOTksMTA3LDQwLDAsMCwwLDAsNDAsCi0gICAgMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsCi0gICAgMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwKLSAgICAxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE0LDAsMCwwLDk1LDEwMiwxMDUsMTEwLDEwMCwKLSAgICA5NSw5NywxMTAsMTAwLDk1LDEwOCwxMTEsOTcsMTAwLDIzLDYsMCwwLDExNSwxNCwwLAotICAgIDAsMCwwLDIsMywxLDE2LDIsMTEsMSwxMCwxLDMsMSwxNywyLAotICAgIDExNywxNCwwLDAsMCw5NSwxMDIsMTA1LDExMCwxMDAsOTUsOTcsMTEwLDEwMCw5NSwxMDgsCi0gICAgMTExLDk3LDEwMCw5OSwzLDAsMCwwLDAsMCwwLDAsNSwwLDAsMCwKLSAgICA0LDAsMCwwLDY3LDAsMCwwLDExNSwxNzIsMCwwLDAsMTE2LDAsMCwKLSAgICAxMjQsMCwwLDEyNCwxLDAsMTI0LDIsMCwxMzEsMywwLDEsMTI0LDIsMCwKLSAgICAxMDAsMSwwLDEwNyw0LDAsMTE0LDQ5LDAsMTE2LDEsMCwxMjQsMCwwLDEyNCwKLSAgICAxLDAsMTI0LDIsMCwxMzEsMywwLDEyNSwwLDAsMTEwLDAsMCwxMTYsMiwKLSAgICAwLDEwNiwzLDAsMTMxLDAsMCwxLDEyNCwwLDAsMTE2LDQsMCwxMDYsNSwKLSAgICAwLDEwNyw3LDAsMTE0LDg3LDAsMTE2LDYsMCwxMjQsMCwwLDExNiw3LDAsCi0gICAgMTMxLDIsMCw4MywxMTYsNCwwLDEwNiw1LDAsMTI0LDAsMCwyNSwxMjUsMywKLSAgICAwLDEyNCwzLDAsMTAwLDQsMCwxMDcsOCwwLDExNCwxNTgsMCwxMTYsMiwwLAotICAgIDEwNiw5LDAsMTMxLDAsMCwxLDEwMCwyLDAsMTA2LDEwLDAsMTI0LDAsMCwKLSAgICAxMzEsMSwwLDEyNSw0LDAsMTE2LDExLDAsMTI0LDQsMCwxMDAsMywwLDEyNCwKLSAgICAwLDAsMTMxLDEsMSwxMzAsMSwwLDExMCwwLDAsMTE2LDEyLDAsMTI0LDAsCi0gICAgMCwxMzEsMSwwLDEsMTI0LDMsMCw4Myw0MCw1LDAsMCwwLDExNyw1MCwKLSAgICAxLDAsMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDMyLDk3LDExMCwxMDAsMzIsMTE0LDEwMSwKLSAgICAxMTYsMTE3LDExNCwxMTAsMzIsMTE2LDEwNCwxMDEsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsCi0gICAgOTgsOTcsMTE1LDEwMSwxMDAsMzIsMTExLDExMCwzMiwxMDUsMTE2LDExNSwzMiwxMTAsOTcsMTA5LAotICAgIDEwMSw0NCwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMzIsMTE2LAotICAgIDEwNCwxMDEsMzIsOTksOTcsMTA4LDEwOCwzMiwxMDUsMTE1LDEwLDMyLDMyLDMyLDMyLDk4LAotICAgIDEwMSwxMDUsMTEwLDEwMywzMiwxMDksOTcsMTAwLDEwMSwzMiwxMDIsMTE0LDExMSwxMDksNDQsMzIsCi0gICAgOTcsMTEwLDEwMCwzMiwxMTYsMTA0LDEwMSwzMiwxMDgsMTAxLDExOCwxMDEsMTA4LDMyLDk3LDEwMCwKLSAgICAxMDYsMTE3LDExNSwxMTYsMTA5LDEwMSwxMTAsMTE2LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDg0LAotICAgIDEwNCwxMDUsMTE1LDMyLDEwMiwxMTcsMTEwLDk5LDExNiwxMDUsMTExLDExMCwzMiwxMTQsMTAxLDExMiwKLSAgICAxMTQsMTAxLDExNSwxMDEsMTEwLDExNiwxMTUsMzIsMTE2LDEwNCwxMDEsMzIsMTAzLDExNCwxMDEsOTcsCi0gICAgMTE2LDEwMSwxMTUsMTE2LDMyLDk5LDExMSwxMDksMTA5LDExMSwxMTAsMzIsMTAwLDEwMSwxMTAsMTExLAotICAgIDEwOSwxMDUsMTEwLDk3LDExNiwxMTEsMTE0LDMyLDExMSwxMDIsMzIsMTAyLDExNywxMTAsOTksMTE2LAotICAgIDEwNSwxMTEsMTEwLDk3LDEwOCwxMDUsMTE2LDEyMSwxMCwzMiwzMiwzMiwzMiw5OCwxMDEsMTE2LAotICAgIDExOSwxMDEsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiw5NSwxMDksMTExLDEwMCwxMTcsCi0gICAgMTA4LDEwMSwzMiw5NywxMTAsMTAwLDMyLDk1LDk1LDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDk1LAotICAgIDk1LDQ2LDMyLDg0LDEwNCwxMDUsMTE1LDMyLDEwNSwxMTAsOTksMTA4LDExNywxMDAsMTAxLDExNSwKLSAgICAzMiwxMTUsMTAxLDExNiwxMTYsMTA1LDExMCwxMDMsMzIsOTUsOTUsMTEyLDk3LDk5LDEwNyw5NywKLSAgICAxMDMsMTAxLDk1LDk1LDMyLDEwNSwxMDIsMTAsMzIsMzIsMzIsMzIsMTE2LDEwNCwxMDEsMzIsCi0gICAgMTA4LDExMSw5NywxMDAsMTAxLDExNCwzMiwxMDAsMTA1LDEwMCwzMiwxMTAsMTExLDExNiw0NiwxMCwKLSAgICAxMCwzMiwzMiwzMiwzMiwxMDUsMCwwLDAsMCwxMTcsNDAsMCwwLDAsMTA1LAorICAgIDEwLDEsMTE0LDU5LDEsMCwwLDk5LDIsMCwwLDAsMCwwLDAsMCwKKyAgICA0LDAsMCwwLDExLDAsMCwwLDY3LDAsMCwwLDExNSwxMzgsMCwwLAorICAgIDAsMTE2LDAsMCwxMDYsMSwwLDExNSwyOCwwLDExNiwyLDAsMTA2LDMsMCwKKyAgICAxMDAsMSwwLDExNiw0LDAsMTMxLDIsMCwxLDExMCwwLDAsMTIwLDEwMywwLAorICAgIDExNiwwLDAsMTA2LDEsMCw2OCw5Myw4OCwwLDEyNSwyLDAsMTE2LDUsMCwKKyAgICAxMzEsMCwwLDE0MywyMywwLDEsMTI0LDIsMCwxMDYsNiwwLDEyNCwwLDAsCisgICAgMTI0LDEsMCwxMzEsMiwwLDEyNSwzLDAsODcsMTAwLDIsMCw4MSw4OCwxMjQsCisgICAgMywwLDEwMCwyLDAsMTA3LDksMCwxMTQsMzgsMCwxMjQsMCwwLDExNiwwLAorICAgIDAsMTA2LDcsMCwxMDcsNywwLDExNCwxMDksMCwxMjQsMywwLDgzLDExNiwwLAorICAgIDAsMTA2LDcsMCwxMjQsMCwwLDI1LDEwNiw4LDAsODMsMTEzLDM4LDAsMTEzLAorICAgIDM4LDAsODcsMTAwLDIsMCw4MywxMDAsMiwwLDgzLDQwLDMsMCwwLDAsCisgICAgMTE3LDIzLDAsMCwwLDcwLDEwNSwxMTAsMTAwLDMyLDk3LDMyLDEwOSwxMTEsMTAwLDExNywKKyAgICAxMDgsMTAxLDM5LDExNSwzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDExNywyMiwwLDAsCisgICAgMCwxMTUsMTIxLDExNSw0NiwxMDksMTAxLDExNiw5Nyw5NSwxMTIsOTcsMTE2LDEwNCwzMiwxMDUsCisgICAgMTE1LDMyLDEwMSwxMDksMTEyLDExNiwxMjEsNzgsNDAsOSwwLDAsMCwxMTQsNywwLAorICAgIDAsMCwyNDQsOSwwLDAsMCwxMDksMTAxLDExNiw5Nyw5NSwxMTIsOTcsMTE2LDEwNCwKKyAgICAxMTQsMTg0LDAsMCwwLDExNCwxODUsMCwwLDAsMTE0LDE4NiwwLDAsMCwxMTQsCisgICAgNTUsMSwwLDAsMTE0LDIxMCwwLDAsMCwxMTQsMTQ1LDAsMCwwLDExNCwxNzAsCisgICAgMCwwLDAsNDAsNCwwLDAsMCwxMTQsNjYsMCwwLDAsMTE0LDM1LDAsCisgICAgMCwwLDExNCwzMiwxLDAsMCwxMTQsMTU5LDAsMCwwLDExNCw0LDAsMCwKKyAgICAwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCwxMiwwLDAsMCwKKyAgICA5NSwxMDIsMTA1LDExMCwxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMjIyLDUsMCwwLAorICAgIDExNSwyMCwwLDAsMCwwLDIsOSwxLDE5LDEsMTYsMSwxMCwxLDI0LAorICAgIDEsMTIsMiwxNSwxLDQsMiwyMSwyLDExNCw2MSwxLDAsMCw5OSwzLAorICAgIDAsMCwwLDAsMCwwLDAsNCwwLDAsMCw0LDAsMCwwLDY3LAorICAgIDAsMCwwLDExNSwxOTQsMCwwLDAsMTE2LDAsMCwxMjQsMCwwLDExNiwxLAorICAgIDAsMTMxLDIsMCwxMTUsNDUsMCwxMTYsMiwwLDEwMCwxLDAsMTA2LDMsMCwKKyAgICAxMTYsNCwwLDEyNCwwLDAsMTMxLDEsMCwxMzEsMSwwLDEzMSwxLDAsMTMwLAorICAgIDEsMCwxMTAsMCwwLDEyNCwyLDAsMTAwLDIsMCwxMDcsMCwwLDExNCw3MiwKKyAgICAwLDExNiw1LDAsMTAwLDMsMCwxMzEsMSwwLDEzMCwxLDAsMTEwLDAsMCwKKyAgICAxMjQsMSwwLDExNCwxNTYsMCwxMTYsMCwwLDEyNCwxLDAsMTE2LDEsMCwxMzEsCisgICAgMiwwLDExNSwxMDgsMCwxMTYsMiwwLDEwMCw0LDAsMTMxLDEsMCwxMzAsMSwKKyAgICAwLDExMywxNTYsMCwxMjQsMSwwLDExNiw2LDAsMTA2LDcsMCwxMDcsNywwLAorICAgIDExNCwxNTYsMCwxMDAsNSwwLDEyNSwzLDAsMTE2LDgsMCwxMjQsMywwLDEwNiwKKyAgICAzLDAsMTI0LDEsMCwxMzEsMSwwLDEzMSwxLDAsMTMwLDEsMCwxMTMsMTU2LAorICAgIDAsMTEwLDAsMCwxMjQsMCwwLDEyLDExNCwxOTAsMCwxMjQsMiwwLDEwMCwyLAorICAgIDAsMTA3LDIsMCwxMTQsMTkwLDAsMTE2LDUsMCwxMDAsNiwwLDEzMSwxLDAsCisgICAgMTMwLDEsMCwxMTAsMCwwLDEwMCw3LDAsODMsNDAsOCwwLDAsMCwxMTcsCisgICAgMjgsMCwwLDAsODYsMTAxLDExNCwxMDUsMTAyLDEyMSwzMiw5NywxMTQsMTAzLDExNywxMDksCisgICAgMTAxLDExMCwxMTYsMTE1LDMyLDk3LDExNCwxMDEsMzIsMzQsMTE1LDk3LDExMCwxMDEsMzQsNDYsCisgICAgMTE3LDMxLDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDExMCw5NywxMDksMTAxLAorICAgIDMyLDEwOSwxMTcsMTE1LDExNiwzMiw5OCwxMDEsMzIsMTE1LDExNiwxMTQsNDQsMzIsMTEwLDExMSwKKyAgICAxMTYsMzIsMTIzLDEyNSwxMTQsNzAsMCwwLDAsMTE3LDE4LDAsMCwwLDEwOCwxMDEsCisgICAgMTE4LDEwMSwxMDgsMzIsMTA5LDExNywxMTUsMTE2LDMyLDk4LDEwMSwzMiw2Miw2MSwzMiw0OCwKKyAgICAxMTcsMzEsMCwwLDAsOTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDk1LDk1LAorICAgIDMyLDExMCwxMTEsMTE2LDMyLDExNSwxMDEsMTE2LDMyLDExNiwxMTEsMzIsOTcsMzIsMTE1LDExNiwKKyAgICAxMTQsMTA1LDExMCwxMDMsMTE3LDYxLDAsMCwwLDgwLDk3LDExNCwxMDEsMTEwLDExNiwzMiwKKyAgICAxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMjMsMzMsMTE0LDEyNSwzMiwxMTAsMTExLDExNiwzMiwKKyAgICAxMDgsMTExLDk3LDEwMCwxMDEsMTAwLDQ0LDMyLDk5LDk3LDExMCwxMTAsMTExLDExNiwzMiwxMTIsCisgICAgMTAxLDExNCwxMDIsMTExLDExNCwxMDksMzIsMTE0LDEwMSwxMDgsOTcsMTE2LDEwNSwxMTgsMTAxLDMyLAorICAgIDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDExNywxNywwLDAsMCw2OSwxMDksMTEyLDExNiwxMjEsCisgICAgMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTEwLDk3LDEwOSwxMDEsNzgsNDAsOSwwLAorICAgIDAsMCwxMTQsMjAwLDAsMCwwLDExNCwzNiwxLDAsMCwyNDQsOSwwLDAsCisgICAgMCw4NCwxMjEsMTEyLDEwMSw2OSwxMTQsMTE0LDExMSwxMTQsMTE0LDQ2LDAsMCwwLDExNCwKKyAgICA2NSwwLDAsMCwxMTQsMTIwLDAsMCwwLDExNCw3LDAsMCwwLDExNCwxNDUsCisgICAgMCwwLDAsMjQ0LDExLDAsMCwwLDgzLDEyMSwxMTUsMTE2LDEwMSwxMDksNjksMTE0LAorICAgIDExNCwxMTEsMTE0LDQwLDQsMCwwLDAsMTE0LDY2LDAsMCwwLDExNCw1NywxLAorICAgIDAsMCwxMTQsNTgsMSwwLDAsMTE0LDE4OCwwLDAsMCwxMTQsNCwwLDAsCisgICAgMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwyNDQsMTMsMCwwLDAsCisgICAgOTUsMTE1LDk3LDExMCwxMDUsMTE2LDEyMSw5NSw5OSwxMDQsMTAxLDk5LDEwNywyMzksNSwwLAorICAgIDAsMTE1LDI0LDAsMCwwLDAsMiwxNSwxLDMwLDEsMTIsMSwxNSwxLAorICAgIDYsMSwxNSwxLDE1LDEsMTUsMSw2LDIsMjcsMSwxOSwxLDExNCw2NCwKKyAgICAxLDAsMCwxMTcsMjAsMCwwLDAsNzgsMTExLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsCisgICAgMTAxLDMyLDExMCw5NywxMDksMTAxLDEwMCwzMiwxMjMsMzMsMTE0LDEyNSw5OSwyLDAsMCwKKyAgICAwLDAsMCwwLDAsOSwwLDAsMCwyNywwLDAsMCw2NywwLDAsCisgICAgMCwxMTUsMjEsMiwwLDAsMTAwLDAsMCwxMjUsMiwwLDEyNCwwLDAsMTA2LAorICAgIDAsMCwxMDAsMSwwLDEzMSwxLDAsMTAwLDIsMCwyNSwxMjUsMywwLDEyNCwKKyAgICAzLDAsMTE0LDE3OCwwLDEyNCwzLDAsMTE2LDEsMCwxMDYsMiwwLDEwNyw3LAorICAgIDAsMTE0LDYyLDAsMTE2LDMsMCwxMjQsMSwwLDEyNCwzLDAsMTMxLDIsMCwKKyAgICAxLDExMCwwLDAsMTI0LDAsMCwxMTYsMSwwLDEwNiwyLDAsMTA3LDYsMCwKKyAgICAxMTQsODgsMCwxMTYsMSwwLDEwNiwyLDAsMTI0LDAsMCwyNSw4MywxMTYsMSwKKyAgICAwLDEwNiwyLDAsMTI0LDMsMCwyNSwxMjUsNCwwLDEyMSwxMywwLDEyNCw0LAorICAgIDAsMTA2LDQsMCwxMjUsMiwwLDg3LDExMywxNzgsMCw0LDExNiw1LDAsMTA3LAorICAgIDEwLDAsMTE0LDE3NCwwLDEsMSwxLDExNiw2LDAsMTAwLDMsMCwyMywxMDYsCisgICAgNywwLDEyNCwwLDAsMTI0LDMsMCwxMzEsMiwwLDEyNSw1LDAsMTE2LDgsCisgICAgMCwxMjQsNSwwLDEwMCw0LDAsMTI0LDAsMCwxMzEsMSwxLDEzMCwxLDAsCisgICAgODksMTEzLDE3OCwwLDg4LDExMCwwLDAsMTE2LDksMCwxMjQsMCwwLDEyNCwyLAorICAgIDAsMTMxLDIsMCwxMjUsNiwwLDEyNCw2LDAsMTAwLDAsMCwxMDcsOCwwLAorICAgIDExNCwyNTAsMCwxMTYsOCwwLDExNiw2LDAsMTA2LDcsMCwxMjQsMCwwLDEzMSwKKyAgICAxLDAsMTAwLDQsMCwxMjQsMCwwLDEzMSwxLDEsMTI1LDcsMCwxMDAsNSwKKyAgICAwLDEyNCw3LDAsOTUsMTAsMCwxMjQsNywwLDEzMCwxLDAsMTEwLDQ3LDAsCisgICAgMTI0LDAsMCwxMTYsMSwwLDEwNiwyLDAsMTA3LDcsMCwxMTQsNDEsMSwxMjQsCisgICAgNiwwLDEwNiwxMSwwLDEyNCwwLDAsMTMxLDEsMCwxLDExNiwxMiwwLDEwMCwKKyAgICA2LDAsMTI0LDAsMCwxMjQsNiwwLDEzMSwzLDAsMSwxMTAsMCwwLDExNiwKKyAgICAxLDAsMTA2LDIsMCwxMjQsMCwwLDI1LDEyNSw4LDAsMTI0LDMsMCwxMTQsCisgICAgMTA1LDEsMTE2LDEsMCwxMDYsMiwwLDEyNCwzLDAsMjUsMTI1LDQsMCwxMTYsCisgICAgMTMsMCwxMjQsNCwwLDEyNCwwLDAsMTA2LDAsMCwxMDAsMSwwLDEzMSwxLAorICAgIDAsMTAwLDcsMCwyNSwxMjQsOCwwLDEzMSwzLDAsMSwxMTAsMCwwLDExNiwKKyAgICAxNCwwLDEyNCw4LDAsMTAwLDgsMCwxMDAsMCwwLDEzMSwzLDAsMTAwLDAsCisgICAgMCwxMDcsOCwwLDExNCwyMTIsMSwxMjEsNTksMCwxMjQsOCwwLDEwNiwxNSwwLAorICAgIDEyNCw4LDAsOTUsMTYsMCwxMTYsMTcsMCwxMjQsOCwwLDEwMCw5LDAsMTMxLAorICAgIDIsMCwxMTUsMTg3LDEsMTI0LDgsMCwxMDYsMTYsMCwxMDYsMCwwLDEwMCwxLAorICAgIDAsMTMxLDEsMCwxMDAsMiwwLDI1LDEyNCw4LDAsOTUsMTYsMCwxMTAsMCwKKyAgICAwLDg3LDExMywyMTIsMSw0LDExNiw1LDAsMTA3LDEwLDAsMTE0LDIwOCwxLDEsCisgICAgMSwxLDg5LDExMywyMTIsMSw4OCwxMTAsMCwwLDExNiwxNCwwLDEyNCw4LDAsCisgICAgMTAwLDEwLDAsMTAwLDAsMCwxMzEsMywwLDEwMCwwLDAsMTA3LDgsMCwxMTQsCisgICAgMTcsMiwxMjEsMTMsMCwxMjQsNiwwLDEyNCw4LDAsOTUsMTgsMCw4NywxMTMsCisgICAgMTcsMiw0LDExNiw1LDAsMTA3LDEwLDAsMTE0LDEzLDIsMSwxLDEsODksCisgICAgMTEzLDE3LDIsODgsMTEwLDAsMCwxMjQsOCwwLDgzLDQwLDExLDAsMCwwLAorICAgIDc4LDExNCwxMDMsMCwwLDAsMTE0LDcwLDAsMCwwLDExNywyMSwwLDAsMCwKKyAgICA1OSwzMiwxMjMsMTI1LDMyLDEwNSwxMTUsMzIsMTEwLDExMSwxMTYsMzIsOTcsMzIsMTEyLDk3LAorICAgIDk5LDEwNyw5NywxMDMsMTAxLDExNCw2NiwwLDAsMCw4NCwxMTcsMTgsMCwwLDAsCisgICAgMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsMTIzLDMzLDExNCwxMjUsMzIsMzUsMzIsMTIzLDMzLAorICAgIDExNCwxMjUsMTE0LDEwMiwwLDAsMCwxMTQsMTU3LDAsMCwwLDExNCwxNTgsMCwwLAorICAgIDAsMTE0LDE3MCwwLDAsMCw0MCwxOSwwLDAsMCwxMTQsMzIsMCwwLDAsCisgICAgMTE0LDcsMCwwLDAsMTE0LDE0NSwwLDAsMCwxMTQsMTAxLDAsMCwwLDExNCwKKyAgICAxNTgsMCwwLDAsMTE0LDE0OSwwLDAsMCwyNDQsOCwwLDAsMCw5NSw2OSwKKyAgICA4Miw4Miw5NSw3Nyw4Myw3MSwxMTQsNDYsMCwwLDAsMTE0LDE1NiwwLDAsMCwKKyAgICAxMTQsNjEsMSwwLDAsMjQ0LDEwLDAsMCwwLDk1LDExMCwxMTEsMTE2LDk1LDEwMiwKKyAgICAxMTEsMTE3LDExMCwxMDAsMTE0LDIxMiwwLDAsMCwxMTQsMTQwLDAsMCwwLDExNCw2MCwKKyAgICAwLDAsMCwxMTQsNjEsMCwwLDAsMTE0LDU2LDAsMCwwLDExNCwxNTcsMCwKKyAgICAwLDAsMTE0LDU5LDAsMCwwLDExNCwxNzAsMCwwLDAsNDAsOSwwLDAsCisgICAgMCwxMTQsNjYsMCwwLDAsMjQ0LDcsMCwwLDAsMTA1LDEwOSwxMTIsMTExLDExNCwKKyAgICAxMTYsOTUsMTE0LDM1LDAsMCwwLDExNCw3LDEsMCwwLDExNiwxMywwLDAsCisgICAgMCwxMTIsOTcsMTE0LDEwMSwxMTAsMTE2LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNCwxODgsCisgICAgMCwwLDAsMTE0LDE1OSwwLDAsMCwxMTQsMjQ3LDAsMCwwLDExNCwxNjAsMCwKKyAgICAwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsMCwwLAorICAgIDAsMjQ0LDIzLDAsMCwwLDk1LDEwMiwxMDUsMTEwLDEwMCw5NSw5NywxMTAsMTAwLDk1LAorICAgIDEwOCwxMTEsOTcsMTAwLDk1LDExNywxMTAsMTA4LDExMSw5OSwxMDcsMTAxLDEwMCwyLDYsMCwKKyAgICAwLDExNSw3NiwwLDAsMCwwLDEsNiwxLDE5LDEsNiwxLDE1LDEsCisgICAgMTYsMiwxNSwxLDExLDIsMTMsMSwzLDEsMTMsMSwxMywxLDIyLDEsCisgICAgMjYsMSwxNSwxLDEyLDEsMjcsMyw5LDEsOSwxLDE1LDIsMTMsMSwKKyAgICAxOSwyLDEzLDEsNiwyLDEzLDEsMzIsMiwyNCwxLDMsMSwxMiwxLAorICAgIDE1LDEsMzIsMSwxMywxLDgsMiwyNCwxLDMsMSwxMywxLDEzLDEsCisgICAgOCwxLDExNCw2OCwxLDAsMCw5OSwyLDAsMCwwLDAsMCwwLDAsCisgICAgMywwLDAsMCwxOCwwLDAsMCw2NywwLDAsMCwxMTUsNzUsMCwwLAorICAgIDAsMTIyLDE2LDAsMTE2LDAsMCwxMjQsMCwwLDEzMSwxLDAsMTI1LDIsMCwKKyAgICA4NywxMDAsMSwwLDExNiwxLDAsMTA2LDIsMCwxMzEsMCwwLDEsODgsMTI0LAorICAgIDIsMCwxMDYsMywwLDEzMSwwLDAsMSwxMjIsMTcsMCwxMTYsNCwwLDEyNCwKKyAgICAwLDAsMTI0LDEsMCwxMzEsMiwwLDgzLDg3LDEwMCwxLDAsMTI0LDIsMCwKKyAgICAxMDYsNSwwLDEzMSwwLDAsMSw4OCwxMDAsMSwwLDgzLDQwLDIsMCwwLAorICAgIDAsMTE3LDU0LDAsMCwwLDcwLDEwNSwxMTAsMTAwLDMyLDk3LDExMCwxMDAsMzIsMTA4LAorICAgIDExMSw5NywxMDAsMzIsMTE2LDEwNCwxMDEsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDQsMzIsCisgICAgOTcsMTEwLDEwMCwzMiwxMTQsMTAxLDEwOCwxMDEsOTcsMTE1LDEwMSwzMiwxMTYsMTA0LDEwMSwzMiwKKyAgICAxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwzMiwxMDgsMTExLDk5LDEwNyw0Niw3OCw0MCw2LDAsCisgICAgMCwwLDExNCw5NSwwLDAsMCwxMTQsOTYsMCwwLDAsMTE0LDk3LDAsMCwKKyAgICAwLDExNCw4NSwwLDAsMCwxMTQsNjgsMSwwLDAsMTE0LDg2LDAsMCwwLAorICAgIDQwLDMsMCwwLDAsMTE0LDY2LDAsMCwwLDExNCw2NywxLDAsMCwxMTQsCisgICAgNzIsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDUsCisgICAgMCwwLDAsMjQ0LDE0LDAsMCwwLDk1LDEwMiwxMDUsMTEwLDEwMCw5NSw5NywxMTAsCisgICAgMTAwLDk1LDEwOCwxMTEsOTcsMTAwLDUyLDYsMCwwLDExNSwxNCwwLDAsMCwwLAorICAgIDIsMywxLDE2LDIsMTEsMSwxMCwxLDMsMSwxNywyLDExNCw2OSwxLAorICAgIDAsMCw5OSwzLDAsMCwwLDAsMCwwLDAsNSwwLDAsMCw0LAorICAgIDAsMCwwLDY3LDAsMCwwLDExNSwxNzIsMCwwLDAsMTE2LDAsMCwxMjQsCisgICAgMCwwLDEyNCwxLDAsMTI0LDIsMCwxMzEsMywwLDEsMTI0LDIsMCwxMDAsCisgICAgMSwwLDEwNyw0LDAsMTE0LDQ5LDAsMTE2LDEsMCwxMjQsMCwwLDEyNCwxLAorICAgIDAsMTI0LDIsMCwxMzEsMywwLDEyNSwwLDAsMTEwLDAsMCwxMTYsMiwwLAorICAgIDEwNiwzLDAsMTMxLDAsMCwxLDEyNCwwLDAsMTE2LDQsMCwxMDYsNSwwLAorICAgIDEwNyw3LDAsMTE0LDg3LDAsMTE2LDYsMCwxMjQsMCwwLDExNiw3LDAsMTMxLAorICAgIDIsMCw4MywxMTYsNCwwLDEwNiw1LDAsMTI0LDAsMCwyNSwxMjUsMywwLAorICAgIDEyNCwzLDAsMTAwLDIsMCwxMDcsOCwwLDExNCwxNTgsMCwxMTYsMiwwLDEwNiwKKyAgICA4LDAsMTMxLDAsMCwxLDEwMCwzLDAsMTA2LDksMCwxMjQsMCwwLDEzMSwKKyAgICAxLDAsMTI1LDQsMCwxMTYsMTAsMCwxMjQsNCwwLDEwMCw0LDAsMTI0LDAsCisgICAgMCwxMzEsMSwxLDEzMCwxLDAsMTEwLDAsMCwxMTYsMTEsMCwxMjQsMCwwLAorICAgIDEzMSwxLDAsMSwxMjQsMywwLDgzLDQwLDUsMCwwLDAsMTE3LDUwLDEsCisgICAgMCwwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsMzIsOTcsMTEwLDEwMCwzMiwxMTQsMTAxLDExNiwKKyAgICAxMTcsMTE0LDExMCwzMiwxMTYsMTA0LDEwMSwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiw5OCwKKyAgICA5NywxMTUsMTAxLDEwMCwzMiwxMTEsMTEwLDMyLDEwNSwxMTYsMTE1LDMyLDExMCw5NywxMDksMTAxLAorICAgIDQ0LDMyLDExNiwxMDQsMTAxLDMyLDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwzMiwxMTYsMTA0LAorICAgIDEwMSwzMiw5OSw5NywxMDgsMTA4LDMyLDEwNSwxMTUsMTAsMzIsMzIsMzIsMzIsOTgsMTAxLAorICAgIDEwNSwxMTAsMTAzLDMyLDEwOSw5NywxMDAsMTAxLDMyLDEwMiwxMTQsMTExLDEwOSw0NCwzMiw5NywKKyAgICAxMTAsMTAwLDMyLDExNiwxMDQsMTAxLDMyLDEwOCwxMDEsMTE4LDEwMSwxMDgsMzIsOTcsMTAwLDEwNiwKKyAgICAxMTcsMTE1LDExNiwxMDksMTAxLDExMCwxMTYsNDYsMTAsMTAsMzIsMzIsMzIsMzIsODQsMTA0LAorICAgIDEwNSwxMTUsMzIsMTAyLDExNywxMTAsOTksMTE2LDEwNSwxMTEsMTEwLDMyLDExNCwxMDEsMTEyLDExNCwKKyAgICAxMDEsMTE1LDEwMSwxMTAsMTE2LDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMDMsMTE0LDEwMSw5NywxMTYsCisgICAgMTAxLDExNSwxMTYsMzIsOTksMTExLDEwOSwxMDksMTExLDExMCwzMiwxMDAsMTAxLDExMCwxMTEsMTA5LAorICAgIDEwNSwxMTAsOTcsMTE2LDExMSwxMTQsMzIsMTExLDEwMiwzMiwxMDIsMTE3LDExMCw5OSwxMTYsMTA1LAorICAgIDExMSwxMTAsOTcsMTA4LDEwNSwxMTYsMTIxLDEwLDMyLDMyLDMyLDMyLDk4LDEwMSwxMTYsMTE5LAorICAgIDEwMSwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsCisgICAgMTAxLDMyLDk3LDExMCwxMDAsMzIsOTUsOTUsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsOTUsOTUsCisgICAgNDYsMzIsODQsMTA0LDEwNSwxMTUsMzIsMTA1LDExMCw5OSwxMDgsMTE3LDEwMCwxMDEsMTE1LDMyLAorICAgIDExNSwxMDEsMTE2LDExNiwxMDUsMTEwLDEwMywzMiw5NSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywKKyAgICAxMDEsOTUsOTUsMzIsMTA1LDEwMiwxMCwzMiwzMiwzMiwzMiwxMTYsMTA0LDEwMSwzMiwxMDgsCisgICAgMTExLDk3LDEwMCwxMDEsMTE0LDMyLDEwMCwxMDUsMTAwLDMyLDExMCwxMTEsMTE2LDQ2LDEwLDEwLAorICAgIDMyLDMyLDMyLDMyLDExNCw3MCwwLDAsMCw3OCwxMTcsNDAsMCwwLDAsMTA1LAogICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMzIsMTExLDEwMiwzMiwxMjMsMTI1LDMyLDEwNCw5NywxMDgsMTE2LAogICAgIDEwMSwxMDAsNTksMzIsNzgsMTExLDExMCwxMDEsMzIsMTA1LDExMCwzMiwxMTUsMTIxLDExNSw0NiwKLSAgICAxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsMTE3LDQsMCwwLDAsMTEwLDk3LDEwOSwxMDEsCi0gICAgNzgsNDAsMTMsMCwwLDAsMTE3LDEzLDAsMCwwLDk1LDExNSw5NywxMTAsMTA1LAotICAgIDExNiwxMjEsOTUsOTksMTA0LDEwMSw5OSwxMDcsMTE3LDEzLDAsMCwwLDk1LDExNCwxMDEsCi0gICAgMTE1LDExMSwxMDgsMTE4LDEwMSw5NSwxMTAsOTcsMTA5LDEwMSwxMTcsNCwwLDAsMCw5NSwKLSAgICAxMDUsMTA5LDExMiwxMTcsMTIsMCwwLDAsOTcsOTksMTEzLDExNywxMDUsMTE0LDEwMSw5NSwKLSAgICAxMDgsMTExLDk5LDEwNywxMTcsMywwLDAsMCwxMTUsMTIxLDExNSwxMTcsNywwLDAsCi0gICAgMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsMTE3LDE0LDAsMCwwLDk1LDEwMiwxMDUsCi0gICAgMTEwLDEwMCw5NSw5NywxMTAsMTAwLDk1LDEwOCwxMTEsOTcsMTAwLDExNywxMSwwLDAsMCwKLSAgICA5NSwxMDMsOTksMTAwLDk1LDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDExNyw0LDAsMCwwLAotICAgIDc4LDExMSwxMTAsMTAxLDExNywxMiwwLDAsMCwxMTQsMTAxLDEwOCwxMDEsOTcsMTE1LDEwMSwKLSAgICA5NSwxMDgsMTExLDk5LDEwNywxMTcsNiwwLDAsMCwxMDIsMTExLDExNCwxMDksOTcsMTE2LAotICAgIDExNywxMSwwLDAsMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDY5LDExNCwxMTQsMTExLDExNCwKLSAgICAxMTcsMTksMCwwLDAsOTUsMTA4LDExMSw5OSwxMDcsOTUsMTE3LDExMCwxMDgsMTExLDk5LAotICAgIDEwNyw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0MCw1LDAsMCwwLDExNyw0LDAsCi0gICAgMCwwLDExMCw5NywxMDksMTAxLDExNyw3LDAsMCwwLDExMiw5Nyw5OSwxMDcsOTcsCi0gICAgMTAzLDEwMSwxMTcsNSwwLDAsMCwxMDgsMTAxLDExOCwxMDEsMTA4LDExNyw2LDAsMCwKLSAgICAwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNyw3LDAsMCwwLDEwOSwxMDEsMTE1LDExNSwKLSAgICA5NywxMDMsMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwKLSAgICAwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsCi0gICAgMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LAotICAgIDExLDAsMCwwLDk1LDEwMyw5OSwxMDAsOTUsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzYsCi0gICAgNiwwLDAsMTE1LDI4LDAsMCwwLDAsOSwxNiwxLDEyLDEsMjEsMSwKLSAgICAxMCwxLDE1LDEsMTMsMSwxMywxLDEyLDEsMTAsMSw2LDEsOSwxLAotICAgIDIxLDEsMTAsMSwxMTcsMTEsMCwwLDAsOTUsMTAzLDk5LDEwMCw5NSwxMDUsMTA5LAotICAgIDExMiwxMTEsMTE0LDExNiw5OSwzLDAsMCwwLDAsMCwwLDAsNiwwLDAsCi0gICAgMCwxNywwLDAsMCw2NywwLDAsMCwxMTUsMjU0LDAsMCwwLDExNiwwLAotICAgIDAsMTI0LDAsMCwxMDAsMSwwLDEzMSwyLDAsMTE0LDI1MCwwLDEwMCwyLDAsCi0gICAgMTI0LDEsMCwxMDcsNiwwLDExNCw4OSwwLDExNiwxLDAsMTI0LDEsMCwxMzEsCi0gICAgMSwwLDEyNSwxLDAsMTI0LDEsMCwxMDYsMiwwLDEwMCwyLDAsMTMxLDEsCi0gICAgMCwxLDExNiwwLDAsMTI0LDAsMCwxMDAsMywwLDEzMSwyLDAsMTE0LDg5LAotICAgIDAsMTI0LDEsMCwxMDYsMywwLDEyNCwwLDAsMTA2LDQsMCwxMzEsMSwwLAotICAgIDEsMTEzLDg5LDAsMTEwLDAsMCwxMjAsMTU4LDAsMTI0LDEsMCw2OCw5MywxNDcsCi0gICAgMCwxMjUsMywwLDExNiwwLDAsMTI0LDAsMCwxMjQsMywwLDEzMSwyLDAsCi0gICAgMTE1LDk2LDAsMTAwLDQsMCwxMDYsNSwwLDEyNCwwLDAsMTA2LDYsMCwxMjQsCi0gICAgMywwLDEzMSwyLDAsMTI1LDQsMCwxMjEsMTcsMCwxMTYsNywwLDEyNCwyLAotICAgIDAsMTI0LDQsMCwxMzEsMiwwLDEsODcsMTEzLDI0MywwLDQsMTE2LDgsMCwKLSAgICAxMDcsMTAsMCwxMTQsMjM5LDAsMSwxMjUsNSwwLDEsMTIyLDUwLDAsMTE2LDksCi0gICAgMCwxMjQsNSwwLDEwMCw1LDAsMTAwLDcsMCwxMzEsMywwLDExNCwyMTgsMCwKLSAgICAxMjQsNSwwLDEwNiwxMSwwLDEyNCw0LDAsMTA3LDIsMCwxMTQsMjE4LDAsMTE5LAotICAgIDk2LDAsMTEzLDIxOCwwLDExMCwwLDAsMTMwLDAsMCw4Nyw4OSwxMDAsNiwwLAotICAgIDEwMCw2LDAsMTI1LDUsMCwxMjYsNSwwLDg4LDExMywyNDMsMCw4OCwxMTMsOTYsCi0gICAgMCwxMTMsOTYsMCw4NywxMTAsMCwwLDEyNCwwLDAsODMsNDAsOCwwLDAsCi0gICAgMCwxMTcsMjM4LDAsMCwwLDcwLDEwNSwxMDMsMTE3LDExNCwxMDEsMzIsMTExLDExNywxMTYsCi0gICAgMzIsMTE5LDEwNCw5NywxMTYsMzIsOTUsOTUsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsOTUsOTUsCi0gICAgMzIsMTE1LDEwNCwxMTEsMTE3LDEwOCwxMDAsMzIsMTE0LDEwMSwxMTYsMTE3LDExNCwxMTAsNDYsMTAsCi0gICAgMTAsMzIsMzIsMzIsMzIsODQsMTA0LDEwMSwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiw5NSwKLSAgICAzMiwxMTIsOTcsMTE0LDk3LDEwOSwxMDEsMTE2LDEwMSwxMTQsMzIsMTA1LDExNSwzMiw5NywzMiwKLSAgICA5OSw5NywxMDgsMTA4LDk3LDk4LDEwOCwxMDEsMzIsMTE5LDEwNCwxMDUsOTksMTA0LDMyLDExNiwKLSAgICA5NywxMDcsMTAxLDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMTAsOTcsMTA5LDEwMSwzMiwxMTEsMTAyLAotICAgIDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDExNiwxMTEsMTAsMzIsMzIsMzIsMzIsMTA1LAotICAgIDEwOSwxMTIsMTExLDExNCwxMTYsNDYsMzIsNzMsMTE2LDMyLDEwNSwxMTUsMzIsMTE0LDEwMSwxMTMsCi0gICAgMTE3LDEwNSwxMTQsMTAxLDEwMCwzMiwxMTYsMTExLDMyLDEwMCwxMDEsOTksMTExLDExNywxMTIsMTA4LAotICAgIDEwMSwzMiwxMTYsMTA0LDEwMSwzMiwxMDIsMTE3LDExMCw5OSwxMTYsMTA1LDExMSwxMTAsMzIsMTAyLAotICAgIDExNCwxMTEsMTA5LDMyLDk3LDExNSwxMTUsMTE3LDEwOSwxMDUsMTEwLDEwMywzMiwxMDUsMTA5LDExMiwKLSAgICAxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDM5LDExNSwxMCwzMiwzMiwzMiwzMiwxMDUsMTA5LDExMiwKLSAgICAxMTEsMTE0LDExNiwzMiwxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiw5NywxMTYsMTA1LAotICAgIDExMSwxMTAsMzIsMTA1LDExNSwzMiwxMDAsMTAxLDExNSwxMDUsMTE0LDEwMSwxMDAsNDYsMTAsMTAsCi0gICAgMzIsMzIsMzIsMzIsMTE3LDgsMCwwLDAsOTUsOTUsMTEyLDk3LDExNiwxMDQsOTUsCi0gICAgOTUsMTE3LDEsMCwwLDAsNDIsMTE3LDcsMCwwLDAsOTUsOTUsOTcsMTA4LAotICAgIDEwOCw5NSw5NSwxMTcsNSwwLDAsMCwxMjMsMTI1LDQ2LDEyMywxMjUsMTE3LDEwLDAsCi0gICAgMCwwLDk1LDExMCwxMTEsMTE2LDk1LDEwMiwxMTEsMTE3LDExMCwxMDAsNzgsNzAsNDAsMTIsCi0gICAgMCwwLDAsMTE3LDcsMCwwLDAsMTA0LDk3LDExNSw5NywxMTYsMTE2LDExNCwxMTcsCi0gICAgNCwwLDAsMCwxMDgsMTA1LDExNSwxMTYsMTE3LDYsMCwwLDAsMTE0LDEwMSwxMDksCi0gICAgMTExLDExOCwxMDEsMTE3LDYsMCwwLDAsMTAxLDEyMCwxMTYsMTAxLDExMCwxMDAsMTE3LDcsCi0gICAgMCwwLDAsOTUsOTUsOTcsMTA4LDEwOCw5NSw5NSwxMTcsNiwwLDAsMCwxMDIsCi0gICAgMTExLDExNCwxMDksOTcsMTE2LDExNyw4LDAsMCwwLDk1LDk1LDExMCw5NywxMDksMTAxLAotICAgIDk1LDk1LDExNywyNSwwLDAsMCw5NSw5OSw5NywxMDgsMTA4LDk1LDExOSwxMDUsMTE2LAotICAgIDEwNCw5NSwxMDIsMTE0LDk3LDEwOSwxMDEsMTE1LDk1LDExNCwxMDEsMTA5LDExMSwxMTgsMTAxLDEwMCwKLSAgICAxMTcsMTEsMCwwLDAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw2OSwxMTQsMTE0LDExMSwxMTQsCi0gICAgMTE3LDcsMCwwLDAsMTAzLDEwMSwxMTYsOTcsMTE2LDExNiwxMTQsMTE3LDUsMCwwLAotICAgIDAsNzAsOTcsMTA4LDExNSwxMDEsMTE3LDQsMCwwLDAsMTEwLDk3LDEwOSwxMDEsNDAsCi0gICAgNiwwLDAsMCwxMTcsNiwwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTcsCi0gICAgOCwwLDAsMCwxMDIsMTE0LDExMSwxMDksMTA4LDEwNSwxMTUsMTE2LDExNyw3LDAsMCwKLSAgICAwLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDk1LDExNywxLDAsMCwwLDEyMCwxMTcsOSwKLSAgICAwLDAsMCwxMDIsMTE0LDExMSwxMDksOTUsMTEwLDk3LDEwOSwxMDEsMTE3LDMsMCwwLAotICAgIDAsMTAxLDEyMCw5OSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LAotICAgIDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsCi0gICAgMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLAotICAgIDExNywxNiwwLDAsMCw5NSwxMDQsOTcsMTEwLDEwMCwxMDgsMTAxLDk1LDEwMiwxMTQsMTExLAotICAgIDEwOSwxMDgsMTA1LDExNSwxMTYsNjAsNiwwLDAsMTE1LDM0LDAsMCwwLDAsMTAsCi0gICAgMTUsMSwxMiwxLDEyLDEsMTMsMSwxNSwxLDIyLDEsMTMsMSwxNSwxLAotICAgIDIxLDEsMywxLDE3LDEsMTgsNiwxOCwxLDE1LDEsOSwxLDMyLDEsCi0gICAgMTE3LDE2LDAsMCwwLDk1LDEwNCw5NywxMTAsMTAwLDEwOCwxMDEsOTUsMTAyLDExNCwxMTEsCi0gICAgMTA5LDEwOCwxMDUsMTE1LDExNiw5OSwxLDAsMCwwLDAsMCwwLDAsMiwwLAotICAgIDAsMCwyLDAsMCwwLDY3LDAsMCwwLDExNSw3OCwwLDAsMCwxMjQsCi0gICAgMCwwLDEwNiwwLDAsMTAwLDEsMCwxMzEsMSwwLDEyNSwxLDAsMTI0LDEsCi0gICAgMCwxMDAsNiwwLDEwNyw4LDAsMTE0LDc0LDAsMTI0LDAsMCwxMDAsMiwwLAotICAgIDI1LDEyNSwxLDAsMTAwLDMsMCwxMjQsMCwwLDEwNyw3LDAsMTE0LDc0LDAsCi0gICAgMTI0LDEsMCwxMDYsMiwwLDEwMCw0LDAsMTMxLDEsMCwxMDAsNSwwLDI1LAotICAgIDEyNSwxLDAsMTEzLDc0LDAsMTEwLDAsMCwxMjQsMSwwLDgzLDQwLDcsMCwKLSAgICAwLDAsMTE3LDE2NywwLDAsMCw2Nyw5NywxMDgsOTksMTE3LDEwOCw5NywxMTYsMTAxLAotICAgIDMyLDExOSwxMDQsOTcsMTE2LDMyLDk1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSwKLSAgICA5NSwzMiwxMTUsMTA0LDExMSwxMTcsMTA4LDEwMCwzMiw5OCwxMDEsNDYsMTAsMTAsMzIsMzIsCi0gICAgMzIsMzIsOTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDk1LDk1LDMyLDEwNSwxMTUsCi0gICAgMzIsMTEwLDExMSwxMTYsMzIsMTAzLDExNyw5NywxMTQsOTcsMTEwLDExNiwxMDEsMTAxLDEwMCwzMiwKLSAgICAxMTYsMTExLDMyLDk4LDEwMSwzMiwxMDAsMTAxLDEwMiwxMDUsMTEwLDEwMSwxMDAsMzIsMTExLDExNCwKLSAgICAzMiw5OSwxMTEsMTE3LDEwOCwxMDAsMzIsOTgsMTAxLDMyLDExNSwxMDEsMTE2LDMyLDExNiwxMTEsCi0gICAgMzIsNzgsMTExLDExMCwxMDEsMTAsMzIsMzIsMzIsMzIsMTE2LDExMSwzMiwxMTQsMTAxLDExMiwKLSAgICAxMTQsMTAxLDExNSwxMDEsMTEwLDExNiwzMiwxMTYsMTA0LDk3LDExNiwzMiwxMDUsMTE2LDExNSwzMiwKLSAgICAxMTIsMTE0LDExMSwxMTIsMTAxLDExNCwzMiwxMTgsOTcsMTA4LDExNywxMDEsMzIsMTA1LDExNSwzMiwKLSAgICAxMTcsMTEwLDEwNywxMTAsMTExLDExOSwxMTAsNDYsMTAsMTAsMzIsMzIsMzIsMzIsMTE3LDExLAotICAgIDAsMCwwLDk1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSw5NSwxMTcsOCwKLSAgICAwLDAsMCw5NSw5NSwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsOCwwLDAsMCwKLSAgICA5NSw5NSwxMTIsOTcsMTE2LDEwNCw5NSw5NSwxMTcsMSwwLDAsMCw0NiwxMDUsMCwKLSAgICAwLDAsMCw3OCw0MCwzLDAsMCwwLDExNywzLDAsMCwwLDEwMywxMDEsCi0gICAgMTE2LDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNywxMCwwLDAsMCwxMTQsCi0gICAgMTEyLDk3LDExNCwxMTYsMTA1LDExNiwxMDUsMTExLDExMCw0MCwyLDAsMCwwLDExNyw3LAotICAgIDAsMCwwLDEwMywxMDgsMTExLDk4LDk3LDEwOCwxMTUsMTE3LDcsMCwwLDAsMTEyLAotICAgIDk3LDk5LDEwNyw5NywxMDMsMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwKLSAgICAxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsCi0gICAgMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywKLSAgICAxMTIsNjIsMTE3LDE3LDAsMCwwLDk1LDk5LDk3LDEwOCw5OSw5NSw5NSw5NSwxMTIsCi0gICAgOTcsOTksMTA3LDk3LDEwMywxMDEsOTUsOTUsOTQsNiwwLDAsMTE1LDEyLDAsMCwKLSAgICAwLDAsNywxNSwxLDEyLDEsMTAsMSwxMiwxLDI1LDEsMTE3LDE3LDAsCi0gICAgMCwwLDk1LDk5LDk3LDEwOCw5OSw5NSw5NSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywKLSAgICAxMDEsOTUsOTUsOTksMCwwLDAsMCwwLDAsMCwwLDMsMCwwLDAsCi0gICAgMywwLDAsMCw2NywwLDAsMCwxMTUsNTUsMCwwLDAsMTE2LDAsMCwKLSAgICAxMTYsMSwwLDEwNiwyLDAsMTMxLDAsMCwxMDIsMiwwLDEyNSwwLDAsMTE2LAotICAgIDMsMCwxMTYsNCwwLDEwMiwyLDAsMTI1LDEsMCwxMTYsNSwwLDExNiw2LAotICAgIDAsMTAyLDIsMCwxMjUsMiwwLDEyNCwwLDAsMTI0LDEsMCwxMjQsMiwwLAotICAgIDEwMywzLDAsODMsNDAsMSwwLDAsMCwxMTcsMTExLDAsMCwwLDgyLDEwMSwKLSAgICAxMTYsMTE3LDExNCwxMTAsMTE1LDMyLDk3LDMyLDEwOCwxMDUsMTE1LDExNiwzMiwxMTEsMTAyLDMyLAotICAgIDEwMiwxMDUsMTA4LDEwMSw0NSw5OCw5NywxMTUsMTAxLDEwMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LAotICAgIDEwMSwzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDExNSw0NiwxMCwxMCwzMiwzMiwzMiwzMiwKLSAgICA2OSw5Nyw5OSwxMDQsMzIsMTA1LDExNiwxMDEsMTA5LDMyLDEwNSwxMTUsMzIsOTcsMzIsMTE2LAotICAgIDExNywxMTIsMTA4LDEwMSwzMiw0MCwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDQ0LDMyLDExNSwxMTcsCi0gICAgMTAyLDEwMiwxMDUsMTIwLDEwMSwxMTUsNDQsMzIsOTcsMTA4LDEwOCwxMTEsMTE5LDk1LDExMiw5NywKLSAgICA5OSwxMDcsOTcsMTAzLDEwMSwxMTUsNDEsNDYsMTAsMzIsMzIsMzIsMzIsNDAsNywwLAotICAgIDAsMCwxMTcsMTksMCwwLDAsNjksMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLDExMCwKLSAgICA3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LDQsMCwwLDAsOTUsCi0gICAgMTA1LDEwOSwxMTIsMTE3LDE4LDAsMCwwLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsCi0gICAgMTEwLDk1LDExNSwxMTcsMTAyLDEwMiwxMDUsMTIwLDEwMSwxMTUsMTE3LDE2LDAsMCwwLDgzLAotICAgIDExMSwxMTcsMTE0LDk5LDEwMSw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LAotICAgIDE1LDAsMCwwLDgzLDc5LDg1LDgyLDY3LDY5LDk1LDgzLDg1LDcwLDcwLDczLAotICAgIDg4LDY5LDgzLDExNywyMCwwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsMTA4LDEwMSwKLSAgICAxMTUsMTE1LDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCwxMTcsMTcsMCwwLAotICAgIDAsNjYsODksODQsNjksNjcsNzksNjgsNjksOTUsODMsODUsNzAsNzAsNzMsODgsCi0gICAgNjksODMsNDAsMywwLDAsMCwxMTcsMTAsMCwwLDAsMTAxLDEyMCwxMTYsMTAxLAotICAgIDExMCwxMTUsMTA1LDExMSwxMTAsMTE1LDExNyw2LDAsMCwwLDExNSwxMTEsMTE3LDExNCw5OSwKLSAgICAxMDEsMTE3LDgsMCwwLDAsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsNDAsMCwKLSAgICAwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LAotICAgIDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LAotICAgIDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMjcsMCwwLDAsOTUsCi0gICAgMTAzLDEwMSwxMTYsOTUsMTE1LDExNywxMTIsMTEyLDExMSwxMTQsMTE2LDEwMSwxMDAsOTUsMTAyLDEwNSwKLSAgICAxMDgsMTAxLDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMTE1LDEwOSw2LDAsMCwxMTUsOCwKLSAgICAwLDAsMCwwLDUsMTgsMSwxMiwxLDEyLDEsMTE3LDI3LDAsMCwwLAotICAgIDk1LDEwMywxMDEsMTE2LDk1LDExNSwxMTcsMTEyLDExMiwxMTEsMTE0LDExNiwxMDEsMTAwLDk1LDEwMiwKLSAgICAxMDUsMTA4LDEwMSw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDExNSw5OSw1LDAsMCwwLAotICAgIDAsMCwwLDAsOSwwLDAsMCw1LDAsMCwwLDY3LDAsMCwwLAotICAgIDExNSwyMjcsMCwwLDAsMTI0LDQsMCwxMDAsMSwwLDEwNywyLDAsMTE0LDI3LAotICAgIDAsMTE2LDAsMCwxMjQsMCwwLDEzMSwxLDAsMTI1LDUsMCwxMTAsNTQsMCwKLSAgICAxMjQsMSwwLDEwMCwzLDAsMTA3LDksMCwxMTQsNDUsMCwxMjQsMSwwLDExMCwKLSAgICAzLDAsMTA1LDAsMCwxMjUsNiwwLDExNiwyLDAsMTI0LDYsMCwxMzEsMSwKLSAgICAwLDEyNSw3LDAsMTE2LDAsMCwxMjQsMCwwLDEyNCw3LDAsMTI0LDQsMCwKLSAgICAxMzEsMywwLDEyNSw1LDAsMTI0LDMsMCwxMTUsMjA3LDAsMTI0LDQsMCwxMDAsCi0gICAgMSwwLDEwNywyLDAsMTE0LDEyMiwwLDExNiwwLDAsMTI0LDAsMCwxMDYsMywKLSAgICAwLDEwMCwyLDAsMTMxLDEsMCwxMDAsMSwwLDI1LDEzMSwxLDAsODMsMTI0LAotICAgIDAsMCwxMTUsMTMyLDAsMTI0LDUsMCw4MywxMTYsNCwwLDEyNCwwLDAsMTMxLAotICAgIDEsMCwxMTYsNCwwLDEyNCwwLDAsMTA2LDMsMCwxMDAsMiwwLDEzMSwxLAotICAgIDAsMTAwLDEsMCwyNSwxMzEsMSwwLDI0LDEyNSw4LDAsMTE2LDUsMCwxMDYsCi0gICAgNiwwLDEyNCw1LDAsMTA2LDcsMCwxMDAsMywwLDExNiw0LDAsMTI0LDUsCi0gICAgMCwxMDYsNywwLDEzMSwxLDAsMTI0LDgsMCwyNCwxMzMsMiwwLDI1LDI1LAotICAgIDgzLDExMCwxNiwwLDExNiw4LDAsMTI0LDUsMCwxMjQsMywwLDExNiwwLDAsCi0gICAgMTMxLDMsMCw4MywxMDAsMywwLDgzLDQwLDQsMCwwLDAsMTE3LDIxNCwxLAotICAgIDAsMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDMyLDk3LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsCi0gICAgMTAxLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDg0LDEwNCwxMDEsMzIsMzksMTAzLDEwOCwxMTEsCi0gICAgOTgsOTcsMTA4LDExNSwzOSwzMiw5NywxMTQsMTAzLDExNywxMDksMTAxLDExMCwxMTYsMzIsMTA1LAotICAgIDExNSwzMiwxMTcsMTE1LDEwMSwxMDAsMzIsMTE2LDExMSwzMiwxMDUsMTEwLDEwMiwxMDEsMTE0LDMyLAotICAgIDExOSwxMDQsMTAxLDExNCwxMDEsMzIsMTE2LDEwNCwxMDEsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsCi0gICAgMzIsMTA1LDExNSwzMiwxMTEsOTksOTksMTE3LDExNCwxMDUsMTEwLDEwMywzMiwxMDIsMTE0LDExMSwKLSAgICAxMDksMTAsMzIsMzIsMzIsMzIsMTE2LDExMSwzMiwxMDQsOTcsMTEwLDEwMCwxMDgsMTAxLDMyLAotICAgIDExNCwxMDEsMTA4LDk3LDExNiwxMDUsMTE4LDEwMSwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMTUsCi0gICAgNDYsMzIsODQsMTA0LDEwMSwzMiwzOSwxMDgsMTExLDk5LDk3LDEwOCwxMTUsMzksMzIsOTcsCi0gICAgMTE0LDEwMywxMTcsMTA5LDEwMSwxMTAsMTE2LDMyLDEwNSwxMTUsMzIsMTA1LDEwMywxMTAsMTExLDExNCwKLSAgICAxMDEsMTAwLDQ2LDMyLDg0LDEwNCwxMDEsMTAsMzIsMzIsMzIsMzIsMzksMTAyLDExNCwxMTEsCi0gICAgMTA5LDEwOCwxMDUsMTE1LDExNiwzOSwzMiw5NywxMTQsMTAzLDExNywxMDksMTAxLDExMCwxMTYsMzIsCi0gICAgMTE1LDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDExNSwzMiwxMTksMTA0LDk3LDExNiwzMiwxMTUsCi0gICAgMTA0LDExMSwxMTcsMTA4LDEwMCwzMiwxMDEsMTIwLDEwNSwxMTUsMTE2LDMyLDk3LDExNSwzMiw5NywKLSAgICAxMTYsMTE2LDExNCwxMDUsOTgsMTE3LDExNiwxMDEsMTE1LDMyLDExMSwxMTAsMzIsMTE2LDEwNCwxMDEsCi0gICAgMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTAsMzIsMzIsMzIsMzIsOTgsMTAxLDEwNSwxMTAsCi0gICAgMTAzLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMDAsMzIsNDAsMTAxLDQ2LDEwMyw0NiwKLSAgICAzMiw5Niw5NiwxMDIsMTE0LDExMSwxMDksMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTA1LAotICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMzIsNjAsMTAyLDExNCwxMTEsMTA5LDEwOCwxMDUsMTE1LDExNiw2MiwKLSAgICA5Niw5Niw0MSw0NiwzMiwzMiw4NCwxMDQsMTAxLDMyLDM5LDEwOCwxMDEsMTE4LDEwMSwxMDgsCi0gICAgMzksMTAsMzIsMzIsMzIsMzIsOTcsMTE0LDEwMywxMTcsMTA5LDEwMSwxMTAsMTE2LDMyLDExNCwKLSAgICAxMDEsMTEyLDExNCwxMDEsMTE1LDEwMSwxMTAsMTE2LDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsOTcsCi0gICAgOTksMTA3LDk3LDEwMywxMDEsMzIsMTA4LDExMSw5OSw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTE2LAotICAgIDExMSwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwzMiwxMDIsMTE0LDExMSwxMDksMzIsMTA1LDExMCwKLSAgICAzMiw5NywzMiwxMTQsMTAxLDEwOCw5NywxMTYsMTA1LDExOCwxMDEsMTAsMzIsMzIsMzIsMzIsCi0gICAgMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsNDAsMTAxLDQ2LDEwMyw0NiwzMiw5Niw5NiwxMDIsCi0gICAgMTE0LDExMSwxMDksMzIsNDYsNDYsMTEyLDEwNywxMDMsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsCi0gICAgMzIsMTA5LDExMSwxMDAsOTYsOTYsMzIsMTE5LDExMSwxMTcsMTA4LDEwMCwzMiwxMDQsOTcsMTE4LAotICAgIDEwMSwzMiw5NywzMiwzOSwxMDgsMTAxLDExOCwxMDEsMTA4LDM5LDMyLDExMSwxMDIsMzIsNTAsCi0gICAgNDEsNDYsMTAsMTAsMzIsMzIsMzIsMzIsMTA1LDAsMCwwLDAsMTE3LDEsMCwKLSAgICAwLDAsNDYsNzgsNDAsOSwwLDAsMCwxMTcsMTEsMCwwLDAsOTUsMTAzLAotICAgIDk5LDEwMCw5NSwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMTcsNCwwLDAsMCw3OCwxMTEsCi0gICAgMTEwLDEwMSwxMTcsMTcsMCwwLDAsOTUsOTksOTcsMTA4LDk5LDk1LDk1LDk1LDExMiwKLSAgICA5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSw5NSwxMTcsOSwwLDAsMCwxMTIsOTcsMTE0LAotICAgIDExNiwxMDUsMTE2LDEwNSwxMTEsMTEwLDExNywzLDAsMCwwLDEwOCwxMDEsMTEwLDExNywzLAotICAgIDAsMCwwLDExNSwxMjEsMTE1LDExNyw3LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsCi0gICAgMTAxLDExNSwxMTcsOCwwLDAsMCw5NSw5NSwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsCi0gICAgMTYsMCwwLDAsOTUsMTA0LDk3LDExMCwxMDAsMTA4LDEwMSw5NSwxMDIsMTE0LDExMSwxMDksCi0gICAgMTA4LDEwNSwxMTUsMTE2LDQwLDksMCwwLDAsMTE3LDQsMCwwLDAsMTEwLDk3LAotICAgIDEwOSwxMDEsMTE3LDcsMCwwLDAsMTAzLDEwOCwxMTEsOTgsOTcsMTA4LDExNSwxMTcsNiwKLSAgICAwLDAsMCwxMDgsMTExLDk5LDk3LDEwOCwxMTUsMTE3LDgsMCwwLDAsMTAyLDExNCwKLSAgICAxMTEsMTA5LDEwOCwxMDUsMTE1LDExNiwxMTcsNSwwLDAsMCwxMDgsMTAxLDExOCwxMDEsMTA4LAotICAgIDExNyw2LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNyw4LDAsMCwwLAotICAgIDEwMywxMDgsMTExLDk4LDk3LDEwOCwxMTUsOTUsMTE3LDcsMCwwLDAsMTEyLDk3LDk5LAotICAgIDEwNyw5NywxMDMsMTAxLDExNyw3LDAsMCwwLDk5LDExNywxMTYsOTUsMTExLDEwMiwxMDIsCi0gICAgNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwKLSAgICAxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LAotICAgIDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTAsMCwwLAotICAgIDAsOTUsOTUsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsOTUsOTUsMTIwLDYsMCwwLDExNSwKLSAgICAyNiwwLDAsMCwwLDExLDEyLDEsMTUsMiwyNCwxLDEyLDEsMTgsMSwKLSAgICA2LDMsMTIsMSwyMywxLDYsMSw0LDQsMzUsMyw0MCwyLDExNywxMCwKLSAgICAwLDAsMCw5NSw5NSwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiw5NSw5NSw5OSwyLDAsCi0gICAgMCwwLDAsMCwwLDAsMTYsMCwwLDAsMTMsMCwwLDAsNjcsMCwKLSAgICAwLDAsMTE1LDI0LDMsMCwwLDEyNCwxLDAsOTcsMCwwLDEyNCwwLDAsCi0gICAgOTcsMSwwLDExNiwxLDAsMTA2LDIsMCwxMDYsMywwLDExNCwzMywwLDExNiwKLSAgICA0LDAsOTcsNSwwLDExMCw2LDAsMTE2LDYsMCw5Nyw1LDAsMTE2LDcsCi0gICAgMCwxMTYsMSwwLDEzMSwxLDAsMTI1LDIsMCwxMjAsMTE5LDAsMTE2LDEsMCwKLSAgICAxMDYsOCwwLDEwNiw5LDAsMTMxLDAsMCw2OCw5MywxMDIsMCw5MiwyLDAsCi0gICAgMTI1LDMsMCwxMjUsNCwwLDExNiwxMCwwLDEyNCw0LDAsMTI0LDIsMCwxMzEsCi0gICAgMiwwLDExNCw2NywwLDExNiwxMSwwLDEyNCw0LDAsMTAwLDEsMCwxMzEsMiwKLSAgICAwLDExNSwxNjksMCwxMjQsMywwLDExNiwxLDAsMTA2LDEyLDAsMTA3LDYsMCwKLSAgICAxMTQsMTM2LDAsMTE2LDEzLDAsMTI0LDQsMCw5NSwxNCwwLDExMywxNjYsMCwxMTYsCi0gICAgMCwwLDEwNiwxNSwwLDEyNCwzLDAsMTMxLDEsMCwxMTQsMTY2LDAsMTE2LDE2LAotICAgIDAsMTI0LDQsMCw5NSwxNCwwLDExMywxNjYsMCwxMTMsMTY5LDAsMTEzLDY3LDAsCi0gICAgMTEzLDY3LDAsODcsMTE2LDEsMCwxMDYsOCwwLDExNiwxNywwLDI1LDEyNSw1LAotICAgIDAsMTIwLDc2LDAsMTAwLDI4LDAsNjgsOTMsNjgsMCwxMjUsNiwwLDEyNCw2LAotICAgIDAsMTE2LDEsMCwxMDYsOCwwLDEwNyw3LDAsMTE0LDIzMiwwLDExNiwxMywwLAotICAgIDEwNiwxOCwwLDEyNCw2LDAsMTMxLDEsMCwxMjUsNywwLDExMCwxMywwLDExNiwKLSAgICAxLDAsMTA2LDgsMCwxMjQsNiwwLDI1LDEyNSw3LDAsMTE2LDE5LDAsMTI0LAotICAgIDUsMCwxMjQsNiwwLDEyNCw3LDAsMTMxLDMsMCwxLDExMywxOTMsMCw4NywKLSAgICAxMDAsNiwwLDEwMCw3LDAsMTAzLDEsMCwxMDIsMiwwLDEwMCw4LDAsMTAwLAotICAgIDksMCwxMDAsNywwLDEwMywyLDAsMTAyLDIsMCwxMDAsMTAsMCwxMDAsOSwKLSAgICAwLDEwMCw3LDAsMTAzLDIsMCwxMDIsMiwwLDEwMiwzLDAsMTI1LDgsMCwKLSAgICAxMjAsMTg5LDAsMTI0LDgsMCw2OCw5MywxNjksMCw5MiwyLDAsMTI1LDksMCwKLSAgICAxMjUsMTAsMCwxMTYsMjAsMCwxMDAsMTEsMCwxMDAsMTIsMCwxMzIsMCwwLDEyNCwKLSAgICAxMCwwLDY4LDEzMSwxLDAsMTMxLDEsMCwxMTUsMTA3LDEsMTE2LDIxLDAsMTMwLAotICAgIDEsMCwxMjQsMTAsMCwxMDAsMTMsMCwyNSwxMjUsMTEsMCwxMjQsOSwwLDExNiwKLSAgICAxLDAsMTA2LDgsMCwxMDcsNiwwLDExNCwxNDksMSwxMTYsMSwwLDEwNiw4LAotICAgIDAsMTI0LDksMCwyNSwxMjUsMTIsMCw4MCwxMTMsNjQsMSwxMjEsNjAsMCwxMTYsCi0gICAgMTMsMCwxMDYsMTgsMCwxMjQsOSwwLDEzMSwxLDAsMTI1LDEyLDAsMTI0LDksCi0gICAgMCwxMDAsMTAsMCwxMDcsMiwwLDExNCwyMDcsMSwxMDAsMTQsMCwxMTYsMSwwLAotICAgIDEwNiwyMiwwLDEwNyw2LDAsMTE0LDIwNywxLDEyNCwxMCwwLDEwMCwxNSwwLDI1LAotICAgIDEyNSwxMSwwLDExMCwwLDAsODAsODcsMTEzLDY0LDEsNCwxMTYsMjMsMCwxMDcsCi0gICAgMTAsMCwxMTQsMjMyLDEsMSwxLDEsMTE5LDY0LDEsODksMTEzLDY0LDEsODgsCi0gICAgMTEzLDY0LDEsODcsMTE2LDIzLDAsMTAwLDE2LDAsMTMxLDEsMCwxMzAsMSwwLAotICAgIDEyMSwxOSwwLDExNiwxMywwLDEwNiwxOCwwLDEwMCwxNywwLDEzMSwxLDAsMTI1LAotICAgIDEzLDAsODcsMTEwLDI0LDAsNCwxMTYsMjMsMCwxMDcsMTAsMCwxMTQsMzgsMiwKLSAgICAxLDEsMSwxMDAsMjcsMCwxMjUsMTMsMCw4OSwxMTAsMSwwLDg4LDExNiwxMywKLSAgICAwLDEwNiwxOCwwLDEwMCwxOCwwLDEzMSwxLDAsMTI1LDE0LDAsMTI0LDksMCwKLSAgICAxMDAsOCwwLDEwNywyLDAsMTE0LDEwMCwyLDExNiwxMywwLDEwNiwxOCwwLDEwMCwKLSAgICAxOSwwLDEzMSwxLDAsMTI1LDE1LDAsMTE2LDE5LDAsMTI0LDUsMCwxMDAsMjAsCi0gICAgMCwxMjQsMTUsMCwxMzEsMywwLDEsMTEwLDAsMCwxMTYsMTksMCwxMjQsNSwKLSAgICAwLDEwMCwyMSwwLDEyNCwxMiwwLDEzMSwzLDAsMSwxMTYsMTksMCwxMjQsNSwKLSAgICAwLDEwMCwxNywwLDEyNCwxMywwLDEzMSwzLDAsMSwxMTYsMTksMCwxMjQsNSwKLSAgICAwLDEwMCwxOCwwLDEyNCwxNCwwLDEzMSwzLDAsMSwxMTYsMTksMCwxMjQsNSwKLSAgICAwLDEwMCwyMiwwLDEyNCwxMSwwLDEzMSwzLDAsMSwxMTYsMTksMCwxMjQsNSwKLSAgICAwLDEwMCwyMywwLDExNiwyNSwwLDEyNCwxMCwwLDEzMSwxLDAsMTMxLDMsMCwKLSAgICAxLDExNiwxOSwwLDEyNCw1LDAsMTAwLDI0LDAsMTE2LDI2LDAsMTMxLDAsMCwKLSAgICAxMzEsMywwLDEsMTE2LDI3LDAsMTA2LDI4LDAsMTE2LDAsMCwxMDYsMjksMCwKLSAgICAxMzEsMCwwLDEzMSwxLDAsMSwxMjQsOSwwLDEwMCw4LDAsMTA3LDIsMCwKLSAgICAxMTQsMjAsMywxMTYsMzAsMCwxMDYsMzEsMCwxMDAsMjUsMCwxMzEsMSwwLDEsCi0gICAgMTAwLDI2LDAsMTE2LDI3LDAsMTA3LDYsMCwxMTQsMjAsMywxMDAsMjksMCwxMTYsCi0gICAgMzMsMCw5NSwzNCwwLDExMywyMCwzLDExMCwwLDAsMTAwLDI3LDAsODMsNDAsCi0gICAgMzAsMCwwLDAsMTE3LDI1MCwwLDAsMCw4MywxMDEsMTE2LDExNywxMTIsMzIsMTA1LAotICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCwzMiw5OCwxMjEsMzIsMTA1LDEwOSwxMTIsMTExLAotICAgIDExNCwxMTYsMTA1LDExMCwxMDMsMzIsMTEwLDEwMSwxMDEsMTAwLDEwMSwxMDAsMzIsOTgsMTE3LDEwNSwKLSAgICAxMDgsMTE2LDQ1LDEwNSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDMyLDk3LDExMCwKLSAgICAxMDAsMzIsMTA1LDExMCwxMDYsMTAxLDk5LDExNiwxMDUsMTEwLDEwMywzMiwxMTYsMTA0LDEwMSwxMDksCi0gICAgMTAsMzIsMzIsMzIsMzIsMTA1LDExMCwxMTYsMTExLDMyLDExNiwxMDQsMTAxLDMyLDEwMywxMDgsCi0gICAgMTExLDk4LDk3LDEwOCwzMiwxMTAsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw0NiwxMCwKLSAgICAxMCwzMiwzMiwzMiwzMiw2NSwxMTUsMzIsMTE1LDEyMSwxMTUsMzIsMTA1LDExNSwzMiwxMTAsCi0gICAgMTAxLDEwMSwxMDAsMTAxLDEwMCwzMiwxMDIsMTExLDExNCwzMiwxMTUsMTIxLDExNSw0NiwxMDksMTExLAotICAgIDEwMCwxMTcsMTA4LDEwMSwxMTUsMzIsOTcsOTksOTksMTAxLDExNSwxMTUsMzIsOTcsMTEwLDEwMCwKLSAgICAzMiw5NSwxMDUsMTA5LDExMiwzMiwxMDUsMTE1LDMyLDExMCwxMDEsMTAxLDEwMCwxMDEsMTAwLDMyLAotICAgIDExNiwxMTEsMzIsMTA4LDExMSw5NywxMDAsMzIsOTgsMTE3LDEwNSwxMDgsMTE2LDQ1LDEwNSwxMTAsCi0gICAgMTAsMzIsMzIsMzIsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDQ0LDMyLDExNiwxMDQsCi0gICAgMTExLDExNSwxMDEsMzIsMTE2LDExOSwxMTEsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDMyLAotICAgIDEwOSwxMTcsMTE1LDExNiwzMiw5OCwxMDEsMzIsMTAxLDEyMCwxMTIsMTA4LDEwNSw5OSwxMDUsMTE2LAotICAgIDEwOCwxMjEsMzIsMTEyLDk3LDExNSwxMTUsMTAxLDEwMCwzMiwxMDUsMTEwLDQ2LDEwLDEwLDMyLAotICAgIDMyLDMyLDMyLDExNywxMCwwLDAsMCw5NSw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LAotICAgIDk1LDk1LDExNywzLDAsMCwwLDk1LDEwNSwxMTEsMTE3LDksMCwwLDAsOTUsCi0gICAgMTE5LDk3LDExNCwxMTAsMTA1LDExMCwxMDMsMTE1LDExNyw4LDAsMCwwLDk4LDExNywxMDUsCi0gICAgMTA4LDExNiwxMDUsMTEwLDExNSwxMTcsNywwLDAsMCwxMDksOTcsMTE0LDExNSwxMDQsOTcsCi0gICAgMTA4LDExNyw1LDAsMCwwLDExMiwxMTEsMTE1LDEwNSwxMjAsMTE3LDEsMCwwLDAsCi0gICAgNDcsMTE3LDIsMCwwLDAsMTEwLDExNiwxMTcsMSwwLDAsMCw5MiwxMTcsMywKLSAgICAwLDAsMCwxMTEsMTE1LDUwLDk5LDEsMCwwLDAsMCwwLDAsMCwyLAorICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwxMTQsNjYsMCwwLDAsNDAsMTIsMCwwLAorICAgIDAsMTE0LDY0LDEsMCwwLDExNCw1OSwxLDAsMCwxMTQsOTYsMCwwLDAsCisgICAgMTE0LDU2LDEsMCwwLDExNCw3LDAsMCwwLDExNCwxNDUsMCwwLDAsMTE0LAorICAgIDY5LDEsMCwwLDI0NCwxMSwwLDAsMCw5NSwxMDMsOTksMTAwLDk1LDEwNSwxMDksCisgICAgMTEyLDExMSwxMTQsMTE2LDExNCw5NywwLDAsMCwxMTQsNDYsMCwwLDAsMTE0LDE1NiwKKyAgICAwLDAsMCwxMTQsOTgsMCwwLDAsNDAsNSwwLDAsMCwxMTQsNjYsMCwKKyAgICAwLDAsMTE0LDU3LDEsMCwwLDExNCw1OCwxLDAsMCwxMTQsMTYwLDAsMCwKKyAgICAwLDExNCwxMzksMCwwLDAsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsCisgICAgMTE0LDUsMCwwLDAsMTE0LDcwLDEsMCwwLDY1LDYsMCwwLDExNSwyNiwKKyAgICAwLDAsMCwwLDksMTYsMSwxMiwxLDIxLDEsMTAsMSwxNSwxLDEzLAorICAgIDEsMTMsMSwxMiwxLDEwLDIsMTUsMSwyMSwxLDEwLDEsMTE0LDcwLDEsCisgICAgMCwwLDk5LDMsMCwwLDAsMCwwLDAsMCw2LDAsMCwwLDE3LAorICAgIDAsMCwwLDY3LDAsMCwwLDExNSwyNTQsMCwwLDAsMTE2LDAsMCwxMjQsCisgICAgMCwwLDEwMCwxLDAsMTMxLDIsMCwxMTQsMjUwLDAsMTAwLDIsMCwxMjQsMSwKKyAgICAwLDEwNyw2LDAsMTE0LDg5LDAsMTE2LDEsMCwxMjQsMSwwLDEzMSwxLDAsCisgICAgMTI1LDEsMCwxMjQsMSwwLDEwNiwyLDAsMTAwLDIsMCwxMzEsMSwwLDEsCisgICAgMTE2LDAsMCwxMjQsMCwwLDEwMCwzLDAsMTMxLDIsMCwxMTQsODksMCwxMjQsCisgICAgMSwwLDEwNiwzLDAsMTI0LDAsMCwxMDYsNCwwLDEzMSwxLDAsMSwxMTMsCisgICAgODksMCwxMTAsMCwwLDEyMCwxNTgsMCwxMjQsMSwwLDY4LDkzLDE0NywwLDEyNSwKKyAgICAzLDAsMTE2LDAsMCwxMjQsMCwwLDEyNCwzLDAsMTMxLDIsMCwxMTUsOTYsCisgICAgMCwxMDAsNCwwLDEwNiw1LDAsMTI0LDAsMCwxMDYsNiwwLDEyNCwzLDAsCisgICAgMTMxLDIsMCwxMjUsNCwwLDEyMSwxNywwLDExNiw3LDAsMTI0LDIsMCwxMjQsCisgICAgNCwwLDEzMSwyLDAsMSw4NywxMTMsMjQzLDAsNCwxMTYsOCwwLDEwNywxMCwKKyAgICAwLDExNCwyMzksMCwxLDEyNSw1LDAsMSwxMjIsNTAsMCwxMTYsOSwwLDEyNCwKKyAgICA1LDAsMTAwLDUsMCwxMDAsNiwwLDEzMSwzLDAsMTE0LDIxOCwwLDEyNCw1LAorICAgIDAsMTA2LDEwLDAsMTI0LDQsMCwxMDcsMiwwLDExNCwyMTgsMCwxMTksOTYsMCwKKyAgICAxMTMsMjE4LDAsMTEwLDAsMCwxMzAsMCwwLDg3LDg5LDEwMCw3LDAsMTAwLDcsCisgICAgMCwxMjUsNSwwLDEyNiw1LDAsODgsMTEzLDI0MywwLDg4LDExMyw5NiwwLDExMywKKyAgICA5NiwwLDg3LDExMCwwLDAsMTI0LDAsMCw4Myw0MCw4LDAsMCwwLDExNywKKyAgICAyMzgsMCwwLDAsNzAsMTA1LDEwMywxMTcsMTE0LDEwMSwzMiwxMTEsMTE3LDExNiwzMiwxMTksCisgICAgMTA0LDk3LDExNiwzMiw5NSw5NSwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiw5NSw5NSwzMiwxMTUsCisgICAgMTA0LDExMSwxMTcsMTA4LDEwMCwzMiwxMTQsMTAxLDExNiwxMTcsMTE0LDExMCw0NiwxMCwxMCwzMiwKKyAgICAzMiwzMiwzMiw4NCwxMDQsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDk1LDMyLDExMiwKKyAgICA5NywxMTQsOTcsMTA5LDEwMSwxMTYsMTAxLDExNCwzMiwxMDUsMTE1LDMyLDk3LDMyLDk5LDk3LAorICAgIDEwOCwxMDgsOTcsOTgsMTA4LDEwMSwzMiwxMTksMTA0LDEwNSw5OSwxMDQsMzIsMTE2LDk3LDEwNywKKyAgICAxMDEsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDExMCw5NywxMDksMTAxLDMyLDExMSwxMDIsMzIsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTE2LDExMSwxMCwzMiwzMiwzMiwzMiwxMDUsMTA5LDExMiwKKyAgICAxMTEsMTE0LDExNiw0NiwzMiw3MywxMTYsMzIsMTA1LDExNSwzMiwxMTQsMTAxLDExMywxMTcsMTA1LAorICAgIDExNCwxMDEsMTAwLDMyLDExNiwxMTEsMzIsMTAwLDEwMSw5OSwxMTEsMTE3LDExMiwxMDgsMTAxLDMyLAorICAgIDExNiwxMDQsMTAxLDMyLDEwMiwxMTcsMTEwLDk5LDExNiwxMDUsMTExLDExMCwzMiwxMDIsMTE0LDExMSwKKyAgICAxMDksMzIsOTcsMTE1LDExNSwxMTcsMTA5LDEwNSwxMTAsMTAzLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsCisgICAgMTE2LDEwOCwxMDUsOTgsMzksMTE1LDEwLDMyLDMyLDMyLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsCisgICAgMTE2LDMyLDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDk3LDExNiwxMDUsMTExLDExMCwKKyAgICAzMiwxMDUsMTE1LDMyLDEwMCwxMDEsMTE1LDEwNSwxMTQsMTAxLDEwMCw0NiwxMCwxMCwzMiwzMiwKKyAgICAzMiwzMiwxMTQsMTU4LDAsMCwwLDI0NSwxLDAsMCwwLDQyLDI0NCw3LDAsCisgICAgMCwwLDk1LDk1LDk3LDEwOCwxMDgsOTUsOTUsMTE3LDUsMCwwLDAsMTIzLDEyNSwKKyAgICA0NiwxMjMsMTI1LDExNCw2NiwxLDAsMCw3MCw3OCw0MCwxMSwwLDAsMCwxMTQsCisgICAgNTksMCwwLDAsMjQ0LDQsMCwwLDAsMTA4LDEwNSwxMTUsMTE2LDI0NCw2LDAsCisgICAgMCwwLDExNCwxMDEsMTA5LDExMSwxMTgsMTAxLDExNCwyMDUsMCwwLDAsMTE0LDcyLDEsCisgICAgMCwwLDExNCw0NiwwLDAsMCwxMTQsNTYsMCwwLDAsMTE0LDEwMSwwLDAsCisgICAgMCwxMTQsMTU2LDAsMCwwLDExNCw2MSwwLDAsMCwxMTQsNjYsMCwwLDAsCisgICAgNDAsNiwwLDAsMCwxMTQsMTYwLDAsMCwwLDI0NCw4LDAsMCwwLDEwMiwKKyAgICAxMTQsMTExLDEwOSwxMDgsMTA1LDExNSwxMTYsMTE0LDY3LDEsMCwwLDExNCwxNiwwLDAsCisgICAgMCwxMTYsOSwwLDAsMCwxMDIsMTE0LDExMSwxMDksOTUsMTEwLDk3LDEwOSwxMDEsMTE0LAorICAgIDI0NywwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwKKyAgICAwLDAsMCwyNDQsMTYsMCwwLDAsOTUsMTA0LDk3LDExMCwxMDAsMTA4LDEwMSw5NSwKKyAgICAxMDIsMTE0LDExMSwxMDksMTA4LDEwNSwxMTUsMTE2LDg5LDYsMCwwLDExNSwzNCwwLDAsCisgICAgMCwwLDEwLDE1LDEsMTIsMSwxMiwxLDEzLDEsMTUsMSwyMiwxLDEzLAorICAgIDEsMTUsMSwyMSwxLDMsMSwxNywxLDE4LDYsMTgsMSwxNSwxLDksCisgICAgMSwzMiwxLDExNCw3NiwxLDAsMCw5OSwxLDAsMCwwLDAsMCwwLAorICAgIDAsMiwwLDAsMCwyLDAsMCwwLDY3LDAsMCwwLDExNSw3OCwwLAorICAgIDAsMCwxMjQsMCwwLDEwNiwwLDAsMTAwLDEsMCwxMzEsMSwwLDEyNSwxLAorICAgIDAsMTI0LDEsMCwxMDAsMiwwLDEwNyw4LDAsMTE0LDc0LDAsMTI0LDAsMCwKKyAgICAxMDAsMywwLDI1LDEyNSwxLDAsMTAwLDQsMCwxMjQsMCwwLDEwNyw3LDAsCisgICAgMTE0LDc0LDAsMTI0LDEsMCwxMDYsMSwwLDEwMCw1LDAsMTMxLDEsMCwxMDAsCisgICAgNiwwLDI1LDEyNSwxLDAsMTEzLDc0LDAsMTEwLDAsMCwxMjQsMSwwLDgzLAorICAgIDQwLDcsMCwwLDAsMTE3LDE2NywwLDAsMCw2Nyw5NywxMDgsOTksMTE3LDEwOCwKKyAgICA5NywxMTYsMTAxLDMyLDExOSwxMDQsOTcsMTE2LDMyLDk1LDk1LDExMiw5Nyw5OSwxMDcsOTcsCisgICAgMTAzLDEwMSw5NSw5NSwzMiwxMTUsMTA0LDExMSwxMTcsMTA4LDEwMCwzMiw5OCwxMDEsNDYsMTAsCisgICAgMTAsMzIsMzIsMzIsMzIsOTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDk1LDk1LAorICAgIDMyLDEwNSwxMTUsMzIsMTEwLDExMSwxMTYsMzIsMTAzLDExNyw5NywxMTQsOTcsMTEwLDExNiwxMDEsCisgICAgMTAxLDEwMCwzMiwxMTYsMTExLDMyLDk4LDEwMSwzMiwxMDAsMTAxLDEwMiwxMDUsMTEwLDEwMSwxMDAsCisgICAgMzIsMTExLDExNCwzMiw5OSwxMTEsMTE3LDEwOCwxMDAsMzIsOTgsMTAxLDMyLDExNSwxMDEsMTE2LAorICAgIDMyLDExNiwxMTEsMzIsNzgsMTExLDExMCwxMDEsMTAsMzIsMzIsMzIsMzIsMTE2LDExMSwzMiwKKyAgICAxMTQsMTAxLDExMiwxMTQsMTAxLDExNSwxMDEsMTEwLDExNiwzMiwxMTYsMTA0LDk3LDExNiwzMiwxMDUsCisgICAgMTE2LDExNSwzMiwxMTIsMTE0LDExMSwxMTIsMTAxLDExNCwzMiwxMTgsOTcsMTA4LDExNywxMDEsMzIsCisgICAgMTA1LDExNSwzMiwxMTcsMTEwLDEwNywxMTAsMTExLDExOSwxMTAsNDYsMTAsMTAsMzIsMzIsMzIsCisgICAgMzIsMTE0LDE1NywwLDAsMCw3OCwxMTQsNTYsMCwwLDAsMTE0LDE1OCwwLDAsCisgICAgMCwxMTQsMTAzLDAsMCwwLDExNCw3MCwwLDAsMCw0MCwyLDAsMCwwLAorICAgIDExNCw4MSwwLDAsMCwxMTQsMzIsMCwwLDAsNDAsMiwwLDAsMCwyNDQsCisgICAgNywwLDAsMCwxMDMsMTA4LDExMSw5OCw5NywxMDgsMTE1LDExNCw1NywxLDAsMCwKKyAgICAxMTQsNCwwLDAsMCwxMTQsNCwwLDAsMCwxMTQsNSwwLDAsMCwyNDQsCisgICAgMTcsMCwwLDAsOTUsOTksOTcsMTA4LDk5LDk1LDk1LDk1LDExMiw5Nyw5OSwxMDcsCisgICAgOTcsMTAzLDEwMSw5NSw5NSwxMjMsNiwwLDAsMTE1LDEyLDAsMCwwLDAsNywKKyAgICAxNSwxLDEyLDEsMTAsMSwxMiwxLDI1LDEsMTE0LDc4LDEsMCwwLDk5LAorICAgIDAsMCwwLDAsMCwwLDAsMCwzLDAsMCwwLDMsMCwwLDAsCisgICAgNjcsMCwwLDAsMTE1LDU1LDAsMCwwLDExNiwwLDAsMTE2LDEsMCwxMDYsCisgICAgMiwwLDEzMSwwLDAsMTAyLDIsMCwxMjUsMCwwLDExNiwzLDAsMTE2LDQsCisgICAgMCwxMDIsMiwwLDEyNSwxLDAsMTE2LDUsMCwxMTYsNiwwLDEwMiwyLDAsCisgICAgMTI1LDIsMCwxMjQsMCwwLDEyNCwxLDAsMTI0LDIsMCwxMDMsMywwLDgzLAorICAgIDQwLDEsMCwwLDAsMTE3LDExMSwwLDAsMCw4MiwxMDEsMTE2LDExNywxMTQsMTEwLAorICAgIDExNSwzMiw5NywzMiwxMDgsMTA1LDExNSwxMTYsMzIsMTExLDEwMiwzMiwxMDIsMTA1LDEwOCwxMDEsCisgICAgNDUsOTgsOTcsMTE1LDEwMSwxMDAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTA4LDExMSwKKyAgICA5NywxMDAsMTAxLDExNCwxMTUsNDYsMTAsMTAsMzIsMzIsMzIsMzIsNjksOTcsOTksMTA0LAorICAgIDMyLDEwNSwxMTYsMTAxLDEwOSwzMiwxMDUsMTE1LDMyLDk3LDMyLDExNiwxMTcsMTEyLDEwOCwxMDEsCisgICAgMzIsNDAsMTA4LDExMSw5NywxMDAsMTAxLDExNCw0NCwzMiwxMTUsMTE3LDEwMiwxMDIsMTA1LDEyMCwKKyAgICAxMDEsMTE1LDQ0LDMyLDk3LDEwOCwxMDgsMTExLDExOSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywKKyAgICAxMDEsMTE1LDQxLDQ2LDEwLDMyLDMyLDMyLDMyLDQwLDcsMCwwLDAsMTE0LDksCisgICAgMSwwLDAsMTE0LDk2LDAsMCwwLDI0NCwxOCwwLDAsMCwxMDEsMTIwLDExNiwKKyAgICAxMDEsMTEwLDExNSwxMDUsMTExLDExMCw5NSwxMTUsMTE3LDEwMiwxMDIsMTA1LDEyMCwxMDEsMTE1LDExNCwKKyAgICAzLDEsMCwwLDExNCwxMjEsMCwwLDAsMTE0LDgsMSwwLDAsMjQ0LDE3LAorICAgIDAsMCwwLDY2LDg5LDg0LDY5LDY3LDc5LDY4LDY5LDk1LDgzLDg1LDcwLDcwLAorICAgIDczLDg4LDY5LDgzLDQwLDMsMCwwLDAsMTE2LDEwLDAsMCwwLDEwMSwxMjAsCisgICAgMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDExNSwxMTYsNiwwLDAsMCwxMTUsMTExLDExNywKKyAgICAxMTQsOTksMTAxLDExNiw4LDAsMCwwLDk4LDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsMTAxLAorICAgIDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDExNCwKKyAgICAyMjgsMCwwLDAsMTM4LDYsMCwwLDExNSw4LDAsMCwwLDAsNSwxOCwKKyAgICAxLDEyLDEsMTIsMSwxMTQsMjI4LDAsMCwwLDk5LDUsMCwwLDAsMCwKKyAgICAwLDAsMCw5LDAsMCwwLDUsMCwwLDAsNjcsMCwwLDAsMTE1LAorICAgIDIyNywwLDAsMCwxMjQsNCwwLDEwMCwxLDAsMTA3LDIsMCwxMTQsMjcsMCwKKyAgICAxMTYsMCwwLDEyNCwwLDAsMTMxLDEsMCwxMjUsNSwwLDExMCw1NCwwLDEyNCwKKyAgICAxLDAsMTAwLDIsMCwxMDcsOSwwLDExNCw0NSwwLDEyNCwxLDAsMTEwLDMsCisgICAgMCwxMDUsMCwwLDEyNSw2LDAsMTE2LDEsMCwxMjQsNiwwLDEzMSwxLDAsCisgICAgMTI1LDcsMCwxMTYsMCwwLDEyNCwwLDAsMTI0LDcsMCwxMjQsNCwwLDEzMSwKKyAgICAzLDAsMTI1LDUsMCwxMjQsMywwLDExNSwyMDcsMCwxMjQsNCwwLDEwMCwxLAorICAgIDAsMTA3LDIsMCwxMTQsMTIyLDAsMTE2LDAsMCwxMjQsMCwwLDEwNiwyLDAsCisgICAgMTAwLDMsMCwxMzEsMSwwLDEwMCwxLDAsMjUsMTMxLDEsMCw4MywxMjQsMCwKKyAgICAwLDExNSwxMzIsMCwxMjQsNSwwLDgzLDExNiwzLDAsMTI0LDAsMCwxMzEsMSwKKyAgICAwLDExNiwzLDAsMTI0LDAsMCwxMDYsMiwwLDEwMCwzLDAsMTMxLDEsMCwKKyAgICAxMDAsMSwwLDI1LDEzMSwxLDAsMjQsMTI1LDgsMCwxMTYsNCwwLDEwNiw1LAorICAgIDAsMTI0LDUsMCwxMDYsNiwwLDEwMCwyLDAsMTE2LDMsMCwxMjQsNSwwLAorICAgIDEwNiw2LDAsMTMxLDEsMCwxMjQsOCwwLDI0LDEzMywyLDAsMjUsMjUsODMsCisgICAgMTEwLDE2LDAsMTE2LDcsMCwxMjQsNSwwLDEyNCwzLDAsMTE2LDAsMCwxMzEsCisgICAgMywwLDgzLDEwMCwyLDAsODMsNDAsNCwwLDAsMCwxMTcsMjE0LDEsMCwKKyAgICAwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsMzIsOTcsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCisgICAgNDYsMTAsMTAsMzIsMzIsMzIsMzIsODQsMTA0LDEwMSwzMiwzOSwxMDMsMTA4LDExMSw5OCwKKyAgICA5NywxMDgsMTE1LDM5LDMyLDk3LDExNCwxMDMsMTE3LDEwOSwxMDEsMTEwLDExNiwzMiwxMDUsMTE1LAorICAgIDMyLDExNywxMTUsMTAxLDEwMCwzMiwxMTYsMTExLDMyLDEwNSwxMTAsMTAyLDEwMSwxMTQsMzIsMTE5LAorICAgIDEwNCwxMDEsMTE0LDEwMSwzMiwxMTYsMTA0LDEwMSwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwzMiwKKyAgICAxMDUsMTE1LDMyLDExMSw5OSw5OSwxMTcsMTE0LDEwNSwxMTAsMTAzLDMyLDEwMiwxMTQsMTExLDEwOSwKKyAgICAxMCwzMiwzMiwzMiwzMiwxMTYsMTExLDMyLDEwNCw5NywxMTAsMTAwLDEwOCwxMDEsMzIsMTE0LAorICAgIDEwMSwxMDgsOTcsMTE2LDEwNSwxMTgsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDExNSw0NiwKKyAgICAzMiw4NCwxMDQsMTAxLDMyLDM5LDEwOCwxMTEsOTksOTcsMTA4LDExNSwzOSwzMiw5NywxMTQsCisgICAgMTAzLDExNywxMDksMTAxLDExMCwxMTYsMzIsMTA1LDExNSwzMiwxMDUsMTAzLDExMCwxMTEsMTE0LDEwMSwKKyAgICAxMDAsNDYsMzIsODQsMTA0LDEwMSwxMCwzMiwzMiwzMiwzMiwzOSwxMDIsMTE0LDExMSwxMDksCisgICAgMTA4LDEwNSwxMTUsMTE2LDM5LDMyLDk3LDExNCwxMDMsMTE3LDEwOSwxMDEsMTEwLDExNiwzMiwxMTUsCisgICAgMTEyLDEwMSw5OSwxMDUsMTAyLDEwNSwxMDEsMTE1LDMyLDExOSwxMDQsOTcsMTE2LDMyLDExNSwxMDQsCisgICAgMTExLDExNywxMDgsMTAwLDMyLDEwMSwxMjAsMTA1LDExNSwxMTYsMzIsOTcsMTE1LDMyLDk3LDExNiwKKyAgICAxMTYsMTE0LDEwNSw5OCwxMTcsMTE2LDEwMSwxMTUsMzIsMTExLDExMCwzMiwxMTYsMTA0LDEwMSwzMiwKKyAgICAxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMCwzMiwzMiwzMiwzMiw5OCwxMDEsMTA1LDExMCwxMDMsCisgICAgMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDEwMCwzMiw0MCwxMDEsNDYsMTAzLDQ2LDMyLAorICAgIDk2LDk2LDEwMiwxMTQsMTExLDEwOSwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMDUsMTA5LAorICAgIDExMiwxMTEsMTE0LDExNiwzMiw2MCwxMDIsMTE0LDExMSwxMDksMTA4LDEwNSwxMTUsMTE2LDYyLDk2LAorICAgIDk2LDQxLDQ2LDMyLDMyLDg0LDEwNCwxMDEsMzIsMzksMTA4LDEwMSwxMTgsMTAxLDEwOCwzOSwKKyAgICAxMCwzMiwzMiwzMiwzMiw5NywxMTQsMTAzLDExNywxMDksMTAxLDExMCwxMTYsMzIsMTE0LDEwMSwKKyAgICAxMTIsMTE0LDEwMSwxMTUsMTAxLDExMCwxMTYsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDExMiw5Nyw5OSwKKyAgICAxMDcsOTcsMTAzLDEwMSwzMiwxMDgsMTExLDk5LDk3LDExNiwxMDUsMTExLDExMCwzMiwxMTYsMTExLAorICAgIDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDMyLDEwMiwxMTQsMTExLDEwOSwzMiwxMDUsMTEwLDMyLAorICAgIDk3LDMyLDExNCwxMDEsMTA4LDk3LDExNiwxMDUsMTE4LDEwMSwxMCwzMiwzMiwzMiwzMiwxMDUsCisgICAgMTA5LDExMiwxMTEsMTE0LDExNiwzMiw0MCwxMDEsNDYsMTAzLDQ2LDMyLDk2LDk2LDEwMiwxMTQsCisgICAgMTExLDEwOSwzMiw0Niw0NiwxMTIsMTA3LDEwMywzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwzMiwKKyAgICAxMDksMTExLDEwMCw5Niw5NiwzMiwxMTksMTExLDExNywxMDgsMTAwLDMyLDEwNCw5NywxMTgsMTAxLAorICAgIDMyLDk3LDMyLDM5LDEwOCwxMDEsMTE4LDEwMSwxMDgsMzksMzIsMTExLDEwMiwzMiw1MCw0MSwKKyAgICA0NiwxMCwxMCwzMiwzMiwzMiwzMiwxMTQsNzAsMCwwLDAsNzgsMTE0LDEwMywwLAorICAgIDAsMCw0MCw4LDAsMCwwLDExNCw3MCwxLDAsMCwxMTQsNzgsMSwwLAorICAgIDAsMTE0LDEwOCwwLDAsMCwxMTQsMzEsMCwwLDAsMTE0LDcsMCwwLDAsCisgICAgMTE0LDE0NSwwLDAsMCwxMTQsNTYsMCwwLDAsMTE0LDc2LDEsMCwwLDQwLAorICAgIDksMCwwLDAsMTE0LDY2LDAsMCwwLDExNCw3NywxLDAsMCwyNDQsNiwKKyAgICAwLDAsMCwxMDgsMTExLDk5LDk3LDEwOCwxMTUsMTE0LDc1LDEsMCwwLDExNCw1OCwKKyAgICAxLDAsMCwxMTQsMTYwLDAsMCwwLDExNiw4LDAsMCwwLDEwMywxMDgsMTExLAorICAgIDk4LDk3LDEwOCwxMTUsOTUsMTE0LDU3LDEsMCwwLDExNiw3LDAsMCwwLDk5LAorICAgIDExNywxMTYsOTUsMTExLDEwMiwxMDIsMTE0LDQsMCwwLDAsMTE0LDQsMCwwLDAsCisgICAgMTE0LDUsMCwwLDAsMjQ0LDEwLDAsMCwwLDk1LDk1LDEwNSwxMDksMTEyLDExMSwKKyAgICAxMTQsMTE2LDk1LDk1LDE0OSw2LDAsMCwxMTUsMjYsMCwwLDAsMCwxMSwxMiwKKyAgICAxLDE1LDIsMjQsMSwxMiwxLDE4LDEsNiwzLDEyLDEsMjMsMSw2LAorICAgIDEsNCw0LDM1LDMsNDAsMiwxMTQsODIsMSwwLDAsOTksMiwwLDAsCisgICAgMCwwLDAsMCwwLDE2LDAsMCwwLDEzLDAsMCwwLDY3LDAsMCwKKyAgICAwLDExNSwyMzcsMiwwLDAsMTI0LDEsMCw5NywwLDAsMTI0LDAsMCw5NywKKyAgICAxLDAsMTE2LDEsMCwxMDYsMiwwLDEwNiwzLDAsMTE0LDMzLDAsMTE2LDQsCisgICAgMCw5Nyw1LDAsMTEwLDYsMCwxMTYsNiwwLDk3LDUsMCwxMTYsNywwLAorICAgIDExNiwxLDAsMTMxLDEsMCwxMjUsMiwwLDEyMCwxMjgsMCwxMTYsMSwwLDEwNiwKKyAgICA4LDAsMTA2LDksMCwxMzEsMCwwLDY4LDkzLDExMSwwLDkyLDIsMCwxMjUsCisgICAgMywwLDEyNSw0LDAsMTE2LDEwLDAsMTI0LDQsMCwxMjQsMiwwLDEzMSwyLAorICAgIDAsMTE0LDY3LDAsMTE2LDExLDAsMTI0LDQsMCwxMDAsMSwwLDEwMCwyLDAsCisgICAgMTMxLDMsMCwxMDAsMiwwLDEwNyw4LDAsMTE0LDE3OCwwLDEyNCwzLDAsMTE2LAorICAgIDEsMCwxMDYsMTIsMCwxMDcsNiwwLDExNCwxNDUsMCwxMTYsMTMsMCwxMjQsNCwKKyAgICAwLDk1LDE0LDAsMTEzLDE3NSwwLDExNiwwLDAsMTA2LDE1LDAsMTI0LDMsMCwKKyAgICAxMzEsMSwwLDExNCwxNzUsMCwxMTYsMTYsMCwxMjQsNCwwLDk1LDE0LDAsMTEzLAorICAgIDE3NSwwLDExMywxNzgsMCwxMTMsNjcsMCwxMTMsNjcsMCw4NywxMTYsMSwwLDEwNiwKKyAgICA4LDAsMTE2LDE3LDAsMjUsMTI1LDUsMCwxMjAsNzYsMCwxMDAsMjcsMCw2OCwKKyAgICA5Myw2OCwwLDEyNSw2LDAsMTI0LDYsMCwxMTYsMSwwLDEwNiw4LDAsMTA3LAorICAgIDcsMCwxMTQsMjQxLDAsMTE2LDEzLDAsMTA2LDE4LDAsMTI0LDYsMCwxMzEsMSwKKyAgICAwLDEyNSw3LDAsMTEwLDEzLDAsMTE2LDEsMCwxMDYsOCwwLDEyNCw2LDAsCisgICAgMjUsMTI1LDcsMCwxMTYsMTksMCwxMjQsNSwwLDEyNCw2LDAsMTI0LDcsMCwKKyAgICAxMzEsMywwLDEsMTEzLDIwMiwwLDg3LDEwMCw3LDAsMTAwLDgsMCwxMDMsMSwKKyAgICAwLDEwMiwyLDAsMTAwLDksMCwxMDAsMTAsMCwxMDAsOCwwLDEwMywyLDAsCisgICAgMTAyLDIsMCwxMDIsMiwwLDEyNSw4LDAsMTIwLDE0OSwwLDEyNCw4LDAsNjgsCisgICAgOTMsMTI5LDAsOTIsMiwwLDEyNSw5LDAsMTI1LDEwLDAsMTE2LDIwLDAsMTAwLAorICAgIDExLDAsMTAwLDEyLDAsMTMyLDAsMCwxMjQsMTAsMCw2OCwxMzEsMSwwLDEzMSwKKyAgICAxLDAsMTE1LDEwMSwxLDExNiwyMSwwLDEzMCwxLDAsMTI0LDEwLDAsMTAwLDEzLAorICAgIDAsMjUsMTI1LDExLDAsMTI0LDksMCwxMTYsMSwwLDEwNiw4LDAsMTA3LDYsCisgICAgMCwxMTQsMTQzLDEsMTE2LDEsMCwxMDYsOCwwLDEyNCw5LDAsMjUsMTI1LDEyLAorICAgIDAsODAsMTEzLDU4LDEsMTIxLDIwLDAsMTE2LDEzLDAsMTA2LDE4LDAsMTI0LDksCisgICAgMCwxMzEsMSwwLDEyNSwxMiwwLDgwLDg3LDExMyw1OCwxLDQsMTE2LDIyLDAsCisgICAgMTA3LDEwLDAsMTE0LDE4NiwxLDEsMSwxLDExOSw1OCwxLDg5LDExMyw1OCwxLAorICAgIDg4LDExMyw1OCwxLDg3LDExNiwyMiwwLDEwMCwxNCwwLDEzMSwxLDAsMTMwLDEsCisgICAgMCwxMjEsMTksMCwxMTYsMTMsMCwxMDYsMTgsMCwxMDAsMTUsMCwxMzEsMSwwLAorICAgIDEyNSwxMywwLDg3LDExMCwyNCwwLDQsMTE2LDIyLDAsMTA3LDEwLDAsMTE0LDI0OCwKKyAgICAxLDEsMSwxLDEwMCwyLDAsMTI1LDEzLDAsODksMTEwLDEsMCw4OCwxMTYsCisgICAgMTMsMCwxMDYsMTgsMCwxMDAsMTYsMCwxMzEsMSwwLDEyNSwxNCwwLDEyNCw5LAorICAgIDAsMTAwLDksMCwxMDcsMiwwLDExNCw1NCwyLDExNiwxMywwLDEwNiwxOCwwLAorICAgIDEwMCwxNywwLDEzMSwxLDAsMTI1LDE1LDAsMTE2LDE5LDAsMTI0LDUsMCwxMDAsCisgICAgMTgsMCwxMjQsMTUsMCwxMzEsMywwLDEsMTEwLDAsMCwxMTYsMTksMCwxMjQsCisgICAgNSwwLDEwMCwxOSwwLDEyNCwxMiwwLDEzMSwzLDAsMSwxMTYsMTksMCwxMjQsCisgICAgNSwwLDEwMCwxNSwwLDEyNCwxMywwLDEzMSwzLDAsMSwxMTYsMTksMCwxMjQsCisgICAgNSwwLDEwMCwxNiwwLDEyNCwxNCwwLDEzMSwzLDAsMSwxMTYsMTksMCwxMjQsCisgICAgNSwwLDEwMCwyMCwwLDEyNCwxMSwwLDEzMSwzLDAsMSwxMTYsMTksMCwxMjQsCisgICAgNSwwLDEwMCwyMSwwLDEwMCwyMiwwLDEwNiwyMywwLDEyNCwxMCwwLDEzMSwxLAorICAgIDAsMTMxLDMsMCwxLDExNiwxOSwwLDEyNCw1LDAsMTAwLDIzLDAsMTE2LDI0LAorICAgIDAsMTMxLDAsMCwxMzEsMywwLDEsMTE2LDI1LDAsMTA2LDI2LDAsMTE2LDAsCisgICAgMCwxMDYsMjcsMCwxMzEsMCwwLDEzMSwxLDAsMSwxMjQsOSwwLDEwMCw5LAorICAgIDAsMTA3LDIsMCwxMTQsMjMzLDIsMTE2LDI4LDAsMTA2LDI5LDAsMTAwLDI0LDAsCisgICAgMTMxLDEsMCwxLDEwMCwyNSwwLDExNiwyNSwwLDEwNyw2LDAsMTE0LDIzMywyLAorICAgIDEwMCwyNiwwLDExNiwzMCwwLDk1LDMxLDAsMTEzLDIzMywyLDExMCwwLDAsMTAwLAorICAgIDIsMCw4Myw0MCwyOCwwLDAsMCwxMTcsMjUwLDAsMCwwLDgzLDEwMSwxMTYsCisgICAgMTE3LDExMiwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDMyLDk4LDEyMSwzMiwKKyAgICAxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDUsMTEwLDEwMywzMiwxMTAsMTAxLDEwMSwxMDAsMTAxLDEwMCwKKyAgICAzMiw5OCwxMTcsMTA1LDEwOCwxMTYsNDUsMTA1LDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwKKyAgICAxMTUsMzIsOTcsMTEwLDEwMCwzMiwxMDUsMTEwLDEwNiwxMDEsOTksMTE2LDEwNSwxMTAsMTAzLDMyLAorICAgIDExNiwxMDQsMTAxLDEwOSwxMCwzMiwzMiwzMiwzMiwxMDUsMTEwLDExNiwxMTEsMzIsMTE2LDEwNCwKKyAgICAxMDEsMzIsMTAzLDEwOCwxMTEsOTgsOTcsMTA4LDMyLDExMCw5NywxMDksMTAxLDExNSwxMTIsOTcsCisgICAgOTksMTAxLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDY1LDExNSwzMiwxMTUsMTIxLDExNSwzMiwKKyAgICAxMDUsMTE1LDMyLDExMCwxMDEsMTAxLDEwMCwxMDEsMTAwLDMyLDEwMiwxMTEsMTE0LDMyLDExNSwxMjEsCisgICAgMTE1LDQ2LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwzMiw5Nyw5OSw5OSwxMDEsMTE1LDExNSwKKyAgICAzMiw5NywxMTAsMTAwLDMyLDk1LDEwNSwxMDksMTEyLDMyLDEwNSwxMTUsMzIsMTEwLDEwMSwxMDEsCisgICAgMTAwLDEwMSwxMDAsMzIsMTE2LDExMSwzMiwxMDgsMTExLDk3LDEwMCwzMiw5OCwxMTcsMTA1LDEwOCwKKyAgICAxMTYsNDUsMTA1LDExMCwxMCwzMiwzMiwzMiwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsCisgICAgNDQsMzIsMTE2LDEwNCwxMTEsMTE1LDEwMSwzMiwxMTYsMTE5LDExMSwzMiwxMDksMTExLDEwMCwxMTcsCisgICAgMTA4LDEwMSwxMTUsMzIsMTA5LDExNywxMTUsMTE2LDMyLDk4LDEwMSwzMiwxMDEsMTIwLDExMiwxMDgsCisgICAgMTA1LDk5LDEwNSwxMTYsMTA4LDEyMSwzMiwxMTIsOTcsMTE1LDExNSwxMDEsMTAwLDMyLDEwNSwxMTAsCisgICAgNDYsMTAsMTAsMzIsMzIsMzIsMzIsMTE0LDE3MCwwLDAsMCw3OCwxMTQsNDgsMCwKKyAgICAwLDAsMTE0LDE4NCwwLDAsMCwyNDQsOCwwLDAsMCw5OCwxMTcsMTA1LDEwOCwKKyAgICAxMTYsMTA1LDExMCwxMTUsMTE0LDE5OSwwLDAsMCwxMTYsNSwwLDAsMCwxMTIsMTExLAorICAgIDExNSwxMDUsMTIwLDI0NSwxLDAsMCwwLDQ3LDI0NCwyLDAsMCwwLDExMCwxMTYsCisgICAgMjQ1LDEsMCwwLDAsOTIsOTksMSwwLDAsMCwwLDAsMCwwLDIsCiAgICAgMCwwLDAsMywwLDAsMCwxMTUsMCwwLDAsMTE1LDMzLDAsMCwwLAogICAgIDEyNCwwLDAsOTMsMjMsMCwxMjUsMSwwLDExNiwwLDAsMTI0LDEsMCwxMzEsCiAgICAgMSwwLDEwMCwwLDAsMTA3LDIsMCw4NiwxLDExMywzLDAsMTAwLDEsMCwKLSAgICA4Myw0MCwyLDAsMCwwLDEwNSwxLDAsMCwwLDc4LDQwLDEsMCwwLAotICAgIDAsMTE3LDMsMCwwLDAsMTA4LDEwMSwxMTAsNDAsMiwwLDAsMCwxMTcsMiwKLSAgICAwLDAsMCw0Niw0OCwxMTcsMywwLDAsMCwxMTUsMTAxLDExMiw0MCwwLDAsCi0gICAgMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLAotICAgIDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsCi0gICAgMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw5LDAsMCwwLDYwLDEwMywKLSAgICAxMDEsMTEwLDEwMSwxMjAsMTEyLDExNCw2MiwxOTMsNiwwLDAsMTE1LDIsMCwwLDAsCi0gICAgNiwwLDExNywyNSwwLDAsMCw5NSwxMTUsMTAxLDExNiwxMTcsMTEyLDQ2LDYwLDEwOCwKLSAgICAxMTEsOTksOTcsMTA4LDExNSw2Miw0Niw2MCwxMDMsMTAxLDExMCwxMDEsMTIwLDExMiwxMTQsNjIsCi0gICAgMTA1LDAsMCwwLDAsMTE3LDcsMCwwLDAsNjksNzcsODgsMzIsNzEsNjcsCi0gICAgNjcsMTA1LDEsMCwwLDAsMTE3LDMwLDAsMCwwLDEwNSwxMDksMTEyLDExMSwxMTQsCi0gICAgMTE2LDEwOCwxMDUsOTgsMzIsMTE0LDEwMSwxMTMsMTE3LDEwNSwxMTQsMTAxLDExNSwzMiwxMTIsMTExLAotICAgIDExNSwxMDUsMTIwLDMyLDExMSwxMTQsMzIsMTEwLDExNiwxMTcsNywwLDAsMCw5NSwxMTYsCi0gICAgMTA0LDExNCwxMDEsOTcsMTAwLDExNyw4LDAsMCwwLDk1LDExOSwxMDEsOTcsMTA3LDExNCwKLSAgICAxMDEsMTAyLDExNyw2LDAsMCwwLDExOSwxMDUsMTEwLDExNCwxMDEsMTAzLDExNyw3LDAsCi0gICAgMCwwLDk1LDExOSwxMDUsMTEwLDExNCwxMDEsMTAzLDExNywzLDAsMCwwLDk1LDExMSwKLSAgICAxMTUsMTE3LDgsMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTE1LDEwMSwxMTIsMTE3LDE1LAotICAgIDAsMCwwLDExMiw5NywxMTYsMTA0LDk1LDExNSwxMDEsMTEyLDk3LDExNCw5NywxMTYsMTExLAotICAgIDExNCwxMTUsMTE3LDExLDAsMCwwLDk1LDExNCwxMDEsMTA4LDk3LDEyMCw5NSw5OSw5NywKLSAgICAxMTUsMTAxLDExNyw0LDAsMCwwLDQ2LDExMiwxMjEsMTE5LDExNyw2LDAsMCwwLAotICAgIDk1LDEwMCw0NiwxMTIsMTIxLDEwMCw3OCw0MCw0LDAsMCwwLDExNywzLDAsMCwKLSAgICAwLDk1LDEwNSwxMTEsMTE3LDksMCwwLDAsOTUsMTE5LDk3LDExNCwxMTAsMTA1LDExMCwKLSAgICAxMDMsMTE1LDExNyw4LDAsMCwwLDk4LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDExNSwxMTcsCi0gICAgNywwLDAsMCwxMDksOTcsMTE0LDExNSwxMDQsOTcsMTA4LDg0LDQwLDM1LDAsMCwKLSAgICAwLDExNyw0LDAsMCwwLDk1LDEwNSwxMDksMTEyLDExNywzLDAsMCwwLDExNSwKLSAgICAxMjEsMTE1LDExNyw1LDAsMCwwLDEwMiwxMDgsOTcsMTAzLDExNSwxMTcsOCwwLDAsCi0gICAgMCwxMTEsMTEyLDExNiwxMDUsMTA5LDEwNSwxMjIsMTAxLDExNywyNywwLDAsMCw3OSw4MCwKLSAgICA4NCw3Myw3Nyw3Myw5MCw2OSw2OCw5NSw2Niw4OSw4NCw2OSw2Nyw3OSw2OCw2OSwKLSAgICA5NSw4Myw4NSw3MCw3MCw3Myw4OCw2OSw4MywxMTcsMTcsMCwwLDAsNjYsODksCi0gICAgODQsNjksNjcsNzksNjgsNjksOTUsODMsODUsNzAsNzAsNzMsODgsNjksODMsMTE3LAotICAgIDIzLDAsMCwwLDY4LDY5LDY2LDg1LDcxLDk1LDY2LDg5LDg0LDY5LDY3LDc5LAotICAgIDY4LDY5LDk1LDgzLDg1LDcwLDcwLDczLDg4LDY5LDgzLDExNyw0LDAsMCwwLAotICAgIDExNiwxMjEsMTEyLDEwMSwxMTcsNywwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsCi0gICAgMTE3LDUsMCwwLDAsMTA1LDExNiwxMDEsMTA5LDExNSwxMTcsMTAsMCwwLDAsMTA1LAotICAgIDExNSwxMDUsMTEwLDExNSwxMTYsOTcsMTEwLDk5LDEwMSwxMTcsNywwLDAsMCwxMDQsOTcsCi0gICAgMTE1LDk3LDExNiwxMTYsMTE0LDExNywyMCwwLDAsMCw5OCwxMTcsMTA1LDEwOCwxMTYsMTA1LAotICAgIDExMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMTAsOTcsMTA5LDEwMSwxMTUsMTE3LDE1LAotICAgIDAsMCwwLDY2LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsCi0gICAgMTAxLDExNCwxMTcsMTAsMCwwLDAsOTUsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSwKLSAgICA5NSwxMTcsOSwwLDAsMCwxMDUsMTE1LDk1LDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDExNywKLSAgICAxNCwwLDAsMCw3MCwxMTQsMTExLDEyMiwxMDEsMTEwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsCi0gICAgMTAxLDExNCwxMTcsOCwwLDAsMCw5NSw5NSwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsCi0gICAgMTEsMCwwLDAsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LAotICAgIDcsMCwwLDAsMTE1LDEwMSwxMTYsOTcsMTE2LDExNiwxMTQsMTE3LDMsMCwwLDAsCi0gICAgOTcsMTA4LDEwOCwxMTcsMTQsMCwwLDAsNjUsMTE1LDExNSwxMDEsMTE0LDExNiwxMDUsMTExLAotICAgIDExMCw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDcsMCwwLDAsMTE4LDEwMSwxMTQsMTE1LDEwNSwKLSAgICAxMTEsMTEwLDExNywxMSwwLDAsMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDY5LDExNCwxMTQsCi0gICAgMTExLDExNCwxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsMywwLDAsMCwKLSAgICAxMTUsMTAxLDExNiwxMTcsMTYsMCwwLDAsOTUsMTA5LDk3LDEwNywxMDEsOTUsMTE0LDEwMSwKLSAgICAxMDgsOTcsMTIwLDk1LDk5LDk3LDExNSwxMDEsMTE3LDE4LDAsMCwwLDY5LDg4LDg0LAotICAgIDY5LDc4LDgzLDczLDc5LDc4LDk1LDgzLDg1LDcwLDcwLDczLDg4LDY5LDgzLDExNywKLSAgICA2LDAsMCwwLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTAwLDExNywxOCwwLDAsMCwxMDEsCi0gICAgMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLDExMCw5NSwxMTUsMTE3LDEwMiwxMDIsMTA1LDEyMCwxMDEsCi0gICAgMTE1LDExNywxNSwwLDAsMCw4Myw3OSw4NSw4Miw2Nyw2OSw5NSw4Myw4NSw3MCwKLSAgICA3MCw3Myw4OCw2OSw4MywxMTcsNiwwLDAsMCw5NywxMTIsMTEyLDEwMSwxMTAsMTAwLAotICAgIDExNyw0LDAsMCwwLDg0LDExNCwxMTcsMTAxLDExNywyMSwwLDAsMCw4NywxMDUsCi0gICAgMTEwLDEwMCwxMTEsMTE5LDExNSw4MiwxMDEsMTAzLDEwNSwxMTUsMTE2LDExNCwxMjEsNzAsMTA1LDExMCwKLSAgICAxMDAsMTAxLDExNCwxMTcsMTEsMCwwLDAsNjgsNjksNjYsODUsNzEsOTUsNjYsODUsCi0gICAgNzMsNzYsNjgsNDAsMTYsMCwwLDAsMTE3LDEwLDAsMCwwLDExNSwxMjEsMTE1LAotICAgIDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNywxMSwwLDAsMCw5NSwxMDUsMTA5LDExMiwKLSAgICA5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTcsMTEsMCwwLDAsMTA5LDExMSwxMDAsMTE3LAotICAgIDEwOCwxMDEsOTUsMTE2LDEyMSwxMTIsMTAxLDExNyw0LDAsMCwwLDExMCw5NywxMDksMTAxLAotICAgIDExNyw2LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNywxMSwwLDAsMCwKLSAgICAxMTUsMTAxLDEwOCwxMDIsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDEyLDAsMCwwLAotICAgIDk4LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDk1LDExMCw5NywxMDksMTAxLDExNywxNCwwLDAsCi0gICAgMCw5OCwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTcsCi0gICAgMTAsMCwwLDAsMTExLDExNSw5NSwxMDAsMTAxLDExNiw5NywxMDUsMTA4LDExNSwxMTcsMTAsCi0gICAgMCwwLDAsOTgsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsOTUsMTExLDExNSwxMTcsMTUsMCwKLSAgICAwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTE1LDEwMSwxMTIsOTcsMTE0LDk3LDExNiwxMTEsMTE0LAotICAgIDExNSwxMTcsOCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwxMTUsMTAxLDExMiwxMTcsOSwKLSAgICAwLDAsMCwxMTEsMTE1LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNywxMywwLDAsCi0gICAgMCwxMTYsMTA0LDExNCwxMDEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNywxNCwKLSAgICAwLDAsMCwxMTksMTAxLDk3LDEwNywxMTQsMTAxLDEwMiw5NSwxMDksMTExLDEwMCwxMTcsMTA4LAotICAgIDEwMSwxMTcsMTMsMCwwLDAsMTE5LDEwNSwxMTAsMTE0LDEwMSwxMDMsOTUsMTA5LDExMSwxMDAsCi0gICAgMTE3LDEwOCwxMDEsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLAotICAgIDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwKLSAgICAxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsCi0gICAgNiwwLDAsMCw5NSwxMTUsMTAxLDExNiwxMTcsMTEyLDE1Niw2LDAsMCwxMTUsMTA2LAotICAgIDAsMCwwLDAsOSw2LDEsNiwyLDEyLDEsOSwyLDYsMiwxMiwKLSAgICAxLDI4LDEsMTUsMSwxNSwxLDE1LDEsMTIsMSwxNSwxLDIyLDIsMTMsCi0gICAgMSwxMywxLDE1LDEsMTgsMiwxMywxLDIwLDIsNDgsMSwxOSwyLDMxLAotICAgIDEsMTAsMSwxNSwxLDEzLDEsNCwyLDMsMSwxNSwyLDI3LDEsMTMsCi0gICAgMSw1LDEsMTMsMSwxMiwyLDEyLDIsMywxLDE5LDEsMTMsMiwxMSwKLSAgICAxLDE1LDIsMTIsMSwxNSwxLDE5LDIsMTYsMSwxNiwxLDE2LDEsMTYsCi0gICAgMSwyMiwyLDE5LDEsMTksMSwxMiwxLDEzLDEsMTIsMSwxMTcsNiwwLAotICAgIDAsMCw5NSwxMTUsMTAxLDExNiwxMTcsMTEyLDk5LDIsMCwwLDAsMCwwLDAsCi0gICAgMCwzLDAsMCwwLDMsMCwwLDAsNjcsMCwwLDAsMTE1LDEzNiwwLAotICAgIDAsMCwxMTYsMCwwLDEyNCwwLDAsMTI0LDEsMCwxMzEsMiwwLDEsMTE2LAotICAgIDEsMCwxMzEsMCwwLDEyNSwyLDAsMTE2LDIsMCwxMDYsMywwLDEwNiw0LAotICAgIDAsMTE2LDUsMCwxMDYsNiwwLDEyNCwyLDAsMTQwLDAsMCwxMDMsMSwwLAotICAgIDEzMSwxLDAsMSwxMTYsMiwwLDEwNiw3LDAsMTA2LDgsMCwxMTYsOSwwLAotICAgIDEzMSwxLDAsMSwxMTYsMiwwLDEwNiw3LDAsMTA2LDgsMCwxMTYsMTAsMCwKLSAgICAxMzEsMSwwLDEsMTE2LDExLDAsMTA2LDEyLDAsMTAwLDEsMCwxMDcsMiwwLAotICAgIDExNCwxMTYsMCwxMTYsMiwwLDEwNiw3LDAsMTA2LDgsMCwxMTYsMTMsMCwxMzEsCi0gICAgMSwwLDEsMTEwLDAsMCwxMTYsMiwwLDEwNiw3LDAsMTA2LDgsMCwxMTYsCi0gICAgMTQsMCwxMzEsMSwwLDEsMTAwLDIsMCw4Myw0MCwzLDAsMCwwLDExNywKLSAgICA1MCwwLDAsMCw3MywxMTAsMTE1LDExNiw5NywxMDgsMTA4LDMyLDEwNSwxMDksMTEyLDExMSwKLSAgICAxMTQsMTE2LDEwOCwxMDUsOTgsMzIsOTcsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDEwNSwxMDksMTEyLAotICAgIDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDk3LDExNiwxMDUsMTExLDExMCwzMiwxMTEsMTAyLDMyLDEwNSwKLSAgICAxMDksMTEyLDExMSwxMTQsMTE2LDQ2LDExNywyLDAsMCwwLDExMCwxMTYsNzgsNDAsMTUsCi0gICAgMCwwLDAsMTE3LDYsMCwwLDAsOTUsMTE1LDEwMSwxMTYsMTE3LDExMiwxMTcsMjcsCi0gICAgMCwwLDAsOTUsMTAzLDEwMSwxMTYsOTUsMTE1LDExNywxMTIsMTEyLDExMSwxMTQsMTE2LDEwMSwKLSAgICAxMDAsOTUsMTAyLDEwNSwxMDgsMTAxLDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMTE1LDExNywzLAotICAgIDAsMCwwLDExNSwxMjEsMTE1LDExNywxMCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwKLSAgICAxMDQsMTExLDExMSwxMDcsMTE1LDExNyw2LDAsMCwwLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTAwLAotICAgIDExNywxMCwwLDAsMCw3MCwxMDUsMTA4LDEwMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDExNywKLSAgICA5LDAsMCwwLDExMiw5NywxMTYsMTA0LDk1LDEwNCwxMTEsMTExLDEwNywxMTcsOSwwLAotICAgIDAsMCwxMDksMTAxLDExNiw5Nyw5NSwxMTIsOTcsMTE2LDEwNCwxMTcsNiwwLDAsMCwKLSAgICA5NywxMTIsMTEyLDEwMSwxMTAsMTAwLDExNywxNSwwLDAsMCw2NiwxMTcsMTA1LDEwOCwxMTYsCi0gICAgMTA1LDExMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsMTE3LDE0LDAsMCwwLDcwLAotICAgIDExNCwxMTEsMTIyLDEwMSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDExNywzLDAsCi0gICAgMCwwLDk1LDExMSwxMTUsMTE3LDgsMCwwLDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsCi0gICAgOTUsOTUsMTE3LDIxLDAsMCwwLDg3LDEwNSwxMTAsMTAwLDExMSwxMTksMTE1LDgyLDEwMSwKLSAgICAxMDMsMTA1LDExNSwxMTYsMTE0LDEyMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDExNywxMCwwLDAsCi0gICAgMCw4MCw5NywxMTYsMTA0LDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDAsMywwLDAsMCwKLSAgICAxMTcsMTAsMCwwLDAsMTE1LDEyMSwxMTUsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LAotICAgIDExLDAsMCwwLDk1LDEwNSwxMDksMTEyLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNywKLSAgICAxNywwLDAsMCwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwxMTYsMTAxLDEwMCw5NSwxMDgsMTExLAotICAgIDk3LDEwMCwxMDEsMTE0LDExNSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LAotICAgIDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwKLSAgICAxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLAotICAgIDYyLDExNyw4LDAsMCwwLDk1LDEwNSwxMTAsMTE1LDExNiw5NywxMDgsMTA4LDIzNSw2LAotICAgIDAsMCwxMTUsMTYsMCwwLDAsMCwyLDEzLDEsOSwxLDI4LDEsMTYsCi0gICAgMSwxNiwxLDE1LDEsMTksMSwxMTcsOCwwLDAsMCw5NSwxMDUsMTEwLDExNSwKLSAgICAxMTYsOTcsMTA4LDEwOCw3OCw0MCwzLDAsMCwwLDExNywzLDAsMCwwLDExOSwKLSAgICAxMDUsMTEwLDExNyw2LDAsMCwwLDk5LDEyMSwxMDMsMTE5LDEwNSwxMTAsMTE3LDYsMCwKLSAgICAwLDAsMTAwLDk3LDExNCwxMTksMTA1LDExMCw0MCw3NCwwLDAsMCwxMTcsNywwLAotICAgIDAsMCw5NSw5NSwxMDAsMTExLDk5LDk1LDk1LDExNywyNywwLDAsMCw5NSw2NywKLSAgICA2NSw4Myw2OSw5NSw3Myw3OCw4Myw2OSw3OCw4Myw3Myw4NCw3Myw4Niw2OSw5NSwKLSAgICA4MCw3Niw2NSw4NCw3MCw3OSw4Miw3Nyw4MywxMTcsMTYsMCwwLDAsOTUsMTA5LAotICAgIDk3LDEwNywxMDEsOTUsMTE0LDEwMSwxMDgsOTcsMTIwLDk1LDk5LDk3LDExNSwxMDEsMTE3LDcsCi0gICAgMCwwLDAsOTUsMTE5LDk1LDEwOCwxMTEsMTEwLDEwMywxMTcsNywwLDAsMCw5NSwKLSAgICAxMTQsOTUsMTA4LDExMSwxMTAsMTAzLDExNywxMCwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCwKLSAgICA5NSwxMDYsMTExLDEwNSwxMTAsMTE3LDExLDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LAotICAgIDExNSwxMTIsMTA4LDEwNSwxMTYsMTE3LDE4LDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LAotICAgIDEwNSwxMTUsOTUsMTA5LDExMSwxMDAsMTAxLDk1LDExNiwxMjEsMTEyLDEwMSwxMTcsMTIsMCwwLAotICAgIDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA1LDExNSwxMDIsMTA1LDEwOCwxMDEsMTE3LDExLDAsCi0gICAgMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMTUsMTAwLDEwNSwxMTQsMTE3LDEzLDAsCi0gICAgMCwwLDk1LDExOSwxMTQsMTA1LDExNiwxMDEsOTUsOTcsMTE2LDExMSwxMDksMTA1LDk5LDExNywKLSAgICA1LDAsMCwwLDk1LDExOSwxMTQsOTcsMTEyLDExNyw0LDAsMCwwLDExNiwxMjEsCi0gICAgMTEyLDEwMSwxMTcsOCwwLDAsMCw5NSw5NSw5OSwxMTEsMTAwLDEwMSw5NSw5NSwxMTcsCi0gICAgMTAsMCwwLDAsOTUsOTksMTExLDEwMCwxMDEsOTUsMTE2LDEyMSwxMTIsMTAxLDExNywxMCwKLSAgICAwLDAsMCwxMTAsMTAxLDExOSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTcsMTMsMCwKLSAgICAwLDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsMTA4LDExMSw5OSwxMDcsMTE1LDExNywKLSAgICAxMiwwLDAsMCw5NSw5OCwxMDgsMTExLDk5LDEwNywxMDUsMTEwLDEwMyw5NSwxMTEsMTEwLAotICAgIDExNywxMiwwLDAsMCw4MiwxMTcsMTEwLDExNiwxMDUsMTA5LDEwMSw2OSwxMTQsMTE0LDExMSwKLSAgICAxMTQsMTE3LDE0LDAsMCwwLDk1LDY4LDEwMSw5NywxMDAsMTA4LDExMSw5OSwxMDcsNjksCi0gICAgMTE0LDExNCwxMTEsMTE0LDExNywxMSwwLDAsMCw5NSw3NywxMTEsMTAwLDExNywxMDgsMTAxLAotICAgIDc2LDExMSw5OSwxMDcsMTE3LDE2LDAsMCwwLDk1LDY4LDExNywxMDksMTA5LDEyMSw3NywKLSAgICAxMTEsMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwxMDcsMTE3LDE2LDAsMCwwLDk1LDEwMywKLSAgICAxMDEsMTE2LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDEwOCwxMTEsOTksMTA3LDExNywxOSwKLSAgICAwLDAsMCw5NSwxMDgsMTExLDk5LDEwNyw5NSwxMTcsMTEwLDEwOCwxMTEsOTksMTA3LDk1LAotICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNywyNSwwLDAsMCw5NSw5OSw5NywxMDgsMTA4LAotICAgIDk1LDExOSwxMDUsMTE2LDEwNCw5NSwxMDIsMTE0LDk3LDEwOSwxMDEsMTE1LDk1LDExNCwxMDEsMTA5LAotICAgIDExMSwxMTgsMTAxLDEwMCwxMTcsMywwLDAsMCwxMTEsMTE0LDEwMCwxMTcsMTcsMCwwLAotICAgIDAsOTUsODIsNjUsODcsOTUsNzcsNjUsNzEsNzMsNjcsOTUsNzgsODUsNzcsNjYsCi0gICAgNjksODIsMTE3LDUsMCwwLDAsOTgsMTIxLDExNiwxMDEsMTE1LDExNyw1LDAsMCwKLSAgICAwLDExNCw5NywxMTAsMTAzLDEwMSwxMTcsMTIsMCwwLDAsOTUsNzcsNjUsNzEsNzMsCi0gICAgNjcsOTUsNjYsODksODQsNjksODMsMTE3LDgsMCwwLDAsOTUsODAsODksNjcsCi0gICAgNjUsNjcsNzIsNjksMTE3LDE1LDAsMCwwLDgzLDc5LDg1LDgyLDY3LDY5LDk1LAotICAgIDgzLDg1LDcwLDcwLDczLDg4LDY5LDgzLDExNywyMywwLDAsMCw2OCw2OSw2NiwKLSAgICA4NSw3MSw5NSw2Niw4OSw4NCw2OSw2Nyw3OSw2OCw2OSw5NSw4Myw4NSw3MCw3MCwKLSAgICA3Myw4OCw2OSw4MywxMTcsMjcsMCwwLDAsNzksODAsODQsNzMsNzcsNzMsOTAsCi0gICAgNjksNjgsOTUsNjYsODksODQsNjksNjcsNzksNjgsNjksOTUsODMsODUsNzAsNzAsCi0gICAgNzMsODgsNjksODMsMTE3LDQsMCwwLDAsNzgsMTExLDExMCwxMDEsMTE3LDE3LDAsCi0gICAgMCwwLDk5LDk3LDk5LDEwNCwxMDEsOTUsMTAyLDExNCwxMTEsMTA5LDk1LDExNSwxMTEsMTE3LAotICAgIDExNCw5OSwxMDEsMTE3LDE3LDAsMCwwLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsOTUsMTAyLAotICAgIDExNCwxMTEsMTA5LDk1LDk5LDk3LDk5LDEwNCwxMDEsMTE3LDE1LDAsMCwwLDk1LDEwMywKLSAgICAxMDEsMTE2LDk1LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMTAyLDEwNSwxMDgsMTAxLDExNywxNiwwLAotICAgIDAsMCw5NSwxMTgsMTAxLDExNCw5OCwxMTEsMTE1LDEwMSw5NSwxMDksMTAxLDExNSwxMTUsOTcsCi0gICAgMTAzLDEwMSwxMTcsMTEsMCwwLDAsMTE1LDEwMSwxMTYsOTUsMTEyLDk3LDk5LDEwNyw5NywKLSAgICAxMDMsMTAxLDExNywxMCwwLDAsMCwxMTUsMTAxLDExNiw5NSwxMDgsMTExLDk3LDEwMCwxMDEsCi0gICAgMTE0LDExNywxNywwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMDIsMTExLDExNCwKLSAgICA5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDExNywxMSwwLDAsMCw5NSw5OSwxMDQsMTAxLAotICAgIDk5LDEwNyw5NSwxMTAsOTcsMTA5LDEwMSwxMTcsMTcsMCwwLDAsOTUsMTE0LDEwMSwxMTMsCi0gICAgMTE3LDEwNSwxMTQsMTAxLDExNSw5NSw5OCwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCwxMTcsMTYsMCwKLSAgICAwLDAsOTUsMTE0LDEwMSwxMTMsMTE3LDEwNSwxMTQsMTAxLDExNSw5NSwxMDIsMTE0LDExMSwxMjIsCi0gICAgMTAxLDExMCwxMTcsMTcsMCwwLDAsOTUsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsMTAwLAotICAgIDExNywxMDgsMTAxLDk1LDExNSwxMDQsMTA1LDEwOSwxMTcsMTUsMCwwLDAsNjYsMTE3LDEwNSwKLSAgICAxMDgsMTE2LDEwNSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDExNywxNCwwLDAsCi0gICAgMCw3MCwxMTQsMTExLDEyMiwxMDEsMTEwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCwxMTcsCi0gICAgMjEsMCwwLDAsODcsMTA1LDExMCwxMDAsMTExLDExOSwxMTUsODIsMTAxLDEwMywxMDUsMTE1LAotICAgIDExNiwxMTQsMTIxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsMTE3LDEzLDAsMCwwLDk1LDc2LAotICAgIDExMSw5NywxMDAsMTAxLDExNCw2Niw5NywxMTUsMTA1LDk5LDExNSwxMTcsMTIsMCwwLDAsCi0gICAgODMsMTExLDExNywxMTQsOTksMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCwxMTcsMTAsMCwwLAotICAgIDAsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDExNywxNiwwLDAsMCwKLSAgICA4MywxMTEsMTE3LDExNCw5OSwxMDEsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LAotICAgIDExNywyMCwwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsMTA4LDEwMSwxMTUsMTE1LDcwLAotICAgIDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCwxMTcsMTgsMCwwLDAsNjksODgsCi0gICAgODQsNjksNzgsODMsNzMsNzksNzgsOTUsODMsODUsNzAsNzAsNzMsODgsNjksODMsCi0gICAgMTE3LDE5LDAsMCwwLDY5LDEyMCwxMTYsMTAxLDExMCwxMTUsMTA1LDExMSwxMTAsNzAsMTA1LAotICAgIDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDExNywxNCwwLDAsMCw5NSw3OCw5NywKLSAgICAxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDgwLDk3LDExNiwxMDQsMTE3LDE1LDAsMCwwLAotICAgIDc4LDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDExNywKLSAgICAxMCwwLDAsMCw4MCw5NywxMTYsMTA0LDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsMTE3LDEwLAotICAgIDAsMCwwLDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsMTE3LDE4LDAsCi0gICAgMCwwLDk1LDczLDEwOSwxMTIsMTExLDExNCwxMTYsNzYsMTExLDk5LDEwNyw2NywxMTEsMTEwLAotICAgIDExNiwxMDEsMTIwLDExNiwxMTcsMTMsMCwwLDAsOTUsMTE0LDEwMSwxMTUsMTExLDEwOCwxMTgsCi0gICAgMTAxLDk1LDExMCw5NywxMDksMTAxLDExNywxMiwwLDAsMCw5NSwxMDIsMTA1LDExMCwxMDAsCi0gICAgOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDEzLDAsMCwwLDk1LDExNSw5NywxMTAsCi0gICAgMTA1LDExNiwxMjEsOTUsOTksMTA0LDEwMSw5OSwxMDcsMTE3LDgsMCwwLDAsOTUsNjksCi0gICAgODIsODIsOTUsNzcsODMsNzEsMTE3LDIzLDAsMCwwLDk1LDEwMiwxMDUsMTEwLDEwMCwKLSAgICA5NSw5NywxMTAsMTAwLDk1LDEwOCwxMTEsOTcsMTAwLDk1LDExNywxMTAsMTA4LDExMSw5OSwxMDcsCi0gICAgMTAxLDEwMCwxMTcsMTQsMCwwLDAsOTUsMTAyLDEwNSwxMTAsMTAwLDk1LDk3LDExMCwxMDAsCi0gICAgOTUsMTA4LDExMSw5NywxMDAsMTE3LDExLDAsMCwwLDk1LDEwMyw5OSwxMDAsOTUsMTA1LAotICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMTE3LDE2LDAsMCwwLDk1LDEwNCw5NywxMTAsMTAwLDEwOCwKLSAgICAxMDEsOTUsMTAyLDExNCwxMTEsMTA5LDEwOCwxMDUsMTE1LDExNiwxMTcsMTcsMCwwLDAsOTUsCi0gICAgOTksOTcsMTA4LDk5LDk1LDk1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSw5NSwKLSAgICAxMTcsMjcsMCwwLDAsOTUsMTAzLDEwMSwxMTYsOTUsMTE1LDExNywxMTIsMTEyLDExMSwxMTQsCi0gICAgMTE2LDEwMSwxMDAsOTUsMTAyLDEwNSwxMDgsMTAxLDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMTE1LAotICAgIDExNywxMCwwLDAsMCw5NSw5NSwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiw5NSw5NSwxMTcsCi0gICAgNiwwLDAsMCw5NSwxMTUsMTAxLDExNiwxMTcsMTEyLDExNyw4LDAsMCwwLDk1LAotICAgIDEwNSwxMTAsMTE1LDExNiw5NywxMDgsMTA4LDQwLDAsMCwwLDAsNDAsMCwwLDAsCi0gICAgMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsCi0gICAgMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwKLSAgICAxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsOCwwLDAsMCw2MCwxMDksMTExLAotICAgIDEwMCwxMTcsMTA4LDEwMSw2Miw4LDAsMCwwLDExNSwxMzIsMCwwLDAsNiwyMSwKLSAgICA2LDMsMTIsMTMsMTIsMTYsMTIsMTMsMTIsMTIsMTIsMTIsMTIsMTAsMTIsNiwKLSAgICAxMiw3LDE1LDIyLDEyLDgsMTUsMywxMiwxMiw2LDIsNiwzLDIyLDQsCi0gICAgMTksNjgsMTksMjMsMTIsMTksMTIsMjAsMTIsMTAwLDM0LDEsMzcsMiw2LDIsCi0gICAgOSwyLDksMSw5LDIsMTUsMjcsMTIsMjMsMTIsMjEsMTgsOCwxMiwxMywKLSAgICAxMiwxMSwxMiw1NSwxMiwxOCwxMiwxMSwxMiwxMSwxMiwxNywxOSw1NywxOSw1NCwKLSAgICAxOSw1MCwxOSw4MywyMiwxMzQsMTksMjksMjUsNDksMjUsMjUsNiwzLDE5LDQ1LAotICAgIDE5LDU1LDE5LDE4LDE5LDkxLDE5LDEyOCwxOSwxMywxMiw5LDEyLDE3LDEyLDE3LAotICAgIDYsMiwxMiw1MCwxMiwxMywxOCwyNCwxMiwzNCwxMiwxNSwxMiwxMSwyNCwzNiwKLSAgICAxMiw3OSwKKyAgICA4Myw0MCwyLDAsMCwwLDExNCwyOSwwLDAsMCw3OCw0MCwxLDAsMCwKKyAgICAwLDExNCwzMSwwLDAsMCw0MCwyLDAsMCwwLDExNCwyMiwwLDAsMCwKKyAgICAxMTQsMTE3LDAsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCwKKyAgICA1LDAsMCwwLDExNCwxNTEsMCwwLDAsMjIyLDYsMCwwLDExNSwyLDAsCisgICAgMCwwLDYsMCwxMTcsMjUsMCwwLDAsOTUsMTE1LDEwMSwxMTYsMTE3LDExMiw0NiwKKyAgICA2MCwxMDgsMTExLDk5LDk3LDEwOCwxMTUsNjIsNDYsNjAsMTAzLDEwMSwxMTAsMTAxLDEyMCwxMTIsCisgICAgMTE0LDYyLDExNCw3MCwwLDAsMCwxMTcsMzAsMCwwLDAsMTA1LDEwOSwxMTIsMTExLAorICAgIDExNCwxMTYsMTA4LDEwNSw5OCwzMiwxMTQsMTAxLDExMywxMTcsMTA1LDExNCwxMDEsMTE1LDMyLDExMiwKKyAgICAxMTEsMTE1LDEwNSwxMjAsMzIsMTExLDExNCwzMiwxMTAsMTE2LDExNCw3MSwwLDAsMCwxMTQsCisgICAgOTQsMCwwLDAsMTE2LDYsMCwwLDAsMTE5LDEwNSwxMTAsMTE0LDEwMSwxMDMsMTE0LAorICAgIDIxOSwwLDAsMCwxMTQsMywwLDAsMCwxMTQsMjUsMCwwLDAsMTE0LDIxLAorICAgIDAsMCwwLDExNCwzMCwwLDAsMCwxMTQsNiwwLDAsMCwxMTcsNCwwLAorICAgIDAsMCw0NiwxMTIsMTIxLDExOSwxMTcsNiwwLDAsMCw5NSwxMDAsNDYsMTEyLDEyMSwKKyAgICAxMDAsODQsNDAsNCwwLDAsMCwxMTcsMywwLDAsMCw5NSwxMDUsMTExLDExNywKKyAgICA5LDAsMCwwLDk1LDExOSw5NywxMTQsMTEwLDEwNSwxMTAsMTAzLDExNSwxMTcsOCwwLAorICAgIDAsMCw5OCwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCwxMTUsMTE3LDcsMCwwLDAsMTA5LAorICAgIDk3LDExNCwxMTUsMTA0LDk3LDEwOCw0MCwzMiwwLDAsMCwxMTQsOTYsMCwwLDAsCisgICAgMTE0LDcsMCwwLDAsMTE0LDEwNCwwLDAsMCwxMTQsMTA1LDAsMCwwLDExNCwKKyAgICAxMDcsMCwwLDAsMTE0LDgwLDEsMCwwLDExNCwxMDYsMCwwLDAsMTE0LDY1LAorICAgIDAsMCwwLDExNCwxNDUsMCwwLDAsMjQ0LDUsMCwwLDAsMTA1LDExNiwxMDEsCisgICAgMTA5LDExNSwxMTQsMjAwLDAsMCwwLDExNCw2MSwwLDAsMCwxMTQsMTc2LDAsMCwKKyAgICAwLDExNCwyMDcsMCwwLDAsMTE0LDE3MCwwLDAsMCwxMTQsMTgwLDAsMCwwLAorICAgIDExNCwyMTYsMCwwLDAsMTE0LDU2LDAsMCwwLDExNCwyMTIsMCwwLDAsMTE0LAorICAgIDYwLDAsMCwwLDI0NCwzLDAsMCwwLDk3LDEwOCwxMDgsMTE0LDg4LDAsMCwKKyAgICAwLDExNCwxNTYsMCwwLDAsMTE0LDI2LDAsMCwwLDExNCwxMSwwLDAsMCwKKyAgICAxMTQsMTIsMSwwLDAsMTE0LDIwNSwwLDAsMCwxMTQsNzksMSwwLDAsMTE0LAorICAgIDEyMSwwLDAsMCwxMTQsMTY0LDAsMCwwLDExNCwyMTgsMCwwLDAsMTE0LDIyMiwKKyAgICAwLDAsMCw0MCwxNiwwLDAsMCwyNDQsMTAsMCwwLDAsMTE1LDEyMSwxMTUsCisgICAgOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMjQ0LDExLDAsMCwwLDk1LDEwNSwxMDksMTEyLAorICAgIDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNiwxMSwwLDAsMCwxMDksMTExLDEwMCwxMTcsCisgICAgMTA4LDEwMSw5NSwxMTYsMTIxLDExMiwxMDEsMTE0LDY2LDAsMCwwLDExNCwxNjAsMCwwLAorICAgIDAsMTE2LDExLDAsMCwwLDExNSwxMDEsMTA4LDEwMiw5NSwxMDksMTExLDEwMCwxMTcsMTA4LAorICAgIDEwMSwxMTYsMTIsMCwwLDAsOTgsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsOTUsMTEwLDk3LAorICAgIDEwOSwxMDEsMTE2LDE0LDAsMCwwLDk4LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDk1LDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDExNiwxMCwwLDAsMCwxMTEsMTE1LDk1LDEwMCwxMDEsMTE2LAorICAgIDk3LDEwNSwxMDgsMTE1LDExNiwxMCwwLDAsMCw5OCwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCwKKyAgICA5NSwxMTEsMTE1LDExNCwyMSwwLDAsMCwxMTQsMjUsMCwwLDAsMTE2LDksMCwKKyAgICAwLDAsMTExLDExNSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTYsMTMsMCwwLDAsCisgICAgMTE2LDEwNCwxMTQsMTAxLDk3LDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTYsMTQsMCwKKyAgICAwLDAsMTE5LDEwMSw5NywxMDcsMTE0LDEwMSwxMDIsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCisgICAgMTE2LDEzLDAsMCwwLDExOSwxMDUsMTEwLDExNCwxMDEsMTAzLDk1LDEwOSwxMTEsMTAwLDExNywKKyAgICAxMDgsMTAxLDExNCw0LDAsMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwKKyAgICAwLDI0NCw2LDAsMCwwLDk1LDExNSwxMDEsMTE2LDExNywxMTIsMTg1LDYsMCwwLAorICAgIDExNSwxMDIsMCwwLDAsMCw5LDYsMSw2LDIsMTIsMSw5LDIsNiwKKyAgICAyLDEyLDEsMjgsMSwxNSwxLDI0LDEsMTUsMSwxMiwxLDE1LDEsMjIsCisgICAgMiwxMywxLDEzLDEsMTUsMSwxOCwyLDEzLDEsMjAsMiwzMywxLDE5LAorICAgIDIsMzEsMSwxMCwxLDE1LDEsMTMsMSw0LDIsMywxLDE1LDEsNSwKKyAgICAxLDEzLDEsMTIsMiwxMiwyLDMsMSwxOSwxLDEzLDIsMTEsMSwxNSwKKyAgICAyLDEyLDEsMTUsMSwxOSwyLDE2LDEsMTYsMSwxNiwxLDE2LDEsMjUsCisgICAgMiwxOSwxLDE5LDEsMTIsMSwxMywxLDEyLDEsMTE0LDkxLDEsMCwwLAorICAgIDk5LDIsMCwwLDAsMCwwLDAsMCwzLDAsMCwwLDMsMCwwLAorICAgIDAsNjcsMCwwLDAsMTE1LDEzNiwwLDAsMCwxMTYsMCwwLDEyNCwwLDAsCisgICAgMTI0LDEsMCwxMzEsMiwwLDEsMTE2LDEsMCwxMzEsMCwwLDEyNSwyLDAsCisgICAgMTE2LDIsMCwxMDYsMywwLDEwNiw0LDAsMTE2LDUsMCwxMDYsNiwwLDEyNCwKKyAgICAyLDAsMTQwLDAsMCwxMDMsMSwwLDEzMSwxLDAsMSwxMTYsMiwwLDEwNiwKKyAgICA3LDAsMTA2LDgsMCwxMTYsOSwwLDEzMSwxLDAsMSwxMTYsMiwwLDEwNiwKKyAgICA3LDAsMTA2LDgsMCwxMTYsMTAsMCwxMzEsMSwwLDEsMTE2LDExLDAsMTA2LAorICAgIDEyLDAsMTAwLDEsMCwxMDcsMiwwLDExNCwxMTYsMCwxMTYsMiwwLDEwNiw3LAorICAgIDAsMTA2LDgsMCwxMTYsMTMsMCwxMzEsMSwwLDEsMTEwLDAsMCwxMTYsMiwKKyAgICAwLDEwNiw3LDAsMTA2LDgsMCwxMTYsMTQsMCwxMzEsMSwwLDEsMTAwLDIsCisgICAgMCw4Myw0MCwzLDAsMCwwLDExNyw1MCwwLDAsMCw3MywxMTAsMTE1LDExNiwKKyAgICA5NywxMDgsMTA4LDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsMzIsOTcsMTE1LAorICAgIDMyLDExNiwxMDQsMTAxLDMyLDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDk3LDExNiwKKyAgICAxMDUsMTExLDExMCwzMiwxMTEsMTAyLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDQ2LDExNCw4NSwKKyAgICAxLDAsMCw3OCw0MCwxNSwwLDAsMCwxMTQsOTEsMSwwLDAsMTE0LDIyOCwKKyAgICAwLDAsMCwxMTQsNywwLDAsMCwxMTQsMzMsMSwwLDAsMTE0LDIwNSwwLAorICAgIDAsMCwxMTQsNDAsMSwwLDAsMTE0LDU0LDEsMCwwLDExNCw2MCwxLDAsCisgICAgMCwxMTQsMTY0LDAsMCwwLDExNCwyMDcsMCwwLDAsMTE0LDIxNiwwLDAsMCwKKyAgICAxMTQsMywwLDAsMCwxMTQsNTYsMCwwLDAsMTE0LDIxOCwwLDAsMCwxMTQsCisgICAgMjgsMSwwLDAsNDAsMywwLDAsMCwxMTQsODksMSwwLDAsMTE0LDkwLAorICAgIDEsMCwwLDExNiwxNywwLDAsMCwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwxMTYsMTAxLAorICAgIDEwMCw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDExNSwxMTQsNCwwLDAsMCwxMTQsNCwKKyAgICAwLDAsMCwxMTQsNSwwLDAsMCwyNDQsOCwwLDAsMCw5NSwxMDUsMTEwLAorICAgIDExNSwxMTYsOTcsMTA4LDEwOCw1LDcsMCwwLDExNSwxNiwwLDAsMCwwLDIsCisgICAgMTMsMSw5LDEsMjgsMSwxNiwxLDE2LDEsMTUsMSwxOSwxLDExNCw5MiwKKyAgICAxLDAsMCw0MCwzLDAsMCwwLDExNywzLDAsMCwwLDExOSwxMDUsMTEwLAorICAgIDExNCwxLDAsMCwwLDExNCwyLDAsMCwwLDQwLDgwLDAsMCwwLDExNCwKKyAgICA1OCwwLDAsMCwxMTQsMTAsMCwwLDAsMTE0LDExLDAsMCwwLDExNCwxNywKKyAgICAwLDAsMCwxMTQsMTksMCwwLDAsMTE0LDI4LDAsMCwwLDExNCwzOCwwLAorICAgIDAsMCwxMTQsNDMsMCwwLDAsMTE0LDQ0LDAsMCwwLDExNCw0NSwwLDAsCisgICAgMCwxMTQsNTQsMCwwLDAsMTE0LDY0LDAsMCwwLDExNCw2NSwwLDAsMCwKKyAgICAyNDQsOCwwLDAsMCw5NSw5NSw5OSwxMTEsMTAwLDEwMSw5NSw5NSwxMTQsMjAxLDAsCisgICAgMCwwLDExNCw2NywwLDAsMCwxMTQsOTEsMCwwLDAsMTE0LDgwLDAsMCwKKyAgICAwLDExNCw4NywwLDAsMCwxMTQsNjgsMCwwLDAsMTE0LDY5LDAsMCwwLAorICAgIDExNCw5MCwwLDAsMCwxMTQsOTUsMCwwLDAsMTE0LDk4LDAsMCwwLDExNCwKKyAgICAxMDEsMCwwLDAsMTE0LDE1LDAsMCwwLDExNCwxOTQsMCwwLDAsMTE0LDE0LAorICAgIDAsMCwwLDExNCwxOCwwLDAsMCwxMTYsMTcsMCwwLDAsOTUsODIsNjUsCisgICAgODcsOTUsNzcsNjUsNzEsNzMsNjcsOTUsNzgsODUsNzcsNjYsNjksODIsMTE0LDExMiwKKyAgICAwLDAsMCwxMTQsMTIxLDAsMCwwLDExNCwxMDYsMCwwLDAsMTE0LDEwNywwLAorICAgIDAsMCwxMTQsMTE5LDAsMCwwLDExNCwxMjIsMCwwLDAsMTE0LDEzMCwwLDAsCisgICAgMCwxMTQsMTMyLDAsMCwwLDExNCwxNDAsMCwwLDAsMTE0LDE0MSwwLDAsMCwKKyAgICAxMTQsMTU0LDAsMCwwLDExNCwxNjEsMCwwLDAsMTE0LDE2NSwwLDAsMCwxMTQsCisgICAgMTY5LDAsMCwwLDExNCwxNzIsMCwwLDAsMTE0LDE3NSwwLDAsMCwxMTQsMTc5LAorICAgIDAsMCwwLDExNCwxODIsMCwwLDAsMTE0LDE4OSwwLDAsMCwxMTQsMTk4LDAsCisgICAgMCwwLDExNCwyMDMsMCwwLDAsMTE0LDIwNiwwLDAsMCwxMTQsMjA3LDAsMCwKKyAgICAwLDExNCwyMTYsMCwwLDAsMTE0LDIxOCwwLDAsMCwxMTQsMjMxLDAsMCwwLAorICAgIDExNCwyMzUsMCwwLDAsMTE0LDI1NSwwLDAsMCwxMTQsMywxLDAsMCwxMTQsCisgICAgOCwxLDAsMCwxMTQsMTIsMSwwLDAsMTE0LDksMSwwLDAsMTE0LDEzLAorICAgIDEsMCwwLDExNCwyNywxLDAsMCwxMTQsMjgsMSwwLDAsMTE0LDQwLDEsCisgICAgMCwwLDExNCw1NSwxLDAsMCwxMTQsNTksMSwwLDAsMTE0LDYxLDEsMCwKKyAgICAwLDExNCw2NCwxLDAsMCwxMTQsNjUsMSwwLDAsMTE0LDY4LDEsMCwwLAorICAgIDExNCw2OSwxLDAsMCwxMTQsNzAsMSwwLDAsMTE0LDc2LDEsMCwwLDExNCwKKyAgICA3OCwxLDAsMCwxMTQsMjI4LDAsMCwwLDExNCw4MiwxLDAsMCwxMTQsOTEsCisgICAgMSwwLDAsMTE0LDkyLDEsMCwwLDExNCw0LDAsMCwwLDExNCw0LDAsCisgICAgMCwwLDExNCw0LDAsMCwwLDExNCw1LDAsMCwwLDI0NCw4LDAsMCwKKyAgICAwLDYwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDYyLDgsMCwwLDAsMTE1LDE0NiwwLAorICAgIDAsMCw2LDE3LDYsMywxMiwxMiwxMiw1LDEyLDUsMTIsNiwxMiwxMiwKKyAgICAxMiwxMCwxMiw2LDEyLDcsMTUsMjIsMTIsOCwxNSwzLDEyLDEyLDYsMiwKKyAgICA2LDMsMjIsNCwxOSw2OCwxOSwyMywxMiwxOSwxMiwyMCwxMiwxMTEsMjIsMSwKKyAgICAxOCwyLDYsMiw5LDIsOSwxLDksMiwxNSwyNywxMiwyMywxMiwyMSwKKyAgICAxMiwxMiwxOCw5LDE5LDQ0LDE4LDksMTIsMTUsMTIsMTEsMTIsMTMsMTIsMTEsCisgICAgMTIsMTgsMTIsMTEsMTIsMTEsMTIsMTMsMjEsNTUsMjEsMTIsMTgsMTIsMTksNTcsCisgICAgMTksNTQsMTksNTAsMTksNDEsMjIsMTIyLDE5LDI5LDI1LDQzLDI1LDIwLDYsMywKKyAgICAxOSw0NSwxOSw1NSwxOSwxOSwxOSw5MSwxOSwxMjgsMTksMTMsMTIsOSwxMiwxNywKKyAgICAxMiwxNyw2LDIsMTIsNTAsMTIsMTMsMTgsMjQsMTIsMzQsMTIsMTUsMTIsMTEsCisgICAgMjQsMzYsMTIsNzYsCiB9OwpkaWZmIC0tZ2l0IGEvUHl0aG9uL21hcnNoYWwuYyBiL1B5dGhvbi9tYXJzaGFsLmMKaW5kZXggOTU5ZjNmNy4uM2UxMzg1MSAxMDA2NDQKLS0tIGEvUHl0aG9uL21hcnNoYWwuYworKysgYi9QeXRob24vbWFyc2hhbC5jCkBAIC0xLDggKzEsMTAgQEAKIAogLyogV3JpdGUgUHl0aG9uIG9iamVjdHMgdG8gZmlsZXMgYW5kIHJlYWQgdGhlbSBiYWNrLgotICAgVGhpcyBpcyBpbnRlbmRlZCBmb3Igd3JpdGluZyBhbmQgcmVhZGluZyBjb21waWxlZCBQeXRob24gY29kZSBvbmx5OwotICAgYSB0cnVlIHBlcnNpc3RlbnQgc3RvcmFnZSBmYWNpbGl0eSB3b3VsZCBiZSBtdWNoIGhhcmRlciwgc2luY2UKLSAgIGl0IHdvdWxkIGhhdmUgdG8gdGFrZSBjaXJjdWxhciBsaW5rcyBhbmQgc2hhcmluZyBpbnRvIGFjY291bnQuICovCisgICBUaGlzIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3Igd3JpdGluZyBhbmQgcmVhZGluZyBjb21waWxlZCBQeXRob24gY29kZSwKKyAgIGV2ZW4gdGhvdWdoIGRpY3RzLCBsaXN0cywgc2V0cyBhbmQgZnJvemVuc2V0cywgbm90IGNvbW1vbmx5IHNlZW4gaW4KKyAgIGNvZGUgb2JqZWN0cywgYXJlIHN1cHBvcnRlZC4KKyAgIFZlcnNpb24gMyBvZiB0aGlzIHByb3RvY29sIHByb3Blcmx5IHN1cHBvcnRzIGNpcmN1bGFyIGxpbmtzCisgICBhbmQgc2hhcmluZy4gKi8KIAogI2RlZmluZSBQWV9TU0laRV9UX0NMRUFOCiAKQEAgLTMxLDE2ICszMywxNCBAQAogI2RlZmluZSBUWVBFX1NUT1BJVEVSICAgICAgICAgICAnUycKICNkZWZpbmUgVFlQRV9FTExJUFNJUyAgICAgICAgICAgJy4nCiAjZGVmaW5lIFRZUEVfSU5UICAgICAgICAgICAgICAgICdpJwotLyogVFlQRV9JTlQ2NCBpcyBkZXByZWNhdGVkLiBJdCBpcyBub3QKLSAgIGdlbmVyYXRlZCBhbnltb3JlLCBhbmQgc3VwcG9ydCBmb3IgcmVhZGluZyBpdAotICAgd2lsbCBiZSByZW1vdmVkIGluIFB5dGhvbiAzLjQuICovCi0jZGVmaW5lIFRZUEVfSU5UNjQgICAgICAgICAgICAgICdJJwogI2RlZmluZSBUWVBFX0ZMT0FUICAgICAgICAgICAgICAnZicKICNkZWZpbmUgVFlQRV9CSU5BUllfRkxPQVQgICAgICAgJ2cnCiAjZGVmaW5lIFRZUEVfQ09NUExFWCAgICAgICAgICAgICd4JwogI2RlZmluZSBUWVBFX0JJTkFSWV9DT01QTEVYICAgICAneScKICNkZWZpbmUgVFlQRV9MT05HICAgICAgICAgICAgICAgJ2wnCiAjZGVmaW5lIFRZUEVfU1RSSU5HICAgICAgICAgICAgICdzJworI2RlZmluZSBUWVBFX0lOVEVSTkVEICAgICAgICAgICAndCcKKyNkZWZpbmUgVFlQRV9SRUYgICAgICAgICAgICAgICAgJ3InCiAjZGVmaW5lIFRZUEVfVFVQTEUgICAgICAgICAgICAgICcoJwogI2RlZmluZSBUWVBFX0xJU1QgICAgICAgICAgICAgICAnWycKICNkZWZpbmUgVFlQRV9ESUNUICAgICAgICAgICAgICAgJ3snCkBAIC00OSw2ICs0OSw3IEBACiAjZGVmaW5lIFRZUEVfVU5LTk9XTiAgICAgICAgICAgICc/JwogI2RlZmluZSBUWVBFX1NFVCAgICAgICAgICAgICAgICAnPCcKICNkZWZpbmUgVFlQRV9GUk9aRU5TRVQgICAgICAgICAgJz4nCisjZGVmaW5lIEZMQUdfUkVGICAgICAgICAgICAgICAgICdceDgwJyAvKiB3aXRoIGEgdHlwZSwgYWRkIG9iaiB0byBpbmRleCAqLwogCiAjZGVmaW5lIFdGRVJSX09LIDAKICNkZWZpbmUgV0ZFUlJfVU5NQVJTSEFMTEFCTEUgMQpAQCAtNjUsNiArNjYsNyBAQAogICAgIFB5T2JqZWN0ICpjdXJyZW50X2ZpbGVuYW1lOwogICAgIGNoYXIgKnB0cjsKICAgICBjaGFyICplbmQ7CisgICAgUHlPYmplY3QgKnJlZnM7IC8qIGRpY3Qgb24gbWFyc2hhbCwgbGlzdCBvbiB1bm1hcnNoYWwgKi8KICAgICBpbnQgdmVyc2lvbjsKIH0gV0ZJTEU7CiAKQEAgLTE1MSwxMyArMTUzLDE3IEBACiAjZW5kaWYKICNkZWZpbmUgUHlMb25nX01BUlNIQUxfUkFUSU8gKFB5TG9uZ19TSElGVCAvIFB5TG9uZ19NQVJTSEFMX1NISUZUKQogCisjZGVmaW5lIFdfVFlQRSh0LCBwKSBkbyB7IFwKKyAgICB3X2J5dGUoKHQpIHwgZmxhZywgKHApKTsgXAorfSB3aGlsZSgwKQorCiBzdGF0aWMgdm9pZAotd19QeUxvbmcoY29uc3QgUHlMb25nT2JqZWN0ICpvYiwgV0ZJTEUgKnApCit3X1B5TG9uZyhjb25zdCBQeUxvbmdPYmplY3QgKm9iLCBjaGFyIGZsYWcsIFdGSUxFICpwKQogewogICAgIFB5X3NzaXplX3QgaSwgaiwgbiwgbDsKICAgICBkaWdpdCBkOwogCi0gICAgd19ieXRlKFRZUEVfTE9ORywgcCk7CisgICAgV19UWVBFKFRZUEVfTE9ORywgcCk7CiAgICAgaWYgKFB5X1NJWkUob2IpID09IDApIHsKICAgICAgICAgd19sb25nKChsb25nKTAsIHApOwogICAgICAgICByZXR1cm47CkBAIC0xOTQsMTAgKzIwMCw2NCBAQAogICAgIH0gd2hpbGUgKGQgIT0gMCk7CiB9CiAKK3N0YXRpYyBpbnQKK3dfcmVmKFB5T2JqZWN0ICp2LCBjaGFyICpmbGFnLCBXRklMRSAqcCkKK3sKKyAgICBQeU9iamVjdCAqaWQ7CisgICAgUHlPYmplY3QgKmlkeDsKKworICAgIGlmIChwLT52ZXJzaW9uIDwgMyB8fCBwLT5yZWZzID09IE5VTEwpCisgICAgICAgIHJldHVybiAwOyAvKiBub3Qgd3JpdGluZyBvYmplY3QgcmVmZXJlbmNlcyAqLworCisgICAgLyogaWYgaXQgaGFzIG9ubHkgb25lIHJlZmVyZW5jZSwgaXQgZGVmaW5pdGVseSBpc24ndCBzaGFyZWQgKi8KKyAgICBpZiAoUHlfUkVGQ05UKHYpID09IDEpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWQgPSBQeUxvbmdfRnJvbVZvaWRQdHIoKHZvaWQqKXYpOworICAgIGlmIChpZCA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycjsKKyAgICBpZHggPSBQeURpY3RfR2V0SXRlbShwLT5yZWZzLCBpZCk7CisgICAgaWYgKGlkeCAhPSBOVUxMKSB7CisgICAgICAgIC8qIHdyaXRlIHRoZSByZWZlcmVuY2UgaW5kZXggdG8gdGhlIHN0cmVhbSAqLworICAgICAgICBsb25nIHcgPSBQeUxvbmdfQXNMb25nKGlkeCk7CisgICAgICAgIFB5X0RFQ1JFRihpZCk7CisgICAgICAgIGlmICh3ID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgICAgIGdvdG8gZXJyOworICAgICAgICB9CisgICAgICAgIC8qIHdlIGRvbid0IHN0b3JlICJsb25nIiBpbmRpY2VzIGluIHRoZSBkaWN0ICovCisgICAgICAgIGFzc2VydCgwIDw9IHcgJiYgdyA8PSAweDdmZmZmZmZmKTsKKyAgICAgICAgd19ieXRlKFRZUEVfUkVGLCBwKTsKKyAgICAgICAgd19sb25nKHcsIHApOworICAgICAgICByZXR1cm4gMTsKKyAgICB9IGVsc2UgeworICAgICAgICBpbnQgb2s7CisgICAgICAgIFB5X3NzaXplX3QgcyA9IFB5RGljdF9TaXplKHAtPnJlZnMpOworICAgICAgICAvKiB3ZSBkb24ndCBzdXBwb3J0IGxvbmcgaW5kaWNlcyAqLworICAgICAgICBpZiAocyA+PSAweDdmZmZmZmZmKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgInRvbyBtYW55IG9iamVjdHMiKTsKKyAgICAgICAgICAgIGdvdG8gZXJyOworICAgICAgICB9CisgICAgICAgIGlkeCA9IFB5TG9uZ19Gcm9tU3NpemVfdChzKTsKKyAgICAgICAgb2sgPSBpZHggJiYgUHlEaWN0X1NldEl0ZW0ocC0+cmVmcywgaWQsIGlkeCkgPT0gMDsKKyAgICAgICAgUHlfREVDUkVGKGlkKTsKKyAgICAgICAgUHlfWERFQ1JFRihpZHgpOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgZ290byBlcnI7CisgICAgICAgICpmbGFnIHw9IEZMQUdfUkVGOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CitlcnI6CisgICAgcC0+ZXJyb3IgPSBXRkVSUl9VTk1BUlNIQUxMQUJMRTsKKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIHZvaWQKK3dfY29tcGxleF9vYmplY3QoUHlPYmplY3QgKnYsIGNoYXIgZmxhZywgV0ZJTEUgKnApOworCiBzdGF0aWMgdm9pZAogd19vYmplY3QoUHlPYmplY3QgKnYsIFdGSUxFICpwKQogewotICAgIFB5X3NzaXplX3QgaSwgbjsKKyAgICBjaGFyIGZsYWcgPSAnXDAnOwogCiAgICAgcC0+ZGVwdGgrKzsKIApAQCAtMjIyLDI0ICsyODIsMzUgQEAKICAgICBlbHNlIGlmICh2ID09IFB5X1RydWUpIHsKICAgICAgICAgd19ieXRlKFRZUEVfVFJVRSwgcCk7CiAgICAgfQotICAgIGVsc2UgaWYgKFB5TG9uZ19DaGVja0V4YWN0KHYpKSB7CisgICAgZWxzZSBpZiAoIXdfcmVmKHYsICZmbGFnLCBwKSkKKyAgICAgICAgd19jb21wbGV4X29iamVjdCh2LCBmbGFnLCBwKTsKKworICAgIHAtPmRlcHRoLS07Cit9CisKK3N0YXRpYyB2b2lkCit3X2NvbXBsZXhfb2JqZWN0KFB5T2JqZWN0ICp2LCBjaGFyIGZsYWcsIFdGSUxFICpwKQoreworICAgIFB5X3NzaXplX3QgaSwgbjsKKworICAgIGlmIChQeUxvbmdfQ2hlY2tFeGFjdCh2KSkgewogICAgICAgICBsb25nIHggPSBQeUxvbmdfQXNMb25nKHYpOwogICAgICAgICBpZiAoKHggPT0gLTEpICAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CiAgICAgICAgICAgICBQeUxvbmdPYmplY3QgKm9iID0gKFB5TG9uZ09iamVjdCAqKXY7CiAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwotICAgICAgICAgICAgd19QeUxvbmcob2IsIHApOworICAgICAgICAgICAgd19QeUxvbmcob2IsIGZsYWcsIHApOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogI2lmIFNJWkVPRl9MT05HID4gNAogICAgICAgICAgICAgbG9uZyB5ID0gUHlfQVJJVEhNRVRJQ19SSUdIVF9TSElGVChsb25nLCB4LCAzMSk7CiAgICAgICAgICAgICBpZiAoeSAmJiB5ICE9IC0xKSB7CiAgICAgICAgICAgICAgICAgLyogVG9vIGxhcmdlIGZvciBUWVBFX0lOVCAqLwotICAgICAgICAgICAgICAgIHdfUHlMb25nKChQeUxvbmdPYmplY3QqKXYsIHApOworICAgICAgICAgICAgICAgIHdfUHlMb25nKChQeUxvbmdPYmplY3QqKXYsIGZsYWcsIHApOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZQogI2VuZGlmCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgd19ieXRlKFRZUEVfSU5ULCBwKTsKKyAgICAgICAgICAgICAgICBXX1RZUEUoVFlQRV9JTlQsIHApOwogICAgICAgICAgICAgICAgIHdfbG9uZyh4LCBwKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjUyLDcgKzMyMyw3IEBACiAgICAgICAgICAgICAgICAgcC0+ZXJyb3IgPSBXRkVSUl9VTk1BUlNIQUxMQUJMRTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB3X2J5dGUoVFlQRV9CSU5BUllfRkxPQVQsIHApOworICAgICAgICAgICAgV19UWVBFKFRZUEVfQklOQVJZX0ZMT0FULCBwKTsKICAgICAgICAgICAgIHdfc3RyaW5nKChjaGFyKilidWYsIDgsIHApOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgewpAQCAtMjYzLDcgKzMzNCw3IEBACiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbiA9IHN0cmxlbihidWYpOwotICAgICAgICAgICAgd19ieXRlKFRZUEVfRkxPQVQsIHApOworICAgICAgICAgICAgV19UWVBFKFRZUEVfRkxPQVQsIHApOwogICAgICAgICAgICAgd19ieXRlKChpbnQpbiwgcCk7CiAgICAgICAgICAgICB3X3N0cmluZyhidWYsIG4sIHApOwogICAgICAgICAgICAgUHlNZW1fRnJlZShidWYpOwpAQCAtMjc3LDcgKzM0OCw3IEBACiAgICAgICAgICAgICAgICAgcC0+ZXJyb3IgPSBXRkVSUl9VTk1BUlNIQUxMQUJMRTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB3X2J5dGUoVFlQRV9CSU5BUllfQ09NUExFWCwgcCk7CisgICAgICAgICAgICBXX1RZUEUoVFlQRV9CSU5BUllfQ09NUExFWCwgcCk7CiAgICAgICAgICAgICB3X3N0cmluZygoY2hhciopYnVmLCA4LCBwKTsKICAgICAgICAgICAgIGlmIChfUHlGbG9hdF9QYWNrOChQeUNvbXBsZXhfSW1hZ0FzRG91YmxlKHYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwgMSkgPCAwKSB7CkBAIC0yODgsNyArMzU5LDcgQEAKICAgICAgICAgfQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGNoYXIgKmJ1ZjsKLSAgICAgICAgICAgIHdfYnl0ZShUWVBFX0NPTVBMRVgsIHApOworICAgICAgICAgICAgV19UWVBFKFRZUEVfQ09NUExFWCwgcCk7CiAgICAgICAgICAgICBidWYgPSBQeU9TX2RvdWJsZV90b19zdHJpbmcoUHlDb21wbGV4X1JlYWxBc0RvdWJsZSh2KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZycsIDE3LCAwLCBOVUxMKTsKICAgICAgICAgICAgIGlmICghYnVmKSB7CkBAIC0zMTIsNyArMzgzLDcgQEAKICAgICAgICAgfQogICAgIH0KICAgICBlbHNlIGlmIChQeUJ5dGVzX0NoZWNrRXhhY3QodikpIHsKLSAgICAgICAgd19ieXRlKFRZUEVfU1RSSU5HLCBwKTsKKyAgICAgICAgV19UWVBFKFRZUEVfU1RSSU5HLCBwKTsKICAgICAgICAgbiA9IFB5Qnl0ZXNfR0VUX1NJWkUodik7CiAgICAgICAgIFdfU0laRShuLCBwKTsKICAgICAgICAgd19zdHJpbmcoUHlCeXRlc19BU19TVFJJTkcodiksIG4sIHApOwpAQCAtMzI1LDE0ICszOTYsMTcgQEAKICAgICAgICAgICAgIHAtPmVycm9yID0gV0ZFUlJfVU5NQVJTSEFMTEFCTEU7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgd19ieXRlKFRZUEVfVU5JQ09ERSwgcCk7CisgICAgICAgIGlmIChwLT52ZXJzaW9uID49IDMgJiYgIFB5VW5pY29kZV9DSEVDS19JTlRFUk5FRCh2KSkKKyAgICAgICAgICAgIFdfVFlQRShUWVBFX0lOVEVSTkVELCBwKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgV19UWVBFKFRZUEVfVU5JQ09ERSwgcCk7CiAgICAgICAgIG4gPSBQeUJ5dGVzX0dFVF9TSVpFKHV0ZjgpOwogICAgICAgICBXX1NJWkUobiwgcCk7CiAgICAgICAgIHdfc3RyaW5nKFB5Qnl0ZXNfQVNfU1RSSU5HKHV0ZjgpLCBuLCBwKTsKICAgICAgICAgUHlfREVDUkVGKHV0ZjgpOwogICAgIH0KICAgICBlbHNlIGlmIChQeVR1cGxlX0NoZWNrRXhhY3QodikpIHsKLSAgICAgICAgd19ieXRlKFRZUEVfVFVQTEUsIHApOworICAgICAgICBXX1RZUEUoVFlQRV9UVVBMRSwgcCk7CiAgICAgICAgIG4gPSBQeVR1cGxlX1NpemUodik7CiAgICAgICAgIFdfU0laRShuLCBwKTsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewpAQCAtMzQwLDcgKzQxNCw3IEBACiAgICAgICAgIH0KICAgICB9CiAgICAgZWxzZSBpZiAoUHlMaXN0X0NoZWNrRXhhY3QodikpIHsKLSAgICAgICAgd19ieXRlKFRZUEVfTElTVCwgcCk7CisgICAgICAgIFdfVFlQRShUWVBFX0xJU1QsIHApOwogICAgICAgICBuID0gUHlMaXN0X0dFVF9TSVpFKHYpOwogICAgICAgICBXX1NJWkUobiwgcCk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKQEAgLTM1MCw3ICs0MjQsNyBAQAogICAgIGVsc2UgaWYgKFB5RGljdF9DaGVja0V4YWN0KHYpKSB7CiAgICAgICAgIFB5X3NzaXplX3QgcG9zOwogICAgICAgICBQeU9iamVjdCAqa2V5LCAqdmFsdWU7Ci0gICAgICAgIHdfYnl0ZShUWVBFX0RJQ1QsIHApOworICAgICAgICBXX1RZUEUoVFlQRV9ESUNULCBwKTsKICAgICAgICAgLyogVGhpcyBvbmUgaXMgTlVMTCBvYmplY3QgdGVybWluYXRlZCEgKi8KICAgICAgICAgcG9zID0gMDsKICAgICAgICAgd2hpbGUgKFB5RGljdF9OZXh0KHYsICZwb3MsICZrZXksICZ2YWx1ZSkpIHsKQEAgLTM2Myw5ICs0MzcsOSBAQAogICAgICAgICBQeU9iamVjdCAqdmFsdWUsICppdDsKIAogICAgICAgICBpZiAoUHlPYmplY3RfVHlwZUNoZWNrKHYsICZQeVNldF9UeXBlKSkKLSAgICAgICAgICAgIHdfYnl0ZShUWVBFX1NFVCwgcCk7CisgICAgICAgICAgICBXX1RZUEUoVFlQRV9TRVQsIHApOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB3X2J5dGUoVFlQRV9GUk9aRU5TRVQsIHApOworICAgICAgICAgICAgV19UWVBFKFRZUEVfRlJPWkVOU0VULCBwKTsKICAgICAgICAgbiA9IFB5T2JqZWN0X1NpemUodik7CiAgICAgICAgIGlmIChuID09IC0xKSB7CiAgICAgICAgICAgICBwLT5kZXB0aC0tOwpAQCAtMzkyLDcgKzQ2Niw3IEBACiAgICAgfQogICAgIGVsc2UgaWYgKFB5Q29kZV9DaGVjayh2KSkgewogICAgICAgICBQeUNvZGVPYmplY3QgKmNvID0gKFB5Q29kZU9iamVjdCAqKXY7Ci0gICAgICAgIHdfYnl0ZShUWVBFX0NPREUsIHApOworICAgICAgICBXX1RZUEUoVFlQRV9DT0RFLCBwKTsKICAgICAgICAgd19sb25nKGNvLT5jb19hcmdjb3VudCwgcCk7CiAgICAgICAgIHdfbG9uZyhjby0+Y29fa3dvbmx5YXJnY291bnQsIHApOwogICAgICAgICB3X2xvbmcoY28tPmNvX25sb2NhbHMsIHApOwpAQCAtNDE5LDcgKzQ5Myw3IEBACiAgICAgICAgICAgICBwLT5lcnJvciA9IFdGRVJSX1VOTUFSU0hBTExBQkxFOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHdfYnl0ZShUWVBFX1NUUklORywgcCk7CisgICAgICAgIFdfVFlQRShUWVBFX1NUUklORywgcCk7CiAgICAgICAgIG4gPSB2aWV3LmxlbjsKICAgICAgICAgcyA9IHZpZXcuYnVmOwogICAgICAgICBXX1NJWkUobiwgcCk7CkBAIC00MjcsMTAgKzUwMSw5IEBACiAgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnZpZXcpOwogICAgIH0KICAgICBlbHNlIHsKLSAgICAgICAgd19ieXRlKFRZUEVfVU5LTk9XTiwgcCk7CisgICAgICAgIFdfVFlQRShUWVBFX1VOS05PV04sIHApOwogICAgICAgICBwLT5lcnJvciA9IFdGRVJSX1VOTUFSU0hBTExBQkxFOwogICAgIH0KLSAgICBwLT5kZXB0aC0tOwogfQogCiAvKiB2ZXJzaW9uIGN1cnJlbnRseSBoYXMgbm8gZWZmZWN0IGZvciB3cml0aW5nIGxvbmdzLiAqLwpAQCAtNDQxLDYgKzUxNCw3IEBACiAgICAgd2YuZnAgPSBmcDsKICAgICB3Zi5lcnJvciA9IFdGRVJSX09LOwogICAgIHdmLmRlcHRoID0gMDsKKyAgICB3Zi5yZWZzID0gTlVMTDsKICAgICB3Zi52ZXJzaW9uID0gdmVyc2lvbjsKICAgICB3X2xvbmcoeCwgJndmKTsKIH0KQEAgLTQ1Miw4ICs1MjYsMTQgQEAKICAgICB3Zi5mcCA9IGZwOwogICAgIHdmLmVycm9yID0gV0ZFUlJfT0s7CiAgICAgd2YuZGVwdGggPSAwOworICAgIGlmICh2ZXJzaW9uID49IDMpIHsKKyAgICAgICAgaWYgKCh3Zi5yZWZzID0gUHlEaWN0X05ldygpKSA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuOyAvKiBjYWxsZXIgbXVzaCBjaGVjayBQeUVycl9PY2N1cnJlZCgpICovCisgICAgfSBlbHNlCisgICAgICAgIHdmLnJlZnMgPSBOVUxMOwogICAgIHdmLnZlcnNpb24gPSB2ZXJzaW9uOwogICAgIHdfb2JqZWN0KHgsICZ3Zik7CisgICAgUHlfWERFQ1JFRih3Zi5yZWZzKTsKIH0KIAogdHlwZWRlZiBXRklMRSBSRklMRTsgLyogU2FtZSBzdHJ1Y3Qgd2l0aCBkaWZmZXJlbnQgaW52YXJpYW50cyAqLwpAQCAtNDg5LDcgKzU2OSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPm9iX3R5cGUtPnRwX25hbWUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgcmVhZCA9IFB5Qnl0ZXNfR0VUX1NJWkUoZGF0YSk7CisgICAgICAgICAgICAgICAgcmVhZCA9IChpbnQpUHlCeXRlc19HRVRfU0laRShkYXRhKTsKICAgICAgICAgICAgICAgICBpZiAocmVhZCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgcHRyID0gUHlCeXRlc19BU19TVFJJTkcoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgIG1lbWNweShzLCBwdHIsIHJlYWQpOwpAQCAtNTU0LDQyICs2MzQsNiBAQAogICAgIHJldHVybiB4OwogfQogCi0vKiByX2xvbmc2NCBkZWFscyB3aXRoIHRoZSBUWVBFX0lOVDY0IGNvZGUuICBPbiBhIG1hY2hpbmUgd2l0aAotICAgc2l6ZW9mKGxvbmcpID4gNCwgaXQgcmV0dXJucyBhIFB5dGhvbiBpbnQgb2JqZWN0LCBlbHNlIGEgUHl0aG9uIGxvbmcKLSAgIG9iamVjdC4gIE5vdGUgdGhhdCB3X2xvbmc2NCB3cml0ZXMgb3V0IFRZUEVfSU5UIGlmIDMyIGJpdHMgaXMgZW5vdWdoLAotICAgc28gdGhlcmUncyBubyBpbmVmZmljaWVuY3kgaGVyZSBpbiByZXR1cm5pbmcgYSBQeUxvbmcgb24gMzItYml0IGJveGVzCi0gICBmb3IgZXZlcnl0aGluZyB3cml0dGVuIHZpYSBUWVBFX0lOVDY0IChpLmUuLCBpZiBhbiBpbnQgaXMgd3JpdHRlbiB2aWEKLSAgIFRZUEVfSU5UNjQsIGl0ICpuZWVkcyogbW9yZSB0aGFuIDMyIGJpdHMpLgotKi8KLXN0YXRpYyBQeU9iamVjdCAqCi1yX2xvbmc2NChSRklMRSAqcCkKLXsKLSAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKLSAgICBsb25nIGxvNCA9IHJfbG9uZyhwKTsKLSAgICBsb25nIGhpNCA9IHJfbG9uZyhwKTsKLQotICAgIGlmICghUHlFcnJfT2NjdXJyZWQoKSkgewotI2lmIFNJWkVPRl9MT05HID4gNAotICAgICAgICBsb25nIHggPSAoaGk0IDw8IDMyKSB8IChsbzQgJiAweEZGRkZGRkZGTCk7Ci0gICAgICAgIHJlc3VsdCA9IFB5TG9uZ19Gcm9tTG9uZyh4KTsKLSNlbHNlCi0gICAgICAgIHVuc2lnbmVkIGNoYXIgYnVmWzhdOwotICAgICAgICBpbnQgb25lID0gMTsKLSAgICAgICAgaW50IGlzX2xpdHRsZV9lbmRpYW4gPSAoaW50KSooY2hhciopJm9uZTsKLSAgICAgICAgaWYgKGlzX2xpdHRsZV9lbmRpYW4pIHsKLSAgICAgICAgICAgIG1lbWNweShidWYsICZsbzQsIDQpOwotICAgICAgICAgICAgbWVtY3B5KGJ1Zis0LCAmaGk0LCA0KTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIG1lbWNweShidWYsICZoaTQsIDQpOwotICAgICAgICAgICAgbWVtY3B5KGJ1Zis0LCAmbG80LCA0KTsKLSAgICAgICAgfQotICAgICAgICByZXN1bHQgPSBfUHlMb25nX0Zyb21CeXRlQXJyYXkoYnVmLCA4LCBpc19saXR0bGVfZW5kaWFuLCAxKTsKLSNlbmRpZgotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiBzdGF0aWMgUHlPYmplY3QgKgogcl9QeUxvbmcoUkZJTEUgKnApCiB7CkBAIC02NTksNiArNzAzLDYyIEBACiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKKy8qIGFsbG9jYXRlIHRoZSByZWZsaXN0IGluZGV4IGZvciBhIG5ldyBvYmplY3QuIFJldHVybiAtMSBvbiBmYWlsdXJlICovCitzdGF0aWMgUHlfc3NpemVfdAorcl9yZWZfcmVzZXJ2ZShpbnQgZmxhZywgUkZJTEUgKnApCit7CisgICAgaWYgKGZsYWcpIHsgLyogY3VycmVudGx5IG9ubHkgRkxBR19SRUYgaXMgZGVmaW5lZCAqLworICAgICAgICBQeV9zc2l6ZV90IGlkeCA9IFB5TGlzdF9TaXplKHAtPnJlZnMpOworICAgICAgICBpZiAoaWR4IDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgaWYgKGlkeCA+PSAweDdmZmZmZmZlKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgImJhZCBtYXJzaGFsIGRhdGEgKGluZGV4IGxpc3QgdG9vIGxhcmdlKSIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGlmIChQeUxpc3RfQXBwZW5kKHAtPnJlZnMsIFB5X05vbmUpIDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgcmV0dXJuIGlkeDsKKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIDA7Cit9CisKKy8qIGluc2VydCB0aGUgbmV3IG9iamVjdCAnbycgdG8gdGhlIHJlZmxpc3QgYXQgcHJldmlvdXNseQorICogYWxsb2NhdGVkIGluZGV4ICdpZHgnLgorICogJ28nIGNhbiBiZSBOVUxMLCBpbiB3aGljaCBjYXNlIG5vdGhpbmcgaXMgZG9uZS4KKyAqIGlmICdvJyB3YXMgbm9uLU5VTEwsIGFuZCB0aGUgZnVuY3Rpb24gc3VjY2VlZHMsICdvJyBpcyByZXR1cm5lZC4KKyAqIGlmICdvJyB3YXMgbm9uLU5VTEwsIGFuZCB0aGUgZnVuY3Rpb24gZmFpbHMsICdvJyBpcyByZWxlYXNlZCBhbmQKKyAqIE5VTEwgcmV0dXJuZWQuIFRoaXMgc2ltcGxpZmllcyBlcnJvciBjaGVja2luZyBhdCB0aGUgY2FsbCBzaXRlIHNpbmNlCisgKiBhIHNpbmdsZSB0ZXN0IGZvciBOVUxMIGZvciB0aGUgZnVuY3Rpb24gcmVzdWx0IGlzIGVub3VnaC4KKyAqLworc3RhdGljIFB5T2JqZWN0ICoKK3JfcmVmX2luc2VydChQeU9iamVjdCAqbywgUHlfc3NpemVfdCBpZHgsIGludCBmbGFnLCBSRklMRSAqcCkKK3sKKyAgICBpZiAobyAhPSBOVUxMICYmIGZsYWcpIHsgLyogY3VycmVudGx5IG9ubHkgRkxBR19SRUYgaXMgZGVmaW5lZCAqLworICAgICAgICBpZiAoUHlMaXN0X1NldEl0ZW0ocC0+cmVmcywgaWR4LCBvKSA8IDApIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihvKTsgLyogcmVsZWFzZSB0aGUgbmV3IG9iamVjdCAqLworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBQeV9JTkNSRUYobyk7IC8qIGEgcmVmZXJlbmNlIGZvciB0aGUgbGlzdCAqLworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBvOworfQorCisvKiBjb21iaW5hdGlvbiBvZiBib3RoIGFib3ZlLCB1c2VkIHdoZW4gYW4gb2JqZWN0IGNhbiBiZQorICogY3JlYXRlZCB3aGVuZXZlciBpdCBpcyBzZWVuIGluIHRoZSBmaWxlLCBhcyBvcHBvc2VkIHRvCisgKiBhZnRlciBoYXZpbmcgbG9hZGVkIGl0cyBzdWItb2JqZWN0cy4KKyAqLworc3RhdGljIFB5T2JqZWN0ICoKK3JfcmVmKFB5T2JqZWN0ICpvLCBpbnQgZmxhZywgUkZJTEUgKnApCit7CisgICAgaWYgKG8gIT0gTlVMTCAmJiBmbGFnKSB7IC8qIGN1cnJlbnRseSBvbmx5IEZMQUdfUkVGIGlzIGRlZmluZWQgKi8KKyAgICAgICAgaWYgKFB5TGlzdF9BcHBlbmQocC0+cmVmcywgbykgPCAwKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYobyk7IC8qIHJlbGVhc2UgdGhlIG5ldyBvYmplY3QgKi8KKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBvOworfQogCiBzdGF0aWMgUHlPYmplY3QgKgogcl9vYmplY3QoUkZJTEUgKnApCkBAIC02NjYsMTAgKzc2NiwxOCBAQAogICAgIC8qIE5VTEwgaXMgYSB2YWxpZCByZXR1cm4gdmFsdWUsIGl0IGRvZXMgbm90IG5lY2Vzc2FyaWx5IG1lYW5zIHRoYXQKICAgICAgICBhbiBleGNlcHRpb24gaXMgc2V0LiAqLwogICAgIFB5T2JqZWN0ICp2LCAqdjI7CisgICAgUHlfc3NpemVfdCBpZHggPSAwOwogICAgIGxvbmcgaSwgbjsKLSAgICBpbnQgdHlwZSA9IHJfYnl0ZShwKTsKKyAgICBpbnQgdHlwZSwgY29kZSA9IHJfYnl0ZShwKTsKKyAgICBpbnQgZmxhZzsKICAgICBQeU9iamVjdCAqcmV0dmFsOwogCisgICAgaWYgKGNvZGUgPT0gRU9GKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19FT0ZFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJFT0YgcmVhZCB3aGVyZSBvYmplY3QgZXhwZWN0ZWQiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCiAgICAgcC0+ZGVwdGgrKzsKIAogICAgIGlmIChwLT5kZXB0aCA+IE1BWF9NQVJTSEFMX1NUQUNLX0RFUFRIKSB7CkBAIC02NzgsMTMgKzc4NiwxNSBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBmbGFnID0gY29kZSAmIEZMQUdfUkVGOworICAgIHR5cGUgPSBjb2RlICYgfkZMQUdfUkVGOwogCi0gICAgY2FzZSBFT0Y6Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19FT0ZFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJFT0YgcmVhZCB3aGVyZSBvYmplY3QgZXhwZWN0ZWQiKTsKLSAgICAgICAgcmV0dmFsID0gTlVMTDsKLSAgICAgICAgYnJlYWs7CisjZGVmaW5lIFJfUkVGKE8pIGRve1wKKyAgICBpZiAoZmxhZykgXAorICAgICAgICBPID0gcl9yZWYoTywgZmxhZywgcCk7XAorfSB3aGlsZSAoMCkKKworICAgIHN3aXRjaCAodHlwZSkgewogCiAgICAgY2FzZSBUWVBFX05VTEw6CiAgICAgICAgIHJldHZhbCA9IE5VTEw7CkBAIC03MTgsMTQgKzgyOCwxMiBAQAogICAgIGNhc2UgVFlQRV9JTlQ6CiAgICAgICAgIG4gPSByX2xvbmcocCk7CiAgICAgICAgIHJldHZhbCA9IFB5RXJyX09jY3VycmVkKCkgPyBOVUxMIDogUHlMb25nX0Zyb21Mb25nKG4pOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgVFlQRV9JTlQ2NDoKLSAgICAgICAgcmV0dmFsID0gcl9sb25nNjQocCk7CisgICAgICAgIFJfUkVGKHJldHZhbCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBUWVBFX0xPTkc6CiAgICAgICAgIHJldHZhbCA9IHJfUHlMb25nKHApOworICAgICAgICBSX1JFRihyZXR2YWwpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgVFlQRV9GTE9BVDoKQEAgLTc0NCw2ICs4NTIsNyBAQAogICAgICAgICAgICAgaWYgKGR4ID09IC0xLjAgJiYgUHlFcnJfT2NjdXJyZWQoKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIHJldHZhbCA9IFB5RmxvYXRfRnJvbURvdWJsZShkeCk7CisgICAgICAgICAgICBSX1JFRihyZXR2YWwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNzYzLDYgKzg3Miw3IEBACiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR2YWwgPSBQeUZsb2F0X0Zyb21Eb3VibGUoeCk7CisgICAgICAgICAgICBSX1JFRihyZXR2YWwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNzkyLDYgKzkwMiw3IEBACiAgICAgICAgICAgICBpZiAoYy5pbWFnID09IC0xLjAgJiYgUHlFcnJfT2NjdXJyZWQoKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIHJldHZhbCA9IFB5Q29tcGxleF9Gcm9tQ0NvbXBsZXgoYyk7CisgICAgICAgICAgICBSX1JFRihyZXR2YWwpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtODIyLDYgKzkzMyw3IEBACiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR2YWwgPSBQeUNvbXBsZXhfRnJvbUNDb21wbGV4KGMpOworICAgICAgICAgICAgUl9SRUYocmV0dmFsKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTg0OSw5ICs5NjEsMTEgQEAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIHJldHZhbCA9IHY7CisgICAgICAgIFJfUkVGKHJldHZhbCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBUWVBFX1VOSUNPREU6CisgICAgY2FzZSBUWVBFX0lOVEVSTkVEOgogICAgICAgICB7CiAgICAgICAgIGNoYXIgKmJ1ZmZlcjsKIApAQCAtODc5LDcgKzk5MywxMCBAQAogICAgICAgICB9CiAgICAgICAgIHYgPSBQeVVuaWNvZGVfRGVjb2RlVVRGOChidWZmZXIsIG4sICJzdXJyb2dhdGVwYXNzIik7CiAgICAgICAgIFB5TWVtX0RFTChidWZmZXIpOworICAgICAgICBpZiAodHlwZSA9PSBUWVBFX0lOVEVSTkVEKQorICAgICAgICAgICAgUHlVbmljb2RlX0ludGVybkluUGxhY2UoJnYpOwogICAgICAgICByZXR2YWwgPSB2OworICAgICAgICBSX1JFRihyZXR2YWwpOwogICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC04OTUsNiArMTAxMiw3IEBACiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICB2ID0gUHlUdXBsZV9OZXcobik7CisgICAgICAgIFJfUkVGKHYpOwogICAgICAgICBpZiAodiA9PSBOVUxMKSB7CiAgICAgICAgICAgICByZXR2YWwgPSBOVUxMOwogICAgICAgICAgICAgYnJlYWs7CkBAIC05MjYsNiArMTA0NCw3IEBACiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICB2ID0gUHlMaXN0X05ldyhuKTsKKyAgICAgICAgUl9SRUYodik7CiAgICAgICAgIGlmICh2ID09IE5VTEwpIHsKICAgICAgICAgICAgIHJldHZhbCA9IE5VTEw7CiAgICAgICAgICAgICBicmVhazsKQEAgLTk0Nyw2ICsxMDY2LDcgQEAKIAogICAgIGNhc2UgVFlQRV9ESUNUOgogICAgICAgICB2ID0gUHlEaWN0X05ldygpOworICAgICAgICBSX1JFRih2KTsKICAgICAgICAgaWYgKHYgPT0gTlVMTCkgewogICAgICAgICAgICAgcmV0dmFsID0gTlVMTDsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtOTgyLDYgKzExMDIsMTYgQEAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIHYgPSAodHlwZSA9PSBUWVBFX1NFVCkgPyBQeVNldF9OZXcoTlVMTCkgOiBQeUZyb3plblNldF9OZXcoTlVMTCk7CisgICAgICAgIGlmICh0eXBlID09IFRZUEVfU0VUKSB7CisgICAgICAgICAgICBSX1JFRih2KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIG11c3QgdXNlIGRlbGF5ZWQgcmVnaXN0cmF0aW9uIG9mIGZyb3plbnNldHMgYmVjYXVzZSB0aGV5IG11c3QKKyAgICAgICAgICAgICAqIGJlIGluaXQgd2l0aCBhIHJlZmNvdW50IG9mIDEKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWR4ID0gcl9yZWZfcmVzZXJ2ZShmbGFnLCBwKTsKKyAgICAgICAgICAgIGlmIChpZHggPCAwKQorICAgICAgICAgICAgICAgIFB5X0NMRUFSKHYpOyAvKiBzaWduYWwgZXJyb3IgKi8KKyAgICAgICAgfQogICAgICAgICBpZiAodiA9PSBOVUxMKSB7CiAgICAgICAgICAgICByZXR2YWwgPSBOVUxMOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDA0LDYgKzExMzQsOCBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgUHlfREVDUkVGKHYyKTsKICAgICAgICAgfQorICAgICAgICBpZiAodHlwZSAhPSBUWVBFX1NFVCkKKyAgICAgICAgICAgIHYgPSByX3JlZl9pbnNlcnQodiwgaWR4LCBmbGFnLCBwKTsKICAgICAgICAgcmV0dmFsID0gdjsKICAgICAgICAgYnJlYWs7CiAKQEAgLTEwMjUsNiArMTE1NywxMiBAQAogICAgICAgICAgICAgaW50IGZpcnN0bGluZW5vOwogICAgICAgICAgICAgUHlPYmplY3QgKmxub3RhYiA9IE5VTEw7CiAKKyAgICAgICAgICAgIGlkeCA9IHJfcmVmX3Jlc2VydmUoZmxhZywgcCk7CisgICAgICAgICAgICBpZiAoaWR4IDwgMCkgeworICAgICAgICAgICAgICAgIHJldHZhbCA9IE5VTEw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIHYgPSBOVUxMOwogCiAgICAgICAgICAgICAvKiBYWFggaWdub3JlIGxvbmctPmludCBvdmVyZmxvd3MgZm9yIG5vdyAqLwpAQCAtMTA5MCw2ICsxMjI4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlLCBjb25zdHMsIG5hbWVzLCB2YXJuYW1lcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVldmFycywgY2VsbHZhcnMsIGZpbGVuYW1lLCBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0bGluZW5vLCBsbm90YWIpOworICAgICAgICAgICAgdiA9IHJfcmVmX2luc2VydCh2LCBpZHgsIGZsYWcsIHApOwogCiAgICAgICAgICAgY29kZV9lcnJvcjoKICAgICAgICAgICAgIFB5X1hERUNSRUYoY29kZSk7CkBAIC0xMTA1LDYgKzEyNDQsMjMgQEAKICAgICAgICAgcmV0dmFsID0gdjsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIFRZUEVfUkVGOgorICAgICAgICBuID0gcl9sb25nKHApOworICAgICAgICBpZiAobiA8IDAgfHwgbiA+PSBQeUxpc3RfR0VUX1NJWkUocC0+cmVmcykpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiYmFkIG1hcnNoYWwgZGF0YSAoaW52YWxpZCByZWZlcmVuY2UpIik7CisgICAgICAgICAgICByZXR2YWwgPSBOVUxMOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgdiA9IFB5TGlzdF9HRVRfSVRFTShwLT5yZWZzLCBuKTsKKyAgICAgICAgaWYgKHYgPT0gUHlfTm9uZSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJiYWQgbWFyc2hhbCBkYXRhIChpbnZhbGlkIHJlZmVyZW5jZSkiKTsKKyAgICAgICAgICAgIHJldHZhbCA9IE5VTEw7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBQeV9JTkNSRUYodik7CisgICAgICAgIHJldHZhbCA9IHY7CisgICAgICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgLyogQm9ndXMgZGF0YSBnb3Qgd3JpdHRlbiwgd2hpY2ggaXNuJ3QgaWRlYWwuCiAgICAgICAgICAgIFRoaXMgd2lsbCBsZXQgeW91IGtlZXAgd29ya2luZyBhbmQgcmVjb3Zlci4gKi8KQEAgLTEyMTAsNyArMTM2NiwxMSBAQAogICAgIHJmLmN1cnJlbnRfZmlsZW5hbWUgPSBOVUxMOwogICAgIHJmLmRlcHRoID0gMDsKICAgICByZi5wdHIgPSByZi5lbmQgPSBOVUxMOworICAgIHJmLnJlZnMgPSBQeUxpc3RfTmV3KDApOworICAgIGlmIChyZi5yZWZzID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOwogICAgIHJlc3VsdCA9IHJfb2JqZWN0KCZyZik7CisgICAgUHlfREVDUkVGKHJmLnJlZnMpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTEyMjUsNyArMTM4NSwxMSBAQAogICAgIHJmLnB0ciA9IHN0cjsKICAgICByZi5lbmQgPSBzdHIgKyBsZW47CiAgICAgcmYuZGVwdGggPSAwOworICAgIHJmLnJlZnMgPSBQeUxpc3RfTmV3KDApOworICAgIGlmIChyZi5yZWZzID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOwogICAgIHJlc3VsdCA9IHJfb2JqZWN0KCZyZik7CisgICAgUHlfREVDUkVGKHJmLnJlZnMpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTEyNDQsNyArMTQwOCwxMyBAQAogICAgIHdmLmVycm9yID0gV0ZFUlJfT0s7CiAgICAgd2YuZGVwdGggPSAwOwogICAgIHdmLnZlcnNpb24gPSB2ZXJzaW9uOworICAgIGlmICh2ZXJzaW9uID49IDMpIHsKKyAgICAgICAgaWYgKCh3Zi5yZWZzID0gUHlEaWN0X05ldygpKSA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfSBlbHNlCisgICAgICAgIHdmLnJlZnMgPSBOVUxMOwogICAgIHdfb2JqZWN0KHgsICZ3Zik7CisgICAgUHlfWERFQ1JFRih3Zi5yZWZzKTsKICAgICBpZiAod2Yuc3RyICE9IE5VTEwpIHsKICAgICAgICAgY2hhciAqYmFzZSA9IFB5Qnl0ZXNfQVNfU1RSSU5HKChQeUJ5dGVzT2JqZWN0ICopd2Yuc3RyKTsKICAgICAgICAgaWYgKHdmLnB0ciAtIGJhc2UgPiBQWV9TU0laRV9UX01BWCkgewpAQCAtMTMxNiw2ICsxNDg2LDggQEAKICAgICAgKiBNYWtlIGEgY2FsbCB0byB0aGUgcmVhZCBtZXRob2QsIGJ1dCByZWFkIHplcm8gYnl0ZXMuCiAgICAgICogVGhpcyBpcyB0byBlbnN1cmUgdGhhdCB0aGUgb2JqZWN0IHBhc3NlZCBpbiBhdCBsZWFzdAogICAgICAqIGhhcyBhIHJlYWQgbWV0aG9kIHdoaWNoIHJldHVybnMgYnl0ZXMuCisgICAgICogVGhpcyBjYW4gYmUgcmVtb3ZlZCBpZiB3ZSBndWFyYW50ZWUgZ29vZCBlcnJvciBoYW5kbGluZworICAgICAqIGZvciByX3N0cmluZygpCiAgICAgICovCiAgICAgZGF0YSA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoZiwgJlB5SWRfcmVhZCwgImkiLCAwKTsKICAgICBpZiAoZGF0YSA9PSBOVUxMKQpAQCAtMTMzMSw3ICsxNTAzLDExIEBACiAgICAgICAgIHJmLmZwID0gTlVMTDsKICAgICAgICAgcmYucmVhZGFibGUgPSBmOwogICAgICAgICByZi5jdXJyZW50X2ZpbGVuYW1lID0gTlVMTDsKLSAgICAgICAgcmVzdWx0ID0gcmVhZF9vYmplY3QoJnJmKTsKKyAgICAgICAgaWYgKChyZi5yZWZzID0gUHlMaXN0X05ldygwKSkgIT0gTlVMTCkgeworICAgICAgICAgICAgcmVzdWx0ID0gcmVhZF9vYmplY3QoJnJmKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihyZi5yZWZzKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSBOVUxMOwogICAgIH0KICAgICBQeV9ERUNSRUYoZGF0YSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTEzODgsOCArMTU2NCwxMSBAQAogICAgIHJmLnB0ciA9IHM7CiAgICAgcmYuZW5kID0gcyArIG47CiAgICAgcmYuZGVwdGggPSAwOworICAgIGlmICgocmYucmVmcyA9IFB5TGlzdF9OZXcoMCkpID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOwogICAgIHJlc3VsdCA9IHJlYWRfb2JqZWN0KCZyZik7CiAgICAgUHlCdWZmZXJfUmVsZWFzZSgmcCk7CisgICAgUHlfREVDUkVGKHJmLnJlZnMpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTE0MjksNiArMTYwOCw3IEBACiB2ZXJzaW9uIC0tIGluZGljYXRlcyB0aGUgZm9ybWF0IHRoYXQgdGhlIG1vZHVsZSB1c2VzLiBWZXJzaW9uIDAgaXMgdGhlXG5cCiAgICAgaGlzdG9yaWNhbCBmb3JtYXQsIHZlcnNpb24gMSBzaGFyZXMgaW50ZXJuZWQgc3RyaW5ncyBhbmQgdmVyc2lvbiAyXG5cCiAgICAgdXNlcyBhIGJpbmFyeSBmb3JtYXQgZm9yIGZsb2F0aW5nIHBvaW50IG51bWJlcnMuXG5cCisgICAgVmVyc2lvbiAzIHNoYXJlcyBjb21tb24gb2JqZWN0IHJlZmVyZW5jZXMgKE5ldyBpbiB2ZXJzaW9uIDMuNCkuXG5cCiBcblwKIEZ1bmN0aW9uczpcblwKIFxuXApkaWZmIC0tZ2l0IGEvUHl0aG9uL29wY29kZV90YXJnZXRzLmggYi9QeXRob24vb3Bjb2RlX3RhcmdldHMuaAppbmRleCAyZDZiY2RhLi5mOTBhMTdhIDEwMDY0NAotLS0gYS9QeXRob24vb3Bjb2RlX3RhcmdldHMuaAorKysgYi9QeXRob24vb3Bjb2RlX3RhcmdldHMuaApAQCAtNjgsNyArNjgsNyBAQAogICAgICYmVEFSR0VUX0JJTkFSWV9PUiwKICAgICAmJlRBUkdFVF9JTlBMQUNFX1BPV0VSLAogICAgICYmVEFSR0VUX0dFVF9JVEVSLAotICAgICYmVEFSR0VUX1NUT1JFX0xPQ0FMUywKKyAgICAmJl91bmtub3duX29wY29kZSwKICAgICAmJlRBUkdFVF9QUklOVF9FWFBSLAogICAgICYmVEFSR0VUX0xPQURfQlVJTERfQ0xBU1MsCiAgICAgJiZUQVJHRVRfWUlFTERfRlJPTSwKQEAgLTE0Nyw3ICsxNDcsNyBAQAogICAgICYmVEFSR0VUX0xJU1RfQVBQRU5ELAogICAgICYmVEFSR0VUX1NFVF9BREQsCiAgICAgJiZUQVJHRVRfTUFQX0FERCwKLSAgICAmJl91bmtub3duX29wY29kZSwKKyAgICAmJlRBUkdFVF9MT0FEX0NMQVNTREVSRUYsCiAgICAgJiZfdW5rbm93bl9vcGNvZGUsCiAgICAgJiZfdW5rbm93bl9vcGNvZGUsCiAgICAgJiZfdW5rbm93bl9vcGNvZGUsCmRpZmYgLS1naXQgYS9QeXRob24vcGVlcGhvbGUuYyBiL1B5dGhvbi9wZWVwaG9sZS5jCmluZGV4IDVkNTM2NzcuLmU2ODc3YmIgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9wZWVwaG9sZS5jCisrKyBiL1B5dGhvbi9wZWVwaG9sZS5jCkBAIC0zMjcsMzcgKzMyNyw2IEBACiAgICAgcmV0dXJuIGJsb2NrczsKIH0KIAotLyogSGVscGVyIHRvIHJlcGxhY2UgTE9BRF9OQU1FIE5vbmUvVHJ1ZS9GYWxzZSB3aXRoIExPQURfQ09OU1QKLSAgIFJldHVybnM6IDAgaWYgbm8gY2hhbmdlLCAxIGlmIGNoYW5nZSwgLTEgaWYgZXJyb3IgKi8KLXN0YXRpYyBpbnQKLWxvYWRfZ2xvYmFsKHVuc2lnbmVkIGNoYXIgKmNvZGVzdHIsIFB5X3NzaXplX3QgaSwgY2hhciAqbmFtZSwgUHlPYmplY3QgKmNvbnN0cykKLXsKLSAgICBQeV9zc2l6ZV90IGo7Ci0gICAgUHlPYmplY3QgKm9iajsKLSAgICBpZiAobmFtZSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAoc3RyY21wKG5hbWUsICJOb25lIikgPT0gMCkKLSAgICAgICAgb2JqID0gUHlfTm9uZTsKLSAgICBlbHNlIGlmIChzdHJjbXAobmFtZSwgIlRydWUiKSA9PSAwKQotICAgICAgICBvYmogPSBQeV9UcnVlOwotICAgIGVsc2UgaWYgKHN0cmNtcChuYW1lLCAiRmFsc2UiKSA9PSAwKQotICAgICAgICBvYmogPSBQeV9GYWxzZTsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiAwOwotICAgIGZvciAoaiA9IDA7IGogPCBQeUxpc3RfR0VUX1NJWkUoY29uc3RzKTsgaisrKSB7Ci0gICAgICAgIGlmIChQeUxpc3RfR0VUX0lURU0oY29uc3RzLCBqKSA9PSBvYmopCi0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgaWYgKGogPT0gUHlMaXN0X0dFVF9TSVpFKGNvbnN0cykpIHsKLSAgICAgICAgaWYgKFB5TGlzdF9BcHBlbmQoY29uc3RzLCBvYmopIDwgMCkKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gICAgYXNzZXJ0KFB5TGlzdF9HRVRfSVRFTShjb25zdHMsIGopID09IG9iaik7Ci0gICAgY29kZXN0cltpXSA9IExPQURfQ09OU1Q7Ci0gICAgU0VUQVJHKGNvZGVzdHIsIGksIGopOwotICAgIHJldHVybiAxOwotfQotCiAvKiBQZXJmb3JtIGJhc2ljIHBlZXBob2xlIG9wdGltaXphdGlvbnMgdG8gY29tcG9uZW50cyBvZiBhIGNvZGUgb2JqZWN0LgogICAgVGhlIGNvbnN0cyBvYmplY3Qgc2hvdWxkIHN0aWxsIGJlIGluIGxpc3QgZm9ybSB0byBhbGxvdyBuZXcgY29uc3RhbnRzCiAgICB0byBiZSBhcHBlbmRlZC4KQEAgLTM5Miw3ICszNjEsNiBAQAogICAgIFB5X3NzaXplX3QgY29uc3Rfc3RhY2tfc2l6ZSA9IDA7CiAgICAgaW50IGluX2NvbnN0cyA9IDA7ICAvKiB3aGV0aGVyIHdlIGFyZSBpbiBhIExPQURfQ09OU1Qgc2VxdWVuY2UgKi8KICAgICB1bnNpZ25lZCBpbnQgKmJsb2NrcyA9IE5VTEw7Ci0gICAgY2hhciAqbmFtZTsKIAogICAgIC8qIEJhaWwgb3V0IGlmIGFuIGV4Y2VwdGlvbiBpcyBzZXQgKi8KICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKQEAgLTQ3NSwyMCArNDQzLDYgQEAKICAgICAgICAgICAgICAgICBjb2Rlc3RyW2krM10gPSBOT1A7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgICAgICAvKiBSZXBsYWNlIExPQURfR0xPQkFML0xPQURfTkFNRSBOb25lL1RydWUvRmFsc2UKLSAgICAgICAgICAgICAgICAgICB3aXRoIExPQURfQ09OU1QgTm9uZS9UcnVlL0ZhbHNlICovCi0gICAgICAgICAgICBjYXNlIExPQURfTkFNRToKLSAgICAgICAgICAgIGNhc2UgTE9BRF9HTE9CQUw6Ci0gICAgICAgICAgICAgICAgaiA9IEdFVEFSRyhjb2Rlc3RyLCBpKTsKLSAgICAgICAgICAgICAgICBuYW1lID0gX1B5VW5pY29kZV9Bc1N0cmluZyhQeVR1cGxlX0dFVF9JVEVNKG5hbWVzLCBqKSk7Ci0gICAgICAgICAgICAgICAgaCA9IGxvYWRfZ2xvYmFsKGNvZGVzdHIsIGksIG5hbWUsIGNvbnN0cyk7Ci0gICAgICAgICAgICAgICAgaWYgKGggPCAwKQotICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXRFcnJvcjsKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChoID09IDApCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIENPTlNUX1NUQUNLX1BVU0hfT1AoaSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KICAgICAgICAgICAgICAgICAvKiBTa2lwIG92ZXIgTE9BRF9DT05TVCB0cnVlY29uc3QKICAgICAgICAgICAgICAgICAgICBQT1BfSlVNUF9JRl9GQUxTRSB4eC4gVGhpcyBpbXByb3ZlcwogICAgICAgICAgICAgICAgICAgICJ3aGlsZSAxIiBwZXJmb3JtYW5jZS4gKi8KZGlmZiAtLWdpdCBhL1B5dGhvbi9weXN0YXRlLmMgYi9QeXRob24vcHlzdGF0ZS5jCmluZGV4IGNmZDYxZDAuLmE4ZWQxMzggMTAwNjQ0Ci0tLSBhL1B5dGhvbi9weXN0YXRlLmMKKysrIGIvUHl0aG9uL3B5c3RhdGUuYwpAQCAtMjEzLDcgKzIxMywxMCBAQAogICAgICAgICAgICAgX1B5VGhyZWFkU3RhdGVfSW5pdCh0c3RhdGUpOwogCiAgICAgICAgIEhFQURfTE9DSygpOworICAgICAgICB0c3RhdGUtPnByZXYgPSBOVUxMOwogICAgICAgICB0c3RhdGUtPm5leHQgPSBpbnRlcnAtPnRzdGF0ZV9oZWFkOworICAgICAgICBpZiAodHN0YXRlLT5uZXh0KQorICAgICAgICAgICAgdHN0YXRlLT5uZXh0LT5wcmV2ID0gdHN0YXRlOwogICAgICAgICBpbnRlcnAtPnRzdGF0ZV9oZWFkID0gdHN0YXRlOwogICAgICAgICBIRUFEX1VOTE9DSygpOwogICAgIH0KQEAgLTM0OSwzNSArMzUyLDE4IEBACiB0c3RhdGVfZGVsZXRlX2NvbW1vbihQeVRocmVhZFN0YXRlICp0c3RhdGUpCiB7CiAgICAgUHlJbnRlcnByZXRlclN0YXRlICppbnRlcnA7Ci0gICAgUHlUaHJlYWRTdGF0ZSAqKnA7Ci0gICAgUHlUaHJlYWRTdGF0ZSAqcHJldl9wID0gTlVMTDsKICAgICBpZiAodHN0YXRlID09IE5VTEwpCiAgICAgICAgIFB5X0ZhdGFsRXJyb3IoIlB5VGhyZWFkU3RhdGVfRGVsZXRlOiBOVUxMIHRzdGF0ZSIpOwogICAgIGludGVycCA9IHRzdGF0ZS0+aW50ZXJwOwogICAgIGlmIChpbnRlcnAgPT0gTlVMTCkKICAgICAgICAgUHlfRmF0YWxFcnJvcigiUHlUaHJlYWRTdGF0ZV9EZWxldGU6IE5VTEwgaW50ZXJwIik7CiAgICAgSEVBRF9MT0NLKCk7Ci0gICAgZm9yIChwID0gJmludGVycC0+dHN0YXRlX2hlYWQ7IDsgcCA9ICYoKnApLT5uZXh0KSB7Ci0gICAgICAgIGlmICgqcCA9PSBOVUxMKQotICAgICAgICAgICAgUHlfRmF0YWxFcnJvcigKLSAgICAgICAgICAgICAgICAiUHlUaHJlYWRTdGF0ZV9EZWxldGU6IGludmFsaWQgdHN0YXRlIik7Ci0gICAgICAgIGlmICgqcCA9PSB0c3RhdGUpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgLyogU2FuaXR5IGNoZWNrLiAgVGhlc2Ugc3RhdGVzIHNob3VsZCBuZXZlciBoYXBwZW4gYnV0IGlmCi0gICAgICAgICAqIHRoZXkgZG8gd2UgbXVzdCBhYm9ydC4gIE90aGVyd2lzZSB3ZSdsbCBlbmQgdXAgc3Bpbm5pbmcgaW4KLSAgICAgICAgICogaW4gYSB0aWdodCBsb29wIHdpdGggdGhlIGxvY2sgaGVsZC4gIEEgc2ltaWxhciBjaGVjayBpcyBkb25lCi0gICAgICAgICAqIGluIHRocmVhZC5jIGZpbmRfa2V5KCkuICAqLwotICAgICAgICBpZiAoKnAgPT0gcHJldl9wKQotICAgICAgICAgICAgUHlfRmF0YWxFcnJvcigKLSAgICAgICAgICAgICAgICAiUHlUaHJlYWRTdGF0ZV9EZWxldGU6IHNtYWxsIGNpcmN1bGFyIGxpc3QoISkiCi0gICAgICAgICAgICAgICAgIiBhbmQgdHN0YXRlIG5vdCBmb3VuZC4iKTsKLSAgICAgICAgcHJldl9wID0gKnA7Ci0gICAgICAgIGlmICgoKnApLT5uZXh0ID09IGludGVycC0+dHN0YXRlX2hlYWQpCi0gICAgICAgICAgICBQeV9GYXRhbEVycm9yKAotICAgICAgICAgICAgICAgICJQeVRocmVhZFN0YXRlX0RlbGV0ZTogY2lyY3VsYXIgbGlzdCghKSBhbmQiCi0gICAgICAgICAgICAgICAgIiB0c3RhdGUgbm90IGZvdW5kLiIpOwotICAgIH0KLSAgICAqcCA9IHRzdGF0ZS0+bmV4dDsKKyAgICBpZiAodHN0YXRlLT5wcmV2KQorICAgICAgICB0c3RhdGUtPnByZXYtPm5leHQgPSB0c3RhdGUtPm5leHQ7CisgICAgZWxzZQorICAgICAgICBpbnRlcnAtPnRzdGF0ZV9oZWFkID0gdHN0YXRlLT5uZXh0OworICAgIGlmICh0c3RhdGUtPm5leHQpCisgICAgICAgIHRzdGF0ZS0+bmV4dC0+cHJldiA9IHRzdGF0ZS0+cHJldjsKICAgICBIRUFEX1VOTE9DSygpOwogICAgIGZyZWUodHN0YXRlKTsKIH0KQEAgLTQxNCw2ICs0MDAsNDMgQEAKICNlbmRpZiAvKiBXSVRIX1RIUkVBRCAqLwogCiAKKy8qCisgKiBEZWxldGUgYWxsIHRocmVhZCBzdGF0ZXMgZXhjZXB0IHRoZSBvbmUgcGFzc2VkIGFzIGFyZ3VtZW50LgorICogTm90ZSB0aGF0LCBpZiB0aGVyZSBpcyBhIGN1cnJlbnQgdGhyZWFkIHN0YXRlLCBpdCAqbXVzdCogYmUgdGhlIG9uZQorICogcGFzc2VkIGFzIGFyZ3VtZW50LiAgQWxzbywgdGhpcyB3b24ndCB0b3VjaCBhbnkgb3RoZXIgaW50ZXJwcmV0ZXJzCisgKiB0aGFuIHRoZSBjdXJyZW50IG9uZSwgc2luY2Ugd2UgZG9uJ3Qga25vdyB3aGljaCB0aHJlYWQgc3RhdGUgc2hvdWxkCisgKiBiZSBrZXB0IGluIHRob3NlIG90aGVyIGludGVycHJldGVyZXMuCisgKi8KK3ZvaWQKK19QeVRocmVhZFN0YXRlX0RlbGV0ZUV4Y2VwdChQeVRocmVhZFN0YXRlICp0c3RhdGUpCit7CisgICAgUHlJbnRlcnByZXRlclN0YXRlICppbnRlcnAgPSB0c3RhdGUtPmludGVycDsKKyAgICBQeVRocmVhZFN0YXRlICpwLCAqbmV4dCwgKmdhcmJhZ2U7CisgICAgSEVBRF9MT0NLKCk7CisgICAgLyogUmVtb3ZlIGFsbCB0aHJlYWQgc3RhdGVzLCBleGNlcHQgdHN0YXRlLCBmcm9tIHRoZSBsaW5rZWQgbGlzdCBvZgorICAgICAgIHRocmVhZCBzdGF0ZXMuICBUaGlzIHdpbGwgYWxsb3cgY2FsbGluZyBQeVRocmVhZFN0YXRlX0NsZWFyKCkKKyAgICAgICB3aXRob3V0IGhvbGRpbmcgdGhlIGxvY2suICovCisgICAgZ2FyYmFnZSA9IGludGVycC0+dHN0YXRlX2hlYWQ7CisgICAgaWYgKGdhcmJhZ2UgPT0gdHN0YXRlKQorICAgICAgICBnYXJiYWdlID0gdHN0YXRlLT5uZXh0OworICAgIGlmICh0c3RhdGUtPnByZXYpCisgICAgICAgIHRzdGF0ZS0+cHJldi0+bmV4dCA9IHRzdGF0ZS0+bmV4dDsKKyAgICBpZiAodHN0YXRlLT5uZXh0KQorICAgICAgICB0c3RhdGUtPm5leHQtPnByZXYgPSB0c3RhdGUtPnByZXY7CisgICAgdHN0YXRlLT5wcmV2ID0gdHN0YXRlLT5uZXh0ID0gTlVMTDsKKyAgICBpbnRlcnAtPnRzdGF0ZV9oZWFkID0gdHN0YXRlOworICAgIEhFQURfVU5MT0NLKCk7CisgICAgLyogQ2xlYXIgYW5kIGRlYWxsb2NhdGUgYWxsIHN0YWxlIHRocmVhZCBzdGF0ZXMuICBFdmVuIGlmIHRoaXMKKyAgICAgICBleGVjdXRlcyBQeXRob24gY29kZSwgd2Ugc2hvdWxkIGJlIHNhZmUgc2luY2UgaXQgZXhlY3V0ZXMKKyAgICAgICBpbiB0aGUgY3VycmVudCB0aHJlYWQsIG5vdCBvbmUgb2YgdGhlIHN0YWxlIHRocmVhZHMuICovCisgICAgZm9yIChwID0gZ2FyYmFnZTsgcDsgcCA9IG5leHQpIHsKKyAgICAgICAgbmV4dCA9IHAtPm5leHQ7CisgICAgICAgIFB5VGhyZWFkU3RhdGVfQ2xlYXIocCk7CisgICAgICAgIGZyZWUocCk7CisgICAgfQorfQorCisKIFB5VGhyZWFkU3RhdGUgKgogUHlUaHJlYWRTdGF0ZV9HZXQodm9pZCkKIHsKQEAgLTY5Nyw2ICs3MjAsMTUgQEAKICAgICByZXR1cm4gKFB5VGhyZWFkU3RhdGUgKilQeVRocmVhZF9nZXRfa2V5X3ZhbHVlKGF1dG9UTFNrZXkpOwogfQogCitpbnQKK1B5R0lMU3RhdGVfQ2hlY2sodm9pZCkKK3sKKyAgICAvKiBjYW4ndCB1c2UgUHlUaHJlYWRTdGF0ZV9HZXQoKSBzaW5jZSBpdCB3aWxsIGFzc2VydCB0aGF0IGl0IGhhcyB0aGUgR0lMICovCisgICAgUHlUaHJlYWRTdGF0ZSAqdHN0YXRlID0gKFB5VGhyZWFkU3RhdGUqKV9QeV9hdG9taWNfbG9hZF9yZWxheGVkKAorICAgICAgICAmX1B5VGhyZWFkU3RhdGVfQ3VycmVudCk7CisgICAgcmV0dXJuIHRzdGF0ZSAmJiAodHN0YXRlID09IFB5R0lMU3RhdGVfR2V0VGhpc1RocmVhZFN0YXRlKCkpOworfQorCiBQeUdJTFN0YXRlX1NUQVRFCiBQeUdJTFN0YXRlX0Vuc3VyZSh2b2lkKQogewpkaWZmIC0tZ2l0IGEvUHl0aG9uL3B5dGhvbnJ1bi5jIGIvUHl0aG9uL3B5dGhvbnJ1bi5jCmluZGV4IDllZjY1M2IuLjAyYTQzMjkgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9weXRob25ydW4uYworKysgYi9QeXRob24vcHl0aG9ucnVuLmMKQEAgLTM1LDEyICszNSwzMCBAQAogI2RlZmluZSBQQVRIX01BWCBNQVhQQVRITEVOCiAjZW5kaWYKIAorI2lmZGVmIFB5X1JFRl9ERUJVRworc3RhdGljCit2b2lkIF9wcmludF90b3RhbF9yZWZzKHZvaWQpIHsKKyAgICBQeU9iamVjdCAqeG9wdGlvbnMsICprZXksICp2YWx1ZTsKKyAgICB4b3B0aW9ucyA9IFB5U3lzX0dldFhPcHRpb25zKCk7CisgICAgaWYgKHhvcHRpb25zID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBrZXkgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygic2hvd3JlZmNvdW50Iik7CisgICAgaWYgKGtleSA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgdmFsdWUgPSBQeURpY3RfR2V0SXRlbSh4b3B0aW9ucywga2V5KTsKKyAgICBQeV9ERUNSRUYoa2V5KTsKKyAgICBpZiAodmFsdWUgPT0gUHlfVHJ1ZSkKKyAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgIlslIiBQWV9GT1JNQVRfU0laRV9UICJkIHJlZnMsICIKKyAgICAgICAgICAgICAgICAiJSIgUFlfRk9STUFUX1NJWkVfVCAiZCBibG9ja3NdXG4iLAorICAgICAgICAgICAgICAgIF9QeV9HZXRSZWZUb3RhbCgpLCBfUHlfR2V0QWxsb2NhdGVkQmxvY2tzKCkpOworfQorI2VuZGlmCisKICNpZm5kZWYgUHlfUkVGX0RFQlVHCiAjZGVmaW5lIFBSSU5UX1RPVEFMX1JFRlMoKQogI2Vsc2UgLyogUHlfUkVGX0RFQlVHICovCi0jZGVmaW5lIFBSSU5UX1RPVEFMX1JFRlMoKSBmcHJpbnRmKHN0ZGVyciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgIlslIiBQWV9GT1JNQVRfU0laRV9UICJkIHJlZnNdXG4iLCAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgX1B5X0dldFJlZlRvdGFsKCkpCisjZGVmaW5lIFBSSU5UX1RPVEFMX1JFRlMoKSBfcHJpbnRfdG90YWxfcmVmcygpCiAjZW5kaWYKIAogI2lmZGVmIF9fY3BsdXNwbHVzCkBAIC01MjYsMTAgKzU0NCw2IEBACiAgICAgd2hpbGUgKFB5R0NfQ29sbGVjdCgpID4gMCkKICAgICAgICAgLyogbm90aGluZyAqLzsKICNlbmRpZgotICAgIC8qIFdlIHJ1biB0aGlzIHdoaWxlIG1vc3QgaW50ZXJwcmV0ZXIgc3RhdGUgaXMgc3RpbGwgYWxpdmUsIHNvIHRoYXQKLSAgICAgICBkZWJ1ZyBpbmZvcm1hdGlvbiBjYW4gYmUgcHJpbnRlZCBvdXQgKi8KLSAgICBfUHlHQ19GaW5pKCk7Ci0KICAgICAvKiBEZXN0cm95IGFsbCBtb2R1bGVzICovCiAgICAgUHlJbXBvcnRfQ2xlYW51cCgpOwogCkBAIC02MTAsNiArNjI0LDcgQEAKICAgICBQeUZsb2F0X0ZpbmkoKTsKICAgICBQeURpY3RfRmluaSgpOwogICAgIFB5U2xpY2VfRmluaSgpOworICAgIF9QeUdDX0ZpbmkoKTsKIAogICAgIC8qIENsZWFudXAgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiAqLwogICAgIF9QeVVuaWNvZGVfRmluaSgpOwpAQCAtODI3LDcgKzg0Miw3IEBACiBzdGF0aWMgdm9pZAogaW5pdG1haW4oUHlJbnRlcnByZXRlclN0YXRlICppbnRlcnApCiB7Ci0gICAgUHlPYmplY3QgKm0sICpkOworICAgIFB5T2JqZWN0ICptLCAqZCwgKmxvYWRlcjsKICAgICBtID0gUHlJbXBvcnRfQWRkTW9kdWxlKCJfX21haW5fXyIpOwogICAgIGlmIChtID09IE5VTEwpCiAgICAgICAgIFB5X0ZhdGFsRXJyb3IoImNhbid0IGNyZWF0ZSBfX21haW5fXyBtb2R1bGUiKTsKQEAgLTg0OCw3ICs4NjMsOCBAQAogICAgICAqIGJlIHNldCBpZiBfX21haW5fXyBnZXRzIGZ1cnRoZXIgaW5pdGlhbGl6ZWQgbGF0ZXIgaW4gdGhlIHN0YXJ0dXAKICAgICAgKiBwcm9jZXNzLgogICAgICAqLwotICAgIGlmIChQeURpY3RfR2V0SXRlbVN0cmluZyhkLCAiX19sb2FkZXJfXyIpID09IE5VTEwpIHsKKyAgICBsb2FkZXIgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhkLCAiX19sb2FkZXJfXyIpOworICAgIGlmIChsb2FkZXIgPT0gTlVMTCB8fCBsb2FkZXIgPT0gUHlfTm9uZSkgewogICAgICAgICBQeU9iamVjdCAqbG9hZGVyID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhpbnRlcnAtPmltcG9ydGxpYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJ1aWx0aW5JbXBvcnRlciIpOwogICAgICAgICBpZiAobG9hZGVyID09IE5VTEwpIHsKZGlmZiAtLWdpdCBhL1B5dGhvbi9yYW5kb20uYyBiL1B5dGhvbi9yYW5kb20uYwppbmRleCA1MzUxOGMyLi4xYWQ0YzNkIDEwMDY0NAotLS0gYS9QeXRob24vcmFuZG9tLmMKKysrIGIvUHl0aG9uL3JhbmRvbS5jCkBAIC0xMiwxMyArMTIsNiBAQAogI2VuZGlmCiAKICNpZmRlZiBNU19XSU5ET1dTCi10eXBlZGVmIEJPT0wgKFdJTkFQSSAqQ1JZUFRBQ1FVSVJFQ09OVEVYVEEpKEhDUllQVFBST1YgKnBoUHJvdixcCi0gICAgICAgICAgICAgIExQQ1NUUiBwc3pDb250YWluZXIsIExQQ1NUUiBwc3pQcm92aWRlciwgRFdPUkQgZHdQcm92VHlwZSxcCi0gICAgICAgICAgICAgIERXT1JEIGR3RmxhZ3MgKTsKLXR5cGVkZWYgQk9PTCAoV0lOQVBJICpDUllQVEdFTlJBTkRPTSkoSENSWVBUUFJPViBoUHJvdiwgRFdPUkQgZHdMZW4sXAotICAgICAgICAgICAgICBCWVRFICpwYkJ1ZmZlciApOwotCi1zdGF0aWMgQ1JZUFRHRU5SQU5ET00gcENyeXB0R2VuUmFuZG9tID0gTlVMTDsKIC8qIFRoaXMgaGFuZGxlIGlzIG5ldmVyIGV4cGxpY2l0bHkgcmVsZWFzZWQuIEluc3RlYWQsIHRoZSBvcGVyYXRpbmcKICAgIHN5c3RlbSB3aWxsIHJlbGVhc2UgaXQgd2hlbiB0aGUgcHJvY2VzcyB0ZXJtaW5hdGVzLiAqLwogc3RhdGljIEhDUllQVFBST1YgaENyeXB0UHJvdiA9IDA7CkBAIC0yNiwyOSArMTksOSBAQAogc3RhdGljIGludAogd2luMzJfdXJhbmRvbV9pbml0KGludCByYWlzZSkKIHsKLSAgICBISU5TVEFOQ0UgaEFkdkFQSTMyID0gTlVMTDsKLSAgICBDUllQVEFDUVVJUkVDT05URVhUQSBwQ3J5cHRBY3F1aXJlQ29udGV4dCA9IE5VTEw7Ci0KLSAgICAvKiBPYnRhaW4gaGFuZGxlIHRvIHRoZSBETEwgY29udGFpbmluZyBDcnlwdG9BUEkuIFRoaXMgc2hvdWxkIG5vdCBmYWlsLiAqLwotICAgIGhBZHZBUEkzMiA9IEdldE1vZHVsZUhhbmRsZSgiYWR2YXBpMzIuZGxsIik7Ci0gICAgaWYoaEFkdkFQSTMyID09IE5VTEwpCi0gICAgICAgIGdvdG8gZXJyb3I7Ci0KLSAgICAvKiBPYnRhaW4gcG9pbnRlcnMgdG8gdGhlIENyeXB0b0FQSSBmdW5jdGlvbnMuIFRoaXMgd2lsbCBmYWlsIG9uIHNvbWUgZWFybHkKLSAgICAgICB2ZXJzaW9ucyBvZiBXaW45NS4gKi8KLSAgICBwQ3J5cHRBY3F1aXJlQ29udGV4dCA9IChDUllQVEFDUVVJUkVDT05URVhUQSlHZXRQcm9jQWRkcmVzcygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoQWR2QVBJMzIsICJDcnlwdEFjcXVpcmVDb250ZXh0QSIpOwotICAgIGlmIChwQ3J5cHRBY3F1aXJlQ29udGV4dCA9PSBOVUxMKQotICAgICAgICBnb3RvIGVycm9yOwotCi0gICAgcENyeXB0R2VuUmFuZG9tID0gKENSWVBUR0VOUkFORE9NKUdldFByb2NBZGRyZXNzKGhBZHZBUEkzMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNyeXB0R2VuUmFuZG9tIik7Ci0gICAgaWYgKHBDcnlwdEdlblJhbmRvbSA9PSBOVUxMKQotICAgICAgICBnb3RvIGVycm9yOwotCiAgICAgLyogQWNxdWlyZSBjb250ZXh0ICovCi0gICAgaWYgKCEgcENyeXB0QWNxdWlyZUNvbnRleHQoJmhDcnlwdFByb3YsIE5VTEwsIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPVl9SU0FfRlVMTCwgQ1JZUFRfVkVSSUZZQ09OVEVYVCkpCisgICAgaWYgKCFDcnlwdEFjcXVpcmVDb250ZXh0KCZoQ3J5cHRQcm92LCBOVUxMLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9WX1JTQV9GVUxMLCBDUllQVF9WRVJJRllDT05URVhUKSkKICAgICAgICAgZ290byBlcnJvcjsKIAogICAgIHJldHVybiAwOwpAQCAtNzcsNyArNTAsNyBAQAogICAgIHdoaWxlIChzaXplID4gMCkKICAgICB7CiAgICAgICAgIGNodW5rID0gc2l6ZSA+IElOVF9NQVggPyBJTlRfTUFYIDogc2l6ZTsKLSAgICAgICAgaWYgKCFwQ3J5cHRHZW5SYW5kb20oaENyeXB0UHJvdiwgY2h1bmssIGJ1ZmZlcikpCisgICAgICAgIGlmICghQ3J5cHRHZW5SYW5kb20oaENyeXB0UHJvdiwgY2h1bmssIGJ1ZmZlcikpCiAgICAgICAgIHsKICAgICAgICAgICAgIC8qIENyeXB0R2VuUmFuZG9tKCkgZmFpbGVkICovCiAgICAgICAgICAgICBpZiAocmFpc2UpCmRpZmYgLS1naXQgYS9QeXRob24vc3ltdGFibGUuYyBiL1B5dGhvbi9zeW10YWJsZS5jCmluZGV4IDQ4NDk1ZjcuLjc1OGFlZmIgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9zeW10YWJsZS5jCisrKyBiL1B5dGhvbi9zeW10YWJsZS5jCkBAIC01Niw2ICs1Niw4IEBACiAgICAgaWYgKHN0ZS0+c3RlX2NoaWxkcmVuID09IE5VTEwpCiAgICAgICAgIGdvdG8gZmFpbDsKIAorICAgIHN0ZS0+c3RlX2RpcmVjdGl2ZXMgPSBOVUxMOworCiAgICAgc3RlLT5zdGVfdHlwZSA9IGJsb2NrOwogICAgIHN0ZS0+c3RlX3Vub3B0aW1pemVkID0gMDsKICAgICBzdGUtPnN0ZV9uZXN0ZWQgPSAwOwpAQCAtNzUsNiArNzcsNyBAQAogICAgIHN0ZS0+c3RlX2NoaWxkX2ZyZWUgPSAwOwogICAgIHN0ZS0+c3RlX2dlbmVyYXRvciA9IDA7CiAgICAgc3RlLT5zdGVfcmV0dXJuc192YWx1ZSA9IDA7CisgICAgc3RlLT5zdGVfbmVlZHNfY2xhc3NfY2xvc3VyZSA9IDA7CiAKICAgICBpZiAoUHlEaWN0X1NldEl0ZW0oc3QtPnN0X2Jsb2Nrcywgc3RlLT5zdGVfaWQsIChQeU9iamVjdCAqKXN0ZSkgPCAwKQogICAgICAgICBnb3RvIGZhaWw7CkBAIC0xMDIsNiArMTA1LDcgQEAKICAgICBQeV9YREVDUkVGKHN0ZS0+c3RlX3N5bWJvbHMpOwogICAgIFB5X1hERUNSRUYoc3RlLT5zdGVfdmFybmFtZXMpOwogICAgIFB5X1hERUNSRUYoc3RlLT5zdGVfY2hpbGRyZW4pOworICAgIFB5X1hERUNSRUYoc3RlLT5zdGVfZGlyZWN0aXZlcyk7CiAgICAgUHlPYmplY3RfRGVsKHN0ZSk7CiB9CiAKQEAgLTE4OCw3ICsxOTIsNyBAQAogCiBzdGF0aWMgaWRlbnRpZmllciB0b3AgPSBOVUxMLCBsYW1iZGEgPSBOVUxMLCBnZW5leHByID0gTlVMTCwKICAgICBsaXN0Y29tcCA9IE5VTEwsIHNldGNvbXAgPSBOVUxMLCBkaWN0Y29tcCA9IE5VTEwsCi0gICAgX19jbGFzc19fID0gTlVMTCwgX19sb2NhbHNfXyA9IE5VTEw7CisgICAgX19jbGFzc19fID0gTlVMTDsKIAogI2RlZmluZSBHRVRfSURFTlRJRklFUihWQVIpIFwKICAgICAoKFZBUikgPyAoVkFSKSA6ICgoVkFSKSA9IFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKCMgVkFSKSkpCkBAIC0zNDIsNiArMzQ2LDI0IEBACiAgICAgcmV0dXJuIChQeUxvbmdfQVNfTE9ORyh2KSA+PiBTQ09QRV9PRkZTRVQpICYgU0NPUEVfTUFTSzsKIH0KIAorc3RhdGljIGludAorZXJyb3JfYXRfZGlyZWN0aXZlKFB5U1RFbnRyeU9iamVjdCAqc3RlLCBQeU9iamVjdCAqbmFtZSkKK3sKKyAgICBQeV9zc2l6ZV90IGk7CisgICAgUHlPYmplY3QgKmRhdGE7CisgICAgYXNzZXJ0KHN0ZS0+c3RlX2RpcmVjdGl2ZXMpOworICAgIGZvciAoaSA9IDA7IDsgaSsrKSB7CisgICAgICAgIGRhdGEgPSBQeUxpc3RfR0VUX0lURU0oc3RlLT5zdGVfZGlyZWN0aXZlcywgaSk7CisgICAgICAgIGFzc2VydChQeVR1cGxlX0NoZWNrRXhhY3QoZGF0YSkpOworICAgICAgICBpZiAoUHlUdXBsZV9HRVRfSVRFTShkYXRhLCAwKSA9PSBuYW1lKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIFB5RXJyX1N5bnRheExvY2F0aW9uRXgoc3RlLT5zdGVfdGFibGUtPnN0X2ZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlMb25nX0FzTG9uZyhQeVR1cGxlX0dFVF9JVEVNKGRhdGEsIDEpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5TG9uZ19Bc0xvbmcoUHlUdXBsZV9HRVRfSVRFTShkYXRhLCAyKSkpOworICAgIHJldHVybiAwOworfQorCiAKIC8qIEFuYWx5emUgcmF3IHN5bWJvbCBpbmZvcm1hdGlvbiB0byBkZXRlcm1pbmUgc2NvcGUgb2YgZWFjaCBuYW1lLgogCkBAIC00MTYsMTYgKzQzOCwxMyBAQAogICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1N5bnRheEVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUgJyVVJyBpcyBwYXJhbWV0ZXIgYW5kIGdsb2JhbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lKTsKLSAgICAgICAgICAgIFB5RXJyX1N5bnRheExvY2F0aW9uRXgoc3RlLT5zdGVfdGFibGUtPnN0X2ZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGUtPnN0ZV9saW5lbm8sIHN0ZS0+c3RlX2NvbF9vZmZzZXQpOwotCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBlcnJvcl9hdF9kaXJlY3RpdmUoc3RlLCBuYW1lKTsKICAgICAgICAgfQogICAgICAgICBpZiAoZmxhZ3MgJiBERUZfTk9OTE9DQUwpIHsKICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19TeW50YXhFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSAnJVUnIGlzIG5vbmxvY2FsIGFuZCBnbG9iYWwiLAogICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUpOwotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gZXJyb3JfYXRfZGlyZWN0aXZlKHN0ZSwgbmFtZSk7CiAgICAgICAgIH0KICAgICAgICAgU0VUX1NDT1BFKHNjb3BlcywgbmFtZSwgR0xPQkFMX0VYUExJQ0lUKTsKICAgICAgICAgaWYgKFB5U2V0X0FkZChnbG9iYWwsIG5hbWUpIDwgMCkKQEAgLTQzOSwxOSArNDU4LDE5IEBACiAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfU3ludGF4RXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUgJyVVJyBpcyBwYXJhbWV0ZXIgYW5kIG5vbmxvY2FsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lKTsKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGVycm9yX2F0X2RpcmVjdGl2ZShzdGUsIG5hbWUpOwogICAgICAgICB9CiAgICAgICAgIGlmICghYm91bmQpIHsKICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19TeW50YXhFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAibm9ubG9jYWwgZGVjbGFyYXRpb24gbm90IGFsbG93ZWQgYXQgbW9kdWxlIGxldmVsIik7Ci0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBlcnJvcl9hdF9kaXJlY3RpdmUoc3RlLCBuYW1lKTsKICAgICAgICAgfQogICAgICAgICBpZiAoIVB5U2V0X0NvbnRhaW5zKGJvdW5kLCBuYW1lKSkgewogICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1N5bnRheEVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICJubyBiaW5kaW5nIGZvciBub25sb2NhbCAnJVUnIGZvdW5kIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lKTsKIAotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gZXJyb3JfYXRfZGlyZWN0aXZlKHN0ZSwgbmFtZSk7CiAgICAgICAgIH0KICAgICAgICAgU0VUX1NDT1BFKHNjb3BlcywgbmFtZSwgRlJFRSk7CiAgICAgICAgIHN0ZS0+c3RlX2ZyZWUgPSAxOwpAQCAtNDk2LDEzICs1MTUsMTAgQEAKIAogICAgTm90ZSB0aGF0IHRoZSBjdXJyZW50IGJsb2NrJ3MgZnJlZSB2YXJpYWJsZXMgYXJlIGluY2x1ZGVkIGluIGZyZWUuCiAgICBUaGF0J3Mgc2FmZSBiZWNhdXNlIG5vIG5hbWUgY2FuIGJlIGZyZWUgYW5kIGxvY2FsIGluIHRoZSBzYW1lIHNjb3BlLgotCi0gICBUaGUgJ3Jlc3RyaWN0ZWQnIGFyZ3VtZW50IG1heSBiZSBzZXQgdG8gYSBzdHJpbmcgdG8gcmVzdHJpY3QgdGhlIGFuYWx5c2lzCi0gICB0byB0aGUgb25lIHZhcmlhYmxlIHdob3NlIG5hbWUgZXF1YWxzIHRoYXQgc3RyaW5nIChlLmcuICJfX2NsYXNzX18iKS4KICovCiAKIHN0YXRpYyBpbnQKLWFuYWx5emVfY2VsbHMoUHlPYmplY3QgKnNjb3BlcywgUHlPYmplY3QgKmZyZWUsIGNvbnN0IGNoYXIgKnJlc3RyaWN0ZWQpCithbmFseXplX2NlbGxzKFB5T2JqZWN0ICpzY29wZXMsIFB5T2JqZWN0ICpmcmVlKQogewogICAgIFB5T2JqZWN0ICpuYW1lLCAqdiwgKnZfY2VsbDsKICAgICBpbnQgc3VjY2VzcyA9IDA7CkBAIC01MTksOSArNTM1LDYgQEAKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoIVB5U2V0X0NvbnRhaW5zKGZyZWUsIG5hbWUpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChyZXN0cmljdGVkICE9IE5VTEwgJiYKLSAgICAgICAgICAgIFB5VW5pY29kZV9Db21wYXJlV2l0aEFTQ0lJU3RyaW5nKG5hbWUsIHJlc3RyaWN0ZWQpKQotICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIC8qIFJlcGxhY2UgTE9DQUwgd2l0aCBDRUxMIGZvciB0aGlzIG5hbWUsIGFuZCByZW1vdmUKICAgICAgICAgICAgZnJvbSBmcmVlLiBJdCBpcyBzYWZlIHRvIHJlcGxhY2UgdGhlIHZhbHVlIG9mIG5hbWUKICAgICAgICAgICAgaW4gdGhlIGRpY3QsIGJlY2F1c2UgaXQgd2lsbCBub3QgY2F1c2UgYSByZXNpemUuCkBAIC01MzcsNiArNTUwLDIwIEBACiAgICAgcmV0dXJuIHN1Y2Nlc3M7CiB9CiAKK3N0YXRpYyBpbnQKK2Ryb3BfY2xhc3NfZnJlZShQeVNURW50cnlPYmplY3QgKnN0ZSwgUHlPYmplY3QgKmZyZWUpCit7CisgICAgaW50IHJlczsKKyAgICBpZiAoIUdFVF9JREVOVElGSUVSKF9fY2xhc3NfXykpCisgICAgICAgIHJldHVybiAwOworICAgIHJlcyA9IFB5U2V0X0Rpc2NhcmQoZnJlZSwgX19jbGFzc19fKTsKKyAgICBpZiAocmVzIDwgMCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKHJlcykKKyAgICAgICAgc3RlLT5zdGVfbmVlZHNfY2xhc3NfY2xvc3VyZSA9IDE7CisgICAgcmV0dXJuIDE7Cit9CisKIC8qIENoZWNrIGZvciBpbGxlZ2FsIHN0YXRlbWVudHMgaW4gdW5vcHRpbWl6ZWQgbmFtZXNwYWNlcyAqLwogc3RhdGljIGludAogY2hlY2tfdW5vcHRpbWl6ZWQoY29uc3QgUHlTVEVudHJ5T2JqZWN0KiBzdGUpIHsKQEAgLTc2Nyw3ICs3OTQsNiBAQAogICAgICAgICAvKiBTcGVjaWFsLWNhc2UgX19jbGFzc19fICovCiAgICAgICAgIGlmICghR0VUX0lERU5USUZJRVIoX19jbGFzc19fKSkKICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgIGFzc2VydChQeVNldF9Db250YWlucyhsb2NhbCwgX19jbGFzc19fKSA9PSAxKTsKICAgICAgICAgaWYgKFB5U2V0X0FkZChuZXdib3VuZCwgX19jbGFzc19fKSA8IDApCiAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgIH0KQEAgLTgwMCwxMSArODI2LDkgQEAKICAgICBQeV9ERUNSRUYodGVtcCk7CiAKICAgICAvKiBDaGVjayBpZiBhbnkgbG9jYWwgdmFyaWFibGVzIG11c3QgYmUgY29udmVydGVkIHRvIGNlbGwgdmFyaWFibGVzICovCi0gICAgaWYgKHN0ZS0+c3RlX3R5cGUgPT0gRnVuY3Rpb25CbG9jayAmJiAhYW5hbHl6ZV9jZWxscyhzY29wZXMsIG5ld2ZyZWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKSkKKyAgICBpZiAoc3RlLT5zdGVfdHlwZSA9PSBGdW5jdGlvbkJsb2NrICYmICFhbmFseXplX2NlbGxzKHNjb3BlcywgbmV3ZnJlZSkpCiAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgZWxzZSBpZiAoc3RlLT5zdGVfdHlwZSA9PSBDbGFzc0Jsb2NrICYmICFhbmFseXplX2NlbGxzKHNjb3BlcywgbmV3ZnJlZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fY2xhc3NfXyIpKQorICAgIGVsc2UgaWYgKHN0ZS0+c3RlX3R5cGUgPT0gQ2xhc3NCbG9jayAmJiAhZHJvcF9jbGFzc19mcmVlKHN0ZSwgbmV3ZnJlZSkpCiAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgLyogUmVjb3JkcyB0aGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMgaW4gdGhlIHN5bWJvbCB0YWJsZSBlbnRyeSAqLwogICAgIGlmICghdXBkYXRlX3N5bWJvbHMoc3RlLT5zdGVfc3ltYm9scywgc2NvcGVzLCBib3VuZCwgbmV3ZnJlZSwKQEAgLTEwOTgsNiArMTEyMiwyNSBAQAogCiAKIHN0YXRpYyBpbnQKK3N5bXRhYmxlX3JlY29yZF9kaXJlY3RpdmUoc3RydWN0IHN5bXRhYmxlICpzdCwgaWRlbnRpZmllciBuYW1lLCBzdG10X3R5IHMpCit7CisgICAgUHlPYmplY3QgKmRhdGE7CisgICAgaW50IHJlczsKKyAgICBpZiAoIXN0LT5zdF9jdXItPnN0ZV9kaXJlY3RpdmVzKSB7CisgICAgICAgIHN0LT5zdF9jdXItPnN0ZV9kaXJlY3RpdmVzID0gUHlMaXN0X05ldygwKTsKKyAgICAgICAgaWYgKCFzdC0+c3RfY3VyLT5zdGVfZGlyZWN0aXZlcykKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBkYXRhID0gUHlfQnVpbGRWYWx1ZSgiKE9paSkiLCBuYW1lLCBzLT5saW5lbm8sIHMtPmNvbF9vZmZzZXQpOworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmVzID0gUHlMaXN0X0FwcGVuZChzdC0+c3RfY3VyLT5zdGVfZGlyZWN0aXZlcywgZGF0YSk7CisgICAgUHlfREVDUkVGKGRhdGEpOworICAgIHJldHVybiByZXMgPT0gMDsKK30KKworCitzdGF0aWMgaW50CiBzeW10YWJsZV92aXNpdF9zdG10KHN0cnVjdCBzeW10YWJsZSAqc3QsIHN0bXRfdHkgcykKIHsKICAgICBpZiAoKytzdC0+cmVjdXJzaW9uX2RlcHRoID4gc3QtPnJlY3Vyc2lvbl9saW1pdCkgewpAQCAtMTE0MiwxMyArMTE4NSw2IEBACiAgICAgICAgIGlmICghc3ltdGFibGVfZW50ZXJfYmxvY2soc3QsIHMtPnYuQ2xhc3NEZWYubmFtZSwgQ2xhc3NCbG9jaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKXMsIHMtPmxpbmVubywgcy0+Y29sX29mZnNldCkpCiAgICAgICAgICAgICBWSVNJVF9RVUlUKHN0LCAwKTsKLSAgICAgICAgaWYgKCFHRVRfSURFTlRJRklFUihfX2NsYXNzX18pIHx8Ci0gICAgICAgICAgICAhc3ltdGFibGVfYWRkX2RlZihzdCwgX19jbGFzc19fLCBERUZfTE9DQUwpIHx8Ci0gICAgICAgICAgICAhR0VUX0lERU5USUZJRVIoX19sb2NhbHNfXykgfHwKLSAgICAgICAgICAgICFzeW10YWJsZV9hZGRfZGVmKHN0LCBfX2xvY2Fsc19fLCBERUZfUEFSQU0pKSB7Ci0gICAgICAgICAgICBzeW10YWJsZV9leGl0X2Jsb2NrKHN0LCBzKTsKLSAgICAgICAgICAgIFZJU0lUX1FVSVQoc3QsIDApOwotICAgICAgICB9CiAgICAgICAgIHRtcCA9IHN0LT5zdF9wcml2YXRlOwogICAgICAgICBzdC0+c3RfcHJpdmF0ZSA9IHMtPnYuQ2xhc3NEZWYubmFtZTsKICAgICAgICAgVklTSVRfU0VRKHN0LCBzdG10LCBzLT52LkNsYXNzRGVmLmJvZHkpOwpAQCAtMTIzNiwxNCArMTI3Miw3IEBACiAgICAgICAgIGFzZGxfc2VxICpzZXEgPSBzLT52Lkdsb2JhbC5uYW1lczsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IGFzZGxfc2VxX0xFTihzZXEpOyBpKyspIHsKICAgICAgICAgICAgIGlkZW50aWZpZXIgbmFtZSA9IChpZGVudGlmaWVyKWFzZGxfc2VxX0dFVChzZXEsIGkpOwotICAgICAgICAgICAgbG9uZyBjdXI7Ci0gICAgICAgICAgICBpZiAoc3QtPnN0X2N1ci0+c3RlX3R5cGUgPT0gQ2xhc3NCbG9jayAmJgotICAgICAgICAgICAgICAgICFQeVVuaWNvZGVfQ29tcGFyZVdpdGhBU0NJSVN0cmluZyhuYW1lLCAiX19jbGFzc19fIikpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfU3ludGF4RXJyb3IsICJjYW5ub3QgbWFrZSBfX2NsYXNzX18gZ2xvYmFsIik7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU3ludGF4TG9jYXRpb25FeChzdC0+c3RfZmlsZW5hbWUsIHMtPmxpbmVubywgcy0+Y29sX29mZnNldCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjdXIgPSBzeW10YWJsZV9sb29rdXAoc3QsIG5hbWUpOworICAgICAgICAgICAgbG9uZyBjdXIgPSBzeW10YWJsZV9sb29rdXAoc3QsIG5hbWUpOwogICAgICAgICAgICAgaWYgKGN1ciA8IDApCiAgICAgICAgICAgICAgICAgVklTSVRfUVVJVChzdCwgMCk7CiAgICAgICAgICAgICBpZiAoY3VyICYgKERFRl9MT0NBTCB8IFVTRSkpIHsKQEAgLTEyNjQsNiArMTI5Myw4IEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIXN5bXRhYmxlX2FkZF9kZWYoc3QsIG5hbWUsIERFRl9HTE9CQUwpKQogICAgICAgICAgICAgICAgIFZJU0lUX1FVSVQoc3QsIDApOworICAgICAgICAgICAgaWYgKCFzeW10YWJsZV9yZWNvcmRfZGlyZWN0aXZlKHN0LCBuYW1lLCBzKSkKKyAgICAgICAgICAgICAgICBWSVNJVF9RVUlUKHN0LCAwKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xMjkzLDYgKzEzMjQsOCBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCFzeW10YWJsZV9hZGRfZGVmKHN0LCBuYW1lLCBERUZfTk9OTE9DQUwpKQogICAgICAgICAgICAgICAgIFZJU0lUX1FVSVQoc3QsIDApOworICAgICAgICAgICAgaWYgKCFzeW10YWJsZV9yZWNvcmRfZGlyZWN0aXZlKHN0LCBuYW1lLCBzKSkKKyAgICAgICAgICAgICAgICBWSVNJVF9RVUlUKHN0LCAwKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xNDAzLDYgKzE0MzYsNyBAQAogICAgIGNhc2UgU3RyX2tpbmQ6CiAgICAgY2FzZSBCeXRlc19raW5kOgogICAgIGNhc2UgRWxsaXBzaXNfa2luZDoKKyAgICBjYXNlIE5hbWVDb25zdGFudF9raW5kOgogICAgICAgICAvKiBOb3RoaW5nIHRvIGRvIGhlcmUuICovCiAgICAgICAgIGJyZWFrOwogICAgIC8qIFRoZSBmb2xsb3dpbmcgZXhwcnMgY2FuIGJlIGFzc2lnbm1lbnQgdGFyZ2V0cy4gKi8KQEAgLTE0OTUsMTAgKzE1MjksMTAgQEAKIAogICAgIGlmIChhLT5hcmdzICYmICFzeW10YWJsZV92aXNpdF9hcmdhbm5vdGF0aW9ucyhzdCwgYS0+YXJncykpCiAgICAgICAgIHJldHVybiAwOwotICAgIGlmIChhLT52YXJhcmdhbm5vdGF0aW9uKQotICAgICAgICBWSVNJVChzdCwgZXhwciwgYS0+dmFyYXJnYW5ub3RhdGlvbik7Ci0gICAgaWYgKGEtPmt3YXJnYW5ub3RhdGlvbikKLSAgICAgICAgVklTSVQoc3QsIGV4cHIsIGEtPmt3YXJnYW5ub3RhdGlvbik7CisgICAgaWYgKGEtPnZhcmFyZyAmJiBhLT52YXJhcmctPmFubm90YXRpb24pCisgICAgICAgIFZJU0lUKHN0LCBleHByLCBhLT52YXJhcmctPmFubm90YXRpb24pOworICAgIGlmIChhLT5rd2FyZyAmJiBhLT5rd2FyZy0+YW5ub3RhdGlvbikKKyAgICAgICAgVklTSVQoc3QsIGV4cHIsIGEtPmt3YXJnLT5hbm5vdGF0aW9uKTsKICAgICBpZiAoYS0+a3dvbmx5YXJncyAmJiAhc3ltdGFibGVfdmlzaXRfYXJnYW5ub3RhdGlvbnMoc3QsIGEtPmt3b25seWFyZ3MpKQogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAocy0+di5GdW5jdGlvbkRlZi5yZXR1cm5zKQpAQCAtMTUxNywxMiArMTU1MSwxMiBAQAogICAgIGlmIChhLT5rd29ubHlhcmdzICYmICFzeW10YWJsZV92aXNpdF9wYXJhbXMoc3QsIGEtPmt3b25seWFyZ3MpKQogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoYS0+dmFyYXJnKSB7Ci0gICAgICAgIGlmICghc3ltdGFibGVfYWRkX2RlZihzdCwgYS0+dmFyYXJnLCBERUZfUEFSQU0pKQorICAgICAgICBpZiAoIXN5bXRhYmxlX2FkZF9kZWYoc3QsIGEtPnZhcmFyZy0+YXJnLCBERUZfUEFSQU0pKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIHN0LT5zdF9jdXItPnN0ZV92YXJhcmdzID0gMTsKICAgICB9CiAgICAgaWYgKGEtPmt3YXJnKSB7Ci0gICAgICAgIGlmICghc3ltdGFibGVfYWRkX2RlZihzdCwgYS0+a3dhcmcsIERFRl9QQVJBTSkpCisgICAgICAgIGlmICghc3ltdGFibGVfYWRkX2RlZihzdCwgYS0+a3dhcmctPmFyZywgREVGX1BBUkFNKSkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICBzdC0+c3RfY3VyLT5zdGVfdmFya2V5d29yZHMgPSAxOwogICAgIH0KZGlmZiAtLWdpdCBhL1B5dGhvbi9zeXNtb2R1bGUuYyBiL1B5dGhvbi9zeXNtb2R1bGUuYwppbmRleCAyMGJmYTU1Li4yMDc5MmMyIDEwMDY0NAotLS0gYS9QeXRob24vc3lzbW9kdWxlLmMKKysrIGIvUHl0aG9uL3N5c21vZHVsZS5jCkBAIC04OTQsNiArODk0LDE5IEBACiByZWZlcmVuY2UgYXMgYW4gYXJndW1lbnQgdG8gZ2V0cmVmY291bnQoKS4iCiApOwogCitzdGF0aWMgUHlPYmplY3QgKgorc3lzX2dldGFsbG9jYXRlZGJsb2NrcyhQeU9iamVjdCAqc2VsZikKK3sKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Tc2l6ZV90KF9QeV9HZXRBbGxvY2F0ZWRCbG9ja3MoKSk7Cit9CisKK1B5RG9jX1NUUlZBUihnZXRhbGxvY2F0ZWRibG9ja3NfZG9jLAorImdldGFsbG9jYXRlZGJsb2NrcygpIC0+IGludGVnZXJcblwKK1xuXAorUmV0dXJuIHRoZSBudW1iZXIgb2YgbWVtb3J5IGJsb2NrcyBjdXJyZW50bHkgYWxsb2NhdGVkLCByZWdhcmRsZXNzIG9mIHRoZWlyXG5cCitzaXplLiIKKyk7CisKICNpZmRlZiBDT1VOVF9BTExPQ1MKIHN0YXRpYyBQeU9iamVjdCAqCiBzeXNfZ2V0Y291bnRzKFB5T2JqZWN0ICpzZWxmKQpAQCAtMTA2Miw2ICsxMDc1LDggQEAKICAgICB7ImdldGRsb3BlbmZsYWdzIiwgKFB5Q0Z1bmN0aW9uKXN5c19nZXRkbG9wZW5mbGFncywgTUVUSF9OT0FSR1MsCiAgICAgIGdldGRsb3BlbmZsYWdzX2RvY30sCiAjZW5kaWYKKyAgICB7ImdldGFsbG9jYXRlZGJsb2NrcyIsIChQeUNGdW5jdGlvbilzeXNfZ2V0YWxsb2NhdGVkYmxvY2tzLCBNRVRIX05PQVJHUywKKyAgICAgIGdldGFsbG9jYXRlZGJsb2Nrc19kb2N9LAogI2lmZGVmIENPVU5UX0FMTE9DUwogICAgIHsiZ2V0Y291bnRzIiwgICAgICAgKFB5Q0Z1bmN0aW9uKXN5c19nZXRjb3VudHMsIE1FVEhfTk9BUkdTfSwKICNlbmRpZgpAQCAtMTM0OSw5ICsxMzY0LDYgQEAKICAgICB7Im5vX3NpdGUiLCAgICAgICAgICAgICAgICAgIi1TIn0sCiAgICAgeyJpZ25vcmVfZW52aXJvbm1lbnQiLCAgICAgICItRSJ9LAogICAgIHsidmVyYm9zZSIsICAgICAgICAgICAgICAgICAiLXYifSwKLSNpZmRlZiBSSVNDT1MKLSAgICB7InJpc2Nvc193aW1wIiwgICAgICAgICAgICAgIj8/PyJ9LAotI2VuZGlmCiAgICAgLyogeyJ1bmJ1ZmZlcmVkIiwgICAgICAgICAgICAgICAgICAgIi11In0sICovCiAgICAgLyogeyJza2lwX2ZpcnN0IiwgICAgICAgICAgICAgICAgICAgIi14In0sICovCiAgICAgeyJieXRlc193YXJuaW5nIiwgICAgICAgICAgICItYiJ9LApAQCAtMTM2NCwxMSArMTM3Niw3IEBACiAgICAgInN5cy5mbGFncyIsICAgICAgICAvKiBuYW1lICovCiAgICAgZmxhZ3NfX2RvY19fLCAgICAgICAvKiBkb2MgKi8KICAgICBmbGFnc19maWVsZHMsICAgICAgIC8qIGZpZWxkcyAqLwotI2lmZGVmIFJJU0NPUwotICAgIDEzCi0jZWxzZQogICAgIDEyCi0jZW5kaWYKIH07CiAKIHN0YXRpYyBQeU9iamVjdCoKQEAgLTEzOTMsOSArMTQwMSw2IEBACiAgICAgU2V0RmxhZyhQeV9Ob1NpdGVGbGFnKTsKICAgICBTZXRGbGFnKFB5X0lnbm9yZUVudmlyb25tZW50RmxhZyk7CiAgICAgU2V0RmxhZyhQeV9WZXJib3NlRmxhZyk7Ci0jaWZkZWYgUklTQ09TCi0gICAgU2V0RmxhZyhQeV9SSVNDT1NXaW1wRmxhZyk7Ci0jZW5kaWYKICAgICAvKiBTZXRGbGFnKHNhd191bmJ1ZmZlcmVkX2ZsYWcpOyAqLwogICAgIC8qIFNldEZsYWcoc2tpcGZpcnN0bGluZSk7ICovCiAgICAgU2V0RmxhZyhQeV9CeXRlc1dhcm5pbmdGbGFnKTsKQEAgLTE1NjEsNyArMTU2Niw2IEBACiBfUHlTeXNfSW5pdCh2b2lkKQogewogICAgIFB5T2JqZWN0ICptLCAqdiwgKnN5c2RpY3QsICp2ZXJzaW9uX2luZm87Ci0gICAgY2hhciAqczsKIAogICAgIG0gPSBQeU1vZHVsZV9DcmVhdGUoJnN5c21vZHVsZSk7CiAgICAgaWYgKG0gPT0gTlVMTCkKQEAgLTE2MzgsMjAgKzE2NDIsMTQgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5TG9uZ19Gcm9tTG9uZygweDEwRkZGRikpOwogICAgIFNFVF9TWVNfRlJPTV9TVFJJTkcoImJ1aWx0aW5fbW9kdWxlX25hbWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RfYnVpbHRpbl9tb2R1bGVfbmFtZXMoKSk7Ci0gICAgewotICAgICAgICAvKiBBc3N1bWVzIHRoYXQgbG9uZ3MgYXJlIGF0IGxlYXN0IDIgYnl0ZXMgbG9uZy4KLSAgICAgICAgICAgU2hvdWxkIGJlIHNhZmUhICovCi0gICAgICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyID0gMTsKLSAgICAgICAgY2hhciAqdmFsdWU7CisjaWYgUFlfQklHX0VORElBTgorICAgIFNFVF9TWVNfRlJPTV9TVFJJTkcoImJ5dGVvcmRlciIsCisgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRnJvbVN0cmluZygiYmlnIikpOworI2Vsc2UKKyAgICBTRVRfU1lTX0ZST01fU1RSSU5HKCJieXRlb3JkZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0Zyb21TdHJpbmcoImxpdHRsZSIpKTsKKyNlbmRpZgogCi0gICAgICAgIHMgPSAoY2hhciAqKSAmbnVtYmVyOwotICAgICAgICBpZiAoc1swXSA9PSAwKQotICAgICAgICAgICAgdmFsdWUgPSAiYmlnIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdmFsdWUgPSAibGl0dGxlIjsKLSAgICAgICAgU0VUX1NZU19GUk9NX1NUUklORygiYnl0ZW9yZGVyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRnJvbVN0cmluZyh2YWx1ZSkpOwotICAgIH0KICNpZmRlZiBNU19DT1JFRExMCiAgICAgU0VUX1NZU19GUk9NX1NUUklORygiZGxsaGFuZGxlIiwKICAgICAgICAgICAgICAgICAgICAgICAgIFB5TG9uZ19Gcm9tVm9pZFB0cihQeVdpbl9ETExoTW9kdWxlKSk7CmRpZmYgLS1naXQgYS9QeXRob24vdGhyZWFkLmMgYi9QeXRob24vdGhyZWFkLmMKaW5kZXggZTU1ZDM0Mi4uMjVhYjE2ZSAxMDA2NDQKLS0tIGEvUHl0aG9uL3RocmVhZC5jCisrKyBiL1B5dGhvbi90aHJlYWQuYwpAQCAtOTEsMTAgKzkxLDYgQEAKICNpbmNsdWRlICJ0aHJlYWRfbnQuaCIKICNlbmRpZgogCi0jaWZkZWYgT1MyX1RIUkVBRFMKLSNkZWZpbmUgUFlUSFJFQURfTkFNRSAib3MyIgotI2luY2x1ZGUgInRocmVhZF9vczIuaCIKLSNlbmRpZgogCiAvKgogI2lmZGVmIEZPT0JBUl9USFJFQURTCmRpZmYgLS1naXQgYS9QeXRob24vdGhyZWFkX250LmggYi9QeXRob24vdGhyZWFkX250LmgKaW5kZXggOTM4YmYxZS4uYmQ2MDRmYiAxMDA2NDQKLS0tIGEvUHl0aG9uL3RocmVhZF9udC5oCisrKyBiL1B5dGhvbi90aHJlYWRfbnQuaApAQCAtMTMwLDcgKzEzMCw3IEBACiBEV09SRAogRW50ZXJOb25SZWN1cnNpdmVNdXRleChQTlJNVVRFWCBtdXRleCwgRFdPUkQgbWlsbGlzZWNvbmRzKQogewotICAgIHJldHVybiBXYWl0Rm9yU2luZ2xlT2JqZWN0KG11dGV4LCBtaWxsaXNlY29uZHMpOworICAgIHJldHVybiBXYWl0Rm9yU2luZ2xlT2JqZWN0RXgobXV0ZXgsIG1pbGxpc2Vjb25kcywgRkFMU0UpOwogfQogCiBCT09MCmRpZmYgLS1naXQgYS9QeXRob24vdGhyZWFkX29zMi5oIGIvUHl0aG9uL3RocmVhZF9vczIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWIyNjRiNS4uMDAwMDAwMAotLS0gYS9QeXRob24vdGhyZWFkX29zMi5oCisrKyAvZGV2L251bGwKQEAgLTEsMjY3ICswLDAgQEAKLS8qIFRoaXMgY29kZSBpbXBsZW1lbnRlZCBieSBjdmFsZUBuZXRjb20uY29tICovCi0KLSNkZWZpbmUgSU5DTF9ET1NQUk9DRVNTCi0jZGVmaW5lIElOQ0xfRE9TU0VNQVBIT1JFUwotI2luY2x1ZGUgIm9zMi5oIgotI2luY2x1ZGUgImxpbWl0cy5oIgotCi0jaW5jbHVkZSAicHJvY2Vzcy5oIgotCi0jaWYgZGVmaW5lZChQWUNDX0dDQykKLSNpbmNsdWRlIDxzeXMvYnVpbHRpbi5oPgotI2luY2x1ZGUgPHN5cy9mbXV0ZXguaD4KLSNlbHNlCi1sb25nIFB5VGhyZWFkX2dldF90aHJlYWRfaWRlbnQodm9pZCk7Ci0jZW5kaWYKLQotLyogZGVmYXVsdCB0aHJlYWQgc3RhY2sgc2l6ZSBvZiA2NGtCICovCi0jaWYgIWRlZmluZWQoVEhSRUFEX1NUQUNLX1NJWkUpCi0jZGVmaW5lIFRIUkVBRF9TVEFDS19TSVpFICAgICAgIDB4MTAwMDAKLSNlbmRpZgotCi0jZGVmaW5lIE9TMl9TVEFDS1NJWkUoeCkgICAgICAgICh4ID8geCA6IFRIUkVBRF9TVEFDS19TSVpFKQotCi0vKgotICogSW5pdGlhbGl6YXRpb24gb2YgdGhlIEMgcGFja2FnZSwgc2hvdWxkIG5vdCBiZSBuZWVkZWQuCi0gKi8KLXN0YXRpYyB2b2lkCi1QeVRocmVhZF9faW5pdF90aHJlYWQodm9pZCkKLXsKLX0KLQotLyoKLSAqIFRocmVhZCBzdXBwb3J0LgotICovCi1sb25nCi1QeVRocmVhZF9zdGFydF9uZXdfdGhyZWFkKHZvaWQgKCpmdW5jKSh2b2lkICopLCB2b2lkICphcmcpCi17Ci0gICAgaW50IHRocmVhZF9pZDsKLQotICAgIHRocmVhZF9pZCA9IF9iZWdpbnRocmVhZChmdW5jLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgT1MyX1NUQUNLU0laRShfcHl0aHJlYWRfc3RhY2tzaXplKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcpOwotCi0gICAgaWYgKHRocmVhZF9pZCA9PSAtMSkgewotICAgICAgICBkcHJpbnRmKCgiX2JlZ2ludGhyZWFkIGZhaWxlZC4gcmV0dXJuICVsZFxuIiwgZXJybm8pKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdGhyZWFkX2lkOwotfQotCi1sb25nCi1QeVRocmVhZF9nZXRfdGhyZWFkX2lkZW50KHZvaWQpCi17Ci0jaWYgIWRlZmluZWQoUFlDQ19HQ0MpCi0gICAgUFBJQiBwaWI7Ci0gICAgUFRJQiB0aWI7Ci0jZW5kaWYKLQotICAgIGlmICghaW5pdGlhbGl6ZWQpCi0gICAgICAgIFB5VGhyZWFkX2luaXRfdGhyZWFkKCk7Ci0KLSNpZiBkZWZpbmVkKFBZQ0NfR0NDKQotICAgIHJldHVybiBfZ2V0dGlkKCk7Ci0jZWxzZQotICAgIERvc0dldEluZm9CbG9ja3MoJnRpYiwgJnBpYik7Ci0gICAgcmV0dXJuIHRpYi0+dGliX3B0aWIyLT50aWIyX3VsdGlkOwotI2VuZGlmCi19Ci0KLXZvaWQKLVB5VGhyZWFkX2V4aXRfdGhyZWFkKHZvaWQpCi17Ci0gICAgZHByaW50ZigoIiVsZDogUHlUaHJlYWRfZXhpdF90aHJlYWQgY2FsbGVkXG4iLAotICAgICAgICAgICAgIFB5VGhyZWFkX2dldF90aHJlYWRfaWRlbnQoKSkpOwotICAgIGlmICghaW5pdGlhbGl6ZWQpCi0gICAgICAgIGV4aXQoMCk7Ci0gICAgX2VuZHRocmVhZCgpOwotfQotCi0vKgotICogTG9jayBzdXBwb3J0LiAgVGhpcyBpcyBpbXBsZW1lbnRlZCB3aXRoIGFuIGV2ZW50IHNlbWFwaG9yZSBhbmQgY3JpdGljYWwKLSAqIHNlY3Rpb25zIHRvIG1ha2UgaXQgYmVoYXZlIG1vcmUgbGlrZSBhIHBvc2l4IG11dGV4IHRoYW4gaXRzIE9TLzIKLSAqIGNvdW50ZXJwYXJ0cy4KLSAqLwotCi10eXBlZGVmIHN0cnVjdCBvczJfbG9ja190IHsKLSAgICBpbnQgaXNfc2V0OwotICAgIEhFViBjaGFuZ2VkOwotfSAqdHlwZV9vczJfbG9jazsKLQotUHlUaHJlYWRfdHlwZV9sb2NrCi1QeVRocmVhZF9hbGxvY2F0ZV9sb2NrKHZvaWQpCi17Ci0jaWYgZGVmaW5lZChQWUNDX0dDQykKLSAgICBfZm11dGV4ICpzZW0gPSBtYWxsb2Moc2l6ZW9mKF9mbXV0ZXgpKTsKLSAgICBpZiAoIWluaXRpYWxpemVkKQotICAgICAgICBQeVRocmVhZF9pbml0X3RocmVhZCgpOwotICAgIGRwcmludGYoKCIlbGQ6IFB5VGhyZWFkX2FsbG9jYXRlX2xvY2soKSAtPiAlbHhcbiIsCi0gICAgICAgICAgICAgUHlUaHJlYWRfZ2V0X3RocmVhZF9pZGVudCgpLAotICAgICAgICAgICAgIChsb25nKXNlbSkpOwotICAgIGlmIChfZm11dGV4X2NyZWF0ZShzZW0sIDApKSB7Ci0gICAgICAgIGZyZWUoc2VtKTsKLSAgICAgICAgc2VtID0gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIChQeVRocmVhZF90eXBlX2xvY2spc2VtOwotI2Vsc2UKLSAgICBBUElSRVQgcmM7Ci0gICAgdHlwZV9vczJfbG9jayBsb2NrID0gKHR5cGVfb3MyX2xvY2spbWFsbG9jKHNpemVvZihzdHJ1Y3Qgb3MyX2xvY2tfdCkpOwotCi0gICAgZHByaW50ZigoIlB5VGhyZWFkX2FsbG9jYXRlX2xvY2sgY2FsbGVkXG4iKSk7Ci0gICAgaWYgKCFpbml0aWFsaXplZCkKLSAgICAgICAgUHlUaHJlYWRfaW5pdF90aHJlYWQoKTsKLQotICAgIGxvY2stPmlzX3NldCA9IDA7Ci0KLSAgICBEb3NDcmVhdGVFdmVudFNlbShOVUxMLCAmbG9jay0+Y2hhbmdlZCwgMCwgMCk7Ci0KLSAgICBkcHJpbnRmKCgiJWxkOiBQeVRocmVhZF9hbGxvY2F0ZV9sb2NrKCkgLT4gJXBcbiIsCi0gICAgICAgICAgICAgUHlUaHJlYWRfZ2V0X3RocmVhZF9pZGVudCgpLAotICAgICAgICAgICAgIGxvY2stPmNoYW5nZWQpKTsKLQotICAgIHJldHVybiAoUHlUaHJlYWRfdHlwZV9sb2NrKWxvY2s7Ci0jZW5kaWYKLX0KLQotdm9pZAotUHlUaHJlYWRfZnJlZV9sb2NrKFB5VGhyZWFkX3R5cGVfbG9jayBhTG9jaykKLXsKLSNpZiAhZGVmaW5lZChQWUNDX0dDQykKLSAgICB0eXBlX29zMl9sb2NrIGxvY2sgPSAodHlwZV9vczJfbG9jaylhTG9jazsKLSNlbmRpZgotCi0gICAgZHByaW50ZigoIiVsZDogUHlUaHJlYWRfZnJlZV9sb2NrKCVwKSBjYWxsZWRcbiIsCi0gICAgICAgICAgICAgUHlUaHJlYWRfZ2V0X3RocmVhZF9pZGVudCgpLGFMb2NrKSk7Ci0KLSNpZiBkZWZpbmVkKFBZQ0NfR0NDKQotICAgIGlmIChhTG9jaykgewotICAgICAgICBfZm11dGV4X2Nsb3NlKChfZm11dGV4ICopYUxvY2spOwotICAgICAgICBmcmVlKChfZm11dGV4ICopYUxvY2spOwotICAgIH0KLSNlbHNlCi0gICAgRG9zQ2xvc2VFdmVudFNlbShsb2NrLT5jaGFuZ2VkKTsKLSAgICBmcmVlKGFMb2NrKTsKLSNlbmRpZgotfQotCi0vKgotICogUmV0dXJuIDEgb24gc3VjY2VzcyBpZiB0aGUgbG9jayB3YXMgYWNxdWlyZWQKLSAqCi0gKiBhbmQgMCBpZiB0aGUgbG9jayB3YXMgbm90IGFjcXVpcmVkLgotICovCi1pbnQKLVB5VGhyZWFkX2FjcXVpcmVfbG9jayhQeVRocmVhZF90eXBlX2xvY2sgYUxvY2ssIGludCB3YWl0ZmxhZykKLXsKLSNpZiAhZGVmaW5lZChQWUNDX0dDQykKLSAgICBpbnQgICBkb25lID0gMDsKLSAgICBVTE9ORyBjb3VudDsKLSAgICBQSUQgICBwaWQgPSAwOwotICAgIFRJRCAgIHRpZCA9IDA7Ci0gICAgdHlwZV9vczJfbG9jayBsb2NrID0gKHR5cGVfb3MyX2xvY2spYUxvY2s7Ci0jZW5kaWYKLQotICAgIGRwcmludGYoKCIlbGQ6IFB5VGhyZWFkX2FjcXVpcmVfbG9jayglcCwgJWQpIGNhbGxlZFxuIiwKLSAgICAgICAgICAgICBQeVRocmVhZF9nZXRfdGhyZWFkX2lkZW50KCksCi0gICAgICAgICAgICAgYUxvY2ssCi0gICAgICAgICAgICAgd2FpdGZsYWcpKTsKLQotI2lmIGRlZmluZWQoUFlDQ19HQ0MpCi0gICAgLyogYWx3YXlzIHN1Y2Nlc3NmdWwgaWYgdGhlIGxvY2sgZG9lc24ndCBleGlzdCAqLwotICAgIGlmIChhTG9jayAmJgotICAgICAgICBfZm11dGV4X3JlcXVlc3QoKF9mbXV0ZXggKilhTG9jaywgd2FpdGZsYWcgPyAwIDogX0ZNUl9OT1dBSVQpKQotICAgICAgICByZXR1cm4gMDsKLSNlbHNlCi0gICAgd2hpbGUgKCFkb25lKSB7Ci0gICAgICAgIC8qIGlmIHRoZSBsb2NrIGlzIGN1cnJlbnRseSBzZXQsIHdlIGhhdmUgdG8gd2FpdCBmb3IKLSAgICAgICAgICogdGhlIHN0YXRlIHRvIGNoYW5nZQotICAgICAgICAgKi8KLSAgICAgICAgaWYgKGxvY2stPmlzX3NldCkgewotICAgICAgICAgICAgaWYgKCF3YWl0ZmxhZykKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIERvc1dhaXRFdmVudFNlbShsb2NrLT5jaGFuZ2VkLCBTRU1fSU5ERUZJTklURV9XQUlUKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIGVudGVyIGEgY3JpdGljYWwgc2VjdGlvbiBhbmQgdHJ5IHRvIGdldCB0aGUgc2VtYXBob3JlLiAgSWYKLSAgICAgICAgICogaXQgaXMgc3RpbGwgbG9ja2VkLCB3ZSB3aWxsIHRyeSBhZ2Fpbi4KLSAgICAgICAgICovCi0gICAgICAgIGlmIChEb3NFbnRlckNyaXRTZWMoKSkKLSAgICAgICAgICAgIHJldHVybiAwOwotCi0gICAgICAgIGlmICghbG9jay0+aXNfc2V0KSB7Ci0gICAgICAgICAgICBsb2NrLT5pc19zZXQgPSAxOwotICAgICAgICAgICAgRG9zUmVzZXRFdmVudFNlbShsb2NrLT5jaGFuZ2VkLCAmY291bnQpOwotICAgICAgICAgICAgZG9uZSA9IDE7Ci0gICAgICAgIH0KLQotICAgICAgICBEb3NFeGl0Q3JpdFNlYygpOwotICAgIH0KLSNlbmRpZgotCi0gICAgcmV0dXJuIDE7Ci19Ci0KLXZvaWQKLVB5VGhyZWFkX3JlbGVhc2VfbG9jayhQeVRocmVhZF90eXBlX2xvY2sgYUxvY2spCi17Ci0jaWYgIWRlZmluZWQoUFlDQ19HQ0MpCi0gICAgdHlwZV9vczJfbG9jayBsb2NrID0gKHR5cGVfb3MyX2xvY2spYUxvY2s7Ci0jZW5kaWYKLQotICAgIGRwcmludGYoKCIlbGQ6IFB5VGhyZWFkX3JlbGVhc2VfbG9jayglcCkgY2FsbGVkXG4iLAotICAgICAgICAgICAgIFB5VGhyZWFkX2dldF90aHJlYWRfaWRlbnQoKSwKLSAgICAgICAgICAgICBhTG9jaykpOwotCi0jaWYgZGVmaW5lZChQWUNDX0dDQykKLSAgICBpZiAoYUxvY2spCi0gICAgICAgIF9mbXV0ZXhfcmVsZWFzZSgoX2ZtdXRleCAqKWFMb2NrKTsKLSNlbHNlCi0gICAgaWYgKCFsb2NrLT5pc19zZXQpIHsKLSAgICAgICAgZHByaW50ZigoIiVsZDogQ291bGQgbm90IFB5VGhyZWFkX3JlbGVhc2VfbG9jayglcCkgZXJyb3I6ICVsXG4iLAotICAgICAgICAgICAgICAgICBQeVRocmVhZF9nZXRfdGhyZWFkX2lkZW50KCksCi0gICAgICAgICAgICAgICAgIGFMb2NrLAotICAgICAgICAgICAgICAgICBHZXRMYXN0RXJyb3IoKSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKERvc0VudGVyQ3JpdFNlYygpKSB7Ci0gICAgICAgIGRwcmludGYoKCIlbGQ6IENvdWxkIG5vdCBQeVRocmVhZF9yZWxlYXNlX2xvY2soJXApIGVycm9yOiAlbFxuIiwKLSAgICAgICAgICAgICAgICAgUHlUaHJlYWRfZ2V0X3RocmVhZF9pZGVudCgpLAotICAgICAgICAgICAgICAgICBhTG9jaywKLSAgICAgICAgICAgICAgICAgR2V0TGFzdEVycm9yKCkpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGxvY2stPmlzX3NldCA9IDA7Ci0gICAgRG9zUG9zdEV2ZW50U2VtKGxvY2stPmNoYW5nZWQpOwotCi0gICAgRG9zRXhpdENyaXRTZWMoKTsKLSNlbmRpZgotfQotCi0vKiBtaW5pbXVtL21heGltdW0gdGhyZWFkIHN0YWNrIHNpemVzIHN1cHBvcnRlZCAqLwotI2RlZmluZSBUSFJFQURfTUlOX1NUQUNLU0laRSAgICAweDgwMDAgICAgICAgICAgLyogMzJrQiAqLwotI2RlZmluZSBUSFJFQURfTUFYX1NUQUNLU0laRSAgICAweDIwMDAwMDAgICAgICAgLyogMzJNQiAqLwotCi0vKiBzZXQgdGhlIHRocmVhZCBzdGFjayBzaXplLgotICogUmV0dXJuIDAgaWYgc2l6ZSBpcyB2YWxpZCwgLTEgb3RoZXJ3aXNlLgotICovCi1zdGF0aWMgaW50Ci1fcHl0aHJlYWRfb3MyX3NldF9zdGFja3NpemUoc2l6ZV90IHNpemUpCi17Ci0gICAgLyogc2V0IHRvIGRlZmF1bHQgKi8KLSAgICBpZiAoc2l6ZSA9PSAwKSB7Ci0gICAgICAgIF9weXRocmVhZF9zdGFja3NpemUgPSAwOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICAvKiB2YWxpZCByYW5nZT8gKi8KLSAgICBpZiAoc2l6ZSA+PSBUSFJFQURfTUlOX1NUQUNLU0laRSAmJiBzaXplIDwgVEhSRUFEX01BWF9TVEFDS1NJWkUpIHsKLSAgICAgICAgX3B5dGhyZWFkX3N0YWNrc2l6ZSA9IHNpemU7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJldHVybiAtMTsKLX0KLQotI2RlZmluZSBUSFJFQURfU0VUX1NUQUNLU0laRSh4KSBfcHl0aHJlYWRfb3MyX3NldF9zdGFja3NpemUoeCkKZGlmZiAtLWdpdCBhL1B5dGhvbi90cmFjZWJhY2suYyBiL1B5dGhvbi90cmFjZWJhY2suYwppbmRleCBiOTI4OTAyLi5jNTZiMjNmIDEwMDY0NAotLS0gYS9QeXRob24vdHJhY2ViYWNrLmMKKysrIGIvUHl0aG9uL3RyYWNlYmFjay5jCkBAIC0xMyw3ICsxMyw3IEBACiAKICNkZWZpbmUgT0ZGKHgpIG9mZnNldG9mKFB5VHJhY2ViYWNrT2JqZWN0LCB4KQogCi0jZGVmaW5lIFBVVFMoZmQsIHN0cikgd3JpdGUoZmQsIHN0ciwgc3RybGVuKHN0cikpCisjZGVmaW5lIFBVVFMoZmQsIHN0cikgd3JpdGUoZmQsIHN0ciwgKGludClzdHJsZW4oc3RyKSkKICNkZWZpbmUgTUFYX1NUUklOR19MRU5HVEggNTAwCiAjZGVmaW5lIE1BWF9GUkFNRV9ERVBUSCAxMDAKICNkZWZpbmUgTUFYX05USFJFQURTIDEwMApkaWZmIC0tZ2l0IGEvUkVBRE1FIGIvUkVBRE1FCmluZGV4IDVkNmIzZDcuLjU0MDVkMDQgMTAwNjQ0Ci0tLSBhL1JFQURNRQorKysgYi9SRUFETUUKQEAgLTEsNSArMSw1IEBACi1UaGlzIGlzIFB5dGhvbiB2ZXJzaW9uIDMuMy4yCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitUaGlzIGlzIFB5dGhvbiB2ZXJzaW9uIDMuNC4wIHByZXJlbGVhc2UKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsCiAyMDEyLCAyMDEzIFB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTUyLDkgKzUyLDkgQEAKIC0tLS0tLS0tLS0KIAogV2UgdHJ5IHRvIGhhdmUgYSBjb21wcmVoZW5zaXZlIG92ZXJ2aWV3IG9mIHRoZSBjaGFuZ2VzIGluIHRoZSAiV2hhdCdzIE5ldyBpbgotUHl0aG9uIDMuMyIgZG9jdW1lbnQsIGZvdW5kIGF0CitQeXRob24gMy40IiBkb2N1bWVudCwgZm91bmQgYXQKIAotICAgIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvMy4zL3doYXRzbmV3LzMuMy5odG1sCisgICAgaHR0cDovL2RvY3MucHl0aG9uLm9yZy8zLjQvd2hhdHNuZXcvMy40Lmh0bWwKIAogRm9yIGEgbW9yZSBkZXRhaWxlZCBjaGFuZ2UgbG9nLCByZWFkIE1pc2MvTkVXUyAodGhvdWdoIHRoaXMgZmlsZSwgdG9vLCBpcwogaW5jb21wbGV0ZSwgYW5kIGFsc28gZG9lc24ndCBsaXN0IGFueXRoaW5nIG1lcmdlZCBpbiBmcm9tIHRoZSAyLjcgcmVsZWFzZSB1bmRlcgpAQCAtNjcsOSArNjcsOSBAQAogRG9jdW1lbnRhdGlvbgogLS0tLS0tLS0tLS0tLQogCi1Eb2N1bWVudGF0aW9uIGZvciBQeXRob24gMy4zIGlzIG9ubGluZSwgdXBkYXRlZCBkYWlseToKK0RvY3VtZW50YXRpb24gZm9yIFB5dGhvbiAzLjQgaXMgb25saW5lLCB1cGRhdGVkIGRhaWx5OgogCi0gICAgaHR0cDovL2RvY3MucHl0aG9uLm9yZy8zLjMvCisgICAgaHR0cDovL2RvY3MucHl0aG9uLm9yZy8zLjQvCiAKIEl0IGNhbiBhbHNvIGJlIGRvd25sb2FkZWQgaW4gbWFueSBmb3JtYXRzIGZvciBmYXN0ZXIgYWNjZXNzLiAgVGhlIGRvY3VtZW50YXRpb24KIGlzIGRvd25sb2FkYWJsZSBpbiBIVE1MLCBQREYsIGFuZCByZVN0cnVjdHVyZWRUZXh0IGZvcm1hdHM7IHRoZSBsYXR0ZXIgdmVyc2lvbgpAQCAtODcsNyArODcsNyBAQAogQSBzb3VyY2UtdG8tc291cmNlIHRyYW5zbGF0aW9uIHRvb2wsICIydG8zIiwgY2FuIHRha2UgY2FyZSBvZiB0aGUgbXVuZGFuZSB0YXNrCiBvZiBjb252ZXJ0aW5nIGxhcmdlIGFtb3VudHMgb2Ygc291cmNlIGNvZGUuICBJdCBpcyBub3QgYSBjb21wbGV0ZSBzb2x1dGlvbiBidXQKIGlzIGNvbXBsZW1lbnRlZCBieSB0aGUgZGVwcmVjYXRpb24gd2FybmluZ3MgaW4gMi42LiAgU2VlCi1odHRwOi8vZG9jcy5weXRob24ub3JnLzMuMy9saWJyYXJ5LzJ0bzMuaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KK2h0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvMy40L2xpYnJhcnkvMnRvMy5odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uLgogCiAKIFRlc3RpbmcKQEAgLTEyNSw3ICsxMjUsNyBAQAogSW5zdGFsbCB0aGF0IHZlcnNpb24gdXNpbmcgIm1ha2UgaW5zdGFsbCIuICBJbnN0YWxsIGFsbCBvdGhlciB2ZXJzaW9ucyB1c2luZwogIm1ha2UgYWx0aW5zdGFsbCIuCiAKLUZvciBleGFtcGxlLCBpZiB5b3Ugd2FudCB0byBpbnN0YWxsIFB5dGhvbiAyLjYsIDIuNyBhbmQgMy4zIHdpdGggMi43IGJlaW5nIHRoZQorRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIGluc3RhbGwgUHl0aG9uIDIuNiwgMi43IGFuZCAzLjQgd2l0aCAyLjcgYmVpbmcgdGhlCiBwcmltYXJ5IHZlcnNpb24sIHlvdSB3b3VsZCBleGVjdXRlICJtYWtlIGluc3RhbGwiIGluIHlvdXIgMi43IGJ1aWxkIGRpcmVjdG9yeQogYW5kICJtYWtlIGFsdGluc3RhbGwiIGluIHRoZSBvdGhlcnMuCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL2J1aWxkYm90L2V4dGVybmFsLWFtZDY0LmJhdCBiL1Rvb2xzL2J1aWxkYm90L2V4dGVybmFsLWFtZDY0LmJhdAppbmRleCBkMmZmMjU1Li5hNDRjNjYyIDEwMDY0NAotLS0gYS9Ub29scy9idWlsZGJvdC9leHRlcm5hbC1hbWQ2NC5iYXQKKysrIGIvVG9vbHMvYnVpbGRib3QvZXh0ZXJuYWwtYW1kNjQuYmF0CkBAIC02LDE2ICs2LDE2IEBACiAKIGlmIG5vdCBleGlzdCB0Y2x0azY0XGJpblx0Y2w4NWcuZGxsICgKICAgICBjZCB0Y2wtOC41LjExLjBcd2luCi0gICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgQ09NUElMRVJGTEFHUz0tRFdJTlZFUj0weDA1MDAgREVCVUc9MSBNQUNISU5FPUFNRDY0IElOU1RBTExESVI9Li5cLi5cdGNsdGs2NCBjbGVhbiBhbGwKLSAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBDT01QSUxFUkZMQUdTPS1EV0lOVkVSPTB4MDUwMCBERUJVRz0xIE1BQ0hJTkU9QU1ENjQgSU5TVEFMTERJUj0uLlwuLlx0Y2x0azY0IGluc3RhbGwKKyAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBERUJVRz0xIE1BQ0hJTkU9QU1ENjQgSU5TVEFMTERJUj0uLlwuLlx0Y2x0azY0IGNsZWFuIGFsbAorICAgIG5tYWtlIC1mIG1ha2VmaWxlLnZjIERFQlVHPTEgTUFDSElORT1BTUQ2NCBJTlNUQUxMRElSPS4uXC4uXHRjbHRrNjQgaW5zdGFsbAogICAgIGNkIC4uXC4uCiApCiAKIGlmIG5vdCBleGlzdCB0Y2x0azY0XGJpblx0azg1Zy5kbGwgKAogICAgIGNkIHRrLTguNS4xMS4wXHdpbiAgICAKLSAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBDT01QSUxFUkZMQUdTPS1EV0lOVkVSPTB4MDUwMCBPUFRTPW5veHAgREVCVUc9MSBNQUNISU5FPUFNRDY0IElOU1RBTExESVI9Li5cLi5cdGNsdGs2NCBUQ0xESVI9Li5cLi5cdGNsLTguNS4xMS4wIGNsZWFuCi0gICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgQ09NUElMRVJGTEFHUz0tRFdJTlZFUj0weDA1MDAgT1BUUz1ub3hwIERFQlVHPTEgTUFDSElORT1BTUQ2NCBJTlNUQUxMRElSPS4uXC4uXHRjbHRrNjQgVENMRElSPS4uXC4uXHRjbC04LjUuMTEuMCBhbGwKLSAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBDT01QSUxFUkZMQUdTPS1EV0lOVkVSPTB4MDUwMCBPUFRTPW5veHAgREVCVUc9MSBNQUNISU5FPUFNRDY0IElOU1RBTExESVI9Li5cLi5cdGNsdGs2NCBUQ0xESVI9Li5cLi5cdGNsLTguNS4xMS4wIGluc3RhbGwKKyAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBPUFRTPW5veHAgREVCVUc9MSBNQUNISU5FPUFNRDY0IElOU1RBTExESVI9Li5cLi5cdGNsdGs2NCBUQ0xESVI9Li5cLi5cdGNsLTguNS4xMS4wIGNsZWFuCisgICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgT1BUUz1ub3hwIERFQlVHPTEgTUFDSElORT1BTUQ2NCBJTlNUQUxMRElSPS4uXC4uXHRjbHRrNjQgVENMRElSPS4uXC4uXHRjbC04LjUuMTEuMCBhbGwKKyAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBPUFRTPW5veHAgREVCVUc9MSBNQUNISU5FPUFNRDY0IElOU1RBTExESVI9Li5cLi5cdGNsdGs2NCBUQ0xESVI9Li5cLi5cdGNsLTguNS4xMS4wIGluc3RhbGwKICAgICBjZCAuLlwuLgogKQogCmRpZmYgLS1naXQgYS9Ub29scy9idWlsZGJvdC9leHRlcm5hbC5iYXQgYi9Ub29scy9idWlsZGJvdC9leHRlcm5hbC5iYXQKaW5kZXggZWQ1YzEwZS4uODNiMzg2MSAxMDA2NDQKLS0tIGEvVG9vbHMvYnVpbGRib3QvZXh0ZXJuYWwuYmF0CisrKyBiL1Rvb2xzL2J1aWxkYm90L2V4dGVybmFsLmJhdApAQCAtNywxNSArNywxNSBAQAogaWYgbm90IGV4aXN0IHRjbHRrXGJpblx0Y2w4NWcuZGxsICgKICAgICBAcmVtIGFsbCBhbmQgaW5zdGFsbCBuZWVkIHRvIGJlIHNlcGFyYXRlIGludm9jYXRpb25zLCBvdGhlcndpc2Ugbm1ha2VobHAgaXMgbm90IGZvdW5kIG9uIGluc3RhbGwKICAgICBjZCB0Y2wtOC41LjExLjBcd2luCi0gICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgQ09NUElMRVJGTEFHUz0tRFdJTlZFUj0weDA1MDAgREVCVUc9MSBJTlNUQUxMRElSPS4uXC4uXHRjbHRrIGNsZWFuIGFsbCAKKyAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBERUJVRz0xIElOU1RBTExESVI9Li5cLi5cdGNsdGsgY2xlYW4gYWxsIAogICAgIG5tYWtlIC1mIG1ha2VmaWxlLnZjIERFQlVHPTEgSU5TVEFMTERJUj0uLlwuLlx0Y2x0ayBpbnN0YWxsCiAgICAgY2QgLi5cLi4KICkKIAogaWYgbm90IGV4aXN0IHRjbHRrXGJpblx0azg1Zy5kbGwgKAogICAgIGNkIHRrLTguNS4xMS4wXHdpbgotICAgIG5tYWtlIC1mIG1ha2VmaWxlLnZjIENPTVBJTEVSRkxBR1M9LURXSU5WRVI9MHgwNTAwIE9QVFM9bm94cCBERUJVRz0xIElOU1RBTExESVI9Li5cLi5cdGNsdGsgVENMRElSPS4uXC4uXHRjbC04LjUuMTEuMCBjbGVhbgotICAgIG5tYWtlIC1mIG1ha2VmaWxlLnZjIENPTVBJTEVSRkxBR1M9LURXSU5WRVI9MHgwNTAwIE9QVFM9bm94cCBERUJVRz0xIElOU1RBTExESVI9Li5cLi5cdGNsdGsgVENMRElSPS4uXC4uXHRjbC04LjUuMTEuMCBhbGwKLSAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBDT01QSUxFUkZMQUdTPS1EV0lOVkVSPTB4MDUwMCBPUFRTPW5veHAgREVCVUc9MSBJTlNUQUxMRElSPS4uXC4uXHRjbHRrIFRDTERJUj0uLlwuLlx0Y2wtOC41LjExLjAgaW5zdGFsbAorICAgIG5tYWtlIC1mIG1ha2VmaWxlLnZjIE9QVFM9bm94cCBERUJVRz0xIElOU1RBTExESVI9Li5cLi5cdGNsdGsgVENMRElSPS4uXC4uXHRjbC04LjUuMTEuMCBjbGVhbgorICAgIG5tYWtlIC1mIG1ha2VmaWxlLnZjIE9QVFM9bm94cCBERUJVRz0xIElOU1RBTExESVI9Li5cLi5cdGNsdGsgVENMRElSPS4uXC4uXHRjbC04LjUuMTEuMCBhbGwKKyAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBPUFRTPW5veHAgREVCVUc9MSBJTlNUQUxMRElSPS4uXC4uXHRjbHRrIFRDTERJUj0uLlwuLlx0Y2wtOC41LjExLjAgaW5zdGFsbAogICAgIGNkIC4uXC4uCiApCmRpZmYgLS1naXQgYS9Ub29scy9mcmVlemUvYmtmaWxlLnB5IGIvVG9vbHMvZnJlZXplL2JrZmlsZS5weQppbmRleCAwZTg5NWYyLi41ODI0NmZhIDEwMDY0NAotLS0gYS9Ub29scy9mcmVlemUvYmtmaWxlLnB5CisrKyBiL1Rvb2xzL2ZyZWV6ZS9ia2ZpbGUucHkKQEAgLTcsMTEgKzcsMTEgQEAKICAgICAgICAgc2VsZi5fX2JhY2t1cCA9IGZpbGUgKyAnficKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgb3MudW5saW5rKHNlbGYuX19iYWNrdXApCi0gICAgICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG9zLnJlbmFtZShmaWxlLCBzZWxmLl9fYmFja3VwKQotICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgc2VsZi5fX2JhY2t1cCA9IE5vbmUKICAgICAgICAgc2VsZi5fX2ZpbGUgPSBfb3JpZ19vcGVuKGZpbGUsIG1vZGUsIGJ1ZnNpemUpCiAgICAgICAgIHNlbGYuY2xvc2VkID0gc2VsZi5fX2ZpbGUuY2xvc2VkCmRpZmYgLS1naXQgYS9Ub29scy9mcmVlemUvZnJlZXplLnB5IGIvVG9vbHMvZnJlZXplL2ZyZWV6ZS5weQppbmRleCBhNDEyNjdhLi40NzljYTNjIDEwMDc1NQotLS0gYS9Ub29scy9mcmVlemUvZnJlZXplLnB5CisrKyBiL1Rvb2xzL2ZyZWV6ZS9mcmVlemUucHkKQEAgLTEyNSw3ICsxMjUsNyBAQAogICAgICMgZGVmYXVsdCB0aGUgZXhjbHVkZSBsaXN0IGZvciBlYWNoIHBsYXRmb3JtCiAgICAgaWYgd2luOiBleGNsdWRlID0gZXhjbHVkZSArIFsKICAgICAgICAgJ2RvcycsICdkb3NwYXRoJywgJ21hYycsICdtYWNwYXRoJywgJ21hY2ZzJywgJ01BQ0ZTJywgJ3Bvc2l4JywKLSAgICAgICAgJ29zMicsICdjZScsCisgICAgICAgICdjZScsCiAgICAgICAgIF0KIAogICAgIGZhaWxfaW1wb3J0ID0gZXhjbHVkZVs6XQpAQCAtMzExLDcgKzMxMSw3IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG9zLm1rZGlyKG9kaXIpCiAgICAgICAgICAgICBwcmludCgiQ3JlYXRlZCBvdXRwdXQgZGlyZWN0b3J5Iiwgb2RpcikKLSAgICAgICAgZXhjZXB0IG9zLmVycm9yIGFzIG1zZzoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICAgICAgdXNhZ2UoJyVzOiBta2RpciBmYWlsZWQgKCVzKScgJSAob2Rpciwgc3RyKG1zZykpKQogICAgIGJhc2UgPSAnJwogICAgIGlmIG9kaXI6CmRpZmYgLS1naXQgYS9Ub29scy9nZGIvbGlicHl0aG9uLnB5IGIvVG9vbHMvZ2RiL2xpYnB5dGhvbi5weQppbmRleCA4NGQ0ZmEzLi5lZjY5MzU5IDEwMDY0NAotLS0gYS9Ub29scy9nZGIvbGlicHl0aG9uLnB5CisrKyBiL1Rvb2xzL2dkYi9saWJweXRob24ucHkKQEAgLTExNjAsNyArMTE2MCw5IEBACiAgICAgICAgICMgQ29udmVydCB0aGUgaW50IGNvZGUgcG9pbnRzIHRvIHVuaWNvZGUgY2hhcmFjdGVycywgYW5kIGdlbmVyYXRlIGEKICAgICAgICAgIyBsb2NhbCB1bmljb2RlIGluc3RhbmNlLgogICAgICAgICAjIFRoaXMgc3BsaXRzIHN1cnJvZ2F0ZSBwYWlycyBpZiBzaXplb2YoUHlfVU5JQ09ERSkgaXMgMiBoZXJlIChpbiBnZGIpLgotICAgICAgICByZXN1bHQgPSB1Jycuam9pbihbX3VuaWNocih1Y3MpIGZvciB1Y3MgaW4gUHlfVU5JQ09ERXNdKQorICAgICAgICByZXN1bHQgPSB1Jycuam9pbihbCisgICAgICAgICAgICAoX3VuaWNocih1Y3MpIGlmIHVjcyA8PSAweDEwZmZmZiBlbHNlICdcdWZmZmQnKQorICAgICAgICAgICAgZm9yIHVjcyBpbiBQeV9VTklDT0RFc10pCiAgICAgICAgIHJldHVybiByZXN1bHQKIAogICAgIGRlZiB3cml0ZV9yZXByKHNlbGYsIG91dCwgdmlzaXRlZCk6CmRpZmYgLS1naXQgYS9Ub29scy9pbXBvcnRiZW5jaC9pbXBvcnRiZW5jaC5weSBiL1Rvb2xzL2ltcG9ydGJlbmNoL2ltcG9ydGJlbmNoLnB5CmluZGV4IDcxNGMwZTQuLjYzNWRkNTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2ltcG9ydGJlbmNoL2ltcG9ydGJlbmNoLnB5CisrKyBiL1Rvb2xzL2ltcG9ydGJlbmNoL2ltcG9ydGJlbmNoLnB5CkBAIC00Niw4ICs0Niw3IEBACiAgICAgbW9kdWxlLl9fcGFja2FnZV9fID0gJycKICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKToKICAgICAgICAgc3lzLm1vZHVsZXNbbmFtZV0gPSBtb2R1bGUKLSAgICAgICAgZm9yIHJlc3VsdCBpbiBiZW5jaChuYW1lLCByZXBlYXQ9cmVwZWF0LCBzZWNvbmRzPXNlY29uZHMpOgotICAgICAgICAgICAgeWllbGQgcmVzdWx0CisgICAgICAgIHlpZWxkIGZyb20gYmVuY2gobmFtZSwgcmVwZWF0PXJlcGVhdCwgc2Vjb25kcz1zZWNvbmRzKQogCiAKIGRlZiBidWlsdGluX21vZChzZWNvbmRzLCByZXBlYXQpOgpAQCAtNTYsOSArNTUsOCBAQAogICAgIGlmIG5hbWUgaW4gc3lzLm1vZHVsZXM6CiAgICAgICAgIGRlbCBzeXMubW9kdWxlc1tuYW1lXQogICAgICMgUmVseWluZyBvbiBidWlsdC1pbiBpbXBvcnRlciBiZWluZyBpbXBsaWNpdC4KLSAgICBmb3IgcmVzdWx0IGluIGJlbmNoKG5hbWUsIGxhbWJkYTogc3lzLm1vZHVsZXMucG9wKG5hbWUpLCByZXBlYXQ9cmVwZWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kcz1zZWNvbmRzKToKLSAgICAgICAgeWllbGQgcmVzdWx0CisgICAgeWllbGQgZnJvbSBiZW5jaChuYW1lLCBsYW1iZGE6IHN5cy5tb2R1bGVzLnBvcChuYW1lKSwgcmVwZWF0PXJlcGVhdCwKKyAgICAgICAgICAgICAgICAgICAgIHNlY29uZHM9c2Vjb25kcykKIAogCiBkZWYgc291cmNlX3dvX2J5dGVjb2RlKHNlY29uZHMsIHJlcGVhdCk6CkBAIC03Myw5ICs3MSw4IEBACiAgICAgICAgICAgICBsb2FkZXIgPSAoaW1wb3J0bGliLm1hY2hpbmVyeS5Tb3VyY2VGaWxlTG9hZGVyLAogICAgICAgICAgICAgICAgICAgICAgIGltcG9ydGxpYi5tYWNoaW5lcnkuU09VUkNFX1NVRkZJWEVTLCBUcnVlKQogICAgICAgICAgICAgc3lzLnBhdGhfaG9va3MuYXBwZW5kKGltcG9ydGxpYi5tYWNoaW5lcnkuRmlsZUZpbmRlci5wYXRoX2hvb2sobG9hZGVyKSkKLSAgICAgICAgICAgIGZvciByZXN1bHQgaW4gYmVuY2gobmFtZSwgbGFtYmRhOiBzeXMubW9kdWxlcy5wb3AobmFtZSksIHJlcGVhdD1yZXBlYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHM9c2Vjb25kcyk6Ci0gICAgICAgICAgICAgICAgeWllbGQgcmVzdWx0CisgICAgICAgICAgICB5aWVsZCBmcm9tIGJlbmNoKG5hbWUsIGxhbWJkYTogc3lzLm1vZHVsZXMucG9wKG5hbWUpLCByZXBlYXQ9cmVwZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRzPXNlY29uZHMpCiAgICAgZmluYWxseToKICAgICAgICAgc3lzLmRvbnRfd3JpdGVfYnl0ZWNvZGUgPSBGYWxzZQogCkBAIC04OSw5ICs4Niw4IEBACiAgICAgICAgICAgICBvcy51bmxpbmsoYnl0ZWNvZGVfcGF0aCkKICAgICAgICAgc3lzLmRvbnRfd3JpdGVfYnl0ZWNvZGUgPSBUcnVlCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIGZvciByZXN1bHQgaW4gYmVuY2gobmFtZSwgbGFtYmRhOiBzeXMubW9kdWxlcy5wb3AobmFtZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGVhdD1yZXBlYXQsIHNlY29uZHM9c2Vjb25kcyk6Ci0gICAgICAgICAgICAgICAgeWllbGQgcmVzdWx0CisgICAgICAgICAgICB5aWVsZCBmcm9tIGJlbmNoKG5hbWUsIGxhbWJkYTogc3lzLm1vZHVsZXMucG9wKG5hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBlYXQ9cmVwZWF0LCBzZWNvbmRzPXNlY29uZHMpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzeXMuZG9udF93cml0ZV9ieXRlY29kZSA9IEZhbHNlCiAKQEAgLTEyNyw4ICsxMjMsNyBAQAogICAgICAgICBkZWYgY2xlYW51cCgpOgogICAgICAgICAgICAgc3lzLm1vZHVsZXMucG9wKG5hbWUpCiAgICAgICAgICAgICBvcy51bmxpbmsoaW1wLmNhY2hlX2Zyb21fc291cmNlKG1vZHVsZS5fX2ZpbGVfXykpCi0gICAgICAgIGZvciByZXN1bHQgaW4gYmVuY2gobmFtZSwgY2xlYW51cCwgcmVwZWF0PXJlcGVhdCwgc2Vjb25kcz1zZWNvbmRzKToKLSAgICAgICAgICAgIHlpZWxkIHJlc3VsdAorICAgICAgICB5aWVsZCBmcm9tIGJlbmNoKG5hbWUsIGNsZWFudXAsIHJlcGVhdD1yZXBlYXQsIHNlY29uZHM9c2Vjb25kcykKIAogICAgIHdyaXRpbmdfYnl0ZWNvZGVfYmVuY2htYXJrLl9fZG9jX18gPSAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRpbmdfYnl0ZWNvZGVfYmVuY2htYXJrLl9fZG9jX18uZm9ybWF0KG5hbWUpKQpAQCAtMTQ4LDkgKzE0Myw4IEBACiAgICAgICAgIHN5cy5wYXRoX2hvb2tzLmFwcGVuZChpbXBvcnRsaWIubWFjaGluZXJ5LkZpbGVGaW5kZXIucGF0aF9ob29rKGxvYWRlcikpCiAgICAgICAgIHB5X2NvbXBpbGUuY29tcGlsZShtYXBwaW5nW25hbWVdKQogICAgICAgICBhc3NlcnQgb3MucGF0aC5leGlzdHMoaW1wLmNhY2hlX2Zyb21fc291cmNlKG1hcHBpbmdbbmFtZV0pKQotICAgICAgICBmb3IgcmVzdWx0IGluIGJlbmNoKG5hbWUsIGxhbWJkYTogc3lzLm1vZHVsZXMucG9wKG5hbWUpLCByZXBlYXQ9cmVwZWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHM9c2Vjb25kcyk6Ci0gICAgICAgICAgICB5aWVsZCByZXN1bHQKKyAgICAgICAgeWllbGQgZnJvbSBiZW5jaChuYW1lLCBsYW1iZGE6IHN5cy5tb2R1bGVzLnBvcChuYW1lKSwgcmVwZWF0PXJlcGVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRzPXNlY29uZHMpCiAKIAogZGVmIF91c2luZ19ieXRlY29kZShtb2R1bGUpOgpAQCAtMTU4LDkgKzE1Miw4IEBACiAgICAgZGVmIHVzaW5nX2J5dGVjb2RlX2JlbmNobWFyayhzZWNvbmRzLCByZXBlYXQpOgogICAgICAgICAiIiJTb3VyY2Ugdy8gYnl0ZWNvZGU6IHt9IiIiCiAgICAgICAgIHB5X2NvbXBpbGUuY29tcGlsZShtb2R1bGUuX19maWxlX18pCi0gICAgICAgIGZvciByZXN1bHQgaW4gYmVuY2gobmFtZSwgbGFtYmRhOiBzeXMubW9kdWxlcy5wb3AobmFtZSksIHJlcGVhdD1yZXBlYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kcz1zZWNvbmRzKToKLSAgICAgICAgICAgIHlpZWxkIHJlc3VsdAorICAgICAgICB5aWVsZCBmcm9tIGJlbmNoKG5hbWUsIGxhbWJkYTogc3lzLm1vZHVsZXMucG9wKG5hbWUpLCByZXBlYXQ9cmVwZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHM9c2Vjb25kcykKIAogICAgIHVzaW5nX2J5dGVjb2RlX2JlbmNobWFyay5fX2RvY19fID0gKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZ19ieXRlY29kZV9iZW5jaG1hcmsuX19kb2NfXy5mb3JtYXQobmFtZSkpCmRpZmYgLS1naXQgYS9Ub29scy9tc2kvbXNpLnB5IGIvVG9vbHMvbXNpL21zaS5weQppbmRleCAyZWM2OTUxLi5mY2E0M2UyIDEwMDY0NAotLS0gYS9Ub29scy9tc2kvbXNpLnB5CisrKyBiL1Rvb2xzL21zaS9tc2kucHkKQEAgLTk5LDcgKzk5LDkgQEAKICAgICAnX211bHRpcHJvY2Vzc2luZy5weWQnLAogICAgICdfbHptYS5weWQnLAogICAgICdfZGVjaW1hbC5weWQnLAotICAgICdfdGVzdGJ1ZmZlci5weWQnCisgICAgJ190ZXN0YnVmZmVyLnB5ZCcsCisgICAgJ19zaGEzLnB5ZCcsCisgICAgJ190ZXN0aW1wb3J0bXVsdGlwbGUucHlkJywKIF0KIAogIyBXZWxsLWtub3duIGNvbXBvbmVudCBVVUlEcwpAQCAtOTU0LDggKzk1Niw2IEBACiAgICAgIyBBZGQgYWxsIGV4ZWN1dGFibGVzLCBpY29ucywgdGV4dCBmaWxlcyBpbnRvIHRoZSBUQVJHRVRESVIgY29tcG9uZW50CiAgICAgcm9vdCA9IFB5RGlyZWN0b3J5KGRiLCBjYWIsIE5vbmUsIHNyY2RpciwgIlRBUkdFVERJUiIsICJTb3VyY2VEaXIiKQogICAgIGRlZmF1bHRfZmVhdHVyZS5zZXRfY3VycmVudCgpCi0gICAgaWYgbm90IG1zaWxpYi5XaW42NDoKLSAgICAgICAgcm9vdC5hZGRfZmlsZSgiJXMvdzl4cG9wZW4uZXhlIiAlIFBDQlVJTEQpCiAgICAgcm9vdC5hZGRfZmlsZSgiUkVBRE1FLnR4dCIsIHNyYz0iUkVBRE1FIikKICAgICByb290LmFkZF9maWxlKCJORVdTLnR4dCIsIHNyYz0iTWlzYy9ORVdTIikKICAgICBnZW5lcmF0ZV9saWNlbnNlKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL3BhcnNlci91bnBhcnNlLnB5IGIvVG9vbHMvcGFyc2VyL3VucGFyc2UucHkKaW5kZXggYjU1ZTJjNi4uODM3Y2Q4MSAxMDA2NDQKLS0tIGEvVG9vbHMvcGFyc2VyL3VucGFyc2UucHkKKysrIGIvVG9vbHMvcGFyc2VyL3VucGFyc2UucHkKQEAgLTMwNyw2ICszMDcsOSBAQAogICAgIGRlZiBfTmFtZShzZWxmLCB0KToKICAgICAgICAgc2VsZi53cml0ZSh0LmlkKQogCisgICAgZGVmIF9OYW1lQ29uc3RhbnQoc2VsZiwgdCk6CisgICAgICAgIHNlbGYud3JpdGUocmVwcih0LnZhbHVlKSkKKwogICAgIGRlZiBfTnVtKHNlbGYsIHQpOgogICAgICAgICAjIFN1YnN0aXR1dGUgb3ZlcmZsb3dpbmcgZGVjaW1hbCBsaXRlcmFsIGZvciBBU1QgaW5maW5pdGllcy4KICAgICAgICAgc2VsZi53cml0ZShyZXByKHQubikucmVwbGFjZSgiaW5mIiwgSU5GU1RSKSkKQEAgLTUxNSwxMCArNTE4LDEwIEBACiAgICAgICAgICAgICBlbHNlOiBzZWxmLndyaXRlKCIsICIpCiAgICAgICAgICAgICBzZWxmLndyaXRlKCIqIikKICAgICAgICAgICAgIGlmIHQudmFyYXJnOgotICAgICAgICAgICAgICAgIHNlbGYud3JpdGUodC52YXJhcmcpCi0gICAgICAgICAgICAgICAgaWYgdC52YXJhcmdhbm5vdGF0aW9uOgorICAgICAgICAgICAgICAgIHNlbGYud3JpdGUodC52YXJhcmcuYXJnKQorICAgICAgICAgICAgICAgIGlmIHQudmFyYXJnLmFubm90YXRpb246CiAgICAgICAgICAgICAgICAgICAgIHNlbGYud3JpdGUoIjogIikKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5kaXNwYXRjaCh0LnZhcmFyZ2Fubm90YXRpb24pCisgICAgICAgICAgICAgICAgICAgIHNlbGYuZGlzcGF0Y2godC52YXJhcmcuYW5ub3RhdGlvbikKIAogICAgICAgICAjIGtleXdvcmQtb25seSBhcmd1bWVudHMKICAgICAgICAgaWYgdC5rd29ubHlhcmdzOgpAQCAtNTM0LDEwICs1MzcsMTAgQEAKICAgICAgICAgaWYgdC5rd2FyZzoKICAgICAgICAgICAgIGlmIGZpcnN0OmZpcnN0ID0gRmFsc2UKICAgICAgICAgICAgIGVsc2U6IHNlbGYud3JpdGUoIiwgIikKLSAgICAgICAgICAgIHNlbGYud3JpdGUoIioqIit0Lmt3YXJnKQotICAgICAgICAgICAgaWYgdC5rd2FyZ2Fubm90YXRpb246CisgICAgICAgICAgICBzZWxmLndyaXRlKCIqKiIrdC5rd2FyZy5hcmcpCisgICAgICAgICAgICBpZiB0Lmt3YXJnLmFubm90YXRpb246CiAgICAgICAgICAgICAgICAgc2VsZi53cml0ZSgiOiAiKQotICAgICAgICAgICAgICAgIHNlbGYuZGlzcGF0Y2godC5rd2FyZ2Fubm90YXRpb24pCisgICAgICAgICAgICAgICAgc2VsZi5kaXNwYXRjaCh0Lmt3YXJnLmFubm90YXRpb24pCiAKICAgICBkZWYgX2tleXdvcmQoc2VsZiwgdCk6CiAgICAgICAgIHNlbGYud3JpdGUodC5hcmcpCmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL2J5ZXh0LnB5IGIvVG9vbHMvc2NyaXB0cy9ieWV4dC5weQppbmRleCBiNzlmZjM3Li43MzZhNDQxIDEwMDc1NQotLS0gYS9Ub29scy9zY3JpcHRzL2J5ZXh0LnB5CisrKyBiL1Rvb2xzL3NjcmlwdHMvYnlleHQucHkKQEAgLTI1LDcgKzI1LDcgQEAKICAgICAgICAgc2VsZi5hZGRzdGF0cygiPGRpcj4iLCAiZGlycyIsIDEpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG5hbWVzID0gb3MubGlzdGRpcihkaXIpCi0gICAgICAgIGV4Y2VwdCBvcy5lcnJvciBhcyBlcnI6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkNhbid0IGxpc3QgJXM6ICVzXG4iICUgKGRpciwgZXJyKSkKICAgICAgICAgICAgIHNlbGYuYWRkc3RhdHMoIjxkaXI+IiwgInVubGlzdGFibGUiLCAxKQogICAgICAgICAgICAgcmV0dXJuCmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL2J5dGV5ZWFycy5weSBiL1Rvb2xzL3NjcmlwdHMvYnl0ZXllYXJzLnB5CmluZGV4IDQ5MGIzN2YuLmY1OGMzNDYgMTAwNzU1Ci0tLSBhL1Rvb2xzL3NjcmlwdHMvYnl0ZXllYXJzLnB5CisrKyBiL1Rvb2xzL3NjcmlwdHMvYnl0ZXllYXJzLnB5CkBAIC00Myw3ICs0Myw3IEBACiAgICAgZm9yIGZpbGVuYW1lIGluIHN5cy5hcmd2WzE6XToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc3QgPSBzdGF0ZnVuYyhmaWxlbmFtZSkKLSAgICAgICAgZXhjZXB0IG9zLmVycm9yIGFzIG1zZzoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiY2FuJ3Qgc3RhdCAlcjogJXJcbiIgJSAoZmlsZW5hbWUsIG1zZykpCiAgICAgICAgICAgICBzdGF0dXMgPSAxCiAgICAgICAgICAgICBzdCA9ICgpCmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL2NoZWNrcHljLnB5IGIvVG9vbHMvc2NyaXB0cy9jaGVja3B5Yy5weQppbmRleCBkNGZkY2UyLi4wMDlmODViIDEwMDc1NQotLS0gYS9Ub29scy9zY3JpcHRzL2NoZWNrcHljLnB5CisrKyBiL1Rvb2xzL3NjcmlwdHMvY2hlY2tweWMucHkKQEAgLTI0LDcgKzI0LDcgQEAKICAgICBmb3IgZGlybmFtZSBpbiBzeXMucGF0aDoKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgbmFtZXMgPSBvcy5saXN0ZGlyKGRpcm5hbWUpCi0gICAgICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwcmludCgnQ2Fubm90IGxpc3QgZGlyZWN0b3J5JywgcmVwcihkaXJuYW1lKSkKICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGlmIG5vdCBzaWxlbnQ6CkBAIC0zNCw3ICszNCw3IEBACiAgICAgICAgICAgICAgICAgbmFtZSA9IG9zLnBhdGguam9pbihkaXJuYW1lLCBuYW1lKQogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgc3QgPSBvcy5zdGF0KG5hbWUpCi0gICAgICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yOgorICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgICAgICBwcmludCgnQ2Fubm90IHN0YXQnLCByZXByKG5hbWUpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgIGlmIHZlcmJvc2U6CmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL2NvcHl0aW1lLnB5IGIvVG9vbHMvc2NyaXB0cy9jb3B5dGltZS5weQppbmRleCBlMDIyMGI1Li43MTU2ODNmIDEwMDc1NQotLS0gYS9Ub29scy9zY3JpcHRzL2NvcHl0aW1lLnB5CisrKyBiL1Rvb2xzL3NjcmlwdHMvY29weXRpbWUucHkKQEAgLTEzLDEyICsxMywxMiBAQAogICAgIGZpbGUxLCBmaWxlMiA9IHN5cy5hcmd2WzFdLCBzeXMuYXJndlsyXQogICAgIHRyeToKICAgICAgICAgc3RhdDEgPSBvcy5zdGF0KGZpbGUxKQotICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgc3lzLnN0ZGVyci53cml0ZShmaWxlMSArICc6IGNhbm5vdCBzdGF0XG4nKQogICAgICAgICBzeXMuZXhpdCgxKQogICAgIHRyeToKICAgICAgICAgb3MudXRpbWUoZmlsZTIsIChzdGF0MVtTVF9BVElNRV0sIHN0YXQxW1NUX01USU1FXSkpCi0gICAgZXhjZXB0IG9zLmVycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICBzeXMuc3RkZXJyLndyaXRlKGZpbGUyICsgJzogY2Fubm90IGNoYW5nZSB0aW1lXG4nKQogICAgICAgICBzeXMuZXhpdCgyKQogCmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL2ZpbmRkaXYucHkgYi9Ub29scy9zY3JpcHRzL2ZpbmRkaXYucHkKaW5kZXggZjI0YTcwMi4uYTcwNWY1NiAxMDA3NTUKLS0tIGEvVG9vbHMvc2NyaXB0cy9maW5kZGl2LnB5CisrKyBiL1Rvb2xzL3NjcmlwdHMvZmluZGRpdi5weQpAQCAtNzAsNyArNzAsNyBAQAogZGVmIHByb2Nlc3NkaXIoZGlyLCBsaXN0bmFtZXMpOgogICAgIHRyeToKICAgICAgICAgbmFtZXMgPSBvcy5saXN0ZGlyKGRpcikKLSAgICBleGNlcHQgb3MuZXJyb3IgYXMgbXNnOgorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIG1zZzoKICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiQ2FuJ3QgbGlzdCBkaXJlY3Rvcnk6ICVzXG4iICUgZGlyKQogICAgICAgICByZXR1cm4gMQogICAgIGZpbGVzID0gW10KZGlmZiAtLWdpdCBhL1Rvb2xzL3NjcmlwdHMvZmluZGxpbmtzdG8ucHkgYi9Ub29scy9zY3JpcHRzL2ZpbmRsaW5rc3RvLnB5CmluZGV4IGI0YzA5ZWYuLmI5MjRmMjcgMTAwNzU1Ci0tLSBhL1Rvb2xzL3NjcmlwdHMvZmluZGxpbmtzdG8ucHkKKysrIGIvVG9vbHMvc2NyaXB0cy9maW5kbGlua3N0by5weQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICAgICAgbGlua3RvID0gb3MucmVhZGxpbmsobmFtZSkKICAgICAgICAgICAgIGlmIHByb2cuc2VhcmNoKGxpbmt0bykgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgcHJpbnQobmFtZSwgJy0+JywgbGlua3RvKQotICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgcGFzcwogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgpkaWZmIC0tZ2l0IGEvVG9vbHMvc2NyaXB0cy9maXhjaWQucHkgYi9Ub29scy9zY3JpcHRzL2ZpeGNpZC5weQppbmRleCA4N2UyYTA5Li4xZTRjNDI4IDEwMDc1NQotLS0gYS9Ub29scy9zY3JpcHRzL2ZpeGNpZC5weQorKysgYi9Ub29scy9zY3JpcHRzL2ZpeGNpZC5weQpAQCAtOTcsNyArOTcsNyBAQAogICAgIGJhZCA9IDAKICAgICB0cnk6CiAgICAgICAgIG5hbWVzID0gb3MubGlzdGRpcihkaXJuYW1lKQotICAgIGV4Y2VwdCBvcy5lcnJvciBhcyBtc2c6CisgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICBlcnIoZGlybmFtZSArICc6IGNhbm5vdCBsaXN0IGRpcmVjdG9yeTogJyArIHN0cihtc2cpICsgJ1xuJykKICAgICAgICAgcmV0dXJuIDEKICAgICBuYW1lcy5zb3J0KCkKQEAgLTE3NSwxNyArMTc1LDE3IEBACiAgICAgdHJ5OgogICAgICAgICBzdGF0YnVmID0gb3Muc3RhdChmaWxlbmFtZSkKICAgICAgICAgb3MuY2htb2QodGVtcG5hbWUsIHN0YXRidWZbU1RfTU9ERV0gJiAwbzc3NzcpCi0gICAgZXhjZXB0IG9zLmVycm9yIGFzIG1zZzoKKyAgICBleGNlcHQgT1NFcnJvciBhcyBtc2c6CiAgICAgICAgIGVycih0ZW1wbmFtZSArICc6IHdhcm5pbmc6IGNobW9kIGZhaWxlZCAoJyArIHN0cihtc2cpICsgJylcbicpCiAgICAgIyBUaGVuIG1ha2UgYSBiYWNrdXAgb2YgdGhlIG9yaWdpbmFsIGZpbGUgYXMgZmlsZW5hbWV+CiAgICAgdHJ5OgogICAgICAgICBvcy5yZW5hbWUoZmlsZW5hbWUsIGZpbGVuYW1lICsgJ34nKQotICAgIGV4Y2VwdCBvcy5lcnJvciBhcyBtc2c6CisgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICBlcnIoZmlsZW5hbWUgKyAnOiB3YXJuaW5nOiBiYWNrdXAgZmFpbGVkICgnICsgc3RyKG1zZykgKyAnKVxuJykKICAgICAjIE5vdyBtb3ZlIHRoZSB0ZW1wIGZpbGUgdG8gdGhlIG9yaWdpbmFsIGZpbGUKICAgICB0cnk6CiAgICAgICAgIG9zLnJlbmFtZSh0ZW1wbmFtZSwgZmlsZW5hbWUpCi0gICAgZXhjZXB0IG9zLmVycm9yIGFzIG1zZzoKKyAgICBleGNlcHQgT1NFcnJvciBhcyBtc2c6CiAgICAgICAgIGVycihmaWxlbmFtZSArICc6IHJlbmFtZSBmYWlsZWQgKCcgKyBzdHIobXNnKSArICcpXG4nKQogICAgICAgICByZXR1cm4gMQogICAgICMgUmV0dXJuIHN1Y2Nlc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL3NjcmlwdHMvZnRwbWlycm9yLnB5IGIvVG9vbHMvc2NyaXB0cy9mdHBtaXJyb3IucHkKaW5kZXggOWU4YmUxZC4uYTFiNjgzYSAxMDA3NTUKLS0tIGEvVG9vbHMvc2NyaXB0cy9mdHBtaXJyb3IucHkKKysrIGIvVG9vbHMvc2NyaXB0cy9mdHBtaXJyb3IucHkKQEAgLTEwOCw3ICsxMDgsNyBAQAogICAgICAgICBpZiB2ZXJib3NlOiBwcmludCgnQ3JlYXRpbmcgbG9jYWwgZGlyZWN0b3J5JywgcmVwcihsb2NhbGRpcikpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG1ha2VkaXIobG9jYWxkaXIpCi0gICAgICAgIGV4Y2VwdCBvcy5lcnJvciBhcyBtc2c6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIG1zZzoKICAgICAgICAgICAgIHByaW50KCJGYWlsZWQgdG8gZXN0YWJsaXNoIGxvY2FsIGRpcmVjdG9yeSIsIHJlcHIobG9jYWxkaXIpKQogICAgICAgICAgICAgcmV0dXJuCiAgICAgaW5mb2ZpbGVuYW1lID0gb3MucGF0aC5qb2luKGxvY2FsZGlyLCAnLm1pcnJvcmluZm8nKQpAQCAtMTgzLDcgKzE4Myw3IEBACiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgb3MudW5saW5rKHRlbXBuYW1lKQotICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgcGFzcwogICAgICAgICBpZiBtb2RlWzBdID09ICdsJzoKICAgICAgICAgICAgIGlmIHZlcmJvc2U6CkBAIC0yMTgsMTEgKzIxOCwxMSBAQAogICAgICAgICAgICAgICAgIGZwMS5jbG9zZSgpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG9zLnVubGluayhmdWxsbmFtZSkKLSAgICAgICAgZXhjZXB0IG9zLmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHBhc3MgICAgICAgICAgICAjIElnbm9yZSB0aGUgZXJyb3IKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgb3MucmVuYW1lKHRlbXBuYW1lLCBmdWxsbmFtZSkKLSAgICAgICAgZXhjZXB0IG9zLmVycm9yIGFzIG1zZzoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICAgICAgcHJpbnQoIkNhbid0IHJlbmFtZSAlciB0byAlcjogJXMiICUgKHRlbXBuYW1lLCBmdWxsbmFtZSwgbXNnKSkKICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGluZm9bZmlsZW5hbWVdID0gaW5mb3N0dWZmCkBAIC0yNTUsNyArMjU1LDcgQEAKICAgICB0cnk6CiAgICAgICAgIGlmIG5vdCBsb2NhbGRpcjogbmFtZXMgPSBvcy5saXN0ZGlyKG9zLmN1cmRpcikKICAgICAgICAgZWxzZTogbmFtZXMgPSBvcy5saXN0ZGlyKGxvY2FsZGlyKQotICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgbmFtZXMgPSBbXQogICAgIGZvciBuYW1lIGluIG5hbWVzOgogICAgICAgICBpZiBuYW1lWzBdID09ICcuJyBvciBuYW1lIGluIGluZm8gb3IgbmFtZSBpbiBzdWJkaXJzOgpAQCAtMzEyLDcgKzMxMiw3IEBACiAgICAgaWYgb3MucGF0aC5pc2RpcihmdWxsbmFtZSkgYW5kIG5vdCBvcy5wYXRoLmlzbGluayhmdWxsbmFtZSk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG5hbWVzID0gb3MubGlzdGRpcihmdWxsbmFtZSkKLSAgICAgICAgZXhjZXB0IG9zLmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIG5hbWVzID0gW10KICAgICAgICAgb2sgPSAxCiAgICAgICAgIGZvciBuYW1lIGluIG5hbWVzOgpAQCAtMzIyLDEzICszMjIsMTMgQEAKICAgICAgICAgICAgIHJldHVybiAwCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG9zLnJtZGlyKGZ1bGxuYW1lKQotICAgICAgICBleGNlcHQgb3MuZXJyb3IgYXMgbXNnOgorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBtc2c6CiAgICAgICAgICAgICBwcmludCgiQ2FuJ3QgcmVtb3ZlIGxvY2FsIGRpcmVjdG9yeSAlcjogJXMiICUgKGZ1bGxuYW1lLCBtc2cpKQogICAgICAgICAgICAgcmV0dXJuIDAKICAgICBlbHNlOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBvcy51bmxpbmsoZnVsbG5hbWUpCi0gICAgICAgIGV4Y2VwdCBvcy5lcnJvciBhcyBtc2c6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIG1zZzoKICAgICAgICAgICAgIHByaW50KCJDYW4ndCByZW1vdmUgbG9jYWwgZmlsZSAlcjogJXMiICUgKGZ1bGxuYW1lLCBtc2cpKQogICAgICAgICAgICAgcmV0dXJuIDAKICAgICByZXR1cm4gMQpAQCAtMzg2LDcgKzM4Niw3IEBACiAgICAgYmFja3VwID0gb3MucGF0aC5qb2luKGRpciwgZm5hbWUgKyAnficpCiAgICAgdHJ5OgogICAgICAgICBvcy51bmxpbmsoYmFja3VwKQotICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgcGFzcwogICAgIGZwID0gb3Blbih0ZW1wbmFtZSwgJ3cnKQogICAgIGZwLndyaXRlKCd7XG4nKQpAQCAtMzk2LDcgKzM5Niw3IEBACiAgICAgZnAuY2xvc2UoKQogICAgIHRyeToKICAgICAgICAgb3MucmVuYW1lKGZpbGVuYW1lLCBiYWNrdXApCi0gICAgZXhjZXB0IG9zLmVycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICBwYXNzCiAgICAgb3MucmVuYW1lKHRlbXBuYW1lLCBmaWxlbmFtZSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvc2NyaXB0cy9saW5rdHJlZS5weSBiL1Rvb2xzL3NjcmlwdHMvbGlua3RyZWUucHkKaW5kZXggOTgyZjQ4MC4uZTgzZjE5OCAxMDA3NTUKLS0tIGEvVG9vbHMvc2NyaXB0cy9saW5rdHJlZS5weQorKysgYi9Ub29scy9zY3JpcHRzL2xpbmt0cmVlLnB5CkBAIC0zMiwxMyArMzIsMTMgQEAKICAgICAgICAgcmV0dXJuIDEKICAgICB0cnk6CiAgICAgICAgIG9zLm1rZGlyKG5ld3RyZWUsIDBvNzc3KQotICAgIGV4Y2VwdCBvcy5lcnJvciBhcyBtc2c6CisgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICBwcmludChuZXd0cmVlICsgJzogY2Fubm90IG1rZGlyOicsIG1zZykKICAgICAgICAgcmV0dXJuIDEKICAgICBsaW5rbmFtZSA9IG9zLnBhdGguam9pbihuZXd0cmVlLCBsaW5rKQogICAgIHRyeToKICAgICAgICAgb3Muc3ltbGluayhvcy5wYXRoLmpvaW4ob3MucGFyZGlyLCBvbGR0cmVlKSwgbGlua25hbWUpCi0gICAgZXhjZXB0IG9zLmVycm9yIGFzIG1zZzoKKyAgICBleGNlcHQgT1NFcnJvciBhcyBtc2c6CiAgICAgICAgIGlmIG5vdCBsaW5rX21heV9mYWlsOgogICAgICAgICAgICAgcHJpbnQobGlua25hbWUgKyAnOiBjYW5ub3Qgc3ltbGluazonLCBtc2cpCiAgICAgICAgICAgICByZXR1cm4gMQpAQCAtNTEsNyArNTEsNyBAQAogICAgIGlmIGRlYnVnOiBwcmludCgnbGlua25hbWVzJywgKG9sZCwgbmV3LCBsaW5rKSkKICAgICB0cnk6CiAgICAgICAgIG5hbWVzID0gb3MubGlzdGRpcihvbGQpCi0gICAgZXhjZXB0IG9zLmVycm9yIGFzIG1zZzoKKyAgICBleGNlcHQgT1NFcnJvciBhcyBtc2c6CiAgICAgICAgIHByaW50KG9sZCArICc6IHdhcm5pbmc6IGNhbm5vdCBsaXN0ZGlyOicsIG1zZykKICAgICAgICAgcmV0dXJuCiAgICAgZm9yIG5hbWUgaW4gbmFtZXM6CmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL3BhcnNlX2h0bWw1X2VudGl0aWVzLnB5IGIvVG9vbHMvc2NyaXB0cy9wYXJzZV9odG1sNV9lbnRpdGllcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDExMzI4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvc2NyaXB0cy9wYXJzZV9odG1sNV9lbnRpdGllcy5weQpAQCAtMCwwICsxLDEwNSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworIiIiCitVdGlsaXR5IGZvciBwYXJzaW5nIEhUTUw1IGVudGl0eSBkZWZpbml0aW9ucyBhdmFpbGFibGUgZnJvbToKKworICAgIGh0dHA6Ly9kZXYudzMub3JnL2h0bWw1L3NwZWMvZW50aXRpZXMuanNvbgorCitXcml0dGVuIGJ5IEV6aW8gTWVsb3R0aSBhbmQgSXVsaWlhIFByb3NrdXJuaWEuCisKKyIiIgorCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2ltcG9ydCBqc29uCitmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmxvcGVuCitmcm9tIGh0bWwuZW50aXRpZXMgaW1wb3J0IGh0bWw1CisKK2VudGl0aWVzX3VybCA9ICdodHRwOi8vZGV2LnczLm9yZy9odG1sNS9zcGVjL2VudGl0aWVzLmpzb24nCisKK2RlZiBnZXRfanNvbih1cmwpOgorICAgICIiIkRvd25sb2FkIHRoZSBqc29uIGZpbGUgZnJvbSB0aGUgdXJsIGFuZCByZXR1cm5zIGEgZGVjb2RlZCBvYmplY3QuIiIiCisgICAgd2l0aCB1cmxvcGVuKHVybCkgYXMgZjoKKyAgICAgICAgZGF0YSA9IGYucmVhZCgpLmRlY29kZSgndXRmLTgnKQorICAgIHJldHVybiBqc29uLmxvYWRzKGRhdGEpCisKK2RlZiBjcmVhdGVfZGljdChlbnRpdGllcyk6CisgICAgIiIiQ3JlYXRlIHRoZSBodG1sNSBkaWN0IGZyb20gdGhlIGRlY29kZWQganNvbiBvYmplY3QuIiIiCisgICAgbmV3X2h0bWw1ID0ge30KKyAgICBmb3IgbmFtZSwgdmFsdWUgaW4gZW50aXRpZXMuaXRlbXMoKToKKyAgICAgICAgbmV3X2h0bWw1W25hbWUubHN0cmlwKCcmJyldID0gdmFsdWVbJ2NoYXJhY3RlcnMnXQorICAgIHJldHVybiBuZXdfaHRtbDUKKworZGVmIGNvbXBhcmVfZGljdHMob2xkLCBuZXcpOgorICAgICIiIkNvbXBhcmUgdGhlIG9sZCBhbmQgbmV3IGRpY3RzIGFuZCBwcmludCB0aGUgZGlmZmVyZW5jZXMuIiIiCisgICAgYWRkZWQgPSBuZXcua2V5cygpIC0gb2xkLmtleXMoKQorICAgIGlmIGFkZGVkOgorICAgICAgICBwcmludCgne30gZW50aXRpZShzKSBoYXZlIGJlZW4gYWRkZWQ6Jy5mb3JtYXQobGVuKGFkZGVkKSkpCisgICAgICAgIGZvciBuYW1lIGluIHNvcnRlZChhZGRlZCk6CisgICAgICAgICAgICBwcmludCgnICB7IXJ9OiB7IXJ9Jy5mb3JtYXQobmFtZSwgbmV3W25hbWVdKSkKKyAgICByZW1vdmVkID0gb2xkLmtleXMoKSAtIG5ldy5rZXlzKCkKKyAgICBpZiByZW1vdmVkOgorICAgICAgICBwcmludCgne30gZW50aXRpZShzKSBoYXZlIGJlZW4gcmVtb3ZlZDonLmZvcm1hdChsZW4ocmVtb3ZlZCkpKQorICAgICAgICBmb3IgbmFtZSBpbiBzb3J0ZWQocmVtb3ZlZCk6CisgICAgICAgICAgICBwcmludCgnICB7IXJ9OiB7IXJ9Jy5mb3JtYXQobmFtZSwgb2xkW25hbWVdKSkKKyAgICBjaGFuZ2VkID0gc2V0KCkKKyAgICBmb3IgbmFtZSBpbiAob2xkLmtleXMoKSAmIG5ldy5rZXlzKCkpOgorICAgICAgICBpZiBvbGRbbmFtZV0gIT0gbmV3W25hbWVdOgorICAgICAgICAgICAgY2hhbmdlZC5hZGQoKG5hbWUsIG9sZFtuYW1lXSwgbmV3W25hbWVdKSkKKyAgICBpZiBjaGFuZ2VkOgorICAgICAgICBwcmludCgne30gZW50aXRpZShzKSBoYXZlIGJlZW4gbW9kaWZpZWQ6Jy5mb3JtYXQobGVuKGNoYW5nZWQpKSkKKyAgICAgICAgZm9yIGl0ZW0gaW4gc29ydGVkKGNoYW5nZWQpOgorICAgICAgICAgICAgcHJpbnQoJyAgeyFyfTogeyFyfSAtPiB7IXJ9Jy5mb3JtYXQoKml0ZW0pKQorCitkZWYgd3JpdGVfaXRlbXMoZW50aXRpZXMsIGZpbGU9c3lzLnN0ZG91dCk6CisgICAgIiIiV3JpdGUgdGhlIGl0ZW1zIG9mIHRoZSBkaWN0aW9uYXJ5IGluIHRoZSBzcGVjaWZpZWQgZmlsZS4iIiIKKyAgICAjIFRoZSBrZXlzIGluIHRoZSBnZW5lcmF0ZWQgZGljdGlvbmFyeSBzaG91bGQgYmUgc29ydGVkCisgICAgIyBpbiBhIGNhc2UtaW5zZW5zaXRpdmUgd2F5LCBob3dldmVyLCB3aGVuIHR3byBrZXlzIGFyZSBlcXVhbCwKKyAgICAjIHRoZSB1cHBlcmNhc2UgdmVyc2lvbiBzaG91bGQgY29tZSBmaXJzdCBzbyB0aGF0IHRoZSByZXN1bHQKKyAgICAjIGxvb2tzIGxpa2U6IFsnQWFjdXRlJywgJ2FhY3V0ZScsICdBYWN1dGU7JywgJ2FhY3V0ZTsnLCAuLi5dCisgICAgIyBUbyBkbyB0aGlzIHdlIGZpcnN0IHNvcnQgaW4gYSBjYXNlLXNlbnNpdGl2ZSB3YXkgKHNvIGFsbCB0aGUKKyAgICAjIHVwcGVyY2FzZSBjaGFycyBjb21lIGZpcnN0KSBhbmQgdGhlbiBzb3J0IHdpdGgga2V5PXN0ci5sb3dlci4KKyAgICAjIFNpbmNlIHRoZSBzb3J0aW5nIGlzIHN0YWJsZSB0aGUgdXBwZXJjYXNlIGtleXMgd2lsbCBldmVudHVhbGx5CisgICAgIyBiZSBiZWZvcmUgdGhlaXIgZXF1aXZhbGVudCBsb3dlcmNhc2UgdmVyc2lvbi4KKyAgICBrZXlzID0gc29ydGVkKGVudGl0aWVzLmtleXMoKSkKKyAgICBrZXlzID0gc29ydGVkKGtleXMsIGtleT1zdHIubG93ZXIpCisgICAgcHJpbnQoJ2h0bWw1ID0geycsIGZpbGU9ZmlsZSkKKyAgICBmb3IgbmFtZSBpbiBrZXlzOgorICAgICAgICBwcmludCgnICAgIHshcn06IHshYX0sJy5mb3JtYXQobmFtZSwgZW50aXRpZXNbbmFtZV0pLCBmaWxlPWZpbGUpCisgICAgcHJpbnQoJ30nLCBmaWxlPWZpbGUpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICAjIHdpdGhvdXQgYXJncyBwcmludCBhIGRpZmYgYmV0d2VlbiBodG1sLmVudGl0aWVzLmh0bWw1IGFuZCBuZXdfaHRtbDUKKyAgICAjIHdpdGggLS1jcmVhdGUgcHJpbnQgdGhlIG5ldyBodG1sNSBkaWN0CisgICAgIyB3aXRoIC0tcGF0Y2ggcGF0Y2ggdGhlIExpYi9odG1sL2VudGl0aWVzLnB5IGZpbGUKKyAgICBuZXdfaHRtbDUgPSBjcmVhdGVfZGljdChnZXRfanNvbihlbnRpdGllc191cmwpKQorICAgIGlmICctLWNyZWF0ZScgaW4gc3lzLmFyZ3Y6CisgICAgICAgIHByaW50KCcjIG1hcCB0aGUgSFRNTDUgbmFtZWQgY2hhcmFjdGVyIHJlZmVyZW5jZXMgdG8gdGhlICcKKyAgICAgICAgICAgICAgJ2VxdWl2YWxlbnQgVW5pY29kZSBjaGFyYWN0ZXIocyknKQorICAgICAgICBwcmludCgnIyBHZW5lcmF0ZWQgYnkge30uICBEbyBub3QgZWRpdCBtYW51YWxseS4nLmZvcm1hdChfX2ZpbGVfXykpCisgICAgICAgIHdyaXRlX2l0ZW1zKG5ld19odG1sNSkKKyAgICBlbGlmICctLXBhdGNoJyBpbiBzeXMuYXJndjoKKyAgICAgICAgZm5hbWUgPSAnTGliL2h0bWwvZW50aXRpZXMucHknCisgICAgICAgIHRlbXBfZm5hbWUgPSBmbmFtZSArICcudGVtcCcKKyAgICAgICAgd2l0aCBvcGVuKGZuYW1lKSBhcyBmMSwgb3Blbih0ZW1wX2ZuYW1lLCAndycpIGFzIGYyOgorICAgICAgICAgICAgc2tpcCA9IEZhbHNlCisgICAgICAgICAgICBmb3IgbGluZSBpbiBmMToKKyAgICAgICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJ2h0bWw1ID0geycpOgorICAgICAgICAgICAgICAgICAgICB3cml0ZV9pdGVtcyhuZXdfaHRtbDUsIGZpbGU9ZjIpCisgICAgICAgICAgICAgICAgICAgIHNraXAgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgc2tpcDoKKyAgICAgICAgICAgICAgICAgICAgIyBza2lwIHRoZSBvbGQgaXRlbXMgdW50aWwgdGhlIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCd9Jyk6CisgICAgICAgICAgICAgICAgICAgICAgICBza2lwID0gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBmMi53cml0ZShsaW5lKQorICAgICAgICBvcy5yZW1vdmUoZm5hbWUpCisgICAgICAgIG9zLnJlbmFtZSh0ZW1wX2ZuYW1lLCBmbmFtZSkKKyAgICBlbHNlOgorICAgICAgICBpZiBodG1sNSA9PSBuZXdfaHRtbDU6CisgICAgICAgICAgICBwcmludCgnVGhlIGN1cnJlbnQgZGljdGlvbmFyeSBpcyB1cGRhdGVkLicpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb21wYXJlX2RpY3RzKGh0bWw1LCBuZXdfaHRtbDUpCisgICAgICAgICAgICBwcmludCgnUnVuICIuL3B5dGhvbiB7MH0gLS1wYXRjaCIgdG8gdXBkYXRlIExpYi9odG1sL2VudGl0aWVzLmh0bWwgJworICAgICAgICAgICAgICAgICAgJ29yICIuL3B5dGhvbiB7MH0gLS1jcmVhdGUiIHRvIHNlZSB0aGUgZ2VuZXJhdGVkICcgJ2RpY3Rpb25hcnkuJy5mb3JtYXQoX19maWxlX18pKQpkaWZmIC0tZ2l0IGEvVG9vbHMvc2NyaXB0cy9wYXRoZml4LnB5IGIvVG9vbHMvc2NyaXB0cy9wYXRoZml4LnB5CmluZGV4IGRkMDhlMGEuLmFlMTU1NjEgMTAwNzU1Ci0tLSBhL1Rvb2xzL3NjcmlwdHMvcGF0aGZpeC5weQorKysgYi9Ub29scy9zY3JpcHRzL3BhdGhmaXgucHkKQEAgLTczLDcgKzczLDcgQEAKICAgICBiYWQgPSAwCiAgICAgdHJ5OgogICAgICAgICBuYW1lcyA9IG9zLmxpc3RkaXIoZGlybmFtZSkKLSAgICBleGNlcHQgb3MuZXJyb3IgYXMgbXNnOgorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIG1zZzoKICAgICAgICAgZXJyKCclczogY2Fubm90IGxpc3QgZGlyZWN0b3J5OiAlclxuJyAlIChkaXJuYW1lLCBtc2cpKQogICAgICAgICByZXR1cm4gMQogICAgIG5hbWVzLnNvcnQoKQpAQCAtMTMxLDI0ICsxMzEsMjQgQEAKICAgICAgICAgbXRpbWUgPSBzdGF0YnVmLnN0X210aW1lCiAgICAgICAgIGF0aW1lID0gc3RhdGJ1Zi5zdF9hdGltZQogICAgICAgICBvcy5jaG1vZCh0ZW1wbmFtZSwgc3RhdGJ1ZltTVF9NT0RFXSAmIDBvNzc3NykKLSAgICBleGNlcHQgb3MuZXJyb3IgYXMgbXNnOgorICAgIGV4Y2VwdCBPU0Vycm9yIGFzIG1zZzoKICAgICAgICAgZXJyKCclczogd2FybmluZzogY2htb2QgZmFpbGVkICglcilcbicgJSAodGVtcG5hbWUsIG1zZykpCiAgICAgIyBUaGVuIG1ha2UgYSBiYWNrdXAgb2YgdGhlIG9yaWdpbmFsIGZpbGUgYXMgZmlsZW5hbWV+CiAgICAgdHJ5OgogICAgICAgICBvcy5yZW5hbWUoZmlsZW5hbWUsIGZpbGVuYW1lICsgJ34nKQotICAgIGV4Y2VwdCBvcy5lcnJvciBhcyBtc2c6CisgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICBlcnIoJyVzOiB3YXJuaW5nOiBiYWNrdXAgZmFpbGVkICglcilcbicgJSAoZmlsZW5hbWUsIG1zZykpCiAgICAgIyBOb3cgbW92ZSB0aGUgdGVtcCBmaWxlIHRvIHRoZSBvcmlnaW5hbCBmaWxlCiAgICAgdHJ5OgogICAgICAgICBvcy5yZW5hbWUodGVtcG5hbWUsIGZpbGVuYW1lKQotICAgIGV4Y2VwdCBvcy5lcnJvciBhcyBtc2c6CisgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICBlcnIoJyVzOiByZW5hbWUgZmFpbGVkICglcilcbicgJSAoZmlsZW5hbWUsIG1zZykpCiAgICAgICAgIHJldHVybiAxCiAgICAgaWYgcHJlc2VydmVfdGltZXN0YW1wczoKICAgICAgICAgaWYgYXRpbWUgYW5kIG10aW1lOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIG9zLnV0aW1lKGZpbGVuYW1lLCAoYXRpbWUsIG10aW1lKSkKLSAgICAgICAgICAgIGV4Y2VwdCBvcy5lcnJvciBhcyBtc2c6CisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBtc2c6CiAgICAgICAgICAgICAgICAgZXJyKCclczogcmVzZXQgb2YgdGltZXN0YW1wIGZhaWxlZCAoJXIpXG4nICUgKGZpbGVuYW1lLCBtc2cpKQogICAgICAgICAgICAgICAgIHJldHVybiAxCiAgICAgIyBSZXR1cm4gc3VjY2VzCmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL3BpbmRlbnQucHkgYi9Ub29scy9zY3JpcHRzL3BpbmRlbnQucHkKaW5kZXggMjg3MmRjMC4uMzMzMzQyMCAxMDA3NTUKLS0tIGEvVG9vbHMvc2NyaXB0cy9waW5kZW50LnB5CisrKyBiL1Rvb2xzL3NjcmlwdHMvcGluZGVudC5weQpAQCAtMzc2LDEzICszNzYsMTMgQEAKICAgICBpZiBvcy5wYXRoLmxleGlzdHMoYmFja3VwKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgb3MucmVtb3ZlKGJhY2t1cCkKLSAgICAgICAgZXhjZXB0IG9zLmVycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIHByaW50KCJDYW4ndCByZW1vdmUgYmFja3VwICVyIiAlIChiYWNrdXAsKSwgZmlsZT1zeXMuc3RkZXJyKQogICAgICAgICAjIGVuZCB0cnkKICAgICAjIGVuZCBpZgogICAgIHRyeToKICAgICAgICAgb3MucmVuYW1lKGZpbGVuYW1lLCBiYWNrdXApCi0gICAgZXhjZXB0IG9zLmVycm9yOgorICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICBwcmludCgiQ2FuJ3QgcmVuYW1lICVyIHRvICVyIiAlIChmaWxlbmFtZSwgYmFja3VwKSwgZmlsZT1zeXMuc3RkZXJyKQogICAgICMgZW5kIHRyeQogIyBlbmQgZGVmIG1ha2VfYmFja3VwCmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL3JlaW5kZW50LnB5IGIvVG9vbHMvc2NyaXB0cy9yZWluZGVudC5weQppbmRleCA0YTkxNmVhLi4xODQyNGRlIDEwMDc1NQotLS0gYS9Ub29scy9zY3JpcHRzL3JlaW5kZW50LnB5CisrKyBiL1Rvb2xzL3NjcmlwdHMvcmVpbmRlbnQucHkKQEAgLTUyLDggKzUyLDggQEAKIHJlY3Vyc2UgPSBGYWxzZQogZHJ5cnVuID0gRmFsc2UKIG1ha2ViYWNrdXAgPSBUcnVlCisjIEEgc3BlY2lmaWVkIG5ld2xpbmUgdG8gYmUgdXNlZCBpbiB0aGUgb3V0cHV0IChzZXQgYnkgLS1uZXdsaW5lIG9wdGlvbikKIHNwZWNfbmV3bGluZSA9IE5vbmUKLSIiIkEgc3BlY2lmaWVkIG5ld2xpbmUgdG8gYmUgdXNlZCBpbiB0aGUgb3V0cHV0IChzZXQgYnkgLS1uZXdsaW5lIG9wdGlvbikiIiIKIAogCiBkZWYgdXNhZ2UobXNnPU5vbmUpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvc2NyaXB0cy90cmVlc3luYy5weSBiL1Rvb2xzL3NjcmlwdHMvdHJlZXN5bmMucHkKaW5kZXggYjI2NDljNC4uNjUyZDM5NCAxMDA3NTUKLS0tIGEvVG9vbHMvc2NyaXB0cy90cmVlc3luYy5weQorKysgYi9Ub29scy9zY3JpcHRzL3RyZWVzeW5jLnB5CkBAIC03OCw3ICs3OCw3IEBACiAgICAgICAgIHByaW50KCJjcmVhdGluZyBzbGF2ZSBkaXJlY3RvcnkiLCBzbGF2ZSkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgb3MubWtkaXIoc2xhdmUpCi0gICAgICAgIGV4Y2VwdCBvcy5lcnJvciBhcyBtc2c6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIG1zZzoKICAgICAgICAgICAgIHByaW50KCJjYW4ndCBtYWtlIHNsYXZlIGRpcmVjdG9yeSIsIHNsYXZlLCAiOiIsIG1zZykKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBlbHNlOgpkaWZmIC0tZ2l0IGEvVG9vbHMvc2NyaXB0cy91bnRhYmlmeS5weSBiL1Rvb2xzL3NjcmlwdHMvdW50YWJpZnkucHkKaW5kZXggNGI2N2MxNS4uODYxYzgzYyAxMDA3NTUKLS0tIGEvVG9vbHMvc2NyaXB0cy91bnRhYmlmeS5weQorKysgYi9Ub29scy9zY3JpcHRzL3VudGFiaWZ5LnB5CkBAIC0zOSwxMSArMzksMTEgQEAKICAgICBiYWNrdXAgPSBmaWxlbmFtZSArICJ+IgogICAgIHRyeToKICAgICAgICAgb3MudW5saW5rKGJhY2t1cCkKLSAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgIHBhc3MKICAgICB0cnk6CiAgICAgICAgIG9zLnJlbmFtZShmaWxlbmFtZSwgYmFja3VwKQotICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgcGFzcwogICAgIHdpdGggb3BlbihmaWxlbmFtZSwgInciLCBlbmNvZGluZz1lbmNvZGluZykgYXMgZjoKICAgICAgICAgZi53cml0ZShuZXd0ZXh0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvc2NyaXB0cy93aGljaC5weSBiL1Rvb2xzL3NjcmlwdHMvd2hpY2gucHkKaW5kZXggNGZjMzdhMC4uZGY1NGNlMCAxMDA3NTUKLS0tIGEvVG9vbHMvc2NyaXB0cy93aGljaC5weQorKysgYi9Ub29scy9zY3JpcHRzL3doaWNoLnB5CkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICAgICAgICBmaWxlbmFtZSA9IG9zLnBhdGguam9pbihkaXIsIHByb2cpCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc3QgPSBvcy5zdGF0KGZpbGVuYW1lKQotICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yOgorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGlmIG5vdCBTX0lTUkVHKHN0W1NUX01PREVdKToKICAgICAgICAgICAgICAgICBtc2coZmlsZW5hbWUgKyAnOiBub3QgYSBkaXNrIGZpbGUnKQpkaWZmIC0tZ2l0IGEvVG9vbHMvc2NyaXB0cy93aW5fYWRkMnBhdGgucHkgYi9Ub29scy9zY3JpcHRzL3dpbl9hZGQycGF0aC5weQppbmRleCA5MjU5YjQ0Li5jODViZWE1IDEwMDY0NAotLS0gYS9Ub29scy9zY3JpcHRzL3dpbl9hZGQycGF0aC5weQorKysgYi9Ub29scy9zY3JpcHRzL3dpbl9hZGQycGF0aC5weQpAQCAtMzAsNyArMzAsNyBAQAogICAgIHdpdGggd2lucmVnLkNyZWF0ZUtleShIS0NVLCBFTlYpIGFzIGtleToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZW52cGF0aCA9IHdpbnJlZy5RdWVyeVZhbHVlRXgoa2V5LCBQQVRIKVswXQotICAgICAgICBleGNlcHQgV2luZG93c0Vycm9yOgorICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgIGVudnBhdGggPSBERUZBVUxUCiAKICAgICAgICAgcGF0aHMgPSBbZW52cGF0aF0KZGlmZiAtLWdpdCBhL1Rvb2xzL3N0cmluZ2JlbmNoL3N0cmluZ2JlbmNoLnB5IGIvVG9vbHMvc3RyaW5nYmVuY2gvc3RyaW5nYmVuY2gucHkKaW5kZXggYTBhMjFmYS4uYzcyZTE2ZCAxMDA3NTUKLS0tIGEvVG9vbHMvc3RyaW5nYmVuY2gvc3RyaW5nYmVuY2gucHkKKysrIGIvVG9vbHMvc3RyaW5nYmVuY2gvc3RyaW5nYmVuY2gucHkKQEAgLTgwOCw3ICs4MDgsNyBAQAogcHJvZ3JhbW1lcnMgcmVwb3J0IHN1YnN0YW50aWFsIHByb2R1Y3Rpdml0eSBnYWlucyBhbmQgZmVlbCB0aGUgbGFuZ3VhZ2UKIGVuY291cmFnZXMgdGhlIGRldmVsb3BtZW50IG9mIGhpZ2hlciBxdWFsaXR5LCBtb3JlIG1haW50YWluYWJsZSBjb2RlLgogCi1QeXRob24gcnVucyBvbiBXaW5kb3dzLCBMaW51eC9Vbml4LCBNYWMgT1MgWCwgT1MvMiwgQW1pZ2EsIFBhbG0KK1B5dGhvbiBydW5zIG9uIFdpbmRvd3MsIExpbnV4L1VuaXgsIE1hYyBPUyBYLCBBbWlnYSwgUGFsbQogSGFuZGhlbGRzLCBhbmQgTm9raWEgbW9iaWxlIHBob25lcy4gUHl0aG9uIGhhcyBhbHNvIGJlZW4gcG9ydGVkIHRvIHRoZQogSmF2YSBhbmQgLk5FVCB2aXJ0dWFsIG1hY2hpbmVzLgogCmRpZmYgLS1naXQgYS9Ub29scy91bmljb2RlL21ha2V1bmljb2RlZGF0YS5weSBiL1Rvb2xzL3VuaWNvZGUvbWFrZXVuaWNvZGVkYXRhLnB5CmluZGV4IGQ4M2NmNjMuLjJmOGU2MjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL3VuaWNvZGUvbWFrZXVuaWNvZGVkYXRhLnB5CisrKyBiL1Rvb2xzL3VuaWNvZGUvbWFrZXVuaWNvZGVkYXRhLnB5CkBAIC0zNyw3ICszNyw3IEBACiBWRVJTSU9OID0gIjMuMiIKIAogIyBUaGUgVW5pY29kZSBEYXRhYmFzZQotVU5JREFUQV9WRVJTSU9OID0gIjYuMS4wIgorVU5JREFUQV9WRVJTSU9OID0gIjYuMi4wIgogVU5JQ09ERV9EQVRBID0gIlVuaWNvZGVEYXRhJXMudHh0IgogQ09NUE9TSVRJT05fRVhDTFVTSU9OUyA9ICJDb21wb3NpdGlvbkV4Y2x1c2lvbnMlcy50eHQiCiBFQVNUQVNJQU5fV0lEVEggPSAiRWFzdEFzaWFuV2lkdGglcy50eHQiCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggZmZhMDg5Yy4uM2Q4ZGQ2YSAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMSw2ICsxLDYgQEAKICMhIC9iaW4vc2gKICMgR3Vlc3MgdmFsdWVzIGZvciBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyBhbmQgY3JlYXRlIE1ha2VmaWxlcy4KLSMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY5IGZvciBweXRob24gMy4zLgorIyBHZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjkgZm9yIHB5dGhvbiAzLjQuCiAjCiAjIFJlcG9ydCBidWdzIHRvIDxodHRwOi8vYnVncy5weXRob24ub3JnLz4uCiAjCkBAIC01ODAsOCArNTgwLDggQEAKICMgSWRlbnRpdHkgb2YgdGhpcyBwYWNrYWdlLgogUEFDS0FHRV9OQU1FPSdweXRob24nCiBQQUNLQUdFX1RBUk5BTUU9J3B5dGhvbicKLVBBQ0tBR0VfVkVSU0lPTj0nMy4zJwotUEFDS0FHRV9TVFJJTkc9J3B5dGhvbiAzLjMnCitQQUNLQUdFX1ZFUlNJT049JzMuNCcKK1BBQ0tBR0VfU1RSSU5HPSdweXRob24gMy40JwogUEFDS0FHRV9CVUdSRVBPUlQ9J2h0dHA6Ly9idWdzLnB5dGhvbi5vcmcvJwogUEFDS0FHRV9VUkw9JycKIApAQCAtNjI1LDYgKzYyNSw4IEBACiBhY19zdWJzdF92YXJzPSdMVExJQk9CSlMKIFNSQ0RJUlMKIFRIUkVBREhFQURFUlMKK0xJQlBMCitQWV9FTkFCTEVfU0hBUkVECiBFWFRfU1VGRklYCiBTT0FCSQogTElCQwpAQCAtMTM1OCw3ICsxMzYwLDcgQEAKICAgIyBPbWl0IHNvbWUgaW50ZXJuYWwgb3Igb2Jzb2xldGUgb3B0aW9ucyB0byBtYWtlIHRoZSBsaXN0IGxlc3MgaW1wb3NpbmcuCiAgICMgVGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KICAgY2F0IDw8X0FDRU9GCi1cYGNvbmZpZ3VyZScgY29uZmlndXJlcyBweXRob24gMy4zIHRvIGFkYXB0IHRvIG1hbnkga2luZHMgb2Ygc3lzdGVtcy4KK1xgY29uZmlndXJlJyBjb25maWd1cmVzIHB5dGhvbiAzLjQgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgogCiBVc2FnZTogJDAgW09QVElPTl0uLi4gW1ZBUj1WQUxVRV0uLi4KIApAQCAtMTQyMyw3ICsxNDI1LDcgQEAKIAogaWYgdGVzdCAtbiAiJGFjX2luaXRfaGVscCI7IHRoZW4KICAgY2FzZSAkYWNfaW5pdF9oZWxwIGluCi0gICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiBweXRob24gMy4zOiI7OworICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgcHl0aG9uIDMuNDoiOzsKICAgIGVzYWMKICAgY2F0IDw8XF9BQ0VPRgogCkBAIC0xNTYyLDcgKzE1NjQsNyBAQAogdGVzdCAtbiAiJGFjX2luaXRfaGVscCIgJiYgZXhpdCAkYWNfc3RhdHVzCiBpZiAkYWNfaW5pdF92ZXJzaW9uOyB0aGVuCiAgIGNhdCA8PFxfQUNFT0YKLXB5dGhvbiBjb25maWd1cmUgMy4zCitweXRob24gY29uZmlndXJlIDMuNAogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY5CiAKIENvcHlyaWdodCAoQykgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTI0MDEsNyArMjQwMyw3IEBACiBUaGlzIGZpbGUgY29udGFpbnMgYW55IG1lc3NhZ2VzIHByb2R1Y2VkIGJ5IGNvbXBpbGVycyB3aGlsZQogcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4KIAotSXQgd2FzIGNyZWF0ZWQgYnkgcHl0aG9uICRhc19tZSAzLjMsIHdoaWNoIHdhcworSXQgd2FzIGNyZWF0ZWQgYnkgcHl0aG9uICRhc19tZSAzLjQsIHdoaWNoIHdhcwogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY5LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCiAKICAgJCAkMCAkQApAQCAtMjk3MSw3ICsyOTczLDcgQEAKIG12IGNvbmZkZWZzLmgubmV3IGNvbmZkZWZzLmgKIAogCi1WRVJTSU9OPTMuMworVkVSU0lPTj0zLjQKIAogIyBWZXJzaW9uIG51bWJlciBvZiBQeXRob24ncyBvd24gc2hhcmVkIGxpYnJhcnkgZmlsZS4KIApAQCAtNTU3Niw2ICs1NTc4LDcgQEAKIAogIyBPdGhlciBwbGF0Zm9ybXMgZm9sbG93CiBpZiB0ZXN0ICRlbmFibGVfc2hhcmVkID0gInllcyI7IHRoZW4KKyAgUFlfRU5BQkxFX1NIQVJFRD0xCiAKICRhc19lY2hvICIjZGVmaW5lIFB5X0VOQUJMRV9TSEFSRUQgMSIgPj5jb25mZGVmcy5oCiAKQEAgLTU2MzMsNiArNTYzNiw3IEBACiAKICAgZXNhYwogZWxzZSAjIHNoYXJlZCBpcyBkaXNhYmxlZAorICBQWV9FTkFCTEVfU0hBUkVEPTAKICAgY2FzZSAkYWNfc3lzX3N5c3RlbSBpbgogICAgIENZR1dJTiopCiAgICAgICAgICAgQkxETElCUkFSWT0nJChMSUJSQVJZKScKQEAgLTYzNzMsNiArNjM3Nyw0OSBAQAogICAgICAgQkFTRUNGTEFHUz0iJEJBU0VDRkxBR1MgLVduby11bnVzZWQtcmVzdWx0IgogICAgIGZpCiAKKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAtV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQuLi4gIiA+JjY7IH0KKyAgICAgYWNfc2F2ZV9jYz0iJENDIgorICAgICBDQz0iJENDIC1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50IgorICAgICBzYXZlX0NGTEFHUz0iJENGTEFHUyIKKyAgICAgaWYgJHthY19jdl9kZWNsYXJhdGlvbl9hZnRlcl9zdGF0ZW1lbnRfd2FybmluZys6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworCitpbnQKK21haW4gKCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorCitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKworICAgICAgICAgICBhY19jdl9kZWNsYXJhdGlvbl9hZnRlcl9zdGF0ZW1lbnRfd2FybmluZz15ZXMKKworZWxzZQorCisgICAgICAgICAgIGFjX2N2X2RlY2xhcmF0aW9uX2FmdGVyX3N0YXRlbWVudF93YXJuaW5nPW5vCisKK2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCisKKyAgICAgQ0ZMQUdTPSIkc2F2ZV9DRkxBR1MiCisgICAgIENDPSIkYWNfc2F2ZV9jYyIKKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X2RlY2xhcmF0aW9uX2FmdGVyX3N0YXRlbWVudF93YXJuaW5nIiA+JjUKKyRhc19lY2hvICIkYWNfY3ZfZGVjbGFyYXRpb25fYWZ0ZXJfc3RhdGVtZW50X3dhcm5pbmciID4mNjsgfQorCisgICAgaWYgdGVzdCAkYWNfY3ZfZGVjbGFyYXRpb25fYWZ0ZXJfc3RhdGVtZW50X3dhcm5pbmcgPSB5ZXMKKyAgICB0aGVuCisgICAgICBCQVNFQ0ZMQUdTPSIkQkFTRUNGTEFHUyAtV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCIKKyAgICBmaQorCiAgICAgIyBpZiB1c2luZyBnY2Mgb24gYWxwaGEsIHVzZSAtbWllZWUgdG8gZ2V0IChuZWFyKSBmdWxsIElFRUUgNzU0CiAgICAgIyBzdXBwb3J0LiAgV2l0aG91dCB0aGlzLCB0cmVhdG1lbnQgb2Ygc3Vibm9ybWFscyBkb2Vzbid0IGZvbGxvdwogICAgICMgdGhlIHN0YW5kYXJkLgpAQCAtNjUxOSw0NCArNjU2Niw2IEBACiAJQkFTRUNGTEFHUz0iJEJBU0VDRkxBR1MgJGFjX2FyY2hfZmxhZ3MiCiBmaQogCi0jIENoZWNrIHdoZXRoZXIgR0NDIHN1cHBvcnRzIFB5QXJnX1BhcnNlVHVwbGUgZm9ybWF0Ci1pZiB0ZXN0ICIkR0NDIiA9ICJ5ZXMiCi10aGVuCi0gIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciBnY2Mgc3VwcG9ydHMgUGFyc2VUdXBsZSBfX2Zvcm1hdF9fIiA+JjUKLSRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgZ2NjIHN1cHBvcnRzIFBhcnNlVHVwbGUgX19mb3JtYXRfXy4uLiAiID4mNjsgfQotICBzYXZlX0NGTEFHUz0kQ0ZMQUdTCi0gIENGTEFHUz0iJENGTEFHUyAtV2Vycm9yIC1XZm9ybWF0IgotICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0vKiBlbmQgY29uZmRlZnMuaC4gICovCi0KLSAgICB2b2lkIGYoY2hhciosLi4uKV9fYXR0cmlidXRlKChmb3JtYXQoUHlBcmdfUGFyc2VUdXBsZSwgMSwgMikpKTsKLWludAotbWFpbiAoKQotewotCi0gIDsKLSAgcmV0dXJuIDA7Ci19Ci0KLV9BQ0VPRgotaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgotCi0KLSRhc19lY2hvICIjZGVmaW5lIEhBVkVfQVRUUklCVVRFX0ZPUk1BVF9QQVJTRVRVUExFIDEiID4+Y29uZmRlZnMuaAotCi0gICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1Ci0kYXNfZWNobyAieWVzIiA+JjY7IH0KLQotZWxzZQotCi0gICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSRhc19lY2hvICJubyIgPiY2OyB9Ci0KLWZpCi1ybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSAgQ0ZMQUdTPSRzYXZlX0NGTEFHUwotZmkKLQogIyBPbiBzb21lIGNvbXBpbGVycywgcHRocmVhZHMgYXJlIGF2YWlsYWJsZSB3aXRob3V0IGZ1cnRoZXIgb3B0aW9ucwogIyAoZS5nLiBNYWNPUyBYKS4gT24gc29tZSBvZiB0aGVzZSBzeXN0ZW1zLCB0aGUgY29tcGlsZXIgd2lsbCBub3QKICMgY29tcGxhaW4gaWYgdW5hY2NlcHRlZCBvcHRpb25zIGFyZSBwYXNzZWQgKGUuZy4gZ2NjIG9uIE1hYyBPUyBYKS4KQEAgLTcyMjEsNyArNzIzMCw3IEBACiAKIAogIyBPbiBMaW51eCwgY2FuLmggYW5kIGNhbi9yYXcuaCByZXF1aXJlIHN5cy9zb2NrZXQuaAotZm9yIGFjX2hlYWRlciBpbiBsaW51eC9jYW4uaCBsaW51eC9jYW4vcmF3LmgKK2ZvciBhY19oZWFkZXIgaW4gbGludXgvY2FuLmggbGludXgvY2FuL3Jhdy5oIGxpbnV4L2Nhbi9iY20uaAogZG8gOgogICBhc19hY19IZWFkZXI9YCRhc19lY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCiBhY19mbl9jX2NoZWNrX2hlYWRlcl9jb21waWxlICIkTElORU5PIiAiJGFjX2hlYWRlciIgIiRhc19hY19IZWFkZXIiICIKQEAgLTg2MDUsNiArODYxNCwxMiBAQAogCSMgLXUgbGlic3lzX3MgcHVsbHMgaW4gYWxsIHN5bWJvbHMgaW4gbGlic3lzCiAJRGFyd2luLyopCiAJCUxJTktGT1JTSEFSRUQ9IiRleHRyYV91bmRlZnMgLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiIKKworCQkjIElzc3VlICMxODA3NTogdGhlIGRlZmF1bHQgbWF4aW11bSBzdGFjayBzaXplICg4TUJ5dGVzKSBpcyB0b28KKwkJIyBzbWFsbCBmb3IgdGhlIGRlZmF1bHQgcmVjdXJzaW9uIGxpbWl0LiBJbmNyZWFzZSB0aGUgc3RhY2sgc2l6ZQorCQkjIHRvIGVuc3VyZSB0aGF0IHRlc3RzIGRvbid0IGNyYXNoCisJCUxJTktGT1JTSEFSRUQ9Ii1XbCwtc3RhY2tfc2l6ZSwxMDAwMDAwICRMSU5LRk9SU0hBUkVEIgorCiAJCWlmIHRlc3QgIiRlbmFibGVfZnJhbWV3b3JrIgogCQl0aGVuCiAJCQlMSU5LRk9SU0hBUkVEPSIkTElOS0ZPUlNIQVJFRCAiJyQoUFlUSE9ORlJBTUVXT1JLRElSKS9WZXJzaW9ucy8kKFZFUlNJT04pLyQoUFlUSE9ORlJBTUVXT1JLKScKQEAgLTEwMjY5LDcgKzEwMjg0LDcgQEAKICBzaWd0aW1lZHdhaXQgc2lnd2FpdCBzaWd3YWl0aW5mbyBzbnByaW50ZiBzdHJmdGltZSBzdHJsY3B5IHN5bWxpbmthdCBzeW5jIFwKICBzeXNjb25mIHRjZ2V0cGdycCB0Y3NldHBncnAgdGVtcG5hbSB0aW1lZ20gdGltZXMgdG1wZmlsZSB0bXBuYW0gdG1wbmFtX3IgXAogIHRydW5jYXRlIHVuYW1lIHVubGlua2F0IHVuc2V0ZW52IHV0aW1lbnNhdCB1dGltZXMgd2FpdGlkIHdhaXRwaWQgd2FpdDMgd2FpdDQgXAotIHdjc2NvbGwgd2NzZnRpbWUgd2NzeGZybSB3cml0ZXYgX2dldHB0eQorIHdjc2NvbGwgd2NzZnRpbWUgd2NzeGZybSB3bWVtY21wIHdyaXRldiBfZ2V0cHR5CiBkbyA6CiAgIGFzX2FjX3Zhcj1gJGFzX2VjaG8gImFjX2N2X2Z1bmNfJGFjX2Z1bmMiIHwgJGFzX3RyX3NoYAogYWNfZm5fY19jaGVja19mdW5jICIkTElORU5PIiAiJGFjX2Z1bmMiICIkYXNfYWNfdmFyIgpAQCAtMTM3MTksNiArMTM3MzQsMTAgQEAKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkTERWRVJTSU9OIiA+JjUKICRhc19lY2hvICIkTERWRVJTSU9OIiA+JjY7IH0KIAorCitMSUJQTD0iJHtwcmVmaXh9L2xpYi9weXRob24ke1ZFUlNJT059L2NvbmZpZy0ke0xEVkVSU0lPTn0iCisKKwogIyBDaGVjayB3aGV0aGVyIHJpZ2h0IHNoaWZ0aW5nIGEgbmVnYXRpdmUgaW50ZWdlciBleHRlbmRzIHRoZSBzaWduIGJpdAogIyBvciBmaWxscyB3aXRoIHplcm9zIChsaWtlIHRoZSBDcmF5IEo5MCwgYWNjb3JkaW5nIHRvIFRpbSBQZXRlcnMpLgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHJpZ2h0IHNoaWZ0IGV4dGVuZHMgdGhlIHNpZ24gYml0IiA+JjUKQEAgLTE1MTI3LDcgKzE1MTQ2LDcgQEAKIGZpCiAKICMgZ2VuZXJhdGUgb3V0cHV0IGZpbGVzCi1hY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUucHJlIE1vZHVsZXMvU2V0dXAuY29uZmlnIE1pc2MvcHl0aG9uLnBjIgorYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlLnByZSBNb2R1bGVzL1NldHVwLmNvbmZpZyBNaXNjL3B5dGhvbi5wYyBNaXNjL3B5dGhvbi1jb25maWcuc2giCiAKIGFjX2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBNb2R1bGVzL2xkX3NvX2FpeCIKIApAQCAtMTU2MzgsNyArMTU2NTcsNyBAQAogIyByZXBvcnQgYWN0dWFsIGlucHV0IHZhbHVlcyBvZiBDT05GSUdfRklMRVMgZXRjLiBpbnN0ZWFkIG9mIHRoZWlyCiAjIHZhbHVlcyBhZnRlciBvcHRpb25zIGhhbmRsaW5nLgogYWNfbG9nPSIKLVRoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgcHl0aG9uICRhc19tZSAzLjMsIHdoaWNoIHdhcworVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBweXRob24gJGFzX21lIDMuNCwgd2hpY2ggd2FzCiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKIAogICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCkBAIC0xNTcwMCw3ICsxNTcxOSw3IEBACiBjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKIGFjX2NzX2NvbmZpZz0iYCRhc19lY2hvICIkYWNfY29uZmlndXJlX2FyZ3MiIHwgc2VkICdzL14gLy87IHMvW1xcIiJcYFwkXS9cXFxcJi9nJ2AiCiBhY19jc192ZXJzaW9uPSJcXAotcHl0aG9uIGNvbmZpZy5zdGF0dXMgMy4zCitweXRob24gY29uZmlnLnN0YXR1cyAzLjQKIGNvbmZpZ3VyZWQgYnkgJDAsIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42OSwKICAgd2l0aCBvcHRpb25zIFxcIlwkYWNfY3NfY29uZmlnXFwiCiAKQEAgLTE1ODMxLDYgKzE1ODUwLDcgQEAKICAgICAiTWFrZWZpbGUucHJlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIE1ha2VmaWxlLnByZSIgOzsKICAgICAiTW9kdWxlcy9TZXR1cC5jb25maWciKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgTW9kdWxlcy9TZXR1cC5jb25maWciIDs7CiAgICAgIk1pc2MvcHl0aG9uLnBjIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIE1pc2MvcHl0aG9uLnBjIiA7OworICAgICJNaXNjL3B5dGhvbi1jb25maWcuc2giKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgTWlzYy9weXRob24tY29uZmlnLnNoIiA7OwogICAgICJNb2R1bGVzL2xkX3NvX2FpeCIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBNb2R1bGVzL2xkX3NvX2FpeCIgOzsKIAogICAqKSBhc19mbl9lcnJvciAkPyAiaW52YWxpZCBhcmd1bWVudDogXGAkYWNfY29uZmlnX3RhcmdldCciICIkTElORU5PIiA1OzsKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCA5MTc5ZmU2Li4zN2UwNDg4IDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0zLDcgKzMsNyBAQAogZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKICMgU2V0IFZFUlNJT04gc28gd2Ugb25seSBuZWVkIHRvIGVkaXQgaW4gb25lIHBsYWNlIChpLmUuLCBoZXJlKQotbTRfZGVmaW5lKFBZVEhPTl9WRVJTSU9OLCAzLjMpCittNF9kZWZpbmUoUFlUSE9OX1ZFUlNJT04sIDMuNCkKIAogQUNfUFJFUkVRKDIuNjUpCiAKQEAgLTkxNyw2ICs5MTcsNyBAQAogCiAjIE90aGVyIHBsYXRmb3JtcyBmb2xsb3cKIGlmIHRlc3QgJGVuYWJsZV9zaGFyZWQgPSAieWVzIjsgdGhlbgorICBQWV9FTkFCTEVfU0hBUkVEPTEKICAgQUNfREVGSU5FKFB5X0VOQUJMRV9TSEFSRUQsIDEsIFtEZWZpbmVkIGlmIFB5dGhvbiBpcyBidWlsdCBhcyBhIHNoYXJlZCBsaWJyYXJ5Ll0pCiAgIGNhc2UgJGFjX3N5c19zeXN0ZW0gaW4KICAgICBDWUdXSU4qKQpAQCAtOTcyLDYgKzk3Myw3IEBACiAKICAgZXNhYwogZWxzZSAjIHNoYXJlZCBpcyBkaXNhYmxlZAorICBQWV9FTkFCTEVfU0hBUkVEPTAKICAgY2FzZSAkYWNfc3lzX3N5c3RlbSBpbgogICAgIENZR1dJTiopCiAgICAgICAgICAgQkxETElCUkFSWT0nJChMSUJSQVJZKScKQEAgLTExODIsNiArMTE4NCwyOCBAQAogICAgICAgQkFTRUNGTEFHUz0iJEJBU0VDRkxBR1MgLVduby11bnVzZWQtcmVzdWx0IgogICAgIGZpCiAKKyAgICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIC1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50KQorICAgICBhY19zYXZlX2NjPSIkQ0MiCisgICAgIENDPSIkQ0MgLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQiCisgICAgIHNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgorICAgICBBQ19DQUNIRV9WQUwoYWNfY3ZfZGVjbGFyYXRpb25fYWZ0ZXJfc3RhdGVtZW50X3dhcm5pbmcsCisgICAgICAgQUNfQ09NUElMRV9JRkVMU0UoCisgICAgICAgICBbCisJICAgQUNfTEFOR19QUk9HUkFNKFtbXV0sIFtbXV0pCisJIF0sWworICAgICAgICAgICBhY19jdl9kZWNsYXJhdGlvbl9hZnRlcl9zdGF0ZW1lbnRfd2FybmluZz15ZXMKKwkgXSxbCisgICAgICAgICAgIGFjX2N2X2RlY2xhcmF0aW9uX2FmdGVyX3N0YXRlbWVudF93YXJuaW5nPW5vCisJIF0pKQorICAgICBDRkxBR1M9IiRzYXZlX0NGTEFHUyIKKyAgICAgQ0M9IiRhY19zYXZlX2NjIgorICAgIEFDX01TR19SRVNVTFQoJGFjX2N2X2RlY2xhcmF0aW9uX2FmdGVyX3N0YXRlbWVudF93YXJuaW5nKQorCisgICAgaWYgdGVzdCAkYWNfY3ZfZGVjbGFyYXRpb25fYWZ0ZXJfc3RhdGVtZW50X3dhcm5pbmcgPSB5ZXMKKyAgICB0aGVuCisgICAgICBCQVNFQ0ZMQUdTPSIkQkFTRUNGTEFHUyAtV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCIKKyAgICBmaQorCiAgICAgIyBpZiB1c2luZyBnY2Mgb24gYWxwaGEsIHVzZSAtbWllZWUgdG8gZ2V0IChuZWFyKSBmdWxsIElFRUUgNzU0CiAgICAgIyBzdXBwb3J0LiAgV2l0aG91dCB0aGlzLCB0cmVhdG1lbnQgb2Ygc3Vibm9ybWFscyBkb2Vzbid0IGZvbGxvdwogICAgICMgdGhlIHN0YW5kYXJkLgpAQCAtMTMyNiwyNCArMTM1MCw2IEBACiAJQkFTRUNGTEFHUz0iJEJBU0VDRkxBR1MgJGFjX2FyY2hfZmxhZ3MiCiBmaQogCi0jIENoZWNrIHdoZXRoZXIgR0NDIHN1cHBvcnRzIFB5QXJnX1BhcnNlVHVwbGUgZm9ybWF0Ci1pZiB0ZXN0ICIkR0NDIiA9ICJ5ZXMiCi10aGVuCi0gIEFDX01TR19DSEVDS0lORyh3aGV0aGVyIGdjYyBzdXBwb3J0cyBQYXJzZVR1cGxlIF9fZm9ybWF0X18pCi0gIHNhdmVfQ0ZMQUdTPSRDRkxBR1MKLSAgQ0ZMQUdTPSIkQ0ZMQUdTIC1XZXJyb3IgLVdmb3JtYXQiCi0gIEFDX0NPTVBJTEVfSUZFTFNFKFsKLSAgICBBQ19MQU5HX1BST0dSQU0oW1t2b2lkIGYoY2hhciosLi4uKV9fYXR0cmlidXRlKChmb3JtYXQoUHlBcmdfUGFyc2VUdXBsZSwgMSwgMikpKTtdXSwgW1tdXSkKLSAgXSxbCi0gICAgQUNfREVGSU5FKEhBVkVfQVRUUklCVVRFX0ZPUk1BVF9QQVJTRVRVUExFLCAxLAotICAgICAgW0RlZmluZSBpZiBHQ0Mgc3VwcG9ydHMgX19hdHRyaWJ1dGVfXygoZm9ybWF0KFB5QXJnX1BhcnNlVHVwbGUsIDIsIDMpKSldKQotICAgIEFDX01TR19SRVNVTFQoeWVzKQotICBdLFsKLSAgICBBQ19NU0dfUkVTVUxUKG5vKQotICBdKQotICBDRkxBR1M9JHNhdmVfQ0ZMQUdTCi1maQotCiAjIE9uIHNvbWUgY29tcGlsZXJzLCBwdGhyZWFkcyBhcmUgYXZhaWxhYmxlIHdpdGhvdXQgZnVydGhlciBvcHRpb25zCiAjIChlLmcuIE1hY09TIFgpLiBPbiBzb21lIG9mIHRoZXNlIHN5c3RlbXMsIHRoZSBjb21waWxlciB3aWxsIG5vdAogIyBjb21wbGFpbiBpZiB1bmFjY2VwdGVkIG9wdGlvbnMgYXJlIHBhc3NlZCAoZS5nLiBnY2Mgb24gTWFjIE9TIFgpLgpAQCAtMTU2Niw3ICsxNTcyLDcgQEAKIF0pCiAKICMgT24gTGludXgsIGNhbi5oIGFuZCBjYW4vcmF3LmggcmVxdWlyZSBzeXMvc29ja2V0LmgKLUFDX0NIRUNLX0hFQURFUlMobGludXgvY2FuLmggbGludXgvY2FuL3Jhdy5oLCwsWworQUNfQ0hFQ0tfSEVBREVSUyhsaW51eC9jYW4uaCBsaW51eC9jYW4vcmF3LmggbGludXgvY2FuL2JjbS5oLCwsWwogI2lmZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICiAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgogI2VuZGlmCkBAIC0yMTA4LDYgKzIxMTQsMTIgQEAKIAkjIC11IGxpYnN5c19zIHB1bGxzIGluIGFsbCBzeW1ib2xzIGluIGxpYnN5cwogCURhcndpbi8qKSAKIAkJTElOS0ZPUlNIQVJFRD0iJGV4dHJhX3VuZGVmcyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIgorCisJCSMgSXNzdWUgIzE4MDc1OiB0aGUgZGVmYXVsdCBtYXhpbXVtIHN0YWNrIHNpemUgKDhNQnl0ZXMpIGlzIHRvbworCQkjIHNtYWxsIGZvciB0aGUgZGVmYXVsdCByZWN1cnNpb24gbGltaXQuIEluY3JlYXNlIHRoZSBzdGFjayBzaXplCisJCSMgdG8gZW5zdXJlIHRoYXQgdGVzdHMgZG9uJ3QgY3Jhc2gKKwkJTElOS0ZPUlNIQVJFRD0iLVdsLC1zdGFja19zaXplLDEwMDAwMDAgJExJTktGT1JTSEFSRUQiCisKIAkJaWYgdGVzdCAiJGVuYWJsZV9mcmFtZXdvcmsiCiAJCXRoZW4KIAkJCUxJTktGT1JTSEFSRUQ9IiRMSU5LRk9SU0hBUkVEICInJChQWVRIT05GUkFNRVdPUktESVIpL1ZlcnNpb25zLyQoVkVSU0lPTikvJChQWVRIT05GUkFNRVdPUkspJwpAQCAtMjgxNCw3ICsyODI2LDcgQEAKICBzaWd0aW1lZHdhaXQgc2lnd2FpdCBzaWd3YWl0aW5mbyBzbnByaW50ZiBzdHJmdGltZSBzdHJsY3B5IHN5bWxpbmthdCBzeW5jIFwKICBzeXNjb25mIHRjZ2V0cGdycCB0Y3NldHBncnAgdGVtcG5hbSB0aW1lZ20gdGltZXMgdG1wZmlsZSB0bXBuYW0gdG1wbmFtX3IgXAogIHRydW5jYXRlIHVuYW1lIHVubGlua2F0IHVuc2V0ZW52IHV0aW1lbnNhdCB1dGltZXMgd2FpdGlkIHdhaXRwaWQgd2FpdDMgd2FpdDQgXAotIHdjc2NvbGwgd2NzZnRpbWUgd2NzeGZybSB3cml0ZXYgX2dldHB0eSkKKyB3Y3Njb2xsIHdjc2Z0aW1lIHdjc3hmcm0gd21lbWNtcCB3cml0ZXYgX2dldHB0eSkKIAogQUNfQ0hFQ0tfREVDTChkaXJmZCwKICAgICBBQ19ERUZJTkUoSEFWRV9ESVJGRCwgMSwKQEAgLTM5NTQsNiArMzk2NiwxMSBAQAogTERWRVJTSU9OPSckKFZFUlNJT04pJChBQklGTEFHUyknCiBBQ19NU0dfUkVTVUxUKCRMRFZFUlNJT04pCiAKK2RubCBkZWZpbmUgTElCUEwgYWZ0ZXIgQUJJRkxBR1MgYW5kIExEVkVSU0lPTiBpcyBkZWZpbmVkLgorQUNfU1VCU1QoUFlfRU5BQkxFX1NIQVJFRCkKK0xJQlBMPSIke3ByZWZpeH0vbGliL3B5dGhvbiR7VkVSU0lPTn0vY29uZmlnLSR7TERWRVJTSU9OfSIKK0FDX1NVQlNUKExJQlBMKQorCiAjIENoZWNrIHdoZXRoZXIgcmlnaHQgc2hpZnRpbmcgYSBuZWdhdGl2ZSBpbnRlZ2VyIGV4dGVuZHMgdGhlIHNpZ24gYml0CiAjIG9yIGZpbGxzIHdpdGggemVyb3MgKGxpa2UgdGhlIENyYXkgSjkwLCBhY2NvcmRpbmcgdG8gVGltIFBldGVycykuCiBBQ19NU0dfQ0hFQ0tJTkcod2hldGhlciByaWdodCBzaGlmdCBleHRlbmRzIHRoZSBzaWduIGJpdCkKQEAgLTQ2MzMsNyArNDY1MCw3IEBACiBmaQogCiAjIGdlbmVyYXRlIG91dHB1dCBmaWxlcwotQUNfQ09ORklHX0ZJTEVTKE1ha2VmaWxlLnByZSBNb2R1bGVzL1NldHVwLmNvbmZpZyBNaXNjL3B5dGhvbi5wYykKK0FDX0NPTkZJR19GSUxFUyhNYWtlZmlsZS5wcmUgTW9kdWxlcy9TZXR1cC5jb25maWcgTWlzYy9weXRob24ucGMgTWlzYy9weXRob24tY29uZmlnLnNoKQogQUNfQ09ORklHX0ZJTEVTKFtNb2R1bGVzL2xkX3NvX2FpeF0sIFtjaG1vZCAreCBNb2R1bGVzL2xkX3NvX2FpeF0pCiBBQ19PVVRQVVQKIApkaWZmIC0tZ2l0IGEvcHljb25maWcuaC5pbiBiL3B5Y29uZmlnLmguaW4KaW5kZXggY2JiYzQyZC4uMmQ0NTM2ZCAxMDA2NDQKLS0tIGEvcHljb25maWcuaC5pbgorKysgYi9weWNvbmZpZy5oLmluCkBAIC02MSw5ICs2MSw2IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGF0YW5oJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0FUQU5ICiAKLS8qIERlZmluZSBpZiBHQ0Mgc3VwcG9ydHMgX19hdHRyaWJ1dGVfXygoZm9ybWF0KFB5QXJnX1BhcnNlVHVwbGUsIDIsIDMpKSkgKi8KLSN1bmRlZiBIQVZFX0FUVFJJQlVURV9GT1JNQVRfUEFSU0VUVVBMRQotCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGJpbmRfdGV4dGRvbWFpbl9jb2Rlc2V0JyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0JJTkRfVEVYVERPTUFJTl9DT0RFU0VUCiAKQEAgLTUwMSw2ICs0OTgsOSBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBsaW5rYXQnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfTElOS0FUCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvY2FuL2JjbS5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0xJTlVYX0NBTl9CQ01fSAorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2Nhbi5oPiBoZWFkZXIgZmlsZS4gKi8KICN1bmRlZiBIQVZFX0xJTlVYX0NBTl9ICiAKQEAgLTExMTUsNiArMTExNSw5IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHdjc3hmcm0nIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfV0NTWEZSTQogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHdtZW1jbXAnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfV01FTUNNUAorCiAvKiBEZWZpbmUgaWYgdHpzZXQoKSBhY3R1YWxseSBzd2l0Y2hlcyB0aGUgbG9jYWwgdGltZXpvbmUgaW4gYSBtZWFuaW5nZnVsIHdheS4KICAgICovCiAjdW5kZWYgSEFWRV9XT1JLSU5HX1RaU0VUCmRpZmYgLS1naXQgYS9zZXR1cC5weSBiL3NldHVwLnB5CmluZGV4IGQ0MTgzZDQuLmU2ZjNiNTMgMTAwNjQ0Ci0tLSBhL3NldHVwLnB5CisrKyBiL3NldHVwLnB5CkBAIC01ODgsNiArNTg4LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRzPVsndGVzdGNhcGlfbG9uZy5oJ10pICkKICAgICAgICAgIyBQeXRob24gUEVQLTMxMTggKGJ1ZmZlciBwcm90b2NvbCkgdGVzdCBtb2R1bGUKICAgICAgICAgZXh0cy5hcHBlbmQoIEV4dGVuc2lvbignX3Rlc3RidWZmZXInLCBbJ190ZXN0YnVmZmVyLmMnXSkgKQorICAgICAgICAjIFRlc3QgbG9hZGluZyBtdWx0aXBsZSBtb2R1bGVzIGZyb20gb25lIGNvbXBpbGVkIGZpbGUgKGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUxNjQyMSkKKyAgICAgICAgZXh0cy5hcHBlbmQoIEV4dGVuc2lvbignX3Rlc3RpbXBvcnRtdWx0aXBsZScsIFsnX3Rlc3RpbXBvcnRtdWx0aXBsZS5jJ10pICkKICAgICAgICAgIyBwcm9maWxlciAoX2xzcHJvZiBpcyBmb3IgY1Byb2ZpbGUucHkpCiAgICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ19sc3Byb2YnLCBbJ19sc3Byb2YuYycsICdyb3RhdGluZ3RyZWUuYyddKSApCiAgICAgICAgICMgc3RhdGljIFVuaWNvZGUgY2hhcmFjdGVyIGRhdGFiYXNlCkBAIC03ODQsMTAgKzc4NiwxMCBAQAogICAgICAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBpbmNmaWxlOgogICAgICAgICAgICAgICAgICAgICAgICAgbSA9IG9wZW5zc2xfdmVyX3JlLm1hdGNoKGxpbmUpCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiBtOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zc2xfdmVyID0gZXZhbChtLmdyb3VwKDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zc2xfdmVyID0gaW50KG0uZ3JvdXAoMSksIDE2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBtc2c6CiAgICAgICAgICAgICAgICAgcHJpbnQoIklPRXJyb3Igd2hpbGUgcmVhZGluZyBvcGVuc3Nodi5oOiIsIG1zZykKLSAgICAgICAgICAgICAgICBwYXNzCiAKICAgICAgICAgI3ByaW50KCdvcGVuc3NsX3ZlciA9IDB4JTA4eCcgJSBvcGVuc3NsX3ZlcikKICAgICAgICAgbWluX29wZW5zc2xfdmVyID0gMHgwMDkwNzAwMApAQCAtODIxLDYgKzgyMywxNSBAQAogICAgICAgICBleHRzLmFwcGVuZCggRXh0ZW5zaW9uKCdfc2hhMScsIFsnc2hhMW1vZHVsZS5jJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kcz1bJ2hhc2hsaWIuaCddKSApCiAKKyAgICAgICAgIyBTSEEtMyAoS2VjY2FrKSBtb2R1bGUKKyAgICAgICAgc2hhM19kZXBlbmRzID0gWydoYXNobGliLmgnXQorICAgICAgICBrZWNjYWsgPSBvcy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCksIHNyY2RpciwgJ01vZHVsZXMnLCAnX3NoYTMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tlY2NhaycpCisgICAgICAgIGZvciBwYXR0ZXJuIGluICgnKi5jJywgJyouaCcsICcqLm1hY3JvcycpOgorICAgICAgICAgICAgc2hhM19kZXBlbmRzLmV4dGVuZChnbG9iKG9zLnBhdGguam9pbihrZWNjYWssIHBhdHRlcm4pKSkKKyAgICAgICAgZXh0cy5hcHBlbmQoRXh0ZW5zaW9uKCJfc2hhMyIsIFsiX3NoYTMvc2hhM21vZHVsZS5jIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRzPXNoYTNfZGVwZW5kcykpCisKICAgICAgICAgIyBNb2R1bGVzIHRoYXQgcHJvdmlkZSBwZXJzaXN0ZW50IGRpY3Rpb25hcnktbGlrZSBzZW1hbnRpY3MuICBZb3Ugd2lsbAogICAgICAgICAjIHByb2JhYmx5IHdhbnQgdG8gYXJyYW5nZSBmb3IgYXQgbGVhc3Qgb25lIG9mIHRoZW0gdG8gYmUgYXZhaWxhYmxlIG9uCiAgICAgICAgICMgeW91ciBtYWNoaW5lLCB0aG91Z2ggbm9uZSBhcmUgZGVmaW5lZCBieSBkZWZhdWx0IGJlY2F1c2Ugb2YgbGlicmFyeQpAQCAtMjExMiw3ICsyMTIzLDcgQEAKIHByb2dyYW1tYWJsZSBpbnRlcmZhY2UuCiAKIFRoZSBQeXRob24gaW1wbGVtZW50YXRpb24gaXMgcG9ydGFibGU6IGl0IHJ1bnMgb24gbWFueSBicmFuZHMgb2YgVU5JWCwKLW9uIFdpbmRvd3MsIERPUywgT1MvMiwgTWFjLCBBbWlnYS4uLiBJZiB5b3VyIGZhdm9yaXRlIHN5c3RlbSBpc24ndAorb24gV2luZG93cywgRE9TLCBNYWMsIEFtaWdhLi4uIElmIHlvdXIgZmF2b3JpdGUgc3lzdGVtIGlzbid0CiBsaXN0ZWQgaGVyZSwgaXQgbWF5IHN0aWxsIGJlIHN1cHBvcnRlZCwgaWYgdGhlcmUncyBhIEMgY29tcGlsZXIgZm9yCiBpdC4gQXNrIGFyb3VuZCBvbiBjb21wLmxhbmcucHl0aG9uIC0tIG9yIGp1c3QgdHJ5IGNvbXBpbGluZyBQeXRob24KIHlvdXJzZWxmLgo=